diff --git a/bioinformaticsProject/BioinformaticsProject.sh b/bioinformaticsProject/BioinformaticsProject.sh new file mode 100644 index 0000000..c50e581 --- /dev/null +++ b/bioinformaticsProject/BioinformaticsProject.sh @@ -0,0 +1,38 @@ +#Searches set of proteomes for the mcrA and hsp70 genes, and outputs results into a table, in a file titled "Summary.csv". Produces a file "Candidates.txt" that contains a list of proteomes that are candidates for the growth experiments. +#Note: The code is dependent on where tools and files are located in a system, so could vary for users. +#Usage: bash BioinformaticsProject.sh + +#Align reference sequences +cd ref_sequences +cat mcrAgene_**.fasta > mcrAgene.fasta +cat hsp70gene_**.fasta > hsp70gene.fasta +../muscle -in mcrAgene.fasta -out mcrAgene_muscle.fasta +../muscle -in hsp70gene.fasta -out hsp70gene_muscle.fasta + +#Build a profile for the mcrA and hsp70 genes +../bin/hmmbuild --amino mcrAgene_hmm.txt mcrAgene_muscle.fasta +../bin/hmmbuild --amino hsp70gene_hmm.txt hsp70gene_muscle.fasta + +#Search the proteomes for mcrA gene, identifies methanogens +cd ../proteomes +for number in proteome_**.fasta +do +name=$(echo $number | cut -d_ -f 2 | cut -d. -f 1) +../bin/hmmsearch --tblout ${name}resultsmcrAgene_match ../ref_sequences/mcrAgene_hmm.txt $number +../bin/hmmsearch --tblout ${name}resultshsp70gene_match ../ref_sequences/hsp70gene_hmm.txt $number +done + +#Produce a table with proteome number, mcrA match, number of hsp70 matches +for n in {01..50} +do +column2=$(cat "$n"resultsmcrAgene_match | grep -v '#' | wc -l) +column3=$(cat "$n"resultshsp70gene_match | grep -v '#' | wc -l) +echo "Proteome $n" "$column2" "$column3" >> ../Summary.csv +done + +#Provide a list of candidate pH-resistant methanogens +#Based on the results, the cutoff for sufficient pH resistance was 1 copy of hsp70. While the average number of copies was 2.62 across the proteomes, only 14/50 were methanogens. Considering pH resistance to be just one copy of hsp70 allows you to proceed with a larger sample for the growht experiments. +#Note: Average was calculated by awk '{ total += $3; count++ } END { print total/count }' Summary.csv +cd .. +grep -e '1 [1-9]' Summary.csv > Candidates.txt + diff --git a/bioinformaticsProject/Candidates.txt b/bioinformaticsProject/Candidates.txt new file mode 100644 index 0000000..eb348c0 --- /dev/null +++ b/bioinformaticsProject/Candidates.txt @@ -0,0 +1,13 @@ +Proteome 03 1 3 +Proteome 05 1 2 +Proteome 07 1 2 +Proteome 15 1 1 +Proteome 16 1 1 +Proteome 24 1 2 +Proteome 38 1 1 +Proteome 39 1 1 +Proteome 42 1 3 +Proteome 44 1 1 +Proteome 45 1 3 +Proteome 48 1 1 +Proteome 50 1 3 diff --git a/bioinformaticsProject/Summary.csv b/bioinformaticsProject/Summary.csv new file mode 100644 index 0000000..d27c368 --- /dev/null +++ b/bioinformaticsProject/Summary.csv @@ -0,0 +1,50 @@ +Proteome 01 0 4 +Proteome 02 0 2 +Proteome 03 1 3 +Proteome 04 0 4 +Proteome 05 1 2 +Proteome 06 0 0 +Proteome 07 1 2 +Proteome 08 0 5 +Proteome 09 0 1 +Proteome 10 0 3 +Proteome 11 0 6 +Proteome 12 0 6 +Proteome 13 0 3 +Proteome 14 0 2 +Proteome 15 1 1 +Proteome 16 1 1 +Proteome 17 0 4 +Proteome 18 0 8 +Proteome 19 2 1 +Proteome 20 0 3 +Proteome 21 0 5 +Proteome 22 0 9 +Proteome 23 2 2 +Proteome 24 1 2 +Proteome 25 0 5 +Proteome 26 0 1 +Proteome 27 0 1 +Proteome 28 0 1 +Proteome 29 1 0 +Proteome 30 0 1 +Proteome 31 0 7 +Proteome 32 0 4 +Proteome 33 0 0 +Proteome 34 0 2 +Proteome 35 0 1 +Proteome 36 0 3 +Proteome 37 0 1 +Proteome 38 1 1 +Proteome 39 1 1 +Proteome 40 0 2 +Proteome 41 0 1 +Proteome 42 1 3 +Proteome 43 0 3 +Proteome 44 1 1 +Proteome 45 1 3 +Proteome 46 0 2 +Proteome 47 0 1 +Proteome 48 1 1 +Proteome 49 0 3 +Proteome 50 1 3 diff --git a/bioinformaticsProject/bin/alimask b/bioinformaticsProject/bin/alimask new file mode 100755 index 0000000..dcb30d6 Binary files /dev/null and b/bioinformaticsProject/bin/alimask differ diff --git a/bioinformaticsProject/bin/hmmalign b/bioinformaticsProject/bin/hmmalign new file mode 100755 index 0000000..4f87bc5 Binary files /dev/null and b/bioinformaticsProject/bin/hmmalign differ diff --git a/bioinformaticsProject/bin/hmmbuild b/bioinformaticsProject/bin/hmmbuild new file mode 100755 index 0000000..dd86a8c Binary files /dev/null and b/bioinformaticsProject/bin/hmmbuild differ diff --git a/bioinformaticsProject/bin/hmmconvert b/bioinformaticsProject/bin/hmmconvert new file mode 100755 index 0000000..425fbf3 Binary files /dev/null and b/bioinformaticsProject/bin/hmmconvert differ diff --git a/bioinformaticsProject/bin/hmmemit b/bioinformaticsProject/bin/hmmemit new file mode 100755 index 0000000..beca368 Binary files /dev/null and b/bioinformaticsProject/bin/hmmemit differ diff --git a/bioinformaticsProject/bin/hmmfetch b/bioinformaticsProject/bin/hmmfetch new file mode 100755 index 0000000..cef6083 Binary files /dev/null and b/bioinformaticsProject/bin/hmmfetch differ diff --git a/bioinformaticsProject/bin/hmmlogo b/bioinformaticsProject/bin/hmmlogo new file mode 100755 index 0000000..6a1d0b8 Binary files /dev/null and b/bioinformaticsProject/bin/hmmlogo differ diff --git a/bioinformaticsProject/bin/hmmpgmd b/bioinformaticsProject/bin/hmmpgmd new file mode 100755 index 0000000..5260293 Binary files /dev/null and b/bioinformaticsProject/bin/hmmpgmd differ diff --git a/bioinformaticsProject/bin/hmmpgmd_shard b/bioinformaticsProject/bin/hmmpgmd_shard new file mode 100755 index 0000000..7f306ba Binary files /dev/null and b/bioinformaticsProject/bin/hmmpgmd_shard differ diff --git a/bioinformaticsProject/bin/hmmpress b/bioinformaticsProject/bin/hmmpress new file mode 100755 index 0000000..e374ce2 Binary files /dev/null and b/bioinformaticsProject/bin/hmmpress differ diff --git a/bioinformaticsProject/bin/hmmscan b/bioinformaticsProject/bin/hmmscan new file mode 100755 index 0000000..abfdd7f Binary files /dev/null and b/bioinformaticsProject/bin/hmmscan differ diff --git a/bioinformaticsProject/bin/hmmsearch b/bioinformaticsProject/bin/hmmsearch new file mode 100755 index 0000000..4b3218a Binary files /dev/null and b/bioinformaticsProject/bin/hmmsearch differ diff --git a/bioinformaticsProject/bin/hmmsim b/bioinformaticsProject/bin/hmmsim new file mode 100755 index 0000000..8d2c80d Binary files /dev/null and b/bioinformaticsProject/bin/hmmsim differ diff --git a/bioinformaticsProject/bin/hmmstat b/bioinformaticsProject/bin/hmmstat new file mode 100755 index 0000000..9f20319 Binary files /dev/null and b/bioinformaticsProject/bin/hmmstat differ diff --git a/bioinformaticsProject/bin/jackhmmer b/bioinformaticsProject/bin/jackhmmer new file mode 100755 index 0000000..6fa9681 Binary files /dev/null and b/bioinformaticsProject/bin/jackhmmer differ diff --git a/bioinformaticsProject/bin/makehmmerdb b/bioinformaticsProject/bin/makehmmerdb new file mode 100755 index 0000000..42c3eaf Binary files /dev/null and b/bioinformaticsProject/bin/makehmmerdb differ diff --git a/bioinformaticsProject/bin/nhmmer b/bioinformaticsProject/bin/nhmmer new file mode 100755 index 0000000..68fe397 Binary files /dev/null and b/bioinformaticsProject/bin/nhmmer differ diff --git a/bioinformaticsProject/bin/nhmmscan b/bioinformaticsProject/bin/nhmmscan new file mode 100755 index 0000000..bea5226 Binary files /dev/null and b/bioinformaticsProject/bin/nhmmscan differ diff --git a/bioinformaticsProject/bin/phmmer b/bioinformaticsProject/bin/phmmer new file mode 100755 index 0000000..5be4bd7 Binary files /dev/null and b/bioinformaticsProject/bin/phmmer differ diff --git a/bioinformaticsProject/hmmer/.gitignore b/bioinformaticsProject/hmmer/.gitignore new file mode 100644 index 0000000..a774a2d --- /dev/null +++ b/bioinformaticsProject/hmmer/.gitignore @@ -0,0 +1,48 @@ +configure +config.log +config.status +Makefile +easel +*.o +*.dSYM +*.stamp +src/*_example +src/*_example? +src/*_utest +src/*_benchmark +src/*_stats +src/impl +src/impl*/*_example +src/impl*/*_utest +src/impl*/*_benchmark +documentation/userguide/copyright.tex +documentation/userguide/titlepage.tex +documentation/man/*.man +libdivsufsort/divsufsort.h +libdivsufsort/libdivsufsort.a +src/libhmmer.a +src/p7_config.h +profmark/create-profmark +profmark/rocplot +src/alimask +src/hmmalign +src/hmmbuild +src/hmmc2 +src/hmmconvert +src/hmmemit +src/hmmerfm-exactmatch +src/hmmfetch +src/hmmlogo +src/hmmpgmd +src/hmmpgmd_shard +src/hmmpress +src/hmmscan +src/hmmsearch +src/hmmsim +src/hmmstat +src/itest_brute +src/jackhmmer +src/makehmmerdb +src/nhmmer +src/nhmmscan +src/phmmer diff --git a/bioinformaticsProject/hmmer/.travis.yml b/bioinformaticsProject/hmmer/.travis.yml new file mode 100644 index 0000000..f84f0f0 --- /dev/null +++ b/bioinformaticsProject/hmmer/.travis.yml @@ -0,0 +1,14 @@ +language: c + +env: + - SQC_NONZERO_EXIT=1 + +script: + - git clone -b develop https://github.com/${TRAVIS_REPO_SLUG/hmmer/easel}.git + - ln -s easel/aclocal.m4 aclocal.m4 + - autoconf + - ./configure + - make + - make dev + - make check + diff --git a/bioinformaticsProject/hmmer/INSTALL b/bioinformaticsProject/hmmer/INSTALL new file mode 100644 index 0000000..05a43bc --- /dev/null +++ b/bioinformaticsProject/hmmer/INSTALL @@ -0,0 +1,20 @@ +Brief installation instructions +HMMER 3.3.2 (Nov 2020) + +Starting from a source distribution, hmmer-3.3.2.tar.gz: + uncompress hmmer-3.3.2.tar.gz + tar xf hmmer-3.3.2.tar + cd hmmer-3.3.2 + ./configure + make + make check # optional: automated tests + make install # optional: install HMMER programs and man pages + (cd easel; make install) # optional: install Easel tools too + +For more details including customization, supported platforms, and +troubleshooting, see the Installation chapter in the HMMER User's +Guide (Userguide.pdf). + + + + diff --git a/bioinformaticsProject/hmmer/LICENSE b/bioinformaticsProject/hmmer/LICENSE new file mode 100644 index 0000000..663d4f5 --- /dev/null +++ b/bioinformaticsProject/hmmer/LICENSE @@ -0,0 +1,93 @@ +HMMER - Biological sequence analysis with profile hidden Markov models +Copyright (C) 1992-2020 Sean R. Eddy +Copyright (C) 2000-2020 Howard Hughes Medical Institute +Copyright (C) 2015-2020 President and Fellows of Harvard College +Copyright (C) 1992-2004 Washington University School of Medicine +Copyright (C) 1992-1994 MRC Laboratory of Molecular Biology +----------------------------------------------------------------------- + +The code includes contributions and input from current and past +members of the HMMER development team, as well as other colleagues and +sources, including: + + Bill Arndt + Jeremy Buhler + Tyler Camp + Nick Carter + Sergi Castellano + Goran Ceric + Michael Farrar + Rob Finn + Ian Holmes + Bjarne Knudsen + Diana Kolbe + Erik Lindahl + Graeme Mitchison + Eric Nawrocki + Lee Newberg + Elena Rivas + Walt Shands + Travis Wheeler + +HMMER also includes copyrighted and licensed code that has been +incorporated from other sources, including: + + Yuta Mori (libdivsufsort-lite) + Apple Computer + Free Software Foundation, Inc. + IBM TJ Watson Research Center + X Consortium + +HMMER uses the Easel software library, which has its own license and +copyright information. See easel/LICENSE. + +HMMER includes patent-pending SIMD technology under a nonexclusive +license from the estate of Michael Farrar. You are sublicensed to use +this technology specifically for the use, modification, and +redistribution of HMMER. + +HMMER development is supported in part by the National Human Genome +Research Institute of the US National Institutes of Health under grant +number R01HG009116. The content is solely the responsibility of the +authors and does not necessarily represent the official views of the +National Institutes of Health. + +HMMER source code is distributed as open source under the terms of the +BSD three-clause license: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + 3. Neither the name of any copyright holder nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + OF THE POSSIBILITY OF SUCH DAMAGE. + + + + + + + + diff --git a/bioinformaticsProject/hmmer/Makefile.in b/bioinformaticsProject/hmmer/Makefile.in new file mode 100644 index 0000000..d0f2b18 --- /dev/null +++ b/bioinformaticsProject/hmmer/Makefile.in @@ -0,0 +1,189 @@ +# Top level Makefile for HMMER3 +# +# On most systems, to build H3 you should only need: +# % ./configure; make +# +# Optionally, you can run a test suite: +# % make check +# +# Optionally, you can install programs and man pages more permanently: +# % make install +# +# Optionally, you can install some small tools ("miniapps") from our Easel library: +# % (cd easel; make install) +# +# For more information, see the Installation section in the User's Guide. +# + + +# VPATH and shell configuration +# +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +SHELL = /bin/sh + +# location of easel +ESLDIR = @HMMER_ESLDIR@ + +# location of libdivsufsort for suffix array creation +SADIR = @HMMER_SADIR@ + + +# Package information +# +PACKAGE = @PACKAGE_NAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ + +# Installation targets +# +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +mandir = @mandir@ +docdir = @docdir@ +pdfdir = @pdfdir@ +mandir = @mandir@ +man1dir = ${mandir}/man1 +man1ext = .1 + +# Compiler configuration +# +CC = @CC@ +CFLAGS = @CFLAGS@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +SSE_CFLAGS = @SSE_CFLAGS@ +VMX_CFLAGS = @VMX_CFLAGS@ +LDFLAGS = -static @LDFLAGS@ +CPPFLAGS = @CPPFLAGS@ + +# Other tools +# +AR = @AR@ +RANLIB = @RANLIB@ +INSTALL = @INSTALL@ + +# beautification magic stolen from git +# +QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c +QUIET_SUBDIR1 = +ifndef V + QUIET = @ + QUIET_CC = @echo ' ' CC $@; + QUIET_GEN = @echo ' ' GEN $@; + QUIET_AR = @echo ' ' AR $@; + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ; echo ' ' SUBDIR $$subdir; \ + ${MAKE} -s -C $$subdir +endif + +.PHONY: all dev check pdf install install-strip uninstall clean distclean TAGS + +# all: Compile all documented executables. +# (Excludes test programs.) +# +all: + ${QUIET_SUBDIR0}${ESLDIR} ${QUIET_SUBDIR1} all + ${QUIET_SUBDIR0}${SADIR} ${QUIET_SUBDIR1} all + ${QUIET_SUBDIR0}src ${QUIET_SUBDIR1} all + ${QUIET_SUBDIR0}profmark ${QUIET_SUBDIR1} all + +# dev: compile all executables, including drivers. +# +dev: + ${QUIET_SUBDIR0}${ESLDIR} ${QUIET_SUBDIR1} dev + ${QUIET_SUBDIR0}${SADIR} ${QUIET_SUBDIR1} all + ${QUIET_SUBDIR0}src ${QUIET_SUBDIR1} dev + ${QUIET_SUBDIR0}profmark ${QUIET_SUBDIR1} dev + +# tests: compile all test drivers for 'make check' +# +tests: + ${QUIET_SUBDIR0}${ESLDIR} ${QUIET_SUBDIR1} tests + ${QUIET_SUBDIR0}src ${QUIET_SUBDIR1} tests + +# check: Run test suites. +# +check: + @command -v python3 >/dev/null 2>&1 || { echo >&2 "python3 is required for 'make check', but is not in your PATH. Aborting."; exit 1; } + ${QUIET_SUBDIR0}${ESLDIR} ${QUIET_SUBDIR1} tests + ${QUIET_SUBDIR0}${SADIR} ${QUIET_SUBDIR1} all + ${QUIET_SUBDIR0}src ${QUIET_SUBDIR1} tests + ${QUIET_SUBDIR0}${ESLDIR} ${QUIET_SUBDIR1} check + ${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} check + +# pdf: compile the User Guides. +# +pdf: + ${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} pdf + +# install: binaries in ${bindir}/, man pages in ${man1dir}/ +# Creates these directories if they don't exist. +# +# Prefix paths with optional ${DESTDIR}, which +# downstream packagers may set on make command line when +# building packages. +# +# Does not use quiet beautification magic; always verbose. +install: all + ${INSTALL} -d ${DESTDIR}${bindir} + ${INSTALL} -d ${DESTDIR}${man1dir} + ${MAKE} -C src install + ${MAKE} -C documentation install + +# install-strip: same as install, but strip binaries +# +install-strip: all + ${INSTALL} -d ${DESTDIR}${bindir} + ${INSTALL} -d ${DESTDIR}${man1dir} + ${MAKE} -C src install-strip + ${MAKE} -C documentation install + +# uninstall: reverses the steps of "make install". +# +uninstall: + ${MAKE} -C src uninstall + ${MAKE} -C documentation uninstall + +# "make clean" removes almost everything except configuration files. +# +clean: + ${QUIET_SUBDIR0}src ${QUIET_SUBDIR1} clean + ${QUIET_SUBDIR0}profmark ${QUIET_SUBDIR1} clean + ${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} clean + ${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} clean + ${QUIET_SUBDIR0}${ESLDIR} ${QUIET_SUBDIR1} clean + ${QUIET_SUBDIR0}${SADIR} ${QUIET_SUBDIR1} clean + ${QUIET}-rm -f *.o *~ Makefile.bak core TAGS TAGS.part gmon.out +ifndef V + @echo ' ' CLEAN hmmer +endif + +# "make distclean" leaves a pristine source distribution. +# +distclean: + ${QUIET_SUBDIR0}src ${QUIET_SUBDIR1} distclean + ${QUIET_SUBDIR0}profmark ${QUIET_SUBDIR1} distclean + ${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} distclean + ${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} distclean + ${QUIET_SUBDIR0}${ESLDIR} ${QUIET_SUBDIR1} distclean + ${QUIET_SUBDIR0}${SADIR} ${QUIET_SUBDIR1} distclean + ${QUIET}-rm config.log config.status + ${QUIET}-rm -rf autom4te.cache + ${QUIET}-rm -f *.o *~ Makefile.bak core TAGS TAGS.part gmon.out + ${QUIET}-rm -f cscope.po.out cscope.out cscope.in.out cscope.files + ${QUIET}-rm -f src/impl + ${QUIET}-rm Makefile +ifndef V + @echo ' ' CLEAN hmmer +endif + +TAGS: + ./makeTAGS.sh + + + diff --git a/bioinformaticsProject/hmmer/README.md b/bioinformaticsProject/hmmer/README.md new file mode 100644 index 0000000..d62e107 --- /dev/null +++ b/bioinformaticsProject/hmmer/README.md @@ -0,0 +1,89 @@ +## HMMER - biological sequence analysis using profile HMMs + +[![](https://travis-ci.org/EddyRivasLab/hmmer.svg?branch=develop)](https://travis-ci.org/EddyRivasLab/hmmer) +![](http://img.shields.io/badge/license-BSD-brightgreen.svg) + +[HMMER](http://hmmer.org) searches biological sequence databases for +homologous sequences, using either single sequences or multiple +sequence alignments as queries. HMMER implements a technology called +"profile hidden Markov models" (profile HMMs). HMMER is used by many +protein family domain databases and large-scale annotation pipelines, +including [Pfam](http://pfam.xfam.org) and other members of the +[InterPro Consortium](http://www.ebi.ac.uk/interpro/). + +To obtain HMMER releases, please visit [hmmer.org](http://hmmer.org). + +To participate in HMMER development, visit us at +[github](https://github.com/EddyRivasLab/hmmer). HMMER development +depends on the Easel library, also at +[github](https://github.com/EddyRivasLab/easel). + + +### to download and build the current source code release: + +``` + % wget http://eddylab.org/software/hmmer/hmmer.tar.gz + % tar zxf hmmer.tar.gz + % cd hmmer-3.3.2 + % ./configure --prefix /your/install/path + % make + % make check # optional: run automated tests + % make install # optional: install HMMER programs, man pages + % (cd easel; make install) # optional: install Easel tools +``` + +Executable programs will be installed in `/your/install/path/bin`. If +you leave this optional `./configure` argument off, the default prefix +is `/usr/local`. + +Files to read in the source directory: + + * INSTALL - brief installation instructions. + * Userguide.pdf - the HMMER User's Guide. + +To get started after installation, see the Tutorial section in the +HMMER User's Guide (Userguide.pdf). + + + +### to clone a copy of HMMER3 source from github: + +The tarball way, above, is a better way to install HMMER (it includes +a precompiled Userguide.pdf, for example), but you can also clone our +github repo. You need to clone both the HMMER and Easel repositories, +as follows: + +``` + % git clone https://github.com/EddyRivasLab/hmmer + % cd hmmer + % git clone https://github.com/EddyRivasLab/easel + % autoconf +``` + +and to build: + +```bash + % ./configure + % make +``` + +Our [git workflow](https://github.com/EddyRivasLab/hmmer/wiki/Git-workflow) +includes three main branches: + + * **master** is the stable branch for HMMER3 releases (including when + H3 is released as a library inside Infernal) + * **develop** is the HMMER3 development branch + * **h4-develop** is the HMMER4 development branch. + +To build the most recent official release, leave both HMMER and Easel +on their default **master** branch. To contribute to HMMER3 +development, you want to be on the **develop** branches. If you want +to send us a pull request on GitHub, please base your changes on our +**develop** branches. + + +### to report a problem: + +Visit our +[issues tracking page at github](https://github.com/EddyRivasLab/hmmer/issues). + diff --git a/bioinformaticsProject/hmmer/RELEASE-3.3.2.md b/bioinformaticsProject/hmmer/RELEASE-3.3.2.md new file mode 100644 index 0000000..48635e4 --- /dev/null +++ b/bioinformaticsProject/hmmer/RELEASE-3.3.2.md @@ -0,0 +1,36 @@ +# HMMER 3.3.2 release notes (Nov 2020) + + +## bug fixes: + +* Fixed a recently introduced bug that could cause hmmsearch (and + presumably hmmscan) to segfault on rare comparisons involving highly + biased sequences. In domain postprocessing + (p7_domaindef.c::rescore_isolated_domain()), when p7_Decoding() + returns an eslERANGE error on garbage sequences in long_target mode, + nhmmer needs to reset its background model, which it modifies on the + fly. This was in the fix for iss #198, which we added in the 3.3.1 + release. However, that fix failed to check for long_target mode, + which introduced this new bug for hmmsearch/hmmscan. + +* ./configure --enable-PIC wasn't setting -fPIC option in impl-sse, + impl-vmx Makefiles. + (Thanks to Martin Larralde.) + +* fixed an uninitialized ptr in makehmmerdb, in the fm_data + structure, which could cause makehmmerdb to crash. + (Thanks to Augustin Zidek.) + + + +## new thingies: + +* added a `make install-strip` target. + (Thanks to Sebastien Jaenicke.) + + + +For more information, you can peruse the +[git log for our master (stable release) branch](https://github.com/EddyRivasLab/hmmer/commits/master). + + diff --git a/bioinformaticsProject/hmmer/Userguide.pdf b/bioinformaticsProject/hmmer/Userguide.pdf new file mode 100644 index 0000000..893d0b9 Binary files /dev/null and b/bioinformaticsProject/hmmer/Userguide.pdf differ diff --git a/bioinformaticsProject/hmmer/config.guess b/bioinformaticsProject/hmmer/config.guess new file mode 100644 index 0000000..256083a --- /dev/null +++ b/bioinformaticsProject/hmmer/config.guess @@ -0,0 +1,1476 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2018 Free Software Foundation, Inc. + +timestamp='2018-03-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2018 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > "$dummy.c" ; + for c in cc gcc c89 c99 ; do + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ + echo unknown)` + case "$UNAME_MACHINE_ARCH" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval "$set_cc_for_build" + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval "$set_cc_for_build" + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + then + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ "$HP_ARCH" = hppa2.0w ] + then + eval "$set_cc_for_build" + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" + exit ;; + 3050*:HI-UX:*:*) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo "$UNAME_MACHINE"-unknown-osf1mk + else + echo "$UNAME_MACHINE"-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:BSD/OS:*:*) + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*:PW*:*) + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + *:GNU:*:*) + # the GNU system + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" + exit ;; + i*86:Minix:*:*) + echo "$UNAME_MACHINE"-pc-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + eval "$set_cc_for_build" + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval "$set_cc_for_build" + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + i*86:AROS:*:*) + echo "$UNAME_MACHINE"-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/bioinformaticsProject/hmmer/config.sub b/bioinformaticsProject/hmmer/config.sub new file mode 100644 index 0000000..9ccf09a --- /dev/null +++ b/bioinformaticsProject/hmmer/config.sub @@ -0,0 +1,1801 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2018 Free Software Foundation, Inc. + +timestamp='2018-03-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2018 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | wasm32 \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | wasm32-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-pc + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2*) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + x64) + basic_machine=x86_64-pc + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases that might get confused + # with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo "$os" | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4*) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + pru-*) + os=-elf + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` + ;; +esac + +echo "$basic_machine$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/bioinformaticsProject/hmmer/configure.ac b/bioinformaticsProject/hmmer/configure.ac new file mode 100644 index 0000000..d4881a9 --- /dev/null +++ b/bioinformaticsProject/hmmer/configure.ac @@ -0,0 +1,704 @@ +# Process this file with autoconf to produce the HMMER3 configure script. +# +# HMMER configures Easel in addition to itself, so this is +# synchronized with Easel's configure script. Saves having to do a +# separate ./configure in Easel, but everything in Easel's configure +# script must also appear here. +# +# reminders to save re-reading autoconf manual for the n'th time: +# output variables: +# - defined here as normal shell variables, e.g. FOO="my string" +# - made into output variables by calling AC_SUBST(FOO) +# - @FOO@ in an output file is substituted +# - output files assigned w/ AC_CONFIG_FILES; e.g. Makefile.in +# +# C preprocessor symbols: +# - defined here by calling AC_DEFINE(FOO) or AC_DEFINE(FOO, [42]) +# - #undef FOO in a config file becomes #define FOO or #define FOO 42 +# - config files assigned w/ AC_CONFIG_HEADERS; e.g. p7_config.h.in +# +# shell variables: +# - defined as usual, e.g. esl_var=no +# - use within scope of the ./configure script +# +# Contents: +# 1. autoconf requirements +# 2. AC_INIT +# 3. info on the package +# 4. process ./configure command line +# 5. checks for programs, including ${CC}, ${CFLAGS} +# 6. checks for libraries +# 7. checks for header files +# 8. checks for types +# 9. checks for structures +# 10. checks for compiler characteristics +# 11. checks for library functions +# 12. checks for system services +# 13. AC_CONFIG_FILES +# 14. AC_OUTPUT +# +# This obeys "standard configure.ac layout" according to autoconf manual. +# +# To update config.guess and config.sub from GNU: +# wget -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD' +# wget -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD' +# +# Use full 3-arg form of AC_DEFINE() macros. autoheader chokes if you +# don't. We don't use autoheader (we only use autoconf, out of the +# GNU build tools, to limit complexity) but some packagers do, such +# as Debian. + + + +################################################################ +# 1. autoconf requirements +################################################################ +# Autoconf 2.61 (circa 2006) has a bug in AC_FUNC_FSEEKO; don't use it. +# 2.63 was released in 2008. +AC_PREREQ(2.63) + +# Our extra macros are with Easel, in easel/m4. +# It's sort of standard to expect them in m4/, don't +# be confused that they're down in easel. +# +m4_include([easel/m4/ax_gcc_func_attribute.m4]) + +m4_include([easel/m4/esl_sse.m4]) +m4_include([easel/m4/esl_vmx.m4]) + +m4_include([easel/m4/ax_prog_cc_mpi.m4]) +m4_include([easel/m4/ax_pthread.m4]) + +m4_include([easel/m4/esl_pic_flags.m4]) + +################################################################ +# 2. AC_INIT +################################################################ + +AC_INIT(HMMER, 3.3.2, sean@eddylab.org, hmmer) +AC_MSG_NOTICE([Configuring HMMER3 for your system.]) + +# remember if the user is overriding CFLAGS +esl_cflags_env_set=no +if test x"$CFLAGS" != x; then + esl_cflags_env_set=yes +fi + +################################################################ +# 3. Info on the package +################################################################ +# +# AC_INIT args set these output variables and preprocessor symbols: +# PACKAGE_NAME e.g. "HMMER" +# PACKAGE_VERSION e.g. "3.2" +# PACKAGE_BUGREPORT e.g. "sean@eddylab.org" +# PACKAGE_TARNAME e.g. "hmmer" +# From them, AC_INIT automatically derives one more: +# PACKAGE_STRING , e.g. "HMMER 3.2" +# and we define additional output variables of our own: +# HMMER_DATE release date: e.g. "August 2017" +# HMMER_COPYRIGHT one-line copyright string +# HMMER_LICENSE one-line license string +# HMMER_VERSION copy of version code, e.g. "3.2" +# HMMER_URL URL home for HMMER. +# And we have to define the relevant package variables for Easel as well. +# +# We avoid using AC_INIT's PACKAGE_ variables anywhere, because we want to be able +# to use HMMER as a library inside other packages, with no name clashes. +################################################################ + +HMMER_DATE="Nov 2020" +HMMER_COPYRIGHT="Copyright (C) 2020 Howard Hughes Medical Institute." +HMMER_LICENSE="Freely distributed under the BSD open source license." +HMMER_VERSION=$PACKAGE_VERSION +HMMER_URL="http://hmmer.org/" + +HMMER_ESLDIR="easel" +HMMER_SADIR="libdivsufsort" + +EASEL_DATE="Nov 2020" +EASEL_COPYRIGHT="Copyright (C) 2020 Howard Hughes Medical Institute." +EASEL_LICENSE="Freely distributed under the BSD open source license." +EASEL_VERSION="0.48" +EASEL_URL="http://bioeasel.org/" + +AC_SUBST(HMMER_DATE) +AC_SUBST(HMMER_COPYRIGHT) +AC_SUBST(HMMER_LICENSE) +AC_SUBST(HMMER_VERSION) +AC_SUBST(HMMER_URL) + +AC_SUBST(HMMER_ESLDIR) +AC_SUBST(HMMER_SADIR) + +AC_SUBST(EASEL_DATE) +AC_SUBST(EASEL_COPYRIGHT) +AC_SUBST(EASEL_LICENSE) +AC_SUBST(EASEL_VERSION) +AC_SUBST(EASEL_URL) + +AC_DEFINE_UNQUOTED([HMMER_DATE], ["$HMMER_DATE"], [Release date]) +AC_DEFINE_UNQUOTED([HMMER_COPYRIGHT], ["$HMMER_COPYRIGHT"], [Brief copyright statement]) +AC_DEFINE_UNQUOTED([HMMER_LICENSE], ["$HMMER_LICENSE"], [Brief license statement]) +AC_DEFINE_UNQUOTED([HMMER_VERSION], ["$HMMER_VERSION"], [Version number]) +AC_DEFINE_UNQUOTED([HMMER_URL], ["$HMMER_URL"], [HMMER web site]) + +AC_DEFINE_UNQUOTED([EASEL_DATE], ["$EASEL_DATE"], [Easel release date]) +AC_DEFINE_UNQUOTED([EASEL_COPYRIGHT], ["$EASEL_COPYRIGHT"], [Easel copyright]) +AC_DEFINE_UNQUOTED([EASEL_LICENSE], ["$EASEL_LICENSE"], [Easel license]) +AC_DEFINE_UNQUOTED([EASEL_VERSION], ["$EASEL_VERSION"], [Easel version]) +AC_DEFINE_UNQUOTED([EASEL_URL], ["$EASEL_URL"], [Easel web URL]) + + +# Figure out what host we're compiling on. +# Three GNU scripts must be included in the distro: +# install.sh, config.guess, config.sub +# This sets four shell variables: +# host example: i686-pc-linux-gnu +# host_cpu example: i686 +# host_vendor example: pc +# host_os example: linux-gnu +AC_CANONICAL_HOST + + + + +################################################################ +# 4. Process the ./configure command line +################################################################ + +# --enable-debugging - set basic debugging (level 0) +# --enable-debugging=x - set debugging level to (1-3) +# +# At all levels, including 0, replaces CFLAGS w/ "-g -Wall" (so it assumes gcc). +# Sets eslDEBUGLEVEL preprocessor symbol, which compiles in debugging support, to 0..3. +# +AC_ARG_ENABLE(debugging, + [ + AS_HELP_STRING([--enable-debugging],[include debugging code]) + AS_HELP_STRING([--enable-debugging=x],[also set diagnostics verbosity level to (1-3)]) + ], + enable_debugging=$enableval, + enable_debugging=no) + +case $enable_debugging in + yes) AC_DEFINE(eslDEBUGLEVEL, 1, [debugging on (low verbosity)]);; + 1) AC_DEFINE(eslDEBUGLEVEL, 1, [debugging on (low verbosity)]);; + 2) AC_DEFINE(eslDEBUGLEVEL, 2, [debugging on (moderate verbosity)]);; + 3) AC_DEFINE(eslDEBUGLEVEL, 3, [debugging on (high verbosity)]);; + no) AC_DEFINE(eslDEBUGLEVEL, 0, [debugging off]);; + *) AC_MSG_ERROR([Unknown argument to --enable-debugging: $enable_debugging]);; +esac + + +AC_ARG_ENABLE(gcov, [AS_HELP_STRING([--enable-gcov], [compile for code coverage testing])], enable_gcov=$enableval, enable_gcov=no) +AC_ARG_ENABLE(gprof, [AS_HELP_STRING([--enable-gprof], [compile for gcc code profiling])], enable_gprof=$enableval, enable_gprof=no) + +AC_ARG_ENABLE(sse, [AS_HELP_STRING([--enable-sse], [enable our SSE vector code])], enable_sse=$enableval, enable_sse=check) +AC_ARG_ENABLE(vmx, [AS_HELP_STRING([--enable-vmx], [enable our Altivec/VMX vector code])], enable_vmx=$enableval, enable_vmx=check) + +AC_ARG_ENABLE(threads, [AS_HELP_STRING([--enable-threads], [enable POSIX threads parallelization])], enable_threads=$enableval, enable_threads=check) +AC_ARG_ENABLE(mpi, [AS_HELP_STRING([--enable-mpi], [enable MPI parallelization])], enable_mpi=$enableval, enable_mpi=no) + +AC_ARG_ENABLE(pic, [AS_HELP_STRING([--enable-pic], [enable position-independent code])], enable_pic=$enableval, enable_pic=no) + +AC_ARG_WITH(gsl, [AS_HELP_STRING([--with-gsl], [use the GSL, GNU Scientific Library])], with_gsl=$withval, with_gsl=no) + + + + +# If a vector implementation is force-selected, make sure only one is, +# and turn off checking for the others. +vecsel=0 +if test "$enable_sse" = "yes"; then vecsel=$((vecsel+1)); fi +if test "$enable_vmx" = "yes"; then vecsel=$((vecsel+1)); fi +if [[ $vecsel -gt 1 ]]; then + AC_MSG_ERROR([Select only one implementation: sse or vmx]) +elif [[ $vecsel -eq 1 ]]; then + if test "$enable_sse" = "check"; then enable_sse="no"; fi + if test "$enable_vmx" = "check"; then enable_vmx="no"; fi +fi + + +################################################################ +# 5. Checks for programs, including ${CC} and ${CFLAGS}. +################################################################ + +# Choose our compiler - which might be mpicc, if enable_mpi is "yes". +# AX_PROG_CC_MPI will call AC_PROG_CC if enable_mpi is "no". +# +AX_PROG_CC_MPI([test x"$enable_mpi" = xyes], + [AC_DEFINE(HAVE_MPI, 1, [Use MPI parallelization]) + AC_DEFINE(HMMER_MPI, 1, [Use MPI parallelization]) + AC_SUBST([MPI_UTESTS], ["mpi_utest"]) + AC_SUBST([MPI_BENCHMARKS], ["mpi_benchmark"])], + [ if test x"$enable_mpi" = xyes; then + AC_MSG_ERROR([MPI library not found for --enable-mpi]); + fi]) +AC_PROG_CC_STDC +AC_PROG_CPP +AC_PROG_INSTALL +AC_CHECK_TOOL([STRIP],[strip]) +AC_PROG_RANLIB +AC_PATH_PROG([AR], [ar], [:], [$PATH:/usr/ccs/bin:/usr/xpg4/bin]) +AC_PROG_LN_S + +# Select our default optimization flags in CFLAGS. +# --enable-gcov, --enable-gprof, and --enable-debugging are mutually exclusive. +# +if test "$enable_gcov" = "yes"; then + if test "$esl_cflags_env_set" = "yes"; then + AC_MSG_ERROR([--enable-gcov overrides CFLAGS, so don't set CFLAGS]) + fi + CFLAGS="-g -Wall -fprofile-arcs -ftest-coverage" +elif test "$enable_gprof" = "yes"; then + if test "$esl_cflags_env_set" = "yes"; then + AC_MSG_ERROR([--enable-gprof overrides CFLAGS, so don't set CFLAGS]) + fi + CFLAGS="-O -g -pg" +elif test "$enable_debugging" != "no"; then + if test "$GCC" = "yes"; then + CFLAGS="-g -Wall" + fi +elif test "$esl_cflags_env_set" != "yes"; then + CFLAGS="-O3" +fi + + +# PIC (position-independent code) for shared library support +# +if test "$enable_pic" = "yes"; then + ESL_PIC_FLAGS +fi + + +# Support for POSIX multithreading (we should generally have this) +# +if test "$enable_threads" != "no"; then + AX_PTHREAD([ + AC_DEFINE(HAVE_PTHREAD, 1, [Use POSIX threads]) + AC_DEFINE(HMMER_THREADS, 1, [Use POSIX threads]) + AC_SUBST(PTHREAD_LIBS) + AC_SUBST(PTHREAD_CFLAGS) + ],[ + if test "$enable_threads" = "yes"; then + AC_MSG_FAILURE([Unable to compile with POSIX multithreading.]) + fi + enable_threads=no + ]) +fi + + + + +# Support for vector implementations +# +# If we were explicitly told to enable one ($enable_foo="yes") and we +# can't, fail with an error. +# +# If we're autodetecting ($enable_foo="check"), set $enable_foo to the +# result ("yes" or "no"). +# +# If vector support "foo" is enabled: +# - define preprocessor symbol eslENABLE_FOO (esl_config.h.in, p7_config.h.in) +# - set output variable FOO_CFLAGS, if needed (Makefile.in) +# - set shell variable $enable_foo to "yes" +# - set shell variable $impl_choice to "foo" +# and if vector support is available (regardless of whether we +# decide to enable it), the autoconf macros: +# - set shell variable $esl_have_foo to "yes" +# - set shell var $esl_foo_cflags to any necessary compiler flags +# +if test "$enable_vmx" = "yes" || test "$enable_vmx" = "check"; then + ESL_VMX([ + AC_DEFINE(eslENABLE_VMX, 1, [Enable Altivec/VMX vector implementation]) + AC_SUBST([HMMERIMPLLIB], ["impl_vmx/libhmmerimpl.a"]) + VMX_CFLAGS=$esl_vmx_cflags + AC_SUBST(VMX_CFLAGS) + enable_vmx=yes + impl_choice=vmx + ],[ + if test "$enable_vmx" = "yes"; then + AC_MSG_FAILURE([Unable to compile our Altivec/VMX implementations. Try another compiler?]) + fi + enable_vmx=no + ]) +fi + +if test "$enable_sse" = "yes" || test "$enable_sse" = "check"; then + ESL_SSE([ + AC_DEFINE(eslENABLE_SSE, 1, [Enable SSE vector implementation]) + AC_SUBST([HMMERIMPLLIB], ["impl_sse/libhmmerimpl.a"]) + SSE_CFLAGS=$esl_sse_cflags + AC_SUBST(SSE_CFLAGS) + enable_sse=yes + impl_choice=sse + ],[ + if test "$enable_sse" = "yes"; then + AC_MSG_FAILURE([Unable to compile our SSE implementations. Try another compiler?]) + fi + enable_sse=no + ]) +fi + +# If we didn't choose an implementation, die. +case "$impl_choice" in +sse) AC_MSG_NOTICE([Activating Intel/AMD SSE vector DP implementation]) + ;; +vmx) AC_MSG_NOTICE([Activating Altivec/VMX vector DP implementation]) + ;; +*) AC_MSG_NOTICE([::::::::::--- no vector instruction set ---::::::::::]) + AC_MSG_NOTICE([HMMER3 requires SSE or VMX vector instructions.]) + AC_MSG_NOTICE([Supported platforms are x86 (Intel/AMD) and PowerPC.]) + AC_MSG_ERROR([No supported vectorization found for your machine.]) + ;; +esac +IMPL_CHOICE=$impl_choice +AC_SUBST(IMPL_CHOICE) + + + +# Easel has additional vector implementations that HMMER3 does not +# support. Provide blank config for those CFLAGS. +AC_SUBST(SSE4_CFLAGS) +AC_SUBST(AVX_CFLAGS) +AC_SUBST(AVX512_CFLAGS) +AC_SUBST(NEON_CFLAGS) + + +# For x86 processors check if the flush to zero macro is available +# in order to avoid the performance penalty dealing with sub-normal +# values in the floating point calculations. +if test "$impl_choice" = "sse"; then + AC_MSG_CHECKING([whether _MM_SET_FLUSH_ZERO_MODE is supported]) + esl_save_cflags="$CFLAGS" + CFLAGS="$CFLAGS $SSE_CFLAGS" + AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], + [[_MM_SET_FLUSH_ZERO_MODE (_MM_FLUSH_ZERO_ON); + ]])], + [ AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_FLUSH_ZERO_MODE], 1, [Processor supports flush-to-zero mode])], + [ AC_MSG_RESULT([no])] + ) + CFLAGS="$esl_save_cflags" +fi + +# Check if the linker supports library groups for recursive libraries +AS_IF([test "x$impl_choice" != xno], + [AC_MSG_CHECKING([compiler support --start-group]) + LDFLAGS_save=$LDFLAGS + LDFLAGS="-Wl,--start-group -Wl,--end-group $LDFLAGS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AC_MSG_RESULT([yes]) + AC_SUBST([GROUPHMMERLIBS], ["-Wl,--start-group -lhmmer -lhmmerimpl -Wl,--end-group"])], + [AC_MSG_RESULT([no]) + AC_SUBST([GROUPHMMERLIBS], ["-lhmmer -lhmmerimpl"])]) + LDFLAGS=$LDFLAGS_save], + [AC_SUBST([GROUPHMMERLIBS], ["-lhmmer"])]) + +# Define HAVE_GZIP if gzip is in $PATH (or if HAVE_GZIP is already set) +AC_PATH_PROG(HAVE_GZIP, "gzip", "no") +if test "${HAVE_GZIP}" = "no"; then + AC_MSG_WARN([gzip not found]) +else + AC_DEFINE(HAVE_GZIP, 1, [Support external gzip decompression]) +fi + +# We need python 3 for 'make check' and some dev tools. sqc checks +# too, as does the Makefile, but we also check in ./configure, so we +# don't recommend 'make check' to the user if they can't use it. +# +AC_CHECK_PROG(HAVE_PYTHON3, python3, yes) + + +################################################################ +# 6. Checks for libraries +################################################################# +LIBGSL= +AS_IF([test "x$with_gsl" != xno], + [AC_CHECK_LIB([gsl], [gsl_expm1], + [AC_SUBST([LIBGSL], ["-lgsl -lgslcblas"]) + AC_DEFINE([HAVE_LIBGSL], [1], [Define if you have libgsl]) + ], + [if test "x$with_gsl" != xcheck; then + AC_MSG_FAILURE( + [--with-gsl was given, but GSL library was not found]) + fi + ], + [-lgslcblas] + )]) + +# Easel stopwatch high-res timer may try to use clock_gettime, +# which may be in librt +AC_SEARCH_LIBS(clock_gettime, [rt posix4]) + + +################################################################ +# 7. Checks for headers +################################################################# + +# Defines HAVE_SYS_TYPES_H, HAVE_STDINT_H, etc. +AC_CHECK_HEADERS([ \ + endian.h\ + inttypes.h\ + stdint.h\ + unistd.h\ + sys/types.h\ + netinet/in.h +]) + +# Check for sysctl.h separately. On OpenBSD, it requires +# and autoconf needs special logic to deal w. this as +# follows. +AC_CHECK_HEADERS([sys/param.h]) +AC_CHECK_HEADERS([sys/sysctl.h], [], [], +[[#ifdef HAVE_SYS_PARAM_H +#include +#endif +]]) + + +# altivec.h requires the simd cflags +# For reasons I don't understand, this needs to come after any other CHECK_HEADERS(). +if test "$impl_choice" = "vmx"; then + esl_save_CFLAGS="$CFLAGS" + esl_save_CPPFLAGS="$CPPFLAGS" + CFLAGS="$CFLAGS $VMX_CFLAGS" + CPPFLAGS="$CPPFLAGS $VMX_CFLAGS" + AC_CHECK_HEADERS([altivec.h]) + CFLAGS="$esl_save_CFLAGS" + CPPFLAGS="$esl_save_CPPFLAGS" +fi + +################################################################ +# 8. Checks for types +################################################################# +AC_TYPE_UINT8_T +AC_TYPE_UINT16_T +AC_TYPE_UINT32_T +AC_TYPE_UINT64_T +AC_TYPE_OFF_T + + +################################################################ +# 9. Checks for structures - currently none +################################################################ + + +################################################################ +# 10. Checks for compiler characteristics +################################################################ + +AC_C_BIGENDIAN([ + AC_DEFINE(WORDS_BIGENDIAN, 1, [Set autoconf's default WORDS_BIGENDIAN flag]) + ],[ + if test "$enable_vmx" = "yes"; then + AC_MSG_NOTICE([::::::::::--- no vector instruction set ---::::::::::]) + AC_MSG_NOTICE([HMMER3 Altivec/VMX only supports bigendian platforms: e.g. ppc64 not ppc64le]) + AC_MSG_ERROR([No supported vectorization found for your machine.]) + fi + ],[ + AC_MSG_NOTICE([::::::::::--- no vector instruction set ---::::::::::]) + AC_MSG_NOTICE([Couldn't determine byte order for your platform.]) + AC_MSG_NOTICE([HMMER3 vector code is sensitive to byte order.]) + AC_MSG_ERROR([No supported vectorization found for your machine.]) + ]) + +# __attribute__() tags on function declarations +# HAVE_FUNC_ATTRIBUTE_NORETURN +# +# The clang static analyzer can't figure out that some of our +# varargs-dependent fatal error handlers (esl_fatal(), for example) +# cannot return. To tell it so, we take advantage of __attribute__ +# tags on function declarations, a non-ISO gcc extension, when +# available. gcc, clang, and other gcc-like compilers support this. +# +# This gets set in the Easel esl_config.h. +# +AX_GCC_FUNC_ATTRIBUTE(noreturn) + +# HAVE_FUNC_ATTRIBUTE_FORMAT +# +# We have some printf()-style functions that use varargs. +# Apparently when you do something like +# int64_t bigint; +# my_printf("%d", bigint); +# a compiler can't normally detect the size mismatch between the +# specifier (%d) and the argument (bigint). Usually this isn't a +# problem (apparently most platforms cast appropriately) but we had +# problems on ARM. gcc-like compilers allow declaring an attribute +# of format(printf, , ), enabling the +# compiler to typecheck printf()-like arguments, and warn appropriately. +# We only need or use this in development. +# +# This gets set in the Easel esl_config.h. +AX_GCC_FUNC_ATTRIBUTE(format) + + + +################################################################ +# 11. Checks for functions, defining HAVE_FOO when foo is found +################################################################ + +AC_CHECK_FUNCS(mkstemp) +AC_CHECK_FUNCS(popen) +AC_CHECK_FUNCS(putenv) +AC_CHECK_FUNCS(strcasecmp) +AC_CHECK_FUNCS(strsep) +AC_CHECK_FUNCS(times) +AC_CHECK_FUNCS(getpid) +AC_CHECK_FUNCS(sysctl) +AC_CHECK_FUNCS(sysconf) +AC_CHECK_FUNCS(getcwd) +AC_CHECK_FUNCS(chmod) +AC_CHECK_FUNCS(stat) +AC_CHECK_FUNCS(fstat) +AC_CHECK_FUNCS(erfc) + +AC_SEARCH_LIBS(ntohs, socket) +AC_SEARCH_LIBS(ntohl, socket) +AC_SEARCH_LIBS(htons, socket) +AC_SEARCH_LIBS(htonl, socket) +AC_SEARCH_LIBS(socket, socket) +AC_SEARCH_LIBS(inet_pton, nsl) + +AC_FUNC_FSEEKO + + +################################################################# +# 12. System services +################################################################# +AC_SYS_LARGEFILE + + + +################################################################ +# 13. Config subdirs and files +################################################################ + +# HMMER Makefiles. +AC_CONFIG_FILES([ \ + Makefile \ + src/Makefile \ + testsuite/Makefile \ + profmark/Makefile \ + src/impl_${impl_choice}/Makefile \ + documentation/Makefile \ + documentation/man/Makefile \ + documentation/userguide/Makefile \ + documentation/userguide/inclusions/Makefile \ + libdivsufsort/Makefile \ + ]) + +# Easel Makefiles. +AC_CONFIG_FILES([ \ + easel/Makefile \ + easel/miniapps/Makefile \ + easel/testsuite/Makefile \ + easel/documentation/Makefile \ + ]) + +# Substitutions in Userguide .tex files +# HMMER_VERSION, HMMER_DATE, HMMER_COPYRIGHT +AC_CONFIG_FILES([ \ + documentation/userguide/titlepage.tex \ + documentation/userguide/titlepage_daemon.tex \ + documentation/userguide/copyright.tex \ + ]) + +# Substitutions in HMMER man pages: +# HMMER_VERSION, HMMER_DATE, HMMER_COPYRIGHT, HMMER_LICENSE, HMMER_URL +AC_CONFIG_FILES([ \ + documentation/man/alimask.man \ + documentation/man/hmmalign.man \ + documentation/man/hmmbuild.man \ + documentation/man/hmmc2.man \ + documentation/man/hmmconvert.man \ + documentation/man/hmmemit.man \ + documentation/man/hmmer.man \ + documentation/man/hmmfetch.man \ + documentation/man/hmmlogo.man \ + documentation/man/hmmpgmd.man \ + documentation/man/hmmpgmd_shard.man \ + documentation/man/hmmpress.man \ + documentation/man/hmmscan.man \ + documentation/man/hmmsearch.man \ + documentation/man/hmmsim.man \ + documentation/man/hmmstat.man \ + documentation/man/jackhmmer.man \ + documentation/man/makehmmerdb.man \ + documentation/man/nhmmer.man \ + documentation/man/nhmmscan.man \ + documentation/man/phmmer.man \ + ]) + +# Substitutions in Easel man pages: +# EASEL_VERSION, EASEL_DATE, EASEL_COPYRIGHT, EASEL_LICENSE, EASEL_URL +AC_CONFIG_FILES([ \ + easel/miniapps/esl-afetch.man \ + easel/miniapps/esl-alimanip.man \ + easel/miniapps/esl-alimap.man \ + easel/miniapps/esl-alimask.man \ + easel/miniapps/esl-alimerge.man \ + easel/miniapps/esl-alipid.man \ + easel/miniapps/esl-alirev.man \ + easel/miniapps/esl-alistat.man \ + easel/miniapps/esl-compalign.man \ + easel/miniapps/esl-compstruct.man \ + easel/miniapps/esl-construct.man \ + easel/miniapps/esl-histplot.man \ + easel/miniapps/esl-mask.man \ + easel/miniapps/esl-mixdchlet.man \ + easel/miniapps/esl-reformat.man \ + easel/miniapps/esl-selectn.man \ + easel/miniapps/esl-seqrange.man \ + easel/miniapps/esl-seqstat.man \ + easel/miniapps/esl-sfetch.man \ + easel/miniapps/esl-shuffle.man \ + easel/miniapps/esl-ssdraw.man \ + easel/miniapps/esl-translate.man \ + easel/miniapps/esl-weight.man \ + ]) + +AC_CONFIG_HEADERS([easel/decoy_config.h]) # Put this first to keep gnu 'autoheader' from overwriting a real config file. +AC_CONFIG_HEADERS([src/p7_config.h]) +AC_CONFIG_HEADERS([easel/esl_config.h]) +AC_CONFIG_HEADERS([libdivsufsort/divsufsort.h]) + +# the following incantation establishes a symlink of +# src/impl_{whatever} to src/impl in the *build* directory. +# Testsuite sqc tests rely on it. +AC_CONFIG_LINKS([src/impl:${ac_top_build_prefix}src/impl_${impl_choice}]) + + + +################################################################ +# 14. AC_OUTPUT +################################################################ +AC_OUTPUT + +echo " + +HMMER configuration: + compiler: ${CC} ${CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} + host: $host + linker: ${LDFLAGS} + libraries: ${LIBS} ${LIBGSL} ${PTHREAD_LIBS} + DP implementation: ${impl_choice}" + + +if test x"$HAVE_PYTHON3" = x"yes"; then echo " +Now do 'make' to build HMMER, and optionally: + 'make check' to run self tests, + 'make install' to install programs and man pages, + '(cd easel; make install)' to install Easel tools. +"; +else echo " + (No python3 found, so 'make check' is disabled.) + +Now do 'make' to build HMMER, and optionally: + 'make install' to install programs and man pages, + '(cd easel; make install)' to install Easel tools. +"; +fi + diff --git a/bioinformaticsProject/hmmer/documentation/Makefile.in b/bioinformaticsProject/hmmer/documentation/Makefile.in new file mode 100644 index 0000000..e6fdd3c --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/Makefile.in @@ -0,0 +1,42 @@ +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c +QUIET_SUBDIR1 = +ifndef V + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ; echo ' ' SUBDIR $$subdir; \ + ${MAKE} -s -C $$subdir +endif + + +.PHONY: pdf install uninstall clean distclean + +pdf: + ${QUIET_SUBDIR0}userguide ${QUIET_SUBDIR1} pdf + +# install, uninstall are always verbose; do not use quiet beautification +install: + ${MAKE} -C man install + +uninstall: + ${MAKE} -C man uninstall + +clean: + ${QUIET_SUBDIR0}userguide ${QUIET_SUBDIR1} clean + ${QUIET_SUBDIR0}man ${QUIET_SUBDIR1} clean + -rm -f *~ +ifndef V + @echo ' ' CLEAN documentation +endif + + +distclean: + ${QUIET_SUBDIR0}userguide ${QUIET_SUBDIR1} distclean + ${QUIET_SUBDIR0}man ${QUIET_SUBDIR1} distclean + -rm -f *~ + -rm -f Makefile +ifndef V + @echo ' ' CLEAN documentation +endif diff --git a/bioinformaticsProject/hmmer/documentation/man/Makefile.in b/bioinformaticsProject/hmmer/documentation/man/Makefile.in new file mode 100644 index 0000000..158b3ec --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/Makefile.in @@ -0,0 +1,67 @@ +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +SHELL = /bin/sh + +# Installation targets +# +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +mandir = @mandir@ +docdir = @docdir@ +pdfdir = @pdfdir@ +mandir = @mandir@ +man1dir = ${mandir}/man1 +man1ext = .1 + +INSTALL = @INSTALL@ + +MANS = hmmer\ + hmmalign\ + hmmbuild\ + hmmc2\ + hmmconvert\ + hmmemit\ + hmmfetch\ + hmmlogo\ + hmmpgmd\ + hmmpgmd_shard\ + hmmpress\ + hmmscan\ + hmmsearch\ + hmmsim\ + hmmstat\ + jackhmmer\ + makehmmerdb\ + phmmer\ + nhmmer\ + nhmmscan\ + alimask + +.PHONY: install uninstall clean distclean + +install: + for file in ${MANS}; do \ + ${INSTALL} -m 0664 $$file.man ${DESTDIR}${man1dir}/$${file}${man1ext} ;\ + done + +uninstall: + for file in ${MANS}; do \ + rm ${DESTDIR}${man1dir}/$${file}${man1ext} ;\ + done + +clean: + -rm -f *~ +ifndef V + @echo ' ' CLEAN man +endif + +distclean: + -rm -f *~ + -rm -f *.man + -rm -f Makefile + diff --git a/bioinformaticsProject/hmmer/documentation/man/alimask.man.in b/bioinformaticsProject/hmmer/documentation/man/alimask.man.in new file mode 100644 index 0000000..a134677 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/alimask.man.in @@ -0,0 +1,340 @@ +.TH "alimask" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +alimask \- calculate and add column mask to a multiple sequence alignment + +.SH SYNOPSIS +.B alimask +[\fIoptions\fR] +.I msafile +.I postmsafile + + +.SH DESCRIPTION + +.PP +.B alimask +is used to apply a mask line to a multiple sequence +alignment, based on provided alignment or model coordinates. +When +.B hmmbuild +receives a masked alignment as input, it produces a profile +model in which the emission probabilities at masked positions +are set to match the background frequency, rather than being +set based on observed frequencies in the alignment. +Position-specific insertion and deletion rates are not +altered, even in masked regions. +.B alimask +autodetects input format, and produces masked alignments +in Stockholm format. +.I msafile +may contain only one sequence alignment. + +.PP +A common motivation for masking a region in an alignment is +that the region contains a simple tandem repeat that is +observed to cause an unacceptably high rate of false positive +hits. + +.PP +In the simplest case, a mask range is given in coordinates +relative to the input alignment, using +.BI \-\-alirange " ". +However it is more often the case that the region to be +masked has been identified in coordinates relative to +the profile model (e.g. based on recognizing a simple +repeat pattern in false hit alignments or in the HMM logo). +Not all alignment columns are converted to match state +positions in the profile (see the +.B \-\-symfrac +flag for +.B hmmbuild +for discussion), so model positions do not necessarily match +up to alignment column positions. +To remove the burden of converting model positions to +alignment positions, +.B alimask +accepts the mask range input in model coordinates as well, +using +.BI \-\-modelrange " ". +When using this flag, +.I alimask +determines which alignment positions would be identified by +.B hmmbuild +as match states, a process that requires that all +.B hmmbuild +flags impacting that decision be supplied to +.BR alimask . +It is for this reason that many of the +.B hmmbuild +flags are also used by +.BR alimask . + + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.BI \-o " " +Direct the summary output to file +.IR , +rather than to stdout. + + +.SH OPTIONS FOR SPECIFYING MASK RANGE + +A single mask range is given as a dash-separated pair, like +.B "\-\-modelrange 10\-20" +and multiple ranges may be submitted as a comma-separated list, +.BR "\-\-modelrange 10\-20,30\-42" . + + +.TP +.BI \-\-modelrange " " +Supply the given range(s) in model coordinates. + +.TP +.BI \-\-alirange " " +Supply the given range(s) in alignment coordinates. + +.TP +.B \-\-apendmask +Add to the existing mask found with the alignment. +The default is to overwrite any existing mask. + +.TP +.BI \-\-model2ali " " +Rather than actually produce the masked alignment, simply +print model range(s) corresponding to input alignment +range(s). + +.TP +.BI \-\-ali2model " " +Rather than actually produce the masked alignment, simply +print alignment range(s) corresponding to input model +range(s). + + +.SH OPTIONS FOR SPECIFYING THE ALPHABET + +.TP +.B \-\-amino +Assert that sequences in +.I msafile +are protein, bypassing alphabet autodetection. + +.TP +.B \-\-dna +Assert that sequences in +.I msafile +are DNA, bypassing alphabet autodetection. + +.TP +.B \-\-rna +Assert that sequences in +.I msafile +are RNA, bypassing alphabet autodetection. + + + +.SH OPTIONS CONTROLLING PROFILE CONSTRUCTION + +These options control how consensus columns are defined in an alignment. + +.TP +.B \-\-fast +Define consensus columns as those that have a fraction >= +.B symfrac +of residues as opposed to gaps. (See below for the +.B \-\-symfrac +option.) This is the default. + +.TP +.B \-\-hand +Define consensus columns in next profile using reference annotation to +the multiple alignment. +This allows you to define any consensus columns you like. + +.TP +.BI \-\-symfrac " " +Define the residue fraction threshold necessary to define a +consensus column when using the +.B \-\-fast +option. The default is 0.5. The symbol fraction in each column +is calculated after taking relative sequence weighting into account, +and ignoring gap characters corresponding to ends of sequence +fragments +(as opposed to internal insertions/deletions). +Setting this to 0.0 means that every alignment column will be assigned +as consensus, which may be useful in some cases. Setting it to 1.0 +means that only columns that include 0 gaps (internal +insertions/deletions) will be assigned as consensus. + +.TP +.BI \-\-fragthresh " " +We only want to count terminal gaps as deletions if the aligned +sequence is known to be full-length, not if it is a fragment (for +instance, because only part of it was sequenced). HMMER uses a simple +rule to infer fragments: if the sequence length L is less than +or equal to a fraction +.I +times the alignment length in columns, +then the sequence is handled as a fragment. The default is 0.5. +Setting +.B \-\-fragthresh 0 +will define no (nonempty) sequence as a fragment; you might want to do +this if you know you've got a carefully curated alignment of full-length +sequences. +Setting +.B \-\-fragthresh 1 +will define all sequences as fragments; you might want to do this if +you know your alignment is entirely composed of fragments, such as +translated short reads in metagenomic shotgun data. + + +.SH OPTIONS CONTROLLING RELATIVE WEIGHTS + +HMMER uses an ad hoc sequence weighting algorithm to downweight +closely related sequences and upweight distantly related ones. This +has the effect of making models less biased by uneven phylogenetic +representation. For example, two identical sequences would typically +each receive half the weight that one sequence would. These options +control which algorithm gets used. + +.TP +.B \-\-wpb +Use the Henikoff position-based sequence weighting scheme [Henikoff +and Henikoff, J. Mol. Biol. 243:574, 1994]. This is the default. + +.TP +.B \-\-wgsc +Use the Gerstein/Sonnhammer/Chothia weighting algorithm [Gerstein et +al, J. Mol. Biol. 235:1067, 1994]. + +.TP +.B \-\-wblosum +Use the same clustering scheme that was used to weight data in +calculating BLOSUM subsitution matrices [Henikoff and Henikoff, +Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage +clustered at an identity threshold (default 0.62; see +.BR \-\-wid ) +and within each cluster of c sequences, each sequence gets relative +weight 1/c. + +.TP +.B \-\-wnone +No relative weights. All sequences are assigned uniform weight. + +.TP +.BI \-\-wid " " +Sets the identity threshold used by single-linkage clustering when +using +.BR \-\-wblosum . +Invalid with any other weighting scheme. Default is 0.62. + + + + + +.SH OTHER OPTIONS + +.TP +.BI \-\-informat " " +Assert that input +.I msafile +is in alignment format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBa2m\fR or \fBA2M\fR both work). + + +.TP +.BI \-\-outformat " " +Write the output +.I postmsafile +in alignment format +.IR . +Common choices for +.I +include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +The string +.I +is case-insensitive (\fBa2m\fR or \fBA2M\fR both work). +Default is +.BR stockholm . + + +.TP +.BI \-\-seed " " +Seed the random number generator with +.IR , +an integer >= 0. +If +.I +is nonzero, any stochastic simulations will be reproducible; the same +command will give the same results. +If +.I +is 0, the random number generator is seeded arbitrarily, and +stochastic simulations will vary from run to run of the same command. +The default seed is 42. + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmalign.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmalign.man.in new file mode 100644 index 0000000..4d72e86 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmalign.man.in @@ -0,0 +1,185 @@ +.TH "hmmalign" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmalign \- align sequences to a profile + +.SH SYNOPSIS +.B hmmalign +[\fIoptions\fR] +.I hmmfile +.I seqfile + +.SH DESCRIPTION + +.PP +Perform a multiple sequence alignment of all the sequences in +.I seqfile +by aligning them individually to the profile HMM in +.I hmmfile. +The new alignment is output to stdout. + +.PP +The +.I hmmfile +should contain only a single profile. If it contains more, only the +first profile in the file will be used. + +.PP +Either +.I hmmfile +or +.I seqfile +(but not both) may be '\-' (dash), which +means reading this input from stdin rather than a file. + +.PP +The sequences in +.I seqfile +are aligned in unihit local alignment mode. Therefore they should +already be known to contain only a single domain (or a fragment of one). +The optimal alignment +may assign some residues as nonhomologous (N and C states), in which +case these residues are still included in the resulting alignment, but +shoved to the outer edges. To trim these unaligned nonhomologous residues from +the result, see the +.B \-\-trim +option. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.BI \-o " " +Direct the output alignment to file +.I , +rather than to stdout. + +.TP +.BI \-\-mapali " " +Merge the existing alignment in file +.I +into the result, where +.I +is exactly the same alignment that was used to build the model in +.I hmmfile. +This is done using a map of alignment columns to consensus +profile positions that is stored in the +.I hmmfile. +The multiple alignment in +.I +will be exactly reproduced in its consensus columns (as defined by the +profile), but the displayed alignment in insert columns may be +altered, because insertions relative to a profile are considered by +convention to be unaligned data. + + +.TP +.B \-\-trim +Trim nonhomologous residues (assigned to N and C states in the optimal +alignments) from the resulting multiple alignment output. + +.TP +.B \-\-amino +Assert that sequences in +.I seqfile +are protein, bypassing alphabet autodetection. + +.TP +.B \-\-dna +Assert that sequences in +.I seqfile +are DNA, bypassing alphabet autodetection. + +.TP +.B \-\-rna +Assert that sequences in +.I seqfile +are RNA, bypassing alphabet autodetection. + + +.TP +.BI \-\-informat " " +Assert that input +.I seqfile +is in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank. +Alignment formats also work; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work). + +.TP +.BI \-\-outformat " " +Write the output alignment +in format +.IR . +Common choices for +.I +include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +The string +.I +is case-insensitive (\fBa2m\fR or \fBA2M\fR both work). +Default is +.BR stockholm . + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmbuild.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmbuild.man.in new file mode 100644 index 0000000..7a14d86 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmbuild.man.in @@ -0,0 +1,556 @@ +.TH "hmmbuild" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmbuild \- construct profiles from multiple sequence alignments + +.SH SYNOPSIS +.B hmmbuild +[\fIoptions\fR] +.I hmmfile +.I msafile + + +.SH DESCRIPTION + +For each multiple sequence alignment in +.I msafile +build a profile HMM +and save it to a new file +.IR hmmfile . + + +.PP +.I msafile +may be '\-' (dash), which means +reading this input from stdin rather than a file. + + +.PP +.I hmmfile +may not be '\-' (stdout), because sending the HMM file to stdout would +conflict with the other text output of the program. + + + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.BI \-n " " +Name the new profile +.IR . +The default is to use the name of the alignment (if one is present in +the +.IR msafile , +or, failing that, the name of the +.IR hmmfile . +If +.I msafile +contains more than one alignment, +.B \-n +doesn't work, and every alignment must have a name +annotated in the +.I msafile +(as in Stockholm #=GF ID annotation). + + +.TP +.BI \-o " " +Direct the summary output to file +.IR , +rather than to stdout. + +.TP +.BI \-O " " +After each model is constructed, resave annotated, possibly modified +source alignments to a file +.I +in Stockholm format. +The alignments are annotated with a reference annotation line +indicating which columns were assigned as consensus, and sequences are +annotated with what relative sequence weights were assigned. Some +residues of the alignment may have been shifted to accommodate +restrictions of the Plan7 profile architecture, which disallows +transitions between insert and delete states. + + +.SH OPTIONS FOR SPECIFYING THE ALPHABET + +.TP +.B \-\-amino +Assert that sequences in +.I msafile +are protein, bypassing alphabet autodetection. + +.TP +.B \-\-dna +Assert that sequences in +.I msafile +are DNA, bypassing alphabet autodetection. + +.TP +.B \-\-rna +Assert that sequences in +.I msafile +are RNA, bypassing alphabet autodetection. + +.SH OPTIONS CONTROLLING PROFILE CONSTRUCTION + +These options control how consensus columns are defined in an alignment. + +.TP +.B \-\-fast +Define consensus columns as those that have a fraction >= +.B symfrac +of residues as opposed to gaps. (See below for the +.B \-\-symfrac +option.) This is the default. + +.TP +.B \-\-hand +Define consensus columns in next profile using reference annotation to +the multiple alignment. +This allows you to define any consensus columns you like. + +.TP +.BI \-\-symfrac " " +Define the residue fraction threshold necessary to define a +consensus column when using the +.B \-\-fast +option. The default is 0.5. The symbol fraction in each column +is calculated after taking relative sequence weighting into account, +and ignoring gap characters corresponding to ends of sequence +fragments +(as opposed to internal insertions/deletions). +Setting this to 0.0 means that every alignment column will be assigned +as consensus, which may be useful in some cases. Setting it to 1.0 +means that only columns that include 0 gaps (internal +insertions/deletions) will be assigned as consensus. + +.TP +.BI \-\-fragthresh " " +We only want to count terminal gaps as deletions if the aligned +sequence is known to be full-length, not if it is a fragment (for +instance, because only part of it was sequenced). HMMER uses a simple +rule to infer fragments: if the range of a sequence in the alignment +(the number of alignment columns between the first and last positions +of the sequence) is less than or equal to a fraction +.I +times the alignment length in columns, +then the sequence is handled as a fragment. The default is 0.5. +Setting +.B \-\-fragthresh 0 +will define no (nonempty) sequence as a fragment; you might want to do +this if you know you've got a carefully curated alignment of full\-length +sequences. +Setting +.B \-\-fragthresh 1 +will define all sequences as fragments; you might want to do this if +you know your alignment is entirely composed of fragments, such as +translated short reads in metagenomic shotgun data. + + +.SH OPTIONS CONTROLLING RELATIVE WEIGHTS + +HMMER uses an ad hoc sequence weighting algorithm to downweight +closely related sequences and upweight distantly related ones. This +has the effect of making models less biased by uneven phylogenetic +representation. For example, two identical sequences would typically +each receive half the weight that one sequence would. These options +control which algorithm gets used. + +.TP +.B \-\-wpb +Use the Henikoff position-based sequence weighting scheme [Henikoff +and Henikoff, J. Mol. Biol. 243:574, 1994]. This is the default. + +.TP +.B \-\-wgsc +Use the Gerstein/Sonnhammer/Chothia weighting algorithm [Gerstein et +al, J. Mol. Biol. 235:1067, 1994]. + +.TP +.B \-\-wblosum +Use the same clustering scheme that was used to weight data in +calculating BLOSUM subsitution matrices [Henikoff and Henikoff, +Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage +clustered at an identity threshold (default 0.62; see +.BR \-\-wid ) +and within each cluster of c sequences, each sequence gets relative +weight 1/c. + +.TP +.B \-\-wnone +No relative weights. All sequences are assigned uniform weight. + +.TP +.BI \-\-wid " " +Sets the identity threshold used by single-linkage clustering when +using +.BR \-\-wblosum . +Invalid with any other weighting scheme. Default is 0.62. + + + + +.SH OPTIONS CONTROLLING EFFECTIVE SEQUENCE NUMBER + +After relative weights are determined, they are normalized to sum to a +total effective sequence number, +.IR eff_nseq . +This number may be the actual number of sequences in the alignment, +but it is almost always smaller than that. +The default entropy weighting method +(\fB\-\-eent\fR) +reduces the effective sequence +number to reduce the information content (relative entropy, or average +expected score on true homologs) per consensus position. The target +relative entropy is controlled by a two-parameter function, where the +two parameters are settable with +.B \-\-ere +and +.BR \-\-esigma . + +.TP +.B \-\-eent +Adjust effective sequence number to achieve a specific relative entropy +per position (see +.BR \-\-ere ). +This is the default. + +.TP +.B \-\-eclust +Set effective sequence number to the number of single-linkage clusters +at a specific identity threshold (see +.BR \-\-eid ). +This option is not recommended; it's for experiments evaluating +how much better +.B \-\-eent +is. + +.TP +.B \-\-enone +Turn off effective sequence number determination and just use the +actual number of sequences. One reason you might want to do this is +to try to maximize the relative entropy/position of your model, which +may be useful for short models. + +.TP +.BI \-\-eset " " +Explicitly set the effective sequence number for all models to +.IR . + +.TP +.BI \-\-ere " " +Set the minimum relative entropy/position target to +.IR . +Requires +.BR \-\-eent . +Default depends on the sequence alphabet. For protein +sequences, it is 0.59 bits/position; for nucleotide +sequences, it is 0.45 bits/position. + +.TP +.BI \-\-esigma " " +Sets the minimum relative entropy contributed by an entire +model alignment, over its whole length. This has the effect +of making short models have +higher relative entropy per position than +.B \-\-ere +alone would give. The default is 45.0 bits. + +.TP +.BI \-\-eid " " +Sets the fractional pairwise identity cutoff used by +single linkage clustering with the +.B \-\-eclust +option. The default is 0.62. + + +.SH OPTIONS CONTROLLING PRIORS + +By default, weighted counts are converted to mean posterior +probability parameter estimates using mixture Dirichlet priors. +Default mixture Dirichlet prior parameters for protein models and for +nucleic acid (RNA and DNA) models are built in. The following options +allow you to override the default priors. + +.TP +.B \-\-pnone +Don't use any priors. Probability parameters will simply be the +observed frequencies, after relative sequence weighting. + +.TP +.B \-\-plaplace +Use a Laplace +1 prior in place of the default mixture Dirichlet +prior. + + + + +.SH OPTIONS CONTROLLING SINGLE SEQUENCE SCORING + +By default, if a query is a single sequence from a file in +.IR fasta +format, +.B hmmbuild +constructs a search model from that sequence and a standard +20x20 substitution matrix for residue probabilities, along with two +additional parameters for position-independent gap open and gap extend +probabilities. These options allow the default single-sequence scoring +parameters to be changed, and for single-sequence scoring options to +be applied to a single sequence coming from an aligned format. + +.TP +.BI \-\-singlemx +If a single sequence query comes from a multiple sequence alignment file, +such as in +.IR stockholm +format, the search model is by default constructed as is typically done +for multiple sequence alignments. This option forces +.B hmmbuild +to use the single-sequence method with substitution score matrix. + +.TP +.BI \-\-mx " " +Obtain residue alignment probabilities from the built-in +substitution matrix named +.IR . +Several standard matrices are built-in, and do not need to be +read from files. +The matrix name +.I +can be +PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80, +BLOSUM90, or DNA1. +Only one of the +.B \-\-mx +and +.B \-\-mxfile +options may be used. + +.TP +.BI \-\-mxfile " " +Obtain residue alignment probabilities from the substitution matrix +in file +.IR . +The default score matrix is BLOSUM62 for protein sequences, and +DNA1 for nucleotide sequences (these matrices are internal to +HMMER and do not need to be available as a file). +The format of a substitution matrix +.I +is the standard format accepted by BLAST, FASTA, and other sequence +analysis software. +See ftp.ncbi.nlm.nih.gov/blast/matrices/ for example files. (The only +exception: we require matrices to be square, so for DNA, use files +like NCBI's NUC.4.4, not NUC.4.2.) + +.TP +.BI \-\-popen " " +Set the gap open probability for a single sequence query model to +.IR . +The default is 0.02. +.I +must be >= 0 and < 0.5. + +.TP +.BI \-\-pextend " " +Set the gap extend probability for a single sequence query model to +.IR . +The default is 0.4. +.I +must be >= 0 and < 1.0. + + +.SH OPTIONS CONTROLLING E-VALUE CALIBRATION + +The location parameters for the expected score distributions for MSV +filter scores, Viterbi filter scores, and Forward scores require three +short random sequence simulations. + +.TP +.BI \-\-EmL " " +Sets the sequence length in simulation that estimates the location +parameter mu for MSV filter E-values. Default is 200. + +.TP +.BI \-\-EmN " " +Sets the number of sequences in simulation that estimates the location +parameter mu for MSV filter E-values. Default is 200. + +.TP +.BI \-\-EvL " " +Sets the sequence length in simulation that estimates the location +parameter mu for Viterbi filter E-values. Default is 200. + +.TP +.BI \-\-EvN " " +Sets the number of sequences in simulation that estimates the location +parameter mu for Viterbi filter E-values. Default is 200. + +.TP +.BI \-\-EfL " " +Sets the sequence length in simulation that estimates the location +parameter tau for Forward E-values. Default is 100. + +.TP +.BI \-\-EfN " " +Sets the number of sequences in simulation that estimates the location +parameter tau for Forward E-values. Default is 200. + +.TP +.BI \-\-Eft " " +Sets the tail mass fraction to fit in the simulation that estimates +the location parameter tau for Forward evalues. Default is 0.04. + + +.SH OTHER OPTIONS + +.TP +.BI \-\-cpu " " +Set the number of parallel worker threads to +.IR . +On multicore machines, the default is 2. +You can also control this number by setting an environment variable, +.IR HMMER_NCPU . +There is also a master thread, so the actual number of threads that +HMMER spawns is +.IR +1. + +This option is not available if HMMER was compiled with POSIX threads +support turned off. + + + +.TP +.BI \-\-informat " " +Assert that input +.I msafile +is in alignment format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBa2m\fR or \fBA2M\fR both work). + + +.TP +.BI \-\-seed " " +Seed the random number generator with +.IR , +an integer >= 0. +If +.I +is nonzero, any stochastic simulations will be reproducible; the same +command will give the same results. +If +.I +is 0, the random number generator is seeded arbitrarily, and +stochastic simulations will vary from run to run of the same command. +The default seed is 42. + + +.TP +.BI \-\-w_beta " " +Window length tail mass. +The upper bound, +.IR W , +on the length at which nhmmer expects to find an instance of the +model is set such that the fraction of all sequences generated +by the model with length +.I ">= W" +is less than +.IR . +The default is 1e-7. + + + +.TP +.BI \-\-w_length " " +Override the model instance length upper bound, +.IR W , +which is otherwise controlled by +.BR \-\-w_beta . +It should be larger than the model length. The value of +.I W +is used deep in the acceleration pipeline, and modest changes +are not expected to impact results (though larger values of +.I W +do lead to longer run time). + + +.TP +.B \-\-mpi +Run as a parallel MPI program. Each alignment is assigned to a MPI +worker node for construction. (Therefore, the maximum parallelization +cannot exceed the number of alignments in the input +.IR msafile .) +This is useful when building large profile libraries. This option is +only available if optional MPI capability was enabled at compile-time. + + +.TP +.B \-\-stall +For debugging MPI parallelization: arrest program execution +immediately after start, and wait for a debugger to attach to the +running process and release the arrest. + + +.TP +.BI \-\-maxinsertlen " " +Restrict insert length parameterization such that the expected +insert length at each position of the model is no more than +.IR . + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmc2.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmc2.man.in new file mode 100644 index 0000000..473659b --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmc2.man.in @@ -0,0 +1,78 @@ +.TH "hmmc2" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmc2 \- example client for the HMMER daemon + + +.SH SYNOPSIS +.B hmmc2 +[\fIoptions\fR] + + +.SH DESCRIPTION + +.PP +.B Hmmc2 +is a text client for the hmmpgmd or hmmpgmd_shard daemons. When run, it opens a connection to a daemon at the specified +IP address and port, and then enters an interactive loop waiting for the user to input commands to be sent to the daemon. +See the User's Guide for the HMMER Daemon for a discussion of hmmpgmd's command format. + + +.SH OPTIONS + +.TP +.B \-i +Specify the IP address of the daemon that hmmc2 should connect to. Defaults to 127.0.0.1 if not provided + + +.TP +.B \-p +Specify the port number that the daemon is listening on. Defaults to 51371 if not provided + + +.TP +.B \-S +Print the scores of any hits found during searches. + + +.TP +.B \-A +Print the alignment of any hits found during searches. This is a superset of the "-S" flag, so providing both is redundant. + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmconvert.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmconvert.man.in new file mode 100644 index 0000000..468b92e --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmconvert.man.in @@ -0,0 +1,106 @@ +.TH "hmmconvert" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmconvert \- convert profile file to various formats + + +.SH SYNOPSIS +.B hmmconvert +[\fIoptions\fR] +.I hmmfile + + +.SH DESCRIPTION + +.PP +The +.B hmmconvert +utility +converts an input profile file to different HMMER formats. + +.PP +By default, the input profile can be in any HMMER format, including +old/obsolete formats from HMMER2, ASCII or binary; the output profile +is a current HMMER3 ASCII format. + +.PP +.I hmmfile +may be '\-' (dash), which means reading this input from stdin rather +than a file. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.B \-a +Output profiles in ASCII text format. This is the default. + +.TP +.B \-b +Output profiles in binary format. + +.TP +.B \-2 +Output in legacy HMMER2 ASCII text format, in ls (glocal) mode. This +allows HMMER3 models to be converted back to a close approximation of +HMMER2, for comparative studies. + +.TP +.BI \-\-outfmt " " +Output in a HMMER3 ASCII text format other then the most current one. +Valid choices for +.I +are +.B "3/a" +through +.BR "3/f" . +The current format is +.BR 3/f , +and this is the default. The format +.B 3/b +was used in the official HMMER3 release, and the others were used in +the various testing versions. + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + +" + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmemit.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmemit.man.in new file mode 100644 index 0000000..4f3d83e --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmemit.man.in @@ -0,0 +1,250 @@ +.TH "hmmemit" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmemit \- sample sequences from a profile + +.SH SYNOPSIS +.B hmmemit +[\fIoptions\fR] +.I hmmfile + + +.SH DESCRIPTION + +.PP +The +.B hmmemit +program +samples (emits) sequences from the profile HMM(s) in +.IR hmmfile , +and writes them to output. +Sampling sequences may be useful for a variety of purposes, including +creating synthetic true positives for benchmarks or tests. + +.PP +The default is to sample one unaligned sequence from the core +probability model, which means that each sequence consists of one +full-length domain. Alternatively, with the +.B \-c +option, you can emit a simple majority-rule consensus sequence; +or with the +.B \-a +option, you can emit an alignment (in which case, you probably +also want to set +.B \-N +to something other than its default of 1 sequence per model). + +.PP +As another option, with the +.B \-p +option you can sample a sequence from a fully configured HMMER search +profile. This means sampling a `homologous sequence' by HMMER's +definition, including nonhomologous flanking sequences, local +alignments, and multiple domains per sequence, depending on the length +model and alignment mode chosen for the profile. + +.PP +The +.I hmmfile +may contain a library of HMMs, in which case +each HMM will be used in turn. + +.PP +.I hmmfile +may be '\-' (dash), which +means reading this input from stdin rather than a file. + + +.SH COMMON OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + +.TP +.BI \-o " " +Direct the output sequences to file +.IR , +rather than to stdout. + +.TP +.BI \-N " " +Sample +.I +sequences per model, rather than just one. + + + +.SH OPTIONS CONTROLLING WHAT TO EMIT + +The default is to sample +.B N +sequences from the core model. Alternatively, +you may choose one (and only one) of the following alternatives. + + +.TP +.B \-a +Emit an alignment for each HMM in the +.I hmmfile +rather than sampling unaligned sequences one at a time. + +.TP +.B \-c +Emit a plurality-rule consensus sequence, instead of sampling a +sequence from the profile HMM's probability distribution. The +consensus sequence is formed by selecting the maximum probability +residue at each match state. + +.TP +.B \-C +Emit a fancier plurality-rule consensus sequence than the +.B \-c +option. If the maximum probability residue has p < +.B minl +show it as a lower case 'any' residue (n or x); if p >= +.B minl +and < +.B minu +show it as a lower case residue; and if p >= +.B minu +show it as an upper case residue. +The default settings of +.B minu +and +.B minl +are both 0.0, which means +.B \-C +gives the same output as +.B \-c +unless you also set +.B minu +and +.B minl +to what you want. + +.TP +.B \-p +Sample unaligned sequences from the implicit search profile, not from +the core model. The core model consists only of the homologous states +(between the begin and end states of a HMMER Plan7 model). The profile +includes the nonhomologous N, C, and J states, local/glocal and +uni/multihit algorithm configuration, and the target length model. +Therefore sequences sampled from a profile may include nonhomologous +as well as homologous sequences, and may contain more than one +homologous sequence segment. By default, the profile is in multihit +local mode, and the target sequence length is configured for L=400. + + + + +.SH OPTIONS CONTROLLING EMISSION FROM PROFILES + +These options require that you have set the +.B \-p +option. + +.TP +.BI \-L " " +Configure the profile's target sequence length model to generate a +mean length of approximately rather than the default of 400. + +.TP +.B \-\-local +Configure the profile for multihit local alignment. + +.TP +.B \-\-unilocal +Configure the profile for unihit local alignment (Smith/Waterman). + +.TP +.B \-\-glocal +Configure the profile for multihit glocal alignment. + +.TP +.B \-\-uniglocal +Configure the profile for unihit glocal alignment. + + +.SH OPTIONS CONTROLLING FANCY CONSENSUS EMISSION + +These options require that you have set the +.B \-C +option. + +.TP +.BI \-\-minl " " +Sets the +.B minl +threshold for showing weakly conserved residues as lower case. +(0 <= x <= 1) + +.TP +.BI \-\-minu " " +Sets the +.B minu +threshold for showing strongly conserved residues as upper case. +(0 <= x <= 1) + + + +.SH OTHER OPTIONS + +.TP +.BI \-\-seed " " +Seed the random number generator with +.IR , +an integer >= 0. +If +.I +is nonzero, any stochastic simulations will be reproducible; the same +command will give the same results. +If +.I +is 0, the random number generator is seeded arbitrarily, and +stochastic simulations will vary from run to run of the same command. +The default is 0: use an arbitrary seed, so different +.B hmmemit +runs will generate different samples. + + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmer.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmer.man.in new file mode 100644 index 0000000..6ab6542 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmer.man.in @@ -0,0 +1,199 @@ +.TH "HMMER" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME + +HMMER \- profile HMMs for biological sequence analysis + +.SH SYNOPSIS + +.nf +.B hmmalign + Align sequences to a profile + +.B hmmbuild + Construct profiles from multiple sequence alignments + +.B hmmconvert + Convert profile file to various formats + +.B hmmemit + Sample sequences from a profile + +.B hmmfetch + Retrieve profiles from a file + +.B hmmlogo + Produce a conservation logo graphic from a profile + +.B hmmpgmd + Daemon for database search web services + +.B hmmpress + Prepare a profile database for hmmscan + +.B hmmscan + Search sequence(s) against a profile database + +.B hmmsearch + Search profile(s) against a sequence database + +.B hmmsim + Collect profile score distributions on random sequences + +.B hmmstat + Summary statistics for a profile file + +.B jackhmmer + Iteratively search sequence(s) against a sequence database + +.B makehmmerdb + build nhmmer database from a sequence file + +.B nhmmer + Search DNA/RNA queries against a DNA/RNA sequence database + +.B nhmmscan + Search DNA/RNA sequence(s) against a DNA/RNA profile database + +.B phmmer + Search protein sequence(s) against a protein sequence database + +.B alimask + Calculate and add column mask to a multiple sequence alignment +.fi + +.SH DESCRIPTION + +HMMER is a suite of several programs for biological sequence alignment +and database homology search. It uses probabilistic models called +"profile hidden Markov models" (profile HMMs) to represent the likely +evolutionary homologs of a single sequence or a multiple alignment of +a sequence family. A main avenue of research is to improve the +evolutionary predictive models in HMMER to be able to recognize and +accurately align increasingly remote homologs, distant in time. + +HMMER is also used as an organizational tool, to group the +exponentially growing number of biological sequences into a vastly +smaller set of well-annotated sequence families. New sequences can be +annotated by comparison against curated sequence family databases of +prebuilt HMMER profiles, in addition or instead of comparison to the +entire sequence database. Databases such as Pfam, SMART, and +TIGRfams, among others, are based on this principle. + +HMMER is used in three main modes: to search a sequence database for +new homologs of a sequence or a sequence family; to search a profile +database (like Pfam) to find what known family a query sequence +belongs to, or what domains it has; and to automatically construct +large multiple alignments (i.e. with an effectively unlimited number +of sequences) using a profile representative of a sequence family. + + +Suppose you have a multiple sequence alignment of a sequence family of +interest, and you want to search a sequence database for additional +homologs. The +.B hmmbuild +program builds profile(s) from multiple alignment(s). +The +.B hmmsearch +program searches protein profile(s) against a protein sequence database, +and +.B nhmmer +searches nucleotide profile(s) against a nucleotide sequence database. + +Suppose you have a single sequence of interest, and you want to search +a sequence database for additional homologs. The +.B phmmer +program searches a single protein sequence against a protein sequence +database. The +.B jackhmmer +program does the same thing but iteratively -- homologs detected in a +previous round are incorporated into a new profile, and the new +profile is searched again. +.B phmmer +is used like BLASTP, and +.B jackhmmer +is used like a protein PSI-BLAST. The +.B nhmmer +program searches a single nucleotide sequence against a nucleotide sequence. + +Suppose you have sequence(s) that you want to analyze using a +HMMER-based profile HMM database like Pfam (http://pfam.sanger.ac.uk). +The +.B hmmpress +program formats a profile HMM flatfile (such as the file you +would download from Pfam) into a HMMER binary database. +The +.B hmmscan +program searches protein sequence(s) against that database. +The +.B nhmmscan +program can similarly search nucleotide sequence(s) against +a pressed database of nucleotide profiles, such as from +Dfam (http://dfam.janelia.org). + + +Suppose you want to align lots of sequences. You can construct a +manageably small alignment of a representative set of sequences, +build a profile with +.BR hmmbuild , +and use the +.B hmmalign +program to align any number of sequences to that profile. + +HMMER also includes some auxiliary tools for working with large +profile databases. +.B hmmfetch +fetches one or more profiles from a database. +.B hmmstat +prints summary statistics about a profile file. + +For compatibility with other profile software and previous versions of +HMMER, the +.B hmmconvert +program converts profiles to a few other formats. We intend to add +more support for other formats over time. + +The +.B hmmemit +program generates (simulates) "homologous" sequences by sampling from +a profile. It can also generate a "consensus" sequence. + +The +.B hmmsim +program is a simulator used for collecting statistics about score +distributions on random sequences. + +Each program has its own man page. + + +.SH SEE ALSO + +This is a summary man page for the entire HMMER3 package. +See individual man pages +[\fBhmmbuild\fR(1), +for example] for usage, options, and description of each program in the package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmfetch.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmfetch.man.in new file mode 100644 index 0000000..e621892 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmfetch.man.in @@ -0,0 +1,195 @@ +.TH "hmmfetch" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmfetch \- retrieve profiles from a file + +.SH SYNOPSIS + +.nf +\fBhmmfetch\fR [\fIoptions\fR] \fIhmmfile key\fR + (retrieve HMM named \fIkey\fR) + +\fBhmmfetch \-f \fR[\fIoptions\fR] \fIhmmfile keyfile\fR + (retrieve all HMMs listed in \fIkeyfile\fR) + +\fBhmmfetch \-\-index \fR[\fIoptions\fR] \fIhmmfile\fR + (index \fIhmmfile\fR for fetching) +.fi + +.SH DESCRIPTION + +.PP +Quickly retrieves one or more profile HMMs from an +.I hmmfile +(a large Pfam database, for example). + +.PP +For maximum speed, the +.I hmmfile +should be indexed first, using +.BR "hmmfetch \-\-index" . +The index is a binary file named +.IR hmmfile .ssi. +However, this is optional, and retrieval will still +work from unindexed files, albeit much more slowly. + +.PP +The default mode is to retrieve a single profile by name or +accession, called the +.IR key . +For example: + +.nf + \fB% hmmfetch Pfam-A.hmm Caudal_act\fR + \fB% hmmfetch Pfam-A.hmm PF00045\fR +.fi + +.PP +With the +.B \-f +option, a +.I keyfile +containing a list of one or more keys is read instead. +The first whitespace-delimited field on each non-blank non-comment +line of the +.I keyfile +is used as a +.IR key , +and any remaining data on the line is ignored. This allows +a variety of whitespace delimited datafiles to be used +as a +.IR keyfile . + +.PP +When using +.B \-f +and a +.IR keyfile , +if +.B hmmfile +has been indexed, the keys are retrieved in the order +they occur in the +.IR keyfile , +but if +.B hmmfile +isn't indexed, keys are retrieved in the order they occur +in the +.BR hmmfile . +This is a side effect of an implementation that allows +multiple keys to be retrieved even if the +.B hmmfile +is a nonrewindable stream, like a standard input pipe. + +.PP +In normal use +(without +.B \-\-index +or +.B \-f +options), +.I hmmfile +may be '\-' (dash), which +means reading input from stdin rather than a file. +With the +.B \-\-index +option, +.I hmmfile +may not be '\-'; it does not make sense +to index a standard input stream. +With the +.B \-f +option, +either +.I hmmfile +or +.I keyfile +(but not both) may be '\-'. +It is often particularly useful to read +.I keyfile +from standard input, because this allows +use to use arbitrary command line invocations to +create a list of HMM names or accessions, then fetch them all +to a new file, just with one command. + +.PP +By default, fetched HMMs are printed to standard output in HMMER3 format. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.B \-f +The second commandline argument is a +.I keyfile +instead of a single +.IR key . +The first field on each line of the +.I keyfile +is used as a retrieval +.I key +(an HMM name or accession). +Blank lines and comment lines (that start with +a # character) are ignored. + +.TP +.BI \-o " " +Output HMM(s) to file +.I +instead of to standard output. + +.TP +.B \-O +Output HMM(s) to individual file(s) named +.I key +instead of standard output. + +.TP +.B \-\-index +Instead of retrieving one or more profiles from +.IR hmmfile , +index the +.I hmmfile +for future retrievals. +This creates a +.IR hmmfile .ssi +binary index file. + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmlogo.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmlogo.man.in new file mode 100644 index 0000000..4162856 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmlogo.man.in @@ -0,0 +1,99 @@ +.TH "hmmlogo" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmlogo \- produce a conservation logo graphic from a profile + + +.SH SYNOPSIS +.B hmmlogo +[\fIoptions\fR] +.I hmmfile + + +.SH DESCRIPTION + +.PP +.B hmmlogo +computes letter height and indel parameters that can be used to +produce a profile HMM logo. This tool is essentially a +command-line interface for much of the data underlying the Skylign +logo server (skylign.org). + +By default, +.B hmmlogo +prints out a table of per-position letter heights (dependent on the +requested height method), then prints a table of per-position gap +probabilities. + +In a typical logo, the total height of a stack of letters for one +position depends on the information content of the position, and +that stack height is subdivided according to the emission +probabilities of the letters of the alphabet. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + +.TP +.B \-\-height_relent_all +Total height = relative entropy (aka information content); all letters +are given a positive height. (default) + +.TP +.B \-\-height_relent_abovebg +Total height = relative entropy (aka information content); only letters +with above-background probability are given positive height. + +.TP +.B \-\-height_score +Total height = sums of scores of positive-scoring letters; letter +height depends on the score of that letter at that position. Only +letters with above-background probability (positive score) are +given positive height. (Note that only letter height is meaningful - +stack height has no inherent meaning). + +.TP +.B \-\-no_indel +Don't print out the indel probability table. + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmpgmd.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmpgmd.man.in new file mode 100644 index 0000000..185ab8b --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmpgmd.man.in @@ -0,0 +1,219 @@ +.TH "hmmpgmd" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmpgmd \- daemon for database search web services + + +.SH SYNOPSIS +.B hmmpgmd +[\fIoptions\fR] + + +.SH DESCRIPTION + +.PP +The +.B hmmpgmd +program is the daemon that we use internally for the hmmer.org web server. +It essentially stands in front of the search programs +.BR phmmer , +.BR hmmsearch , +and +.BR hmmscan . + +.PP +To use +.BR hmmpgmd , +first an instance must be started up as a +master +server, and provided with at least one +sequence database +(using the +.B \-\-seqdb +flag) +and/or an +HMM database +(using the +.B \-\-hmmdb +flag). +A sequence database must be in hmmpgmd format, which may be +produced using +.BR esl-reformat . +An HMM database is of the form produced by +.BR hmmbuild . +The input database(s) will be loaded into memory by the +master. When the master has finished loading the database(s), it +prints the line: +"Data loaded into memory. Master is ready." + + +.PP +After the master is ready, one or more instances of hmmpgmd may +be started as workers. These workers may be (and typically are) on +different machines from the master, but must have access to the +same database file(s) provided to the master, with the same path. As +with the master, each worker loads the database(s) into memory, and +indicates completion by printing: "Data loaded into memory. Worker is ready." + + +.PP +The master process and workers are expected to remain running. +One or more clients then connect to the master and submit possibly +many queries. The master distributes the work of a query among the +workers, collects results, and merges them before responding to the +client. Two example client programs are included in the HMMER src +directory - the C program +.B hmmc2 +and the perl script +.BR hmmpgmd_client_example.pl . +These are intended as examples only, and should be extended as +necessary to meet your needs. + +.PP +A query is submitted to the master from the client as a character +string. Queries may be the sort that would normally be handled +by +.B phmmer +(protein sequence vs protein database), +.B hmmsearch +(protein HMM query vs protein database), or +.B hmmscan +(protein query vs protein HMM database). + + +The general form of a client query is to start with a single line +of the form +.BR "@[options]" , +followed by multiple lines of text representing either the query HMM +or fasta-formatted sequence. The final line of each query is the separator +.BR "//" . + + +.PP +For example, to perform a +.B phmmer +type search of a sequence against a sequence database +file, the first line is of the form +.BR "@\-\-seqdb 1" , +then the fasta-formatted query sequence starting with the header line +.BR >sequence-name , +followed by one or more lines of sequence, and finally the closing +.BR "//" . + +.PP +To perform an +.B hmmsearch +type search, the query sequence is replaced by the full +text of a HMMER-format query HMM. + +.PP +To perform an +.B hmmscan +type search, the text matches that of the +.B phmmer +type search, except that the first line changes to +.BR "@\-\-hmmdb 1" . + +.PP +In the hmmpgmd-formatted sequence database file, each sequence +can be associated with one or more sub-databases. The +.B \-\-seqdb +flag indicates which of these sub-databases will be queried. +The HMM database format does not support sub-databases. + + + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.BI \-\-master +Run as the master server. + +.TP +.BI \-\-worker " " +Run as a worker, connecting to the master server that is running on IP +address +.IR . + +.TP +.BI \-\-cport " " +Port to use for communication between clients and the master server. +The default is 51371. + +.TP +.BI \-\-wport " " +Port to use for communication between workers and the master server. +The default is 51372. + +.TP +.BI \-\-ccncts " " +Maximum number of client connections to accept. The default is 16. + +.TP +.BI \-\-wcncts " " +Maximum number of worker connections to accept. The default is 32. + +.TP +.BI \-\-pid " " +Name of file into which the process id will be written. + +.TP +.BI \-\-seqdb " " +Name of the file (in +.B hmmpgmd +format) containing protein sequences. +The contents of this file will be cached for searches. + +.TP +.BI \-\-hmmdb " " +Name of the file containing protein HMMs. The contents of this file +will be cached for searches. + +.TP +.BI \-\-cpu " " +Number of parallel threads to use (for +.B \-\-worker +). + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmpgmd_shard.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmpgmd_shard.man.in new file mode 100644 index 0000000..87630e9 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmpgmd_shard.man.in @@ -0,0 +1,162 @@ +.TH "hmmpgmd_shard" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmpgmd_shard \- sharded daemon for database search web services + + +.SH SYNOPSIS +.B hmmpgmd_shard +[\fIoptions\fR] + + +.SH DESCRIPTION + +.PP +The +.B hmmpgmd_shard +program provides a sharded version of the +.B hmmpgmd +program that we use internally to implement high-performance HMMER services that can be accessed via the internet. See the +.B hmmpgmd +man page for a discussion of how the base +.B hmmpgmd +program is used. This man page discusses differences between +.B hmmpgmd_shard +and +.B hmmpgmd. +The base +.B hmmpgmd +program loads the entirety of its database file into RAM on every worker node, in spite of the fact that each worker node searches a predictable fraction of the database(s) contained in that file when performing searches. This wastes RAM, particularly when many worker nodes are used to accelerate searches of large databases. + +.PP +.B Hmmpgmd_shard +addresses this by dividing protein sequence database files into shards. Each worker node loads only 1/Nth of the database file, where N is the number of worker nodes attached to the master. HMM database files are not sharded, meaning that every worker node will load the entire database file into RAM. Current HMM databases are much smaller than current protein sequence databases, and easily fit into the RAM of modern servers even without sharding. + +.PP +.B Hmmpgmd_shard +is used in the same manner as +.B hmmpgmd +, except that it takes one additional argument: +.BI \-\-num_shards " " +, which specifies the number of shards that protein databases will be divided into, and defaults to 1 if unspecified. This argument is only valid for the master node of a +.B hmmpgmd +system (i.e., when +.BI \-\-master +is passed to the +.B hmmpgmd +program), and must be equal to the number of worker nodes that will connect to the master node. +.B Hmmpgmd_shard +will signal an error if more than +.BI num_shards +worker nodes attempt to connect to the master node or if a search is started when fewer than +.BI num_shards +workers are connected to the master. + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.BI \-\-master +Run as the master server. + +.TP +.BI \-\-worker " " +Run as a worker, connecting to the master server that is running on IP +address +.IR . + +.TP +.BI \-\-cport " " +Port to use for communication between clients and the master server. +The default is 51371. + +.TP +.BI \-\-wport " " +Port to use for communication between workers and the master server. +The default is 51372. + +.TP +.BI \-\-ccncts " " +Maximum number of client connections to accept. The default is 16. + +.TP +.BI \-\-wcncts " " +Maximum number of worker connections to accept. The default is 32. + +.TP +.BI \-\-pid " " +Name of file into which the process id will be written. + +.TP +.BI \-\-seqdb " " +Name of the file (in +.B hmmpgmd +format) containing protein sequences. +The contents of this file will be cached for searches. + +.TP +.BI \-\-hmmdb " " +Name of the file containing protein HMMs. The contents of this file +will be cached for searches. + +.TP +.BI \-\-cpu " " +Number of parallel threads to use (for +.B \-\-worker +). + +.TP +.BI \-\-num_shards " " +Number of shards to divide cached sequence database(s) into. HMM databases are not sharded, due to their small size. +This option is only valid when the +.B \-\-master +option is present, and defaults to 1 if not specified. +.B Hmmpgmd_shard +requires that the number of shards be equal to the number of worker nodes, and will give errors if more than +.BI num_shards +workers attempt to connect to the master node or if a search is started with fewer than +.BI num_shards +workers connected to the master. + +.SH SEE ALSO + +See +.BR hmmmpgmd (1) +for a description of the base hmmpgmd command and how the daemon should be used. + +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmpress.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmpress.man.in new file mode 100644 index 0000000..d4387ad --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmpress.man.in @@ -0,0 +1,106 @@ +.TH "hmmpress" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmpress \- prepare a profile database for hmmscan + +.SH SYNOPSIS + +.B hmmpress +[\fIoptions\fR] +.I hmmfile + + +.SH DESCRIPTION + +.PP +Constructs binary compressed datafiles for +.BR hmmscan , +starting from a profile database +.I hmmfile +in standard HMMER3 format. +The +.B hmmpress +step is required for +.B hmmscan +to work. + +.PP +Four files are created: +.IB hmmfile .h3m, +.IB hmmfile .h3i, +.IB hmmfile .h3f, +and +.IB hmmfile .h3p. +The +.IB hmmfile .h3m +file contains the profile HMMs and their annotation in a binary +format. +The +.IB hmmfile .h3i +file is an SSI index for the +.IB hmmfile .h3m +file. +The +.IB hmmfile .h3f +file contains precomputed data structures +for the fast heuristic filter (the MSV filter). +The +.IB hmmfile .h3p +file contains precomputed data structures +for the rest of each profile. + +.PP +.I hmmfile +may not be '\-' (dash); running +.B hmmpress +on a standard input stream rather than a file +is not allowed. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.B \-f +Force; overwrites any previous hmmpress'ed datafiles. The default is +to bitch about any existing files and ask you to delete them first. + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmscan.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmscan.man.in new file mode 100644 index 0000000..28cc9b7 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmscan.man.in @@ -0,0 +1,466 @@ +.TH "hmmscan" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmscan \- search sequence(s) against a profile database + + +.SH SYNOPSIS +.B hmmscan +[\fIoptions\fR] +.I hmmdb +.I seqfile + + + +.SH DESCRIPTION + +.PP +.B hmmscan +is used to search protein sequences against collections +of protein profiles. For each sequence in +.IR seqfile , +use that query sequence to search the target database of +profiles in +.IR hmmdb , +and output ranked lists of the profiles with the +most significant matches to the sequence. + +.PP +The +.I seqfile +may contain more than one query sequence. Each will be searched +in turn against +.I hmmdb. + +.PP +The +.I hmmdb +needs to be press'ed using +.B hmmpress +before it can be searched with +.BR hmmscan . +This creates four binary files, +suffixed +.BR .h3{fimp} . + +.PP +The query +.I seqfile +may be '\-' (a dash character), in which case +the query sequences are read from a +stdin +pipe instead of from a file. +The +.I hmmdb +cannot be read from a +stdin +stream, because it needs to have +those four auxiliary binary files generated by +.BR hmmpress . + +.PP +The output format is designed to be human-readable, but is often so +voluminous that reading it is impractical, and parsing it is a pain. The +.B \-\-tblout +and +.B \-\-domtblout +options save output in simple tabular formats that are concise and +easier to parse. +The +.B \-o +option allows redirecting the main output, including throwing it away +in /dev/null. + + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + + +.SH OPTIONS FOR CONTROLLING OUTPUT + +.TP +.BI \-o " " +Direct the main human-readable output to a file +.I +instead of the default stdout. + +.TP +.BI \-\-tblout " " +Save a simple tabular (space-delimited) file summarizing the +per-target output, with one data line per homologous target model +found. + +.TP +.BI \-\-domtblout " " +Save a simple tabular (space-delimited) file summarizing the +per-domain output, with one data line per homologous domain +detected in a query sequence for each homologous model. + +.TP +.BI \-\-pfamtblout " " +Save an especially succinct tabular (space-delimited) file +summarizing the per-target output, with one data line per +homologous target model found. + + +.TP +.B \-\-acc +Use accessions instead of names in the main output, where available +for profiles and/or sequences. + +.TP +.B \-\-noali +Omit the alignment section from the main output. This can greatly +reduce the output volume. + +.TP +.B \-\-notextw +Unlimit the length of each line in the main output. The default +is a limit of 120 characters per line, which helps in displaying +the output cleanly on terminals and in editors, but can truncate +target profile description lines. + +.TP +.BI \-\-textw " " +Set the main output's line length limit to +.I +characters per line. The default is 120. + + + +.SH OPTIONS FOR REPORTING THRESHOLDS + +Reporting thresholds control which hits are reported in output files +(the main output, +.BR \-\-tblout , +and +.BR \-\-domtblout ). + +.TP +.BI \-E " " +In the per-target output, report target profiles with an E-value of <= +.IR . +The default is 10.0, meaning that on average, about 10 false positives +will be reported per query, so you can see the top of the noise +and decide for yourself if it's really noise. + +.TP +.BI \-T " " +Instead of thresholding per-profile output on E-value, instead +report target profiles with a bit score of >= +.IR . + +.TP +.BI \-\-domE " " +In the per-domain output, for target profiles that have already satisfied +the per-profile reporting threshold, report individual domains +with a conditional E-value of <= +.IR . +The default is 10.0. +A conditional E-value means the expected number of additional false +positive domains in the smaller search space of those comparisons that +already satisfied the per-profile reporting threshold (and thus must +have at least one homologous domain already). + + +.TP +.BI \-\-domT " " +Instead of thresholding per-domain output on E-value, instead +report domains with a bit score of >= +.IR . + + + + +.SH OPTIONS FOR INCLUSION THRESHOLDS + +Inclusion thresholds are stricter than reporting thresholds. +Inclusion thresholds control which hits are considered to be +reliable enough +to be included in an output alignment or a subsequent search round. +In +.BR hmmscan , +which does not have any alignment output (like +.B hmmsearch +or +.BR phmmer ) +nor any iterative search steps (like +.BR jackhmmer ), +inclusion thresholds have little effect. They only affect what domains +get marked as significant (!) or questionable (?) in domain +output. + +.TP +.BI \-\-incE " " +Use an E-value of <= +.I +as the per-target inclusion threshold. +The default is 0.01, meaning that on average, about 1 false positive +would be expected in every 100 searches with different query +sequences. + +.TP +.BI \-\-incT " " +Instead of using E-values for setting the inclusion threshold, instead +use a bit score of >= +.I +as the per-target inclusion threshold. +It would be unusual to use bit score thresholds with +.IR hmmscan , +because you don't expect a single score threshold to work for +different profiles; different profiles have slightly different +expected score distributions. + +.TP +.BI \-\-incdomE " " +Use a conditional E-value of <= +.I +as the per-domain inclusion threshold, in targets that have already +satisfied the overall per-target inclusion threshold. +The default is 0.01. + +.TP +.BI \-\-incdomT " " +Instead of using E-values, +instead use a bit score of >= +.I +as the per-domain inclusion threshold. +As with +.B \-\-incT +above, +it would be unusual to use a single bit score threshold in +.BR hmmscan . + + + +.SH OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING + +Curated profile databases may define specific bit score thresholds for +each profile, superseding any thresholding based on statistical +significance alone. + +To use these options, the profile must contain the appropriate (GA, +TC, and/or NC) optional score threshold annotation; this is picked up +by +.B hmmbuild +from Stockholm format alignment files. Each thresholding option has +two scores: the per-sequence threshold +.I +and the per-domain threshold +.IR . +These act as if +.BI \-T " " +.BI \-\-incT " " +.BI \-\-domT " " +.BI \-\-incdomT " " +has been applied specifically using each model's curated thresholds. + +.TP +.B \-\-cut_ga +Use the GA (gathering) bit scores in the model to set +per-sequence (GA1) and per-domain (GA2) reporting and inclusion +thresholds. GA thresholds are generally considered to be the +reliable curated thresholds defining family membership; for example, +in Pfam, these thresholds define what gets included in Pfam Full +alignments based on searches with Pfam Seed models. + +.TP +.B \-\-cut_nc +Use the NC (noise cutoff) bit score thresholds in the model to set +per-sequence (NC1) and per-domain (NC2) reporting and inclusion +thresholds. NC thresholds are generally considered to be the score of +the highest-scoring known false positive. + +.TP +.B \-\-cut_tc +Use the NC (trusted cutoff) bit score thresholds in the model to set +per-sequence (TC1) and per-domain (TC2) reporting and inclusion +thresholds. TC thresholds are generally considered to be the score of +the lowest-scoring known true positive that is above all known false +positives. + + + + +.SH CONTROL OF THE ACCELERATION PIPELINE + +HMMER3 searches are accelerated in a three-step filter pipeline: the +MSV filter, the Viterbi filter, and the Forward filter. The first +filter is the fastest and most approximate; the last is the full +Forward scoring algorithm. There is also a bias filter step between +MSV and Viterbi. Targets that pass all the steps in the acceleration +pipeline are then subjected to postprocessing -- domain +identification and scoring using the Forward/Backward algorithm. + +Changing filter thresholds only removes or includes targets from +consideration; changing filter thresholds does not alter bit scores, +E-values, or alignments, all of which are determined solely in +postprocessing. + +.TP +.B \-\-max +Turn off all filters, including the bias filter, and run full +Forward/Backward postprocessing on every target. This increases +sensitivity somewhat, at a large cost in speed. + +.TP +.BI \-\-F1 " " +Set the P-value threshold for the MSV filter step. The default is +0.02, meaning that roughly 2% of the highest scoring nonhomologous +targets are expected to pass the filter. + +.TP +.BI \-\-F2 " " +Set the P-value threshold for the Viterbi filter step. +The default is 0.001. + +.TP +.BI \-\-F3 " " +Set the P-value threshold for the Forward filter step. +The default is 1e-5. + +.TP +.B \-\-nobias +Turn off the bias filter. This increases sensitivity somewhat, but can +come at a high cost in speed, especially if the query has biased +residue composition (such as a repetitive sequence region, or if it is +a membrane protein with large regions of hydrophobicity). Without the +bias filter, too many sequences may pass the filter with biased +queries, leading to slower than expected performance as the +computationally intensive Forward/Backward algorithms shoulder an +abnormally heavy load. + + + +.SH OTHER OPTIONS + +.TP +.B \-\-nonull2 +Turn off the null2 score corrections for biased composition. + +.TP +.BI \-Z " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-sequence E-value calculations, +rather than the actual number of targets seen. + +.TP +.BI \-\-domZ " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-domain conditional E-value calculations, +rather than the number of targets that passed the reporting thresholds. + +.TP +.BI \-\-seed " " +Set the random number seed to +.IR . +Some steps in postprocessing require Monte Carlo simulation. The +default is to use a fixed seed (42), so that results are exactly +reproducible. Any other positive integer will give different (but also +reproducible) results. A choice of 0 uses an arbitrarily chosen seed. + +.TP +.BI \-\-qformat " " +Assert that input +.I seqfile +is in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank. +Alignment formats also work; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work). + + + +.TP +.BI \-\-cpu " " +Set the number of parallel worker threads to +.IR . +On multicore machines, the default is 2. +You can also control this number by setting an environment variable, +.IR HMMER_NCPU . +There is also a master thread, so the actual number of threads that +HMMER spawns is +.IR +1. + +This option is not available if HMMER was compiled with POSIX threads +support turned off. + + +.TP +.BI \-\-stall +For debugging the MPI master/worker version: pause after start, to +enable the developer to attach debuggers to the running master and +worker(s) processes. Send SIGCONT signal to release the pause. +(Under gdb: +.BR "(gdb) signal SIGCONT" ) + +(Only available if optional MPI support was enabled at compile-time.) + +.TP +.B \-\-mpi +Run under MPI control with master/worker parallelization (using +.BR mpirun , +for example, or equivalent). Only available if optional MPI support +was enabled at compile-time. + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmsearch.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmsearch.man.in new file mode 100644 index 0000000..7294235 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmsearch.man.in @@ -0,0 +1,444 @@ +.TH "hmmsearch" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmsearch \- search profile(s) against a sequence database + + +.SH SYNOPSIS +.B hmmsearch +[\fIoptions\fR] +.I hmmfile +.I seqdb + + +.SH DESCRIPTION + +.PP +.B hmmsearch +is used to search one or more profiles against a sequence database. +For each profile in +.IR hmmfile , +use that query profile to search the target database of sequences in +.IR seqdb , +and output ranked lists of the sequences with the most significant +matches to the profile. +To build profiles from multiple alignments, see +.BR hmmbuild . + +.PP +Either the query +.I hmmfile +or the target +.I seqdb +may be '\-' (a dash character), in which case +the query profile or target database input will be read from a +stdin +pipe instead of from a +file. Only one input source can come through +stdin, +not both. +An exception is that if the +.I hmmfile +contains more than one profile query, then +.I seqdb +cannot come from stdin, because we can't rewind the +streaming target database to search it with another profile. + +.PP +The output format is designed to be human-readable, but is often so +voluminous that reading it is impractical, and parsing it is a pain. The +.B \-\-tblout +and +.B \-\-domtblout +options save output in simple tabular formats that are concise and +easier to parse. +The +.B \-o +option allows redirecting the main output, including throwing it away +in /dev/null. + + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + + +.SH OPTIONS FOR CONTROLLING OUTPUT + +.TP +.BI \-o " " +Direct the main human-readable output to a file +.I +instead of the default stdout. + +.TP +.BI \-A " " +Save a multiple alignment of all significant hits (those satisfying +.IR "inclusion thresholds" ) +to the file +.IR . + +.TP +.BI \-\-tblout " " +Save a simple tabular (space-delimited) file summarizing the +per-target output, with one data line per homologous target sequence +found. + +.TP +.BI \-\-domtblout " " +Save a simple tabular (space-delimited) file summarizing the +per-domain output, with one data line per homologous domain +detected in a query sequence for each homologous model. + +.TP +.B \-\-acc +Use accessions instead of names in the main output, where available +for profiles and/or sequences. + +.TP +.B \-\-noali +Omit the alignment section from the main output. This can greatly +reduce the output volume. + +.TP +.B \-\-notextw +Unlimit the length of each line in the main output. The default +is a limit of 120 characters per line, which helps in displaying +the output cleanly on terminals and in editors, but can truncate +target profile description lines. + +.TP +.BI \-\-textw " " +Set the main output's line length limit to +.I +characters per line. The default is 120. + + + +.SH OPTIONS CONTROLLING REPORTING THRESHOLDS + +Reporting thresholds control which hits are reported in output files +(the main output, +.BR \-\-tblout , +and +.BR \-\-domtblout ). +Sequence hits and domain hits are ranked by statistical significance +(E-value) and output is generated in two sections called per-target +and per-domain output. In per-target output, by default, all +sequence hits with an E-value <= 10 are reported. In the per-domain +output, for each target that has passed per-target reporting +thresholds, all domains satisfying per-domain reporting thresholds are +reported. By default, these are domains with conditional E-values of +<= 10. The following options allow you to change the default +E-value reporting thresholds, or to use bit score thresholds instead. + + +.TP +.BI \-E " " +In the per-target output, report target sequences with an E-value of <= +.IR . +The default is 10.0, meaning that on average, about 10 false positives +will be reported per query, so you can see the top of the noise +and decide for yourself if it's really noise. + +.TP +.BI \-T " " +Instead of thresholding per-profile output on E-value, instead +report target sequences with a bit score of >= +.IR . + +.TP +.BI \-\-domE " " +In the per-domain output, for target sequences that have already satisfied +the per-profile reporting threshold, report individual domains +with a conditional E-value of <= +.IR . +The default is 10.0. +A conditional E-value means the expected number of additional false +positive domains in the smaller search space of those comparisons that +already satisfied the per-target reporting threshold (and thus must +have at least one homologous domain already). + + +.TP +.BI \-\-domT " " +Instead of thresholding per-domain output on E-value, instead +report domains with a bit score of >= +.IR . + + + + +.SH OPTIONS FOR INCLUSION THRESHOLDS + +Inclusion thresholds are stricter than reporting thresholds. +Inclusion thresholds control which hits are considered to be reliable +enough to be included in an output alignment or a subsequent search +round, or marked as significant ("!") as opposed to questionable ("?") +in domain output. + +.TP +.BI \-\-incE " " +Use an E-value of <= +.I +as the per-target inclusion threshold. +The default is 0.01, meaning that on average, about 1 false positive +would be expected in every 100 searches with different query +sequences. + +.TP +.BI \-\-incT " " +Instead of using E-values for setting the inclusion threshold, instead +use a bit score of >= +.I +as the per-target inclusion threshold. +By default this option is unset. + +.TP +.BI \-\-incdomE " " +Use a conditional E-value of <= +.I +as the per-domain inclusion threshold, in targets that have already +satisfied the overall per-target inclusion threshold. +The default is 0.01. + +.TP +.BI \-\-incdomT " " +Instead of using E-values, +use a bit score of >= +.I +as the per-domain inclusion threshold. + + + +.SH OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING + +Curated profile databases may define specific bit score thresholds for +each profile, superseding any thresholding based on statistical +significance alone. + +To use these options, the profile must contain the appropriate (GA, +TC, and/or NC) optional score threshold annotation; this is picked up +by +.B hmmbuild +from Stockholm format alignment files. Each thresholding option has +two scores: the per-sequence threshold and the per-domain +threshold +These act as if +.BI \-T " " +.BI \-\-incT " " +.BI \-\-domT " " +.BI \-\-incdomT " " +has been applied specifically using each model's curated thresholds. + +.TP +.B \-\-cut_ga +Use the GA (gathering) bit scores in the model to set +per-sequence (GA1) and per-domain (GA2) reporting and inclusion +thresholds. GA thresholds are generally considered to be the +reliable curated thresholds defining family membership; for example, +in Pfam, these thresholds define what gets included in Pfam Full +alignments based on searches with Pfam Seed models. + +.TP +.B \-\-cut_nc +Use the NC (noise cutoff) bit score thresholds in the model to set +per-sequence (NC1) and per-domain (NC2) reporting and inclusion +thresholds. NC thresholds are generally considered to be the score of +the highest-scoring known false positive. + +.TP +.B \-\-cut_tc +Use the TC (trusted cutoff) bit score thresholds in the model to set +per-sequence (TC1) and per-domain (TC2) reporting and inclusion +thresholds. TC thresholds are generally considered to be the score of +the lowest-scoring known true positive that is above all known false +positives. + + + + +.SH OPTIONS CONTROLLING THE ACCELERATION PIPELINE + +HMMER3 searches are accelerated in a three-step filter pipeline: the +MSV filter, the Viterbi filter, and the Forward filter. The first +filter is the fastest and most approximate; the last is the full +Forward scoring algorithm. There is also a bias filter step between +MSV and Viterbi. Targets that pass all the steps in the acceleration +pipeline are then subjected to postprocessing -- domain +identification and scoring using the Forward/Backward algorithm. + +Changing filter thresholds only removes or includes targets from +consideration; changing filter thresholds does not alter bit scores, +E-values, or alignments, all of which are determined solely in +postprocessing. + +.TP +.B \-\-max +Turn off all filters, including the bias filter, and run full +Forward/Backward postprocessing on every target. This increases +sensitivity somewhat, at a large cost in speed. + +.TP +.BI \-\-F1 " " +Set the P-value threshold for the MSV filter step. The default is +0.02, meaning that roughly 2% of the highest scoring nonhomologous +targets are expected to pass the filter. + +.TP +.BI \-\-F2 " " +Set the P-value threshold for the Viterbi filter step. +The default is 0.001. + +.TP +.BI \-\-F3 " " +Set the P-value threshold for the Forward filter step. +The default is 1e-5. + +.TP +.B \-\-nobias +Turn off the bias filter. This increases sensitivity somewhat, but can +come at a high cost in speed, especially if the query has biased +residue composition (such as a repetitive sequence region, or if it is +a membrane protein with large regions of hydrophobicity). Without the +bias filter, too many sequences may pass the filter with biased +queries, leading to slower than expected performance as the +computationally intensive Forward/Backward algorithms shoulder an +abnormally heavy load. + + + +.SH OTHER OPTIONS + +.TP +.B \-\-nonull2 +Turn off the null2 score corrections for biased composition. + +.TP +.BI \-Z " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-sequence E-value calculations, +rather than the actual number of targets seen. + +.TP +.BI \-\-domZ " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-domain conditional E-value calculations, +rather than the number of targets that passed the reporting thresholds. + +.TP +.BI \-\-seed " " +Set the random number seed to +.IR . +Some steps in postprocessing require Monte Carlo simulation. The +default is to use a fixed seed (42), so that results are exactly +reproducible. Any other positive integer will give different (but also +reproducible) results. A choice of 0 uses a randomly chosen seed. + +.TP +.BI \-\-tformat " " +Assert that target sequence file +.I seqfile +is in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank. +Alignment formats also work; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work). + +.TP +.BI \-\-cpu " " +Set the number of parallel worker threads to +.IR . +On multicore machines, the default is 2. +You can also control this number by setting an environment variable, +.IR HMMER_NCPU . +There is also a master thread, so the actual number of threads that +HMMER spawns is +.IR +1. + +This option is not available if HMMER was compiled with POSIX threads +support turned off. + + +.TP +.BI \-\-stall +For debugging the MPI master/worker version: pause after start, to +enable the developer to attach debuggers to the running master and +worker(s) processes. Send SIGCONT signal to release the pause. +(Under gdb: +.BR "(gdb) signal SIGCONT" ) +(Only available if optional MPI support was enabled at compile-time.) + + + +.TP +.B \-\-mpi +Run under MPI control with master/worker parallelization (using +.BR mpirun , +for example, or equivalent). Only available if optional MPI support +was enabled at compile-time. + + + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmsim.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmsim.man.in new file mode 100644 index 0000000..b8516b8 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmsim.man.in @@ -0,0 +1,515 @@ +.TH "hmmsim" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmsim \- collect profile score distributions on random sequences + +.SH SYNOPSIS +.B hmmsim +[\fIoptions\fR] +.I hmmfile + + +.SH DESCRIPTION + +.PP +The +.B hmmsim +program generates random sequences, scores them with the model(s) in +.IR hmmfile , +and outputs various sorts of histograms, plots, and fitted +distributions for the resulting scores. + +.PP +.B hmmsim +is not a mainstream part of the HMMER package and most users would have +no reason to use it. It is used to develop and test the statistical +methods used to determine P-values and E-values in HMMER3. For +example, it was used to generate most of the results in a 2008 paper +on H3's local alignment statistics (PLoS Comp Bio 4:e1000069, 2008; +http://www.ploscompbiol.org/doi/pcbi.1000069). + +.PP +Because it is a research testbed, you should not expect it to be as +robust as other programs in the package. For example, options may +interact in weird ways; we haven't tested nor tried to anticipate all +different possible combinations. + +.PP +The main task is to fit a maximum likelihood Gumbel distribution to +Viterbi scores or an maximum likelihood exponential tail to +high-scoring Forward scores, and to test that these fitted +distributions obey the conjecture that lambda ~ log_2 for both the +Viterbi Gumbel and the Forward exponential tail. + +.PP +The output is a table of numbers, one row for each model. Four +different parametric fits to the score data are tested: (1) maximum +likelihood fits to both location (mu/tau) and slope (lambda) +parameters; (2) assuming lambda=log_2, maximum likelihood fit to the +location parameter only; (3) same but assuming an edge-corrected +lambda, using current procedures in H3 [Eddy, 2008]; and (4) using +both parameters determined by H3's current procedures. The standard +simple, quick and dirty statistic for goodness-of-fit is 'E@10', the +calculated E-value of the 10th ranked top hit, which we expect to be +about 10. + +.PP +In detail, the columns of the output are: + +.TP +.B name +Name of the model. + +.TP +.B tailp +Fraction of the highest scores used to fit the distribution. For +Viterbi, MSV, and Hybrid scores, this defaults to 1.0 (a Gumbel +distribution is fitted to all the data). For Forward scores, this +defaults to 0.02 (an exponential tail is fitted to the highest 2% +scores). + +.TP +.B mu/tau +Location parameter for the maximum likelihood fit to the data. + +.TP +.B lambda +Slope parameter for the maximum likelihood fit to the data. + +.TP +.B E@10 +The E-value calculated for the 10th ranked high score ('E@10') using the ML +mu/tau and lambda. By definition, this expected to be about 10, if +E-value estimation were accurate. + +.TP +.B mufix +Location parameter, for a maximum likelihood fit with a known (fixed) +slope parameter lambda of log_2 (0.693). + +.TP +.B E@10fix +The E-value calculated for the 10th ranked score using mufix and the +expected lambda = log_2 = 0.693. + + +.TP +.B mufix2 +Location parameter, for a maximum likelihood fit with an +edge-effect-corrected lambda. + +.TP +.B E@10fix2 +The E-value calculated for the 10th ranked score using mufix2 and the +edge-effect-corrected lambda. + +.TP +.B pmu +Location parameter as determined by H3's estimation procedures. + +.TP +.B plambda +Slope parameter as determined by H3's estimation procedures. + +.TP +.B pE@10 +The E-value calculated for the 10th ranked score using pmu, plambda. + + +.PP +At the end of this table, one more line is printed, starting with # +and summarizing the overall CPU time used by the simulations. + +.PP +Some of the optional output files are in xmgrace xy format. xmgrace is +powerful and freely available graph-plotting software. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.B \-a +Collect expected Viterbi alignment length statistics from each +simulated sequence. This only works with Viterbi scores (the default; +see +.BR \-\-vit ). +Two additional fields are printed in the output table for +each model: the mean length of Viterbi alignments, and the standard +deviation. + +.TP +.B \-v +(Verbose). Print the scores too, one score per line. + +.TP +.BI \-L " " +Set the length of the randomly sampled (nonhomologous) sequences to +.IR . +The default is 100. + + +.TP +.BI \-N " " +Set the number of randomly sampled sequences to +.IR . +The default is 1000. + +.TP +.B \-\-mpi +Run under MPI control with master/worker parallelization (using +.BR mpirun , +for example, or equivalent). Only available if optional MPI support +was enabled at compile-time. + +It is parallelized at the level of sending one profile at a time to an +MPI worker process, so parallelization only helps if you have more +than one profile in the +.IR hmmfile , +and you want to have at least as many profiles as MPI worker +processes. + + + + +.SH OPTIONS CONTROLLING OUTPUT + +.TP +.BI \-o " " +Save the main output table to a file +.I +rather than sending it to stdout. + +.TP +.BI \-\-afile " " +When collecting Viterbi alignment statistics (the +.B \-a +option), for each sampled sequence, output two fields per +line to a file +.IR : +the length of the optimal alignment, and the Viterbi bit score. +Requires that the +.B \-a +option is also used. + +.TP +.BI \-\-efile " " +Output a rank vs. E-value plot in XMGRACE xy format to file +.IR . +The x-axis is the rank of this sequence, from highest score to lowest; +the y-axis is the E-value calculated for this sequence. E-values are +calculated using H3's default procedures (i.e. the pmu, plambda +parameters in the output table). You expect a rough match between rank +and E-value if E-values are accurately estimated. + + +.TP +.BI \-\-ffile " " +Output a "filter power" file to +.IR : +for each model, a line with three fields: +model name, number of sequences passing the P-value threshold, +and fraction of sequences passing the P-value threshold. See +.B \-\-pthresh +for setting the P-value threshold, which defaults to 0.02 (the default +MSV filter threshold in H3). The P-values are as determined by H3's +default procedures (the pmu,plambda parameters in the output table). +If all is well, you expect to see filter power equal to the predicted +P-value setting of the threshold. + +.TP +.BI \-\-pfile " " +Output cumulative survival plots (P(S>x)) to file +.I +in XMGRACE xy format. There are three plots: +(1) the observed score distribution; +(2) the maximum likelihood fitted distribution; +(3) a maximum likelihood fit to the location parameter (mu/tau) while + assuming lambda=log_2. + +.TP +.BI \-\-xfile " " +Output the bit scores as a binary array of double-precision floats (8 +bytes per score) to file +.IR . +Programs like Easel's +.B esl-histplot +can read such binary files. This is useful when generating extremely +large sample sizes. + + +.SH OPTIONS CONTROLLING MODEL CONFIGURATION (MODE) + +H3 only uses multihit local alignment ( +.B \-\-fs +mode), and this is where we believe the statistical fits. +Unihit local alignment scores (Smith/Waterman; +.B \-\-sw +mode) also obey our statistical conjectures. +Glocal alignment statistics (either multihit or unihit) are +still not adequately understood nor adequately fitted. + +.TP +.B \-\-fs +Collect multihit local alignment scores. This is the default. +"fs" comes from HMMER2's historical terminology for multihit local +alignment as 'fragment search mode'. + +.TP +.B \-\-sw +Collect unihit local alignment scores. The H3 J state is disabled. +"sw" comes from HMMER2's historical terminology for unihit local +alignment as 'Smith/Waterman search mode'. + +.TP +.B \-\-ls +Collect multihit glocal alignment scores. In glocal (global/local) +alignment, the entire model must align, to a subsequence of the +target. The H3 local entry/exit transition probabilities are +disabled. 'ls' comes from HMMER2's historical terminology for multihit local +alignment as 'local search mode'. + +.TP +.B \-\-s +Collect unihit glocal alignment scores. Both the H3 J state and local +entry/exit transition probabilities are disabled. 's' comes from +HMMER2's historical terminology for unihit glocal alignment. + + + +.SH OPTIONS CONTROLLING SCORING ALGORITHM + +.TP +.B \-\-vit +Collect Viterbi maximum likelihood alignment scores. This is the default. + +.TP +.B \-\-fwd +Collect Forward log-odds likelihood scores, summed over alignment ensemble. + +.TP +.B \-\-hyb +Collect 'Hybrid' scores, as described in papers by Yu and Hwa (for +instance, Bioinformatics 18:864, 2002). These involve calculating a +Forward matrix and taking the maximum cell value. The number itself is +statistically somewhat unmotivated, but the distribution is expected +be a well-behaved extreme value distribution (Gumbel). + +.TP +.B \-\-msv +Collect MSV (multiple ungapped segment Viterbi) scores, using H3's +main acceleration heuristic. + +.TP +.B \-\-fast +For any of the above options, use H3's optimized production +implementation (using SIMD vectorization). The default is to use the +"generic" implementation (slow and non-vectorized). The optimized +implementations sacrifice a small amount of numerical precision. This +can introduce confounding noise into statistical simulations and fits, +so when one gets super-concerned about exact details, it's better to +be able to factor that source of noise out. + +.SH OPTIONS CONTROLLING FITTED TAIL MASSES FOR FORWARD + +In some experiments, it was useful to fit Forward scores to a range of +different tail masses, rather than just one. These options provide a +mechanism for fitting an evenly-spaced range of different tail masses. +For each different tail mass, a line is generated in the output. + +.TP +.BI \-\-tmin " " +Set the lower bound on the tail mass distribution. (The default is +0.02 for the default single tail mass.) + +.TP +.BI \-\-tmax " " +Set the upper bound on the tail mass distribution. (The default is +0.02 for the default single tail mass.) + +.TP +.BI \-\-tpoints " " +Set the number of tail masses to sample, starting from +.B \-\-tmin +and ending at +.BR \-\-tmax . +(The default is 1, for the default 0.02 single tail mass.) + +.TP +.B \-\-tlinear +Sample a range of tail masses with uniform linear spacing. The default +is to use uniform logarithmic spacing. + + + +.SH OPTIONS CONTROLLING H3 PARAMETER ESTIMATION METHODS + +H3 uses three short random sequence simulations to estimating the +location parameters for the expected score distributions for MSV +scores, Viterbi scores, and Forward scores. These options allow these +simulations to be modified. + +.TP +.BI \-\-EmL " " +Sets the sequence length in simulation that estimates the location +parameter mu for MSV E-values. Default is 200. + +.TP +.BI \-\-EmN " " +Sets the number of sequences in simulation that estimates the location +parameter mu for MSV E-values. Default is 200. + +.TP +.BI \-\-EvL " " +Sets the sequence length in simulation that estimates the location +parameter mu for Viterbi E-values. Default is 200. + +.TP +.BI \-\-EvN " " +Sets the number of sequences in simulation that estimates the location +parameter mu for Viterbi E-values. Default is 200. + +.TP +.BI \-\-EfL " " +Sets the sequence length in simulation that estimates the location +parameter tau for Forward E-values. Default is 100. + +.TP +.BI \-\-EfN " " +Sets the number of sequences in simulation that estimates the location +parameter tau for Forward E-values. Default is 200. + +.TP +.BI \-\-Eft " " +Sets the tail mass fraction to fit in the simulation that estimates +the location parameter tau for Forward evalues. Default is 0.04. + + +.SH DEBUGGING OPTIONS + +.TP +.B \-\-stall +For debugging the MPI master/worker version: pause after start, to +enable the developer to attach debuggers to the running master and +worker(s) processes. Send SIGCONT signal to release the pause. +(Under gdb: +.IR "(gdb) signal SIGCONT" ) +(Only available if optional MPI support was enabled at compile-time.) + +.TP +.BI \-\-seed " " +Set the random number seed to +.IR . +The default is 0, which makes the random number generator use +an arbitrary seed, so that different runs of +.B hmmsim +will almost certainly generate a different statistical sample. +For debugging, it is useful to force reproducible results, by +fixing a random number seed. + + + +.SH EXPERIMENTAL OPTIONS + +These options were used in a small variety of different exploratory +experiments. + +.TP +.B \-\-bgflat +Set the background residue distribution to a uniform distribution, +both for purposes of the null model used in calculating scores, and +for generating the random sequences. The default is to use a standard +amino acid background frequency distribution. + +.TP +.B \-\-bgcomp +Set the background residue distribution to the mean composition of the +profile. This was used in exploring some of the effects of biased +composition. + +.TP +.B \-\-x\-no\-lengthmodel +Turn the H3 target sequence length model off. Set the self-transitions +for N,C,J and the null model to 350/351 instead; this emulates HMMER2. +Not a good idea in general. This was used to demonstrate one of the +main H2 vs. H3 differences. + +.TP +.BI \-\-nu " " +Set the nu parameter for the MSV algorithm -- the expected number of +ungapped local alignments per target sequence. The default is 2.0, +corresponding to a E->J transition probability of 0.5. This was used +to test whether varying nu has significant effect on result (it +doesn't seem to, within reason). +This option +only works if +.B \-\-msv +is selected (it only affects MSV), +and it will not work with +.B \-\-fast +(because the optimized implementations are hardwired to assume nu=2.0). + +.TP +.BI \-\-pthresh " " +Set the filter P-value threshold to use in generating filter power +files with +.BR \-\-ffile . +The default is 0.02 (which would be appropriate for testing MSV +scores, since this is the default MSV filter threshold in H3's +acceleration pipeline.) Other appropriate choices (matching defaults +in the acceleration pipeline) would be 0.001 for +Viterbi, and 1e-5 for Forward. + + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + + + + + + + + + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/hmmstat.man.in b/bioinformaticsProject/hmmer/documentation/man/hmmstat.man.in new file mode 100644 index 0000000..b396d26 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/hmmstat.man.in @@ -0,0 +1,133 @@ +.TH "hmmstat" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +hmmstat \- summary statistics for a profile file + + +.SH SYNOPSIS +.B hmmstat +[\fIoptions\fR] +.I hmmfile + + +.SH DESCRIPTION + +The +.B hmmstat +utility prints out a tabular file of summary statistics for each +profile in +.IR hmmfile . + + +.PP +.I hmmfile +may be '\-' (a dash character), in which case profiles +are read from a +stdin +pipe instead of from a file. + +.PP +The columns are: + +.TP +.B idx +The index of this profile, numbering each profile in the file starting from 1. + +.TP +.B name +The name of the profile. + +.TP +.B accession +The optional accession of the profile, or "\-" if there is none. + +.TP +.B nseq +The number of sequences that the profile was estimated from. + +.TP +.B eff_nseq +The effective number of sequences that the profile was estimated +from, after HMMER applied an effective sequence number calculation +such as the default entropy weighting. + +.TP +.B M +The length of the model in consensus residues (match states). + +.TP +.B relent +Mean relative entropy per match state, in bits. This is the expected +(mean) score per consensus position. This is what the default +entropy-weighting method for effective sequence number estimation +focuses on, so for default HMMER3 models, you expect this value to +reflect the default target for entropy-weighting. + +.TP +.B info +Mean information content per match state, in bits. +Probably not useful. Information content is a slightly +different calculation than relative entropy. + +.TP +.B "p relE" +Mean positional relative entropy, in bits. +This is a fancier version of the per-match-state relative entropy, +taking into account the transition (insertion/deletion) probabilities; +it may be a more accurate estimation of the average score contributed +per model consensus position. + +.TP +.B compKL +Kullback-Leibler divergence from +the default background frequency distribution to +the average composition of the profile's consensus match states, in bits. +The higher this number, the more biased the residue composition of the +profile is. Highly biased profiles can slow the HMMER3 acceleration +pipeline, by causing too many nonhomologous sequences to pass the filters. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/jackhmmer.man.in b/bioinformaticsProject/hmmer/documentation/man/jackhmmer.man.in new file mode 100644 index 0000000..3d85050 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/jackhmmer.man.in @@ -0,0 +1,804 @@ +.TH "jackhmmer" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +jackhmmer \- iteratively search sequence(s) against a sequence database + +.SH SYNOPSIS +.B jackhmmer +[\fIoptions\fR] +.I seqfile +.I seqdb + +.SH DESCRIPTION + +.PP +.B jackhmmer +iteratively searches each query sequence in +.I seqfile +against the target sequence(s) in +.IR seqdb . +The first iteration is identical to a +.B phmmer +search. +For the next iteration, +a multiple alignment of the query together with all target sequences +satisfying +inclusion thresholds +is assembled, a profile is constructed from this alignment +(identical to using +.B hmmbuild +on the alignment), and profile search of the +.I seqdb +is done (identical to an +.B hmmsearch +with the profile). + + +.PP +The query +.I seqfile +may be '\-' (a dash character), in which case +the query sequences are read from a stdin pipe instead of from a +file. +The +.I seqdb +cannot be read from a stdin stream, because +.B jackhmmer +needs to do multiple passes over the database. + + +.PP +The output format is designed to be human-readable, but is often so +voluminous that reading it is impractical, and parsing it is a pain. The +.B \-\-tblout +and +.B \-\-domtblout +options save output in simple tabular formats that are concise and +easier to parse. +The +.B \-o +option allows redirecting the main output, including throwing it away +in /dev/null. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + +.TP +.BI \-N " " +Set the maximum number of iterations to +.IR . +The default is 5. If N=1, the result is equivalent to a +.B phmmer +search. + + + + +.SH OPTIONS CONTROLLING OUTPUT + +By default, output for each iteration appears on stdout in a somewhat +human readable, somewhat parseable format. These options allow +redirecting that output or saving additional kinds of output to files, +including checkpoint files for each iteration. + +.TP +.BI \-o " " +Direct the human-readable output to a file +.IR . + +.TP +.BI \-A " " +After the final iteration, save an annotated multiple alignment of all +hits satisfying inclusion thresholds (also including the original query) to +.I +in Stockholm format. + +.TP +.BI \-\-tblout " " +After the final iteration, save a tabular summary of top sequence hits +to +.I +in a readily parseable, columnar, whitespace-delimited format. + +.TP +.BI \-\-domtblout " " +After the final iteration, save a tabular summary of top domain hits +to +.I +in a readily parseable, columnar, whitespace-delimited format. + +.TP +.BI \-\-chkhmm " prefix" +At the start of each iteration, checkpoint the query HMM, saving it +to a file named +\fIprefix\fR\fB-\fR\fIn\fR\fB.hmm\fR +where +.I n +is the iteration number (from 1..N). + +.TP +.BI \-\-chkali " prefix" +At the end of each iteration, checkpoint an alignment of all +domains satisfying inclusion thresholds (e.g. what will become the +query HMM for the next iteration), +saving it +to a file named +\fIprefix\fR\fB-\fR\fIn\fR\fB.sto\fR +in Stockholm format, +where +.I n +is the iteration number (from 1..N). + +.TP +.B \-\-acc +Use accessions instead of names in the main output, where available +for profiles and/or sequences. + +.TP +.B \-\-noali +Omit the alignment section from the main output. This can greatly +reduce the output volume. + +.TP +.B \-\-notextw +Unlimit the length of each line in the main output. The default +is a limit of 120 characters per line, which helps in displaying +the output cleanly on terminals and in editors, but can truncate +target profile description lines. + +.TP +.BI \-\-textw " " +Set the main output's line length limit to +.I +characters per line. The default is 120. + + + + + + +.SH OPTIONS CONTROLLING SINGLE SEQUENCE SCORING (FIRST ITERATION) + +By default, the first iteration uses a search model constructed from a +single query sequence. This model is constructed using a standard +20x20 substitution matrix for residue probabilities, and two +additional parameters for position-independent gap open and gap extend +probabilities. These options allow the default single-sequence scoring +parameters to be changed. + +.TP +.BI \-\-popen " " +Set the gap open probability for a single sequence query model to +.IR . +The default is 0.02. +.I +must be >= 0 and < 0.5. + +.TP +.BI \-\-pextend " " +Set the gap extend probability for a single sequence query model to +.IR . +The default is 0.4. +.I +must be >= 0 and < 1.0. + +.TP +.BI \-\-mx " " +Obtain residue alignment probabilities from the built-in +substitution matrix named +.IR . +Several standard matrices are built-in, and do not need to be +read from files. +The matrix name +.I +can be +PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80, +or BLOSUM90. +Only one of the +.B \-\-mx +and +.B \-\-mxfile +options may be used. + +.TP +.BI \-\-mxfile " mxfile" +Obtain residue alignment probabilities from the substitution matrix +in file +.IR mxfile . +The default score matrix is BLOSUM62 (this matrix is internal to +HMMER and does not have to be available as a file). +The format of a substitution matrix +.I mxfile +is the standard format accepted by BLAST, FASTA, and other sequence +analysis software. +See +.B ftp.ncbi.nlm.nih.gov/blast/matrices/ +for example files. (The only +exception: we require matrices to be square, so for DNA, use files +like NCBI's NUC.4.4, not NUC.4.2.) + + +.SH OPTIONS CONTROLLING REPORTING THRESHOLDS + +Reporting thresholds control which hits are reported in output files +(the main output, +.BR \-\-tblout , +and +.BR \-\-domtblout ). +In each iteration, sequence hits and domain hits are ranked by +statistical significance (E-value) and output is generated in two +sections called per-target and per-domain output. In per-target +output, by default, all sequence hits with an E-value <= 10 are +reported. In the per-domain output, for each target that has passed +per-target reporting thresholds, all domains satisfying per-domain +reporting thresholds are reported. By default, these are domains with +conditional E-values of <= 10. The following options allow you to +change the default E-value reporting thresholds, or to use bit score +thresholds instead. + + +.TP +.BI \-E " " +Report sequences with E-values <= +.I +in per-sequence output. The default is 10.0. + +.TP +.BI \-T " " +Use a bit score threshold for per-sequence output instead of an +E-value threshold (any setting of +.B \-E +is ignored). Report sequences with a bit score of >= +.IR . +By default this option is unset. + +.TP +.BI \-Z " " +Declare the total size of the database to be +.I +sequences, for purposes of E-value calculation. +Normally E-values are calculated relative to the size of the database +you actually searched (e.g. the number of sequences in +.IR target_seqdb ). +In some cases (for instance, if you've split your +target sequence database into multiple files for parallelization of +your search), you may know better what the actual size of your search +space is. + +.TP +.BI \-\-domE " " +Report domains with conditional E-values <= +.I +in per-domain output, in addition to the top-scoring +domain per significant sequence hit. The default is 10.0. + +.TP +.BI \-\-domT " " +Use a bit score threshold for per-domain output instead of an +E-value threshold (any setting of +.B \-\-domT +is ignored). Report domains with a bit score of >= +.I +in per-domain output, in addition to the top-scoring domain per +significant sequence hit. By default this option is unset. + +.TP +.BI \-\-domZ " " +Declare the number of significant sequences to be +.I +sequences, for purposes of conditional E-value calculation for +additional domain significance. +Normally conditional E-values are calculated relative to the number of +sequences passing per-sequence reporting threshold. + + +.SH OPTIONS CONTROLLING INCLUSION THRESHOLDS + +Inclusion thresholds control which hits are included in the multiple +alignment and profile constructed for the next search iteration. +By default, +a sequence must have a per-sequence +E-value of <= 0.001 (see +.B \-E +option) to be included, and any additional domains in it besides the +top-scoring one must have a conditional E-value of <= 0.001 (see +.B \-\-domE +option). The difference between reporting thresholds and inclusion +thresholds is that inclusion thresholds control which hits actually +get used in the next iteration (or the final output multiple alignment +if the +.B \-A +option is used), whereas reporting thresholds control what you see in +output. Reporting thresholds are generally more loose so you can see +borderline hits in the top of the noise that might be of interest. + +.TP +.BI \-\-incE " " +Include sequences with E-values <= +.I +in subsequent iteration or final +alignment output by +.BR \-A . +The default is 0.001. + +.TP +.BI \-\-incT " " +Use a bit score threshold for per-sequence inclusion instead of an +E-value threshold (any setting of +.B \-\-incE +is ignored). Include sequences with a bit score of >= +.IR . +By default this option is unset. + +.TP +.BI \-\-incdomE " " +Include domains with conditional E-values <= +.I +in subsequent iteration or final alignment output by +.BR \-A , +in addition to the top-scoring +domain per significant sequence hit. +The default is 0.001. + +.TP +.BI \-\-incdomT " " +Use a bit score threshold for per-domain inclusion instead of an +E-value threshold (any setting of +.B \-\-incT +is ignored). Include domains with a bit score of >= +.IR . +By default this option is unset. + + + +.SH OPTIONS CONTROLLING ACCELERATION HEURISTICS + +HMMER3 searches are accelerated in a three-step filter pipeline: the +MSV filter, the Viterbi filter, and the Forward filter. The first +filter is the fastest and most approximate; the last is the full +Forward scoring algorithm, slowest but most accurate. There is also a +bias filter step between MSV and Viterbi. Targets that pass all the +steps in the acceleration pipeline are then subjected to +postprocessing -- domain identification and scoring using the +Forward/Backward algorithm. + +Essentially the only free parameters that control HMMER's heuristic +filters are the P-value thresholds controlling the expected fraction +of nonhomologous sequences that pass the filters. Setting the default +thresholds higher will pass a higher proportion of nonhomologous +sequence, increasing sensitivity at the expense of speed; conversely, +setting lower P-value thresholds will pass a smaller proportion, +decreasing sensitivity and increasing speed. Setting a filter's +P-value threshold to 1.0 means it will passing all sequences, and +effectively disables the filter. + +Changing filter thresholds only removes or includes targets from +consideration; changing filter thresholds does not alter bit scores, +E-values, or alignments, all of which are determined solely in +postprocessing. + +.TP +.B \-\-max +Maximum sensitivity. Turn off all filters, including the bias filter, +and run full Forward/Backward postprocessing on every target. This +increases sensitivity slightly, at a large cost in speed. + +.TP +.BI \-\-F1 " " +First filter threshold; set the P-value threshold for the MSV filter +step. The default is 0.02, meaning that roughly 2% of the highest +scoring nonhomologous targets are expected to pass the filter. + +.TP +.BI \-\-F2 " " +Second filter threshold; set the P-value threshold for the Viterbi +filter step. The default is 0.001. + +.TP +.BI \-\-F3 " " +Third filter threshold; set the P-value threshold for the Forward +filter step. The default is 1e-5. + +.TP +.B \-\-nobias +Turn off the bias filter. This increases sensitivity somewhat, but can +come at a high cost in speed, especially if the query has biased +residue composition (such as a repetitive sequence region, or if it is +a membrane protein with large regions of hydrophobicity). Without the +bias filter, too many sequences may pass the filter with biased +queries, leading to slower than expected performance as the +computationally intensive Forward/Backward algorithms shoulder an +abnormally heavy load. + + + +.SH OPTIONS CONTROLLING PROFILE CONSTRUCTION (LATER ITERATIONS) + +.B jackhmmer +always includes your original query sequence in the alignment result +at every iteration, and consensus positions are always defined by that +query sequence. That is, a +.B jackhmmer +profile is always the same length as your original query, at every +iteration. +Therefore +.B jackhmmer +gives you less control over profile construction than +.B hmmbuild +does; it does not have the +.BR \-\-fast , +or +.BR \-\-hand , +or +.B \-\-symfrac +options. +The only profile construction option available in +.B jackhmmer +is +.BR \-\-fragthresh : + + +.TP +.BI \-\-fragthresh " " +We only want to count terminal gaps as deletions if the aligned +sequence is known to be full-length, not if it is a fragment (for +instance, because only part of it was sequenced). HMMER uses a simple +rule to infer fragments: if the sequence length L is less than +or equal to a fraction +.I +times the alignment length in columns, +then the sequence is handled as a fragment. The default is 0.5. +Setting +.B \-\-fragthresh 0 +will define no (nonempty) sequence as a fragment; you might want to do +this if you know you've got a carefully curated alignment of full-length +sequences. +Setting +.B \-\-fragthresh 1 +will define all sequences as fragments; you might want to do this if +you know your alignment is entirely composed of fragments, such as +translated short reads in metagenomic shotgun data. + + + +.SH OPTIONS CONTROLLING RELATIVE WEIGHTS + +Whenever a profile is built from a multiple alignment, HMMER uses an +ad hoc sequence weighting algorithm to downweight closely related +sequences and upweight distantly related ones. This has the effect of +making models less biased by uneven phylogenetic representation. For +example, two identical sequences would typically each receive half the +weight that one sequence would (and this is why +.B jackhmmer +isn't concerned about always including your original query sequence in +each iteration's alignment, even if it finds it again in the database +you're searching). These options control which algorithm gets used. + +.TP +.B \-\-wpb +Use the Henikoff position-based sequence weighting scheme [Henikoff +and Henikoff, J. Mol. Biol. 243:574, 1994]. This is the default. + +.TP +.B \-\-wgsc +Use the Gerstein/Sonnhammer/Chothia weighting algorithm [Gerstein et +al, J. Mol. Biol. 235:1067, 1994]. + +.TP +.B \-\-wblosum +Use the same clustering scheme that was used to weight data in +calculating BLOSUM subsitution matrices [Henikoff and Henikoff, +Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage +clustered at an identity threshold (default 0.62; see +.BR \-\-wid ) +and within each cluster of c sequences, each sequence gets relative +weight 1/c. + +.TP +.B \-\-wnone +No relative weights. All sequences are assigned uniform weight. + +.TP +.BI \-\-wid " " +Sets the identity threshold used by single-linkage clustering when +using +.BR \-\-wblosum . +Invalid with any other weighting scheme. Default is 0.62. + + + + + +.SH OPTIONS CONTROLLING EFFECTIVE SEQUENCE NUMBER + +After relative weights are determined, they are normalized to sum to a +total effective sequence number, +.IR eff_nseq . +This number may be the actual number of sequences in the alignment, +but it is almost always smaller than that. +The default entropy weighting method +(\fB\-\-eent\fR) +reduces the effective sequence +number to reduce the information content (relative entropy, or average +expected score on true homologs) per consensus position. The target +relative entropy is controlled by a two-parameter function, where the +two parameters are settable with +.B \-\-ere +and +.BR \-\-esigma . + +.TP +.B \-\-eent +Adjust effective sequence number to achieve a specific relative entropy +per position (see +.BR \-\-ere ). +This is the default. + +.TP +.B \-\-eclust +Set effective sequence number to the number of single-linkage clusters +at a specific identity threshold (see +.BR \-\-eid ). +This option is not recommended; it's for experiments evaluating +how much better +.B \-\-eent +is. + +.TP +.B \-\-enone +Turn off effective sequence number determination and just use the +actual number of sequences. One reason you might want to do this is +to try to maximize the relative entropy/position of your model, which +may be useful for short models. + +.TP +.BI \-\-eset " " +Explicitly set the effective sequence number for all models to +.IR . + +.TP +.BI \-\-ere " " +Set the minimum relative entropy/position target to +.IR . +Requires +.BR \-\-eent . +Default depends on the sequence alphabet; for protein +sequences, it is 0.59 bits/position. + +.TP +.BI \-\-esigma " " +Sets the minimum relative entropy contributed by an entire +model alignment, over its whole length. This has the effect +of making short models have +higher relative entropy per position than +.B \-\-ere +alone would give. The default is 45.0 bits. + +.TP +.BI \-\-eid " " +Sets the fractional pairwise identity cutoff used by +single linkage clustering with the +.B \-\-eclust +option. The default is 0.62. + + + +.SH OPTIONS CONTROLLING PRIORS + +In profile construction, by default, weighted counts are converted to +mean posterior probability parameter estimates using mixture Dirichlet +priors. Default mixture Dirichlet prior parameters for protein models +and for nucleic acid (RNA and DNA) models are built in. The following +options allow you to override the default priors. + +.TP +.B \-\-pnone +Don't use any priors. Probability parameters will simply be the +observed frequencies, after relative sequence weighting. + +.TP +.B \-\-plaplace +Use a Laplace +1 prior in place of the default mixture Dirichlet +prior. + + + +.SH OPTIONS CONTROLLING E-VALUE CALIBRATION + +Estimating the location parameters for the expected score +distributions for MSV filter scores, Viterbi filter scores, and +Forward scores requires three short random sequence simulations. + +.TP +.BI \-\-EmL " " +Sets the sequence length in simulation that estimates the location +parameter mu for MSV filter E-values. Default is 200. + +.TP +.BI \-\-EmN " " +Sets the number of sequences in simulation that estimates the location +parameter mu for MSV filter E-values. Default is 200. + +.TP +.BI \-\-EvL " " +Sets the sequence length in simulation that estimates the location +parameter mu for Viterbi filter E-values. Default is 200. + +.TP +.BI \-\-EvN " " +Sets the number of sequences in simulation that estimates the location +parameter mu for Viterbi filter E-values. Default is 200. + +.TP +.BI \-\-EfL " " +Sets the sequence length in simulation that estimates the location +parameter tau for Forward E-values. Default is 100. + +.TP +.BI \-\-EfN " " +Sets the number of sequences in simulation that estimates the location +parameter tau for Forward E-values. Default is 200. + +.TP +.BI \-\-Eft " " +Sets the tail mass fraction to fit in the simulation that estimates +the location parameter tau for Forward evalues. Default is 0.04. + + +.SH OTHER OPTIONS + +.TP +.B \-\-nonull2 +Turn off the null2 score corrections for biased composition. + +.TP +.BI \-Z " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-sequence E-value calculations, +rather than the actual number of targets seen. + +.TP +.BI \-\-domZ " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-domain conditional E-value calculations, +rather than the number of targets that passed the reporting thresholds. + +.TP +.BI \-\-seed " " +Seed the random number generator with +.IR , +an integer >= 0. +If +.I +is >0, any stochastic simulations will be reproducible; the same +command will give the same results. +If +.I +is 0, the random number generator is seeded arbitrarily, and +stochastic simulations will vary from run to run of the same command. +The default seed is 42. + + +.TP +.BI \-\-qformat " " +Assert that input query +.I seqfile +is in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank. +Alignment formats also work; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +.B jackhmmer +always uses a single sequence query to start its search, so when the input +.I seqfile +is an alignment, +.B jackhmmer +reads it one unaligned query sequence at a time, not as an alignment. +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work). + +.TP +.BI \-\-tformat " " +Assert that the input target sequence +.I seqdb +is in format +.IR . +See +.B \-\-qformat +above for accepted choices for +.IR . + + + +.TP +.BI \-\-cpu " " +Set the number of parallel worker threads to +.IR . +On multicore machines, the default is 2. +You can also control this number by setting an environment variable, +.IR HMMER_NCPU . +There is also a master thread, so the actual number of threads that +HMMER spawns is +.IR +1. + +This option is not available if HMMER was compiled with POSIX threads +support turned off. + + + +.TP +.BI \-\-stall +For debugging the MPI master/worker version: pause after start, to +enable the developer to attach debuggers to the running master and +worker(s) processes. Send SIGCONT signal to release the pause. +(Under gdb: +.BR "(gdb) signal SIGCONT" ) +(Only available if optional MPI support was enabled at compile-time.) + +.TP +.BI \-\-mpi +Run under MPI control with master/worker parallelization (using +.BR mpirun , +for example, or equivalent). Only available if optional MPI support +was enabled at compile-time. + + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + diff --git a/bioinformaticsProject/hmmer/documentation/man/makehmmerdb.man.in b/bioinformaticsProject/hmmer/documentation/man/makehmmerdb.man.in new file mode 100644 index 0000000..491a157 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/makehmmerdb.man.in @@ -0,0 +1,133 @@ +.TH "makehmmerdb" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +makehmmerdb \- build nhmmer database from a sequence file + + +.SH SYNOPSIS +.B makehmmerdb +[\fIoptions\fR] +.I seqfile +.I binaryfile + + +.SH DESCRIPTION + +.PP +.B makehmmerdb +is used to create a binary file from a DNA sequence file. This +binary file may be used as a target database for the DNA search tool +.BR nhmmer . +Using default settings in +.BR nhmmer , +this yields a roughly 10-fold acceleration with small loss of +sensitivity on benchmarks. + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + + +.SH OTHER OPTIONS + +.TP +.BI \-\-informat " " +Assert that input +.I seqfile +is in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank. +Alignment formats also work; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work). + + +.TP +.BI \-\-bin_length " " +Bin length. The binary file depends on a data structure called the +FM index, which organizes a permuted copy of the sequence in bins +of length +.IR . +Longer bin length will lead to smaller files (because data is +captured about each bin) and possibly slower query time. The +default is 256. Much more than 512 may lead to notable reduction +in speed. + + +.TP +.BI \-\-sa_freq " " +Suffix array sample rate. The FM index structure also samples from +the underlying suffix array for the sequence database. More frequent +sampling (smaller value for +.IR ) +will yield larger file size and faster search (until file size becomes +large enough to cause I/O to be a bottleneck). The default value +is 8. Must be a power of 2. + + +.TP +.BI \-\-block_size " " +The input sequence is broken into blocks of size +.I +million letters. An FM index is built for each block, rather than +building an FM index for the entire sequence database. Default is +50. Larger blocks do not seem to yield substantial speed increase. + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/nhmmer.man.in b/bioinformaticsProject/hmmer/documentation/man/nhmmer.man.in new file mode 100644 index 0000000..7b63986 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/nhmmer.man.in @@ -0,0 +1,692 @@ +.TH "nhmmer" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +nhmmer \- search DNA queries against a DNA sequence database + + +.SH SYNOPSIS +.B nhmmer +[\fIoptions\fR] +.I queryfile +.I seqdb + + +.SH DESCRIPTION + +.PP +.B nhmmer +is used to search one or more nucleotide queries against a +nucleotide sequence database. +For each query in +.IR queryfile , +use that query to search the target database of sequences in +.IR seqdb , +and output a ranked list of the hits with the most significant +matches to the query. A query may be either a profile model +built using +.BR hmmbuild , +a sequence alignment, or a single sequence. Sequence based +queries can be in a number of formats (see +.BR \-\-qformat ), +and can typically be autodetected. Note that only +Stockholm +format supports queries made up of more than one sequence +alignment. + + + +.PP +Either the query +.I queryfile +or the target +.I seqdb +may be '\-' (a dash character), in which case +the query file or target database input will be read from a pipe instead of from a +file. Only one input source can come through , not both. +If the +.I queryfile +contains more than one query, then +.I seqdb +cannot come from stdin, because we can't rewind the +streaming target database to search it with another profile. + +.PP +If the query is sequence-based (unaligned or aligned), +a new file containing the HMM(s) built from the input(s) in +.I queryfile +may optionally be produced, with the filename set using the +.B \-\-hmmout +flag. + + +.PP +The output format is designed to be human-readable, but is often so +voluminous that reading it is impractical, and parsing it is a pain. The +.B \-\-tblout +option saves output in a simple tabular format that is concise and +easier to parse. +The +.B \-o +option allows redirecting the main output, including throwing it away +in /dev/null. + + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + + +.SH OPTIONS FOR CONTROLLING OUTPUT + +.TP +.BI \-o " " +Direct the main human-readable output to a file +.I +instead of the default stdout. + +.TP +.BI \-A " " +Save a multiple alignment of all significant hits (those satisfying +"inclusion thresholds") to the file +.IR . + +.TP +.BI \-\-tblout " " +Save a simple tabular (space-delimited) file summarizing the +per-target output, with one data line per homologous target sequence +found. + +.TP +.BI \-\-dfamtblout " " +Save a tabular (space-delimited) file summarizing the +per-hit output, similar to +.B \-\-tblout +but more succinct. + +.TP +.BI \-\-aliscoresout " " +Save to file a list of per-position scores for each hit. +This is useful, for example, in identifying regions of high +score density for use in resolving overlapping hits from +different models. + +.TP +.BI \-\-hmmout " " +If +.I queryfile +is sequence-based, write the internally-computed HMM(s) to file +.IR . + + +.TP +.B \-\-acc +Use accessions instead of names in the main output, where available +for profiles and/or sequences. + +.TP +.B \-\-noali +Omit the alignment section from the main output. This can greatly +reduce the output volume. + +.TP +.B \-\-notextw +Unlimit the length of each line in the main output. The default +is a limit of 120 characters per line, which helps in displaying +the output cleanly on terminals and in editors, but can truncate +target profile description lines. + +.TP +.BI \-\-textw " " +Set the main output's line length limit to +.I +characters per line. The default is 120. + + + +.SH OPTIONS CONTROLLING SINGLE SEQUENCE SCORING + +By default, if a query is a single sequence from a file in +fasta format, +.B nhmmer +uses a search model constructed from that sequence and a standard +20x20 substitution matrix for residue probabilities, along with two +additional parameters for position-independent gap open and gap extend +probabilities. These options allow the default single-sequence scoring +parameters to be changed, and for single-sequence scoring options to +be applied to a single sequence coming from an aligned format. + +.TP +.BI \-\-singlemx +If a single sequence query comes from a multiple sequence alignment file, +such as in Stockholm format, the search model is by default constructed as is typically done +for multiple sequence alignments. This option forces +.B nhmmer +to use the single-sequence method with substitution score matrix. + +.TP +.BI \-\-mxfile "" +Set the gap open probability for a single sequence query model to +.IR . +The default is 0.02. +.I +must be >= 0 and < 0.5. + +.TP +.BI \-\-pextend " " +Set the gap extend probability for a single sequence query model to +.IR . +The default is 0.4. +.I +must be >= 0 and < 1.0. + + + +.SH OPTIONS CONTROLLING REPORTING THRESHOLDS + +Reporting thresholds control which hits are reported in output files +(the main output, +.BR \-\-tblout , +and +.BR \-\-dfamtblout ). +Hits are ranked by statistical significance (E-value). + + +.TP +.BI \-E " " +Report target sequences with an E-value of <= +.IR . +The default is 10.0, meaning that on average, about 10 false positives +will be reported per query, so you can see the top of the noise +and decide for yourself if it's really noise. + +.TP +.BI \-T " " +Instead of thresholding output on E-value, instead +report target sequences with a bit score of >= +.IR . + + + + +.SH OPTIONS FOR INCLUSION THRESHOLDS + +Inclusion thresholds are stricter than reporting thresholds. +Inclusion thresholds control which hits are considered to be reliable +enough to be included in an output alignment or a subsequent search +round, or marked as significant ("!") as opposed to questionable ("?") +in hit output. + +.TP +.BI \-\-incE " " +Use an E-value of <= +.I +as the inclusion threshold. +The default is 0.01, meaning that on average, about 1 false positive +would be expected in every 100 searches with different query +sequences. + +.TP +.BI \-\-incT " " +Instead of using E-values for setting the inclusion threshold, +use a bit score of >= +.I +as the inclusion threshold. +By default this option is unset. + + + +.SH OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING + +Curated profile databases may define specific bit score thresholds for +each profile, superseding any thresholding based on statistical +significance alone. + +To use these options, the profile must contain the appropriate (GA, +TC, and/or NC) optional score threshold annotation; this is picked up +by +.B hmmbuild +from Stockholm format alignment files. For a nucleotide model, each +thresholding option has a single per-hit threshold +This acts as if +.BI \-T " " +.BI \-\-incT " " +has been applied specifically using each model's curated thresholds. + +.TP +.B \-\-cut_ga +Use the GA (gathering) bit score threshold in the model to set +per-hit reporting and inclusion +thresholds. GA thresholds are generally considered to be the +reliable curated thresholds defining family membership; for example, +in Dfam, these thresholds are applied when annotating a genome +with a model of a family known to be found in that organism. They +may allow for minimal expected false discovery rate. + +.TP +.B \-\-cut_nc +Use the NC (noise cutoff) bit score threshold in the model to set +per-hit reporting and inclusion +thresholds. NC thresholds are less stringent than GA; in the context +of Pfam, they are generally used to store the score of the +highest-scoring known false positive. + +.TP +.B \-\-cut_tc +Use the TC (trusted cutoff) bit score threshold in the model to set +per-hit reporting and inclusion +thresholds. TC thresholds are more stringent than GA, and are +generally considered to be the score of the lowest-scoring known +true positive that is above all known false positives; for example, +in Dfam, these thresholds are applied when annotating a genome +with a model of a family not known to be found in that organism. + + + + +.SH OPTIONS CONTROLLING THE ACCELERATION PIPELINE + +HMMER3 searches are accelerated in a three-step filter pipeline: the +scanning-SSV filter, the Viterbi filter, and the Forward filter. The +first filter is the fastest and most approximate; the last is the full +Forward scoring algorithm. There is also a bias filter step between +SSV and Viterbi. Targets that pass all the steps in the acceleration +pipeline are then subjected to postprocessing -- domain +identification and scoring using the Forward/Backward algorithm. + +Changing filter thresholds only removes or includes targets from +consideration; changing filter thresholds does not alter bit scores, +E-values, or alignments, all of which are determined solely in +postprocessing. + +.TP +.B \-\-max +Turn off (nearly) all filters, including the bias filter, and run full +Forward/Backward postprocessing on most of the target sequence. +In contrast to +.B phmmer +and +.BR hmmsearch , +where this flag really does turn off the filters entirely, the +.B \-\-max +flag in +.B nhmmer +sets the scanning-SSV filter threshold to 0.4, not 1.0. Use of this +flag increases sensitivity somewhat, at a large cost in speed. + +.TP +.BI \-\-F1 " " +Set the P-value threshold for the SSV filter step. The default is +0.02, meaning that roughly 2% of the highest scoring nonhomologous +targets are expected to pass the filter. + +.TP +.BI \-\-F2 " " +Set the P-value threshold for the Viterbi filter step. +The default is 0.001. + +.TP +.BI \-\-F3 " " +Set the P-value threshold for the Forward filter step. +The default is 1e-5. + +.TP +.B \-\-nobias +Turn off the bias filter. This increases sensitivity somewhat, but can +come at a high cost in speed, especially if the query has biased +residue composition (such as a repetitive sequence region, or if it is +a membrane protein with large regions of hydrophobicity). Without the +bias filter, too many sequences may pass the filter with biased +queries, leading to slower than expected performance as the +computationally intensive Forward/Backward algorithms shoulder an +abnormally heavy load. + + + +.SH OPTIONS FOR SPECIFYING THE ALPHABET + +.TP +.B \-\-dna +Assert that sequences in +.I msafile +are DNA, bypassing alphabet autodetection. + +.TP +.B \-\-rna +Assert that sequences in +.I msafile +are RNA, bypassing alphabet autodetection. + + + +.SH OPTIONS CONTROLLING SEED SEARCH HEURISTIC + +When searching with +.BR nhmmer , +one may optionally precompute a binary version of the target database, using +.BR makehmmerdb , +then search against that database. Using default settings, this yields a +roughly 10-fold acceleration with small loss of sensitivity on benchmarks. +This is achieved using a heuristic method that searches for seeds (ungapped +alignments) around which full processing is done. This is essentially +a replacement to the SSV stage. (This method has been extensively tested, +but should still be treated as somewhat experimental.) +The following options only impact +.B nhmmer +if the value of +.B \-\-tformat +is +.BR hmmerdb . + +Changing parameters for this seed-finding step will impact both speed and +sensitivity - typically faster search leads to lower sensitivity. + +.TP +.BI \-\-seed_max_depth " " +The seed step requires that a seed reach a specified bit score in length +no longer than +.IR . +By default, this value is 15. Longer seeds allow a greater chance of +meeting the bit score threshold, leading to diminished filtering +(greater sensitivity, slower run time). + +.TP +.BI \-\-seed_sc_thresh " " +The seed must reach score +.I +(in bits). The default is 15.0 bits. A higher threshold increases +filtering stringency, leading to faster run times and lower +sensitivity. + +.TP +.BI \-\-seed_sc_density " " +Either all prefixes or all suffixes of a seed must have +bit density (bits per aligned position) of at least +.IR . +The default is 0.8 bits/position. An increase in the density +requirement leads to increased filtering stringency, thus faster +run times and lower sensitivity. + +.TP +.BI \-\-seed_drop_max_len " " +A seed may not have a run of length +.I +in which the score drops by +.B \-\-seed_drop_lim +or more. Basically, this prunes seeds that go through long +slightly-negative seed extensions. The default is 4. Increasing +the limit causes (slightly) diminished filtering efficiency, thus +slower run times and higher sensitivity. (minor tuning option) + +.TP +.BI \-\-seed_drop_lim " " +In a seed, there may be no run of length +.B \-\-seed_drop_max_len +in which the score drops by +.BR \-\-seed_drop_lim . +The default is 0.3 bits. Larger numbers mean less filtering. +(minor tuning option) + +.TP +.BI \-\-seed_req_pos " " +A seed must contain a run of at least +.I +positive-scoring matches. The default is 5. Larger values mean +increased filtering. +(minor tuning option) + +.TP +.BI \-\-seed_ssv_length " " +After finding a short seed, an ungapped alignment is extended +in both directions in an attempt to meet the +.B \-\-F1 +score threshold. The window through which this ungapped alignment +extends is length +.IR . +The default is 70. +Decreasing this value slightly reduces run time, at a small risk of +reduced sensitivity. (minor tuning option) + + +.SH OTHER OPTIONS + + +.TP +.BI \-\-qformat " " +Assert that input +.I queryfile +is a sequence file (unaligned or aligned), in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank. +Alignment formats also work, and will serve as the +basis for automatic creation of a profile HMM used for +searching; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. + + +.TP +.BI \-\-qsingle_seqs +Force +.I queryfile +to be read as individual sequences, even if it is in +an msa format. For example, if the input is in aligned +.BR stockholm +format, the +.BR \-\-qsingle_seqs + flag will cause each sequence in that alignment to be used as a seperate query sequence. + +.TP +.BI \-\-tformat " " +Assert that target sequence database +.I seqdb +is in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank , +.BR ncbi , +.BR fmindex . +Alignment formats also work; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work). +The format +.B ncbi +indicates that the database file is a binary file produced using +.BR makeblastdb . +The format +.B fmindex +indicates that the database file is a binary file produced using +.BR makehmmerdb . + + +.TP +.B \-\-nonull2 +Turn off the null2 score corrections for biased composition. + +.TP +.BI \-Z " " +For the purposes of per-hit E-value calculations, +Assert that the total size of the target database is +.I +million nucleotides, +rather than the actual number of targets seen. + + +.TP +.BI \-\-seed " " +Set the random number seed to +.IR . +Some steps in postprocessing require Monte Carlo simulation. The +default is to use a fixed seed (42), so that results are exactly +reproducible. Any other positive integer will give different (but also +reproducible) results. A choice of 0 uses a randomly chosen seed. + + +.TP +.BI \-\-w_beta " " +Window length tail mass. +The upper bound, +.IR W , +on the length at which nhmmer expects to find an instance of the +model is set such that the fraction of all sequences generated +by the model with length >= W is less than +.IR . +The default is 1e-7. +This flag may be used to override the value of +.I W +established for the model by +.BR hmmbuild , +or when the query is sequence-based. + + + +.TP +.BI \-\-w_length " " +Override the model instance length upper bound, W, +which is otherwise controlled by +.BR \-\-w_beta . +It should be larger than the model length. The value of W +is used deep in the acceleration pipeline, and modest changes +are not expected to impact results (though larger values of W +do lead to longer run time). +This flag may be used to override the value of +W established for the model by +.BR hmmbuild , +or when the query is sequence-based. + + + +.TP +.B \-\-watson +Only search the top strand. By default both the query sequence +and its reverse-complement are searched. + +.TP +.B \-\-crick +Only search the bottom (reverse-complement) strand. By +default both the query sequence and its reverse-complement are searched. + + +.TP +.BI \-\-cpu " " +Set the number of parallel worker threads to +.IR . +On multicore machines, the default is 2. +You can also control this number by setting an environment variable, +.IR HMMER_NCPU . +There is also a master thread, so the actual number of threads that +HMMER spawns is +.IR +1. + +This option is not available if HMMER was compiled with POSIX threads +support turned off. + + + + +.TP +.BI \-\-stall +For debugging the MPI master/worker version: pause after start, to +enable the developer to attach debuggers to the running master and +worker(s) processes. Send SIGCONT signal to release the pause. +(Under gdb: +.BR "(gdb) signal SIGCONT" ) +(Only available if optional MPI support was enabled at compile-time.) + +.TP +.BI \-\-mpi +Run under MPI control with master/worker parallelization (using +.BR mpirun , +for example, or equivalent). Only available if optional MPI support +was enabled at compile-time. + + + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + + + diff --git a/bioinformaticsProject/hmmer/documentation/man/nhmmscan.man.in b/bioinformaticsProject/hmmer/documentation/man/nhmmscan.man.in new file mode 100644 index 0000000..cf36994 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/nhmmscan.man.in @@ -0,0 +1,468 @@ +.TH "nhmmscan" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +nhmmscan \- search DNA sequence(s) against a DNA profile database + + +.SH SYNOPSIS +.B nhmmscan +[\fIoptions\fR] +.I hmmdb +.I seqfile + + + +.SH DESCRIPTION + +.PP +.B nhmmscan +is used to search nucleotide sequences against collections +of nucleotide profiles. For each sequence in +.IR seqfile , +use that query sequence to search the target database of +profiles in +.IR hmmdb , +and output ranked lists of the profiles with the +most significant matches to the sequence. + +.PP +The +.I seqfile +may contain more than one query sequence. It can be in FASTA format, +or several other common sequence file formats (genbank, embl, and +uniprot, among others), or in alignment file formats (stockholm, +aligned fasta, and others). See the +.I \-\-qformat +option for a complete list. + +.PP +The +.I hmmdb +needs to be press'ed using +.B hmmpress +before it can be searched with +.BR nhmmscan . +This creates four binary files, +suffixed +.B .h3{fimp}. + +.PP +The query +.I seqfile +may be '\-' (a dash character), in which case +the query sequences are read from a stdin pipe instead of from a +file. +The +.I hmmdb +cannot be read from a stdin stream, because it needs to have +the four auxiliary binary files generated by +.BR hmmpress . + +.PP +The output format is designed to be human-readable, but is often so +voluminous that reading it is impractical, and parsing it is a pain. The +.B \-\-tblout +option saves output in a simple tabular format that is concise and +easier to parse. +The +.B \-o +option allows redirecting the main output, including throwing it away +in /dev/null. + + + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + + +.SH OPTIONS FOR CONTROLLING OUTPUT + +.TP +.BI \-o " " +Direct the main human-readable output to a file +.I +instead of the default stdout. + +.TP +.BI \-\-tblout " " +Save a simple tabular (space-delimited) file summarizing the +per-hit output, with one data line per homologous target model +hit found. + +.TP +.BI \-\-dfamtblout " " +Save a tabular (space-delimited) file summarizing the +per-hit output, similar to +.B \-\-tblout +but more succinct. + +.TP +.BI \-\-aliscoresout " " +Save to file a list of per-position scores for each hit. +This is useful, for example, in identifying regions of high +score density for use in resolving overlapping hits from +different models. + + +.TP +.B \-\-acc +Use accessions instead of names in the main output, where available +for profiles and/or sequences. + +.TP +.B \-\-noali +Omit the alignment section from the main output. This can greatly +reduce the output volume. + +.TP +.B \-\-notextw +Unlimit the length of each line in the main output. The default +is a limit of 120 characters per line, which helps in displaying +the output cleanly on terminals and in editors, but can truncate +target profile description lines. + +.TP +.BI \-\-textw " " +Set the main output's line length limit to +.I +characters per line. The default is 120. + + + +.SH OPTIONS FOR REPORTING THRESHOLDS + +Reporting thresholds control which hits are reported in output files +(the main output, +.BR \-\-tblout , +and +.BR \-\-dfamtblout ). +Hits are ranked by statistical significance (E-value). + +.TP +.BI \-E " " +Report target profiles with an E-value of <= +.IR . +The default is 10.0, meaning that on average, about 10 false positives +will be reported per query, so you can see the top of the noise +and decide for yourself if it's really noise. + +.TP +.BI \-T " " +Instead of thresholding output on E-value, instead +report target profiles with a bit score of >= +.IR . + + + + +.SH OPTIONS FOR INCLUSION THRESHOLDS + +Inclusion thresholds are stricter than reporting thresholds. +Inclusion thresholds control which hits are considered to be +reliable enough +to be included in an output alignment or a subsequent search round. +In +.BR nhmmscan , +which does not have any alignment output (like +.BR nhmmer ), +inclusion thresholds have little effect. They only affect what hits +get marked as significant (!) or questionable (?) in hit +output. + +.TP +.BI \-\-incE " " +Use an E-value of <= +.I +as the inclusion threshold. +The default is 0.01, meaning that on average, about 1 false positive +would be expected in every 100 searches with different query +sequences. + +.TP +.BI \-\-incT " " +Instead of using E-values for setting the inclusion threshold, +use a bit score of >= +.I +as the inclusion threshold. +It would be unusual to use bit score thresholds with +.BR hmmscan , +because you don't expect a single score threshold to work for +different profiles; different profiles have slightly different +expected score distributions. + + + +.SH OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING + +Curated profile databases may define specific bit score thresholds for +each profile, superseding any thresholding based on statistical +significance alone. + +To use these options, the profile must contain the appropriate (GA, +TC, and/or NC) optional score threshold annotation; this is picked up +by +.B hmmbuild +from Stockholm format alignment files. For a nucleotide model, each +thresholding option has a single per-hit threshold +This acts as if +.BI \-T " " +.BI \-\-incT " " +has been applied specifically using each model's curated thresholds. + +.TP +.B \-\-cut_ga +Use the GA (gathering) bit score threshold in the model to set +per-hit reporting and inclusion +thresholds. GA thresholds are generally considered to be the +reliable curated thresholds defining family membership; for example, +in Dfam, these thresholds are applied when annotating a genome +with a model of a family known to be found in that organism. They +may allow for minimal expected false discovery rate. + +.TP +.B \-\-cut_nc +Use the NC (noise cutoff) bit score threshold in the model to set +per-hit reporting and inclusion +thresholds. NC thresholds are less stringent than GA; in the context +of Pfam, they are generally used to store the score of the +highest-scoring known false positive. + +.TP +.B \-\-cut_tc +Use the TC (trusted cutoff) bit score threshold in the model to set +per-hit reporting and inclusion +thresholds. TC thresholds are more stringent than GA, and are +generally considered to be the score of the lowest-scoring known +true positive that is above all known false positives; for example, +in Dfam, these thresholds are applied when annotating a genome +with a model of a family not known to be found in that organism. + + + +.SH CONTROL OF THE ACCELERATION PIPELINE + +HMMER3 searches are accelerated in a three-step filter pipeline: the +scanning-SSV filter, the Viterbi filter, and the Forward filter. The +first filter is the fastest and most approximate; the last is the full +Forward scoring algorithm. There is also a bias filter step between +SSV and Viterbi. Targets that pass all the steps in the acceleration +pipeline are then subjected to postprocessing -- domain +identification and scoring using the Forward/Backward algorithm. + +Changing filter thresholds only removes or includes targets from +consideration; changing filter thresholds does not alter bit scores, +E-values, or alignments, all of which are determined solely in +postprocessing. + +.TP +.B \-\-max +Turn off (nearly) all filters, including the bias filter, and run full +Forward/Backward postprocessing on most of the target sequence. +In contrast to +.B hmmscan, +where this flag really does turn off the filters entirely, the +.B \-\-max +flag in +.B nhmmscan +sets the scanning-SSV filter threshold to 0.4, not 1.0. Use of this +flag increases sensitivity somewhat, at a large cost in speed. + +.TP +.BI \-\-F1 " " +Set the P-value threshold for the MSV filter step. The default is +0.02, meaning that roughly 2% of the highest scoring nonhomologous +targets are expected to pass the filter. + +.TP +.BI \-\-F2 " " +Set the P-value threshold for the Viterbi filter step. +The default is 0.001. + +.TP +.BI \-\-F3 " " +Set the P-value threshold for the Forward filter step. +The default is 1e-5. + +.TP +.B \-\-nobias +Turn off the bias filter. This increases sensitivity somewhat, but can +come at a high cost in speed, especially if the query has biased +residue composition (such as a repetitive sequence region, or if it is +a membrane protein with large regions of hydrophobicity). Without the +bias filter, too many sequences may pass the filter with biased +queries, leading to slower than expected performance as the +computationally intensive Forward/Backward algorithms shoulder an +abnormally heavy load. + + + +.SH OTHER OPTIONS + +.TP +.B \-\-nonull2 +Turn off the null2 score corrections for biased composition. + +.TP +.BI \-Z " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-sequence E-value calculations, +rather than the actual number of targets seen. + +.TP +.BI \-\-seed " " +Set the random number seed to +.IR . +Some steps in postprocessing require Monte Carlo simulation. The +default is to use a fixed seed (42), so that results are exactly +reproducible. Any other positive integer will give different (but also +reproducible) results. A choice of 0 uses an arbitrarily chosen seed. + +.TP +.BI \-\-qformat " " +Assert that input query +.I seqfile +is in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank. +Alignment formats also work; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work). + + +.TP +.BI \-\-w_beta " " +Window length tail mass. +The upper bound, W, +on the length at which nhmmer expects to find an instance of the +model is set such that the fraction of all sequences generated +by the model with length >= W is less than +.IR . +The default is 1e-7. +This flag may be used to override the value of W +established for the model by +.BR hmmbuild . + + + +.TP +.BI \-\-w_length " " +Override the model instance length upper bound, W, +which is otherwise controlled by +.BR \-\-w_beta . +It should be larger than the model length. The value of W +is used deep in the acceleration pipeline, and modest changes +are not expected to impact results (though larger values of W +do lead to longer run time). +This flag may be used to override the value of W +established for the model by +.BR hmmbuild . + + +.TP +.B \-\-watson +Only search the top strand. By default both the query sequence +and its reverse-complement are searched. + +.TP +.B \-\-crick +Only search the bottom (reverse-complement) strand. By +default both the query sequence and its reverse-complement are searched. + + +.TP +.BI \-\-cpu " " +Set the number of parallel worker threads to +.IR . +On multicore machines, the default is 2. +You can also control this number by setting an environment variable, +.IR HMMER_NCPU . +There is also a master thread, so the actual number of threads that +HMMER spawns is +.IR +1. + +This option is not available if HMMER was compiled with POSIX threads +support turned off. + + + + +.TP +.BI \-\-stall +For debugging the MPI master/worker version: pause after start, to +enable the developer to attach debuggers to the running master and +worker(s) processes. Send SIGCONT signal to release the pause. +(Under gdb: +.BR "(gdb) signal SIGCONT" ) + +(Only available if optional MPI support was enabled at compile-time.) + +.TP +.BI \-\-mpi +Run under MPI control with master/worker parallelization (using +.BR mpirun , +for example, or equivalent). Only available if optional MPI support +was enabled at compile-time. + + + + + + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + diff --git a/bioinformaticsProject/hmmer/documentation/man/phmmer.man.in b/bioinformaticsProject/hmmer/documentation/man/phmmer.man.in new file mode 100644 index 0000000..211f39e --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/man/phmmer.man.in @@ -0,0 +1,523 @@ +.TH "phmmer" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual" + +.SH NAME +phmmer \- search protein sequence(s) against a protein sequence database + + +.SH SYNOPSIS +.B phmmer +[\fIoptions\fR] +.I seqfile +.I seqdb + + +.SH DESCRIPTION + +.PP +.B phmmer +is used to search one or more query protein sequences against a protein sequence database. +For each query sequence in +.IR seqfile , +use that sequence to search the target database of sequences in +.IR seqdb , +and output ranked lists of the sequences with the most significant +matches to the query. + +.PP +Either the query +.I seqfile +or the target +.I seqdb +may be '\-' (a dash character), in which case +the query sequences or target database input will be read from a pipe instead of from a +file. Only one input source can come through , not both. +An exception is that if the +.I seqfile +contains more than one query sequence, then +.I seqdb +cannot come from , because we can't rewind the +streaming target database to search it with another query. + + +.PP +The output format is designed to be human-readable, but is often so +voluminous that reading it is impractical, and parsing it is a pain. The +.B \-\-tblout +and +.B \-\-domtblout +options save output in simple tabular formats that are concise and +easier to parse. +The +.B \-o +option allows redirecting the main output, including throwing it away +in /dev/null. + +.SH OPTIONS + +.TP +.B \-h +Help; print a brief reminder of command line usage and all available +options. + + +.SH OPTIONS FOR CONTROLLING OUTPUT + +.TP +.BI \-o " " +Direct the main human-readable output to a file +.I +instead of the default stdout. + +.TP +.BI \-A " " +Save a multiple alignment of all significant hits (those satisfying +inclusion thresholds) +to the file +.I +in Stockholm format. + +.TP +.BI \-\-tblout " " +Save a simple tabular (space-delimited) file summarizing the +per-target output, with one data line per homologous target sequence +found. + +.TP +.BI \-\-domtblout " " +Save a simple tabular (space-delimited) file summarizing the +per-domain output, with one data line per homologous domain +detected in a query sequence for each homologous model. + +.TP +.B \-\-acc +Use accessions instead of names in the main output, where available +for profiles and/or sequences. + +.TP +.B \-\-noali +Omit the alignment section from the main output. This can greatly +reduce the output volume. + +.TP +.B \-\-notextw +Unlimit the length of each line in the main output. The default +is a limit of 120 characters per line, which helps in displaying +the output cleanly on terminals and in editors, but can truncate +target profile description lines. + +.TP +.BI \-\-textw " " +Set the main output's line length limit to +.I +characters per line. The default is 120. + + + +.SH OPTIONS CONTROLLING SCORING SYSTEM + +The probability model in +.B phmmer +is constructed by inferring residue probabilities from a standard +20x20 substitution score matrix, plus two additional parameters for +position-independent gap open and gap extend probabilities. + +.TP +.BI \-\-popen " " +Set the gap open probability for a single sequence query model to +.IR . +The default is 0.02. +.I +must be >= 0 and < 0.5. + +.TP +.BI \-\-pextend " " +Set the gap extend probability for a single sequence query model to +.IR . +The default is 0.4. +.I +must be >= 0 and < 1.0. + +.TP +.BI \-\-mx " " +Obtain residue alignment probabilities from the built-in +substitution matrix named +.IR . +Several standard matrices are built-in, and do not need to be +read from files. +The matrix name +.I +can be +PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80, +or BLOSUM90. +Only one of the +.B \-\-mx +and +.B \-\-mxfile +options may be used. + +.TP +.BI \-\-mxfile " mxfile" +Obtain residue alignment probabilities from the substitution matrix +in file +.IR mxfile . +The default score matrix is BLOSUM62 (this matrix is internal to +HMMER and does not have to be available as a file). +The format of a substitution matrix +.I mxfile +is the standard format accepted by BLAST, FASTA, and other sequence +analysis software. +See ftp.ncbi.nlm.nih.gov/blast/matrices/ for example files. (The only +exception: we require matrices to be square, so for DNA, use files +like NCBI's NUC.4.4, not NUC.4.2.) + + + +.SH OPTIONS CONTROLLING REPORTING THRESHOLDS + +Reporting thresholds control which hits are reported in output files +(the main output, +.BR \-\-tblout , +and +.BR \-\-domtblout ). +Sequence hits and domain hits are ranked by statistical significance +(E-value) and output is generated in two sections called per-target +and per-domain output. In per-target output, by default, all +sequence hits with an E-value <= 10 are reported. In the per-domain +output, for each target that has passed per-target reporting +thresholds, all domains satisfying per-domain reporting thresholds are +reported. By default, these are domains with conditional E-values of +<= 10. The following options allow you to change the default +E-value reporting thresholds, or to use bit score thresholds instead. + + +.TP +.BI \-E " " +In the per-target output, report target sequences with an E-value of <= +.IR . +The default is 10.0, meaning that on average, about 10 false positives +will be reported per query, so you can see the top of the noise +and decide for yourself if it's really noise. + +.TP +.BI \-T " " +Instead of thresholding per-profile output on E-value, instead +report target sequences with a bit score of >= +.IR . + +.TP +.BI \-\-domE " " +In the per-domain output, for target sequences that have already satisfied +the per-profile reporting threshold, report individual domains +with a conditional E-value of <= +.IR . +The default is 10.0. +A conditional E-value means the expected number of additional false +positive domains in the smaller search space of those comparisons that +already satisfied the per-target reporting threshold (and thus must +have at least one homologous domain already). + +.TP +.BI \-\-domT " " +Instead of thresholding per-domain output on E-value, instead +report domains with a bit score of >= +.IR . + +.SH OPTIONS CONTROLLING INCLUSION THRESHOLDS + +Inclusion thresholds are stricter than reporting thresholds. They +control which hits are included in any output multiple alignment (the +.B \-A +option) and which domains are marked as significant ("!") as opposed +to questionable ("?") in domain output. + +.TP +.BI \-\-incE " " +Use an E-value of <= +.I +as the per-target inclusion threshold. +The default is 0.01, meaning that on average, about 1 false positive +would be expected in every 100 searches with different query +sequences. + +.TP +.BI \-\-incT " " +Instead of using E-values for setting the inclusion threshold, instead +use a bit score of >= +.I +as the per-target inclusion threshold. +By default this option is unset. + +.TP +.BI \-\-incdomE " " +Use a conditional E-value of <= +.I +as the per-domain inclusion threshold, in targets that have already +satisfied the overall per-target inclusion threshold. +The default is 0.01. + +.TP +.BI \-\-incdomT " " +Instead of using E-values, +use a bit score of >= +.I +as the per-domain inclusion threshold. +By default this option is unset. + + + + +.SH OPTIONS CONTROLLING THE ACCELERATION PIPELINE + +HMMER3 searches are accelerated in a three-step filter pipeline: the +MSV filter, the Viterbi filter, and the Forward filter. The first +filter is the fastest and most approximate; the last is the full +Forward scoring algorithm, slowest but most accurate. There is also a +bias filter step between MSV and Viterbi. Targets that pass all the +steps in the acceleration pipeline are then subjected to +postprocessing -- domain identification and scoring using the +Forward/Backward algorithm. + +Essentially the only free parameters that control HMMER's heuristic +filters are the P-value thresholds controlling the expected fraction +of nonhomologous sequences that pass the filters. Setting the default +thresholds higher will pass a higher proportion of nonhomologous +sequence, increasing sensitivity at the expense of speed; conversely, +setting lower P-value thresholds will pass a smaller proportion, +decreasing sensitivity and increasing speed. Setting a filter's +P-value threshold to 1.0 means it will passing all sequences, and +effectively disables the filter. + +Changing filter thresholds only removes or includes targets from +consideration; changing filter thresholds does not alter bit scores, +E-values, or alignments, all of which are determined solely in +postprocessing. + +.TP +.B \-\-max +Maximum sensitivity. Turn off all filters, including the bias filter, +and run full Forward/Backward postprocessing on every target. This +increases sensitivity slightly, at a large cost in speed. + +.TP +.BI \-\-F1 " " +First filter threshold; set the P-value threshold for the MSV filter +step. The default is 0.02, meaning that roughly 2% of the highest +scoring nonhomologous targets are expected to pass the filter. + +.TP +.BI \-\-F2 " " +Second filter threshold; set the P-value threshold for the Viterbi +filter step. The default is 0.001. + +.TP +.BI \-\-F3 " " +Third filter threshold; set the P-value threshold for the Forward +filter step. The default is 1e-5. + +.TP +.B \-\-nobias +Turn off the bias filter. This increases sensitivity somewhat, but can +come at a high cost in speed, especially if the query has biased +residue composition (such as a repetitive sequence region, or if it is +a membrane protein with large regions of hydrophobicity). Without the +bias filter, too many sequences may pass the filter with biased +queries, leading to slower than expected performance as the +computationally intensive Forward/Backward algorithms shoulder an +abnormally heavy load. + + + + +.SH OPTIONS CONTROLLING E-VALUE CALIBRATION + +Estimating the location parameters for the expected score +distributions for MSV filter scores, Viterbi filter scores, and +Forward scores requires three short random sequence simulations. + +.TP +.BI \-\-EmL " " +Sets the sequence length in simulation that estimates the location +parameter mu for MSV filter E-values. Default is 200. + +.TP +.BI \-\-EmN " " +Sets the number of sequences in simulation that estimates the location +parameter mu for MSV filter E-values. Default is 200. + +.TP +.BI \-\-EvL " " +Sets the sequence length in simulation that estimates the location +parameter mu for Viterbi filter E-values. Default is 200. + +.TP +.BI \-\-EvN " " +Sets the number of sequences in simulation that estimates the location +parameter mu for Viterbi filter E-values. Default is 200. + +.TP +.BI \-\-EfL " " +Sets the sequence length in simulation that estimates the location +parameter tau for Forward E-values. Default is 100. + +.TP +.BI \-\-EfN " " +Sets the number of sequences in simulation that estimates the location +parameter tau for Forward E-values. Default is 200. + +.TP +.BI \-\-Eft " " +Sets the tail mass fraction to fit in the simulation that estimates +the location parameter tau for Forward evalues. Default is 0.04. + + + + +.SH OTHER OPTIONS + +.TP +.B \-\-nonull2 +Turn off the null2 score corrections for biased composition. + +.TP +.BI \-Z " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-sequence E-value calculations, +rather than the actual number of targets seen. + +.TP +.BI \-\-domZ " " +Assert that the total number of targets in your searches is +.IR , +for the purposes of per-domain conditional E-value calculations, +rather than the number of targets that passed the reporting thresholds. + +.TP +.BI \-\-seed " " +Seed the random number generator with +.IR , +an integer >= 0. +If +.I +is >0, any stochastic simulations will be reproducible; the same +command will give the same results. +If +.I +is 0, the random number generator is seeded arbitrarily, and +stochastic simulations will vary from run to run of the same command. +The default seed is 42. + +.TP +.BI \-\-qformat " " +Assert that input +.I seqfile +is in format +.IR , +bypassing format autodetection. +Common choices for +.I +include: +.BR fasta , +.BR embl , +.BR genbank. +Alignment formats also work; +common choices include: +.BR stockholm , +.BR a2m , +.BR afa , +.BR psiblast , +.BR clustal , +.BR phylip . +.B phmmer +always uses a single sequence query to start its search, so when the input +.I seqfile +is an alignment, +.B phmmer +reads it one unaligned query sequence at a time, not as an alignment. +For more information, and for codes for some less common formats, +see main documentation. +The string +.I +is case-insensitive (\fBfasta\fR or \fBFASTA\fR both work). + +.BI \-\-tformat " " +Assert that target sequence database +.I seqdb +is in format +.IR , +bypassing format autodetection. +See +.B \-\-qformat +above for list of accepted format codes for +.IR . + + +.TP +.BI \-\-cpu " " +Set the number of parallel worker threads to +.IR . +On multicore machines, the default is 2. +You can also control this number by setting an environment variable, +.IR HMMER_NCPU . +There is also a master thread, so the actual number of threads that +HMMER spawns is +.IR +1. + +This option is not available if HMMER was compiled with POSIX threads +support turned off. + + + +.TP +.BI \-\-stall +For debugging the MPI master/worker version: pause after start, to +enable the developer to attach debuggers to the running master and +worker(s) processes. Send SIGCONT signal to release the pause. +(Under gdb: +.BR "(gdb) signal SIGCONT" ) +(Only available if optional MPI support was enabled at compile-time.) + +.TP +.BI \-\-mpi +Run under MPI control with master/worker parallelization (using +.BR mpirun , +for example, or equivalent). Only available if optional MPI support +was enabled at compile-time. + + + + + +.SH SEE ALSO + +See +.BR hmmer (1) +for a master man page with a list of all the individual man pages +for programs in the HMMER package. + +.PP +For complete documentation, see the user guide that came with your +HMMER distribution (Userguide.pdf); or see the HMMER web page +(@HMMER_URL@). + + + +.SH COPYRIGHT + +.nf +@HMMER_COPYRIGHT@ +@HMMER_LICENSE@ +.fi + +For additional information on copyright and licensing, see the file +called COPYRIGHT in your HMMER source distribution, or see the HMMER +web page +(@HMMER_URL@). + + +.SH AUTHOR + +.nf +http://eddylab.org +.fi + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/Makefile.in b/bioinformaticsProject/hmmer/documentation/userguide/Makefile.in new file mode 100644 index 0000000..5e95ada --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/Makefile.in @@ -0,0 +1,174 @@ +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +SHELL = /bin/sh + +# Installation targets +# +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +mandir = @mandir@ +docdir = @docdir@ +pdfdir = @pdfdir@ +mandir = @mandir@ +man1dir = ${mandir}/man1 +man1ext = .1 + +HMMER_VERSION = @HMMER_VERSION@ +HMMER_DATE = "@HMMER_DATE@" +HMMER_COPYRIGHT = "@HMMER_COPYRIGHT@" + +INSTALL = @INSTALL@ +RMAN = rman +RMANPROCESS = ${top_srcdir}/easel/devkit/rmanprocess.py + +# beautification magic stolen from git +QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c +QUIET_SUBDIR1 = +ifndef V + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ; echo ' ' SUBDIR $$subdir; \ + ${MAKE} -s -C $$subdir +endif + +# ./configure puts HMMER .man pages in ${top_builddir}/documentation/man +MANPAGES = \ + alimask.man \ + hmmalign.man \ + hmmbuild.man \ + hmmc2.man \ + hmmconvert.man \ + hmmemit.man \ + hmmfetch.man \ + hmmlogo.man \ + hmmpgmd.man \ + hmmpgmd_shard.man \ + hmmpress.man \ + hmmscan.man \ + hmmsearch.man \ + hmmsim.man \ + hmmstat.man \ + jackhmmer.man \ + makehmmerdb.man \ + nhmmer.man \ + nhmmscan.man \ + phmmer.man + +MANPAGES_DAEMON = \ + hmmc2.man \ + hmmpgmd.man \ + hmmpgmd_shard.man + +# ./configure puts Easel .man pages in ${top_builddir}/easel/miniapps +EASEL_MANPAGES = \ + esl-afetch.man \ + esl-alimanip.man \ + esl-alimap.man \ + esl-alimask.man \ + esl-alimerge.man \ + esl-alipid.man \ + esl-alirev.man \ + esl-alistat.man \ + esl-compalign.man \ + esl-compstruct.man \ + esl-construct.man \ + esl-histplot.man \ + esl-mask.man \ + esl-mixdchlet.man \ + esl-reformat.man \ + esl-selectn.man \ + esl-seqrange.man \ + esl-seqstat.man \ + esl-sfetch.man \ + esl-shuffle.man \ + esl-ssdraw.man \ + esl-translate.man \ + esl-weight.man + +TEXFILES =\ + ack.tex \ + copyright.tex \ + daemon.tex \ + formats.tex \ + glossary.tex \ + install.tex \ + introduction.tex \ + macros.tex \ + main.tex \ + pipeline.tex \ + tabular.tex \ + titlepage.tex \ + titlepage_daemon.tex \ + tutorial.tex + +.PHONY: pdf manpages clean distclean TAGS + +pdf: Userguide.pdf Daemon_userguide.pdf + +# We add ${srcdir} to TEXINPUTS, etc so we can build userguide in a build tree, with input files in source tree. +Userguide.pdf: manpages ${TEXFILES} + @for prog in pdflatex bibtex; do \ + command -v $$prog >/dev/null 2>&1 || { echo >&2 "$$prog is required to build Userguide, but it's not installed. Aborting."; exit 1; } \ + done + @echo " LATEX Userguide.pdf (see latex.log for output)" + @TEXINPUTS=${TEXINPUTS}:${srcdir} pdflatex main > latex.log 2>&1 + @BIBINPUTS=${BIBINPUTS}:${srcdir} BSTINPUTS=${BSTINPUTS}:${srcdir} bibtex main >> latex.log 2>&1 + @TEXINPUTS=${TEXINPUTS}:${srcdir} pdflatex main >> latex.log 2>&1 + @TEXINPUTS=${TEXINPUTS}:${srcdir} pdflatex main >> latex.log 2>&1 + @mv main.pdf Userguide.pdf + +Daemon_userguide.pdf: manpages ${TEXFILES} + @for prog in pdflatex bibtex; do \ + command -v $$prog >/dev/null 2>&1 || { echo >&2 "$$prog is required to build Userguide, but it's not installed. Aborting."; exit 1; } \ + done + @echo " LATEX Daemon_userguide.pdf (see latex.log for output)" + @TEXINPUTS=${TEXINPUTS}:${srcdir} pdflatex daemon > latex.log 2>&1 + @BIBINPUTS=${BIBINPUTS}:${srcdir} BSTINPUTS=${BSTINPUTS}:${srcdir} bibtex main >> latex.log 2>&1 + @TEXINPUTS=${TEXINPUTS}:${srcdir} pdflatex daemon >> latex.log 2>&1 + @TEXINPUTS=${TEXINPUTS}:${srcdir} pdflatex daemon >> latex.log 2>&1 + @mv daemon.pdf Daemon_userguide.pdf + +# manpages: convert man pages to LaTeX chapter in User Guide. +# uses PolyglotMan 3.2 "rman", and rmanprocess.py script in easel's devkit +manpages: + @command -v ${RMAN} >/dev/null 2>&1 || { echo >&2 "${RMAN} is required to build Userguide, but it's not installed. Aborting."; exit 1; } + @echo '%% Manual pages chapter automatically generated. Do not edit.' > manpages.tex + @echo '%% Manual pages chapter automatically generated. Do not edit.' > manpages_daemon.tex + @echo '%% Easel miniapps manpage chapter automatically generated. Do not edit.' > easel_manpages.tex + @for file in ${MANPAGES}; do\ + ${RMAN} -f latex2e ../man/$$file 2>/dev/null | ${RMANPROCESS} >> manpages.tex ;\ + done + @for file in ${EASEL_MANPAGES}; do\ + ${RMAN} -f latex2e ../../easel/miniapps/$$file 2>/dev/null | ${RMANPROCESS} >> easel_manpages.tex ;\ + done + @for file in ${MANPAGES_DAEMON}; do\ + ${RMAN} -f latex2e ../man/$$file 2>/dev/null | ${RMANPROCESS} >> manpages_daemon.tex ;\ + done + +clean: + ${QUIET_SUBDIR0}inclusions ${QUIET_SUBDIR1} clean + -rm -f latex.log + -rm -f main.aux main.bbl main.blg main.log main.toc main.brf main.out x.log *~ + -rm -f daemon.aux daemon.log daemon.out daemon.toc +ifndef V + @echo ' ' CLEAN userguide +endif + + +distclean: clean + ${QUIET_SUBDIR0}inclusions ${QUIET_SUBDIR1} distclean + if test "x${srcdir}" != "x."; then \ + for texfile in ${TEXFILES}; do \ + rm -f $$texfile ;\ + done ;\ + fi + -rm -f titlepage.tex copyright.tex manpages.tex easel_manpages.tex + -rm -f manpages_daemon.tex titlepage_daemon.tex + -rm -f Userguide.pdf + -rm -f Daemon_userguide.pdf + -rm -f Makefile + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/ack.tex b/bioinformaticsProject/hmmer/documentation/userguide/ack.tex new file mode 100644 index 0000000..45138f7 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/ack.tex @@ -0,0 +1,133 @@ +\chapter{Acknowledgements and history} + +HMMER 1 was developed on slow weekends in the lab at the MRC +Laboratory of Molecular Biology, Cambridge UK, while I was a postdoc +with Richard Durbin and John Sulston. I thank the Human Frontier +Science Program and the National Institutes of Health for their +enlightened support, though they thought they had funded me to study +the genetics of neural development in \emph{C. elegans}. + +The first public release of HMMER (1.8) was in April 1995, shortly +after I moved to the Department of Genetics at Washington University +in St. Louis. A few bugfix releases followed. A number of more serious +modifications and improvements went into HMMER 1.9 code, but 1.9 was +never released. Some versions of HMMER 1.9 escaped St. Louis and make +it to some genome centers, but 1.9 was never supported. HMMER 1.9 +burned down and sank into the swamp in 1996. + +HMMER 2 was a nearly complete rewrite, based on the new Plan 7 model +architecture, begun in November 1996. I thank the Washington +University Dept. of Genetics, the NIH National Human Genome Research +Institute, and Monsanto for their support during this time. I also +thank the Biochemistry Academic Contacts Committee at Eli Lilly \& +Co. for a gift that paid for the trusty Linux laptop on which much of +HMMER 2 was written. Much of HMMER2 was written in coffee shops, +airport lounges, transoceanic flights, and Graeme Mitchison's +kitchen. The source code still contains a disjointed record of where +and when various bits were written. + +HMMER then settled for a while into a comfortable middle age, like its +author: still actively maintained, though dramatic changes seemed +increasingly unlikely. HMMER 2.1.1 was the stable release for three +years, from 1998-2001. HMMER 2.2g was intended to be a beta release, +but became the \emph{de facto} stable release for two more years, +2001-2003. The final release of the HMMER2 series, 2.3, was assembled +in spring 2003. The last bugfix release, 2.3.2, came out in October +2003. + +If the world worked as I hoped, the combination of our 1998 book +\emph{Biological Sequence Analysis} and the existence of HMMER2 as a +proof of principle would have motivated the widespread adoption of +probabilistic modeling methods for sequence database searching. We +would declare Victory! and move on. Indeed, probabilistic modeling did +become important in the field, and the other authors of +\emph{Biological Sequence Analysis} did move on. Richard Durbin moved +on to human genomics; Anders Krogh moved on to pioneer a number of +other probabilistic approaches for other biological sequence analysis +problems; Graeme Mitchison moved on to quantum computing; I moved on +to noncoding structural RNAs. + +Yet BLAST continued (and continues) to be the most widely used search +program. HMMs seemed to be widely considered to be a mysterious and +orthogonal black box, rather than a natural theoretical basis for +important applications like BLAST. The NCBI seemed to be slow to adopt +HMM methods. This nagged at me. The revolution was unfinished! + +When my group moved to Janelia Farm in 2006, I had to make a decision +about what we should spend time on. It had to be something +``Janelian'': something that I would work on with my own hands; +something difficult to accomplish under the usual reward structures of +academic science; something that would make a difference. I decided +that we should aim to replace BLAST with a new generation of software, +and I launched the HMMER3 project. + +Coicidentally, an embedded systems engineer named Michael Farrar +contacted me in January 2007. As a side hobby, Farrar has developed an +efficient new ``striped'' method for using SIMD vector instructions to +accelerate Smith/Waterman sequence alignment. He had used it to +accelerate Bill Pearson's SSEARCH program by 10-20x, and wanted to +know if his ideas could be applied in HMMER. He published a short +Bioinformatics paper later in 2007 on the SSEARCH work, as a solo +author with no academic affiliation. In December 2007, working from +Michael's description, I implemented striped SIMD vectorization for +HMMER, and one pleasant day, I realized how to do the fast filter we +now call the SSV and MSV filters. Michael and I started corresponding +frequently by email. We met for coffee at the Starbucks on Church +Street in Cambridge in early 2008, and I started trying to recruit him +to Janelia Farm. We negotiated off and on for a year, and he joined +the group in June 2009. HMMER3.0 was first released in March 2010. + +HMMER is still my baby, but it is also the work of several people who +have come through my lab and other collaborators, including +contributions from Bill Arndt, Dawn Brooks, Nick Carter, Sergi +Castellano, Alex Coventry, Michael Farrar, Rob Finn, Ian Holmes, Steve +Johnson, Bjarne Knudsen, Diana Kolbe, Eric Nawrocki, Elena Rivas, Walt +Shands, and Travis Wheeler.\sidenote{I write ``I'' in this guide, but + a few parts of it were first written by Travis. I think there's + probably some stuff that was first written by Ewan Birney in here + too.} + +I thank Scott Yockel, James Cuff, and the Harvard Odyssey team for our +computing environment at Harvard, and Goran Ceric and his team for our +previous environment at Janelia Farm. Without the skills of the teams +at our high-performance computing centers, we would be nowhere. HMMER +testing can spin up hundreds or thousands of processors at a time, an +unearthly amount of computing power. + +In the olden days, the MRC-LMB computational molecular biology +discussion group contributed many ideas to HMMER. In particular, I +thank Richard Durbin, Graeme Mitchison, Erik Sonnhammer, Alex Bateman, +Ewan Birney, Gos Micklem, Tim Hubbard, Roger Sewall, David MacKay, and +Cyrus Chothia. + +The UC Santa Cruz HMM group, led by David Haussler and including +Richard Hughey, Kevin Karplus, Anders Krogh (now in Copenhagen) and +Kimmen Sj\"{o}lander, was a source of knowledge, friendly competition, +and occasional collaboration. All scientific competitors should be so +gracious. The Santa Cruz folks have never complained, at least not in +my earshot, that HMMER started as simply a re-implementation of their +original ideas, just to teach myself what HMMs were. + +In many places, I've reimplemented algorithms described in the +literature. These are too numerous to thank here. The original +references are given in the code. However, I've borrowed more than +once from the following folks that I'd like to be sure to thank: Steve +Altschul, Pierre Baldi, Phillip Bucher, Warren Gish, Steve and Jorja +Henikoff, Anders Krogh, and Bill Pearson. + +HMMER is primarily developed on Apple OS/X and GNU/Linux machines, but +is tested on a variety of hardware. Over the years, Compaq, IBM, +Intel, Sun Microsystems, Silicon Graphics, Hewlett-Packard, Paracel, +and nVidia have provided generous hardware support that makes this +possible. I'm endebted to the free software community for the +development tools I use: an incomplete list includes GNU gcc, gdb, +emacs, and autoconf; valgrind; Subversion and Git; Perl and Python; +\LaTeX; PolyglotMan; and the UNIX and Linux operating systems. + +Finally, I'd like to cryptically thank Dave ``Mr. Frog'' Pare and Tom +``Chainsaw'' Ruschak for an unrelated open source software product +that was historically instrumental in HMMER's development, for reasons +that are best not discussed while sober. + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/copyright.tex.in b/bioinformaticsProject/hmmer/documentation/userguide/copyright.tex.in new file mode 100644 index 0000000..4c7e0f1 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/copyright.tex.in @@ -0,0 +1,27 @@ +\newpage +\begin{fullwidth} + ~\vfill + \thispagestyle{empty} + \setlength{\parindent}{0pt} + \setlength{\parskip}{\baselineskip} + +\par +@HMMER_COPYRIGHT@ + +\par +HMMER and its documentation are freely distributed +under the 3-Clause BSD open source license. For a copy of the license, +see \href{https://opensource.org/licenses/BSD-3-Clause}{opensource.org/licenses/BSD-3-Clause}. + +\par +HMMER development is supported in part by the National Human +Genome Research Institute of the US National Institutes of Health under +grant number R01HG009116. The content is solely the responsibility +of the authors and does not necessarily represent the official views of +the National Institutes of Health. + +\end{fullwidth} + + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/daemon.tex b/bioinformaticsProject/hmmer/documentation/userguide/daemon.tex new file mode 100644 index 0000000..0d0a98c --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/daemon.tex @@ -0,0 +1,267 @@ +\documentclass[notoc,justified]{tufte-book} % `notoc` suppresses TL custom TOC, reverts to standard LaTeX +\usepackage{graphicx} +\hyphenation{HMMER} + +\input{titlepage_daemon} % definitions for \maketitle +\bibliographystyle{unsrtnat-brief} % customized natbib unsrtnat. Abbrev 3+ authors to ``et al.'' + +\begin{document} +\setcounter{tocdepth}{2} % 0=chapters 1=sections 2=subsections 3=subsubsections? 4=paragraphs +\input{inclusions/inclusions.def} % snippets captured from output, by gen-inclusions.py + +\maketitle + +\input{copyright} + +\begin{adjustwidth}{}{-1in} % TL \textwidth is quite narrow. Expand it manually for TOC and man pages. +\tableofcontents +\end{adjustwidth} + + +\chapter{Introduction} + +The performance of HMMER's command-line tools is limited by two factors: the number of cores that are available to work on each search, and the amount of time required to read sequence or HMM databases from disk in order to search them. When HMMER is run on small (2- or 4-core) desktop or laptop CPUs, CPU performance tends to be the limiting factor on search time (although this depends on the speed of the system's hard disk). However, on systems with more cores, such as most servers, the time required to read databases from disk becomes a bottleneck that prevents performance from improving as processor performance increases. + +To address this, HMMER provides a daemon\sidenote{The term "daemon" here is taken from the UNIX term for an application or service that runs without being connected to a user login, which is derived from a Greek term that means roughly "spirit" or "supernatural being".}, known as \mono{hmmpgmd} that runs as a persistent service across multiple computers. As shown in Figure \ref{fig:daemon}, one machine running the daemon is designated the master node, while the others become worker nodes. Client systems send search requests to the master node via internet sockets. When the master node receives a search, it distributes the work of the search across the worker nodes, merges the partial results from each worker node, and returns the search results to the client\sidenote{In the European Bioinformatics Institute's (EBI) instantiation of the daemon, the client machines shown in the figure are EBI's web servers. End users interact with the web servers, which provide a human-friendly interface for submitting searches and inspecting results.}. + +\begin{figure*} +\includegraphics[width=\textwidth]{inclusions/daemon.pdf} +\caption{The HMMER Daemon} +\label{fig:daemon} +\end{figure*} + +The daemon improves search performance over HMMER's command-line tools in two ways. First, when the daemon starts up, it reads its input databases from disk once and caches them in RAM, eliminating the file read bottleneck on performance. Second, it distributes the work of each search over many machines, each of which may contain tens of cores, significantly reducing the amount of work each core must perform to complete the search. In combination, these techniques can reduce database search times to only a few seconds when the daemon is run on a large-enough set of computers. + +\mono{Hmmpgmd} caches all of its database(s) in RAM on each of its worker nodes, in spite of the fact that each worker node only accesses part of a database on each search. This allows \mono{hmmpgmd} to tolerate worker node failures by simply changing how work is assigned to the worker nodes as the number of worker nodes changes, but causes \mono{hmmpgmd} to use significantly more memory than would be strictly necessary, particularly when the daemon has many worker nodes. To address this, HMMER now provides a "sharded" version of \mono{hmmpgmd}, \mono{hmmpgmd\_shard}, which distributes the sequences in a sequence database\sidenote{We do not support sharding of HMM databases because current HMM databases are so much smaller than current sequence databases that the amount of RAM they occupy has not been an issue.} round-robin across the worker nodes so that each worker node only caches $\frac{1}{Nth}$ of each sequence database. This allows systems with limited RAM to support larger sequence databases, at the cost of making the daemon unable to execute searches unless all of its worker nodes are available. + +\mono{Hmmpgmd} was designed to be integrated with the European Bioinformatics Institute's computing and database infrastructure. To reduce RAM and bandwidth usage, sequence names, accession information, and descriptions are not included in \mono{hmmpgmd's} databases and are not cached in RAM. Instead, each sequence or HMM is assigned an ID number based on its position in the database file, and \mono{hmmpgmd} reports that ID number when a hit occurs. EBI's web servers then look that ID number up in their own databases to retrieve the sequence/HMM's name, description, etc., and combine that with the alignment information the daemon returns when displaying search results to users. + +This manual outlines \mono{hmmpgmd}'s usage and interface to client applications, and assumes that the reader is familiar with the concepts covered in the main \underline{HMMER User's Guide}. It is intended for individuals who are interested in either running an \mono{hmmpgmd} server of their own or in writing clients that communicate with an existing \mono{hmmpgmd} server. Biologists who wish to use an \mono{hmmpgmd} server in their research without the complexity of configuring one themselves should consider using the European Bioinformatics Institute's HMMER server\sidenote{www.ebi.ac.uk/Tools/hmmer/}, which provides a web interface to \mono{hmmpgmd} servers that load a number of common genetic databases. + + +\chapter{Usage} +To perform searches using \mono{hmmpgmd}, a user must first start a daemon on one or more machines. At least two \mono{hmmpgmd} processes, one master and one worker, must be started, although these processes may be run on the same computer if only one machine is available\sidenote{When running \mono{hmmpgmd} on a single machine, be aware that the master and worker processes will load the database(s) into RAM independently, so the memory required will be approximately double what is required when running the worker and master processes on separate machines. \mono{Hmmpgmd\_shard} greatly reduces the amount of memory used by the master node, so using it with only one shard may be a better choice for searching sequence databases on a single machine.}. Once the daemon is running, users can submit searches via a client program such as the \mono{hmc2} example client HMMER provides. + +\section{Running Hmmpgmd} +To start a daemon process, execute the "\mono{hmmpgmd}" command. \mono{Hmmpgmd} requires that the user provide either the \mono{-{}-master} flag, which indicates that the process should run as the master node of a daemon, or the \mono{-{}-worker }, which indicates that \mono{hmmpgmd} should run as a worker node with its master node at the specified IP address\sidenote{If the master node's IP is omitted, \mono{hmmpgmd} defaults to connecting to a master process on the same node it is running on.}. Note that this IP address must be provided as a numeric value, for example "127.0.0.1", and not as a text machine name, as \mono{hmmpgmd} does not perform domain name service lookup on the provided IP address. + +When run as a master node, \mono{hmmpgmd} requires that the user provide at least one of the \mono{-{}-seqdb }, or \mono{-{}-hmmdb } options to specify a sequence and/or HMM database for the daemon to cache in RAM. The user may specify both a sequence and an HMM database file that the daemon should cache. The master node reads the database(s) itself and also sends the specified filename(s) to each of the worker nodes so that they can cache their own copies of the database(s). Thus, the database file(s) must be available on all of the nodes in the daemon and the filename(s) provided must be valid paths to the database file(s) on all of the nodes, either because \mono{hmmpgmd} is invoked from the same directory on every node or because the filename(s) are specified as full paths from the root node of the filesystem. + +When run as a master node, \mono{hmmpgmd} first reads its input databases and then listens for socket connections from worker nodes. When a worker node connects to the master, the master outputs "Handling worker (socket number)". The master can begin accepting search requests from clients as soon as one worker node has reached the pending state, and will distribute each search across all of the worker nodes that are pending when the search begins. + + +\subsection{Running \mono{hmmpgmd\_shard}} +Starting a sharded daemon using the \mono{hmmpgmd\_shard} program follows the same procedure as starting an undsharded daemon, with two exceptions. First, when run on the master node \mono{hmmpgmd\_shard} takes a mandatory \mono{--num\_shards } argument, which specifies the number of shards that the sequence database file should be broken into. This must be equal to the number of worker nodes that will connect to the master. Second, because each worker node only contains a portion of its sequence database(s), \mono{hmmpgmd\_shard} can only process search requests when the number of worker nodes connected to it is equal to the number of shards. Attempting to run searches before that many worker nodes have connected will return an error. Attempting to connect more worker nodes than the specified number of shards causes the daemon to exit. + +Note that \mono{hmmpgmd\_shard} only shards sequence databases. HMM databases are not sharded, due to their small size, so there is no reason to use \mono{hmmpgmd\_shard} on HMM databases. + + +\section{Sending Searches to a Daemon} +The HMMER package includes {\em hmmc2}, an example client that can communicate with an \mono{hmmpgmd} or \mono{hmmpgmd\_shard} daemon. Hmmc2 accepts four command-line arguments\sidenote{Hmmc2's code breaks Easel conventions by manually parsing its command-line arguments instead of using Easel's \mono{getopts} functions. It also defines a separate Easel \mono{getopts} structure, \mono{{searchOpts}}, which it uses to parse search requests, which can easily be mistaken for a definition of \mono{hmmc2's} command-line options.}: + +\begin{sreitems}{\monob{header}} + \item[\monob{-i }] specifies the IP address of the daemon to connect to. Defaults to 127.0.0.1 if not provided. + \item[\monob{-p }] specifies the port number that the daemon is listening to for client connections. Defaults to 51371 (the \mono{hmmpgmd} default) if not provided. + \item[\monob{-S}] print the scores of any hits found by searches + \item[\monob{-A}] print the alignments of any hits found by searches. The data printed when this option is provided is a superset of the data printed when "-S" is provided, so the "-S" option is redundant if -A is provided. +\end{sreitems} + +Once it starts up, \mono{hmmc2} enters an interactive loop by printing the prompt "Enter next sequence:". Any text the user enters between that prompt and the end-of-command string "{\tt //}" is interpreted as a command and sent to the daemon. + +\subsection{Usage Example} +After starting \mono{hmmc2} with the command + +\vspace{1ex} +\user{hmmc2 -i } +\vspace{1ex} + +it will print the prompt + + \vspace{-1ex} + \xsreoutput{inclusions/hmmc2.out} + \vspace{-1ex} + +To run a simple search, enter the text + +\vspace{1ex} +\user{@-{}-seqdb 1} \\ +\user{>sp|Q6GZW9|length\_10} \\ +\user{YLGPWVQAEY} \\ +\user{//} +\vspace{1ex} + +The text {\small\bfseries\texttt @-{}-seqdb 1} on the first line instructs the daemon to perform a search against sequence database 1. The next two lines ({\small\bfseries\texttt >sp|Q6GZW9|length\_10} and {\small\bfseries\texttt YLGPWVQAEY}) are the FASTA-format specification of a (short) amino acid sequence that the daemon will translate into an HMM and search against the database. Finally, the +{\small\bfseries\texttt //} by itself on the third line ends the command. + +Once it sees the end-of-command sequence, \mono{hmmc2} will send the command to the server, which will perform the search and generate output similar to + +\vspace{-1ex} + \xsreoutput{inclusions/hmmc2_2.out} + \vspace{-1ex} + + although the exact output generated will vary depending on the database that the daemon has cached. This output is a simple summary that shows the number of comparisons performed by the daemon, the number of hits found, and the time it took to perform the search. If the \mono{-S} or \mono{-A} options had been used when starting \mono{hmmc2}, substantially more information about the hits found by the server would have been displayed. + + The next chapter provides significantly more detail about the format of the commands the daemon accepts and of the output it sends back to the client. + +\chapter{Daemon-Client Interface} +Client machines use internet sockets to send commands to and receive results from a daemon's master node. When a client opens a connection to the master node's client communication port (port 51371 by default), the master node forks a thread to manage the connection with the client. This thread configures a socket to communicate with the client and then repeatedly calls the \mono{clientside\_loop}\sidenote{This function name is a bit of a misnomer, in that it does not contain a loop. Instead, it is repeatedly called from within an outer loop.} function, which monitors the socket for commands from the client, until either the client detaches from the port or the daemon shuts down. This approach allows multiple clients to connect to a daemon simultaneously without interfering with each other, although requests from one client may impact the amount of time it takes for the daemon to respond to requests from other clients. + + +\section{Daemon Command Format} +Daemon commands are variable-length sequences of ASCII text. The first line of a command must contain the command itself and any options or parameters. For search commands, this is followed by one or more lines that contain the sequence or HMM to be searched. All commands end with a line that contains only two forward slashes ("{\tt //}"). When a command arrives from a client, the daemon reads bytes from the appropriate socket into a buffer until it sees the end-of-command sequence, growing the buffer as necessary\sidenote{This is a security vulnerability that should be addressed in HMMER4, as it allows an adversarial or erroneous client to consume arbitrary amounts of RAM, potentially exceeding the capacity of the master node.}, and then parses the contents of the buffer in order to execute the command. + +The daemon supports three commands: + +\begin{sreitems}{\monob{header}} + \item[\monob{@-{}-hmmdb }] Initiates a search of a protein sequence against the HMM database cached by the daemon. The protein sequence to be searched must be provided on the lines following the \mono{@-{}-hmmdb} command. Note that the user is required to provide a database number argument to \mono{@-{}-hmmdb}, but \mono{hmmpgmd} can only load one HMM database at a time and ignores the value provided. This is a known idiosyncrasy that has been left unchanged to avoid breaking EBI's tools and web interface code. + \item[\monob{@-{}-seqdb [-{}-seqdb\_ranges ]}] Initiates a search of a protein sequence or HMM against the specified protein sequence database\sidenote{Note that there is an inconsistency in how databases are numbered in search commands as compared to how they are numbered in the database file itself. The database file uses 0-indexed numbering, (databases are numbered from 0 to N-1), while the search commands use 1-indexed numbering (databases are numbered from 1 to N)}. The daemon determines whether a sequence or HMM has been submitted by examining the contents of the lines that follow the command, and, if a sequence has been submitted, converts it to an HMM before performing the search. + + If the \mono{-{}-seqdb\_ranges} option is not provided, the entire target database is searched\sidenote{Currently, there is no way to search only a portion of an HMM database. This is probably because existing HMM databases are small enough that the time to search them is rarely an issue.}. If the \mono{-{}-seqdb\_ranges} option is provided, it must be followed by a range list describing the set of sequences to be searched. Each range in the range list should be formatted in the form "start..end", where "start" and "end" are the sequence IDs of the start and end of the range, and ranges in the list should be separated by commas. One note here is that the sequences in a sequence file are indexed as a single contiguous list, even if the file contains multiple databases, and each database can contain an arbitrary subset of the sequences in the file. Thus, the sequence IDs specified in a range list refer to positions within the database file, and a range list search searches the sequences in the specified database whose IDs fall into the specified range(s), not the specified positions in the set of sequences contained in the database. For example: the command {\small\bfseries\texttt @-{}-seqdb 2 -{}-seqdb\_ranges 1..100, 201..300} searches the sequences in database 2 whose sequence ID's range from 1 to 100 or 201 to 300, not sequences 1-100 and 201-300 of the database. + \item[\monob{!shutdown}] Shuts the daemon down in an orderly fashion by first sending shutdown messages to all of its worker nodes and then exiting the master node's processes\sidenote{There's another security vulnerability here, in that any machine that can connect to the master node can shut it down. This needs to be addressed in H4, as we intend to allow arbitrary clients to send searches to a server}. +\end{sreitems} + +When the daemon receives a search command, any text on the command line after the \mono{@-{}-seqdb } or \mono{@-{}-hmmdb } specifies options to the search, using the same format as the \mono{hmmsearch} or \mono{hmmscan} commands. Thus sending the command \user{@-{}-seqdb 1 -E 20} to the daemon instructs it to perform a search of sequence database 1, reporting all results with an e-value of less than 20 instead of the default 10. + + +\section{Search Results Format} +The results from each search are split across two sockets messages, as shown in Figure \ref{fig:search-results}. The first is a fixed-length \mono{HMMD\_SEARCH\_STATUS} structure that contains two fields: a \mono{status} field that contains an Easel status code that tells the client whether the search completed successfully or not, and a \mono{msg\_size} field, which tells the client how large (in bytes) the second message will be. The format of the second message depends on whether any errors were encountered during the search. If an error occurred, the second message is simply a text string containing a description of the error. + + +\begin{figure*} +\includegraphics[width=\textwidth]{inclusions/daemon-results.pdf} +\caption{Format of the Messages the Daemon Sends to a Client When a Search Completes} +\label{fig:search-results} +\end{figure*} + +If the search succeeded, the \mono{status} field of the first message is set to \mono{eslOK} and the second message contains the results of the search. This message begins with a \mono{HMMD\_SEARCH\_STATS} structure that contains information about the search, including the time the search took and the number of hits found. This is then followed by a \mono{P7\_HIT} structure for each hit the search found, which describes the hit. + +\section{Serialization} +Data structures and multi-byte values must be {\em serialized} before they can be sent over sockets. There are two aspects to serializing the types of data structures the daemon uses. Structures that contain pointers must be {\em flattened} by copying the data that their pointers point to into the block of data that will be sent over the socket, and multi-byte values must be converted to "network order," which is defined as big-endian, to prevent problems if the sending and receiving machines have different endiannesses. To serialize floating-point numbers, we assume that all computers use IEEE 754 representations and just convert the bytes that represent the floating-point number to and from network byte order. This is faster than the alternative approach of representing the floating-point number as an ASCII string and parsing it on the receiving side, and avoids any loss of precision, but will fail if the machines trying to communicate via sockets use different floating-point formats. + +Figures \ref{fig:search-stats-serialize}--\ref{fig:alidisplay-serialize} show how the data structures used in sending search results back to clients are serialized. The text streams the client uses to send commands to the daemon do not require serialization, as text streams do not contain pointers and are sequences of byte-wide characters that are not affected by endianness. + +\begin{figure*} +\includegraphics[width=\textwidth]{inclusions/hmmpgmd-search-stats-serialize.pdf} +\caption{Serialized {HMMD\_SEARCH\_STATS} Structure} +\label{fig:search-stats-serialize} +\end{figure*} + +\begin{figure*} +\includegraphics[width=\textwidth]{inclusions/hit-serialize.pdf} +\caption{Serialized {P7\_HIT} Structures} +\label{fig:hit-serialize} +\end{figure*} +\begin{figure*} +\includegraphics[width=\textwidth]{inclusions/domain-serialize.pdf} +\caption{Serialized {P7\_DOMAIN} Structure} +\label{fig:domain-serialize} +\end{figure*} +\begin{figure*} +\includegraphics[width=\textwidth]{inclusions/alidisplay-serialize.pdf} +\caption{Serialized {P7\_ALIDISPLAY} Structure} +\label{fig:alidisplay-serialize} +\end{figure*} + +All of the data structures that hmmpgmd serializes contain variable-length fields, and many of them contain optional fields that may or may not be present in a given object. We handle optional fields by adding a byte of presence bit flags, one flag per optional field, to the serialized versions of data structures that contain optional fields. If the flag bit corresponding to a field is set, then that field is present in the data structure. Otherwise it is not present. None of the data structures hmmpgmd serializes have more than eight optional fields, so only one byte of presence flags/structure is required. + +Most of the variable-length fields in our data structures are strings, which we represent as standard C-terminated strings. Routines such as \mono{strcpy} are used to copy these strings into and out of the serialized data structures, making it unnecessary to encode the strings' length in the serialized data structure. Some non-string fields, such as the \mono{hit\_offsets} field in the {\mono{HMMD\_SEARCH\_STATS}} structure, have lengths that are determined by the value of some other field in the data structure, so it is not necessary to explicitly encode their lengths in the serialized data structures. One field, the \mono{scores\_per\_pos} array in the {\mono{P7\_DOMAIN}} structure, has a length that cannot be determined from the other data in the data structure, so we add an explicit field to the serialized data structure to encode its length. + +Because it is sometimes necessary to manipulate serialized data without deserializing the full set of results, we include two mechanisms to help locate sub-fields of the daemon's results. The {\mono{HMMD\_SEARCH\_STATS}} structure contains a \mono{hit\_offsets} array that contains the offsets from the start of the block of serialized hits to the beginning of each serialized hit. Also, all of our serialized data structures except {\mono{HMMD\_SEARCH\_STATS}} begin with a \mono{size} field that contains the length of the base (i.e., without any included sub-structures) serialized data structure in bytes. For example, the \mono{size} field of a {\mono{P7\_HIT}} structure will contain the length of the serialized {\mono{P7\_HIT}} structure not including the lengths of the {\mono{P7\_DOMAIN}} structures that the {\mono{P7\_HIT}} structure contains. These features allow software to quickly locate a specific {\mono{P7\_HIT}} structure within the array of results after decoding the {\mono{HMMD\_SEARCH\_STATS}} structure, and then to skip through the {\mono{P7\_HIT}} structure as necessary to locate its sub-fields. + +Functions to serialize and deserialize each of the daemon's data structures are provided in the .c files that contain the structure's routines. + +\chapter{Database File Formats} +The formats \mono{hmmpgmd} uses for HMM and sequence databases are derived from the formats used elsewhere in HMMER, with modifications to support integration with EBI's infrastructure and reduce the size of sequence databases. + +\section{HMM Database File Format} +\mono{hmmpgmd} uses the HMMER 3 profile HMM file format as described in the \underline{HMMER User's Guide} for its HMM databases, with the requirement that the HMM file must have been processed by \mono{hmmpress} before it can be loaded into \mono{hmmpgmd}. When an HMM database is cached in RAM, it is represented as a simple array of \mono{P7\_OPROFILE} objects, although each HMM's name is replaced with its ID number (position in the database file). Each HMM file can only contain a single HMM database, and \mono{hmmpgmd} does not support caching of multiple HMM databases simultaneously. + +\section{Sequence Database File Format} +The \mono{hmmpgmd} format that \mono{hmmpgmd} uses for sequence database files is a variant of the FASTA format in which sequence names are replaced with numeric IDs, sequence descriptions and accession information are removed, and new sequence descriptions are added that enable efficient caching of multiple databases simultaneously and assist EBI's web servers. +A FASTA file can be converted into a single-database \mono{hmmpgmd} sequence file using the \mono{esl-reformat} command. For example, + +\user{esl-reformat --id\_map mydb.hmmpgmd.map hmmpgmd mydb.fasta > mydb.hmmpgmd} + +generates the \mono{hmmpgmd} file "mydb.hmmpgmd\sidenote{The ".hmmpgmd" extension used here is only a convention. \mono{hmmpgmd} does not enforce any restrictions on the names of its input files.}" from the FASTA file "mydb.fasta", using the optional \mono{--id\_map} flag to specify that the mapping between the sequence names and descriptions found in the FASTA file to the sequence ID numbers used in the \mono{hmmpgmd} file should be written to "mydb.hmmpgmd.map". HMMER does not provide a tool to generate sequence files that contain multiple databases. The EBI uses a tool flow of their own development to generate the multi-database files that they use in their HMMER server. + + +An \mono{hmmpgmd} file begins with a header line that contains information about the file's contents, which takes the form + +\monob{\#res\_cnt seq\_cnt db\_cnt cnt\_1 fullcnt\_1 cnt\_2 fullcnt\_2 $\ldots$ date\_stamp}. + +The "\#" character at the start of the header line is mandatory, and allows HMMER/Easel's file parsing code to recognize the file as an \mono{hmmpgmd} file instead of a standard FASTA file. The fields in the header line have the following meanings: + +\begin{sreitems}{\monob{header}} + +\item [\monob{res\_cnt}] Number of residues in the sequence file. + +\item [\monob{seq\_cnt}] Number of sequences in the sequence file. + +\item [\monob{db\_cnt}] Number of databases in the sequence file. + +\item [\monob{cnt\_i}] The number of sequences in database \mono{i}. This will always be less than or equal to \mono{seq\_cnt}. + +\item [\monob{fullcnt\_i}] The number of sequences that should be used when computing E-values for database \mono{i}. This will always be at least as large as \mono{cnt\_i}, and may be larger if database \mono{i} contained redundant sequences that were collapsed out. + +\item [\monob{date\_stamp}] The day and time when the file was created. +\end{sreitems} + +After the header line, the file must contain \monob{seq\_cnt} sequence entries, which use a FASTA-like format where the first line of each sequence entry takes the form + +\monob{>seq\_id database\_membership domain\_architecture taxonomy\_id} + +and the second and following lines contain the amino-acid specification of the sequence\sidenote{\mono{hmmpgmd} only supports caching of amino-acid sequences due to the large size of nucleotide sequence databases.} + +The fields in a sequence's first line have the following meanings: + +\begin{sreitems}{\monob{header}} + +\item [\monob{seq\_id}] The sequence's ID number, which must be its position in the file, where the first sequence in the file has ID 1. This requirement exists because \mono{hmmpgmd} generates a string encoding of each sequence's ID by incrementing an internal counter for each sequence and stores that string encoding in the sequence structure's \mono{name} field. Thus, the sequence ID \mono{hmmpgmd} caches will be the sequence's position in the database file regardless of the value of \mono{seq\_id}. Note that the IDs used by \mono{hmmpgmd} are absolute and refer to each sequence's position in the original data file, not its position in a particular database. + +\item [\monob{database\_membership}] This field is a bit-vector (represented as a text string of "1" and "0s" characters) that identifies the databases that contain the sequence, where a "1" in a position indicates that the sequence is present in the corresponding database and a "0" indicates that it is not present. Databases are represented in ascending order from left to right in the string, so the leftmost position in the string determines whether the sequence is present in database 1, the next position determines whether the string is present in database 2, and so on. By convention, this field always contains as many digits as there are databases in the file, but the only absolute requirement is that it not contain more digits than there are databases in the file. + +\item [\monob{domain\_architecture}] If provided, this optional field must contain the string representation of an integer that can be represented as a long int. When \mono{hmmpgmd} finds a hit, it converts this field into a long integer and stores it in the \mono{desc} field of the hit's \mono{{P7\_HIT}} structure, which is then returned to the client\sidenote{This is a nasty hack that we should avoid in the future if at all possible because it stores a long int in a pointer field. On most current machines, long ints and pointers are both 64-bit quantities, but there is no guarantee that this will be true in the future.}. EBI uses this field to encode the ID of a database entry that describes the sequence's domain architecture and is used to improve the display of results on their web clients. + +\item [\monob{taxonomy\_id}] If provided, this optional field must contain the string representation of an integer that can be represented as a long int. When a hit occurs, \mono{hmmpgmd} converts the string into a long int returns it in the \mono{acc} field of the hit's \mono{{P7\_HIT}} structure\sidenote{This has the same problems as the handling of the \mono{domain\_architecture} field}. EBI uses this field to encode the ID of a database entry that describes the sequence's taxonomy for use by their web clients. + +\end{sreitems} + +As an example, consider the following set of sequence entries: + +\begin{sreoutput} +>1 100 +ACDEFGHIKLMNPQTVWY +>2 010 +ACDKLMNPQTVWYEFGHI +>3 111 +EFMNRGHIKLMNPQT +\end{sreoutput} + +Sequence 1 in the set is part of database 1. Sequence 2 is part of database 2, while sequence 3 is part of databases 1, 2, and 3. This set of entries omits the optional \mono{domain\_architecture} and \mono{taxonomy\_id} fields from each sequence. + + + + +\begin{adjustwidth}{}{-1in} +\chapter{Manual Pages Related to the Daemon} +\input{manpages_daemon} +\end{adjustwidth} + +\chapter{Acknowledgments} +Simon Potter of the European Bioinformatics Institute was of great help in understanding the daemon's interactions with the EBI's web servers. We would also like to thank all of the organizations that have supported the development of HMMER, as well as all of the individuals who have contributed to it. In particular, Washington University, the National Institutes of Health, Monsanto, the Howard Hughes Medical Institute, and Harvard University have been major supporters of this work. For a more thorough set of acknowledgments that includes a discussion of HMMER's history, please see the \underline{HMMER User's Guide}. + +\label{manualend} + +% To create distributable/gitted 'distilled.bib' from lab's bibtex dbs: +% # uncomment the {master,lab,books} +% pdflatex main +% bibdistill main.aux > distilled.bib +% # restore the {distilled} +% +\nobibliography{distilled} +%\nobibliography{master,lab,books} + +\end{document} + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/distilled.bib b/bioinformaticsProject/hmmer/documentation/userguide/distilled.bib new file mode 100644 index 0000000..c9cc768 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/distilled.bib @@ -0,0 +1,193 @@ +# This .bib file was distilled from a master bibliography +# by bibdistill.pl. DO NOT EDIT. +# +@string{ARB = "Annu. Rev. Biochem."} +@string{ARBBC = "Annu. Rev. Biophys. Biophys. Chem."} +@string{ARCB = "Annu. Rev. Cell Biol."} +@string{ARG = "Annu. Rev. Genet."} +@string{ARGHG = "Annu. Rev. Genomics Hum. Genet."} +@string{ARI = "Annu. Rev. Immunol."} +@string{ARN = "Annu. Rev. Neurosci."} +@string{ARP = "Annu. Rev. Physiol."} +@string{BBA = "Biochem. Biophys. Acta"} +@string{BBRC = "Biochem. Biophys. Res. Commun."} +@string{CABIOS = "Comput. Applic. Biosci."} +@string{CACM = "Communications of the ACM"} +@string{COCB = "Curr. Opin. Cell Biol."} +@string{COGD = "Curr. Opin. Genet. Dev."} +@string{COM = "Curr. Opin. Microbiol."} +@string{COSB = "Curr. Opin. Struct. Biol."} +@string{CSHSQB = "Cold Spring Harbor Symp. Quant. Biol."} +@string{CURRB = "Curr. Biol."} +@string{DEV = "Development"} +@string{DEVB = "Devel. Biol."} +@string{EMBO = "EMBO J."} +@string{FEBS = "FEBS J."} +@string{FOCS = "Found. Comp. Sci."} +@string{GDEV = "Genes Dev."} +@string{GR = "Genome Res."} +@string{IRC = "Int. Rev. Cytol."} +@string{ISMB = "Proc. Int. Conf. Intell. Syst. Mol. Biol."} +@string{JBACT = "J. Bacteriol."} +@string{JBC = "J. Biol. Chem."} +@string{JBSD = "J. Biomol. Struct. Dyn."} +@string{JCB = "J. Cell. Biol."} +@string{JCompB = "J. Comput. Biol."} +@string{JMB = "J. Mol. Biol."} +@string{JME = "J. Mol. Evol."} +@string{JNEUR = "J. Neurosci."} +@string{JTB = "J. Theor. Biol."} +@string{MBE = "Mol. Bio. Evol."} +@string{MCB = "Mol. Cell. Biol."} +@string{METH = "Meth. Enzymol."} +@string{MGG = "Mol. Gen. Genet."} +@string{NAR = "Nucl. Acids Res."} +@string{NBT = "Nat. Biotechnol."} +@string{NRG = "Nat. Rev. Genet."} +@string{PNARMB = "Prog. Nucl. Acids Res. Mol. Biol."} +@string{PNAS = "Proc. Natl. Acad. Sci. USA"} +@string{PROTS = "Protein Sci."} +@string{PSB = "Pac. Symp. Biocomput."} +@string{SIAMJC = "SIAM Journal of Computing"} +@string{TIBTECH= "Trends Biotech."} +@string{TIBS = "Trends Biochem. Sci."} +@string{TICB = "Trends Cell Biol."} +@string{TIGS = "Trends Genet."} +@Article{Altschul91, + author = "S. F. Altschul", + title = "Amino Acid Substitution Matrices from an Information + Theoretic Perspective", + journal = JMB, + year = 1991, + volume = 219, + pages = "555-565", + filed = "Altschul", + pmid = 2051488, + muid = 91269329, +} + +@Article{Bashford87, + author = "Donald Bashford and Cyrus Chothia and Arthur M. Lesk", + title = "Determinants of a Protein Fold: Unique Features of + the Globin Amino Acid Sequences", + journal = JMB, + year = 1987, + volume = 196, + pages = "199-216" +} + +@Article{Doolittle81, + author = {R. F. Doolittle}, + title = {Similar Amino Acid Sequences: Chance or Common + Ancestry?}, + journal = {Science}, + year = 1981, + volume = 214, + pages = {149--159}, + pmid = 7280687, +} + +@Book{Durbin98, + author = {R. Durbin and S. R. Eddy and A. Krogh and G. J. Mitchison}, + title = {Biological Sequence Analysis: Probabilistic Models + of Proteins and Nucleic Acids}, + publisher = {Cambridge University Press}, + address = {Cambridge UK}, + year = 1998, + isbn = 0521629713, + reprinturl = {http://eddylab.org/cupbook.html}, + lab_keywords = {hmmer}, +} + +@Article{Eddy08, + author = {S. R. Eddy}, + title = {A Probabilistic Model of Local Sequence Alignment + that Simplifies Statistical Significance + Estimation}, + journal = {PLOS Comput. Biol.}, + year = 2008, + volume = 4, + pages = {e1000069}, + pmid = 18516236, + pmcid = {PMC239628}, + reprinturl = {http://www.ploscompbiol.org/doi/pcbi.1000069}, + lab_keywords = {hmmer}, +} + +@Article{Eddy11, + author = {S. R. Eddy}, + title = {Accelerated profile {HMM} searches}, + journal = {PLOS Comp. Biol.}, + year = 2011, + volume = 7, + pages = {e1002195}, + pmid = 22039361, + pmcid = {PMC3197634}, + reprinturl = {http://www.ploscompbiol.org/doi/pcbi.1002195}, + lab_keywords = {hmmer}, +} + +@Article{Gonzalez10, + author = {M. W. Gonzalez and W. R Pearson}, + title = {Homologous over-extension: a challenge for iterative similarity searches}, + journal = NAR, + year = 2010, + volume = 38, + pages = {2177--2189}, + pmid = 20064877, +} + +@Article{Gribskov87, + author = "M. Gribskov and A. D. McLachlan and D. Eisenberg", + title = "Profile Analysis: Detection of Distantly Related Proteins", + journal = PNAS, + year = 1987, + volume = 84, + pages = "4355-4358" +} + +@PhdThesis{Holmes98, + author = {I. Holmes}, + title = {Studies in Probabilistic Sequence Alignment and Evolution}, + school = {University of Cambridge}, + year = 1998 +} + +@Article{Karlin90, + author = "S. Karlin and S. F. Altschul", + title = "Methods for Assessing the Statistical Significance + of Molecular Sequence Features by Using General + Scoring Schemes", + journal = PNAS, + year = 1990, + volume = 87, + pages = "2264-2268", + filed = {Karlin}, + pmid = 2315319, +} + +@Article{Krogh94, + author = {A. Krogh and M. Brown and I. S. Mian and + K. Sj\"olander and D. Haussler}, + title = "Hidden {M}arkov Models in Computational Biology: + Applications to Protein Modeling", + journal = JMB, + year = 1994, + volume = 235, + pages = "1501-1531", + pmid = 8107089, + muid = 94149699, +} + +@Article{Sonnhammer97, + author = {E. L. L. Sonnhammer and S. R. Eddy and R. Durbin}, + title = {Pfam: A Comprehensive Database of Protein Families + Based on Seed Alignments}, + journal = {Proteins}, + year = 1997, + volume = 28, + pages = {405--420}, + pmid = 9223186, + reprinturl = {http://www3.interscience.wiley.com/cgi-bin/abstract/52461/ABSTRACT}, +} + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/formats.tex b/bioinformaticsProject/hmmer/documentation/userguide/formats.tex new file mode 100644 index 0000000..df912e3 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/formats.tex @@ -0,0 +1,972 @@ +\chapter{Input files and formats} +\label{chapter:formats} +\setcounter{footnote}{0} + +\section{Reading from files, compressed files, and pipes} + +Generally, HMMER programs read their sequence and/or profile input +from files. Unix power users often find it convenient to string an +incantation of commands together with pipes.\sidenote{Indeed, such + wizardly incantations are a point of pride.} For example, you might +extract a subset of query sequences from a larger file using a +one-liner combination of scripting commands (python, perl, awk, +whatever). To facilitate the use of HMMER programs in such +incantations, you can almost always use an argument of '-' (dash) in +place of a filename, and the program will take its input from a +standard input pipe instead of opening a file. + +For example, the following three commands are equivalent, and give +essentially identical output: + + \vspace{1ex} + \user{\% hmmsearch globins4.hmm uniprot\_sprot.fasta} \\ + \user{\% cat globins4.hmm | hmmsearch - uniprot\_sprot.fasta} \\ + \user{\% cat uniprot\_sprot.fasta | hmmsearch globins4.hmm - } \\ + \vspace{1ex} + +Most Easel ``miniapp'' programs share the same pipe-reading ability. + +Because the programs for profile HMM fetching (\mono{hmmfetch}) and +sequence fetching (\mono{esl-sfetch}) can fetch any number of profiles +or sequences by names/accessions given in a list, \emph{and} these +programs can also read these lists from a stdin pipe, you can craft +incantations that generate subsets of queries or targets on the +fly. For example: + + \vspace{1ex} + \begin{fullwidth} + \user{\indent \% esl-sfetch --index uniprot\_sprot.fasta} \\ + \user{\% cat mytargs.list | esl-sfetch -f uniprot\_sprot.fasta - | hmmsearch globins4.hmm -} \\ + \end{fullwidth} + \vspace{1ex} + +This takes a list of sequence names/accessions in +\mono{mytargets.list}, fetches them one by one from UniProt (note that +we index the UniProt file first, for fast retrieval; and note that +\mono{esl-sfetch} is reading its \mono{} list of +names/accessions through a pipe using the '-' argument), and pipes +them to an \mono{hmmsearch}. It should be obvious from this that we +can replace the \mono{cat mytargets.list} with \emph{any} incantation +that generates a list of sequence names/accessions (including SQL +database queries). + +Ditto for piping subsets of profiles. Supposing you have a copy of Pfam in Pfam-A.hmm: + + \vspace{1ex} + \begin{fullwidth} + \user{\indent \% hmmfetch --index Pfam-A.hmm} \\ + \user{\% cat myqueries.list | hmmfetch -f Pfam.hmm - | hmmsearch - uniprot\_sprot.fasta}\\ + \end{fullwidth} + \vspace{1ex} + +This takes a list of query profile names/accessions in +\mono{myqueries.list}, fetches them one by one from Pfam, and does an +hmmsearch with each of them against UniProt. As above, the \mono{cat + myqueries.list} part can be replaced by any suitable incantation +that generates a list of profile names/accessions. + +There are three kinds of cases where using '-' is restricted or +doesn't work. A fairly obvious restriction is that you can only use +one '-' per command; you can't do a \mono{hmmsearch - -} that tries to +read both profile queries and sequence targets through the same stdin +pipe. Second, another case is when an input file must be obligately +associated with additional, separately generated auxiliary files, so +reading data from a single stream using '-' doesn't work because the +auxiliary files aren't present (in this case, using '-' will be +prohibited by the program). An example is \mono{hmmscan}, which needs +its \mono{} argument to be associated with four auxiliary +files named \mono{.h3\{mifp\}} that \mono{hmmpress} creates, +so \mono{hmmscan} does not permit a '-' for its \mono{} +argument. Finally, when a command would require multiple passes over +an input file, the command will generally abort after the first pass +if you are trying to read that file through a standard input pipe +(pipes are nonrewindable in general; a few HMMER or Easel programs +will buffer input streams to make multiple passes possible, but this +is not usually the case). An example would be trying to search a file +containing multiple profile queries against a streamed target +database: + + \vspace{1ex} + \begin{fullwidth} + \user{\indent \% cat myqueries.list | hmmfetch -f Pfam.hmm > many.hmms}\\ + \user{\% cat mytargets.list | esl-sfetch -f uniprot\_sprot.fasta - | hmmsearch many.hmms -}\\ + \end{fullwidth} + \vspace{1ex} + +This will fail. Unfortunately the above business about how it will +``generally abort after the first pass'' means it fails weirdly. The +first query profile search will succeed, and its output will appear; +then an error message will be generated when \mono{hmmsearch} sees the +\emph{second} profile query and oops, suddenly realizes it is unable +to rewind the target sequence database stream. This is inherent in how +it reads the profile HMM query file sequentially as a stream (which is +what's allowing it to read input from stdin pipes in the first place), +one model at a time: it doesn't see there's more than one query model +in the file until it gets to the second model. + +This case isn't too restricting because the same end goal can be +achieved by reordering the commands. In cases where you want to do +multiple queries against multiple targets, you always want to be +reading the \emph{queries} from a stdin pipe, not the targets: + + \vspace{1ex} + \user{\% cat mytargets.list | esl-sfetch -f uniprot\_sprot.fasta > mytarget.seqs}\\ + \user{\% cat myqueries.list | hmmfetch -f Pfam.hmm - | hmmsearch - mytarget.seqs}\\ + \vspace{1ex} + +So in this multiple queries/multiple targets case of using stdin +pipes, you just have to know, for any given program, which file it +considers to be queries and which it considers to be targets. (That +is, the logic in searching many queries against many targets is ``For +each query: search the target database; then rewind the target +database to the beginning.'') For \mono{hmmsearch}, the profiles are +queries and sequences are targets. For \mono{hmmscan}, the reverse. + +In general, HMMER and Easel programs document in their man page +whether (and which) command line arguments can be replaced by '-'. +You can always check by trial and error, too. The worst that can +happen is a ``Failed to open file -'' error message, if the program +can't read from pipes. + +\subsection{.gz compressed files} + +In general, HMMER programs and Easel miniapps can also read \mono{.gz} +compressed files; they will uncompress them on the fly. You need to +have \mono{gunzip} installed on your system for this to work. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage +\section{HMMER profile HMM files} +\label{section:savefiles} + +A HMMER profile file looks like this, with ...'s marking elisions made +for clarity and space:\sidenote{This is the \mono{globins4.hmm} + profile from the tutorial.} + + \xsreoutput{inclusions/hmmbuild-globins.out2} + +A profile file consists of one or more profiles. Each profile starts +with a format version identifier (here, \mono{HMMER3/\HMMERfmtversion{}}) and ends with +\mono{//} on a line by itself. The format version identifier allows +backward compatibility as the HMMER software evolves: it tells the +parser this file is from HMMER3's save file format version +\HMMERfmtversion{}.\footnote{HMMER 3.0 used 3/b format. HMMER 3.1 and 3.2 use 3/f + format. Some alpha test versions of 3.0 used 3/a format. Internal + development versions of 3.1 used 3/c, 3/d, and 3/e formats.} The +closing \mono{//} allows multiple profiles to be concatenated. + +The format is divided into two regions. The first region contains +textual information and miscalleneous parameters in a roughly +tag-value scheme. This section ends with a line beginning with the +keyword \mono{HMM}. The second region is a tabular, whitespace-limited +format for the main model parameters. + +All probability parameters are all stored as negative natural log +probabilities with five digits of precision to the right of the +decimal point, rounded. For example, a probability of $0.25$ is stored +as $-\log 0.25 = 1.38629$. The special case of a zero probability is +stored as '*'. + +Spacing is arranged for human readability, but the parser only cares +that fields are separated by at least one space character. + +A more detailed description of the format follows. + +\subsection{header section} + +The header section is parsed line by line in a tag/value format. Each +line type is either \textbf{mandatory} or \textbf{optional} as +indicated. + +\begin{sreitems}{\monob{header}} + +\item [\monob{HMMER3/\HMMERfmtversion{}}] Unique identifier for the save file format + version; the \mono{/\HMMERfmtversion{}} means that this is HMMER3 profile file format + version \HMMERfmtversion{}. When HMMER3 changes its save file format, the revision + code advances. This way, parsers can be backwards + compatible. The remainder of the line after the \mono{HMMER3/\HMMERfmtversion{}} tag + is free text that is ignored by the parser. HMMER currently writes + its version number and release date in brackets here, + e.g. \mono{\HMMERsavestamp{}} in this + example. \textbf{Mandatory.} + +\item [\monob{NAME }] Model name; \mono{} is a single word +containing no spaces or tabs. The name is normally picked up from the +\mono{\#=GF ID} line from a Stockholm alignment file. If this is not +present, the name is created from the name of the alignment file by +removing any file type suffix. For example, an otherwise nameless HMM +built from the alignment file \mono{rrm.slx} would be named +\mono{rrm}. \textbf{Mandatory.} + +\item [\monob{ACC }] Accession number; \mono{} is a one-word +accession number. This is picked up from the \mono{\#=GF AC} line in a +Stockholm format alignment. \textbf{Optional.} + +\item [\monob{DESC }] Description line; \mono{} is a one-line +free text description. This is picked up from the \mono{\#=GF DE} line +in a Stockholm alignment file. \textbf{Optional.} + +\item [\monob{LENG }] Model length; \mono{}, a positive nonzero +integer, is the number of match states in the model. +\textbf{Mandatory.} + +\item [\monob{MAXL }] Max instance length; \mono{}, a positive +nonzero integer, is the upper bound on the length at which and instance +of the model is expected to be found. Used only by nhmmer and nhmmscan. +\textbf{Optional.} + +\item [\monob{ALPH }] Symbol alphabet type. For biosequence +analysis models, \mono{} is \mono{amino}, \mono{DNA}, or \mono{RNA} +(case insensitive). There are also other accepted alphabets for +purposes beyond biosequence analysis, including \mono{coins}, +\mono{dice}, and \mono{custom}. This determines the symbol alphabet +and the size of the symbol emission probability distributions. If +\mono{amino}, the alphabet size $K$ is set to 20 and the symbol +alphabet to ``ACDEFGHIKLMNPQRSTVWY'' (alphabetic order); if +\mono{DNA}, the alphabet size $K$ is set to 4 and the symbol alphabet +to ``ACGT''; if \mono{RNA}, the alphabet size $K$ is set to 4 and the +symbol alphabet to ``ACGU''. \textbf{Mandatory.} + +\item [\monob{RF }] Reference annotation flag; \mono{} is +either \mono{no} or \mono{yes} (case insensitive). If \mono{yes}, the +reference annotation character field for each match state in the main +model (see below) is valid; if \mono{no}, these characters are +ignored. Reference column annotation is picked up from a Stockholm +alignment file's \mono{\#=GC RF} line. It is propagated to alignment +outputs, and also may optionally be used to define consensus match +columns in profile HMM construction. \textbf{Optional}; assumed to be +no if not present. + +\item [\monob{MM }] Model masked flag; \mono{} is +either \mono{no} or \mono{yes} (case insensitive). If \mono{yes}, the +model mask annotation character field for each match state in the main +model (see below) is valid; if \mono{no}, these characters are +ignored. Indicates that the profile model was created such that +emission probabilities at masked positions are set to match the +background frequency, rather than being set based on observed frequencies +in the alignment. Position-specific insertion and deletion rates are not +altered, even in masked regions. \textbf{Optional}; assumed to be +no if not present. + +\item [\monob{CONS }] Consensus residue annotation flag; + \mono{} is either \mono{no} or \mono{yes} (case insensitive). If + \mono{yes}, the consensus residue field for each match state in the + main model (see below) is valid. If \mono{no}, these characters are + ignored. Consensus residue annotation is determined when models are + built. For models of single sequences, the consensus is the same as + the query sequence. For models of multiple alignments, the consensus + is the maximum likelihood residue at each position. Upper case + indicates that the model's emission probability for the consensus + residue is $\geq$ an arbitrary threshold (0.5 for protein models, + 0.9 for DNA/RNA models). + +\item [\monob{CS }] Consensus structure annotation flag; +\mono{} is either \mono{no} or \mono{yes} (case insensitive). If +\mono{yes}, the consensus structure character field for each match +state in the main model (see below) is valid; if \mono{no} these +characters are ignored. Consensus structure annotation is picked up +from a Stockholm file's \mono{\#=GC SS\_cons} line, and propagated to +alignment displays. \textbf{Optional}; assumed to be no if not +present. + +\item [\monob{MAP }] Map annotation flag; \mono{} is either +\mono{no} or \mono{yes} (case insensitive). If set to \mono{yes}, the +map annotation field in the main model (see below) is valid; if +\mono{no}, that field will be ignored. The HMM/alignment map +annotates each match state with the index of the alignment column from +which it came. It can be used for quickly mapping any subsequent +HMM alignment back to the original multiple alignment, via the model. +\textbf{Optional}; assumed to be no if not present. + +\item [\monob{DATE }] Date the model was constructed; \mono{} +is a free text date string. This field is only used for logging +purposes.\footnote{HMMER does not use dates for any purpose other than +human-readable annotation, so it is no more prone than you are to Y2K, +Y2038, or any other date-related eschatology.} \textbf{Optional.} + +\item [\monob{COM [] }] Command line log; \mono{} counts +command line numbers, and \mono{} is a one-line command. There may +be more than one \mono{COM} line per save file, each numbered starting +from $n=1$. These lines record every HMMER command that modified the +save file. This helps us reproducibly and automatically log how Pfam +models have been constructed, for example. \textbf{Optional.} + +\item [\monob{NSEQ }] Sequence number; \mono{} is a nonzero +positive integer, the number of sequences that the HMM was trained on. +This field is only used for logging purposes. +\textbf{Optional.} + +\item [\monob{EFFN }] Effective sequence number; \mono{} is a +nonzero positive real, the effective total number of sequences +determined by \mono{hmmbuild} during sequence weighting, for combining +observed counts with Dirichlet prior information in parameterizing the +model. This field is only used for logging purposes. +\textbf{Optional.} + +\item [\monob{CKSUM }] Training alignment checksum; \mono{} is + a nonnegative unsigned 32-bit integer. This number is calculated + from the training sequence data, and used in conjunction with the + alignment map information to verify that a given alignment is indeed + the alignment that the map is for. \textbf{Optional.} + +\item [\monob{GA }] Pfam gathering thresholds GA1 and GA2. +See Pfam documentation of GA lines. \textbf{Optional.} + +\item [\monob{TC }] Pfam trusted cutoffs TC1 and TC2. See +Pfam documentation of TC lines. \textbf{Optional.} + +\item [\monob{NC }] Pfam noise cutoffs NC1 and NC2. See Pfam +documentation of NC lines. \textbf{Optional.} + +\item [\monob{STATS }] Statistical parameters + needed for E-value calculations. \mono{} is the model's + alignment mode configuration: currently only \mono{LOCAL} is + recognized. \mono{} is the name of the score distribution: + currently \mono{MSV}, \mono{VITERBI}, and \mono{FORWARD} are + recognized. \mono{} and \mono{} are two real-valued + parameters controlling location and slope of each distribution, + respectively; $\mu$ and $\lambda$ for Gumbel distributions for MSV + and Viterbi scores, and $\tau$ and $\lambda$ for exponential tails + for Forward scores. $\lambda$ values must be positive. All three + lines or none of them must be present: when all three are present, + the model is considered to be calibrated for E-value + statistics. \textbf{Optional.} + +\item [\monob{HMM }] Flags the start of the main model +section. Solely for human readability of the tabular model data, the +symbol alphabet is shown on the \mono{HMM} line, aligned to the fields +of the match and insert symbol emission distributions in the main +model below. The next line is also for human readability, providing +column headers for the state transition probability fields in the main +model section that follows. Though unparsed after the \mono{HMM} tag, +the presence of two header lines is \textbf{mandatory:} the parser +always skips the line after the \mono{HMM} tag line. + +\item [\monob{COMPO *K}] The first line in the main model section +may be an optional line starting with \monob{COMPO}: these are the +model's overall average match state emission probabilities, which are +used as a background residue composition in the ``filter null'' +model. The $K$ fields on this line are log probabilities for each +residue in the appropriate biosequence alphabet's +order. \textbf{Optional.} + +\end{sreitems} + +\subsection{main model section} + +All the remaining fields are \textbf{mandatory}. + +The first two lines in the main model section are +atypical.\footnote{That is, the first two lines after the optional + \mono{COMPO} line. Don't be confused by the presence of an optional \mono{COMPO} + line here. The \mono{COMPO} line is placed in the model section, below the + residue column headers, because it's an array of numbers much like + residue scores, but it's not really part of the model.} They +contain information for the core model's BEGIN node. This is stored as +model node 0, and match state 0 is treated as the BEGIN state. The +begin state is mute, so there are no match emission probabilities. The +first line is the insert 0 emissions. The second line contains the +transitions from the begin state and insert state 0. These seven +numbers are: $B \rightarrow M_1$, $B \rightarrow I_0$, $B \rightarrow +D_1$; $I_0 \rightarrow M_1$, $I_0 \rightarrow I_0$; then a 0.0 and a +'*', because by convention, nonexistent transitions from the +nonexistent delete state 0 are set to $\log 1 = 0$ and $\log 0 = +-\infty = $ `*'. + +The remainder of the model has three lines per node, for $M$ nodes +(where $M$ is the number of match states, as given by the \mono{LENG} +line). These three lines are ($K$ is the alphabet size in residues): + +\begin{sreitems}{\textbf{State transition line}} + +\item [\textbf{Match emission line}] The first field is the node +number ($1 \ldots M$). The parser verifies this number as a +consistency check (it expects the nodes to come in order). The next +$K$ numbers for match emissions, one per symbol, in alphabetic order. + +The next field is the \mono{MAP} annotation for this node. If +\mono{MAP} was \mono{yes} in the header, then this is an integer, +representing the alignment column index for this match state +(1..alen); otherwise, this field is `-'. + +The next field is the \mono{CONS} consensus residue for this node. If +\mono{CONS} was \mono{yes} in the header, then this is a single +character, representing the consensus residue annotation for this +match state; otherwise, this field is `-'. + +The next field is the \mono{RF} annotation for this node. If +\mono{RF} was \mono{yes} in the header, then this is a single +character, representing the reference annotation for this match state; +otherwise, this field is `-'. + +The next field is the \mono{MM} mask value for this node. If +\mono{MM} was \mono{yes} in the header, then this is a single 'm' +character, indicating that the position was identified as a masked +position during model construction; otherwise, this field is `-'. + +The next field is the \mono{CS} annotation for this node. If +\mono{CS} was \mono{yes}, then this is a single character, +representing the consensus structure at this match state; otherwise +this field is `-'. + +\item [\textbf{Insert emission line}] The $K$ fields on this line are +the insert emission scores, one per symbol, in alphabetic order. + +\item [\textbf{State transition line}] The seven fields on this line +are the transitions for node $k$, in the order shown by the transition +header line: $M_k \rightarrow M_{k+1}, I_{k}, D_{k+1}$; $ I_k +\rightarrow M_{k+1}, I_k$; $D_{k} \rightarrow M_{k+1}, D_{k+1}$. + +For transitions from the final node $M$, match state $M+1$ is +interpreted as the END state $E$, and there is no delete state $M+1$; +therefore the final $M_k \rightarrow D_{k+1}$ and $D_k \rightarrow +D_{k+1}$ transitions are always * (zero probability), and the final +$D_k \rightarrow M_{k+1}$ transition is always 0.0 (probability 1.0). +\end{sreitems} + +Finally, the last line of the format is the ``//'' record separator. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage +\section{Stockholm, the recommended multiple sequence alignment format} +\label{section:stockholm} + +The Pfam and Rfam Consortiums have developed a multiple sequence +alignment format called ``Stockholm format'' that allows rich and +extensible annotation. + +Most popular multiple alignment file formats can be changed into a +minimal Stockholm format file just by adding a Stockholm header line +and a trailing \mono{//} terminator: + + \xsreoutput{inclusions/globins4.sto} + +The first line in the file must be \mono{\# STOCKHOLM 1.x}, where +\mono{x} is a minor version number for the format specification (and +which currently has no effect on my parsers). This line allows a +parser to instantly identify the file format. + +In the alignment, each line contains a name, followed by the aligned +sequence. A dash, period, underscore, or tilde (but not whitespace) +denotes a gap. If the alignment is too long to fit on one line, the +alignment may be split into multiple blocks, with blocks separated by +blank lines. The number of sequences, their order, and their names +must be the same in every block. Within a given block, each +(sub)sequence (and any associated \mono{\#=GR} and \mono{\#=GC} markup, +see below) is of equal length, called the \emph{block length}. Block +lengths may differ from block to block. The block length must be at +least one residue, and there is no maximum. + +Other blank lines are ignored. You can add comments anywhere to the +file (even within a block) on lines starting with a \mono{\#}. + +All other annotation is added using a tag/value comment style. The +tag/value format is inherently extensible, and readily made +backwards-compatible; unrecognized tags will simply be ignored. Extra +annotation includes consensus and individual RNA or protein secondary +structure, sequence weights, a reference coordinate system for the +columns, and database source information including name, accession +number, and coordinates (for subsequences extracted from a longer +source sequence) See below for details. + +\subsection{syntax of Stockholm markup} + +There are four types of Stockholm markup annotation, for per-file, +per-sequence, per-column, and per-residue annotation: + +\begin{description}%{\monob{\#=GR <..s..>}} +\item [\monob{\#=GF }] + Per-file annotation. \mono{} is a free format text line + of annotation type \mono{}. For example, \mono{\#=GF DATE + April 1, 2000}. Can occur anywhere in the file, but usually + all the \mono{\#=GF} markups occur in a header. + +\item [\monob{\#=GS }] + Per-sequence annotation. \mono{} is a free format text line + of annotation type \mono{tag} associated with the sequence + named \mono{}. For example, \mono{\#=GS seq1 + SPECIES\_SOURCE Caenorhabditis elegans}. Can occur anywhere + in the file, but in single-block formats (e.g. the Pfam + distribution) will typically follow on the line after the + sequence itself, and in multi-block formats (e.g. HMMER + output), will typically occur in the header preceding the + alignment but following the \mono{\#=GF} annotation. + +\item [\monob{\#=GC <..s..>}] + Per-column annotation. \mono{<..s..>} is an aligned text line + of annotation type \mono{}. + \mono{\#=GC} lines are + associated with a sequence alignment block; \mono{<..s..>} + is aligned to the residues in the alignment block, and has + the same length as the rest of the block. + Typically \mono{\#=GC} lines are placed at the end of each block. + +\item [\monob{\#=GR <..s..>}] + Per-residue annotation. \mono{<..s..>} is an aligned text line + of annotation type \mono{}, associated with the sequence + named \mono{}. + \mono{\#=GR} lines are + associated with one sequence in a sequence alignment block; + \mono{<..s..>} + is aligned to the residues in that sequence, and has + the same length as the rest of the block. + Typically + \mono{\#=GR} lines are placed immediately following the + aligned sequence they annotate. +\end{description} + + +\subsection{semantics of Stockholm markup} + +Any Stockholm parser will accept syntactically correct files, but is +not obligated to do anything with the markup lines. It is up to the +application whether it will attempt to interpret the meaning (the +semantics) of the markup in a useful way. At the two extremes are the +Belvu alignment viewer and the HMMER profile hidden Markov model +software package. + +Belvu simply reads Stockholm markup and displays it, without trying to +interpret it at all. The tag types (\mono{\#=GF}, etc.) are sufficient +to tell Belvu how to display the markup: whether it is attached to the +whole file, sequences, columns, or residues. + +HMMER uses Stockholm markup to pick up a variety of information from +the Pfam multiple alignment database. The Pfam consortium therefore +agrees on additional syntax for certain tag types, so HMMER can parse +some markups for useful information. This additional syntax is imposed +by Pfam, HMMER, and other software of mine, not by Stockholm format +per se. You can think of Stockholm as akin to XML, and what my +software reads as akin to an XML DTD, if you're into that sort of +structured data format lingo. + +The Stockholm markup tags that are parsed semantically by my software +are as follows: + +\subsection{recognized \#=GF annotations} +\begin{sreitems}{\monob{TC }} +\item [\monob{ID }] + Identifier. \monob{} is a name for the alignment; + e.g. ``rrm''. One word. Unique in file. + +\item [\monob{AC }] + Accession. \monob{} is a unique accession number for the + alignment; e.g. + ``PF00001''. Used by the Pfam database, for instance. + Often a alphabetical prefix indicating the database + (e.g. ``PF'') followed by a unique numerical accession. + One word. Unique in file. + +\item [\monob{DE }] + Description. \monob{} is a free format line giving + a description of the alignment; e.g. + ``RNA recognition motif proteins''. One line. Unique in file. + +\item [\monob{AU }] + Author. \monob{} is a free format line listing the + authors responsible for an alignment; e.g. + ``Bateman A''. One line. Unique in file. + +\item [\monob{GA }] + Gathering thresholds. Two real numbers giving HMMER bit score + per-sequence and per-domain cutoffs used in gathering the + members of Pfam full alignments. + +\item [\monob{NC }] + Noise cutoffs. Two real numbers giving HMMER bit score + per-sequence and per-domain cutoffs, set according to the + highest scores seen for unrelated sequences when gathering + members of Pfam full alignments. + +\item [\monob{TC }] + Trusted cutoffs. Two real numbers giving HMMER bit score + per-sequence and per-domain cutoffs, set according to the + lowest scores seen for true homologous sequences that + were above the GA gathering thresholds, when gathering + members of Pfam full alignments. +\end{sreitems} + +\subsection{recognized \#=GS annotations} + +\begin{sreitems}{\monob{WT }} +\item [\monob{WT }] + Weight. \monob{} is a positive real number giving the + relative weight for a sequence, usually used to compensate + for biased representation by downweighting similar sequences. + Usually the weights average 1.0 (e.g. the weights sum to + the number of sequences in the alignment) but this is not + required. Either every sequence must have a weight annotated, + or none of them can. + +\item [\monob{AC }] + Accession. \monob{} is a database accession number for + this sequence. (Compare the \mono{\#=GF AC} markup, which gives + an accession for the whole alignment.) One word. + +\item [\monob{DE }] + Description. \monob{} is one line giving a description for + this sequence. (Compare the \mono{\#=GF DE} markup, which gives + a description for the whole alignment.) +\end{sreitems} + + +\subsection{recognized \#=GC annotations} + +\begin{sreitems}{\monob{SA\_cons}} + +\item [\monob{RF}] + Reference line. Any character is accepted as a markup for a + column. The intent is to allow labeling the columns with some + sort of mark. + +\item [\monob{MM}] + Model mask line. An 'm' indicates that the column lies within a + masked range, so that \mono{hmmbuild} should produce emissions matching + the background for a match state corresponding to that alignment column. + Otherwise, a '.' is used. + +\item [\monob{SS\_cons}] + Secondary structure consensus. For protein alignments, + DSSP codes or gaps are accepted as markup: [HGIEBTSCX.-\_], where + H is alpha helix, G is 3/10-helix, I is p-helix, E is extended + strand, B is a residue in an isolated b-bridge, T is a turn, + S is a bend, C is a random coil or loop, and X is unknown + (for instance, a residue that was not resolved in a crystal + structure). + +\item [\monob{SA\_cons}] + Surface accessibility consensus. 0-9, gap symbols, or X are + accepted as markup. 0 means $<$10\% accessible residue surface + area, 1 means $<$20\%, 9 means $<$100\%, etc. X means unknown + structure. +\end{sreitems} + +\subsection{recognized \#=GR annotations} +\begin{sreitems}{\monob{SA}} +\item [\monob{SS}] + Secondary structure consensus. See \mono{\#=GC SS\_cons} above. +\item [\monob{SA}] + Surface accessibility consensus. See \mono{\#=GC SA\_cons} above. +\item [\monob{PP}] Posterior probability for an aligned residue. This + represents the probability that this residue is assigned to the HMM + state corresponding to this alignment column, as opposed to some + other state. (Note that a residue can be confidently + \emph{unaligned}: a residue in an insert state or flanking N or C + state may have high posterior probability.) The posterior + probability is encoded as 11 possible characters \mono{0-9*+}: $0.0 + \leq p < 0.05$ is coded as 0, $0.05 \leq p < 0.15$ is coded as 1, + (... and so on ...), $0.85 \leq p < 0.95$ is coded as 9, and $0.95 + \leq p \leq 1.0$ is coded as '*'. Gap characters appear in the PP + line where no residue has been assigned. +\end{sreitems} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage +\section{A2M multiple alignment format} + +% Adapted from Easel documentation's format_a2m.tex by: +% - including format_a2m.tex +% - add the section header below +% - revise first pp to be about HMMER. + +HMMER's Easel library routines are capable of writing alignments in UC +Santa Cruz ``A2M'' (alignment to model) format, the native input +format for the UCSC SAM profile HMM software package. + +To select A2M format, use the format code \mono{a2m}: for example, +to reformat a Stockholm alignment to A2M: + +\user{esl-reformat a2m myali.sto} + +Easel currently does not read A2M format, and it currently only writes +in what UCSC calls ``dotless'' A2M format. + +The most official documentation for A2M format appears to be at +\url{http://compbio.soe.ucsc.edu/a2m-desc.html}. You may refer to that +document if anything in the brief description below is unclear. + +\subsection{An example A2M file} + +This alignment: + +\begin{sreoutput} +seq1 ACDEF...GHIKLMNPQTVWY +seq2 ACDEF...GHIKLMNPQTVWY +seq3 ---EFmnrGHIKLMNPQT--- +\end{sreoutput} + +\noindent +is encoded in A2M format as: + +\begin{sreoutput} +>seq1 Sequence 1 description +ACDEFGHIKLMNPQTVWY +>seq2 Sequence 2 description +ACDEFGHIKLMNPQTVWY +>seq3 Sequence 3 description +---EFmnrGHIKLMNPQT--- +\end{sreoutput} + +A2M format looks a lot like aligned FASTA format. A crucial difference +is that the aligned sequences in a ``dotless'' A2M file do not +necessarily all have the same number of characters. The format +distinguishes between ``consensus columns'' (where residues are in +upper case and gaps are a dash, `-') and ``insert columns'' (where +residues are in lower case and gaps are dots, `.', that aren't +explicitly shown in the format -- hence ``dotless'' A2M). The position +and number of gaps in insert columns (dots) is implicit in this +representation. An advantage of this format is its compactness. + +This representation only works if all insertions relative to consensus +are considered to be unaligned characters. That is how insertions are +handled by profile HMM implementations like SAM and HMMER, and profile +SCFG implementations like Infernal. + +Thus every sequence must have the same number of consensus columns +(upper case letters plus `-' characters), and may have additional lower +case letters for insertions. + +\subsection{Legal characters} + +A2M (and SAM) do not support some special characters such as `*' +(not-a-residue) or `\mono{\~}' (missing data). Easel outputs these +characters as gaps: either `-' in a consensus column, or nothing in an +insert column. + +The SAM software parses only a subset of legal ambiguity codes for +amino acids and nucleotides. For amino acids, it only reads \{BXZ\} in +addition to the 20 standard one-letter codes. For nucleotides, it only +reads \{NRY\} in addition to \{ACGTU\}. With one crucial exception, it +treats all other letters as X or N. + +The crucial exception is `O'. SAM reads an `O' as the position of a +``free insertion module'' (FIM), a concept specific to SAM-style +profile HMMs. This has no impact on nucleic acid sequences, where `O' +is not a legal character. But in amino acid sequences, `O' means +pyrrolysine, one of the unusual genetically-encoded amino acids. This +means that A2M format alignments must not contain pyrrolysine +residues, lest they be read as FIMs. For this reason, Easel converts +`O' residues to `X' when it writes an amino acid alignment in A2M +format. + +\subsection{Determining consensus columns} + +Writing A2M format requires knowing which alignment columns are +supposed to be considered consensus and which are considered +inserts. If the alignment was produced by HMMER or Infernal, then the +alignment has so-called ``reference annotation'' (what appears as a +\mono{\#=GC RF} line in Stockholm format) marking the consensus +columns. + +Often, an alignment has no reference annotation; for example, if it +has been read from an alignment format that has no reference +annotation line (only Stockholm and SELEX formats support reference +annotation). In this case, Easel internally generates a ``reasonable'' +guess at consensus columns, using essentially the same procedure that +HMMER's \mono{hmmbuild} program uses by default: sequence fragments +(sequences $<$50\% of the mean sequence length in the alignment +overall) are ignored, and for the remaining sequences, any column +containing $\geq$ 50\% residues is considered to be a consensus +column. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage +\section{hmmpgmd sequence database format} + +The hmmpgmd sequence database format closely resembles the +FASTA format, with slight modification to support use within HMMER's +\mono{hmmpgmd} daemon. + + +The \mono{hmmpgmd} program enables search of one or more sequence +databases (e.g. NR, SwissProt, UniProt) within a single instance, +having loaded a single sequence file into memory. Because the set of +sequences found within the various databases may overlap, the hmmpgmd +format allows each sequence to be stored once, and includes a small piece of +metadata that indicates, for each sequence, the list of source databases in +which the sequence is found. When a search is performed in \mono{hmmpgmd}, a +single target database is specified, and search is restricted to sequences +belonging to that database. + +Furthermore, because a single sequence might be found multiple times +within a single sequence database, \mono{hmmpgmd} is designed to compute +E-values not just on the total number of non-redundant sequences +within a database, but on the total number of sequences in the original +(possibly redundant) database, provided those redundant counts are +given in the hmmpgmd-formatted file. + +The \mono{hmmpgmd} file begins with a single line containing various counts +describing the contents of the file, of the form + +\monob{\#res\_cnt seq\_cnt db\_cnt cnt\_1 fullcnt\_1 cnt\_2 fullcnt\_2 $\ldots$ date\_stamp} + +\subsection{Fields in header line} + +\begin{sreitems}{\monob{header}} + +\item [\monob{res\_cnt}] Number of residues in the sequence file. + +\item [\monob{seq\_cnt}] Number of sequences in the sequence file. + +\item [\monob{db\_cnt}] Number of databases in the sequence file. + +\item [\monob{cnt\_i}] Of the sequnces in the file, the number that belong to +database \mono{i}. Note that if the file contains only a single +database, this will match \mono{seq\_cnt}. + +\item [\monob{fullcnt\_i}] For database \mono{i}, the number of sequences +that should be used in computing E-values. If redundant +sequences were collapsed out of the original database, this may be +larger than \mono{cnt\_i}. + +\end{sreitems} + + +\subsection{FASTA-like sequence format} + +In the main body of the sequence file, database sequences are stored +sequentially, with each entry consisting of a one-line FASTA-like +header followed by one or more lines containing the amino acid sequence, +like + +\begin{sreoutput} +>1 100 +ACDEFGHIKLMNPQTVWY +>2 010 +ACDKLMNPQTVWYEFGHI +>3 111 +EFMNRGHIKLMNPQT +\end{sreoutput} + +Note that the per-entry header line is made up of two parts. The first part +is a numeric, incrementing sequence identifier (the i'th entry has the +identifier \mono{i}). The second part is a bit string indicating database +membership. In this example, sequence 1 is found in database 1, sequence 2 is +found in database 2, and sequence 3 found in databases 1, 2, and 3. The number +of bits in each bit string should match \mono{db\_cnt}. + +Because \mono{hmmpgmd} accepts only numeric sequence identifiers, it is +necessary to keep track of the mapping between each numeric sequence identifier +and the corresponding meta data (e.g. name, accession, description) external to +the hmmpgmd-format file, and post-process \mono{hmmpgmd} seach results to +apply those fields to the target sequence information. +Depending on the size of the map list, this might be easily acheived with a +simple perl array, or might require a more heavy-duty mapping backend such as +mongodb (\url{http://www.mongodb.org}). + + +\subsection{Creating a file in hmmpgmd format} + +The HMMER-Easel tool \mono{esl-reformat} is able to convert a file in unaligned +fasta format into an hmmpgmd format file, such as + +\user{esl-reformat --id\_map mydb.hmmpgmd.map hmmpgmd mydb.fasta > mydb.hmmpgmd} + +The optional \mono{--id\_map} flag captures sequence name and description +information into a simple tabular file, to be used for mapping those values +back to \mono{hmmpgmd} query hits. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage +\section{Score matrix files} + +Profile HMMs can be built from single sequences, not just from +multiple sequence alignments. For example, the \mono{phmmer} and +\mono{jackhmmer} search programs take a single sequence query as an +input, and \mono{nhmmer} can as well. For single sequence queries, the +probability parameters for residue alignments are derived from a +substitution score matrix, such as BLOSUM62. Scores are converted to +probabilities as described by Altschul (1991).\cite{Altschul91}. The +scores can be arbitrary, but they must satisfy a couple of conditions +so they can be interpreted as implicit log-odds probabilities: there +must be at least one positive score, and the expected score (on +nonhomologous alignments) must be negative. + +The default score matrix for protein alignments is BLOSUM62; for DNA, +a matrix we call DNA1. Using the \mono{--mx} option (for programs that +can use score matrices), you can choose instead one of several +alternative protein score matrices: PAM30, PAM70, PAM120, PAM240, +BLOSUM45, BLOSUM50, BLOSUM80, and BLOSUM90. For example, you could use +\mono{--mx BLOSUM50}. + +The \mono{--mxfile} option allows you to provide a score matrix as a +file. You can download many standard score matrice files from NCBI at +\url{ftp://ftp.ncbi.nlm.nih.gov/blast/matrices/}. HMMER can read +\emph{almost} any of these files, with one exception: because it +requires the score matrix to be symmetrical (same number of residues +in rows and columns), the NCBI \mono{NUC.4.4} matrix for DNA works, +but the alternative short-form format \mono{NUC.4.2} does not +work. The scores in these two files are identical, so just use +\mono{NUC.4.4}, and files like it. + +Here's a simple example file: + +\begin{sreoutput} +# My score matrix +# + A T G C +A 1 -3 -3 -3 +T -3 1 -3 -3 +G -3 -3 1 -3 +C -3 -3 -3 1 +\end{sreoutput} + +In more detail, the rules for the format are: + +\begin{itemize} + +\item Blank lines are ignored. + +\item A \mono{\#} indicates a comment. Anything after it is + ignored. Lines that start with \mono{\#} are ignored like blank + lines. + +\item The first data line is a header line, labeling each column with + $n$ single residue characters (case-insensitive). A nucleic matrix + has $4 \leq n \leq 16$: at least the four canonical residues + \mono{ACGT} (or \mono{U}, for you RNA zealots), and it may also + contain any or all ambiguity codes \mono{RYMKSWHBVDN*}. A protein + matrix has $20 \leq n 27$; it must contain at least the 20 canonical + residues \mono{ACDEFGHIKLMNPQRSTVWY}, and may contain any or all + ambiguity codes \mono{BJZOU}. These residues can be in any order, + but the rows must be in the same order as the columns. + +\item The next $n$ data lines are the rows of a square $n \times n$ + score matrix: + +\begin{itemize} +\item Fields in the row are whitespace-delimited (tabs or + spaces). + +\item Optionally, each row can start with its single residue label. + Therefore each row has either $n+1$ fields if there is a leading + label, or $n$ fields if not. Rows and columns are in the same order. + +\item Each score is an integer. Plus signs are optional. +\end{itemize} + +\item The file may not contain any additional lines (other than + comments or blank lines). +\end{itemize} + +HMMER only uses the scores for canonical residues, and uses them to +calculate probabilities. If scores for ambiguous residue codes are +provided, HMMER ignores them; it has its own logic for dealing with +the probability of ambiguous residues, given the probability of +canonical residues. + + + + + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/glossary.tex b/bioinformaticsProject/hmmer/documentation/userguide/glossary.tex new file mode 100644 index 0000000..5efe6a4 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/glossary.tex @@ -0,0 +1,233 @@ + +\section{Glossary} +\setcounter{footnote}{0} + +\begin{wideitem} + +\item[\textbf{accession}] A unique database identifier (key) + associated with a query or target, in addition to its name. HMMER + generally assumes that both names and accessions are unique in any + given search. Many high-throughput annotation pipelines prefer to + track accessions rather than names because accessions are more + likely to be unique and stable over a long period of time, such as + over revisions of the same database. The HMMER search programs have + a \ccode{--acc} option that lets you request that accessions be + reported instead of names in output (when accessions are + available). Note that FASTA format for sequence files does not have + any standard way of recording accessions, so only names and + descriptions are available from FASTA files; to use accessions, you + must format your FASTA file to have accessions as names. + +\item[\textbf{alignment ensemble}] The set of all possible alignments + for a target/query comparison, some more likely than others. + Traditional sequence alignment methods typically find only one + best-scoring alignment. HMM-based methods can do computations over + the entire alignment ensemble. Several calculations in HMMER involve + summations over the alignment ensemble, including the bit score, + domain envelopes, the null2 model for biased-composition correction, + and aligned residue posterior probabilities. + +\item[\textbf{alignment uncertainty}] The more distantly related the + query and target, the less certain we can be in any given + alignment. HMMER usually deals with this uncertainty explicitly by + summing over alignment ensembles rather than choosing a single best + alignment; and when HMMER does choose a single alignment to show, it + shows an expected accuracy (posterior probability) of each aligned + residue. + +\item[\textbf{Backward algorithm}] Counterpart to the Forward + algorithm for HMMs; a recursive dynamic programming calculation of + the total summed probability of the alignment ensemble for all + \emph{suffixes} of the query and target. Combined with Forward + (which calculates the probability of the alignment ensemble for all + \emph{prefixes}), a variety of numbers of interest can be + calculated, such as the posterior probability (confidence) in any + aligned residue. + +\item[\textbf{biased composition}] Deviation from expected ``random'' + background frequencies in all or part of a sequence. Often used + (perhaps sloppily) as a catch-all term for all sorts of + nonrandomness in biological sequences, including not just residue + frequency bias, but also various sorts of simple repetitive + sequence. Because the null1 model of nonhomologous sequence assumes + that sequences are ``independent, identically distributed'' + ``random'' sequences of one homogeneous residue composition, a + sequence and target with similar composition biases can match with + spuriously high scores. HMMER attempts to correct for this with an + \emph{ad hoc} biased-composition correction (the ``null2 model''). + +\item[\textbf{biased-composition correction}] + An \emph{ad hoc} correction added to the score to mitigate spurious + high scores arising from biased composition. + + +\item[\textbf{bias filter}] A step in the pipeline that attempts to + detect and skip sequences that will cause spurious high-scoring hits + due to biased composition. Given a profile, a two-state HMM is + constructed that attempts to model the sequences that are most + likely to cause spurious hits to this profile. Scores of this model + are used temporarily as a ``null2'' model in the accelerated filter + steps of the pipeline. + + Not to be confused with the biased-composition correction. The bias + filter occurs early in the pipeline and is a go/no-go decision; if a + sequence fails the bias filter it is skipped entirely. The + biased-composition correction occurs late in the pipeline, in domain + postprocessing and final scoring; it is a quantitative correction to + the score. The real biased-composition correction is too + computationally intensive to use early in the pipeline; without the + bias filter, some models have enough biased composition that too + many sequences would get through the filters in the pipeline, + causing an unacceptable slowdown in overall search speeds for this + subset of models. + +\item[\textbf{bit}] (As in, a \emph{bit score}.) The units for log$_2$ + likelihood ratio scores; a logarithmic (base 2) measure of + probability or probability odds-ratios. + +\item[\textbf{BLAST}] (obs.) The competition. + +\item[\textbf{conditional E-value}] + + +\item[\textbf{domain}] + 1. Roughly speaking, an independently folded functional/structural + unit of a protein. There are many multidomain proteins composed of + domains with different evolutionary histories. + + 2. An operational unit of conserved protein subsequence defined by + protein domain databases like Pfam; usually corresponding to + structural domains (see above) when three-dimensional structure + information is available, but inferred from sequence conservation + analysis alone if not. + + 3. A subsequence that matches a profile, with two sets of endpoint + coordinates: envelope coordinates (defining where the summed + alignment ensemble indicates substantial probability mass supporting + presence of a domain, regardless of the ability to recover a + detailed alignment) and alignment coordinates (defining a subset of + the envelope where a detailed residue alignment can be inferred). + The ``domain'' output of a HMMER search lists each domain identified + in a sequence in a comparison to a profile. + + When HMMER is used to search Pfam models against sequences, the list + of ``domains'' in HMMER output usually \emph{but not always} + corresponds to multiple different domains in the operational Pfam + sense (and thus ideally in the structural/functional + sense). However, because a single structural domain may be detected + in two or more pieces, the correspondence is not necessarily one to + one; HMMER may call two or more ``domains'' in its output that + correspond to a single domain. Sorry, was that confusing? We + probably should have used a name other than ``domain''. + +\item[\textbf{domain post-processing}] The steps that the pipeline + goes through to identify individual domains, once it has decided + that a comparison is probably above reporting threshold. + A Forward/Backward calculation is used to identify the probability + distribution over domain endpoints on the target sequence. + + +\item[\textbf{envelope}] + + + +\item[\textbf{E-value}] + Expectation value; a measure + +\item[\textbf{false positive}] + +\item[\textbf{FASTA}] + +\item[\textbf{FASTA format}] + +\item[\textbf{Forward algorithm}] + +\item[\textbf{Forward filter}] + +\item[\textbf{Forward score}] + +\item[\textbf{global alignment}] + +\item[\textbf{glocal alignment}] + +\item[\textbf{hidden Markov model (HMM)}] + +\item[\textbf{inclusion threshold}] + +\item[\textbf{independent E-value}] + +\item[\textbf{Karlin/Altschul statistics}] + +\item[\textbf{local alignment}] + +\item[\textbf{MPI (Message Passing Interface)}] + +\item[\textbf{MSV filter}] + +\item[\textbf{null model}] + +\item[\textbf{null1}] + +\item[\textbf{null2}] + +\item[\textbf{optimal alignment}] + +\item[\textbf{optimal-accuracy alignment}] + +\item[\textbf{per-domain}] (As in, \emph{per-domain score} or + \emph{per-domain E-value}.) + +\item[\textbf{per-sequence}] (As in, \emph{per-sequence score} or + \emph{per-sequence E-value}.) + +\item[\textbf{Pfam}] + +\item[\textbf{pipeline}] The series of steps used to process each +query/target comparison. Consists of the three heuristic filters for +accelerating HMMER searches (the MSV filter, the bias filter, the +Viterbi filter, in that order), the Forward and Backward algorithms, +and domain postprocessing. + +\item[\textbf{POSIX}] + +\item[\textbf{posterior decoding}] + +\item[\textbf{probabilistic inference}] + +\item[\textbf{probabilistic model}] + +\item[\textbf{profile}] + +\item[\textbf{profile hidden Markov model (profile HMM)}] + +\item[\textbf{p-value}] + +\item[\textbf{query}] + +\item[\textbf{region}] + +\item[\textbf{reporting threshold}] + +\item[\textbf{score}] + +\item[\textbf{SIMD}] + +\item[\textbf{statistical significance}] + +\item[\textbf{stochastic traceback}] + +\item[\textbf{target}] + +\item[\textbf{Viterbi algorithm}] + +\item[\textbf{Viterbi alignment}] (Also, \emph{Viterbi algorithm}.) + +\item[\textbf{Viterbi filter}] + +\item[\textbf{Viterbi score}] + + + + +\end{wideitem} + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/hmmbuild.tex b/bioinformaticsProject/hmmer/documentation/userguide/hmmbuild.tex new file mode 100644 index 0000000..0793689 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/hmmbuild.tex @@ -0,0 +1,66 @@ +\section{Profile construction steps, in detail} +\label{section:pipeline} +\setcounter{footnote}{0} + +\begin{description} + +\item [\textbf{Read and validate input alignment}] + +\item [\textbf{Calculate relative sequence weights}] + +\item [\textbf{Define sequence fragments}] + +\item [\textbf{Determine model architecture}] + +\item [\textbf{Calculate effective sequence number}] + +\item [\textbf{Parameterize the model}] + +\item [\textbf{Transfer annotation from MSA to model}] + +\item [\textbf{Calibrate the model}] + +\item [\textbf{Create the ``post'' MSA}] + +\end{description} + +In more detail, each step is described in the following +subsections.\footnote{To study the relevant source code, start with + \ccode{p7\_builder.c::p7\_Builder()}.} + + +\subsection{Alignment input and validation} + +HMMER is designed to work on input + + +\subsection{Relative sequence weighting} + +\subsection{Sequence fragment definition} + +\subsection{Model architecture determination} + +\subsection{Effective sequence number (absolute sequence weights)} + +\subsection{Model parameterization} + +\subsection{Annotation transfer from MSA to model} + +\subsection{Model calibration} + +\subsection{Create the ``post'' MSA} + + + + + + + + + + + + + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/hmmc.tex b/bioinformaticsProject/hmmer/documentation/userguide/hmmc.tex new file mode 100644 index 0000000..9779bd8 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/hmmc.tex @@ -0,0 +1,24 @@ +/subsection{Sending Searches to a Daemon} +The HMMER package includes {\em hmmc2}, an example client that can communicate with an hmmpgmd or hmmpgmd\_shard daemon. Hmmc2 accepts four command-line arguments\sidenote{The code in hmmc2.c breaks HMMER convention by defining an Easel options structure, {searchOpts}, which specifies options that can be passed to a search request within the interactive loop that hmmc2 starts. The actual arguments to the hmmc2 program are parsed by custom code in hmmc2.c that does not call the Easel argument parser.}: + +\begin{itemize} + \item{\underline{-i }: specifies the IP address of the daemon to connect to. Defaults to 127.0.0.1 if not provided.}} + \item{\underline{-p }: specifies the port number that the daemon is listening to for client connections. Defaults to 51371 (the hmmpgmd default) if not provided.} + \item{\underline{-S}: print the scores of any hits found by searches} + \item{\underline{-A}: print the alignments of any hits found by searches. The data printed when this option is provided is a superset of the data printed when "-S" is provided, so the "-S" option is redundant if -A is provided.} +\end{itemize} + +Once it starts up, hmmc2 enters an interactive loop by printing the prompt "Enter next sequence:". Any text the user enters between that prompt and the end-of-command string "{\tt //}" is interpreted as a command and sent to the daemon. Thus, using hmmc2 to perform a phmmer-style search of a short protein sequence against a small protein database might produce the following output: + + \vspace{-1ex} + \xsreoutput{inclusions/hmmc2.out} + \vspace{-1ex} + +Here, the text + \vspace{1ex} + \user{@--seqdb 1} + \user{>sp|Q6GZW9|length_10} + \user{YLGPWVQAEY} + \user{//} + \vspace{1ex} +is the command the user entered into the interactive loop, and the rest of the text is the output generated by hmmc2. In this example, hmmc2 was invoked without the "-S" or "-A" options, so only prints statistics about the number of comparisons that passed each stage in HMMER's pipelines and the number of hits found. Hmmc2 remains in its interactive loop until killed with control-c or some other command. \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/Makefile.in b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/Makefile.in new file mode 100644 index 0000000..dc92d50 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/Makefile.in @@ -0,0 +1,41 @@ +SHELL = /bin/sh + + +TMPFILES = \ + relnotes.txt \ + uniprot_sprot.fasta \ + fn3.hmm \ + globins4.hmm \ + Pkinase.hmm \ + MADE1.hmm \ + minifam \ + minifam.h3f \ + minifam.h3i \ + minifam.h3m \ + minifam.h3p + +TUTORIAL_FILES = \ + 7LESS_DROME \ + HBB_HUMAN \ + MADE1.sto \ + Pkinase.sto \ + dna_target.fa \ + fn3.sto \ + globins45.fa + +.PHONY: clean distclean + + +all: + ./gen-includes.py + +clean: + -rm -f ${TMPFILES} + -rm -f ${TUTORIAL_FILES} +ifndef V + @echo ' ' CLEAN inclusions +endif + + +distclean: clean + -rm -f Makefile diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/alidisplay-serialize.ai b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/alidisplay-serialize.ai new file mode 100644 index 0000000..c0bf9af --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/alidisplay-serialize.ai @@ -0,0 +1,3406 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[7 0 R 38 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + Print + + + 2019-04-15T16:08:51-04:00 + 2019-04-15T16:08:51-04:00 + 2019-04-15T16:08:29-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + + + + 228 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADkAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9AeVfKvlh/LGju+j2TO1 lbFmNtESSYlqSeOKrfNNt5K8uaJPq935fguIICgeK2tLdpP3jhAfj9NFUFqszMABuTirH9O88/kl ewQzejY2y3E31eH6xZKqtI08luiiURtEeTwvSj9ASaUNFVKfzz+U0U+pQLosM0ulWlzf3KRWdsSY LS6+qSFalakyAlV68d+61VVZvPf5FwkiX9HJwYLNzsSnpkwvOOYaFSKpGaDrWg6kYqmXl7Vfyr8x apPp2i2en3rwI7NNFbQmMtC6xzIDxryjMkZO1CGFCd6Ksk/wn5V/6s1j/wBI0P8AzTirHPy88r+W pfJ2nyS6TZO59arNbxEmk7jqVxVkf+E/Kv8A1ZrH/pGh/wCacVYVdebfyutNdn0W60GOG7tpLhJ2 ezthGIrW1a7e4U1q8XCNl+AFg2zKtQSqh4/P35Qm2nupNIgitrS9TTr+drO3ZLeZrRrt2k4cj6cQ jaOR1BAZT+yC2Kq3+PvyIWURyNpsIYRlZJrExITMWCKC8S/FWNtvY+BxVPPK0n5c+aLe4uNH0yyn gt5EjMhtYlDCSJJ43Wq14sko6gEGoI2xVO/8J+Vf+rNY/wDSND/zTirFNF0zynpfk3V9Yu9EtriL TrzXLiVI7aBpWjttQum4Jz4LXglFBYDFUtsfzC/Ja4MguLC2sWSYwoJ7GNvUKwidmRoFmXiELV5E H4WNOIriq6f8wPyQj+rmK2tLhLiVYecenUVOUbSh3LxJ8PBK/DVt1oNxiqJl86fkdFdG0k/R63AN DGbBq/ZZuX9z9njG7culFY9FNFVO984/lTa6rf6WdGgmvdPtr+8kiitLY8otMoJuPIpuz80QNSpj boKEqrT5/wDyLCqzLYpV2jk5aey+k8aM8glJhovARsG8CCOxoqmGga/+UnmHVU07RbXT76SSKSZZ orWL0/3QiZkqyA8uNwjDanXeoIxVFeXPK/ll9Y81K+kWTLHqkSxg28RCr+i7JqD4dhyYnFVPzpee QPKNrZ3Wp6BBJDezSW8bQWtqeMkdrNd0b1DFTkls4Wn7VK064qlUHnz8kJLQ3MkNlb+mpaeKTTyW jZXWKRGaOJ0Zo5XCNwZhyrvtiqJsPNn5LX+oCwtY9Pe5aRIApseI9V5hbhGLRDiROyxHlSjsq/aY AqoCLz7+UcwvjBosU506O0nuVisrd2EV/c/VoGVR8TGhSUqByCOu3I8cVVG/ML8hVVJC+mi3dGlF ybEiLgjKteZhC7mRePjUeIxVOPLV/wDlh5lvLq20awsLv6qiytMtrEI3VpJITxJUH4ZIGB28CKg4 qp/4e0D/AJWT9T/Rlp9U/Q3rfV/Qj9P1PrXHnw48eXHauKq/lfzro8flnSI2t9ULJZW6krpGqMtR Eo2ZbYqR7g4qidT8yeU9Us2s9R03Ubu1cqzQy6LqjKShDKaG16giuKpLDp35TQ3JuovK08dwzmUy roGpBubMXZgfquxLMa+NcVRB/wCVbNNdTPoF7JLexTwXTvomquXhupfWnj+K2NEklPMqNuW+Kodb P8szHPFcaFe3cc0yThJtB1ArGYoRbxLEFs1CrHCOK9/euKo7R7zyBotzPdaVot/ZT3NfXeHRdVXk S3IkgW1KsftHqaCv2RRVNv8AHOi/8s2q/wDcH1X/ALJsVY7+X3nPSIfKFhG9vqZZfWqU0nU5F3mc 7Mluyn78VZF/jnRf+WbVf+4Pqv8A2TYqlran5EaZpm0W9aZpJpjI2hamW9S5j9KZqm1rWSMcW8R1 xVBxx/lnHbtbr5evDG8sVxIH0PVJC80EfpRyuXtWLuqfDyapI69cVQ4078rns4ba88v3l+YhKDNc 6DqLyObiR5Zy1LNV/evNIWUAL8RFKGmKpromseStDt5LbSNK1Gyglk9WSOLRtVAL8FSv+838qKPo xVMf8c6L/wAs2q/9wfVf+ybFUg0DXtFPl++0zVtN1R4by91UzW0mjao6yW93f3EicgLYijxSg098 VUJtL/KSa4a4l8rTvO4YPI2gamSQ8Zhb/j17xkr8sVU10L8nFEYXyjKPSLNEf8P6lVSwVWofqtdw i/diqtcad+U1xcPczeVp3ncyl5DoGpVJnDLKT/ov7YkYH54qi3m/Lt72a9k0K9kurhZkllfRNUYl LlFSZPitjRZFUclGx3PUnFUItl+WVLlJtBvbi3uRCn1aXQdQMSR2yuIkRRZjYGaVqtViXappQBVF aPJ+XOi3z32laFfWV3Iro8sOiaqhIlZXkrS2pV2QFj1J64qq+WPMlgdU8zzfV9QVJ9TjePlp1+rF RptkhqrQBh8SHqPwxVMtVufK2rLEup6bc3iwF2hE2m3rcDJG0Llaw7co5GU+xOKpGvlH8p1gkgHl YCGYkyRjSLujVYOf90d2FfniqNtNK/Luzuo7u18vtBcxMZI5U0m7DBzI0paog6+o5f8A1t+oGKtD SPy8C3K/oGVheIIrrlpl6xkjWUzojFoSeKSHkg6L2pQYqpLoP5eGORLjRZrovctdhptKuqpIypGv phLdAgSOCNF4joik1bfFUZoNv5I8vmb9CaPPpwnVEkW30y9RSsRYooUQ0AX1GoB44qh/r4/x5+mP qt7+jv0X9U9b6ld19b6x6nHh6XP7O/LjT3xVP/Kf/KK6N/zA23/JlcVQnn3W9b0Tyvc6lodmNQ1O KS2WCyZJHEoluI43X92Qy/A5+LovUggUxVgeo/mx56h8tXOq2/ltzdm51GOx0+SCZZTHbxI1okiF gzSMJDNJw/ZjdFHL4sVR91+aPm2y1qWzfyvLeWcj2S2t0hktghvYoAscpdZVZjczlKoaKqtypxqy qT3H57eaEtXjfyRqFperEzevKkjWyypCZChARH/vOMXap5Fa8Dir2OJ2eJHZDGzKCyGhKkjcGnhi q7FWNflv/wAoXp3/AD2/5PyYqyXFXYq7FVsrMsTsoqyqSo3NSB7An7hirxmf86/Otppdrb3Hlpjr 1+QlpM0FzDZszOR+7jPqyyLEqMZOTI32TxoW4qo4fnd5jIsifIuoIL0wCrvKPS+sRrIvqcbdjssl DxrxZWVqEDkqiW/M3zldeY/L9tYaC8Om6nFp8+oRXFvO9zbpef3vJlMaIYyxB5jb0nbcdFUt0383 vzEitrpNS8qG+u/9PksntI57VTFYxI1Hhm9aRizyBaoaeG+Kpnpv5v67qev6fpaeU7/To7mZRJPe KQGjad4Si0C8JEjHrkGvwqy0/axV6hirsVdirsVSrRv+Ojr3/Mcn/UDbYqmuKuxV2KuxV2KuxV2K sM8r3nnseWdIEWj6W0YsrfgzancKxX0loSo09qH2qcVTP675/wD+rNpX/cVuf+8dirvrvn//AKs2 lf8AcVuf+8diqnLJ53meKSXQdHkeBvUgdtTuGKOVKFkJ074TxYio7E4qqfXfP/8A1ZtK/wC4rc/9 47FXfXfP/wD1ZtK/7itz/wB47FXfXfP/AP1ZtK/7itz/AN47FUs8tWf5g6LoltpjaXpM5t+f70an crXnIz9P0ef5vHFUz+u+f/8AqzaV/wBxW5/7x2Ku+u+f/wDqzaV/3Fbn/vHYq7675/8A+rNpX/cV uf8AvHYq7675/wD+rNpX/cVuf+8diqhMPOU9xBcz+XtFluLUs1rM+pTs8RdeLGNjp1VLLsadsVV/ rvn/AP6s2lf9xW5/7x2KoDR/MvnjVIrmSHQ9MQW11PZuH1S4qXtpDGxFNPOxK7Yqi/U87fWfrX6A 0b6zw9L1/wBJz+p6deXDl+jq8a70xVU+u+f/APqzaV/3Fbn/ALx2Ku+u+f8A/qzaV/3Fbn/vHYq7 675//wCrNpX/AHFbn/vHYq7675//AOrNpX/cVuf+8dirvrvn/wD6s2lf9xW5/wC8diqnpcfnK3m1 Ce407Tg17cCcJHfzsFC28UNORskr/c16Yqj/AKz5q/6t1j/0nTf9kmKu+s+av+rdY/8ASdN/2SYq 76z5q/6t1j/0nTf9kmKu+s+av+rdY/8ASdN/2SYq76z5q/6t1j/0nTf9kmKu+s+av+rdY/8ASdN/ 2SYql/8AiTX/ANP/AKD/AEZafW/qn13n9dk9P0/U9KlfqvLly9vpxVMPKf8Ayiujf8wNt/yZXFU1 xV2KuxVA69bXt1oeo21hI0N9PbTR2kyP6TJK8ZWNlk4S8CGIPLg1PA9MVeSrp/5/2uoW2j2uoW5i hhluobpxLLCyV4RQXFzPHO5nDyln+MhkQcQKHkqmus+Vvzev9R0ORdXWNLU2ct88Nw9ujGC4ne4j lSFU9X1oZIA1FVSY22UGmKpenlX86LLVtSgsNfeODVbnUZbY3DyXyW0PqXEtqwkuEdYgA9vCIlNf ttuFFFUTbaT/AM5AyalarqWo2DaalzDIxtiElWNbmNm5kInqAW6MrdORdhx2VsVetYq7FXYq7FXY qxryH/vFq3/bZ1P/AKi3xVkuKuxV2KuxV2KvPdX0P8xWtPMVrp81Be6jFeadcm9kMq21bZZLaNXW kC8Y5WPFqb0A+IkKsZuvJP5wWOmaHcQ6/ObzSba/+uSC5ursyyyztJa+pbEMLpkjbh8WwNP2RiqM vNI/5yNRJH0/WtNZ5+Mnp3ESfui1tbq0alYyBwnWcg/FXbx+FV6F5OtdctfL8EOuPz1H1bl2HMyc IZLiR7eIuSSxigZELVNadTiqdYq7FXYq7FWK/wDlVP8Atx/9jmKobyv5b1h/LOkMvmrVI1aytyI1 i0vioMS7DlZMaD3OKpn/AIZ1r/qbdV/5FaV/2Q4q7/DOtf8AU26r/wAitK/7IcVd/hnWv+pt1X/k VpX/AGQ4q7/DOtf9Tbqv/IrSv+yHFXf4Z1r/AKm3Vf8AkVpX/ZDirv8ADOtf9Tbqv/IrSv8AshxV 3+Gda/6m3Vf+RWlf9kOKu/wzrX/U26r/AMitK/7IcVd/hrWa0/xbqtfD0tK/7IcVd/hnWv8AqbdV /wCRWlf9kOKu/wANazWn+LdVr4elpX/ZDirv8M61/wBTbqv/ACK0r/shxV3+Gda/6m3Vf+RWlf8A ZDiqX+VfLl7awajDHr1+R+kLp2Zksas8j+o7GlqBuzHoMVTv9Daj/wBX6+/4Cx/7JsVd+htR/wCr 9ff8BY/9k2Ku/Q2o/wDV+vv+Asf+ybFXfobUf+r9ff8AAWP/AGTYq79Daj/1fr7/AICx/wCybFXf obUf+r9ff8BY/wDZNirv0NqP/V+vv+Asf+ybFXfobUf+r9ff8BY/9k2Ku/Q2o/8AV+vv+Asf+ybF XfobUf8Aq/X3/AWP/ZNirv0NqP8A1fr7/gLH/smxV36G1H/q/X3/AAFj/wBk2Ku/Q2o/9X6+/wCA sf8AsmxVB/4Qk/TH6X/Td/8AXvq/1T1ONlT0ufqU4/Vqfa74qjPKf/KK6N/zA23/ACZXFU1xVbKh eJ0BoWUrXfuKdip/HFXjlr+RvmywtJbXTvNpt7SeAQyWCxSLbgqtyAwVZQW5PcIzF6sxX4i3ZVH6 D5J/NPSvNelrqGvya55eSKc3nqyMqepJapDxlSR5JJV9aMyKOnxtugWjqoLTfyP826Jo1jpvl3zl PpCWltaxusCOYZLmJZRcTNEX4j1WaElVpshFauWxVEQ/lX+a0cyS/wDKxbkvGsAjLROyKYmh5Exm XjKXSJ1fmSCW5UBxVE3/AOUPmHWNGvtI17zI+oWd7d6fcLHKhmFvHaGs6QGdpTym8X5D261VSeX8 rvzX0b9G2/l/zKBpaXNujadaqbWG2t4ebHiHkccHZ/3gRa0AAU9QqyC2/LHzMH0iTUddXVLqwOnt NfXSOZa2F9PdP6Y5dZ4p1idi3+612NdlUnuvyT1xNZ1mfS9eudLTzFdTz3s+n1gEcRa4mRXAlDSS mW5QVC04K9SCwxVk3k3yJ5q0fWor/WfMDawsMd2is4IfjdPAY4RXkfShFuePJmPJidqkYqzzFXYq lWgf9LL/AJjpv+NcVTXFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwfyv+Xnk6Xy1pMsmn1d7K3Z j604qTEpPR8VTP8A5Vv5L/6t3/Jaf/qpirv+Vb+S/wDq3f8AJaf/AKqYq7/lW/kv/q3f8lp/+qmK u/5Vv5L/AOrd/wAlp/8Aqpirv+Vb+S/+rd/yWn/6qYq7/lW/kv8A6t3/ACWn/wCqmKu/5Vv5L/6t 3/Jaf/qpirv+Vb+S/wDq3f8AJaf/AKqYq7/lW/kv/q3f8lp/+qmKpB5isvyh8t3tpZ61H9Tnvo5Z rYsb14zHblBKzSoWjQIZUrzYdcVUtKX8lNURGtJ7cGSvppcT3Ns7UdozRLhonPxxkdPDsRiqpc23 5NWuoRafPJCk88UNxE/rXJhMd1J6UDeuGMI9V9kBerdsVVoNL/J2d5EjubItFyLA3rrskfquy1lH JVj+IsNqV8Dirc9/+U2h3KaY0scLywm7jEZuZUdSjy7SR80Z2SMsqcuTbUBqMVTK3k8gXEtjDA6y TajUWsYM/IsLdbvhIvWJ/q7rJwk4tQ9MVQlprn5T3Vlb3kOqWXo3XpCASXRjkLTv6camKR1kVmf4 eLKDXFUwCfl6YZZxeWZgt41mnlF2OEcbkqru3qUVWIIBO2KpfrGs/ldpAj+u3cVZWmRRA89weVuE 9VW9AycCpljX4qfE6r9plBVZBH5a8uyxrLFAHjcBkdZJCrKRUEENuDiq7/C2g/8ALL/w8n/NWKu/ wtoP/LL/AMPJ/wA1Yq7/AAtoP/LL/wAPJ/zVirv8LaD/AMsv/Dyf81Yq7/C2g/8ALL/w8n/NWKu/ wtoP/LL/AMPJ/wA1Yq7/AAtoP/LL/wAPJ/zVirv8LaD/AMsv/Dyf81Yqxz9Daf8A8rE/R3B/qP6I +sfV/Vk4er9Z4c6cvtcdsVVfK/n/AMiReWdIjk8x6WkiWVuro17bhlYRKCCC+xGKpn/ysPyB/wBT NpX/AEnW3/NeKu/5WH5A/wCpm0r/AKTrb/mvFXf8rD8gf9TNpX/Sdbf814q7/lYfkD/qZtK/6Trb /mvFXf8AKw/IH/UzaV/0nW3/ADXirv8AlYfkD/qZtK/6Trb/AJrxV3/Kw/IH/UzaV/0nW3/NeKu/ 5WH5A/6mbSv+k62/5rxV3/Kw/IH/AFM2lf8ASdbf814qxrzcPyY82XFtc6z5g0+Sezhnt7WSLVI4 WjS74CfiY5V3kWMI3itV6E4qkF95G/5x1vxKt7rFjPHOhjljOsgKUa5+tkfDMpH77fY4qmF1oP5B XcNlBc6vpkkOnRxRWMZ1SMLEIZvXRkVZQFbn1p1G3TFUp1LyJ+Q9xptxa2fmWytbiSFYYbhtVWZU CwiAfuzOtaxLxNCD4EGhCqbjSfyUmtoodT8xabfhdPh02ZHv7aOKRIY/TEhiidFElAtCPs8VK0Ir iqM06D8jNN1WDVdO1XR7O9hma5MsOoQJ6krW31TlKBJ8f7qvX9os32mYlVJ4vKf5CR3PL9M6S1qs cYSE6hGZDLHNDMkskrTMX9P6pCkYoOKhgeQagVVdO8rf84+adbXFvZ6tpsKXKQo5TVUVgLeYTxlS JhQ+ooYnvv4tVVVbQfyFGmW+nQ6zptvBaNePaGPU4Q0bX8izTUrIyt+9jR1DAhWVadMVZjb+e/y6 t7eK3g8x6THDCixxIL63oqqKKB8fYDFVT/lYfkD/AKmbSv8ApOtv+a8Vd/ysPyB/1M2lf9J1t/zX irv+Vh+QP+pm0r/pOtv+a8Vd/wArD8gf9TNpX/Sdbf8ANeKu/wCVh+QP+pm0r/pOtv8AmvFXf8rD 8gf9TNpX/Sdbf814q7/lYfkD/qZtK/6Trb/mvFXf8rD8gf8AUzaV/wBJ1t/zXirGv8ceSv8AlZP1 v/EGm/VP0N6X1j65B6fqfWuXDnz48uO9MVZh5T/5RXRv+YG2/wCTK4qmuKuxV2KuxV2KuxV2KuxV 2KvJr3/nIbRNP1efT7/TZY/ql9e2dzMkyMOFtMIIJIuYiVzPISCpZeHB6k0HJVSH/OSvlI6sLUWU 5tJIbSWGYSReuz3s0kMcfolgoNVRq+p9lqtxpTFUyH57+Xr3TLDU9DtJr+zu9QGnyNKfq7AHj+9h TjK86kvxHAUr1ZeuKpfF/wA5L+SWRZ5bO8jtTbC4eSkLMCInmlUIJPiEaRHkQa1oADXFUyvvzu01 9GsNU0HTZdSivr2SyiWeRbTn6U8VuxjZhIpZnuF4K/GtGqVpiqnH+emltp0twdMnjnD3Jt0kE0cJ gtb1bItNO8KiCYl+XpMux+EtUrVVGah+c2jaZ5m1Py/f6deG5sL2GyjmtFW4jf6xaw3MTPUxtEWM /pgEUJ6E78VUNoX/ADkD5D1e50+0iF5Fc6iH9NXgJQNFbi4kHNSeXHlw+GtW9qHFXXX56+X20S+1 HTLG4uWskt3cTvFDAPrdwbaLnPG1wFDMjGoVunjirMfKHmT/ABFoq6kbV7N/WuLeS3k3KvbTPC29 B1KfR07YqnWKuxV2KuxV2KuxV2KuxViv/lVP+3H/ANjmKobyv5j1hPLOkIvlXVJFWytwJFl0viwE S7jleq1D7jFUz/xNrX/Upar/AMjdK/7LsVd/ibWv+pS1X/kbpX/Zdirv8Ta1/wBSlqv/ACN0r/su xV3+Jta/6lLVf+Rulf8AZdirv8Ta1/1KWq/8jdK/7LsVd/ibWv8AqUtV/wCRulf9l2Ku/wATa1/1 KWq/8jdK/wCy7FXf4m1r/qUtV/5G6V/2XYq7/E2tf9Slqv8AyN0r/suxVQk1e8lFJPJWouKk0ZtI O7GpO973O+KtfpW6DBh5J1DktOJrpFRx+zT/AE3t2xVemtX6Kqp5M1JVVg6gNpAAYDiGFL7rTbFV n6Uua1/wRqFR030j5f8ALbiqX6PbWejWUdlpvkG/gtoZfXij56U/CUIIlZS9+xBWJRGtD8KAKKKA MVTV9f1SSMxyeT9TeMmpRn0kqTXlWhvvHfFVC41G6ubiG4m8mao8tvIJoz6ulgeoqlVZlF/RioY8 eQNOoxVVTWr9HDp5M1JXHRlbSARtx6i+8NsVcut6goYL5M1JQwAYB9JAIXcA/wCndq4q3Br2pW8Q ht/J2pwxLXjHG+kqoqamgF8BuTXFVT/E2tf9Slqv/I3Sv+y7FXf4m1r/AKlLVf8AkbpX/Zdirv8A E2tf9Slqv/I3Sv8AsuxV3+Jta/6lLVf+Rulf9l2Ku/xNrX/Upar/AMjdK/7LsVd/ibWv+pS1X/kb pX/Zdirv8Ta1/wBSlqv/ACN0r/suxV3+Jta/6lLVf+Rulf8AZdirGv8AEGrf8rJ9f/DWper+huH1 X1NN9Tj9ar6lfrnp8e32+XtTFWYeU/8AlFdG/wCYG2/5Mriqa4q7FXYq7FXYq7FXYq7FXYqxLzl5 n1zRr23W0tq2foPcSTfVbi8M8kbr/okf1dk9GR0qVeSoPhscVYHY/nt5tMskl35OvGt2ZykMVveJ LFGlubh+btE6yEcGjUqoDsVpQb4qml/+avnVrDTNT07yrOkVza3s93pdxDM10r2yuYl9SOkaBuAq KO9Tx4g74qgz+fGtW09zNqHk+9h0uFGna4AmUxwRmJGaRpIUjqWmJoSoVUYk4qjX/NXzbfP5bn0b Q0MeqRSTXlhJ6ks37kzrPBHKvpJFNC1uqN6q05yKjcNziqK0b8xPO9zFocWo+XJ7OW9fTxe3z28i 27fXVkaWOOL1HmhaHgvIy1A35U+Hkqgpfzd852s2oWMnlCe8u7WTVxb3MPqQxSxabM6wsInR5D6k fpH4GYHlVT+yFUdpf5vapfTX6P5N1W1WzsZr1HlQ0kaKf0lhoqMVdk+MjdhuArU3VQ8/5oec7rQ7 a/sfLEmnySal9QnW8WWbjGsbO0pVVgMaMQAsrnitasK/DirPfK2qXmq+W9L1O9t/qt3e2sM89vuO DyIGIAb4gN9q7+OKppirsVdirsVdirsVdirsVYr/AOVU/wC3H/2OYqhvK9n57PlnSDFrGlrGbK34 K2mXDMF9JaAsNQWp96DFUz+pef8A/q86V/3Crn/vI4q76l5//wCrzpX/AHCrn/vI4q76l5//AOrz pX/cKuf+8jirvqXn/wD6vOlf9wq5/wC8jirvqXn/AP6vOlf9wq5/7yOKu+pef/8Aq86V/wBwq5/7 yOKu+pef/wDq86V/3Crn/vI4q76l5/8A+rzpX/cKuf8AvI4q76l5/wD+rzpX/cKuf+8jirvqXn// AKvOlf8AcKuf+8jirvqXn/8A6vOlf9wq5/7yOKu+pef/APq86V/3Crn/ALyOKrZNN89yxtFLq+kP G4KujaTcFWUihBB1HcHFVlro/nW0to7a11PRre2hUJDBFpE6IijYKqrqAAA9sVVRZefiKjWtJIPQ /ou5/wC8jiqn+iPO31n61+lNG+s8PS9f9ET+p6deXDl+kK8a70xVU+pef/8Aq86V/wBwq5/7yOKu Fl5+PTWtJ/7hdz/3kcVd9S8//wDV50r/ALhVz/3kcVd9S8//APV50r/uFXP/AHkcVd9S8/8A/V50 r/uFXP8A3kcVd9S8/wD/AFedK/7hVz/3kcVd9S8//wDV50r/ALhVz/3kcVd9S8//APV50r/uFXP/ AHkcVd9S8/8A/V50r/uFXP8A3kcVd9S8/wD/AFedK/7hVz/3kcVd9S8//wDV50r/ALhVz/3kcVY1 9U86/wDKyeP6V0363+hq+r+jp/T9P619n0/r3Lly35c/o74qzDyn/wAoro3/ADA23/JlcVTXFXYq 7FXYq7FXYq7FXYq7FUFrmnnUtF1DTlKqb22mtw0i80BljKVZajkPi3GKvMNO/Jvzlp3qtY+c5Le5 kjs4FvBAzSrDYLMkCtylpJwWRPheqOQzOpLbKt6L+Tnmuw1jTLyfzOLmwsbqa+k01opTGZ7l7hpJ FZpWk9Sl0V5c9x17UVQcP5FearXT7qwsPN8lpZ3lo1q9nDE6QoxiulVwBJV6vco786s3D4mO1FUy 03yR+aNj5msI7rzFcahobR3hvJ1meP05J4BFH8EjySP6boHQdKk7rT41UPp/5GanbWsRt/MLaTer b3kaPYQhlt7i7hWET2xlPKNwo4yFePMAEcHHLFU21H8rNZutNuLeLXTb3ra22s22pRxcbiMPZ/VG P7tok9YkmQkKEJ2K8SRiqUj8rPzJmggurbzxf6beMtJop2a5KqkszQKx9VkJEckfrcSeTIeLANXF WZfl55T1ry5p95DrGqHVbu6nSX6weVSEt4oOTct+bmIsx7/OpxVleKuxV2KuxV2KuxV2KuxV2KsV /wDKqf8Abj/7HMVQ3lfyVo8nlnSJGuNUDPZW7ELq+qKtTEp2VbkAD2GKpn/gbRf+WnVf+4xqv/ZT irv8DaL/AMtOq/8AcY1X/spxV3+BtF/5adV/7jGq/wDZTirv8DaL/wAtOq/9xjVf+ynFXf4G0X/l p1X/ALjGq/8AZTirv8DaL/y06r/3GNV/7KcVd/gbRf8Alp1X/uMar/2U4q7/AANov/LTqv8A3GNV /wCynFXf4G0X/lp1X/uMar/2U4qp3Hk7y7bW8tzc3upw28KNJNNJrWqIiIgqzMxugAABUk4qgDpv kAXUdodfuRdSrG8VufMGoeoyzAmJlT63yIkCnie9NsVRt55T8s2VtJdXmoajbWsI5Szza3qccaDx ZmugAPniq2Hyx5Umhgmh1PUJYbniLaRNc1NlkLp6i8CLqjVT4hTtviqpc+UPLlrA9xc32pwwRiry ya1qiqB03JuqYqhLLRvI9+xWx1u7umEEd2RBr+oyH6vLX05vhuz+7fieLdDQ0xVUtfL3k+7eFLTV r64e4h+tQLFrupOZICQvqoFuzySpA5DbFUUvknQmLBbvVSUNHA1nVTQ0Bof9K8CDiqy28oeXLq3j uba+1Oe3mUPFNHrWqMjKwqGVhdUIOKqn+BtF/wCWnVf+4xqv/ZTirv8AA2i/8tOq/wDcY1X/ALKc Vd/gbRf+WnVf+4xqv/ZTirv8DaL/AMtOq/8AcY1X/spxV3+BtF/5adV/7jGq/wDZTirv8DaL/wAt Oq/9xjVf+ynFXf4G0X/lp1X/ALjGq/8AZTirv8DaL/y06r/3GNV/7KcVd/gbRf8Alp1X/uMar/2U 4qxr/B+k/wDKyfqvr6l6f6G9Xl+lNS9Tl9a409X6x6nH/J5ce9K4qn3lXzJ5dTyvo6tqtmrLZWwZ TcRAgiJagjliqa/4n8tf9Xaz/wCkiL/mrFXf4n8tf9Xaz/6SIv8AmrFXf4n8tf8AV2s/+kiL/mrF Xf4n8tf9Xaz/AOkiL/mrFXf4n8tf9Xaz/wCkiL/mrFXf4n8tf9Xaz/6SIv8AmrFXf4n8tf8AV2s/ +kiL/mrFXf4n8tf9Xaz/AOkiL/mrFXf4n8tf9Xaz/wCkiL/mrFULqms+WdQ0y7sG1m0iW7hkgMqX EJZRIhTkORIqK98VeYj8nvy5jMIh82skUE1pMkbXFm/+8XqCGOpWvBI5BGo7KqjFUbo/5aeRNMS6 RfNzXKXNlHYiKe4tHijVJUnLrFxCF3lQuWYFwWPFhiqWzfkt+W7GX0fOE0RkjMaSG7tnlTnbS2sj CRhyLOs5NT4DsMVV/L35d6JpWqa67+bbSbT7+ayuNL5zxvJbtY3Ud5DH6YZI1iSWKhRftqf2KHkq j9M/LH8r9PMJg8xSRmGOwVEi1FIYw+neuVcRxMqj1ZLp5JF6ciSKFmqqp63+Xnku90XS7OPzJDLc 6Np1xptm8t1bxhhcgASu0allaKnIcKVpQ7VxVBXP5OflvJNfSQ+cLm1F/BBbyRxX8IVFt/R+JP8A Kf6uvIty6ClAMVei+W7zyvomjW+mprdpP6RkeSYzxDlJNI0shC824jm5otTQbYqmf+J/LX/V2s/+ kiL/AJqxV3+J/LX/AFdrP/pIi/5qxV3+J/LX/V2s/wDpIi/5qxV3+J/LX/V2s/8ApIi/5qxV3+J/ LX/V2s/+kiL/AJqxV3+J/LX/AFdrP/pIi/5qxV3+J/LX/V2s/wDpIi/5qxV3+J/LX/V2s/8ApIi/ 5qxV3+J/LX/V2s/+kiL/AJqxVi/+INA/5Wd6/wCkrX0f0Lw9X14+PL63Xjy5UrTtiqZ+VfLfl1/K +js2lWbM1lbFmNvESSYlqSeOKpr/AIY8tf8AVps/+keL/mnFXf4Y8tf9Wmz/AOkeL/mnFXf4Y8tf 9Wmz/wCkeL/mnFXf4Y8tf9Wmz/6R4v8AmnFXf4Y8tf8AVps/+keL/mnFXf4Y8tf9Wmz/AOkeL/mn FXf4Y8tf9Wmz/wCkeL/mnFXf4Y8tf9Wmz/6R4v8AmnFXf4Y8tf8AVps/+keL/mnFUj8xXn5d+Xr7 R7LVLGzhn1y5+p2A+rREGQIWq22y14pX+ZlHfFUq0/zz+SGogGwuNLuf3kEJEVqGIe5YpEGAjqvI r1Ow2rSoqqhYPzA/KVruazu9NjsLqGaaAQ3NjHzdoGjViFjEhTkZl4iTiab0piqK0jzt+TOqz2dr afUDe37JHbWbWdJS0hdQKenSgaJ1Lg8KinLFUAfzF/KtLz6tPoqW9bj0Ip5rW0jhkiBbnco7OP3U SqGkH21DKeGKo1vOP5X/AKMudWg0uG60q1l0+Jr23tIJEddUkSKGSNV/eMqvKA68eYNRxJxVRP5j /kUGWs+nCNklf12sysQEEscL8nMQA+Odf19MVRv+Lvya+oQagr6c9lcrM8U6WnNeNuWWQtxiPEVR qcqcqfDXFVOLzX+Wkvm2PywmkR/XJnWKK4aziWFpWtUveG4EgKwzRk8kAq4AqQ3FVmH+GPLX/Vps /wDpHi/5pxV3+GPLX/Vps/8ApHi/5pxV3+GPLX/Vps/+keL/AJpxV3+GPLX/AFabP/pHi/5pxV3+ GPLX/Vps/wDpHi/5pxV3+GPLX/Vps/8ApHi/5pxV3+GPLX/Vps/+keL/AJpxV3+GPLX/AFabP/pH i/5pxV3+GPLX/Vps/wDpHi/5pxVi/wDh/QP+Vneh+jbX0f0Lz9L0I+PL63Tlx40rTviqv5X866PH 5Z0iNrfVCyWVupK6RqjLURKNmW2II9xiqZ/450X/AJZtV/7g+q/9k2Ku/wAc6L/yzar/ANwfVf8A smxV3+OdF/5ZtV/7g+q/9k2Ku/xzov8Ayzar/wBwfVf+ybFXf450X/lm1X/uD6r/ANk2Ku/xzov/ ACzar/3B9V/7JsVd/jnRf+WbVf8AuD6r/wBk2Ku/xzov/LNqv/cH1X/smxV3+OdF/wCWbVf+4Pqv /ZNiqW6nqvkfVJhNqOj393KEWMPLomqMQiSpOqgm16CWJH+YGKpFeeX/AMqJrJbW10C+03hPBdRz 2Wg6hHKs1vIJEcE2bip48WNKldsVTCSH8r5GjZ/LdyzRSPNE36B1KqyS8ebD/RduXpr9wxVK/wDD X5Tx6vpWq2Oialp11o7FrY2ejanCGHMSBZKWnIgPUihBozr9h3VlU7t7j8u7dnaLQr3k9wbxmbQ9 Uc/WDy/eAtamhAkYCnQGg2xVqWb8uZbe7tpNAu2tr76uLuD9A6nwkFnx+rBl+q0/dcF4eFNsVQ0d v+W4haO40S/u2eaW4aWfQtRLc5mjZqcbRVUfuIhRQPsL3FcVbNp+VRs4rL/DE4tYFljhhHl/Ugqr OaygUtP2++Ko1tR8iNrC61+hr8aqhDC8GiaqshZYmhVmIthyKxOUBPQHbFU0/wAc6L/yzar/ANwf Vf8AsmxV3+OdF/5ZtV/7g+q/9k2Ku/xzov8Ayzar/wBwfVf+ybFXf450X/lm1X/uD6r/ANk2Ku/x zov/ACzar/3B9V/7JsVd/jnRf+WbVf8AuD6r/wBk2Ku/xzov/LNqv/cH1X/smxV3+OdF/wCWbVf+ 4Pqv/ZNirv8AHOi/8s2q/wDcH1X/ALJsVY1/jDSf+Vk/WvQ1L0/0N6XH9F6l6nL61yr6X1f1OP8A lcePatcVZh5T/wCUV0b/AJgbb/kyuKprirsVdirsVdirsVdirsVdirBvzC/M1/J9wY/0UdQQWMl4 ZUm4cHWRY40lVY5WSORm4+qAQGoCADyCqRab/wA5J/l7e3ItCl9Beei08kTwqVRFi9U85VcotNkP IijGhpQ0VX6p/wA5AeX9OKXk9jL+hJLG1v1vFkRpgt3PFDR4VDJGIxOGZnlFafCG64qpy/8AOSfk K2a5F7FeQLCUCMEjfl6lu1xGpAf4WZYn/wAkbVYVxVFedPzrg8txTTppf1mGK1t7gRy3At52a5Rn QCMRzfArGNXkrRST4bqqR/PfT44NXNxo13Bc6dJcQwwOsvFpLSwhvZkuJRCY4CpuPT2LqePKvEgl VH6v+c+jaPq1xYX+n3MkcdlZ38U9nwuC6Xr+mA0ZMbLxkKjkOQNe3TFVGz/P3yRcapFpbx3sN5Nf rpgV4DwWeSeSBObg0X+65HwDDvWiqp/yvHyxONTj0+1up7nTLdrqUSKkUPpgqqs8vJyi1ccjxJTf koIpiqf/AJf+dP8AFujy37WLWEsMkcUkLN6in1rWC7VkfinJeFyorxG4OKsmxV2KuxV2KuxV2Kux V2KsV/8AKqf9uP8A7HMVQ3le889jyzpAi0fS2jFlb8GbU7hWK+ktCVGntQ+1TiqZ/XfP/wD1ZtK/ 7itz/wB47FXfXfP/AP1ZtK/7itz/AN47FXfXfP8A/wBWbSv+4rc/947FXfXfP/8A1ZtK/wC4rc/9 47FXfXfP/wD1ZtK/7itz/wB47FXfXfP/AP1ZtK/7itz/AN47FXfXfP8A/wBWbSv+4rc/947FXfXf P/8A1ZtK/wC4rc/947FXfXfP/wD1ZtK/7itz/wB47FVrXHnpmLNoekFipQsdUuCeJ6j/AI53TFVI jzkeX/OvaL8RLN/uSn3JBUn/AI53WhpiqG0rTfM+labBptj5c0eOytohBDG2q3UhESkkJyk092IB O1TiqzVNG8wapZSWV95Y0WS3lMbMF1S5jblC4eJ1ePT1dWR1DKykEEbYqr29n5ot4YoYPLOhxxQw x20SLqMwCwwqyxxj/cb9hFdgo7VPjiqKe489Oro+h6QySfbU6pcENtTcfo7fbFUNeW3m68EYuPL+ kOInjkQDVbpRWFucYbjp45KrfEFbau9MVVuXnT1BL/h/RvUBqH/SU/IGpNa/o7/KOKuD+dQWI0DR gXBDn9Jz7hjVgf8AcdvUmpxVuGXzvArLBoOjxKzM7BNTuFBZjVmNNO6k9Tiqp9d8/wD/AFZtK/7i tz/3jsVd9d8//wDVm0r/ALitz/3jsVd9d8//APVm0r/uK3P/AHjsVd9d8/8A/Vm0r/uK3P8A3jsV d9d8/wD/AFZtK/7itz/3jsVd9d8//wDVm0r/ALitz/3jsVd9d8//APVm0r/uK3P/AHjsVd9d8/8A /Vm0r/uK3P8A3jsVY19b86/8rJ5forTfrf6Gp6X6Rn9P0/rX2vU+o8uXLbjw+ntirMPKf/KK6N/z A23/ACZXFU1xV2KuxV2KuxV2KuxV2KuxV57+aOjeeJ54tb8s31zbfobStTmSztZZCbrUOMT2MTWu 8Uq8o3U8gTRqDfcKsebQf+cgkuZ7ux1a1LXLXEsYuJSUVGtohaI0LQcEKyR/vfTVankyheRxVFaz 5Y/PHUtNt3TWbWz1uD9IBJbeWWK1AlVfqvOFE/emMhgrPUAblCd8VdLp35/2+ovqC39pcWwjRnsl MfxejdTuY0QxAVlt2jXkGU8urUAOKustL/NjzDovl65vL6403UfSb9IToRaGKVb1H9RrYKvrK8CA KkiCoDBgnOmKorSvKv5v2qWUV9rdtdWsV7azyQxSXKzBRfzzXfK4lZ3lia2kjRYmFNgvw8OUiqHv dD/OmLVb6y07XVhsb+41CWxaRPrJt4nMssLPPJE3FQ7QxJDyJALstVUBVVfSbH/nIFLq6/SGoaS9 r9VuhZKF+IXLLS15ssW4Qgcm2Bq3w7LyVdqHlr85tS8uajZ3GuQ2+oyXMQ02a1f0GS2FsVLvJDHG zSLdOJXUURwnGiqxXFWdeU7XVbXy3p1tqzmTUYoFW4Z29RgR0V3qebKtFZqnkd64qm2KuxV2KuxV 2KuxV2KuxViv/lVP+3H/ANjmKobyv5c1h/LOkOvmrVI1aytyI1i0vioMS7DlZM1B7nFUz/wzrX/U 26r/AMitK/7IcVd/hnWv+pt1X/kVpX/ZDirv8M61/wBTbqv/ACK0r/shxV3+Gda/6m3Vf+RWlf8A ZDirv8M61/1Nuq/8itK/7IcVd/hnWv8AqbdV/wCRWlf9kOKu/wAM61/1Nuq/8itK/wCyHFXf4Z1r /qbdV/5FaV/2Q4ql99FFp9ytrf8An+7tLplR1gnbRo5CssghjIV7IGjykIvi23XFUw/wzrX/AFNu q/8AIrSv+yHFXf4Z1r/qbdV/5FaV/wBkOKrJvL+qwQvNN5w1SKGJS8kjx6SqqqipZibGgAGKoe2s ZLqzW9tvPV9PZuQEuY/0O8RLMFUB1siu7Gg364qiJvL+qwQvNN5w1SKGJS8kjx6SqqqipZibGgAG KoPToE1N2j07z9eXsiL6jpbnRpWCeo8XIhLIkD1InT/WUjqDiqs+mzp6PPzxfr9Yle3gqNHHqTR8 +cSf6F8Tr6T1UbjifA4qp/Vf9Fs7v/Ht59V1B447C4ro3pzvKKxpC/1LjIz0+ELWvbFUb/hnWv8A qbdV/wCRWlf9kOKoKW0aK6ltJfPd8l1CsTzQN+hw6LcSGKEspsqj1JAVXxO2Ko3/AAzrX/U26r/y K0r/ALIcVd/hnWv+pt1X/kVpX/ZDirv8M61/1Nuq/wDIrSv+yHFXf4Z1r/qbdV/5FaV/2Q4q7/DO tf8AU26r/wAitK/7IcVd/hnWv+pt1X/kVpX/AGQ4q7/DOtf9Tbqv/IrSv+yHFXf4Z1r/AKm3Vf8A kVpX/ZDirGv8P6t/ysn0P8S6l6v6G5/WvT031OP1qnp0+p+nx7/Y5e9MVZh5T/5RXRv+YG2/5Mri qa4q7FXYq7FXYq7FXYq7FWGedPyw03zXqUN/d31zbSQR26RRw8OANteJeKxBB5VaIKQdqdN98VYp B/zjfoUQt1Ou6i8cJhMkTC34yejO83xD0+rh/Tc/tJ8PTFVNv+cbNJKUXzPrEbehJCzRvAvJpfWD Sn93X1OFyyVr0p4DFU2078itGsmU/pa+lQQ3kJt29H6uRfWwtZCYOHotRFFFdSviOmKoRP8AnHby ymoPfLql+00hWRxK0co9ZZ4ZuY5qWoPq/popJCqzAdcVU9N/Ip7HU72IaxLPod1osmkokprNG8x5 SSKiKkdWf4yxJrUrTcsVUx8xfkZomtSz3C6tqGnXNzLdTzNZuioHvYuEojV1conN5pVHL7crkk7U VQDf845eWmuPUGsakkAeVo7VHhWOJJZ5ZgsNI6p6f1lxGwPJeoO2Kppo/wCTNlpFo8Vjrd8s5msb iOeT0pBG+nxtFHwidTGAwarUXf6BiqUaz+QMMsGoT6Zr1/8ApK6+stE11KGXldh1lUyBHdQUlYbD jXcq24ZVbZf8476VEYrmXVrhLxliF4sSr6T/ALl4bhFZh63CQTMy8nJVgh344q9exV2KuxV2KuxV 2KuxV2KsV/8AKqf9uP8A7HMVQ3lfyB5El8s6RJJ5c0t5HsrdndrK3LMxiUkklNycVTP/AJV55A/6 lnSv+kG2/wCaMVd/yrzyB/1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVd/yrzyB/wBSzpX/AEg2 3/NGKu/5V55A/wCpZ0r/AKQbb/mjFXf8q88gf9SzpX/SDbf80Yq7/lXnkD/qWdK/6Qbb/mjFXf8A KvPIH/Us6V/0g23/ADRiqU+adC/LLy1pP6VvvKunSWouLW1f0bGzLK15cR20btzEY4iSVeW9adji rGrDzT/zj9dWqzzaNp1lIUaR7abS43kRFHPkzQRTRU4FW2c/aWtCaYqi4db/AOceZnhjjtNFMtwS kER01Vkd+MbhFRoAxd1uI+C0q/Ica4qh9c8wfkZo1pbX9x5dsZdMuFnf9Ix6XbiBFtkV2q0qRlyw ccBEGLdtsVVY9d/5x+fUjp403SRKPSAlOmRiItNNJbhefo7UkhYFmovv1oqs1DWvyStbKy1CDy3Y X2mXiCVr+DT7RYoImuVtFlmM4gIQzPx2BpQ1xVTh8z/kA6cX0fTIb2J0ivrCTTYPWtZHZVZJ+KNG DGz0bi7dDxriqFHnn/nHj1wj6PpscDXBtxdvp1ssRH1D9IiUHjyZDEQtAvMOQrKOQqqnb3H5Jwi9 lvdE0mysrOe1tlv57Kz9Cd72BLiEwlA7FeEoqWVabnpviqBk8zf847i3imisNIuDOqNBDFpiGR1k aNYzxMK0DmZOJagYGo2xVG+SZvye84RxNpXlnT1aWygvjHNp1sjKJxyMTDgfjjDIW/ZIZSpYYqyr /lXnkD/qWdK/6Qbb/mjFXf8AKvPIH/Us6V/0g23/ADRirv8AlXnkD/qWdK/6Qbb/AJoxV3/KvPIH /Us6V/0g23/NGKu/5V55A/6lnSv+kG2/5oxV3/KvPIH/AFLOlf8ASDbf80Yq7/lXnkD/AKlnSv8A pBtv+aMVd/yrzyB/1LOlf9INt/zRirGv8D+Sv+Vk/VP8P6b9U/Q3q/V/qcHp+p9a48+HDjy47VxV G+V/zD8nReWtJik1CjpZW6sPRnNCIlB6JiqZ/wDKyPJf/Vx/5Iz/APVPFXf8rI8l/wDVx/5Iz/8A VPFXf8rI8l/9XH/kjP8A9U8Vd/ysjyX/ANXH/kjP/wBU8Vd/ysjyX/1cf+SM/wD1TxV3/KyPJf8A 1cf+SM//AFTxV3/KyPJf/Vx/5Iz/APVPFXf8rI8l/wDVx/5Iz/8AVPFULqHnX8u9SgW3v7mO5hSS OdY5bedlEsLiSJwDH1R1DD3xVjzWP5BP6vPS9PYTCkoaykPKjK3eP+ZFP0YqqJB+RCMrJpunq6ce EgsX5gogjUhvS5fCqKBvtQYqiBcfkoLZLX6nY/VoxKqQGykMYWcBZVCelx4sABTpiqHuYvyOuAxe 0tFlMbRLOlrMsqB3eU8HEfJSJJXcEdGNcVVNFn/KTSdItNKSf61bWdvLaR/WoZpKwTyLK8bIIli4 80UqoSi0+EDFVOeD8h7iW7mm0zTpJL5uV6zWD1mJf1Ky/uvj+PffFWzD+RBBH6N0/dlk/wB4XHxp GYlYfuuqxniD2GKoi4u/yYuLk3U9taSXBWNfWa0lLgRKqJRvTqOKxqu3YU6YqlH6F/IoavHqMccU Sx24tTYR28q2joq8FLxeluVWgpWh4oSCyIVVT3QtY/KTQJZpdFEGntPHFFKILedFKQLwjHEJxFF2 2G9BXoMVTj/lZHkv/q4/8kZ/+qeKu/5WR5L/AOrj/wAkZ/8Aqnirv+VkeS/+rj/yRn/6p4q7/lZH kv8A6uP/ACRn/wCqeKu/5WR5L/6uP/JGf/qnirv+VkeS/wDq4/8AJGf/AKp4q7/lZHkv/q4/8kZ/ +qeKu/5WR5L/AOrj/wAkZ/8AqnirGv8AHnlT/lZH1z69/o36H9H1PSm+39a5Upwr0xVmvlP/AJRX Rv8AmBtv+TK4qmuKuxV2KuxV2KuxV2KuxViPm78zdB8rarb6bqUFy8tytu8UkIhZD9Zu0s1X45Ue qvKGb4fs+J2xVQT85/y0dFZdZDB+AQC3uuR9VzFHRfSr8ciFF8W2G+KqR/Oz8tkvZ7abV0hiigju Yr1wfq86SfWOXouKlzEbORZNtm+H7W2Koi7/ADa8nRWNjqFrNLqOn39wlrHfWsdbdGckcnllMSUV gVIUluQK05AjFUNb/nf+W08sKLqbKs0UcqSvBOF/eI8gQ/BXkscTu21FANSMVRGofm15RttOTUbN 5dVtGkuFkks1Wkcdnx+tTs07QqYofUUsyk7GoriqGj/O38v3rC13ImogRu2mmJnnEc5X0ZCY+cQS RHV1bn9k70O2Kqa/nn+X0kj+ldSyWqEE3wjpAYRyEs4Zip4QunCTbkDSild8VTWT8zvKMS3lzPde jpVnp9jqr6u/H6s9vqUksVt6fFmlLs9uw48PDxxVDXP5yflvbwtLJrKVHr8YhFN6j/VU5zcEKAsF G1RtXatdsVRPlf8AMry95juoLSzE0V3MlwxgmQK0b2rRiSN6EjlxnRlK1Vh0OxxVleKuxV2KuxV2 KuxV2KuxViv/AJVT/tx/9jmKobyv5k1hPLOkKvlXVJFWytwJFl0viwES7jleqaH3GKpn/ibWv+pS 1X/kbpX/AGXYq7/E2tf9Slqv/I3Sv+y7FXf4m1r/AKlLVf8AkbpX/Zdirv8AE2tf9Slqv/I3Sv8A suxV3+Jta/6lLVf+Rulf9l2Ku/xNrX/Upar/AMjdK/7LsVd/ibWv+pS1X/kbpX/Zdirv8Ta1/wBS lqv/ACN0r/suxVKtVjttWn9fU/IN9dzcEi9SVtJZuEUonjWpvuiyqHHvviqVx+UvKcbQtH+V8ytb lDCwXR6qY5DKlP8ATf2ZGLD3xVuPyr5UjBEX5Xyx1T0iUTRlPp0Ycai96Hm1R4mvXFUXa6Vo1pHD Fa/lvcwRW8ongjjXR1VJBvyVRe0G+/z364qhP8J+U6KP+VXzUQMqDjo9AHQxsB/pu1UYjFXeXfLt hoWlx6bb+TNYuLeKSaVPrM+lSH/SYvRlUgXyqyvH9oEfE3xtycliqqzeXfLc13NdyfllMbm4QRzS hNGDOi0IVqXoqBxGKrB5X8rCJYR+V8oiVeCxiPRgoUlmIp9d6EuSfHviqIutJ0a7kjkuvy5u55IY kgieT9EMVjiLNGATffsNI5U9QSfHFUrvfJHlu71CyvT+X+owNZi4VoYX0hI51uv71Zx9d5OGNa7i tSDVSQVU40ix0/Rr367pX5f31lc+m0PqQvpSfA5VmFBfcdyi1NK7DwxVOv8AE2tf9Slqv/I3Sv8A suxV3+Jta/6lLVf+Rulf9l2Ku/xNrX/Upar/AMjdK/7LsVd/ibWv+pS1X/kbpX/Zdirv8Ta1/wBS lqv/ACN0r/suxV3+Jta/6lLVf+Rulf8AZdirv8Ta1/1KWq/8jdK/7LsVd/ibWv8AqUtV/wCRulf9 l2Ksa/xBq3/KyfW/w1qXqfobh9W9TTfU4/Wq+pX656fHt9vl7UxVmHlP/lFdG/5gbb/kyuKprirs VdirsVdirsVdirsVYz+Yb+cE8v18p8/0t6q8RGsDEpxb4S1xyRAzcQX4OR4UqwVYFH+Zf5yXd/rF tp/lO3uH0u5a0aEMnJZHtklj5SG5RXVJJgGZR8SgkBW+EKq8Hnj8+JLeeRvJdusy8VhhdwihnkIL M6zyFlSNSx4pUlgB0+JVW1HWvzxs9du3sNKW/wBJlukSCO5W3BhjZnBCLDJG7IicWMjSMW2HFNxi qVTfmZ+cmjSadDrPlqIW97fx2X150NQpSN2k4QSvyZ2Z0jQAH4f2mNMVTnzBc/nTFqN7d6GpuoEu LhU011to4lS3ZGtfTeREklS6jkpMRLVCrcSDtiqXHzb/AM5AzgkeV4oPrJghEatEGtkeSdJ5wzyy K7oohcA/D24muKpn5T1385ZdZs7bXdG46bdKRfXhMEZt+EVEaBI2kq0rfG4kqFNVHYYqh7fzV+d0 elaRBH5bFxeDT7RdVvr70RJJqLlFuikVtLFGsUdWapK8uwpviqTxfmF+devu8+jaFHbw2N7cwSW6 orsxgaMRx3LSyIAHDSchEeSkCtOhVereTrnXLny/BNrkTQ37S3P7twBJ6AuJBbGQKFAdrcRl9h8V dhiqdYq7FXYq7FXYq7FXYq7FWK/+VU/7cf8A2OYqhvK9n57PlnSDFrGlrGbK34K2mXDMF9JaAsNQ Wp96DFUz+pef/wDq86V/3Crn/vI4q76l5/8A+rzpX/cKuf8AvI4q76l5/wD+rzpX/cKuf+8jirvq Xn//AKvOlf8AcKuf+8jirvqXn/8A6vOlf9wq5/7yOKu+pef/APq86V/3Crn/ALyOKu+pef8A/q86 V/3Crn/vI4q76l5//wCrzpX/AHCrn/vI4q76l5//AOrzpX/cKuf+8jirvqXn/wD6vOlf9wq5/wC8 jirvqXn/AP6vOlf9wq5/7yOKu+pef/8Aq86V/wBwq5/7yOKu+pef/wDq86V/3Crn/vI4q4WXn4io 1rSSD0P6Luf+8jirvqXn/wD6vOlf9wq5/wC8jirvqXn/AP6vOlf9wq5/7yOKu+pef/8Aq86V/wBw q5/7yOKtfVPPtafpvSailR+i7jvsP+ljirf1Lz//ANXnSv8AuFXP/eRxV31Lz/8A9XnSv+4Vc/8A eRxV31Lz/wD9XnSv+4Vc/wDeRxV31Lz/AP8AV50r/uFXP/eRxV31Lz//ANXnSv8AuFXP/eRxV31L z/8A9XnSv+4Vc/8AeRxV31Lz/wD9XnSv+4Vc/wDeRxV31Lz/AP8AV50r/uFXP/eRxV31Lz//ANXn Sv8AuFXP/eRxVjX1Tzr/AMrJ4/pXTfrf6Gr6v6On9P0/rX2fT+vcuXLflz+jvirMPKf/ACiujf8A MDbf8mVxVNcVdirsVdirsVdirsVdirsVeQ6p+Vvnqxvbi58ua61smq39xLdw2ymIQi6Dcbp3aZZJ jCW3RmbtwC0GKpnpH5b+fYI44dY84Pq8Itp7acSpcRCUyQ+lFI6RXCbxglSAfj+2f3g5Yqk8H5Ie bLX0YLTzdJDpsbxS/UESSKJWju1uQipFIilAoZakVJapxVWtPy9/NJNTuNNvvM1xe6Lc6HcWQvvV ZDFfXKyK0/Bnkkd1ZlZK/CF6FeNGVb1f8lvMfK6uvKvmUeWbu7lMnC2gLJCkis8kCOjwsyG5nml+ Id02+DdVRvfyU87XGpW8yedZorK0luJ7aAxySPHPPNMyXAkaWpljiuGT4qh+jfDtiqYaR+U3max0 NNNuNfjv0s7nSbrS7e4gJtrY6WVZljQNyUTFf5tvvqqhtS/Lv83Yjqeo2vnWW8u5UuXtLEI8ESyT JIqpGvrBFWP1FKByaMteQr8KqWaf+Sfnx0mvb3zQ51DULQW1767SzTBWgnQcpQ/Atb3E6zxcUorp QEci2KvbsVdirsVdirsVdirsVdirsVYr/wCVU/7cf/Y5iqG8r+StHk8s6RI1xqgZ7K3YhdX1RVqY lOyrchQPYDFUz/wNov8Ay06r/wBxjVf+ynFXf4G0X/lp1X/uMar/ANlOKu/wNov/AC06r/3GNV/7 KcVd/gbRf+WnVf8AuMar/wBlOKu/wNov/LTqv/cY1X/spxV3+BtF/wCWnVf+4xqv/ZTirv8AA2i/ 8tOq/wDcY1X/ALKcVd/gbRf+WnVf+4xqv/ZTirv8DaL/AMtOq/8AcY1X/spxVC2HlzyjqMUkun6r f3kUMjQzSW+u6lKqSKAWRil2QGAIqDiqpaeUvLV7axXdnqGpXNrOokguIdb1OSN0YVDI63RVgfEY qpR+XvJ8uoS6dHq18+oQcTPZrrupGZA45LzjF3yWqioqMVREPk3y/MheG91ORAzIWTWtUYBo2KOt RddVZSpHY4ql82m+QIL99On1+5i1CNo0ks38wagsytMyLEDGbsN8bSoF23LADriqPk8oeXI39OS+ 1JJODS8G1rVAfTSgZ6G6+ytRU4qoWfl3yffVFlq19dUiiuT6Ou6lJ+5uATDL8N2fgkCko3RqGmKq lh5W8rahZxXthqWoXlnOvOC5g1zU5YnXxR0uirD5HFVt75Y8qWIiN7qWoWwnkjghMut6mnOWV1jj ReV0Ks7uqgDqTiqrb+UPLlzGZbe+1OaMO8ZePWtUYc4nMbrUXXVXUqR2IxVU/wADaL/y06r/ANxj Vf8AspxV3+BtF/5adV/7jGq/9lOKu/wNov8Ay06r/wBxjVf+ynFXf4G0X/lp1X/uMar/ANlOKu/w Nov/AC06r/3GNV/7KcVd/gbRf+WnVf8AuMar/wBlOKu/wNov/LTqv/cY1X/spxV3+BtF/wCWnVf+ 4xqv/ZTirGv8IaT/AMrJ+q+vqXpfob1eX6U1L1OX1rjT1frHqcf8nlx70riqeeVfNXlhPLGjo+sW SutlbBlNzECCIlqCOWKpp/izyr/1ebH/AKSYf+asVd/izyr/ANXmx/6SYf8AmrFXf4s8q/8AV5sf +kmH/mrFXf4s8q/9Xmx/6SYf+asVd/izyr/1ebH/AKSYf+asVd/izyr/ANXmx/6SYf8AmrFXf4s8 q/8AV5sf+kmH/mrFXf4s8q/9Xmx/6SYf+asVd/izyr/1ebH/AKSYf+asVeTal+WvlNtQ06bTvOUc dvHdTTX8TXlsiCKW0ktwtvCiGNAzMhlj+FJAtCOlFVOP8nfy5imtpYPPVzD9VREjjjv7URsI4VgC vFT0yjItHUKAwJU7dFUx1v8ALX8ttWuTdSebBbzjj6X1e6tIkVhZNYlyiAKzGN/tHcdK02xVJ9a/ Kfyp9VuzoXnOCO5u7h5HiubuBYRDLdC7eKsP7wqrqvEE/ZFKqSHVVler+Ufy81WW6muPMkEM08l4 8UltdQRlBf28cUqtyZw4WSISx1+y1PCuKpDH+U/5fI1mV88zKtm0Tpxu7IM/oJAsYkbjU0Nsr7U+ InFVXy3+Vn5b6Bqul6haecpHbSktY4rdr22WF1s/W9PmkfDqLhuVNjViRVicVXXX5a+RLuDT7e68 8ySwabHFb28P1u0SL6vDNHMImjQKjh2i+PmGqPkMVSSx/J3yjNNMde85292kd1HNZyrdQSSyQxSR OFuPWDKKi1hXivg55cXCIq9N8knyj5X0JNLXzJa3ziR5JLua4gDuW2BYB6V4qKnuanviqff4s8q/ 9Xmx/wCkmH/mrFXf4s8q/wDV5sf+kmH/AJqxV3+LPKv/AFebH/pJh/5qxV3+LPKv/V5sf+kmH/mr FXf4s8q/9Xmx/wCkmH/mrFXf4s8q/wDV5sf+kmH/AJqxV3+LPKv/AFebH/pJh/5qxV3+LPKv/V5s f+kmH/mrFWMf4k8u/wDKzPrP6Us/q/6F9P1vXi4c/rVePLlStN6Yq//Z + + + + uuid:2419597f-dfe8-1744-8140-10f5e284ce7e + xmp.did:cce2ff75-a5e5-4773-986c-333e4c0dfa52 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + uuid:8ca5eff3-8788-4c46-8e2c-f7e0e296314e + xmp.did:163ff271-ed2b-4717-ba50-993d8d7630e2 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:163ff271-ed2b-4717-ba50-993d8d7630e2 + 2018-12-04T15:11:07-05:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + saved + xmp.iid:cce2ff75-a5e5-4773-986c-333e4c0dfa52 + 2019-04-15T16:08:29-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + + Document + Print + False + False + 1 + + 612.000000 + 792.000000 + Points + + + + + Palatino-Roman + Palatino + Regular + TrueType + 13.0d1e2 + False + Palatino.ttc + + + + + + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 15.000000 + 100.000000 + 90.000000 + 10.000000 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000000 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000000 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 20.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 10.000000 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000000 + 95.000000 + 30.000000 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000000 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 15.000000 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000000 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000000 + 100.000000 + 35.000000 + 10.000000 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000000 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 20.000000 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 40.000000 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 40.000000 + 45.000000 + 50.000000 + 5.000000 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000000 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000000 + 65.000000 + 40.000000 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 40.000000 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000000 + 50.000000 + 75.000000 + 10.000000 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000000 + 60.000000 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 40.000000 + 65.000000 + 90.000000 + 35.000000 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 40.000000 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999400 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998800 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999700 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999100 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999400 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998800 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999700 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999100 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998800 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000000 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000000 + 90.000000 + 0.003100 + 0.003100 + + + + + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 9 0 obj <>/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 43 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>> endobj 40 0 obj <>stream +H‰ŒVMsÓ0½ûWìÑ&ŠVß:ÒP` )ìáÒrH[7òAâ\à׳’7V“É¡™®ÞîÛ§§×޾Œa4s¸x7†ŒCø |ÎF +³:Ce™¬” ½†! +RÀ¶ÊŠì¢l¿²QY†/åS†¢ù¥å™“JƒUš9ŽÊe–ó¿Üå +îÿìªún0(f—e&¬bÖ'=7E§˜°Øv•±ëuOKÅóÆõ÷Ô’§‹íÚO°Î0¡ì°¹Í?.—OÛZæ!_/;ܾ—Ÿ²!zf¹€¡`Ú+(³|Ò»€ìÒÚ´4„ÕL8cüqQË€H» HÍÐ8R%ÓfÏ¿Ø4ôÍž¾ƒ‹}ÎLìÊŒò‘~±Ù­;çhAòkGcèÀm~5†9ȺѢnXÔpÝÐÕĬŸ.§&–ŒbˆJÄÛÿú´˜¯*(vÛùjF®ß`#%¬·À[=c´•ÇcÚ¢Âþ"§]4÷ $Ý„R§Ù“éÐjÐdb/iZ`?YžfÏ™ò6nyã—q}È¢‰&ã¦1Ùú±Zô`šãÃýyͤÅxþm]mÎS•Ö—.!\,ªW„“t—g\»áô½dV…»ù}þµÓázî§-ê”'BQ¼²ºžÕ^D–eNªš8ä9$VÓåü¿ <†'2ÝΧ÷‹ +®ªÕl÷cÿLÈ +ã“£´‰/ŠðÓ‡‡\$ÀÃíµnÑUýÎR >æ•¢$ŒøbÓC^'ᆶöÕþÉ™M³ç®K<Àȧ¥CǬzAƒàkÚ=ÆÕñ¡}¦J{"6-)ÁInÊ?F?Ý>6:71;%äU]­*x¿˜Îj‡1÷º±RZÙ“þG"o‰½r.ˆ šàHØ¿ãü8{ÌÝ“«N’)Í›\½Þu@&Øå„þyø'À{ã÷³ endstream endobj 43 0 obj <>stream +8;Z\7>B7V8#WrZRnaUam:,?e*@hFM.a4#nf9*2r864].I+,!r8k3G!4rj86q3C82p +*9&]/K73A<$Bh@s;SIC6PX=,flq2[N?h@mR`0&8HSB-qMi&RIoOY??6CrR8'C!:-q@OHV45;&I5d'e6b,2;0>Z=h/T +lDrlm*/5t;=7Rp'T,ZXJHq+6_@=;]PTH*R-@dY32>/=4n6YX+=kPZZ@N1e,@b585] +IO-\`*:pB9rQ"?HigF;.HZZ+`'oY3F2JM5&WirIJA$ZK6#Gf)R'kiar~> endstream endobj 44 0 obj [/Indexed/DeviceRGB 255 45 0 R] endobj 45 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 38 0 obj <> endobj 46 0 obj [/View/Design] endobj 47 0 obj <>>> endobj 37 0 obj <> endobj 48 0 obj <> endobj 49 0 obj <>stream +H‰„– xÇÇÿïÌ䨢µ;óCDqÅÒ[Aì´Ñriõµe$‘hB…¶ÔN*·ô¶¥ RU7Rµ¯-±Ô²ÈI޵v½ôœûžïœ¶¸ÏÓ;Ïó¾óÍ;óÍwfþ3ïï$'¥Ä *¦Ab@ÿÁmá-ØÂ£"‘ŸP(àŸ51Ùðv?çÏΛ8*Á×nÅc&ŒŠO‹Ý·~þn Z6Ð7/.&"Ú‘sm +0l8z)ŽÞñÃ2Ù5‰KHNõµ· ãÇEEÐãð^@j·“"R½ý™Ÿ³3Þ‰Hˆ ÝZ´‚ÛÛ™8nB²»xŽ%<ý‰I1¾ñK:³Ë…T‡(~P"OÌáÈ !Á +Í¿Í;£ ÑAh†Ð-ÐA+£5Úð´Ã‹ø+^B{„ :¢BÑ]ЕWÞ=нÐ/ã„¡^Åkè‹~øúc^Lj7ñw¼…AŒ!xC1 Ã1#ΑˆB4b‹QˆÃhŒÁXÄ#ï`1I˜€d¤`"Þe Ó0 “ñ¦ Sù<¾ð!¦c>ÂLÌÂlÌÁ\ÌÃ|, ÝÈÀÇX„LüŸ`1–Ð6ÊÅg–ó´K±LUbA³±+°’ò°ŠvªŠø +k°ëð5Öc6âl·،a ¶bþÍçe;òT]ìÀ÷؉]Ø=Ø‹}Ø8ˆC8Œ#ø?â(Ž!Çq'q +?á4Îà,ΡçùÞ¢Å(ÁE¨Ê›XÊXÌ +¼°‚UYŸt + FÔ˜ZP½KSi!-¢lÊ¡´•vÑ*$ýL÷EÑ@hÑN´oŠ!bœH3Å|±ˆOð÷â€8"މBqC*é/«Éš²Žl(›É6²ƒì.{Éþòu9H¦ÈI2]Αód†Ì–9r£Ü.wÊCò¨<.OËyAÉyKTQj¬JQ™j©Z¡ÖªoÕvµ[W§Õ9åPWÔMu7 ÜúOëçÖsÖ«ÃzÉzÛú‹® «éçu#¤ƒu{ÝU÷Öýô =DÕÃõ(=NOÑ3õB½D©Wë z³Þ«Oê3ú¼¾©ïi—QŨjX »d´6Ú.F/#ÑH3Ò©Ælc±ÒÈ1ÖÙ¤ÍÏVÉVÓVÛf·ÙZØZÙFØFÚ¦Ú…Ýb¯f¯a¯o·Ú[Ø{ÛÃìö˜ÆÕ³×<èlýÐýÈâªîªíªç +q…¹»Ýæªhj` ‹j•šPKФTSƒ,ZMXƒ´‡5("'Ý¢‡¢®°Š¦Oi05Ø.vˆýâøQœe -¬A€¬-ÈÆ²¥ ‘ÝdOŸɦÓYƒòc¹B~%¿‘yr—<,óåOOh©Æ¨$•¡«,µF­W[ÔN•¯N©³ªT]V7Ô€‘VX?³f±¬eÖËÖ;º¢®®ëjC7Ó­uˆî¦ÃôŸ#uœNÔÓô,¡?ÕY:GoÔ[ô~}ZŸÕ…úŽ~`Ãß0 #5hkt0BM ’I¬Á4cŽ‘e¬6Ö>¥AS[sÖ` kîÓ ÀÔ ÈÔ Ümj°æ ÀÔd Ú¸^15àËà¾ï.s;<¹•íÛuNu䮥ÑP5ƒèà œ·š°·ºpv«ýîb†Ûp×qWv[àts\Ç\GùýÁa]œ“]ó̧÷8¶Ö½Æ•âáÂÉv¹`zÐa¶Šf¿mÛw”+:¡•a}›ýŸŒl–Û«Ë€²øK×.]-‹¼ä,ã/;-lLC§g~g6r¢œÏ[9¯ÎÙ°|3¸|©stùžò{ÞyÊ“8®y¦à‹«¼‘’ÅŽ»%3¸Nu u vDŽ7ƒ|}»Ö’ïµ…Åc<íÒ¥Ÿr4®xK©(š //J.,fµ.yT4³hjÁÍ¢aE/_Yá$à×ï›_¿ ¿zª‰¥i>ȤóÞŒ`‹e;úìZŦ?øgû!¶˜~3[žØëEä‹ì žuÂôù¿E=^8Ù®?3›S®”«8O­—›ånyïÈ)¾¥²L^–WåuyCÞòŒ“7ž|K–±q\>”b«ÎV×Û§ ¶VOEuTo©D®=¶ÈŒ,SÛTž¯7÷÷qæÚÔ&•û[Ÿ/¾ImöÖ¿GÖ˜>Çôëþw—ÔϼÿÖ1˜nÏüºÌŒ[Àt[Ê”ZI³˜t̾LÜÁ]æÝ¦ß¦Êm,c†ÝÇ=<`¶}ÍD:À,óP6ƒ9{„I{uÌǨ+ÌÝ“&§60o1/O›´ŠÃ5üÌ4ÃDË4Žgg1‘Ç3“=DNa&{ˆ|•™<‰©<™‰üó1›©œnrù:n —IRäGª€_ᢊT‰*S¸ äOUiŠLÄCüBõ©¥3ç.Ó +¢f2gèjÎükÉlüfS0µ¦iô>µ£åh™ŒR8¨=…ÐtšA(”:Ó\šG]¨+u£îÔƒzzèM½¨7}D3)ŒúЫôõ¥~x„Ç(C9¶S4ßõX'.ɹ’dQCÔµdŒϬ¾è#u S»Øbé@ã,i<%ÑJ¶t¢šÈlþR…R¶ô£•–ö´ŠV«N”F“h2­·4°Ô·ü—õ*oâ:âûV3O+[€%|"[h¥Øßøk¨ýa›r¤P `ÌÑûhÃÑBH¥¸N •@“Ò–Ó¤‚rL¨›†’Ã.)s•$`HHiiZ"ú[É>ÒÿÚo¿Ù}»oöíü~óf&E:YWorbëQÇsøœlåröójnàýü._“gy1/á¥ò¿Ã×ùÊ!äÚïb‡\»‰6Ò ô"mAÖ}‰¾O3¨–~N~I£¨†ÆÒ8š@“‘¦Ñ÷h6ÍA†žKóèIšO?¢E´”~L?¡åTOOÓ3´‚VÒ³´ŠVÓ/i+m£íÈã @ Ò!:B¿CFÿ=£?ÐqzƒNÐ[Èï'‘]N!¿´ÒY:Gçéý….!óì¦÷i²Î‡t™®P]Eþ¹F¯¢*x›®£Jø„žG>ZG7h=ݤ ô9*ˆ4‘öÐ:HOÐQšI¿E.k¢Òëô½I èZHïÒ2zêPWü”N#ê>VûÒ$ÄÓãô+õªúGö»HÓqkQs,¦fZB-jHý€×òó¼‘×ó^Ç/ð‹ük~…Ã{x/8ÈùæF>įòQþ#·ð)~ÿÄ'ù4Ÿáù¾ÊW¸/ó þŒoñçü7¾ÉÿàÛ\#…T$K“$©J³Ôx ÐÛ üÁf`ø>Pû+p»Ë!ÞÁ;ÙÉ]ÙÅ:»¥KêÒ-ÓeW>Îoð›|‚ßât°¡|è-½2Mfðy¾Àg¹•ÿÌewÙMfò¿øßüÿ“?æøï|‡Gó öŒ92[¦J)cù1γÁ§ÈG¤G죣R¥\Ê&=\«¾Ž}ͨ[¡ª|MYN)Ê.±ŸœÔ•̦ò ÅS‚r›’¨ %K%’EÇÅAÓ5ÔÈŸ‘b¨uGÅkd5-2*]S­i1ª“uè¾¾  Uÿ@eªàÓØ­R¿lÂîŠ<€®ÇT”ÌAÅ2¸z+ýAqwYP©H9„þÄ4ftVP™.W唊€‹5é:4S¦«*`J­Ríñ£²¨ï7¾ÞUåšžN²DÓJ,Ññ±]…w ¨¿Yâ0SÌ@ã¿Ýw¯˜öð3J‘x¢yD1‰í$p:é§“ÂGwH1¤Ä‘5‡±Ë$)é6{qP±FbÁŠyÖ{óŒ§V̳bžó¬˜glR‡”Š?^|ŸÏ…†c +#|ö"h“±ŽFxаíHÂYšÂfkà“†×4ðIŸ4R)5R)5R)5R)5R)5R»ÇìÿÑH„Ù_7ÒÎl ÌÖÀl@ÞĶ\ˆèYг° áÞ"ƒÞ¥¢°àJ36Äü<_û4{ Bäç!"¤Ù©âL‹É£ÍiE½±tìÒ!+çu«¬°ÆvÌ_¶bzù¼l»·´´O¯q³w›8æÒªu¡/UÍéúXvJ]Üö¹·N~zmLrÔ Þ5}\]AfÚ”UÉ™{ ß6¢S¿eCæ¶­ëîç +^©d+ùpA;>q>qpý«$Ö>a d<0e dE ͤ–0Y­À·ÀÖƒ8A%º£%rMÁ5%'òÜÝÕ®»ÛwïtD‹^X—ì f¯¯ÈÞ9;Ò¬"ì‹d\BZ†ˆ‹MˆÇaÄ‘Ð;KE”oòEw”–sûWÚ]|¤1:c`t’Yåº&ÓĪüNÒž¶úÌœ¡Ub—eFèÓ^¦h«-³ÿ þÒ·ê¤È¶;É:/ZñH³y1ýeŸí©,6ÑKŸ¨Ç7‡z"9—!žöñÅ…ÿ¦øY#x.•”0—£ ý‡úªmê¼Â÷õ½¾×vˆDZˆÛqBâØÉó¶C’JHC R‰` Â(-: jG)…J°­cÓªM›&HV¤iëLS]íG×u£T‚©û±“²©­ˆÙsÞ{\ÈF;±?“õêž<÷#÷¾çyžsN ]½Ã vž†ç‡áùaP&œöü0DW¦ +eª¼æ°Jª#…ÉŠËí¡ÐNñ3qFÊäeÇ•ëöØq.-×JÆ–ïÝü—Ÿo½´Rm¬èÛWkÙçàöñ 'Ÿÿë¦îÆííÇF;ízâxGì´éwMç6ž}É‘å GêæE­ |{‡?ÜÓÿ{~Õ8Øôüªö] žÛø•á[‹_Û¶öø’¥ÇV.Ù´Zô ‚l5ŸE:*…sé<Ø(¶‡iñ‹ Q)¥`ó´äV@­syrçqµ2PÁ‘¤¿@‰$™¦D·®È(²š—ª¨³ÖYÍhIwT¾Ôš±H”ï£èï*)òæ ^ö&öƒ->gE×ë±ÔÕá*‡}ïäÛÛæZ2<Åý—V¬gO²Ï>oaÞ¦â SM?kºëšˆùݬÅfk1Ùœv·ŸER÷Z³[3ÍÖb5•šÖ‡‰ÂlAžÅè3Ängíã €‚é0Çÿ8¯nKÒ~rD ‘HZ#\F"x@‰@#®­ãÚJh÷%p_"}_÷%p_÷%p_÷%¸¶ü‚eb }…Mðó»ÛðßË“Ú1Šc4¤Å ˆû/™ÒžƒÒã0äÜI€Ó|±COç\Kq vÞ¨E¨àoT¡¿Q9þ»“«ÚŒÄ·] tqˆ'™EÁô#AþSÝÕžb. »I)¹ŽüÅ>'꥞·,.þ—®$Å‘ûµ˜]’­²dSìE[Š"I6üÒùÕêêm}»N®üäÅÁ“©›¡3õåÏ^~ãLïR«ØÙ3zaÕÇË›CÞ,gá/«Mk6ŒöäfÊv7™­ ÷,ÚÙ«º3Ê{Ÿé|ùãÚR‹ƒ±¡¶çžÊêyënCN÷·‡O´J©CQ>C´Ý»m~Úü}!ÈÞ¼¨Ò¶´+{áÊ^¸²®ì…+{aÞ´+{áÊ^m¦â»™I»™iØo‰IÛïLÞÛ¡]1#ÿaË´æfA‡UŠU‡ÕŽÕ‡µëëXG°^Åú’.\ÃúÖ'XŸbq‡|ä‡Cþ»‡˜Ñ®$iœº‚‘Eo¶|0RŒÔ#õAG>¸±nìƒûàÆ>¸±nìƒûàÆ>¸±nìƒûÒ–þˆÑ,}æCtK÷ÁÒ}ÜÒ‹rï@¥IÍŠÀKï£ht°‹ +A°(óÓ%»nžMýó7û±·Ù5g?ÊwgdËqf{çê7}z€±¬êè®å]?îoT—úéï÷±8»èj4GÕÞá‘ ¦ÖWîü0õ^êD° |š¯©×´±«Ôè(BwjeœIª§“bbkýàe¡ qq\[·LÍŒÈÅ l  €L€l¬X Àt­Q¢ ž€zÍ! +àåüKäÿ[2§÷¿û™‡8q¹aÏiª¨á#X`p³H 7XãòySÑúŒ 1p Zñø5ãÃ×Ô”¦èͨ¶XišÿêP'méØÎWâÖìš37n•ML^¹é\‡ÍW”¸’a¶Ö_oë”Lžš‘ýû¶0Rc›%2Q=ÕæÇ²E”zÿ¸§)Ç1«64ûÆM1ÓìéˆÝþGb›Å®dJ7ŽXp˜KÂäÈÊ}ÜÅöëüò·0z†æ…UìÚe¡/DµG|u7¾º;tõˆf/k’(‚*†3ˆ3èJgØ›¿’o/õXú•µˆkõ¸.©=i!Ž u#îBÜ¥Ç+¯ÐŸ±úO_žÕyä€ + Àæ€ùÌ7°º’€JPE@•h% Õ´Ðf:èДa‡2¹2X6UXâ„ï³гg‡ÈN5ÅÏåÕþ +ê-5TTi©¶†qlı>IúÓâô.Òù%œ™æb—E—.¦Ó¨úF¦pÇL>ª‡ð4Œ™¦`w5§Ý;lö%po÷ûË ™DÒ8¨`”Ðýcd¡>FÎÖcm|ü_öPÓmò—ai(›óƒZåùzYkçãCˆC¼·¢?Õ1•ܨ!¹îêÇ¢IªÉ‘¨ÇÚsØ$«(ñ„L4$>Òs)ífÛ3m¥ÍnWY^ÍÖÉ ÔÌuXísÖ-0è‰I'‰™\¤ +K¾ûÊu‹I´|߃÷þ¦lÀ¾/c¹ã¨2•zçVV=VÖj,¹ÿŠ0K° ÷1ì^4Ií):´$õ­c0eU˜Å÷7:Õ—¤ùE=EqPw—Ä ˆgQGý(Žb!ÀbÊ (7˜} D@HãŽÓ`Ž¡O çÏÁ;åsð~bo’Ü‘IU¢*Ý…ÆYm5ÆW.‹ßbÀbL­ÑzR״Ϙïó’Úë»–õ+p¿ñ³M½úþE}µEužás_X–]nËrYŽœÎÂâ²v=îr›€‚"¢-ES¼Æ+jmk«x‰qÔ¨5uœNÒhkckšÆiÌd¦‰í¤í63Í¥M;äGû£íÔi“L\ú|çìm±™éÐ?æÞya¿³ßyž÷yÞ7Ú9osypáØÂŽÓ†6¥êNqs™'þá¿y7ÃÓóÏ=4ðýÑ‚,û‚œŽSËû¶{6¼OùÌ9Óuë.z;º#@:KÇÚ¬}&Ö>`íÖ>`íÖ>`íKštU™‹fÏß‚c¶&°nÓçs‚µá’7¨ÚÄÄTÈÍ´MŸ” Üý¸OÛœ¦áž:§`N S‘ĤB„"I…zR¨O*4BC²ùð÷Èå ¨ýò¨åë´ +K~‚Üó šÌ¢±ÎNÒ$ו­ËCP·CMˆ9…êjec‘y =Úø½=/«»ÏçßþÁÊß;œ?øéƬÔTG°Sô7ž[Ú¸~ÈZ[xíŧ¾½ö‹C úXøø®•ïÿ+‹h†ç„–s+ú.nKFã?:šaayL€ 3Ú{p“È>{lï‰Y¡€=þ§xËgòjÎÄûìGüeJeJÆÑlé#Ìu˜=lÈ@+å\„Œ!æ#úÉ¿‚€«‘ìD0ƒ·(Ÿ­Ô_&^°ïêü´Ÿ6“Ÿ6¼bøi?mà§ ü´á ƒEææS‡<2ɨB\á ƒÐ†¿‡µÖ‚Ä…ð"ˆ6Ä2ÄZÄ.Äâ,ââ:â5Ä[ˆ?"þÈü_²­1í‡ð#xýHÖ ˜\)ƒ˜$¾9û—Së̾A +’<ù™ƒhG Ö!v#!¾ø^KÝA¼øñB¿ÆŒ!×xÐ!üˆR EÖTGb¬UL]­Fkr]芽J<‚3'×%Òà¿3‡’<l ïx¢uõånoO¤ì÷Ýëªßû×cKºÌnc[X!¿ríÖW´žð'Ã_X17~-þÉ«Õ+ß:Y žíoZ± îÌâþÇz¿ô«þʆMž´—Í}îØÒAw¶”íîúJßkñ·ÁeçÄßù§1;USMöX Y¬I챑‚-©`'{RÁC +ž¤B))”&dRÿÃâR +p½úÎI&6/¸ìˆ‘aø^(EY©EŸ×”j^öÒÉ“ˆïËE]2ºÔN•ɼK[ð‹¹*ÅŸ ¥§fä¼ÐßûʯÃ^YL«4¯Öæä<ÛÙ}¸SLOmŒßéʳ¬Ë>f;:Ó«€öoc„Ì´´Š½ŸÞeŽ»Ø–™—b±’­‘µ;§îS?‰ô«øŠ µxâÏì/ÙW¨ ÕH¯¹A5¡'‹d·"³¢=FÞ¦uÜ!+F¦D#7·&ä%ÈKȧûHžAÔY¸§«IjÁë‹@M"P“z#bªIj\Ü jð¹šÄµ1ãÍ“ªPLÞx±áü©#ªtç/Æs4S44¢(44¢†FÔÐͺYC7kèf ݬ¡›5t³†nÖÐͺYC7k¦$ÌðC¦’ ’ ¡÷a0^xˆ8 \Åi1ÆÏY´na;™ôY8T‘±DpÐoìAè5øNø:š~´Wë9/p)Bºµ¸q±æ_ïœ;:hòÌ¥ù}´2²8²ÜšUH¿´ÿ†ìÊ,XÜÑüµFæŠÝUîË_RäìêzüMÅé°Œ Z,WŸô~õáÖ‘æŒBÍ1´¡¥8­4z;7T”é©©_°¤«‹b&îNÜårù7ÐsMôw‹"šÔ8äLÌp.cj{á€TPç“É¡àä^kä.ä®Dnr‹äî˜î+QøJÔô•(|% +_‰ÂW¢ð•(t5ªûJTŸ_És¸¤Y†Ì°-„Kãá/§Öqp§æd·0ˆøˇ‡«&ÝT€¬d «YST0EST0EST0EST0EST0EST“n3<Ä ÛôCtSA7U§›kr7"z]gðΙR9hg˜è9™s@.­sÏkÉÎÔ%]Ÿptî·Ñ‚ÀYø4ÇÞ÷Ò-–†æiæHá—ço¾ü¹Ú +ÑyrùpwóȼÞsinßíÄùû{‡ÎpHïÈô/ýp·ÝÊY"nŸšbI—žäü«c®Ùk_¸ 2×7••ú;™“ñÃ5nW‰ïÏì¼°h¤ ß3ñ!;ÌþŒª >•¶à'1¥x +芺â®xpc©+èŠt1õÃA uPé“Xs¤Àà;2Èt™ðgþ,šþ,BÄEx!Y@E¸¢ka­"¬U„µŠ°VÖ*â9"¬U„µŠ°VÖ*šþ<ÃC ž~?b´•l2Rdð@dð@™dI™dI™dI™dI™dI™d“‘3<Ä`äôCŒ”ÁHYgd™%!r¡0‘¹`kj¢ |³ƒ:ýÂìpyëØÒ7>n®–n–µ ­h¯ª²YSTÑ^º­¹ooËÊgÖWuno.óÜÿÝÎ+i½£(ÛæîZ´nUžÃæ®h=³åл«óK(Ýëú&þÂ=Í¿i Ï`غ MÑ5z‘š¤Z$ÏDžIþ y6òläó‹1²—õò˜ñ»’웉Ù©DÀ2}0¾†pûþ3ÑOþhð5¾†t$Ÿ­‘Æx~#Ñ-.0mW§Ê Q5ºD9Qâ Q·@ªlrÁùÿ+š¬O.HQf޹P…ÂÄûJÒqm_󆞴¾[µIy©Kÿö­û¯9]”•²XZwí(ËÙúëÃÏW»G‚³ŠiËQ1O½ÿØÂ־˻®ÿbÎÆ¦ÙWÀ©àÄì öŒ§†i…kˆ·îe‘™Tw0?Ìo:˜懃ùqg?ÌåñëFL&—²€yølα¢R¤WÊbäïS<Ë%³Ò䌔E¸‘•¤q)Y* vn}hr'¬€£%“$ ‘h$@#_ øJÀW¾𕀯|%à+_ øJÀW2I2ÃC ’L?$A $‘ôª"Ãxe#÷’á;‘›¯' ·S(ÎÐuº®˜º®@M4‹5U ¦ +$Y$+d’¬@’H²‚w«@’H²IV ÉŠ©ë3<ÄÐõé‡ðº: +º>&ø® $qh2ÿ•H"Ct‘ÆÀˆmþL60vGqkq`´ùëoîj(/Ú]ôù­/ôqíêÆñÛÌÐ¥õ£ËïwwŸžsÀGï{xÛ‘o¶WÚE›{jûÍÙÅKò¤5W·¸Ëí\Êñçú¼µô!–åù¼ô Oz‡É¡°<¯êùpcŸB¯ÕÎyÕkÇcDïÄòÁQpG_EÁQ$2 +Š‚€¢  (( +Š‚€¢  ((Ê9é…ÿç/0záJìU÷å°ïê4Z’,Z—b`¦.TÂ4Š/̦f³^§¡0­´˜H¼Q“ +Y<ÚMEÊ©€çD\ __i*)6?f+qLËÝ—{†c®Ì‚Šƒ8Üðì짯^x{0ɉú¥°zl˶Ðè§cmáÍÔÖÄ{ÏÜv„/š,vçv[ìïw_Øóúf! ”æ +‡ÝM¾¦ºŽK#9S]^Ž7·Èê07ïù`¢÷bwygyCY~U®gSirѪƒ«w_ÛU^ΜøjÛ§&'>û‡Yp5ˆvCãØ¥/­k;u·rœù¢ØÀmá“S\¿Â¦§~¤(ƒæ&åÁ¹Éß¡ú7¹N3ºÂë44 NUáÁ4ß߯ùøuÚ"Z *ÓD` +I¯kæ7§™ +¥¹¬~‹¶C7üníšB)‰MYŸ¥8‚gÀâJ +¬4š)Ðl´P Åè£@Ÿ!°™›žË€âÕ*Š9¼JšF÷â8YÅV#®ت՘&ä~ˆ@s±¯Y(àeŸ—”™ÎS¡_ǘÌJd–#¾tùÀH¦…„[ÖY‡;Ó]\W=ðj« ˜ìfI·×•?—ë ÷¶/rØp…­£o¶5ÍS•ɲ€˜›½“9ž™#ÚíY}çμqáŒTå³;ÞÔh±|ãk÷íÞ°¤µ(§¶óð쌷FfßXÙ<^?Å–Ó\&§pçoa|±Ó(e983 )’æ{Óìø¨©—©h ©{¹¢sO%¾Àp~ +ø ˜Æ­ÑÅVP¹‰±ˆzuŽ¥dè<å^dòDÀaÈâç;ßêë Wø€‹W*ñø/Þ>çCÞx»é»Ü¿þ-­'ØE¿åt\©ŒÓe37}-ÒÞšý éÈpš)†nðÆäâìlà…r³ }·’»r .j™ù¼BÑ+-`¨«€¡®†º"Ÿ½å#«aV¨ € 9ãÿ'ø>¹Ú‡CyËTñv~d»¡5^]o3ÿ2¤ÎFÜT†ý»ðsîÿÎ-œ¨È9ÔFÒo—êÕh¹2äÏa`/Œõ™{~Hž†ÎÚÅu±þ‡hUš&æ×Á¯ƒ‡ßšf|Ø¿~‡æ¯‡¿þ.ø;àïÐvß¿æ?™fëA¬µ½O_¹vJA…M´ ŸÔ£iª•­†À& +l2¶P`‹!0@C`‚†ÀI +œÔs·Tg"Í›âšh Ç µ}7áíú„ ‘áňí!ë ªX™¬sBó ÓDLÍuÎñ}ݘõˆUNDpÚ ¹ëuâ¤ò6þ¼LŸäç’ñ÷=@(o6}e‘(÷*[¿¹|QVÞVeüŠ/KeN—$Žžª,&CîkïYU³D0éÌùÒæöŸ 3À[–ï\Ó¼w%˜€¾s‰£¶õΣüèú&_&߸¸Ân·[3ª†ù§oh`wЖw¼³öµÑçÏ^yÏã½×':ªŠv^ZeøÂf›ß±ëÌÑDmÇŠÕÛ"– +Ž Gd~µ’äGNI±v˜d¡êp¨LI¼«3ñÂõBº÷&†Jº’1ÍW,élÍ|¾¢^ÉfôjÍ¥i†d»E´šÐëŠ~×i¬ ÿCëaž¨´€BŨ¦@µ!ðßU ܸ'¼FĬ51¸ûUóÒ¼ò,'B°ÆšPgêë„aÈÞÏÏuõ] <€ÍÅ `S¦Sk7\Zë°Z-^ßÞí±†³Yױɧêu´ØñØCѶìÐÕÂøÎŽŠÛ?<«Ê‚€ft/vý•êU©ÄàþãÆ&ÅzvÛ¿ÿlÎÞå²¹Ó"è.­Ìë3U¥ÈP)²®Rd¨*EFúd¨3’ ©_"¥"gý„¥Y‚§j ÚDŒ$è ÚD‚6‘tm"A›HØšéÿœþèЃþ°SÀÎZää'±†XîìBð@!xÀI p(‚ +Á…àBð@!x <܇°»°{0iðÿ±ÉXæ‚›XÆñ‚½pvÃLãx%$%ŸžÜ‚Œåsc0Ó8žÀ'¶Ök‡m‚ÂŽÁÎÃ.îæ`¿‚}û+ì>L}/½ ½ÆB›XÆ«ªÝu\m Gš‰ôQIqXWBk±/øãïxÛùû“‡®íÌ«üqêåþCß¼Ø7ñmþý?ñù³÷ûâ?Ÿë:Ҳ‡§~zõîð›*ö–ͼo~Jx‡[Åmä?Æ Ü%a½ë2MŠÎ=:‡oØÓæëG~Všu#Åj“@mRGm¨MµI 6 Ô&qIµI ð‹~—MˆV ÀÈrMƒE´;µ¥ÙÚƒµ‡ê…z áV%6FXöÈnÙ‚ß #!7îØ­R«1ºsgUïÔz«ŠÌ,P%ª„úéƒÀŽÂž…} ö}Ø Ø»°awa÷`¼¿ä& Þ_ÜDƒwðNÇ4#¹„6[ÝD©ɲîÕ×ij¹£ÇëZmËÉ-¸:“W-g:) 9Þuñ;~À?p 3WB-ý?;°ïÚ†ŠÞwˆpÝ=sÛ|=9Ä%øIêGLù8‘ 'ÖvC•$ên„ñ2DÊ©0Ì¥ü0]‰«":›FÀ¦FûGÀ¦BDgÓØ4¢²©¤!•Ö5X×h{¯%¤ò +,C©ŠN/¡Ókè™2d +Üâ–rn¥:nƒqª\ipÀÿb:Tc¸:€ÄÊb@Y (‹e1 ,”Å€²PöÒ«56Šë +ŸyìÌì®wíõÛklcvÖËz½^{Æ/ll9vƒ†‰§I©Áþ×Ù_=ÿmn¦HÏo.ì~o¸o…¤Ü7&zÀ¡PoôënäÁò!ÚÂd$¬±•9†’ÀPJCI`( ï$ %¡¤Àß]*ðV…}©Ä¸ÒWa\e-–WŘ(MXâ—÷sm<Ѷ`¢ƒ':¬².ZoP^‰<ÂÞ ZíX«¸IØ+-Õ­½—ˆ[*Y#izHÄI4a²N»Ý‚¤)²¯Öéµ\R|0P½ª¾>ªåËñ²åìpI†/¿úÈ…‡ÚdYñå•5KÞ¼œkù¡ôh~°¦Ðô›M néýY×’|—ÛmõT­Ì^W–(ïÑréêEàPäãsyI‰qoGM[ΪZàU/ÆÕÓV浚D^àÝó]Q9{«|AW”≔å>)WÐÈ |Ù 0À ÐÈ ÐÈ ÐÈ ÐÈ ÐÈ ‡‹÷¸‰ÅÅÛ7±¹h€‹†èŠÊqT“-ç®ÈDWd:]‘‰“šèELô"&z ‰†ÆDCc¢¡1ÑИhhLxÇDCc¢¡1ÑИhhL§+ºÇM¬®èöMDW”ªvY] 0ræà¤ÁðSí4Q#UË%ÅÈ+‘ºH]& €>Ò)yʓ˻FŸ‰>0ní¬›ëžHëJ›ËWÚò`צí5éÄÄwm¿vqà «5UvkRc{_O¼ÂØ1R¿Âl÷•t·¬>º.Ü5~£]¼µ?ÒòG7>ÖwìÝ +š®{bCÀacöòqõ¸ýò"b¡!s^pQÊ´Ut;/°.¶ž9•ˆÇÎå‡ÇÓdõ4xa^Ø*~ìLboÿ‚Í¿ Cã±uͲð_ˆqaâV.mC©=þ¢w@ŠŽ´ +¥©$Ø_¦söV4;ÉÓºhKe,iÉ0ÚÜ¡mí)÷úÖ¸GÒA½¤;“ÑÏ¢xK4ÉK4ÔõÆ2Ýé%.I‘¢I¥ ¾®úo½f´xÝÜuI–ýIš{¹=Ôu$¼Ôï.õô­-(’N[ü.˜}G]©œ§n4Öý•¯Lœ$ ¾2+/ +w/NákQPTÍbQÌÙ•„5NOsLjc.KUË)Ñ&-«‹(u¸2F2|à.BÅe¥5*RK!™®³ž uòJ~ÍSµflÏCoò¤Zw¿òIëГ}µ™Ù›¯y*Û¶ïzø é¹ #á +ƒë’®y‚ÉýO߸·_z¶± ¯¨ÄÓ©ëòÒësfÿüÌíùì µçÊ +Æ×éN9?Á‰Í<Ñla `“ݤ/ÀN%ÆeÓ–¶*²?¸¨eb¯ñ¾‚+"ËTËG¤§’&7ŒøO‰¡p»¥íȵEã7š¶õøuÕå.nõȆ4þ§ëúÎͽ9Ô¿^j¾¯Ô¥*Å…]ùŠìnß4·ªñ[}§¥²ÐÁ#E7¢{~RTÓu=3ðÁܶ'|—Kñto{ª<ÿ€ùVàZý<šßùO©Â`„Йº×±¾¼íÓ§gúfLßY÷7Ø#Xk¿¡½<û‘ïêLßì^ßY1»àOûP³§dGÚè„ü9mU¯Ð.•¨Mû9im4,MÒ~y’ö±(U´Ï·ÊÞORï=«^‘J°¾ òÈ[ò U~Èd$Íë!%Øc)d²X9A¹þK |+¤~D•®ó4 5Sã¤:N Z%­ÐÎQ³û$Rwfÿ{Ö`ÿõÊeJa¾6 ¨çH—×S\º–}¿ky¬P=æ©#Ô§^"SÝO«•(%”Í´R>Eêû8ÃQªÖÎõx>NøÿiõŠÌ{³¯·ò¹YøÜ|fçLl¿°éK„mdûЍRö_ЭˆižK£U°9†Ø”²è—iˆý ª›qþ@Ñ$ÝïzñÞL óBÙëê)jR>£Ex¶C;IØϓ›³½x· R¬…iP+@¬Æi)βØ{¾Ã:¾_]©^8b»C ¯1F_±ôúšö#Êà{YæÖ3n±Wœ{øaCûc/m˜‹º>ËNÉô8ä°ú{Äï*Å£—üÞwGîC"¶fø›‚o§(©1b‚]v¼±À9×Cʼn¾½rRñ`¯Ãô¯ÁÞÀVö&pÛËØaŒ2N#‚#4Èö ü\F.Q¾Z ¹ R‡<šÍBKè« r¼ïgÞ0vÙnæ„Øcì8ß^+ÎLåêܵ6'׳/o_¥ïçj1Ÿ™SކÀîûÐøÎ+| ޹†…íqæ=¸÷šà>øÇüçç 5*Äüoæã?W‹1ç ð Wsî`þæj'.ó¹EðûV]!ø +>Ý­æ¼Ä¹Á‰­÷ùøç~ï +5ÍܰåEÈX8sžhv3ôIÈß!}ÖóÙ8ô +¡÷ƒsë8†óq°}åøÔñ‘snÎï"×!:Ïœ¼Ã¹O¬a»ìçðNII&‹û3¶ÌmûØæ€%ΙfS9çxÑ–ó¶ØçëlùâÏ©GâœÀ0¸_Ip‚¼$rËæìq‘‡š³Äï$ I@b¼‡qFõ eŸ0]xf”Böa̵d•xcT⻊±9ÔèÏTÃþtj×&ËsÀâ ä +Æì§+TíŽSµ÷0ÆOauÚ4ÞE]Àz§ö°Iæºì=FAö5øÙ +k¿¦0󽆚£ˆÏ1àÚæ­ÈQƒÙçñ}÷¸¼…ÿ"¿#G;x™ÇIoÚ&jµÃ¹Ü}P+8ßç~'7oÈSÙ·aÿìóÓxêvpzÛ9œÜ’³ÿx?¿¯“c¹†LÙýˆõ~%÷¹:7/~•¾Û¼É=àœ“7srå4üö9êÈïD}Ì~êÄ+Wßš;³çèÿ³_îÁQVW?ûí·ßnÊÛ 5iÜò +$lˆ¼*(+&!Åò¨„I& ,í,¨ b±B§ÿ`˜Ny´EeDTÀN§´”)V¾(ŒP •l÷îݰ,¤‰ÓÒ?:_2¿=÷ýÝǹçœ{Fé®Ò¿DÙœMm’-쯊Ñtœddsö¶Y»ÛœlÆ™ÞZýW÷[ÝјŒÙç–¤²êÇÉ[Úó&»®ÎjtÕq!ítŒ™ ±;Ûû8©ìå*C«8LÛ»˜žFï¾ò£'Uü[—ž“ÙS¿ª»gtRÓÄ"ßùñ6UÅ I/Yyô{ ¹8ÁYkKãêæë['[¾§¼‡+›«7ö¢w,vh^#›íéÛš­OÔ‹ëçyKÉ[è3Îa9tÁV?‹M˜ï“°Ïb¯ÂÚxíEØûàeØsì¹O¿ÈÜyæŸ{ã(Ôýâüú8}$δWË"g€®/6ñTWÖ›e½BìýKiÃ9Ô÷`¹„2<Å/9«24Ð^ÆùßÀ^…ˆé?O…YŒ­Ò;¡§ä&½ˆœˆ<Žt?fOžçí¥t”6ö›´O£.òÈŸÁN]!Ýy_”$…NgîäUâÐ4ɱ>“vômm‰\´†I¦u™±æI¦çUlÍ.ÒÔ{–IWÏ”È9k_4mÏ•»L¿®ÖÄÒ‡m¤—’»=Û¤u>ë5ñy?F.£ÝN˜$Ž÷ kîG[ÆWïQëTä¼y‹ö𾹊 ªXŸó{B/X ½¡ø¡ƒyÏŽ6í¾a­ ¶X!m! úCúA¦©+†tÈø7íîŠáá Ç­Ê<Ýd”'/òeCa‚ÝÒ I“ÐÖäÓŒÌ0é0s~í?Dì"gˆ¥RЯòÍ9«|&ì¶E.øž‘Á0’ò”uñõÂ÷æÈ´À9½ÇOzÈÓœÁ·¹+O©ïxgÉxßsث͒êÙCý$YÇ}ž‰ŸXi½-)H¿„¬Õï¼w=ëT?óæÓÒÚHϤh™NÿŒŸM1KYŠ>ýÕ¼¿Þçà +i;ö„%´ûòðu{MÜ:æ™~Ê^º ÛÀPø ýG*NS÷RÅ¿‹cïUû´¾¯év˜=ˆ’ì»9GYA<þc’Ã>Š^û’² ñøñ¾Ã‘•¯ ÈÓJÈYÄ7±‹*NQ(ÛA<ÛEóåñ\‘ò_ +ÕÏéˆnõd`½|SáŒÀ>ý“1Y‹o%ãß+Ó»HOŽ|âtáâl¡ß÷e¬ú¶ö¡ÝµMÎÓq ï7üÌpÎ9ä‹0ç¯3Öà[û9ÃóŒk|˜ý¨ä{÷Ë0ïÝRÞž°–xœU؃²¡1¼ËešÂ×VŠâ±s s Ÿ +«Ù»Rbo"ÞPðm_*u”°~ë(öKO{@ä¢f;ú®0yçNæú±tTè~Œið÷—"…½†o`"’‡¼“)¬»È~€v;deùÊÿbÃûíÅ×îqPjìt?_Œ€Azì•ÒQá;+Õ<5Ä)ÞîR8)W±‹ÓN&úvýYÎÙ<&ƒíw¤@ÅìSž3YBÖÊ÷“H7ÿ +tæœÉr)QuZg~OýB™f¿‡¾GëFzñ9¾ˆ±$–úÝ@ !ŸØ_—ùÊ¥ï=IuüðCÖþŠá{÷ðô÷–d?6ÂÿI pã;‘áœ%I—Ôä.pX$ùš¤¦t€LÈQøká8mÏ C#%Yí…w›¤zù¶ýç±yÎÃçäAµÞÞGÑA"0碄!Uà%¨bNë÷È åû™ï›´û•„Õþ9”Ò©ßAýÔ©=Uåió2å/B?Œc¼ù´û5åÌÃÿ’j$U‘¼‡uFf ‘ƒàÏ¢ÿ!Ú¥È(_z±‰÷îëØ—,tëˆ<ãmä^m\ñyäi«BöØÏ¿ÎúE®Ùcd¡=ƒ>Ä>Þ£ø»·‘'ð!K%Í·òµØóÇ•½’vw8IÒ}‰“’¸+ÿôZ@­ïv¢ö :¹ÄÈ­ð-h%~è ݬŠÈ¡ëTD®Áz¿[bºsøo¡Îð¶2{U'þtéá È(üpgÃk£§+tÂ\Â7¦NF^6êQ¾u‰ñ·“€X™˜j#{¹Q¦ÂÈhßR=œYÂÆæ;/ðv J{|ÈrüñsPxŽÆõÈïÚËä«Ê¯Øi2‚öE¤‡z§°¿¹’­l¿õ#™)ÊGP7QùÖ ô¿„|±’Ô¥ÏxíÖb»Ë$…vŒ¹ W(מּÓè—¬ÐóIdöEMól½†DŒO‹®+r>%ŒüÙÕ¬·ƒ©ÿ4æÕÚo…Ú‹Dôž´b‚ÑjïâÑû˜ûª÷öý¨lÚçV Î!žèyÄ#ã(¶×³îÙò,•YöLÞ*ÄoJ—šô©9iô¬%é[&ÜŸc³åUßYlÑü/Áo‰b‹ {oÆ» ¾>г/péF’ó[&e¡ÈW~*Òîôu:ÎrGþ¤î$œgNw^Š’~2Ê]ƒ£Ï¬Ýƶž|'“oöaŒ,<}¿*‘ПEòDð­^gp{‘{†Š cÎ÷]¹:r8O:dÁd‘Â-73†9uqqqqqqqqqqqqqqqqqqqqqqqqùÁ#â“­Ò^Þ¿Êñ—,b‰=Qlo#«L¹HDÓ^¹ƒ\4m“^dÒéX{¿äÊ&Zzì$rïÈ1“öHÏV“¶¤­ç¸I{)?kÒ¶ô±RMÚ!=ܤý2Ú=¢¦vA]eÅà Á ÁÜ!Cr³‡ É +ö…õµUåÁ5skç5”×e ªgæonÞ?X¼ ¶<8±¦j^CeMu½i®ª +ê†õÁºòúòºGÊËrÆŽ ?XÒw\iUiCeuMö„š¹¥Õ­/Œå‚•õÁRF­¨¬gbåeÁ†ºÒ²ò¹¥us‚5³‚ciÑ f-#¤FjeÔI¥TÈÃÒ AÙ¹2„ÿ\ÉÖ2‹’þâ ©0=j9rÒªÿ\róèYÎ(ªeTËLÉ1µ-ÞŸ|1mjõxéQ¥G«$U-õ #†©­B^±^çÊ‘êûð[FËñR(chý ”H_'¥ô*Õ£V3n¶LÐó.%7|QÕ×}‰~·£eb]©ÖWjÖX¡óÑVë ’®£¶ŒÜ\=ÿ9”ÕÈ,~Çš1šö6,£Ñký É|¹Åßva†;¸3>±úzvp¼*±›D¾ ¦.M:Ð,Ðw7wãö¹{\I@ÜP"»èwòyBf :ÑF–¼oJî5%^Ù"K9ʦ6¶¬O(ñÉó7”0Ç ”kÙµVp­Í”p0,”Ì endstream endobj 42 0 obj <> endobj 41 0 obj <> endobj 50 0 obj <> endobj 51 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 22.0.0 %%For: (Nicholas Carter) () %%Title: (alidisplay-serialize.ai) %%CreationDate: 4/15/19 4:08 PM %%Canvassize: 16383 %%BoundingBox: 18 -604 532 -26 %%HiResBoundingBox: 18.5575731681292 -603.30463576159 531.781083101909 -26.3046357615895 %%DocumentProcessColors: Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 244 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -792 612 0 %AI3_TemplateBox: 306.5 -396.5 306.5 -396.5 %AI3_TileBox: 18 -752 594 -18 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -420 139 1.51 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -420 139 1.51 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:0 -792 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.6 %%EndComments endstream endobj 52 0 obj <>stream +%%BoundingBox: 18 -604 532 -26 %%HiResBoundingBox: 18.5575731681292 -603.30463576159 531.781083101909 -26.3046357615895 %AI7_Thumbnail: 116 128 8 %%BeginData: 14658 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C457DFD1BA87D7DFD1BA852FD1CA87D7DFD1BA87DA8FD1BFF7DA8FD1B %FFA8A8FD1BFF7DFD1CFFA8A8FD06FF7DA8A8FFFFFFA8A8A8FD05FFA8FD06 %FFA87DFD07FF7DA8A8FFA8FFA8FD05FFA8FD07FF7DFFFFA87DA8FD04FFA8 %A8FD05FFFD04A8FD05FFA8FFFFA8A8FFFFFFA8A87DFD08FFFD04A8FD05FF %A8FFFFFFA87DFD05FFA852275227527D52277D27522752522752FD05FF7D %A8FD07FF7D27527D27527D2752275227527DFD06FF7DA8FF7D2727522752 %2752277D2727277D52277D27275227522752A8FF7DFD05FF275227525252 %2752527D52277D27275227522752A8FFFFA8A8FD06FF7D7D527D7DA87DA8 %A87D7DA87D7D52A8FD05FFA87DFD07FFFD04A852A8A87D7DA8527D52A8FD %06FF7DFFFFA87D7D527D527D527D7D7D527DA8A87DA8FD047D527D7DFFFF %A8A8FFFFFFA8FD057D527D7D7DA8A87DA8FD047D527D7DFFFFFFA8A8FD10 %FFA8FD0AFF7DA8FD0EFFA8FD0CFF7DA8FD13FFA8FD07FF7DFD13FFA8FD08 %FFA8A8FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8 %A87DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7D %A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFF7DA8 %FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF7D52A8 %FD1A7D52FD387DA852A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA87DA8A8FD1BFFA8A8FD38FFA8FD1DFF7DFD06FFFD08A8FFA8 %FFFFA8A8FD07FF7DA8FD12FFA87DFFFF7DFFFFFFA8FFA87DA87D7DFFA8FF %FFA8A8FD11FFA8FD1DFFA8FD06FF272752A8277DFD04522752277DFD07FF %A87DFD12FFA8277D5227275227527D7D277DFD04522752277DFD11FFA8FD %1DFF7DFD05FFA87D52A87D7D7DA8527D7D7D5252A8FD07FF7DA8FD12FFA8 %7D5227527D7D7D52A87D7DA8FD057D5252A8FD11FF7DFD1DFFA8FD1BFFA8 %A8FD15FFA8FD0BFFA8FD16FFA8FD1DFF7DFFA8FFA8A8A8FFA8FFA8FFA8A8 %A8FFA8FFA8FFA8A8A8FFA8A8A8FF7D7DA8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8FFA8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8FF7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FF7D7DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA8527D7DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87D7DFD1CA87D7DFD38FFA8A8FD38FFA8A8FD12FFA8A8FF %FFA8FFFFA87DFF7DFD05FFA8FD15FF7DA8FD17FFA8FFFF7DA87DA8FD04FF %A8FD15FF7D7DFD12FFA827FD04527D52277D272752275227527DFD14FFA8 %A8FD17FF52A85227525227522752275252FD14FFA8A8FD13FF7D52527D7D %A87D7DA87D7D7DA8527D52FD15FF7DA8FD17FF7D7DA852A87D7D52A87D7D %52A8FD14FFA87DFD15FF7DFD07FFA8FD1AFF7DA8FD1DFFA8A8FD19FFA8A8 %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7DA8FFFF %A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD07FFA8FF %FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF7D52A87DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8A8A87DA8A8A87DA8A8 %A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87D %A8A8A87DA8A8A87DA8A8A87DFD06A8FD38FFA8FD3AFF7DFD0BFFA8FD07FF %A8FD0BFFA8FD18FFA8A8FD39FFA8FD0BFF7D52A87D7DA8A8A85252A87DA8 %A8A87DFF7DFF52277DFD05A87DFF52527D7DA8A8A8FD09FFA8FD3AFF7DFD %0BFF52522752275227A8527DFD0727527D7D5252272727527D7DA87D5252 %2727527DFD09FFA8A8FD39FFA8FD0EFFA8FFA852A8FFA8FFA8FFA8FFA8FF %A8FFFFFFA8A852A8FFFFA8FFA8FFA8FFA8FD0BFFA8FD3AFF7DFFA8FFA8FF %A8FFA8FFA8FD07FFA8FFFFFFA8FD07FFA8FD07FFA8FFFFFFA8FD05FFA8FF %A8FFA8FFA8FFFFA8A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF %FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF %A8FFFFFFA8FFFD127DA8FD177DA8FD0F7DFD39A87D7DFFA8FFFFFFA8FFFF %FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8 %FFFFFFA8FFFFFFA8FD07FFA8FD3CFFA8A8FD72FF7D7DFD29FF7D2752527D %7D7DFF52527DA87DA87DA87D52527D7D7DA87D7D7D52A87DFD04A87D27A8 %FD25FFA8A8FD29FFA82752525227277D7D2752525227277D7D527D525252 %FFFD045227277D7D277D52527DFD25FF7D7DFD29FFA8A8A8FFA8A8A8FFA8 %FFA8FFA8A852A8A8A8FFFFFFA8A8FFA8A8A8FFA8FFA8FFA8FFA8FD26FFA8 %A8FD72FFA852A8FD727DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FF7DA8FD72FFA8A8FD28FF527D52A87D527DA8A8FF52FD047DA8 %A8FF7D52527DA87DA87D7DA87DA87DFFA8A8A87D52A8FD24FF7D7DFD28FF %522727F852FD04277D7D5227275227277D7DFD0552FF2752275227275252 %277D52527DFD24FFA8A8FD28FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF52 %A8A8FD07FFA8A8FFFFA8FFA8FFFFFFA8FD25FF7DA8FD72FFA87D7DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8527DFFA8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A87DA8FD72FFA87DFD29FFA87DA8A8 %7DFFFFFFA87DA8FFA8FFFFFFA87DA8A8FFFFA8A8A8FFA8FD07FF7DA8FD25 %FFA8A8FD29FF7D7D7D2752275252A827522727277D7DA82752527D52A87D %275252275252A8277D7D5252FD25FF7D7DFD29FFA87D5252527D527DA87D %7D7D527D2752A87D7DA8A87D7DA8527D7D7D527DA87D7DA8527DA8FD24FF %A8A8FD38FFA8FD09FFA8FD2FFFA852A87D7D7DA87D7D7DA87D7D7DA87D7D %7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8 %7D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87DA87DA87D7D7DA87D7D %7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8 %7D7D7DA87D7D7DA87D7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FF7D7DFD2DFFA8FD44FFA8A8FD2BFF7D7D7DA8A852A852A8527D %A87D7DA8A8FF527D52A87DA8A87D7DA87DA87D7DFD28FFA87DFD2BFF5227 %2752275227277D522752272727527D52527D52527DA827525227F82752FD %28FFA8A8FD2CFFA8FFA8FFA8FFA8FFA8FFA8FFA8A852FFA8FD07FF7DFFA8 %FFA8A8FD28FF7D7DFD72FFA87D7DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA8527DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA87DA8FD72FFA87DFD2BFF7DA87DA8A8FFFFFF7DFD04A8FFFFFF7DA8 %7DFFFFA8A8A8FFFFA8FFFFA8A8FD28FFA8A8FD2BFF7D2752275252527D52 %275227525252A87DFD0552FF27525227525252FD29FFA87DFD2BFFFD047D %527D52A87D7D527D5252F8A87DA87DA87D7DA87D7D7D527D527DA8FD28FF %A8A8FD39FFA8FD38FFA852A87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA8A8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87D7D7DA8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87D %A8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8 %A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DFD07A87DA8A8A87DA8A8A87D %A8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8FD %72FFA8A8FD2AFFA8FD05FF7DA8FFFFA8FFFFFFFD04A8FFA8A8A8FFFFA8FD %06FFA87DFD27FFA87DFD29FFA8275227277D7D522752522727527D7D2752 %275252A82752275227277D7D277D52277DFD26FFA8A8FD29FFA87D7D527D %527D7DA87D7D527DF8A87DFD05A8FFFD057D52A87D7DA8A87DA8FD26FFA8 %A8FD2FFFA8FD06FFA8A8FD3AFFA8A8FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FF7D52A8FD727DA8FD72FFA87DFD2BFFA8FD05FFA8FD %40FFA8A8FD29FF7D52527DFD04A87D7DA87D7DFD04A87D52527DA87DA87D %7DA87DFD07A8277DFD24FFA87DFD29FF7D7D2727F852277D5252F8522727 %F8A87D7D2752277D52A8525227522727277D27527D5252FD24FFA8A8FD2C %FFA8FFFFA87DFFFFFFA8FFA852A8FFA8FD07FFA8A8FFFFA8FD05FFA8FD25 %FFA87DFFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8FFA8A8A8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFFD04A87D7DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8527DFD72FFA8A8FD %29FFA87DFFA8A8A8FFFFFF7DFD07FF7DA8A8FFA8FFA8A8FD09FFA87DFD25 %FF7D7DFD29FF7D275252275227527D5227522752527D7D52275227527DA8 %2752275227527D5252A82727A8FD24FFA8A8FD29FFA8A852527D527D52A8 %FD057D5227FF7DA87DA87DA8A87D7DA87D7D7DA87D7DFF7D7DFD25FFA87D %FD2BFFA8FD0BFFA8A8FD39FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FF7D52A87DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %A8FD047DA8FD72FFA87DFD25FF7D7DA8FFFFFFA8FD07FF7DA8A8FFA8FFFF %FFA87D7DA8FFA8A8A87DA8FFA87DFD05FFA8A8A8FD22FFA8A8FD25FF7D27 %52525227FD06527D527D2727275252527DA8525227522752275227527D7D %7D52527D52522752A8FD21FF7D7DFD25FF7D7D527D5252527D525252FD05 %7D527D7D7D277D7DA87D7D527D527D7D7D52A87D7D527D27527D7D52FD22 %FFA8A8FD3AFFA8FD11FFA8FD25FFA87DFFA8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A87D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA8FD72FFA8A8FD26FFA8A8A8FD09FF7DFFFFFFA8FFFFFF %7DA8A8FFA8FFFFA8A8FFFFA8FD06FF7DFFA8FD23FF7D7DFD26FF7D275227 %5227FD04527D7D5227522752527D7D7D2752275227522727F87D527D2752 %52522727277DFD23FFA8A8FD26FFA8A8FD067D527D7DA8FD067D27A8A8FF %7D52FD067DA8A8FD047D27FD047DFD23FF7D7DFD37FFA8A8FD11FFA8FD27 %FFA8A8FD72FF7D52FD737DA8FD72FF7D7DFD72FFA8A8FD25FFA87DA8FD05 %FFA8FD04FF7DA8FFFFA8FFFFFF7DA8A8FD04FFA8A8FFFFA8A8FD05FF7DA8 %A8FD23FF7D7DFD25FF5227275227522752275227527D522752272752527D %7D5252272752522752277D7D7DFD045227275252A8FD22FFA8A8FD25FFA8 %FD047D52FD057D52A87DA87D7D527D27FD04A87D52A852FD047DA8FD047D %27FD047DFD23FF7DA8FD38FFA8FD11FFA8A8FD26FFA87D7DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA8527DFFA8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8FFA8FFA8FF %A8A8A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A87DA8FD72FFA87DFD26FF7D52A87DA87DA8 %7DA8A87D52FD047DA8A8A8525252A852A87D7D52A8A87DA8A87DA87D7D52 %7D7DFD24FFA8A8FD26FF7D52FD05275227527D5227522752F87D7DA85252 %27522727525227A8527D27522727275227A8FD24FF7D7DFD27FFA87D7DFF %FD05A8FFA8FFA8A8A87D52FFA8FFFD05A8FFFD05A8FFA87D52FD04A8FD24 %FFA8A8FD72FFA852A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %A87D7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7D7D %FD39FFA8FD09FFA8FD2EFFA8A8FD28FF527DFD06A852A87D7DFD04A8527D %7DA87DA8527D52A8A87DFFA87DFF7D7D52A8A8FD25FFA87DFD28FF7D2752 %2727277D7D5227272752F87D7D7D5252F8522727275227A85252F8522727 %275252A8FD25FFA8A8FD28FFA8FF52A8A8FFA8FFFFFFA8FFFF7D7DFFA8FF %A8FFA8FFA8FFA8FFFFFFA8FFA8A852FFA8A8FD26FF7D7DFD72FFA87D7DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8527DFFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA87DA8FD72FFA87DFD27FFA87D %A8FFA8A8FFFFFFA87DFFFFA8A8FFFFFF7DA8A8FFA8FFA8A8A8FFFF7DA8FD %05FF7DA8A8FD24FFA8A8FD28FF277D52522752277D7D52277D2752527D7D %7D5252277D5252275227A852A85252527D5227527DFD24FFA87DFD27FFA8 %7D52277D7D52527DA8FD047D525227A87DA87D527D7D527D52527D7D527D %5252277D7D527DFD24FFA8A8FD2AFFA8FD0CFFA8FD11FFA8FD28FFA852A8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8A87DA87DA8 %7DA87DA87DA87DA87DA87DA8A8A87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A87D %%EndData endstream endobj 53 0 obj <>stream +Ä 3:}ÏIoÞó2A±pEG+ rj|â²;jdô©AXô/FbÂE'ÿòX[Å- ž}òuÁ>ô6$Ÿh©ão©z3>ëcgÝYì©‹Öõ“CÔø¸•}9¨eÂö\<Š¿£øÁ‚¢öÍŠ ™6«‚DíxðU{>&&h$—MÉa‘«FXòÿ,óåÿÌqÅ{tiˆ˜ém+¾5èÏýBãA€N È ‘«xÝÖÎ_³¶Rmœêû¤¼7¿`sÂÿèƒ&]íª{è…¤­Z¹Ôe+² EeŒ²ø_'x¢}‡Ò㊂ÒÇÃm•ý= ¯w\,î÷éVÅç16eÛE®Y3SªCJõ’Ÿµ¢§–-š˜µFAc„» ]²çmïŸ„Æ ¡Òë«ÿtB‹Íºh/²cƒ$þ\5¯¥4$¼û¥šòò‹‡ˆú1Å ®Û©ûtõ×1곟†Øt2Q! µÖ¯~6ÑIýŸ`‹á˾éBe.i Q¡!ÐÛuãk %Žõ£ß#²¢O¢²_ý1­•mØ‘FFìY+ù¢¯­âž_R1)­ŽØu#K>³hÎ*Ƚ2¡+¿MñÚ6ݨ²5Kc쪙¾b#–n»ñµÿ. +ÖG¸­äeqôß?íOrÅßæ…ò/“Œ£™ß%Ëš†7ÓŠòGþ†ˆ)-«VM®½>« dî»Éõ»¶úèÍ¡ªðy-æÖÝf•üec”žw°+¯ŒµƒÏÈP‚ª›àÔ3½ 9Wô„ò»câºû“’†'!%èݺ•€ÐÐ +nÍÈš“6­Ä‚#:uÙˆÉY4Ñ*Ví\ÌþŸ·îd#L€öÔáów<ΖWÀ\5RЧ¥MCØä?ZJŸŸè‡Äýb"ÿÕO®½ùøj<õÕÅÙ®Æh@Ï?áe]ç?æÞP¡âNóJÂO)à YY¥7P©ÏN-tW½ÿêÄWÏtV<õ°³®{¸ ç¤Oê­}õ³tÆÈ-¸ö⯰҈«?ï˜` £³FÿŽ“aß½dèž VTT¼™’–ݶ‹ªnc âþìnH;g%æ^Ô¡2þ²àó/ ï …çtò—°2úJæ›#¢Š'fVácZþ‹ˆÄ‡¿´UFýn&§ý5Ý]ÿxE KZÑÕ¦‡4¿x‰ /ºë$Vq·lÇ…ÈY14}œ“C"׎ÎìiEÕ‡ Í €înš:EÛ|EPݳ¨¨‹^Ö5Çl ã +w†™°©T¦š˜sm¶çjAÄhu¯GÚª/ÈJÃ×õU€2Ö¨ì£>Nß§¸¢· £lÓš6èâ?õc–%ü<Î ­cr·<ĪMàµA#¾4hÀ—„ôÄ‚%&~a¹ë Õñ +øÛ6vÅȨ ê:ÈKƒ¢æ™JÚD/ì­Žœs]…I>?+ƒÅ¬èåÛVZÝ&`“[z{D(ØpQ kv\]Ȅʙ“"¶œÄš&æÐ`‡~ì`œŽÝósi.zßAiprJî ¢3ÏYé…f¤5¶Í¨ìÏ>&aRLGn؉eËLê– “¿î„¦Ïª›>„ÌØü=7 ¶nÆÕH|ž`1¶ý$È?ËÜîïËå7 w|žd°‚6RӲѸ¤#官H%ß[ô[>uœËý1Õ¦ù1)êù1Îa|c‘vü<悆œ:šwh õI8ÙUz' dWyħ.~ݳô⨰èòlã‹ù!\òX?2r´¥éáL/¿dZÚQ;ÝKI\Tá’]å·ÇÚ +¯.ö7¿=ð0à;bÍ‚3¯†%à·øüÝQ}ÛËD®Ù E;£,üžOÀÛó·õîŒòh«jùª‘Z¾ Ç$OtÔ¸Vùêæq^]Üɬ¨»Ç! OOµëØQõxq ê‘_œ{CCˆ9+¬xpByz]×”8§Ee«‰·ýmåQn"tßEA®HÅ»V\þò@ù#35æÏ‰®ŠðU¹L†-}3¥hÊŸ‘ÕÅNˆk"¥°÷;ÀE,©â­ìŒ«uo^Q²FÚ1Ù¾PÊê $ÖÂH¾n"Gÿ9×—óðó(8mÇI›• Z³ãbcüRlÑšS0øó8®îû úu _÷c‚A\1"²†¹¹¨†eìÚ©u-"Cƒ=o&eÞY‚#ƒJHä’›´ª!—UìŠU·iÕ$",ª™µ *RhÙä¹ÔÇà.u{˜Gœ—csºÁIW ô¢_Æ9-ËjHü¦àº16yg”Ü46Ål¸ÉÍû~wNˆ|¤`hØÊ6wi öÅHKÊ­ÐPýûU:}Ö@̘¤`ÕL,šD|<£"ÌvoÄMË 1+zH⺠`:sÏKjøg‘'9 Ðð€Í•o“ª|$øª>c³¾8¬Ï~&nßOí„Ò}?‹u8Îáü˜ä‰þ`R¿ŽëvÄâU.} ð§©^d¤GPskwWb—Ý[ÿF…K»¡£?tvcä\ÔxnÂéþæŠ{)>IM.½Ì-útœ’ññ6ùÍ1Lâ›S¸Ä÷gøEIçû‘Õב9‰g¹å1gU¤ŒkÌâ¿é°±¿ë ±§dÈØ_•Ø”«.^ñ£¡Ô#mŽC¤<ú¹ÿàŸ§õ«ŸÃ^ÑÍhz7Õ‘}ÉNO¾´ DM’ +ê’^žõvÕå%7±sª£ú…‡›{«¿ùÝYIÝ‹Ÿ ˜Ø3sƒ„jUµª¸h YO¶ 蜹k„Ämé«>é(Ñ·ÄÕOÙ©©¯…/Šþ]…ÏŒüâ%ÿ™aÐÿ™ 6¸P›fpš…“pCM¼6­húÔOÌ|.G&\0PSïX(ùÏ–úáI»6lIHHœ”ƒVðpy 9{ÃÌ!ú$ˆìE±Ø¿Œe5­jÃDoX7àr§$ ¸!tâ5bÒcJdâÓÉPÎt_ýÛ-çQý›¶ç§£ †ÜaÓ×ìT˜WtwYƒL—"*-5q˪†÷Nvâ•¥Š§ÛVàó=ø²%5äÀCñKšºw‡~"hÕ„*™è¼ëh|¹¬†&nZpå{N&þ[€Ãÿï¯wÍ‚HÙ´ãJ>1È߯ì&™‚g9ÂÓÞ× 6ýË4‹õ}Ž×ýŸ^Ï–_ñχÿ?3ÜÖÏNbõ|?èílwÝ“¹pø‚¬ùí’ª)êë±Ñ¯ æ,©©•»ÃBƪŽ]TãÓ&{ªï:‹¯Mv__–#cg•” o'öÝL/æã¦‡š½õ +r.ø[ó.»Ù—Wôð”m'µiÇÍeîøù¢±AT‚O†ŠÝtóuiØo“}pŸ}4ôºž±0Dz ‘cá•Þ^ÕÒŠçT„¬‰ø{§òæBOó›%.e¶¯ù½GweQE-]³ŠÙŸ•n˜›cÝE·&ºò¯/*k÷Äòõahfún€æ~.àøÊ —5+ƒ¿Ÿè¿\DÅ­Úó°qû>!ÉH)[³q‰ÛN}ÍD«[21ëG¹E¶>Jœ£1­¤ødÔL#úHChº£#À_8ÐwS]˜Äi1*Ê/?¶1›î«Q¼‚š;JJémfîÛÓjxêŸGû6©À$-¨eA36gSl½ØØhúŸ6fyøQϵYuý뀼úá´â¨§1èæ…T5¯ïf9¥mõBPÉ•®fÓÒ3/+»çmÉ»(‡ÆžêiŒ;­B$ÿ>ÑU>>H-nÊùýÍõ?ÃÚª?]ÙÐÂ’Ç[òîø¹É—LÈ×§i9÷Žu‚>µ²ŒJIu ¯³J#îïØÑ„gŒ ²âùD[Þe;+å–ªÇÇ=¢ÒpW(œñü,-'üÄýÍK†|v‘ëBº¦OÈèß9ùON +sŸ›—<ײŠ_7|¼}JOÉ~·ç¥C·­ø‚šàä§_é}ø™žûø˜–{q¶¿â5©èÅy '÷ý¿3‚Þïs‚îoS4Ò®Q´j…¥tU>"¤ŸÕ 3ÑÅ/g¾¸þóŒT¼cjü”—=)+ž.=ènxvJPx÷”ƒok_…É ?ƒJ}yÎÓR÷ÝÇeýç ¿ù¹ì=/¶åBmXë#ÿw‰Jÿ6Cç*£ž³^Þ_³ ߦ:­_g:lÿgUdþß»ç«V±8Xø`Ém솧=$ä=[RCS•葲íÀ¸Q9ÿúñU+LÆšÕ43ëýøOëVnó¦ ЈF" ïA¯ÇÅ%wMôükrxê™éÎú×!ìî¨}:ÕS~à Ö}öRÁ_ý4ä·ƒºëe`ç´Ò 59gÑ* .9:['4"PÐÞ)Üq ™ÛfBÁŽ }è!Tm9™;6L‡™8x¬ôx˜Zp¡·þã/ªæ„36bâ¹Éöœ{..5hå`f”¨¸'¹vË…/ý ¡¾OÒð;~JsЄÈm¯xÒ@ò¶]ø +èÕº•Ý´q.bÃÑÜy€ovÝtÈ: QgôÈäm?‡¹:ÌÀŒŒ4«‚ÅÌh‘©KV\áö(¦× £F$ðð§jÍ"i=š›±jFOÈž·PË–­ôŠ=ßQ¿lî2À+Z- ª–5´¢e=¥pV‰Kñô¡ßëø wÍÜêG«L–O\ùPOJ»bgÜÃÞM÷“²¦̼‘>^Ž»—=¥"gxhØo“,æ’ ›5§A¦.ëñ…+fzýªƒYqññÀçŒ÷4¾YlŒú6F„LõV=˜è¬¼=+oz«!å\UÀÓÿt±+nÔjƒõAJ¿h”~\Æ÷Ô?ïj|>Ý×5'çNHq)«6JÍ–‡Ú8¯F¦®š0•ߦÙü£3ç;NDöœªêé4àÿ ð‡E©À§äÐ׃¤²GkfLÅŒ¸ìâ›VÚ9;ó¢·¥"<ÐQýzY‡-ž1‰ÈÜ¿Åñ7UrØÝü 8bÝŠ-X±âŠfµðÔ]€cv|®W Í„ä¼:Sóøê–ˆû?KœŽÿÎqÿC–97>Б{¬£ô±·›[ðîÉÉš¸g—7GH-?–xýŸdüб>>О~ÕŠ‰9³ï££×Gùôi½|¤²2êŽbóŠ‘\ì}Ä‘ž2P‹oÚ8CZbÉØµ´P|Õ«~±ç¢ÃŽzÝ-ë ±«FLæ’žX¸d‘Vœí­!·D:eîá{äp`H%žÕ÷rµäüQ~>K«Ÿ…†j_­àIs:få½â^{sʹ±vÐë…ä§©îú§3Ò¢G{Ãà¬-73gbÕOQ +ÖÜ<ÚÆ(¿æ$U¬ºpEË6TÆ´²1bÕKÚs£ŠWèü*qÚ€M×Ê_*ðé—÷í´º ­zÃB­ÞöÒ S×GŒ -½ÚÞRy0Æ¢|™á‰¾Ìp…_Žfï9)µ+VbÁ²ž˜»¤¡/›Y ±^ä»Y9%;¤Á&€ÇnaÙÍÉîÒÇóÊÚ×vAî…ñžêWZ½–[ñȯ~±3Â@í21›:x߃.þwZöy¼>5hiŒ>úKvI‡WF- (‘±‡&}{„‚< Pß&I?®fÃÎÝ%ÖüL˜SÀÞ‡´¨ä *kFÞð& ‡Fͤ’]@ï¸XȣܫG=WÝÖŒžÛ¸dbƒ–Í̆­zÅFïy©oöŽG_0sAë£mí[>>ç¨~rÍçÍY©•! .7¤ƒ'nÙ1ù[.ÉÓ +~9*‚D¬Yøè%£bVFLYÔs§‡i£2ròÄ ½xÕ-bNi(…®Ô»C;uÁ(aM€…hU3*lÒ¼—q´&û>uÐßk6@—zHMGg}Ö¤ê=?›rqPþ!NÙ¬‘^¶î¢ƒ7\ ¨‹]~}ÈK!#¶dÕ„Íßt’ªBVBñ‚ŸP’Ò¬,Ъ[(Ø ´õÕ ZÉõ_zûÎ zÖF[ZƆ:q~°Á-GÇ KêϨÐÐG5p³,îZ´miNÙ4£ +×,„ÚÙÁV𸬠1Ä„t´A þ™æöl9nNQõÜÆÊ<¯ÅÄŸÕbR.oû ÄNТ™Q³hä£çMBdÈ%+.dIǬš$ezÑ‘)"jQG.S1òFûi³Zh{ø_@“/h y«&Fc6GZ„ 6.|Þ."Mš:)nyW£oPF÷+;ÀsZn¯³,ÇfmZȵëvf󨊚#Æ–\áÖ¦þîï&äõ¤ü€´úÑpKÊ¥éþ¢‡«VrÅ¢MHXv¶rÖFD¼U ²1A+ÃlÔŠ“ ZiUk6LvHŠZ+^ZÓÈ!‹ ϸŠÍŠ8±id6lÙø˜5 ³aÓCk^uQ@‹vF• Zw Ûc–M? äêQϵqÏC‡í°°Ûn&lÉDÈ™èCF.1ª \°» ôÀÓRýx¼«êÀÚ/f•µA,}ÃE­÷õ7'úzÁ {£ ìºTè«{5.ͺ8ZõþóxCꮟ„Úð‰{çm’6¯ŒU=9H-ý2Ý®ÿ:Ó¢8 0È[nXö–«)iÛ…*Ü÷k·Ý¤ª )øyPÎ<ô“À{lÉ–“P¶ÿÿŸ‰ÁV¬šñÅ“ý°Èu­igRÔ³ìâ1‚v.fÛ'Ž‹$ÿñ{ËŽ=êU’´SkMüæu¯¸gTÑœå쩊^&ƒWÜ4ĺ›Yñ•k*hÅ. :Dͯ½bd⦳U¸``Vͪi¹‹zzÙ¬žR6gdCç¬mìyG§hZÏ­·µQâ&о€a mÑÂûU4K×í4È®Ë8œhéÝ ðD[GgœfÛ4»“|ñš‡Þò³É«£ ôŒƒ^ò0Ñ~6mÅÅBå×Ç䨼—€¼l&oܰb#U/›‰åËf:xÓßÖ·>Ö1¸æµ-:Ûþ6éÞ„ sËO„®¸Hµ¾â'¿œ˜8u4sÕƒ¯ûg¶Uý}¶Ãúm¦UùyJ(Û÷óÛöŽfŒù¯|rW± Â6]â®oSbMЈʘ„Æú ±c’æˆ9"nÇ+à®9„ŒÝÑÖîí©sÖÚÕ4ñ!kVfZé²´ÀŸy:o&帄 ™Õ´lng¯Úz$[^eÓ M_sP*æ¥9$àh½èÎwŸP¸éiï[uKT!W·2`è ø4­‘>Vú”ZPëig¤ÌJéE[aZK+ÒŠšÙ:‘ï&TÔ²E³ãéÁDŽàfÕÀúXÈõ_Æy‚ —¼ææ`§µøì©!lbñëîVþª«•ÑV‡ÙˆM'·7Ád¯zI# +|²¡nâB"§4Bˆ¯‘¾¤g”ïùèˆ ‡¼<̯y™ˆ„Šƒ)~Û†— ÛiíØé6|;:O<‚.[5ƒ5 ‘³ªÆWÓ€¶Z¶ðq^9µ`RvaNðÀ 3Í‘KXÌx?è•«½ú 1Þl;)õÛ@|^ÐÑ*g)UA#|töüÛu8Á,;¹˜‹ðs1{ÅÕ-[tHzf,Bô¢]H +Ù¹”?ƒøAÅÜPó§E&mÍFm¹˜¨U+¾pa¨)Ð~ ›öúóƒywµï7mGZkˆ×«^!{}´KµâäQWè²¼I91e^K.Þñ ZÆ;t!oKW©ø¾œt~Á@mŒ´ˆVGÌà(7i ,;8ˆe€ÁÖÜÎö¸x`Éè*³|x~ÝËgÌÛøØ S+& o…Í„ЀJ&œ4 Žjeü€¾ ì|A‡Í^6`ó¶= ä¦OÀY÷p #<Úþl§ckš+Ø´lN·*·æÚô;s"åî$‡¿ê¡!æ­”òÀ)70$h2‰É)´H·'Zz6|\jh˜‡Z™õA ±pÞOX=ê9ä´ ÷ÂbíXôœ¹“;:8@Ó +êflxïI“>kêΛú»-­ìLVeé¥I­€°1)Vm1w¶Ý¼;Û:¸îçЛ-Ò3*7Fô½I +b{_=ïs&,}] Ãýšw¯nÊØ×e’vW)[»S•BIÂpog¥•Gx1ÑÇ,YwI¶ýƒ;ãmý;“‚Π—Ûgâ¶'Åê)‰{w¡Óµ5É -˜àóFtAÐË!M˜Ùõ®~zгšPáÓÖyÙè%' 6eࣷÆD’½é.ûÖT»qÅ×& z‚Y3¡xÑÁD†|íÝ[€_oýÿlÀ&­ºñå[#èâÝqvwB¬Þ HÌSZBμ‘Ò¸=Þ®Þ;wÆÙ´3­zl—2ç$×oOÓH‡‹¬ŽUƒ¸6"`ïL·ÈvÇ„­;ĦÝ·âîû”½W¿gé6!•-² …÷r\Ò›SÉè#Rnº¥…öÊÝ)Hš4L‰<ê!‘½·¥Ð À¾s +á)‡cºq±lÅÃ'û4ô<‡‚›cWÊÐú^5D&”ÄwÁ±w¬Lj~HÛÙ²ã·nº9ˆy#¿. 免Šû²õüÞ4 ¿/K„a<À–þ4Hm|½éì–m8{U«Î>ݘF sÈúaÆîþJû€´Ñ¯Uµè% C­Ò\[¯=¢v©=ƒ–“ÔÂRð4•2¶"ƒØHºO*C<ê,g¼Vcû“M"u•«³§zA-@|pØÿ™æŠŽf…lÚdy{•½C^>Ü©¨uw·æÍ™˜Ó:Lò’™T±îpV¿ökÄps+ベI|êïeš„¤)% †ÚFNñ:öhÙÝÑ:¢d–èE˜ç2"î–SÚU7céd¯{ÚÚC6Ø'cäz$ÄÔ9%½$°®M{>.%¥ú1Ù³ƒÄ¢Mç-<È´® >¢ÕNëYUK>rÉF¯´~Ö¬QêQ·7šjŒªMV`íé,uÉzÀ–ÞÞ:‹LÃ4÷êY†n ³“Ô÷I ç=óôwÃç-´ ‹‡Yô(‹Ã.9é ë>jÐ!¾äXÍ)ÀêôýÃCV™Wgè·Éúê{Ûd‰B¾"šA–>Å5I.ãÀÂU©•â+QïTâÖÚt°Ë^jv˜R³3%è:ê}µ?%ÖmXÌ•.qÉßÑpŠ©.}7Ö(몴 ôTÛeÝõ“ænæ„EÚæ”õB]ý +¬Cª8d]8ŸF€IåþALêʰ¼9Ú£ÛïÝé´nO´É÷&…]_æøÝ‡ töW9ÒÿʯsÂÝ)g}œË˜ww¶Oš{[¬íŒÔIc+)`n¥yÕô™a{g’ÅYÆ–Më Å¡aqÇ–¿Ç²>Ú*žvòQÃ]·Ñ(7HG¹rñ¢‹ëÎk£éÞ‹1Ò§DU¢ŠaÈëahãHÉ]p9åµ–÷¦‹¬Êì¢÷d[:Ú²G úVÔš¯ß=ïê³ö‰ŒƒÒf…Ü“É'¸’®1Ÿ¦~-£iÌ"s½µM]ïw¹¤CPM«¡¬ŸiKã,Ê °×+ÓW¡å¼¿àeìß´ö”5WßàÖhçÀ¬¹æ–sòm²^ðP¯.“:1ý½ŒˆmHá‘4oZö´.ÑD“ˆmˤà_W/W/}JBžzò´àXø¤ãYok~£ú"U\gÕp—2 +wGQ%[>\帑Y=ÔÞ—ÝËÔÅwQ#»YýQ©¦VÓÙí‘wAgMrɘQÝeêïoPpÛ?ȉmÏEͨGà¤Ø_(XÂŒl²JZ7F;åSm€Æ Q5uQkxîÞX«lÖ­bk%]J¡0VÅëÉr+Ìâ1ƒ\8eîùTõ¼–Z]Ý9‘ôÆÕѕץü­g‰²fÔÝô ±‹5¥`, ъǤ°˜i%ìR †‡¤ÈauRßÛš¡ëäF¤}…†’®.=+‚1òI’±PŸGÄË¢ª +· 2·Ó“š/g¡®ÔäAž1‚(CgO¶Ç(çOÙ;ùË·-9I53:Læ¸AséeTý€×!°–óhÚm(W@1EãðŽ' ¸özYeÛÙÜ,æÏÙ¹ôŸïÝ {pûãÉ’ü9j3ã~Cg“w&Ìúœ½¾2Ìc, ÓfZ…Ç$jµzz_ŸªTҮʒtš*Dm<‹ ûÀÆw$ã!Ե͛K)Ï*rpóÒ!×˲K¯àÁUY‘J~kùPÛÉ54ؽ6Þ¥Z¸dw‚ßòu^8°?ÍáíÌt™6'»­+¾n医Käs(»´ŠAœ¼K^ÚËéø8Ô£¬Ð`e¢®•¨-Á<Ð’iîg¦O˜Z(Û‰mB,_tµ +m:}§\éfwÊæÙñb5†ìyÝФ¸‚€È¯BzÏç¥cO%ÆA~ÍÍäžÍ+•ÿòð,ìÚœãïÞVŸ.ÎDá ¹÷´í™ãš.̤E¡6Øtª¡‰X6‚`ˆòi¢ý2w#Eð=F7ën º»D¸þ6¦iàJ}­ôfYIÇ¥òâÞsyÅ’ÓÂËÃnßÉ KL ü ZotµÕõ²W—dR/hÓ¶ÀÜ:9_©æ3{f*Qì¹HeæEM³åJva믅%½”U¨~Ë/ì=þvìï»9aáï1Ç^~ …ÝxRöëÙçao#êO—óÏã }·´í’Ô›;ïâ,Š–ry‡º¤CàÌe3íÑDÊð †`9“Á^L +&ò8Tý&AýžE6D``ò…yô_îÞˆ<þòftXzdÙo%™˜»„:j¸©ÃˆžÒ›—í‚……Ùòt©CÕ¸ÕdÖôJ}Ø.©ÞÑ=ÞÔÕ³B’t/Zöt!ÃͧX# $gxU1óTEæ×ª|ÜåŒ$øégãω-¼ÛC‘eõ÷„ò« +Tì¯SýˆT«ÎÜ/°zû<¾d¼ K÷¾ªn¸Q RÝEQ'"j†.„¿ª>þüyÉɼÑo9e½§Ÿ¼¨»t5%ìʬ°wñÔcWÕ…½ŽÂžÀ ­ÏûúGHÓ`÷¼·³gÚÎE¸uRÞ ÊÓÚÑ7G  g2@(Û­˜ò©ç/jNÆÇa~)*SœIÏ—þüþõØý§5aocÇ"“ØÇ®Þ¯ »Ž Ë/·ü +j2^§áÏby‘¶£-mTÉÈö))i¥)éñ£8ís¥dáxB3Îz·°¢írxèjØ|1!žðÓÓ'EÇ®\Ž{x?;ìe4ìÏ%a'OÞ »{7õXuƒêʧTæ™ûOª~KKÇÿ-kï¯ +ŽŠ;ö'[úÖ½\Ú„NØèÒê»MZ›tH=ÒÓ' °»dk<º`*‰7ÞG¡‡È®WHœãYuu÷µèwUg22ˆ¤$Õÿ•‘˜wWÞ®ZE¸y' aÐÈI}æ†x:Ç›‹i ?È®UüŸI>ž˜Aùém\sØÍEa¿üõ&ìჼ°¨xj؃7°+w³ÃR“‘'DÅsEÇP¹{°³ÉÙÏ˶ª”¹ÂFtû*I¢P:œ|ÝDP‰t]LÊoýéíGhX\éxZ–à§÷‰Ô°›á5aïuù^aس7ˆ°Ç¸cß"®¨^èm78ä2Øœ¹‹3o•vùÍ=|ƒª½¼W6PLîòg”ã&®A¼ä5Ø~‹Ï—œxC ;«<ìΣš°èƱgïIa?m +»‹L‹Hòž~òm<ë, ðU©P’6ãèlµ ˜nSK@oÉ`hÞÒ¹îPüèýÌÒÓñŒñÙ¿¦æ´Ÿxø´2ìùkÐñO)ŒŸc³„Çþ¸‘öËooÃþ¾Wö0öײco?àþÀ`uŸtý#³f­cÎ"i3·Ñ5ƒPŽÈ™Æ„ª©Òú&ærxzäF#rôfM£ù|^¡ääÇDÎÉ”¬ŽÐÇ.^K{^vÿyUØÅëiÇÞFAŽÓ°ýw¥ÊCG "bÅÆ€h{D9Ý]C…¼v>F¸¼ç«”rùÅ'ÑøSOޣŧ 'ezúéÒÝüc/£Ç>ÏEÄR®=({‹?–\e9™UçüN Duw™Ë†Õ=ðåQ‰juºÛk¶é”íý3$jûJ!œ3%xîÕõòË:Ͼ|>qí^Ù±[ÏêÃî…7„Ý{Qöâ#þÄ‹扨l鉬Zó(yì9¯-PÐßí†ØÔîØ jĮ̂öÈ r!ýŸ®xÅnñgRÄ‹ÙPFðen…ê÷¸TöIÀçŽGÇs޽Š$„ÝÒv÷q ë°aáɰÛøã—€ºÿ{’Ž»”öûùÇâ3y§>& Ï–åan{t½Ø9›ˆ0$ë­•Ê °öq$·s²”,šK3ÆÂ+aCWrx¿F§’NF$á¾ð ÷Øé?^…ÝyQØýxv1ïw<´ûƒ¬ÃrjdÄy«>>HÉU‘3ƒ¬\µRÙÔÞç‡0Z]ÉXºú­½V µßŒÊà¹tüþóì°ìÁ©Ì2Ù¯1Ùâ“/b§c’çkëäwˆ8éSU;çݘ’ž2«#¦m´ê 9iä6eì™´=£Sf³:Ç +±4Ëk ÅúJ~”S«ºð:üëÓw?L"œHÈâœH-dÿYÐ ¹^ W\cŒwhׇNîp®^¢…"ꂵ9Ý7ØëÔ¶ÁzÛ¥å#H,u60EÎÄÄàO¹­¿½Idz…=ö4ØCͱë Â^Ç`½Nd‡]}Öv ÈQ/…añ¥ÎSÅ ó}2Ë‘cTÙ[m­cjT¼KyåÕ²KT*=ZØë­`õO× {7Šëi³Ï+›¬Êõ¤µ¾x»0ìê’°‡/!a7T…]ú;;,â=âXZ¶èDA‘ø 4øn¸¯£dNϨX²QkôíØ·&yDÖg39š·ÌöÙBbÇj>”=SÔ?)¬•\«iê¿Bko¥Tt_y = ;–”Ç?™PÜ~!µªõ~iè5ChOîp¢Gôy«acŒËØžjé1w‡Âe€Ê’øÊ¨l]™"{Ja)_ ò% 2+Zï¤3ïf•°nÃÖ(0ÓöÁ4EòDª­ZZåÐöB½Z |ÞÑΙÖQò挄¼€Ÿ>2Ä(T´ S¤Ýòâî~C%[4‰g*Ãæ×9µ}7¢3ÚþºEùåÚãÚc¯â°'ã‹:þŒ/ë;_„ñÞ,£Œ>*@ >jfšó{Gén‹Š2¥%fMÖ½ Y±•ë#^ÀÜAÓj m]*U ©%‹Fã`Ìù¨Zìèí +„ýRv¥ìô½ÇΜO ûû~5›ëG¦BþcÄâé'·¼­fËA‚-XZpN¦Ë¤5ˆUƒZlŸT_ÕÞå(á‹m ¾9Kz à >©…Êo%r~ÿ˜„½˜‘Ï¿Uî}ÆahÒm;ů1Ê—œÒ~@£GûšÞØÚÊîúd ˆ¯R¯Q`$]ýYTóʼÌMæ7S\e’›igáÐÖ«(¼ò©¸‰Ák¢ùÜÁ£2™ç.ÝÎ:výN~Ø›hø±ɨ3Eåü¿aPÙEûÞ"é/Ÿ$gN* ï‚fR邎Qµh¡}:A¥RB{Û? ­ëêuTwJ,…]æZ±TSÞ"–'»†Òhî,0Aù®Æ¿‹¦H_°%Öòå`¡ZÝWaÓ÷BÖÌÞ8 ÿ}žNÿw™ÝöuŽ#ÓRólº~ªÞ¨mÑÕ´¡žbUWgš¼»=¥¯·']: ¯‘*tàÞ¡j‰D_Ô£tû f²ZÛ[­é@½™ÒÓ‹æmä¢]€Y¶qá®NØ›e ¥nÍËg¬Œ +9ÓÃmt—®µQÓKNèåÖý-¢vôæÓZõ ÍùýFº9¿Þž!ôÆZ¬ñ„s«Sÿ‰×¥ŽíkÊ,N»iÞßýÿqô–m¦ëÚðû>Ï^2k¤3ÓéT¦S÷RÁiqw·q7âJðE[Ü„$„@=Ý>:6øÐ›!ìjIšk)QMuãÕ“ëòæ]Í{•eÓ¼c{›ŽŒMuuñjécè¾EÂÌY²Ò6¦ Æ™÷ÝDMÁ𼕱2ÛÉÓŠšÊ':0÷F[0·&;Hf‡Úòç'{1†iAÁâ$#i{¦³Á¡žõjškµÕ®yäÛ= .zCDŒ3Í`fí€tG= Z‘¶’ô“uEªqA¾|¸­tüã@QÛXZk0ŒÁ}È­‘…2ØcO˜ìö»5õ¢›Þgut¤ õÈY‘¾whGfmŠ–†] »âHßöþt¹s" à˜Çf-ô—?UôTÜŸë%†ÊG‡(£ýsä. VÛÔ˜÷ƒz§a £\‚°—Xî­Ö¶æà±Áa°|TÈ^ ðv¦Å.³Ò¥dõµÕ›ƒ7ÊÆäß4iWµ#ç ↪vä%’úË‚¤–³³ÔÕ»2Û„ROð2fúY±âVäì° I'moßÕX<¬g£©ãxû]ÿéf­àh‘Z~b¤#ŽŒLœKK¯0M3òÖµ]zyËú\w½{©µÝ¡{ßjÓ´ðìÚ†j›–0ϳËvæ8¥&y+iCÙßoR·ñ­ õL«FÀÞšáí+¹Ë<¥È<…z»9ŠxéÓqÈç›RgàZ»†Ý’ó«ŒBRü¶³«`W­ÌµÓNGuò#UŠÑsSuyÊQF´JÔTlPt2ו ØÍ¹z¤ÃØÒz¼Ù:æÔ2*mJjŽ­Vp²Óm8ÜìÑzV›»·µxÅHC©b¤¦` àCÃLŸ`~º +ïO‰EC“²š±Q S$%ÉE-åºYV–uµ¹Õ»Üм-„E.´f__è)ÛB_ËE7ÞS’Ì“-”½i^ÅæᡳäÞrwÕ£]Q]Ŷ¤• «)ã¡^8e:Ž:‡N,»ñÖ< +~f‚_X¥„„ƒYZÖ¦ˆ’=ÉÉ¿oêEd|^`cý*B†{žšëš§æûõ,”MÆlÍÕÂö5íÜÇ)¯±– ô~‰E†‹;˜'¥yuÌ +¯†]åÓsÛz–u®}º$ ž/óH§K|¢cžV²1FŠ]$E®Óô}ÕQ&«hkš–»%¢$;¬ÊÀ i«„ožÂ%lkoÁ…l “¢Ö…¼üͱêt¯‚R䜡Qs ‡z&Ä¥ rMË|º²u^€4‹ µQzæê­ds‚œ°Ô ^ê'DG‰+ÒvÒ‚°ciÌ[ŸäfÛæû†-s­v% ež®z³3”{Ï-#æûuM5'+m}gÆö‘“Àœ) 6Ó<r+j)>}Sƒo¡¾Ñ6_ Þ™c”­Ïu°òµêÉw`y'9lK\·ÏÖãl2xW†Ës«¨ ¯†VîÓÔ`×>16½ÎƒîL‘ ]ùö§ái§Ë”*¯žGpÌsÑ«ƒðàåÞªÃU~£w™_m‘|3ANÛAÅzUP ¿Ã§cBög±Ñ–BüÑ2rnâqJlš¾3÷ÎV`†ÁâGA.ü²Á¡º×jX+RNá²WxºùnÈ&Å'möV=YmÝW7Þ1õBž{稅Gú¢YÊË›‹nnMã‹”\Øæ8üÅÚ`éÃåwLýE÷ÿ02ÐmÔ6Y«k÷訣Uÿl«Ku¼ÒÔ¹7}³Ö™{{¹³àÎöXå«£öt§yȵÄ'¯s©Z›ÇÎ×ëÛd¸Òñ’ÓHÎm!èõé"|±ÂÂ|Þ4¸êê·g8eVã[mŸð™ºæ}-ƒÎ¥zÁ¾‚ ]‘WDÌ¢}CçYÛÕµ¥l ˜çëÐ{³¸OÏ«>YâÐŽõ,â¡’R~¢§UœíµÏï VŒJµ‹ÉÉ6!*t­#ï×Í7ǘ'©isuéßïNÀ]ó|ìæ 5Ý.ªNÛB†Ø§p1~9)Õ;KJÙF¼˜o̽ůa€ÜrjŽKJNö*Y Ãè´éÚœ9"›°”ƒIXÌ¡•äÇÛ$ygKÕ`Ÿ†^â×p‘‡êF¾[ÙTw ¨%lO‘’­Óea.%<Õ³TCsêhÛÓ„8Ë$6Å«¤WY&‘oŒ¥÷–Úóï¹gàÑžYÔ›C%µøÂ:MJ;˜¥f¹4\¸YLÊò똈S#ë”S Ä„Dß.ù«‘ŽúºYS¬q‘c¾‰é[hmukjðd•¢cí2B²u—ìV’³rBªUŠÛÂ_Ÿ.s«ý:*ȯÁæyæá‡,h.Ñ=GɹXi|w¶^ß²=…‰ÜÓ¼ª:зç41Ù=MvK±)æQdèÞ$>ö@F/q+Xå>)óË2 u®gUÍ36?ä>² —¼Þê-|´3\øðO3¿á|ñÎÒ¶ÇpY>éÓ +O¸â“%,È.ÇäºTäüÀÌ•óµ:SFÎ^,‹4öÅz”$Øé²@p¶DC;$Ðø 8tmgS HÇkÍ]_¶[ÇÖš]Ëu<—ž_íVU—/2‘ êVsÖ9ؽÖÔâ]×µ'̆¿6€ƒöG!/m9:s¸Ô¯A‹KŒˆ8˜ÆÅ.÷Á_´¢¢¾›á¿ôÏ n +Ï;Ë,4 Ÿo B›G¡Ï,ãØ°½ zÆRòÅêÌkŸ´¡n¤X윅GëÞ%_Ö×'~¿ô.ûÆÁ1Ë-ç£lbì[Ëè™e´ì©o{¤äN"bLƒU«}À:!^iذ#-e™‚†nf^ÛÉ¿{ †„»åÕ™>­Ø3‡Oµ‰PáîY áø«ˆ»=Œ|èÅ;º¶œ;K]Å·Öû«.÷Ÿ|ÄÆü´?ŠuNâ–›³¡Å~7AŒþvšûýbsî mSæO[SˆXe8z›|åP΃º¥ŒBû$&vo¤ø™±=ýž¦>銡9íÇ•Ž’;.)³dWˆË1ŸÙ.AǺg‰©Öqd˜} b¢c&k2¯÷a#¾Û‚§^hn>Q1Áë Ÿ,´%\[ûsͧ‡žhIÙG*J™WN)Ìpp*ëˆyéóŸzadc¼zì?3zçÉiGÚêâ­HÐFä‰Uȸ¥ìÊ#!Ã%„îV½2væßÚ¨zôK‘o’Ô\7 ÂõlÄùBË;[å–¡ãÝ3à«°$Ì>MˆwÌîy¬#¯bwÆÑaû\¢WˆyT´ŠÝñŠHÓ@é½µÞÒÛ«}åwÏVÙ$‹µ? +¶Iª"4”â5µìóúׇq¤%LCeí3Øœ³åÆf·œQv ÂÇ[Ç`!öIð+‡s¢ã¢U ÈÎ`eø¡’˜¬YþÞ*Þ+çoõ½²MTÅî•¿rNA"N4ÄŠ½ñŠˆõ¾²Ç:ׯåbõÄ|™h“‚#¶GÀÁ®9b†_O-ñiiåæqèë“ +à=æÅZ-ߣacv'oW?=tÎÀb¼úšÚ㕺šó56át‘9]oj÷­vËÏ7:Äÿ½-h:7à -"pøÎXåK» ð˿ģîŠÌâS|JJÕ¡’ò«h% àíqP¬C + Yèοfè(û}kâ± ¬¤¤­>D{šS¼?II´Më:}¾?\ù{¢n*¿º5€|üб?^®œr¬fáofîNƒ~ÜL»æ™ œW%§Òóü×\Sî«cl—¢£§è‰ßSR~CM~ø!&柖!0À)”Ó,œxë›Õ^ðÛ?í~¬Ååì ¯u%]UÔ¼ù~„ôꟺw©¿ZÅÔl1¿èº¦tªiâ+™•n18|»7õêíÕ7r~ÚR^Úå]!<Æ-Ç¥ÚòïëhUÇ@ÿMÀÂöü· Ë#]ÒŠ¸ÅŽŒk"VÒUŸººhKy³Úó›Uyµ?Š·Œ£"Üó˜Ô= 6¹Ÿöc}a轜å’ãŠMƒ%L G;À>;ňh×, +Ào|¾}­nȸ²ò!÷Õ¿wX¬óU àç—9…Ëï‹ïhsnž­°IÇŸi?”‡Ìð2:Yä1¿lÔ4¸dàØýñÜÛֱа½P¨gšèW"þÚâÐ] $(ô‡¥AdÚ§Nõ±±±Í%¯.0ÞVÖÄþÐUõä;USÆããe&^PôÝRèí±†;Ѱ*}3à×~5¥à÷ï x÷ÉR[áÕ1àsfhY¶)TÄjOÚeCÓÛoÕÜÄ-Õe_ž·4Œ$Æ~³ð +Ôlùö ø¹±£à÷ zÂ÷ï aß¶^üMÆÉøiµþRT[p[Ê/¸µ5‚ŽXê(»§¨IÿÅØ‘û»¶¥ðæ=ù»°è¿ë±ÁÓ‚ÂGì¸ËÛ•Á"L²sŠ˜æ’0 +l"|†C +Ž1”Þ´\ôæ)vŠ–{{»™rxéí¡Ê;¥Omã•A!䥲&ùÒ)â»@¿m €^˜º‹obㆇ]ZjHþÕ#†E\hi¥G*f¥©ûFßúÝ=ÙÎ2õ“"T¼cº*d¹=ï¶±½àÁî èqzÎÅrCc¶:wWˆ 7Qì#èp÷TéCËpу;â{+ÝåÏìbÒ>#@é: ÷LIË_íB¼Òpó\n©¸·ÐVòxá}Ám}GÑ#§Œ^åš©Îßì=ØøXöló#$ÂÔSùd£;ÿ¦u40?­(d¡5|¨ª!)KnÍñÒpü5Ðã!–qÌÛÝT¤ðÆ>гLÌÏ–IB†]Jɧe\®/xñú ‘—R¿×ø°ÖŽ4OÓ +Þ¡ã®q +þßS=왣?VÏr¯+ø©?«ø9—ÕüôË~%¡[òcouÒã£Ò*aäªk²®ˆi€ÆgGÿ mJü^ÁøÆ.*‹ýc“E´ËˆÉ> bê­|nê)~¾ÕSöÊ2X™ `~äòû¼ûës®ý{ÍôiI嫽e÷3È„ÓÅÖöÓ…w͘µG|à",bxØÖ,ÌgàRÏ×ÛÆü:È&ÆÄ¸dð8ï:Ý%G'žvpL!ì[CWyÈ!à½sŒ¢@Ýjèeîybʲ§1ñ¦¾Ògºw¹xhÓ2†øe×TMðЃ~Õ–ÿf¡»ðÚ5ö›Rô?Tõy¿l|@¾Þ§'OÎaq³.ikÉ. ¶Íƒ¸ð…öŒÛŠú7?/·e_6¶þºÚ º·#ÄÆhÛÊo¡¢¶‡`Ï×Ú ®®·ßÜ€¿pLãã Ýù·§io¿Y$œbmsÁåÅŽÒ;"NîHÌ#¸˜k«Ýà­IbÜ(/çú+÷·Ý Rª®½ây;<êo=ˆ°ÿ'Åücš÷]}þUc/7£‘té<êG§”=4†C„¼2l¹#ÿÖZwîuËhé}— køZWþ7ý»Šhà9—: šýÓWxKW—òËðkൣ~Z=íÂF}?ENúÕ6DJ0µ—ß· ?p‹@ÁÛ½i¯Œíñ÷5 ‰¿Z™Vä|^qðBZü­Cê™#zgÐq 2ú`ýØ«,}WþmekáLæ­ñê´Û^@WÚþ ÀS§Jj±w†Zbê…EI™)ßHÈYûÓ ÐB;äùBsé-ã{ÐCMCÞ͵îâGÇ€òȉy‹-E·€µ¾ëW0@ÖqBüj{ñ­åÖÌËÆÖÔÕuQß.µ¦ÿb¼ÍÞ4!©±òÍ?ÛÀ‘?´Ô"ç“ß>QÖ§Þ]ýø”>x˜[ÎCíOS³'˜™? U§]׿Glö¢Ã÷F‘Á+ÁÁŠæòíÈ·ß÷à£;Ô±aÛãÈH1'ã²sÉÔ^ôØ> + ±AC¬"DD3,ú’¤¡,Á¡áw„äxM}ñïªúüg ]¥o7˃Så៉•l°æ)B¬kž0ñJ?8øïRüÛ¬4eÿ¶Ð˜}w¹%çŽS\úúÏm:fk?-Ⱦ¶'F§Ûä ä@&Ëñ"­Ò«Å$ØÄW2dôáb5èóV}›WË@îKÑ>5¥ôÏM>çÜH©:˜­ +?"vF³oÝókhÐÓ…šj·œ’ pd¾?Å"«N üFs¤¬2@[§íŽ!‚×{+n £‚¬BR¢sNß™¦§íŠp1k¡Ï—ÚA÷ö„Ø(àë­|ÌjOémË 4øl¹¥+à­ÍCØ0uSƯê¦Ä_÷†áÁ.1%ëTÅÇíJÉÙòæ¼k¦a\òÞ4#[Y[ð“„–ø„žôã9â»)Jøß”Ü”Ÿöú1±n·t–Ÿs%0§È!c—o ’ÞÚïøÎÈ…nð£ÅΪ;–qr‚ ºå~R”æ=%~¾ùj¹ú|«þÂ6AˆÛa§ë:ÏW{ÑoŽÕMÛ !Á6‰vMsÁÎ >|w¼Õ_~o£¯èþêGÀ÷·£Ã¤\äê0!ý°/ýðÐo¶>”ß[ë.{¤{zº9ˆ‰Þœ &1²¬H½â–‘² Í©?.·%^2õä\76ÇþbÊyâÁROt<²¶Ö¿4'( ù²ÜÜí™Çgltü¶ú>ïÊV/让¯êéR/䥬µânUʳ¿!’î_¾ÐQËN5ÕžYèÛÜÇjÄ¥>ðƒ¿Ï3#¿µŠÑÑïPI×Ê£îüm¾±èù…ŽöˆË_ø¤E/¼’’šºØŸ'±¯ÿïÒ»¼›%²Þ|±Ñ{m—rï\à’sÝs„, Nb—û*žöá’¾íF%]]è„¿eeü¾6³‘ÉæQHò‘’TrÈpWqÖitŒ¾=÷Êö8:bkñv§p2)a¦.ûªˆôÓêÇ¢ÇîÀo+3ä4}øîÒGÄkû 1Û:\úp­=ëúJkÁ SOÉïÖ)Dˆ_ è} nì©|àš#çœrÒõ5ÕÎ|‚}¼øéZGÜݵÎÌ)1Ù!§Î×Vý.$æ]2÷cS?/ÕÔžè8X‡´Ð’ô@ÿ>?ÔØWõ|cï7ðØÛ¢ZôÒès·ŠPðÉÄ"ý¹Íáü¹Åf~Z§ =j|±?릡+á²e3ל¡íÌ rëª!>½úxþ²Æ¨>3Vƒ÷E ÝöéY{c¨Ë8ñ­CJÍ8Ôr`JŠG^q0 `œöêpŽ˜z¬¤—8fØEf!5þP)ÀZ&ȉ+•·7>VÝÛ=е&þ¢¯O¸âÅÆÎóÑk]ЧÛá¯N”<„GNJ;˜Â¿µ‹± ïóï˜' ¯6‡A­"\’CÁkZJ¯©ë oÛ+ž˜‡`¯m#„XÏ£È%"æ»Jž,·ßöÎQò]rZžeÿfwóv¡¤i«z¶þñúT#ÀïN³ +W?‚÷…°Í ~Áö1j{öj±-ÿÆö`åS;ÀON)9ùHˬܟ„†ì#c¼òFÚF/-wµþ@U—}šóÓ7ñÇ#E=É¡l¤¬ŽPSä5Å¿8§(éG€.=ÔÒJfQÑêÆâßækÊo*ëJ~³HHé¶9bŠe + p3µì|±©þLÃÃ{Ê_‘b~”pÓ®˜†ÀAîyè|¡©þ<0ÓsñÊ:M/:T¿«óÌÕÀ7z±ª6ÄKÙ;èäœo•­`@ SË-“eÍã¶GKÀÏe¼ôΠâׇ*‚żœ+#@ºr¬&ìôgßYlˆº¾Ñ‘v{°"lgôÂ=ƒI +ÌÞ¦'ÿ(«+õ«Øðmu±GŽO2´g߯ÿAÂI»¡l.¼«i¿”7W=®H¸ÿÝ'éá©›iê.¸»ÒòŸÚþm¡)÷ÚÚDzG.EuñHMþ½œ¿ü?ì¬çß:¤tØ¡–¶NT›ú²ï.½Ïúe¥«ìöæ0òµIˆ{ÓEŽÿå=,ø{‡˜â“1 g ÉÓИ­á’0»¨2¯DÅúµÄlýØ[` ¯;ÄäŒc5&íH‰Î=_¬†¯°09Uó®â¡ˆžóã”ÙŸ©N3Oã¢7†ª^L2â¥'Ý?a²N—hէˬú Dâ8'éªEŠ,øs¯¦ñË6‡f•Bã”MIW;3Ú¦+Þ鱯ah,éé¿x ðG›Mý€§iù´€.ð«á±kÃE÷– +Ÿ˜&9ÃÈêò¥]DK÷̳Ë]*x{î˜!¤8¦ áGrl‚CŒŒ^ý˜}{c ÿÞFoÅÏ<³Ô*¡f›ú/,£¸7@ýþ•œæŸ#¥;¬1v—<”±’¾Ûü~{®o8åÄdûîCDJZn=9˜&g¹çi%.9³(0Cg¹£üæÞ8)Å-ã”m BƒÖ;Kï,4§ÿ:Ïý®þOeMÖ ÷ ½xOHMßèE,òI>£Â£¬.pÊЉ~6ð–‰ö)b¬S,/÷QÞšÇHI§:.Ò¯$ç\,ÒÁ§:Ì&ÂDÛ& /œbbʾˆžÕGLÿ)0#Ô.¡eZ'P¡Ö1ð³c¹hoCwÙýIrâ¿•Œ²ƒYJÞ.ðl2Bªi½Ô}¹Ö ö*×Ùf@ܹä,°_/ ò$zñBNAØb4íË:ûç—}f á<³ø¼­QØ+Ë º.äàÖ‰IúèS3÷j ÷h©üÌ«ä#üMÙ›D비“¥~ «h£ôDÆOùi’úm¬ðù'#±èë&›²2„| ðú ÿ~¾PÏ?_©å]¬ÐÀ^2qw¬ä©¹¿ìቖGtÎ3ÑR~ömû4)Í9O‡:ç(%>5ØK\²æ}Ö Esüƒåž´ßO „òc¡hãcÑCó4õHÍÂû”„GÅ…¹ |¼ºòò6ö{/ÿ–MÊ)ÝÄÚ +oÏ×eÞ\ÿPþГ…‡jf…}†œ)kÊ»¥h+ ö(8ó(þ­y°ò¡5çw1#æ×•Žì{çRùÙ»zi+åÞ>˜¡9¸Ë88Öà½Ìõ^TYˆ[éλq0 6Á^k›R~Znϸ²;yu¤åa<:Æ:CËpÏq*wFP¯ì€ÿÞŸ¨xahKùYY—úƒRè+DâÙbƒÀÈ“Óó|2F¾}éSóÔl˜]JN[ù~¼ô¾ä¦MDÍÙ%¦h› 5õT=úëõF'$téäån?2Ô+£í ñqæAØó“Eæ`ãÀC¬“Ð×.@k©HÙ'*&È#ç€ï@ÚÊ_ÎÑK<3øÄ= Yþ3×eÂ"|ó”|§”˜dð\ÎËüñPÅ„òÝ…7–:ŠnXE¨ðÝIø«Õ¾Š'†ÖÂÇZfÕžˆœ²3IŒäoú4´ë$ð}G!žr¶wŽSaŸæ—Û¥\Ðê0&jmåV´Ôy”­M'úFþ×­ššc1Ï*¿Þî=¶JÉëR.|PPöLÈÉ¿é‘óàö©êLÇ$>É#!¤X§0ñ*Â6ƒ;Ô×RÖGI9‹°°µ^LÜB4~{ 2þTƒÊþb"U,Aúîâß×?B¢ŽÔõ¼9ëRSKÎVé§•l™(öÍ"³Îg %ä‚^BÒN9­òóVS×Ñ"ïWÓKv„ðH ÿÍ5)/ì†u¢0èÍ\Î'# ï’aãNù¬C›p¼È#¸T¬2Ë,%}{¹>z˜…µ3EM[ìÁ¼Üä–Û$5(ï<âS3-“ȈAÈS v^iUn%­ï„>_h/½å›'d>-Ü%‚G}]¦Á½:|‰U†ˆ²ˆ¡¼-3Ð[Êú¢ëšÚœ>ðä|÷­³Iv5>}_AHÿË*hùdb3$Øäu€5€Öø<Ük`#.OâÕPŠV{A·Ç áŸ·›ûO×;Ý:6qK„z³5…ÚV=_éNûÙ2œýÛÞpé]ë$#Ë!«E™'X…ûbF¶k¨íIÜ[÷ 6îX…K½Ðò=e“âÜš:òjôáF_ÉÍÍá¢[ýE÷lظ£9jѹ–^¸‡Ä.町çj`€w‰^h͹¬mÌøÙ< +²Š‘á[Cˆ€×IÞÒ3Um {ê¦Â_=2^¹WÆ«ôJy ë(1®u©ôâÒ,#áçý!ðS¿†‡Zï‡>Ûè*ûÝx#‡x¶@.ô+qi[£àçö‹¹…w7ú0Á³ü¼_\rBú‰ž ?Ö°«ŽUÔB‡³;^õÌØ•÷‹¶.á_î9b6€IEÊ6ÄãÕ~|”c–’åUTçkXUi`þ(¨£ûLuþÅjc£sÐŽÌÛ}!&Ü:Ž9Q0JÎ4¢GÁé{@wLã˜h¿¡kÔ§ï™8Ö7qÏW.БræéGsÕ…‡7Xæ™à…adÔÆ>ýl¡ŽmÁíÂÊç–‘Òû›}e} +@·y¤£e® ú@÷åœm<¤y®gCüjlÚÖHу=aù3ï.ëbË<4ýÚ6Ò>[õÕ$àŸ-31ÇlºCZ¹ô!ó¾¶#ýÆò‡Ò;_7MvEu…¢¥ìþú.êX/`êX”#ë™Å¥X'+B½3èxŒ”êÑ7ð¦òïÊ› ýJÒ¯å"5ôòÓ%&î|…ÇÜ—’RÖ†‘Á,壥֮Àu÷\u¶KFÉünÁ‰–úc…†ð«h¥+ýÐ+àç~ %å¤þþ±êÕ¥•¶¢ûæ±Ê ç6ýx‰M%iÓ3ÝJzé¡‘ƒujÈ9N9&Ö:QþØ<˜óÛþ8ô¥OÖ€ñ+Úvi |}ˆ’¼3IͱÉIûbLÔö üùÖ`åcMSîUu}úÏN@×è¤=%{å#ô¡¡­ü·qJêÏCø¤_ï+‚œ"b²º¾ä–œ™óãö‡ªgŸôu\Ç6cc(ïÞþ4üÍ®öÒ2†‹Þ!¦¬¢Âçës/ûÔ4èÉR ck¼ÑõËb[Î5ë,Ø-C¿=T‘²|*f¥UÆ(Ü32ms x‡ŠSe•ÀÃ7‡ËîÉkSžoL¹½= +‹ñÌÑ+µ\‡›ìjÉ!!§h ¯iê/í–?ÙŸB„®ö•?9Ô’‹O—Ù$¯Šó©jPGak¤â¹¾)ó²¾!ïWm}ê完[' +LƱ¦–°ÖT5ç_>ßKß<)ó`î” cö§À¯÷'‘!ÎÙêtǯJ݉zˆÿ—SFÎúôO Ïø‰N).gk¸øáöpÎMÛ4$üÓš€ëôÅž| ƒÇÛgà fai°S†J¹Xæ ¾š]v%!_Û^~Û:UãU3`€_…xtÔ2‹›èš%åæì_,résÊ»ø–¢çWòæqTäJwáo¦AГ}1ø•G…ˆý¼Î¥¼Ô{¶Úغ+©N?Ûhî²Jéå«ÁOÕ ¿´ßúûtuô¥ÍHøÉZS·YYÇQ´TÞ^@Fú5€G2p(‡zůçýZÚ`SI-?5Ö×íIè¹€Ÿ½X¥¡¾˜Ø´¯›õgFû?“³JL“¼‚MQ+~cTP¼;ÉÈ<[â‵'œëê?o·ŒÙm¯óxv5¥hWBÍpÍ7ñÝʆVïÀç+tôÙ:¹Ò"†%ìNÂ’ü ÐÅvMà v¥|°K÷¾ód»±ãÂ\#°žÄghàxuyMŒ2›¶;QòÐ-CDžhé¥'Ä1ƒ||öð÷,.Æ.AD¬õ%µÄ§Ä$ÿ±FÖÐcØÀ=¡{3ô’£µæî-5{©a%%®öU†8¥„¼Sƒ€å_hlZÑr7& ±~ƒ€æ_`!¶…Ð0« Çeø´tÐé½ò³IP{¶Úм h’9&åËV /ª‹•ä\Ï<&Á-d/Q‹=ú¦†uO¿qˆ’¸2ø üÿØZ%Ÿ6kœº0ñ¹‡Ë4äÑ +“x¶ÊcŸßuhÞÂÅüì›.©ìßÖÚŽÏÛ5õ§ë,¦KƒÍuj«K|Ë|úÙzý»O¦¶Ñ##—r´Ê@¸½r¶Úúñ?÷¼©ë%9Ó¯ÄÄ{åèÇ4:гqvQÕ+·Œ˜q¦¯£H q›cÐgª÷×4±—,}§ç|Yab}€8ÔóñnUÓ6Ã-ÓuÝ'†ÿ]Ûó“mëÖ´·mζRÌÒF侄_º?ÉÎ7âÞîlƒ¼pˆ!‘V1.sWTÞµáÌ’V⾘Wj™ Çî ‰±ÆžòÀ=ZÏ,}ÐCðW¶qÄëQ|ľ„WåRÖ RB¢± òr˜m¬:òÊÞPîãÓ%Z• ÐCÖz¶GÁGº̪­±ÊGQÕ ëtÅ S_îC»¸"ìt^˜™¸)¢$<^îUwtºµÀûÄž©n%)kgd¨ˆtȪ‹÷¦Yyº6äƒ)#ÿPËF8dØ»±Ð–um¥-ý¦MXîUsá›Bf–¶µìùf?2íX]ƒ³ áÁjAú/Ó´Øït i?k›2nX§ñÉ.%2ß y¡jª>30®YhärWƵqjÂP—%ô„Ëë*»µ|Ìâþí3ó']GåsŸŠO>YàWŸ-óÈ>¹x[‹Ý¼¥UÍ(wéÚZŒC˜øù¦ì;€ÏJuÉ1¹'ËLP‡ðƒYhšW…ʶLU½ôšÁg`"5]ùµ­¹¿[' ‘¶)hœgŸ¶Ä§­Ø€öÈÒ¼/¿ã’3@¶i|ÖRGÎûde¨ÀN¿’Uy¤ã`ÎVÞ¯5¶šeÜò-1d–ð+?€Ÿ™G¡o\rr¹ðÒ³„”ãE6þëfC[`–®_G‡õËs©««ö$°T·›ìVU—xtäÖ$6ѯ#—^¬sé~-½êDÇBž/²±À^½žÚ$xОˆZ¾6{µ9 +~rº@­üoKËħ ñd™Võu›Ëý²N'ŸhI€Ö®†ÙgðY†nÐÝ1Äÿ" {¸ÂÄyõÕŇF +Ü£#–Ÿ¬óëÎ7 'Fɧ¥‚ÍSÈ(ÿòuýkë]ßÉrs³[ÓĴ˨v1Pà2÷ÇÊŸ˜:‹ïZÆ`‘nuu…ÇÀ ½À¾ØÔZ5¸´ÅAx°o±¥ëÓVûôÖúž…ÀÀê"†`=ð2ÿHC)8[à }j.Ô.cX%ŒãGÈmKÅ ucùïʺÂ[ ¯ÝûIUœt|ŒUBÏڗг—º oÎ ¢¿Ñ4&ýhxew´ôàɪf`Û$¿À#þN#B÷……·|³Å@½dß\îK¹¬jOýÍ4\éS4Òí35àý)J¢SÆ)qÍs@n99ÛûŸ|BLô47úûaüÓoD¨´ÓžGWOß›fç:€Ç:Äø8ëpÕó£9|ÊjOú-CKÒ¯îYt‚KÅÉ[!O—> ßž¨9P“áË4ø±”çVc—>f_5v¥^ Ü÷}ºÒPëVÕ‘ì2\ò¤2ìTͺXä ô 衆V¾Ö[þTƉýåØ@,õèi¥691É3OÌòΓҵŒÊÓ%Á¥ ¦Ùg ‰v£øP×Ò¸7…Û«|6×ù`qÃ; Mýs£†w¶XËÖ¶|c åVñÈk— £v†³nOP^þ4E ¿ê£×Ú´1BK0tÂ:<äæhÕ3Àã=3åÞÚȼíÇdœ.rÈ+Íí6))Ã,ÂÆ­ÕÖ2Õ5è c->Ë&*}±=œ~Í5GLÞy´ØÜìÔÔQwDÌ<·²™í˜«'zTìªc y @%8ÈXÇ9ãeAgjì2|¡Žö¨`Ÿ‚”un •|Z¦àöe ÐjÐã´ìó¦žÝYbîÚHEÐJoÑÃÍÐËC=øØª`6Eìܵ1^‘EÖHÙU—©ºJ"–>€ƒW>–<¶‹a±G*lö¿Í5M>Ÿ-ŠZ´UÁ­<166ût,°GSo‘ #öD°ŸžRöy³¦öOKÓÀÞ µ@Ûb‘r ŸM ïþÛRÛñu•ŠðÍT„ïõ%^14¤ÝÞA$èëuƒ„esÉý/&AÃÿÚ‡¿nrkÿX¡Ž”L×tÁ«Ý©¢G~#‡Èß6Már%W¿ì5|øs¯eêË&»Þ§D¦íŽ‚Ÿùtl¸OÃC¸æ¹U9£Ð5²5Œxa“âí¯|‡Ø'Pñ_8øÏƦKE-ÚA[¦Iq¦±ÊÇÆŽ¬_<LŒw—t¢¤^j§À{fȾYJîç>Í!G½qÌzB‰ŽóëˆÙ5©ðl‰ýð>- ìœgW.65úëýê̱ž³Î€_9ä°›x㜋U6Ω äéhe_WÙÀã’}rTŒMTñʯ Þ›>ÑÔ²õí]¦ql„EB/ +p©KÎ,öÊ1. ¦À¡Ûýå/ôú—õ殓EÝ9ONz±Ì« HÑ®X +Ðc9ª–œ§k½¥O÷ÝnW²`+€ÆsÌsý* VŒtä×uûHO'lŽ“í’Š¿ŽTx¾Þøþp©©ñd±–}ºÐÐðx›¸4è &ád‰÷ª0§’ÚÓŠ<ú–wNu3Ç«æ#¼*z©]ŠJtÌ¢Ž€ƒ‡:J©kŸ|¬ œk«¯õ« ™ÖéªÐ•žÔßÖú*žø5\âgSSçẀ;ý®èºæ#àïÔÂá²€vd¸YÃ…h¸»šƒt,tô¬Í´1„ï`!°´ oVF)•€vcïC¹0RaNYÙ›C=¹ØèUus£CÕúnkœðÆ"¥d/ó™ÇËLÔù:y¶Îa.Ñ‘%%XˆËÐøÎ³PËñjðéîYTŒ{þöDÌ<¸óp¥±Å½Ðܸ%fïK¨…ÿÞkìû´ÁfîM€ƒlcà—k=ù¯-‚ؿ¶¨”ÿ=¨ëû¼ÍãXçp¹BpÒá"‡oì¯JØ(´ $ã|•Ö”îVñV§ x½4ÓêµUÎ*¶Íó«µ(Ÿ¡–âÖ +ðº'!Ä™'P!& ŽÍ¸hË45Õ<ÎÉtÏ6 Oëèóœ*r€Ë±Öir¢]Ì-²ÏðJ­bz†MLJ°‹!G ä|¯ŽRp0ƒÙ…)i—5qÿ4•=>jÔ:ÍÈ Ô–_ËzælVv®'æyæPqf!ì¥i´7E|:*Ø2 =Ó²a‡óÄÌ3 )Ï#ƒ'ìg?µO€ž9Ĉˆ“%&Ü5OLuÎâ“üZèd‘^¨÷/Úé2±Ü*†Z+çd½uسÒÜa‘вϖ¹$pº„Ïþs“þºÎ@ú5¤‡ ùö|TxºH´!,Ô?xë–A£>éYˆÿYojûÓØÒyjh`Z.Û©áaö•5˜m!á] ݯzôIäñ¹ð\_Ï8ÖòqW–Ùg«Óεl_àÌøÕÖPþmÓpÉ3© î2àÉ_{”\äÖ £pc´:ùHßÜx¶ÜXj ”ùT˜¤­±²çŠæ¤+Ž™òÐ3#òÉT[ë_äyÔOÿ9s rÏ£¢½ +tâþTÅ«½ HÈ¡G:ßhl?Z0]slPàzð§å걚Qq¨$e{¸T«¤"b{¼4(pãÕ†¦‹ÕÚÀ/:åä’ÝIhœy¼êõ—U6ùbƒC·¨É¹ ÃðàÂ½ØØè3Öñü@.ÕrNÖë›Î·ø5ÎEË(bæhq!3-°¯¡¹ít­±ù(e¥¢–XD•±+ —͚ºó©K]CÙ©z¼#D„ŸmÖµ;Õ”ŸŽRäÓ‘ó]ªêü# O.×0¶ÚÅ–yÜ9K<[f >mpÈçLì ·ŽVùtßxøÉù‡¹¦Þ6‡ÏÓwVÜvϱÁ€gf~Ýá5ü÷“w´@¹U/É%šyu78…™ô®§$ý¯ýúÿŸ“Éñ©ªóÍ3påjÐ=Ï,ö¨˜e'À~ ZûyÕ2–}Ó:‘sÓ6•÷Ø#Ç&¹çèEn5§Ê5Ç(ôéxP‡ÛÂü‡ÖéÂG94Ì1 sÍbNô|ò¹©¹'0kÔ,¥¤ž,óHV8Â:Sòħ†5†‰³Lø#==[¤UîÎ0‹¶Dè(ÇA'zr¡ûys¤A§ìNV¾0õèüs`¦ùt]ÅM»„’}8×7{s4‹|fìÎ>Ò*¦¤z•üÙrS󾄘 xí ŸŠõ( `O +Î8]insjꩳx 'Ø>˃ +ôl–OCÈ;ÖSÿÞæ0¿n1I>6gWTùÚ*Å$^¬74ž®r«uÔâ# ½Ò¯"dûÕ”ÒCëë ôXæFÑÝÍ¡ª ›Œ }úuœšpïD¥iq…>9.óÂ@¯üºÂ§ž.ppuuáqàü–ºž¶? 4H¬K…Iq/±°g낆?Ì̓ì Z­óØl‰ +d)8µt¸GÍÜ‘ÂBw¤È' ÓÏ–þ“ÕÔçx9p¶©cäx£©ëËs¬ÅåûÔ€Ÿ#g:çpIçF:ö‹¹¾KÕºçÓR*ÿÚã7~ÙôÖ´Æ¡ZÕ,ˆIDIr*Éùÿ½ß<ò×^cÿÑv´ÈÅ}ÞáqÿØ´|ÞáóÎ×h°&qWŠwªé¨‹µwÝg+õ€ÏàyTÄ‚91Ïo¨®ºØ` ý‹\¬¡=ÓTôÜ­! ÿÚcPýꪟ +›v¶À¨:_d!Îô´òO@ïýµÒÐðe­¡átY@|OÊÖ(âåþ4)Á¥à}ÊFº?ð›b ×pV hŸÍÁ‚›{¢{^%.Í¥$¥{”Ô¼OF>õS󇯦†æÓe6ʯ¡—5PèS5RòF‚K)@x¬RÏ1Õ« dxžîQÒÏu<ü—µz`-L·žYáR×’¼ê–ç<z §dÈñIÛcÈWV1î­[AÍž—½3 +²LÀC= +RàÏˬÓÄDó8*|s¤ê©ONκXi¨÷-ÔÒmòêL«”˜ìV³Á= €>3‹«Ó×Fà¯7…˜HÀ§Á]Ï ¬•S xw »Ê­d–8æ)Y9Ã¥¤älMbÃóÔœÓe>ùb•‰ÞÈýÝ:UòØ1 3OÂ^ûÔÄL'à§vf™Æ!|ð ð¾>%­Ê<^ñÔ"yçþs¶²èTÏÁ~2´´ŸØh Þ3n-:Zªeø´\ØWüuƒRq²H)þºÉ&1Õ7ꙫýøH§Œ^ôÕÔÔñiMqÉ!a¶éâGv (hWXöÚ5‡ÌøÿÙ{¯ç6Îm_ðaj朙³}Òõ¹Û;Ø–½-gÙŠ–DEJ¤(‘sŽ ‰œsÁ¬,KVÎbÈ9ƒ9èF#‘ÒÞçÔü3«uçÞ‡©™ªû0UúÅåBQ–D¯ï[ë , ¸&f’ c&n{Ò*ce@+…µ]g·&;óµ°]/þÏþ‡ ¶ÆWC:Õö„^ÜÝrô£GìËÂ3¼Ö„–V$Ÿ‹Ï‹ƒ¶]yK>;÷¼ýxÜ&¤¬NŠ›½ºg¼rQÊ£R V 3ëfw FÒ¥ÍÑêï—_VìOûºµ¬êñeû6u&ôƒ ãSv<à©ì¶ùGU_i{/ÿÛüKRQÌyýÅ:Ô[Ð,êL&rê–‹€Sä[–v§”ªµ· ß§Age= ·9d`Wãû¸©Ö¯ÍHšñ¹¸ ƒâ{XuÚ}¿ò/)ŸL”ô‰ø#îdÖ­M¶ŸXïsòIàI¥2ÑòzaH/$í,õÖÌ­¡µÉðD ùfdíëoxEKOÉ¿Xo–åPûUxšWº¸NPµ2)ª¶Þ#þdºÑð9ü®¯ÖÕÐ4«fi˜Z°úfSÓMoؼ8!(_ž·ù_)ˆó¯eЃP«œÆå7Äâ­^CÐ(''\êîÕ)AÍìÊÉå ÖåÍ÷n1/ÅõÌRÔĬÝÓ™áVÖ’cFs}üð §|ééX/lŠv1n´lŒ±K—_SNÆuâÔ(îïqröaÕW‹ +N¶‰é»ÎnP§ß§eü2ÑÔ@ñ—‹o[/&Üö¯ˆùÞÍ!$fh­ÞߊžrÏì–~ú?£&) µ°ë0;».n$,¿©Ý˜î<7ƒ–°‹ˆ ›  ò¯M˜yõmç¹Í‰æ9'§5åÀgÀ3/Áþ_?[¶>F»œd–n{] S×…àLý­©ÆŸsÀa;³.X×ˈiZáúxçɰNа9<0N¿Œ€Ï\%„¦yåž{6†»Î#VVMÚÃm‹Y óZ64Ò¶ QIßÔ*ÉëoÅKO¨yÚžKŸ¬¾ªù12M)Ú¥miÅMK3òöÙayÓò°¸1¦´lŽ‘Ïz4};÷¼í ü.BØ,g¬L±¯¬L *šAØ÷‡oºk=Q³Š³6Ú‘g¿]ñi`‚y±È)¯\²†Ï'žâW-ݲ¨M%Æ?W¼6B<µð¤v?øŒ£ZQ#Ôœ +c}œWÕ)èqnYBÇ© OS.­#mc7„_U0( >¹Ùxäïå•G>$œØXA‰–‡¬ò˜‰ Ú…’˜øàåíË#¤Sëã¤3[côóá)nYÚ%a¾ó‹X;>>1ig׆5Ìâð4¿"iR5¦á×&Í‚–¸ž[˜yí˜MHŠxµq3¿1¨eà ªF)1 +*¤5ξ%4ß©û24Å,IÛE¤ `rÒ¤â%­Rðžô«qK×ù¨±ëî €OK~K@ÏÏÂ-Žé$„°†××S‹\wÊ÷¹nT~§!bï¡SP†nnÌ ¤ÇŒRVÔºÙÎmOXÉ%[SmÇ7ÁË¢vAWÖ5p+nº½1#†ó“´Ïuv/ Mw[x^ù“ïAÁ¾ì7ðIêïûuÓ(îÄù¼%8Æ«±JBcÄs[ãðIäü„^ÁˆúׇY—Ö^Ù®—ê¹Yù)èûÄÀ®J$ xI‚’fÔ,g!FAãÆHû ÷ÝKpÝ)ücLÇnÁÜw“.•2bä5„´bRÜÒ-ÝËMZXU‘ÉÖq#³2=³H¨éÙÁg€××BÖnIÔÞ×1 ÛÂ3Ì’ð4¬ŸÛ¸>Â)Yzɹž’w­ó¯Î=­útõMÝ×Ë/;®¼â\Z{#ªL +šcQûò0«Àó°óPÌ ãCMW^·Z{C9Ò±+'¯==+•$ý·bÖnéèIð]åà¿/ñ…I{çÕµ1F©ÿãŒï ólÔ2x/`¶ƒ6+븭Xý~N"ŽLs«7GÀÿNN/·Š™8M¸~Œðëw æ_¶ò¿"W.Nó»bvewj=n¦E´KYèœK)Þv+Ä)‡„º:NÉŸÞôõâ“Ú/·^¶AuÄ’œGHÞö+¤Û³ +æ# uÃ-‡"“'¢ÒÄÀ©Ä,B +õŒ˜M(øœ´KÊJ»d,ÄÂkˆèIÃ~]H§ F =ÂÀt/;¦—v  ) ˜ÖòªâF^j¶cv# +ýn¿_òù˜ðàßÛ{.þ§„™Ïk‰D¤Nм5%¨Þ•4l¼exo—~¶ +çxKÊ‹OsËð©)›ˆ…¹e<Ä%">ÕE œê„RÒÕ MW~»ö¶îÛxÌÞ­HZ¯ÝßÒ°ªÜ*þ2û´ü»­ñ–Ó);« üd pëEï+â‘•qN9xµžˆNÔê¼×ðïÞÕ/“FÚÕŒ]Б0°šWG: +ýOaÍ^ÓÎniº™a­¤uu„raº·è÷£Ò ÿ°5̼€h€·Þ‚Ç™ KÛ%Ô""„µÌòå—åß/=+û"0Þr8it&C÷Ö^uÄ &ÄËB3øñPWFSx²1?®%‚WâV,MpJŽnUznö%oF]÷¥÷vý_ádÊA¯Êz¥Â¨IFݘ䖆uJjPÓÇé{+#䳎Ûe´ß(û½ýfÙ'Ð˵iWw/ê” Ó>¹sõß„º½ž]ðS~.am˜y1¬“v"vµÃëÙ«èëùøw¢µ¥gždf•}Û³"Þúá’ëvÍ×)“°H=”´+† ;¤ëf%,j)bU)3>¹òý²ê:ôAW°4jà7mÏÉåˆK@Ž˜Y5 UK"ZfEÚÍïÜö 7«5a¤U,½lþnk‚xngN9ѳjfŸ×íŸ{RþõÊë¶3#ü§ +³ ÜŒ›z6¡–¢™8»Ü÷ꕎîä5§ô÷ö!ÂO(ô*fa5&Ì\:bcw¬Œt ê¹Õ13¿ek”pÊ{¿ì3ËÍóÃ15˜rµ +àÓŒ]LɹT²ŒK­ ùõî'_™®_þCï™ðÿZôÇmˆ¶3«PlÏ)ä˜SÐ~ÕñP³4<Õ|xõuÃO+/[~LQóã&nõŽ_*Ü™•KÓN 5aÁ?Ðx00Ã(Š€6O;”S!H;¡>ÁÛ®2°ߑú儞^Ó±ªƒZ^õÂ[âyß“Æ_6Þ/¤œæµ±Æ£þ§Õ_¯â³¾'%MAMg}ŒW>÷€p*6F/ŠŽÑ +ÕÐH~¼ø¸|?fS1º/áì +™”¬µò…ÅáºÃ¡ibIp¼#/0N8¹5Ùqqe´ëâ–NA UÔ¡’¤½r~ãÜ“æC+¯ºò·@;ÇtèQzùú$ét`†S–²òÛRVVmh¦ë¬û×+Ÿ¸ï–|˜h;™0²*ÃF9esZT»ü–[ä}L?í¼Ý²ó5ù´ûvÅ×uÑç֢à¹Óv1)bà×ú_4pß+ݟ夔²À4¥xk’QÑð¢Z%%jì™Ä›ã§]·Kþ4!:ö» GñïJXùí#»üãåõQAÅê+YýÜo´ãÁñÖƒ¨p±RK’v)ìI{ºUàzã9wmZÔ¾ø‚qyõ5ùÔæ8¿Þ‡_³* (E™Y1/ã빆:¥Ü„ƒ×štI91£¤3¤áÕ'W7ÇÉù!=±s iÙÙÞ{©¹ë£«NeHϪD¬ü®¤•OØîÊwÞ­>l¾YúãÊ©$¬êhzÅ·¤ßóÖ;K}£1 Ÿ#›µ‚/±v”ƒ¶«FìzÒ5ðkÊ¥ˆè©Å›“mÇ×ÇZlNNG „Ó/½>7Ï£léÚŽ¯M´-ÏËÎõÝÇ¿c&eÃßï¤UFtô«Y˜›—Ê2 =wƒv1yeJT z¦Ñq«#c­§C>™Vžùÿ“Êo7f( sKoh…æ¡ê?Î=i9µ9A¸šsÊyi'«.¢ 2Úv5 šÓV'íP+Âf^£ûY×ûÂÏÎûµßÁ~ž~?ϧå|ü®¬WHA,ü欣3*Ù¨ž]¾9ÜðÃüúýkÏG¢S´DO¾˜µs›Ó.%iub Í3P/¦ÛÏ¡–®â”ƒU=©À@ëÇ’®­Ið·ÏÛ¬½húvùyÓ·P—à]꫸+aµãï?nNt^„ý<^±zm tñ8çêæ„°.®ífãŸysßiøR«*þ׿‘ßm¾n>±šó©bÖ¾ž¹aÕú´°.f’sÐ' GÖ†›^®?°6Ñ~qößL8û®®„UÊØœ’6FyeˆAÒ׳«6ÆZnMŽ…´ä‹I轄[ÕχfÈ+og=³¿Îžj9¾ ±9-¨\׬Œˆ*Ÿ’»oµüe\RðãÂüçï×|Ÿ²ÒÊ2N^[XG¿²6A>û×7.§ZŽÍ=kúnõUDZÄ4§"~µôö† Rââ[êÙ¹§Ç—žµžB5Ô¢¤‘Qݲ2‚ßëK<× ZÖßð+̓­_&ˆùàëÈ”uó¨Q}gaHC½ŠX¹-1›„·ÝÝšQ2ì…¾mÚò³ãNõ¹g gzÐMF¹dá51ßz¿þÛùaâåÜâ MÌ,ç.½$ž]z\÷]p¬îðLW’Nm{±ç.æ’—†[®O’/GÍBVÒÉ'fÚN´màí)WÖ5mG7¦:Îdýr%x#yÌ*hEl|rÖ/Q¦ÝBFÒH©H˜)åQ¿3`u-âΠ–S¹5J:9ÿ°f¿óFÉ7žÇE›àçÃ&6~J›÷19O7ÔüEØ"áfçT})«”‚™¹õñijAÖÆëØñHy›² ÚzfiP§ oMuS€O¡®yIWëé´—ZžórÚ3.1=kïí‹k¸5q-³Ñòë“iGl’^²ð¨ì+“úà?Íݾ²/¦£§\bZÖÓ­NZmË£Í=Š~¯ý1i¢fí¼–ŒSB‰…MaüóÐ'8ŸÈTljÍQ¨ÉqêùÀórXÏ«MÚ•|ðÈü¤UÜѲ®Î=iû18E+Älb2f“1¬·>· tý°øH\ã^¥—¯¾©øqs´áx`FÖ±>)®GLj1bîU,ò®‚d¼RIÆ'æ§}"&è2~ØÂkó½  +ŒHšç_ˆëµÝÕZ~Òu&‰k<³2íp~L9%ŒõaÚéÐí"fu¡fq'îÕ#'Ö^7r!ú|3¨UW†yWü%W^ˆj"ÓüæÈ1ß4xê÷+/+¾Ýi;5²ëbf•xc„^šà5 z щ;vœ]ølRQðÅìsú©eÈaË(j_§œwÞªü"®¥^NÙÙõ7§-çáum··ß,ÿböñ8bWˆQŒº¸-qå2¬i^|†ŒcÛðdÊÑÓ·9ͯ{I; ÑÏ'ŒíçƒÓ' C§?Yi>Ö3ª"&V#h/iÐÀ*è(ãVV5já5‚/mHX§,m§·¦ÛN&BZnnà ð°*¨a\ɺ%Ü¿˜‡¨ž›5ß-Ý¿ºoöAñg!MWá»ÕÍEõ¨Aز>ʸûX™¶r›P3·98Õqyu¤æøúh×éžQ‘ò(ÕY_ïÍèžMX·ŽZ–rñ»‚ IÃãÍG0+£q +;ã.uK8ìiÌÌkèi™Y¡´¢"7Ë"ä¼Ì†€–Y¼ø†~:8#hJXÄŒ¬¿÷NÊ+Ó7&i3¬«Àëí¨KÌòr\+üç h˜m¯ó¯°þ ³<7'á¿_–÷dÜJI¼vÒ®ßiúé-ÿÐßÙo\ø4cÂãœð1ß,¿¬ùËÖxÇIÐmÛ•pÇ%ç´ô+ËcÄã1“”’²KéI+·.f`–.¾júvéeÝþœ›zuÛÍ^å7ã×ÖC ×bZQj·¦¬€ÝVÆÕ¸‰ ºŸWs)Ä9·BšÞ_Ÿ¢F ¢vÔ&¡äb‘¶´Œbü¾—èŒ|>»xk´åà“ŠO—ž5~—v ˆ; ʞ̬ª'é–rüýVS(lí`s½·2sê¡8h¦õ©®¼ÍÉΈYÉMÚû£àç^“N&ìÝÊÜ‚²/¬kÍ7÷\ü§õWÍ?F í'¢fr¾Þ³#¬BÓ¯Œ£ë}²Œ÷ÚK |o\[ÿóú›’ϼ/üxÁ3i‡B–›ïûÍ÷’xnDRü¯£üZðªòÿXì¹÷Î/æ&Z¯¾i<°6Úq$\{E[|MÊ[À¿ƒàmGaÖ©PþuV¡Ê€‡‹; œ÷‹þ¤ë;óO 3ƒ°³Öû,=+â×C"´RÐNƒï×T··½BFÆÆo…õ(õ?ìø1¨áÔdAÍ>¬þ˰àÐÿb½vák¯jþLJôü„ÿ¿Oàÿ«ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙmAýeûþ‰ßíß_È&t;>j¸üÑþü+ÇÚáÿ«:Bÿ£²ö·ÿœÏк„4»ƒ/Û—uð§ÃG÷ý\Eê`îûö¿¹ÚWΧQhløËê®&é»}?¡§àñÑÁ}‡öüð_ƒì£ÇO=ñÓ‘‡9|âèу'~ÙwüøÉ£?ýrðÄñ“‡Oœ<~äÐ>ÖÿãA'ŽütìØÁ#ÇŽþQÕÿ-f4£3®WÐÂa]pšWÐqãNcÚͬCͤ+Q ¹(nbUÆmüVÔ)ãF ¼¦õIJ~p†q%4Í)CŒâNÌ"c f;®—tÄÂf|Zþ­´ëSâÆµQvùÂsráú[rAtšZŸ¡¢Ú•˜¶ãTÒ*¥ÅÌ×nF-× [zäÁIk`œ}ekŒ˜Ç'Ï%¦Ø%¨FÚž²(yó/˜Å«o¸ ³ 5¨é:¿1IøeõmÓÏ1 ¹s2kãòEÄȪNÚ…DÌ!ç"&Nm\Ç,ê˜ÅkoºŽ£ZnÃŽ»»;e‘A+b–±Sn¹ avlNÑ –ß¶ +Œ’ÏG&8eI“œ×IÑiuó­´ ÕöJÂÏ«®Ã믾^yZþih¸õXRǫŠ2rÊ"£¯ ·[xX·õYËÕ—-G–_Tžèȃ*SF93ªåTÄtüzÔ,!§í*qÒ©î ºyAо9%n LðZ0{OœO'be7d"<¨)«¨+aàTÇtŒÒ˜ž_Òr®Æ¼Ú¤•U³8\óýêhÃᔕQ™µIhÛn¹8ãTQØ“µ1Ê…qz1bQ +Q»JÔ3JjaÖ(å1Ó~™8a—P7´Œ +ÿ˦ŸQ“„3 É!³"í“ɲsê›)˜‰¹…ä¤SHI¹]qõrBO½”´ÐJP3½|Ç ¯ç–r0§° upÛ^[Äĸ3³*1·€ˆØØµ)‡˜žq©I›öEБrŠ©I»˜ÐÓŠ7µäK ¿sñ;·=RÞ»YõÍxݬO¥Æ¼Ýê°YJ„A|ÚÔâP)ÃPk¨«ÿNÚ3ô4íìéÃì +æÓ2^Ÿd88MI'¿#ã• 0xNLÇ©B-ZÒÕ+é–ó3>¹4;«êMºù] µuP«ãVJIDG-Üœ¢–ioTþâ¾O*ˆúTI>q™T¸öšt:0μ”´ÃZzUJÔ# &¬ê„Rœ41kñé@ðzü°Sµ:N>½:I+ˆ9ĤåQòÙð4¯2i„±*yˆUØÕQ +#ZrAP/j™^El½=¨­·7¤‡þ›nÿ%®'œÂ̤¤‰X0±*BzvUØ lKØÕ²˜AÒ±9B9½ü´å»Í·„c‘鎼¤–Yš6H:ã&~óp÷Åß9ï¶ü½Ø…XÄ¡™ö¼•×Wþ´9Zù5j¦^IÙ„Ì*§£v9µ)ØI8'̦à$m2‚O™4Ò‹Ó^KÊÁo˸âܬB•t(…PCܨAОÔ$Í¢vê/8I<½üªr¿ë·Š/5ÝŸß(è ­šœ _ÜxÕòò?­=¯ûÕ/ :Ú•ˆyu|ðÂ?Š?Cg„i‡‚œ"œœ}Tôûåe_$ ä I¥¬Á +.j—PøTˆgºeÛ~õPÚ-a!v)j“ñõ^ÏøÔýI;ô³‰[Ór« ·:må7¥íœ†Œ“Ó¶±«ZACÊ¢à%-Œ*DO½’q@-ØÄ¤´KÊL9d¬”S)J¹{›‚6H1£’ŽÚTBÌ«&}â’²RPçx/ nn›o¸ù§ù·mG2~õíÔ|Ïí”_©Ê̪¯áSxÒ…4eç·¥lÌ +ÄBºq“K3^juÔÖv6d"œÇ§¶¡ ̉›Ù5I'³*ãaÔdܬº¸‰ris’p2a‘²Žëržë/’.%l¢—néHçR>b‘·gûîAïÊR>ÿ6ý”çú+Ô=x?âÐã6zYÌB/Ú„ >•Á#bÂ’Ónu/æT+1§œ›õò‰[ñ3^!sJè)+§Õâ“ÎEq‡º;a—óñé`éYõâäulL5ý´>YÿýÆTã#íŠïUcÞñ‡ßË÷§]¿ê“¤||zõƒ¦ýÑ)Æ•Œ[ÆKûåâ¤KЉ9Å4Ø;iέ”f=2.ævmŒ2ò7&X—Â&Q{ÀÊmž(þdõ5ýRÚ¢â眽½Q+»qåMõWëo뾉è…-€Ô¤[ݵJ¨ëtXÀ+·)kç4&M”¢À4áøò›Ö·¦é—£V{u‚yyþ áÀúKƹȘ¸.®a_Eô´ËÑÊÅõ‘Î_Œ7*ÿ°ò†|6f”t… ÜÚÍñÖ£[ÃG:bIÚÍiCÍœz'¨=VÚÙ=åèéF­J6b¶$­Ìê¬øÑNÞaÕ!jYÂ,ìHZÕ’ˆQÚœ”6¢F99i4m޵ôÜ»ðÏöë—þÕy­îËØ¨’š7m 3ó·ÞÐÏ…ÞÐ΢ZÑæHýž%ŸÎ=oüÁ|·ú ߃–ã˜YÊŽöoŽO¯¼hú%4Ñq!m¥•¦-]ç1­ŸT~ƒZêÊy»»s¥|Û/“$íì:ús+D9¼V|ªî„MК´Ûsv9ï½CÊØq1k¶=ä’Œ»«(4Q01ÅkL[ûzÃzjIxš—uKØ;~…üo‹ªŒGÊElb2bS + 6)±*˜üLzûg•½é¹î¡ôlw_Ú+&½b暆Z^¹ž™ï¾ÁÜbÏì¼úFÆÛw zƒÙØ5Q=!µN'¬烆Æ#AC[>ù" +{tˆ)¨ß–ö°›1'¥8í¤F·ŸX©û&¦å4e×§Ý}×ãV1)bä5ÅLìzÄÎkG,¢ŽŒO©Â¼bvp97?ð,ãz¸zzc #颕¥]ôʬוòò(ˆƒ\¼e ô‚ÖµÀ +WïÀ_çeÒ¿-ñˆSŸ°Û²Nvã¶“|% ø1Kˆ°/”´wà>êVÊóÚÃFZYÂÆjJØ5 ãêúd{žû~ÙW+O(…÷™­Qnéò«®cÁ ÊùŒÛ˜±1k2Nn fã5¥JIÊÙ£NÚUÄ*gÆ ‚ƤAÜ–úP‚öU-ý²îFÕ§Á ~}Ò:Ë(h˜å-±3³r|jB³ò[6@ǬÒÎ&¡nB“¼ò„–_ƒèYeI3>Q˜QÚ¨K)ZxCÎóÜkúrõíÜÂ3ƹWŒüØ §"4I»¥œMÐ âzNbá6ø_µZÍ€þìë—']Ü–ˆxµ1+1;»ðº%ã̰ËYI¨ Ô¢mC¯ïÌr +©0¢ïÈ‹) 3£, Ø3ñêÃZa}`Š[œ`A_2¯':Om¾iþ18Üõ ªå×­½%Z}M>g­½e]Œ J—žÕ}cº‘ÿϾßÊþœÐñêÓ?íPŠVñ‰õzIç¶»÷Fö# é8³ôªì³Õ‘Úo‚3§ƒZÆ•˜Ÿ´#"&L‚¦ŒC.H»”²œ§»8[ˆ¹x˜SDB¬¼FÌ&êÌÚ¥´,¬eÎÁ(ÏzH—“ŽöÓÁ©²/;Š1¨µ•±¶#áÉÎÓÛ /ÞÍ)ï VPËq3¿±É˜ˆEFECVv5 +zóJy™õ-lV&Â|r æSõB_ %]Bbܵà—ò·çêíy™,3+¦ ¶çžd¼*5>á.ª§çœbÖ¶_ÌËùEÜܬˆöð£M3³«ðI“i›”uHY˜SZˆÓnkø&läÔE =¢¤½G•qɸøÔ¥„MBFÿâN^kÂ!ìÜ^TßÉÌÉdiÐE¹Å¾‡™9v{ÌD.€=®AŒê¬ŸG[XÕ £Ô3KcÌ‚Œ§ÿö‡iˆ³~Æ£§RvF%jn:¶1Ö|pcœ|6í3r³½w1oÏ`ÊÛ{#é¹ö"í￵õ¼jý>4C>—¶0«rn?3¯¾šºÞ1‚æ6²Ê¢jADCÈK[™•Àåõ¨•×ÐÒ +7¦õ!ý€*lR0·&¡']N·]%å¦ùUQ³”¼2E-ô>¬ø<œ´AMÚ$”¨Ž[3˜¨E1#³,ie×nMÏ.>ï<”Њ;v\½½)| +¼™^6P/EŒÌ’1ÚÙÍ1z¾ÿ-ᨘðýÿú–]ôÇÄ„’ˆhäø4«8:C<»ø¾ô¦éÛ¹gMûÃSìrÀ5.¯›ÍœŒAÌí§¢ÚúŸbºÆŸ¢º¶_¢š®3 « m]ÇkÚ#çíHÝöòI°o ! ñtDÓu*®%]n;<Þwé_mwê~H™Tü¸‰S½9ÞvhñYÍ‹Oª>]|\ýùæ0ùôâ(1¯‡vèæoÑ ·­jY +0#ã —ƒ'¨ +ë)—¶t”‹! 0OLËáú´GÔÀ«Ã±%çrðÚ¿€šr HIp*¬uÊzëEÒÑÛkGÆì‚ޤ›Yón^"ÈÍòº2>VÓ¦–tasœSöÎÓwóÝ‚TþnžÙ„ZšF´Í‡ÂаFòÅ”ƒSŸr +‰Œ—ñ¨ä¨³o(ùaRpß5 4Aê4je–G¬¬JÄÍïHûŬ´OÊÃuêQ÷%]2NÚ£”nÏ)UÛsRan^*Îø¡gÝà‹ –ÓξÁ´kðnÚws,ëï¹™›—Ë2sb.k +ýWƒ9øí)‡„™´Kh9gÿÍ,ôxJÂÌ©\:~æ +bcU‡ ´K¨S)Žšía³4å–²3¾þ{ÙÙÞ;øT•íEEOfNÀ@ý¬Æô‚XˆÍI% x"ÏÀ½Œ÷úËwKê» ÉDQ ®ÓÁ‡ù{nåüÝ(ÔŠŸ«O&OWXÙœ´pëczò…ˆžZ·Ð¯&ì&°ó >Hù®½Š;”â°I ú¸·ÿ½GÝÿ·9…:j¡W:ŸV|ŠXoà~±?â¤,‚Ö´ƒYÕ·žZ®úze´fÿ*`÷ò”²ÃùŒrfáyÇј–]þ±1›#3âFÐG…³¯[~\xVÿ—¬G >[¾³áS2á8 årÂL,ˆZŽ-½¬ülùeûÏqˆ€:¥œõÊ™˜žS5æÀúnNt_|ÞvÀ~·öó[”c§‘U}“˜–“¬’Èétd²ëtt†v)2C+ NtD ´Ò¨žt)nbT¤\FDÏ(Þšì<œn‡½ ] +ëˆç6'À‡Ïtæé-þ³åúåOßyx]Û^^'j/¤£f¨#Zad†’¿<Ú~Äù¤þûµQÊ¥$è¹>éÕÀªŒh(ë#M?,>«þKpŒ|våMç±;´ãyo·ä½- XIC"Óø]¬ª¤MИ݊ãj¼,ð|gø!îÒÂ:zqTK-@«c =1ÐìI;ýjÚ-—dÅ|ÌÙ;€¹ú³PŸ˜›ß‰Øh%Ð5‹oë¿Ùš`•f½êAÄÃéL¹¸m9'»ø¿-m­b¥•Ä-´â¤‹Qñs 9ÀÉ´{è!급8À:¼pR@O¿63ËÂÐ+!¹Α¸³ P£€¯xìÌ+ºs~©´—$š-;«ì†‡*é”ÐVÐ.…0: ó<ÆÀÃl/ÊdïW”C;‹ŠÞ´‡Û³ ñ)A)Øß¬K)EmÜz4J¼Aö8뎂¦LXØÕI>éœ×µ°*3^© íW(Ò~¥23¯Pæ GèÀ#Ò̬Rž—ÿ©ºÓÞÁ'˜§^O5”íÌ÷Ác0 þ*åÁ'¬ršâvЂ ›¶¦»N£V11åT€WæÔ!f6Ô6έ‚.ðcªŒ¯ïWÐvêø›˜EÆØ†ß‹šy-q·>0 祱’޾kø¤²$ì'ÎqðÐ1áÌò›«ŸÏ=.þÃædÇ©€_¿¢×ëî4üÅ~»áÛ„AÔÕ±Ê#vÙæû>iË÷¤íûÍaÚÅmŸ\º>ż¼9Å.¿ÄXi9¼5Õðc`¦îûˆ®éPp¢éPB‡×œµ:Ëó[ÛO˜©[”„óKX™Uó/+?wß«øÄ~­âßlýU õ.¢g—E´Ìâ­ Ò©ÀùbfU¥ì¼æ„jh†YŠÙ\ÄÌoZi;è¼[òû7„C[ÃÄãþû­?#:AǶG.ApÍdw¥,J~Ö¦V¦2vÄÄ(ZÀCƒ/ͺ¥œí9UÀÂiX‚çÆõ Ý=Ci¨‹¤¸GÛz ç™í9Ü#u÷¤Ü*Y +ôlÚ½âW¨€9I7¯=jäTáÞ(ætL´ðÖ°÷ÓþÁÇ™Eõ¯˜K‰š™ÕA£±w«³Îžþ¸ßÕÃZ¯§|wt¸¯ŒÙx 8„M욎y% ú*8I+Škù-)·„µ‹:×ô¬R×£æý«¯Èg1‡˜˜"ž‹Ï°ÊcS2B`BÚ´ôJR¾6¢j‡¾`~¸;Òz_ºø¦áÛ¨–x5ƒtršþêçSÒÐç=½du¢óÄæ½(eêUD5’¶ˆ–[¹9F-M2JÂãô"LÇ®Àôüúµ7­Gì·ŠÿóêKÂ1è&TG¿Œ‚Ž NÏÆZE¦Ú€Û:ò é¶&hR6tpÔu#f•R#R~xºñ¢o=–1“ +ÓVâ…ðmÎ ´OXÃ,Žë„M˜MLKöå¼"zÚͪéšEuüvĪ’&YÅÀŸÕ1¯Õñê0§LJ™USí§–Þ6þˆ™$LÌ¢à¢&)%i–’Ph&§˜ö×9…òݬ´±„01Ê–FÉy ³Œ™ö ü†Ú…ä°çv-bÓÓ R)6«PBm2R>…,é¬VÈP­"nj<·´åÅí”bÄͬÍæææ@_ÌöþšõôÃcðaÎ{íynVÈÌÎÓªs~èv ì!;ãU÷â×,ñk“øµ¼ŒO&Œ~u¬«I«~ð:ë³P;¯%j¦—DÁ³„lbâºxÔ +úÊsómÚÛ;ãP0·5íã¶§ðŸ õº6 øD_¥ óÜšÄÀ¤¼ÝjÐ Lðáq3»2a´aöni@OÌê:Ïc¥w?ø]§˜zŸMÅ\RFÆß{ r–GgRøu4ÏÐÃŒð)> uô_f–GħÕçæ*œã»Œ‰‚Fŧ‚ÖêËÎÃ1s2IÆ''r6>IÛñ¢õ—áÁËÿ–s÷ÝÙž½>’ö÷ÝŽ»9-“ô‹ËÃâªÀL8å¹5‘•t( ë­—Ë#{ÄyãEÜ"êD2æU©R¾îž„INE­j)jíS'm*à'èq=¥`CKÉßœda)=í’°‚S”‹ñ)A=jˆÌ¨YÛú” b jiõuë¡­1R~Ê¢à€ö¸2Ö:UR|( +ü·6ÖrpåmÛ‘à4³$mUIRÖ¾þxÛ„NÒŽ•,T/nï+Å4ÄsË/Ëþ¼5Òôcd’’ê%«Ã¿¬½n=š²JéˆEJŽë)…ëo+¾\xXò‡È|5¯&m“ÑpVÜ–OÓv‹LÕ}Ÿ®ý.®i:‚q¿%&gÀ.´^{Ûq:cWJ³.u/xk æ’1·5aæ6d=°&6^{|jRÎþ[a íÊú«¦ï‚£mÇZfjäÔ¢&^s´ÌÖýR|aÖ"cî€~iŠàý 8ûQ5qkñ©á)èøÒ4`PÚyíæ¼=Šyúî¤}=×ððèq«¸+íí» ø(MZå줥[’ÏõK¸˜—ÓŠyØÙYnGfV"Ø™ï¹ xªí>@5Ý z©÷ÆÎ¬ª'ã•°SN'zigN}=åî@qݺ:iU 0»„ û܃<@ª0·J‘‚×ÁธMÁIغ¥ˆkàÎÊ´¤um’}µ :·geâ¨Ã÷KŠÌ¬˜“pqv+Ž_µÐØaÐd˜[ÆËú$Ü\«y»UI—J±Pʂӭ'SV™ ãºö(íT«#F^]ÔZ<â‘só½÷rÀYŸ\’´Þ›Am7Ÿb®žž¤[)ŽfEaOÒs}÷wðkmsrE Ö)l¶æ^@­œ†,¬aÖ;ø(ç»þ:ãëÄu@Ì n ÌpʲîIÂYŸµFMƒ×"æ_G¦ûSûíaÄ-—†LÌŠµ)Zá–^)Ü´öÎòÁïv+0—ŒŸLE]àŸ ¢6ÔÚßÒ«ùA­¤9íPIÒN…xŽ}˜&¯îÆ5dPC¿æVÅÌ=ʵ·üÒè4Ô5¬MÊ®’da­ æ„>éúuåWÁ©Î ·yé9)ÕöŠ ÷Äi—\vv+’•4¬w-¿é:¾>J<¹>κ¼ø¨ëHl’ž‡UÓP.gìøµ;!1eá·.¾¬ùjáqÍ_P#·5>fñií—¯~ŠM 2°ç9›˜‚@ž«oë-?iþ9¬áT/>k;¦^ÈX¤ÜÐï|À·.9øqnÍêxû‘°†R^”·>Î,Í8¥ìw Ç¡$Y¯”úœ²6ÕvlñMÓw‘ineÔ.y~^Â-EuC×·!‡œ]%ÊXlÄ$hvþVö…ûöÅ?%&IWfqçòkò‰˜FJŒ›z•IÜg@­&íBBÂÊ©_˜l9´¥¥–¤ƒw£Ö¾ˆYBÁ7c¸‡mZGŽçG,¢®„^-ˆënßM˜ Ì!"¦<"zÊ+¤ææE¼wËéûe±u3jÃЃ¨]­€‡2åTIrþžë8'] +q0öݼúfÚ#¤Ç¬]…¸¶ÅÌÝ|Ä d æn1^[Û ýÀ[½ƒè‡šì +e¤„S%ß0H(ÞWìó C0ã‘ 2~µó[Â&VeÊ/¤fæ… Ì£T ®¡A³ 5b—ñwÕI/x%œ{\BRÜ&"€¶ä§]bjÒ¬äg$˜]-O¹z‡0gO_Î×Ý·½ •äæ•}àÿqr¼·\‹YU¼”§g 3×w/3?ô*Z ŸÞž›~ö*Ä+]—oS~üôóÞx›põßIºúo¦}rQö;çQ)v¼R~MËö é¸ñá|ÀôëÔšáΓř^þºAN‰Ž­ÇÄœRb—r"a‡ëaÛ·ˆßžpð[ã!Áß—¶ÉXIÛÀõ NÍ[™àç¼½CÛóªÜ‚D˜ôˆi ‹œ7K:C:nuÜ$éÚ0rÛ-7öosZvfÁÿ¸{@g÷cV9+¦g]{V³?¬¡–®N‹†…§t×o Žžž¸]DŒš…íQ³ ik†[±ü†x|s‚QhÖ~lLtùãÍ×Ô²m¯ +¯e^ê4acVoL6±ß9÷Oó+ö¡NCHǪX{ÑqÓKÈi«”7²*ãà‡ƒ“ÇžV|µú¬é ÷mGþÎÙýw:ŠvÜמƒÆcn!5pªÃzÂIÄL-EÜ6ÏúýY·íÝ’\…yùdü:)êà·mNÏoŒÏ%-zÐÆl7]¯þlý©”ŒX~›Aà ‚VœÃÓüJó²ÏÌý—> ’//O3®LõT~húWîN¤¼×^FM‚6œWb&vÕÊdÇ™€†Qf„tÒ®¨QÎH:n']C¿%½Cqœ;ìbJDË«ŠjåĈ¡W¶ü´¤YÎÞöõÜÜö÷Ü|¿¤„>á&=Œº¨µëx϶ˆQJ]£—Âósþk¯Ò¾ëoSÞ¡gi_ßmœKÀWbfÂYÄJ/CM2*¢W±1Ë5Ðlý÷róªA´}Ü¡c ­PøwHÙKìÒÙgì³ó@?þž ^ø‡·‰é9\Û,È(ø“ …GX.Xä‚ YÔ4²+1zTüÔ÷é6œb•Pš„5Ð7î¡Gè)è1ð¬æ´_^BHAœìÆ”·gp]+§.‹j¡G†À›üšö÷\Kù{³óª^èeίµÔêÙ…omï@Ì=ø[øqößÈøû¤}CÏpýönGM9¹-sÏÛNÌ¿ —Eì7^®ú¥ËšvÐÒ£ÌÎ<Ìúåʈ۲9M+JÚ8 Q-£±s[² {Ó µ2°æðzÂ*£…À—oÎðÊÃom/¨ú2 bäJ ëåĸYAG@ŸEmüÖ¥‰ŽãÎ_¿ +Nršs³=7¢f%3jVq?à|^Üš¥س+ã’Ëÿ‚é{¥!ƒ˜°¥e—FM¼:ð,M1£ 1ab9Ùú¸óø vþï–Ÿv\Á¯¡#vÜ/±kFJáÆDgÞü㆑IÆÕŒ]ÆAlRzd„5gìS§­ó/;£ðV&A;fæµÄ4¬RÃÝúoTþ'MOå/9ŸúVØÊ©‹Ûøm)»Bswwc.B~XÓx0¬%œØx]÷uÎL+KÏr:·Œ¤ ˆY!LC?£ 8¡#e—±ƒfzÙê0ñ ¢SÉÒ€™ý +Ôb]¨Æõj^tJÜŸµÅt‚áiëa^ÕwÿžPJ1×Í×Aƒ‚=ÿ’v6k’v«@÷¨†ðkqè±å7Ìóq½Œ†:Ò¨IÁŠZT‚¸EJÉáïEØA ƒ®žï¼t·ãÈ¿!3RÖ¶·ïb’Rn1Åïùpß…˜“öÈ…s¯(^ˆ/ü'óêosþëo×­á˜ýÚo« +|uÏàöl÷À6è3ÌÎo깕ˆQÒ‰Zeô”‡ÓšõJxið@Ôæ|ˆÀïß4R W&©ç‚S¢ºœ£§±q1§ˆ¶í뿟vw«àá6L¼úM·nMÃ,]£^›Ä¤ÙÚù„µ[‚ùŸ¦f¯¶«{ã.);fB:vùüKâñ­ I3Ž™˜·÷ZÂÑó)º1Ÿz åU*³>)p‚±8.®Yã—g¼J<ø®ÔìàÓôœzÃïîÏxå’”¼¾ãæË-#³uMKº”t >B=÷,qç­axínÌK-[˜U)§\(MÂù'|*âí¹–ô=Nùúï¡nΆyäêw rU<4fSŠ·ý“‡RÀ•1«¨#a‚.tfüRÑ΢ç3%þ^+êS÷GŒ +ZÔ"£lêYóí?‡F©çzA#Ô9Þ)nî%ÀÏÄ£Q³ŒÖr*¶&˜… yÊÂ3œ«pÇêéÔÊs⑨VØ3ñëÃ^eL/li„u‹où‘)^Õ{·Lø~N*Æut4 ø(^Ú¡V€wé‰è„mA ¯:¢ãV…Æ©ç0Т1-¿.i–svpí\¿1Þujöaãþ•Gu_ߎ&µ µr>~ohGaÖÞÛuô¨â:NM\‡_w¦—#&™œ“Z±9Õp<Ó‰”£ïVÒÒ£@Ìrf +z +ög{^ÄÚ™çR¶ý&~­ +³öª’Ö[ÏPËÝÔ~óiÌ$"lŒµ^|Ñþ³ÿ)óŒãùæV÷Gm2îÔXTÿë‹„ùÎkÌÙÛŸp»º®3q¥ ad§bjÂÁmŠ™@·Yûf9o68ë +ž­Œ7œýµúǧ\’]‚ßë€Øo<;o˜aJøÑ„˜¹ÑÏJØ¢FûÏV;â-×;¡ö#4Ø/8ó@BŽ8#‡ë%@óK8Hý@”ÅvGÐó®¤OGÀÇŸ*™Èc9%îpŒs8ÁD çgŒd2ö&ˆ‘sÍ!fº~8¨ b칊‰;7b¤”ÝŸàâAn՜͈óO5”¤ÃI”Ï íw,§AÏ”BÖÙ´8çä,ð¤éz 7u§‡«à#÷9ÉÇ +bÌ©† ÕËɆI1׈] >„½Ú0–%šƒ —`|÷†Ržýø9+Lÿ©abN§ˆ1G +lðO-ökš;R`Âv&p¡ûBö©:`©q½Ï¸wȥ˩°C)9ödŠ~!~s$Õõ@%L?˜Î.ÛSòH:¥­6ö=Ì +„J„nP€>–×N¦s·ûðºB詜G½Pó˜2J¼nî´ÕŸlw +Æ|<™Î;òñÇS,Ì¡œœx¤¤$)i)¿fy¬_³¢¬=àYôòŒt€•€Ÿ22ŒkÚ?Áu¡eœ©@¦ÿb¤=†¸˜å²Îr›ŽµÙåÆõÙ‹ià?ó\ö?s,Ò?sL‚~"Õ}k8ÖbköÄ?j{ ¶+á`O& «ÏÕùUgSé½1lgŒ‹Ü¦Ço¥yê"þ–\ÌÙÞÒ *l8úîtQ”oP§úïq4Å!MD91úT —¢—QclÜùŒ(û×?ýt–†6¨Iq'3tôÑ, +r0ÿDS6v¤-“ì?Í,¾XÌkûg9¯ûbA”¢å±ÕòÉÿ¯þ‰±_X+ÎûïbVå‘’”p¬¢¥ži‰ÀËc—º‘.ºQbˆa’‘¶<‚õ90ö=Ìæ5Îæ·Ϥgk¹ÌC q ÆÅï+IÈ‹¹ìÊ“éôŒSÀ5'3|þæP—cà;—Ê98|¬Nº0æe:¨üó>çL-â‚gB…>V2ÿ€y>>çXÉ%óð ÜçbV þµQr¢v¥ÿ­>„#Ðü¼Seºä_”~œu8ÎÄžÈ2‹.¦ò~üTedßœ¶ÜŽ°× QâŒýéÀŸ¢¤Àë§s r!hS ý˜É;ÀlJ0>›}ÄÃXqåîHkoˆßé¡EéûIQ‡ §€/ØÀ¸ï ¢\Ε„ø_  RÊ  ŽåY…'SYy§@¯û²@mœH°çZRROµÿ‡žŸõé¸{¡òlì‚…Ú¸¶?J‹?–ƒØ¨Ó3k6šVÄ— €'ÿ[`ÑN•˜Ð] ÆÛðï21òPŽ 9U0{2Rb=Ïùy#Ãý¥a”Kÿ5/Ìûϼ0ð9k[ÊAm˨Й>”óö·«¹%a@O¤YÙgÒ↋©ì‚ýqbøF_Ú×µÎD Ý`šÓ‘B@Ýä$m °ãNÆø5“UþSË@Ÿ(+©GSÌTƒq½W™‘¹¯àuZðò…çjÿÔ¨-UBࣉ¡»“Ø c3?ç„ó¾PrÅ0•óý|.¯ùbž/ÐORâ•LÔá›|>Í þŸ6hJälÔb±‡ ßqßÉÊÚŸÈÉÝÿ^§—}o<“³3) ,qR–†éÇšÂVÐFúiQú¡F˜} Ì*>RgœLçñ¿øDMŠÕIð +.ãb>§öp†IÜ×¢÷§á{2\Ðy4mì+ê»XÊm>ŸÍ,:yûs)§ùl‘/>c7ï¿o\óu¢f`ôH¯S%Ô —v¦¢#.4lòæ8ìÿ³Àüšáq9»/%…¯#¾M2RŒ{(Ào°ÕBî¡:»ìt6§öt6¯qŒûHã”\Âñtºä2Oôà±L,87>ø¾NÆÅìɹ€?ü_€SÚ>ìB•™{¡É̿ЦgþÒò¹g6ÞØ|0þh²àÇÙlvÅù¼ð£€{>SóÙ:PÇŠtÁ¹&·ê`â…2¯âtJÄ9ãÔK)qÀP•À ôTpïúÉâ¦3­H¼3裔å¶4û‰ÂèWòâ„Ç“<öÒˆßl¬A!dé&xX½‚ƒÝ’Ò¶&Y©“LØÚ5â'ˆíOàGO§Ø˜%~1Ã¥óc€°6H~$|_ˆ=S|S‰³€†O<˜à OYyƽµcM~ÝéLNðBÀíìS€7K=¸ ¹¦Tû MFîñ4›ðkM»˜cQþ1îMÏó8Æ}èCŸ <|Á™6=èÈ€Õ§s…='Æ3#€#Uä„íqRŒÌ“A.X¦ÇÉ +Ê%e^¹Ñëbþ×á´Pt|ð‰&ø¬¬,ƒ²°ùPS:r Î.<œ µ|Ö®Šßz\ÁÆŸÌ>£&® °âöåùåÇêâãÚÛÅb~çÅ|VùÅBæ“iáŸ9qá ІUVáž²|üh® Ó É*Yçã·d<̉š‰ü9MNú©¡¦má|~Oô_PWÿÑréjFšAN߸³Þ‹öØêÇxž©hð‹i>Ìîø•Cõ‰CMFþ¾RÀÔ.¸0®û^fDbãzî)в‡2!]?Æd„A! ©x$àÍÐ'“ 8àÔ$ãù‹£±tš^ÂIÛ£mËÁ{þ•Â)ࣗ5É<™æ³.æ…⟠éy'3B¡xãƒI6âxŸ +ÌUÞ‘RÀ5{ ðí\™wðo¹ë²Ðœj³Ö™êô3ìX.bîŽsp´ˆ½Ñ¼Ì½‘LÖ”ü%#ux€¥Þd»ýQjÌÙD:ï×´8s¶%ñËfz Ïœ©Ò FÍpY3tÔ™$½œ[êa„mp“ûï'rfòáøs|ä¡hk %æhŒtô¹†Ï8”1 Æ}¦S%ß„€|6•SxªÊ);ŸÎ(ø9ÃaìI±ÆM {ÐÆü2LeŽáÓ “ÀoÏ'ŒP£×ÚÑÎëÝc%>Ú Ãø÷!ÏÔE­GSùUÆ~-Ý-îhüs§#%—lÜßs ÿ×ÃNfç©HãÚçæ5fŒíDIŽÓËq{ +rŒñ|ĉ"{®Ê.º6ÿØØã4#Î=óùs>ç’öÆ™Peâ›qMþÀ{žÎp€o¡¥œhv€œûµ Hÿï2‡óŸE6óLÅÄž©9ÔŸóââ³Eñ÷‹ÅŒÒ³¹Œ#Y?2Ë~-e”ŸÍ ćÓ<úÖ(%ðqα:§t_)dì)²²O´ùÍ ŒèhòétΩ:#ë ø®ef®^[fP•ô¨‹»µ™%ÀÃëñd†E›ëI´^ëâwÆë§ö¦*¤»ªÌB «¾ƒûåž/̺ì\+ϯª3rv'«¤‡ê¼êC A?å½ü’–¼#AùìJÐrZÒ?³é™ÿ[È(þG+±àÑŽTé9ÀW>*;Ws)z걊šthôÇZçl&£xwŠ‘¶«šg®  Ô'¨M‘Ȩ ϶œj˜ØÝaJ˜®ì¿7B1Íkìß?’’#÷†ð>;ƒ¤€£ Nš®—¼Ù‰wÛî&xþÔØ@ÃrN@߆ÑÓãõôx3¨_³|ŽqÝh_ÎÃíÉøÆsN”S©ˆz*ãŽål¤ñ{:pß= 5Æ c¥mÒ¢–{hA+”€­¼ï‘”±;JŽØ£Do uƒéøùV¼÷RÂqà`ù®„ÿsJÄû9)œL1QãeÁOÖºÉ {"Æþ˜÷s*Cüß¹Œ¢渠Vhcߨ¡`Ý ÍØ‡q4A‰ú¥a“þ/ÀÓÿ‚ëèß3aä0P/ñg*FÚ‘Œw8AŠÝÄFXIçÊ¢¦UЀWÀ“¢¤ÄÈS%1êx +q g¦+Ó…§€ Œ{¢ãäxUuð3UMГý‰gàN>|RÈ<”gŠ€_8˜äSÎ4BÐ`Y@«ã@ý'Ÿ*I1' +ðö|âÑnÔ»‡Jq:𺀓)°=Òkk åy¦d"Ïg÷Âפ)Yhà# ¸ûs‰'4ÆypÎZ/Éw«›àõÄ…gÿö„ è'š¼ÚÓ¹Œï§3 ÜÏyrò?à:›"Fž)(q³Oæ8ô_ ÂŒŸ Ù5@Õ«æ`úÙð5Æu =í ø¥}àÕDmOdgMgÎaà€^^Ì­­rN5tÔÑ=mw‚ ÛW®UV* ê²ÑcmN…|~¬faŽÔTØz rô“?ú÷”Å­ë@ǃÚ:›Ë©;MÏÖËé)Gj.éXËgûrNTy•‡ò ñÅLvé™&»Ô óŽT\*ø-Ô‰‚šv:8èЋi:槆Kú(ÿçBÑàùJ^×ÅbfùÏü-íPAM0LRbŽ•Tè¡‚˜•°5Æ#)³ËΦ Ç;VìÒ° gjj’në±ÜŒ°Yë@[i'x,5`¾îQÃö‡ˆ{àoº~œÇjÂv¥öa©>þÍ©Œ~*§A¤LØ ðú1R¨aŒ~$¥'œÊYiûC̸½QÆ 1Ž&ÓY ¾?LÞî7žû ‡íPÂv‡~º¼çV?Ö}kµÒMö_ëÆ8é%8¿= Þäõþ89|sç%¯ +¢®‹{³Þþ\H0LpŒç‡ã èžã¥Ju:’“bvF)Û}´s©üð¢çŸ&€ŸÒw¾;½×݌۱ŒóKËþ”˾ÐòÙì´AJÈÁ-æ'Ðö'2ZüfOÊ—Å&è{}?=êdBD¸ÍÞ÷_~úV˜~8NŽÞD8F“¿ü<ûOmVÉ©ú_Þ!‚¼ôÞì‚gŒþï<“v¡e N¦¨‰†1B°n€àw¢ñôÆ>qàM΀¦=x|¤ä`¦Èq:Iš‹~Œz"e$kgw’OZ GìOC§Àó"~©ÙسIfʱŒž´ÐÞ<†ñ,ªq]ú|N(¸0îïÉ9Æõ†èSð¬ÿšÀØws"OgmX¼'<ªdaϧ™ø 0ÿÿh™Ø£ RÄö ÚcO†ñ»Ð²ˆÆý20Î3MVá)¨smVñÙŒ€gP= ¶ægÛØC«^ÄåTcä!aæùœ@t¬¦&Ÿ(I±ÇS”Äð['@û ¡W +9‡šÜJÀ%ßÏfØ„óñ?ó\ÖžŒÝZzCÂNYê¥d¹…EfÎæ=n¹íp¢æO~6ú®½QbØð¤G +qOÂI]éaFœxtÌé$½;Hð;”â¥Äð3)fì1=›É*=žÉ*1®K^ÌæÔŸƒ˜ŸLòð‡2voŒ¹Þúe©ñe± i¯Àx÷— J!óD#âý{ÅxWnì÷Àyëúðê²´÷ËuX{]É¥m¿Û‡óÚ`F¯uà=’ͧK£¯ÔCßïà½gÖuãBÒ|êëÞÁÿHJÓƒ¼ÞaÄmv½çu=ôÕ‚óî0#f½›è³Tþ¬ë%ù×fw@þ¯¶ lfªaogkVk­hÃ01èPJ [íA|]î@ØïŽ‚öÇð†qRØvÉo½“â«®„½Ûî&žŒsRÆIá#(·ýA¸ÃNoê—ý~”Ëñ81ôPBÞì%x/Ô£lôClØj+ìãjsü[ý Öçxœ¯ÆùFñúaRèfÑë`˜?áÁÇy¨ýAtˆÛè"ƒßÃ|[mK±^ï„ÛíŽ`¼÷&ðÁ™q튖ðu2IŽ6ž‰ùi<‹£2ŒûA†1Fòù”y$c#ÎUL”‘¯e%…èGÈ¡à™BöÁe\”a,nfp·‡ц 6âp‚•²7Dðß6®=HH!˨¯«8—màKöF©»ƒ”à“1&ô?J6渎€¯ÙèDÚovb #ô„ Mzæð§“\¢a”‘d&‡ “‚¶ºp.kmû(ÁûC´È½.l§Ÿ—r8ÎE$ìäÍ’÷FÆyï¦b¡ £´èà 6üèÏCOJ>}h‚])s ucÀõ¤Ð] >Øøž˜wcÏù‘œ–øÏ4}1ÅÁ€q{a‡“´„1|ÐrÊu‚ŽþÏœ¸ø§†C>RPO§Y¸# ¹/£ÆnØ,µ]g«pv u$çÅzº·4f¶Òšæpðþx=ÀOƒíu8AÙ †hÛ)³m8—ýAZÈÔV7ÉûTÁÅýwV ¸P‚ßeƵÑÞ¸ˆd˜ÈïI2¸ MÌ€Ýa!~½——¼ÑK 8p«é¸Õ ·ÛÙé†nÆÏ7{¸Igʬ\ §|þNZ#àŸÇB5ÆF×Ip_kAÙ-Ö#­7ÚH^«ÍŒ€ÍNNÄJÍK]£)‚™­·\×;(¾ m´€±¼¸ÇOƒ„¿ÕOôuî³Ò‚´_kÅ:owR|¶:È^›½$UU²•,úb`ýÉ=ÁXgËÍÈÏÆú˜«AZ-Ö¦˜†®†ÑTWÝ >p³_ˆÔ +‘`®RuDߥfŒýrîëzÎùXÂH8“rÛÆ³ô}”àÝ~j(¨gÏn„ÃF+ôÃjS’Å2àŽ´ÏË]„€‰Â°Ë P› ³?LZ1~§5áýfÌ|çËÀjý07ùh‚‡˜£NÇï ¦ã6úY±ÓU©ªÒ$³ÙÚÔÚš”÷k](Ç33õøpPçÞ{Ô“I&üDÁÁìKXÐSàokJç*!çXÎJ½˜ð¶¥éAþïJèѺaœÿR{²ÍfàèjðZ;9`±ûm³‹¡á£†øn÷}¶{H¾íhǵ¤ÝL ìÝ|}êÇå:œƒ¾‡þ? ðÚàÞº!Jðv/Îc³ÓxŽçq á"tà›ÓÆó¢žÍüHù°ÝŠwY¬Kµ\¨Kù°P ÿ¸ÑŠvÖþ€˜­ÆÙƒ:I^ëäÆ*Ëp6ŠbøÛ¹Z´-ОpÃÝxv>Úø·Ÿ±ÒEôÞ6öV‰E§*çh¨á­^”“h]ÐÍÈ/«m(§½a*¨AVü„‡84îqþ{6õm²4î¹²$îÙ^.ÀˆñÀû“L€#"žaBDÝå$¯´Ü4Å©¯UEÐçq´i'%ðútIÜó=ÀÛ]¤ ƒ„ú¿JêÉ$.hhö¥NôWyyìSme›Í”ãv/ÞÛx¶ëD% ïɸH]?3Jòc§Ÿn|È\=òótEšù|Êf¡…êw0.¤K© ;hý>äDA‰?0öܶ¢kÑ_ÖÛº^¬‡A‚ìݤG‚ÜwßîÀ|ÛlG}YnDX«K“^Ës_/Õ3|ë8þ³•„/ U¸/‹Õ¸/så(ë•’Ël%Êz½ï¼ÕNöÙ¾B? ø¥—±ÕEÞh'º/5¦}š®ÛŸp§_vG]žòq¹é´jðßR3Áy© ï8[•øjµ!ꥺÔïárc²³n€XédÇìðºAfÜr Áͨ W’?î÷ Ýõ½ÏÙŠèË-èoË­$ïÍNJ®‡°ÖœlµÕ·Õu§Úëz‘_5uˆÏé¡·WÒœÊc.-4&š¯´À>nu£\¶zÐÎÛ ®u½”€>RÐZò«~HˆÕäð6ûEi T¯¹ŠëL%擦f¶P›j¹ÝAðÙ E­·ã\'¸¸Ã9”ô¯†4¾Ã¸>r ü\à‰‚…ÕOÐ÷$À·ñqàûsõК²øÓ%Ioµå)ï´åðw‹µ»M³­N’¯~µÓE ZoÁ9®·`¾NW$¼|ûNU}±ÚLp;–‹è»nê†ñ¼3Ðe»CXÏÕ¸Í|]šÝLU²ùdQä“n–Ç5eaœÙF3Ñ}¾&Ù|¹)õÓTqÜ‹qaøýqaÔ=uQÊ륜“¦ŠèÜ/€=ÄݛȆ>ß<³ÝOòßìÀºlw=Á¾-5ã¿­u‘CF¿Ç¸/™d§C×;pnFŽëøÍ×'[Hs£)‹žÍ×£ìF³¡T¥H÷£1ˆ#3a¥ ûM[•b>ý=ñ¹¦8þùnÁïx‚™¬­…{ít3S cùù[}\Ø|`3ÁIS}5" ºÝCõù}¦$ÁL^ý\Kð1]lNqù9ßêNü´Ñ‘l½Ö‘r+îÍxvཥúÄ÷JÌðó{RfKÂIYn§øÌT¤Y.Õ¥YÏW'½Ï 5QÆ<]mF}QW ;„áŽÛ=ØÐ£I¦ñ]-È))jwá¼Ú’h>Wùdª8Ød­=Í~²,Ñj§}2% ï R#V›’-æj¢žË +MZ©Ž¿ÿ@[^mfÞm †˜ÌV í— .ªâ”Wê¢d³…*Ì'eqÊ›~¾ÿÝv’Ûß³ep;]7#J×ÉßèfG,Ôã–›¶“±&²cLg«Ò>6‘ݯó"^í¶0‚vº˜á $§™jœº8éÅjMüë…1f뵩¶ëh{õ÷Ä—ºZ?’+ZïbEÎÖÂ?(óÃî)³CîªrÂMTya&s5з}Â0ÓÉB¤ËB-ÃK[–òv¹!Åjµ)Åj©!ÅBY +{5&޾¯*Nx½ÖŽq[¬G¹ )»½lØV7-pµï +êÌa¡.í£hÉÉ‚SPßakí¬ˆùFªçVwnµU¿ÜLõš©„½™*ˆ§ûÜË +{¤(ŒÑË÷3˜mðñí´ ínZðb}ÚGEqÜãaaøíAäIVÜ£J¤×½œ(³ù:¬Ûn'a£‹8_·˜¯˜› ê³8ö¹¶:éxž‡ûÝLØjOSYMtYî ‡íåä¬v0"åq/{(Þ¿w’ýnþHsý›èö2[›à±Ö÷yXàö§¦,ò™~í½7„º'Ùn¯ív4FŠ8™àãwúéáú1!ywL@™® Õ–£>j$¼TÇ<[¨I¶ÖPÃ% Ÿbmïÿ¦.Žq>‘‰…ÓuH÷¾tÿË­qo×ZbßhKCLªãÞFhÑåç‡Ûí¸˜ 7W;ñnóuÉ“E¡¦òÂÀû£éwƳcž£œoľ¶ÚˆñÔT'½íçÞìb]ïf†ÞÅÜí¦úÜlźÞèÝÁx>»,EXoœVUàmåÑO'²ÃM$™á÷¸Á·z¨¾×†D1OkÉ!ϪRÜÿ^i¥ôòžÉq]™iºZ›b5̼׎w¼ªÈô½­­"¸K³ñÎó•t¿>^À·o+õp˹2¨Ùliò[yNìcif´©¶ çÐÏ¿Væ¤ññëBÆv³•8Wƒ³ÓV ?k«àvýB—¿•%/7Ûø + Œ@Í´Õj Ýwµä¾ÚŠqXjJ³^lH±ÔVľžÈ 2Ï{¨)§9©+ÈŽKM$×¹j¤µªf¦.…½‘æ'<Ç?«Äø\k¦úß^jÂz®´Q|¦ +¡ÏF3£Mz¹¡·G2ÃÉò#«¾G¼XëHsèû™¶Ò½LwúùHPƒ‘Sà^ÒÜ“ÉÂØÇ^ôp|þnaºÝFú£—lv8D]®O±^¬¼×˜l=Sÿp­ùR½ßÓñl·»K(_ݶÝO Ù4U‚4_¨ÂÚª¿§¾Ÿ­DÚi=–óxKG£š«Iþ¼ÜLöR–!,&r¡O§JRÞÎ6¼ÖºYQF5š|g±e¯,…›+¿MÝŽwW|‡ZÊr_ÌþHý 7rFUšÝ0þµ4/Åb±‘4™›l6[Mü:YŒ±Æš( +’^L—c>f$¾¢Z^,º·…àÕÍ ¾ßAñús”t[‘÷Týf¾Ùp4Œã#F +CßTá¿^•%[¬vdS§kh>C™‰¯Û)ÁÚI!&ƒì€Ûdç¿“[,7:±¾‡ÒìÜs•@¸Xófër}Xèù·¶,â±¶8ÒtºúR[…´ÎM´îÃ,vÓ‰‡c<ôÞ Áw½þe¹n½P“j¡©Hºá®®ÁF÷Š£Í¥ÉÖã”X E>Í—Ç>[¬J|§È}«úžüù`PD7Œe²¶z¹ «BØR Ñu¡n¥ù‘øj2/ö©4;Ød2'äþÞ0-n¶ þI]†ø¨,¢8g#ͧŠà¯4%iï5?ð¶-âÄgqO.õ²ƒmwûiê*ì—>¡óï}Âo¿÷ó=ÿì¦ùÜÐÃßäA_¥Xþ‰²vy³“ÙÇ ¿ÝEõ¼:Äõ½.Í ¹ÕËôºÙEs¿5_›l#‚»‰q}wU–‘êw.³7º‘_çjaïqûØ¡×c=®Ž¤G=láG›&:¿ûmTû~©ç9œý|";ö­,;êiÑýO®+Uiï.ÍÔD˜5 +ÃßÖÓýŸ¬¶}—›I€[Òl@mX©Ëâž þnÆ9\©‚[]úšþ >¬"…¾µ8[…ù2[‰°\nÂ|Yl@ÛM•ÀÍpŽ4 í¯­ýA[‹ü xÖm½ƒ±ÔDôXk#¸×ÔŽ$„ ãqB°¦:êí/øÉZ»¾ÒÊž­Á}›*My?]žb±T‡¶Ÿ¯ÁÚ÷e„¿ ™ÿÑL |³ÝI {Þ”fû™( +£_tQ½oËÒ=¬ÖY-ÕD:lôC¦¡æÛ½Ô¨mà-TÀON}‡¿m£ßh"úþ1À ¹½ÝŽúº=€÷éÎ|M yum¡!/ÁØ ¦GÜJ÷¿·RŸæ°ÜˆvP—%½R—@_ÍV§}R•ÃmÕåi{ƒ”ÍnaÒR#ÎQU÷B[gÖÆð¿•o{¥Wü¤”ìÿ¨ çoºpF<\›.§úŒç"¬ºÁ ‹‚Mç+`@=»/4ÜwºÉÁº.¢¿¼8敺2Év³[„˜¯gùÍ×ãìçêS?ÏÕ¦r–äÅ~š©E¹W3C_WSƒ^,·Qü†2âžu³Boõqƒo÷°C´ÒÂ_´q¢­5h·TÿO7œ^Þƒ”#=sP:ã;A€žÓVŽԔ›ª¿‡¼˜«£ŸEýz#òëËËâDOàBÇ2ʲý@ùÝä}»ÙÃørk©j¿ÕO hfú>ËŽýp"å\üf'Ñw2/ÒTYoÖ/¾O÷y}¹2Íí¡¢é:”•`¹7ÊÆmuâ×&lw}6:P®…Ñ/`]oV=MæÛðY0àoà–m´ˆÝABäfošÇ|C²¥â{ijÉïÑ/¶Ø)SXeušÝV;n½ºX›l¹ÚµØìHù¼¼­²6íÛZ‡¬ë/ÌXhÆ(Šq{øQ¦u8¯?'³žïtQýOeé¬Ãñ,Áz‡¾Ü&‚ÏÔÕ fªâÈGQìƒ.fàZ¤ëm Üv¹:–›ür¶’î³PÃð®ÅØ_i#»ß”æÄ<–&Ýgª­@Ýí £ÌRÒv«“»ÞɎהÁÍåÙ±†QzÙ‘÷º™Ñ/fJñÞ+­™ˆ©2²‹,/å“,+þùXFØ]yväýµøç­~FÔDÚU^–úmo˜‡^lÅ»jë‘¶ ÔðaBÛŒû6*޹?‘÷hæÆf,+ê‘,7æíJ 3tªe=W‰³_k!{®µà]V›ð®ë­Œdý‡¸=ÌIËHûj|•ë¹*»xg”¿<ïN)P×KðÚ úîRöº™QòRŒÓ`fâ{]¯6–Ÿø¦…ìtM’áqk±1òEŸØã¯ñô0“¥*¬ã0àAQ؇Kµ¸èc™ˆv0΄îƒ6»áŽ Õa¯&³¾]Ÿ©Œy{4&¤ Ÿ0Q˜üj±•ê3Y }1,½ÝÇñþ»†ôåV ÅñÞDAè3Ui‚™¦’ w¹×ÎŽ°ÞRw»ác#¶ºÑ^K‘V 5ñaf+“?-µð£ +1þ÷ó“ì·hkçÉï ³Õq—›Síçë,äáOU©_[Ø÷¥yPKm Þi±‰è¹¼…®Ÿ“2ÛŠsÌIüÐ%ˆþê0Q7ÈJØìcÅ醸ˆy0—ó50óÕ„À§7Êòd+yEò§ñŠ$¹vBt?è•4+òéRMŠÃZ ÂMׇ ÔPá 9r­+ík;ËãælÂM?ÂIÝì"x.7¡ìF²B#LFÄz…¾/–šS<‡ó¾f$:Þ˜i¡"WÛnJ ç+’?ŒeÝoA;ÿÞBö¹'+Ž·Øµ+ˆýög%!Ô“¹7NN\hŠ2_i£m´ó“÷ûÓIûCBìb+Öy¹à·=(B¯´Ö›¶ªâX3ynÄc€uŽÇ2>nw˜•°ÔIóWVQ÷†ó3w†Ääõ‚—ÎxÖ¶f³7šì²ÝŸæ¸pÑ0‘É]¾WUÉòP}';NÿÀÙM&¾1®¹,7 ì§J“ÞM× mµMt¿Þ‚d«FRÐMe~ªÕZ3Åg½ìµÜ‚užo„Ù-·@A<ãÞ¨Š¢Lך(¡+ÂÀãoGÄ‘ÏGÅÑÏÇÅQ×ë°î»]èt ÎCVÿ¼Þ–N”à¿–!¯V"lÏ z´ÔŒúº3ÈNÜ×±ÙG>rð‡ªìÂíñ,þR#L]qÐþÀØ.Tbmµ¥HËíVNÂJ33²OtWYûf­Æm9špoö`,'Élºšâ r*v(v¤ò÷¥|ÊîhQ‘a<+]S‹pΊ9~<Ãëïù²$ÀµH›ÍîtÂlÁCú=úé|#ÔÒ¸OòåËz #x«ƒŸÐŸ÷¦—ú~§“KÜâ¢f›“-6gÞ¹·ÙJðØë@9íôQAïuÂ~ÛáaÆòÃ_t²<þP–E¿ÉKøØ%3Ó”'Zê‡ØˆI`Ô³Ó\îõgÁÆ2Ù³åIo”E¡‡E·º8ßîÌ×'Xìô Üwzh‘3M$ŸL¤Ó‚D/Ý+YZœø®™áõ°Oøzª,æ­êGÄ«­nœ·¬æÐ! +|º9@…|µo ½ÑÏw½7]“ø~¾-Í~¾9Ín£ ëµÚF óòn¶Ž¹/ɯö°bÔå©Ö3Õi6½¢à'ít¯[kݹ˜?QGNHõ1¿3U—æ½?ÆJÝì&,·ã]–Û°.ÓÀK÷ ½6Ó]ïïo>P˜âÚDö}°Òˆ÷ÛêÍ$­÷f‘×{ù°½qfª^NGîLÐâ6ǘÐí1!©Žîóp²0Új‡ß÷‡¸©pÿ9ºÝŸê²Ö‘üõTÉçÿœËmÚ§Á–Ú“>ÊóËe9¹úÑtòF-xà#à8ß¹J`Õý" a»ÛšCØîÀvzYq #i©n³ÐŒ´_éâÅÏ.¬ ÒãæRmÖšvÓåñï›c,÷Gñ!º~zŒ~‚[íåÄηp‚ZÅ ²Rì' »¿¬ÔcìgËaï@Í?UW!¾Êª0%$ß;”0Ó¥aÂZ‡ q²4ͲGr¿‹çwWVþf®j¿ÜˆrÞécFÏ6“½¥eÉowȵ¼×TiÈ“VšÓ­¾ÿýj·?j N7g«é=ûï(Ÿ#™P[ý {$£A$´„­^¼ÿt-Ô\SþÒ8Ö#9±ÖC Þê!u£9ü…VVøxvìÓNº÷Ínnàóžïƒ*œíÕ®›‰¬aSAó¹ßÍx¼Ô€Xo£†€Xà #|Ôî +e± f»6ˆñß‘d0w†²XKíÜxm ÑøhÇÅJ¨ÕA?!`§›è7_‡²_jB»¯´’|¶zøðÕNz¤ øád)Âf¥ƒ´ÒAõÛ ÷Ç3x›C<Ä|'Þ{Kš_¾=QÚ²=ÈC.Ô!>É¿Ç>Ë‹~:U–üq«x2~87üyŸ0Ðd»_ïdÅ.Ô#Å‘ÏTe ïç[©~‹mì˜Íž,Êj+FU†ø¼ÔDu±ÝO5î1ÌÔ@-GsÃ^ö¦ûÝ]íÆ{íŒòñë,˜²õm{HLÝbV:ˆ¾ÚjèçÅúä IÖký8_”_"o¹ë¦ëÆïöc}’¾ eš¶1Ýþîæ}PõB?,ÀëÇs26‡²˜[y\«ènZð|5ò£¼8áÃxÜaº™ì§©#z¨Ò3Ö»I᳕¨Oª2´åR+Ñks¶ÑO [í%mŒóIÕ‚([Q‚Ý•VC//mßËËZâÁgÛpNš¤Ã¶ÔŠB,šé Ez˜›@ò0¾ßtãy¥Ëý"’¶ñIS•øf®1敲2ì¹¼$ìý‰Rœc˜ÌÈ›þhk˜aåäïJ2™ºAJ×ÇOYme….62|ÔuT·¤àÇ£\Ìçí¦bÚJƒ8aºŒì0[Nþ¶TCõYk¥‡m‰PcÂð¼@Ÿ:ìõñ›\èV¾;,Ämp7û©áË­$·•šÏR?ê!à/IVÊ»¹ +²ãz=p³…·Ú&LÖÖ2ý¥¹ð7³Õdß•ž,¢º‰0š—ür(öQSIôÛêäcÇ2yxŸ…Ú$uyôKuUÊG]a±ç4Yù¬ð¨—õbX µS•`gÊ%µ PïŠ`¾·T%ä„sEN¡q¿h£=Åf±9Åz®íµÞM?g§íS"¥‘¯æª9¡«}Å"M=7L’‘ø àøƒ’ϽNfÀƒ^^Ä»©R¤§ôÉE”ìu/?ÉíöÉD–@×OXžê´Ò·Ÿ®…}\îÅøoI˜è-‰·ÞLJ­õ Æ<Ø"¶ßjKqXo…}V•›Ê +ümw‘£ö‡syê¶/Ѐs ŒèÝ!!àkjµ›¸ÚO +X$mOpP[SÕ+’ⲕtìr'#b¶í´ÔŒ÷Ý`¥߼܎s›oB:,4à¼ö†Å,yaš…²0ÉL[’b³TOŽÓKÒÙÛÃ<”ªë;œùbµ‹£—æääY™kÝ„ÀÅä—© +¨ÕH~ØEE¬ãÞ(~þ¶ÞËH–BßHs §NWaí%™±OWêßÖÛñÑ;Ãêîx:}{€— ê=i·Ÿ›²X—b3"¸ÕËó»Ó+ô"+Žø°Ù‹0¾ã͘÷K패­þþƨ×.V¸¶aÑIõ¾>,ö»3S—h¾ÚNñ3öâouóSW›X!Kõì Íýfšá.òòXYE´Õ\Þo¶“Ó4à’ cÙ%ú©üŠ5c gr—XÐ]™€}¤ÎÈÕOŠEÚ6²¿(ÕõaG!,jO“õcàÉ|=ÀúLàr7Ê¥‡»ÑOM:œ ¶ÇX(YUÒûµbàJ;9xg¨ }½7¹Ô&JPþ Ø©ø¬~2& ˜ ¨]t¬y 2ñAUJâ­N<ü¡6—ãµ\à V•c¾Ì´`Ô ÈÏ+Ý 0Ïy¢þlÚBGFª¶‘¤©¦:©Ë賕\/mÏs<‡ú)#Þýr6æîDÕj¥&=z¥†:YÄpà`Ì4d+]G>u¾##m¨÷yòÅ}k¨°h®…]zg(ƒ,ÿ5“f…Þ[¨Hú°ÝΙ®J˜È¢XM±Õ\×¥éÛ9È¥ŠÌøÉÌlŸ^"íé8“h¾Zž‘¸Ö,L\jÂ~ÝlgFêúÅôí‘ò–í¡\ÞV?:Ušl1$¤­GÍ4–´ÕÙqÓ%l×…êlèt™8lº„ë±X% V€±¶Ò1/Щbº÷fKfÚ\=Úa¶>Åf{„½7Îfé§ +÷§ +ë¶ÇÄ iiÒGŸ ð !ÛCB¤² m¥*Jz¹X·ZkD¹nµ‘£w»¹Ðõ¦ ¨<Ÿë8S–®k-¦ëZs ˵ܱ¬¸g@†ë"áîTAýÒhm¶›°ÐÇŽ^¤íŒ¦S £bª®_€Xh&ºÍW¦Yê:©†!!fµK”Z† +¿^‹‰º£È¡{í·•î÷fÒê_´U0»µNÔ0™_©ŸÌ/Û—egnpS7˜ û;c|ŠAÆ'­õ¤¹-4'UW@ÍgêáÖs¤€B¸¿I92òɘ˜l¹\ÏKÞï+ÈÜlËÂÍ–Q\Wj¾;y¤™j~êxN²ùJ3É­ä¯dÃvG¹©;ƒ¨ÀÁ,÷G]|·ÛÚZô·Ý‘‚lc,ƒ¤üµž©¢-·ØBtŸk¤zh+iÞ#”÷#ü”w“Ey ÞFñú^ö=ú½²2ÁV¯åÏœLç7-w“c¦êQ.k’,Ꭲ´[¯Î«Ò«¸”¹´÷HQì+yEÜ«õ~¼ÿÁTz†a*§x­W„Xh ŸJ‹kŽÇ¿×I J7z¾Š¾¯Tµ‘o׆ñþú)e¦è¦©„ ä1¾Ô2Òî•“ÿÊL ùƒèëú[šÓ×K‘m ޝ^B^Üÿ rëÚÈ“¿~‡|yvï5ÈîÏ>Aâ“ÅF¢ß©RÈ9V 9+Ã̸‘*âç¾Ú§Þ|âû1æE ø¬’˜v7 }îÉðw¿$ ô»”ñ»0ÜïÓßù7j„óo^ŸÍ ~æ¯/— cžcB f¢­æ8!«]<¸¶†ê¥­¦¸,4 £Õ¢à¾,ºU-û²œˆºŸKù“vçéq9ÙÞî’ÀÏóŠ8ÜãÕ×áJÌçO—<ß¾8½4…¸½y :~¸T‰Ž¾?]É YíÈD¯÷åqç{20òZšË¨eEy^ìh^º[‡ð¼–»ÓHL{ÐF#}h$ Ÿ×ã’~O‰¾âaùÃãwnA<^?¿Ì ó¼ÑÂNz))ºÞ`ìN±I:9 »2È„É*Q6ƒù ï:©»c9âénT—ñ¨~1šµËÀÙ 1Ö¥isÃݯà}œ®úY¼½Œóøú'ÍÏñÅÓá÷©B|ÀΛ¸5Ê%lKÓ¹ó½”À…n¼çBÆè&ïå.l²Œá4–Ï´ïÍ`ÙvòQæµäèg™ ^÷ànŸ¯¦¸»üÕì ä­Émˆëë§—YAî&•¤×¢8'm6ng„ƒÜvA=/u°#;hÛ#ü¾TDÛaÆMU¥Z g$=È#ØŽç²BnBí?_‚;Ú_¢ùù\Åy9\¥¹üÉ ñºÆ}ÅÍìñ¥Ëk8·¿óâ®-4Òƒ·FÄ´ÍÑ,öB‡0q¦ç2UµŸmÃxK˱6Ê:†‡´‚ø¥7 aös³’L²¹r;#>ô+ÜÿºÕÛßLoüy.“›× f÷nA¾YýÞ)Nv=šÊø~6ÃÏÜ%F«blÆÊ- JsGž•½2°¤´>@Ü‘°S6†èÅnâL3ÖŸöÈJ ~΋ðù+'>ðÁ÷Û­Gë›™I¾¦œàý¢¨çÚBø‰VTðÏzf“ºKvãm9~7 “pw%ÉÇ âaýòÆôäÙí[wîC^>¸¹~íwÈÓ¿ÿ‚¸™›Aâl.•!#nK²bŸélj[R6\ÞBt’5óƒÊÅÞ-Ùt‹bBüMqJä5n\ø¸ë%÷/A®>ƒ„Z}€ÄÛÛBœÞ<‡˜›ü ñµ|±}÷róÚUˆç;ËßÞ_ÊMô¹!+Á}’!ÞôRfãß)+ø>…ÇJý/ ~v)ÖÅjûòÕÌ òòö_»‡!î/ŸA>?1ܽùä7rç«`Ü7!¶OL!`ëæÂž©*‰_´Mœ@m{.~¤BЙò.#bÿ áL¿ã·ØÑaW¿^ +´þ‰¶ù I°µZZ@¬™B^xÜ¿u òûo¿A^ÞùË ˆ(Á÷÷‘BŒõ|ÎkU‚ R7¥|’•b'/ ‰I Üàö\ʇb|êßôÈ +ho—Kh7GÖãÄËü9äãcˆ¥éÈk×!·ÿ¸yuï&ä)x·÷O®"=M&J’ß/÷àšJô'UÉ¡3 󺆸—„ÞÄ\Ióp†ÄÚ„ø[¾…X™Þƒ¼½{b~ïäÕÛ»×o@®]¹ü/Î}|âþéÑoƒ™‰_÷%b®a2+[7.¦ïKÅ,à?Pë}ôˆéFŠçp1ùS vïëõ;ÑË÷r´-Äêþ}Èû{w!NÏŸC<ß¼q¿y~ë6ÄüÁCˆÉ+—ƒ<¿úÉ +‰ö¹+)$™mÉ„-u•çnçg­dfÚ¹ƒÅèwø“tämJ¸'ˆ‰Û%ïæ‹‡&»§O Î/_Bƒûý}õ*ä9ø÷@n^ýòÁä>ííü{?Él¬ áÕlòÛ¾ŒM8ŸeëÕ™¹Ún^‚¦]+¯¥º ä£ß¶ Qo›8‹xÜ‚Ÿ÷oAŸ?^z~ãÈ W€ÿïLîB®¹¼ ò;øãÂÓí +9Ôý/E5Ò}µá¥ê#³‰¯ËXˆ{blÒuf"ì*12á +Ì/ä7G‹—ܺ¹bûâÞ}ÈÛÇÏ!Þ–WÈá1·‹qè—YT'U%Önk„Ý”ˆðÚÎt¸¢-'u¨¦ ®¥ Ý1ð%:à26È÷Êß÷R¤³#äãóÇOàrÿðòåÍK0o€˜Ü‡ø}²¼ämeþ-Äõn%!ìI§ 齺‘(­¦|Ê')`ùÎwªæ!Ÿ}§`æ)÷ñ :[[AœÌ- ö¯ßB^Þ3˜€ç4˜ùþ äÉÝ»¿~ÿòäæmÈ·o!(÷ %ÈøwÒB‚›¶ž mà‡Èë3ã;òØö5ì“lDìŸ9Èä›98Ô_¤è¨«žÖ!¯MAÌ@žY›Þ‡|3{ysÿ äÑ­»g`¾ž˜˜ì0…x´€°cü¯ög`^¯ ð’V†8PMÞYY™l¹ÚψÔv Gëx­<»<"É49Èï7—æ/fÏ V!ƒÿ ùû÷ß!¯Mž@îýuòîሯýe?ëOW²¡AT$Ïõ>Vü|Ù{¶‰ì¦¬ :ÈËéßšø„—5\Òó,$ìÔÓãR¨ÃH Ä÷£5ÄâÉcÈ_W®B]¿âñòÙÌr÷¯¿^Ü‚xš¿½ãjw«Mkµ5ÈIÛ“‹y»SbÁŽLHÙ’ðs´ÀBÄëþ"ʧÚ]ö´sºá~œxMˆL}Ù"Ä~TVÐ]7‡³Y+=BØÖ€·/ÉÌÓËr +tã¹™Ë#ù"IKAjSÑ÷ÀL*ùYrtôuW[Ûß<>Ø@¼ø¹sã6Äï³ëUl,Ò”… ™× +¸_:Å\gu}gµ¿¸p¾S3^+½éèÕÞtÔl{r²¹ˆ4\™Ø–Ç´)b㟓RÒL|B®†9û\v¶þ +jü9ÈÝ{Ûþ y÷Ì +îø! nZÉHдäñVy¨Õ~VìŽ4C¸¯*îÔ«sË÷”9%ó중æ=TÏó¯0^•R¨/Óa)&ô˜Ø;„ÿÇÑWv·umk÷,sÓ@Û¤i¸a¶ã8Žcff”m13ƒ%33³l1“%Ë,f2¥íiï¸ïy·Î‡=Ö–öšó½×š³¤ä PAá—ož¼ü÷³w>x÷øÙ™/“þ–óêÝ?ß>}ñ?uEE‘Ûš.môà“wæX`·°“âµcbFÓÁ2µ\3½g˜$em¯wâÄ#¬ÜNTãyxQÆGÙ/Xö6ùß’œÏ‹Þ&~tÿêåýrûåÙ•ßæfå~Qš•óObMÓWìÚýXÑ }*b—3ƒ^mòzb&Ї•ãTwòw¥dÑ0åu'ò¢¢üßï<þŸ·wïPù&íƒê´œ¤¿xùÏûW/|÷êñß`•u [~žcSL³<ˆ]Ä‚†Tt¸OÇàÚd‡€€Ù_ï!m¯v£ÍSä4Í úñ|cÛø³ud¼?7Æ8Xì'¸7:I^©€æsv!³Ñ§0}úa™×ÐÑçT2a61äsÑ»x[Ê[Ö;›ó½`õ(-U;ÆÌÙZãm/Mów–ÇYæ¹>ˆu¦§åp†”•0ÁQ ¿üêvªGJ®q é-þõž¿xbÙ)ïéÞs‘‡Rõ@ÄÇX'i¹;“¼ +ËtO“b²¿Aµ0ÑNMáWzús—y=ÉãdòíNPÝ—ƒPèåv~ÑîBÆ'íëJûz‚²NNHÉD…uLtDË¥•íôí9J¡i ÷nwQ{¸Ê[æøõ²ÑÎBéxµdd t­g0CÔݶÎc¾˜#¢~–t—û{ò§ØÌ‡Ó~êÆl/hWÒAtIÙ0—„Þh[#oƒ¹V0Å¿YzVÂ&Þº»-D窅³½ô— ýíÊW†Ë{pˆK#ôž—3üÑŒ :çb–l™ínÚYàT¹ÅèB¯ŠÜ0´ó}º®~¯¶wԣퟻFOÑ’ø‚5tšx°õWñ1e®š/+ú”ÖÒrqBЗ=Äf½˜ëä% ±XwúX‚ûëô$ëÊ ×¥œ’…7{¦ƒAwØÒ·Ùêžø=ñ{^ l“‘«¶–ð™j€ÿă¬w²~æãlGÃæÊD‡v®³Y1AHÑÌÑ +Ö(‰3€žà nIÇG¡ëÃíYª9v©u£Ðré¿ory¿›Xü¨Š=X†§î,`Þ,1«"˜S¢yVn˜@¿Ü›Çgì­ÜÕQöã>õóezî·Æiz™fqipcb¨N8ÂËTL ê·VúÉIß#ç`÷ç¡ér~æ7 uOb&&çdwÐÔ“Û<2b•OÍ!ìIXm›Âö6ÉT{ñú0/sc°+W4D#éi•-1Ô«ý¨ÍR®y—fšÃ$›g`Ïýj.É!bÃ-§ö%hÒûîµnDÖ÷ŒûTíY;Á hÛ*6KÜÝô¨§éõaT²ö5lSˆL·¯"Þy¥@®JˆåA%6:ÝrFk@ävXÕ­é{F£›‚.‡‚³K¥Û ÐÄýdúîª Ð + 'úvnHÙÁ ÊzØ¥5F5¸ªˆ–Ðd— óÝ2jSPÙ;àYïâ¤\¬CƆïo°áQ- äÓ¼køb×<.ã`óv{–q¸6À:Žåèájj‰Û¸;CÊñ +Ù­êÅ{ˆµwŸè‡DGºÞ©€‚ ¨¨ „Zç2›lKÌÚ²Rñ^9Puvº$Ý\¬›g3šwW0i{+è4ǡȾŠÍuI˜-Æif¡eœ_ã•Lm„¶ºæ|Z2ˆÕ¯ŒPçÃÒçknû¥ð¼S3OàS²1.)‡Ôwy=S»ªÞá}åÐäž|trOÚMÛœ'¤™¹5;ÂN¸MJ¯‹(ˆ#=—qbàÐÿ[#óÙ¯ƒèUª}j:°Éï0?^¯Gt¤&4œ(°€‚ÒàÒjÄçÌÆÌ›s\HÕŽl|ѰÑÞj‘’*Ì"JÝŽˆëâu«{¢&A¿G…®‰˜Ú‡c–a]ÔÜ9æ’“ëÍEÝ¥æVIkó+9èÃUb‰u²í±GJm j»‡·go C5×·çÀIº9dÚŽ„³+8›ŠO›æ”\3/b '-G‚¨šµ${…-¯!É>±<ª`BÃ2FÛ±‰ÃéèhÛRó³ÃÙê{ÖÑÂt=E×$Ì·çwÆ+^†µünÃ"›"ìiJ²K©˜èÖ€,¦ã ‚j*|g ”¸ÆÉþRÒžqÑ#—îò'½¦®‰þšD§Û¯5ydäò":6 À™Æ½•¶dÝPů›Sµ÷ü›,¦«{ΌçebÃF.; £ÃÂzbCP‰)õKÐy¶Eгýù¦g»¼Áˆz`& › Ȇ§üª‰ ’Úìã +ØÌÍæ{n1¦D;ÞôT3Ð|Û¾„Ër­£³Jbm@«ð‰Q¹a¥%¤ VÆ€¸‹‡¤1ýÀJ<Ž69 §’PccrìBt¶[‚¯ ”ßÞàdÜ?Ýìèû¦rÕ#Äæ:–š;WZ_Ä÷µ{å Èæ¹a‘Uõض€(êºGCªþñ€¢oÐ+cÂ-£e×÷'ëîÚæ! ¶5B‰¸ž¥êF”yDí$ ‡¨G6)ÞÓ*¦EW¸V7GÓ/躨®sÀ­ä’4ã—9Rµ³ÂªÎ”Qša™6a[JÌÈå†5|NœcÜb:È#&×û¤”æ8‡::Ê+Çzú¹H.‹¨ûÆCZôp¥åÅÞ<$ÈÇ‚#5¦6 iË:5§›¼và3Zü +÷Ø< Šmõ®¹ô]£^]ϨGÝÙm—’]|©WNo iYؘ‰†øë?¯qÑR Q=ºîÔŒ¨Žéqµ^)&?¬"ÖÅ6Y4ŸŒÒŠ÷Ûåöþee±ÿ°ÐðA9¾Ü:~jèo{èÒÚ"ºŽ± ©cĦ Õ,ÜîÈN÷êÙŽ`â?»,Á©…Á鉭Û+UwCLCÔ è‹½C»àØÚ9Ä3Ì籆 +Èp% 5wf+oD4dÈÞ±Î:Mò¬âŠ#:*"de±b{‚É#+À¥&5ˆú nm-"ZC›]¤ï8õD‹o>1Äk6Sá1,gºü¥m®þUDMlr‰( úþÊÕùßXÇ*®ÈŸV|¬'¡b¦Žaã¼x™›~É%EAOvº–}b\‰G‚ÊÛ"ò6ç!¾5ffwïu ZAç$-ÿ’cQÿÞÌf{%Øâ°œPá—"³m+ OLÃùWí†Ôãm;ð›GAo ;†B¦žI·ŠvI°EžõÖß:è™}©þ¡SNû}Ÿ7ì“2 –qZåÁ¥êHÕ=xb`‘ã}}kðdû,ìÅöTÓ]9¯ô[CoÓÇ2¹Ð¹ˆNu Qés­OlsMëð´S€Þ ì°x'›¼Îˆ†=æî·€U¸R¿WT’êVà{3Íoß›ƒQ}W¿OÂû׉eöéÖGdƉ’…ö‰¹pù &e]xþp +œ~¦ã²Br&Ì#¢7±Zç¢Ë}2R[PÅ!Ù$]>¸àÂ@kÎC—MwK9¯Sè•ÁÒ|2x¦SØšìX©KpK0Å{BRéæúKÄ¡ÄL=sñ:ín1ìYǹVÚw'«nÚ—«îù”˜ÍpÃË8%ªìŠkÀ‚‹óJ©õ^9©Ú±ë“¢òâýi÷÷Ľµ·€Ü.‰iÙœ#s{É<2`jN Øúc=´3Ù|ß/¦ÁO7{æ¼ +¶Îhð©\BÀrÉH >{OŒlZœG=RdN¼?A¼g·W†- +ª1åQ5±ùDß9x¤Æ­@äïÏ5<Ñ÷×ßv.£³Žõtt¼Ì‘_Ó›â÷ùœB\É‘‘Ezoáð¢¶t§QÛé“zJäW[l«5œÍo"\Ñ…€=ÞfòbJÝþ*¡$fjï÷©é endstream endobj 54 0 obj <>stream +pà·àãë.Ž4lBÀÀ° +QÕ ŠÃlå<9ï¼^yÏ_ ĺėUì–£ +¼JTnTOlŽm¶÷q7í”sˆA5‡|bd’NŒDБUº=^ôã<îþ‡ +^ÚÕ# ±%¨dãq¹>I¼× 5‹km¯wf!¯6§‘Éû«°”Ã5ð[·W52°!5¡>¤kï êûW¢[Ñm^ß±xÜäuùÔLŒu™ªã=Qí«˜Ì˜†K«¹´°Ž‹ù£§;«g{œž †ÔP‘šb–!}ÀØ;c“2Án)©ö2ñ¯"ö¯ +ùw¹ƒÿ»ËîqJ¨à.ÄÛóSÔß+xg€~­·¾òÌWÝØ,¹dî.»¸?ÒpϱŒL›ã•_ã”=û*¸Dª:–µÏÔ,̉ à)¬À+nxé\*¹ö»ÜÇ[¿š }¿ÍêÈ—•ç£sý*tAD…)IQ¶EÄ;û"·Ù6M­ð-rCBb‘w •jŸA%ùÖ€ç+¨ ÇlãýÝñ²Ÿœ+m¯|bRÅþ,¶2°Fm²¯á‹v—©»³˜TÏ*³6¸Áh*hP—˜TϽc}ÿÜ) kb:àñÅŽulÞÁ2Õ¹Ab™/ˆèÙ @s}*?¢íè<ÑOԈ܈¼9Ñ-l{e[¾¶-AÝra•ä•òÈamgwHM¼Äûw‰QùæYxb7ìí…xͱ±s8bèè hðÕ>94àÿ4¯ò6pK˜§í5z3”òLPÿ6fê ê;z<€vòÅ{ª¡)ÎuHj@C|±è`‘ìZ#Uë»ÇO¯Õ8!á¡‹fÛ^$”zç +.w›ûÕÞXëÛÿlw-üa,: é´8Àu¥;sàÄÍñ†‡#Ü Ji Ç +¾è?Û‚Ñ?v£îñ†þ³ÏŠè•{K-OÌÓ­mËØÌÃeTJDÉ€êQ%—Q190BÈmwÑ…elêWs¸ +k«¬²_ä‚ü_ü +|Ó©™Éøm›Í?±°~5q¸Amh;‡b›ÝSî \¥e´úÚöhÍ/àÓL$ø{ ±Õ=×öÚØ™÷½ˆšõÍÞtKö±‘„ÈÀ©Žå¶$ ój.Õ¯âÃ&7b$àâýIþp7 +ä_DÏáœZˆÐ ž†ö*IîPÛÂîÔÊbž™™Ôˆß<ŽK>g˜—ŸYûÅg–8v“!º~-$7 1 ¿o·†´L +àCèaS¿( î• pXEm©ÉÍž¥¶DŒÑ ¶<Ù„§ž)ܨ„Ö⋃+èìƒÑ†[> ýk„âÝYÈëlê笼»_û¾õnkç »sµ·­s5·7'ž©ü§‘ËÙajf9Ù?îÌrÛéœ=Þd³€¼m 9²;ßðdöæËøz õâ5«&á’k–å]ÄgYúšošº*4t”ÿ çoäçíškzâ]#”*†Á)Õoo2 ;áRš<&*¨ C +Rgœº=UzÓ¹ÖœÑÒð~)`-¨"6úe¨¼°–SC3ƒò¶Ô½ùšg»“ÏB26¨é›rË©€nAå+±å¡Á/C—Ø"·•a[F¦hûk~Þ[D檇A9Ö‰Æ!¹Ö¹cŸ=pz/ºÍ?V‘šcr\_3 \úàâuOÜëðt€‡Ûソ+4 ±¶FE;ŤmƒPãtmÌÈ$ÄzS‘š}Ä2ï:àëÌ „Н hù܈¡{$bâw¸Ä¸|§›·?~¦¢gZFžjÛ;Â&T䯘 +:¼LXÎDÄT4˜[Œ(tˆ%©îØÀïú+^3w‹?xffÑ£bsPÕ–êµ$Ø–[ž8×Ú^¹Ö I^!*+°/ó¬¢3}bEøm>¾Ú±ϲͶ½ i˜Ë +¡[þüsË$ªìÌÚ³v´Éª(¯ •ïá‹<ªôÛdÛ&ïpWl_#Õ:€±úk:*n8ÆÀÏwkï; ™Þ |Åö4ø¥WŠ­=µr{N¶é´ˆSP!ò\ÒúWNqõ‹“MtýoÛ4‚GA¬2M4=÷™Ú»Â€¶?± +†ÏvùÃQ#T3öfîGªn†´ fDÇã™”##•èS£Á'VãÌJÂ>¸Á¾~³5Öxϱ+¶ÌãJtCÌR¯xx0¤ènj8„˜œTã—“ÜkØ,ÿ9^ëášC¾ó-á +c"jýþHãÇtãCëhÍ)/ó9'ý3cGùýƒe\‘v¨å‘u¨í¡}…XçÒAîu&8 +äÛoZA»]ˆ)u^ß›‚œ|èbÕ#ã y–air~ñíÍÆ'ªþ滌Š'çã¨|Ç!C龨d}%§~­ç—Vþƒo ùαD*aUÝIypþoÌ‚ç‚bÆ)&·¬@2k W[“E?‡²/yÖ[’w@o‚‚_‚tÃo€î «a¹¾õºg޹ÒÛ;cԂןïŽTÞ ‹È ® fÛÖ4Ò`[à +*̳ÏŽqï—êì«ÐÌÈ&¦éÈJBEîò«)0ÝXÓÃyxvTÏÄœþÂ!&VZçÉîUTºk òê`¦ù•œWpÍÐ]v= ¢TÍÖµwEŒ<.ëµóðWÖº«æŽ‚ï m)ι–TÛ|Ãóc#ð³í~)²3ÑôڹК²=Y{ÛøMDÌñ<ê^lyê]†&úÖ©5Gÿí]Oi ÊÐE¶ypâî,<Å4 {5F*ºw°DÁ„ Ý£^µŒß x… Š>6ò{ŽLÝ“«¨¬ýUla@Åçûµ]½ûBjº”`êm~î]ÂdîO6>r¯´¥x’¹3Ûú̵Ž*ˆÉبUÑÁ CªxͱxclË{+P¢JýõZ7RwǾ†(òkèpŸ‚Öѳ¨'Öö^™PÀó<ˆ¿ W1°9;‹ðÔŠŠ:ÙRowLE6©X‘g_C¦ÌÃÞîÏBS|2bi¢í¹a„P­”=Ý ’‘ª£*¬À—úDðô‰ª;j^Öw»ͬƒMœSàDûDÛÛ5·³Mϼ2LÑTWÉHñÏ#r®œ»FýrÆ+e´~:\‚¦ìÍ‚ž.´<©9L†Ç0¨4¦¥"O-lð·hÇ>ß:Ü|o³¯êŠ©§ú¦c‘Qµ5NÎ3k.:g?‹ÉpÌÀö'Zîú«.KÛ‹Ï­Ðò>¿ú×ή޵"ÀlÍ€€¹¿åX§$¸†€à ©r{¼ù¡¥§ævLFBÅ{šíÌVÜPrÓ?“3²?·öWÞô®‚³Ž¾?Vëì+ˆwºþº«¶YØ+ï +6×½„˱-à³ö§á/&aÏœñûuÃÈçÆ.øS!¥ú¶±³é©m• óª~R?Òp2¾ò¯‚ž{–›_¸—OµdÄ,«à&ïÖg"veʉžÍöŽõõo£ú†ÔÍɼ›Æ¡ÔKÖñÊ_ÜBléá2:wg +¿šM h:‡¢À¹Ú¯¿½LIÿ¬³þÑßT¼¼Ÿ|øê^hÚÕQtê°š%Ø_ÄåëuWtœÒouœ‚¯„¤×ŸÎ"oÿKוò#ÇPÛ +µæ`“î^À×øÄ4¤[Ã2ÞHàc=Õr¨ÇzólÀ_5ÓáŽt„¦¨W|–w¡ùÙNOñEÛhé嘑ã2A;SÈû"Õ»ŽÎr­¡rlóèwSÐÚŽòÖ‘æ×. Çs¿†‰=2²©r¬åÒ| +4¨¤´y!­€(b·xÔ=}^E;ͳA© ˆ°ù»u÷·G+oû…” öÖ¾PûH-H;oÌ»|j"cζ#a²Ì+j{#rkPà[|£W Î8X„¾x«Ð)Šû)+¬¥!bZ ÐI €™ëÚ€flÏ‚žF´LÆ‘yXÚtG,íýsûpÈp©ŽŠp®Ã3ÝëÃÒÜRli@ËezoÔñ¸±M~_@Î&z×1YÎ%øCOÕõø^—Efö÷¸¢[ÿÒ÷Ö¥919†Î¢KÖ¡ò›ö¹æç"^ö¹ nΗÆî²NdT䑱½Û-¸~sà¡’ê^GæÇsâÌÌf[çñYÚž¦î5|Õñ&‹r¸‚ÍÜŸ‚<Ýkºkv0Ñø`g™<Ï*ýœwçïa1q8|g¬üIÛYvÑÐS}U+(½¨ë(½´=R{ð¿-»óèô­ (ƒ\ E8ž \•sµ-Å:Vquñúà »B"LSHËcº…äò¨Œ:Ѱ§€fr©Ö½zfÈ»8KøÐ2Öòpk¬õ±¡»ñºg‘^•÷öz×iuÛ£'‹èüOhùO>à•>ù—ŸsÞ1ƒM ÞöCÒ?Û½ýCÏ¡l쮽«ë,¿ïZ¨~e¨¸ºH,¿¼9Œ(8Ò‘Ú6òÎïN•þê—‚3m+M‰ŽÅæä¨Œ +‰žXÞUuCÄ.¾Õ°Øï­ÓGz:êp–p0MpÌ#ÒOU4tHJ…-ó”3+žú—¹HË0ôÅ©èÛTþ—brŧôK_åÝà hÞþ2©¢äÅÃç=½`›!!c:~ÇþLÙ ?ýKSGÎ7Žåº‡§›tRXËbNÑ ÷C^~÷¿6ÞXT‡kv/6>Úê(þ^IÌøTFLýd¯¿ôʉ_igU¼¼üw^Câu@¯pB +xo²áž†—õõ`Ó½Å̤óQ- 2ô/n-’+ìBtéo›ü®3=‡ñ›‘Ôê[½ö¬6þ÷: '€i§Ù7èµ.!©8,§6í5=Òñò/(éY_.Á_üsòøÔ”óö•æ‚?mœ¡EFÆuËxõëc# {äõ‰‘Å>6Ÿ³ÞòFÆLùÜ5â’Rê‚j~ûÞ"v¤ã±ãýð¢r&Ô»J«r.a3­£·T¼ê+î%Rc‘¦mÏ¿`êÌÿ!^ AÌN¿¸h ßä푞ʹ‹m»ó„ÌøÚ見?1’Àï·Hˆ÷V2áxY}¸ÜðÀ±ŒH «èÈíh‘a0Þçœ÷ ¹È¨œò Ñ9@.ü´AÎøl—ñÑá¾p‰Yú‹ŒSqÿD«÷,a³¶êoî6Ü󮀓µÝ%—åÜÜï¬#NuíÎ5Ø;ÓPÕ ËxýCóHÃÃíÁ¦§@oÅ”˜rû&Û¾H*ùÍÔ9ú‡E0RQšM#5¿l”_¶–þè¥[ÞuB‰m›­ël¼z8~’К티¤½)Ès ·îçžÆÔ9/>ž‚ežsÎò—8u¿â +}¨T'+ÉM†¾ÂKý 'fýôÁâÑÇ®™Êûþ5lÅ)à bX¡¶¿øö±ŽI>µð:r@£«ˆµGñzÎblÙÁlãý¨Š†øm‹?pd`‚*|eHÉÄDä„êàªøp”¸3ZsרU}eg –¸D­~À«yuagüÚµL®r-saUlv` ™s8ÏS´WÝîkxño·òuXÌaÅäF%7í+}WÉ̓©æÄ3~¤câ}rZ›l öå#ûF\sùåøjÏ +"Ý9ÏôUšcÐ1Mw üúÛ«øÜïYù÷ÿ±€J½ùç½=$ÕL7üjŸo|æ]CDT°Â?iŒ¨ Ð4Kð´í9xñï[½«GjÞ9_õ`*ÿÇBÍ=ÛBíƒcƒPqHÎ5ri@ÊûÅÔú±¶´¸ÅÏþg¢õí‡k„Ô/v‡Ëï+u¿Y8üS N-ùåoR^Î˳M +.¤BUîÍ6>‰hQ¥8SßWè[|óo€~rK9e_ëÝ%\^ÀÔ·ÝÔþ¶Íd‡Ö[FŠ.í ]² ýPµ†µ¸†ýeÐK¿ÛÝéZ<Ûûo½äöxmð˜ +÷«HõQ¯"j&r™Rùó±‰Ë>Ö²0Ç6. ¢7ºVoíS57\ÓÍcrj‹sõÖ6Oð¯bò‚bT )úVŸx…€†•ªöÖÉå¶ujuPÅDú”ز–Ð4'ǘ¾-+ª‚œ©h@/E½¥·e¼Ú¤#ÍÐâ1 Mœu­€“´ÅÌÜo5ܺº)l&­îéÇc°´Ÿƒ«,˜©¿öÎ<úÕÇ+øÄÏ4‚ìï„´wŸ­“R??œhJ<3py{smÏl˨<·„ñŠÙа_–¶¾u®Ö<Õ÷ühŸC¤¾7u œy<¯ÐbÓm/Ü+ȼ€Sä:UŒÊu,À^ÿ·NØ"63¾ga{²å}W°³@*”pj/IhÅßH©ÅçìšÛSèÌï–ˆ9ßïLµ%oµ¼Pðо1 +^ÂåßÜí¯{qh€÷:<¦¥£L3ÍÏU}E÷Þ›ÙÜ÷VN§ ÀÛ\Ý}ÛBãÇ Ã×A‰g+¬£!Ýb\IPIxžuØÛíÑÚZæ§~Î×›ƒµ·¬3˜´Ž–œ  ×·þeoIbç•ëË T‚ÜzÎ.ºýO 9 Ð¸Š”MÐ÷´$ìŽ4> Ë)-Ç:úÏm6ÿ½‰A )ñ•~:7¬$Tû,¼m™“›N/¯íꂞm V_jJù›víx7þ¾)Èÿõwé\Af„¤¸²¨’Üp¬aaB*L©_ )° ͵ђxl`Òß›»&BrrëþTùmŸ¸%ýXGßUüO«oƒP½? Nð®“â{jZ—È¥—»¡ïmx´7VsÿZÿ2°Öòγ J߯y*e$}µ–ǯ ÌÔÞ=˜nK¾ï;ÓAXÿÛ7§×/#·húj~vKh(ŸiD¶ ©£Ày !@Ó¹ŒJß*ùÁ>Uþ‹s®îµ¯ø'×""+¤e öc[l}XGdç©Ü¯ 7ï##&î¿×®õXà¸ Ž‚ +ênüáïÖŽ) Ï'€÷ ÖÙÖ—% {ºÙ5qlà N¼ Ëžä;Û4,awdA½ñÊ®˜'@oWðy«”¼Ï—Ðñýþ%?[àols¤JÏ2¡.,#ÖÇûÄì.“ì^úµŠOB¬q¯UÜÙMÿNÛýöËuZÂG! ¦4f`üŽ)Þžj{~ ðfÀ²ˆ‚…8R£‹]+çïzW¡¯˘wëìêK¼ÊŸV)M‡bTÝÛ|s™úñ@ýË¿÷Ö'ý’wëd¬œŸlFàŸ}Ûšþëû“˜Ü€ˆÖ•àŠý«-‰æ¡ÂÌ7ÉIŸ‡ÕmùíµÇûW„eÈ‚ƒ©Æû‡³Í"JLÅ©…A;Úb2âÞÙ+EšVÓ½ÕötºõÉÞ4øg]ä“àJV0êî†kȬ/qã³÷›lVDÇcÙ„”Š ‚Úv²Éëþ}›×Õ›½å¿(™%ç6ûª¯º×ÐÙ1£É0 {RpÈÀœPvG«oÔÝýhôøC>ùß*Fö—þUHÖÿ²rH3¿öÞgŽYté{c×È{#ƒtf@Uè¡EŽåŠGÆÁ¬K¦¡¬sï·Úûƒ¦U·œÏs +I•§&ÁȉŽA<3ÐÑ1%©!$n}w8Sz×½Zÿê·mnŸW#èvŠXˆ¨±½ãÈ …¸ŠàÍ m‰3ˆÔsüâ{yÔ\êÁ>߯$5ùåÔø>¤ –lSMÇ+®Žÿì_…Äïá¨ê¯,Ë=b&̶ŠÊ´¯¢2l+ðd‡šìU s‚z,¬ëˆÖ¢ÆÞÙsÏì©™ÛþÞÂáÜ0Îè& %•¸R—œÒàSµ3—Qq’`îݱô5]×ðŠÏo×>s,B³Ìã­6‡ð¯gÍûÓüæƒfÝþ>ûЃ»sm Ö¹ê»Q¡Îpàþ:¥Ú#¦5„ä|†_Á€Ø×19>2ÀpX‡¯qJᙎ5Ta¼×jPÍÂLxHä·š÷ê:1ÛœBhªi¤þÚÎ4<ѱAo=Xg6‡É©–>zš©yOJªú~ÿµ\P~SÑWug ›ù¹˜U÷ÔµL*·Œ6=2tþäšk|¹5\qÇÔ[pÙ1_~çØ+ˆè0û‹ð”ÃLÖ‘žK阓M&åÈD'„¿ì’!òÌU7½Ò¶tœXã]c´Då#‹Gš‘ à·ÀwçšîÌV\Õ÷土?ùzo +œ´5‡J†§~¹3ÔðàHË"DÔ,BPIpr‰¡ù–©¦GÊöŠË˜ã=8™<‡àÖ¸>Ö1)ïÝgÀþDZ‚Lß›i~èÇ×~qñúAøk‡PüwDIkŠm¡5È5Îñr.Îâ3.d Ôî,*_Â+ºàÚ@æxˆˆ™™Ô+“~à_X×Î>\%Uù\¦{^U“¼XöîTÃCÛ4øÕÁtëãxí.ÇL[Ú-ïêþ¬`wS½B/½%a”^vÌ‚ßE6ÙG2JcXL…ìÍ6dn=¶Žþt¬§àcz{”¸7S~m®äÆæ@ÉuûbcâïVlOý#ƒ1Ë*}<‚+¼sºÕ³tlj¨­®EH‚¥§ì²Š›yé`¶&á]N¿i +œ"⃒ýÚîÉãÝî5Ÿ„\³; M|êãÝYdVXE†6Y´H¼Þ»ŽÔl_A¥;ÑiÎUBáv¼ÎR_饭¢Ÿd¬”¯7ûŠ.ïO€„\¨y’&áç_ØŸ'e¸ªS®ùÔŒÅ,TLDËeGõ<~ÌØ.82ºÏ,½Ëñ>xgf7f¢À}D^@­tiðšÄ›I|ÁE÷"©Â>GÈ“PŠÏõÕ<ü[OŽ¿K©_ÙÇëu­ +ô3„œABéÏ“Äwç÷ ÉA)V°qa ®*¦ÇT»e€/˜D$Ù7—¤“»9C̶.ಸ² È =,ï·-èw ›sbä €1’#Z>'fì?2 +:£. @—ºÖëM)^!±Â/bµ,‘ +Ĭæ+“Èò_FÛ2/Œ·¼ût¸ííW½I_,`3Ιe?ùWÈ¥ëuû‘ßìNã+}¢vìá<:ݾ z‚^¹„u÷ÂZxaHC;ÅTøÑVçt@On êðµ! ¢8 AUùÔ4¬GAA† ,†M„α-Äïbë#ð2ï«Å»*/°ŽÎsÎÁ’¶'á‰"~õ5nýË/ö¦ai ˜tëDëC×*ko–bž¨¾»·ÔðÂ-BdùˆÓ޶½‘ôTÝ8Ÿó~§cú$^/Rƒ¯wÄkK®ASkL—„PcžB$qz-¬c±bFÛ+Å›GÊ~‘2s¿Q ¾¼øÜ8PtÇ''åwFàï¾=´›_C…ãoûïZ;rò`•Tâ3ZäÐÍÝLAàïx õ¨šµÏCãuM•”´ÏÆ ¿4 7<íEæ\~}훌#U‰X p¿¤.yoªèަ»ôgVù½qËo}蘫~þ×!»×£À×Ù„°TÀßqËa¼·°¹ìÑh¿ï [ö‹“v¦ÊŸï̵½ƃ82±YA-›Ò²p1 ‹|¢d’þ´Ppí'dgôâ`—`+=¨é jÚ9!¿+ªoç•l¢oWh$bX….õ‹ 9ÎÅÖ—Î%Ø+@g?ÐuÕ]±tÇkÍÕÝÖr .ïVÞrN·=9œD¦®óò/O _þ{g¢%éÔ@Çž™ ­1ªÀêl¿[|FàŒš‰>3uOœ¹¬S#‡~ÿ.¡)è>§’Ú¤þ]¦ÔÞ0C“ÖYU¿ÎB²¾Ò*ž+˜e,Ý€–]l~£ @. `³¾&¼üÌ'ÆUk:øA9à•Ä×YB^»ÖÑ9KˆT·W¼³€ÍUöîÚÖÈÍa¿;¢!6d ×^qc’wœŒ}¬c¢:=¢ç±C&îØÈ9¼xßúˆÐøK„¢Ã)lúÁ ú¨½özå««˾ýí³ÈÜË{“ˆÜ;¦»[ƒõ·ÖiÙ?H¸Å7—¸?Œr®G±y@ôìÎÁ“ÁÉ‹ §9$óløãÝsj혌YC~%~O˜x²ÅàžZùãG–IÐpÅ­ Öóû|•Uðã&ëÜ‘‚O‹Æ{·Ëñe ¥Æ>ƒHÚ¬üÉ4PúÃîtË+ç:¥a™]qEÚQu+¨´®š…÷¾Ú¯Â–ù•¸2· W"ï=uÕ? ›y“1+¯Ç« ”;E¸BŒÔv²ÅdüŽñÊé­öulîÖ8!¨¥Þ’Ôà–  w¦!9ƾÚg;ã-É ­yÎÕÖÔC!:o‰]þË 9÷ú1À‡n9©Æ¾N,wIÉõ ï’3¡¶ J[Îë† ¯¶90ôL¹€×^ ¹Ê±„L=˜l{±;zº;ɲo0[„°wÄŠÄ Û“õ/=¯M#ßë2.mÍÔ'(û+µýUo|°üßwYíÛ«ÈÙ@ã]—ˆ;1wOŸ˜Iè#c[‘WRv‘zÿß‹¸'ÌÕ§¼·²Û÷19¦)Lš[Á¦ž™Dš;ÇÿÚ¡à³bêƒ*hÆÖxãï*¹Â/d5e\ìñVïʉµgùØÈïv­ ³-}õW lÀƒ€¬ƒeWvÇ*¯Å{ ›nm Ÿæ½!d‚š]zqƒžu~üôsNÅ­%7þ>ØòäCÛ<ºÐ¶‚ÏõŠ0ù! ¡& "6¸ü#sçTdS0Ò2Ñ'&ݽŽ-Œ(éÀPÎÌL’WÍÁŠXÍŽU^ëî(#{Y÷sGÝ›Q¥ËÜVû,Ñ:PqE×ýe°âç½9x¢e¼í©}¾-éHM‡yWqù^!¹< §ƒ|D†W}ç\kI’wfÿ$ãç}k_hx~f¦\J"È#¥{Ä­¯ýRpVL‹ýÇLjûÏ&±í}¼'³žŽðˆÉUqýPrÉaug·WÊÅ™†¡‰S¨¼¯†Áéßȹu×Fy—ºëÞ}kîEe,J·FZîŒCž!2Ï­Ñrômà«Üäæ-w Wð´³ñ•GÂ%ø”ÔÖ˜ß5 kC:—¨<Ÿ†ÚâÓÒaSÇ@l“Ûqèå#sßJÄØ51vôóo™Ý7×ß1 5=°N¡KûaIç…¬ü_|ËôJçâ•–—ýŒ‘ú•©·äæöTKâ4>ë›uné½(àù\¨BóXýódýÃx ¹ðŒˆ¾côô [41I.ìwsBêáé¯' ¡´c…€ñÆ{lG €×pÅàyLÓ3QšÝ"tîî|K¢¦·òÊÖ4,É%&5™Ù6 ºÚ< Ï +è¸ü¨U0î×2Q~í’‘ë]@îÄLüž€¾³ß£îØ$Ôš€RÀ‰é=§†öN¿œÙ^&l-2Ë·ç©ù¶U|‘q¤ù©øÞÇ]Í ßåx¸_,² ÛR¶gŸË¶o`‹÷„\„u‘ÖèK≩½Ã#Å–x¤ˆ|‡¤åÝázsŽu¦ú‰W‚, Û9–YF™~ûÆ£â°þØéETä¸fE 4Ô‘™×Ñ·wéÚ9% ’³‘@ƒ†4‚Ž€œ wËèp˜Øœˆg›X#ù6%îxš¡¿è²®³âŠe„ø®”ñù,:ë+™ ìê +­à§9dÖ7k„œoÍ}57+Ølu_ë=Ë(*+ ä‘œ$¬e‘cæî™€AÐ唓ëlÆoÏB’WPYÒŽÂË \cXß5ßãâò ÝõWGZÞü«»êéßDÌ’ïIÏ?"äþú¡©§6É/ÂúÄÈlŸ•çXnIÞ+½¯¼þNB~ùéÎ`Íýƒe|´£ø­ ìÊö(è%àsãuÍËÿ°â[O èêõšû~9²ô7§³vÍýÇÂá…7@¯ý˵ÃpzLGCFÌtl r ý5¿ØÉÕÎu&RÝÛúŒßøî»šW7>åW½ùÂÔÑðóÁhóÇ,m ñú³ hÊ7;#˜t÷2»ug²ùñ£à¢¬£ú†e +öRÞyº9Eªð(;ù.9¡Ú½*ðË騘ŽE=ÝäðŽLxlXƒ†TØFŸSêW’ÛŽ¶º›ü^¿ŽKÛY€fí-Ô=õKZßäÈ<í0ìÝ,÷в œl›cVYúÛ,"S¿nzùµ÷ö’†vÞ>Óø<ª!#%C•ÏYO¾pÎÑAQUWg@ÍÄÇž*ñÕA-¦úh‡Fö MV!2s‚Rðsäõ¥Óí®ù¨¹# +Är¼Ÿ÷ÞdÝÇ8É'ÅÚ!꨹?Š|÷ÍÖDs m<׸…øRp8å´fË4*ùpWâ~k…Ø´=‹( +¨Ú™A —ÔÑQáM^§_ p›Š ÷(™PŸfhépMÜ[$–ûÕlŠML©•u´Ü‡åŸŸFfþ`¬ùEÂÍÿEÛ_¼¿/™B½=çÜÇ dLøîM5j&“C*Tƒs)Σ¸‚˜I0Ö Æb +:~Ó«f RRµMJ¹Í2 +ºþØRj÷–ˆQó ,dÑD,CšÿÖ†0 +ºƒ:Ä +øÅÝ ZÍFGã-Í ðÙJn—nZ”2`®elºcú|o¢áÖö`Õe9;ý+)·äÇ1Vý¯o}û¿æÕÎedÆÁ<ô•±·ñ†u¤éÖþTý]Û|õmß*6ðˆíU\Í>å¼_Œmôk†—òÑy§¬§3¨á±ŽMü®ˆË´Ì¢Ò¶g £Š½b|µsñngüDD¯º¾B*½ œ«›èâäϹ/>×w6gx–‘Y[£¥?Y'˯(;³¾ŸF<þt÷êûEbêÛã º‰–']­i_Yúh¥¾Ån|HJ¨Ži`ùA%$ãp±á±sµþyD‰k>Ö1p^ ®,¦$Öÿi"ÃÿY9‚÷F.ûHC['ÊníNVÞÝ[FeóÁoÎ-PJ¯ïMàR·‡[{JTòÒ¿["$~ÙÓüð ^ÑÍ¿Éè…? +Y•7Y¯¾·U?ØjJÝž<±ãÞ ×¸„ˆ—œ{°Úø 𷈂ß”Q‘!%¾Þ&¬HØ[,yn_k~PºÑB'ôÄV‡– x€ö÷ÁÈ™×3@ ýRhFÀ÷ ŒTíXF§oOÀŸÛfHy@.—:×Q®ìp¶%q +“òý9çç ž¨Uol³´ºij‘y‘5šÜH€° c3 >Û¡ÄT»Ê~gdß9Ýî˜rI9Dçê—²)¾udgœêœmÉñ®#ËÅ—ÇqY·wæ %{K˜"Ë8&É:‰x½·€L· ‰Å»Sˆx=¶|§W¹ÞÝôh™SñÌ«èè +h]ñµNÖºåäj?oa —ï×ñùÚqÔ;å <Á­lgm¯R«W(5?õÔ§~Ù_ŸðÉþXõµÀFkzX¯Ád~ŸrûüßW:ËÓb›,JÔÀ¥Û7PE6çëµ/+õ)! Õs9æihžVð­qšàUóù (låtøâ:I à ’1-³Vè^%z°.Žn²{ŽÌCêßvcñÞUn ²PQ¾x0¾D7 +zÊ{ôqPÁ§º×¨•ñúíöiè‹ÝÁæ››=5?i{ZoŽS«¿oL¹ñ9|þ]û"MÚ^xQÂÌûÚ:ÒpcºþWŸ°ùÕ‘Š ªxÕ44³-ûÇ[ûš +‚êiƒO=&ŽšzgŽ-œö˜‰IŽë޽5JÉT{ÓCVÕëo7ûÛòÃRr­gfŸ!dX†OõÝ;"JÃE9£é†cŽXfê=Ôu–\´-¶&lO5<ܯyìXDd9ɶ IÙškz i¯¾¶ÙG+Qp‘om3­¯Žt¸–€” ò¬’šOµ䩞AðˆáYŽ5Ðóˆ[£Š~7P1móNõ¾+ðUûÓ/œËÜýtn"åâ"µìúÎ8&Ù:Ôt[Ý^ðý%ã ,¾ä×¾øb–ñÓfOÓƒI\ÁåÒ‡—>ØnH +‹ãöξMÙ=8œ¯ùÕµ^ýȾR÷È'¢ÔnMµå‰l<\€½;2Ç&ìÈDZH êSÀ²Ý¢¶”3‹Õ´·;GâùÑP %¶ÂµÜòÊ*hmCð”/µUY¿™:ÆOÏSªÂrl±o›ƒ¾ÚjùUÚº9€,¼0‡-øÎ·ÌlÛÎËü‰e•¸7†O—që~énLúTPþðoîyx†¶«ê¶®£ô'¿–”áëƒlÑ‘ŠPïŒï­n ê¦¦§ê¶o=~ £cع.´Î5> +ůwéQÅG&LÃ_{Tj¼¿¶_ÂBăÓIÃ#¦ÔÄ×}XÊ®è: +.iøù?¥ØÉ@í«æôÿäW=û,¢¡#­£ˆ$K_ë¯;ƒ-w˜~çg¿ŒÚì—³àÛ‹-éëÜ´œÂ–Ì÷[@èè A¤ßwÛ‡jDÉîèÑ4­ø:4û×ïñõlz,hoª)É>Óœx¤€ÚæëôÝ…W§a ÿÞ¾FçÜÄÞÿ\È,ºÕ 1¾9¦ÃVÏëý¹¥¸"§WêRppÔº€‚¨Ù„ÓM:î÷mïÌ@…¹¿?Sõ«ª»ðGÍ@ÛËRɵIð»{«þÙSùòÃþº¤¯¶#R*xQ"k/»!fŸs¬‘+K÷®#Š”Ó2>wÏÔ=>¿3÷5ÜÕ¶Wž÷‰ð¥[Óõ/Ì#7¶†knš‡K¯L´=õ¯Ðªßïl‹Æ™hXŸžŽŒ˜8¬ß¬@,š»&£:~»OÂh +Šèõ1) “ðp»c˜”>ìkç4»ÒØÕrw“ñ¹Š[ü‹’_~MÊ.9¯àWý°5†ÍðÉxX¯’Öb[G¾³¯!Ò<ÀÜëÄø’¢lþ"»ö6©,á]oMΑ¥gÉ%&VïLƒ¡©a¡*¦ÁÕDU¨r_¡ïo¾w8*;Òu¹Ä9Ö’[‚2BåÁ<ò €··'ð)¢nä“~xåw+äÆŸâë™uUWЯ?n{úhÒGKøÂo+ôÃfoóSÕH[RÅó+ÿ@½¹úaT‚ô +¶ZÁ/ø~ŽðòcÝà»sú¡Ìow§ëž„e4pDÛÙ­ì‡&ïΡrÏ€xùv:÷ÿìtΟ{ØÙ&ª2$‡¥‡î’‹>Çç=ùðp™>Ñ2ñGRZKh[v8ÝšºÎ,¼-æe,ýëà*4ÛµNj4t6ÜpÏ!3üBR™o룋üb"$(%6KØY_ïO6§œhØTÀK4úE°¯SP‘ZÞ›ÃaÕ3‰+TLÐü"('7Duøá,ì†_þ“„“óÍ0øÍ·S¨w?ìÏ´¾¼V1ºìÕWoo^ø× ¡ìÙ— 8Å-§¸6Z_XàÜRÁ€w@¬¢³œ"RELÓ!É™¸ÃHZP†«q/C“5íy—¦ÀÏ>SuUßîBæ]-xqí£QDî…9DÖ'S ¤ʉiŸÈ)€†&|<Ð’ümwÓë 2Né­ ^Õƒäëß|Мrã“C!º½„H9X%†t„V›]l™k}n]i{òöí¬ž½9xšOÌÀmvMD-Ýó'û=â³ÞØé u `”c¡émüJÕ[}{gžêZB¥Ù¦@/íÓMɇ“µ {£•à +r`aÓý5ZÑÕ½q0þª+"bî ðwŸ,Âß|$ļùØØžÁ6Ù|ß0QŸ×úâÃþ¶×Ÿ:çQÙîUHªš_xUßYpýXx×/)¿3 ª7ÙìK|¿!¤ãÐã÷Õ£.9¢ 47ˆ¥Þ5J¹¡§ù–¡£íî³ñÞpKÚ§ƒMo¿h¯xõÉ,ó+5·ôŠg’äßÀ–Û– y‡+°,”ò+Û) ±Ñ%l}-kÏ;·ÎLÿjs¨úº{ ™Q1q^@ŸøäôÖˆªV³qþud¦w½ñ™m±èºyÐ#³ÐäS U±‰ŽUReXÉ&…•|º}™\¸xnmOÃ=¿á–¾t{gñò`‰^¥Ôý,b_Z£ÝÚª» ðÐ e{Ž­ÑÖ4õ,©½1óÛþæÜëîUr«y¤áŽš_{ÝÐ z²7zéY¿:ÒÐ Ñøž9ÚÑ–ñ‰ˆ_õäÄDCŸmQPÇ&dɱšs¤‡å:±FÕÛø€\–ðÉ&ÿ^XÏîuýŽÎº¯Íì[û´3•™éx;µ©» -m)´¸»»BBÜ݈âî !ÁÁ]ëó“sžwò„óŸÜ¹³÷^k}¯dïkYàùó·§…Õ—í¤ìß(eN"2¯Õ@^þ´ãçkXµO)µÉ¦!õ|C@\vÍF~ý»ýøÑî7g"C /6íø®57 „©yqÞLË~þßY÷°_ö×°ïE–­êÚ“Büòû^ZÖ¥í˜nW‘Ëž#‹îm»ð u¢lMNYRÒ<¼Šg:Tæ_^fѹ1Qãë- nãÔöÈ1õ_³Œî¯“TÒ¶”µ¤m~Õ4=:<{ò!6ÿsJpl”_XÔ@Ò׬¨ÂU¢dI,ܰRÛ¦°Owó툕cĜԾ<î¦]ãÕ?˜W@²bŸ«~É‚©I;ÞqÞžj{wýè@×û«›Ž®’y]ÝÓk{îîºì¢Ó¶C,Ñç9†àð ì 䈢!ÆTÖ·±÷Ë »ïã4q0MD}!ë¶ìïwÝðªmªmBÑ–¹fC5oÆr‘Zr~°9ḰæÑ *õ÷5 ºÂéº4 I9ɨ~vTƒ/9C*{qR Ê=dî[¿ù‰y¿Eø1í,­} E&ÿƨö•sfQÕùvNÖøÐË*½1Â+»·$¯x²ï—| +38Ÿ'ÚXŒ ¬¹qÕkRö›‰Úó³ 6\媞¾¬§LÇø*,ê¸/êÈü™^öúû »ã…ÖzÛA(=íc_ +vßr1’/™ Žõ_ß¶’[ÖÌäö% èÝ¡?fTÖúz^VóhM[óp~¨äѺ®1qÇÍÛó[?øX„u ºtÛ ÉúìEÖ¸€ù[NP醖ÿy”бé@•ÍÄ4mŒ5;7Ý<ê’_:ÕßöÈIÏýÍ„Ë9c§ fpJŒ1sÍäêó#ÝWt”ê aã ,õWNÍ“ã’æ—§&ù7"}°·‹JFÛŒ’T+GçžìÃä­j™-+*hê¦ ’¶nC•/ÆÖIJ[éŒi™à0yÛGì‰à!(¦©Û?Œ¡êÆÐ á–Ç^ý­y-¬ôë,W±îÀT.¨:“¢2Hjd–ábÔÝQvep*ïnÙ±µÝÈ¢¿[Òr÷ËW¬øZ;ë;õÝ%'+ýÉ”´ðÕÇ*òㇽâÆUñ©¹/þ5Cg~Äê§ëpŸ{ËÓIIåe/#û´—‘{mÁŒ©€”¾þ^tuÛËäïù1mÁž’kzDÒ¯Œò{ß ªï•\?ð¡–mäÖ¢„›'èMÉ÷?ú±ÈÏ1øŸCXÐ’¶öþ¬¬ìʦ³#õë$[°î"A ”’›>véͯaúáÞaÀŽ[»¢ƒç.kÀï#ƒ wf‡›Fu˜Ù_óÒßSyk°+ëgjéÓïL„´³k¦Öô $gÉÔújÏG‰é-¾ìËt¯+6fÊO“db¬NÆø¼=ó˼ùŸ9žfÙŽÅ»{Ë’>N1Ÿ"Œî/Ó$ìÁ(¢üÛü9Œ.;@«.|ó¢]î|ãa_wѳÿÞ2ÞÏ(iNfÙŸvRñté\@æIhæ“ïL˜ÊÛ3½O¸uÏOàó¯}7xzBƒyûCWö¥8ìí¯QEÛkO_Ý]ðõOcÝÍï?ùè˜#¸¶E85¢ÇU®8Èݰ꡶û†AÉ:Zù•9 ¢dÛÃÄlÙÈ-‹*hÊ8¯úâ­üŒ™ý“Qøû´öV +*ùu”~~LÜ|/<Ì^µ3‰‹v0ª‡åŒÑØŸ'X¼ýƒ°lD•»8UwÝüº»ÁþÖg;^óëtâã8°íÅ7®Y Ë&B¿b$VÏ[¨MfN[¼¯ÜEÔ $-,ççÁ–÷ÇôÈü3aaͽ0#ÏõszbikêËD ÌÇŸüXØ·) +qÝÉÚ÷Ã>ã`ƒ$Ȧ‡ +[¶›lì†CÀ¬ÿ.u›>Mà»6½°¼ðÕ²ðbEÓö,–ÒÆ‡à¯!ù‰ÇaOVª7œÐR3%ù”‹–q&À¯½”´ÄOJâw}ÐÊ!iÃÅBÙ9Eç—-ðº/S,þ¦V½fkK^µCsVتmºé_óœáõQ&CFª|\‘ø÷wû“LÁ—9®üÓ$å°çw墮õù´¢æNp¸5~JOkÒà›.F˜¼}¾e×Ñ’¸©­2§g½Üæ+nZåŸJÕ.zݹqaûÝì‹Sy¸=ë§ÖÂsFLÍõqAóÍIIë½e%àåº Vîz£#•^™‘u¦oÚ±¥+fxÖ¢Q8o!Õ®:™ˆýq6kÝC‡D-1íi@—ìø9Œ­uÕL¨˜–vÄk‘¿vW=<6|÷ƒ_ñç¾étÂÝóq]YOÏDÄm‰1=ÿp”•6$(¹=Ê-º¤‚½;ɪ|rBÑ•ú§Vu –õàD´¯þõgºa¦·ö¾ŸžÑÏLýMÚvÿ»¦§ß›àé?™™¥W³ýWþû pxÖè_!<øë´g—-)jŸOI«¯:yõW‘¥ï~ïkÍþÍŽ-:c€åþiC—œ qÚn˜1eÄÊɟܺÄyÏòjïYiewI%ŽAÒnÿÀ¯{õ‹Ÿýçt_ËÝ=8}ÅД³¬«}ûi 8aw=ØÚXÞ­ÞñB +WLogåÀ„µÃ3{ú‡ÁZ–M©1ÝÚ´ôò¶]èÚ%MkÒ¼¢9qÑЙ´åF•í¸©à©aXž[x!2çí†$é)ÍÏFùõw£²ª'ëÆúr×\°‚C§¯SLÞA€‚Š¥›nRǦ ^q$À¾EhÜ! +nÝ(Úòcë7cÏ]2£«–LèÊe#¶4ªD¤DÕÀ„]®åÓ‡½í¢#WÌ”Æ%ƒ¿ æuÎ ²'À/ øÂ‹*DÆ8iÅ@©Ù¶“š7ckrËOƒor9^"f͉j^¶À +ge€ø-¶qg”ŠøÓ`‚8ðAˆŒÜ 2I^|ßEhõ0*¯©áy¿ÙÉe§g¤w¶­°‚*fRÍnOØpb«Mˆ¬-/¢dÝʉh:Þ,[‘%{>xÝŠ®8Ü#ñq‚FÙâ€ÿ,2û¾.r”_bµãã$…¶äÀu,:(m \ÑŠWùe¾Û¸ ÷CLæ·)¾îÛ$¯ÿ[ˆAù4NÃíYÔ¨_°|ØïÐD:ôI¿=)®ºVÒëýà}/»ùšƒZufŒ[~62ÔöhN‹Ê‚&ŒuwÜž`WNKEMÓ„´y*=,®¹:Î/;??ÔùâÀOéÚñc£`Òœœñy‚Ýý!ÌfÈÛ#TèšS¾3FCï8¬½ `gŒEZµkVÍÄš¨‘1!j|àáT^Ô`‹OKu*2‚‹¯ZÉW$­¯)!‰ÇøMñGû)?8™u·C}°ôð øÕáï<´Ú÷¿O‰[^OHîÇøè—!pÚ¯V|Ο>fõ½ð:Ò‡Lq €/‘% ?‹ÞœÚ2Ã[æäõw—Tͧú*ožl{~ÌßSw]N­½œòðÒQTÖë_§û@ÏF¸×­èÊ¿u°²óÄ‚—Ç+Ÿ\ŒË»u:®îé壬æwÇó_]? +L½tJGQýÝùáú;AAÑ%&é·öÖ1E×ã“놎´Y=¬@ƒÍ½ä×¼:ðaAû^tÝ„«Øµ£J‡kîX‰I¿OˆkŸ¬šðÕ2dÕó)EGÉŒ¬9yBИ0/¿Þ‰ÝÄ‚ª5ÅNÏ=/j~ñ}TFÈ" +"@檘l£d\´àŸ,¼ýq¬={ÇÌŽH+b Ú´ã¥#‚Rdùš Qc ö!Tó× èó8ºùÛ»b†Äæò¼œ»ë$×õ\:ù+.ïZTÚž°¤&,È‘é«tQE¯]50;V-<̼†ÚUáŠ5ˆô˜–͘†½]Ò¢²¶Ý,ìœYØ×ž~ÎD.ó)Äè^ÔS6=1®§ãwÆð­K掤 ¾s?ÈbÎ* ïb1ÒchðŠY´0Üôh´;óʲ¶åõªž1aKbLRºjŖϪ!oƉÐo‘غ7#˧eÀ¤#0mÝc \P7?ŠÈ[Ÿûo÷¶ÝÈ™Õ!)»rªŸ¶¬'WÏîÛl¸½¤èx¾f†®:À™“êÆ‡AiËÓýq&m3«. +`ÓCïøi؃PÏà§ êð»…tó’¥+cÝEh˜×  Vtˆ ;³òb8ý¤¨-ó¸‹Òrmv\2&„¾W!òÏŒð:âmŒŽWþ`ü’»b!ÔÌiAoc 81Ø™ÓÝe#=­÷\Œ†ë±›µ¦‡dmZÕë1všÄfŒ¢ÞyºÛ… Ä]'6z¸MÒúpz å¹ +•}É@¬¸íéÃ&É™°{]E©'‡:ko„¥èt ¾ê,³üýQBîÛ#ÈŒçGiÏO Ò^ÿÄ.OÿcÚpZ˜vŠY“tJ…˽@­xô³™ü‹“|BMþQ‰Ì<ïeUÜY1`ªüÒÎwÌ;ßRnýfô|2è+†Ãþ/§D9ÉE•°òI5®´9ýñ©qsÉÇ1|ÛA,wN‰ù™EW†:_ž’4?úÞ„HþiV)$Ö§^¨wëW=&ÿÞ– ^¸¬lOØ5ßmë߉W wO8‰Y¯Ç8 +]žø‹ +—ðiýg†BþgÛyà…•nZÛ³mŒÔKdÚ…iEÇû!lÞC94õ´‰˜uÍF(y°0Ô•¾ë@V.k i³±å"•Þ^î,ذ2° ¤`^…­ŒÍ_T¿a!·®›PESÀ;-<í6ýÚ%4íþä0 pz°åÅ–çpÿ´$Ãc º3J'¯9‰`«üú¢š’Bê<ÝïU­¯=ô´s õ÷·í±÷÷£«4À÷1JYÐ5¿üÄV-°Ê‰~àËqQÛãE (mÓ†ªÙóPÑ_ öXk6Hæ¦Uùqœ‚ÿ¢Ðÿ™¤rþap¿M3XŸ'èäOÓ4Ú×YVß¿£¬þ-ºöŸ)û¿3ÌžlÃÜàE¤¯ùÞlû“¨¬óÅ‚ªãÕçql[PA,\ÐëvÝ\ʪ޴¤AgOö7Ü ÷V\˜W\\”C“#JBîH/òåÌâí¦ƒ›¼ážöŸõq +ή»2·=ÄŽ“ºdóÆÕ°Ô€ –¼écÇÆE8¼âË>†™œ|ÝÓ•»cŽE¤Ðƪººª'U̪0ùý]¯ýŒºËÑþÎç 2Tfd°óµŸS|n^E¬Z³ è1>«Ú°v&…ûʯLˆK.Î+›žl¹°5ën +`fôr%Íß‚LjŒãë–-¨üˆ¬ëõD_ûãy5ìÝáÙª=?µà²Ì„ê5»íá×,¤æ µeTÍ,w Þ¹z¡ñÓJRi@FÌ3³Awt˜ŽkL×#ôrJŒH›À^yíwÔŽ›XíéNã5%¡ê*µèÅIMWÖï‡ó6©@¤GMÄê%+ ;I*¼q¤ðþ”ÞvkLBIoN}v”VsÇ Çük†BYRÖ>œàŸuÒ2í®¿{ÔÏ«zâí$·ç>Æ7­»>2p=¦QgŒÐŒí ƒºê¦ ÆbŒQ“fôЬ;ªl{ŒZr“[Ɔ¡¯F%]O¢*FýšMÒsØ7cQ‹ËŸ@¥Ä0é¯þެ_ä°ÜsÒÎ7±ç½ˆåµç±x«hðÓJlvÔ‚/_rQ3fzSÔB©Ûcà?‡ØÝ{£¸ö',/¦:–lôÖu©u/@Í1s6bõ¢\»8ôûA-ÆXcÅFjŠéúE©|ÑH(‹(Q™þAøk»õº•ÙpgU‡ÈênqÙ眔ÒcðËé!\þ”‚Z<:È*ô ² +¦Tø¼? ùe’F]° óguЬE#ºlÅJnYu2+^6:öþ¥¡þ¶ç+ê¶W_ƱÀ©ú[½uW#òŽ:\áyEWÎï^zí•%3±Á$€½árÎØ9Uo×܈ŠPËí¸íáô`ç«Y:kBŠÊ\u·üĶ9 4kÕ‚¨û2Mgž9ßñ@ +fUõ÷§cñÕµ¿™7áJJF©‰z¦ÆUßY³"jgÕψ*.ûiÙ¿yéygFºkŸ„E Ï ÈŠ Ú -ú[Жr9V£*?ÄÖÝœº=~ÝŽ,]±£Ê#ú®¬ÝÇì„ÙÌ%(Xøô§š¤»ç·œXÔÿ,0Dÿ™Á¢þ3­‰ÕÜ”°¨ä긨êîȲ¨ôå½ãïœÝÅu[` } ãÑ+æ–”°0缑ôÓ~€ _c“§ äšÑ~x²Ò|˜›WÌø²ØÜÇê)±â²ƒQ{wY­×«1çm¬†G{^2øÐënÑJ^5#òŒØ²;·âö,û$Ò)k?Û/—´‡µ*AÄ8Àœ×ãKÆØ%±ZÚð`YÛôtÝÔ•>k Ö “ko;3žE‡¡ï§úZîÏHËïì¹Ûó·|TĬ…Ö2©%”®ùX¤1z̓«]õ¢Ê°Üie[üªœ¾çƒU¬zà%3&XÚ´ ™£ãÔÊ¡LèÉ Îî–„ƒqáÓ ‹÷i†ÉýtØ{ÏChZ±cKØ¢©bÑJŒ@_Fä„‚e<ûÛÇ­¾<ÙWuwNÙôÌÉ):êoxºá"µè™µwlì†G;£ØÞ±é"·ïûáÿšU µd-ÙÚ?ÂS"‘ËÂJhò‡0•¼=J€~ _&qÀƒ ªqÃ/ÚÃ6Åø3«¿^ÖÃ26°üyëó°ôjÉŠ«Üéã/ zèÁ½zè¹êãÐfŒÌ¶ °h¥¶FM¤†©}o„ü2Á ïX䨕 Xã ·lÆáþÉ5?›4k'Ö-ÛPEˆ®´-'¢dËËÂù{Úñ€ñk66|ÁD©È°™ó:|Ñ´“=&ÃgL¨É«>uJG(óŠ`/£&!1j–Ж,Œ ‘êgTÈô9=*÷pLö ânL¯9bºÔë8<ë³îÂ5ìéÄe/Ô2ª#frõº—ܾ᥀¼ôš‹³±º´lFV®Z%›\ý²S5¡‹ÂJ\vÔN¬ú¸œpÏð¡¯Þ’ßòùÐÛw–Ó¿6ÖÝ=®íEuÜVŸžä–4ßQÁAß÷ÀEh̃ ¨|ÛÖ™¹i…•­Ù0MuO{H&†h©]o]|Pé?ÓÌþÍX›UÔ?tÐòþÐ#RNé™g·bóË€y+¥qÞ̆ÏY¸ÐåX-Y±1 jýœ—€'„¥Wó|ù¸ŠR<6D*è)€í±Økcš<ªÇ¯Z(ͱÓº9ÚÍ:˜]sNnÒÒKðÉÅmµŒTŠÚgõÌæ@OWÒ¢™¿iÃ7­;©c*b¡YyŽÙ”õK°S¼dÄ•„¥ wÜÝ™M•ß^µãkç\Ì¢§‡±6Êc­úiÐe°â¦ÃV<ô®%;©~Í(X6—ìÜ•RǨ“OíÊ=Ì?¶i¦¶n9؈5µuÓOê\õóNJkÔN¬{¹œíqn÷f†ŠÕâ¡çŽ—Ø¶ç'ƒ÷GiÈm¼`ÁN Bæµ”úy³ÝÇÜòw7Ü ‰ëÅXûQDÙ¿dçlx‰-¡Î´À@{êÞ¹îÄ5„›Ÿ†¤ù7?ŒÕ¿þjÍÚ â`ÁÀœC‘Ñ&ÕĪOÓBãç™nŇ0¿åly;Ò·½°²ý¶iÛ‡«Ÿ¶?\2Âó>qí{~då–S½ÿgbµ«VtÅä8aÝEêØ™äõ/zY”%'±à >„x’bù{ˉ<ô*)\rç-ìÎõAÿ˜¢3ßÓ_Ÿ¸âÆ·¯øHu®}ÙŽ®[s+NÖÅë|6"€¦mzz¸Qµ>¢!ÍÉÕ#¡zÖLÍÚùô9W/oÚÈlqð ï&ÍŠÁ°i˜?oc´Çæ«zÉŒ­Zw’€»&åÃD÷À^˜ÅÛ:<ãáëv'Ù‚5?©}+HǯŽQà3.Jû‚Ÿ +ßÒI+^ÄD©¹8.‡¯x9øE+®b#Æ +\â[³h%·oùƒëã"õZ€ÇŸwQÚ¶ƒ|éÞ§w+ˆ­xqMaìû ›6uØsÕnþ'Ò£ùÙ¿Ìô(?NqeûA6ï°È(—V°j&Õ¬Ú¨‘ Þô +Ä_¦º%3,wN J“Ç%ñ³*È»sÍÅ¥ìŽõômJ=»¸{É®Ù9ˆi£ÞÖÝõÀß y>)G¥.Yi‹V!}ÕÑ/Ùa6G@9k.BÝa¿4—¤=ÑA.¿ö5Àånú…ƒ«>‰jÙÛ§ ›D˜€®8:HË™ÒpšüBJfDJ.ßrq0ÓzR¹ž×yÇÑ }9¡"VÏ[¹?"!4ŒNhbãc÷| +±8~&~ÍÇ@NëÑSZdÚRLįûzØ«Þú²›GZuÓ!› +jo‚J_Áµ*Цnà ˜0¥ãƒ”œ#¥f/@†løøE7£km„ +ù'ÊUL±ù#Tðöhh{´Ïôåð<ñ(¼zÕÚž6¯kMˆ¨ÚžNÇ´Õ¢‘KÕ„êÓ³òOÄ8af¸3aAN + žz… ·bãù¶‡Ð²ËÏQ©nFM¨_2#ÚÏž™"Â>L09‹&"jãÄâ\@_ñöÉæ]’þ>ïäâ–LÂABˆÅAí¬¶óý¼ ‘½æ ¶¼Tت]Õv$Ä´_꦳å휺øú¼¾íõ¦#Æ‘1­µË׫#\úú˜XµâaWc5,¦ËŠ'åØÌ9=¾b'Àé>‰ Ë#Ýâ~\ÅMn{úQ°1ÚÍ[ãP—Æè¨I¡tÑÅ€,ÆlÍÇal‡à ¶˜®2PkVb¯°)s6rÂÒƒ{ÀVɸ“µzL/c‡|ðrlG È‚E²xÛOn8Œu?³1Ê"íGz][ÓLÎÆ8§{sºG¹5Ë7îÌò”»“ öªŸ™³jÂZ\QXËé°ð™,@Þ阶«Ý±Ùã4lÔFlÚ!#VFèȨ›Ø¸jo’-üºÐc=ô Xó‘@Ë.t;$qÍ©ÓZluì~¨ë£lænˆÕ½?Ñ3¼5Þ#÷R»f혒E/¡euŒw`Ë–¬o>ž?IìÃ}žƒP¯>jet„ÄÜ)-·Õ5Ä)åªNˆù{#Ú¶†\µ’[÷ì¯ÅøfÃ/]÷‰„­šÌ<[þØŽ…ˆ<˜†w‚Ó’‡C˜4˃rZ¡_BÏ +¨¸õL@Ùo=Í97uòn@п=Ê"ìÄêþáwÂófzó”Š×”w×zú ™>aóƒ¨ ’³hÅ×,š©-+N6fRÅiš0ô‚:!(¬#.Z»Q³„1ëÒ#fǨ’2£&·Î%¬Q/wÉawþ‚ºµa’P— ƒÜ¨µ—:m€,Xë_ïc{#ØA,¿oÜkZgT‹/š×‘ª6Ýä¶]?¡eË‹k^rPa-±hÖBo_´ñI“r\vßtmÓFjYsÓáë>jÝK-9)m“Z\ÁxŒÍ·<<Þ¡?þAˆAÞ!‹nt劗 +]÷ò{¢¦n¬CÄÈ4÷ñóG4Bà¼S,Xó+6(,'úºëï¬XQU[~:.ªÇÖ:Ø×BÏÂÝÒí‰îþ“¸ìfÁ—ìÔ–%¶lÎÔ•ºzè9ät»ÀÉN 8qÖÚËS“ÇõœæÈáZ]{ÒÂíŠXú¸s–¡>[=VWõפžƒÙ˜¨6b97"´îFzÔëA9¶f«¦Œ”º1yo’Ù¡æ\Æ„mPuéV|†)ó Ø"í«Wöôe)¹’T÷@o…y41H­\÷J†·ƒ½êhg’Ó»4Bo„¨¨íIfgJâÛöz·&)¤¨¥+wÎ /]aà&¬ôï9Ó3HL «ÐÙë±^¡Ã<4𔉠ßçIö¦Åέ)¡y%À—-p8+¦bÞE….„}[±¸Þú?6 ãV}èš­QxÅnˆ„Üh6Ãë”S8g&´m‡„ší0·w'D'E­¤†q-*sÖƒoÙž&á>ÌÓD« +vm”Cß™î–íŽs{v&°»a2jÅ'”ïeë³@•ݲ\õ8$ϪdäQ)3ÇÖMzêëå¤OKZ§ÕZž_£å9ºËLäK·+óøȰÈVül|@G.v)˜…N¥ nÐe\IЏ yÍN%–,ë{»w¼‚žM2gf7‡å¢z»`°ÀÈÈÖ±óyÊ-deÙwjbÛ³MOŸlÃ3 Zõ Æu°K66÷ Õ9‡¥mA½ªÛ(nÕöH‹fø¨Æ«ñ«mé¦`éêdtE.¶ wW ¹Ó[Cy¦AeXxšzooCTÃ| 3èÿžfò{…l‡ù2¿\XïÉkܽŠ&__Oñ¬…Z;m@d,Xqµë^c%×A ËÚCyc¥bï(e.0}JIjŸ3u#f­lÄ’›Kßóß"BK,Æ`nhù‡)Vïá-úD=£Jj¥‘‡x(â®x¤âæ[/}ÝÏ.;hí¥È/ÁfÍ*É•K1ÖuðÀCR\NxQQcË7ý\Æ’›ƒ³±€Ó~רŠ×4m¤Õ/¸ØÐ¹%¦õó#&J•_#l³(4_Vjïï­òÊúÛmÍ6™Žj0ÒL}6j/nð½ ‹õÀ?Ô×5g‘–¼,ļŸC˜1삇ܺ ÀÖcZbÙOíZðÅXÍÃAŒCn­]6b0 9dƒ-|Y—­H¤à¥÷Q’³¨vî¥ú¬ºßÑu°—*AOÓŒ \rq‹#4XÄMhܙ∽¯ö§†Í0º2ÊÄ.E½a€è5ö!Í2qm¸¿Á)ëk™´öQ'lR¾G6ò).©Šã’‰Q6ãj‚jDÖŠ›‹ßë7l„†ÆvgzíÛ|ùÞ$Wüi–Ý÷!J¦ÿg•!ý÷Gùy–;¼;Å`¬‡˜”9_¯pÒ:ÐmR²&Í=¸°µ‡4¢!—͸yôIcÁ¬ž6b*–ÝÑV°ß¶>Ö#˜ö°an1Ãg6ËMÒ1¦\03}Å|’áµ!½?ŒU¥©(¦â~Šþ*¹Þ^C¸Blb=ãUybrMÄ/æ”F=°µÀoÎ;¤·òÌji§BnËäL‰xÈ&ižÉHºT+ÏÚbçkZ<‚¾r¯T Òõ˜ª‡¨ŽlÎö¦¦y±.rTÃú³«šþ³‚$Ì\óª·Æz‡#V>É'g”8díÚc—LêA ø<º)“…Ó=ï¦8³Å¼‰Ý‘G@«ŸÕ—âÏ6”âÿzŸ=qï~é‘'—Òæ¿hü™LP1=õn±´lÅ”íŽÁ*·¨º™Ú  P )b¢:¡6ôJ'Õ5ézû +ür1(b‘KÆÍ±eh¨UÁ¾‘cùy°;íéÉ?*`àÔ™š¹l—ôlŒõʦø1A"Îëš_­ÙºŠöÆ{dŸ~Ò­ÖÒõq©’ËMV±úó} +«`Ü$çNYyUoË0«;‰ÔÜü› ‹{E ÂßF/FÓG^2‹iS +ZiTKª—‚“¦•ìv¯FËqk¥P·fjèÉ5ô2MÒÁ²á^S¥Xl¡ å÷Ðêm6N’)à‹±hÙ«úRÌÕÒ\èÕœôÎÓù°sÅÀ{\ç•©·¿Ào–³§œ½ìÅ·-xp3D^ÈÄ{2¢qØŒqì5,’¾CÒq–DÚuÐ¥¿X]Ç?U”Oý¾ ˆüý›Éq·®¾=^YŠþØI¹ÙOá¼sÈÅ€ «„<ëä“WÜ,JÔŒ©¶’jý9W¯7’UU¡*_Òk©å1ô)4Œì -Ê@‰o›J;ïvVÔ¢îç/VTC·×ÿ=Ì¥%(Ù=5Zþ0ΫU÷­…ĪÕ—ìN°»?Ïq‡÷§¬±es²Ï¾èSÎøÄ¼€K)Ö+Ô(¹X^5À½Õö+[´Ã:¤Œ'ÎTñø©Öáî<ë5gÂÒMØKûù¼·‡ë0{åJ½W6Gçæxÿ³ÖÅ9P~Ô:ðGqòDÚ;àEyÌSÅUòn¿Ç]¸Vxô勆“y°Ÿpæ ½H˜Ò‰“6…ÂmrTÚQ‰@6 +¡¢%$Þ~)ž¹‘ ÃîÂ; —1 Ãul—ñ*¢cø\K“ôru¥è¯šŠßŠ+$'o=©‰»z­0.-•ð=d¿$æ·„ÌFÙŠW,™4r:ÆõÝ`ŸAÎVjÜljÿLŒ>›!̱ˆÌð)£E½àr–m4Ä–_¬Yö«Bv‹U7 ÅÒ`—¨/Ô!î_ÁIú0=g—bJdì œçI}õDm!âÇúÔÙÜô®“n§üR˜\v½Ÿ ËÀRn(05ç°ä§† YvƒuH>ìÄ ú!lI¨IyÚÐ:|©  º#NÄ7¶jO?yÚpôáÃÊãÅ•¼Ÿ «NÞ{Ô÷×ù̸s—òã^¦œ¿Ó÷ìòn884Šó[Ô}s#½ýÓN&Äg²Ô*hpCâÎä`Ž+I©ø5Oy‡ø¡¼ZñSN‰ôû×ï‰GnÞoŒ{‘„9’N?rþfSÜõ'¨¸’Û€óEZñ@!—ëEüì1%¥  $d»”R¨¤?cg«ðÜPj'Ê~½¬–¶¾]{¾¹Ýz&5óÝý{åGÎMŒ»}³ îq<(î÷K•qÇ_»~=ëHC«êÜû,êO7ïÕÿœƒþ[&ª_ˆö'»×G˜¤ ·Í«7öYô©V3Ú?( ÓŲ5™3• E›oÂàÚ[¼÷)åzÐÐÐw!ñeýO¹¹Ø_3Ó[þÌM+¾.ï¦×.Ùy¨9 bÒÉq¢Ak#E0]„bÍ&µâB· +š?§äá¦å¾{ñ®3îò£ò¸þ|wûVqÜ«bÜ­çÀ¸s× â²2 Ç)XÅC…H[ãS÷vx†Xv•#W8°œ¾@Ž·œÓE]zÖAݪƒzϤ—ô|÷â-(î]:îhv>ç»×iĸËOã~]ë첸Ï!qwãQGî¾€~_[Ï== 4—ºä2ð¬U̘³KÅAk?Û¤Ö È†+ðâ`n jâb9pä×âVÇÏ)%’c÷“q\©‰»v§1.1•räÁk\Üß÷;â®=éŠKÈä‰Oç½÷š|üE +í8«R®${ÆÕÛqr¨>K?C>¦Pt/ÈLß[zìf^ÕðÉøʱ”ÑY…Âc·ï×Å=|8ú>“ò}r>÷ȯ—òâ~øùEÜß7ªân'Àãþ¼T}äÅÔ¯¤á½ah´7bÕ»fmḕOÖ©‡A ž'›"Yn JwZ:¨‹Ošá£—Ú c—Û¬—IŽ¿McÏÌ‹?ræBFܽ' q7Öǹ˜}äÅ+àQr躔@¸íê†Ä¯8(@}?¯°O¬-c ƒ%îâ»Ø5ŸfÖÈÏÜKDŸ¸÷~$%‡{4=—ûÝóDØw]/9òøôÈûØcñÉ„¸ ·jâî'£dÔÛŽç7{~é"…_õ‰­ÕnM×â˜Dµ:Ý7bu”¡Q¸RÖŘŽaü7šÛ§Kª{O=~Ù~ìÂê#W´ÄÝxÒwãQKÜ£·ècR©Ç^Hå7YOƒðãYüpéPŸèÐè˜ãZNý¬•Òà—cRå\ò#6Yñ”ÞÌ#æ @”¥ÇEµª_ÞeÑÇbîhb +ãÈÓLÜÍ{­q×ï6Ær2îI7îj<úè_·Ú¿»ùy4µXñCn‹ïïòùm WQ<çb’ç-°¬¨™XîUû¹ÊìþX5S0U'=iCL^k€†.Vµ;Ë*}wç)8îaúèÓ·¸#¿ý•÷Ëo¤ä±N¼M…Ÿª.F\õ³F+h’ÊL`ápÊì¬Âóf3»(ãOêÀÚs©…¬³pÇãÓÑߟ¾Utää¯Oã®=jŽ­7òÑ‚ +Ö/hPß™ÈðèdØ9;·+¤&䎩ðy5­H£Tvƒ@J7IÖÜÁõê@Î˯rÙ±Z8zóaA\A)çD^µìǤÁñGI˜“I”?ššå×°(é}•ñr\IÎŒ°9KRCÔÆ†Nš™mf=S&æöÊí´Þñ2$Éö A°?aÝw +›T§Ÿ¥â¼ÿ²íû·é˜c©ùŒcYeôßK[%+ºÚæk$‚÷M/Ó]d”èAK.1jïÌ ¨;“=z>x@(­é•˜©§•Êó¤µBÔ—ÞõüüÑÓ+U*#œ;0RKšn„lT´"ë:ì§kÚŒ¿æ”óOž¹ZwþZeÜíÇÀ¸K·êãþú» .þ5äHvïXi¹à'NýÒ=(ªœ5RjÄF£ùÂ"Ê-íT†îU)ÊVK@ôHR-Ôx¯¬Ir¡±c访’YÛwîvèd|2øHz1ûxj…ðtV}ÏÍœö…ëÌöÀG½À9­ucœIٞ굊°j­‹+R†‰4I šH7¼Âd÷ 4åã.ŒüVeëð­¼ÚžkÙÔëù•´«`ŠýU;ÕñBµ$°xª$½FZïÒ€Fô’®9—1m Ïš1Åa:gTK)S¹™Ò>yEß©ŽÎS' ©Š»`ŠõYaÓà¥Ä\þŸ7_~¸p·éÈÓwÈã)å¢ßSªÿ(GŒ\®&ŒÝ)…©ïtR­%ýê1²Ï¦"Lé±ùÓêæ—ËvdÝú(‡¶ŠHz½‰/Vù‰éhž7öL{Õ„»Z qþUP';yãQÛ‘ŸþÈŒûûfC,7·MÈþÝŽÄ º¥ï}r~ã– ŽÚºQƒNlÑ›*µ9(5Ö Å®J¶À‘Ka[‘Xí]0B}¯ $¿’QÆøåm:òLn ûJcûÀE—ã8 AY¾à‘Åô7|l°ã¹ƒ_}= ÄXuF!å1Ôkhõ,7YÒIðÆW·I.gç¶êõœ‡¡•×@PÅeZ—Èfª‹åbC“u¸¿&j'Öì`›÷GQµNxἕ½`Dçú¤È»ŒSn4¨)­ +:,•—Kût•â^kƒ©O@âï‚á‚›PDÿ$Fú‚Õ¤ú$oEýCéJ‰¶Ñ£Ðc£–A¦—‡;RPËnhñ¬ +Ùû¼fÝͬájõÃ]½½=É ZßC8Þz¿YÞ{úm&íXfiÏ/R`Ç2ß§”°¾/ï>‘ZÝókA›âvŒ÷Iå6ÚzÆTìöM ´äDV/90 [A:aÂ-Ä*¹Ùb±8«G1¢Š£ÕHš?¡‹äyÀºî¾Ê£þö×Õü#¯•Ä=Oì:ò&öSy ûo0Hv‹Eп¶I†j&Õø¼Iðå’W5Pêç¢Kì5ýJu™F3Xë0Ãvb/DC#“ÿµHçžepÇõÄb‡aˆh4ë»f I;Ü_¡÷fËû„™ƒý9Òac£TahÖ6H$Æò~¥;h²â5úö|ÊH.Ÿsp óNbÑÁìòö‚Ÿ/ÚÍk#lÊÊ—1íæ“½†ž6Ý>u€Ùü·„ ¿-R—zŒ©ùÍ6²µ¤ªK˜Ä $cºí)˜në;Z¯ñ=K¬IÉuÕ6Ó2ìëß%t¬8ë^dÛÞD·boZìYëÓ¸­²^µv6$W6 +ûõ¥ü¡ .ôàx¾t`,¯× .¤–’o62Ÿ‚‰ìÄ^µ1*;$,·Þ\[´¡ËJlyXÇE°Qmw“G!ªóªÅm.Eo½ª‡÷ZÎ—ç Œ|c­ªÏÐné×´új¦”âöe-´ãpöÝ‚-/¹=¢ÂäÏ«qõ{^}ÓG…L™È•>«Â"&e…¸»ÁÀW(5탒þµˆ›æPr+<º^W+OÛÙ‹¾Â’‡‡]óqp{A6ãc˜ÅÜõÂÊ'¥•7ÃâšË&LÁ´›5c`4†-=ð ¹dÊÎCOØ„D¿žU­t\Wp;.kÛ¶áîb§¶¿cÌ@) jÑiQ‹±é–Ùö|lò?¬dÛÙ–¸dê|;£ïz±Pšüƒæyï ~ẪŒjie¥Ø.ë®Tõ –I»•Y<šú­¸E [ãÑ8å] ŽL—¼eõ¨ò½ƒÃRIÁ„Uѳé—ÛÖ\\Æ¢ Wûq´»çKH¨9ì °éæ¤Õ÷\âÚŽþ®x»b®: ¢ØZåz;z†FÁxÆ`|k3ü׿à¯X8á2¯›ýL9$k°+Ô¸~8¯£”o{0uÛnlçQ*lv¨ñ›™~Ñ'È:ë—7>õ|lãc|cæé€‰ŠŸõOØX¯†˜c‘b“bì+›Œ’6bæ¶DÃòj˜Üa >E9Ò/³TÊÇ ¢úsÕú1ŒéÜö£j#tÑ´_$µK¹ÓŽ^úÎ8¿9ÒÃ[óq‰ë~lÍOj]pâªæøÊˆ™qK¥o7i5@Ǭú(¸9 ¾lÅMh\vÂËt€ÄYEëãý<ôÛ¬À¼uø[»ß4g'Õ‡Õ÷QSkÒ¢ W?áà#c5 ’^y\Š>‡ŽVäV ßzô¬ò1—3ífgô¶Í0—÷i–§Üò£ëÖ܈‚ƒ)*åó|ïØ‡Y±w’ÝuQA.9£Ò%'—ŒÇêá˜e€â4ˆ€FUoƒÎ¨gk­d¥Â„Ñ«»ž[=bÃæ­N²y{!;ªn~à埈+ßͪ›žZ)ezài Z.|É@¬U‚ߌ +®‡zëo/êiµQ<ª$W*‰€G[V‰àc@8ü%HÁ®[ ÷Ô VÍà” 2oVÏ×â‹oDú[sþÀ<àœ'¢pÛ‰(>ÅÖ|¸Æ9µyÅÇ?ìû¨Û S1±Ø¯X¶v¾ÛpB²öF0µ{>\ýþ(¡5jBå­:¨í_Æ)ˆo!"äË8©kÓ‰¬˜QB’'‡ ¯¦TÈ”ÑØëˆ[6g@Îéáé›.lÝ¡‡ôª ü~A×™2ûˆ¼óùŒ òzZM,žU²÷\ð²ƒÃ34^|Ó‡QLã¶ qØ×´j„ ]uRÚô”š)*wRެ˜Õ@SÆ¥mÏÆ¥à×a:uÂ̇ÔÂŽ19³hZKÈ_sÈ–Þº X0Ô¿™.¼¾cí*>a‘?Ot| óåŸ}¦|ÀÜMÓë¾?ÊbìèÌ5'¬aÞ®švpa»„êÕrìBè‹9#­eÝFï\³¢­E;DÍžY½ï#cד}3c±Nlš×ASÆDÅ·W -Y_Bðú½Q"xÓIhŸjyê¯þa’ÄÜ ‘`ËæX½Ñ@³æä€ä=¼æ°Çþ¦qÅ|»l¿ÿ"¿Eˆ„-70kTXxuîÐÃ@×úf×-ýÏ ±3EÆN˜ñ¥!5±ôË,gxÍ J›í¯¿;ɯ¹áe–^ô7>Øs J?Ž’»̘;»ìï9¨lÃMhžUµ<šª¼ê+¹‘–ÝøŸ0ºýÿÍPÙÿ™¢ñÆP€“Ò×9‘çÓK¸¤kz3%,¼–\*ëž|œ@¿Ì³‡·ÇIOÓÄÿ®²•ߦéü kg弪"!"/¸U×<ýD5ü3íø÷ …± Ñ£|Õª‡Ø±?É×ìGDÎýîÐÖ8²âÂ5Mé¡©zLÙʘpxÁ/͹à'­}ÉFiÙ%Â>㑟F±]ÜðêÏ£ÈÚ¯K|çüPíÍ-=2'–û‹ô+LÑí#®d] ËØ6# ”ˆ´yUWÒ´ðÂJ*º°gf€·íT芙?#îxµc‚~ô *>xaÅ+šÆ—nnÎy^íãcnrÉÓÿŽÓ©ßðê5mù…áüó†Ú‡Ûö®Ì]©ußÇ@¯ZpKÐÿíÚu£«÷½Ð‚UCíóyEÕÕØÍkÁoôðÌOcøö>Lã® _·afÎ+ZŸOõ·Ý_TÞlÙQe“C­/Æ„5WôÐŒi sÝM_Sâ§EÍö–]ˆôÕÞš=gA‹Èrв^Ô´¤n;IÀÙ!Döº–5?Üö|]×™t`‡dîÙ QYë#'³ðO94ýÔ–]þmœIû0B­[@>tÍŽQ°m†¦ï¹±µY{–ZpóÐGdv°9cCÛœôÁHÛs4¼_3%|‡5ìûP>BÛ/“´ãfÑ6\TpTI_5T½Øv·d‘[c4dÔ~·¬fì¹QõËÚ¶7aAåõq~ñõKËÛ]àÍ7¢4ö¿ÖU$kÆÈÛöZŒ¼ƒLë—0¸eG”nÁ©ûŽÎôÿ†Q€ÿÎ’i±1.Ût²0ûoÇGíº5«æöäu+8}ÕÒ™¾ã†æoÚÁ™«fà»yuËÓ/!ì`Qsàí:[r>ö‚¶v¦î8àÿL09_§éܨ®ãÕ’¾+kÏCÃÇâ¼eèJß1ÓwÌÀŒE[ü’”¼aEU츰Õû.HîBXÀ·QlýGgWά¤ðö²¬âé\éíyYé­ÿ] 1¾Máñ«pVTÙ™·ïA·í€K¿„;Ë?kÖí…Ûhñ¡çÊ·)eË +ÍŸªz––%ïº!Í_BÊ×qdû¦©éý†©!~J|·æ¡@>M±Eÿ‰òT§ìí¸=J‚íx`UŸ‚˜¶]¦iÇ‹¯:° ;S,îÞ4G´d?ôÂnyº ox¸¢h|¼vè£ãèÌüï2…»mlMØ0t&‡Zñ¯OYðå,”¦¶hφ) ¶=˜j¼³ hº¿¬¾XÒ rÆEm&%O÷ÍtÐ?^&ò[,oÙZÞŽpÒÿ¥§þ<ÎÉ¿°¡éÊÛ±“kF`â²²æþ²¢êÞ¾ üÑuØw²5)2TŸ09P§Ö'}¸æ~<`Y×Ê=·(/¾¶al|¹c‡åî{å»PæšðrÇFŒ1©cUNŽÊÚÅxñêHwÁÕqQùåiiý­Ð@ÃÝ>`Òï+ +Pò–ü.ÄÎÿË‚L>¥ézû“žüs]xÁÏÊý}Nךì7¼¦Ÿù`'6í˜Ñ¥ëÚŽä%yùý0?ûºžvfŒõÛ„ âê¶S±¨î,XˆÝóº©=yÇÖ•¹ªj{±®<_V·'iɹç€ §¢Ã-Ùÿ°ÙŸ=˜†é¾Ò»î”sS}Içö] ñŸýüxÕž^~èá°å¦umÚiHˆÂ¸Ž½Qlóÿyô:¡Yý°ò9yãÙƻ«j|ãŽW÷ÑÎÙ65Ư(Ꞔ…Å—£ƒõbñR¶ÀLô’óyëËO£¸ÖovÏËÛ±¶¿ß±4$­ª+^¬Àï7‡{iÐi8y^ÕþbÅÔ™ºçÇ5ïzµ‹ªÚW‘ÁÊëSý•W&ª¯}ÄA–ͯWþ?GoùÖfÚ®}¿ïó¬[柶ÓÎLeêF…¶PŠ»»&bÄÝ…àJKi×!î„$ĨÍÌZk{ÿ÷Ì|`ë‡Bä:cß÷ß%ç1 7OU=õ©h%%½ü£ž ÿsÇò©É¾òë–\î‘¡©Å!e•NLCˆG–1Ø«Ððk¼ +VõÎûʯœ” ŽYÁþPM‚KBÈØê)~`­ŠÛë«x`¯Ž ¨HÐýahäZOù5¿FÄ÷¨ù8¯–TàT¡“ÌÓ°ÈíX¸}Ž”éÑÒKÝjFÅî0üa`™†¾Ç>Y­:U\ìÞ(:zåMñuÛ "Ö¥­­ó/×ׯr‰ÁZup­¹Ã½òZz¼þRüßÛ¢æc¡È8‹Øª¼o™ÆÅãxô=1ÐŒiBª[N«òÊ‚Qš¼= ‰³NÃé_œÓ½,¿°Õ‡ydàšFÉÉ[=¨0Ç$¯ä`Œ–dÇu~÷`÷tù-â–²¹âìÖ;ÂS¿LD0à¢]RJ–[NÍ?œ fŸ(ù'*xL@‰MÙ› Æ®¿CÜ (¸pï<£ä`ôi?ôºº)ùÇQÊÃÈ„ñßøB÷ǫ؊>øãNîOþ9&䣞^q²@)ö(kÆ*Ìýyµ-ÿô^?!j¥™¼üuóp„¿7€Þ©I:ÃÆ c¯uA./wV>°Œ°²ÖÞ`Ÿt#žýs•ò\PøÛÒ‹ÂËÆþŠÛÎYBºYBLši)¾ÖGHþ1šó>BL\x‘v¡=ù{emò÷º†œ_úaýóÄ´5#&˜IÿѶ\ .²P+½·†iÉ_Os3¿›e|ׇ{úŸÝwÐ{ %ß <õ`o!åY&™XÛ4¹`‚ù˜sÿGMCÄ]9¿º”ä,›”]¶ÑKÎÞë­Iús¥–\âí +LÒøí`ÞÝ­wÅ—;+.˜'êj¶ûˆ‰oK.îõ—ün‚ÞÒ4¦?ÃŽûdåÛÛ}åÕ­Y?í ¢#Ýó\èî ðƒÔ£~xØöûò›–‘²û'::`"VåêâÉ8?ûÓ4½À§ããœJVÅö "Üð"ý‚yf­¼ëžCǘeGî…·e1 |’_MʵVâQâ3ö ®mwgŸ·Œ•†u„bu'$¢¡2â‚GAC}Y¯­ý²Ê£:%ødó(ðÀÙW†±aÿ4O×ÄÔB#Nå<8÷ï¹æÂG®ñ˜Õæ‘ê'*NÒ™iRä·*aÒ·;ï à5ÙÈ…Wëkï!'+lÊç­Ú&—”šïWP mÀK_eü²Õ_x5¸F':uLÂÞ8)Å.‘\ªæŽÀBmý_k|æGoÄì÷å]_jO;óçNó;ÏBó›Ã9ƧaVù)P—š u+IE'K4HPC.Üé+ [í*þݧåSB{¦û4¡ÌÂ(pÍS27º .º”\»Œ–k“S¬bÄcÓhe˜¦-ùÔ #þ?ÆZöò[løb{å%ÍóŠß”Mç–:á×·ûH‘»”˜½~r¬º¡ðôz7üŽiŒmÀGo÷—][ìHûi¡-ý§È §„x$aӜ⾚û61#Ã6ML8œ@<°N”ßvI`±{ƒ°ùúÌçj‹³K9wðû;ýÈÆaä#ÛtMÔÁìîNwõ­í~bì ;ïL6áëÍnt¤}šSdÓ3·Дõ¹§$Ô˜¯÷z WV{‰áÜÒóèä›ÿ¯„]~Ý?Ë«°‹‘O Yg ñßÏò¾W7—]>œâWéùÖ)z–mš–åœ@ì£Ìô ”Sj®y:+ˆÿvŒñOmKÎ°îÆ LŒª%óÇÃql4Ðë,óHÕMcÚÙõ®ü»#ÐÇ=åWV^CU/;-/;HÚLäÚDTPAÌñΣããûK]e×{ ?¼ÁÄýôÑÐ +„æXÍ"ŸÍ6=9;J ûaÿ}ú9çLèyUJ3ÿÚÍ5ç=ðëX0Ë4&fœ™ô--íúWô”ëÿÁÆþÛØžB+ÜBÄÀ’.~µÒ ‹þ²»_Ï=)º¹Ú™|VVûìÛòƒkž§ýlÓsÄÂâ_TmÕaAU³Ð/gW:݈íî´³ãŒ_I…é?L ÒOí cR|†®½àª_èòë@þE<Ùúo©xjŸ†Æ/¼Ì<7ÁI>ëVR‹·FªŸ­¼ÎýÍ4Rýà`a®‰tÌcÓö§p)½ÄôŠÿèål»_²ñ¾ôÆÆ;ȰÎ61*Æ>[ô›P`™AÇ(3Ï,¿É{ðׇs¼Â@¾Ú§Ðð¢äwuSîù£e.ÙüLý¦âÑŒ ëÇÀ‚€ýi½¶Ñ.Å ç]2 AŸì@;gàI9*ñÏ-SÖ IæA·øþaç•Ò¿ÔÔn—R w‹.Ékã¾ë¬ºõ¢9ó¦ßÀ&ˆ*¾Yì‚DûU¯~òu;äÞ?$¼ÌWz‘÷'ê +/M /n `"_–_‘Õfœ^z™wAÝZt~”™òÍ[DÌ?5M¸ðIQÑQnü©íw•á‡ØÛ8)Ý>Å*4O2­Ó°ØÝ²« ËÅlãÆy—¶{Щ^ÀÒÛ}•÷vÞ•Ý6W†YGªïËkS¾'G~ê·­w{¯K.â~îG>ù~±1åg§y¢f”ùìÊ^Ü3m#ä‚c¬ƒ³ÑEJ±MÔ$X'«:ò/-u^ÛëC€gæžë­³Ô¼½\Än-Ñ2€‰pŒ—]7ö_Ûì)¹²üºâŽEÌA[fD5š—ÕW6Þ…r&£`¥õ@Å/øÁÐ +½¢o/½©QxIû²ø†M¬²ÏP 6{ ×Öß–ßÙ|[¹ÑUykýuÁyÓ`hÿ´âGú¶ü_7ºaá^E-YÞTzqNqèøCÐãŒÃØè½š§VÀK=;]ØØŸŒcÄLË4-{˜‘yª¡ðÞÿé©~úÏizÒ·j «=°§»“ŒÂç˜øs¼¢ëÿ7¨eÁœsô⥷ÐðY~Ò/2aÚO +aî)¥0ã”GN,âW<ú¡›š|óPƪ4M±ò”µÙgÄ ñ¹1ß©›“¾• #¿²L”Ç}Ùä,RŠ[Á©Þ讼»ÑUrw««üñ}e +Ðü§†ùW×ÞæžûkŸËv«É+ÝåW¬3èÄàB[GPÿ¼åˆ¨Î§#äˆ4Š‘O¶ÆOÜ:>ýx­}È£bBÌbl¬]‚ŒwÍa2ìRL2`DxLñÉ׺ΊG^À®9Vq¨n½*f¹cž”ú÷¬ÃIlÂFOÙÍó¼!=Ü32û„åçÍÈLJ3ª­Â3ýë¢sCô¸¯È1ÿR4äŸ^ƒ~¸=ÌL™ =‡ÅÏ>åS×Qì ¶wßã#ô™—d Ï~2´çœZê(úyåäÊÎ.VÝ^~s³¯&j»qwµ£ðìZ[ÉùƒwÈ{ÖIB‚îuÁ¥IFôWk/aíS¼uKá©…—e¿Oðò~m­Žýa{nå5ìÑÖ)~PûË8'ï·½Qrš¦z·õ.Ô“ÿ&Çþk’ÿ/MCÁÙ¥n~f*ùûçȨlÓL¸d ë°ú‰áeÁÅÕ×y¿Ë®Ú%˜8Ýäíú¢ˆhŸCcœ€9_]ß}òOOÑEM}êé7°‡àµ£~\íƒÜîÄE};NIþÙÜGNÜ訸jî/¹æ˜€„ow§?XêH¸ªjLúÙšiÕO.”„7ÂH¸è•ÑàÎ9J‘kïœBÇŽažµÊÖv\’·ýú›uq˜š~ÉrÈöÏ€OEåô× ½t£5ÍNýöpŠ’}0É‚è;ªïê[Ê..½€\W5æŸ_}]rÃòSJÊ_h-¾ŽõeŒ1 V:J.Ú²N-µ¥ý ¬úz±-ãô.`›ýIbrS峷Þþ´7T“äSÓ‹Î'/¼(º%oH»¼òpJò‰C*¨9˜¤çŒ²³~죦ÿ¢}‹ÜìÆDì¢Ã—ßÂÂe-÷:ÐÑßvb~ój¸ˆíaôS1/óÔ1öûŽâ›–Aø#Ëü‘iÙ‚ˆù~ª±<Ѫ’vF( ª†’ І‚;úβèÍ÷áÖñŠˆ ¤Ê/ëâî81Î>ÏM<Ó ÿç4!ú_ËÍ9¿é›r.Zs·‰Ëþ±ÍÄn!&E9çöŘ ³´‘šÉâ_`TºÔØD³¸úÁ¡ã] B>n5´»Ô,ôÁ*Æ­¤•ý±)ä/Ѫg«"%ÈÁ웛xT xP_KuHi9À# <¡Y,jzèO-"yeœr­Ó÷†Pákݕ׷úkÂL#ä$Ûœ¹3ÉLß›ÀÇ®¾…ß]ì€\ÙÁEÙ×›¦±+]e—ŒïááG†ÖÎ[ïöáž(›3V6'ý¼ß ·‹iÙA…¿7MÉ‘¶äŸÛèǧìO²räu…?N1’¾™b&ÿ0D‰üfœñ9?õÇý^lœCÂ/›æž íSd•p+¶Þ“£Í€=w>Õ¿†ÝXxUõ»q˜’hFgè%G©^Ðæ›Ð ð»[½È{æQbüæ7Có +uw¥ó̯l™gˆ‰æ1\Œ}’³ +‘{ï1á[½WÖ{Н®¼Üßyr8ÍG¯ô3žƒuéE>þjëMÅ•Õ×å74Ï!·7ßcc6GI)}¬ igr¶®%íC{Ò÷]¹¿,µÄ6öåÞ²M ÒEÝ[ó¤™ðýœ¨ìÑ'CËkç¯ëLh¸X{fô'ȵÕ~%¥p§7ç÷…ƨ_Ö_¦_Ý~}²órÏ1ƒMí½ÛÏLùAR_òØ£à"jj‰SJHÖu䜦F|7ÅKÿUÞRtYÕ»/m©º M¼úÍ(/ùzP‰ËÚx]xy¹õïÚþMßœwnõmù »ŒZ2P[p%÷Þéÿ‡›}÷kë4áUs1¦QhøFOÎåÅÙ§—;Ë/mö£nŒàŸuRN¿@„kSÝv‘w–˜r8 Ýê/}b™¨ŒôÈkâ³ð*ëºyú̧Åe.õÃ#É·ÿ#€DÜ8ÙlîLÓúA)ô(‘q«ýÅWßÝÚ9r†Uêò¾e‚‘áœçVØ<Øö !Â:CLµŽÃ#|R\¢UŒŽYy›siý]Á•õnè5ç<»Ì4EÏÙèAß3âŸúüJI÷Ì‘3l@k–^—^—p’¿Ù|‹>Ö6‹lRRŠeÿÌ:AN6´CnNR²óŒR»”]ÚCÇð²âüþ09Õ!á•o½‡‡­½*û]ß’ñóTÌbüþêkx¸KºþÈ…î‚pg—r`­ˆš'©ïB%Œð +Ÿ,tÂÓ?­ ø¬ó¹G:Þ9KÈßD<0Îpák#<üÚ{R²¶~{‚w64÷h± vÇ%¢€þ¦î¡ÂýZ>1°Ø( Í*Zï…Ü’S£=þÊ%‡à–óPNáÐ ÊÞêûopqßJÍÓ¼²!l„®½èÒ|}Öùµ7wAž,ò*ÙPË %KÒœQÖ^î”ñªw Ñ»ï+¯éÚr/ˆY±?/¿Ì¹r¬#W­r©‹}ˆ¸iaÑ¥ÃZ±M†O5ÃâvûJ"/D¯½«º%kÊúu¡«,0Lu+óòPmÑý1êTÖáRvéÖ;øc1#ù—qzì§œ˜íѰªýNÍ¡šœoÕP +‚+l²[˨ .pˆÀKË·QqëÄXõ[üÓ} z¼Æcì W>]ïÎþÅ£££\†ÚZÏZC«UÏ#oI¸å¶™»`<2B&𽬵ÝÔ“å×ù¿ŽÁÃw‡ÕÍ©?:2Ïì T?ð©X§F€5Í02s¼ÊšÀߣÐ{ºöÔŸäõißÉE™ _¡’ŽEæÐ¼1)3ß-aXðObzOÉEX¦)éËo`7_”ž7OÐs·I©ê–¢Ÿ7ºªî€þz¸þªúñâóêû{½èÇ. ³ø`„¿ûq7°ÀÃÎbc­SÈG¦1øC;Èš>9' `CœRDörMß^ñÐ;Ç,uÎ’ZYþÞ×eADºçi¶iRò.Ðs© 믂 Íw—5ýºø²øWÓDMÄÞòÁJô–®­èš_ͮڟ ¤îŒ‘Bó7Ý*F©i |ßô#ç %Ç5ǃZ&…–i>d¥µúŽåµÖ;åmÍm“ðóVm­_CÊ7Àn÷Bnš¦)…kÓ|ä{Qù^Áy§T€´ŒS³¬c„dç1Õ4ŽM0NÔDšgñ^mmmœ»ð +ñdµ¯ï„'l¿«Lªjr>m«DûºäÂÚÛê(Ÿ²Ap(àìJzéÑ +e“Õ¤G+Âݳèì£Ð3S”Ânbò6)£òãVs§oGð(™¥;#ȧSÂgç¦O~5…ýï.Ÿ÷a‰C°KpñÁ!Ç«ãý ¢]Á)7ÎÒ2¶'1O×ÞAn„öÂÚ§§/taïïñ+ÌSµ5®y^µ[FÊ2Ž¡#×ßWßµsß§fU9äBŒöü®¾£ì¢{ž˜8-Â>Œúl` ]B©I‚Š2N ‡æmí‚Þ’7ÿ¢ªËýÕ-à8æ‰y~‹à\䓺YÙ¿ +ËmŒñ ›ƒ¬lÃ[üMkõU 'ïeSÁÍ“%6þË–¨þ×lQ2dÄŒ?M¢Ö\Öá.e ø¡ +d}àç.u˜Ä¥¢¯tCnnÁ#>n·ôך^94\ÒÖDͳ­q\ÔÞHÕÝå×é?ûs~Ûï/»lce[%u5»£œ¢1+Ç> j{ í˜ÁÅûø´ 1?ÔSæiB¢CUOYé__ï)=¿Ù_|q½·øŠy«™ÐÐ=$)¯Ì1W‹ì£oË=¥nÊüiwf£#¶úP÷ë¤ì0³í+Êæ¢ŸA…K"¨tM ¦AR|&êû6ȽïgY‰?ôÁn{T‚šµ^øõÎò žÐû,ñHGzJ‘GŽOß„Ý}´_Ì/º¼Þƒ Ÿ柶K‰-éWq«ü +z‘u +»7\ug©3ÿ´º>ñ?Ž9RФby;êæJ/!Ê:KËvɨ¹~§Ê:Úÿ òÔÑ#Ë µàd¥©É6²ã6ú`aÆ< +ÈX¥G*É)ã@´]ß7†±1]ç [Û5ê×6óW€hÈy¾9b†oŽZäÞ`œgÃôýè¨õ!BÆ‘¾žk™@F˜F*ïÊ®nö”_wË@n[}zm®~Mó¢&Ê6ÛR„>Ör«=J\úÖ@ñµý‘Š;®9|ö‰žÏ>™~u÷Ô2KÍþ¼!ØX¿ +—a†>]|“uUý2ãWÛ²ß?oŠš-2*TÖZ~uí>ʯq¼ͧaᜳøTÓô±k“à”ÓœÚFÁdcÁeiKQ„KÎC{Ô|´WŬ.²ñÇËöÁ49uµš¥ì[lë ]÷qÌQsìZàÝ€šù²Ì@yŒ²å^ø½åw°» §fš—vámÕƒï—Û‹¯îU†ÙæpþE.)°Üظje©êwžsȉé–ièËò;ÆIbšE!@Ù•M¬ n鸠⬪“¹=YÛe¥A¶Í ã×zËÃL3èx»Š”X¯á[©­ÓvU†+Z WÀq­ó-p8'ë|ÈbÍ.-©ds òÎö0ìŽSËB:uuüqb¼y–’iÓ2*«öþ8-ywˆo™¤¥ƒž¯9¨ä£Ð#Ž Íw>ÇDŒ"_@o»§+îx¥ÈH÷1Í-¢-bf–CÎ,ó.ñp6%×&ÅÆ™F+nî¾Ïýí`~ß-iÄzdí"Ët-r­–²3FÏ5KÉ™blÔö{äÝ­÷•7UÍyg• ?Ù@® hEäý ZÎò[øu]{Åoô´ŸúÉ?/½€†Ù&H)ʆҋRvîÛoªî|ÐÖó­s¸Ìõ¾ü+“Èg{#ˆûÆ!|Ìö)uå}MÄ|CÞ)·’,Ö²¶úªÃ×_gŸ^hÏ=gG„;$˜h¯‚œíV°+MVÑž˜•ežk$X¼*Ó2b³¿üŠ´.í§ù¦ÔKÛƒˆXçu²\Ç·Jq)6PKÖ)Jªª©èœª!éûýÁŠ[ã¨Ç+=·¼jJIÐÀ%»„[Q[ãÓ ˆ[Ð»Úæ¬SÚÆüŸÕ i§Ö;3/dØL¿ªŽ¸ÚKxªh)8>ß}÷<9ëp a›BnjÌ¡Ùf©Ö9A•ò56ê*á?6 %ûèŸÐû' |æá6Ê-¹(k„Ä{äâîpÍÓå×E¿m¼‡Ü:Ã8¨¸k|ð¥î£•¦¶½)jÆÑzK§išY±òv[Ù˜yº­äâ?'©1ßo¾«Ž¬6¿Þ•×ód­•—Vß¡ŸzT€‘t<šWË£y´<ŠGÍØÙäôŠàRCýþ3ïðìÉ +£æÓ—ñy³áåÑ’€û÷ïI9¥c‚Â͉6Âú ¨doŒ•u´ÈǃcO ,Õ7|Ünþ´×&ö¯ %­xoŠžiŸo:äm@ï`ÇËLÌÑ¥Ò(F$î!’=z"äd»¶q䂽i!Ì®yñ*°Ýôòd·VdLâÖ5ò\šÐ~M¬ró4üÉÞhéu‡õ4 f–tœjë !p|Žü¿ck™BE®öÞZî̾¾ÿýdü—͆ç^»Ú)g‡öµ´fÙ‚?Y}]ñxo•fžäBŒ³¯[wç_·%¸Ý1zÊZ7òöBkîéfâ×2~Ê™€Œw´Ð$Ú·à–…9+ƒÜô­!V²q”žd&Æ(š3~‡|ü7÷û6Ú+§ìŽc¶G9vY-xi¬¦-ûì+ôí½ÁÜø—ºéÙwG+<ŠU#$­âžGj"Rj>𰧇ӈÇlå#Ãëôß¶Kn»@ƒÔM¬­1rìÎ(öéþ9Ë8NÉô¨(ÅŸ7xÌ žƒ·Œ¡btm™¿l½‡ÞùdÃÊßW»ªÃ½r64”ɼ*JÞÞpyÔò«ô‹ÝEW­@W×ÙÙ#ô¤ïæ…¿¸¦èùÎ |ìá`Õcû8<Ñ<†ŽŸ«ËÿY÷zɘËð§n*ºd¯~z0^~Ç: »ocSvGpñšWг…¿˜ûšfèy«½å×–»Ê®-¿©|°3XõÔ5+<1°‰'k"‘èçö4!Þ¡z^çTrQ>©Ð«$åoBîÙä¨$ã"Ò2Sl`£×ûa·÷&±‰Á!ã¥U:ç°éÆ¡Š°õ7…— ù§éù~]£àp–Y.o*:k'$¸åôR·›òe•Çp¡{B÷g˜¥¾Õ–×[ôœÅ|äÆ 9i¥§ò‘mš˜Ô‰8}SóÚ#o}Œçщ=µ=bšF'Jñ™n5\dV~ÜÕ­4¶lƒLr(Ŧ~Ú +õµØ+§ä9籉ihö½Ä©mnÍ·ÂB9@^9Zi{û÷=oÊz¢SNÉòȱ .)&Ö:‰‰y6Þ2QõÀ!!eiëé‡ÓÄøÍ!øÅ‹Ìsª¦¸ï=Õ·|ZfãÜ xµB‚CÑÌ6ÏðË5/‹&EüSÝû£yçPu´oζÑv§›ÐS²ƒ1nÁî >zx°y¨úžU\ýÔ$ÆgíMÔö'Úñ»Sm¤± Ì8J‰Û!Å-uU„îѺcìß;ìC>0£î "¦Uvymuš˜´ÔY}¿Ÿ–pnˆúôÌ~_ÞÍà"£Ê òi†™ã” Ñ»jk¨ò†q¢êžizo£'ïºE }Ô3+C{&nNÐ’€W¸”/_9duDÀ>q%:Ô!'g#‡m¼ƒ>µJ¨%û“œ|M;úÚá4«À«æ¢¬\¢e©oÏ>·ÜžqÞo6¶‡öÒõh˜P¿»’Zµ?…HsÈq)µÔ©á¡·ÆpI ¥ìdÏô¨™U }¼Àŵ‚¹€žš§ý zÅê{ăÍAØ­ ž^ù߯ÖÑëRÀÀ¨ú¼ÍçZcRj2ÈÚT„e†­{ ¹¼>„zæYàà¼Ël¼KK-ñ.ÑN ©"°&¬?Þ5–8d·šÛGGyôÌêÏzîÏ­ç=CK‹CÕ̶Hè™12|µ·øb?åÑWý¤_Í #þ³;PÔ×Ò¬fîÞ8%á@LN¶‰‘OœÕ÷Ç*î­¿MþEÓý]p‘O< ÍÙ`'o P6{*üS°gÿc WüµÉ&mNW?‘wæ_^ê®|`—6àMâº*_3MãèDz¦ôŸ–»Ê︤Ïù.i׋ÃiÂ8Œy¶?Œ´J9‡²Ž¸'ff¨[+®¨E9§‡Ð<³Ô,¿&´/2)Û6ƒ‹³IE¨•Züf.|÷=äšyùØ£d6’}ºF¶EJÏ;˜¨¾ç”áÓ=ZÞ&¥fo÷\ßî˸jŸ…„[çnMûË€¾kÌ!«ÅJj¢?l° ÁÖ:OÉÜ«‰>˜"§m £6†É1¶9v©[ÍC[¦É)>g—Ó­bd$è½› /’®[§*îy”,Ÿª‘ëTµ6sS¾Wµ–Üß"¹$”Ò-©<¨¡”nÊ\鮺aœd”9晥†.ð› +ÏÌ5@®É[JÂŒÀ‹ƒrVµWÍ€nŽb#µoaw7† Þš›½záh™Gòi Y¶|ÆÉ*Ÿóe§¾íãZ}ÓÚ0>QÞZqÇ!çÓ‚ +zt<¬e +?[—òë\Cü÷–iø³ëBp\h¥ýôÔŵÙWAæ®vÖuÈ0‰ÛCÐûÛýUa€Ã{5Œªàr}ÝÖ .j¹ æšeÂÿXmh>=çU`sLc°‹oVò`»óBØê;sJXš5u¢c ÿg[ ð*ˆ™G:rYPC(Üî+½XæÓ¼kͯVGñ©úž’k~= Žûy·©ûãfÃ+¿Žò?5Ï«aW}ܨot(8èÍ>䣕®’‹Ë¯óÏ[%„4§’Tø ÿy‰Gñ* ÅN"ñÃ:s(Ãg UÜÚxUrÙ8„xêPR¡N‹z{²%ª3©ðé ï‘áî…ÖÎ[“_L oœúÐ>€Ôb§Š´žO¾,ô©h…GzÚ­äÃ-N¡iŠ•»ô¶úšºú«²©â‚¼¾èâúøCGè~REhN:!Ö4ÅÌ>˜bæ,¾.:?'ŠùJÕ”üÃð•½Á²;€ÉªgD0ó˜°Ð)ÿN¢Œ]tÏ–€zÉ9oèI=¥èHûm£¿ê©[ÖÄ´ÌÔÂÆiI6 ¯Ô>σ8¤”×ßó ±1“ü˜oû ·¿>œ¨I.4 +šæþ$7Ï +~×*&Ä›ú«îúæ©+]u­É?;f1‰v!m«¾½øPòà@“‘'Ò¯#ç;”¸¤Å·9g—:ÓΆîû.7Ö9õd‹Ÿr8Uù$¨ÄeŸ,ð0>- îU1*V»+nKxq§ý:R™SË(3KIÉÎyR¶kžœáW³*ƒ‹<¢]FJ·Ì“,V‰WÓÚ´?Žy²7Tyg®1ëÚ>òW×,<íõZÁÑBÛŠõ!L”C! 8Bœe +µÓŸ}i”vÿÇqFÄY«¯­y}€‘¨{…¼¦{…º~( 7«îÆ»³Û—wqç]Ö%×<63¸À£œ,·t˜§É™»¸ø£Õº†õ-~âW²Íe÷¶û3ÎÙçHéàýо…–›ªž¾3ÁÎwÈ[¸Ö¹’SÁ­òë8èCYM¢U†Ž³ÎQ2jNu虋„èÕ°`N% æ–‘³uäÒþ@‚¬ôAgä¯7wíÍ’òV aËÝÅ×7ßAî{µ4Hè±I!ÂnNpóV‡ÅFIm{‚Z®è,\| _~[zÓ"FÄù¸œ¿vk›Ý@Ÿ²:ŒIƯ ,5µ¸5˜SE-0N¡#÷'ÜZZùÇÍÚº?ŒÍïögè…êNä-ã4¯úãFãóÿ6Ö½ü¼BG¹g û=Igté—ÖP)‡š¦Í{b¢¼¥ôê§ QãÿZšú?oòë¾,Ó‰>yu–}²ðÁÞxñ Ïš¿½1ŽÏ›jÊ<ûi¿ñÍû­ãŸ6¹ n9:}ovÇ­á"Ý*Ê>ϯ²JYE»£ä„Í!zâVhoçaQ‘ERr©êIv¯zsýp­v}o„s8Ë-Ù!'¬u㟘Áq÷ª8°£%>xT‘p–yœç˜á™Å„ØýX(G=°MUÞqÊѱ^mh¹ÕîYN•q»3Pz×:Ir+yÕ[ý¨{æ)b‚èñòØ#ËhMÂg=ðq©–mWЋ70áÆIrüÆPåÍ¥—Ù§SØX× >9 §èj‰A°ÆÎJ¦{––÷qYȰJkžYg@žcâ=RŽSI.:Zdá¾Æp«90Û<ê]hnò,45x”µX¿–ƒ0ÍÀX¥ˆHó2°qîÉ +o“Ñò|Fùç.8Æø·´&Ö<}à‘{3`UׯíèÜÆE§˜Å!/µKÙ%. *Öêápöx»·âæ‰VÄü´ÖÒX1mó” Ћå.½èp +cŸA¤‚ËU´æÞ^í.»}r»EÎA,ƒŒg!åy V–˜èÏk®OË$nÁR,SÐG ¹èx­é…w±¹)°PÇ .„242Á,. û²Î&ôl‚KÁBØäÈŽ˜QìÔ¶>·)[x.¥åR0Ë,Ó5IÖÙšD¿žU <ˆåÕÐÊ쳄¿:ô\[CGIÌ2MV=^îJûmµzË£â“>n4¿ò®‰ø“Ï‹Q½|§½çÞ¬â#U|”EÉC[õ/»VgÚY#Ïéa_-Ò*Avc÷¡,Ñ6Iù3¯–Râ õª²¥Éªh{¾5L|fœ¦eû B¶ßÀ®9^°Öx,ï"m•ÓòÁ1©¶ëšž;õu<—Šá˜­‰uÌ"£ZtÖ1ðNïrS«CßÒ´%æ–LÑ‹þÚoêù°ÎeïÂÂÌC°û«]#…qnÑiÿ{Xßóq[À3ÍáóÖG`ÉÞžp©·*qo´d—êÌãr58¦L‡Bˆ2IxåàõÒ7jš¤œó¼°êPVWãÖÕÑjÁªàÃ÷§ˆñ»£56@ïŽâcŒ“ô´Ýa^–c¶\¨gØ”l Ëq¦IJ’EÌ/¶ÌÊLbf¦YLN´L ùô”—†Vx8ƒ‹Ý„‡ÉEéßËjãÿ½ÛW~Ó jÔ4ÉÊ +Õ–GÍ«õÌ‘žQ~¬%å;çjâwG÷7ÞՄ퓧ׄÇÔ\„wž”u¤"ç;%ÈĽþœÛ–QÈ«Xd#íó¤4Û,!Ù£fA ÌÊP½Zç1‚R…i +þd­ÜÀZ[¿s¹å¥qŠ‘sdà“*Lbp‘óÇ& óy…ö¨È…V :úXO. +.0@6D<öÌ£¢xÔ-õ?kÍí,µ¾ +ê¹ ËåØTì¼»=B|f™@<>®zú䩎Rt¬m`ùÕB<ðÊrË,5ýx©Žë]ƒ‡=Øê+¸´Ñ_zgZ +0ùC§œÞša­RS|Ú–¦#CSCPG+w+°É[Cåwe-Ég¬3–èÕ6êê< B’oA@ÿ°þ÷3·Ç|MŒK†I:‡>Ø­~äÕ ÈÇëM¾Û>Ç…„®0ÔÒýJÔ+'ç¸dø4Ó4r{¸,,tãËJcóÉJ]-àå"›”Rº7ß®zøi…K9Yç1JJž¾¾3ÃA9ššÜKõèïb/°ÖÐ|¼%¬µ-ˆ8Kì\õ{ü£™VD¤K×Ò\mjñ…fY)è¥Æ‰Ê¸“eñÓfmýñúËi»²–¶5Pusgq´YßaSÒJÝZ±[C)°+¨>Ð''¡k[bã<i›Ç'X¨ë<Êñ:çyË·"dºyXÀ4ÈÀ"ýe·¶ÁÐŒKÝÄu*E@oØP—&4À ,‰X¥ZºMÁ‡Îó*¬ó|蘓¿=BM5Š)‡s¬â­aÒ³­Áª0Ó<2t.Ï¥]*>Â!T; —ªü½Ô*§4týկ㡬ó\ÈÞ6j½§ê²áôòÊkø-Ó9”·ÊAŽ*ñv.‰Ø¾E!)4Ô«!¤;ç1@k¢ì óì§‚]ë4²ú&ë¬q(ç¼i4÷¼y<ÿ¦SŠKvÌ1‹J^•}ŽUäÖ°vP‡Û#×M“E7¬Røë,ü‰}›Ð +)Ç-]¡½Fw§iiƒ€l’À"M3¥·ÜJ$¨1l¼q èrûhQ¹7Ã.ÞšÀD‡´”"Ï<ëSaR÷Æ*ïí‚zô~íi>Y=o™¢åøBÏõÍ#žùæq€3ãv†OMbZšK."š[¦H)€µÃÜ +&Ü)gAÀšg—[Úmªúᬚl™ €G§žÍv«ˆù~- õ×6ýy‹Mvkp¹{•MÓØ¤“µÆ¦à +ŸêÕÐK|*f¥GAÌñ(ie]=çóº€ z,k½·øòf_U˜YB¿@FýëDǬü¼,¤õ<¼SI-ò‡žßR60Æ@‰³+°©ŽEîhMÔøe·åý—}Q›i—ãÔ±kB³lj&Ò©ÅeíL#ïL£#m §-þ=7ªÔÏo=ÛôrÀ¿ÞÜùiKÀó«ñn%àð9J–mŸ|¼ÄÄ}ÚmèT¼„\q«i•î ›>퀼µ#úVyt“’S½1AK¶É)ÿ}Ð2ðç~S¯o‘ð-ðñwü/¢Ö;BÁñ*q¨À&íMãlJfÍÉêó×GËM €3N©ðPJÊ÷è¨U'ë,ŒgÓõâbfš‹ï:TDÌŸû,ºGYéVàÒô¬ªãêH˨øzïÏ寯O«Aƒˆ¸'ukuÿ`’œh— `nyÓ:§šk8+‚‡²ÏæûÂóû#ÅW\r|º]NÎpÊéù–„ô/-o>o4¶ ÜŠY +j È­h¢Y¥MD»\„rÊ8eÎ9RšKFËzža•Ð2Ž5§Õp,El‡– µ+ëÈ.ek­m^?”Ò²¥„äí!ô“íÑóÁßåì ÂÂŒ£ÈÇN9ðy¹i’”´;\±9PuÛ-¥dŸ,76¸õuL³”šeš&¥8”\˜S òè³]15cuùpsûpäzAèXÙä€ÝUÜ*‡œ]j§e[e”L»œ–»5†‹°ÎÓsƒ!åd…Ù|—wÁ4^zÓ:²;†xèV’²l€§vfÙ…K}„ðx_·œQµ; ½m„¹æþ~¶²8¨åá>èZ;‚:.Ô{&ðÖbßbË­æ#>oÐaŸ×iÐÀ­äó&—òi£¡Ù«k`¯ôžÚ$ÌâÏÍ/?¬qiviõódÉ Ë$lo¤ü¡}y ¼Æ«­åxµ ÄÑ‚úd%—¢&Þ&EGïõÁî-vdÿ¼ùrÏ&!ç9•BÂâ)»öäÛ>Zæ=—ŒYíWs=R\‚pždÛƒI\üö0â©o‘ƒ7IyUëïj}\¯åž¬Õ‹ |ʧU*¨Á¦[§KîG ¯ØhhÛSPK$/ó·*éÐìK<ük€©—ið¾âkŠæÌ3;£Ø ïrLjÔ›CÇEMä-×rƒ«µ\à)µÿc4œ,á‹Í“;@Îú´+jò¯0ªœjZIh­ +N…YƯ +ÍÅõ«Éø÷ű«=EWO6„Ü£ 9ôã[¦”›¥ˆ(3`wï2 ˜¤ïdIÈ5NÒœ*ö½Öá“MϧgTšg IûbRÂá<5Û¿ÂÄþeá7ü±ÏbYç‘Ù-0:Ú¯Æ&ýýêü£žƒ91i¾P­ÈˆYf1>)tOŸ]I6MAøÔÄ\ÿáó«l³Ì<Ó :zõ]á…½‘Š[G‹¤‚«ä²Ïë$è‘_úÇ—úa•‹Œ‰ñ(xUN­À"!¥ÙeÜ +û<»¼Õ‰žù›Oì²­w÷¬Óè$¿ž õ8h¯¾¥Ñ&ël7K›Ì'",ÌŒýA\ä«‚k›ïÊ®¹æ™… —¯cH¹% ݘûÚ—KàµnøåÔ<ç<µt_LHµ€|c•7VíͲ Œ³µðÍ1fg\ˆ=j•5N`²m2&Ä¡©ÅùWLsìÒ­ ü3ã,5Óú÷½[”tŸŠ’ÔRŠAî©tË…@kq^ˆb™<,£ìa#ì¡kasÄŸ† ;œ¡åÇñÏ|J,¨á¡{<Ûz_|m¯zß!…?öªjâ€n"ƒË ð‘’à’€x´Ì© •à˜«|v¤£CÜ2V™i ûQϧ|Ùí¸¹´ÝqăC)>Û£áã–šOÖž;äÔRUkÖïÊçé—@oVºBâÆ üš#l›e•.Ö²6úPኦ‚óÓ̸ÓÛï`©`mŠWßýf£bƒòX/ |Xæâ¿l +¸_¶…¢C£d{ˆœøûükã¢]¡óýjz•GÅÂ~Z€‡µ¹¸h›Š^æ[iys¼ÚüâDÏF5ÄlŸ +h®·Í0Ê‚ uÇkÍ–9à‰zîx­è`u‚W‹ö-`Ó‹„\ë"Æ(!A«-oAîzXã`?n>Ôññ .s³·(lû]AØ0ùÁ/ þµÜ“yÿ/sÝKß*Ÿ +~(wD­'ë|æÇ-QÃñ:k“a‹—º‹o.u•^:”3>n +¹s­ÙWö&«SŽ–ˆ?Ö¹”¿VéH¿ŒX½Þ ÉdÄ]çä^øGP+Àõ´òc­Ü§Á¥'Ê®ÛçÑq>È.ƿȆƒï_æ×1+ì +t‚u¶*êó2½úd)4ž’Ö?ðl¾e†˜åRr¿¬±küÚšd‡¬âžmúà3ð°?¶øŒc %>•cŸ'¦Y$èg.%b> !eg]E:ç™kÝÐ{‡âšÄÀµôÃîÕ³Ñ çÁå¸CSG²*êp–Ivöþ!ZÑ”~Î4VæžÇgX§I6¯r_V‹Ø×VÅ<¨WÁ†Ygpñëï*omÂ×Bºtµäƒ9ZÖÁ»È.oëþ~Ò®|ÑäÑÕÓÍÓ¨hÃë öYJ^@_K>Y¯å›Có‰çX%}ƒÐ³XÏ =WlžÂÄì”]œæQp¡ æØÀ 3ߣ‘ìF¾_I/rÍãÓ†ÑûÃèÇÆ1ìSœ ¨EDË)y³rkwz߫ĥùTØd·f•V%˜gÉuÏ£o®7K°‰›}ù—RR†SÊ,²‰ñ -s)ì<ïw- +h³´,Ïbc­{±õ…g©õ¥ÇPϳH iKo +î®÷•Æû5<’eF„Zz‹»ggåÙçD5ö9\F@‹-pÌa’×»¡Wfù™?ScO¯¾DLQÓæ[óOƒœîÕ0à¦1D´s—îÑò]ZR]E/t«ë9¾¥ÆF“„šmš&$žlˆê×DBÿ"ŸîÕÒÐ>5©È£¢¸˜ãÍ“'ëͯ>¯7´~^ +>­ +˜>¯& ãã‚`]ÝJ\îÎô–SCƒ­ñ¦Yh„G]“åÖÒa€‰~C]­w©s*°öbĻ¡y ¤¢kÏÝ2záfOÉÕYvô¿uM©g´ÏÓîlõ$~Ú¤QÿÛÜØëšåÔrŸv›Þz—xDË,9gw¹ÔSxeg¼*É¥ €Zzd`#gÒ~݆ÆÜà’?,Ò ®±’{êºÔs¯ ÿ][ôøÛ6dÔï@+ð^ å. µÀ«¥€ì‚O +hY€åÙã6Æ"ÁÆÙfH‰®9Fþ‡>åÏM.õ æÈ@+sÉ)Ù®yVᑎ‹<Ñ ^9«ìHdžùTŒŠ€Ž‰8^ä`=jf™OÇ‚:4°Fìb¿F€ñ€ åTq¡[“Øgº®ò+Î9JÎëš|¤­g-{’ò|úšD¦&!ÄÀOsýzÌ®bfad{•|¤K΄øT„Œ•®‚ßW^–\¼që{(Ex—ºáUב¼Õ£¹ÙÀ@øp9¶9øS+`Ù ]ói¥µÓ·ÐþúPÆŸ>W²{®s¾&aw¸èþÆ»Ôß`½Ÿ47[ÞZ5·ˆ©éæ1LÄbGÁ…µWE@¾O ¨iÅ~ ~u¨‡Ç,¿*¨«¥4lèá"jõMú/+]i¿z•4Øñj뛣•ú:·† q*xXŸ¾r/ãHO-vK«£|J‘ô WÏ'|Øjzý¹ÐÀ÷ZZÜZÜ%£ä¸æÁñS3 –)zÎþ(=Ù5W[c³ò¶‹/˜&ÊoGQÆèéæ n™[Ê®òʹ£˜šºöîU Y &pã°pó>Ω¤–™ˆ[þÑòóNïBƒàäIÀ]Ìã½öIÀ鳄”b“ãÒ>,Qalð¹ŸAßœ¬66õuŒÏë-]_Àñói¹5À'Ë\ª¿¯½Ä:Áï;4èÉj}Ӈ͆ç'<æ‡æ®àŠˆXââOV9Ô€C u/à³ç«€:±NÌ“˜èÃJ¹_Ã¥ü¹Q×ö¿û,Αgž!çn‘ã6(ñ}[·]ÇA€l–íR2ª?®ñÿÚæóÜóŒëàßYl¬QŒ÷jé•¡üèQ‡ÎßAîíŒÂc6ÇpE{󬯡®á¨uŸŽáÑÓ?ø¼RÇû²*â,ñ & >ig¸òÆÞ@ÙÛhõã “óyƒû²)|Ù W97Ⱥ®YX¸[ŠŽòȱq5½èXÏAA=tìÊ àœ+ê‡!5 gBÜ*lŠKÍ*w*E·º‰cŸo¦yUTPÏǺ€f»ÌbŸ†YÔsÇ!ÙúÝГsi†óð߆¦”S~h<æUs±N%»Ê6Ç.±Mó!‡“äÔõ×¹Mà³Ú'±Ñ¾yFApêÉ"—z¼*dV¸8 Oå5½ÄoÀç:•eóE·Ì“å·ü€Ž ¢£…=69µxµ¯ðêÖ`Ám›{b Vž,Þš²>†y| ¡Vkr+¹ÕËÝ›ÝyWŽ4ļ6ʯ¦V™¦Pi›ƒà˜ãmòŠKÁ¯6Má“ç›3ÎN ’¿¶‰)ÉG€rà[“€qf±  ||PÏEº”ãhÁý¡üËv ìÑÑ"}´ÔÞã_hnt«yHÐ2§,ôû ®ôäJ—šäS`+1 +÷gé¹þ¥†zè¹­!|´¬±üÊú늫%òÙÉ©øÓº€ãÑ + ‡RF®KYGøÿÙ{ï÷¸®ëPô·—^Ü›Ïß'¹7™&’m@çìÓEÉ ªƒEbë`0†( …MT³—8qlK±­bQ…”Ø«HŠ©N‰bï]qÞÍ÷þ‹÷VÙûÌ)Cb†tàÏ"¸xÎ>{í½öêkí£ž*Ûüdß'k[¿ÿöϦýåîOûóÝ?™öm8˳/í}üÉs{V/½»bàÂÞ§tûÏW>,\|¯gé¡W:oj>»{ÍÊ HÏûW>}|s{¢-¾tà™ç/XõÔµý½Ÿ½±ô¾½?›õ· /ZóìùÝ+Ÿ=³c°ûئǻÎìX3tvçêU—ß]±ê¯þg8™ÀKOn)påã§žz]†u'/å›þ|÷³KÎÁY½°£kþ™í=ËÎîêN²¶Ù:º¹gæ©í……_¼ºtâþ_Lûë?¹ç[ð̬ »Ú<·#;å,ÈÓ˻ڮî]½üòÞ5«Žo-ÌÝ÷üüØöÏüÏ-OÞý¿÷¯÷ÿåµwús_X¹òÚÁ•+.ìéKcýò¹M½óÎmêl:¾~øô¥y Ÿ¼°ðŽ#ëÛ'ÞÖ3óË÷†Š_X1tiÏ`û™X0_;òVÇý'@7¿´geñâž•}—ö}‚m |µã8ì÷‰·–=pfó²¦S›ºfÝØ;óƒß·ÜóîóóíÏ_n™|ñíü‚C¯Í7ßû™ÿø)Þõ½n𱣞ÈöZïôƒ¿\:ñÔkËî?ùZîÞ=»~Ãù­Ÿ›>áÂîö ï¬yêÌž§Ÿ=¶mUס·Z'øÊqìÍ–‡¾ž¾óÈëK½/Ö¥?y5ӸŦ•¹c[W÷{{õà¥ý+ú0‡ñàó ôO^ÌLútçÓ[—Á]6ý³uÙ»Ž¼•ŸvqgañÅ]³½•ùþ¾}ðÛû~þðßyc±wfk×#Ç·®h;üfÿìßsÿþç–ݵçg '~©õ®}?›ñ[ÖÜÿ7;Ÿ¹ÿ[ÇAç¾´{ {bKaö{¿[P¿ïßš&œÙ´dÊ¥·Û¦y³í¡/ÖuL?±¡0ïäÆUm'·þðéSÛš¿Þ|×ÞŸ=üWoô[üùïæ™ØèÌÎÂ’[»€ýøÀg¯öÍøôÅåsþ{Î9úú"íÜ®¥?8»³ýáó»‡:Îï¹ôÎã«ÁnxòôÛ+z½Ù¿äÃßu<ðéK­¿¾ý}賺÷È–¶û/è½üî?:·g¨çÌÛ½‹ÎïÊŸÚ:Ø|lCë:¦~½uÒ±Í-÷^Ø[Ì]9ðä¿]<øÏ¯~º!ÿȱÍ]œÝYÈœßYXzø•̤=?Ÿ)¶ÿ¤é{Ÿ¬Í>||ó³OÙðäÀž_e§¼ûÛEî—=õÜÉY¼GöÊN°Kv¦§ƒn7óìîÁeç÷>ó¯÷®yæÄæö‡¯[ì|öÚ"ãðº¥wܲô®Ëû—ͽú~oÛ›;‡ÞXl‚.ß{åàS¿À3wa¼3÷ȉM˦^y··åêûCË/ðÄÏîhýd}ÿlÐgfŸÝÔ3óÄk‹&¾ýìäo¿¹êîÿùÞóÜöù[m çöÍÿèåܽ۟ù—Ÿ_8ñðK§^ݳ¢÷Òž®9'6€òêbýÜö¾—v®Ì_z{ÍÊãÛ{çïûMÆØýË¥wìùÅìÛa?ïúÃû…ÜÕw ™+û‹mgw\yûé^غªûÜæîé‡_™÷Ý÷5g¡ß,5N®ÏM9»¹µñÊîž—öö·ßÕß|áíÁe@ç;µ¥ý#o.ùÁ¹™‡.¾Ý5ÎäÊ  ëŸÞ:˜ùbØ·¿]RèwÝöño» èr +Ø.sÎîÈœÙÑ¿ã‡ßhn„ýüØŠ3½zñëù©‡ß(Î9½ññn¬yÛ÷/óþnãê‡þlm§ñLJ_Zà~ <ôê»kž9µó©'®->úÙ›Å9§¶­ÈŸýô‘y‡^YpÇ'¯Ì­?ôÆ’»Ïîyú'gö<õ££[‹™3;‡:¯Zúù«½ÓÎnÌœÞÜýèç¯-Ò¾X·Ô:¶±µñ<œ½3[zfŸÜÐzϱ·Z§|òòÒ»Ïn~žãë:‡AF~³ï‘Ï^˜õÉÚþþGVìûé¿}pÊŸ¼^œô­÷1ë;wæ¦]ÞÓ»øø¦ez£õnØ¿ÇNoÉ>ptýBëào»ýÓÓÖ™7ó3.‚½snÇ“OÛ2ÔòáïÛ¿ð?ÒÎG¿Y4ñ܆öûÏoí˜~ô–OÖb®oËÄÓ›ú~örá‘í?\ô·GÞh™v]ëåw{³Wöõ¶ŸÜÜ|ï± íSÏîìYxj×`öôîgþÅ[«:Þy.ë~ðÂRã³W˜gwæf^z'Ÿ¹´?ß~fW÷¢O€§~üêRïÜÞåÅ£[ >Y›6¿Öìz+×taoçÂ?|Ô?ðåûCßQèútsGö}„sø$œÛEïÿÇÂ;Þþ—™õ3ïî3›AoÚºbðƒ—Z&íüÅÜÛÞ¥å«þxéí+z>z¡åû=7çö£¯Íù.ØLžßÓŸ»öá?¿°w°øÑ+‹´ÏÖµ>pr{±ëüžBË‘·{G6.Û¾íÁÏ6,6?_Ÿ¾ûÊ{+Vm´âÔξEgwZ¯¼7¸êÒ¾bÇù­m3Îlo›~rW¡ùÈîþÌÑÍG7æùâÕ¬÷þ¯fMØóã‡ÿéçæßìùãÛº1eñþçZïÜôì‚¿=¾c°çÊÁÕO]Ü9Ôva{ÏÜÓo¶O¹²«7ýå;C½—w—^ÜÝ·äÈæÎ¦£›V¶~±þñ6§@WKï<¿wÑ]—ö·O¿º?¿äòÞeWv?ùÔé =³Noìl:»±0÷ü†¡ô©uËþà×ÓþaÛíOþìÁÔ©M¹‡.îÈ]yçñ5çwö-þøÕÚ;¿¾ÿϽ>û{ç·µÝ{ewïÂË{ÛNm->vëàœœ€ùœXŸv¿ +4ùzû=GÖw>p|sïìó»WÀF.œß9Ð|bc×ÔƒÏ/þÞÑõ¹{/ìh½°kyÇΟÎû›Ïd¾û᯦­ôÕeÓ?}yÆ÷¿:Ï9òÖòôgëæžÝ¶fàìö'W~üjïTÐú.ï¼üî@áÒ»ý —Žïè]üîï–êGÖ.xÿws7>>ó¯>~>s÷yÔñ6u>riO_åãÅ=ƒŸ½’»ëØú\ã…]ý™sÛšÑV?²¶Ù=ôÒcõ`£L>ú ØEG7®lýä•Þß{npê¿ëŸuâÍ‚ë[&mûáÄ?ÿä…·}¾v±~rk÷œSÛW|¾vÙ”coôÎ;»y°íì¦æ~•ö^éŸü×ëVNùÛ¿]6ñcÀá‹­ýK½ÞvÏžŸ>ò·§7¶?pqw÷ÜËûò‹¯¾Ó›ùâõÅ÷ìþÉô¿=ðëçìî•çÞY^8··gáé-mÀšÞyú­Vìã¸øK“ß~â©Ãof|!÷}°ñÚNlh¹çÌÖ%÷}s¾»åÙ»¾ýéÚÖñÍžØÖ5t¯¡£[º¦ÙÔÖxzg×Ìs;zçƒ]:ïÌNS;ßõÅ›‹½ó{й«Ÿyäðê£:¼²o°çË÷zÏniŸñÎOfÝþÑ/¦¦üò¡¿>¶!sï~°ú'_~¸æ_Nn).üìÕŽa¹´³ç±sÛ{]Ÿ~àÓµ³œÏ^ÍÜulsÇŒ‹ï¬ZsåÝ'rôžÃ°nÇ6µO»¸·9 +:éñ×vvÌ>»§Ø|zo˹}ƒù °§§¶÷.:±97ãòâèŠ+¯èZzuç¼#;úðåew}«ï±3;:®¼÷ä¿\Ü?Ôwxúçër“¼Õ5äú’s{ºÞùíBã̦Þ9×¶?^¼¼e¨ùè…0Çyç··6žÝÙüƒO_{ì»gA>ÙÐ;ó‹õù‡Žmìjúò@¡õÿ|Rìûò£îæ‹{;çZ»Äúø7KN­ï™yú­Á%ÇÞèxðø›-“÷ýbúßlZ5ù[ýrÎí ??vm?Ì{G?Ø™ã[—œÚÒ;çÒî®GOož¯Ü0ë;ÇßZâ{+?õä–å-‡7ôƒ½’ŸñÉ+ó¿»ùÉIüÁ¯æM8öÖÅõ/\9xyo~ د3/ï[Q¸´g¨ûÌæ¶>zááx÷×÷}ûÓßµÚ'ßXÝrrã3C'·­h?…2u]×´s›²v>õ$ØJ­‡×.1¼Ñ6éØ[ýs¯xú߯XóÏŽNïî]p~Oï h }}ikaé©·:š>{ ìºuËúëÏîÊÏ»¼¿Ø~å½¾¶SÛzæœÜXœwqØÕ›Ûøøw³ÿñÜ–Ö¦ÿÜ·zÅ…m+󟼴Ô9ôûy·cÛG/åîþøåÂÇ6¬nÿàÕÂÔ/¶9GÞè¸ÿ‹WÛïýr_1÷ÿ¸¶¿¿ûð“cov7Þ´¦ïâŽ'–ðÛvgãš¹ÿkmñáo.).î|¼ÿò¾Õ«Î½=Ôñɺ¶Iï<·@?ƒ~°õ>Y»Øøð¥Ç¾óÑ‹ó¿{è•%w^ܽæésû~¾áìÛ+ŠÇ6t>„|äâ¶¾E'×?¦}úƒÿë½_4~ ì¡»Ànž~v×Ð +ØÕ;WôÙÐñÐñÍÓÏíê¾zpõÓW®ùé9°6'~þF®ñìŽå¹³»ú[ö?¿ð»gv÷·ý×G+žøÃðËîÿçÀòå×ÞëmG»óÓך_m¿çÝÿXü¢óáó[û2_îíxô¿ä›ÿûÃ|ëù]K§¼÷«ýîsiýäöe'¶v~øÛfãÍÕ÷}ûÅëOöÿû¬†sÛ ™ÿü`Åš?|8´êܮޅØSàò¾ŽkïömvßómÿðGÛŸø§ÖgÿðÁàÀµ–¯>²¡åÁ÷~;ûÎí¸vèÇÛþpè‰çNoo›³eHÿ“+&ëSÌ_ÚÔ=íÌŽ¾%°¾îá×ó3.¿3”¿ö^±tÜ©vÎùþÏßów¿lù»?:´væ?{£íW¶÷/½²£oá•Ý…E—vô̽´«í »2÷œÛÖ|×ù·»ç|ôû¶;?}¹ÖñÏ®¾üΊÞ/ß/´]8Ð>ãèÖEÖÛÿ:ãÛG^ÊM¹¼}uï{¿ÉÞýÚòIq~+Ê•ü´Óëú¹²ïòÞÜô »Û8º®åÎcëóÓw­> zõ™ÍíSþ¦ñÏöÿòž?Á~Œg¶ÃTô¯º®ëþ÷_nó>y±cÒî-¤ÿßzÛ.ím{äè¦G¿÷ñÚûþøœþåå+.íê>öfÛ”ƒÏMO}úâ£ÎmÈϸºce÷彫úníun׊ÎË{ŸùÉåýOýøÔÎbó¡µsoûè·¦Ž­ËþàâÎU…kï­ùѹ]-çv´|ùþê§/ííËœ\ßúƒ~ýÈ„k¬º·tïÿ8 +:̵½½ÍÿëbGçô« øxÅ—÷­<¶öùÝs?_ûXÃï úíþñäÿ}ygßÒã¯ç;æŸ>~aÖßñzÚ=cñµ·W¿Ü»¢pdã²?~­Å9µm¨íâî¡eçwöÌ9µ¥³éÃ»í£æL¸º¯}êµ}y8«…è[?úÚ©ýÛ2°èâNàÝ;;¦žÞÖ zïÌ«{W\Ý·rè<ÈýÏÖ/»÷Ä–þ%çv ¶]}gÕÐE€ŸØÑŸýbcÇC˜÷rò­°ó»úâÕ…ÚÏÏøßýfþí—öõµ|ùÁª'.XýÄù}C=g1Þºí‰þã;ï»pðÉŸ^>¸æÙÓ 3}¶>sçáuÍîÙí«zÎï~ú‡'Áv<øRÖ;³ûñUW?XõÔñM‹&m¢ñO?{qÁ÷NlYâžÜÞz?®÷µ]÷nû×ó³7žZ~yÿ^¸vïésïøìå‡ÿzÿ¯&ÿ)Ø‚w_z{åò«ï?õïï¾ÐòƒµƒýÙç¯fƒ­ºâ¿?|âßþó½Â‘79Ÿ¾<¿þЫiã Èrث܇/eïü{ü>}ï•=+Wýו«/ƒ wjkó”=¿¸ÿ¯6=u÷ŸžÙÞ±ôËCOþæÒ¡"úCN¼‘kÝé‡8´úg×ö;.ï*,‚õhzïWéïÝŸuô¢¿šù÷¯ôéÿ×ÎMþËC/ÎÖþû£|öÿ'?KG{_×O‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý$ˆÔÚO‚H­ý,=6N~¦¥ÆÉÏO˜powË”t1]7ïº “´–ÀßM÷³…ºiu–Ü1©Pœ’ËsùîtayêNi ÂLÝñh6Ý™ºŸLÁC©é…\[®€33éÎìí©ïÁ£áÿuZJOiô¿yËëê×p aê®+à‘rÒ`Yšaš¥ #Õ…™nƒá +[¸¦©¹vü¡N|Șéy®ë˜¶mÂC½åyºãiŽÃÅ>WÑC±Ïµ×Í­ë®{¤ÎKÝv{jÞܺÙß`Ý\\·É…þ¾öé",I·¿˜K¦å»grÝÅ\w[}=ƒ'ga©‚ÿP7­ÿE×øŸfιÿ¾\'îÁþ¯°öwÌ›Ú4-ß’Å_C›rݘ˜ºm¨«³þ©¦UÈ5÷³}¸7°¯…tä‰L{®³¥íÆ©;ì.–þ ÿS\ÞCûz›6áöÔ³»s΄Q»Û¤;ûùÉå7~°;ÝEÏÁ$–Ó¬F|ó²l¦89ßßÝS›œª­VÚx´ØW1‚¡wFU]«|ÓÚ³¹¶öbň©ÇG§I.™ÔÙÓž^¢WŠY®ž|¦¦·g0×Rl¯xwäÓ#ŽQåø sê¸ ©?o<ÝZa“ÅþBs¥‹PÈöõwV~æÔã#¿­ šU)NÍé¾ì}…lo¶;S¹ ˆ¼5âŠJÑëîïšž)¦²•Ë€à+#Ž’c'¬j¶R ùÕ +qSßa¬ºó3‹¹bf†X©žž•ë¬bÛBïT®ƒˆ~DÊË¥€Ê‘Uáþ•&~ƒÍá]š™ï/d²÷Ò=í¹LÅÒº»âÊuÒª—aøJ1 +Ø ·Ú%\ò=ÙBº˜/TŒPé…Q;<ù®ž|_®XÅÙ¹ó  Ò)Ü1%Ûšš˜˜€‰ ˜˜€Ã™€fb&&`bŽŒ X±¿elZ€ó’±f¶ÒðíÎiù\_b&6`b&6`b&6àÍRK½/V nŽKÓhrv Û9³=Ý’1²*6ilHÕ qk"5wöà Ǟ‰Äªy&Æ‹¢S±QÔWl™’È¥qBUh×Á—FMC¸?Ýß×—KwO–&kQÁ®x‹Z*g&-CµLk-•«-£â]nmíˇ§¦±ÇáªáÚU³¶Q:ýÓi·ÆÞ¹¯8!£¯¿ÐšÎde‚f¥¬9ôÒˆZ_O63½˜]IÎÏhªhá`vk&ß™/Ü9Ø>¬‰Ô–WC‹üô(Äf*Æȵ¿3]¸w¨'ßí®œã/Ž<–Õ"Ù˜ïî+¦oÉÒ‹cÉRs ~*]¤¯ÊŠÑ0=õjp©mïM½U*_»}KT‘ù\w±©GÓ­ñUfgÊÛ$yüØÓŽÆ©Q%Zµ®CÜ”Ç$ §Œ±pJ­ð„Š5ŽÊI¬c4(¬b±×1 ÊADôZÖ=;ŒÊ1jzG†ñr1GŪ+ÎHç†SîÇžà—iUkµ.:Ó…\±½+[¬|‹¾é"tìØÑÕ{ÅÇŠyj¶Ð–Å•{*Qµì~oÉ­›G’xôõ8|ªÈ©m×Õ7©üd|æX5æó“ Ù슊Cµ›`¥»+«b„Æm~•ÞPqE{!ݒ믜Ÿ¨ÇGÞ8Ÿ6é¸Ê«‘–Ê ®Ø’ëLWÏ‹VèÔ|¡§=ß™o«XWª³er·qW08nxZå•> OKxÚW0oÇKþksÅa±Â˪(ö«q^V]AP5Ìl”ŽüXMßm®\ƒ+‡¤rÚªñS¢U®^ŽÍ^•_­ë4gÁ']"Ø%]n±dË]†I· lOuU%£TNÒ\1>‰°­Ý½©uYT…T­ùLœG+Ž 4¶§»»³3³ÙL5î‚ø‹#È«8œ|³HÆ_5q4%××Ó™Îd»²Ýũ鞱'“´”ú_*ö«úµÒm¥ß*W+Ôã#ÏX*v ñU9Ó¯uñU]Ê_]iªâT”›²5F‰õ5b…êÔ +ЫE¶×\±‰;fåG¦ÖÅ{S뇿ò*à‘iôR+§¯;ß]±û%Éôwõc ,Lð•‘ws£ú¼œx=UåÞM~zäË!*&ÍÀž©ÏO£ùWºmá·F>¶Þ9˜^^ñî£/¦ U ~¾v½¹Å|åºG~4©xsZ*ï9ÅÏŽ‚'ºš<×Ö\gg5¹Éµ,ìZ ù®Ê‘¡‡G™B–ÌúŠ^KK®˜¨‚×ù/ŒB1bw6]q¹P&Ý™™š¯¼ä#ðÂ(Y&éî\WÚÂ-ªQÛíïêÝñ’6“IÒfjÕΫ|k’´™[¼ã.m¦ +ÚªñS2þo‰¬œújÞßSq$Iœ‰`—$Î$‰3×Ý¥ŠµÑ±‘8“w‰3ãGÜV¾7µ.Œª«IâL’83Ââhü%Îèߔę̸Kœ©‚é׺øJg†Ç'Iœù +6îgª82µ~ø“Ä™[”83BDc'ý§ +:­öÄÒVŽáf…UdÛ%›1vÛ{Œ½¸uóÝ9Œ›–‘“\2…šž,©ÎWö5Enke*w⎑fIã²›wÒž'áo7Íßìo2«ù„¿%ü-áocŠ¿Ý[@¢¾%ì­ÖÙ[ 5án w«ž»%Ê[ÂÝî–p·ñÆÝ‚a£%Õ…ûÇ“«ùo^”09DU"ç›|ˆ*F>9DÉ! +ãk)«âÔFFûÑ*²oŒ¸Zö ºI XáŒÜP¶sFgzù’êê1ÇÏ=irÝ-ÙÖ\÷°—£“÷z²éâ”*ÚhÞùÉqÖs§Bv™4Ü&¡t”îè•Ócí7ª)d»òÃ56[jÆqo—¾ìîR)f_©·ËHŸ©”>Qh)Ý‚ÿj)øÿDøþœÿºå6£b¶TÝȦVT©æ*®#+UãðZÉj¶©Ö /FÍs…L¾«'ß6ÈôþaÎûØãU¥g 7i«õòá–}lÚÕá{|¡b¯SGå$Ö1V±7´c”ƒˆè£¡kWŒÈ0ITADŒšÞ‘aB‰ADÌQ@$(;Ç]CÛQ Ɔ­Ò\¨uš.äŠí]ÙbåjÁ7]”ŽðÇMq˜¤ +ñ&æ‘ÄŸ“øs.®®hNâÏIüù–à“ÄŸË’dd’øóŠ?àÝ"£¡nbZh«R=“˜sÍE`ÆŠc,‰9'1ç$æüU¶hy¶³3?Xé>uæÚÚ‹ðïõìÐYñNE_«Ýx s²™U5ɽ3òb·â3Ö_h¥ª:ÜÂ/Õî¾µäZ[ûû²ùn0)º+—\±÷FE9ƒñ&™ÇS¾G•[t îâªi‘¸à\­¸àªÑE?\úáÆÓ…ʼn.ñÃÕ€Ž-º‰m…l¶{"¨aÙ‰ Ùrmù‰¹|g¶8±m™˜/¤»‡‹³'º‘f†nÅ.ÓôŠ\Wq˜;ù‚M=?âÔhWŒS¶þR•(ðƨy¦äÈplBed”sg¦°™Ò$õ¢±w€3{GÔ¸v×ôõd3`¾’ú•šögTA„rCïêË¿ +¿ZüÅQˆñW‹eÕÞÃø‹‰3'qæ$Μę“8sgNâÌIœ9_ƒC× ;s¤g‡|:‰3§¶mÙÄ™óUœ9£¡}Œbxw¼{¦fJ;i캦Ʊgã&P«uǸ¬-NÚsÔ(o¨¼‡B·ç¨¼«E·ç¨|G’ö#¥ag¤sùVÇžð——®T›ïXó¢3iËQã"4épUk"4épU«"tÜu·ªV7¨uñySu"BÇ›;‰Us–¤«ÕMÌctç0nºZ}³Z?ÍlO·ä¿Ù÷% Æ„ÚSqo²¤Ø´NRÅ×¶ ÃUƒé9C£@k•#Rñµºôèˆ#’omíË‘š +Ù–ªØÁXát·4qz”¸ÀtÚµo”pó„:V6õ&Œ…ZÙœ‘‰BŒ}IŒ¸7âêukB¥tZ¹þÍ1GuC«xÓÚ³Õ¤ù¢‰} Z+ôþ˜•ïÏ`®¥ŠŒSùôˆcT ›¨ÜbJÜ£mŒC÷‡¸?j]MvÇ‹û£rD÷GâþH܉û#q|ƒö%qÔ¸ûãä4@»˜®"mh:‰˜X‰8έÀŠõÒÄ +¬AF‘XcÊ +¬¸›ÄØ4+Fo¬IÖTbŽ ^˜˜‰ø5Ä üz©¥^O Á±gZãÒœ›Ï·´Ò•3°Úµ«Ø ±aVÃ'Æ­8~{RŒ³«<ª*?¯ñòŸŠíؤÃFÒ`tÄI:lŒ2ß¾¥6Fe·nÃ%žöµõ édïjî¢+Ç¥*¤j]%híK©žPº³¹3阘bP¾'É—ßY…s¿¯¸¼³r×°|zÔÎÔ}ˆæØ;Rã_Uw¾j\õQoÌÆñÄ2¾J'§Äã=Æ<ÞµÂöÛ«¨„ï”·¤×WÀJ;}mä}}Õ±ò™™tò6ôΈ£Vq:N_¡5ÉV‡[ø¥ÚÝ7y/lc¾»¯˜î¾¾ á}oÄQ¬òFÛ±¢kŒ'Ó·ÚK‡¿~Û·V„…nTÌnÒ+r]ýUMüçG|{íŠ{7e;á/U¹noŒ8^$uo]‡­QRµ¦äˆS7U1½Eݦ0_h’ÚM¢ûÕ¤î7®¤›¸Ð7Ñ FA­XĨ ½w¨'ß­B“¿X»ÚºškÕêzüÅD{J´§[§=%ÊÓ-SžfÊ£3kìɶê¥v­‹¶®4 UqgŸ›âŒ£f væ S+@¯Çx®l‡ +bÒR¤æOTý¸é)R_±1RëME¦û*îñ씫í8ÐIŒû2k6¡®Zó®uÉzó,¢öc2IBàà×äq3ì¯Ö¹„^ùÕØ‰>š§j^k¶p_®0îC·^îŽp´HUM(¦›;³sªój†Þñ¦¯GwÙ}ýÝ™GÇSipRZ*!·1In÷ArÓæ6F©mò('ª=„ÅÞ³ +éî¾ÖÊo»¨êGØ{?u¸›ÑOkÝ0ºÉò–Äs’xNnjc(oRgç-ç cǺ9¦9V‚c4 ôVÌáf®°š0éA][row‹•‚,„,™–ïžCP?¦zOζ広ÿP7­‡Æ0ùŸf.ïjÎwÖÝv¶Ð lìö:-5 þ?oÉÖõ×•Òæ-‡¿<¿,Ð`ÊLMM-X¤¥ZðñGëê…hð\ÝL £Aót7ÕU‡¿¹¶çCš|H=ü¢›® ÿ½r°Ò›Ý¥ùL¯Ó4ݳSZƒãÂlÝB“®£®^·Ý€áíKóæP/´aÁsõNƒ-,~zƒ05ÁOéž•šOOÙ†í¤ê­Ós4øE÷lÇ…_ÌGs5 nƒei.B4×q½T#|ÑnÐ…•ª7<ÛraLÝh04ÓAˆm88ŽÞ`Zº@€á–Eozº†SÒÍÓ€™àç]ÇHÅ1i¬k-­žÞ ;¶cãk ¦‰‹§Ãl ×HéNƒcá_ÏòRsê`‚a­ÁŠÒÇt…!†¦;@´Ý6a›Û³ øÌЖ @Kƒq-=…k‡ëß¡?n¿ †ÛøjL]˜ B˜6~G³-ÓHŦ8áVÚ|ÇÂ?tXXÜL§A3uØ%ábë€,€,€½ò4þ.'éx†gZp aÀõÓÖá !X M1ižð–î8ãj®…ÃZÂ2àKnƒîy_2Jø„>,·áš°Nƒe›&NÜtlËÆQ Ípð K³p¸Æ8 +Má2´‹û†ÔÂ:ºð] 7fŠ C7à ‡4ä³€óà_4&?O8QØo[Ól¢$Ó…µÒÒ„F¤%,áH‚…^3`ÙLË {ް À‡F4¸–i"2@6¦Ð=~Æ„áKžÏN@lþ¸¹nL–¨ØÔaРHá@Oºn°&ð1CèŸP Ž +Кf ÐÓ4˜ ®{Då¸z&R,,.AKá¸@aÁòÃ;iMýÓt`TT‡ BžtM‹¨£Á6ÏA$a[-:,gÑ€üxE )µ«.RƒC»-$CÂuÕuG;Ñ9X NÃu‘×ÀŒ\SC2jãÉÃΘcÚšgâ 9!Ƨ`Xa"W„³FŠÓóú¯fð*ˆãið¶×¸ðQy,7M ænÁ*ãÞåk‚؇) öÆ6ñxÃc®çŒ`p^Re›}úZŽaš4Ý3‘fчa%t[#Š„—ißl [欺Ü{àdÌ5fÚ.±9À¸rd€¸Ä£‘ìâyš0bĬ‘“]Ák.î.@€¦]^ [‚+ÄóŸ34ËáÏE¦~ƒ‡q<¢)ø„c"’61N@–%HÆh6žgÜ%6:"‰œH¸GÛ  IÜaáxÊE‡ÈÅ€,\f븄†$PÇÀuÂÙêrtÃvc v +ÈÀ@Ìö­óÒ ÷ †y¦®ìúÄ×0²Òð¶‡iÅÔ<+®&ðØ#êC.,\hr#.¥–αá7ˆ¨ŸÖV›@ÀÄ<+0Ȓ߈á[LéÈ %(ÀAgD¹íÒÈ(ñ«ÀátÞ: ~Mc%Î'MÙ‡'lúGÛE*DÁFV«ãšX¼åÀ_M:Øšf*•Á#F +ï9•]¿³PŠ#¢‚`D—8‹~7 Tøªër°È’a-péq(€¹ +˜„“a²ÌáïÎ'í VÅ£cgÑ®ÂZØH¢ð”㺚‡‡Á5ö1fš<¿$Ðp P3@1XZ×Ñ–b*ULéŠjfš$ |f$`M ‡_ã]EyÊÜ´:s@Œ’–iKyhÉtaé\—¿^·ª1õ$J="CÛ†‡˜äXÌŒµ+$B N(B@7ˆi:‚!Ä‹i]Ý5è=XGÁ ´T:˜ƒX¨0ÂÁCTLB+:‡("e'´‰”XWxøiÍ£uNb % +M³ìZ•[ÑØªGv·ÓP§¼Á"ý¢^ bãÑ[:‘¼dX†E:+ ¼Ÿ â’ ët–+°® Ø`‡@ÒóQ3,‡´FKb"ü×ð„T|MpÏI'À#6j_] + ¦HÒà;²=Ï + Çs]i_ŠC¾ãyðذY !º÷èê+( +"nÛf +ŒÀ‰ÀX(P@1•¯¸ÈŒ`µ]\'àò›-¬—‹OõBâ_ø„ÛàH h“¼€E‹ßHËg.jÄÌrœ«aÓžF©ñ†)483¤È"3Œà€”¢óvꤾ#šÈº€•ªˆ¼ù`JGz3l¹6D‚¸ó)‰À¬PC±ŠF/Žm'Áq@+&Þ #»öH^YåVçÇ T´/‰ú`ǺèdH`\QT3ˆXQ­AkÌ$µÔ H¸±"¹#l&ƒLä’@µ=ƒ=Ò³ âİtTI>yü%åÚ.˜>sؘvu²ü„Ǫƒ¥k4aËJHiH娖ü6’~ÒÕ@JZ¹íJz1È¢>l }]‰ù×§Ð¥W’9,šK¦ ¡k™ŽG'Pò š¯—ŸAl–1<"¸fˆ8ɬCËòX2 ôKÁŸIC²'ðK ¢"ô%Ž4YÏô%8ŸÂ„õ…g -˜? =Ö ›Ô=‹¨yn"-ÏË­FZÆ-…u&f¤‚ ãHßFx¥nDŠ@Ï ãѪ3-ÂC-ÅU,¨ 99ü]¸qtÆ>€çœV‹\hÄà±@y ¢–&Kú9ˆÛôŽÅÒ Í7פ„i$Ѥ,¿÷&¯0  ÓÎ=H}â{èì¥ÕèBQA²=>.l!ì)úŸP!ˆŒ!GÈá +dξ ƒ¼§,Æ,RÑ!G.Ô´qõHñ|+F=u1k*O‡! êâþè˜Ç:êÕ¦ b[HË@ž$ˆ/²õÆêòe &ì’…ˆ„.z¶ð„w5Ó¹¸££ë˜S›¸š ƒ#:hЃ%L³ªG¦ƒhÆöê†vÄ!S]…hñ—ÝÙØ˜MåÜÕ1§vSYÇwØ9>€BY®•Až2blÉÃwu›d—o÷k +p]Tu‹µ{ò0)ßZ7¦èn$Ó„Jû¿M¹¿Àëù[¸ñVŠ-Èõu7—WÅ@²îªã íÑÈdƒQø¤šÒ˜‹M +¹ZdêM¨ü݉•†‚ÞUžsôI¡.67Å€X=…$,4ëA¥ÖØcBŠÏ°$Su>ôm!vè‘gAÁá†Ô`ÜÁFÙ-È÷JBL#MÔ¡SÄçl> œ‘ ×`F5H°µ °ÈA Á3Oêjlè$Y +N q tP’XR$o®ÅŽ„LŠ|àOÙ$/æ¨@_‹ +XìÆ&­\Æ‹Pí1‘Ú$[pãèC0)þ2j ¿£K_¨ÎïÄ¢+pH¢˜hˆ&Æi,³]M7âòq¿Œ¥DÑ`A,¤!«)ÏQîoÀŠ¥ÈÐ5r²H"$sMzJ†\" Pv@NÕkä²L%RGH R\SYºŒ.Ç@]¹Y4ŽV&"U.n n Ô‘5‹†Â8Hƒæ&jÂ0\Z›\†88m²y=ÿ¸›6³£H¼j ®lT+ùŠ™2¼Ïv 'ø”BÖ*îÉÜЦ²Lt ÖO”ƒ:mœAnOÄTí·éQz`¬<¸„¸AÒÏ%Ícþ°!XH‹ÂBÑÀW<8‰æ4–ø„ÃBèFÑÈr¥H•É‘Ê@J9{¾OE¡t¤xì´ÄTléoÀh…ŽÚ眷 ï<|Øe–fJUç2ȹªó*Z¶tT8”Ñ‚¥‚.]2N6­bBžeøW5ézò‘Y”È0aÈ`¿`¯kÇE`—=bšþ@$ +zJéc6°>L> +Ö˜2gE^?–Gs—+ƒƒÊ$ÇÒ9IEg7} g +FW&¾z±5ÎàJš#Ú°$#“!2üHï ÇxL†xXØ3Š!GŠélËó7ÉK©7È=6XlD—ŸrÙ¹ëùqM‰Ëãp LK‰“Ø®ÜPG +´d€Îw« 2ÿ3¤_ ¦MîÛzðÝù=µÐ»ƒ|Ã’LÖÖ †“–„h&ê-ìKã°%0ÅœQÍe²ã”'KFQe4y ‘®(R§ˆ†hSÄb"Žy¦®ÌúÄ×0ºÐ +v˜Bî3°9Žb´Xr>™DEq.‚Xœ~€6­&*­¼‹Ñ ì@]™Ðm<¼ ’õ¹J¡‘<ÐU¡dÐ4Rl?oø‹E@»•±oƒâ«†FR—ã\1-´¶É! ‡½¶(„9 (H¢‘kWJÝ,àËSCš‰‘U˜öËh kb¶åáÑ&] M#Ûa½Íba Ogêʱcaîh(¹o,ßFhêÊrcÁÞhD˜W%ŒŽ¬Ë…µ]©*L¸ˆ@ K|]?>€ÔØL—F’f…ƒžR“œL¹‰Éà‘ÓW:ä¶¢ô%ôC𚳋?–¨ó£yÆPHW6Àç¦6ÁP bàœôâ™ÒОC§–Ó"[Üp™¡g’\ÑäSq¤¾$|»½†Ù¶äùäp;¼M]g§Q˜^†M!õƒ°žËO¬2X¶¼poQã2(„~\$5Ô::ÒÓ:œÆ¤EF=ÈËÎ'ƒ|F2)¸´‹Ü&vïP‚6k“²Î/&=ŒÏˆÅY¤§â'EIãÆ¶H¹l“XF$Sb .šK˵ˆfY€j'åpnº- q°eoK²qYª1¶ùmðÜK÷ŸEž‡&*𻱕' ­ÅŽ-õ6[À¡DÞƒü>ÇáX•&Iƒë$'mŠ2#-bˆoY‘ÍŠîfd¿™\ éŽ$W Î´'_‰¤ñpzI$Õ'– ÙÂË PÉ­àHîÐEɼ¤Ú;%kߥxÆâµr«Þ‡ØFE7“(À"»Ì•Š?‘šö¾&Íh!nÉz‰åÅDRgxù4º\%„$MŒ3¾x5Þ ráêRÙdrD¾NÙ‡»@Óuj<õäï• u hWŠ‚æ˜vF +E!r\?BL+ŽC  V•œ,…Y¤ +D÷„X¼!9&:°4–ðh›”)Â…3d‹ÑßAU±Üø×Éí™a ‡(žìs!_%S˜LÛäú¢•4౤Šb„Ü“"û‚±:E·b9=ä팤ýÄƒÊæI&¡¬Oöá! ”£Ët}…Î+Ÿ ˜;ÇÐÊXÉ>l!‘ñßuªšÂ0%OƲÉo¬[¦ðpèD®'<~Štº29D±4£X"R4Y)SrÊ"Ýzæä ‡É8,kHð/ìzÖˆYkLÛEÉm>½˜<ãbŠÆ&¬É⊴ÐÈ®IÅÖê†L%– +ûh¡R~ÌÄå´4ÖÉÐLw`N¸@ _ð´ vzìÙÁЬ=Vb3ÊÔ•›u¯0ê{b›rñ°,N†Ü0`¬çàŒ±Á£ò³30¶ƒÇ#’Ç5PÏó +¥]'ƒª¬8Ž'QyòD£òãÒÁ õ u%$G—ƒ+¼d½‹&ã–š²Ë,©û R„_3e`ÂöÓLLNK>"C:–y +§\ÒX$«,štMKËB-‘C5X°º˜"AÊ—îÆ½2uåRÁ¢©bÁd²ÆXºYt-nDÁ§Åaß^—wµŠì½²©B´Ü*F×9ºÑ N˜ÑɆ¥ÔeJ>Ñ1Ç]×c¹i™ºhöZ4¹-œü–Á—ŽƒC©„œˆ¢Q|Þ0¸4¥"%¡iRØ„Âõpøb¹h”“ÎV‹f³EòÝhÉJr%ßFÅÿD‘j7.£@þêòy±ðti¨”pœ–´ <â"š2^Ùݸ뗵D³Åp‹]ŒÒ¢•¢¡Þ†áxtXa%ŠJ[1¥;¤±.ñxMrƒ«éD§‡ÙÙG0‹¢ž¡„¤W¥› ™í¨‘¥Ê\JÇf¡‚L +Ín[š­‘|¶ºXÂ[8.’.×[¤$?âY§§%-º.ŒÑsÄ@2 Ω"è F._&W!šÎËwˆåDdà¨ÉŒtú”¥ÒÈI¬”žÇ!aLU'§%7•†á ý##¤Dóʤ?“UAœp¦ü5to“Ÿ8¶P$°fý;ýuzjJºËãz¥Í†K~6¬nq½”ÊŠÔÈìpÝx–]¦.žŠW&[/’“…oEò¶b™]±ì¯ ¦±Ïþ-S:£ óe"ù8øR,g'–ÕI²¡dŽp"N,U'F^¸=Q +Œ‘hdwð› JÈB-Dõò\ÅÒSðpK,Å¥\L¹l™xFM$W"SW&£"žuÍÌ „éj— Èäú¹p0Ÿ^‰Æûã9Ñ85«­LI– ;‘êO!&‹’ç¬2¡e²U¢èx:Êæôr `á¥Çag]“,¶dcñMz+J#4ŽoFÂlåBqá0²±`BÙC80!ým¸v¨µ§Û‘d‡^|·qᅩÄcñ8B<Ú IÄ‚aG5ŒÖYH§Í‘|Û;Š9{ù•¨C8ê1;•é@Ä¡¤<$]z†Œ'C•E}œ´_?hOiØeF/1´äÁöN9¼–Tï¢^$z%âhŠz¢"^"øˆ£¥Œ+&ì Óå‘ÇÏ‘Õ.ä@.àP6¾·‰eÆPÈnŽÖÓ½(ñÊžpéO¬,&S5|;ëÊÇ:fe#oÌ8„\ɷ퀰 ‰Æ]ØÌŒš¡S Ùv¬Ú%R 6}P +…£¨ñ5 P[ ›Ë"¢ÀfH£Erg3ÆJ©d;S[¢ji¦.®¸FÛ°VG +B¨”"ZjQ®#Z®-çÕ{Pž3)@œˆN™–,ôJ¬mK´¯KX?”¶ïÌV€ôÔ¤ø} +•Ø8[£6œ"4ØË KÙÒ%Ú!qJƒF =Š,a^<‹MMLBf¿•…•8”«hÈÄ3›\çØÐEe¨;2²‚=9l«ZùÁox†Ì§&r.¡ãqµˆÌ›(¥R«ÕÓ-Û ½"«t¤ÛD^FJ]P¢€@މTmsÅ‚€è\4Ç0¸„ð¦:?Ë”Õ'M%ŽiH#@®äÖ˜³g0È&³Q-%?EüL#Jså›RQÀÜX$lš†Íj¢KŒÆ¿bÎ/FœØý®Úxê¬ÑQ†¦óúpq±S›Ö3ØïIj‰NÛVZ\|ÒÄã‹»¢S¦ê!TýŒ[RÕàñx üȧ)÷i@jŸ8]dH&ì<$µÉ¡·e5 úéH%¥T|N¿ÐH8Ò‚àÙ†Aþ*Y¹%T4Åf“­0¯¥ÎNÝv{jÞ\ÙóJ7(¢.ljº)mm*àp‘Î~ú.€2wHÉD]Ò–ôSZ$!=Ð!ÃÔH‹žQ£øù’m A±aP‡9jW¬—öC%ó||š°'‚‘Ìju¹ZŠü†.eSkxú:üsè/€’¹`·´ÓL5ôge–ÒÀ°7ŽA¦³|ÈgJâJ   XL¤´A¥^—ÕaP ”bÊ÷0\4VE‰ZÔS:ï,ƒ0¬¡A¦TjC/òSjø¦øiÛ`"WPðØ# TZdSé)C¦jê3†@ä€ ¼§R£7Å?H³Ð©w•B‘£œÎ{Ÿ”§ª©ô”2I‰öÍ(L#‰F3óßôShŠ“Ùµª"%“›VaDQ:WOëœb×Tzm!W9]ÕI„`ŽÇú­ÿ®zÌÿDS™Ï6Q;ö ò bN)ù|tšügY‹1¤„°w¹ô–zÆðOwô[ü}Á 'Qì]Fa@VÌtYÀÓTzLȬk_²öµ²7S/úOùã7•ù&kIžTf×MXrǤB1ÔšwÂ’‰ðÿ™RÛTnxZ¦êƒý]¹ît1Û’š^Hw·eËuC š Ó¯ßU×ÂíQ1ö±K”šìMª` *Rýþ‰ú8ÃÑYÌ¿pV •\HH}ôÕúøøœ Á@õzéõOZéW²0]N§– Øå>3¹Öã¶ÙÝØª¶%ÕVH·ä²ÝÅ”)n§…ñpôÀEÖzjrÈàNýBu`„Â%™"?øAß‘ëy<ÇqzXSóºbcëuªËBÓ$ìäL™‰aÝ«-0xЛWåô&w¡2ß @¡ÅD؆ç¡×«ÒQ<´mõíÉq\ÑocÁ‘vkƒVñ¸˜¥ + P.Ê[õ'CÏ*a:ÈÁɬ­Nžü ¤|]K(_R>úR0PD> ›'zA6hŽB·Š‰ÜÕÐçlƒxÓLç¹à8´’ß<šw™äë+¥ùzEôõ7^z‡èxt5‡'S–ìëÕFV<œab`Â%Â'¯  ´%ªž‘(zˆ,P]`»š1P'35 HI¤²3È Ïª!d鎰@£t=Í,/*¨ËÔtáṨbh°ø S½Vö U½>›ðÏPPÅúN¿tuÈ3ÕÕ´¸ÒOv8±]Cvi%ú³ÞâÈY àÓ15¦Á Ûå*…à”ü ~ãdãÐ?ÖGß®/÷‰úØDêcs `ÒXwŸLðOdW]ü —9çñsÚXb´N5Ðû¿5Ö…˜‘Ï”J/—ûBl1†À¤1ˆVûóÉÏÙ`·5äö,9úSR~ŠfPm3KC—‹™TðÎÃaꨧ¦Žg.Ü‹§ÌŒè²MXRñtxÔ',¹9äá½jÑŸ°äæ`Â’n”C“ºñzÕëÛ€ZêŽÉù|'<ø nÌH‹ÙB÷½ÝxiÙýý¹¾îdÂuKð¡¡ž|¡8KÞäQ½19£ÏdûúRf3E0%;¯oKjUÛ’Ôü[|`º¶nÉ[.À7„ ›ln‚J©€ðT7XKr.ÁNºÄ°\®³¥QëÃro h¬#ˆfù&‚P`_BhXË* Ð\@Í$ðwš¼±4 #ëxÑõhº®b^¥^ޮӔiÉþžÑ0ßÁÓ^4gœ{\F=Ñ1mÛ54Óªx0[ÃõXSQ–=a×Ǩb8Å ®gÛ›–]ùhŽgcžÕõ†«YŸ}^נǢeïE ú ÒåWñ‰[‘HP ºàMÒœ‚-Sž5ÿMŒ"•Øž­ t€«Ž‰ÀÄÐ Ä? NH(éȵ4¨Â€ºÃP¤YÐã®§Ñä!¡ò¬ÒßÕ™“bJèûš³¯Þ0¸Ñ… åêhÅMòÙQ+%jy¢1ƒf×4«B{ˆ&hl ú,¶“ѱš‚ö_Jw¬š´Í57ƒy:Œá÷¨_òpyû¤”¹owÙ ¦½:æVrkz—zµ"ë?0GY®­K‘_L‘åÖ>X"dRíú›+oÈ̘ßA±[ìX¯™è$w-ì/‡E5•¨ØÙEú±¨çõÍ0dÿCL;@€i£àÓ¸°2Cm·…‹1x†À &XT ‡Å‚yaµÖ?c’˜‰m¹ˆö±¦„Ú8Wc@kÿ° Örƒ€!oŠ ¤NjÏQš…}.tŠsS +>W´Óª¹&Wp>‚0ys%±ó4ÒÑmb‰uºüA¥S«‹b$Ô ÚÀ¡©G=GÃqÙ„ÍÜes<£Dþ²” op00TÏ!vP±¸F}cLGuÀÒ9NÖW˜'ír‡5“„L…—T6§Ä ,Ì­/-Óc¯!„,•§Û=™üI0Ÿ<_†!Të=‡+W`ã±Ä×È uŒPú¤Ê¿ÛðuuµéÌötOvrg¶»ÎXûƒSø`Ý6©©©ìCSÓÅLû¬üälk¾ ám_w¸ÒI½ ë*pÃÏNž<)“éïz4_LãôGZo0<‹zpÊÜ.ÊÞ¤û( º¬Ò¥¶çš¼6Z©xXs(‹Ïd=–#[‚»šñIÂÖ“T|†•’žƒa&CóøVY‚€$áʆsØò›î±q 0J¢Á¦#.öÇ\Gj¤‰½!\JªáÞŸÛ¯q}-¶!K JÆ¥Ë@éÎŒ ^*,ƒ.¡Àn¨TŸ©[t¹ åoaù-¶ÅNÎ&ˆ`Ë?\ªÌ¥raCsalC§,{ʲÂvK Ê®Û€©;âv—0 *1¥»-°‰¥ób-*Þ¢ÂÉv\êëÀâ +Wø–„ó­„ÔPp,yŒàQ‡Šm1éŠ[ôâ°ÀÔ¨&ƒµP›¬´¶>stream +q±É/.,õu2ø^ +nmáZA¸ÐNm8ï +–×™Ô_ä³Yª£>ž®35(Ô¨^ZgRþMi{Þ´0È\¦<½:Ù{®lv}øèR3nu@_r¸ÎŽZPRsa;sw#X:n†…¦y3t†¥NVÜA•ú¥HR¤ª +<„\œ¦Ó&Ê{YPÒX–Ë-8ämx:uÃIÅÈi;ß ‡ Ït8Ù s]éJê–¤S¯[^­¦«FH:_¢$á‹-†4S 0­NPÓm®Ê¥pžDͲKø-b(ÙûGÈVhDzÌABRr¶àŠSÜ(äŶlo…AIËãÛ‹±wŽÀþ»0:Ý8Ç…½‹q¼Ms}©¤ABhØ^ŒJ/ùZf>B²=ZI›ÂœX‡-äõn}I=¾<">‹9ët늇hÚ:Wn†Šé9|­![ÃmOñJBvÖËFÖÔ¡\k7IpŸaú¡,h SYÙQ¯Üòs6¼«[zåÑÝÌÍùx‚žské“G³_^Õ£¼ë;ç‡ñ¼Oj-f ÊI?¼¿"ß<š©`èºùæUÀQ—…©ÁxHòk©þ›UÈu¥¦¦ }©…· æŠí)¯~fg.“]x{<‚'3“+­ýÓ´”G t¹ñvà¯MüWúOS]ä×ÒCÝ” ª§ø·-xfÞW,Ðb-”ˆyÀoøòsb3|œ‹}y8Ú á¯lZ•~¥î$­7¶A§ù¦X½ü:üÀ‚¦X½ü:üÀ LÊ4¬Þ F~~`“6t`õ^x4Cÿ:üÀ ¬—6Ï(m^`4Ý ÿ:üÀ6S…?®^Ú»À`Nè·áGupÔÒ¾•¶ÍÈ +þ2ü€.¨ûÓô·ËFwB¿ ?¢‡# +AuŽ¥‘„úMŽIyu¨±k¾©F\yN6˜N‹‡¿õwÊ¿z²b<õè ëÌ:ÜöÁ›ý@_ Ff8® ÓgÐ0ä[ñ,êYC†ì,@Ö½DžÑõ‚² ù*·hd ùýh«7…P›k„×ÇÉ-j ~Cõ<–-!¤Þ©Y¨7É0¡Ù +ùM~Èò\;ôwS^ºáCLK¾`¢jçZ †BŽÄ®‹sÛŸ"ßMˆ@i«!Èfî–ÞT ¯´,% »8iÚ&“õY¡n¡Cˆ&õ4ZÁ‹0õœåðsÜP‡—”n µ–#"ÏQ:ú÷ßEÈXé¦ÿªCPš¤n ˆ´PÙš£@.¯£PWe дUØ=ùU²J äy&ƒ\KÒyâä«Ô­ßµ¤—† jÉÉÔ¢®Q‚Ћػʊ>F;Iã“Z‹û8:ãDê‘|ÓÂæ¯Œ=“)C1¸lÕt•@&'RÊW} m©Oð¯®Ù ³*LjòD™‰"ç&øMa ùno‰ î| O>H¾Êw¶žÃ>e‚?¡P ûùÂmëxÅé2=R·K‘ýBó0Ô–ZD•fƒºA€€”,„Hhê$rcGqÞ‘›-Al 1ü¸t=u]ñâVŠB…Øù”oŠèstã ŽÆ7®ÒÉ’ g¨B+Cí´©²iDÁ21ˆæø‹äåå;4˜Z^KxꛦÜá–ØnËÅ$–ÊÕäWuŸ§q/N—-L‘<¹¾Ôú…—Ü–£I@¨‹·¤‚¸Ó”^€@MHúåß\ª•tIa¤¨P'R +>gÉ¡–ÈLäÔ®5„*:ã%‘ðU:Ywoƒ ›AäK’¯J EN69˜Á||ðGMux=º|û'²y ¹sò 3ÌlÏ0KgÆ0CaÛiÁµ}¾M12@šOùxÑ”qŽâƒŽï¬ Q¿-¡R¨ëxHˆÓÍ)Ž/Ä¿ªæÛU) Uà&S +G0Ò]Áerâá”wJ åA!Ð?Ô²A| X6 dDðJ ‡ø‘c¨Koˆ¡ƒA¯&Ä €ülx% œŠINïÐËÕ¤O’1±t¢©¸þT°Ÿ¢œ²âäÛ'¼/±<Ÿ•ø0¡„_N‰ M2loCj,®0@§¥ž‚NB"Nh@Š Ï(îÄ aÃ(Ô£€vD© +ÈæöÂxË“R”ØÓŠ _(|a)/”A$Z¤$F Øh¨±KAÔ•AŽÚ+âÙ± Ÿg²Ç†««]cÑ20N–Q)âòJ Eªäµ +½ŠEp‘ñ)¡‘ç¡»%Åa˜m)ÞBYÞ„“áF@AÜK@ÛRb[®ù,ù“Bî”&ü忀Mh[äY n¥Üù …;ß&ÞyïŽÁµNÉ4å7ˆÛ*˜.éÆâ˜DSq‹@A‘^LR]¦ÍD _Ò‹œ„ïôC&¥ß¹¨@òU¾k8ôœÐ#c FAønÖ©¼ÈÔ(ÄØáJÚ%D•VhIþ\¾Ä/´v&ÜÂ!Ý@…Ŷ䞙¾†*—É–O,—ÌÒ‰ã áà P*P‘ަÙ!âÄêz„†•к)oF œ“3n‡Édgqø8™%ª-½ìÿ |»\èT›2›¿Ò@(‘’ÐRÚ¸‚±÷a¶\pÎÐð$ìåaGy—ÉIºÁät”ÐöIÁP ð‰é°+ vÒû¤øÉ 8v‰å‰@O 0æ/¶Ì1Ž€‚©”†±8²uÅ×™k"Hø&*ß ŒT +fMrrì£d¾Œ3W LdI(±ç>µQ A7(Gä+ ¤˜$_\IÓ+Ñ„ ¾Ë„†â~|A#!«Xs X”Ð_HY–^ø1¾ˆA~°É¥°‚D@c2x"*RƒÊê4 Cí))iò#5Jw1]?RcJíAÂ÷¯Sö9‚¬’ÚCJ/Âd Æ”Ù¥¸Dš: +éÈ +ä¾íFžc³ Gó|KÎ–ËæjLµÍ®¨A³Íä1ŒÄÔ€*Pc6˜þêZ*Â6­®`Hž|NS:ÖóH/q7Ò8äjLYJgº~ Æäì`ù1?¾WAƒ'\ +ÔPc½éøK +¤Ž …OCÏÑÑ4šô“X2ÂÕ‚íȵ“‘KfVHEj R¤Æz*Rcɘ”éù‘K*Mtt=¾ìÏ@Ž/u[KzÙ$C0î ÕðzçLºŒˆA>㦌>FZÉ=A®dxŽ:5¦ÍPöSX oÁÌJŒt p0F®pð%tô\B¨+=LÃTÔ5Yöá9nhþ¼jB¶Q z <ÕêúÎ!ƒó¡—•\TŠ£ k´äLÔ6c‘µ¥6K—o*Ñ£ÇÄw¥`ÒáÄgJÖ®«/:†”n ]²qåäXžÍé ÒXS ù&Û› +¨P'»”è^yáTlÈaVde(ŽlÉ/³Vâåè–ŒJyñú ƒ¦t9!þN€*ÂA·jJþà¨Í¢‚=ùÎP!wÒi*¤êçúŽU¡¤½ +qh>*Å8¨¨1ø.&Wk^è!òDJ&‚ÐÕs~ƒ«G-äðAÁ G ¨\Dtï +|7]-Æ+^r7éŠÕ–‚z‰Ã)[ˆ–ËÉu£ÂŸðæ2q‚T›’½E¢“Ô½,äK@‘AÊ(‡Á×(H†Œ’bPŠràe)¶|NW©G, ¤ÒfðÞ×HSŠ£—ž“wŸG£:0þªáUi2¥Éq2¡`K¸ïBU¾é*Í+¸(ÜB ²|tÛe è« þ†H%Õ z• öãèàµäQñãï¶¢Oç‚åK”ÇL4DŸ¶-‘Ò1µ|Ó»ãÓ±*8À:Q¦´BGÊäJ àËfà¨ø*ä ŸmSªë.Ýs„— +t(H0ÐáÔ~Ç™CÖ„_”g,¨ŽR}oð@™TmÚ? ʉÀ–ÊWyŽ¡ÍGÓ\ˆ36Kr-Ô¹_˜tèxAgPà +ÛQYar“•€Hñ×Ü :J  §ßúÞ4]ɧR C§ÆHTµËÑ)]]ñjÊ] +Éfÿèx¡ä*•¾,›¼„Å?— GÔ‡4Ù:Á݆”G(Û9~VcšJ9)ÁH‡iøN é®àf>¾ç"ð«iÜ„—¤êÜ„—D5Ä0ì€Ê¦ôAà ¨l˜l„Ä€@ßЖ—œ;h’C½08xÀŸås~pŠo)BO|…¼ùÆ +õyqBñ/¾Y8ô2Ý]ÈŸðãÆÜnÈ ¨A‘8š²"dj˜Àˆ)r/Ç¢ôgy H1J¤0œÐI4¸´É œXY`íÎ5LjÈ·E ¦°'k¶,7§ëåÃ@º=RÁ‚¬!>#3tI!†çñ‹¾HV4‚|æéC‚,V•ÊfrÇ!„8¥Ü3›çäêÜ >÷Ç{åä˼:ºRäEþôCÄT·|Ù¥¼—Ð'8„¦@?öÏÍ?/•!àƒB±t¨âU.YñãU—¦%/¬\ò$…¶Fž¸àþQe«R¦5qúÈÞ³;ÃpByÜÇÁ°C©)|'5•Ò†-W-þ²Ò‹,™ hØ¥ K¬LùœT³,ÙK€@š4›uÝ +€ä«TìyΕ4\ý ôU£dÔs%pvìî!l‰»2®Ê™EAÌЪ`—]?´Ä5/¤Œ‡ÀŽXtÉŸÜ7ÓwÊÙŽÜß’'‚õ`¢VÛ¬ÒÑSj[$Ž4TÄgÉR¶‰âW 7BÊ8;Ý‘<&’;Vè``.¿Ð#§ +Và¨ÉðI·ôré´øŸð¸kEð€Pèr<ßïâ1´}½- +.@ hËUçpW€CÁ<Èïbdt\/tª”s&´‡RŽOÞUÛ~. ±c‹ëc@²¬ü¾«;fH +àT¤H-I K6.ÉÑK‚'òT(™%Èq‡Ý¡t%¡+î TŸ–LG YKfí„$´z‚Ú’Ùæ¡—9Pî,%¡K›ÍÉ'¥Ûè(í;œÉ]Á?¬Ë4•qPé"°©]AR€ Y' 4Œ…ˆPv[“Œ¨äÚðÛð]%HÀµáUÔ"0˜fóú>JyÊA¡&'ïÇ&$ ø't- þ|Ø <çëØšyÙEßvøþA +NEÖl—¦lÈœ°bP(ƒÓª$W°R&¬LÁ„Y®~ ìªÅí Þß9ÑÒØéŒ|yæIÚ%òTÖ·‚ˆÉ1 €ÒuI˜,?Ø`“ŽN€oò9¿‚€ *¤i_Ç*¬R~J èªäL6±CZ-›‰íWçæ~A-™#n!]š®{óÒ¢Í3»jÅ€|{±°ÙøRøÀÑ7¤œ}ƒ›º¾!E +¥ý—­èÂÅÎýñl¿fÄ€ÔW$0 :½}q¥x%»ñizšÏfMaÁq åó ÐSä¯Iè3r5˜ZàÀ7Kû˜›Ú/ô³Gø„PZHœØI ²(Œ¿FA^’n~rG8AÓ(•Æ¥ÒX½TøÕ¸™ÚÛª?ð’;„OîV,¹CX±äa•IîV4¹CX±äa•Iî?§©¹…“;„U&¹CX±äaÅ’;„U&¹CXÑäaE“;ÐòJÉœÜ!Je¸*iCX±äa•IîV,¹CXÑä2ù)Ì”Ü!¬Xr‡°bÉÂ*“ÜzΖ‹Mî ì+’Ü!¬Xr‡°bÉÂ*“Ü!¬Xr‡°bÉÂ*“Ü!¬Xr‡°bÉÂ*“ÜzŽ“;„KîV™äaÅ’;„Kîf™äaF“;„Mîf™äaÆ’;„KîP å#ñ©äaÆ’;D°W&w3–Ü!ÌXr‡0Ë$wø¾'&$¢-3–Ü!Ìxr‡0cÉÂŒ%w(Oø¶yŽ“;|Ÿ`É'Ìxr‡0cÉÂŒ&w³Lr‡0cÉÂŒ%wˆpi*'w3–ÜŠ£ãgQSú†0Ë$w3–Ü!ÌXr‡0Ë$w3–Ü!ŒXr‡0Ê$w„žãP 0cÉ!\Ur‡0cÉÂŒ%w³Lr‡°¢ÉŠ%w«Lr‡°bÉŠ%w«Lr‡°bÉŠ%w«Lr‡°bÉŠ%wˆhnÔvfÛYëKæ)å°íâÊÜfÌv& ÇŽBb¶³P¥Ù¡Á¢¶³0ËØÎŒØÎD”aÛYB¶³†lçÐËl;‡>Á¶sd*llâbPÜv.­S`°ˆíZse;öFÙΡdÛY‚¶³‚u†aD;AÛY¹vB¶sè(ù±…³•÷(d;#0b;£ôŠØÎä ŠÚÎŒØÎt*ö3‚b¶3)qaÛ™ŽVØvV LxQâ¶sÈÈŠÙÎôÙ°íLÓ‹Ú΄FØv&döshQ‚ÀˆíXbe;‡¶BÙÎ-S¶s`c•í¬@Û9DÒvF–³#²ò:žù°TI¬˜íAƒlç¶l‡Ö¤ŠÙδÆaÛ™v"l;+Ó$d;‡vÖG!j;GŠmçñ(ë1t¤ÎµŸUv,M/b;û¢¬dè)ŠÙε+ µCû˜[Ôvìª(Ià¸í! 6“•zÆlgûÿÙ{ï…Fvdqø{ÞÁ“1Ù‘<ä8C0¶ƒ±Ã ÷ß³ª*©[Ýî¶ Ã9gÏîÜ݋Պ¥R%U•¤ÀYwVý,ªŸ%BÊ !ë¸ל?Øý§®ûñ)È>êëÍ&¥ÇB®8›)êuOo¹Àá-=½ÙäÄIÕ…Þ é‘ê)GEt/Ä‹DKtÐ +Ô£ pìŒ_A˜*¦!¤(SçÝq½Ùä.$õuÅÅ¡_äéÍR¡az-)ӜЛ¹:%¾Þ,T Ì߯ڢžJEþ}ž_äú ò ¹Þ +@õEz³É3o¨º¤7‹ U÷ôfzU‹Š¼›“/ÀW›a¯43Tr•ªº§7›ÜßåéÍPH-…Úì6tOm6éé,òÔf“»Èâ‹/b_èjLÕ=µ™¹õæ«Í&L„BÇWƒâB¶DÜ©.©ÍÞe\RjàD-b,0Ok¶qÒ=¥Óâñ¬7®5{Eš¤5K…Bk¶¼0¡6[ YG=­Ù‚‡~žÖì_{ê°ÅÝ™U-p“éÚ}I»vé´Jj?A(ò´f¸È£óä©Í&OUEÏ"ð=µú(©Í&× +0)´8“"(ÔS›M’ EžÚlr  +¹Þ —ïtWíéÀЎãyˆOžR=Aü=½Ù¤·%ÀÞ³Á µÙä(@‘ÞSâ©ÍR¡P›¡/]®5È|^²&É_êÑ<­ÙLQ%Õ'€&Q%Ie¢K2žÊ,ÞÅ·£Ä±µ Æ’Æ,ÞªBEÌŒ26@2kÎ_-’­J³%ް\_ÃÞ¸Ælq£P`@™ã‡Ð˜-¦Ïk´T¡1KE¾ÆìêBc¶¸qÎט-!?éDyKÃà§[hÌ–ØÝÓ„%ÂàkÌ $h¯”ê[‚CÏòH6e¯A6¤xXOF%U÷4fSäÖ=9ÌJ{5fƒ{Z¨ZÀ·Ž¿@¥|낸.¥ãîR:÷ŸW}KJ0¡¾ûH<ÒÓ#éa*9e“KQ¥Á|OüEÐ`¾'Þ-”JU9ß%°Tƒùžxè­œïÉc;~$­_$¹\ú…^Ê'þ”òÉoGÈ)Ÿ,‡s,2ýàº4NîýœOä˜,ŠÄú9Ê)Ÿ0ù:á¾ì¬-(¨TH6/UÎdqÒè«×–bHÔ]è[\÷”´uá¶ä«ô~‰¬ä‰B?çç@RÊ'KQhrÎ'K-=ÿm.öÉ™›Ä%FÀ½N1-©žç˜Ì9™ï^§rìÜëT#Ù½ŽbT9µ…N¨r¯Hv¯ó …{iLª&¹×‘7´ªÜëTAn}÷:Å'sžBîaª0}¸‹»ïò£({×QŠ$5˜øI0)ñ“æòý7=Ó¨'ȉŸø{¤r²&zzO•:Š+yd©žÍ·ÑïòªÁÔOž$ãÏŽ.¹T9÷“p½ ä~r„ä%C…RL¨¡T?¦Ö[æI Þ~pUNýÄ)E0÷“д¥K,K (yê‹$”ò +}Ô¯„ ‚ìÙ2M=„ð–‡ÈÞ± ckàLy7fß:ÕäéûÖùGÅó­CÝ"xºM©%³·ÐT$ß:¯Hö­ó …„'`-ùÖ©œ‡$RÕÖÜÀ‘‚K9=x¤ÀTÞjÞT1ô0•§Sà ÑcÓgoB›38ß»NUù³‚ ðgXƒìÂÄ—¬d®â]—¼ëü"Ù»Ì+ô¼ëTS 2<“D¼ c4é…F™Â]¨ÃunÏAN±< [:Rtz‚ùŸ(ÂOj µTÎË}{΀'¾Æ ò¥ +Ò+dу2–fzë4_`ö.4~…)!„ÆÓ¼HhB·Àé‚_þ‘ÑDqŽ6ž]É/‘.¼Bÿ‚ÀëÌ¿ ðõ­òÒä„õ^ã~µÒ±ÔxîÉÀ‘ 3-®Ï9‘—á +%€‰Þ|°RÔzüŽ®ªá}²]ƒ¼ŸÜé• 0 ¾Æ‹–Q¹Ë@ΩÉÍÃ…xë' +i’do†£ïeÎÇ´þ˜YÍôĈña6]‚ei • Ñ•9ß áèÅßs†¬B7¤mS1ë„ßR§2Jõæ#Š$U”¬Š¼HHÕˆX¢P%ÄÀ@c.|!E`4¦²s$ÛŠIý©^îF:˜·OÀÍ+’—ïú„6H’E@>™¨‘${‹Ð0¼7°3Æ?öK=¼¨$S˜Ðæ ²ã¸¨; _Ò„äª:o +¢f¨¿³éÏ ;–˜·Îc!a}Žé'à&rô©ÂPDF’”É¡&É@õ +Ɉz㻫zÆY—c†¿“ºýü#.ßqüÙ—Nyú¯1žP?ª ÄÐ…¿ØÞÛŽ*>IÎÊ™Jƒ—xÐBšD`Ò3N <~Ìðñ£ÇÁJX©Œ‡óg+Qá]â‰ÄÅå‹cšÁ¿x%ü«„’»ð“  ¼:ý¤sDÎ^ué/]ô©K÷eR{5Ñ3«ž…·vU2`øÚ†Šca§¨Gnã³åÝGŸ ±R/.]¸ƒxñÞJù¹s|ßä©,RuúÉWŠûÕ½¿D%ü‹[]íDÏ8|¥ƒ°^#Õëe‡Wÿm[]èOäÔÀv‹QÞ¤¥Ê€S|À±ÏH¨©·_o#Áíæ{Ĩ‹­PfØ+ [xMV±+ƒ.N¡‚ŒlÞöBuyã#³Ñ%¼‰*ÐΛ;ž /°ˇ€„9Ä‘@ÜW¾*Ùpž>=!¡¯i³¹ëºÉUÕD«¼M€êòG4f£K1$Îÿ:ÿ™'bxã×¹ù²sóAÍ'òqûß˵b™ÖÙHòn1Ýêäª%½Øú3±ÄŠ”Äb¦Ñ¨%¦ÓÛªyXý£R;¬´+¥ÎÉŸoZ¾^|¨U^+Î$æYmÕµÁno¸¦¢¨ ªšÎÖ¥*àÖ㸶¦Øì,&l=:+ÅÚ~±ÓªþÁZâúa±Ó©´êîI­Zªœ”еjýi³U-ïŠÌÄâv½¨,ÃìôÏf…ÏDš·¨I“ÝìVË•¶W+Ü]þf£Õñ;ZfÿqÓ3‰Ë‹‘$«¨ÜåëeZ=þ6î2lu^2}Î`Óh%جß*3àÂþwù;ù…tî!JâÉ{ƒÕù“ýØa¼°"¼H|¿Qe†—Ç òp+Ç‚; ²(*\áxYÊMž™Ä‡Ÿ¸_.^¶‰VY[¸o:+s ‰@÷=¬D'´ðhÙ‘G6‘¶&“ŸåУ~(+§4®],\Ó˜:àâ°*•³§B.°´þx ¯õ, ²H³ÙÇ©b-ÍÁ‡@St)g¡S>6ƒˆ|„ׂì˜6&¥óÑD¶$\ÉÑßâô³#pá„‘”0žaZ ;¹û›$^óA>¸ ²àé Ú`|\‰Ø Ì[„¯b«@¡…¾D¬Òã’Ù Ü·ð5^“Ra€¯^¬Ú¤"q­‹7M¶KªOvDÃa3ñR‘S ÷RO)ù9h”ZÂ1Èc 6Ó™X‹}2 `†R‡‡œ2ð¸„%š+€ˆI”|L2šœvf‰bÕñaL¸–•ƃDWxÅèÀã/ø¤-[#:÷³óÇ8˜ÅC ŒçzeŒ ’W™ÊÈ (O·ð{[°BÃ,¢–‹ëc £$*„Áå“ ‘Ø ¢_*6©à=Üy³mÑ5Ç+âý­­ð«ÅT$7 üß¶cvàvÊ0ùƒ(lø'¾r…ìÛ%¼,…o¥;lºÀ‘³ÐÈÁ„ ,„khÜ·Æ— ¶ç†p¡ö— ƒc€­íP˜‹!^{±áé{ Næ ¨GÏ:ÂÙEø²y=-Ft5>g(° -á7bØÏŽSv„†œ±„ÍÌϽÁýl| Óe{±’–ÉŸü€Öl>–Nm¡ +CKã©%êà2ÄŽ‡Ês Y.e ‚Wf1fš¸¦›0ḪÊZ˜ÏLÄÆ‡³lŠ\÷ì7¤|0áålÀt ¢÷€¯š@.ðeNƒàfò·ë-pùP4øWÎD° \Ƕ[™€õ6µQ\ 4|å5B@x*g¦ñ€5 ÐŽqb(0Å㺆AS3Vš@´Ù^™<ÙšiÑKŸ&äÔf=À¢À»šµ°ÉÏ„[i“õi§l4J›1³®ˆ™*y`rO7ˆ)€^ÉIžËRd˜¸´/ýlhôt†qÀ4œ} @z>Ç…Qàp¡këž©ñ © žEšm™¡ëˆv¶‹lBÚ ÑL§1€« þú¶È§eñ (PñEfƒâJ±¹ÉZ˜þ ;&} Ü øÌœ |^‚€¸@ÍØ‰icâh…?ºcŠP?VBÏ\˜â­W]¥(o }:Ïê¬Ác†Ð©© ñ£ŸÇ‡çÓâ^+¼¯àùôÒ€|Q ¨aˆ `>U>U¸§ŒPRF?H¨@¿ƒÏ¿³:=! tp)dˆ¦’kƒ¤ÿÏ5Vd‹LãsfBî&ÌSl“#™ ~ð¶†ÃA(Ò1õ¨K¡D&øb`–ax„Q(N+X|P|cL!̸áÀ@ÉáKiH„ ¬ ~(Ÿ‹¡ÓváÃ0øv xѱ“jاlò<Æ'è©™Ø|Õ`ÄŽÞr‘R&½è +M\Ê~`@3Œ“ï âƒãË:S€æ +ðÈbCä7yÊFÖyD²ƒ‡ñyôŒ ò>Ó!Zlb:Ò|":s€GL,NA½¨4æ82Erq TLÌ`¿u"BfÙÀ¬âІ1ÃLþà©EÉîåašŽN§ ΜkS¡&:=ám<:úƒ¨`RÞj=â1µé¹ÒáÃÀXÀP¶‰q@ˆùgpaGÁ4¢£ø7a/¸ÏU¶1õ# ¤PNÖÈ@wV@pàa.0¤@÷5i$âô¥(ÔáKC¨UC¿¾dĤqsAœµ!›>¯d~b·:žÇŽÂ „Öuz("=Ó†æF[Çc Õ¥@(Á—Ý%1ØùÚL™ÎêÊ6èù;:ܘi³›ð‹ÝñÚ0>GŠH°£ \Aá.€³—I‡à9ÙBí:ˆmXÂ~†8D¦t‹â'X÷¤<íÂú4HþÓ –,HŒ½Z”ûÍâÉÄ0À“–C’NV0=à 8ÃÓ—ñ=;¨a›¼ fޱxÄ–Î_#5á Í_ ¢@X‘‚¸ãè`\a ©„ ‡ERf¡€y" ‹”! +ˆ‚”OêKbb„ÁÝ8FÃ# 9÷&!Î.Ú®5þÒ»ê f­SI5^Hé@\Ê„ Š•rÈ‚¦ 3¤…I÷tLË„N⤫Ãt»¡ptÀnˆ¾åøÆg˜‰cÁ&’8b„­ñg_€“éÄæ-—RÊ8 +Å8CS8£ Ý‚‚„\QGá=ú€ãÙ¨Slùp@@]×·_©l)N…à{›'&€&<úS–ØCÃÆ©1:ë`¦¨D:¥ây³!ѧŽuPI†S$–ƒ…€ˆ`Q’ÚQú$…T.l²*„¹ 'ÐoLÅŒØüf ‚B?lÜC?xý² †m¡`LHaËŽ ™AMÁ0^&ƒ8œeH& +Ú®Fb–Hæ¢ÎÉ5K‡§bÕ8c¥"*Ãcd1Ší¦Ã3¯Ê•{“ŠTbû{#Œ€“›-¨-àlzTL#ŒöÅPU ™ ^£É 2›š-<ƒü‘TM ³©ò8dC!ÕTÄ£6Œ<2qdŽP‰a0·ü ôl–:œW£EužÆ +ðýFÝ „‡"Œ¯ó.XQ¤ÀDŸf‰0DfWͦÔ1Ù(oa/u‰\‘QRµ(³1 }<ë”Eš8”•@/z ekAµédÃ$5óaŠTžæ^…ÝRH±s)—“dA,!I–'·2Ю§‹Ò¹9<ˆ¤ÊÈàgŠ´•0)Ø4ä.› +T|bØ„|whîd™4š©s @uÉŠñˆ.—V¼áŠ£5˜Ô5J«ò˜¦Èþ©SÒh¨ƒ&¥õ'#§Mr육£1Æå‘­ (ÚÌ7ª ƒìª’b¤ò|`°­ˆË iØÎ…q5²Q"yWPæ¢Þ¤W4È´MÇõN¡ºL!s鵈þA¨ ™Î¡2Ê¡ö0H5(QhG\ùhhNBÓ5Æ·€µEuOqÓ@KCó¢NÏAiÐ#©— øàRØN™*™CyvwBÍU”ý(„t l—‹@ ð!P˜ˆCr!Û“©$ž‰_Êè¬sI…ô0Ûa“äF1ÜsBt6´³y¸ $€€ðlŒ )ª/^‚•³,Ðê8’ã‘Ô.&ýaœRE`Ø:O :ˆmh˜.æ©aM_xT‡¡½…‰)Àö‰™‡€ Û:mžË´ û»NãAõÇ3po"ƒ`AçÜ2ù㌖¸ `Hçàk›æNÖÈöFw-þ4JS”àŒªP-z¶ŽI.æË¦ ¶`U'Æ*8MÝÅ DOþ]ŒÁ!ãq £/u~òx,BFK¨E†b¸[B=\<¸ P5Á˜D™ Å_AP«–°0ªƒY³ï‚ ÞE6ìIölÝ®%ìðX#Üám˜ÉÕEU¤6€P²Tƒ„Cy°ƒªpó†fÂwÙl‰°Q2¢ÈÄ)²2€…m脈ŒpçÉ+@^À×A8ƒÓ€R(â9È®üÑ& "—ÙÀ–xë ¢Užu¶Iå ÒùÛ§* ¡È¢l¢pG}ÚŽiq¡3zI©€¶Ùƒh UQwÖuzš¸t¡_È<Ë_ûfÝ›:R³)§6¦Y1ècÒCAFW)2’>Mœg' —` ‘½D©³ .kA6§üù*F•%DD*I.˜é%’@\È ¿ÕöŘl; rxu‰‚Ït‚FtËT]º<Óáv…((;1¨ÝêÝ(‚‰M‡ ›îàP®‡`/t?hÃMÓРк`¾p)„NføôT²ùtK·½8´C™½;:8¨pŠA—ÁŠLÆQ]’o× c +?Cw|™œßwê”îÀ†lѽ2Þ”™p_ +b‡ƒh ‘uXGÛ>ì ©šH4d¨‡ÆQ…æ‹Ã¥)`R¹¥ð×WU¨*YSmžgŠ C6Ø­“Ãy‚—ç6s!oVxþ/$µ`T5茳ˆ™Û¾œŽÛxs†hShX] ˜m4ÌØxï!ÿì ³¢b¾W°ÛØBéÀ4¹Œ~Y =Ъx+Æ;]÷‚€a‘Á%eâƒÈ¨€°*˜èØOºÜ†ÛK4¦(ä|§@#!%S‚ü¤ÚRèH‰èfßH£@öb¸ü´ ºs×ð^Ä « 6UqUü €p½®Û`Dã‘ wé.F‘ƒ,ÀFKˆ½µáúÐBÅSA‚ëì(:)ŠY%qÂêj€ëÚzñöE6_Û!¹LÅøU0œØ`GI¥À¢‘:Œ ¸ØoÌ7Ù»ÐÌé€ZAD+ `;/xÈØôÚ†Í%u ÂHî7™ôiÛ¡S ¿ÁU X$É’Ìe„ ³…€·HLp± $<¯ï÷¯Ñå”`}dôOИ¿ [㥫ÏQÀÎAe_Ь†4 y¨ÏéÍŽ€lðûAé2ØwÁ@çoœ[üI.´˜ á¶m•WŒVÙnƒ]eC¸¥ U×à©îávík⻦²eƒÍAð1ð¬‚& ×lp?ìàµ:êŽÏB +F <¹ÞA;XÕX “p@Ý‚Ž-n1ÒAnVt2•¢·‰nÑå‘Å3…ê`èÒ±…kfüÔ´¥S­ÓL,°Ö³½ÑM‚\æ0UL€H»A¸cB$€: ˆhëYçÚ€Ô ²¹ëðT+Ó£M|“˜Ü¦­‘°„/â2Å“›4蕎6n ñPÍ¥;>b.p7ÍàÄX=_|65±¼CC¥‰«„l­‚Çñ6Ì +6I£\ 31}8>gÐëè:๊ÌGC«;šÚaF(È’ÆPÌ€|~BjÔ$cT´`|ñ¯ÅážA éyÙIÐÀ8ˆÙ$;€¡ÜBÆÉHtd. hºN—xhtÃ1MB‡\Z«n<Y>}ñDµÑÕJ0å/ü…Wçü_ÑK1h?ñæܺ@ pƒË ‹™ŽOtÙøÈGpxèL/Éø°á”zkP è¸jÔ\A.tÔx +pL;¢!Ð9BSèz[€l¿^tᔋ!-ØPÀ?ÑF¤çFXE®DÙÄð&Æ…tRì7&êFŠaÀU”ÅQs€cæL@=—$FÆí …æI$ju‡6 _¸gB!ØUÀf¢¢©_³ñ0|§ÇŽÈ‹Ja˜%,”õ@5®¦š$C‚Ò » šÄ¸ÁQ@AæàZdõu‰&ªx]šÀ»?ˆŽ°)=°bƒyUGDÿ¸jµ¸+¾ÅÉC64GèÜÄ¢rY@1ÊdøPñ Ìº€“QP"sÑЖÝ@ËÁLèî¦!ñ¾ Ä@’â ä V .z:$¤ƒÛ~L›jãÞ]‘"ã«e`¥<â*™ý ûñ§ƒdÀ Ò Ô"´Gá1'‹¯Ê³£ +Jê=Šë¸TªÑ„’ŸÁïiü=xPxL.jóë Y˜FãŽb¦* %<Ñø¡þ†8Sxq©.ðÀfí™GAG€û x=ŒÍºB—çÎÆt=¬ +ð Õ!³ ŽW ùÜŒ£i$⫝̸X¸¿ƒ«| Ô¸³µ8V£ÙÒDó“'e¢w7°Uö]zû¯çÒ†.trL¤r@¦òˆÚÛ˜¹ÀبãNÂE> $‹ —òuøD“Ñ8Ü5|hšIp¥c”gÂÝãý•CÙ‹Ä{Ѹ+±Âo‡ˆˆ ”˜Q|} ²Ñ™È“ÑʄŒŨKsê³¹ªxåc%ÂCÀ°gž+/y³ +µ—Bq@6%»Œ×²6a2;àù6·Ì¢G2%Åäúª @•‹€Ì9ÐmßN‰®rIxE….GÞ°H\^ó‡ºTLÃÎX®4 Œw&™§áú’ŠÐCß iHáZá²”Ž$Îã[øD+‰Rã­ÙèÖˉös±YI¼5ʲ[ô—øŒ놼Ïa(ØÌ¡Ö1‚áâPã`{Áå¯÷Wþ.ïq~Þ}kÔ[Õz‡ÍwaŠÑ§\þ0ò­ _úrXë²^TG¦ÓåÆC%‘iuÛωýb½øTi%ZåJk¦ÿ·}ÌkµêS«Ø|®–xÍS¶úÅ„™hvR‰c@€ÅÞº3‰…‘é`µ‹`e=ÑÄ.Xƒƒßеõ©ïpUì¢OýB­ØÐ5v±Èþì–ž#êˆÖ ÑêlŸŸ£dŸ‹­R»(Ö ‰B…Õ¨´ú7ÊUchäU*Ã7ì"Xm¿ÑU8~EõU©Wß'•âÛâL"E8Â*€!_Œiqp™–~FÀ!Á"2yâÿúÍõSCëzàÀL^b!æ\œ´øòa},Ãa™:…«tñ¿ü?Ñ ÞZaP\°@‘ÀÅþ0ï. ìïí_µÞ¸£I(¦á?6¯<ešk`Æì貕\°ý³"]uú‹Ið +‘޾˴ó©U°å^õ1Ð»ì «iÞŒ‘"”ï +Åúßµ’(jÅ–A4N&o¬PK,&Îêõâ[¥œ°â? ‹‰„xÚOÄ8©Þ_ +®-¡~SbæÉÉjhrT…ÕN¨¡iž8xÿ ¬\A '".®A‰XXÞá¿}ð•;GÿaÕˆ]¸¦©ÑÅf°˜ó úÆ7•RiC£€ÁÿþRP¸ô…môIçÏZ¥=²¸[oü^ÇLÈœN×ìT,~cSg‚Öbš  ¿UÄ×Å,[ ÕƒÔg(\­'¨•ÎÉ«Ì3…`ñ¼Ú®2:ìíá¤S,½~ ‡L±]-IhÔËÝjg˜¦Ë#‰ÅÃb«ÑËI§Õx­ ? ?ÔZ¼!ëQÖãJ©ÁÂ2|¤jŽ NÅpʽƒ aŽÁ…Jb7:~Qƒ¤|^ü¢ñ‹Pë²Ì¯<&–#‰ii ”—8¯„¼ôŸßÄðè$qH<>¶+œL{Þ`»V뢊Ðh¥ŠM&³.v³FŽÓN{ ùGPyXíÓjç3{áE°Ruêz»Þ®’ +µU|+b¶EM9ߘi1"ŒÇŽg‚Ùv³Vü“~Æí]ò™Z…éÃo\_ÅÎüu+)+:„òBÊKõ×è÷3ÿ¿  ¾ +ЗŠƒøxâ00 "Û÷ÌCËiÁ˜lU®V˜JëД\ŸÄ‹3´œÉHÐôæÀô4ç³v%ÿ[¥~P.ÿã8Îö_Š#ÿ¾V•¡§üm;ü/‹¡ýõ`ù‡èäðùÐ YÌÿQ)uaøÛF‰j Õ6ÿĵÿq™Eù¸ÌBš±'¸¨ M) +ÓÖ>&¹t;ÿᢋ 1¿—/ckÖ/Éå’HH"t¢Ìs4¾¸3‰ )ƒ2ÿ­øbþŒþß,Óiê/Q7 +õIº_-éf*¿Uض7;ÿ*Y÷ï6*¾·~^Šï»„¿Å<ù/ & +y]EÿEs-ÓqÁÁ<ÀÀ?íï!±¤èºÿ÷&ö‹íׯR‹Ä —¯õ7Ór_”Äô1R·ýOÈ\´8®ÈÁÑWÁ"Ðåpð°8íÃoµêÛ ‘t›y©wšÿ=ìÔ4¸æaЩø[¸êÿƒÍµÍÄÉs±Üøý‡ý·qØä|_/ñÕ `ð×éࡎiYÂuG!³_"ÿG³ÈhF¦òØhUç•V» +—ìÒUd·]9<ÙËÔº-(6=ÖW.¶^g¢‰+¿×“Y+Ú¥Z‹ó í¹Ñú?ܰ +nÓ,–øTqaµz9Ðè·J«#W(µ[Ø@øª¼Å6‹ÕÖ?®Ñÿ“Ķ BÕ/*û沈ÿí*ÊãžÊ +xÄCÈ8¹EBtû÷ª(§­b½ÍHê[‚ïUK«Ñ„^êh82ïͼ#Zr7²v`]­ÊcÑÿË`!c·êÿ  Ѭwß²fµ"Úål5:ÅNå.WyjU*Á®Û¥b­²W­S1øgò6øáüî°Ò*±­Šú¸%ô>½5~ƒ/6W-pZÍjý°QõjVuÅiz çB’´÷~9—¾„—ê]±Þî™Í¹˜Í/„ø…ŸCˆ܈¡ gÄø{ݺlã/|~1GÁÕ|„[¥'ÈuxÝ a¼¿Øã/jø‹=þBˆÿ„øçÙãwÔÿ£ÀÿkTáñGµ]ÓpTHx«ÆqJ“%ä [€ζFФëüÍw]¿ã/Âø—Ó}~‘—¿ÐçÌá’7$òÉ[ź”ê:ú/‚ò‹ ü7”_N¬%A1ŠO€AÑ!mÑ¿Þqµ¿þÖݧÿüÌ…è×ßMÿWÞ_µjñ©r·yòëóß|‹ù7žN33œ\úÙ ”Äw´If¶ ™ð, ¨€º +OÖX¦u“hþý§úo&^)Ê/òõ—“/ È;&Q1qù‹„ý"aÿBw·ÿT S^ÃTÿ35Lý—†ù@¤é,–ÝÖ/)ó_N¢ÿU6ï"%UIçÿB™Tý4¨ÉÑÿg„ë”™T²½™€=ü®ý¯ÑnLc™È6ZõJ«ÐÍ¿4j3R< +Lá«.·C~ðŠ»Õ÷Šû_χD–456KZî}&{Ý¿Lqøe™ü)ÏwVZìÖ:7Á9©¾5kÁ oÈ'Ñ–¶çQªŽ4L¯™¯—ýäš3t2iO8‹Ã‡Jìª&¦¿ËùÓo`k.Û#áÒ‘Ã’´˜é‹çj§"Bt-##¼P˜˜¦³ûW»‰ãJÙ«,—_UjµÆïøI }ÚdºXÝû¢H_²Å5ð!SëV¼áåûÅ'¦‡épg¸ÏrÑUVYÉþ*èoW«®’ØeŠÙb-Çä}­²ÍW«¬hwÕ¯9gÝ@-; Ö2½bªÀ¨rÝìL)(_ÀܨLß›¼¨¤I]Õ^%0^Ê”ë˜Ñuì@%ÛŒ¬ä˜Â¬(`êL½š¦QËý•]\§2=06ÿÁám˜òWø<ÐèŠÝ+Ú²pÝa5€oÏb¤Z¸Ü-¿–*V xcÂ:÷aW«¦TO¥ÜWøTÐMƒššé/W•&çcepϤ:¦YG'×M?t¿7Ý”÷ƒf(­Â«gQ—«Ž¬U )Vkx¨kPÓk|¿RˆX×€^ SŒmúhšâÆ<(šÞ²†¦¨hÑ,¨2ÌÁÂʰv#0]ƒW–¦kxU=ˆÊ9ÀH½)؈êb +Ž4_Ý›‚˜¯Î… ËGZ—+Û|¿üжÊLéd#¶;øÿ}ˆÙÞ lªJ¡ðHÏçDÁ‚¦Gß;+û}´Šõ'VΉú ^BÕý~ +Lz­?%N^ÿ؇T•·<Š®ÙOºM&_@2šmâ¼úT&8°çø–0Pß;¦æîÕņRú¥ÚDK¦7[Å?QÉ8|’9/GA*Èüß×sÞzn°šÍj9No5'XÍ‚ÞìÞjv°š Õ"&g…ªõÖ0ƒ5ô˜ÙÁjZÌìõ`55föZ°š3{5T͈Ôû•iUŸž;þŽùbѪOgÃ2€l3¢’`@rg!‘CâÊÑKál,ÌR,N¢öºêÿm¬ˆ&‡O$’çG²Åï1áS–²ƒ1ò‘šÏ}[ ›†ø„Œ¿=R5Nâ3©ïU…>Ñ+AÐÍÿÇÆj5J•v›M°Ôa´i #Óç°×3i·ú?Á6ðV­;LÙ! /g°L†m½¶?¦¯vžî¾ôcQ}xh0xz³Òz¨´Š3á7ŠhôøUpÀç¥î“sÅNÞ„¿ñ9¨€NÆ~O߯”«Ý7¶–v£ÖåšÃâY½Zj”+"W'›‡šðú9©tºM|e¥Sa›–8lU 1 (O Š%ïT?›Ub¿Ò~NÛLE¬þª!ÒhÔBW-ºf·3 ÍâåþÞ76ÉÈu-'¦ÿx«ÕÙç6ÍVõ¡Û/E-¦[ŒøR«¿¸‹/è_ªUz®ÖÊ­ +_¾ÈÜ#¾Â?ï­«éÉzûî·b«½,¥\•«þV%‹êBy;¦^ÝÛU>“và׿:Õ:êÀa@dOÈ=Brí/BÒÏ®±Þ¨ÇMY^_­QzeZýk5¿hûrõjßÕµ¯UxDnĸ“ÿðA/uÛÆÛ_uÔÿMTlé·¡U‡Gå¿—ÚE°6»f¤cXtüËÏÅ $7ÿ™ÊÃ)m?þþÌÿácÐ9ø_¾Ë –ðjº¥š®iãÖüç0»üç?M„áUò y®€v<ÌjDÍxIªžÒ4ÝT\W×mgÐò~¯–1çæÀÕñŠÿìâà•{Ó6m]µµ°º?†¢5ÿøªÄfÜ2&íU;­*Sƒ‡YUo›ÿ)áI£Û*U2`ùÇ%Æ·þé)¼U:Å2~vîOÎc¼Ì Ã`—Ty>â¸è–8™Íb¹Âòv³Á›y7÷ÅZµ*zÃ4 HÑD&Åågä&,+7«)oRéíDºÛix¶•Š×¥x>»ÇÒ³W¬?u‹O•Äa£Ùmëg[fºU)’‹N¯ÄZ³í8f¶]ž*eðÓÇÝZ¥%B1&fŸ'µd{nuÅV’æ‡ U’ J÷0}L%<ýn zˆCWj§c§qØhWa¾øU3Q†n¢†6h»-f{R[f%¼Ï~n ýÖ‹Ê¢‚•¯Å4uÿu7Q0aûßh%ÔÄÞº'ƒ{+p2Qm7jÅN%ñ~ü ùõp§};{­7J¯n‡Û(bj†æÄÏQc#‹s5°jKnàÂýN¥©º‰f®ÚÕ·n­è›öæ;p†À5©:¼7‹Œ•þduªe6‡ÿ ³4„%ZQ[¿U§•?:‰|¹Ú)>TkÕßqÕÒÝëXœÐl±þ[±}"cÂúL­R)c;/ÊÁ懕V»YÁ»Éft'½íz¹òÇI¥Ô¨óu;ª«&ÃPÃ6Ü ŒuX+ÖÏžê¹Á³3 ]µ†î"[©Õòt<Ê9ô$ŽA¸ŒžÅ°‹/T[m1¬e³aaìa†=/Ö«ígv†´Pk4Z8Oô–Âm>çþþÍ<E¶ŠǼ«öe1ÿG³Ñê€>n·™F½[ùsh¨i˜Žmô;u›>6̸n@…b©’ÆË="ê–¦Æu Õ¥~«ô©y,xJܹc2ÍG K!ƒðÅ9±@;¯V~gÏ$«ŽBÌøú¸òQn‘Zi·à¢zÐ|!È)È-ÃUN=±\æÒ‘sQ¬•ñÅøµÂ…–Š=NðÅsµô|Øjý¼$¨„´&˜‚ˆPs7 +ޤ&ò‡'ŠZ +Æ›$àF=õñ‘…;\!*¹MF–ê‚ç:Nà Mà õ4Z¹vxÀqýÔ£ AE úuNäóÐ[- 2j–˨DzŒªÊÊg½á ‡‰j¥Z°T†…λЂ€O/Ô\ÂâjNC-.Ò¸>jRÜc.LÛ¹^¬ ЉÁí ly°¿08œ_±¸EßB¼øÒxH=T;oE Á3Q»ùôöšzªñø˜ê¶+ D(Oñ xÖÁžFoàAÈ|’ÉâÇ«Ñ{­òغr§Ñz~ÇCTþHÇ-ŸDíVF{ÍC±ÕP¯%EÍ ¨Údˆ\­?6Üj4TÁ•ð:àp·âråðYºnšîµ…öN½D@¾ Ãé„,˜x[ÄaÅìS©UN ¬›©ßôU©ƒÌR²·çøÕÚ¥R½Ý' N‡I±·ˆé§Y+ F‰&osŠŸ{ëi¨:¿ 9¯gkq³gâÄMõÇe¨ÈЪ)^tò/µšÜäݧ¯Z+å±¼ +FèW·Ô¨Ã›PpëÑ +9ÖÖeþÙ훬$DÒkœ`±Md;¨FV}à7rûløç,®^¹Ò®>Õƒ»±ÍLêL=7$Gäj¡›…L!…5ö##‡p/Á¦àK@ßîÔh‰•V]¾né™T,Ó,šÍ¾ç&ÿ»¼ÄAÝÑð} ëÈïω¤¥¬VõQo‰% ±xêØ[Ò0àj–ký1öfªÑlªPêÇgÚ©RØŠS¯¦–P‡ï÷CõÚÏÅr¥–éB³Ÿ–º£gÇNF]Øu‹GWc&Jl-¸ï¸õÊSÑ¿ Ôc@â+´1Ý0üj¸‡*Èñ¨Ì@&(JÌ}Ëkvzd×p½Zµ|ñXï¤ÚÝÁ Q+Œêå©Gvpt<Íö]MÂ5e¯ŸHY˜ÕáG»¯JÔ瘱©û§+Š„³ +m®Áÿ +¼˜ö4#”L–*'þLäZ GZÄ"6×À9Ž#Ù•€4Gõ|Îtþ–ƒmÆÂšê†TƒhRR«PÀJÔ¾R•ký¹,Õi¶²ªÙËÀÞRâ&¥ôöç«D–¢fÖ +c)\îÇdx)ç0€q·Ê­vˆ]ë±[/ 5.Ö.ÖëÂå# +}ÙÜ€çyö&ß>ÐÓS€ñEwåoY$Y¥és{C?Z'íZƒñàH~¥ ´¨žð탬c}¥µZMܾ÷Á'¹úХ藶úÀ{gçLª'å„Õs³®Ô~­6™˜\ï#&CµãP­v êÆÃ6SDß“z±yñÌP{¿ñ[Î]»òö˜°E'\IÏa¯£ô6S4<ƒÎaõJí°Ò‚Wk{í/æOŠ¿Uöù¯6k•tpw½Z=—HÏß·ª‘?a°©Ö_kíÛ¡®oÅ%pn×_n„¤g Y³šÅºxj Ã\[é@ƒn4;d< ÚôØn%è“lµƒ&P¹ÖI¯ïHPêBYÌT0Ò'ÙímÇÌUùᣱ~0ù}nåbuj¹x9¿£O,d6Z›oÏKOõÑÂèüôT¶ZLµ'¬³­¼5¾´q¶¹¶o¬/íý˜ÚßhuKv!¯í;IÕ0Æ¥{É=Í+Ë·©Ù•ùf{£½«-Ž$7–÷F[¢ÒN'ó´u´·±bTN²ÕÕµR.•šzêj¯|ÅÆ³s…ä’}½ÙɽÜdŒë…ùô[c¯ÍФó<·fw 9câ"óR›ºI敇ÈÎ&l÷Ñ>?úþ#}šMÇ*×[ºÙXy-Ül,µSos¹ùd·0½Y~I"° +÷wÝÜãÍ…©mÔ.—3Ïì³}­Àq?™+©{ï+ëSÔ›r;{ûtÛ`M¾ç¶ËÛ£™çe"}²0^§9\ËÝ‘¤û2=WÊ—Ì£éì³q·¼’Nê“s™oó÷sÙ©³B¶Ò];ß^.•НðWu.ÿ¸÷L#«ÊbÑnU'î—ª·;åL-¹>µÐšûÑMïL¾Ãüg6–wžõ‘¤µ|~³‘®—¦ÞæV÷—í·«UÛ^l?êéVi[{]R½K¹ö9›=U±/t¥¼TÍ.Ùþªû«Ó ó•LÍ>|£\í%7²Û+ãùy×l³}Ùþn¯ÙÙÆíÜÊyùû’ö0~ƒÝ®Õ“lAkÖì8lÉwëÂ:ªœÖ2¯3ÖGÍóòž¢ÞŒïç‹+“…ѹëŒbÁ‡[쫌$•‡±mÿž[+¬ð¿V.ò»T=;Ÿ¿§Î´+m›¡î¥2·¶–Ÿ×rëO«¼Ÿ‹Õ•åòË·[ÜIo¬¿ƒŒÉGa•2;Þnü ¨Ó«ÇP©b`™9šÉÝ!¨s•öºa][/¥ôiîe.÷¸¸ûž/§&2ÖÃÙ‘{˜¼Ø›Ý-äfÊ»hÂ}¶ûfêhný¼øN Z³œâÆòig,}ºÓéö.-Y b#.[£¢«vr²‘dþºœ|ÒîWÖsJádžŽ(°r¿RÈ1옟Ë4ÜÛð^!+o¬Øœõçv¡ÄÖ"Ãigo3}·£"ƬÌ5—ï Ó»©´²rz­ÍLÜ®ÐD‚à°ºÇn¥0=ÙœÉ>[ǯù¹½TÁÇTv®@aNòeÀÐ v¨Þ&ÙÒÆg²OÏù¶½\:;NÛ×ÚEx·jç¾Ç6ó ónÔ–¸¯•ÝìH2}º_žcfÍÍeö®^£f‹5¥z›Wö#;4yMÑ6ý^ÌéfkË…œy­Í­mÞ/Œ$ýu±U• ùœig¬…ƒs$8)uë|Í-Þ7g3/ò[¦V?o¤OŸ/'X»s^Íü|ã›V˜\°¿§Ÿ§X³›ÉŒ5·÷LÔr&÷8µe±Ù6ž‰ +æÏ/· gìޜꅧÕK ð÷¹ãù"}–,µƒõ&ÓǧßkÎKma)šÏØ(þ÷ÆŽ²’ynV +›ê´DÛ¯g‹2L/‘ˆµª§ }e˜<ݱŸØô*'=ßû¹åíö#£Ø¥q3£vkßÓ'÷;YþÕMßo¬leS¬Êý9£{“õº{—>éžþW¬Ìè+xÛh•–&i·äó¹xµ²~­ÛÇOÓêÃíYZŸÈNgÕÍìÞüµ¦ìlª«Jåai]ŸÎ®{ek~‹‘¤_KágHaâOëdO;‚¯«ÔZ …² u–^Y(ØæBîX»»næ¡Ê +V†Ÿ¹‘¤7½ Túæ÷C£ÀxÁ.6¼É¯y-–± +Ìæ§ä-7Iâ2iÁ0)ûpkÿÊ–±3ì" "1åð øÓëï„âµÆ6Ëð—±îƒ«ãôŠõ§å#'Oo”•ÐÖ±ÝnTÄÖ~b#BÛÀG¡6,¿o\Â)ŽU\•ÿ;óFÞŒ˜ÃFäZÖo Mÿòz¤Aƒ? -åCŒX´€Ê{Þª|T‰~`˜Ü ¬UZ+žŽUÍPù +¨¡“êp• Z&Âd)ØÅzp6YodÂéРXÙ?u “ýÝ +ìêšµX ‘Ž8*ËÞ =âAHŠøÙÇn?êþø‚ G(bÏÇ¢ .Í;šCCÚï µÄ9[Ž:s€øa8yøç:(úͦOÏwë…©Ê)“ô5™a¸é:ã•O{…ûý«¥ÂèlŠq1X—#¸ý“\r¯ãgOÙêíÝF¾ôú>I¬L'ÌÎa¼:#‹s¨Î0],¨ÐàDsO 3ë$únÏüðy\@ÛRÆ7Χ¦Ýìs÷ø:·»ûž‘”¹«¤ë¹ƒ“ÛÖ“`kojp”9Ô–¾)µ»•…ûB#üuqlæ;SBÏ›ùÒüébÆš×$½QÍ<<å*³ù-_¶Ii§ëú€áRØç@RÝd!‚©¦ ÛºµBã‘ijž. Öl¡±¸ü# ób’“ÖÍëŸQN†PM@RúIådÕ„K}†.ÀÒHeè¾·¯¾†âÔR­-¾gÉW.]îdPŒõáäwõߥY "-ô©­¹ÝŒ5ŘyÈm|ŸÍ%o:(©°#à$ë"ˆökÖn*·ýb}°1ÍÇÁŸ®oÙçµ½ÓôÁÙ.Cwv: 9ý‰Ä)Ï5ËšõÀf¦f=}Gé$éËÿ½­ä6_“v¼ŽVÀ¨QbÍw6›c®;·l| v»£¤¬L…ÙLŸÔ6æXë§wµt¼~ mœº\S=­0`½”~íúu<ûüct‰MøîNìþMŠ-7ÅÎ~æuŽ)"‡†w@–@1¸Í¼j«£þÙ•¥ò[MmÚ èÈV¦°’ÿ‘òz± ·7³ã…|½ËN¥–t߬ù‰ÅïŽ]ÚÛÉn0nqõöO´{•L};9][|¸xÑ9Œ“ŠýÚ}8Töš©Úfû Ò +ÌOehì¯y$é¡da£Õz>3–ö/Öq€ee}ù´»¬òèf·¥¾š™­ŒÑÍ(êüY{4°ßoÓîòî‚÷áÔxOUÓ¨‹åç7Zc;[…Ù™yƒ‘« ¦ßÌ—ëŒ; +w3£Ï°R}cåá¶¾qq47¹ô¥Oç˜f±™Ü¼±3¯j¹%‹*ÄPVsÛß÷fAØ8Æ*Œ:¯œDMÞ9œ8)ÜO^å¼25gb>·3=3ÂwöQ’xJ¾2œpÇ–'Nž#5=nççf­G™½Á^5ï2·çŽ7òÛâ§Q«³W8f˜lž¦Ÿ¦F•íï›+¼ ¿¢…vÿåñq©:u´ÏDºùt!wµ5µ´@=sn$¹|Óøþ£_¥óYû[iù Te¹r;óŠv´¥oOËÕü|ãZe”ÑTÓ'fáfó­3;õ^…éÁ¢ñ6ã%ûÏ$Ȭ[—›ÙoÙóõnðÛ‹Öèw&6¿³MÞx—¤CÞ•’bà½hŽ$ñ$bRì|îZÖjá}k%WÛ3}!˜oâíøhîñ侑­ŽM˜ ±ƒt}m»…C°/€tRÓÝ\TÓKùÝåLS–¼ùÌV¦7Z nhòFÚ¾)Ë=º÷‹ùëJg2O÷¥5uÊøþíUºñ|0Ë DO\Ÿ?üɳI­oKX²¶jéQ⾦ó§iÛ=F±ñ.÷xÔf™HŸíÖx!›¾y*d7žŽ·&VÕí´»øšŽ®’ž}Ù8?Ý.Vri6Œm,]Tž6œfëí’½£0…n÷ŠaÑáó°+%1/ØËÊfmÿmnÍÞÜbüåýzùÊÛ(Ê|ÌôG ;^&7ÎO»RßkÖN7—:./l,}{y•„söÏ©5V¨gùÕ‹w\ßÓ ½fÞ÷ €ª¶ø\¹½ ®28¶º¹­Ûv;7ÿPȯÌL$Ï.^½gÞÖÌ^|9cìëõ$¥eušÑ9#ÉDµÓÅÜãi‹){Êã›t·Û7÷›ÉÂèîFkü¶“{l´Rë2®ù4w;—…ìãºî®¿€p`ƒ!–D¬ÂÄåKUÑÌ×çÜæZ²ÂD ×"léüºíu»\˜Þ._€rùhÄe®²r ªBwÎWÅ->;=㘭å &m¾¤ÔŒÎÔìõוµæ¸|…Äþ*/JPTÚó×ÖÚ™‘O› »G@(ÔÞQ°Nô¶ Fò¤±Â^=_2ëlä…ÔL°¦ÒöÉ~íÁÕaº‘~œŽ…A~׉ëbšIOÊÓÒþœÎ8ééäèP'5€ö´/qˆïß•;ħõ´¢­ŽRÝ+ùÒUËÌml5ßEåùt!ÒæÕF /¹t1·ºs½#A‡q›LÍÞ˜@U‚_dZp¹`Ïv^/-<®´¼•Ê&ˆý­%S«5ïC +¼cÛ~È?(+S²Ï{´èCºV¬À­Ä8\Ö(éãÆ^'7ð^’Òk×›µÌ_p”É|i̺ašÌh«wŽ·ÂÂÆûÖñ*ÊËo““Lm±|Y(BØg;ŸÂÍf£ô‘)–/òsSs €· ýê­í³c¸;ÁF.¤¢FIzc_l¬Ô +3² îì$þÜÁ~Ï~Ë»÷ÈPæÖÚ×®Oµ„%­NÍ\†òm±:¾´ÂZQ©pW[´´jöåS>íl¶;põ½P˜ÞY8ϪgoíåÊÒä[óñŒ<òÚûJ‘@“×K• µì¦‡æ“Äà^·˜¬×P–»•V˜ô6fs‹R ïb‘f$i½«î “·O +…'†ä'ÝÓò`üµPéE8€°ÏÐçBcòÈÊ~úd~ƒíËÓl]‘3_êŽÝ¥…Ô„V½;ªW2Æk¹lŸÝœ;özv+ûü½<ÖØÆÊ‘~›ÛÝ]ó.‹Ã͘›gZÐì{a¥PâØèÑ'4 šÄéX›+‡“s«öX}ØDn²öI¹±Â¤ñæÄí‚oÜ\*—K§KZqö0S[PO7/¯/ël_:ßšGU¾Ý>t ÷7Ýgð¶˜BÝh¡>jàFÈ›­@–lÚÇÅ… ¶ñgÓéúÃSÛ£moµ7ä’E Ûs&¼Þv¯’Œ¬uý¯„céÓ3ûÔ‡ûºñ²ÇVþv0Y”ï/‹j*í´²ò­)ÙDX™©•ÓÜlu±´2µ›I;óÛÐßd•­Ϫ'ÅA^l—ðòL˜Ê”Ò»[p]útpÐS:cÌ¡ò}¹xÑxaÚëbþ%YÈ»jþöòùŒœ…«ˆê÷ÖÙÁ÷Naö +?bû.Ìt–ù’5cfögfªv}ûh4ñ°5úˆñýýÂCç‰ëü•ó”1.ôi÷«·óOéÓ\{Özß-®¯2Ýxš)W+jp<¯—ÙUv^–^Ws7Õ«q Ѽ~P­g<ç-® ý(û¼Q^Èmײ!–¯hG?Æ Ó»‡íËáõ|CZÀny”¡ +ú§™8Í›>e Œ| ‚ÃV ÖÂBrí¢Mtd])m.KùâýË|º¾>zX¸Ÿ¾Ñà0üÈíŒ>*þôDßw·ËÛ[ÇÖÒåÙ[K¥ÀED†jœZì(Ol÷™˜7Ãø!Ûê­¥ñ›¡\‹L÷n.¿?ç²S77ÏÎÐi;_ZÛb]M6'ܳü÷ ÷é‚éÈlf[`—OݦOŸK˜ãÿ[ó¼ô‚®q9Ì'{ú…=ã(Ef-Êcpú»ôÀ_âóá4Ñ®öàfx˜+Üa2ƒ\ã÷:eî‰ÞîÓt¿Qo”ž[·Šß~·*27Å„t ^¿ßÈðz‰”®‚gèÕ!Rª–›sºÕù½ÑzÍH~êši ÔiµV9éIZªÞ? D̺fCˆi§ÁÜxŽíz‰! æa©UE´à·cÑí ds¨wxw> +iZ”‡~ +mC@ú¡ñ[¿0›Ø 9m4ï¿ÈU–.µÅÎ^ñÏJ+”4¢?ÂJÈãclÿUÎÅ/²ßl>_ƒ®Ç~Ƈö^œÄÉí2ÛßêcUøoñ‰°úS– ÀÂÇ{àQ‹Ü¢Çåˆ>ý"äùZH˜P ñrÈÀ¢F_ÀšÆcZ\`¶h}Úª¾A¶Ê‹ÊÏâÊ`ºÃØp§Z穟>Lr¤ÖCжüQÉ?ý†;H{^Àe¿õqD„ø·0Yí·‡ +»àg‘ŠiÐ/¿O¿3b>nõå›0L±S9}î¾=Ô‹ÕZŸÐšÐÁ9•Iöm„€;kW§Rh{ö +ë rW52øJÔ÷³Øa»ád†H9¥ïîI3ÖO$ +SŒÈh·áS öÃ×&.ãí0lU’;!(ÛÁl±IÙ@«ý"qÃ$hˆª‡Œ¸m˹+âϰÈÚ7lÕÌ€DQ™‘i²ýé97FC†„̰OŸxì%:Ï•7M0,·¿?Wê‰vž%_÷NÀF&Šm(öã{DòÛT‚6è’ýììÏF7Ñd¨“`|«B‰CSwOðfy50Ð|‚ æ5­³ù': è¢TIT1uP1Q+þ ‰v‹Í&C*â‰ín馷]ÏaJ¿­Î@Ôe³k<úÃWÛ‰ný^BN Í-J­j³Þh±ósQy€Lƒƒ·•rÕVEð[¿ª¡¤[«LßD/biŒ¶6›•þôÛ@ð=Ãbßp\î¤S¬—‹-ÿe%VHBRÖS'ãÂôr­âï=A÷ém&9µžà鹇xA’å%¼ €Ë½º®ÿuðõ8X ½*©“Ä·\¥\d6·fÞÛsëç‹ÊâÜþÂÜúsG‡¿4cåhI÷>yá‡e}ý´“É=º›¯[ãÇ«E¸ëZó¾js«ÇÖóèÌ·ëéÑùýËÜHrt!­ŸŽÎß•OG“uwtþùådtníµÒ÷\öÇæè¤ÑÖ'Žpxcýà~MÙºßY‡É9tRieºù¹ý½‹Üîöè‰øš{M-¶Í-÷þtsu$™¿ÈTŽ7ÛO+K7‡ûnî:·þ¼¼®:©ÌÌÛäIöf»–Ë¿Ÿ+ª³i»nŽfgŽø X\§À⦚§ï°Œ­Ñ¹R* Kû>:¯NF§·ÚóðóŠ/mµ™ô—¶ÖœYi²yï¼ñE3åÒ‚Þq_Nš=•î*Ù¶S¨ŸjÓîÕ„RžTq>Ð[?ÚOÙér jí}Ñ­³©_,?²Ÿ›5ÖöŠí‹Xú^»ÕZn_·n–”EãdZÞtSýa\>ïÍGzó”ÙŠt$ii/‹£þ°ÁAZ·‹sу~ËÌŒŸ5k{Qƒ¶Ço­Œ?èH28ìÖÚ‘]?Ô˜¹œ[.ìG ÚêÞ/MÏ&WFï£I*e}%f­Öø„³üèÆ zõC)œfŽ"W:Vh.%ªûÇ8èH24¬²9ÞØ‹tjgÏØïYëGIÛAgBƒŽ$ÙæŒ]èI³3Åž]]šXãƒNM…vÕ8µ7k8(;Mùà 7­›ó‡cp,ŒJKwæYùi1rÐÛ…Óo±ƒÚ‹'SQƒŽ$[­•Ñ™V{i®µÖ¶shß +üí´=µv¥Æ j>ÏLe*›8èH²g­ÆÌÍÜÊòÛqä c…¢9þnu÷£U +»G™¨AG’¸«IÓ1×£l\Ý)…Æéiô ›«“{•ç³ÈA7œs(L€·&FSÏ4hþÇkAtel¦=µ1àítëîÍ|Ÿm*lP»éÊ©¥²·ý톯õja:„¿¶™J]Gj\g”½·#;zÐí±®³wUrØ© KƒÔ*[±ƒî¦Þ›ó1ƒ~ŸSNöÞ»¡AÙ(4ì®~»W(¬Fzº]ÝŽôdß:½4§œ+·.%r­{ ã§å»ÙåÈAÏoWÛ±ƒžOWîš¡Aa>ì¾r±°ž‰4?w±á´²‘ƒ^ÏŸÞÆú2vº—A.µÖ–rS¼Ÿ‹ôÛYõu)ùm>rÐÛÛ˻Р8 +¶QYŸ~Št_¹Ïïå¢-œ©c—£í¨A[­o ãìTÒ°úLèÐ̹³y-Žu6‡ft©ÕÕ³ + :ß3èÁêôûmþrƒ ºÚÂAó†[j\ÍóA_ÝÙРÉÇïcÄʵ̕º$ÇJþÛ÷Mt¡—§~[INÔõåC6l¶p>ÿ’¢A×§óó!R8Užã4IŸXÊî aenÕùö]ÄA1?¬•[½ÚÚbƒîŒ†Õ2Ï|Ð¥£Th¥/Õü+ º~¶·o(ÿËs¹*¢³òw­ó6ª-Õb¾v'Gõò[3ú«1ÃÍšYÁ¯pö{¾·2ìWcZ_*ù•ƒ<}í‘®W•½ ]ï>y÷Oåõº²w¼n„¾{_ÓÊ^y׊ûšUöG/œ¸¯y6ÊAiû8îûr’}íÄ|ý>¯œœÆ}M)§ûÓbßMålô=ÝzeTiuGmþµ—í[ÜwêSÊâêeÎÆwFWÔª#×w8µ> ‘VˆÿGí ´LNÞ´wÝY1u»I8^!"•·É1Àzÿ–çØZ>¬>ÍÇv5’Ýedß¼j‹Y>^y `–ò¨Ž]}ò±p—0ù§!¯ô‡ûH`IOªÑCz®æ›¼Õ6vdˆÝÈÃ26¥.¼)HÏÌ$beÜ©¼šïôŸÒvü‡Ã.ê†`—ÿq>E¶ûJR]"–¶®îî}hi#ÉĸZÔJå05I· ‘0Þ<|óWÀ±Àª&iUÑdô6¯TÚ¯Ã.(ŽÂ0Ü ò=Ï7w'C²z`›r‹”ú~0wñ\Z©tÎi˜LJdgí!:‹ëª´ß«Ížs÷ ½ ýOarŒHÛ}öò®;Åd½ýy +NÇ E± Ýt3»¡í$I)°¡ðŸ<¢{qƒ­/Ȫ¸1Ÿ™æSó"Lž‹™ò˜M}YäÁQ”Ú’ åêÞxïÙ’W§ÕŸÖKz˜ö:µzÙŽcLdÆ .n†©ªÇ–F’Ýßò¦Zœ˜Úúôwö_ÝÑAÀZ}˜bJZæÚ݉ã•Þ|‹t0¥ñØ)yg¸dð|è+XŒùå Ò}`ÿ”JñîŒßX}Ag/•óþóBL²³ Cùȼä^êìqêýò‹ æIu_±Ç¥éë/ƒXˆ¢}bܲ%ì0µ÷âªe.oc‰P¼tìϕ߿°ùm4ƒÞ‚û•­¾tL°#e¶ ×±/:•[p ²ûEy&f'Ÿ¶ô‰åÝ=„ÐÄ?¨}Ç#ÉèÜ¥†6#Ä­Å' +qçe˜mº µøá’RäTP¡&¢…dËOÁdÀ±ñuä¥÷hÕYk#¿^3ÄKÉ€“‘d‡YÀIùm6Ÿ—mFŠùáˆ1j0:vÓ®Gš5âÈGÜyÙŽ;F’š›Rgüã@Â1ÿÈmxÙFð}?v}¹©þ 辬0œ=C–ä¶¾õé\Gͼ¾`}ígͧ œ¿ P|btr¦ñlþx?#ÖG;l”óÆH2Î&1ô‚Â<5Âî32ÀJǶi§¤èŸ°ûŒ$0æÇl 1öšX{M“}º°4Eéõ¥ÃNH”Ö×Ï’‘ÆDì~$9„0- ÜÜý¤ÍÌ“Çh>jdˆ—„ƒ°Û ±AYRú(#lîú’ðçÏËúÙêÌOâys™¿¯ü¤5DòÑ ß‹\ÐÈLÜ1~–ìâ(A~÷9À„],#É^V#Ët‚Œn ²,—Ç‚¬nŠ<>%]Ų¿²¬lúmðš#O]ȪpyòÓ÷h|q»ˆ[ÑaíUÐY„½5ÊÚ:2ÐÞÊ:öðõ¡ÉplÔŸÅUص™éØ^ä;¾ÁýÌ~r6Ò8ö3÷%«šõ"Óäô³ð!¾çùEw–ú &*ÝߟéU)/O¿ì†áå± ÞõivóйôéwÇ Êò¤¶ø!ñhr¯~îS4¦º˜3!ŠÆÊ–¢h±’˳¯ hç=·ÕCKð‘õ¥h}E;o|’¢Ne¥ýªÿôÙ‡‹ø0%úÌÙïõ~4›HÛö3 <›ÔÏß½b?Á“¸zynÌ­"úŒÄ[¶‚6×Gƒ–¯£dO¶GtžÙ°S+f#†ñ¹Ê²OÛ±wÏCJf—çQDÖ·ÀŒÌžˆÈÒÙ%³ç÷~è=ÌW “‡Õ¦cܵ SS,…ØÏ¢}l/À+½~~Ö‚z‰P¨#nÞö3È?®W$¾M Î~ÖVíóB”a6çÂܰ8¶7„N3X«¾¼@^ø“hXCX³F’ÃqCÖÙòý@,töÓò=Ü…†-.Ÿâbűý/áb¬Ÿa„×Á³ù"ìgCÝÈý¨CpÃþ¼Ð£0êØÂÏpÃ^¸4=ïóBo”¥éj1N€Y6‘ïЉ–xeÀyÊwÈ“ؼâÕÑ(ñT¸}cÊÂ'mÕ½v~ìì'Nwh^¡³=Ø×ºĬawRDqÆiDl/χ×Tcó%Z®Îcuž!ÜéBSŠÄŽÉC¯cÒ2—W !¶Ôã91Øž˘®ú)iÑžk}ô}6³çXCôǃØc65@7Öa +ºŠ4æ +ó‘Ûèlh$ ±«±Éˆq>ˆ—WˆÉ‡CÛ#cûC»ŸóíÁC×?‚n$ù51tý#èF’_C×?‚.-øéºþtÔÿ+bèúGÐõD ~2†®äTùŠºˆA‚Ñ‚_C׿Œò1tý#èšÅOÄÐõ†±Ètž<60†.èÜ'ì-ÂÕ¥¿||$Ðû‡¦kée“丽ß*^êÕÝèÈŸv†ýž J¿á)}ÄÒ{8õ!_òø;¾ï¹ ‰éópꉲéõ4 ¨\}‚Á†òÇ ÜñõélÖÀõ‘;DäÜÐë‹BÍàyèwýÃDÃSêù8ÈrÕgJá9²Ž~,hn8Zs›÷m‡¤#.€ê ¬pǺ‚ð³ç ’ÿš»9ôR»Íÿ´½Š-íÇxìÒ$¯›ÁnAOÈ=L†`·Ÿ°{Án‘v–^-iP°Ûg\ABÔ’¦3ˆ¬šTC +Í øþÇ: E3ðÇ¡Íþû7Ø~ø8¾¹>Dz` Á^ÞÙ€›Ì+|gñS Ìð‘Îâo/>1íë ¦ÿÄ‚†_JptzÚòeõ¸H®¡d٭ؠÝÐQþòÑx¹jÛ 8ñ‘xºÕ§ûi«¿²Ðø({õ§Û—£:€Q:ë“?Ó†a)}S£ŒÈ;“Áñ³v(âf¤Îâ6ฎ Ž¡í qÀ€Û„AÁ±³C\`Á‚ŒØIÙN¦‡råŸÎµÂQ±7í§NS ïâLf¬óCf‹°ªäKJ}ä"©N|DT¯ˆñIyìe{ˆïŸw¤Éñpú¸öÒ +{}N¡[œ +xvàÀàȸ˜)…ã‘·?j‘é7%›†ãb}à4”Ef wú0Aq}¦ÎÝ±Ú [d $é+,2o;#ÉŸöçÒ'–¦'ú[d¤;¾þjÃÎÏXdBúþÛÎO[dØÒŒéxïŽáÃÐ>l‘‰ŠÜéþ´E‚Ф+ð mücñyÃ[dbíüŸ×/ÇpXíûùô1 ôòãý§sÝ`?ñ÷éÑÙ´bݬÏ{RÌ Ê†&u‘­‘­°Ç«Ê$vê§P"R‹cDZ Œ‡àÅWF¤^|eDêÅWD¤Ž}ADª:¶ð%©¬Ÿ/‰H…~~žþB/_‘ +ÑkÃ¥–¢×âüúà€ôIšúA'#”aîZ½Çð®õ3ÇÐ?„ +OǾ2èØ`žà"?®¶ÇîË—†ÂAf°!÷Ÿ …û ^ùÉP¸p¢Ë¿$.ÚªðÕ¡pñö±!õ³‡vÂ$HA8r¿À§ ƒÄG2Â÷Èc=©…?P ºzŸÆ¢8„:ë „†–a®ÂI†?r¹ŠF‡ ¶!®púeçR¾byÁQ7‡¦zÁ%#$ëh{ðõæ föˆO~ }úxÂöž=ß]pîFgw—Õ‘äè|îøbtþüö„HŸ=M[ð×!ÔÌŽ.ìÞ™Êâå«ÍeÂÕÆ«qg+£ÿ{ß¹–ʲ­}܃¨äÔœsEQuJT ¨€{Ÿýç\ûW£ªs¢ð[g¯ÅšÏò!4ÕÕÞãéÁ ˆÚE¾#¹©¢\\ê½{&ÞT]/ãýÒ »5 +v{¦to +õøêúvŽ·ÐõXï¦#ƒ›Ö¨¤L¶TF>7tojÿsíê ¯ß(Âî°Úp*f6lß¿â«ÙýLL]×>š*®#–wÕ•‡íŒÝD‹‹ŸÁ›4y!<³JE—ӒЯýnÅjįw¹UI°çÎ¥£¼’QÝ8´çk¿¥Š5ѯc•7NÕ¬ô¹ÒïÔÚ-F~¢öº«JrZuätrª¬g—t+ÉYfáÎ]‡»‰†$9!òˆ+üúŒŠÈ­óë³°ž ŠÈé>Ÿ^Ý·uÅFÌ>Ÿ2—ÚÆƒn•RžKmóúqæ÷ õÔ +ÿ15NRÓƒ™të™^«Ñtó0–¢é´ô ·£h:­X:½ü0›GÓiq‚Zûe»h:­Xºm"µ£é´¸x}OûM£é´bétómM§ÕÔú !V£é´}wM§e§‘ž•»‰¦ÓŠ¥SZF¶¦ÓâYyávM§ÅµK´×EÓi 7Ó»³h:­X:¥ïèöÑtZ‡6fzwM§Õ%ufãm£é´æO8ÅvM§5:¦¶ˆ¦Óh*¸®¦°õh:Ø‘EÓY±M£é4šbv9bìv#f)šNKò™5¤˜Ž¦Ó:áIlõ.£é´ ^»Œ¦Ó²–hÔÞ2šN+–N¥½nM§>¦°Œì šN+–Nu¾lM§5ri|ÑtZ + Òò¾}4V,a=¾íÀä+€ªúb» S©ÔªÍa2ðÉ,ZpÒÅnëÕiuÉXºØ¤^±tanœÖV¶•-R~”ÔqâËýÜÒô£ž5;¥Ñ¥µ¡ërO{£êrrÔå.qÞÐ)KÛÙ¨KjG +C„1§¨%ÈäO1¹FÄ'ÞBr¨©ÔˆÔnÖúÌœ¬Z–^¡;K1kZþŠÀÖðZÒºo&˜L1õ–&Å)¶.ŒI6^CÞqñ/f˜\™î‚új»tW¢ÆÞLìJAL=…î¾^9X˜ bj +k‡ NZ ‚!‘j2ŒÉœ`8^*C|ôénb\‹½ÉÖÄ¿ «1®¥ ?;Exƒˆ°Ý¤¦âFlg1®ã¥V„ëf2L)¨IO꒓Ƶæs'éìÏ[|䙌z^㊺d”»ÃtŒ«¸{³‘Ó¹æý¸j- fuÌ…è5·Ç÷òzòvßc° a}%Ûd[‰cajŠîq¯d¡i‹%íXH÷'9es:l‡L2¡SèîЩ·øõƒð|iæùB†ÉŠ:lúÕõ·wF‘¯´ÖMÑ~!±Og—ZÏJê°ÑÍÁ£ÞM'AxgÅKw!M[½Lõâáâõì÷ñ‡ð¤Šx8fÚ/Üg$5ç(eŹu¦sÓèÑqçƒéëá‘pC‰<&ý[†õoZó¯uoꚺc/Š› +ußÒö QÀaË¥{ÓŲ›µëÞÔž\I=»Ðm§ ¾ø7žÒÝäÃÌuýŸ¹Öu8VT¼2zôݯôÚk[Œ¼pëŽ;&!DæOA!tòŒŒûC£öSõg¡D I·I7÷,2{Ð}y]É0³µÎ]U¹ÅjËAU<¹k•n—øšÂú²àZ¥k軲jœÇ¬‰ª¬ëX¥à`M0I÷e]×*ݩӬÌR¶èZeæÝYTÚM>O¯©õ¤4zYy>YÌzµ>éf£îdr·Æ~1?覽ÙÂuJŸ'¶¸_RUéIÔ¾±r¸ÒH†Ù¯(k¦l¨JȚ£5ä`oý+c Ö,¹yàÿ\kÓfíÖ•Xynš.5Öø±Ê.ò6B  Údm5¯5Ž´Lhª|G! +pMÂÎõÞ++ñbë´–Š¡—–)~Lî4B«m;cæ{Ý:7‡0£êîtä1{hf"LÄÁO5“]qÖ‹É®Ð`¤ÂWSvdÄŒX•·ø—²¬Œ’`\+àY/ºM&¹mH¦¬g±EY¶¸2Ï-­†Mç9»¤ÿò–ÐÏs`B—u‰£;%ÖêMC•x¯Ê©Ìse +¸®æÁüÉ-ïoñÅÚ@Ó‹aa¢VšùÆÖVÑQE×5¶ÅŠWØÚXó)"íFlm=+#f¦ +VJ‡’Û +Ðl <ËæQ€fc…¬EšÄR߯Q€fc¥ªÖ£c84ìbEšÔðƒµ¨w´èø*l(Oƒ@uŒ•îplQQOª#[4è’,P¡#·»ÚOµeQ>KÙ6.ʧˆHý¥¢|š¬Â΋ò™¨È¶ƒ¢|xW¾6~¹(±$Z¬€g¹(Ÿ& ·ó¢|Æõ‘wU”ÏlýÊ­ŠòIYèÔTwÿæIoÖ…kWõÛMn¨ærC™¨ëg:7ÔVuýŒ«úmâm«U×ϺŸÒ&uý4£î¶Ï ¥¨ëgÌ +é熲V×Ow†ŒsCY¬ëg\ÕO*]¬Où¬_×ÏØ3DÆ\mQ×ÏL$׎ʀèVõ“œ/[Õõ3~4ú•ÕõSñ.*€¨êú?އªåº~zw‘]ÄW®/þ!œ•»¨ëg\ÕO*[nS×Ïø ÃòØêúù «úYÎ@¥S×ÏXÕÕõ‚¶X×O/Lr­´¥º~[ż›®ëg¦ßöuýŒ«úÉ2µnQ×Ï8pV+"u“º~:¢&WÕOáw±q]? 78IU?ÑOiÓð”+Ó•Œ¶¯ëg\ÕÏæÐ"6¨ëgìp­ˆHݸ®Ÿ<~KùÌy®6ªëg<€¶Õõ[·÷wS×ÏØ:l©߯Y<õø¶{Ьê·A4‡º®ŸN܃)o[KuýŒ%yÂÁn_×O+îAŒmSZ7­ë·.bÈ|ø‘Q]?c{³Ê‹`ú~Ê9•§XÞ¦Ÿy' ãz|['Óáªúí¦ß:]ÚLöu]? ¥ø4"R7¯ëg\ÕOŒÚ®®ŸdyiTõÛ,*ͪ˜£¿Æ¬Õõ3sÀwt'uýŒ£pÍ×ãÛ& +WVo‹º~’V4Ðw“z|Ö£p5ÐRU×o‹`x®ªŸ¼>òæuý|†Uý ³œY¨ëgìÞ¥qŠmT×ÏØÑIÃf£º~:óÂUõ[ŸÎLÌÓ`a¬¶¯ã-å#¦_×Ï¢^¹a]?ãª~[yJêú¯›þ`Yªëg,Šö—íêúÄJNä­êú)‡R^ÕOSÛ ®Ÿ¡ÄÉ0Û×õ3-ÃlU×O1“ +ΚèZÓuýŒ‡uQœ» ˆbßjS•¥¦/£qç‚ÊãC‘Wê©›„5¦ vѧÛÙØñ^¶(¬&‚c_ +ë šœó’¸íe”—o.=!q˜€5:œ—¸ñä›d˜Á´´Xd;³|h•nèøÍ%ãÊ–ñEOU÷]vÇŸÓDÝÕ¯¿Øƒ™×‚/•ýNøÒ©Î­ïjööIU*¯!ªòHRÕ“‹2Uýœµ¨ÚE"€îÒjœ ¨ÖÇÓ3Õ~Ÿ¾P—§l‚ºjÌ®©îò剺¦VïÔu?óCÝ®ÝÔ¿ë¡Ƈmªßï=Qƒ»¢†lÏE O݋ŢZ,ÿ|¦?ôüzñ3ˆ»—®˜s÷~g±®ÀlRo×ÏOù뇻g»×éèÇSïEÇùe­é|ys&Bgî£÷GG#œp¶Ç¯½rÚËÚü_á³!žöV¨^]9¨ãéïÊóOM áæÇ—.—NÚ²Š·aI H®Ž`²¨3XÉ0ŒŸoô,Ãtß³Xœ|ZÏÊ=iØÓó¥YWžªOŠTõé±IÕÚgË£~t ‘«vî~ÙïŠ/?»§BÕb/¨Êul`sà2T¨=õ+ö“|ûÈJö Ý"ß*y4ñô‘ŽÃÊisØ=é³°=r]CÌmÙ~\އì~O>Ÿ5í¾‹Ã3»=ƒ/rö@Øý§½ºÝû}„žtôçÖtõ°›ñnÓÞ*ÍF!ž +=K>Õ²/ðäT+Ìi½ºü¢ýÏÏYôêú«õTèí0ˆÍ'>Vå†ð[E7÷êuêE¿¨{H¹Î'×·Þúð[È:›tàƒ÷}+Ì5P`Uy|ûNP¡Hƒ*||¶–…“››ª>nôªÏý í§æC¾›'^_Ùïø©ºëí/9ÆÂpîK¾êÒá« ô‹ç ¿lKr?¤}¹©%=hÂŽ<ÔÄíNòŸå}øb›.ïÓ•~2ÍU íô±¿;ú¬"BR¨Ö¦€ö‘± Õº ´íE(·Jp p‚KüèOlŽÞ6  +Y1ç­ ¾Ý ·Do;ó°ÓèÏÞöH³lîjNæŠñ=ÜüÝ6üð­O:û·í w¶gã©ißóTz‰VÛÅ÷øQ\¢ï ¥IcrþHÁû f;!E£6Ç.šíRb³Ñn&Y*t©aé%vòU¸*Ìo°%±•`Š÷Þ>^6Œç±7ã—Àë«\÷ê0CCéL[~aêFh—?Ðg –h<äÕèð:€_a¢K/~ÍïØ:ˆ*·HH7ð+n’Çϸ~ãxGÛ§„H4š¿¸ Ú.¸É«Ñq)ÃõæmÄHÖØÝ ›ã¿zóûó."<˘Íu« ÑÑ»@94J;“ÏsW·š®„_%G9k½ Ž&àâÅxþ—ŸZiéº\݇ °î +^òªò§é#¯$ý^=³ø3¦xë«(zcsDï>êïå'Çò*ŸÎõÂ…“u„.zˆ éâ‚Àëœ9œxWÊ…ˆ’Tf@C)EPàA~ã†j h^5áOŽÀ¨ÿû«­ ÊÄ!2bGnN!C§·ÅÛS/ÙrÂÚÀ¨ )à¡}{¹ÏÞ}@ˈ*úDÂðEžùg˜¤}Bê-›Ã›¿ñŽrí«’ŒuÀÇá¯<îÜý»„JŸ8ýn.w]ê£#¤hƒli‰Cž'ížA7¹ÛˆMÜ-ÎKÏþªòvQ¼½çyÛÈ‹{|ÜùƒVm¸†zCeWªÇ#öcÉR{xyïÄ<)Ì~ØÓƒ¯ŽÄþH9v\t› BžÁëHÛ‡ü„Câ@oÞ%¢¹Lz¾tyy) Âé üÜ·…AèÉSõùM ›¿p»±— Â(×– ®ÖH¨ä?ƘL !‹† G7—ÜÚ/zN¸÷ç!xøÚ5±˜­(nÇÚoÜ0?´tÛ§â:°9äƒÀ9§ +iµ—’¬ eØ­N¾Éì›Y¤ œÜr$'2—Ôx‹Ç F`-…GÌÔc}VfCµ+¥³±ÉšvKgCÚ~¿„[JýÇÈ%ßæ|^Å’BûE ­^¬J·¸°©zùr,¤ƒœ+G 3³..ËäUñB‘8Rœñº×˜u7[cèHj5 _cFMXßñª5&‰Ö˜tÔ kÌp™Jv¼î‘6 \ HN–lØMfí;bèYŒšðÄú>xð~N±Mã·ã•Óisè͆Gœ ë‹ +7 Bz–ÍC:kW¥(]Èš&tÃÇPÀ–ÖüÞð˜ØŸvWùÏ׳ì+Odï¶ûÓ+®J±0bF½P4±á9$AK¯t]n²"¼º«R†–F'‘w©€ ¥—)ÞÒ I‹«dS|‹”þÒ‰äm®Ûj o}r‡çöÀ¿ò*Já-qÛâß2®¬».y+ë—OÞ/é6M_§!,[Öýr‹Hß}gÄwà@P·ûÛ?¶¿ *˜ÍëA¤°|9ˆ2¤í¦îL镨À…ÝûüyN?\ÞüäO’wjâèí¼²x¨}ÚK…C#Ÿ^ë„y‘毕°ÍɃmNÄ·’¶Ü/$Š+¸PêÚ×Ü2Þhɇ$:20ùLPâu„ÆÄ%Î9–Ú‰mNú ÁKes*aþ‹Ó÷±!;9¹ËÝrµÑ÷ i›òÇ)ºáJa÷ +5·8¼ Íüù,uBû"l¡R¯bÚ ;–‘"¨=~á™ág ›¬%æùbçú› _$ê·?àU_ðP͈;Í:³ 6EgßÒ8J\]xÕ£4¤œ•ÙÂËWØohv>:¥NÜŽ;ìHÂ6 ß&pcBÔa%öP,‰=˜Ý¤0‰)lKZUyC6vÇ_8Äîa‚zV9Iˆ}®¤‡Ï¡g iJEŽÀÔÁâ‚@0"5ó'âd §ý$Øøb0bLÜYâýʧ*MÕ §‹êé:Ð"$¾¿?ªÒãïãfBé]Ê0åI1·ÿ£cI<¡»Ö9^#Îо·R‘~Ì»àŽ[h(é<ðlCb$湄?9B.ٔļÒ)Ɇݢ…¸qŽãùR¹ÎɾÐsÆšƒa¼˜=ºÝ¾Däõ¬ö~ý5)Ô£íl÷¡×Ç{H“¨M"a2¦< ‚ð.ÿ‰vw#Hz‹=dâ-¾t3.OÆ$­ÝŇ[”» \ðw˜Ý¸èæÛ,ÌÛ^ ½¥û;0Ô߉¿w ÒŸ‹¼’Õ}~‹¨ˆ€°~aõV0‚À]À'KFøÝƒ- Mã°R‡A£Ñ(2žI%ÁCÏåœÍAy‹êÍu‡!`äW|UfЊIúB§—ß,õT¶·ñ1 I'CÌðì©-øCcGÛCj:ǘ +ûpÉq‹o4ZwwÄ!CæAôð1hŠN0ÊŽ=ë½È©ÂC´ ê:4qÂåÒÎ`F@Ò]Ïuâ2H¹ü‚$­œ-¡n$¯~Ð9œI¡L9±I|Q|ØÿŸ¥Æ@S°õJè!ë1°&°‰Zh6îÕ1"PÍÛnŽ~ Ÿ¯]ʼ66†¶Üë =îB¬Óî*‚U©Æ:™nAÊW‰~ŒãÂ>aÚÿõÞ©†p"ؼ·[Ø£˜´-ÎÂD/º»Wé+Ê0’óÎî¾÷úíþë~3‚ÇËàgvßOâßé›úy°rSœvò¡å(YzhÕÑÞwÇѶ¿j=Gb…ILð‘wÙòP×>ÒoÇßâóÁ]¶<Ôet< u¤sRŸéCý©ŸÏq>Ÿ@ÃKÎÙóÃ[„dû +†¡Hп¦Ì3þV€ÌKà—4q¹8!ºÖuû¶€ë0Ú•ŽÇe‘j¾õ“½Š6Í-Z ŒcÅT˜ç4ÔT§;¿™$˜mŽ™aj‚nà,³e HtaD–ídC áå‘:Pm$”ØÛ.YðÊí´Âõc’hâ(›âðô¢?I²•B}¹HTâ7îrΗjUG«KQ%±¤?%*‰—°4‚JbI!á¤q]•_SZ*‰…Äïæ\d»»½˜g9D“í¶ØÙ(—Á¿6ëñVQÎAFÂ5ìši@8¦Á5lÉ4„”LƒÍ¡Å53 Hó?.¡û}Ô!Œ’â6Î=Ø{»Fö¶d? Hmz¸ ë¼þHcë9ã©Wãà€‡ÔsÌ:=íÎ_{1ˆ¾8L X“D›Ù—VÁÅÑG‡ÄWƒÖs†L?Œ±†øÃܯ,š¡™?Yf周ÜõÙ‰jâÝÏÀMDÛè~þ(z–‚7qJûÝ=Šuz¨±H&ÇÅ0Gh·à¬î‘ÏUç8æÊOû]/]ÑGµw‰W>š–/ +³vù®z}‰„Þ—ÝÙ¾û±ûjßQÎó¬)דƒÒLG + ±í¥ýÁUæ¥Ú3¿Ä1?‚ürÆ–I×ßVîÂ1|è¦_yG!Ì‹ü.qR¡$™À6÷s\„Xð¿a•"Ov•óm(që›_Š}†ž¼|°›†Ò…n Oö•÷¤Q©$Ķ(IènWäGþ­$foöŽŒ%'}´Á¸r­,Ž€àL9x¾ºêYm1§váÍn_›hÄ<¹|Xƒ»¸ÅZ @E”=üvxËèÒ“:ää{ò*ˆ~Üãj ½›ë&Ñ«š/ÅxîÙv¾eÊA{‹V†Y =YŒ/Ðgéb »ÒµV+A‰ˆ"SôZT®RØß’j„fãSq&ÛГº2ƒŠ·Ô£'?LГº§´È(´v—MéI]Y@ a2« éIâ¤à&<õ¯,°pùô)¦'©éy£ŽÖɄޡRU +›ã—• +-wBO&ÑáK+;«±Áû¸6‡5z’ µ0Ðè*ÐÏ!tØÊè~¥,zHo¢Z²hX.š|þ1ŽžT„7¸ +àÿ‰4†z´é[/ÇÃsÌš@˜o Ñê_Í*ðÊ@מÝÿU–Äñò-‰¡­-‰ÄÖ»¡%1¤¶$Dÿü—Zƒ;°$¢?W-½»PBŠ+ç­ÑDZ(ºA6„÷1Ðþa­óGÙœØzçuœuž¥Á]û¹bâ¼ÆþÉŠÛ‰ZŒä«€JQ4«÷hLJ×\î¯$t>üšÝ½FB_®*i×i Ðù§Îu;uךg1Eˆµx4ûXd÷Rž aÐø'ID.:èã¤Æ¸ï'Ù,)QŒ·$ÄcMÜ„¯ ÷„óÚœ/³Y¨Åx¯\~ˆñæ…xVb¶«g<Îc2 …d:ÂMhmqØûgês_S €„xB±î’nK°ÜÊÓ9nqluÄ+U¸ZÂì×JðÙ\Æß â¸qo„Èz~®’H@dˆ"½™‚ðÀ~^ °>î,Võ±¢£9~SÕÇŠ>)l ê#íüå3S-ìé*šVáÒä»!­èûº¶Nq¶ð9’s†®¢ØÄy‹|ûî9ÂöC‚&`¥d*©  N0dÉë'f0Á˜« +Àˆ­ÜÀQ:#\54[¯9¼l+4‹4°À„)!I±Ž–4¼}Áoq°Zg×,ù³›s Ëæ5qwn¹t9Ë7—œøõʈß7'c›eÅ€v…,ƒð•(Ïv¯.Y@ ¤‹Ì/&ÄJé}^\8Âgå ‘Iµs…“6ö-j(Brѯ:)Ñ 4¨?‘P0u"îóÈá”tczãúSJoD‚.¾)(¤ž¹}30Ùò¨`\ZîÌ&)³åÅÞ¶à«úU„ HÒ­…fþV)ß564(¾@+ù7Ì +ã4^ ïvæƒ÷£ÂEê„yX®hò_cí€Ûçço?•+ìË¥â^”@LZ„ìcÅ@³H¾?¢“Ü^t—bô¸} Xð!aÓe$Ü=^Kí‚Þhh‹&xAG©æª›¦ýI\$N ·]{^6 d8¿ 5Ì{Nw3ã»l²-mf›#uך¦ª‰ãðg\.íîã{FË$¸¡AÐæ04 ·áD&¸ µIćlÇ%\ÎE&A¬þc–K¸œ+¹Ý„/ÂŽÖòO6¿§Íîh±>ò&{ZÀ‰äրzAëïéœÇDû幎ögͯwƧ€0ˆ v^- +J£¥å@–ë&Fþp†~Œ–â¨Ý:‚¨Å†<ØÙ¦Ìæhàì8ØŽUÉæü“͸"¾¶1.€åÝÀÑ¿µqJÛèd÷Zâxû˯9á%ÚëoIú¢œosX”ô1öb?ÓAïðmq9hiP““ €K4€÷9#òˆbæ(ðUrGyî]u’ëAx 2éÕ˜òGÀ%à¶SSÈ=/éÓ ¹:€ ΙÀÑO2Âaw~CâJ„ѳJŒæå£iá¼8<;:ÀÂ*AdOú´bw†ë ™/‘€í•¯=3±ocí`Ý€«¢Ðèµ´ƒu„N¼5a½v §xLpª¨ž-€Ä2æ“™­1Gn|+ƒ„ sfH,$_ +ƒ„ s„Ò*EÛÐ[bß8'£ ÷éAù®:íùa÷·ߨÎ>·¹}BŸo4s—íùF›c­}‚þÚØ¤ y¥ùÄ + Ê%aõIéÕ‰íc!ð]~)ªR3¤½*ƒªZ‡Þmc!‡´ ÁIJBP&÷2Äɇ<Ðkc!R\³ +h¿–ß"ö º ã_wVQ†p’\"Ð˳-’½TX‰ÁB'Ø‘±³¹AJÇ›6 t °Hñ¹?†L‚Î(í{kçOÃËZçM|Ebxåa h ó¥‡Z§' + 6ÇZä×¹‹Hè¹ Ï¸‹·„Wtf–û)­ug†ê“;3¤þïä.Ü»à.²µ»Ú‹è;)Å"Z¾ŽØ{™Ø‚¨&Òsß´r’K^-  Yðâì"Ò-:Ž–› g±;¢³Ö1ÂæøeWKŒZZ’2^#¤eR±„€cÃzÁúlj¡vC¶‚¶È«}ní. ›=.¸pGæ,)É*·@‰D¤@P˜Xвމ«YÞÒ!YEÛþ0ÉW”áÌ#H +äiÿµ«¥ ` +L¹áB@aOŸ _$s${C jœ¤‘ˆAŠü¥¾Ö*E# oÏ`w·á³:'Üõ¥‡«©÷0Ý µ8oÒ‹(ëI0˜ëü×kîY¶q¦4!3C²¥3%,ö52fHô)µ¤†WÐ öo[ÿõ=îb·ù¢„ªåb2­ë\U&¥æQôÓHóÆt2AjJ+PH"b wø»WKˆ€ÀþÙãé7HðÂLòÚvÁÂ&… VÊoÚ?ãip\©ïã⊛†þ@ZÀσ6öÏøÿÎ]ŒT?;¤-´j>nA[œ/u]3ÖÞemaM¸f(bE5²DчɳDч¾€e$pÜ ·¦-Ðgá"Õ¬5BÚ–ËSJ”GÑÝxe`ÍÂÀ/C×+ö11Ï(mÂ¢Š³7(L*_EÈT{Š!e›ŽÝæ†ò¤ÏƸasf׆6U³b¶XýR ‡¸gEVa÷1ήÌkI›Äp|{Ï.³1#ûêT€_ð©<»=Ç(нï(pG8‚ƒóêÔŽá8ÿóõÛž],+°…áYl3Ï.èñÅ¡¢{ì/óìâÎE~oU¼7[ïžÔ°Û´â½Ùz÷’úÈT¼7[ï^È9¼QÅ{³õîù©›U¼ç šuõî!¯Âæï%ÐcXïrun^ñÞl½{ÛVïÍֻϮÍ+Þ›­wO˜ÞM+Þ›­w½Ô6®xO™¬wµ¤+Þ›­wÏíJ|`¢»L‹¼qäâ+Ì£3‰l)4ÃÌF‡M9§¸KfMœ²\’éšðmHªñ¡b ŒÄ¸¸ ú“ùÂj¾jñ2ÌASÒýÍCS>šeÆ.t~ú¯dÕNÏci""»ëNòú>ùªŸÿ#”¦çþ`¯rð@øx¤ø”Xnžø¤Ÿµ|ž'\xa!\RôÊl5(°ãÄÛ{ñýp^éÿ…_ýg¼ÈÈ"*…;}Ñ`KÂÄÇxÑ®ÕCǸÂög$]¶Ä¶IGzÜw8­ð¿Y[,Äb‰ÈA¨óó>]´³çÙüÀoKÙB¤—tç“Ïêb:½šþϪüùøó1¯’¡Âe©ÑˆGÊÓÇÏÉôÀOt§˜°Œp(ÂêI—X6)–Ÿµ·úQ'3*?Q·Y¥Xíúºúwå:®×ÄÑ÷àVp žÞÞ’j†r:\F¥ã•î=*OÅŸŠï´uS>iØ/ÕMµ Zß\úççt¨^¸;ÁÆ‚|hE}òâ–DUæaO?ú ++'haP®q,“¤„ÉçMÈo~Á3ÁsB’Èx¿RÎß‚˜€çE[PØ¡˜Þ±:‚‚TL+óˆ_HŸ ›ñI¾W¶ÊRÈÍ6BÒ•z.ð_´iñ¼ç¾–ñJ„Ék%¿i¾’Ü´(„U^$´þñ‘M÷°|ýA_thüa»½=Ï‹mÐ/Âh›žWñyîð)Ndtà÷ÛhjÏÛ!"2 û½íÒDB ‡Ôù=‹”Ø7(9z…=¾0rgàmKj†ü]8X·9Ì3bgå1“@=œ—Œ-’…Üt‹<ó[ô4ã‰x­šwM¯ÊIÆÎ =š?F¯IÆÛãyqËëv–ˆ’å5n€“ÒÆÝ·ìÇ= +’ÌyЫ{š;¢Æ}&›h0h®Æ#Ð6¹×“0n‚›Ú·N€ˆ g¡í[/Äýúížâ_õi‰H x¬¡/&¬ä‹¾âfxúÍK¸oQSÂÞû‚0&þ>H¥°U/(Ù/ÜbYõ)ºFçÝèÕˆæ_MDQæ‘;MV¯aUo"«ëª×“MÅ®‡§Õá©#Áåsí0Ù:# -DöEÞ-ZZŒYJÔRþ½Õ>^ñŸÞôìž³;7‡›?És€Ô:ÂÒÜǺÌ/þ–&ä Šw„›°Ì-:AÂó +ì?8l“‹F߀s· F„a°ÜA¬^ +º!Zö«ì7¶Éqh â²-o?±Œêb\yûžv@ËRÐO8EHC³Þ*HêÏüI6’c×A…O¾R]1û˜!áÄ%Z Ž=p[@«‡/ ©Ð3\Vò#þ~l*hcHˆˆ]×K÷ÂD¡r‰Â® §É8Öºn8¢žÛR3øsF ÇDrœ'"Ö¶xJ[T¹†¾¹È)qÑ}xáË9§/-úYaB'’©x,ãEu\éG„ÚŠZ€ÄVá~ŒŸHŒø3ûʽš8W—ñöÖ‚ázáƒ/þéåø,iW:pêë»·¬¬ÞxôÈî(—uK–/ŤºÚ«Ñ˜Uàø,nÛ“ÈÓyh–íV°p -‹×9ÿÙõ7ÿÙí"4kÏ‘œNñ‚ÅKNw±„4©kh±ˆ40RG;ÃøÄ:ÚÒRâtÐ'”¶9E¤ÅZ–ÍGL¬£ žX¦‹‰Cd7}éà’ÜÜI‡õo•ɾſ¶*&.Õ¾>«Q©É€0ÜMq1qnJL °3ÆÕ×Ož¯Äbâ>½RâX‚Õ)*©pµêÒ›®JpÚ‹@³or5ªš#•É> ý¢ÙDÒíßî1JÁ€¸¥$uÙ-<TdY?F»iÄÞmÖ4„>E܈™  ëc”>`ïßi" M|•(ÍÇ09”Øž‡XÖêE¾è‘Íá½_°ß’+kÅoweõ•¯„`Ü¡t®-×PÜÛ­±V8(6 »Æ ›€âa[®1׋{»5FÍ=:kÌt-Ÿí‘6€B¾Æú±à6³©%­Ð3Ûx­¬Jí¤õ¶zŒZ?¨=”ÐlÅ\;HÀ\»ãú@¢È¶› j‡Ÿ/FQT­í U¢-¤ñ-öF=×aÖôa‘ Ñ’¹^»iIã¾c»3`üìóñ'²a/ úðEë/*E¸½¯ìÅãq,°ÕŠx d‚âPJÐrÍI$m"ZÒÜâº}P£åc®‘“¾­·óÒ·Ýg‚ŒÐn,QŠ^)¸¯ñ€ý1\Îù½òϨÖ*=4G‚çb$/O°m‹ðÖÞŸÁ{\Õ=[»Áʵ[“Klríéœc@zopæñc›³b¢f_°’JÔG6×=$Ú4Ï.¡W'=ÇžÄ,@ØñHÒÇiݘÏ@}%o–SÌǹ°vÃñ0p0= j¯´£;±grÌ`ö“D¹£0½¹u8>“Úd> +_Ä/ŽQðiˆg1ÀpîülÑVbÚ¾ð‘KЦ¥t„cãŠ> ’KЂ$²ååË¹Ë XOÐì×ìãÝ=Í[1«>²$Dã‰&…¹ +JÝ+Þ/ÂÓϧ¨ëcŸ+Ä&nâ/â¹»´ólä½È£ Eå<~&oü£ßH S®g@޼!«R&…)?¶#Ü«÷.ýú¹ï‡²Šg4à^1Ï@ºÝDxÜÁ]Z¼ bGpµ È¯?®í¡§'¬¶;FÒ›ajò*|m—²gÞØKbÄnñ=øì-œ?>µÖ²÷‹ŸËáµø?x[wDÒÊ ŒÓCˆ³&àâœÁ1uá^•G‚™ø%xà¼þ(({Ó.]=TËÎÕWeÈc‹s°„gmW_QiÔ%¨«> â:rÌâ6Òéœûa{ê%£(X—1Ÿq +h ŠÃ©›ÊˆçúðSRwjé¬~ tÁ†ú0ÄYù"¿@+¢½è?+³‰Z»'X$=¼J5Ä9ó ´IˆvluQÙñÙ°›8½Iœ%²Iün)&gó~B ðÌ6Bذˆ÷¾ÜG©J›§´µ u@F¶–ñ"ùè5KpLbÞä$á2€]pŽvœrµŽ¤mÑÖBjä^–ÿ›µ¥l°V*ó‰ÔRis8Ð'—ÓÕÏ\§Ï³ykôŸéÂFúc‰š‰0‘zO[c›_{@{ZsuP¨ØƒPa±*ÏW³ÏùhñŸƒ$|Ô;muåƒäùÁý uàF]¢èjô•l¤ÔÍ4ƒþïýõ ð…^•ÑÿÅuäÄFqB×ü½i¢¯è£ÐÔÁéÁýu0ßwlt8dØ(§i:B£~"ñ`œ +GÙH,JGâ‰ÈÁ‡NH¯ k]ÔÒ¸ˆ‰ª/RÝÎÔE·[ꌢâ½{4K&;ÓÇÕhþü>õ„ºó˜›/W‹ÙüùÝšýkzù2úš&“õÑ|ò>]œ>¦d´•í±ÌA¨3½ÈF¿œÎž_VäGôA¨øù©¾¦ôþùøöïÙ’k;–ˆÆ%Õi¹„átÑ#¿aBùJuMc>[ÍFï?£Éb4çºAé4X C»gc’¡Mvá–{:&¤ÄÿhßÜÌ&«ò wcþ¯Ñûl¢=üÒû|.æÓÅÕ`*(‹¿í|þÌ'è Ù¯õ†€Ü¨3šÌ~–Öo%í&½U7i+Ý´z+i7™­ºÉXé¦Õ[I»ÉnÕMÖJ7¹‹S* 8-FKío%Œ][à @¸€î.àè‚.Àï‚4æ“éÿ÷—«ÏÅø÷Bàw…9lÙÙh Î2¿{[ôÀí9èÝ( ‰…ƒ±x‚ÒL8I$´‘:•^ÓFjÕE ¬¾©‹þžH§ñAÿKZo<ö@½ê=P0Ó;ê0Å‘dGGt"ehM ä/¢ãšÈ©¾HƒÕ·3uÑߨ†•>è'R³{¤Þ#õ?©#,%ݼ¬&rš‚2S ¨¾©‹þ¦ÈÉFèÿ~äÜ˸{äü'"§‚2Ô—ÕºHIãÂEš ‚òv¦.Ò¸Ýß9ÿOиÑÄ^æÜ#ç9‘ˆlȘ¿CtGü«0Ÿi*›ÖY`Ƨ¾©‹þžgŸ©ÿ³€‰èõtÿ{øÿ;Ã?‹™8MÅYš¢Tü @3Œ ™8ÁY¼&¦uQKã" ˆSßÎÔE·û;€%Å2’Õs$øU°LPô,÷`¹Ksü,Dû4K å‘EX¥–€^’‹¢šè¥¾HÕ·3uÑß,™x\|Ðð VF‚ É{àÜç?8-¸ $~e ™ß¿Ån<)Û%¬ƒ°=ÕÎ%×Ä4.R²Úø¢HXy‘ÆíL]¤¾Ýßἑ3‘¿äÀ‰F¬8šÞ8ûgà˜†jö— š¡ãë¡Zu‘&T«Ö +›èÓªwÕ Ë®{¨ÞCõªµP*B#'xe¨.ÒrÝÐÀ;S h¢O{äÜ rÆ)Ʋ¹Nœñ=rî‘óŠœT$‰±t4Ncq2®e»“\“`4.ji]¤Æ;Û™ºH}»¿ rŠªç=ö»ÈµÌGï‘sœ{ä$òÄYá À†5‰Uñ°Ñ©.Rz=à‹hmÎT~;S©o÷wAοÖëLÛ«±=rî‘󈜈Õðï›Ù~ß%™ÞÔ'Ùü-˜ %GÑA Lkò(Ϻ˜ÆEÊ3 .bcÚ‰ìv¦.Ò¸ÝþLÛÍ™߀GÙÇ î±â1¦Lá5nÏ,•i¥Ä™ÂA}ÚƒåŽÀ’a6 Nö`¹Ë=Xb`Š…M€¥ò"M°TCœ)4ѧ=Xî +,#ì,÷`¹Ë$±_Òû#Ô.€Wu‘&:«1ÕðšèÓw…Îñ ¸ì=:ïÑùŸˆÎÀÄjºé*ÀRy‘Xj@œ)4ѧ=Xî,Yz7Ý=XîÁr–˜b”lûhb¥âM¨Tœ)\ߣ=Rî +)Ã{sÒ)÷H¹!RF)f-R*¯ÑDJ¾™ÁÀõýÙãä®p2¾·$íqr“»&Gã¿ïwõëwø}¸Mƒ—-Lõë·øý©Þ Ó®‘—N™C3Wž:‰†©„z¦Òà™èÓßã¨ÿ¿+µlÝçÊÛõû£~Í9¼é £¶ƒÊá©‚l0:K®‰i]ÔÒ¸H#†Q};SiÜîï€Î ˆý¥ÉùâTb'•}HÏ©÷Hm©7ÍÍgÔZá%š@­/ѸH2©q;S©o·ê]5ÙgJÚõ¨U¤Þ”ÛjmŽB#2¨Ì'­Ñ¦‹@Àæpœž§W‹Ñ ¡”íy9ú×ô`4Ÿ®F«éúæày1]¢{M–/Ÿÿ†OÐOøËŽJ»jûKéÄò endstream endobj 56 0 obj <>stream +%AI12_CompressedDataxœì½ms$·•&ú ò?Ôý0öÆt1H݉‰`ñeV{mKaÉ^ÏØè »)‰kv³‡Í–GóëïóY™8(²¨n͵c›j‘Uùààœç¼ÿÃÿõõ7/N_ßýùúŰí7Ý?üÃÙýõÕÃÝýùtóåíí‡÷÷üèW¿ÿõÆ„m“N¿Œ/󉼾s÷ö‹µÛ^¾¼äÕ¿úÝÍ«în¯Þoήî®ï½ùÕ¯ñÝ·7·×øöêöæõÍûw·W?½x}ƒ?ÿóz{uóëò¸ãùÕÎt'ÆŸ˜iã¾èãæëßòû«·?^½ ¾Ø˜qˆ>ÛÝ}xûúæí÷»»ÿÀ‡qóbìÝÆvóÂŽøú¿ßüþú}uÎÖûàÃ`ÆhìdyŰz7>ŒÆO¸ÚlC4}Lo¦~â­'ÄÉãÆçw¯>¼¹~ûðõýÝ«ë÷ïÏînïîß±ÙÝ^½úËâëË»·øøë«[ŒìíÝ‹ßß½¹z»øþw×ׯ¯_8ëôKÿòòæöÓúæêacNòé—Æ¾Ü}¸¹}ý»oþ| ·Îñã᥼ÄÞ_}ù‘ßùqxùå|òÍõný=žÂ…:ûí¿þ?Ë7Ç´äãWÿöûëïodݱÿë×ùÎ÷wïÞ\Ýÿ…—o^ÌÚhì¦O_~{ýËùp-Ó;ôãÖo^ ÿ·ü#Ÿ‹áÌK¼ÝøÉm^˜˜¾ÝOêõ7×ýbó»»·×iNï¾I ï\ß§Ó7¿ÿp{}ÿ‡·7œA˦4¿½{}}›?’ë/o¯dür˜ý¿é„o¯î¿¿~µÜÝ~x²Žå ˜èß\ýtÍõ5²áå“ôÏyû€×}yóÝËÓfxùýÃ&¤Ó¦—_½»~ûíÝe(/œÅó†ic¶Þl¬w‘NßÄŽtkç·3ûó#Oo±™ÞbžËcg\¼}ý2oëë×ËçxyŸRf"€Œ¾a}uƒ©ø"‘E"¸¹¿y½§·`71ý#³½Å´òǘÉö“Žýd’Ù€ÆÙc>IóƒUÀ(ÊÒÙ—g¿]ì…~K.aŸÝ½!å½'KáÚbwÜÞ}Ÿ¾›—opõ‡wÝ¿uÃtòïî®ßãV·×›i<ùþþêÇë±ñäôõÍõ=¾yrz¯OÎ^]¿¾¹½½:¹¸zõááúäwØ¿×'_•Óº“?ÌW\¥S®än'W¯nî±)¾»½þ“«ý9éú+¹ù«rók¹²;¹N—^/.½ž/½I·¿IçÜ,ι™Ïy+·ïNîÒ¹wéܻŹwó¹wéU>¤S?¤S?ìOíN>Ìç¾¾úþûëû“×xÁëë“W˜ï“÷ ê[Žâýõ+n»“?¸½½~8ywuÏx÷à ®7|ýç[ÌÒ½ð&ÜíõÉ«»w?ô~x8¯z}Mît’Þa~ÜöíÝÃëëïNN/N¾zôC7ô²íÍÍÛû“Êÿº~{òæCýq§Î+ÿ¿»ýÝ5nuóöš¿¿¹zÿêÃ-ÿ('\áóüôÿpýžƒ|}÷×·'×ÿñêöêü +êºyuu‹ 櫾»y«_ã{pþÛë7w¦ß=ìÿJ3q}{{óŽ#ÿîêÕõÉiZŒÓLlù'w¤‘·¯ñJ'×oäBȘb¹iù#ÝSþÚž>|}óã dž´yÎÿuþí»û«´¢îïäMe§Ìï-Éíº“ïn0àLxòÉ;<çî5 DÖz¿Ïþ|õþz~Aù§>üp÷á=H¤;9]èÅâ÷ÓDóË]¤©ù2}þå’\¿œOú2ôU:é«Åýʸ¿Jgü!ñ‡åmþ¾zÍ•f9Y\âÍÕ«{Ò;dœvõJ6DÚÒiGw'?|xûýÕý‡7·W°Á–ÿròê +×uß^_öÿãå·ï!4÷²rHÂéâí«;‚ž/6/׸¢†ÿvRpRŸÄÅ·ÿoº9øa¹õæÛû×ßþôîºû73š¼­‡LÏõ¿¸ºÅãÉÍÛï°=~Zl:N‰œž ̇ù扆{{ÿÀðõÍwß`loŠœ¼»¿{ýá8à îø@‡ÛÇéä«7×ß_m:3ù0ÂÉÕ;\ðù-¦xr~}ûpµ±ÆeâŦûÏë·ß_>õ<ùäüò›ŸÞüùîöåIúÿjä>Ë|Ló×X# +îwï:Ä_ß~ÀWÿr÷áÝ—o¿»ë~•ôÁÒ°‹ÿóúõæ«?ÿoü(,` ¾þö{ü=Ÿ üî×Þ’ìþz“¾Ä•ògùÿÓWŸ_¹¿<}zñöÇëÛ»w‹Û¦óž¾ß×·Wo¯î7òù|»ßÜ@~}…éÙß'^?üéˆ;W¼£ø±¼Nu÷GNX|õôƒ~ö\ß@>Ýýõîþ/ó*Ð$òø]¿ùËõëêûæO?îÎB7ïßÌ—/?ùš»åÕíõ7?A2±pß¼" ºßìî?¼ÿaóíÝÝíþ¶«¯æÌ˧<ÿoã_Ëo¿z‹_~h=)ŸP? š@ºæoôYó5­çàË¿—gœ]„»yÕzLãûùyËïž·LÑ-°Íûù1éÏý­É¢ÒgG/û¸õSzôœoþz…íÿ››??ú4¾7däkl‹o>Ü<\ïçèîÍ;/6ßüpõîZ6{9ó›ù†^Ô¶…\zñâ q÷vñý¿Phx|Ir%Rý›¿üôënùUÇÍî5tèXøÏu}÷O´ãîÌæ^îîÓ7ÐÀœhxT݆¤XŽí +;Nû¦û‡—O¶{¿¼“h§ò]ëËoqÝî|žŒ2¦ö0¿º¿‚ÜÿÇÍ¿.ßýC­>Àí|.éæ1¶nñë?ãþ»Ýîlw¾»Ø]žõgæÌž gîÌŸgá,žMg§gggçgg—çý¹9·çù;÷çãy8çÓùéùîüìüüüâüò¢¿0öbè.Ü…¿/ÂE”ûãìã÷ôÑ-~ýgA^LÔðÈážtê£ÕüÊࢋ>Ž1ħxwñ,žÇ‹x9õ“™ìä&?S˜h8vÓÙt>]L—§ý©9µ§Ã©;õ§ãi8§Óéééîô¬;=?½8½Üõ;³³»açv~7îÂ.î¦Ýén—&4<ëŸ:ºÆ‡‹5©&Ù~Ú£¾áckøè!S3ÄaN‡Ýp6œÃ%Í8ëçœw£ .ºÉº;õ\¸K,£ñÖ;ïýèƒ~ò§~çÏ0ì 9öÝhF;£ý8ŽaŒã4žŽ»ñ st1^†>˜`Ã\ða !Ä0…Ó° g˜ø‹pûh¢Ctòv———8ÎqœáØá8Å1áˆ8ŽñÒãp8‡ÁÑ_ö¼ð‚?çØŒØ®§ÝÅéÈé‡Ý°çFì<ýç.lE‹ i°-{>[ôâœ?ØÍØ´;l]#6q<ÕûcŽ;ºcOü7|&ù]^ÊÊÈ`¬° òÍÐÇ~êO{lÃþ¬?Ç ^âÞÆXƒqÆC×M€®ˆ]nNÍ΀qšsζ¹ä};œÉŸ‡³ 0 2²  r°` Ûßb‡[ð[ ®je¹¸Þ™œrƒ?ÿ\>|>ÆÅª#:ò3ã>º óî…ZÀÀq8áá^(Š”…ÎNå é‘y!„¦/ûTjäQÈáäðrŒr„|D9¦|œÎÇn>Î:Ù$<ÎWÇEóxâgIáD +½<„ødh³–‚|…?MBo" À6 .4úåi1nÃè7<æì|_ËS¼‰#Ï[ž9ŽÛè‡iyãcNOwîGžjíl}—slÜöS‹[>~éãüµ ˜Ôüò9(é›ïGï¾{HN­Ío¾‡pÚ=òž5¨hçÿLYýæ‡rî¦ü7ÂqÛ;m|ØB€ û™yúT™èê´íèźŒ›Á`^úa¦mæð_Ѽÿä$üØIÏYŒ?¼}{õæúõæûüÑÆ`b:\®€œƒÂþ΄{|Ê‘÷¿°™*ÀÓtìˆUwÀA<&9b>‚£^—AáµÀT<útÝtø'±µs9Îò‘ž‘~&9b>‚£^'ÇŽîT8;àžGar“ðÐI¤.€ <ˆô„ä9Täò1vÀã”À&À;÷r¯s¹þT®<`s€d1`¬êg˜–SÜ*œŽ©¬ßŽô`¿€'ga×a(0KvñÀ0” =øôðÍæòÀ=#ðƒ”±{=¸ùÒfù€)8PÎ$ñ=˜þðÕ¦ÿx+wÀ_ØÀbÆõ ÀggX˜Sàµi5Bš9H8 ¡© QxÊØu˜Ë 3@zzHÒ2ÕØRæâö «y +!ŠGe‘i!¦{â%ˆí3®29Æ ¡Ž÷J„p6¢6V8ç9h ¡õ¥3<¡›…õÑå_bó˜šÇióÈ4ß•_òqÖ<ΛÇEëèzbÓË5~ÄV=u‡D³&©:rÊâ$è’½H÷ àQþ$ÝFvZ½å¹¯/$£Åa-“þîA¼+é4Å-Ú¸çG-ì4DèÂu‡àû°ÖïG»ì’Uuvº/ö¦åÌ>Œ¶:Óàû÷=æìd£0ÓØÓ1Žè°µâñó>NôM)ЯĀ äõÕÇØ8À`:þ³8\ãÔaGþéÌþ§Á‘W‡Þ ‹ÝÒÍ¿êíµkzÇVûº“ÿµØ@PG‹³(ÔfV-¾¦ù_sŽfv*ûx2ò¾EFGI Š|£P¢XJ‚ɉ^b…ú, .Äxq&r ¡AEQ•„ÅUXVH¥õâBW];‘Ñ_`I„Qˆ%1f;¡¦^t“‹,ÏÎ9P¦Qª%¹FÉ&² ‡MâME\rg‚3N;H:ʺ$í(ï’ģ̩'r/I¾sA?;A S–€A´8/úl'dÛ‹8Lñ\àÒNÆ”åbÍ’²Ñ‰²h…°û,#)%“œ„¤ì²°Œyo•­3Ì[¡Ï¢ó"“n!Íi¦´DI‰Tl—i!-¹Ø+ŒX*’•b'æ‰(† ŸMFŒb†H&ˆ(&*ZþŒ0I‘ EŽDA^0#±b/è¨p'00 +ðóõñzÁtç‚âN—òäHü”ÉöÕ m~BÕ ‘}BÕ µ|BÕ C˜Ô1œávþ¸á'ù9Þ|÷Üî}-ÿÔ­Äè~ù/çãbqœÏÇÙ|ìæCb—þg¦ä’xöÞ~|kweo3ìål7*V¥bkÚÍfÙbš-æÙ8¯Æ|$Öï²+™  ÜÌ6Ÿ-sçM¶œ~±B:±D¦cÌÉ VÉtLÙ:y*ÊtœeKåy¶VŠÅÒ\vÉl‰#¯irn,]Ãóµ/£[;3vgi9öÖÁ½}°X—VÂvÂÚHØÕVÁ´,zï£ØÔçºZ™[y"¾M­äÐ÷É>7Mίû12’–6Œ%”ÄAì8.› í–~‡…Õîç\-Ï%ï§n†‘ çõË=¢®<ç¢4ºà!®ø~G´©n§ÑDù¥ï­s¦©Ã<ëªÓh\S£q´+ÎMÈ_pÈ[|ÉSöÞ¥l6›x‚øŠ_€>Ëì °büO&ÿ N®âæÊŽ®ÙÕ•]ÝìïJ¯âó¯Wö{ÑóÅ{:¸cö€%Ø©@á3q_vt‡ —±âJÓ+6 +¼Žâ›tïÄCv–}‰å—â+ë³^GØ:tâ¦pâ:óâ>Å…ÄÅ•6‰;íT\jéÈÅÙ»y1—ÝÌ9jIéš{óÏ’¬wüÒN³6ì -³%¥[OŠJ(ªâÌqÊOa²E3uMf>v³+ž^¸ºæì{î¾äðI(wÙ?³çxK)¾üV‡[~tÙ±µ<‚:bó˜ZG7ÿzúÔ¡MxûõJѼÌ{±\„ò3#O:ÀƒOž{ÒµƒOž^Ž´Ù³Ç2‹'9ËóØØAÞwó<¤ü‚{ä¿’q-· „ev¶À‚ÎKþyâ²3Mö2 3ä.)ùqFÖ»n¡¨]dÌ\0ò0£à1ël%1–¹ÐÞlIÃ/É÷)Í>©q{En¯Ê핹$A¼¤†,ô¹Nf¸¨tI ¬•:W)uÓ¬Ô¥n¡Ó ]C¥›²È)êÜE¶ +BQˆ÷^ˬwórð=-wW’·;P»cXÍÐ3dow ~Ç +GHßçGGÿº#¿üó¼‘ù’c‘Ño±ˆöYÎÈrM~†8=‰ýÖ¹ é•ѺG‘ϸèã,JSÓ¢4Ñ¢d‹E)îVÇÙÇ£Öʃø¸3‹½©¼":í£Ð[´Þy+WDWy"êR°©|å{ígSò£:éÇQ6ÀSMÊO„´B ñawúÇѵmÒµ]ÔGeíöÞû S¾ÊÈ)ÙƒR¬‘×1çØµúr¤dbXƒß_«›¥<DûÌãÙ7L…Þžg{²vcw|ñÆT»qÝ—#€K…ßRÁ·TæjûPzqäNç¹ÆånnÂr¥KßÍΓ ^^ν7vsÙË8»Ü߆l[÷RJDI8<ð/Iý<Œ[~ÎE¹ËA¹ÀG3é‰`l¿n^P—^~ÎE¹ãAR«ÀÓ§4–¼s\]PW6{ÎE¥¯‚“‚kÁ‚©š4QhV4;æìâ=MÍN€ùœó9æsÌç˜Ï 0¿„nú÷zÃÏ 0Ÿ`~gùœóÉ×ç˜Ï 0Ÿ`>'À|N€ùœóé`ü¸ ÎŒÏòk”k>§À$ãQÓKãÍ"àŸ:s~à¸8êP¥Òº•¦¯õýVšÁRÛßëùYµï*}~­ªïföw–K/Í­ygFhæ@1á†Ý‚!ŽsóÝ=SLl1mì%c\²ÆUðX·ˆ;{ÒÞòÆ/[?oþyû SÜ3Ä8[·–¬°°]¬Éºšm6l;þP à:e7ÒÉ*µi‘¶¢­IÝ©+5Eiw½_™‡b·vØ/„ç’zÖ´37u^ôrž §kPÎy“rötãç Ãv¸› ç¢[U{€rNW”s±§³,-’ô´«i'-ýÇý¨Ö|]e[”•qmk\ç752œº#¬Žç:ŠãpG§Â8öleO» +M]¬•Y’B·¦Eš EVn×P$à*ÌðëXrŽ®b—¿°áëçkµGú&žô 5ô¸ø—†E²¶YèßÚlÛÚlÓÚÕ™ƒ«ÜÁþÀÞko3¿ï¹¹Ø_ko!¨išqÜ€÷wòËàŒ«ý8Š-yÞu©O^D÷=iÿ=`Û ¬Â0ÇøÊE—¢£/ù8|Ô óçâ£gá! „ºGqP‚ÖÎ&ê*ö$þYéƒ ÞÕ}¼[s°®’b±!Å.—bYFj5Å­àPW¡¡6zÌ«VQV÷$+i÷ê"ï:H;-Òér^ ¿Cй-ÿ@>Ýʬp>+ÏK!¸¦Ÿ¢FÏ´& .;cvü + =')T¤QwÒ”s(ÓÒµqÐ!´ Œ=YÄ…1é´S¥G0ÐHt¨î&Rçßd!K"è,¤MÃiÈÆ$[–ßXþŸˆŽ4Þ?â>Þ(Gïã`æ°[u]ºÐåg×9èA”Í·éýèïŽDýG³Â®eLXã¥/=IpQœœ‹é—h$‘¤(÷™×‡— 鞇—æK> +/5kôF¢%¿ˆPú¤?O—ù¤î³Ï7ü|ÃÏ7üeo¸wß”8Æâ¶Ù»ljwÍœ©½Ÿ¦«Â#jGÍÞUsQÇ,V!‹Ù¿Õ)nˆVQ‹¦þvsîoqtí£÷ñ‹uã2ýwǸŠd,±Œ%š±Ä3–ˆÆ8{„O«¸Æ}d#O#¼ñ",{üÁcÔG·ø#}<òÓ=öeõÓ¨s¥î¸ÓŽ?þϽáº9ËãÝ¢+§]n³RµXÉá ûî*ûÎ*Ë®*ËŽ*¹›J·è¤²î¡R^ê®)­F)‹Æ(šŸ<Õ¹¤Ùeã´yì9ÎÚG§>úÈŸnÑOë“Ý'Àúû¹á2Qj‘$lyG§»b/Ù÷1@wk¥òŒkÖU¼ÙöØä¶*囹·ÊèñÅh¶T›7ƒƒÚèݺÍJóŒõõw*ÚØ~;Ø)4®¯Ïø/ê퇦Þ8¬’Eë"N‹´±*ilŸ3–VžVºŸWFo©àû²ž‹zªn&³H1zì¤Ö’O8\ðà‘Sž3Çÿ󇛇ëÜìn¯^ý“»úsé¼T¹óœ&7å9?§Çõ95î,§ÅÅœçr6\Ÿ3áÎJ\'Ip^Êâ±$^/¥ðÎ¥Þ©¾kÕò:?\Í«{ºœ×c „:°{<0Wðòs%É~®Ý•*wíKHæ¢ªŠžWc.™‹FvuÕÈC5#«’‘ FvÇTŒ\Gm™¶½ªõ]ªÃñ¬ÌÞƒdŒ^þîîí×÷7onÞ~ÿâÅ‚º—_t¿{Ço†ôÍ×W×÷oAö—w·7Wß_ƒâËoãÆ-;êM#8ÚèÜÆ˜6~¶f‚Šè{ãÙ6Cˆ[€;7õÔ…Œ¯*ÿþé¯éküïƒüjòÀþô“üù?ðëÿƇÅ”l~»ù·ÿÕo^§+OnY¿Cý¨Íœõä m~Ó:«Œç7­=úeóþoñßÉéýÃùÍ«‡›»·W÷?m¾†²»»»ÝüêôË<Ý//^ß<Üݿܧ`I^~{s{ýò÷ׯ~½ùG\ðã¿zÒ¾J•m +—´›¿p@–s#p1áó7&†-¶@š“¡ßN¡ÀÎ`£>N²'l »CVQ t>Bëߘàp¦í'ï£ yt{ìvÇŽ{°S®6grßî‹«"¶¯¢±`ãCC±voz²OOÌq†Ç“{Ü×=œ˜ï·ÁZp‰a‚:€ïüÖEÜØÓbŒ¼”ŒÖÑž€«Ã„zð,7ƒþ(·¶`Ç&Ÿ8'x÷ȳ†«ˆphÖþ—Ç[“NÀXL?ÄÅ«Yd˜"ðIš^c‰p-Ff…“ìÖ⯉Ìc HØð h:Ö`@Ö†-N°ã€WÄ‹8€…Äö3Ü–ŠÓä{ ™k¶cæ6FÌš¼ÙÒ&=ÑŽ3È}ø*Áà>Øï$ïKþ‡÷ “ó8aÌsúÞ Ã3AºXºpå,SvocieÀm@õ˜…Éõà˜÷ÁÒƒ·F°qð¿ô*˜!°fªÎà$€µcö=VҸť5¸¾+?á!Pcû6€S Ÿú#Æ3ðnk'Á®¤LŒ “‹‘°jAïéãùþ6¯°‡&Êñâ~ãÈ;!EZš¶ D܇‹MÁÅ¡àÀ{ÒŽDZ,ùŽÕ3”xI®Ö0q6¯ø$àF¡ì¼ +îc€$8<¤fºî–¾’èA@ˆhŒÄÅÞAœâ Pé’ÑO”?9,—Áù} ¸6 [0xPQâ » ‹@—Ûµ@ŸxW> ÁL’­ÍåÇA$r°ì Cá ªxѤ¡€ßõ +'ncFÆÊ’€l64aFlOŒë‚\ 1Hb <ã©s¶Øa !‘0œ„iL=vV  ìi °°ØŽX ortõ@þ +cÁì<œç@ÞOcß[º~xFzëKpƈ͈}6 …cwÊûCä v$_'kÅ€£ƒ`¦Ü*À׸çÁ$®d] Wò€;8¤°¸!ÓXpá·vBÞZ½…,áÔY •K±x'<¨ïØ(65¦?¸ˆyS'Ln$Ñ`CBÁñ°'Ài|Á¨qÓþAÔxðˆåIn²ØÄ†¯Êëñ¤Ñcj@ïàÒž$¾ÅîÅäa’|Hïblà -èÚm>À›³^Œœ‘X=wÚäò“pÈž‡hÀ»‚¬±ddÐ7q[ ,Ü„&?È‹˜À!…E¾HŸˆ€å±1áX< |J\³€G‚e0‰&‚gbÆÀý±lXâ8‘¡â Ã:&¸‰sœBK‹‘ Á>‚b‡HÝFÇo{Ètˆ{z¹@U5ÐO–fÎ lKâ¸Qñ:€ýxŽ) žFÈÕ i$\ꉦ«¡g±;CæËL¤:‚z¦n"{Sß÷‡†Ü Lx¢ñÜ€«8(22Ug…SEÉlòH@pØœi"pㆾ“ÔÂÈ€xÉVxT†ÞË‹ù/¸w77$°û³ ˜vÍ»úû†P µhJ!PDVè¡ HeÌ÷ú5ÖŠš@ŠrÉ‘66»ïñŒvÀÖþ˜ïAIãæ&ÚɈ ùêÈ,‚¿zaSn^x³†b,Õ\®µ¥9p+½ƒ¸Ó#õ +ƒoþDFó#Sïq1iÄ̽0ädø„ô~ÌÓ,ÐH«î 94ˆ¹U6;òÜz+õ­-•˜¢Í #(‡lÞÄ´£³$bOK¨“åØ,8Ëô){âÓ O› L@Ü“fî žFq°GLƒûN0ên×À'Ë¿7'¿»{Ö½» RúÇÙzs6N~}uûÛ«‡û›ÿÀÉ›_~Y4Ÿo¿»»“¾ÊÈ ûõÝŸ¯_ž~9½Ä‹|óðõþñ¾6›?½.ôm?}—…˜ó|Œ›_ýzó§ÿ¹Çóÿ탌ù\>ቀÀÍ@ Øê¸áf/Ûn?à‚b© +ð/ö+X,v9Ä<À^O…†cƒÝ¨¶ 46à¯"uGð#‚E&HF`xbOàÕ[:Ñp•xÏ6àÛr3Rp–€ hÉçí,¥<Ðò Èƒ³m Váò1Ý®¾ +;$>áv†E>Áø-0¸)þÍ:ymÉ Lº-%GLn¾Ý0ðYØ5 äÍ8l13¸ +  ²Çxƒ’ =„¸!™-@ ¤Ó*¶â”‹Ëé”°&cå;¾ƒcêh’öÄ-å8¥ v+h˜¾¿‰/ ±šÐƼå4C©ÁV pÍ-v¡œ…v°q Ž… .7S'“N/‡Éèö°Xb%°pœ ¸€€×7t„ú xùD݆ë/Èz ?„nà¡üD§WqÜË@\EÑaš0§“\Eóƒ¥êÁ –*NxDO^ +p’-½©g¤ÁÄøGóËŒiXi/#Æ£z0` Œ,«ã\R4HÐl0',{”) ²%`q7pK<ˆï  â,Sà)»B¸¦£¥ÈS`Ð0­Tévà_žèÝ™­)”ÛO8 jêGè…«Iƒ"D͹ùÚØw™pf± ³`ãÀ”ª¸–Èl3‘£sF±7ù*˜eè’·!æ7ÅÄ9ËÂir3ÂÏ`ðn;ó€'Žð +Õ¢Ì9G¼Š—ÅS±2Ü$Øã½lF¢YÈu`» Zoz4h…@ìz°!jÆô€g“ã p<$ì1ܾ'ÿÁÂ[²O¼ÒÄ|„ÄfÇq–lyO­Žu€‰<¨VGêŸä£øb$ÀÇ'×ÇË‚­Ì2¿Y"Ã;!³…zéL²ó“žA04lÐ&ÁEÚX!Sòpy)¬†X¬À‡ +K‡^ ¬š+Ñ ×Ð03Ðd òW D–ùe`@X‘Ú0y”Í›Ó ™Kjd=jt—Ù/·÷@ÆŽA¤P’^…ÜFä'ˆ ZîÈ¡BË Ð5Nxg@ÝÌÕÅC½¼nKMüDMÛ™—½M™w74Ô$HàØ(ѸTt—p#ˆgdÇ {&Yôäe|¾,œÜ}*ûLfTf)a˜fÅ« +ƒ>ÁÇœfbä}ŸÏ§ùÜrö-³¥å tÖ rÁ¬CŠ“k-D‚YNÃHÞRÜ›!YL ÅDQ &¦2ý\XŒ¾OKh¤„µ¥˜ÀóFˆ¨¤/ngáè(?! 1ÅÚ‘8½Plx%†í8/½s¸UÚÏgÙ*©bCÁ&ñª‰OÇãhŒ,"Ž?ØÐ—¨/h7Ãiõ—ém±e±)Aeu¢ñ95Lé}~)“à NjΧs€§ât@1O3Aº}ýñò•Ô—e ž¶ð^<ò€,%ÜÓ +’ŠXâÆ\MWÞW(„âvžd0¬^Ù“Ú‹A3°e<ÔˆÞ-ÖCË÷"Ò7û¥öÔÜå "…™ øA-x6aXÑŽÜ :+ov¼§8Î¥¥aÙ÷Ø1¸M¡Qˆƒ<~€šŠW”I -’“xåçýÄŸ¯Â£ ÄOÙ?tîª'^\m:ïDG£m¼÷ì$Y¶ª]§É‹ÑìpÞÜ4Ç.×8qTnÅh@´02¦fÏ=©_à¢q˜EÅc¤î@ ¶”ƒ¼ÊŠ3¥Çó¸q’ðô„¤b¶Æ,ÓÈX¤-çk °¡´´Þ­d´'È0|sÀoŠd÷½ƒI ´Z,@[°£m´Øƒ¡ÍÀ!­fH†kìTROAøË@ ‘0`ž DùQÞÁ B ?QúÍÀ†„‹íF™Ú%™g(”Þ:¤·Æ[á&Òa4|Ò4ᆕná”߀þ›Ù@ß…L'$—!Œ-ÚåOÇí½ÐP—vÀý¯ÀÛe#&„qt… Æî­äÞXð:ãí0®, ´ÓQ>0êXÌ&d·´pG±&‚;K’v Φ´‹~eœ¡¿0ÎRâaáìlÒ¡49¬iˆðÃl¢0è$[ŸØ*fa8¢o5­Op³¹‰73|YZR¸KŠŠ>Gþ $wiK³–ºªÃ( + /8ÔÑb>fóçÒlikã|QêÜøS…$G†Ä4lz^|#Ü\túªkÛ`z;¬ê@èÁ­p˜öd<±&õ˜4h‚1‘Š©[KwP`qa­1w#É›jµ,¯#ŠÏ$*´i~ÙãÄïT*~(’Äï=„ÐcÃ;Îh~ ´”Ò9ƒ­k˜q$5ÀfÏÅDFާcðiâƒÄ},+[gìàv0|ñ x×ÐdjI÷tî8™ë@ä,¤"¦#‡ØjØÖ^Ø0¾åíé¡Áí¥V=„´$Li Á¹ƒ~”׎D#–Þ%{Ñ㈢œhÍ8/Ðl¸£¬¬(×Ï v=}–fÄçð’1û¢êË-KlÓ‰V?ÙÕ€¬'â"=@ä +Ù³‚ÿ«æL &¹CGœFέ&ÔŽ[àe2óÀh›„Z :ªèФò‡OøÂõŠòAK|e&MÒ×7eʨ)l ‡§¶ôVĉWÚÒL‰÷™°ï´Í3À¼m︯ÊÎ^n ãøÆÀc6jwµàÌp¤Æf›“G· ~gºMœ7éz³ħµ3ð㦰:á@$¾ÕÂK ŽáÕ(=ƒàížÊWÈxâkœO„›âL*æE÷„½£û5š÷ÑGÙƒ20™cO}µÉév§¿R1[CÁ6Æyêv5§¦Š4¡Oqû@—›g„¤›DÑU¹Q‚ª®tÈàF ¬68ʬ¬¤&oépkæór!kyFŸu ÎW AC]¢oF7TÔ/qO±=w%| i+0yÙcVËnãp$¾xH-úyw-ùVð$˜5f0 ŒHªqö4^Mž.å<ޤp’%Ð$£º—#·q¡ÀÌ +A%Ã@08 +ª1k`5ŽâfôÉÓ 6ÉÅ­!½õ4l‚Žû‰;\!8Ü.®¡É'(7Í®lÜÙrØœ›(Š›¼§kBËRçSx“†[_`f…R…÷ÉýÉááW—´@Ò5 DÑø˜C¤-’Cìgu¼†×ŒL˜dB‰ñiŽ®‘¹¡£†;]{±Nd¿Ø<1ÏP­cp xØ#é½V) Õ– _y\0P›¬5uÆ«ŒùW +¾OVî2PófÜC÷_0±çSe +ʼn!0k ‰‚gjeLŸQërd†jc’g¦Z«‚du\9܇¾Ÿ†Ši¨­Cº‚› ´;èF:^°îž©NÃe”[2a9™éJû•°JlL è”ÀËZy&{¢½ì ”YÀg­{“ 3÷±LØÚ(­gH¤ŠgCEÑ¡*¥ŸŒžî< ¬1?¨60N“Ï8M+|¶¶60f +podÌÔ‡¨Œudü`oƒ„ +¬Lf’P&m áH€—LÚÛc8SÛWÈÅZ[d°›…Å1ümbJ‚2èð ržáhØK°«²™‰Ñe?ÂAÏœèÞ¢ÊÔæ'†ýõÊ—ÁÌ¢e½üHþªÚÞÅ/$L\›q0Ú\Æ3zlUÊžþ±ô€ÊÚD´åN)E¦§ ut/Lý£`ìÊ̇%–ólF”KÛ qIÅwŸ+zÌÞÑšŽ•Gµµ”?Vm©Ú“«v¥rØÝk7rá Êí¬ØŠòZ7Ù“rz+6§üåŠUf'{‹Ï*Ǽb×ʧ¯8¾ + hJQP ‹E—Ž`hI>QKP:Q _x±”Ý:\£ý*ÒCÁ(Ò„!*ÎDÁ™™R +ciâ'£p˜ŠŸÉNÝ4ñŸŠÙQ8²Dùä©B‚p=kÜ«ÂlþQ^«ŠbRð»Ä=)䮢¥Z +€ +µRz„ŠÒRºˆ +òjê4*FLéF*¼LéWúŒ–ž¦ÏªÔ½ §Å:„®©o®ƒï”ÒªböŽ9£¡77ΪÔnl¨4ö*R±©÷«0G}—:BRÙ t¤eË–‘¢3‹ýCq*Ó‰Šmš`T©2å¨èSešƒWF$éªlP*HV™±TŒmÓ +¦Bt•5M÷*‹œnYöTŒqmTÁÉÅ ¨Bš[æH]Œ™*„ZYAKàuÓˆZGk+[l ïVf\Þ²«ˆòbJ®CЕZ°/LØ*ê]ÀUÀ¼2¢«xû¦1^…ë+“¾Šô/Þ•Ðt&èËk§„ÊLPŽ •ØÐt¨¼å_ѹµkFçh´\<#±.-²DZòmU®"5Ñ1G=Ȧ«¼MDU²ÄLÌd;5¼V#uÊFÇ”#Aëµ÷ ðeKè- µi8Ð}Rç¥ã&ßvÄá¯-+-Df·íÎ I›<1$³ž•K C ­’­Ó%S»Ó"q¤m©*ŽÃ…‡rŒ ¬C[ ;¸Ô~NA6S Œñáez¯ý¥A kÌAìiyÛ»Z!bDSårŠ%jé ÕWÕþ]ýäÚG¬P»š_5§¡vYëé¬]ß=^/Kò›×«Y»Û5M´ÜöŠ´jï¿¢Î8 ˆ{n öF RÐÛªŽox:…Šï²Ô‰W#ÓÄÕ6<»ó’K¾æ9!|l½‰Üyû‘³¥Éš?’ÊJ@EíXÄ-c1 d0¢‘²ËN=«è3dÜdx WߺóL‰-ñ +ôAñ,3\GƨÐc¼ ÕýÉÐH¦AJ¯ɺPÏaÝGY;õPý]ã}ë3ÖãV÷QsG,Ĭx ð;Ó^Lý~¾ïr°1`Mg“è°äøPoh@ÑoÚg9±‹;IÂWv)†M4ìUÔöåJŒÞ„’äðêQ¢æ"ë(€2ZÏUgTïÿªVgÑ|Ï´y7ö=kað ˜ L3KNà /: ©C2HA½#¦œ1TÁòÃlKt´VƒÁ‹?®qŸz.õ»<µ&¯ÖkhÝjcÑ)2H,„/%•"—ü…V:Å^ _M`txz“™éN­¸I¨Ìº¨Ï *éõYLïw,,ÀbÈzÓ0Ÿ>H™úÌì:lG_]íOýõÖÖ#i±=#ê>jVkvµ\‡z—ÕôiÐrysU_ ‹“‹ºæÎHÁߨT içͽ´¿ª"«ýsjzËo÷ª¹õÉ㘘¥)J’ilùõ¼„ê}V®ª§h~ι+›€ÆËH&ÆDõÞ¯…ŒÙʈÃ:,åK1*Š`%^8è õðä²Pª].ÐûI¬i’P„ò"S! gh.D*ä¹MÒ‡˜‰ÍG†‰–=Ë*:šÈÃT@äX/V]]RëÓLŠ!pQ@.É=AI%®¶ Xq­Ô5¦yß°¤Î`]dž‘]é¬IÏ\ÂÙÄäFóe§ˆø‡1ÿ,í!ªs2q°ºr\Þ‹¯ ´#µQ8ÁÄ<®)ÂFšèM1Õ~éDo§§«Ô‡Æ}¢LIý +¹FS{qL–Yo@,¦5´ìѲå¡B±5› Gá,0e¢ÊÚZžå%ºÀ#)Õ¢bwlSõŒŠø +â‹nIRS›®øŒÛóA&²¦Os+ΗšÄ~#¥U¼KîþÖNñTZ{²¬A´v½ã<­®´ÒÒi¨ÜÕ»vjkÏK„ ö¢§‹ŠSñ– J#^ßïÙŽ—Ô‰Fé¸}”jж8t•z aÀ»'ú¶6HFY~_ Öj +}6Ì+«†KÈ!±ôX(`ýž2Æ<²R0Œõñzæ[z‹Z?Ê^ÇÚÝv k`£I€%¨gËÊç-RbÈ «$î)ï¶2\(o€x‹aà›n4÷ Å¢§Årõf˜¨ÿ…²Ûª½Do‡g¼‹Ú†àabõ Ž6àÅ.ŸN°,Žü>Ý7íý‰%{DWÜ‚a‰Í¬W¢kVµ¿¨ârûÇÔL²ùrŠÙÖcS »LKaóË9Ô¡^-`êeÔ‚ªEZàÕÔ¤…fM‘Zø6r%Äëý¡p@½Åô [[UÃ’z§F4‡pY‹T`)/w?tírC,k»¯‰yLA!½+Žca)ÓÅõ‡/G»ÐiGÇ©©32»¤2ÕÔYT¹ùoèþ~Kݬ&ºU÷FOôã•m¼Ôd!Cדëª|¢I0½x¤p‘¾†QjØÿ¬ hYR˜Ÿq? Ö½²”\‘VaÐ:XˆÔÊ{‰Â— }‘à jAG¥0)ÆU( ‚xãñà‰ÛD‡èØÛŒ^ñA©«ŒŒ× R“ŒeYeŽ•cíŠÀðS¶X !rÈ’Öè›q¦$­WŒÚ ?uÒ).W…Ìü=P«ãè¨J3¾—³â>/ì:DI˜"Á× +{¬6ÑšÍÒl" +d(WŒ¬^ÀÚ‡Ìi!`!c”Zþ,°èø$Üb` ƒ“B.ÁþOߎ¬©€&Ð.‹¦a-"ƒ°F2A'0Å膋ΕÂN]~K¤ÅIªJ©Iyå%VSb 8ѽ”tdÙÀx83éA ðꘋÕÊcl^Ani!A¦¼¤0>12ÔÑŠæ…óhrÙÅÒ`à–d7K‘Èi–äôJJÍÑž!–6]-5A郤\©üâˆáõT4™s-± kΨ¸'wÇYwD‘5Ì›4yŸ¤æø$ÍB_Ì ÅÓY )ǰ5]W¥Ö—?vó‚©ý黯0/¼—P¨ ó$ލú¢A%c{IÉSÏB\Ñ-*&ÌÈ+V[]:Pãî´¾Z¨1tïÞó0ÉØð†^>B)×V«/5˜†c`àô„#ægr‘Á«€,à»_v| ŽnF†ÿÛ2¾*¯öü ÔWk‘öqÕ$NŽ'ý¥K•M˜Ð»²°ôA¸€£ü±ðI¢¾‰¡€d£Û`s ÐsÛ²žo¤Ç[üãLª™¼ôé’*è4E:`½¼èj†.?¨dR“A¬„†è4‚—'Sp¨c@”©6 z#yúÁÀý ×'îIw¯`rXfb%¹NM„è,8Ü3,%E;¯æ’º„'”y•j! ÄPÕžXÆ4ùôœz=©`s‹½~Jvä5!à6Sº Ä=™Š€Wei}›5Y2|’>djo eÖ¤ÝÓyÄ!3\ϵlsŒBd¡æà’Û¸„C¯w˜¾O½Iõ»Ô{½=¦šS蹩¹šÞšW5WIñ<µØŠo*zQü·Ewš×ôÛÕ¨åFñŽÐñõü¿|ÿò÷×ﮯ®_S,®ÄàTeýO Î-K¸2 %J‚]«6u‚Ê i‘|Áª6힪ø5‹¥Ó¬Œ +tÊ +Ï­â×Hh¶i¿Æ«‰7fõ먋_cŸ¦ëºæµeõÚ¥®9LO–Íp¦‰Æ‘ªØµõ>ÅËÖ5®-c·¸ÎÈÑ›v­kË:ª‘ÀTŸt­k Oíϲȃ®u \¼e –e‰k‹·…†ÎU—¸æ}X{Þ—øUW°†Æ(q`lrÁÀñvkÎõ[܇µ¶]ãšOJ÷a¹Ñ%®-‹zÈLQ%â\¶j][ŸÖÀ¤ K]KÅyÑc'–ûh”º~z륎=]øHå,Õ¼fþ>ÇjsÉkK›¡a¶òˆ;H¥fßcÓÐ|r¥fËÂç´Wí½ŒøÄ<°"{Æ}Ékf‰P#ÍŒa™þF‰èçK†ÈèlÚ-1ÀqO?u\ 0âAà vI;ÒoJÞ!z‹”¼¶´V28{°¹ä5˜“N‚TŽFY zåß\ó$æX¯`÷)$5Cˆ +2'ì‹^ƒA0>ÛþŸ¡•}¢ª×uÓ&™$éDx ,wß´†™,,TÂL£»×X&Nñš0èî5’dbÖMk˜þ‘â\&¶Eݽ†™#"”Èú?¨»×0aIB5=s’)xÝk$¿d0VòK¼m´¯á‹Ó Ät`°ÄÐn_C{¦%ŸtÒérÔíkÎ_i_C—N*`¼k«} ÍŽÉJE…X<«ö5–6 +3ÓØÎS÷¯að#u'FèÌ­mõ¯±’ÞÊ (<ËÆ"uÿ+!ÌÃ"Ç£}¶ê_ä4)P˜zlÑfÿi½"¦9•¹uuÿIP24PBØšqÔg˜bÅdï”(]PZýk„J¥YL°ÄF­ûDIÀæÐǹ ××QNµl€|zZ¹À~>F÷­aä™dC×íj˜—„µÁVÁL9±Pµ«!n‘§bÑ&ÉØªºÕÆŸZ澌f”×­šÕàµÄƒ9ѵnÇÍj,N+£jVCxå˜æd(êf5܇N¬°../šjVÃÑ1š^5©¡lk¤—É9ºI͓ۣÀ¾|"ï‰]³MÛ«Áä¶ QÎ fÐÀÊèvËb2Ê™Á¹¤Ís˜1·rf³§ Ÿ@'žN’eZ´`IIqnÐN ÉYéÅ1`™|Øvj€Y˜ÑЀ¡Ù0h§†@m#jG¡ÊÊ©AØë$»'²eOX95„ Ë(£ë©UÔ> Þ_<ž Ók—ãþ ˜+Ñvi˜‚0=#±˜—Y»4Rb—ˉ]yAW. ÃHèXpgÚ. I©'aH²4•KCÈŸ9-à‹l²®]|@~€y+3¦])јó6ÉòOÅ¥AEÅ'¨¨1aovip{§ÍÉNÛviP0EÊ!Ï^0Ñi—SaX=[zØ{åÒxzkül—ÆqŽÝcÉþÞgû»mÚß1×R¡’ÐŽ’¦íÏX]I:ؼÀBZ&6³Èúg=ŒbŸYVRZ&Ÿ`å1¾ŒŸ9´†+ãÚ/àÇøÛðÿ2nŒvci#4Q‚0aÞNíÆ0j Ц÷Óë"’VÂÐz²°T¼R$ 1j¾`õ¬Hµ*VINø\ +ZDZÀpC†¹&E8qÎÄ‰ZÎTW•r›‰§Àô“™ t’gõrÈt˜üª¬'o—Ð? ˹”R " Ü}?8”KD…LŸZ–¥Ðv‹>0œ©4ÁòX:4|GÃM˜‘It‹*¨íFšG$?ËÎ¥Sɯÿ|êÝhæZ«4'AÖÒBÆ´ÉUV%´ÛJU€T©Zʺ“& ˜“|ç}c®? ­ÔÞ‘],‹ÇRé`Œî -T¹â,ΗjÄHÔûÆ0ÌPO3:1Y®UØV@¼ n=ÌEqù´H]†¡Z1îûÂ0­"ålîKîÊsNÔ†Ô®H +õRîIû¢\È7aRŸ0éÛU€•@-E„),“ÖEwR);läÚÓ¬DN­Šóè©êRl™XJC$°ÂRÉà;¥(²ÀÏD}0M1µj*Ó²ÇôÞ‰UÕ˜Ô\J2ÓâI¯î â·ûÒÏ|–‰ +pRg{Qú™ƒºˆv_šœCæ–Ñ3]9W˜V_,ËQë/“bÉäm–¸¡Ôq«–ÏY!D`_`ÎaU[Ä0Ê"K­”bÚÌßåž*U·ËßËÝå³RÏ[Tåž“ ‚`IRœ¯Æg3¯<2¥mY7œS—V˜ÍBí¾ Ë%L‚h¡öt¢¥òä’‡õë¹5Kñ}*DôÝ0ݳ Ì²d?ůâ*¢º}—‚Qš=JGBtI´Ä¼+41·à Rgž) ¹õŸì{ÊL€UiÊš{pºØ„Ó%¾…Uc.´X r©ÍÁxN¡"ý”¾ Ü–Ë& ¤9Ö¼#Ía®÷­`øHÉÍÆ#GO-Ílnü‹åé =¦ËI¬Q1§Xóû¾R¯†]€Y4‡È«tšÜOŸ!ßûqÙžBü²¢¥W¬ô´ rÈJ!T -J ñ2Dq?€×Mëž0ô0.Lôw*¥ß†axŸ#ža__ºør‡Öªê²Ë¾²ÅE ‚¨¢ŠŸ›ÈÝäs¦=I·Ô<„©LêI>æžäã”;ÇÐó’̬Ç@?J9›•¸L² RÔ0Ý¿þxõNõ—óH€q&Ë—LâyèdHLÀge7Fû­ç+ïºÊEö­crYÅq”ÊRûÖ1’MB_ mPfX®$ çȽXû†º²ú ‘/hµä+graÂ> ö! V$†›±foF|µ'Lžíž‚‰Ædجë5™ŠîSm¤y“°à³œ˜ÙáæMÅú]`j„±†o¹™Íx²²kEjNóî¦õyKV‡´À…o0È€¥¾d€ÙØ7Wý$ítéÖü‰oÅ•“¢Âaæel€ì¦}ëAI4h.»fq÷»–[ÀDþEò¸jÚE¹.v„Òà Ó8íY|èEܬ›†¥9š;ŒÑþN­È(©ñU»2¿eYÌ"½‚”.šf)'à4®$â$Õžfái +J̱´n/n™èIû3x#}Í«,ÔÒÄ8ÊÍ X ³$cÒÖ­Ú¯L¬c!™¯ 9¤¤Â=Ä÷ +k8‚U†P“P'}ó2†1£¤Âçê©ãôX+µq¸1Bêĵ€JÌ`áß‚«ÎÉø±QAvÄê/V°­þrÆxD;änÄ{0h}R^¨0’»­ $Óu÷T8¯Â×éw§éùàçKL[9#a†¾°Œ9«1›iÆÎ¬(4²ÁmO·Ë¸ÜvHÎ  3}Ü_Ř wG @^û\þ§­X—LϬÚv¯M0áWh¥§ß3ìõÞçå¨ï¯[¬È7²Á%¼gVu8ýôm‘_Ó;+GŒ!þ:1â@§M¾ ëB2¤†•”fÍŒ(Åo‹æF5¶ð¥š‡¥Ã¢h‚“”}2Ec¤v)’?°/ƒPZêfB½nVR­ßK´¬(³QŠRÚ•â Qž3·K¡¢ßÛ}——˜ÀR÷ö4«}”ž(a+ùìsƒWh R»jÙ–qW엙ƎtºØÙ  tV6°pË•,Šà$øhnlëXn2¬¬ÃÜ8›HX¡•fšbK²#.]Ú]Ê)û¦½ÜÓÞš#cˆnÝ +oB.WÌC„,§2(‘/Н40ÄÌèJB+5)SUë໹a߃„}Ü©ï¯Zð‰fßq„á:J#ƒ„Á¨SÂÈ|ǠǺ̉ȧÒK„I#â¯iµY 2 Î!tœö@Ãó¨kÀˆþ$!hUù˜~|6ŸVÚ€”û©îå-ZM?æw¯*éÌnµøÈS£{”¹¬ Í+Ðlã‘—M7ïHË«{vdZh=Êt£J&Í„VW[ÒtÚªÚ4“¹*ú”÷ƒ®•7O»ÜTÞiªZUÙ’ªÐUÞ¾Í2YóE¹¸VaºWæÍj^™Ç¨Z`…©2b™o­J%Φë•e88Ë\²Ù##sTUS­°^Ý#óév#ŒÌÔUå·ÂýK­¸"!ZæŠ0)U銰©ËØiQÕª†Wä›*¦—å *ÃWdf³Š_°ª ɪ í‹:„ +¨ê…5”PiRT8FdT¨ÔrœS«ì£‚[ª|¤Bjª¥zÍR– +'6îSALUT³qF£8g㬪ÈgÄ/*Ý,2ªP¸ªUª|]åTŸÐ*–ªÏª‹®}CÕkUZJ³î«RrTýX¥©´Y§j°-ê—*[ô4U0·ÒíšÝ*”^Xªö*m²Ù­B)£¥fpVZUmá¬ß6+]x.gœ4e]ÿ8«ÕíòÉYß]N:ºªÎœõùvmç¤úëÆÅD ŠJgsªu68¨úÕÅ0Q—¾ž­­ÊÙ³É#×Û®M#u¡neWiÖûVfU7¼rTÉñbõi,Ï"Uã¼’Tyte~j–YWÆ+U®½˜»Jwek–‡/5U]^Ùàêõµ¯Uå^ÿêZùÚlXÕØ¯-ŽÍúüÊ^©Êû+Sgé   ¤ÍvʼªÚh³mÝÚ@ŸÑj‘ Ïª¬ Ê:­2D7›>(;¶º2Ž«7Qg4G¤ÎR3SÛíõìÖfÿ«Ty æE®Ü ši^Sù®Ú,«ö|)Ö§œfŠk*Ÿ[‹å*bØÊÙ§x}q¶EEíXT§x"³„ÒnË–\Ó^ÏZ,ji-Q•·u)†g×l-³•3W‰{å n‚åJVPCy¡ 8Q¾ë&¤Qžo…ˆ”ÓÎH_C€i•¤‹É[‘ô 4àú>¬IT_\Õ±×/P×Â×iÕÔ×¢î£&µ®ïpMö (é/¹ ]³çÃþ˪傶F¥f êóf«‡ÃW§Fæ4õºâÏUg4Ú"è³êö +”sƒ•3ØÚ*ê ú[­ˆxC”:Þ†m¦[÷ÉS¨_áÀÄ¿Z­ïü´nîÀ¾¼©šZÝð#²Ýtƒì¤Z¹1:8PBl4€ š¦F¿†1Uó_UÁšO®Û3”Û«†+å¥ÚýZòPê/çÁ×\¤ž©šÎkšX´_P_–¶Š +J#õŲýÂ#W¥5ßß>ÓÀ¢ÁüYî}Ð ±Ô-AïµE…—«êy˜Ÿs`‚ +=Òš0ÚukZB’u€n츧#eKƒ¨ßaôòèTéGµ=A°o—Y§¶m¨§°Ù¶è)u•v¢ï¤«BÌÛqÒ•Þ©Íš$¨PÍ£©Lö$6Ôõ楚UQ¼8…uÉú¤ÞMI½â– +zÀu }>Iʉ1@ÚÖÕÕ÷“êÎÂÿ=ÍS®]ÅŸï#÷«›ŧªxx¶ F,y$]hêFLZ­†<‹½ç&êÔ,¤úÎÛ~j{«[!hòmµTàYâdÅè-8b*^ÅL­w¡Œ J°z¯Òcbd·DpôX4¦†-‰]šÍôd5½Œ—ia…=w ÇÏ«±¬ºm,òÀ E¾¯—ŽéšNXb€ælªL-È]}ƒV‡!€ZÝ CPôn §ù~àRš ¹o0‡R‘Ž/먷^[ìNX7ÖåmlÝz MÀû ãÐ`$RÞç²ðnÁƒ˜?/cVrû¶B%N }Uý¼ºøºzëV w=øº¼žÀºœ¼^ˆ– +¡´.o_H¡.Œ_“Q«¼¾l]¥_Qs]è_mŠeŸµ§JSµëvzS·Ú(æPº"(¾Rú((¶´h¾ ˜Ú|QÍçÇ(vÚ|KÅ–Õh3GŸ§§–«IUbD­‰EjY•HkR‡ŠÆ”xUÔY¤s“¸•pW›DµÑÔ`›Vµïb +‘½üÿÝk!ÈÆb•†;¹Ï½ž×k¡ªyM …b# @¨00ÇMVåiõÆR3˜Fe) Ãਔ†SUN…FɺŸá¿6R‘… Þ16Š_ѽŒ.œ,5}è¬Ç¥½óë²ËRÝÒËg¿FÍkq·Œc©òÌÙ{,J)‘ÎѼFLL`!9\Ö…¦©™Hµ-Ù£J×.*]S’ÒVà³ô…µ.ò´!H8õ.U³€zƒ›Ã²`¤£Ë~hü™ ¢°ScÒhƒ’ärô¯æœ&$QËh ÷“?DQN8fc±K“ôp Ôµat]+¸H­QêZ\z§!Wü*dËÊ],(QfÝŒ±qQUæW?¸.¬Ð*9¬'¢.]¬æ²®~¬W¢UEY¯hUŒY“B]ÏYST«.´&̺¾´&îºFµÞ­Z×j‹éÛÔ›T¿J½×ÛCÊ B͈â-õ¤*ÎÔ\›ÂØÔÒ*ž¨¨CñÖ&•)­¨Us÷šâ ‡b€ú+\ë®'žAv,ð딩n÷JuŒqð*€C£'P˜ç<â è†l  z1•ƒ­øerr_i°p€#+mŒî@ŒJˆô j²­«î$—÷pŒ¶(MÔêî@#3ém£)ÐHÇ?­õ€#TätS qJ# {1çöuª;c§©³>öe£;Éë60î,¶ºy’Ý<´%øCÝ|y’g±È±ÑˆP–â«XËPwÔ7²À³µœxy’êDÐ ÍgâÔæAªö@¬G"Æ“F14Ú±Ì5y†ì tªT ‚³HóííöÝ)ˆmPgh+i´ bÈ;m¼˜}q"Ë“TÏ Þǃ%ð>‹ß«žA/ů9þÑ3¨Þ=gÝÇõ ’ÂöO…‡Y]S‚©ü#-ƒR=à ôãÐ nÔ5í7=›"0š‡áæ@Ç ¾^Ÿ"§ ‹µ÷ç=ï®f„ËðNÒáPË ©²Gß³ûåÐèˆtì›ÆÎdY°£vË O6@Æq°ZµÈPhÑÇ”ÚûÕ‹!I-('ß@ÑyûýæW»Ýé«WÞüþîáŠç&\ëCÄô÷\”¯®[í–i­‰`*Hb ½€1½–M7m’gÀüôé °—-X@ÏΟ´Ùú(Q´‘᠃͖Ykt’3h,wO»Ü@ã*Ãà è=¸Eb.±ò›ŠZP€JOSÊ>úcåÉÌgÓÉ~q†¤x“ÙsMxï˜zX€…O~Ã܆yW¸‹IÞ–%WYE‚Ö6ajlý4´ˆq²NêgüQn@+ ÁK~80BŸ¬ÏC[ËæÉY,U¬½IehÙ¯¥CÃÈôšÁIÛÜS4 [u÷ H5"eFFà ˜éÉk‚„‘§zÑ)Z|CÑ<ëf¸ÌjÁ(ظËÿS.•Z">†3l×aö“øRôîÃW R)ð1½0T +¾0E)Îóì@Ûcõv3mÎeã.[¼c¢M=ÆrBZéƒÄ”åiOµé¤ÅKw>Ð:±A”Q“j(ŸÒ$ÎÔŒ««³(§Õj °gÐÍKb[e™&Úq…2Š+"¸!ŒøieÉØ8:6ßhA%HhˆÉ7@# –‰T#sTi;,™´2J¼C†`±êt +S¥ð•¥ö,áM iKF%‰|dä±%HÍkØÖg±&±0;ŠI€Sw‹ óžØÞ3Þ r7 ä`$"c¿1ó“•c#}“En3±Ç0’!2R–þ_pìIF‚EcwYÑiÖÁän†Y©ŸŸ‡ΜÈHu†Ò°11gÁÛ±K1S4VBK¥o2 +MâFà0$÷éí±w2·«‹Ž ôÃnç,µ±Á¢l¡1åb`'ŒÔ?Í3(ÿ¯œ1V<áì39©ˆÅµb#‘³Š‘Óo‹›²ÝË€¢„Ä´ÅXùÌ¥®, ¢ó%¿\008‚Fq% Tn£$©YËÀÞqLz«ñ{†ßñA¬Šád:†ŽlÐÖÂYx™H-g¯××1!lp‰‰¨S£âdØ-ð½-aÇ' „ÔzÞh¨kÒŽnæB^l|€• +ƒ¶|é(å™"/Á±x[úË1xkHë#ëVOxÿ™ØÐg1­@ñ,m“–ï/ZÖ rÈÿYQšm+ «[³*Û à9xuŃr‹þ¡eŽ!°" y M®¬!EgrLƒ•xcŒoË}ÙÀ +,ŒÛHi ìŸÃt„¡Ï¬[Ð1®wdØK¤²ËsàèT‚,­FæYr;€K0áNÎb£c,0˜–Ê©ŒÁßJŒšgÀ»‘© ƒ¦A|ló$*oÈåW¦Ô‰y`ŸeNûÀ\"Æ sϲò%ãóÙØ˜Ùkž‚—. lÕ‘¾'Yp–gA>Æù9,~/ý¡KMŸ_T2×H\Žå3ð€ÞúØwE¸4¨1U±bÆxÏ½ÍÆÍXçß'uZ¡a ‘ý$rµ*7Jì;žÄ8‡!í#Ê`ÃÈ{ •$³-2,Ðr/zú“- ü‡ƒeØ ÷©Nš]ŒLe(Í›'ñ#DbSÃÒ²~Lë²õě٘a"–%Zrñ3°p ++tèãIJ2V⎉¥£-Ù¸N˜‘>ì~œÅTnH50ÎÍÈÔ{<ß$Ñl á6lÄ•úX{ZEÉl8ÙŒj bJ·—®ÞØÛ˜Èb+œ‚y`œpZÃpŸ17c²6›seØœŽÊ(_‘!þ‘'xý½Ðĵlgˆ(Bë.1-™3Ô6¹°2 + –/¬HŸÁbÛOôÙ#Ó8‰¶4hãÌ>Œ¬ÔRO;vŸi|‹± §„r;rÕbRú “‡yí±/…í1¹hb:ˆP:xEÖúfÕ ÕèzvS#÷t3Ä-Ïœ”ZèÈÔYØ®"Y¥I–/c¨'×0`4cä1ÈèRËpÆ2G#Œ D Òeµü¼è }¡<öëbÀÒ 9fÌ|›$òcƒqìÈB"L$>”â››it’õŽ3˜EÄFP'³)ÉÒ.ÌqP|) +[vÊþ +†ËÀU\ <xFÏâu„¶nd‘62!{6³,ûسñ}/ÞÇ¡Œb–ó!,ÙSgy–["§¡O¢]”åõ°W'yÒÄ\HF?ºæB=“$RC°dv‹£”±i”˜M¥ã<°«Óy¬Mkd‰½p,gÙuPÎ5g(¼Íé”dÑ ŠL 9Ê¥žmÊ_Ô—ˆÈ¡„ŠVB¢±¢Lq§Á„ÅØóB™ÃÔ/È*Öƒ@*Ð%†Ø=–µ ´ q(,"Ï8  Ø°Ë­ÅLY +RŸ[bœ<-|Á ÆQJ`a°ÏÆ;f¿€ò _ê‡Q„‹gÜÒζi`u­+9P¦±—ž4l'CòÜÆÔRâ6(MVPŒØ¡¤·äˆ a4ˆaÔ¡TDÀxañ‚QGÑ£—Ôàçd†Âœ÷’`™çF¹IÙfÓê0߈mîxœ“‘É’©LC|ì÷B\Æàh–M—6bôd"è …?Ç(™0ŒÉgßK:£¬XV¿Èå¨eÆ1-‰ž©O@¹¹@C”Ä|< ‹Â)RçäEdD2Â8!EAí;™Á†Ëª‘ür•Ä{8I„=Ö¡˜Ñ>ôt—Òät¤Ò9_–?ÒÇ âÈJº Qìq|ªŒŽ¢ê"SEN!üÅ3»:~ ·Lñ4QšQÒpÙct %; &6ø!ôêI·„ÿQ ¦Ð±ˆ!SzÝzÉyŠâ×™È_&Ö‚b;˜ {©ÐYMd…:Ì#Ï’ŽƒuŒÂ#‹Ä<ËŠä4  ÓÊÜQ¡-‚æÒý©¿&å !í‘-³¤È±Ky†ôµûܪ‡d: ÄzÎåe³PY<æw’®-æN&«gómGE”²%³ÊAjË¥¹Ä–E[¤8&‹ˆÃvÒ[±AV¤Ž\ ’¸PCƣΈ.%b²YŸÓ(ôYõ0ÙuêÁM1Aß¿öÔZi² èj.ëk–‡~h×®+U™¢'+gâ¿zuFkHú¬zjØ{–Þ%¼ +UäAO/ÛíŠKÅÓ ¦˜æ2Õ® µÜ´†0_Í{2€}0ÖJÿÖ01ºE]ž±r]˜qz¶ú”3ˆzTÍœî™ oC{Oȃz/‚ nì-®ž¥‰Ë3nßÇzw;ä)…"$¶«æ¬1P™Ü©y9é>âe1 v㙄‰­Pk³-ïR¦}„¶Å"ÍþÄd4±lCÀÀ† Y¨—Þk´ÚI9×fÅ´ ¦ÜhñqÏe‰#`æ¡Hê$è21’O¤Àଦ‘ñ’9Þ@áZK"Ú(é)Žôú2-QI3¾cO=½g(jS*âR{´Z¨zÖCÀ¤‚™ïçµ`ölDŘ4.½-ùî‰Õ@{ÞK"Y €÷RçãÀ gå‡jðé–bM‰1Ñ€,ž±bìÜ ¦Î4ô¡é“”Œ30høD+RŠ$6RLµ¾x+½{Ö4ŠóTÅBÙDÈi$ÈÕ¡³šdX°®‰(éöò†#çªJiî +™ú¢¬cÖYeO£[ÚæØ›*ÒÈ0RÛ©Áq¢¸ Šào$~ ²=ó¾Sõ°H[¯ë?Ê;©ãAÛ9±–ýÜ¥4ÀD¦_CiЊCuH£fn|Cëà‹,BåѸ†îB÷¥äF¦Ì}¯õ2RÌ­Ÿ”®©Fy•Y…îáªyVÂ<­„@#mÚÖhýMŸÑÒõYµ>I+-c_è®Á¡tRrüä§»œÔÔÐh9\éeN–JE­“ÄŽxðs­‰ÏßÕz<SPèÀ‘>pÊÀbØ.ýËtØ´)ð­)’ñÖ=d÷a5ë)†5ß°n0 'Ûgr5­$ÐUs,€âtVÖÔe °36ë](3g=r |06¦iîá܈ƒ LÁ¬Úl¤<ôµåI,÷‚%F©BÔ6`qŠ©ÐpÐ} Ì_t0$Óqe9ó ÉÆ†¤,Å̰ÀyvD.æFÚ´%÷ÁÓM†;Pú×Ö@òAðcÏbSm£¢Ïº{1EÒ¹ ké\ëƒl‰ÊŠéé|U‚ÁâB7´­¡žñvòzô?h›*]ï²RRÈŽªe6Ç:†‹³àéöß°æ:fL²¯9k*öò€Êì{:Ù–ÖÒùذ'SóÆ,ú`Å2·7BÓ§A IDjÊ„M¡È"1lÐGƦ­à …1A¢èÛÆtú¡ì°ú‘Ôe”§»/¹kiøõC1çS¼KâtèY ¨é + C1‘@`- ?{xSnÞt`Þ«rBÐ'ZýÈ€€Á·\ú.É B9QÊÉ!Œv pîÙ¡éáä3ؽöÞˆ×Q¶Vz´ 4þ–ÝM¬M—níHJ¯¤A2K™1}y9ê³§œ“¥3 Y‹É_ö€[f‚ar˜'ßcà[ž‘{Ü|c®-ã¤f'ï —YÇ„_Zb\6Üd5sLÞèƒ o`Éu€Ö‰®†W:zHè‚ ÔÆHß#ý}L¤¶”¸„‹ ’à>Ö¦-îS ‚žÕÞ—lú6ŒdLªÙuDT,B͘ÅIdÊÕ™ž% +nf +<™X#èåIBnx’Dxf'ÓÄnBׇ2‹Ãà¢TŽœ¥žX@œ"†%m8.)²Ï²· /s!Õc­4˺@ƒ¨S4 °* +h×±‰´È´ œÀ{m©-L½&Q ï#žMÂ0ˆÕÐïCJšê!=™'¢Ç'é›òª9%SŸôIàÎ$©ÕÔ¢Õñ Oã©^!©#6±½!†ÚèUfP!9=®•¾!5µp$D³=£ L&–šèhi êèûd¦×±U9ëNôõ°õFM÷N²ÇHQà^®°Ü=Ž&+'²`àHüVoÀèR]Œ£ð},5¹FžÁêfÞÇk~@¡, ÄMa$€ç¬<©(`zÆ™ý8æÒaQ"ÊmkîåÙ2ddVÔÜ“ÇÓtì!A +šh6c›m:ZÑ~¤’{ŸÔ|ÛQ +cõñ-d椸¿cp5½ô‘þ„¢¸Õ’Ã±Æ +y{-t°ÑÅþÙó—u_•ðrœ±\; ÞÍšáJ:æ¡[¨Öôi˜°’£ŽgçuŽV%%…dÂõ2RSXª採ӆê/µ<ܶÆЬ(‰špR÷À¬bª±Obtub1qwdE#Ùj(\%+µ/&´Rq¶ÙBWZà ¢JŒÄ–ÌÍD;²ÑŽm5wM1 ‚« ÷$&tàž4¢ÊÖ`#R§¦Æ­¥Ž ”ú:­mŒJ 4aZÙN¹ !A »ž  f…o`jð"1yôbàÊQ; +š“ÊsÈìˆØjxOª¤&ÕA’@ÆJMàP™¶Y¼|!?©R7œ”ã6Ãí% ºRY«fz)Þɦö¾¡úLLGä˜ ­Š>RkP2ó`ôœyâÄÒœTvŠœùaÇZ›Sg¼ÊšÏJ+Ô÷É +%—–‘¾ÌÁ€€‹‹/F ý‰)Kc­†:^° â”óQ”ҫϨugP¿T|• ëü¼ê+œÌPÄ Ÿ(=ÞIÉubmI\63D2D–Ûç.˜ÚöîV¦“s·t>*“„ã¾ðL +€<³^6È­„“F–°+Ê[m !w¦›ÉXƒy£Œ,<lŠýQž6Õ8–¶‹Lér‘ŸT›|ƒ'i‘«­E +51(„µ£ÑV'Ç|’&ÃÁdçå_Y¯ÛcÖ•“ðÚ +Æ'‰øÄ“ÊîÊ3¤†)ƒ@\éLWÛoóˆC¢Äøo” Ø1‚´Õ³À²$C'2 +|6mãµE$*&Àm¡·M1f;Ò¿HOƒ‹$9 ²…C +l™–AØÈ°Í¼ó*›ºc²‚HRv,~ˆ¥]ó"‰)‘]$hSö}™÷i¶Y®œŽI 4DVîR]ÐŽ«‰È•W‚Ï–[Õz)È3Ä.½¼}&QxŸÚC"oÇdRתv´È«0èAl+¥'Må¯!â`Ñ^ŒZJ“o”ÏDZˆ™ÀR°o¶µïH (7>»éAŽÌþÕŠÌŸå+" šYÎwíÅrÃ$±ÈäªD7ÚæÓþ +CØ(¿œã€r1H«£Ü{X¸Bˆ8ðÿcï]wmI®+½'à;ì?¤ê(î™ébYvËVÂZ-A–©²›,‚*QÐÛ{~cF®½WÌØÚ‡ÕEK²ÕÝdó쌕׈˜·1ǸîòÞRlÐW²©¯uEÞ¼°»óéÖòdÃa»Õ!—â&~¥¬“ÝNRÍZ m#‹ò¦¥^›Gœš¼DwÂ,ŒZŸr­ù6Ô˜ÌÇa_žœÚZ:& z†WL'Û|¤¥ÎÊØáVâˆÝ#ÅQáÕ¬¥ùøz×ÿÓÇ,`ýžFpÏ„|°?±&ßD8„iðÛÙpq­H°âãý  CÀž„Í%`Xv{T€Â¬;]@Ó„Írbq¶[m@ò„-;€€îÍ>`ˆÞXˆ€@ +ö% ˜‚ +h¨­­ ¨ª`32+˜ÛðÚší æ?€ÍV"`Ö¶ŽHÀ¾‡æ†Í_( îÞxR³ü°€û ¾\Àn}€C ¾å a ni@@÷öë’2¸É‘ÜíßéFdgpÛoPèíè é6N€ÔoPkˆY6vûhíBtnˆÂâˆ]4G­Qá 4åŠRÞÆ¥Ï@çÜ ôŒØÅ×›QKx°ß!²_äÛü@À¡Ç³¬Xö«ˆ˜øMÊÃñô!]€ø!åýÛÔMh ) Ø[°¦‘­ »,TèlX“Y¡9"¤ÃB“Å6›š5BV.4|„Ì^lÙeCßIH4†Þ•5EZ`¶™ÎÐJ2¦¡ çNµÞ½;»üìÚø3s»w£Ðš ÝEÛ”rhR +™éµÏ)$·C»Ô6IÚ®B²=4lÝyúÐïµMó‡v±P,-g¡à×¶…‹xžY÷s¡d:ï¶¥—ÐÀ*7± p©ùÄ^Â]éhÜ Õf£WÌ–”žšg­Z|K ÿKVɪe‹aƒè÷kMÍܯOøhæ +wŠÃ¡,wP!¡¶a·CË嶺g;„Å6éGͱD(§“ ¿x-3”ÂäÞBM^a©Vúª¢Ö‹fN,zŽÓUªÌ¯¦EôQ2•{s¢A´G`scÅõPæ õ­DjnSµµ=VŒÝ¨(Yµ­þÆó¬Uäx/k%:<ÉZÐþ¼}!ka<¾×µÀ®šð}ÖBýú…×Rœ&;È@˜m+ò LØ€^óþ-ø!,›:WÞŠ¾ø¸˜YÙõ›æáÙ.íÖç…zˆ êdtí>óÂvÍBz;Iž Š×(§Œ²>{›ºnD…Ntø?è±OX[QTQ÷øÕyH¾º¢!ÅÃa Á¶ìfíë`ÄìËãU‘ôˆ§?³K ¤Jj¸oîná³u}¸pžø‚®9‹}£æÃýúy~ù“‰ë·ø€ N|µ„Í•ç8¡a(θe¨]›¤–M &Ìó—áÞŒú©Òj_ðsIì=šÿ âqåp`¹ñÏwêiÔlš­XûNo‹[¸†F }ˆ.ÒäÓ\ãëTËz“öÒm:b‘ÉxæG.²‘å6GÍK|ñ<ëKŒ÷òÑÇøüüñJÛ/$Ê,Uø x7ÀŸ­ó¤£·cn[NR_õ:×(³t*×yñþΜµÉ,±­<8ÊÂ(ÛÑ?5Os&ÂÁ¸~l»út‚Øm•wCñ4¾fãÌÅàÍ–ŸÿþU|uË´}ëëªZ¦}dÁ~µ=QÏn¢Ùt’€&\»—~º]L›Ÿ/óëõÊëy¿Ÿw‹ß6¨O¸ûæ$7‹ÖÆK˜ûæ÷(¤Â>7{€Z&`ä¨0üÕþè{Z‰á,᥆ûxçµßˆL ~&³e¤¾qO~5£~Ï¥d(;Ž8J9Šƒ0Ô6ê®`U"'=”Í®Du¶ ð3­ 7¤<Í4) ˆ¤MцJÖi²ÄZH¯BÅôØV@t‘…±øüP6ýB0œ;¯ÓÎ.œVCš¬8ðLA©glÊ*¤¤|šÅOåÔ1Æ'‰pzC£bOóæ¡g“ßiaç9ß±>,};5‘ ­zÂ5yËÂRç ²Ò4¢Jp8 H6Ž|γ¡ÎBG‡3Pw8h1V‹Ÿ¨yÍJŽßÙôñÉ+táp¯YË·˜îL¸št¥i'̤‚îZÅéei²¼ÈI*ÊVðÂÝ…'©’\ê*³÷€àmØÆHÀ»4$nl;U}5*¤vʱd¿–³ðõÖËŸ¤Û;wWà3R~}vzŽH’™m!±yk `ÄÎ'-ϼûŒêö²„Wüxén¾;·pÀ‰Ù™– A7Ó§K° ,œ­WÞ]˜…ýœäUÝV5-ëDï3TnÞx´Y¢áKT=Åï"„æ¥(a­Ëðñx»5, xU"=â^ãR¸¾ÙOà5RÙ B¹Ô6 Y‡{|xžp/dIN¬1Ý@ŽïG9ú¼Is=è$ôGY_„<šËPÄ ïÒâ±ù»ð&|Fé¥"t1(°½Ä‰@u†¤r‚ÉX»æHW{µ°O›Øæ<ËFoeÝO·vãùøq#_ßÜm¶/>š‘åûEK´NhÐv3(Æu&FãºLæh¢·°ðsA×`]ŠñQwK:z*ëŽðÞ·^»Ó¿´\½Â§Í•a‘)̃’%©*˜øw¹€ŽÆ,¸ZâúÌMšuVžT!K"ÝEð%Š<çÌÓ&ÛJG)ádj’†;Æa9¨€"ô™[« ͺu¦Ã9/”ŠcŽÛÿ™á$:£ €ö{4uç{ûuJÈÇ’â/ÞÄÒe÷--é 7uö #lH¿G¤yŠÜ%äûõŒ[QžUnó"Kó™ +’½¶D©_]çUVœ-­žbÖ³])Ñ Û¿ØÉ­å«Ôyˆ`fþŸàQ$‚[tÕ«&Šäl1 áqsÃiû—í~#Þ @Ñá=U8BêHâêŸîÎT[¼ÙO<†-‘ì($:ƒÁÀXêêƒNÅ‘ÕÐs¥ÙäJ‰}ž¾D­ö3‰ šƒí8¤vÞ˜Is=E€¹Gá- M¡‚ÀIq‚* +à¢&…rr»ƒ¨pàŠyŠ[§Í&‘ˆft(³’" ª‡cœÔºv:ƒšWY(³c¢"áíq€?ˆ=¬ZfÀ{`¬:ÕBúV`b¹¶’|9&£J ¦aŽ› §Gz?fG/ýääÕùB8FRÂÖf$S—²ƒžèäïº=ϳ¿»Ê¾þɰ4· J=I/Nô¡]l ¶% +]Åý\ãoö&šK˜ÚpÜOÊæRáv°™góÎÞn{9d¦÷;Ùg‘ +/Gf‹YE&"GE<™‘/l¸äqÐÂF’ݾ3. Pªµã°9á|ÍPkÓÕXU–N§vu)Ç.Vû¯eƒé»iVÇ䫞(,e3d²¯}r5ƒ¾(ÓÑàLÝ“ÆfH‡{¥@Ãÿ%FM +œtø6ùÕ[ÏÒÀÙLžDÍ?Æ“}…Èä'{]9ãÙW´šŠJ¶À×¾„¥ù‹,Ö{“â_õò—ÏëßCð<ªû@%æŸ7r€Í3þ`£lTbeîÍ!¤–`$YÁŸW ðé`»µ/W Ueé‹ñ‘]‘=êSp«‹'G8Ï骑„2Jhf\á³T58ZÐMe†Ð³ÂOOÀ|øxÜ9«öa¬Û#¬¥T–äÐ:™­âOZüí<Â.‘s§Ûž?)ËSgõª\êÜ1| Щ˜Ï¹G‘ %à7W§¡6Ï=X…éÍi“ÄvËf0.oÄ<·QÉ…ÄE’:Æuõ‘Áû·à{ꛟ'ÿÎàvy½`–N§¢µë½ûM3J³³§cóØ´˜R·éfàqoÎvz$ß„÷>Ú;SDÞÒÜ…qì¾#öB]Dp7ôëu +ˆ¼m²œ%r½ŸA €XôB€R73‘ŸÑÓ`qYð8›»8—˜ƒ kqŠv ìÍygxNZ'W­÷‚¶œ4¨rešÕâ39LUùóÜ«ç7BìR)"Ú"9”ñY^ªù "PN€F‹ŸÆâ&)ÿ&zvî€7|a¢˜ i·ì™ïçIrõØ€sm3Ù€S*ùÔXæ×Éö4WÇ]å°ÛݧùûÁ²xuÀ*œ·¨GXdŸ¯Ë2^y]Þû'Xw‰ø&Ö&¾ÍuÇÚ~•°ó…6Í0?âæ§YÜÃ×Ùº±ËŒ׌ÜŸ? 4Ž Š¢„ØÑ6¥ˆåj8pÑd§>Š’²½!){åÝÙt$k]ÚS<ˆ'ÉçÚå šÓM~ºÉúohLæÓ®Jcਂָ$}<é+¾†æ!à\iY1WÌ}†m]¤R†V¾\¦Õʼœ@$rD£LRãt=Mdk›2A@/Ì»NSn Ý´¼í6‘mÁ›Œ7Ý ±Gy«x«šËÍêJ(1émšÝ„³d×2@]f}€'ô?HFÌÜbɈ%=ó”'²-t$Œ•,Ãá;1–œÆÞ8÷›;2tרij‡¨sí󡺛í4(¤ð‘…£Qs&)K%¿Wº”áÙifà 5ñ U˜g ÉP¶ÓØ¥É:ê›@]„*ý¾¡tý®W/N$ÍH亦ÓÔ‹=5,Å?ƒgˆÞªž¨sU”ˆzöÐ`±…4øÞE·BÞI¸O”ÔC"f©¬!2Úiqø¼÷TÓ „ õó@£”¡YHÌ‹< âøº‘)Ø,–/ +«þâ7'X Šdï«X˽ ¶b-ôðÙ¤;‰K‡9=àEørfÉ÷ê7"c€¡x²½fº~Øõ¾²@·©cŒ*wýçµo;=·¨?üñ ™ìÈ{ž@ ·Ú7?Þã@(5§”<ÿ]ûæGѾ•«´ß¥t]Ý[+J¡j%¹€…–¼±V×åÍÃ8¶«n¬•ù0M2ÓDÖõcE2‹}5Ù¶‘Ó¹1VGU?KA.+Z-òì ´d2í­–‹f$,Ú™6Vë¬"t1'¹±±ZæœÒ3uAy”wŒ–ü`Ék_©m¬ÖI†_ HÛØSÛ˜-»Ù¦G—;Ç;f‹ó¤¬èhÇÎláÁšE³×âDÁl‘3Å +Ø*´­¿¿c¶®YC¼.:ÛÎÙºN¯­\ì4ˆH³%¤è ¢²7[ªfƒK¡šm'Šv µ¿h®¦ß 0pÿ­¹j>Cv„6W©×Ã\‘ +#ßjSþ²õ‘£¹úxéü`Ûõšï±éøÈ÷,¦ë ,×³ÊØ{m#Û^-ê)ïY­§ß‘IÒ›†Ô]g¬’¿÷¥¾2kJn[©íð-ý ,Öz¬µúƒ<Ö¿¨¡úç'οe;e®?Úð'{¸0¡ÌJu ‘*3E·âe(+>!Dy&§¿+h¤Ñ†ß§Ø"•ô\ÁLôÁêlÓˆA¹•jªy»Îµ‹Š<ÇiV¹@¹šŸÅt¡mHÛLR•Dã»›Ê RhVîÍ‹>™*Oˆ>%·³ÚªOÙy„l„úL´?‘I %Äöùº‘jYEhy=ꛃ6cõ‹:ÓãqP~j®‰ª[Ü~ÓÅëÚÍãF›Tï¸çÔCí8ÃÅÛA®ÙÊá…¦‰ŒêWW]köÍ\“SÙÒ /)¹’îZQv»ä]É—BÔpÈÜ ]ØÞ[㕲;ïÅ?u’‚³}£¡†sûFÝ ç´ |Zì=vR*#µˆm£H‡ý·w›)<tæ'Þ¤0¢ªÎNvº¶NqQÓ¥‰FØYѬ{°Ý>Èuº†×™DlÞÔÕJZò,•+UGGÂà\… –¡¤öB˜a¸k[rÊ‚Wu¹[”hIc!M©ÚŸÿü8’ËÀÚ´5ÁðWdß¹(â=(³¶•ÍâÙAc¸^µyÐfb¥§ÛD ž +Ö²îÉj^ /.µ©ÒõÕ£ßé7t¯:¢Tê²·m»6b¤¶«Ö+‘h±9õ•—iºpa‹1¨Ó Å†Ÿ@%竃c§©šÚš}9 ñ©|/ô‡¯YîêÈæÙoišW è«l!÷€Wr¢SûE—ë4*Ù„§TÉ +ûŸfLhׄi¡ · ªwÑ&{ ‚~_©àuT@O·–/~º,Ï´!(™Ê”&õPz¡¦Åû±žîÀo* vÎ¥Cd%m«ÔT·çýŠ^ÍÖìG*{­ú£È`®RÕ?, Åå ݶ½žAL¶ï›±»„°”ù(.#^ÔÞæŠœæ‚cû@3 QôöÀ¡‚˜ç'ÕuÅmq](®³m€}Ø6êûÄá~%â B_;ïó HÛ`º=òÄ~+QÙ­\²*YM½¡Ã ,œƒšYòï3®0Øôø”o ¥P‚R¢Ë¢è†3Ù%:âµ Ñ +¢ùª(0ÿÎc><*Íf šrÂö¶ùU¼äQ_>|÷6©´4ÐbÑ›¹%©mî`:îb$ŠnlAÉ Õ&Êv¸|3"$ÿIžÙ‹­e8QìÀçHAOâ^6kÔ f1·[:ì¹Æ•†¢lÓÉ@BåÔÏ©âpI ¢z7¦t,´Ðzön$φ‰¤9AçeÞ…šjaæ¸FÚWÞhÑ¢[kÞT5ðÙì»Ã6àoÿô´mu¼gz'‰qFøt^àpìøó™EUÒpL%nšûNÞcNBsò%Oj%”F¼Nh¾Ð_¿À5?ƒÇ$·ÐE cþé3”öX\«‚€¨Úÿ˜Â´ÿü¤t!giiî-uðŸgöTßB‘Š·:%Gj–ƒøÃ3˜ ø×²óLë†aŠSÖTnj"8³¥@®»<ÁT»Ìarñ8ùtÝâõôi§ï7+[„B2G¢#r£KAyiúá` åŽqáô(r·(,øZhukÐûP(€ñšÜ-1d`‰‡ƒcèî|½HžäÃEñõ›åÀû‰}ӽߎÛe&'_â~±wüvI»óM+²^«ß®VÝY‰|îývNlÝ3r-ˆÅo× *]½¸ëÀƒÚ8é(ÝЀ>¾ctÒuÍôVÚx¯t]—nàJÛ•4¼^tü>I¯N:ºD¶FÌ‘¥:V¢ŽV,ø%Û¡Ž:ö>:Ϧ®‚jóGTÍ6A‰è‚«¦H—kqÖù¥>peöœ{_‰¥N*·%Ì#úê¥Ïä›}túÛ¢¯nïI-{¼áD¨¾õÕ pèR¨ïô(D_½È c„ÝõïÛ%w9éZ$'-Ÿú¯ÎkˆÚv˜¢¯^T3â wÛjÀZóbˆÝR}õÔ‚Ó+8íGx4»õ +f)Íæåz8êôpt8~,tÚ¿4žú_ÀOµ’rEˆµ×¼õÓÍÛp€/5ga.V?½) Ãc+œM4øé¼ËB7Bhuô½Ÿ.Ü!PvìÞƒ›ÞJõæTì²¼¢ÅM‡ÔN|Êö<—BŠ—NÞÛvq-ï þÕोbOIõ'eÙ{é¶W~ª"dv¾½ôßïí¥7ÑR3P‰ü²÷Ò! kbÊÜiŽ^:t`âh3~ÑI-9@õÎc‡“Kz¢99zì¶Çj`ÓQ‡uQï´4rç¨ó:zôÎEGK:t4dØêgÃE%‚"szÔ‰[7]õÀ °‰Z¿Î̶^X¬Õ]瓪kH2'ÉÜunG_ ‡Ù5¬w™*ZP¬œÈ¿Ww½Ñ#€E‡;.?¹ë"ŠáC_'x¯¾qׯámH¶ê|ã®ãaQzÃ2«íkë®SÞ‚éRÏÓÆ]‡ Ë¢ˆ +AW£{"¸ëÔTÅseÛ2îÉÞ]gF +¥vºÜ¢»”Ô\V/ýãEq{é¡’>Û¶,XÉLc­fkX°zµ@̯÷þ\*\Œù³t‡l‹À,2 )¡ö+¼Ì`ÍHg­ýª§ë>ïZòUOs,‘kn5–|EßÂ7‚¾åPÇésÉ×w.vywÚ¶ä‹4Ô)xDŠùˆ%_î³£.˜ãùÃZòˆwh‘ –IÙ—|yp”ð‹ü{,ùòm/‘WÙƒ&b†µæËÝÂwÇ*ç1÷5_ö¡Ê¥‚6•µæ«¾¼Æ» Q75_ÒG¬A¼©}Í—g‚ÛŽ"¹ù¬ùº>Š`G¥9.Ö|+‘GÒÎ&}_`©ùê<,ÎcX(þòJ|Aœð½oŠ¿Ûî¿¢øû‘£«¿_yùå[kdŽ—âåÔ.Un²'®ãÚí­~E‹â Lйb‚ÿÞW‚óšw /-šïÕ~¿šÅ_v4s—ǸÔÁik7)¢Y±«ýþ8OuàZ íê1þá\ÿÐ’îÇiïLA±md,ð}ÞÛ¤»AüHnw VîñHwç:œ™ÎéB†uMw 'Ü“9ðeòFßéîÍÏ—tw–œ•t$F¤5ݽ……t7ïŠÒ¡‘M£ÓÝvÏŸ.úoé1Ýmák@rUܾÏ{gÛJaà„}„ 0æ½ ±Ç)¥Ê¬aÍg<”Ù8ÒÞfïEf® +^lÌzg¬FwwÛbÖ;ã æ}Ö; Ò 8Šöÿ˜õÀ¨ü݇‹ãëÇ/ÜÿømÛ¯ÔyPĈnü²ˆ‡°Yá–»{mæ ,˜êÄN‰)u¼X æÞnKâÛCo[…y{¡ö5 +L§É&|³oœÃÁðMs˜žÈ«2•›ö5›÷“· l²Æ;{ë¶•}‚½Ù–SHœÒ"»uB×&šÎkcà†#9kaãy³7Ú­ØÄ0éâböçGü|ªÆ$ícWb qÍ‹¬ß6_`‚h0 ¨l!NCëT¬ÿ:Ö¬ˆ +o@„´‡öÚ"ƒ+þ¸|ÇöòØ©[:Uœ÷bs°áô,}sš]ºªNÞÏ‘OõÐ@Àã<ý kÏêŒÍ µ”°Rm$Y5ÅZŠß™ö”äR–Ê€tm=LkÂÙdõ{ë Õ¹1áDæ6@Yv l¨=˧J˜£*íùè#$¨ðOZ>ÙZ¹õ@"K2œÍÁÆr&˜jYK§ jÃr÷áà±\œòß,£:µ¾UéÕ‰Œ7X¡ØÃlÌâ¡/¨Ù}{L:mMlQ0´Ü† Oä)…†K>ª¶Ÿ–{ö– +{zaÎۥɺٕ +62JÔÚ3ìçÀ ,ˆEÝn®%F㘱M2£I*É$^Z©¼Iéí>£xÒG’j—®‹ '£{x„jo½Ü]ââ¿o¬-;y' .¦W}ˆx~Š‘@mM](£/Cë¥y ™Ø%Áó”½ÉF$>J›ñ(#ˆâýtAMâBÕÙ¦^®«ÐtDN¶î÷ò¦aº€ý‘áé¼$ðÒýNN¿0ö>@•¦­$ŸÞGIQ;ñì 6åk-Ê#¯—è©Æ³JÎ +c¡™.5Ÿóðk(Õç522mÇfÒ 6­!9Ë´1[„ÀÂK–f›æØÌŽ&Bo¶#\îëð}[¡¼Œ¨Çgäsª:“!9~„ýßó˨]|ä“D°\I#lNWÚ}ªézŠbŽN^±OÈYð§¡×QË›N¨rè> `D-»ö¦#‰ÅÈ^= â§^*#¼T ´³<´¹u¢|r7@üîšKæ6Çó(ƒt|ÓfÍÃ.ñ=èÞ¯Cüó o”¢lªÀ×2?ú<¸>I‘}ì?†-âP`%¦7óNl/žÎÄ8gÎ_¡óØü¼‹øH9^Zs6W#¶7F…熃›ÞûBk9©Wå`vo<´S‡/×`_¢¸HÁz”Í×·›œM¦šÅw&O/³Û7¡ç™7“°ÍÜ&H5z…‰ á{±ƒ|²í‚èE<\‰Ý`³°(qbHÑëJì¬k^{«Û…=u¬”"’œü°=PöÓ'YwZÒZ~gcÊ”qòvfFRŽœ²DºÈn +´²n’ŽÅ")‡m¦¯~³×šŸâþìºQSV„ЈÊMÜì)ÁÓHC6“½ÑÐc2ó2”ˆXÑÕøØœÓ×%6«ó æ‹{„ÞÌB6°â{#Ï4p’Ð-Zs?…> %·`‡ Ô#8-&RÿäÖž1|¼³‰{]¿ œ7 +P‹Ìàâ[Û¦mØðè]v´ÊÑ`\Õ8¿z:¤~Ôüh?%Þ XŸ‡Vjgëuqž‹^Øà‹~ÉÕ{Ñ·Rƒü?’‡v”›²h¯^c-®Â +6 m½ètÖtÛ\::„"Áo%—•´¦°`q}²µ™4ìMl!Ñ.‡¸9¡ØC¸ôá…ÿN÷i >ra( M×½JQŠ=„×86®¾?á1Ÿ°Ž}ÈÀšrm26Ofúz@ƒ§m0Ã’¦|ý¾ˆ¯ Õ³aÐ}Š~¨á ’˜ši›à‰=LuJ$ pàgÜì¶0êŽú0`8Hq^H…€ú¼É críãΫ­éË›ðÕ>±œ[uü׌؄ÒaTÉ!œP*¤*²S!¬g*Z€I²Ò3›¬€¨i·„zô^< µ¬ët“ÊßùøDam‹Jï¥3Ú1IE +¼º»´ˆÝ¨ÏzªÝl Kb…~nM;¶ Ööé6|/ø#I4³;á#ä…”…Ç+ :z›^ªˆ;‚iv{ü˜¦â¶…%…jôðšêÂp¢Ô¬ü%ÌØ»Œõ·®­*Ûj£º&ÞÄ~ÞÒ5Ä¡!wÇ>â…Ñt÷}°ÎpÜöD¥îc.‘ÊYqmë…RQÌGR쥄å“Îd[Ö}–·ë1 +ô[ 8oË5æS *¦¡j‘$Ù>/ Ü—”[Hë +=¦|Å .±¦†±ABOÙ½PPا˜±A6±°TdUjÌP päöuc–Û¢Ã"›¾ûl9ŽQ×”b‡ïÕXÉ:œ!79¯dšw™ýšò,:V‰’Æ +çb‹åŸt/EªvÄïé$„5·µŠxšµæÁ<êËÔG(›àßxkÀ™jX¼«¾¨s¢_‘‰ÞTqÿd‘• +pS 7¸v„×N%w Þ’@£tÛ(€ÆMd·­Š–óp÷š‡fÇ¡*H\ÔH‚1pÆí4gLÓ±t Òo°æ%=¡ã}é óàh±VP5Màú†~W•´=Ñ\—6¿X/…òö¬Ê»º´…éæm £‚:Qòp¹Bia ¸T׳7Ó[î…öé…6ß* 5_µsw‡Â(j¯Ê^Š-0Ю•ÊÍà ½¤ýKË£Þ\…XêB6·  új²…Yˆ\¾͸äýÐ=úîD®MWÛ<ÙíôTC\ó½)Ò¥ílóØ:´Û¾ÃT[hêùÅ' \®°ˆw×(šÁÑ|HÔûÖÓ¨¾‰°š-fÍÞp+Ý9ÁiièÀã#Y  TËíÌ}dy3õ¨Í†¤aãÛ‡¬®|"XtìO%RÃg—Z’W$5±‡/ Fôâ©ëEaa3cx "½ÃÎ4—õ:ñxWŸ /qî¢À@²"àBq ÐÑžỖæä´ËJ:¸]îNlY×K\ŒvÿæÜ?²å°¨iU!ü Þ]oo$lTÄý;"àÊ?ÏŒyéò¯üÎlÛa£ºhmnkf-ÕþˆZž÷;ÉbHZâ™¶ÙzQt‚P-Hdòƽ÷@#žgB8pÔwö^”c…’Ҹϫ¨ØqtJŠ“+˜F¾V±mÊÜÀÇžlo¯¤¡óŒæe´$ìr1`:WƒÍ³ˆ†\ 98˜f±ä³íD%¥¨ÊÞ3ó7Ø_['•à×&BJê`[ì8ÏxÀÅRd­ lOîA +²·°CfËåOJô?ð­®þÚ¹öä¾àª¢ˆ«Zéª +.1ŠvJâÎ^=(BÕSq¾ Òu¦\VOÌ ¹9Çdìù剭ÞºíZ»I±ëÆ+ÉÆÝ¥¼ø”´Ü© +VçÃaaÏn)m‡6OÁvVWïT’7b40*·{»zɇó'F›ù¸ºæjÈËÔo‘š¿q0«‡?®yÊ5&€àõ ðÀñ€•/ÄQ bûÖ+ UˆP·q‚xfÁ.Û쫼%!H’È=OPa3˜o?ÄXvêÄClÝ3 KœV‰OºY1Þ #<²\âÆÍyÖÉezDÐw#@[³ö ½-ç>†Åö!UÌ*obp ñt±†åÔ34 a†½§Tïéê;µ÷B—>bþ¼ð5’rjöÔ£n© t6ö 6hµ7XP‹ÖÉKÈq¨Ih8å9%‹˜"aáVéèrùm>¥Z@Sj +ZF›ÓKH×0BMæ7ã„Æ´¶H÷ ùÖ®Ù#àqžK­†“<å°rO‹4SsL[U5BeÑÁ ê¸÷|xJq¨\Y€Œ˜EãBZ×¢^DÉ8ûJ^N@‘,mHèñŒä —$ nš\¶ZͯxĬO©DFÉ`ñ§ +&gMGb3´óf˜|®3¦5ÕótVÏsÖ3BzT‚ •äï ?(¿„+»•PòÀ^#fjAÿõ*=%zkµ-ðBóÀB²¸ÎÖ+…D91é Õ¬š–rFàúÊ–ä5+Rd娯 pIj(¼|NŸ³‹©åÀ¶Z´)çº[’ð,3·¢ Øšw=%ò}$³B5Ÿz­èm_ú&§vê;úTWà4´²‰YøàfVU2¦9Ö1Ô +…òq†¼¦ÝK=„I;ˆóÑÐ~ 5Ý_SO”cEî’Œ®<5ïú ‘6qN¦Þ§Ê&-vµœ_«F8”ôUzëîÄÐZs¤.ÊUêÿWŸ¹-øàCÙ‹O§V(¦û}Ûkù «äó…Ò‹¨<–œ·NuJ™×Óc%Wê»Öü5qÑ¡"È…hÆüêò\«Š|™KS‹ÖÖº©N²xSyÕ{Z¯ù%†—2HDv™µ.Š Ê(Ð Öu„­ÂC¨k©È¿S_ j½Æ¯Y!®b´cØ'¿›ñf]ù1x ãéïÛ»»†‡[ëäñ­õöýû ­iá;ÍRCüÄ+b`?UVäA˜q+x!NÚ±Ÿü+˜".¢ñXͱ]¾².þX¶Py»é|KتF&lw+Òf»kÀνé¬Oئfh»Ý¯Ð£ÕhìR°;7ôik¶rê6ztìeomínû€dÁx´·.D€³$@â‚ u[oèFæg*€ú‚C0[Çn…ÞNa%Fr7¿ôëH2¸·cÜäßé>…Ë Nv@tG= Cwþ~˜†°!€Tcè±b\·!LÀʆP(ÀlC8q¼»°,ŽZ£»bÀoÍ€_^ÖˆþxÄ.xÞŒZ‚ðÎâ÷¾ÿW y ÿü<¤"Œ}›Òpø55õ3«ñø»¤L@ó‡ÜNh¸ÓB¡Ÿ`—UŠ} ÆÐÎ0³W¡b›üŠMk-6f¬‰¸Øàñ&ûCÖ,`ì1Y3‰¡Ee›‘\]B^3´Ê„Ühh¹y›Z ;!3º~î\îÝ+´KÇN£5»•Ö\tìzÚå´cÏÔšmW!­Ú·¶éùвû±“l­ÄŽ´]¥!žg­XÄæ¸µê›ìvՓج·VabÃßZɉƒ»ŠP›Ê-Ð4/„-•%=µxÔNÄ‹{¬NÉÓ·¶ç?ÇØÖ¸˜Ñ`0ìN¯~-•Áw\!Ó±MD,·5Š쥻b²¢زmÃüµ‹~¼{j‰îwW,â—ãÏ®UÇÛE+¾2 +{\,^¶Á^«9?â_k òpŠE8•Гôk©M 4›2"sT{Öz,ú&b£·×D–nWÕgY‹ÃñNÖs|¢µPýyûfÖ‚÷ã½®årõńϲ–Ýã§]+÷™±+üljµâä\1qŽï° q­¬˜ˆ¸ÞVXÅÇ ¿<“· ¿i®´u7|át¢Ñ´N‰_M£¥Pá$ ­t³ˆÒ¼ˆˆx.ûP‡ +æfy·yeê@™Ô!UÂÞ™•Oøu„/ò$B¿PÜ +§'Wõuœ +»ž¤+w…#¶Tý¬pv?µÃY./W,nÄzfI é°"Ø<Î:Â?ç|áçñE^Ž[q$0}×øËŸLt?mñ‰\€’6‘‘‚4¯ÜÜg'¯ˆƒ >U®çÈJkÎLWM¾€ÌüÕsÊ×ë‰ýÀî‘zìç™»ÛÿJè¢ðÈ"\Z®<ßõ発zԪǙ[h›FßPý˜ó€r%ÚtÙ\¯÷ÏN“ ð³íõ‘z”NM²/®’^üõúÞÂ|ôú??­Äô²RŽ Hb³Øl`RÊ’T}]çH2‰!ÿeÄqYÕóã@‰{?IqüÕh"40øõp„Ä`SRË;Ø€ŠWÆ Ù¡„ÂY–¥od]ýñv›ÈúZÂYâ‹]v±¿Ï²øÖJƒòi”Óy†ã¨Q¥W`šG+’ˆ¸ä[¯hÑ/ '­õiùm~µLÊÍ×ëÞmôVtqPd¨gœÕëi eRÄDo#c^Ûë˜AVƒ¦‹jæùÑ ö´~ãÏã^oáÃop/AÈûlë*d?QËØÙ93¡dhHF™¿¿¿ò@“i ÂCgN7Â$›¤x/BÆÔˆOm@žfÌôÄ\ŸÕm‰¤mw<žŠ (E`³}N\o%åÁu+Õj°h‘Í@½K+Ab2m âNÐY}v!·à"bÉÉ[ÌK…îS#´ùA°|€¢Ä„?§ßŠÜ K~€=×§5×–D›¹¶gÑÆKn¢Haù˜atÇ¢qŒ°«çM`гà3‘KóŠ7ž ËÜŒ öI)~9/öå\n ng;¯à½ULÜ]’­ªó#«$ +fšÚ´‹£ßö&‘þuR^ðœLöœ?+OU–Ñ›Ùk诖…MW’0 îaZTVµí¦{Àwÿª)++±h ×ë òŒUä–”¯ß¹mEq‡,J¢e}|Ú”r;)̶׆ҞXßi¼ó¾»«ÏP&쳬ßMa#7 +½gê›O?n½î÷fP¿zÎöPcœˆ}Ò]%2«¬Ü0™{q>òŒRŽˆ½w‹‚J» ‚.íÈ›ÅÕ‡ƒÜ9 J®uv·ª,l§@7HGoöÉÚaé ­ä¸½”6«í8YW´§7 äŸ?K¸TQ•ó87σë#Cn¡N¹¤ø:ph‡¨èx«/t}¥9O`¤êt¥õÓì­ø‰+¥1&lÖKœ%ŠE"[ÎÚµ™m°dQ·ä=P„ºgÛóƒÃ&6‹ÉϾfG™Ù€èz³pJ÷BgÛ<+?qÝ©ÈG ISr¾ÄµkWRúʽÔ-î€ÏðS(Ö›W4l%Å•§h¬ê7!‰ˆ +¯— wïaiò£’ÕÅ1ºóóÎ~6Ïõ¼}{ ï!lúá]ã±ý&« +Ÿvµb÷¤XMàvJK¦f°ÆëìF}»H‚s[ð+‚]Ÿt»îƒ“³îúIøZlcbxL/þúw?ÙS–žõçü…¥è¥ÒP0ìý¢få?^ÿ‡f‡Á8)ñi›¿…Cé_ ïqKW½aÑüï(¶ÿ› Ò|zÑ;^Íø¢ÿkié·<š—>ðh^úÀ£yéw<š+/} Ñ ÄôFs%¦ß°hZú•E3°Ò¿eÑ dô7‹æÇ/ó]ú-‹f ¡,š+ } Ñ $ô[FÍ@B5oú@¤Øè·DšNGØ3}àÁ tô[Í@G¿9Ï3} Ó tô[:Í@Gè4} Ó tô[:ÍÀKé4W^ú@§¹òÓ?Ñi®´ô+f`¥tš•~K§XéæÍJ³h~¼8¾~³Œžä' 5 zƒÍÎÓ”±Wz…‰71ÕbÑK­J¯ MlbÒzÔÞ¢Ò+Ä$^óÀEJç^é5K»Èv*™êÚªôÊÆ£ +v§­sl”^ó Q°åŒªñL‰/R¯P²9W6§èMkQê•îk½Ý ð +ÈW+|îGeJ½¦â¹"B¿ÂθJ½Z´2yècfÿ]¥^¹7ßÃ-.I“­å–z…ôÀ'm¡m¼lD_¹Ü— õš¦[à;ßôžAëUª]俺™m£õ +.axÓGØH½¢z)K52UÙy¡Uê5wÀlZÙJË©×ÌüàMÛV@(5_×~¥Uü•-ãd[àjoµÍK’afé† ˆA¶6ï,hì¼÷öT`‰ èxl¸[l^‹,ÏÂ[c~oa×ùõO~LAØ'½OÀÕ®ª±×ƒµù$‹†Äª`j^Þ“€i£[„O”€©yÆæË¨µv[Ô`í6‘mÝr©´d”KÝ]ì¡›‹J¨®‚åþ¤éYÍÕ,†ø­l_üh.Ûlæ&{?Q4ó²3·àŒ~úã=ÙC¶«kÙYJ-c ʧûÞ´øWÀ€ÿãÈKE%·å‹Z‰«å‹Z‰«å Z‰[Ë´ƒå»µƒÁ›Z‰[3ă™ b‰·™‹‰;3÷K\ÍÜ*–¬\KÜZ¹ –Ì]”Mœæ.¨%î¬]TK\­]TK\¬]KÜY»(–¸Z»(–¸Ú²¨š¸³vQ>qµvQ>qµvQGqgí¢Žâjí¢¢âjï>^ˆ?’Á»÷ƒ7ùˆhâG‚ŠõåYÐüóWAE ¸Úáúànïl Ç ‚Šv«²<4;°â 9¸¹Ö9EŸÈ¦Š +Ù-èˆÆ{zŠÉ)¾ó`.§ˆÏfÖçÕÜ5êàQMñ?×CK€¡ {5v஬?–ÜË{Sâÿ3¶NőȘºø Ê—M‹Ò6"c-}ªƒ¾F¸lDÆl÷©›…û‡8ž¶*cÍPŠõvÏÞ÷øh6›íüA\,tÚ½³G æ(Û{lÄÅxr·ö$CêŠA\LØS5‹ÛîuÜ"᫺ ùz¼ì A\ŒWO‚»o£-FáCr|»w´Å´%î7{“UÐkSÐ$8è®¶XC§’nJ‹ªÔa¶Õky^‰l_=6Úbhã©VmÑõ¼- +[m1Q ¨+ÓVl¯QZ¬Np˜°tφ'1:¨\Ðèì¨{1oêÞ"$Ž0õñ.ol}§ˆüVÁð[9ð·¡_©s4*ܨði©±Wݧ™uù,ëìh°Žè<¶áÓöfY“~<­®™”×Y–t@32 ±,“›ê›Ó˜—ÜßÜT¨¢e"Óýq¯ìu]…Ÿ‡µ®ÖøööÃV^CØe« »Õö“„]/|Ú°s†éwà7³ë޷ÔŒ[þ:­?²w ŒÂõÆþHi8ˆW•Ÿƒ©Ö÷âá%T[y‡ãC΋vòrˆ‚Ò¸Y¾áœÛâ2?¸èÑù¾z…6׆Q +¦+Ø޸כ÷Jù ¸ÌéÇ1â ]@é1±nW ` +ôÙ¶3ˆÅas—ýVÄZ\Á»IÉár²™Q +‰BÇêMÝ~!q®Pw¶ý‚TŒ¤Ü‘Pg'i©“A·˜ýÉŸ¥ÀDéR“­ˆ¥À“Tº4S™OÒ&¹>Ü—§Ns@øm~óéœø<ÿ¥ÔQa{‘²Û¬lŠÔa•*Dè Òy u]²~EŒ]Ü/ÔÉQûjžb5Úü´áwBB>åÚúºC´Ù¼÷µ"ÐYU¹¯ì˜h>È ômì$Ø‹¡ Ä ÉÔmá) Œ)ÊçŽÍª^¾4 P=¼FnÛÓ `M¿ÒáŸÐ|_*¾zr:ˆÁ %!ÁÏ›*¾©ÊÛ!›£Mq4çxwàˆ2­‡ÒœáS“Ò›Ïtv)tïc¶óÈÎ7õq‰¸»uuõÛŽ¤óÔ¹0H棥óƒÃ£×Ä ·q'^ˆ22Ùï‰.{hàå5%ƒÓ” ./!ÞÀ•·É ›™þC-…ž.Œ=]Cîáé"#æ:5QâÚ«>Oi²„ß~ÅkF`Ý,mD"yâ*¨uS·9•™cM¸9•BÒ=¼7Ø7ÁˆyÕôMf!ª\tÃÎêÒA6e²øé@°N¢T@w¡Âáü냽0+å,Oë¼üË÷’wvZ4—BqMˇ+§¥mº+ÑÌĵI†zf­NªyȉEBg®vM$CÍ5ÀU‚!¹º’DÂCÊR3šÚÙö^¥’ÞDòÙ-m%[=0ÙJ†ÞjãË$4ËÔ3€„=ƒê …F™|7‡O‚´´ÎŸ`Æ9å"ˆüT@Jž6Ó ×k!_«i’P + ¥æºÑi.àÑfΈØùÌ 0Wæt~U^g6C0¦º‚{r½kÕ™Ðû Iô4/$â JgDâ@tÆQ¿»_9ªR/Ê]Ö2 âŸ®ìÒz"9CQŠ+_M ` ü¥ +öo®“%ަ^9ÖˆŒR7§A¤F,_ SèLeö5(Œ•* š0ÂAÛ ØB†™Æy0h85&LƧ˻±iѹشK­Æ1m@×,à®ÅM†»¶Õ×¹`S…¹ÀCh7»‹½ƒÃ¥['¡˜Ù=B{²§tßîl;Ø mÚûíß3ÑTg…Ž:·•:%gϲMox'&÷)`:œ®ªˆ® + +ã1£|ÞY\qHkÈ6UÚm…ŽFz—‚2þðc²iˆÐ&Úä–ª2:)à@Ó¢G>1^¾ÄmEÀ¦`a.Àe)œ`ífΪ`çr¾8áh½ÛZ?ì:f‡¯Ÿý “§wV*¬Y„~þ!/<õ¥k¼ ¢®:©$ „$1Ú~¦g¦lIbí1s›þvÎÕš:`o±»\.KRLV×ã±:ë¹ûdѱg‡•Åî&;°¤jß’ÎÓÓòɱâP%j{峵濩hd@°»(‡7î±¢ýBÙÕºý™ù¡³ +MÒ›–´¦Ë«ù§ìÜl“IDqÎ!Wbk— ±ÅÎìÃàq¸xˆâ€_×5 E"tÐì”È(“ØLˆ‰vo—{íu²“{‘m¨Õs6õP†”Ÿ²„lÔbÝ~oâ…!Ú‚æFÌó¼Šÿè\wöøâJ"v¾ëœ ¾î +û€âƒf¦c;±oÅ?äDöqø†— Ù•ö•I‚Ä´ÌÃyÀÜvŸFDæœ >èSDfn ¥ƒò.ÊCø®¯lØ5§:[»Í¥¹ ²ó¦tL*b—¹Š9â2`s~ÛѺž5Œ8›W\5ØGõwF­ÏË×S« ZJ½µ]:m²ؤ=¼ür?Ù´ÖîYÐfÒÍ ¨Ây胀lÈþcó"oî%ŒØ>SÞ îœ×ƒkkc^ßoKߘwØ d|ï;ÍÍjЛ*Q‰õ{ÖÀ““`§¾§ +õxQ5ÛZgÙÎ3„cu~š{ÓØÌW ©|9å–7sÞLƒ\y‹þ*AØvé°"©J …k»%ØšƒG–µk^’¿É&ß÷v²ëfWN?7׬m³¥CäšbË÷(i³—]Ъh[wBTû÷P¦XGØ‚OñšqÏØo²óGkðÆ>6ÿ ó™ssLÎÒ¯wlϤâYÀm®–&I Û¬FëDÝ Œ½©C‚UýÄ«¥„!Kª8‹¥€%zÂ…V“òQ£}WÊrã õ{ö½;Aºôš,ÉOÞéï›>ùÉ‘!̾õƒ†«6n”Z…Î+z`öÞŽvîý·kÒůÎ_¾ƒbóblR¶i>°(Im˶Q}m¸25*O€àÐÂ*Hó¯m’æ]Üb(ÙÈ œ®^µ(4ÛÆ!×s[gZOj¦èÈ’M!$°eoË8Á±vº áV” ,Wùhûè$W•¡! <û3]Å‚O…h(ŒØSaTˆÅ¸¢,šy˜›0Ú3r'ab϶Ñ`ñ&ÉJÚë{íÍZÿÁ€MH…ÈMj‡í”¼Õ]Ãt +Ì^OEå6H/UtÜÐy³#oÎS‘Ùfç¹Í.a;è$‰ù†Ò>Á„w!oÌ[@Œ©Iž¸:6¹Z½5é*‰Ôë +[lÖkâܤbŠ7Sñé«C,ÙX˜erÙŠ&-L +ep™¸2¤üF޹%"zt%C6Êö¬âLÙ›dÖ9UÖ ˜ù&U#kò,§)}Xc¹ÍÁy´Û™»‹éF.nÍõÑ‹sÆf×gÂî‹fʤû<˜…¨ ×\ßõ)Ô‡ ÙÈp 2‹)‰ `¿ 2 ª]­©è@ÈKŠêƼ…—™´hô8^RÿAªÞ‰$¨j %lwëwwgG8(cÀzÅ2ßùÿSÆ…øÒ±; £Æ–WcHÆr‘C'±—Ûãq^’.Ô²îÄWéÐþ^oF³™Lj’'©D€º—;ùßýÊð¡EûÈX5d} =£š„:3Í;Ñ¢0|ê—;/Öì$YœÜ!¼~dÓ CÛ©¤[‘™ƒƒ“Ämù@ùÎD¾ÉÞÁM¨¦ïNh’€zW×#õò”9l¼‹xî\#_Ú9ìW´\ÞJ.c10–¥Cîn€§5ùQ€Ñ¦G#}çAueP¢|%Š´kU—kE—ƒÁ“K2VLäPʽÃÇ…µªË²m?*¤å ±Š`–O³ÁïÎ!‹°ªâm![›[ÓÏP”Û~/å ,|ÈbK£A³ÞØiæ,Ép¸ó}J” rõ%$Ô!AÚÇ–-v,‡¼<|&f˜q -ɹÍ.YýâŸ=o-ðž»f‘Í'n`­+@IuÏ‘µ*ÑÔX™ùŠª«Æú 'M>"øÙzmFÀ €‹Mãÿ˜á~µ>e¨ÖÀÚR™ŸÐv4è‚ÖªO*}¼Ýå¸+$Kõ(žg­@Å{ #¶ÏF…w³VÕâû]«sO_g©í…O»sb-)î§ÔZšŒ3s-oÆÙ½–I÷«d-·ÆÅ¶lã‚] ¿ûõ¾Ôã¶±– ã޳T²·ûÖZ_w¿PRûf(ÍowÝPâ›v@ÜÛü)xkV B4(ÃLQ€@l-Y€RCàÁ†TÇÖß `·ždµø–²u¼%8"ü”µyãÜ NðˆØ'8S+fhëŠèQpä|)¸€\ɯwpªè’®°¬àÚþnâhžà]ÑA^!b·Kðe[G<àÔ‚°n1X!sûbEÜ…Èdbõb(sØFB÷ÁH­ÂŒ­ÈÄ}P·cp¸b$¿`Ä6>£Ö8wA}ÆPyîCî„ϳYcø±»,Š«9ˆ›ó+ÆwŸY±Â1¯àÆ!5³¢–·ž‰y^óC-SLl½ML¬vÈk­pñ]>-€ÎC^.×׌^À¿oóGÒ‰‚' Wÿ.i¹vÌR,–*t䬓N4¾ÂE›_²Y|Â-ÃXÍXÉâ–@8Kxsá>Þy·÷ &U1ÊÆøÿj&\<!úÍ"Ú“r`š¥ÚÙ)ª= *³h‰®õ”®“ý‚wæ¼cÚ$M† Ñuÿò$ +³ h®­ È˜°o\r'•ŠMâ;ŸMŠ Y¼—M' –>2vM!¹*è#€Á6!M%¥…¸ HGèôC¡ +Þ„ÌϼýðÀàEO ˜„öÃI¤À'rï,¾€ªJÖ©gZUv mKIXLüáœï–\yê +ø*Y´(¨,ˆ¥–³‘%©’²¼¢üJ߈2‰”€w0Ñ'£,'›â0Dâž×ÆþªŽ@2ít5#¸¡NÞœb~ +Ò¶æ_Aí9gôð‚#@k–³dÏIsù­‰÷‘¥ùn#2þà;ψš¨ñ"¡`üe ^OÚÉ¢·"ôfx +\y#±÷o¿¹8ð&öáÔ>f®Me‘+`®ó1+j.Y×~RU6ãÍŒ¬Ôz‡ýÔ^bžsöyV8Ïz+0!“’Ä´ÅÂCнNšv_ëk‘»vÙNÞ)û…7JQïØ}]¤¿«ŠºS]®us8Íh"U›¤¹ÝÃ\RQü@»ï~yD +34¶ c¦ôȪ~A ‡IX*óT夸ÀT·:`¢E榽„• õ.Ðð°®GŸî„9t}]/ûq!øs¢ýê%l0U ÓUŒ=¶mм“%êd»xº“Âvϳn™áVÂλ}¢°oß/äÞéÃ\ ÅþKƒ³~Ð`³Â”¦o;³‚ ó3˜áubß6|»,‚å¿WUð‚ ¸]ØÁ‡ ûÃÇ~Ð{n;ÔÿKš}×N³ïï’KñtŠ”uHWèÅ™½øw;ßK³dtué…S^•": B%ƒæöÌ ¥ D'ÕûA +[-‹öÊÓp&ÏEŸ®7¼Çæ„pÎ¥(”$ƒŸ’â«éæÚ!ÏYUÁ©ð¾òc„h¹1_GdÉN[·YRTmÖu @¯Î^QE:hëiºjœ?‘¦G·¡«Ë&;_kxÎÝT]ݸÀaõíuQˆÂÊhŸüotž1³þÈn‘rAK.¹i©1>xŸ·jÉkH-7¹È8%Þa;P9gÎê˜IzhšÉh«ª&•‚Œ²ÄKáMA‚‡W%Ò ¨ +Ô=Ýs3N^'4Q‘Î €aCÆk’^h]; ·`K¤<AuC>ÑàÔvtLºß1ê°èJSe™“D›h/¶•´WâP¥äÍ«ÄZ’`BJé§äe#ôùÈÖ_"‡ÀÈÐ!›Ž©¸aƦªÏzv0Õ f4˜¥¶F™¥ôv½ùùdGœ*ÝÊ–"Ïxɇ¸\ÏE´;Z?®î_ +5ÑEvoq¶7svMž$¨9¯¾‹"}:È1‡dÔ©\a¦€(ô@TkH|¨ ø$j.´MÑÆªjcõj#_š^hÄ^é…&›ߦóâåàçØSÛ¦ª¬³x!ÆFµˆõÙLJÇðzÐúæÈc °Šjk®úã»_zŽË¡èíò×L×±¬s‘þÂä±*ÙIM••·¸Ø +Ýöår]Ä&¡™¡‰wÐH²§ òÑ"øúÍrî”kÊ®Y ’……* h¹ØærØœ¿HY£ú á9è‹æXò”j½ƒ„Å.tnµÁÔ]˜ã ‹.MôJäg³éà=Í / P›ˆ%«ßû¶“Ä +ØÁ!JáLµ6UÙ *‡—-‡2±G>$2‘ÓFÍV>D×nÑ?9ËYvaj¥]~ù—5‹.Š]Ä“ï³ö©³T‘¯FH,œ47TQ9´‰´Sº_0ªÚW¢vúZõsž27(n?”šf|ƒ½š¿Úpsqô«+)Ùš‚÷4Cί.d±aØÄ¿ š‘°Y•Z2®Ü:ÂÀ¦­ +*6c‚s‡CIï<;äÍíj*j3ÅGeÆ¢d'•õ׃ïO²÷û1£J”fŽö5œg ŠRI’h¶¹ŽPîEät†Ü>^O_ÿä_@\¯+ßmÁ×»(¢‚òy¨ÂQ¶o¶Ÿå© +waõÿ†•Ó"µOÀ"-(°½çPã¶Øiu«·¶^»Ä¥ cm•”éIÕÈ ¹û]ËZ…B^ XÑÖ!H²Àž´õ$’’ÕòáÚz¶÷$¶Úò…OàXhCŸÚžLRì6[œµyóÓïÉv€Êt á‡t”ån3‡ÿ]ZïËå†õbÃÃ6þ‹mÝEv™jâ ïþÖ_]í/Q;wPwjdú'¤JsæY¯¦iýr]\QSã5Öæ¥{ +ù„Dý æ…8ŸZÙ/E¹Y f`œ!$ CX –wHX§)Ѧ ™Èü5WhzÖM<vA…Ö~ÀKÝ6‰ž}>ò7Ì2g¯ ¹Ýჺƒz8ud[}Ç Ä¢äC‘ÁFQ"p¥£“*É.ObÎÐ)ð-ÿçÆdÂåŽCd ŒÜ›Ÿ×ù¾É–<®ú€^u1áwn·ÎDRE;üÜ<5X%½òPûux_?WÏ45€ºû÷NÍX5à0}óùZš-yMù‹×ÞŠ“É HÜÏ—z8¤Ê~š¤Zæ[Ç%ÄbOBR„¹‹ËG,)HxÞ$BïåržÃ]vÛd»½Ä{9š3ÜX°–2x¸øLNWQ/ß¹±õˆàÀStV„—J÷«d¯€#‰ciý6æ— +áÀçÚ# ·~ãcj›'õxxQîyš G©ótm3ÝŽ6³å u~L·çÙ:î2ê8Ôù'úûJ{•tH9º7ïýºÊ¿^—e¼ðº¼÷07‡ðüa_ ï0ìOÛoqooáS† 1̆¸±n&UØŸÃÜŒ{ü:¿?´whôN‚+¿üÉO¿ûyüó¿üù÷ßóÛ_ÿìÏÿþgõÍo¾ùù÷ßüSùd_%#Þ9_{ù“?7ùætö‹o¿ÿî·:å÷ß2ôgýO¿ùÆÏúîhþ¿Ÿÿf¢¿þî7ÿô³¿øîóÏþ§o¦‘îÉ-ÿæWÿÝ·¿úÙ_~óÛÏf¢_Ç“Ñ5_ý½ßüé?|ÿÝþÍÏ?ûë_þìoþxfõÂ;y3øøíwÿ8ïä½»ÿËß~ó»o¿ùG»ùÿò÷>Ьœ%ª .Šwo篿µ‡þ_¾ýÅ÷÷{ßýüèîÿâ›ÿóûŸ}ûëŸý÷¿ýî×ó³N’¿c’üåþ¾þã7ßþòï¾ÿè2ýÝo–«|ø¢þê»üûNËǵÙðí7ÿúm—Yùg?ùoþôÏëÏþì׿˜¿õÿô›_~ûëù—ÿöåþò»_ýæç¿øî~ûÇ?yó¿Îd³"µ”ò%SRþ=”æ¡d©d+òöä#2±ãhòåþTÿý¿þãOždUnÐŽü“þù?Úÿü¿ìÿø’ÓËzùßþ÷ôò ÿå_Ýy¶·7³^jJ€}pC/±ì/vWü²QÛ+þú‹÷šùmúóÏÿ7SX³Ìb€ïüÍk|¥úO/ÿ³rÕf³m·µÿœîGãCÓ‚ËA †2®×pþ‡_̓˜“`-¨§û`S±ÒºmNŸY$?ûå¤n:€A@át|ã„ĘZ[ÔAÜ/X™2–Üû8òðîuöÓ,mX5{ƒ †“\ +¥ ‘Ô 4-Ú¼Ý[j߀£ÚmsÅ$tÕÕÉpíÈVÂ3Ä·otöÑ+ SHÔè.—`¯›èþ'¡åÍh·C\¤ÛO)!%1æ1Bvo @ä#ÈQ1WÃG@Lƈ1A7 ² A…{—–;É}òøæ¶SüB(tÓã@ZŒ(¼_ñ$pGE  <Œ5ó{޾; ÷ˆ„~­O‘dÆA.œê²âJG:&„~. 0È×uc|ºã¥û´¹˜Ã¼ŸAfÀi€pÜÉé"‹F:GN(ýAÎ+;æÑ}]]äTíR©œ:¹¸dAhÖQäNœŸ€:€ˆ„Ÿ’w&ÉS•@‡ëÊjP¡oÆñ x,óïçP­ÐâÏ)ˆçXÙ ºJ”Hë’Y;§ï0Pâ*ÐAÍ(ÉrÙÄU–]#zWs‡ýo¿K¨1µóí2‘AÆeºüBmÌÓwg¸z(JÛY(Op̓Rw0Þ¢´_mj$.KS§hiõwµ7gV•]õò߬:EVgÓV¸¢äÊéä'sߎhÞ¢CB¬Î›ŽƒŽ‰Hp€Í¬œKîÎé. zpû‹kÛú×Zøý_.,~57Äò­@Ïy]ôÍØ•=¾’/ÄL«(læ_Ú Ýs†QYIÁDo§FeäÅ„ +Œ¨¼]æ³_Poö›ÌdôR¼”Ø1ïé5†ãÑÔÂzsБ*\@‘„[`×YlZñ@”|€Ù 8šˆ¼ö=½ïÜ´ ÍO’³çÐîfƤRK*­±vÕTH«u?YªqÄéÝL6‘“›WZG‘>•žæÞ¥ÚÜ's0ɏހ4o‡§‰3Q¨%Z Pµ#|–Ù7!IMþÔy³×ó°½SxÚ`@NðõõÀnòÞÇhgÊ6Æ"€Ð:éO!†…Ó‚×J£‰ðøÌ[K6³4تyh,'Ùjó"¦¡\ž ×¼±ï`¸:%ýRâm +š¿Ó³Çuˆ‚ÝU¿â¿&…ÎW¼øú4F+Y‘+[ì€T¶Øgm„÷>ÑÉPò|—‡£låÒ:±QP™:½¤o¡å„F#-ïH   ¶Å€£‡.$4Â>È\¹uÒinÁT¶0 vÒhÄôð +c.‡¬©!v°pº‹F«q-½®“¶ép|%@LR\<[A¯ÑÊLÕæ°3Ób‹±p…C]=IÏBzvVå”S„F”*&SÂ6Âæ1·=#]è2â£Ùë."醼5úc°\vUó‡N¼ Š‘´"A@k¡FÌܨÛ(¶s’9к„ÞOó¦ý§*ŽÙ'ÍpRßP·åWIWV àƒ¤QÍ€Òºœêyf„¦*c§ßzÕžom.D¿‚0Ã/D¦¹è(\ËsfÇ ÍÕÞÂP\í]Â"°S9q®¨†Ÿ|ùÖÈ£¸#cw̧eÿ &9_D°:$xNRÐÆAsùŠè„èµ™òM!™JgüQ½ÃÈ,^»9>úé±M6÷ðx‡-5étÂúèmö¿Wb¦Ò‰îç€Ç7û,à_Ù¶«æÙCyb:ïÏËé±ä×Û;n0†ßt–LU¿ÐÝ^³»´óWÉÛ…?æS se7·©\@©™ +¼­Ô‡KËÁjÙBQ?Ѧ×ô+-);P$\ƒ¥¢Dzy›p<âœg9¤SÉà³Si(—}0ž?Ô#YìšæÕ–.šôW!™¨¢ºoªk)‚’Î $áVØlkÔ,B¦#ÓVœ#Lroø<à#3´6Ï4#5ˆÑY§è{qì„x «3žuš¼ÉÀ¾ˆÀˆV×õ@GfZ8hkôäÀtZ‡Dí³Kr£ hºyÈR=øÝÙ·ÂN•àMzó+)ê —è5KX_Âß“…~®çC¶`ÄLÂËaãîÄ^΀–=šÞÚ<`$ļ'Š4Žj"Pá@=ô+ý5n?—ú„XèEÚ»“ê[MúöŸ°¼ÐINyÖo ©¥ý„zðÒƒŽ«DˆKì|>êâ°eÌYqéãÓ% ­‰žçPƒë5œp‰å•Ô±;xþ1É–ƒæ8±àÙMœi)L4`Y¼=o#~°W<\7SŒ*1Ø Ú¶ûW¬/ÔÖýUÀT+Ü“ë> >ýtËAû–  J²;wEQ7®MÚS ꥩlÖh'œœ¥a@—ˆ…£Î/€¿¦ågç¤2óø4ôËšÑ8èÐEqË+Óéă‹6¸Å»NõFÌ>e°bâ¨aÑP9éNíRöåfñ“t6€bN¨6éì»|Û¦AUši¡ à³%Z\á’†­„ƒ›è˜u×¾½*ÚÂõçj>²ÿ +0²8PЂ”çýßw´Éßð>l}èz$ˆCf]|}pZùqËØ/û)‡<÷ó2HC¥Ôˆ[:˜mf<~­ŠEÄnlJGinP¶Æìö ;è5ÆÛKílç@Ϻ«rv² q›H׈0Émzào€¯%p ¦ã賦mçï’}b–ÍÂÁL€Y—àæ ÊûÔ¯”cßjRשôp¯pð**BYdÎyº1-"Ä@~3÷Œ¥!„¸u: λìqÉ,S¥œç°¯AË®-ÀQ$öI"å€ sÉ>4¹ž»S”íèÞô÷È{åÙ)Æ&8)Ì€ ™ÐŒ¥ïB¸èÀ%(ämÌö]nÀ?AŸ§Y›é{r ¼?Ç`ãàÉ¢Ðø¼Èk‰$Vx«îˆ9Tâc—SÇr{=]Òæ&áxý›7Æ`Šx¼ž>OäG3œ¨QîO§äêȱfÚÉ·éb)¼'{P»$àÌ~80!^÷ûz:”1ÙnI'.ÐÇ@µ(ÀʺûÒÜhØ-"]GèPÕÒhËëÀÄó¤S¬4(´’œ¨•†|ÃPÒ6K{ ”£z{¹²OʯUü:Å5/J•îL¢€m#î.úö€° žpð(ÎÍ3NÒÈG¡ qŸÌÒ`kn›Ó ,á_ñøþ)"ôpà€Û¢œ¹ðtÐ>Ä…çÒ¡Q¡ÐOÝ”€aÓ€f„DÄvˆZ^ÿ®³™Ô-¼;E#N)ýþä9✲¯x’·g[?7Ïå>ÝzA ÛÁ:Iç ͜ĮÑ%+0@žq»çãÀýåÉðå ßüȨ̂™X‘ž„¶rè®: +lt.¸é0ö{¦ +Å:%glÓ„€™ú®h±[™7Ûé¢Õ ¸¼vaFc©ªàçãtªx½ÏÔr0õ¬_‰ïËîô‚Ôäב‹0H¤ûÝÉBúéì æX°óÒâ‹Ð¡~µÄU §_$eÏ^¨…1æÂÀTÍ~º"@ôë`Œ-Q`“·ÓH®Ç¸œù¾©õ ~ ÏšÙ_u=îÚxd¡¸[X.aJ;EÆ4ètp8k‡†ßª¾þ¨ %%¡B(¤ïÉI²ç…t5¥û­rµ_ØÄw‡4>ΗcÆcè’‹¥æ°YP ^î)ëÑ»S)ÝÇH£ˆAé°¹¸Ú.Óã_ñËÔ +Ù +5¡ìúÈG¥Û‹¹ ZZȵ‡=øƒ‚ßåàQDµüø]:ænØÒ).Ú…­µ}¨ÖŇ¶Ð¸xß™è¾á´Ùb³c4·é±üžÊ󛯳^îô#½$9&ûaì}6z8˜Ii÷.tIÑ„‰¥6­ý§¸„ŸY~ß³’µÞX‰06ÍWµÆžP ¦:ƒ±­µO,'¸ûôš÷ß"O¥<±t6%ßþêš1“þ¨/ËNæu8@^¸¶‡ƒñ|DßôJ,†‚Œ”¤?­1îDrwb¬ê‹€)ìÓ *ñÓµÛF£½åÍÔ¯Ä-7ÐÄž‘­ú»…üüóz¸+ú› :Hèò W'9°:04Ù¥ AšŒ6ŸÂQuวZÏY ®Ÿõàˆ{ÁwTdA>VÁ5ÌYçîÖç¶QëÁ&$–{b»lAÆK"Õ~õ*7‘d¾Ý^7àãÈc‚˜¥e‚|¯¿«ÈŠ.2)õ‘³{ø¶¨¨vB_D®¥üƒÛ~º|Ne%I=“Gò0‹½«Ï^=HYž3Ñ©gs¤„ͳyø|§nI‹ðÙj¸’ñ[È)²H-®náu<ðvû !“zT`cÛ麑0W½øê¨$=ÍŒØ ˜€N§²È À€ñ%a>8´n0”SÄúârˆÃo8Õœ}Ã!!Z©ÄKW•¸ïkç?.ߌ¿žù–A¡Y³JLK‡W£Ò£=®L XÕ‡‡´ëß/±Ïtõr,s¯™VEÛ_ðßùtq±}´R›• ‰E €43å´öð-èéSXI‚Œ÷Y…™Ð]×IYÁ"…3]ÉÖ‘ˆyÙ5 §$1*šT~¡LÈMhH¿X„!:S™ñšÀ–&UG§\“wDc™­ÿÔ°iý[ÀˆJˆ[É¢¼¸œ9ÑFXLu:5vo¢Ææ/~¡Kõ÷a‘Ç•Äk-F¾–çídý\þ#¼”²˜Ð¼e?¯¦¿èÛ˜‡÷"M–TX-Ï–xÚ;½¤'9›+µŠ ·H»ð„ÁLÅCÖ]Šs45ƒ™E]×Ì>‰§W€”ÊÐâìj‡®ƒU¿®B/‘"›q¢Á&zˆÓÛòm ߢVñð„½gò7¨N6D='>£*L»6 +MFùÜQ×xõ+Yç)G¿eý `Ÿ€Š?bCÔ~ÊË}|¹ póÒ +(ñ™æJI*o«I5w€[°¿½H€—À¯Û÷x4Bgt) ‚›'ê_|×K² t9¥{sµî{Â+ Êñ3˜ˆ,6/ºø?ÍúãZÀ3g÷¼î<–ÓT‹(rUÔà¢Z¥uñ!¼\‚GÖ¬3bÓ—cN"Â%Žðïàê­§ý'#1º9Oš©ö¥úኖ*´ò‰Eu¯p ŸÃãœ×ë59[mjvf(Ôäžæh@nKùNiÁä9·³RôúB8Å|¡«ÝåNFÙÛ`Í’ *P!Š;óºSÝ0@t×iª)ð9œÿ»é›²7s[:§¨#?®ãÆÜ~Fï¦îF²3´$PæbaŽhl>Œ=êAýgø’6SéºSp/€$HíuÖ(—@=®¼fdF"‚ó¾äËš{ž§%Ê©¿ûŠ^ü“ÇÔ´€dÒY¤õFµypÀ?k›Ÿõ^gaÑÁųÐ.Éšì¼rº«SÏê‡ç¥a!Ç丶Ù>¼ñyþ•=µÒ¾9/d‚½ÙDç%¯UõU½j$Pè"—iö̶¬þBO ¹¯¯gyVr¹IœªúŠ‹Éžë=À0RF¿è¹Ä8ª°ñšÓyzÞð@¯zêh« +A'“Ü.r:€ Êó˜¤$5‰ûÈð¦h´â'?\â1F4ñð‰ø¼‹‡×«™4;Äs4öh!Éx_ÉmXgó÷QHÚ2ªI&‚l€'íà‚²Œ ͳ›kÃG(æâ^Òä +òv (·Çt4ú奷“¼Êål6Òà¶“‚ºs½QçеMeï‚ÂßJ€F ö1¼.§û™Â(‹ X£ µk\G@ôèSÕš­3ã¿Òï’¦ #>OW†&&yô™Ìh8ˆ±àÌL8üè ;.H/»éÆ-Æc£9z¨‹¤» +G+v„ Øpüà©Ù6…;}L´öBv,n¾uÄc¿ikŸ$“¡Œç!ñ)±û\Z÷©úwšKg‰ZŠLþº›¿î|—¢ULíELÇ ±¶³Ùe)+t‡q0@àácjѰR4ç¹|ÛžÄñr¸KÉÒŠ ù¶{çÝethžBçasaBÌÀ % Ì.½Þl ©\Ž©IÇÈ:E™/ÞŒ_hHF^‘𭺢ú}N /I‘Q’ƲÅIqÄä²—põ:‰£¨¹¢MÍ‚xÑâuI>0Wl’퀸ÜyöU9»¤At†>íš6h²`ÿëYò)©]¦Ô!‘çV&Ñv“f/Ð5yKÓHHX &SOBÔ²“;ð[)—Æ}F’ð„x/Õ) AŒ¼’úÙ³.(ÒÍgùá•›±G˜éFSFxݼi œAã%Âküùä#;DHèMÐJªÆÅ×D¶™?ÖÚ]¡_Gð…Ì€¯¤‚ÅÅÉ+¿Ì‡mWá 8õL“ \t—‘x ›x[R <çAÁªÌ7;&¨Ægƒ­½6ñÜŽvJ‰ª¯ðØšÙÐÿ¬†‹«ÒÌzj”æ†í©‰Aì“ð :ÏúÒHS:É¥,S’åáó€,£_O’Œ0ÏŒÅÎÐcnhĞǔ`ÒK£®ìÐê 4þéÏC÷Boÿv¢¤õõY’[ªb1W½ó’¶aÕG…7‡*ýw€(>C;¹ŸFø»jîó]‡íÝi{ž1ìRü7!é° é~·¤t9b jüÃ’ç˜Á8”’ÂXL=Žú‹y;j¯½pMÕp9/Wß…k8Ð@.æÔÆCâ,#«aóŠnÂÍüvÛC@‹×´ÍÓ(ÄúpV„>fáÃG$´j­Î &ƹ†K|H I¡æ»w¨bœ´ß!dn8Ï9[_l«2êäá ¨2¢CÈÌuÄjŸÝ•]GõæøÍ¡Ü«{‰M U¡&Ÿ3øH&Ñ®áA@ªBŸŠb¶ƒÛT…Ùö?À¸Úu™éôñÒôBÝÓ¶ê¿çÑ4QÇDdv¥Qê’‚„Y~û” G½uòšPC–+y@Z¢`Áf@ÑÀÝ“_ˆ×c#P & mNZs˜[F‚ìogÙŽ¾Ø¹Uì_¦Bó5.ؼºÒ×Ô›Oxk.¹ÿŽf¦ŽJ"œŽ¢ðgOÇ7O6 xËYëoÉø è`Tk?]ü(ÝA5뢑>c p§€=pZùÇú"§Vá1)žÖÂ76I•°sº¥“ºpHqdé4™iE鮦¨ÚÎ6ºDg<Çý.öåLjî¹Û ¼µS²½i$T]:N4X°Ç¨ìˆt87þzÖþôì›7»\ì@Ä{œTִ͡¬k£pB$ÁÁ5)µH mÜJvÐŽ=p¹Ç¬‘ã­ñQ„öSc‡MÒèépâù‹¾¡FJlª-Mó<ûÝ,ªP¾€í)$»¤óð¨'X3m(ߥ­jàéé$B±‘¸>‡—-‘硪I?Ó÷<æuÄo"Þ×ãõ:P\2 +h¹òN2p~»íô‚®Ç¸ð’©¬MEà©ô bcû]é7/B9[²èØ©UÃiAÍ[ÆìHíx%Xí +¤¼1ŸôD¿ñÎ,d"…÷r§eÁ–Ú°N».Δd±ez¹ÉëÂ& +ó‘äÂlíb;R“€k1VP])…Š@ÔÍ Ц²í›w„3 ê1JæZ Ì€÷¨¿â¥@H–èT çuYòHŠ&ì‰î4ì®ñ(÷ ®:Øn/œŽzSï’$‰rt5ðw“òž(®¢ÎmçM·s¦QBÚÛAŸ©Kþs¥„p²â}ö’ž5¶ôyè.§Ow˜Ì.›d8^¶Ñ¸j^Go^dA*ÈôìM +Bp`³(À81ÆyKëŽÄ©‘JÌ\wô2¤ðÔDìzô9T(V¹FÙ¨¹Ä7$ØUœ—b#ð ˆÁˆ1§Ö{'^1v¸¢¨ÛÁ0€BHDzÔÿ]UÔð»á„:—Ù?U‡›“uî¦Ý•× '½Ù4.y‰ÌþPv׫éO##º¾¨y‰*¡IiŽ)°¥¡Q-&”E¨t"á ­d–ŽQƒô£Ì ÂÁg™JÑçÄe|@ꌽf €õ {*Ù]h ÿFÑá®MSÍ–Žl+Q)tØ´ŸÙ/$¡9ì2“LjªÅâÈZ|ÈNh”ÂŒ“É·™l>'Y[Y~ý*P9!Ú h¾³›šjøƒê¸l“)‹’Êõ:‰[Ñë|LƒÓᡬѢªzS-¸Ìͨ™;´z`Ã¥ÑÜ¥ܳä-;ÓA-~¨ëÅž º<î6éZ~¥#¹MãÜ¢”犜ÌY…îäJ|6®„ò‘5™1ÎÚd®ÁÊ6è¡Ñ¼D䉂p–¬µ•”S Ö1sKE@)[€ìÏ@ (†IdÖ?'ŸÔÞnŽ‹¼££‘Y´`$“'%Øš¯'šî¢ºk»Ÿà½%õOÎU&UÇ,$ÊL þÖÞnWz$;Ó»ÝÃ>Ô àÆ#ÈÃQÙ0ac|0ÖQC(Ɇ`K-È=|÷Žçyƒ¹¿Ú¹K ÕÕ]èI2É`ÄŠµÞ äøªEatøâ[‹¦—ô-öUþ–$½… +z¬·‹>H$¥G“Rse‚gÿI3 ܜş‰"çêwb’áŠyík¹ (ߨAt¸5dõ¨pkï1åJð] Ó.&æH¥­S§QRa„KÜuÊ­¼Bþ:/G;ÂI'{ìa{ç’9¨‘¶-wjRLx@ì_Bjž‚ûô¹¹ä¬ø‘LrF€›ZJµ8ê&›vÜS’4¸[£-TW´S$ŽGjèDsCFõE̽ž;fra%ª:Ç>ŠÖ€+®ÿç·'üFNá/ÿøùk®ÿáã?ýïú—ø§ÿëã/ÿê¯þó/¿ü÷ü¯üÓßÒ÷W: +¡ìmWŒWV@P?`AíùÇ,LÐ ¸ª!ëÏöÎñ¾ñïë‘õõ.‹ýç'ž=°d6Šã™ûÊÆº56±Õ6¼i€ÀLôxŠS] F8z€'?¡Òe¯o¢ß¥C å<Ã~·Ñ0‡k~nþÍhʘÛ6ŠƒìÌP}^••ê™Å˜¹k`ƒk8„ âI(?vÑž˜¬g‡tPeþðÑ·ÞÊ*ã‰ßbòUü&F ñeÝ/Tð|}ó +7ض5J¦$Nø|Ýz¯ša´ê[ñêú7 Ÿ°p¶ßÓ£°jÙÙDßDB¡ñ95Ž„:"G7 @FùY”8›,+&?|ÀÔÓFÝÛ“õ§”)!0ËßW?ÿŽC˜ÔÌ{x|³>—ÕúÉg¬¡èå.ñŸJ*kõ’LÆÂĵ™âñFÒ¨ÙáÞz*ž'Å“唞æYÔK}1y’Ra–¼R‰Eà€^kžŠ;¨,ŽÃ¦”•õ™3´ˆöp%¹f€^ +üÔíW*il\ÇzVFU•{ö´Hݶ¼üˆ;EþøÕ‚æ9XvÎ ‚µ˜Åã²DB&PŸ† ètEˆ«ˆù/%»}ó\çeX£RXkpšö¸{~a¼Ä V¯‚"õêi/½Èt.%b{Q³CaÕh·‡Í{óµ-MX7èqí¢‡òs«G=Æ'çŽý޽Ú6ànzþ‘ o/g”»1Š® õó¦e“·>àÝ”«=·ƒ‡Ý –¨Wâ +"Ä ëP9mxM¸‹ë¸Ú-îq˜§Üztj­LVŒ…\諆ƒx¼ ¿ +0›zÆHVz…i^År%K¨;­CÓÄæ^3`²’ˆÇ”¼šõ¶ò¦‘²c;T$<ÝüNÒ)?ì "6ÓãHÅDýÒ·×<67cò› cqqz•nÚ0!¦(pŠDÖpɇrfƒÃ8—êwÆwØD9s4ºiboØV_zzîM¹¾5âÎg½§:F¥ôRâö̪À=^!yfïMò„÷µU±ïhÓ¯ëBƒëÿݽçeÃ%ùñU"¼UØ©†BöZ×e¯‹!X&Ñ5ã@Ôß»S„¯Óê=0ìN æõÆ× ‘hkÛKµÉ½$ó{Éæ—m‚Üw¯›qVÇiçþ]@ O’4y ­h +hyX+$ZÎ}—„Xþª•DŸj˜»6MÐÿÕ¯‚b"-äUnFHXåŽbÕ‚«bádWã{n1à‚ùJŒ¥Q§ä \ÞÕ£çóözƒmÏ\ê$aP”\Ž÷¹™OÆ€~X4 ƒ<¹á’©A£#ðSi=‹…ÀàYžëpå62„ ƒŸ@Ä—eUK2àÉ™bÅõJ,òoÇ4¿ç&@k+ xù‰]£©j'fíÐÑÙ„Ž… ÇORbíÕ£ÈvD1Xß +èɆ»¡6vÎÕI,ØhA…†¨KuмÑ! ÒÀ~ùfS~2þÝ××á®J§Ê;\ÐH÷<]½Ûœ¡ ÃiQŽ-<÷Ž?ð”Ó«íNÓ8óY²ÀÄHÀ±ÙbS¸–fæà)ÕÿÂ2c‹¡Ü²”®0ÌšùìÓ ?œŒ£KÐ…Ù2-Yû©=„9•Ö¸cÉsFù¨ú-9À«á .§áâ Ñ`„¸Æ2Q¯ñy¸)Ä…8·rߘâ·$SvÔ%8{"„P[5h!/±_¦£DãƒÞ©û­µ½: +èH&ô^b–ÉP3ß=ŒVí0Øvk ›ò 2è†àÓ~êg Yö £þÉÂSbvâôÈe¡h@é’~Ü.Cl¯ m# Æ‘©<ì5­›Œg  ¾éi²ÈóØ€x–34.­ÂÉüDÖàË´¬½jô,¬õˆsè… Òîé¢\†ÝóøAZƒJ.ˆ —5…¼Út9GàK¢âJÄ­Ú'½I [ÜûfIm¬ö]ñ¼®]†r]u0²PWà’‹¾»²ôì ­l±þ·¢¾«XW"Çq6¬›•Cy€º…0¹â¤¿èãTGðXìÈ? „ɪ£Rú½.dD¯i5{ôtŽÙ.bÄ/z‚¦ Õ^ü Ûà·’³†…Éx§ÁmØz6Äö2BÚšgº¨ÍF¤y í+àáÌS¬UmzQÞlš»‡ï/tt‰¯7Yë²ó·Ko?w¿uÕ¡r€ÂDÅ 5ÑÃ_¯Fyä%ævÝá«r«–l7ÚŠ&‘éûRIw_\Áq¨”»žûµQ´7m­0Ú†926_•'DÈ“I‘ÄÂHR@ÛµL¢IP~€5x Ó¬R”0Ñ$C³_’I¼^¿TZôú¥h"r?'‘‰› ,gPá(Ï¡mñ&p"ké!3£ üòQx(©ÒuøÙƒ[èa ½²FáJîÊøí»At÷ýÉ+SCÑÏVñ*±“dÆNRzÑm^3Òô‘:Ḑ1éoY¢²Á2âJ€Ñи·Ókkê¶‹l­qi|™†TâO9Ê%ß3EÁÞŒHa\û<ÛeÁ¯aÓóÊx¿Ð Ðì9œDQXªbøò‰íùœÐ†V#ša”µ~91‘G{²j¨f¿=G¸Þèèú&g\[ÛˆFAû"­@H¶ã1}zf’Ž „ÓTÏP ²Ö©–©ÙJÖ«5¥ö¹_#õÆH‚Y_ÕÊoEKý øS_ìåÕ¥úU-Þ÷öa£ÎxÔ*»R4§~5TBô5§#BECd…fÝi,I!ËŠôŽB+¦¬6u髸[òÖmƒŠ i¨Ýæ… ûüáhŒ0œðÝã¨a *Ý$Á¥ð­Ìh̃U³)©ÕîÜè6’ØQÔ[H„¦/M%°ðÞ99bBh½uå&_‰êÍΔ …3!&ô)L'4ÕJÖ‡““[ÏB©%÷!2|¢ha¢òÜ‚eÑ‘hoÌ¢ëUúz^; û.¦S±|£:L4 j- ü·Î…¾ûîR• +ÌßV,}´ÍÚ ª59‘z€oÙÜ¥Ün3•Tå?Öç{ƒFMyX(YÂ×MMš†ŠÌ)ré€É}ÓSÖXFŠîf§÷€!yeÔ~Y{«C~Â«Ê ¾¤pË"¶¦©…ãšP¬IPþHà'#À`ZsÝû:öG +ܯ[pÊ)ÙŠ‘˜EI‚D®BÜtýrW>B›)0 kç3[²Ô<äkݾ¬ $<^n¥Ý¨?®M™ÀÞw¹€Ù»@ªÀ%QÚ6ß÷Â$É^mf¤C?žZƒ1Únþ.=У›b8úç‰X§)ýã¢ôSz aé}Ã#(Ä2ôì¡}Š|Ìiô2›É)F®µÏ' +íD‚M¤ìî“Á3ÄTZ0% cìá¹z4„uéaFúR̸F®h·°ÂßcìÑÔÔi&T]¿;–:‹"«rØØpS3g±$XpÝKDwtJ‚’I¾^ͪšØ}?„„ÛwNPÿìH4 V­s3SI»L݈Žm-i\~5à}©¿óu\#ŠÕX’/;6ört®Ndå%äÊ·Ùiз½nµƒ “Õ×}|“FKí/Œi.VÚeX%ÇV´#DV—%¼µiæ¿¿‚/Ù¶\îg@óµoÔn}&¬j@Î.ÔGzW"ÅC[cQ¹ã»c$Ž-ú^\5‡)б?H¬h£ëÀ¸Nû€ +rbÂj!¯<#ó +¾™WR¹çQ¢d0uÇDÕ¶ó’!~j‹hñêPºÓ´×šO³}t!åD5©Sõš›ýÄ€â<£î½)¶ÜçO‰)ÇŽéYáû¾$þÓ£ u‚(Qí‘ ™²ƒr=…årmvêŒÀ*QOc9m$“å·Ü¤¬ÁÌO?–%<Øqí„LÖÉÚûTÕ(D¨q–jzií„P $y^eWá¼Dm•ûW6>k‹ 晴Î`!’G-¦›jd"Øø $ç¦Z‹¬-±_qëÕ ÆÛãˆmYó2 {¤Z…Å)åÅ#^*ô@;=ØÑãaäÐëˆîg‰x·¨Ãà Ë“kàæx-b3e¥É0:dù-ºæøG((,l¢†*þ©EeÓËÅ3‘ÿe—²H²2iZC™$ùZäså˪g;èY°å·¾«ê]•ˆ(¡·¢ê0F‘d¨Uc¹Qמ¬ØÙòÊ€c&ËQáÕžIïܬ°Q¢ã©)Eà–9SxZ­¯@§Ë#mõ¼ã ˆÎ=Ž£LHŒ@pºÈ˜ T$"ïù*œ©MM †'I9þ¼H¼^+¤¬S×LÖKøîö@ƬxB<\›ûÍÒ:¾Áw\BÎöhj[`´"ÉZ‚BòˆAynÅÖµÈMÅx0Ž(p0zÛt5Ë­ò½åuxË…äƒe + h¢{‘¨éqܤ­™¬Ö+ž,™HøåûLû +&¤Žô¾VÐØÿ<“8íBmÔN‰ü§@a¨¸0â@t+¡»õA¯ô'‚;ã]^òráÁ鬨¦ð‡!5Ex©Â7UK!ž…¸¼Ž“ }¨Ã]sãžéb=°óT¤Iµ2AyH$g >$ø€Ýá×׸ }1ö‚ Ë +Šsk½NrY0«ÔrNš‘_‡™ Ê:§žixžû‹²’Á¬;㦩¤ÊÙºñ¥öBr×ÃÌôb£@ñ¿þ‹P?jŽ€Ð¸i‰CQ¾­¹="Å“oë_ +b©o™a)!D>¾>±Imjn†ÜÌnú$®/2V ˆÞðÏú8çÌ"†ÜmdëBÀâifjµÌ¹Š]nU’{«çCõ•Ž?á&ëú¢î<õá2x0yÇláTÝáæ­…#)"$g—VÁw†?α† š‰õ4r4rËôÖ\u:¶Ä55iZ«aX¨@nþÑ´¶`ÍÅdÕoc_ ]¤~_j+ί@äí߯("(T„ “*ûÓóöÃv*]ˈuWª‡‡`—s³;KT{5x8ä/˜m„)÷ç—ÌZÆD¹¬_ë ðõs4¶’ã[[ÙkÉZ"”>stream +ÊŠ4k8—4<& 6îÏφûÌ5‘t°ëÇOÖOß~oà¾TOÆ·§#¼Ž(Ë´¨MRŒ‘ÁΨœ¤ +Û›ûÂ(Ã<žbï„É\æÌp«BÐñÒÞ{ܤz8w42Ò(zÄê/4P§<$ÑèP\„ÏOÀ–$¸žÁI[©l‚vG~|îKo Ö’˜Ï•u¾óeþn[v·¢ª:XûšN¦>q- /q΢šâ² }gˆœR‚ÎPƒ_ É®„ã÷êLpíÖþ$ÇYÀ›™¹S-ù’½x T–eŒËØñèµÓK¹CéE2”^Q<޵H\ “ƒ¨ M†+éxؘÿæ‚üoÆM˜ðýï£ãYŠ5‘Èë†8û¨†Â èHXá(ÕˆÂ4pŒ2 ç÷…x«¨AU’»#ÜsöcôQu°ë¾hÈð##eÙòŠ,Prb¢ý.•|ä,‡ÚßçICE È»I¿ÚÖ;êl*>7XÓ† ÷B°DŽóŽj}÷ŸÜaÃѨí‚!9Tgù %Æg“ìO¬FXaSLßRŒWQç`‘¥É’¥™ÉÏ܉*l† °Üï¼õæi*§ÎûñwyïuîÂøÏ`.4 ‰Æ tƒKé)köc/Ú.~Iþ®’¢/=~Ù¹ÙÄÏrbgþÍq6ìjA—\‹1’ ûh7ÉåÌlïø­’•Z{R‚våŒm¸ëÃíÂ@§J(N:¨¥·ÐªŒ˜vÆ|ÎÔ£DÄ8¾M¹Â]‘ZUb E3ú«Gßòl·ÐYŒ)/;ä®RíÝÞ̨ )wt=x rŠ•q)jnžÙ™^§&>ª©“ ÓÎ6âbôÎö`^:P¹)jQ +°ç×°°.ö a‚¡Â¡ž‚;7k]‰Io½ +´ëþtí›Þz´ø×Z渟<í×^(ü|È÷­?MÞ%o¼z[óqÀ1‰Ž +·_>ÏÄöظ­ÇÙÅ~ý6…R³¨Í©ƒËwÓ@É©SsX/äKç­—Î2²¦°Iùí3ùwA@8‰7Ý‚Úö±x¨–ç#„"XyÄÕî À ž +aÐG}ÅHá®ÝÈf~ q“É8­y¥ê­ +¹zã›{#ô`-èAGM;cm,šœ‚ú‹5´iðIɬÛ:Jüæ]rá%aÿü 4²ÂPÞ3Ï4QÍw‹?SûnEñ­gk/NsM:eÃ!PHG¤®²^ê»J÷™óïȆ’½î”þ‚Sz±&¬!ÓÉWzça­äëz2sìã¥MÇ«Œ-ÞáÊ×!Wròkn@]¼‡½—ñ8Ó øUÑy>¶ñùŠ–=)¬WT¸Ä¨UVÌKk’`‘Ùb­Gªñ„âä*þ|Dô{î/çÃ[á"òU5GÁ8.Åë>†ò·F±ˆtp$$ ÇõðÁ;ôÌÕ˜‡§±öÜlok`1•[ÔЋÐ{ø?},Þæ¶þêuŒè€!äi§KQ†ÃŒ qùÞe@4 S Pò÷¾¡Go[Ø¥æóÓõØ&êu÷„ƒ·®»ÜnîH1Wù@JE2 ØCÇ{A¨§ ½m|`èU޾Wj'CàV%y +2Ez¸eøŠž`XÖ†å:e쯈Èu9÷ªMœópò§{ÎC1j°ª ¸åkU&%64Y‹hƒ…#ÁB‡-†„d‡}„ÝÈB¼fQ©rßž÷‡Õ †wz9s:CYTdšÙ}îj˜štUà݃˜‰rbÉñydÀº)7™Böêûz˜´èÕª2ÔE•t8N³r^²”éô'YÕ«O9ï~Ð×mêºÈ¢èj;daB×cf”‚Œžò!]ò­G}‚ªï÷óPº˜Êôº–Ø?XgS¸WWË[âŽÙ¬²±„ýÜŸ:}$Õ:ðØç \”A0†m0´8n-ªêÕ×­W?¯8}à–±Tì(“£Ö[CQ0ñ}#¹³V1̰ Ê!’‰Z^ñ7™îWƒ×øÕçiD2™$7Då9x‡ËaFá¦~†óhzŒô ÃGäk£îËb’…Õ…wf…kÅݾ(§hPÀ¡ßÔœ_ÂpÛ’²ÁîñHOÈš?ÈÆÎNýJ'ÕL( Ç4æ,ʲ(‡Œér^*F|ío£O´Çí›NÇVåW çW·Xõ±–´½ýÊÜ0¶(v7bí:È[gØ„ÁÛVìÿ]/jvS¾¦:šUÐû.@—f¯p-%õuTÃnߊÐ$À?lÈ æY½&EjÕ†uLB¦Ì¼“”ôáý}*C漬®É" +¸-ì)³Å{÷Ê…Zк١²â€)ÐÒg½o‡ŒÉ+® ¨Pž¶‡z235Ú徸}ùSÚŽ~ê|´NÌD40S»Y!^·ìšBM%®”;úCÎÕ£›×t´÷y*=æðB¢»P6€‹^#OWŒ>’¸X?q¡Ôˆ«»Æ’ï=Ο¶[‡Ö+ûLo½¨ót±G–Þ"»…$…ªÕ8 ÜÄéd†„}»•B¨{ô÷¹ièÆwYÚ¸¿=ΑâS>3‰Ã,hj}é Q^ +°!{DíÄ 3 ™³Åç*æêý€¦ÔD>èñ!‹ÔNAÕi¼÷x^RD:yIb·ïÇÁ·X:ÌU’Å@µ€³õÛlÄB°“x¶}£õìueVQ—®Aƒ‡ ž/J56žª"ÙdÄE¬ÀÀC•€¬¡˜ü·¹y%0’`Þóˆ{ÉèO,ÕÄREiô]”ïê)“_Py.ê:O(5³1bâïIÝ¥Ûi¨HÊàÆÕÒ#Öi‹f°z¯TÓ>>«íËM˜yç8Æòœ½Ö§{ý„«y•¼àŠüUÖš›T|ow•›§î]õÅU.á{P¢ðAœT;#º¡É:º\z‡Ü;6†Ä¢¸|õ5Xk2‰»CÝv†§]1âƒLÙP?ë%qؘ±"UÔÄTÊ>Q¢Ò9ö·ÙZ%œ° Ï©y ç2ËA‡ËßÔ6`Q!+NŸ|‡äsÂé’î{%æGÆQí~xÚ¦“×t΄÷MK¨ÒzfTAé×^ +Š»®aŒe4ÔÐUpý"N¿æa\ßJÛË¡Aà’¢º{Mxzjõ3‚_à‘3F¯l¥£èÑT~˜ngæN¦¢A67á õN–_«ÝÊ51ç,› ¹P|º®#z¼É£®¾@ÔˆVsmx>XÈùÒã—§´¥ÍÔÙõ~?Å¿°ëÖ‹\²CE¤5øÂþÞáÛµñk']0™›1ܾÈ(» (‚^,°lÖÂ$E´l ¹ðþ?ïÅ.(µ+«½J¸±+¢$q0âÀÛ”±´~ˆšQÔ[©‰ `ÉÒ*Dß2“´=ÄFÇõƒí騱=e'‰`<µHÆE…ó•AðÖã_wrÈiûk#d3%PY÷p¼ÙÐ tK­VV\4‘“¸ÖPYeÃíÔÒižO'6ÆÜ‡1†=Õ¹{Ìô80·ÇLpyéAGñœiÛ"O½Cæ&)’§X:í8ý|»*®‰n„£ ßk}“ýOz ó5Æ'ÔøØ‚Ð“¼ðÇr—ð„ì!ˆy™é\{"²·n Í?Öã™OÀUcû:*S†aC}Ô×eO KŸý^:zu¤`(»>˜Uˆÿ“†Ž³–ÎÙ§x$ +1±KHRçÞøÐÚ˜ó ø%LT)ÕÑnpʤî7s‡ãÁš‚¦=œ.€„]ŸÇe^æ[æøV›"Hƒ +9æ›z} *o#9ªuw¤­ÇÖÁ‡î…þ|2³¼´ð†\‹K¦CîÁΘÐÚö‡ïèm•P—t7Sý=q]Ý^ÉÚ1·ªUÃW¶ßðŽ;$©&©HŽîÓª^ÊÆ{hd*™›^€Ô¹U“éÕµcÕ3ƒÕUd+ž¯ÂËz¼ú(–õ¯bÙjïñ}Hœ³ÅÀ½U¹›[Ëžè‚ä+ñÒ‰ÌÓ}¹Èà~ÕG€wÎŒlÜ}¶½hˆCã!“òŠOáj¸ÈchĈ¦a¡°b(àJ|£?Ì@¢Á–ÏäTÝs“ä€$:2&h~yâKFOÄ2µü«J Ç£˜õSÃyò„ýfWyíˆrEy¼'4¨½ÈŠª@e@!ÚÆ3ßê2L‡4œ* €'¡az–GÃ&lv0¥El*¯l/V¢X0fl<ñô¤&*ž]¨às·Ä®¯›°^…¡ÃˆæõGˆÏ$xë1ª•ˆ A#ŸPûœ·oÉë¨ìÉÙ™Þu5ð!1)7]p>“ö™ÊÅÄ­îù8Éì?æ9!Zæ+Ô35æ,:of#X™ +ö©¼÷Àù£´'·ÿ¥ñºƒí$yn‰öÒI0¶4&ÍsÖöïÇc9*!œÅc~væ9­-A± ýý÷cÎúz–Sº¢1ÔÞ§ö¤ä>úƒ°›Ä˜ëE7vüpS +Ÿ¨NÝç| +!©qÝqŠ¡@¢0õz/×»ä!mòv)ÁœáoÄó•$…³»Qn6[§¸ÿÏ*×…8'®3ƒãê'%U~ÌéÚ¦WW(‘6;•3½"$öÖ‘ù5ˆxû:#oK·N‹í°2OÑT€Ôï÷Þü× ¾4b@#žÈË:ÁÚªMŒÒ¿Ž¸JÊ¢$›¹wÓ÷†S ähû«QÈÔ€¤o>Ä—ß*«ÈA¹ðšPF °„ü{žõÑ ©°_õŒG¶™WÓ:ýÂÑkS{ÿ&­úµÇͦ}~b{pÔ´±Šwúƒ#uZŒT˜„’`¬¸ˆÈêJYò6$Z‹ý…© JÜbEV7—´ªø’/GÞvjð}E¤ìɈëo…³¡B}3Àœ¾Å-r%:Ë'SÁ´óÛ‚÷¡Ó0ê„@š]M|œÎŸk¨OÒåÀŠ´üÚ Ôê9Ø—6HŠ8BŒ8EðÜQU9Ÿ%¯nöéi¢èù<³d2…¸MÅÖ4ªÃ + Ã탰BTû×Ïï,nO¹øW¨#5Z=౫®Ê/ÒÊâW×6ñËz5¼Þ»Øáb—]>¿µfh%>& +Mj‡è.ð@䄽'ÏÆðF•cúYñ]Ý:øÄ~Ùê# —+Ý95$«,/‰4F²©P¨ê§¼WÙ$–m¦b^×Áäé¹^œé5Õñ˜M^cmòæ(gÜ À[ÀL%Í +FS•†¯ŸÏü”ªî€†ÅCŒ- i5‰X}C€Ý?™ +¶\®°þÚ 3¨ž†DgQ¨"'|a>ôúV¹"]LµQBôÈ:92È‹`ÁʤÀC8 ,écÙe˜ísLˆvŠ!)ž%©yCˆNÎäÕ­½"þ ¾VIºÈXÃëKzP£P#Ö>å! +¤Ý%¦slaXðL S«âПßê[íaíÚP28ý׆¾éH9Üׯ…A)i!ÚUODq÷f{*„Ýáe£¯?Ây¬[péóJ£Hv#wjUÀˆùùù”OÙÝ’Êñh¤*†8F ÌMGuÊ-(H$’úÊ@…>q¼0Lõ }C·aȰ*G0q3X¶ÑöoWŠî½§Çïâ­ñŠòêùJ×+Ž˜;÷YÙEP=»4G{5äp5k»9ÜÛß:6õä\k«pEÐMsŽ€N@êÉrl4·®F Ü]ÇúM là›?,AÀ`I‰—=äšDËWQ7o h}>Nz_ T[3çn3¼ë}ƒÌr×À±~¼ÂF!L k=Z÷s³„.mUHe…=“vDd‹Âx)¿5®÷2:´`vLIÅÏì¯%‹§â0P(ÏÅ×G­oA ü¿¥€wp#C +rh »•©JÌÜ—V-ÞuµŠ¤¶óUµuF2fEï01Ù‹l5{/ª3£¬üX‘H\3*Œ^JM¼<mEËÖ2¹©±¯ÙXÅ-÷2­Êak+7ƫᤋÔzhO#rz(õ¢£±‚Ë×ßjüPoÐQEæ§‘ßKÄêê(Fªùô͈؎¦sëuYwF1eµ˜³bK€b†Ì/ìÐÞô7À°\ѾŠÓ{›ì™”Ô=û¡Ÿí¶À‡öTMðÏÁ_~O°dÂß$þ;vàòxþHôÿüÝú?ãã/ÿÃÇÿñß~ûdåã?ýÕÿøÿ|üåþ/ÿÛßþéOÿ/ÿô‡ÿòÿþáùÛø§?üüÇþÿþðÇÿóÿÓßýßþçùãÿçœôûoü׿ÿç¿ÿÛ?ýýßýaâWw¿®àÏðÿWþ½Ùú1cýïÊú†¹¦ù(™6X DÓ YðI4 + +Z3ÔDAîi¤ÁDTHa€½m`Ã`CYK-Ò[ þA¤ˆ•슘‚+;yªb¦pÒгTh;k±¿Ì +B¦ð2X´Ûðø °\ð3é¨>ä̵}ø°G¿í±B種•lÑã _–c²\Çèe'.ï}ü­_†[…5ù±B$²GlŒø0¾ôBüŽF’“»5Þß‘½{ ô!r‚³‡žß`呆C=‚Úê +~ƒlû'5°¾¨PT¸ +ØÉ7ê}W„Ñ,Nºæí\w% 'ÏåÝV¶“4*AkÕ]3i„YW\q*W8ÞGdIùˆU ð0rÜq掺 Ê׬&’-@HfŽŽØ ¾vjëêú­øÞ-käuxç@TATˆ:¯íër#ʶ@²CÛæÞ”W­;3v¹t<ÑQЇ(›‡AY±Ú\QKÊR¦¯; ox"EÔ/·$°‘5]q^%í_ï8˜‚×hm¾÷p +-±Ã5tŒïŽSÛpƒ=œ×>†÷’`åH°‚ Xb•Í'³Yœ6ª +D8çÈ—Øôүʘˆ9î7#©'Ô ç´=õëõóšòœÐAæ@[¨.‰ dzAhZ +›¢Øñ\p‡Ù2l §˜t;…våY»©q +Ù{†­àBÛYyk§œRðä5[¾ 椀#äÁJ¹IGôuê2ìq¯ÕE!ªkCS-ìI7àš‰w°eØ+ËŒÐõ*zà2A“„œ=(®ÓÝ:'СʹÏîÐ<õ<äs˜ÃA±W’îÌ@#à}k5ìÍõ‚J»VI¤ÆšXIB¯=$ÇÕé  ¡c^ôãÉvˆ¼õ¾hN&5DŒçš=™4Q¹`hrѪ>èï…LÛzòkæ]¯Åùí=µq HeÔÂè°f¾f^ê&ö;ÑD&IÁÓ]§!ƒõ3_=ଠ)m|ž&zY#)»«AEÒLô.Ž:2ÖW.¡„²uܹ’üÈÑîG2ÃY(hÈ–„&oB½`Ÿ«á!¼-g^ï•0k˜úøó/ÉÏû¥jˆ±ìÔÊœ¬Z J¨y‹¨Òá†^a5Ÿ*ÙP£òK òõ%|ØiP1‡£hà{9ç3„Êèܹ)«ñäŧ âLÃZtW\Ff‡ƒ<¨î݉_sw·BÌÆ\p•쯋ñÒGÕǼCä9{²A(×4§GýüsŠú@GÉÃÖ5~ÖK†Û¸ž!ë’#öÔ‰ðí{¼ÆÑZLHµVÙÀ[ï;ŽËMåÆu±X㢄ìʆ¬ò™*r¨e¬°çÃÀ¥¤s¶ëÅ#K¯åÈçkFàóBþ§á»±vý)@3ä‰ùñ´£~SÁàêl\×FÒØ™“ O7¸~ºN|8ü<ÅÄŠ»;:žLC €ÌÕg¼©ÕòÛ-Žo +B>ê®–¼7Š®\×`’ª å½¶›]Ë ÊuYªÜ x£åÕ«‹¡ëRÅûõ­Ö3ýt6¨u¥výöùáÎ&ÇúuS—›ƒ¡*¼Ð7ïÈxždÞZ|-y-â²jÌ“O‡˜æC=_‚½pF6Õcñ£‘0ç…æNŒWM/NïÈÄf…€Å7¢ÚÔˆi@Ɔ†&\|Ų(×Ê\Ýà‡Úê~ú+X bÌ‚PÕ^@×Ý ™ŽèÞÎè d”}iÌG-¿ Í.»ÂbWj +l¼õ“YÓFAìiÈkÙBÁj,Îçýù- fp8ÁɧDõ­AåˆMuzk”\x®Ãi*¼¿¶B¯‰—ºÖƒä±#[ƒ¯ÈÏû "A[ORí@ª)¼~Pœ©¾ž ):îGÓA#n˜G'³¦JôEUöT Öðÿ ž{m¾"«¡D Þñƒi +-ÞtwÊÀ4ºy­ˆ€–äà™´+1‰DvÒ¢¢Øð1yGøXzwÅSrÕ™¡ñÄ«Ñ{¹Íù‰=>Ö*‚^W4öôþ€­‘%¬eÞQée=Ò+}]!Ò‚eDƒ@MŠ‚á$VêKs*Ó=H B4“ŽŒë€bˆ•"ˆ¿µòô,&ß®cOô ¬l­ÞXe`bŸç6].ÛQ¥°_¼(ö) +=u +¤š+*£H3á³Û¾'½^ŸRÉ4ÆJhø):+S:¾Žímƒ`ÖZ†iÐWÆMMÓð€OHÐUv%×FZ'1¯¼n)„pPyCK¿”hi–è‚úZÉYãô„È"XkŧÉì¦h6.Pö‚ÏU0+‚£Çž›ûà0•öî +êíæ(UAòÿgE0•­yrCƒu­7í&ôÛÈ›Ñh"¹ó£›;×ásDÍö4`Ž¥öϣńi2†ßvKŸê™õÎ}ô Ï£:ªDÕñùìÂûƒ<7z‰m®¡å„Jâ èÎ9í·`Y/–ß—6@÷ '©\²Ñ4,­‚”ÀqÀšì^=TŽ0â>a,_zx#?J«š,·oŽƒ.º’E=ÞÀaR˜+æe+ÙZ€T7B|šDˆa;5L Њ)ÌÏE#®qÓ v+ê'EêŠkðdùëüÖ&f-˜3훩ÃðÌ‹ªd1<;lnŸã‰¥RØz¼5<жg4üªQýL®ÐRÑÂl­Ü´ Xµì¾±®§~I#øMàI +<i`d5 ´vÌÊxžÇ$ŸÂÛˆªæ4@·qéð« «‚B?ÙT§C_‘Wƒ\ðÓ[ŒÙgç®p«–1@Å‘ ÏþÞ€iÞC kÜx¦ä-çæÝ¼œz²N1(õ¬¥o"}òOq$ƒ™¤øÖDåá½ñ"4}k8¾nÙ—FÑ€ª4åËØï–õ‚P@}¶dr ý=phë«á²ÙÀ£Ó¶ç×·ðÄA„°°(a4°V÷O‰ ëã/øµQ•l†€qó)õŸ2ŠÙ ÜÊ­pûºñ4ä—^¡òl|Ü·ío¡ýÌo +7Ì÷œ±ŸÛÌn££ŽgUªârµ­ëð„6ø•Wp‰»Ü¾¡êo²®¯1Åù-è?Þ¦Ô“an¬Æþ1sî‰+ˇÙô•†ì¯ý±ÊúâíÓ4–²u'4:ÿÀ8•}ç”ÆÉn1Ü5§KôŒì{²OC¨"G奡ÏoaDx!8¹B*ŸõÖ@nøEaúÚ8ÑJl"Ië‰!'CËá~‚MUµí¡&{ÅYŸ)ɧX g\öR„mÊzØï¦ö~…*sƒýé»nj=²áõèÍqpØóði͉ äÚ¹Oˆ6ÙZå‡õl*ÔŽ¿¼íwHþek0 ²±¾‚Qyo(q¥üeœ¿jìÚ„$˜X+­±Ë'îDkû+JCùã³å5,Ɖz3Êä?~¼¤!¦zšïøÁUÃŵ'Ø%gJ¢Ðe_P=xãìC);,&i„S˜Rxå>®~h8¹‚µ€À>º~HK˜¢¨H>аíõ%Œþ˜"΀Cfß Jí­áWÓî×FäXôæ†CÉs-ð‘¿Õ^¨•8Mà³S7¶·Sí˜O† +úYñ#éckITˆ àVÎ2V³Ùƾì6ú߀ê²;¡Ø„)X ºƒ"¶¥uU UTýü_Ý ¶L9¼¿íÕ´6 1P]/ÓET=Ž„ìBœàê.ĵ«’­kÍjÛ½ÛH½Û`ROCún¸£òy?¥h P©!’Dî— +™kyn~Ë›½j¦²d 6BÆÓ†Â”í‡!¿îÆê4Ê» a˜"€Ú®Þ&¶Ñ|ÜxZ—\J­C‡÷Xl:× <†c +´8Ží¡ÇšêÙñàµíÄhWîEÀÑø1¡À˜ÏÌ€ÐÓãÿX r‰ªØ…’yâÍ™ +©8î+Ÿ··4øbjs ÛyæhÎ;4àÓ½èy4*"ä± aÇ3PnÚÐ$ +æ¡,kBOÏÖF2­˜ÅpkÉz«À*{HÞq +þy§Z1Yïw™±›¹Ào¡ÀK=á'ø†¾5Ü%ÐÉdn¾4‚GG¹æ–:Ñ»/HrˆT¬Ñͤ„†Þ>UÌŠ aEÂ9‰õBºû„µ3(c&C ,]½ÎzçLP‘_Gú©­¶^.ËŒ,³l™®Áé­ß©µÒ…-üAñ-P†vŽ ¾H“"¥ AåÀmÓƒHôkEý¤ô˜Ñ•]¶‡žÀ «.¢7 +ôáѽ_çòF¯xfx1ůÜ8é-&¤%Çuüð VÖvmÐXçQïÜ—FÁ—¿fâ+Õ¼M-\¡£yJ¼qA±nHž] ¯Ù±J¯È£þ¢v¶w؈9$-ö‰8sìÆæ·›¦Õ`&Þ<ïµz£Ñ#€¥Y¯–²!lq\ytäkKr{5ª$ZÁD× gÂåh9l΄0xäZò Ü[£AÝî±y‹åoq|>i#u?õÚ©‘ ¨L0‚Ýà¤H­«}6à—¶=£>ÂÒO£\ñõrWc;Jo(£­‹C" ¾D¥ŠÏëºÿNº+B9Ïg,/xÊSnñO˜U¬^(Oî¥0mð¡ ×/Bðòƒ èâÛ‚Ð 9JG’Üõ"WÈüCJšoæ—y C)†{*AßçÚê%<ΦµeÙvs(—Ïë!!«m«¹­óM¯s(a—õ¡-ÁžºIÁ–t[…>ò„T´¤(ßw®É^õTÖ %”‘PByLB zX0E~Kœ =À …… 1=Ô𪉤íë0«÷¯¹–W}vf.‡<9 –<{\n¦/i.ôÀÝFcv ÙPUå¡ÔÍ~ ÁÑ?‡9„ê •b册¥ +C‹>!uÔ»ëÕw–öÒÓðÕð%>y}‹Õ“*z[+€$Ðòöykßõõš}éTv°…Ó_sGÆ5Í}M¨'ÔU$ã|*òêžÜ.ªPTv¿öøe—üÍ~ªÂüM'Ë¿@ŠŠ&1é’;¥ÍîmYÕ&ôüPö^f+eIÓÝÂK¥wZÌ&7^“;Ï÷†ˆ_µ-~õl ßzQQ!L-IVŒÎêë‘„¿bË ASŸZjJ(¢¬€ûxÕQÐpü®õKI-z©”)«gz䱟iZ[³å‚«Ì¶Ç¤‡d?zD +™ºãóL®^¸K©ÃÐ@œª’£èÇùELù™Þ~¤‡Û­˜DJ‡U¼¹ÎÍ£¬w"k(CUÀg„ŒÄ¹«¦ùV t¸¤v§*fEw¯Óƒ˜dˆÐZÓËãnÿÖ «åDN½oœ0UX¾¢N‹Ùv½ѦºåuQüÚã—Á(!ØŒ´ë7Ç&Ž-\aˆò‹ª0ÄJß{jñ½MñšºÅkH¥¨S£ˆnÅÚV€à†ª­ù È(¤a +. sðׯ‰œ-„Ÿ¦ZÓ×ãÀ~÷W™¾Îˆø­#!H*¾š<ÒAŒtEÛ·»çv?Öcôêð,6EÉ¡¾-¸qõ£JNRY,9l¥‹=ªcž3nˆ‚¼ìa(yÂ`zž½œqŸlû<#ܹÆùœûŠA_ÜB`[ÄØ‹´#…DMYdÝ3XšŒ,ÇxϹ79Óñã´˜¢©‡³î$èD[j#fŸX½c}íPö]¹K?·¾×['E·Î®è–¸®9vh~ µ íÔ§FnZÑ´d¶"Ç«×öÖ![€­îÓ0PRÔãËQÎ0|Öß;Ä jŸÔ’·{ÄÉ+8X—g7K Ž=€nEN‚ê%ßËfO|Z›yú¬©1Á°8ûv÷ßDT·¼O9A4}Ñ—¿ºžo—2™wò- ç—­IçÎŽYÁ-ä!´3;Žj÷ýÞ#Åò¹1¼÷Ε_ƒh‘ð—^GÔ†½]S¢ßô ÝÖ^Øž/‡Üá*™Ûá–—“±úćWßwu"añ_{ä3Þz]¨Â}wD±N’Öà#'Ž3<n-YŽëá¢ÌÄ_àhòPݼlÆÃµA°XÏû½×_ïëqÏÔ]~]çŸ2àŠÉRþ$`¦“äl…†áš2‹¾÷ –Â×}B1¿öøº6'KúµÎ}Šß*Uø°––UJÓ#fŠ:ú4à ú“t¦ˆ=e‚Ø‘’2yI’¹Jí7¦"ʇüè”eM®hФ•Ì“äÌiaK!ß5'CuÛLÈ0t­}ÕŒ "1ë>å9”*ÒNâ¶Ô”3ÔpácÑjëˇ½l4kÂZÞÕzGÈR€ )É©¹Ï°ÇK¶°ÇÆ•^½ÏÝ+DÒm¹LÌJèÍÜ ‰BíššÝú h‘Êå‹·^[°¾ý¼©,Õ¼©èÌÊøÂ^Ó|µªØžjo“ç*—¿i¬pOw¹3/×Åæ\K"C§¤µ  ïfÓR:๞¸þb(zS{dâlbŽKEŠqëu°/Ê–ºÄ‚‚%—VO„‰#SýgN‰p:Eñ«ldQSŽÀÏ¡ñB‡ÀxPS*¯l›)ÁÓ\:¥ä>B˜=°ÔƒYÆ Â%¾Í¯«Y•†°² r/Z¾aÝu÷xÂ1{»1„•5ºf¾núç@g—ìŽ=¦z‘L$á¡¶ÝŽŽ‡ì D HQÍ ‰VÌì"ÆŸŽ:³Dæi¿¤0Ädñ @‚­GÜ0  ‚ü§š!oÊq²<î½Ö:ÆQCµ×Ú̺HlÉ>*b3ì¬gYG^ Æ>'Ýz]ó nkÂü!’Ó”%:sÅ}hù¸FM½,+ÜÓê|í N¹`i=Ô­´ŽŠ¶Ã£Û€Ö½ðƒ<)ó6ÊøÌÛë%nóÊPÔu>¬áÓiq²º¶éàr Ô_ upÛNy˜è%ë$ÔãJ¯IêótëÜxî‚)B£ÉL+Q¤Ç‰Ž +žŠœ6R9-gR”ºÂ«þ ]ŸjözôÀVÒÖ»ý’3QߥG—¾ ¨X'Òu×Ü=Øs F- À”d+ÇkU,‹ë­:` sk2“¯˜ä"¹¢Öwø‘Çûáá ®áYþ™3êæ3ÊôX“ UÁW \è +Ò@$Éos³]1~’GîÖC<Ì1¿²ÆÖIf²"Åêо»œ—ð«À5å¥åy´-¸}­Í)I2ø†©kÏV”3ñØ8Y­ø·Jуz:ò(:¤WpY(øÂ­‚)ýx,Ì; Ôc§àVéÎĤ V€R˹^ó$`˜ÑW”"<Å0yMª»Õ;Þá?o¤)]rfgê`,Ëã¼ÁSYëGœZ¿‚‚ß!{skÍt’šuˆ!=íeV›=¢ˆF¢f.D§sœµrœQ¨K< +¥°‘Óø;×Ho +P¸ÈšB»œŠ#ó83r˜à.í`6]ê+7lQâáÌéñDÚo„ÆiL-ã”»ÑòÞ¬k:qâ‡J8'9;.`³9®{—c‡ &CÁ5r(8mPQt³o¨¬Ñ©¦R9›†]°ÒH V²*+èæ{ÊÆÉÒ˜s+bšC:Ø[ÙH•·½^ÃX•ÈG¹ÜQvj‰äÌŽ\Kž)8ŒÌ“‚ç™-Æ¿¦=qßïὩxbè ®½ˆÙbµð;<Àl büÉ.Ρ¾íÉ7Žìø‰3pã +r^¨¾läíI×\rÚ—7ÑßÇîÏM¤È©žúþÁdtGù‚@Óxå[?ƒ±‹u6 V/6^“NV¹%Ço.+æs-—ÐÊÀ€Ål\IRàwIæƒBÀ°€}D§L¼v¶J-Õâ5­ ùåƒo;ˆ•(Ö@¯Ú®C!& oq-OkT¿àú Žçf vÞäÓFðóM “õOQSü?YÀ4`IQtéö<Ÿho6ÙÓSœŽ1Õ’nÏ}£FÞ—ÈÀ£Êæð„® _Ë1[…î…*D®‹LnÙ×–hoÍ‚#èÉßX?ÿŽc˜ ¸Ô›×ªP§/ÄõPqÜÉ?î^ˆÛ’©©f ‹¦ÝöB¸?¹%lÖýìL&Kò${D±“ìaž³„Ú< ÷òÁÔ½&—Q{!a@¯Âà·vwÇ-LÕéÑéBÃK¡òÚñËUìùŒ³ Îó•4º7hã‚o‚nñ†² «jø(þé5AŽ.êS˜Ì +îJЂ=H ·‡ewn Ïiи?š+œQü­g[¿¸9™ªˆ Xu9 qÚÚÉ6•âaÁ$¼[ Ü#Y^Ãê5¼ +z‘Ò3 +WµÕƒÙ#’‡ +Möp‚¥‡\éžâ̹qѯ±Ã¡›nz5«Ì8U´\ïñ¨§—¨§cóGCÖÝ +¥§Ç­A%X/Žt ˜wE+ ûÌs84ö®·nÉ[°õ”ïPB/çv"ùôq½Ê4¼Ê&özßX²îDmƒÈ̲jGÀ·¹ËJÁA¢e¢ª@ öG{ƒ—’»³¢À¡WòtÛ|K´‡†ˆÙ¬ƒ‘n/‚xp¡Äš¬ MÀIU†ôˆÓ^THE,ê*àì)OŠ“öý«H¬®_u–‡•…’„¦£%uþsýNCÁ’j)¦®fÑÀª×CUmPºJðIkjÀqåUM†åH%÷Ũ4H¢ÒÀ¾O䇀5¼”AV”ʦž³ë«<¤8ôŽ+óeýàø2PQåü hϕҽFèe‚ÕO3E%A?ÖxZ§w²b ;Ûq±£½Tú·!ªmkU®÷Ú˜K†À ^ÔY&3tÊ#¬ñ&Œ¸¹ÖDFƒÿÖë…ݬÒ%™µ +Ý—›í${˵Ó @GH„­}Í5”ËSÊõ«…!(™‰ðÃúýí™Ç.¸6„>D²W%âm[ÙljŒº 0¥] ÜªE^ýõ·=dx%*\ìÐ2îê8J¾U#Žý²‡Zj¤7»K|ŸÊêQæŽ/¹1y FKHN¢Eq´KòuK²imÄ/˜Ë•ßóg#šßsÀØ@tÝ1lÊU %mØ´~ÙzØxv‚wH„ÊT²•3ÔöæÏ"¿ ’{O®ãˆfkûĶË`ÿhs „4ð(U¢>Oº‡ûGÃ+ƒJ¥"šýSb‘FäÛiìÊÐöÏ‹0ÀÅ×k@ÎÓÍÔ”¦i æˆÃì®E•¦í6C®.‰ÉÎÕm)æJ°r¨m1dWÙµão,;"Âï9î>k ì´Îû% …_CDL½€! WŽÚ@>vIXzD×'ª,©uÀµm¡oTýŽÜÞNæòs¬ý¢ˆ¢üDÍÏá&Û=ÐÏØftÑ<6ö“œEÝÛ,s@"¬ +ßî YQm›ûî¸ô¾,èј·ÐÍþj¸ªr2Ýøü"¾A&{Fº>y4„0AÔòxÝji˜>q§“Õ‘Œ~옶 ˜ß¦~$ {²gD¼,ëÍ’SSÂ0å  y Ò¡D:5,Ù ¦ §2)Çë~»XÓu²Å:ñ'Òû¦–)Õ‘ZFuo!üd^ź:$H<‡0nרʜ>øãŒäÛjX+¢òÑÒ§!yƒ v¥K^/4Z´ZH|ÚHæ”ÕùÖßó¨Æc«ÿ…¯”êÞízIsB¼ÒG2\9xë•@ÂMMæÉjÑlÙE©.È;"L´Ï£j9·î b]ÔTD;°ŒõzUÙ§’Û#¦(ilèë‚/Þvn„¢SH‰ê» M%ªÒ#"I«™A´È\)PÒ'¤ÄGjòÜÒc‘N¶6yhö¯)RóxbØ;T½õâ›~­"ÿ&W÷ÍÁ‘¥9*ìk$f(Î]­NEÄ¡ŽÌÌá*"ˆ‡8u] ˜ìÍ(žKº7ëÖ·(A´ÝÍ :‘Íó9Ð>lHŒ¸õ¿K F*׳;e¡•³¶Dd ݱ(è8©„•äDBo„MJLe‘–ÄF|„ `J}ºç à¡)âât3 1?gó âc‹çF¾±Áü ϳcÇ nRÁ@®@m¯øÛ^ÚªÒ«íÃŒÝa>¼øAˆ±{ú&Ápíìƒ5%êŸ'bqæ•Æf„^—pu(ªSçÆ@X¤‹Ö¬:th»÷ƒ¶îy é1r­|þ:…!öŸ'59Àxì¬^ Né§ Oa•t;øÔV‡¦Tîµ­çI'É c! 8È&c¦åež”‹¨6@ÓAÖYçÞRø/ ØÇÇ žÝiT­ÞKJÅ ÃÅIð¸7,Ã^òÐʃÅ^A9,ïnÓBs)g >Ðf‘è§ÞKšà2ax+=Ç5ŒX¾‚Eã+Ð+¼-¹ªº’#6 míµƒâs±fÇŒå!¡¹:½‡Âá–k4A;äB:žÎWŒÎ׸¨1”¥RpüyÜA ޱcá^‰M…ÄX[ö®8⌠íè–máªÊüDäŽ,‘å„o€Z°X¶®$Q¡áö˜æ@]„dÈ-5óÝö)”eÉꦩ`ð}_Òøé±m63 ¯w’ý¡' ˆ\®-¶N=ñ©øó*Îì,¤¬ü–û¤’­ûÒÃ5]cÜ™‡.Ok¹xi“ÀÀ¤ ¿¦6F°GálPÓ®²ëm +xà| ζlðÕT¹†‚ßá‹rJÿ”•×\ŒÖJý¤£é¥6™ƒáÏ×âDç+Û'š8k2êhY°,µFU‘ñtFš‘”ÛYvr?ôxÑkÚ¦ ®^”íFK ‘¬ç$¹Á–’‚ÒµŒm/œ_ô(FöæÆžkE“—ÊìQÔ&Å£Œõ] +MQd”‘8t­W+S¥VªS·Ov\û{êà ÚãÎXA¹A›¯RC¡p„ +ÒZÐǤÒCŽ¢jãLÒ†2Kõ#£GWr¡H¡¶‡Qu=¯ˆâ”Òžì!Êœ)œ«Soù ­±ŽweÔÖ[Ý5'¼Ñ‡háG‚†ßƒôS5:îS|¥ BÂitp2jH€æ#${*ùÀo Z†¤'@«IjJÝx|ç™ÔË‘q=²I„É‚ +¾êIuÒ²x‚€Vºx /g2ž°¦ë½ù¡M-/Vœ”æ©Äò´1… +{$Ñï³¶veð®¬âë$ߤ,> ‘ª[<£¤å“\бŠK·;˜ª?¶™é¤v8ãøáÂVR'ýu¢,l®Ç plâd‰Ž…š€ð´ê&Ì&ìºäPÓAˆ`Õ«{s/ÉžO1…»ò¾=×€€â\ 2!ß¾Õ)µrï«–.·Ã΀jRèYBr)XhÌH‚Îë¿àœi‹ÈÕ¶¹õÚNñ(}–;ƒBN5Ø9u^ð0+†£ûâTÜqÊMñ×5S…‡å9‚Ô)è°‘Öb%HA-1DRfo5U¤‡8i¢ V™ð[ãêê¬Ý˜îÊnÅɺ`„É>ÍFáL‡}AXÉ–g#cÛeÜ.G$Í¡• +`D»ˆìE» 2£Ûóza¯½½ûDinî\‡†ð_5©dx²—ú½ÖNL22 uÔ¹ŽÁÕ´¾êõ#Kݜʗ0f)yPm’­Ž’— €#K ÒƒîJ ;Pø–|?(¦3¨ÍcËË¡8JL„§°jó%ˑ㸣´¦d0fUÄjì­î3˜9ˆDð÷ñh +Q.o8èk‚a‡àFG‰†3ÑbPJvŸ2ºŠ8솾Þ(L¼EÊ#U|†‚åôê–«0׺#²¬õûz:4ô.èp_ûŽQUe×Ý«ÒÅ≷ÆñvV%À +–¡ ­è¥á€=X9AÆÊ{ÁŠth¿*øHF,U”Ž¥e–Áëx ÓW*Šk"˜Té Ìk ØN#Çš0ʾÏ$4a:(‹Lþ Ô*Ä ´¥†Ü¼Gô˜'e5¯-ÌGÎÓhnt½5ÝyåÜü6tMOˬ_o^g¢u0ÙÞqÎF1'*YÍ258fÀÁ#l–þbí88s°-èahwÀš?ï¡pòŠ6Q-“)/°¯eA4è½ásRÚ»=¬à­fåÌMS¥¨4 ÀŸØXiH+¾¿,o«(G ì5J·R˜|Éãb_#Q¼0î Kthþ3™¤Ö¾úk=¢_À În$fBu»Ôó@¿G0_›õ ®HµåÅBž‰PD-`ŽKlÙLcK„׳¥[áÀ-:ïßµ5W Â÷¬qS ÝÓ€öj@Ùé8Ëëð&•XÝ)1"ZËL¤ÓGöghPÒfŸyd=¹¶Ï´¯@Mûô†4ýgÒBÚÃT/½¶®' ;ÀÒÒĸÎVäàZ¥ñÑY’U^"qg,>NÜK¦H‡!ïD ©öjkeÐͦ‰3$ñåmœíÈõprãžÙOW¶ŒæYœkVàâ¤)a‡Ú|  Áš€ÞvxncŸøò³h“‚pÜăs„¢‰ ¸õ"cš\èÉQÀ9•ÃÔ”e ž4—F•Æ”‹TÕ$µ’¹'|š^Œez!\ð×R‡ù.Š*ì•þëÎoÑ·C³SFê_VKß:Á!{l×}µàý¹Wùî£  +¡ƒþÂ#óÈÒ^¶Ž*úOÀÂû‘z,û‘Ç+<>æ/ë'EÏ”‘Ž« +ù£)–¸6 D%ú›ºOÄÛ\èLje›u¬ÿ ¢8·-jóÅoz²ÒMüc §²ÑY]gÿJjä%ÅžÊÈEê™@e鵆MfDH›Š2›\á,ÃÓ¹õ¬`rbU»öµsÜe¬fLDNKÚC|±§³7qò_*º®CêF—xSS:3Ò¡ØÍ +艮é¼ò H¦× } ÄÉÀPQ‰w飈;¹Žp™if€æ‘ú££ÅiÇT:±Û®nõ½bÊ×f“i)šŒÃ-³û4Ûð òÊ?oÀ¥iu ÈJ`U莠F:ÆLû¦@ÿ[ ”ßéòÓñßy ?c:˜¾1”ÖQo%‘aqë/Õk½Gäxƒ¸ëÞíu›VýÚKâ†3ØÙÑ× ßÃ¥‘Ï/7¤u‡÷$ÛÊõZù€©ÖEWŽ÷Ký†?±û~Y-CÂØâ *Bl߇(ä"5jPp‡;‹Æ8zÐ4°PE¶ÿyèD~cîo~ãU²ó\$­Ìe:!ÇjŠ „)¿ÞI¤\^r8A´«1î'ùÙ·ÏH€‹®â4.ˆ´&b“+bR앉›+¬Q¡`3|d³ÇÍ +3½g™©Ë2ѪVAYbÉ£{a·'s!fOËc”Ã<ÜuÅ3ë(b¦õ @÷U†øIJ–e?û²¼Š*çÓªf°· SÛ<Æ%ÝŽ1¼ósµ¨ïËІüî”/ñé;†€4œBX¸öÑ€ò9éh¥}ÕÒç4]ïåÏ©èŽáûúÑÕÀijjëwثԎN{Íl‡×v9²™9¨@= ®>%1 C³Ÿ/™›"‘ØDNñ”Á'¼}¾†BÙÊ‹om%«G/S Êà‚¶ˆdùýJŒDƒÖeIÍç¹®C+Fª1&´žï WZ§Z‡} +7#¿äbijþŽ€‘-seŠI”¼ sp¡6fÆäIv•¥ÅSÐ@„NÚ?lx¡Íh$m9]1-—p½Ç¦ò¬~¾o%òO¦÷nZ%ª‰k/ß=Ú£‚×IˆìÄðĺ-»‹ÝèGÒ6Ì(R¹ÁÏÁVûüøÁrþk#¹h2s™,èžÖœTn{ü„oK.º \ãJÀë’^ulÍÈ­Ãcô ‚ª“ÀykøÕ¨øÚx˜aàb°ÓaS+¥(gˆÄ Ãbú¼¶ìS7•¥×6\Àñ«…SA§ÊÁ†ínlHÕ·Lÿê—š´N‰îÙ8 ³›Xh3“`€ èto×VâÍg`Öx-Ò6*ð#ÆGÝ”“à“#@ #@'ˆÉ§6nϘœ–ê.€ŽŒEb^ ‹Œ.IƒèS[g%ˆ¿sð.ˆÑà5Ÿ†ì×ÃÛ{>3„vÿ>Y2“sJ_ɧô¬[ä5X·ŽGU^¦m.ª?é…M7½ØÎzK«‡PdΩ2àí­ýó ð¿oü;-”î³Ðjª¬QÑ®Èú¯øZqôðÖTŠf,‰@¢ÄˆøYNŽI§V=jFõdçˆíÜlý +gTIpíÉ•¢« $Ñ‚ëÕPÑöE‰ÛÀ‹ÃYY\ c¶Ün~×"3¸vk$iosÈœ#}ª`´ÐÄT,nÝ<°,8<…Ô¿‘JAëYYîþ“»hHBËø9¥+ŸTǜ۞ŒíåïeÅcvoEÁ‡+A—œ:·¢sÃüs¨'UÅ{¯©F?ù3:»øÔb}q¼@™Òcë[\4‹y ÿ¼N¨U +örîÝ3õ"„KOËs‘È%3±>?jކ×z0lÝóôrþ¯Ûºf͆Mê„ΤÝÜy˜²™Œ«K4ýo ¸ŸDZ-ÔÖ F‡l–⺊JÖ´ËÞ7e6"šHbÚ«óF‚2éwJçz²Å¼ëÜ‚¶1(3'S-°ù ºà(B×Ï"=¦hô’ê,Êà +᤼a¿»zÓjÀ±£ºceEá¥î¯êý¹N0^•‘mJ½†ÉZÆ#ÅqããɲCÅEýË#Ø$”ËÄêPãÑ(ÉeíE¿¿õÈv·îòF9Do¼ì§ÜXtŒÎƒÂŠSa÷4/j+üå—äs +¾cbÿô3pÏu¢×5øAr­I¿+Ç¿ÍJG£]Rà§b4qRáz&S®V¼·gÂ×÷u¦$%Ô`=Cï¬8Yl¯å^jŽ^xõ€P“°9ȼ^-€BkðØÌ—YÌ™)ƒ,0c¹6uŸ ç*±8T²@£Àí±¤;©¤Óün,ðdŠ\ï+2´çÚ“Ý¥ì\ß{ü²“¯r½¤Dƒóí8Oµ†&åk¯Åº  ìÑfnÁ-ÉËLl…ø­¸f­7©0»„ïL87Ÿ"‹°¤ð´0¸)FêðQQRð¯%V`Öó9ÑŒv,º8oCC‘%UbÜ$Ò„ýÚû1rõâ·®'dP²¡‡RV#E ú(º<9C„*@õܼÓçfC €?W¢“!«|°ôg‚YVC-WÝd³rz‚cs\šk‰wœ Fò¤ˆ´sC†òk¿¾këεmª\lEAðþ®G‹Å,u¬ó~惯½à"Pט‡ï[š¦ nöÿØ +ƒ]b nx&_?Ï8ÞVkX­TÁƒ_¿mô£âSj@qbêêóµÀN§¨°^È—’Î[/íùHýb¥‡ßí£<ƒóÖ<ó@¼<ÄÉóû¹¯v=ºkh°ÅCéÒÿ|ØH‹ÔUåœQ¯Êå×á`9Ä´E¹“&~xwk†" óL¸º!E[Øm _ôA³µØQ]÷ÖK¤45Ôq'ÿRIîß1‡wÍ…c +áç…‘ $ËÑžz¦¹hæ¸[l™äëŠÆ 8 öô"0׬Sv­ûv–8bt»vÍwÿTÛ3«4À‰ŽÁ !Њv®èûJ¨_ô¸YHºZÛ‰šFŽ_T"ŸUjð W´LÑ'çä×ÜX¹¸;?ß±f›iP­»Üa1o¢žØšYê )Ôl†‡p »ÈÇ)¤ôM¢G ýz}ƒ<’ûU•ÿO C/â5VP`¾nùù˜ö”Ør`!‚ 1 ‹@áH,ÕÌt7 W•Ã*±1LL2+îè¯Ï½Ä¯6¯/Õ™¤v§˜ÅÔKâ§«” àvìc÷¸³ŽGÑãk£&ÉBŽÅÍ…H¦B,š€Ã,ŸÃÛ‡:sîdüz¹O÷.)ìóWü©¤µéL{õ+½'aòÁË´©€q +KùùÚ¡“À7¤hÙ{Ÿc‹è«sÇÃ;·¸t“íc̤ÔÏP¡ #" +‰»êñÖã4SQùuûæw½¨Ï‰šoÄ~úÆÜÙzáÆ®…:ÜÉxn( +þX&è¶—ÕÏFëȰ¼³WˆpsS|4ǹ$*M…©‘Ô42 Ôü€-EµvcõíIp™È¡$˜½â½Í]éîÛêÁæ9=„Ë7Ì +¢5žÁ;N}Æ<“sØZAž„ %K-p`Ì‚gÕö°Ëê 1ćD‰EuŽþ°m +´ë½GN0c³ÑŹv5|^»×ÈÓ€€rM‘ÔO¬Ò€Ø¶ïzœ?mc ü)ž3½õ‚%ÊÓ­­˜p¸ƒ†Øl¥¦ñ™‰'É «ú–¿‹Ù^»ß{x&íðÄÀPõñÝqpq×¹ˆ ì +@ÀYâ@SWèk«wÚF`»Çô[/‚Z†0š0g‹'•æªÂ°’×´ÍFTÊüG1† ›³÷ÏkZ½7ä¼ïû›ã D"Û{’’å@À±õÛìD>X7zˆ\’g¯á¬¢ÎˆV$‹IÖGyæR Û”¢ü9jyÓ‘§ÈÀšgÉݽ÷ȽëÁ<`®6ÔùzœGª ^[í玦ú‘hª¨hž"üš!€_RïúdI–X²·kRƒ€ Ý„¶*Âgµô0ï²z¬ÇØ·ö¹5°ÏãjÒ²z qfšVŒ^g§ÀIQ6«Çì^•Üà/êd‰¸9D9Ql4.€û<=´g}xHm U3QÙbR ”ø¸ +˜\KÙ™7¡ã÷¡!=êîqŽW "\ˆ¤¡·^Ò7rŸ†ò–ʬ-á<Îö]PÛIšü vÞ:i Řé<ÀÁD}⃘O+n0ðš+ù¿®îŽ2;kR.í%·ufZ§Q?4"‘r­ç##%û´‡Û|}à ìÁRCGVH::³~½¯× "ºA¸Â»:ïMÞíHžì3%4]¿¼æLfm‘e‚jŸgR÷3¹vET;rqóÊFÛ¾P<ýΜw’yÕÕ³$ò'ã¢ì>ꬦ•™õàë½÷ØØ¤5æTêÿeïŸ~ÝK‰°3ahUkfÈÆ¡Æó:=Âê÷÷šôŽ^îcGÈèܦ5Æ.iͱ +^0ÿɬ¬«t?òŒ¼CR$niæN©"*67¡lÍaêé\{:YãM\9Kgƒè8Ômô½ßjn ‹ñê“Iï~yj[ª¸Ï¡Óóûaîë!Ïé>³M5}„,áÆ[oÈ·^k1QeÉi\ê}¾˜_¢»×¤- *ÐiÖ ”Z6ËoŠa/?¸}ö¸}ž¤¶ÅäÄ·‘Õ +[.ÔO*vær“p· ±rB¬²0ŽSö„"ORÐǵï5’ÔËܾ¢L"ÀºV‚ÌÀ€ÉøÆxëñ¯;GäÔýöu-š0e>;Pݹu?Y'@ºÀ²á1‡á¥Ä¿5¿Hü+¢å‘èÊNuîNiÁG­“â³'ÒŸÂ+¥ãY„ …²Ö'M|~Æßú‚´æU²‚uS’0Á8Ú#Y:¶bóš ï%ùuƒÐìšÈx¼âèð>y¬9¥Žšã×Êaþô`ÿøÌyù@±eDG_ÉA%Ù1ßõPÜcP‚%Ãq­½¯¨à‘Û—Ö…˜ý|Ù×XW+|n’`¨T ¦$m€«3dŠ&uôÞ´¶‚ÈBb»º Ï,Ö|eõšY«î”I†6Ú—öÕZ•ºH|Ï2°þ¦l1™“ÌN/ê d{­@õ6±~N”T›„`LZƒ)ÃŽg8Ü©gÿ †Ì† nH%FëŠÃT¾ +¶«M'w¡•¬2kúdâÂ@X´]°s%å¾2"·I#ðp4\ ðs>4ƒÛElè@BÐm¾ö‡ÿ׎hårê D„$l "—QÿÈŽŒ‰Ânh}\á“YѤ}=&}PuðÕÔš¡¥1ómFœ§¬I‘ʵ­@ly"ôùqÿ óö-9_¸ÀHÇbÚ3tÆ@i$&‡IyƒwÆ*†Âçó¹GV&Y¿ Ù¼ÏwÎa¬êïµIŒ€f0ðhùµ‡/úû×FijÄGÂ1âJð3ÖDÎÞ7eæïÇ¢€÷Ø<ãuÃ?;ó¤¦z=BBž¿KÕ×Ӝϕ†¡?Cbê\ÈÚñà ÀQd|ŽnŠŸDuºOQdÝ©>dê~Gp›ÙšC<8>ÚX…ùˆ<£mO!–8âÞ`7X h (CI›çBœ+ïËŠÇÖÕOËÕ¥¥r_IP¾RœBµ[«‚Œà¾6äÞ|$Þ¾ŽYŽ–îh18ÚŽdäÖŒYò½‡7ÿu‚/Ð)yÏrY' [NšT­bù„qìç׳«f§#¶M5>Âoˆå€ß`•»îY°/%©rî3 +‰äçUH<ë£rnðΊ!ºÚ,¢ÊÉfö[‡>ê ¬*xVõþ&½úµÇÍ™ç'ÎG/L§ª\§¦Þ(ZD´ŽÈG@Ï¡#p™ ˜ËÚ) ©náeÄPˆ7©}mèe¿„:„¢h§oÒ èÖtõÝ¢?öT[·6û¢4ogƒ^u,OÏ„.Gi†R*q gm¯qi•©B•Ì|ɵm‡sæcÞô­u°G¥àkèötÒ!Œ›ÙBQ¬ß«ô ô»¿2MŽ$ K¨ªŸß"íIÎÙ2eµüˆ¯ŸßYážÚñ¯µÆ¦Ÿ7K2° Äïš<Š27õ¶WÃ뵋‡íz€¼ Ï·Ö ­UWÐììb¤ZÖ®&¯·ä –*êÓÏŠ¯ê–·ç)úe €G,׸ÉQ-o-/×|ÅTyÙ¥ +ö£²djÌÉPóp4¨R[Ä$ŠÔƒa³GĽ‡r|£  i˜pTMîÿŸµ³[•&ÇÒóø¾Ã±Êú—âÐ.Œcã{ŽŠ¦» î©fÜðÝ[ϳ¤Ü_íÜ=Å@ÑTuí”2"2B!-­õþ8@~¿üöùŒß‡êÔØøTSóQ±#öý؉ @îKsWòÜ¥Éz5Ä#<𥼷­p_ß‚°£åÜÂÌI¤R])ÔîíÈD + ˜²‡7"*†|Ð:sþÆ;XCMVo°£‹Æ%ÌiÞØHÚìïι§à 7™ØÀ:ƒ“øôÞ°qwÃö©1Ã¥1³N€½·¼ô"õÑY[|âžµ˜ðôŠƒFgfOyÉÌŒˆ´%§Ž`A•‰ ûSÝFúwª¿Ÿ[;²²OsŒrlyÀþfSLãQ(ª„„ëU=›G¯¢b\ +ÙÐ3d5N¦JÛn³6#B‰ÙÍÖU zÏjžÖþªØº(︜R¢¦¤jP³çª`ëöUÉÆWäïÿMÈ^ÊÙ­hÿí/Í BPÅUª¤‚Sbã“Kÿî‘Pèͯ†‹5ˆ:l'«³>¾E‚jÿ’'›=¯¿Uñ¡Ú4%S^ÂÓÈôÏŽ3$5 튘«p1ƒo¨šŽ–q¼D#㊅vŠÎQÔd°£æ÷„¸ÆöCQ«ðd/{»ƒùûþœ=xX”º`‹žÀ¯c_~K¤´Á¿JüW,aËØ¿'úØÿ1¾ýÍ¿ýö?ÿÇ_?YþöïÿãÏ?ÿïoóþö¿ýî/ùã?ýãOû~ú/¿û‡üéÇŸÿüÿ~úùýôŸþðùÏÿôóÿýsœôëoü÷?þù¿ûËÿðÓ>Å/.îy]Á¯0ÿ+ÿÞClÿ^ü?ê ÆãÜA&bŸÈx²÷úS|V±1»ŸA祠&0d´[3§á‚GI O¢VÅ÷'õqUB»8‡å§Ó3y":óèF¼"×·Læ^Ïûñ¬SÑ ‡~D™d¿D4´'”O¥ŠBvËo´“Œ½#g>]aPP?©!þþè}Ü’ÝPIá¹Aqt¥÷h#½w¸tƒŠ $ePlPL– `¦Ï‚Ôû¦én ƒÀÇI19ßjd…Û2Â;»s‡ˆUçE¾}Ïh©¿ɤâŽW©‚‹Ç‹XƒÏbS– æCå½Ôº‹ö%ÄúâuOr‘´Þüiµq€•lisí…5ÞýÜñþ|ÌÐ˞ǚZxïþüyaä)öÍ8Xš<¤â[ý =,?2ZPßgi%®ìlô¶í¡à&nß<ш{òÈáÉ ãZyÅrÿŒ™1Fèùx…¼¸‚œdßú÷ -„]‡ˆ[ñÑ6Y:K‰&{?(¤k´Ó›&`ázoÁ]·’·o±°´p¼ÆÏQq]€"K³6´_Ö*ßðÂâeØÖ™‘ĵÂå(ûäËŠY_ZpÓ"’~N O$&¨çRQ-wÖyŽ0ëÄ1–µž à€9h™Ü%—FAˆÏËíµ A݇Œôi ø¼ˆ"åÌ¢’2_ȇù”ÙW=!2+ n3+Ùýr4zf´±«BF+¿ÎÑÄš”/1Kê3Ôn{s=J¯õç°ø ä1kÔ‡ÃÈlŽàó:wã 2ƒ¢Eà Z>Ý_]+F°þMÏz–•!¶üXô‰®`s²ã˜¨«Êf©-Qĉ©ÊßÙEÍ _¶“Ny}Ô¿É)ÕórÅ‹êæH\€öMNŽÌ#A™†Æ´Oh!14Î)Ä%SÄ’1Ÿ¾íí8‹;ÃpÙar d°ÑÌ%EG‡Òžè _z^ΉàqÑT"b@?Ôôå`…š"H;äDÑ>ð"£‡‹=è?Aý9ê4 —¹¾£2-07…À‹¨‡ýÔjPI¼òÂ.)X᪮VvpÂŽÚ,^yÝ|¦ïMDšÝåžzHPÛ¡YÏÀgèpÐpI=4 ‚SR ~à ½¯ŽÓ€Þ SAÔ[$šÔš½—ÓA…†&’§ô¨;]¼èŽDF[ƒG¶ß²gÅ¥ÔÝÞHª1¸wdF9U‹e1€s@£[˜3ãBmx?˜ŽÛù/½?ÞW† +ÞGcß)\ñèo R³I˜Þ¾žêòf!Ào9œîÞpTC„,8”PF;K$[õ! uS›X×ò¯”h€¼ƒ”uŸÁ}ò/¿&ª¬˜ížýxäXSþ_Zņ¨,¿(­:±À}5¸ŒPóS”)>K.¢5¥[*²dbÐcrÃCUúÔ‡Hå驊äŠw&{…Ö¯8H@ ´ä¦÷gÎY3Øþ+Ù§aÅ„èPñÌ< %tzH!*@¢ØâÐwY ŒO5ó«Æ‚y5l ‚xrèd–tÞQÜþþø_9™â×g"Ë”s»³& T?™n‰6îß^n,s¾>á|‰x»¼>þÞKèjߨdO¿1U¶Ÿˆkj +M¥û» å/Ÿ5oÂpÑG%G¾Ã•#ŸôÝPØÏÌfÀ’†Ñ{îXüYÞèEX_æ}_¹ÀÈ8ü©­Ÿ¢$ðú»óÚïœÏ0ÛUk„ã~C¹$ò”So¸¿kð—Úz}öðP¨;çÐP¼›A=<‰û™Œ$ä¡ S$»)YŸš +?0?ùb«‰2̸y (Š1¶î-yÈÈâxp˜äÎÃàdˆà‰Hž*•Û ¢‚±“H;L(#ì^oðN#:•2eñZeYš4 Ù HÅÓ ~˨ÝGt&ŽBQ¿i„³o®#]-¦¥§ %tL-&¹/gÚ½@ÎL­„OñL· Q}èxì¹,pC–Œ×ÈÂ{2‡sg¸ÈdåñvÈ@»Ü›¼à ¸ÞÓØ¬y1*ªêÊ•€ª•9lÐC°V›i÷y4”|ñb42O#nÂêÇ6Nä7‡+Óó,ù+\|½€†JÜ”Sþ 膉ë’NF}X;êfºÐûêz¿ ÕfUƒ¡ îFºO?—;Þ¢N(€½GM$˭Ȫð™¶SõäN‘æ»ÄrM$E+Éa󘿿i45 ÷˜R'Mi~Í?a3ù'%L´Ë_âfô¢ÏÓ¸ï²Ô‰ÙÙê¿–”Y&éHÍ2#õsôq"§å± _“>ž%úŒÈˆÆ`$ºóËyfh £ÇdzºŸ€kÜ­íç6(Ý ªH.ÌÞÁùÖ_¦¸Ë„¡ hÄÉ€ë0×=|oÞjd”÷r‡ðvÀ;)t;uU›889ƒ2T +دûƒSv™@E9;šŠ0R@ÛÃ@lÿ"5úHSÛ™°°Z`QwÀ•AyU9>÷ˆý‘:­@Jw¼ –é§^<¤OaÑŽ.\Ñ÷† t¹ƒá2£¥üÀì©VvdèÓs ñ+!"$Ãþjð2aÿ£ÒN¸ÛŸFXrd×ö»Ãêµ¢D´¾h 3œïó­qEÕ[|Ø;0Lr˜}q8V>ö[ÍÂt?¿°«èœ ­/-e±µ©Z w*5lœð»aÂé qºÕDkUq¸o*‰i~DqË^—ݰ÷ç¦â„¿dMSÙµTqØiöƒ¨¦mO¤TUÂ`ƒFÍ•S62— ‹B4ìáÅ7H~ù—+?©¡UÙY%öÔ *‘}ÌR£žkØã˜«Æ…ö‚¯FW£Ì×çñXu«GNùÑÈíFÂÛ=ýI=dœß*v!çâÞO1Ø}ir~‰U [º·’i<¯†ø‰272­žhçɶÊè‘‹¼ŽÛê8BLãERäŠ]‰qÕ&×󬆆ŽÁlÃgØ0¥>ìéô‘mW™¦ç#8I1Ñ( 'ÅÖΣ!r±ºxŠž~î?¬2‰Ý›8òÒ<ë;BºÄ߯¶®·5Àoõ뫆.t¿?Aç/›Þ@ä½%Hhèd½ÊÑZØJ)Ù «4¼ÆÇè<¦XÿjÕyŽ PsÞáËÛ%L| ü öϱä?ª­íW%c}´?öMÌËÑ3/7\@ÖÙTgª_\òÜì¨×w»mS&°H™ .ûún»„,à?UôPízkøÅû¹®š2¡,¼Zn+ú%ã 5¥b¨/O’†¼¡ +úõ“DîÎíù§Y,¹i f0¹,˜æhH«“è§Ž… ëhMlÏHÅtͤJ¨ù*ºOæØÊ´dåû¹¹kܘyðB8[¿“@|ªzºWð!bÙ€ñ± +]Ôç;ÞE|´GR|4ºQgÖñïvþ>…1€›k¯-j¡gžØ…û÷ Äç^Ë…OÐø7øLð4æµnÆ»V®ûÏJ*”ØfÅYŒr±áVÝ Bñ ˆ€<›a:í¡ 8¾Ë,Šœ|fšÑ8\0@Íþ½G<.–$^'ræe|q;¯NâÎÈ¥‡5›| +o=d4ÔcËt¾è•CŒz?{X%'—ä~’ XrùˆLÕ¾¹èƤƒ>ÅÎvËUE³„¤/Ry‘Z1Ò1Y’ée/TArL^–TQ•)Õ(‘óð‘åçL%Œv,”¾Îä2¸{I‘õzà|Q²o-„Žè[)¶‰‰‚÷eÌÇL„-:††AI—€sõ„ï‰ÜyƒK!ã!ÒL!ÇÏScÍ­¦w÷œX¤&6§qGy5Äø´´¿¾…)–h÷¢úçñ¼5Ä“mçɾÞÈϽˆ¯aoMî®\ÖŒËzWMÇrÑËãŽðcùÜá÷§dkÆ¿çè·ÃPÚc%¤´§H xUÊu8VóÛŠ ö÷V”Ú¢2ˆ&зBÎJÞìêÔ¤!±ÔûÛç!)S¤ÌÙ`½uBY¶ŸZ_‰¢"‘ŠuÊç1„îÕgêCÌBž™8áÚúu0ïÈJþ^=Ln@ò*˜eõÚYöÇ®y= *§oE2ÆZ3v³éýÈ­ ÿ”>ÎkùJÀ@!§â压#8 zÈ*Ä(ëhÇ’7$%µéíq¤ÉSñNüAHºï”U.ÀÍ?Ùô“î7S6FØ0‡MAѪ}Ñc°ã‡RòuU|ï5Ó1"‹Z…鯖ñ_‰4ˆúd „„då_Þ~BŸ2u +F4ôyïµw.1ç=UdHeïû>ÒÅ?½>Rù¡凥áŽ›Š…ö¶¡ÞÑ÷;bÜÏGDè篡ô†ÛÖ¿8 <±yWÍ£;F)í,‚ì‘=^çþµ¸׈‡Nmv;U‚yz…ížÅr¬•öÝ#|J±ÆÂð +¡šÅ9²è#1ic?F‰f÷HõÞnפ±bMb¬Ï"w{äÎy.x°Sœõž‰£B¨£v¶˜áJ12K{ŽÈâŠsCâDòôg 0ˆÇÈ!Øf´¡Å÷è$½Xû×ö|ÕãH éÆïäÿ¹— +5ĥ梛䙃 Çk]µ¤uÔ’ÏŒg®·ÏRˆ_äùÖ†pK6¸(´çH›y£/l(ÅÙÌ¡ˆ,b±'ž¦ìC⃃¬j¤WºàÊ‚0à’yl¶5ræÙ#w„œÿÈe, ¦1Ç2“7”}ù5Ú{ƒû«Uä·Fbj´Ðïùá£á9 µ3}¿Á󩯏we*¯ƒ=8xIî ¼[Àé$Õ-é”áNáŸÀøÉãSœHj¨®ãf¿r“¸ße¢;Iኢ]AËŸ,>î¢xÓ”u‹áK2Єæ„Ì%jÅÈ\¢êФé»Ë%· +tòsãÔXÚ³aŒcUe»=óÙ–~¶vXå(›¿5þ]œj¯Ó1q>MQ@4?´\±lPUdÑŽú]îPÌR1ò+`ãªÁÒ=Ø­ÿˆm{S#Ñå nö¶yö¯õJXjÍÿwÝߎÓVTkÉ'Ózä v7 QÆ=>¯"‘úúÜ Uy¥W,͸¤ ­-xö–²Œxã",ÌhH-W²5ÖÝ×UU®¼ŸûY†]8´¡jl(/Òµ3rÈ*¡IÓcg£eüˆÞ_µ?CÖÀ¨(BÁ\ ¼È¤@­ zE”Y +ë^ëX{’`í¿?E–ý[ÐAqæXIêöŽ?³÷‚*²¿Öa½Dà÷ѰƒO +¤·Þ:D^5Å6yÏ3ÙZêç£è÷Ä“HF Æ–a-T: +]ï=¨aöq…n>5Î`V«ñD¨Æ&ouô!š+ò“ìo%£8ÔsþÇK€ç¡î$ù¡vÌ¢klì1wÔW±Õ‚FÆ[ôW é Çãé!6|ÏgÈ¡ªÈ°$fèªÀꛉ W>PÎvª·Ú uãq%ç\)[äU«HqDjˆÉ’ÿAVËû½JäǾ½Â§G +8å6_ ¿z*›ˆ…‚ô‘›ÝCÈÊb&€=G¹Eк5ìJŒrɬ†éd90¢)êv ù*ö™mؽJ@ŠgÌG¸]HÐï×A z2Œn…Hœk;j|ƒËó´Çpæf õí:?ÎSŸ²ßã>tFR€–É"ÅõZ ¸Z çÌúFYý\0ãwˆíÜ{ƒv@À¼ºE†7Ч{î0xÁÛ0êv{^kG¸WE´#•OÌÉ–ƒÝ +pXžª9Øèxñ±Æ€Äßw´;žX ‚%V"´ø÷‹Šöý¾²»69 +Ú‹ÜsI(ê]ÆëÆäP¼Ñ¥­í[(íî%Y—©Ü;‹o«,‹s„Ì.{˜=ö5´ÐFâ‰[·D”r_:²YbSåŒn/Ã~€¨E Þòî4L èÀ•hx[”oO¾9Âl}o[œ=¤¶ÉkÏ8Žé +\uƵÇT&ŒI#ÏVPSZ% »öÅø` Q¶|ûîRMAaÊêâRððj½Sq9EÀÊîáLàÈ¢“Ø·Dw +ÔI«"4ÄePŽ-âMáýU´ZB­LÑaÔÊ.ecÁ§{u•,ÇÏ+Låè©Î¿@ªéZ"v; m©gù›)0°¼á 4/ë°±ÄÙ¨-:¸Q½lQ¡›w˜dlèÑk¶G&;Ó$nœ(ûFVüUKT€ŸçŽã°—$vhJLÓ£<ö¨ÖéñéF°ï°eÍÓƒAÐTB‰«Õ†y™q—ÃLÞ߯Þjz'bß+Ö¢J™Gd!šÌQîÕ±Øó !“‡l€j´9ùuTô€~^O»eAËFû28+už| ^¿½Ð+,ÒA «pºÄ\Ò#(\5 æSj}!× ù²b‘jžîùh!Ï ¹ªÏË3±ªÆ=B`{Ô\A5¶¨MëÓÞâx‰4^;¹ ~¸Ìà@ixB¶”ÚÕ´£  ,¥@XÂn‡ªéqÓ÷äÀj ±Ÿ£ÙÁ[« ãþ5¡L¬‚Œ…: Ë‚t-ɺ÷ál±ð¡@*£ÑrªàŠïÝÓÈa(¢Gï¾}J}Ø£úËÖ¹» E¹»£ÅâwîQ^oŽW" 0qñ®s1x¢Û‡±~ŒmɈ"½)]ܵäÒA_è-Ž`当v3 ºâ q ¾(€œ–;ˆ¥ìµ_;?8^+”Ìã):âGÚ7%ýÙxÿ÷¼¨8v"ã”t8ÄN`“‹ 9N`·EšQÐ+p{Çu&T{f=&œ%þIí”ò# œH|ÀÀ>¡ ¤ÁQ‰|„BÄ»Gqü«QØ ë~ ³ÏCá턼?h'ô¤jHfÿé,ú¸Cñòàzî{GÌËà‘ šÈ³«æ'–tÑ¡3\ržå@f`ŽHU‘Τ œ ˜ÑELò+n ÀÌ`Vƒ##ªè}ÿi\A^WõÔÎCùðu¢hÞ@~’ý|l` Å—5Ò¿±¨·ñ^“!³(åk¶¾? _0K=<#9B£’Æ‚õ>N ˜ Ë¢&Mxv>úzÂT™'X?…Wn30IAyÚo²V/œuÄr)˜G (~ÒØ9OµœÝ0Jº]c 1— J"jûÊ•´7«áÝ^Bhëànƒ!)õÓÇÓ BG£VE@¸BÊã®±ìÿzãÙâd“}VC!}ÌÀ‰ÚHP¬Ñ†fD\ûåûñ7Ë  ž{ÍgoI•K"£ñ§hÓT€«6.XRò“ƒoáj`PmF¥) A®z(rë2"£‘%‘ŒÇÑjú-Éɨ¿°¤Nì˺ð‰®g½B>ߨáàÍÅ”(BSÜG#° a/†QA¦\±þHGôRo<‡‹%:0O+xÃ;¸@ÿm²Ëž±ˆƒì@m¯Fü”"~Šª†¿ 7ê€4’þ!£Œ2¡³œáb;~\L˼{Îp~®Eî}i¼51c+Â\¼ô`s€ò®~gsÎ&rC’¡§×G€G!Ä™â½KH6ä9É·;Á}‘Xr[þ`£‹œ{m[7ÿ”“ÏÂbžÔ%ž 5€4‘ðƒ;9Ãg·=¤P©Ù óÜ`¥›O•#Øq¨ ¹”4`˜‘XØ7…ÙõÜ ž5OêR"`橸½¸¦ÙÂŒ¤ ]Žù•!weüû`•5Ó_Íùî1Eõ™Ÿùt¨Â¾óˆL Ÿ[[@=Ð=2±Ÿ~ìStØoh-“JÁoM >]&Ÿ=e²Ö5ʯ!)fÎl"ØOÄ¡:n!=ðJQ¶§ïZ½–F÷¬Ç¼eM÷O „S|*@/”4C²<Ž%ç©vÓ<;6îÑð¸¤fœÇÙº%§ëý݉8Á"íÈ©ËÇ*‡ñM;é'ÚÛùE/ø˜ó+¨Í/…³F¢,_š +®•M5ª ¬÷¼²Ó}†W©Þ¡€ÎYS2bYÕÔµe/,“×ë~U÷Þá¹U$2É2â0Œh;Úž‘[2EVÈKw*ûYèÈž^„|0»À€v8Ej²}wXI$Þ•€E³¹Ä •y91ÓÐË$…¹H¢®aÔð%/³ +° ^²T¨pÿ’ŸðšN)x¿Ceŵ +h¾ŒCd0Œºý’†÷[Ž(b=Dò^OµOê}êgœq?~‹nÖ ·Ü?‚ñ#1€ó’¨ØüÁ×2ÿ$Ð`ÒÔ» +€.“`‚².” ßOoï~“”ååóľ‚zü,>±ý*é`Ýq†ËÆxÅHóÎJ–¼ž 6Ö¿ÍØÈûßуdmÙ–åUÂvÁ–àd¹¯ü½ªâxU‘KlUŽäˆbîSùȈ‹ÖÁâqáÝôÍá6ÂÐu*Ðîûr½ý-TêppìËÉ‚²–ëC¿´å+¨¾À¶Éâ iwíp0_2š|Ö²ÞÕfáa=j<Þ‚ „ºõåÖ>¤˜0†0ÏÚ^ǵZÇ1Pµ¢HǬvsÇ å‚ýß$"a?AC"Ã[‘l½ÓQâdh¡îOå|ãÔ„fúͧyI‡–Æ{?vvP¿‹Ê_ Ùî7âñoRVüMö¼•Pó:_™s)ŠÒHJ K¿jj‰kUkk„šØ­¿ØP˜¾Ï=±ÔLªª†$°ß¤]ì/49K†pj»$Lö+Lü«°ÆÁú;!±O¤ô÷N½)þeû@¸¸:œÇ½}Ÿfʺ½°d÷핉åQãÁôšZ™ÀŽƒÃšoˆ^JdPè¡YüEb¯Ä–b@†s'šßÏÞpfÉ´Z_8Wï¢BíõYHÈ‹£ä-Fµ‰sÍâÉqP§Âyð²ª)œQ Aë.ó/ ^б%Y*ÿÖÁpÛR yüj S’ u°¬7\Þ˜µžñ!À§xe+äÄP}·,¿ ¦iÌW/ã’Ò 3‘¼ù½ŸXh¸%­Á‘[¬&ÇŽøÇsö@dÙ,ßÏX›ˆ±ä¡z¬ˆû¦|ý4!À¬ñ6û%‘©!B¼RŒ:õ?ð¿j0¿™¹—Æ[b¾Q‚¦LvÇå:]~!d+n¢KÜÿg@>_™ç „­ö…‡˜£Oø¶…ÊëŽ÷kÒòGQ•£Rèo‹a+b ÔµŸ@‘…¶ýRD&‰‡E–FfD-éhW –^‚+õT|£”Ê^ øý ¸øô†Iî¾ô¤ o:àwŒOQ]H´îµ˜Ì—œ¾vÑžˆòDÉá“›Å{ô)Ž–Äλ=!*D¸y(;íÒ®û±w ¼Ç«Âh[zÉ]ês?†6|,V´_¨Yz´¤±®<•Ägñ|ç;i³ÙÁHÅ }NÏWœÖùÊÝÞ·¢AÜ{U®a7á0m†^Ê,»"ìšÆs²™ec‰—>Ýœéø23“«Eº¿FÕ~fü©=¦m +¬(H¢³*Õ},¦þ[ÿå3ùM Á/W®0'8…TWì‚øû%ë­ ‘I¹E¢©¸)‹Ö¿Ë7u ¯ŽÔBøÓ:aû^Mœ4é#$ŠðýfÚ’Á9‘@°¿Ôå™]p l—ô!$MêµEËü®ÅWëŽ8XiÖ(^$¼­`]–oð¬šÂ.Ô½n±ÆS¥"aâzSZíÏVdFßœð°Ë%<ì®È²÷Õhн¸DZG8l„YèžùÍñ.ÀhZŸ‘½aæ›\#R`•¥ý`Ÿb¯.,€0“hê–Å„°‹HBÒ¦y@°W-‹™"ãíùöÓ`Ü=„3–HU±sÈ(j4úº¡ð8z]ùH'áÜff4¥CiàF¤ÅCÜs³ãøq8%%Бû +ÌA‹ # ¶0°³œ€°§æ@ÉHª˜dG`?uo_Ÿ£$X²§ºuø3_öÒ´ªÄ¶%_šü|. ñ2šö7—:vöÐB‰¤öq|’ »×8ðˆ¥©FÙÛÞçÿòêqF”{è¡Aqàñ€c…Ø :ô4qO4`ì™°Ëãï’x *vˆÒT,j+<·i}==ùIXŒÄ1¬\íXcoiÇ9ë66%’ºÇÌ6“nRãJ´“HçÜkÿ´Ä´(3dˆ–®áÿ­á|>†ó§øi/Ö!z­£‰r›…„G˜Ç ­G¨÷…ɈÇóžß«›8ì^³YèÐàË +ïL$¤a¶ÔkñŽíq‹ºóñ¸Èð.²ˆHì"õ‚J§yà-ˆHÓéš•(QSXRfÈxÌPæÖ¼´D™q`+~u(EïGJ ã22!€•âL–ºaÙk7FÌø\4Ñ4Ì¥$B)´€ôr8– +ŒôÝáÑËík +?"UðDB‚\œ‰„²®*ìTD¡¹_ÍjgGßûª<Ñû\«ÇŽãÖÙ¾}æA"±*sÔ\S?kM€wz¨¬{ # ÷W{îAYDŸ`;Ÿãjš¾gOÑõ,“}Ê™ İ”Ú"Ê]M™iÔ<ç+a“û1m k–k†:®"'Ö‚©iKSþpܦx·‡× eÒã0îäÈû+ÈÒ],Ð""hA[!Š^ú¯@Œ…þìÿÄT° %¹]ˆv¸¸]dfùÁ?mXK Ú]·òHòénËá$ñ`?¸Á­ä™8üR¼E+aë„3ŽeÚï­sÇš^ÁÑCWµºƒ–ôpMA%0.=ÎT¨€P“LõÀÒXA\)¢“°°~¶33&|xÿjÓð¬Ä@Éq‡h¾Î+BÅ‘2ªÎÁQLÁ±šf”x×§ÕÔߟ­ŸxôQU;!+¸>²{ +#3†”T ÕÔƒeTa Ê 땉h)”;GCk†Mžæ3€ÕC¿m¥}I–ä]Éþ5hÉ¥œËú–O¹fÖ(¾å¥ERE å* |·Íyíò(½rnQwø\|ÿ- ûÿÎü+ô+n.ñ¿/Ü[DV#¾ ²º€— P„Ô¡;¬æ5ݽ–ÕϽ„N ¡LÔïN&N-VÂÝ0"³>·Ë§¤¡zž4Hß„‡¶LC€î Hl”ˆtnñhqm4T80ð芉ªsš˜£1¥òóûÂl´)ú´ƒ`R©ôe‡PèTˆA÷Q æ^0Û(²ž¢Œ8.5%㣱˜ ‚©ø0îc"¿5@¹F'o9–¡öʪ"©ùµÚXÃv á|—Fñw‡éÄ·VzïwrÐKñ$|€â0i¾°‡_«ªØW—6˜|»¼´Ê¿TÆl ª¤×kjü4¢ï†ýÎ)kþ÷Ðhe7>%N¥HV­KÖUkÊð{ nZ1 ÆQ®nRÑ­p ˜{=ù#ž®ò8X¡÷ÏÓ‡mç[c=Þ½ETfa[6-*Õ¬FÃdºû¼>*`dq ­Y=dÊß”Í[Ã/žþçÆ"†Ø0;§½#E9ŠjSE;…}Ók@å´w=èqF’a{H5‹~Š·ý› +P'ôâxûÿÙo NAC`žü­ ÃCä%G8„£ø¹¾|’TœÕ€ÊÝf欰žKØó¸_Z% ¼Å½Ð@´Âßu]“#ˆjE¨•”ôÆ‚8KøfÑ–ù>\òŽðõé6ó«!6ˇ)Ót3ýî[)í:’–TÙóIÊQ[^R€ö}B$Ks*Ö«taÎôêòkW‰õP{Ö D’2¨Cª‹{Å,‘W(À)†+渜¦qåý¥)Ý¡¸äçd ÷Á^+(y4ÔïØ’Áºâ\ê­"£xÓ žr ;sÓ:š±œ^; *SMAø Ô˜ X´ð­æ8p6§däᔼ¼‡‹š<†jdgŸÈ ä£üÌÂ-Uáø ‰ VLS`ŠzIÂbA³…ñ=, öÜ6ƒ7Ð e?*Êù*Í* +*ŒøžÖõ“Ûüác`>/²ÎSTJÒéèa¢HB‡¬r¬¼EW¿úºª«xáƒîv£ïnF8’JNò|‹ËÖ 6…øèOT3ÒUB¬hLM)KÉ0T©‘¶¼Bc-ÄÊðoµá%:“ŽÀÿD䈒uåf(¸I`ýƒlÎB¸í¿2²~ü-1@È.ã|ïVjˆ©bá'Ÿq\˜¬H©€ç=´níî;š¹OÔÈ5 " + SÒƒ `ê‚ð‹£^ jÍ壟–^Y+B +€]¶&Éì‚ÀÙ‰¥`™š¨5=£ËŒ?c$ç#S}‹-Â4È­£F6C#Ÿ³7¯´Pò¡ã$ŽI¡\ €ï(2ô~îái?• øî?>õ’ê,m-° +Œ ô? nÈxJYŠº=Ç7œÚ?T %~Ñ«r¦æÎð*´Ó×´]>H)¤¹wv”Á/]{dÖ ^*Oƒóy%‰úI2ÿ"%ÏS¾$3oN# Þ+‰J(‹)ÒöèKCÔfJœ«å®Àáœ/Yý“x§)àe‰jdz³/•N¢Üú¼(™’Aâ0Ý£X½ôýéV(îë*£¬?TÌXš¼#vú )ˆ¿£#wÒu«’³I{Ã-÷ô44t¾'š«Fÿjì§½§{`ت¤ /@ìu(³b…{+Å ŸqS´ûÍ4qú©ÇïOâT%båJ=~î%1…¬AXHfÎ@íîÒÜo#æú`Q¶WÊ_ÒžMï¿uˆ©êxÍ Í-Béí0Ô5ÝÖw6ü‚B@o  Þ…p:W +é­—öD$góþÂFˆÜ’˜Ç‚S\Ö”Ö Ô%³zrSýJa \y•ŠÔ­è"pšwbf?¢o# +¥™ù‡b+:‘o„$àI:Ô€D´KàÙs÷Ç3±™˜áÍê_è]ݹðˆŒÇ_H“… ubSx@5v,6&ë*L$2†?^… Aóûa +ÇRZ 8“|B>HU¸v; \ïÔ¬ŸçÈ=š‡¤Ôµ~£èy–Ĺyphd@<.p޶½ý&ðnÉPS¢2o=$ú6ÝLcœ(«M7>êÏ ¨€R@}À^8ž å.ޤÈ`õ¨ÁªŠ,;Zƒ=5CŸÕíȸþ¼¨ô¨êw!A­KÒNÈÈ»^ØYaé SÐvRe#ÀІ= ]ˆo¿#ý–ÛŠv9»ŸÝ¹e(‘'[®`‡ÚÐ+Û£¥|jVƒÒ„g­ÊLÇ™õCØìHÛã2ŸÓÈŠF#Š îIg¤•Båp†ÔJëÎ5(ñy1º¶”¸=ÌÿÅE@9lò®ë»"Qðg·a³¼Püjº.Ò¤B¸PgPòeÓŽàWïWö¬‰ú¡æÑ0Ö=QcÝR)a•³„§XÂÀÀBoâ+Ë?fUÓâŠD[áëÅO4=÷׊S¸j1ÏiXÇijFb¤çë H£¶ÜÝyƒéÁ*¯ßêžKÐÆÂJ ÌÅ…°g¹7 ®ç¦ˆ¥0ªµäW&C¢ +¦bö˜¿"côÑPîú?Æ­³Q4»ù’lœŽ 6ËHÿ&‰¹nÿ²HÆyÞv™€Ü!ìõyŽ ³ÚºåhëÎòRù7ÔOöEz¥ˆ!³Cî–л¤åù|iNWwÿ~†iAØÒ² *´…lDÃ82å‡÷}>Ò…Pج /é7Â|MYiî±|v­Ã:\öi8á€ÔÐêÅ8·ØØó?„l=ÊTW&’;¦õ|Ñ£‘iví¬×°ä‹Néèüªs÷)”6¼u&é>!SóLÂBýSÃypsžyðK™×¨èWUð¨à‡˜º’¹˜.‹Ÿ[yÍD‡¬ Tñ’œÏj~ÉALâRg4ü§ô/mxMh²¦‘=[§ÕŽ<©P­ö>;-õžƒ‚LC¸¾îX£¨|êñpaº/ñ„7‚*j¼™ Õ˜•MÝX"DA¨»ÒÅ¿hðA“?ˆ‰@ðÐ8¼ÍµiîJz) + t÷»†þÃÑÜÞ—vTç?©»kœ[3  1ä·9¥G"ùôÞàod«[¿øn g°Z‰WHWãåy°ß—X(çAMÜ6úê îp¢j;ÑŽ«Ñbp'&ô+1[aÿãjáN[ +”iÏ»Z®þá€mk3¢½yRD¤ªglÓæçoô€oÔÂDJáO:I!PÿûQ 7ð©á÷7&ŸÝ‰f÷Ÿ{A(º.Šˆ²œi$>ÊÔ‰és¯¦í÷^:¡NîI²èÇXŽúçîÕC=ñÅhbMmðÚàò•ò¡'혪áwOõ8<=bìQ¥#ß-@È+âI';œ½¨6³øp¤X@"£¢újpÏdw{Ët ¤8šÑŠË3êEqå@6¿5üóÙûÆn}íU;?_|}¨fBØ^Lê)1Dd‰ÄØxð$# F!/XJÖö⓯V ;åÛ‰'Æ<‡¡€@ê<=fôPaÄóô0wÑB¾ÇãžéØÖí^jÊÊ™Jr¦(¯˜70yK²ÙÕ®ÝÏŽ¯G@§¥¡ì…‚¨=4¯€Çyt¡¯ä@S B›Í;Y)ÏíïjèÒ`êîB*© ¹\®€êUõbz?ƒ¯©ô>¼®\¥ÇÎj$|ónÄp!]ÎÄlcƒ%r?û1¥kТ{É4‘´Ôª<ÒÁº¦às§`ÃŽ{OCÓBÞs@´œàʬ,v°Ú³öÐÌ%È×9B_õP¯ØJ«1£i§Ä ®8/ŒDmçMEa8¦ r +)#ðÝÒÇUy,¿P™SŠÛÄðžŒC"‚;yn{=ƒÃ%L@õƒµN}ÊmY5’¢¸]½•J‚oo‹ Þ·ÐWdp1½àmõ($Ò »4ófA,”P§4 B@^Fp‹<Ëþð:àû'g¬oá{DhÁÔƒÝ$è‡ YºYdc;û(q?^ÔhQ•èb“»¯pZíºÍ‚¨®4ä•C¯k;ŸIPÖNÙN±NDƒÕ…/¸{¸PÏàÌÝ!îþI8¾Ü¬î1€Âî Hw8Ñ®~=Ô¢'îtê[ÌP¤—чº?ÉSuå¯Çn Ÿ =@ ¾ÙØã[M†BÖnXÒüDƒõnDyxDœç²ímìš–NI&EÞë>ÊŽŽ^–žWsv³ "–î- ›Ý½MAZl÷P3Sy3Ûì®T·!ðŒLK“Pý¥ñö-É)°'n½Li’aP5Ÿ“×Hfº³jïñyë¡ +ïS°¹â;°ñW¸²ùJ•Î{låüÞµÎ\onòSãzOÆÆÅ2æI"èJÝç¡CÄžú#¤È×¥†r²O¯ÕH^ß +3H‡•2O±úÓç×ìõP¿o›!ëu—Ëø€™–jÑRì\q@¸>:„}Ü?Ý î]*£A¶zq¡ {eQ+v³O.؈\–wïý#£mCHBÏèø7Õ*Çÿ.Œ8ˆÝ+q†±l®~šÕÖì½Sß)jè¨ðͺOÚùéÝŒ?\{ï·íDo_G˜|‰_t’Ԉ囹֩ô9û=Î<ì _GëÇi€uZžÛÐDtÉ4ìEYå¾¢n((p®J Xâ=˜ýrUnXÞK!¼¿BIYVGd Ìn¨ä8Q÷éW—ð¹qq…î |Ï’ – —Åqþ®S?“˜Jâ#ÐÈQYè'R®5$úYüØEÊCAPFC4Ä({Ž 0âÚònÏ·à~Â1•†f²ºSïŸ?±ÎÝÂØ/¯j5¨$ÇgØ9! +½;jœ#Ô8Çëó×›¥ÇZ‚SÙ>¾ÙB¥}oJ›'B%‡ ,b¹ˆåæÜP 5~gÒ”)»Ú¨PxY\˜’ZCq—¾=Ÿ“B…L½®K!lXñ¹ak‡Ⱥ8ÂäÓ~u!ª.ÓjøÄ­8Oõ®œÃeüé*Xóã½ke´¸Ùþ&Z¤|ñùŒŸciEcãž^^.êæêÕé5»hAPeÝ}dÀnC<Â#bs;¯ŠŠˆ“³Cìã, ë9,ÏRB I„j”Œ8Á `¨½ÆD­Ú4‚LÓ W‘»ÔuÝEvtÈ»€WÜn«êh[˜ô’~û8ñY FšÝÃ8¢ûÒí½ŽC~>o½{ú>þMüR>„s`„d¼…P­úÞÐÍ!€„Ÿk(fI‘݃¾ù^^©>‡köø Ë÷x…©7Õ®@^ÀjS9þÚ†„Z01¦,®é¶„ð nM£Ñ…§cx¡Ió<5ô÷˜íϼ7ÀÜ©^t &;¢u*ö25r +Ï øMÊç7‡ Ô[Õë—¶õçÆú{å"ÞØLA'ÂùA1 Ñ€ýGë¯†Øø¬X¾!º¡pœUÎßPd°Ìã”p˜ÉusÿorŒ±yJú±Kò¿;çzÂFg§ZJ(‘ZâѲð:áüÍ]¾Ž”ç3fõîËG +ß}?É×q^9ðShmXM¯zro'ÏÛ®ëGö£á‰xèwÚõûŸ÷;ð,\Y]2Õæ/B /Á„É3ôþŽÄ’zQàZ@ª0)vR\ÃpÑ|ø(dd§þ„È›¼çS#CÅÂX|U:«uÊìò†ˆ(ù’¶n½Bô€Ú.øÜ½ãCþõ÷)”º9‘1ÒF—E¿?¯¿ÿXzŽ>¹œ»ójdRF‚\b¦z$3å"¾¡‡K‡þ¥Ä(4×Û}ß,¸¡>áDU­: +t{¤ 4KŠ–Ë{Éè¡ýº>þ[á%ýU"Ñ¿ò` ?¤þ=EÈÿøÙÔoóo¿ýÏÿñ×O–¿ýûÿøóÏÿûÛßü‡¿ýo¿ûË_þøOÿøÓßþŸŸþËïþáúñç?ÿ¿Ÿ~þ_?ý§?üÃ_þó?ýüÿ'ýúÿýþãïþòÇ?ü´Oñ‹‹{^Wð+|§ÿÊ¿÷pÙ?fìVü¨/øOù{}éúVˆô€«`¾GI ZSÆEtüÖ‹$~´i$cUTÅÈ^G®î/æBû­(F¡gl'ëì=à  ,Iê?²p+;·WÚëF…¼#áŠkÖV{=ˆŠï!^“¦5{æÂú(–¯½Y×’N‰W0cXš›vbY¡ƒü„ÉD³¦”ô@(#zƒs€ô(Ï9<èàø¨Éø® m2u_Ú_C”`Üw皦3ɳÉô=àÒcÕ¼• çâ­Bf|߆“íÇ-0ëÞmàxãvo#V­ÁA§:ŽühMŠÛÆ^-T *ëÔÄö›üPHñÍÏ×:0Ÿ¹–´ˆÒÒô†Ùï:ÁÍ~ÐJñ¯¬gr"ë@Å+LX°P(Äî8)|Á +3º‡X!R“< +¿-—O ñ¨ö•/¾… £m¿ÁÕEI—)ô6wSµšèìÎ!!Í +Ë)Ý;D/n3=Ôwé%l!ËߪqôÜQQG[a”—×’¢ŸÐÛ#”¢J'»G]…C/C$`}ÒKÄ"„¨Ü(iu–£}5 SÓö^qgêã¦Ð%»ü´[´æ¾ì€Å ¨“3¯(À“/d6¤š?&û„5ÀªÞ9Ȭéî/¿èÑöxär%Ãß{¡†I-Èy²<<±khëw>PÛh äñ oV9h Ÿý1Z>uˆ1VÂMv?„IYãí(†;Œ¬'LÍò=à |5|5toc‚Þ³Ç{sIx:w>Bì0ÖÅüÔ/$zŸ¨¼"%=örqLQ+¥ÛkŽ€Gõ ‘wÔV¦Zeß±È\S-ÚÙ F A¤ž˜+¡_'¿–h­ØCu)R<˜ŠÔ¦gÚ¢•L{`'DvlçnÎÀòì^ šPv{­Ì<û1fÑ;{•ãg³ÇXݘÐcoßâZö¾ÆtÓ¬‡P!éI¤@Ý©Å*¦-jQ a8>(ìñÖ'ÇbŽÿ¦ê8‚íqaiÖª@úçži‰ndÇJÕû‹ã4åröÚüp§w@CpÎ:º³QJ^: ¥$#Ü„Ã^µ\™ÔovpÈ#ÚA%üV¡-ÙŒ˜˜2ˆ˜ÐúõÈëÆÈÁ]kTöe/ݵYHÕï×o¿ú$…[Dj()ÈL×TÖœv {^” iáÜ« ¢‘¼=Cmbˆ¥“½9HÚé;‹‘mû_´í«ØÖQWß; +1ÁöXæž1o«öèC ΈÄô¨$é1QîCWgÜZ[ÃáH/ÒLöR²u÷ZYñcìÞ:gʨžDªtôØ/—=ö»8–PïŠÎºûZÒ5ÊÜÓ‚ó:¼µJqÂyÙG}D ™ô±Dð‰U„Uò7p Ê ‘æÁ’ gæ a+fð=\$¼éÞ¶íàPy´Éã}ƒ´ßîÁ–f6Õc\•5ä-I¸Ëî¡’ rS+YÕz·…켟}Ö½J/uæs°Ëž4 xÎ’™ãQ@o‘Ä“U |°T.Š ½¯×$åÊR®bZ«>/1²„¸ìÁˆ£ÇŽ|ìÁsX`É(V{ð~…¼gº'jbÜ÷­Ì`c¶¸"ª_êbÃ͈@>ˆˆ$÷ÀðçH>÷_{E~<¯TCGrÙâ‚zP´Ô!‚)€lÍŸN¯–€(¡(uŒëDq"æà.™ã0: ÂU"{Ž: Ä)’/ÈÅ?åxâ• KÝÚ™gÒFîD1vóD·à€š’ÿ{‰’11N‡`n=¤È²ôã°±ÂØo^¥=‹ÉÝSÂ8š-°©Ö«ölÀÇßu…!†,9äÀHi±PaÇ$Õ§ž ëà‹~V”ó‹ãÈÚ)‰íD­,IÊžrŒî¦êgÉÊ™ÕV +Éä(n0ü(Žží5àMkzQŸ ƒ/óƒÎ뻘 )!0£8ÕcÜËê!2ÖH‹I~ÔÃ^U>1Böël[vëB?8=u:TX®ü´ôc–éÈœxNÔ/ž½.g«ãlšÌ ÔðèD˜×dó ¬4î:;lä/Ys(À–ɸuȆŸPžB¨ ( ÒbàüaxÚ€Z"}/Çs…ç¢Ò<{?êüï=pÿ(¶ 8Ïüs/ö¦`AQ.S´<š\×áÖ„–ÆTÙËK_©.Ž¿÷ˆß„½ýâ'iR_‡S3EPôË^Šñß •Þ:d$ŽnÊás[W°Åûü„^rž0"q6’YL}Äèõ¤Ò HŠÏy‹Š yŒð4DÒ=Þ‹‘Aq_J‡8†:ÁÖXG9‹w;™i‡‚g:¯ µï{JLìÛ÷à‹ä=Ë”¥¢ e©"è¾é¢ zðÜš·ä&vH‡Ùˆgj×öì ö6ìã¸D çq}l D¶„7J íÃð ïbA¾ ÛTòëQt¹àAb­}ÏôÖë %1Ê´ó<TA¸5²'‹ô¥¬î9ºffAv؆þ/¢iå½GdS¨)²@m¸}q0N&{ +“ ò…r%îê™®÷:r!¯ +Aö”=¿è…Æ7$F8!¦ßG%$g?Ô}+@G–¡§hHµ¶pÀ¬èÒ7â¶|²5À­Xº]à”sLwìAKÜ@ÝÒi /Š?”jqx¨iÝß_ŸNG =͆âàþ‹íee/ÁÜ_PàÃÔ2ì.ÑÕay"Í„^¢@‘#ÇÆ>”¤¿uè»'™#_N/’»²#!€æÊÜðî"Gœ¼—е,]‡“.…{5¥a‰B¦Œ¤’®»âú›ËÞ߇ƒcË^cé•z‰^aý[v„·7‚ôØÑÑ~Gö—‹£`œ©®,­æé¡_8 à9ÍL#g|½È¡Ökcùõ%\Ê —@ÔWì‘jµRØÑ½Ž‘œm{èé“!œõþðA{¡ÞŽ»3ä¡1=å]g×Ä[¼‚èo”°ÊåÓnéW¢»éÚ ,ÀµUVe8Üm¹Jàñ„N* ?C[ÐKl20Úg\@ ¯>>‘ “G-M,â¿u%wö4¹W{=œé!g÷¸¶#tÊìJw§%’ÒõØ>¤Î=zº{`üFÙË>q¢pðM“´äî1b[¢2b ~Ðò’ÖçLãÆYî±Á!‚oôøØaT³S\ææÄe®°Ò4\ã|"BT\ãÊ+CÚYK\ROíè§h²Ü +~%]à1¾Ãê|LÊW–ò–T1H$ã`CÉë6IØ_¥õí¯S¾ŠPÍ(z +眠<ö`UïBÅÁÒ„G íXh|¬O]—X5Ò¤ÓRF.+æ¡î+%Xƒ]8=¬%Û㉕–)ÊìÁé0Ç‘ EVCökÿ8OÊ×í¼†ÛùœñíýŒü6ø}W¬À}ú;ø¯לŒGÖ è5¤¬D a![ç>ÖotUñ°˜¸Ó +åÝf\¢?g‹½ý=”Vœ¯'ñËF¨—“Ö3¢öƒ&3b I¡¼C%”#¸¤o£2_ ÁøÜÃó¸;BVl_5Àª÷ã$í1M| *äÞš"&ü²až±Êµ®x{Øk<ÇȇãìƒAàÖD†¬¥J6¤Àþlg‹¸ßMìt +6¸vVh3ƒŸDt‚•ùJ’¹Þzø“°ƒ'a ˜«y; ¨»xöKGª‚“k[%OZæ=À-*çû÷ôù1¸~Ù ßÃéýò£+Õ+|€ŠJ.0æ¨âS„Rï¼´±À:.زŸÛ= Ü¡å=ñ˜…ú| t PN •?6Hu`Äe¼u@Cg åózm½õ¢Ì0}›RP…)íÏ!OC?mRÞ‘ë¡ 6`òK×{;Ô›/} xç߃©ÕHwy; +Ìö{|-¥8w´G€1PÔ&þÖÜ„5•÷b]ºÍs¦ &/Û«1Xùò.Û×›„{Ûr䪙ƒÙ’ÓÃR%ú2à9é ‘—¼ÎdÉ“jÝþzôb°í°:S¼¡G…kJSi°†›Çî¡S8= G‘u©ç7EÐdïþ&,ºû{€íï|BJpÏ'f>:µ(ƒ7Óá¦!¹ïžg°í[uÞu’_vˆó°]©_|™¸Œ­>{¡á9zJ—¾êq …öë}©©ïP¦Rù~Ó®OØ&11G²ß»á¯Ä;i‘Ìb:þÔîIð>p„B^ßAQˆ¥Ê2âB›+Ç‘Áý¢ÇŒÚ! yÉ[¯J Aä—’8$.ö‘¬ñ˜´úVÚIÝH…ÙÓvGš¹p?öp­l_?÷¸¯fäëÐŽís'Òµ{ŠÎ¤kúÇ\JÿâcöTû½qOÕêMq~î…ž¼/ÃÅ=œ@|;¦"ë*v-úY-òýK6²kIæ7Åõ©Gܱ.…˜uÕ!ëí8•dZgòÖáDbýDbܱúÄžˆÈX!~“ñ +f>ĤqÄÌc³Bs-~Ý$D‘_R:>3õ5³ÜšCõå=Ù4…^‹Ì#õ‹^˜«8)ÇÜOvÅ£ ªC;>Í¿¥HNpNâ˰ìqÍL»~Ì’:¾©t ’‚8ÉöJðŽºNË%—Ù‹’²ÛHM¥(˜I0þ籈-Ë?D2û­úò8Ïy›23Z ì¥ôôÔnà½Çʇgªøh}E¯Ÿzµ#ÚT›>ˆDUÔ{WÈ'¤·‚[Øuû“öÂJÌWôî 4=>ä¹Üu¹ÝÈ I×Ó‹ˆ¥ãdо°/»GSuOû÷jƒ–öx^ÊÞïfîõuÜX +;¦.¯(²oe_ÄqqÔàÌê‹­é!ÔK¸»^›7¡À¬ÑƒŒ ‚Ký8¤›\dŽÇÿH~bÿЬ‡-;§™@t™—’Ql}¾èYU5›ró3ßzåpmé„NìÀ(‰áË¡[" +¬û§à +–_ ¯¼C4pAaúõ­ªnÉl0—å†n’ûwX8Ùx\ªU¦Y ¢ž.Û_U/sP‡Ò=Ü +NžØ¶²®&i霌[ Û\kH¥íimÆERÅ«u¼÷øý-©QÓœææóÞ‹ô:õè½ÁÚëˈIźYuu½ßz|±6¾wnGƒòýaKÍ}‡ÕØsï…@©†Úþ‚2Ù QcQ¾‡Ö¥ˆ‰ Ò[{”Íž ‰ŠR€°qîíÀ{R­M}r ™ê¿J³¸~SžÁóå[C–•¼àb×j„,ÿe_+¸‘Ô»wÏ*û'¨$BPÀ©Y+Fö£óÙ^ ÿl)Å΢8(jßo锄Ⱦ³î=a ²'‰Dy,ð*lͲpZ0W7gD#‹J®Ú¨àrX‰Eeô`û[ï¤ ½Þ-z˜xµGÒ€Â]ç=[wzíhÕ¸„ic•â85À½r»ìáˆÙïZÓlå¹nJnòlP¦ +å¦öö¼ý›Z#8zíFä ‹šô&;!Èp7äâ/Ž«-gÔ`]èfµTÓçÑÿ‡XDn¥J‹Ø©Gí^,H ĵ·›Ô¼Ò©²‘fV uM™ÑÈdï M«úË*Ññ9Y}hñÑÆi5Ý”íá,AÞß„dÅ$gÄð=¾yÄİԥ—f0w£Àï„­Øá€.§ÅöðóM2 ã<å +*ù®OÄïq¨*}i)·¤Sô³FM‘çÉîg°Ú5´3§¯.‹Ôƒ´©ô`“­ÎÔýöS'c‚åÒc>&©0DV['_]5 +ÉP^]¶6¦«‰ˆ‚’1€ YûðÏV˜R(¸,¡·NÐ÷ÀöÌ +£'œø/w #Ê¥V@]³îCÄ&LÍ*µ#ÌDü=µÒÎq+P#žhGÿ…‚CÓýŒmá£è“gEVÒ¨{Ó+‚×MÍ8ÀM(gS@/Kˆ»W#;O/Z0“¨dÐî8=2+ˆ=î•oš§Î¼ÅæPg€ÊÛ7ÛëLÝr¬"ù\Oöëîm0*!¾Ù7S·w¿Á0 }Ðnƒé=Å/?ÇŠ§pG¶FàU¤©—«åoÐãÃF&ÓOÅ—¬Vé•k÷GÍ»’´Ç£‰&B'ûD/P¥ÑÈF›ü³'x" +ͼ1.¨uïD¶•ßZOÙ=2Åi/„G¡Fy^K:íÀØN :ÅèA,"?q"l}9(yz€ÉðÒH|í†n~‘†,„•Øn½âbf|ø%:“ì;]…oíX,v¯¦‰æw øð“ë^ØæEÖÞFÉC`;ÑzÌñD!qÇ!g¨Iß¡¡T¼g•™Ï ‘’Obß¿5ýƒaÓ€¯¾4÷sþ`ëïyD^nÛœ‘*. ¤õI2™9Žþv=‚@QàSÑP[dk‡3£²îŸ{ÄC#¿ºW¤ýOÖ³çý8IĆU½û¹ I‹ªé{DlÐSK$‹ÛÇèøE¯±ÂR§ŠIÙ‡à/!E ÃvïgàϦƒ<͘B3¹øùq×÷Í K$¬Ë ™Š0Dí©^:€ˆCÞ´ÛÜ|è@µÖigá}×Y"ŒÕÈÒ<µ·×#Zl§—.IÕqµEˆ=Hýí,ò»5ôöUh­¯3™¸bRÅÌ“€²B —‚ æ¢)£¸åGZ41²¦Q†bï\ß;Ä´ð9l{; a‚% I@p)oäðtBDç{qÊ”¨‰íè‘öÁú½Çïβ˄{Oþí8À¢ñM¸ïôvïÚÁƒ8²$2e¢NŒa0Bësž—ºóÀ” # jšÒ¡l8O>¼·È‡·¯zÌš=(ÍCTïE…|ß ì›) ú?pö즨ÀºÙ'[A… áÁA»3´¬ÁA!W<{¡s[ ˜kw•T-õâ:=ÄBÎo5zdž©2NÕNgÚÂÕ3Åj‰¸V^¡d©ajfØ……  A<³ì‡Ø=y&vÕ\ [4{¬PN×%`ßö€f¬ú(éBè;ºÊnjf$ôr•¥‰ Ó®@춪ü¹G‘¸ÄyO…÷'½õj9T©"°Yθòý>„ß7• ñYgnó[ߟ¨ ¿[wB{Šüâ8ÅZËŸZü••ËÚHÎ/zìðâd6¿hËÁŃGÈZIPŸœ˜eDÚ¬7oó7‚•I=e™Þoo^ +Œ•!Âç£@Ϲ¤²×¸H’h{¦eC*­‡]_Ó))îu‹{]o•~ÚÔ÷´±o¦“.öX캱£™Z:ÈÁÑ`8ÛÃበl¤T{ºÒCjñ=QÌØ§ê\Ôìa$“Ça®¡aàÔ{àÔÉgÒa2Ÿˆâ|qš¨árˆv`ҭߥA™åÝ)…q¨*¢YøˆÄÞžÃìÁ ½‰­ë^ÕÚ=õ®Å= +Âï½28‰Žv.¢¤[½´\Jp}Hmî÷ªf="ôÈ€-ñ¹GŒºæ³ßG„vêǹ@y)DjEáSöoY,2´û.2‰@K¼¹äÌÎn™:€ð¼=_!º }%¨{OÉ¤å ø>Š™pħdQ·b‡Ì¯ (=ÙrÑ''Å·yä™b!˜ûGñ•‘)SƒvN7¦ÉÂ@×Eë›<Õ㘷½uèSsúød'Ê_vªÏK`s h¥@6ñcÞ;Œ€}—M]é“÷^EBv‘"óh¨È~h+ûõ-Á|LÌS!ßËB%ƒ´Ÿ\ôÈ/L¹/8V ˜uåÎPB,q?b$ sw8QbwôìùÆAQ»Ø3­×‰¦£ê»×Ù‚¦6# ¯Oj JdsëˆY +”I„÷èÅ^E1f,ÝíAª"ÏÑ¿ÈSÔ¬Ä㔄¦T¼gdÀ?ú𻼫Bý÷Ïh[уTi}aOÙ˜Cý¢ +ù†°÷¤‰ˆÏ´²GÙÏtÖðÆè±tr|ï÷*”!íÕäËãŒCú›E™f®ODUVa¼H<ôÎ.6(¦Ïuqé—;ØÜM³þÞëïÎåÀÍØ½Ö!×Rpží5uTdEí½8/3>#Trò~a‘ú¢G Ò^2¡|¤ ~Ñ Ád%µspŽIö¨5@Â;¦•V™X Ø;¢áÝ´˜(IÑãîÏ â‘2¥jûÅqÖaî9ªv!rMù€p%ƒðÖãóÂQíç^è•ÈlXJ„6SÚ9œ²šÄ™P AzÅŽaÏ‹8Ó#Ã(bÙÐ’IÑ¢Mg[iÄQ$À,T4 +' xH$Ú¤*ÔÈQçMZž¦ l¸C¯ð@Ç?Ž–$ CÈINŸÊ¢¤"ìžA$ Ñïó£zZ: +¶úï™ùïOU­ô…ˆ['ŸH= ö#Õ\0+²q=K(Ãì‚ ´ [޾ƒ.råŸ?2J‹„†¾À‰Þ¾}|̈§ WŒæµxD“¯¼÷`åÕFnþ°áß;é$°¯_ÙWbdŸL‹—yi¥ p ÅÒˆ‹U=%® *ÀD’G—”B0 ûøÕº|܆´¢°€ô +€Ë_Gü]l Lüw>z†~þ Ö¹‚°¼UЙ’¬ÂwæÌpúá2P…YÎç ó ’ün¤8~j"dmè!ñ …ØÑãÅ“¢@± H¸=ȉîõnžyP.Dv¹’‹ý_@('¿Æ"¬›û ¶‚ë¾ù0ÌѪb¬¢®¬Á+–šã"=`™ƪÅ3{9±í½ã^û»‡šLFèÔ]+Šô(D:ðìç9š±¯Mgª5tO¯àÂËãàVCê¨Òd|ØÐ)Ó äôiÁiÚ?…”Ï9ºOªìíДÙÎk±2âÄŽ(ràdPºåRŒ<¦×¢Ë‚ÉŠZ]&Ú1ô³× ñûû' `×Mø2 cðŽö "÷ŽBàž~~ ¥Œ¨×Ž` ¤Ö¶&‘QHkˆ@žr#V¬±Qĵ)}¯5ÚƧ"Éö%¢ÜF!7`d«Üx oLÄI¾é¾Ôø†1{f'·]İ_'«Ã×½z¤¾A1`•À¦•Sò°4ì_ÌE#úQF–N#Ž,€).ËÌ~æ„èÁêZ4;±‡h=bÝÒO ÅœàXÂocw6MßÕvÜù2 $d—@9§ƒå ü§êôÏT@ë³…AÃݯԼ[vÊå°_)—sÞ½fÆ> €à\)Ð –±LSÈ»~bGžH0€]ö”öaµÂÝø‚Ppr@N—qðM1/í·Øò÷Ä••lú‡Y–³…lYQl‹0ëd€Žl)A2oÜÖû¡H¡-‹™.?³0í£ ‡}ŸwÖÜû#‰íû÷BÚÿ±bŒ‚€lM*6A-o¶Õtln’¡ÈÒß6#’ˆ×u †ÔÚgt ‡¼;LaQ ÒU ²_¾§AÊÚâÐ}¥Á‹ˆÜ¥.ÉþÁãíÙûÙ'b3E©™ªgMND–ét¾Å!ÈvÓ#hM2ÖëD#0W«ìÜ—˜×“¦±@‘M×,€9ì/ÚÁZCµ—'oô°Ÿ¼EIT‚RIQî‚¶Õô6s»_-ÞQ ¿Q9ÍZ"vdÙйE$wé†Ú‚^¼¯@º«øÝÕH¸*ü³¯5-RT'H˜)Ö3òପžÉYa¤?=3±h~CCô}c«0¼ÎÂÔP8Fîm'àÉrËÝDí¸ ¨5Âa- œ!˜YÁ<ÞwJž¸ötà GVÄ@ûI*õBù ýŠ=`ó™wQ8¦P¾§¾¼ÔÂÀ“úUcZ‚O†ÁÌ<'²tû8 ôî²ÔO/Ò*€;‘Y§©§ïG8Š×ãô€«DÂZˆ3:°`­Áµúv÷9©ä©så‚aAQ>:§²–=fîÊÒ¥ãC5“´ÄÉXˆdn!¥\ÎvÒ‡AP‹@wç²øI¤ÿ–N”lYý…KÞ_ÆZ4Ê^=Ôåd£Á9ŽÇ ³-³{ð9¨ôúùM™4‰»á2T>ËÑ 0ËØ·* £Ÿ9z ãJ–ÿ8.Fd„ðÏå;• ^®Z½ù£c{Š]qÙ;6ÆYL‡_i~ËM {{"\¦‹ÐK~NRe¡±##(Ç:b ­hŠ¡öF*ÌCO5Ýühûe‰ýìÃQàQŒ‰Ç†’ZHQ·áQÂTN/­ÉÝ ï4,°V¢Wð0ë#ṫeÙœ—sñÔJˆ{Hò„òÉp&)WOd>¢è€Diƒî×öàKq&‚jz0ãZx÷§ç|LªÚCˆ˜ññRH¢¥3«T\–Ì^Yˆ+Ö5FG蛀ŠðâÀ”Ýw|Ò´Mè+i˜äöÑòQM§Zð ›q +·ˆÌí /™—¡äªt2~p€çõ!íœÐ34À "Åì`Ó²o7À+@_d²ÿ=Rók÷rH/•ÖŒOR¡â¡Ö”NòÁf6˜ééqä$yt{ðÈèÑ^úGˆ¼&{‘%Ž^¼Íô:‡YáWš5½tx%\p¦®BP*XDÒB»GÉå²rˆ|=ÁR† 6m{UcãBˆmzi¿¬¡s@ƒŠÂ<ì˜]”4•)x!&AÉ´Ñ`¼‡~?ÁúýHõ‰³†up*-dPÌ{?šÕ„‰àïók¯v´K +¨„,ŸÆþ¼|¶ÔÏ@;ÇZÜs˜§û`¤ÕÌÌwÅf&¸”èðu>ï#2«€K‚WBP…“¡·öGílv]Ñ)³3ßSÕC•‡ªb /`¯‡Ý£}®(í-K°ïkP`ln½äÀ‰K’0«ÄH¾Û Lb¸ + Íæ’Q±<ôc_¤ýPå€ù kšÇœL䥧 :!9ñ<á¼SˆçU2龻ꊉ@0*YIøÐ +ç6á=’‡µ‡¾ŒM’ÿú޲ÂSü`šä:˜Jí-ÈÈ wµWÆ5 B} Ê‘÷ª”† ®¦K¨ÄÞÃÇj Î"g™<˜=z±²ºCB™ep~’A€Þ<5ˆHàN䉱?ÔÇs‰J¼4‡ÂA +D‡Y×['îÆãæ¥7±®AÈ9ù·‡â=2ˆOpÌF\­rODN’:)ófÔD,@Œ=9)UY5sA˜ “ BškŒ÷˜ôG‹KpÀk\v͵V&žžóÍ)Yfòº½cúÁá)Øäe©Ó¥n´%2}nœˆèÈÄÅá¯>o…dy„‡\€UwäX*€ý +°ÊÐ3ÓüBJ2Œ,¼  I¼#}wJ»ÄËñ,ÆyŒ^®ZXئCâGïS9 ºBò¦Â8áLiÐtcfšçÌÒŽBú´Ž(€>`à¿CC½²‰àMk+ô"‡¸p‚"²“ã¾eÓ ªä¨Ì58BõŽâ»J©%J~=G +Äqw=ZŸ@§0 W¨¸ör¾°lD™(:(x@ú¦|l}Ãoæ¸KSÀØX Ry<²©îOÈbQÛGÂÀý9[Wxêèž£Ê %Ã:îK4‹¤Ðì7 +Öóbõeí=*”¥o›ñçü°éªG~mØXYq¬ü!3Fà ïy(YAØ&ßD|W™øj ÆÔ®S‚ªÖa `;Ä3–¤äZiÛÈŽŒ„ á|ät;Ä_W$=‡>==B梋͵‡‚æ ng‰!O±g¢~Jdô’ô„uäÿŠ«ódï(:<âèé¡‹Ö©P±jx +% µâD).vݽ;êð¢ä”F:hÃÁ—Ý¥˜œPø­ª˜³>á â˜, ·¤ãjhgÓÍfž£$ÍOæ[iåÂTCßÃýHîM-)÷ýíFm9¸Á-…žTÈ^”#ª¬”˾”Äû«Ä¥#Ek‡¡Ì{&ÉA”@‰°0©À +Xí|*Ö%°8Í8{ÇÖõ®‡ôB‘9!JÞBšP3„ÝËÍ= +}dB¡9ˆ,×’µ›å$ÑxýUÊè'`éHo¾N¤xB:›éQ!—êå±¥öG>ëBª£½=J³‡ƒ iÅÿÄAwÞÈéÈØèàL׬̓kéH,xÖf¸;2í ö ˜ËH¤l¢o*%Xážõ„úmHƒ«›» éQUí̹ƒ[ÏFbÖŽÃ}‡© #ª€.½V±%AWîäê-.‚ÖÆ'œ€eƒ0X6¨G48¬¨­#ªàºw¬U!¢îºdì!ñŽ“©[#ÛPW «ì&ö@€.£ù=Ÿöz¡^A»ÃC ¡¨œfX}ãàC°sQl™`ä³nDª,›‰‰yyß™lž`D2aïœ%àGp~ÂC'K"@(¢”åÀ#ËöëË‹ïn ·ÃÂÛ·ý&æi|,vþ3Dô #@3ÍBŒÃ‰ü»‚x‘GcƒËœ™ .ïU¸Š¦CŠÔ¤Õ³ÙÇTMhŸö ¾&rH‚ÜÕ‚GŠR§œ0vƒdîÑ6gn€££‹Ñ?Ÿ ”À¯axvTövtNÆ”¥Ñü[©ã¡¢î`.YYÛÙíï',i«Ðwxšû áëáÙ‹p÷‚¶}Ž3¢ +у̳*>åô°²/SÜ0=ÈUÑ#=gÒÆ™å²Íh ØK‘áv`X@>Ô¥GU´’R\Ë!‹åäé0âbY‘_'"mO™l +@LsÅa„–C»®\…ggþFMUãu¢¥MI iÎÉ:çMU6M]i_dœÔXH1ö&h¾¼"ÔÞTøa.j5ô'tÓämt¹-jBüÖÞe×–%;Ï{½ÃiÊjЙM»`hØpÇV‹J4 ÀY&à·w|ß?ríSk.ò€@U¹çX™sæ%b\þK£~Ó ‚$ìîðdU‡X#I¢ŠE^) ,°1¬è%ÌG/Û!!?DÇÄõu\³<:¨v±éË ð\À«â½y@â²°ò@ѤI%{’AçQ'p"0Üg¾ªb3ΛDdÅðA…\Vhòm"„ +ÜÏö §Ú¾­ÇA÷O o ;´`j•×O£…M›õ­Ž+ݪ [q¿ùÒ‡Þ(K¡à=cÂ@‹§V”³T{,kÁÁ½ ÇŽìtŽØ3SiÔ:›pÕÉ’W×a¿ð€–˜ç]8PöB9_¶ßn;¯·Lyw ˜ûõl*ü·ËF=ÊyEéõàFÓ•=A¯*oeþõæãˆñ³ÎŸØÖžêƒ <%@¯ˆ{V¯=¸÷D¬ýw¥'€¬²ˆàCà|Èœ†ÍD>°œE\dŽŠðŸUV¸¨è«Ç +ÿMñw°Ù€·ÆA’ƒ›"êû§.´g†çÊÓÃäâÝÝËHkHÏHJ±-…Î{GM£ô7ó$J]¢”¾D—†DG\ÔFˆ@·—ä–ÝFd~¼w<äë’â…Yð„{Pð’‰:¢Ñßôã1 +ŠÑ™3xƒóÌW¡ýµ#Tt ?MD6cèº2VðrßKú-×%¤iCp»ï@õGŽECƱ4<@êFQd4xSf¯]™­­ÀûHú¢¶ ¼C… ¼è7¢c#‘'€½3ÕuX¡!ŸÍÂñÙ™Ë~äv +óE8 Au”bÞ}¼mþ¦Ã g +e´ïâB2Iö´ë|kª„úïaê‚0Þ$D£xX¿è ¤—áRéç5JÄkÄ/ºg¦Çké¤C Øà^ŸÁAb¢0´¯‹sý©~ÀX½íïõŠ)ÜÁ=ÁA6hWéîžÐõXGîY,“‚8 >Uù盀;bÜPy'£Ýë½5Wøòš)ϼØ;Cá%¡¸YÊ99¹Ñ˜¢D+_µA…Nb[g=JMôk§ØŸÙÕ…”hzÜ×½mÞªÁ1*â­_Ö\Wræ§£+ €¸ÌývaVawÐ9Ž»ˆáWÃÉž«Îi„VMF$ ‹r Ñ}²þÁÀ«t®Âœ‡CyÌ@쯭+*] ˜_+•5Ìôú>*Á’æŽâW¹w¡ üý¦E…áÅrY¬•ï "•âs +‘üûׯ£® [,¦ºóô:ÌqË y‰ôE÷È’9šûÇ@¦vªöÉâ&\Y%yŸ•ôðÓPñ—†d~€ç€ÞNK™·D-ðPú—úÉfFaAÔâÁ²½qÛÁ<Ø[( +,iu€$Ó‡; TŸêuTÖ=Ñ3—Ϩêé@¯ó+›Â¤Ã´›Á˜Á(h\w…1­Tô­yVéð˜½?hCd—H}7=lã©|3Õíê·¦yˆg¦¹mý&.•ç–ºD6§fã +¹©£¯¯âíMBycØ}퇉Þí–( ‚«W-âJA]–c>®Ìp§>èŠbô—Ä+:¿& Íž“š«ƒD9]®ã¼%Á÷J„²ˆAƒ#¢¾’ùEw±~…?áˆI‘"!GddFPM1N[vé5pFW“ØâzWÅZÍ˶YyE°ïœo± Qáw€É¤+lÈ´…Q¤YÔ=r©~³v_8²\%c1¥#IÀ^K:þáJ„P÷]õ—þ9Xuñk/‡ÙÒ÷«J±ß@çÓ!Ù‡ÙK³à³}\q”+[0˜ýî|ý(<Þú ïòµ\RŽÓ)a7µ$鉪W“Œe§GuA\ŸŠÃ¡‘-j‹K·š3Wîe +íÛcŸGrFCÚ}O&E ¯yL, p –‹]Øöú’ؽʥ£¼ v&öÊû—DxÖrT#xôÏËVSEÞ¾c‰–àe„’ Šñ Í¡½8…-^»—‡Y‰b…#j§û¯Â€;s)¥åâ“×—˜ü«AŠGÕ“£eå%÷%ï!ɦÚ=ðd¸L)mL2p»õ-xª|ž:~n’ÊNµ°(µI5ºOëo(:IúÚ¿l¿sR{¬£gÞBÕúë~ œ€è„æ·ërôÁM}IJ¸"0m<0û:g_¼rñõ`eDn¼úUjÁä‚–Žçg+èxÅ`I]%ZéŽÆ¾;T!¡$ ¼O“yvxŠµÌžëLsj¦¼×˜ \AüÃ4e›´ NeÏ}DÁSê3³w4Ÿ’ý@ìü4$Ûéž· iLíâ‚|K)Jú%åŸ$o£¢(€($„ïB~©h“²²(¡vÊŽ¸À15:Y¬t×× ¢¸óàÊ òSPÔExŸayª–Üñe@³hŒ|Q”«Ä:öů´ûÅvt1æ=LR"¸¾ *iRô«äö&_@ƒ½5¸õ`Öĉì¯$÷ +ÙG„gºOO£ƒßžc ”ü»¡té  8*ŸûnL.8 ïi¾ÑaËÔ$f÷p@ƒmA\©Z¨Š¡êŒÊýû‡] Sö¶4*³&¼…ÚºÊ)£`¨x]ÙÜÚ÷ ©JþT¤à,G^]¤^ '>DƒtN ö­ájùsꊉ_Ð/“ µÀf± ®•jm‚Y»Œñ„iðëØæC&fÕטèßí( éû8Wfè;Tx"N‰Lý›öp§ø‚œú'zGy“¾.=Û‰˜æ^gÇ.E¦Z‘ÓòÌüù»+&êWûä3ê,Yyà^T0èZ^ͬî {»Œ¨‰m*¸î +³’û­V½"Š3‹q÷ñá…ç7Õöþ^Š‘nuÚ6liÌ"~zZ?£N ‚:êLò½ß&n®±Lvž”<®l¯¼OËÆ̇WóDK njw#YJÛЬåIË07û ¶½Ø©®µH¡÷k-锂¾$%®ÆnJ²:DLšy4³ÐC Ë”gj2÷¤éû¾M|ˆ. ­Ê1c¥—ï^¯aºùçìæÀÿ+V5Á”²dì[BÀq—ŽDY&;¯ Æ(8‰½nN÷šàéiœ¾32yä÷(çwM Po¯Þ‘õøŒHû0<ýÏ?çŒö®`ÑnwµÅ+ÓˆÉÅ­(ÁNiòê&ò˜ó•g!JqF%W¢9E¯Äã8ü;vW*¥<}Óâ·?ÎÈþÙ´K—yþe,{¡¶âY/´¸]ÚB^£Ë$mh¾pϺ#UËõ,Z‰‘òζ'M—Lx08ªšBkéÔñ;.ú!½ôw`Øâ*D7˜ÜK7—K·ŒÙ® ê宆«Gùý’ªe¶Òt&³9“týîô:[oPÒ¾â3ü¹ÚP:‡¶™ô¡$ÔD» ¡}4ñqx8€eT ×K97’¹©= öó̘±¬hHBƒ9¼u#ªpÅX(ˆ/øŽg$dã6¾(×ËüP´ mú—U«-vÞ$H„‚GõZÃA掶y,>Ð.àE¥æŽ™+ÉÀPãõ–Ú·¿– z¬Ràí¿oú’-,Ä©à•[ÀÆ)©VO´bÝ9Ž»¹_<Ò¸Ò‰P×H¯„iÔÏ ;„͘3¥™%ýTmøÓ¡~¼Èß¾êÏoeøpLMÚÊôî¸%"€UÀëö”)UðmJukÌÍ£lO?‚I¯Ä­ˆÀxÖ?~iþôW|Qe¢¨Š{jN'2'j“c‘ù†^LðId€q´ˆ,™ ±„0 ÈÀy'¥ˆ’ò»àr•bß©Ÿ¬Õþ‚œ(Ž_ íjø‚¥£z u¢3¼<Ž21ýo“õú ±Põ§`iÀ?}QÀ0Š CJå %^pDaÀA&¸‡P’@“ÒctÕÚ¯š4×$½í#"uÔ“éBëgÕÐP˃½B"–ß@¶ÙËŒÊF§YôˆaÆ¿†¢™µÚž¨[\¼É`ó®Bž2î[-Fh®W‰Ýá>¨À—3EÌõ Y"õO‰ho·ó Ëu(“9LéÒôAkÍùE׌«"@È{Y"èÖ^äD`{žâvü—9£:ñi…¿üªÁ+GdpÐdBƒ´Xjõ +8x¼îm¯‡$ì åÜfþw½Å¸þkc¥»7hG‘ž¹Õ– IuL¤+]»’šo︃ÞcÏúásóvWxºÕˆøˆ*nßÎkÅH0òsd8·2šû`–>kϸ‚ˆ””N‹êQxc9‚Øk]ë¹ôήN-€Ç°´á–.ó"õÕ/ñ¬!H›õØ«;Þ3¨$22|‚À5eMÑl2ùU¦mÂF„f5YR@úˆJU.+²ÙжÈÐÈQë¿:ùˆpÝŒ Ú*ÊøLÈaFZÉ+B© íù±ÁÊ 0F«Øæ@ËA)>ïsv×ã + ±®È¥€œ´ÌÀj²ˆ;ÝʵWE_ûK›ãˆb©î]ÛŸzs¾GA¸ K²®ý´k¾Ë;Po'‚Á> 0=iä#|Ó>ÿ=‹Úk£bº¸äïmò¦¶e³Ä<ÑÙØÇÀi/ƒÛý +üŒÂ¢–YÍSÕkVFbNVI”á¬O%¹‘±|EÎWÍp/{_æÂOˆjîJw¸ÿ¹Óª!³á< è^ûéYp~ií8Hwxå%Ý·÷’J›žb_¡#ß +¬25P=RBÀ\*¢Ð™rzøð¥«z†xvúÎÚnw]t½œ}À\Ù\e×Ê£Ž£í!hU_»ý^öáp‰9ØîrïúD‡- Öq½dý+B¾|(5ÿñÛ¿£…5Ó9#¾. ó›Ê;;uÛ¡vŽºQm2¹-jØÝKµT/ÂEÈð™À‚Ñ[aF˜’™¨8~r…£r¸mèa¨©¤oW6QÞæöùê÷÷Xeí(´Z¥¨=‘;J*fC„~fͧG¶Ø£½fL‡ZGF8¿hO £_gB ЍQ߇U‹¨1ž¢\OÕ™fȨ8÷rò·§ô¢ø÷ ø»H€\²ÇùKoiƳ™‘¡ùК§uL–âø˜0Üïè^%ÙòU³D­Šz^ª Fd«`"Ø´ƒ%ûÜÚ1Ÿ²$ÔÕ2s`æHÏ>ÿìU]Þkßḭ̈úzn¶tTt‰… ¬p?5uß9Ë}çY¿ü~ùÄ™K`mlÂyrԒDs ªãW<à©ÂvÏœå3ÂïÿáTø= +f,(“,|йlôEûCª/q%BLMÕÞ•âÛ‡$]ºC‹^šÌc§Äh‘k,ZôÀú‰Ðßœ²²yg^F¼íUr¦¹Þ¨;ABFYŸãÃ7<á¸?pÈmüÑf¦Rça>üÕxøË(ýDVüDdŸå˱+/MöE>YCNu†¦¢Bš>5ÅûˆxŸ­cðvýÅP{))@ÛœBTJ´›Ü£8ÿÒº×Ë%yŠGµ/ÊkÁÖ +žG †±£ªüPáN°uÇ“ÃøâaMc‚×üçÛ‰8ç +þÌç²ÈßÑ»ƒ[„z™ˆ‹D„AØð+k€_Îydê(yšisó;ÚQ Òþ&ç«k&Ì-æ@—˹>è[‹ Ê&wì¶P‰Ãü)/òU/òÕ?#rKFüÌ€ZGdé.h&Q$$È<ɺÓùE/‘yÏ¥ñÃGÄÄ®šWì3 +-níÑH¤ÔŸ„£Ñ•Ü7 +zGW«Dö/ë8Fò¹fdÜÃægWéúó8GÆ3|oò™UžŸLRöàø™„bæz„øC®½F6צ•;߯¬è®nô-rV–ňêíMËÅó{Äû~B«¼Å>žã‡ã Q&ÉŽ÷ g¿PØ Œáø)Âú©Åóæ>Û¯¶êb'ã°¬(Ñ [ôN–ÄÎR¥Cozªd®Æ't.gCµ|²÷ÚÖæ¹x-¸$+`i>óª}Âo¾5Žä[ìÅÏzq)h‡/§Oà¸W —(ë¥cKþÿE‘5}jøà„”¼kkz©ét²%£äÍÔ;dÆ;ä-š‰ÒïîAÒïÉqÌ÷EÏgøàn^2u Tù'¿ +O¹(An–gs±"¾ÚŒ-:Èèí{/N1ˆ‘á\Ú Ñ§²Md +}ÀêÐKçôMxœ1_pVÀ}~e)]Ij~ýŠïQÊ;˜Zž(?6u½U C”–Òõ‡ˆ˜*œíšÿ5tâäÐ1yLZHÃ`˜ªfßý!(Jï!Y4ùDÍ48S_rœgÖt>ÔEît韗pNnÕ¸l0± 5€]†€Wp2Öã„î¥ÃD#U¯4ׯ¼wä|S×uùè_ös•lÄÏ:wäÌ™%.˜VÈ U§R ‡Ö—6Ò”˜Ï6Ñxß…‘µÁ.Œn½Š¥·áŒ~ ;ÞGÄ ¢ðAsk½eÏG”ú¡3ú¡ª:G:è¡ðéÆÓ1¤yþ /)zÚné𥨠¯ñ%JM}χ–£éL½ÝÀ 1¢ƒBÙ£Œ¦Wû–ìõ§Z„- gÖ¸½è,÷׎ÞùÞ_waC´ZhÒÃŒ6ß v-ê­ß#þüñtØW¥¼é÷ã\óå펮lè‘AYÛA®ñ=àÇíñ[»I×jx‚”¢­pÆ —‡ã:d£J6Šñ¾¹s4YeÅ.¦}ÌûS 1j´ [€9?ÔTö¢n¨ÐÞoZjQc †Š4 &‡P äi-ª1yZIÃ?”ÎÌ(7û!õaJ1ºîç +õ·è#â«…äÊýýé­åG‹V‰ÿR÷ þ‹¹2¢Ø´÷nun(¨ æÈ'µ×4i%¹"jÍ7ŠVN—ª\DZ]vA®ˆUmUÄJ½©DÆ¡Sý¼m7Æ0¡q.ô´,Ñý÷8U[Žœùwè¤hÁßO¾ãIÛ‚z¯_ÇȹvɾžÜ˜GìH,÷Û†èñ7S©…]¥È¼¡ôä®/„W™e#LŠYvI]CA?—ù· Ò6pöe/ú,júµ¦?›‡Çnõ~xÎ8)Ô`%*p¯8á¤wº©³<‡‰ +7„i냨…jH%ÌG‰€b@¥V\ÀË{ŽsˆèA{a%{Ÿ_ÇÕ÷²‰ágŠžÈSñÈü Ø9#Z*Æ`²—“ìQ¶ª·‹Ž#¹K*Õ-‘éÔµ'Mf HIò–¿}…<ëH`$»+{úÍ>é—£ƒË—VÍ’e<Þ”S%D“ JžöÅ),€ñ}FàsMqŒÞÍ;¢1Ê3Д‚²ñ¼wМ>J‘g׳ç·s\ÜE´:8ì’¦.°(¢JÛßÐÀaǼçktD%þ¸Ž¢ Wü¢ÄÂòì! ™Wœ¦£dÝžÛ=‰WYqêó\…;Ý_ûxõãž;óC^øŒªÁQÕBn`¼î¡Œ …HŽc3–„H1ý²;«ÙÆ!Iž(ÕyV9ð%ÐÀ¡w¦1ñ*:/`²–ÃGv!r\þ”‡ŽY€ìªnCá¿^C­'$m¬•ÏØ0Àn@ë”ÅÍà übMã^Ò ¸=,ÄC¡V›Ò®äv›‹Þ^^Qª®@…Ò Ù¨™(€WD ùô—ŽYF¨Ë‚¬ß’¢W#V¾ ø‘ý¹ÒDïyè #/š¨%‰õí:ržÙ–‹ÚõTRæ#4®ú&v¶ “|ÕÀm•´j_wF¾Ì¾¼‹¸&p¬~RëG¼¬[ܳ'óªÁWÔ)‚ˆÐx´h|•Ê[‡öŽl?ŽÕÕ6!‰ºÕš¡ +@™w]›‘«Æ6«õ5ßN/E÷ø…lôú¤Šôeo+-:à ~Ã¥÷#BY0ª=ZÁI9¾G¡›I3¢+U×åÃ;¯¾„LÃüˆäŽ6âï¿A®=\ùàË žÕÊÇø±~øs¨¼s$g²³†Óë×wZQ{QEQé×´B©Q{l×MèŽ ^X±¹·úµÏÎóôBL—òÆW$ìŽß]ææ?©1Nzª5ôZï„ ¿Dç$ê­Tå4Gk_\öd-þ`†}8`Éþ•öI‹²R…‚l"£'ô‰™8ÏŒ†4¢mRÜÌóëëºÃ€WónÿÚœOtâo¯Â4g­r„œª<ÌEp>wIŽ~ÿ oÍwæ÷ÇŸcÚXø  ƒ +Qt8;ùúOÞÇ™û8ß~àG$x— û|;fɼ>ñ}ýŠ>]¼v;²Y¿_0êʨú"ù?>£DRI›JÿÌK€ÒêÞW™1HqW¯ ÔY@¬ý=.ºŠÎ‚ppÄ©Ç.Á\ç9Ç ïˆyLjfõ YNÔp…Š!¸tÚ9tDŒ¬Q$D\¦àÓýöiS¬}GCæ8^•µý‹Þžé]Ƙ;¾I,5NQP®­NÃŽnê@ré[#z’è)Éã(¤?¤ßó×ñïWô”ÄÎÅìùs©ÖRü#(^ñ÷,w8þSv‹òª ¥Ñ8¸ßUáp3J4 Ü—£ÏåœHY`ßûYT˜ã{ú ¯ò÷e7)5­¹Ä’f]D{(“|&c™Æ¥90U®ýÈ&ÒclE]ƒâÃG”*?—¶tæûޏUUþü€fä“j¯¼¯6·¨m†ûfa(o…óq½ès +°Ë,ïšJꬥØË÷ˆ¯5—04¡œÂ|gï{jMÁl½zÈt çt83F ¹Ü;±ærï›V'@0jåCz»2ô &’:$Çm mŸÊû4gƒD(uFºDÌöµ6µL_VFdéÛis÷ÎaÂGœÈåDáñ5§ÄF°Þ/T;W~‰ãŽi‹ÿu»êD‹§I¯›±ƒó€Ü ~”»{ÑÿâžU/B'ÏÛ44JkcTԖϼÊÝ>óŠÈ‘%ã<¥JΤýº»`±*1öψ” ÛAEÚù‡ãÀå|µb2xCw™ ouê?1MÅ*V)>h›±¡Þ¡ê +üx”•g¼ñpü(‰†´kHdG@ôØ ¡…((–Ž‚,Î]„0˜þSÔBæÞ·ëèQU†Ù"ûÏÇ*c*Ú{@­1ó +ÇÿÅ€¹Œ©ðVv„z½ gb§~'?g”NRð>³ð½·àZzî?D´—âŠæä{W>£ŽÈ0ã)¸ž"^‡'~^*Neä‹¡#4.Ó3%o“kxÑNͶö[sÌ·¬¾2Ñã—#]e”ˆäˆ9ÇÓÊó<⇠c¼?{y[`û +ºRhfˆÚþ²\“^Í­£½v6Òò狌!…yo ­lkÿBAžÛ¡?êóïá¡H‰5EUé +ùWin´8VÀ+(Ò«¿×4Ò¸—ÖÜ?E`òz){ %ù¢H¿EͲ`÷¢ÅéÏÈ8iWY6ð’AwVȱþ‘3.«^ë$üí8Gñ™¯*÷Ûƒ"+h¶RZ1PÔ•gô¼÷òï«‚Ñ‚Z#ªký°£èpKàoëûÙ]žZæâÿªaËt ˆ: *ŒèK ýAªY'‚g»VrÏ'\¾JÏøR øÜ¥Î%Be¯©pïΔ¡5õó5€ Œø‘wMœŸTü’Žÿ/<Øóýü=ÑÞÿã?ìÿãúí_ÿw¿ýŸÿÇ?}²öÛÿ?þÃ?üß¿ýëÿáßþoÿþ¿ý·¿ÿ¯ÿùïþíÿówÿË¿ÿÿùïþôÿåÿû»ø¿þîúÿñ¿ýÏÿõþßÿ’“þüÿûßÿ—¿ÿ÷ÿíïÿÃßíSüÅ—{¾¾Á¨ü¯üïýØísíÿ¹ó£~P€•¯*=Â}šˆ"¾ĵ§Å,FRîþmçë\§Åø·(%?¨;wh\#£À˜ níð ÅŒ˜•Jò®‹’¿="ŠUSHF§ö!&pO­·@uỆ¨/ WKPÿaã„ÙÅU àYêwïн8TÆÃíñ#ÆcÄΔ¢Û¾–ÅžÊ1ìc`æä©ãGŠ•R ûT -*–:í?zÞq¹FB­¿«½´ª½Ò™ˆ1<표`ŽHøtØátüјR™l(Êçò…tè>+þ{ϧVËø<º—;m‹Æ«hè{w Ö´ßÕM€6‰¨FC{¿:ÙÑgìTÄßwu^÷ùb„ÝÙH€g΀ÖZ4‘N´JøTüZý|Ò#Øl„GÈ_Cƒ,]¥Î…qyÑÕžå":#¤@ö +ëíï¨âŠ(ˆ‰ÂR!Q'ðÀµ«Ä:ŽŽƒgØÿþù³òÁÔ{¥Ó•? y‚>[!´Œb}D=L@("XºFªšÃ°ÉâÝ3]'§x‘.ýªo`›ýÈ'xúZÍ1±³€(¢DO4îeÖÍ7ö +òÏ#uO$êLÄ:¯þþ;Gmößj]ÿ¾þ-fòSÐa8'Á8?’£~ˆÀ;G—iÛ9³Žÿ5Òìf¸Ÿ;bðûyÐ8"Áw ãa)ÓpÐðñûž€ÊìúÇ_=ÙÑ÷¯^Ù1"BE—v`{bB(·I§é×ë³ê‡t¯i-Ï‘¨è^?¾Íùs†ES+úè^»ÔhÒãWèAgéÄ~EÑËÅ©Inœ_gêx Ñžž¥ûUä†ÁÜ2Eúy‚fJFÀ³  *ÔìŸ +Ü9Íê†ú͈$Û‘q–î0ЬöÉLæa%|#nغ×OÓBŠ'x”ï-ùEªwÝ¡·g{å Ò¾€`F«YÚþ¬¯Ù- ¨‡LNʷϳf¬"4²à½ÿ~Sí½ÄMzÕ¬ÑÀ/˜£4Ä“Zøé!þˆ¢©Õ"Ä.:Ù;ˆ71ÎïXa£$êçèoÄPJñO¾$= {ÖzÙ]tœžÐiö ¥6÷:wSnü£—!¤>¤å +zÃÌÝØ&àú1´»TÊòd½ÃZDáÔÓR“zu’nÊÅåxát +>üsá=;-^Z1AN-³ëžF@Ê&"B_O9Ë숽(Þu&š%D¡dÞ²AŸd;cCöa>Ë»öèõÁ¶ŽØ)!ÆŠ·Nb@0ûúŒpmñ™Fýäº~:½n‘ÚC÷ˆ©f¹ÛÆgÉW×Iºr˜òhúçJŒ‚†‰È0’´g^FaÈS¶Þ·‡ý™Ô Æ ©¼Ê?NÁÞd9”ÿn‰í„\chOôÀÁþcÓZ 6ϪÝOÀ»TmñP…¿ÂË2¿AUuå hö¶mçªÅ]¤ZñJëÍ¥è$£ÅÍÇ“ô&s-ÂBØ&Û¨v}ø„^ã]7{­›GŽ@&X<† u¦'¨h/n^NŠÅd¬Öñ)!‚ÁQ"óÑïP)`æ?NܰÆ%¤O‘uOôÝà˜h `kúZB+ gI †RüØE÷òv7¢óN +!Åïv»¦sÊ!: >Üû­ºt_ ³Æ—שé |“Õ•óŽ5ÇuêŽ.µî=û½ÝïÎŒÝH/ð#^ÞãnY²Ñòì÷ÿêÁ÷»{î +*^T¤3-Ñbû<.ó,¶Lƒs>?ç:Ôãx´TëæŽ<þ€ª=pÉë [¿Pý?DÁ¢c,G … (@¡´¤Ú@<£•Üx~æ +4Î6N[dàWÙØŸ +6ÒàÕ‰† +–Ç`?´<X–°“¸ðñ \]ä….%wÙ\zofÒROîÙ ä[( ÎöŽÚªC3~'§ŽC¼1™fV†9ýï'ÎÌЛJýœ?šŸ´ð=ØX­ÀГo5R°wª •êæHu3 'ôœÓ + ¯o_QÍkÒú›Oµ¡jï=d¸€V~2x=•p‚†u«Œj3ŸÏçp¡;Ñv™FÄCrÖ)>d¿¹ãëðtÏùs‡[|Ú]ã ìÐAø]­z\Ä<ßÀR‡C0úùìÌŽth Ô­™BÒÚ;HQœ‰ˆlü?Ÿ ½•œd ¼p–G±xì”ìÐoàþLÖ,BŸÂF£â¶Ÿ`Á>w +Œæ¸óhš•´F>ûÞ™[¯ÒC9 LáGSÔÑ¿È,G9’œ›ùâ’„NµÞòÚUjú$Â}û`0~Ç£žª„ˆ»%S³¦‰ðë¾JTŽoeZè©øð¡$3ßàÁÚ‘ˆq)>ŒÂüi„ +ôzŸ•C¢ÞLDkóå[S{ BÕERQ¨ä ³÷Žˆeödk)ú¬“2”0ad:]c¿ ­oGÓòéA=D[Þ«¤ :í3R)OíêôŠ/é >Ô,§çØHh¯ò="ÃO*ý¦‚¬fŸÇA»Å»¿_‹¹b[³¯åvטô3â;ü}¼þ2J$-]A==±CÖ9“˜#*€"A©ÒÙAFùC6Éã/R\?ÑôoxÔ bùvùC +;úT½P.*wÇ-ÌkµNŸÒ{ê<ߣDSùBí•OÕ¸›ÁV èï#ô=ÜP'$Í)ZÿŒxŸ¶Ën +=—«ýpœ‡ ht"glxN9ö–sÉÓA2>*í” 9¼¥nj«MžZ:\‚zŸa}!‚÷Û1Xâ¸L0EùpjɆs +@Ûk„jdÌß9ýlZ\݉’äÑ‘ž5 +¢¦å=M¼Ôûˆ0!¥4mõ“’8õˆ.åLM’x;ßYQ¬‰iÒú˜‡žôxö¶ÃÇ‹E•lÛª‡MhÞv¡¾ä&6ûã‡~Úd^- z,›÷;#3ó3âˆQ*0ªû]q¾}Ú´ƺtgiN*21ÛàW"ç²ÄN`ïóûç¹VSÐÃ¥1Khù/ŽñdþqxÍóM‡›Ç~ÒÛø1beŽ8ÈF¾îÉ÷(¤pÅBî'ô¹òm›g;é\4ª{Ó•—ºÓQ<½ 膜Ÿï«™ö r¾çüá8<áèm72 ʸ1?ü3uÕ)= »‹·Ïù=ê(K$$Ì›í»^ß”6³3ˆ#*=Þî`äY=ö?¤Íõ-"—ìŽØ #ïÏãh­8ƒ±Q騬tŒŸªùUNç/ŽøxS‹SÑSú¦ù0ð–Ãø¶+j‡HžÆ‚Áª8³è'¶:FƵŒž¯3É„µóH +Û8 [ãûsÜ?Ù0øg|ngp øsÄùž³G€5¬HìÛø»À!-ê)šìŠyOv±N«E=ïŽà£šfÒ²ÀõuÄÕu'åPQó3"ÙF“J:Ckð‡ã`t™Ô3ØöFë$)Tëa.þ=ân‘ Ð +­÷¯ö[Ôˆ.äÄûJ*Lk…Þ–•ÔŒC¿P8¿dù[ïò±š¬y¯J¿7YÛ…µg¢ÄÊŸ8oÜgƯûäèûŠ$À8ýISí!3žj©ö¯ãºðW´Ñš²óvÂyË_óúzâå×[i M=žêVøÓ¹¢A³eG|ɲ‘ŸÛ ÐÓëÎM§c·£0_]ÒÝ#„e%ô84ìˆðR˜â{1{çL3}FµxNNL®`ÌHBI–¿àŠ:[ib`‰ð~ðõØ^—&Á¿û+GWÔ»R ÌײœžHÝ3PÓ‰2h§Ð´*øñé°îÅ 93ÉëÐüyÔÃ^0þõ´Uækû5O•÷X”Yk~c:œ>+MÐ@’ø’;Exlå~ øó;LBá2LJÙU²£i›4¾Ž3/ŠE“>"~Ú?‚P9¡ìa®ÐVÙ=ÑÍß[?‚Ú{Äwª‹b%…èwM튱b„ÊÙg¦^»c½Ã^‰&ã©?2âØ¯¢X©¶ì1ŸÀÆå¥ÑuÜp¦'ˆ”sM¬¡„ÄSŽÕ¢¹$á;ÛU^ BæÄ ‹œû<_ü£-¤žµ›5­ÿúŒšƒŒbÍmÙy®”C`M3…«PŠþ׈ûÓW¿ˆ#š)È©>¼tr?·I†\Þþ.åMîKEŒŠxJÎ^£líeÌ!fÒ#17™ÎíÞõSrïäŽ8G9Û›¶/Û{D4)7»€™‰ÐPq”ndÎÄéY{:ó÷eTȽm/ú‚6ÅH‰xzÄóñxáß;wX»cíu”ELêÌ'u¦½%·¨ä$ï:íÓ¥ˆ³HÅßä88`J«Äæ>á1~׺ëN'˜o• @ý¾X endstream endobj 58 0 obj <>stream +´ô÷Ò4pé+¦i .°gî ×m}}ïW*Užxj×L”z§;ê* 6Ÿ¯#ÝHö?—êôž&¶û¥=ÂâSm¢?IÜ3ëh2–[äa$f© qlq¸@¯ïGâ>½‚+êë{mE û¿" |àqrÙ;Ò²­îL6à^ÿ”øê*–Ì4X%%M¦HºLk; ƒÚñŸwh  ž"`~Fá.d/TàTx‚èä™T6êÊ”Ó9çu«%]…$aý…gW;„T£\ZÏðÊÜj¡] \Ž9³½vöf2an÷½XÐãÊȆ@‡U7)~àyf˜üæ)! ? cm¡”Hú½´]U2ÅàsU3z£+z%bfê:åì(l'WL rQ¨ûgœEa' +ù¢âé·)#Ø\Öû]#Y†«üÏ!Açaÿ{ÄSö1a¿æ°GŠ4ܪD§c G5¼Eh‰`}OÕ-fFŸû¹aÇ +yÉEŒ¼Ø #™óÛa®3a´®úù Å5Ö=Ó%);)ts£5„Ä—¡»ƒU(9¿ãØ“ùd½–wŒcžSGÔ(…åÑ™}ßÜ''‚XƉômzƒò«Ñó©ǥTë÷.׿½æ‰ûWK—¢»KYHü]U«Jëw,ºz(QÎÔ‡ó‰NÇì¯å~>"8vŠ¡SÑÄszÊêG°B.#ß?HC¾Ä*¿ÈæÊ¶üvþþûUÄ–ýòÝ/yèý ¹hܧˆ¸è?ˆð:‡ùÛ5=!š ¡Y‘NùÞsêEþ‘{v©„öë"Xûyo=P ²ÙÔwj'F©½õS’=¦ñ/_ÿ3 +·h:þ],J|ÙIï#÷dÛ£"4}Úw|ånfm´áׯ«~ŸÄ»´nì4¸Ä»Ã‡ºqž®«ÆÀçjìž)§üXëî¦Éå×iÌbvã§|w°ìz#>Ø T$‹;ÂÂwNOÝØâÎ ‚ˆùr7‰²aG_Ê[ކ’]3ð^®Xüze¸eØg¥O“bÔj— î·ß#rk¾§mÇY3ÃãwúU¥í¯‚ÚËú ðyÚ×ëû-ˆúЄu sÖ·]õmù&†ó¨‰¡ŠõsméÁ>ý3âÏ‹ç/\ã‚DC‰Ç†j©qFøÿ¡ø¦³-£(à¥-ñaJ +\Éöü,z ¨%Ê‹áY]pÕ<˜îþ¡žm/=Û²$úŒÂ’gf +ɬ_@Q^OýÖ2'%óíz²@cì$EôºÉ3ì ô ’k”2ø(rÿB|^@?Ý'Ï@­OŒ*Ô˜œ¦ïe&ˆˆ˜kW\÷ëLî“Ø=ªŸ_Š$òt}}<rDLgp²Ó%?¤ròLBd˜·EÍ•Á'Ǻ_xSX¯âw¤¾¼mˆD[ÍéáïÌ 5g ©ò¯F>òù!â¼Ã˜lûÚœõ‹>£0KVÐåäv±Õ:…– fÆ;°W¾")«^šŠcß#þ\É’ +áÝ*äüá8»0† ’@7•sØ%õ{*Ýã ‡ðí³à-ºŒ1ù* ââ3²±߼Ⱦ#Η;?æo_+ |ðv|í£ Ú"K‡•oFˆœ:ë[‰™»Ë”Dã«×µ¹Ö¯Ï7Q°‰‰’VOâ¾DEú‰š³DHÁ´@šÃç3™Ó<0èn#LY5D}o»ÝªÝŽ·bT»°u…=šü åµ2%0‚>ïöSX>—t:W¦£[Ž1 +͵əôK˜62n5GÑ%“:gj‹ÛzÐôò›v"ÞlR~8ïº*PsJSê#H­\@‚Š”\˜«J€ÃÆii6ßÑlÛq `?œ÷8ûgDjÒädq¸•âû~œ +0ÊLZD¸ÇE’2Š$ùµ28gK'Ašå|ëdŸÀäíâúFÛVž'pÄQ(o²¾q•«ù¥É’¼„µ·¦pR“.y+«ºQüõJÌQ(--™ˆÑ#C'm”’´)Ýîz„ñöåÏó¼Ó*</ýqEêêS·—–ó’1 ú¸‚õÞ5í¼Ö‹«úuÆÚð©N›@+áü ®’÷DvI“¯kœ‹6`¹F —ˆö…¤ëê(ðko²y?tˆxö™ëasm0±n­ÔÄ¥v±(% Ðÿa…ÙE±tG3‚¦_s„£ £õt«”n…ņš11Yd0ï @kîÌÓs [ MüêŸÚÿÁ¨vËURȲ3úÛæyÅD$f»<ÃYð‡ˆa¼‰ÝLJ<_+îÄÂ"H×õ…Àv„ÊÛMlq˜1â 9Ÿ9ÁJ^ØŸ\¼޳_3pÁ»ÆÇ +Ïï'„Jˉ'mâu.s±´¼/H¿ ß©b>ŸQ[ß'ÃÄKºü½ƒß}ŽX3ÖïårÅA„GYí‹­ýù)¢x„Óh/Hø{Ô<¢´ˆ8èJ`%wL4/îOeY6lMp®oô~Ôž%¥iô}p +ÑìæC¹¶oô´‘¾¡—Ú{¿x퇈ï›rÕߣ{”Ë@+7‹Â0ûs p…;`·/ÏxÒ5I ûD‹b} •ʧë¹ô;⟠Š~…Žr6RQà‚ 7aç +Á9\1çØ Â¥¡j5&Aw½ “ÇFQA•Òt“]Càõ቞© +7tõ¥>–R'{Ë’ƒúïj†‹’ä#›žÀ(F·¸Ç"! Ö 鎅%@È?“¹"JÁk}þ{¦4+]Œƒêñ§¨XÛVÇœ­G¡+éh¯àÈ÷º…A8…W¢á#hDNén=™.`‹|ßL¾àÙ‡ÐëÃ~]®3â;z½ìš§Í6kL=Á|jÜAyŽqÇ8{TM" ¹°F}~ûc”ß‹”‚ÿIDoðÎO7ïå¯AZ—F‡ ªpÜà.DsÿSE‰"*¶d¯!oóH/nÐôRùqCM¸Ì‰¢mŒÈÁ™cØ¥µ÷eX^LK™%÷xŽÖÿF'•Ô ¸53¤±KÃÊ=c]Ð}+FqËéÈ£B®d+oDŽÂLU:²®g;':ñëG?B†I©ÜŠT…ÅwÕÏùšêî—…¨eìñë([5<êàjZ©+ŠäðU®8"NÃûßQŒÉPœBð®á()6 +S&;oCwžu‘-öÑ_ŒCWuBi#¥)‘ŒIñVûhwoe¤ ð·€/¥S†Š{•Ž/ã©­ƒnZ”^PrâÅ®à¶;›ŸÒ²×‡NêJ °ÆŠû§=-J`AöHcWÉ.¦íT ÕµP<øXO[×_£]Y‹Ò™«ôÊ?WþTƒË{ñLÇãTÀö7 „ë×ÈØÃŒ×oM”R¾–]¦}wÙ6*b)ÿhˆ„2ŸroÜÔ^Êôî¼9•0[/F:€î)Mô.n à¼)+²Ä\`V mÚÒLÞ°/é:WX·ûMZoÎh\²ôN3ZöÓ™Âì@˜éþÀ™Õþ’‡ä ©Áè퇷Ljšu Æ«»,Õxuo(µS÷òÓÙ+ªÎ<Œvg¯d;ÎÄMãLä+¹PÓÝ£¦æSwµEå|l >°õ¿@æ6b·Ït¿æ¬ÐuE`·0¨i(Ÿø«ùµÂy@W1v€±µ–¸­–ÛëÒ–ølš8¼Üt0§aÇEÊÖÃOPÙ¢r"o&oÿ?z˜öó!ð}_£=ݸ¦ÂHžŠóºææ8`ð‹ëpËO»Î]9“¿u¿ûóeQàak&²×P¹Ê~Öq|Y®'¸’[Cz#lÛ¨qå‰àÖÂâg¨·?@ž N02Ì$ôæ’C+ôÕaxÈKC3û(ÝÜXò:ïjúêï}?Ë_LJþu!âbÿB\Ñ\=„ûÚ ùZý3„!¸ÅÐ@@XïUìŒyÓÔáÖ µ-™WŸ¬¨}yј÷Œä=ºaœwu¡¦VfäVjîdé{ÇŸªQäß©Hþù,íÍû~T\BRsï»ÿ2#û@R…òî}¯"ÎÓ›qWf8›Þ»`‡û¨‹¼þ«HEû®ì¥â Q =ˆZ8™íç&ê~1ù­m¶“1 ~>¤† ‡ùÙ¢ÁÒ=UñH„i(jÂôG 䣀Óð:P9‚¡õž)ÛH0‘Æ5m´¼êL<î‚™ïúë;š3Ý/Î. +Þˆ5¼bdmösS*ȹ®€RDgT4µéE “áq˜üäøýRE#W +ËØÉøqÕÒ1zfäûÚ:U÷ñB8Љ†;G—-r~UìhrÄ|•ðÀÞo*·ïœ«äæ«øÿ€ÕÅ¿²ñò“TßÐ'ŠPñü"Ïjôއ#‹xàáLaçtG„sÆä'g‚“¯¡Ý-Ū ;õ)¿¨þƒD.²³lð½Æ¦|Àóêmª`¹³ìõÂåZ èª)Ùc¸–Èw• z›1ÂòUKh˜’ößþøýøÓ_ñGôø S¨7Kpø JTÓ:úOuI%®.ùoŸG\ÓXІîDŸ9Hà±”¦Ò$ ®‘ÜÔ»ë ŠáŸëLi5nm  +Ìs‰"7Èq¨†P°‚KOõÕ±r^=loßFH>†‰÷Bm‰ ŒÒØb¨&ôé\8e»Í$™•WU0 +Îߟ"zN~áì_ÅÙ•¼f¶¦=P똈FM$ŠÓT¶¯±7íýÞÉŠž¼iõüc ÐÌWä«÷ñêù>¢Šµ£.¿Q´ôà tÛ@á%6F¨ór Zd£¡¶ "Ì!Z×â—ñœ¿NDÉ6Ämæë(º‰…˘9Ñy¼~O-~OgË/1™(Rf 6¢£±ïÄÝ~1¨a™Btæ*Ú®cÉaÓ¾§iO +ŽÉ%š³Qö/ëTÚqn¯‹1pt6Ç^ ]÷½°Waôl3k 9ò²SÐðºw&dÜÂñÞBu¯k^Ôsyvj»S£i£²l…k¾ã•âàrÅ2Ú¾Ëdô ÑKíÁj«:bëyÏDî .â¹âÌ ŒæH ä.À!.o§ú…¦¢½Éˆ‡›4ã^ø¦oWÒßþ½1’cIJá£6ó€ª÷‚ß1Vq|0G +4Çôu'«Ó ƒeèc¦|ï…é/÷|ÆK `ÅEÓÜ@äՠ׎fÒz¥‰XY± t*‡”þʰy¤/4A‡jòVý‘t9¢cVRG¬²3ñÈ; ‰ò5IóôH.¹ÿî¯9¥Â ] ×2ˆ_4{̦/-uc Ôšä‡ÚÆŽ7u°ÐZž€´£½ÚÓ&ì ¦’ Ò&ª w„ZÓyyö“‰#™RãVÊÅÐð^‘¨ª#÷Û~ÉK¤Et +Í“! ^•Zä(©ä‚Œó]hâóëÖ8kFÔŠ•AÝÍWíJÈë.Ïϧ´óT]x>ãõN´Dÿ%mÕ¢ây–¶€íZžÊK?€0 >æ1¥ÓJ³–^ÇÅ—àt3~Q«/.™¹ؤþÎ+öö9±{†” z1&ÉþùŒæ¯YÓ V`Š;$×´ÝÒÁ'& ÉŸÐ`˜(ò\±#€±EpHÐOÄY, +¼ž*[ÓHf¢ŒÅWtCÄGŽ‹®Ù(1…¥ph¢\7¢_碒¨®K¶ˆ&’Ÿ˜¥($ÒŠNMîŠnˆ\ôÀ9oÕÚ@¤ì|eB°¹=ïܯ‹Q~áÅâgÄãÄñlËã%~A>(MsÇ ûUb·ãxW•Öõ€EG\Ç3½š¤ –`‹3°A‡â¼c#!:žJZ\áÔkŸeBuã\YO3Úq€Taë%ˆýN`Û‚Á8QdyT¿c#óêÃZ)Jï0‹÷ñÀŒ| —ÏÉh™©ÏW™"©Íð)oïý£TkßÛ;;oL‘¨‰wf«R”xtÚŸTDûqU+lï(óër0Ë¿C/W’Tl”QÄ:Â8ö-¢®¿-!v.àÜò"J’ë vVceš DŽôHײE…2ËIîÔ¿ mŸÌà&¯‹Þ‘ÜšÁ=›(Ügúýw"ɪIíípé x;/$gšÍGEYªMc(òDÀ e ýd¨°‚ +Áýuüì•4îï·M­d„{övè=»Man´‚@µÑ +ÒÓ<M}ðLi}Œ®Iã)ñ0¶“… tÝÜ’W÷hß—ë€$’V:yÚºÂâët!»cRÒŸ•‡&:7´GÉ* )uôîj|KVÑÙÕöfÞAšåžåXeåÙ7¡!Ëq ¥Á+¬,Ô,{1í瞨°\þ¬¬Ò?°6ÓÜϱKÌ|Š¢—§¹Â|Ù?ÜI3v”\1e>ö»Bü/Aþmô÷!¾SRî×¾EÆë)™'`ì:WéwÂ4:9̈ö kë ^I¿Q{˜ç¯º×åc_2›Êý¾t+ã¸!ÅôHâÇg.ßÕº­Ö÷Øk)Ô~Y“¹ˆâÛ q.Ö£u¬²•ÖtÍtÈæ™Õç笭EÑ*ŠÚ¡ýjº^5ïVŠa&½Ã—;¢TrNÿZ™ºŸ‚á5óQnb? #κ.(g)¡KîQ.~HQ;„Î%jLº¸¢G èÙ²¬ç‘«˜h–ÜFDºfÙ™ˆÈLìågÎûëL¨Ôïì6òÍ]§&}686]ö^?í¬Ÿv†Àz놺¿U¶.Êø’Ï~•ë; øÎ£hvƒÈ‹>V($0v?ègÇ€¨ýdºÆEƒ£Ý!M ô}®W{¤ÃLõ⪱oM\p¦êd±ñ:Ô¾Ý~™1Æï ×û•N"”#M;±ÿû‰ë_Z’GMT•fµ@LÁý&7IèÈ‘l•'Çÿ·?ž„\µ®dÖ•äÒÔzâgó^ªY›)Ûz© êo0°BªÄ>Wøn‘žÛq3CƒVáÍY9× a8"rÉS&š_'rM&ÛLìgÍAÀ’N¢àõÀ¥éÉy¢î4ÕÕ®òÒ]¯HÐÓÒF?\ÛÆ¯é¤u[ú2ÜK§j¼ßÇ;!…XAÍËÓÃmQT´ƒ¢:E6)LÚ¼÷^“k‘C¯ì·þ7Ý4|2Ús!>UĦˆ‰ØÒq—´ùXèÐ.aEA˜?CU˜:Á^fe#œUYRå—à øß¿“1'Õjó¸S¦ ¢€Re“AAº°©òMUûgÁ Þt³ëq$õUìJÙø£PMÒIWa|Æ®O¨75ömNt¬w +o 4pcdGÎ×*£…›å¡+êÉ¿ zE÷ÍWJ<Í7–†@ÎWÓ.†¦×/qCô˜†ÏÉ.7fdÇåÌ5ÜiÁ-`æÏUa†/$ÆæýGš;Hþ=Å4±³ÞJŸS¦ ·†½â¤Ssý¥ß˳w]^öA#—ç¤Û,Ö„t¦}Ç+n…E°:ðomeÚcCF‘õlê}OsW‚¡Î^Y<ð¡6EZï%õѽك-1Âf(É?ï$ê®órhòÅž28*8”¼‰-dv¯€‹oé˜\…¬ýX-·‰ÂwîØ?éÈ‹±Pæ-ìb‘÷òþ•q¥¼ m5Å+WYAîß¾oÞåq¢µ7•³‹wšƒâ'Hµ ú`ªÚ†|1ý˜=Ff¿[¼¯ + ££áã"²@ïðÌìuí^ÁD  ÕtÃÉ‰Þ Úa ì6ìfç +ëYÑÇ3þÜìÿ– /J†ÈciYš–+\;çùÙçe‰32ec’wÄ~ Y”^…*÷"Àxb³-Þø &ï¤&À˜%jDñŠþ\úWˆ +¤ût¿\ÓR¼»·£¯ù£g +ýsê>èvܵÚA—ý‘ôFÙ»V1½/û2û;ÞK…26£ÖkôΡ(F‹ó–¥ÃAqã‘™ã)ÈÎ}ÄŒaªÄ¢|g8 úŠáìzõ8©Š|o e€øbB½Óe ™HXE pð{ªÔŸ}ˆ¾•±DG~¢nÎózÐgÊ[¸s“îÄ1&/ª$ìÈ4FCïSÅÑçÙÐ5Œ¿úÝ%ø0BÂÈdGæÓ;ÛU8‹ÀÐ-4Œ¡Ö +A_\gÂþóÑELpîö|& åÊÝ‹ã}Ç»#¯þ3 Ò³t’E€„!É€õƒ||“ZIôr3É7¡³z…¹ÜÂmvi¬•¢îÙ#/’ìLvue¦z#d=¡îç8ÓÍ"&fpC0a•j6ÃÝCo¯z® ¸.2S*ÞiÕyØVH?T¸Š2~€Ý8u2:ä²à"ƒé:5÷?“\ÖbIcãvÞÕÀw²k ;Él²,)Xyz(ÒÝTÂÍ!N9™Påd‚ôz3©m >n£q¦i¡ Ý´šÏ;Áþâ˜%q‡òWò–¨$FëJ³U ›q(WøkOgÝÀf—. +ùíü|ïñÒ‘:ŽváŠZ‰wDò™á"kËMj˜âÑ"[=6Ýló¿¶ÚgÁÕ« 1 ¹Ûžá*T2bTGÏq]®ø tŸìõïáB³Ø??=iz»z‘YuSô¸r⥾ÄèIK@}#s‹ý…uü¡Ÿ.%ÀaÖÕ0KôÇŸ‡F«H„^’Òw%gUÝ'ov™‚÷Æ9 Á|ËÌ>¿GºúI6á÷Ò“¥MDO–uVõn¼Af}>33^I6ž"M0âzÒ\´.î»øéõVè[O6<¢g³]”ú»"/5@"uÄÙ<”"º%BÙ„‘hnÎÒï ïÞ­/½ÀYØôW¦Ì1Ñ1‘žëIüÅpå8–’LÛA-¢‡p7œ±IÉæç·"nÃhXSTõuH±UsEOÊOœ²@öRqé^Év/áâ*æOa‹›õ0—B“Bãù{c|±5Dø` +½œ§é{wòàÙô¨NòJ% 3TFÚâŒ^¹ôƣ릛CnÔ¿£ +(~Lo•m¡ÆÎB›×,"{8øö[ÌÒ!³ÞŠiÍ™žÐ ¦\l¦x‡:MÚ_zȼÁ^Ó–*5\LhT]ÚÊŒ¢'KØÞÍ諺æõ Eƒä‹´àTT´¼¸F²Ü¶~½r®Å9hG•dW© v€2_îR Öðöf ¡,Õó-Z0ìÌ)5ð›ÖË×™D}î3Å’óIwq—r‹fbŸå{u@“¸BªšÇˆ<6 EÚt‚YÿS=o¡iì”x–~ÿ4à »ã§\…-AGJáQ‚š8©ˆ…ï.e2òiñÁÈçy~YÒ7ôºZ/Ô4%LJ½Æ +ßBÏ/a'y0P†ÌVé¸XFãm?ßÇ{S{Þ¿ë ´=À/Y ÷ÖüÀ`kÄ‚+þ”—-eûyûðÏ ÂZ Ø…eRÉ”1Â[òüïB¨-ŠØ0)"oΚ¤2ú¥®’’mÇ¢Œò³ô”ôt¹˜‡dæ +a%¼Õ+*C±€`ÙJ!´ö½ŸøÞýeÆÍô=''Â9Az¾³®ãˆˆF/ñ?ÝŠN<0«`L@‚úþwUÃJ5<‘¼wðõ'B[¼øÓ‰ X“) +ÈÄÐð£g¶où¥»ïõ"ɸxUÁ¬¸œøA·®S©â§sš4ÐoÜs¨Ýd…‘´ÂaäwíÅMâRü¹‡P=÷÷;^…6¾[Onœ†fQé2Qn+N6j··YÈü%–¢wȸQÉrï†{ ¿¦lò°—–ë^“mís\‡fŸ{!1ª1A­I(€äo9NË, V –_ˆÀûkâýþÍ?i?ÿ/<Ðøºç¿?ø¸Ë×ÛoT¼k’©‘ӵثü®YËÆž ÍBÏߢ¤ã¹ß±)#ƒXŇ\¿cê)~Ò¾E›>W-¸{Ä¢.ŒIŸû|dI0RÚë*¶}Q¸‘#ªº²3€+|©`ì¨n+y0š¹:£éNJºû_¯,^†ôO²ƒX$\tÍó~&++d­DÌCØ:î§°¸]_ÇG.ƒ(Ë‚cÕ÷ßO¹\sá}2³ˆ}‚vÑù*‚#W m,|ßM—™Ó]™¶‚Ϻ¦ +f²¥' ûxPµ «Ýk°Uڛ⒧Í%lÓû3Âl¡%)gðÈÂ÷ÃØèÄz³µÊRIâêÞÉgk$x®dé#ˆ¦ž€ÿ 䌆Ð_†ÛÓ¹=S¼¡Œ9•Ñdg_äÛ=Aë‡\Œuàý+ín@“!Øp¨eû6!-É_:zâ+¢§Z|~†„ qD tz +r†[uæ¯'ð«Ûq#"¬ÉM\FP”™è€w&"¨á wà×÷§•Çk.,Kß.®ˆ©øþr(qJL¹ßŒ¸ýi»€Öq’ÁgàDï¨nð€Ò—}®V¹èqœ´ñr>M¹¶}üðÇr¤] ·¢ÎÒ€g1Ø…Ê#9òg`ާ‰qÂÁ3ð8OÔ\Ls"zEÅeœ:}|6 \ÑÝ_aÂxŽã0 ‘@ÒåψÕ¨૾7»”ÿstœJF>È€¡e8ô ¾E]æ²ýðƒ?Õ+ ã= ·3ÙgÖν¼7^´n©§ Ð*Í;[ûõ¾¯B÷Ÿ¾ö1K㪴!.:ìF\̽è|«R~)|Ïä¿|°¿}¼iŽ÷MÒí¨yÜë¤iïvy/Ð]þ9£$" +ü¸ +%Êz±k_"¸ðAtÒÉÑ{=êËq7ŠBv_}@þ•é+ÃóÈ˼ôèaS×(ÀÉ3šÎɪ‰”¢ïéC…{ÿñ¡u  ªe_R¼g:ßjó8R('@Ÿ­P!áíÄå|õU4e—ÄÏÀµ°#üÙŽ:¹Ca™r O 9dNJÉ#Ôþ*&ü³Ø?›pýå_FšØ`³B‹±m VSkh&4+O”"#%Êõ,º…Qþu¼yÂíKZ.9ðè™gP@°^S@ÐUÀB%é4oÍKE¯V1Kr‹5‹Èõ ˆGuçVMºáš·˜¸#­¸å(ùå½û‚™&B¿ “÷űÞ#¨š%WÛ¨#®¤ +jåŸ,¾•5“íx$8-ž‰ÐzèĬêÅ5=Ñ`“ „½é s䩯sPE¢y¹mÄù'h.”`Îh¾ÆœÜä Ñf:Ó[h—ÁŒ4Ñwwd3š¡aõrG…\+ŽŽ}œÐÁ»lÔð´ˆoiWjà]1B-k$fP_ä kn²G¥Î3CÐ85EÚõ¡»³ô9;_³[¹X Ý.òœRŸQ<Ô ˜vu{!À-í*ÆÈЏµJ#›f ‚Ýg ³›c!!¤h±BÈ­ptga¹íUÊ/Óн&;23þKµnãtù:Ü +ŒÁþßþø…ùÓ_ñ%•Y¢†-†;#¨œDî¿§&ƒ!øÈïÜß±hˆ”˜ Ýjš]·è>ê Üp«f:ß9Ýà—Òü÷4óúOº1]XøOŸõu¹]‘™Ί1íYzˆè¸î—O@û:¨¯Nr»NÝÜ&Ž4Àt<Ñï¡ sÖ@ÈF/³©s„³º— ©ji15m‡°¯Ã ¥*ºŒ3dß`„N†…ô*£—±lÚиØÌ0“‹—¦å™&ÂÁ áŒ Y¼¶núV±)s8J”ž·øÃ¹eÎE^zÚ»DðÆѾº¹gµ +î¯.Ž23ÝWÁù‡ÖN¤Ðö8Cõ´q4Ã¢Ó ÉÝS´ ßAçù²¹šY•Û@!d +‘Ž8¬kš:ÊlHÿv·ëM:'´lõx<6µÕô aÀS}í©v\ëµjÊÊ¢)ç +ÅtmÅàCÜ•iÕØ¯~ø\D¼ýS0.ïDç#ªxztÛÄaá§xœ@¦®ðeà µ±?¸z ŽìÏÃqPà# +·3†ûÀÛK¯ù™†0W Œa\³0/S"å„wm¦QtˆË eã{¢]Cñד¨ûê‚_»¢¦í»ÎÍÐ÷TÅdß:#rU(š+≠+îq!û¯N}„´=äò÷LÔ:êLO„à°Áˆ²©4ñ«@p´Óć7ÞôG±žçVOëEu˜É… ŸPÌ2äªÉá¾tÕlä=|>ˆ?"Šqzº½«Á÷(øsâ:}ƒ\ûi\˳Â]ø€€¤å¥ÝâÙ>ÿ=rY]7®Ïuþð×`l]‰š½:üúø¼-}d¹_"ŸQÔÔA4iBª·òÌè”y®h»ÊÞi¯Âù*®k~ùÿža¡è¼€#÷ºt½[°DÉP©ûãi@%=3¶ŸhYË oUD‰ò 9ýFqY¸ß€«ÀÚ…Å3í*åç‡ÿܾ³6÷#5u¡F-ÀýVrW°V:öìDµô(mãì:#SeTp÷¶eGCGÔvYx eu•Àý´Û?®W^–[p­ò¬9Ly6ˆÁ¢€öVH•´öu-EƒUü_Ÿ}åðÒE …ñ~Þdo\j&¶OЦSµ"Pá-ÁškÚ÷rAšóûf +¯œ·lÓ¯÷Pj¶pfô掄ø–H-¾Û4':׫Ñê€ÎÂnß%DeŒR„žšð¯ß©,#<©Al² +dÈ׊û|gHí´¢itÖ V'Qg}Ÿ,[ŒºŸâPcŽ6Z;kóööôW°L#þ=CüöÎ÷øçßv:“¢ms|?¶áñL°yÍr¶ÜÏxe?аJ:2ée¥µ*jE#¢»x¨\†*EÿeP›ÊáÇì<×ìAz¸®tþ{†ˆ£äppؼýDN +al„ñÂo£Úg_¾õSl 9Q+¾+ÕF$^äðÇ‚cß᫊Ծ"¯[Ú,üDÿ'…>'è9Ú8ó¨÷ö ú$SñŸé§ó‡aÏÔ¸€ÏaüÙÓöËÚͨXµ ó©ÎP yGìre%‚’ŒŠL\}–¯©±­g +üüBÓõ×@_KÁ‹´RÑœ£¡zÆ*„ì ý>žªK † ùBÁ¾ÿ""'XqÛ‡_æðD­»¢¤?!öþ…Ä¥f$÷žB?#Î rɼò^ŸQ¤z%zĤ4+›­ÇVã®e?Êú¶Ï“©3±t>#<\(¯`"Õ©þ8ÎèeIžvÕã2Ïo~Ùññòv¡P!‚“3}‹:ò“ö[ ”Ë,—tàìnVK)Ñî#½é(]è÷-â}Cc䆪ÙóüpœõDÁö”³“C­2„ã§‹¨›šûl¿«Oh›(Þ»¢DSlíBâ~Ûæ³Úæ)m”ìë}3 ÇñáŸîD퇈\»Ö¹z¹}çÕî„H{ŽY—¾{ëê‘ïe¿TS—ªw†Ž÷üåãbÍÔË…’T“Äm oÔëƒxþ.°§¨©#}ä?qöŒãÇŒãÇñµÑq§(_á≠jêæ8"ãÝŠL)C.ú䘖Ѹ9SìÂ.ÖÄWiqDÚÅ|ïÅ)Ð0¢šKÌÃ^1Íñ‘Fïp«¢…CС ês í2⬈ûüJTÄiN[õ¥hCÒK®Ô¥D·ú_m/„§©ÆGD ©~ÿ5RpŸgú&ƒÜ@ÿJ“³XTzù%hóK·L¤A.Wwvö%¯9³®ó¡Îo§ãȨdD ||ÉéÙPÖ( ¶"^AÕK 'ÌW3Å(Pd2åªb‹½ñÒ«¿3ßü\UÎd_ÆôÛ«¿áM¹+–ÈN Ú›gHˤâ€YF;c0y9¼ýú­¥B -£Í‚.6žT¶û‡ˆ9!DGk½ÕÏG”Š 3Š ­Úð'Xë×Ov<çbù“ /בêZIq‚ìÂð"_&R°¡3EwuÖ2øºaL/ö-£ëOµ ë_økÜÿСЂd²ÚžÅ—d™?¯`ÔŸxŽSî|üùâ]¶ö®óÜ/-FÇL9K‰r–Uò3âÇ=ò{J\R&è¨øí¾¼R™gaËãGßvaô˜ÔÆÄx?c hþTÃŒŒÐ0g+drKþ¤‡ó’èуD?t!Þ?Ö“ùúûçcJÇRÔ1挒N¼îýw.÷ôÞx÷¡°Â:£5©l¼"’¿g}Dücu’\½?þ¼_i« ñð:o탚/^È]?`GŒS É)]5^_%£zEÕÏ ‘yGu ·k†{ëS«"ô +9ŠoÐuô©r¹N}úvßÈCwšéñ´È9Áq–¬¡yhsK[’œùwfø× Ÿ%BWa¼6æ/ã&±› ­™²Õ|^ÏÅæ…¸x‚ý`*¥°ßH 68qÓ÷CkD¼­ÑÅÛú~ÿ +~3¥|‹"½þ&\ª¼=æ´èâ’ͪk½ŸSÑü«æ{°¦¯Q‚o¶P‘ú+ஃ.¾Ð0V¼p65;jê +¢A±SÇ ©ý2¹a ³n¨/ùוù@LìŠÃ'¢SZŒü¡¬‰£Z+Î`®(cW–(»ÕÛÉ½ÎØt÷¸úŒ%ä©…* Îx:ÒÃvL’lC`&^ÙΫG룮ïpÜ9%ÁSbêp¦Ð°h¾JõÓþ¸í¤ç§ˆýE˜#¸º¾F5GlŒR‰®Ð襶â¾Er½3öˆ@WpìÛg¨ü¦ªØâ.¡¤ ?éR^ù4|rwºjH¢Çd¦—ñ=S1Ò¤WŠ1ÜnE1aS"+£Í@e°éþÞÇkÖÑ[&‰íŠ,·Qˆ“5ï-Î;P…6e‰`W ÏôË^ìm9‚ÈHûxuš£ÄÿùhÜÐ@3ç;Ò1nÈ}ß9zI{#}áC×.eïˆ| ˜õõªàŸacc†|ô(®1yA딯íoÞ‡ó–¬rßf<ÍQô1^‘}jù÷EÁÚQ +«À 3Ë\…£;,Š á:/•$ð#•W¨aÌ_|oÛaÇ¥i7_ÉŽP}è=‘gT-gZ²U+Þœ‰&7g¢ˆUˆ -+„Øf};\˜Ð\gΜ­ºUíëîHŽÙ—øR_‡%p/½C+Mž?®mÛ뀔‡Y¦m´4€ "dtæOK7Üx®¾Æ·ÇÔj¿ÙDÝnåÖz=4õõT‹’¼M}ëùþ»Gý¨¾Iƒšz}ý ‚D²´8¸‹ì ì Q7Eî¿Gà¤ÒìÃq_‚Â÷¨y¥…é4é7pµØN«ÉØJØg_Û´ð‚*ë’°·?xmåu<å‘áÛ+uóñçZoFvÎÔÉ'£·ß}p§+Õ©¯ß=B+DÆöËìÆ’a“*˜–»îZ…4åJ‚J[óøÝeÎ?)N–ª=r;ÞiS(`²»ï4Ÿ´ 9¥mÖŸ~ñÖ“ºøo<|ûpë¨&ŽöF »Í®BnÒZuOÄ©¹ãŠ84Šlv€sÇüúºî2'k‚ ÿ«¸ÌªÈÜŪR?hÑu †ÈãÀS\Ño±ãñýƒ\Ýï$ï?Çyôù¾\S—e,S¨¸¯cüá}œ¹³½1ߣDݳ`,¬GŸú¢¥Ó¨9fs RÍãƒ["ã^ì^L .B^öºxƒæýåO"“U5žÜ •ZƸN=3ŠÔ,)*R¯ñÊ>Íeí½D"Ô*K?z„AU±¥ï4ø´ŸïˆyÇ[ˆ¶õ‹\Ne'Q+bš QìtKA½(úºd¢gÙ/–F·^¼‚ÓÖû‹ãxµÔö/zÙ{-Æ–ˆ«¯ãí‡(/¼Ó-»™{n‘ êcÜQ EÏ`HequG‡­”ý€ÿ:þ]ý›NzÙböüy4ö#`#4¯ |–Š»Î º\*ãDlãëÅp¼ˆìðéŽ:Ucà¡q]9ÉîV-ÿ>!þq ]óFûPZ­»©kÄ*l‹`ÊMt´éöÓ¢.° ¥ŒÏˆì"W‰6E©à‡ã êCßQº¥¨ä9—üø€¦$É~Ü÷sóÊ |‹úÏfÐH†Ï{‹ó/ :EØUÎ( +èìŠÅá{Ä×"÷ÆÊíúá80Y™›Ê9maÐ *D>rêú9tnÈÕž§W{ß³:ÂP+Ò啌_H517jhyÜy‰ÜÐgÉqÍR–‚#Ft”IÚ×Ò42…i5+#JN›¼wްÝÎB!}oo GËwÑ¡‰ð \ÕÉÇ´Ûÿzƒ=u&Æi{ó†W7c÷sú<ºùfx~~ ‚¡^ð7žžï.1“&õ´š_šóÌ:]jšßñ¶˜D 4šî}$7€ÕwFä™*5G[þ|‘—YÅt²§€ÑÀý)² ±íP_?<íxbÏ­A[ÃL¢¯ZÛÈm¬à;W¤¾°Ú"øpïeM<ÄGh+EGUú‘þeÐ,GðÚÚÕXüpÔûû­–‚ý`Ïû3"—k^vÑ¿~:N/ò!M}zR$ÍÊ(²éBo<Æus!ú¾2#}ꃆ^Q´6‰b¾þ·õ}ž¬þ汃QßN8{=7ï4y³Áô²ÍÏ\8–´÷‡ÖÀïzFu#dµÄκ¯ߟԤX°º*R¡¹Xä¶b›Ó®_UQ8èð/!C¨VôT^Xºð Å“©ÁuV„úU೯Ͻ5™é÷¨½Téµ0(1”„lñÏ;ËDÔ‰‰ÐPæó´=œô~’ߟeU0cU°^¹ÐÒ¾Ú?§é¶s¶`˘¥©¤†9£F¶]½œ˜úŠÒãˆ@?‚ºÃ°ª*Я쭌‹/€‡¹_‡ˆ´bÄgwÿ¦ûâ„%MWtͰÔz?C k$ã›ü¢ÈÑ‘@>uô…~ Lq` ê¤íw¤ ZîÒŽv!°Üžú>³ «y÷öñ"š䘴…ïŽC«[¾4 ±ÂãôÜú¯Ðt†ýüÿ¬½ÝŠ=É•Ÿ}ï=ÔáØíøŽÈC»1f`ŒÍ{bû¨’ Öh˾{Çó¬ˆ]ݵKjbFÿʵ3s玌X±ÖïCØPœ÷dwy@D“Ù5ÕXAÈÿ)³¸×¬Àý ÐDǰwÍá0†©IhɤÒ÷ãÏ)ò…ÂɉÕ#ßï–ØÞ†‰‚åÚˆMe«?~v÷·ùIºÿ³Äû¿òd «úþsJ½ÿãwûŒ¿û7ÿý¿ýù‹å÷þøÇÿõñwÿþïÿëoþô§ßÿË?ýô÷ÿû§ÿü›ü§Ÿ~üã?ÿߟþø?ú¿ûÇ?ý§ùãÿùç_\ôyùWxÿÿ…ÿÞƒißäØÿYq³ßèL/%ü›„«bÅ„PÛâ ý‚÷ƒê¢©¥_nÎ „ 2 +d"ÀòŸ|ýç“Ã*Fíª} ­7C:#ˆ¶Ä‚ÏBYÓ)f°rLjº¥<Æ4”Wů÷lÅöÄ5ïËá2ù‰vº‘õpkuûOjM—jãŸ+«ñä¨xP»ÁR>ì/gœ=”+$ߟÆG¯I‘¯¦ºÝ¢Ú|•{‚µ4홉0àåX§OE#¡EOÒGayÜÉ õ¯Ð|fû!tZÀPŽÙ© µ\'ZA*3¸¬ríÄ*¨¾WÊÉÿ—M—G#Š9PÚI”EÜ Çdy;ˆuâSC fMéô¦…É1=\ +M—‹ƒ)܌Ӆ âœêá<˜1q ”øàÆï˜þ<Ø¢(ËŽ-¹Êÿ`óž= ŒuÙ‘£éÐûûÀ"íOåob½©ß6^:,×Ðo©Q¶%3ðŸºV«=v¿"›õrd«Ýµ?p?U2©o–0\GœÐQUNÚØA±»¦o?Ô#›z€õ·k=UÉnÀßézÀÊãMÆ9’ xbA±õ÷´×ÊÒ<(MÜ•ºt÷ï=RòÌRrËBçí”›25!ý€Ð ¿_²~ šR}Þþî;  0õ·cIX±UuJ­<ÕôýHüË9Ý™è +ÄKùe§ðÃÑ;­÷@SW–c[gNFOWv¿èdí+2+„vfµ¾ô¢õ=s½€€Ž]X÷31ñŒ£oÚ3Yçh)`­èã?ÁÚ”§>L·Ç’x†~q aÙyO¸jFA¿yCÈOtðƒkg°éÁìa~G¢©Ð&–¯CúýïœMàZùæàÐø&ôø™âö”>— 0„]kôù,\ µX¸öɧöOs–ºñKÂêŠöýy3“`VïáòCˆZí·ñ0†(ìT£—ÓŒ!ÒÓè,…–\½¾“çžs€C@¼Ú?£*縼£®”DÃÏq§Àèò¶ðövxÏøqï%>„·×&°ž½ÙŽ ·gÄ£ÊÍQµ  ©u¤T2äÉ•p`ÛkI ˆ‘òý;j1¢‰Ø©"WêMš#tO‰6Fi"J{"boEK©SW‚—ÊSÜ¡(Á“×# Ža–/èD°ï厃qSr|šÛ¬Ž|,ý¯½¤ºid†\N[€ó¶±a81V*?lµ \£)±ß>¡ êqÈ@Ý;u½¡ÝIØ2Ô³ð7ò…ý|¦mŽ‹‡ÈÈe¶ø¶|Zû4àÀoÛ^=ŽŸÊ>Ç,VuöEÇ×E(ÐSp?øJö…'2Ú6DT[:¬ÄùÚh%€¦´Ó@ñ%® ß3â\È6ŠÇ®Ç›ˆÓMŽì'LY-‰¡í«MÆþåøñ¾1UaïŽí”$E¤¶Ôx¤‚2ÎNÂìGþ A.úmTÆ6xÇ7nÊ~õ+¶Ÿe5²2‚ oÀàvºgñ%ŠÆ‚.X]Í‘ýźÝ{=›Íóì€R^°O„†B{˜Qw¯2ʽÒZÀ+Ñ-áJë4²pǶJ¬âlFC˜Zb‹Â©N8ðw^“¡Üihéý›W10êž|98ÐÓW_a…¤@l1÷p/t;3j˜Ö÷O{ýŽèÌÒäàà §ÑÕâCnÜù»‹‹üþâñ þN³–¿÷ƒå€;@5ƒøµs÷kÊ>$« õƒ]Þ~gø;Ì0oÅ…7ìŠô",H!qgœ6ǺR©! á‹Ó!ï9vˆKž:<ݶêdéÇÆS3…†sù˜xJ¤0 £¾GÿÙr ¼ðÎéîÁrP¹Ô1(OYè X‹åœBœ¿à¶±¨”šßøÕŸóý n×V½àͺ‡nòçLˆïzý­+ÈÆsÏ£¢èøÀ£oAX­Ì´œCœ³¨cf®j¶·ag¿×ó¡Ùx*­Ðkß«bµ™:ø©6ÌôZ '4”¬vª4¨¯†"Qø•±¢-ÏV×’­Ã+ˆ³xoAUòfØñ©ã Ï=Ì›æiâ+¶§ê×Ùªˆ×˜8<Ýëà2¥Ín£háÍI'J÷©é¸5uùþ怯âøAe”·ƒì5ÞE‚@5˜œýóïèJj6 ‰÷ |?§¡<¿_¸w4d‘€Ü4ÅÝkCýxÈBsH5UŒt@–cL­DÛˆšñù!ö`ØoɃ¡@ùæRßå W»xtøeòk–QŠ-TQÈÙï%õ½KÂÜ"#[x¥“¨"GM]aJ™EWU=é1:ÆÄ&¾…jW** `”î°±nì·qï4öT b>ÐÆ/ì3TK +ûâÐwÐëD²¾…{ÊÅŽ@b µÜMÇóùøõÕúfš˜±îÝ^•Øõ8i“¼§àýP$Ñ"ØÑ}ùJ¬ÏÑÅëi_‘§MÆViÂí7¦Xn%®â´ü +Í2Qdd™ŒgÖA^yÅUРQ[ܸÎ -•·6LdD„K„üó› 2%7$Û¼f’¸…Û«?Ì“4.dßÕE˜ç¸V<ÌŒn"P^!‚÷ßr0":ÊîæÈ<ï”ùÏ•ö“Xò0÷h#šécÁ~2ž l÷Ūé8&cõŠcò‚™Õnc +á]´{ajÕR罎2žŸ÷K\3Ñý>£Îg†×¤æÓ_—Lk»B¡'rûÕo8q|AV°^¦µã©Ó5èÌøi£Ôßu”þˆêrüý‰u‹ÌÍ?g¥Ó´i€{·&Ër™?ÏžÂ{Š¢è£K9)¯ƒR)ï «ÜÕ¤ÇõÑDŠï‘ô5NÝ]0R€i¾ÆjæÞÕèñz™‚¢÷1bqqq:G¦`3AÛÎØb~a]m¾~ˆ_D}%Éfr`%Áv‹gªP«þŠjzVÀåyUØË÷õM„ÓÄ¢¢Á`kÙmöûy&I_Èß‹0©Ðôw2Hz¶÷bæskŠ·ûrâÇT¡Ã´O.©ˆ:¶àlqÑsóÒP¸ ïq±•ö›$“W$†‹’…ïQv WDSyÇåTÞ£øESüæTÍzØ9“{c›šÊü&â+ÌóŽ®_F)y>©S)2”j-:'Q§MY—êëÈÒQ4±Ñ¢cöà7Bë}þˆÕ÷³ìô>ŠéÀ–Ö:-mKëä>ÞhÑè{ ‡áìÞ£ÄKø>áE¶í…Q?c0æc$½RIS )Bú‹ÑÜßîhló÷hƒë÷Íi–âñÀ‹*‹‡«Þ£ÌYAaê «NæäŽkJèFôáy3ަ¡QLBD¥ò ÑʯáªlDRr:ÃÊÝ]tñd¹4LD´tdèìƒ"åx/´—,öaøg”¨îŠfl÷4¥ ÌÅ&4z£G-m§%.´ßαÏùJ‘FÕ[‰+5PÕDáy[bBÉ,†8•²A_ˆG°—ÛÿY~iÜÓ”¯ÜokŒ:ž‘o{™oÇcÐCA{£±m{RÊP€x.嘱"´•úw)LQ¬óº¾}AeLSL»‘˜X;ãK¢:ÿh°=ž¯ÇãQ-¶Áìvy ËÛ9ð8„­¤ÙÌñ1n®!{ÄçömÄŒI+ÈAœŸä- +ùKqO{`=#îö±¾Sáj„€½5†º'êLyÀâsÀlä=ྡî4ß>ÝUœ3Lk¸tS¾ù3;Ÿ" #Š*Quû•ŽÅ JÅÙÂÒ8cŽ=ýtQQ=²¥j"²ÚßùÏ)£kЙáàûÍyHF’ê\ÆÉÈúÉÈ„GõØ+‚aH7‰ÀžpÄ>¾”p޲0ªp]¾ØSÙÒLåüB¡¾yoW-~ÿ¼éœƒ ‰³¸Ø1ïä_TôˆcLùKˆf®¸–íãì!=nѪ!›Â·™ÌÞ3H#Aòö(þWs±˜ŒÁþ$s‰æ +ú‰Ø"_¡2’㦆2XSû¯"h<5óHâß}¼Ç;CŸ)$ûé1£S‡;†Õ¿Œˆä¡FòpâïQ-4ß:.¶#2:æƒ{³vã +ueŒaúéJ `&4;u£éØA¿t`ÒÉÏè=:£ƒ-HéßÔtè=»'ʈPêÛãG=äVBÚóÉN«¾×לÿ‰êίóÔ˜©=çéS³ðÀ kAM‘ÁزîÂÓØ÷—ÂJ;â%Â$ø×ýHÏU~þp\fã¸bfZdóà"V•âBYØú|$„:Ã^î°§Ž+½Gå0ëâæb†g‰§eó‹N²4 Yx4·^çï¯ñ;zðÉ€‚݃BhÙOÕLnÊ u·dZ-Ï ·?ÏBW˯eÂ=•í„<²ÈGb®¸'?=‹%´OiMè K y™W£z xàîqÿ{Ú&ùñÛÛÏ*J-ÛVÉÛy*&;;e†5£ ŠXòŸ¸lßE|·þ½)3À’À…î+ãìtès3=·y -ñYb:nÚ•}³ -mÕxÎè}ÑÝòÙÑ2÷Þ¸ˆìý#ã…5jŸ†Þ't‡ŒÍDCB’ä–þ‰…pZ« 8ÆÊ¦S8¾xÍ€‚N†zúÚP\d`Á²mD<ü²R8¯¶2µ¢¸@ EÿüÌωj¹m· «¹W2’´>¨iŸ:ó½óo*2@)[ùªwÞÎØã@»(LeSÀ{º%lÑ[ö)ð)½=Ü·Š¢”àÀé&‘•B‘7O׸ö¹™w¸ÿî,ÒhT‘ê\ü»jצßc<Þõœž+¼2]ú°ÓÙ#n?Œp…Ãc!Ÿµè†°¿öÚêìÌå³Ú¼€×zbé>È̈•*•:öèÂÅ¡p¥6<õi\W’p¸›äšr‚•úׇNñçÁ~ +äžÌ¶+–!Ò-raëê4huà‘ì^”bÜ~¸lÔï‚L߲Αȋö¤ZõõD¿€µ¦"Æp@Ñ{OˆŠV1'0$Ü(C&„RL,.ŸV ‘¥6&Òëà¤ð„ÁaBøðC¯ØžÕt–h´d*()ÐNýòÞ,ŠdQ@¥Q‡-Âç£ïi1Mì`ÌË„²A@”œ&˜ù¡ö„6e•!  ‘ړ͸)1–±{V!ÊÞQ!„á4ŶDíj%퇒€§$ ñ…e3+êÇ‹¼_œ$;l„«ÏŽ@¸íu¥NÓ æ2^"q?Ùk|Oó‹@VOƒŽÖR@'{’TLW÷¼ÁgÌ,ÿ`¥7ôWx æ|ù8-eÒƒ£”SØÛA§ #Ù¤‰Iƒ +EMƒs%;&{÷Y4\0Š D¢ÑvÈ×ûG”8§ù~pA{[a€d429«à¤{r/gs‰§I`ÿçE?ºÅ²? é|x‡Âüðk± <¬áShÁÍ‹ ð®0¥k ½“Jl.ú Á€=³0“íþõïn +S Œ¾ëtªsu(çJ²¿æçßGÀcËÎ:Ç™¸_AÄCOI Dg;” —yNÞê³ò[3„d¡ bkñkìÉpÝZùl®ý{Vÿ¥]~„Â#÷lÓŸƒHIã’üã2<šòÌ>)žÖ%’»éÆÉñÖæ}–¿G*~CʪåF>®!„¾°^-?;€øH½p»ø¿àþ›¨ÕP¥×Yô\:öÝŸÝ~£$3âËAlCZ(݈­Qr|ç@3ÇÞ—§ºSF’}GTÓÛÁˆKí:¦L»|™VÐ~¨N¸ ª dê òç­ŒNvÿ:ØSˆeéj¶>Ö +hø›* Ë›‡íóÕ{Ó dÓSŸMCïi|sž¶PBó"‰É¦®þÄþºÿÞ#¾.Q}ü…±hitƳyJ3©GIPS@Þ¡$QØNä°Qi˜#2H:@`gbB&¢ªï‚+*EÑ=ÆòÑéþ\÷;aÛïA…„Š+ w”x¾S$5x›ý¦0XšàiŒv˜Rpì§§˜N3˜>`«§¶PvúÞ»Êwú§INN•˜&®LÖ…± ­7ÿ(£ï / +Æ{#"­ zLqM$i#.[ûrc¾GD=<ÅV µ8Š·óèDÌŸ¹;Æ~ m÷ƒ[º_@T›N&­æË²} j¡ÜŠ%KåÕ¦°4X¶ ‚ÅCh w›:ëï[¥Íq,ñ¬!0oa*ÙÄDõi}Ø<¢áÅjP‚·®¨ZU¿ +ߺ@/‰”ï´Ã ËðçäÂúè ã=\Wéžvm¶ð€?œ(arêQè 7)ÛOÔ·„)“áÔ8ƒ×–Q‚ìñâUQreo)~•#€ÄÍd1훀¸hØÃò^ã¢3€âšÖ,vdº£„öt·BúaÑ&;Ê.Ø‚Åöf:X8£Üºô¢3O‹ÙkïaÞØöd[£'c1•m?Û(äa£A2•*ús¼àÜh¥Ï+ÁÓ ª–#˜‚&4³)óM*ªí¿þ™Ž4Õö‚¡¨ßDÙò>¨BœóS;y¤2/ÐíÒLgŽÛ­Þa;]I1”>š° ¤Evþ$—å,gÕ‰¿CL{‚ˆEÑO,Äo×޹RHÎS!ÁžS£Üç±O«™É»¶Bt޾Ÿ<ÿ²äùOà ú5ª Pj¨NŒ°Ñ ”± +?–p=ð’`a5pÍ1BzyDˆªTùüQ¨…(+Þ&PH +¬&¬ìkX.LÛå «¦8øŸóæ›íŠ´Žlqõ°Ñ‚÷gUCº¦ÞSußgħÐ+ºŠ«„µ™@Q®t“!•8:©œ'ÛÖŽsž5ŸÃŸvÙ“²{‘ž@á«ÈÊ i±sМî6Ry +6.2]toâ†3>Å ¾°b!¿1´/Ào¸ŠXDV+q៞ÑE®l5ªžJæMšX …¤ ø´VÅi©"a#SÒ…@”CeXG‘ý×yó(Àö/З˜Ç„¬t-÷N*Å/Ð ýt:û¡“òõûUe†ÖJ?­¯>|e¼ïCû»«u°ÔÐ\H!­íg<ÓÊ—èÇÏ?Ìø®wG:ÐÓ#`dbÕ×ô8%3K*h¯`ü²x§Wb' +ºB¼;I`˜,çaä€ÁÊ +_¯+=1¼Ø…MŸCLßTR‘j©ÂºÈ5¾-ĤíâùU j)Øõ-‹†ÏEÙÒÌG´gâ5€-\td زh{ 9»ý=G´êì’•(%mÐ,O“±E-䪚X­(|ã#  ÕñŠ‚EóJô¢¹’áŠ$BØõÎtŒ‚Y€`Ñ߆m8Û'L8”‘nc]'=ÈêbfÁH@˜]M-oÖ ;RÀÖéùš{*< ÿÂ|fÓ‡žµ:$¾*À°8 îB‰Ç6|¦²ÓUÒZZ÷)m…™.eo{±4Ÿ,á%Ì̪Q: Ì_-°Éw¥b!g&^D„&•=½êÞ¤¹iÜ?ú­GؽŒÚî½¼rºý0¶pn…±Õ °v¼¯žÖ¥tIG‡¡Õâ6£@•[ŽÐðr¨fï +½.Ieð‡&/MÇIʉá£(ºNì¹XE$A™|”tb{ÀY &4G +ú9VKÀj°Z²Ö¦Z»ùi>äVG”,Iš‘䍿 ç`j×3 ò›0·Œ M¿“ø¸>š•(]h ’™>Vì8þrvÓºoe12LÏ=ÉþU>ÃĽ ð ðž74Û×IüÊš:Mî--x^6sä&Ïá‚??“+ƒF(\}fÒ±£t|„ùòAÉqP8¥.¤¸=H¡À +k-O›P«D„éfæ~sD¨Øº³ÝÒ¨ÇoÐss}]éYGŸF+uXÎó\€Oy‚Vפ¯Åy%LꚣG^.®ºÑ‘–2¥qF£uÔ‚˜q€O-àuh-œ{¨)(8…ŠëéîÓú„ĸg›vL$dì ÆB ;vj#Z¹ìP”®q€!j @ I±”Q~€ðÌZVåÉEŸ ÊY&·¹ø•,™d +ñ޲lË(_ ƒì¬ž(è¾ç æTÍxqÙb. bO DP % ˜ Z¥Ý$æB5ï\Po‹¥P4 çg…Ä–7 /6>š•RÀs!šwä®ëˆ«©4Vö’z°Nlr;èšîc,“ª”Ôkx¸Ø)€­+¶´j Å Ìn)þÿú{òãßðÝ ÜkìµqdP7”eæqp ”¬¨¨¾…Š×N GšRñ)°š…ÎÆÞ‘È)Eg³*iŠYC»ä<+:Ô»èð^ü”' FÉ0éFIE +µ<þÎh .°Œ’“»Úu O@06á¸Úÿ¦O¬¤£¾¯§ëΦêÑiY® ¡H2m„"‹šUÓgß#ýË aŠ„0ŒÐýfxR#{ÁAÊ_PGRòïÇêR¾Þ°“6dßsZ¥é–ýø×ÙŠ¢q9tÈöÁ„V6Áº“j}‘Ãúcy3K7åÒ`Å˰Lhœ“àøœ°Q†Öf‘W+Þv™¼ …4i:ž[YDf¤Ë)èµ…Û=@Fúg=Cž€D9ƒ•eÞÙ“Z‚Š¥ŸGl"{ú/#v{žJGÁzí'3§ôè-ì±Ò5UhÁ`Ç1ªÂ¼ŒéÞªö‰N8µÍçvÇ2¤ÇI÷a˜6Ðç ³žâ`&` ÐêäjSAp˜§Á€X +tÞØÒ1 d”¯ïWB0«‹J©.ü hðˆc&È\ÎÂÏ7„Æe„¤XÐç§BÅ(Û“Ïž6Zì0—Po‡7ý€/¼Í«âÂýé­Bc½z;õS]Ïyö <¼}ÃÔoŒà¾Ù9"ÀT=jT·×…ôÞ-¬Ü.2]°]»J¥"ÚùJ4v½”½½}øª¬ª·‚vÏ #æåH/ÕÐÁ³¡O$¿ ãDˆ4VR¸é7À…i*ykÔô©Y¡¦Ñ ½=.*Éþé=R¼ªÅÎMW "ìt£…Ê 5ªø?úiíÝ‰Óæ&’ÂÞàñ±ßfÌ*Ë€o©zêìÈ-t¸ERsâfN×^ŸÐˆWo¢B0{´³S.£µçT¯j[fº2ÕÅf†Ìj + [rêà"À®3¸=_¸ÈYFy;†½¤€m)¨#õÇ4ÑU{hëìÐ5¥´b‘ÎÄJÌ'$pÜm—ð1À›‰{óõ +8Gh–¤ûB³2E¡Âš;’”§Ø=­(qòʯrÔUHœyYä¹OrE=x–r{QØùÎbk‘±¯è6¯*C„õU 4è{ù"T6Nk‚ê,Íw¶¸¼_{ÄkV •[U´‚iHv—{;ñÚsä(`#ÎKI¥ÿc"Þ2‚m•Pëû—_kˆÛD îÞqÁ| uàÎŒ›üÇt¤Î°ñ*G CQ L‡è+Yû{@L‡Udßfk©K”Ï-Ь×YÕ0h5Šiu ½3¸Ž\œIs^Tb‹t¬Ò–Ûó ²´‚ßhçT´‘Ïk†Ø¶Tëêþ*Ô:bãÙ9Z¼Äx„J{BèÓªy4ÛKw¦…”L—³l>«r¢&ØBìí`÷»÷SЇ¨Fû¨Jwå¢b§ˆ¤C†×Ü*Í—`D÷*/¨µD d0Óƒ?ezh눳ÄkÛÃ¥C­!ü-!mÿv¢ç;Îs¶×_wÛ³' •1'®³U§Î v)Œ'“ÁŠ=<Ò3†÷š/‘Í‚Ðѽ“ÐHï–ÿƒ<Jó¡ûªÐ*– PßÚ ½œõ½Ú£É.TØ‘ºPÖþ€@ÔÆcÄqÕP[ØÌW7wê"âtëè."¨ÆßP¼§ÕˆpAŠO…E"x*VÔ<àbÝ~ܳµÓÿ’)«Nç#pâ"êtìW–þ˜N.dûûZ×ykazX-©‹Z¡Ú‚ó›/¥°5\u5Ú!ƒ£©v½JS€ÇHÅ’ºæØ®ÄCæ¿SªÔ¥KKaå5§ùÈkfâtQx‚ÇJ>œbÈB½§N'ËXX³ÛÞaöÇ–ùàRæ«GPmÙ鄪ɓâ n]#­f8ÊâQȯtÿJØB…_Ô^Šëa5ôùÁô½çý¦í©Ðo¢>ŬF¦îçEãÀé.{ +B©~’ufÌYEèt•C½…q,_(‰¢L¿`ƒ2ÍæØÊJɈôqfÑŠ£¶à0ékŸ¤‘ì[oú9/¸[îÆR tòÏuðýõ–pn÷ó-öóŠÀÏ`j­ël)Gñ²i +íÓnbY4â_NQì–ó~ŸŽþõÔ Dkï;`J ²¿/lQÚûâñ÷KÚRà¶Cù4C7æ‹”óU‘J8 +Á÷P]àâ|¥¯µí®qÎsPµ¢I$âòb÷G­ÇD„^W m‹Ï ЕØQãà¶–ž›I ý8Í# Žˆm{kq"<šn™DŒ¸GVŽ×…ªЋ)¸‚РTI/aV’ âš(u~£A‰-†ûEáa@§°Aæs!2A„ JÂ?ǼÞh5ƒ‚)qC©Á90?ûÊäðJÈPõ‚ºY¢,Žå®ÍD‘(¼¤»ö<(ݽ}¬fâ².ámÔ}ÇI¤™dò÷½#.°æ|WíuEªv}€#¨ÆÍØ`ØrUF»½ÑyiªèéRN5",!6gë×›Ó|UŠJªv¢Æöðªâ)eƒŽ-äªïIvHË=”ÛŠþ&­ìïÀ’¦o§UX§†–sÎTL{jÀŸ#+‡\ÙÒ²¨Âýy\…kE€›R´KŒh â¤\ b¢r%àK6锦køÇfZc†XÁž" uüW»UùýŸç–Á6°3;OkÖµcf/´ŒïPWø=²2í':C:èYˆr5Ì££È-ŸôRÉGÚõæˆx3…#ÌErG€¸-0)Ú£…Aß½ÝbäÙØ·¬³dWGy¥Ó‚jd‘q![PìG‹JFX¾ƒjj5 +.Døg½ÊðZqý®‘1æ$·g.î™}B5'èk ’[` Ò§}¥ØÀᜮ{tf×Ý*û«tDŽ¡ž)ãè`¾gP6rö÷ÔŒÖ%Q¦{L*0ȉõ"HÍÉ£Wï4ànÅ¿¿èô*H<Ä8b'éf"eÔD›ç¢×ízïo˜Cr@• ÆUSÜ%8‹­z´Ë>åG +]1¯Ådg#~æ”ÉŸa$ì|%—c$ý\ IÚà%ʨs‡U»Î½Œ‘ªû’ª_5è=‹é{ƒ`10(é+1=ÑñËÞš¥/ÄÒ¸Ó\¾L#¢Ò­Nj–ã•ÔŒ‰Bþ”âXÑQ_™ö°Zúè "FB +Ý·#û<ªÖ7ª.­ú®s¼¢ÌšÕ‡NTó¦".Þƒž ÌUÄJãŠLí“b“‹Jv|X»öÜ$ßþæPÝUlç É»š‰Œ ¾©š¹ç޽*Ž¨Ù˜©óh5Úì&k#I§ÏÕ|EQ3ôz³p/@“*)€ÿçI(%ŽÜ<Åw¸Æ‹­Y!  ×’J0¢Š3q=» SÍ ,…¢œFDþCÃ#Õ¸Ruµ¥ßãJX´{¥À1k="ÊJb(Õ  ÇþÕI/¿âyzÑ4´#¦¦ËØÕ¨T¸ŸE½Î=71¢m;û3Òá¹ÒÂ(aéäÕ鎠ÉèfD?íQË3´;á3ܻ¬ô3œ’i ÝÏ9ÂcVI`({"\B»žb÷HÖIQvß½÷UaÚrÐÉŠùC0#ψðàNbñ©0[‚œêz9q+¬ º‚6°ž¦°ŽòëX°¹óÔØÉÀä +æŠq[@C¶Å—’]ÀØ¡P&°àŠfUéqw‘´UßÊ¡`#‘‡% Š^:€½%àÈàŠý°©öÞîåç»n ‰¢ÄÆI}Ý·úÑ…Èø´!Î øÉzt‚ª=Mjµ©” Ý»»óNQT­@;òÑ)5C0ã<´×ªÖËñèšûoåÍ"@ꌅßÏpºjH2Ë÷¸PÁL®â¤qä­k9û®‘ تëŽ"»²©ˆçh' ±ºi+YnÙ$\©±­D¶€ö$Ô… +ì_ÄS­)Ü1™ ãõ¨@Zˆ4uÕÙŽÓ.Û +Ìõ +¬ƒ÷í=а`VĬÒ.]¡Úš‹,Ó¼ÌÈ`Rô{á–Ñ”u*ã4£P÷ÅBéu%!XÿãLÔkO)L?¶ÍEr¢Ñe2t©ZloºÒmY®‡ +·´­€þx\`¤Jæ#(Œú%I§Žlx{d t!B2¼á¸¥4bzÃ`°Ãî¤Ð»“‘}¡»Ò»¡* +"R‚Ä…T°„ø©{@ ˆ û±`Yǽi8ÛÂ)Ô f›i[CýɯüÉuà#"ˆ\ô†qF kpDbNb\A`öõÛ9Å `ÂG¨eÔë¯ôEÚ½˜õv0«¶ú&›ÚnÙ4´ƒ‘±˜ánT¢‘©‹J»pUبš À *' =àâA¯²=íÓn•ƒ1a „Ë‘“ «³.éAzáýÎt"`Íeóœñº€8”ËÃKjé%•ó­ÁX®ñw­[iÿ×’ljîA›¡íC„nßf/‘4öåbW÷o @­êŠ6âsЭVªÊ”]A ÙýàbÌvTº[XJ¹ˆ|\¡«EÙ}_+ž/敌ìÚnå Á#)RÑéÐÜ­+?]b é±O¤Ñ9:²Ù¢c[0Di¶à#múEWØ}*ÞÇ4ígóÍ\wZ[å¢0S,ÚGÐM>d¢âÇö¢ñÿ_ÐHT ÅžmGy2G‚R±{\ˆÞ^hÖ÷44" +¸‰Œ“ìm–mÞ? •C¨Q hxiÍÐ= +&¹j _#Ÿ¨‹Ü²…èÓg¦éÙs”œYö÷ü‘³¥ò³äZóÔ (X—fK2I1ËT—*¶Ú¶¼1©  hRnjU‚7œ¤Éæ¼2ª +œ‡:XV¶kgK/ÝÝ–AÈ ©=ÙŽ«1üM[”Zb“ܰ ¥Q‹˜u/%ë ==w|ûh¹ø½z…j^fEPf˜tvÔ¢‚ýåSuNµHÝ%ö〠;/Š9±ý°w÷o€$É…¸/º¡˜8¢°°qÖõ—eºW÷ +¾ÛæBÕòaH|6«¤{3]ÒzçéE=ŸXÎ+‰H`5ª„L.)éô<µ‰¥™p³ÄgŒRìn©=…<Ú ~½MÔÌ4Ò^²»È£¨%žcÔ®MŠjÈ uërŦ#[ͽ1b—:ÜØ Iî ·8°Žë"yÏ(e¤"NÄlÑÝE³ Ìå†ÛF5’$ÌK&-±EÿîeÛi«¾na,Q#‚7Þ½9ä.QJ°)ŸðUgO¦!q:bÝç™Q= UÖqÜd:åÿvx¶½Òë쇙x ³ñ1g<“똕?×cfNGf½– Èì8ÓV×ftåMödÆ=´¡C~Æ4à3Ï!£\Û‘„ã„âóÌVãuà§gªïqø&"üùq+(øAñ ǤNÐâVb™lá€5Ã}*†|öºXŸÒ2.0Üf,%°‡UþyÎúBïŸ ýaeUs, +¬ºãì¾ášy8Ò’;‡ßD«ÓW³Ïó£Ùðˆý›Ÿ!BÄ(?Ÿ+½E¥«56ôôÔÁ^í5 +PÖPxMôJvULLvò\Óó:_¸Åâ…FÍúÙ§r¨-`.®Á'²ÆÖ²öeõ¨é[ÅGÃO.êuªh5ëuÙ *k Cø™J|\=„Õƒ´ VTjŒŒÍVcW¶#&êgRhEÑñHŸßÀ¢¦¦åÜFÏn¢([qföÇ÷€Œn½ò2À‡ì‚uZ.@¦ËnÏŽ©3$çË'Q}TóôÔ«ïP~^2{¾‚Z +‚ÚT}UŽ|îB|è-N#€õDfDG ºþ‰hU’z"ê‰è×øUã·c6k:•˜ ÛAC=*Ì\¿F|;$ߢà»VMzR5#6z¯xÏËÑzTœdH"ºÀkÓ}½éz«cìëÀb¥ÇRàt ûØ`_2Sˆy­#*X{¦[ã Œ‚ÀŒ„PGÊχv=lÁ¬H¡Îú9bËäÓ¸ª,qW%Ê0ÔqïÓ5Àõ¼±& ï?E+îÝ/?¿åU›ïàjDdf µ‚ó:äšñ^ŽyÇž›J%¨ùåzèã$kÊ÷Br!ž?*J°tkáDÛ¿Ä €T๿GDè°]1•Îßž‡½õ(}·b.‰Š÷Þ8®øÝºdöî'ö„À¦û–rõõˆêÒfé'DB„ŒQÔ=ŽsQ1e*ÐH™Æ.÷²•ÿbêõ3Í¿ÒÐý0WÙïZg×K(Ôát¤ËM÷@\Ð9§ÒeÅ¢‡› 佸wìœÆsJœ[nQ¢%t’«‡6µÃº0òhüÀ_L¦– “¥¨@ÁJt¼ÃSÎÓžˆˆDB}m®¤<+ÔËWR©¼C¾»›Ã<„f¯¶Ý܈RY>–.$sZ¬®ã×q­³ÂË¢Ô`“’o„® (ŽÞjô(²¥ +dyr´‹;lfô;­Á-œÆ <|>°,´KKèûiù‰¬mÓGîÈ¢è??ýè,›S; «²ÔPwƹB±V!súÔ®š[ëX5³©Ö·¤õ .mÆVBlºcù w¿¼£fÉQ·ÿÙTˆÕ?—[ÎÓKXpÛ*÷\a,r1œØo9V^q]rJkÊœùo„Ù°é@&¾N.=gb"¨³GW¾*ÊÇZm¿Ú)†·Æ¥ŽW7Öd5½‡MØ’}ÛPÚçÑÿÚ›ñãßòmŽMÜ?ÍÀ5!z¶§øzv]b¹!¿ï!…¡'Aä½5-udm/éÊW ‹j ‹ÔMHª<.|ù'p>NB }¢x²n+ˆ”ƒ=Z"”ؾLÏÚ”ÓMÀ‰`ž•õŠÂnx¤¼tΑõÚ ÖE–ÓšÝEqvùJØ€æA?Œž)Õ6Úÿ5¡¦uJ¹à…Æù©J•dž• Èœ¯±/ê§óYK×.økéI“»"Å6ŠP[÷D–Â+ððÔ3¶±ÒNå‡všzýtg‘ NŽ>Dí“@NÝC:‡§‹3C;JÄD¸¼'a3® ­ÎPðPkˆüªÜöSú£*Ms¨HYDà ÕÂÆë‰ó´¢š¯ÑY ù`‰+Á&‚îÄgÇ+úLh*BQ¼Ró¤™aR´†z?¹àº\äá2³i%UQ³úâˤG8^ÝU”ö:‹†x s‚°öК?…:%ô=ÃüköΟ…n[û„±y{÷à!9¡± S#aI‰_%ãš³=Áϸ]“ýRÚÌøñÛÓÌP×AW’õM”‚(Kd‡þ;†Rl1Á~eG¯ƒŒj»aDÏ’3Û¤…ôC°ÜFÝrRhׂY"σi®B™>Ë­g«ûÕT¬Ž¨½,Úš#+:/:ÀÁ§Ô%  ®t]@{Ù+.¦ +LðúY9GE—(|ZƒõÙ# +à®ç»¥/pA"FxF‹^¾;.aaV,lOºP\.TÆ‚wîçg‚Òý¨èòA*C—g®Dqòξ‹8|»ÂÓ¹NBoQ°“DìTŒIãáwJÒMšݹ˜˜Â»ÅÜK©‘ŸÙ:ö_bš:^Ÿ}ÿDÌÇï§Ä`½ B5 ›D•øùæ€yÍ9Þí+ëø%—€ 9l×rÀ€jÔlñ¶Ù÷$ãí3Tå…ôK}.W§k¯ú/Ädñ}¡&wnoüú{¼®ƒº`òOxËÛø °~*^•æx8Ø[LzÄ^ ~É ö°wO€XЕEQ-=«!Mú<¾!@¨¬îíAV)8Å®© «µsU ‡¸ _ÚœöqWeé[d50;=õå +F'q©¸/íQc[Xº1-É‚¢Í!ü•5ýµ%Ë´DÉ2ŸÈ*ü'•ËžÁo+%Yf`}ÍTŽëdõuÛË{I<½;ðLJ#EŠ*ÝÆÖÑ G vtt½ž=Ã-Ö0¢eõÙ +Þ/$4‰ó$dôC:O0Ì8€äN¹w^ZõS^a…~%;ú[nŒÚÑÞ¨:"˜ýZ†qû!Žõ«ä°ÆX0ö»yÒ:Mdh{xöã‹ÍÛÊBr4«£󜃮f^÷ù]]g¨ó©åÎéŒêz Ì\*ñ‰UOÕ\XN‰§ÃØæ,ö ý-Æ»ñÞq]õÄ‹wðŽ¾øQÊ2[(@¥ó3òÐöOk¬ç«ŠQC)%3°O³¦=aÔ]uG"½7¥~¥ËÝ_€8]Á¡E=As¬2G÷8Ë”ŽÏN0+%9*T £bIT^1‰= ‹•Ïõñ¨WR‚ÐTϨ£Újަ ñj£‘ý`úIÙXY÷–’{S5D—0[àë³8Y˜’-*Þ‰é£0(H½ÌìoŸÝwpÿŽˆK,ÿ` OÍɃ¢€¨Q‡Û[ÿŽ­Q¡È5-9í‡<Ŧ¬ûOdèhÏW ¬%YD?Hp†ûF "Ï›,Ç)à™/³&2~ŠECÀZêŽm…ÑdO%+)Ð-K>›_à–^NH_ŽêÜ|M°]{¢\˜²Äqœ_â59"{ª"ò©-ï=+L ö[øUÆž>Æ€f*3·ã“3¨åÚ‚ƒmÅA¡‹à ˆçtU±ù r¹}aMq5Õ{m’¥Àù ó=šè¹„¨xE¥†”æqÿÐ+iÖ÷ç×N_*'QŠRŽŸëOd˜I$=‡˜³¿æÁ4ˆ&æ}B%"U¤µsˆUïHOAÝÏq¿M ÔÁŒ¿ +Kâ9Ÿ'¥®s:ÖJè¸íWOD²Çœ‚àÁDæèÝ1d<ëõ¾H9 P¨o ,þ5‚I,zQ\å‰_ƒ†_ðWN–Î)°y¦‘g ¥Òkï=I:¶ªëgJ 6EGœªÛçA*Ÿ<ã´_¡ªLILë,Y´,÷;#¾øÛ¿"Ê÷õ›OéN#]³hî™~ÿ®†·†Ôرe>ÇÐ()°ƒ@ÀÏ=ÊÖ1]gçŽÁ +¹<·8ü½¸c· %7]ß|œ²–ÚÇŸ”vnÓeŸõý¸Ét±{Ü(_¥±'Xv;¦…0}hÈÌ?ZÞ)WhÈèRžUñ378Ð`J©Àê×>¶ß ¥³ç,¬-źØQ +LsˆwWŽD j Wž»ø7þºà°‚@…pD¨œ÷P9¿»¡úSŽO‰­Èºþú©7•Oê +÷ñ¦$‡s ü9/ýѾšÔ¶{èÿú슨.%Ç&ëò^æM`ösÚ+á^×v(çÀq¦ïÇóïí wó u÷®d±™ø<»—‘ù9“àë`C uÔ܃ÃW@V1WE°æ$4TõNç‹v2â Î(*Ó.>¥¸P¢ç´?йR«—ª*Nýðq=HâmE Õ(Þ•ýÄ8`v€=kT£¨ùùÄüãl+‘<Ë_Û$ qz\ÕöÀˆþh2(šrMÙâ*°Ûï,¬„íLaždðuP´ +hÔEí–0¿~•ßïzx}£Ë‡òqPQ†ú-“ÌÌöM¸±È b0Æ`K¿ú‘óñ,¹(?Æ,#¥Þ;tÓr¦Š¶§ë°Epk݈÷vÿh¦z_üöö†6 |Ú{ü¾ âŽÆ¢H>Nqœ|ñ¥÷ˆïfî·¨b«†©àÀ1ìè—ï(ZaÐäF’&·´óÑ%nLtû<ÄGܯéøÿxг§dZƒ*šÓ°]¥-Q‘z,ŽŠ;œÀ>­¤RÒ‡42àîfiXšC¢Bx"v é¸Œ’ð3Q¡gÏÞÃDÔo/çáíÀ¿žrlé×ê-?ß||O`mn + %I@‘Ôäœ$ν[gkH¦zJìíz-UOT¾QÖ D©s!7IÌpDÌ¡z=ph"¬päPë#ÿÞ¸Ò1wFäƒÉ@>f +>&PrSŽÆc@X(šo–€å¶ +3±lϘÿH‘ïu¯¦V¥Ct Èú²ñ,Ó]’÷ÞÇ“aQù@x ;´Ó°l<â–pƒ¡s~‹CMmú9Jœòcuë6>å¹=b +²Éº†Óš ®!êÿ9ì+0Œå:ÙÁ,W‡€’ú´Õˆê!Môü€–¢<õX< å>O²iù +Òí%üÏú*¯ ,E$vN§Ì‡n ìøE1ßE(œÃjISÉ °Æqk0 EâV¬p—m]ÒÜ)É¢ÆôUcŠëº²KßChCóq„ym{Õ3¼ëÞeªZÁ…lðìö#kOч½kÕ: í~¤¢Þ#ö¥·… Ó¼åf£æ‰ËpêkECÌ l\§‘Pôo XÖŒò°kcò¡DÓ!+4„3øÖ´úù—×*jÆòµû +jÅö¡ÙhmÁ$ÈÚ½ßÒ.ú}ÀSÀ¸^fÍ<°·wìRb[4<újQH,²F ?E\^‹{î–"u9e$"èÎ’XÕóIqZ˜¹ŸdsÔRØïQV1Ï›`¼‹Ø~Új׎(Œ("BŒ +Á^aÎÁãBÅa‹*‡±çwtüãJ=¢Ž—è«z Œs‘B:€³$k\ˆÊì9_h8¬NÙÊX)Yߥû&*|g6/6H¯Ç×qŸwõÕ# +ŽMžÔÎMF gc% ˆš²Ck@ +_ Þ”íÄúó|^É2m5¹s$»ý¿/PK|Ådvm #ºÖs|ùúSI&¿~aùÈhWöTA™çöüÚØBg9@YSŠø"´ôjA6_3LÝF3É‚z8:GþË•û~;ì;«/TXÏÏÜVØ“ò&Ò#|ïž„‚Åß„\ºO{}Ìhg?tShAÍ{‹`ü“ÀUYj—äù5 +¬ U<Éi)yÚS£)“GÊG<:µ¬[5£š~F“Ôˆåg¦ì1R¤ß<ßœ‡1‘"3¯EŽT»Ä«o¾øÇ¾FÒσàËê!+”j –ȃÂí\a!ꮚLý|Ñp†­^€úÎ|kDKÙv¸YyÇßÌevåõ¬JÁ{D<øCS}ûøž,ÄSyŸ2Ïf”¸*i=š·Ù¿l¿*®oQ ØITÄ}ζ¸ÑqÄÑtÅâ`u +&ßyár?š,(=–ñ8G÷G[O<é@^´ G· +õØr¡˜¤e ´µJÑB5Õ#M¦ÉG†âׂå{D_áA@!ò…Ë6ŠzQân–A‚KZ…ÌJH:†éP9…C¶Ö5f4ÝÌd„Bƒv|´šöºÉý8^‘Ȭ|ºá! Ž" ¨Áæä˜dµ8Ê—&]ZGTP24Äòy~WÓ„a…XhÙg*Õq-*04i5¤ù*Ì”²âúˆÿQu¾®)Úq ¬;[@r£SÑC}B‹¿EÇ  LÀS“=€×Ôôæ‹Y4þ&Í‚vW{J4‰íPÕ+ܬÎÜ¥+Ϥ·ó}h¸)_#bè?ÇÈ[˜Ò¿9Ê"$ð,96¢gìå›ÔÖÈKöÐÎi^Šö—¨7Uš—I¾æ~±æèñAɲñæy4úú5à5KhBœ`ò·oN³—üÙY¿<ö¸€¡ö L"£ +5i½€=Ÿ»Ì€ÎÈ?W‚E5Œ¢·Q(% ¨ à-‰ÛèÊc0ºRÖ¡ˆŠ‚fG:âÎGDÑvßQV ˆÒ†Ë¢åŠóã %1ùp„²úÕFÅy{± Þ­"_€r®”%âÚ|ïáB×~?²@b_{P¿8À`õ«#»ð¬»2¬H›¢}XPŽ(º 3TWžð§0·Ø¿›äbÙÚF Ö¢ñcê(Á½}|µPùîˆ_PÅÀæÉ­ÕÞSÉWˆV¶,RÕ~é¾Õ³ â͆4øê {oèë Mxá°<òjðöæ³ÍxŽVC:ŠQ=`ú'±Ûc-øñ`nL’;ýˆý©PAÿ*f†šÂëcŽð«ÈjŒB1†·¿§Ø1Ç ˜pGª²Ç"]x»Sþæ4ùHµ€ îy â Ø~‹È—:‡æÉºâ·¨²¢X™_¦£„Óð*az"‘Û¦JÏŒ¯ôÄ£*kì=hêY¢³+-ü:BÒ9“˜†÷ø¸ÆÕMOÀ£O(zþ#ŠþFX¢‚;¬úŸ>+á"³0Œ?žˆ¢I÷ˆù§üƒEAUéõÎú–u“ÔfÞÃç¢åÑ@ŒmíâºÓ•áF`mð-tÔÕ¼vœCZù»C¥Ê„lݾ}‰êGHº÷±|†ÎJñBA_ à-…BX U#¤û{D”Vdz°ÄU9ú%ÐYý ˜óGž@à+¿Ú„{Š9T¸)–¨Ôx.ä+ç™–¯ˆ*+¢p$ù‡s?OØ{N·döüŠ>Ä™ªÏˆ`k¢Á„ÎýuÀŠ‹TZT½êÏjE\pé›R3¤ ý®Nµ´€K ‹°XID¹D%Ïí|£º;Ì8VxUV ÖW‡/q̪ƒ±Ži·?Ü—EÔs¾E¡î@Ò†Ûêňê:‰•8“×4u¹Òsrö=ÞFžG׺‡®õ«Ÿ)Ðû¶Ô‘ú–\ 'pßø"uR´Ÿ ˜œ+ÖÑèrÈÙE÷Å(2BMØ;¡Û»Žâ˜Òæú쟊¦Ôj@}=pàQ+ørŒÚ³™‹êB0‰<ÜÎÊ9€\™ ÏGœ„g{dåÅņ†"|Ê_-Bú„P ÙwäzñhÁÜ?=üIÕíÇ@ÜÀÄ# Uœ{iD”ëQ2Ó~üYhÎßÿ#÷ÏÒpÿÊ“% P¶'áÝŒØ;°£,©="RÓ7i€Ò"âˆ×x=þ„Ì- +<°H¼;²½ƒ/1pdÊ "bG±âL™±S"(XÅ@Bô²%5êvZˆ knäåZÖÔªO}üIERnÑœ ;„Ž~{en=šíûÛ¡ì3jJÜ:Cl£¸Rɾ ŽA ¯¦œûI2öE]·z F´Pˆ`ß ”żBúÄð¤”iÓpŸ`O5¡âMîxÅî½äEÏzƒ’ÌdíÏ's*ÃA»¯ôa1”™P;Yo¢8:1¡Ô(¢øu&›âiÆùûÞ-ûi€"žÀTn¸lP(é¿ÎŸŽ(E}‰bLTCÀÞˆŽ³*½÷¹·wÔ•ÞÏÀ,LÚÄ…®PöžÆæ”åžz;†ÌmEç÷§ ‚E™·D…P)‚ùqTf¯qþîY{ó=ÀÄþúL»B*‹xƒýPâ!«ÿ>in~Þýó­»Ò| z²æý1ªªz§àøÙ^õ^,¦Ñ莟ë˸ÿ´òͧ¨@Ûðäð‹uhß^Ñ-i¤ã{ƶtðT†^ûâÓ¯²Q€‡Ë EÔÃOoDØåB_áwé1ãì1U“·’Ú³ßW["‚IjRë¯ ÉÚDl™aO­g‚ ¸xšFGZûç{m'€¼Ó€ýøSL}<"E­{!¨(#¨(´á&u ­„>i”"TgÑjaRÚŽ66M‚Î[Äãf2뭴Ű7¼TŠ”D†~ p¶ÇÞtò~„ 'Ö…¯¹â¡Ž§ù[D 3Ŭ÷—¨Äè›ó˜ó0º†ý‹} M3‰×ïFï=6!C +¬`Qx ¾£ßy³ •½{ø;½‚4«‚¸ÇÒfdMÎŒ ¤Å¢ÜÚ™]|=Þ?K•e²dæÚª|EIПBŒÊ݃ÔGdSˆâ@Ñð­j¯E˜DàÇè%¼sí€âÞed0èÏÜÜQ(9Q¼)D¡õçyÿÂì¹÷¯F k@Ä“} >“%n³›=ïnÅ>­|ʱŠí ”¨ý"i^Í;ÛyGÁæXÍDÎ $r +Ñ<™tÇ£·¯´„VSJóÍy Ïejó½Ol] +ó”yJ^‰9Õ<%™ë”+có8OªùÊ—ä; H"ø®bæP×5gbJ6g‘3ýåÜëfÉAým ²P²®"&exÅ»LÕÕä1S9Vœ¤€€^ÀZøC—±—ñÄ F5ÛÉcçVN{wûÑÑW?ÞZk¬ÀÔ`ñÝý,ñà¨gê±ÿ²Øþm‰Ø›¦LV™gš¬gš,q~¦ "r>=4¦[#Q”â¼ðKè—ži»O§m (+1²{¥a´³Â[– ƒ†`aŠy]7žƒ‚A쫯gM + /¦3DqˆàŸ,BxÍ“8@JõÖ–Sx–nF¥©õ¨J"^ÝçbZO Ä,Ù¹_\zR,ã=S¹¡0ãb§¦ê”+›VŸˆoA!€VÌΚXš"Ø| 89,ƒÏY0Ùú}µ3ŸˆJá©ì*Ö0¦kÕ&üùójw"~EŒF‰=5úqî­ ¢E¦¡IŽ8Åãø!@%j[^ˆH›k4ØP<”×sä×–2hR‡«ÒØyÚ²pÆ £Ïâˆwø×ÞÏ µ³"—¡}ÃH©1TM„W× +=Q-±“ ¦ë‚\¢‹zÆYžÇÁ™Šº&-èš P‰¹$K³•`i^¹fšS€Þ“q g`oŠä§â?E" &F€„Q4ByØ”Û TiVßk9Gë^ˆDf@H™ÒÚ‡:óžô˜ù#OÁõ„>¸Pù`7¡ØÞSÞ#¼D´^š,ľöí<ÒKb7áýšÛ!MA+^¿È‡ëT/5åÖA[ÁÜï`ÌJbö[8ƒ‚°x¶—\kÏÞ’E‡+£m†iM2þÀ² ¶jH¸ùDóŸÖ´Î *ýg×ô™n[` @A ÒÕaŒó£J„R-ÁŸÎ2¬×MÆžîŒñìe9)ËÕ6ëN¢pœÚckOÒP¤X,“”¥=v^{ÄX,÷‚ªälttZö OÒ L–ƒ¸—b—äkIaK"Œ¾ŸFôªñ%œ$¾9O °}*HžŸ1õµ9 ÙÑ—û—ÉÐÃÊH <™h§f¦*s»î•êÊHêþß¡æÅ—M’3ßÏB#Š3ýìì}ˆu¡Ç…Òø{ÀÎÕ.ÙéíXQëÌGÌhÇð Nbׯ0¦·—½Æ•¤€-j>§Äw•ò„îýžGgj@cݸôVéÚ̱œkøÜàIͳ ž¬;|š~F¨¯-«QZi©lÁü/'~°ßkÜ +°©BDµ&±P{Ž;êÅ~»¡ªªT-­iÃ>#~€ +y‚šÜ¿I2÷ö0,[Š›üŠ{NB¶ª®S?„kC ”ýøtö@بãh 4ZßFJ½0 Ö=’÷W=?ÏÞ—ÕÅ&ŽqÏl+Ý +¬­¬$Á"RqKÑMf8‰¨T“à†ï8)»O„ãü¦îžqS) &Š’:ç°m=O¬È•é+6%5ÅæF¬+£) ÎIOå>tï¢%¢Â~å„VÐùmÆT…‰¨„]4Qô ‰êÖíÀ¥IŒžGF8ÇíO¢\3¿ OZç<¯ó#a*°¹wA2Î]€¿0‚es™î#T·O õθ69žÅÌjå*£Â…†êý&[©…j†/ ¢ª¬­&’l–x‰WÑÔUaÒeBÀ8¯ÈOþr&t7!;SüXÎêj^ÒìtlJ0]¤µ¤L.ë=œ%UòØ…W[þÁšëhWÈŠ¥¬Ì“èl4™#÷¯-›UÇ$šl''%*³læVÜ´fFêy,Ö²†Á0‚Õš+Á9ëî½÷û1xÄ5êG2“ÊÃ@!*Ò+Í%¦ÚsÄùÉ<n)†öð¨¼ÇVA¹ÎùDf¨"ƹõÔº¥‰›@tÛ¬@OT[÷àé‚€ö{1øjT_‘4§f˜” aMÂ,ŽÅÔ)lçÇqqæqSWݧ š2â;Ë€BáÊckÊøštÐC,K{¡¤½WáÂáö²ï:t)Èì÷DÇv1V¢ì¶¥ê^׌Ì(ëÒ6à‰vb%`ûn"Â÷Ó$pýÕbéç…R,Fra8È·Ù÷OäÇÑÍq¹êq¹¬óEH²È€ûú3Èô¤'^¥HäÁi¯Ç‹Tæ +YþfB¢†øöÑ_#ˆ”ƒ|?ˆï°ï +…°Ÿ‰ýÔÖ|4õùi¨=팰c%éË1›io^ ´‚Ôå +ã»ó$­â<ìF¹{X1]‹j;e˜ŽXÓ°šF/š»í¾>X&à{æœÍyöIPÑGåÞ…U‚¥³ätÝ’)MºB]8:óÜý•Zû±¬$7ô-¯TÙàãçÇ’Ù¾9 pÔøõ—ºª{]Ù‰œS yå›°mÐâ%~îàúELÅÞzOªAZaÑ +Jß”eÒCK £¾ÃDù›/”B‡{?»½ºÁ~{; ”¢ÆN±†.Í)©#›ÿ]ˆ#(ÁIÚÁyroQô   ¨@]¡ÇÍ ”÷t‘EQ¾!Ý£ÀËãô%â6¶z ¶†;Í7療53ÐÒ‹0%R†{]ý†ÔŽÀG²Ø`å²÷ÞT·Ï•ž3-jèÙ(3ówçñ§â–ðZìˆý+/#ìR¢Í虈#eÝz]Énçoˆ‚D‘œ9=M¡8C)V>ÕLtA\È|©z¾RdM(—û•ÐKeðïIJ¦Jìq’U6ƒŒHµŠËLbnŒñ¶ÕyÛÍI¾DĕЄ¨ß}œäÌâÚbˆ›Ti³St`ißëÄPÝ]ߣZÀì€4JÌT+Ÿ"Xósd"u¯nÈI& eL5Kþׯ„™¹+&Zîõ›Ó€+cµÔÁbÄ ë·žŽ,þ{DH(0"ÃË".ô%ª:™’¯ ³7ühvôX·rÝetê5*Š…Ç²Çmmó=â¾£QDº¢¿YÂm$£ôƒ©¾còþg·W˜Ø¡º4Æ-s~‚Ìä[ç¿eg‡!Ö  •¡vªB Y ƒ:|:-s}ˆ'ÖU†XCoööÍy*54»žK'+ë'+ã‰Õ'v¯£br¿L2Ói‚sp*wÎÙâ {~öÉ}úqt3vĘΫ¿™ûéà.}„ë(§° ÆšûZo¥Då)°:.ƒ4¶{D½ˆHÓÚáiì—ùGœc…ɈÙï7ëÏ„ pÁØ%'ú^¸Aöîa µ(i™h'ÿù83ôÖT©ƒh•^z‹ˆ5mÙ"±ÙïÖ·çyε¯ Ú =ê":c²%ø&b»`êõÊe…–“Šq Œ×4%F:mÑÕ´³¯£ ¼•ï„åê¾:ÒÅÝj2­Ý›¶›Èb:AʪÀêÕÓt~ªÑH…«þåq ‘Œ#]­Ì€ÌŠõ:o¬EWp»{§וo÷¼d“\YeC¼ Þ/ŽœÞ›Q&ÉÔ-ª/lôæu4§×äî„›Ìñó?ÝQ‰Dçƒ}”åZaQ ,.̰µÆ7HVûF(g]€¯Q¾¥ƒcœ‘Õf îƒí<Ø ; Åí ÖýEaί¯á»³5†oARüõ);Xl&0s¤ ŒOœpNÑ (((ÆyQã±ÐšP™ €Y—”Èû1À·LGœU– Ï€Q›yõ“kðÀ‰Žp[÷ÿ²!<ãi㱓úðÛÛR2gW³äKåuºÑ{{¼÷£#f¥iÙñ/:ªoß-oQÔ7åž<ÒRÑtrôDH:ö¥s˜]¢·‹G‚ÍŒ"ee;˜ˆ¼ À‡ëXÓ€Å9-…µvŸÀ)}ΦäŠ-jÏ…­³5O<)ÉÝá>šn¶©QÍ.ñ¥˜?þí\ˆ° ªÃ3 +´"œìƒ*¢58ÛëÀ¿ZNJ1…³&R}}J?GEiµ‚tQfô6 ZVئáçdÅPfÔÞXû2%[Z™ì<4ìO#‚ŠVcNˆq#ZDX5¦CIÇà… d6 B&àƒ:)VêÔIÅzÁIV0Ìý©«D°DDî–æ•}" ƒ_;@¬ÂÕÙä .2ã<Ív¶"ÈœòOd¦x˜²¿=¯„Hõú ¦ƒFˆçs6žæÐØØ%ü¿ÊО8/Õ.|«ˆ ÐõL§Í†“ϰ—Þé[½»Û‘ oÛã škû`±%†M]µg%¸š1\OXŒp’ øo ü¸ÙºtG¯™(‹è®7Ô‰š¬ÒÁoCûŒ¡¶ì¶ÜÙ +`Ø¥Ë3EDÑ5¬ÜŸ[2L ÷ }d„4S4·Ôö÷ùIÙ…Ðü6Þ·—5jÄFÔ_µA³UÛíú×õ‰%jŸôpôDÅnB\=•4¢l#î¨æoOo•=œ45ˆ@’‚8äÑ£û +rÀ,0l4°k\Ij‚–ð¼®ÔmÉòë·|î'ûq·8ø–tz³ÚŸ†Žžî,⤕½tè€ ÒwKSÍvHaZP¨FOŽéñôH•‰i)ö@9dzw?2LöÚ•Ò¤ΟK—ßs†ß=X‹Yû8`Eí +|‰ ”NIJNÔS`cv„zï€imßA¾›M£*FO;*‹y-gìT}qâJ3{ž2…ãÉFÞ5°}@2² Ö¼@HÝ_À,t1³Á~5•yjˆpŸ-6±û4;9s°žh[ú÷¾$¥;tÎAŒ¸(Œï§ß9™ä«_+ñd¿[hßIêØ5€v÷åïQœObüú™¡¾¯%û^Ë<ž×Ÿ!ñî4¹pO$çϱ[ +s‘YE‹QÌŠ§@Üõ{c¸trB±ÌöN¹ë^Þ#â#ÙëÑbG8Úwç Ý7RTìÁˆ„Y{ÍFGï›´±¸ô}ü|_DU­_“¯¡ÑG$÷K¤ÇŸ®™•¤¨ù/têÜL@Õ—µ2?Ÿú~D!?@~pæYO#6HÍùâÀÐ0oºôG¬u"âåÝ™ÎíöŽ›Ç`m3KÜ k˜v¾üoðkÚ6kŽžî`•ÿ`€6±œÊŸõº’Ã‰øíÁÂÙ‚™¨by¼l”pl¤'ˆÐxÜA¥g…˜#Û#shGüæ;A­²x¡<Ø%1Vº`â©LK:ÔÓç)ƒª§4>û7­ØLá‹‚x‹B_¥U¨0%õÅ’ÐÂ}_l‚”Ÿ»åcCOÔò%èCÝM£’{‚Šœteœíú6º¾ñC’²Ñ ךù«ÇÄæŒ¶` +÷Ï+ÅbÙÔEÔC2¹7©0=§%bИc"Ê}!N—#Â=5÷âBE„¢ÿ{\^›Ò!Àó’‹l?¿¬óíaËû¬e¶`V8Ô‚+Óó׈'hŠ Q2}5xE„wœ>H’ÓÑ g…‰u(û»œÂ'éõg¸o¿=ISYlö^(SÖz;‚ËŸ¬ÓˆeZ*Ò@[‡ü­·”×Û ð‹c…á"7*lKÅCrvÄG@ñÜ›öS¼({v'ýk|î=â5©@[šé¿)Ù:j1Ô¸O¹Ä*íÍXjºT ýŽäuw‹ÇÝo×½AÀ–ÐÆéqûZ¸¹»#€j-ì8»ŠÙˆî˜çBf7¨òQF—äuGÐ(z](¦íÓ„£ÈK‘¨”Ï 3ßô¾UàD¸'¸nÚÎùòtÿn™ˆç…´êw}¢½)h " +#Š j?º~2ܽI¯© ä•ä4)ó¢|`<ÇS¡s7joQHoÑHÇˆŠ¢Mk5vЙixPe°¸¹È.ý,6Àú ™Ø—€v-&™½›ÏB†¿ž +èÃV™Œ0|@l¦ +d $ºØkó9¤^¤»aÎí ôö„…â? –`Ç=[®À|ï9I¸þ +Ú4h鎚 @"k,Ï`$dé+ó0—ø8S!.µ{=[ÖŒV€(•!îF%„ SæØî˜\€$„?•ö@¨æ Fb“úUÉãVØi¦—KOM¿‹@5M0î´w®ôõhr ²Ö1,ñýÏ ´JX1ºæt•é<ö{H?#"¿ðu{<¬¡Á1Ö9`ëʃÁ€†æaF&¸S‡ˆ‡vÊ †L¢àxí™ç(óåÐ@|ÀÍAWÛQ£Ž¨^A¤“Ðæþ n˲l‰{éà¯ÙMæç°d±®tk©Vƒ†@ÕùŒ_°–ôô§ÁøÁoý€Ñ]>V³È‰†ÄómÄüáúˆ|s0äWªèoˆ{OšEüÇìTØïv¿A>Kç÷ˆxV-2ÅgÆüæ<ãÿ¤ÑdïŒÕš#4p¨ ¢g75ûŠ¢÷E Ÿ :ÃúkÔ?œÛ£Aåì¢3Ìâ…½ë^%AjoÈy£Ÿ=¸=÷ìy ™5œl÷â4îê- +/1r´ÄL“’õaW£Úª’_‰¸©E/œ: +&Ø’~q·j0ò¨“RØýæ<ëÐH' X{¼Tœ,&”’Þ#Þ–çHn¿F!†#Ég¦Ib³¸M«Ã‰+ÁÎgŽJJlR†ê„ûäK[¨6¡l‡¥“.(5ö² B 0ZˆT“q51“·€ Ò,ÑõMZ¡#q6¤Å´¡àŸ«yvíWMº§z'–NÈ‘ÄePˆD— ¢‚ѰüÚw¯ÒïiqWÙsàåK,~"§ -`ÑP²d¹Å$-e;)AhÜÓšh?ˆ½û埣Ң¤¡í ïÅ×ÏãIR.˜FB*º¾´ï@_èÉ!µÐnoë-ŠÔ`aKÑ"Mîþ&ݺîŠ[“5Ø)ò"´B“hìýõÏSÖÖ|'Õ{õ£˜ˆg{=šÔŽ;ì²y¬\ñÁGYƄْwð+ø¿ ”ÿÎJÏÐÁ=§ŸðwBj”MCžÙ~Ïywÿp¢D¡{šå›4}Ë䦜§ªF™;„âníËy +4Û¼EQtêv}¦ÇgÄ ‰Ï^H9lJT(è£C)’Òjtì1Ør`¸‹«õ£0R°4‚œ†ú¶UG٠ƃK ý3ƒœÕ° +£¹œKà”©êÛcbßJ§GI“—)¤:°íç¹Ú¼±³ýÙ…¨ÅÕEE%½Ð§çÁ,‹ˆjùeè¿ãNÛ˜Pý"À;Àç>/¤ øWrõ½B~¤NÏ{7=éQuœ!‡ÒŸÏ~ŠrfAÓd1­®æÆ Ã}ÏþüI€àNæ/¶^Ú·îADñ½ÈÙÚ™¡íæ¹Â¸îTÔ`ް®¡ÊâVi’F$Ðù§áˆ9+Ä@ö¤>¢8ÏuPGûñWae»7Û°ù (Y •Ø›ÕÄœˆSìaÏ%ib07õxîvC•$O–”yÀÍ ^-ìy«ïˆ`6–73ŠÓpõDîl'Ì6˜—¤FõœˆéÇz;DˆÝ#Ù PS Œ½ÀÍ®„ãÆæl2žf +‡Ó¥9a + „¥š/Õšƒö§1 ÕjÁMìþ½(—åîÚé—KÊËûÃnÓF×SSð½,+BDFìÉÑ^ÁE‹v@ R"*æ™×ëeæAEjÄÎò+ÒD¯kFÕd Íxì p¯äÞé[Ä…櫳èüÂŒˆæ¥?Édú ƒq/¼¦`þ¬ükWþŒ[›û«—¸Dc<Å`œ ÉªÒ ªÚVŒJTZ8¨sû@Ë” + +›`êGp… cçWÚ;lÀ‚üúæû×oí€üdWe:î0X¨ç--¾§+êC?ë=L~Gù«ü¯ÉšÍX°/9<{PÂŒ‚…’1sO'¶S1µ7wc4Zð»¨hÃïzŽí°)HÇó‚Vì‘J¤@†tŸÐ}*Ìߨçå@Sg15>]#"šˆÂ„dà¤ÉN±c½×F¹Tx¼Ë$?Z’ÈòÆY™– †Ý r!µ%®³jìÀ1É¡këZ¼ ÔáY9©æ“Ðu3ÊaþÙ|>%\BµŽ$_“÷ÿH¥$ìa×iÿ¾m<Ò¾[6:çÝç¬Ì™Øj'•–Îàz‚KµäC’8±„€· ÿr»ç§àÙvä +¿iQâ ¨[6­Š°F/Í‹+™ ªô>]ACŽˆ`ÒØ5¿Hz˜4q­5õÚ!Ià_|3~ü¾Œ"‡ïÅvî÷R„~é6}«~CÄRÅZ„(Æ„AöG–¶DÖ¸‹Œ½=˜aÏ#õ=¡‡¢.ÑÛ‡joúª‹e)é §¹¦l¶@tfœ8 çaY!ì))§a©¤À­Xð B@H¿hÖœ™*,«‚£8•bXl©@Q v +惭9$/‹xŸÁí‡Û•ÐÀ·‹¾ÚiRôlhBS +…ÇbµÙ:ǃ¢[N2"Qµ«í™ Þ5,Þµn‡¿œÈ[©/ÞG¶ßÈý6ÅQ”ú°g~ï¢!Ë PÖ4@ÐÅž§>¥¾ÔÃS …j„«A†”çç…0sK<ãBH`•GplÏ]F<ðž@â\ t»jàPx÷öƒô–t¬âþ n[§¤ßãf—åiìmîÓ4Ò-ž`T›Üš^-¬2NÁ³Àù¾‰V姈ՀóE šì}úÆSÓËác÷eý¿¯ìÔXôöÝSìq­­€ãwU8ÐG³3\o_*˜íœ'6*VLÑVlb!&7–ƒÔ³'vRvE¯ÎUQ9‹Ø´p’µ>„‘ñT†$påȽÐÄŸO@¤4~—bTÎN› ˜ô"€@2ð²dH=6…¤;äy¶×<›¨“â‰ûœ{õ‰ŠyBå9±¡^ø4³C*=ÜÁv¶ÝЇ$ ®ý¸@ÈÌãUØ“{£Ï (QéÀ¿k’tÏŸî5‹±èî8[³iÅ +]A©;-Jí\—÷—ëÎóÅH&<ÆÛrÛ_ÑNØ;â#Æþ.üNŒ†h‰-T ªc’šmG1d€iXsøø-×¶{ß(ú=n?,™xõÇrKBkº¾Fä)ÓâªÈ+æ±aßeѹåÏÓJT‡9úÂ1iÙñ€‘ší_WxÜÑ#cNØŠ-°Äæ½ÙYÀO‚ÎB¹*CÜg]Ë]dGàxƒ|)ÂCÉy®˜­ÔµíÛ¡“›")nQ)‚šº’},B˜ÌyÏG¢†Þl›‡ $‰-+Ö:©ÞÔ,D𢗀¡‡škÍ’¯ +Tã^,öµG#‘\vµΆXnéH˜ í°»0 ;¨2ågI&YécI™íç|^pÞ"‹ÿj”õ&}ƒvnàúÊÙNÒî—ú¨0J°öCâ*­°å¥ßš|äj®EC!,ˆtžîo,âè˜ÇÃÌϺ!0½vÕ@ýûív…ØU:bW5$?Éc°£Z®’Ëî3Ž!\€¨+0⼇;AÓÝvóÅ1ó˜{À ¦— €LCQïz(J$%9¹ù[îk:Èú—IÈ ²y”æ5Ù“J¡ÞÐPhEmÑêå¯HÁTéŸÑßÕ®º0)ÞIrV´¤ëì=Ï­J W ލÆý4 +*E“—(™%ŠŸ¨jÙPT¾ÁСvðXmD +gFÈv%Fæ# éIh”wÜËŽ+‘\QBñr†š7_2Ž?ñRÑ9[¥¶D/§6“œšÎ~ÂP=‹½¡ ©±×p’z¸æèÅï9}©QEÒÓ&Ñ!-áHã)á…Ad;5Õæ&û¨â·9¬2¾.¬²*~BX^ª²hþ!Ç ‰¢ÖS£+¢Z€íŸVÜÇí=Û¹ÛQ¥ÍˆjñØš…Œ’š†+'‚Ì’®p=BK‘º>TàNìDŒö¼®4Å!RN†>ã]6 +¤'ªW€ È5d_a˜xÇuoâˆ),,"w PøõS‚GÚäd!• bçñ”×<˜ý÷[Áv8¤Oï‡XwMJék€×gûÄiÏC¹yhuR夿” +© +êW¨¦-¸ÝŸ«œž*-BávÄ6æåîµÑŽž Júx®cöã¦ÎÐ(þ¬½Û®õJzžw¾‡uèøÀaíÉä$ÈIâ#Áh+€È2E@î>õ«¿û ‰…s¨Šlà=>ÃÈöRF]‡×ôgi9B8hsËõ¸æáA +W>½`@÷ Çó„²Åã,ÀX®/«„Òר"xÏú_jLÐqÜáv)‚%)òiÚü±Σî@Žj]‰×i4ÀæQˆÊ›#~ß&7Z¿¤´Õû¹œ“>†³×*$lrНâ×^ó1¯g"Ïó¸!Ñ¡“ÇK½_'óùG©nÑ.9ãñ=&Ô )û…’¹f†-ÏDV릲+htGãƒdÕ;lÇzºþL¯”X»ÛÑávü 6Ø:Ü}Ufî+¢hògqPUåUÑò¯ISZSÈNQ*üÔ”0ÈR~ *œ·yŒÑý’&LSÎ@¯Ç.#òg÷QK§Mƒ’ ¨. þ ùœ`-R!íèUˆæi_gø¿ø¨±^qá—»À’5”Gus¿Z=_m„úº7· aKNtåbŸ·x'=š‚Ýy({T¨axÐèSäãŠ0“ Ä—4Ÿ¿‡\ $ÈžõÊv;Κp?G!H§~U‹Mý0µj-GOG¦Ý™8ŽbÊä™ãÝ ‰B—yGql£†<¹Öú:)þΫyDŸÕÆPß¼Ôí¬§‰†‹«O[=Ù +úR§ë˜¬ö>Y­ÚjõÌE†ÑÃã0dwQžDD& +_ÒçÐVŠöñ9½<:(;)x~w^—}žyY°Èz%’E·  #°ð­áñµxÁ`ø r4$JxºW9Š%4¼Þ4Ú½úàdVGMUÓtOÍ»†ÖZŠ™îS€°d‘ih 5˸PÇ­˜Ç­s;Î †}i‘Vãె +IJ+ø…H8,Öx€ûðµIF”¶Ô„Ã/!-W´¶ØN®TüúWq€] E@ƒ|zÅW@«Kª®ø! +H¾ÒkÀ5óñ;’ZדZÒ(¾¤!£^oá·Ôn£CÓ#ÕCmcxxèÁuÂlÆTC Œ´“U¹Âtiv†N'!—ê˜ÔPJæÊaÚ3—¬P›è³–öT¨xガá*=Uc¡MVN×"‘Â}{˾ä\uuáèÆ¹ïB ƒ_Vú™Žá_’ïcgn¤*’ iáëôZèY)|0X¢a:^=x,3'”Æiû~N½‚ñéÀ .,x0I˪oÑÄ StÑ‘á=€‡IÊuÔ±ÒPÚI¢+Ý’|ÕýS4šCÚjˆ‚«HïõÆŸ¢Øþˆ¢Sœˆ™ˆ~½p:ˆø:“œ•ýÝE°ÒÒõªÿ:ù—äƒõf|vÔîˆàãjQ¹Ž°7•Ô8ž°EX`0s±x–½ç™Í¿"S,AËÞ9J‘4_ v-ÕÑ7 ÆÔøÆá´èÖ¬$Ê +{Бf^ü§S.Ň ‚ AT•ÉOÛ}<$À›3‰à2KJP5ˆÏp¦‰6,¤I¾˜KUÚnãœF…¥¡ÿããa ÀŒt9bèQMÏqØ ƒ|";××qÍñnhT-ˆ—ç–1¥‘Ç£ ¦ŠkNЂûaQõ•=·ûW³øÑŽ—×ç?«¯0©çO‹u:I*v°;ãA…Õ†ïÞ['È8ƪ¨48CW©¾º¿ºîнM‚îAõXäÉþ)äõ2ìêa}ežD)OC”–ÈÓ4QôXT#‚n!‹¦¨)É€þà5¢ê ›Îv"æ%‚Œÿ=ÓÁþgÑW¡ìmä ñD $O1ʵˆG£'€ö4ÙŽy¦ßã_!Å-v_©ù{í1Ó¹Ýzö«¯ ögÊ\µ[=ì.»¥1©Îg%"áD¦ šê ;“}\2è“¶€ãUtDÎ,†"3ˆ=tj/Ùš÷Y«z-!¡M›º¶³êÛ´5Éš×#¡'S0M~Þƒœ)ÌQòG©â¤a̘ ¯øn¡Š‚z a«"1ÀÈùFOP`Kª[fcúèë·,!Q!¥ Ä’\ ìdj^ZŽš½LlÁcÝ*3œQù"ÎéØÏûI1ÁZrCtXhù`à8„©ûM@˜+ƒŠ½Ô ?¨Ç3aç.#¯v•b0ö•³f¬ƒƒ¿Q›Q‰gj°}+÷3B‰ÍÞþ0‘žýË‹`¤­»”5 w;¿,ƈ3 +E·€1ªPüeÏÝÎÞ>~Tö󶤯¹©ì ýîÞ‡$>C7;…zÀluaS<ÉX4Lˆˆò裈r"zíc”£çÉâúz_èDdL‰\×<ëX¸CQÉÜt¦z>î,^Ë]xÛK˜Ñ² +Ï™ŽJ/ùC'5°#;Ò‘=D•,ø–Ä@ãQ„qLÐd¥ë‚é{t©0Ð+ÒgÇj ²ÔÜ3K%kŽ:Ÿ‚šZ*~U ç,«*Ý<4ªxUÀï×ðûÉ‘ß0 t-.{¼5 %TúèÁ¥@˜Ž*P +˃uêŒøÄI¾{¨tÎG´z×Ëä+«Ò²ƒ&´;T*7ª(‚WBZêSu$‰‡A +¹xêŒÖþk$pnõ÷~mîìgÕ¿ÅÐô³ä³ã¼ªFTËÚ…KœXN7.%'@·WØR8£m´ýlR~ѤmUëi芳|#‚C_DI3PÛj + ΟáW þ¥¦á8G€“°´º›þŠªãs/‰Ù×÷2kUŒõ6Jöq õŒ„5÷•mì¾´1Q2Ä^ä}=àõ£u–ÉÑ}&G¤Öm¦5Äx>9L +ËxàÊ„iKY*Ëçù|² ?좀ê~ÛšýÈœ(ÆøRF˜0Í‚°(Ú]Z+2‹³«e=u´BÓ¢;mõ¢£:ì…Ÿ0Qöµ=FIl,Q½6ìnG1íÜ;Ð;b¿e=źv Éú‹M ª2W²ì†Æ»ý°¡GZðº Ö›ËõÐÑ¡Ꙟ0¦Ln†{—rOûÙ/`‡À<\Ñ*î&ì+V…õO1ȽîòÉÃ1q¬<áP¡ôèÚ´’D—þÀó¼`ó—•pŸ­ES•ÎãàN¨‹¬F%„–‡ {ºZC‰àC'ž&4åS0æëL~%æšGÑŸf#ý í¿zL´œ4?á`ÑÇþ€ë±!`¬ã80ž?.LŽý©é\‰¤Û*˜àŽ&YX£hrÁöªr¹Ë|~$áóóD¿DŸÈù4å²úK:Ý?úéÜN˜®p”aÑåXBZd©ôÐKŠÝŸûI¿da6÷õ«¬ÈÈLžÚÀz@aº¿®›ùTC¯x\êò<óçýëÐQcxØ~<Æ×#ÝŽT{úÎ ž½ÖQë+’-¢ª¿‹€yöþ{ È¡| wô²ÝbVÄßã;îŸqZO’ª‘ª`åq,(÷zWëoH×›±”‹èí½‚ÝöaI²°4*_g&‡H=£Ž :H© žS¤"TþûFŒp'Þž ,þ/±{šg%©³[È¢[ÏÃjƨ@ËN‹ƒè>^ +Ÿ6ôjÆ¥@¯r•ܸ—˜ÄúÒbO)ÑcI5yÂø„ÍStYÐk]L_@hˆÂ^Eóø®“ˆ +¤Ô4§4º¦d± <ï¦=+æŠT {'¡Àæe'„š¬ëèE+ü.2E‚€Öz”• ù§AªŽ»û;|RJK&¤(ï/…ù;΃ öÐQÖjº*6©À©N+Þ+­2Jû“{óÀñÈD/~Sìñ?i8ÉfO÷ 5â˜!}z2‚ýrƒòwžF«õ‘•ÄŠˆ“„<Ø]m9=Öɘc?å@ïéà.nÏ–Vªp\G…ã ê„Ī-€ f(!þNI+-Ñ¡&s³{æDÖ^Ž# `7W •0ø}ÛÉÀ‚9 Ôì‚x{Š™o“ý攲µ¢ÏÕÕïÌáÑÿBë<-VûQqÿƒSy9 9ƇƫÂ(¶¿ª€ߊ~ÚRàî:Ûþƒþ=V=£c²—¾!òŽÎ£ürÚ1P9|1TþÓ Û?z'ÚŒV£ö£_Î а#R3î3&ÛëË#aþ`zMPà¿ù'ýìÿ…ú£øüçcxÙ}õ‘¨Á³nûE(†[=<+È}®L³Øuý#uÏey 4r‰Ò_¶| GN‚æ©„ Ú¿¼+]´JðùÔ/V.tûÊ= 8\gM0+zúv$ývrsæò²9hC~‘ƒwT³É\ÕÁ4Š÷˜¨ªo  ¬wWÏ\£,o"ÒxŒ–c(2G¡¼T|®‡‘ÃŽ*ŽKé‘»–¢jý²/:‹ý|¶ç [ŠúÄ@Œ·°#h%‚„œˆëÝ{Ë1}œ‘0x~®‚Ýkÿi "e'K$YR£PíIŒxÇi áñÁM27S;Î.Ô"Â3~YÚ0Èh ˜NÕ?«Ð‘P–gS5ÂÙáw†Ê<û¶œ‰0*pl³ZÓ a€ƒ¯»”^ŸP°&}€¶´±cFx…i;ÜòP‰¡õA,C@ +5Q‰¿¤üã¤F•¢®Äð½ÑŒc·5SY š¾ñÄëÒÒV;H3£ÔÞ€0s‚|•}T ëDÌS¼äŽGƒ(šaÙkIÙÏ¢30p~·`F»ú7LÜÀ³¼í]Ža=ânPô¬‚7À"—½§öè0ˆÞH"Ñ>#<ÓQ ¹Qr.χ± Jú ¥$H“|µZ¤¼~X³Œt ßÓ|nùLƒ4í£ô jF}Í¡ìŸ\tèUõÞŸ<,à`@EƒÙ2‹ÂûWšë ¡Ò_,*¢­ÝVr•˜¾Žgå8½ÞWŽs24ÓŠ| ø¨Dwþœ²B« ¶ˆ˜îÖJµ6”ND€ÆÈ½ËÈŠS7ͳ²ÎeŒèxoGÌÛ +>°u†‡¹–Q‹Ç)Àxˆ° ä»ÇAíé QÆÂ{!éU¤Ésd°)<ÌiEîWJ@ ×0ë??è“"­éý&ߣ¹]ØÍý\SÀ*'ƹ¼ÀÃx2¦}*ž>EZIþ€ÑNÄA èeÏNxZðÐ:’c5¸†näþûð?|þóúõ’UñˆÅþI œv‰®ág*Wâ(çùF] ˜ŽÍÀ±®¥j× íàû` Œ’Lž"ì¶„ÚXã°k1®ˆj1eã?Cï¹'=ß÷eÒ\©zܽ&ÆP«fWAÂì âQ×JB¯—½f ³#HÖ^Öב"@}âÀGä!‘ÇôW¦Eçwyÿ`ëÈ„?!jûð +`¢örŸLJ˜)tãþ(ûg³Ï&_æù—Qí@؈gµÐ_¨,ÄÙ–Ð6¦öC.¥êHÑÒUCGŸ;I!Ù&G—\·sôÌ:JzÞÔtðgq›ÛÌUË‹g(ñ¢¬3*®.S×”i½d„`ñH­Ö†,¾À.ŽÃ™‚#z(¡Ðσ\ézq¯£ô ºÚ3þ1ã0§”ˆ¢c ¡ÙÄ‚ØTjDr¶S>a"°8Ú«Ÿ}4”¦z(MÚÄÜŽ™/„óTc™®NþŒ¿vöû2÷ûpV¬Ç}Üc‰¨kZà þù²oµÃÎ{Pø¨îkh\9Û‡FjÓâ5Öàh¯èRß’ûöõtQÏ¿MmgçªÑ-,ÃÁáÏ7*ƤD]-m_w_“éy]Ófdh[LÒFAرô x¸äD÷'Z#åã\\ nº„tÊcùSçýçj‰EVc™â½çCL)Ž_ücQJ,G”ÉÈŒÚ +ž¥êñúheúBÐjy~ûãWæOÅ×T&ŠÊ¸U·:á9Ñ›¬(ȼ “Õœ¶BµieP4¢¨ßí]¾6ˆT=0¥˜Rs + +œòòLÃ=íz‘NuØ|@E÷u¤ç2‰6ƒNÃT¨óÛvíi;Σ Þõ—»%õYˈñšwü?"€ÏwÕé(žVÄ÷¨†Ÿb˜Pºô ŒL¾[-M? ’Ç}“2a¯YŸ>ó’h×ìZ' ŠãÈæä›–\K¤ÍfhÚ~0ƒ 9ÿF(ûm¢DAýv±~DÁÚ;¼Òs¦ù(W{•ý|U3#ÅÖ™H º„E¡7Õô…ÿê¯+—B_ø¤î¨wŽ– +ã¶ÑÞ¬–K AÅØ^\äBšAДï›HЬ¯3E‰‹æô:ÌñaÔ¼ë9SÌé%¯È¥2µçË2‡Ä»ªFwø^ÎÇ¡Ü 7ïùN’Ïá¿c«èýÍŒwN~š° +sïÍã¾G®êm+ù˯ï#ê:(¡R@$ùM†mó„–û@3„á¨å L%û¿ý{V¶×`{ÿžòé>þX„ -lÐX›<Œç‡Àçâ·>÷K2ð3Šâ:¸'­O•²Y‰9Z]zGh,ÐŽvšÐÑ5Ü…y=g‘ G‚ðŽ@~ꨆ‹Ç`•¢Õðï*.é¤]à¾órïfÔoîôŠòåÀ„Á2Ñ v¬8žkGQZUËæ;›¶!í̉ì¹L“ZDWvÐÙgåYŒeá8*ÕäÑ}%hìò>Fa_ŸDʦE¯úµà³ ì% + C=ž kðr¨#Bì21‰h+n‘°/rü[¹/C±Qwþ±O.†@9¾Urß6ù };ÚŠoE?æKã¶/bWóŸG}±fÎK='¢5P9Ïa,ìD…#þQJô׬“(u TÃnŸäÞÞ6ñÔ;Ô}Z½k@ɱÑ^õUx‘œ}Ür[Ürû:ú-Î¥+?Gó§¥U>¥éìóÊÔå˜êB|›Ìöëô‹›[]ÅÌ0>ÆêmÀŽÌH>¬aëÊ##z;Ús5Ç@ ÷ëD$k wO6ø;å} ]Ži«¿ptçƒwÓkdl*€}øÁ\ë-l¦òh·i»¡†u(­ ÏQ¡±5²g¸OK€¡5Ë®æºx8e¤ö¯A0‡o‚Ü(} +P^^ðbÛÑB ©7“´<Èf ×ÉF&rlGŠwÕ™@¸÷JûðÜ ¦qQE5y“·QPK3Ù[Š"u$¾2 îÙbùùÎ쯄.í¨‹nŒÑ^@ QO±¾/<דE Œe¦ìꪵÌ䃋[A&û•´ÏwÂ_˜´ž{öd#¬CŸxw}dáÎSØh#ëj¶ÜÍÖ~6æód#æ_§}–¨u¢ž—tdiÌæ»A†žÖkÔÙ1¯¹Ã3LÏ?»€ÀW—ÿºüE†tþDò§}…\¸)Ý,t¡Ï.½xª„¼_~Œx‡=ÔŠO¼º¯ÝßX'MGTÏoi qü(°©޹DˆX\2F¾Gxù¶…ߣ4Ǭ9V°îáLko¨Åz#f"dÅk±öŠ<|ÿ˜tˆÜŠ'üc“[t”{ˆ@´V”Y¢^μ3+}ºÞ±Où%èc^†XN?‡aLnÐ Žë˜ò¢,›6Es†K'ƒˆ»f0µ¶ß{çýeÖ"ëX‹¼?…&+¯-#U9ŸFÒnGâ{=‘ló vÄz^lt¹3º}¨b5+\qYHf¶ÀwáÞQ„®käL!í<ç‘§è’_e½õ½½VÝb4YÎ-hê‹•„Hªö‘rGDŠÄ(ºÖÁ¼ÇþùQzìÍàEkiIÔ#Ìo†ôT¦ºI½0í;Vþ§ˆ'˜]14¯}ÝG”\Šv¸#üG¥BÑ¡ŠUÇ8 +@ĹŠGuІùHÿŒÈM£ýÑUakòÿ?seBÃ…ø+?®ó¼\,Ã?Ô›¾æÛOù☇û ;«; ßb{óttöfXœ& ù§ºÞÎ];¿G¼ï§Nq¨,¨¡ñqœ>£z‹ÀemÙ-b‡ÙÐiÿ)‚ú)¦}³û¯Îê†çõ°{êQ"Û™Á]ÞÆùHãœ."]¸/áµKU䮇j?Däæ•“òÍúüpœWúçþ¦[ýJº5¼Ep); ºÃœÓ-ç¨û݃Ÿ•zé‰Ë%ÿÿ"kCj-v5Œ{Aï÷ÂsõP]mI'mrÝ»ÄAä-š‰ÒünG-‘£œÝzߪ•㈚Sùà%SÆt0RDFâ9†JpœecîæUZQ®ðŽð¾¿ÀÝv —&O²’=ÏblŠà-;ðØÍiÁóÐO(]^àO“öò¥ÄƒyeE²(í­^Ø. +×ÏPgLög‚s¦( m®€~ à_@̶³Ò"V’;=f‚°—é¢#2k­íþ’ä¬G‡²?9ÆêÕW:ÇJÞ¾bÕ¡ªæ¹¯ê R'Œ6V¿¿Ž5-ä¨= ýu +îƒ]©oâŠ#VÄ éèî€Î$ éZΤ/¥÷"j=€Âû†ìpÖ?¢î<²ŒßÚéÀG S4 ¾9ò 3Áëû£Ÿ,=$cnIñ'JyÚýÏ`ÌQ1‚:ó@(÷!­)·'´‡m°Óôn/ù^:K°5áÌqÿC£§úÀɸâ+^ë2e5›Íµ•†6ÈgÄŸß)žn›££ùÃqæxù»ûÝ+)bÑ@Ñ­ü€÷ÆïAÈmÀ'ÛOw—ã>kÌr¡¤ +ø|çã@‹ñŸ“LÒËØÎÐ,¿ó›ïñ›_5ž´Jj³¯Ô—j –T{9‘û‹hþº×ügÄ[úÒ´–=9­¥£V®ß¾L?ÎözÁ倯šÅìwª„þ[ôñ§äºýýCè¬6S–ƒ§£lͳ3è(³ÂÉ,E¼c0HR½ž>µ­ñÑÆ!H§Äõ¶Ê&îî'b%bô÷D+Bc “&¢<_M×Ô”§# ú:4è;Œ¦+},«Q¡^ùwJãý—¶:ŒÐ³¸¬_ìècl†„*³PRÝ™ïb UHi2ò/Ž`ÔÚÔ9‘ß|#œÇ4iR&0ˆ¯Ž©ì~§÷¯Ò}vlUïg‡>H;ƒ½ \e†žš¶)€¿ë݇°õŠMÔ"½ÞQSHªp>+†ÈqB|§ÙcÄêñü¿;®FÜÓþ…ŸÅ®"ø¾ô7»áÉß¹~­Á‘\Vž"¯ˆK”dÞÞm}bû9¥QÅb²2¤î?6yQø¡ñšÐát†=ë4 '±«åÜõ•Ç|*K9ãõ‰0Ù-)‚Ë#ˆŒ„«]ƒý§ˆ}%2¶wrø¼Ó£<Æq1½·çŒ¸j;Œ¸¨´£Ñ\Õñ +þqï£j9€üd%Yh· )^( U¤ÌyRO½!¶`Z¼à$?ö7×1î!llÇ\¶ñê‡s"1i-;4]Ð)Õ8j&‡¾xgz¸£†£j¢®aǨØ\}î8C#sÛ†ˆr§Tã–´l<²amC„äNªæxUÖ± à2@§ïËBÏ> ›(YÉ ¢;r‹—?å±#*‘„GùJt#¬žÞÁ}»EÊHd5yC‹/œÒî#ñG^¸öbӢ억ØSS`ofDìíà|ÜQj¯@„ÒªÙ(Ý 3³ASBýÔ7ËÏÕfA÷YÇ‘A%Gj°_ê¬-¶‹÷,Í: õ†ÜÓ’ÀJ*+d¥§MÚªU] hË×ICk‘%ä2ƒ´Ý 圿ÌÈdÊ,¬g½kO¤f!ólg¸µ×»ðbüFI_£öqø ã–UW#ñfëkXûq(®]Ó{Xcù‘Õe‡ªHG÷ô#5,ÒñóÏià¯Èž`&zþ¥"ÝÙËJ_Nêw8@Ÿõ‡ìVŠ]70X¯ç÷¨Úæ¹")05“j†orWH§T<êڱő¯ç3|ùÔƒ’ñQ1ÅY?ü¹ÆÝZ1bL­Ã®üÝ#(TRçïž"ÍÒGñz²›Ü—÷‡eœš7z¶V¸±ycÈp¤æÀÝäâ?ÅjDÃÀû´{+… &ÑÛYËŒ»È’¿™£½V>4Yáßø=x&êéÖhƒ´X*É»j€š6Qº!>çñ—ù 3ÜÊ×康ìË* +²%©Ä·´uhMâ#„©\Á±‚èAgÌ&ˆ§ïäùž”}ü9ö4Gÿ~IîàÇÊ„Œ¢eŸþŠ#¿â sùrÏ:Ñ­{ÏuŽtQÙ´è&鉔žÜb0wuùGŠg d>£üF¦Îi™¥™t‡®GqJ8û]—Û† èƒÕƒÀÚ×1ç:pîÛeõ@¨4u—oÓèqDÔ÷¡a€WjÖ(’õ­‹(mjôJK»«œõíÝ&ð/ 2uØx˜¯–àPu–P8Ö«°6öSpžÛûøbî x¯Ç9z0ˆàg"¢? ôí¿“D’;rºˆñ+þØÿ~¥NÉ÷Y”߸_)¤¥êGÀ»°îÀA&ÛÄ©ÉQÕ¡Á¯Í€¯÷BYæ…´³{hU—‡ÆæF'’é_U¬·õCÄ*ç¸ß?„Ñ4Å5§¿–4ýäj:ž 8‚Õšníõ( ì7¡Ï÷€ì í´…«(ôÏ(õ}è¢ïã r(´øÃ4 ÍAîZá ¾Å|ÓÖfšéC7ì +àÎa–ã¡¢”~ë3âk‘ÄK_<ñÇqೂ]¨µð炼é^f#Å›ÍÄöA»àʹЊZù°dGBê€Ò>R|x\40ƒÂ‡Ö€ãš™Œ¥—/”¾D| qT†;#†Öž8zÓ¨¨©|£¿œGÞSÉzìœÅTï·©‹ÚóeKÿ´saz¢ÅjSäÓ#VX°ç5á~õ‡`”zæ·$A +–ì]½¬3Ÿ™Š‹BtØI8ªpïjò@Sm´ëÀ:tŒ*á¶Ïˆ ÑwÔP¤=ÏÇú¨euÑÕvj¥PXa%ˆ6 +w:‚!¦ìžž‘E>%öŽË*¨+˜Û5¥c'¾o>.ë>Œ Žšæ-„ÇžÈt0r“ó8ÌîcHÏqÂÞÆ¨¼EþS9†Yzávr\©èè1®³Vÿ%ì©Á¹=Q¨¯ûø‚ò¥üR ôþá8ý¨#í’®¨_/ª÷¶³±‰ýñ²ZÖ‹çWùˆÝ?Õ¯Ÿ¶DúQž‚C­ÆôЇ/´’©J_‰E⃴Bª:m±¿ÊY ôõ(ê4ûN”0d»†kÙÉÕ)Q*š þÌytµ"€í^zRheÈS”¯óh$Ç',[{ëü9ìVþœ‰dܦ¼5”éǧâ‚Ì6Õ‡"æï °÷_ŠÒ ÝWGˆN+x…Käèlï=&î^Í3ûŒ\¥$é~ÖÛ{¦ïQwÙô’¿Gíu+Ž {ßá9î¸íÝ1uPG +aa­¸ÜìÛ¹Ž™Á8f¯÷|?jXÌöšŒº[$™{âˆ,‹E0Á/Uµ§¬Dï÷ª5#ãþ…nÜuüUÅÝïèš_ “À}ñwybßö`kÚI(Ö54Q˜ÖR{Q +ê Ê«¤üz:È‚ »¤»¡þ¡õ4öÑɦpÓçûÓÁÊiMNï.]@ +/×ωÑÅP<¯éØØ»eÉ?³ûk‚ú¤Þÿ“ôûáÁ.LïÇï‰õþ—ÿ´ÿËüí_ÿw¿ýŸÿÇ?}²òÛÿ?þýßÿß¿ýëÿáßýoÿñþáoÿÛù›÷ÿüÍÿòÿóù›?ýýýÿþæïÿ¯¿ùŸþÓþ‡ÿù¿ýýÿû_sÒŸÿâÿÛÿú·ÿñþö?ýÍ>Å_\Üóu ð¿ò÷S·¿ÌÜÿ{çKý °·ÃhÑ7ZÖW ­º<í¢èïN”8DÚõ™ŸQU5”`ñu£¾?øÅA•l¤RM¨Žœy¥®¥"^»G 1Z¦éÆo¿ÞÇ*eï#ÔÜ;©åµ÷’K8£ˆ;óеN"_ÑÔ¼ô¨6ùÈ`‰jû&Þ £ý1¢×·õEÚ}Ë™‰þ¹ÑË™Œ<çøG‚uÿ“2Ø÷Υʮ}øà¶üß;›2ÐDø¢¡õu'þŽ hž‰6QÂ4öté÷‹¼ó„(²RŠ‘ÕòPlW4?vȾ…z<ŸòT2v{úZßÑvÿ “~dtTx a«ò=U'LvšPC8u¥w‡þÎÚ†úšÁÿVz?( =#(µû¨ ¡wprà +R†.ðÎ{÷Š×’âmïnÿû«¨0¨’R[:rZäSÇû· A;PÈ¿Q£à%Mìk|¨¡t u™¯CeÀcxRE"öߦ;©&ô¢yþ$b@ +(ŠõÄ·s¦!´ ûÚ¶•Iòs8(•'£4飄áA¿ÖTàÏ1tƾÕíýM>¢îÈp-惛W…¶?(›)°©]宽£`XXî®û×C¦0Â÷Ï„$6ûõá·þá8RPЫf™Æ]©é“Þ1ü!â§çø#Ôç¾!+~“xdÒ-È6q¸àùÿÆûðš÷ë²qº®€WãE°ÐaèÙeB§`P¿WÛB=§¿pj’~#°Iú Œð½ ‡(2_¨Hõœ° ì¿î ÑïRÜÔÅå]©GhÜñú€,GÌoÃG€³e¸ÀÐïf"”MßëÛÒ‚‘9¼ŒõŠ0± ˆ¸×Œ£Œ0qT3‹Ðu¢ê±Í—_½kDEhX=föu$Àî¸ÛîˆÇ9Ç£\x[Ÿ.¢%FÓºŸó§ãTdªfwÛ‚ËâÅ$c¹’±´ùºfÞ1À¬>©!ƒªývœÔ§Qûí†æM<Õž“<Í$Oÿ|ö¦Ëáù·2Òì*Æ´ëžu3‡ +‰;3T›Ÿ€u©ÛbZ(ÍkõdQZ –Ë»DÉÞ€6=(#>´\_{™öÄg£"‹^ÂÇÚ†é`ß +xf@- ã®ã²ÇfÄsSÌîÂí¾r|%1Ñã(ºÝ ôâÌâ½mÈ…?Ý„Æry´[#bÐÿ5B‚² ÅØø@Ëñ<} +âSZÝóГU ‚¡¬D݉šý*Íw²Õ°Ð÷;&C, IfÁ”iöê”-ÉKL7{ŒqüáGŠäƨûmÐ>ú.ÐX{D#/}L)’×+BÝ­y(ÅLñGaÕŽgOaýVRýþ·¯A£N°üäJjXèΊ~Bþ\š×ýÃQ»~ÀC‹UIÑu˜ÌMÆíÙòë8ÀÕÌ›hOÍý˜xz~DK„s½–K(a—^O®äÐ+åëùEVØU…ÞKIúù- aßoZÂ0LÑ—³X£R!­æ?zEþtÞ¨†ˆ Ó~¥ mTâ¥wF†’Óß(œ}±è‚uÖ‡u?Æ•Ž¢Z„ðÆ÷ªasw&²v î¬U䚌/./‹s&bØûϻͶ P34O™™2ãODWPm_þ®ê¯aë‹ãkùHé}zU+C’Û]XÂÑ‚ˆÌqQ^ÓߪÒ.1õœ´<.ØÜû­«áØRèéÇ +ë[Dê“"xp¿—ƒ.ñÇiM#}íõƒ"t Ž=ÆEDÙ¯ódÜÌä‘§iɃ¾^7/¢´ü¤ª@>B +µ¯è E­ÃåJ@å]ÜÙZLù€ŽN‚ÁgöºQ†jŒ"×Â<>©_örÀðªeÊIÝäì¯L@ïë÷ÀT­˜öæ­ˆ¸@nÖñH{zÈb˜›²V,'‰²Ú¢"–Ä„†[Œ"r,{Mý!à9¶”l8oªöõÌh ? +P=^0ÒE|éJ +C–1XvA´wÜ‹qþð="«U =·í]lÀÇqhžØìÁóO»æ¡>ïÄ"Ðe?%šÁÿCt9æqûGßyóo•I,ÐÖñ:†Ø]ÃìA-µ³È›¦*Äh»©?ãC€oe š??ÈÉ\NLF)}öŸÕlk!£ÜG"IÚí9k ׈µˆö¿ß!›ÜþÈJÓé«´ëž 3$£/·¢ýÀ§rÚ_tó13®˜™×`¤‰²uQÑ/gìä~ÜX¾ö™ðN½0*eˆâà‘ ++òuIá£ÑXðªaš¯|!÷wÈ×%™åÁ(ת^Ó®&u›¼. ºù|ĺN¡|XŸˆo“ae¶¼ÈM”ÅÔ²ã·?N‚ÞDÃC];öSØô…J3´{ÜÛC²%${ô%,ô'naQÇ\˜ ÉG° J‹vÎÕÉ}Kh:$lNà©An#.JêÞ„tGÅ€t—)cäº/·2¢Ü•®cO‰&©‡*úÉ3ÍžõÙb„ˆ»$A«bš½ÎžÏ›\QNëlÚ¾”^æ +XÕ§"Ãûþèª + ö“¸]ÍrëóMö AÓ똟‹¨ÒB‹i:ÖðtR^ÍÕéQ^+6W]O0mëê2¯÷óðnÒìIЊy¨‚™Çc6΋1êû–8Ôa_Ú·s@ÃoN—Ñû5_rS£Å?FÐÖ¨¨“µõÚÓCúp¬dB¬|zöX,AÝM„Þè;]»r¶kúë<Ç5òŽ"jýÊeWÛ.36ÛÕÈ€5Í‘ý½þ¨~‘Ó®Ãχä>ó:%‘ß…eö®©Å¯ÞõÒ‘¦›™;Èg„¸äº¾~ˆ¿ü±¥Kò"ÖACÝrÅõ­‚n¬Û¨5OÆ·¨àož©ßrývzQ¹ýpœ^T¢Ø­Ï +¾rªøHö&ûLrû¸üŽ´°ÕÌi_"!øðJ#NiõÿØgZ§0¬ˆšmaªèˆýKÐjJ9€òd퇈 =™Çò­)Pýý8Èøû#C¶bQƒÔ PãnÄgÄ_½ßÇë/bôR~⥌‡L̵‰FMêŠà#rm†«è¼ã; ³M²ˆÕâýûW2—޳+'x|Þ?E‹wyQ~Š`T[$>ªºwÎô=Jû‹!‹Ns¢·y8–èê¼ëG]ŸµÏˆ÷y›6Rh·¶ì_gÄMbGPþG3ÃñkôÅ»>`¤„Ø^ÐAã +¯YpÍRD¡Q…r^ÐCˆŸˆKÉGm ÅOÂï¿Z¬Ó̾x"èI‹›Cèd°Ú•Àß9ø,¬ƒ-‚)!u¸vz ZöFWbo½‰êaFJIZÎ7JæT"¯”à;v ܳ¨-À£Æˆ2ô¼QåR0KE|VÇÝNÛgD~¥@²øó®»ƒæ˜³$IO3)í§€¥9*ôÚ¨¼Çÿˆú† +l8ÂÚcqº³B'A΀ôÞQŸØídÿ®Ÿ¹gCÜÓ¥>޶ò·ã<™€è?ÐrÅÝ­¤j'ýCXñ‹_ç2C9gú¥®fÆüòzP_ÃѪït¥ÐÀAìd)„@hõ¾ R?#Þw4-BD|hÊ_k/D¶‹½RÌç?[bÉ Å j¾½ÎïQ+>Hê–£ÌäAÔÈ©¹×<Â}žYõþ¸´¯i«ë{DnÙ­¾ 0Tý"?Cšr)û½ãj?©Ù8©Ù“<Õ +V“óIüe~]%i_Þ…ö>§ð§VñlWÈa<­Äçã¯f„Ê©$ÂRļs ›j€¨Þ=g…ÿJb‡®ÐÙ &ùl¼Öqþ…‡‰éNîn|ßá{Œ1Ž<ìQuà¿÷& úÛã^è¯Â¢Òhzá)à ‘n!í¦¹BP4·H1%\ìÒy~F$ù(òBM¥s}Ý $¢ÝN£8i±õY~Џ• Hž1ö/£Pâmâ¿ð‚YIŸˆ[V +f@ Ãù*Ë/;â_…"ïx—1¾o’8Æ'´ö"UA¶½8`ÊÓGžY”Bªsâ}Ôýü_ü£Í¤–¥›­ýú¬B_@[àSÚ Ò/ æ²™P‘fֆέ]za5[—>µTPøùs»e$ÙqÎJžˆùFôñª!"æü:‘& ûû "£´5M7I8âý¸Ù„B1ÞD”a[®E:剅âs”"s¦¤ñÒ H£KEãi¿ëâ8EùQ‹¶Á|äCø÷Æ/ H¬Üqóºú`gÄÒï7H×N­— :0é£ÎÓG]J7û€äQÄoÆiÍ™°u5USóYûÇï8bÊÆòCI^ '’áŸ/P»}¿#Eƒ^=2ÙÎ?«DB&Ë$h¡9¿Žo»a5E‡®‰Sv3öæD”jwŒ•ú1ÅÚÃñ"3b+Ϭm +ÐMŸG‘´ô¸Ãè–[SMƒRÀj»Rÿ€`ßOÅÎgjìiÕOgй³P|­`Mßç +«]‘äö  y~¦"à#gû¸°*’,°n?”€!g¦H¹Œ i¨Û¸e?Œø×=5†Ìiƒê4Ù=#n𠟢À:')Õ‚Ð:…Ç€6 +*ϱ¹g(Éä{žçxeø¹ð™äLÔ>ûDàÒQb® û‚“tqD†œ¦ê¾#Ù¥ö{6"ÙÚ„s¿ì/l‡¨*š²Hc^Ál££1Ÿ£–±?§E:1ÔIe|˜ót܆vÞO9PÔ+ ›÷<"ø€riéÕÿ|æ~P°6‰ÍvÙù žCþB½²z4S «Y¼Š-u¿¸ü½kÝA«}Hû(C ‘ÐÀbªÓO„1xæ*sn4u/šQqqýÜwz¾ö×Õ9×<j¥EïñÏ톒‘É/›"ây· b*Ìžáû +Ê[eÕñkƒu°<8­ˆúôLpË8ÓP´&T(¯öö<Ѳ¯±ÎTûã˜@U{؅ǡȕÑÚªsÈ|ŠW89“¾à×°püÊBõç±y?¬SÓìNvÕÌüþu\eÁhHG‘ae8ÚëÇ¿§5Ô)¿}ÆÞ*ü/ çï?·ðZ4ê~¹Cïg8NŠÅeæZÛ/¹I¼¢â~̦–;bo!‹a}^µ2¿Eä÷š*Ÿ=èB*Üãø»ï7‡ß½]£‘ JñŠóøÄ¿LýÏ(æ®È£1¿Õ¹¢Ãd^<ï'íþ]‰ L²–Û±Z¾×ïRÙß´f¹Ïh"‚$Õ!Nºa„²º5Å”©ÏýNzŸ“ƨ4ÛÕZi<¤˜MqÛ‚ºe,k…1c…Á0€æ_Õ-„ñý¶ËÖž/{“(wô§$ÿ([CS`?úûß½e¨Ÿ©.5•Žx,ôiöVó9Í<ê²Ô?#òã|KÛ>u‚(AÙÞlyLW½Üu.þÐ,Œ¸‘Ò¥ýu!ÎϽç PÑ·ˆ?œÓ[~ÕDA=T +“ʰ‡åN33vyPJGXâÊÄ’úz(2à –H/f‡õ4Ä•ò@2iü¡„mSÂv=ýðŬvÿu)"Ôâ"¨  ÇT3•zùŽr8 +†Pªê|å†Ð´iµ +êá<ûŽs!ÊfM¾!`¤çÀé;"*ó9®¨þ_gr›ÄÂY $ÎI#%+÷ÌóâéµÉð( ‰‰°œŽc[xö ˆøz­Oˆ¯û @áD /ÙdŽ-f†Âvô÷.y9waŸ‰i5n0ý‡ˆgÈšDٱݯÁî_D¡Tñ?tØöŠ©¥5I AÐê늒,kˆ +>¹’ªàÍ:¤þpœ‰cñTÔ/BŠ8ºÙ}@™»Aþâ³hMÖhM +Õ‚ÞµÅØ7¸¡@ß8÷ë¹€8Q½ôcøñµš@ZÙÜ”aû~d[n¶/–¿ýñK?½Ê²¸„ŸÁºÅû´s»{n÷ëïMT‡YÉO]^!2„Q)Ð,술AKÃJ¦p'\ë9“‰Í3±»4Bg¾EÂvÿ:SVì3zSÐ >ÃŽºÊ¹b¤øÙlU2å1’Pï”@êV -c>+ˆÓ fùb$ð"¬îwo€ÀãoˆîZ£ÌgyàIÀH@ ö`ê0‰Cö#€:w¥œó| R"wôHä[óHþ?Ç6^å@òÊ*€DPÀ~x˜i¤Ø8Zœ:o%ø¾e„ ´wß)â~ˆbvˆV<–qÅ.;”˜0o©Œ×°¼(÷‰\H8`pkjZÞ4ôy¼Ì5j™0‡è!Û+MzRTÖË[ê1é`gº»2"9³1šd 'Ï# MIŠ)´íJÊD‚ä¼ô~øôÓ:в*xó‡ãÔfÅð,ˆJ͉l`§<õŸ¼_Âo—n}çLQOl ÷âá\$ þ}-;ß"/’x %¿“*÷ˆò)mò0Þx±iM=¾ðÝÇùP¼1s™>ýs{l v)GE\† ˆÜ´Ó ¾(¯½ð!ƒx2ýèeÃDEÚÄK!K€Í¦ŽñŽˆómÁšKÁÚÆ_B‹´*hx›¨`J‘]|úá»"Nz3g ™âÓ~’C +¸£1±˜L%Œ@YêýveaªpoŒ`}·¼›Î!¹^}?Ì´þ‘¬¤‡ ŠÊúñ8;ç ¼ë|¤S¼>@U ?w +»d†çJFö”÷GÝyöuzp;*x·çh«}ú÷çzœ,ö‹%3s`6†ÐݾQUo¥,פx”Óîºöψ!^‹ukoLó¥~D•¡ErO´göã|XÈM+'ñMV¶Ša¿PÙ]`þž¥B+tð~^å‡ãм‹Tí§¯h1¦‡|úàß#>¶æt¬¿Gao/­a¯ŽrQï5 t0C$ šƒHà|üš§`€LàZ2¥%›—ÐÓ…Ó¤ðG„‡ Z`^há6à +QŸ”r™ñj̱ׄɞg}Þ¯ìéhÄ ‹‚î 0,68Ë£ñ3y^Í~+y@»í:A&?ã¬UD´+â 4UŒgü2ÀDÔxGèªJj´Q~ÛÏô–ïÿœ)ÍJ'§ùCPüìÅý´½bG¢+Æè·ç81 å÷¥åÿ3êŠ\Ô¯n«ãyE7õ>® Ú 3†:g$±Ùù‡kÉYÍD4xÙUO9Ó»øQ7àñ¶µH¢¢$ä ¶î¿ý!æïJÄÿ¤£Øç¿'·cªAV£&*nY‡s|\xÊ¥TÅóz²œ‘iH{³K3Ù~˜ÄÆ—Ò*R5ǰÊø³¼J +ø¼ oaœÜb5Æ$ZG1Hc ’0FcDsÙòâ Á],M? ó²K×ö¤`­JîäÅt4d]Ìè +0?fnyÿñ¥íe*ctBw†Í¼¤d·˜‡¦ýÝñéºÕE?%{PeçãV"ÐÊñJü‚HW g (rù˜ö峑ãOµJx«uB~|0ÁÙ•ñ‚LÇ<ù ŽáM½†D ºQàÉl´¹…*òÿЧÌÃJ Ji~¨Ã@mkÖATÍ|t—ˆÀ>Ž“yJFüX×2š‡fÒH÷9Ò*¬ò0ÕG|gE%®I*ˆcS¢É;¶€;w DÅP`㱆8"%XÅÙ ÁÎÊ’D)Qj Â&€ÆªJ\~ ²>(C«Ê¸ò¦ýˆ^Õ7s3ê:j³Fû¤ïe£iÿ„»pë'bùç—>H ÂT|SþDèÚœôÝĨØÈº˜ëvŒwÛ}¼Û®qÔE–°‹¨/Á TÊŽÎxî}0:Ñh]É»ZʾXЍ3(h”½4Ì3ˆ%ÏuÄI\]0ç1îœQoÂ)îRàœ.Ø<ìÁcx¿ÁIþõ®h~d#’`SAšŠÖ²CΫe>Á¤Ù…à *¯·séïׄZ‰4¨ý«i$£5ëü~N&¦™Þa]ꦨêÊß3²b~WÛýòÐ?0üb*Ãx;ÝV_Psq$ +\£QK£‚E 4”ÀBäÀ0 1‚–±Ýä»І«"&@Ý "t€ØCdŠø[Õœp85¶÷u=‘ŒR½5.åÎb[Ø6Š.í<<×ùF»€Jx&[`ÕþŒã«ÜIÄ¯Û Óf’ d~gt £ GãJ‹0žßQMdšVô©jþ„Rté잟 –Zów|ŽWåÞ/€5³û8éÜ”ý(LÝ™7LÕ5º'òW{è©óD"ù‰Ç„G©Á$Nз—¿=®æÀ$À™1PüÂÛ½ÞnÓx­Y/y‡Œß RÓU®…­„}ç4r ÅE‰—™·ÛµŸ¾åœ:§µƒr­OfÔΓ@s©„;Ùà{âb]Á¬Pò–ç$ ú ?ŒÒµ{ÒÿÑ »ºÃC(¨ès!z׃ý0*/‘õÌçfNä݇X/«ÂYÓ-ïrIYör°¦òve;ìJ$Jz:÷³ŽzjÃäW§¨MІçÐ6™¥åvä¯NZÞj³™û¡7 + ]Íx¹Åç ½Æ›Í@V6ä)_ØÒˆ'Îè24CÓmýúØŠš2tè !¡ªw âzíì‹ü–¤k[’š«•´uBÄë:M~U {õMêÓW‘ӆꎒ>±›š>YùŽãL…â»ù&joê÷£ô¨’‘‰}ð©{¥,ý:â¥&†(¹á(zî$n‚Å)þ|ìÉhÿ€­‰e:cËÛz¤¯–åë¸úÁw2 +à‹ó!=°èäðÄëò滎ˆóƒhäLD$¸×뀨UþefÓ~(ÛߨoÓŠW^Žø¶å(AÓVEi»Þ¥Ô¼JÔ„8:š)øjü靸6Ò{òþt¡pÅâ*ƒ +ÕôSÿîDáÀA‡Ê¤:ÖHW@1vàЀ»‹†N¯€ãàôy«÷n@Lg +IÍa·ÈjÃþþb¡¦eT ùw£ +÷ï¦9jæU÷R å¹I2vÄÎJ.®PÇ„Œâ]áã‡cìÿ¿¾|×ç bÐè+±PúıI¦{$ö˜@8}¡¨Åâª"ü… ít¡’î(°u¡UÃîç;&Õ§1]í(ÛÐØ»õ‚«`2¤8,¾8LȤà%è”PúcÝñ4¼ø•4"ª ŽÕq/kIlíéí( ³rÐÁOêaÊ~¿†çˆ5#Ø3ŒP¦öv6E@eý:eAôˆr¤n#³Bþêz­žJ¬žz˨Ƽÿ’ys"X/‰xçUø}ƒ Czy(Æ{ h“œ§ß§mßÒ¶7½ã½ÒÀÑŽO×q¤ù÷5¥Ïilö½â Ý®í»/ѨêÙeÖ8“tûjön+hq©»LɪV"ç‡äç;½WFÜØ^Moºë5ƒúòÝÚ>XT¶ËÍh29ì@"›ôP?º£ vé®òžißÍ <Â=)#.çG¢‘¢¡F£kߨ?ë:W¹€š _Bz,OyNå*ÏöÚiØ;«PQrSòEÒTl‘ zÚoÝЦa÷‰P«[iÊ€=á.EÝÙPo¿f Ï£ÂºÈ£°ËÙY® çc ÓH+U–é +ÿ½G¿„bQÃè‰V³´Q ãfTæa›—õsV~*ÎÚÏ×"X êßµŠQ¸‚5#Ї‰_ F˜}°^v€—S§Š\Sʼn0â£K¨§ÿ^· óâÌåÓ³?vW.LT[ 3‚"æ¾7>ªó€ªØÅò,€}1.ìå×q¥VR™e¡– „@ãñˆªüÒx%® ×b ¸"g ‚Ê!W«“åÞAõU´ƒÔ.úˆ³G²#mM™Çý2Òkß/ãX椗iÕåhEý•‰sOsÞg9ÐÉ[5ôýçøÐDÐ숵.-Óïè<övï—L;÷eNp†ólÃÔ¥tùªd|U-¬^ðMZÖxÿ´Xë«Åù½€—Bï]Œ-ÀäQ7ÿÅŒ–I¥*Cp+Ç‘‘vz¼ž/¬n•ÿ +Ž.!÷µ`öæ©#wŽ1å3’ï2ÿFKv¨U°seÉw\±æÄO yÍñj«E³¦Aq¢H.xæ»æ.ûƒ½KÆõÉ®ž +þÌó"‹Ô;Ô’À#ÃoQ"éIþ˜‡€T²¿Ë_U°}@¯X¿ë<¢­Í®eÏq±dÂeêõ”áÆä]$W&AA#‘ÙÉïD 38: +§5ßçS›¿fYS1!ÑÝwìo©k ~×”æ&R…¡â< qéÎWœº“W¼£VË™L®ùŠöö¸åÃ;EBua2A:Í£Žq«êý9OÓþ?õe $Tº +ðôë~#‚©ÒõŽŸ„0ùrD;öá‹çlÎÙ ÉAD¬*¢ž,>bÛ¨öà*ÿ`{<»¿öcÒ#êš•ÐLYI•#í¡Í¼Óee½zÉ<ÄEî…Y¤‘Ô¢€©O%@ÀýÓŽvÒ J›Õ/$ç(¾wÉõ_çYšïB&8d|^d£Äp¢²>L³c`äõ>þô”.+H²%•-5È~éêȹï×­Z}ª”mPIyÇÛ“¾Í«iç¾erõS ;£‚Æ  >C„_øë+d-à_ÎL'MAÏJ3{Ôl¾jGùØ£ê´Õø–¾L<à´Ñ(yõÒaò€'ÁY’±8³[©Œ]@w‰ºSJ©ó³‹·Ç^üpîg!ôÜèú „ôíí¿ç†gŠ7QÜlÁÏ3G¡6F–õ×èbÁyb#F*½Þbè[x¿Q*CîÚ½›Ò“o…„ì{pú¶Š HiqYUæ•÷æU «§?X 04Ö³¤àá‚ÅÈ.À´“ÃÐå½Í+´OñH ÞÏâNþ›àê.Ég?Èå8+—¬´ÔÞÝ–&îé)($YÔì=J- +Îbî:ÑwñªwoSÉú‚k«—Dk~ {¥|Õs +°´ýˆM«¸ïTxŠ©ž‚_hxú® œ?¸¦t@æËFâÁ9gꤢ¤G+vØQÜ’ÇFõõux÷Óæ”,_#Ì×Ñì,iN™œÑߺŽF=NÜF­<šz†bã*ä‰ò×]ÿ;\¿XÆ÷5æeÆÈ¦¬ãÌ[(Þçøw†fói-9\ÂM@V¥¦'^×ñbT«?GKŒÅm…Í4ðQ|pGïo%÷Š!í_fÞñó–ÌÏOGÖË%4uÆwªQ¤aYçȧš´ˆ_”Qo—M43‡}VÿÚm:èqÊ·>&=>ĈóRD!lvG ]Å,΃¼ÍMz½²øÙꜣƒnÙ_/¿ëx½ôô÷sì +ƒ¦+béª(ü¸dÜÊ»ÁŒY¹ +ì»5úÞ1tx5ç+Ùw§¨Üï|‰®×<ºO@ÍÔŽ’ç^ endstream endobj 59 0 obj <>stream +ÞyÙâ6­ŽÏE?ºÈþ1ŸÜ×ß4s¸!Åþª|5+WÚÊûb4-ã¸aÇU~›xò™Ë“ËQ÷S°‡v1*‰iYgúì¾D±9ñŠ¢FwÔô·÷si㤠˶×Ï̧¡ãVÎ4iç‹ý óÐu8ø”›Xšòv_í[½Ö;p63:R´@Ý¢9©/…u¿@Í}ÉX ž&²ô¬‚%4Ç.x.Q;õbWLϘæ,æÑæ‰|EC>'RŒ9jv…vt'„é´¯3 eßQݦ#ØN„y¯_;îPU5j[b†çðŠpã †·Î:/èùr¢ç«^ß«(øwň­WðxÅ69 +¾`­F¶‹+ZÝöHv ›rJЩhÕ|Ö+ÉÝÓd¶|[ÏÇ ‡§GUé©:»ÇåH £kµ› Žì¹}Í åµ÷‘½Î>ŠC=Šƒ0§4µxï/-›¢öE=¦f jDºfw 8„“”¢Þ6#ÆÑ; +ˆk¢œ„P*¢?”½† J>×¢àžVÏ -Ý˧üofó1‚BÕìùu"ÆÙœ¨ó#<«É¾—×{9 y¼[Á v|¯9#­Ž8Òê¾’½Dz„&×Ù?PÖŽö·N8Í$€bÚÊÒVÎUF­ ;"‘EÍù˜é0X#ÛÄ µ‰·è×kŃî|•½Óž¨Õñ/¤ëþøM0|„ð»ë߇~ÍÉûÄZ ˆê Wx§<2WÔœ’ªúÏ”ínÔ/¶³˜’‘݇¹Ê©ŸðªYCNÆ„¢ú`“u Ýïz O÷6_†g¹²²tZlš™z6ÅïiCøy›Lg‚±Óƒ—ÂÑkó]‹Q8§yÐÞæÁCÎý‹§Iè“Þ(ï*8>Åïó€À+®¬¥%åq+dÜ+䙩¨ +¿ï±}"›6µgxK¡êJ¼mp³Øßm(P¼7¯ÀÁÛí5½H9Ƚ°Á×˰nÑÜ-}»‘k§§¢…Ç:lutL´¼q!Ö¶~ßÃ<=?™:èh U+zð;‹Œg@G6„Xy;†ÚìÏhǯSaõˆÚ .¡´·Åõc»žð0ôaב™6b½øñu&‰(4ýî¡“+ëCÿu&’.V .o $êL`ØF×A[Ѷ8VQèfr1r)‡Ò‡ŠÑDÌ\,FFïy˜?Ó÷hìºs˜"•=«&¦ +Ý~4Pet‰ PåñkéÃ,eE)DCΉ +E¯x<—áñ`£ý9°v(}3Fט‹¬H¯Rþ©‡Æö S +ØmzWLL¿ÈH¾œ˜]ãD"ñíÒçÐÿkÐ F¨€&ÅFõ.Åúe³ñ¡‰]Ŧä¯âòÜ’ ”yÞÏS<zàÈ"‘`aÊMª½‡w°§×—²êêEÍr„¾q¥àåÅ;Ud€ØüÄyS^ßà$@¢”¿yTø“°?5Fz¤¾–,á×!ÞÖ¦È'ÿ.ìõb„³WWÊ»;ž­åôÇ´W^l¯Þ—~«OˆóôËÁ/À§“7Wp¨¥ü#-tɶ˜¯·¥áòd¯cÙÙÙ»j¢Y•@&ÛiC I XïnwK÷â:03‡×vŒÄãö<ê´Øñ ܹoN·ø+j 쓃¥È j®GöKP)l~—e¤Ø¯hîiJ4êñRBûtùP3>,ÃIü+ëV|PD—á?cðÁ?ÃÈ?#’°ÿp½µ‘Ú)Ê¡í… éë®FnL= 8§å +eIÌi®·q'Û_ÚôÝbq¨@¢1 +Éú7¿'QªÌÐV›Š$ÆRC¨ž”ßÛ›> p]ÔœSíù[¨¢ïÆ +‰@]—2ý÷LW4÷èƒhú È¡Â##¾ W.E¸cË UôÅÉyÚËP•Â…Ø¢€Âü·dÞ ðqé&h4¨0bÊ4¹Ý ®Q!§’nC£Efá¥)25e%c–wņäq­ %ÊXóé‘dÜü\‚Žg@y;lJdÌ"Õ¯<åÓþ-ü'J©/þØ¡œF¯Ó×H?ÿ²ÎçLaŽt ¸ï\–ÞØZy«‰(ÚDÍv(ßÓ¶ :L¯äP©í¢«?8ÍUÛ rw¦ÎΊ ø1À¤ð‹´-ee™r“°ç€u«±ðê¤]«…uL›òj¢TÏBRŽ79«È¨~†ø˜É€(]œY§”©„„‰óë<‡OZÕòViôŠèÌ^/¶½ª÷›™‹ÆÞkÿ< +ÜîêƒöµLë_†÷Q.oY/ç·Å¾{FkèV(_BÖ— CƒíÇã‡ð¿Ÿ9Æ ï‰²¡hòÒß{†ï­VäÅL®A»Ò€¤a‘"!@h2Þ²Ï9QwµQ^EΫGt§ò8«tÐÔݺ“a¡Ç|êêª;äãƒó›©0›J.ßCPîˆ3‚¸‡$Ás¦£´[ÛQ3‰)¢¿O¾‘²qÕäghµ–Ã(«6|3±ÃÜo&£.ý…‰'7— ÄyÊfÈ%ˆê^-y&UêèCB6hÄky¹ŒVúÈpZØO!zó½}íƒ*~íòqÅI“î6`ÌCÑâÑlÒ,?8šÀTá8y7‡¨òÞ±è]G’¯ŒJúmçÉÒ§uB4HTÖµ w¢½ÈZjæïû§jðN¥]«i,Vµlnõó~mí¬xÕ¨°GŠb“!°,,}ÃÜõêú*£v ©½`‘ÇpXÓByïÆXb4‚ÍÞuX®MÃ~ É‚ÉfŽëšÅaþÌ·,RW¾Åþö²k º•’˜ üë(žRsç¼ËÏé å‹™’bì ‡ÊÚ&îºT6t:(¨ˆ„3T¾U¦¼ôQ«‘ ©ÖSÓÒ:¬ +Þg5,õ-6õˆ‘È=é +¬\TQ%Bÿ¦ªG½LËFs ûC¨±®-±â4òc.Z­’ìãtq›öäD€$Z6ܸ1½[ŸqðDê‹Sn)J$Ä¡èÔû²4‚ ”ûÆÞà @Ýî„¥õ€‰éÔ}¿è-í ûàH†™Ã¤¢ˆ!_ÀHôªŽêM7FºsÇäŠË‚«kO+SÁÄꕌ£¾)d/ØÈ³í±&ÚVZ+"‰³+GM6tÆ»úù¢mHI¿š~íFÙøf°rõ£Â­þäþª=æ°“—vîÝP®_wÝD¨Cû ö7¿“ÐR;‹( j\õ£Ôjß>€Ô@pž`ÙP0wÑW€˜akïr‚`¢J/Qäæà¢KWó`/øT¬ 5Óo—°k¯4õ‰ Iº5P—õ¸Y„EЙ«$Õ¥/ð<¯´ë!ÜÞà(¢Â&‘õRJ˜.¹¯ð$=Èî¡Äï!#R4$ ~³Þü:“Ð ÂÇ Ïi¾%PÞ!¦Ö|דUzÕPR±¤°‰y×”~Féº ÂóCÖØ÷eäªotaGþ;Ç¢sFs|"Ø\cœ½ÅÿF«ù‚9÷‹-‡“¥å£z,KÞ…JKD¼-ú +K| Uÿˆl¬[¸îˆZ›Ç®Ïý¤O²¤«¾8ÿ+ +†btk îÁÉ^èþ¸nåŽ[=ž\±«ì̉†ó̼~3ß #À`Á:þçLk±õ}©KÊÿ8@µ½•ÌËìè⓵º|K¹v[ò°„d ÓÇ—LíLU¹ûcÕOTqñ1·–¼”‰¸4‡êË–;Nç¹³!Ä«ð¿fqŒÎD·uÑéG‘gËu27_ÀdO™]Ï2@6ëk¹Ôj¨¶ÄIÝrñÄÑ뽿¬¶š÷òñRð´Ñ¤À@]×T˜÷rö¯Ãößï˜Sðów ©È„€ì ,H5-V¬tqno ›Ô‹|_ÇçaÁ·ša¸ë É ÏÎ¥Ï~Ñv“ "0ÌýÂMq ýlƒ¨LxiW„©p°<* bÌþUªèu¥³×©“Б¼_]x„=´ Üÿ3F`ëL và&{%©tI9hNÚ‘ˆ)—áÖTm $ÓýO¨0Ñ{¦DÀÄüB²u™ìD»,TóKqlyVk2[÷÷-.„`-u@Ù‡*[¯~qC˜ÍwÞu]λ–‚¢×Œ‡Q…0v…‚!\æ:ðÿp +Y)‡üv[ØôJ˜7’ ×8K¡©çõ¨›•Ò¤â+ š Zæ«5»bK²‰vív¦õ¶£æŒÀVüÞ>NO·¤Á¨Ñ–w)䶇͂®$Ä i t¼Jì|$…û*z-GDžqVi0 cûp>–*ö2þB±¼—T +ô`¿Îñ̓Ǘœ¸M£}މˆ)‚ìÕ(•gÏ<”Œšy¨ÇqŸa&Æ&ÄÂðþš ¿óOúÑÿ ôFïùÏÆîÂê£ +3 +~ö\[ì·›ræïNPVMì?ÂûË ï‘‹ñ¾G-UÓø÷õœ{ÇÞœ«µ|ù·hÓüªXO¬¡ŽTN!ëEŸ ½gE0¢÷çjGq¨Ð™À>‡ªóÙwGíS],Šk£˜VUu›!¢kñ7ªâßàt¦è™2Ó¼ÅǸr %âè”—Y/½³²´ 4÷¢ ìBj¤xX@ëP‰ v¥¨-ŒšŠª1ת†’p"®wÃíǪ‘ÉåÍÔåJÖ±m¤£ÑcVѼáñ”fpÁ!éV¿Ö¡#×ÜTƒãƒT¼<¶ø(Fƒ¢ŽJ$lZ{>=§$O¥)µK×R&_(M¨‡aO2„ð*’Xbv[ÈØl fÂ@{ |i>7X"rÇ1>‹¹Gg_{É=÷ΕEúÚíDPýÑß<hr2²x×IZÙ3¯CÝK;•þ™QXÂóÛÜ'Ýñú€îŒ~A€Ðí7¯×äjX]çRNb‘…·ã/Uö]¸3/¯X‚6KÚÞ×Êœ[¥ÊåCÀÌÚͦʶÊ~}s z&ÜŸ& %99ów‘ ‡±Ù —±º +D3®†úú XÜA_ÌF5˜Ó|X•öõ0ïÒ!Â4ñA]l½XJÑg¨@’rõàO¤â!Š^~ýbéÀé÷zÕ×Ñåï:}ihe.ä艙®œøó’ùSÌýÙP½J}à3ðpîüõ^7ýkí÷ å%yŸé[FòÓoƒ3#?tÁOdnû=¿zNƒA €2¢ó¢ÊÜØß-nT{ò0’}ˆ¸ýjs5^ N4H¬‘J;3;–P„‡YB«ó%J/aaÐ#ïòÒ°‡Mý h°…ßÄÆÉ#·¾F¤ þLJV¶§›ýÌfã›±{Ë3ELs +Þ%—y¹ˆÎþê¬e£òfêš( ãyÙ{[ÇžO)æ*)‡Äi©1<‹N²”ý³Ùæá¿ü˘óÂlµ3N(Ñ| Î +lKÎ0GUzµ×é¤B馎wƒ¨Öÿ¼¤´¤ÍÉñ‰µx`µ¦x0NRvuT_^(§W¶˜?+±h¹:Ê–zƒ#KF„‰K×¶k£̙„ _r&Í7è¢]/”õîÖì(IŠF]Áâ«ì„ˆÚñRâ +sô#ßÝçÚ´{&Yαz}UåeØ€±ô8ºÜŽ’é¹WUßG\͹¥ÇhIfGÃúP8cNbòÌÓ(Ì%ïù²Yµ‡¾“¤+;q×m—R특® O9ûºã¸+‚‹¥ ‚w"íj/ÁUM£GJ]á_ô +n2•ÞâÅ”(° ¢ ?LŒêóúš!VSŒŽ´#Ƙ‰ŒÉœ ÇÊœ¨dxÎYó/¢d–HLî®zNÐnvf³r[Ü½Æ égR¨ó^ØÙqÝKa²wð#Ðøh‰[ªÛ4]‘^R ÒJ!â^—?ý_Q™%êØîßQ€7‘ˆk4òrŠí'!†u€C`̈%]· Ø€Ô@âQ”OWÅ#šº1í|·®_<Æ‰Š %adÐcFõ8Ê_¯ì®,#šó[1¤­çOQâ××µè×þý®š{Qy$8r:t ¨"£{Î4ˆ/P¿†š¶}õû’©ö‘öR=£P^ÙõÃa&æ¬æ3ŽÐ}ÍÜ–úµŠnƈxóa ‹í !ŠÂŘí–¥Ê ýËçëºN\G žwø \ì‰{dy@Cô™VÖ©Çï¼Í®ø’¡Ý "ÕfvÔuå8©¯dŸ3ASÙK’LîGDZ]ÐEÆ߉¶×¯iX&P¸ÙÃõ…HtfØ—j[è(9+ý€ï.@!™†éûÈ.ʸ~ …);´éUøµ§Òo}œê•hÉœÕA´NÅIÔµ¹ž“ƒÓfjº\Ö#HjºZÅp +Ïñ=j…­§|åUÒ>ãt gjª_ŠéÙ)Vt=Û;q´R?#þ|"ÊÐ\h™«ìûqœƒÅDníî."ò>š¢Öz у¸Wuì3ŠWÂÃ,Z^Í3âæãi'¦QÞõÚ{!½Åy„…±•VÀx%ãAˆ»¼P‚ô[Â㌺ÉÙÑÛ-¹Õ™¦íª‘”GGTÕ“{§¹« G¶Eµ÷梛ýu&LмÔpÀ‡QsïI9“ݾÑ53 bæA ‡“R¹ë¡£á½Ó—ñª9ºåxË)3º°åƒ»«NL½2:Ü·Î&~þ=÷þÑäí{ÄáÞ6_7½Ï¨ë€€öZTϽ6ÈÉȱ骊²‘ß‹J~”ïÿžù˜`îÈãï èÁæ•øÙÛ‰¡™ÃǦ}°vnrï×±õ# +jÓ˜oREiü)ŸÌN—HݼÊá)G çhîe­¾Nd@®cÀÖ†Ðèüù±a¿–€2¸ç€2"Ûýýq`jž¶Yy2¹9Dz¨}ýdNb4M*”—Ei;ذâªh5)A <éîgJÌŠ¢nºÈ‡Ÿáªr¬¶ìÙŽÎҳē[="SUS©(±QVÓѾ}½Ä´ºJÀŽ¥qg«l—5s¶Õ¥ZóY¿j€°aíBZÅY" «¡‡éUàüN^GÏ𖌛ˆ_~ƒ`Ÿîh³ïφ'÷­â‡I=3¤ÏtTô/ º¶±÷É\7Ød"FY/” ÌÒ¥OF?ËšàÖc.`åÖªòÏÁ÷ïçOvßçDÍ" Ž’º>û-­ŽõÎÜ«„ÇððËNkAÂÎŽ|¿›Ù‘k‘&ñ[E³‰”>p2:b,NžÑ¿Q„]1×]ñUôëDzŸcgz¨Y-.:œÍH67»Šï`ó86¦wÄŒ,̈C¢/MÔãRC„;/Ï1¹qºðF‘®Ñt›%ù íO€6p§¯un¿Šà Åy9½HT§?˜ký"—‰ÂýÌã1¼Kõîé¹Ï䊘-ôkà8•û趃ÔXš8jBíëØÕÄá®Ì Ø ¨7Øš +`ÛùÝzŸ“mzâç½½•š/H^›Ù‘@4^-›£`nr»W­Uî²µ]°ÚåÒ†ZØÍK…#¿DfÐ=›léo}ùÏw¦ÔÎ+vD{FAí$ªžëaÕ"jàOcÄÞé‰`iÍæEŽÉvÜÛïÄ@×N§ø +œÔL\lh·x}”Ø` 0jòg½ !™Kß#æIHLÁ^=u£Ö‰…Ù•~ ¡%Rgz0 +dlϬh–ùƒ$q¾Yþ=cÄ~tq@ÜÜ¿þdšå0¦Ây!8Lçü Q‰§ÂÀUó½_扸Ëáöfš4Ðîï M UïjV=µënŒaá Ks`Öžé[€Wÿá0øq˜º2UéŒY¡{Z#n¾œ˜'âyÝÐ^!¯ï.v,y Ï•1êrÅ·0¬[ý'Œã̇ö"04ÕzÇ\ÇÊ/“3Äo˜çgj÷=à}¬–N:àú~ª +åðšÒìÖ”¯Yž!ØV(ZeñÇ‹Wáî{¦Ô¾ÓíwÄso\ÿ'õDÜ*èiȳãn5x…iLÍ:Z2UH³¢xH•ïלÝAms2ÞŒÒØ¦áPn¨„“¼#v½²!!g‡rˆ<Ëü_e fæk"– Ì&¹` JšJv8þXQ™eŒ8e­‡òõI€¬4]h÷gDN°bD†f¶I#Þ7´zg°ÍxžŽƒ d:<ÚJö %Ë.?FPD®D#õWoõ ñ{”(‹è]À¬sŪnG ]ðìÖtÖWŽÓýe UåÍJO5ÀœœCô™Å9 ±õW¨Gâé| ¥-ºYŒ¦TØdM Yd=ñeUN`äEèXœÙ¸jAíѯõ•¥ˆÓ›D+ð#Já†ä–`§*Ý*€í¼é¦ß#Êëk‚û6î?£4qâ +ìšt¤1! ˜B¦f=E0éòþ&-Á'¡›èþ’ØGX²8†êâ‘Æ«‡ƒ +Ç0‚NØ '‚N ¯” ˜j"pAù:A²Hc¿´kŠÝ¦íœ)Ùë3ÔG’ðéÊü«­¥žå>6DôÍ8›%÷Ïr£“ZUþÎ~¼ï ªß(¬viÊà5„Ha¡õLƒ|çgæ‰t†'oéóuÑÉËä :Jìú¥–ù“%âûÏÏF<>¾¨ÀtÖÍq‚”›ÝÿJUЯ#Û‰PŒê©55÷sFZÙ–ÈÈcz³—¤®?E¸jÂp» ØXÇÀ¬!a’‰Rðt\—9«ùìÿqz"Ÿ~ÇxÓæþlEýùï‡á½=×B'•ìŠò õðñãùÅÜÉ=ÔxшªÏøâ–Âܸ… Ýý8ËAØc$}ìðˆíÍò;{ø{xÞZÈp ×ßÎ÷ž'þUû®²”ÉÆXšµö&µ¢9E–¥°£$GݹoX3ãmϬcDoåû˜U Ö-Æ¿Úã|g}Düãi#¹vüùÞè©ìê-’5«ºçBÛ¤ +|˜0GäGjqçÁƒõz]É® ªëÑÌ!ˆaE¿ÞŽJýωX‰eÄ:õæODy¾Ü•®+d§a{G¦óu˜ÎwhKWÐÇaz]j7ñïT¾,„¦%Ü’—ÝIÅÞÀöÝ졞 +-À¢Ò©|-PõJ0Ïô½ïˆø#êqÚ(›<¡œàþfLùD(™èÝ2 0ŸEEú8-kȺŠÎ÷àM£U¥Mº§”“¿káÇxbFÔ^Jàn´)^jGà>BÄ®É×9Γô*`º\ðÁøÝq]–/ÄÄfü€zlŠÉÊo?FhMv³ÜùŠ×\XÞß °DÑŠy›¸³Æ­sé³Ih‚~\õ½Zj@°ˆ¯ð¤4Û@`[–lAc&É]=çqçœVè« s¡¯>S÷?8N°ñ1èg5ͯ‘1ûŒØ·Tj62œ_Sš+VF‘©ÖÓ{†&Üñ-ÊëbÎ÷ *í€÷N*0{\²Tìq—8R¤¨Åd —9°ð£„¡¼`6H›‘+~íƒSjÇ}ÞÚÿÏÚ»íÚ–gzOÀwX7¤XÊóáRÚ-·eou B’`š,uÓV±ª$AoïüþˆÈ¹öšsWA!PäΑ+ǘãñp¥»£pcKœxt¶)c<Û ö4à¼$gÚÀ£f«#RÂ6hÑé•@j%ãÄÑCVÎ š²PB–Ž¥GÉ<bL]íyûÀµ‰¦ ,2± 9¾›S.\B7à5§ýµ²ÅÅïe㛞 Ø->oþ4kËßÈ•¨‡)–L¡†_Œ-2Ž¢L&”¥lŒ0õ¥XèÁ”™±ÊÝs"¾û‰Ú$€0C{rßË%`•dò*YÐPïÔÕ‰¢Râw^4ÃI}Må í÷ô¤¶¨Œ.¤®£Ò)³äã4Ê¡¨<•í<"­îiN…:p(Τí«Ä3€Q8Òq%¶²8vƒØžÙrŒ‡—˜h1èâñ]·éÉ 0('Qï¨y4´•³€‘²3537Û¬T1õ6y ·O£@feu£ìZýAËm(£œW¢Î O•©[÷hר %o’ᤎû7è‰uPMÕXÞŤTS{êÁ·@p¸™ÄƒûÔ D™Èˆ±:¤nek|*™~az˜®Q“›š™æé†wyˆ×z]¸úµÊ‹?çE˜¦9g’K¤˜nînÉ(ô¹Æ»·g}fÊʃ¦ó6Ùû¶ùßð¥ÜÇL&]ÒtéÝM¶&³9O±ë‡¥(1ñª ãt˘z›kH¯á£”•ƒŠXh5£RôWâPPáVðU ¯)y<ÀOêÁòJÉø•mÂýš*k¾—«õ¥0ë_-Zl±·‘ÖĹu»”i LPÕÞT|úxÀnîÇÈìéÏÏ\#!„s»:h‰@‘ÞD¬hË¥ýc=ÅnOÑ1/Ïà„h¦hÚûuv!b­¢†EèC kÏjìuáοÆÅÒ¬âPvB$‰>öœ +@!p*D ¸ÓSÊVÂÐÄÚMŠš‰@RÔ\£Áº£±RÍBº6ã®,.–éXË…¸(ûE®û©Géæ+„šPÀ•­›M!7¦#2·Œ”‹LX—ÔpYIbk¼Ì6(²Ê‘e/#cai:j]P{­Ì×r#P!2Ä4Û]üP°¡ÃÌ… îN˜ÍLMå8×TW¸ÊÞãÛ µ„yhƒŒÙús9Me¤i»]È{ztT•ty Rcr©Ô¤qûIëñ«žX`³k!-’`à¥ÑRS릻ó óü¤Ä7>ö˜Y†¿öA<•‰tæN}L["vÇYñÑ +”ÄW’Ò€ÊIøò±‡-!ë²é¼9r…Èù$á»´’ŸˆT ²Jy€ >ôù šMe?‰ ƒwêÂ`çxgÅw£K8gK¹è©Ç?(£"û4å‘ôqœ³ä)·Lí^Ü6ºÂ.Ãw5#º°{Ý¥ÿ¿.›'CáW—²º²P’·IãÂÓ È,Á-a\'l•áb €‚ƒ©´ßñUuÉ^£ù:Éq†B3{ʤUvºMTƒO–fÎY¨^ƒ¨Ê%)»ï ñÐkr‡EÐøÖs{¥\ƆbžíÅ8=›Eƙђ”Ø>JB±>5¿aþ¹ÆO)†=¶ÝO7çò Ètš4«qΤ0ÄÄšnuw&·á$Y#5T3—n©R#T”Œ%— ˜¡ŸÉÚÝäÇØÚLŒÉd½¥ýBek›p$fG–Ñœ¼/óÒÓ}¦Æ´@gÐgh/>ê\_Œ3]I%®êÈÞ%\íLùU‡ °V<eõ¡ô›!Eú¡ÉpººDé9@E1I59ÛïÙr¦$oÆÃE¾YÌÂ!deÈ”>¼—€È]þ£2#Þ†îLšð©' M ؉ƔÀP®JÔ$#”×4fz ûó.\vÇGÊþ*«HsÓ™M„örD磬‚¨lHL&%‹‚Ÿ)·ôÕÏþß´÷Íàú3[Jøò†]Åo©ÉݪÆ9^t 2"ÿDšäbG¿èÄ{¥Ng\ç]ñt"<ù•A§h¶ÿJbú¢ûl=˜¯çvúE}(0ˆÆýG‚ƒ´éºDtCÜ øAsq´óÍêF ànL£)BñÖ·@U繎yê&nte‚_ŒCv[i™F@D™lHP4ìU¯3`q5’¢œÛ‡›µD4*¥hiɨK8øTØ8àwÒùéàP] Õ$^Ò"½÷É‘rRõjÒe1Ð1›„îÉ4ÌÃÐÚaÖe=ðöó»?&¢O$û¯íÿƒƒ%\êû{ +½þÇoÎÿoò§oÿw_?Y~û³¿øá‡zû“?ÿ«¿ùÕ?~÷‡ß}ûWÿüí_ÿê·¿ûöÓ¿ÿ÷oøÇoÿò7¿ýñ¿üá‡ù½ôõ_üíw¿ÿîW?~÷›oÏ)¾¸¸}¯àgôþÿÿ¼sçÇŒóŸe?ê…>ÀÄT§d0Vœß!RoQþz>8‘Ç%+LnIªO^J}“ÒÓ7atȦugs‹2ýÑI€Ûߤõ.'+›BMŬó ?A\‡¹„9ÏéQø^ß:8äsÆ7´mæ9NARó‡mÚ8ƒdUN“Ô¨× zP.Ù2Fµ¾MŸCFÆFäÔª­é/Äÿe¸ý“ 7RNÒÿ‚$vXºåNòQ +RÓT=MØ4‘ yòÙQgÐÕvc„ˆ‘†ý#¼[¬Ð ~û&Lµ°DË•„ð¸$ÊœOF­C(gߺ?ðóÍÊãûÌ@Y)ãIn!€[˜%<ýnÐÂRèèîb¨S1ädºÚE“Ÿ¨3µOXSŒeÐ{¾TsPrÓH¼É(ŸQÁ¿±"àªjS5í¾®5m@LL( â8pº€{Þ*‰#©®…µ$7ÅÿiÓ¦¿¤Ö„÷ŒÔHWsü.._XÈ_’³´r±xJX§Ì3( !*(Rh¾.2£B™¤ôþ|À0Jç¯ò‹ƒ²êÔ5€EøÈþu€Ø *_kp¡×ñ“ }q]k«ú ¢µôW¨xI]™ë<ÃJzœ%‘£$™ÜIIÖGƒ)ÝfƒÛ#üÇrNß PR"f5@,£ |Pz¶x™ÑF”§–Òa¯óÆ0H]õ㦬‘·ó®@U†²#yÇ–4ÀPÊy£„Ä6°KÂ8G™(‘¿e`wøH~< ¯¬aêÏ“0ÇʽO´àÏL/ߊd¸Àü–“ÏE3TäÑÌga„¤gDkÇ_yÙ7›Å.÷IIøzlÌÎdAx³T•—Ž"ÄsÀdªeŒ&©¹ªd%{ù‰qÀfžêâ§fÎ|…I!›0c¼j`ƲK@qPèCç=qà +%cá¢ÊM~ e›«¡”_Oûê®|˜ÙoSʇw–$s à2Ý«ÅÈ7-ó=12¹êçvF¤­¼88HWM“ìG|‰’ücJZ¶NDh¿PõúìKÒÙ,]gîà¯Î“ñÅN<{»¡Åîõ1ŒÑ®3"PQœKD–ýìZ~¯I¸/ÚÄê3Dƒq[ÊÌ^éL9 %g½‹ì¡2âY2­1fÓÓ"À½ [DmŽ  31õ8ñºz Ž*|Òæ£c‚6ì–þ¥ÓµÕƒ/’9;€6›\mg±(†>2¤7g*xXq¦³0dC1Qêô8¿ƒd­·œ¶·u˜ðR9Ñðjyî‰Talž(A3Wû¨|ƒ‰Gy8öMbÄ„Ë<ôêAŒ=/û^˜×Ú )¤.Rø½û§†¬­ÉñۀCDÉ>³Eé8Úœ—X ét tKðÝè!3smp›;µÁ=wgêëv¤À]jŠê€g+1ûˆÓÁA¹ðˆº:Àx8J*ÆJb› ;“§ C§‚=бbnÓ!£GÁë¸CW4ð¯9SF©v!YjŸ¸ó,»Tÿ6~"±³&§j¶t~WvãÜcòoÆUdƒ w…³züÌ'ð)¾ôÙp] òQ•ŒÔ–ÈÚªz ¿÷^-Ie.ÓZ(îb¹*NËoG¯7;±,Kˆ†UèŠêvgÊ +KÄ¢+D²éEõA&YÊÔ ªÞpTØ[ãH¨lV.Å{4-xaO¤É¶ÎdU<Î$½%¡L?Sh Ì +•UÄ a­œÙZ6(6ÂWl–`E®"A©­§„¤óˆ4W÷þ¢‡–°p+?Èí+wÝ¿±bc*h˜¿ ‚›¦È9¬&3 ‘ÂËjÑØâQeæmá¯l‹OÄ6¨Á4ôç€$HºèÜšÅ×W)Ô «|ŸM,Úÿ˜†þHÁªlipá9£Ñ&”1]QÕ½/‰-ì]Ï7Ê[Êx½êÓAºéê :ªd'ø8¼ö:YgºÛ|n•v‚÷šÑ‰(S)í5\£öqÐкä;(v¿)!BN«i&|€Ffµhëc»~6s>¥ÌdZòÿ(ŽcÏø8€´£ß›ÛV¤ÓÆ-* í#ÄËÓyÂ絪r,KõÊÖ±eò’6·$02î©gîæOfõ?©’*lLß6–~,Ìf¥£…¢è1\7qÍíií<гNêT)’è—r–Pj¦·µöÒ˜”ýuÔüìg|›³ò‹ª$[§¦""»ÈZÆ»öíÖv°³=®¸÷0áÒ-›Í5,ì㚈•hyaØ|þjÊýûÅ}‚8BUùxp£E"PQ—`6/¦Çå&´,ßÑ¿ƒlÈßWùg½m9Û·Âm²Êí<™Mì™M½é<2àM˜ŠO6œX…U¿AÈnyÛ¤ÓË‹'´ hå +æš)g¦Œ«e¸¥ÞÊÖtH,éÎ4|¦è Ä)=±$³%ÍkÕøÄR„ÊòªO-Ô¨(Wɬ¸`’^gi8á¨Se˜µ^T>Ús ªìL µö “ÊÔø+=8h¢§4U±ß™€5ŸŸ%ºD/b—®^rhLÈÅž7)ËB(žrVl=ôÑ'UŠè0e:‡Ž±ŒaùÚU›:çv*½PšÛðdT- +ë3™Å¬­q°ED%F¶BŒåÀ¥f—B°ü$Íg'>ÖäZj±éJ<º'#뎰œöÞ‘ì%)(Þ‘·Åó§—é€á"b sëB+µ$Õt$À*F-*Ði¥BlÅEÊ;ÏTlP ð2òã|&@Ç€¶À.¤ÊU ‰®®Iï$†7ac¬IèÚ캓ærzA©Õšô߇õ`ááLCÆÅâbzt¡?‹’,ø»‡¯"½Xô©u‘‚2 ¦d¥µ;S™º–¥·øêÚh«òͪZSŽã¡6y‰lî +¾%é_±2‡˜q&<5Uh¯†•GÕºËʲ&÷Q&1–„ùËÓ!-ߢábs.H ŸÑ$7ݺ×y³â%‰émæÄ Je›rÛ— ¥2¿ªvMÔ÷«j= øÐ:ƧÞ30èª(i6‡éÒkÞ¨ÚsYêÙš·­Wµ[i° ‹ëÕ/N”+z Ð.½äA¦GÆåuV/Õƒ:-©mUXJº]4û! ‡Æs‰zGŒëgwÙDæ «yä‰)¹œÑqv¤Ó-ZÏ¥Ö²Ö„ç¦Í<ïsøò $mÄ‘ma0Á–ë”Ñ2pm:Ê%ž_”©xó±tÑü_ôÐÿEGe`±áæ3`agzdNAPŠ=Â38 žÉ‹ë=ߤ~3µ]}Fijï½Û÷^æs{ï€?¢ÆþðU/ž5úÇ<ë©;ƒVŠœZ1K¨¯:L$nôurd4ž{}€ eL!“;°C'“&Þù¬#û¹‡Ý2P9¼n¨ìòb +ЙdESìB›V¤Õɤ>õØM4{Iˆøìó¡—Ä1ec*(@Öoåx‚Ø&oOšy{jÞçÇBÎ×íÀ‰ä¹C|ªJ]=ýuGŒ‚4FÒÿ7ˆüs³6AE¢÷¬^‘yûØkšÿ‰dŒÑLå¼ööMsëSZ@Ï^¡øëfÛ¾æc»O$ié…÷¢h"ÇÙ$~¤Ü5ŠùuÎ^‘§±Ââ“â 'w=4ûÛ(³íæÌ,§›&y"å2ÛTÁ‚˜ùÑ£h“ Di»Ý3­N,†g–‹<ÚüÏ£2¡/=–©Ù/O] ;ËõŒ!¦‰6ÜñSEÆç%ìTx9¥/²¡&oëïRø"Fø„#XuÊ€X¼,º"¥J¡Õ¼#Ÿþ¼ÛwÓÐzŸ‹Šd &`O>÷X¢ ó²‹që—½¤O@݈e!çOhÙÀ òTºo¨2Te, +2F[2/†Pbªž¸Õté5‚þäáÚ™YëÕ ´l¦~†\!ª³'ŒExöLšÖcn;HD ,r`S’­ÁæV/r§WçÝ€nny¦Í WÀ 3;=’ô«Oe[²¼Qâ¡p7ÎåKp¤=N«ÐD Þµ;éæÍÊã—/s&± ”ˆ–Ž*x†ü„Ê™tû‹ÀGªÊ$ðÀþc¯ºd/ÎQQg* +•’u@™ØødQ‰‡¶ŠÑ~ßÞÑp&Ô˜”K;{ Ù`o]“öÖ€üåÀ¤}h+D±’-éùá–(ଧ¿Žz4R’Ùæ÷a”s·ÀÜò9T ˆág>…Q “^ôx¹~ì%gUùλtÄ[†eÙòàr"—憗À­Î²–›œÈð:è˜UËsM†ä•ê–=([žûì´„ -R µAŽX ÀUS%ʉW&œÒêÙI* ª’ŒØ$Ô+Ý`€|ŒŠ€ÎÂpcYeDPŽY"9÷€J™iØ NR8R ú+ùé³?Оs7m†¶ìäÏ\¿Y½_’´R¦ ÝùmCþ oÕY)°mÓ¶~ ÅˆXØÀŒS™+%9IåÍjOfLaÄ8¼_ÏâÄvÌršHæX!ù7 ‡ôû^Öºs#š'`ÖÑF36Ò”‹ î%Þ׉%°»¿(å^˜,ÉJÝ)/¹ýõ@œ$¿ê2[¸3iÞ''5 µ +†ƒƒb^œ¹‰ê €×,DE7¢ëYtp`´j`·©èƒ|—«ê#(†q“Ò +«¢}v@Ùç€ÌãN•W”å‡Pq+¹Ž!%¥byåˆô):͉Qì[@ØX!-ú“K†u[4QÉžÏÁ5»wÚÒ›/ÑQ ògc +é¬Kt0s¬¤ÅÞµwówBí¶ì'BeÎð,¡ïÎS3|*ÒT ñ_¢Ú’ +“AžhÆu# eÙTdE2®Šw]Eu‹ÆóñaÓ±G–e¦@&DÌ(õhd”ߘ±"MTÒ©w %u¶¼"¥ºI§©¾ÓTüîh 6™zÒTä–h­„†,?©Èféýñ)W²GËÎ$xW³ï™xé¥Ä‹]OÖŸ9Ø`Xú·O:&•.‹ ÀÞpÁ¨œÄ¯ã§èÄ7Öú†ln)ÄúŠÊÒ…2”…A3˜+Ë)³£ ©)›µ*`;¼2:ð“xÜ{Éã†$ÖÖ8J" ÕO²7蓟‹Rãy‰€!eL5—r)̪KÇV‹^5Üßn¯ ¯ÖìL“µ.±ÇË. 6u@ Ra²Ü5^ ³Œrõ}Šž(¤É÷³› óUJFû”èB æ<¢{¯ýfp¿ž ¼Eå \H. =@Ô8O£ ÀŒÔ;Löz™{J¼QŸ:èjA( “ä®ñaåtä»°,_õ¦ùÜ¡H\ž¶ÂîÕšQõ@!;N]L?Hòxì‘+§¸Ÿ!û¨n‰‡/k{Øs…«É ¼•{1ŽÞ¥i_8q ¾æ«Œ”ð™E^ô€m[ÍS9¨®Ï½pSÕä²±>ã˜ÊMÚÆ<Ëbnò…êng‰qC[Zzäš2—)<žÉ¢qBÇ*8èREƒƒ¹U㸅€ ô¶hKn\=o:¹ÃÏTŒ¢¶Ë^t¤—"€Ó˰|\$p&¢‡( Ï {IÉMÓƒØ]XÃèÀ>é™(EÂÐZ÷DJw©@7Ëj›iÒ”_ +Ÿs3˜šq64?âjÙ. + žzØÓùñ<ƒíµØÈÊÒµ f°T¸›åE½Í߃é<õb«E$½ ü~ÓO»âí:b]/2'⢤ˆ*™Ôô>vøµ£˜T±À‚T3ÿÓ0À]XƒY0¤ñ-.»Þ«6G•Îd +Ú赑8ƒÍ’Xoާ9!Š`,Ò–TNYÔøŒHês CV CÎí¥ö§NÀ Îß"eIî;‚4ÁyHàäå;‚‡- + iÀwÉöŽxâ ð=e½mrô"àÇ–º‚åÊ2c ¢¹Z}.4˲Øúž¸üª‡)#žÏ–zœÉWjBí¤fª#‹Ô¬ü +¬Z=€6‚;Z–O™ÉKgbK +ÑUê(ôXZQËUPÌD?ŠçÏZõü$ÖW}åÍQR0Hql;¾â´Ð^ô Þ :ñ縅Ñ/z÷Å%µ2RøUó¯hrÈEwÝÉFáʶ¸{k|>ðk²Ê”‡ÎPø©×â®™î™4Ñ0faŒ2I꼚L¨­˜P‹½lÉѺ ‡ÁVÜ•¤•F Ëîn<÷¸ÓFƒh†pC1 Ë<Á2FÁÚ+rբ⵲üþ5»ávK§óÕ‰D§zàA¿Kd9õ Y‰V:žÙôXèYÝÞâl¥8Æ8QªzÈÁjf™&Ý3i>ž^…Ò'Ùj&ÄìŒ9 +À&|$ ô—Xô³’ÔƒÀ绳!&¯ÉqápCìD‰d2ÃLóâ>ÅÌs^RO`Á¨ ÃùRnGÊÝÄç¼¢v[ðÞôýÒs/éIöfz’$2Ø‘+B¯6].lZÀT 4K>¶ë•Bª.ϧcø–PYaŒœ4U3¹mÁþ¼ï/)ºü¿92ôcÑѰ²$ÆåPp¶ˆgG¦¥°CÐ>D0%VÑ5 +KÍ…i^ø—Tlsщ=!‘‰ƒGÙáé€6†ÉÀFO;•kÁ…À–.d!;rëŒqÊlÊàÀ÷à–‡+ÈxmWA 4g„yÞòPä¯Qä@ Ô cLdvMqtÆ×ÂumE“`­Ÿh›bJ"F“0Y nê™pe‡ÛÁÔþjh»s˜è(l½?€>s Ø·5‰ Àjºõðnu®d¾lÖ© ‘>Ä[„ÌÁšBÛ@W »Åö¿€Øì¶Bé³ÄŒÌÌ[{>øÙNu–i›7)ú1áep·,€¶jL+«œ…7#qК6ξoxœ¢WÍú9ÌNí pá'é@ö›M4¼˜—â‚ìòP*üÄ0 žÆiË0&Ô0’ÐÙd7”•´ÒS§EÄÒ{áY,à4FèÕ╦°¤šÞ 0˲?™ +u{0kÙqÓ%vÚ&€ià €£MÛlRj•¼Í³}ŸÉ°Ð‹ÂX±â"¨Òáš¶³¬”[À¶f³8FÁ ‹Ý‰Ñ‹[‚6u›‚ûu°„x²ÍøY/³@G‘M1Œ¾¶ÅýnêãE³‘ ¢Éþ¤·¨V<õJ&ñ#aV6Äj–JÒ$Í»tNwàœ£í?¯sê®+(ÙøQM~~ËM+Ì+°¯.Yv¡nO8Xe9 Ï]²_hs ?æ +Ô—h—Ïäà ×ð=Å0›x:oðy ´ªR?e«p>f¾Ôï½—0&+x“~SEº[Ž|㈊G²Tܶ®üzTaæ¿$ûµ›»²wR¿bBaNyÌÜc(/Ê=†4ådÙ( “®h˜=*Mi¼)"P‡ä©|C‹ùBV´{éIú4tÒÔu>K :@—à­Þʧ²‘"k:T~a–uÈTQá s‹³­Ö»Õ­è®Å5Õ,©xÚ8ª°ñy­t)ú© ƒ¼êú ö; KœßÁºâãã²½EfÚ¸œMä„x“¥ ®zõ™››ôвdA€%9žOñY|%“ª3m–“×@qpKØwÛ²!Pÿdú*”„á5àÕG¸–L~«€x.Øñ¯©³ÚÒaB&ð”é*Ô.h +“ï­X]²˜€çš£ÖШæ±!`Ým›­}yR&©Bd<,Èö&áÆByª«¡þªB3ˆHK!UÌÏ쟊m·PÄXG½•6(\ÍÎn.;èns#Qbäô8›©â=¦ÆI2Á@Ž eÅUÌþLƤœ)"A,q|b9=Ø–_%jyàF\>Uh'À1J€6âgÙf»Ô¥ŠâR~‚A…¯wNކ4ô«Ñe´§zr¥ôÔŠuVÔaÛÃÑÉ5? +‚&¢®ZT¸/#Wv,ìgUlÒFÅŒ¦ËÄdWkUÀ­Ó#[1SÜ Øù¤ü‡éã8‚ñ + .lNÄ¿€ejjÁíèlÇNHxZÍFP9ŠŠøŠä<1™[¦(ÄYÃîÇF’ï,†¸’ŸÉÁ§û5±¿gö)Í|°fQÎY¸P,I,tY1átO¾O 7é –?…DÚé5 òä6QŒŸÝr. ‘»¨niI’&jŸEGM¸Ð®èB.~²ü?çÛÏÇaÙ½ÔÑ Ï„ñò"6$!æ^Måö俉#䇅~€§ÉºŸMT¼—­ÑÉvnᛨ3äH©AɆ&¨ýDáÛEürXŒ¤i4eŸ™3I&#ƒJhÉTÉxGÕ 5°,—–l<*¿Þ„”Ÿ÷8s'=ø0é`<ÕoÏ ¡*ð\èëÑ«g“?[àJ¥:¶t½@ðÔA›óh©Ûi„°™„K¦Ÿ&U²3‘í‘1„nÞ¼.%³ts`ˤÖ^ð-8Î^ ]ª¿Ò¼¸zÕ ¸4¨ûm £ˆ*S&; ˜&^Ž€ “iAI ‘'“ž¤ÒÉ7žàÚϼñðÈq£ ¼:¯Á Ûð¡À*wçæŠg +ÊSt+.œx­ÁœqŒÉ9¿Y‘§F=±4 &séAÈ—ž{ýŒ–>Z‚P +|¿Dd @…aÆÓÐÜLBÌJδ†tÁ¤hÊ lóe½`¥cå´¦ð¼QU+?ð£Éò}¢„ ÷žù|H~ ο÷hT$çh@·†#É„K¥k)FI%¤é%' ¤ìF«è©€q©Úê@Ñ8ªØO N߆r÷ˆÕ¼0 dùÎí±íh’ìCPO¤{0›™?iÇȬÁŽ õØ¥¨GóŸD£  ¼ƒ¤qu«VXa= +)I{`®â¬ïìpPÕ¡®Mq„GÈ‹"˜ô¬ <§ÞN¥N´»Oz®T¬ô§RÞb0ãdɰªŒ:H¤s[ù н4BoqGx‹†kP¸ýv·ÜlËaň¢òüÊb=¼µhÀ"Éœ±¹uÒD?ƒ­±ÉšîÎ$Û;ü³ÎÅu•Èäl–H6É1-©ä·MYÌÊj]XÁ6, O …±Í¿)dáQá[0«`i#Òí—¤=z!”§RT ssý2™A`pJö+ —¨3"p·ðeo2þÚªèÒ¾ºðþ1cî&µ#«ZÖw‘í²Õd¯&kiz£ì|ΰ(u"[-ý‰ó)cë­ 'dÏl„l +â`“CöQâ¤Ô­1‰!U2ªËRyâ}´ï¤RIìŒþÆ.±øA]o|Õpªzê<mR_aÛ)­Tóãù½ønò<§¤pœ´í¹ ´f™Ó`DgÓSéJD‚Mq¯ T dG ú"¸\žU5‘J=™²õF¬Ø 1r^‚§Í|(hôb"¯Í.ŸØ\²zïu`I茓’ý®×ªºÍŽÑ(½ÙÁް,{™-= ùì¶î:RÞS¤¹Á)]#ŠyU"`¿ˆäkA8Ô­óŠLÐý\W/©PÁnhX¡ÿ*Ë™ÞÖ³ŽJ=)-I,CæB—u•¬)I¬Vé6“ŠIÖ NX÷ ‚r³˜1%ÐñàÅÉs©DJ¬"f$Œ~ª$àT–(ëð$Ä"s»´Çª#´N¿S Æ”X`¹eŠB†_/–“­Épå÷bàc÷/ØIN*”¯ +J¨ÃÁvYh<àLƒ¢»©EÊž\fHŠPÑ3°2ÌÈÀ˜ ÉËì†lfGd]Ûóßç7SÒÖëg3„ÜŽÍšr2õâ$A.#JôÚ¹: õ¼ù|ðýÓÐhàoÏ¥í;hv“h#ÿs>TN¸„ìä¯e°‡ªìTÐäýMTPûü˾´%-§oGž¢ þoÒ® ×ÝFIVb/Ðäá»%5bMõBÓg9oÍ r_|ÊÚ²N°1g³>"C"!µc0ž³GÜ2ÊóAÀ»øp`L¶I°èÀè¶ÖÊM!¹h´¼+ù’€ýd}”£ò™k¸e\Ø&µçyŸ °OLžì3ANûg.Y“dù +åÞá +°{?¯R9wIÖwg$WÈ—t$Õ7&¡nF»\éC·“‡Û  +5'éq¹fׂøîyG`Z +2 _Ü‘ÙbJeö`~æØÖ+1M)ÙÌ†åøžr=;Sˆ€òE°³eIp盄6>•J6öí’ŸîÔ¯©-É›­é™d‰7‹®9\–œ4Èä¢gHÍ×Ç0 °†çɤ¢bVçOªtˆÉ ·Ç&E$Ø{²+GÒO³$”'Aä”wœ˜-“ôy|‹`/¾QÒ9»º Ô6x=åÆ"•ŒæÙ™ÁJ“/¶'0É#cѶ+^²…q2hs%>‹%ѺóMº›ß(ž•ŒdN2ªä_ùíÝä\hBi Q­yíÁÝ«7ц,G(¿D¬ÐŠü©†Ëä $/J³€5†KËõZøh©BSiå7nÙp@R8•ùš²Ð7+FKvþûžVL#Sï‰ÖY¶0Žôns[’d¦öòUú²R]¾‹~Ý‹iš^ye'`gÂ{’/²CõPêsoP•8½†c¶‘0'¿ ÒÜ\ˆÒÚ8FxœGc:HE©G÷<éƒó–YÖ±eÃ|'S±.:`ˆ=У‚­šHäIz5}ý¢*ï'é>’ E÷ù›OÒ6J_gÊgêĨ+eW„ÀyCw‚çlü’œ‰ß%)CÒëì'o†0Ë^¼´X™‹Œ-«zA —ÁtÁjP.,"_ÂÞ¨Ü=D%e)ÎÄî‹ÌNp‰ ÆEÄ]ÅþÄà:± ð2oVJEE‚Ð&[ᾟ‡ÁÃ-XÚ oŸ,UY¶S2`J(™v'å>Ôš¼<ÌbÕg|$›£¥í“öýY`YÏ <ßÐLŸY£ÕZç‰ ø—Eäð‚+»ùóûT)$”#‡&ŸîX2?.9Ö7½s†F!¾D‡²&ƒUV¥ê³‰bË4¹‚ŽØ8aaG’Üüé^²@à™NJZnÃÛ&v&W¶ŸÏ°«3N'³ˆ.(ëH +%V èÕò/ÈžáX|¾,ç!%•Wåk̾€¤4“I1ìÖ顉¼Ÿ–ZM¦ZdcÜ/Ù¶ôâòöb†ž2VªC5¢H;u(=¶&m#\á6µÚŒZPíX2Íä«UnÇèïDÙ Ët$´Íò°ÈE ¤*–4G¦>T¦]“K%´åK‘>üyn&Û²Ö¥ë í†^ô2ê>ÖÓüØfî;*¿œeŒ öNÖÁª>l.ô,IŸê÷Œ­Ï;¾¶‚9PsœºaöæX±³£f'à.r³HmðjU¡Æ÷,p5º"¨è2Ÿw™(È+…% ¯…p­}«•.1bÈÿgE(î6Õ …i`ñq"?±i„œs>{¸eš¢Õ ü,`ß0 Ì:Á4P(‘Xl‚¢ð—ui$¾€Ù bRÂÂA¤ gä&ÁDÚ™¨ÞâÛñ„†ä3¦¥D$ÄŠØFç·ECûnÛ<^É­0nÈÆ=ËáÒö¥àò›ºR>oë*Äú‰]"(+H¼f}hœÑd +Ð’a–è¹!4S 1´žDfkþ…’Ôf>éÙ @”º…Sh^¬['´î¸M{Œ˜ZæÄÓ’¯Û:ÿIÅx‘HWˆâÙ‹»&ó®ú¨(Åâ{{ÞXf‰³HX +á…‰ž{>p30ïîrÁÿÚ´áØÍßXO™’ü0݆¥|t8N/¨_׸Ÿgö!>ŒØÊræf"Ñþ†Ñþ¤ºÍ_Q~9ßdMÓ‰rKý!z¬œŽ5‘sˆEÊj6«~Uº¡(—,‹«Pµl&Á0ÈZ2‘´é²òCJZ]ìZ˜#ºî¶ü7ÎÝž—W]]¤ptèézë‹"—¸íI€g(™a¾6JÂÛõa⟋*ÇП¬¥¤@wõ—l»onoÕĨ²:g*¶‚Èg³såÌfÌB-›?ÅÀÝW[½‹¡SNÐzÞßí{q24SdàûKå Áæ+qÅŒ|LâR¬m´7BY· žM2ã7–êÈF@žÓÔTܤ’]·M RÓZ²†em°#`Dé&÷âê‚KòCE}YZS“=¾ÌŬEWÕŒp&§$eqê?`˜:Lâj7Y…%Œlè·Ó 8½Š¦ãä˜Y¥˜š`éTä;ÆyÖC@JÑeØ™ª–LàúÝÎäûq7D¨ + +Ð,[éa–Å£IWVÔDâXÊ4ÏàX4Œ4ÕCÛ—<ýèañÆÊ Û™&t z)Õsæ=Ã>€È.]¯$Œ ïh3­FIèSa|Y§$ˆùé›I€ažË1 K–âa¶´ }´§ ¤ 6@è²n-æÊKƵ8J¹N„ûŒ Þ ¯tb*ɨmEÔë‰Ò7Š4<`Wl›ð ¯„,¢¥€Z9Ý2°ëy‚5,>’²!ˆ[Iý…( QZFɯKv»µtÅ6“Šb‰†ž ní–,cóÓ¬×_‚â€pŽÊ‘jS*\Ÿ쀞S஡SÛ33*#3§éO 4ÜÛÜÀ¸Ê]fnØî ‹žÒ¦ žšz)«ÊC§*IPæ‚Lgh +«5»wMûð-/3õÀ¹ŸÖãLÍÕ%±ùív¦½áû± +QVtêªìvè!…ÀJ¤Kt&iUaLfR¢rt&®Ò#}’ »ÔØ_¢cP!ÌÕHUH/m)§„ÜÌŠ-Ѹ¶mlêRj3ƒ@¢E·äÂÙ=/ý‚4ÌîÚ¼äØ •™hH¢Â¬AKzÚBµrGµu\¢ÂIÒiš˜ÆC¥{&Á±˜‹EòÊË‘DJú–U;'L -jl4 Í¶9]^«Yœäa83#8°v9R„Ÿ¨áÀÊ(V#\ë<AòL¾iIÄÊèÁ áVÍomJ +ˆž ³øó ðj„·0A@YÜNá¦1 &ì*MU»AÔMº¸Ý;×s K§°™E’’$Iêx*Èh r‹²S>ØJ¡H„$nzºZÑNÕ¼6Ì éôßúJ«°µe#iš¿}:Ø®T{V³Þ»*ÜKÞo'»¨ðógnG´ƒì ^³«Â4oûÛæÈAuR>X*lOý¹6”ÐÚV3Û#M3§„Xõ°O3UQç&,©|O 8\ ²%—“¥îÓ .WkÇò•¿‡ ”š8 v‰ §é¯Ö/¤, ë‰õá5Q8¨S dMåÊv‘u°eÉpA|zí:J]Ê…‚@pƒ8 œ â׈[py”â„][Ó­Dˆ±ýƒ»€7×þ”±JM‹Y7™,&üäzÚÂÉ6#ŠÊA‰òd[zS,F¥ + { ô¤ÏOÓÒHªDÅE6¾Ê×ÈÙÌÖɉÍÅvV·Ï¿0B‰ti¡”K=XšÑK½ b64=½A(ÓmQâõZš¨õ2îÉéÌeRÀ +\މŽQ€9 œ@SBÊD€¦JŒWiÕ"ŠÊJÇ”Šþj/è?éIV¯oW +Ž\ û,ž5EòíYÈ¥†äkRZ.’‹èá²6¾‡7˜°*Té²ôän®¬J‚ßtŒµËB+l]1ÞfB QÑ‹ Œ²4…š%\l£Ü0”1ÑQå2ÏJƒQƒFmú:y¾—B0HÙ`œN‚óšÇ^…±1Î=ãêU뛲†bk¯ÞRæŸ'eã°X¨¯ðýÑýkä%TJIµ¡É¾êëTV9Äq¾æbì°Ððí¯(@£JõJÃ7 žn@¼{¨ÙCº«äœO I¾*»pÒ qRmÒƒmH˜°I›YƆë0yøfbOUFUüކDÅía‰S%²Æ0–Šs‰X$UqîÃ9†4”l­ªmFN8BËÎF6ÛzÍ8'çæ¨ð!Ä¥yƒ_g6Æ[@Žs+“Ë]ôiÈ’¢¬@VmŒ¿Ü†Y‚ª…@9 µðѳÖµHü磇‘bvìØ=' +íÅù«…Ôüî–d$;¹ÎW%Ú¤üª·“,Pʆš2Ðé|ùÆ\ë¶Œ‘ö’г» Ã¯¨w²È^”‡e½0‹¦º en"¼ë€„â»ÍôØú%«œ($I/hô=1Õ39x;ý’óÆJ‚˜Z&T|s’7G×ÞÚ.ÅVÉf†XͧPØWã#TH£¢ÛT©Þf3–h‡eûC奣4‘—‹œ°™Æ§¦ÉÇ:ÈÛ>¼9^ô*ÊxÂê<ËÍô‡f¾&â|уu7˜h,Ì~¦ç^]«µüëÑ2,=áX4ÎZ* ;ÊëJ¿Ôa‰KNì\åÑd씸ЪYïþ*›èh>Í™‡-(‰cÜ@ïœw–?5·<¹hDXËA¸ëç`“ž"ªÛzhšÔa WóÖ¥‡ve§Ðuõ0¤f5Eâ8“’z§×.~=ƒ©¯C°B)šlYaÐì>N¬§q˜PÔƒT­N@¤{Ô(ÞÖÚd.U†PnÍ_UÏ3V%½ÍV Lè‹Í‘æ0îÁÇ^cKL¬i?UXÉ™ ñþDl:±q†.Ÿâù^›ÚÉ =ª÷¸ ä‘ý|¬`™¹©îfY˜LH!hÑŸ¿z!ŸzmŠV|Øó@¶Å”ì‰H¤3¾eqªí>š®{Oøäï9ÛÃóÓ’r¾Z ¤BDX=$ÌÏ”.([µËÁêu6ZôJv¬’¢”Ä HÁ+ŠaÈ´d)úÁ`³ÎKÂÆ¦ËWãÚšYm6-¤+½ÚôçØóXqc¥Ü³ü@•¨ï•ï×` AWÄ––U§¶hÒöát6žX•m‹²ùÉŸíÕjÌ& +t÷ç–rÖ+3a~9;;e£Ð,'—‡~ªÞT„aµ€èX"ø*r°€Çg–R{Âü‰=[·UN¸ < l&z¨¨"¦bù³a2ÁDL™Pþ篟 3ÿƒ6ðN_Ó ,»<†ÌŸÂ`N0ת{™m¤§´™hs`{Œ&(“æ¿Ô-àÎÍYÆœ‚Î’;TeÛl µš!²Xœ#&ô2º•§0}Ó°’ZUœÇÒ7U±¥ƒO”ž‘o·È™$Ô*|—I²å§‡+q&ÃÑ Ò…t9½’¨¥žB,ùO`f+b›Ð«‰b!ç=ðo8=fóuSèØ®£%Åv‚Š1õÚ"…àeV¥”e„ˆÇ"AŒRäâœ&ÿOôm›ÌåLE6OP·´G$y@Örn”ŸÌY#‘A—Ø1«ŸfV@Y]ËÅŽñ–hß±§R¤¬æ/“4) +œÕvË +ev;$IýÂìY’/µ £ßLgF0hBdõCßMF…øTùøMUrݨIéLÿ¦n|:Wi×pÅ%÷„[õú?C P™û­M@uz¹»œ4y[µ«f Bÿ†·~‰ƒ[HˆÐã羋OÌoÜ?ÛLpÿè䀰1Ù³rB¡ é+,`­!ÀŸ7 +oOz£W—Ëãðm°QA4ÆÐEÕÐEr›K*¥\7¶¡} ¡¤©þåÉÐ"JÅñG‡ÁbÀÒ +´4*É£¸d¤‰<ŒL^XÛ//ùˆvp¦të¥Ó ^JÌö-Þªôz­û–á$!ÆÂׯêÅö‚Y\,ß±T6" + >ö°MQ÷ªg-R˜{êŧ‰ £12'ÔÈŒOñ®MÆùê§ïjêJ7‘Ží‘íìFý2EU:^$$w3wÍ ÍU‰é¡ÕýôÀQ=L%²jÒÛ£G{ï“ÌÍe‘ –Ò‡4p»N6Žm§Î3aáÖ8pNIñW=à#R¡€ «eÇÆ4‡7/«2!®W7Ô<ˆrF“óG’v þ‡çÞ5‡Ø ¸7«wIDtE9×SbžÔ±Òc¥ºÎ*Jb[:Ãbµ-xš'ÐîX9òþî&­J8V>®œFu’ò›Ø2h( +œ”eÔ‹nœð9 ÁxjM¶²Éù2UÌøÐã×^ÌÀF,e½è%­¡5·ˆú·! j»˜âvÇA˜Wª öš~1aŸÔ-“n4˙ϔ\ÏHÈ‘lHE+ˆ«æÐ£—|ONh+e`H7ÄÝ(ÓR«|U –ÕCž“„~×%J®RßKÚ ôHå~ Ⱥ5õ‚ÕBþìê%7#×éQ%DMa¯Œ@l _½¼QZC9é¢hÍàÅ#rœf‡®ô ~vMV‹ÃË|Ó&wÝs„‰¹çäóž{8ën)Q¦BϽ’Ãv˜%ýæwrÒPЦTÈšãb$kaf\’eïLô빃ÍUîÚÏ#ÀñiP Ê8u’RCU>ÒÏ€ÌbRd64°^ôE½dš›Tð 5›}o*|΄I#ŠÒ¨)vuR¿ŽÕLB4Q½Ñ„F’z¡bÌåäagR*m°zTcI«îµ@ž_ÔÜm³†zÀ¢GÏ3Üè$ÆI8›ŽÕš‰Þ·B—áÐäNÊwt:›:"˜‚·Ÿ’þ˜Û£jgß.äd+~Ž˜Æè¾--a.ê rëiàÍ]¦Ô :ráit7̦¹ê½e¢s&›àRŒží ´6íЧ)õIÙÙ6]NÓ”—ŠýêŽ1œìîfXðu \`ïÎwו¨p¸7Ž ÈCÌyyM,þ&¾½,ŒÕÏ/–ÐÏ ·v–Ä^Èc$N9÷Š€Z‘mþÝÔ̳BÌè¡G‡}0øPN­á£¶Q›ª®âhl³"V¾ÔNò?‰®¼l† d^i~@X¯5,ïÔ@ÐqP$A3Ì!^È|,ú«îà~¢6VVR;\œ”Ê9`5ð3›{€„—\CDEj0ÎÆW²‚›8ÙËQEú¹W™,L@Fèÿ§Jdâ²ß³– 8ð§¨$ìIÐiÈEØ38E¾"¨‹Ã"ûG+Ù\0|Ìm•…Z\À‡´ÓYéI|fGØ|q€+º¶HŽäRÝ ‘!AžÁúá>0N ÷&VÃæóC¶h˜Æ% ²ã© }‚JÎ2µ™µì|•(–R0¤¦¡ƒ”r@˜-2›!¥gÍF÷EU¬`ržî{Ÿ/;Ië|ºÖ9‚ +ÆñÆ)ËŒ€ø@Ò¯ÚýÑΩiúËc²f®†Ä¶‚ Љ¨:Ì’8‡ósXÎìYÕS¤”,™o²BUϱ.•¼áLÑê jhoGß^¡Â.ÖÊéÕ - U¸6•Út@\“pÀ^†Óç,1¿yë¼£ÚWCâk # €ÍÆÜì…Œ+v _ÐS¦TîH'Áó8H¼·YÐ\Hè랈ÈèãÀ6̦àîCsJ ¿vSÃïb¶M›2º/Y ÌÎ÷CºA´ñô‘Á¯/þ +ù{ß)ÈFš™†,émgŸ +ž4 ßEÇ‘¡j H÷:sMjƒŽž¥ñÁ «³•çñî•õ*²/þœÌ–4Q)0ƒ))Óœ¹ðöÓq‚iC‘ ûÈŽm£Û>ÍêMIæìÎ[30”¦7¤8AB­è !JU˜‡/Œ§º'äÇ‹ƒ&{¶}]mÉÖÕ³›Õà À¤t~¶+ìlþ©&J ˆØ¹\Ò›Æð¢ÚÆÎ£eÞ1 ÔƒŽ0­ónZç±R™"Û_UEå0b¦þŠBŸ©ð(òl˜ƒÒ.†8ífÕÑfÛ`“Üv7!`Ý9UR, ð›tÅ. 6™=û²WÎ;Ð|ïÝÝðé Xð@¥`¼” ÀäžLå<ýù8ˆÒ(ú Buta;YÚÓ + LéBE˜*2þròÂlš]Õ=R¨9‚ÐX&ïÀÞdaRðÆÐMp˜¥À´Q~ÅpÒZá ÉGÄšŠ†Y[Hʼn +õÄ=™ŒÊŠ_Q}SIÙÌÓ¡¾lX2Š@<ì¡XЈµš4›ð³]ò)Ö¶ÀÚ|hîqpM ©QUKÎ_?Iðw¿û…6¼Š#uP’vçà‰² $—qÚW 01'&˜lèWw0Ýž):Ê'›cD«×Ö|üZ³í0wh·JMÅ„vü: +°~ØÁl©Ô~èÍÏ…X¥I }qÕ†‚òSWÓös¯V¡ˆœÞp@ËÅuÌ…Å5®ÜEÉ$y[~(ÙüP„noN€Ônxäw– Õ-A·8;ÈëB^ªKÔ"ŠóÔ¦ÌÅRZEÔ“ÔáŒ@îa<¦ÙD®Âþ:öŸÉGñ6U(D̉8×f«löØ +?øWßÛ†Þ z/þ\fÑ\LÙš¾ ‚Ï?‰kÊ +¥·³U—†šxw‹|h8"T3(T§Øœ*iº|!n¨eLï1­Goq¢é=âÔ2=ò¾Þ 2yFãCˆéeÚ$–Z5¢Õ8:Ty®ðRœÄŠÖAɤ¨Ô†ú$ÎËÚ4ýjä`™ž p‡Æ¬î$Æ"bzgh’ôCzˉñ­ÑV„BŸ_nvˆØ < «%2E“9\ÜÏÍ-L1Í=œÒ !þG¯H:½ËHš5LÞaÂúÕèÁ_ãE~g›ÇgQÅr;þd›"(=ú»(r‚D©TäÀE®zgŠöèEy”À¢§¦¤°¾q‚0 UˆHVá3Û1¤aS‘£åˆ1õ1¿u¹³‹¿×Ï\,b<»Xÿ6WõwûÜ!S-ƒÜBèˆ"Ž‹ò¦¨Ä†ÄZ- +)©h´W=à!ó¾-Y™ßÜ =Ó ÀuñÔøâê¬Æõ%*&6®†ÉÂe¤ßXÉüƒ@Çš• êèN¡ËùOÍ.tƒ¦86\qŽü-ˆ6X¸á9 +ø>à(ÞW/õž&Ì>¡¨&8»´Y¹£~OæJ\Б3[ê;Í\ñˆYE,ŒS:{J +AUõ?H‹Gã JPMñ,ïa.uŒsyÚŸ+Ó%¹í9ÔÃÔ¨P¦æf ^2é’+;=Lg +zW +µÜnQÐÆK2?ÉÍŒ—RµÂé6´ý…Ro\ Of ÄâârwAÎ2ž{D6hÆÚû`‹fT"\VŒ­Êf¬É.ªˆCY–ãG@#dKO.ùª#Z ‘qheç0žs”Ï=J7ÿP×­^ä(èE|”…n†¥#‰Ór”ç1’nâ &¾!†Ð&Ë¢\?×i:k{ 3Y7¼"ÐXÙ„÷Ì…~›Þ=f¶qJϦÀ>U€öž¦ÿ5M=X¢ií1¾Ñ!š°Ï‹›G«õ ™?Å@¼«š ø`ztMéô?=ªÄ/Q¤‡I@Zyh{ƒ”–Ú"Ú8o +‘2¤"çF.5Ì,[>›B½mÿüÍD£/´û&¨Ê,ü­J#±ƒ<Íô”?ßihš=ìÕßîb# B‘Oã€'pg½Y~É1ýÅòi +GV)Êé‡>ÄS³Tf‰¾°0†6v`ì@CVáµ=^ªØOî!âsWQyá©ÝàU— Bk¨eh1’Ÿ>‘x¿ëh÷ Iú7¬ÛC½¨æ[/tSqoްf«KmZd¤(TIYÆ|ô`ÃK+ D'RÝÍÖ‰ Ë5ÙuÉ)å!Õ4ùì5!åÈ©‡ð ¶Í±K!Îûš^³q×™`oêÉîoÜV 6F)ì÷Q}“û|`fÿåãÂß­“ì O'-IióW0B„©R)ɼ)š$÷ÒYÌ’®¥.ŠyeÏ=ì•r ¸§?ýZ欌›Äèc“îÓç\Eö55‚BaµXƒË#{ÚÖ‡§ ­€B4p¾A°Ox5´OKn‚ÃÒ¸ œoL…F ¸„ZP¤ãÔ ˜/ ÜžåfªŒ£ð¨óy¸ÊŸ4)¶Œ z(5™Ï¶¬ÈÓÈf"ÃÔ‡:‡w˜Öá<ø B2hË”6â‹a² ´fƒoðÃ%Xà¤Tò¢G°åÿLþØ bÀˆ±ˆ9âkŠŠGðõi>|[‰oÏ/Úv§Š(&̵3$…J°,äõMÈÙ`’ ¹ $Óê&7@W%`“Òç°ñ‘‡UrRâJËâL¾'2÷JúÃÍ =»!à8º”êRÒC,ÄŒû3Ï[<dî’¼fâìlj;Ÿd2áfß–å4â®ed0¡k½çd1ÒxÕ)Z)CŸ7½Æ™>öâíR/ˆ@²²q +)‹%QÉê’ÚQ­)D‘õ`wØúsK8,‹ò …#nôÔ P˜If\†´ä¹Í7…Ø”±³ßäe£ûbO¸a1lûé8ÃtY¯²¼×‰Ò?ûõlsöœlŪÊ|žÐPú’TÞÁ¤R‡é‰"µ£ÍDJ2w­wù!6¨óç²!–¤ + îÞп¼¦·ïnò‡Bú»KФÏ“C®ö«8œ?&ØG”Û¯Ònÿƒƒ%ìaû{B­þÇo(ɼýÉŸ¾ýýß}ýdùíÏþâ‡þéíOþü¯þæW?þøÝ~÷í_ýó·ý«ßþîÛO?üþß¿ýá¿ýËßüöÇÿò‡þå÷vÒ×ñ·ßýþ»_ýøÝo¾=§øââöÏ]A{û³¿úÝï‡ã„?üAÿõ«ÿ矾³ ùüï¿ý?¾ûw¿†ôögûݯþéÅ_ýçß~ÿíß|÷‡_÷»ýû×Îñ7øî_ûÝ¿SüÓ?ûДBÌ_ÕÀ{_;Ñÿí¹´¿ûío~üŸ_½/Þóówÿøã·ç†þ¯øáw?Þ³üôÀÿÛw¿ýÿóÇŸù¿ÿðûÿì/ýÛþíŸnXîá¹é¿ýðÃãüË_ü/þWõÛ¿üÝoüoùwçßßþ×~÷7ç¥ýñ¼·¿ü¥5ÿÅwÿã\滿ø¯¿çȲ#ñ‡ùçÿãüÉÿù»ßýêûï~ó6þôéíÏÏþþß~!:ù¿<þë?ÿâ +yzûßÏÿøOÓ¿½µ·¿~û¿þïôöþòoñKVôoØb¢ìôöý/~ÉÊ@ÎxDÛç/Û2àƒ3¿|~÷·¯Úüo÷¸ªÿö »¢üöÿùR Wóqæ.zZ!iY£hÿ %ôåõÀ6–©57ãaËçLï>À†àĨC¿=ýÓ/þQ.n“ÚÙq¯â—…VAÖ}³u¶{O[|œF4? òÙGâ¬ÅÔ|tòEŠž±ìeïm¤¬1›pÕä# TõɯÀž_¡X\Þ™³·]µ +ÙŸýté6“KñÓÍ2|dòo/¯7n“˜Z~ó‘8ñ‚lTõfŠcoÖ(¢ƒ?‘>½ñ÷ÝØbïxs·ßGð{B©h\ÑØNàfÅGc©÷ïɱGëùÅÞ(2—5Žøû¿àñÓ¾ø{rKôfë?ìñkÁÉþäu}Ù/ÄúFZgvÿ)ƒÄ}\ò­¡ù„NÅ~4ñ/½ÙE*éj¬ÕÛr©~µ#°O~¶Öã۸Ϙü@Ü2¶ o/¯ëÓ½à®ÐN_QÆ÷Þ\k÷æ¼W\0¢lÍ¿2ÔÃ|ì–VôMþ8ŸÆ}<3+áJ6º?sÂbúìúÐkŒ]Võ÷½C@ñ_8«ÑâƒÄ-:Û,Ÿ>¾µ¬ø÷úpa+ž÷t€eï3Uøä3[ŠÏ@ÆÎv:P,ÞsÇ¥õÕß}+ùU bïöÌþJ uõöò +>Ýù‡tžO4„Ö1ÿlí<ø¥ _—˜'f[Ñ›ôg4¯^|¶¢‚å3EÉöüÐêo/Ïæ—áý å¨ñ½7—ͨö¼Y#L*Ÿ=²}Ñ4Žìï.~‡¶­Ö·Þù§”áoødOä× \ ¾H¨//ìqÅNWÜÌï% ²ìK%½÷Îï^fol1„| ¾òCîwÖãÞ£&|_¢íWÍ«<÷}퇙·HS¿ÞÖcø¬S²}6ðª}ïÍBSÚ +“U,óyå©Ìúhþ0F Žs\ô?“uöÁI8ÅçB¹ñÍe‰WYªämä¬Uߟ|€é {3çkä—ì¯Aê"fÏŠËg °ËŠ+`[ë£æ‘c¦<·öåOˆ× ¾; —æ{o®DþâÎíWQêöF EýÄ¥U³áó‰}ÆÏ ×çL¿cOWðé>Sì1cBœõ>ÓÄ’ûÅdKã¶e]•ªâ$*ý+A2ó“`ž6nÚ÷ñçü˜ý›b³©˜Ä±…òFCPÐ(bMtÝ;º¦èŠÌÓ ®ë1 Čϕír'*;ï–"ÿÕ)Fýê¯ÜŠèÛü*ôÎÜQã*ú´>\AL…e™÷½·Šú©V´cŽóß<-¬¶ž3ÅTJüP»+ÓwzÜL?¢[xño¯.à×÷žûóöZÛcâ¬qe'°Êw⌷{W;ÑÓöçÙ{™º¹¹Ù›ÒÓé>?žÝn¾®Kmüû¯õ÷ÞmûuP¶|49ÈcΓu·MãuŽ;çmo”¡O5Þîû¬«­ýÖ8ö"ˆ“ dÌw]ZÛ^1 ŽW[÷ìw¾£Ž£ú*„zo|¢ŠÀ_^þãÝû¾°}Ôû»Ò}"yÄDšJýø}¡k7,¯4ï•X/B¡˜tó»›‹¼èÛË ˆ+“ÙF ôàûhNñɱîx·û[+Wñß@Ë/æçž3®eÒÛØs¬ü÷?\Ôãý=æ)Áã>ʸÀßì7¹ïËâã÷wÁI¸7²•Þ"þˆ{ÜݺæA³#΋߼3u¼—×ÿX÷ ˜qÅ‚(c!5KÉWŽßR‰EnzÌÇ^3öK4ïˆú¶òB±úR=‘k{yŸî-G(Ùfs|_ÝD§n›QñŠ´Æ6ï»;ÚŒÆú¸eÀ%üÊØjGãÂ÷ã‹øò +~öÒòÝ ä •:{|»ÿôËPàm~ùîseñÓ"ŸòŸe¿ÍìöãÞ´øÖSë?ýÓ ÊÚ„XÉ®÷³\¾Ç¤ôi›Tlqºm\!pØ>BÀ=g޹°üy_nˆµìöuh–ú3ŸõzLYïE#k#>¿ X Ð}¿9ï° „`/Ó”Ru̽ùU¡É{ÿ~´á`¡Þ÷¼ž>’ßž5Nè·Ç/@ÛÉÈ>~Õ7n¹Yº¤xŠKk¬Çäôá|Žæ9üÎÞ¯j¸cÜ–SÀ½3žmcÉÃTj³géï9[.ñ,{,a¹®Ûø.ÿ‘Ê›ígîߣ/ð¡hìõÅSyñ`¿:u”û êŽ98͘Nôn¿üfßåq<®8ÕÛ€XÔ¥Šû¤<¢­ŒzíCXº‚Øud_3¢~ì³VÌÍhŒ½½<ÿãªßI­ö½°ê+ ùÊ#ÇN}=©dìqklñ’ûò„<~E‰9ÿÝÞòõOÛá]ý­cØcдúýi+CDâ÷¦Þl!åîô/¯Ë/XºéÓç øÏvÁ4{ŽaY®ÕûŽÙp!£ë3ó©+Z=@ôØ¢kó¸ ŠôØÞX÷cŠ]÷ïQEô®ív¼5WcÐ?àñ˼$Ê×_ãeë; +#L—ÌVŸ½9Yx´à3ÄBüs›–|þ~×O8|Ç›ÒnEê4Ë€‘´È1ALÀßå6Û{Œ^¦/[ñóå°~¾*÷ìˆnª£BbŠJ9j¿ üq§‰ÚÞe&T +üÉ»¾=¶ìÆp÷Q=^Ô 2Þ^þý¶–Pa(Û§ÁŒWÇ÷ÑÜÖG©hYã€FžÞhQ«2öV`´f›¨4?ß®#ºZØ÷êüÊrº$Ò©¶ýWs™QÜ>r–2SŽFž§‘xõƤ7Í›ï¦Âvê6ÀM9Ô^]A$¢Q#½kØ-àm¢öHQ¢ô®ÞBŽ÷Õz9d,®‹ƒGBRÎþ>š=/ÇTá;¦ÕȰÏÈÏ0mÖ(œ>’À÷m2#w¬yÓwŒ´ß^^ßL¹Æð©Y÷÷ûhž¹¾kŽÆˆUïKù(B{ã§ Þ<÷¤Æ}§O0OWðé> G ŸóÍ"ìw»\¿2¸dùN}‘ÍÙ·ôï•ðxHå&µ’oG÷ýÜÞùáôëÊ(‚ɽ®äO“ç}sRš1ÄÓå +vÏå>ÍÝbÒ¸ûF\€$ÓÛË+x\Z¿À˜ÝNTÐq¸ÓQ­q{`<ÄU´üÓ÷¬JKø"¼±>R²yüô‡1oWØ"~U¼r&òøû¿À_TX^.ö)þ{o®¢ ¨o[³í‡öý½R^ј}7‚Š åbb'æ–ES9~Ä . B?tE—ÇãÖDÔœz4Û‹F£½ì46ÛóÒh®@4šùZô9šÓÀ Z4Zµ†6Cw¨-jÈÏ×åÓ‘”Ë´Û#ÜE*ö{oζÇV1nÇØ¾]TÕ­ïŸ>á6öܹCÕªa/OÇuøŸþEÑlçK +áÝ÷ÞìûO L&Ÿ½û„·êùq]‘¼…²¯T‘„g\‹0<üôú\4âGÝÝX‡Eä4¦«g +Èô#‹²¨3±}öæ™b,Ó^Kñ¾µßFÌU¼±Eîmâ5Y|]ÞÛï)Ñ¿Ñ÷ÂR$ƒx$¤?Ý=Vñ¸WÄXž`ÃÓ­Úÿj×ä¡Ó}ë½¹›£Ç+; ¥4¤a<ý‘:”¿)ãÓgÇä{{³3õØ4£“ÅÓѪ'ë>.¦wÜjueÞÚ¶c€jÈ®ÁßÚqÂþ–üUVÆ ‡ïïígoõ"Ã.K,JÓ$Þq½Ã4tæüc@fчÅ$@ñ6Ô—0[lGÐ,¾£æx(£Æuå\r¼ +¹ùÉ´ZãNqžDåÎÄxUš“a1muG#öÞè•'¥êã'h·óØ<Ù­éï~DOWÓèw![6Îûè~µë¾ =ð€J +ÄŸ{1J˜[X†_Ñš‘m…»h…;À4%Š_åê§ßi”ÝS‹“ŒÇžH‘®tõ3SR_ŸŸOc~ÌÏý~"Ùûç¥Ãú +fèÊvµ `±„”Ò¾H//¦øxßJ$èõ}Zru\ 'óXÆ[èGÑ %}‡£è[â͈¢æ¸ø0a +³1Ày#»/2Ýß >‰¸áúÂÕoÅçYŒiÍ1´a% +¨ø-æ‚ï{úf§hÜ·ì&/ð˜¸ôŽZ#þ2þšEiIùä)žáøj¢;.KK|ó!?µ#Sô*ïaÍóÆáÝSBS‹_Ìœ$7,0¶5Þwò1öz s><§•È« ¤9s ¢¶ ¥¯&tªïê€ùö¸®Àn­@²0æŒÄreu‰¿?»ê›ÊÞ56iËJ²>¦ï8νs<J·H™¹£æ…^ô7öuBË ks´îkñçÁ-ïl®¨1XùF¨»Ä³&u—¿`øÎ¶r}ü‚á‰fˆsaÝak;è‰j­]òñôæ1z|]7%×}ÒL2ò»âµ+"ä½OÐâüøæï‹±#¼vÜšç»ØKMoQÄæ|žïrÛñ[#- {¬^Ê NŸ¥ÞÛük*ѳæxâÝ K„&š:ïŸ{‘y_È7þG7÷§À‡Oˆü®wqDáÅ0¾Þ5V©dÙqkl#îËÊp-†Umôs4ÏH*NÇ„ñz\W÷L^G§0åZã–ûÔÑH¹lûMPøeøc>Š¿oQÙWe¥EÌ5K‰ù,ç´÷Cûƒ{g[d´¤úëU/´Ö·ÛÖ¿ýXgÑ:ºDaï:R4®žcÐÑâW ªTçÜìÇ-,VƨÃM±øÔ“.±ÅX~F ¥{‰ ‰Á÷ãÈ}Œ5ËXc ¡2Ãoø=€ÏßcWØ|¿ÚS€›øÂ,ÕðKí§Ú‘ +Â1î³7÷‹ˆ‘e5曬Rl–ùúÆÒ³I¼sž6‚‰:z¼^9·<H¿¼‰mÇùËQ#oOÇO&ж,7gWºm­Dhæ±cÏÑV|›ÂÉ‚ÚV@BßÍômwëé ]“øª¿oV£F}¥~î}kD{mÚKDÏ:G|‡w€iDûY|럽¹;xaßІ¾ãNÅÂc܄ӄë®wÜb'}uö÷•ƒxVÝÐw uùØ©vï̈ª/ì +ô¥¥t?æG]hçX–WÜ0¦˜#"¦¾ûjgyd5"¿Ñ&TD÷{‰ºI’/É^¦ÇóÛ>ÆZ¥y¼1,eט!J@‘K tZ¥†:©U-iFèÞö¾‚zòPLíwêàIÑDsëf²k‰d«ò¥Ý{›Sœ.è®UX! {QϼïÑý8U ¼J„½ÒÇLqÓ‘¸ûRÃÞ¥75E¸!áÏÞ~fµ­t«¸ïÊp±)šRyŠa“D„ùQÙ r¤ÀÄÑèUcµGÅŽGZ½¶Œ± _׺@ÿy¿›²"ôÏÊ=7o÷Û{J¯ÆšËŽª°7·âÇ;´$è•á]=MAî.¢6¥ú>{sÁ[Ù&—i`Æjhíw/àðQ–)Ã$ª±‘5ÞÝ0=kܾü¹vD (¿q+ÞÜ܋͘˦^ýÚàÈÌË¥7ú¸‚}«ùïèçA¬\—»·à¾Š§9Å~wg½C¡£êå_+ ¯‹ +Ë)^ÛxƃËL4Ñðo]Dr¹]Çå‹úüÿª6}Ž+u¾/_åa fo|0Kjí5î¥D{2B—lW~ÁˆÚ—"ÃøcA;­qÍ@ Ô–ã»Y-€F­¿›¤ì˪Øè®…>Fºåëõ X_4O2,¹Z/shßdضËÿ~O˜ç 8ïÓÒÞŸ£¹xHê>­—àî^Ÿž—ð’n0[ST>íNÀÁ7ïÆN±ÆöÐ×ðù¯æûÚózÞøìÌà5`ÓÙÌàë^˜oøª€­´xW×òŽ7¡¿úÍ#ßzêŸ}1wÕ“Jƒ/æ%¾Èxh_ÇkõË.ÅòÙDS)¾‡Ú-¥!•ÝK¸­wÅ$’â>»xAìBÖ f·±½ +ªÕZ±g þ•Û7}Žñ¥‘X3ölÁ^·^Îñ>ÇZrlfkŠ÷ùAjÔ­RònÛ0ÁóM›ƒÉ>\Nd+ž"Wqm€RQ¸­¡„ÓëÅëæ»8µ”š[ ÿZ6V5@lŠŸ~ùE^e<ôêÌߢu®X²ªãÏh¼¬ +õ¼y™ù ±–¸ÏËèý.1À +ØûŽKHŽäR¿d‚q74Ö{7²e€Ë“ÄÒÁûöû·H@غ|»Ë'ÿ:¾yíxi¢¼Ñt³aeXo¼ W‘H"É%^ú¹´h°:Œ¹ ç4b¾·†¾—>ýÏðÂIhà_ƒ„sVßG*®•`£§þ4Æ6CÄcìdÆ;2X›¶²“e‹gÈGÞ…,Øð§1_zBë‘å|h­8“W2¹|E-ŽŽ$MÛÊÆß×<i[ãHë!YÒÈÝ2³Ýì5¥¹x“WÆä´o¸z‚Îz›g‰Q–ñ“šÌÕBðjXèBòºÇÝw¤Zð_ò@k^¢6ˆ¦ËÚ´_O â~]ˆÍmÜMZ¦Ý06~qÏJ&ÅÃíÂrs`Ñ/¶ˆ÷«÷(olÿ¹¹5 +<å™ÇåNõv%¦¿‰½_í©K“ë¦r¯÷›ç•QÏa@»ƒN)ìýl˜KîÉÇÝ|»ò5Æ“í–êù¥ê~ µfüOQlBº}´xb•K ûGæ+N¥(0¨7N‹ð©éÑPõÂß¼å[íë_z‰‹ÊJrC(/1WµGõ3µà×,)@_èúxÔ¿c?=M°&ð×'çGì«Ô­iÇM oëІbØLi¥Üoñ7ÊÌıFôm©OköMþP6ò¥/Þ!0Ù|A7á§ãb»Å‚ƒrÈ•ˆ y¾«¶ Š‚AÊ®^ŸÄCÈ—“y£˜õøÔ°)¼Œ‘úÏÞüÈê\$O¹Ë·Éó[[ëq.äk@”«¦×/UtÔwô­äuÞ¡56Ó.LJíÍ¥ek'ûɘ÷Óž!V#´×úd¶‚ ÈÑßqœh}cÃ+>†íWêmÝ §;ã„ ©»+7;7ä“á´3;G¿Œ„Çê;ºœªïö`øÝ-6òîâsÞÙË:˜W0F¬ªÍ󃃥ð~´uW.¢¿ãJ}4vþ—2ßÑ@‚€1¨Öÿ(øŒuÁÉÃØ‚Öø  ŸhÝiÓ¼1E ðûX:œj>¶aní~yÕm¦w‹½ÀI`¦w;£•Þ1a¢QùØ_~•¢ó†ÁZ˜\#Ý”Š%ýf¾ mæÀî¨Öˆò ¡ a}uŠç8i¼²KóÖÐg{—èX— ûÿ“öžßq\I¾à‡ý°gwGgç½Ù73=Ý£éiµQKÝ(¸*P†¢w  @€ð¦¼÷¾àé)J¢$Rô(”·(8:¶lVVV@u¿÷wlܬÌdúÍîÙ8êfݼyMÄï7".39iä±/-æphàIçj²Ëv)ÕŠÒÂ.c—1Q=ì?1ę́Ž:s2^\ØMä²ô)¢ŠÅ!a“Ï¡Y:*áÍþq¡TIRbœ½+[uÇíâbí‘%ˆèÜ.º¦›9EU±™Ê„ttYp™ÁwŒ²Cb†«°ËX̳ S¡·ºd¹¤t·e&à줻°é¤rR¬4,¦ÂT8Åtˆú½8(î¶¥åtü+4QQLW«(§TºT™Eû^éƒNª'TLiº2¦J +z–ò‹ /fá,ƒŽ{iÔGE6Œ®Ê.Tš`~_F›² J%%æíX½‚ë]t\L]3”¼ý˜ÖË;Á#œ2&ÝÍa{‡*£œ8ƒÙÊÑ­Œ”ápvUZÝI´Ý•‚À.Tö¢Å¥åÌë(ËÉAat +*¦ÝÁ¢A9çèf‹é5J׌$ï6¦—"“Á® · I„ÉŸWÑ‘®»( êÓŽ²ˆCgKÐÕ_ —Ñ¿§Ñ↴sŠC& ФA“JêéZ5ouEC—Ø…¤ô‚]Bïæ"X„*­3\œ¶ºè¾è +šïÑ’ГŒN"Y;Ó@펤û*ȳ`¦ÂQÁ%SÁ*$’`í4ÀaªÚ¾‹JJLEˆ‘“Hëº +t–QÁ¨B˜9ºV£œöSVT0¯«`Ž{ÉÍ@BUt¹‹v(ÐÉ!L”ÉŒ +P©‚¬3Ø7š4Vì8Øt9„ŠTav!( É ¤h¬Æ„¦Vš¦0eô£èª +bPŽGT ŸÍ¡k ïú=WNbX$c3F„ô{•PÂr­ÑJÖ\A)05u¨àì&èT,º‚™)õSÆ7¨ ï½¥_VR@#ä8ŒÕ.p˜ +µgÈ•Yøq]@‚R2ý°4ÓqtH@ +Ytd0éË(x b¦FE!s²¤[DÓ-<ɦQŠ©’@dåN)¶’%¥lf{’cE °Nž÷#aI¡ C¡ð‰T³%»¼O…¸R¸C, +ÕÙ +O2ÅfŠ©ÐK—1•Ê©*à d gA!’-‹PLSUŒÅ¡{PÁ@x2ØŸM=Ëa6m!çùo¦{¢g¼P8‡)<[Jc¹] +B³¨3`RŒ.I¡ ¢/AÌb††|ºÐVáL¥ð,y4LV0ßáQ%ÔŒ±HËʦ7g!r|˜EÕv¢¶GáÙbæP²€i ÂB„Þ®²»sO†®P9¯tžC‰‘#`žŽg¡|‹¤¸˜E‡³¡‹©g©Ü|2…–í$Ì”² #…ß3©$›,‹Xtg õ…@ȸ„È cݧ`µ¨PË +jÀ‹(E=M­6­§Qœ ‰ÜÈEGæ“aX¥ÌR¤ ¦RI‰ËJ˜¨J2¿î¤®j-—2¡s”»Ó'ÿ…Œ –Óõѳdù³B˜ (ò ‘n€J±DÝ-¦^V²+¤‚¬ÏLʨ 2’¬à%(l½ +º³ÌØ2\’ ͪ 7)ºŠþÖòŠ™t6òûVR⢠+&®0ÓJ…â#“J‹¨C×Ñ‹¦pTRÆ*;ZWQg˜d†OY9õ,å°#΢„óç†ÓÊ®Œ“±u´f¥G)0Jƒ²™Œ=‹ÃüžJÙ%Ó3*¨›ŠX´¹*ÞɺD÷èT0‰C iA˜±-¡úè^¡2:q¦˜E;‘«‚ZÊŠnÚ‰í¤N¹*s¬”n`—e¤ôš†âb +¢;Š˜]:L ¢|WiUÖYìR:é´#t»T•U2L®p|WQFWïD Ÿòù Û΢ÓN8¬Ä@™ r?»¬(àMª”ÜT‰zPAÇ'‘Þ¸‚Žÿ¤€+ŠhW £È¬7ŒNŠ‹iä[F/‹‚. ß:d‡gT)~t^Z!: +‘¦Í’¢‚/³‚©¹@ª:fC¦ÓcEU™Fœ‚E ÙŢ‚)T„4/¹XQD*" Eɪ(§G‹wEü‰CkaYqP‚áVN{£‡+£#Ë‹94ýb1Ñûdbã‡?Ÿí]1‘µä)Õj G+Ä ™ T&܈d‹´]¥ÓùQÿ™o0ÛôÄR‘:ä~¥ã)9¨¢=\LWÓC_PÁ蚈W% O‘WDÑ_À$þ°(I&ÓÒ!ËTF‡Ã$;î2¡?rPS v•”ˆøîô”‘æ0IÔ2DWÂÑQÓ;8ö®Z#dVZ%%.+£íW9•]ÂaÓw i*L„SÎX$Ö®š†6ƒOX…B·…g©ÓJ,® u1“Xø=Uɰ0¹Ôýœò‚'¹¤P ¿ K8e…Ÿ,›³ãa(gtQE?8åtÕ RA¦œCÆ#1‰òtþ‡)ôI&ŽRË«Œö·¡á*c N¤É”WÚYÅ)¥}B…ØsÝÀN* ‚Sº+o—ÍÄ߃˜s,f磫d™Jß>Á)¥©#Š‹™XLÀ/ÀlÚo€î§StéB_è"¿Ý˦Öb ]µ–V¨J™cV‘©„ÖT$¿¦Å¬âA§¯á0µŒÉðqíÅb )§¢'Ç)¦ï¢!ó‹v\S¬2zGÑY`ÈaÆD3ÓAK}šF£ß”s­„µt84rÚщ7T˜ ˆX;»©”Ná°èƒ3ÔW*#–ƒn=¢ËôÓ-R¥)ÉI`<~¬]@›ÎåG—Ù±˜lýM +;ïÎLG_E寳 +÷A„EÌ¢¥Ïc9Ha”1Bú‘SÄ”_ ¯ _F&‘ +ÁhXLñ…":¼•¼Ù‘ÛqÓÙåÅL-zvt±k;³nF_ÏQÒi|hêè<òêØÂ&-f2ÑÙÌ9ç®jäÏ.§5*}¤Èf3É…,æJ6süK® Ê%OÞÀJÃ0]ˆMƻѺ‹*Äfî‹A@e ¢›P ‰èI¦d:)`l™¨JŸ*Ð%XÈÌÒåLe:?”ÒI¢l4¡Ã +&eÎE2J£„rj°”Y‡$c¥`1ièÌGÖ ¡éf-i[I®rê×%(;—­Ô°” XÎB¨ …?*b‚JѰÞ=H‡QG.$Ä(¢ +唓5…éµ\¢k:”Óƒ¨ú‹N½©(Û©óPÆì±Rªt9ä[¼+›ÿ'  ó±™@¬ŠÂ2—PbN!´°ú4'ƒ]ʰ³h¨X¶“`›ÂoLž%B Ø/eB ~Ôº8‰¥vRJ1íP+¡®Ú6O[§„LˆXÉ®ØÈÒ¦Âm)`nZ-È袻?}ÿ²D9¡%;5L eî$´”‰¡Ó I!}ÔDN7%,c¢Ï$‰ÄôÑ]îE‰Ó70™!E´Æ"C”h\BFŸÒb&ðžÍ»2ÅÜÿ]‹µ‚µ+à—¹¦‘šr:yç0±‚†Ô×Ñõ­ICO}Pû“fÑ+ß?K(Š•(*cØ8§œ©}IyÕw¥k‘B:KLªÿð–êO…¢g©ÓtRȤߗ2~Ôƒ]µ$™ê/%ti&RJ[ó’Š‚‰GÂ2º HIE1]Iòç56ƒõèCz6ƒ„ÔTÿ\ÍÉŸëUI +%r±hŠÜžª7V‚  ¯©•(?“XÆd¢ý­¤³R&#‘*àÐÎKúÈø§ï§ ¡!ÔOßwW¾s3{Wà<ûOg°9Ìé7…o‘°˜M‡ÓÒ%ïMDÇþ£cú'u_1{×MRT᤟ök§d>å¬dq +<‡)™Ï¢<Ê‹Ëè +×%LrI9›ªF^Š@$-d®¯Câbú8¶¤bWÉýR6S”ƒªUWÊÔªå0éŽ?í×Î3WZ’HŸaÊqL†¿Ð#Iå×£Ã6•—@ùÖK~ç‚ÄLt^)}qFù®ÓL: d'”ò‡¿.¡ïO¡ÓúÈ4&\ŠUF Ô}ú»Ê™0wvḅ.„Lg±ŸÊE¡bÉÙÌ¢FW0”ÓA"¥l&9ƒT²th]×ÑÇ×¥t]¼Ÿô`§º‡‰¶e. ©` +”3õk‘°‚àg—ÐùtÉ‘²¥9@ýž*BÞ4F…¾1.åŒñǯßYtmWNasÐ UF—@'ƒbè­¶Sª¼¬tGú£6*wj@2K½˜Í*c*gÒÁ5Tº+ÝD—éç :ƒ¦œÅdeRùƒd‘Lz·3ø(‡é"yÖñ³£1_1“¬DU¬PbS‡¾¥ ©« +* +·*„TJ?rçÒ¦²¤˜.â@g!WþüÛvŽÎܦJ ÑWÂ80éà‡æn#ÒûÈäŒR „4è Gh§* +S‚˜©Lº:Kè~ÔƒŒu¯¨ ó^I H[w‡žSN3§ä&¥ 9lš”ý´‘J¦b:§”N¤'ãEéŠé%Å´³jWZÆN0šÉ£œ„²ÖNNÃŽ{’<8*ËKèblÊ™€òX4y)+/ÞIËà3Õà(Ï{)u± EtŠé^ýè vŠÁÿ¨eúÓJ™S&[£”‡LÙê.^ŠjÑ‘äd]Ϭ”ªÄ…„L)βâ¿õ]\ê´z'—L•Pâ +}«NÅÎÉøÎEôÕÏ5QIµ]\ 3%L„3×µÁÿ¢[§îGÁŠå;w„º.¥ŽÝ‹w.¬&]ë?÷.ºúx9]Ü,fH߯‰ÄTµJV!G£’3§•*}¦¼œ¦lȇPQH‰A¡«Ô)«P·øÀÏ¿n纇ö—3”]DƒÒÍC׃/bj¦° +•±*¾ ºñR¦ügq!çFB‰éƒËâBšTAH{Èjz´Gƒö´3A»*­v—§ý§=@ãöú¦ûÝÿ‹¼²þ´ëÖÿg÷Ø“ÒwAü.ëçn´ÿר³Š~t=Õú-€ ,R±wRKwÄ•?³‹ WäTînâg…;  ;íϼƒÎº`É x6P¨äÑ\Ù»è˜vó à¼Ç¡£Âw‘ú[úîIÔé$)&_оîÞesP%TNénqå;5;cPøOÁÞ‘ÕkÐ{*ÐI*jÆ øWx õedj4Å.œEH¨(‚ °K,Þý†SÿÓæE?zêM¤;Z$ï—gœ,ÝÆH8ÚìÂ…ä?’=êüÑÌPeXØ(º¯¼ˆÒï§„…¨;ƒ~ølyá:¹¶º#üAv‹™Þî´ºû³~8?ØÔà¢ÁG¦¼ðM»FŠƒè ¿ÝM2 pçÍ»D;}d„;_³«¹ïÞõæÝcÄAw•”ýäÙâÒrÖZÝþàý»ÅLOwZÝù zçßÔä.ïz§ü‡ÃÇüç?Ûpä ÷«¤,àµ(¸`¡H1˜Ý’‚¸]e#¦v%é´‚g! Ë¢g·,›Œ%…ÿ_Q(×± · “# *@2$Fˆ¬”|vg›£T»á‡Ûœ“ +†jm––ÿ° t|‚ w^§¥÷1 +Y¥{UN:gý°ëlê^ÇÏ<ðNALZ¶Aù‰øÛ,zg÷ÞGˆšÙ¥* ã[\8ñ&Åltú…„ÈÓ^XÔ¬ aY©“ÂR4€Ô•••ºH1Õn9 +Ý#W˜ ZHFÏr¨ELFã•Ò/+C~ŸëíßÚ©l’Fýä»Pb@Yù¾ 6”W”þð»aEôàGß…Ò Pîܾ m„˜ +ß…<Å´˜ŒÓýÁ—±QB`qÅ¿ì§ýý½¿þ›ëââŸ1جw÷Éÿ?Ym2þLE 郣L"qAàB»ÿ¡òGÿ€Rt(éN3?+ÜÕ2Þ»úÈB}„.k=,wï)üOòûÏ´«àÓßÑ‚g޼óçƒÝZAg÷“ 'Þ=WõÎydKÉ&>$ÿ¹9™÷7¿‹NYEåhøÿùÓè_è_Ðÿå€6ƒÿÅ!{Zú.ùówÞ{ìÜÁvuûžwa%³ß9wìϨÎc.“81mlN¨ëÖÇgצd —¬Šë0g÷±Ø÷HÂ!9ð(›1¿Aµ+—GxûÖÇEÇ6ÆdU©mî2ˆ0§Iš˜Öµ'fÔçcUCÌi-j^?‘žZüŽ{hù!÷`lŒ01Î?„ÙÇâ“í¥ÝzAÜyárÌuñóMWq}\×¼öLzlõiמÍgññ®½ÉQé lBßšq™ wÄÇ_=W'ªæõ‰ÎÏÞŒ´•¿zØøçø÷îŸMLp¤f$5i¯º ÷å)‡ìlbJ\›ý “MÊÏm­ÖŒGÓ´«šSNƒ44ª’uûʨðà‹‡-¬µ'ÜϢòª´Ã(ILéÚbc&þÊC} 6Ù«Û†ï¹×Y¼|ïÜo_Þ:õËGÍeé)ÅYÜnàf\áËG­e‹7ëÞ{u»éÃWw›J^Ü©ùÝæpûø†Ó™£86)«ŽO)ë1§ŽKx-Ú´ßÖ³i·*Ö',•QmÓÚ°¢ ÷öô@:Rn鹬O#€?~Æ­éLÚe5ñ)Qe|ZY·1);™˜QœM»%µKjßõä\qÆ-:óè[A£6ë7©1˜“×Oyûß<O¹ÌjÌkѬO‹N¬MðÅ`Œ2A˜ˆ´I¯ŽÿfRT¹ÛøgÌ¡ëŽ;ÕÜ »¸š˜5ró¶Ë™VŒÕÜ´_ÍËT ÿhrš8íœÀœÂSÛax_P/ÃýêNÌ'oIú-Q‡èdÜ)9U])ôlƧfSÚ£yQµgüZ~Ú«¯M ޝLr']ÊV< ìØ +éoçl—·á½¹Y‹ [m›N½pÍ®n_w(›ÐúKù,æMXkX ÿºEø{úp¯I…û´‚lXÅÅ|âÚ”OÖ˜ö+Û³aƒ +‡ßħdg0—Nô_IÊì¬QŸ›³ô¦ƒÊΤ‡ +óñknÞ‰èÿÐÊ(¿jòÒéòàÝ£ö>KÚ£hÙ˜è>ôú~÷ÇkÏćÓ^˰Ō…T]iŸ¤&içO;Äg·B0WaƒrÓ.;óê÷ãW#‚ƒqŸ¶ûÅî§›cŠÓéX#n³"åV·Ç¦x‡¢“܃ëÓš¦…Gê“)Ooæéíݘ†ý7ÖZž˜nûwvJ;º&’êié™M»º%éµâv]ûÊcÞÇ/n5ýaåa[Yt¬}OzR\IØu ‡òü#ë¿ó_oú#ìÅΔKÛ±1Þºçåýc¿Xyrú·˜“,ãQ·án£óŘÇ$MCŸpI–ö)§â\jFxœð)š2>eK6hÒæçL–´Ï¬†5$ÙU›ãªÚ´SÓŠÁú[éúøÅ½Óᆲþõ„µúŸÖ˜„ÉI›l}Xxàͽ¦?.~Uõ‹×ßÕ½Mp÷§¦Ç¢vñÉgƒûÿ~fàø¯°qu;á3)×GÛ*æ¾>òß^Ü©ú÷´»?mçÄA×à>“óêxI¦s›d„Ïj؊؆ˆ N’òê…°dÙÙÞ‹ÙY[Ú ûÙ!?Ÿ”ŸIMÈk·²‘ðÊÎeý²s„GZ“œT˸LŠ´Kt&5Í?–õÁZðh»‰€^œñ$¿Y“ ö¤<&Ŧ]ן1 1E‡Múô¬N– +è%Xçh/¤‚ò–ÙGçÿ´ð°¥$±]Í,ô\ÍDÌ–ìœíBn¾ï "dÒg¼Ê–ŒG\ruïϹ•Ù0¿&æiùtÃÑöY6lÔ`>?:'á”Ö¦ýâ3Ù¨6”Ô%¼Ã+#mÉMwÎwñë|èât@ÃÛt+W§º÷®Ù»÷¥\:îÖ\ß Ø»†Ì¬F˜‹ô}ž ]¼‡¿ˆút„GXw +cU[6Ò{-Òˆa ¹DÐÖ‹ûmfÜo”çÂÊ®¿>×(³aµ÷ë„·ì6ÙýYÊ¡iOøl֤ר$`l‰9ÛPʯh3Úø§å‘ú÷ߌ6|›½×°g ë÷X}ê="ðùÔÚH÷¾ÈÍê]üªñ½Ø¨èX6hP£6Puà~­æNŸšõ¹AŽûÔožˆö½–ÞthZ×Üòó#ÇÿéÕ}áaÂeQæý½½1·´á僚ß,?¬û]tZÝú‘ŸÚ¬1·Ž¿<,„1â–7æ¼²†´ƒwdm¬ýâAó«c£1·IújX|táÛ¶—ïŠöFŸjëÒ“©iÁÑØ8ïÀòãŽò™K§ÿùåî§ñ]ç†]~våYsé꣆ÒäT× "(kÁœ²Z öNþ`íIÿÅŒ¯ÇйÍÒ”KÝ”v‹kr!°^>ØI]ÊǯJ:Õíi·MÑw®è°#7=£j\yÚ\º±ÿï½ÿWÿ…º_ÇŸ˜y£ÚÆ7ÄûV÷n<|ŠMެ<®ÿ ôÕ‰_Î×ðGçõšŸýª‰;õÒèþ•g]¿¼ÓX¾1ܾŸp * Wçg¸Gp +ó(šÖÁ¾ÁZê̇­Ö|ÈlÜŠti¯´.ûš4y´Vf-Ö¤GÕœv©[ó^£â{Ÿ^´×n…¸'²ÁÎ#ÃõEÉQEáîëÝœæŸØkÛ“ ê¤Û“ñ¯K–lH/Oy´Ü”ǬJ^Hzôü”Û$NÁÓ!Ðýsæ^bÞ:DÌYûˆ°Qků'øGÖÀ®À¹˜]°^€¿ÁüRϵ܂íR6Üwöž ÷HkcÓm{0wÛÇIwûgëö†’u{ËX—üÌAÚ§åae ’žÇý¼ã„Ÿ:º•óêqÝï⓲ƜÿÂ7D°ïb­íŽÎ(ãi}Ê«hM¹4íÙY³k¥iÐËù…ÛÙÈÐT §7îÓ‰ÒAžÎÍ*:3a/åã_µ ޝM«š_ƒ®ôüeÁ ÿës¥(å•Õ']ê–œ_Ú°åçKƒþŒ:u]0/<"<ð4ÁæµnΪ’IcÒ+ªºD'—GZ÷¿¨úÍËoy‡²Ákã«Oä•/îu–­ó>Ëzå Y¸6ë—7áE#á7ë2þ[ÚkQ¥ÜFq®jHÛµ-rý©Z_M +N]:óËõae}Ú8kFÕuŠNE'»âNɹ¼ÏbÈLš¸[ÙôpÌë'‚OÓ°n6F§’“ÊÚÔ´¤*í”Ö%fDÕ˜GÕÌšÅÜ=¡¿~uO°wñ¶hï›{¢}ñqYõƈàÀÚÞÇÉiÙ™”K~.r¯…µ|_û³¯ì¸17Eí]{1ø4}Ý” €Îð%iX˜Ë¦Ù‚½¾='kKº»E§Û÷Ägx“NQUt{Ü¡¨ßœTׯʫׇ%°/ÅÇÖ‡;>ZypþƒõG娤²îõÃ6Ö«û\öÆ3é‘×%¢T•Ïo×ýÎqißßÏ~Yõ¯É)E=á2) ŸYój\t46­ëØ +ö^ÊÁ|¬M´òü^Õ¯^=>û»õñŽ×'EÇâNE؉®¤CÕ˜õUDÀlȇ¬V°Ùj< hÇýšî”[Ñ€{49¯^ƒ±ÌûD§r¡î£i_ëÇë£U¿Ûq‡µöòiKÉæHÇÇ[€/ÞΛLoa­$a-'œÊ¦”Ç N¹ | lhÒ-­Áïàa½"»h»‚Ï4ø¬Q‡ÏZza_ ¥ꮄÖBD¯ÜZ0Ù¶ †ìœ^ý³5?ðm6l±e|šîØ´ðxÞ¯•lE´Š|D#ÏÏi¤DHѵ‹*1ÀTq§ð¦ðè¥9Ÿ^‚{dõ˜«ëá“7çÀÞlÎÈê¢öMÚÛcÉ òŒ_'Jzt\ ì_¯hNúÔ[K¶kÙyƒ\”_ê»™—¶Æ܃0ǵ˜OT“‹(¸›.IÍâþ'ÏŸŠfCýW·çL¦­922 Яè4æl,{óô|Ñ›gÜO‰€V”Ÿë½Ž‡{3áÞKéÐ…;D¤ÿ‹(Œmè^óûãܽ„K|&4(³ ¶Ë£­ÑÀÜ3’ª˜0:Ѷ‡p‹Oƒ-¯ÇÜŠók“‚CoÆTõÓ–M‡I”²Ëk“ÓÝû×ÇZJ_=éÞ³6¦<sê¹/Gù‡Â7«ƒN{`Mzt¼Ø”¼&>6ÀÁ?ŸW¥ÝÒ³«c]Ÿ.}×ÁJNjÛ·½½¯º#îVnÚù‡£3âož +>]y*ÜyØVªm{ÿ{(=ò/ÉasWjÒÄMŒIŽÇÆ»>]ýþüAãïço7¾·9*=zMž‚÷€™3 cRÎÖb“õŠO5ü)6ÕR›èü$éVµ,O)ß<åîÛ Ø‘¿Vvüۘèú8:ÑùQb²ûÓçZŠŸõþ¯žkuÌ8,Ê„CV³ò¬…µt»öß—¾=óË¥ojþmå÷ã¥']{z¬ÿcáŠðЖÛfÈ€ÎÈú„§€œÙœæ^âذK@çiy„?{ÄìŠ:¤[òaUwÞ¨ø™ ª;í› +cq_¹“öõöÁØqq¯ª=×¾]ЩòsŠÎ쬤qe²{ÿÊ3YÕÛPßå·‹zãÛq#æ:_<ÏÚœ ;Ã=ñÉê3~uW6dPdC#æïJ®§}pÀ X§1·øTÔ-9 +*Û‰ˆVBÌêw`![_:`!³~kÞly»hîݚ׫ó zm6{6¼Ö2áï$ƒ×‰ÙËOs‘žËù£!;¯•ã0¦°ÿjqŸ²5ãÓ‰Ó^ ïᅵƒ=\€—tÊj@/}|æXÊ#©Ù´ c~³6æTµnÚÅ•™ ^ší¿‘›ë½–_4÷m-™z²ó*‘4‹Z5>¯×%À‰B7²á‹wß>·]L¦‰¹Né¹’X0Xêë¬Aœ®tåù´K^ŸæîNó%\“IŸ´1º ~•™½p/á3k7ZÀǽý߇lý7Ùb.áiÿ­ê_¦\ƒ—_M¹À>‚=Ç]ªfÂ'®‰M7ôòљ߾|RûÞ+ÐÝ/FÍíþÛ¼O¿k/OJO¬MÙÕç£ãÚÀG‡æî7}°x»þ?r!-ðtù©Uà(¸G/Bí¦\¼£Ig×Á˜½©ìùÝÓ¿zq·õω)Mæ×Ë–ó>‰OËÎÆì s`|W†ÛÙKßµ|è½~öß®ðÊþ× Ã™ß%Ç m›#’Ñáî£#ÇÆ‡£ã‚CëÃ)» 26Ý}8áUg:QtZt|u¤ã£õ±V˜‹îÛS]{W†‡wì™þüø¿º.ýåÛ¢s+¬èÀ\À…¦„GÖÆù¢‚CÑqÞ¾OZKüßÖ¿ÿú ïpð\|ö¹]r::Á;¸ü¸ñK·kþcý)÷Ó—:Ê® Øï„¯6íy Xt¥ z :ƃ¶$gÒU;èìf¤W à²`ç;²`>½`sJx<6É?˜]ì‰fO{…'‰ Q—]Ò*qïèÌÁúăʎ”Gp" +¸féaýïV‡%•¹°m0’udò–¼_Úö¿…ðVq N$\‚ã逨&‘·åAOÁ¡›˜oàrÊœÐgRÄÁ&­M n:ÅU›°W6Ü#ÐÇ®íE“ ýŠöÁö‚ÉšèÕ€½tYÀl¹9³þ,i¿Nt¾˜ÔÀIxdà8ÌÖ’ÁðýKóÐö’©—É[â.“{$ó› ˜õ˜G^F!€$`Ž“0î`ʤKZ“öéA¦hˆ¹$§³a½Šˆ˜LDÄlÎ.˜ÌyаG„`GôÙ9³X0¿Y¬Dxð[<Ôï³ åæ¬ƒ9°}ð7H¿Ê¶L_Ox nZëüsk»2~peY]Ê)…µl«ªø˜%;Û÷9`;[øMÜemA»˜SÑ”°Ëëׯ _ÓIÚ×w!áRœKÃ|"»‘w´}òâÁÉ›ÿæø?¯Œ´´fWÖ¿œÐÖO];÷Þ«ç~Ÿ´kšbS’SÑ iÕÊSéáçy{f¿myå‘àÀÖ¬Q¿<*>º2*=|IôâqSñêè¹ÖÆëÞN5²Ö‡YÉ)´†Œ’UÀY¡/[þ„;¬š4ô/éŸY¸{úß‚7ªÿÉ{¡ú=ýgþeí;)àÉißõS¿~}·¹dË«l#\Š úùæqóŸ_Ý?ûÞË{µ¿;°}ÃÚ¨øæÔtd>áWµÇÁ,?i-~õèÜïý_œøÅËÛu%߇Åõð‘4pø8èöè´´*:)>¾:ÜýÑÚ(woÊ)9“ñ*Î']°†ÆÅ•¸×$O9•¯·ù¯Ÿøoo´±Vu±#_4ÿ95¥jß +u)„™ÚΌˬÌylfÂgF¢Ê˜ 84ðÒ\P/Ûš·ô¯¹dçžÃoÓ€ƒ=C¬‹´lÏd3;îä'žË»ñHßõt°wt· +Ý {­=8Œ«¸ŒðÖˆI#¬Yñ÷À%¶#f[. ,%k É/È:Þ¾5¼ýŸ ZÌÙPï"Ôw%ßs]sJNÇ=²ºUÀ™KOÏ]’¨¹ˆ^|‚‡ù$u˜_z›- ¿NÜÈ ÷ áA£2Pu!Àó!ô´ó+[ó‹Zev^«êFvfkq$kO&h1dϳ°W"& ØGY:¨hÍÈÎ n÷©:Ö‚À­a<¾ "ƒßd—lŸã,æ׬O‰N¤¼V[ÎßÓŸ°+›bÓ0V`×3³×¦¯Œ{ç>ØtHk7¦ÄÇ6_­Ž$&•M™ Nój:^OK*_ŸïÕ=OË]íÚ›—œŠÚÖ†õÏïéN½~li…}!&ý±›‹RÀK—œû}l²k?æè—5þ%¢ä°Ï£Ó¯†;8+…G2Ž^SlB×”Ÿ^yÊ?¸1":±ùLxŸ’VãÓÊúךK¼WŽÿ߯ÁþhĦ„G1À1ëÃÜOמ6³¢£-`ÛÚ÷$Ó­ ög<ààvX× ¸[ÏNtïÛkø05Ý\–uv"Ü]û3`oóA਀}6'ÄÇSêFÜ£ ûòaJê7¦Î³bSÊÖ”Ûb\‘ûYŸR´bSŠ:Ü.;ƒNJΈϼmýèùÆp‡NŒ»LrÌ¡ç¥ún̘ɯüeÞd~;gl¬“®9DUÏŸp÷$11;ð%æUs7']‘žM¹µBbQ¯ÇçLfX›¢Ì¬É‚®60Ÿ :áh(N¸Zö$¼¼ã© øltn~ðÅ\ïç¹P?ü Þ̇/|—ŸS‹s ‚š|Dø@Z s(͆m½Èg‰|“È——5¨£ ?Ö§$'Ó>Iý6èëܬV‚yM1§ðD 8ˆGÛµ<vÔ ø*tù!Uñ𼙘•·fÐCªn,¤ê\’ðš xèÊœ ¶Ú'ˆ‡7$œÒÓI—ª÷ZõkÓ]ûÖ§:ö“þë$ßõky€7Ï ×ð€^”ô^o6ÆÀÎd-4t3¼•.´ø/;§èÊ ;¹`² —òÄ`Ô\0ZÄÚ—[€gæ ºì¬Q›ö¥)¯Nè»Ó\þhðè?æƒ}×¶æ.>&"}WAYÓ›á´gÖÆ{´™Ð•á,଴ϤJº¯Üº¾öFý—î$\šÌoàa‹%3kíI:Œ|ÌmÓcî>[Úcû{|šwðÍ$oßʈøîÒ ‰€N²>Ê;UÕc3CÑq›hmÜв<ªª^…µôê~3kõi÷¾ŒË$ì±?ã]ë·èqÐØ¿×O›Š^>l)YŸ Ü]ÆÝןn›œÒµâ3f 6­mA~¥øD×Þw«þuõqãÑÞ>lZ×þêQ{ùëûÍ¥·^˜r鹉iÞ¡å‡Õ¿^¼y⟣ۀW+j A˜r€­™Ô¶À)â“{££u¿OŒýCb¢±›A|KËÍ7|ñ¸¹øõÃö³^³>°õ·Öá5È›“Nù¹\ÆÄ£h]‡ÙuÝÿ•Í Á±å{XÒR–œWa3²³˜Cq>XfuTxxxaÎeoûÒEûôÌÇÁ˜C~6åRžÏÀÞ‰/%@þ _ãþ«OðPß5b¶çb +8A8z­í$Â}WA?êÓn£4í²êrÀrËšñ´!7'oÏÎéTÛ =WAŸÚ»0Áš¶^ê½´=géɆuÒŒß Ë^Úž·]Ì{0„{W§ÝîÕqažâð€-xÐbÊÀ{px.î1É’«>¸örL×üzDz óª:¶æ ÚmX‡ß?7 dç´²dpˆßjNú>ŸŒÆÞL† ŠÜ¬N¾°ZØjI,ú¨‹Wµ>Ö\‘qTÙÀ…¯ ¿ÍQÔÅfkKù5ÜüBï<ØÇܬQ—vßÇ<—oážžtЬfÅ`Nˆù¾/¶‘¯mÞhŠÃ8mΨ›AçîÇܲs9Ã\xðëüìÅûÙÙžA„âvmËÚ¸¬*´öD:Ùò¨¦9æ¼u~þxÍñÅhÔ{õQ*hÔo8ÄÕ¯G‡V§Íêwÿàü%ð]« ”iЩXø“]Ó‚¹ûû6¦mÊõIÝyÂgÑ~“ìº÷ðMV„!×'„‡ccò3qgùõCeel Ö5ŒMÆkÑå`¬`Í©qàÉ/îŸþÍúhÇþ¤G~þùwÝ{°É^ ì=-0ª¿Õ”öYô›ÓÚÎ:ÙËOº*–ŸIŽ.}ÝY‘ç‘ÔÄ'xG³^ä»Swe\Êæ¥»µ¿Yü¦ö?°ysxÌÒ­³¿~sÿÜŸâ£]³0çy–—‚ï|õ°ŽõâÛóÞœÕ,ÝnùpóÖ¥—ox; ö6`>.¯}õ¬µds‚w¸¨bù™¸2ë×K߇5 Ë…õ2Àç¼×£-eKÿ“ŸŽy šð×m^þV^‰M ]Ü‚oÈ{-š¬Û$M9Tçý_Vý{ðê_$Gº%ÚŽ÷¹œø„¾+áè5§Ï€µšöªÛ’nYýâHku’"ã¼s÷ D:î»ô Ž8`#À:F8Ê¥éLNÛT‰©«×““÷iº2!0Vóó ÅÛ:ý÷/´,(:» {óÚLðgÎø-º|¤ç"ÒÅé€I›ûvÁv™©…qwç!„mq§U™²›E˜ÓªEkkk±ìVï F®É¾¡CwÒo1¾±ëxá{ÒÏ’öu6dTe#!æU6m:$§35?» á!³ }µîT5G½è][: \ Ùž€º;áÑ´¶T-?í4+ÖÇu¸×fÌz‡pO_~ÖÚ·µ¨×åÌ}ÀÿE ¾eðZÂ=p!î¶(2¡žì|ßìÂн `¥Ü¼¥/¿ö9lÒ¾îu[ +K{ ’´gàâú”MñrXv<îÚZ° äuêtH+HºŒ¢„S×±1%¯I8tofä­®ËçÞ[y$kÚžþìœÝ»’ø´ääüíÚ÷6'ø•¯ÆºŽ-f—ÕlN·U¤œüÊ”OÞºY÷^Î#oyûÜhÁÃJ.ò“b>eËÊX×gožuíM»tÂu¸Õq±æWË·ôÜ”ëËqÌ<À®jF6psLyÚy©êWÎþÿÚxÂ=úbLtl´çôoS} W®gÂîÆªdWâé™—#ퟬMˆªqÐSúÎØŒQ”ö]}” }™ôõ%íðjyÑIřؤ±+jï5¼¸ XÒi”nÍö\ÞŠô\þþ¹eö‰<ÕÅÜ{{¶Dgôü—O…•ð»†|äÂ=böâÃLxè61ÛwÙàÕmqgÛ§)·° +sø©i‹w]ÌÖ#¿`ÄÛ'|-Ø +ƒÿ&|zéóaiåÜmé§Yç@?:sÁëý&YÑ>Ý‚>¤Ü:¾ÿëónNÀ¾ }ž‚=£jH:´mq»‘ëþ¦ƒ}Gºïï^Üj?†|è)/âKÒ³k3¼Co†;ö,|sîÃèˆèdÖk¥¦j^¸ÛQŒÙ[9T­¸SÑŸTÚ¯×ÿÎÒðáÿ2Ñsº¥k³ßj.VœùÃÙ6ëñÀåûëv“tá®àÓ(Œ ´î± !GöØ‹âÏÓæ7éc“$沨.=/Î"¼€…W/<ë8|½½äSãzÉV¸ïZÊ£îεB Å€qZ2ªçïñößÑîÿ¿œ—j~Ÿ\| +\y÷^ø2궯îÜš³l>Ã½ÊæØ´ütjF×¹ ÂLHÖœ ëp ¬3<Êß¿éÐvÏ=|–t[uøìà­ÌÜEÐí¶ÞD@/{UmSÒS w»Ø«ÃºóHgâáÞ I_ÿE|ÖdÅgm™°Ùœ›Õ+AOˆ–žikŸ?UžÊ†Íø3áÀ»2sƒ·ˆyÛ ŽbÀögÃF]Æ\ßwùîꌸùõd÷át`ðk,tÕð_yï¶âaþ©„K|&ãWwƒ-Ô§¡ÿÉY‹%î¹}“™í¿U\èŸmo84î1k·"7Á&eÀVÆÝšö¤W ¸PÕ‘è5ÛK&dÏÌ講µõGgL‚˜ËÀ[™–T/˜§js\v2¶ãÕãî^~×U›TŸ‹;”õ›ŠÓñiõù uÝÒCѾè¨âÌ÷Aƒúûy½áh0 ð(á³™€»ôD§Ô-늚è”üÌÆ3þ^°h|RY—veÛ»ƒ­ó¬ó£¹› ï½üºî×ëÛJÓ“€µ}F%ŠMì¨Îy{­9_%1%«ML!¿³ðTÊÑöIÞϯ^=Wœ‰“ñõ]I»zL)§Qœtž‚ùÙZÐH¶ä¼­ˆJŒ|U¸»×’v_¹¹®?Ƽ—oÅš¶7O[Š—î´þ9rKü‰ïw/´õÇ<ùkXc±éÏï$×îãþÞþ¤Oݹ6ÕùIÂÁ;˜œ'üZ~Ò'oŒ;·¹û’N£Í®+άƒ>{ùì\ÑÜç5lûºàëò^º•ð_º!|ú"é·Z×Fe'ß<â:ð$Ü?î²jbÞ‹IÿàuX¯ß&aAu7擟ß”ŸUt`¾î£ë“5H;¥ç²¡Þ‹)46îÁ!<ˆxV²5§äg•]˜³ëÈò£³¿ÝVÂÜH1Ÿ–‹Á÷eæ¾NVÛ>— +› Q¯¦{þ wèem~Ÿ.u™äø¬ÖªAI’jøIàkkÓ g°>%©J¢¸'§AðfXQ›Ô¾†5 öf+(©Ïúy'—ŸúãÒw•¿x}çÜRwÌ(ëH¹, +ÄSR^ù7¶BŠîl@Ѷ8ÖCo ÅÁLJO¥VÕʨúÜÊ„ì Š?{ý¨þo7–¥¦äMÛakOÊ.©NÍHN%ì€ùíÚÎÄØ™÷×ÿÕæ“óN'ªNÜ#­Ãf$µ˜SÕ‘šêIMõ(cNÑé…»•ÿ¾1Ú +{Ct6TñsHGº”q§NkëëìœuˆKÏcÞ®ƒ)w÷aÜ#oÌLê쬵Ÿ€5 œÔ’°ëÚ6Ÿ©Î&Æ ñqm3îÕaIc­lNz­:¤»`|„±)cwr¦×˜C˜°sÅ&Ú>ÂOâ ¿¦\êÖ„]z÷D‹á`KR>auì[Ú/>›ôIÏáèl:tñnÔÛ?÷݈{>ÅýC_§æ}šn«hIÌÈêpXoÉ@ö_#ÀÖã³äzú|kÞdÙ +«¸„_T›öñNlE$MÛ³Ò¦´[µé䟌;M"d]Šü}èìP'Ã=²&Ì%9›ñkxÀêW§Ú>IM–ÔlßõX@/Þ˜4 °ØœAŸpg²&<¨jÏ„@ßû¯K_ʧjüòó¸Or6áV½ïøxy’›µ¥çµ +žÉÌ^ÃB_x'Þl5DÌõ^ÍÍ ~—ƒµŠ|y™ˆÙŠ…U][ æÌAßöbÿMäÏØZ0h·µjX·Ê…G¼½°VN§¶þ€F” +ißX€÷Û.sFKv^«JÍrÏ>ŸªûS~aàÛÜbÿ×€å.n­Ú^zX¸–AMÌšŒYÔ—ˆµÅ¤ÒƨødȨÙZ°1šo)ãny=òCçßåB #@ŽüÊ7ãí¥ÜŠÔ×U»¬nþnwi|ÂÈ߆=˜õÉΧ\­ŸlŒŸýã‹Ç~³þ¬åÓÔ´¸>ãÓò—´½×~›þ,vÅÙÕIÁ‘ÉÎOãNq1ÛÖ½¢ÚùG­,ÌÞgƧÜzÁêp+;r³òŸ^Ý?û§´CÚ” èÄë#­e‰é®9£4(ÖŸ~oýqmIzZX—õéD˜[zv}¸Åx}æ^ŸRw.?W%0ßÃm‡ÒN5/‡8®WÕ™˜‘7 3ɤ[Ã…yºu©;+Z¶çäoçdmÛµ`{N#É„%çãîîcq‡¸:íÖó¢ãºÖø¨¡#6!­NûÛäBbÀ&: Žâ榻´zcÜØ»/ß¼ÝúˆàèÆ3áI£—åCzUÊ-­ß˜hݳ6Ú\B@Ÿq¯EŸr¸_ÍÅ<’†t@z>·lÏëÕÛóæÞp–„Çf] öÉfC>í-øË‡Í¶lÆaø¯_Ùx¬#?¯Sç–îà‘¾È?›Ÿ5¿_ÔiÞ.¨ÅoT„³mïÚäÙ÷×&›JaüϬÏð«¢v-/ã½x3ú*ë·˜b3ê¦Í]çꤢ~u¢}_Âg6¬y¬Úà–ÉàÅÛiÀwÄsóP2Ôvµ‘ök…€‰¤ÄSÃ:iÂ-«Å|~nÎÜ·½d°óòîdH\—™St§çۇ2áë3éÈuWt?1ßs9ÿ|ðÁÛ—ƒOóKæ¡LD¯ÆBZI¦° /±þåyï—逸”·e#"à2¢³/žv~¼1-ªLz•í/§xS(îa~ð1?tŸ³ôá + +:R!~}< îÌ/ô}™™µØ°_gæ †Õ‰s¥8ðNàRýiÐÃxÈb†}Ö¥öÆPnΠ͆Ì:ø¦.àQÝx@Õñæx|?ЉÐ:ÌB;ùy£u{Év51£.‘`~=°aýI8Dg0‡Š—q÷\Êû?ß +Úú€7·¿|ØQ¶1!­CñéÀO»S.àú‹.é1é›öS5oXµs®ŽˆŽ&g.²©cúÖÍgò3‰QñÌ k +xÁÊwol¼ëã\@X¿ k!éÒw%íV#î齘ñ÷€×P\v +öFÆÎ;–‹ˆÏ?»yäô‡ÿD8Lº|ØdÀ}^ʧîZ½Ÿ–×㛥ùlÂ÷;Jó Oþº¤–îɨ{ Iž!‹Nc~%áSvÄÜâ†[ú~õrï»Éib{Ñ4øý¢Éö\½îÒv­»es#]­;µühÖ–]Ù˜qõöe]—oçý}âÑ©•‘vöòã†÷7ÆÛ÷¤}FÙʸöüÚ˜¦ŽŒ±=×{c+¢ìÎ@”mi¿ª-‰ü½[OܧmØåç€Ë_Ì…ÌaË  x´èdÔË;ŽÃšÙZT +sKSÖJÒß%·0x7¿h0&¼Òz, êÂüInV)ûïK `ÊÎùgï?¦kÝ„qßœ1ƒéí;ûbŽ+ß&ÜWî‚éßô¥/f´-/&Õxøâý$`£Ä¬Ù‚…M}©@ïåt¨÷BfvéÿË™øì†]p4åÓ)ó‹ýß`s*Q<,¬‰û…§bnþñTDp:=‹âÃ.ä_ ÜÍÍ÷\ÊÁºÝzÑ7ûÜ`ÍBß“ÀýãÈ' +ó• )¹ gç~" ƒ}¢“gƒŠŽ|X#ù~A«ùïKzãöœ^‡ÖlÜ%>õf²£"íU¶ 3àk±ÂZÖ'ân«1‡¾žßpë¸1Ž úǰ 6.–ö äÃ=Cùˆ¥g;bÐeÊ ΀ŽO{/|žïû"·hûhÔa ;$ÍGô*äãNºuð??Ûw#7;t;ì½÷÷d¼f-òƒ¢ø¥´WÖŠ¹%õ »ðxÆÕcMº/}½9cUF]VõÆ”¡+åÒñs0æ™°Fõ(º–íy,­Ûö }Aø´Âõqáѵ ñIàb€­µ"¤ósj~l1Ø÷k««feÊØIúBCdƒ’†ÄL×þõñÎçoŸ~÷õ7Mì¼Ûj͆ 𠨏ÏbÌ…¾ÊƒNÌ¿ üfm +ú™pIë€Èð€ì‚¢ Úþ<á½|'1›; µ¼|Ð^æ¼XókÏåsâ^½&@ú[ÃKúLê §ž—ðiyk.ù¹5¯ºmÅ«jZžUoÁØn%ün& Wäçtr´þWÆÄG—Ç%'€œŠÛ•g³!ÐoAk/`ø†”SÛñõ¢³5<<ô-1×ÿðFØv úæÅ3þñ…;meù°mŸÕ·—4òü‚ZúM/êµè TÀá/d#àÈ  « ŸePÎØH,(9·î×&`ž’!‹ñͤ¢.í¾p#å»ú8¼xpÂg5¤ _جɜœ Û€gõö&ïbákS©PßElÖlÂ"u4¨h]Ÿ<îÓ2s`Ogd ¯ÆÔuqÏÐ ‹.컸vG1NsÖ,ÌçÖ’ä:qÌ¡j Üî¨@>ù¿÷$æ´À[ä-™0èXsÛKFË_^jµß?ר²A/Òʶ­—³Ï­WòÏmײ ¶«°Fz·–z®o¿°ÝÈ.­Ø¬^±6-=ö¸õ_‹Lʘ¯·/º úñÂ@9Àä˜ß¢%B¶Þ,ð®T g ¸ž ^N….?Å#=WSÀaÑ~ÌÌ©å Ïþ´ ".Ÿ +È›7í]£öî£)üüÛyKÏ_—l—ßFŒ0zy:héþ}ìÑõ\H'͇mxPvCü8¢×fçl—£~e{4˜gáÂØŸ°7Íf„ s [ˆ°Š”VmŒHŽÄ¦µIÀ¼(~?í’œŽMnŽ‹¦ÚöaÙ‰ÕÇ‚Oן +÷m…À°Ú ìàmÜ„CQŸp*êaÍtmÏ´Èo÷èù1·å9I —YF¸õBÜ£éDÏm@»1»¬6éV·¯MËϼ|&?þê±ôèÚ˜àPÚ%ªŽNKª7g¤5+c’cãÁâ}Á:8›  Ë£vYý–߬ßòZ¿ªËqýÄ/–ŸJÎÅœfe|ÆÄßòÛ¬Y°]z» ƒ½¢ìFqs°‡NlŒËQfuÚ)=³ÖˆÿèÓ¿À_šÌ “TÁ~©Ï•íi·¬sŠÏnŽó&§ÔçsKw2ÁK€)À®ú€;ÄgR.Ñi" :ƒûùÕ)ª XLØt&šrHêƒ7Oü2øõñ_Ä-ÿ=J î5©0O5 |!å5H³a“0X/`u>ìÿf" ®ÍøäÀí ¢´_ÙŠð.°Z€ë‚M–6ÅÜû×fºöeªÎ,Ø,t¶¦=Pw¼ˆôîÖ ½ s lÎò°øÐÚSáþÿ±d½˜%cÂŒŠLxðbÁv…˜Sò·%Íoá/ëÎú¤uyÐÙ™­b{ÉdÛZêûpзð÷utzvx òã„íYàKqàj`ά;ûúÒ³½`s”|Àk¦ü"`íIK„]i¿¢=êT5ÅC`k_’¡ëÓx¤ÿ‹Èñš›ÉšR>îɔǤMx?.ß8‡½•]èÿ–˜·ô%<Š–tH'Æ#ŠËÉ¿Ä<6k~®ïZ6Üw-é²êÓA ÞÕ•ñÉÚ ?ØÀ¡ùYw+¬“>ÚZº4ž{5ø$ÿ¼çÆÖœ^ ÿÖŽùdç’^i-5b>i#è¬sk3za:Ðw=:0œ‚î +k„ÙìüÆï³—w;Š–uW¼z(üìÅm.;>!«ŠOˆŽÆàß6FùŸ½~ÐQüênÓ^ܪÿ áž"<òÆ´KÕ”þ˜ŸLÎHO¥]Šs„GÝŸPÕŦܤ۬L{-ê¤]ÛŸTÔ¬¢¼IU|JZÞì[åí]WyõTrdù)wOÂÎ?³ ŽÄa]Ç’S«cüýž¯Ný"ômÝoÞ<ƒß;L¤S‹ò„˜CÙ³s÷oL´íI{ĵ›ÓÒêõyeÎe’¼.šýœvŸp)¢cÂC›ÃÜO¢cÜOq·´v;¢~ªÓä#MÊ©iß—V¦fäµ[€í3nyýê³–Òçw—UœÉ8Í +ÐÛzྤ}ú>b²`IMl¼cOrº¹ô-pö­HïU"Dڬ˫OøÇàkþ²¨’ç#Ê®Œ_ÖœžØÎÌúŠn’L›}œhyi¿¤nÃÞþqbFt2ãRžG{'ê5ˆßŒ)ªãNÑIÜ/Î#®ÞixY¯ªw+KöÖ+Q.*òKçLÆ<:ßóh‘¿¡†€oý0Š»Éx,jÀ†—c.°£5/7«äaþßFT¼´S\½>ÞýYÌÍ=œ¨Eyt^ý̆{/°r‘ÞËÙ9£>@œEÞ´ ó³ŽbhCÀ5`\ˆ0²C¦žÜ‚ÑŒ‡dÍ™€ø,î—6¤à]ÀþiÀ‰€I‹…¾[r%;§ææÔ¢ïuê˜[Ѹ XzÅ®iy1,=–t\LúzúW'u/v—gBZøñ®Ø´¨j 8iÚ§ÅìÚ¶WÏTÕ9À‰yÀ1„WÓÆ\üc¸Kt*ëR6¡Óì\ï5|®÷*òKæçûoå`Ì3^½sëy±éé7OÛJ_<ì(}þ ³lcŒ{/'&U&lÖ“y((׃â=ø6FŸ…®·ÿîå·¼²ñ‘W÷»Ë¢#üýÑ1UÍò#ÁgK·›?{­æ_^Ýjü]tLpå¬o8LâÅ;]ìØ˜ðHÚ%«KÀºŽO)ëVŸŠ |ÅgŠÊ×÷„E'•µožŠ¾¸ÕÍÚD¾ÙMXÿ¯ïuÍÝlzoþ›Ž–ïw—''EÇ1—¨êõ³öËGeÑ)ññøŒàXÒ!®Z~óXz(ôeÓoןJŽeÚ¶´ãÿáè»ßšØö~£[÷v«ÛŠŠ"*VP@‘Þ{ï-@¤÷žBzï½BH!¡„NèI nÙgŸsÞ{ïr'ïóèƒ8³f­ï§ÍÌZ Ÿv©‚‡žÉ¡ßŽ¥%_ÏdðàŸs¸”ïjR–YŠÚ€{+EƱ"ãHÞ»s9*úç9ï\‰Ž¾˜ÅÄŸ+ñ)f1.òRY½T•CΕÃÏäLð™‚Yd€ë!ŒãÏ£I¨Ï‰ +u:IºX´?»"ç|ÿµDȲωù}.Î2—jt¡¡ÿ³Â¥ýXd”ý³FƒÛõÚ®Q³øäs!¸§ä3  ßYð MåbAÀ²*©YóŒ²ïótÈ©gµ?{Pã“õ"¸ŸqlrÉé,)ýDNLú¥¡ÿÏ*ù_àøäÓ$Ì×<‰ +ºPQòÿ½Q!ü7!ÿ^bá.f©…JB꥟h£ƒÇî›!&)ȧ3¬¢cY9äû«ìBÍ(6Oá£LbdЙ +÷¯5:âb–œõ}žýðŸßzº\eSNOp²ÀB^j9›†h=>åDI²¯spŒ»ý›óZrÁÿlÒÿ^a"vìï¾/‘ó5˜Dý4<älž‚ø?;ü¦ÿl0 ?–‰oÒÑ?6¨°³ERŽ蛃q\Èv7Úg¯´?@‰Z¨.r1Œ•~ûàû€,sðç…ù}›l™!%ë&ˆáÛãèà399¨¸E‚ú{™…þ¿ÛοWëÏÒòìÞètއ¿˜¯äŸª¬½aZü‰’‹9’–›¤ä 'X¦aþ)ÔçXUäcSÀBí?7O± +ÿµZYø©À^#à¿ð½¤—mv8 +÷Ù€yšÆñ‘Æj¼y’™n&G®·@ßn4¹aCŽDƽqr¼¦6÷™I„¸PÓò,2\ €óhÃ(Ì÷p d$F[D„H³·Ö]ì¾X~y pý¯yJ¾gúØ;>vzaîû}× EYÈÅlIˆMŽI0˸0›œ ƪÄ6ƒ‹9Aúê‡Ñ~Gãè Ÿjjþ¿˜eVû\úibÒ‰Œ”à9âXRöÍ4v3~Ô:`•~Ñ‹±ñó ©õƒ`¯/2gJl¢Áþ;cùÌ¢"Oàw¾ž\}®dÿ˜/Gœ}®¬ÀË+Ð&=g³»äãZk¡Ëv_‰›®òáP ÷ÿ×"­ä ‡8:U“-Ñ ¿–™È35ü7oíÏ”þYã2jé%ÿÞâ°oK>êÿDMɲ)ÑqÅ^f1 ÑS¤¤Ã Büþ*À,&§Ÿ«Ø€Cb¬R\´u +cš@øŽÂ|¶z‹Þï”xèûÑßΧÈiÿoÈÚÀ¹m +b’UŠ7OÚç‘¢Ã/Õ¬2ð÷GJ¿ÍÕf:oµCܬc˜àýþ’O{ý·½>¨‡i ¤k‡ºm÷ }œN²rVÛÐ^ËMÐw;}oÀ{B/4ûÜù¬ @ÿOd”tƒu¬´[Åçý½Æa^žáÀ°E +´^À6 xØWã8<ðTI0HÏ»T——}·¿ãüß¹ ð€¥ÖÜ«-¹Î§Óèx;Ç_º¹Dx„W~1Ï#Ï2‹ ãØÐ¦’7kàj~–ã$1áæfKî‹S@;¬b|â…›òÿöˆ%¿–Љ'€g?˜Døi;ržëºòßšEp«eŸÛõkC9]dÁl2Z¦ ¨c9;ŽÈÎìËfg©ën?Üko”{9Ç%þ\ åÏ ÂÏ5˜ä_ËļKû7·cðoû}ˆ¯GãØ›~¡¦ÜŸs"§dµf!Ìð¯ú¡2ÏõÖÂ7Úš‚7Ôèý~fÜvöë^7úë~úëNÜÓ0ˆÞî‚{`‚,„h +Ε€¾H©é1%É4 ;*ý¼Ù—÷N&ˆ¿/ã¤Þ_ï€xè‡`Ç&=ˆ=Á cü·» ^3_­·Æ>ÑÙfØe†IFö™Š]f“Órõ£ØP»'4 {œM!ÂΥȈíά—úQD€~ ež$&Ú¦ñ‡#Åî– ¨·MRâk“Âü6ú˾ÌT¤Ü3 –ýGË!Úkio¨ÀÕ0Zäa‘Àƒ-Sˆ +€k›”YEØè³ræÑ:äç< ýý5ÿ¿Ò¾†…ýùPk0 Ï%üZ¦£Îçɧj ·iØèKà÷wÀnmy/7[ +ßé: ïuÐ÷û}H3Ðg–I|̹œšy,&'¢ýF‘~›ù¯½}¿Ö~iÁ†þÔò('jV‰É>ßðe' +T„QõÚí/õÙê.v]jÌp’ÐÃo¬6亘Fpa»½Å®úá’Ï+M¹/ç¸i渙×!oÑݸ §èé '÷á|øÅ) 3V>Î,B['q@F0‡bBòlsv(% /æ(à#:Ôd׸idèî@ñÇ…š¬§«ùλpŸÙ*°ÛZ+,쇦èGZ¾a ë†¸n6¼ØhÊ{q2…ý9O+ÖõA#%´’ M]ešU´;ˆ¸¸Ñ~­â&Þ›"Eÿ¾Õ’ï¢méÃF;î@‚ÿ³‰É³H +>›DÅž‡"P[¹oçª |¸T³ÿäùÓ…r¤EÍ„è'ˆÑ[¥ŸúK=w{ +?Ì SV²ŸGà_×;þ"nš¿u +•òc‰f_«v¹€Ïp«í³ÞTøÒØ›÷f¯=Û娯Äûhá»Þ\ðÊ6ÅCœ«jxGbzÆvÔmµ.õájUòƒµê4‡µÚT‡^ð»inªãR,x¯©kƒ¼ÓBÜÃ÷ƒAÈÇÕÖ¢×~Ö£µ¦ü7‡ÈÐýxð¥‚K<‘2Š,r‚qàìÛ^©Ç:à%—ê“|§NÐÓw‡HI%Ú8ÆËÓ"·ºŠÞ®Ôç=[©Ï}®®Nu’òâ[¤Ä´# žÌbD a î{xÛ½Á"w]w¡ëRSšÓBmÂÓ­î —ãdìßËÚ™Š 9c¢ìëZèZ‹ß ”}6Ú5rá `Åípv&!&Z€Ú<Aù˼tù.F@O4ÂÔÇÆ l¤EÁ…Í”ZÊÑöly¦AÇí~RU‘~^鶴É~¦©H|¸Ò~ÝŽqêÓëði¦ LøRuÞó)râÍLìÍAtìÍqFÚ£ÍlÐþ>|µ¥øÍñ4!Þ:…<¶¯ýRöEY}OS™út¹!凜ëprÖ…š1M­rÒþ@©ÇrSî3%7힊“q_]™û´ ù‡”™é²Û +=™fæ›ÄÄ„Ý~èÇÝN€s…>›r^èz +Ý€ûyr&¡§´Õ\°^DI=ÓTWEÔ m}î«)bÔï“„ØÛí¥!wp¡/@Û}ùᇢÜ/JNèŸmÎ糈¨S ð=Å>§2Dè >ý×<s,£¤k¸„ ‡¸ÙIðÓuÀ=tíù¯V›²÷z‹=ÏgHiêúüÏ9Þ~[oÊúµÈçnöæ+âëÇrߎæ¼Õµ&;ìõä¾½P‘³:°AO¬èì_€ß4NbBwû‹?.5¦8jÍVÄߟ«Ê~Þº[Ÿ÷å†q±ÑSøNÆN¸-¦&Þ”ÐRn©xÙ$¤èÛc¨[SüÄûÈç«j^º§¨éµNŒ·¶>ëù|UšƒZ˜öp†•twŠsCÁË~ÞGHvÝ1ŒQâ¥ì|'ÀrÜ\­Ëp4öAܕ섇ÿë˘{ºnlØB&h·‹{<]^ð[€aúi§ ì²ÝZüN[ólA˜å¨kC“1¡oV«Kìüè·×ô6QvzÑ>ºNØ]7ÔGÆ ¾³Ú’þÊ<ÎÎ7 R6ÚîÆQJŒqfC~;.õÜ„|Òuæ¼™¯Mtœ«J}²ÑA\ï$ø ãCvz`žkME.ë­Eoêò_ÈùyÎ]Èè#¤¸{èÃ81z¥ì<+Ìr²Rî©„iOëÒŸ­5§¿<•~ñcÇ(‘ŽÇ26 À`Æ +p®…št‡¥†œg¼œbFߥ…Þãf}þCÊNrù® äè žû}€î {nuå¹Zëz0û|®*ôÁÁ$<Ʀ¡YeÄd A+-0×½n”÷zsɇí.˜7/=55Ù/léo÷A;½Å_ô#„ÈÕ¶²ó5àç+-wÛƒøÈC =Óî³f…I÷÷‡à¾«­P×ÕfÀSO`–›ÁŸk +^n·—¸Û5£»ÔGÁÍ{³P ù¸?DN\ª)vÙîÁù-5!?)¸9Ëõ…/7;Ÿg¯) Ÿ®/5¾w)a&=#ÿœe'Þ[®Í}¾Þ^äj–”ù_ÌaÒU )o»1~׋?EU¤Í^r´BXðf‚˜ôtŸì gÄß‚þÚ*ÜËÿdšDÅ|_¨ªùgÃÝïË~+gßTr#îèÚÒŸéš27[Á¯tÝ0OeM§Œ_ôñD^û®)GœÊ±1GCЯú^¨ç^oÉÇÎ|À——…­÷¢²¤ü,×åÖbÏË9bàE>ïvä8ïw¼_®Éy·Ö\üåRΣ\h„t‹”•oœäŒâBö† îí¯—jsž/T%9,U'?:U’s·‡¡Ÿ×ÛÊŒ #”•Y/æ«rÞ-Ve>Ä…ý t×µîÒ÷W¶zÓ]†¸iï(qNÆq\Œ~hK©€ ÷õ¶ÜJnüô·kÝP÷«JnŒc;>áI7>倥„ínä×í®²Oúaä×ýA„ÏJ ÔuíÿÇ Ì÷:àµÝt}°/€Î†‰ÈéøðÃqlˆý™Ú56ñç6i£'óÝLy’Óájcem÷¢VZ!6; ú¾»½(ßiAÚKB¢ë#ä„·ÖIr²†q{¡*Öa¹!류uo±"â±±?Ñý 7ã›IŠKÞ»Z¥¤L+-Ö€<¹Ò }7NJº5Œ‹ùc†™|Ï:÷³Î`¢%U oÈɯoì RÓµ-HyEú#EEÜCÃ@é7ýâÛz[áëõðëížÒÏkPïõŽÒo§rÑ,á ¡ý×Úr_ê:r]Æ©qwkò¼¯I9IN­„¸§mè8Ç€g–L£­+~¹X›ý|Š‘p¯¡0ðz¢×•ù¦B×&|ÂlÌç?€Ûybá“O¦Éég@n1I ¾ë1ç+Cn«ù‘÷7ûJ¿5aR^ð +£©°qF¢B~Ò÷ç½ÛèÈø "ûÜÔud}­Ô#’þÑòYƉүÛ=%w{€?+uS°Óik‹\é£>9^§Ä¿ßÂÅ Râî¶A|~ãÂþÅEÜh/ñûc’äÛ0QêÇ. xXžëqË,Áeî Á½×Úrœ´ÙŽËÍy/檳g˜ f9ÉÏú‘ÁÕ¥áw[Ñ€þRRµõà×€n9nžK×Yøv®&ýÉêëM-Ða«7ßs˜ùìh›þ¯åÊ:›Œ”a´ È<§Óð s9<Ä$.þ²Ø~§j@JG"xo¼Ó]âiBøGQ€G“sR¶ÚaA¦ JÊ,'îÞ~/,Ø0JÍØéA…Ø&PÑÿw‰Zúß2Ø". XïLu¡dÁ­@~[íFxnõadœ\Ç)zúƒ¦Â7'RdèÉ,&AÙ”ñžêvc³ƒ=WSæ.¦&ý¥ä%9îv¹xÛĆKI61.NÛ”ýz½«ÐÛ,á•íÐcwо;%_vúJR׿|ÞꃇõÐRÞô_êlj± +A®³„žrwš•toŠ‘òxŒœörœ™å¾Ü‹-‰û|+ðÕCP,üÉ9&Üf_ðsºîÜW­IŽëÍÉ/wºŒ!#gRrüneø½º:É/ˆ2PŠFÿd±*ÀQì}yyÀí)ê×»ƒ`_‹ ?B‹y¢©Êqû¥å~jYó$.f©6Ãqµ)ÏEÆIzD‰~sµ«4ôÉr ,DQ™ÿét–¶L¢N°ŠqÑ&ؤ\²¦®àí(!ð†Z~w(ãå4?ü¯¹ŠT‡ƒn”¿ÐA^ªÛ­ƒ>tÖÏEùrŽ>Uáͨÿ^Oêë¥Ê€›[]Ùï~h¸$ÀÃçÏ7¿Þ#E/5_*9)÷¦™Qwzñ_ïöýÎ×§8¯µæ»l ’k Á'éžg3\Ò‰„šplºE‚ˆ<ÊpßëÍs[®O}¼ÝUüù`”Ù€Œ{$¯+ôµÎÓEÈ ¥æüÛ=¹ú‘ßÝþüÚú´çËÝ%~£Œ„G µàOº^Làþ0.âÈ6²=†“W¸‰9Y lrz¾yšžkS°Ëv±Üí-r5Ž–ùüôvµ£Ø]ÛYüy®³0|g›%b'¾^¨Ìx~Ð ùv8Zj›†%œ«HÐ 5!ãP\ê7A¿½Ý]z®b–˜ÅØý0ÜGU™ò`–Ÿî â§?–rc^Œ@"”uù~‚ÿ[[£$˜qº +øßÝÎb7 ñÑ("è÷QBôÃŦ¼»œœ€?»°Iž¸´Ó9BÁÞp¦«aœ”hš`ŸÉ*ðg +.j ¤ŸÀÆZå<„a4\æ½Ö”㢭IpÿÏE6úDIÏ?˜$Ç­v“üO•uÂcŸp$ÂFÚìsmÇŠ¼Ng‹ƒ­²RÀ‹óB–Ƚk]ôðµf‚ÿf;Úg¥¡à­ý™‹~î»ÒZø~³æ­¦ÄJë‹Ý‡ð‰·WëJÜGˆÑGã„Hý(*hw¨ÈG? +ú3÷íZc¦ãá01Å âB§âg¼˜åg½˜ãg>9êG…ˆ™àÍ^tøb#ôËÑxVÝ‚ñkƒù_ï*óþ}N˜øô`îw,gœ(€CÅ*3Oc“.˜˜ïkU Ö¹Jö˜šºÞ‰ü¦kGzïu¡¼u­°OÖ1f¾a„–1ÍI|°Ú’óöp‚´ûÓ¬ þ¡œúXS]è²ÙCŒj*çLQAþ±ÌeŸ-°‰'³s•}eß”•@ ¥=šDÞÙm+´æe–T`·±á ÍYÏw‡ÀŸìï©€zùz4JM²ˆØù²ŠÜ·RfʇãIîXÁ‚o4™ÙÔžy ~*‚O“€ÚÅ%ì Û×uBœªÊ‘šº´—“ôð?VÛ²Þªjó=ÄœT—Ž‚Oç +FÙÔ«JƒÊ*¡i— +!c»£ðíjcÊ%/ü®˜pw ÿãñ<ìxŠœ±5ŒÂïÏÔDÚTôâ…¦‚÷#ÔÈ'Óü„7+mÙïÖÚÓ_[$è¨Å΢o"^Âsó ©àWßA‚ß-;äáfoÁ‡ÝñRßÝ‘R“i'&ãò~»Ÿ’q¦®á§èÙë%ž[=¥^R^’Ó%òî¡~¬å³çû ù%Ñ®÷WúK£Î4ô³„¯ŸÀëÇQÁ›@–žæF>¡„<:²ùL$d˜óØ0„‰µH…ø#i%áHÊ.:£•œk)°ãyr®YC[5\|?%úÉRC–û™¼c™ááά’ àü¿´$°UV|(*öû{•ÍþÏNÍðé¹è`¢ðËwm]Û÷ÅêšóÙ +‚ILN2üh\ÌÎ1¡öx¹²Ìûd¬kqŠŽ¥ôÜ 5µð`êµ7ó5ˆËsíså”ÜÝÁ¯Ãá2ŸÍ޼û#ÙŸÎf1É6%û|ž6J™9»£Ì¤½1~þb+ê3໿¾ÛEïÌ?_ï.ó[ìF~kÁÇÜ"¦: róEœ‚¥ÖÒOS¼äGâòØ‹õiowºÀ¾ú!xÐñ4-k{„µÐVüîDΊ0‘+­ÉNcäÀ»Sì¸G=Ø€?ú°··{(éSõXßfxô-•ì}® £~,’Á—jr¾EЉÛì»nô¦½²·õ‡–Qv8EL²Hy0Ûl5{oŒž6W•ó|’u[ÂJx1Uó¸í}]Ä +uXì,óê$G?’°ãŸ bâÆIÉ@_C/Tlø‰œÙyÊ‘qÇjíXQI?˜`åézq1@Žößï»_ʰñÇ\ìn?Ü÷`fÃG[¦ØPã$%Q]Ÿôd©µÌË ¢$D¤Øv6'(7+ÊËv'1Q–…ºë|ë¨U^Ûë/û¬mÎy¡©Íz¾ÒVìa™¦f:™§¬I{1ÍMp°NS G“ôœ½Ø·å¦ çµ¶ü»c¤ØýqF¶yª’h§g¯µ•}9Æ&8K·Ê)öw [½àO³5©¯¤±ŒLäñ,s4C/ZíƒX|’EÎED¸]øËþ@±ÇÞP¡ç¡ c[ C“§A…Ú$˜¤*zo°ð«Bà8N ½#aþ >óå¹’ƒ9Ÿ«˜•4ËL- ¨U„IBNÚíyh›òÝæÚ ß6G±ý¸È_k‚# >m» þy­ ñé` i–ãSM2\ªQŠM4ͱñ=œLo^¾Ï}Ãz®m0ij+õŠrèö8:pcöͪ°²Ìçm‰Èá® ZdL€m®¶U/ãáu½eŸ7º Þî e¿^íJ}¡mIýðk•_}±$¨]ò‘EIH¿X¬®;Q i69n›fCŒcô”ý!jôz?)´Ÿôl–…übn"ùù›m„oÛ„€ƒ^Rôá%ÕªàÁMvȼ€?ýv:Í.3O²À–)ôDÉE›g˜f)M?†5Œ’£ÆÙ™íØø¿Ô•÷;ÿ£AJ‚y”™kçëúhq 5зÛ=„ÃT%n}˜?[[üJQ]ä±Ñ…‹µL²Q?5ÂrÓ$&z¯¯Ðk½#ëÕz7ÄÃ&`÷ÑK ÎÔø§RfæK%ì³Ö‚2S ~œßXsw­…ÿÏruƒý}‘iâµ?ñÜEDIißç¥gJbÆrkÆëfŠqº‰·1ÀJU +œ<ˆ~8I‹,-O¿Ò +‹XhÇóŠ#Ö†Þû5_ɱÉð——DPß;"½gQÓ5}4Í.:œâ€íup2Ã…^Ø×2ùv4Vôe­%Éq±>ö©ULÈ]ÛPúqµ¡ÐE×ñ: äž«+Ve9|­£¬ÎxiӳϪ«/´•ÂC 6aöu¥쮪K}»Ü™ã:KƒþþíHJÍ_h¿½\¨©ß4u³å«æ<7 ”M`²Ž•ÒÉ\Å:S^ à½ðDÆ‚ì÷C¼Tüø»ÒòØûRnœÓbSº›YZo_ãÍ^÷ÔL‹¬žmšð*¦§é:Ë>N’¢n*ù±÷·ú \ÄXû·ø »Ä8LO>`¤ÞYä0~¬ jΗø<Ý8!ŽWòDÔP”yºQÙ®ødwàz2A/Ǧp9&©ðû +cÕÐá‹Ý…gp † BÒ±¢¾âHZK;ç寶c}«èûbPq®å™dUä=‘ D7ÄLÜè!®·Q¾mw±"umåsդς¼°«ƒ¨ìó’»¡·"ËÐËNYj¤Î0‘.‚»MTGÚ JMè/KíÄ0‹¢¡qg´¬üΙB@Ð6ƒ]*SîuºY'XÙ›Ýéó•D÷ÍFºÿz=+ä ½"Ý:T ;èæ- «¢¥8òó9ÎÕØ!(8á £üÌ´ ›ŒO±ª:F­Ššr‹Œ^i-þ¨à§=Õuò3·†Z𺞪ÜÍFÈ^Ox³ŸºÙ +ßïæ&-m£ _"Jž,ó)QæQaéÎâÛöÄ˪ÂgÎ1èç+ Cg+ ýV ŸºÐZè±ÜõòB²UÁ…­¶!Ü× _í÷B݇à!–qBÖ‰„>€µu,ÿ­6ašm¬‰b«ÁêûXÉšÊ\gÀ¦/ó¸'+õ³òö4+oš‘u(ç”ÏV/fù$›ŒS¶7‚ Ýí*ýd›$Å_(¸H£˜WÒO»Ù‡Ì¼¿\M‰<ïh8“ +É{e_uÝE>‡“XðÅR]×ùR]ÛÙb•Ð<Ã*1ÍÐòÏæ‚c ›x±ÈÆN•†îû­w‚]· ž;CøøhœC,ÃIÃ'|Ò”ŸM× Íã•èí6bˆ¡—s,ªÅoõ°K檋] #ø¸Ã |œMÎ(:™e•Ëá òʰ§bvè=]"àDU_eÇÈ>VÛQž[Ý”Ä}ÀãíâÂv†Háº.r”Š ù bCÞ/5õ-¯åvð‡Å欫]ùÞ竼êŸ[M3¿6ë†õBöÊ<øP]É=^n•œ¯×vŸ¯±ˆ;"D”ª1çµ¶3÷õ‘ w¹R!¸X©n:”òÊö)I/4õþœkîû±Pßjš*‹Yny½Ö—ñîP‰‰;_)'n âB7ú9©3µÔ¯}ÔÒ‡ø‚¿„ÉàbB~+ ô»’ááòý +ôòÑ_ »7®œþúôÕùáR¢ÏŸÓœ§ý!\ìß«\æÏu.Ó ¤åªºq_¦[ÈŸ¥u¸S|äËÑrœs®ôAeQÖM pNj\ØnB앺¬ôß¹i±7hqA¿‘Òƒ~‹üâŠu}sµ–ý¼ ™üT.D¸ï2“âr¨®—© endstream endobj 60 0 obj <>stream +ë!ï s3—{xIÓ•÷> +êUþ¨¶ò'+%õ:"üj±¯ÏNlÄ5~Zø RÌ·kÙ_>_‰x÷øÊúöìïv¥ ‘õh³«<Ù("ަkY»S¤¶<`y¹£6g¶¶"tœ‰}ч-º?„+}É/ù±"hþ×[hÅe­f{iÚ>^¬2iÇÚÊ*ƒà’ JâÑ !áXÍ€˜ľˆU°5B-’Õ!Â+K’^”§GÿU—p p7ßßó¶°0Æq’™ôXÆË|¡ĦýÒñêÿçH8¼.怸ñ®ƒ}P‰Ì¿Á(̽V +÷t½u¼r¾wôþñ#ЫÇ÷A7oüz~ç/P¨« (/ÐëJ,ýžº2Çù\C-°,0 ÚQ\àâ;i¦ƒ5ZEù؄ͻ͇dÜ`å¦]ƒF‡\ s{Ôª3(ÅÝ ”çë +|ûäêpóé5ÈûýsÐí×AïZøp¥¦ úÖb ú³º±ìíòt¶ +ó~µ“=ÓÀñï¢RœË ¡7‘)©Wr‚ƒA)Þ_A~.. W÷þù‚ÜŸ:‚^ýñèî]Ðï¿ýzuÿ/{_€xù1¿«ž»ÓèH£¸> ù¼Øh€‚Q| àãçYI5D·&LÉJFâ5DTðD¨?Št}òxæúäøtÿÆMн?®^?¼ zÜOè§ë °‡ù–âú)tøÖD‰·^ŒÞèB|^ëÆ›¬D¾é¥–=¬ƒoc⯕†r|=@qŸÞÜ‚Þ=¸r}xôúþ=Ѓ›·@7®]ý_žópúýóÓßä¿35Ÿu±TYe›ãSÎøt À¦)é›CÄeás ºè&&òw\dÌÕ,/oû£G €_¼E¼} ôû}Ћ»÷@®Ÿ€nÝ]»úè9p½”Ïî fVôuáëö¨°è@ÜQcVÖUͰ[¬tyâýêTȸGL‹ú$ôJ”›+èãÏs'PЫW gÀùî\¿z\ãåÃÇ Û×ÿ¹9<!¢‚~± ]4õù¯·ag‹ ì?;¼ªóuaNRž¿1ÁÉÑö‘BgêïÆ¹ðwÃLäÇzhî}llÔo‰_<®|®á ÔDÀÿï€ncù¨ï$7PYDè5BJØ_Ë=°0ãtYäÚ6T…{ÓF/{ÈGÞ¤]Çeä_+ŠMþÍÿ£Ç•Çwïƒ}ûòá#лg/@QŸ¾]#¤eßkB#^ÍT’׺P>lVó0ºÉ +èòxu‰¢·>w´¾Â¿ÐbVüUTbÌx\Ì•Œ Ç‹g ÏÀæöôõí+`Üþúä(öó§+Q‘“CtaS&9…Ö‡¨ =ÄEÁCUÏøªjfö”Ü›‰¨'µ8â#L~þŸAžî @× ß7ï@¯:€€ût8óÃcÓƒ ¿~ÿätû(àå;<,ñV ,ïýB6T7@× ²“µÂ9ãåäàp‡#(Êã#ˆ‘w]&@¾1Ì”LðÆ0&hµ«ø“QFÍЉ¹³ýåñcõå>µ8¼cqbìoÁ® ¯.ΠwÐÇgÏ€>þtç÷ßAoœ@ÿºzÿÄ ãå{5Öóóµ*pâãµN|ÄÑ4=owœµ=L]íÄ}ÓvP†ÙØW½,ü‹JXÑ]pDø•”o_A‰^^ OÐG§g ¿®]=½yè' /.® Ýøâ.(Âõݕ쟻ãœw‹œYzªå—Ÿ¬ð9Ç‹\¢E]Û™$'Ì4”½‘5?×¢J……\KÿâJvÿ`ÙôÀòÃ?n8|ôûcÐÃ[žíþðÔôâÑS«ÓKP~Hèï„”‡Ù²ßæ /C/nšu5k}Ô˜¥^zÄ\9¸ƒVò™q-ôÓЧgŽ ï—. ' þy ÀÅ=Ћwÿ¼ù¿çÿ Œ¡ûó× ×gΠÂð૵EI¿õ!nîac® jYØ£9mgºŠr ª¯Û”1c|Ìk4ï*!æ·8÷Wb?y}ãrw~ºuýwгÛ×} +zÿüÈËä/߮в3îÕ 3ß-wÃ4ÍÙNs#œÔñ:ªûD Ë{¢NÞGá¸vâ¨ÏºÉœw5HæKLjÙHdÞ-L +ô>-v¨¼1nº®¾Ô×EÛl.ߟ®"™Ìgž¯«1ÎÖWoÎTáäC¼”ÉNVàp-Ý£—Íò¬A¢œê¸gÍxž+#èTWr¿(6ï61#ë.!9ñ.35Õ©ƒöR5”gè†I ›}ež»#øƒ²Šµ/¯aê&ëH+ãÍTÍp¢•r¯™ÿ\T_ßUSÉEQßòÊà‰¹…g]÷us½{r¨å' çOAI^Aשiàgh‚·¦I˜±ÚÈÙs Ó•8ýT%fy˜®D¥>¬(Š¿)æá>Š…,ŸN.Û­–Ât¡C°“ƒ®ù¼ýzp§Ó=€ß\ÜAÁ>W#|¯¦‡§]-J*¸Á…•¼å¢ëë$Ÿ´>PÏ4Êšv'yEöà ­@¥ðí‰JØÒH#^Ù%H¯¥y520/ðR‡üèäë©AÑWƒ<ýŒ¿j÷!èÞŸw@ïÝAi¡ ¿aS¡Ž]ÔŠøÑÚr£¼n”ÑsŽܳµ¦ÉóõšŽÓÕê–]%¥"G)Êãz9Ô×­DÒ«Š"ˆ%;ç>63ónYjÚ½0ÿ?|ßEyû‚âüƒ¯&E]øêw¥(=ýO&¢ÄIÚH Õ W %u¬Ãé*²AÆ-Ù(Ï™kC{hûñ›SuYgERêˆMý3ÁÏûFvDè¨ÌÄ;éz¾~ úòÆíZNBžCR|ÒݬøÄëtpÉ} +ó¶—KôV5¡¿Nó³¯ö”]¬T6ž¯ñ€?Ì;R HM]õ–¼–9ÝÁ +©#£ársþˆúì}%ÂÝ” *ˆN¼ãçÝóõSPr÷UL^Ꟶx˜Ë0¾ØWLts5“-„#iuŒ½^è”,6ö˜ÕuUzEíðû“äxYCÉ—Æ’»'Ó<œm¶‚v &§$ø˜ƒI\”I`u†žc›å O´5u‡J.ܪp7ß!9[l_,6v­ÔÔëU\ÌÁ -ks¸#ÂÇl‰ Ù€W€|_¬ÏÖ +lŠ& vÙг9Jþé<­ä`†˜r¨(/±Í6µMÕ ¬r!Y¯àcw¤|¬~º–m­f›ÄÔ ã%vw±9D‹Ý·Vì‡n¢½7YOØB·‰& ~ªª,?š¶ï!VÕð}±}úb¡©ßªbc¬êò²£™ò"ƒ„W²?Î+<ž­b««¹&%Ÿ`U×Õg„GІÊ·tKDŠÞ£õRZúÁ$9É8Ã- ðÒÖzªÁ¦™~éñzý°yž‰j5Ó¤ ™e˜˜½°›EŽMþ±ZYcžå“ŒrͶX×nZjìßR7uì̶÷m+»ú¶å ì•Zô꘬“Ôa÷圢S- w±(ä~× +8ÿ»Fæ¯Ê¾¢IE+0k¸DëJu=ÀùöõÐÉöõˆ.44Èw- cU± z ,«C}ãAã> Qù:EϘVZ_“3rW§YEºé +äÉ‚}Ýê¦Ñ³åš–#5|º\Õq¾Ö±p¶Z×mT2‹ÏÅ9[|×0¶³l„eV@Ü›¤gnô!¼äåÛ|CÇæ .LÛ~·9Œ ^ÆGëfX˜•€µ¯®f2ß®Ž‘Ð€&Mœ-Õ´ž)Ññ'Ó°P“²;† +5OÓsÎT<ô‰‚‹¸\p8ÄýñRß½¡®´ç éogxŽºž\ÿ“ùêíŸ%i, >—“ÎÖ[ç Õ56M9V7^($Ü›©Š}v$Cfÿتî3-×÷J[Àa_kòbIXyºÀg<Ý!BÚs?­ôzXV*x–õ†á} æyùdIÈ·.p0'‹tˆm–”e™!&ï•ù|þ¹UÙvªi´Ê»‡¬ŠŽ~‹ºµ×6[^j‘QÓô"rÜJk©Ç¡Œ”9ßSòu®µÔí`œoœ"Æ[gé…V%×,#$¨Y°c=層ó¥vùùb«ÈŽ‹×0KÈH‰bÂá 5WÑšã&ÄzþX©í:]l°*kÊ$ä$ýx‰·A÷³Ïk7)¹¨•q&d¬"ß{—u¶ÐÐu¬n鱪šÛL +v­+ûÝN_‘ûþ*`_LË”ÕaãÕ ¸ì£é*€¡ò -ŸaßÓê|ž˜kœ„®tÅ<µªˆEg u­‡³BÆ\ÊÿHÉÁ««*NÔu §ªªr›‚Uº;†‰Û— ÂÏ—„“¹j]ceœ²#³Ø,g•k€>\àLJ2àÑ~†1fö©¦¹çxžÞÁü¶GPS/4¤Bë "þ‡–û±RYœfQÕ/W[§ÏכįÅú.ÓBcב¦®á@΀g¨Y&%v<_A>_fãþ»WÝg_ãötž…>[$ýXÅœ/R +MrRʉš^t¾RÁ6+Xðcû>`[¦ÿnTðÿYcSmJjÎF/ò«¶áu(a#Nj»m˵û*F¡uMØpªk˜ü©«éý÷VEÍ5.ÿx‘ßå»kI3mMóùRMÓ©¶ªær£n¨-Þ)0ž—såH«‚’¹; +vßÊ{:ÇDmÓ‹6zÑÁG“”ŒÓ…rÜñFEÅùvMßÅFu«QÀL·¤º®áàÇ+õ½»RØ$EF~Ÿ§–~×Ú×l.ÇZe˜Äÿýáâ S ½Ä8Í‚,¶ä9kjSntç¾µ©ð©æLÆå"ƒp¾\Û±4ŠÍ˜Æ8åôw]ý„YFÉ<š!$ïHpÉ+#¨Ø#~¾Ê¯¿ÜnèçkêúØ)Nú)\ñ¯U>ß4CÎ8QÒr-r|¾â³Ü‘òú@‰¼ÜäòO};Rqà'KµíÇË}‡j>Ñ8CN?š‚˜§Ê|Æ‹½ dô¿v*;Ìr.j­‡·ÛÍÊ¿P7´}×V0íûšÅØÐƒ!Œßf‰»²2ËAÛTòQ?ÁL3Œ#%„˜Ýa¸Ïþp‰·u +ýÐ_Zä]Eå÷•ʺÓ96ú'0vï +®¢dY””lÛ,£hW„Ý,øµZÓv¶Xßbž`-Sôìƒø«û}¶‚h– ±Ê6Rx1Íq¯ósAXq¬äaަ9 V‹ŒbŽYÁ@ØÔÆþL=«™ú´žèe”ð9‡rΤ$¥™˜h³gÀCõ¢¢€ÃRƶ„‘µÒO 3N XçËÃöuÚe\äÑ5Ý(Bnõå8˜È÷0Ï’2ç: Ÿ×º‘ág³ ívx¬RLòòb“’Q ŸÂF˜å„dûþ´;ÀÏdM…®¶3Ïçù‚‹Õª¦Ÿ<Þ…–þ®%_.ÒËt}¥žûc¥qؤââö§¸³¦Fx¤ª©0*¸x >›¾/ñÙv=’ãíûØ÷ì6)Èé6 )çLC/ý¾X×v1´[…KÙ†ø,¶»&ˆñ—‹¢}/˜‹jáù<½ÄþžÏ ¡d^,U0~­ *õÓˆƒ—~®kV~jÚ2K‡íO‚¿¤¥a§Z +äbF¾ÜäUêe¬¢IZæùrU‹YÃÁ÷Bµwq1ǧx¢Æ¥Íá2NæÈy#ÌdG 'ÏÃlÿ.@BJ3ÊP‰F%!ãPIH5Í’Îé¥ç+UÍ@Ý ”ºM#`~_â1¾/ÑË.æY›=éÎ#ϪÊè×st˜m–OÙ£$™gì{Ý0ˆgKØt½¢B­ àCw&1á{bdÄá %ÿl‰K>ÖЊªêl‹-¢³õÚÞ³ÍÊæË àÏ•Êz³†GÚ‡Z•´ûž¨“¤¸ó9!çD#dŸ,p)gKÕ]?tu“?·¶9F‰UÍ(9_k_´.5 îËyÈC9£ð“þ_ü_‹ù?[¶ÿÙâ7fÊ‘õ¸Ç~T¤ó/UeÝOÀ?OÁƒŽFòßo·e:­6d?Ûé„xè'ðÑÕ9oÙ¾÷mãŒüKEý§¦‚ô}Žð)&Õ$ƒøÆ3ßþKËDØùÖ¢a¢mVÔžh™(£Œl“,jb꩚”s,'äîá¢Æ„¥û广 ZÒ±„žn'D ‚Íbàï"B¬~ê¹Õ“ý B™eŒÜ!ržU\^r ¦¦oã"·†H‘G“¼B›”[jS±ÑF#ÏŽ½ËŖု9_¨²"5C?ENÞã# RPËÕ5§‹|.à9˜fuMõé|mÝ÷9:ô»—tª, <” ‚öEèýqTàá ³HÛE6É+™'óu Ç6Ò +ðµÕ¾—Œ²:„ lÀD<Õ bÁ—Ku§ÚÚFëµÀ¬D'úm’¡"¬€¶ã´)æ”V–…?TÔGœ/7 Ùkïd¶ï©"A‡¦P‘Ö96óèé»#¸P£˜Qp¹ØÐóÈzgs5‚cg™&¦ï!ü­3¬bƒˆ’4LNº¿Ý ø÷fýè?û5c€OÃ[/h]–n¸Òñ:]*'ØÖkÚöäì2½ˆšþïÍš®t5]ÿÙ®lÿ÷Ž ýtŸ·=óY€{íOãö&á§³\ÌÅšÚ³Y!ëTÍÃY•ÀøIPaó éO'È‘÷w‡)¹×à'+²ß(kRÞXTÔ’«<îß›üêïk\‹†‹Û“–C¬óuíç+ ý‡RJÞZWÁÛÍ.ð›SÓ–Ø_støá0"d©.ùÉtyüÃíXÂågU #õˆ`€ “­a¹E]I?Yæ +O—hûþ$ÿx÷ Àßé¢@ðc޶-²‰¦YÀ;åˆ-—òc£‚÷s•W~ª¡–öPBk{‘9?7Zd?×ìÜÍDíJŠü,ó¨$ë&õr‰ù×fU×ñ<äÎÉrË´US[c›å"OÔåðs ³ôhx¤à“æÚ`>ëmØÈŸ³5³vɉ„šav» ®f -bZÆÖ*¤“y§"ÙýÐ[“”Y¸7Œ +Ø.tÛ»­ô<bvØ=û÷@šV\H8ÀÉ8ˆ‰7QãךK?,×ç9kksž/Vg¨ï±‚K¶Í5÷*ËßBH¾œ%çœ*h‹‚˜iU‘Ó§ ±ûøðù°Ëö>IÓQ–¸Ñ õ;V0 "lØÁPÙçCÀïIÉ)—jFéùÓî¯y—Z!ç'ìëžNacö>²÷Ž”’¦mjM\N4ÈXø}) l|íùfUÑ‹d¤l«‚Qj–Ò³Mbb" ×q¶V™ý›ÐÓùjá©¶¡ót¹ºÖ(£¤$ää~¤¯š“pïx—öc¾ªöà$«š 3ÉÊË.€,s¢äáÎÕlÌ¡ —¦ŸÆg)E—ÚêúÿÚ×Ì]¯nû¹ZÁ9ÓÒKmjD¤q°?ó1ˆAF1:Ø$!Ä[¥Ôì£Ibœy†ž{Ü›YA-Ћ°ñûCˆˆã9mMD“s¾ÝYë#dÿÜh_¬T·ÚÔ,”IAH1LSÓ>*ü[+PÌ}1)yODÉ83 +õ@Ûµ-à/ÚÚÜ÷únä·­¶BOÃ(:Î$¥æn ýMrrá aã÷MûTK*²ªqÉFyqAVà÷}…Xü÷&›v¤¢ç/÷–|µïq¼\Uxûï5?·ª;Ζ¨e652v{â¹Ô™ÿÿ9zï·4³íÿ{ÎÔÌL&3é½'&¦™jÔ¨±÷Þ;‚ôÞ;bk "Ò»R¥ØK’™sÎçú>Èss~àR¸6{¯òzß÷Þk=Ù]`söuBѱ‘C?22(žyüd™Éþ²LÅ:¸Â6ÿ¼ÔziŸ!f[F‰9ºN®[ÖÙ¾«j¬9ÐòɇJj‰WI«pM’¼Ó4­´së'fÎ2Ê7º@Ï샠×ËÝ%ÏÂÄ‹J~üƺüW›Ĭ…è›åØkÛ$¥Ì.aA\Rüð·o µ56 >¶.óñú"ãȇ^ÀV·þ¸0Ï2N)Ê\l½Ó´‚_° Þ]±÷bÓíä-¿ø†š“u^Éʼ å9,ÿ–gk§æq‹žE]ûž“|}GÆÅ;d4Øædu¢}òi©?ë¾±#ùæ¶¹:ù¬ªÍx¸#ÇU|¸go™ê‘–}°ä®ö$\Ÿ¯8·ÖUødo–VáœáÀ–Q¡þ}̧óì±FÀðÈȶqt¤u +ØJâæ$h¶®0˜óú÷QBÔµ}@ƒoŽac׺˞mõ>w‹A¯­ÃÏ×3´„ª=¹=JÞìÞ+'—Ù¦‰û‹øÊ£e*öÈ]Þy:R×Sùzu•| çàO}a—Q +—GБ®)l¼s¼úÓæø“R˜ñÈИ÷Ø7K/ö̲§«iØ7 +€­—nŽ¢>-·•=0×e\öÁ¢#ÐëhEð±‘èÙº¯‚^½ÚW᫊Zé/ 4÷?ñ(ü}¥êûOLµí‡þºTæšÆãE&Áßÿ×5Sé’ £<³ðÏû*LŠÈ£.1ô½{æ‘2JŽþ×»ž^µ3‡Ë²ŽÂÃÖ†QQ¦~ä§jÖËÍq:~×ÐØíÖ°±Àø]€VØÑ0áÇFQÓ‘©±s +›´1EÈôiD"ïBCó†„Q2ß 55ƒƒÝãøÄ~Ð×$,ˆ'‰«ÃUœRlÆ¡‘F80bKöu¨Ì]¿æ˜¿Æ1úu™Œô©±9EèºÊžÙ¦ÑY^- åQ1«öõ\ÆÉrMó¶“êS¡Ò¶gÐ)Þ9bá¾Ç_£bv5 ìÉRÇüñJÝÀþ"ƒ°­D§Ù¦1q›£ÈèaD”gŽRbꃺÈi>MÔ§njô©¸¨Ý9jñ–ÝS‘r=³¨øÕ¾¢gó¤Ëk}à7Ëí•AŽx˜­öÎÚøC[I }¸òƒ{Ÿ5Ðó¬:ûÙ/£è”{'Ɔn¯’w+Ø0Ÿ¶ÆQëÃà­1èûÃy>g[+d1(÷p9µð„Àßâìã¤ôåNðËÅ–¢{¦¦â'v1»h©—– ä”Üp Ÿ`B†nôA_Z‹î*j²¯L2ÓÎuÂ?ý¼ÚC,wNÖâ—†à¡ÀÚ?µO£|rb…OäŒYjáJ/øµ¥©$ðpŽŠõ÷4[.P âÿP²“Ï-·>qOÁ“Ž€|¬¢”Ù&ѱºÖ²Öaä'÷$!Õ5NL±Ž‘’6Q!›ýÈÿýºNL°±õ^B/4ÖW¾·Nñà2aÑm 9æW-?á¼w +¼=þè….ÐÐÃÜŒ§ø´§Ìò +£Nô<Þ¶z¬/>ÐWÄ,ö§=1vÄÜ\î-|è’r·&p©«ÀøçyLŸ¶¾ã˜«µÞòÀ züõåo¾×ÓîxfHÅ͈¸ݸ˜g{óÜÚ 11]W[vOÇϽ¤ãgœ—P#ÎcÖ5DÝìad”lâã]c¤Œ‰ñÎ2weÈ„¯*üXÏ@,ðÇz>çË"çiC©âHG®%:Õ>~ò}€ntËà ›bÄg oe:fýzŠÏÝ[`¢˜H€“ >&Õ9ƒHX†¼ß_à°Ì »‹µû–šÖ}sMç®È¥:Ú!E%Üê’!ã\ +B®oAÀqÚxG'.ŠZ|JÅ-Å'9ÆQŸ MEýg]Äœä«Ä¬§?ë›Ëâb|Š¡>ëærGþÛ8xV˜|eFò—±1ïÖÉsd¬itÍ3œ@~õçÀ-IuŒKŠI÷ûÄ3·˜ð¥R×8䃥-íÆ(1ôŒ¥úz©§ê­¡ôx[Ì*=P67»¥Ì²•îêwb\úïÌôwß sßý,!¥\³âemØèÖêø?V: Ñÿèù¬@#K_èêó_9ÇŠ?™Ú +ˆ)ùw;ÑG:*l±-íÚÚ@îs¯žh¬ ³‹Á‘sŒê}@+ŠfyÙ´\Þ×åúÁ#= »5‚ ÝB„ÚGÑñ§&nWÁ@NPÒo+9l¥ñq†šui›þ—ŒVp]ÃϽei)|±Õ‡HÛ˜ ä|¼ý=)íýuës¨Õm åDñ™êR.Ú'Ê^Ÿ.²¨{ \Î+ómkuÈåÿ³ +{tD°K z³T—}UMI8;G‰ù}½5÷Þ‰‚Thì†'„ÜýAXöàþ®–_ï¯x©&]h¯|ù›Œ~í`ŠÚ5´Š—Ä´›—ûmQÔðEÏg3R«Ý×Ñ;ZÎ)§—mNS¼j&ü@Ç&ùk®ÿc"”,q¨Fgùä¨<ï<r¼Z7²gá7¹æÉ¥€n†º¾vÌb2v´¸¢c3‹è™gU;ô²yQͺ˜…<Ò yþ~xJÂ=Å,rŒ—»AO5Ââ{®qj™} ·P“~ÝTŸ~Ë_ AÆ‹¿± +0†gº:úHÏãØdlØÚ(9Ñ¿÷û@ÃF©ð¯KTô×eùxS¼5QdŸ@ÇíiX˜•ID–¡ÝßçœòH˜%ë‘àR_¸3CKøc†˜ðëÖ4)sœ“ûpŽ_àg–o’–ÚÊŸ¬wW¼tOÂ#sî*©——»@oNu5uŽid¬©£(ÀÒ[þÚÜUñz¥½òý6À[‡j|¾mŸlSs¾™ê»ÿ±Ôvìjè`SWÉÃ¥®ü»Ëí¹w^zê–’s¬bB²®ô`«½+g‚mbdøú@u°\Pv¿ ó¿àãoÈÄ+Žarú8¿ì91óÍUmqø±šVihɼ٠+ ú’tç»iô›ßœC…¯¼Ó„‚S@ØeÈÌ…ÖìÀc‡vjÖù”£k(¥GþzÎ2BÞæ0èÕ†‰þ¶$j;2pÈ;RᮚƒßW’‹wf°Ù[ý°Õî’Ɔâ{«=ȰqFq°äÓõÕ>x„s‚Väœ }S„dß8&e«•¦ª) +l©øøËœ 0bOÆçíÈh µ î¼¾!çÉæ8싉‚:ÒqH%6×V2ÎNð3—WI*ÞžDÇ;FP©_ÅÙ‡Žé«|a•N‘R¯rÓ_ý8†yòŸ%VÍî1os°â¹môÁ=ÎØ× 3ÿ³Åd˜¦GÅ­Œ ²ÿ^jž:šg’£EAé·ìc%/­c¥AÇ6Ó§áSÓ´\Ÿ‚÷Êå=°¸_ÙþÕW}fšóçZgþËc¹ì›…/:µ°XŒœ‡ß+„)!_éÄ] ¶p}ôn›»= OÔ·ä|KøÉ¥à“Õ-U/Vlji>SËÔÁJû·oW + Ûìʺ¹Ú™uÓÒ‘uß§eî-+6& !ÞBÅÁjƒøËúÿê%×økƒ(¯†Z~Ä«ýyf‚^xÿØ$à/pñÇZÑ7Ë9'1Ѷ’ç øõ¡’uˆ±ÑÖ>T¨w +Ÿ¶#æLñÚ3 zç– ;G.Z—Òò­RFñކƒñ¨ y»:dšO Žô?õ°¤MuƉ‘x‘2Ûœ8', ?Òvˆ6=â¬s¾P—}]ÅI½¤”è‰Ì²÷¿õ ãîïLq‘¦ÖÒg£¸O¿M’ÂþÐÖ&_–0cÿRcÎmõU†}1„ë#°Ö lšKΪvËxˆ=)oOQí˜*y¯oθmAÇ|5Õµ…B·`±AØG×$&Í'Ágy$§Ê°©ö1dÄÿꄉ ‰þ3 +ýÐ Û$1cuŒš)ç—Þ”3³/*ÙWT¼’À\âåqJÊÕÕXäRô£J˜uu–yœ˜þd­µì〾꘨ÃÖ4Ö´d½üjæ ¾.óë@\±Ž”½²ŽÞÙÇ—B¾X¸Ü=ã’svÔ4ȱAX·-EF¯t—È™‰gµ¢” ‹í¥O—‡ðquД눧?/÷Bã['ºå”rÇDÅMmê­&ÐÛs¼¬ÀŸä´$€ÿˆ» +Yß ]ë½ÛSÒ¡Ç:6î?+<ÑW›²«&zçp©{jr±WÅ%Y'0É>­òÐ’þÚ®n äÃR{ñƒŽÊ¨3„¸Gÿfü°X›þüoã˜Ä$ì*ˆyjZű–‹ßÕàs½óÕ6 À\3аc‡õÕÜ竤Um äzdÐøc|Vð?UžrñÆ <Ô-¥úÏÔTÓroa,@ß\ñf½§$À;U⛆ÆnO@â×{KÞ+Øáçvf«òý×…7‡J_lÂ"Ï ùû.P ÿ,ÿ¯oN³wŽÕ¶”ÜwÉ™X©kaÏÒ1Ì«OR Øsñ —±« ”ü?ñÕˆ/ÝUU§œ¬pê×%Çfîd`Q#½ฬ51ÿÈM^±DW—ÿĪ ©Û!¯ÓdБVÄqL`ãW;rnÙò:FÊ‚–[²ï8Åè¤Ý6zÐ8VqU°OŠNæ)ß«¢U¯cö âÿ®]ëéÈ] ÇíèèØ}ø÷rÝàç}Àëäåáª}5•pºØÐwlÕž~³7G.ØžÄÄZ‘¡k}¸pc6dV˜wÏ܉ޚ$¥MÑÓÎãüçýsî/·¡>[G¨…Ûä²½9J¹¿OÌšnâ¥wO÷È)%®é‚gKÝñ—£ÿ’2CÝ•ãs < ¿ã³W`ÁÇ@Þ<bÙ¾Š‹>šÇe;'AA[# î)D„}+åßœÞßœ¢WnÉøˆùfð“aLÌomå!?4—‡ÿ@O{ú¯9nÊ+#ˆ —ªâŸÿ¹ÑOõÍ2+äÄlï4ÌÜ‘0Ãù|CL ?·7KÿïzM§¿ÅÞ&csôjküf_/8µ°™GK¶_;»Ø €Yà{óL€·`ï7«Þ­Â?oKqY91gsŸ0ßX0Iús{ž|¨§TiZÓïªcÏë;ò ±·PÑ7€\hL‚¾‘ŠŒ~úÛZwiÈÖÙ¼#=¾Ì%‡Û§Šƒ¼2€hpOs§ŒQÄ„×ÛRRá¾FȰO¡b–{Ë›ÛKHYWjòCÎvU…_s Câ—‡À!¬’+¶iBž†^½>Tlî.{lê*ºgéÍ»í‘>|]äq÷uB®UB/ØQ1`'‹ÂÆ¿W„MZ +ØØœÿPÍɹ²ØRüÀ5KÞ–±+ Èw»*> XúZwq`[Ù‹_û oÏÌ’"Ѱ“ÿòNU'ý߯ݮ¬‹J_þaÆå~56t}5²©_ Ø¢="Ë>QðÆØžtÓÔ‘tåëRM뎩mÊ¥ já©©¶ëDǦ|1°p‡jjÅ®¬*vk(÷…kªüÓ·A‹[[Ûè˜å¢Œ5uG6uOE,ðÚÜ1 BÇ\e¿üu{^ÀØœ&¥{ÕÔJ¯’á?§¾ Ø’u 2h«·àÁVWö}ï*ÃGÓVþhsŒ–¿-ã ­SØDÛ6Á:‰Š´K‘n&eGÏDîéšû mÓÆæásÓð©YPóÕÂ?ûÀ8–TsJz…GSÃÞšÀúõI¨¹òÌÒRùX+̾¶ÒYúÁ.F$™{«‚;HŸ¶†kÁƒ"ðæ§lcœ”¼ðàÚ,ty¤øÅŽ\ærà†”^¼-cVì*El¯Š]m“âSµ«ü{ž…ò÷ê:1Q` "ÆÔUþhufŸaUmJ¹ÅNZŒ¥…gªÁ¼TP‹®N“Ó/(kóŸ¨ZŠžõÏɸeïÔ|KwåCCæç(d©³à™©9ã®}4ÿÙ± ™±¯ÃlˆQQ[“ø¤#½€u¨gãO9ô#‹¼ èeç:ÍÜWôÄ­€Åo+)%îi6ô@Ù%>ÒvÍßµ6~½:\ð@ß’rmþîÂú<|i׉Šùkµ£"èhKÞŸç’wÔL R N"Ý2PùF]Sp÷³¿'Gh—¹ÕÏÇ:ý«±±ï ð8þÇ>‰‰_¿vËü{¿$};*Â.!çïú{_ͬ:˜eÃv§™ç(.eV˜rc˜”pÃ7ÇÆ® cÓå¬ëÎL*чfãd™Ã:âßž®†·5E-òª—”Uv0O­pË‘Ék¯­ƒðO›ƒUoýµ»ìC°¸ifÚƒdÆÚ(¾x’•ûTÎνk†ÇîÏ “æè =£z}¸"q©'ëírWæc=t¨çó6†!aëCù6FrÛrÛÄ °¿— 0ÀŸZ÷lö07÷m1óÙéRÓø±©¦áPèrŠ«C-Myw5‚Ä››Ã%¡ÿ¬ñ[Mð¨Y$Ò»ÐØ¼Ö8í‘ÓJÖ¡€N}»6ŒIÚÓл‹\æ¾¿Þ»Ž +¶Mbãíb\œcŠœ¹â¯³Ô’{s©-ëÎ7êÂbKÖÝ>øŸD€0÷UÇÉEé×7†áá;sÄ¢S|j&A- üþ‚€w Š5µG†ÚÆ/–æ ¼/f¾àÐDGy´è4ŸžPèÔ’ +´CèÏý¤Œ.1µÀ6BN“Ó³¯´”¼þ¾©àårrÌy[oùsç9C?DNi'çÞï§Ä^ÛCDî(xø=¸§%êñÅ®9@ô£Ãm3ìj§¼^°8DI^#&Ûgˆy;*À/ôÈ´oKdÈßÿÄ(ªÆHÛ_ñ½GÆÚú›èSárRP˜CZå–P +¼³\èæ85CÆßëÇä?ì†%^ï…Æží„EŸo…ÿ9FH¸bªÍ»ã¤åJëÊ^·b.® ’ +=³5„­Q\¼mìS@>9%e/÷P™»Z*Ü!c Ž–ê}zZÕŽŽTº«Egû´Ø"Ï<“°­¢cö \¶u—bóß%”»Pyî.Ô-õ›æ“âÒ#Èð•~Tج¨ø‘ <äÏõAdÜæ>~¹¯êµs›´>ŒŒ2÷¿X¯øèšE'þH\è†}–7=r>ÿëjÝà‰¿^¤–Tn÷×–œFÄØ§«rr‰y Øé£=—{häóÜ +|¶¹+ï¡‚“zq–‘ñWWõÇsƶ¬g%"fç?ëBÅ^:ØÍ«e €ñÃþ·×Nø…’‹Ùœ¢æØel¨²òdmŸ±äo õƒyÂ6Šó×5UÓãþèA¼ýËÐYñ¾“r7âÑÅïŒ]Eaÿ,“Q^yYäú@Ö3mcî}nþËŸùOÏØGŠƒÿ»ÅkÞV‘ʬd  ï»å³¿Zx‚֙̿WqÐ qvøê@~ðê,úÈÄãî,ðÈ» \â¡–K;Qs¨ÿ±Ð‰ÿ]§ O,ÄêÕ!ÈÇÍab[Y;ÚÆöm W'j8Ð׈vÔ<ŠGJ,‰²§Áåzg)qUˆcù àì ]CÙ=K£¿Ö\Yà‚ ãîZ{áSÇ ìÝV?&F*L¿Û‡ ùeµ~j`¾˜ÉU‡l>«“½JBþ. 3vœ±;ÏÁ}15öÜS#Ÿuäÿ,¹rà>‡šQ©ë!DOÐK̈p)·èùpuÒŸ +fA°Š“diXV þ°#Ãe_j#$]$‡üá‘‹µu¢¥ì–û÷YVG8¥¸”ÍqtŒk–˜½:FHU·@^X§ià=¨q_K©ôÍA"Ü2P¸{žŒw¬ã’tBÖ¾^ÈÛÕrˆÇFaí±‘/ô÷­ßŸœœµ5@ˆßÂ}ž­)}\øéÁ÷É—¾ƤÞ]ïG§.¶T¾Xj/*e&ß’ ²ŸŒ 2nu“Sî» izÖFPá›bxä¦òÞ§¬Nü²BBÿ³Åk:]®ë?´Ôvxutÿ=aÊÉ[pº,ê=²4Žì›j›w¸âRQJõ žâfÜÀ']9R‰˜þÞíJRÞ¾œ^bB‡/¶Þ1µåÞZ„~rH鼂{Šº¢§;*€uç¹$ «½BžWMÌsÍs”­w³ åïöÌÂþÃea“[EÎwÌ3·ç¨°“%Èïx·’Ue“R—úà¡; ,@[R+\r\æê`uб¥ôÃj/4rs¬*Í1U³%Á¥óòÑRùÐ¥¤–ؤ”|§‚VîÓqIN%a¡—¸”l¸®£úÓŠXCÓ€xî–ÓŠì㘘Í~ØÇµ.Èûµ‘ê$Û *©GÆR +®¯ô—‡lÏ€"L] Wõm 7—†ÊCÕ­…a ­EŸ=3Èô¿×¸5+S˜”¹6Ð ç,ybn<1SqGFX–[ž÷JÌxõ‹˜øî·Í‘ò¨¯Ë¼šu1>Å4€s©xŒ/æ¶Ùÿ˜ë{ÿ»J'}[Æ—ïh K½  ÷­À+áVîÌ ÇKÍ“'ËMÇFQ£s—li)pdàºÜžwo­§ð‘¿‚±½òéRæƒo¤¶z½:Ï˽1ÃJºÖŽ_ðôWvNÀíÐwg¬£¸Lë$)Õ=‹OßÕ’K|Jå±A :2×ì/Ö¶ï.pp'&.Ë%%dî«Yx@п˜9T÷<Ÿ´5ËÛ§„UkÝìd)§ì~]Ùç3blî ß„ ÊÖ‡ [n+¸§kL¾hi/¸¿>‚ +³ôÂÞÛFaáGó,¤{Š˜î–Ðò}JÄ#G'¸g±Žih¸²>ùΜ(í’m¬"ø‹™Nuª)m92~[VáUÀ“ˆ›©°/R`_ý=™õ,ô¶ŒVäçgŸZ@Û›¯ot+DS'"l›v¾Q)({ÔN»ÙX{ÉÜŒMÚ#ç.uU½^í­îA'^™f¦ÞöÌŠ\3|Ìb3µ‡˜qQQú´-=jFÕ¡ž:0àJwuhÀ.±i-êY`!÷Mum‡‹‚º#€—Ì-“ûƆŽ}c]˰þ–~È+cgù3CGeÐò.·~MÂMè™`:П„ÉçØ1çMÍ9OV aƒ¤¤‹RAîË@ó9g°™æžògæþòg[þþÐì}}]÷éf£|ÇÄ¡:çØp—¬‘¿;ß%9]6ù´t(0VÈ.0^í}ÈkÄì}à÷CmS—oŽvÍâR×F¡aÚæÂ{KƒÈp§ŒZqdæÕ[å¸bó0*ɧˆ–k{½ ¬WÇÁ9çhåNÀwM¢&Ÿ¾¾u{¾¾Ö*g”øÔµüC]mÓ©¡¦Þ«dW¯LÐ2–Äœü•QFºuŠ”eì¤f¿ü­zuGIByU˜,›µ2zolÏ¿o›!d¯Kèe1³àKʉ©¦n[AÈÙV Óírhì–œ²À »ÚÚ:Ÿ’ƒrͱPÛ2 +˜—êí)B¢oš’å™!ç¸&Qq†Ö¬»ºú‚{–.Jl $áÜ0.éü\mÞƒIfÆLÒÅirÊ%sKÉû$!y¾¥ê¥¥›äS ©9³zoK;47ù µ %­Ì +Äø•áêð­Il’¢.ó®o†ÚÓ7´ûÏÁ8%Ä4Ccùƒ.è矋Þ?ËɹJ-þ•œúüŒ©©4Ü;‹ÏôÈ0É6Í>\êÉ}5_qYN 9»Ú^òjs‚”¡¨Ë¾µP›wo¥è\]óü–IU'\ñÖtÉ+¯“û ˆÓß–Fþmá ÷f Þ‰Ò×{rxü¡Ž‰9b¦}jh-yhÓŠRf¾¹êƒ{¹äSÀYQÑç?Mu÷7»ÁÏìãȸtÄ}ˆ¨‹«]øxׯjµüvšqc®®8À2€ Q6U¿_ l«ëEN%¹Ø5ƒÍð*YØC—qºÈ™H„=-áÓ@>׫¦ÁŽ–ÇöEÍ^€¹:†HZ+{ï•W}ö)1i ÈØ6dê=u<Ò:Â)²´Â‚Ę˜ •!$Äè›Z^Ü5Û(ø@KÃÈ; +ƒ¹ïþtŒ° š†zß<‡täù5©xg_|´Ê¤yŒäÊe &±žq¿¥:âæéJÃè¹uæ°e?ïõþ² û8<Ü£ dl„ž­+yÕ‰½¸ÔئbÈ5. )×<J&Ø2ˆÜ w»_š¤T® £³|šÎŽVÀÞѱ°{‹ÂzïÛ4Ô¶šƒðh;Æ·¦y”u1%ß;Ï£[eôÒ¹:è«^dúµALâ­åö’‡rAúÃ…ÖâÈ1TÎ6úŠcž}h cõ€î^d2Ì4Ú®[á÷çQbÆ¡©¶mO_Ûc—Ñqþû˜îy6Ú® [Lˆ `Ž]cm¿Û6$ôÒõqJÁ¹}n×ԥݷthÿWÂXÛ¸£eU/zqm†Y2SzªmÞ[-hÐõ! +wl¤s‚oF¯÷U<]i/º«äÅŸWrn÷pËoE<½ô¨äÓ-Ç&asñÉØ +Xîª|º1PþÂ:Zè™"$ú½2E,é"E]óÊ ¯¶s¡ìuÌ5Õïh…Üc“¨aß àX†±q+Ãd c³Ý2R±c +»Ú 7Ë*zÖ±‰n91ïPM)ÿ‰†ú7ðøï2¿ö«QÀ;ÒÒàË}yO×ú _¬O`“EðÏWÆè¹×ûˆ1+U¯M¹·ÕÂøËãä°¿šÀ¯ÿf=ù~Ž•y[Â-|Â-øtu¹£8h±£2feÐÄ\Šk†Vâ” 3œ³ðÔÍ)Ð@ߢwU¢ú9fWM*·J +B×Å9Á¶ip„oàF ‹ìÓSªìrd" j¾Zj»¾XˆàC"Ó«@$ìñ}gŽZlŸÀůô¡‚­CÔ4À—sÀó1ok6€º:BK¹?Øó£è³u˜Y¶:ÈÈ2¡C “ɨ#rl¦¢€÷¶«ñ’†¼ç£ìäg§+uNŸâ˜á!¼ +Ý#Å”l‹á1ŽahŠ[ŠÉ³³ïö“WGªsÖÇñY–^|ør?:b} o“P²×Ðþzlé9±PÚXùf‚_ðÁ­ªkð-Ô6ø÷6q²Ô¥¤{Û³D^H´Ð‹U·£B]êîÊ£x’^r§©<æ¯ÖòÐß7zŠùfªâ÷T¨‚.|âÕ¨Àk?LÖçÇ.réË6ƒÍ²qÎ.- ±O–Gíj˜¨½€oD¤I˜—ŒÝˆP÷¼H´ouì-óë<~NRqPͪ6Q’7'Y ·š„ؔ³yMGæŽùo«µ=þÞU.- ²ka`=þ:as¤]7ä#6íÍo;*Ã5Í(ô×o· ">®µƒŸ,6•ÜYhªzÒË(¾ +Š +øq„”þÂ6ŽŽSÔdÞsÒ.,wUl –?÷HÀŸŽ4¬ê¬D$Â’oÿ²ÜR™±3?hðÌ÷ÈLÍCÇ~Í¡‰CósÇú4=g ¦ò5·(âÒb+,}OA+ÝÃÅÙ†È –ô{}cõ³YzÅ %»2À>BÉ3µ@^ëêsnXÅU¡+¯WzKÞÚÅè$€‘íÕQK#•AòšâG‹-Ì•mªút¤#B} +d{Š +>] cNõlò¶ •dŸ†ï«;2lÖßþ¿+¢¶S=ßU¤¢AÐGÇDuêÆ$.µ uCÌÈ{¼Ú‹\î¨ œ¯É¸:CO¸˜Å_¢ÒŽ î,6Uõ3îæ¾¾ùÝjgEøžÌ¯a±¶qDÔR7$hk´ä¹SZüÆ6YöÆ3K/]€¥Í±qk {d £MD䑉 9µP«O,„G…LvÍ¢¾˜¸¼mMͱ±¾Ëï/ûZ:b_M(pN@?™;ò+xI×ÖŸ-CøœAFz€²>÷¹m“9JÍ|>JÎzè§„=hüü•AtøÆ$6æØÌ$›¨„c¹úÐH¬Ø3‘*=&&Þéß¾Èd~YåÔ.#"– I;ÊÑ73›m}œ¡D_Y¨Éx°Þ}·''쩨å³ÂâÆv\¨{†VäžÅfZz+ÞZK®U<·I«Âœ +Jé¶’Aðj¬ij™[Ãg{l—ð ~¸Ìž3¶jž¿î _*VÅ€ï’âÛ«ß‹q vU…^l¿»!* ºÝ‰ü£›aP b“âóœs,¸[ÃÁíé(`·¿¯‚TâVr̓ó-% }¨èíȦ&âljB¥ÇÈãØÕt¨MÉÛç…œ]@÷9°´•Ñü@¯Š‚² ’0_—xuÿl ÚwMtÜñãU!36-¼9^ l-OqHýº€™çœæ”m’Ì-Ч“䌿:«â~í‚Eþ<‰Ž»°-¦—­Ò¦é)çìƒÕ‘> >Ù;ƒMôùÏ J‘É[“„t}/1jˆœÿØ5Æ ï[Ú•^Ÿ· äõÃE:jWÇ£zÔª]^K×b#Ë“®¯¶â+f•+íe7zï̭Ч*FÞ³0ÿšs½:JJá€>_h©Š¹éS2«üu%Ürdìrñ³1FÒ•rÂysOY UŒŒä•G䄜¢Æ=ùg£Qº¯­íñû@ƒ/2÷U¼V6¤_Ù. ÚQ1a¨¨¿ê‹’¾™êzOÍ~¨&í) ÙÞ\ºuñi±ú\Ñy҆ɼ>Bȸì™àÀ6zyiC½³tbÃÖ{Hñs‚²‡ ð³µù¯¿w¢Šuu¹w¼düΩ|GNÈ:Ò‹ýýï€ñEëÚŠžh›Š=Rÿ5ŒºNÇ .syôf×½KÍ>2á+þ»Î`øûk{å\ô¡ª}Ð'¯coËè%þ}Ëmy÷tu7µ¢ôÛ; +B‰¼­ô8>à'Qч?öµ,Ìr7:ÜÒRõ|µú°é7þüìc€½J.jE — +ân9$ÐįK€X¸›¼g`Sÿ^«éôÍ£sÖÆ o™ÙÉϯ:üûÙôÈú@e¸mv¤BfZGËCõ™‘¡¿,u!>vâRž2_“p²îèȈC |¨#¿—{8äR³³Ä\§ŠOÜœa”ùT<Âþ<|ºÈ"þ½Â~10G€ïo =×4fÞÖ¶ÁB†¨9ú᱿5…þÔTr¦µ,üüR{Eؾ‚ßEçÌÕäÈ8ÙWìÓ´ Å»¥è¬m&o[N.âåh‰A=0Ó ;‹†MÍ@Îu–¼°ŒÂ¢×šåKµîy.Ñ¥²¼&¶¿çiÕé"c“T§·Ã#/íÏ“±ÿÏU;åï9í‘£ìàwëCå/öç±Eÿµ {w”B’{†_µ=%¨²3s7zð‘ó¼üظ3JfÂ9×PÙÛ­^x¬¹¥âÅBMá5Ï,)wi°ü£¹« `©³ä‰¹3÷Áfì½w’YüÐx_–˜ì]“àѳ0û&>÷Û2`‹æ†þ¨Æ#gWî̲ÊÜêC¹¸ÖƒZm!D8y…Æè‹I|Â9 û¡Z”ÿHÁ˹¦ÝZê!$xæ„·š µJ1±¶itÜ60—”âßC’µ:DHóJ©y¡uÍ%)G–¦q§ŒR¼:Ý#böTä¢C-±ä@ƒÍß– +ô­à—[ƒØ¼#]c7àKüãtgŽ\¸9Šù ćÀ•>RÔl#æ]+ªðò$ tÇ¿ŸYW_to q¦öþÇ.Dø¯ã¤ÌK€ºµØ ~¯é‚…ßûûùÁ™9àB±J”qu„ò›®=öо#ñÒÚ`Ù»½9&|¡¾QÝŠˆ\Á¦~ìåÿ³±ÿÏÆâÿgŒü²ˆ-ÜU"ã/hÙ¡çHiïÎlMPà' Ò‘‚ Ý•ò¶«b¤œÌ@™0Ð`ñv¦ÉN)d¨¯p`¼jžg—ê•á²¼2JõŽ‚–ó’.lôƒ£N´< %@ÞYdŠ[…Ïói¨Ð¯æÚÎ= q çP6'¹ZðÇ%­â@GGm #?kEùwäü”‹ðÏ—°±·6†ª"­•Ëût>úÉõŸ‡Èy¾v¹-‡G¹dð(çLUÄŽŠÌ-hÌæ.É1K-8ÔÖÕî*9Ä­±ê¸9b‰k©­I»9ÿð‡¦¡8°“ö ãã£_»Ñ©×GÐI¿@ÂRRâ~WÒ-Œý­ y©±2âú?÷錰((òñÅïÀQ¿oIȈ•qtÔæ$$lWG®²ÊpÙ–‘ªàåIXÄ.à·ÿgã6­ â<26þh±¡ïÀÒ8z²Ñ$û²)ì9]¢be« ²ŠáŸ4ÍÅ«ƒ¨ç86Î: ± VFnõ—†®w¾ÝSq1ƒD V¾šff=XïÅã/º7KIýs û»õùW þóoÆšôëÖ~ð+C_ù+aÕÇ3­°ˆ³ŽQl²kª:f^”ù@_Ÿàg¾ðÊó_°ÅÇ‹<Þ‰ÅÞM:ÒñYþûêZm_EíÌPrÝÓô|Cø©¡öb†zÙ ;Û^ýgMÁ§ß‰çç¹÷¶ÇªÃ½3„|ë8"mk™´­`A¼êú¾–rJª"æjÒ®H9ñç;Š»Æ1 ûÑ ð‰GɪÚ×Ô°÷æyD¯“è–‚>XÅYÍÝ #"Oµ\Ò†G±OQ ÷Ô<êžZIJMÐ2×ͽÐTñrNTñTß \íG‡l޳ŠÔµe÷g9Ù7§YO;Ê< ®)x¹Ô]7ß… ¯%^j§>vMѪÌ]ÏæE¥ wë}íIø§#-qà?3 ä ê` ¿ÏŠŠÞ˜˜¸/Ktì± “slD¤é‘©'–hšAA´¼Ðßûðé/÷ô¼f§—ºÑU°Ô\xg–™ø;çù|üÝïGÑ~÷É©£Ââ×ì∖té¶ŒV¦k˹?à +9/&½º ­½¼Ò[öÞ=KC9ç˜rÑûëÓÜÄ·ÿ^å×úûeŸê¸ô=!Ç!® +76æ>Sqn{Ý>ÌÊyÛGÈô*h× >Ç)FFY‡ 1ʺ¼7bbü• ãÚBKyˆGÆÄ͈Šý}RFã|[åןš9L¯ ‘`½_­xé?{r¬ÿÚ°“Ü[£èX§”˜î˜ÀgY éÛRdi¥¬¬ “&)iW›Š?ü<Çθ¹PWú|c|¯R«„œgì†EÖ–}: ‰|ð}êó=· •µ!.ym—V%ïÌÓ16ë5 +[Ž×øMþ3°ÿlÑY+ƒe?p„_–ÛT'Ë5‡K\þþƒx`$”xfaŸwæp^%²8‰wÎAn ©9Y×{@Á?7½ü—„}Þ)!å)E·ûÐQgø…o¾¥e]fæ¼?3„H¾ª@ŸIii)­4Ú¹»øy7!â/~é›ƈI—·†«?­õ—¿P ³Î×åZò‚öæYG&¾èØÜ4øH—sŽZè”1˼s⮦†¾=CÍwˆq±¶Q\ÔÀW¦سXü¼œõ5°÷j.8@FϾ¤ægÞÖ×g>Vð#nOу/.4d>ðJY•ÎiV•u鯹ÞÙè/zé+z±Ñ›õÒ%.ó©1)»*ø@-¤»$¤lï4:áXE(ÝWÀS=rDö¶›z¬¥ÃÜ2bÎ2 iÖ¬vÏÕq¬ã´lK'䥜—ü×5é,ÀN7¶§‘Qc&O³ +¯Ï×Ã^ÙÅìÂÅæò'£Øè?EEA?·ƒ>œ57–?\éÀ~ÚâC–‡˜Å¤”KærŠcLPiÆD»§Ð1®bî`69%_h}<«f@÷ô 䑊4uÕÁ±dTfêª|¥¬+}¼1†Í>]­tÉÈù›ÃÕáëýèè•>lœ‚_òd•pI'Êꙥ×2nUƾ<;×ϵKiÅŠš„ ³œÈÛral¥;ýãá<‡p¸ ª±ÏÑ ø‚wW†éÉï¿-ó: *üûÜ+_›Ûóï¨ø‰—Tüäû›ÓäÙCåAKi7¦ÁÑðû2T¢s¶Ü^à™Ö¡ç„†íÌÀ>;§ªÃÝRT̶—´«dUïÎsÐV %Ç>Á,°ðËuM…÷G1a¿Œ Ã~¦D_Vñ³®‹ïñì³® ÚŽ;»X_ùV__úvvVÇK½¿Ñ +æõ³¢ò´›vÕ:ÎAt}KÞãõÁŠ·v &qeþѧ!•îê8xë4­Ð2€ vL#ãþ½U3ðuUд«a#6Ç()óyw×ý¹§%CöM,Š©ì˜áV¹dÍ5ÎÙ†Œ_öˆšùöWBzП=ˆØë m @S<Ñ1+`lÍòáëãØÔýnÍñ¢°nOǧÛ&‰¹ +QÁӹƒ§úNðŸŠ+8]j<4ðè^­Ü)¥—Ù¦èe›bRª}’Q¸!áTL‹ ïÔ¸üÝùæÞ•Dø6éžÊÏ?R/›š‹}2xàÏ¥kãŒlpô‡_[ñ¯Ž4ì ›á’¡ö4¸²c{¨g¢ÝJÖ6蘩){¾Ø Oø·µ~êh‘†r«°)›bøGÛô½}òˆG1†^\:5ìglÚë?—† …ÛrLö4;⬂wY×XüPß^ùÎÜ]önGÉ?4r™Û +!qV”qÝ&Á•œX„n5¶Ð9‰pÌb’ì2JWMªø¶!êsiü~fþ«¼°[?ì™M'kµGf¶¿çwþ–üvi°è‰¾üÎ2έ¥UÜ\$§ì©i•;²Ê0÷XiÐÚ¸©ªÝãæ_”± .(x%× ÍUO—û±¡ +Q龪„ß»Àé×&ÉE M Gævp múÁ5…M3õ¡BÅÌì»ËýÕ±îYJ¶}—°5Oß0‹r~ÏP#t)yèu  ='HY>ˆï™qÓô¼¥nØ»1BÜŸõ/~ê…Gþ*¡å]ì¥U\ +~zý;TÂëË+m0@ϿР+S¯›²´µ·‡±‘g„ùA¿ ¢¢/Îr ncžÿ²ÞQr¬$•-·?ÓðRojÑuCžýÐUñúÇ)\ìïÓ‚ì{‰//~Wðîú> ê?kôÍHCžÎÓ»dŽu°ø­¥»ðž¼®ô!;ò|8ñ¯YJÆå lòÅRÖU£òpšœsH'kKÂ~¥§¼ýI[W(åælÊ(%ýÆJ/.RUgƒÞhKŸ®÷¹&K&;Ø4§S‹ n_Ç&®OгÝsL˜[ËÛ×Ó±_V¸µ‡F6Õ5‡Ïðh(¥nào­Ó¤ë)ß6IÉ^ÂG­ÀƒwÔÊ£yQWÁ#اÙåÖ‰ÚæH]õr=q± ù~‚–~swa¥nŸ`yg™ 7`“ çÕÖŠ¶U ²SNÙ$ØôÕ~è;’RîÓrð€;ÐS‘ûFaW/`n«¸¸=¬äçßÁ¥ü5Ëʹ´Ü]þÄ+Ŧê8dó(&ÎÐW¼-§nMá<*|–K‰HZ……Ú¤„¬]5é’’òü{$¹l¯ž +ÿº%è8Ý ¹ãÐÌæZeTØ–Œ Ùœ fØ%Ôü“úIŽËØ3 +_,â/æºÎ/F>ûÈÀ¥úôBκ˜–fó÷;œbúë¤˜Û +x¥š&ø3U 辌Spy¡6÷êJ/äåÚ1ÎЋ ^¨‡,wÕä/u·T,uÑc6†‰±¦¶¢{†Æœë½Õï÷5l”OC)_Ÿ€‡¯"ãŽkêL55; B–wžƒqÊɹ¾.iW'îê»| B¦c†Qä˜f­àã[ÊŸ+Eù7G)™—ºñ%˜yñ¿v#3ïIYywÛÁ!? ¡Ã~j¬x÷}'<êW¹ $ÀØ5õ ?úïóp‹?Ÿ·´U†,¶—=øè\/2æO)-é¢ZPhl„†¬t¢Mð„¬à_¡g=ӸʵҧÖaÐ+KGþ£.èëŸz oÒ4”<à߉zqû{bBÈŸKˆ7óµå¤¤ü[blÎuFÚ‡Ÿóƒn~—òøÒw%¯ï|/EþœúñÁ÷ðègß[šyl)}ºÑWúDß”q[L?[[üø§AÔ«3® XÌê86m”’|OßXôq_MAì©è×5og–˜µÕWôDÊ?¿ØV䘢ö +ÞZaYËý ˆÅ¦òàndˆÄæ08j–—|½ôþÇõ~zª¶Ÿ¦kÆ;Fà3츛ZØùÕžô€Ã…ªDŸž¸Ò0hY¸OÅÃë» ¹Î|)À@U‡F"èt‘Š86@_Ùû4: `˜;£Èä9îG'‹I¤Ô”ûëÝUÁÖ!xðæ!Ö1Q‡Ùæ;&0‡¤Ž¼1Ê©X¦flâc-·Ú‡ýd#&xç„”µBzGUìµ)Vnè‘‘_¿5 +r+®3ðh¾Ø: ßVÓª÷ôBÁê :ðÀÐHû!c³¯â¥¶>þ®m¬2Ä!Á%­LQ²&ÉvH)¹«#èOûæË +`÷Ó„Ü¥~x¸}ã’Œ Á¥ìÎSÁ_7„í&& °¹"÷µl_GE9äĪ}{lâsõâžž‰·Î’ öô\î‘ÏÿbÖ}[ä0Ž( Ÿ‚’ç˜ &9²ta‚5¢ò»;sÄ|y;9ZÓ„|·6HË0u Þ¯õƒ_lŽ€^® €_ë;Ê ­§+‚BcwM¾¥“cg®ù÷m÷”XaoÓèt‡ o)¡ï®|½gpÝ€O8l¨[ÉEú4\ʾ±¡çh±iØma{ž²JPq.½lc””fããfù7;±gZ ñ?+Ø•÷W{XY ͘ÏÃøÔËóu°w3|ØGMüULJ¶KèEkcˆO„-öTº;g¾¨à—=bl‚sà–Ð ];-õPâ =ÄHe}Õ+}3"lGÎÁjýûÐÚÁ/–º*ßoO0ò””ð6•}¦·ºø¡©›;J+¸*Èýü==ùÓ¿qoÿ…yû 1&ä÷šÜØ ½˜²›˜ô˜³‚¢ð³ÃÔ䜼—L"ÎM’#~éÇDü6Dˆ¿®æ=±O 4ÝÕ‘èø'?vA£5ñŽõ|ž}Âß?öÁÒ’vEΊ»²>„Í5P³A±¯Îη²h} vZZÊ^jw{«?œm½üq +ñûê9Q}£4òñŸãäÔ@Ï.Ý6T¼3 ôL–~ž ‡Ým*{ú‹œ‘pËp)7ìÜ0)%øhžFùºÌf}]¤Tï«°ÙniUâ ?úö(!æÆÒ ìs/%åÅ&úÒ#áþ =ëùf/*vGFÈ·¢cV¥`flõU§mKù];:mc˜’¬_òÖ(³t[»¦ˆ–vhä.æ%öþ¿†01ÏÌ}Ðô¥žÊ÷¥ÿ¹«gá †ñiy,§œ” sl‰1‰Ænt‰²¾_C*Ü…x(jS úp §@lþb'üƒ¡òjkãž!í*9¤¿æŸMa—sï–ó lÚ‰‘Íûj戾­ðk¿,ñ…Ç‹<ÖÑ—{º*ìø{]ØéQ’Š¿Zø5ÿ^4*)ek½Ð÷+ ÀÕΪ õþê÷›Ã°Ç +D?ÈHße”ìÌÕ²¼ +ë()ÑÜYöÈÔšwÃÜ–wsk±2DOžo%|XîÂrË„XKôý¼(ý’¾!óªZ”vÕ>‰Š÷*0ŸZÀñékê #Øh]?6­®楹oÏØØhˆuLœK‰JÞ˜cK†NŸÜsŒ3óV‡É©‹¨ ¿äÎzgõÛÍ~büJOuˆF”ymc˜Qàœmâ|V°-­7uäÞ]l˺¹1TäQPŠ\slèr⃀æ/zàø›„˜ºÒ +Yì¨zµ1‚ôŸ­ÚÕðˆ{ºÚšÍiz¡S& x•"–SÂmJ8•ÚA®¬‡©hż[bfëú)Ó5ˆ'b2ìþõR)B|°´ác–š°õuUOeØ£Qlñ¥yQùý!zÁ=NÆû3£¨„óþu3âc×§…V©¹*m¢Ëº-ˆ¤ó2NQ¿æÚÊhåÓ@YÀÒ ¿¦14Ô=C-]›ìà*»+k¡ù×ìb¹{¾Ö_øp¾>óò"â—NHä™atܹÅ6Pq„‘Ë?÷öæùïË>_ÛGÆë3ïëqW$˜7g˜éÿÕ +ý|v–y¼ÐÎŽE¿ùž[ðî‘OŽ#[f³­CÅ/3ÿŽÞ»/Í4}6³“LI2ÉLú¤Óc4&±$–Ø{GÅŽH/Ò;RDPQAz•ª¢b{ïILfg¿»û{ÞÈs»ÿùA¸Åë:Ï£À}ç•Vò¹–ŠÇ?ø„%ažÎú8Húó3´ì°“ßýTÌÑ úÙC®^64|ìEEÿÆÉ{rJóäĤ¸ø¹žU^sç'#%ëÍÞ ¶mç ‚JX‚›—vµ»þýôœÇ'ô„¸K3=eá¤ÂØ89ïþ9Íïú6Ëï8š¤‘v}ÈÂU;ÑrŸ-ôÃRæû ÑËzdò¶WxàEgÿs¤©bņM_s°–¬Ìê@OÓÇu;·qÓxD3ð÷õácââ{zÞŸJDÊé©öšðe â•T=ì¬;pR«?R!_Gh¨£ƒº;ÈÀÍ™i%ãýäìy;Ÿºàlo× ë—Ú;sÛJÈß±`²}„Š-'2cÇÍÙq6c§<*©ì¢æ_쪉ùEݘpÚALênN‰X·ãòWìøÂ="eÐ1;w°–Í~uûøÚÖÿïŽä_ÓDü¿FQ €sã’¼;£’’ǃ=¸œü7ONU~xvesˆÔò}¡¹çs€Ü´b®‰´¥]³ccOïûé˜õa}Ê@ ub¢–íŒêcl^1“ €½8öS&jÑ-§ìñ²žX<ª¥–tŠ®ÙšÁ/öÄgŒëéà–š¨ƒQåËt³ðË4Wðåxöž›Rµb'æ/‰9 :ZÑ¢•U?Ú…z3£¤d-„ðqàg¯ ôÖDGÉã¹¾ªð~ÎűNð« '­FÏ-{dã_ì 1Ð{ÃL즓Ù÷aŠþ9 +ýþd’Aµ ЇŠ; 0éÛCÔa€‚<š AFð•NLÎÞ0± +ÐÏ„YüݲýiÃΜVÖ¾(ao—¬¤â]ÀïxX¨ã îÕãÌU/Ÿ5mäÖ-XØõ‹VfmÐD¯8h½A*ôhœÃÞñ7ÓƒVnýú°¨mËÏãß?¹æãÑfíÔòe>gÙ€HÜÀæmyšI¾VÈËa!4bÍÆÃ,˜e3 +bò¼Žœ3¥%¤+ÈŸÆ5ô¢U¯9©£x$è7AS5h–±–,@ Ñ*¦Õ¸¤9=>ýxMöýê.à¿×€/õ‘ŽÏú¬;Ià½6uÙÃAh9¥3fz麇Ùð0`6èú,ÀKËf\ñª—·é&U,Û EASSN ”´³êW½þN µ÷8WoÉN®ùzœí;Ëï\niÕ¶ãGt‚Z¯ë’U?žVc`ßï›aqF`…Û¶ÆäM+º`ÍF¨šÑ´BÆR¤–‰ˆqŠ`ùMq;7Ž›UUÀlVS³Å¸â«Üª”ßF:¹KFR^@~äjI¾<ÕSøpÕN.›w‹îVÎÚ°yÕÇB-;˜õ+.6zÅÍF,ÙiklÖ²±>zÉŽL_¤5 i ™LDú5\fÄÉM3³vËÁî٘µ›>Z㪇R??À¨ ÚÙõë{Tв9ÂÂÜB=ÎñÜñPëö|tøþ ·íeÂ,„ìñnTÔ¼–Q1oâB¼¢úP_ øñ˜´â µ_ÌôUE,™àij¿§1ÑßIØfàÖHà@wõ«1yæƒÃáŠwŸÇjSvGHè ¿¸kÎ! *Xà µäËT›ñët‹ê0À oyáY[ž†¤mº`ßO¬Úö’*ÆåçKFLÆá ²çÃo¹ ¥ûÿ;ƒ+[µ6MôÀ£Ö´† a碧™±4ÀÅnû…âÃ1¡ì/¿·pÇY%ÙKÔÊy ¯q}PÜ9¬jÌtwVD¯¸È/ ¹î%A–íMåkNjýÊŸè6†ŠQ‰›îVAÐĬ˜é§åÌé¥3FJ鬙 ›µ‹ØsÎvᔑ[ãQ>L˜UÝS¯hÞÆûUºd&–¬Р»~.ãp¼¥k/Ð,Ü:>ã4#ÒíNðÄk>dk„M^f`¦ È‚‰ÙaÓV<,¤‰º>ªDç®xøäE+©hÐ +xÑJ-ZéÍQ÷ú¨D³æŠæŒºí‘|oœß¾5B„­xHUþ^âÇ%1qòx檯©ú¯™Öþo3ûÑtkßçIb„'Ú;ž2$àTÍ  MsYÐ(€ozÄÒ£I±nÉŒNŸÓÀâÝиQYcĬùagÏ]s +»Ã­ÛCr÷Œ]Ú²dáA×ì|씎SakA<óµ#_O(ñ KVVâµ½êè”m 6S6aikNJùñ¼4§ í Þýæ6}mÝ«^™zÙÓÑ0I~]+t¨›•6Ùϯòµ1’gäôÂ-'Ÿ0¥§ê…í¨7ãjjé¼U€õub£Æz›fúõ±‘k¾Œ5ó7|\òš—ƒ›Ò7eMjq‰K€‰_÷¶òV=­ìe—¶êb#7Ý üÞ8“½:HªR5}2µ@Ã,\hÔ¤Nõw3ÒŒ ОŸŽÜðqÈ‹.bm‰ü+(PLòDƒLøöP«d{¨Ãtt|žxSºj…$Îëj£fÔu¯¦oµhãá•Ô| ¥ôâ¬Ð€N˜îmŒZÐÁcÇzê_yÚÀ¡€Çx½í¦Ôlø4Ðʧ5”Š%3r|öüh’Š>çòÝ\lÐÆú\Ì^ñt(æ²Îi›3? -p)# +Ðe³ÚÆó&lꚃV¿åa¢WíMAmCàý6jbæ4¹÷æõuï6€Ž¼Ö&€×«ƒöú°T½ân¦®ø²Ü %1yNO.Úñó[Æ$†åÁi'©è’ôGÐDªßj®ó™KÃlü„‰’¿èä  ¶æås¶ÇĽ 6ÀW˜ àñõAcÎÁÃ[Z±c+|Æ$€Ô +Á„E£Ö+x£¾ ÔyЀËZ4ár·} Ô¦ŸÏY÷q CÍ´ý™vçÖ—¿1ÊoÙœjíÛšwf…}»Þª†œ³S@-)' å7XÄääæúŒ‹€·+Ûãñ6FYÄ Zµ1HÇ® ²qAµryØðó;FU ÑãêÚ°5 ½í”Ê / ¿7Ákû¶Ðj=Î XóÒ`ËNj{Læœ62§´ÄRàý0ׇxÜݱæ–ýñÖÞ­ÑVù¼‡‰˜µò=”šÕaqÞA,X²6¼?<>>&³t¸ÆÚõA+§! ¢¦OjµÎ~¾ ¾äÌ ›¹7Ègm{Y¸U+½öøžý5@ßlØ1ùë^I›[Å*e@“¯”G\;¹c¡âÆå™iÉͧLè…#JV¶OÆNñ«Üú‚ó­Õiu ú®_ܹ=ÔLÙxÿø3áy3»zR-([ÊÜ”do[õ³  ™¶h%ƒÍÌš•aBͯ7tRFtm°€Žš½hmÁϘeœYG{ÆÂm’#ã§5ôÚY£¬y̨Wô(°î¶–ÌM;~Ã$c.ºAk;sÊ€ÎZ°V¼Û%Öï 2оot¹ÖܬƠ–œ3¯£•lºèu»>JÍ–‡T½ä`Ô´ÔœY ²hÑ&”¤ÔQÕÝM­fÍÅÆ¬{9øu¶4À¨›Ð’²Fm¾å +óñÆ8ôí*rÑÕT¼âa¢Ö=¢Ö ©…èp’Í¢ÌÁþ6èü€T¼æ‹WlX@ö¶TªçWÏ×:pí ‹1céÌYz:l­ì VyÉå =Ÿ°1!Vo˜¿;ÓfÝiÕ¬pè@Í–LåÃ|úÞ¹=ÖžsŠ9ã¶niÐÕ£[ñv&ÍÝR‹¼£¢¯µ#¥O Kpuµ—Û› /Æ»™ÅëYïöH»fgLÔ³3Áo_¤Ã7Ƙøí qÿΤ̻l÷lM0hA "}ÎŒÉ_䯭ìO=ÙÝMM¨›R×^dcÜ,ø¤‰‡ÙÊö¦¤[“mæ¿H±4ÈçÏX EóN&jÙßÖ±ôõÖÿ´›´êmm aŠvÇh¸Ýqqÿf@fÔ²çÌ”ºí±¶þ퀠}gŒM ZiàQ->yÖM®Ùž¢‘çY’U?ƒ¸6ÄgïLµ(vG­;ãĆݿ╈ý}]HOoë° úZéjJóË1Y|V­ ɹi¶Ú+o;?iªWV;¥Ñ +}ýZá@WK‰{ã ’G%†1±bÅÇ#ûuô\§Š›=ЧÀ»ú¡ +,^ŠÀݵ3©yËúö–¸uÓËAΙyÕ¥¤Â.îÎ2òºRu¼îL!–Š+.ø‡†Z¾éîPl¸»Ô«înèN w*zàæŽžò^y݈^Ýb”õÖj[å9Ž.3f¨ßÓïÓØz-rKÕ¬+W°UéÄ:ÒR)òQ;ˆÞëùdöWxÚ;ÁÁ~>ò[€Ãþ{Š+<ž²)|ʶЉäjWUy;Zsg-̲)öÓ‚•T¶îásV€¾щÖVÆ{+“øt¤‹Q`@“&ûh9S vÖÊÃ.¹ìý€Hõ}¦ÍôzÃ…*<œln?Þ£E¯¤u¨YlbŸ+ˆøÛn¹´zÚÖÎ^÷‰Ú–,ˆ_ÁÈñɈ)³}ôâ%@ë:„ðçcrRZ ›5£!núœ%Ÿ8gk†NDˆ!µ°jÊȪXpòP z àõ3gLŒ_[EÕU‹ùöÎö¢bëꪶ)tLk—‘eê°1ÛIÝňæg¾žÄœMB[ò4cç}|Ê< aÜôÚu?½x‰e±à´š›6{\Z»bÐ`êq(ºkºDŠDOÍ ËŸâdWðÁÍŠ”òß›ÊÑoÔâÖªiƒºääãYè¥rg’/=ξڟ6,æÊ—¸0"i¸ÅT±gVHËm½àEGÍ„µƒ9n“‹ÜŠ.˜§G…sÊÕ|§BŠ÷ëø˜€™Ñ`SV\òæp§ac¬gxwºÝ¾=.RîM¤_fy‡A:û_«ùßKü¾¯³‚ÞÝIg}ŒË˜ó¶·MX»ZìmŒ” s+)`m¥ öÓ ¦]Bö΋³à•N EË.±dk¤Ó¶>Ü*žróÐã.)Çk6+Mòa®R<Š”r½¹"šá+ÚKT'ª¦ÜN†þ%»QnS«š_KÉê )½3Ë&e ÷òóƒÆVôš¿Ç;çéьڻ…f¼Q¥4ÁÊq®L: +åÑúÃ4]‚Uh­±‹úkÜâŽB\ ÓµšJ{˜ŽTÉö”»^ž†¼5_@”²ÏªhmÉkžnÍÖp{ïŒUDó*9yEDÛeD(änlO—+d›’›Iº×-ŒT©p¼AÈvdPš4áùä+à|òåI¨Ÿž<Í?v3é‡ÌÈʳ´úî(5×]á’öÁ–­„‚Ýatñ–_>ff‚µmÝY]LC¼”ª‰ê`õ¼ÕÉuUºöŽ,ŸR +›±(e£æ~©¥§§VÅm{¯$Šž Ñ Iq¿ªÐð„i…†»l—µn ·+&E€Ç QçuÕo×lˆœ½ÑVÅŒW?áÒhÙz™4¿O ˆS7wfzUVñ¨I)˜´v ýêöšÞæ–XZuõy‘ôÚ#‘æJ`”F–0sº¿ƒ¾d–²&U¬ü –V4*‡ÇNõñ ž~-ߥ•£\ýÝ(cWkº¡m’wô¶›Š¥Ò‘Nù¤©žùG’%‹Æ\b“âmE>áN~:êNZRãÅ¢LôÕÊ\è–ÿÖÔÞ™å3+y“í¼E@·-¸I•ÓlƘI÷Tc¯/áÛAÍ4}6Ÿ¦ÍáS,Ñø&ç“z„þzi¹èLN&óǬú÷Ä…„Þ‰9UœßtžÚÈxÐÉàp(¥õãV}v@D_q53‚fBÙ”•Væ³(z½‘ÞÝ­.‘µ©3eí–2!GÏ"(Þ³›$Ÿš Ô˜ªüÆÇ%”geÙøÇ¹iÐë¥Y%W› 7z¬¨>^+H+ê%y´šŽµ1©zÐ%»ã¼–¯s‚Þý)NóδԲ9Ña_ñwôM{¥B¿³OªWiðJ©²¤‹#‰ÑvöÕh{u8…Pš¬Š¬½-ÖfÚ¸¥…²9öÇÅÊyO«Àa0¶+û¼ìvÅ›/žcɾðÚÕU$Ty VÛõGnî§ÄÐ_s2¸grK”¿<|ùónöo"Á?e Os0ÜûzI[ƘNа©T.“àÖÉÄŠ!$CÌ£ ÷óÉÜd4ÁÿÓh¸E€îÆ;؆ޫ5Uò[¥Å’Ë ¢®ó¹E²ŸCÃ@!wîf‡$&P~„Âì7¥¢Ñš1³Q±â‘Ê&Œü†Q} ÜkPòúú]È +y ùýfqÈ©S÷BîÝK9®U_ý˜Â<ýàIÅÙÔ´¦жžŠ¥a±d¢¥{}K7ê¡N1ˆªç*‰äÕ´7¸{š³ìê>‚Rå ò;üå$ár‚¹Þ@ -Gy.%åµþ#2ò!‰ôCj&ÿï©!·Â*C~®uå~Aȳ×ÈÇø#Q?–U.vµ™óJ|Ö*åÌÙåÒk'Ϥnu)z‹ÈÒ‘t~üz!tð\n­ãl|žìäÓXJÈ·A!wU†D'0N<{G +¹ñ´!än"$*™""IøÃ“wôS‘ñ¬3p WåYê´³½uf€ÏôZ:Y|zÛKCIçzc`MÃ2JzŽˆgœŒÏ’üš’ÝvòáÓòçáõ?|Lfü—)8qîfFÈ/g#CnÜ/ y… ¹p³ôDä{ü9,ÎðÑÐ3Ô>cÕ;gm²¶Q«ˆ®ÓôÂ8Bw*C¶ ¦Êwj˜‹aÕ˜¡›u¨á[•uÖ?r d§b9§’3%'#ÞcN\úóSÈ“0pȃç!—®§žˆ| ý†ë¹'§P:[+Tß)Ìîj šÛFò°‚ÅÀ5_%ƒ”—žD7ýôäæD|šà‡¤tÁ?^G£ÿqù^Þ‰—oQ'>EÄQBþ …oò{:¼PG¿Ž;ªåWÌZ`Ÿ’ Ð_ðèªWì–‘ Šx> ÆXz™S¦þíC +ûÐs?DÇsN¼Š"„%KòG¯à!Ï£š~xC:qþò§ßþˆ9ŸÑüSLæLi.öŽÏÐ…›u ZEW•\a‚·õŽ¡¸í%dál2‚1V×^MÈnþ5:…t*"©éÇ‹¡9'~>÷*äî‹j Þè?d5ÿÖëx¯˜êÝ:qÎ.@Œi(éÃjr†[ÃÊéïëkhë2Z=ŸpôþG0ŒþÏrØÀ­·é<€‹êxð<+$+ŸÿSF©âר,ñ©±„Ÿc?1þ¨ªVÞ%âåOÕmœ7£}ôä1mÉAm<Ô„™[gV°“ò¶ôv…Âj-ÀÑláXŠýŒèz”]¥¾ž@þõ雺c’'29'S +Ø¿ç×Ê®!TB°æ»4Šç};וc”éaKN!5hoLókãÜz¼«Mj—™ëÅrw-SèN¬Ejn~Ìi=û:‘õÓ³·¸O# @=Tž¸þ0?$<w"<‘ríYmÈe€£^$ +BâKÜ?Õ[YÎl³z eÞÑÞ:ÚŽ÷(¡¯õìbµÚˆt –±z¦*1]E5´™çå ö‹ :ã¹´BÑÏ—î„\»[òð%4äfhEÈåY!ï'R³„'ó ŧ›Iš7®nIñ¬‘Q¶à VÛp‘e7TÑm09ºHfÛLQ²šcÏÄ–¡ŒO +ªdV6ô\­Çèo'—u\}û9"~")—w*¡¨íbJE냒6œ!øÔÓëÆ Û¡sNVíÆ(—±=ÙÒ3d•5Z§@Ò ²dþR*Ûð–LQ<¥°ú^"ÊÐâÚÞÐŒ²Ö»©EÌ{™Å¬;p†ý-„éˆA2-QÍBu¬¾_^áÔwÁõ2Äœ³3e äΚ ¹]SÚ–Q j$Ë;”E=¦r¶PÕÄT=†3¬áÙUÝ7£ÓE¼¥üòç㪯>àNÅJ~/íþ£;x«”2ü(­yÔÈ´æuj†é^›š2©'fNiªß,ÛqåëCüæ€UBÓëM"©ÚGåˇªÈÂápæÜÛ*Üð2äÀå¬rÅÏ÷_Ô8ýGrÈ`›k~ˆJÞ€`ÅâùG¯RT¹å$Áƒ¶¼Û “Zô&±Z£ÇuËmRg1OìHgð¬Ñ8¢ö1«yRSÞþTÀù-& w)=w»ÒõŒÃÐ¥9d”Y¹à–÷þ3ÜÝðÚ!*½çWÔG šË:V&íɤ˜w›`Ì+láD^#ÅQZ'»•š^wk½†nê» C©na›tÑ<®&W)5TY{;AA;´7H¬Þ—m `²ç øÔcSºWŽ‹²+ø…Fƒ†Ñ¯U£zåÊBy‡®XÚn-âpõQ8r÷c8Fü…í|„#È#ùY¼¸C#éìIê“i+Ý*=1hé¦lz„¤ƒ~مʵÓacöîY×c3÷ ´ú^D{{k‡ÕñC¶>­Æ8%¶_ŒIfLÎoý52}*êöÇø<Þ [~J(m=—U§úBð„uvŽà]F[ë°šÙôÒ`K¸Ò%¼5¦Œ»Úˆ}Ý‚T©TšÒªÇ3¥ÁRË… ¹Ÿ×ßf0Ï_¾“yâúݼ×шï?¡O‚x7à0Eh3EÿÎ&ëMhÈ*è›%+©$h`TÌ;„¿_Þ'£Eöôê«¥]Np»ÌV íµV‰å:P‹X™ jSio&„Ð÷¦λ‡¡È_°evPgŸ¦ ¿¿»Ìaì‚ììÞ«éÛþÏE¶èë,G0ª§æ: =T£Yßb4÷Ó´½Eji{ª²£-¹»«3MÞk¬”« ®^-X&3vö¹‰Ý&+¹_ßÖIЯ'ôÂ95?ÀÇ.:¸O;üõ¢R½6Èc¬ 8S.Ých­Óu‘º¸Õ7dÌCI&ÖjLh$(ÔÑ­y%ˆ¶D(¡+ŽÐb'´X?°Ú›¥ýq¥®Ôæ°Ìttn QV ŸÖ=¸º½ñÕÞ”Ô½8ÜÑï²*Ú5Ú^t²¯²­SŸ/ê²Û|Y$¡7 +àjn¹øÏ„|zhv%÷œÊ‹n×È1N›”àWãSÇÚ +#¬”÷wmM…þ>ba@ǃ%è!mK•[%)÷h¤uNU{…ºUøN)RfôŠE]"c™ºÃ±tö×z»»@“}RȲVÛq‰ùûþñ–‡™Q2ç5¤Š=‡½ée"'Môb¯º¹È"¥%ÛHñvƒA¤êë‡tË:Ó4A¢£OPäֵÚ¹»tᄼøA@ +º¿l"dMiˆ)ÓNeÀÒŠì§çMÚ…Mã¶6ªOß\Ú/n¸§4ÜÒŠ‘m½-¹ÚΆa#oDÛ”´´q6] +Ûž—G?ô¡ó¶ꢗL1Ózć £zÁ×mž÷tëÇÍBä–UàV3r튖buGw¼¥/EÈÒD65©B)tkD©ï1$ºKgËbš[ÕâöîO½rYÖ¸UÕºéSÚÖœ΢‰Töy¨¥õh¬­ÿx&Àæ4Ã//}â”–Ýwt""ìª^ŒJî@I€Zu{Z{†àdNwDm5æ\5zŽˆ¡Ü¶ðÂûz`»JCÓwSçuŒÂm7¡|ÛEb¢g{*ß»¸I×½â”+>eå3¿‘S!"V¾$W&_ô›˜äùQI縭¹ÞÓOM³È‰qF)ñ­MÁH4 j‚>}5@…îN7‹¿ùò£Y&ãó¶ôk_û9@hÜöáËf M9S>IÛ].˜r´³wF…¢ÍÁVášW@]÷qÐk>Zí©dÞA.ž± ‘Ó.¹|ÆÓB[õ³ «^iÎB.XqQ*—0 ºúèYUíËýA2êû¬Ø¼uü]»—\5g§U4ÈASm좓T1îáN¯ïk£½u;U+Ç¥jŠqë› ‡m„):ë`×mÂ/³Â¾-_Sùš ›u0Éd|o>œ•úv'xíA'æTrŠJzÞ(À‡Ã–.Æ€A5ªÛÁ:£žÛ«µÒûT&‚^£BÚõ‚ÒA1cu‚'Üãð‚šê·~aæ5¿´øÃ¬¦ê••QpÃߊI\Ð +0KjÙlüýp[ѽ±öЇ‹zVYÐ$„õÑ‹û¨õ/¶¬2ñg[ïу¸n¬^PŸ.hÀ/VÍðø .cVÉÔ’sïÏtÖ¦ýí'AÜð´löö6÷`ˆX¿æ%UÎ9˜Õ+^ÑñÜGÝ^€Iz¿hÙÚøac™²7H(Ûó’*ö‡(µA>cÕÁ„2°ßǨȣQbsW4݇Œ›èA¾Tã⇺ÐïfôÄ‚9.{NIÚtË3¤WMð ºÆø9`íg”¯§ÈwSjîl:uω)88>Cã!W*·Øã¹¦%ûƒtÔê£nAÏMªðéJ\Ñl?*~T^>*‡¿ ¨šÆÍ"¤_ÓÖ0¬äæLi)™k]Še‡X¸î"Ö/*ÞÏ÷fßÛ±"r›é_Ç[º¾DʯÇ9S^húBÕ»'³?ÔÌÙ÷³¹kh𼣩dÊ!&ì2¦GËÛÛP‘sFVͺݸfm/ZsvÜXОWºï¥Cë)¾¸@¯S«æu¨øaIîÃCMÊѦboˆ +ß @&zjÂÇ:+^Nи{c4ô²à›~TÊœ²>nÏÏïØ$T®Ø 1ËøÇÏcTÌ÷*eËMj˾3wœa «}¿ëDåÿkšŒÝ™¤ÇÍäü1 5ÿh–ß»f†%ÎvV<žî{¸ùwf:+Ÿí9°ùŸ‡èˆ3lçܘ3À +6\”êYu͋ɞâÐ±Ž¼;3ò‚ûÿ4Aþ;Íäýk’%:Æ×ž`оÍIÜ_ƛۖtUï'Û²oµåÝ ö•‡}o‚Íóz·GiÈ/SìVy}ß§Ø¢ kcñ¼º(jF™u'¨½:Áƒÿ'6ü=ÍàlûYì …\²ê¦6ìOˆú÷g$ûÓ‚ž­Q6cÅIªšÔ£Æõ„‚•á¶ÞŸD2çâÀX%£fˆŠþ:JÆ}""]˜Ò¯C¸²oK¢ùž²[z\€ý¹bdÒm!ç᎑”·®EÚ6ã²ú°‰ójD씲>ÒJËùsÏÌoÛ™¨=.sZÚðvÇ„ÉþìÆzй+ý•o\‚´k²—']ô¼Wÿ7Êf~÷cJ×´…z3¯mÊžoÛÉ»nZí¾—Ó´j!U.`ÿ»Oh×ÕTºïAe­Ê^Ï«Jž¯{4¯…Ç,è1É_†ÉC/¡r×I.ß°B“çUµ¯';ëž.ªaï·ìø‚‰žÚÈá6Ðí=êÓ”¢>y݈JZÓÔGLŠs.϶ü9ÓQ: ÉblYQ™“=%oò‚¸]²úhŒÁø6Šƒlšª>n˜À“jè‡57ùe’'ùWP¨þ<Åám±¨ÛC4ôŽ]òe„P·ë%TíxÈðU¼3Ù,Ø›âK–ìÇYØ5¯”àç+ªÊ—kÇ9:ŽÆäÿ[f¶µQ†Æ¸±®šÂúwg,ä—FÕŽ‰˜³g#äÏt×=›ë©|´ ªzº¬†F.õãÓF%u/&d ¯öÍlØ_.î;€Å[¶š˜A~Ò…!vÂÙQ~æŸýˆŒ;­~Í^î=]V•<Ù·ÕÇ}vϬ驈šè*Ö©6ì³—TýÙG®_ÖUE{Ò¯.*sïn+ßìØÑéûn\á®–¼¦¯³c£ŽÖ°ª‡Çu/½xg°%ëΨ¤ðÖ”¼"t¬ ü¸ûûŠ +·¥…ãe^¶àâÎô#bN0qgGxÙúšÓŸÓÕÆ¹¤à˜hÒ¥C;µjÇÜ”¿®mˆ[R> ˆRïyÙ‰—†y)çÇÅEw¶Í„¢EMcÖðž×M¸"yU]¹ÞWÿzY‰ÕÒÓ¯uA£Î{kRÿöóx_ÝðTGþcKüÕÉŽØ«ûNpÄW2ó³S²gÇg8l¹XˆM; ù·Ÿ†ý+@jØ"Vÿ/£w•òÙ‡.œSV>Ÿîª|¼ª!Wî˜IåŸð´mSeÄŠª",Ж{+Ø]ñ è—‚}?©ÞÄλ6£¬}óeˆTûÝÏ"îÙÐ;VÈÇ 8vUS¹n€Ü8¾ç‘…šRÃãæÕÈScžT½ëÆ•-ªËÞÎtß›ì,¾=ÑUz÷Û ¹l¬~·b…¯™*Þ~öb +¿z°%ûñUÿ&7}ö!A3½%¡ëhÖ·1.oÇÞT²¡‡}\í«~½®‡m!±_)õ‡î¦Êùžò7‡.D°f¹K}õ÷¬°Ô¹®‚°µþЏÅÞÒ°-]eÔW/¢lI]5ÕUòàË ƒrà£@‡¹»Þº„538*¨‡o;iCØ¢}®tA]õêë8¦à=Â_“LÚ®—Ô°Ø_=!+ݲTÇî Ñ™_ÆYôï“$øÑ¦òhªY´?Ñnÿ>-6þAFó÷aXþ²üf¾¯üåºðñ`”Š]4˜a†}Úwa*]8ÐWt<8¨Åmš«^ûÛs¯‹KnÎõB^oêIy«ýÈĹ®Úç;rና°¦ÖU]õl¥úv¼£ú±§¹ôÊ\7ìí'¶¬„FïÙQéû.tΆžñ—–ó—·*æ«§!iQî®~öÕMª:À®¨>U”…ú¸‰¿÷£^tÒ>œù||¼—Pêî­ŠP³þøâÀƒþöcKÿAxê?®hKŸNг.O +s..*`ï&zñ‰ãíµ64ȋʆè%M}ж!fE ‰˜’‚îŽKÊÃÖ5MéS²†ÈÎê÷§”µIg\Ô¼ëÖ¼»ËŠÒ'»6XÊšž`á<è…%þ~t<ç]i͹2Ò’xÎCO<7Ìμ¶¢¿ú2Ožt„Ÿðë0÷ÞÑhS턼ô±“xÚLJûm€‘ú[/ôí¯ Ýe/v¬¨œ5€SWú?,kÙë|Ö™«'Fýf$¾ü}ýæüŒ4óÏ=2}ËN(ž‘#3åõ ÿ dø¶’°bøV•ýl®»àÖ¸¤ôæšžYì…ÇÏtÞZTÞYë+{<ÈI9g!Äýhå'ÁÞ’W>Aú‹ªº¨ýRÙ‚ +àMíëyEÕó`OÉ£uMñË¿†±€'j*ŸTVGê(çWÍØÜÏÃè®§©4¨ªkM¹¹¦=ßê/¶ï¨‹ù6†¯öˆ²ŽtÇü=FA|ñ!2€Z+<ð4¦.ªr;3n¬k‹ž à +|Ðvù››nLí¿§éôO’Ñ»ÖÆÄµ~€[3ŸZ3×ÇÐËÞ\È »ú³£9ïõ§(¸Žà+×4•‘^bÂ%3"꬗–pv¾\“P3Ò +ê½ùk‚€ú¿9:wÏŽÎùâFçm\:Ú–zmN‘wÿh + ߯Ãuˆ¤m'±çm}¡³þßÿ÷0¾q]ŠYêÍ ´$_úï|s÷ÁH³lÃA„|ÄW|E•íùeûDþ_ èh™7ß[ô|RZpçóuœ™þyðX³àr÷Pi3¹·öܨ¬m'&kËŠLÚ4VG¬ö—?&^°à>üº¬ÄdŒw4„¶”ßä—^÷pK¯$U¡Á^DÔ‚³¨@ÆúØy§;«ž®jaÑ›úÆè ¢øÁ¨(ùaÊóJÐÃ]+,þ›‹Ñ°k&Ì÷Ö¿Ü2âR·Ìðúê°M}É“=+8vQz>ÀJûÝA/¸¾m'‚fº«^Î+j–Õ5¯·ÌõïVúÀÏæ;+ðX!ûRWÃÇÓ³uQÛfbþ¦›TÖ½ö°².XÑ1§»ÊîMÊááJRѺÄG'¬„’Ð/6ré¶±æí˜(ý’›ýáœüñœ¯¹øî†‰Rúm˜CÙ4aӷ̘ô]´ÝO9²‹ÖÔõomÔgµ¸7§†x™—€}³¬‡Äxyi¿o袼N_ÓT<ä$_™–æ<[Ñ”EÌt•Ü›h/{}äKÖõbö¨ñfˆ‰š’U¿;rÃ3ê>,ë@/ÒâÐ.ØÇó2Hܱ_çXÙjÞÛ¸‘WúQÏÏ/õ¤\ݵŸWE%ãsüèhÎû2Ü^7Cbtø„³˜äÐ_°I¡?ib^ɛ髎'Üúe¢ýo@»ñ5f­hòMJ¯8éïÏ*‘a?ò“/¯±™FZÁ5¯°òù‘·™öÅE(ß1‚ß;“¯èpa¿Øi)çÍÔ” ‹ššØ{cêpKîý/ƒ¸Š/Àþ믎\ðMSúvÛ\öaDœvUOL¼²ïAÌi*ßO´g]_ÕT†­¨ o–ÕõQ; ÉK&h’žržñ#ÐËÛöÆÂ™ž¢‡3Ý ‡óÀ>okc¶mõ~Ãr×-u1NÚ¥qYvØÿ›'¿Oàª~~yœS8ÖZxÇÇͺñmœ„üð™OVúÚBMÿýë•ð¯i:gÛ +Ž[Qgß^í+‹\R‚"v-U ®ÚøÿΑñN (‘ Šøm´§.åŸómž/n˶· Ê¿í¢Çý&©x|ÆÝœöèËÆ(}~fT +Šþâ%WõË÷-àWL!Àïy{ð¤yEÞ­AAÌéNÈÃz"ÎL©?ˆ1gÍ”Òû‹jl✠+5%¯~êâÞv²r¯¸¹Œ Ëï.i1ñnaÙC7çê¶•¾¢B}\UÁßïÛâ€ÚŒZ×V¿x÷ñhKþ• #às,¸Œ5]}Ô„4åÂpsôi%á×QVæà5Fµozq¿øùU@Í–{ÀÏâ¼›ýøø³üÊÈÓ- '­ä´ß'ä5/õ̼ÛfZÞ­9%$jT\rÏIO½gßô òoôã“ÎtTÇœäBà Œü‡ý¤‚Ýåáú†¤-"eÛÔ”·¦‡¥mšÁ± Êâû€–‹™U"ãt¸ìÛÁ®ºO‡€—ö–¿˜ï.~²¦.¾©©|é¢'Ó!£Î÷Û\7èÅL{á-ôãeEMä¹QNÒå]cuÔ_>\ñg7¡|F}?ÄÝÜÑŠˆ3RDÒ–¾þ㦡âõ˜(çv@”÷`±·èq|Ö_cÖ¦ ½¨¾YèÅį+!ovtšˊ‚³]…÷ÆÛKŸ®‰uëFý ¸òÞL÷±ÎÄåNHjü”Üóc‚²{þ–¢GþÖ¼ÛC₇[V|Ŷ;Ûz0ÝQòt¶£2jFZþxº=÷ƪê8?­àµ_˜óçL'8üÐMGº¸E·ÔÔ‹Ž¿züõ²º!zQYÿvð.ÐSiCìËZxÚº“¡Æ¥]`ç½ø¡«òí)36á¬À‡É.ðÛ.ùp•œú£¡&ð®[è( ·Q®9iɸiY<´Ô .x>¥ôõùNt⣠gSùª©)ÛCϸdÄŸó›¯9ᬓõ˺¾$îß³Dĺ‘´ï&VÎt–?›‘>›“–„-÷”'˜ÿv¬5çþTGÖÕÿ·D"ìû¥%÷6-uñG#BÑ‘ŸÏû÷ ƒùy–x€¨ecM䜮:r˜‚ý>ÕÒwàŃ֌ ±ÛÖš{Hê¶’xšê¯ÇtÁ#OKJ_þqÏÑTp\·‡^|ÉÎâÓÿf>Ît?äg?<ÆÃ#.­—VrÕÝ\±a¡UÌi`ïýíùWû°q¿(‘1?¹Ù9§eu¯‚j|’áø%ãÂgµ ÔöBOã¿(í¶“ýþ±–Ì Qþå‰6нy 4Ö×Ròh¶·þ]°·úÙ¤(ïÊ”°ðÆJwÍ‹Mìãp{îm.ú—)18bÛD.ôñò.Œˆ‹ïèÉÙ +*cÏ+c¯N´ƒ_ÏiTÔ¬k:böõÅ~dò ¨ì™¨æÝIimäjdìȮŸÙ¹W”4vmâ9~Í»ó[f|Õg@clê¡€÷¨‹çÞšlϾ¶¬*¾¿m…Ä Ëjž°òßœâ—Åìžs´-?t¡Ð?]ù·YŸ.ÊÀ¯€k¿û}²ôD}wV‡J¼¼Ö‹ŒŸ•Þ_S>ØÑƒÂƒ)aÑÇû^NÂåÕã™V +d.µ0ü7 îã­C'¦j×Êß³@>ìšêb6´÷À^e Iro»„ùŠÒo©Ñ)·÷]hû÷OE¹°…{lÑLgõ;3áÓÙ *cÅÐò‹*ŸùyÅ·­ P/'çÆd{áÃ/€Úµ#rF·€µ¾{àl­ªá'D…·Æ„éÂäóÖ»Ó£ÂÔ‹ €·Y2À¹åïn¿ýc±¯>á³[à|âHkþc;ùî„ ð)]5‘;vjýŠ›ÙOHÿ½rm¨5Û y³¤ª ï‡;y¥/DuÑg¥°˜ë‡ƒ¤ê ºî­‘œvA=7#*x´®ªz½ÞWõzU_Å«Ž9gâ”Äoziˆy ꣗]xÓÍÎ}ê—GÏö”†oêJßü=‚(ÿ÷4¾ ƒÇmÁ&^’ƒÃO™aÑ?7g^÷s3ïŽ ²îl‹_ý'ˆo˜ÓÖ|402¯.!©kvêx&Ë—\ùž¯!~ÍX¶a­‹9Aƒþžc·ìùšêVLµ1ûLñfiäïLņ­â͆5¯Êx4Û]pïÀ‹«:òÓÑ;vL&À‘¹dzX¬è”ãÏh>ûˆC'±ÐÖ)‹}µáSå¡sŠúç«d–ƒQ3oÀ§,êc';ªžŠ@÷–4ÐwÛ€¯_5Áb'¤Å·—{ªÂ¿ $ÇÞz¡éiN»ìiN¸¼¤¨ ß6b2ŽÜ´ÆE3*ÓÎ˹:£hLZ24eº˜y¿›p gLøÄó}¨¨3:Ì›“.ʧߗä q;VJ±–ué8§hÓJ*ëAF¯Þðoýíà‡#mw–Õ¨øU€èÆäÈwÞVÌÇn]ؘ¨êÙœ¼æÅZ?üì’”:ØVûl¢òþ‹§™±fǯi¡1Û +x«ŸV³Ø Ÿ“—Þ›î*¸?Ñø~$rÃL©›PÀSùÀ¾Èk"~™“•Þ›l/y8È=™íiˆ™íG$õ6eX‘|iÇŠÌæ%ŸkI87#ͺàÅ]\îÍz¼¥¯Nþ:HEùäõ‘-5Ï9ůÿ5Æk߀¥M·ç]Ÿh͹4× º;ÓUñd´³ò¥UXv·âÓÓ“µ‰÷/ü5ˆ-9ò¢óvmUÑóÝÙLبs]à§oO¯!1üúÄ«¥ïîœà<ûkÞ5–¾Ø7¼Ø3½ð²âþÐB_ýc”Ÿsc×Eªœ’×½˜îª~µn‚gÞ9oÛŒÈÞqÀ3€:‰ë*{ÒÕ˜xº½>ñŠ¿­æ…Š˜vs²¹¬©KZPU&}v!‹¾ÏpwSjW Ø!Qö¥ 5§¨ž—לŒŒ·°2¯èI‰¿Ot<Ú9þlÅ‚J’€ïŽvÔ¾Z· 2WÅ¡“¢Œkã¼?g¤E7Wuµ¯|€Þ÷kÒòÛTÖ×ã9éCtô–¿®.|2)þpw²-ýÁ¦‘´iÇç0+nj9çäÐä¿Gé̯ƒd覒è$>jÍtU<›V×~<¦’‚z&dTVõlÇ Ïûç ùŸ ™üŸ9áŸSÈ®–gÜ–Ä_X6ÔÄ:x¹Q¾¶ìç;ƒèÊýa<ú‹ù×dú[ ^Ñ8Ð[p{ž±ÔWµ¬FDoš±i‡>rõ† ói׎NÛ0§©;t ’¿¸ðE›RÁ‚ûñÐÅ€.÷£ÆÅå·§;*îÍ)A… ‡Øñ—¶TÐØÃdRRõ$ØQöÕE­Ýµ#S6t°èu=<Îßš{g¡¿*lV +]Õ7&n:©`¯ øª‡ÿg@Töx¡·úÕš·«k*ØÖ#²’¢Çc¢ÂÛ{Lî¶—³Ü{¿¨mˆöKÁϽ-O§dµ¯Ž¼ Ø¢˜?Ñ_Ñp«gûiyÁ>Ä» ²:l¤%÷Ï`Où“u€Ÿ¶Ì¨¤Ï>BùжêõŠº.vÏÎÅMwâ²'D5ܬÜk†¦Øß”„óŸl䦋‹™Pb?Ùé…·t˜ÔÏ€.=ôáŠ6lõ1náõzé «èú² ™ºæ@|ZÖÕÜŒ-ù>ÒÌþæ¥6¤¥/{‘±çM””K3½àç;M ïþfö÷ãLOUmت_pèá³vôšéNh”»¥ö¥•_ÚÌ:í‚-Œ-]Ö–Dæ¬:ØÂk›FTÚ—ÿŸ½÷üj;Ëú=_Ý'vuuWWw…®àª²Ë9`ƒÑäœH(çœ#Ù8çLÎBB9!„! å,D°«ºû¹ó_ÌÕ3÷Îy5/f­a=‹í¥%$ÿ$ýö9ûìýýüÂ9j\QD‰­Ü1Ñ;.Î>F-ÔÜi91ƪøÃö»mkšV´>N¸i{ =?ÂÎù¶Ÿ•ÿÓ¶WŸcÒâfn§m•7ÈÏÿÂ>…®ù¸)îÞ_å3SðleOþŸMJO8Ç[®Gôø’ùwðkˆüÓÿ&„¤ÿœ\îy˜¦o׈­ ©‘YÖwu?ν®=µ4 tä4»Äå׳Ø?Ëköªø°Õ~bº{šTà…§Gdø\÷úæÂóòïm¯«´½h9îŸå4:&åK/Ñçíý„ë þ¿R‹BrJ±äšù' '¤Üüß-?ƒÝØÑ÷H<2òm×(áº{Œ’o¾9µ=N-óÍ2¼2N]jóÃæo6)>)¿iå üÜâ£ÆcÆÞâ¿Ì +²~÷ +“þ/JqÙ×¾iVýæ£Øö{.fQ‚:v‹_I«ñH±y!¾°ežk”œå™ÀÌ/é7Ö(ùqRR+’&,®ã"œc¸›ý“Îá¶óž rÁÖ«ì%¹ø©9B]“ÌRÇ0æŠcv&ª ·€ö6̓/ñ ‹oÈùú>øé1Nå©uæîÂΔ"È¿›#¨´¨^@ŠÍu‰RkÙ^ANIE¡_ùWç@íÙÝyrÝÁ2ny‹¾êúù\€Ü1vŠv,í¤… ¨Ðy §×_5ˆi…dÏ,;%*ÿÞ5N)ò̲à9½!¨fƒ¾$ÜÖÜ/;¯èÍ9n~ZômÌ@jŽêHu¶çu'Öß #j.1¨ä£ü*ÂgÕ¯Ú.<Ãg}"Vçœâ7® àÒ ÷j¿Ÿí(ýfñYóY 'kÃjN‹kšZ*í©úNq¯6ͯ෭÷o¬¿i=n¸[ñíûÖ_,ËÜ1PšVmî-"kJTûýö4½Î£ ØaYëoë¯^¸±øzJÑ]úµéic:`˜¶—ì’ĵÖ&¸-~u;Á'ã4¬¼†_™`æ5ʸõg¿’TÒ±Û¢f.f[K©rë¨Õñ%¨gbâ&. ÔÒ¦Õ~T–í=é–ö9!cSJkÙYä37[3l/ʾ +¨€Y,-vö¹|ÊŠ”×ä™N± 6'¤ –€ºWºøsn}uÕò¤êëíxÚúâ’¶§àæ%Þxßv1¢âü:!Î1Í,ñÉù­kï1]€¿·†[Îî|¦ì(ü½RRô*/aê’8SëÉXUA)»ÚõžáŸ`TGÔ<„kŠZdy;9w¿áç£b¥Ÿ\ í­ýËÒSè0¾.Ùµ]™»ÓvaãúJ@ʪÛ"f¯¿Aœ™ø¸íÜ-÷$ò²c~É ´fDE)©8¿ŒQÜ7Þk¾–³üÓļ˜h–ßæµÅeÚ‡ׂ³ôjÏ9äs™°ôažZß]Ñ]ûõÜú¯c˜ôäÅ…—-§ wkGµèæµ`m„œ“Z3¨a68F€¿ïÑ—ýÓÔò€œßâ5»¦…w¸Lëkb¦OÑ×áWÞí‰é»E+bqTG®r Á.­¾‚œtLQk§È7’¦3Cüêoü2!Ò5J+uóý“¤Ç(.Ç>†¹æœ&f‡õíôÅ~J…éâªõ.Ûøž³úº5'®Á”ï/Q 13¢Rÿíâó¶ÌˆºS¸-â½jFCb…ò(0·íÃÍiÁtY"uä$µæ)ÿ³uo¥çqÄÄ'†Ô¬†µ!dƤèú—S«_;†kÏýc]Àßç½R|vÜ$↠‚¾f{ÓvÄÎ…ˆ– õ)EXý#øYãƒÆï‚³¤RÀiéÞ1d晉 èˆ )*Ó>†¾’ZokŒ-egÝWšöНƒ +àjµo–T5³‰þ9ù»ìX¿¨ñòÒ¿e¹Ÿ]f~N¸¨ëkûIÊ­üJÝ]}29Ï!|X‘tì.ò(.5±xKA*þÅ!éÛ]â±·'ñ·A=Ô­êyzÀÀC%“4ôº…“«ðô½ÕÞWñÅîG>¼2†¹¾2ŠÏÜ‚žµ<)úÌþ®ü¯›ïpŒ°ËÜÒvÌú0·vk‚]î±=B¸á›ÆgGU„¤ŽT•SÎ)b®OÓA]x ?a{ÙðÍò»ºïl¯ê~tã³#rFÝŽ–Õ’º†Ä%ã7úäb`—›Æ»Òv—|¶>9ç˜@§¯¼E¬s{cˆUªºùQÝSû¿TØ +[SBˆ£Ÿœý›ùé]ÈùOgعŸm½…i„˜ÅWð3¶ÇM߆R¿3Ï''ŒÔÚ’P´Ò;ûäþ Aí¶—¸´QÕç^©8¦ç!£4ªbÔº'±·6¡gæW}®íÈý7Ÿœ\rRòêäÂ+b¦{†^PÐ*¢.Ô=•šÿ rÄÑe×4­:¹ÐÝí‘í8‰»±5„Kw b/Ç솄FBö+¸ýSȱ¥AÜÍáqPÿt8ªïì,€Z £TFä¤âˆœVµÁ>Ëß¡3mÄℱƒçC¦;†ZÏÚß7þ´ü²éDPtÛ¼1Jèò{ðãºû˜LÏL7`H zGÏk ©ñE+ïëŽo5Ÿ È eI£€“šÞúŸáš¡•,ID 3Õà‹ÝS-sÏJÒ>,þÚü¬ñØÁ²¤Ç¥ µ(úš~Z|MÈŒê%ܰŽKèØxÿ ¡À1Òr%0ÍñK)…~}—p¼«úYomz@ÉG‡´tXÃjŽÏq;!gkŠR`}‡NK­¥™»û8uÞÇ'§•{¥ôrÀ»51-òÁÂD…TÌFË+øyËkØÙŽ‹™â~ûzñS˽ºŸÖZÏyäøâè³tum€X™KËJ÷Q€÷)IE®)—Mgìã¤B—Jˆòª»Ùkc¼†QaóšÇäk«ã°ÍavAèaÏ42{ñUÓ9Ç4:Û«!WÄl÷# âvýÓÖ4U/äGЮí—›´ $@‹õôäúå÷­gVagüz6Òoh¬’²3ÔžÙ³ +9›£ôüõj¶kœ^Æ|3ÐAu@•‡@> +ØÔúÎ[£Øô­a$¨-§ƒSÍgÂ2äµ œTTŠÐ® V©OÉj Ïóñ µÂ#Ãe9†›O®¿©øëÖ üBPÚ… )îI\Sbäâ[úíµF…SF)ÙšÀe®¾Až]yÓzRÓSù…º³ø3Ðu1½„²9F/·<‡Ÿ0Ükþë ½ð³·Äü¿Ìßo9ç#ßVw6|'ãTüaõôÌ®¾Cà–ãKlo«~ÜG^ßB\°n®¾',¼Á¤ÏvVþ)¨fÂcsböÊÛ¶4Û“²ÏM÷*¾tŒ"Ò|Rì°ŠRTqZRvíÆ»Ô)ï"ºU|¨c™¾ü®éGY{ág³Ý߯ö#nùå,TÒÒ.pËð·= –Ü“ÔMw헚μO7û›Om¢®,¼l>ÖRëãf% â"‚*1&b’VÞ·œÕ÷”þIßUõmgáŸlK¾‹)p%QM;ÉúŠ˜¡ê­þØ¿ ÁYJéö2Ý3‰¾µ5 +»´5‚¾ì™¡»åB¨ú .ó>*çß?©õyž)BÅÊ»ú«ï*¾qŽ·¥ïZ%‚ЛmiÛRdŽk™»>Ô˜æ‘b +’f‘ä`]òØ¥$Uk4ï¥UÔlàÕ6¿ŽÑdŸÄçyg(•©yö“&k[Χóê¿StA²CJ!i}“ayRû×¥7S[°‹~*koQÀuéEb¡ûîÆ$­8aë}ì˜b5/<‡Vw•|~·þ»§Ýütùu[zÌÚód]ÙÁWôµ~o}Îi#øô°žOéùÔ–u‚äQ2šã󛓬ÊmÀ³É&f‰ÇÕ­‘mýø ûæšOF«5,c{ +‘î›i½l~RôוþúÓÈAÚnöÊåÖÚ0.cs„Rj¥–„4Ôºƒ%>+nä\#¨›†»%_­¼i9 ô!І­Ç¬OÛÒÂJNKJ“…5ÔÊÁ¦LË£¢ï–^Ôþäyu±ŸS6ÄÈûý¬¨ø«À$£Ê?F¸µÝ½â…ç:GÐÙòöª¿¶|ïÌe~ƒÍÒv×~ïmËØm:ã‡]pOàn¯á³uZ~žéªùÊ Ø×1ͨ´¾j:nyÚxÜò¬õâZ?4#0‹¯Iš9¤ä¢DâùsuŠ˜íÓÜi÷«y¨ˆ†\V“«Vû!ç=JTž}qÍ5ÉÞ1sжw°Óã¸Üø‚ˆÒÓ[ýr\‘} ùœíYÍæÇUßnO1ª¢†.áö «IÙ]û…c”˜T2‚JÜíV:<Õ.@áSׄnN³"ÖÞ'+cŒò¹—„kKý”¼…—­—=S¤ª¸A »{ǘ•¶RVÈ a†Œ\Ôêüªc +³-#”µ,H|ŽÕº·$iO,tõ®M²-Ã쯤Æ­.¬¤Vúgq¹>Yjí%F½_ßÓµ­~újþ-=Ïòyðñïλ“»Ëâî(ÈSÉ%‘ lf¢#9± ä%æï<ÔÜG¤MˆÊ¿ñª(M¿:Úî­Š;ã‹\ŽWƒ¯ôhi A³ˆ•Xì¼³»t¯?2/ GØ(Ð+‰…»Ï»æMÝAò+©¥!%.' ÃÞrc³žÍvA/ú¤ä’„¾ƒ±=EÊ^€ŸQÝ/ùRÓõ©ýeÛéö-|h€°^Dô©z8ÎiA“îaݱArú?i»nýÑ9ŒÊòiÜ[ž¹K_ŸêFoMŠ·FxÕëý„k ;Úλ'Ú2„Ò±ØêØ=Âúä]òÖ„°Ñ>LÍÚ"gÍ?mN]£uÆþ~~û-ò¢sui­ŸxmkRõ*Å÷)oþqÛ…wôœ/hÞ|[y2>Ç„:rL³Êý +Ú§à@WZ¶AÏ;Æ[Î/½¬<ášh¹7²ZSs&.Ñó@o¨>ò)ÚI€}²b󌟒R¶ö~néuK†[J«ßçVéî¡oO±«ÃZÊ-Å约Ð׌÷ʾ´Ü+þÆ9ÔšP ËCœ2íݦ³Ë¯ÐEQµ˜àB¦©%ÅŸ3³~§ë*úLÛSòµcœxÛ«ä·Í>j;¯êiIK8(ï <Ãü¸äËAFîža®ýi’•û§Åg-'}ZÎô–xc€SúGÝÃÖ³A•ˆ3Šh ³TQëW‡Y[€-jv³Ww¯oþ-.g¶§üà¬B¯ W3s( ‘Û3𢀠+Sn…^Í4pКÇÕ'µw+¿u Ã3œ£ðl¿œX˜1 h2Íýæc^â'–Í=¬8æi½¹3¤ä¶Ft|\ÂÒu'jí¾».4¯Lˆ ë“¢Ó3Ø™õ~øu¯ŒÚ,½=C*ˆšxăå®{©¹tC:įЫ¦A7'…>%þ¶OEkðëøè•|^HGmL. +X!- ÓqÑ;&ô,ò©s’Ùc4[ß ..÷ÃNŌֿÙû†wm\rÌÌ„¬ +û‹,jLKZ›†pMË O ?ØP×C&.>lázZ}xžŽôëÈͱEQÇβ¤+6Ï¥µ Øú(:3ddµÙø_V™{{}šŽKÊ(qM Ó¬¯ê¾{G½ü¯ïÈ?ÿë¬(ýßÖß7Ÿ‹Åt·”U±1JÍÙš ä{&Wýcm¶GšÏ۞祻{ã÷ñ9i;µÎî{NþÊ{ZÎòËÖsáIØõ¿›)Í¿.sÈËSmW•«~˜ÑzÑ+ë$8&Ú¡@¿–8FÑWÝEŸYž6 Èî²§÷·§$û öúæ áš[Æ…øÔí¤ V±¶¯ùG­¤üóíôåÐ ­4ªKÍ‹L.óLã³<2 já=={ù->mý ä¸s y%¤æ6Q"†.ŽKƨÜk;ïWŠBz!Á#£•­¾«>±ú¶ø'ï $Í-gVu÷ÆŒOG| +1~[й±»Ä!Ƹ8÷,µd}sck’R¸4@Ê\¤ÜôÈ9 A-횢܎høx¯”Räž@^cï¤é~Þ ÷dóùŠZÑtñüš¾®AÞíO5}õ6(µ)µ!©'7ÅuÔzÀM% / ?ÛÇ™¾YVƒù)ð±»æÏòNÈqeoý9;¨Åq%»-¬e¶,ã®éŸÃÎ. A¼õô„BbÂÂ'GôÄRÏ4¡8ip?¬uÜÝ[ìè^$ä*ûšÏø”zhÅsMâ²gÚo-ïÌþÔ5¿¾kv¡7¼cüqB\öÐÜmÀº>6wu åÂê;è9ÀáWÂ:&4néh_éÇgZžÂÏfXðÖΞ$sa®Ü1»é’!²j>l}V³ŽpJ&E ©µæ2“&òï«BaXE*I(q±fõmÙ˜E@/ö<² +Œ/ëG,4`8ÞÁz÷‹½åÎGQèZeXÇî-utùT\ôò[äå…§õßYžT}ã– ýjr à/ÂÁ<ŸVëü*Dî®…ÝVJ·šO-=ªÿÁ>€Èð©i-~›Æ/¹"iwhE¦7È´ ©ïñîʃñŽÎg~cj@Z_ù^@uYÑÐkF>:¨À]Rnc’]1ÿ¼í¸¶¯åkuwó·ÊŽÚïlÏà—|©ëIU©uÒ‰·“¬²­IVùÜ“Úoä’›ÿªéÎÿÃ<¨+ýg“A·§%0爨Æ/Ïã¨+[CµßgêA¼”c~Yð'Ճ¿.½ƒfÝ,×´¶5JÏóHù ÞY>Ä'£–~[Ÿws\pó“wÄÓÿ¾=†)Š›ºD~]'ksœWéÛº'ˆÙŽwг9±`áiñw†¾ü¿øf°¹^!»ÛvzîöFL͇ƒœŒLš™È¨RåSãóæž—1ÿ¸ð‹ÔußqKW»OÕAqI ··'[¯ÆÕø²¤‰èÙð°†Ùl}Ñ|ZÊÏúÇ'yä"× )Ï%eׇu}Ý›£Ø«­gä]¥Çß®}˜~´‰… S»´m³m›éS ©~•ïšÄf®½+û~˜~á£Ìô/ÜXÀxw{l†GÈã†G¨Û +!z¹z0Þ™õ·•ß­½.ý>0‹+‰›øÔ¤¥÷sŠR²>†ÏNXÛ;w—:z£$ª%–9Çϯ¾+þÒ+'ßCGL½½McmŒSåSöòÜòN²_ŃF \ô¶“ëV ³Ürj‰_ËmKÝSã’sÃ:6̯f +JÙŽÒ°k¦¶¤lÈÂKÐãÌò[ÏÓr¥õ}Ë9Ë‹º˯!Âz:$uŒØ¡’à–Çx•Öa]ÚM_£5©7\›{K³'µþöÒ(¡r²»ä‹ýÍ®g7ûF÷—yA%ºh£v&¨ã!ƒ!Ê;+€ºeìÚõaJÎò#w%5·ó ¤Ö%í@4d¯†ß¶<Œ¾´ø +vbcˆ|s{†W¿>DÉY|A¸êíÖpa‰y Ô¨Z/à,ç(9Ë7Í«uNomÁR:ê¢g²õŒ_‰¾Ö§ú‘לáBíCÈ[kïκ§°yA5¿måê¼s’”ãùØò vÙ5ŒÉ90ò‰{óbŽWŨ[~M³S²—ZOÎ?,ûÜ?‰»˜&äÇ”ôÚ¤ALŠƒ>öOSK‚3ôÊ=‹ˆé–a®»§žPb³C:r¹_M©M̱ñcµ\˜g–×6õt‡LÝ!µÕsŽiØE· qÍ9‰¼ظ"¹À#xôʈŽÙt°ÀmL¸”an9ÇZ.†$ÀÞLXLÓ΋ê<^Ä_³O²êRµÔ+ãÔ¤¨[^Û£°+«¯šO&õÖþbïã˜IÂòÌR‹ÁXl +(µÛ“è›ÞiDcª¾ŠÓÖ§·€nw)¹ ÐxîireHbež…>Xò"ziyvÛ5Ùr9¤£Ôî,vßÏõtÇLí¼¸)¥¡‘9ΉÆslRÌÈ!Tl„GÉ…¬M0ëüú¾;u/? ¡*V£k +“çžÁäFì6PƒØa½Ñ;C¼Õ¦îkël©I¥ŽqèËÓ¿Z_¶œ +iä½¥žGáE‰`üNÝWšç€ïÔRØ,aF  6kÈmåRóÑnãçÖé{ì¡;ˆËˆ¢sÿjé§·íÆ¿COÎ3iÓõ°žZïOUuo·[u÷ÎÊ éº}Š^5‹8Q3³³(ä$ùìð íVÒ«@›´y ÝwüÆv~@C,öÍ`nùf7bzté¨aKwŸÏØÛ½2Á«ßšdÔþºÙýrׯãlÃÎ9`¬O«/Ù‡j²~YaÐÿ±ÝñroUÈwÈ •¶!X~ØÄÍ¿‚æn 7íÒV²³@imÊò©D(‡”ß¾¯hé=æ’CÆ­wΊ ÛŠvLÐÐN÷i%D·Jßœ$e¯c./8^&Ü´3 +×ù¥¾™.lÜÔÁuXèQQË@^ÎrŒSó\‚:×´°Ñ1Á*qNPr]cèË#µ: £×lOãomôÃÏ)%EŸ*ÄÙÿ²þ¶édĨcœ]šŠ­–ß–3 #³iGO®òË1ÙëCˆ K¯1ç6GÉ€Ó1iöä•„–‡Ï’KJ•_ŠÌÝxW~Ú5 9ãž@]‹ÍqÞYr¡g†˜Ò²!1«5ïû6>3n&7;&áWÖªˆ-Þ}ç·ô>´O2ËfůÁæÆçˆå—ÙØƒE6:¤¡Ô¸¥è;FJmÜÄÚq%4‹ºá“Â3wõ\Ôß{î}œï{7tñ€–+÷h„¸-¥·:DºîC\Ù„^ã$#*§Öîè;ÙQ­ˆje“k†V´3ßÎ ¦ÎÁŒÂ.®¼­þ~é]Ù)IöŸ“_ò+è•iv­­Ÿv;¢ïíN˜»;ãzSP…Ë_h:«èÍÿ³{ºùJbžÑ¶»ÔÞ2‰È“±kûíž[ˆos3 Àæm¶\Ün»6);¶î“„ã•ó ©óÁ»f1#ªf·„•”ò€‚Pè˜l¹¶:Øx.užãÃBWOr¡] x¹Ö#£6lŒÀ³×¡—öxԤϲ«©•ÆwÈ´µi.ÊgêîÎwC`Œ„çÚù±ÅΞ‘Øc’pçÇ8Ú7„ËÓ}ˆkCクµ»7’ZËJÅh°µf%-lÒþ²¸cÇöpÊ«ÓWÞCO® ¡ÒËÁ´Ý<¿Zò §% K­aÀ…Äæ%ìØ¼˜áQ `Û³üf÷¬ ek‚[µ:D+°OP‹·å캕Aòõ•~è9ÇüZêX^@'!4„O!ló«:©Mø¼Ä*·!uþ5jà£Ü³<ÈÆ.ÓöúƒùQË Oà§#””Þj:ª> +Ø9>/áDæDäÔ a±È?‹y“é1è›åÔûUœ¦èƒ!Ög¥_ØÊ¿q W|ã­:é—áó}rVO͇zåìÚ Nˆó‚8\ª>á¯ýÙ-ƒ_uÏÀ¯zgp¹1½ˆº³Ôû45×èú½0fRRØ5Çté  b —mùgr:ab¶nLsêVư™ CbzjmHÏÚ3c+"lÁÆHëùu!ÀÏ©9ÍÇ;Z¾qMÒË#©ûúf×#³ˆ,À™YkÄ Ç½0 ”æžÞ­IòmÀÚç‚*ܯdC@ŸÔgÇ-½÷<šNÆöŒ™Z'Ø5#D€]ÆlYPCªŠêé¨_Wùœƒ%¨ÃWlŒµ^rLáò’‹]Ýñ-¬cÔG4¬ÖŠTRÓc†îMÈc¬Ôöªî‡å·ÐsN)~™ù—AFî×!%¦8¢%Ôe„Ò¤Õz`1âF>Á¯¦ÕFS÷o©;™[#ÈË@ƒdyU¸ßŸX”t}Xï}óaSr×1‹/÷8˜ÔZ +- é×ãKצWÖ¦Ð×<@§'æ~[7êˆ+~Ôœº·éáû¨­çñþŠÕªƒjÀárj©GNÈß™gá÷×;«B~ jé­¿lŠº÷×€ÞZŠ"V>áæ¶-Ñó=Jjõß¶zßÿ²Ùý*2ÇADLÂÞšPðaKÒ··&îX™ˆm.oc +ŸãQ³0Ië' Kw'à ¡_E®Ù–‘«B4iccC&Þð +sº§î¬OCÂþ²Éf„ÔÐkA¾(adCwL\TBÏlÞcïKW×¾µ«+n–0÷¬ô£.lSr½ +!,¨ìf…RÇSëÎHà)í³ü¦æ›Í¡ºJB‘WI)ö+U»ó"Ƈ¥ÞgK]½q3Ò°@ ÔUÝt·¬›äUJP~·Ñ/'ôrÏ‹ÝRzñŽNHÜ·v‚¶”p|zN‹WÝN ¨ûÄžY|[F/Û–óWЄ>£ +|®|­vÎ>Œ¼âWPJŸ79ÆÉy냘ôå÷ÐÓAµ,iéê ÛYN­Ô1E¾íSó`~=Ð`œ­OЊ­ï‘—–‡p€Ó@× SmåQv×ð >%§Á=K/s+¨%^%½beŸîžeTÄÍ"jrƒ]~]ù­c´á¤{~u}q)¨&—zO­ÍpjæßÓbàwƒJ&t}°å´}r. ÿíÞʺ¸žß5ô=ˆxXï% ¶ÖEæÚÙA­q°Ä€Øè-1½þ`™GÝ_êì :9 ¯ˆ)«î`©çáî"]uŽ×ÿìš„œÛjºä•£Kv@­ ëÅܰž‰H˜D´= •*L¶G†¾±ñv~îAÙ_–ß@Î{¤”J¿ZDœ{O.ë„]ýä-½ä|@Áj‹ªH!>' 8/´íÖ8>{u‘™ã2>ÔösyÏ&æ%;$1“€ºo¥£â:\‘{ªþŒ}¸æÄîRçÝ ­^ú°ê˜[Í ‚ñÀÙ›ç>.¦¶Ðáko뎫zJþ¼6Œ+[ ¹@¼ù <ȉ܄EÌ‹[Å¥ê™aU:¦Ñ7¬¯k¾Ýj>•˜#WïY)6rKÂLhø¸Â£íZyÀ˜ØŠõ+èÕ.)¹Ð«à5{g9 à÷¡I£ûŸ¨8+¯›Ï»§ÐyQ#«%bæ¢ÃÆÞ.âñ=§¬0Ð| +Â5Æ*ÞìÇ_3=ª>¾üºñx`–Ut ¨uœº-¯Þô{Aÿò=ø®Ÿ£JZ¥–Ö°9A,p}ãVv’B7f8Õö1|yD‚]¡À±Êh±aË< +ħ㣠]9§aeŒpÝ>C+qÿvíµ(¢¡VÄõÔ: {Zƒ +f ȵø°NBuÍV0ª7GpéÞÔ¹09évDÇmOÓ+죄ë5×ñQ€=®¯¼©;¾ñ®å‚O¿Ö`²@ÞDÆ-\,¨#õñy!)aábCåøä­×$¨`7:F·öŒê‡õÒà¾>Џ¸-#”…tBb¾»+ië¼ãSÒ4}¥ÇÔwоc³5¨‘–úág·&H…©u„=3ìÆ$Èãñ91{é-*MÕ]ýÍ+ëóÕ×°Ð7uÖ×µuN nÅu\äŽQHܵð–…¼«"ɶ‚Y¿:@É‹ýv|L€sLàoRÇûµ hHÃÆí/… †Ý šxh†ÑYè}¶cí¹Ÿ4rq©,¢AçÚÛÒ<ÓÌÆ¸©«}g±çKj¢‘‹ßYƒ<Ø–ÖÁnDL¸¢Ø±Â-GÜ´Kɘµ÷9Ð]wb‹\ÜÞò×qƒ€à“âK–_Õž[}]}nrñ÷[¾ýgËË’ ¿:ÛF¬xP÷Ö$}I›€µ·"éܱñy®nþEÝÉù§ ßoKIÅ{Ë"ž¼¯ìÇñ¶Û ñÑÆ£þje £ +R›í¤¸Ÿ™u‚[ñí‹ë…¸¸‘Þ´c¦7EtøûXã ï,:+bZÂÌÃFç8pàcÔÀjöªÐ9îhæ…Ñ–œO­O-ý_x¶Ê5M*õɨ9˜¨“ïS4Ÿ÷È[.€öqEÀܹ$¢a½³¤B—}= æ@ÜrP¤ä’àlW‘þYVõâ‹–óۘܘ‰Ö°»È„‡4Ðy°m¥îÓµ“ݪv¼kœS¶ùžxCÕ]ô¥c¤á\p–Pìž"{TüÖM…±2!nµOð[Â*Ì=϶½n=µ:¿¾ 0ˆ)[rzé–œSëUÞýþfÜ«¾ß2t0œS¨æ'5ßzg¨•1£˜’´‰ÎÔúÄrv½ÏØ) +ÍuðS÷;'±7×ß7žœq.¤âµ€˜ã„c¸¤¬ªZBöJ™UQ5£60K(ÚDÜØD_±à2BJ^KL+!¹ÆÈù˯ §Öû[.„ÕøÂˆ—T¡ Ý2hŽsš˜ïÓvóCÆž§—»ü¶ê¿Œ\ì—±j=„œ_-<êǵ;ïsBúÖ ½44×%ÎõÝÍ÷= ™;ø.±pþYõYÛۆ쨎OvMKPóÏñçí£ìJ¯\‚ñÊñÅ1=®Ú'ÇæÛ^´ü8#(ùl”vësë3ȵ­IZál_Õç@…uL¸cqÃ?ƒ/ +éˆU=¹Ú«aÔµÜÈ|W—CJ+sLs“K’ŽE‰(:'`„õttDK® iè51»³|¹‹Ì<r! ry@G«ë©@»òbz6`yÂ>‰»é’â²<ÓäÜ€œYµ»  þ²Ì£}\bcfzc@I- ̲k2iÃJvcÂÀE4Ìæ˜…Ø™ãâBZVcÄÀnñ©è 8uQʯᵬŒã®ž6ýè—SËwÍ<œä䄾ƒ•0 {’+#FLnH‡ÉI1¨§Q#æÕ°³0ËÂj2 dA"bñÂÓêc ë¼ {¨%„€¶“Ö¶“Ã:!-¤ºÙÌDDMøržá,7s0û }#¦{O¶|°¨s Ý+ü³˜œõÁÚ K¯ ŽùAƒzÒ_î}îÖñÑ©úX‹à›f5¦iåþilŽGŠœ„Ï‹j$”°®ïŽk‚VäÁ¦Ï=¨þvñQí·@ßÄ´ôº(ÈQmj !¾4nÓb:NËö$"Óú¬è«…§…_‡ÕtØŽµïYb¡£=¨cAü*>.bìÝËLiuAY[fDG­õ16 +ˆ»+w@¾¾ï7u +BæÞÞ ž (¨åYÐ~Zf‹k’Q¾9ÌÈÈÅÇ»rµ¿î[ÇXÓÏöaÔ¥­F‘sŒ×”q a%aŸ ,¾A§…µ"6ˆ üÖ(,Í9FÈò«éµ1 ±»"$,w‡MÂm 'w±v6îN':¥äÛ%¾pwžû¸$à€q“´võÄíÌ[ïÓ ý"zÔÉÆ€æ·s/·ü`{¿ŠÞ’´vtï.wÞI.ñY»K=Oã AlžGHZ¹´˜™KŠ4J·gÛ.'Aœ¸'I9ÎqìíijSTÇ£þ²Ô~÷›lnÂŒ®tNS*–(YKï©Ù!ãÝ^´YY@ÍlÛ[äwýº*àg™õîIÀ¿3¸[ö DZXÏhMéÇ6uür~m~sy_»1ËÆ„Íí» Ö#bqHG*Úcà`¡ÿÁ*á'çD‡”·6ØúóÆûÆ=ÃmWâjlùÁ"ÿaY"ü°"íX¹Ø кXZP†Î )qY1-£vÇÈEÆA<Ç œÖ8àœÝ!mwAD‹Y w; e7ùÕlPÛÍõÎöÐÃ!*nà gT¬ºˆŽÕ7r;f%Æ»ùeù÷ÓÜKÿbî¾ý§¨r< Öòp~5ê‘sê=SÈö8¥Àö¤â;ØWï8îFd–YœšœãÑv¬"Vl‡ù©)¤eÔGÍ„ +¿ºñжö”s¼éT°À޹S’0ÝéQÒê¬ok~Zé¯>í‘Ân%Í´VÀ“  ¶Þ¶`¯lIÕ€Õºƒj^›åääÒ‹Ê:Råž™ƒŠjiPÇ$ªp¹´Ù()Û£ì¤T‚6Ç$!¶§ø‹)aþ¿{&¨ù À1%¨[ã€qfp9»f!nä!*jµ}¸úÌæ@Õ^)ìrbŽƒNÌß{5õtµ|dä2¿"µ=ˆ+#¥5 kÉ‹¨°€•˜5›3ŒŠè|g‡Œ¹• EWÓ¶'Í?ÅÔÈëÉyrݾMÈ éEÄm³" n'ú”½l¿¦‡³5‰ÏžRõµùaÕæGU_‚±Ü¸»ÐÙ·ˆ¹»KbþÎÂG nì¯ ØÉe&Ò9A½P Ñ1s—d'Ï6É€†š ¾»Ò÷~o¥½÷à +åšA-)ê†WŠ¼î‘¡noMan{Ô’_×Á‰ÏwvmbNêÆÕ÷д­Lžh爎 Æ(¹Ú%ÃÝò*UIž4Ñý +L¶õyé—Ögåß{gà×£:Zm@'&¸gyöqf±íù–å ì„{Ëú¤ægmWñ÷¦¾âÏ@sïšù¸ –ݸ<=o}Qq"ªFìΪ¼³„2ŒRT²!!U;!¤»{'¬ç£ÝRô­…'åá¥ÿn{r55ÿPÔÄFut(àÇ×§Æ1"j^}EÊðIÛ.Åç91±.µŽì¾ p‰ U ´]}Ì, 'úž'ºú‚b™[ÏpM·]qË·BZä­=¹ù`Eð¨áÎøU åYû«½/SsÌ$çRç;IµA5¹r‰…=XŠöÖ»ŸùÌ|ü–œ×ôLcLͬN·Ýœ¿—ÿål{Ö—ßמÚV€Îå´lŽ‘ + ÷ê¿^}»éžAVXĬ] ­)¨d +ž7p »& cw¾K0°Z¬˜+æ×È‹–—§AÞúuM:Xbcöm\BÌȆîÏß¹»£k§Ç5ôj÷äìÚ›¦Î䕜TÓàoï›™ÐÝ!1ÇCïÌ È;@ó…µÄï,"'nÄ”%çiÍ`LJv€Öè ðí â¼s¨õ”}°õˆËÀ.M15ò©óîômП9€ëÓ@K•înSDÕIOÝóf} +ùQÕQöÙ$õÊïÜ£ÐÌ ‡,uõ…M½Ý«“Ü:×,·)¬3b@Ÿ=qN@/nM4ŸwÎ ²b–;¢–Þû>5 )n¹¹=ŪŠi˜ˆ†^·=ÝvÉ#C¦ûUøÛ 0ö¢ZfcH‰Ïõ+ð[cȬ˜†ZŸ:ÎÃ2Ü F¸g9µ.)¿ak’W³Ñ»l} ûI*(ø½”›÷ùÚˆ3I©jÏ‚ÔäRç > ô_kD‹+ñÉaé«­§#¨ôè,£& x'nìéñk…Øqböj?*cs íf\I,Nè(Õ [¶&S×úboFÔ˜kŒ]k¸Ûöƒw›¸¿·ÄÂí[YÄ]èW+c&&,<'ÀEÌ÷žyí”Åw¸Ìõaä×ôjÌDªß]d`vm btŽÞ¶rª} +y=¾ âútlèÖ$êª{}=¬ Uì,Pa¿nòøׄ#›æÐP*Ró>‚qØÆmÛZ?ìâüÓú󫬨è&X°>ŠÍ3½l>µ6-9Øx¨ ÄÌÍalö滦Ӿ馳€™JéÃF÷³ws¢í’K†/ ¸´„…õ*à×½*8`{B©K ¿º-Geí/‹Û‰Ã&N[lŽß_´ïZ¹”„ŽP5ªCsl´×ÌÃøŒ|´OŨõLᮯ½i8ayX~rñ]K±ð|@OO]ƒ·½ÃßP߃þ0 +˜û«½I“°c`6Gf‰ûs,ÔÇE!koŽ‹Lš9¯†ZáSKðy'ÔSWȉ…¶[»6bõØ[à“÷Í=½%³!¢¢VÄTìæ„Rˆ +ËÈåëo«Žë».}ºú¤ôXXM*K.ðIû‹] nŸ‚^Z|[ü…_Úx.¡'î›Y°=‹€Öq[©ûÀ8 ‚ý ÊQ™î)“Rb®WN- hX s;02;a⣃*Zåê{ø9ŸœT¸3ÇÇï̉(¦Çï}˜³oùÕiЫäjÇXÍ9÷$ë¡\2~sLßÅz$ö)V%М=›P°·Ägï.ñ¨@—±F|i™æ@׆øÍªÎú¿Úßc²)§¦ÖîZ8¸T}LZ×é–_Nº½3ÇÃÄ |tŠÕ½“èLçhëyÀ(ùQ oQ}* ~k‚UºüNP¹>Äkβ¡A96O÷æ[Ã5§¶'ái!½)lèàoO’ ü3,HL# ÄÔ|ôúÔõ ^þw2IÁ+ƒä›vàƒGÇC8¥„\ËãÚ"*bIÒLoÞ³2à‹,ŒG +Ï5?ªþaå-6#f–ðã‹"v| ‹h % MoDøÔ<Žð N&ç»{ݳìÆÕaR6`§5jäSö—{ž&mBŽäôm)ß« U‚ºŽˆ/ði‹ƒ°+Q5«éƒ¡“»§¢?]ö’0àoÇLèÇtëÙ¨O^%«Þ#g”ùU´Š+lü?¶¸œ›ttrÚìœD¤ÛÂrf}D!@øg(¥Yl¾õeõ÷êöüÏ7_7ú¹õƒ ì·‘¸ƒ hˆ°–Õ´k¦ÕE4-—Bʆ3âº_Á¨ iEX·’x…Q³5ÑrVÓ“÷»õ7þéÔ}q< %‚½ðkýžUÌÞµéQ ¡ds¸üøÒÛ¢/Cøk¡™lHÕ' éÅÄpª¦ÊhUq5·cêí¬„wO"®zgy~¯ùÃÊW+]’ Ž"f4aaÁvR,øzWÇF†” +×(à:¹ì×qGlŽÙ³q‰ûËBXÏl +©¸äàj ±Ä>Ôøs\‹¯øÅÚ!ÞÑK[£È ç8ätê>¶ÍQR–}Œ]âWv×§Ø•+#„ ï ¥Ø3E,ühå’þ¾*ä°ñèAOü³ôŠˆº‹“4v‹Ö‰ª®æo&¹åŸ-y9iêäíY;ÚãóBÊ–Œ·øšM'¬·5 ¿²1Úzfs¤å¬sq#i>SÆæÅ\¿’Z–Ê#I=§-$o½ä.ýfùåíÏÝÜ\›‚X\m3½JJY@C­ŽÏ é«wV»Ç;ƒØ¼¹=Cº3ŠH±9Ööv6jæþ¶)îþu… ò%ú‘èÃ2‹˜âNÇ4:Ã>EÌ]êG€|A-Oè8˜ ”ºÿXa ÿcƒOÌ! –ßÔ|·ô•2ðÉAƒ€º1ˆ¾2ÛQôå3ý÷¶W â6æ—uqׯÂöø –šS`Ïʧ|Xp›½'ÿgCçͯÂrÌí_×ü›¢¯[º<Øx®± ;+ÄŸ®-}þyÍ—ÞQRÁž¡ƒµ<€Ëšå}•Ð¥ê +£*"ãÔ~µooT½c&”ødØ~9£䮎ÐÕQ ±`uàög¶×¹¿OÍÇ5°[S× ¦Ž¯;d´âµ1Âõ­JÞ/ lÔÿ¶Î"ì.j}êºsöÉ¢¯@žKû¸"ïZ…tÿ,¡`õ]õ1ÇH݉¸’Qs`”Ð÷Úy>«!>'¦î-ô=Ú³õ> ›¸hçdó©ÍÁºc~.'ijgXãcãf>öãZÇÝ&$Ç笿­=¡êJÿdþ~á|@Ã|X`¡ÿÚ?h¤V¬ +Ø¿ÚÅÝ{ÖvA°vÂHoÞžl½0ÎNûgóÃüo÷Ld@Ê(sÒ>Üð“GŠºtüÃ|÷゘íU‘KíÓØŒ°^HHš…䄉ÙÖR+6FZOm78°+?X`¬²¡©cë~ ×Â*^k\ËoKš@î6Q*#z:Ðý¬úƒ ÿÀ*&@ÝwÉÉ…A-ŸÛ…Ið~ÐÈÃyT”²Ôu/!p>½Ì3»´þ¾æÛÍ–Ó»Vöãz{÷ÞJGwÂ*dÆRç[õݼ€©“³³Úóxoµë^h&—sÃ-CgÆ íÌ„ùÎÝ`ÇÕQÜõ¨¹³ý`½½7 nË3tßþÔ5=Ô"2C|qª½W&i…ú甫®™^ÑžíþðàÞˆªù¢k¬ü;Û›üO fíÎKDk½¯–†±9“‚²Ï¶§Ø€UÅÿ±Ñýâ—e>Û;Ó–ák9ïœB]‰‚ZúŠ´1Š»±žšƒ`U¸o‘´ÿmEÒ±.¬CX^ÿUÝ›õiÔ@A~tö 쮹©ã!ÁRÐNwuv<ù`ãRöæØm =*–ß Îù”Œ†} ‹VÞÔÿ4ÁIû'Óýü¯#—þc“ûßÿ‹òÿïøÿÊŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›!ýÿE¬êØû݉…tlŠ‹úRòɉ¼Òtx]‡âpqìOª>9¸˜Çæ0\ƒŽb‹ŽÝo]ºpù걋u8õØ©ÿÜòØèX5›D ÑÁ›õwúØ9°éMðø¤1õ½™©ïÍgó8Ä|„þŸoæãÀgþooŸj¤ÓQ4öØoïo»|9ýô'—ŽåDú÷ <¥»ôÛ?ˆ¼(Á[‚ci—ŽUƒ¶]:†Mm_÷ÉùŒÌÌôc×ÓÑR/®\»qí?_Wü¯¯¯þö\ñ?·ÿ¾þm{úÿõóà‰õ?÷"-µ¿5_‰Š»ñŸþæÜÿÙ–§N§¶)þäbŽOÂànW¶”ƒT}=vþ·æüÍ“ÔÿËe^¹p%##íÚ±¶c—/¥¿®¥œ%þ¿ýLê¿ÿÇçþÇs汫`7Ò2Ûë«Ç~ûŽONœømGSApãXfúåËŸ@Jÿ-¬ã@ãF 5¢‘Jn“o–ÕèU3Z"FFË®•Ú7àJCJ|qDO«Ì±Ûâ3¨eµºd„<Ÿ‚RêŸeTÅt|ôŽQD‰$ôˆF€Šè¸ÐÔ’Y©©i]r~‹sŠ^½>ˆ/tã B³Ä‚ˆ‚X×’JÃ*ÔÍ„IH +î? +<»Å>… Í+¥—z¦±7ÒÔ2Øœ¨œ^W +Ic;kmˆZæcÖD œ6Ÿ“»-C^sŒ·^ +ñå;jcD‰¿ÓÑêf.vg^ÌŒé5µ"¤¦–9Ç0qòÑÚÙ™œãá¢ZN[Ì ¢'­bNtŽ‹rËÉöqxšw +ŸœaT%ôbZD-@†f%D÷¸Wõ3ÀŸÌe×äç­þêoýmé 5«qG+Â'"òÖ"}ýMÓ Çì¼cvÅ>T20ƒº|¨MêÄÔŠQV³›ã~×ÜÁOXººÚN–OÙAvËù0ï ¶óô–ßqeišï]wÖôôT÷ôdugUVfUR%ƒÓv:ÓÌ ËbfffPˆ,ËÌ$ƒd13ŠYÁ‡#BrVÍü÷=y?ÄòZ²¤8±÷û>ÏïÙgmoW\OêÕå|J.¼8¤[Ù‰ØÄ•™9~qÆ*«IÌŠ¯díÒjÜ-¬Z®úríMݤ›_ž÷¨¹»A*ç×+0˜“õQöéÍ1^ê2(0¯Q·ò/ïÌpÎ¥aŒÈ R@Eµ*Ä«ælÎòË¢C ßa53ãT°6AÑjóóæA2¤A ÷+Ød@Þ™up."VÎyÜŽŒ9y¥{ax¿ FLø˜OÒ‚ø¤-)ÿJÆ),'‚rêU“>/0êqæEÞNúUÜ«ìX¹E[³¬óˆKÖJd»!ômÌ<¸ï›ÍDØdN:5¼›¢=N¹õ‡úŒ†$Ôè¹I…úŸPþ®n«—>7–³èã¬QŸ¸÷ËÚsa­œ€ŸÉ̉+0—š‹z®ãA,Ñiò1£Ê:§óq*³nöåÔçÜÖ$§döZùÁ»Ì³)[·÷ÐÇ.3Ï­¿dݜǽ0–a£ ɸOX‰ØØE¸CPMï'KÚÄkc¬£kܳŸŠ¹ò†u<9%-ÇíP#nƒu+ÚÓsìs©YÖÙ¸UÙ´0¬¸‚z,]˜ÇbIX¡ÿ¦ZÌZÛŽNæ9ÜÁ8‹8„e «¨"iS´ ^³6cS·o°®,cüsY)Ë…<¯æ‘nq6Kw®lÏúÌ&Ä«“ÑG„Q1s?ê—¶oN6|»1Qûåædý×);÷RäEýá^ÆWÿ>¢(ý” +ÜžÛ™`ž¢°^¼ßðiz’)ÔJ©¨N…ä„_Å…¹Ó‚M>¤•>Eçæþ©Íqáù¤CÙºã–4Nô½»ö’wžre¿Å’v‹êW_U~²ñºæ³”UÑúÈÁƒfSÚ­ælŒó` @SÜ’†¼W\;Øv¦Ú­¼jþz{Šw1íÖ‹ÖÆ·}³1Ä?‘UÕdgDWP+÷bzš}fc¤ãGûµò?­¾bÏØÕ ›¤zk¬ùÀöpýdŽq™ +Š[0§¸ +ƒÞAàµ'¤ü=¤¯Ë„¹ "Ô¥hÂÝ‚Ê|üÑËßÖ >N âT´ãn³:e×tÆ'4õ˜]ÇÂíò†­ÑæïCwNÿÖ;pþ÷þ«5eÞ؉IUÃæ°àÔö+Þ‰Ä+îql†{ak¤öëÐýËïÏ?«ÿÊy«òÃÈý¦C„S#Ê‚öo1Ž®>oø11Þ~šrs‹)WçIÂÃ-¥+ˆƒ¿A-uÂ&S!dÐíFµjÜ+ªA¡oˆ ^Y k%b4!y3îR´¼:é/> / ¨Ú ±.ç‚ãµß#“ÒzÊÝmIZ9—“Sm‡óAµh/ª×ýsÉØ› i$¨GÅB=9¼€x4Ô­ ð/í,Ô¼©ŸŠ™º©°N‡U‚õÎ…ðè‘Ü‚é*¼ú +K]7ó æk¹p÷uè=1áU¥­m‡1wÛQÄÝ~2n«ß·µ¦¿HÃà>óÈZ¨¨‘ð³‹(?4ºõ§µ‘šÏ2³â†¼ÿê#*Ø=u«˜)»´!ãÕ¢^i+êR¶ç"#V‰pÐåÂBïÓ\´ÿ9è²d|j>à–P^y>"í$ÃR6êcmÛ¸E;Vyóú4hEÀÒû­æŸË2>ê×".EKÞ/ªßõ³.á Ÿ)§šó¦½w± Až×š´sK°ñò«R.þ•‰ÖÃÁ»%Ÿ¬>fŸËoNo¿‘¯¼è<gŸÌy%õ9 *ç—4iå7¨I—÷å¨['ÈÚäõ¸MÕBþZòÖµYÞŹkïÇÇeµ¸ 8Ë.oN9ù¥©YÆYÂ)¬+øè£ëôÊŒ[Ö´ ³þ†{‡ºILHK‘YYj–àNúXa~æ‘w`ƒrñëpèNÃGk/¸'ŸòOl¾àŸÊL‹ËÜ3;oØGã¼³Y«¸uIê¢/Zöm¼äCvwƒëð€¤)ecœÀ<‚rÂ+ª½nÊ@3¼:!u¹ÌÊ]èõ½˜¸ q3Ï¥¬í‡3vöYÄÉ/ÁAÛ3imrVQ»3))‹ ¡/—âãG¶^5~îü›•Õ¬¿nÛ·ö’u(1&º°þZx&5,/^~Zó™ãÚ©ßFî•ü™“ÖR.½Œò”kô±õVuÇnÐr-ó±3Ó~lùEÉk#՟ŧ;ŽÆgù—2Nú¸%qÈr>œ +´…Éž­ Òv¯d¢ni=áQvä½nƲàã—æCÌ‹¸¯õh|²ä#ðŽ"jmu´er¢ãè.ðÅÛy½þ-Ô +µœuÊšPV€º´ <q‹*1à"¬‘æÍ׉˜VIDtj"b´@_ôã#ëZˆjd» zóî‚V›‹i$ôÏî|ïã\Øh¦¹K[yE¿J¸UI Q¥¤SЍ´-eãcÀT§¨‚>n’òhDyŸFHxĵ˜‹q†òIšóà7I»¸&eëRâÞ.c. •ÐG/!5 ÿËú¥ÍˆOѱ»d¾™›×j)à¢ÂR÷ƒÜ¼¨5ã`…9®Â|üÊ|TÊJº„•‹o8Ç–Ggs¡ž¿‰SËr!½Ž ½ürÌÙpps´ñûÍ1Öq* âb–[D¸« [®á¡«Ï©hÏÝŒmèEó—‰iÖ Ê%¨(µ²Ü‚y019`JÙ¹íÂ’´s65Óv˜r ÊÁËk1·´qg–{nsJ^›°ö“=µIª+ót|ªåÀÚæá)YEÚ©a­NrÎ…”½G€ã¨Išž“TfìàÎ…Œ]P‚»EÕÛSŒãKÏ:ö!³ªö½€ÅBÒGÁ;yÅIç|Ê.¸¼9Ê=¾5Ê;}Ýv@Õöåÿ|-ºðgdÜÀ@gõ¬ì”°(=Í8¾ú¾üªáóù§ Ÿ&'E¥ kÞ—f&AcPgë‘ôlí·™¹úoÓs-?¦g:!nyËÆœ´as”uj8Ø‘³–1aÞê3Œ£©™Î#ÙYæñåá–ƺÏÿÞs³æ+Òa”eâÊ­±–}KO«>\z\ñþңʿn ³Ž.½aîâîû·…ë¼s»n³–ÍÈùx¥ *’Vöùí9ö™„Mš§âhþöHÛ¤5´¶ÂrfÞ;•sÈ œ‰ûÀSa¬I÷õç¸ÏÒ cÇ"¼òv<(¨z» –bÒÎ\Dذ5Ë<½5&.yê|»¨Ñ½]4`®Æ©ÙÆ}É`X;ë é×’~#ÒJs!£ów÷ã¿Ü}•&ÈB¦Ý‚Ò”[XŽeíTT%¤")ÍXÈÜ´b*dÐìÎŒo –Ýy¢° Qå¢Ð³AÈEPË”¿» +ôÝ¢"ƒ£ùh×`aA§ÍÍ«$Œ)ô_ᓵ’>µ÷ª¹Ï`z²qŠ+A—Ž@ž¹„z„•I÷<æ7¨ÒNykÒ&(&ƒQ.Òs'³Ü¤VÙ]Òwåæå|,*¬§U +b^£F‰B½wrá¡·Ëæ[ÀdÊ´‹ætÈaѮ녨©ƒ:Àèkh5éj@+q—¤6ceNY9ç².ÞÄ'j@A ˆPß}2rõEÖgP%*àcKÏ/!sÏ?çõæ´‹WîRö>êê»FçUÔþH#å’7S>AeÚÚ|du¸âï«oª>]í^™4´ûŸ²->k?™•B~¬BmŠÆÔ´ªøè\ìeÓ׋Ok?·TÓ%¥ÛQ}T&|Ÿ‹}q2ΦmM—‡Ê?Xjý.;§lÃüñÆûXÆ*®NÛ@s`|·ÆÛ-=kùÆ{«ú¯×ÙÿÇŒ¶â3dJÛ–œ^N3¦&:¦§¹çSÓÜsññΟQ·8mežÏ:øed@ÍOYùEÛGâS­0ÌóÉ9Ɖ­qÈáÓ‡­·‹þâ¸øþÛ´s7,íÀ\…æxv¦9gR3Üs©iö©•7­ûýk¿\Ã>Ïeèã^mÂòÔ ûìÆHÃWKO+?޲ޝ¾ê8x“{è…o4~ , ZÉEARSlø] +Ü#oÍn¦u•‚, >ß‘Èú4Üä¯(=Ë9‹‚Vg€= `vÜË»BuêÜ’JFø-½D »/õIe¨‡{9\³ôºö³íqaq>lîCCâ2 i)øEMàÿ-”XÅͽœuq‹ð¿2•´@'©`ÿÌ×;ˆú úôÒ xÒŽ•w1é”$¡WÖ¸FÆÞ¢ÞŒ¾Ò}°· 7¢°—:Ì–Lð2â~5q_ô +8‰ˆö>" Ãì.iµ¿¬ú÷–ô*$iɸXç裂H˜ß|À Á<’Z …‚l…9F`Ü1`JÄ%ªÄ}ôqçÒú´KXž käTT¯§¢CnAo(€>@ðÀG4¹˜ÁL-èàÿŒ&*Ü÷˜uÁûûó1S_¼^}ä+2D³*nÈz›¶§:bnƒôë!+‹kP§j›öVy'ä1c.Ò}ØÎœ|“qiù»ð{1§´)k“ÔîLÁuY•BÜ×}•>® ‡ù¤}# :ãh;¶òêÊ_çýik¢ýÈŽMV»:£ª»Y÷±÷FÝçˆMÙ”ž–¦fD%[£¢óôq[‘Ç-_n sÏìFtšIÁÅ­IQä%þÊHÓÛ“u_ïL×|™škØo؇ÌÑ5¤ng…îµ|K8LJ®q *†Êÿ¼Sö®÷jÙ==Þy&Þ–ûn•~´>Ô¼×+k£\Òz ®ss¤ù»µ—ÕŸ®¾¨ú|àýv&0§²#Pr(¿¼=>°ñ¦õ‡µáºÏýw/¿·ú´fÿ/aA-y‡ O}—²ŠJR³‚¢íqæ‘IÖ Ô)¬ ½ÒFÄ54-(&¼z ê”5¬´|ï¿uù¿6_µíÛfŠÞmþ“·ï†tj”f&‡ª“tdyÙ@ù´¢”ƒ_œvA††\šjÄ»óÆž—¸n~6k võSP¸¼g¶ùPÆÉ*¢–%L"Ú} ZúA»åh3ôZ;NgWd^)V +²aÔ¬àÈ{Qƒ™>¾ô¨r€°° îx»Â¯ úŸ ¹å*꾎Â瀹®M;…å¸f8si´ñëhI!*çæ£9ä 6æÖ`~Q6³~µ²‘6îê'‚:3¨ð|H-Vb~YkaQ%ËÍ+!«Å¹ˆFú%­ˆW ¾®•“ÀŠÿ2xHÌ›rJwfاÒÁ„ÖdŸV˜ß™až$}²N¾ŸŠš,dD§#B2æî’Ο·Ü¤ý%7o¾šöËÏkuDDΤ}fwžÎH¦.2hÔ’À³Tz%ª7‚?Šñ ´5mWÐÙ(ã“wì8¸—![ÃxôÞ¥¢}rKæÛD@-N;•ñ9þeÔk2çý]=Y›¬)m…±_'#7çè\™ñHëh=H:DU‰9Á¥$ðU|‚{!;+k"ƒjAÚ«ìX· +‹?]{Á:NøT¬IƉ촰43©mÛ×4,¿P—®[¡/¿®ÇŽ4B.]zU÷yz–qsBô‹þ•±)èó”•wym¼ã§­ÞÒaѧgÔ-©YIùÖ(çlb‚99Æ»@̉Ê«¬výUó~ïõ¢ÿ\j;ýÑ€Íñ.bÀ1ñqÖñÑæ}©Éð¶öÃ0Ýö8÷4éÑòƒÛ¡®ë ·†“šažJNÕƒZ›æœÌs”›qš¿-!£û$gEÙ9EáQq)оBXÉ£‚ÂÚÄ\ã¾ôœ¬uu;Â"ðÏÊÌœ´›“Ö6q9š„Ø›“­G–_×M8ÔÂ¥—` wj˜˜˜É¯âþc^oxÓ«E;~ÉòÖaÄ©P‘Þ{˜WÁJÎо"ªFÝ*µ¨Ñ1½j“OFôZ<ÜZ­×b>nYÖQÿCÖÕr8ëe¡AAu4·0|³Ü·zàÕ÷ ¾ú¬Sò ÜÊBT +| ª‚9åÂf ½fI¯MÒky¹ˆV‘ýˆÏ ¯à>aíèu>¢b^iSÚÉ»œ†Ì’ð¨vðQ7ðUhð5‹ÈÙDHÒLE$­$ýoHÎÄBòÎ-}¬¯AK„®O 顃 œ €^ŸuŠÊ—¼…ðš4;VÆ©ø\Ç à0!åï½õkÞõ«ØÀ›ô1Ð" á碖ëð™uið’^G õ?ÈEûžÐG¢îÿåbR}d}aAo¤=õj0*})°Vw~¾g^«ÎEt*ܧÑÇiûž7ÿ8Üwñ…`÷ÍÝØÀí¾‘ Š›6'xgV†U;Ó]*2t}<œ…ûôrÄ}}(åzèMù¯=Ϻ”˜_+$ÂF#1u!s›5˜»ÛŒ{ŒàOÐãVöÙÍYö©­ ÁÂ¥áQµ0>É>“”×böþÞÔ´™¿3­mÙ˜”—mC-­½lÞ·=Ê$ü7Þ¡î›T¤k…L‚Œžu«:©p÷ ÐG îÖ‰p—I‡Ìª%DXÜL„Dõù˜¤=SË÷ºn€žš] 衦MÀK–k{1cW.¬‘~­¸¼´7o ƒ]½Í=ÀÕ¸Û('¼jÌs}>ð ‘õ$¼ß—ñèňǤA½7W§ÔÍë¢K˜WÞ±Óªö YÖ÷æb*1ñ› ˆïöl +; LFµÒ|D-Ù£Y-l2â£&åb—ħš&ÝZy.põ!å7›SviMÚ¬  õ+Y…Ëøc>¢Sãî;Ó˜gð èêƒU˜ƒ9¡æ»ïîÑkmó:}Æ)iW4ƒæžÆÜâº<Œa>Ü÷°x™‹tõѱ©Zv¦Å%ù ©+åP‹7&•ÍiGßÕ”óöÈŽãîdÊ{c ê4 ‡ l}’{nÛjPl¹{úæßÈ ïšôD@+ÃAS±ä'›²s÷t'¬fY|VÝHùŒjʯW‚¯óˆ_”7›h†ŒÏðΧ§$g—aýµ¬8=u cCzê<ŒÔœ‚ »~YþI|²ã4â‘4.?cÆf-Jè=ÐÉ)¿IûŒš¤UÕ¹òªóÐÆÆÏc‹K;÷g&Äy„•™öÅœ—^»S0H—¬yi¨ê“ÅGUcvIs +rÌÒ“ê6_Ö}›™dœÍÁœ<*6 +Ÿsíu;•Çß%gÄ•KO[¾IsNç\ɰÀÛøm@y\Rµ6Öº?9þYTº1&(Îù5¢·ÀãPê|X#>g¯O¶\zÕðEjJRžöj•á‡mßm<–csý»ð +^£2çÖ‹P‡¼Ñ¯äÃà3ï!ÌKˆSÕ±ò’õSfFÃÈ:,œÎP«¸Wц¸Åµ‹Mû¶g9—I_ß­´»»7åT³ ßµG!€€utd~Ô¥ìD¬fyvîÆ-Ä¡ç>%ƒ )ydXÁ),(¥oWÔš_VTJ,ȯNBb^³^ÒoT¢]´ã½*ûvÁæ4©èÚÚ]ìß²ôa¿Ödw®e"~£nÓ¦f‡_ˆN"¶.E.¤“ç¢Jæ•5%Âr2ªàä|"dÐcþûq§¼9åÕJAwÍx²í=3ëQ¶[ʨ€Šƒ; Òø´ºƒðšudÀÒOø»º S÷î¢F]X0tCþçg="ø,}7³îÞ«·QJ†ºzsóÝwr ý/H`%ú÷ÂøsX¯Zï¼xƒýõÿàák¯‘@ÏM<Ð3HEtÊ<Ìw!dÔï…5RzMËs¿áýzÛÉÇíÉuÛÍÇKÓÙ†MÇÎGë ¿FŠz5â”KÑxÐò9ꕵ">YsÖ§hCéûÒ­÷ôÄçÌÒÕqqQ!léß]0öÕ +<¤â".?ëTw$æ$•Y‡ºsÓ.iu Ö}º5,nÚ‹Aþ Zz³{·N˜± +¯Ì?­ú49Ã)^›b\Vœ}‡œ¸†ùºº²^%#íT´¦ò†íiIÙÊ+Æ¡­qþ9ïÓÖƒ£Ê‹ïl½ä”ì†t-K)¨SÄ#¨ÜœhÜï½yâ/<(ûf×%æ„eëÏÛV5‹rkY»°< y8>Ñ~hñIÙ'kO¾¿n?u_|üèÍö {Á«Ï€ñUDPÁÁ £¥mâʤµígÔÉ)F}’–ЃšOóIËÛe‘ËXô:)擵lM1NnŽ1Nà.5/î´:*?Øx¢a¡®{Ó˜r€MÞL{`rJVî¼Vò³çü‰7¬‹+SüK“]åGgºAWn“á«Ci‡¼…ö•ŒCT±:Ñ~lg†_F€f$æ4i»Žûn ãþ{ˆÏÒŸ¥½Ã«b§f¥éY#e³hW†€%:Ñn¤kp7Ú5øË²±úD‚‡ø5iwç Èž-)»†³:Ê+†Ÿ«/D¯¾ "¯ÉpÿS*Ò}ƒöÈÕmgÛqÔÍ+ÁZj5Š×U`¶ž;…clŸõU°ÿf}Ñò¸¨8öTt<çìí¡ï¹õÀxYŠW ÙfQ§Ç ŸÄ]Ò¶UðÒ”K';•q»¨ ñ©xУ:ð'ݧ»p ¨[Íñ?lü&9}ìHOAAÎ6RQ5d õ‹êÉpW߯¬Ž³2¦¬†é‡lr›Šv]%£]}ù£zÄPˆêuñYNåˆöôç謥7ì»·~Šú{®å¢=÷©HÿSšßÞ.J9¤_Ò4ÿ¬å§…笒”÷ÚК­G³2Ó%Š»º ùXïƒ|TgHÙ$M[SÜ ¸G\—žå¡^IS¸—ÖÊÁ˜àëˆ[ËM@.ßš––‚‡_ß]4vçURø¬Œ¤UÇÈ:õ<ø,í‘5/·òß®ÿ$>!n,ĺ®¥AÚi”üªwnÈ=VU;æÔ°aÎ.©/þްZ4 ›ªm{VTœvHk ³4dìòzÄ¡jËØt,÷£ŽCÏE§þ}åIû%z õÒyIT½cgŸÛï8¼ð¨î›ÔÿJΫ£ /5"»R°wâSòæ…¡Ž0d+‡¼•pJ›23ÂbÛ­ÚÏŒõßü·™®ò óõ¤[\“õÈZH¯^^šLD íTr¦þûälÛO›/kþ^prK¨˜¸cÛÎ<:õ + +ús©™à í¤W+Š;y%kÃŒcèœQKfîÌñ.A-Ö v³"k5KÓ“ªÖ씲%3§n³=iþAZñÅï’ã |·éE CÜã)*hî1öÓkY豕W‚“Y«–‹ùõš´C/L»Œò¬KÃ.Ð÷"¼ÀÂÀÕ cçoµïÿ#:­o¢“ ªx½ä×}*1Ò)æ_°O?WþƒóZåç…èÀ+4p}8ã½z/å6B®îêÛ™zwϯ¬9m•”£vuæÖòȸ9VK)È@(Ôî{€Âïß²sέNpNÄ'•5_—õˆë ¿’»é¹KMF2ܦCZ»åԬϊ—G9§“36Â=‰¸Mj"Ò÷„Œ €¶›-Ù€F”ñÊÛs¢Ò…!Æ¡íqu#­™DØrñõ ½‰ˆ˜{ɰÁhd ü¥1UÕò¨¬46á¥' w‘±¾'Ô¼¹ ÷€÷çÂ:5郬ïÚ¶ š×g™çñ@ßC,tÇ•õ_†÷6aNiÖ%¨ ý +&x¡‡ëG"F#‡û‘‘ž;XP΂ëã!ùí¢ÎHA†&<Õn´÷xr? ^™q+Û¯¸PÞ‘‹j”{KzÚÏ ô½V,bîIÙõÜ´KËÞ² +ˆ›¿K¼áœD¬òz¨#Ù)ë4)È3YðhÌ©e'gÅeÛã‚sÀ<%Éiñ¼cm„ydõczVQ—qÈj“3ÒòŒUј˜QÔ,½æŸJMJ+~ j¿ÌkT4GSÀ€£¤”Ϭ‡ìÒ•šS´Äg¤•©9IEbŒs‚ endstream endobj 61 0 obj <>stream +ÍÌÊjp§N¼G³;xýæXç‘ØƒúOWÖ|ÝvŸÖöédôÞ`GEÞk1å}]Æìœ¸*;G¯;óJQGÛ±‚ŸS¶5Y÷=d¦ŸH_÷uÜÕ¥G:âž‚ùÙ]P +÷$ìݨ\@¯Un‹w_йn`ÞÁ'‡²ms´å‡¥ç­ßEŸŽùî°NAsOÚ£•¬C¥­·Ÿ#Λ/ ¿¥ñ):wæ:e쳈_DùUÄ'iÈ8€ÛÜ=½ˆSÇ£ïÍÆ§¥qгձºïc·+¿ÞóëÔyàz¯ê½ö$ë¿ö£ù,Ðñ›L;“â+›Ãœ“ W(Èþ—I™öö þ¾[P¯È@XPÁÄ|’Æ]à BDÚù˜㳕_àNQ].d@é±q÷õA:ר„»1·‘10'ãÂÆpõߓӼb˜æS±0ø|d¬÷!¬–„<‡† Ú”WÉœÃ: º¬ÊÁÏ£ÅS.½„ˆ VµRÈHÂBPÉA ¯íXAg< +6¸1A,˜¯gCjâ§÷_YÀ³ºoaš;Ç`nQ¯^†ùûîÄÝ&ý†U\VˆußÊÓ¯y˼ˆ_÷Þñ«¯¨9î}wÛ6³ó¾&£×ý¹¨ZF†Ô4 `'œ¬‹dX«%ô].îåÂBσÝÕ«“Ô‚åÒÒ\(ʺzÀcï壿î\ÄÜG¯7´j2*ad}œ2à6U‰¨yœ7õd]jæ1(A õ&¢÷ a^iëæ4óL|NX‚ÐûžœZîæ¸´$=«½†š¿Ù +ks~ö•±Ò¯–ž¿·þ¼î ”滬6Kë˜Ë(¥s +êU³éõÝ”™ HÛv#¡,iz̬¨wšä[“Šº­q½ÿl}¸ö«Í‘†ƒèœ¤i/lêBmÂ2Ô.,ÍÚ€ùmªÎìTÅ—ñᢒo¿Ã!ÇSy'áÕ`vaæ”w ³ý]è\—,íä—/ ˜˜l…ÞàWçƒrNžÖH—¬!ãTs¡¶æb¦~*,jļŒ³¨›yžðHr½"1õPP³IY›º-9&¯ÎNi;3ÓªfÂǯ¢Â†¬[ÖŒxMjZ»`|xé9±[tÀ¼¬u.=Óv„ž$J6}ÿu)Z³6Q9áÑòi#ÀKP¯ Ãý‚jÄ'ª#è{Ó¡¡”·§/ãí¿“ñÜž$üý÷ Sñ +>%“òJ[²vq õ†ºLD°ç&^OD~­§Û»ózãnX΢üü*ÜǾ¼6íEDM¸U’tr®dœz%2‚–Òë}ô½Cµ˜ðˆ›0—°šô+Ùj·çÚŽ¡A½tßJ4‚D@¯Ì‚`1­&`‘q”·“!Ðû`Ï *jìF}ò6Ì+i$|ÂꬃW²9Ýqtc–s‹˜úñy•”€ï!#×§°Ð]pâK`«~*f¹‘õ=ËC­ÒkydÔ`ÂÂrÆî‚¡ ÆA sн·Øó€^ÏØ]ЪöU +¨[ÙÂ0ûÔJ90÷$J>RAÞ!÷›¯Q117¯’£Võò\Í·……ÞÇùÅž‡Àr»àU{ ý¯€õ!kiTD¯ËÑ×5õÐ{Ѐ¨!å„<Ò)wLGtzà-YÆ-©¥×¡óÀwùhèPÆË)Þœn?‚º¥ôµnÛÄ5óCÌ™gz0ç7¢®Öc‰éê¯V^]ú$>Örµ +jIŸŠ³ôª üVPEùÍx6iõö,÷Bb¶óxÆ)(¡‚ ùQƒ9îåWÍ·îÃlÝ ˜uk¸Ûã­‡¢Šß]{Yý-î5åjA|¢õ`ÖÊ8“§÷èµÒ‘òOã#Uûq+¯&çSó1·¨:>ÞBïñú:eeÏ):7^ JÌ÷xÛ9Ü©`çéŒë•wfí’zúž$âV²`ž®¥\r`giË^LÒñ6&nÛ‹*¸{1¥ 3n楌CP†»5ìÔ´º53©íHψÊpû™|Hl¢ô¾‡y~Ë&*KL똄{ð æ5ªãÜ‹‰1ÞÊ£B9êÕ&fZïL6ï§àš ¯Qƒº´\¯`aa=5âIËÞ¼F±7o°¤!³d=f#h%ø“ÙL¯iï«6˜sA‡ä_¿¬ x¬£0¯Vä—zŸÑî;ôúl!¢Óý²¨V¾]PÞ.ÈyYgÛ‰Ùê/wf›ÀøWÄ휒”MÅ&½ò¡þû9¿QŸ¶+š’vuçö¬´v{¦ýTÖgÐîxLª-È–Hpà)|G-ú‘PÛ9úwà~˜HDÒ95¬eÝâ*̧ääc†î½%­‘š—0‘ †ŒI™ø¼ j°Ÿ ß²ãÑ[.´Ÿšï,,÷½z»Ú7ZX2ô“Q ©„äÿßZ’Þ/5õýcÙrꈠ¤-åC–áW¯ŒvMXùňWÖ¾:Ç>‹ÒûæûžSóý/‰˜±›ˆªåXXÚ†8µ™€ ³°Ð}ŒÍŒxÇC2¦ÕnÏÔ wB–êÁA‡‰Ñ}A×¥z£?Óªr!ƒ>r“È;Þ¼@Žï!j>]‡9ø=…yioÉ|ƒŒêt)ëÂÎDÇOÀü*`ÔAýUdü +Ì!g“î®kßíÝ ¹rsûê뎃‰Q ½?ò)uAÖwÕˆG¯6ö“7'!lÛXg·'øûà½ÔœY‘žÑ´&Ç$ÙIA愚‚\°5Å:‘žfÍxµ{P ˆKÃ@l&á± ~K¼FïËF¡7HûR>*h{pá‹aÍùo)‡^]뵄OÉF} +Æ6èZÆ*©%<06!c½f~Ùq zòÏ%…„ +°®¤l¬3ȯ÷ù嘇SLùdi· þ‰æÈÏd'þ†XÕÒ½E}ß/‹z3ø¹"îR1ânqCl‚q$îTqR¨-›¬tYºs®Á§÷ÕŒƒ_º5Ñ~hc¤þËÄtûaܧoM«w¦”50Æ^Ìrg7*c’Ðာ ÷ËÛz½7`îÊøTü„MRY~ 2h)š-ƒzÈÑü+)/»ˆ€šÙ]”ñòKZ}jñ÷\Ï/ô µº¬WT‹ä ̯æ#2ñÿYR*);çǾ\S·&aÜ“vøˆÅ’qöô¦×gÝׇÀgz’^hÅ®jY™•–á—°Q6b0ba}7° â!ËU2ÒKëÿ T'lÜ‹¨O-+,ö<Âbr~&Ì«Ìøy¥i7§rËñ½?ìÚDa¥w(?ßu-u»»Ò3”[Öšrpídÿ ½& +óE†d¬¬³ó4CŸ¨%¹ ´£V +YP)ÿÏ’F·Ó¨éšÍ¸¥›³?ã^Y }ò†’éÕX¨û5ßóˆšï{–ëÆÃ)PóˆˆÑµ¬Én“.Oøþ„[ÍJ{Ô,Ðíx +Y(9¬ìê-„»ú Qc×^T«Î…•\z_0 {¯ÞÎÍwßÍ/Àuj ¾>$*D5rzq«á=ÔœB¤ûN>Òÿ4´\-ø-½¤× ¢×AéýK¸WÜŠ¹…µY¯ˆtu™÷µ‡I»I–r™‰9-u©9ys2¬¥­‰…˜‚“/¿¹í0)·æt¿®…B†È…õY;ãt|ºóèüÓò¿­?j:Tp›L¹V™€Þ |F]>Ü{¿šXôÝ¥ü +×™u‰j ˆ‰€|AÚ¿ûvÖ;ø<5 ;sZV_µtT~ä¬û†ðj”h€Öo%ñé §†õ©Ø;.IÝŽWѶå•7m̈Ëvalw!R~%‹ h¤…˜ZB×ÿÖ”àâÆ´ð2ä‘ÒŒMV ¾M`øzÔ©b’>K}o÷?¦b=w!7êÁÛ•èÍʧháyÛÁBØÜKD”¼½%¥¤° ½¥ïM/jTô}h,¨•C†¿š‹ÍÀ‘WA«G¨…1’~f< +ëâAUæ u›³ÒÜ}õê»1‚úîÐ98ë3iQ¸.,¢7àƒÉ°r–Å‚†°ðÍ94Ô=€E z,ªU¤‚ÒÖ¸xܧä’1ðS»¸~mJQ“ñôß!BƒÃôÚ[a¹¤°h¹SXêºMF¼· ¦Ø ZÒ;|áê¶ÜØph¹;n ‹ É;w#ÂÆÝ°¸}{†sv2Ñ? ¯~‰ª¥…¬ñˆkS ;›ãÌ“;“¬S¹ ¤µÑ*a¾8$ä,tÛ‰…Íý™€Nž/(Ðkãô¾—˜ÁD¯çRÀ²˜[/ÍÚU­ˆ[Õøt"<¨@6c’^Y+xj#ýün7J²6U{Ú.¶Uqè=ÿD@Å£ÀCè, =)'#ZEaQoÚ]2ö‘1½lŒz•8d]ŸA sÕ‡t +è¹jô-êêCAÿVGÙG—†Ú¾ßiûø¹‰ðä)‡Š³5%)K[ûºÒs] +Ô¥‚|)k‹CXoÞŸ±Š«rN£f/bêšQ`{BÜ€z̺\Ш+@îÅÔŠBLÊøÇ²\õÈšVÆd%ñ9u3}ÿôÈ›1'ò9·s[ÛDU¸]R[ŽÎ‡µ2Ì-k ï3Q¸>§N˜ó÷ PÁž[ùˆùênL%K»Ø—è=šÀ=Lº¾¿Ì2Ü)ªØ +ÿôôðÂ}&LXýR› ÊÚq·¸s +ª“Óœ‹Èœ¢1¸öœ ^¦_õAv*P¿œ +ð+?§ õÈÛˆ€QOÐ÷DQ‡°6øàòûÁ‡Eïeœ-G ÿ^¤èîÕË1O— ‡¼€zµ¢\X¯³«s ÿ›©€ ŠôI Ûkù¸_ÖJó.0!ë‚'‹šÒîÎÓ;vÆ©\@ޙϢï…×´ãrä­»»+==ÎiðœqÁ¹QÞéÿ»dÈýº'L'%Ã}¨óu*&ãì. +›ßÂ+çç—ç|¢šh6¹ ’î-éÍ»K݃Ãëa4=·¹†^Ç KÛs—2ÕÀ*âÎîn„%™9QIj†w>1Å=µ3É>±3-¯X^ØeÎÚ8çÓ6î… ÔuÆ!,ÝžâœöÜ/}/ô¸æ“Í1øy‡ž‡8Uôó<Ì!kHÛX§3m‡q *i•Å'$Åy—^ø²hôwBžpIëSS¼sÉqÖ±Ôë8áUíE•OÕÊBT«DÊöä´¨µKªvíI·¤v{¬åÀòó†Ï²“Ò +Òi‚nk ûþêO¿DõFÌ!¬LOwF¬ÍÞBfßZnP¡_}‡uyfû ç|ÆÊ,Ê%…¨ŒAúÅõˆw91Å;O š,½O²I˜=Æ*6îÖ$líG³vþÒ%k¤{'åÕ +6§¤e'ÿ +áçAæ”í…”ìœWÞB¸¥õÀÀÞý,*½._Ðë +ôý=Š^o¨¤à³þL@ï»!=F°á`Ú>P°ó9·óÿ6*gãNAY|šy2íf/Dü}¿ ®3¶ PÐù¨e0ÓiY$MI˜Ÿ8½‡6YÆ… +Ó>¤ïÊ/è DHÜLÕ„_TÂ{‘Àþ80D6 WaáÞ{à%×s1%/SðYT+ÒniCXz˦lY]Bܽˆ¯«g{FZ³úšù#Rñ)àg:w¥­ü’Ȥ¸OÃOÛTmkcò²‡B?ë¡÷{pÎ$&¸'C·Ú?[}Ì>˜˜\X{É<˜šàœNMÉ+7†¹'—ž6¹Yùçµ' Ÿ¥¦¸gègÖ½`ñ9ãPzŠww‰k²P×™9YÍö(ÿ ý¼bbLZ¼þ‚w$5+«ÚåŸ]yÂÜ—œ¥×f“Pÿë/:¾=hútþQÇ×/™?"³ü"ÌÅ/Yë8´:Üq05'(ÊØ¹—‡ $>!8¿9":º×ô÷ø¨ðéPµáA):Ç8ž™ný19Þv 3É8J8øW0›¸r{œwfé ãû쌲iýeÓ7ëCµŸf§Ùg ‡¤6;Ë9‹X¹³³‚+Ûoø§ÑYM+:§i%FfZÕ™Q5m½Âû±~^ÕòíæHëþÔëLÚɽŒ¸éµ+Iè9ƒô ++égbvégq|z}?±Ëšó~½w+;òA9ƒökÚ£« 8;'¼Ÿ©8×€¹Õ Än”".³:>+«DœÊÌ©hIÏð.Äéµ› xu˜qh}„s4¹$m—¥¦E—I»¼á—€’µ/rÍÖHçÁíödNZW» +!)¯šXeȬ°í¼áÝxÚ7%ºœ™‘”§§ÔMÉIM æPw 6eóö˜àÌÖÖ‘Ì÷B.¨`"VI%æT¶RÀŸÔÐJÓÀ)—š…zt„]^/¸’²q/Óçy§÷œãIýÛˆœYð«XpBú^æ•Ô%íÜ¢Õ Æ±ŒSÊüeÁ4¸V qŸ¨žŠ(8xXÖ™q‹«w`lV^ñÍßçì_z,8²üDzÆÕÓôáÚËöó ÷yÈ2YÐOÄÆ<9yÅ;SââèkÑÉùWœ£™iI ÔcgTp†ò©9ÿ˜×é +x«¼–f£´Ã @œSÚfV/=—_LÍê¹›ãšæ­qÉÈÀ—v&:ÚoÝŸœkÚŸ˜éGf:Ž!Ö¶c‰iî¥íI}gbZß sÕ–˜âŸ[b\}Î9´ùŠs„°Éêr.UGœ~–~Bt95)¾ý|*9ÚñãÖˆ/ÖŸ7~¹ +>°5ܾoõ ï¢s ä?WŸ6|_p+Y™Y^Ñý=/ë>Ûnú¾ç@´:;«nÆhBUvÖÈMN9[“ŠêÈý¶/ƒ7?œÔöEôaËgo?åÜò¶<äpèó3éYQ1é•·’>+cS4Poé5¥|P¯"<жBL§¶•d¡þS6ieb–saåuó÷ÛoÀ£ÇÄ—7^ /.?cÿ¼ýFR–Ó2ACÎÅÇùgãc‚s[¯™?m¼èÜ{Øô÷Å'm߬>æü˜“”þ3 Y~wbFt9>Î9¹=B?GÊ9‰ÚÔ øÙå¡ö}ïÇn·|É=ºü¸í«¥Ç-_,=jýfë%óHôvëó8¡Oš7FÔÕ[œï}ƒ­Ÿ.ꕃŽ4ˆÓ NZUÍk¯xÇÃm¯5|`3U¾;"ºô›ÈšÒàñ7‚"ÄÆ»òÏ%Qé奀ÙWF˜‡Ìúyû5ãÀ곎oC7?öôÖ¼òDvvù±êÂü=Þ¥ûœË8î0¾]{*8:ñíæ÷ÈÎkáÙÈÙYð—qYÙÎéå­×ü+ÏÚ¿‹<ªýtÒ|ñw“º’ß…î´|³ú¬ópzüàüÊïÈÊsîOó÷ë?ZZñ·ÐÍóÿµú¬ùHbJÛ±6¢¬ÊÌi;ÓòšÕ¼ã4®=mþ&3Æ<‘gš¿[ù×ÕÌŸW_ +ÎlˆŠc‹CÍ_ï¼ný!1Úv01Þy(ü¸cß”ñÊoמ¶ÙõèDt--=«ÿ|íEÓ7;£Œ£;cÌ#qèëĸèbrBP´ñªóPvFÏÎÎõh¶' íKÏħŠŽÅî±¾ ßlúpéQÛWñaÞÙÌ”¤bó5çáTs°_=Tð+CÒÂ^Ÿ‚Zë„mƒÜf×rPøþ…' _„oÕþ5r£ñÓè–¿Gï´þ}ùkÿ6ŒÙΈà\vZV‘|#)Ú|ÁùióëPänÝßÀoÿhøëúï8á1HS6uÛý¼3pYj†}j}¸õûÅÇíûc÷›?÷^+oTqò_5n ñO,>lþ|õyÛwþÁš¿:ô¥tè+þºÖòñÊSÎáð}þ‘I]ÓŸ¦t5pv7|Ÿ‰O +.l³ÆGø§à~^âþ¼ñFXl½^u²d#â6lsŽoÑ7Á:¾ø¤ùKWoåŸ×êÞ_|ÂØoínø"x³ón×À8ÊëÖ^±ŽÞoùj=•·!öþþ uÓâSh3ïpøVÃGsú¢ßމÏþKìF݇žk ûñξ»<Ôrt7­Ý­ÿnk¸ùÛᨭšOÝ—þ°ò¤þ3Ô&ªÊAžO»4¬›ªeõµèlìnûW+Û¿]|Ðø™£ëÊ;ª¿¬1„î2Ö—þc_Á½rúoµt¢.AEj®ãÈú‹úÏî–¿ç¼üÎÆëöƒÞ[õ_''Ä•¤_'MN‹ËÖŸ7¹ð°â÷ÕKï¼ÿô/·™_ý÷!Å¥ß?å¿3—ypõïhp°å£Ðµæ—î³¾ ¶|2©½ðûׂãÿ1«ubTV‘SÕn*Ë–žp\}Þùƒ÷jõŸœÝUïÎßoÿæ¹ðÄof5e¥^ÈŠ’oä¥KO‡c8ûCƒ]XûñÒíª7µý°ùŒy0t½þo‰13;×kØ|£(ŸÔúE ¿äîâß{Jß ö•¼³ð°áÓ }É»ÞΣKd§£·Z>]}Úòõúó–¯Wž¶|¸Ùô‘ÝTùÇà`ÝǯYÇ—Ÿ0Ž¢3zQj\Ù´3*¹´þš{ úìÇ¥Çíß„€%½W‹ß…þ.Ùx­([|&>µ3jᬿ4Ô®‰OÇî5}â¿ZûgÿÕš¿ØzJÞ7\øÏqQé&ÔÓöæáµ—ŒƒÀ¶KO›¾ŽÞoüÜ;Xúž«ïÒŸb÷Ë?LN±ÎS><3§jÙ|Ã=Cÿ]‹èÍæOVžt|·N{äæÐ+_lz§îÃuð{WÉ®¿æÞ™Ñ36§4q—†CgËŒsaxrÎXö;§¹î]OoÕŸíÆ¢?ø>ºÏ9÷Ôç÷ià´­×ܓޞڿŒIŠ~3Ä=ÿ›§œó¿y¥,ýcäïÈòàdàFóÇÉ áÅøïtz‚þÛ/ûfgk·”üÉ7Pû×qíùw@“+›–»õZR•\^~Òþo°æÏ³úÒßÎéÊg³Ôüé^çéÿ1®ªøpñ1ûxjBU·õFtiñqë—‹wAs» ?«?ˆ>hü>ÏeFåMëcfyàÿèê°´$cïéY–•{®ÖümLtæ_F„çÿývû±ÿàÿàÿ™Twrc¸f߬îøÿ ß*?kežIÏt÷4ïOO2ãvAéÔr““ÒÒ¬]/LÙu¢È]á¡èÆ7ÑÛu V½¿ô°ùÛ씸Ôvµî»êþøßBƒUGH·IyÜybÂxá?W_Ö|ºñ¢ú“èÍâw–Ô|‚ÌI*ïðŽüWü5§ŠÞ\á_|Üü¥÷Ú•w=—þh5^ü£»ê/ƒŒ#ÿûjí¾]Æ:~Ðøé¤öÒ¿¿‘ýfT~åßæ U¿Ÿý÷—ìcÿ6f*úëÔûÿ¯ÍPöíÔtð.÷ÏÕÊ¿8»Kß±u•þaJ}ù‰Ïý댡ê/„Åïßo9ñk/¥ǵuïrü&Ð_þîú£–¯gµ—þðšûÓ÷uûmô>ï„«›{dñžô|rBÓúöóÚ“Ö¯n5|8³ùSOOõŸ]]•ïFoq~œTµ~èi£õñÐÒcÖÛ/¥—röGïvî‹ÞoÝ?©?úÿ£÷þJkëö‡INrNz/&¦W5jŒ‰±Å{ïQT¤÷^¥(öÞ»ˆ    ˆ]¬€H±krÎsîs¿ãýGÞíýaF’±Y¬5?ͽ™³1í•]ÂγôQâWZàž;Cäè .lgñÝ4Pâ½ÝWôÉØ–ýv¦*Áeº"åñJ+)h¹ `À…lt¼—ê!¯—› ïôÕy/TüÜç툨+ƒÄØ;¦d„EBˆZ¨?Ÿf>g&ß™¦>™­N{ºÔöÒ*-ù.åǸ “#]ö•l€ÁôàZzqÚƒ¹Úì§¼cDÝ¢†Þáf~þkœøúLMÎ6÷yowº×_è½Öžëh­›©7æÙtEè=ÓhYôžŽ q* I6@ƒan[Hßå†âëí0_ _zëÄY/lpîƒ6º +¿˜ñ‘‹Í¥3bð³…Æ¢÷ë}¸H«œ–q„‰w·ûËü› n‹ €§A‡Í7€?ÍŠó_®·»ŸkFGÉW57÷­¾ªÈc»Ÿ”0'.|½Þ‰õŸ«G|Rs³Ì×¼\mE|žä¿!ÇºÑ iŽqfÞÎ(b†lõC=WZòßÌUe?ÓW$>˜«Lzx¨!å¬@?/7—z-Ö‚¦+`n uÐ7+%WZоCüüç9ß]/ŒÓ}œ’åä77øO7ðO%;⪜uÝXý8Q~S÷éj™ßó‹öQJº‚•zGFŒ¸¬fF_Ó “nS#oÈHa·7» }xÐÀˆ—gÅ1ÿÎòé69Ì£òa¾&ç©‚ž|«~y²<ãñ;Ó%?øÃSÜì¦AT„F”ùb¦"ûýlEƳ>lØU`».u”|¸°Ö•öºŸ›ú¾—ëº#ÁF›q€¶”øØð\nÎy¡áÆÝD}¿Ôõ¼¨áF»´àâwà’ßXŠ_ï@|[o/ýd@|Ûîƒ]h„ºõ¡þêƒù]¼¶»±öÐÙÐ]))Í4€ ·J0!ç¿Sû¥Å$üžÆ$®tf¼Ÿ`%ºZGxPË03s½ ¸ÐTôqµµÈÃÔ÷ÛìBú)©/ñ n ’âß9GII:~Ä }ẼùÚÌ—2âÏ;³åvzJš¡ñUUžöP]{ßÒ[òÝÜÿ¾Ü\ðf¹üf½³äóR+Ôw¹µäû¡J@°Ë¹¦~TÀRsÎKckÎk %ö¶8×÷Ò8'ѵ û¤ëbxfÈ4†ê—³UYÏÆèñwj ‚þ¢%ø\˜©/p«ÇÅ¿ÅDþ ø8R\Ò‚”v䛼Èo¹5úþŒ(䆖ywµ»ä{=:ù¯àçÃÉZL쎔SdîGí|2÷ä¾_iMÿ(%}½flÍô8ÔPÀk¥þ+u¹o¶û ‘ë=ÅÑÖAÄ­ð[S?Âo®¡è=3ùËåºÂ×à v -€Ž›¯J~²T“ñÌÜõ>Ô ¢Í²²¢’€ÛØD÷ËK=аÀG/Öä¿\­Ëy¾\—ê2N ½íác&8pÛ#_Å…Û&ø˜­!tQ?ÍTe?äÄÝZÇßÝhÏ|å˜Â§Ê+Ÿ,4av‡›½œ´…ÆÂ7S•™Ïƹ9¯”åÐפ”wëmèìS˜»ÖCŽÖ×§=­OrYlÊ|nl*ú°Ý… ˜ª‚¼_m‡†^…ÖW忘«Ì~¶Ò~«åÅß\g>Ýê(ú´Õÿ&, ¹NOúzs¡žø¯ÏÜ)ù¶ÞYì±Ù‰üY‰»šúÐPyÝGO{ôó“Ë 9îÃZ?6¶{»¹èë2lØ_C؈+-ÅþnXFJüÙÅ÷Y9^×írlÆV™ïRs¶«¡.Ëe¾!÷ÅteÖó Fü½)NÒSSâGeIøí&x ¿äC ø  [.ë€ç2¶¼›§=îE~»¦¤=XëÊó E>ÝĤýg^T½§$¦[m2Oà¡¢,øXUb“~™­¿Ÿ¬E ò½v¥tðVöÇFG±÷N?Üg¸x4'ùÁZ ,Ø6BNžâÄÞÙî‚ý° QÒ7:‘!{#ȨÿoŽRò¿zØ!+ \nK{u¢a–9ü¶Ø÷^ëF*99.c´´{+õoÆ¡SèxM}úGZŠû•ÕVbÔ´¸ÔSFI¼©á%ºl¶AÜ<‡mõaÂöåøÄ=6ÖPŸõf¹½À×.ç•nöÒb6{Q~½Å_6ºK_¬­Êþ¼Ö]ÖIM~ÛILxi–bÔ‚œçrZòm3ñÎ=ùÑ0)õ¥„‘é9ß-Žý|=èÕ}P+,üñ¯iFÙÞyOÀÏ;r^­4%º,7$½Üè2†’”AÎö¿žîÿêâ(??È@É:aÜãÙŠG1wU¬Àc”o·M}`?‡7H~¬«ÈvÿÛÀÁÿ60ÑöQlô\UºËb}îk%'ñ!9êíÅö’ÐÇó°µ(ïÓáåEÅ[NpʰQ6iYÈLmæ«dÈvlăM :~Bò ô“MBJ;PaÒíã%á›}…ŸæÒžÏ5d¾tNЋú‘?;K¾:Æè9»Ròvwá§°‡]ZôÅdÛÅî’@«”‹ßSÖ +¶¸Yóõ(¯1v†K*òê\EÞ‹}1öŸÙrÚÙ´ˆ³+åCÍt­¼Ü–÷z©>ý‰–—ýHF¿Þ ¹dl„úš%Äd¸ðÕz;9j«‹ò³áwI‚»¡¯Ìz:[›øþcÜÿ`Œ;™â L}0_Ç(5{w”ž»Ò u3Td?Qs2ÓÓïË©™/ךÐ?-ÃÂÒ…füÙª¢Ï³¢Ü:AÊ=CEúCkô‹CIɘi†‡š‹5,øö0:ÄØ óÝ%¦Ú4ŒRã *pŠŸõpFód­á£e<™g½· Q“šÊ¼7ÚQ~Ö!|„uýcg²;L)×Ã`—“xµ“à‰K=œÆço d¸Y$ÄÛ»ðHYŽ;Rs‘ÛÃÈ`ó&Æ©âÁ-C¸¸ÝRߥúì×qÚS€ë~ϲQZži”»ØA 8ÔT ÷Õ|ü®¹wþ]ÛaˆÏáTá§²$ÀðâÉŒirïR;-|©°Ú‚úºP›ÿîüw.æ¾2¿…¦‚«]0_ã9f¼¦Ð³—pc±ºØÓ:HˆÚ•à#ÍCÈàÍ~ÈWóØÏœwKu.ÖB²EÊ-tüý$?ýÅ?óÅ4?ãñn2ì@Ưv¡Âgë _v%åm#Ú¿p¹½Ô÷ÏiaÂÓ`™ÿ¾Šž ^“ÌR»“xªg Ï–*jÓ"¶IFIYnC|7¶ |·Ú‘¾Æ&Ø'ç0#Ï2HMWpî-6f¿³Žã€ušÄÝW±Sé* ^¯v"€šÊ>R—“~ÍsÙGz6á`ª®îdZT¾Ò]ú]#Jj(õá´ òÖfs µ0»¼³Þ‡ ×7d>Ûì:¿OÔË·Ý!J¢CÊÎS–ç¼g$Üeb÷Õ̲õÁB;™@íÙ‡1á‡Ò² }¨]lüÖÀy_'dàá$ ¡«N}9J ÿk±9óÝdUž—Œ“òz¥5ÿÓ±š^:õŠ’÷•"hê©ZH_o-x·X—üXà ¿-cÞÝìÍóØ+ Û#¥¯ ࢄ° »5ù‘{“´B}}þ‡AJäc?þíBsÖû¥–´79êçlä»”ÿÌ>A„üêׇ÷¿®d‡Ü_íÊÿ¸))ñÛ,ùj“!#w$„à\>¬÷Ó´bþÎ-k¹µØ{­³Ägœ—è:B޼m•#Â÷ |öL>¯8ÊíîBOÉÏ#­Ø.ÇÇ™GÐ?ÌäU K+¸‘É!€l>Q[2€~déGÇ8Æ…¸Ýq~wœ 9œ¦ȰýRŽ]G;u\\9êñ\m¦ç‘Š…vLð°Gjfñ pý¿ D°SYüÃ*-ôÿg‘Íþï†xàpš1|93T7ŸÍVЧÊñ6)Ñð# qÑc„øfbØ£yQ©ïÁp%Æ)å@öÇi9'ZJiê³5ó³ÈX9çß]°ªÈ9›}Å>ÖÒ¯«­¹·³>M¡“ö”ä¬ã6jgœ‘½9ÄHÜæçÍ6!?¾û›¥á·Þ +ù`þÙrG©ÿlâ{#.ún?!ÅÅÔÇͳJ9ùsM%ŸÆxIe¬˜{³5©ï6ÚÁ~æþ²à}5s}ÿSß\øþ@ÅY¥èÈ…¦$×aRÐí1vìÃNLà_ݘ ëä´±Œ_CYÔõI!Ø÷XMCþš%Oµ¤<Ç8:vµì¶Ò•úê|­¿ ôRë!Ñ1΃íMU²·†i©ÓÙÏFÉ?oÈ™ñ/ÆXÑ:P¾—¥Ìгm¥>m¤¨‡rvÜSS:nWBLöz2É.;PÑŠ¶e_« +»¯P÷Õ"ši„™kìÂF9:`»ìyªÄÄí˱1›=e~¦x˜eåcCwFÉ ÚšÄÇsM¥>)9Á"%ƨ9°£iË®f•nŽ¢:ôխΙ¦!§ŠÛê)ýlhÈ~¡«Ê|¶Ð\èåPP²ÌÕˆS_(¸ñœ +2tw”–½Õ û>_Ÿþ|©9ïãæ01f[Bϲ‰;ZÖRséÓ&ÀYšS‰O>¿Ç°Öþ4%Ny5^soGŽŽÜŸb£w'hÅî²@§šOt¨¸‹mìÙî-ôÚê/ð¶*QÑ{zÔ +˜<ó 2tOŽNoMJJw{ªBDîMW5™•<œ±«ôóJGþ»þ¬7‹í)/ )ÿ^äWžÌ ª€|äÐàÓNf+«´B꞊W¶§`í Ó’·û)QË=ÄÐ\âÓ)&â‹s ždéãç­6㿯·âM]Ä(ë09Å©æ•ÙtÌyúýPÁ.µ2ÁŽ1&ô@ÃEÙ'ùv%1Õ<Œ µ ‘¢LvF &î¦VTôa£ °ÛGŽ·1rv$ÜBc75V/†¾[ïÄG[ÆDØårÜTUá+u%Äk¥ãe#ë„,Û(:j«»Àg¹5óÕrG‘מR€ÙîCÍÕ¦?¡Ä=gd¼ÔðÁ_—‘@fã$œ²uèÛKø¼ç+kÏïÙFŠ|¶‹¼7†à‘»r|êÙ4½äHCHŸoJ³ÑÉHÞQÔóVz™)ZAþs€Çõá¢îRã³Ò>,4Á"ô-¸¼ÂÈûÕ¡wþžqö”8€Ë‹ƒ,R¨ßj7ÄË<Žˆuh©p‡–ƒÚU°!Ö1ø¼&¸0À û9$Eßw‡!_–]fkbž8eøŒ#˜µÜE<à÷>Jæš è5§lGNˆßQââvTøç £Ì±PÓiÑÖ7[&Ê‘æQJÚz<È4ˆŽvNЊÎ{ ›GP¡›°ï[}¨ÈC Ÿf¨-ñX¬-xml,ò1õâs޵åt§†U¶ÔƒŒÖT¦¿Ü‘ѲŽõ••'‘Ð*ÇÄoÁ¾-´='«SÞÍ·eNQ¡¿€Û§äé›ÀïNõâšm@SW;~Zaö3Koiàî:s_Ã!L—“¬BïJfÑvO‘Ï$?îö8+æî87Öu¶>ÍÝ>^wÞãí¼îM#” ‡²†m›ð*£¥ÛJ=F‰?¯iø1w×zòÝvF1çÏâ;äìâZ’©—žxó˜µAèCk¶Ïl[¦çÆ:f}”YéCœè*ªÛ¬çÑ™æ ø`–Cÿµ,ÏñyF >–WòXZ É8\µ˜>Ùì¸^Šˆ7ËËb-cØl›’Xp¶Àã8u´²ÙŽ‚Ö l¼eŸ¸¯®)߯¢š$¼¼ÅŒ`Ÿ+(pW‡à¦ã=dd¤[,ÿQGQþíQ4ô±Q̈4w1—ZßÖ†AË}°/98ç*žMYAÚ’ +ŠýŒ„•NbÐr3ùûz;3ÒØÌŠ˜®$~ä†]ìCfÝ›=-]å™–.vò\%h‚x½"À{îI«‰›RA‰ºõe®…æP×Öm ±ÀfÀï©xCøµ^”|«­ÀÝ9ÂÌZí(O›íãNÔ\ÄŽŒWÜ\–z­‘qw¾’y$i­=’¶zK¿; _­£ðÉ\uûñ\uóÑl…Ð>Á,¶MPóŽf‚}›p2ËÆYÇJB· ý—ÛÀnk½Pï~\\-4öA+,ÝUÇÇ2÷² +5B»D„Zo&„Xº(ÑûÒ*ÜZ'»xº²ÐÍ2ˆ‹µŽàb÷TtÈÁ³x_U¯…=‘±Cï»á“5çÙÒb Ò{­ƒœ° x¼í!lØF?1ÜØNú9É-ú8É.ú0WG74¢}æ[Àg2?.¶çù/ò*¯ÕOü½Z=`–ã³zË~Xµ"îþ|“üx¹ªãx‰IØÂNÖe¿1´å¼ÙU¢cOÊ' •õÖq^éV9ñ}}×ïé†î_úš&ÛXiô|Kô›¥îô÷V :öxEXëÆ®ôpR&ª(ߺ)%÷[qù7…ùIa£Cþ( ò¿îå +xó +ôòáMÐí+—@®7ÿ}{~ÿ1áëU'ßu»óÏ"—ñ{™Ë°h¨9“Ø/ŠFÒçñjìÇ1>âå û¼[rOɼ†®I‰ »À¹P™ö'75æ +56øbZð‘_^ƒbÜÞ^l„e=«G$=Q áž›}Œ¤ jì"F; ?¶¸ó¼D…ˆìÙMF¾jÅ–=¬‚]e&§\BE„_,ôûzq‰Ÿ~…ýýRÖ—Ï"Þ¿½r…¾{ +¸_h‡g>\mg%íH…ð]EssL€0t“~ÌXžo­Êžª*•00/º1»ýØ’GνÑ‹*|ÜP”y§(Üï¢ûÓG —woƒÂß¾¸ÈH‰¸>D/x¥­Cþtƒr°@ÇíhH‹Š +™m/óQUç}Ü’RŠt•üÕ!f†ŒSúDÁ†¿œ =t”Ÿ†‹ðn*‰¿ÅL »„Ž +ºãñþ"*Üÿ*)&à +!âûŸ µè¸}5ë˜bbœúrææ8!~KŽŽØ’"ßôÓ,ã@æš)Aºjªß¸€æ;Ê.sëÆg>æEÞ‡†~¹\xÑÿµ+èýƒ; ·Ï.Ò´ã’ÞJy9AÆdÎþ$æœâb<›¤ôôm))Þ9ÉAéy$û$5g¡£ØS#(x6S…ñ®Ä¯ÈKºöûràwuùý2!áÇUjRä`Ý—B_?½æóé +*6ôVUnÜ•­~r¢c’O²O‰è[RnþZêÇBØo]‚ø©oEú,öPÂõmØoã¢Ò×-ˆ¬íxœP+w¹ÉWh©±×¢<ßÿárý/ÐcàõàÆÐëû·AyžŽò C~-þ³Æ:§°™Ë}Y>ºæx“Euß ª°¨.!'ìNàã÷µô"›šß–2ó×)e5<\Tœø‚•u³27þ:&:ðv^€÷ aA´Ë(#ñ‘’—ñÂØ‡IýÛÈ«ù»Âe Ä÷­Tè="ï +½ çRAT$(ÜÛôÎå.èùÛ ‚^=º ºvåOг[7A¡n¯A¹A>šaiw´¢ìçÇ:J¾CO‡†°A³ƒìĉVþÏ¡ +²G=&÷¿(ý +3'õ4*äB˜û+ VŸƒ’=ÝA¹~¾  w/@nn¢?½ù~xºqå2(âPË/ˆó£®Ï6¢>këJßqŠžLU ?,¶±£&j9íòsVô"9åBö dßo ÿׯA¯îÜ}}üöê9è‹ëнþ@wÿº ¬ûÈ×Õœãr&äùR;ö›q€o£'Ûxq£•4ïf,òi åÒ€‚ݦg¦\Êö¿ïý”éó”çëŠÿäò|âzìÇÃÛ·AþñèÕÝ›ç{âåEÿ9Y‹ðÞT "w´¨„å¢Ï³€¨é…&57ÓÇLÜëÑÅ·Èé —à?\€‡€á H· ¯§@Ÿ\î^¹ºó×%Лû7@Ï€ÏúÑõr-,âÁLcáGó*|m¤Ø×,ÃE­´Ã?/uྊo»(¥÷«aàèø¸K%áÁ l?/Pì§÷ O—û ÷÷î‚Üîß½¹{tïÚuЕKÿç¼\}ÿüä•0ßÿHËgžÌ‰*ö¦ùä#=Ÿä²]9mµŸ¡©ÇnDA¢£#ÿÄFF_Ìôñy>|úxÿ(èÅ PÄ»wÀ¾ß½¸}äöè1èÁõë Kÿ=Þ/ù³'ˆ‘uO[‹ÿ¶>$„˜d­b»¦Z´;!À¬0ÓTõðý¨k%<ý!5ؓР?ÝÝ@€¾>s¿zz +\ïÖåË À{¼¼ÿtãò_ ÷AðŸÁJÙ¯u5yoÖû`G³tÌ¿¼Šãe¡Ø(gå­Œp² ÝÄЉjø{ ·ìýáQ͹‹‰ùùG¯ ÷xÔDÀÿÜ]ÎòP߉^î ÒˆÐKøä°›ó°°EiäÒÖ_}ÛL+½ÏG\£æC.cÓó.Ab’þððºðèö]Ð}`o_Þzÿôèç§ï—ð©YwêQðW"bÐR;ò«c’¶kyhãh9t^RY¬îªÉª)¨ôƒw™}¡,6úBzpÈëÅSÐgàæþôíÝ+àÜþöä!(æó§ ?=Ýþ %…ÜkǤ¸Žr +>.÷Sâõ„@u5Þk²†þm²ÔÉ‚=o Wa ÑyyWƒ½=AAn ¿·ïA¯î?=>§À™=¹Þ»ºùçUë; À—ïAea ×a¹ôµ˜Pc/-ÎØÇN2ô +s¥Ut¿.Òµ¢4ûj%¬ðF%ªì&.3ãr„·è­ËÐk Î¼]‚_¿½{è +zrûè9p^®\îpýôòѳb/+ˆ·– VEͯ  ƒÛ ?í()éF7ª‡7\ÃúZ…Ź&ÄüñÃË ôíõsP¼§ÈãéS`¯‚nýù'èíWÐý›w@»‚¢}ü.Æx¾TNx´Ô†‹ØUÐr7%øŸëøÐÅ6ìwC+9p€yÕÅĽÁ ·Áá’¿%øø€¢½¼A®OA7/]=¹v ØÇ /¯Ý@÷nÞøâ6(Âíý…¬¯·%œlO‡ŠQrhà³øœýY.Á¡eÁ6FIñµ¥o•u„ÏUÈ⇰Ki_¾‚’9úÁT-ɵ—n–5 mêjñR7%z®‹1ÝIúÑJ-~‚HЏúé-èÓSïË× W`ï_½àâè-€ÅÛW¯ýßõ?gèùì ÈíésPAø‹UÄ?ºñ×6û11¿—Uû³LÌî´€º¡¨ ›&kªWåBô0ýFͽ‚Œþ#ÖÓãBÌ'o`o|@žÏ_€®_þôôÆMà}Ÿ€><{ +z œeÒ—ï¨YéwĈŒ÷óeÁº†,×éANФšâ9"fúŽT ûÉ·6,åi‰ó^Œ`¼D§”Þ*ŠÌ½ŽN†Þ¥æÂîö³êbÕ=esÝíÔÍÑÖ¶¢‚h2Ÿ}¦Z¼3US¹:QUõó’GÛ˜AU4¯.6Ó[Œ@ºVñOp<7z.Áµ8¶ø.$&÷!=ó6>)á6#%ŵò™¬e¥ˆñ«Ý¥Þ›ƒ¸‹¦‚¹­3Œ£ÕÄIE7P !“ïÔ òžIkÄqíâšH.’ò–˜[ú ,!ç*$<󲟻'èýã»@-?=¿÷”è|™’ +~ÚŠÂûêê…é‹ôèm·À¢aÍc"ôü,B¦Ü/‡Ä]“ñ°2!ók—í^Ef¼¦a%Ç_úúÎô +àN×;¿½öýðúz1âkÐÅ´ðÔ‹Äü+\Xñ«!.Òk±b×TÐ,c\ˆc‚‹:Ò +«Žg+kö¦ÅBód5O;TS÷Ab\âí̸„Ë4pñ]ý®‹Kð¬G}Sð³-v–Ÿ,ˆêŽ—xÀæîN +ˆ]uåšªŠ¡he†T“±9Ùýüì{!ÂÓ”ÊJ¸ípÙûÍPR°ïEtnÊÕ*ìõ>ß/Bšå¨}-c×s…Ûꦦ-ÀÀlŒÕÑWGk ‹=Œ¨éf‚¯D€øÐI‚¾^ikAl tp7‡©ÖñjºM%f[”B¬I΃ڧÄ<ûl«Úf¨j°LñÐÛJn©Y#$¬M”#VU別±*ÜÂ`=B×ÎŽœéà%,vˆV%½•Æ‘ÎòÅäJ_l«{4ÁCørè*X»*Ø*çÀcuUe׈ESW»¡â¶TbÖ¦¢’¸ÒÍN4v‹r–zëŠ'»‹´C}UOEZט8"ª íd0Ü«K!wšQ¨—ã•ikC D»ª¡jOÕP·§®ìOñðzápFÈÞ›ªà¬0Sç;È?׆¸[£•ˆ¥ÊBu{uªª³1¢­)SV×£¨­ñühø×š¦Ú yc]rŸçÓ+®Œï¯/]›¨¢í¨øè t[ÆH_íD|Ù‘ÓÿYª“Ló(+LĪœ¨â¦ö×s†+~·´dK[›³ëÈX×6N]@_e{LGðy²™ºÔ_[läY•„T›–Qâ4TTÚõ5¶™úöÝ™ÆÞƒ¹šö3 ÎСæqJŠQFˆR6—}R¶ÑÂX1˜¬´lìi—¸!¾…_î?P- +l)/÷h({5q~¬H›…;S=ꃅºÞ=ƒ¸ö`©Az¸\;¸g¨¬;¿7a›f#¶ÕŒ¼e %V蟲¹ü§º‘6×_U´ íªš¨.™ì¢†O°SÆš˜A}€î`ÝTí¨±ÖŠ8í?se¼ëœrþ³ ýg¾¼òHKCmŽ`"CĈM /ϬS3¥-ÊØÙ†.BÀú %f]hWUÖóJä­N⃹^NÖô°¤y¼«"oÅNöŠ —¥ óDCå®F@ÚDEk*cïoA¾Ïógk͆½Y|WM˳ëÔõ‰rø‚¼>ÑS‘>Ö*Šo®IT´pÂT}ueê‘®n´¿ ¥'.“£æˆ¡‹}èïnVð1K]Èo& êÇß[5²}}›ò`¶®Ó®­®0«+¨VÀl’┵Å_êŠCn(xؽ©rªIFJ±ÈqѦQìO› +Àê-{oŠƒ:0ˆ«­n™Sàn¦U~4Û";™­k?Zט'¹hÓ5su´!ÅE¯ÉðY€W(:›­îOU öÔõ@í²¡GÓä¼Ãj±i‚lU³Š÷¦ê›vÇjN•dVó1ã|ŒYQÅvNU²m2JúÎ 9f³±ÚOÙ’5•o/ãHjk´¿!B×úè 69¿ìpRÄÚUœÏ«¨=›mQœèë{œ“l´SË*Ý`A,r^ñ¶„W°?UÁÜ×Vrm>Þ©­®Þ™¨îªkE&%·dMJŒZ—¢ÌãÔ4Ó()qg‚›ëå¥.uV‚m=ãûË5ö¨Õ ›š +±+ÑÑ[ƒ`w‡ +“ôkQ$¶Oñ‰;*uo¶ºÅ6W׳¦­oݘjé^×´w¯«jÙ ƒÔ¨Åa!Ø(¯Æl«8C{2+äžœÿ둹ū8ïƒh›¤æÛu\‚s¡²àüó~è¤ó~D':jÑ™‰vN2‹Ìr6XYü΃Æ~"óŒêÎaÃxEÙ’Šž³¨`BŒŠrÄþ¼ouýÐѼ¸qWKÎW´/µê«;v4ŒBÀsqŽæß5 œíFi+Ýpß] ¾7SÛºÚ‡ 3´€ß¯ ~èpQÆ &Ú4)`nk+Ù½‚Œw‹ÃD I#Gsâ¦# *î@ µÉa!›ÃÈP»‚–}4ÉC¨¹ðÓyw_Ï!lKJü¶úó½VÚSŸéëÒÞMð"\Œ93•µ†a>S^Wüäb–›ÔÇúJñžŽ…1JJƒd‚ø;1Ow•ˆ¬_k•ݶùš®ñFpEI‚Ÿ÷š<™Šõ|:À3Ðu)Óêx†³3Z´ÐýÄ9I€é«›¬SBút'2`WÃAïk+Ê´Õµ‡“¬=5³ds»-‡‡Ï …Ó•‚s±*9¥»JF¡]Å,Ù×{¨çàmàQþ–aFÖ¡®¡s†ŽÚ’ÂüבASNtÄç<î—Žýµ ª®sLŠ…§‹MŠãåzÙÎlM»M_×¾««®5©èÐ J¦MÃíÏ”“ŽçÙØÿݪì>ïq{8ÃDÍ ¿±ùdz䛊˜| ¥AŽÊÙv5³lÿ|Øš°þWÊùÿ.±){JöJ⛡îc•³á‡úªŽ½ùª¶íIzsIX{h¬ýmwýÏZ¹ø×—¿?K+[•æyîˆEGqÃñœ¸þÐP!>]©îj‹wœçé4 áT“36‡Àž›ý¹§Èu ²Ò…ú±;JN?Ô³°û+ååÇëâʦ½Hјâ¶<Œ-Û_¨éÚ§ƒmãˆÈ³JÉ™á¼g3 ãT¢6z³¶ +ƒu´â³h¶1÷¹®*ùþJGλ½I\Š}~:KÇÏWµÎ aÒG„Ñ®;*<êÌX3bW’3v'ðIrlÒ 2fw’Rv¼È¯9]¯•›gÄÕÝìdWó¶ðïE>ß6AJ?ÐPs*\ü¶´èë|kò“¼(òt•Ë?ômw’Sv0WÕ²?_×mÕò ;¤´Ý±²@ûX©ŸIRèc‘#¢þ³!jµ«¸È¥Nvîf3ïD[Û|f(gœÏ´Ë0¡¦~´ÿjO±§F”ùÀP_ìaa¤Z† ‘V9>zs ìëö@±¯s õ п Ô¢墳Qõá4õ8»6W‘3rÖÞ²)ÅĬ÷•Dü½(n>š­i´O0Ž1Z–©·ì‹SŠ‹9›*'Ø•BŒ¦™ÞNHuÙêADÿÖ Ë÷5<ô®‚SÔ*dGNȶ«éð=­€¾=QìD¤3 +Ogi¥Æîo‡’ùµP7`›äb·Ç¸EvX¸;).ßQsq@}ÖŸÍñÙç:º«Â%œÏ'8ŸÙmS“ÒötÄì#­äl¶ºùdX÷$6yc èëlc¡»e„w:Ë!œÏ‚9ÑS +ŽghÅç÷ù,rrÆÉ\9ýï%Ȭ€G[TØ´ccƒðS +Ç ¶= +þb/ ;4‹N–¨¤ÓUžÈ¬dB6F©Çóv|Êùs'Ó|ê!ÀZlêÑ46ý`š”;ÈHr‘sr½ìçÏȉ©;JdÂŽŸnÕàSlSøÄ£YZÉñBEPw½€¶§0Îæxô³9ZéÉ4>sµ3íù Ùûʤ(êÍÉ4 ¶7Å'o “íç³nè„£9LšY1ö#ƒzq¡£èð-"Â:AÎ;šã’öuÔÂ}}EõÞl£ôh¹ªëhUÔpºü\ÕØu<âJ?.Ô©¡æŸÏD5c§…œ} ç’æ*Û«G¯ êö¦éÅN-½øx©eÖ9Wß·­â!¬*zÁ¿Fí4Òÿ™Œÿ·&lþkü:Ë QƒpéAF>ÿ{RTýðÏûceÁ»ƒyÖ›3\k³žn´y™GpQ¢ìw‚,¿»{zÞ©º‚ö[WN<›&|ŠN±)‹,’Œwÿ10àç|ëÐ1P¯–WÈ%>É¢$$:´„”C-1{_…ÏÙÆþ4 K¶{Y9öj⾜–f“à#M}øvðg)>ÆÜõ^ëÌza‘ƒíJzÎF?)×)c›d”´5 6r­Ÿ¹;Ê+Øç–ìM²Q;Jzî9öNg~¾æX_dEJºyŒ”´)ÃEZÆé@-WŠgù\Às0ìZqåáLUõÙ4 z¦Ã&jJ‚¬rxð¶²-AY'C;þ‡M%bÌT×îëØ'À×Îóù]J|òb?&¨ñÄØ‡ŸÎU·ªêœÓ”|»•è”M‰ŒpÚ²œÓªŒS"* ¿¯FÏ×÷ïÍVÕíÞÉ~>SEŽ +·Œ!#Ól çÑÒ6±¡;2zþélmçõަłýIÖ¡ ¤möÜÌB‹”œ8@J¼»ÞQñ?«5Cÿn‹‡Ÿ†s^кLã"h¡³ÈçpŽ…ß[7o©Ø¥f)%íVÅíÿÅíÿ]µüφ åPË]—À¾.ö–ùlb·Fðá‡S\ô¯YqÕÑ”y¨åaàüäȰ™Ú´'#¤È»›ä€kp£åYo5âä·ŽIJñ¯E÷ŸU~åÙR9סãb·ÆYEΙê–ã…Úë89w©=ÿÝj;øí¡ÈiótÌßÓ´2ëŸä¿ïø;œ~-ÑP{³l‚mŠð ~`à’­”ó~/òX‡:JI'9ô‘¡ ‘ý{¥Qù{霻ÈM9Äß1ƒLtN£SNçˆEÿY­hߟá1Â9˜oT8uUâ½).â@Ë*;Ö1Jv%ð ]5Ÿ8Ý ûºÜŒ‰ü=%M°‹ä”ô=)!~³½ÈÍÔ¢CFM_ëG†´‘"o•'yÞszkgl × +ÜWÀî ]÷úþwN(ØPÁý‚øçÆÒÄŒÕý§ ür·P'€‘µÁ¢¯2vØóçtMØrp ëN:Î6L‰[j(ù8_“ûÜP•ýl¶2ýñ\eò½â¯65s²žá~½ÿÁ&gïNðð{“äÁ$²;†ˆ\íÉüh‘•ΰ) p{OKƒ:Ôø¤ƒ)tì±»§G®‚ýÖº¡~ûj.ioº¡Çªa¾Ÿt:EÊ>TS‹jB†s’”fUàc¶Gpá3à×ëøD]kiÂJÔ_Í(°H1a¦þÒÏVÀï“’Oµô’ãiƹ¿æ„œß@V8ï{bÃD:ìk²÷Æ89ÕÐÔšŒE°(™¸íq*ØøÚã9Õ9I+ÜU³œjz‰}œ–e“½ŽÝ›`–ž?z8S)<4Ô¶ÎWVí(ÉÉ9)i£á§åÄßÙÁ¦þš©¨:8É©eÀlJVé e4<ì±–¶*±©f.cWM‡œ*kþ÷¼gîreóïÅrΑV²§…Gî(`Û#°¯Ù¢ ¤|ü[PŒm1iKJN7Éèf`í†FðCUÎsâûZs·ek§ä¬ö"l*RÁ¯aÝÙ*‡}h BœZlÒŽª0Ø¢Ì÷?[ þ³Ê¦îNÒò滊¿ÏØŸ¯¨9¼ýÙŠ¸õ÷ZeëÑ¥tO‹ˆYï/òžkËû¸?ÃåêE•§s<æÉ‹f×g+lîï:ÈÁE& "l¹êe'§/ ’3ô-¼L›²µy²¶âhZ@=ÖÐÁ £È*#Å9dŒó^ØÜO»„œz¬`n´A=̽PŸ•v°‡J{_#ˆ¾9W•í½9BN›i}Yiû˜¤4ˆYÎ)µŽñGÞþ™W˜äÄlEUêûõTÊ ‡ VwUç¼xžt”¦2Ý}¡ úUÛXâÉÍùúÈ܉O6÷Pc¦ùO§xiw5œÔ{³•Ù€†e?³Ëp?Ízf_yžGøg—‹¼”ïOö”åD‹’ß”"cͲÒàåî´×s-ñ®»c°PãPiؤ8åíÞ¡èÀ÷èЉö1ˆŸy ÓÝØóD'¹µÖ–ûñ@Á(ÚçÁ—{1çÏ1ÿÒñð§Z!Ë®¤æ˜$ØÐíAt P+±›}¥ŸU¹îä Ÿëƒ¤p—C ƒo᮵C<¶:s?Ù†¡>Ûý9ŸÖzSÝO¦Ie“,ô® Ô½c‚ +1¢bˆÅ'+tü ]­ï(ö1bâfyÄ3 _˜•´Ü•l¨u½#Aoö•kD)ï µYï +f¾ð,úŠšÃ9‘¨õ‚ÍALðJäÍbUÊCç<Ü2‹Ü,ú~:'òlU…CÅD»ŠC,Ceá«Ýî‹]ùíªó¹RÕÝgóâæãó¾T‹µ§ lÒùü_ë82Ô*G‡Ûˆ°ÃI\‚ÐQë0ì›mdcOþov=³lOMHÛD­õcÂç»ÑÁô4¯M “¸o¨m·i¹ø `ýV +ìiوӹʺ“ùÚîÍQ|ÜÆ()Õ©­¬tÌÔÔoÈY`]}ià|}Éw›„»Ñ ýb•£>‰5ö—ùíŒáSŽç¤£9<øPIÝמ÷;ïqL‚ý½BE;§ð€ÿ +Ñ·AWƒù&gæ»ÏUÛå#”¢¼çrjäÕiAÌ]Çhé÷Ý‘«ôk†í/Oq#&¹ÝTðsÃÏfùü]94ðt¶0âh¶(r¡;éã\K¤ëJgî[«œ”¹5BH4öë×ñÙÎéê–#`¯Ö: ÝG˜Ñ7« ¿\ÔŠ’^ØÇ)ùõ¨¨7í„H]¹xc˜œ¬C^é™ô‚”»rzÈ~œûŸúšðç@£¶¥,ðf/1Ú:DÛ•lœcœ”º¯DÇüm #NgYØ£ëtVÀû½ð¯ŽQz¬§è©ÅG“äÌ# gÙ†JüŒuéO·Û3_«° 69¯Ô؃ 7 a#mc„¸>a{ðs³å?S•ýa¥­$dg‚8çsÇ4t2Çgj9ÈÓ!Û>ÉEíM1á§s¢ªýqå–‚ÛÕÕ5Ø&+Ø»ãÌ\§‚”¼Öñ^mÏuwÈ‘á{ +t„i¨à‹Nå2ßœôò×<ƒø{YÜv ÅeÙð0§›h–¡€Ÿ¤l'mJDÌæ0* ЭT‹âÇÄïE>e7SWüÁ*£ä.”3·¤¤Øä·µŽbÏÅÚœw›]ÐÏÆA\è`yæ3F’ÇJvk÷s©9÷ÅLuÖSC]þ›qæS}U¦ëj[akƒ„èå.€Aa9àE»ãä<Ë(<|¥#çÍ 6äÊ8õç³}±xFijÊÙGjféÙt9õàY,X%¥~KMIOÉW–:`>Ëe¾†ZèûÝaNÁ‘¦¾Þ6Ɔ¬¶#¿’¯³“¿‚D™_ÿ”S\Ì}¤he>¢}sµ¥4âßYgÈÈsµžúêlï¡üàù¦œ7Ã´ì— ­Ø”=¾Ð”ä²Ö“ùÉ¡BÄnK‹ƒÌÃ%¡GjòÈÄšš¼ +~ú»£érþß+Õ½'³üÖ:p³hÄFÿÒ² û*z„–ü\ÃËùæâ–ZQþãô´R|ò%#ç‰Vùl©!×s« •´1BÏÉð~‘’ôíÉvw¬¯¬ÚèËú`¨Œ¾3_•pß<ñùµÀ¡Ì”óz8©¾È€‡ÿo[Ôq¤'—X‡¡_–«ÒOÑbn¨i‘××3_©(¹s툸œ€—ˆŠ‚Þ~E°?ÍD¬wyM‹âî5{]Sò~¸ÍÐ1û†ÆáåaFŽINÈüg¡²æ÷¬€ûϽÌ>V²; +ý¿ß~ÀHÛ4Î)Ø‘ÓÓ4¬âõŽâ/zQò“)NÜ ÆÿòÒ÷Ò8+ÜÅ$-Iùï¶ e˜ó~©3?ätŽM:p}6WÎ?5׃…©yá·[2ÝõLÔÞ4°3Á„lÊÈ Ž)6âHÏ¥œ÷\ÿwžTp +x‰ã)lšs“åБKOUK‚:«ŽZäf˜ð×.eošwºÈ!Ûu䎊 ÙÓUV¬sÐ'zÿ|Þ‘†‡²²ó,RìJ;ÔM+Êe•Ð!æ!lÔLEò“ùêägç½”üè§FÀcØeȈ“Y>ϤäÂש±çÏ~i¹˜³9:âïe:öïõt—¿5RôÙ<‚:Ðrp«RTš¡ù|ιc— qG>Þ.'$Xx1Έ¹9N޹º%£¤Jx™oÕ‚œ »pWBŠ[n*ü¸Þ^äe“"Bgj3^j„‰WÚ _~é+ª,2ôÏù–¼K…>‹mE>«ÍÅßv¿uÍ«÷Wš¤Ÿ×þW/Y© ~°ÀD‡ ´ª}@¯öŒ\ì£ôÆ‘UÈ?šçŽL|Ò¶’ öMc?º‡Êïø†!Ï´L˜WŠûè@¿ ͲvT¸ €)ž§Á/2€aç(ekrz±KÎí¸Ø žX6£²¶MøÈíÀR›¶o¨Ë9^dâ^¤*[ ïω*bM]Ò#€MõM#bçò/긙gLÂÊ;æ!b*«òÕ}¨¤;3<”µ½âÁ8þÝÓ䘟Mõége¬ÄŸå´„“›51Ÿ„¢µ±Ú×®)\–_Í® ¨øÈ] ¹hWÿè)ei͹âÃ$|±6t|Z‰j€Å†kßø§±YÛ2B^Ppª +—é™@Åý¯N˜”˜9³à„=uO“rV&h¹jAÅe5+ÿ´†™NÇ/¿?„O=;IÍ8¿2T¿Ü{£åWrroL’²ï®¶W¾ù 0À3 }0ÏÆYG Q†¶¼Ç_l|ᇠÑèŠk¬ò‰küÒ3 p¸óÙÎãíšYX¿ŠT°£§CD [rÔGgoÅ5+õ„I’qj©³âžc„Ô˸»÷­£– ¬uR@M­òNU?7ÔgþÞ~q’Ÿwÿ5= à?RIXçXZ`oW{À/wµ Ø‘™ƒÿ“/ùbåPÃzrihŸ¹«§€B:Ù5…MßVÑkŽ/©íA_/w‚nvÕ|øž˜t럢œ;_/Õg?ükõNcSÂRѾž^}dâÂBaÈX—ã–Ì¥€Å-pÙ_lMa-¾>T|?¨‚%™hàµ*çÀƒ + +h}ñ6 §EÎÔÀ'é…—»ci­~¾ÖW~'4S½= KÜš‚&¯õ—¿ÒpbOî(áőυ7F*m ׯ¯AŽô:˜§Bÿvü¯oNkhŽ3µ•ßð«Y¸ µg~×ÞeÜæu[V¬gÐ#¿ÖËÿÏMg~Y$T„uuÇNnãÁj³ìÈÆÄ/,ºÈ¨8.oGO*>rSHE*77ßui(eúNè3ï,|h’p½S¸ä•®‚ßÝCÅxÇ*Ÿ:Úò¯ú¤˜´ð<³x—µ-ǤóTÒÑ«ßc÷¸¤ÿ}vma Â@ŽÛ13p;f 7þð/GÃçÀï)ŽQxôžžFü´Ô4p´ ©ÿÄÍî¥dk›èF½]ÀÇ.ö࢕¢¢ë¶èÇÍirÖ #ëä$>rÞ¿à†£ýÞ5F+Ýš¢TîÎQ«"}bV¥èX7 —¡y#¨¦–ûgK,÷&Ÿoþø«œõö‡°šPx°Àò;!ß9TuäÍ}@Ëöt<Ì¡Ÿï›?Ý? +Ì ã/¨&lLRŒÍÕwf±i¿lM"Ò,T¸¡=ûš®9ñ7KWÑabâ•!ôÇK@.H<&Ñ2€ÌD}¼÷ãjoEôÖ8üC ¡Ò/ƒÄzf@OC*€æéˆHOsŸŠY h³-9¹tÏ bzfÐ ŽþÊ۶Ί›rfÞ9qqô‰xìï(4Ù1‰f—GŸsÏ«÷ Œºµ‘š([oåmkOÙu{Ñ•  +üúËŸ·gñ\2FÉŽŽY{¼$jþË)jÙ7Q!‹­Åè¹ç–Ú@7ý³øô-§f¡õ2¬ÐkÂXíÝï¨|ôÃôÅ÷JrüwNú¯¡™º´ÿ·Éïôhë ’ŠÇ?{Fñ…_›z¾,rhŸpeÇdžgªäùbgÚekWÚ¹/ËâökÇŒ_+ye´ÒOÖúžc3‡úy?ÐÓªÃ*xâæHá#ÿLÕ»?¶€©¾Ù«äaöÅ ‡vmWG*Ù¼¹w¢6f“pN’ÿø‡-£¹1KÎéi5!-3rN'vXK®¡š§›ý%77{òo„fÐ9‘ïp U·6&èÅ[*.Ê5ƒKuÏàR\Óèx Ða3v,,Ô®¹u`¡cv±uôØÖ2úÉ&± „ÀOá0Îý%€%õ¤BŸ–Q4ˆ9›S¸ˆ?ykk‡>°·ÕÜ6‰ò/8»+^{¤È4[?üéRùÝæh=d}XÙ˜àV®O’Ó7\«}ë=Ú7S*C@\—3@[*VuX+á„tœ:·œœÃ¦z€Ø5“˽tªg—鵺cä¶u\tØÄ·‘Žôê:¶Rk½2d‚µ§êÖÊ0:Æ£`Ã7ä<èR7=ÁÞÆN²Š±5´²ó³”ìSÚú⻺¶²}ÄÔ“*^å+ß­ØÞ[ó|¡)÷ªo ½Ü]òÀÚšsÍ3^üàÈŠÊÙ3JÖ¥è›Ó„´C‹}`᎗¸ŒC+›ü²o“e(»ÐÔ&oi©åYl_Û#=4õ(€÷‚^ƒ<[-¹ii˸0Œxyjm»<†KêF'üºÒUýôpžGÙ3ò(;z ƒT¨O…̶Õ<׋K®ým‹ôàäŠôo×,æoÎÐÊB:!×/gWîiÕ5*}u¨ú™kñncþ"R»Ë3R›4Ëʺ¹>†ÊY'€¦Ù…÷ÔœÂkžQDâž“~8Ç滛uk£Õ©Ë}y/=¹W, òEÀ_…ƬßZ+¸³ÔQpÛ-Çüå ÖñÔ¾·ÈáŒò +_ôr|Zn™<²Š› L¸OZ÷ÖÞRtÍ L½¼1ZþöïUA»uñA)Ƈæ›V›gƒjzùê0ò-àS_¬ŽbÓv dx‰ÇÚ‹Ô{7Ó îi\²GŠOòÎPr‘:Km…——;ò®Îñ>œZjË»¶>€x¾-"muIjIöÅõQDìΩ쓕ùd#CìLÂÞ¼¿oIÅõ‡ õÍŸí­S‘>xŸmᕚ0YÛb©ÏD.1`Þ’s.ù¥´÷%KÍÈ?×Vþì«–’Ç_«) ¿¹û«úf(9–JF'¥ðÆ 5ñÂú2~GÃ'ìêø¤]©ìÀBùç_0ˆ‰u+8u>u£pi„šî˜ ¥{¤¢TÖŸËè_v¾àxQRŒ‘¾7/,6÷.Ö7î/pHÛ:|¡OŽñÊk>dÔ’’Û˜¤å¨xëƒØâ?zkS/öÃOt×~ü­ûË1圵¾èjhš^(o¨|ÖŽM9½:L. *ÅÄÍq|²{ +µ­¾óÉ*ïΣsÃ&«b¢—‡·-tøŽ™\6aò·M¸² ‘EÜÒ1°» <ŽK‰ÏpMD¾%V-ö ‹ +, Œ—µ-ÇgyÇP±ÎAtŒRº%¬Šþem•´1AHv ÀŸùfqik£¨¶УµÉê7~%& ˆGÒ|oí{uKÙ= ç ¾¬4 GêEšÈUžHmÉYd‚g¶.Õ§¦”Û†0ñÀ:½µkæñü€†oë)úCÃÍ<­dæüÚS÷æäbGÞƒ –•rŠô Ïì21‘Àøkÿ·×Î Ä…–‡Ý˜¡xT˜¶zwu„³ äïH õ}#éGÆDêšêI?÷!_üºÐ]ýª›q-îÖé,ö”Åüí  CêÊøµ¡¼¦æÂ¼âÇß +‹ï}ïEýw“ߺ¥#Wºd¨ÀßëVÀùbç ÿ^c±þZÁÃÖ¥ù±+CÅQ+cµ‰Àx0‡V>ogžO ÏóH&ýXÏ¥ýÇÎ ýwŠ9¶“êVF o6FIi€¶²wLÍ;&± l–4í[Ä’=Ÿ”“ÊF¢îð…!%2Ã+…G{'QïÎ~jnª¼noŽÔš«¼?/̹¶ÚYzÏ;\ûrs› e_ÀG·2‹ý´À&~¶Qà ¸b@«ÓCZbqða g„\ügkóÀñ¢÷iQÀ>Œ¼–•R³pŸWϬ1÷?N1*îØº‘±r^ÙÃѺ´_4¬’(·è©½`Y)äõŽ +Ÿ³ÄR1íÌ0%úç Š:25Hv´"J@ÙgYç“ã36&1 ~%)e‚˜©oƒ>rÍÒ!»fIóž‰Z³= ¨À±"/þÈÌ£ì›Eì=‹ˆ6qIG‹¢ú£E(Ò·~Ï0þ$%osˆ˜¼1‚¯WÜ.}wó«ôûgþ1ŠÍ¼¶6ˆÉ\j«y´ÜYuOÎJÿ]-Ì¿;)Ìù½—’q}±—˜e gu »!EÄoH¡¯¶µu©ŸdÌß›ü–OކÁ{}WÈ̈|'L=^æ?9$ý‡öæ±=k}kпŽZ\ߨ^Ε!BÚ¹C„µéÝ®%í©åîLìRgéUkGáï«Ã°w^9£zŠ_r]ÓPvoG°®‘G¾:d …ô¤"ÿ©@Û}©lªz¹k 8D-¥Ø«$ånÍÑj—¹| ¿Z6Ü-'f. Þî̳oI«ö«ñ¹+Ãu‹m¯Wúañð,ï Ÿ—kë«z`¬z°éoa ƒŸÁÙ³4ô~ÚhVïX¹4ßáW5 ÂÆÙ§eQ˶‰Æ + ãôØÞ[ày”¿Ü?0µôlÏ1 ~%>sucj-½¾<ŒŠõ©hÕ‡6~£KÙFÑiÛf¡dßQßšçâBf.Þ7G¯ò±s`•´l[Û·Œõ.5³|[_/80×·|Z7†´œ:ç=gYÊ-vŽ3³]3ä¼ÅÈZþã› oÏïhÉè›ç–Õ~pŽ€_-vßp+ˆùk2!Æ!eÕ|I=¶Š¶4Ä‚- &Û£†%nÊ!ŽÐË€[¸»(ØG9E–Aâû-ƒ€÷÷J«rÏ@0to…;´‰Zö,âæC³X°§çaÃZ>v`а©¾a[ËEûçØè- ÌKÝÖ 1u{–šTP +üÓ褅ö¼kæÆ’ëöjb4åä(>í·¹ú¢›Ó¬œ«cØ´Ó³”Œ3¶¶ò»žibº± þØÞ‹KÛÖ‹h^5«nwžG?°5l/Ô7yµôJ ñÎѺØÍi\š¦!÷Ú¶‚Þµ4uFÎÁød¤¬…檛=°÷ß6—½úJÉ-8O+‰ú’ùð{kKElHIÈ ª°éA.Ë3‹_î+|b¬;«¦GŸXé,²1EÎÑ4äÿ>__tÝÙ |n¤®yñß2üxÚœ-Òb ÿtúOGÓØ¿íÑ®šªx¶«F$˜YØ}@3= +LæB{ùn)ä•s±ÆVøk 8ñlù»;'$eï±6Tߨè…<ðL¢’ú0q? ?œ^é!$û§øð•AÈ‹YNÎ¥¹Ðû*ZÛR÷jiˆV²¥o”ø´_Ë iÙ¸3ùiI :´’‰»&Š|0r0 äÒ° ~€9‹õM@þîX—1*Ö&©%û¶Î¹°µÇ´gï2ý¯6Äb}óމ]çü⪂U®hß3uÿ[/l2 Kw4”oŠ˜ìEF­ Tßsv–]Óò“Ó ®ôñª~»wæ’òw¿{§°)ãÈw‹­à;Žžš{ëCU\ã ûÁb:à0ÎRyùÃ…Š™º§¼ÚÞqï\KãŽIÄ;²Jšö„\û(.É9Jò7.? "ƒ¼3˜Ä•nÄK%»ìö4­ð0Wwñùñ?S2ßœ´4BR¶¦°i˽…WƒÅ×õiç‡1/NLÞ—R®8û«ßš`/›àI¿ÙÛX…Ai39¬¡€L¨ì}]ʦ´ú…w¦*jOO‚™9¤€šTt §VýÇJGÿ¸ý×!¨ÿ²(äšèÇ@ѽÕÁÒGkS¸t âý¹ FáíµR‚³þl±¥ðŠ^”|v’ók äÙ/¢¼»_ͱs¯Èx¥wy%ïÎ;º@O—ºjœC€'–á3ü +z¹O†Éñ)™3à×€¿Å„u’Æ9&6¬'W¹d%oפQîYHܶàF;›²m¡Â=jT*àÄ_ìõ=Ÿí$ÈÁ27¤A¦ìú¾3Gy¦ðÉÎt”k„–Är¡x¼¯#mŽÂb†ÎÑ3n(€õ<Á,{ïeU® 3ól#˜·û “/RЇ D葆Þþ·GO(‘5=ç¤?øälòiT¯‚ iøŒ [¾%E$xGa9¶XÊÉ¿ÖOJ»¿2VW°6Iȳ÷bƒ˜¸µ l²[FÍ_ÂDê±e{Õ¤RysÍó)AÉ뀮¡i{¾¾)²·ÐÉ +¿– +ñ¶kJBf‰d¾—¨ïD¿õëÅ<ç 4Í(¿ÚR•ðk{ÕÛŸÖû@·¶ðä]º¤‡zþÃý _O7',ñû B¶[Ës:ç‘WD{¦«>„ ,ô¾E(° #³d¬œ3‹½È·£D²g—tí: Á'éÔ³ë¬Ôôi68 '#7äˆüý%~Ë¡­ËøçJ}_¤w•ßD‡†íL\0R'lŽ\`î…¾Áe=ÿqG'aúg™¥‘úíîaä›ÕNÈÝ¥–ò«ó-ð»ýLÐyð‡;ÿ#g?rOb’4âÜKjnÖ)GOõõ᪇AäÝ¡]·cQ ÃÈÔÚô+ß9ÚjrvŒÃ AcŸjßÚ:rdˆ¬\z„;ÖfCâšg¼²¸3KíµÙ»zÅÖ>É=BI±wa^Yšë(Õ—´œš;ž1j‘µ úÌÜXpÉ%…¿uU?sö—¿ðH1i#Ǻ¦ê>,Õ*ËCµYJ@7'P‰‡ Ì‘•„:´R Ÿì´ºc;Ô¡ÒýÊÚŸ­<þ¾I,>Zlì‰ÄËž‰ÜÓK|S°w¶®âÛ~Ú…Õ!ä{û¡`˜™}GÛXøÐ=ͧå>§äÝüSÊ®†‹<~±s»>K8²±(GVñÈJ©;X$UïZÉ5A+‹à‹ì _b±>¯pë£È8Ç01mG+–üiãp\£à7 +êÇsó✛kƒ°—»jJÉ®ŽV¥n.vâßô²€—kï¯~¾Ð^ñÇÊHõC·ãÓP+¶´LbÈ$d¯ÏÒ*'4/äø5@ŒXˆxÌDº´¢HÝ#À¿T¯HØ&'/uÖ½’âS~é¿=Ý +yyIRùôJ4þç6\aœMJD T¨[N(òͱ¿k¦B‘z¼ry@C.´ CßÛÊo-  ?nÍ %n= ïÖk‚‹|®GÏ€¹µLˆÇ(â†ßçÓÔf9Ç‹ï‡tT´}˜Œý²Ìoø{Sض2ðGË4lH‡ÊÙ¼ðÆd]ж½*Ã+øV‘o–[¹9NN±µÁîMSr~í†'ýÐSÿí4&éÔ–”Q¹:FÌšedœô ×ÅoËé!.u;rnPŽJßœ&f[úIF(Å·ýLÊž½S² +øa ¯,1Ða3ŸÔ iu=EZ‹o®J»¸ÒN¨ÞW2kœ•¬÷#_ÚÚa÷tÌ¢S6Qñß(æãÊ89ƒ ~ª žpy[Ë‚GêJÔ¨DÇ èÁ3íÜ%å7[_å}—?̯Š+ˆ¹sb†–t÷ïõfùž©^ô{ß@(³ T?Ó6eŸ[­xº£cÕv¡?ü:ßX–ö§µ¡ÿàÙô”²]-1?¤Àg»Æï–º`5MлØÜ‹cÄœ³Á)níz?0/è—ön\ÌZ9yNXùG38öD}ñ³¯üãè”ù¦²ûæ†Â«!*ygŽ\µ£&æ( Hÿ;`|ÍewM-e÷ƒòÈg Ý^>×1~Ž|ÞeÁåZ Õÿ]c2#ýµCjæ@×9¼­nàl©å‘}ŽŽ¢ë憜Ë&Iö• ±\ÝQñ’|çIÙëŸ÷Ll¬£koƒ?\é„=ÖôóH~Í1!!-í”Â’å¤߽2Xê—e ØøewCûkUܽmĬN@Ÿ³òo#Óž÷Fö³YˆÐµ¡šX÷$æP‡ÊuW½µ4çÞF½ýn¹ù¦Ÿq—œû䤌›wmßLA,!fbp¿*è_CÊó*I…>€´¡`VnëøÄ=#Ÿòi‰MúËÉ}^`¢Ø_){hhνbꨡÜD$þØZöö›–ÒèïÛ+c[ÙÓ0ë㘂9qÑ7ÿœg–^ä±ä€“·¥Âm©)å€P—™´}ƒ¸³ÄeºõLÔ\wù#ûxíÇ£ÕVõþr}wÀÈ#ùM"vÈʉô<…Z¢bݲºìNDü™=#÷þú™HÏé ♂¼\©z´gÄ•ý×-êßÑŠÈ…¾5#„{&Y…ë}„x#¿øÒ.é{-+夤òÅf?"ÑÖVýh^\z!¨$.W½±õ”ÜYî.¿kë.¼¹1Pû*4Í}<Þçe'leƒ6vÏ*àýéÖ¢­ipß,Õœš%»ê@ë;P‹H«}„+mÄ8ï0¿t± öhšrÒ ÌÿC/)¾¥á\ÐIÊ~_î#¦çDÄ€žsɱ‰îYLÒ0¿œÙC’·2BÌ–ò+îÓŠÞž6·–gÚ[&}**heñvSŠLØÕQÊL¤ò}®xKF.±´CoãŠÍͽ@, Žæé°9JéÆ8ö= ÷äÊfìËvtéÙi:øjd?³¹±ìú>îûîÚWÿêAÆþ0IÎ=X¡ß—Z!¯ =µ±%Q×ÿ…{óû}5à"H'É9?F‰þÑÜ™xÎÒ•zfu¸òåî ±7ߨ¬oGƯŽá2?ëåÿs³…ÿçf þ³FA}^•†µ¨äÅ®êGôü·'ÉY/¿ßœ¢"Žç¹äC –‹6‡á rnî}•(ð`ɧvfé>9 ¼ÐX}Ç?†M ÉhEA>3¤Âç…TÔº ¢æ§Z„|86ñ™€—‡”¨Œ€ŽP´m Á¾Øê»w lä¾…KݘfBçê!ov´ôê}3½9Šzo’_U 2Nw#ÞŸÂ%þ¾>¼V>¾èÝoï^üv„Rôú3°.·Ôˆ~âƒOÛѹe"ï€Ý˜Á§y•´’SC}XË%mNÔ%íÌ‘ÊýSÈx“8ëòâõφ&Ðý&lÖÍœ7·~èÅd^äý4ýFKMúI˼0òí°ø3Í5qç…÷¢²§ñ·OÿòáÎO›2 +Ò9‰ù°1 ›)p— +ŸoƒG9¦kãÂ@Üþ?7¯em Tq‡KMûöæñãõÕç Qß§eîÐ(ÏDÍS—ñÎÐ +º¿2ŒNðMâ’\CÐh÷pMüæ`ÅÛµÞÒ»:v}˜haÍ“YVÞ͵~0þ²ëJjæ/èÄŸ¤è÷?Èï\g_t Bž, T=Áß|ß^wÂ;ŽK÷ÏÔ%%¹7-9wüÒÜG!uñ“ƒèh‰Ï?¶GÎrȇf;ò½ú¾IHßÓ1À; +ja`–Q¼Ð¹·ÐPûHÁ?î†%è¬ùø‹¸äÝOC¨ÔߌÂÂë[u±!±Ø5‰ÌÚœF¥miØÐ^ÌØ3QÁ>>s½§êÎrkéU%+õWNÁÃï É×¾Ǽþi[…Êžq@q—ì}˜Š-½ÒÜQpCÁŽþMJ~rÊÔøö¬³¿òU@IGûæXHJÙ«‹³¼Ôÿ^ÔGúe2ó»:bW +]l.| ã¥\ ¾}”]ðb€˜s?¤¡#ý +BOŠúà%hŠžKIÉçtœ ómUÑA ¯€"}2Fãþ¹"hüdã²B*dŠküjm¼úqäìÉ>pýWGPÀ:)¼´9ŽIôÉIÙÞ)Bžk˜˜½%çB—‡q´à;ÎaRÚ45ë| èõ·sœœËó ׇ1)ÀûªpÉ(E‹½µñõ•ïN@ão~Õƒ~= Bç­KËŸyäðô#ëÖðy¡EQÛѪ %röïMÛ9\ ðWôÙÑ¡;vˆ»–y‚½e&i‘XT־ߙׄ´$èÒ04Ù§ €é¹yûÀQß¶–=þ§Œôñ7ŸŒ\¤•”\À|ø^Púü«qzÞYVÁ«ïGéç-BØ1ëW3ãWg3à{A{‰q¿ +*ž=AJ;»9Z÷nu°ê‘N”ÿ‡±¡à¾k¨èéî*ïÐ*ÙZ&€éñÍÑJ}*VehNH +ÄŒ-­Ø+Å'ºÇñ–¾²¶Õ>h«Mþ™_ý/‹¸ö•ž¹£bäŸÑ r¯XsokqWfQ§ç›ro†äìß,îGÆGêc® B¢×Ëû&Ê­÷ç=öK«b¶õØŒ°Ž Ù׋~9?4‹I9Ò+ö4ˆÌ ™¿%Çe™µ©ÀxZ€5ës \×$=ßÞ }¬æ§ÿ:CK;°Ó¥­YÔ€1ÓgÙ¥µOak®úÃÙ…{·9"€:FX !rÆ[%Ã;!¬ñŒb?f0 ~©pXn5µX xK".¤gÂv-LÔþ" xjøþ<©|ož\ií©y¢m¨¸½>Ëÿ´R?ìWQŠ7Fëb×1¸$ üî:åŒYR|/¨¤‚‰9¿×$>>1ׄ(ôÈé 8å”’E-J|jïÍ~s`äæ%bÏF(yyn”‘þêO_¸oò§&²Ï½æ™­³øªNzF'H¿±1K)ÂäGŸÆgÅ^é„ÍajiÊ»1IˆýEPxÿë–Ò_9ÚònîéÉ•n’uë;~u܃•ø×ª ùh‘ŠtM€¬ \ ¨k?~²‰[üvŠ“wK/οõÉÊì†më¨ ŸîG½wöUÞ]¨~´&¥dPóßü„I{øÝ|gÅû §ëã°D[wÙkCSñí>tÊÏÜüg_Ï0Îûf ‰[*Lškò&¬ç~«yðx¹]ÌÙÈ¡Íò$Àçðäã%<øËjø[I¥ÏµÄ,3)‡NAãñ2‹ºg"~^¢¡Ž¬„[…ÌòjèàÍ)rîÚ@Ý[­0÷¦†Ÿú{pöÞ1BHP N+Y¹§¦Èù§êaÉßc“Ÿ~=C)¾ãh¯}Z_þâ;zæ¯û`Ͼ§¼ûz壸w¿¬ C£µ]å÷ÚÑ?Í7‚ßêù”# º9ƒú蜤{Ô⎙Ïðj¹pý2NÊ+¼¶:NÈ i…” ‚]³9Šý°ÐPzÙÈ+<+%¦þ4MÈþm¹÷®™}VFÎ9g–\__uv”<Ýè«Iô¢Sݽèhs}é gäéî§2$¥dFúdT=]nκ|8 ùø×¡dO…NõÔÆ8:+ï§ëÐJòÃbvµï}3u±9:aKŽO kÙua#ã’Q 5 ì–á²Wa/ƒZjÕ¶‰KØ<ؾ…†Ú[dÃ!kKÇÃïj­ øÆ>ãW%»àŒ£·ênHŽË:0s)¶qlÒÂ5¥p{žG›%¢°¥¹g{^Äò*˜eÞYfÙÚ!i©­ê¡VR|yœš{¦—P~ŠU”üC/*÷ºœ]t­ýÍ&æ›æê—_u#>ü –ßYìÂ%ZûPo"ßóð@ï³wÔD/uV>øèd?*á9=í´^Xz±íì"~д ^ó¢~`æ¼=œÅ׬UÜs‚ŸØ»ŠoõÀž}Ó}ñ¡©üætõã+_‘R¢YîB>7ÖWÝ”“‹—â +.2³^[üôò?2nŸùGù³«_‰Àñßf¾¹ùâワì­À<¶UÜ[¨¸kiɹ"¥Äž¨Ýþfýä{ÿTmÂÊ$.kœš~ÝÒ\öfOOEîêXÿ ­hGIÊÛ(»+gÆþ¶Ôzê¡—K^؇kóƒà¸¥–ª¨õ^Tô60ˆQÈ%?ýbøÕ¿Ö™¦VB–¹ –ìCÄ)8I—eô˜ßVú²ïÌÃS·5ˆTgoÀ •±Û:>ÁÒK,ô)ÁIàOK4äÑüy‰CõÌb²†¹º>ŽJßQ3þILº”wJN˸±Ö r ¢6†ˆ‰Þ©ìæ(äÖze ”õqnõÚ(-gsœxÙ¤•Ü;×)%4'¢®³»à‰fØ…o›ãˆ-Àu |úö<âš­ÝÒÓëv-"áÊ0&ˆ0ÀÐ(Ï1gc ú±©1ùš{¢&Ú+ç9g¨y“ä{åÔ•1Ì»½&ö³X÷³ÄÂåAD¬g‘à—Œ Ãg„4È—uQ羕EÖ\Y`ŽV¹g¦¡½j|oÏ;² +x.i×Â"¸””’] ·¿(|¶‰þ\â2æ©àm µÈ;EJóñdïÁF$U×væHÅêNÊGC êåê0=ÇÚ…~µ:y´1~ì‚<³tUÝYh‡Þs K{ÅÅönz‚{’]ºÙ·ÝWyÇ5\ûÂ7‹ÉöªPɶ±ªG–Þšg» B^ˆ ¯† hy¨mº·ØÔw¸Ô2ùlaËH»dè$¿†Q¹>NÎòH IJañå.Tâ÷mÐäo5œš+}ì¼ùVìûQBæYcCíK… ö¡ ñÒ%%§{dŒ²Õ ä;€b–úê¢ß]`l‚Ü×*o›â›Ä¤dŒR?ÀNË}Ô¤…>R¼¶þÄÒŠŒÙQsq¦È>´Nȣ垚£¤Ô+SÌ¢;Ú.jìwóñûþ:ÐÖ^râ8½ä¼°ðýWŒôwÿ$&½ø'!áÅw¤„èŸÄ…‰§ú±•—±Ù '„e±'Fié—¸Ež"Æœ¦Ä}7ˆûq„˜|Q'*ºë™¢”zëâ1ÉwÿÕûpû‹UÐtdð=S‘þµ¯ímYçÔì¤sk#¸BÛ-œøä„±œw0O‡îÚio«|læ\ë¯{}¢üø_3„¸ŸVÆ(ÙÌŠ—*âoÿ2IɼœÁg»GàQ;³ˆøàtÅû)F̵–Ê{ß©™)¿ûŽ"Æœ%gDéÔ/û˵nO‡ËÈá© +ÁÇ+ãÄ„KËõïû©†°ÏÌ0Sn(y7úщ;*b±{“°”†•gs .kK. š;1Yë£Ôbàú¥o޳*¶dlˆ†”cï„ÅOà.Qoüs›ðÀ6Ë^î«yÔFöïñYa x0춉Ïö©™(•¨ð榛ºØ‹)×6VÅoŽB¢µü„  !%ðúréÆ8â=ÀC6¤à×û*Ì+Ã/u#^/´AŸlŽ# +RYXË%[â¿7D=>&9 &,pèÇ‹þWò§SPÿyY :Zâ³—y¼O+¢®¿ÖDÝA-ôÅ.ÿÛ!l:ÐR+Wûa¯œ]àû+Ýð§kƒu¯6Fkß-P¡–aföÆ8³|g®žãâW»ÆÉ©¶îÊ[Öö¢K¶Ž¢Ë›CØ8ç#ÝØN|íè!¼ ¨D8ûì•Q’}ÆÒ”{^/É:ï™F'‡´ÌÚm½»m7,Œá>šqq½˜—ÖÝÅæÁ«Pr`fáýZtúÀ›*L¶BTrÝ;É*Z¥d.u££ ‚ò«kÝu/6IÉξºhƒ$÷Âú(³Ä§lá|V²%¯‹µv^[êÈ»¼>Rý4¨¡–ùç80Çòµ€æÏ!àør·Œ”éDG/uÁŸ¬áâ#g«Â>i×\/Þ˜e”úTBjH+aûd,ð†Œ[cªúñšvìËåV¾y™1+FÞ•RjoLQеäk{!a¹÷ÆÒ¿§âÖÞÇÎ%U7F%×¹9¯¾G§ü¹n¶aBâÚ ³Ô%¡Vä- U1® ™ö›Š[ö4RsÍ9^óÜ:Tygy8RÓö6  U¬Nwñ´½Í5õ°â ©* €Æ®–þalÌ=;„Œû®ÿý(&éäRøé⳨6'öä‹Ë¿ý£¹òý…­ITÒbcî ‹0éœ ûü{Vöÿl‡½?¡äCoÏwrÁŸÅ+yyk[§üéàp\# GK͹çÕ¼ä_+î}eh(yªë†ÅÁÓ`e?ýæ³™‰?6Ò::Ø=Uû~sRwÿÛúœûÿ´·?šä=‡¼»þÝ4#ëuØÈF†”ôÚò£Vœv¡öö_ìœ{ÿœ¤ÄuöƒžÓ +ŸRr¢ÿtHz>­HºŽí,ÚŽSèU¢RMå·'(i'œR|¾èÝùŒÇ—ÿå‚mË ï\C¥·Ý# ë…·» ¿“ÜüN#øðGÐD® ä>ý —òäWCcuü'³÷yQ\lòÃF*¨Ãn)k¢þ»Ád;Ø"Jù›‡ðÌ'·|J*åØÞ®² @ëc··´Dh:õþ%÷áÆ82e}ãžÄ$‡4ÄÂ==.ûO ¹Â£ ¤ûT¼Z—œ ¶ö“ßû•º€ +ðˆ³TÀßÞ/¶ß”±ó. ¡S~Zn¯yî–qàú¶êönðÓ= |`dÂ,,챕ÃÜ1rˆ«³¬’¥qzöºRÂÜд7-I`.u{ý¶®ž’Sò·eø¬}¥"¨Ádl«9Ûaàà…6ؽ9fþ™žšw?ŒÖ}üIEMøÕÖš};¬2]JÁ1‚‹ßÖÒ«ƒ:rÉ'+ ÷ÉÆ"o[u.&}¾t×-Eä†td¥ö̯ *vOG…DúÎ|Ùѳ~À£:¦±I!‹€ëãæFrŽ¢b“Ø” %© 4Ï@ºæØ5óØ7¦NôÓµQA…OÑÙé›±9AËtô>˜t®»6åä.ýÂRoÝ[àï^ºöˆ7sœ^´£•ÞõÉ GKé¢«^ê¯:~ÆYc#詵­òùæ±È!kÀ¶cs~o~¸ +ä¨â}`Ý­ŽÁ_ú•Ä|’TèœD§ì³m #È Dö³ŸÊbï] ª©¤ÿlÚþvPI/`Ë€œûÁÚ–w}¡­äž±Ÿ˜“ÿúþ·UñÏL´ÆÏ¢þ+ì™­ù`mM»¨$Äþ´kfãýóböò»ÌÔr+9àˆ6{féÀµñS3Ì¢«*èž{’Z¼0Á,é£]Tˆ*‡ulT¤ÖÝæ2Î;KÈØ˜¦l(hmk“[ßÙk—w‹ CpëÄh‹sºG¸>Iϛ繴ò¡{¢ú™¸2Å-`ƒþh­Kþu¡ö|mûÞÞUóÀÑ[x7<Ï ê¹„¯Æ6ÁÈ÷éE¬­yÙ§¥¼:Rᦠ+—¾<}é•¡Ãz\‘W‹ÏsÌà–gˆiRIÙ“arÚù]5 ¼%cUn)˜•!# p1Óo’p–&Ù•êÆš¨½ãÐ!j8të#½÷´Œj’š¿9MÍÙ²Š6å<ØBöµsˆ‘åžj@-÷õõ¥Wm]%÷VGªŸ«%9g»+ŸmiX5“BÐ]…¸òñ¶‰ƒ Ïs  ¾kÀýé@–,Ö¤¸ИÈ{ØPw¶™Ölܾ•Ë™Ø}+sl£!ö,¤ª- >'\O@;aërNÕú¬¿*«Çº\âQSÜŠÕ1ZºµeíżYŸ¢.ŒrrçûYùÎI,4<ðäk“”\¯Œr $`j¬_S Ñ«êšMÖÎÐu@ÍcƒlËH|eR67¡c7‡ˆ™½Ú¯æÖÍ2³[ˆÅ„Õ)'-]”\×4-ÏÚ[yw®1ùÜrᯒZWÕS6µMŸ©Aä5ð°næ™ããÚ¥dUøT„,÷4,ƥĤ{Œ¬ZÓ%“‹N¿HÌ|ùM`– ªÄŸ‚ Xu^¶®æ@Ö”|˜_W/ -Ô7,<[˜‘:žÛ:&4l`£vMX„¤ìXh¸-sKϪª³Ù8È«´1K—[§ÃûV=¨Geuµ‰!®`×L­éiK½ðG®i|ƾ…ˆÅA-¥t÷gbˆ ¯œ\dëGEù5¬Úm[C÷¦NÄq©…„¹¡e±¡ó  ßA51R«$Û¥fV­ËÄu~cK÷üp]¦¶»"Æ3G‡{ô,Œ_Oƒ»•ärŸ† ó¨%TMCÝsc 6! mª_›áV8ÇY9ëÓìRç4£te–\Q6óW5í ËÓÂU3#Þ6;Ügh^WàÀõ*uÍRKüjbÇ,äì/5ö„­¢†`䌓³Yºc·ø ,xЧ{ç9x‡†ß0pñ[>Ë£ãaf8e—†p¹„¾)§mÜàQÑ*7åÔ²M9°4÷ùÚÆ|æ†æu ²4÷†—$íA éÑѪÍÔ÷–!j‚=ÒsÕ@q6r¶)M#öúÁ]‹¸9ébª[‡Ee¶1hmºеtÛ[¤®Y\úê2ÎÚ‡ˆ[è¬{¹2Љß6J„>M=gg¾©+dêÕ:•.™áSJËRA…¢ýÐÐŽya"}tÉyµ›òV¾WÕÝ4Š#2ͧa”Gú¥i:á1*váOæúú€¡µÏ«ïuëºF¬3m³´ aêã¥ÙÇ%Õ†VN²³—]ÔH(Ë“¬ÂɆº»ªvìë¥Qf麼ž`è&D-?:ÇùQÐkE’-ƒîÓ ˆË“ä,û1Á˜x¿¾IìÕ5ñÝs ,ïÐrHá%.ßk¤AMÃ䤙FÄS™e—Ö#Ì}œ´iNYØÌÆlôÍ9Úgäb¾¬ÕïÙÅÍ[F.*djj ™ºfŽ#ç‰MøR¯ž°.…D9G¡Ï–oµ©“ŒCÌü1F陕!€'Np ÔEmHQ±‹ý°gºÖÊÛ€ÇxÒ2jB€>¯M±ÊcŒ +×,9{~lgâö—„’M­°¦qÞÂ÷èº×5ÝE=~]]Os«…Œ= ‡Ähe¢îýúÌÿÏÑ[÷%¶¶ïÃÎŽÙ5³§»qÚqlÇîî )éF±@1PAJAR lÅîÖ©½÷ßßçyÏòþu¹Öu狵Λ´i¢WíÚêë6Œ„\·²&ð~1;ÃаEy–ç’º2dÇèHÀkíx½1ÂfmòdëÖfÚÀa€/Ëš–Õ”üý±Ö¶cW—fm¤×GÎÁ®Ž»î$Wm;Û8£­õ«£,üô 5gÅ܈Z4ئ½µqÏÕ!Z|•¦¼|¾5ÒÂ\4µà¦ôíØIm;b~ Ÿ”‰ÙÓz¹|T-n™Ôrk@»5¸ô•A\Öžƒ‰ÞkmÜr4·Íô£ùnóîlSëöDkÛÎlûÀîW»¿À8˜nlÙpÐQ‹F*xRIΜT¶Öè;( ÍU©7oW´çjiÙžh ¹‡heÛ# ìú ç¶ÐJ×F˜Èí±ÖÞ iM蔬ÂgÓho#µtÛÞ€?œnéüºÜn8Ÿ°i§Ã×Ì è=WyN[_;«$€ó©ßr¶4¸šÛަÚE»í‚%[=rÁHÌ^±Q¡£¤%)wÕPóéäüýsWñt²×zìêV» 5“RZÊŒ’]a¶æ°« +/taÓGZöì ¸ £âü™ýM@ßl19[ö®N«´Ä„%Ü)ö¿÷󾞆;žLî÷ ®Z[©ÓFÞ¸¤!ÃÑÃJ“±Kšªr¯¶—'¿XQ1c}{Îfê>Àûç÷„—t¬ò2.i+²öQìåï܃¨ä¼¢«‡®·§e­eSš>긪>©¢e¬ÚðóºžÆS'k^ßTã ¢ç䌊mO³K«– ÅXkg[Ú²¼¿=ØS¿¦ég» Ýõ³šºôeCIÈÑ©êp„Yw àûî8ß²im¨u+)™K*zᎅQyà BwmäòU³jRIË\гªW†¸ôi 9iœ[ölgˆÝ´°0[öFü–­¾:̬œV’Ó'm¾kåpÎçã»{ã4ÔŠ…P°n«GoÙ¸íîÁ6’©«1A×ËMQt–†y›ÖŽŽõ¡Fø¤jo+yµnÀî:Xd·šTdj)}æâ×øO¶ ö¦Úú¶Çšhk–f̪±º:DÊ]DÆlœÏom³ðÃ=ˆÐCwÓ¨\ĘP·–ÏŸ×:pìi=9¯ïe/ê…½Cí¬Ô†âÂÛÓêVâöt‡lÀüƒùNÃÁ|»|k¼‘Ôl጖Y¼=ÚÊ8œ¦¢ö\È¢¹£qj¨Ÿç¶Uëv¾fF×ÏÓ zKÚ{Ø=1~w±±™è=Õ__°eëíwË÷]\áþtk÷ê±íªÇïMw(ögzìînÛî4“îÖ#Su˜œÕ‘Fò”µ  Ö~Z̤Œ´ôðÚ ³lm@Ì ¶`v'8=‡³¼áÝ™NÝúW¼:ÒÚ:o æ/™ëÑkc½»@_ïþO°Èvx׉É?pÑqSŠÉÃŒš˜±¨£Vî¹:{“ìî}‹î6Ð!J|‚•Ý›¥“O–º6Ƙ¤Mg+k¶M|0Ánߟ"ÕL2ðëö®Ž±>Ê&Tá‡zõè6qŠŒÚüÁÕ#D,ÈÄ § )y¨þÑÞÝ7+꩘•+9…’3ÌoËlÅZÙÈ„“‰.;«C¼îh¡Œ©YfiSÆð€£å+`bvO4‰{f¬§e¯©»Ûömí;öFÔ¢®¥|RÒUbìèO×¶ð“T-ýi,Ó Wû£œVé»cío[ù² k¿fBÕ0‹…]¯°xX$¨WËÚ´=¢ +e» ÓÄ×aœ +›Â!éC ÒfU±˜%M!U’_A¨WÝ`¦¯'Œ×s%¶î>ˆ[ÑŠú:ÙÈú{¶‰sž²7É;$%Ã]°¥[ZfïmÏZÐ×Íj°ñËrÑ–­µqèëqUÒÐÎüd¨'½ç3sõlXÜ̽zq° »`hÁ®Zج£I®ôÛ|§豺m :ïd¦¹û|Vì]íÎú-û^LÂ?± +xåsCݬ-·sÍÔP=&ff:zH‰ Œ‚U@ëš8ˆ÷.9yRˆMŸ—“òvìÆUK+iq¨6«á"2NÙ¬¶¡dÙÜ‚^61 €×O›d:•z©+ãŠsŒ}Ý…6q_õŸ_>$VÕøÚ†ÁÞ¡únrT²ùCØ‹\ꢯښ±KŽVê a—­ŒŠ­1fÝà%ÖõÈe; Õ¬­øQVhQÅ#šA¡IÜåsűìi(“"x‹¯é¹ƒ¯f?*I,¾F(® ”u´—ÍiذUs+ne¤¡nÞB-ÝŸiåϾ:šéÐìL6Ô¯;›HËã]ݓ֚MÛ‹Ó‰yÅC¢>Ȱ¸:mè­Ÿp­b>Ü&”âÌY«YÌéZ1“:2x\ŽM\·°);£}šm—pô`®Û¸7Å•N³yg -½'nëŸFÁß«­ŸØ¢ƒ™ÆÆ-WsÑÞÝ9mà·;™‰Óºvò¤¡>¢`äÎY8¬ý醯e 4«%æ¯Y:ºvÇû†¶FÛ;f­-uS^£]§“ +F›$(^“=‹Kׄt`oE$Y¬Œ9˜ÕÇTGÑ=žÕ`êZY³"Kå1úÒ‡º¸é£¢Ö·¶½nsLh_´ åÆ~ŽN.¨•JbÉTSoÖBWøŠéªÇ5rPkGožM „«ÚAÂzSR#yè8÷ 8un¾±.Ké ›¶~ùîh·hÞÀ¥Û%Ù&1¿ZÉ×"Å+VÈw`9¬Á„f²Ê¯9œÄãLÕpX¦T*Aî[’C¹ɡ܎ŠCÿòæmΟGq?¤”^¦WõÉš¬%Þ|Í@Ì=­+ØÃ»tõeg:¿^ͣɃz„Á*ªLÕÝ›îðàózIÏ„NÁÓ …Ò¦ÎO÷=§¶îUu\ÄïÒ:DÌœXÞ´fìißí–ÏpA§-©Êƒ7‡™‡íây»zÚ"W²Ô=¼œ6;BÖÜ—f—:&%ìC?gLÖ 5·…ÓË˯ŠId?[/« N}¨mà¤Í)z«:^ÃŒ´!Ç­¤çOá³-Õ6…²Õ¢ -Š~´–ßž¢én +ô犺 x¼q('yC¨ªÙBîIè`k³HqpIñiN +úir\íÍü´º»¥Y°7llkð`w_ºC'i™înYtÛ²•\:§Á¦º9›VLÓŠtø®V#¸™®Îh¥+3[©úP<Áü¦ +©~*æ^ÊL«ÿ)=“ñÓó^OÃ.ä®Òj™/ú˜­‘& ¯jÊÐÃXæ2Ö-ÍL·ŽX4k 9ô¶Z­eô÷Ë +{:ei=Ýú"N£:º(þÄ"tÅ`´°²œÚ×µ…ÔwEø×Yɰ ô»„ê’‡"vCÐ@K;XÉ‘mJy曆'ÛtÉÁTKÛçE¶èh¶±yާߙî5®õÌÙyœ1óO-•ã%yJßFÝ›ì1MuH–líl“FÛ-°³ºÅ‹¬ÖŽ%–â𭨑ÞEÁ$÷àüëYɸ_b#a¿g¦6]Ê*”üö2áqÿYÆ_óSëþhÄ4=Wwu¦ºT<ìôTj4idJgO‡Ø‰bv¸³éœ£JÓvBqì5¦Vó˜×x’Ú§ØÑ]h™à1¨ ë68Ÿ5+¿çW/°ÇÓg±1ÔŸ`pã#wêÒiÅë6^Ï´¶µfB݆°k$- +KK}ß\qk!Eó.­º›žÛþ{nÿ +¨Hv9;—Ñ'qá¡g†‡Oö‡OdGo ¿_zïàýµ0¿å:ÖÿDÝÙ“8gjÅ-Úš‰CÒ6°¤KQÐÕjÍdÕ‡’¨ofëJ*“µ”ÀnÊj¤i?Õ! ”A,Bò(7‹ñ›ç£ ><õH].HÅzËi>ú.fF«—/›;[׆°»žbÍ!sõ_0†ã Æ‘]½®^ß:¹§w™ØÞ:œÌf†¶PAD²Õ§$¿þ—¢ ìï%Ùø;)qÈ_ß½Œþ3#"׳*N㓘ϥDð=i]Äï3BT¢QcJDÃD~¿ÕÒãá#!¢GeU2Ï:Ú”i…ò¦ÏGÈïß\Ì*à\Îñ}ã ñ¸}/Áãî£4ÀhÚ…{¯Ê=|ƒq?c1Æ÷ýB'Ù¡—÷.Žt÷Í7¡ìA³\æhïê_ ÒÙs)Uu¦'á1”_Þ{—^ŒŽÄþ–’þ‘œ-ø)$ŠváÅÛR€pâ… 8Ö…{/Ê<<}ðÙà¡ß«jtèé;i‡$OÝÅM`¦ P“ÌtOßx]cçB!…튩Å=s‹¸wJª•÷Ê« ·b¢‰?¾}“wáîP—/Ò=>øÃ=®=*ð¸xÑÓÃÓ3ñ¤Bv7*±þoJ.'%Š;…%«£]GÓmý[#Mô) »Ò¦ÖöêÕ&RáìëO²xâÍfFëL +š {Q‡Qz)¶h¼ùÒ{?4°ä”Ò•„8è”Ø,OI«hÕÈÁ/ZPƒ* ¹«ßPÊì˜ÍÄ7/„W]^éeÒËÑ©”bS¨?DÖz<öÎóøí†ŸÇK¯,àhš‡—Ìã®gºGb<ú"“$}/íR‚íòî«°9Ý( J¤&RkïX1™³–Œ¬_õ­¡º¼ŠÑ¶[qÙí?„Á="ãÈ?$¥µþKóxìSêq 8Öç¹ïüP¯ýñ^ **aßäwêrÌ1bÁÀk\4 +xㆾ–AY'˜/åSxã)`üÔƒ<ØÈ•¬ +Óåè잟߆S=®?{<{Uêüð.„ìñðmÇ3¤GPBëÿ8ÎoB¢.!€^°{’æÌÝíóíõv}_C+£ó“© +`4ÙÃà„Ñ©…¢_ý£™?G§wýž˜ÑùóË·Åï}«~ˆJ`þ‘ƾpåQªÇo—<>/ôx„ñ¸ñt!àþ +§‰ÒÝóµya¨§sÂÀe¨ä"x#ÇšÄìYƒÐûКúŸrŒóQ%zôqi¥ázVnÏÅ°ØÆ‹ i]?ûÂ\¸u?ÞãÄãÅû[’.Ã~ ã„ž*õ¥¹ å¿nbÂÔ}œŒ^ž2·¹s<Ë^‰Žù1,¹õ&”ð˛̅èdöq)ìýBë~¼í™}áC0úBð™Õã¾ØãmáB|ÉÐÅ´rëŸHúdp/ϲ(ú+£=²ÙÞƒI3Ð)œ#Ó:×s‘³þp¢ãyyµöf6¨ûÒ‡ÀêŸï?]xòêñܧÂã¹7ÔÃ;Œð³wLýÏÁ邟ÓÊ 7ᔉ÷ÍÜÉa¯fR¨š&”­% &Ä!!ÆHØ ï†ô#«m<•Ú±”g®~È,’ý™ÈºôÜ¡Ñ>=^¼©ðð|] +`ÎÃ'žíñÔŸðÃm¯ê_øá~ˆÉ’þ–µ?̃J^ö°¥Y‹æ&Æ’¾.Ñ­£åÙ¤¥}ì¤vî(¨©c&Cõ©ÄN?ƒ ] +«‡¯&¦wýøê#Âã}á‡aä WoÇ{üy=ìBtjó/a1˜K ,ìS‡†[0qˆJ1¿L DtŠ\è¦îéB +g!Éœð)F(ïÆd4ÿšH¾èGøé¦Wæ…_¯|ôxæ]Ôã‡ôüæ? ðÞOâ®Á*«JLZ4²‘.95eTFIµÊ25ýã0f»-ÇP¼‚cÔ÷‹áÃSZ.ªúáÅûtôœÖ_RAâßÃÓ;.z‡ g^/+—<#áoeŒ„y )yÕD‡¸‡ZÐÓº¦J˜• t¦t‹MÕ Ý¹8ú/–jô†“,¯2Êd7}c(¿¿ ¬ü),ŽøsLZãω¹¬k9=ò‘ÒûÕXÝ3:Õö©»É’©íQÃWÍšÛX›<&¯°ª¹~§ÜÝ£«êX+ê9ÖØ +”üQTfûe¿Ø†_Þã.¼õ‡õPzáÁËßpÜßX–ǽw·ŽòŽe{DZɯ2¼ 4˜3t²á¶%Swû„¢.Ú&}Q³ +d2-†Í)jΖbøÛùPúüûâãMp¥öJr÷×[Os=î=+ðxùæñÈ«ÄãöÃtÿÔ…¤tÎÏ9y4“å–þ®‚-³hÙD+Õvâô’~˜¸__]ߨ +¨ïœÏ%umdÃYóáEhí›Ü²žû¥5»Uõ“„¢Þ»/ƒà¿úG .Äeµ\ŒÉï¼™XÒþ¢†¬ôe²‡ã…"+Æ©í†-š*¶'š˜{3mB§¡‹$WšÙ]“´†ž1¥ ¦PÅo© D‰WA…È+µ¨ýYR~½gZAÃSÓ\]o +CÕ냚9²pµBPbVóá#ê䢹³qVCÍZг&U„d§’™+íd'z%ù½ÂÁbGD¨—¾F0 ¾eýBS¸7^S»ÿºìÂÇHÜÅè¼®kÑ þëyØ‘Ç ê諜:ù«ÚzCvŸ|”a’QgÔ¤´YyyàšW¼ålmž4tÑÕêA.Oæ µ +œeÎh$¢~1¸ 7ú´5|;½XüësïÊ \Oðxø`3ô‡ DØÃjl‡G› Ê.á–îšÉ÷PÞªQñôêÁ™\ëhK:yæ‚–S +³ÅŠ#)_#°ò7epÉ“øÜÆ?Ãâp·R²[ž”Vóß52Uɦžaê¸J'Y¶ +„€ÿÆŒö×ø™¸ Ï1q•¿SÓ\¬UI±=ÉÕ™ço ~z¶2DÈ åMªZàÚ®:§²­Ì*í*¶Éy•fiw‰¬"áJREÚ|>W[$ëÕTëûö~>xf€W½¦äÂ÷-­Gcm»6Fõ¼Œ˜¶$'—ÚY;özÔÌ £À.kÎ×óè ÚNr´Q£áJÕý=}Éò.v¬i€oUuÃmÊĬ±¿eÅÞN]µrH›öVòáxKãédsÓ­.oZPðb’~¾6HLŸ•“ç4¥“úv̈‚‘=c䦆:iu3HÑQã)e×eZ‚Ë_P £'•¾DȤ”3¥ã¢Æä5£’¦ÌY%5ms˜/^3up¶,¤ªeMɧ%Q†ç¾™u<ÒÌø<ÕÆÿ:É•|>Ÿ3e‡¥,+ÊBöÍõ˜#gsãÑ«is¸²d"Κ:ȓƞz›²bìD,j [C¬ÚM²b¨ÍÜ·bÁ‡vèÈ΀ÇžlzV¶¤BGve½\×@¿¸0%‡Nbg˜Z=-„úºúJüN¦éM‡.zÝšà:qQRqhÅ€Ïó;ŽFˆ¥ëC°°5="êÔEÃ|›§Qw-°DggÆÓÅóªŠOftÎ?sìþ ƒ4¥£ä¸ä´œ/ ­¢MÍtf;qE_W¹ÃK¢»j\2€ýY¨¸'bæË}-9{KY¿§Ã¥/`c—dÈðYIU€žyÿP׈Ø3Ö£×Õ¸´9^Mðþ &ãÔŠÍ?±Õe­+J-ìä{œ¢?[Ùÿ5Áªÿ6†m*ó^-‹ÒîmkŠÞï‘ VzÅ‘½‘°¡'—®jàÿ{NèÀBÙÐéš"¿%iáûu`–”ˆ°e5&ál”R}b'–˜)ÅÛXÂ’´Âo¦¯òíŠ þi׈ÏVŒv‚Ÿ,«Ññ³âª„--:nS^å?Ó‘y{¡;÷þ|o‘×ð;ËJl¢©!éòг7L‡-±I[êºÄ%Q¥ß–ª6ü؈J8BÅ»ÅÞÃM7$è¸K»:BÞ·‰¦†“|K?¶ÀûFlúžwh!‰«5õé/Îçˆ,ô—Ço+ËÃOÌU±‡&HÔæ`fÐ׉:È‘Ÿl§VžØšèû–æ†ms=­BÅmh +ö,Єƒ nw´çÖ "×”°øC ¾dMYùi²£Às‚›å¹¯‡† U}:±`s€ŸUlhP‰ÛCØÔ=;º¬E¥+¾L’a»Flζsdªû×$¾ê_ Œ`sw†›‰Gcξ?0cÁºêˆ-"nC_·oA§í :Xä’úñ‹‹Zw<‚Ûa™ÃÐä“ó,hCm̾ “þ}ª©õë,‹íVÕ¯ª‘‰‡Ö +зˆ] 2n_‹Û×Áâ—¥•þ«JxĶŸ¿o&ŽÌ¨”\¤ªoNRÉé02y¡'ãåš8ÿãb_ÎË%qŽ×–éßf(” ="Ñ=P›zd%T r¾LÖæ}ž€·Œ5{VtÖùÌ•o3 Ì]:mFX<)È8° Ê¿¸˜Ì¯¸êÁ²¨íAˆÿŒ ¹ie¢ÎfZºþqsd§³-{®Úž“^·o­+<'V؉eû6 +bÃD‚ìÏ4³g[»Vç³°¡—%÷ëÒÒ›çstLµ ÿZc²÷´AÛšÚêÍ© +¹¤§ä}8Ö3ËöI™‡CÄœùþÊw‹ÂÒWËÒ²·k2XÀªŸ<ÑUé=ÝSóñHÇ‚·5á¾X¼; i»ádÅ\žhM»¿­@¦îéU›ZXèÚøíš´ðÍÑPUÄ©ùÃa×Ò€Ü16 þ£c¿O’k¤òÿÍèF'ž:êò%¥ïçø¥¯7ä”Ò}¹øÔŒHÞ,õ_—–øLvf=v÷—¼ú%÷hŒ\5Èʾ7/©æ±=+CD,ɪÖkcäò+®hEV<ß_à9ÓWðdšzöušŒZÓ–‡¬kÀ¾›ƒ%Á§vLÞg¶ðï1|Ùç(„S +~žÂT¼Gü>SO?°“kV•¡Ó=¹^»úòðC'£þlªñm†Œø2Ž)ý2ÛÌ=šî6~›ëÐþ?7³ùÛ(¶âòÏ3€Ý2pÄŽ®Ìo¬;ëîhGá£EQµßŽšœ½¡@Å.ò+Þïk(yëJL̦XWYÙ»u,xª·üµ­tg±|ffÂ×$°ÐC#:åÈR—¹­F¤~·Â3¿ÛËÂ>ÛjâVÔˆð¹þòwŸ­ä²“a\Þº èSq‘—£)öšýñg3=òÒéùóñv"È**ó—Ò¯Ÿ™ðà¿Ç° ïãèÜc[UÔºôv¦#ýö 'óæŠ2-ÂÇNuW¼Ú–£"W$5¡«òª˜ueMغ¬Ú–~6ÕUì³%'¤ÌöÔô•º(©ˆ»d¡e?˜lÏ~¶&½9‚'n1ú–Ü"xìµ/ç9ïrDôx{æñ¶Ø+6Fì•QVÚ½u1äãÙ0"aÐj|ÌïNN–ç— BÅ´ôZ†‰ýCGNþs˜™ô§üûr‘÷¾¹ p꺢6rMŽÌØÒàkvu¨,5)èO-éõVàÕy^ÚýC*e×H,˜ RWU1ÿf¾LR{Öê˜u-À·ÒŒw‹ý¹§º@6ÕõUn"z¾7ïñŠ8ïéæ@Ñë‘ÆÄ+zbÄ5@+¿q‹ +?:Ø)×W¤•AGÃä¢e)Àò +¿%qÙ{·°ðÕ–¼àÃ÷Q,à‰Å3’ò5õꆛu:J…Ø ·´Ü×ÕžøhS~¿«(~wdª ûê—۸é/Ç{ ÂþvQ‘gd*PkyǶڤiÖ w_êÃ-eþû/£ð\G8UøèØŠ©ø÷ƒñïJÝ¡6vSp`{ª§¬æýÅM]U£(ðFšÏÝ_MÍÙ~ÿ¥âþÇ—nÊK줘[:dÐe;=æòR?8&:Þ öš‚¿OÑÿZd4ë2ϬuÙ»—Nt&Ý[g?ÿ2‹EŒâá+*dÜž™‰<´7s?3þo–Šÿ{_»%‡­Š2¼&Ûnýw©¹ÿx¼¹gÛDª>Á—œM ‹¨¢#2çû$üe•½$Ê?ÃË}zꤢÏg¦ŸŽœk\Öá0:y¾/ëñ¡¾gƤïPq;Úrÿ EñûNì =.ò÷5 &uª·Æw¢­øÉH+è­ tw²«ÌË-B-KÐa+bT¸ƒ•}s®¯ì톺£® u‹ ^Lp®s¯/IÀ/ ðè¯fÍŽ”»$ªú°«Å%íêQÛêrŸuá›C$|E +~?Ü|ÍÄÈ}°g$çûË>,‰¡>k2¨ß®®*d}òn©¯ôµ[Œ—3nñk¢þXè« ÚÓ‘rv´Ød·¤ÒÏÖ~ÃPöÇ +¿ÈsF€ð•óVƾº` z Q@{Zh°‹›rËÊŠ¼2D‰ºâh.x¶=H}m¤î bSvu˜”ƒAxOOüb$åoʪ‚‡h‘—•¸À‹Î–´[À¾®©«Ãì-É×¶U5¡^§lÊKÞŽ4&Ü™ãe¾[—ùÏó =§»‹ü¾Ø;º¶Ô¬ .2ÐÙR4ÛSòÅŠH;®Œ\S?Lò +¼øð¨«=Õ×ÿv±˜ŸÏs¬† Ÿ†šî(Ðﯮ +ïèÏßWE'à3_üdjÎð9%@¶tÕa*|ÌeL‚×oØ8¯_ä5á¿®‰ §`²çÊà 1›îƒ„þÐîgŽÚôuyΫ™®Ø;fƧË”ϯ#­ ·7´Ø4-=÷žSúþ‹½™~f!ïk!;*œÏoFzâU-ñÆŠ¾o¬MmËz~6‚+9ôŸ¢<`ÀÿM9(xOW9Þ‘|WMнsd«Ë]”—~šîN°!/õY—V®Éª‚ö‡kVaqDâUVŽÿO@/§îkóæ…ù/çûÁ/—€}ÞÕV„í Uø ÏÚÒW†Ù“oMõdøü߉ômWðó‡ó9…®ö¼§Ž¦ô‡_§È¨3€Ï= ?=-åÚçqñŸ9Fãž±.Ëx²1P°*ûèËbŽ-Ñÿ]¤àÍ]àX +ØÿÏ aeâ_K¶³É¦¶=c]ö²4牅ñgWÉëKÖæäWg."œ zi‚=³SÊ?ÛIÅGzÈÇc&à÷ìÃaDÜ’8ûñ;ì¾ê—?ˆjü/ÍJk#;0©—uTÐó6vQŠš”¿µ4å=17dݱ0³®OqŠŸ­*1ÑVNÑKGSæÝ=:e]ŠŽÚ"> ÕDµ´¥,÷x÷õD[Îm-àsô¸ÔMUUÐ4/ñÆhsè6jÌï i7€¿‰œW +‘¿µ–ù5 r !ï&;²)ðÑ—[Kþh{ÿl $_›@?¨ë³ŸèèÙ%ÕA…žfFÒÍÉŽŒGvÎC>îRoyØÅ‘&˜¯†™óRA޼áî/öÝV×Äíª‰{ƒ„ìM5“ܨçöƘÛç™VbT-Ï÷O9.êñ‰Sv`Bçê«#+ö•ÕŸ€½Juve=±prîwÔ¤<–Õ%>9t í?<ôÅ‚Í;ÔcóçûÊCtÄøËÛƒèÔu <Æ-}7ÖRðx²ìeoÌ|8Ó÷ò ÐCFdæ8;÷1°ÖÏŽÍð† 5ÍÍ{ìâ¤Ü˜ä$\µ5„ü1ÁIº¹ x›U "¶©øÓ¯màë+U1§l.€ó±ãí9¯-¬„gÓ=€OáCö´ªu 6MAL¹&ªK¼çl‡-ôU®J+}§z!¾æ7·2ô2öàd„\î–Uk)É7äˆð+óÜÜW[Ò2¿­2¿ uEPKyØ•ÁÆÂè;¹$GGÙYy¬¬¬·c]¡ BïŽ +ø÷8²øßs$IJ +±7L‚˜xKñ½¨ƒ‡þ2Õœö`¬)홋þtW[ðñ?n|Í¢¥a¦Ý]ÕV'mÑç™,gã¸âCGMô¦¶ÔgÛPv2^þ{‘Õvè T®V„Ù0ÿY S¾MbJ¶‡J· à %iê«…þ\Ïc;®ìË£n߈I82ëø<‹ÅP—x~æÔÁDž˜I…€¶N\¨ðí+öZW½ß£bvMLè’Ÿ¸¢® Ÿé-{7Á{®Êa!{€¯ß„‡Oó +ž¬ Ë|¿ºØ]çÞzY °5'ß¶5ÇÜ^C}÷´˜Ô/VzíŠflɼ;/®[ÕÒ,õÙ×q1—ñ±WÐA—T˜ÀŸ-Ôøk«‚šˆ}µ`ˆž~ë|NÑŽ Z¢B7ïøÎà±nÈËñÎ’§k2tô@t.*ÄÞŽ‰nªôqqËÞ- + Þ› +Dä‚„œ4ÒYñnº¯úÓ™­™¹©GDo*aa{*dWA‡®«} Ï9~îóé^À÷s«¶uÔÊi1"©ØÔÿ·ÅçLwáË‘Vð›aMØ‚'"¤X‘pk߀JmI¸êj‹¹2ÏK¿7ÙqsM”þzW]žðy„†vªÚ QWLÌ¿\-ÝÃðä¹îìÓí™·ûÀÏæù%o&úJ?8EÏJâßþ\ûüÆ÷lá{]öÁPYèRÆ«AlÐ>äÅÅabðÚê°ÖªØ» §?7å¾û>‚‡hAÞGº\ïÃÁ|o{CÄu%ìã­™,äÒYA¥÷¿üãÖ "ðÎÙ{:dƾ ‘ +ÔI„‹_ô†_ûGwUì±N¨·””ühF X“WÆ-KKãN-¨üoçîVjņ¦:ÜÉ͸å–U-Š+B—P€“QÑú†´;jrìµéÞÜWûç÷VôèDgäÙDoÅÇ-=2mC\à5ÃM½7Åɾ?ÏË´¡ªð;vzßN‚NòŠ_ì™ÐéŸÏsÒŒº]=°Á³'©G»¢o¬i á¦–¬ GgÆûý‘ºÒ£Q|ÝÙ¼úŸBÝ×É:ȺÀQî“£Dêê@UК º£Ã&Ÿ8(åÛƒ˜øc]ò¶À8y¹Ï‰ ™pfÁçïèɹËrlÔ‰… [S c¦:ŠŸÌõ–x.JÀ/F817¬è[»RXøÉ0½z¦«ì»êóÙB«80¢·UðÐ-5"b¬=ëé²¢ÌgA öÚPׯî˜i;»à®•s’[ôzYTþqS‚ˆ8Pr÷ÔȌɮü×.nÞ“C&kψË\SÀ?­(kBÇx÷ö¶’·³=¿Ø™ð )gºá».o*_PгÝÈ·¤Üg¼-ë¾[Xüf à§]:îÔA,^W–ù­Ë*ÃM¸¹>\Æ4úÂÚuOC¿f¢Æ\=5³P;–&Ì´odäÝÜUa’N]zâÀåoU…Ùšò 3@- ùÖQI›&düšªàflá·ñfÖW;­f’ú B…_¤&ÞšAÞïÀ߯šYßÎgzJ+|64øÜ[kÉëƒYÛ*>Z˼zQéX8@ cAkÊÂW˲ì—niAp¾!’Ò‡úª¨YQ‘¯––~Kô' kKÏlèì%AÚÓñÆ{s‰ÏÝ¢€%!Ø{__{>{WŒ»jhÈó?¶’¡ŸuyFxì(7í¡¬.ðÏAJâ}KKÎ3;òÁØRòª(úù%%Öë‹ –2ßýlŠý¿Ú~0Öœqw¦·ðåž¹.OÂÈòL÷¾éAN}÷ÇŽ_~â Wo(Š|çùiÏ&ÚSoNu>YW~œ—×~êBGÝl/÷½¼£EĈ9'Cˆ¸mMYø¢8?`K]tl©Š8v Óœ=å¡ÀÞÛÑ¢“Ïl5‰§–êŒoãuåߦH5kjt‚½µÈKO¿º­#”®ëë—5µas¢o%!ê‘û|ÛP“úeW÷ÅEbÍ)*bd”Ø;kºÊìÿ¬2šþqSpº²HKsì­ñίMMѧS',yR\Tûæw8ðå÷…fàiØUgÛ 3â\ωþœ×ó +@Gê Y@]~ØR㒆ɠ=+â–ÂwôˆøUY੽£­ ›îM{2ןå9×Wôâ`˜X°1ˆM›çWz¯Ik?õøWtâ± •´ `Ídw¾—{i¡úÍÙÌÜ5"ã¶TµŸvÔ¨XWøõ¶º?ŒËß3sÏgè¸:@We¨ø}¥pQXö~¶³àéXKÒíajÄ%AUà¯Fêý}=>oUŽMšë«~ÿyœŽ:!Xê²w Õ1ÇfXà-c¶TȈ]-ââcB—P±_F¨•Çtú÷q<äË©|S]¶"¿ÚT”zïj‘ñëj|*™tí|FèÖ .eCQå¿1y{f¥V®Ú{´»ð¹óû‰…P¸=„É\®aÓ€H˜U„MpË>Ìt—ùZο$-ânÏH‚;™¸ó<É1^E”œ’0ÞU–øÏ,úŸ9*ùë(®ö`ž¹(-÷YÓ“Ëfå”ÚY!2ÖÉ.{£&fÜ9Ï=šà@ÞZèþƯ*+|ÏœTÄç‰FúyVÑœüÚ@¿¦Äøÿ¶9óî¯Idî¿Ș)QåG€×½MTè·1ýÛT=íûrh­ŒYȳ,(ôúì !w‡‰Õ:zÚ“- *qw_¶kÂäÙÀ^ÖÆÙÛS½Í-Q/\¼ÄGŸG ³Dî\o®×²¨,áÔF‚Y(Vjùþ(n”~èE\6вoê(K5£m9O†RÎö€Þz2çÄF,ÚÒ£S Í™Ím9¾fJ鲺,,~1ÊI¤%„ßžêHóü6Š}!×MˆÊ#tôœ'ÛzL6~M‰Xå~!t¶¿äµ¹)åþ8¯ ð0¥|Bò³F·%-©èÀV_»o$æ/ö—ùkq±÷TØð[Dêñ¡ôÌEªÚv 2wFÐY_¦‰¨#'®êË8 pi¡[Z1'A„;zkƒW uEßf)¸Yqð\_ê½ãQlÅ¡‹Á8že±wÆ(¨E¹pWî]ª£ŽÍðd€÷RfûªÞ/Ë+¦º3ïo+Ë|—Ê?:šã¯¹¸É·V$¥>§ZÍÁ­fCKÞ7QŠ—$U>[€ÿ^Wy¶Å_·4$üia&úª"æëx#sóÎu–úO´–~XTúð¹ërxä²°üÝçqJÍöPMøÎ ÔoCYöqК§VTÚg+|`¤€Í­àcm '&|þóÙ h–ÿ͵­ Y“— c²vuÈØeÏ´”«'VbÙy¾»¹)çþDGîý uUàŠê3Í/z=ÊÉyqæ –¬ªÑñKJdÔyþæ‘—¿¡®WRéw G§š(E[:hKGO‹kBfúá!ûfvÃ…ÓüÙÙDÿ×"ƒq6‚ÌÜC>ºàW:tö¬Ž +2 ßÊ)YŒ4è–ª.eG =DÄo¨j¢ÖÔUA›zx䉳3+E¥w–ÌôÕDŽu•E¹û‹£¾Ø«Òþ™G•|v!ÁÎî¼G³½¥!§6mÛHƒíÙ°ù_§ñ»æª¸5È÷h¨2õëù;ƒèì>DìÕ]#®øïÅæ®Óq +ü؆Ï_’CƒéŸîêh÷79ïÿ¿e*å¯I|Ï‹ü2N'Œ’gã4Äž•T¸6„IrkªƒgûÁ/Ïga-©°‰ã¼š+J*hsQu8L)=2#SÖ”•AsÂÒ7@í|8uJö-ôjggÙ»1nÁã£aD +àÓ÷ÔйpÐÃxþ†¡"dM]éž·µ ô–…•{Ï^Ÿ~ÿÈ\ øtÖþ0"ãÌE€LP‘}„Ô§Rzß¼’R´ %¤ºzk}FØ¥Ï ¤Œ{¶¦¬Wß'‰µÿ^d6ü5KFmÙàIëfDÒ7˜ì¿æÉ„íAXÜ,À‡v@ë|x8J®øx’C;&wºüÊ=Pø·»Eðe¶©s„Œ\TW}ZTÁBVä%了¯¯‰Ó¬Š žm( ©;†úªe)g]KHÛj[Yº¯‡EžYk¾ 2Ï{jSÞ·7 §ùe^süü‡ âÜÇs‚\ÏM,òÔ„ÍýæÀ?C²e¤ì›å€w ã¤ßp4%__¿ßÐV.Š*¼¯·"ǧXÛÀž¶æœÛèÐ@+>ÔÑÀRd$¿:ä +ì}eˆ}}]ysl§UÍ +ÊÞÎu>:>ÿ?“ä×1tα¥6qQ +y×`¿–šólŽ_ã;Dϼ¹gD$}v’¡gvrÉ™›³3X¾"+y;Ù•yÓÑýû¾ ™`R®¥­âÕ´²3„I=4×¥ŸÙI%;ºóùg`? Žü¶ôuYß§›švM€v¬ ]—×nȪý>› ù_íLä™vòÀOçe5aÇ£]Ò#'Oqæl¦~›¸`•qjB$šêrNnX&BÆÄ•!sð¤¯c ä-54pC^ünMRð|_èudtÛ$ u:ÆÄ˜ÚÊ^Œ´W…ì5’YùÍI.=¶Á%¹/Vå ·‡¦ÚÔïcTâW@ÓÏH`Á[Cu©ÿšgÒ¿ºˆ5gvXÒŽ®(x¢'å¹£#龫§à鿘Í[æº"3»ðùlmÈ™“I:!aNG°ƒ¡Úø e‘ÿ¡¾:êÀ€J8p6Ò4YÏŒ-9‡J屃Zybǃ¾Lk¿Mшë:TüŒ¸Ò÷_(~¿k‚%M‘Ÿ§W€Z™ÕEœ÷ûñ¶oA$néʾ,|»¦A$lYi{¶&Â’šœ¯¢îØ»AnMdUAˆÿèá]=4rVPø~C_¹gG¦žkh?fÔ;yžÖ°'°®õ§ã$Ò÷9*Ðb͇NdÞ‚¤ø­[y{à$@Fë©K*Däæ:y׉+þq ó¾¸È¨C+©üÈʨ:¥!%EïœÍ)7œ™·¬„s]É?›k’Ïìõˆ<ØÚ’u8¿Gè”m%4pw°2|]ù¸®¬ôÛªKÚ1ÑJlÝ5!íQ¿ïЩÿýsžç\CÌ®®6}Qœçå§?ÜÔ”þ5äúbU[ê»m€Fmé¡ÑËòß]CUüwù¯ef×–‘åà‚žl¨êÒm„rÀ¯–Œ` ×a1{C¨Œó9ûßÇ©øm£ ç=67‚#-4IJ¬*xª;çÁ¼üz] ñ9°VDü=KżÔ÷uº‰³2øÿ³÷^]qeYºèÓéê:]Y®³:M¥Qf¥2å%ä’ðÞ{„÷Þ{@È›”RÞ[OD„÷PfU÷¹ÿâÞÙ÷œ—~9wŒË8ƒ©B‚½Ù{®5ç7¿o›5)å ûàcç £Ýò#ä¤BRññÝæ¯þi’r㎗=WbÖ'ë²^îÒP××Ö—ÈÜh$-—Öp©! —RqÑ.€A»2Z{ÜÔ×»9ͨÝz6e¡£ö–9ô}GßĉÏùu»yvËò¿Á1qo'jÞcV& <{BÌÔÛ—YÙÛ¸;µñùnµicšVá]ød’»ï I3°‘»¶¦`c°¢ŽÐ‘ZJ6/ؘ@¼êûb«ýSëB‘ h’ V ¨³ë51Û\3ÐËï[Žûæ¹1£5¦e÷xfñ·Ž¯Ž€Ÿû¤¸|÷4âªõ§†æÇUÇ7_!/î;pôÝ kY=~½)»®å.Ð,ÃÐËÖ'í—6Þ!J]“œŽ-é“¡õÅ'C[sìú­Øö~R?Tóñ,£à_–xʼn-ákú~ÑÆÔ ÖüNPmyÇ)[fm½§nnÈ*þí%üÒSrj>ócòÂ2jýú8áÆê{zµwIˆµ4_}·ê“GÈ“¿y†þþ7ªþë¿OX¸dZ@´¿Ãæn¢®úæ)u †åîÌÀ®ø¤]OÊþºò®ùd@0HÕÏ\#寽ÇänŽ‘*·ÆÉ!%¹i™ËˆëØ8÷â†önÅg+¯:O~¸a×1ëÓžœ°ŒÕ™åda%¹vc¤íšùQÙWËÏÿæ¸j{Ǫ¥þ~QPþY`šVçŸÀåï¼ë¾ä‡¸Æ·Äuÿ¦}Øùµh.ã+ôMUã×®ñžÜíñ¶SžIÈ9Ϧx}{Ký¨ó{©¤á3оÎYZ­õ§¶ïÌO[¿3?ë:¿ö®;7°ˆmHY„”M$òü\Áßò)ïˆý +"¢$6„ĺÕwgweˆÂ­iØU÷,êVÒÈBÚß@NnLb +â=¤¡vù0e[ÃígìϾ1>®ûrg†VÕJø;RF›¬¿ñç8þvPFk Ê0ÅV*4;.€a³Ï„nÎ2Z"ÖÁ'+´jà ÜÕåw¤BË‹®‹»3„º¸VÄéúlôZûáfH+¢‡tlÄê(ô²sy{gWT1:âFWfY$NX$ƒ«€“ìÌcJöV²yAi +ËȵþELo>Û{‰Öì× HvO2½¦š_ÂO½ÿ‡ëîtÚ!ìœJ- xa#1³ˆ Ÿ“0Ýy¨¼Ë™Tá•“Ú~qŠfV…}q›åUbkwU”– QÀHØúk˜xÔˆ…‰ð¾’°Üýñ×gÞ½¿Œ\’anæÑùžIô-Àgo¹'ºÏûæˆ M/mg†pË1 =%¿_ñ©²ÿæ¶^ôœL<Ø3³°AÀÂÞ'`¹fymê‡MÇFˆWþI%Éÿ“ë=â¦OùàžCz—º>ÓÜž´nqê×ßáòÖ@ v ÷œõLõä:§p•½Õ‰{¸õé»Äí)~ëÖ{òÍÍQâMÓÓöì3Z§¶^@ÏŸw .¬½Ã_Ýžæw{eB”g†PhzÜsî õö§Ã”Ü¿l¾®ý!n w»rÎ2ªýK¤o‰Õ½2ÜõýÖD÷YçdçÙåµÇÝS—ã:FWvÍDǵÔñö€âá#ß’˜´Ï͘‰Öé“‘ªÖ^BÏ,¿ìÌõÌQš7'Ùuê{Èïvf˜õaá™Ã¸gWu÷ª>5ß+ÿÂ5Úu% àÁ£¬*ÕݶӎŸeQ…ç…ç(DåOÒoþN-)û³j âsç$¾Ø+ãö,>ê9+èÌIhY¯šk|\ñé­àÏPWÿušQð¯¶g?øTŒþ5>o˜Uù'õîÓA¹€Ó ( #Ÿ”“›WGa7·¶t*˜í^õ½!ÓkÌíÅêc@g•zç1µ1#‹â¾#…–ä¨ê­ñîsÀ‚ZRù¸þÕÝÚ/®qè-ÿ¾>aÐfp*åýöcÞyf‡k_exXsÌ=Öu)°3$cwEÔ\LÂ,¹µöß]Ÿãµ¯L :Ö§úgSëï ×½óäö ÐÒ;RBITÏÁï;$÷²ké†Ô ˆ_¾WAéÞœ†•údØbŸœÒâWs‘+cØÂšÜš²ñ!£;¦f#“zÌ$ðÔ5ïØœ µ[_ÁÎ;ÞANÄu´®¿o ½OÛÙĘ‘Þ½¿ÊãíÙ䘊¸6æžÅWiŸt|cF\éÙØ°™… h(ÍaîWÛc6AoÒ!’ÄLlRPEƒ¬#¯…tŒž}ûóÊ1ãà O9ÀrÏÑ*ÜSðëOM_½!_üíâ÷¿]\ùïëoÛÏÄuBªgŽQ³1N¾½=E*Ú‚_öOôœÛk?kÿ±è3õݼßÇ <ÂN¶Ïî[VÑÊ[ÊmÇ‹®3áiÈõIí¿8XDÇLÏeÙãºoLÏ»Î{çûpÎ)q7à¯Îq䥥þ²?›Ÿ¶ +ÌßáæŸÞß™Á¶FÐ×7GpW=óìŸBLؘb”«†Ú¿U‰ª?ÞF^ I)•Quv]dbÕî,öæî¼ayK½åxÍYÕñk~)¤`m$ E´–{žV»=ÑsÖ¿„+ iø¸ÝyJÕê›ú㫯Ëÿæ•växèõAõ½‡1ÝÓ1ß’»3‡ÊK/³ðq ãY$W¬¡ò¶§I¥ËÄkË#¤» ¬– Š‹tÏŠ#J.Ö;G*óLÁ¯‚ÜûA¿ð¸gºýlHN®Œ(%¿rH2Â)þƒr¨ùÜæ0©10GnIiˆmq5¹è¦ +Ëóîï·&é­¾EF‹ñ)ð±¿á/ }ßÉ›ÏlZ—1{Â*z§ã=æªæGÈéåa<ˆ·°ŽO˜¹Äˆ_¹;‹+OYy샵޻[o¿mW j?å“ñ¨qÀCZ.Æ=¹%¾Ðwëîèõ´]Æ…Úò†Vò§)aÕßçî ­ë[B¬wž[}Ó}èðKa5½;nÃ^3?…ž HÐÖ¾ȹ°SíƒÜpÏÃn¹\Èú¢bcUL Z²½æ®¥´tø?Vùü°œP‘Ð’Zãj|Ãêë–S13¶ <²¾Ç•è^4Õ1@Ãqö×ûŸg}¢Z*àÿ”Ú°šÕYî•øäl¤ã5ü¢åióWæ'u_xæð¥~±è/ܾ‰K+ðM~9¬ mg w–p•ÛÃí'–5³5 Ëõ)(~-“r“Z‰J\™þ<'¨zœ^y0yàì{æ×eפ4ù•\€õ<<¨Ë‚ˆ’ÚÐq‘Aêžc78§™5¦{¾S u~®èoÿRÖÛø•ýô‚/û<©<Û'ŸïœfTmO3ª O¿XÝø­²¿è&PW6Þµžš¬{gVq üsàë$âÒöhãWAi3ˆ—ê/Œ/JþUþ ô¯ËoºsƒKý ÷¬²=N-Üã¶x¹¾yruà×þ„˜“¼½ÁŸü— TY\/øÕ}ŒÍIN­lë™Âßr¾é>YÀ—Xž–¥*ú7Ÿ]à•saów{Nž¡ób +.`2o?9ǽùqTKlõkè­®yb‘‘XX$•GUÌ®¸Kð.ËÜRB¡{ŽÙVõoŽ£/o wZT~÷wõó€ZúÁ.ä'ôbÛvû0úšOÎ'ûå¬{}míMÕ×ï©çþ4N¿ò‰g + 4ÞÝû[zöü;í#Äñ%>Òñ®ûÐx§Ö_×~µö²òëÀ"¦"®ç’SæÁ®RÅúöVÂ*îK/÷FµŒŽ¨ +_åšh=»ú¦üSï± Ñî*{ik¬:ŸlãYè#úåœî¨–ÜYBx–7= ä +¿ŠÝ“}§Æ=‡/«™¿‚ .‘ª’ZRKÚHÅmÏ1;,/€Ó«“ö§Rb­õmçóó¦ãŽ—çÂjGö±S.Â8&8µÖa~ÓÖ\?uu‚Ò&ÜrÕð ’cþ±å÷ìfDŽ­þe]8ø¼µ$F;—x]1Sÿ`P͆ø•”ú­iäÕÍ ØÅ †Ú–qŶ^nÎÒTá'¶f¸=™eÉ¿o‰î[hˆàlç•Í…ÑJʾ¶¿Eï¨ûûÔ¯²Á–¿í-‹$ÿîî³ïà‰Ì4BDÖSél8¿1Þô}ÈÄeeûo/ãj§û+>ÙÛ”<û°94¾çàôeȲwSA5TòÞE^·gžÙ¸þžtÛ1L+XÉ®í<"jtÏõ"Ê^¢WÉíq¼G^°ý9¾1J¼±#å4¯’nÛžã.»À¸‡•lHÂÄ#€Õè:Ë5N¼é›å4º¦ðù›£,:¿;ÝuÊ/Cæ‡5Ùyäô¥ìî­QxþÚÛ–ÓžtaPÁíYyƒ8ëš&Üv<6?ƒ\t¿GÝÞ×qñ“å•ÓšoÑ9[“¤[ËÃ]?˜V}ìŸÆäfqE1µ1¥â`Žý³äŠ ”Z›1 èžyÔuÏ,à2ô­šXíW&öhŒ Š Ù]ät†õý!}_H!ÄD5l˜srÞ3»êš†çm\“²pp»KÔÚˆšÞ¶oá€1ÆçQù®‰Îó¡%ÐÞtHL)æD5/`¯nM3š²µÔ;ÏjÌ!ò½ vÆ!—Vjÿ!¥1ölƒczcw‘\r±-°DkÜ™FÞðÎÂJ@ŽÕȇjNZŸ·žÜ¼Ý-cÃÌ€ãyf‰µ!9ˆ¹oãs"Á1 )vOw^ ©II[ÿý°a ?¦sâú,‡†ßvMµž9°³1 3a»2vÇڽɯº³«äD@ÎhuÏ  +=RTATÇì5ˆVS[½R|qT•}¯­OR*“Ý—ÌOKÿj}Ñy"¤ä3ËÂ6oòNÓgʾSˆa£ˆтڬäÁw”<„[ÁEztŸZgï1GïÀ.ÂÊÎüÖüŽÚ¸‡š2Ñ`»sm×Ãr³?›«ŠÁ~üî•Âõ­jUÔ(`E,TÒÆg%l\fØÀ@zdÔ:0&=^mÿ¿NÌ (ñå>)*ß'…çÅ4ÈÊ$¨asÿO7Ø¿2ÅiÞž¦5þ²Ùÿ"mç°6ßCθ†!ç¬Oë/l6Üüy…Fý÷Þ™U>×¹€«µBŠÂz®ÀôSwÁÆû6À]z*’RS†O.@8ç¸mà÷•-¿E]pγ›]‹‚î%1*¨S}*Þ#çA7§ ·Öߣ..ƒ8^»±5I+]áVú¤t\ßËu˜¿+'W\¾éœ$º§xMîY~«sŠQáš"¸'#:r}@MmØ™Åæo¼ƒž‘‰Êþ°$¼õÏë¯Û~ƒuN2+³±Rq{²9“ÐÑÛ’buk}vnù%êÌæ8ètTÎÖüRBÅ…‰• %©Î?/ØxS}Òý¾ã”g +q5f`Á½‹ÄÒ])¾(¤bvÄôŒ®l¼ïÙ¹ô¸‘Øîœ†^\«&f»ûÆo|¸5M¯Ny$¿]7à«?8˜è}R’}ÐÔË Äܘ­o ¹"îêElÓ«Fõ +wqvv5 ¼·öF²½¬ä´–­‰®›)3“°çö&íg¼ +!uåm÷k£ˆ+ Gïƒ]µ%¨¦6Õäz¯œRy’ÊÞÃXy0µµÈ…ï.â +F&"mç’“v6øVÄ"` \ Ð4ð˜ƒaÜž&­}&(g@ý2f˜“F Ã™qóà½]emG*‚gû»¥|¨Ñ¥ g«‚JB]TCEü²Êeí¯°HA5¶fc¢ë‚sS˜²Iúã%¬¦5G”Œ®œPRP[cÚ^ö¾Ï9Viÿ©éÇëî3®92ô>üÚ¿Ð +>ÉPå®18«Li]ûf-®ãâü +Jc4ûþ–¢¾=¿8ÈM¯Sâ3°± ›Hr°>øê`St×¹ˆ­ökY¨l/…]î×`+×f`—ÖfWwOO~íuÄ7j̾ÛôðmÔ>ðxo…ϪpõAÐá äÊÝ\QÒÄÀî­÷=–?ìø6¨¢vý¼)èß[|k/ˆX¹4§‚ݳ 3ø~9±agžXÒRºSv&:¤çaµ?aoÌ4ö) èŸ7™´¢ûjPŽ-Kè˜ÝI=‘ÐÐÛÓ ÷~6K${V‰$nÑ€î)Yy‡8·=I*ð.ñ!AY?#”½¦˜ík(A³ÜÇñªá‹ÍѦo2\™WF*÷Ëhui“€v°<ølY27rP!%£Ä@cPÞOõÌ÷¼2¿Änõ/KKÔj€çåž9jyRÍÇïYûÀXŠX> «Ó«“Š!á3O­Ú™Ç­#Ï;§py¾%ZدzíäÌÖ{ø%ÿ©èó6ç$±p}uÅñ¶ûdpž\•2Kú‚:1Ã5O©t΋} +į|äÙú¥Üú~Á1ŠÉ: x=?;V»2 Ý•œnŸŒÕâY¤Vy–È^µfe {ųH«‰ä”……v¼¬ýÒ9Þòƒgzy} v!¨ Vî=µ&e5˜^ãsbà¸A½{}¤óäÖhÇ™À¯ïV6Å5\lZ;ô ®å A¼W€ÚÚ1ˆ™A¶¿LƒìÛ©1=µyßÁ!ï-÷ „µ},ËOøÜÝ9FÓþòÀôCõÎ÷\vM6ïžî8³1ÚvÁ»€¬H‚ZÖÙa –Ð (À•rÔ­ÝydÞÆkÈYês¼ê8»;Gªõ+xÃ[bUäòG¯©gKŒž¨œPšÇÞÜv{{ku–1°qÎyn·ý%êbÆ.ä¤l½¢˜žGÞ³Rq5¦Ì3Ó|jë}ÃñôrßÝ 9¥yîaÝ1‚FùÀʘ¸¸6 ©ÍTèÚë¦ïäY{)›ŒºA¼ù´ÀDvÂ,äÄ­B¨)ÂlñûR&\“k²ãTð¬½uQÔBïö«¨ÍÙyôÈÙí®%^w¶/nTEÂ-¿jÊ·¾hü[jYÀI,sIÙOÄLnsÍî¹€v›™ I^§LÎÖ±Ô¯dc>l ¤\nDGïrIñ…›SÄÛ;‹”ª¨…ùÅÍëû°ÉdzáU1 h2d^T…)üõâ<£c£SF5’•%B¥k +W˜}¦Ï+G9§;ÎGT„š¨ž óÉxÝ»RF­s™g}ÙðåÆhû‰„XŸ±’Z÷íÄ΄×òa…CI[98 1Ñ!9·Û¿D­wÏK½Kœvï"«¿;¥ã¡Õ'rVëÊËö³ždaTÇèŒÙȰnP²»ôøžk¾h"Àù–0÷£|óöªþQýwŽ—­ß €—€ZÇjÚžç4럣Ïiv| ~×÷Q¥Ö¿Hiٜ—¸¿ñÈúˆ@voHYõ[R!Ô1&B¯  A¬Ò:·&ÐU»KŒŸZˆZ$}ÎVËÊîú–”RáùõÙ-rYDI®‰kÈM€÷t—è k±aµˆì–=¼D«ßÃ\ñfï…-Š#jdg–Z³5Ž»Qp!q5´Çõ•WMßm¼é<盇^ ++Q7nÂãf6ԑ渉OH˜Ù( ¡nûº®'´´Žà³Õ9†ËÏèxäƒõsA‡º>;¿3« +©y¸„©_’²÷ÝñÉ(-Ê¡ÊcŠ;e_ƒÜì +Ê„åwÐÓÛS„Òlá])³5pKZî§t,X\M¨Š(‘[#=9»³ôÖ¸^"NÚ¸@MÔ±±I›à`Ïí°’ÑcÊb|gvckŽØ³þxטÉ8ky8ß¶ÂñSã™Õ—õgFHçÿx¿óËߘ_TœûÅ%~±ò(àCά‰†Rv#³"êKÚ¹œÝ%L“éyÓ¦§-_ïÌÊ3ga¨êÛÉžâ„™û`ç±ÒàÑ%Bý§Žòwô›ÇÙ5_þ·¸†‰ë¨mI#µ-¢Æ–lM´÷."oF´€K9è¨þ·FµŒv¯yÛ#í¾¶o¦õ¤LÙðä20ÿe@ÏÖ¹g •¾yrÍ…ŠjPE¾¥ö³» ç÷A û°Â£'–D”´w‘PêžC^(XžPæˆ1 ³®Âý‹ŒzÛóγ;S¨‚˜žÒ’¶Ñ¡a xdGƇúÔb¢G.ƺ'YU›oñyòþ²Oc-g‚‹¸rÏ ±|WÎíÚ\ÂV¦„][SÜΰœñÌboÙ_vX^¿ Ð +IÛ ÔÊíV£WvÌû«I¯â~HÛKsÍ òŒO¾ôJɵ1”² y®lâf³O×'z¹Ù÷Š]Óèëo[q&$çt‚˜c…€ÆpÏ1êB +Ñ;G¯‹*hE\Ùö,osyik “’q:c*Á=A,rüÔqbý]ç¹°[QbŠ‚rd©g¾û¶k_äSõsCº^צÀñºîÿ<±Ü?ÏhÜÂÝþÅÌ!X»ó&`àS·¥ÔÊA" †î‡LCCÆ^®{_jzVÚþºåVTÍ endstream endobj 62 0 obj <>stream +%ºgEÓØ³[ãÌZï‚å]À–Ç4˜zߺÈþ¼ó[)¯âÏã”ü­Ï:®nOSJ‡ê><¸,¬¦Cc°<¿[Rãëb½WIkªzÙ“D✣T9gð©eQoÒ&D ÛWú¹c¤óVf™CJ¨±æ³*qɧ:/ý³°ñÒGwá׎¬À…–Ô”ú°† ¸ ®0¦a-Ï‚mMcn¸ç07wg‰z]ÚÂ#ÿìàP>,3Ñ #µ5 #W™ -žÒ ða³5¡eA"Jz{LË€% lLHÅhh™>9Ì«)ªæ£C€Cù•œÎ•IÌuíÓ¶oý äê´‘ƒñLNhz =hObmD‡*©Q·³šÔÓš¨Ž ñ*™@³Ð«Â +< ctD”ørËÓúc–‡Íß½ÓÔí¡áª>zX%&†Õ|JH x³‘‹ê±Õ» Ð\вq# µgzÑß{²³Äçǃ:‡ܽƿˆº½>ÒxnùeÉ1?˜oPOúãŽÁ=j.2[ßÖÂùfíYJµ}{wt¶0ª‘Âê¡;î)J™k }Åð þKÛ£Æ/¿/‰©¨MQ€QU6‡ø>)¯;®RbjVçÎ4ìšõYÙg–§¥Ÿ‡THÒ:ô,aéÕŒ¿œ‹‰èúx€÷Ò:JSp¾çZDMnô ëxøôÊÝa€×÷ýú>^È88Ô°¡%ru`ŒŸŠÞ鞦Uo¾§„(ç³võ]ӗΉ¶ï·Þ#.lÑÊ\œÖà<«;,ãÀ¶¦(%¶WÈœ°JÀ1݇ä¸&p7ý +jcÌÌ€¥Wø¼„ùÎã°¾¿ø$Ð]ŒäƽI Óñ®9bñ® [š6Q –yœ}7)«d ®Ó÷íƒOÀøE4¨“­å¯÷^òý`{¿œÚ™²öö§}wRË\FzyàiÜ"âÅL\ÊʦČlB ÔØ W¹³Øs1âÄ3M¸íšDçíÌ’Û¢jùçeñÝßd²Fd­k–Tã&Ý\~K¾ÒÝ}îÕ²a€›UôžŒ+ùe•Ç .Ò›=Ó@ÿJ1ù[S°œ°†Ö•å!Uöú]ÇÙµ÷ÐŽ1lãÆ"6ŠûÒ Ö#Z|yHM(Û9°os¬"nÊÄÃ;çp…k#]ßo¼mýv÷}Ï¥¸]½occ"þÁŠH´²ÑAÀuRHNpy-$ÃÜŒ©hIñÓ²ºâ@ç¤-|JÚ" ÄtŒŽ SP1Ûü +:¨êg{¨a%×ñ0€Ù9£)¢f´ÅulXÒ( …@¾_T=˾ðÏÆþâjIã°Šƒñ+XÝ» ¬æÝ^ÇÎ$©Äþ¤æ+'8Wï$&/²H¯š2p(I«€³p°ŸÚB*ZsÔˆ«ñ+Z/ùO¸&ÛNDHûD ýý»2J“õuÃßVÞ՟܃䧌”. '[@m-¶¡/mÏÑêVë*8=æç?,?¯ý6¡&ÔfŒ,DTEévN#JïÀ˜níÊúÈ9¯Ç9+Z(ÿd†_ô/»Sä¢Ð1¨[“@ãH1·ÓF.®ãÀrrýÖûúS›Ãußxç 2aº÷"ªU\x`™)»=ˆ+©+0ßY‘£V¢7lJi5QS_¯äÜÊ0.oIÒö­ýIûßb +øõ”‰Ø´gç³C~gž^Pˆñ>Ù Ó¯`mOco™žÔ}n|X÷‰ñQݧ —[Ó–¾¸YÈN/ ¹IËG nì­ó˜)îš"|dÌ(%³ñlÝ (™Ù5Ñ é•¡·™ñàÁ +‡á–ÂË,OZ¾Oi¸‹$÷Fѽ¨ŽGõ+ú(Q„Ó÷Š3ËBñ/[½@ ‚KC*f×ÁªP³°°A-¥pÕꠜܶ2‘Ë,RÆJ鉪 ›ï»OîJÑ·?¬Šï•”–•‘¶ã«oë¿ß‡Þ>’€þìM†E4CK!›€»·5øÄ+1ûÞÉ8­æã=ø¹8ÈÕ¤ŽÒÕÒ‰1±=¼âSÒ›ÃZ&dw~Ãþ¢î+Ý£‚Á6-I®2®Ã”Ä@=͹¸}K¯ c‘ˆjf»õmçwšR ÜüÇåŸØ8„+"ÑÁªH˜4³Ù÷—ã +FG\A® ,t_tŽwœÛ~9ï]ÀF4ôæ>ûÊŸ6óðQ]öý€Î Þ%Rypó´YÄN™E¬´Ä'жWI0ßÁ%bETI¬ +(Í>9£y}]°ü¶óêκ(e¢u»f;/;Þ5ïÌöúžçuùdý4÷,£~õ%üFx–Xš%”n¼n=+ã_þxãMýñ¤‘‹OÚ$ƒQó{~˜âZÂmLµ]ô/¢«}sˆ<ïüúî<¢x{U¼«üê^VÜÔËKÛ…¬ì3Œ«o»s¶ÇP…»€;GÔD£Äz÷<&ß»D«Ké™Ð”žÒê_BݲþXù©õYõ×^)ôzTMi ¨…8Ï"§uk’^nCÌ7?÷Œcó­O¾WIʿ֕œ;mäb‚*f«c´û¬õyÍñ¨V’6á꼋¸ªÝyR}PÆìÉŸúî°†‹ôÌ!ó-Oªÿ*å\ùÝÎhÇåìúCQ=TS»~¬pϰœc‚öÕŸ¹¾¹ž qüvL¯Nù¤Àž´­¯膈IHw-r`£¤ +ç8ö†gž½Þ—½fUêUáÊ3+\Ff¹ÿ~Ü̧GMŒž„…O «yH¿ŒÑæ›'Õzæ°…~%º4iaöVž§VÌ8e´F¿’ÒÓ3Q =î™BšŸ5_Ô>ª9³=©(ïÝñʸæW˜’呞k6ß„t\L¶ìžè=¢p»æ˜‘GLX†~LY$CA%¾Ê3ÍuÏö\òÌÃóC*x~ÆNlß_càvÐ\—zpyÆÞêà‹ì3)Cö~'¡1¨ Öî-3Ðûk|Af½ÿ™ÏÈÅn/pZŸi)èÍÁÙž¦{EŸ.ŠoþÉñ¶ñÄÎð\Vçæ¡T{¯ùóÕ·)¼vß,d¤Í”¶  phN\ËêNëE´´I" +hÖaÔ%ãKøyó‹Ö“`>óYcö—™¨=;Ó1»÷Lwî&Õbj\I­÷Luœ^{ÕvÜ5 ¿Z ”Ä”Øâ=#½;máà2iâ“€ó…Uø +ï"ìv\‡ªJ™(í 'EIÀõ#jjwèÛØY×h׉­‘® .K€vi‹é¹¨¨ŽËÞôH‘Å`>o­Øìš¼xŽV둲Û"ò>jö7ëÓŽoå½Už&_úg¼ûÚ€¡ûË’¡°~°ušÝä^d·…5BZ ðÀG:\SÝç·§ÚϺ¤°›1óGQóà}ŸšŠêù$Ͼ3è‹©x¨ˆ’Ú´3Ûsaw~Å/Ç'@îEUôÖ [à_–lOÀoÆ”äæìužÀ$×j„g‘Õèžã¶lOs6Þa.ZCþ6Ç+ùý»ðãµ-§RzB]ÆÌ€ÄJ—{Ì_WD…©ð-@®¬wtŽ!®Di ) w⺿ŠÞ˜ÄßZ}‡ÈÝî¹—áËjR}ð–íéì³¾è âž`6jïö|ã•¢ ®Ãf–˜=+R"Ký2|mLO‡„ #c`ÃSFÌ«$×ø"ìîBÔSW𼄥'?mÇ×ïÛi°Œ…KÜ3 Fdô–ˆœ\“3Û2>"ˆ «õBºWFª +(ÉõqŸº¿Ú{gUò8´3ˆÍ;RBqL' Ä ´ý-ätÔÈÁý}SØÿË +à%µûßW‚ŸÕÎYdîÖ ¾`ù à¹:¡f¡>XHMÿ±BCþÇ ›0ÀK¯¾Z~ƒÈ i¹Ä –GÞA^Zì-ûtŒ~å÷öŸZÎŵLÔÏëBÉ/|qÜÀ€d×ÈX¹¤ƒe h³²·¸ï~£í»ñYxUüË:{°)èõÊÐ•Ž‘Öïâf.÷ÀõPó‹«ÿMD‹kSñs~/}ìÌ>¿¤ ÖEu,ßkž9ZCÆÆ§8ØxÀqk“ú¶[ëo ¾}‰þö7®éæüRÜí=-¾§cAöŒÌž´ŽÞž6à*’TA\ƒÌO˜¨m›“¸<ç§% ¿×›± Ö˜¸ä +¾Á§î¹bú±áSï8¡$£íe8†17g…Ÿ%ÔÙºB«‹Ì³@íËXõI#®Â7Îó/ÐêvõƯŽ*ñ%«ÃŶ¿,ø}v=ƨ–Ù•}5{}Ý9O)_›À]ß#þla"þ¯u.mÁ5úMg¶¦Ë>8—óaE L[ùTÿ"®dõMý1çXÓñ¸ŒÖ°¯Q31ǧf´Ä BrÆ2ô(c|Ö³‘®éö›#MÇüó˜Û)½˜yàܸ踑‹þ°Ö{'ma¡B ØÛë¯Ë%W>2Ý/ý£p˜ ùw0þA¹~•ÇüeKØŸ±Šy  µ:jûÎt×¹IfÎoŒ‹¾ÌèYðÀ­è˜¶Þ·ümwqð è©—ýÁ"dzåÄÊ­YtnXÃÇ¥Œ|bBOo «È5c]'6ß·ß·âk¬4«Ìîìµu?àka9§+®âö¤ô»õ¤Úˆ† +x?£yß"âî[Eü¨ûîbiPÅÅ <ܾMÌOïuÌ®œT•}î%´Ä:ŸZµ;¹°þ¶áËÍáΓi+ ýa]ÜŸYéíOXùôXö~«¦ŸÐ÷±’«3«’{À™Ü ¨<Ï<òZL+¦'Œwv\Ç\ûÄûëâÁ€¢§PÛ_ü÷X÷™  +v-¤Å–gÇ{ešRªù‘tÙ-dì÷ß'îÈÛÏ»'ª¿²¿*úЂ7Ó&‘`mð§å÷èÛÓ¼ª?ïÌ0[VþÇFÿóŸ\¦WÚ“ëœè<ëšA\Š‚Z抰1ŽÉ[Ï®A0‰(Ý3‹Ä_õf€† «‘%æåU ÞüCTK‚p §Wøììõ ”P¸ÓÝ_\½OìlRÆÀìãQãx…8ã“ÑZö/ZyÕü·)VÎ?éï}îk½ð›4ÌÿýˆÁÿÿ>ÿ¯ìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°ÜÿˆÕû?Ä~wüx)]‚`#>ê¨øèxaåø‚ÅÆ0?ªûè8ì|!“]B@± 4*‚)8–¾uáÜÅËÇÎ7aäc'þsËc`£cõLŽ@ßlF!Ș“Ç΀Mo€ÏGŽå»ðëŸÁGgs¯]Ê=—s%çòÕœ ®]¿|,7÷ʵs/\Ïͽz üðê1Jv£ÜKç.åæ^¼z1'çÊåkÿu#rv£Ë¿~ï:ø=W®^¸6ºöë^9—rs®]ιüŸý—Ãýomô_‡ÿ¨ý#êG]?vâ䱎vàU!æ#Æÿr.'ëܯãWF còþóŸE0"ÿï`‚½À6å/Áp (Lqmgõ±Žºº³{gô?ÿ:ö¿¼Êú|ùê¹Ü«ÇzŽ]¼s,çÂÕìâÿ÷öÈžÒÿÜë~½vì28…œk¿žñåcÙ}/|tüø¯'™€¼c×®\¼˜ûQGå«YÝqˆQŠ»Í·Èhõ*h­3m%·Åµ˜Ê [ÑP#fOÜ, UŒ.÷<®Ð·Dªô/Òêbj.2©âZ5¢ä!"jvw¶_Vv]Z÷·Ó5C­_Á–º'±%¡E|Id _W*ÃrÄ„žOkï? +éüÐõ }K¼ïµrw˜Ëö@ߎ.P«ã2>,¥3ÖFÉUÎ zCTËêñÉP;óð«ÎÉ®óa¶:i&·FdØâ˜šÒœ0²ÑI“ÓÐZ# +rMHA®rM rãrzÇk__ÊÀÁDU¬ž˜V@MY…¬¨ð,K¶&¡9ÞlAPJ«Kh„”ˆ‚-ŠðžI>4.à¤ÀŸ1ÔE÷XÇ÷Ûïê¿ôOõ\I(­I•›Ò ˆÛS°+ë¯ÚŽ;‡!gï!—¶F›HyÀ‡Æ”ZHÉi a³=®åaÓÆ^nÂ,é¨ú>Y/ѳÀ…x¥ HÒØßÎÓS;2&|ð)=Uњà +RMXÉlóËiµ5£5¡§´lLµœrÎt\LéI{áÀ*äfÌ"v̉kW´3G¬ŠéÄ츱—ãS’ª½2|iŒQÊÊ!§nÔÈÃïÈI Ž÷]çã&¬ecý*rCzY Ø[•€ãî-÷J’ö>I@Ë'zUl„/ÛoÄ_ÌÔ+€X‹[îa­)®ã–;V!3³,äï­ô$¬LTÔ€¯›ðÍ=®:¨À—zðuò‡W­/0%AÕ`oÂí¹Œ)ucò½s䲄Œ¥½W·±Ð ¥9ªÂU%4äÖl pa•ô…ô<¼[Jc0EOïÚ3Ò:\¹wž»5Ñsfw‘XÒ‹¨N)¹bí-ü¬û=évp–Û‘QkcJBEh WìžF^U?lül{{+¬æ¡ü*z«g®çòîTçå¨]¶Ò q-­%r' +> ö(ió)S_\/¦ÆtlHBOnÞ³úhăºCi‹™ðuQ-‘ÐKxA5å›çwÆÕBlBÍêòÌö\°=/ú£ñAÙŸÍ÷Û¾ ψqþn×ιpw‚xÛ?A¸—Ê=Óígl/«¿\é<­}ÖüÍòKHnR˧Fö{æÐùÛ£]WýRDQZO¨IëPI¡>Û«Àêˆ%Ô¾½¯oß&8¼„‘Úy“´Š8ûÙXYîí‹X= ¶o2~1ñI,ä–¶:cE•û¥í¢ ŒÎ´~p  ÄWáy{VõƒC$üÇFïPÆÆ§Ç \lÌ fE_ˆøø˜^Dޝ Àþñ@zµï^z¥o0m²v.Ù%×{A]9ò ³Öw|îîoô?Ý[“<ÌØƒÜ£% Ô–ž×Ãó£zDOÕyɧ‚æe{_„À$L\\ÜÀ„¦mÔî¤W•6ãFî9§Û~Ëi]{æûoÒÖÁ=T3ºÂj{ÌÈ€ÅtDfYÜ›´s© €ËûkCÃǽј¥ lâ‘B]ÚBlÜ[f Rv.fÂVíªU^%«Çµ°Â20ô÷5ÿ›LRÌHkêØÐ=3µóÀŒ­Lü jyh0/¸´}èEÜ*‚š ¨ uQ¥+j$µu¤Z÷<,Ïú¢î»í·¸ÒŒõéÒî ½fk uÅ'ÅdŒôΌܒ1Ó!I£+móRæ~IÂØËŠé…䈊ՙPq¡©_ãsʉЇM_ú¤Ìö„ð,5«'¨%Õåè’¤–Ò±oÊö­qÂz&dð× áVÄžQ•3[bJJ]B›í)LjˆXȸEÌYŸÀæÙžw}ë#Ü^&ÝÞ#†—h þyB±w—ï—K"JZSLGïpŒAsÜã$Ÿƒƒ Ž :$¨BߎÈI#µà5$c˜aR .â: çäú‡<ªÇ”•ˆ¼°WÕ’êÛÃF{@În÷.Ð|R +ÈKr¥Oмá™è>ã›B]Ë™m®IxŽs›ëŸ£–»&)ÅÁ)VÍæpÛš‡…\þ©î‹¨‚ÑžÖ‰˜i“˜ãÌö¬WòÖ‡{`>¼2ÄÍͱº¯œÓ­?ø–ù>9©2¬ÍöÚá £VWÆ$d¥-bÁ¾­¯ÔlvÒÂ@$ÍLLÏèL8È=#Ÿ°ÆrßDªß³a*&X¾o¡î[P;ª’ Ö¶g¡—óÈüÀ/~^‰~±±Ñ2!1ƒ€Ó ðqPC£zjsð¤ÏȬK'Wœä²—\îyq/aa£# >ó`M$9X2+|v +äÏÁêÐÛŒ½W’íqR«öÍ\ÊƒËØwpèû+jÚÆ€U¤š8àTa-µ)Ûk2màS÷L|JÒ@këÐÅi½gÔ›€šÖTõsÆþÞŒE@Ïö]ŠxØ8¨3£'jb#6$O3«Að¢ýÁW™U*,¬Á–€9n‰›HÍ{6 £4¯ÏàonÎ’K2¶;O~퇸Âcfl"aà@ÊHjŒk»®ìÌv_Ø™ÃÞJ[¸¤ý•gI{ÿÝ”}àaÂv4í¸ó"ÆÖ6ÖsÊ¿„½Ö‘›ö­ffMòÈ¿ð /¨œ[M© ©ð%A #téä™d¿ž–»£$= +˜¤|·†ƒÞQRÓÂ!=j¯{›©iEž«²» ©ŽÎr(­82Ïç†f…Ÿ2‘µþyÔÖÜõqQÑLÆskN‡æ¨~wÈëPäXí"!dºÐÊÒ –Yè™ÆßwM¼ZrºÏH/ñƒ„¬ ¯Âö¦^£”¿£æ×ÔýnUÔýgV¢pkÉÙ¦Ž¬ýÚ†ÇH^õkÁ‘gHi9¨ˆ‘šëžFÝXîËùey ïè +h÷Ò¨cê$Üš‡¹è™¤gB~Ìó+¹¥®q~1ðQÂLwÙ©ùÎÂÃ1+r:3s2JH<'Þ§%$ù4؇ne٥Ů쟖ºÐg¼S¼Š€IÈXë'ÜòL3òÝJÐßaÌ•…wå¿Úòý,åmsÒ­¬ª]«2 …,4ENÜ'>pM\ã„{Kè ¦·…'V‚ÀsäY¯JZ¶k‚ðp­¿ääBgîaç þörOå¥VÒ•Øž–]ÿ, ZIòƒ¸ÆðY´œ žƒÍF!º, >_ð…¤)rŠ{’øÐZíö ³ äôˆE,ˆ.ðÙ!SM}È\Ûƒú YØ•~=)Õ\³Ð[øëæ0--fS4ø­ŒÊ°™Y7ÑËÀÿË#`)Õ«%¥͔ܨƒYŒX_Œõ-~#dB£„åOÚš&'íh¨;Ð+Ûj|"#vo^¢€¾"}°7'‘ÇB.°— +Ì›‘Êá% š$ŸøÂ,ᆓBŽú7!È0» "ÑïËÒÆ½IMÄÊ,÷hñ Ès‚Â0¿1³TÐ3 À(È^˜cŒ{˜Ò§¥çȳÎYÅn--;jr"‰$âJ£siôz„ >"ŒÎH‘91üŸL±5¼ Y«áûd±yC ¼^ ÈWa+òŒUF‰×,Ü´9Vu3 ãcÃ& deF_C‡ÚF¼•SyLµ×>¶Sx ßx´"Ê.|n@Ã*ó*™…[cp\Ó%¯Ì=EËtMÐ36égmÙß–ŸØè#=ص‹…k£Ô¤Qz +ä%ÊRÙùÍÑ¢S[ã'\S%çœÃ%ç|SH ‰i›ÀYÖ—å§Cj9/ÇçÓQs溲Xžgí74e}¥¯Ëùnëx‡–mlË<´Ú…º°k`WD´¬âçz?êÌJwþÑåyGÀî!ç°5JM hx•Q31q0ðµôù•¾¢c¦©ß/w\øÝF-Œ@ B†Gž{皦g¸&©)›Ã¸[£ø;~ -'l`•ú´PCãÔ´AÂôkØ%«ýågMm©ß¬÷TœÛìÃ^q¼@ñOq0»V±À0“š_ÖJÙ1½B1Šè.5%Í­… ¹4f2vgeu[ZFÑ"ü®w8ÐRݺÀ{&QW<|Jd‘‰ 9jÛ‚–šFÐnN´z D2Œ¶² 93bãQ½fZ Ô,õwÈ{©yv9èQ äZ|ŽQùq‰Rüô?f‘I£Öš¦ˆµö‰ÎæºÐ­¡e{ôŒ‚MàÌ…ÁÒS.Ð’¸ƒCŠ9„È„€‘V0Ñ‹B6©ÌkÐ ‰¢¶êÆEÌ›9؈xÞ* ‚Nó&6:>ÏgGgyƒŒ¨]Èõ›˜hŸ¾.â„=jJ*xH^˜×¥¦fnMî¹ÕÔt¢ÉFÍ¿5»6²«‚ðþˆC^¶‹Å!+·» –ÆfkZ‰Î*šbÀ~±Y‘8dçàŸÙE2’¼:l‘‰ÂÀ³;ôŠC"d-,´[ÅÈA²‘ÇÈ©ÜR“R![ÃxÔ¿ˆ8ÞDÏBfí¡æ:§(©~ƒ\3U×y•ì2÷4ŒøzØÞ:…äJžU„èÁŽšž·=EMÞ¾r޽“ì²°E@ux•«Ó´4s{éÑ•øÛ!#¿5нã§ezFE[ÃÂ’Å‚ÌÕ~ú‚úÇzl?ê¬réBOÑ1÷$ö~@ÐÄ(ù·ƒMˆ@Ÿ»¦É©+ÕW7úɉauÄ=!(wM2³7‰·G(©;CäÄÐ=+4Í.\íA]0;Ôï·$¤ç“" }q±Ð +·§JϹ§Øh¿N&Þ¡¥€æz¦XèÀ« ¤dd‡@“|*jÎú(úÆboñ©Z@ i%Ì€ZHj„¸€˜ÉÄ'ý{V"ý8#6зԔŒÅüuŸFDØë_ \üÎâ+ô|¿ŽOŽÌ …¡‰j“¶KDA[hµD0’²¼êâó^mùu¯â·Póc ¹ñYà‹™šg1k¼^ÇmMïâ3\jlŽ”w°€èy0‡ô¨MQƒ¬Y"k“ÈZ^Ô.âº@?œS´ô ‘V¸z³ói«Ì­!§º!³lëùØ5ø¨øÊÚÒ±Õ=Ú9„•‰ŠØ™è0ò¯•ƒ X9UJ䙾RQÈúd$™ l“+€¨Ã‹½z¶OË)ä­iì=çTåà0ZÄTßöGÞ5ñ À›È3 ‰!³uÔ~ÎÖx5?l}2Î +%ŸîI—KÛnp™¿÷jy•“ˆ²Éda»¼Ú§:…0 «Uõ2ð'èñiÂÃõI½jbH+$GÌšs”ðÀ;Ê) ¨ë]ã +ÊÖ¸¨|m”“µ µ´Ò:·9ˆ»ÖJÀ÷ÃjÐZ“Lˆ<4þ·:Xvv¹·ü‚sŒšÑÉa]m²­oJ€©¤´À4¿YWòL`ï,ueü°Ù_rÊ5B¸˜`Vú0—W»QÃ:!Ù¯â½Ó„„µÞ¬Có¯S¿uõW@®fåEô"²_ ^3É/@¦ðLVÝqóŽå÷N”\¨¼ÅÇG!.õ£Î¯öbnF Ra̬¨l-™¹ø™‰òi˜E1+Œ‰ž…Þ‚P +paSÝ“ RòÚ‡’ãÎòK¾IjF@ÅȨY¥1`™ÍQò£mÈ…1­ˆºü¥Ä…ô3èÌÇC·š™<7< ½ã\ Š˜šÚC¦§!kmkÄ^Ýì‡Là‚ŒîÕñ«"¶Ú§ Â NLjå‚d†˜CÀ Ù¨•^›ab¢3ÎÞ\õSÐS° ä Ô´x©æñÞŒ¬:jÐÃ&#¼´7«h[ªë÷Wu2NÈ ÀÃ<{à<€e!‹L†ï ÁûÃg1É¥>ã³I0ö0YÈ"bÅìæÂj6¹,h– ]ZB†s u-¬q¢æ¦öˆI¡p©Xn°6d0¿‰‡ÏÕ<ƒ?ÆìbAP÷|< o陫«ƒ)ßÌ€9‰ÌÖ¾ØCÖÚfÅŒÓŽŠ‹ͽÐ1Šb0†1[C{ÜÞܵW7 àQòË·Æ1‹¼Ú¥0ÖFy(·º¡É¥yÖ¿¥~1ê2<íó[ÄÂm55ku””°9-ånèêfØwå’YÄ‚¦ÌŸ”¼ò€®®v{ZÁvN +J#F™ b’ðÀ×É¡?ž'¯# éœ ?r1s<šjéj/;Í=u c6È1+¨9nyÖuwöçhå}ŸžYºøw=0YÃÞãGÌbNÄ$—2áÎ4¿j©§êÊÚöÚÚ-i¡½ê‚g„™‡–ë™ $E ÈÚÖ²Q ]yGæß䨘(䘅ŽüCëÝE§=£Ø‡Q˜ó¸žOðÃy®ôœ[z[zfg‚‘»ÐYþÛNñ~T+dî |´ƒßšÅÇ™y+Cè ;„DÈ¢¬µ!jZÔ$¤‡ÄlBð9au´üÒBOÉq×3ÛmñlígÖÞ2ÓSÍ»pqƒŒÕIè~5§Ôô2ã åéƒï}#¸dŸ†_¹Ô¿ê™b½êiÉP«A·Â§cΔۜ$¦† mn]m½K# „Œß„ l¬#Aæ÷kyU¾iÇ;õ´Í§–PBF6lå‘Ã6.1>Çc}\_âóJþô`À ÀK6ÉqGu3¢ÅA³„ý8§h‰X¹d®*aÛFÎö+¥”€FÎGjkw¾|«¦!ðGMÖ6n«D8ŸI&^W +¶ô»>e57js¢9``—í¨iÙa—ãRBV©$`n|åÔpP.ƒˆº«Ú +!Þcæâ¼z^°%;bæƒ)Ë9.¨ â°¹¦1dª®Ûåµ»óBA|NZ ùŸâÕÓá\Z½ºú&NÆ +[«ë£³µÏ£sÂÀJÈóÛãsàÏ6 y¸*é)áÔ?€ˆ!Ûã^Ÿ¹®5h®k‰ØÅ¼ÌwÜ*“ìÙ„,dMKÿªäŠêIÅÝ-õ³ÑUeëÛ…ñöšRLðGëQC&!Ëo2\Z.Æüºü˜ßÀFûŒl”×È­ð#×¥õ"ZP_ßìœR°–‡)q[Mã>>/à­|’O+¦x5‚Êí)f®W-¨ZW1ÑÚ–¢£}Œ²½È?–šzàìºNLóLÓÒg;óŽîLÓVư‰}܇ûÂSÍÆêj¯‡uk¸h·†S²9ÎÌZêÁ^Ù¦$:Ñ—yIû6º‰»6RˬÔ©OOÍ])½`h½óÙÜ묟JFÑö-kõ=æJhZ€è„T¯Š–í…<ìÁ\™ïÈ:²ÒYrÖÖ‹¹÷Šq{Ÿ£“¸gizŒÏY¸Äd4·’‘»3]qͯ!¦ùÌrëë‚£1=³üã¢X²±ñÈ:iÀÈ.ßÃÞ]ÂÞ jd§žŠV7çþ´Ö!Äûµ/ÇFÈJ +ñÀ1v¶æqÆOšºG?mà“–Æ(É£ÕÙ¿ø'jAWچö¦.·šSŽøŠGMÏYÁÜÚš d…@3¶§„Un•˜4>í š_úŒ5^Ä; |‚k’•ãžc]ÊÑR°¤FLßµW·ì:ª[~_”5@Ÿ0ƒVJ[Wu²g¹K%$.’Óà÷Šãަ{soØÖر×>E¼ru…GSqÛ¯#gÔ"¢ZFi›€ÙêžÇçd `{¯QÆ[à_¯QH_¦§ÍtÒoG5õuÈ5—d=ð²WÏ'Ƕ™KOœZVÅ2x©K+æ85¼*§Šžå3òÉУbð'9Ò§»p ~€hj/ýmgúÆÒØž‚ƒœA+8%¸¿‰^¶U7¬MЉKC¼|è‘FÈ&Ï"Žê¦°£º!6'«‘Ʊs’˜Û/ºÌ?YSï±4¼Ü?õ›êGu¯"öÆN„ß>γˆa³lö]ùÕ¹÷ø —áq׊²N¸4QMwj«¥±™ú×1‡XêR2Ë6ÆH‰A=£È=IIñ˜e1àÞ°VÆ<¾îÓ‰HÛË7ÆY™àáOvçeµÑy> λ3-Æz5²øÌ­g£‡1WLÏŠ8G¥ñ™êÇn”êÖȘèrÏ4Ð 0gÉC‚¤/BÓ5Âm%¿bs’žæV³ + ³”xTœbŸš_áQŠñº7•WÞÓï}ºÔIFÖÐý$/Ñó·T„„õáÊësoŠ~sPÒ£ï’]ýìô¸ªVêã æº*Ï”­ÔtHÃ*óLÐÒ”m…¿ÊŠûŸ‰êìËq»âÉŽŽQàÕ³Ëà 'n‘ËCæŠ{;Ågw&+®®wü×2"3ŒÊMî¾_#áF ŸZ<6ˆèN 9c¥{Ë?%E@3·¦ÈÉP‹>•‚ëV°Ü£|´wŒWî™T(;PçY9ǿؖ +Cæ–n§RBŸë"ÝvÁ˜D,2àY#²Æá…[ê¡ÞõN‹H“DèVKhn­ŒãÕ + qäZ„X¸zn¨òQæÂWþq!m×VÛê×sqa Ÿ@ö€ü±ï‚ψXÅÜÙ„ûïù÷¿Ô<Î=w4÷øÍOú<†¦—. ruuÃ~ø,d`£ÜÓÌl¿JPЉÈa+³ XÈ@~¨³­áµ>CELX!ÞqŽò +âÆê¿žQ2ñH»öº‹\æƒ ·®fn¨™«Ô´ÅAâý57ÓOºëÓÉ!{CGx¦´]Qã5 é§b{Šž9×…½²9,(E43d«iòëšCv‰+ä#„ÅŠÈ.Õ®)n¹s‚•ëšbælï„€E=“ì‚ FÌØCؼ~}¨êÆÌëâ£Ë퇜½ƒ“ÀÚF1Ù›ìÈjä1cµÌ;ÅÈóN!ëÎäL¿ºâVÜDÌÚ-: ™éjØXû$¨­–ø5bªO<ó³;Ç£íÍ1 »Y« +éjdAݓ΀¶­?`héð¨yëƒåçÞ£Ï8:¨·ŒÏñwBE[/b®B¹§Ÿ½÷iZ»C¦š:Ÿ‘[µ5UuË«&<ô©()Ÿè32K37¾ð™äò­QFúzñ.h`z²¿G+ç¹ õÍ>SCÔë[d €…‹ ™¥»ÀAq;«2`Ä%9's5ô¢¨µ¦ÙŒ®¡1dAr Ÿ¶;Ã%Åíll@ƒM\ëËÿegœœsCùøœ_x¦¾=¬¶yÎo“Š\nvt™…ß÷Cwi%Ì] +µ*bAF¢Å-<¢òÚÖ4茞K𙟎„æO¼VÕgBö_Õ€gÕ> Ùõ$쀩á¹S'—¬M3²â3µm1ä5[ó4 +¯Ð{ï(y!µÕ¿vjeÜM¥B0µô†×çeQ‡€¶ +˜~3—°­Á'…m"QxNR½¦%¥Æçê^ï.7FæjÚBVÂ…ô˜¹º<öeÌ¡¨Ú Èzs|N$;˜X¯‘˜\Bˆ8øôȬXž•×yµl@/åúôRÔÙƒ0°Ðëã¸Î)Z†Ù÷¤‘Ö‡YîIè5Ô$øÍ®…V5Ò׆2O.¼Kû~õ}Ñq?Â*v¡Ñ1­Œ…ä¿A@@Ö7v­,\Ô̪ØŽ„z¨q#û`&é™Aœ³1Ê-Ú˜`ä ûÏVû +O®÷—\òO1Ëölòj¿’–åWÑ2½J`~%¿Ê;–sÂÙ—òÓÎ@é™ äøˆ™SÒÓ *Z^@éôO6Vû§ªÙn %{®+íàö(zƒ’³pˆ1D#µìF@‚ÚjÎÈ#6ziÀ€}è×á…ôÌ’¨YÂÚåu¨YȤ2¯RP±3ÄÉ÷މª<ã|TÈHÉ‹Øh%^å3ȈvÁøÝSbœOU#æ {•ø÷DÅðdÈÌ# ×_ýZ.Ú«¤g‡ô" +Âb!ð¿‘œå š¨ù>#½(„\›¶6w¹ u CãsþÙhÈÔø29näá"V¹WÅ(A½ùÌÕò¥®5^²ÿQOÏvg%²]1Qò‚FBꮃV¶g§—øŒ 1Ý£‘ð"Vh)²Þ‡\;0BzFY@KË›xÈ …›S·ü‰Ìo¯ms›…Ôm³„ç̈„^3>%lf”…,LØ +zo©{qÈjýFNEÀÀ, iù^59c}¼òæÚ$ñQÀ.o ÎòY!xOØþd,`}¡Nì¶jŒÌÔ<Í4¼‹A­"kya‡T°q°»sÒjÌAíÞ|Ýkd=cwNÄß›çs¡nÙs}„;P+ÙA³¢nÛÌ£ø­|` Èfä~ÅãÈŒXåsüv|þâTÁéø\ýÛØ|];°\ó.xÕÞ\c°>d-7b—ˆ£È±8äuÈž¿™^âÒ@ž´Šy»srÈ#b ðÛ£c"ëÐ1໘4tÈc ¦­cnøu¬JäX7•Œ‚Ù.ÜEÏ„˜¸=52JýZô­íñü“K=ÉGœCå·ýÓÔ°‘O\è©¿¥æEL +)¼dÛJVþæ$)q{²ê¶GC͈X@óR…Ó@É›íCŸ (k¥`b¿NHÚF_q¼NÛ¿Ò:¨¦—Eͪs}É;}CöèYD¬­þì£Îþ¼ ÁirAÔ( tô|çp9²Çë”kÿÈ9Å­Zë¡føÔ0ßà A —C2®SåU1‹‘k’>óôØ¥å;³Ê÷f˜•g{.io†G Ûh¥.Ù£¦fuB‚k\€öŒŠ*Ýô¬  ó f¥›h!dßìX²¡¤gm‹q!]KGÀ 8GHIÛCäôˆ^Ȉ[…¿Ž^¸=¾¾5ŠºcdB¿VD +™¸ø€žV4ÓKƒffùÞ¬»7+­qCfñê2ÐJð'…YÓÞ…WÜ&UD-0vÈ¿&vðXe|VÀ-Ô¿9jŸ#ë³q»Xüû¼€÷qŽKý8Ç!{5w¶&óOlM–]„ñÏqªˆ.%Ÿ64¿ŽY_EM2‰[Å-ÛQ ª6'Y…›˜{^£T´¥—ó7 [ú,ÍAà»È¢´Ñg­H@>#hⓉèa$§Út¯Ž‘0òˆ±iíÞ‚H™eâ|VjAx†… ÎRK ö6UÐѦ ‚öGf«[â‹ =—ã ÒÆ°CÈ Xù´ðÿߢ0²_Ø!oø÷bÍË ™Z²0+¢ +dJþÒ`ÕÍíiJšÏÀÆ,Oú‘}³ ï#³Ý¡YmÈ!àl¬J¿•Xè1S«âsµ/Ãv™"ãÞÑž‰6'Š.† wB–ª ‚‡¬2)ôR—2èÆØŒˆµJpNXÈQ¸™Sùær|]È,  u…ωϊå{ Чa‡XìÒâ·F*¯ó #f™ê/Ç«¦äÔBXWý8njx¶kQÔBnÆ,÷V^Úž  ûÓ!ŸâüZÈúj™À§—Mý8¨È›JüÃÍJ’OÕòÒ5¥àº'„è!fŽw”šÐ@MA.ØÃßqcoÆÌäÂ=¨ŸVˆõ)å⾦9lªiˆ¯!û²ýÐa%!9æ –½N<Þ'|t:¢–â6‰(däüF.vtÍ3Í, éal¬²jdÍÆÖ]y1zòŸ.3bƧ»”ø¾?®!S²zbZÄÈ®të¨ÅÂ?½cßùÙ7-`íÍK~Ÿ—(ÀϹN-ëÔ1JfF°7œ>Ñe†ÚR²KÂÚšÚ¨¶¥3nªmò¨)™#˜+kýÅ'¶Ç1׃F1ccœ_º5Æ+ˆcìÍÔ<ßu°qa3è°™]4q*|Èz¯YQí1ò)ÛJfdùæ˜U*Š li‘@ަ¤» „”ÔÌî<›[I¼P+>SÝ“Ø\CW|^$öè…30ñh1;›ñx<`ʪ١’‹CôŒûŽJ +>RSãÑÔÕ»ÕOÞzuOºÀgêv bú’Š_¾4ÉÊ +Ùš»}ÀF^»T°Ijýæš– µ¦)l¯Gô¿%l¥æo+II~£€Ÿ¯{˜áP<6r®ÇDÎtëˆ)~);hGö‡=‰/ÕwÅf«Ç nw—꺢‹"yŽÝÙ߃¬‰Â|…­l¼WSu?bf@Ÿ˜Q «2nãÑ~Ÿãóþï‚P¼7# 5ëÑR3×'+¯ ìrä +ä ^È*¬µm‘Ùº7‘Ù†w8î MÈò™ä]&‡ZzC:¹8†œ¼['À»õ<èh<%YÈ9,n©®ÛªãYõžC$ˆÚx$d_p4>hhz­}›—‚?Šøø=îr5nŸNß! ÆíµÏcöÆÎ˜¥¦)nª©¤|dÙ¿40ЭЫ$§„µÕrŸîqûŽJÎviåÜí)Ö¯c0æaîÒ³° }à=ýô‚=c㋈‘OvŽ““¶&¨éÅ€­ùDã3\b¼ü½uS-çmL‰«þX … µÐн*ì}çxÕÍÙÎìŸWß”]‰ëäò¨UÄÛ†Þe☭þU41nnx1Iù~8N¯–^y„2ÓÁXðÙϼ†–÷Q‡T +Ù™|T¾Üƒ¹¤iÎ=¤o)ú-dòüfD¿yŸQÂÝÖ ^#Ÿ°¥em¸NÙÚ#kÆvòhÄÄÇÍBV|FÀDêcŒš´6NK…<’éQ²ó£VÐ7‹¼¾Ø¯áãÂÆšäÚZÈÖø62S÷r£¼½Y"¦Ì½¯¸·)êCvyoÇŒÏqé‘kÓóB>r:`q Ã7E2pdhud®y(ŒÜ3°ÐŠœjjžæÉg•‰×'YA]Ós¿ñi¿ÏÜðÉÁ^£\ä‡ã +Ø%Ò äà°M9«¦Ægnî +ØZ§üÖÚæ€]* 8D\—……vNy¤ð ø©ŠQ¼2Æ-ð蟇¬-}ÈÚ[|±±?>_ó<¾Pý,lç’?ÎÉ›ÃÀ†>KM³Ûü\œkê÷Ùjž®©E¤-¶rªví´Ò]³9A|¸™èßÐW¿;¬¸•ñé….ÐõaÜÝ­Qü½¨…‰ŽÛE<˜/bòJÀúL°)=f1Ç ^GÖÆ‘}/3R9²ž– è$,¯Šöéø•>£˜´©Ípa žZŠÜTɘ^%ãV±€mùDdÏÈÌ'GÀC, =É ÛEÜø¼D¾» kÏH$>ÈÆ~¯2Yc×(åÁ\5Íb.ô\~ô-f­nðƒþ-n.tUœ]미 ü\ÒK9.5Ÿ¸1ÆÌrO7T»§ª¹~-ò%»Â `iuÁ3ÍÈ‹jdÂ=»¼zöCñÅÍF‰_¯G-2qztoFÀϰ°ÿ^äP½zvÙÒ;Ã9%@!×ßÃz* ¡@>'e´ÀÖJz^PÅ,ŒGÇl"v@Ç.A®3EÌp|1-jªkŽXêÚbvEÓî ŸíÖ’‘=šÀ=8¤¾|&xŒˆå3@ÞFîO˜bä®õân¬âï†Ì¤\ŸŸˆ\‡ŒZwM¯ýZÛfA?ã4 hÈõm˜côÖP[´²«µÏÍ Fž Ž-l¦xõÄd·‘–‡Ü6Ê1Km3pmcÙã4#¯Â|î.áçª[Í)1wV^CÖäÿÙ32ÇÜÂ,Û@; æöIJ/óù¿/ò8Q ‡µò»óò–è¢üI|QÑS<…©Ù]¨nÛ[R<΋廵5MÏ?® YëZ=f Ûm¬© ;»@›Š“L2~΍‰Bîò›«ë½Öú6Ÿåé°ßÚ2rT?õC†Eú1<ÃeÎ Ÿ^‘vÔ&·é…Öe©n®zŸW[Í.‹9$bäþ•€UQç2¼Ò¬ ¯À àO H–÷›™¨%ö¡K‰Kò뙥geÕÿYP´|tˆa,„Ì EVùû5øQ[Ì* Çm¬Š…Q@ò±CÈÎ(Z\&6Æeæ™kêþ„Þ”J6Œ¶Dl‚k’ž±=BKtO±ò|À¼Èþý ––íž =ܧ&5|Ìö0#u³ŸtÛ9H¾·kó€aùaèÈmx¯šUèÕ° +¡f°{³">²näÑ ‰n¹Ï‰ÑJÒóª÷mÃ纕Œ<ŸŽ‹Ùšfæ,1SVúéI[c¤„ –’嚦eí¨è¹c´äíqi¾›ô`©¯òêè´Ü¥dÂ]ƒ\6q°ê¶Ôï×iEn”íQIˆ»&…üßsŠÇçÐ+l²oz(u{œ‰ìÃÌ +jè9{6õÿžþ^Á?î £e@¿F-lLPÇ(h¨ù;ãÄ$ß·4f~ü>ly L¾j„ ¬¦æøµ”숙’2³üzNEÈ,“DÀ k¢~5­Ðò:õGK{Ê÷Mù È¿I$‡$œ€¾Z„¼à7ˆèQ›D V¬N„þGEÌÔ¼°‘ Ù^D šØh„wf¹ ².x2½Ì­«º¿¥ÂÞ‹š9UQð,äZx &hæâ G6#º»»$” ãìÏY¦&l ’ïÿ¿ysô=abVØÖð&2§x™awçi¨ðŠš(ÙQ#½ šžã³ö$ŠÝ…Úvà ·ðj¦Gç × ë86& +yÉY < Ç©©­ ÚkÀsØDà5I|XÛ*áGl,lÐĸ4œ2¼ÖüÒì³¶M‡u/¼ðó•‹Ze~#>ݯ—ð½†g£nsK÷:pLz+:W÷62+«õêYåA«€rˆ8Ⱦœ°¥áe@¯Çgj[£¶ÚVŸV. Z ø.lØÈÀDLà)À¡q; ¿k0€wÇVâ‹ÕÏwg„|ø?LÀÈ(òèy!3£$`¤—€fm©„ä ¹¶-š ' Y@»l¿¯–}>r?9 f—¸•øûÛ׃zjÞÎ4=Ë9ÂL‹i%´Ec ÏA ä -«Ø5FNØÆßráo‡tô¼=ò©€wˆx~ ³3NOó«˜y»Àöa³ps¨üââû’_½£¬œ°FÊÝBöýß~wHd5-×=^yÝ7ºø2û®£æiÄú‡ïP .l“ásÿ=ÏaÆllØÄ(ö©È©ÛcäGa³TèEö‰C6‰ÓAƒf>!h¢l+17½*JzXË.EzÇeQ×ÇXY %=d"Cæ¡fíYy„¨SÒ±Š%€½…lä^Td]:6'Ç‘ë{z>²Þsý˜ÙwÖ˸À†-n-ø¨™KˆÙ9¤8ÌÿG‡ÔP³œã¸»nþQÜÁ¥Ä‘ëepœQ[Msz æ¨i‰Îˆ…>3’Y˜e;0?Nd­²ŒKĆø¤:6'–†¬ TØLÍ™èÅ~ø®0°Âk–ð¶ú—à%O¢3Xqq©·òâbOÕ¥í1üäú²Ï,á„mRá÷¡ ÷ãê‘ýÄÛ#¤»Ö6̯Ëo —¶G¨‰+ݸK®â}×'w­tw¡uÌÞšûÝJGɯ®1Òäžõmµ„:ÿ{Å=FN j^¨kÏ»`sò¹_q{ˆ•¶ú|Ã5ÉÎ[¤<\êÀÛ¦>DÖfw þW?Tžy]vtöM婵nÜeß$%% ¥d¬U^Y䚢¦xT¤dŸššá¡>Zï§'X_–ýâ¤%‡ÕüŠ ššéŸÂÞöŒ£/ï W\ôŒbo†Ô”ô€’‘»9L~°Ð=ëà•­v—ý¶ÚUxÔ;NxR3 ½“ć¾iR’w’š¾9@¹ïŸ¢ýSBtH-ÄzÆù%ž ~ÙÆ ¾mµ§üôz?ú‚k +ÿÀ­!¥útÈÚ³ô6Ðr‘{bv‘{qŒ6r=ȧb£b& '¨ãUÆ,,â׈Gù¦©iÞ)Z:œSšŽ! `}*˧Uœ“ì\Ÿ†WÐpËÝäD'²ö ¤¦-÷a¯¬öo:!—¸§Y®qzjXÅ)ùÝÌÃïÁ+¹f£¿êÒf?á†oŠU·Éªã!#Å7Í.õMÒ2ü“Ô”­â͵о1zªg‚™í”íŒ +ËjA¥OÉCmQl àox¦H‰Q ç›fæ4b{\vp½›|k½ž°ÐÃLR5|·ÑG¾çSr +·F) ÐçW>T]Zë&ÜpöÓnõÑîoS-¯P§t%v@ëÃVÒgË]Uçþ˜k¯:µø¦ü˜o¢ò–oºâÖö8)ysTRµ=.©‚¹ªØ£$,uá/-¿'^Yï!Þ)ÙEQ-¿Ò‰ÜK?BOu2Ò¡Ÿïí V^Þè.9¾ú¾ôÄ2øÀFæÜò9IÓœñõrgÉÙ¸Ž‡÷L’SV÷týºÙWvÞsÑ Zí ‚!4!Ï;)#íŒËˆ£Ü|û«Š–ÖÒƒ³o*Ž;ÚË]À^ê81ÈáÐçÜ“ô´°ƒùx’[|‹¬)Å,~HÏ­ˆÏˆEÀ¶L/Ô¿KÉÊÝž$&.õ¢În€G1R×ziI‹ï×6˜YÞ)4$Á9Lyè¢&lôâ®®}¨º0Ó^öË|GÅoËo‰—½CÌÌÿØ kÃgoOÐSÃÄ»›ýÈ}¤Ä»~¥ r~w± sYÝóã̳òãÎnÒÍÅ·'Þ–_xƒþm£wÃñ }|ö5ñô j­_on#ž5¶ Î½ÁöDûT,äÞù\ø¿k”•µ2@y°3‰ì­’K#1ßÌàƒÞÆ^ߨÖ誺¸Úƒ½îžd@r ýJae¹Æùǽ Øk†Ö‚ŸÌO ~t“÷ïû ЩЧ‘2v¦ù¨•òm[KÅaËã’Ÿ”òÜýýôäOìO ~rƒw8¨)>%9ý? ôа˜âf_êÇ]Ñ?ÏÿÁñ²èÈföªs˜ô¹·+l³Ü:AÕö('gêcg”™‰ü‘¹Žªsö˜cóo±g>0ùÕzHË(ÚÃÝõªHia#½Ðì¹íÆ^^|ƒ»¸ÞCNÞ&Üõ)¹e ýù®qV6ÔþgþÚf/öâò»ÊÓÖÖÒÃúúâÃK쇋où‰³/É^/.¾&^œ{Ž=½ÒI½9û{z½‹tc«—öp r…wüe˜µ5ÀJÝè¥ÜYz‡9cSxtT‘ôŨ8ã ëóòß–ßU]ßž?x´ÔE¾±ôžtuöUñ¡ÕΜŸ­­¾Y~‡º±=&ª\éçåy¦D•Û㜂åäÛ®t¢~ó áîx‡ñ÷f_äXþ€»¶ÜM}°ÙOOÙ¢%­u¡Nmõ¢ÏoV\Ú®ºb{[ynL–þùJ'æÆ®^LGjiá]ñ±•e¿m bon án8¡¯·‡éI;#Ô”µžª+Þ Á;U'Ü•bÞ1îϵÓoͼğ±µ–\xSqÒÙG~ècæ¬÷o…4bà¥þÁÈß°@Ö§ Öª Ï%‡\‚WÃ,v+!·©DD?¼®£ä¸­­ð€ýiéQÇóò_ÏÑ¿,¾Á_Ø„1Ûê§&xÇÙ9;Ì”õÄ«ëðWì/Š~¿ýÅÒ\r`µ‹|;¤—²\JAÅr¿3p™k‚poµ}vþ-æÂÌ+Ô1Ããìï¹wÿjn.8¸ÑE¹3ߎ:¶ü¾âŒ©¥à€Z’ù•Z’ó¥õqùá¥NâuÛ+ÊQqÙ·câ‚/5µ%?¹Ágœ£ÔÄÍ>ÂMg?åõ¥.ÒµµZÚô“¼Û%K}jVÉzñöâq#øÛó¨ÚúÜoÍ‹~œïÀ^˜®-9ni­ºT a9E+=„kŽWåÇìOвµþä"? +i8(ÇôýAN…OÕØ¸5"(›ïă6“¯ÛÚJMIR>b<üóÌÓ¢ƒúÇ%çÞî_ì*¿¹k'n ŸÙèC^ë+‡Ú*8¢®Mþr©£øW¿’ž…<ïÖ +ñ[J~ùr/ýáÌ ÌÉ¥·˜Óó¯KUW§ï37çý°Ú…½h}»Ú'ɼê"¤ äoµTùµÔ×TåÕÅÇæ^dojIÝ·Ö‹¹dh+>µ3ÂÈ ›Ä¬qFÖê{Ô‰¹öœŸtMÉûºWÿü wòO]ÜäuRÒö;À]Z~G¾ii)?d}Œ:¸ð +ÆÜR~dT”ø¯^êíζ¡/l²s¶‡ø…ƒ¼¬…Òåå÷Uç MùßjjóöϾÂüöžvç“IaÖ!×vÊÎ's¡“z}æ5ñ‚µ¥ôÀj{áá…gy×ßTœ_‡»d}Rüóö窗®p³gß ›3¾4צýËR—¹ÏÒ±o®½äèˆ$c¿¡¹êæÂö}G[ùÑåÎòS«ïËO-u–Ÿ0·–RÉs¿²´^ëÅß^ìÀÞôOHè®a^ÙÖ 3yµ—t úìòÂ[ÌoV`ICSÚ~è^nÖü;ƽ­Áâj·´p¹‹qæeÙSSáw¦¦‚”ußK¿Þ¦g®C=mயtc/­Û.t–r¼*=fhÉü^ÛüíÌ«ìƒ;cøG£˜ã™â—¯ ×ÂÑŠ:²ÔQyfñÈÜyè•ãkïw<ƒô”-¨Íõ.ÂÕ•ÎʳŽçEWÁOTÕ_¯ö’ïoMH°ëcÂR§VHD²¥GEL\žœ’e}¡Qí××ç}§’¥|ij)9ôŠ˜°êó¬8m£—t×PWøÃ3å“.Ò£O:‰>éáe~eM¾±ØE½k~Š:¼3BKr‘ï»G¿ýRynRöðsUMÆ·ÆæÂâGû@“s}Ji£—™âd¦.v`~3¶|7)Éü|Jœý…²¦àÛ—U÷ÿ2ÌÏ98ÿ–pÛ5Â/Ú 'Ï¿EŸ˜š[ ýÙ’ÿ“ãuéq8Ÿo<ƒœ²Õ!Çüšrs¹•áQÕÕ­ö±³õM?Ñü¹ŸöèÓg˜[ÿ¤Üþéÿ̾)º»ÖWpnR|ûo¶¶ì½Ó¸î‰*àÔ÷(îvPEÍ +kD¤QV¦W%¡¹TbºýíŠã9ö7dz¢ŸÍ-y?.´£N{Ǚʦ¢3ùç¿úkKÞ°N.±¿­º3"Küz¹»àèÚ‡ü#ŽÖ´} ¯ Žø¦˜¹ÏÉ7¾qöóÂÀ›«ý¤ÛóoQ' Ó÷뛓¿š–%}¡®Íû¡{㳦Âs]}‡¿g{]ztT”üé;å“ANúß§¤yÿd<ü´›pëïCò”/ð÷~üo¥4ëôÔ´åé¼¾)÷Mmæ>euæ—c‚Ôφ æýð†–öã«ò;ÿ\éf% ‹Š¾äøÄܘ½õMù©IQò—½¤«2V'|îxE¾£­%ݘÉz´3",}»¶Ò>9×Vrp¶uT_—ÿ¶:w¿£xy”>l®«@ôñÊÂ[üùÍnVò\;ñ‚ãEÕ9Ç+ô…QÉÍšŸfý¼Ù#*Zéd'ÛžáN­~`%¬öPï¬vã//½Çœ^ì,?éx‘XÓ²_]›ñí9óºõíêÒ{ê­¹×U§--e­­eG´E?Ë |‰ø×.FâçKï ÷VzèMÍ%?NWçî¤>Uù­®1ë;Ë“¬k}˜Ë}òGû»Y÷÷ª ³MðYÚú¬}†æüï@ ñþóçöç’Ü3¥ L°ò—;ÊO/¾ß{‡:=ó²ð8xí±¥ŽG?¨koÿk©›°­b•9GéiàA¦§UÇ^Î[ŸTü:û²ê<äËÓªú¼-¯"4׎:·ÜE»on«<¡©/ùÁô´üèl'õþÚ 7á¬éêÔ/ßa/™[ÑÇÌO€©{IwŒOJNêê‹Ì>«8îE<ãæÂ„¤ð°¶¡üÄâ;fŠ¡upö5务rB’¿ÏØTzÀþfZQ|ˆ•|òO†ÇÀ½È÷ù©_õÑïÿmZ”ò¹±¡àë³²c›ƒ•W}jRÖTsú‘W¤+Ò>FXí«eØÛ™'ª‹÷ÒS¿í¥¦íç%}ÞG»ñÅw¨ë‹ÝE'7ú mm}Ì"–,¾É;2.¸ùɤäÞ?mYß9Z²÷Û[K~v¼ª:=Y_|zT^vÂ5.£TBœ{œœ°þ}q¹}z¡½â„íEpyåk;!wXž{ÌØŠ:íWÓóEÎÌ?ÏÿqñUñ/Æúü£–'¨sþq)˧ªæn ŠVû%eK(·Þ¡OÙž24äÿ ­MÝg¨KûÊ=É,˜}>cm«üÍü˜~]][uÌô}Èöó«íéüyñ—¿ÿ¯a^êy׈c}E¸8"¹ñçɵ?ŠîýmùðïŽô¯c %‡Ê“Nþ {éÇÿÞìgg3?`ÜûÓ„ ámuÚgÜûŸ0ï|6ÿuVоö)þÖ/Ò)*ÅtrÞÆ`Õ•¹7e¿› +¾á¥ÿ³ƒp÷OS²œo>ˆr÷ßøå¦%ù¿.uïMÖäþ¤©Í?ª«Íù¡“rço0\ÿû +óËÍ´g|'É<ÚÁJü~µ‡’°ÜEoÁœ…Þ8em+øiR’ôÏ.âåÿ}…>õß“’„ýϨÉß¼¢¦…^Jž}…¿8û²òäò{üÅÅNÜÓSô±NâÕ¿tV]ú°öqÇ›ªsà³·×û˜YKï)w×zÈ·5µ ’œR“Sm¯sŽŽ S¿_ë•¢Wº¹³íÄk¦Öò_íÏËO,½Å]šo'\Qd ¥ûK3ùˆ³Ÿ™¦’ßûT[ûhŸ±9÷ÀãÁç:Ù½¯WߦœZjϾ¼1LI³¿+9æfä8![X Ošž ö0Rÿþž’ð—1~ÚçÎ^ìçéá`mòafÚ¡¿.t²³ôOñÆeY_MÈ¿\éÀ\^~‡»lm+=d}Zrhö5æŒå9ú¼õ9æ²{\Aß””.½#^µ´pqùò;üõõ®Ò“Ëo ÚžgÿÚǼð‰ãyî ÷$»dæuåÛãÂC‹èû³o+Öºð7^•^z‡¿dxR~T~îOQ÷¾w‰°à-9ÀÂIƆôo-M9?,w¢O»'‰ ËØ›5˜«ŸQRÿÉò}g8ÚÜT|Àþ¸àGëãÌýÜ۟m Ð]cbÜÆ¿xg\‚Û““>®CF=©iÈÿnJœôOS}òs/sÞš¦eÖ¦~kj¥¤¬w?áÏwˆ³LOQ‡¦ër–ü<*C|ÏÌ82û‚”—̼e%h[²¾Óµ¤í7·æþèh-ÿe±zuº¡ìp}ù¿½DßVá•hŠ2Ôåÿ`{RrX)Mþ‡¹>÷»…Wå'Þá.VWÞú;/íÂ?LM¸Ô˜^.XíÅ\œ}]qbþ5ø s|B”ù•¾¡ì`'/ëë'÷ÿW+é—™w”ÄNVâgmåþg€rç/(÷þú¬âÊ_úW?]éÅ\U\ûRXðÛß7)9 ï°ç-mùßëçí7>)üI]—÷ã?ù_Óâ´ï–ÞâoÖaî~ÖŠ{þËÊÐ7•ßÚ? ÌåxQzD]ŸõMáâ'£œëûfÚ‹N¿çÞÿn½‹œ5Ö4n2²WÀ› ó\s`oxDZ·6PçtKŽN5ã¯+Š[ïã•,tRnνª8½úweõáš m\œ¾oæYÕ^Vú´8ñóÅöª›+ØÙs¯ ·¶{ ÿm`cö´Ì’­Ì5달Ÿ}“¬ò›ùîôÌÒµQqÁþ!nÖ¿l-¥‡]ÃøÛ®iRòdKö¯ÜŒãµ?gb_ül©³äÒÖ(%©‹“ðª6ÿxX/¦…ôÒf?%ÁнßÜRxpTœúëááÿ~‰¹ýñiÕ­‰š¢“îiq«Ÿ˜¼šà <ÜèÃÞÒ4çþüŒpëÓ—”{ûæ{HÉc5eoÐ'7z˜Y®qröæ0æî|'ê¤ñIÖ†'¹œc¼rÓ;ÂMókÌ…­!^Áz3}ñ êäêû’›}åç6 Ûšß`®­õIhۣ͊…÷’¦¯ÍÿvBœóõ0/ûËANî™VÒƒ•îêJSí¦®¡üŒ®¦ð'•"ã_úÚì¯Ö:Ñç¶FÙ9š6Ü-}[Å5÷¤·ØMºåè¨:¿ÐÏÈܘäW:ºˆ×¦åy_ißÎ<ßUÕä|««Ï;ºò“njÅžž{I¼´övoíéæê{Ò­õn6Ê;Á§8'ùæÊ>ÈU·b–Ú–ifádÞjòö0ù¾kŒ’àgdl rrô­øëãÕÅ¿nK˜ªÆâ#h×ÿªTÜýlñ]öùݨeû–^®N‚J3Žÿ}é 17¤“2ýjN‰{Š’²9ˆ¾ºð:ã¡æÚ'3/óŽU0|‘¦uh±›ñÐÐRr`RœþùÿÁ?Û©?k§_ýRÓ”þ£¥µè ­“–V¾ùe//ë´gLÂp ²3Ac³¶q÷—ÞeŸZh/ñ«ñÆÒKÎ1fÖZþ†áIщÙ׿-wU\š[tBß”ùƒñUÅ•¼ä¯´ %'í¤ë‹ï)÷Ö [lòËg»‰wÆëŠˆsƒ>,ÞçmŽp ¶'D•ó0—óíeÇV?T^}:b~Ž:¥:£~Qzw®—œÛ'J9¤­Éþa©½üòÚ‡ÊÛÛ#UÉÞ)Ú§¤e¯ `®ôrï~:ûªò¶wŠ_±9@¾·ü{aª&ý_Óò¬}Sò¬¯‡% –ºÊïM6]Q_ýûÌFÕjOÕm3ðïü Ôq•"嫸þ@{ø¥®¥ðÄô®8ÿÚß^’S¡Ÿ$·šV¼ð>çØJ#e£W„òŒÊ¨ž a±›pc¹—üÈ9.Å­| &­¿¯ï{}ÿÈwòüp®p8gŸ½×ºåÈZogjóú¯¹Xû*ÞÏ4>^ì*³4@Œ™¨) +êÇ$œš­. ÚÄEm`#¬Cð/kýà·Ö¡`>sÎÕe\ÛÀ%Û$ìb€Çiyé·'y™· ¼Œ«Û=ðï^)­`± fª+y½=ÂEé‘›Ë?h‡¼ùÍ H¸¾9XñÑ£¢æ{ÕÀ¦¥CœrT⑆<œ«¬u„ÌM))e¾ öa©öf½þf©©ü¹{˜–g$§ËY f³nâã€q?ŸäÇ]T1S®èE…÷;qá@LeûÔ\Âi6Ógd⼓uuû!w¡òA#Lb(õ²qf­¹àÚò`§Œ‹ZéC…2o®õ<÷ß§âåÝö)Ñ%aæ)¸9'hÉO°ÿ_f|[QúuKRôñïY&ó?«â]¼9ZøúÐ\Ý|h‰÷&¹X‡”hðà¸èÕq\|3þû•i!äwX„rKX`Ï%g_G*Ü* ^,o“2rüï.l©ˆ9k}¥Á[·‹­¹O6³žû&‘I; +bÖÞaŸ e¯ Ñׇyy¦&ø+@w¿³õÂÞ¯´‚9s¾òÑÔûЈ‰>ßK¹¶ÙÇÎÛ’°ò-MeÏÇ9I—¥Œ˜ ¦šÔ‡«íï­ý_Jp˜˜NVÆNÞÛó¶a +iÏÜ4êÐW ­jFÉÊ"d¡¯üƒ[äÊ4³,!¤‡=½ª‚EÞ1T5YÌRäÕBGþÃÕþ¬û³í)·Í)O~ÍòDû~Õ à\lÚ¾ITíÕ È;*NÅŽœYl¦$oô“¢æ{ð¡-˜Ä“tØk÷@=ÁÖÇË[lÆ~XiÅ~ÞìÂGm SÜjN…CÏBÍžЧvåLˆsŒ^à§—x5l„SIËw*ð©ÖaL¨mˆµ9ÂÌhAÅÖ ‹¯¶a?m÷ãC´û»h©›k—<\éÄFÛÆ…èùbÜdUÑ]µüb¡ãcÂê Ç2j½»0x¾5óî|Gñ‹µÑ‡±Ô¦ß%Å]Ÿ eÜÑð +ÞÎ5ÂÏ$ÆŒ°*×£ÏÎ5bóþÕúï9F‹ƒ7‹_®A#¶eØÔCµÌ§Á¥O7¥ß_í¤%Ûåõœ…^zŠŽŸ Àñ+}˜¨‹cä¸+Œ´Ç3MåáÆÌWNQÄÅêÂÐs¿¦„¬ÀòÒ›¤äýb7ø…uëÒ‘¡. ±-g‚·ÆYþ8ð*Ùå€~ï)þ°= ~=טxÍTsÝ-Åfø4bÆ|5ЀVûH™^5àkV…]†‹·+0qv6Á=E«pÍÔtÚtõÍ6%n#¥­ôAC6‘Ñn%¥Ø_Ù:Š](ÿ°Þ‡ˆØÕð(æÚ²g³µ…÷–‹ƒ7{±9{:.Õ­aTÌõÀ£5¢ô;v)%kÏ(í›…‚-*~c¨üÝL[A¶:åát[ö§ÝIrÉàwÛ¤-Ð9‰ó×xóÇýæ()Ã¥¨a:”@¾J)©KmgcøÈ?5¼˜óË=ùOí£¸ÿ³ø.³Ô>@IÚ쥦Úd¾™øa¥±ÔÌ7ˆð¯ø¹ßöÁ³.LññA¶.n¦­‹™l©#…(i°{ |lÐŽ¤¿&á—©ë¯--¸ï.umÝê£À +蟚57Ü3 +“/®·ºGéY‹Ü´)!.h±Žòi¾†þm³…›æî•o¶ r-‚ʨ 4ᦌ~joåço ²ó7à£äôèÖ¶¹Õb†KA-˜i*z¦æ¥^_jãe,÷7b–:+s©ßÖ;+ ›y)‹ô°vâ40Öa"ìN´ôê4é”­öB?¬ô»µ˜Ì]•²7SÛíqëy$cSá‹é–’`À/$¹ÕìòÙfhÐ\]áÝ®’ ­þŠo®l¦WF/Øà˜«éŸ–›©;ÃõÄa1ÊÚMOÒ snz0uošÃöÎÔônNò +rzÞºœš¹¥b•y&¹¸ýI~GÁ‚¬¢C×ÚËžïŒáãöÕl˜]Ê)m®Hý³–q~ZDŒð´Öú&„õ^È»¥ðÛ­1TÁ¾¥º}ÏRÝì3U +œJz©CIÎóMñù=·obb¶ÆËB׋>η<]î-y¹Ú‰«-‰½ÔZž çaŸ[{E>yÀ9"D¬4ã¾ÙºHÑIf¹“Yj=µ bb·F1±;**Ø;I/õ¨*âUÂï×¥ÌÐsKÝÐÏ^mM¥?G6ƒ4Û¹ÜALØ4ÞÆúûj?>l©©e?Ñ2‹[êpaæFdðtKÁSCæ“Ùö¼7{³ÑÏåzå¯Åê« ›5Ó[ñuK'd{¦›d{óU{stܪ©­Ë¾on˹¿­@ÆÌpùû3¢ú­ d½˜ø·±¾ë§¡¡û‡±¦É1‰žn‰¾?×þhKƒŒÝ›aà–ûС =¬eé]7©ìb+&ÿ´ ?éwtô·ce!¤¿}ºtçòiÐÙ“ÇA§½»uñ>áírV~ÀF?:æïY6íç<›fÓs´è×òF«‰jô“qìÎ}«]vAÎü ì“ûý;>æHufÚoìÔ˜“äØ/Çði_ŽE¼¾ŠyúàhcyÖÍzXÒu•´ÖGK²K%K]øˆ¥NÜ×õvÆt''Q.$uáw[Ñ—«ÀÅГSŽ#ÂÃŽ½{„~œ—výáxÖëWGÂ=…ܽ +}xTð)ðH;4óòb;#É.@·åUôµq>ÌÜMø:äòtkUöd7t„†ºÝŸïG—]!`ûQÐÛ½ˆ¢« Å™çŠÃÞ ¼qtçüYP؃ÛGi)á Q ïêêà_Þ yg¨˜3nS‘Á¦öŠ`UuÞ“u ©Ô«ñ‡èR亜 ½3ɇ?Óóï5lØË¦²ø3ôÔïÇ‘Q!'bž=:Šûø!æÓI\ø‡ßfj‘q5횤£ÜF.}m¿.C†¯K`ŸÝi•²À–fRˆ¾šü~‚Oy3ƬxÚͼ%È‹¸XúúDñ÷ÏG?Þ =ºtôíÁÍ£”„ï—Ú1I$œœ¥xŽGK+wO²Q^ Ÿ7%Ôô !Þ­e!}FÁ©%çÌt”iø…7§ªPo "ì‡Ê¼¤Sï_)ùôþ!&ê"âà \Â×?ÈI'q½wãHZðó“ˆØÐ3U¹q'×û‰‰.-àœR×%ìüå>Äיނ÷+#°Hc+IIý3*èѱkýº +l—NÝ»x”÷9è·1^Ñ·3ü†–™÷$:s¾/+Xßÿl–Fö˜…•65€%£Ä„m%6Þ££;Ô,膄ž¿«Gåžâ§Ÿ¤ç¤/‰úvä{à] Vo’ƒA¹ï߀BÞ=½týü>èÍã› S'O€Â±üùÉq~Ô_¦FÄ+]äá8«øúd%òñl3JYËúÔN"Þb–ü KN9’ýõ+(ùÍ;ÐÇ{÷@wϽ½zôýî-Ðë€K  §~@ç?ŒûèMÀ5°ŽÇdtð­¹vô»¥ZüÒ¨©mãĉ(/›Ñð-ĵDùYjfÊñü/Ä¿|Ê ~ Ê{ Šþ týè>0—ÏžývìèîùÓþ¹qò¢ÓÖÂ^®Év"a~ ø•©à5µhSÍÃLõÑGŸÀzdébzÂqhä×#ÐÐO xØgPÄÓÛ 7.ž_»:òOй߃î_<º œOè“€µåá—¦‹žXÇaË£¥o¬RLÔB;ôÕ\æÃ˜ö ‹¹X]^p +w¼,ì (ûý PìóG  kA.œ=½xtÿü9Ð…?ÿ<~ô¿8÷"˜÷Wשù}:}ß"¬Ü1ðˆ>#øŠm91m±®©Ç¾jD€/#£#~CGDÍ ~ +º|ôäâPÈíÛ ð‡y?º}öèé•« Ký:~ôè&p¼äWA ZfÔ]-öÝʼ)m;5ÕÂm%µ=»z ôöfèËÝ» ÀþΜ8º ãÎÅ+ S'~^º ‚F~ùMÂ,¼§¯É»¿ÒWþÙg¢¢þ]åTîÍ ÄK2FÞÂ(+ÛÜUVC°+ Ð`ÏjJrΣb"%¼~qä pŒ[@L|ðÿñ¥  “ÀZ^â;ñE z›üýôtgùw»17Î+ï¯D?h¦@.òà…’óÁ'ÐéyÇÁ1IÇ>={qäÊÙó ‹ÀÜÞ¹xôèÆmPäóDZ©YçêлJ!>d®þÖ¥¥8uäÒ·dzDTªîªÉªá~ªø—wž}¤"6úHú—O ·o€^Û÷À' wïëö;0'—A1¯ž‰ zzŒôíB;*%`ŒUød¾ŸoìÄ}VWc_hk¨ï´ ÌNFù­üjw™—÷Ç——A §Ï@ï<ݽx t 8ϧf>¹r páèôo€N}¾óTñ=á¯ÆòÜÇÆZTèR/%n©™dîäJª¨ï»hð€JHö¢ò¢S"DÅiLfƉð—/@®]ÝâìåµË Ï÷‚^]?{t X¯€K×츊|ñ DÍŠ=¡àÃØ”ŒB›šV°0€ü2Û^ôÜ® ¥/IÙù“=Œ¸áÆÛ*4æZQḆ¯/ž‚ÞÝ»Šzzvã0Ç€ÎüöèÁ¥ÐÅÓç@¯€¢ƒßyùêxeA•¹6Lø¶œ’»6‚\À†Î¶¡?˜[‰Ÿ˜¨»]tÌma9ølAxØ‘äï@ ÁÁ è/AÏn€N?ºþçŸÀ|\½¾÷táô/΂Ÿ>:’õííÙVvKE+Û5óÞËcbã\:Fùê!^Y y ¨Ã½ª‚—^ÿv<íõ[PRÐs —¯.¹|ñ÷“@Þæý +èâ_§AWq?¹~ tûòuÐÓ€; ¼o¡¿a“£/MÖ>.öqÒ­Ò&C]-žë&E[º(á†NÂ×VréuXRøñÐç@Ïo\½¹sÌïÅ?þòâè‹gÿøó¿û¬aÐÍû §7n +þ­'ë†Åÿ¹ÖŠù9ϯò˜è¨mŸ¼*¯$njkªeä0yŸ_’{},6èÙ‘˜ç/¹ ݺ úëÄo §Nǽz|óè°–I¯?!g¥ŸÃ2MwT|Ñ7dY)#Õ¤ Q1ýÍhµ ¬›ÈzÚ†&Ýè °‰a´;ÈÈ™âˆÜ¿É%çɹåçûu±òêž +Kw;ym¬±!¯Ä;Ï眪Û'kD‹ÊJ´ªŸ“<ÖF¨¢¼èbÒ_Šað€j(úF†ó”š‹ (-=ŽÉ=…KÏ<‹MJ8KKI è@"‚µµŒô¥|üb7äåÚ &ܦ©¤o¨Ä´¥±jüÌHI?P “ÏÕÀònJjÄqíâš6œôŸ ¹T‘ó8,óÄûÀ У«çX¾ +ºuá:(1øË RjÁVö¾^>ÛIÞ² mr!Ú:.DNp +„ð”‹\pÜŸRú™T@ÛÆfVi÷(Ũ+I_â¿}ø tÀ΀s¾Ý }}ñöhøÛ£ia©GÁ‰ù'Ùå¥w‡Øð³mÄoNM%Å6λ”l„O'¨Ú3‰jv bU[ÍÑ Õ”Ô5Ä ðØ[E™™~{óæXX`0(üõwPà@Ðù¿Îb^;Ï.¿F`žv³èïÆxô/ó½54»¢¾vmŒöo¶ .Ô>Á­X–[ë0šv~üH9¸ŽŠ¼).»”•t"åKÔÑ//?9~ˆÝ‹ sœ=¾J ?†J)¹ÖNâÆ- U1ì*F…]AÉöùlß\ýØÞ¼¸uwVÔ¸¦aÁuý„Hu/#¶‹Eºß„Ãßå‚‹/³²Ï£22ÎBRRÏ}ûé÷÷Ÿ"ß¼Å~úz4áKä‰ðw€ÓÒþ AK&êH¡K\Ø–¬š¾%¯$ØìÒµQF¶¡ñÂÜM[¯&*Ú¸‰ÕØ’k¨´˜?â?¾9™ú;<#áLZxÈ/ïß½~x<;>÷Rb\âÙ̸„”‚Òó|8òa÷F[x'çe]™í„|ÙŸÖíÍqø€>ÌÝÖòñ6}µhYUE“·Ò¿Uà—Ñ9Ù¿G¾zs$<è%(÷{(?*áxôÇO'^Þ¿Júòæ(27å*Lù½%lº_ß”s å4²ꦦu@À¬Ž×QÇjq³=´(C3îÍö¸“Pro¡­¶:ÐÁ^n$oMTS*1Ó¦ 7eœ礘ã4µªæªÛ$¹¡`C¬nYÉ…-ª¸°¹ñ*ÌÌ`=LßÎŒ˜êà$ÌuGzEK£ÜÙøB_]ùz5Ö§äÀ|@~¹ô•Œm­`KÆ*w×U¹]£6M]íªB€YW‰kr~¡›™¸Ô-Ì™ë­+Õv7ë†úøªž’¤®1qTXÚI£VCÀ皈;•¢´å¡¼SÕPµ£j¨ÛQWó=“¬×ÈÁíN ˜;“•¬Åzêt1ryˆ]¸>&‚Í ˆŠÔíÕ©ªÎÆ|e[S¦´®9F^[5.ä| `ïišj3duÉ=ýï¹:‰×À!-Œ Âe¸DÝ;µ¿žõi¨±2r¸¥%[ÒÚœ]GD´±ê>õ‰ÚcºXüWÚffè\méÒ?oKKuèhens¥Èi¬itLÕ·oO5öz-5퇀Ü¢–X'H)KR\”¢¹â¹¢6ÐÀˆAe¥b–—ßè7ķ𸪅Ÿ[¸Üg \ñËñ&Ö×I³À>Ù£öÎÔõî˜ÅµÞ¹Éî|íàŽYTç¿7á00ajZÞü)V🢙©nä|·ôWÏHºª¦ªË´]ä0Ã3e¼‰Òèà.>ú©ª³1ÞZ§àe.LT¢ÝSÖ?3á?Ó\‘OGA¬¢"–†ðák#œ<«\LÖ”2+ef›»pŸVI1+R€»ª²n "ÎŒ²/YzYY†á‘扮°¬M«íÍKiVeƒh[Ã'¬"¢5¢Ø‹kCà·{Óþár³yÇDƒn«)yN=Ÿ¼¢äBgd•PeOeúx«0v¢¹&QÞÂú®ê««Pv°õcØ 5qv˜5=€íC~péT«œ‡šë‚¿ÛA|ýµ^#õÛ^S]§SW]iUW’·m°1FˆSÔ–¾®+ývÖ+ç w&¹äM)!Å&ÃDoŽ¡#* W•”ìIÂkWoiØn wS­2Ÿ©Eºoªk÷͈k¬Z6rSIÎ\B„¬J0ÑËRl ŠM•ÏdG]Ä.³Äg æíN‘K7•¸ä-5£tg²¾i{¼†ïV V5µ:ÁCYåUL÷¤ˆé’ÒíƒÄ˜µ>|øb?9f]ÚÄ]¶¥Ñ*ÄúX vuDP²ÜGMpÈx»Z!c[îï!VY{hj‘ïë{ÜZ&Ò­c@¶• °MÆ)Ýáz&+éˆíÐð°n]uµ]Y+ØV× +7ì²e >jE‚‹²NÓ6ljv%§ÜÒËIë8”=žùšç Äj†CM;ÈèõÁ‚@— +•ôcV(vNòðvŸ¼cªnqXêz–uõ­«“-Ý+šöîU-sf5;,(X’U£6T,𮙎Þ7 ؇f>ë¿52×9•þ:ˆ-9ß©gãÜ3¢óýõÐ þzDûzrñ¡™ŽtkéÅV³@Q ÿÀ)‰}2 €ç-©;‡Í•s*jάœ^’sa^£¿nuýoZܸ­ÃìNW¶î͵}³Õv ­Ð\,ŸÐ]`m'™P×$·>FÉX膾ÙV1 ;Sµ­‹}èïæ–‚G‹°¯ÆLÔ’’ŽÜÔòé:³—Ÿñpv8iÔg7ù4ˆ8¯¼<Ô!+ÿ¶6 uÊ)Ù>-áU³¡Ó|¶ÇÈÂmŒ”½_ïϱОzÓX—öPÉ ¿¶Ô™óÉ;%ª5ó貺ү›*Þ7ߤÞ3ŠÄ;zji"åÇŸSVÆÜØVÀ²~,‹ºÓ5]!6ê¯5¹ow<*€3%+h¨±%çùLOá × —㚯ØÆáœâ¼Ïmd!½&JñÎ$>Ó¥Ä%m CÞ¯–¾ú¹,lÞÕ7õ¹UýnukK×Ôµ3É(s)H©V !v¦©ìÅ–Ÿ1ÕYúÎÐT¸9BŒ³ãâÜ“”B·–˜ãT`½:z¹GKÉÝânÏÒ¢Ú35Iü9°?ÃgÛ&É› +|¦ ¿¥$娛²'ø1/ÌTµïšzÝ1c[FH´Ž”¾±I*>úßkwhØð™Zñ07ïÍÆ:Óg¬m÷è;ÝÚ†f‡šƒškÏz´Ú Ú„Þ’3Õ¨8]-:k[^Irˆ±oæQý=­ö¦p9ö±â™öèën-ì3V7mM +¨†Nø§m éÑUr½ºêÚ]m%cGM/[FÆnÈ a{Àkñý³¥`A¶´"§Š^æÑshda mô¬]}C§gŠŠX—”\„‡ù˜²¯Çº•иf*úÇŒ°ØG¹K+Ì6É÷æë¥vSM»ÃX×¾­¯®ÝTQKìJR¦CÃ*÷Lq {ÓLôÿ®‹ºý5nw§èŸ þ1‹Îß3 *|²WGïÍp™N5½Âãï¶,¨ÿß.ïß9&iGCÊ^肽37Bƒ·dLè®±ªcgºªmCK-tÏ jw—jÇ~.‰»þg™+þ1ÇæyL”ŠEI^ÇŒ/ö™Å {qý®¹R|°PÝÄgXÏæV3Ö† +‚Öúsïhð• +x¡ ñu{Œ˜¾kd = \îÞŠ¸{AÔd×S‹å)Oç‡Ñž™š®µ jcq8E*;4ûk63Pn2aµ7ûÓÆ@Ñ—]=¥Ô.§›soé«’/.tä<ÜÑbRœJdú‰ŠÝ›®jµ ¡ÒGÑvq¸T3êT3¶•ؤU:if³­%UìÍòjVjeÖ)qu739À:Ž.ú5Ëã9”„t¯†œãRaâ7$Åo§[“ïoÊŠ#Ù¼]€ß¶µ¬ +¯¥ªÅ3]×½¥ãáìJBÚöxÅgç8äýæHQ°M‹úgUØêT±ásÌܵzÞ¾®¶ùÐÌ¥ùû:¥¨ÐÍ~äÇÅžÒ 0ó’¹¾ô™u”–jÆElɰÑko7J߸ÇQQ?øe&ÿ»ÄΫw LÄO`íþ^ãXEÌtiˆY;“Tðš³ÒWþkVÜì3Õ4:•|”kœ’µÙ[ñÚ-ÁÄNrqN…¥iƇµãR¯­÷À¢\†ƒÜ–³ŠXÛe¸l§š +ÝÑñ©Êº–r½©"!Ø.ã±¶T|´CƒOu¨‘QN5*Ö&«µJÀŸ·”øô5s¦÷Ý.çÓ÷¦ëüuÚ·lØö8)Í.†,wç=ÙÍ{áœÄgZ‹_ÍuÀÂ|“µ-~ èÑ +ˆ£È¡¡æ[ÇQáN6ÉߟvøNQ_øÈ팽)¶²þ燳oÆš E& +d©»ì¥KÁDý˜©phÙèqv±S/lkÅ\»šâ³þÐÂcúyt[…Ið÷'ð÷ìv¨ i;z|¶OO);4U7ï€qkÑÉ«ÅoME¶Q\܉…ó÷‚Ù7’ +÷¦(¥þû|61cßÂ¥þšã ­rh´M…NÛ[jÐzJ”oŒ¼¶M”}ß5‹÷çÈ„ƒEŽÐª ƒWÇÈ{Ó•N= œ ÉÿÜžGÞ0ЫC§ú èt¯;HKº&cå¾púŸ áSí +x‚]ƒMßÒ`S“ØDŸ‰R¶7SÙÄ]¯Mçìèù´C ‡zh¡@ö ØÌÅδ[ƒÄ—'µÂ¨ûûJùÎ$¸>LLt*ý½n¨8Ÿ•f•B¿-õÿÌôbBWÇaëRXø–’˜ç³° =¹Èc¬¬Þ15J|óU]¾EaÃÁð9#¬qê9ø…~L¨[CÎ÷÷DÝÃÇî,¯^ÀôÙDŸEÔþc©zìç +¿nÇ@-u먥{s-&·¥¾oCÅm©¨…ÿ.Ñ(ÿ»D!üïöË‚æÿ[æÕÙ” X :üZ<âÖ/­°ú' Ÿ=ã_¶ó¯4gÌÖfÝXm+~aÅD ³ò³ÞŸß¡æ¨+)?õ\ü¡à)2Å¡(þdÉxø™õã­KOCüZäVyÍ4¸]M²)p‰..eW‡Ïö¨°9ÃèÈÍaAÙF/#Ç9JNôÈ(iŽlÄfö«S +ü,ÁÆXûK^.wfݶI _œ +jÎj?!×-e”nJIiË#èˆå~|Äö§pg‚]¶£e"ì +j®?÷L?]³gä^‘”n'$­I1¶ *Ë"ñ®‰Ç4Í©‹v§ªª ”’C=:qWS²%ƒ~Ù ¾mŒÀC¶”4°¹ûÕ¡Ò¼SÕµ=æðÚíïߥÀ&Ïö£Bj‘á×—úP–êÖ]sUÛ@Êwj ÿG9ðp7À-`¥¬2!$ì¢Z\¾7]ß¿cªªÛ´“ÓßSE†³Ã#Ü&àó(ikƒèP»”š`ªí<¼žÏ æ{´´KŽK[ë‡~r+éE6 1q€x~¥£"ük†þÝ: ã´8Àu™K°™Îâà] »3/n^W1!V )íÅíÿ.‰Ûÿ³"lùŸU~Ë®“»2Rþv¶·"xc”»>Š Ûd#˜ÄU¾I}WÇA»5ÀúÉàß§jÓ®"ί s¬ÁŒq³hÄÉ\ZRéYûïEžèpŽËvéÙèõ F±{ªºeo¦¶gk‚˜;מÿp±½àÁ®ðiÓTÔ/¥bkúÍRtUΈ»¸Ò[`¡¢ÝjX„uúÀÂ$·^Àpé„ï4[°k!ýýIþà®È¿]ŸÿcŽ‚Ø11qŽI*€; ¨×Ì&þXàr~Îr»zRY'1ôй –ýs¡QñsÎÝ4øš üÑ5Ot)|ñ?‹•íž)ð!,ït£Ü­¯ïL²a^£bOO+Û†l«yxCsùÛùfTÄÏI±À§d–ze¤ô .~­½ø©ˆE—”œ¾ÜÿÖFˆ8ÃM +ºàøÖ1A+\€^( \(œép¸¯èÍ,þª_ÐÏ¿µ4Iü{©ºÿ`†Çò¶Ä äÈò`ñ[)óû9ÿó@ú&ô7nÁç{2Î1LŠ›k({2]“{Ë\•}Ó$J¿j%_°”¾uHÉ™ÚVXX~xà_½ˆøÇ½t[ÉÁîhYp¯– +Þ‡E,öd>±IËBv§˜$—а‹¹££”¸ÔØ$ï$2vOˆÝÑ@#V Þ/w—¼÷¨Ù„CCÏ–†èlÒÁ$!{WM.v©qn-!mKŽÙÅ„M5Ü[Æ$ê[! ]%=jZ¡M‚ú¾Ùyµè=ß!ù@G-Û3Ðüúšs`°~^Á_÷dk ðð›MÀ{¯NSÍ-@¬I8›‚ŽÙ˜ 8]»gáÝZJѶŸåVSËœ”,‡—ðu쎒ñ?º;%ìškÛv§EUv1Ù&#$­öÀÞëXñç<£èÔS•U^“Ü:Z¹CÁ€ì^Æ«á ÷tLä–j•c2¶ÕTðYTó¿þš¹ó¢æŸ³\–ÏL)ÛÑA#ìòòÏ£åomRè»ñÕ!ÃÆ¹'HYÛc¸X§’’ãÎÍ©&å[%¨¸~h¸ÇÀ!ÏIÈ„ìg溱Y?ê¤û3¢¦îPc“mrR€G`@¿5ñGÛâ“Ö%ÄôM)µÐ +ŒÝÜXðÚ\•óØÚû°Ü\øÒ6„ˆuLr{aŸ*BáAÝá"‹¹kƃÝ:t’]UôŦÈÿx8ƒ+ú{‘IÞÖRò¦»JßùûGx¦+k¼€¶?\·þ\µú,$ÈŽ³Ò_üÒÒ–÷Ä3Åæì…¢ ‡¾oaPœzìpÉþ¹@Å>¸xsö}¾£ä…u‚˜>7HÌ0¶p2ŠÖf¶¶Ògà“÷4Ô—†V¼%%Ť4­´}é!¦îÉE«m%Ϭ½%Á íÏTÂØ‹~ôiKUö˵QbÚTKùë…h𦄶ÊX­qÌäÛßSâÊM>[^•úh¥‘rð¡ ˆÕm•Í3ŠŒÒˆÒgšJÞêË‚Ø9o¯X;±ÉÖrŒŸc’“v^ÃJ½`e–}Ó)ÅDZG¨™}ܼga¯®å¤|¸¾£àâm +tMµJ!_æ»ÓîYZâ¶ÇËC—† ßµâ”;J\ñ߀îñꑉÎqð{ë@fàRGÌu½øÛ™å¶Ü'^9­Ø>ÁÎ÷¢>ûŸcþ¡ç`t†SAÎÙA‡n "?±»Öy%¯Ê $fÿ5H»¶ xðµ!lär;øÙzgîsÇpIðFÎóåÞÔÀ}¡Â«e ·¥¨ø] î]J2xs »;ƒ/Ý_ b}w¹ôt¤±£4xiï3qð‡€¿°*(¹ èЭ1l´}þe­¯ì‹F˜òÐ\›õÈ-§ç»Íâ5VÖìZ„ Ö ×Q_šÀ÷g«R.»‡ a¶òˆÁâ>àg«*]*:|©«ô›m¨"l±»0p¶+ÿ‰Såï+UÝ}8-nÞó×¥š­¬=˜aüý·&à¡[2d˜Sû¾«Å$8Ý.çE„8Çûÿí]O¯ØQãÒ6a!Ëý¨°énä—jÚ‹µ:Þc®mwèØØU`ü[€WØÑ1aQÝþtm÷Ú6nuŒêÖ‰D®©šúU£@_ù<]_öÁ1‚]í.y½%Fx»Ô_ñÞ>ŽMÙ³Ð> ¶`׈Jõèü5Çü5Ž å¿ÈH÷$6Ð_ߌmàg›RtšËÀB9µÌŠ]—q¸PY¿­Á$ºµ¨¤í t‚KMÌÝ5óøKèŽ=œoÑ,VõìÎ0ÛtÒ¦µ6ˆ _íG„9Õ”‚é.ès9É­ëwOÖÕºµ\”GMÍ÷ØX¯–”锣¢—ºòžé…q——»Ê^/4—¾²õÀB6» o7:€|h*´ö—¾w¨ñi=5ÏàéÏ~D'Ü=´Ô´»4|¼Cņº~ZA„­ôC>¬•¿ÛÓó9Û!À Ì½)æÇOü-Î:BJ^h-{1Ówwº.ÿ‰u˜7ßI‹Ñp +nØúß±ö!?¯v•¿07æÝQU¦_‘0“δ¾ü¶ÔA,²KÄøù>Øg`íŸZ%°0·’XìVœ!§æ.v–ÏÕî©©XO³¥þœÇ“‚èÓvü™…ÆÜ'Ž1XÜ>À÷Z +xS‚Ž46‚ïoô#¿8$„Ä­bÂÆ)nµõi­ùÞæ¿_׊ù`©A½“Ñó-Õ¥ï6Æx0…0ï–Œñ‡sÞ5ù°=Zöqk¤$äÇ ÝÏMyŠOzzZÎË ;4ñxÛ²’Ϧ¢pŸ©8b¦;鉥%"`¡3÷Á–Œ¹>ŠK\êƯç1݆ê0WËE£ôèÓÕE¯ê„I·¤üzDÔýv\Ä3¯ž+^&&Åà»F~æ%#?弌úíT?&ð7cMØ- ŽFÁZ/>zkˆTàT01® BªGŒùe¦ÂL ´oŠÏ80ñ9?güÕÓ {FRñ¾‘\êÓ3}€Ïr •½_ªK¿±ÑžygO…NpÈ8¥LØæ:Â1Ž‹³K± ƒ¸ÈµÄÇ©ªìÇ meßìJ&Ìç.‡°oá1vu,øÁ”€éÔ²;“tèEX噋Öå¼òm}]ƒC[ÉÜž çºå„äå.ðËÅöÜ@— ¶#G†o¾Ö‹£®M7'Ýù1MÃÿœ·yu˜,‡úÝ­A'Z¥à“í|£C‹YF|x+Õ&÷û)>×;ÅDïM1‘€N‚¸U˜Dû"f±ònwŠÃÞŸmò̈kwç*wg+[=f€K ´mè†Ä-2jKEÈtO 8Àï…‚½Qƒ[ã8Æñq¶Ôws]Þ#ÿ».Üø«Ä´§¿™êÁQ¶a|‚¹:-`¡%ûÉæ@Ù¹0þÊ„ ᜥ6ëæ¡šÙ·TÖnɉ)v€_ý¸.ƒGlc’ý9ñs–Ç[$ÅMÕ•>Þ’’òf¸ôu !vµþn¹£4h¶6çáZWÉ«¥ALè 7ó&-éÙ1¯‚ƒ^ÄDÎ5çÞžªÎºa®Ë¿?%μa¬Ê Xl+|øßòåA\ô|ÈAÐ"üí bžm ¶Ð‘sýíä9ò¦GŽ/õL 9[2Z¶OM‡¸ä€fr©pkò~®)éÆ ñóɹŽòàùŽŠ7æÚ’GÛìBŸ¦¾Þ1Î/¶Ãßã’ÿb&¿ 3ßþ&#%\³ö¢MØðFxôéÅHø¿&>kðÈ–Ú cuöKûPþ—馜ûÔì;3­è”}#:Ó”tm¹'ó¹K‹Ý”†X‡ËB}j|ðÄšš¼Çr^úCŸËûµPÝ»obaן×úŸ­ƒèè:&Σb G)É·4œœw®Qf®ñq‚švI‚M>§ å\×ñ3oÎ5ä­w!’VG©9o%%½»¾ÑGÅìEU«}YÍ¢èsÓU ­£àà3,ªwŠËéa¥¾i„ºüŸ‘X¶5\òz¾*ýê$%攚ñ×JcæÝC)×Ò‹Ëùt瘰8ä Wø¶Ò]ü Œ»Ð\úâOçë5ßå17ÏÓr6e¸Ì¿gD5?M|ößj…sòm{¬ä¿×‰=äH%ss‚Uh—QÓ½FéJGék£0ùú$+îÜêã‰ø›ãŒ°k›’²”ÿlð[†Ù1æ:ó¿X˜„C ¯-\ÞØÏxùw5'ìÌlKæÓ]#±cààìJ:xMJLpM2a>#›ä¯¹þï4¡ðÐ{“è4·•åÒ!KUÞ9~Ý–ž\øæò-@_Û䘔.ï`–EtêYp»ŠÞÑ‹*W†YÈ}£çï‡çÓpŽ1fžm„»Ð^òT'Ì¿»5B[‡ÐQS•É×§«“oúk!(xÑ7–á”ÂÃ÷M<Φ‚ ]$ÇúŸýö騍C ökžŠþµ@#Ì`ò×G‹_YGÑQ^ ³(A¤™›ý}Îù(§L€ñixX§ —äÂí ZÌé bÌëRRê'óšŸóØ5Â,Ú!ÄÍ7=Yi/~áÀB§j3îh‰—ÚJ^ÿ0VVÙ¤ÈÈé–¼ÇsEÁ³mÅÁ‹Í¥ï¶½µ7‰ÏÞ”âã7‡©OW·ÿ;'nñèèeÓmæÛ²ï,4gÞôÒSÇ89cc˜o¬.¹¿Þ… ÷(™e›Ãȯ+=ðJø^]IÄŸüœö c¯ØúÉÉ#|ðsbêë“Zqþ׃IZ©¹!5 òê%î6HŠ~ý§½/÷¥KJÈùx«™:Õ˜x`äÐ~Ì «Ü@£ë(…ûþzÎ +BÖZÉKŸŽ‰þ{^Ô´oæwt¤\Ï$¿«!çïL`Ó×»!!KíA–šü»KÈFþ+aÁ—ëK]°oöQZž}T€tâÝ#˜„õ.T’¶2/°¡øãïjAî7¯‚ÏÛQÐJ&QçM5OÖzÊB~NSPûFÉ©aBÕM…ŸFØñýšË¥!åoKÐѶT" ¯¢¬ý€Žé* 2‹ŠÇH‰W¹É/a#žügžUéQ³Öz‹Ÿo–¼wHÑ)»:dêÖ™lß4 iFPQ‹¨ôæëÇöõL’m0ïÕjOòMëPÁ‹¡ÂWf6Ó­ãSmRZ¦[ŹŒ¢hÔ‚ô÷Gº*ÂOJÉg—[³_hÉà¿çø¢s,#ãÁQ•0áÓÏ:Ñ£Ãæ®ô—¼ÝÂfnËa±¦†l@ß’ÊþôÓ–ŠOžl¨Z!&¹§Æ|‹ÍS/rxžñòµ¶´€¥Ö´€¹–´{n4Õ;E,^…|rMŠ}K5Ã?Wþ[/¹Ò_|ÏÌ@¹tÔ"€W»zf”ž{ï`ZÀ;˜ââ <¢[Î*±K0á›=í½eÁ{F¹m¾Ñ…úìÃ'í(° €¦vJJÞ:d€†U“óVÆiÙãŒüãœ$dyŒÈ$·¡,Ô¿í™ q><åÐÂÀz‘"¯Ï T ¿îZ†mzà¬]û:U•~]ËI¼d€{±Lð»?;Q÷vƸÈéÆÂgƒ¸/JH!§ âøË2fäéqjÄ™õ®ÒŸfpeú~c›´¥dÁ +«"eyUá¶±‚w¦ú”[›èˆ_ÓUM?,B¡C h±^èÇ- &É-ç9e€NU`­CÈoÿ­6Lˆõ¿³°Ø]þjSBLY¢¦*ù…JfúE#ýŠ–W؃‹½rœ—0!̽·6F/]Wðúú²'ý˜ˆ?›Š>«/úzŒžôôˆš›p{ÀbÉûKÑÏÏ®vãÝrf±OILw•‡Ì¶¤>žà|¿1LûzÆ«‡&ÿïJe«¿…WIYë)y¹Þ_özwŸócŽÍÜŸç°ýÞ١¦šæÕ3½}·Ú[ñv¥ö}{—æT3Ö$ø}mñc)&îìö,~ÏD©Ð5&ßÑÖFž7µd=î%DÞêA…߸ ð˜S"þôÏåöÂOÿYaóöMxð–¬ì«u,ÿ•Kh€)ÌßÓÜ®`˜¼=NÊÝÕ Ö1TÄB'øÑlsáýqFÚ•ÊìO§Ú*¾^³õC¢úÊ>± +>]Ù”ŠwutøJ_é‡Ùvð£é¶¼»sY·œŠ’÷¿fxÜ]£»!£çìhÐÃaí?‹Â:ŸRf©Ï~0Éɸ2ÓKŠ‹ßV°KÍ­È·-Ÿ¬ }¹=?° ôGäÍI9)ôw;þœk ÷ë¼f«^&*|qÚÚËüe©iûeaSš±y‡&Dšu4çµ¥9.`º%îʯùÊÆé¦±-Hh“QsL‹ÛlÊO3 ·7I-ö(*"×û2ƒ¶ÆŠ¾ü½(hpĵ69í³TVíϱ©^-1Ç xsÛ4¤qE”þâm½€±&%%»&©¥. ÃÿžÎ×5 –6zJ_­wæÜ_oK¿çC¥øïá蚊® Ѳ·äÆ6vs ³!A…ZeˆP‡“°cb"½Æú.Ÿ¹Iê³Ô÷ÎÖõÿ˜Tþšã €OÁ.0Nß  %'‰™v ½Ø©«d¯býþäól#äÙ\Cé#ƒ0ýÚbká{ë0"n¶³âÕL éËz¿¸lµWT¶6įŽâ×=¸<ý¼0ä3’Á.€WÇéùÛ +f±G#b»´løæ8>Á©ÆÄxóI6*Ö*Ŧú{­îè¹x·–ƒòè€üÖ³Pþ^]‡Ó¨M†ˆ˜n+z¸Ô‹ +±N°*ÖÆ¹™VZÄ\+jºóBEÍ»*%'_Ј³ŸhòžubÏ(¸àwöQjö\{éksMêmû@ɧùÖœgÓõ)w¬ƒÙϦ‘)»F|Îê0*l]‚Û7 X{&6þp†Cߟf‘=€_¶«ÑI³]yO*hô¶†Rà²Ë}š¶á}CÛp.¨å²à¥þœû¦†„k½°·Vz`_ç°Q­¨ˆsK-ůö§¸ä]=—¼3Ép±+És=¥¯'+sîü;ëïÁÉZ•·úõ±‘Cÿe©íú l>à¬LôJ_Y°CáöK@25£¾Yeäl/à¿w'™>9ê‘2!öA\‚\˜p£Ÿsífc—û±ÉJaÚuû&ÀCôÞ,‡q¸Àaøç5VòÖǨy.­€³5ÎûôÔb‡¿ÜS¼Ñ û²Ö[ñÆ_»ËÚ’2“î¯ S–ñùVæS%;ó޵¹;ŽßWÓK¼ +|¥¿8v¾#íÍB[êí´gâóVû!!+}ÙW2Ï4e<Ú. ùgò©q×Âf÷s3ß´SŸý˜¯9˜®¬ÙÓ1*ìÃðÏsuYwt‚Ø€µþ‚Ïÿ.ó§{`ar$Ô5UÛ}°\+u*i˽ˆÏ€O}³Ü‰óêèÏ —¹ë¯÷n¤–mJ°ÑÖa\”mŒœºè¯³Ô0ß”v[Í »0Óvgµ öÚ- f»àQJQòõÕ~Ø×51ïÇ4±ìÇ, ²7ÇÀïN x>“P´g©ï›Åµ?çêGý}ð~Îò{Ót”Ó€Nr›¹v)ÇЇþÞMJ¹±5LÍÙ ')ééW +‚Öå¼8¦$Gœßì,zn#§˜úÈ ÍäÌ{Ý”Èk«CˆÐïÕòˆ^1oÏ„ÏßR¾ ýus‚ ·+«3}”ø…!b¼u‚˜µ£ò„Lú{ž ùgŽÇ?´ˆÄÀi»S"þž¥¶sß"®ö™ÙD·—i/ ±—†9d”—œ[¾6BMQpËîvc²´Cc¯w–Gžj…†Ÿ¯/ùzvˆseZœuÛ%¡eŽWƒ11—{I¹Ny%a}½9 +ùàVA¾ØeàÞ)TªÇ@…Ù Ôþ|u¯ÛD«Ø1’ +=tºÛ€ÍsꙄm-ã5sÙr\ÂÆÿþ(¡ÈÒ†ÊrLpËãþñ`“Üã¸$Ûòëb7*D.Ê((útv¥µ6„^誶K±q+ýȰٮü •‘â[rtÄ©vèwe]ÞS€óù¿–ªzýõ" ¤"«¿¶¤a•ÂcíJrÁl:ˆÓ‡^#—»gáó*|úl[Ö'ñ¢œ‘r® þñŒ¥)í™SC… ³³Ÿµ¡"/ÚÍe` €ñCÿû¬È ³6FͰ*Øå1äÉr>Š𷿆ºOÏBl"BüuM'éQ§;oΙ[‹ßÕcî|{xdiË ùwŒr)ÁÿŸ£÷þJ3ëâ¾çž{údj2“d2™”IïÕ45‰-öÞ»‚Ò{ï Ø;XQ‘.Uš4E¥ +Ø5ÉÌÝžõ¼È{ñüÀZàB8œ³Ëç{]çìê“ß2‹Ê.1+î~Á©¸ñUpº&雬ž-=®Þ/‡¥ú°[6ý/‹óo•ú¯Uh]Z’¼*©HZnKÆ?r°˜;Ë,üî2{hf’ÞÄÿºÈØÿùð÷.lûêdë³)l6[i;fÑÀŽ™ÇÞµð»¬<þŽEˆ)°µ#öŒ¨²¸ +š’‚Ÿ‡æ`¯Î¾o骿è%jÍÕß\æ^X¨ºšh{¼)F¤)¸ÆQÏ¿\%°Ñ0xð¡ YÄꜸS± èŒ] gìš¨Ñø{;‡ùÁΦ%¾ËoÞ¸/d 4[F1oçÉuלCÐd³úöT{öZje’žQ~ß%XVÚòtG*´¾ÔÉ>5þ]L­96 ù;:.>ªIì³lO +P¹sð´ˆ +[²:‹É3ô¶Þñ/’Zö,|Ѿ™Ð¼½ÔšU7%G•\`¼¨c `áÒö­\Ö®™=¶sÇv67Ñ·~ß0þ¾xS‚ÉܘD½Vñê®V½ºüiÎÍSŸL!ò.øÄð¼•Þæ;î† +jÎïNÉõ9Náï#øÜ‹öL¾ €žµéŽä )$uCÚúd[×þî£ÿ÷&«ûƒG(>t ãrâž0á½›Îùàá¹DÓûAÏ.W"zB°¾I2fáy :û×#=ŸzèݮÕïkȵIxòÊ@ÕŽþ²ß×&@¯B +rã<«ò¢VX}cG°®‰‰‹º:nÄ”Ç ØòȶT××úXÕÕðxÏÉz¸ÝQ=¾"¤Âm-ÛÞ», ¿££:8 Àä¹Ç!/v–i€¶$6F4¨¢Õ‰ö\{oÝÓÕ1PêÆ,8?$§mÊQùs¬Š?'IyW|Ñk +BEXKjض0qaêW’k#::Ä2ØþÊ+ÖÀÖ- ¯£Rup‘¶!n{¶6Üúdmº=; d€ä°tBå˳^qÃó-eSŠc8ë´µ?ëœ{²á…¡¯êår_õë˜Vð¯5&Ï+Cä.õ7Ý «¨°÷NÑÄ{'udo+ŽjÊïI)÷¾”b³1Ýðæ/‹ç“¢stFDÏ¢|tö«þëìûß*÷·ݰc„f¹ÇšîGe¤Ê¸œÙ¼³ÄÁ»{Þ{ºçí|Qx•ãêm¸|dcòÂ3P~qm´êJ¢‚} ù†»ñt{ZÐîD¼0±Ê~SÒ²Ï Bž|Ï®¼ñ5½ôÚ?@¿òÏ Šü ¸¼¨ +]°kÆ×n ÍÇ6ÿÈÙ)Ù_ ì.3PïLZD)Ú7ÐЀþ t2ˆQ·©b¶e\ðÚ=GÁ¨¿$¬ý•YöÛö<‡½ôôW^´ˆrNº*/ù¦;^ºÆÚžfÚ’L4XT†-ˆÊIÛ:ZkLÏŠª é¡EP²®3ç%~þ©ÀlcÒG'™6Z·4°Ì-58%®…d.c[ÿã$¶ýg…ÐöW¢'³•ßR“ªü¼màöL¢¨–ƒu A_Jù? A2Oê8õWFàùçDõé§œ=ÈìY|™{ü`u¬=iþî×EjÞù˜WQ²+ãÔ¼QláImgÓ«- 3PÀ‡V\Ó U·kv‰Ì™) Ø2 ¶ïö®p„G/9{öí]ƒûvaï&°þ.që=ûPÃ-Û`ó}UÖK>#gü›§U…$ðWËÜœ“Kô´Ÿ=¥×½ÐË \öI§ìî ùÂJd‘s´á–SÜpk3ÑßÂHjt}ß*ù°!Òì8ÄðQ‹Ø»¦aù7·{ÛLcmÝƛ豽o£y [²´º?Øxq½Ý;O*tKÞJ_†+¶·<#–Üý¦«åÅé®#®Gämo¼“MOì—JL‰OÎ{¤Ôf€/ ï<á–Sº¥…5 ôMEK®g²æqTƒ(Û³óØ®)z¹UŒy½ed3ÿ½Ú£Ú7’ÌÔºo£"œÜî}+Otdá±÷ LĮޅØt×,në‘%ZÇ–šÐÌKû– ón{‘PSâK# ¶¾â –ÎÊ‹®aBzokÖ÷S¨ìŸ–å—¨…L#²O.âsO9{k¯09¦^ð]×2{ÛÀ%†4Ôö½e&éÐ)šÜ¶ ºB:R½ˆñÞ©öäÍd¶VXta[‰mÚ³v $ÎÁ„åØ|›¨áò0èõ¢ê'Ÿª¥§‰•I_ãónåè®KŽ«ÐE15"'¦FæçA©îѲ{&AÊ/Òó«µ÷6æq…ZaÉïË‚ò‹Þ‘Öç€ÎMÔ5¯ø·~oCÕl.ÖÞ‹ëeqúoO×ô\lîž²5%>_÷`OÉ<´P@Ì *áy¶¾Ú?RRMHÁ@˜zÀOùMé¿Ô¾ºv‚_ýú‡°ñÒÆHË­à,cžòÝ8ôÍÉÕatfdž^·¬°¹GfÏŒ‚n1M1=º,n µ¹E³{+üž¸…C]…fûfëŸÄ5à×Û:Dþò,½–wÑÐIõO3ª]}m÷¥ˆ´Ÿ‡šŸÿ,Ǿ=gfeœ L6%˜IÍ`U³òñ¡iZ뱫sÛÄÀy~Ç€«ÙYF×­RI1;¾Ù#G¼'^êmO9÷ÁÛ5sàìS¶œèçí×ßÎA’cZL ÀFp•°öÞ"ý¤{¼%`›Æ- ×D串 ðé¨-® dê¦[µ ؽ{Ðì‚oyŒ3‡¾c¡!÷V¸ñe ·[4fœÛ\d|RBEÜÄ"ûÕäº%!èÞ¬àÌâÝïžÚ?5œ‚?—ûjR×g;J%È·¿†”’Cqht÷ +•rà$‘vÈÆÐ\"b ‚þ=«`4¨&£÷1£&:<¨%ÖøµÔÖÀ»vA¿û×åä:ß¡òÀ9°´ë6ï»Íÿ¯6„] Ú1ÓÚ=€^\SRk•¦æà³ œ.Ë8´jGK‡…ç1™Á)h’o¼ñ†w ú‚Ž•ù“–Sz~”Ùð{ÊSŸðk_ýšGdmÌ@_Ù{š®y†›o¬KîøgjnÆd˜@À½2lí0îÍ™¸Ó7͇t#3¡¥îÎ3—yìàwíÛ8 ×2Ã;…ò7²$ªÆÕ„dðôÕ!Èc­úê±ì0W×Q%©ßáóž}oílÉÚšGd»GÊþðˆ+.:³OOÀ˜Å¾:-%¤÷Ž5¾°Œƒw3~rõRËbRnW‹¯94à +v íY›ÒÆG!YCÒ¾Ûrl¡c£lù¡Ðð_©ã?Àã¶à/;‡ud&A<ãå7ÖÄUw|óÈ>äõ¯³ä²«¾qlšwüÀÞ]vÞÀÍüeÿòÇî–?p‹¯ºD+:/gV]gV¾:í¬¹¿2؜敚XŽÊ(Iµa9¼0¬‚ämÈšžú¾«çwî,Q»\ƒ_^ùÂ'-M +,¶¤l›ntÑðÛV8¨½4ï/—`ø£ ÛrhƒŵЬ} ¾ï,k‚ó¨LïxG’’˜ørYx} Ç–oN^JÐoNO“r/){ž¥T¿öOQëW'(ÅÎIø‹Àäv|Ç‘ Ózì$vŸ4 +å]å·gè9·>x…’°–M)Yи–EŽ)µ[RHZh +”U *¤ô’ cØì›«Óí¥¾9t±k ìÃS|³ˆÌ€œP²&'걄4Ø*…¨ùá<»òiT/ìÚ^t%ö6q².¢#ÕÄÛsqøq Ÿ¿<†L7 t¼ˆxL¯ŒR³@®ý£»!íǾ†ß®Ö\ÙV‚3÷ô•Ãèw§ßÜ<óυΊŒÃ&ùÀÆ¡”Èb?炊ºçÁ…†7»FjÇ•ÃvN@óåÔÂSö苨‰Ïßwñ÷F©9ÝôæÚgÓ¸‚;9x†–Wô›†‘ÿ³g¸ñÚúDÃ혼åÕ‘‘Ö¾cäâÐwm9ç¿ôô6î˜&l1Ó¨úÀÑ3yìbó R‚;|‹äR ¯ù³:åÔJ_[Áž–T·5‹ÊLâ³\ƒð'VQû-¹ñ7½ùZpšPîèm}`é,ýÍ/¿ðJxÇj¥ðl€‘“ýóíoÜÓÍ÷5¼š++½ÔR=ñÖ? ~udÁ‚¶µ¤Ö-±åÃ2ñÁJÇo©;²ƒ‹­IûzLåŽYü/ý?/¿ÿƒˆïz\õúDÓ³Ð|{Þú*¯þæ7)¥üêê:Õ3Ø|ÓÄ+<­$gÌâG~ݳ¦aY¬t7ßc /”=8÷ÉêPcòž:¡a`é9è÷HëýÍ™ÚÛaEÍÃÀBýØŠ\疴嫀ظ9 K?²ááÇ,ìÈoýà"¶¿w 1=,'¢j{óÑÁd˜y¼c{çpÂ_öÍdè¾Sž½rV\Õ²²Ï¬I ¯]“èÒ JÁ5]gÙíÀ¢h†Xt{_|ÐOY{ZÐøÞ xòú2íØIÅ;ˆ˜c¾ýÐŽmÜsàšc*:œØ¾B¥~\eÐuüº>UwGOmìxóãrguößáØ@³ðÕ{:LI\‰*ðOC_­ ‚nk»Z¯÷#ŠÎNc +‰Í3ÚÖÇ€yéïxìB¾ôâ2—8õŠš’O*|™éÈZi–ý—Ã2w–p ;Lñ‘_“èŒï­¥¿úº¹»úfL‘¸†! +)QEžé¦‡»‰ë]VdÉ‘Ýø?…’è¯×0á‡ú‰m¾¥&×&ö}xúË/Z„…çÌü‚ó;ZL­¦¿îUKæµÏùÕO¿Û7Óžx²«|{ut°é‡‰ü_¢´Äu̯”©àdü’ƒÞýå|ÐFCíØèø=ø¯5Þж ^º6Ûúp‚Zršsût(±ŸÍŠiõIš““-/ô°"ÿLà «¨èòìÅ—îaè³!Tîu\ѽïåŒâ <ôІk9´`ªç q E´Øâ +[Ö³±JJý¶ž…Ù7±ðVhØy™Ü6 +ìðýõÉêÛFQÑysÛóIbé1$ý›žêŸwW=ÿª¯>ù'÷@ãË}-²>/]â•_S3J~ .’*<–UÀ‹·Ôˆò- ¾ˆ„#7…xà$cvV”€[ª½ãši{{¼Ö£9p †¢&&6bæÒâz¢ç)øÃ +· @ROí›ðÈÿÈ=§cšŽ¬à|ËcßdÃ}²úîØŽŽ‹‹*Ùà-œ£–­¢SM¬Šßæ‘_é¨YßG&ëmŽAÒ½w–yUgb*\™{¢á™s¸òš{¨öºs¨ìòÆxÛ“øµæ/@ã}tSé»*&f¥!ölæßÀ]â ŸÓЛwT´†C-³ýPÃÅ®¢ß¬öbRB¬*{èÎ:ë{#§äO¿âŠ–UzFϯþÝ=ŠÉŠ-q1QäW Ò‹ðŒ-` !±‡¤xuS eÕÝ$–¿8ié©Í=ruÏ…Õ„šÕ È‹M)4mO¯>4ckŒÈŠ-9®ÒÚ×rwsY~d¾Ä>^&v–ðU3ˆ×@|¸éǽQ‰û:ª~Y 5ý‘ØÏl鬾8‹Jùj¨íÉgÃÐä¯çpE§)ôûJOËãp[reÒÅϯ/u A¼‚©Ñó OOãŸcHÿÕ:øîÔÚDýã½%*d¹Sd胦®M#ó>öòÿhœÿ ±ÿëÃÃ>® «vu°Lû`ãRÉ‹ïqù¿Úœ'@Þ/3pGZ*hW)ßœ§)E7ÕÜ,@ƒeþ¼#ƒæ„Ä&[gãµÈ4"+.'–Ç”¨¼¸UWÚw´„ +ûçuqË›÷fÐMq,7ªG—o‰ ¿œ‚¡=# z`e6(­K‚–g;:Rã…ܱ9{mæWü¡açž‚¼>%A¦ÿ¾> N´V ªüÕOo¯Ÿýb_þô#`—[È›ˆò&¬§ìè1ÀÜR €v@lÈPÙ!±òÐ,ìêØÍÙöŒ%lmdšjæåŸ“@ž~g쪹مȿ\øìÊ×#ð¼³Óðìo%­ÉŸëßêÈ€†¾ø¦”zJÔœrv‰]vCÉ­¾Ÿzõä'-o®}»)ÇC½sð7 ­/w-x°_*qMƒ“< m)»€ßþŸ³Û7Ý‘SÓÑG+]ã.ÑÌûõnõÇ îè7y Ĩàló}¿òÊØSssu¢#-<‡ÌðKZŸ&šS7Åu/|#UöôLÄúˆ…Í÷©Å—}cH`üÕU„¼f;Ò¿•v¼þZŽ~ýWpÖ/n¹go¸Ç?ûª¯-åDh™‘µ§™øE—­…×"Ò¢;qMŽC²æx…ÅzïJœ7¤ãŽ,lZâ¾ú™CÚד›v”„²è"¹ÂÖÝrÃ&l»£d4Ýeœh~û¯òÕ·Ø»ŸLœ²‹[³íÉq%¦Â?Íß\€eoii­q¼o&4…åà”%^þ¯ +FæO+ƒ5W#sˆ¬}#ø$¦£÷<úž‰…+¦§~iñUçÀ#SÐÔf&îÀÈ"eĪ=‹¸gàÓó¤" ¹—»ï.ñoX{Zo®ŠáÏ7æhÕAý%£äÜ"¥øÆÊ`ýM ]3ð*ïºGÀ¦aX2¯éÝ©¾–¼« ìn¼eâ×]µ‰ZûÆ[Ÿo-@^™©ÐƒÄ™*lËúVů~üÞAE}t“‘ÇD鱚{d…åœXkìiºO*ñí8ºàՖ£òÖ‡®¹{ªþPQßýH/½ý:ó§3ð§ßn«ay3Üšôš”ß\£ðº-5©ÞÒ_zII{þ“wïgsç‹_¼cõO¢*RGx‰ +ÅW?9»È|÷è?«lA¢_ö “¼§Ç”†¤àd»¨ì–ž™u>èö)Zé£qLá͸–(Ñ¥a)씦–?”b3Õs +Ï,÷6<©©(%¿&Ñg `4Æß«ìÎN5®†fùg›žøfï&Ξë¿6 ì¤ì·ÍxzX-Í£‹ý˜‚-£Õ=|£ëlºæÀf/òOw×<ýb‰^xnYXw{}žü®:¿_niKÔ¿:ÑšzùÓáŽ×£êŽâui탠œ³c"#Z3nçö¯±»g`ÿ½I¦y'ê~`p?zúõï=¼ÁC7“½ï¦`ì˜Ú˜ªíõΪ2®Ã¶®L´f†•ئ(‹ Œâ³£MI_ôTßý‡ûö§°W®ãWž‡¿ùŠ]õðÓRñ/ÔÒ'_MBsN[9 [rLþFJî^ Gjn`R~d×=üç,6û—Í©öWkâ†;znÉŸ&aéM¿¤üþÞ¬øÈÁæ;»g/«Âjj}|‰ƒÝ5òÈ[JbEHŠJÌ Þ¸¾rô¶ÝêmËüŽUúü3+¯í‰ÙrMM.9e`·v]Õ²SÎËÈI'—»Š.Ç´æð" 쟦&êcúÄ-Ï×ÅÕwóÕwÖÇŠïF¤ /· ˆÜ]=¥åÀÀ%G丒ø"<ëX©Û×BòbhÉ–™wl&·EÕØR iÖl. þ9R‰k¨õ®†•󣌘}`§ß¶aoÆÌY¤U5u¶Ý JéU+= ×goàWßÿb éé §¨áOï òÕæ$»Õ3I­‘àrO9ñ¹¡YNsp +ñ6*ƒ§E”زMÀ&B…Ð2ÖaHJÜ@íY)°; +hjðÁ2¶vWïn¾§Ö]]ŸE–|XLDÔøŠ©ödŸþÖ;ŽÌвk¯Ovd²ð+nÄT„šNLáïÍéwO,uAÊ‚ +R–—õ³Š‘z^ÃM¿ï)xvhb`—ù¼à „®|üë9çÉßçÀäOmbŸ{óç@Åzö»SzvÎ¥E|9¼äùIT~òŸž#Ú5â[­]Å—æÐÉ?°Ënþ³»êÖ§žÞâËû\}@Ik)Lºò%«1åÖ¡‘€ù×[tl'@ý³5·VÅ¥¢š¶·œ¼îˆ–Š˜§_1ðJ®|p°{‡AÛzBMPŠÊ ÌÀ^{G믯Ž7ÞñIñ¹„’gß³o¹tSðG^vç{7•°oF—}\!ÂŽhH@ ÍiIM›ó¸"ßxû §è²–õî÷Ø"èµg¦á”žTQ‹~žÇ•ü,e~…ȼÿO¾âš§¯í¾ öÑ—¤¼Kÿ=ørÿêëŽwç?™B¾úÁ7Ñú\7X{£òüÛåΦ×GþÐDlÝ”ÁÞzçˆA ³ca‘C:Ø0M‘2Ë.¬Í ‹ã:>¦¤5oN!ÞØ„UçL̲_¤˜wß.  ~r÷#_@ ~‘ã +µr*/Úyxû+ïoŒ6§‡§:ÞF:ž[U—¼½-÷÷æéõq)>ï(Ñ'{²á¾[”îh±åí¿lèÊ}uÇ»ðdÛKÏ@ýµØ°c°ŒÈè厲íuXÖžUt¤m)PÙ»:Zû®‰÷Ë ¥Áyje`šÝ`鮺4ƒxùå4ìå׋„·¿èÙŧm¢š @<{m釽nÉ8±ÒÙüÈÚY÷húò„…•wi}¨) ˜××Zaë!dþiÿ¶«ç’­½åW}‚rÄ;ïäÙ¶W·ka ý‹¤*—–Z„eüg“'ùk•Ó½k¤C7f ¹&Qù…5@î™ñ­ûÁ!†&…”LpDÝà «º(jvýbÑ£¯1÷…¦Ÿ]îoºé†¼ ©8”Mâ›Cæí/3yÇ+\áž…M,`Ë´üÊK¢ÚÖ¡–‡Ûz&烻kâÐÆ"Çõ¤†°‚\‘ë7¤¸¼à¥j]Îh\ä·>6ˆP»¦ž1ï44y™ýÝhóëÏç0y¿8zªon«!€?×­ÍQJZÞ>ýºšyïÈH@~tÑ)5˜HÐ]9¬Ô?QóÈ5RuQ#¬»ˆ)Iýi°åÝ*Bá/óÈœ“J\ñi;¿õÏE|éÏ@:9)¨}ù59÷ÑçfaÍM³ôµøîçð´k_‹jŸ}¯ ½;él¾œƒ¥ç³ÒšWG&hßÄ¥ìè5@Ü­ÚÖà ‚²¶W«HR8qfoà°eds@ÖþÐ=Ш¼O×âjü3-ÉëM/7çÛ“cKØÒí%Ì5ŽÌ!üæC¥ê;áÉsô¦‡fQÝ Ÿ¸ò~d¡àPNX‹ÌOÔqúàâ÷-t¬ož\]¢¶Eµ¨ò}+ùÑËÚéÄȺ0f$ÔE÷úq•~®"°@(ñM¢ßø¦!I;Zbó‘‰Ï‹kY˜à"½Á?ßKÚ˜¶{ÆÉïV†aOæIç¦Ð?{Űäà<½:®¢6E›Œ™¨¸YÀßÒSða ¶) G¬ŠAc:Bö™>4ؕ۷Ó0»VuKÏDíiÉ-:vÅ¥iTî*Zé)ÏHÃõ¸™haà3ˆ Û88iKC¨Ú”¡³bztqDÍöδ½(0Å»&,¢À•'öH®0éq+ò×&gðÃ&ò=;t¦_MlÛTÓ[7扅A9±âýzçB̤ìÙ9œ.‘ô£S8ôÑΦÙ˜Äm+—á“’ò‰~‡2j¢Nú5gå%Ç$«ÎØ ¹¥ç5]R3*Y”ö޵Þ]›ÅfØÆIËm×<ü +÷Ho£{˜œ¶>…MwôW_´‰JÏ®µ?Ù7Ò;¶„ß<$ym–q¼Âë7vÕ^–0jþxsçü§Ø¬ç?¸¡M‚†Ë +\ÅïRdéYJþÓ/*îŸû$÷ê©Ojüñ)·)õ‹¼g—?…¼½õ©«˜ÇÞºëãu×­Ý…ç¥øä‚š«ŸOtÜû*2ß–¶:‡ÌŸ!ä\´ŠªŸíÐ==‘ËwTØâÍñêë +JòO+ý5÷C2R•SùÈ5ÑVì7¥¬t7$­ÀžoƒØ˜jy£båœímzò™OLÎ3÷ ó-½ ÌÐ4$EIÏ8''½üiu´àÚá2øÝ¶òÎ;R0h}ò¶ž…¶Ž`ÊÂJtÀ@àC;¶éà +zlÃ5}\¡‚‹ð|€aþXŸåìh(ÈÃhôM 7gÐ逖ÍXG¾òÏb³âK\šS0N?#£•½8²³;7g o¢:€ël,Òö2©Å¿Ø–¼e µïY¹œÕ x*à#MC³˜ÂñÆ»æÎÌ Ùæç!9*Û+#LRRÊV§á¯ömÄG/`÷‹˜2·’\€¤Eä#ÈQ¹»&bË_ëÜØ\ut‰X¿o!v„4Xð¾Å¯Õu6¤nNµ<×±ÒÎlŒ×ÜŠ«€ï7âª6f ¯z³!mzz`%€BrdÅÊä©­·õÞæ 4-ªÄVïê¸÷6ïßÜá°žÕ`+mtÒ{;õ—“ÁÿÛË|t³¹Ç+,Ú‘›Éü°Êü—;Óájþr±yÿñpºu„úµ1Ðï`ÓÍÕ!ð}Ÿ¸ýÉÆTÛ³c¡Õ:A)ؘ¡Ôî, è¡yV£÷Î9TÅÑWþ›³¿üܦ‘â$ç˜ú0O=ÃèWQ5é=1ñ NY»ŠNøù§ƒ ™q¥mÛÀal[yBÛ4ò­EŒL‰xÀ¼ôŒïÙEâC‡h¡¢"ºŽœ-€96Õð%·òbhŽZ¾:…Ï[êxnd×þáj´!ÆfzGÛŸùEgÖ§(•aU7 à³Ê-E{²c°ìÂJñ¹õÉÆû1-¡:²DyÆ¡Oƒ4´rÇ×äØ<¯¸ãùÊ øÞú425q¶j×ÈÂîY¼ErUXÍ!Äu|ZXNmÚ3šÍÓœ2õ(9UÛ‡x잤–XÄ”ÜEôºßvißqWLJ>uõ£ÓÜÝÈgV!ø†šÑveYsÊÄo¸4I®¼È(|òÕLGÖO‰usN Ó}2J•_Á…­*ºÉêaLJ/4û'5£ú~¢æšw¦ù¡CRÍ=‘¨i zUëÖ™ºQ³Tq&(Ç6D•­Ékâª?ME¿H )_µ¦~5Ïø~¥¿é¾}šRÞV˜üý£s?}"ª}fk–aï,ºdådü*G<üŠZðç?ú@¯O¨X­W—èéMo~ʬ||e[ƒÂÿí¡Óý“5wVDE§5ÌÌ:ën|jVÞ×RÀ9wNP îþÑBA½7‘ ‡zRS`¾íõ8âå÷ìâ›_ +oþÃÕ]qgŽYþ°åÕÅ/ÈùOwM4h\ÅîðI ou¼ì3£ ŸÑ +oücŸò‹w¬æ!±ìîÏJváó¿=üá«üÁ÷.*qÇ/ ©`ïÌýµWgñÙ'¼RT.ªüÕéÜ»ç>óH@åÛòÖW~IÕÕÀdÍ­õñ²«ƒ-·¿ä—^þRË~ógÌŒ«CÝÿ™uïGcgcê ‡ùÑμ·rX»&2,¦G”m©š“þ·A¡½÷иøÚg·Áy÷®„Uü{WŸêØÓ«þoH¨ø_€5tl…Õ¬O—^ÝÒaZ;ÞÝœÆÝÞ˜f­OB^æà™q-¦l߀,øÛŠ« *Ñ9a5³Í¯`49Æp¯#*N{T hÄE ïAíÝ—å´âß$Yߺûšät°¡·ñ–k¨éþ¾–Òth¢€­TÄ{²c¢cÖ©•+3¤‚uŸ²¡íëZ‘ +A~MŸ`[/`Äø’m9*ÿÀˆ¯‹iá¹Ûjtá¶–‹vlëÝX¢”œn~õõTûÛoÕ„´=WwõŠ_ÅF{&‘©Û:RcL«üà "?8©¸m+¹Ý/‡ç,÷Ô\H!Eq=®Æ: +zQ±¡Q5±¯'´$úÎ|Ó²c A"€Fõ, 2âV6#´DG/Œä‚%{æY*li|™ õ/Ñš—ÇÏÌ÷}S캰r +Ñ7cs–˜çƾ0éס¶¬ï%Èœ3+#í/€÷=âÚ#Àßj¼3¤r÷$áON*ók Ï"«Ñ'§×î,³IÇv^ç®™j¹€fhó+Y-µe×BGzðùkJJÕ¦ŠV³kIÔûÁn¬TR=P·)¥–m.K½“ØLã(êù<¯å²‚S=$EçYºk¯-ßÑÐKþ\î†=uó\Œ"ó(·À0ÊÍwM‘r÷TÌ{'“±!Çä­JY› ¸Ò ‚ÖÒ°ÑA=|‰}¨õQpºõÙ{â®»ºÒW{Ñ+i{"%œèÈþIϪ¹à_¤Ô˺‘/„ ì_TüÊWá%t¹}¨ùš½¿õŽ{´ýÙª—µ2‚Í ©É 1#¥um‘’£kß»Y¼Ä™óm<uªî–ðŸüb]F,±L²Kd|èÃibÕõ°]ãé®úÝÓ[þ‡‘ùîG=+÷SgÍ}GoýÃÍyL¹G.Dô! +ïn}ó£*»[›?ލ0%A¶Ì;בµp̶ƒÇ1MBs!¾­N¾q6¦!`ÿ»Áîý·‡€ý· Q äÜ7ŽÞâ‹¶Þʦ1LaÉÓ›_4¤Þ>5;?npÇ$\p±ù£'û¬ +üíž…†Š,óhîyZµy•PÑ›±9¸H*ÖþqBOÉ(å¨Ù57s„ +Û,¥r_~VÉ­¿»«§Áµî6ç¡)¡EtîÆ¡tC%$u=]ÃÀˆK1Ä3JÀŽÙ©nïÂ0g}ŽT¼Ì+riýíÀlト¬#}užQ;N«ù³§=óG[è¡oñÚ5Ø|Ë3Rv}w œ30Ыrf³s–\6p©[Ël\XG¬ é±e›jdŽ{²õqHKß5 ËC:T±G†LsË0ÙR~õ½ \öé= µiKN­ßRRêã&*àbJÄ̧¯ÌÑê5ÍIû6&ùÈÃy8‚£Dï=¹1¨"”l. +7¤ÔòMdF<õJÈùy!lxnTýᬼ±6ÙøPÃ/ó+ˆ;€>ÞÖ3‰Ü¡DÍUŸéYà´nÈY M£Å'£ÖÕTð®‰y¿Âfm[¸4Ÿ‚Š,‹zb;±2läQWU”Ú€[˜ïH‹iÐÅ1=—hìß[B‡•<Ô†Œ^ã2×¥¤B÷,þݲ˜”±2M+„ —”\ªïE>õÉz(¾Å¦_ÎXˆZç™Â¤¯Íass²gaSvýVºÔHlKœõ‰h‰õ»V% g#­³ì*ï"­*¢§·ôt¨žU}nÈKELEHŽ)Žêˆu¾Ü'Ã:&‰ï|*&(dð·]㉺z~©ù8QÛw•?^îì´Íöa­RA‹A‚J^hºá™BA?&öÀy™œ}+´,®lÏŒ*¥a%¾Ñ;ݶ‹û᳌ŽWZ´ä/7g( +ä¸Õ‰º;jfîÏsè7'æÐ™§cÀz±´® 7¬/òPkr"ä’ ’Ù˜gÔ­Msè$ÇüÙú<©Ì6E/Z£–xçè ø2ð¿€&÷Íá‹BrzcZ¢æNOÍéXÓ‰NyÙ éoµL‹iÖÉ^ðê§ÉÒÕ‘¼)ÁäE•¤Æˆ†Ñ¾¡{Ó¬‘S‹£Ù¸h]ÉëUå_$TF4TÈŽ…C?XéÞup…±Ä'¯Hºãäu‡TpÌÊ"…–é(–Þ02P[V5¨gÂeôês6 ²(¨ç“6Äò-€‚jbý¦‚P½© £VÑhÄÖ;¶EëZzkÜ*Ù]á÷ŬhPOl´Œ^[%„4W¢çª×ô—·k惷WõÞÓ5yèˆ÷¬<Ñn¢ˆYÀsLp«ÓÜß‚Õw÷¿wuKý‹ÈœµihŠc’bh¼:OÝ6ñ9a­€¾³Ü57輪þN¿œ «øh·”]§ìì¸mìƒ?rJ°oý +fÛ¦¢‡R ÄL\rÔÍkɵ‰~iÚðK5­ìÒ‹@5öŒ† Sýà¤CÖ‹·H» æQf¶k†ßhì¡gzGhe1-–Í Û¯«ûOW¦(Uë +Ú8„N²ãÞzg€ùQ’šì\þ–‘C +Ø÷.ß5‹Ió">bèâ…ô]¬À’ZbÁ£::vw…Á +™ˆ­æ \†¬r_Î$¹¤ˆe”ž½±@¯ÞµÐà[F6is‰Ý61àùû.žhËÄ€ÅÍ]½qó ì}â<±UR€ÓÖ¥-IÞ©Ön@[m*yX“„R2M®:µ*xàÏx{Ò†–l=Ð÷Ô_4Æ£¸ŽÜâ³ožZë™&×ùÑàÄÙó÷. +ò`…ÃßÔqÐ>%ðónVP?(^× y”ÔºF@ h8ä}+ øAÍêlûëuú]XMÅô dH…+õͶ%ÚïmTÓüjmºèòú\ëó¨àH@kEx2 X‘åþ© ŽK 9 ÐeEN !smŽT¾máwîÛ{ç¦Îþ!bù8ýgŸŒÚ2w +CË|†™…uÊÈ%›Z6|`°°ÏŽÛ»Ç7”€®šgT¿GL<úšš‡Y‘w¡ ]0¯LuL‰Nùôôòœ˜çXÁ€ûæ1ù›2LQÜHGD-|vÄÈÁo™¹Ô=oŸ6ææð·lüΨ»k2¶*ZØ^Nî8Ù¼‘ +_S‘«³ÄBÇ,¿MÞMÊä‚rOÚ®&nçñ¶lL‚OIiÜ2ÑÐA ã[¢4LôŽ- Ð6Ñöreªå~ذ·ŠÜ°e`bw¼ž]ŠD½€° + h™ˆ¸}@ëY`´»g UÀx3³cçvî­tÇl]#ëzFǪ +_¼©'7‡–Ù„u5¡Ô¯h{q8nP:uûö¾9Ÿ‚Ýæ˜ ä¸f-Ú1~‰TyÂÔ‹ÎÛ5ñ™qRÐZ{öÃßl©P%Con‚YE‡dž®}|öóm9³¿2âØ¶Èü:>Ù9O+³J˜ÆV–eJPÇ•þØÕ”}eSJ§íXº‡âf.yÈû‰kÂ달&×”°Þ*é¬Ñ ‘3 =M·}2xö¦‚T½¹Èhjxxç¿qe~ˆl•ö@RJÁ¦¢ë]`¯ª{X^9§Í<㙦µ¬. pí s͘­ëéÌÛ˜îÃnÉùQOÑÇpÏ#ó7uÏ÷lЮ‰ŽÜâ{Ì:¼Ö1Û}³¤Âu)µ2ºDkÝ1’›czb“_M9f)…«rxS)¢:%ÄwVQ㥨’Ú^b¡"66¢g@ýz«s–˜oØ<¦ +õñ÷ílZÜJo.á*‚z"¢uùdu/;sqP”gšé¬kú»Ãºîî ’ uŒÀ^:ë®ØÊ˜‘EôÍjÔ¼†KöᶇûŽÎ‘øJçЖ…C ,qQ~£Ù¯$”®É:Þ†5‡¬üÎ¥aXŠförUÑÇYž§ÙæøMÞ„­Ÿí” :¼òAÁš|lPÙÅÊeÖVþêœãã·œÝS[@Ìßñö(v¼]Ó+›Øl¥k^»µÌ§í:Éð¸W¿¦íf¯(Gû}KcÒ axÞµ8Ú/¬›ìÌš ¼]î«UqñwWFýÀxÜÚ7½mm;ù}~ ¶eg`ãÎî™m×€aÇ×§9éTŸ¼#gmUâ7±‰+ +V³~Œ–©¥¼uLáÞE˜X¨ æ’ñP1›p`×ݯ‰¹zƒ‘Øoâó½ +|ùº–Xzc€_Çþ°ˆ!®:fF•ïØ©˜•c@ášÃ¬-’[ãöž™¸CзmgQ} +j½m›¹ª#5ÇÝTâÁ:³7d¡Âf>kÛÝ)Þ± º¶Wm;6hèí¶LÃõcR¬rPŽ˜ìçL‘¹÷ìc°Õ)1Í<ÂÉVvRúøéîñ÷ô¬Ð83+Ô w–Êø˜§:AGæ­w~ÛÞ-y$‹”V¤àh&Ũ…áˆX0ð¦¿sIÅ æú:·õÝ]Q¾¶ÈkrHzëTÝ£ù ¼áwRÞhžM¿Š©(ýç4¥õaT7(ÞÒ O…t£ó6i7L+ƒ-ŽÕjÆGZ­sS ã-³]#…êáE”yF?cœVŽËG”Ì ®´VÌšÈ!´¯«à×ûªég0cráL¾o¨Þ7Çp°Yÿrs„‰^!q‡Hl”ôÔiz%ÕK}†Á®¢U9£Æ=ÎØPk"z>;øµUÚݡ袿P0·¬ÃôR¹’‚×dèUí_°ö¢‰Þ9àcÈ­%DÙ‹Û—X£MCo—y’Q± Dß°t#ýMe+bõÔL°EL/4²V'i~€uÕBØû1Û1†Î÷NÊ¢FÛ¿Ä'¬)¹÷¼¨Ã<%lt/0ë6´<ĆšÖ hý<¯Œ^iœéi•OÌ §DâÕP_¥^<V7)ÅR†bx)T2úˆ£¯»;¸·cƒkÊ^ª_ÏE¯ùäu€a7t´–ˆ…ŽŒZ"`dtlVÓñ±Ëó cK³*±i^6¦6‹ÄiÞÄK:iä¶mà4,8_—Uû®ùtª»«Ñ3/€øµ|̦‰‰ô.‘¶]üþDí«=W÷|ÔÁd͆µ·Ï¡ë¦è1‹âþZåøP½F<ØìT 2V”#"xª›ÀhG¦øZq?Ö"壋Äjë4:+¸$ E—‡æ·ìcË;ž>U|E$Ùu +úVyƒ>ëß!öÈ¿üüÉãUÁøŽ‹ÍŽØ9ô5C_S1Ü©ê¡g9»ˆEÕ4C+õ, YÛN&{c Så^À—–º{cÖ!ed¹«Û­ã!W–úÙ†ÅE‰ld™#é¶Áû9†"uþy7zäÖ8a*mŠ.+¢Ï¥â—ÁÕä ”Fî£~ÒTn?m(_Ù+Ê_ç—øºa˘aM?6mS +§GÚ'$2˜X²Âè·AxÔ™‡bªô­B¨hV‰fšu݃eú‘Y¨´KV5ÆP¿c•/ªK0çj³ág¡ÕÜ“U¬ï&¨=™aýètl¹oÜ«Q v±Z< ž^èèÐcÃF´%Ëä¥:éšwý•6!KKÆM?¬+!®/!ýú:ñåÍ[%ÿ¸>ýÓ¼' ßQA£IS]ÝRÿ$4 À—î,#+bl­}‘Q?Û3š?̘ÓO™NdŽ=“ŽH¥}ƒùFI?Ô+— Øgúåcc-œž‚莰yœžòÍöÖ#žæT][Ë}’}—ÐTʺ´éYXÙQ¸kë{ sÎ¥éYÖÜ@ɤ@2ÅÊ3L(ºm2‰À¥Z¦úšÇ¹ÉÔ¦¦Åâ#}oQ/”üûS˜ç™¤ùû™® f‰o–Zn%»'y`ýÌ,iv±43ŠXîÊ™ïã¼”Œ–Ž÷É*úû­ÍtŒä&ĸÆ#dv Š8ñ³ºüÅ’ÄÅìôöSåyÈ3 E›4ÿ™¬o(߸(á¹4}¼M€Û6tÄÏ<:×.Âô bÊÂø"¶—¯ªæRç +øÔÙB>Yþ‹ÓÞuÌ«ª(Ìc|–_HûìÏ+)Ÿ\½øê‹ŠÜ”vú•!:?U-é­(h«-¸Ä¥ûñ5nµÆ(—ææh££S•=Sy}ò!{î /~ÁÂõfà ”W%í7Ú+É·k +°7в!çªò+ÏàÀu¿ ˜I“¼®êYÑ8Q?;=¶÷O….ÙYáu¯ Æ÷Ülî¶§_uª‚–ÁI¡_hÑNöÏMLc%ý’Êavï«Ù¡ÉæÙq)F,ìÏœŠÞ*Æ;scŒìy'9îPï­tKÖõ]õüBŸdÒÀ꯱øÝëõh’ñaKÛÄ8DrÚ2üsQ6æË´TÈ7…¹œE•’¯¯=…}òÛ¥‚OŸ>©ÿª<ù-Åùs®·'×.íG;•K2õüÔ¬y [l†Ó»}ÅTá^ ‰³•‰Ä[n ÚçÿÀCç/:.¢ÛÆÏ47ŽüQUÑûkuùðEå_]½_ýÉÅKŸ¤½%ªÎ÷‹lÍöÅqPß?à\à·Ùæ:a†y orf‰ÇòÔ"Y«Ip²çnC»òL~i×7¥Ã?TÕL}W\:üÅý§°ü~¹à“ûÏÑÿ¸÷‚øÉù›õŸ|sâÎ'ÿ?Gý–躾ãÎÚ{õš5Ýíè„1ŽíØÝ] ÒÒbww ˆ€ˆ vcb‚­3«ö~}Þßÿãû¸ò8xîûºÎ€›ëôóEü”Ÿ[s—Ží}%méˆ_R×ÒVõÕÌqax°u8¯µV—^Q6Ìâj=µɂе¸ºÚ¹ŒJžüKs8¨œ3êKžÈÎ(ýÙùEÀwŸ^;%€næ%S™pž×X«‚² ¯kZj·ÆË©Æöá-£hF5¦éµ÷LZ;g0í]ÛìŽÎufcíDb`4¸†« +`²u^E¹e?¤Q)ʤ?JŠ!üäþ.ò÷´°lç.î@J7KðVÈ?’Ã~Yè#Æ«dʾÁþ fw¯‘XÓ1¢•š>Cý/`Å"g2oΊ”Ü÷ú ùÎÃ#¼ú›i îŸ>zBœ>‰szü"ÅÉ?’wãÉ{¸“w í{*EåÑÛgfÇÄ«¦¶®Å‰*¢AÖS-[{W˜üº¥¤b²úUhçGOè‘áÔŸs@Â_3{þÁ»áâuò eÞˆ©¸ñÄæäìEwÊÿRŒQ<ã3„îÂæÁikS‚eH:9ÄMÐ õ:º¦È•-+ùœº™¨ºÊ9» éQZòŽV>ˆŠdþËícÎǂ޹¤:}òÅ9Ýy‘çôÃÎNÎÎñ7 HÑãˆø²_]>ÝLHd<hé+Ú´4·Ï7ôøs²:”^*{$Ãæ®ÞÙŠöêÒÚ…$CáB¦H\™ýg]ãt> ö/ú5)‰u+.q/):Ãy°¡¢`SUO_Õ•GGÙ­½J¨ y1^½Šdϸ¦Â„7#“9ßE'qÿå^âôÒ3Çéç{>Nï\3œ#yN®>X§ÇΩNñ±¤,¡‡°U6ˆÛ0º¾êT•hˆ9(T³j;' Ùõ[‰„²Mo wƵ¤“Ùø/¿œSx û»„”ÚEóœ^zAî×zô6ÛÉ݇èôÁ—~ãƒéßEu÷»[YšÁüв½rUÕÓ>¥ìªµ€»ús9íSI`úܳ¬éVR}32³ã{·P®ÓÝW`§7ï¡NÁQ‚îAl§çn§7^§€¸Ú¾1õß} *ýÁ/²ü7<Ы=u Kš¶Æå‰Ú2ÃXWymiË'`į´Ê‚cX\’óûò|™ÚúK|ZË÷ïÜ +<¼‹¿‹ˆü;,¥îÆ­ÉN?ßôszþ6ßé]ÅéÞ Ð ¿/ô[Tš,BÖgn[VJ5+ã-ÓʦÒq?®²^— èØ‚ðzìLÙ†œb~"Y^BQÊ»Ù?„DWþ—Òú½ïÊOc>zAœ\<Šœ &ºïÅùÅÍõïæ÷Q)•ßÇgWÜÉBv<Ë%Ÿ¢©Š7|®þK[•6]Þ!ÅmjêyVUI⤸$L'mÂw·ô€Û:ÅÍ=:dY½.I¿ˆHo¼é]þ£{ 톛/¨ègﲜ¼Ci7¼£+œž¸#å]癯û1·XéÂ)פ)D kê¶Æéar¤~ûÙ$­È‰ä”ºnSAyß"”Ò½—‹à/{bT÷Á(ù­Äœ¦Ÿ¼Îvzò&ÏéÝ'¬Ó ×"§‡ÏS|ƒˆ7Rë¿ÏÊiþµš-ö×ö¶æ­ÈëjTÞBóìÅôŽ¡Ë*GüÊZ–³Y­¶L\ÅrhIþ1ÖñŠé{\L‘¾Š+è|ü.÷“oþFLFÍQ¹-÷ã‹]0l‰· n"¶¯_G1ËÛ°«šräÞt•àp¡¡Ï¬le‰%šºÖ¡Y^yÇ$ˆW! äpܸåCŸÌA׳„«÷¡:^&$¡~#àŸCop$áK*c$¸¦Jœ1Ø.ƒ)û»ÀV|dbÁÍô‚½ JÚšŒž°.g$zhªÚ¹L,–ˆHý=ƒ9=#yímÊÜÊ*iÓûOiv!Q»ÞÓ˜=~µu‘Í!­]}1C¨N(eYÇz¹ûúzöÉ”€¾¥%e¬¨Jq3ªÞN½b¤o\1\'‘öÚÚÃ*Ë;=(¥œ¢~—Óv?$®üû¸¬Æ_ü"É?ÄRÿ™Yó]DNÃQ Æ[©(á]4SïÕÕ5E×ÊÇ-¢ô¾Ûœ 6ÕLÈÁTwNÛÂê­KhoooÎÑËÚ­ Z¹1€À×y³4“Ën?|rãÙ›L'Ÿ`Â/±ä_sÀ5Ïñ¸×j®4h¼£Ö:8×MŒ­Nuv홹˜í l쮞†:šk-¶ë6,ÃZå@›XÒOî‚¶tI³šú¦°-ÆTv½! àjFaóÓ¨¬R×4hÕg<¯&¸MÜCÑŒ·3'Eô„™–_%÷Ë›qFÎä+gv¤7-o%›% 0°µP/nGi„mE¢Æú Á¦Áäþfynw“¼@Ô)Cu # ½Ýà…¡vô–¤ g×6×O64èKÑË"fÊš˜]t¤¯¬Ø7”FKó ¢êܱv~œ¼…©’Éš„CÃèÞŽ®Dqk]´z¨.W7Ò†ÓK:ð‹ªÞš C#wSWÏÚ1Ô²¦j*Ïf««zrÎ|OžËl;øíÖ(3uQÌŠ_’UBgÇ)¦áÒÌU=cn¼…g”Vƒ†›1ÎÂ:ÌKI3ñÝxCÆ„¤ c‘ 2§$ŒhëXKå¾v`üÈPSzj$gN ‚7GKB–¤„ðå1|ÝØ«XÓ÷JçõD³¤<['d¨òD½Ù= Cñõåb?CèÊ-Uú2ØC˜ì¦7¥!Õ¢äæ¶ÞØþžŽÔ9¥°qß88¾£©«Üeœ™/gZ†¯3ö'°É“= šö‚·ê.‚¯JØOö¨I­@­6õê1}f<§²× §Ü‚ƒ±·XîËú†ˆJ(fÏH{yk#‚œC³ðPË‚œ›ËÈ+}Ð/Úª˜g†æøGÆA¨û¤¼²¨‰ýÄÆÝŸ-ã¬M·vÍWë‡y‰c=¬0y;+p|@mRÔ!¬³µ¥¶YÖ±TÝ|n­í¹\)œMQA³täÙ,³äÐH/X–1Ò­-fUOÝ¢º­Â>]ß´oj¬ß1Ôñv•ä#¹>ÁÎ_Ssò–UõÄ%mOϲ¾o›¬`Ú öê'{[Ë…nMP²×GŠƒW„ÈOÇ&éëJ³âàú³v¶ªâÍŠ‰ÖQd膆]4§n¢œ^<ÔÂÔi„ê‘òt­¢“VçX4-ÌEm%vE]ÚŸ­«?_©:02 +w´ÔÔ“…2ÁÅZ›åt¥Ý蘯i³jÊpšÁÊ<Í`iæ4À‡–±nÁ„¬+µAFäÒª~‰²tH8Ê”Š…D•´dg%Ûækêf*k¬bxàd}Ê“Éö¼ð1ì³Rý|²‘½.©£lÊx+Cø/––\ç™¶¢wÒòëh=ÞWݲ9û²Ð’öj¦%óµu¨Ðël޽\«é?œæÏ¹ÔÿØj†¾.V4í)KòÖD¹˃©¯­bðçË):äÛ óç’ òp²¼Â:ÆÉ·éx˜ãù¦áãå։㥺¾ƒé +Á¶† [’¢æ¤ÌìmKKÿº±µuU[‰_Ÿ(GoŽ ÇfùbšC;7³§Z +èÂL+¸ÚlšXë+p9ÒìÏh&Ƽ’1ÓßÙåìÌ] 9öPAK]¢F¯‰¡‹ƒÅ~J~úÓ#E%þPUFÚ–ÒR–Ú1öQJÚ™Žš{ª'glCýµu‰Oê >}¯-Íüü÷tEÙ×I +hG’ó~½?åÉž¬ÀãPEˆsèøÈcC%Ã6ƆnÊpÿ;'äÐ2@ÇzRªMVà³&Ì÷ØöhM‚Y—RâÎ-ô© uh8…{JlÜšé³Ð…rÛᾨèÙó}H?K øÕº”»8P·+'Å숋}šÓ®´e?]î,p]³.¡Æ«Ënn #¢'øØ•>j®”¿ÖòÙ) =QãŽÆ‰±Ö¤çDUÚ½ARÌo +FÎ×éªòS·;†‹=10Àv5õPAŠ9Ò² +&Ðñ²²T—ë9"+½ðØ= <ôTS}¤†D쌦\M“!Çz:ÕWñíÚêò=MÞ:BŒ±Éòýµˆ8Çt)íÀRN³Êðá[lì‘–^´%A}™mÎsžnÊp¶!BãÅ_NµÔ,àoH›Œ¿7NM>4përbò‰‰‰¼œecTÔ¬=9>êX]ó÷,½øï•Òr`³÷'ª™Ç“õõvC)Ρ¡‚m +tØ®c+‰±kI)û*|œM _#>_ÎpÉ'&*øÄ€MwL O¯³ •%Qv5%õÛ\UíÕbEu¸)%ÄéÊ9@ßâd„» cW`c×…(ßM .lOIϵkX c 1é¯VñW3«èl‚¸Ò‘önk ÷ójWÖ»µ,×ÿ¬ó+¿.p8¶1|¼u¨$ùXÇ@›ðY—³%9ÓXð® +“v¨#e\Ï\ùºP.8P’Rúòg{²ÃZ"ürF ¸š¦¡÷Ga{£ß6|G' ž/Ô´þe­-VÖΔóÍ|²]GÎ?Ÿb¢&Ì®çàmjľP]w´XÛº©ºž…ø¼>ñØB?í\ÏÑQ—Äý½%¨;”#öd%a3ÝÏúâ ßÆ89ŸNÆ0û(+ýhœ™µÜ‹r_탾_ÂܶDX¿Íazât+Ês¾óùXQû¦¯¢}°ø`bª¹g®ˆº9]›òto˜lWñ‹wäØà­!°Û–0ÿãñxqØ™æ:wºÜW0ß]¬ÒëÌÀ†Ÿ9Å[#0_k_ÒãÁŒ7{r¨¿]EN:ÖÑrj\ÜŽ´Øß>Î4c“âì(O@/¾65¤¾žnÍy¹ØSä:Ó ùЉ ½³-Ä…Hðá35)Çha¿ B~•QÂnNÕ¤=5V'ÝYA†iÛ!!}ؘ§*Ì®`díJ0a›ƒ9n³M ΆŠè–šøÛs͹¯ÌÜ qIê:ðšwGÑaöqBœM„òÛ*öÙ£C%¥IOº±¿Yû NÖÔ\è˜Åά“ ‘:Ck ¾FbÊ™Ž’¤¢ä\Ïp8ЖöUåÄ?'ùÔo³lÌ‘™ÿßŒÞ Rü™‘œ³:õXê†~°‰9P»‚]x¦Á'ŽB}·…E^³-/­½Eî@¿dO²‹G+2Ÿ,"ýÏÍlä×ÉrÖÑ89Ù®DGØÇ ¡6q®ß® ±?q}汜´(‡­‰Ð~Û£%QGF6Ü¡£lˆ +—{óœºò^ÍwƒÞ\ͳ‰[rxж ì½3Zxf ä\è©ùNÒaÿ]â0ÎŒDðr¾ëî6õj¦ªÆ®bäïIq¶!¸Ï®âµ/G‡^˜¸Å§:t­¯ÐÿTKHÖ,cs¨8âH‰KXíÎöÚ. +ÛèyŒ@. „‚MQAÀbw¾Ë¹IÀ=1r±§fB†Ã€ŠÚQ@¬ƒïC5!ñÄLÍ=6Ò@ë"Øç‹9 +à=æ·…2¾ÃÀÆl £‚ç;²]Æà¡GæÒ²ó¹òÒ¯ lüåz¹XÝt<ߦúºÔ,ÿÿ¬‚ê¯\Ö–â¿6TøiW xŒu2Í£nÈÌPàbµ”¢S- |¢£ endstream endobj 63 0 obj <>stream +å^g[Eà°}Ìg²-ã±¥9ÿÅj?Úg_Êδ £W»‘v'g[B‰Ú‘ë*‚¹ocç:áôÕ G«½¸Às·5ˆ >R‘’޵äô=)>ù›—þÍ ¹Ðcb6¤øÐ¥^¸û…Ž ; ål‹€>(p5VEß&}þ^Ãÿíìú|¼ ÒõÃ|Y©wÏÕtðŸ“Tз)Rö‰¾8b[r[hN}¸PŸ~c4ßOžkC¾ßÃ71Á›ââ¨m &d[„ö]l¿™k-ôÚ3’;0~]ð/? "c~Óò2ŸÍ6f¾Ù}tŒãâw”ø¨±šl—~\ôËëœw1>rª1ýÑTCô-}iô-KEÊ“íÈçó |Ü" #¤ô¨_ÌõÎ—Ó ä|胈ý«‚øû„ á÷~là/뽞v%)}àÔíá’ð-1!mWFÇ(ˆRVÀïrÖ§;¦ +ÿÛËí)OôĤ3o¹‡˜¼ÑSõßùRÖå,¨CGm˾¦¹¯öf¿œk½Ø‘–[ûñ‘Ë9/7r^ï |0UÆßc†Ý´òGkþgc]ÒÝ !*àx‚]°.ø@ŒôY€yXûòßïŠó>}³POÄ(\„ûp“oÛÔŒ3 ëÐ3@V!Ü{¦1þÅŽìq0\è~¬F…\ÍÐáú¦ÔwSy!Îp çFB2Pk9'ú’„ a†‹µ+ùù®$×ãÒ‚Ë6¶‚ý+ +ý_œè(È–JKÿYàÊ’èa€“EvÅ!¥þ÷R¼ÿ¤®Îôùï"—öǺ#†úXQ„€›~Ô͵^0pM&bªìºØöÿ6Ï$ý½ZZu¤"§ŸëÈ™—N·$H +Ù †+2ï/uÁÜl\ð¾´$Ø:ç2Ýwwª>þîÚ øC‰‹¼Ò +0+{­¿øÓœ–p ÀGìIá^ûÒüGJHè†ì1QžxG]šýìPÅ/÷Â>­ ¼¶DŸEqÐöÄ}­ úÁ:€2Ótc"~]éB*XYûrj¢uå£/O½§$‡üºÑ]à¼Ðƒ÷dç>GE¿¿¡d滞s@‡rDàLSÒ]Eø­qNÄ-cuÞ›½Q.èÊRÉÝ¥&((IŽQøp˜©båÇyá7%4ÿÌ5)€}÷ß’¢C 5‰wöF0Á^'툋ÜL•q–ÚÓݷžËÝùÎóm>—†æÖ]isÅtÁß\ƒXì€]êð)§¨ð­ð§Ùö<×n\ÄítØÝ?g*×9Vãˆ/ãU~†I·7ûâ;Æ®¿¯JŠ£§»ü[]æuna@vèzÔMJœëÏÔ×ŘП¶ú!§P2—‡à!¨—?ÏwA‚ÿ´û¹±$u[œõ~¡5ú‘¦ôËÍA¢×O¦Ú¸‡695EÎÏ~b¨‡z\ªùçZf¡]ñ·vÅ=¡yý¬âÇßVðâïmˆ¡vUI‚¥!ãí¹‰Vtnôß0ÜoÀÿ1(ðPQ>ÕœøXÊŠ~t¬'g¯Š¡_æÛRŸÙÄP¯m!ÚKT`ŸÀÄmŽbczðñ·+²|ÿ ôrò¡ª$g¹/÷Ýr/øÝ°ÏrdÈáx1€ß¸ŒÝ1Tˆ¾2ñÁ\Gš×ÿ­±X_çip€Ÿ?]Ï)œiÌym¬J}~5Ç&ž|fìùŒñ’î\Lñ˜-•V*!aÛ¢´W¶¡¿ÍA°¯c u¢EFþw•C×´‚£9`ßß§ûPñ¬µèÏg«UäÌuaÖ+miØï­E~ÓU'¾?Ÿaâ ߦÛÁÁçüÂÀ*<ƒ|>ÑSr~Ï<šÀǬ d¾4Õ…üÚ…~÷]?Æ÷·EaIx3%ù¦‚ z»!¢F¯ +ñ‹=p7mUÎ+MyÆ#­ ãî\}á›M %RW_ðÎX•þøPIJÚ’"lBü—ãqLP›»¸À»¦²íÉŸ3FKÞ)˜o¿g©þUÏúeº<åð?áÓHÿ>BØÏ“µ0_ fAÖ>ˆûlsæ‹azäÍZ¨ß¯ `ÏÄ;ó=ˆOÒ²ÌW +~æËÕAtÀts¾³¦4áþlsÚ c]ÖóazÌoðLUXo™ ëÝ0;üžµ·Ð{OЉ9!ÄŽ22w¤¸Ä}$t}0ï- åBV‰a#´´WÖnTì)७ý…žk½ywD…ûbè'miÌ­bÀo×ý¶Ú ö\nËy)ÄF<@øÝš®Œyèþiyg:fárö‹¹üÂ.ib-·b¤Åû²"Ÿ™¦ôW³M™.ýp Çé©ßf*Ë÷ÇÉib¬ÿz?%rwíoÉsÝÈvYéÎqžk¹íÊY¨Ý1A±©ê¼Ü{­3ió­H/7ãöL]ódCîûÉÆÌWææìwJzÑá9c¥ì²Ô™ï¶Ò Xn/ü°Ô–ñÜ&¼žŸ–í3YŸþt¹ â}ª+%j«r_ªy ÷ÿ ô¸Ï–¼1X¸x‹Ùn°[;&ôî–Ÿ¸« $‹h‰÷*2=¿ë†þ  FÝ4ø°Ð \—Ñ2kÑá9Y®ÿº43 55{¶³À{œõDû«ã§ÞÓóîhñY\Ïí.rôû= £Ð6ÊHÓ—&?ÓÏùÝXuSÃøyWšöÏ +‹°«$ÄëXÐå®B÷åö÷Õö|¯­¾ÂógÓß.v¦>þ¿M6óØHÍwå;ï¡"/§ê›.'kkþY”Yp©€Ø’#üVGà~Ç.õëbÃЉÞ‘cB•ˆð#5:áP…Ž< üà˜n¼ß¯–VÏ)àÔŒìëº=5Ðóí„ØÿeÊ0ËÝyn¦Ú´w×x¸.§%öóó몾{cü¢U1îËd[Öã!jØÏƒÄué÷—:PŸ­"zŒìú{XÜä{gÆ2Ò!PÛë}%þ“M‰¯4_îÎ4¤Ü›mÊz8ßv^cC ùïWú‹ƒ¬ýp÷…¦ÌG‹õ9Ï·{žû2\„¥-㕌üób3Ä÷p”“c¬É¼7Õœ÷ZÊI{Z ½=Xúx¾ â³*!„ y©OFXiÏ6†‰q¦¦÷&DÐ÷íH¿‹ˆ¡?Ê(á?š*2Ívq+Ñ·jA·tØ 1ö¥XÀ{ üfš3^.´¥=Ùæ½=T¢Ã,ˆåYþß›k B€çœnÉr]ïôOwÖKSyìýÈgàÚAwúÁ[±A7GHÑwú‰‘ËM ·;9.v)ØÛÚï5ÛñÖPõÐvi5@Ìàåxÿ.¦E¼<ÕP`5)ëh îE…ìIÐ_€½J6·f¼ÒÖg=mÆ$½‘ã_ºÐö_ž +¸ÔRsŽÆ¨¹Ë]ð 3öæÞ()y[ÆO6AÝ'kò^Î6‚] •éÏÚrÞzÈ¡"¤OÕe¿Öú͉†¶‰ðóM9/gê“îÍÖÇÝÖ—ý:]Ÿpð6›2|tUá—Ÿ w7†Š£ÎŒÔl磧³>h+âÞÌw>¥ágWñŠ·eÔ”afÒ~rüs#$`¥ í¿)DyÏuB¼55 Ï&TðÍv\ȳSn¡åœÄ{b|è­å¦ì÷»B˜ÏîÌÇ&EÔÀCnVæGîø„51)ÂP‘óBW‘á6Ùš¼ÒòÞùÿ9E(üg‰…_Á‡N° &>èxÿ Àÿ8Wòl²*åÍL]êëyÞçÿXé˜U "B&Hy¼)G'ì¨*I×™,çS´Â##&rGõÚS¢BN§Èà?W+ŽŒ Ôö(2äXOÉûÏ +Ÿóu–R´7^ä¿§¬ “߯ôf;Ÿh°ËÉR²]EI82ãä:‹EIŽ¿~æÌ( œjXù€¶ŽßBz/vº®{ØÄĨµ±&£ÇoHKB:aîÓM`çM16èðõ¶Q\è|{Þ«­>˜÷ÕL]ëµ·^ïÇúé«ê«£n ¼å”äK¿dCAJQÕ¤?^(‰Ù”1R´e™wFiQ¿Ò£o‘~¡ø¯åÆÞÙìÁ„ٕܼq~êƒë9EûJ6hµ¼xÀwN¶AÞMµ½Þ‘"mÑÍôƒ ”ˆ‰*”×LÌ}µá¹3Œ_d'˜Zîó]è/çújÁÎ>rG‚ 9”q!Ã|ÄFÚ{µä¼Ôýv¾ðýMh¿=5?€O¨ö¥áûójÈy¡-ÿ©üq¥²2Lˆég¤X÷À®$&[jânÏ4DÝZnO}2[v«?õÃwa⑌=Å~ ˆˆ[jAžÏ_35mŽ \âR[æ³ùÆô«]à7ËÝE§» Ÿ”õoŠbݾGF¿½÷ÍDÍ¿43ã°àµÞ´÷£Ô€[Ý—&˜¿ÚäèÚâèÇ  ×ßOTe»3Ñ!9ÈóX‘íy4šëi(»+Á~þ×tmús‡– ]ìAy.uÃ?ïŽâSïœy¨ ¤ÙÕød NÂfº >v—DÿÚVýh²á)d%¾Xèƒøm‰Q1ëBhÌ™–˜ûõ:Ã]ÇEÚdèPsSÚ«°:€ ^ëAœLŒ+Oy$eGß™ïÌ~o¿~oeŒon…¼™îD~Þ#¤Øò\š’ŸÌÕg>]nÏ}aAúœ½o`!fÛ ]Õ¤Ô‹ëœts)ù` ¹+Êù¸Ðþf¡%Ée_AˆÙWѳ&ÊŠ^ˆ é·Ö{°qN—–]˜8Ø}9:z².ÚÅܘá;Û]ä¾$BFœXxl«´ =Ýs·ëð™,³ˆÿ±r8ÿYe3ÿX¤ z\ælOòsKkä½-"T]“`lIó°›ÈÐc |>‰CÿµÀ _Í’!ÛRú³_›ðÉ›CÅ["B𾂚xjäÀ÷F)±9qO`œîuª&Äké¹ûcììu15âT+Àn “¢æš _-u9¯‚]LõQ÷Í‘„ØÐÓ >z¡öÑÚ‰ðºÐò1~o¼+ŇM6f¼^†y­ €]mÒ’è} b¨Ë{¬¯Èz:ÛTða½þygæadJ i³­¹fšr^©)‡*ZúÖ0îˆ<Ùñ04¹-v ?_¸ +k¾ï½-®‚¯ ó3­C„ ë Ükª!㩵¯ðã.ÀO +RÌ™‘Y¸-ùl‹P¡Gª*ÚR-m¾ á¢+Ïx"c„ÞQs£nŸi*ˆûÚ*Êü 5VUšsÿ`„’pèÒS#-wo¼8D_•ól¢ô\[žûlk”˜°£&Än n¦æª®¸2ð0³í OýÄÐ󣆿Ëýûüu²ºâëõLO!ÒË&£gŸêkËêRÄR6@×€ü¤¬…¹vSÕÖC-LmIò߯‹2ßY…y~Àë ² B?G,öxËy©þt-ô\OÊ\ëIy=Uôd©9þ­µ¯Ào­ìiÃD_ÏÞ ÇÜV–çøžèØˆ #9Ç¡ÂE[šRž‹Èþ¿râŸjk²Þê!ŸT5Eï "ßþ6̉v½Ôc“–Û2ßÌÕý¯¶ŸMV§=^èÌw¨!ç –f8§zÞwb'»ÿº¯ ÃOl´m¸À{¹;åÍtcòý¹ÖüW+¨ÏËâ’/­¤ˆûpï›ûr|ì±’™u:ŽÙ“ÁBWrýv¥…'Úâ°#!Åܶðɾœ”x®ÇÄŸiÑi_§Èð¯s,Ì–”g¨-p•ÒSoï)Ðí1rüº¬$d©¿ÈSˆx!¤G¿ÝSb’/§iäËVÅÒ02Jĉ~´¥@eþg³´ê/+‡fSÀµÕѦZ’\wd_ÎÌØÄÙX<úã/<°ÿ»o+Õ=€§©ûcy¢G„- d;O÷f}Xtä#¨ËO»RZ‚c‚ :Ôq V!Î »?ó?Sa#÷å¨ùΔWK½ÎK].Ž fžm”š²ÜòÜ–|êð¯¤ø51áÀšÙ¶\W%+ú·•HðWsµà@EˆÙ)ù²/%FÏ4€?ìÉHÉö Z™}=Cg¦ô|SDŒµ+9ù«}0Å–¼×“5 '¸a¿õûÿ¤-M~j£çlŠ© K]h‹)>ñØÄ(phÉ™JtÔ‰›x˨ÝBØ\™é¦¯£/M\Ô‰–”úmй4±à;RLȆü~gêy 'ÄnKéÉÝ„„;×3BwGiI¶áb_ÛÄí\ÇEmÚÛÒ–ÿVBŠúåTËÈß§¤o÷°£ÄÇ-÷#C¦›`ŸÚ`ÞGÚëÏÙ뀸;T± 'fí:Or²!ædúMµÂâÿZäqÿ³Äe_Yh%Žq\úªîµ5Ɔ-Š9%‹}„hs죔™öè:÷hºâv¤å#üÝ” ½ÏÍ\üÅt%ÿ:«h©üAɽ#¡øþ¼3”åþÇ,!ûï6e®õàuÏ5ñu²‚ÿu®Œ÷mŽ9Ò¡¢6†r?®÷ä»^y„ƒ &ZÁOyµ+#ÆLÐajJìeIŒ¡1ÙSSá2Óÿâ‚›ðÙKÙ®ëý°¸3= w¬å :.Ünáãô=ÐOذ›J^ÆË'omãoiÈz5Qžô|±äèɬS=³`wŒ”¤¬N©iÈòvh8Ðu!.x½¯ÐÅRŸúBÎ}8לâüÕB]-°ÉÓýð0?ëÕÞ%û@S»%‚„­÷ç~!x±·èƒ¦*ééT{ž?àa ÝŒÄ7C¥YŸÖ䬇¾¬Ä®bæ®öÂ|å´è'#ÔÐ->ùÄÄ€žÏ°Š÷ŒÄô})ãržI<6ÓŠ/§Xx€Kó­BdØÒ >ÔØY¸©$|]äÐ6D…K]ÉON,TäÑLiéÉbEÝþ$‡¸ªdçŒ]{tĉ—ð^ÒbW±Çºé7×–þtOó^‚6VÇÞ™iJ|°1õ:3ò0c£%Ú՜µÁb¯]ÀoxZbïjËã~× +}…Œºšªì\ç©èéÇJFÆî`I CNÍ8ӳỠ+Rü\äýtcîó)5uUHˆ5Öd=\n/rúëóR Ôwºúi£å{¤¤go‹qáë}p÷‹)foº?Šð±I`Ÿ­y¦#¦\è˜`‡ŠÖÔ‚]&@ŸOÕô\Ç.ê h–ÿ͵Åm‰áÇ”Œ!zÀs/éö©Ž »Îw×Te=nÎ~j“ûoH^óÝ,õY.çFfѦ”»&!D\çoh¹6 p¿ƒ(Ç)åHÍ)Ø•ñA» +.x~´Ð‹ ²kêÊÚúê sÿïÕÒÒs!Ý&†|¶ö€ßÛ¤ÌEÑ'Èws2ž;T<Äî9i_‚‹vŒâcm#˜ˆ-iqÀÎ.üÔ\FYS§Zà~ ]˜ðÉVX„µ·0âÒPœò×2±èb†6·å¼Xì„é+x{*öPOͽš§#4Å1[à ïãqTòÕõw GI™]øèÛ*Z៫խgS܉žž»&FŽò¿ÃÀ9¦¹„.Fòk!?ÏgYÂ)X2’g:K¼LuзJVÚ}UÆûo³Ì’Vå,²‰»z\¶Ÿð_› îe6co³ð¡ÐúŸûYØÈo€'92P²ç»Àï­C0ÿ?­5=—‹U-v›°*-þ²:‚ ڹϵÅßÝHy¶9÷Æ&a$ï+ˊׇYYÛrFÊá8PÛ’’`û6ü\W÷Í„O¿î©.Òn('ÍwÃ\—ºsŸ¯ d¿\êÉvÞƆŸ©©Ù_ô‚ë3$»*Nž]] +¼KÈd}ê=cUâÝõ!°‡MŽò_íGz^'fCLOÒ5€õÕYJèHÉ+2rV ݬ"ˆ›ÃÌ@8,eܵ|øÎ8)ñÀL+¼Xà17G(ÑëC¤ð]%èy ƒ²}”ràщ…¾ÎwÞAûo#¾(øx¬¹ªÇj|ܱ–Ú•Ó“ìZzÞé,{` ¥¨0a¶aÐûõ¾ÔgÛ"اce%æDÓ ØU”"û)1kjꎊ˜¸-ÇYûî«}…ï Õiô w]wa7¥””¹N˜«¥ôLD‰»Û‹~8ÛXàq %Äè+r_ª˜©·­En˜Ë¹ûjlâRºó¶ ñeC ÿ´5Tb$ÄÎ÷ûOT¤Ý;ÖÓ`Ó¥ŒÕ~¨÷R[òý©†ÔǶ¸·]‰>Õ“uÌB›’‘µ!g$í¨+qû:N‘má¿2ï¬*‹»;QûÊ*„‡:Ôtä·¹2î¾ +sÔÒþ()ÖP•õØPukSú°=‚ôï}85’r.gØÄ# ~¬+->³ðð«ƒîæê¤{æÊô‡ÆŠ¸{K­‰//4˜ÄsC~¡¨«É¸¼¾OÇĤ= Âÿ`º=ù¼-AùŒ“öÕ¼"}&¨ñË’”üÐ?×yŽÀ=D(JRWr\­©ÏwdPÿ?Ü#@_lÊ¡Þ{JDÄî"r]œç} ,Žý6Ãü½.hÝÕâ3ŒM W¶rꑞü*Ôa¢æob£lji×sö¿Mqé{je˜óRS ?Ñòðë¢âÀ¹¶¬gË}àÛrˆ—C‡ ûs‘Kx©ëj¾ª~c”œpµTÓjSÐAóúÊÄûõ9/‘Cn­ôBý/ªÛÖµåM]á«…^Tà‰ðHåÔÌ¡œ˜9¤#½`Ж +ºœ­(ߥ§í~öÛ<­ø¯e6íæ«YûS±r—%¼Ìi=nI(ÈÙ0’®¦¹%ÀÚã/fË+þ´Ö‰þÚ¨—Ÿ/òx»zJöÆ(5ñp¢šo×VÖxù:GG_-’ +·äðÈ <údþf-­ÜtÁ†‚945¶\X«š¿­— +vOrl©ä™®ç51òw0¿á\W»xa¤ç]XXÐý1\àãS΀¿ÛÇKBwG‘ =™æZ“]7ûP>€ö/ùg¥¢öÔ„:´´ìë¹–€gÙ‚ù-´|7„ȸ¼5ÞV·>ÑV·¥¬Ä®K¨1‹]ˆSu©÷Çè‘¿j¸1.4¸´«©*Á†¼;'ä§Ì Ùñ«CŒè­ajÔ–¢«N|Ø‹ðýÞÀN}r8„ >ÕR2ÖGð!ÖaZÊ¡¦pi¨©>ùQ êãèw?«¾ü~5Ï!í›ø„%!6pK\`W‘Ó ÜSÀýíã…>3mñÏV…9t««bèÚ0&pSBLÚ!%žHÙ/sè—“¬’] 2ÄRŸødµ¯ÀЇ€6,|½Ðõ>Õ2 ®5Ù©”¶!Êšk‰¹Ü•õvÀÕE!3YLú}‚Ÿðäh”šî–„î ‹|G`‘;T¸º,ý¡¥¹àÕ.à¹fúÐaƪ¬W;#ÐÀí‘|·}äÓ¾³.Ɔ›Z +ÞWf>Ù¼¯mŒš¶Ð“ï2מç2×Qèµ&, +<šÀf~›aâ¿- +û~Z¸p»¡¶Ì¡g#Ï „ÌS=!Ý*{h‘Q[£ð€Ý±âð¯3LÔÒäㆠy9ϧ˜)…5&~kä±Ô‘ùf¦5ýÅž‚š~n©äíÓóµUYl#¸ˆc-5÷X‹‰ùg»^@a¯Ï„nŽÑsÏjÚV¥Ô”éî’€e!1j¾»Ðç@O¿´X'“UÕ‹RZÚ’vbÐN&YH«ægS "öT%‰ÇF:ørš^øç² ìj¾²Æ +h’=&ö¯Õë¾ gŸjIiŽ L¤]u½DÍq˜«+÷ôí=³ý”¨¹^„;à7pÿo§~ô•Òªs§¾-ó¹§34ÔÙ“p5Ïc_ÍÖ6áÞr~ÊóC1ÿÿleÍZK+.YÌC6íÀHÎ=žáÓ¯+jÿXnžÍr)gó ¤Ð+Wóõÿ;ó¦/Ç;´¤¤-&âH…Ý—¡Ã=¾+-ò²+ ‰Wærêž¾2sÓ5&>6T…ÝÚê†~ü +àÁ_sLì1 NÍ|œ]WÍÜãæ›š³_‹þ?+Cïì #Ã솦†•ñzʺ¢ +µ=ÊÏÛ–°3Ö…%Ákï A=÷åÐ@›¼$iCZ±JJÖGë Ûr^ÞÖ0)lSL›m]ŸÑrÛê†yîõ#¼vDÈÏkB\Àö(¯èP[Z¼¯ÀGͶB? P"‘lö§½¿œ¦ízÈ6FOqhø(»†Y´:TønKZäi“x.w§¹îÊ ü.'é…×3W¤”(€ÇAGú滦 xŸ°‹Yj]KL^ë…y,÷î+É9›2Vº©å²§`dœÙÈ}%6rW +˜lH~<×ð|G\è¤ç"VÄÌdc}¾ûJ*þ\_Z²#Fxë ÷e´°ßL•ñwÕ‰Om2\Ì¡–hzêª ¼¯,Läá8,p¦5ñ±ˆy»£8àÞ(=òÞbGÁ{»‘™êÇ1“ Ýu|ÒÅ$Ÿ|5Ã#ëH9V1šáØÂDZ3ÞëÓ^؆a;#°p‡—q5ͧ]Í Ø€öH64‚^ªà.yº9õõ®¤Ð÷ÀÎ-«ðÌÄÁ\ÍUÖž/TÕ¯+¹ U9¼>Ê/˜ê€¸­ a_U$Ð1à¥÷Æñ±çSlÜß+• ׳tOLt8P¿¼C=¹hsg×bcì:r®ÃÄA­J°Q'&RÞ·E.ýÄH/º0±P_§ØX`¯ GžîŒâÀ›R*h¡îµ"„|¸œ¤þ[uÃ,±3´¢¿­\î_‹tÒ…‘hm2|w —li¿YB~9™baOç˜%GfrÎé,á0@‹üò¯+‚Ê‹YñØH…¬ ‚N&éп'Øÿ®Öv_ÌÔÔØ ÕÌ]%5qWŽð^èÉ~9@òùy€ðîç ¾ÿ/ëƒ ËÉRʾ’žº1BŠØ–£ä?‡úiOò\êŒ~bªþýrš‹ß»ÎÙdF¯’#Vº =NG!_þß ô+LŠê§mM3ÛUèu¨ª(±ÉËŠýšhAùjªâïε绩j¹GªöÆ=…¾%BÙ•ì«X`»¾ ¿!§'ë@ÎFAÊý½!”ÏÉ89éÜt=™|0† ;P óƒ”ð•~¬÷zØeGŠð=Ñ3oÄ'žY*™»*jÚ¶êéДğ˜y%*r²u ÃÕÚŸðöp콯¦e›š/&Û%vM)vOYüÇ2w9ÏÂìO×%ÅÁۣĸå!|вˆr fæ9¨]1æÌÀÁ*‰ñûrDÐ{ï§£\÷GAž':RÒ™¡’í0ÔUŠØ1· u9Ÿ6‡ˆYGJRî73!ÿÒDÊ|Sâ|WÑ»--Ï>AÏiî±*óº좭ÉñظøRË€ži+Øs'Ä}yÔ[uõé$w5Ç!œ™qIc% ߸¬ÖÊëÿ\,¯Z•Djë@nv-—r hÅ ³;Š /‹yª®¿µ«€}ùc‰¬ %w€{G^šüÐÜÐ#ÀëÚ5èHëPÁ'ë@‘àÃ}OM´¢Ë¹ò²U!6h®æq4N‡ýg¡¢úÐs§:LŠM ÙUÁÃwôÈú² a&Žòs¯³æ‚¾YhˆÿgåñNuøÄ+ 1ïÒ„Ë´öçº]Ìq)§‹Õ- Ã%±“Ý9.ç“tàáØ¯Wuý¹RÑrn¡úŸœvjbý¹\^i×±P+ýŸùöœ—sméÏ÷•¸8‡ž ø¯’¿g9¤S=.Û¡ƒGþ±DGïiJ’¶‡@–[rÞl ÁízrÃÂÀ½Àþ¶*(³Jâ§úÞÇSu­¬6Éþ±Ut8&¯ç’³€õ\ÀËü3%ój’ƒ:Ösa»JV¦m”‘:Û u1Ö<ÕW^h˳^.uÀ>ۯϓê®sÒq¡¶Qzòö(=eº-ë¹Zò³¡*úö,À+Â<7À“í ;~¦C ü”!}·ÅY/Çs€zIy>Ó{O×÷ly (ðXSEß+…lP¢”œÜà Ø®"¥ý/Ÿ"ã†ÜÀ}üuOZ9UÉw˜*è›2vÚ>ðØ}9.Ü6Pä~¦ÆÅη'¼´ÔE?´£#u¸ªúqº|¡çÀLF|›¡!Î-Ät»5Ý™òh¶5îÑõ¹ï˹Ê2»®œ¸«,‰Ù-ô»Ôc“¿MqÐgfìÔ@-t>*9a÷Ï-„<‡™–·£"D;&ÉGÄ„s#£ðršƒ?ÔâwÇñQ»JFΩ©®jsí·1T覮Lr, xz4‹ûÏR)ïjªŒ ¬-hid×ñH»;ŠZH~5Lùtg„æÿh_Ž<^}õÒ -ÒÒ‚p±´ ]÷4<ÔŠ°È ðxnëýi/×z“^M`/§8¤os5M; +bâº~µPVñÇry͹…>7â’w¤yžÖ„LJjB<ð|¨³©ššC9uMÊL·kkØûê +‚CÇ.:·°P{šâÈ} *l_MJtüÿÙ{ïçÆ®,Mð§îž.uõÔ¨ºTF¥”I)%¥÷Éd2é½· ¼÷Þƒ Ko¤Tzä·ðÞôÞ{™UݳÿÅî}Y;³3»óÃF,£ƒGñù€wϽç|çûðÞÑpû kj¶gˆ×£Z6,¨bË”š´žÒ–5Ó 3ì.ÛcàãÌÚ´sðáê,¹Þþ¢û¨õç–Ãî']Ç£:ztŽxS)Á¹ÇxõöW–õ™úÒ­Cy¿í¼éì”õ§¶ï¶'WbJ|í‡ñ`àóú¢»¹(èIX†ÂZ.,¨¦5®O¢Ï¯!N‡uôŽœ[,Ý[|²6ÍhÒÜGYŸâ÷å\òῬKïl TxºûÜÚã’ßêå_8_ nìhúµOI×Cm_ç]ù¿n¡À^hɵA¥9ebãwÆk¸0߯;jˆú#*1.®ã"6§a'¼sˆó[“Èb ë26Á·H¯i™Ì1áFxS¼5Ö}"²HÚ› K¨¥¼¸îÎ}×küùõIV TKýsœÖÐ ªØâaçìÌÒ/ßetVÞ1t?a”°| ÔJ‹¡EFóÎ$ú²Qr¬N9R÷½ýçöï7oßVpVÀñ¼ÓäúˆÄŠ…….8„¼˜ŽEr¿‚ÝØžì>ÑRšÓŽÛQÓà@Â(å%‡F^Ûšh?ºëä1¤d#| +n×ò³%¨ö©†ø!•R²Ú·§0%ÞYÌõ¸Ýj;ª¥·ûg‰7â躶~iDEªÞï=c}XþGûãî#µ€œs Þ‹:$‚ñá–ß«úN%!EÍfLj³Z€ÜQ PÛ*>Úk¸ûÐ>}‹ýfqQqô¬/é=€»±Áqè á›é¸ÕQ[ƒP®ª†¼Ê›Ãž×¤KëSôš¸Yĉ›9˜´CÈI9øì¨‰…ö*è `Núüúá AÊ©‰•YLq`Y”С«Ó vF­#ÃЀg‚׺1Éhþ°6ð8ëäqÖÞÂŽn½‚·?l<¹þ¦éÊ{ƒþ¯;²Ç¹%!sžPï|+ù"Ë/½×WßvîÒW•¶QúÀœ²Jjs†ß>¯ÂõsrsŽÛºµ êÝY”bÂz)= ‘½J|m’tuå-æ´ ÄñÊ[ÂåõqFùÊk~u`VŽMe,P‡…>%µàò•ÍqjÉö„ e{Zؾ9ÁªÚš \ßCŸŽ¨!-½ig_¼ú~T!©øõ¢øê߯<ëø. +btsœ] ÅVDÃïƒr&e`v¤uä†à<æêÊÄq×Ìѵwd Ó1§ÖG‘gR"º@®N©) ÁäõÕçµßo¿íúÁ;:Ÿ0qþr¹o–XѰ»FVïy'Ÿ™4“;7'ágתK8n>Z‡î®O2kSf%¨Æ^Ošˆµ{n6¶à`£#jJ“w]”6Pš“F&à†ˆ3‘TQ`~1«ã¢þê¼µg¹—ÔËy€ËÕúÔB܆BŒ[zCº´=†8³ñº÷È“ ñyjsZ×ÏŽkDP+;¶gii‹”†¾ƒy;áyÖø…ëyÛS’«ÿhò“A…í™f7;_ÒnÄtC)ó@ROï+q¥žW?.•þÖ;Ýy&eaôe]RiÄ("ÇŒBFÖùñšÛ®Àærh[²ñ®ûÄÚÛ¾ÓQ½’v܉%ÿ<¯ ú>8k3â*vwTA© -Ê7'»Ï/½n? +}ϱk“flR1ÐË;9jÛê(üêÊëÞ“yšqòYë*j½á9òÔò40 „-2aäHÔ$å'ýƒiHì3J¸–1Næ)áôôâ|H?t+iŠA½¬”Œ¶õ±ž++›”w‹eiçÝ)¿JL÷¼èýnù ê\Ê-»ãSÑÛÂZzKXKmô+i1'è; ωõ>Ò·@(I™Ù¨¬“OM;9øà[1›ˆ6ñq@Ó &zwEÜ¿5OlÐÝëþ"0σÍÌ), åYãcRW@ ê²…Ú¶·"”¨ÀÊ8GÿAû°­òýFÿOÿÅÇᇕ´€'Øf€TIÞpºCZ¨‡·+a‘°1çÀvøÞA÷Æ·aé ­l}‚Z¹3Ïnñ¼&_ò¼ì=º9?Ë i%¤Z€, +û‚Ê~jH-ïXå¶Aß¿Æõ|”w×µ:†»è|Üû¥ù^÷—¶ð#›£ˆouÕÚ9i‘pb&êÕ+‚ X€‹˜‹~ƒNkPÉéH€õÜeTý»õWµÚ|[÷§­w ßçð¥yVK@Åïõϳ›ÃZ!ÎâpéMãáÍñæo½sð³ÞYøYÿ,îzB'¢¦]C¡{®LÑËf!esv~sºíHX…1†»º> +ðg¢ëû”‘Ù³:ÍiñŒa/ïJè¨Í‘yø•œ[ScËVG{Ž­€xŒý ÝÓ|\Öý§íIzm º®oq)¶€¸tæ•åWÄ ›ôòBBL™‡6&É7€Ö>V²àA» ¬I3Ðáì¤uè–OÝÏØ™• ¡>ÁÛ³B¨Ñå gkÂjRC\GG}Xâs +%¬Å×­ŽõœÜœÂ•dò¤M@‹j­15«'¢$ÕFTôö„^Æ-8…±9A( +,2Àûj—_ÂŽ®¿Ež .Rª€>ïØ'—¬¼Æœs¿èý>ÚbVjÇÖââÐîQ+4ɳŒEÄ[#—Õ\ÜÞêÈ댛Ϙ=[³Ä’µ òµZMÜÆÂ}Øôï­±ÙÞdMBÇš ]×àJ>n Îs.6cÑcP¬,’ª·&%ÐoúüJléæd׉˜†T7r… ×7˪ߜFÙŸ4}¾ú¦óHÊDnÌÙ)í'¹;e&´íyx´¬GQò{ƒ‹ôÆír¹‘×é_à´ã÷f ìG}¢ä´{žtóN¡KâVwÌÌEG Crßâý[[s@η(Bl±*×^âÏï5~ã~ÒþMhÕx ¨uœ–9^«ñgìqÝÝ®/Àg}WÐêƒ ´¶µ bÙ6à7^E?hÃÞÕYNãú¬î•`—߉P A¬2º×ǰ5¾EVW@+ÆÇmòþÍyN›gŒpi}–VåýøÛ-jELM­Kê¨-€÷ô„™MkñQ­„º= ôð"£qmwÎ}6OºÓr`;Óôºõw„K1–ÔòQ@{\ò¤®øäfOX)"¹^Âܘ •C}„}³ìö Àñ¤IÌv=CR4þiŠuåÓ¥'°2°6-ö'ÍÜš@'µ\dÚ $f­<®[ÈÛ]Iv™­K¯(%‰çÇ¸Í |Q:߯aôFÔl\Þ&‚v3lä¡}jF{Ì6ô(m¼1pI-©&¦F__ÝwÊ7ÍlOåÒ´cðÎö<¨‰.>íì»ÕŠbF\EÂD¬óÎ#.¯Ï»ö¡ŸïN8¸¸œ{øIR/ fðUî_š.=i<úšrâŸowþwÖÇUÇ?lIïÆìب¹eÉHÆ)`å<’þ´“Ïó-âZ,?·|gyØöÅÎ ©2çñæGj¾Zﻑ²2{NõƒŒ/’úœ¿tU¾d^9Ì­ûüKꄸ¤Þ‘6Ó;bZ|ÙúXûaÿúJL¸„™‡›8pà{\Ïêô+Ñ×¼³½ VF_Æõ€§V€õ¯z¶a{šT˜£Öí:8˜¸SXì<æ›ï>Q5lÏ#`¦–ÄÔ"¬T¾=ƒ¾Rqº¼ó Ì«@g\EXŽŸ»íL`®'Œ´¶¬ƒ 8hÀó`; +!< •’½J)~{œS³ö‚X¤¨øls´íhxPé"Wú”üžµE1Â3!îYŸàwG•˜wÕù¤çÈÒkøIðYÈ^LÙ˜§WoÌsšýŠ›`ÝŸŽûU·"zck +Ud~Ðô¹–ZŸ0ˆ)§X°õ'žg· ý¢ˆIƇ®+ÞšÄ^^yÑ~茣%¯Ä'4Æö «!¢’ý3̆¸ŠÑZ Tl¼F­½FŸYÅ]ˆ(xÝ „´=F.uÿÒudåe÷ñ¨ +_SãJÃJt¹w®÷ÚÖ4±4 àG ƒ²­Üu÷³†/ƒsäÊà«Ù7A¸öÁÊ£î-?™„ôYzuÄ$‡M#·#–‘»³Œ¿=G,·Ñ`ªÃ: hgRÜ,G-÷'ŽÛo¢6.=b&7gòáð"£Éý¸õëYNÑßëÊ~«.ÿÁó¼ñzÞM§ýeKþK`VPÇEæW~ŠZø¤íYJíÊ[øyË㦯–ßõ–„”ÄFÀCÛRfrº¿üî×ÝWs.%k¢w…F[i¤eŸÝë>ó÷âæ3ŸÜD^<°‚XÒÒ£:*à.„’„Ž ´<±>‰»¼=ƒ»â›&_Í3²6õ½›GÛs±±)3½=¤ Ö„ØM)=™1ˆˆQ»=¥çÀbjfgBÏB¤M\\DÃjéÙÝ%¬§%®b#€CÕ¼nÏ8î’þaÇWÁyjmÖÌÃ&§t2VÊ(Ú“\3`®G´˜k&õ´.n`Ãüj6Ð,Ìš¨J€ )X]15±Òö°ñínë—@ït…õ@{¨$„¦ŸÕHÉQ­ÑÞlf"âF|­o~Á ´lÒÌÁäm#÷cÆ[vù`|¨sÀÝë‚ ˜k+¯›»ž” +‚õõd éúɫ壡ú´!0Íê MÓjƒÓØk¾$ÐIø’¸ZB‰jG†·'h[£Øs¦;Ÿ;î5ø}YBCo‰,ˆk vf½I½˜–Ðrºw&í*~o{Xþ‡¨ŠKÛG¥l2iXËê +*ù¸˜¡_x/3e µ„çú.Æ´ÔæÈÁ¨A@Ìzn¾x};hìDÌCCaZ¤Ö†Àüi˜ÝÛ“ŒÚµ·ŒÒм³9Á®_zÙòùæXÇ·ëoQ'7F[c¼öð§7ªà!Ö'heާèSQˆ b¿ñvjkŒp%¨¢7'¬,DÖ#¤¬Ã÷£Æ~áà“@w±Ò«·ÆN'nÍoøøò¬…Ûs x7»|0i2 Ρ‡»`þb:ÔÉöúãw/ÅA°PIïÎØeYwÿpÆÅge]ƒ“6‰ aá2v.-a撠Ɔ„ê…¾Ó'ÞIÒµ­qlÑÎ4µ#®åQß»¤7ÿuÍM™Ñõ[Ó”:÷+Ê× êÕˆáæÏ~=¸YMHÅìË9øòK~xÙêúwW¼>8Õ1z þÑ@çﺎ-¿…_vâ›Wؘ¨YÚŸ±Ó+#ZREä@Á&åïÚ%üŒE@Üœ!”,¿îùvõEûW¾·}g’*lmÁÁÅïº%Â]D”¶s±aÀuC³°Sá9ôňw%¡a4§ \dÄsBÏéI“µ iY›ˆ–0°ºÂj܆ÝTI°aÍ׿0Hª…¨¤A€ Ì)Y-1-«#ià"Òf%òÝü¸ö‹iîÉ¿7ÜøÏq=`< ÕðpA§×7ÏiõM ºvÆ)eÎuÞcõãŠb ÌÆЩ–¶‹X ð©#¢a´ÆÍ„º ªýLp¡ùÈÖxÇ‘8Ðis¿$e¼ýا µØŸ5}íyÙø½oVœ1Óz€žlµõ†s{fc†Ñ´Ú@XÅë³þÜõëçú¯RZR}ÎÌAÅ5´ÞÍIT¹û%˜³w¤«>E?5¤ômNJ+7%,ýGßµ4t@BêÖ8Ð8³¸kY³€4ð!%µqýmãk¯¾ôÏÀN§LtÊrëqÜ8(køÈÀ²à"´?ˆ+¥'4×]SbVb6­Í2êâ–~Yäœç¡hQÞñ•óAç× òRÆBnÉ;…܈NDÜ™cÖ…TRb@1Ī9“ø«– 0ßmøù^Ãg —Û³¶þÁ¤UÌͺÄü´møˆÛ;ù;ãf"·&¨7B*!:a–KÒP<;%Ã!5º'<ëy‘óH‡v=<Öö,²Âö íÛŒŽ°H~+e–ÜŠô ªŸ7È… £Lšs‰¥Öew@`ÂK#vÏî’Xœ°qða=­ pÕÚ°’Ú”µ³Ñ».%g§õŵ¤¦µ·½ßûf±×ö–¤·ÂjZ›çuÇá¥ßn¼ƒ_>R€þ”¥M#÷bºÁ/ˆ¥ˆCÄϯ=ñJ†®;yǨûùòxäjÚ@ëŽë™ä„‰ŽÚ˜DŸ ¨™­Q=æ›B^v>nø³áÞõOÁ>mi¡:iÀ•%@=Í™ù„‚M&ÊÙäÒ–ÝiÑýîNÕÒ ^ùG÷O•ØuðH{‰dwI"N[9(èú夊ՕTQëBó½§7ßußx ;áŸ'–ÄtÌÖ=·»ç ³V1n€®è>é_¤T†7ÏZ%ÜŒUÂÉZA|m p•ë^$WÅÕ亨ŠÖP²ZWƱ×]/ºÏïŒaK3FïÖt÷Y÷ËÖo7¡^ßs‚ž€b€±=Íj\z‚¼&WF¦Iå«ÏÚ)„g?]}Þx8mæÓùPÜ:|+¨“Ò¶ñ¥«§ƒ ØÚÀ ªÈ?ƒ¼ä›CÝØ˜ÂÜð©$¤ VÆIZd‚¬SÌ~øô¢÷ÔÆ(¦Ä¸sLK9JnÜžÃû #ž1ÒÚƒ‹˜«öŸª?³?ªýÂ? ¿×ÒšCZ1Á»Àk_gV:Ÿ“‹­`‡½ïðÅöMßjä•_G*? Î5óqa »Ýý¦÷˜ýçºÃq¢,k!4ø5¾9JcXÁîŠ(¥„ˆöæpTÇG{gÐŶµœåûÕΛ®³Ðý‡âF6"¬¥÷ýXµ=ÅiÚu.ýBº˜é;™4!¯%ŒÄÚ”YHIìÉ:úe@7 Æ,bæÖ±ú†RµùÙ;ƒ„Î÷Aç¬ÊýBeÎÃgå\·“V!3naõ¥lBFT+@¬ŽÀ¥Þ;ƒ/ ª±åi—”÷ þœYº3µ©`4Õ´æ„‘IÙHï¦Äú¨õ´þ^ÝÑI\mH}kدä[ŸâÊ\¯û.î­ =ø8¨lÞt‰Õ¸]kÂ, §l#?elò‘°šXãƒ_Øžî;ãCG4È✓ÜYXf|*ø…­YøYÀåYù¥¡ÇÐ=f2&èûNRsXE®Ï»XØÂ²P”[x0óñó¼vÀgÚ*fkxºï²åVég Ò+ÿÉý¢ùÈÎ"ð\N÷Ú©\«õK/`—½³Èú‚UÌÊZiaà SðSI=§7k”0²¹$¤guÛ_aΘŸ OX·Ö³øÃ2›Tp±1y'—0°{ó–á›i­”žTÓ½]?.?í8¼õ +y&2O*K¨ñ7òffoÖÆ#¤Lçbáòv1¢F—Äú„‘ ‹š¸˜ùÖ#ߢ”âxŽ»¸òyf{¢÷lÂHjÍ:˜¬“AŒ›è}S×§—’67 e÷nL¢Îz§Ñ—¢‹¤º´ +û°Æãï- ûC6mSM©ƒîûòpämßòKØ ËÃÖcK¯º®ÄÕ€7iÅ‚•wØããÎ#ËتÂê]ET/f®½Å^]{Þñ}`ºãG ™ªSViwuàQÚ&à®MôÜžÃWEô\ZÊÊÆúá—üJ8Ðö„êmüìÎ<êJÞ-–m$Ž9} Ÿw ¤Y;—’ÒšâzBcÄÄFûÍÒêþIôÅ­w=Ç€F)~t5 ”à7&XÕîç‚ú•7¼¶ð»7<-Ñݼü»·MGv&á§"ZzGT/ãïL’Ë‚³¬®„Z@H¨øè•§¨K¼Ò?ÏIʾô¼&_^>ø´<ÄÖ áºõ~ó—1%±*c¦wæì xÁÁÂøfà×Í÷¿ô<Ã^H˜%ü¤CÄNÚ˜°˜†Pæ´(¶ˆ‡îãßu2cò.°Û—Þ’®G+°×ãZÄõÀB÷EÍ­âÏ6'{Ï…Ô”–°ŽÖ ¸—0 ¡5úU„1#­5i`u]Ú7‚:e€ûà—RV.©°4òÔaY@A©ÎÛÌ=7Ÿ•Л÷Ú¾_{\Èó¤æÏA¦üýŠìÞÞªüaDÃ…mOQªÁ:6gÌž¤žÙ˜GUmN¶]ØžÂÕ”¦ŒC*Ï»ïÅïñ‚y ªˆ œ44Ó{&m¤´'¬\tÌÆÃ&íF¬iTÏê «IM9—¸¢¤à¡! Nj—_I­Y#9=qŸ’w>Ì8…œÀô9R©‘Vê:"iãÓ¯agâ*VÇ®¾Ÿ›ÓÑ»€‚1v¥ôø #úÚætÏ PŸü +V«ožQTÒêöQ´ýZD\ +.2ê#Ö«à½ÂhÚ˜èþQ=Xò«•§]‡ƒÓÐuq<€…AÎÆ@ýÚš³‹ÙY«WªÖÞÖ~ãzVñÙæüùȬ QŽ#:11 +ÕÔ9ZCRÅÇ¥Cƒ@+ὓˆ³þYBIp‘×¹ëþ¥à‘ßÉ€8Š™Y½)+ –†´Ð×Y-]¤Ôm¿ºnŽ\óÁ#–%LŒ®œ“KÌ»9„¨ŽÙQr»2& «ÕĪõ7íß&5øº÷v™8­“06Þ!/lw}]ǶöŽte}Œ]TȈ+SìzÏ(á‚–Ré›"–ïÙ¹¤¿. ù»N= ð$¸@¯‹©äœŒa@´òšxA)ïüÓ$·öSÀ%OgŒý¼œ]&MZ„”9B‰ãyï©8tžh½Iø™Õw=?¬vÿ¸5(ʘåÃIû#EÂ"æÔG2:N_d¾çäæÛê?¹ßøè¡b ›&!ˆ «b¦_A© ©©I“^X’ –ä÷“@;ƒØ¼¼3Kº‘0ˆH ë|û1næþ²&øàa¼¤÷þ«G$Úu³ˆîÜœF_XŸ"^w½D¼ Ö¦´ÌžÒòoúßVø” Yæ~Úôg×sÔ©ˆžOëÔÕ×è3 ²ŠÏF™çþÉùKÛñ¤žy¿"–XJ“& º§@ÎΧ캠Í*^¾ù;}ÿåßGç17>¬ø»k"™_­v¿nÿ&iåów·îê>l <é á©RŠK?Ý„~¿¤¢7Ä ˜ß‹ÞFSÎ!d캹DÀqëÓÆŽ«+/®õûÕßmM¶~œ%\ËëyȼË›Ù}Y³3k"T¥M˜ëIº8e¡w¬Š6Çxm!å-YÎ!fí-³ i±) í;gù©é3ÿ;RYN/c¹_á®L‹J~ŸÒBu…Ñ›ã4ï‚Ú—³‘ÓfBU`[œg4ì’%¯Ž«‰eK¯nüÆùäú?A÷cŒëÙ=ÐoP¡óë›s´Êå1Â¥QJÉ{õ¿¯°Y¡9 j9º>Yñ{€s§ö<"qÖ.¤eKÏm޶N*Mƒ„ž³Iy-«-iSs¶‘{9çÐݨ‘‹Þšì<²öºåPpw-c”²wÝòÛI›4ó±{˲ᬃ‰Ì㯭¬”ŸûÄr»üŸ€ÃìÚXè¿€ù¨…%ûúx g— +R@k§ ôÎÉžããìSg¾[úyÎÈA†fµ@Ç|·þ¶íkß êàð]‹Œ»g³ýJrõú4öBT'$dÌBrÊÈìˆj¨u«£=GÖÞv.؉õ»vÈUv/tn=øZTÉëIjø}#Àn#¥>¦£ÞÏj-Ø$ü‚]"Lº¿=O.kxˆ¤I@(8¤Â x=làá|JJ ô»—È"è|zo +vråEÓçk¯º¿ÏÚ9ؽé@Î#HÙ…Ìô}«n€2ösÒKƒ÷sKò[1À™¶ç1EÞ9ôÅ„^ÊL™‡oF€v\z‡»7÷K +Ò¡ª¯D?pã×Û£½GÃÄň_ Í·g’V®û‰rv{vH”sÞ~›º7¦ì<±=VûgçÓÒ_-x%k‘ˆ +ËC¿¸Þb¯M +j~³3ÅnZUüo«?¿wóÙþÙ¾ ›cÝǶ¦Pgâ –ƒµ"­¾Ã­@÷ G•ç­é_<Yh¸¨]f}\ùGÕЕ_ÇõäÞÖ૬Gȅ·„gIu€;Ýü°%{°ëäRr&v˜:÷SÔÑ€‚Ñ–¼Èó´õë Ωÿ`¼]ú‡­Ñö“ÿ¶ÆÀýÿN ùÿ÷þ¿²Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfÈà¿k8ôïÄ~uøp9[†â¢>éªúäpIõ9xÞ‚âpqìO>9Œ8QÂæ–‘0\ƒŽb‹—N?}öЉŠzèÈßö<v:ÔÈ&Htðb+EÅ}è(Øõ2Ø>9yèÔ¡“ÿë}rìÂÅ gŽŸ¹páôùÓ§N;{ñÐ… —Î?{æÜ¹ Î\:}îâ!ÚÿãNç.?}òÒ… ç/^¸xæü!*´ÓÙ¯]:yòâ¹ó'Oƒ.~|ש3N]<{êìÿËNÿÓá¨ÿ+c¢~Bü¤óú'ÍŸ\:täûC]Ÿ´ÿwy»Í[)›Ç!6¡¸`Jè{±æäxùH;Ž¢á°‡>¾z¼|èôéó߃Y*[—ú÷ “‡jÀdð’àЩ“‡êõö<„…öoFñ4âs›¹3ç_8ÿ·çuÿýó³ëþÛþÿóóûÓÿïÃÖÅ)hã‚DÅýíÏÎý_±¦ìSùɉ2Ÿ„Áݨï®=ÔÕðI/xï±ó·ÿƒg'ûܹ¿-ŹC}‡NŸ<œ:yJü_z4 ÿú¦ÿúxñÐY0€S?Ž÷ì!è'?9|øã¡ð.:tñÜéÓ>éªþQ-§7iPcj )¤àvXí~£;f`tgíÔŽ¤WQà+c:ZsÌÄîKZḚ†Õ³=G( ,Rªƒ Œ†„–ND”¤^B©¨˜–Û 5ƒnº»=ÏïÞš¢7®¼Æ—oãË" IJØ"±<©!UG•¨Ë)£Õß¾1Üù)d}þzµo[š$`¯ÅçéµI…‘1HYËo¨5›c̦¸žÓP`®ïÌ!ÏoŽ÷œˆ*ðµi+µ=¦ÀßHhi­)3›¶ˆ™ £=¦¢ÖETÔš­1Ì…¤’ÙµgïïϘx¸¸†Ó—Ћè»˜7qQÞyrÙú8ü” +=<ËhHéÄ´˜J€Œ,HˆÞq!<©„f?£˜ÓÛ£]ßn¼lü<8Ñw.¥bµ§5"|Æ "oL έ<í8¼ù +vló-ìÌú›ÖïB³¨"àCsF+¦F”Œ¦¨ŠÝ™Ô ðY³ŒŸ²ÊBš~V@!#{çù0ÿ, –6 €ñ FzWÎÂ#˜1ò0q £5ª¢ÔEÕ쎠’QÓ²ÚSFZÛêDÛ›S]§3FJsÞ$ íÚÅüœUÂM‚5Ùš&”îÌk)7i–ñjJ­_A,€9ÊØyÔ¬[Ä›Ä%¥Éý¶çDR'ÀEõ\|PCmʺD¢ü’ü^ÆÁ§¦í\|ÊÊ%dlLLG¬Š«‰)©6©'7î9ÁñìBFÚÊÅ$-LxÜ‚‡u”ú¨žÖœ¶s° ½=cá“s6™$eâuá 2V>1eæSýjRW‰¯ˆ؈´ÞuYï=ò{{à¸y—LžvöËCz!Ù¯á¢P3! ‹L±–´ ?Ì:n½ÌZ†Òf 'má“rNjÔ°0zRV6*çqÒà=Q£%iR¶áû)»˜s‰…yl0egcâ&bcÒBl µa±Ü;OlPÞm>oŒ+ k†d)ÔPW¾õW쟡V¤Ì`.2iÒÁÁ¦,´Ö¸†P“ÒQÛ¡æGàxì†Ñ²9ƒ/Þœ#•E-|Üúþjh՜҂1JY #QÊÃJ|Y@̓-Opë¦Á¤ip0¨ù·€8S#/§õ¸ò”[×Ñš‚jzKHÃ…ÇÍrQT#@y' Åë/aß{Ǒ砨¢”’Z—ÕÐ1»w¢ÿƯ¬`?‚\Ä$ |tpQ´ñ®úÞ©æo“zbuÆÄE¦brÒ,¦&Mz +Œ)m’0R&)5ÑÔ’k²,caÃsv ¿à‘ÈR)Ä3¢áô„9m)=‘ñ˜Ã¯6¶ýÒô•¢¿é³À˜„WÊYòQØ+Oþ¸õºã‡¤_šP‘ªÃjýÌÍÒÖŽÔü9¹ÈEe-v`yÉó¬òwëo¾Lið¥) ¡, °&m‘0“f!5½øØP§_´ë–ßÊÚ´„YH±Àȹïä\òá”䳎ÙU2[ +fkÖÈîÉš]9+£+k¢·Æ•œ®ŒAÂJ(- 5±:g±`âã²6!5cÑ2V)/cI˜$¬F€Œj¥ä¤IÆM;%”KÀHØ„´ ˆs(v&Ü5Ñ{|y~&ç–?È,<ȸ¥²œG~j2”uH„3ž1Q›\iÎŽ¯Ë9‰­üjP‡¼5¥KZÄÀœ˜žÞ–²R[rJ[ÎNëˆéÞ9䥸–‡Ë[î<+8î¼IÙx„Ž\çSá®ù5¸’„A€ßõ ý rW”qñÈP³€ŒãÎhÒ~óqØ" ÇL䆨\1q9¨é„ƒGsˆÏÚåƒi«\š¶Š™y'û×5;çä’ÓV9cdt%•P#w*f‘÷ÇÍb6Ôü,ë‘ßJXY¨ùžãÛs?ìÌw kIÕ®Ñî¢쿚ä6ÎÚ~Rùçp%Psî•'=‡#ó”êœ]ÄʺÅü”ƒN[ù$°v‚]*Ì;DÌ´…‹Ù™¢”ìÌÒ*B:ÂodöÎÔ|¶ùŽ\‘5ÈØëà`ÄHïÞkýf{¼ã»°š øHLÙåý£€¸=Ks0ÅÈìÉ›Ý)¡Ò¿€¼°>ÖwÔ·@®Š%ôÍYjÕò ä±í·”kái~GLA¯O¨IU‘EÂíIôyíÝæßoŒá¯FµLPÃl÷ÎôõMtŸ«°µY;žÔ3Ú’ wâ`±GËZ‡ïd,ýI£”ž0pa)#µ5ïõÑLu‡Ö‘°âz.*e” ÂZ!&0'ìNjÅø”–Óãî;éø¹ôŸÍw*~c½ÝñUtJJÎó{v&¨%¾1òµàéjRAªôNvu<©ý|éu÷úG­_ºžÀ.¤õBz `¿w[¼ñ¦ç|pUš5’ê²Ìõ´‰Ô5b€úb Spö÷Rñ®[$H™é 7i»„W€bÅ%ë›8})Q0‹Y,BÊžÚ¶ëÀ׿ì˜ÊàlçÉø<«;k ©‰µ¡dQÞ. ï¹%â¿®ÊFr!3aâã&)'øBÜ$$&Œj<¦û=ÒÁìRÿ­¬§(ësSN>uKA¬ôƒºräNn¹ÿ6ØnVæ—åwsΡû ÷i½-¢F%Èâ¸u= é>ÐÀ‹ Æ°) Ÿ4±áY½7m%Ôd­D€Ñˆ‹›“ßE•Œž¼õöó¬}èNÌÈÇ…µ¬ž¨ŽÞ™0³ •sIei'Ÿž¸\Xy•sßz“° F-JÊFjÈÚÈÍy “q² ¾Æ§!ÕøÕœ¾­E€¶Á‘¿,‹„]cSfFgÜÀ…ç­ôî]+¾:ð3¬`Áº²Î‘ÇI»T j"¤%5ÄM´ž¸™Ò6Pê·çEöÇ ßl¼ ”çì}S̺õQ̹À,ázÎÌìΙ¨m9+–6±z²V© c§Ì2NÂ(¦Æ4œî”†Ï|Œ?bSI®RÝmù<0ËîLÏÒrúÂzJcX‰-Këi] Ô”O‹Ù°Àc¶¦HWS n‚s¬Æ¸’Ý–PÓRz¨a2¥)iâ “6)oe _äø¹ç«ÍQÒµ•W”k;£”’è"£)8GºáŸ"gÉe15£%a`v¹Gá§¶ßQ@~ :.NÙ˜°°{-i¢6§Íôv€×°œ `†YLK¸Hä¼]ë{2nÄ•‡Õ¨¢¨–P×SRÛ£:VgHÉíôÏ3›³4—ÔêÀ,ú²w¬÷h`s>©dwl#Om¾Ã_ÎÐ+·Æi7œºµWßéî–ü³ë—†?ÅU¬Î¬AÂÎZ¤¼ÍEJUD-@ïÚïæÁzø¨+k£ Þœlÿ.°ˆ.()ÕQ=ÔHˆ‡ë8=9‹˜“µIEG?¨ÙÜ´…J[y¸„‘Õ6ñÐy³”sY°Pó\UÊ‚(Ì7|jGMÄÚÆ4üLh]¼ øÅû%‰ä=ˆ•8ˆå˜ž K˜DÔ„ADL‚7Ò[“€ï¤BVnE~?íñÒ.± í’ ‚¼¸•²q±1ˆ·½»,‘ï.‹D9›ù³»4ò"ç”É¡~5¹¦`åÓvÝ|VÁÍc<jÏ68˜šÜëÉu! ±"¬¥ÖîL“®z§É%îqäY>ò‡§Wþ!>+Å&”|lVYÄ^Ýø¾6ÖsdéUÏáÐ<½à3Ž›œ90&¡G\Ž(;GUÝÇ#*øùˆs%näÀ·U¬ži|Éà‘€;wlX·® [V`.Ç”¸«kðÓ3C¿1=ìø1£“±c:F«w~jõUÛ—«/Z>_}Þú…w_¼:…- úÇåûäò]£\”˜‘³&h © >áFPC˜Ç' þ¸GDÃꀰ¥àäà +àØ97‡˜±sp) ¨©`®3ÆûoR–Á!0wø´™ƒJÙ©mï—œ‚‡…ɹh=^%®Ô;Ãhxïº÷~E(~¿LíIzφ•½§B +Àaµø £3cåbs+牓֡[©‡n§'ˆ8©a#­9ag£²n>-ë² Þ‘tȇR6#ë +w—¤²÷+ÒÁÝ%!·°,äçÜ gí@XÎZ‡nfm7e]÷¦óî{…e±(·Äg¦Áœ‚ükK[؈ŒE@M™¤‚uø^äЄ¸žÑ +pé2Ð3Õ ­5¤!U$­R~DÏA„4ÔºŒ]HϹ†Î{BMcvW%¹%%é¦ugWøÜô’P·Mäù9ç¼óöýšüàd¼ˆâé@‡¹îÜý#IIh¬.‘hº€•½)³3ªÆ—†ÕÄò˜\·Ð{ ÒŽ›O2®Û£1‹”Òñ?þàÿuI"ÈÍÖ—MŸ' 7ïBz5aõjeàôe-ÔÖˆºïòÆDË·Sm‡7v¯ÏKQÖW„++¯Qg£Jz#Ðm ·7¼Èïü¨ÜóvtåUç×yètf£h”´ j +ö3ªâzlYD;·ö¶ùÏëo'b*2i2¶' W¢jF{D0̯wuaõ5ü˜ùQû÷ çþN!jù.¾ B†æhµáY\qxSY$U„IåYÌ¥„†TQã*b:JSÆ& „Õ”ßúr`ÖWRa¯yg_D©ªù“áNÕçï,Ì®“…N€R‘+ý‹Äa©<¼H(YŸBœ±¾èüakŠP‘|. +5²ÕКà +BÙödÏ«¯Z¿Lã¯nŒ¡Ï=$]øÄùVôpa€•¤Àð|­%eâ f÷A¸šZÔytÔ‡˜EH +©È5%±,°: +¸gpö”™\Ÿµ‹¹U>;mIÛ†næA|¦íltÂDª ^³:Þùo–V—wÊo& tÆÆ„¬t¨ÿð¬p#©6f Õ¤l”Öœ›‰,œÌÚo=MZFî%,@Z$¬(¨I~5¹*¤§6„@®uøJ0FìÞŠDžø +åÁÞ²¤¿àr÷ägË{¤ý`“¥¬RÜø…MÂÍž”v„êKnI~;¸_~I$N»88¨Îì.A© c—‰2€Ïf] WܨŒ”…ˆh-6ŠZ8h¿ŽT ´5˜‘ÇY÷Íç¹UùOi›€ÑS[*JmÂÜ/Ï[†c6,¢sêzÆõPéʨ‰ÕáAHGo ª¨Õ!À¯s¤Ê˜’ ËØÔˆ™‡ÞRÓêlÏzoŽâ¯¦-|¼{-¶HkŒÎ‹þYaÏÚ¨ qkR†yAýx>v²ïdèÒÕ±®#%¶4©ÐÊèù‹›MÈ‚<«Éµ›³è‹ÞIreF7(‰(ð°’Ùì&–ç(µ¡reZEoJ«Ù[c}gÌ÷kþeó-òÈž¤Š\•<&0‹¿êŸî;ž‡ƒÚ†*ŠNç›%•fL" +àÁ(×Ýi£VàJB ÝÇê¾s9=®³„ÎMBçòr.7 ð# ¢Õ§,´Î=€×yŸ–4³`=¹64KÐÄÇnkA5~å¸7žu?ȹ8„´ƒÙ—u1èÑÁÁ%ŒW5,–ŠÒŽûsi  2Î~9à T Ã»czzsÜÀ§ÍýB¿[P¡¯FËZG}Ô»V>ðM¨Á51mRrîÁûÀgqÔ™ tÍqëiÎ}ó%Ôìu𿜇…Í@urY"ƒj\Â,¢&G…š«®5”_û,‰9—˜Ÿ²ˆéP£pË›¾ó7«~[°=Üõܙ̺‡Äì ØÎùÆú¿Å¿8ÀÏ8îÏæÏJY$œ¸ñþÛ°á™9l½û&fà¡“V-í”É2®þ¸NLLå¤qHž2É@}9®&”í( %Þ9jeÚ $gmZ`žp#6ÏéLjo„åÿ¢¾=ÏiòXÚ|×wÊ7+É$ À=J3:€µV™jvšõokvrc~&°@­Íe‚Œqh8´m\%@¤µRZR͇Cç•¢ +ìµõ· òMö ÏJ’jjsu~ë]ßÙŒQHN„ø˜šP¾=ÞôÕÊÓÚ߇'‘@W³Ú²&9¡µFɇg¦ˆ*1×ÂóGb íßÇ=g’ZHoññ9  ×'ûNo£Šsf©0o“m-HÛ¸ø´Ù×3»ò0'&Ât\R#Àe¬Ã÷C +RõöhÏ÷)ø¹¸’ÚÔ2Ú“:Vopß<¹"taÞ ¢î êKOÊg€S`=Ê":f;Ô=r' +ti`PÖzûYÚú`*íz˜u ÜIM=fäc²Î¡…)£˜ž2ô ò@3äÝfÚÉèK;èÝy•ó8{ËžÊw:@bºð¥Á»{Ù@Î) g¬"Fð¥½%ùŒ}`$ ñÀ«SF'màÁ:wG€ÊÒv™$Ž“ûEMFÜÔ/LØFn,ú¶æèÕI3½ëñ÷@~X“Œä<|FÜxˆµ_·ü¤ Žœ,m±ò.sâjÎ~YÊ&† „†ÀBߥŒQÄÉÙn?ËZåò°–ÕÑ® 4XÂÊÖ.€ú˜w‰)ãÏ‹IÓ½—iÛÀ@Ê.ý?IzË÷¶ÎuÛûìµw´]Å´MÛ4iÒ¤afN33Û’-ff2SlÇÌÌ,fY™m1K†´kŸów¼ÏìûAW®Ë ÏùÌûã7PØnÀ¬~ðL«­¡¹¶U¾À ÆÉ!cÍð«(¹G` LÕÇËuC‡ËeÕ¸¥ìbë%ùÈ .sÊ9”ÝV‘K^]ëT|³Ê[gœšÆQŸÏµË‰©;3¸¨ƒ%!s_UY½:NyW,êyôÐT¿ä')«Ø¯ª¬°/Iè¶NAX+â„uðu|Pǧ{C i›ÇG»f©énE™pg„žèšu Æ&¤qŽÀXšc¡ÿÈ{(í¢m¦4«¦lô¡žùÊY ÷Øa=ŸÖ‰­ˆëXb#6‡wÇ‘Ow'I±–NÄ}÷4dR†{{¨æî˜È’^dȼ¸Þ•ù›_F-r‚céɺ°7”{Ë=ƒŒ<ÏüXÍÆøÀ}ndßÝì.¸í˜§dXz‹o:F±‡J.õ#`?–ßêù S3·'a÷ó˜Ei»“ÄÄC—üàqPœ#—ø³3SüÐ2œÕ9KMsix,S'üön75Ñ¿XSwîáX#bªdŸœQ kK>oh|÷³wçU°K7‡ÐOÜó\¤G^. @9Ôj@Ä{U”œõé» Ø„¶ºÙ¥ª¨r*8˜ ¶¾+eÀF€uøAù}J»$ax›½r!¨e!CF>dbb×X´?69Ü?7Ù,¿å=è×Hà% éDœcsY¤Å½€}4ö5ICØÈÄ»Uˆ(ˆmƒ +1Ý'ü +1ª­“õJà[åÕþ¿j²¢Æ.㡼:OÊÁ˜Éo¼Ò2æ¡‘Ï84³ð~ ½Ð!'¥…ÌLìá“4 +~}M»MÁ(rjx4 »’€ d%È{ôL”GÍ‚¶¤‡õll@!¤Ùæ8¥A„Ò—×ueÇË⊓u.çxMXò?Á£&ƒ{©nò¨ªjÝ*-d,«:\­h9\« V‚þsúã5àÏ&{k +Ûˆ¹ñoÀØ ©~Ä«¯l +è+ÂË|ÖxÞÇF‘ࣉKƒæ´Ôíùeïáo¬ò3;Ò¦nË\9}WÊǸGÖ#u\šOÃ¥8•Ì}GñŸ†ójéE-îƒÖ¥ÕÞŸ"Diza'X±§ö‡°É'&TË´0¨S¯š˜±7]p_Óôú˵ŽÔ_ýRJ®}‘”ºÓ_ò8¸ÄA‡U\¢GFJó€ð'1Ô§'à|*V×YpÓ1úÆPÓ<z ä RAØÌY‚‰ñéÈy!SYõî»9ÉÊ=R²É‡°¹¬6d.«>Z•ƒ›|Û6cŒqÅ·P^å6T·YŸút•õ‡æÊöðrM/Äo¬Ó°!µpµ¯øÉZ?:Ù©©Ø–Vr7çËÈ6e™ðh¥ªãÈÌ:¥ÔÂýY\L@MÉu-â}jáàÞ0`­C0æAàë^g¹|Ž–<üýɺ¨âpM÷Št,ñ‘…ï|æRÓ‹6¦Jë>ä]´MS +ŽWÊê] +!Ñ¥QÿÒ;È=Kì¿‚‹Ï,n’ûup©œk—²á äD—œ– 2K¾[ÆÈóÊÙp·”Vu•>î'¿ý|³§$šC÷i ¼DβÊ0Q{S¥ÏÖºro:§ I‡ŧæâcô¤cY…Ð6Ë(Z(½ç—‚l%gÀ‚ +Z¡{ž”(mι,Ê»ùßóeiŽ—%ï*J¶GM/iŒcƒXÔÃß:æóî8àOö†²?Và’Ã+”Ò*§0àŸýJ +xBIHÃ#ÛøäíQäKߢˆši]ÄÇZÌöÊ$LÏ’„æšaÃ<³¬b÷".í)ºGK¿úµcJÈ ê†lRym÷Ê Æ$lîÕ@sÐc›ÃÄ7ž%ίp]rÉ¥1ãʱ¹nا?êÖÔ¶9U"«ËªOVÄU'€Ï‚z‘k‰šæ“qJý*>d¤™8´0È@>PgASu‡¼ÿ¾ µ5}m›aekËÊ}jJ^PÇÂ,W¶† b‘d¸=9-g_NÍÞ™'&nL`#r6je ÷Æ«s‚ËÕ=¡•: í’ržKvkpû"9emùø`ŠSifÐT^ëÕVÖ—âತ*d +–¹t Ë$;sc‚žrhŠÀK¹+´RÝ^•T¡=ÀûM|NH ²¾¶aà@F,ÚY@EôÕ~c‹Ò£{? +þ¶8h¦x”Äôމ^È €ë÷.‹D>SYmÀTÓZ®lñhp}¸ ‘/ùc/ +ƒ T Ù'æªàÉ5!à•n«Ä«a.d”š¹¬ägBh­Õ¿,©tÊ8—’‡Ù_"¥®ݶcßx—y ŽÐ^< +1Ë òŒx´_ÁÃ8(©SÄ(À<ÉŽ9J’xÇöêùVò¾k™ë–Ósó´4÷³À>Ï̶ŒÞ:ghéxÌ?W¹lˆ£Ã€AŽ¢…µÈ.eÎEf±mž–á\¤¦Û'±¯ƒ€EÝ ô쀂Où±;ðú½IÄ󕎼K[Ùl#ðÀÚZ>ڛؑy¤)iËDžEJ¦gšwƧøäð—Ç:lêþL„´ïÊ2OÁ'zU€§Àó9Yc‘>®Q1'fš« +ªÊEÕû^¿²y̯ièqËYð½‰â{–~Ømsñ¥¶ý:hTºÔ<ê¨1×Ò‡~¯¢i(¨+¯ôj™ë"â¥GމôÊñaëÕRóÝrÀmªÊ*¯‚‡Öfms´tг­ÉÜ;+2n|Ôñ9G€K ½>M}GWßë‡øL_ÓêÕ‰ÅÖJÒÞ(ö ÐÀ¤0Èþn¥˜åÒTÕyuÕÍ ^»½ ù L”_K-8t¼L+õkQ±¶…Œ«9÷ÐX^çƒÆFU]4@¹†M:Ya⎗éH¿³;šõ»cŸž Ù¯e£ýàþB+UÀjç|&!Ï©a¡VÇÑÏ€.³Áïû@w*Ôà²Ô*2éØÀÂzA^³.Q31^}ãtpMòÞcä½:hÿU9ð¬ŠÆ  âNÀcàÙú4º_WÝbS‰»K”Ô㕊æ#èµZÞx^Á¿öÞ2ƒrÑ¡©ªÃ¦1¤Ž_×02ƒ¼¾.ª94sè!#‡êÓ31v:6dâñBk‚²]%.áx­²ãd«v&¼VÞ4ò .$éË*Ƕ™%‡Ë’jh¾ùxÇ ™©H› +¸6³ÉáU¾0´*®ô(9H¿ZÈôª…,Podhš_CƒíÍ¡ÞÙIÉ^hß“‚‡Û›¢%»8@¯AM¿91ru˜¤Ýɔ떾ğwús¯ú îÑs<Ž)E4(§ø4 4¿qb¤¡õ4ø àHPå.hÌ9% 3ög˜¹ûó”thÿÙÎhÎõ½±ü‡¾EjáG“¸Ì'%¥úd¤0¿”ð̦_³ÆŸuŒÜ€Ö3A59Û/#eúŒRßBM™o±ŒîRÒÖÏÛg` 7YGöÒH%=ß­àà@mu®ˆkÂ&r_ƒŒô©PÑA55ÿP/`.‹+àfA&y¤¸c’‘å™å!Üs좠–6‘ò=*z‘W#æ@ÚÆïZ䣼²r>`¼GŠŽrÍßOõ, ´þêS2a)9-¨æ  /ñiñ©^ào1Ë«%硵icÝ€SSYíÖÔ´¸Õf‚ºš6©ðÇZ*¬¡{d”ì ¨7¯¾L4T6…×—ÿª§'«щ‰ë™-&áÄL*ü¸L. hÑÉ6É­°ÂFÐRh¾Z;äP‚jJ¡_IÊ +éXrá/}È·\ÑìÒs‰v½€å>à_áq=zt|HO) %!#Ð{CecØ,ªðip¿†ZÔ’²w0{lîH<½=”u+ 'ê9DÛ4ì¡g ùîÚ£gàѬci—lc™÷KøìC-‡àW‘³lSÅЯÎ%t´m‘‰Ø&&{åàyOÁ£ +&æʸÂ#£æAk’^ žS½SÉìL+þ¸B-ýc…ÿhfâ>®°H!©À­BŹåÄÔ€Š‹qÎq`î^©kžœЕ¼;2›pHAhßÃ*_°/%§Úçø¨ ª¡Ç¯qlÓ¸Xû$>)¬æRŽ\†OEαÏÞYgŠî‡Á55"®OÉÃuL´_MÊ èÉ=µøã*—ùqUXî™Å£–ˆ€V’H 9íð:6 %‡0Ë ÿêèpÀc¥Ç«æ‘¥ª?h®hæg—ùü?×9¬?Ö˜Ä?ÖxþÚºuͺPøŒºM†MvJÙ˜¦®ãÈXÓ~¨ \2f¡CÆA,ÐræKÞz´BžU-fïƒlé5Ôõß…7„5^#< +z€ŽLDA9ÕÄ!{T”L¿–…=ZV|´ðDáU*Êk$f‡Vh¨À*1Ô`MÈÔ, ˜›• ýáÕ²†ãêá?¶ª'Ž-š™ËôÙ¤Ðÿß¼´_Ø,®þÏFy[@OÌ ¨ðC3dBÖæâ…}‰èÕÐK¶1‘>hßÃjuxµf(¸"ªš9 ¿‰Vê3bsÜz"âx­¢-´,’„Áøïè ­ðxó¹‚ w‚,U:4Š„ / ºÞ¨9Zá±B¸'$ÈQ¨ žQúx. ÇWõT‡‡à}ŽWùâIcÈÌç;•èëtéÀüܰ^Äõ—î‘Òýr&¤*«?ÖU81H*@n.Ù)}hŸ'gCûÓA>Eù” ëËE¯ZÀl +ØQäà@ŠŽ<˜&Äze mÎE Ó5Ï…9&©éžbº_j +ä‚ýYôk×òÅ‘ŸóÔ‚WÉEz¥b~P]^Ò•W‡¯Aû²} 7BRLÜ‘™X0Ùsu”}+,pŽM^PËÂø´LäÐ5÷5'¨cc•As6¦¡ÒÇ@Oþפ†õè$§ýÎû×2!ͯÆ&†µôR—Š˜×Ã}~¶þúWï‡öq]Pýçº@üœiS²‘6%eùܦ`czP[Rz~HY^q¨lè=ÖUԺ儔ýé’Ç»cy×ìs%ÏZ>eŽ]`ee‡c|\)o91ÓQ!=Ða=Ð1à^h¾W/)skÙ»”š ²|Ý‘QÈ Cli€MHrj0ñAP3'ëtü‘…'ð€Zñê*ß­U¯óø 9ǯg ý:éh™Nù¿ 0%bu2ÿÚÆ$æãî ”—»•U.ùûnêýð™J‡†OÞ”±‹7h©ASݰ‘gY(ò›>}yCÀX^Z®‚ô¿!d$fÙ¥¸XŸ–C?^¯ìò¯0n>íç¸TØxŸ—X†ö‡ÕOoV ­–Õº=Ù¬8Üà‰Áµ{AöwCs¢ày…Œt´Gˆë) O8ÔC­ôØÄ"ý¹Æfý_ —ÿq…ËjÖ­$¦ì-”> hèÅÐ +Ȭ QÀñ+šÃ«•]áÕê>7¸î€‰Kóê9øà²H j™ë<T‰ùGÐ=€Ÿ·«8h—šƒúÃû<Ųä°cCYÕ±©¬æØ,*ûhæqM,´/84> ©ýp¸ZÑz´.þÈçøÁ×€‘Í\4ÇíUqÀßà`—+ZŽ–kz åµÇºòªFȆæA¡ýK æW‘r*Þ.y¨¨Ë¸ nȽÔpY>=¤ß,ŒW+`Ú\ŒGËÆX•Ô\«† ß×0 +wç)©'`lO@ ëXèžK;^áP¡úߟ%ÆîΑ@IqKéY‡F oq9`ø<Ÿ‚ +iË«¡µµ ©¦;¼RÙ +r£x;+ ôfs¿Öxl’T—YøõxIþZ›^粡uh¿Ç¾öÐ,’ެZ=^«› AgF€Gú ¤\›œ˜éÏÉkñ÷hÙUm‹OÛ8æÕW·@9Ø£ó|àºüËaäàIrVy¹W_7à75-úŒuþe¡Àoæ1̶x\ËÂ…V€ŸÊ(yÛ³Ìl·º¦%hl…æÞŽ7jÆŽ×Ë[Ž-eBËLükâº`C¯¡¼Î¥o‘ÖjǼ¦òÆ]9gUqÑ!#q²L*81QJ汑A&úè«?ÍÚ±‘^âUSrœ@wö¦Po¬3è·‡*ìx™ÇÏ yÅoü ð›$5n=Ÿá^p ÍCû^V„bh>7 XÖ¯Ð<26Ì«b—zµ|rÀÀ%‚l† +iè0à©Ðù‹€LDõHÙ%. °- íùêÙø0ð(Kƒžd„–yÌãuøÄ"ª­^}Vid­žUu@Ïg‚žË +};2–Uû€þmM`^XàwvÇà?ÕB†SÎÆîÏRS]KÕe®Å2¦OÉù’· °9Utß½Dɵ„hñA~\á0WhÈÿl0ˆ5½ps’žl[äAëï!5£È¯ €|ŽKó+[KÉ™5çpô‘‰G÷«èùÐ:SX®OÁ'ê*ëÂ†Êæ£eIíÉ +›îRbâ =š€{PP}yuà1<šWò6t>a‘’±;‚z¾7~Ôã2¼*t ´yh¬ +èjÚ¡ýZv5ÛÿŒS@Ï!AëÛàÃþʰšŠÊ€‘Ž€æ>æ)™Npm!=)󣮮¹´¤Lè|DH+â*ê×Ö¡=N+âªCða¡~ ­0©k“y·v§8‡¼GçÒµ*†²:ÀUïÁûUY€æ.;2 øÐù¿QRéÔ´+ýÆê?`àOÕP–÷é©E)2Ò)EÅúÔÔ‚?VEeÿk‘4üa惱àRQ%ÈßÀšŒò±‰(~(›¹ìÃIƒSG/qêó¬Õƒþ½)Blx´%lb`œ ädû4)ƵHËôæ…ö4×<.Ò1GŒ (Ø%ö)JÂÁî•mÿöÄÄg†e‡@€Ü†öÈi9-Ô òã* ͹Õ\¬KŃÎ9‘ÃJ!%¬ââƒjú9;x_—”’éU1K¬KÔô­Ijüö9Ö:‹‹ +( ©Î%RªCFÎØŸ%ÅÙçD¸õ!Ü»ÍÑÒ' ? åN)%çD'äžhÄüŽ”7'ü¼;AÊu)„t·L€=ÑIÄÿY“Ôÿ±Æ½BGAûæ@%Øç¨Ð>ÌÔ€‚œþÑÄ"þ? §ÿ¯À_gÂHÉ _r ô’€Š’íW³sØXï"³àH_ß2Ô¦¾ªXNL÷) ia=!=¨Ã¦úÔ xP/„@k¢>9)ÇБð‹¡3þg·¢ø9È¿±a(‡k ¿ºLyÁ§á‘M.`°rÀêXÐÿEa=13¤¥‚lÏ#ttÄ»~½X².ðdr¡K…ˆ°Êoõ Ä!ð,h- xMI@ÏDYéîÉ&W³ xÎî1Ê:øqÝá_{Âø´©º+¼&y^¡cOÖIE€×¡Žv¨%gÍ­±i-ɉ¥¢pP7xuM?\¹šÇ1ÑJA^rƒ¬< ݦ¨¨,—Ï¡c¯ Ž×kì°‰† èh%N£Ðm^«oÓ{ÍKAse«|=hd¢FJ¡O‹Nò©læÃŒKß0´8&zëp­²;¼*ªð¨iÅ#‡4óоœ¡ºÍ¯–ˆW*šMM^¥˜0p(ào!CZJIX<pèñ2 }bâPÕœXê玶«Ç7ÊZNV¸l𽿖’ëÕ3ƒzJ¾_KΚ•k•qñ}EóÐÀpÜ h—‰…?4R +쳘7[¥wvGQO·Gðo6{ÑÝó”d÷Ú«ÒÓ+eÃÜ ´ Û tì^$';çñÑöYÜ[ë æµuŽ‘¾=AŠÙ@?óH±Ñ.).Æ êÚ-'¥Ìb#Ôí)?»³/îM‚ß— ð^:€÷Ëéù.):Â>P3KäTÛ45ñH) ý²èÐç€ä %-Ï9‹rL¡_:gѯ‚*ræG3 äSëØÌcù¬Ç9Ñ'£fž¶©¨9“Å6úó/{fhé!…t› ²ï_þô§Y òËI®¹ÒgÞ¥¢€Ì~b.o ÿò¨ËwãØ8pÿYgPÍtdHGÉóÊð öY|tH/äz }â ›¦ =èÙ˜€Ž”m—–¼ðÈI!%½ê§†GÜ›¥¥º„¤ 21õ£‘…9Ô0Šƒ*Z` ÀÞ\:tš—>Zð¡õ=5šoȃ{ý0´ï&¤16¸”ÀGõLÌÑ2w žÿf&  ¦ÚæPo\*tô±™I8†ÖËÀušÊë ŽÌå ‡+|®Wej¡<´‡Ö²—° ò!AÙÑ_4RŠBzbVPGÎó¿ì áÑ Ø~SUð’÷‡+,üÑ +“ðç:‡éRÑò€¥÷¥¬âÍ)rœWUUçÕ–UÌÓ²·FPBF6! øÊ]®%B²dÒ€–KpIÙðíIFêàÄcÀ1a åœÃGû•ظ ’r¨¤B{LWÊ›‚+åмäñjeÏó†‹ó«¸—Œœ¶7°9Rú`cñÐ>‹~­/{õFÈ$äþu:«†ö{`ßÙ§qoŒÍ%—·º1íÓĘí!ÔCç46Â9ËÈØޱô]YnÊøi»'ÿ²s÷:³n— ˆëýÈÇ®Y|L@IÉö€ºv/Ò³&ï óŠöIZâÎ þ¹sž¹7AˆÜìAݵO#¡¹Y¨ÿÁÒ;+…—V»Joì¡yñ~%!yg²ôñÖhéCç"1Þ-ÃÅyåÄdÛ41zoŒel+üÝ6AŠ ÉÙð€œ˜â[D¾rÏÁ9¦àÜ3ÈA9!É/¥dLáßYzw<ó¬Â¡Â›;9—ÆÍ=H‰‰[£ÈÇ;cØ6K\K”Tç9!$cäÿ©g¡?‚Wäšý1ÄÃ1Ìsï"-÷Ø$*;2¬á¼Kôï)Ù·@Œ·Žc_ìí›%'¸ç©i®YN¡c†[ì—sJ½RVÑÁ$ñÝþ8ú¹{sh`¢¼KÔ ¿‚ þôƒzòéy4`§’ƒö©ù$»Œ ¼ž˜ä”â Ï9ð‚çí9¨©y,3PÇ:6\ Z ók¨¹.~kùÒ­ ¡þ\7œ˜Ø¤€–œ^fb&:­¢dYÁØl^®¶cï[º‰Ï7zh…ç·‡J½?YÆôÓ+EEøøDë,%Ñ-¼~æ hµgSPpÑ@2= "œcN„ÝŸaf-·Ã¯š +ίvÁ¯š;‹/ïŽ#Ÿªð#ÃAŸ¿s-C,¤e£ÝRf~ä[hNéÈ `ÕLøñ +ŸØ–êõï”Ò2ì Ø˜Í‘¢;ãÀ£') »#¤Ø>ÌÓƒqjªg‘‡e›"DÚ&‰Qû#¨'»ƒˆû+…¿¯÷Àonucy&©)ÿkY¼·}žœ`›Â¾9ƒÎ‘bßø¤œR;øÝ’Gòêô_V>_µ á^ltï[º‹¯Zº`7÷‡PÏÍ`WW;°AŸíŽq²ôÍØ;ÚØ¥µ.Ô=Àž0¯ŒÏðÿwÎÐR·Ç ï ÐÞ*±0là³}€¼ ‡­SÈgvÀöiÀˆ;ÃÈg® +èAfŽOÊ-õCkœM@>Õ4eŸÕ7fÿâšÆÆBï¾ïÓ0€Ž¹^…âXbmã_™à¿êóÏJŧÇÈqŸ.7fŸuï°ã½R|ÒÿZÈðï̾9†z¬nÉ:cn˽x0Š|b›Â½ƒÎv… |šKÅAØgévPŽj +ô9"k=ˆ»Ë­%WÖ»‘w,ƒ”hŸ\@*)¹ŽYÔ —Ò’s|ОÛ!ä£.Ôƒ½a|œ} +óÆ+eíÏrÎÑÒ@í¿¶¢ŸŒ lõ•Þ26ü¦®Êûm³‡¹ÑÍŽYmÃ?°´clt`¬µ om÷_¬¶!oí àž[GH‘V+< À_¦è©ÖqZÂþáõf_Éí宜K3’دgøÉ_[Šonõ!ž9@O?ˆÞÀ?ßìÇ=YmÏ»°Ó›þ«±)ú‡­¾¢çöY^éö+Ó½È+µÏ1²·ñ¯ &Üî-ºéžD½öL¡ß®¶fœÛD=Ý"¾;#ÇÛ'I±»E7¬#°{ö øCûⱩ»ôî¬(é«íÞ’ç'j>ª%K_Þ•íÁÂ›Ö ä ë$ê¹ ôµ}Šë˜&Æï#{æÏb%÷`FXbé£D¬u’_®´¡o›š +Ï[ºà×m£øH÷,5}oû2¨à`ýy(ñ/†„>ÚŸµ†y..¤eb< +jžK +r›Œ‡õŸ_ëÉ¿jjÎ9·ÜXpÉÜRü»¹öûFúþ3ë1Ê3GOwŒSã÷±OöÑ—[s~û»¡.ÿÜÎþUP-¤9¥ø>tÞp™sóvgvg½»äþJ{ÑM}ÚÏÌ7ÿÔ×eŸß ¼^ï,º²Õ¿­kÈ>'¤|'¤k¬/þm³ûÌÔNx>Ã/üq–Ÿý­¢"ÿ¬ øŒm†s0Šya#¼×ðts÷twœ”¸ô>óÈ’^9-oûjò¸iô«õž¢kʪŒõõ¹¿¬÷ ï/Uä_54!^d\0ŽŒÜíaÌSs{ñ•å÷ygM 9g“øè ‚Qdî‚E8&p¯¬¦Æ:Í)\ïEmÆ?35ç_XÄ5I‰üûJcîyu}þÝ.|äéâ'˸ëDÞíýÑ¢[»£Å ¶²/Ê+â¾Ýìɻ쓒3Ažw)¹h«”]¼5BŽ\i-¹¾Ù]rk½£à²¼,锾.óÌÎò±õdTòÄ6‰I +hÐgµ |Jbºs±ôùÎ`Þ•µÖ´Ÿu §vGJjšón8¦)!Ÿæ˜£¤îô][ëL?«ª;5Dyò÷¨ëŸ 0ã¾é%$žZmE=Üêÿ04_0Ö·´£oëŠ/Îðb¾!¾úbµvß>AO·O²sö'X©–Ü£­~Ä=MmÖŠŠÌÓ«í%7ûI¯?]à¦^pÒããŒK/ñÙJö¾±¡àÜNgÎo–™ç÷ºà÷öúPïó~µO +QžÅ*áÞ83mµ vU_“ü­¾"ñCeÊ)Cuò©µÎüKÓ‚äÓš:Ä K=ÂÜ\|i«·øÆNñÍÞâkú¦Â 2qÆw††ÜßvGЯ6z/|ó²sŠUh ÆíŒà^‚>{dé.¹i,©©M< ú;yw„™ºÞGyk(Çî s¶(+m…uµ9?éj³ÏH+“žÆ|o"§ìz:G=ÛB>Ülké-¼an/¸¢iHùYY÷ãJ{ÚyÇ,::¬å3Ü‹ìâ½qÜ;ès-ÌME7{Joï@Ùƒºzåênæµ{‚oµ¹7€y²Ý[zÇÜ’{~ø‰¬,ùû|„u^€Ü›åØ”\,”-Ý2lÌàÉEQê× +IîiuUæO2Qü·º†ü íØ¨S >︧íàÞh*sÎLRã?ÀEÚ‹þt˜•òÝrþùÆñ¾±è7Ç4)Ö6‰pMCŸýRzwAù•¬<ùGm]ι)^ô) É^)·?B·MP6zJnj²Z¤|µÈOûZZžýc"âSìôóëݘWÎivîþ89n½vm½hnèφ¬³æŽ‚«à~~pO0 +w&% }áÅÖ(-Ù-«¬Ü¥§©k³$¿ûû)úó%/¿ ¼:ûV»rßìŽfß]à¿ú—©9íÏêk¸§è¾kõ* #¦†<œc†–â‘ HNŸ¼ÜJzlnAÞ4ÈýUßù‹¥³è–g–’"­Í½uï»ÿ66d>©Ä‚ånÄëiQÌ÷[CÙ—v³.š›OY:²/z©-øç?ØF°™!À›;c¸WëÝE×4õI§Õuqß-‰b¿–Wdži@>ÿ²6çî?wúÐoM—fxqŸÓã?`$}¶(Ìüf‚ùùæåg“âø¯Ñoù›T˜zË +jÚЊ»§®Í8£¨H9%-Kùv–“ðå$%êŸóÂÌ3]¤Ä_Ú‹_±=D‹âåþ ãS}MÚé®â ¼¸oGpO>Ñ–E}enÇ¿VVàž¯·Ñ¢ÓÜ oO·{`×ךóϯ6]RWfý¤,Ë8mnÆ>šaÃ~ÓWÂ!}|léFß;¢Å­ubï›[wÍí°û3‚_èS=æån÷ÒãLP7viQ;ÃÄ×;CèG›ý%·6z‹¯›[³~STÇŸ–W$ÿ`j¡>3¶’žlö_®u n +Ï› +/*krÏΉs~iCGþs€óÕf?æíö09RW—ÿËRYÆ©)NÒW‹e)?ªjR2¼O=·;ZòhT}zˆqÚ1ÃC€LÓ÷RV¥žÒÔeýôàÜ$;ò‹AÆ«¯·ÿ1ÅK8emõßÚè¾×Wtk¥-ç*ðÚ+›=Ñg䯾ÙCFÙe´BÛ 9qx®qÅÒŽ¹g|¿¼Ú†¸òå-YUæ9-Ÿ@´ÖYtwk€¡o.½¦¨Ê?£k,¾´ÚKŒØ`¦CœµT–ðõFò¡¾ vEÿ0õîµö}þuUUÞ¹Õð«È3ÚKîÏ r~SV_Ûè£ÆkªŠÎ¯vkÐ×çY§´µç–[з—$yhq×?ÑÔîÄGL°¾%Gük‰ÿ•¶:ûŒñCᕃ‰Ò'^9.u±.éb;îñ'Êú¢k;£”åNjä|YÞo#ä„Gˆ‰§æX±_’žÿ{£¯èÙÆPîõý1L”_YQudà 6º2/Îq^|º xû…¹9õ'sCÚéå¦ü_Ííˆ[ Uy·fąלs"‚_ÆE¹æðQ{}°[°[–Nø5Sk.àòÒׯNLÆ”8㊶©è–ONÎ,r{½%ë—ö¼ßµUY— ï‹îúæ„4¯¬ŒiâäîŒ +7 /-}°¦y4ÕYg” §4•‰ß¹¨Ù«ý°ÛÆæÒ›úzò3y⊮vÁÔXrÙôwoPœ÷Kö£ŸÿkŠ•pÏ9Í/1¶cL žÿ}Zðôï3¼·ÿš F~fn€]ž­Î¿P{ý_ȇ¿üí`Œž6ÍMùjœòö“yNԧʲÄ/§ŸS_¹ÞUtG{ú9úå$ðè#•˜µ?x¼ÖUø»¶6û§iVÒ=˜7Ÿ,ŠÒäeœÎ{þû/ ².o`ß.”gœUTd]RU¤Ÿé%¼þ®ÿi/ùý¿V:SÏ÷ R.õÐb~Þ&Dm ·”ܽqÃØœ}vAûÅöÑÿ´ÃnümAuú1î‡vbÒ%ÐKq«íè«m¥×·úÑ6zQ÷u°+½Ø'ÿèE<ü°öUsâ.ðÙW{£ÔÔÍ~›ÝaüKhN- ÅÇåøSGú¥YnÂÏ»#BØö'cµûT×T|y¹¥øÚf7êáz'æá´$å)þÊ?¨qmcÔD™øíçÊŠèSÚºŒsã”w_©Do¿ß鎿±Ù™öhЏܗÅ6EI·layR÷vi˜’ðY?!ê³ìįl#ÈǶY\äDEÜoÔÄ ÿ´ôÒSÕèûs¢ÔïæE1ßn÷”<ÚêC=26\06æ_Xí(¹mhÝ3¶”ìCsö9sKöùazÌ—U9÷þgŠŸðs)æÇflÌéM 3ZiÔ5EçTÕ™g&Yq_Õ<û3þÎ) +®4ã~ÃGÝþ¸¬£ÄDç45Õ rËþDñCcKÔ·Šò—ŸKÅ_/w•çÂF/,bµµ;€~aiÏÿm³ýPó¾ø'éî'õEovÍòÀ[Ò Çj«“~4Ô¦ŸÙê…Ýr-`£¶Æ‘/ÊKž|IH¸ú‰¡özp´¾6ïÜr}ö/Æú”ÓSŒW_ZÇI1ÎY>j’瘠ögÅxË îȨ×ÕY?-òc¿ÐUÅ}½Ö–ñ«u‰”2Q‘𣮉¿7ôž½ÞÃOÕ5]XªÌ83%ÈþuF;ßOM¾¸ÚŠËò-T VºiQʆԟT ‰§õM¿˜›Šßè$>Yª.ü­ªøù¿Ú`¯«°ò•Õyg5•YgLïó“ +ãþ­¯ÊøÉÒ^|ÝÒ‡zPVúò3VâýëjQ Gj1gg¤äÁjüÚzðYÉÕy^ÊwêêÂó½¬Ôïß]?ý_ôØßWú1½´˜/›‹ïÿ÷8áõ? oÿùþøc”'Ÿo”<æÁŸ~Ë;ùÙÁ!ÝÒ‡¼ghÎúY]ŸyZû>笼2ó—YvÜ7KüÄŸ6»Ñ/*KÞ|Ù„ŠþKKV׿_¾uz0—¹µà¢¼*õ‡̃OgÏN­tæÞêgFü´7€O=Ô–×Øg(iÛÀ›@æyêšF>÷Ì!_îÝUÕç_Z¬C?›’äÝÜeå[z /ÖÚá·vúPw1OM€ÑæøI§V> žïÐ’–ø1_mt"^lÒÓÖ:0/í#˜Èÿhè%•Ô|ëxÉSckê¯ÞÒò›¾uk¥ ÷t†Ÿ}z’™ú©¡à7çú•s ·Ðv™™|õŸË-”HyUéqz¿„ §×[ ¯‚~~méÅ¿vLìã„uCæc[Á½ƒ aéz3z½ûp­~w­«p<ò¹´:ëöJòu#é·Jü¹­arô¼$û— fÒ—Óœ„¯&YIßQSÎ ³3nh;Q¯à1·?{öë·ÿ§ñ懀œ´CŸ xÎÜžý«©)á´ñ}â¹µv1f¨é´¬ÇŸ¥=þõocâ¼· %ÉÊbPUDƒ>ŠþzŽûôóIúƒ/7{óZg±Œ¨dYWCj>)¨æàÆQšê´Óú†œó3ü„ïh‘¿ý­­äÕÚFÄËùòÜë®%Ö:†Ûš`'Dî"_*ê2~ý€yùyáí©õa\Üly!È7°ëûÃÔTç>í`ªäÍzoÑuíûÔ_4ï3ÎÙfYź>Ì }GÉ}ë$+{o˜š´ÑUt}§?ÿÚÁhñÝ}mõ]%OwG$ûLÄÒ/ÈÔ6`oNòÒOwc#þ¥©È=ë§Ä„U"¦_^Îßö†…°•nÂsckîyCCÚRaÖ÷㌸Ϻ/ÿÇÜ»·5LI’UýºÚF‹´tÒßu¡þÏ0éõçÊÊÌŸTuy€û³O›[Q“|„w‰ÞìEܳŽ1²öÆX9¦fØuEÖóüôï§XißN02έ4áÞm••êšI/TÕÅ·Uå9ge’äoÔißíöÂîZgèéŠfÔKu3ü©k‹Ú½4÷ îYÆ()û ìRóöé’8ó;…$ûÇ•è;²òôUU™—¶Iº&ä­µ6ìÃÝAÒÛÝAÜ‹~Ü˽!z‘gžM°-°K$%O\õòÈPÑàX¢æì‚Ìë˜&ÆÙ§ðÎYB”{Ž’l`¤«›ÐÏæÊò.Û§TYMÞÅAÒ³J%o¾ÜèK;7-~óo¹(ùÔf;æÉðAaòÕÏ6»°A•ê“3ò]‹„øƒ ØKGòMùÓOWÚ2/d +`ø\E]Ñ…!J¤¦!ÿÜ?é«iö»/:‰¾ì$?ùVQ›ô‹¡)÷¼©—”X{ñí+õ–{V@qNÐS€Æ¦Z'P›}i7,9WµµÉ߯¶ÝÞä¥×¡c¾›«)xh›¥¦îŽ¢ŸkÞç^[íȾ¹5¸Þ{M]›rFÛ<ÈŠûNYÝ܉{¶ÑOx» ²…}†]¼:„}=W™wuœŸqôaž}Ž™{0Í̶ÏóJ×Á³\ï,¼²3XzèÓE}KÑ ukÑmykÁ›µ|Æ(/þ‚²<íÌfgñ£ÝÁÒWöiDœg‘óJIi»ã%G˜o>_m/}åYdÃÆño·ú‘÷Ë“¾Y§žZ§~?%ˆ:·9Püv¡&÷±$ïÉg+ƒÄÎ0â•ðïzkÑU™$þ»AÔó¿’"¿U5ä\³‚Þåg=ýW>ô“€á’“ò,ýéW¶‡)ñû#¼"÷Œˆèž`6†0Ï·FðѶ9!j{»×_zÏÐu^]•úк'Aë\`ænŽQcôí”'®…š2Ǽ˜´7аCgm‡ +︖Š^ØfJžl]ô*Ê8Û ÷Ú˜o ïIO–?`ïëêò.Bs.[½È‡º¦‚ß—;÷Ìý´è©Ú¢}ÄøÏõ5ð»äȽaRÄÖ æùz_áý­Á|0žÙ õé§wûÉIÛ£‚bàã—Åig—Ägåâôöº1¯ãìüåNìU=ìîÞ°/mÄ=nF<ù¤­ôÞßåeñ?n ;æXyÎyðZä”Lã|J6Îo¨¨³ÉËy›ãôdc+ú‘ùúž¥ sÏÜ„¸nbçn0Ò¦ùñßè³.îŽPbÁu__’Ä~;ÇKþ^VYp~¹ƒüÔT–{^D h<·’Gv.Õ×{åå"SW飅ò4PC)ßÉ%_¬7¯EÜ9˜áW{ño”ï3ά÷å_‡Ö©@½<ؤ'XGy¹3¢ì‹Sì¤ËŽ1Á1ÏA®];™Ù +jï`ÿÆ5Š|昦€Ú%ÄYú¡ÏuÂojÉ»î™g•j@P¯(yñíL9,Å7_ÆZm)¸¨¯OúaAøæËqöÓ¯×{r¯9&‘¯“Ô´•~bdâÙ׳µyöEf‘²!ï÷zÄÓâ¸ßtÍ™— R/X'°ïT­…F…qgf)…@_ö’6Ã{ùírgÞåõá’‡ë%÷÷Ç1;Ãäxð\~_í¦¥¹¥UâIf¦±~k¥£äΔ0áçZÄ—»è7µ˜§è&åÂ#¯|­ë.yç–1á¤Ø­Ü‹­aÌ‹e¥§? Ð^~çÙ|¶®øe?)êûí>\´uªŒ¸7UNÚ›âºä ¸GMC8Ôì#ß&»i‘?hê2n¸ç¸8ë¬àžçÀ½àýCjJ¾mþbw´èqXÏã¬Uõ»äÔÂÍ‘‚»~uM³_UYåY‘öÇ© Û@ÇE­M’ãš)¯¿×–—ÞsUâm£üBÇ3Û+¥lÂîX·Ç¹ÙÐÙ…Ý9Zöz/üÎnéý喜˙×ÝK¸Dû -Ó£àaw¦ØYëƒìË8WÕ„¹ ¸ûÁvúájKáï çÏÛK«ÚщQ_÷‘“Ooö +rwGùyš¦’ë“ÂÄïÆ¹ÑߨjS.®µå?ÜêC>wL32VHï”ÍE—œs|Äî(.B×”øóõÙ—“¼˜ï:ðOÿÑ…öùj-u²ÿð=2ò³Å²ü{žy&& ¢æû¤Ô\ë.f¹+ÿŠ©3åWèZjVéî$9Á:%DØ—*y–!fм"ëÌíÝ眸³“ܨïÛ±÷>å¼:¥j-½ÓJün‚ûÓf/.vo˜’Ææ]ä!sÌâñÂ{»sè‡TÂpÌ—37G89æNBÈÑO6Úòoøf𱎠Bôz7òáf?êõö1Ò:ɃíŒÑ⥵ ?hšJïlÒâ·G)ÑÎy>Â-—pæ¹¥ëc¸wVeM‹MÑ4h›ã",Ý¥·Õï³Îʪ3Îèš‹nZ§é™À'sªRÎN âNÙ¦i°½1f–¥ñHÛö‹¡9÷òú%zc˜•y0YNÞffšKïnöã@Ÿ¥ÚfHIÐÃJgþõ¥ªä_§DÑßìLà"K<ÜÞ,³Pß…|j›S¬sôö(!ÊÜ‘w£§è¦¥¯àÖî 6Ê®dÂväm `^Ù'p ÎL¤¥·àÁ¼$îô0ãÕlÀµéç< |œG^)9˜/gXg«9 VQûÔ„õÄMuCîUy3ìÑò)ÚÔMˆD’½ bÊjò¶¡u}sˆq0GLÞŸ!$ïLáã÷å².R½ªÊ§´ŒaŸ"íÓ¼â!fÒF=ÒØMyõ˜ðÓ}×Öß@Ýîç.7“­¶žnvR"w‡hɶy!r_ÆÇë@æ|úÈ5Í+=ãä['90ç‚{0ËÎ;˜¡¤l _mR#7‡yéð±ÿ––ÿ¾ÖJz²×K‹;dgï ŠÌ]Œeìâj)j{²œ`ì§Å.Uý:_YxÓÔFˆ¶Žñ0AYw ié*¸clÉøÕØ^|Ó>#ÁoôbŸiêÒ~¡Çþ8ÅN?· οohÄ€ÌTEæ#¯/ŒúÒÐHÊ=ÒVÖAëEû#Åw6Šo­ ¢"ö&H)~9«Ä½@NÓ6¥]Xë`'íL7M=œd©$ï ãß÷#¿cÄ~?ÅMý]ׄx«ü@|!,Šø¶¦àÕW!E9ß>CZ¶= +{¸ÜUxsk +c•2PV)»7Í+ÜäçCuàœ ?´?Ú*¼khL8­ªþÑ6NJw/Tq¬(À€ÖzéÎyðk>rg‚·3CŒÝ™#ÅÛl¤UWÛ±-mhÞža¶Æè©«½¨g›¸(Û,³ú ä­ì«õ~Ä#K/6µ fªëJ®éë +Λ‹ïlö²=R˶ÀEº1Q •içvÆ™™ee¥W]^¶;ÛD<еæßX¬I¾¨mÍzâZbÀà{{Sô\eSþEŸ²ªvxêr;æ¡´,ëÌvOéÓ½\†cOqÊE4Û,·ô{s†S¼Ñ]|gQûå7úë)AÌϪ†Ô«S¥±Ðg¼Au¿9BO·ÎÔòögA¿Ž3SÌ­¥×Æ(ï>]G½Òweg„ íÅ·Nðà;ýÌÄÍV*`óè•Ø uKÖUkƵI\ôêµÐÔ‹-ðÊ*=ºšÖ]¨GÊ8[³Ì|§ŠÏ +%UXh&Åá/­+Lw™Ê?l=YïZ?ŠŽÛš@ÆlO²ög(~o“1‘ªö‚Ë»³„¸íR‚c¾V´7UÍØæê?àTüešŽúYÆ'_‘ñ)ׯi˜+ˆ¼ïÛ‹ó¾ÃÁ~0W±#¶:9 †ôƒ•AÌ3c/âîö<çjáþLÕ2*›ûØñ¦Ê3c3íÑj'ÂÜÌ}+¯¤Ü–ä¼þ[/&ó…„rc»S”±ÝÉKÒÔӟͲÑçMÒ ûh e}TR2߀½«ù@~m¯«_äæoÞqÏKHê÷ùç•åIßZZ ®ÚF8™Ëí¢TE9ùÆr=󉱖óróƒ(ÕÖW‰Øl-ËÑ”UDN¨gä •IÞî€ o³óø`„‘fŸÓl‹-ƒ¶ù*®u†•¯k*º6/NùÑÜ*N_ék$š;*²—Y/-ùËÍâäåFΛvA‚\ë }®ÿA+¦½;,+YëA=Zí)¾c[$f¸ä,¦GW×çÖÕuÛdbº²©à¦öìÈ ‰¶yBߌºa¨/øu£vc·ùÒ:LÊpNpò÷ú%ùêΓ•æ²ûPÍ>T…ßêâ$Êʳ<˜âÑ +N]mÏæ’„º:ÍɵL³2vçø%Ž%Ù»$¦Øgø¥–«õ¶’ëö1J¬w^€Þ›‘)Ÿv¡Ó¿ÖVÒ"ÜÃ-uî©2ª¥§ô¹½ðþî>ß«©ióhjšÝªŠ²ƒY|–‘ëVH$ìUñˆ»“%¯,E­ùWVz`·Öúˆ±u°˜S-ˆ´ŸebÒõ­n‘{º¶ì`¸»ÚL~¹ÝIrŒVW:xpyeÑ•íbÌî1Æ>Ç*t.qàŽ9dÜ\ùëÇy¯¾2w¡ž:k+ ÙIÿsk¥¿ocðz­òÆÜF}·((¾¼È+þ]SO~£nÄÝÑ~È¿¬zŸqYß–{Ï£ÿÿ8úê·6ÒîïÔvÛݺ·ÔZê”âîîww#ÁÝÝq'Á’@”kw÷Ùç{½ÿÈ;y~˜+rÁÌ=÷}ÎG23ç°?W꥿–ªL"tÆloEжšÏtÍ4‰öª:ö橘µ1p¸².ó‘¡-ëÑŽ}0ËæîÏ +ê·§Xe}øø¿ôõ]?µ ÝGúš&ëdYäLKä£ùîÔ§Û +xôÞ, ³Ò‡ ^ìa$I«» ¥WZQ¹çx¹ ¿##¿Ÿ( ør,õÕ[Ð×G@÷¯]8}äsî7ÐÇ»WŽaã>œ3r}6û‘QÍ1)?˜³‚˜¥ì@¾7âÞLU#ŸOr ÷‡hÈ»íÈÒËü‚ô?àÀ> Ñ?Ž1c£ŽU§§üÆLŽ:MŒ} +xpüä6(ï«ß±vpúµ¥vZ‚eŒÞWQ×'¹C7.HäòLkU¦ªŠ÷»}tÿÒPÈã{Ç)I¡‘ó¨ë AovgÉ(§5ˈÓíoeÕ9Ï7Æ%»giˆš6Á(»%¦ƒï«¸Ð.ì“‚ yÝT{žšüã$<"àTÔ‹§Ça!_ÎࢾžÆ„~þm¶ã’“‘váг©ëS˜Ø  §W/‚¾?¾sœ÷ãj;*áñ++`¹šåRRÊ*&bÈç­1rêæ.Ö¡dÀ=zΦ$fÍv”ø+¸ùwtUˆ÷ZúseNÂÙ¼OïŽýt q +öù&.è 1!ì40î“ÁoKyûò4,:ø|UvÌé~|¼]ÉÁÙT|òÆ3w¥4Û‘÷iu®o…¾ë!„èÛ§øe[ gÛѨ@¬\äf'ž&%GÿáÿôÄÍ?ݶ«gOƒ^¹ÊùæÿÛ8§ðûÑ,·áï:Ï¡B¦/ôe¼Õ4Ǿ؟£]~¥Y`É(>nGŠŽu©ÉEV9¼9FÍ]$HªÁ!ü’ø{´”ˆs‚ìØ?‘ß.ä|}}–—ysœ]ÂJ»·Ü‡HþµÌªù¿ÞÀÂ#°O[‰Å—ùœÓäü¬“ùa ×~ '7/î^¼zvýèÁõK ?Nÿºsþ(Ø÷!(;àí±æò”‹j~æÝ= !×®'†Óƒôxi+'|¨ÿ¢‘}–S”zšš•|²8âû±~€X½ Jô÷ez +xrä{õ<(òå#Ðûgw@gOŸ…>bùÛócÂ܈?§aoÔueO&E·T•ðgsmôi-ãk;—–_ü$1éXfP(ñýGЗ‡A.ž}¸qôãÁ]Ð;Ÿ« Ëg@—~?Œû,è½ÏM°Ž'DÔ‚»óíÈË”ØåQ!\ÙÆŠ^7#¡·[P°› °ò äô¤“¹_ŽÅ¾~Jû”óþ-(öå ÿ­› GÀ|\»pôÛ‰ —ÎyçÄʉüMY y½.†…YÔ°¸…¢7ÓÈÉ…[rJ×Gbüêá%çñ©q'ÁáAÇÀÁ_AÐo 0ß{ W·¯‚^Þ¼ºtúÐÅßO‚]9 ºœOðsŸSµå¡Wu…ÏM“°•Ñ’÷¦ TÄb;øÍ|êó8ò¸‹Pv¥º<ï,<6ædiH (óÓ+Pô˧ ÿ›W@O/_ù^¹zté"èò‚NŸ<þ?œ{åÌû›['d¼Ü/5‡ºoäW:µ¼GÏ!þ£bGŒOYêÇ„*êÑoa×à‘a¿!Ã"§¿}ò¿v ôüÊePÀ½{ Ð'O€y¿ºwá"È÷ú ÐÕ?ÿ<~t8^â%=ⲺýquˆW°5Ñ*´)ªù;R.be”š"«?ëgûÀ©1É¡Àœ ÷ó½¸qôáŽ(ðÁÐm`çOÝŽqÿÊuÐÙS¿ƒü®^ãç?ÔÔäãŒüç ý„X}'曼ýJYCþ¨l tÒÊï6` 7ª˜kðœœ3¯ýA¾/@Ÿ?=¸rt8O_3Ÿ_¿ +ò¹|tî·3 Ÿ³Aßî?Uüˆû³±<û™¾¼ÜKŠYî£'zyÙcUäO]¨OeYæAyáY¬â*=íTèëW Ç7oqöúæ5з‡O@O®ù€n]¸ º ¬—ÏÕ›vÜ…¿z"gDŸ’p!ÍRZ¾YNÉ[€ε¾´H©ËÌ\U-f¸†ö¡ +‰ºYu"è•/èãû XÿW ·os|tþ·ß@¯ú€®œ»zvÃùöÓñ¨×oNVæÅ]ŸoC…îˆIÙë#èðÕtð\ò³¡ÿm€ŽxÐEEÝã—\È 9–øù#(îí[Pä«× >·AçNžÝúã`>n€Þ=ô]>wÀ‹  Pß§Ç2¾¸0ÂÈô·Ë(¥n‡¶;Ëa¸¦™»šV¾6Ž‹•Ö–=–ÔaÞTAK®üø~2åÝP‚ÿK —o‚®¹|å÷Ó@Þæý:èÊŸç@7€q?¿utïÚ-¯Ï}PÎ÷àßЉ‘WUµ¸/K}¬TÓDÏ*¯Îw"]¤Pm'.¨•Xr ’z2øåcÐËÛ7Aïï?ùó{åÌŸ@^\=rñ™?þ·ÿ7Àúßyò½}”t¼ª þD7$öõ~DÔÏn•kšŠØÑr‰kâJü–²¦zIăsà¸ÅÙ§¡±‘'¢ý_‹zù˜›· ÿ»÷@žú tûì9ื@ÏîÜ=Ö2áÝçcČԋBHÚÓ™ŽŠ@MC†v‘4RMðRßVóBºñ ß6$ávŽñT¡Ü‡'•/ +ËþžX|‰˜]~©ŸV-®î©0v·×Çh›âJ¬ ð|6]µÐ¢ª,I+‘²~Vâx5` Šôª‹N}-„@}ªÁÈÛ (–/9ãS]r© *û,&5ý:!î%)ɧ{«¬¥¥.`c—ºË^¯¢BÍŠJê¦LHY¯ÆÎŽ44µ`>4ñb $çÎX0¦]XÆ„c³Ë®VÄe)I?õÉÏôôÆ% –o€î^¾ŠxŠœw»†~¯©ç¥Îu’#7'˜ùf1išäÃgXy|hÒvAÌ,ä‹ õC“îW…§<$!®'Æžüðäè€>|{è +zõáx臀ã)!ÉÇ âsO3ËK 1¡¯æÚðßmŠJ’y’Y`—2a5¯joZPãÔ +y&e5K=TS2P×Ëâ獵ÿñýýû!~oA¡ï~€üîû.ýyõîû)hfùMRÊ·›Aý8Ρ.ôÖP,’úÚõqVw3O±Á–)vÅê(¿Ü8X‡R´scGªˆoëÈð{¨¢Ò«9 §’#޾þäø= v¯€.ž9zv×”{‘T|³ÀŽYª¢Yd´ +‹„”éÒs™žùúñ½a«{Nи®`@Õý¸py/-º‹AxÔ„Á>`]Ågd^B¤¥](KJ¾øãÃ×ß?={ +ÿ ý5èx\`ø©Ð_ޤ¤œ¡€K|¦êÁËlȶ¨šº-®Ä™%Ì’õQZ¦¶öÊÐMŽYš¬ÆKÚØñÕè⛈”¨3±_ÞŸÎ þšw>%4àÌëG÷Aïû̌;!=&î)¯ä +ÒÅļWÖÃ>Š9×ç:Ë÷gùu{ó,. ³w”\¬YS-X‘UQÄ­ÔïÕ8è5dVæïáoÞ õ Êþʈ;ùåë©×n߇g'©B•?`‘BfúùÐ-1æR36=“·)ojÚÌÚdyi¼3×C‰Ð6cÞp!Ï:qÅÛZ kÌõáFâöT5Ù*ÒÍrKÄ*¶©„,Ût«Üj¨j0«XðM ³Ì¤àaV¤lÈ’Œ ™Ÿ¬BÍÖC4íô0]+na¼ƒ¿4Ò+XídÏ 4@ûêÊ7úÈÑ) âòË®©¤íÈ(yÛ"F¹}²®Ê.é5+êj×$<Ô†LH[ °‹Ýôøån~Ö|o]‰²»±H=ÔÇ•õôÆêãGùuÁŠ_uYÁÅfìþT¥ ee¨k“5T9e uNy5×¥b¡wõ,Œ[Ç£;U•Œ¥jòL>|eˆ™¿1.€Ì +åíÕÉ²ÎÆ\i[SúD]s”¸¶6b’Ïú2@B?T4Õ¦‰ë{8¬·½BAØT}ÙŠ´Šd‘qà)£xs‚’ºÔ ygæþ5_7¶«eG¡K"L¼zˆ™Ü_Ïø:ÔX>ÜÒ’9ÖÚœY‡Gú´1ê¾ö Ú£ºÜ7Êfzð|mÉò7g[‚I¶ª)¥C¥À¦¯i´êêÛwt½»ÆšöCÀºuäbÓ!iy!i®x)i#… 4Т)géåå·»„ ±-ö—jþ·6ûE[øz²‰´8Ö̳¨z仳u½Nƒ°vw¾a̽P;è4ê¼×&¬Z:dSNÉY!Dkþ“4³Ã嬯þª¢Ù±®*Ý@u©²‹¢ 'M6QúÜÅEúÊ:Ûa“­•1êNúâT%Ò¡ã1þžåñÿža bf<×ÿl×ðÈ&11ßý¸5 úµQ3áÒ·Iv§ë:mêêJ“¼’¸ hƒÍq\Œ¤¶ä]]É÷ »bÒ©b·&pIf*rkn•¹*%e:U Ø®AX½­`V8@ÞéZEžé–‰ýéºvϬ°Æ¤d·¤Äô¥!XÀÚ*reh…¢ÃéJžKUÅuÊëØ¥{´ø·ŽX²%Å$nËi%NU}ÓÎd ×!ãáLrbmŠƒ0‰«è•€n ¤ZñQë}ØÐ¥~bÔÆD{Ø–G«`ã5èµ^ñJ9Î*âT¸•|ÚŽØÛC¬²öpºE¼¯¯ïq(ép‡šV¶#¥˜E¬’ÍV¾KUIu©L«‚ƒv¨««-ÒZÞŽ¼–¿%a–®Œa#VÇ0¦)bÊÖ8.Þ"e•{YÉó‚<«´gʵP3`ÓQ@¬¦YåÄ›¹1˜çg—!ŽæøB›ŠƒµÈ¸Dçtu‹ÕX׳¢®o]Sµt¯*Ú»WeµôÙAbÄÜ0/oYTØ”1 +Ü*ršÇ<4pÿ«‘¹ÁªôÖA´*‰¹6 ã˜ԘקּŽóÖ#Ú׋ T¸CI-2‰èy’jègVqôó4gYÞ9l˜ª¬˜—‘³æÄÔ‚e1²«÷Ö­®òÌwÔ˜<÷LeëÞ|«Þ3WÝaQP +ÍÅðÝ¥ÖVEÛU\ÌÆ8)m±ü~GF;uµ­K}Ȇ–¼§K ý*bYJ…o)¹ÔMµ€ÞËM{27Œ…œ4ê1 +›< +XÌ®¸<Ø**ÿ¾> ¶‰I™% ¶+g‚f¸L—žÙ)ý´ÑŸûj±=ù޾.剔zs¹3ëë®NPkæPEu%A[2Ö³Ð$ßÓ „N ± ¶Xn`=´4ˆCŽO[Êó_ïÏ~æÖR «#¤‚Å.XÐÎ8>Õ­§!]‹löÞª°{QÐdÑ‹ÄI¾ ÃÈ +×lM×ú9Ï: ;ÔJ ÞšÍ4„C[ëÍüº9PèÖJ,bjÑtcö]MUâ•ÅŽ¬'N%*É&…§L“Ñ{3U­Æ!Dê(/ÒÇ"C×kFm|ÚŽ°&B&ÌB£v”„н9NÍÁj­È¤VwÓ}L“ÈÂ_sŽUŠKÝU³ì2TìæXч™ÖÄG[¢¢°ƒ%&Ç ðÛŽ’Q±k¬jqÍÔuo«9‹—²3YñÍ6Yöik¤ð­Y‰ø{ßj“1¡óôìõjξº¶ùÐÀ¦xûÚ&Á[ýð/K=%þ +~úUC}É Ó(%Ù<Œ Û¡#×*>l”¼wL""Žøe ý³ÌæÎò«ÝZ:ì'°v­s¬Â§Ûø §Š\°>†ˆZí+ ý5'löL×4Ú¤\„}’”±Õ[ñÎ1†Š:T±16 ¡hƆ´c’onô@"êyl—‚ß3Š€X-°ˆ0™69ìTsɛҪ’t«©"î­EÄal˸H«›l•Ã#lrD´YTl+ø¶-Ŧ®ŠÈé³=˜1—º7S7à­Ó¾-aBv& )–1pÀJwÎó­ÑœW66MÛZôf¾âQÕ¶x5 KÉÃ[e´B«‚œkšD„ÚdèoÚ5à;I}¾/Ûi{:w®²þç"‹µoÀæp…Ó¤²åîÒ×v q4[7`U2‘›“Ì"›FÈÛQ +Ù9Ägý¡‘C÷òèŽ çíOàíÙm•ãRœl¦GC*=œ®nÞ×ãV"׊>L7ú™G11Ó Œ·̾ž¿§#•x¯ó™Eø´}#›ükžË7‰Á‘f2eo¹Aè)±]E*ßÏ{gž*ýá6à‹ö牸ƒ%ß$¡¬Óöf*m8‚÷¾‹}-‡è0pWLöh‘©»Z\ö %ᦈ‘ýÊæ½/@„M¶H q:u[N²ªÐñžiRéÞlew½f—äÔp)‡FùÐH*Û×¢Ó—:Sîâ_ŸVò#íkIåN¿1Œ·I½½nÈ‘bš_î‡Îö¢‚ׯá!Ðm)>Çcdâ\b¡K_Yíœnó,Tuy–ø ‹Àë,¿Æ¦aaûQÁ1×Ûuk½§å1v5<ú®ž‰÷íGËÕã?W¹uN-¹Ä¡&—ìÍ·L;Œõ}›2d[FÎÿg™Búï2 ÷ße*åÿVxÍÿ·Â©3KidèÍhØÝ_J~õO@?»&+wsž­6§ùÌÕfÜ^k+zeEE ð3Ÿp3>]rŽs䕤Ÿ6öP‹ðžd•}5¤=ùÛ@{ñÖ®¡À~-±«v ¨E‚N0K0ñv5&É­Æfºdè¬ÍadøÖ0¯t³—–e%Æ»D¤ë:l«d›Þ¡£LýůW:3î™ÇÀ6 9k­—혠•lMRVFa+ýذqV¾sŠYêTÒa 9Û›{ÓG€®ÙÓ³¯HH5MâÖ'Paæ)2Ë¡{šÃ4Ŧ +ܺªêC-©øPƒŒw+J¶EàÀÍ1Ø÷ÍhÀ¶”R`hGYe|Ê®®ºÖ¥¡C^;¼ý»$èĹ~D@-<ôÖr"ïÀXÝê6TÕ9´„\›ð„U uÜâÖii‚QÊ/ ¹"†îÍÔ÷;§«êvídóöTÁBÌ“Ð0‡–ø–>xŒu˜3ßPú|¦&û®¡*óδ õ†QxÙ2PòÁ:ALW¶BBrCýþì…Å>³Š¨%;RÚ©d@w•ä‚IHØROúsóDi€[G'Øe$(€]t§šTl—£vUðè= ,Ú©‡­æ}Zé.þä’3qNmC϶‚èt +—é–‹ìrLšC‰KÙ££6GQ!ºÆ¼‡«Ã¨xMkYÜbWñ—œ’oCüØê/{³ è=Ï.ñ@M.ÝÓR¼úšu`à1~^Á[÷d{ ððû-À{¯Má“ -@¬MÐ0f µ9E̳ºvÏÈ":”¤Â 6Ã!'—Ú¦HÖ LÀ×ÑN)µÌ{O¨['๠µmîA•E‚O4‹p k=OjFìE×(2ùHWYµ `’CM)·Jheû€—ÙU°{j:|[‚L6‰Qi;rrÁAPó_oÍÜAóÏ96Ãc •:Õà0‹¸üÛæhùó8Ð2 ²ŠÐ1Ž)BÆÎ8&Ú&%eíçf“rMcˆ˜Í~p¨KË"Îóp™ŸÏÏw£3~.ÖMìÏ +šœj*Ô*G'šÅ„ +ýÖÄes›°1†OÝš 盀±óÞª²ž™: ŸWšó_›‡`ÑÖ)BÖR/ä«U†Ë?ZäÕ.1èn¶À¡F&Xd…fIî—ÃYLá_Kt⎒”3ÓUòÑÛ?Â5SY³ hûÃEaëÏA«ÇH(sª!Q«ýE¯m9Ï]:&Ë­ç Œ,꾑F²i0ÃE:óç" øà¢­È…ŽâW¦)|êü >MßÂJ·JZ›]ÊÚJ–KÜSóì +JÑö.Æ>AñÖ:@ZPá¶|òž˜V¸ÖVüÂÔ[üv±=ï…Œ}EÁŠOѵ”¿[l¿Ý#˜DŒ²íIÄäÛ_:aå–›)®J~ºÚK:øÐÄêŽÌ‹ €æ…G(©~³MÅÔ¥þ̬×MèDS1JËͽ­b¥\R0’/O 2˼c›@…›FÈé}ìœ!ong%}¾å”°±f ¼>6M”.t§<4¶ÄúìL–/•ýP +“;¥˜¢¿Ý³«ÇÛ& >™Òý–;¢ni„ßϯ´e?ßSŠ,S,ðB/â›÷>æ# } æÑlbÖÖ2xsþ ˆ•èõ¾²7âªl?|ÚÛ?q!7Ý€_B‡¯´¼ØèÌ~i.~»ÙŸõr¥7Ùo_‹«ØUÒà;ˆX7÷v)±`kížÅ–ì/’Ñ€»ì*\ßQòvyë™faa’²ÁÛãèHË4p½¯4PÁOzb¨ÍxêSs€fÙÕWÖ¸|ëù냈ÀŦ‚GsUI×Càó@yØæ`Ñç#ð³U•vºÜUòÝœ6ïyëRÍUÖÌÒqÞþ¿ÛSÐàm<Ä&†üp+Qq6€G·‡Ë?ZGa¶IZÞþÿz×S+œrLÊæ $`¥2Ó ì §¼Z¡b]†Úv«š‰^Æ¿ x§š90 +êögj»×ÇÑ1kã¸d‡Z °ëjê×D´ð·Ó!q±µôÕlC΃™ºÜç¦afÎB'%JÁÊ»mî<~?6ÊÔÿ¶ÖUþÊИs_V™z}Œžp¾øÛr¾Ð2&Ä.ôA¾kïkƒ„8¤ø"‡à 19{©³ôí|]žßžœŒöö4[îÏz¦âEžS0cÏ/6f?·ŽCbö¾?P’ +¶ÆáúÆ‚G›ýð@ë.~{·9DˆYëE|]ï†2{¯×µ¢>kEÔ\?cuÉÇÍqDÂϹ+"†Ñr£.ÙÇË>~Ù)8ÒQýì$_l‚ï91';äpšÃÙ;˜. õL…Ív'<7¶„ù,vf?ÞáÒ7F1ñË=Àø5ºC[Ýâæj¥³Ðo”y®ºðÝq5?ážmŠ[‹xÔŽ {±«a ׆ñ‰zaÁ=7ýªž›tIDþ~¶å÷›¾&ä.ǰÍ1ZÞz/6r{ˆg“ÐQö)\²Kúe C¦iHŽK;˜æ²~Îø«¡”íé Eûzb‰G‰O÷>Ë:Túi¹.õöf{úý=2Î*b•-÷ B¶†aÖILŒe·9ˆ _ï}ÑUe>[l+ýn‘Ò!^<·kY¸}#‡æV3 :ݦdœ**øÀȯré„‚ 1§|GS×`UVÒw¦¨Ù1.q¥«àõR{¶Ÿ] qŠá¡[Cùï4ˆ›3Í ÷f(ØŸ ¶]5*Ã*ÿp(ñ¦ ðŠËt¾Ñ*D­Ã~¼•l{ý—½«£#÷tt8 “Ê2T¼e +µÔ_öÑ­c1÷çZu®Ya­{¾²Ñ=WÙê2\ª§!Í“ˆ(@7ÄoKàÛ2\ºCÇcYoìÔóy{³‚‡‚C²NbcÌ#ˆ†ºœ§Þg]†Y±7ð)¾¿M×D˜‡±q†êŸÅ–Ìç[¥ŸÅüØëS¼¸‹ÆÚŒ;‡rjßXY»-Æ'Y~õrà†¶=‰JôæÄÏ9gq£«+y¶=AÈ9˜eS7ÆpÑk=Ð+%þsµYOÖ»Šß,¢‚Ùéw( /NìJXÈATø|sö=]uÆmC]î#0ý¶¾*Ýg©-ÿàËW1‘ ]0 yl@‹pw¦ð9æqpÈbGÖ£Aä÷ÓSÄð;.1¶Ä¥ã³¶E”LœZv¨eÍäRþöHÙ§ù¦„Ûƒøo§ç;Êß.tT¼7Ô?Ýfä{õõÖIzÁR;ôÃ0&ñOzâ?ýÃo"BÜMS.RÒ„m„Fž[j) ýgšËpÙX›ï¯¯Î|mÊ œiÊz4Lʼ?ÛŠLÚדÁ³M 7WzÒ_Úeèͱ’Ópi°GNƒºO¬¨Éy&æ¤>ñhÙœ_‹Õ½ûÓ ôÆüÛzì›iy¤¦c\2|””xWÁÊúh塿[a_¦È)WÇЉ%”¬[jnúù†lÿ.XÂÚ(9+íËÝã„„·6ûȨ=½ j­/ã™Ayq¦*îŠi´àíÑ,ƒ¼«c³zÉï¡_¯ýß&¿Ã£Ç—n¿[¨J½¡"E•“Âþ\mLp(#dÛ!1Y_ïŸà<ô +×¥¥BV»‹^iù1—›K^ý!aÝôèÈ—¡qxa˜’µ%¤ÿ5+¨ù9Íeþe$WØ&˾ïŒÿïw"@O9RIßšbä[DäÔ]­dµ£äžŸxKň¹8‚ørjúþä-äæÖXiÒ¿›Ü–afÔÓùÎÜïF:îÈëC#›s`ö3YþCÎ +9?×’îëÖSaN- c‘R Ö'ðqvâÑ3 ÞšëÿÌàò-±§B¦8¤ˆ »_v°\5°;Ï­ÛÖóß\¾ èk³•äÔbræx›†µÈ¨N ru˜ß×ó9Þ~x f§ç˜GpÑ‹ížj~îƒíri¡«L¼5SxÇ[ A‰¼½ h Û4tšÃÚ’0Á+ƒÄhï½ß5qh$C~-‘¿)ăYTîÆhÑÓ(2bWÍ@-ÁR ÍÞ>ç\„MÄCy´M„‰ráÞ%êÜ>êÌÆ!y„•þXÎÍzf¡îŒàbš +Ÿ¯¶½²ŽA‚uµi÷¼øk‹mÅïŽô•Uæ xøLKγùηsmEo—šK>îzkO…ÍÜšÀÆn “Óþš©nÿg^ØâRSKgÚò/´eÞ_lN¿è%_ë$1ms«¯.~´Ñ… uIé¥[Ãð Õèg)¯àa]qØܬ/ôÀ£¯›û‰‰#Ü‚—øäw§•ÂÜ ¥ÄÐìÓXöæ)æhùîK_ökû.ëð& œå×þ½Ä¯óhI¥ÆúÌÇ*VÚõÙ†ÜGÛ˜Ø ³ÄÐ +ÿàRr)ÀšPWÚsýš +üÏt•½?-&ÿ®fÆ^´CcþoƒÓlR@Kù¯Î™ú1鿌5m¿ŒLòO:çp–bÍzglŽñ™i‰¹þk¡²Ñ9Ó4¾­ðÍ"röÑŒ°íPÏ$ý400{*r‘KR¾Ñ—î¿=^ø×¯ÁªÖšÅl¤ÇXYµ?Ï$ï*ñYÀ››‡À}Ȱë‚ÔWgv4<Úú!Ñ®"—Ø4ïs:Aë@,mö”¼ÙèÌz´Ñ–úÐ>ŽHò^ÃQ7>Y¢dîHXðÍqtôÖ8:js lÁ‚­JTœsšßÕ×wy Mc}ÿá\]ÿѯò×<—¼òÜÀ8=³€–TáÓ- +j‘M]ÉÜE{ýÉ·¹Æ²ó %OµüÔ›K­ùŸLð˜¹ÎŠ7³-„À~aéZ¯ t}ˆU°6BˆÝôàÊøÛâ@®¿GO,°¸6IÍݑЋ\ +Ó®dB·&±q69*ÀÈ®žg–!¢Mèdo¯U§†u(Y—Èo áíÕu8C›E°°™¶Â'˽ˆÓ£b}’]6ÛJ ›o`DÌT¢^ÉÈ97&ˆ‰—ÂÌçʆœ¸èóvÁGË(9s¾½ä¡&ùže øëBkÖ‹™ú¤û¦ÁÌ3ð$·›µ6ŒÙÃÆìOó{ÓLìá,‹º?à º¿l‘#æºrž[eàÈ)Ï:Á,÷(Ú†÷µmSÀ¹ VJß.÷g=šnˆ»Ù ùpyµ´0€ŽhE„]\n)z³¯cÝ6Ñ©¢8H*³H`‰ó=%ïT•Y÷ÿ™óöàdñMR€[½úXÏ¢þ2Övý6ð?¦1Täj_é[«Ä{ï0ÝŒøn3wÿíVÑ+X©°I)y+½°o€O}¿ÒŠÙUSa®Y6Ýí­÷®'—n¡#MØó81yÉ[g©!Ýg¡)åžœry¶!åþZäCăÍuA#¤‚Ä[ký §Ÿs4ƒ/=š#”íÍÓ°nã™æ öŒ•Â}ƒ°öç|ý¨·ÞÏ9.oo†Š°i‘ Ži\¶EKÈÒö!t’no“³¶ˆ Rjêõ†¼·Çë²^Ã.mu¾´Œ“¦ûˆqÍÄô‡Ý¤ð›kC°`§ŒƒÝUrð»Z|ÎÞ46w[ø‚ndÐÖj‘VófûH±‹CøXÓ>éòbžð×±ìïy÷Ð(c¤¸uîž±¶sß(¬ö˜x‡“n™,0O–„XE¤,»˜]¾>BN’°Kt£2·ƒ£ou–‡Ÿm‡^ª/º0„‹º>#̸g£¤OV¼mDE]Yé%dÛÄ•¸ALäÖhÙg‡¬,Ð"*xµ«C$»´dˆYBCì/T÷:¦)N=!ߥE¦:´è›†ŽÛQRQ»6sSŒ‰Ûò^ÅÛÖ)v¹uÒ;t‚c“`€-u#Ä‚Ü'¼Â¯V{áëCØÈŮз– tÌj?NN3I˜å +aÙó•>lÒ.ÀßÞê ¶5 ðÖ5UQ#ÎuÀÞ_4´}¬GÅÝÿþä +ÈØ–ðÏ"a—¯ö¤¼ÐÖ¦?dg¾ú—é{Ú4ûù¿œú%¡`Sü·\æ¯yïŸU:ýïeLùÚpjÐrOæçåp80äþ ‡íÔqˆ.¿§eSU,ò¿óTüWIÈÃyÀV†S[ÛìÔVr]zAgºRàTqH¶I| ‘H»jLº] ‹3W|5ÀýF_Sð`¾Ö[k®ÀOÇKº¿ÒœíkîØèF…Mòïwa¾þ¾ÜUtd`à~Î+ö èL«cí +\¦ ð.€3\æçLmס‘Ç>2rûÞcÍKœ€î3«h%ú\è(5ÿÙ\+,h’ó²sAFÏú¬de¼™¯´ìpé'§“dr© sµ—øõœM‚Ï=ÐV œ +>Ñ*õÞg ýn™ÄÄ­ Ã¶ÅøÔå!\¼ª¡Ìs‚Rº«Ôºµ¤‡¼ì»URd‚ÄãÅèÙDžÏpOó9.- `ä Œ\¾·o½[hübÊF.r½óC\™ÿ4;ðÑñX¿« ~TüýÕndülC‰ÿBs¡ï$=öŽ”—ú|„—t§÷ÀØŽK˜DÏÊ"h}¼>\öÑ¡€Fÿ\" ÿÙàÔ-VuïÍ [ìzª÷š0épÉ;ZtîÏ׸g„õ.W¶•¤|`}?³“îö`c®ï+t·w»‚á–Ró¶úA³ÍÙ÷fšÒï¬ô–š'©E£œ¬²ª_§к6Áøj»—aWá3¶åø4EcÙqMá‡Ý9~÷Þ"¿Îª$fšÅøä9|¸Àâü޵*[“¸ø….È7§ŽxKrѶ“¼Ü 36äZî,^ªH0W„mˆ0 #œÌÇ}”ø§n+Èy[“¤L‹ŒRèг  ¶9EÍÛV0!úhàÒ0°†º ðÙ*¥ä˜FPaëÝà/+meW 1[S¬rQ5<œ”pk©»ðëÎTñ÷™¶¨ÓMQ> }…ßTٺƜ¶)xâß+ìÊ¥qTœ¼©Øß"¦Ãçj{çȘ}#8Å*Íx=L{ýû0þÃë…!¿9•«Ãظ™lĶ’Cû9×$þw®ºó¿ËTÂ_‹ØB§µÐYüÆ:Nɲ‹Ø%N9w°P?v¸X7z`ÔZÆ0±ó …ö Àƒ@¾-6g —÷çÆÜÆš·±ªaXÿùî²×ÆÖ†–’7‹=˜ôFxÐM;ñ±m”‘mîAêø±Wä̰K3õiÏ—zÊz 1W&yé¯<€ç³L¡“ç: +_Ìu¾Øðö·PSŠŸÁtOWµ­×J3,²E΄lKj¹.M›èh_çÐR˱–¹€ñz{l» L€×ð©nàýž¶®Í!§–n‹1ñ+ƒåÚúì ½ð ‹„\´?ǩޔbrçú1=OàYvÚu,´]ÏÂXä”B ;{3‚:Çtu㎦Z¸)¥å9TBîž^Xwd¨¬¶+˜Ð¥QJÒÂ0+si–¸9NH1¶•~!§¾ú£¦ôÛ §‚€°+Q)["pÈR_ñGcsæÃ­)\ꪈ‡\¦—ú’t8SYµ#Ã¥íȉ&iyøÆdiÜb_î«•¾k¬äÎ÷33¦»q?vÔ\ö?Ëõb·šâÕLen½?ǯsOWÖîë+¹nåRpPn@ƒº´Â*‡‚…Ø–3;R10/Ðq\´c‚”b›"¦m!" )÷õÕYæÛHá eQçû11—äÂŒGcô¤{¨˜+ĸ«s yÏMc¸XMCÅ«ùvtŒCÅ'›¥t讎MÙ›«ís„5f¥`Àø¥~hÐÆ:FV•|ß1…/Þ®iö>cá µ…ÚÊüV›óñ¸˜•vƒœõù 1þå険ü »›l“ bmt‚i´Ú¥? +T‚®Þ ªo°ræÁo†Qa—[K¾^áC}´œˆ›[}ÅŸ=Z +JÚ’ý™õá‚y€QæQ×T;4,ÂÀóN!×©Ãæî/Ó)6#±dQ„Šî¢&=l€~÷9ZªôÌ5Ny€Xööó^í.xcÙd¸T@!ÅUy¯ÛQáWºJƒmS´pͶˆn6³‚^:ß‹ÞÆg»€¸_#•,õ#SêJ–SËc:õ ôî,¿Ú®¸MÍBì¨X0›¶edc‚CZ&eÚ5ꦄš/¯*Ý O¼Ù‹Š¾³Øœ÷XÊK|¬kÌ ^B¤õ C¯›§ ©{*joðݳtšgŽBq©ÑEæ/â“öf„M»Ó“„Šñ^Ç´j˜H“Œœ»)£—mšÃeÖüÝ´&¢æ¯Ž²oö‘€\N7Ÿ=J|ÆFy@6äÆ%îáÏC´œ›ýô‚å^ZÊ\ò›Çhr#±oÀ•Ì‘`ߦÿÏÑ[¿µ™v}¿´3•™vf:z§îJ[Zh)PÜÝÝBÜÝ @Œwb@pMp§:sßÏûìãÝȾؿ…!¹ržK>ß+ë\Ë)5µ?S32ž~ŸÉ×⪅ Ýv°)[fd冒¸ªenš‘%FÁ­~\ú“¹ÁæÂ-&ª3#CÄ. !SB&bÁ¼qÔ-gÕŽ+3·Õ¿ÖqJßmºD­;£ÂÖ£ÚF NV­;ÉÛ€¿íOqÛ>`´•ä–À?¬»ù¬YµBO©¼)®I<×YóáÌb_Åý 8eß/íŤ]Žrå'}KIòç åpŒKYPùA έ˜«Þ¯èkâ÷<4ø¡ŸË™T@³M´Ü ãRè‡M¯@p0%èޟሶŽ8É ÄA7½90DÌXÒÓë6Ýxè’Rp8Á™ìöþ;'ì;š]µ>BnÜ›¢¢¶Žú„ ã }ÒÆ(Töë_w]꺑ZvÔ¿=¤€FÍKMˆ+oŽŠÁú©—ëâþ<ˆÏyÒ"’ü¼kvföù™ÞÚ‡‹Ššg[¦†_<ôæ]àQ@Óš2nœšé¨ÏÝõ*ƶ¼}¶Ã@»òë‡ÿ9À$qÇ‚‘R(ç׿b•Ç^˜èlÊÙw«6†ÐÉ!%!uªñÖßÖüÔJ©½ædÔ?\$:_ùZ +¯5à³òÚW³ý•oV4ˆt€‘c‚ºæøéÁúp;¿âþD­ÐÅE&•à_|8ÐŽƒÜ¸a 5|¥ ¿û„ <}ÅØyà–îÚPùÿ£bþwVÐõÝÄw¾|QQµªkÎZÔ£³Äˆøkjñƒ¹~LÜLwý/?÷²…’ú`çUQ ÂRoNˆëÃe¸Ü[E¯®‡ÍõÔÆìÛŽ4 ,)¤…ÆOK×ՕÏÖ̯Cúê×[VJÕ´¼)Û +ÄÆå!XÒ—1âkû 4~Ÿ"5›"B·\°ŒukSü‹}8Âçoé=ò—ƒ +ôÀ-]Ó>Nv— +ö€ø}èÁ”OÔ¾r¶æ\ZTU…ïºhMÝðøs£-åéÿDýßÍþÙM(ßwb ¶-èœà ôãD7虣µñQ2ïê 6÷▎ٴجKøÛòî*`NM÷B£zЙðy/71óoúÐÏcø†Ï>l9ð¸fˆCë\þªW´æâà–,Ôê{àe¾OÐqÿ™eñ~ŒQa_ß_T–?ó´åÝéjz¯$Þ—A’~m/ÿpB\öþtguÌŸÓ’Ú貨Fó‹Ú˜—VŒäR ¥lšù6dñ†P Äâ—i*ép’‚Ý`RCn*l¸§òù”º)áë|»ýpZسéeáÖGxôíãhæ)øû25çH q¼Ôÿ]ŽfNoÙá©+º†ˆeÍó/ªüC¼þ]'¿iá€7 \ðŠ–V´Ø‡‰ó²K®éPɧ´ÔßוÕo–û!I“µÏGùeW¶¬ø¢iEMÔdoéÃéžÊG“=Ew—šÞnëiÿïÇ4± a·ütäA€Ãúw°ÅÉVÙ¡OÀß²3êw­ôšÏVóg;7߇‰ŸëÀÆ®*Øeã­ çzLêïnÁ=· ä¾ƒ]xÅ%(ÿ{º›º5ÌÃnºi  ™2"’7€kX7jHòç”Ø »ê ©øÃ_¾öÊÌ/SbíšX1§€|XÖ@÷]„òÏ#¸ÊCªdÄ/õw6¼XV Š¿øÚ¤€/q¾Ž’A»Ã„²%5òžÌàã­mȈNxÙE=¹îæQ=³¯¥üö:ötOÓÛŸ{¡1¿hñy)ô÷D{Ã[OoSLiäíŸQŸîž>´£^ÁV¸¹— ïõI’.ù»Ó.Ì+ª#ö‡iƒÑ–6w'4n~•õ°—ÿ7Dçþß󰨲=',e¼»ö9¹àÃïøìˆÓË:"äÛ(ÿÅAí™±ÅË +p¢™™÷ÄÆK4XÊù]4cÍLªk©}¸>ˆLÝ6‘Š·,è¬m:ÛFlÞuììô󋲆øo#l* %ê¶­°ÌM¦xÇCý3)ìÙ÷С‡~&qIOm6Dí:ɵ‡> +|Yû4"(¹içdþÕùtAŽJú{Q Ž´VºøãŸ ®žTŠßýìrÉ_·Aâ×,àØ]X[*ÐÈ%:}ÕJ*ý<"î9™¸å¡æäÝa\åº7ÂϾ.‡¼ûÍÓZñ¤™}77êþ/RDÖÕADúycÌ '1ùŒ“haè‡_»@qÚêc¯sŠ[xåáqþ +kˆxfÙD€ÎjñKúÆè=´¡ ¦Á‘3ú¦Ø=ÀoÿŸK¼0OÞ²10_&Z§ÚÔßŶK¼¾ïÓ$ÔW F­ Õ‡5žöŠ's +xâš•”7¾)êã–eU¤eoö],ä¢ÄÂú—FZþÝ…~pý巭Ĭ?†àIg4ðO¿˜0Ÿ~çç\ Ê^Ž Ô¼ä£Nw6Åž]U£2Ö Í‰^AÞ]KîÃuMÞóm{ÉËÏc¨Š¯lö·©£ó† ü‡~ô»úá—|à¢ÔíZˆE›FJɘ¸áñ˜¨é¹…Y÷¢”|VRŸð¿ôã9,íO/·èöÆPs̶[ÔB³—õ°ô ½qÛͧŒëÖLàØa~ö%33åωîŠëZdꇉÛødËIxøŒ}/·mF¦mšëÞ5ù&¥¨ qßGXøC›¸b •í»Ù¤}·€Ò‘óÍ=*®}1,¨}ìoo|2'C¼_ÒÒËÝÂê;VfÁu#5ÿñDwõ =tóK_LKÁÉÞ^X ¿.íBgCÖƒu<Ù[ûÔ+¨z0ÖÖ±0Ðø~Cùøe„=<:3àdBEM©g¬‚òˆoúÇ4õ5€,ü:Íüâ‡eœXéi¯ '83€Éy±ïg·¯™ÐY‹½5§ÛËnZiiç…ÏNcRnW#ÞÙ±Á²Ô¼ŠWŒŠØkS}ˆª ¹Ú×UxÇBÿ§ÿòüHˇ‹³ýÕo7­døÚ0 J({ÕÈJ{ó?sáѼìï>eß…-\Õ€cÆÛŠžºX©7¶Ý®¢¾Àæ>Ùv¡ëLášT‚¢â×\Ê%7÷ÊhGÍû- mTÍÈùï§åû$“¶mƒ¦‡êÞ.¨k_=9ö^ ì¤èÚ²‘´fÆå¬ê0ùA6gÃÌlœV â-ug¸t=1û²¸âÝÉaFîõQQÕ³E"ø^UA¡x\Ú'¬þx¶1îîñ^ø§Û›6xþ¢¦òÕŠœ±ë¥ C6k{œ×ñuž#>:ûße +}VQ ð“÷c¦Ëõm†ßýyšÅ9˜¦âDZ•[Ö¦O»ÃèÒm'®qBј²fÁÕm±ÈÍÌ¿ÚWy²½üÅ1.áÏ5¾Ø)(½1€ˆ?Í){}\MοH+|{Z ͸ì炞š°Ùç<ÔÌs³m€v–V<“bcÏqª^ÿ4„K¿¸¬jþ8/«yîâÜóŠ +ŸåÅáûðü/Žàë¤xð‘ÞµaRÙšV½=ÌÅíyø” ©dUƒN +©ÑñÓ_:šžv4¥üÆ.|ÿ³ŸßôÖÍjxh£\psònø[ò88±7 ”È¿F[óîn›éõkF:8¨†ÆõÇ\5¼_”•¿X*¾ØŸÿb]S½ãFf ‡neÝ„/Ø6"R¿º°UHÖ–Z°aFe}¡4mÚp…3€¦X³ysXÄ jÉS=/ììŒsRúY€®mañcféeW½-M/W4Œ²‰öšGjT‚òð“’ºwg'ÛjîÍv£>.+93JZ…Ÿya²›¹:Ä­_Q!6 ˆÄu ®h°‰Xb´Œ¿»í¦‚öýTØá8 +hjðá(®ò`_è­éU=XB|Ÿ*Öm„’%UsÌ‚ ‘0;€Jvp*)á©|‚’Ç[VbE 6÷ïú¤g‡[!E+fr…ƒŸzÞÊŒ»aç%…OIs¢>{™ØÏ£þÊ0„)¸¤¢d¼ýw†Í=ôùÓqTç^ÿjRRrÓÅI»àâdÜY2ŠïÿBgÇÜÞvqÛö<„Fkþ-&æNÑ“ŸÄeOÏtäß=pã«CzCnäýSìÚØ§Ÿ=Dìæ9m_ljÐàPÅÓ9Yá­M{SÂ÷I¾xÝACêù÷Ýü‚ûßì£ÚaÐŽ‹X±¢Ag„Ô°O³}ÕæjŸ/h™Ä‚¨3ˆôg§F%UŸ¶xº¨%Mö”¿ó´–<胧þÆ,xõ“’xyÍдaC¤ Q{n ·Údߦ;Àš)¿LÒ©@žøœòm]÷ϼH²ÉÃ…1Ÿ§©„/³œ–oÓ4âÁ¦èÇ ö5€„lÐìU¹nY‡Ï[hþàäæÝu°ÓþÞ2‚>Í(1‰vná_VZÞy¾à¼”r™þ“Pòp¦³)\Xùæ9ëÎO} W§Ô„¿ÀÓn„©PÿXP4¾wvW>?3ÚR÷é‹›Møì%5.` ³ZRÉŠƒÝõ±)«N&Ø=Õ°ŠnÍ«1ùÛN.aËB¯_V!ãÇDe×½¬¢‹lÚ=&çÏé.ÔG)4ç¢ Ÿ{ÉÏ-½=Î/¹9ÛU¾ÔWŸ´¦‚§…¤ð÷>aÙÙŽ†ð}£z[CÈúr4'[Y>Ý–}ý‹±!á?c˜Ò­šc6Íð endstream endobj 7 0 obj <> endobj 16 0 obj [/View/Design] endobj 17 0 obj <>>> endobj 39 0 obj [38 0 R] endobj 64 0 obj <> endobj xref 0 65 0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000067607 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000810497 00000 n +0000000000 00000 f +0000067658 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000810567 00000 n +0000810598 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000070208 00000 n +0000070021 00000 n +0000810683 00000 n +0000068063 00000 n +0000088546 00000 n +0000088433 00000 n +0000068822 00000 n +0000069460 00000 n +0000069508 00000 n +0000070092 00000 n +0000070123 00000 n +0000070632 00000 n +0000070889 00000 n +0000088620 00000 n +0000089018 00000 n +0000090303 00000 n +0000105198 00000 n +0000170786 00000 n +0000236374 00000 n +0000285793 00000 n +0000351381 00000 n +0000416969 00000 n +0000482557 00000 n +0000548145 00000 n +0000613733 00000 n +0000679321 00000 n +0000744909 00000 n +0000810708 00000 n +trailer <<950E984C943C4F37ABD585AAE645C717>]>> startxref 810896 %%EOF \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/alidisplay-serialize.pdf b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/alidisplay-serialize.pdf new file mode 100644 index 0000000..30f9c84 Binary files /dev/null and b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/alidisplay-serialize.pdf differ diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon-results.ai b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon-results.ai new file mode 100644 index 0000000..fc6354a --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon-results.ai @@ -0,0 +1,3347 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + daemon-results + + + 2019-04-15T16:07:53-04:00 + 2019-04-15T16:07:53-04:00 + 2019-04-15T16:07:53-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + + + + 224 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADgAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A6R5x/LXzXd+db7zDoV1d WV3NcxSRXNslrx9AWH1aRP3lzE5fn8QYqKb0G5JVQ6+QfzKktYPrur6pdanb3kN9FqTpZckeBbpa LCL0QgMLiMMAoDKpB64ql9n+XH5yafCttpnmbU7SxSJ4ktPQsJFUsoAdWa95+oXLu7MxqW6CmKrv 8Lf85BSavPFca9qH6OlQNHd2yadC0bGcSuEie6m3oOCgkgKep6Yq9xsYZoLK3hnk9aeKNElm3+Nl UBm3JO5364qrYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUr169 1C2NhFYvFHJd3DRSSTRPOAi200x4xxvExYmEDr9GKsc0zz1Z6lpkep2vmnSRYysqRyz2c1vyMnDh RZ7qNqN6ycTSh5CnXFU1TU797lbVPMOkNcsaLAtuxkJ8AovK4qgrPzTJeJLJBr+nGOJWk5vYXMay RqvIywl7lRNHx35x8l98VWr5uVtJtNXHmTS/0fexpLbzmynFUktzdqzKbrkg+rqZDzAooqcVU087 QNqp0o+ZNMivhAt2EmsLmJDC6q6ssslysbfDIpoGriqIXzPzs0vIvM2jzWsixuksNs8oKSlQj/Be N8H7xSW6AGp2xVDad5n1+W5e2vtRsIJ5dUuNK09V0+5f1pIIjNuVuiFPpxu29BRTiqYrrF24cr5j 0ZhGQJCIGPEsaAN/pu1TtiqWQ+fLSfSZ9Xh8z6XJptvKIJLlLG4Yc2AZSoW6LMrKeSsoKlfiB474 qrap5xXS1tWvfMWmol5ObSB0sLmVfXADGN2iuXEZANTzpTFURD5jM0ssUPmnRJJIKGZFiJKgqWHK l7t8Kk/LFVtx5llttNXUrjzDpkVo7cEZ7KcMXEwtygjN16nMTMIyvGvLbrirVh5ne/SeS28xaWY7 aSSKV3s5ol5RU5lTJdrzUch8a1X3xV2p+aDpmnXWo3nmXSUs7KFrm5kS1llKRIeLPwju3cgNtsOu 2KqT+cY0vTYyeZNLS8W7ksHgaxuFdbiKD6zIrA3WwWAeoXPw8d64qmP6Q1Lkq/p/SeTEKo+rPUsz FAB/pnUupX5gjFUNd+YpbSxe+n8yaQLSMoHmW1kdR6r+mhPC8bYsDv02PgcVS2H8xNPlu7C1HmbT Y5tTi9ex9bTruFJErIPtyXCIrf6PJ8LEN8J2xVMT5kk+py3qeZNIltoVkeR4raSU0h5+pRY7xmbj 6L7AfsnwxVNtAvtQuW1CO9mgnNrcrFDNbRtEjRvbQzAlWkmqayncN0piqa4q7FXYq7FXYq7FXYql PmCG7d9Nnt7aW6FrdNJNFA0aSBHtZ4eSmV4l2aVf2sVedR/kt+XaWy23+DNRaFIEtERryA8YY5BM EU/XKqGlBdgtOTMSanFVXTPyh8kaZqNtqVp5T1RL21nFzDMby3LCRZI5BUm73XlAvwnbFUZd/lv5 UuxaLceVtUkj09DHp0X12EJbx0oiQqL0BVj/AN1r0XtiqGs/ym8k2WmHTLPyhqEFqzq8gE9m7vxt nteLPJdOxHpSt3qDQilBRVXvPy48v3N5a3X+G9SWS3jtbZ+U9q4e1swnCEg3fGj+kiyVB5LyX9on FUFB+TXkK3uorq18n6jb3EUawCSO5tatCsSQelJW6PNDDHwIavUkUb4sVTWPy5cX0dymr6FqSldX udUsJLW6tYXX14Htt3jukYVimkUj3xViWofkB5OK2Z0Ty9qWkSWlyLj4ZbSZGHAIf3b3gXl8IIZq iv21cEgqp5a/lL5Ns9MutNtPK+rQ294sMcp+u28jiO3WZEjRpbtyq+ndSx7fstQUoKKr5Pyr8pG0 ktk8q6lwe6e/4yXNvIhuJEaMsyG8FVKuQV22xVCS/kp5AuLe1jvPJ+oXElrai0WY3NqrFf23+G7A V5DuxX+JqqmU35beVbg6Y9x5W1OWbSZhdWk7XVqH+sC6e99V+N2qs3ryyN0/aIxVQuPyn8jz6lNq kvk/UG1K4bnJeG5tjKSJFlX4jdk/CyD5/tVxVBz/AJJfl5PHHG/lDVeEMBtYlW+iHGFldWTa93BW VhviqN1v8qvJeuXs19qnlHUrm7uJDNNM93b1ZvTeLcfXKU4yHam/fpiqTar/AM4//l1fWU8EPlLV bOWSN1t5YryEpAzF2Vkga9MNEaQlU48fbdqqo3QPyf8ALGl6PPZSeW7+a7vPT+v38UlpDJKInLKo P1yR1X0z6ZPMsV3LcyWKqK1X8rPK9/Bbxf4Z1KFraP0YZBcWrFUeaWaVlBvKCRmuZeLfslqgfCtF VOf8nvIkt9LqCeT9Rt9QkeSVbyG5tVljeX1OXAm7NF/fH4Ps7DbFWe+WbSa3GoF7J9PgluUNpbyN EzCGO0ghH908qj4oiPtVxVOsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirzjzD+eXljy35h1DS9cguLeCyeKJLuCOS7LtJF6rl0gRxGqICd2 5UB+EbVVUbj/AJyL/LK2naG5ubmFkDGRmgbivB/SI5AkEmT4RxrX7X2SrFVCTf8AOQOlwWdpNPpj erf2MN5apHcLJGXlu5LVoZJQgCcFhaXlTdVYUqByVXW//OTn5TTu0YvbmKVY5JfSmtpInKxx+rsr gH40IKeNcVTXy3+evkDzHqFtY6TLdzTXcjRQu1rKkZoyLVpGAVQTJShNagildsVeg4q7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqld55a0q8uZLmYXAllKl/TurmJSUHFT wjkRRQeAxVD/AOCvL9AOFzRfsj67ebdBt++/yF+4Yq2fJuhEFSLoqRQj69eUoCWp/feJJxVoeS9A FaLdCta/6beb16/7u74qoaF+XnlLQZPU0m0ltjz9TiLq6dSaACqvKy8QFFFpQUxVkeKuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KqN3fWVmsbXdxFbrNIsMRldUDyyGiRr yIqzHoBucVQ9nr2hX121nZaja3V2kazPbwzRySLE4VkkKKxYKwdSD0NRiqLmnggT1J5FiQsqB3YK OTsERanuzMAPE4qhrjW9GtwhuL+2hEsxtozJKi8pwaGJakVeu3HriqMxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpD518pQeatE/RU91LZx+tFOZYQjNWFuYWkiutC R4Yq898yfkj5bEsVxc69qtqs0cdjDBYqSzNFYrbqQtvGz1CWvq+FR8sVUJPyq8umzktotc8yKriU Rs9peSGL1pInLRkwA8kSHjExrx670piqYR+QPLX1eWK41DW52uoZbK/kbT7kme0mt7W1eNuVs/B2 jsIy0kfE8izbVHFVLrn8qtAnUV8xeaVmV0ZLgW94JAqcCUJFuAwdoVduQJ5FztzOKs/8sz6PoGi2 2lQ/pK4jtgVE0un3vNqmtW4wCpxVNP8AE2nf75vv+4fff9UcVd/ibTv9833/AHD77/qjirv8Tad/ vm+/7h99/wBUcVd/ibTv9833/cPvv+qOKu/xNp3++b7/ALh99/1RxV3+JtO/3zff9w++/wCqOKu/ xNp3++b7/uH33/VHFXf4m07/AHzff9w++/6o4q7/ABNp3++b7/uH33/VHFXf4m07/fN9/wBw++/6 o4q7/E2nf75vv+4fff8AVHFXf4m07/fN9/3D77/qjirv8Tad/vm+/wC4fff9UcVd/ibTv9833/cP vv8Aqjirv8Tad/vm+/7h99/1RxV3+JtO/wB833/cPvv+qOKu/wATad/vm+/7h99/1RxV3+JtO/3z ff8AcPvv+qOKu/xNp3++b7/uH33/AFRxVH2V3b3tnBeWzc7e5jSaFyCpKSKGU8WAYVB6EYqrYq7F XYqlWs/8dHQf+Y5/+oG5xVNcVdirsVdirB/zH0P8w9Sls5PJ+ppp0sFvdhmmlZYvXki4wO0So3qc W/n5KP5K7hViVz/0Mdpsd3qUjabeL6Du9rAZJm9T0+EawxCKv7tzzJXdx+wSKMqi5dF/Oe+ig1fT 72Oy1aaxsnIvJphbpOkUq3cbacvOKspeMqSwKleo3Uqt6jpv/ORl1YPaLqGjwyvFcobq3EkZYlZ/ RNGBeIlvQAKOeK8iTypiqXfov/nI7RdLlms7uw1OSztoRb29zJJPLN9XSZpUckLzkmcooaoYilWr viqLWz/PPVo/KWs293FbTWjXEms2FzytI5TWeJA8Ii5sjRyIV5hTtyKI2Kt6h5f/AD8ln0XUItSs TqdtBImpLHNPDZPI8soUi2+NH9OJ1ozDcgVpiqbaBafnut9p665f6Q9gLlDqL28TCZrZY3LKikcQ 7S0B6/ARSjA8lUouPLX582dol3o+rWs+psIPXh1GaV4ubQpHfFIwHjCNLapJbj9kSyA02AVQ83l3 /nIx9R08jVdONnaveTTt6syNLJN9ZSBZEQcWhVZoiyChXj8BDCuKo/QND/PS10DRotavLDUb/S7m J5I4Lm5t2uIIrUxBbi5Kv6vOWjyco92r2Aqql/mC+/5yT0q3tpkGm6gsp9G7FjbvJJGzNK4khio1 VCokQLtQ8qtw3dVUz8m+XvzosPMcb+YNSivNLkvTcXEqzmQiFbAQNH6fCFQsk6iRVVfhO+1W5KvV cVdirsVdirsVdiqVeU/+UV0b/mBtv+TK4qmuKuxV2Koe+03TtQiWK/tYbuJG5pHPGsihwCvIBwQD RiK4qgv8J+Vf+rNY/wDSND/zTirv8J+Vf+rNY/8ASND/AM04q7/CflX/AKs1j/0jQ/8ANOKu/wAJ +Vf+rNY/9I0P/NOKu/wn5V/6s1j/ANI0P/NOKu/wn5V/6s1j/wBI0P8AzTirv8J+Vf8AqzWP/SND /wA04q7/AAn5V/6s1j/0jQ/804q7/CflX/qzWP8A0jQ/804q7/CflX/qzWP/AEjQ/wDNOKu/wn5V /wCrNY/9I0P/ADTirv8ACflX/qzWP/SND/zTirv8J+Vf+rNY/wDSND/zTirv8J+Vf+rNY/8ASND/ AM04q7/CflX/AKs1j/0jQ/8ANOKu/wAJ+Vf+rNY/9I0P/NOKu/wn5V/6s1j/ANI0P/NOKu/wn5V/ 6s1j/wBI0P8AzTirv8J+Vf8AqzWP/SND/wA04q7/AAn5V/6s1j/0jQ/804q7/CflX/qzWP8A0jQ/ 804q7/CflX/qzWP/AEjQ/wDNOKu/wn5V/wCrNY/9I0P/ADTiqY29vb21vFbW0SQW8CLHDDGoRERB xVVVaAKAKADFVTFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYqx7z15xt/KOix6tcwia3N1BbSqZBEQsz8C6lgQxXrxJFfEYqwtv8AnIXyzYyga7Zz 6fA0VrIksXK8Aa5txct6hhQpGsaVJLPWgJKqKVVU7v8A5yT8h/U2u9NE97FBJbC8Yr6YSKd0V2Q/ EJJIvU+KMdCKEg0qqi77/nIDyZpV7qMetiWysrKVIob1Fe4WVXkaPm3ppRPiX7PJmp9oKQVxVUvf +cg/y7sfTa6e8jikd4jOLZnjRonSOT1HQsECtKByOx6rUEVVSeb/AJyf8hNbXc9irzxxoTYPKwhS 4kjCGaMsQ/pFPWQKHFWJoBir1uwvYb6wtr2CvoXUSTRVpXjIoZa0JHQ+OKq+KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KrJoIZk4TRrIlQeLgMKjoaHFUs1iU2hsobSwt7ma+u BAFmf0UURwSyhiyxzE8RDxA498VUfQ1ugH6F0ygNQPrUnXbf/eP/ACR9wxVcV187nSNNPxB97uT7 QFA3+8fWm1cVWiDWxSmi6YKUpS6k240p/wAefbiMVaNvrRUqdF0sqeo+tSUO1P8Alj8MVVxP5oUB V02wAGwAvZqAf9ImKt/WfNX/AFbrH/pOm/7JMVd9Z81f9W6x/wCk6b/skxV31nzV/wBW6x/6Tpv+ yTFXfWfNX/Vusf8ApOm/7JMVd9Z81f8AVusf+k6b/skxV31nzV/1brH/AKTpv+yTFXfWfNX/AFbr H/pOm/7JMVd9Z81f9W6x/wCk6b/skxV31nzV/wBW6x/6Tpv+yTFXfWfNX/Vusf8ApOm/7JMVd9Z8 1f8AVusf+k6b/skxV31nzV/1brH/AKTpv+yTFXfWfNX/AFbrH/pOm/7JMVd9Z81f9W6x/wCk6b/s kxV31nzV/wBW6x/6Tpv+yTFXfWfNX/Vusf8ApOm/7JMVd9Z81f8AVusf+k6b/skxV31nzV/1brH/ AKTpv+yTFXfWfNX/AFbrH/pOm/7JMVd9Z81f9W6x/wCk6b/skxVD6jq3mWw0+5vptNs2itInnkVL 2UsVjUsQtbUCtB44qnuKpVrP/HR0H/mOf/qBucVTXFXYq7FXYqgtZ1nTdG099Q1Kb0LONo0eXi70 aWRYkFEDNu7gdMVY3J+b/wCXEenXOoya1GtrZzi1uWMU/NJSrvT0/T9QrwiduQXjRWNaA4qix+ZP kk6y+jpqQkvY2hSQpFM8CNc8PRV7lUNurP6qAAvWrKP2hVVub8yPJkOrLpL6jW/a5WxESQzuv1hn 9MR+okbR/b+EnlQGoPQ4qsf8zvIaXMVu2rxc50d4XCyGN/TaZGVZQpjL8rWUBOXI8TQHFVfS/P8A 5T1TUhpdleM+oGSSBrV4LiJ0lhiWaRJBJGnBljkUkNTrTriqDj/Nj8v5N11UCIwSXYuGguFgMES8 2lEzRiLjxIKnl8VVpXktVW3/ADV8iJd3No2oSevaMyTqLS7IUp6ZNGEXFtp422P2WU9CDiqvH+ZP kdxbMdWiiW7jeaFplkiURozKXcyKojBMbcedOVPhriqZTeaPLUFlLfTatZx2UClprlriIRoqipLN yoKYqqL5g0FuPHUrU8zRKTx/Edth8W/2h9+Kpcvn7ygdQfT/ANJILqOUQOGWRUEjGdQvqlRH9qzm WvKnJSOtBiq678++TrSNpJ9Wt1jS5ismkDclE87Rqi8lBFKzx8m+yvL4iMVXRed/K0umpqUV+sln JPHaqypIz+tNcfVIlaML6i85/wB2pK0JxVHPr2hxyyxSajapLBX1o2mjDJQ0PIFqrQnviqX2fnzy he3z2NnqkNxcJMtuRGSymV+fFQ4HA7xMtQacvhry2xVPsVdirsVdirsVSrzZ/wAorrP/ADA3P/Jl sVTXFUq1n/jo6D/zHP8A9QNziqa4q7FXYq7FUv1/QdN17S5NL1JGks5XieSNWZCTDKsqbqQac0FR 3xVhj/kJ+WjJMv1CYNO8jvItzOrfvRxZQQ2y06Dtv4nFUVZfkz5G06eWfS4bmweUJ8ENzK0KtFwa JxBKZISUeJH+JCCQOQI2xVbdfkx5Nvbv6/fNe3OqGUTyakbl4Z2lVi6PW39FVKMx4cFHH9mgxVq3 /I78t7e8+tw6a8bhPTjjSeZI41oaiNEZVSrn1Nv92Uf7QBxVGL+V+gw6odYsrq9tNbaVpn1VZlmn ZngjtmDfWUnjZfSgRaFNqVFDiqhB+TXkKJFjazlnjpS4jmnkeO4rJFK31iMnhLya2j5chvx3xVWi /KXyVHEkXoXDqjRtV7q4LN6Vvb2oVm58mUxWUPLxKD3xVSl/JryBLaQ2r2LmKBJli/fS1DXHP1JB 8X229Vqnv3rQUVS5f+ce/wArEt2t49MkjgeNYZIkuZ1V1W3+q1YBx8TQ/CW6mpb7W+Kqh/IL8rnu BcS6UZpFne7X1ZpZAJpGRmcBmI39ID2FaYqjNb/JryBrlo9rqli9xG/rhSJpImSO6ufrkkSmIp8H rVK8qlakA0xVLf8AoXn8rfUspV0+ZJNPmS5s3S5mUpNGkaLJs25AgTriqN0b8j/y60WzubXS7CS1 F09rJJOlxMZw1jOlzblZWZnHpyRIQK02+dVUk17/AJxr/LvULa6+owyWN/dzJcTXbyzz+o6yNIxm Uyo0hcyNUl6/Rtiqfab+TXknT9YttYhinbULaRpfUeZijs8q3Dcov7tR68aSgIFoyim1QVWc4q7F XYq7FXYqlXmz/lFdZ/5gbn/ky2Ksb8s/mnaa55h1nTTptzp1jpEPrm+vY5oGkVQpf91LEnHjz3o5 PiBXFUPovm2687+UfJvmTRpILG41K5dz9Yia5jR47S7jmTgksDGjowHx4qyH6l5//wCrzpX/AHCr n/vI4q76l5//AOrzpX/cKuf+8jirvqXn/wD6vOlf9wq5/wC8jirvqXn/AP6vOlf9wq5/7yOKu+pe f/8Aq86V/wBwq5/7yOKu+pef/wDq86V/3Crn/vI4q76l5/8A+rzpX/cKuf8AvI4q76l5/wD+rzpX /cKuf+8jirvqXn//AKvOlf8AcKuf+8jirvqXn/8A6vOlf9wq5/7yOKu+pef/APq86V/3Crn/ALyO Ku+pef8A/q86V/3Crn/vI4q76l5//wCrzpX/AHCrn/vI4q76l5//AOrzpX/cKuf+8jirvqXn/wD6 vOlf9wq5/wC8jirvqXn/AP6vOlf9wq5/7yOKu+pef/8Aq86V/wBwq5/7yOKu+pef/wDq86V/3Crn /vI4q76l5/8A+rzpX/cKuf8AvI4q76l5/wD+rzpX/cKuf+8jirvqXn//AKvOlf8AcKuf+8jirvqX n/8A6vOlf9wq5/7yOKu+pef/APq86V/3Crn/ALyOKu+pef8A/q86V/3Crn/vI4q76l5//wCrzpX/ AHCrn/vI4qlvmWz88r5c1Uz6vpkkAs7gyomm3COyek3IK5v3CkjoSpp4HFWM/l+BJ+dn5gTxarFe xEWqPaLGwlhdYYxxeQp8SKBRPjIry4gUaqrLtM/44/kj/nj/AN0ufFWVYq7FXYq7FXYq7FXYqhNT 1jSNKhSfVL63sIJHEaS3UqQozkEhQzlQTQHbFUOvmjyy9pFeJq9k1nOXWG5FxEY3aNSzhX5cSVVS Wp0AxVRtvOnk66IFrrunTkxtOPSu4H/dJUtJ8Ln4V4mrdMVTW3ube5gjuLaVJ4JVDxSxsHRlYVVl Zaggg1GKqgIJIBqRsfY9cVQ17qWnWCxtfXUNqsriOIzyLGGdjRVXkRUknYYq3HqOnyQQ3Ed1E9vc kLbzK6lJC32QjA0YntTFVO11nR7uVIbW+t7iaRZXjjilR2ZbeT0ZmAUkkRyng/8AK2x3xVWtr2zu vV+qzxz+hI0E/pOr8JU+1G/Eniy13U74q1eX9jZLG15cR26zSRwRGV1QPLKwSONeRFWd2CqB1OKr 4Li3uIhNbypNE1eMkbBlNDQ0IqNiKYqqYq7FXYq7FXYq7FXYqlXmz/lFdZ/5gbn/AJMtirA/y6/Q Ft+ZXmzTNM0yO3+rcJF1GO4lnE4lSIupDEorRtRCv7KqgFd6Ksn0z/jj+SP+eP8A3S58VZVirsVd irsVdirsVdiqQ+bvJ+n+abextdQllS2s7pbt4om4iYCKSIxSEfFwZZjyAO/TpirHb/8AKS2vdK03 Qmv/AKvoWktJNaQW0AhuGuZrae2lllmV/TIb63I/GOFBWg6CmKrNK/JjR9P02awGo3E8c1vc25eW O3LB7q8e8eX+7+2GkKD/ACem++KpZH/zj3otveJdWev6tayRGJo/SlQAtHG0bmT4aSGTlyYtvUDf FWj/AM496UJXmi8x6tFLNG6XDpJErTM8H1cSSsEDO4Tfc/aqe9MVTZfya0VbWS1GpXzxytft6ksp kliN9JbzK1uzVET201lE8JCkLQ7fFXFUjn/5xz0lri7kt/M+tW8Vw7NBbLNGYrZGqvpwoyEKoQhB 3AApQgHFVtj/AM426HaC1A8y6231VJoyy3XpPKLi6S8laR4hG5dpYxVwQTRa14jFU31n8loNUWWJ /MurwWzTy3UUEEyxBZZo/Td3dAskxpT+8YjrUGpxVjp/5x0kv765/TOv3U1lFNZvpciv6lwI7IAI reqnCM/AvLjXl4gUVVXqPlLy4PL2ippv1qS9k9ae4mupdmeS5meZzSpp8T+Pv1xVOcVdirsVdirs VdirsVSrzZ/yius/8wNz/wAmWxVgX5fWHl7R/wAxfM+m6L5Zg00LKqSajbyOvONk9faCQtF6SyuV b0G+FmUNGv2sVZRpn/HH8kf88f8Aulz4qyrFXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FUq82f8orrP8AzA3P/JlsVeZ/lVZWmkfmd5q0K3WzZbGCENc2tlY2ckjP wkcS/V4o5jwL0Bkd+XXY1qqy1bS4u/LnkqGC9m0+QmAi5thC0gppk5oBPHPHv7riqaf4Z1r/AKm3 Vf8AkVpX/ZDirv8ADOtf9Tbqv/IrSv8AshxV3+Gda/6m3Vf+RWlf9kOKu/wzrX/U26r/AMitK/7I cVd/hnWv+pt1X/kVpX/ZDirv8M61/wBTbqv/ACK0r/shxV3+Gda/6m3Vf+RWlf8AZDirv8M61/1N uq/8itK/7IcVd/hnWv8AqbdV/wCRWlf9kOKu/wAM61/1Nuq/8itK/wCyHFXf4Z1r/qbdV/5FaV/2 Q4q7/DOtf9Tbqv8AyK0r/shxV3+Gda/6m3Vf+RWlf9kOKu/wzrX/AFNuq/8AIrSv+yHFXf4Z1r/q bdV/5FaV/wBkOKu/wzrX/U26r/yK0r/shxV3+Gda/wCpt1X/AJFaV/2Q4q7/AAzrX/U26r/yK0r/ ALIcVd/hnWv+pt1X/kVpX/ZDirv8M61/1Nuq/wDIrSv+yHFXf4Z1r/qbdV/5FaV/2Q4q7/DOtf8A U26r/wAitK/7IcVd/hnWv+pt1X/kVpX/AGQ4q7/DOtf9Tbqv/IrSv+yHFXf4Z1r/AKm3Vf8AkVpX /ZDiqW+ZfLurx+XNVkfzRqc6JZ3DNDJHpgRwImJVilkjUPQ8WB8DirEfys1rStb/ADV866lZxyAy rAiSTPDy4xqisESIl+PLqXpQ/COR5cVWbaZ/xx/JH/PH/ulz4qyrFXYq7FXYq7FXYq7FUq8xeaND 8uWcd5rFw1vbSyGJHWKWb4hG0pqIUkIASNmJIoAMVS9PzI8lvo1nrS6h/uMv5JYbO5MFwBJJbpJJ KoUx8qqkEh3G/E0xVDWX5seQb2Iy2+pMYhHLM0j2t1GoWF2jkBZ4lAZXQrw+1y2pXFU207zj5V1F Eaz1a1lL0pH6qLIDxDcWjYh1YA7qwBHfFVSLzV5Ylmngi1eyea1PG5jW4iLRnjz+Mcvh+HffFVLU POXliwSCS51GLhcyiGExVmq5kjhp+6D0/eTxqSdgWFeuKrYfO3lOa0truPVIDBd8fQYtxJDDkCym jIOJBqwAGKqWnef/ACdqNwlvZ6pFJLILkqCHQf6FcJaXALOqqGSeVF4k1PIEVG+Ko+DzHokyXDi8 SNLW4ks52mrCBPCvKRQZQnLiu9VqKd8VQer+e/J2kfVxqGsWsLXUsEEC+orMz3TKsWy8iFb1FPI/ CBuTTFU00/UbLUbb6zZyiWHnJEWAIIeF2jkUhgCCroVIPfFUTirsVdirsVdirsVdiqVebP8AlFdZ /wCYG5/5MtirBvy21fzXqHnbX31Kz1O30eRPV0xr/wCsLFQutVgiltrURrQ7Al2oO3dVkmmf8cfy R/zx/wC6XPirKsVdirsVdirsVdirsVSvX/LOi6+llHqsH1mKwuUvYImJ4etGrIpdejACQ7HFUm1D 8svL2owWllfS3NxpNgGNlpbunoxyPBJbPNzCCeSRknkq0kjfExbrirtO/K3ylp1lJZ2sdytvLbzW jKbqdj6dzctdy7lurTOzV+jpiqVSfkJ+WT3Edx+jZFlhEQt2W4mUxegjRpwo23wuaj+zFVsn5Bfl nJw5WE59KJ4UH1qegSSL0DtzpX0qLXrt474qmkX5S+RYbee1g0/0ra7+vfW4kdgJV1P0jchm+2OT W0TAqwZSi0OKpNcf847/AJVT3l7dnTZo59QkaW5aO6uE+JyxYKA/wKebAquxGx2xVZD/AM45flJF Hax/odpYrONobeKaeaVBE031gxsrswZfVq3xV6nFUw1b8kPy81Yt9fspZ4/UaWGFriYxQvIvB2hj LFI2IA+IDkKChxVJ7T/nHTyQl5eveNNc2U8ttLa2geSIxC0H7pGlDlpAu3H7PTerEsVXoHlvy5pv l3SY9L08P9XjeSQtK3J2eZzI7M1BX4m+7FU0xV2KuxV2KuxV2KuxVKvNn/KK6z/zA3P/ACZbFXnf 5dat5pk/Nzzdo2t6pNqH6Pt7d1UQyW1ovqrGVMETTzD+YE8F3B+J61xVl+mf8cfyR/zx/wC6XPir KsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVSrzZ/yius/wDM Dc/8mWxV57+WOhaVo35jeaLK0iuvWt1VTdTz2skcqOsL/AkMcUilWqrBiQu1fiY4qyNdOt9Q8ueS rad5kjYwEtbTzW0m2mTnaWB45B9DYqmn+BtF/wCWnVf+4xqv/ZTirv8AA2i/8tOq/wDcY1X/ALKc Vd/gbRf+WnVf+4xqv/ZTirv8DaL/AMtOq/8AcY1X/spxV3+BtF/5adV/7jGq/wDZTirv8DaL/wAt Oq/9xjVf+ynFXf4G0X/lp1X/ALjGq/8AZTirv8DaL/y06r/3GNV/7KcVd/gbRf8Alp1X/uMar/2U 4q7/AANov/LTqv8A3GNV/wCynFXf4G0X/lp1X/uMar/2U4q7/A2i/wDLTqv/AHGNV/7KcVd/gbRf +WnVf+4xqv8A2U4q7/A2i/8ALTqv/cY1X/spxV3+BtF/5adV/wC4xqv/AGU4q7/A2i/8tOq/9xjV f+ynFXf4G0X/AJadV/7jGq/9lOKu/wADaL/y06r/ANxjVf8AspxV3+BtF/5adV/7jGq/9lOKu/wN ov8Ay06r/wBxjVf+ynFXf4G0X/lp1X/uMar/ANlOKu/wNov/AC06r/3GNV/7KcVd/gbRf+WnVf8A uMar/wBlOKu/wNov/LTqv/cY1X/spxV3+BtF/wCWnVf+4xqv/ZTiqW+ZfJmkQeXNVmS41MvFZ3Dq JNW1ORCViYjkj3DKw8QwIPfFWNflz9Wi/NvzxaIZXltzChnnnhmeVPSida0iS4IiMhRTK5AGyljy IVZZph/3EeS1/aRo43HcMmm3CsD8mBGKsrxV2KuxV2KuxV2KuxVKvMXmjQ/LlnHeaxcNb20shiR1 ilm+IRtKaiFJCAEjZiSKADFUvT8yPJb6NZ60uof7jL+SWGzuTBcASSW6SSSqFMfKqpBIdxvxNMVQ 1l+bHkG9iMtvqTGIRyzNI9rdRqFhdo5AWeJQGV0K8PtctqVxVNtO84+VdRRGs9WtZS9KR+qiyA8Q 3Fo2IdWAO6sAR3xVUi81eWJZp4ItXsnmtTxuY1uIi0Z48/jHL4fh33xVS1Dzl5YsEgkudRi4XMoh hMVZquZI4afug9P3k8aknYFhXriq2Hzt5TmtLa7j1SAwXfH0GLcSQw5AspoyDiQasABiqlp3n/yd qNwlvZ6pFJLILkqCHQf6FcJaXALOqqGSeVF4k1PIEVG+Ko+DzHokyXDi8SNLW4ks52mrCBPCvKRQ ZQnLiu9VqKd8VQer+e/J2kfVxqGsWsLXUsEEC+orMz3TKsWy8iFb1FPI/CBuTTFU00/UbLUbb6zZ yiWHnJEWAIIeF2jkUhgCCroVIPfFUTirsVdirsVdirsVdiqVebP+UV1n/mBuf+TLYq8/8gg/8rm8 9fWvS+v0h4rG/Mi2Kp6Nf3cQqy7kAvQ9Su3JVlen/wC8flj/AJjp/wDqFu8VZVirsVdirsVdirsV diqV6/5Z0XX0so9Vg+sxWFyl7BExPD1o1ZFLr0YASHY4qk2ofll5e1GC0sr6W5uNJsAxstLd09GO R4JLZ5uYQTySMk8lWkkb4mLdcVdp35W+UtOspLO1juVt5bea0ZTdTsfTublruXct1aZ2av0dMVSq T8hPyye4juP0bIssIiFuy3EymL0EaNOFG2+FzUf2Yqtk/IL8s5OHKwnPpRPCg+tT0CSRegdudK+l Ra9dvHfFU0i/KXyLDbz2sGn+lbXf1763EjsBKup+kbkM32xya2iYFWDKUWhxVJrj/nHf8qp7y9uz ps0c+oSNLctHdXCfE5YsFAf4FPNgVXYjY7Yqsh/5xy/KSKO1j/Q7SxWcbQ28U080qCJpvrBjZXZg y+rVvir1OKphq35Ifl5qxb6/ZSzx+o0sMLXExiheReDtDGWKRsQB8QHIUFDiqT2n/OOnkhLy9e8a a5sp5baW1tA8kRiFoP3SNKHLSBduP2em9WJYqvQPLflzTfLukx6Xp4f6vG8khaVuTs8zmR2ZqCvx N92KppirsVdirsVdirsVdiqVebP+UV1n/mBuf+TLYq81/Kq9XUPzT886is8LxXMqrbRATtMFhCRt VpAEULxUlEGzMQSSpCqs10//AHj8sf8AMdP/ANQt3irKsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVSrzZ/yius/8wNz/wAmWxV5x+TPmK/v9b1PTrm61a4azjk9 T9IpbLArG45qIWiiSdvgkB/fSOeJFOuKsoOl6Zqek+WbTUrSG9tWv5i1vcxpLGSttdkEo4ZdsVTT /lXnkD/qWdK/6Qbb/mjFXf8AKvPIH/Us6V/0g23/ADRirv8AlXnkD/qWdK/6Qbb/AJoxV3/KvPIH /Us6V/0g23/NGKu/5V55A/6lnSv+kG2/5oxV3/KvPIH/AFLOlf8ASDbf80Yq7/lXnkD/AKlnSv8A pBtv+aMVd/yrzyB/1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVd/wAq88gf9SzpX/SDbf8ANGKu /wCVeeQP+pZ0r/pBtv8AmjFXf8q88gf9SzpX/SDbf80Yq7/lXnkD/qWdK/6Qbb/mjFXf8q88gf8A Us6V/wBINt/zRirv+VeeQP8AqWdK/wCkG2/5oxV3/KvPIH/Us6V/0g23/NGKu/5V55A/6lnSv+kG 2/5oxV3/ACrzyB/1LOlf9INt/wA0Yq7/AJV55A/6lnSv+kG2/wCaMVd/yrzyB/1LOlf9INt/zRir v+VeeQP+pZ0r/pBtv+aMVd/yrzyB/wBSzpX/AEg23/NGKu/5V55A/wCpZ0r/AKQbb/mjFXf8q88g f9SzpX/SDbf80Yq7/lXnkD/qWdK/6Qbb/mjFUt8y+Q/I1v5c1WeDy7pkU8VncPFKlnbq6OsTFWVg lQQdwRiqSflcvlnUtQuNZ8v2d5pbJJdW+qRXEs1zHcSxyCHZ3lkWNo/SHwlVYrxoCgU4qyPT/wDe Pyx/zHT/APULd4qyrFXYq7FXYq7FXYq7FUg86edNM8o6db3+oQzzxXM4to0thEX9QxvINpZIgaiI gAEkmgAJOKpTcfmxoFr5b07zBeWV9aWWpzz2tvHPHEkyyW8U8zB0MvwhltZOO/WnjiqG0v8AOXQt RtXu4tK1RLeOC4uHkeKA0FpM9tKtI5nNfWiZOQHH/KpviqI0785/y3vmt4v0xHbXVyF9O1uA0bku nMAGhR9gaMjFTQ0JxVVX84Py3aWaM65ChhqeciyIjqsQmZonZQsgEZqShOKuuvza8kxW4uLW8Oox CWWK4a0CsIPq8tvDcPMZGjCLC97F6hPQNXoDiqEh/O/8tpIYmOrRxzsaXFm5UT29FLuZ0BPHgoJY Ak7HwNFUPY/n7+WN08HqaqlnBPHdTJdXTRRxcLS8WyryDtUSyPyiZaqyhjUFWAVTif8ANLyRZ2z3 Op6nDpkAu5bG3kupI1FxJCodmg4M/NCrDj3PhuMVQGsfnd+XOmCD/cn9cM8tpERao0ojW+ZVilkN AqpR+R3rsQASKYqyvQde0/XNP+v2DFoPVmgatKiSCRonHwllI5JsQaEbjFUwxV2KuxV2KuxV2Kux VKvNn/KK6z/zA3P/ACZbFXnP5awWGnfmz5z0axijS1tVheFlmnkf444TIsiSzSBSG/aC7igFAtCq zHT/APePyx/zHT/9Qt3irKsVdirsVdirsVdirsVQt9penX7WzXltHcNZzC5tTIob05lVlDrXo3Fy PpxVLJfI3lWaSFprASxW0fo2trJJK9rCnom3pDbMxgiJhYoSiAkE+JxV1r5E8m2kDwW2jWkMLxPb vGkShTFJKZ3SlOhlPP8A1t8VUJPy1/L+WRpJPL1gzt6dSYE6xKUQjbYqrEbeJxVY35Yfl2xBby5p 5Ko0Sn6ulRGylCoNOnA8aeG3TFUefJ/lb02j/RdsIX+sepCIwI3F4ALlXQfC6y8RzVgQaA9hiqXX P5WflvczXM8/lrTpJrxzLdyG3jrJIWL8nNNzyJNfHFV1t+V/5dWrQNbeW9Pha2qLcpbxgxhnEhCU HwgutaDvXxOKqtz+XXkS5nnnn0Gyknua+vKYV5MGUqwJp0YHcdDiqV2f5M/l5b3t5ctpUVyl3LFO LWdUeCF4RRPSQKOnblyoAAtFAGKsq0jR9N0ewj0/TbdbaziLskK1IBkcu5qSSSzMSa4qjMVdirsV dirsVdirsVSrzZ/yius/8wNz/wAmWxVJPKPkS48vapqV4tzbul2GEYigaKWZ2kaT6xfSGR/rE3xB OYVfhHuAqqT+TtY1T/Bvk/UvNa2+lXz31wbiPl6cUYMN6sY5Ssd2XievfFWZ/wCLPKv/AFebH/pJ h/5qxV3+LPKv/V5sf+kmH/mrFXf4s8q/9Xmx/wCkmH/mrFXf4s8q/wDV5sf+kmH/AJqxV3+LPKv/ AFebH/pJh/5qxV3+LPKv/V5sf+kmH/mrFXf4s8q/9Xmx/wCkmH/mrFXf4s8q/wDV5sf+kmH/AJqx V3+LPKv/AFebH/pJh/5qxV3+LPKv/V5sf+kmH/mrFXf4s8q/9Xmx/wCkmH/mrFXf4s8q/wDV5sf+ kmH/AJqxV3+LPKv/AFebH/pJh/5qxV3+LPKv/V5sf+kmH/mrFXf4s8q/9Xmx/wCkmH/mrFXf4s8q /wDV5sf+kmH/AJqxV3+LPKv/AFebH/pJh/5qxV3+LPKv/V5sf+kmH/mrFXf4s8q/9Xmx/wCkmH/m rFXf4s8q/wDV5sf+kmH/AJqxV3+LPKv/AFebH/pJh/5qxV3+LPKv/V5sf+kmH/mrFXf4s8q/9Xmx /wCkmH/mrFXf4s8q/wDV5sf+kmH/AJqxV3+LPKv/AFebH/pJh/5qxVLPM/mfy1N5a1aGHVrOSWSz uEjjS4iZmZomAVQGqSTir//Z + + + + uuid:e77a5a22-383e-8a4c-8b40-e69874a74158 + xmp.did:b02edc5d-1060-4858-94ce-a2af7c1df1c2 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + uuid:23439298-abe5-1547-986a-d90000698feb + xmp.did:a7786987-d2dc-43b2-91c0-191737746854 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:a7786987-d2dc-43b2-91c0-191737746854 + 2018-12-03T17:38:52-05:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + saved + xmp.iid:b02edc5d-1060-4858-94ce-a2af7c1df1c2 + 2019-04-15T16:07:51-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + + Document + Print + False + False + 1 + + 612.000000 + 792.000000 + Points + + + + + Palatino-Roman + Palatino + Regular + TrueType + 13.0d1e2 + False + Palatino.ttc + + + + + + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 15.000000 + 100.000000 + 90.000000 + 10.000000 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000000 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000000 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 20.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 10.000000 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000000 + 95.000000 + 30.000000 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000000 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 15.000000 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000000 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000000 + 100.000000 + 35.000000 + 10.000000 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000000 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 20.000000 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 40.000000 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 40.000000 + 45.000000 + 50.000000 + 5.000000 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000000 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000000 + 65.000000 + 40.000000 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 40.000000 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000000 + 50.000000 + 75.000000 + 10.000000 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000000 + 60.000000 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 40.000000 + 65.000000 + 90.000000 + 35.000000 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 40.000000 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999400 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998800 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999700 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999100 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999400 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998800 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999700 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999100 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998800 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000000 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000000 + 90.000000 + 0.003100 + 0.003100 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 8 0 obj <>/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 12 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>> endobj 9 0 obj <>stream +H‰¬U]SÚP}ϯØÇä!ËÝû}}SÄj[ÆÖ¤}ÑŽƒ1|´¦ü÷Ý›ˆ€ÅŽ3Höì9çîz—}è ûNNûœ”‰€ø"ø•ô>&ˤW–ñ‡rœìnJP Y'-*)=”¿“ôlÖ,W0¬—ËѤ>ÊÊŸÉ`‹÷)!oQ Ö+ôRAN\' 4uRÄÎ[t«ÁBí•n¯êÕº™Cq_ÃMªáäqU/o²§ZKÆ¥-®4ö0.…"X·þ¹žOVSžÍ7ȰCQW‹ùýFßö/ú2¨¬£Ji!ׯb }¸÷Æ1Küt¦m½ß£µL  r…AAyŸ\§c4MF=¤‹æ&ü.«jÝe?ÊI@m%‹F¡Ÿ*ŠU3›Oà´^VÍì.^®¦õ„"«ùž±ÒQ3Ý=Ôyç‹‹˜ù¨A½eQÔ£‹ª)ëªbÚãõCG#âD{šØ ÚMè ¢SÖyÐÊcÐ"D7®Óóáðô¶_õÏo‹2s¤Ç™Sñ³üV+Ë™Žž3Ì¡³’çÄñ¡9‡BJÓÑûânÏ/ÊŽÄ}Bþi5ƒÓý_ +‚PX¯ß“y¤ì[]`H©w¥@ÉË·º@: ™ ߃ÂN£.“´EgɼZX¨~·yÅL1I8²˜Ö×Ý2Î+4—±/Fùm™Dï-@¯-—ôÄE((‚L“ñ>ŒŽñáX'‹$kwaÏ\q”y§j¶(oÝR7üC†:›.ç5ìXÕÈþâŒ9 +#Þæélg‹5gÑÝc››eWqÙÿun›ÿ +f Ÿ¹;&/_¾tm€;Jy•wÏO†ü'ôW€ÅŠç endstream endobj 12 0 obj <>stream +8;Z]"$P!4]$q(WU_f5N[7pTVj:Q#Bg!SpM&0eRa[_hc+pEg +L0Ub^=qU*FpZJTY@'lB1XQX1`g67I1\R>@V%eNknCcD+&l:Pj+%MkqE(CTAlKr$0? +`erU!PEi@=;if)>9DkNphD_]#:D;o.l(Ya9Z2e#BmuF/c#mEpC'@8BX$bq_3I endstream endobj 13 0 obj [/Indexed/DeviceRGB 255 14 0 R] endobj 14 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 6 0 obj <> endobj 15 0 obj [/View/Design] endobj 16 0 obj <>>> endobj 5 0 obj <> endobj 17 0 obj <> endobj 18 0 obj <>stream +H‰„– xŒÇÇÿïÌdÝ¢u ;ß.Å!詸ßÛh9Òê)ªH"‰ i"âiKÝRRZzÚCò (ªªªî‚–¸Ô%$"›lÜêΣ»çÝo·=8ÏÓ3Ïó¾óÍ;óÍ·3ÿ™÷·)É©1¨Š H„÷Ъ ¼å<[Ĉ„Ȥ”˾¨àŸ?b|Šáí~Ο=6id‚¯Ý’ÇŒ?1¶óÃê. ZÐoJ\Ld´cÕÕ©ÀІ<è¥8xÇÀ®q\BJš¯=LŠO)èDVÎ프ȴ$oÿ'CØïF&Ä„,™ËíÉ€ŒJJ—ân žcq¡§?)9Æ7~ñcv[!ÕAÊ‚”Ø.æp$Ó[S!Úàßx¢dC¸Ó`¼]+ÂÛîÞÝ÷#˧ó€J#d¡ZØûä>¿ùž¯™Ȭkñþñ“°Â"*{_Ï ñhá{ëÏ‹÷M ſ݂ +¨ˆJ¨Œ*ðg¥žC5TGj &õyÔFÔE=ÔG  !¬ÐüÛl°£#MŒ¦xÍÐ-ð´D+„ 5ï@[¼ˆ¿â%´C(Ú£:¢:£ ºòÊ»£z¢zãe¼‚0ôÁ«x }ÑC„ãu¼xÇ[ˆAŒ·1ï`(†a8"àÑ9 +#Äb$â0 +£1ñHÀ»HDÆ"ã‚TŒÇÖp"&a2¦`*Ò1Ïã{x`:fàCÌÄ,ÌÆÌE&>Â<Ú,|ŒXˆOð)a1m¡­øÜrŽv` –ªJ,h–a9ri;VÐNU_a5Ö`-¾Æ:¬Ç|ƒø›ð6ã{lÁ¿ø¼lÃvU;ð#vbvcöböãòp‡p?ágÁQäãŽãNâœÂiœÁYàß›BáŠqªòF–ò}³¯¬`UÖ'¨!5¢æIhͧ”C«h}O»è<’ƒ~¥{¢ŽZ´íÄ›b°HÅLñ‘XÀ'øGq@GE¡¸.•ô—ÕdMYG6MekÙ^v—½dùº(Så$™.çÈL™%sä*¹An“;åAyD“§dMáØ÷jWªk˜k0'Ûeâ ¾‡‡Øb(šý>¶=l?ÐVÑ-E(ëÛôÿdd³ÜZY”Æ—_-¿RUî,å/;-lLC§g~g6r¢ŒÏ[¯ÎÙ lž³UÙ稲=ew½ó”%s\óL­.®ðFŠ9îÏà:Í1Ä1È8Þp ôõívX‹pÔr^íi—Ü/ùŒ£q6—ˆ"fá…eE)Àż ÌÁ¢â‡E3‹¦Ü(z§èåc¹N~=üºùuñ ö«§Z›XÊðA&÷f[,Û‘g×*~2}ÞŸí‡ØlúMlÛÅ^ï,"_g_ðĨã¦Ïÿ=êñÂÉví™Ùœ2W®à<µNn’»eß‘“|;Jd©¼$¯Èkòº¼é'¯?ù–,eã¸|(ÅV­®·Ol-ŸþŠê ÞRI\{lYª¶¨í¾Þ­Œ3צ6ª­¿÷ùâÕ&oýGdµéW™~íÿî’úç3ïÿ€µL'¦Å3¿.1ãæ1Ý–0¥ri“®€Ù··q‡y·˜é·‡©r K™a÷p÷™m_3‘0Ë<”ÍbÎfÒæ1£Žúu™¹{ÂäÔzæïMæå)“Vq¸Š_™¦£™Èc˜ÆñÌãl&òXf²‡È©Ìd‘¯0“'1•'3‘§0s˜Êé&—¯á:¶’ IŠüÈBð.ªH•¨2U›@þT•¦Ê$<ÀoTŸ)9w‰.S05•±8M/P3æ_ fã4›ZQeÐ{Ô–^”£d +Jà vJÓiu¤NÔ™æR&u¡®ÔºSêé¡7õ¢Þô!ͤ0êC¯ÒkÔ—úá!¡eØFÑ|×ci$œ(—s%É*¢†¨)jÉ9–Y}ÑGêb¦öK¨¥=%Z:ÐXJ¦q”béH©4žÙü¥êD9Òr-íh­Ti"M¢É´Îh©oihùëÕEyÅ盽÷Ûl²$Ù$›5® »Ù$òÞÍ‹Éi àIl%Jx¨´¤,RAyõAky…v±<šZ,ˆbR(å©E… ¨U,…JaÓßÌ&–ROÿê™sgîÜ™¹s¿ïwŸ ìT¯r:bëËÓø¬<ÍeìãåÜÌ;ù=¾"Ïð\žÇ/ȳ|”?åóü9PkC†Z»ŽVÓZKPuBß§ÉÔH?#=B£¨ŽÆÐXª§‰¨ +OÒ÷èiš† +=ƒž¥™ôzŽž§致€R-¦%ô-¥Ñ2ZN¿ _ÒFÚ„:ÞL~T‘ÚCûèw¨è¿§·ètˆÓzõýªË Ô—Ót†ÎÒ9zŸþBçQy¶Ñ‡´Uçcº@©“.¡þ\¡ýè +Þ¥OÑ%|F+PVÒ—´Š®Òkô:ˆ-4ž¶Ó$ÚM t€¦ÐoQËÚh:¤Yô6ͦ£4‡Þ£ùtœ¡¯x‘N"ê.«iâé»ôºzIý„Æ¡ú}@O!â^EÏ1—Úiu¨õ#~•Wðj^ůñJ^Ãkù×ü+þ oç7ØÏ-¼›÷ñ^nå=¼Ÿð¹ƒOðqþã“|Š?æø_äN¾À_ò|¿â¿ñU¾Î7¸N +©H–IR•F¯½mÀol†µ¿·.ðfÞ ܛìäDéN™(Ódo>ćùm>Âïp¼¡?üa€tË™Îçø}>çùÏüì#Seßäò×ü¾ÌŸðßùæGy ¼g¤Ì–Y2YJÃÃy? zF&I—ØAÙZ§J9”EN½W=ˆ¼¦õ­o¡«|SYHñÊV±“¨7 «å)Š%›rƒâè^ºOÐ=d»Ä!±Ûp=òd¡HŠ pq@¼IfÃóZ§kh4ÌEw²3B_Ì¥èú‡*ÑŸD¶J¾Ý†ìŠ:€©ÇÞ¢(CZSMív!–úZD×ü¥<~æã£3[‘ápTL*÷‹1¸Q3 Hs‚3d8*ý†äʇj]>tMƒÇ59*ÇŽóS²~Ńú&_¶Ã¯ «„óõN©Ïþ [ïóÝ=¤é!]O“žèÖð„® +nã%ÎâðRjj¬õ7–Ûý¥å>»Óé¨ð·ÕÔúÛÊíNŸoÉo,Åuö¤{ºm6Âf™&$¨eX­¿ÔîW|MMÁ;—ÓߨÔdoÂ:ºï[”¶»B¹[PÚ-ÀNh É-¢±FÔèrÚ5ËérÂN_9þmÊ2¬¶–:}™ŠªMƒŒ¡Íö48TÔâ”m߃‡¦_ŽÇiqZ’q˜o9 m·JùÐAmÁ’33ЬÖË4 Z1GJmºL/ëÆŒÒŒvËŒQÐŒqÏŒ‘/Ô•1*ŠõÀ¬¨uøkˆö×ìHQ-yQ%¢Ð&UKd”MÍ;Ñ9dNsuêO׿²%м}sJ³¸÷bGQî¶@uàBàÝÀèö»lØŠiVÂRØÀ(E„RCø 2‰õƒ| Y×¢„E¶(–sŠf‡fOŽ'Ú]e‰TÝ…±Q–5\lè£áÑ +4çnoˆûDžØÐž¾è™­ÎÎöà~dŠ]êµ +ÛÚ cŸªm/ŒÆüB§Õ˜™©ÚrÄ®ðóñ̬/U²”\ãî½·j{oU"J|ÿF· ]¤ß!ÈÔ™š UÉÁ±ÔtH#÷h-Á5ÀŽå™;@X]x{Gðk|vð¹¼£›O/pMëüù@¤ ° ¿p%Ý…QѸDF5^J«-%]Xcl±8¬)®D጖Š([W.Mgw.µ<0w_kXúа8£Ê‹F ã+s#dTÊòSÓf–‰­¦ÉÏ‹ afKFUu•,XvLx…£Èü¬?ðRR»ÞÈ*ùMÉ&‹(Ÿ©‡ÖîǺÐ`®s£’ +¯jQl°<.;¸šoß´dM|‡À­ ÜAA<z.xÕ6ÇÈuDëG¡Û™ˆ¡º¢óà¶Ø\o²ÕˆÜn”F¬x¡Õõóüã#–÷²…ŽÔŽí%Câ‹™cjïè;[”¾œåŸ5ª2µÈfÍb¸¹D(±¡F‡˜ÏcÙã¡PÞ¯kX õÂÁOêÑXÚuѰƒçaœÌTú‰·*øt<@mUBÁ%õD˜æA„yaD˜{áé‰0"Ì×ß …ñŠÇU„$‘­GE¢"©'*’IˆŠ$DE¢" Q‘%{õûPý»¢àwEø®¨ç»"|W„ïŠôc0È’ušóJ8!RsR³bWKÎõøwœ¶ïqAgÕ"5UwÖ8¼¯Ðµ2'rQ¾b¹A…  ‘    … U  Ý C “ K  Èºÿ‡’)eaߪ„§b+F€R§"me‰ü¼‚\oÂ@s k¬McÃ/ú“è0óó²p+­1±¶p¢O«Šeæ9´Ri€nÔ +g5âÐrF®^}qF-Ïuhû©cïöÞì½xÏ ì½Pàö^`ïÕó@鿨¯þØ&Î3|ßý´“رãÄ6ÄÉ%¹8$±ã‹“°!!iH)Ð%ë!+A´ Œã÷Ê@€Z +Të +k˦ѵ]§V›Øhݺ‰•RisÕM¢­F¥nÒþ˜–NTÌž÷îœÑUùkŠ>ùñã»/wßû¾Ïó¾ô›¡ó¾ îËäïËྠîËྠîËྌ¡µœcrœ«Bàj»ûðß›²æg +Ÿ©˜‰;;kOé„—ÂãµÅÜG„ÏF|±S~s3Ä=8z¢®Åx¢뉚ðß}†I|Ø^°½1#È,…Zõ&4ã/éo ÔÅîæ•*Á¨ùÚzÕW Ð#ÚŠ\a|³ª^ñ–?2ß-ÊNY,RÜ5jô,{êÌPrèáÕÛN¬ÓÏ=‘»;ÝÑ´çðâøN¯¼×) üÑ÷ŸhꎅK}U¿mã98Xî’Ý,ÍKι‡n]™ô7­Ü5ðÝÛ#!%hó7öí}´tðµÏ:Ë–¿°qôø"1w(eô$}7¯£ñ…ÓØ;\Õ_”w0$  ÃAÂp0¤-œw0$löhÆiºè4]¶ó‰Íóvy(ZÒ$îÅâ·@ˆ•X¬9X÷`­ÆÚ€õ-¬#X§°^ÆBйKXÁúëS,Cͧ½ ©ù6‘¶œç‚µˆ§WééÉ9TȤ +ÑW!ú*êH…s¨pΡÂ9T8‡ +çPá*œC…s¨pΡæígš›˜öS¸‰e?*ìG5ì§^!§©‹òIWƒ¼ Õ6 óÜ‚B$Júfö>›û÷›û²_²Ç|öýþbœfE_òwÏ 3¶…µݶléÏ×t%ï;ù‹w÷±4;[Ñ%¥’+Ƕ ó‹žþèÕÜ;¹ãZp4:ˆ¹á*´¦žëä÷œçºP=Q¬.Ô‚ÃT€%|J±ʼnB9¢yåˆB9¢PŽ(”# +åˆ"s¢†ÛDŽ Ôƒî¿€`)@vѰãì˜NX¸¸8<÷K¨‡ŸÿÝÔ£šˆj¡¡Úˆ:"êL¢ÚCRc¥P‹ p.‚ÀEý¢Aô#ˆ~Ñ úD?‚èGý¢Aô#ùšæ&f +nb¥P)A +á$ðäz¾tu”®ž/]£ã*1ÐQ0:ªNGÕé¨:U§£êtTŽc×Qu:ªNGÕé¨:=_ºÓÜÄ,ÝÂM¤-¤Î4Œ´ß¢Îz]›.–U`jãkÕèqŠÄXH&ø:ÒæRæõù¿ÒÙ ‹Š%ÈO­b÷ÂfgG^þõ»ççm82{ÞóìÚ÷ÆÑo/:”›üûîý/ +¬µ&Ô³ó÷ËØ©)%–{sïýñÊjk—(®÷5/{î_ÆYñ“¾øÞ“¹Í¹Ë}Ð^¾| µ²œùÇ1æµs9À˜CšÓV3ö1-m44¥ »cÀ1à6à8pܺfð< /^`]38 ¸[i,!b‰XJÄRÓigÃi»¬f +œ%6q3p³¥æ“OÅÐŒb”oHJõè¦Mk§ ÖÒô¥ˆ"Œ8ÍÚ*”é[ƒiµå4™;´ÉdÅ}£5n¹H”!жƒÍbÑ+#_[í‘yOš¹S ÇÆ*_¬yqÛÈŽÕeŠPÝñB÷nI:qnÿ¦hI‰_Y\µûÆO]iV*»ÊWf7X[ëå3²$wÌv¾ùõ‡Û!<º.÷š\,Vööú²ëY\§”H]¼0\ìñ…“C-—¹Èfä@9ÐÇ^ŸàZûÆé´â|Y +ˆ‰ó&á@Öj ··/N§-ÜÜËÇ™Q˜-h‚‰m„“§H‘´…5EDÊFtÑaÆ9ˆ87o"ÿßšþüÉ=*+›lgžÄ›%8a’ºÔÖ¸ÏÒ?Ò³Vk0Ú;sæË''å¦ff­‚ܬâ@¡.)ê3R¼ùÔÆv°§g|†’vz§×¯ß$óL[µÿÞYÞ"GZQÒJ±ä¨êx«o@ä‰íû÷m¾²=QT"0²ZZ’‘‚¸ò½ ʼ%í±Ðåk‚K +ôÏ¿þIæa‡[q‰—<¶¶Ùêpdxoiù’ +¦°?Lý`3ÖVé÷»tž[#À'Þz9Þzyìúwr\'Í{ø%ƒ_Š‹éJ[Îz=d~t¥š%s„ÚTËkófÂs²æNyÅZ¼4KÊaâÀ+¬=†®þïY]ID¥´3‰˜i#š‰h¶eu”ˆ¨h%¢ÕF,"b‘è#¢ÏFôÑoV†{J™‡„“òGÄû¹m +OØì‰QûiVü,c:º€ù„PšLz,½'ÅìÈRýÙÕÓü}±‘™R}…›Q6 +~t}ISL‘˜S¼·0“uwÉÓ8ÓYpG›‘vYèÊ‘õÏ˪˜¼=át5’óÝßyW¹Á¹Ož™4t÷ðñç¾[ÆÊf*–ç>}\QÏËéçl.^˜´×eùºÅ:…©ŒÌˆq¿¹¬q?œà¨k*1νdªï4q)p)p pp•…kk§4´œbX~·&± Û¬uÞž Qî!§¥èÏ@ŒêqÄÒ-'lÄ'uK|ø=êνm;º¿ÚðÐo¬(Ð÷ÌŠšÏ(Êí爇ª‡ïœÁÙ´rL`êý¢ž£ +8²pu–zàiômÃl"fÛˆ»V"é‹Ç8=?õ Öˆ–.bò}ѺˆÛÖßVj‡>“ZS“°¾·Ht +¢q“™÷­·Œ±àfWQ¤Û_ÑX™ØtãgÉY^§{æWù uØùà°o .Têª^|ú-/88#'µ›ÿPFpî÷±ò ¸§ ·ÑõU"¦_Þƒ'ïÅ“÷â-*§œ.ÕËUxË:L–Ó åGÀÀ)›Ð.ÀÖ.˾„jJDH6¢˜ˆbá"Âe#J‰(µq"âf¬ò:Gïç˜ñžì8bk~Gçk"ËESþ€“•¥ +òÿ6bF¨Å³~m¸U£´ÑáuC«ûÙn¶ê‰ØÆþîïYJdHÕåÁîv@©H™^Z­énp÷äTã·þçVyÅKÏ|6É¿Íêöˆb¡&ÙÔ‡¿v#ú“o œÕ'…otßÅi!M\üæ_å ô + +¥‘ŸApž [Ý0—¥AÏ´‘ s»°ø5 \¨Ñ07«««kK^ƒ;qÊ%œ5ÀyH¨“¸AðciXíX½X«°ä5Øz=À6,~©ƒMS9RV|Î \(?Ȇ0„0>†Ç!ø]3h3h3h3h3h3h3h3h3h3h3h(?ÈNss-ÜÄdCdCÆ +áP´|ª¡ Õòm¨†âÓÐüihþ4”£†RC©¡ƒÔÐAjè 5tNGC©¡ƒÔÐAjè µ|:ÍMÌ6´pd}‰²vš[ý*VáájÔ:O•ãᦌ¼\ÀÄÇ×^eþs?fîWu­%ו{éùÜI/óà&î+Žïê\ɲ$Û+ [öbËöÊH±åC²¼–Xß1‡m°Æ¨ !\­ 5LhÓ†4 i’B L¡Ð&%%Æ@h3i:íTÍIhé1äŸBg +fšc‚ÜïÛDÌÐéxÄŽ<áÚ÷yßï÷]?»,)VýðüÃ?úç†`~ߦ7׺¾Ùpî ëxhɾûÛFW§^I5­¸ÀNýëÀÛ#Gºžg Çmë}â¶Ý©+zUŸ8Œýd:[?ÊÈar…J¨ôéTú@¥Tú@¥TúðŒ}€L'R]±$­ HÍIÚ%Æ`QÆ¡hAìfV,Æ{ÅZÎq5UkÀ¹AsëÆÉ(G.­¢B(Íd*¨P‘VS!¬f7/cb²Ó²9N6þO|’òMæ0IªLVFîT¥o,6W4'A+ñ‡YÔd6Q÷Ï-}»=Ô]ØÐÝÿ|~î¡S+æîOt6Íò,¬½}öÌgÖ Ù‡:½ÀŸºò¥Ÿá”/ŸZž‚£­‘yÜM*&SÙšØ-Lr½9¹^¼jÛS6Ç™b]4"ªËåm‘°©Ìý…4r ïü+ƒ‹^Ú‘·ä‹¯eÛl®ÚN)Þ×¼o~óê{Äwêìá¯|Àd`-JTß½ið£Û)b f“¥mߢyÇÖ +%›S¯?å¶ÍHå³ÿ¸¹gÛ`<¾kËž©uagê©¶»rU?þ‘ñSøœd(9ƒa³Ð!óDµD®øT>‚â… 8!øTêÒ}*Ÿ +À1˜¦— )Ó.Œ—>àÓ¡óéÀ#v€Oøt€Oøt(IéÛhçøM¢|Ô8_õT¨WýŽÓýŽÃgsp.ÃÁe8X«â`U¬ŠƒUq°*VÅÁª8X«â`Uœîw“¼‰êwo¢ù¿ã¿óµrÝïÊáwåºß•ÃeÊ•W=®¸úq­Â5‚ëI\?ÀõS\£¸ÞÅõ!®¿ãú—æw“¼‰êwoB~Šk£®ŽúcˆFd¶¶&׋©(QŽç!dÁ¿‡‡)6»mfoÿ÷Û|±;07^ö—îU˦où×®ù8Æ6£%/´rÝžòÜØçË¿²¨!u*õù;Õƒì&ÂKžëkŒ;,YE};{6þááŠPãКýÎÒ†×vÍ_RSœSÐõÍy¿N}–CðÃsÈïõÌ3l+D“ü 6A°bHá´WU²!öN$…YU°¬ëeÖ6tå\cÛ''{&è…%#Ãy¼æ»be'R×(•MË3uN±fØL-×›,x™ÖýipÁüCûà‘oLCG°æ»Ñžµ˜4G@¶ÎAŸšÙýg'a\ÑœJHM¡Ò1'¾LF’žß(S˜¶QUâ|í”8Çq–“jî¡zëd²‡Ÿ +þ´B)JÓ +"Ä´B” +ÑÛ·(¸%(%ãkÂÄCxÈ9à!<4…‡¦ðКÂCSxh +Má¡)<4…‡¦ðÐ^¦IÞD¦‰7Ñ„‰‡0ñŠ0YÜjÎ èÉ(mÇ£Æà£Š‰¾ô®ÅêFÐQ}_8²s÷ÎD kŒ%* ®{yA(G1³£í¯cÛ#3k_Ü~ñ;û/oÌ-ÐlMG†V¸Ýì¨ðO‹ÍYöÒãlDñ+Ãmï¿öÉÛ³ëå™›äÞ_²c7ýÌ3þó°UÍÓy°S§ìi­sPÁ‘VpRÁ99*0*¥ À°àÁFOOÕ•¤Em ¢Ê0vÅ#ʳ®ª6‹VÍÚ#…f"YØX,bú“fñ”­†W…ÔñºL›;·ÿç}=o=p9CE¬Äš¥Hn>¿í¹ÎîB¦­9õn×!Û¾à3ãÌmžL‹Ý‚Ç×a°dedL{¢ç‹«†ïí:Ö‘5…³Ú‘šŒNëé̯â}’²[0©Q3^…±ÉdÎàïfTM¡ªê¬h±Ç„7GFP€å÷Ž_3þÞøS‹i^1Ê´ÐĆO#XYðíIz¶£Œß5çlí¬Ïs Î%IRAu΃tvS’³|¬$84/ŽÇGòˆ#yÄk\Oq$8¢Å(Sƒß«ÑîA"è¾MЍ3Eê–`éT4¦Ÿ#ëS*c6d´LÆlȘ &cÀd ˜Œ“1`2LÆ€É0&cÀd ˜¬Oé$o¢NéÄ›hS*cJeL)&3@`ÔQ…Ê{¬YÄ ò©5c4‡"yr¬®4VG+ŒÅÅZÌê¤Â—‘Qc£,û­¹kø€˜oâ,™ö¢æ^9±ÜüÛΆÍÛÃ-þÖüm¶j¸7¾ÐžícßÜ:*z³ò{g¶>Þl8áô–óî+ôôÍ­_úFêý*Ëj1X$«õÕýǾÚ>ÜêöÉ®5mE¥‰ó¹u…Yþšé³îëêb ãWǯšrÍïa6[ØÐ!t,«Ý2¡k&œ I5=šP³&Écé|xO:Cµx׃³G;ëî^›ÆV­âôJM ƒ&ô š@M ƒ&AÈ  d°„’AÊ®KŸcJÛ{hßm#–ÜaõÃ*VS¡Z…¬5²1,-L¶2¤ã&¡Éš,¡Éš, ¤H E)H‘@ŠR$" ¤H EÒq›äMTÜ&ÞDÃMn’‚›—„(+P³]TåÎÃ*ë‰Qö£p¹X…½€5Gw‹:J‰p«ƒµXLVs†kËåþL«•3°fÖð]ß7î]ûâý‘i‚gïÂåÝ­ÃM=û2 +‚É{ÌÚÚ3ð¬éÑâ‹"{î'?qÚMÖxAÐb㬙Å'=ðÎvï=+Ï÷”ÃY«[ÊJ+: {S;j +¼%Á¿ÝppΣhØÜñ+ÆåÆß0ÓØßš[ñÒ6?tÅ]ñCWüÐ?¾±_×?tÅ\týpQk]LæÍ^›¨`R›ïrÓ&ªeyY^г¼±›äQ Z@ ÃÄp1\@ Ã|Ž€. † ˆáb¸ gùIÞDÍòobVÇJÔ‰ÁDp ‚0‰€IL"`“˜DÀ$&0‰€IL¢Nä$o¢9ñ&‘"ˆ"ˬšÈÕÅHæjk¼·¶âÍ übÆååíÛç¿÷Ykuñé²¶E3*+vNŒÎÒ¯·ÎÛÒ6xtEíÒÎõ­eþÞp"\¼ÚU˜ã(èš³jé—£`Zû³=yéÁ¼Õëæ_ÿ/õUÓÆ}†ï|öŒ Æ6pØæ’lÎ0¸|($: Œ$$M–…|­iÒ,¡ªhDÚ4­–d-SÛl˺ªë4ijÚi m:í«ª:oSªI‹ºíŸ}ü7mR—I…îy¿;¸|m“òׄŽ{õÞùwwïûüž÷yì¯9ÞÇI‰_žºtb RüŒ3²\°›¬Eq!âBº qâ"Ä]ˆCˆCF~U–ŸM'B±N×Ñž„9Àk_Ÿ`ᦋ¯ à5Áæ ý¶¿í0žßM¼e79«Œ`[Æ)ªgUŒ”5€Ä…JFVeÿ·d%’¯ €Š +Ãé8-4ûHœ2ÀØhjr:+2Áâ'G –³½qèå5»ÃîôÕî=¯;-ÙV=Sµ¡ãðÇS1õGÇJHºíyŠÞ3ÓŸ9»æÊÔêýòrë“n­$wó?¾¾ðÅ=3A_nÂéì=œ¨T»~z÷wÊ4†+Dçs¡´í±ïm²÷'\|Ƕã-'FΕ¯Ÿi=]+N8|öb]~qðÑß½pôZ¤bc‰¶çò¡òUùöœsomªnÏH’ÃQâùÚ‹ß Üâ¼ +Í÷ 07ÜÊ0¤R”zE–ŸÍVHˆ[·q2k¢3B`ŒXÔV=%ê-‰%b®p›‚§Ìù ;z^ë YriÜ%”fy®"Kþ€Çô>´½Ž97ÒÜW@qCõP1Ù_c<,:9s1dZNbˆpŽŸSN3+{KSQáÀúv-ÝÙ®i©®±Â5‰žðþ ƒ.e¤¦v£CÌñ„¦ÿÚXÿ›Å9O’¥ü­²ýÔÚÎGRÞbÏ7sËJ"™')Ëãvûâ+é7;W8rs¡¶“¢èq)Ñ'nPÔ¾…÷ìÛ¤_ Î}Âvñ¹y!ÃdUAÆ_š”1IL’6™$ޤ±½Ó`’4˜$ ¬§Á$sØð8³©PMˆEõFÄ&RD“ÁDÊ`ôd0‘2Øas"e0‘2xÈ&Ê +!ÃfJ\美ˆcVÍòó#K ” &, ÔO‰~K×Rb­%1F‰1ÞôͨAˆ}.¦^Ÿšž@30ÖBTÌ"?ì×é³ú…böbýxÔnÜ‘w¤p)îH¡)P +”¥@@)P +”¥@@)ÁCü!‚?ᠮǺ)¶®€u{³IÙ¹‚™¦P5÷`Ø|-\5ÛÍ}šh¡3ldÞhH%Š!¢i“Š+h/™¸N±¹ÞV]eß”Síž ½4ܺ£»0/Šýíác­Ï,~üúÙwÇÔŠ“ÍõPþ-;{?Þ×3Ùòý…ÆæñôðôôØÎÇÅÊ™ª¢’!‡Ë]üÚ¹ýoŽJš^S"+jó·5 \÷¹mMe¾â’J§ÛÞvb`üúäðù¡È`¤µV•(Ÿ©YWºúhïžW?‰ˆõ=ÝshòÉ™ÉOþf— +[eW¸5¹ïÂæÖv¥«ÜÓâNA°Ÿ—[…-âºYa«ÎÕÓV”(—t“~«nr#v³øš0È0c:¼AËd‡‡‡XC¬1µE´@+Ôg‰6À^s_ó¸=Ë](é²NÄÆ +Cˆ‡Œ{¶JÉlL-%ô ¤Äƒ–D;%Ú-‰NJtZ#”±$F)1Êñ\ ÷2 ø”4‡é%†­$^nØj4˜&QtƒVÈ/óþbrf&O%:Ä&ÎdN"3_ÀrѳÝF²Ý͸åŸråU55l{½K’l.»×+ï:Òy6ž‘–áþRwsïÛ=mËTesÜÅÌ-ÞÈ;’ç“]®ü‘é§.Ÿ}Êó»<’hK:/>sbÏÃ]•¾ÆÁc‹ Åñ¿âäz<ŠUŽ)!OÐ…3ó/9à4*™=ó¢D^ÇÅYÞ>êµ ¤ºWé&÷©ðAK'”[%4JÌáјbu4G®AѬ É±’Ì +‘j/s{"¡ù¶Â.O‡æ&ØQÓ»Óõz:ý“w§ý¨›èr œû^ÚºáŠ1\rØ1•ÖëÓtÛÂÕ¤¿Ó{ýð•ÅOPŽ\Êa™—gÊ +€ªÍ˜»õÂ+óxqÙ¨ÌíÅÜiše_i–}¥YöÅü+ÿën¨£D%¥D”Ôj&þOð½¥r÷†$ê–Çðvf|—e4^º Þþe)]qS9¸é¢ôca8>+ è\…XªcVÌmá+7ë>aÉD‰cSw[…r#î¬bwòêÍ +U^<&¿§ªŸtGƒ'²4ùjäëèÜ•åÜI¿$^*ÒùãÃ÷ìÆrñ„N Ý’h Dƒ%ñŸ‡¯ÁHx¦aÍí6GµÂŒ£D‹šŽ´Â¹ç>}¹ñ|ØœK]Ç|ã\ðEH*1,.1Uµ)º|V+7•“ä©8òÞ˜Dˆ’4—Yóð…5n§ÓQì?°«»õT¾»ð ›×=Ñ,/Ê{O~vÓ2NŽoØÖæÏ“åQ—ËåÌ}`âR(½{ úÁ[§ôP@’°ÁþÙý­¯6¬Îô=zºñ8õ|úG{™ô3¡@ÚJ¡%­±¬9™ò +@yLå€ò +@y˜©]ƒcy¸€—|96*³Ó[^è-/`ä…FòBoy¡·¼¦ÞòBoy±4×Tá%M%QÓ$‹¦rQÂÅ·¡Bî†l—‚'+P= +TÕ£`()P= +TÕ£@õ(P= +TÕ£Àv)°] +l—bz·û\„{·;1¼›ï¦0ï&¡(ªéËTø2Õôe*Ü +7¤Â ©À® +K¥ÂR©°T*,• +K¥ÂR©¨Ž +K¥ÂR©°T*,•jú²û\„û²;!_VÔ$4ÆÒ¤ùª«ZLuG°–{Äàï-朹93ñêî²úd.nøÊØù‘É—Å÷ÿ ª‹7õ¥¿?»þñÎÏÿtrñØì;—þ¼ãm¦«tÿà®vá£y¨mî‡xÞä{9:]Yj>CRHŠIq )$ÅQ߸‰¤8gHŠ.©T籊X5â`–f&9w¡ŠNÊšÜÝy(I‰¤%ÑF‰6GSaCXV2úX‰µ#78´²YÁÍl‹QÁ­œ ¤™Ã"¤6+'#Óé‡s .›,Ù<šÉ1:PZ_[[#Ø¢ŽúÁƒ†»üÄTÒf“<î@ƒ˜ç¾:¦šö”…}ÿ&½Zc£¸®ð™ÇÎÌ®íemãkü{ñcm¯×clc08.®)`;Æ¡ŽÁ18„’JJiKB$TÚ* F´ü(2Èq%êFU)m´‰’ôGAŠP„TJ¤QTUUÒ&­ííwî̬—5[°ôéϽsï9çûî¹þ£Ï6Ô:´cþJF"=±ÛJ™òGZ)ݼ‚JÖðP­á}¥‰ž/‹¯ÙÁ*Lˆjü¢k¶v¤Å{ÖBq5qÙœÏÑÊO`s”DíðÐcAD2ðe2À!D4@DD4@DD4@DD4@DD4@DD4\6?æ$6›Nâ°Ù› Áæ|lÕä•3›M°ÙtÙlb§&8d‚C&8d‚ˆ&ˆh‚ˆ&ˆh‚ˆ&ˆh":&ˆh‚ˆ&ˆh‚ˆ¦ËæÇœÄfóÂI›£E›½rhþÊÆå‡+®h|rÉ¢ä¾W»UÒÓí’/¿qÅÊUcGªÖÏU´t†ú§Ç;&št¥Õ“‘Ûü䪡]ÅMõßÙÚvëÊà÷6hªìÕ¤º¶®5á%Æó#իͶŒœöáæ Gû˃{ö®«3«Jv® µ”û«Jê¶u{7¸HStÝWÓ‡:¬‹ýS>¡þ‡úo® ®¬ T”rOt4Ž.°Í½fUÃV×Û¾{h³_wìH^^…}Qñcfsûã:cûn÷äOèÆ¹þ³àgÕßÏrÖëø¶ª Ì`ySˆ»h—^°?Oçv@Ñ@îF~¬ 9•ñJ³• ot…¶sM~ZÆÆ€w¤)¨çtXÖˆ¦ø–†›«¢¡ôúÚÊΫ£©Ì#)RU£¨®,ú{§Yµ¸î¶$KŠþ´$Í¿ÚVÔu¨b™ß›_ÓÙݵ)-³ùŒ}¤žSÞ¤g$hÓv¬¶“#ÄÑc?¡»Þ˜¿µº»ÌKè +óºl>ó#‚ñ!< áI$!‘„\Dó7ÙN§+\éøð;¿ ~—ð/Ó1³{ŸÝ‚Ñ>ø}Ž?Àñá:þü!dž?ìø£¬Gõö2××Û“ŠªðsUøí;’'¿LÚC¡)äÀ‚X r`AS,hŠM± )4Å‚¦XÐ šbAS,hŠM±\azÌIlaZ8‰#L„É‚5D*ì®s¹¦ÛV‰æ:>zì{JY(ñüáóFœæËíCêÿ¼‡3Éî^ÕsGžèéÕ”öþ쬚ÁöM»C…ÅEÖUï¢Êå%ïo xu¯¤*ZéÖµ [+—æúåʪɊselE›ºéÙ†þlo~Nm¸t¼§|UÑëÁñÎÅ>Í'µæ[^ŸÏH/ùò…Ö?|sûŠÒâ<|®hhóÀ‚7¶þ´õåãœWÔ|`öµG™¢úbÂ;´ˆËJý!1+…p9Å% ?˜P²ì7Áobj/ÉÑFq¦W†ŽpÈb’ç N9‹ór‹¥Ü¼åÍY vS¥=¢ûå4É/#áh~vAqQñŠh¹U]>×ΪêþÖý»w, +f†Ê;ZCVñÙ µx|ßS[†|Ñ–¯þèÖ¾¯u•Z³÷^ dû +ÚºwíÙò‚ôÊ¥‘Š%F‹®·èš/h<¸ùì‰Íû×J/ÕÒ³s|íºÞ./»=wiöoG^h[ıøÊÏÚþ²uQû§ÒƒUÎW¾ñ]¶×ŸûøÅ™®3ã‚w;w>|K²¡½:ûQÆÍ™®ÙýÄÓ„?íÏšóHvÑJ'åÏh§zƒö¨D­Ú¯h\k¥ai’Ê“t€¡Ò ÆwÊ­Ÿ¤0~÷’zCÊÁû«€oeÒB`-0¬šø} s,zå$=åùÕã[åê_©À3EÝZ„‚ðÕ½T«Ðjí"Eäiª—'cw=W)б +ýûT©MPD롈zšaQ¯ÿ†Íû&ú!ì>à´âÃ\‡é~s£¶b÷P·\;\£\'\#‚#ÔËëõs5r•ª«à’^s¦ wO³Ñ¤}œr0åÀÙ¯xÏÁüŸ{‰}¢†ÁýB ž5øÐ–ÑØ ¡C‘Øø?hêžÃ¸EcúqL¸=3rðù,9@9i5”“q¾g8W`‹}¿¦bާ{vñÙ$êò"jq¸ŸãtƒŠ¼a*J; ÿëx†sÖ4ÞŹ€÷ݳ‡ã+8ÐK2ŸËiÇ(èü¤ +í÷TÁ¼ðn¤ˆqù9†ºvx+4ª7v'^ß^—÷ñ_è;4Ú­—x$ñ&qmâ¬v9—<Î +Öûäï$ë†<{ë?ãìŸRðÔëÖé‚}¸Ú’4*ÞÇçu5–Ïi§±_À}A²MÖŇÙGÕMîyç\ÝLÒÊTqû çÈŸÄùÔûØÍW²½_;cw’ì=®]®¿d›JSãö!ñåMôIŽM¥·)u7•M¡ÇŽ]ú¨õÏüfŽºÖÕç‡YÖæq‚} žÇusu–ÊD_ˆ÷D™T.gÜØ'h$ëåizçÖ©Í}>G?àþÃÝ—X“SÑ¿2÷œšßtz¢¹­À75•{ï´ÅïÖ§ê´ÖØUš;“züÑìÃù1wG¹>7žjÜÑ‹*·wH]±)udî—)Ç“ëb>Ÿ´¸ }Š<ò¡Õ§  Ã)/o©$1ÞdÈ“³?.o¿~ ìR×á–˽-œÇú£î‡ÁüBþªµj +¡¦Cê:¬Yb|Àé§Ê°ßZù2zï‹”Ž<7 §5ÆZ¦Sñ9µúûåÕUðoïÞ{wóÊË•š®¼!6Iy) k0!5) ‘Â4M$Ù$T¨Ô)´Ð +´TúÐѶ0Œ3@UT¦ƒ”Ú"uœ¢ÈLk }Ø +S¤j Zzý»wò‚ÐQüùÉüöûÎw¾sî9çž{¾ïÔ^ä¼ +“Ó!¾šè[é»a˜güY‡<†4‘ßcMãî¥ö(>úKøçPW¥”OrNu£Ež"eH•ÙŸoòyhŽi“›h;MÛnŸÓ&Épí<}-•á¾g9kžC§Þ·VùæÚ§µ_'t½MºíiŸKBfË-,·øž‘ÁÔÚóbøßG®Åo7ÌÓ9Æ—þÕ}T{Ï>ãÞE‡úß°/ -•ëó~¦$ï£0VÁHèèãÞg§¹~_Ö6[l^%Ñ0Ü­«‡\Èû7~“øx0ôJ6ß`™ê+µ?Á6f轉!]¹)2z¹åWæ¹z„1?ÿ"ú»öIr©,öW弫cŸR1öèãì³ÆC2*°Ç6ÀAì-’yÁÓÎ×@ä|“oe½zŽ¿In3á¼zZB¾½ÔÏ”M|Ï ‰µ×ä^ú/qçž÷†o“jçÞù©m¤ofÂæè?äg[ò$³×°ŸþäÞ¿Aî§¡]åŽÃ`5~ßF~Þ¥nŸ›·.ƒ¥n;u^‘º¿#³a"kw\féÛÈ7<ÛQ÷{‰8wÅ~¦±Ï9ìd¿+ܲùÆú¾ôU8í*éÓ%P"5 +ý žq€yü=,wøÿ"s™w~+~»d¶r9ÃóÉ¿ök÷šljÎéÑFLÊ`œÓ÷Fé«0NI§yŠˆÔß” œ‹óæpöÛöÏ:Þͽ2^]*UîÁ:•šs$¬mÁ¾=(ƒØ3?欓YªÎÙ3¯P¿Bæéo±_މéìöÅÇÄ"úN#˜n ޾Œ`Z9½½c3¢r“ñ–„ÌÜÃÜår€µ[Ü#%3Àø£„‚|qÁÝȃ𜢠•PæxU$󢄲úÀp(Qâp ß“ì¡ +ÉTkáFB~ž­?ÅûØ< gàcÊ |`¤ÿ.ö ˜yN"R¹É[Ó&úýÒ¾Ÿñ¾„ßO$¢ÖÏÄÌ¥~õP§ÖTÙâóKì}èϦkéo~?ÅÎ8/#!#&!Eæ^æu™‡¬BŽCB €ö‡ðË’©Fûb÷Ý8_ +Ø[‡å!ÿ§|W;ìnÃ'jͲW˜üøæ·Ò¾¨O—úÚûøï^C'†¬‘c ö'9ÏïW界Ñkø†3$רJž”Á·’÷¿Á™Ã5P󻑨uƒ~®\íÊ0²a”BFÂ`­Ù>t òfû"¼ã¬÷µ˜ïÂ{øo¡Þá e>çU‡4re¨”©Äáþ.Óµ­¾AÐXð±1 =yÞ•ÄSŸŠ­«Ýx;ȕɩ¶²–[åv¨H´M"0Ôl’0gl¹ùw7KzCÖY@äøt3ò[úZ¹YÅ=GÊð¯AŸèŸËúK¡:ûµûdd©A]Š ÌAíÿY”땤®š6·91áIÎîFÉÂ~íóн¿zÎõ@»L…3žtžpâFMÏ8¯3‡tܘ–˜—}>DÏD¾ƒäη[ÿa2>ª¹_ µé8krLSk—гŽé°®ÎÚ¾=ë|¨÷Jâ}¤"ýS¨×73ïÅö­‘&}!wò7µ—zöÓÕ¤»Ï®%µ2Éüçq¡‹¸u'íùü›—¸yŽHNc‚<2”%TÍ‹ pÑi$‘nTãu°>AÁN‘Ñ#DŠ—‰”2–±O‹ŒïÏ•k‡È$ž1yÈ%¾Z› ò0Ë“}‰ +2¬¯S_¹B¤:~9·®ðððððððððððððððððððððððððø?Â'b•Ò[^”€*ñ—)¢‰^'ºSΖÇ]»H+$t¿|ŽRB×ÑWºº‰žôH±lÃÓ§gPz]ŽººOFùv¸º&½|Ç\Ýý”«ë2J ¹º‰>ÅÕ²@[\‹/ïhi^Ôem±Š'L(.œ0¡À* ‡ÇZ‘x¼5j•ÅÚâK»¢VeûÂ"ë_ÝK¬úåñ¨Uk]ÚÕkït#­­–ãØiuD;£wF‹f×ÖM¯¨Ê¯mhmèjiΈµ5´_¿1Y²Z:­zmnéd`ÑF««£¡1ÚÖбĊ5YÕxt©E¦I™Ä$.Ë¥CZ¤YI—X²ŠeÿÅRèÈ,%æ,Z„qÞG]µo£´”–QzQž•Ò. ¥È­½Vï%”ëñ‰;ýÕÑ¢Õé­­]:ÓzŒPÛŠ¼Ôc§SŠ"Õóïä·ÏÙRK_Ó¥Bª$½V N¯íô[(3œq7PšA‹fž¨ê;>C»á™^g!ÕüÜ96;åÄJ«yZèÔ6RjsÆ¿[Lšø­vûèêYÛˆLc_;vX–Éþv +#ÜÅ7cˆ–ïÛÅÇàWÊ”rO]ŽôÁ-˜¿‡oã+¬óKPÆ\f‘=tô[ù™< Ø: 'MÞv-“]‹_¶Ë^eU.›Ó,†> endobj 10 0 obj <> endobj 19 0 obj <> endobj 20 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 22.0.0 %%For: (Nicholas Carter) () %%Title: (daemon-results.ai) %%CreationDate: 4/15/19 4:07 PM %%Canvassize: 16383 %%BoundingBox: 25 -681 571 -55 %%HiResBoundingBox: 25.416015625 -680.318548387098 570.951612903227 -55.50830078125 %%DocumentProcessColors: Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 244 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -792 612 0 %AI3_TemplateBox: 306.5 -396.5 306.5 -396.5 %AI3_TileBox: 18 -752 594 -18 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -514 23 1.55 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -514 23 1.55 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:0 -792 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.6 %%EndComments endstream endobj 21 0 obj <>stream +%%BoundingBox: 25 -681 571 -55 %%HiResBoundingBox: 25.416015625 -680.318548387098 570.951612903227 -55.50830078125 %AI7_Thumbnail: 112 128 8 %%BeginData: 9202 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FF5252A8A8A8FD047DA8A8FFA8A87DFD60FFA87D5227277D7D52FD %08277DFD60FF7DA87DA87DA87D7D7DA87D7D52527DFD62FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FDD7FFFD04A87DA8A8A87DA8A8A87DA8A8A87DFD07A87D %A87DFD05A87DA8A8A87DFD07A87DA8A8A87DA8A8A87DA8A8A87DFD07A87D %A8A8A87DFD07A87DA87DA8FD20FFA8A8FD09FFA8FFA8FFFFFFA8FFA8FD06 %FFA87DFFA8FD05FFA8FFA8FFFFFFA8FD07FFA8FFA8FD05FFA8FFFFFFA8FD %07FFA8FFA8FD05FFA8FFA8FD20FFA8A827A87D7DA8A87DFF7DA8A87D52FF %7D7D7D5252A87DA8A8A87DA87DA87DA8A8A8527DA87D7DFF52527D7D7DA8 %7DFF7D7D527DA8A87DA8A87D7D7D527DFD07A87D527D27A87DA8A8A87DA8 %FD20FFA8A8522752275227277DA87D522727527D277DFD045227277DA8A8 %7D52FD0627A85252527D27525227277D7D2752A827522752522727A8FD06 %27F827277D527D7D525252272752A8A8FD20FFA8FFA8FFFFFFA8FFA8FFFF %FFA8FFA8FFA8A8A8FFA8A8FFFFA8FF7DA8FFA8A8FF7D7DA8FFFFA8A8FFA8 %A8A8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA87D52FFFFA8FF %FFA8A8A8FFFD04A8FD20FFFD1AA87D7DFFFD32A87DFD20FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FDFCFFFDFCFFFDFCFFFDFCFFFD8CFF52FD %06A87D7D7D52FD08A8FD5CFFA852FD0627527D275227272752F82727A8FD %5DFF7DA87DA87DA87DA87DA87DA87DA87D5252A8A8FD5EFFA8FFA8FFFFFF %A8FFA8FFA8FFFFFFA8FFA8FDFCFFFDFCFFFD97FFA8A8A87DA8FFFFFFA8A8 %A8FFA8A8FD04FFA8FD5DFFA8277D27522752527D527D527DFD05527DFD5D %FFA8527D7D527D527D7D5252A87DA8527D7D527DFD68FFA8FD07FFA8FFFF %FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8 %FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF %FFA8FFFFFFA8FFFFFFA8FFFFFFA8FD14FF7DA8A8A87DA8A8A87DA8A8A87D %A8A8A87DA87DFD05A87DFD07A87DA8A8A87DFD0BA87DFD0FA87DFD05A87D %A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA87DFD11FFA8FD13 %FFA8FFFFA8FFFFFFA8A8FD04FFA8A8FD05FFA8FFFFA8A8FD06FFA8FD05FF %A8FFFFFFA8FD05FFA8FD1AFFA8FD11FF7DFD13FF27272752527D7D7D5227 %527D522727FD0452A8F852527DF8522752527D525227522752F852F87D52 %7D52522752272752A8FD18FFA8FD11FFA8A8FD12FF7D7D7D527D277DA8A8 %FD087D2752A87D527DA87D527D7D7DA8A8A87D527D52527D527DA8527D7D %27277D527DA8FD17FFA8A8FD11FF7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFFF7D7DFFA8FFA8FFA8FFA8FFFFA87DFFFFFFA8FFA8FF %A8FFA8FFA8FFFFFFA8FD05FFA8FFA8FFA87DA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A87DFD12FFFD19A8FFFD0BA8FFFD36 %A87DFDFCFFFDFCFFFDFCFFFDFCFFFD0EFFA8527D52FD04A87D7DA852FD07 %A852A852FD5AFF7D277D52FD042752277D52272727522727F82727277DFD %5AFFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FD62FFA8FFA8FF %A8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FD07FFA87DFD67A87DFD06FFA8FD68FFA8FD06FFA8A8FD %67FFA8FD06FFA8FD68FFA8FD06FFA8FD2AFFA8FFFFFFA8FD39FFA8FD06FF %7DFD13FFA87D52527D277D5252A8A852277D7D7D277D7D5252FF5252527D %5252527D527D527D7DA8A87D7DA87DA87D5252A87D7D7D5252A87D7DA87D %A8A87D527DA8FD17FFA8FD06FFA8FD14FF525227522752277D7DA8275252 %5227527DA8277DA852527D527D527D52527D5227272752FD0427527D7D52 %F82752FD0427A85252F82727522752A8FD17FFA8FD06FF7DFD13FFA8FFA8 %FFFD06A87DFFFD05A8FFA8FFA87DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8A8A8FFA8FFFD07A8FFFFA8A8FF7D52A8FF7DFD18FFA8FD06FFA8A8FD67 %FF7DFD06FFA8FD68FFA8FD06FFA8FD68FFA8FD04FFA8FF7D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7DA827A8FF52FFA8A8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %7D5227A8A8F8FFA8FD68FFA8FF27FFFFA8FFA8FD68FFA8A8F87DFFA8FF7D %FD68FFA8FF52FFFFA8FFA8A8FD67FF7D7D27A8FF7DFFA8FD1FFFA87D52FF %A8A87DA87DA87DFFFFFFA8FD05FFA8A8A8FFA8FFA8A8A8FFA8A8FD04FFA8 %A8A8FD22FFA87D27A8FFA8FFA8A8FD1EFF7D2752FF7D2727527DFD05527D %275252527D7D5252275252272727527D7D7D277D5252277DA8FD21FFA8A8 %A8FFFF7DFFA8FD1FFF7DA8A8A8527D52A8A8A87D7D5252527D527D52A87D %A8FD05527D527D7D7D527D5227525252FD22FFA8FF27FFFFA8FFA8FD22FF %A8FD1FFF7DFD25FFA87D277DFFA8FF7DFD68FFA85227FFFFA8FFA8FD68FF %A8A8A8FFFFA8FF7DFD68FFA8FF27A8A8A8FFA8A8FD67FF7D7D52A8FF7DFF %A8FD68FFA87D52FFFFA8FFA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7D5252A8 %FF7DFF7D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7DFF27A8FFA8FFA8FD68FFA8 %A8277DFFA8FF7DFD68FFA8FF27A8FFA8FFA8FD68FFA8A852A8FFA8FF7DFD %68FFA8A827FFFFA8FFA8A8FD1FFFA8FD47FF7D5252A8FF7DFFA8FD1FFF7D %5227FF7D52277D7D7D52A87DA87D7DA8A87DA87D5252A87DA8527D52A87D %FD05A852527DFD22FFA8FF7DFFFFA8FFA8A8FD1EFF7D52A8FF7D52527DA8 %7D52272727522727525252A87D52F852FD05277D5252275227522752A8FD %21FFA87D52A8FF7DFFA8FD1FFFA8FFA8A8A8FFA8FFA8FFA8FFA8A8A8FFA8 %A8A8FFA8FFFD05A8FFA8FFA8A8A8FF7D52A8A8A8FD22FFA87DF8A8FFA8FF %A8FD68FFA87DA8A8FFA8FF7DFD68FFA8FFA8FFFFA8FFA8FD68FFA852277D %FFA8FF7DFD68FFA8A827A8FFA8FFA8A8FD67FF7DA8277DFF7DFFA8FD68FF %A87D27A8FFA8FFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA8FF7DFF7D %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA87DFF52FFFFA8FFA8FD68FFA8A852A8FF %A8FF7DFD68FFA8A827FFFFA8FFA8FD68FFA87D52A8FFA8FF7DFD68FFA8FF %27FFFFA8FFA8A8FD1FFFA8FD47FF7DA827A8FF7DFFA8FD1FFF7D5227FF7D %52277D7D7D52A87DA87D7DA8A87DA87D5252A87DA8527D52A87DFD05A852 %527DFD22FFA8FF27A8FFA8FFA8A8FD1EFF7D52A8FF7D52527DA87D522727 %27522727525252A87D52F852FD05277D5252275227522752A8FD21FFA87D %52A8FF7DFFA8FD1FFFA8FFA8A8A8FFA8FFA8FFA8FFA8A8A8FFA8A8A8FFA8 %FFFD05A8FFA8FFA8A8A8FF7D52A8A8A8FD22FFA8A827FFFFA8FFA8FD68FF %A8A8277DFFA8FF7DFD68FFA8FF27FFFFA8FFA8FD68FFA8A827A8FFA8FF7D %FD68FFA8A827FFFFA8FFA8A8FD67FFA85252A8FF7DFF7DA8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA87DA87DFFFFA8FFA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %527DA8FF7DFFA8FD68FFA87D52A8FFA8FFA8FD68FFA85227A8FFA8FF7DFD %68FFA87D52A8FFA8FFA8FD68FFA8A8FF7DFFA8FF7DFD68FFA87DA8FFFFA8 %FFA8A8FD1EFFA87D7DFFA87D7D7DA8A8A8FD09FFA87DFFFFFFFD04A8FFFF %A8FD04FFA87DFD23FF7D277DA8FF7DFFA8FD1FFF522727FF5227F8527D7D %2752277DFD0452277D525227522752F8522752527D52275252272752A8FD %21FFA87D52FFFFA8FFA8A8FD1EFFA87DFFA8FD047DA8A8A87D7D52FD067D %A8A87D527D52527D7D7DA87D7D5252277D527DFD22FFA8A852A8FF7DFFA8 %FD41FFA8A8FD25FFA8FF27A8FFA8FFA8FD68FFA8A827A8FFA8FF7DFD68FF %A87D52FD04FFA8FD68FFA87D7DA8FF52FFA8FD68FFA8FFA8FFA827FFA8FD %68FFA8FD04FF7DFF7D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A87D %%EndData endstream endobj 22 0 obj <>stream +QƒM;£Çäü9Ý…ú(…æ\4ás/ù¹¥·Çù%7g»J×úê“ÖTð´þÞ',»3ÛѾ¯cTokY_Žæd+k§۲¯16$üg Sz`ƒ§­)›¢g$Õ·ôÀ>ôÃ’× è]KÓ§5Cșž¸aF§ï9éÍ{^&"h"®èh¥¡ANO\vGŒ>5‹þÅHL¸èâä_k«¸ijO¾.؇ކä³-õoü-Uo¡Ñg}ì¬;‹=u‘Àº~rˆ÷ ²/µLØž‹Gñw?XPÔ¾Y1!ÓfU¨¾jÏÇÄä²)9,rÕKþŸe¾üŸ9®xÏÀ. 3½mÅ·æý¹?Bh<Љ4rÕ¯ÛÚùkÖVªS}Ÿ”÷ælNø}Ф«£]uO½´U+—ºlå@´¨¬ƒQÿëO´ïãPBz\‘CPúx¸­ò±¿§áõŽ‹Åý>ݪø<Ʀl»È5kfJuÈ@©^Òà³VôÔ²E³Ö(hŒp·¡Kö¼íý³ƒÐ˜!Túo}õŸNh±YíåOvldÀŸ«æµÔ‚†„w¿t@S^~ñQ?¦Ôu"u߃®þ:FB}öÓ›N&*d¡ÖZøÕÏ&ú!©ÿl1|™ Ã7]¨Ì% $*4z»¢n| ģı~ô{DVôITö«?¦• ² ;²ÀȈ=ë`%_ôµUÜóKê#&¥Õ»ndÉçqmÃÁÃY¹WC&tå·)^Û¦U¶fiŒ]µ"ÓWlÄÒm7¾ößEÁÀú—#£•¼,Žþû§ýI®øÛ¼Pþe’q4ó»dYÓðfZQþÈ?Ð1¥eժɵ×g„Ì}7¹~×V½9T>¯åÁ\º[ì’¿lŒÒóv啱vðãêƒCPusœz¦·!犞P~wL\wRÒð$¤½[7 ²ðZÁ­YsÒ¦•X°bD§.19‹&ZŪ‹ÙãóÖlÄ‚ О:|þŽGÀÙò +˜«FJñ´´)b›üGKéóý¸_Läâ¿úɵ"_ ƒ§¾º8ÛÕ èùç#¼¬Ëãâü‡#ÂÜ*TÜi^Iø)<á/+«ô*õÙ©…îª÷_øê™ÎЧvÖu7᜴ñéO½µ¯~6 “ι·Ó^üVqõç ttÖèßq2ì»— Ý3Á +ƒŠŠ7SÒ²ÛvQÕmlAÜŸÝ iç¬ÄÜ‹:TÆ_|þåqAã=#¡ðé'»Jï”ì*òÔů»cc–^]žío|1?„KëGF޶4=œéå—LK;j§{)‰‹*\R «üöX[áÕÅþæ·|ÇC¬YÐAbæÕ°ä¯ü–ß¿;Ê£o{™È5;¡hg”…ßó x{þ¶ÞQmÕB-_5RËä˜ä‰ŽšgNAÉu51ï‚SyžVœò‹–wÛL/¾%ixB‰ˆ>ÑVq¼ÿ‹[ùp¼•èƒEýÎêøôçTWýû IõS€~ï‡%þa&§ÿåæ–=o½ŸíÆÆ;ÄwØüÈ_¨¹ÎnÑõóòªÇAUÝË©î’û½ W'úßœð´VÞ•3+nÆ?¿q—úþénèk¯°æ®_ò·Ux•šýîdIøõ°ÌÂ*_Ý<Ϋ‹;™u÷8$áéñ©v`;ª/T=ò‹soh1g…N(à/O¯ëšç´¨l51ã¶¿­<êÀM„î»(Èu©x׊Ë_(d¦Æü9ÑU¾j —ɰ¥o¦Mù3²ºØ qMä¢ö~¸ˆ%UC¼•qµ£îíÏ 2JÖH;&Û×JY„ÄZÉ×Mäè?çúr~§í8 i³Òb€A«cv\lŒ_Š-Z³`ªÇÕ}Ÿ A¿Žáë~L0ˆ+FD6À07Õ°Œ];²®Edhð±çͤÌ; RpdP ‰\’c“Vu"䲊]±ªã6­šD„E5³vAEÊ]Vc’-›<7€úÂ¥nóˆórlN78éŠ^ôáË8§eY ‰ßt\7Æ&‚Ʀ˜ 7¹yßÏãÎ)q€Ô [Âæ. Ô¾iI¹ª¿jB§Ïˆù“¬š‰EsƒˆcTäYÀîØ¢i$fEI\7Œ`BgîyI ÿ,ò$‡°¹òÍaRõ_µãÀclÖׇõÙÏÄíûi˜ •Pºïg±Ç9œ“<Ñ¿Lê×QbÝŽƒX¼ªÃ¥¯þ4Õ‹ŒôjníãJìB‚G ‹˜WsÝð·ó²†çKƒu/få ¯üÝ5Ç:ÏʹeãR~ÉT91¤¥—ÍÕm÷U? *šÞ¬9«6XÊä`Ís¿´þÕþ—µ øÄªƒÚt²`;ñ`¼µïË„Xutoa˯ šàÉëJõ¢Ÿ½¢Á$[¹%×»aI§;SN:õwæúèù£íÈO*LÖE¯¨)ÂÂiŠò´B"‚|ÆŠ‰R>?ý0@ôD_s$ » ½­ Oœê»@ŒM]Ó"R7M”²u€¦ûˆÉc}¸8g ø¥¿½kg¢FŽêÐ$ ϧ{ëߨpi7tÔâ‡ÎnbŒœ‹zÏM8Ýß\q/ Å'©É¥—¹EŸŽS2>Ã&¿9†I|s +—øþ ¿(é|?²ú:2'ñ,·<權”qYüâ76öw=!ö” û«›rÕÅ+~´¢#”z¤Íqˆ”G?÷‚âüà´~õsØ+º£ùMï¦:²/ÙéÉ—”¨¢ÉARA]Ò˳ޮºüÏ£äÆ vNuT¿ðpsoõ7¿;+©{ñ³{fnC­J¸V÷à-!ëÉ–R‚#w¸-}Õ'%ú–¸úñ);5õïu€£ðEÑ¿«ð™‘_¼dâ?3 ú?Äæª`Ó N³pn¨±‰×¦MŸú‰™ÏåÈ„ jê %ÿÙR?°.íûãm²Ï®à³†^wÂ36æX¶!r,¼ÒÛ«ZZñœŠ5ÑïáTÞ\èi~³$Ã¥Ìö5¿÷ò®,ª¨¥kV1à³Ò ssL »èÖDWþõEemø–ƒX¾>ÌÍ @ß­ÐüÃÏe_2á²feð÷Ýà—‹ƒ¨¸£³U{6nß'ä/)ek6.qÛ) ¯™huK&fýÈ ·ÈÖG‰st"#¦•´ŸŒšiäCiMwtø §únª “8-FEùEàÇ6fÓ}5ªâ‚WPsGI)½ÍÌ}{Z Oýóhß&˜¤µ,hæÁæÌbŠ­ÛMÿÓÆ,?ê¹6«®W?œVõ4}Ø´ªæõÝ,§´­^*¹²bÂÕlZcæee÷¼-yåÐØS=q§Uˆäß'ºêÂÇ©ÅM¹1¿¿¹þgX[õ§+ZXòxKÞ?7ù’ ùú4-çÞ±NЧ³VvãƒQ #©.áõqViÄý;šðï ƒTV<ŸhË»lg¥üÑRõø¸GTîêÅ‚3žŸ¥å„Ÿøá£¢¿yÉÏ.r]H×ôiý;'ÿÉIaî“cSâ’çZVñ놷Oé)Ùïö¼tè¶•_Cœüô+} ?ÓsÓb/ÎöW¼&½8oáä¾ÿwFÐû}NÐýmŠFÚõ ŠV­°´‘®ÊC„ô³³t&ºøãåÌמ‘ƒŠwLƒò²!eÅÓÅ¢Ý ÏN +ïžrpâïmà«0yágP©/ÏyZjã¾û¸¬ã|á7?—½ç¥À¶\È¢ k}äÿ.Qéßfèô{¿á®™[ýhUƒÉò‰+êIiW쌂{£bØ»é~RÖ”‚™7ÒÇËq÷ñ²§TäÌ ûm’Å\2a³æ4ÈÔe=¾pÅL¯_µs0+.>øü‚ñžÆ7+ƒQ߯ˆ©Þª•·gåMo5¤œ« +xúŸ.vÅ­ ‘Zm£>ˆ@é­‚ÒkØâñžú‡ã]ϧûš£ædøÔ ).eÕF©ÙòPçÕÈÔU¦òÛ4›tæ|ljȞSU=üAþ°h ø”œƒúzTöhÍŒ©˜—ý=ÓQ|ÓÃJ;çbg^ô¶T„:ª_/ë°Å3&²™û·¸1þ&£J»›G¬[±+V\Ѭžº pÌN€Ïõ*¡™œWgÊc_ݲqÿg‰Óñß"î¿cÈr çÆ:òou”>ööcs Þ=9Y÷ìòæ©åǯÿs€Œ_1ÖÇÚÓ¯Z11gö}tôú(Ÿ>­£—ô #CVFÝQl^1’ ½8ÒSjñM§âqHK,¢–öНZxÕ/ö\tØQ¯»e4vÕˆÉ\Ò —¬"ÒŠ³½5ä–H§Ì=|\ ©Ä³ú^œ?ÊÏriõ³ÐPí«uýò¾V·a¢UoX¨ÕÛ^àbêúˆ€1¡¥WÛ[ê#ÆX”/3<Ñ—®ðËÑì='¥vÅJ,XÖs—4´âe3 4Ö‹|7+§d‡t"ØðØ-,»9Ù]úx^YûÚ.Ƚ0ÞSýjÃA«×r+YøÕ/vF¨½Q&fÓAï{ÐÅÿÎ@Ë>×§-ÑGßaÉ.éðʨ…%2ö0À¤oP‡ +âÛ$ ràÇÕl8й{£ÄZ€Ÿ s +Øû•¼aCeÍÈÞäШ ™T² èã yÔƒ{õ¨çª[ÀšÑs—Llв™Ù°` U¯Øhà=/òm‚ÃÞññè f.h}´­}ËÇçÕO®yø´9+µ2dÁå†tðÄ-;&ËÅ#yZÁ/GEˆ5 ½d`TÌʈ)‹rîô!mTFNž¤¯ºEÌ) ¥ÐÕz·`h§.%¬ ‰°­jF…Mš×â2ŽÖdßÇ¡îú{ÍèR©éè¬ÏºƒT½çgSC.Ê?Ä)›5ÒËÖ]tð†‹u±Ë¯Ïy)dÄ–¬š°ù›NRUÈJ(^0àsJRÚ‚•Zu ;Ö£¾zA+¹þëQoß9AÏÚhKËØP'ί6¸åè˜aIÝãúã¨n–Å=ðC‹¶-Í)›fTáš…P;;Ø +—u!†˜ðŽ6hÁ?ÓÜžM ÇÍ)ªžÛX™çµ˜ø³ZLÊå-`?Ø Z43j|ô¼Iˆ ¹dÅÂ…,é˜U󃤌@/:2 ED-êÈEc*FÞh?­`VËmÿ hò-!oÕĨrLÃæH‹pÁÆ…ÏÛE¤IS'Å-ïjô Êè~exNË­óµÂc–娬M ¹vÝÎlUQsÄØ’+ÜÚÔßýÝ„¼ ž”V?nI¹4Ý_ôpÕJ®X´ ËÎVÎÚˆˆ·êa!C6&he˜Zq²áA+­j͆ÉéAÑA+"cÅKk"d1áW±Y'6̆-³fa6lzhÍ«. +hÑÎhX°²Aë.¡`{Lزégá€ÜB=êã¹ã¢6îyè°ývÛÍ„-™9}ÈÈÅ!FÕ¢ v·xZªwU½XûŬ²6"h€¥o¸¨õ¾þæD_/8ao”]·“ª}u¯Æ¥Y÷G«ÞoHÝõ“P>qï¼MÒæ•±ª'©¥_¦Ûõ_gZ‡yË ËÞr5%m»P…û>bí¶›T5!?êÑ™‡~xσ-ÙrÊöÿÿ31ØŠU3¾x²¹î 5íLŠz–]Î+§ RÊ.ÌÉž8af 9rI‹ï½rµW?4Æ›m'¥~ˆÏ :ZåÌ ¥*hĀΞ›¢¢'¸‚e'³`~.f¯¸ºe‹IÏŒEˆ^´ I!;—ràgP?¨˜jþ´hÀ¤­Ùh -µjÅ. 5EÚ/aÓ^ÿq~0ïñý¦ àH@kmñzÕ+d¯v©Vœ<ê*Ã]–7)'¦ÌkÉÅ;>AËÁx‡.äméê!ß‚“Î/H ‘Ñꨀeã& ”‚e± 0Øš[ÀÙ,Y]¥c–¯Ï¯{ùŒy;ajÅô­°YƒPÉ„“¦ÁÁQ­ŒзÁB€/è°ÙËlÞ¶‡Üô 8ë.ac„GÛŸítlMsc‚–ÍéVåÖ\›~gN¤ÜäðW=4ļ•R"å†M&19…ʼh»Šíq>cŒE\°Pk7¼tÌŠ—]¦Ö„¼ ø†OÐ=¦hŠžP5„¯yö¶Rj6Ü,ÜÞ$¿ýûR«ù¨_Àš› 9XÈíq‰cFÏlž"–×Ã\áswÇy-û­[c­ÒE>g%ä/»(õ«£â¢X47}8<:>.±~t;Æ;µ fNS@A͘68úBPéYo&kÏ+`m»YØU3½á¨f à› +º`ÝÝÑîT°Ê”Ë•WO온؃ i`Ç/1ʤŽ^ä—³r<vªO%¬â‚ +ϵ֥ß_Ö0è»>qÏö²äý£{‹FvÝ”JTí—·T8{()îöºg Dú²™\¾ldÖ¯Øù„I• vB×CñkÚ¡ 5gÙÜ‚›5J8s¶vö¬‰Û4"EÄÏ ÒæôÞ¸^+·÷Ë0Îö–¬¥ÁN܆A éú„ æNæ´•½d®z¿?Fíy¨ ¾où{‡×œ¬æ…!rVº9LoÜõPê·\¤º  + QsçLlð²¥6)'¥ùÛjïlZhõkÃlôº›ƒ[w1¡A;£qrˆ”=°ù–S$:ê0Ρoû©ˆåa|ÉŠ‹‰\wµµ.Zˆ¶Nб»-Ë«n‡,Ú»ÄkN±xŤ°hwKÕ£3®tËÃ&-h‰6~ÍñÞ¦×éöDKφK óÐA+³>h!Îà «G=‡ü‚–á^X¬]‹ž3wrGècZAÝì‘­ï=iÂgMÝÂyS·¥•ɪ,½4©6&Ū æïζ›wg[×ý:`³¥SzF寍€¾7IAlã«çb΄¥¯ka¸_³âîÕMûºLÒî*ekwªR(Iîí¬´ò/&ú˜%ë.ÉÀ¶¿spg¼­gRÐôÒaãLÜö¤X½3%qï.tº¶&´‰á¼gžþnø¼¥ƒtñ0‹e`Ø%'½aÝÇ@­Z"äa—ܫ9¸Q¾xÈ*óê ý6Y_}o›,QÈWD3ÈÒ§¸&ÉeXx£*µòO|%êJÜZ;£B‚vÙËBÍSjv¦]G½¯ö§ÄºÍ‹¹2Â%.ù;:N1Õ¥ïÆe]•–žj»¬»~ÒÜÍœ°HÛœ²^¨«_uHU‡¬ çÓÐ#©Ü?ˆI]’7G{tãý£»3Öí‰6ùÞ¤°ëË¿ûpÎþï*GúŸ @ùuN8°;Åá¬sóîÎöIso‹µ‘:il%Ì­4¯š^83,bïL²8KÃØ²i=¡84,îØò÷XÖG[ÅÓN>jb¸‹ã6åé(W.CtqÝym4Ý{1Fút€¨JT1 y= m)¹ .§Ü¢ÖòÞt‘U™]ôžlKG[ö耠`AߊZóõ»ç]ýƒcÖ>‘qPÚ¬`2ùWÒ5áÓÔ¯e4M‚Yd®·¶©ëâî"—tªi5”õ3mi’åCyöze:â*´œ÷¼Œý›‚Öž²æêÜí˜5·ÑÜrN¾MÖ êÕÃeR'¦¿×ƒ± )<’æM ÞÖ%šh±m™üàëªòåêò¥OIÈSOž ¿‘t<ëmÍo4P_¤Šë¬îRBCfBáî(ªdˇ«72«‡Úû²{™ºø.ê`d7«?J#ÕÔj:»³=ò.è¬I.3ª»Lýý +nû9±í¹¨õœû«K˜‘ rCVIëÆh§ü`ª Ð4ꢦ.jÍÏÝk•ͺµ“ÃCl­¤«@)ƪx=Yn…YI’"êóˆxYTUávAòvzRó…â,Ô•š<È!FeèìÉöåü){'à¶%'©fF‡É7ˆ`.½Œª0â:ÖrM›#  å +(¦hÞñ×^/«l;››Åü9;—þó½û±anM´_@æn¤ ¾ÇèfÝMTw—×߯4 \©¯•Þ,+é¸T^Ü{.¯XrúAxyØí;9a‰ ”Ÿ!Pë®¶±úq£^¶âê’LêMcÚ˜['ç+ÕÃ|fÏL%Š=‰ Ì¼¨i¶\É.lýµ°¤÷² +Õoù…½'ÃßÁŽý}7',ü=æØË¤°OªÃ~=û<ìmDýéÒbþy¤ï–¶]’:c`ç]<‚EÑR.ïP—tœ¹l¦=šH~Á,g2Ø‹)BÁD‡ªÿÀ$¨ß³È† L~£0þËÝ‘Ç_ÞŒK,û­$s—PG 7uÑSzÓà’£]²°0[ž.uÈ£·šÌš^©Û%õÃ;ºÇ›ºzVH’î%B«Àž.d¢ùk$ä ¯*fžªÈÁüZ•»œ‘?ýìaüï9±…w{(²¬^"ãž‚P~UŠýuª‘jÕ™ûåvBoŸÁ—Œ—aéÞWÕ 7jAª»(êDDMÃÐ…ðWÕÇŸ?/9™W"ú-§¬÷ô“Õa—®¦„]¹‘ö.žzì꣺°×QØ´õy_ÿÉcìž÷vöLÛ¹·NÊTyZ;úæ4áLe»“@>õüEÍÉø8Ì/EeŠ3éùҟߢ»ÿ´&ìm áXdûØÕûµawÃqaùå–_AMÆë4¼â™B,/Òv´¥*Ù>%%Í¡”"%=~§}®”,OhÆYïV´]®]­›/&Ä~zú¤èØ•ËÑaïg‡½Œ€†ýy£$ìäÉ»aw嶺nP]ù”Ê‘v3¼&ìOà½.ß+ {öö8wìñ[äÏU ½íƇ\›3wqæ­Ò.¿¹‡oPµ—÷ÊŠÉ]þŒrÜÄõ"ˆ÷¼Ûoñù’Oc(aço•‡ÝyTÀ8öì=)ìï§MawÂáa‘)‚cI¢ãOÞÓO¾g…¾*JÒf­³vÓmêa èí/ Í[:×ýнŸY:p:"žq">»ã×ÔœöŸV†= :þ)…ñsl–ðØ72Ã~ùímØß÷JÃF¢ÃþºQvìíܬ¤sÖ¬uÌY$ícæ6ºfpÊ9Ó’P5UºSßÄ\¯CÜhDŽÞ¬i4ŸÏ+”œü˜È9™’Õq"âúØÅkÉaO«Ãî?¯ +»x=íØÛ(Èq¶ÿ®”ByèhAD¬Øm(§»k¨×îÏÇ—ã€÷|•R.¿ø$êÉ{ô±øtáñ¤ áOo¢Q?]º›ìeòØ'่XJصåaOcñÇ’«,'³êœ¿Ãi¨î.sÙ°º¾<*Q­Nw{Í6²½†Dm_)„s¦# Ͻ:°þB~YçÙ—ïÀ'®Ý+;vëY}ؽð†°{/êÃ^|ÄŸx‘À<•-=‘Uk¾%=çµ +ú»Ý›ZÃTÍ™Õ9!A.¤¿àÓ¯Ø-þLŠx1ʾ̭Pý—Ê> øÜñèxαW‘„°ûOÂî>®b6,0ŽävN–’Es)pÆXx%lèJBï×èTÒɈ$üÏä;ýÇ«°;/ê{£Ï.æýއvu@NŒ8oÂÇ)£*r¦s•«V*›ÚûüF«+KW?‚¢µ×*¡ö›Q| Žßž–] 8•Y&û5&[|òE átL2ã|mü'}ªjç¼SÒSfuÄô V½`á#'ÜF£Œ"“¶gtÊl`VçX!–fy¡X_@‰ÃrjU^'}ú®ñçI„ Yœ©…ì? $׋áŠk`ŒñâúÐÉÎÕK´Ð CD]°6§û›cÚ6Xo»´¼Sb‰¥Î¦È™Ø€¼ñ)·õ·7‰¬SÏ¢°ÇžF@{¨9výaAØëì±×‰ì°«ÏÂ.9êE¢0,¾Ôyªd¾Of9rŒ*{Ë¢­³uLŠwÉ!¯¼Zv‰J¥G {½¬þétïFq=möye“õBy£þô¢¶Óo†]½Söð%$ìÆƒª°Kg‡E¼GKË((Ÿá‘ß ÷u”ÌéK6j¾ûÖ$ïƒÈúL`&Gó–Ù>[HìX͇²gc*ú'…µ’k5MýW@hí­”Šî+#¡§#baÇ’òø'ŠÛ/¤VµÞo" ½fíÉýNôˆ¾2ï`5lŒqÛS-ý#æâàCØ¡ PY_•­‹"SdO),åK8Aþ ¤aàAfEë´bæÝ¬ÖmÃfÚ>"˜¦HžH£UK«Ú^¨W+Ï;Ú9Ó:JÞœ‘ÐàÓG†…ŠvaŠ´[^ÜÝo¨d‹#ñLÅcÃü:§¶ïFtFÛ_÷£(¿\{\{ìUöd|QÇŸñe}ç‹0Þ›e”ÑG¨ÁGÍLs~Ïà(ÝmQQ¦´Ä¬éÁºw!+¶r}DÀ ˜;hZ­¡­Kå¡ +¤#µdÑhŒ9U‹½]°_Ê®”¾÷¢ñØ™ó)a߯bsýñÈTÈß`Œ8BÜ"ýä–·Õl9H°K ΩÓt™´±jP‹í“ê«Ú»%|±-ƒÁ7Gc‰Ca˜Á'µPù­äBÎï“°3òù·jÀ½Ï8 MºMb§ø5Fù’SÚèoôh_Ó[[Ù]Ÿ 1¢ãUê5 +Œ¤«?‹J`ÞÁC™—Ù¢ÉüfŠ+¢¬Qr3-£ñ,Úz…WÞ"71xM4Ÿ;˜'ïÒÕšzʬÔò=/±nW±aGç,êpiKz|†[Š´ÊEzÝ C=¤BHåEÒnMIW§¹˜ÃÕFbÉ}ahñ}$¦ç– }+JâÅÝ’=ýIJÉPS¡%.˜ú(›.éÀÏÀ…†‘ysV:tÜÚ×í2jú-FµpH;ïìlå°ºŸ£Éæ§uhÛ£”¢Î SX'R +Z}:™Œù9>ŸüSQË©„²Ö?²çÁWxO7¬·´ŽªøàM7 ´cË‚6Bõ–ŸM™n'*û„i]]]©­Š ³k¡ ËòDÂiÎç ¢ãqT&óÜ¥ÛYÇ®ßÉ{ ?ö!u¦¨œÿ7 *{À£hß[$ý哃äÌIä]ÐL*]Ð1ªm"´O'¨TJhoû´u]½ŽêN‰¥°kÀ\+–jÊ[Äòa×P­Ã&(ß5ÂøwÑé ¶ÄZÞ£,T«û*lú^HÀÚÙgá¿ÏÓéÿ.³Û¾Îq„cZjžM×OÕµ-z£š64ÐS¬êêL“w·§ôõö¤Kô5R…Ü;0T-‘è‹z”NbŸÁLVk{«5¨7SzzѼM€\´ 0Ë6.ÜÕ {³l¡Ô­yùŒ•Q!gz¸îÒµ6jzÉ ½Üº¿%BôÃŽþÁ|ZëÿÇÑ[þµ™®kÃïû<{ɬ‘ÎL§S™NÝK§ÅÝÝÄ݈+Á mq BB\àIˆ§23kïý{ÿ÷ÎúÄ¢×už‡ä¾¯ó'â˜#5²‚2bg–ÙËl“'0ÛdquÝâø¦ž‰Ø®‘©òYµBºµð±÷ÀÀÅì+°)v é]nõ®õ¨w'T²ánáäPõàȤ³WTØ>¸€­ïÔå°[µÉXWó+;n$Ö<Ì…4¾&ðšßv û)ÊÙæü8=}©³8TÆ}sww–QÝ1IßSô5«òVÆòl'O'j*ŸèÀÜmÁÜšì =šjËWLöbŒÓ‚‚…IFÒ¶´³Á¡žõj›kuÕ.òíÞ .z]DŒÛ +`fÝ€dG3 Z–´’ “uEêqA¾|¸­tüã@QÛXZk0ŒÁ}È­‘…2ØcO˜ìö»5õ¢›Þgut¤ õÈY–¾wèFfmÊ–†ÝvÅ‘¡íýéRçD À¡ÀfÍ÷—?UöTÜŸë%†ÊG‡(£ýsä. VÛ4˜÷ƒ§a £\‚°—Xî­Ö¶æà±Áa°|TÈ^ ðv¦Å.5³Ò¥b µÕ›ƒ7ªÆäß´iWu#çó↪vä%’úËüL-gg±«wy¶ ¥™àeHûY±âVäì° I/io›ÞÕXM<¬g½©ãxû]ÿéf­àhZ~b¢#ŽLLœKG¯Ø˜fä­éº: òþ–µ¹îz÷bk»Cÿ¾Õ¦máÙu Õ6aV°Ëvæ8¥òVÒºª¿CÓÆ·Î×3­Z{KÊ)ÚWq!¥È<…z»9ŠxéÓsÈç›gàZ»–Ý’ó«LBRüö "fWÉ®Zžk§œŽëäGª•£ç¦êòT£Œhµ¨©Ø¨ìd®©°›sõH‡©¥õx³uÌ©cTÚTÔÿj­àd§Ûx¸Ù£ó¬4wo+kñÊ‘†RåHMÁ"À‡FiŸ@1Ý…wƒ§Ä¢Æ¡IYÍØè S$%ÉE-åúYV–u¥¹Õ»Ôм-„Eηf_Ÿï)ÛB_ËE7çßS’Ì“-”½i^Åæá±³äÞRwÕ£]Q]ÅöL+Á0VS:ÆC½pÊ>tÍw.Xv1â­yüÌ,¿°J ³´¬M%{’“£‘ñyžõ« n5×¥ æû ,”MˆlÍÕÂöµíÜÇ)¯©– ô~‰E†‹;PÒ¼zf…WË®ò¸ˆíz–u®}º( ž/ñH§‹|¢CA+Y#Å® ’"WÇi †¾ê¨ «hkš–»%¢$;”¬ÊÀ ië !Þ<…KØÖ~c²>LŠZòò7ǪӽJJ‘?p†FØ—’È5-óékÈV…i @«£ôÌ•ZÉæ9a±¼ØOˆ22—%í¤ya'Æ8Ò˜·6ÉͶ)ú†-s­v ež®z³3”{Ï-#æûõM5'Ëm}g¦ö‘“Àœ)-6Ó<r+k)>CSƒo¾¾Ñ¦¨ïÌ1ÊÖæ:Ø&ù‡ZÍä;°¼“¶%®ƒÛgëq6¼+Ãå¹ÕTWK+÷ik°Àë Ÿ˜^çAw¦È Æ®üGûÓð´Ó%J•×À#8\ôÊ Yâ’ÐrÌcÔ¤qbÌÚ*LÆÏ»á•4\òZò¾ˆ–½Þƒ‰tÏPrÔÔ’CMuþþ$\Õ’q½µâåßT5¯¿.ÖמÏSÊm“ÅÍCÙצ+‚\rbªGÍGø´ «” Ù›Æÿç>!ŠQîÓs¬Ó!;£eAûÀíL¢Í"J걑ƒ>Ô2!%§ò@†MÝE„¬ö"ŸíŽãß8åô¢•AD˜±tÛ,"§¬ £Ríbr²Mˆ +]íÈûu³»èÆÆÇŠ‡›Àc̓Դ¹ºôïw'à‰.»9HM·‹ªÓv†!ö)\Œ_NJõÎ’R¶‡/¹—GÈÉß9%ŒâóÅÆºC=o—âSüZÈ-§æ¸$äd¯ŠU1?ŒN›®Íy˜#²9K9˜„Å*QIÞ9p¼m&/âl±ìÓÒKüZ.òPÓÈw«šê”µ„í)R²uº,Ì¥‚§zkhNcm{šg™Ä¦xUô*Ë$ò©£ôÞb{þ=·í™E½9TQ ÿ!¬Ó¤´ƒYj–KË…›Å¤,¿ž‰85±±N9µð@LHôÍá’¿šè¨¯›5uÀ9MLß|k«[[ƒ÷(© «k—’­R\²[EÎvÈ ©V 6nG}ºÄ­öë© ¿›çQÀ3YÐ2\¢{Ž’s±Üøîl­¾e{ +¹'"¦yÕu o Îib²{›ì–`SÌ£ÈнI|ìŒ^âV²Ê}JRæ—%êÜÀª:R36?ä>² —¼Þê-|´3\øðO3¿á|•ñJ iÛc¸,Ÿšôé …§&\ñÉ"d—cr]jr~`æÊùjÀ)#g¯–Ešú‹b=*ìtI 8[¤¡3Ðøƒpèê86ΦŽW›»¾l·Ž­54»–êx.¿Ú­®.;^`"=Z&Ô­á¬s,°{µ©Å»ö®kO˜… míB^Ústæp©_-‚—q0‹]ꃿhEE}'å¿ôKP÷ +Ï;Ë,Ü@>ß„<6BŸYƱa{ôŒÅ.ä‹•˜×>I=þBÓH;°Ø9 Ö¿K¾l¨Oü~ñ]öƒ b–[ÎGÙÄØ·–1Ð3ËhÙSß,*öHÈDÄl VE¬ôUë„xu¤eÃŽt”e +º=˜ymw$ÿîî–WgúÔ´bÏ>Õ&B…»gy€†ãc¬"Bìö0ò ïèÛrî,vßZë¯z¸Ô~òóÓþ(>Ö9Iˆ[jÎþUJ‹ýn‚ýí4%öû…æÜº¦ÌŸ¶¦±ªpô 6ùÊ¡œuK…öILìÞHñ3S{ú=m}ÒcsÚË%w\fÉ®—c>³}ëž%¦ZÇ‘aö1TˆEˆŽ™¬É¼Þ‡øn{žþy¾¹ùDͯ},|2ß–pmõcÌ5Ÿz¢#e©)e^9¥80ÃÁ©ª#:äu¤Ïó|ê…‰ñX°ÿÌèUÓŽtÕÅ[# õ>È«qKØ•GJB†kº?ZõÊÔ™k{ ê9Ð/E¾y6j¦¾àúÆ"üØÀFœÏ×±¼³ÕYn:Þ-ÇX…%aöiB¼C¸ç±Ž¼6NˆÝG‡íÏà½:6Ì£¦UìŽWDn ”Þ[í-½½ÒW~÷l…M²ˆaQûÓ `ÛLUä‘–R|¢¡–}ž§CÿZç0Žt$ÐÆPÙC»›s¶ÔØì–3ÊDøxë,Ä> ~å£cNô\Ô¡šÙ¬ ?T3€5ËßCÅ{eøô­¾¢W¶‰ªØÝ¡òWÎ)Hĉ–X±7^±ÖWöàX/àúu\졘ïÑ"mpÄö8Ø5GÌð¨%>­Ü<}}²LA¼Ç¼X­å{´lÌîòíʇ¢‡N),Æk¨©=^®«9_eN(Óµ¦vßJ·ü|½CüßÛ‚¦s#¾Ð"‡ïŒU¾´K°±±ü‹<ê®À >ŧ¢Tªh ¿šVÈÞÅ:$ÐùîükÆŽ²ß·†Ð!»À:AJÚêC¹§9Åû“”DÛ$°®ãÐçûØÈå°'š¦ò«[øÈc¥oÁ¾õÊÉ™>UuÞˆu¡Æç]h¡Ñ'Lò®ˆ³>{~¢fC´âýq O‡+ê“~š ¿þ›’÷ÝQàþx-³\= aåü|`Âzaoþ>‚HþNÅ+øÍô¾à®e¸ü©gŸf“¥ÍE†ðI?rÞ…„„…÷yWÚ’.ij’.볯ïƒ_+©k€ŽÑÿehÍ¿wºÈ@¬ô—?§$}+agü ¤ÿ0„ü—y â…[Fγœº?‹³‰¹öi:Æ)!å‹X?ˆY/Òׇÿ¸Ñ“}ë!e:åÌÒ~RÖn?*ñ¯•Ö©‰Cp©Ñ‰ûb€oGsŸo ÝZî*ÿÝ&ªEm6>ßÚ.¾c«x¢oH»$eÆþhå§ÛCe¯u-™?ïŽ"#| +v…yà!"dg´=XöØ.,}ya¤žˆQ¹: ›âfýh•PóŒ\¬GÃ(ß…/½OûÝ&9'*ŸûæÑgKt˜¦=çÑÂÇÒèÏK\ⱎ˜ÔZ±_ƒKßͰݛuÓ>YtjÄéº@áõ•á¿ûÕÄë55¬rª=2\’màÀ÷Y÷Æ1A·IPÑ5á—³_]ûç\SAÈ_k\Ú§:Ä&„„iY‰W$ĈïµüÄïw@Àk2á  ‡kƒ ð‹&ùëVM£W^w¬®.p\ºØ™~}k¸àþé•à1Òñ»SÄd—R@ôj›ÚOjêþ½Æ¥6Òqv!(zo(÷¡©-õÊ_;Mþ…¦s,ô‘ž^u¼H®ðêH> ±ðÂDêI;C%A«=EwŽ \r`fú‘> Yhù^9c£7ÿ–WMÎq))9N)Ù!†…Z'*ƒô­I—¥´¸YF(YË1Á‹m•·õïÊÓ4–_3uAn#Ì#äèÝaRŒ®¾à—õ^è3ë$þ­C„{»=\ú`±=õç…Ö´ŸwF@<2|™J€ñHXE;C¨—N1-Ý)!Ĉ`¯¢²§^8fw¤¨Ëøi®¦è7—œÚ€¾Ü†¿²ŒÃCœTÔþøùN/äÉö0!f”™{¥ÿíf/2Â%a:ÄÔŒídˆ¦.粬:úÛݾŠ{«ý„àvÉMdÒãÿWÆ,{x<Ë)w‰á‘Kí™WÔõq—f9ñ—tM¥wf¸ågÆ®c†šé”P2=3 x÷Éb[áÕ1às¤´,Û*b¥'í²±éí·nâ¿ë²/ω[F„c¿™ j¶|{üÜÔQðû=áûw°oÛ@/þ&ãdü´Ò)ª-¸-áÜÚAG,v”ÝSÖ¤ÿbêÈý]×Rxs‚žüÝGXôßõØàiAᣠvÜåíÊà&Ù9ELsÍ0 +l"|†CŽ1”Þ´\ôæ)vŠ–{{»™rxéí¡Ê;¥Omã•A!䥪&ùÒ)â»@¿m €^ltßÅÆÿ: »´Øü«G ‹¸ÐÑJÔÌÊ~ìCèw÷d;k£‡˜ì¡âÓU!Kíy·Mív‡`@Ós.–ê³Õ¹»Bl¸yˆ’`A‡»§JZ†‹löß[î.f³v©¥ï€ÜÛèLZþJâ•–›ÿãRKŽù¶’Çóï n:Š9eô*—´:³ô`ýcٳ͈žÊ'ëÝù7­£ùiE!ó­y76zÁÁ‡ê’ª±äÖ/ýÇ_=bǼÝAE:oaê=ëÁÄül™$dØ%”¬qZÆåú‚ÿ§ùw 5ñ{€«}àHó4­à:î§ðáÿ=50Àž9j‘écEð,7ñº’Ÿú³šŸsYÃO¿ìW +¹å!?öV'=>P2*­3Œ\MMÖ1 ÐøìètM‰ß+ùߨEe±l²ˆv1Ù§fA6z+Ÿoô?ßê){e¬L0?ré}Þýµ9×þ½Çfút¤ò•Þ²{)2át¡µýtþ]ó‚Ú##>ð1ÿª©—›QHºôõ£SB‡Ã!ÂÞ¶Ô‘kµ;÷ºe´ô¾K†Ž5~€?­+ ÿ›á]E´𜋅Í€þé+¼¥¯Kùåø5ðÚQ?­žva£¾Ÿ"'ýj"%l´—ß· ?p‹@ÁÛ½i¯Líñ÷µ ‰¿Z™Vä|^qðBZü­C%ê™#z¥è8Ï 2ú`ýØ«,CWþmUkáLæ­ñê´Û^@WÚþ ÀS§*j±WJ-Ùè…EI˜)ß̳ö§ ùvÈóùæÒ[¦÷ ‡Ú†¼›«ÝÅŽ=ä‘óZŠnk}ׯd€¬ã„ø•öâ[K­™—M­©?jꢾ]lMÿÅ x›½iBRcå›¶#ÞC%é¨EÎ'-¼/|¢ªO½»òð)}ð0·œ‡ÚŸ¦fO03ªN»nxŽØìE‡ï"ƒ—?‚ƒ•Íå/Ú‘o¿ïÁGÿv¨göǑ‘bNÆe!!æÒF{Ñcû(4Ä> ±ŠͰèK3 e -Ÿ¸#$Çkë‹W×ç?›ï*}»9Xì˜*ÿ¼@¬ücE0Ob] +ÀÄ+ýàà¿Kðoÿ±Ü”ýÛ|cöÝ¥–œ;Nqéë?·é˜­Ixü´ ûÚžn“7™,Ç ´J¯“`C^Èч Õ Ï[õm^¹?ƒˆöi(¥nò9ç&JÕÁlUø ±3šõxs èž_KƒžÎ×T»å”l€#óý,YuZà7š#€x¨d•Ú:mw ¼Ö[ùpkd’søÎ4=mW„‹Yý}¾Øº·'ÄF¹_oÁǬô”Þ¶ BƒÏ–ZºÞÚ<„ Ó4eüªiJüuoìS²NÕ|Ü®„œ-oλ¶1ŒKÞ›fd«j ~š¡%~7COúqŒñÝ%üo*nÊO{ý˜X·Œ[:ËϹ˜Sä±Ë·Iom€÷|gä|7øÑBgÕË89Á +ÝR?)Jûž¯hD¾Zj‡>ßꇿ°Mâ6GØéúNÄó•^ô›cM“À&%$Ø&±Ñ®i.Ø9Á‡ï¢ƒ·úËï­÷Ý_ùøþvtØ„‹\&¤¿ö¥úÍÖ‡ò{«Ýeôï@O71Ñ›Ää!F6€©WÜ2R–±9õÇ¥¶ÄK=9×Mͱ¿X†rž8E°Ô=¬ëG…µÁã/Í JC¾,5w{øŒõî‚ßVÞç]ÙêÝÝè«zºØ y)k­¸[•òìoˆ¤û—/ôÔ²Smugúvg ÷ñ 5âRøÁßÌÈo­btô;TÒµò¨;S4=¿ÐÓÁqù Ÿ¤è…w¦ä…¶.öçIìëÿ»ø.ï¦Gņ¬õ#_¬÷Á^Ûg9€w.pIˆ¹î9BP'±K}OûpIßv£’®ÎwÂ_Œ²2~_‡Y„Èdó($ùHE*9d¸«¹ë4:ÆÐž{e{±5Œx»Ó8™” ­Ë¾*b'ý´ò±è±;ðÛŠ”œfèß]üˆxm—³­Ã¥WÛ³®/·ÜØè)ùÝ:…ñ뽯eÁM=•\s䜓@Nº¡¦Ú)Å'ØÇ‹Ÿ®vÄÝ]íÌ|à“rz¡¢¶êw!1ï’¹›úy±¦öDÏÁ:Äè¤ù–¤†÷ù¡¦¾ªçëãˆx¿‘ÇÞÕ¢?@Ÿ»Õ„‚O,ÒŸÛΟ[læ§5 +Ú£Á˜ú³n».[¦á1sÍùºÎÜ ·¾â3Ò«çñè/«Œê3S5x_àÀPÑmŸžµ7†Š°Œß:$ÔŒCv0CIñÈ«3¦ŒÂ^ÎSUô‡”]dRãU¬e‚œ¸ÜQy{ýcÕ½­Ð}kâ/†ú„+ÎQlÌ¡‚^í‚>Ýþu¢â!üHÊùVÕ +´0µÜ2YöØ<^ðh{´4 ø¼QÖÈK¯¿6T,æå\úеc ¹`§?ûÎBCÔõõŽ´ûÛƒa;ƒ n)&)0{w˜žü£¬®8Ô¯fÃOtÕÅ9>ÉØž}s¼:ü‡NÚ Usá]m+ø¥¼¹êqEÂýï&8IO5ØÌî‚»Ë-ÿ©íßæ›r¯­~,{äRVÔäßËyñËÿÃÎzþ­CB‡êØhëDEðF_öÝÅ÷Y¿,w•ÝÞF¾ÞâÞt‘ãy þÞ!&¤ødÌÂÃYBòÁ44fk¸$Ì.ªŒð«P±~1ÛðöØÂë19ãXƒI;R¡sϪaçË,ŒEDNÕ¾«x(¢çüx a@ö¥Õiæi\ôúPÕ‹IFüï£ô¤û2LÖé"­út‰U¿>Hç$]µHîÕ4~ÙæÐ¬hœª)éÊBgæCÛtÅ›#6Ã4 €%=ýþèb³©ð4-ŸæÑ~  ½Ýe÷'ɉÿ:T1Êf)y»Àw°É©CˆèÅvèËÕnh°W¸þÈ®0âÎ%gý-'9߃ˆr +º i_ÖxÜ?×¹ì3# ç™ÅçmÂ^Y¤l蚃[$&Z OEÌܫܣÅVð3¯Šð7eo|làNø¬¢õ~Ð?å§IJè7¶±ÂçŸLÄ¢¯›lÊòò5Àë/üs\øù|=ÿ|¹–w±L{ÕÈÄݱ’§æþ²‡':Ñ©`¢%üìÛöiRšSA‡:ç(%> ØK\²ö}Ö esüƒ¥ž´ßOŒ„òc=¡hýcÑCó4õHÃÂûT„GÍ…¹|¼¦òò6ö{/ÿ–MÂ)ÝÄÛ +o+ê2o®}(èÉÂC ³Â.%gÊšòn)Û +ƒ=JÄ<Šk¬|`lÍù]̈ùu¹#ûÞ¹‘T~¶Ê®^‚ÅJø…·¤”"§—bÇš‡Š#¿ðvm ê‰²1óÆBOi8àa }ŒŒ»c5…/wĬ +¦ç–3K¶ ¡bZÒõ)jÌŠå×3 ÇK,ÔŽ”çГóOW˜$Ÿ†:]`.-ÛEÄ®btq‘{²êŠó5mw¼2r½7ëºßHEx—jjükõ-ŽyiKÆ.sJÞïWâ3ÞË\ëE™…ˆ°åÐ`óìµ®)å§¥öŒ+»#WG:Æ£ça¬RZ†{ŽS¹3‚zeü÷þDÅ c[ÊϪºÔT‚ @_!϶@Þ˜œžç“1òí#¸H˜š¤aÃìrÚòðãÅ÷%7m"jÎÖ(1E×\øëFOÕ3 ¿^¯wBBßA^îö#C½2zѾg„=?Yà`f11ŽxˆuúÚhÍ#5)ûDÍyäòèÁ|[ùëÃ9z‰GŠO<1šå?sm1Q!,§ ä;%Ä$3€çr^æ‡j&4ï®l,¼±ØQtÃ*B…ïNÂ_­ôU<1¶>8Ö1«öDä”Ib| Ó§¥•X'ï;‚ ñHÉÙÞ9N…}š_n—pA+بÕ|”[ÙRçQµ6ù_·jjŽõÄ<«üz»ôØ*!¬I¸ðAAÙ3!'ÿ¦G΃ۧª3“ø$Ï !Å:…‰·ˆP6)>îÐPKY%å,tÂÂV{1qó]ÐøíÊøS-*ûË©êd‰2tÿ¾öu¤©çÈyX—†Zr¶BG8•¨dËDy°o™u89C.è%$ýè”Ó*?o5u-pð~ ½dGœá¿¹&á…ݰNý¯™Ëùdbá]2lÜéŸuhdŽx—šUf™¥¤oO£#×@³°v¦¨i =˜—»“ÜrÛL Ê«à@|Jb¦e±>y +ÔÎË#£Ê­â£ Ðçóí¥·| +B&àÓÂ]"xÔ×%ܫǗXeˆ(‹ÈÛ2½¥ª/º®­Í¹áSâ?@Îw+¹ÇK ¼g‘KìedÝå—†lLr*6GYKq¯ô-û2VîuMcþã ÷Ç– îÓ›d×àÓ÷•„ô¿¬‚–OlÆÁ 6y àC- õ>÷Ùˆ À“xµ”¢•^Ðãí1høçíæþÓµÆN·žMÜ¡ÞlMa£v…UÏ—»Ó~¶ gÿ¶7\z×:ÉÈrÈjQæ Vᾘ‘íšj{÷Ö-ÅÆ«q©zB^ §l|‚[[G^éƒ>\ï+¹¹9\tk½¿èžmw4G-:×Ñ+÷ØåœR÷\ ð.Ñó­9—u?›Ç@AV12|kñð:É»Bz¦º tOÓTø«GÆ+÷Êx•^ d%Æõ¡£.µ‚^\še$ü¼?~ê×òPkýÐgë]e¿ûïcâÏæÉ…~.mkü|À~1·ðîz&x–Ÿ÷‹KNH?1°áÇZvÕ±šZè˜AÇìŽW=3uåý¢«Kø—{Ž˜ `R‘ª ñx¥嘥dy•Õ9ÇZV•C˜ +ê(Ä.­Î¿XiltÎÚqóv_ˆ ·Ž£CN”Œ’3­€èQ²@†ÐqL´ßØ5ê3ôLš¸ç+èI¹Gs„ô£¹êÂC€, +&x~µ>†O?›¯cÛEðp«°ò¹e¤ôþf_ÙCŸÐm&éh^@™kƒ>пGE9g)@žØ¿›¶5Rô`OXþÌ;‡Ëº˜ç2ÏM¿:‚´ÏVg}ÝðÏ–˜˜c-6Ý!©ˆ\üy_ב~céC鯛‚&»²ºBÙRvmul°õ,Ê‘žõÌâR¬“¡^):Þ##¥z ¼é†ü»òæÂp¯Šƒôë¸ÈC-½üt‘‰;_æ1÷%¤”Õadp Kùh±µ+pÝÇ=Wí’Q²¿[p¢£þX¦!üjZér?ôÅòø¹_ÏBI8©¿¬zui¹­è¾y¬2È9‡M?^dO–vZ1 UÇúÝ?ÏźU„4»ôeÙ3Ë4!Õ®æ!\šFÆŽˆ]2Å+¿ªí"FlO×÷&)§€vJáqkýeAV)2Î¥%本׽?Z©©5ôT«›A÷€u­=Z`±.Ö¹@‹5y ÄâÍ‘ÊgÛãàgî1Örw¦q¶Yr†Ó@«Ö6å^ÕÔ§ÿìt݉A@ÚQ²—?BÛʧ¤þ<„OúÕô¾"È)"&kêKnÉ™9?n¨zöÉPÇuÌa3Ö‡òîíOÃßì +a/-c¸èíbÊÊ *\QŸ{Ù§¡AOk[Càõî¬_Úr®Y§`Ánúí¡š”åS3+­2Fᮘ‘i›kÀ;Ôœ*ë <|s¸ìž¼6õgEcÊííQXŒgŽŽ¸X®å:äØd'PKŽrж±ðš¶>ñÒÞhù“ý)DèJ_ù“C¹øt‰MòªY0Ÿºudä¶F*žš2/ò~ÕÕ§^^ïʸu¢Ädkk «ýøHusþeàó½ô)H™“ðpç 2f +üz✭NwÌñª4ݘ¨÷ˆø9eä¬/@ÿòïè”àr¶†‹nçÜ´MCÂ?­ +¸^@_ì‰!Á2x¼] +O0 Kƒ2TÊÅ_ðÕ,貫ùºöòÛ֩ꯆü*Ä£§–Yf°‰®YRn`ÎþÅ—~0Ç¡L°‹o)@q~`GE.wþ¶1z²/¿ò¨±Ÿ×¸4€—zÏV[wgªÓÏÖ›»¬zùÊGðSMCÆ/­Å·þ>]}is~²ÚÔmVÕq”-•·W‘~-à‘ŒÊ¡Cñ8d¿Žƒ¶äTQËOMõu{3ôÜÀÏ^¬ÐP_6Ø´¯›õg&û?“³J6&y›¢Vüú¨ xw’‘y¶ÈÅkO81ÕÕÞnÿ²Û*>^ãñìJÑî 5Ã¥hâ»U ­ÞÏ—éè³5r¥E KØ„%ùç  ‹íš†=@ìJø`—þ}çÉvcÇ…¹F`<‰ÏØÀñêóše6 4lw¢ä¡[†ˆ<ÑÑKOŒ,ˆCŠ||öð÷,.Æ>ƒˆXí/x²Ü•õpohÜ›õïLˆGE+ +̵tžew ¶Ú]º;ŠHµM³A–Ùî³¢»Å"kÀš'©Ék½ð§ -9¿Hé ß*¹ÉWN”øÜ³…FÁ®¸»<ÊÏ^e§m1’,ÔDË8!ZÝ”ñë<ôoZvÎu×æí¡Š’ož"DoOв]Ê$À¥1úÖ¬«È§ÿø€~ô]ã›ÎV8d‡žO\ÅFZ„¨·¼:à°È ,Ü=[²ÔöÛÖhñS¯À ]#ck’³3‰Ü›$eZ¦È~-¹èë‡~:ÏÂÙ'ÑÆÖŒë[ƒÏ}hÃÊ;«=àC³" ÉµäÜÝñ²¨åδ[½…÷®®2³„ÔÄüôëÞjžG„‹9­ +uMAl“ȸ¹Ú¼_·í€çZDÇê oÛ¦ ‘ûSeÏÓà—1&Ù,ÄÆé;+Í6\·Þ×*¥æ®ö—=Xî)}°ü¡òÕÎhU¤W-¸Xb.Ö€ŸÛ|œ[û®Ö£a#Ž´Ä‚C 1o{ô©B$Zf`v)*î|‰‰\?ÝÆ$œ®ði~¥Ò3‡I³Œ•­(¸»Ô•÷û„šwllàÌÒËT…W­SøxŸŠZâSa’ÿX¥@ëè1làžÐ=)½ähµ¹{KDÍ^ìÃElŒ’Wú*CœBÞ©QÀòÏ76­‰h¹ë“„X¿Q@óϳÛBh˜U‚Œ?ã2|::èt‘^ùyCP{¶Òм h’9&åËV /ª‹Uä\“à–²—¨ÅCSæ§ß4DI\€?üþl­3Ÿ6kœºØàs—hÈ£e&ñl…Ç>3½ëùÙ7]jRÙ¿­µŸ·kêO×XL—›ëÔU—ø–øô³µúwŸ6ÚFL\ÊÑ +áôÊÙJëÇÿÜó¦©#xTäL¿ +ï•£cÓè8@ÏÆÙEU¯Ü2bÆ™¡Žz !ÄmŽAŸ©ßg\Ó6Æ^²ôAžžxðe™‰õàÐÀÇ»ÕML›”[¦ï(º3N ÿ»®!æ'Û"Ö­moÛœm¥˜%Èý~éþ$;ß<Š{»p°m òÂ!†DZŸÌ]Qx[Ô†3Ï´÷żRË9vOHŒ5õ”îÑzf郾8‚¿²#^ïŒâ#ögxU.U Ê!!$šº /‡)ñׯª#¯ì å>>]¤UÙ=d•Ò³=J>Ò­dVmU>²ˆª^X§+^lôå>´‹+ÂNçé•™‰›"J"Àãå^MG§[YK¼O쉉ZáV‘²v A‘YuñÞ4+O߆|p aäêØ‡ ›`— #æÛ²®-·¥ß´ +ý.|SÈÌÒµ–=ßìG¦kjp6!Ù¥â@ꦊà3#áš…F.ue\§&üøqy†žpyíCÅc·ŽY¿cfþ¤ï¨|îSóÉ'óüê³%Ù§&o a±û€·´jå.}[‹i¯hʾø¬T—“{²Ä$u?˜…¦yÕ¨lËTÕK/ |F&RÛ•ÿXךû»ui›‚Æyæðùg‹|ÚÙ²€ h,íûò;.9d›Æg-väܱOV†úìô«X•Gzæl¹áÝñjc«YÆ-ßóAæ~ÅÂð3ó(ôKN.÷^ú`–r¼ÀÆÝlh ÌÒõëé0 ~y.MuÕÞ ,Õ­Â&»ÕÕ%=¹5‰MôëÉ¥k\º_G¯:ѳç l,°W`/€§¶­óu¡” SS~×dÝ47Ä x]·°=Vñr{¸*ðᡇzZÕér]íÖ(6j¹ä¥Cÿ\­oºzîPɶN‚£írXœMÛ|ðê$3c†_Èš‹º0Òàÿ³Í㪠gFRé©_°=Tòìd™K9\kê\À¥Ì÷?8ž§#Çþjnìý¼Yßyl¤ú¿:÷PϬú¼Q×àV³›Cð•žâ[ËÝy72|ªGC,üC>Ôà‹KH´ËŇú–ƽ)tØîXå³¹†Ì#¸ˆÞYhêŸë5¼³…Z.°¶åëcè(·šGö¨ùXû :jg8ëöååOS´ð«1ðx­Më#´c'ü±ñð@ÉCnŽV=<Þ3óPî­ÌÛ^&ãtC¾Xnn·IHf6îlµ¶þÓF]ó±‘:Öá³l¢ÒÛÃé×\sÄ4àýG ÍÍNmuGÄÌs«šÙ޹z¢GÍ®:6²JT‚C‰ŒuÌ‘3<:$p¦Æ.Ã'ê`†ö)IYçFRɧ% +n_Æ­ô=NË>_oêÙ%殎T-÷=ܽ<4P@߈­jfSÄÎ]ãYd”mQu™º«$bñ8xùcÉc»{¤ÆfÿÛ\ÓäðÙ¢¬E[•ÜÊSc³OÏ{´Õù–dÄžâ3PÊ>oÖÔþiiØ“R t]ð' òy£áÝ[j;¾®P>iEø^_âcCÚíõDò¾±^?HHP5—Üÿ²!hø_{ãð×MníËT‘ +’éš.xµ;UôÈoâ0ùÛS¸Ü™ÆŒ«_ö>ü¹×2õe“]ïS!ÓvGÁÏ|z6ܧå!\ +n•CÎ(4Oâ7Ǩ [ÙÎã‚B»¬áÕÖ]Zdsùz­üpWHŒ>˜e›…¤øµ^\˜ X÷C- |fâŽ*t>Ë6EŒuKÙ…61>fOè¨WΙÊg2æÐØG6Ä7˪²á1;#%Ït¢OÃl #^Øfñv—?€Cì¨ø¯óügS Ó¥¦mŽ ƒ-Ó¤¸±ÊÇ¦Ž¬_<3˜¯—t¢¢^k§À{¤ä ß,%÷ó2Ÿæ£Þ8¤€žP¡ãüzb¶GC*<[d`ÿ<†OÇ;ìŠÃ…¦FÿBc½_Sƒ96°`V)ø•C‹°ÍÀcoœs±ÂÆ9•”Ü#=­ìë +Xc\²OŽŠ±‰*^ù•À{ÓÀ'ÚZö±¡½kca™¡¸Ô%g{eˆPSàÐíþòÇýËZs×É‚€îTÓ^,ó*©…3Èh—–ôXŽº%çéjoéÓ}@·ÛU,Ø2 ñRb®_ ÔŠ‰ŽüºÆcè„Í1p²}¦"į'ž¯5¾?\ljZ|dhn<[j¬?5RÊ|jLÒÖXÙsesÒ‡´<ôÌD…|Ú¨­õ/ð‰G <ê§õÿœ¹¹¨h¯¸?Uñjorhä‘Î×ÛL׸üi©†z¬aTªHÙ^%.Õ:S±=^¸ÎñÇJCÓÅJm à— rrÉî$4Î<^õúË +›|±Î¡[4äÜùaxðŽ”…p/46úLu_gb½u´Â§û9ÀÓÀOÙÈ?Ì5õ¶9|ž¡³â¶{Ž <3óë¯á¿÷˜¼£yÈ­xÙD.ùÓÌhºÁ)Ìü oô=%éí×üÿœLŽO]à Ú«kd{4o˜^} À:1 '¦ªSÍ(8å·b_ÌÊÛV§XÄäôƒ9FÑÖ8ñÍÖhUUü–çÕ ^-æVò u=Ù«mžÏj•U¸þzlä  +6hW„‰Z﫺»ÔYqw¥úÄ:I +è­2@GÞùÔ$`-ò‰ ÐC=>Í£@¸ˆŠr5èV0‹=jfÙ °ƒV?d^µŒeß´NäÜ´Må=öȱIî9z‘[érÍ1 +}zÆÔá¶0ÿ¡uºð‘C sÌBÃ\³˜„Ÿ|¾Ñܘ5j–PRO–x$« a•–<ñià@aâ,“þˆAOÏh•»RfÑ–à8èÄ@.ôÏAc?/¡sŽ´è”ÝÉÊf ý€Ì4Ÿ®«¸iŸ¡dÎõ)`oްXÀgÆîŒá#­bJªW%ÀŸ-55ïÏ“¯äSÓ¡ìI!àçËÍmNm=õ`VäÛgy0€£SžÍòi yÇ +âßÛæ×-&É§ÇæìŠ*_[%˜Ä‹µ†ÆÓnõ¡žZ|¤¥WúÕ„l¿†Rzb¬c}]ç±Ë\ï/º»9Td“‘¡ïáQ¿ŽSnøU¨ô#®Ð'Çe^é•_—ùÔÓyΣ©.<œßÒÔÓö'á!€‰u©1)îEölMÐð‡¹yð=A«UÍö™¨@–‚SG‡{ ØÌ ,tG‚Œp:ýlñ?¹Qm@]qŽ—g›:FŽ×›º¾lñ8Ç:\¾Oøð9r¦s—tn¢c¿˜ë»Ô {>¥ò¯=~ã—@oíðøG«ªUÂlˆ(IN9ÿ¿÷›GþÚkì?ZdÂŽ¸¸Ï;<îû‚–Ï;|Þù* v Æ$îJ°ñN u±ú®ûl¹±ð<šXp 'æùÕUë ´‹5öc£¥MEÏÝZú¯=Õ¯©Šð©±igóŒªóâÌ@+ÿôÞ_Ë _VN—TÀ÷¤l"^îO“\Jاj¤û¿)r gЀöÙ,¸¹',ºçUáÒ\*RºGEÍûdâSÿØhþðu£¡ùt‰òké%@ úÔ‡¼‘àR %«Ô3GLõ*)Ùž§;d”ôs=ÿeµXKÓm`V¸4µ$¯¦¥Æ©àC䔬9>i{ ùÊ*ƽu+©yÀó²wFÁA– x¨GIÊüy™uš˜hG…oŽT=õÉÉYË õ¾ùZºM^i•“Ý6ØcôÐgfquúêüõ¦ ø4 ëyµrªï®eW¹U̇‚’åP’3\*JÎÖ$6Ü¡ æœ.ñÉ+Lôæ@îïÖ©’Ç)4Ì< {íÓ3€ŸÚ™e˜†ðÁ'ÀûúT´*óxÅS‹äûÏÙÊ¢SûÉØÒ~jd£zϸµèh±–áÓqa_7¨à¯ë”Š“Jñ×MöÿÏÞ{=·qnû‚S3ç̜퓮ÏÝÞÁ¶ìmÙ²-ÙŠ–DEJ¤H‘sŽ ‘sÎÁ¬,KVÎbÈ9ƒ994‰”ö>§æ¿˜Y­;÷>LÍT݇©Ö-.Š²Ô z}ßZ¿Ðh`1²ÞîÞ¨©›ïürrkœ[óöÞL»…,ÿdÛñµw5ß®4\|YØ?ÕUŒ×D2AÔÈéHZ¤Ì h¥~k²+oñqë!ë’ÿì{Ôxhkœ~-¨•R¬Oi%Ý­Ç?yÌ*>šá¶Å5Ô²È$éB|^ ´íÊ;Òù¹'cVyuRÔâyˆ?šñÈ„)·Rž°ˆY«1¯lŽÖü°üªrÚÛ=¸¨aÖŒß,ß·©e3 ø»ˆ¼ãOí`µÏ?®þFÓ[üoó¯ˆEQÇ—ëPo“°0QtÈ„ˆK&N‘ýmYÒ²“«×Þ5þ•]÷Äœ– žUƒíã¦Fа6#nÁæâÆõt²÷QõY׃ª¿¤¼RaÒ+¢c˜ƒQ¿6Ùqj ¼{ÔÁ#‚'yœ²K…Ëoi…A€¸³8ð"å‰bfNóÚ%i˜vacšYwr‰ÖÅÝ;K<Þæ4®$aäƒ'ëÊ‹ë‰ùPç³€²IY1¬Vf¨W׆ÉùØ=}~ áÒêHãÏ1=µ,ntÔâ–­ îµÕ±®<×ÃÊÏ_6HZi½.ç¡5%mäÚY!3í’Ác"QKp†U±>N+ôÏüÓüZxý–”YLøèO4üºÙ‡ ‡6G»òãfnSÌ&芚ûT[3·‡Ö&{À曑v¬¿å-=#ýb¹UñïaÝ7¡in%èà:~õʤ°ÆrŸð“ñfã—𻾫™×‚ÓÌÚ¥aJÁ:è›Mu7 ¼aËâ¿byBÖî{-'Ì¿‘vBB­²›–ßJ¶f¸ƒŒwªºW§øµ³oɧ—'˜Å›ïÝb\‰éeˆ‘Q º§9<é¬%E rÆúøávÅÒkâ ?ö^ØõrÌÀoÝc•-¿!ŸŽiE­ˆAÔ Þãôì£êoŸ4ý˜l?ÕáÏn⇀©pj äëÅwm—“NÇŽGÈøàbãâ3Ô6ÏoEÏ8çö Ê>ÿŸ£„ˆ˜Yõ¨U3 +–ßÖí÷Ow‹™@KØ„„¸•ßù×ÅMÜ¿¦ëÂæDË©œƒÝ–²c3àW`ÿ¯€Ÿ-_£^ L2ʶÝ||܈¿˜i8´5Õôs8lgVÌAKb:)Á?M-\ï:Òò7§€ÆiÅ ðÙ€«¸à4·Â}¿éÐÆ0þb¬M»9íQ3¿ t^ë†ZÒ0(h›iý¿dé)%OÓså³Õ×µÃÓä¢ÍQZÑ–FÔ¼4#똖5/‹š¢~ëæé¼çaó¹í‡áwáB&}eŠuueŠ_åW¾?zç×^”ìµÑÎ<ÛÊÏýŒk ³ŒžòÈÄkØ|â)^MÀÜ-X•"ìsÅk#„3 OëöƒÏ8Ñ› æøðëãÜòˆVNósÊãZvUhš|eåEGÞÒ‹®c˯‰'#jaSB/§®¿¥]òýÖx`áYÓOQ-©0¦#^ +kº +7'[.¬Q.ô=¢ˆ¹W¹6N¼è{\þUp’VœäVm “/|p;óýOBV ke‚u5bUÉÂÖëûÀ͈M)ZŸ¤ÚïUüèy\{>nÑÖÇäö_I‡–ßð®ù§äxÿ©(a$V¦—<÷›¾žÿëæÙO]÷YaN” +:øJÔÀi_}Ý‘œ ]‰(å!#­Â¯cW†õJAÌ®R­Ž3KVG)S^¹uË¥q«˜5²ºbzZUDǪLX„Ôwý]ÊÓ{+çéȹ¥’¬KÂéDø„ILB`_ÃZRÙüó¦A«1ésV'šNDôø«a#»¼35nSÈ¢öÛ# ÷õ—Q§€±ÑªÒnUx†]é{Pó— ~Þß›z +þÍØ_øÃ쓊‹Y‹ù×5Õo!À¬ Q€Ë.ôüµ‹¨ëôÒ…Wí¿ØT~=ÿ¦%?¤¡T€­MÚø¸±îÂ?ú^4Ïx…ô´•Õz]sH¯(øìVÓ±¿—Uûdwj`9 +X20+¢Fhr~ÂÈ/ÏïX!žY'žÛ£] MqÊÓN1ã½OÈÜñòI«.¤f”„¦y•I“—2K)Q5¯.iâ·Ætœ†„‰ÛZĈž[3ñšì¿:n" ¡‚:aÓì;âiÓÝú¯ƒSŒÒ´MH &'JnÒ"ïI»3ã/F ø ˜'>-‹›y­~< §$ªãBjncLG)rÞ­Øç¼Y󸯰 ¼‡VNé»9Q½‚5H˜èf§#n!•nMµŸÜ/‹Øøø¬sàvÌ2tgcFç'îžÃƒv/ Nã/,¼¨úÉû°`_öø¤ñõýºiuaü^‹ã6„Ƙ¥Á1Â…­qø$R~\'§G ýëÃÌ+k¯ '¬7*>wߪúô}ABϪŽÄõXIâÄ$c& ü¦‘ŽS®{Wþà¼[øÇ¨–ÕŠºî%JEØÀm jDƹ[ º—“43«Ã“m§bFUz0jSÒ³ƒÏ¯¯-Ý∭¯/l´‡f¥¡iX?=§i}„]ºôŠ})4%ïó®Í=«þ|õmý·Ë¯:¯¼f_Y{+¬ Oò[¢jaÇò0³Àý¨ëHT/åAMVÞ´Y{K>Ô²ªnGzV"N:úoG-Ý’ Г໸èâÐ;ð锵qÚå-5©0mg¶îxÅÂôMÊ¥êEÌ +NÎÓwwÖ/fâ'ëBºï½œ ÂñA «)åRö¤}Ýý)¯ˆ›ööÞEœrqÂ.$§\fÂ& &€cÃòÕé¶£)¨“Íê…µw„¼1F}Ü d¼÷*ÿ}‰'HÚº®­ÑË|Ïéç¼Oç#æÁû~“ ´YIHËi˸EªsbQxšS³9þw‚xvy¸ãHÔÈnÆôcD]¿k<4ÿªýŒï5©jqš‡ÚÝi¨õ˜‰R1P¯d¡rN…hÛ%¥ìbÊê89þEó·‹Oë¾ÞzÕv ÑJsniÛ'—lÏÊ¥¨K@ƒÖ M´ OvЍ‰çzvjà¨ç„‰ßŒ€ÏI;%Ì´SÊL˜¹añrHÏ«jå„°¾GàŸîeEu’NÄ,&†³CnuÌÀ­GÌ‚Ô&¥G ßmJ¿þ{[Ïåÿ7Ñã¹­Q½Ôò[¶¦ø5[£âÆwôϲ/Vá\ýïˆy±iNE|jÊ*d¢.)7á’Ÿê#zvMÜF. j뎧«¬½«?/€ÚºåIËõ[jfµëqå_fŸU|¿5Þz6ec6ƒŸ¬n½ìyM8¶2ή¯ÖÖ +Û÷¿óÞ¿öuÒ@½–±ñ;ãzfËêHg¡ï¬Ùêù-u7#¤·­Ž/M÷ý~Tr鶆—’àjà­wàq&ˆÒ611 q! £bùUÅKÏË¿ò·MZù]IûЃ¸¥WÖ‹p1À²à v<Ô•™ÞšlÊià•8•K첸½[€ž›}NΛQÕí¹Óð—„w:e§Ug=AÄ(¥lLrÊBZ% îãu½ü•Òyûò?Ún–ÿÞv«ü3è庴³»qÈi¯L„:ûoAÝÞÈ.ˆy)·6̸ÒJº6•ÅêÙ#ïéxØw¢µ§gžff}Û³BîúîŠóNí·)£°H5”´É‡âf1+¨ífÆÍ*I¢Td¼2Ňeå è|°4¢ç5oÏÉd 'Ÿ61kA«–†5ŒÊ´‹×µíåÓ3.f[Ü@­\zÕòýÖáÂΜb(¬cÖξ¨ß?÷´âÛ•7íç G:øO%j¸3ölB-EÜRQv¹ï Ô+ ûÜÉvÙïmC¸ŸèUÔÌlŠ›8´„•Õ¹2Òu" ãÔDM¼Ö­QÜσò/Ì·.~ +ÇÔ¢VòUÄL,HŸfl"rΩ”fœ*EÈÀkp=múÆx£ø_ô½çþÁ÷kÑ·ÝBêά\¾='—¡~'öùeDËmD´Œ²ÐTËÑÕ7?­¼jýÙ?EÉ95;>‰`gV&I;Ä”¸û|@Óaÿ ½( Ú<í R9?í€úo ¸JÁ~‡ghÅq­,ªeÖ4Üš…w„‹Þ§M¿l¼%\JÙÙ-kcMÇ}Ïj¾]Åf}OŠ›êöú·bî!îLtŒV£.>®;¤–ÿtñIÅ~Ô&¢ nU_ÜÑ?4*˜k3¤K‹ÃõGƒÓ„ÒÀxgžwzk²óòÊ(þò–VN ”|Ä®§=2>vãÜÓ–#+¯ñù[ cô(­b}’xÖ?Ã.OYxí) ³.8ƒ?ïúõêg®{¥_ú'ÚOÇ ÌªAFÞœÖ-¿ãyžÐÎ:î´îß|C:ëºSù­^Uô¥e èÓhî´MD ëyu¾—-‡\÷Ëöǵi;¹Ü?M.Ùš¤W„ռƈFAŽû£FQ׿x×YçÒ?MOünãeãqìû‡â^GØÀjÿX¼>ʯ\}-m˜ûz20Þv±â.$,”Ò¤MBOö¤ÝÝJð ½1»Œ³6-ìX|I/^}C:³9ŽÃ®÷a׬ +ýzrQfVÄÍx{®# 'nç¶%vÔ î +ª¹õIúµÍqR~PG(Djv¶÷~jîÆèªš]Ô1«>iáá6‡ñùŽ{5GM·Ê®ŒKCº¡~¿ºWäxD,ð¾h;µ³Ô÷$b±9²Y øKgh»š„MLK:~M9Ua¥ds²ýäúXÛ±ÍIÜÙˆw6ã¡5äæ¹ä-mûɵ‰öã å¹Ù¹¾Øw̤¬ØûÔª°–v-ëåróif¡ç^À&"­L ë@ÏÔ%´œšðXÛûХϦçþÅ÷´êÀÆ t.¿ié-µÐ4Tóǹ§­g6'p×r7í`Ö‡Õ AFÛ &~KÚ"g§í*yÈÄmr=dz=ÄýìxP÷=ìçÙónv`ï?nNt]†ý¼^±fm tñ8ûÚæ„ >¦éfaŸysÝmüZ£,ù×Ʊßm¾i9µšóª¢–¾ž¹Aõú´ >j”± O@4® ·ü¼2Üphm¢ã\ÂÑ+îè»0ðq‹„¾9%ÁmŒrËz1>¦cUoŒµÞšÄjH—“Ð{q=§.¢&] Î +VÞâÎ%tŒì:Ohªõä&pÄæ4¿j}\T»2"¬\|F<êºÝú—qqÁ?Ž ò?PûCÊB-Ï8¸í!-íêÚéì_sLO,Lµž˜{ÞüýêëÎñive +übîí ê%„Åw”ósÏ:O.=o;ƒ¨)EI½"ºee»×—p&¦å·®¿åU™Û¾òOòÁב2^.1ëâR"º®Â šr-aá´F­bbÌ6tokFAw?!žZx…;¶>Ür™¼‘,já·%¬ãÇ”CL_¦ž NQ/£V!1‰º0¯îé:µö¦ùx”KqÐ7à‹œ´2̽ê{"¾¶ðRXžæµ„§ùÆÁ3¿_yUy`c¤ýHÄÀªš”¢ZAp‚Û˜Ð‰É ­¨káQçéaá¥/&å_; Y†¶ ÂŽµqòEÇíª¯bJqÊÆjȸØí97¿5Þ~Ñv«â«ÙÇ„“ ›\„¸¥<ÄÉiéÉۦy±ö=Ží;À“){Oßæ4¯nîõþÓ/‡O<}ôÔé“ÇŽìcþ?têØO'N>vâØá‡ÛÇÀ: wüôéS§Nÿå—ãpЉÏ:}úÈÉÓ‡Ožü9èÿörŒÿžsb|Bù¤áÖ'UŸœÞwàû} U>ñîKî–ÜÇõ»BeóþË/aEþ¯Å„gÁ1EŸü\@QñÄËךJ÷5–Ò²ïãrb¿âÐÇ?ÁÉœ:ñßR9u|_Û¾£‡ì;røl)ÿ]OÀþñ¿>é¿þ<µï8œÀ‘SÏ÷ø¾¿á“ýû?ž"¶ÿyûN8zôä'Wÿ·¨ß‚˜åŒ˜NN ©õin_ËnŠ™ÙMi£1¯FÔ¤¢˜‘Y³òÚ‡”Ös›×'ÉùúÕà4»Å*EÔ’Ž”YÁÉ(Y}Ë©Œ›øm5þâÆ$î—ÕwÍ?GÕ¤RÔÁ¨‹©I—fMÒ&  v'ad×Å´Œ²ˆ–Q²öÑpw\ÝÝ)«×óÛ&)+å’ñãVAçæ­`ù]ûÿ(ébx‚]ž4ʘ1­™–S6ßIÚM¯84ù¼Æ]ÝøíʳŠÏƒÃm'’Znª—’Rf)me¸ãÄ£úý«Ï[­¾j=¶ü²æ»ÐDgäP•2È »2ªå5 &1)mSŠ’UOHßÍ ¨•´Í)Q«‚ÛŠÚzzà|ºVcÆ.¤Âƒ’²ñq=»&ª¥—Eu¼ú †}-fàÖ%-ÌÚÅáÚVG¦,ôª¬ULÝvÉD‡\€Àž¬‘/mŒÓJf…±)…½Ô¯¦F`R.!#퓊â61eCC¯ô½jþ1ЉQ“€Ô3*Ó^©4;§º•r‹¨K@J:䔓)ÅqåJÒL-EL´Š¼žKÂF!aeÕ¥ì"ZÆ©”'­BØ~gÊ!¢$m"†_G-ÙÔ®ÄͼÔÉëÚvK¸ïgU·vàu³^¥ +õt«B& ͯt°i;P »R‚ZCœýwÓî¡giGOj“óQ»ˆšñðIØ$ë„Ýœtð:3)…çDµìjÄ,¦&ý·“./ã•I²³ÊÞ¤‹‡[)ˆR³KÃZJáæ¥\s³ê×bAXß§LZ±‰Ëĵ7ijþqÆ•¤ ÖÒ£T n>!igÖÄõä’¤‘Q‡M‚×ã…ôìêÕqÒÙÕIjAÔ.".’·¦¹UIÔˆEÁMX-¹0¬!tÂÖùaÁµ„µ·±ööuÐÓ¿Ät¸3¨‰X˜4 +âFfePǪéíq›JÕ‹;7GÈg—Ÿµ~¿ùw"<Ý™—Ô0ÊÒzqWÌÈkî¾ü;ǽÖ¡ñ ³¨+8Ó‘·òæêŸ6G«¾EL”«)«‡Zd4Ä&c V9+ ç„Zåì¤UJM`S& ´’´Ûš²óÚ3.¹(7+W&í +Ô'¢ç7‡føµI“°ú LÎ.¿®Úïü­òkuwåg·rZ\£b&h—7^·þ¸ð°üOk/ê@Ô¤K -õjXϸ6>xéŸ %_ 3‚δ]Î LáNÏ>.úýòËò¯’zÒ¥¤ž\€Ö v9±‰Éql*Älj3ÝÒmŸj(í36 jñöÞÈxUýIô³‘SÕpªjNMÚÂkNÛØ»1meÕÄ5üÆ”YÎMšéÕ åjƵ`ÓN #e—2S…0åêHXåÜ^Œ‹4Ī ¹$é³N 3uŽõBÂÅi÷·ü4ÿ®ýXƧº“šï¹“ò)”™YÕul +OÚ-—¤l¼ö”•Q™0/e\¤²Œ‡R±¶Ÿq±©mˆ]LIæÄL¬Ú¤ƒQqÓk3.f}ÌH¾²9‰;7‰YûÇ9÷—I§2Òʶ´Ä ~=1?a“¶gûîCïJS^! û6ý”ûÆkÄ5ø lÓbVZyÔL+‹Xù¸ 6•Á-dÀ’Ò.U/êP)P‡Œ“õð[ò2 uˆi) »Ñ`“Î…1»ª;n“ñ°é`éYÕPÂÁíܘjþi}²á‡©¦ƒaõª÷uSÞáÇß*ö§¿jý“Ä|lzõÂÃæý‘)úÕŒKÊMûd¢¤“ß…:DTØ;IÎ¥dÝRjà7FéùÌ+!£°Ãoá´L”|¶ú†v%mVòrŽÞÞˆ…Õ´ò¶æ›õwõß…u‚VÀGJÒ¥êŽXÄ”õ ¬`Š…Óœµ±›’Fr‘wrùmÛÁ­iZqÄ"g­N0ŠçŸâ­¿¢_‰êcjÖµ„ŽZ™!_^éúÅp³ê+oIç£1>¨çÔmŽ·ßn:×JÓ.v;bb×"Ð;qx@í1ÓŽþ){O7bQ°fAkÒ¨ɺmàf}ÂN)›I‹J6HðIIb‘’~óæXÛa÷ýKÿl»qå_×뿎Ž*ÈÁ)QóÆ0#ë-íBð-õ<¢¦mŽ4t?,ý|îEÓ¦{5_y¶žDMV °sœpvåeó/Á‰ÎKi µ,mÆ_D­Ô +lRAø j ŸótwçÜ +Ù¶O*NÚXõ èÔ%æ°Zñ*»ãV~[Ò,èÈÙdÜv }ÇɨÝv“J3.|Qp¢áp|ŠÛ”¶ôõ†t”ÒÐ4./ë³v|rÙß•·„“°ŠH «‚½·J( ‹œ‘€ŸI7`ÿ¬¢7=×=”žíîK{d‚¤GÄXSSŠüÀ+Ð#72óÝ×á1˜[ì¹›WÝÌxúnCï±Q+«6¢Ãå!ÜÙ¸¥ób@ßt, oÏÃ&_D`’v±òÚÓnV ê —¤ÀèŽS«#õßE5ìæ¬ãú“´«ïFÌ""† Üæ¨‘Õ°q;fagÆ«P¢+ ¸œ›xžñ ½L8{z£v1=餖§´ª¬—‹Oy¸ä„T²¥§–øuü¶µÀ +gïÀ_祒¿-ñè »!n´g¬¦méjð3l`_ÈiÏÀÄ¥çu„ Ôò¸•Ù·ÑkÃfúµõÉŽ<׃òoVž’ 3®»3[£œ²å×ø òŌӔ±2j3N+jå6§ +qÊÑ£JÚ”ü„EƈéùMI½¨=õ±þø«Z±öfõç ^CÒ :ËÀo ›èa ¡51svlj\µðZ7@ǬRÏ'¡n‚“ÜŠ¸†W›Ð1Ë“&l¢0½±ò»§B¸ð–”ç¾ßüõêkê……çô ¯éùÑvep’zÙ?J>œ Ätìê„™Óè{Ý~dý ú³¯x\–trZÃzÂÄʨBm¬:ÀëÖŒ0Ã&c&¡.³J¸ ½¾3ËÆÅ-İ®3/j ÄMôò$`{ÔÈmi þ)Ne`‚ }ɸ˜è:³ù¶å``ÿ ¢áÕ¯½ÃY}C:g­½c^óË–ž×g¼™ÿÏÞßÊÿ×rÒf9/mWW±‰õ:q×¶«÷föïî<·ôºü‹Õ‘ºï3]gúÕ¨ ›´#$ÄüæŒ]ÆO;Òœ»»8[€:¹¨CHLX¸M¨UØ•µI¨YXËœ^‘u‹“ö޳©ò¯;JP¨µ•±öc¡É®³Û /ÞÏÉåï¡VâPË1¯5a•2f)[X5èÔ#áfT·ÑY©õÊĨWÙ }1”t +1+Ô‚OÂÛž—«¶ç¥Ò̬D‚þÙžxšñ(UØ„»ˆŽV’sˆ˜Û>7çrr³BVÚÍÅ…õô24UÔĪÆ&M¦­VÖ.a¢Vvb&\NÛ9mYà›]Ö÷“¶eÆ)å`S—âV1 þ‹9¸mq» k{Qu73'•¦AåûeæXQ#©ö¸±Ók²>.)dfÖ,ŒRÎ-1 +2îþ;§!Ίy·\–HÙèUˆ©ùÄÆXËáqÒù´SDÏÍöÞC==ƒ)OïͤûúË´¯ÿAÖÖýºí‡à éBŲ́ι¤¼Ì¼êVpêFwØšÛÀ,è)a5./maT—7 n‹_C-ܘæ7uÊQNOè9µqñR`ºýøê(1Ï?Í«Ž˜$¤•)J¡çQåŸPàá¤jÒ*&G´œš¨8ÀH)ŠåI «nkšp~ñEב¸FÔ¹ãìíMaSàM´²žr%l`”nŒQÏoŽÑò}ïpÇE¸þ×w¬¢?Æ'„„FNŠM3K"3„óë€ïKo›Ì=oÞšbU®qðºiÐÌ)À˜„©ãLDÓðSTÛôSDÛþKD?·ðÛ׵ܿ1RþèHÐŽ”mûÖTÎ†Õø31 ñüÒpûÑñ¾+ÿj½[ÿcʨäÅŒìšÍñö#‹Ïk¿Z|Zýùⓚ/7‡IgG y=Ô#ÿ0›V¸mQIS€;­X;jãw&]ŒÚ÷ób~n–‹Ïx™Í›â¥Íqvù{wß­÷ ÙûyF3bn9Ö´ ©AÃH—SvvCÊ! dÜRnÆ­”!޾¡äÇIÁ}×QÐ1¨Óˆ…Q¶0«.^gÚ'b¦½.¦;·ª/锲Ón…d{N¡|¿ èÝž“róQÆ=ë_µœvô ¦ƒ÷ÒÞ[cY_ϭܼLš™qPXSè¿ZÔÎëHÙÅŒ¤MLÍ9úoe¡À ã&v àÒð3WVfMHO½‚8¢ˆ‰ßÒ3ÊR. +ãí¿Ÿí½‹MUÙ^”÷dæøtÄÇlJ/ˆèœDw‚'rÜÏxn¼z¿¤ºšL1c:|˜¯çvÎ×=€@ عz¥ðtõ€•-I3§!ª#] +ë(…13íZÜÎjN îÁ‡)ïõ×1»B2Š@÷öp«úÿ6'WEÌ´*dzÊÏæÁ›˜_M˜± Rf~[ÚΨ‰èÚά W»2Z»°{yJÑéxN>·ð¢óxTêÿX›Ð ZÂ3¢&ÐG…³oZ.ü˜2ãíû´* +þ&j–Ò·á÷"&nkLÏiðOÃyé„̤½ï:6©, û‰ñF x ið#IððØÔ»°ŽUÖ0J¶&ˆgüS¤ ³:eã¶ÄÍPC3Œ2Ô&ç$L¼æµ‘öÃŽ{¥¿ßx‹;²5L8é{ÐösBËïÜvËÄ L3Eø”YÁËZUŠ´]Ê +ée3xhð¥Y—„½=§ì÷›ÙKðܘt «g( u‘´÷hÚNFM¤’ô‡ˆúúî%]½C€Ý|°z­3‰ysxZEÚ#dÄœÌf¨YÆð;>… +›\xÔ >€™›gw½_¦7½üϺ”ŠŒ»÷zÚÝw;yÀ^7DL̪¨•]¿:sq¬å`°$çãS³> ü±3ë«õ(”1‡˜ ÞHšñô ¡./åäÒnÐón1pZˆ8x¹/3',fg¼AÂÁéˆÛØÀëR~ +´bÔH/©EAó†Œ +¿šœ12®Å1L¶K™QÀx¿šx1eçá“p|Ú×Ý›òÊd¨›GÜ^”)²s½w1~ÉÌ©®gAûeç¤2ÔË'b<³=‡y¤îž”K)MžM{¡W|r%ð#;éâvD ìjÌEíü.¿‘Z +ÞÖcàAÚ7ø$³¨úuŠÙ£& ¥—&lݪ¬£§?¦çµFt°VÀë)ï]-æ+£Vn#†!#«6¨e\ ¾ +LR‹b^kÊ%fDl®5³Ìù¸eÿêkÒyÔ."ù§b3ÌŠè”çŸ4/½W¬(; /¯ÇŽ´N€/]|Ûx ¢!\BLàìæ¿úxä4ôyXG+]è:µ9B+J{嵸=¬áTmŽQ +‚“ôÒÐ8­Õ²*Q¯aímÛ1Ûí’ÿ¼ú +wú£ÑÒŠÐ1 ÒyÿXÛ‘ðT;p[g^4ÝÖõRÊ*¥ƒnB-JXMÌM7JèÚNdLÄ´…p)|›sGíR3JbZA3jQÓ€}9–v1‚Ú–#-¯#aQÊü“ÌàÏš¨–Ûh¹õ¨ž]…&Å Œê©Ž3KF15Ë9ˆQBNš$DÄšÉ!¢þuN®x?+m,fùôò¥QR^Ü$e¤½¿!6)¤Æx…U—°ˆh鉕+ 6é)¯\šô VË¥ˆZ36™Ûób6rIÂŨËæææ@_Ìöþšu÷ÃcðQÎsýEnVÀÈÎSkr>.èV-ì!+ãQõb×,±k“ص¼ŒW*~´ÌkI;³að:ë1·5b¢•FÀ³­"ºxÔúÊ}ë]ÚÓ'ãå“Q7§-íåt¤°Ÿn>qóñ›zl¢¯BŠºoO¢à Ržnèøð¦˜‰U7óÛQ[·Ä¯#ä´]@‡1ÓŽ{ý®CD½‰M€¦ N =ãë½ 9Ë"À3)ì:š{èQÆ7ø ›†º ú/3Ë%`Óêsór%Æq ›”€FŦ‚ÖêËÎÃ1sRqÆ+%í26IÛþ²í—áÁâ˹úînÏÞIûúîÄ\ìÖIÚååaQµ¦G”rߞȀÎJÚåü¸åö«°ù±-ì¸ù2fv!)õ(•)owOÜ(£ •±ô©’V%ðô¸Ž\°¡!çoN2ŠP³„–vŠ™)òåØ¿1 „gTtÿŒ´}}Š_¹µ´ú¦íÈÖ1?e–³A{\JkJ 6 þ[k=¼ò®ýX`šQš¶(Å)K_¼m\+î@ +&¢µcו¢jÂ…åWåÞi>ž$ç#:qçêpç/koÚŽ§,ZÂ,!ÅtäÂõw•_/<*ýCx¾š[›¶Ji #pFÔžOÕà/„§êĦ뾩›!Ìo‰Hð†Ë#mG×ÞužÍØ’¬SÕ ÞZŒ:$ÔÉi‹›8Y7¬‰•Ûá‡èÅÄ”£ÿvHM½ºþºùûÀhû‰¸†QŽØuˆ‘Û’-³5E»_˜5K;à€_šÃX?NÁ~DŒœ:ljx +z' +¾4 ”v\Œ:ioÏx‚0xô˜E„O{úî>J’+iîgÁ3d}bêa·¡nVSv–Ó™™ówæ{@»€CMwƒ^ê½¹3«ìÉxĬ”CÊÎ^Ú™SÝH¹zL÷€®NZ”|Ô&&Á>7E!ЃJÔ¥”§àuP8.j•³ãÖnIÂ9pweZܶ6ÉºŠØø]Û³RÑÔá‡%ù@fVÄŽ;A‡8ºqû¯š0hìh2Ô%åf½bΦÕ<ÝʤS) ›Éåé¶Ó)‹”Ÿq^œv¨Ta·>b­ ,á’ró½÷sÀY¯Lœ´ÜŸA¬·ž¡Îžž¤K!Š‚fE`OÒs}v°kms2yÖ)d´æ^B,ìÆ,¬aÖ3ø8ç½ñ&ãíÄt@T/j÷ϰ˳®îž°QÌ^Ÿ¶EŒƒ×æ_GüÆSaÛá„K& •kSÔÂ-B°iéœåßí–£N)/ ˜Š8Á?é…툥¿/¨SñqKÚ®§r!ð: ý8M^ÕiÈ€šv%2Í©Žšzkïxe‘i¨kX›”M)ÎÂZAÍ PlÒõ›ªoS]—âVNËÒ b¢éBï‰ÒN?íè–'íJIH'Â/¿ÅŸ\%œ^g/>Æ‹N²Áó0k¢jrqƆ]»Rf^Ûâ«ÚožÔþ1pÚÂàcŸÕ}½ñ¦ñ§è¡ {ž³ŠÈ Èsõ]ý‘å§-?‡ÔìšÅçí‡BÔK³„³Zà½øÖ)?Ω]ï8R“‹À‹r×Çe‡„õô8Ô€8ë‘°AŸ“צÚO,¾mþ><Í©ŠØ¤BÏcÜÏëO9eˆvèÆ6ä³)…‹œ•0ò[¿•åºsùOñIâÕ¸IÔµü†t*ª–bÆ^EóP«I›·°&[li(¥)û཈¥o l“QûÍ'(æ!@Ö‘¡àùf!>®SñcÚ;÷âF9µ )·–ò(¹y!÷ý²XòaY$D\ôºô bSÉá¡H9”✯ç†ÅI§\”Œ}?¯º•v hQ ¾Ó¶¨©›—Ð+舩[„ÕÖöB?ðVï ò±&û†‚)1îPÊ6ôb²ç5ëb\ß#ȸeüŒOHCl¼Ö‘Y•ò (™yu+äˆsèaÀÄo Û¤\À]UÒ^ ã§€³ +q -yi§ˆ’4)¸qjSÉRÎÞ!ÔÑÓ—óv÷m/HĹyEøzÌÊ‚\ïÆ,×£%7åîÈÌõÝÏ̽NV¦·çæŸ=rÑʾøùà' (¨ç滸³ÿnÒÙ+í• ³°ß9·R¾ã‘p±kZÖ‡Í' ·qýÆ_§ÖôwŸ.ÎôòÖõ2rth=êp6 ;lt:µHØxq;¯-fàØûÒV)3i¸Ъ¸+ì’œ§wh{^9[ ’n5n–Ñc&qWPË©‰Åø §Ã|«qÿæ0»ugü«wtv?j‘1£:æµ¹çµûCjJÙê4¡hXPðiJ{ã&bïé‰Ù„„ˆIÐ1ñ›·f8•Ëo '7'è…¶ç'Ƅşn¾¡”o{”X-sÓP§q+£fc²å˜íî…šT¹ѳƒZfåÚËΓ¨NLJ[$Œ˜Y?˜ì<¹ð¬ò›Õç͇=ï:ó²Ïê»ÛY´ãºþ4¾u (x´ˆž]ÒáN'L”²„Óî~T¿?kå´¿_’)Q„]'Eì¼öÍiÂÅqÂ…¤YL XÆ5_¬?“æßf;ø=¿ ãÀÐ4¯Êt³ü Sÿ•/‚£¤âåiúÕ©žªoê>À•{)ÏõW#¿㕨‘U½2Ùyί¦W¢€A­1ÈèIûá¤sè·¸½w(†q‡MDk¸ÕŒÖ÷J—_–4ÉXÛÞž[Û¾ž[–”ƒÐ'œ¤›^±à/€÷l$”•1Z<¯)ç»þ:í½ñ.åzžööÝÁ¸|5.jÂOXhåˆQJIè”,Ô|4[ÿýܼrm³+E(h+~ÆìÖÒ«lö9ë|Æ4н炂×þ¡Å¬"ZÓ6 29þ$`æâV€KÃf?`âVeÜ.¢AÊ€Ÿº±>݆sHXÄÇã–C!5ôkè1 +z +z |³%탗VSÊÓ3¸®‘Q–Ç…uÐ#CàM~Mûz®§|=ƒÙye/ôˆ"ç“ËJ͈ôÒ„¦w êüÍ|špôßÌøú¦½CÏ1ýö~KI98­s/ÚOÍ¿$•‡m7_­êû%ËêVÀÜ£ÈÎ<ÊúdаžÓº9M-JZÙ ½$aã´fA÷¦Ake`ÍQàõ¸EJ ‚/ßœáV‡ßÞ^PöeD\È•ÒÉ1“œ–}±òÚ–&:O:~mú&0ÉnÉÍöÜŒ˜ŒˆIÉùˆwð=:Q'b’aÏ®Ž‹‹ÿÕõJ‚znKÃ*‹¹õàYš£~SÜ(ÂEõ2’åI×É—¬üß-?뼊]COØ0¿ÄªóÈ…]yóO…'é×26);a•ÐÂ#¼k9CŸ"0Ío›Õuу·2ò;P·5ªf–éï5|§l:ô?©{ª~ÉyU·Cv}ÌÊkOÙäüœ«»uâòCê¦Ã! îÔÆ›úos&jyz–ݵe ^J˜ä‚4ô3b:S6)+`¢•¯Î%´Ji0Ó¯¥]…Z¬T‚˜NÅL‰:bÓÂö¨VŒÓ?k;Ê­þþ_B + ê¼õ& —³æ_QχaMÒ.%èåv#=¶ü–q1¦“R‡\1Ê™³’3KÈ9ì½haÐÕóã]Wîuû·ÄŒ„¹íé»›° +ˆ)—ˆ†`÷€|¼ïBÄN»e‚¹×äK/E—þ“éfÍœïÆÛ„óöpÔvý·°E ¾ºgp{¶{`ôjãµEtœª„AÜ…X¤´”›Ý–õˆ¹ið@ ¨3Ô3ø(¿Ó@)\™¤\L ësöžÞ„•Ý„:„Ômoÿƒ´«[·aä6l9õkjFÙÒåRÈ("ÎŽP/Æ-ÝbÔ;ø,5{°]ÕsJXQÔ²*æ_NnMˆ[0ÌD=½×ãöþ¨WÞzU)B‘õJx€ôÅqQíÒ¯"ãQ(á!GÁw¥fŸ¥çTƒ(vpÆ#§ìàõí·^mmk╤sð1â¾oŽ9nÃkw£JEĮ̀N9DàBIÎ?îU*žžëIÏГ”·ÿ>ââ“àü¨¨[¦z¿ S¦ÁC£V…hÛ7ð8y(\µ;ã6èB~WÆ'î,Ê1>S`ïµ"^UØ §FÌRò¦ŽY9?Üösp”r1®ã7A‘âàb¦naüL 81IÉ! »rk‚Qš§<4þ–îX!žYyA8Ñ£F^CHÍ­Šê-Aµ ~ñ=?<Å­þà’ +>ÌID˜ŽNƒÅMÛUrð.=a­ = æÖ„µœêà8å +Z4ªáÕ'M2ö¦Ýë7Æñgf5í_y\ÿuàîxRZÛ.ãa÷&€vdm½ÝY{2¦eׯ´ØugZEˆ;—sP*7§ƒg:•²÷ÝNš{ä “Œ·€ž‚ýÙž2wæ9ämŸ]«B-½Ê¤åösÄ|o±Ýz5 +qcíG_vüì{Æ8g¿Oº€ºTý«”³5Ñýú2nºûuôöÇí¼_‹?3’ âzIÚ!¢Äíœæ¨t›¥ n’Ѱ÷f3ÜêàÙÊxãáÙ_kî8dâ,èì^‡„íæ³˜ãæsÓgΡqGw·Š}mc˜r0ðZ¼ÔÜ-ŒØnă÷ ^ŸÆÁ!.±sZ¶Aå¼Ü.ÄN,hj¾OšXwï¶6–Á!Ô…ùs{V@ÍyyÄD(Z®û64C+ƒ½a!v üR³“ ÕBàç…4lçFIy€Ë¢ c(áó!ðÀKå>Ô¤‹@]˜ó2ÔFþé4Ÿs¢qÁ3¡€Bª˜ˆÀ¼Ÿs¨âÍyxîs6#ÿšÏ(9Ò ÛRŒÿfÂh~Þ±*]ò/Ê8NŒÚgbd™Egʼ?ÕÙÀ7§-µ# C”8s:ð§è=)ðúãé\“\ÈÚh?fòðŒÏF1À4V\¹=’ÁÚâÁ·zhQÆ~RÔþÈ)à Ö0î;ƒ(—S!þÈ“”‡2IÄ‚CyVá‘2+ïè5s_ö¨# 6ðTGJê©öÓÁó³;rÏ´Bþ¡‚ÝS°P×vGiñ‡rMz¦yÍFÛŠø|ðäó,Ú± +º-Áx›þÝC&FîËq!Ç +bGFJ¬ç9?nd¸?5ré¿æ„yÿ™f>g饔^F…N÷¡œõܶ +ä–„=’feŸH‹ΔÙ»ãÄðõ¾´¯«‰o ƒiN +u}“´9ÀŽ;ã×tVùO}¤8¬b¤(™©&óz¯*#sWÁ!$´àå O5"þ±Y[ª…ÀGC·'±A‡ g~Î1§ó|¡äŠI™óýt6¯ùlŽ/0NRâ÷ULÔ¾’M>bPÿÏ<› 4%r¦úv¡‡ ßqßÉÊÚÈÉÝÿ^g”}o<“³5) ,ŽqR‡é‡ÚÂVÐFÆ)Qú¾V˜½§Ê*>ÐdMåšñ¿øHCŠ5Hð{ +.ãl.§všIÜÕ¢w•„ð.hO‡<˜2÷‡õ-æ6ŸÎd‚¼ý¹˜Ó|²ÀŸ€±›€÷ß5¯‰‚ù:Ò00Æ ¤×±Š +ê„K;QÓgZ6ù?³öÿ™ç ~Mó¸æœÝ•’Â׆ß&)æ=à7؇!w_“]v<“S{<“׸ Æ} åÑM*.áp*] r™gzðP&œšŸ|ß ãbvä\ Àþ/À)ûÀ mv¦ÎÌ=ÓfæŸéÒ3éøÜ-oî >0Yðãd&»âtNøQÀÝŸ¢œéxLó·IÆ¿ÁÅMe—ŸNå7œª³ +ΔY¹G“"ŽyÔÜ¿t0I…ïËÈñF !èHš)6ÉŠj¶ÆÄŒm©˜eá£ö¤\Ü)ˆù‘–MÙ–ÓQó€{:)q¿ùÇ +A?HØ"…/´5‡hÆÄ³iîp1à÷Òq1{}D€üw-xˆ59Ñ8†òÒ"]f"Ÿ®Ô¾žÉÄâ Ÿmµq¨Hœjs«Î&ž©ò*Ž•"ΧQJ‰~„z¨¢^ §‚{ÿ0N7èD"àñ@¥,µ¥9LF?“'¼;œä±÷TfüfcM +!Ë0ÁÃ즔–°9ÉJ]ŸdÂV‡¨?Al?z¬dcŽT<úÙ4—fÎÿõRÀê 9ø‘ð] #öDðM-Î>qo‚ƒ>Rdå™÷ÖµùuÇÓ9À7 +·³Þ,öà‚f›Rδ¹‡Sl¯y6íl–EùǼ7=Çã˜÷¡÷Õ|&ðð'ºô  # VwÏö™ÏŒŽÜW“ôã¤#˜'“&]°6L;”ï)J:Mª¼r³6*Äü=0®ý)¡èøà#mðYYY&Uaó¾¶tdO“]¸?%îëø¬m5®z\ÁÆM>£&.°âvåù凚âóÚÛÙB~çÙ\VùÙ|æ£)áŸYqáІ&uVᎪ|ü`¶ Ó¤Í*Yçã7e<Ì‘†‰ü9ENú©¥¦m á|~Oô_PWÿÑqégFšIN߸³Ö‹öØìÇxž¨ið³)>Ìîø•}͉}mFþ®JÀ4.83¯›û^¦Ebózî1вû2!Ý8Æ›d„I! ¨y$àÍÐG“ 8àÔ$óù‹ƒ±tšQÂIÛ£mËÁ™{þUÂ1à³—5É<šâ³Îæ„âŸóéyGÓB¡ xã½I6âxŸ +ÌUÞJÀ5{ðíT“™·ðo©ë2ßœj¿Ú™úègØ¡\ÄÜçàÖh;£y™;#™¬=)øKFªx€ÅÞäO»£Ô˜“‰tÞ¯)qæLKâç>*tOž!8Q§ Î@þšæ²Î¦é¨ÿ.0IF9¶ØÃÓp“ÍûïGrfòþøs|ä¾hk %æ`Œtô©–ÏØ—1 æ}¦cß„€|¢Ì)ÎóÀç\ÒÎ8ªj@|3¯ÉÿxÏãið-´”#-Às¿æéÿ]âpþ³Àfž¨™Ø ‡úsN\|² þ~¶Qz2›Qr$ëç|fٯŌò“9xŠGߥ„>Î9Ôä”ŒEVö‘.¿àcYM¾¯Lçk2²N€ïÚSeæ5¹e&uI¸ûP—Y²<¬¹¦Y´ÙžD»Õ>!~k¼^¹£¬n«3 ®úî—{:0è²SP`>¿²¯ÉÈÙž¬’îkòª÷ü”göò{*Zò–å³-AìÉiIÿ̤gþo>£øÄ‚G;P§çÿ] ø¨ìTÃ¥œi驇jjÒ¾Ùëxœ“éŒâm%#m[4ÏlA¨OP›"‘Yžl9Ö2±ÛÔ0CÙg„cš×Ü¿ %Gî á}¶Iœ4C/5x£ï¦ï&xþÔ +Ø@ÃrŽ@߆1ŽÓãôx3¨_3|ŽyÝhWÎÃíÈøæsN”c©ˆz,ãål¤ù{pß 5Æ$c¥mŽÒ¢–zhAË”€Í¼ï”±=JŽØ£D¯ ƒéø¹V¼÷bÂq à`ù¶„ÿS)âýœ Ž”LÔxYðƒÕnrÂ΄ˆ±;&ÄýTfˆÿ;›QôÏ,Ô +mî›5l¤™û0#&(Q¿´lÒÿxú_pü{&Œê%þDÍH;Qãö'H±[ƒ¸Ó+éTUÔt¤.šðªxàqRÔž”y¬"F*q{rfê¡*]x ¸À¼'º7NŽWW?R×=ØHqþ7àØìÃ'…Ì}y¦øø…½I>åD+ä –´:Ôò±Šs¤ oÏ'(p³ÞÝW‰ÓלLíÈ^›c(Ïy8˼¸&í@ÅBYhÆÝŸ‹<¡9Î;€sV{I¾›Ý¯ÿ;/.<ù·'L@?ÒæÕÏf|?žfà~Α“ÿ׉’y¢ ÄÌ>šåÐÍ 3~Îg×T®šS€é'³Àט×q´ô´à—vW¥ŸÈÎ>˜ÊœÃÀ½&<›Z[#äké¨%=m{‚ ÛÕ®UUªLš²ÑC]N…|~¨aa4TØžº'rŒ“?úwTÅ­k@Ç‚Ú:™Í©;žIÏ6Êé).éPÇgšûrŽÔy•ûò ñÙtvé‰6»Ô$óÔ\*ø-Ô‘‚šv¬œtèÙóSË¥}”ÿs¾hðt9¯ël!³üç4þ–¶¯ &˜&)1‡**t_AÌJØãTÙe§S€†ãªviÙ„ 5É0€õXjFدv ¿-·<0_w‡¨a»CÄ€ð7C?Îc¥ ñq¹öf±>þűŒ~,§A¤LØðÆ1R¨iŒ~ ¥'ËYi»C̸QÆ$1&ÓY& ¾;LÖ÷›Ï}ÃvG(aÛC?ÃÞs³ë¾9ÈŒZî&û¯vcœŒœßŽï¿ òzwœ¾1€ó’W…?ÐÔŽXëÿ?.$˜&8æó„ýqtG‚ñ2 ¥:ÈI1[£”}-äT*$ÿ¼è)Àçƒ à'¤ôÄí‚ïV/Æu{ãv(£ÄüÒ±?å²Ït|öÞ;mk²7F‹ù ´ý‘Œ¿Ñ“òy¡ úÚØO:šÑnó€÷ý—Ÿþ£¦ï“£wN¦ÑäÏÿÏþS—Ur¬ù—wˆ /½7ºpà£ÿ;Ǥé¨#%5Ñ4F6 üŽT"žÑÜ'¼É дTì’g¤¹Lj¡GRF’¹v¶'ù¤µzÄî1ôPIž‡ñKÃÆžL2SeôD %€öæ1ÌgQÍëÒ§³BÁ™yOÎ1¯7DƒgýÐæ¾›#y: hÃâ)àQ {:ÅÄŸùÿGÇÄL"ôƒhÆïLÇ"ž™÷ËÀ8O´Y…Ç NuYÅ'ÓžIeö,4ؘ½¹‡V¼ˆË±ÖÌCÂÌÓYèPCM>R‘b•”Ä=ð[G@û aT 9ûÚÜJÀ%ßO¦Ù„Óiñ?s\ÖŽŒÝZz]ÂNY쥚d¹…&EfÎÆ=n©ýåHÃ!ýlö];£Ä°MàI<⎄“ºÜÃŒ8:ñ è˜ãI6z{à·/ÅJ‰á'RÌÜcz2Uz8Ub^—<›É©?1?šäá÷e<ìÎ%r­;õób;âóBÒÁ0€ñ6ï/›TBæ‘VÄû÷Šù<®ÜÜïó6ôá=4ei¯—ê°†>’ÿr+Úa»çµ=ÀŒ^íÀ{Ì7$[O•Fß_®‡¾ÞÀ{›Ï¬Æ…¤¹&Ôׂÿ”gy½;ˆÛè&z›Ï+zè!+-çíaFÌZ7Ñg±ýÁÐKò1¯Ínü_iAØOWÃ^ÎÔ"lW[Ñ_LÃÄ })1l¥ñu©á°=B +ÚÚÆIaú>’ßZ'ÅWS {¥ï&sRÆIá{#(·ÝAø—­ÞÔÏ»ý(—Ãqb辄½ÑKðž¯Gهذ•VØ»•æø—ÆA¬Ïá8-Þ8Œó1âŒÃ¤Ð.¢×Þ0¾7ƒŽóP»ƒèî¶ÞE¿‡ù¶Ò–b·Ö ÿ´=‚ñÞ™À›dæµ+ZÀsÔÑ$9Ú|&æ§ù,ŽBÈ0ï™ÆɧJ!ó@ÆFœª™(3_›9Ê4J +1ŽCÁ3…ì‚1ì˸(ÓX:Ý$Íàê‡Ѧ 6b‚•²3Dð×›×$¤¥ÔוNœ‹ø’QjÄö %øhŒ ýŠù®àkÖ;‘XgÓ=áL›žy<äñ$—he$™†Éa{ä Í.œËjÀ¾Jðî-rg€ Ûêç¥ìs& ;y£‡ä½Þ…qÞÁûŸ¨YhÓ(-z‚ ?úsäÓžŠOßš`[ÊÅìÉdÃp=)t[‚6¿çÀæÝÜs~ §%þ3ÅDŸ)90²y/l’–°5†ZêC¹îNÐÑÿ™ÿÔrÈ +Jâñ w e weÔØM›Å6¢ëLîÓ|Éy¡žî-ÍY-·¦}9x +¼Œà§I‚öÚŸ „lPCtí™6œËî -äj³›ä}¬àâþ;#œ©Àï2ãÍÚhg\D2Md‰w$Üù&fÀö°¿ÖËK^聾¸Ù‡tÜì…Ú}2 !ÝÌŸoôp“NTY¹@Oùý ´F(À?ùjŒ½¡“à¾Ú‚ú´P´[o#y­436:9ËM4/M ü…¶fµÖJp]ë øÎ·ÑÆòâî¯wôÉÀú£ z‚¹Î–š‘Ìõ1[ƒ´]¨M±6 !\M£©®†A|àF¿i"Á\¥ˆ¾‹Í‡¥&Ü×µ6œó¡„‘p"å ôæ³ô}”àí~j(¨gÏ­nÄ—õV蛕¦¤·K€Ö;Ò>,u& +Ãî,5@íÏdlÌî0!hÙüÖ„×0;ðÏ;«ÃÜäƒ `BŒq8¿5˜Ž[ïgÅNU¥¾U—&YÍÔ¦¾ÑÕ¤¼^íB9žÈ˜©§À‡ƒ:÷Þ¦„M2áG +fW‚k^S:U 9‡rVêÙ´€´-Íò[B6 ãüÛ“í7ºG÷PƒWÛÉ Øo]´ã 0ÄWßKôÑ÷|×ÛÑŽ«-ÈOÓ5°Wsõ©ï–êp_Œ=´ðÿi×÷6 Q‚õ½8Nó9RœÇž„‹0€ÿ]hNû2žõhúGÊ}+Þe¡.Õf¾.åÍ|-üÝz+ÚY÷þf¦çê$yµ“«*ÃÙ+Šá/gkÑö„›Æèæ³óÑ&ÀÿÛýôˆå.¢÷Ö°¹·J,:V 8{@3˜@ oö¢œ @ ú€ÖhF~^iC9í SA ²â÷$<ľyóß³ ¨o“¥qU%qvúpfŒ7Þß›dñL"êÖ('y¹à¦-N}®.‚>–ˆ£-;)—§JâïîÐw‘‚LBèÿæ)©G“¸ m Ù;Ñ_åå±u• /6:PŽú^¼·ùlבZ@ß‘q‘†~f”äÇV?-Üü‘Ùz䇩Š4ë¹:”ý| Õoo\H9”R¶ÐÆ1|È‘‚¿gî¹mE}Y¨E^k#z±& °?v{ rß]ßù¶ÑŽú¼Ôˆ°Ó”&=—ç&>_¬gø,Ôqüg* Ÿç«pŸªqŸgËQvË $—™J”ÝZ3Þy³ì³ |…qðK/#b³‹¼ÞNt_lL{?Uÿ²?#àF¿ 솦<åÝR#Òi Ô$à¿Åf‚óbÞq¦*ñÙJCÔSM©ßÝ¥ÆdgñÜÉŽÙá# ƒÌ¸¥‚›Y.7$¿ÛíA»{1ž3ÑO–ZÐß–ZIÞ” C9`µ9Ùv³þÑÐê`èE~ÕÖ!> ¤‡^_nHsþ)P̹4ߘh½Ü{·ÙrÙìA;ëA]z)[}¤ Õ6äWãkÉámô‹Òæ©^³5×éJÌ{m)Ìj¾6ÕFßAðÙ E­µã\'¸¸ý9”ô¯†4¿Ã¼>r ü\à‘‚…5NÐw$À·ñq{àû³õÐ7Ú²ø'S%I/uå)¯tåðW µ˜O f›$_ã #j«‹´Ö‚s\kÁ|ªHx +øö•ºúd¥™àv(Ñ·%ÜÔuóyg Ë¶‡°ž+pû¹º´OÓUÉÖ“E‘ºY—T…qVëÍD÷¹šd륦Ô÷Êâ¸'ãÂðÛã¨[š¢”ç‹ 8'mѹ_»7 ˆ»5‘ }¼xFßOòßèÀºè;‰ž` ß›ñßV»È!£ßcÜ€—L2Ó¡k8·u3ÇõaÜæê“ßJs£ï©ŠÍÕ£>fCߨK‘îc<GfÂrö›®*Åzê{âcmqüãí‚ßá3YW ÷Úêf¦šÆòó7û¸°¹ Àf‚“¶ úlDt½‡êóûtI‚•¼ú¡–àc¹Ðœâòs +¿Ùø~½#Ùnµ#äVÜ‹ñìÀ[‹õ‰¯÷$”˜àçw¤<̦„“²ÔNñ™®H³Y¬K³›«Nz=žj¡*Œy¸ÒŒú¬©@;vÃõ=ØÐƒI¦ù]-È=))j{á¼Ò’h=[ù@Yl±Úžæ0Y–h»ÕG>R +è[ƒÔˆ•¦ä·³5Qe­TÇß m.6³o6C,f*ÐKuqÊ3MQ²Õ|潪8åE?ßÿf;Éíï™2ø'C7#ÊÐÉ_ïfGÌ×ã¿,5!?NÄޛȎ±œ©J{×Dv¿<Ì‹x¶ÝÂÚêb†Ï7œ¦«qŸ4ÅIOVjâŸÏÿˆ±Z«Mý¸ÖˆvÐ|O|jè¡#¹¢µ.VäL-ü*?ì–*;ä¦:'ÜBf1[}Ù' ³œ,DºÌ×2¼te)/—RlWšRlRÞªJaÏÆÄÑ·ÕÅ ÏWÛ1n õ(—½!!e»— Û즮´ã]A}™¯K{§Zr² ÄÔwØj;+b®‘ê¹Ù…[iÅ/5S½¦+a/”ñ÷•q%9azEþw6{)ák Ÿ6ºÐNË­(‡U mç`¶ºª$ëÉâðÒ¼À{ÓU‘V[¿c…€¹;ÂIYëÂ{›ßk¡+M~±Xx¿bæÈzôGP+oV±î»Ý” M›kÍXÇ儽®<ÁjðÉXfØ•v‚׿µ6ÀKÒKy8³·ÜÃù/=9’qc"#ÁRžs,=è–²ú¬ +çkòÓ~è´õv¼ÇdNüÃZÐåf¼ßåœßå6vøí©j‚óB3ÉCU’ü|« ï!xíô™ßý‚ø0œîs},+잢0þI/ßÏ`r´IÂǯ·Ó‚ôÝ´à…ú´wŠâ¸ûÃÂðë#‚È’¬¸{•H¯?z9QVsuX·í>NÂz%p®þv®`n&¨ÏâØÇºê¤7àyîîv3a+=LU5Ñe©ƒ¶;–“³ÒÁˆ”Ä=í¡xÿÞIö»ú#Íõo¢ÛcÈLm‚ÇjG܇aÛŸÚ²ÈGÆQ´÷ÎèžäO;ýh·ƒ1RÄÑ¿ÕO7Ž ÉÛcÊTù«®õN÷#ᩪ8æÑ|M²q€.)Hxûñöošâç#™X8U‡tïK÷¿³Ô÷rµ%ö…®4Äb¾:î…i„]Np¾«oÇŽ¹Ò‰w›«K~;Yj)/ ¼=špc<;æa1ÊùZAü‡K+OmuÒË~~àÕ.FÐånfè•QÌÍnªÏÕV¬ë•qÐ Œç£óQ„Ý&Èiuþ£¼ úáDv¸…$3üÖ7øZÕ÷Ò(æa-9äQUŠûßË­ô€^~ 9.«ò#-WjSl‡ù·ÚñŽ™¾×uUwi6Þy®’î·ÕÇKøöm¹n3[µš)M~)ω½/ÍŒ¶Ô•á¾ôsàÏU9©f|ü:_‡ù¸ÑJœ­Á}ÒU ?èªàŸú….«J"žn´ñ–ÚhÛ•ºïJÉ}¥óe±)Ín¡!ÅFWû|"/Èr<;ì®¶œæ¤© ;.6‘\g«‘vêb˜•¦öBšŸðxPÿ¨ãs©™ê}± ë¹ÜFñQBfF[ôrC¯d†ß“åGÜWx²Ú‘ö¥CìgÙJ÷²Üêç#A F*Á½¤¹“…±÷<éáøüÝÂt».Œ~ÿG/?Øjˆ»TŸb·P x¯1Ùnº2þ àZëÅz¿‡ãÙn7;Q¾†1:LßO Y¤,AZÏWa?j¾§¾ž©D~þÒn,7æ ð–Žf4[“üa©™ì¥*C¼È…>T–¤¼œi y­v³¢Ì:k43øÆB#ÊAU +·V}šºï®øµ‘å&>™ù‘úÆh挪´OCÂøçÒ¼”· ´ ÉÜd«™jâ×ÉbŒÍ0ÖBQôdªó~4#ñ=Ðæâdн-¯nNðíŠ×Ÿ£ü ëм¸‡š0ën„£i1Rú¢ +ÿõ¢´(ùíJG6uª†æ3”™ø¼|¯b1ȸÞAvþk¡1Ùi¡5Áf½ë»/ÍÎ=U „ µ1/¹.—‡…žëÊ"îëŠ#-§J¡OuUH»áÜD»~1ìíö`:qŒ‡Þ$ø®5Â?/ÕÀíækRßj+€.G¸kj°Ñ½âhkEi²ÝÞ8%h‘÷s屪_)rc_ª¿'ØÑMc™¬Í^nÂJ§¶ØBto„Ûj$>›Ì‹}(Ͷ˜Ì ¹½3L‹›i‚¿×”!Þ©Š(NãÙHkeü™¶$íµöþc‹8ñQÜ—çzÙÁ·ûiš*ìç>¡óï}Âo¿÷ó=ÿì¦ù\ÑÃ_äAŸ¥Øü‰rxt~£“ÙÇ ¿ÞEõ¼8Äõ½,Í ¹ÖËôºÚEs¿6W›l/‚»Šq}uQ–‘êw*³×»‘_gka¯q÷ûØ¡×c=.ޤGÝmáG[&:¿úmTûz±ç9œýx";ö¥,;êaÑýO® Ui¯ÎM×DX5 +Ã_ÖÓý¬´}—šI€[ÒìAmØjÊâ þnÆ}¹P·=?,ôµüA +¼[E +} j)p¦ +óy¦a³Ô„ù¼Ð€þ¤,[7àÿh@:\Zû®ùð¬ÛZ-b±‰è±ÚFp5¯©HA‡ã„`muÔË^ðƒÕv|¹•=Sƒû¦,My=Užòv±í0WƒuèËB²þ£™øBßI {^•fûY( +£ŸtQ½¯ËÒ=ï¬ÔÙ.ÖD~Yï%†L5B­õ½Ô(=ðjà'•ßá/Û¨ÁWšˆ¾ pB®ëÛQ_õxŸîìÀç´g—æò̧ÁôˆÛCéþ·–ëÓ¾,5¢¿hÊ’žiJ ÏfªÓÞ«Ëá5åi_v3(ݤÅFœ£º,<Ϊá-7þã…^AðƒR²ÿ½2œ¿å"Àð4òüä'²¼˜‡=ìÀë…IN°‚ìÏM'Y“Ÿ|ßÿçîf)d»± |ËzwŠƒ¦Ü÷ÖD–ëU‰ØëÆTmÚ—b|ècQ’÷í‘B‚ÿJ‡ e©ã´Öœd³TÿR[ùºƒöé²®<úíÎ0:]øª-жÐ÷š©Kõ]mƸÌWAŸ/6b&¿§¼ä†~¸X”ìù`g€Ü´p€"/ôžº êáRÜngç»Ô…rÉJs¼F ~sQ]w_:ZUødª((ܲ—évm³‹ì¿= @¯÷p·…èõ1a¾ï<ªÍD^ìýAÀßÊÜÀ³•ÑO7GÉáÝÙÁ÷”¥Ä µÖzA„²$ùÙhNôÃ^aÜÓþt¸U-ìÅL>vo8W8]G÷•GÜ—‡XªJ£éJS^-ÔGó`ÏsSœÿ¬„»­Â†JóOæÄ>Ô~‡>—ˆÿRåFߟ¯J±™oDÎD¸^a‡|úKY€>•‹¹+íiŸgªSßÎUc€>K{3Ä¿-σY5°#îxÛXžk£¼šn$ú7Ðý¯•¥|ú­‹èþG ÑóÒÔ¯tR¯.·§}å§~»Å‹{we£›5߈ú¨.‹} /бT|<žóh€xsTr±ã’“æq­íø—&/€>¼e94—®"éÅxnÄÝzìçËýL'‹éš»&–×ýµfBĉ"+ßÐO\Ü<Ï·>”³qåºÞ•üAV}9RˆqêÍH|·ÖÁ†Î7]f«RíVÑ_WZ°ß´@£ +B-¦ ×Ûé¡£ÿë 5H—åFäl5ÖÕÐŽõùï$#í—”ÝìJû¦©ˆxjæ¢ôÀ¿©ªÐvÓµøoý‚8ËVÄMmqÒóí^ŒÛö(>p¸8ò5+ìÍ¥©rªÏx.¶‹ü×°(Ør®öÔ³û|Á}«›lè"úË‹cži*“>nt‹sõ,¿¹zœÃl}ê‡ÙÚ4 ãQÎ’¼Ø÷Óµ(÷jfèójjГ¥6ŠßPFÜ£nVèµ>nðõvèVZø“6N´­¢í–êÿþŠÓÓ[r¤Ç݃qÊ`~'Ðsºª¸§ÚÒ`KÍ÷'³UÀcôÓ¢è±_¯D~}z¾Sœè ÏÏW¦¹ÝU” ]‡²lvFÙ¸ÍN\à*À}Ñg½å:QýôÖõj%ÑÓb® 8þn³ÞF‹Ø$Dnô¦yÌ5$Û(¾G<šüýD?ÀNQ6b]TÕiŸ6{Øqkm´Ð…Úd›•&èÛŽ”ëÀÛªjÓ¾­vɆþÂŒù&aŒ¢÷®‡eY‡óús2;áñVÕÿX–ÎÚϬuˆáKm"øtÑYS‘`¥.޼'ÅÞéb^©Eº^ЕÀ?.µQCÇr“ŸÎTÒ}ækÞµ‡ md÷«Òœ˜û²ÂD ûã,uè¯Û=¤iT€Yl@~ÜìdÆ®u²ãµepkyvì½!AÔ^vä­nfô“éR¼÷rk&BYFv‘奼—eÅ?Ë»)ÏŽ¼½Úÿ°Ùψš(C»ÊËR¿í óÐ ­xW]=òã|'5|}˜ƒÐ5㾊cnOdÄÝ›þ±ËŠº'Ëy¹Ü U–¢ìf+q«-dÏÕ¼ËJÞu­•‘lâõÜ´Œ´¯ÀW¹žª³‹·Fiñ«Àónõ‘ ½¯í¢ïî 5l³›%/Å8 f&¾6ô +icù‰/ZÈN—$×#Ÿô‰=þO³X¬Â:…½¹²X‹‹>”‰h{ãLèÎ1h£î8_öl2ëÛåéʘ—cB*Ðð …ÉÏZ©>“ÅÐ'ÂÐë}ï¿kHŸ¯ÕPoM„>R—&XiÈ!¹p—[íì»Ý!u»›06b³íµØi;_ÿFQvg¦2ùýb ?ªã{0?ÉA?@‹XíÀ8O~Ox;S÷n©9Õa®.á­¼ ü¡¢*õk ;ð¶4j£«Á;-4=W·0ôsRfZqîƒ9‰oºÑï@&Y }¬8Ã1ær®f½Ò‚øðé…ª<ÙV^‘ü~¼"Éc¶ÝÁz&ÍŠ|¸X“òeµáfèCG¨p“„¹Ú•öµåqu¦ +áfá¤nt<—šPŸF²BoŽŠ#,FÄwz…¾O›S<‡ó¾f$:^™n¡"WÚn* ç*’ߌeÝnA;ÿÞBö¹%+Ž» jWûíÏJB0¨'!sgœœ8ße½ÜF Zoç'ïö§“v‡„Ø…V¬óR;ÁO?(B/·ÖšÕűVò܈ûëe|Üö0+a±“毪¢:î çgn ‰Ék/ƒù¬m+Ì~g4ÙEßŸæ¸ pÑ4‘É]¾W]ÉòP';NýÀ}R&¾0¯¹,5 ”¥I¯¦juMt¿Þ‚dÛFRÐUU~ªíj3Åg­ìµÔ‚užk„}Zj‚xƽPEY®6QB—;„)€Ç_Žˆ#Š£‹£î®ÕaÝ·»8Щœ‡¬þa­- )Á-C:^¬D|ü}<3èÞb3êëÖ ;q{\#\ÄF!xOÊÁ﫳 õãYüÅ.F˜¦óE÷óq¾ûQWŠ´Ñ·r–›™‘}‚ ›ª’Ø«íÔ0n›ÑŒ€[ƒü°;c9IVSÕOS±»Cé´…¿+åS¶G‹ŠLãYéÚZÄ—á¬HCá·Ç3¼þž+K\‹´ßèN'Ì4<¤ß£Î5BmÌûT _>¯µ0‚7;ø ýéq/z9¡¯·:¹Ä­!.j¦9ùíðÌ› ÷6Z ;(§­>*È]bà|“ù½NØo;#<ÌX~ø“N–Ǫ²è#y ïºaVÚòDã1 ŒzvšË­þ,xøÞP&{¦<é…ª(ôî°ÈãZçÛ¹ú„·[=(÷­ZätÉ'étc  ÑË0ÂJ–'¾jfxÝí>W–żTÿˆx¶Ùó–UÀ¾tˆn Pa_È_¯ôó]oMÕ$¾žkKs˜kNû´Þ…õZi£yy5SGÜ•äŠWzX1šòT»éê4û^Qðƒvº×µÕnŒÇ–\ÌŸ¨#'¤úXßPÖ¥yR7ºÉKíx—¥6¬ËðÒ}B¯»Ít×ÛÛÀ›¦¸6‘}ï,7âý6{3Ik½Yäµ^>lgœ™j”Ó‘[´¸1&T?&$ÕÑ}îNFÛîòð›"âî7Õî$§Bõý©.«É_U|þÏÙܦql±=éþ<¿l_–“kM'¯wÑ‚—>Žóí¡–QÝï(²·[súl«—g’0’[àöóÍH‡å.^œùìÂê =n®!Õ~µ ñiª<þõBsŒÍî(>ÄÐO1Nðq+½œØ¹Nð|«8AVŠ}t÷çåzŒÃL9ì¨ù‡š*ÄWYæK É÷F#%Ìr±A˜°Ú!Hœ,M³é…ÜîâùÝ”„¿˜­„:,5¢œ·ú˜Ñ3ÍdoiYòËíArµï¥, yÐJsºÖÃ÷¿]MøöG-ÁéêL5=¢§€àðåse$úÑ8ÄÂÈhÐ= -a³ï?U µÖÖ„?5õ@ÎF¬öP‚7{EHÃh¾•>žû°“î}µ›ø¸‡ç{§ +÷ñb×ÍBV°¯ ùÜîæÜ_lÀ¬µQC@¬á¦>j{•²Ðû¸:ˆñß’d0·†²X‹íÜx] ÑøhÇ…J¨í^?!`«›è7W‡rXlB»/·’|6{øð•Nz¤ øîd)Â~¹ƒ´ÜAõÛ wÇ3xC<Ä\'Þ{Sš_®Ÿ(mÑòóuˆ÷òï±Çò¢*Ë’ßmö1bOÆç†?îZèûèðµNVì|=ò‹¢8ò‘º,áõ\+Õo¡³Ñ“EYicŨË›Á Î"ôýäPóÃt Ôf47ìioºßÍ•n¼×Ö(¿6À‚©jQßôCbêæ ³ÜAôÕUC?,Ô'¿›oL²[íÇù¤,ø*yKÍX7C7>x»ë3ßôy(#вéöw7胂¨'ÆaÞ8ž“±1”ÅÜÈã‚\E¯wӂ窑ïäÅ oÆËà_¦šÉ~Ú:¢×‘:=c­›>S‰z¯.CÛ,¶½6Iaëýİ•^BÐú8ŸT-ˆú(Jøtc¹•Å0ÊKÛ×Çò²–†xð™6œ“¶ùE/µ¢‹¦;h‘Ö<Œï7Ãx^éR¿ˆ¤«A¼×V%¾˜mŒy¦ª {,/ {}¤ç˜&3ò”Àm“#L²œümI&Ó0(Búø)+­¬Ð…F†¦Žêöƒ|”‹ù o*¦-7ˆ¦ÊÈ_fÊÉßk¨>«­ô0ýµ>& (çúôËN±ÑÉ…nöpáÛÃBÜÆ'q£Ÿ¾ÔJr[n¡ù,¶ñ£~þ’d¥¼š­ ;®5Ð7Z8q+mÂd]-Ó_š 1SMö]îÉ"jšè£yÉO‡r`ï´•D¿ÍN>öp,“·Þ‰÷™¯M²×”G?ÕT¥¼3ôgpN“…‘Ú÷z9QO†ÅÐOê,ðL¹¤6êUÌ÷šº„œpªÈ)4ï­·§Ø/4§ØÍ¶ ½ÖºÉáûãì´ÝaJ¤¢4òÙl5't¥¯X¤­ç†I2¿Ó@ò¹ÕÉ ¸ÓË‹x¥,EzJ\DÉ^·ò“Ü®Md ý$€å©NËp‡©ZØ»¥^Œÿ¦„‰Þ”pk}|Øjj΃í!ha‡Í¶”/k­°ê’`KYß=}9jw8—§©aû øe¶½=$|-@­tSWúI+ƒä ýµ©,¨^–—-¤c—:3 h§Åf¼¯~€•b~òR;Îm® ùe¾çµ3,fÉ ÓÞª +“¬t%)ö‹õä8£$­æ¡ÔuXßáœÈ'+]¬£4'Ç$ÏÊ\í&.´ ?++ ¶#ùa/±Ž;£LøøÛZ/#AZ +}±'Í-Xœ:U…udÆ>\®G|[kÇGo ¨Ûãétý/Ô{Òv?7e¡.Å~Dp­—çw£Wèÿ@Vñf£`~Ç›9ïÛQ›ýüõP¯]¬p]âm'Õûò°ØïÆt]¢õJ;ÅÏÜ‹¿ÙÍO]ib…,Ö³#€6÷›n†»ÈËcíeѶ³=x¿™NLÛ€K2e—•ù«æÎä. ° Û2û@“‘kœ‹tmdQªëÝŽBXÔŽ6ëÇÀ“¹z€õ˜À¥n”ÿr1v½Ÿš´¯ ôc,”¬*éõê1p¹¼5T¾Ö›Ç\l%¨~€T|ÔÇ@?P¬ÇÔ·]t¬u 2ñNUJâµN<ü®.—ãµTà V—c>O·`4 ÈËÝ 0Ïy¢õþlÚ|GFª®‘¤­¦:iÊè_f*¹^º2žçxõ}F¼ûùlÌ͉ ªírMzôr ?t²ˆá4ÀÁXi3ȶ†Ž|ê\GFÚP1îÃäŠûæPaÑl ºôÎîPYþj%Í +½5_‘ôFßΙªJ˜È¢ØN±5\×ÅéúÆäbEfüdf¶O/‘öpœI´^)ÏH\m&.6a¿n´3# ýbº~¤¼E?”ËÛìgC•¥Éo‡Äá÷tâ¨éÆ’®:;nª„í:_ *‡M•p=ª„Á +0ÖV:æI:õ®BL÷ÞhÉL›­G™©O±×¢wÆÙ,£²°qWYX§3¤¥Iï?àöÀ/„臄HUÚV]”ôt¡n»ÚˆrÝl#Gows¡kMPy>×qº,3ÜÐZL7´æ–j¹!cYq€ 7*DÂmeAýâhm¦›0ßÇŽ^¤m¦SL£bª¡_€˜o&ºÍU¦Ù:©¦!!f¥K”Z† +¿\‹‰º¡È¡{í¶•îöfÒæëŸuU°O«¨i2¿Ò8™_¶+ËÎÜম0v'22¶Æø“ŒOZíIs›oNþª©€ZO×ÃífI…p‹rdäƒ11Ùf©ž—¼ÛW¹Ñ–…›)£¸.×0|·:òHÓÕüÔñœdëåf’ÿj;Éß0ȆmrS·QƒYî÷ºøn×uµèoÛ#ÙæYIõk7]EZo¡…è>ÛHõÐUÒ¼G„)¯Gø)¯&‹(ò¼½âôµì{ôkUeÂG£J”s8]ñuó¤…G|TIL»™‹¾Œ÷dø»ŸúËŽø]îw‰éïü5Âù7¯V?ëççK1‹1!÷3Ѷs œ•.\WCõÒUS\曄QŠjQp_ݶ–Ž}ZNDÝ΃¥üÉ »€óô8ŸìðéœÀÏó‚8ÜãÕ÷Ë…˜ïÏy¾|qzj q{qu|s®}{ª’²Ò‘‰^ëËãÎõd`äµ4— PËŠò¼ØÑ¼t·6áq-v£‘˜v§FzÓH@?®Ç%ßýž}=ÅÃáü›ûw On\ƒx<|žæy¥…ôTR„u¼ÁØV²I9 »<È„É*Qöƒù ¯ç;©Ûc9â©nT—q¯~2š};–sbìJÓÿ憻_Àû8]ô{ûò<ÎãëŸ4?ÇKÏ/¿+ ñ[Clâæ(— —¦sçz)óÝxÏùŒ#ÐMÞK]ØdÃi,ŸéЛÁúØÉGY×’£e&xÝ‚»}¸˜âþíüW«—×!®Ïžg¹[T’Bžwˆâœtuظ­R?*$lƒz^ì`G.tÐõ#ü®TDÛaÆ)«Rm‡3’Nä>Žç¿d'„\…:|8wt8Góó¹ˆóúr‘äò'3Äë÷7«ûç"ìm.áüÝþ΋¸4ßHÞÓ6F³ØóÂÄ霋² +ê0Ó†ñ––cíUu iñsoÂê&æj%™ôäÊõŒøÐK¬pÿË>¶/³¼òä.¸,®^‚XݺIøfû{§8Ùõ@™ñýdšŸ©%FkbìÇÊßšTæ–<+{y`I;=hm€¸%a§¬ Ð ÜÄéf¬?í‘•ü˜áóWN|à‚ï·k ŽvW3“|-;9ÁwúEQu „ð#¨àŸµÌ&M— +ìÆËr&üf&á;)îB’ÄÃî ä…å È£ë× ¯î܆<½srùÒï‡ÿq³¶‚Ä;ÙŸ+CF\—dÅ>2Ž17¥l¸¼…è$k攋½[²éo‹ ñWÅ)‘—¸qáà>®çÜß<¹újûïðâôâ1ÄÚâoˆ¯Í3ÈÇW!W/]„x¾¹üíõ¹ÜDŸ+²Ü{IâE åÞh6þ•ª‚ï3P(p¬dÐñ’à—1¡açb]\ ¡?C¾ZYAž^ÿ òéî]ˆûÓG, 7¯þù Üøã"÷UÈÇ–0¿usaÔ•ÄϺ&N ®=?R! +èÌaÙ•±÷p–ßqÈkìè° ‰Î_ÏÚ½‡DÛ€$|´‡Ú¼…ØÞ³„<ñ¸}íä÷ß~ƒ<½ñ—9Q‚ïï#…»¹>œ×ФiJy/+0ÄN^“&¸Áí¹”7ÅøÔ¿é‘AÐÞ.çÐnެÇ7ˆ—õcÈ»ûË;—.C®ÿqòìÖUÈCð0àBš‡3$ÖáÄßæ%ÄÖòäåÍë[7 Ïn\‡Ü¼|réÂùqîÝ÷÷÷~ÌLüº+sM“YÙ†q1}W*fÿZë£GL5R<‡‹ÉïKp°Ûx_¯ß‰^¾ç£í?Blo߆¼¾uâôø1ÄóÅ ÷Ç×®C¬ïÜ…X\¹¹pþ7ÈCð{¡ïm!œhŸ›’Bòç™–LØbWyîÆp~ÖÚ@aº1XŒ~Õ(€?ÈAG^§„{‚˜¸ó~c y{×òéáˆóÓ§ûà~_¼y ~ãÉ­;«ÿ€¼±¸ A{;ÿÞÁO²+Hx6Ó€ü¶+cNgEÙFMf®®›— mÄÊk©nùè—mBÔË&æm<îÁÏû· ïν¿ñä„+ÀÿW7!—À\Þùüî áévêþ—¢é¾Ò‡ðR÷ˆ‘ÙÄçe,Ä-16é23v‘™pæò›ãÛwçî\»¹bûäÖmÈËû!Þ6_.Ãc®ãÐO²¨NêJì§ÍtC"Âë:Ó኶œÔ¡š‚¸–‚tÇ<À”è€óØ ßs(ßs‘ÎŽwïCÞƒËýÍkÈçOÁ¼ýbrâ÷Þæœ·­õo´×›•„°‚¤×šFF ´šòm(Ÿün¤€ýyä;ß©š‡|ô‚½›G¤ÜÆ'$üélg q²~ qxþòô–Ä<§5ÀÌ×w, nÞ„üõûŸW¯C¾=y A¹])AÆ¿’Ütõ¬]?D^Ÿß‘Çv¨á`d#bÿÌA&_ÍÁ¡þ"EG]ô´{ynybòÌÎò6ä›Õ È‹Û ÷®Ý„<óõÀÂ`‡%ÄûÝ[;Æÿbæùò/iyˆÕ6áU•É6+ýŒH]—0q´ŽÐZÀû”G$Y&ùýæòÎòÙê$Ðöäíýû ÆBþþýwÈs‹[]‡¼ºûâkïpÞÏîý…lhÐuÉs­?×Föži"»©*ˆ_äåôoM|ÂÓ.éqv êéq.ôËgH½=Ä÷äíƒû¿.\„Ü»|Äã.䃕5äæ_¼¸ñ´~y.ÆõÓµ6A¬íæ 'mG.æm+Å‚-™²)á!g;i…ˆçýE”÷yØÔÛ0w× >ABlm@-[BnZ¾õÇ%P‡÷AÜï@n]ù rŒûõ½GÇ·ïA¬<$¸ºýNõµ-¤}jE.u•f®åçªk¾“5,ÏñjšK93õ&Äó‚›ÍsˆÍ}KÈÇ'V ¾·þ¼êâ:ä9¨Åk^þ÷þïÁÚ>|±¾ÿ’äár>ü[-&ðò\#ÁïP“‘·%ãÖÆ3˜³}ÙôÅ‘‚ü©îL|«ÿ, èû›¿íÛs~6v 6öÛG!W.þ¹õ/ð»÷ ¯Þ‡X¹ ùðå3&òz.&ꥢ +å<ö=æÁx³ ¬-ŸaÛžËýØžŸéQKXW÷«h‚—¹Î|âï¯ø+øPø f<òF#¯È¿/¿5Y[ÉœëüÎ[è˦nÏ·1‘Ÿ»2Z35Ml…vVpšòXïjø\»\ öA>šxÿ;IdÍŽ§çí¾‚ r÷äúŸC^=²…„»þFƒ[V2Ò´-y¼•Aj¥Ÿûÿ8úÊî¶®míÞƒmOÒ¤i›4 7ÌqÇ133[¶ÅÌÌfffÙb&K–YÌdHÚžÓ;îûCÞ­óaÁ°¥¥½æ|`ïµæ ë9Œ˜µo-¾-‰Z‡ +:D=‡M—ÏP³'éø+ƒhÌeVCÓ7¸ŠÊ/áeeŸƒŠŠ¿xóøÅ?Ÿ^¿ýAú£§d¿HþKÞ«ô¿¿}òüJJ>"w´\ÜìŧìγÀQÅ#æc]FËá +µR;½kœ"åìltá$£¬ü.TóyxIÖG¹Ï}Xñ6埲¼ÏJÞ&}tïÊ¥þrëo•¹Õßäçä^ž“÷wb]Ë—ìê$ýHÙ}"fWœ³L€^oñzãV&ЇÕ^%ãÒt öddñåuò-¢ªòŸé÷ýÏÛ;÷>¨~“ñAmFÞß2Ÿ¿øû½+>(xõè/°ê¢:‘m?Ï3‰©æ9Ä!fAÃj:ܯgpíòÁÁ#@Àlô’vÖzЖir†výh™¾>mþÙ6: >˜g. <›]$ŸLHsI¸‡ˆÙìW ™~ÈÜgììw©˜0»„r*¸è=) ¼#c­È­…>°fŒ–¦gæm¯óv–g»+,Ë|?Ä6ÛÛv4KÊŽI™à_ Ÿê•‘ë<"z[`£·3 ™\q)z{$\ä‘LH= 0¶)Zþî¯Ê:ÓÛ¢œhR/ÎrdÓÓøÕÞü^oÊ™|« ÔðÅzi“/(Ù[ìÇøeý!YoHÞÅ «˜¨ˆž‰Žê¸´ŠOß™§›Çqé{‹Œú£5Ø:/h”uË&j¥£ƒåë½CYâžžŒ óù<õ³b°§L4Ð[8Íf>˜ +Ò6çú@{ÒN¢[Ɔ¹¥ôfû:¹tgüнŠ)ýÍÚ»Ñ2ñ¶eøÛ:_½È(žë£¿Xà§/ W®Ž UöâGé½/fcY“tÎ}å-Å:×Ó²»È©ñHÐÅ>5¹5hä üúoÌ«˜‰˜ºÇNՑ𛸢Ýut†d¨ýWÉ(1u¾Ÿš¯(ù„ÖÖöý¤°?w˜Íz>ßÅ{9ÌbÝîg ïm Ò“m«C\·jZÙê …=kÿjt»g!dô&îMø´4°]N®Ù^Ægkþ“ ±ÒåÌ7¦¹Î¦­ÕÉNÝ|W«r’ª§m R’f<ÉAÜ”MŒA7Fø9êyv¹m“ê¸ôß·¸¼ßÍ,ALM„®ÀÓv1o—™5N±Ì)ѲN«4N¢_ì/à³ö×îê¬øqŸöÙ +=ÿÓ ½B»´<´99Ü åe+g„Û«d§´_àUp° ÐL… ûëÃņÇq3“sº7d È^9±Æ¯áö¥¬Ž-¿C:Í/Ýáeou狇éod³½íò•q†fmµµJÊ·,á2Ìó˜Ë,ìY@Ã%9Ål¸uòı M~Ô½ÖJ"†Þ ¿º‹ï”ó @Ø×°9’ž–‡½-¯?ˆ™ˆŠEp¬c‹\"d¦c ‘*%V†TthÄ(ìò(íAwºQÌ0¼~lè‹m »JÌ!%”ï,B“V‘™{ë¨ +@+4øÜ°ª“’÷±KkŽiq5Q¡Å!EzäÔ–ªoлÑÍ Ê¸X§œ ?ØdÃâNZP% ùÖñ¥î\Öá,æíÎ!ëh}u»+УµnÔÁ2·yo–”ç±Û£JÕ+Nôã÷œ†ÅÇú¾é ’ ª© ¯”Úà1[ìËÌú°ŠO « Ÿ‚ +ª»ºÜÒ®WÞÃsH­{«˜ŒýUt†s“PâXÃæ»¥Ì6Ó ³Ø:!¨óI§7ÃÛÝó~Äj™ONhðK`™G u·2xÁ™…'ô«Ø·ŒCº†}¦Þé=ußÈjxj_16µ/ë¡m-2,Kܺ]QÜ.£7DıË85rèÿ­‘yÄä'ê ú”„Z¿†n ºÌOÔCÇ&êkM§F +,¨¤49E´:Iä³9ûÆ<R³+ŸX2nòÛ­2R•ELiسÀ}¢nußbÌ,ðªÑuQ3$nÑÇ,]ãn¹Ð\ô˜ Ð]Z`nU´Ž€Šƒ>Z#–Ù¦:yeÔŽ®gdgñÆ8\wmgœ¬ŸGfìJ)0‡’C±«´NÙUË +pÒJÌ$Œ) 9q[ŠOÔöúp ’â+cJ&4"gtœ˜9Œ°žŽ¶/·>=š«½k+þAß[rUÊ|{~w¢êED'è1.±)¢Þ–d‡ŒŠ‰mÊãz0¤¡Âw—AIëœÜ/¤ü¬ï½pÅÙž`ÊgîžÜ¨KrI°‰Z“Ç&./ªg“œiÞ_íHÑWýº5]7°Åb¶{æíÀ8ü:&6bⲃz:,b 6…T˜ò€]`_==Xh¹ÿn7Õ ÎeãsAùÈt@=8RQ[|±s›½5Øz×#Á”é&Zžh[o9–q9î tNPE¬*qU~ *?¢¦´…•Äê8wqÓ°,n\MäÀñ‡áRêLžC„ÎõHñUòÁÊ[›œ¬{g[cQCÿLP!¤zEØ|çrË#×jûóľvŸ‚ÙZ&7-±jÙå1}ÏXX=0TöùäL¸u¬âÚÁTÃûä¥}P&é‚ç¨{^1ŸäõØÈ&%zZÅuè*÷ZSÒÖXæ… ÝÓw zT\’vò« ÃÂj>+¢îê‰*ùÔœÒz¸˶‹:Rã&.7¢pã‘ÐA^ ¹Ñ/£´†5À9ÔÓQ>ЃÐç®%rETÓ?Ö‘ G«mÏ÷ I@>k0õAiGΙ‘„8ÛâñÏh (…ÜË 8¾Ý·î6tùô½c^MWCFjvKñå>½-¬caãfâÏ#ÁT¢ÆmTGÆ è†3 ¢6nÀÕûd˜ÂˆšØßbÑürJ{8ÑlÛ÷§ÅþÃJÇøJÛ$ø‰q ãGDëˆê;ÇCæÎQ»’T´r{¢»=kïv…“ÿÞc Ϭ vØ@lßY­¹6bšbFaÜ$ì‹ùÂ[×,[Ì(0Ÿ'Z*8(Ç•.ÖÝ9œ«¾Õ’!ûËÄÛ$4Ù»†+ꩈ°ÅŠï §Žm‚A·†Ô$(º¹½„houOn’ê|›à´S¾õÔ˜¨ÙL…%°¼ƒ™ÊöùÆWQ ±Å-¦4ªÔt~m¯ºR"‹üRX鉄Л;GL‹ðÒnæE· =Ýí^ñKpe^)ªà@„(ØZ€dy•øö¸…Ý}²ß#rê„]S´Â‹Î Dã{ ›í“bK# +BU@†Ìµ¯6=6^qˆšÒNvì(Ào^%½=bê›{§>stream +í“cKBLeLCl=5t kq+…óM ·\+èœès¬Ç×ÇuÄ–Ä}>—Wvlb‘Þ[9<§¸#Ó%C”Äwû€žTÄ6ûZÝC×f뛨×tl%`Ov˜<§„Òp°F(‹›ù~ ü|bÝű–MˆQ#ŠcZDiD‹­^ œÑ«ïúëD˜b·’çV J= +T‘O…ʈ­ñ-~?w3.‡Òpȧ&&éÔDkQå;%?.àî}¨äe\9ÖÛB*6îh —ï—&zÝÐ1¼Ä¹Þñzwòjk™r°K=Z¿õHq51ÖÃz~WÈ0°ÛíðúOlÀã¯Û¯ablsÈ” ‚P›è‰êXÃdǵ\zDÃ¥Eô \Ì$;ÛíZ{·Ïé iI-A5©%n6M}³vì‘‘êÿØ%ÿÜ%bÿÜ¥ÿw;ô¿{ì^—” +îF¼=? Iûñ½’×õÐÏáöWÞ…šëûCe-=ߌ6Ýu® 3æy•W9O¿ -“jNä|â; sªEx ++òIš^¸–Ë®þn$w$ð6 !Cßï°:#F2Ä-A¸$èü€]Uc*Ã2T•} ‘îXâ¶Úg¨UþB~XD,ñ-£Ò³¨dÿ:ð|•åœk¾·7Qñ“kµã•_Bª:˜ÃVש-Žu|ÉÞ2"mo“æ]cÖ‡6­!% ê–ª¹wb˜?tM\ϼ"¾Ô¹-8\G¦¹6I@, „Q›h²_-Du]§Zbó©‘U´&yD¯ì«Ð×öeH’GJn0Ž¡’}29¢ëê khà €×ÁDÿ. ªÐ2Oê½½°; ¯;1uD½A-¾Ö¯€æüŸá“@Þn ó´³NoåR¿– ߯Í}s!Cg¯ÐNþDO4ÕµI ji€Ï#–. RÜë¤ÚCÏÄ)àõbZ!'¬d"btÉá\Ç‹ ”ÒèZÅåÏcó¿ÜoûïîÅ?ìÂ%@§!€¸®|wœ´5Ñô j¢¢BÛ¡# ä\Å—ü{G8öÇ®pì?û¼áp†£zdõþrÛcËLûû +6ûh•U1`gagLÅ¥DÕLDPÌŸòF×Sra›öåá<® +Àä«â…°ð—€ßrfa2~Ûa N­,F@Ã@mR›‚º®áøVÏ´gWm«½º3V÷KTø43 þ^Kl÷Ìw¼6u|'¦æ|½?Ó–{b"!‚rpšs¥#À‚ †K ¨yĈ™Áš¸D’ÿ¸ò/jàpάDhÈ@CûT$w¨#wfc1ßY˜Ô¨ß:K9gœW¾³ HÞYØM†Šžtü VtbÂ4ý¾Ã ë˜À‡Ð#æqPÓ) ©àˆšÚ×[½ËI^9£j{¼=O{§rcRZKD„/ ­¢sÇšnúX ¬J÷æ ¯G±iŸ± +î|øÖ·I®?š‡¼Ü›¯¿e›¯»µ5 àðlã£ÿ˜¸œ1¦nŽ“ûãî<(ÿ·Ý®¹“-6 ÈÛæ #{ M×io¾H¬Ò "^³ê^^tÏÂr|Køkë swõÆÎÊ ‚ÒïL‚¯Üó-}ë„rå8µöí­Í@s¯ûD”¯”‰ +)鈒ÔàݧíL—ßp­·&Eu4|@F„ØE ©‰Í9ª ¢‚eÇ5Ðì¢#m¡îéÞTóÓ°œ iû§= +* [P'*leTNh +ÈÑeA%¶Ä#FeÙW©ººŸ÷—ùšPžm²ùyXN®w­Âß8æ@÷=€Þ‹mb OÔ¤Ö¸–œÐ×Ì#—þð +‰º'ž x&ÀÀ÷>ØÄ‡X[§¢] +Ò¾I¨óº6nb‚Jb£W‚©ÊI­þMb…oðuvHJ%Ö„FunÔØ35 :Ý\¡K„-8˜?UÓs¿¯ ŠÏtü΀IA5¹Í'¡‚Ž/Q0q5 æ‘ Šbd™WNj81 +ºÿLÔÌÝ ½³°è1#±5¤îHs‹Û^ÚWÚ»Ö;^¹×¡É>*'¸‰¯ð®¡³ýRbUøm~9¾Ö¹ +ϱÏu¼ k™ë*¡[ùì3ëªâ­wýxK0RS >9ªÐ%Æ—xÔè·A þÈöuLÁÑ*®Ô±Nªwc7Ô=4vV]wŽƒŸí Õßs-B³}›øªð Ÿ [fãöžîÐiQ#¦!¨F¸e¯\’Úç§[èÆßvh¯’Xcžly’è6ó»#€¶?µ GÞí Fb&<(¤gíÏ5Ý3ÖÜę̈ž'811)Ç&*ѯAƒOm4Æ; øà&Ç2øÍöxó]ç&®Ôº€+Ó3Ë}’‘¡°²‡Órq©.  7yÖ±9ur¢ÖÂ=L÷/ãŠãbjãÁhómçLóÛXÝm/ûk'óSSgå½Ã\‰n¸í¡m¸ãc•ØàÑAž &8äÛo:!ß!ÂTŠ;‹¯íOC‹N> ±ê•%pÐ<+° … ôÖÖ`ócõ@ëFÕãsÎ T¡sš¥åÔ~¯b–|© eTVùƒ™î\&•ϲjn§Þ?ÿfѳ ! ã’;W!ÙÎuÐ«í©’ŸMù½m)»‹ 7JaÑ/!)ºé7@÷D4°|ÿFÃSç|ù­Ýñ¬ áëÏöF«oDÄä&÷&³c{þ2±ŽùLÃD¨¹T¿„PåXF¤Ø`/XÉ>œÝwVß•=ø×6õ|ðà‡‹¨ô½±†ÛGÕ¿ú–šØçª~Ý›)¾u¬Å¶G”T˜wžâ> %48Ö ÙÑ-L˱„ŠÜÐP`úñ–» ðܘ‰9ü…SB¬¶Í#Ró-c²¦šzV;2<ÉÞkêÞ@ÅMdlÌ„ª‹êáÅau¢æX¢Æ1¶í½ ªPe€þz­m¸íXG”´t¸_IkXÔS¿Ï«@æ•ðï&"/ ÇUGlÎî<-¬¦¢N·‡5';ÓÑ-*Ö«@8Ö‘‡ °·sÐT¿œXgžìxf%ÕãAUoOPÉ‚‡å¤Ú˜–Š(ñå~1äÃ`Ý-ç\ËSŸS2Ý]vRzûŸ ˆ¼Ë§¦î±€‚ƒñÉA€ŸŽ–¡©ûs gG‹mOâÓ«å1 *ë¨È3+›ü-Ú¹Œ/´´ÞÝ꯹lî­½á\bÔlO³̺ï]s€ÇŸÃd9ga/&Ûîj.Éø¥çViŸ€_ýcw×è^b¶gÁ/¹¿é\§¥¸¦ à 1©zg¢õµ·îV\NB%zšíÎU]Wq3?U0r?³ Tßð­s޾?Q«ˆtý@Ãûì•o›ïYÆåÙñ93ð‡S°§®Äýºä3S7ü‰ˆR{ËÔÕòľÆKx5?Šii9Y_Ö@ϼ+­Ï=ËÍIg:2bŽUtSpóS1»:õÔÀf{EÍ/O oc†¦´­©‚¦á´‹¶‰ê_<"lùÑ +:w¿†M j»†cÀ¹Ú›h¼µBÉü´«ñá_Ô¼‚Ÿü›øÚ>hÆ•1tÚ툆%Í»I©б…{“ ÷vƪoDÔöÖ±XÿP#Ì8o*¸tf&cÞm G#jd…OÜñ&¨@ä;סÀ#¶2øFŸœu¸}ðV±KœðSVDGCÄu4 “@A2ß½ ÍÚ™=‰ê˜Œcˈ.¼%ì‰ZùQ $l¸TOE¸6àY€nÈ÷H`¶<¨ã2}€7éyÜø– ?¨`}˜×2ü±·æZb¯Ë3÷;\ÉÍú2\K˜¦èëómÐvÆ —Ð…ÿ¢>þ€Wþø"|Þyç,6S2ˆz;Éütgôö‡<²©§þ޾«òž{±ö•y°êʱòÒÖ¢èXOêØ,8¿7]þk@ζ¯¶$9—ZSbr*$ +xbEwÍu1»ôjLËb¿·uÍ訣yØËÃYèKç"óLMC‡eTØ +±ðG³êI`…‹´Ž@Ÿo’J¾YE~!!W]PsʰöWß9š„¬ªÊžÿø|Á“ öY2®tÌV\7 +2¿0wæ}í\ixp¶E'Et,æ4½øÑäÅ·ÿkçÇô¸VÏRóÃíÎÒïTĬOäÄ´í”_>•á«Mcàœª—þÊkJºèNXKïO5ÝÕòr¾j¹û±„™|>¦#ÁÃÆ¥í%r•C„.ÿmKÐýÎÀaüf"µû7@¯½kÍÿ½Nè Gø4Ç&½Þ-"•FÔ–ýñ–‡z^á=ç‹eøó¿ÏCým“šzÞ±ÚZô;gx‰‘uÍ:QûúÄDÞy}jb±OŒÀçl´½‘3S?³ —ߌê)Ж‰vK) ‡ë¸¼€ŠŽéøDÍõ?ÌØú@KÄUˆ’ ^Ðà@'»ó+§×£!Ô¾¹Íèk—YÒ¢kN,tœ_C‡¸e”†FÀß_¢ÃŽõ:ZÇ/3Ë‘sª®–iÞelÎö`ãý±¦»¾UpŠ®§ì’‚›ÿ­m´ùᙞßéZ‡¥›‡k®['XF›ì µ<ñz+®ÂT:Ö1¹Ž%RÙoæ®±?¬Âá°šÒj­ûe{´ò’m¨ü'@/ÝômÊìKØ\}Wó•£IôÛ°”ÖêX‚%ïOCžI¹ ?÷6§}Ì©zþñ4,ûœkŽP¸ÌiøWüðC¥°6ùDEn1ö_Ýÿ+1ç§Ö?vÏVß ¬c«ÎOà”ÀŠu¥·NôLò™•×T]M¬?NÔs–`+çšïÅÔ4ÄoÛ‚Ác#“Rã«Ã*&&ª Ô†6Q¥GS ¤Ý±º;¦îÚ˻㰤ejí}^Ý« »“à×îr{… ®asƒËȼ£Ix’_s«¿éù?åÜê× ‡’›UÜŒ/ Ýe7§[“Þ™‰ðc=ïWÐ:äƒõ/–¹×š+ À×zW™®yx> ¯2œs€Ž™l¹c4ÞZÃçÇ*¼÷·ETÚÿlÓùa9®âp¦éWÇBóSß:¢(ª†ÿçˆÆˆ™M³ ÏØ™‡—þ¾Ý·v¬¡á] 5÷¦ p.Öݵ/Öß?12hA5‡äZ'—eLp@BmïÈøˆ[úô&Ûß~¸NHû|o¤òÐð›•#8³ÒéÔ²_þ"ãå½x·EÁ…Õ¨êý¹æÇQªÜ+gú+}‹oý ÐO‡ êo¿³»Œ+šû×b;Cºßv˜ìðF[ÒáhÉÅÝ‘’‹Öá’ŸƒêŽâˆ×t°zÐa›b»ÝKïöÿ[/™Ÿ¨ 7Rá5©1àUTÃD®Pª>1sÙ':æDËÆÅôf÷*ò­cºîº{¦õA\Ams-¡ÞÚ'á/k˜‚•hŠþÕæÇ> a儚ý r¥}ƒZR3‘~¶"¬‡µ­)‰#nèȉ©!E§&*ЋDq_ù-9¯>ùX;¼thÓgÝ«àd]gé%3ÿ-·áº~›Mkxòñ8,ãçÐ f¨¿½€~õñ*>éS­0÷[-ýÓ RÚgG“-IïŒ\Þþ|ÇSû +ªÀ#¥C|64"ÃWDdío]kuO }E?:æiï̓g&Ï'´ØLÇsÏ*² (”øE€N• ò‹°×ÿ­¶„ÍNìYØ™j»ïXÅí.’Š¥œú‹RZé×2jé9%»îÖ4:ûÛebÞw»Ó)ÛãmÏ•¼’ïČ⟗q…7öž¿4À{= ×ÑQæÙÖgêþ’»ï-lî{§Ë àŠ}¾áž}±ù±sÐá ¤wV+¢§!=\YHEyÞ ØÛ±úëRZö'ZAÞW[Cõ7m³˜ŒÎ¶¼  ×7ÿa›hËbç“]+MÕÂüz›}Æ.¹õw)9иª°ŒM0ô¶½Üm~QPÚNô ôvØ‚÷f1¬ÂWäèüˆŠPP²ðödnPBn9¼d¢¶«Ozº=T{e¸%õClÆÕÿá]ÿë–°ð×ߤk™–á*b*rÓ‰–… «1å ¤È!4×f[Ò‰‘Ioéž +ÈíÓ•·ü’¶Ì=|Wð?íþMBíÁ ø¥oƒ”ØSÓ¾L.¿ÀØuC_ÓÃýñºëµÆÁõ¶tï +(s¢î‰Œ‘üYHÜ^™¸.|8[çp¦#ø|¢ïP\Gýaûoßœ¾€œÜ¦í¯ûÙ#¥¡üæQ]Ä:¬‰ç5(‚ñ\{dzÔú:,ÃÖýŸƒL}oÂÔ‡•¼ÓfW|¯Gtb¡¢O·-j¢@WRá*n +HpuúÎÊv¡F5zàZ'4kL× +*sw¸ìÇtå/®ù†û¶þÒŸÜKˆœ°Ž8<Ž}©ýYp‘ œ§Ê€’ܼŒ™¸ÿ^»6P`a€ãBz +*¤¸ð‡¿Û:§<ŸÞ'ØæÚ_DU$ìÙV÷ä‰Q <ò&"'TyW‘éöØË½It²iõBÌ«¸l™½=ZŬQ +>[F'öû—ýl„¿±Ï“ª½+„†ˆœØ˜è³·OvxÐq(~)±Î³^u{{,ó[]ÏÛ/6h/? +K1åq#àwLéÎtdz€7c–E•,ı]ê^m¾4ß|Ç·}í\Á¤o°k/nòª>\£´I8PM_ë9dÚǃ/þÚטüWJÁÍÿ‘³ò~²k~úM{毟LaòƒbZSLŠ+ ¬µ%Y†‹¯o2ß|¿DNþ,¢é(üsŸ?’è_‘#‹§›ï͵>Œª0UgVíx›ÉHxgŸ UhpDCôVÇ“ƒ™öÇû3à7Þ t‰_Š+;\Ådizš®¯#s>÷.ƒsãb»z ð’²'ýKÃpÅõlúÓð·ß\ xL¬aš{{óã½±úÿÙg° ˜¨5Ù¹V{? 4€Ž Nô4wK¨M&<ðnà«£jÕ¹O³M4\³ Õ_Ù –œãW¾ød´=ù¼k”i›m}A¯{qαŽmŠª)ýÙ–g–±†kæÑšËÖ‰Šý’æ§ï·Ø¬¨žÇ²‹(U!%µãt‹×óû¯7¦%¶šú*Q1ËÎmõ×^ñ¬£s½F‹qö8¬ä9¡ìÕÞl¸óÑ$èчb|Ê?ÕŒÜ/kœÿ=b9VAýÝOsèò÷¦îÑ÷&éUsj€–8Wªš†r.š‡sÎ½ßæ„̃k…€ç‘ªÏÌÂÑS=ƒøÎHGÇU¤¦°¤=ýh¶üŽg­ñÕo;Ü~ŸVØã³1¿óØÊ E”¸ª àÍ]‹I³ˆ´s‚Ò»y5\êá:¾0 "µÔÄ>äC –ìÓ-÷&ª®–þXƒ%îᨯ.’+½&̾†Êv¬¡²ì«ð§šâS"óB,¢ï›Œ×c¦¾¹SKïÜ™…ËoåpGngl Ð’*\¹[Aiò«ùŒ£TŸ¼´ €n[û[®iy¥çwFêŸ:— 9–‰öû[ÃøWGsÂÖƒAëá"³á`Ÿ{èÁ½ùŽ—¶ùÚ;1=¡!pàÁ¥Ö+¡5…F@É€860y~92ÀpD¯sÉàÙÎuTq¢×jHÕLxX ä·†Oôê:5;\"hšy´ñêî <ɹIo?Ü`¶FÈiÖ~z†™¼+#Õ|·N(üJ!¬¼¡ì¯¹=ŽÍþLÂjxâ^!UZÇZ»‹rÏ7¿Ø©ºmî+ºä\¨¼}b†Eõ˜ªƒ%xêÑ*&çØÀ¥Ç Ìé“rl¦€_vË–Éš>YG¦WA¬ó­3ÚbŠÑ¥cíè&ð[à{ó­v窮úóÎÏ€µ? NÞžGeŒÀÓ¾Ønº¬c¢!¤¢8H¹%ÐBëtËC¿êÒ–DN&Ï)¸5¡õLÊ{SÏä;àˆÿã\Efî϶>ðIk¿¸xÃüµSD¨Œþ;ª¢µÇÄŒŽð: ä^@ç‰yyßÏ᳾ʨ½9T¡”WrÁ½‰Ìð·0©§6&ýÀ¿ˆžÏ>Z#Õ”\¦gƒÞÓš|RXîÞtÓû øÕáLû£Dí.çlGÆ:­àÊÁ<¬hoS»J/¿)e”_rÎÓ£›ˆÜc9¥9"¡Böçš²·ÇKÙF‹:1Pðq‡}0JÚŸ­¼z0_v}k°ìšc©9éw¶ȧ¨‰Á˜c•?Åß>Ûî]>1ó»ãjj»{ òÒÚ[qIÍ;x8W÷ò=΀yœ*€Rºž©“½žu¿”\·7} øÔG{sÈœˆš o±hÑD½w=©Õ±ŠÊt.¡3\k„âD¥þò‹Ûƒ%?ÉY©_mõ—\:˜? ЏPË$$C*(¼p0NÉq5gf\뙊[©˜¨ŽËŽx‚¸‰/<6 +{ÞYûV}ðÞY8ܸ™÷kA¶Ú­ÅWigo¦ðEß{–HUŽyB”Rz®¿îÁ_z«îþUJHûÒ1Ñø«{Pd˜%ä Êž"¦Ÿ?X„¦„dlLDÉÆE´¸š¸S둾` +‘ìØd@ÜÒ.îÖ,1×¶ˆËunâ*BJ / °‚ß¶  ß­lΩI ÆHŽêœ¸©gâØ$슸 ]îÞhNrm´¤úDĪ€˜Õv¸L*’°Z/O!+ëȾ0Ñ–þÉHÇÛ/ûš“?_Äf3 +~ +¬’Ë7: ³¾Þ›ÁWûÅ|ìÑ:Ó±z”^¹E w#:xqXK»$Tøñv×LÐ@néñõa-¢4¨EÕø54¬WIAFŒ,†]ŒÎ³/&îbM£ð +ß&«Í·‘ª ¸.pÍÃ’w¦àIbAíUnã‹Ï÷g`‡‹˜LÛdû÷:*g–j™¬½³¿ÜôÜ#FäùˆÓu¼‘öÖÜ8Ÿó~·sæ4Q/R‹ot&jK®CÓœël·”Pg™F¤qz5¢g±â&Û'ÔZF+~‘1ó¿S‹¾…<ÿÌ4XrÛ¯ –•·GáéßœÚ- ¥Bñwüw­È  y¸F*sJm +!èÆÞ,¦(ðw¢†zLC‡: I‰º¦*JƧãÐG_Gšžô!ó.½¾úõ¦Ñš¤?lx@Ú²?]r[ÛSþ3«òî?¸•7?tÎ×>ûóˆÝçUâì"Xàå0Þ[ÙÜ?öi´ßwÑmK¥É»Ó•Ïvç;Òñ ŽÍlVHÇ&„u,\\Ë"Ÿª˜¤ÿX)¸?÷‰ˆS+²; z~8‡Ë°•Òö …´|NX/èŽø‚ŠMôoàêDŒ¨Ñå14ϵÔþµ {èìûúî†ËÖžD­¹†[:nÑ¥½¡ê›®™ŽÇGSÈ´ ^á¥Iô‹îN¶%ŸéØwB{܈ª°:7 ÀV†Ÿ8#¬a¢ß™{&OM\Ö™‰C?N|—™ÐtŸKEmÑcß®Pê¯[F É¬š_ç 9ŸËhUϔ̊ûÖ@Ë.µ> IÐEF —±9ßÌ^|ê—àjO´‚‚GðIë,!¯Ýè¼ÃeDšGŒ+Ý]Äæ«úAwìëäÖˆ^ÐÕ[‚rÐkŸ¤9Ù· ÎÆ‹>ѳ1=5ðØa-wbâ OL^¢o}ThüeBÉÑ46ópýF̯¿VýêÊ_ro}óÁ2ÿÒþ"«¿åÎöPãÍ ZîRnéenÑc„¼Ë¦1l={óðäÃ%pÊáèIPÉ~·ƒGüqÄî=³uNÅ­Âသ’¸'L<ÝfpÏl‚‰ckÏ|Ô,ì ¸âQëù}¶Æ*úq“sîX) Å½ÛøŠ¨”Rç˜E$o Uÿd,ÿao¦í•kƒÒ´Â®º,묹RZWÃÂû_Pc+*\…GŽ+S €‹»G,¼©¸×ëS*]b\±WNê8Ýf²~ÇøôvÇ6{ü2¤£Þ’Ôä‘¢‹wg y¦þú§»m)‡‹í®µö´#º`™]ùË,9ÿÚ À‡©Î±A¬tËÈA= ïV0¡öMJGÁë‡!¯v–€90öN»×>)¹Æ¹ŒL;œêx¾7 +z²7Éql2ÛD]°tbUÒ…©ÆÞÍæ×æÑ¬ï ƒY·g_ªª“t5oü›°Âß÷Xü5dž|°ùŽ[LƒZzfN-$ô±©£Ä'­¸·D½÷Ï%ÜãçSßÛØüý%Lžy“áQ²©ï,ƒâÿXº&þÜ¥à³aCjhÖöDó}ß¹* bµ„ä\ìÉvßê©­wåÄ$èq¯¢s­ýWŽlÀƒ€_Ú†*.ïW_Mô@0 µÜÜD> Î !ûÃÈ—vù÷›ôœóÃà'Ÿqªn~Ä(»þס¶ÇÚÐÅöU|¾OŒ) k uA5±åÄÈ[º¦£[¡°Ž‰>5³èž lqTEÇþƒòÎÂ$ù4ü‘˜Õê\ãµï1r7˜ ?w6¼ùp Uþ}p…Û%Ù«.ë{r¿¶Uý¼?O²NtTÎá"¡|{´ýÁîäÙ8"ûÜ:-ÿGÿ&¾Æ³ÉAnMÒòÇqE_˺š_y¥\‚_EmðÍ1#º>¬Gq‰*ðk©m~5wÆ·¸Ç€^>¶ô¯FMÝÃQSgÿ0ÿÖ)Ð=ÓHãmãpË}Û4º|–|^Ä*üÅ¿B¯vM#^éx¹_Ëi_šûÊnìL·%Íàs¾Þà–ߞϽ‰*¶Œ7Þ¶L5Þ>Jô·P“›ŸÁˆ:ÇÎ{¤!3“ä–3ÀI'¬mózƒZJ0VPo¢ÇvÔÈx WžÇµ½£A9¥Õ#Fçï-´%iûª/oÏÀ’ÝRÓ±…Ýe—¢k-s𜠞+ˆÙ„Ð3Ñn9¹Ñ äNÜ,è º¼š.¡]J­ ª„œ¸^Ø{fäw ÈÎ +¹h{‰Y¹³@-´¯áKL£­ÏI¥w?în}ù]H‡”ȇ¨#ug¶ù‰i¨ògÇ&¶t_ÄEØ–h-€¾$žšù^¶Ì+C:¥méG­y¶ÙÚÇ>)²k½í\†eŒ#^: Mýzw“éYa·ïNµ>Zg}/﬽n†½PôBžlM“ª¼ª.[A¨õl¢Š +:*®gQ϶8¼c3Ñ¢¡A5¶Ù¯Ä”TäŽãížÅÈ– / çÒv¡9û‹ OÒö7A²@7K„å_VuƒSìóÌë@Çý%dÚW#-/¾áÞ^Ô²3Î;f›ŸÅ´d¤t¸ú«êñç®y:(¦îî +j˜ø8Àó!¾6¤ÃÔïÒÈ~¡Å&BfORŠ~¾x¶Ó½³ lÆ€XNôóÞŸj¸ï\'ûeØR@!Äu÷Æé_oO¶&Ú¦É pG„/w‡KAkµÎ RŽ–pÕa î·W‰-;sˆ’ šÏ i¹ŒžŽŠlñº:€ÛÔL¸WÅ„úµÃËGëlâþ±2 aSìJ½¼³íÞ¬ðü 2ûÛPÝ/Rná/ºÚ”ƒExÙ4êí9×&¸4n¤ ãÀwoѨ1 ™V£š\Ë ÅÅÍÂÁˆA8î”PЉû˜> ᔑjí2ÈhްIØ ð÷àˆR¿¿L¬ŠY†äaó¨6jÖþ·6„IØÒÒ!6À/îmÒê6;›oj‡€ÏVq»õ“ÐêŒs¯`3sÐgû“M7w†j.)Ø™_ʸe?޳x}ó›u¯~p­ ³ ¯L}Í×m£-7¦ïØjoù×°¹€?@ì¬áêFñ©çls@;²âRŒ-¸ä½]!-ubtG\¦u•±3GøUê“àk]kˆôÝðc1½æÚ*©üp®n KS>%ä?ÿÌÐÕšå]Aæl•ÿd›ª¼¬êÊùnñè“Eܫi?îL4½ÔO¶=înÏøÒÚO+÷/õàÃ2Bm\ + © YGKM\kÏ¢*\뉞óIqq±ñ?f2üßÀñ§#|oâ²µd°m²âæÞTõýT®üæÜ"¥üÚþ$.mg¤ý©·üG/óÛeBÒ½­>ç•Üø‹œ^ü£ˆU}ƒUõê;Ûpíý­á–´iÀ‹ÐyžMr[„(r‹Áù‡kÍO‹+]!9Váí¢ª—ûKeÏë­¯ƒ@7Zé„ Øî”²Ào޾³âZãFhq@ÍŠø’“j+èÌIø3û,©Èårð:¦ÄU͵%McR¿›'çý¼ Äó"µæ}ŽÖ°;C-±Ì"^ÆŒ€&7àÇF,èÄB‚Ç€Ïvª0U¢îŠ_¹·Ïv:§Ý2ѵɆdlŠYç]§¹æÚò|ÈÊ%Fé¥ \έÝyHÙþ2¦Ä:I¶M!^ï/"3"béÞ4"Q­Ð%ÅUoô´<\áT=õ);»ƒ:awbm#€“õ¹6ä[ÄÊôn•®‚¿ô¨ø¬5jí*¥î§ÞÆ´/_þë`¼öjp³=3¢„Wb²¿K½uþ¯«]•ñ-%fäÒ›¨;€sÎúÎÕÆÔ°š¸Ë ´@D+úÆ4}éÓQ«`8bãtú:Ià Š1/sWéÍ>z¸.m±{-Úßv…ã‰ÞU-¶RQþD09¾L?zŽ*xøqH) zÖ©Õ‰úíŽèó½¡Ö[½u?ézÛoLPk¿kN½þ·y|áÇ2"CÆ/þ^Ê,øÊ6Útý`¦ñW¿¨õÕ±š ©yõ 4»#÷ÇÚú[ŠBš£_3.‰™ûfO¬~ÜÌ$'tÇþ:¥lšßò€Uóú›­ŽÂˆŒ\ï]Dg8f YÖaÄC䶘Òô½‚ÑrÝ9O¬0÷ƒè»Ê¾·/µ¿Ü™nz°3Q÷ȹ„È4r²}’º=ßr_ʯ½ºÕO+Sr‘oí³í¯Žõ¸¶ Œ ò®‘ZÏtä™AðJà9Îuг¨[’ J~7R1îÏ ¾+ñ53ÍÏ]+üƒUt~/"õû%jÅµÝ LŠm¸å–†_ôÝ&%ëk ,¾Ô?ÿ|–õÓVoËý)\Ñ¥ò?ØiJŽH–îX†¦nî-ÔýêÞ¨}èXmxèSê·§; +Ä6-ÂÒĉ;6@gVäÔJ„ú•°\¸#õ™ÅŽiùüS×h"_¢Z +4ªÂV¹WÚ^Y†+¯ÉØ9ç÷¦¡o¬³˜²jáuEWù¯ŽUdñ©ø×BÉÀ?eEdL(àñ+wfÉ«¨´ pb&aOÌHÜ„kŠ˜ñ-~3 ãN¬ ߢÑÞí2…¶9èkÛ 6'¤à ~³0ö¹æç›Ä·çtü¢+ûSm#RBUDIjój¯˜†Ð/}›äŸUlhzh¨ÿew¶éWÇF{’[F¬÷*¨Ø€–K?X'5øÔF@Çexd@ލi฼¦B›¤ŠDÝ#À¿4í.¹?ƒÏÜ‚Úþòë¾ÖÇß îÿØJù´UþÚ²„…ûÕDcSá–ÓÁ>5Ñ[}‰z¼2|O†/·Ì€žkúë®'áo½:®À¡Â¡*l‹ßÄf:U”6‡‚ÚêÔð˜aÀ÷¹e; •·J"Ü:ƒG¾ßfwþqÄ +›)è“m2 „^øp’¥hÌsm$|­Â½Îl8ZÀgYúÛn®оiÏøh´#嫈Œ¯¼K”†½ylÁ:%ï3ç $%(Âä6QÙÁľÁ XîÑ*¶Ð0K%T^ó,R Që"`æ°Ã¯Ç·(ð°žMò«¸$§THX¢Rzs.ì`šbbjËÎPÃ/ÐÇ–¶›JjÅW^åy÷âíî>Ùüæ«þö´‹A­=QWÂ'…¥Û¦jo/RsÎM²¾´Œ7ܲ/ÁRfد˒®²FʸñÇAÏFT+„üŽ©15–ɦŠîÂssõ÷CJZÇ0<õ ]WMÎoæÎ‰3À³ÇU„šˆ[ØDÚ硯¶†Û~•uƒn "‹/Ìc‹¾õ¯0;&€ó2lA%íã3å܆_zš“?V>ø‹gž¥ë®¹¥ï,ÿ) ‚e†äøÆ[r¬&Ô&úßã{«¬¹¡í­¹åßH\Ãèqm¢‹móÍÉë]Té±Óôç>•šè¯²qåÐLPÚÉðJ(u‰u¶ÁŠËú΢‹ZAá!¶N:Xÿª5óúß5O?jéHÛ"ÙÚßþëîPÛ ¦&ø9 §¶,øÎR[æ7ã—¨-ûý6ƒF::dd"Fé÷=þHPƒ(Û[=œ¡•^ƒæþú+±žÍ€íO·$;f[“Ž•°bûBãKCOñ•ØËnBŸ ónà‹ï}&b–\Šé иß×ck€ç‡<2\‰KŒ+w+9¸ÃMjCPÉÆF5lÂÙ÷û‹÷ÎH…¹0[󫺧øGí`Ç‹YRÙÕ)púÇ}5/ÿÞ[ýâÆä/·‡š’¢2*ø`Q&çW\—0KÏ9×ÉUeú6%^ ²Â+%Ô8@<Þ¦’b +6´Å¤:TT˜|¤îŽu¡ãíÉ^Ÿ4¶-ñiX8–G˜‰ž§íg[D¤C)§|ÕPÿç®%zNû¥ð,çJëãýÙÆ;Q ªæOo"¤àá}›œvï·Ý¹L+?Ǥhؕ߯ 2>Tв>óÌ6<:š§[ú›îèøÕçýb|ùöLãsËhÕõ푺–‘ò+‡“O«´Ú÷€Ç{·Mc„Í4¬ß@GFÍÖo6 -ÝS1½€ï—2ZBbzc\Ƃĥ<ÜÞ8&u·ûÚ5î6u·ÝYÅd}¦æ–þ¢T^•±ËÎ+5?lc³ürÖ§¢µÙ7éŽuD†ƒgƒ˜XCR²;‹-\b×ß"U¼üZßW—wlí]vKˆµ»3à—GKдˆ’P×âêbjT¥W„¯2 ´Þ=šAUë{Æ€\âœèÈm!9¡úpùÀ‡[;“øTqòñ¼úÛUróO‰õÌú®šË‹è׎t<ùÛ(4ù£e|ñ7€úa«¯õ‰z´#¹êÙå¿¡Þ\ù0&Ez[«}7Oxñ±~(ýœa8û›½™†Ç9 Õuõ¨ ){ó¨üw@¼ü?û:ç?ûØ»-TuXË4 7Ý!—¾ü _ðøÃ£"øTÇÄËhmá lÅÑL{Ú³ø–„—x°Ì¯BkÐ\÷©ÙØÕtÝ3Ì +ˆHþMt~@‚. HˆŒØ*eç|u0ÕšzªeS/ÑÃò|JLEPMj{oŽDÔthÌÀ$®RAraëó‚ÜÓSàGs°7ZAåORNÞ×#à7ßL£Ò8˜m x­RtÅ«/ßÞ¸ðYBÅÓw@\z¥àTœêÞlRbsKÞy¸†Îq‰IUqm§0¬`âŽ!!9®Î³MÑò .NƒŸ~ªî®½Õ,¸RôüêGcˆü óˆœMƒ’ÿ® füKA¼0ôåǃm)ßô´¼¾ ç”ßÜäÕÜO¹öõ­©×ÿu$"@w–©‡« ¤°žÐn— K­óíÏl«¯Ã@Þþ¯ƒÕ»?ÏðK˜ã­îɘµgáô Wòî7~¶MBå\l¹o_¿R÷ÕÞÚ§¹—QöiÐ ÇLKÊÑTýËý±êG% y0ƒ°°åÞ:­äÊþ +Íe11ÿóExú¿–ào>aÞ|lâ^°OµÞ3N6Þãµ?ÿp ãõ'®T®g ’¦_1t]÷,ß H+ïŨړ-6ûÔšØoÈÀë9ôÄ}õ˜–KŽ*)Í¡Mb¹oRiìm½iì츳Él¾;Ò–ñÉPËÛÏùU¯þ5 ËþRÃ-¿ì]„$6±•öehÁÑ*,Ç+£ƒ*>%ª%6»Eí¯åü‚sÌÌ/·†k¯y–‘YQ5çô‰_AoªùŒˆ† l ³}ÍOíK%×,c€™ƒ¦œiYø˜šMt®‘ª#*6)¢Ð+äâ}Àsëz›îÊM7 } [»Sˆ‡Ëô•°ág1³ôâ:µäæÖpÃ-€‡®«øUw·ÇÚ34£°d~sö7­ù×Wý’S’v¼ã6¼=ÕöîúÑ®÷W7]%󺺧+ÖöÜÝtÙE§m‡X¢Ïs ÁáØÿ,ÈECŒ¨¬o3bï—vßÇiã`šˆúBÖmÙ;ÞïºáUÛTÛ„¢-s͆jÞŒå"µäü`sÂqaÍ£#Têïkt…‡Sui’ò£úÙQ ¾ä ©ìÅJPîÙ pß‚,øÍOÌû-Âigií)2ù7Fý³ï´¨œ3‹ªÎ·s²Æ‡^Vé^Ù½%yÅ“}7¸äS˜Áù<)ÐÆbd`Í«^s¶ÝLÔžŸMذá*Wuðôe hÞž—ØúÁÇ"¬[Ð¥ÛfHÖg/²þÀÌßr‚J7¬°üÏ£„ŽMªl&¦ic¬Ù¹éæQ—ôøÒ©þ¶GNzîo&\Ω;]Ø0ƒSbŒ™k&WŸéîx¼¢£TOïh`©¿rjž—4¿<5Éo¼都]T2Úf”¤Z9:ïôd&oUËlYQAS7M´uª|1¶&–ØJgLË€ÉÛ>"`?Há@1MÝþa Uw0†n´<öðêoÍka¥_g¹Šu¦rAÕ™•AR#ð £î޲+ët€SywËŽ­íFýÝ’þè”»X¾bÅ׺ØYØ©ï.9YéO¦¤…¯>ŽP‘Ç8ì7€¨ŠÿKEÈ}ñ¯:óC V?]‡ûÜ[žNJ*/{Ù§½ŒÜk fL¤ôõŸð‚¤«Û^&Ïi ö”\Ó#’~e”ßûNP}ÿ茨äúݰl#·%ÜŽàÚMàÔˆW¹âd wtª‡Úî%ëhåWæ4ˆ’m³e#·,ª )ã¼ê‹#´ò3:döI#¢ð÷i1ì­TxÆ‚.ú+ȬºbW^Žˆ«ž, ¶¤¯©º²—¥]¯ÜêkQë“}¥a[‡ÉÿtØ'[Ùødš_pñ“¹5õß㈪GWöš²#qFÒp{Ë›‡!pƺ¸këx¿fêLÚ´v¥mXá9{rçÞ²dÁ–­HUËjFc@P}MM<¡'þhƦžñ2JÎŽók¯ÄòÙû€üf 5ãÔDwËó`wýs5(ñT€žm¾¿9!6®ï]¼¶»ý°‚³Kz*xÏË"E·¢Š¦ç+hvD|µãG×行%3¾zJNX5ƒ3þ»È–ÿ3Ëìù) -6o„_qe.¦?÷G1ma26,%¬Úhíë!{ÍÞCt0n⊟ÿˆ,|òë (ýü˜¸ù^x˜½jgí `TË?£±?O°xûaÙˆ*wqªîºùuwƒý­Ïv¼4æ×éÅÇq:aÛ‹o\³–M„†:ÅH¬ž·P›Ìœ¶x^¹7"ЍAIZXÎσ-ïé‘ùgš{;`F,žëçôÄÒÖÔ—?Š@™?ù±°oS⺒µï‡7|ÇÁ>IM¶l#6ÙØ &†€Yÿ]ê6}šÀwmzay :à«e-àÅŠ¦íY,¥Á_Còà +žþ:­To8¡¥fJò)-ãL€_{#(i‰Ÿ”6Äïú •C4Ò†‹…²sŠÎ/[àu_¦XüM¬zÍÖ–¼j‡æ¬8°UÛ>tÓ¿æ9Ãë£L†ŒTù¸"ñïïö'™‚/s\ù§IÊaÏïÊE]ëóiEÍàpkü”žÖ¤Á7]Œ(0yû>|Ë®£%qS[ÿdNÏ{¹ÍWÜ´Ê?”ª?\ôºsãÂö»32اþòp{ÖÉÖÂsFLÍõqAóÍIIë½e%àåº Vîz£#•^™‘u¦oÚ±¥+fxÖ¢Q8o!Õ®:™ˆýq6kÝC‡D-1íi@—ìø9Œ­uÕL¨˜–vÄk‘¿vW=<6|÷£_ñç¾étÂÝóq]YOÏDÄm‰1=ÿp”•6$(¹=Ê-º¤‚½ûUùä„¢+õO;­ê,ëÁ‰h_ýëÏtÃLoí}?=ÿ¢Ÿ™ú›´íþwMO¿7ÁÓOš™¥W³ýWþû pxÖè_!<øë´g—-)jŸOI«¯:yõW‘¥ï~ïkÍþÍŽ-:c€åþiC—œ qÚn˜1eÄÊɟܺÄ yÏòjïYiewI%ŽAÒnÿȯ{õ‹Ÿýçt_ËÝ=8}ÅД³¬«}ûi 8aw=ØÚXÞ­ÞñB +WLogåÀ„µÃ3{ú‡ÁZ–M©1ÝÚ´ôò¶]èÚ%MkÒ¼¢9qÑЙ´åF•í¸©à©aXž[x!2çí†$é)ÍÏFùõw£²ª'ëÆúr×\°‚C§¯SLÞA€‚Š¥›nRǦ ^q$À¾EhÜ! +nÝ(Úòcë7cÏ]2£«–LèÊe#¶4ªD¤DÕÀ„]®åÓ‡½í¢#WÌ”Æ%ƒ¿ æuÎ ²'À/ øÂ‹*DÆ8iÅ@©Ù¶“š7ckrËOƒor9^"f͉j^¶À +ge€ø-¶qg”ŠøÓ`‚8ðAˆŒÜ 2I^|ßEhõ0*¯©áy¿ÙÉe§g¤w¶­°‚*fRÍnOØpb«Mˆ¬-/¢dÝʉh:Þ,[‘%{>xÝŠ®8Ü#ñq‚FÙâ€ÿ,2û¾.r”_bµãã$…¶äÀu,:(m \ÑŠWùe¾Û¸ ÷CLæ·)¾îÛ$¯ÿ[ˆAù4NÃíYÔ¨_°|ØïÐD:ôI¿=)®ºVÒëýà}/»ùšƒZufŒ[~62ÔöhN‹Ê‚&ŒuwÜž`WNKEMÓ„´y*=,®¹:Î/;??ÔùâÀOéÚñc£`Òœœñy‚Ýý!ÌfÈÛ#TèšS¾3FCï8¬½ `gŒEZµkVÍÄš¨‘1!j|àáT^Ô`‹OKu*2”‚‹¯ZÉW$­¯)!‰ÇøMñGû)?:™u·C}°ôð øÕáï<´Ú÷¿O‰[^OHîÇøè—!pÚ¯V|Ο>fõ½ð:Ò‡Lq €/‘% ?‹ÞœÚ2Ã[æäõw—Tͧú*ožl{~ÌßSw]N­½œòðÒQTÖë_§û@ÏF¸×­èÊ¿u°²óÄ‚—Ç+Ÿ\ŒË»u:®îé壬æwÇó_]? +L½tJGQýÝùáú;AAÑ%&é·öÖ1E×ãÖ i³zX›{5ȯyuàÂö½èº W±kG•,×ܱ“~Ÿ×>Y5á«eȪçSŠŽ’Ysò„ 1a^ +~½»‰UkŠž{^Ôüâû¨Œ?*DD€ÌU50ÙFɸhÁ'þ>;XxûãX{öŽ ˜‘VÄ´!iÇKG¥Èò5¢>Æ@íC¨æ¯8Ðçqtó· +vÅ )ˆ1Ìåy 8w×I®ë!¹:tòV\Þµ¨´=aI LX#ÓW <袊^»j`v¬Zx˜y µ)ªÂ-jé1-›1; {»¤Eem»YØ99²°¯=ýœ‰\þæSˆÑ½¨¦lzb\7NÇïŒá[—ÌI>|ç~ÅœU@ÞÅb¤9ÆÐà-²ha¸éÑhwæ•emËëU <'b–ʤtÕŠ-ŸUCÞŒ¡ß"±uoF–OË€I+F`Úº%ÆxÞÞ®õŸy–äC˜„Ž­¹šM7®á €ëZu¢ÚÆé´ÏaícŠÚ’KvLÕ~Fûb0¾M²xÿš ?a›w\ØŠU*g-OSÐ?§ñÊ®Ué”`Rýpüœ_îëz1'k}¸ n~‘·> ö5Þïm»‘3«CRvåT?>mYO®ž;Ü·=Øp{IÑñ|Í )\u€3'ÕƒÒ–§ûãLÚf,&V]À¦‡ÞñÓ°¡žÁOÕáw #èæ%KWƺ‹Ð0¯A¬èvfåÅ>pú¢¶Ìã.J˵ÙArɘú^…È?3Â눷1:^ù{€ñK:tP3§½1@âÄ`gBLw—ô´Þs1®ÇrlÖš’µi!T¯ÇØiz›1>ˆzçén‚wTØèá>4IëÃé–ç*Tö%±â¶§›$gÂîu¥þ0ÔY{#,E§kðUg™åïrßAfOÐÉŸ¦i´¯³¬¾GYý[tí?S ög˜==؆¹!À‹H_ó½Ùþö'QYç‹UÇ«ÏãØ¶ ‚X¸ !Öíº¹”U½iIƒÎžìo¸î­¸0)®¸¸(‡&G”„Ü‘^äË™ÄÛM 65 x1Â)<ì)>ëãœ]1ven{ˆ;>&u'Èæ«a©,yÓÇŽ‹px?Ä—} 39$øº§+w#Æ‹H¡UuuUOª˜Uaò'ú»^ûu—£ýÏd¨ÌÈ`çk?§øÜ¼ŠXµfÐc|VµaíL +÷•_™—\œW6=ÙrakÖÝÀÌ0èåJ š¿™ÔÇ×-[PùY×뉾öÇójػóU{~:j?Àe/˜ Õk&vÛÃ!¯YHÍ j˨šYî$¼sõBã§•¤Ò€Œ˜gfƒîè0× ˜®Gè唑6-€½ +òÚï:¨75°ÚÓ#œÆkJBÕUjÑ‹4]Y¿ÎÛ¤‘5«—¬,ð¬U@p “E œßÔš'‡žkM˳°¼áö´âÐÓðfÓ†«Ÿ3öÑÕ?úÃÆ(zý¯ÎÀ×YNß—)n×)_µƒ³GÅu·´˜œS<^ñölÞ£‹ßÏÈ;–¶·Kòê[ËÊÚûóÃå·úZœà”]?áb¤ÜØE×#ŠŸœ„e=þÍßÝôîk€Iûbs¿™ô½xË -ß°·$üï‘üe†ÌÂÔ½zОÿøæš‹ù2Õkÿ<#rüÏ*Ïú¿ËôþÏApí¼ºìÖ†ÙÖו}O)~° eÍ+‰ËzHæ¶ Y~àƒþ+ˆ®_±!r×´Ž%+µ9<„~¿ngvn:bÑŒé{À³ òº…\rAÞ•urº·åÙ²…Òî5ÝŸêo~rà"6!¶’ _Ââî9g&UMhð…óvqÁÕÛ3¡ã–œ½Ü/—ºmÅ”îXàü˜ú-$oÇ(Úq±Ó1¥§ZÞþ¨êL=éÀ¦ý6),¼µçe—ì ÄŒönǃoÚò¢«¾†I°¯“$ôNйdäŽ kï,ë€ÅÛ^tmpðtÝÎm:Ð/¶õ°ï|ŒoZw}dàzL£Î¡ÛAuÕMAŒÅ)¢'Íè¡Y vTÙö´ä&·Œ C_JºžDUŒú5›¤ç°oÆ¢—?3€J‰aÒ_ýY¿Èa¹ç&¤obÏ{ËkÏcñVÑà+¦•Øì¨_¾ä¢fÌô¦¨…R·;ÆÀ±»÷Fqí+NX^L3t,Ùè­ëRë^€›1b +ælÄêE;¹v/pè÷ƒ,ZŒ±ÆŠÔÓõ‹:Rù¢‘PQ¢2ýƒð×vëu+³áΪ‘ÔÝ6â²Ï9)¥7Æà—ÓC¸ü)µxtUèdL©ðy~òË$º`AæÏê Y‹FtÙŠ•ܲêd V¼ltìýKCýmÏWÔm¯¾ŒcSõ·&zë®Fä/t¸Â󊮜߽ôÚ+KfbƒI{Ã䜱sªÞ®¹¡þ–Û!qÛÃéÁÎW³2tÖ„•¹ê 4nù‰mshÖªQ÷ešÎ> ‹ž-3´Zô· -år¬FU~ˆ­»9u{üºYºbG•Gô]Y»1ŽÙ ³™#JP°ðéÉš¤»ç·œXÔÿ,0Dÿ™Á¢þ3­‰ÕÜ”°¨ä긨êîȲ¨ôå½ãïœÝÅu[` } ãÑ+æ–”°0缑tr?@†¯±ÉÓrÍh?ÌÍ+f|Ylîãõ”‰XqÙÁ¨½»¬ÇVŽk‰Uƒ˜Šó6Vã=/|èu·h%¯šy FlÙ‚‡[ñ{–}锵Ÿí—KÚÃZ• b`Îëñ%cì’X-mx°¬mzºnêJŸ5Pë†Éµ7„™¿ Ï¢ÃÐ÷S}-÷g¤åwöÜíù[>*bÖBk™ÔJ×|,ÒÆ½æÁÕ®zQå‹Xî´²-~ÕNßóÁ*V=ð’,mÚ„ÌÑqj+Ð9g÷¤æ ©aÃFlØ!b\L\åP&ôägwKÂÁ8ði†Åû4Ãä~:ì½ç!4­Ø±¥‹FlÑ‚ŽT±h¥Æ /#rBÁ²žˆýíãV_žì«º;§lzæäõ7<Ýp‘ZôÌÚ;6vãQ +loŒŠØt‘Û÷ýðŠÍ€ª?†Z²–lm‰‡ŸaÁ)Ȉea%4ùC˜JÞ%@?„ /“8àAÕ¸á‚ía›büŒ™U€_/ëaXþŒ¼õyXzµdÅUîÆôñŽ—=ôà^=ô\õqh3FfÛ‚…X´R[£&RʃԾ7B~™`Ðw,rÔʬñ…[6ãpÿ䚟Mšµë–m¨¢eCWÚ–Q²åeáü=íÇxÀø5¾`¢ÔFdØÌy¾hZ‹É“á3&ÔäŠU:¥#”yE°—Q“5KhKFŒ…Hõ3*dúœ•{8&ûq7¦¿×1]êÇužõYwáö‚tâ²— jÕ3¹zÝKnßðR@^zÍÅÙX]Z6#+W-È’M®~ÙŽ©ˆšÐEa%.;j§V}\ÎN¸gøÐWoÉŽoù|èí;Ëé_ëî×ö¢‚:n«OOrKšïΨà o‡{à"4æAT¾mëÌÜ´ÂÊÖl˜¦ˆº§=$C´Ô®·.>¨ôŸifÿf¬ÆÍ*ê:hyè)§ôˆÌ³[±ùŒåNÀ¼•Ò8ofÃç,\èr¬–¬Ø˜Àµ~NË ÀÂRÈ«y¾|\E)"•FôÀöXìµ1MÕcŠW-”æXiÝíæFÌ®9'7ié%øäâ¶€ZF*Eí³zfs §+iQŽÌß´á›ÖÔÎ1±P€¬<ÇlÊú%؇)^2âJÂÒ†;îîÌ¿¦‡Êo¯Úñµó.fÑÓÃXå±Vý4貃 +XqÓa+z×’T¿æ@,‰KvHîÊ©cT‹É§våžGæÇÛ4S[·lÄšÚºé'u®z €y'¥5j§Ö½\Îö8·{3HCÅj ñÐÇsÇKlÛó“Áû£4ä¶ +^°` +'¡ óZJý¼‰Ùîãnù»î†Äõb¬ý(¢lŠ_2s6¼Ä–ÀPgZ` =uoŒ‚\wâƒÍOCÒü›Æê_ µfíq°€``Î!áÈh “jbÕ§i¡ñóL·âC˜‚ßò ¶¼éÛ^XÙ~Û´íÃÕOHÛ.áy‚¸ö=?²r˃©Þÿ¿31ÈÚU+ºbrœ°î"uìLòú½,Ê’“‰ØðB<É?±ü½åDz•.9‰óvçúˆ LÑ™ïé¯O\qãÛW|$Ⱥ×¾lG×­¹ˆ€'ëâu>@Ó6==ܨ‰ZÑŠæäꈑP=k¦ƒfí|úœ«—7md¶8ø„w“fÅ`Ø4ÌŸ·1ÚcóU½dÆV­;IÀÝ“òa¢{`/ÌâmžqŠðu»“lÁšŸÔ¾¤ãWÇ(ð¥}ÁO…oé¤/ b¢Ô\—ÊW¼ü¢W±ã†®aÑŠ­Y´’Û7ƒüÁõq‘z-ÀãÏ»(mÛA¾to‚ӻĂV¼¸¦À0ö}PŽM›:ì¹êG7ÿéÑ|ˆì_fz”§¸²ý ›¿wØ d”Ë+X5“jVmÔÈozâ/SÝ’–;§%‡Éã’ÎøYäÝ·¹æâRvÇzú¶G¥žˆ]ܽda×ìÄ´ŽQoëîzàï…<Ÿ”£R—¬´ŽE«¾êè—l°›# œ5¡î°_šKÒžè —_ûàr7ýÂÁUŸDµìíS†M"L@פåLi8M~!%3"%—o¹8˜i=©\Ïë¼ãè…¾œP«ç­\„¿‘F§F4±ñ±á[>…Xœ ?¿æc §õè‚)-2m)&â×}=ìUo}ÙÍ#­ºéMµ7A¥¯ŽàÚFè S7ð‰… L˜ÒqAJ΂‘R³ C6ü ü¢›Ñµ6B…üå*¦Øü*x{´G´=Úgúrxžx^½jmO›×µ&DTmO§cÚjÑÆFȉ¥jBõéYyŒ'bœ03Ü™° '…†O½Â†[1ñ|ÛChÙŽåç¨T7£&Ô/™í‡gÏ¿La&˜œEµqbq. ¯xûdó.IÿŒ ŸwrqËN&á H!Äâ vVÛù~Þ„È^s[^*lÕŽ.‹j;bÚ/uÓÙòvN]|}^ßözÓãȘÖÚŒåëÕ.}}L¬Zñ°ˆ«±ÓeÅ“rlæœ_±àt„D†å‘nq?®â&·=ý¨ Øíæ­Žq¨KctÔ¤‰Pºèb@c ¶æã0¶C‚á[LW¨5+±Ç×GØ”99aéA„=àˆ‰ +«dÜI‹Z=¦—±ÃF>x9¶Î£dÁ¢ Y¼í§@7ƺŸ‰Ùe‘ö#½®­i&gcœÓ½9ݣܚåwfyÊÝI{ÕO‚ÌÙ 5a-®(¬åtXøL ïtLÛÕn‡Øìq6j#6mŒ+#tdÔMl\¡tm8}ãŠŽÄ Uë“5Œ½í„Æ  µ7É~]è±ú¬ùH e º’¸fŒÔÎi-¶:v?ÔõQ6s7ÄêÞŸèÞï‘Î{©]³vLÉ¢—в:ÆÀÎ;°eKÖŽ7ÏŸ‡$öá>ÏA¨Wµ2: +bî”–Ûêâ”rU§FDˆü½mÛGC®ZÉ­‡{ö×b|³a‡—®ûDB‚VMfž­‹?lÇBDLHÃ;A‰iÉÃ!LÈåA9­Ð/¡gTÜz& ì·žæœ›‹: +y7 èßevbuÿð;áy3½yJÅkÊ»k=ý„LŸ°ùAÔÉY´âkÍÔ–'3©â4Mú AÖ ­Ý¨ˆY˜ué ³cT +I™Q“[gVȨ—;‡d°;AÝ‹Ú0I¨Ë†AnÔÚK6À +¬õ¯÷DZ€½ +ì –ß·‚î5­3ªÅÍëHU›nrÛ®ŸÐ²åÅ5/9(€°–X4k¡·/Úø¤I9.;Èoº¶i#µ¬¹éðuµî¥‚–œ”¶I-®`<Ææ[ïÐÿ Ä o‰E7ºrÅK…®{ù=QS7Ö!bdšûøù#!pÞ)¬y‚–‚}ÝõwV¬¨ª-?ÕckìÆk¡ŽgánéöDwÿF€I\v³àKvjË’ [6gêJ]=ô +rºÝàd§œ8kíeŽ©‡ÉãzNsäp­Ç®=iávE,}Ü9ËPŸ­‡žG««úkRÏÁlL +T±œ¿Zw#=êõ ƒ[³USFJÝÆ‡¼7I€l‡Ð s.cÂ6(Žº‡t+¾ÔyPl‘öÕ+{ú²”\Iª{ ·ÎÎÂ<š¤V®{%ÃÛÁ^õNˆ?´3Éé]!ƒ7BTÔö¤@³3%ñíF{½[“RÔÒ•;g†—.0pVz‹wˆœé$¦†UèìõX /Ðá xÊĆoó${Óbç֔мàË–F8œˆS1ï¢B—¾­X\oýÐq«>tÍÖ(¼b7DBîN4›a‰uJ)œ3Ú¶CBÍv˜Û»¢“¢VRø•9ëÁ·lO“pæi¢Õ»6Ê¡ïLwËvǹ=;ØŽÝ0µâ ʈwH‡²õY ÊnY®ŠÀz’ gU2ò¨”™cë&=õõrÒ§‡%­Ój-ϯÑòœÝe&ò¥‡Û•ùa\dØ d+~6> #»ÌB§R7h€2®$EÜ…¼f§K–õ½Ý;^AϦ™3³›ÃrQ½]0X`ddëØƒù<å²²ì;5±íÙ¦§O¶áP­z ã:Ø%›û†êœÃÒ¶ ^Õm” ·j{¤EŽ3|TãÕøÕ¶a‹ÔFS°tu2º"Û†»‰«†Üé­¡<Ó ‡2,¥$µÏ™º³V6bÉÍ¥ï‡ùŠo¡%c° 7´üë÷pŽ}¢žQ%µÒÈC<”aQWµ7ø^ÐÅzàêëš³‰HK^bÞÏ!ÌÇvÁCn]P`ë1-±ì§v-øb¬æá Æ Æ!·Ö.1˜†²Á–¾,ËV$RðÒû¨ÉYT;÷R}VÝïè:ØK• §iÆÀ.¹8ÈÅ,â&4îLqćÞWûSÃf˜F]eb‚¢Þ°G@ôûf™¸Î6Üßà”õµLZû¨6)ß#y‡H—TÅqÉĨ€Ž›q5A5"kÅÍÅoŽõ6BCc»3½öí ¾|o’+þ4Ëîû%Óÿ³Êþ{‰£ü<ËÞb0ÖCLÊœ¯W8iè¶ )Y“æ\ØÚCÑËfÜ<úÎ$±àFVO1Ënh+Øo[ëL{ذ ·˜á3›å&éS.‡ˆ™¾b>ÉðZ€ÞƪÒTSq?Eÿ•\o¯!\!6±ž‹ñª<1¹¿À&⌠sJ£ÆØZ`È7çRÛyfµ´S!7eò ¦D<d“4Ïd$]ª•gm±ó5-A_¹WªézLÕCTG6g{SSмX—9ªaýÙUMÿYAf®yÕ[c½Ã+Ÿä“3J²v퀱K&õ †üÝ”ÉÂéžwSœÙbÞDîÈ# ÕÏêKñgJñ½O‡ž¸w¿ôÈ“KéGó_4þL &¨˜žz·X Z¶bÊvÇ`•[T]ÈLmÐ + ¨†1QÐGz¥“êšt½}~¹±È%ãfØ24Ôª` +ßȱü‡¼NØöôäŸ0pêŒLÍ\¶Kz6ÆzåSü˜Æ çuͯÖl]E{ã=²ˆO?éVkéz‰¸TÉå&«Xýù>…U0n’s§¬ƒ¼€ª·e˜ÕDjnþM†Å=÷ŠÄÅ"áo#—?£é#/™Å´)­4ª%UŒKÁIÓJv»W£å¸µR¨[35ôäz™‰&é`Ùp¯©R,¶Pò{hõ6'ÉpÅX´ìU})æji.ôjNzçéŠ|عÆbà=.‚óÊÔÛ_à7ËÙSÎ^öbŒÛ<¸Æ"/dâ½FÑ8lF‰8öI_È!i‹8K" +íºèÒ_¬®ãŸ*ʧ~_PDþþÆÍä¸[W߯,EÿFì¤Üì§pÞ9äbÀ„UBžuòÉ+n%jÆÔN[Iµ~‹œ«×Ƀƒª*‰P•/éµÔòúFö†Že Ä·M¥w;«j Qw‹s€« ªÎ¡ÛëÿæÒ”ìž-çÕªûÖBbÕjŒKv'ØÝŸç¸ÃûÓ ÖΌز9Ùg_ ô)g|b^À¥ëj”\,¯`ˆÞjû•-ÚaRÆgªxüTëpwžuˆš3aé&l‡%Žý |ÞÛÃuŒ½r¥Þ+›£só ¼ÿYk‡â(?jø£8y"íð§¢<æ©â*ù·_‚ã.\+<úòEÃy°“ 8ó†^$Ì éĈI›Bá69 *í¨D …PÑo¿ÏÜÈ„awá†Ëá:¶ËxÑ1|®¥Iz¹ºRôWMÅÀoÅ’n=©‰»z­0.-•ð=d¿$æ·„ÌFÙŠW,™4r:ÆõÝ`ŸAÎVjÜljÿLŒ>›!̃”¥Vù{Dƒ³w&s\IJÅŸxø¨ñxÊ;ÄåÕŠ“9%Òï_¿'¹y¿1îEæHB:ýÈù›Mqן âJjl?:ÌIhÅ…@^®ñ³Ç””‚€’íRJ¡’þ Œ!œ­ÂsC©(ûõ²ZþÙúvíùævë™ÔÌw÷ï•9w61îöÍ‚¸Çñ ¸ß/UÆ?~=îúõ¬# ­ªsﳨ'oÞ«ÿ9;ý·L8T¿4&íOv®0In›Woì³èR­f´P¦‹ek,2g*Š6ß„Áµ·0xïS(Êõ ¡¡ïBâËú“¹¹Ø_3Ó[þÌM+¾.ï¦×.Ùy¨9 bÒÉq¢Ak#E0]„bÍ&µâB· +š?§äá¦å¾{ñ®3îò£ò¸ÿ|wûVqÜ«bÜ­çÀ¸s× â²2 Ç)XÅC…H[ãS÷vx†Xv•#W8°œ¾@Ž·œÓE]zÖAݪƒzϤ—ô|÷â-(î]:îhv>ç»×iĸËOã~]ë첸Ï!qwãQGî¾€~_[Ï== 4—ºä2ð¬U̘³KÅAk?Û¤Ö È†+ðâ`n jâb9pä×âVÇÏ)%’c÷“q\©‰»v§1.1•räÁk\Üß÷;â®=éŠKÈä‰Oç½÷š|üE +í8«R®${ÆÕÛqr¨>K?C>¦Pt/ÈLß[zìf^Õðñ)”c)¢Ÿ² +…Çn߯‹{ø pô}&åûä|î‘_/åÅýøó‹¸¿oTÅÝN€Çýy©úÈ‹7¨_HÃ{ÃÐhoĪwÍÚ$Âq+Ÿ¬Sƒ¬;s1ûÈ‹WÀ£$äÐu)pÛÕ ‰_qP€ú~^aŸX[ÆKÜÅw±k>ͬ‘Ÿ¹—ˆ>qï5üHJ÷hz.÷»ç‰°ïþº^räñ+è‘÷±Çâ“ qnÕÄÝOFɨ·ÏoöüÒE +¿ê[«Ýšþ®Å1‰juºoÄê0(…C38¢p¥¬‹1Âøo4·O—T÷žzü²ýØ…ÕG®СÑ1ǵœúY+¥Á/ǤʹäGl²â)½;˜GÌ€(K‹jU¿¼Ë¢ÅÜÑÄÆ‘§ ˜¸›÷Zã®ßmŒå:dÜ“ nÜÕxôÑ¿nµwó9òhj±âÇÜßßå-òÛ®¢xÎÅ$Ï[`YQ3±Ü«6ös•Ù=ü±j¦`ªN{Ò†˜¼Ö ]¬jwþ–U úîÎSpÜÃôѧoqG~û+#î—?ÞIÉcx› +?U]Œ¸ê7 g<ŒV6Ð$•™ÀÂá”Ù;Y…çÍfvQÆŸÔµçR Y?%fáŽÇ§£¿?}«èÈ¿>»ö¨9¶ÞÈG *X¿ A}od"À£“açìÜ®š;¦ÂçyÔ´"RÙ! )=Þ $Ys×_¨9/¿ÊeÇjàè͇q¥œyÕ²Ÿ’ +Ç%a~HÊ üÑÔ,¿†EIï«„Œ—ãJrfÄ€ÍYr¢66tÒÌl3Ëè™2©0·Wæh§õŽ—!I¶g‚ýë¾Sؤ:ý,ÿÓý—mß¿MÇKÍgË*£ÿ^Ú*¹XÑ¥¸ÐŽ0_#¼oz™î"£DZrñˆQ{gN@Ý™ìÑóÁBiM¯Ä H=­Tž'­¢¾ô¾¨çççi´^!ÜÆÖCã‘‹·Kãž%! ââ_CŽdðŽ•– N²pê—îAQ嬑R»à 6…Èù P6hi§2t/¨ÂHV´Z¢G’j¡Æ{eM’ Cçpý•ÌÚ¾s·@?Ä'ƒ¤³§VOgÕ÷ÜìÀiŸQ¸ÎŒ¡a|ÔØ œsÑZ7Æ™”í©î¡Q««Öº¸"e˜H“ª‰tÃ+îÂÈoU¶ßÊ«í¹–]A½ž_I» +¦Ø_µSo!TK‹§JÒk¤õ.ýhD/éšs ÓBñ¬SÖ¡sFµ”2…›)í“Wô ™êèC½†QÏÒy“%o|u›ärvnÛ©.PÏyZy U\F u‰l¦ºX.64Y‡ûk¢vbÍÞ¶yU»á„ÎPÙ Ft®OŠL°Ë8åFƒš¢Ñª ÃRy¹´OW)îµV0˜ú$~ð..¸ EôßAb¤/8\IŠ OòVÔ?”®”h= +=6j$lzy¸ƒ µì†ÏÚÉ }°ÏkÖ ÙÌ®V?ÜÕÛÛ“Ì õ=„ã­÷›áŽ;™å½§ßfÒŽe–öüô"v*dÊD®ô©X1)Ó(Ä¥Ø ¾B©i”ôç¨EÜ4‡’[áÑõ‚¼Z xÚ>È^ôõ–<<ìšƒÛ ²Ã,æ®V>)­¼×ÜX6a +¦Õج£1léhÈ%SvzÂ&$úõ¬j ãº‚ÛqY+€Ü¶ w;µýcJIP‹N‹Z„ŒM·Ì¶çc“?øa%ÛζÄ%SçÛ}×»ˆ…Ò¼à4Ï{õfdTK+ó¨(ÅvYw¥ªo°LÚ­ÌâÑÔ/ÐhÅ-ÙÆ)ïbpükdºä-«G•'èÌ–J +&¬ŠžM¿Ü¶æâ2M¸Ú£Ý=_BBÍaO€M'0/ ­¾ç×ÞpôwÅÛÃp…ÔÅÖ*ÐÛÑ34 +Æ3ã[›á¿6×Å —yÝìgÊ!Yƒ]¡Æ…ôƒÄy¥|Ûƒ©Ûvc>Ra³CoÜÌô‹>AÖY¿¼ñAÀȨçcã3OLTüü¸¨ÂÆx5Ä‹›lc_Ùd”´3·%æWÃDàî Kð)Ê‘~™¥R>՟èÖaLç¶U1 ‹¦ý"á¨]ÊvôÒwÆyü͑ޚK\÷3`k~Rë‚W5ïÀWFì<ÈŒ[*x»I«:fÕGÁÍYðe+nBã²^¶ $Î*Zïà¡ßfæ­ÃßÚ}ø¦9;©>¬†¼šZ“]¸ú «é¥ôÊãRô9t´"·ýÖ£g•¹„˜i78ë ·m†¹¼O³<å–]·æFLQ)Ÿç{Ç>ÌŠý»“ìÞ¨‹ +rÉ•.9¹dþaßGÝ^˜Š‰Å~Ųµó݆’µ7‚©Ýóáê÷G ­Q*oÕAmÿ2NA| !_ÆI]›NdÅŒ’<9y5¥B¦ŒÀ^Gôز9²pNOßtaë=¤WMà÷ ºÎ”¹ØØGäÏgd×Ójbñ¬–½ç‚—ž¡ñâ›>Œb·]ˆÃ¾¦Uû#d誓Ҷ §ÔL)P¹“rdŬš2.m{6.¿+Щf>$ vŒÉ™EÓZBþšs@¶ìðÖÝXÀ‚¡þÍüpáõkWñÁ‹üy¢{àk˜/ÿ|è3åæ.hš^︨ðýQc?@g®9a ótÕ´C€ Û%T¯–Ó`B_Ìi-ë6zçšݰhí,Úñ jö|Èê}»žìs˜‹ubÓ¼š2&*¾½bhÉú‚×ïÁ›NBûäP˳Pýó“$æ^ˆ[6Çêš5'$ïyà5‡ý;öG0+6àÛe øýÇþ-B$l¹Y£Â«s‡ºÖ7».héfðˆ)2vÂŒ/ ©‰¥_f9ÃkfPÚlýÝI~Í /³ôj¤¿ñÁžQúq”ܵ`Æ4ØÙeÏ@enBó¬ªåÑÔPå­P_ÉÕˆ´ìÆÿ„Ñíÿo†ÊþÏ0†|œ¤¾Î‰<Ÿ&XÂ%]Ó›)aá•°äjTY÷äãøež=¼=N‚|š& þw•­ü6MçoX;+çU yÁÕ¨ºæé— ªáŸ lÇ¿g(Œíµà«V=ÄŽýI¾f?"rîÏp‡¶Æé”®iJMÐcÊVƄà ~‘hÎÍ/8iíK6JËþ(öyü4Šíúà†WEÖ~]â;ç‡joné‘9±Ü_,€¤_1`Šnïq%ëZXƶY° D¤Í«º’¦å€VRÑ…=3¼m§BWôÈüqÇ«¼ð£QñÁ +^Ñ4¾tssÎójs“KžþwœNý€W¯iËï, çŸß0Ô>ܶweîzH­û>zÕ‚k\2€þoŸÐ®]½ï…¬jŸÏ+ª®Äæh^ ~» ‡g~÷ðaw]øº +0s^Ñú|ª¿íþ¢ +ôfËŽ*›j}1&¬¹² ‡fLË™ëFhúš?%(úk¶·ìB¤¯öÖlì9 ZD–ƒ–ýó¢¦%uÛIÎ!²×õ°¬ùá¶çëºÎ¤;$sÏɈÊZ9™…ʡ駶ÌèòoãLÚ‡"hÝÊ8ð¡kv숂m34}Ï­ ÈÚ³ Ô‚›‡>"³ƒÍÚæ¤.@Úž£áýš©(áë8¬a߇ª8ðÚ>x™¤7‹¶á¢‚£:Húª¡êŶ»%swœŒÜ£!£ð»e-0cϪ_Ö¶½ *¯ó‹¯ïXZÞîÚo>¸¥±ÿµ® Y6D޶в`„äŒ`Z¿„qÀ-;¢tÃNÝwt¦ÿ7Œüw–L‹qÙ¦“…Ùðx;>2h×…¨Y5·'¯[Áé«–Îô74ÓÎ\5ßÍ«[ž~ `#ˆš°h×Ù’óá°´µ3uÇ/øg‚Éù:MçFu¯–ô]Y{>·à-CWúŽ˜¾cf,(Úâ—´ ä +ªbÇ…­ÞwArÿ¾bë?:»rf%…·—eOçúKoÏËJoýï‰ñm +_µ€³¢Êμ}ºm\ú%ÜYþyX³nï(Üö@‹=W¾MÑ([VhþÔPÕ«°´,y× iþ¢P¾Ž#Û7MMï7L ñS*à»5òiŠ-úO”§ú8Í`o‡hÄíQlÇ«úÄ´íú0M;^ùèÃ5ôã˺¦øèPî¹Eyñµ cãË;,w߃,ßu€2×ô€—;6bŒáH«zprTÖö(Æ‹WGº ®Ž‹Ê/OKëo…îö“~_Q€’·´àw!vþ_dò)M×Û“xòÏAvá?+÷÷9]k²[Üðv˜~æƒØ´cF—®k;’—äå÷Ãüìë>zÚ™1vÖo‚Š«ÛfLÅ¢º³`!vÏë¦öä[W檪íźð|YÝž¤%çž&œŠ·dÿ;Àfö`¦ûJïºSÎMõ%Ûw5ÄöCò?zàU{vxù¡‡Ã–›Öµi§Aþ !þ ã:öF±ÍÿçÑë„f}ôÃÊçägﮪñ;f\ÝG8gÛÔ¿¢¨_ŽÖ?ˆÅKÙ~0ÑKÎGä­/?âZ¿hØ=,oÇÚþ~ÇÒ´ª®x±n¿ßtîy¤Aÿ?GoùÖfÚ®}¿ïó¬[柶ÓÎLeêF…¶PŠ»»&’âîB𥥴Hq qàNHBÜ‘Ê̬µ¶÷ßxÏ̶~(D®ó8ö}ÿ]rkĘaô³ƒ)\‚SÅA8ätèÞ0ôùFoɵծ’++ÝeWV8$ƒq0 5MU<÷*©E~­ô£ŽÿsËôªH¾Ò›ælö‘¾±Ù.a–NàãŒCˆ'æ1Ø#‹íWóª=rfå·ò0Œ˜ŽYÞþPuœSŒOÛê.|d­ˆÙë+{d¯ ÷+‰ÐýahøZwé ŸZÈs«xX†˜çP¢LÓ°ðíX¨mŽ˜îÖЊ]*zÙî0ü±™Z|u²Z+p(9˜½QTäʻ›ÖD´SSSë[®«9^å ÔÊÀZS»kå­äxýµè¿·…MÇZ|a¶3TþÐ<>Æv/òi{" Óød—ŒZá‘Ñ!n9½88x{c™†?ѽͻ }]zi«ýÄ2ÁÉ7Ž’·º«Bì“Ü¢ƒ1j‚i ×aøýƒQìóå÷ˆ;Ц²ó[½øç>©oÀF:%ä —Œ’{8AÈ<‘ãsO”ð(¿“´7Aˆ^ïEÜ÷Ë9pÏ<½è`ôi?ô¦ª1ñÇQòãH±ßxƒ÷Ç+Yeò>øÓvöO¾9䣎Vv²@.t+ªãÆÊî­¾Îþyµ5÷ì^?>b¥‘¸ü¶êöá)vo¹?Rp0†‰:F?]ë„\]î(daf¬½Ã<ëB¼øç@UÒ72~þoK¯ò¯úËî:fñ©&1!a¦¹ðF>ñÇ@pÎû!~áUîù…¶Äï5‰ßkë³~9è‡=öÍRÖ@Ž˜`$üGÓšw-°È¬Zé)»3LMüzš“þݼ0í»>ìóÿìöBØÅä\ðÔƒQ\¬a„˜cžd`¬Ó¤¼ vøw"öÃÕõa?ltfýêT2¬VÉF)s¯§:áÏ•v`‰K°ÉÑ "à·ƒ9÷·z //w”]2MÔVo÷â7Þ]Þë/úÝ4½£nHý~†ó#ÈÊw·ûJ«Z2~ÚD…»æ9ÐÝAà#UOvúá!ÛJo›GJžhi€‰˜å«ˆgã¼ÌŒÓ´<¯–‡u(˜eÛƒˆPý«ÔK¦Hˆu´ü¾ku¤g íÙ·Þ—D}Ôóˆ>1ÔZ‘[KÛÌ»±Ý•yÑ@ÂNVXäÏ[5N %×'§ä[—.¾Iûe«?ÿz`Fphø½qb’M*$:•Míþ…šº¿ÖxŒZÎ<‰Úï˹¹Ô–rîϦ^÷BÓ»Ã96Ú«fTøÉP§Šu)ˆ'KTH@MÊßé+Yí,üݫᑃ{¦{ÕÁÌBÏsΓÓ7ºò.;åäl›”šm“’,"ÄSãhyˆº5ñÌ =ö?†jæò{Lèb[ùõ˲ße–:à7·ûˆá»䨽~R´ª>ÿìzüžq i™ÀEn÷—ÜXlOùi¡5õ§È-‡$bÓì¾ê‡V=Í:Mˆ;œ@<²L”ÞuŠaÑ{ƒùºôçj +³IØ^øÃ~ä#Ã0ò‰uº:â`v§«òÎv?!z•s®÷õf*Ü6Í.°ˆhéÛ¨'Šºì3bJÔ×{ÝÐk«=„ÐNñETâíÿWÌ*½é›å–ÙDÈçúöŒsòúØïg¹qß«šJ®NñÊŽ´ <Ë-Ã:MÍpLñ!¶QFj@Â.6 W?ŸåÇ~;Fû§¦9ëX÷0Ã:JÙœþãá8&èu†i¤âžº!åüzgîýƒèÓîÒk+o¡OÊ׿‰×õ‹íÄ0M3:|í"" 'dyæQ±†qÈåΒ›Ýø¸Þ¡c~ú¨¯úƒs¬f‘/fŸ%‡ü°ÿ!õ‚c&ø¼*9…‘{ã¿æšrù´L˜y5ÎHø–šró+ZÒÍ`¢ÿmèƒO¡æo !¢` —¿Zé‚E~ÙݧÂeŒÜ^íH^¡#€?? îS¨Uô»ª1ûâÑ2‡ä~¦zWöd†Ÿñ£Ïú´^Ó`Ãb†s®‡ Ïö O3ð·¬*þÏ-.CÚIäBž~·ø•zºóFá[jl³I(ù»ƒWd51ßuTÜùFÞ”~Û§gá…e!ß,vB"}J.¯d—»f`Ý +jð÷|磤q˼²'?tQoJ™åÆ)fŽ¢&óœˆ2>'ê;US·RAøWæ‰Ò˜/›l¢YLLrÉÙ•]å÷7:‹îou–>2|(Ošÿ\ÿ*÷úÚûì ísX.©l¥«ôšeXhmè^6ÙÖzµølÀáòÙÖ8â™KË£¯µ ¹• ˆI„‰¶‰‘±Î9tšM‚NLƒðé&<ûZÛQöÄøÑ9Ç, Ö­GÉ(µÏ“ÿžu8‰‰Ûè.¹§~™s+¨‡»"zzŸ ô‚¼ ùôpFP±5‚¡{[paˆóÕ)ê_òúܳëïP·‡I“Áç°x™g¼ªZ² Ôöî\˜®=ýŠ´þÅOú¶¬3Kí?¯¼\ÛÁF«ÚJooöUGl÷!çŸ_k-ºxЋ|`™ÄÇißæ]™¤G~µööÔ6Å-R5çŸYx]òû7ç×–ÊèpÑVÞžlcùÙ¿Œ³s~Û%¥¨Û¡÷Û‘ÿè¬zö_äèMRcÿ¥®Ï;¿ÔÅK¯¯Jüþ%2âë4îÃ2ìz¦wyõmÎ/†Á’ë61:Fûy·® ìš—Ð(`ÎÅ77w{Aþé.¸¬®K>ûö¼vÄ«}»؈oÇɉ?›úHñíe×MýE7ìÐí®ÔGKíqו ?ƒ3­úIyü¢ÐïFèq—=R*Ü1G.pΠcS¨¨Ã1ô °V™šŽ¼+²Ö‚__c2.SR¯8A®Ùþð©ð€ŒV䜡ot!"¦YÉßN‘3&™]{å}]sÉå¥W›Ê†Ü‹«o‹nù@rHˆ¹ -…—Á±¾ê–2!ÆaBÜJ{Ñe}kÆ™¥Ö”u_/¶¦Ýl³?IHl,ñï6ØóŸö†ª¼*Z!ÐùÄ…Wwdõ)WWÞNéF>³KøÕ“´¬QVÆ}”Ô_4¯`á›]è°ýATèò{X¨´¹ìA;*òÛN|Ôo5±=Œz.⦟!D¿Ñ^xÛ<b‚?1NT…7#¢¾Ÿj(·(Ärœ²¾è’¼>ïž®£$róCY¨e¼,ìã±üË:›°;Nˆ±Í³a@ÏõÀBÿ9ü×rSÖoºÆ¬«ú–ìß­¢’Çl30[cȸIaÖ…}:Í$i g²øèåN&Þ$ª|t(FEy([õmNu0UåRPKþØp—¨‡³a‡bHøÎ`æíÍÞÂkn%ÐÕPìjðÈýjë]ÙµÕ·¥·Ô/!w7?`¢6G‰I}Ì, )çìbR¦¶9å}[Â÷Ù¿,5Çœ5ôeß±N Rüj>YÕSý¬ ÷ýœ°äÉ'}ó[Ç<>}ýmþo+¯rÏmuA®ntWÜ]ìª|(n…^­H¾÷ªÄëgNÔ´Ò€’’GîôæÜž¢…ß »ñÏyÖó¯"tÔËêÄ e¿ÿc¾±ðþ‰šsˆÊ¸¦ 8§Š(ëb~Ã>þ¿‹/s/:dœÊµÔƒõnÄcó!°s¾mš˜cŸ#d‚:‰ÑwCïvã¿~[x^÷ù`~iõì™a•´;X™ä•‘Šƒ3Üå¼*ã$:ZÓžsn{¾Õ_¹ÓƒžLŠŸ©Ë:?ÁIüqå}ám{ðÜÊ 9UÓ»ºø¾ê±y†˜eì/¹¹ÚžùËrkþ¯Å—ŒãUOÜ*÷•läRgù Û9Ûœ“®©¡Xgðñæá¢»«¯c¯®¾É¸a™&&Y$Œ‚ùÚŠK#ÄÜïw{°)kjýj.Ö"B'êZoh^å=]ꮸ¿>\çÖò9ÛµèÅwðûv9!ÿtƒMúc›Ëýc‹Ã:]£¢ +|þROæEmGüÃ$2z®9/\õ&'Ä®¦Tº´ ŠO‡GZeRŽ–(°ƒ  }…W\jBæþPu¸a˜i™¦¥{T\Äá5Ù!¡¤NA<òÌS|2F±e†S¸;B‹óÈ„XÃ(9aùuù•õ÷×¶ 7Ô­ g5õñ笃Øhϼ½Ú¿»ýùÈ/ãW9$¤ÔÃq|¤y‚£{•÷ûî(üÑf?ä¦q—h‘òaÊ–’ Šú‚_—Ú¡wvûM„Ç8³Ð6AÌYê(¾£o/ºâœ£æÙ$ô\Ã(þÅÞ&R× Q¶UÜ[{Wõ8 â÷&Ù+ï ¡#ˆÍQAþö1b{ñh¡-ï×íåwÍÀŸ¬Óä$¯ŠU~0r0ŒŠvJéë]ôœ•vä y]Þ/“Ìèçx ?x¥õ$‹¬‘º2@K–ÔµŽSÓ¼ —zTôâÃÙê(EcÑoó5eeuÅ¿¦Hi¦9b²a¼™Vz¼ÐT¤äc–:Ëö‘¢˜â¥žÛ胅Øç™c]SýqpOÏÁªGÆIF¡Gñ²Î1Wƒ\ï†ËÛªŠ_Âo¾'e-k…,L+3Œ•ÞÞοµ=Xò |Þã@åCçLuÜZ4TÄÏ>7úäÚJŸ‚œ¿Ó“õûBCÄ/ë¯S¯o€>Ûùy`ŸÁ$÷Þíg$ý ®+zê–s~¥È!Á'jÛ³.S¾›â¦þ*k.¸ªl…=”4W܆Æ_ÿf”›x3 Àfl¼Í¿ºÜòwmÿ¦kʹ°ú¾ô–MJ)¨É»–ýàìÿÃɼÿµešð¨8hã(4t£;ëêâ«Ì³Ë¥W6ûQ7Fp/:Èqg_!B¿µˆÉ.1«À3KH:œ„Goõ?3O”‡»eÕ1n1Kó –ð‹ˆœîS`R½2tÎñq¼ÌÆ&È)ʗЛŒì§™•3”ÔÝI\Ôz_Ń1fÜ¥AFâõC1&3°H§ôìúõѪ„anâyÃ4*ÿýšÆOÛ\ºq+kJ<·ð&ã¦iú«Á¦/õÃÉwÿÇ„Ý:ÙlêLÓrªCç»ȘÕþÂk‹½w6FAŽœaæº|hž §9æ9e69¶=ˆ³Ì’-ãð0¯o¡¢VÞg]YïÍ»¶Þ½á˜g•§hYݨ†AÜ P€_É©î9RšhÍÒÛâ›bvâ7›ï`‘Çš&¡UBL2ã^X&H‰ú6ÈÃIr¦}ž^l“° +ƒ{èè_—]Ü&%ÛÅÜÒ­ðµ7%¿ëšÓ~žçÅ|ÓSöoYMæ¯öFÑþ-m½ â_\j&Ô!£ä[Åè·›Ø2Á9u²·öméõ1rÂ<2féá,5w|“˜²ÑWµØ¸úꔯ?r » ÜÙ$l˜[#¤çIê:«âF¸ùÏ:à©ŸÖø¼?Öyœ#-ç˜Åçn "f8ðµ.ní1QÓ¿;ÁÊ9œ{´Ø +»ç” ª€þ&ïU…ú4<‚±AœU´Þ¹#$ÿ8F}ú•i¨àþé±ðó&‡ºÜ‡z |ý{އ<ÖÕ Ž—kù'Ët˜SŽJØ*¾»ÛSzÓ¯â­ó,ô´ ëŠy’”jgÀ­sÔb—‚ Ö—¤|•ù@ÚwCß™zɯ%”ùÔ„Âõ÷…7wûà)^ï’q«r®à=•ßac¾óó.›¦¹%;C˜0m[Á•ùºŒ‹kïÊîƒ=»úPEʵ¨ÉyÉ¥¡WØ॥ۃU1ë„hÕ{Üó}1z¼Æ¥ï —?_ïÊüÅ­¥U9õ55îµú‹ŽKÚsJ­3AvAǹ¥øtà{k]Õ!»#UÏ–ßæþz8ÝBÆ8CO·ÏqËwª™ŒBhÛ’’Õ¥|'¦ƒ|U•p´Ð 4çI¹.13Ï<€{îÑò¼ +ÂÜëA=uŠ…#øØÝˆûþ.æpm™B>1ŽÁÛ@ÖôÊIY~9 âp!Ò—º¶²Çž9F±cŸà×€Ìò÷¾¶˜Ã"Ü5OͳNwžKø?xä,xp¾»´±à×Å×…¿'ªÃöÆVº¡w´­7|*VÅþ9ygŒœ¿éRÒ‹càû ž8fÈYÎ9.Ô<)(3Oó +ý˜ˆÕ^|„]ÚRçµ6ù5‚Ï[55>51×8{¼Ý¹mœ&ç¯Mó„¥÷F¸y>Òðó0§–Su˜Ä©¤®tAnoÁÃ>n7÷ÖߨÕâÖDõ‹­qlÄÞHÅýå·©?ú³~Ûï/¹jcfZĵջ£ì‚3Ë6 j{ iŸÁÆú且5!7ØS¦i|¼]YG^é†ß\ï.¾¸Ù_xy½§ðši룫Ðà=$f ·Ä>Wƒì¥kÍ>£jLÿiwb¡Â¶úªÖIÚadÈÛ ×M?;Äü2§˜_îœæCŒƒÄØntÄ÷­ßÏ2ã:èƒÝu+ùÕk=ð{륗ÜÁ÷Yâtä· —º5»ß ´_Ä+¸ºÞ äžµIi~ éSr*|rZe +½7\qo©#÷¬ª.þ?ö9bФBY[Õí•|„e–šé”R²}Jv…e:¸ÿä ¨£'æJÞÉJc£udÇ)LäÁ&Ì8Œ~â—2‹”B¢Cʆh:!¿o c¢ÜÚŽA—¦sÔ§iâ¯/P“r¼s„4ï¥À¼Á0Ï‚éúQëCø´#]Ç< 3Ž”ß7 ”\ßì.½é’‚ܶÄ'yuBê\ü†úUu„u¶0¤u¬áTºØÔ­Âû#e÷œs¸Ìu2ýêö¹y–’ùyC(8Ò³0>%6Í2 }¾ø.ãºêuÚ¯úw%¿Þ6™¥¨´¥ôúZ/.§²=j6Õ«fb³¸dãô©sç“RšþdCÞUIsA˜SÆE¹U<”GÉ( ,²pÇË|ÖÁ4)yµœ¥ì]lí^÷±ÏQ²lbjàÝ|¿Šù²L¯rËé%Ë=ð˽°ûn5»zš›ré}Å£ï—Û +¯ï•‡Xç°i¾EÑ¿Üаje©ìw·Ž‡µË©æièËÒ{†IBŠYί²)™;œâq~Ùye1|{²¶?ÊL€Ñ „Ÿw…f!OÕ^vÅ8NÉv*˜À«•5­Ô0…M°Í’r‚ûìŸ,ð‡s\ê(§è²´ë–ñ »ÃÕÏ—ßü¶ñrç@{äWÅ|\ãÑ/u­4¶îMQÒŽÖ›;ŒÓŒ²•÷°»Š†ô³­E—ÿ9I‰ú~³·2Ì¿ÚôvWVÇ•¶”_YíE=w+#i¹T†Kuk¸d·Š‹6 ²Êhe¥úºý)FÎ!àÙ“zõ§ ýófýë£%>çïß“°‹7Æøù›­øõAaÑÞ3ãh‘‡Çžà_ª«ÿ¸Ý2üi¯Uä[ãóÍ +jáÞ-Ý6ß$°ËZÞÁŽ—è£5r¹A„ˆßC$ºuÈÉvMÃ>È{Ó˜Mýê»ñõÉnИĥmà:ÕÁýš˜¥¦iø³½Ñâ›vqÕs¿ŠQâײ+-3ø8ÀñY^ðÿöY\´yª*|µ'ÿÎrGæÍý¨' ûã¾lÖ¿ôhY•½0¸¯¥0ËÞüÙêÛ²§{ƒU)¦IÄ0û¶ewþm‹A܀ݣ%­u!ï.´dŸaÄ-å%óKñ9G Â=Q3vyPµ2ÈIÝb&Fi †aB”¼)ýç^äÓ(9ٿ؆0‘5owœµ=JϲIkPÀK£Õ­™çß îþëúÖ¿T/¾;Zá’-jq}ûÜ0Rn—Pr‡=?œF„ÙgËŸèߦþ¶5Xt×)¤jdn‘¢wF1Ï÷ÇH†qrº[I.ü¼Áetlœy¬*JÛšþËÖè}A6,ÿ}µ³2Ô#cAƒ™Ì£$çì —F,¿I½¼ÑUpÝtum•9BKøn^ö‹sŠ–ë˜ÀEV<µÃãMc¨Ø¹ÚÜŸµ¯¡WÌ€¹ôÐ1ªÆ‚+¦ñÊçã¥÷,“°‡&iw«~½5Ûÿ‹ °¯q†–³ÚSzc¹³äÆò»òG;ƒÏóØü=‹p²&Z€~nOãcíÊ—µ§Ê«$æ{ÄÜíAÈ«¬*Á0…7ÏTÇëY¨õ~ØÝ½IL|`E@wk¨åŽ9Lªa¨,dý]þU}Gî¥ÃiZ®OÛÀ?œe”Ê ÎÇñq.­Ø%Ã$}Y¥ÂƒÇä1lðžÐýF±wµùíÖ-k±¾1HJXé.b&ä´B¶[ר´6AÏY#ĸµBº[Ç®Ú?3N£â%¸t—Š ,2Ê?nkVš·A&9”`’?mû‚Rè‘‘só˜x»$8{‰VäÐ45*:{–ú¨ ˽Èû€7ðÿcj:ݬiô:Ùð7Šp{u°í‰6ÜîT+ñ@Ä/1Œ’cöGˆ1KeÁ{´îºáûLÃUwñáSü +›¬¦Ú2MHXê¨|ØO»0Dy~n¿/çv`‘^ayÈ8ÃÈrH(»”U±5T~Ë0QñÀ8 }°ÑsÓ,‚> èåÁ=7'¨ ÀÇËœŠ×oìÒZ`Ÿÿ j—‘2wzá!½Ðç1¥h’«nCÝ8œfæyTœ*‹ožF…ëÚ2/,·¥]4”‡9<äæ+SÕZz³•êSÔàL#ÈP…0íì$=æuCêOª¦ô_“ø$›Œ[9ÿ¦ò¼ z¤eUÙfáÏõé†iñ?¼«?3ň?³özÛ®`úð‘C¬ŒÕ¯Ëï»ä²_' éùd—œ\´=‚ˆ9liT0Ëlê¶–¥>LÜ|SÖRlLŽ_Ï":DÎÂSòê,ÃxÅC'È .- ¥ìÈ»­j͹d…?7Ãcsø¼£EýhYÈÙ#Sùªìw›„ 1Mâ3_gÿn+êÚ閱˽j.æh¹á¥oµ±uWÌ+Û »SèÂ;ؽÝAø ›„\æ,}8KHö-pðŸ7Ú‚{éºÕ ¨_¾MA©ØŸB¤ØeØ$»œRìPsQ[cØ·š\r²Æc¸UŒ +¿š:^à`ÁZÁœ@OMSxÈþ­lõâÑæ ìN@G+ÿoCËèé:›è×Ó+>oóxŸÖd¿Š²6ažÁgjßB®®U½p/°±žeΩ¡y–¨H‡šXæ_Ôo +üKl’KEƒíŽ£"Ü:FågûçÖËn¿¾¹Ù®lb™Å´t³ºÚSx¹Ÿüä«~â­¯æaÿÙ( èj¨1#{oœw "%ZEÈgŽ‰Ê‡‡ceÖß'þ¢nü.°È#çì°·(q›Ýå!ž)Ø‹ÿÑ“ÊþÚd7§+ŸÉ:r¯.u•?²IêqFQmȯéÆqÔSicêOË¥÷œ’—<§¤óÕá´aF¿ØÆ…[$lˆ]QKØ1ÒT-e×T¬³‡C¨'îYJ†OÜ™˜iÁÆX%ª•jìf6t÷ä†iùÔ­`6¼Ú–YBË9˜¨|àâRÝ>Î*¡dn÷çÝÜîK»n›…„Zæèy.uÛk¿®sÌ.­ÁŠ«#O7XøÀ +c™'§ïŽUGL‘R6†ä(ë«Ø¥â¢ÌÓ¤$¯’‹µ‰I©2ôÞí…W 7-SeÜrr†WÙÀq([†9Iß+[Šî‘ +œbrñ‰†XP“‹7¥¯tUÜ2LÒKìóŒb}'øŽùçæê!7dÍE!àųң¢C7G1áš÷°ûCxPoMM´Ì%z5ø ë .íd•Çþ²S×úq­®qm/k)»g—ñ¨ÝZ.Æ<…‰­Múu®>ö{ó4üÅéºjq?-ùGQMæu¹+€uíRtüöôávEàð§5½"°\W»5ˆX8gð?Vë›N@Ïyä˜,ã,Ê,AÄš\Øî¼¶:ÆJŸgÍEœhéÈÿÙæó=rBú‘–TPãó·ûŠïù—yTÏZÓ›ÕQ\²®»è†OÇ@†ã|Þmìú¸YÿƧ¥‚üOÉñ¨Y7êìr6j³ùd¥³èòòÛÜ‹1>Å¡ æþÂ}^â’= +|¡CŽˆ?]g ¥¸Œƒ¡²;oŠ®†Ïí + +Ô¡e@/pN¶„µF%.uá2ÔµÐÒqºÕ>ùÅXÿΡ îH)t(¹@ëyxà˯’š¤ã¢\ +Ü,f秘ÙKï+o¨Z ¿*Ë.Éê +.¯¿ƒ?¶ï'•ç¤ã£SŒÌƒ)FÖâÛ‚‹s¨¯”‰?,_Ù,¹˜¬âpF3 òbðïdÕÓƒ‘‚Ë®Ù"P/YõÝÉgäí)¿môW!&j’õm?þîׇÕ©…C]ÏØŸääXÀïZDøXcÅ}ï>y¥3í²¶%ñgû,:Þ&ç"$­•wß¡#ý +.h2òDOGú´¤\»›°ø>ëüRGÊùà}ßå†Z»¼Ždã’§ÊŸØÌ“.Ú«aÂ=JzÙjWÙ]17æ¬OK,qhè%& 1Ñ1OÌtΓÒ|*fy`‘K°I‰©æYB‚YÌ,ò¨[÷ÇÑÏö†ÊïÍ5dÜÀ…ÿ꜅§ü±^Ã?Z¨åc[¶>„ްËùd‡\€5O¡#vú3¯ŒRþ8N;o¡ãµ6­Ðãµo7´oªnJù¨ÍÁŠ{€ñîíöå\Þé͸âœÇ¤¸ä“åævÓ4)}w{´Z[ºQ×ìÓ2 >>Ó4Qò`»?í‚mŽ˜ +Þå]hn¶*ëh;¬\»¬™c™«':äœ +Ÿ–:”VÇ[¤¨Ë9Ý¡bWŸ©1‹ññ5æP0a.))óXK*>ÕSqb&d¥›ò8=ëx½©so–˜³: Yî*¼¹Ù yèÑP!ÁsÄF¹³9ÁÉYâÄÔí J©¼£8|ñ,tù}ñm³ã•c³þÚ­ir}6HkÑF)¯Ü¿ÔØìR³a%%Ï0… +ߟ@Ç«a6‡`Iæ)è·šTp¼ÖøÊ³ØÔè_¨å‚g•„|Ygü:Þ)g"¬26dGD/thZ^ZÍ\§BPå”3JÌÓÕ –ÙêxŸŽY <ˆéQSKl³ø$Ÿ*ø\[}­[AÈ0NV<]îLùmµzÇ­ä?n4½ñ¬ y“/ Q¾|§Í>[mŸEFú5¨ŒcàžåÆ»®¹qKÄ):˜¢üµßØ}ºÎaíÂBLC°‡«y #ù1nѨÿ{X×ýq›Ï5ÎárÖG`‰ž®`©§"~o´d—ÊôãR%8¦ »\PesKÁë¥n T?6JØE¦yAÅ¡´¶Ú¥­¥ÚUB¼E΃ïObwG«Ÿl€:ÞÅE&i)»ÃÜ ûl:°PÇ>Ì·ÊÉ™@—cŒ“䳈Whžá—EŒt“ˆož@=ñêÈyN55ÿp½7‘ S¿—ÖÄþ{·¯ô¶Ô¨q’™¬-·Š[ì™#½ôXCÌuÌUÇîŽ nôV‡ì§W‡ÆOT„gž˜q¤$å:ÄÈø½þ¬»æQÈ=‹¨*Ü¿ÈBÚæ‰)ÖY|¢[Å„øåÁzÿ´Î¥ôÄ2ãüÈZÙþµÖ~ÇrókÃ=ëHÏ#9”èøÀ">ëM&úóåV’ò-bT䱎TX ƒlˆxêž¯Š´‹á§vÕÿ¬5µý±Ôò& mà€,—eUò1²Ìöá…yñô`¸âè“ç¾9rÁ±¦žéS pÀ+Kͳ”Ôã¥ZŽ+x föh«/ïÊFñ½iaìÀä2jk†Y°>HIòjšôõ-µÔ%Ç$n •Þ—6'ž³Ì”==Z¢UžnÔÖºDïŸvºþ÷3·û|u”SŠN8‡>Ú­|âÑòIÇëíÞ!Ë6ǯŸêkh>ê‘‘²œR\Šq +¾=\¼Îñe¥¡éd¥¶ðrUB.ÞƒÇîW<þ´Â!Ÿ¬s9G× Ý™aWÙ]Ku|7èÏb-׿Vßt¼%¨±.ÙK¬lÕÜ“™D¸SÛÜXmlögYÉiņ‰ò˜“e&áÓfMÝñúëi›¢†º5Pq{g¤*ìh³®Ýª »ÔÔB—šœg“Sò¼ ON‚×0¶ÚE†y.Ò:K8Ò3«N×¹äãuÖ ò–wEÀp-r1€iþEêËnM½iŸ«y½bŸãÀ3³>ïðþ{ŸÅ÷ê»øò¹ø]¾Pñ–ÌÊ ùJÝYœöçAýûÿÏÊâºä”\ 'h§ª‘ãPÞ° Nup†â_2ýK54«œ;œç–YæyÐ;w{„’l‘Ó瘅[ÃÄ[ƒ!Æ xxð\žS-$8•<„]ʯtÈëÉNeø{¨Uvqðú«OË­²Ìs {˜ˆõú7Ы+oáwŒc¤`Þ*9ªÈØ9°$dyÄà PŸê˜G]¬Ž°´Ï³ŠrV©¬Ð`È껌󆡬‹ÆÑ싦ñÜÛ 6Ñ>Ç(´+¸¶9fKÍÇØ@näÝ4NܲHàÏ,³ðg¶YL¼_# o4w÷ݦ¦øõ|’Q 7Îßq) Æ0±†1 ?"ÈÝ£zùÞ «pktâ× Üsð˜zt¶W‰NÞ+° êÑ ø9¸§ùdô¢yŠšå >×7xáGÄÎŒÙÂ?7Ѝ)N™¤oj>˜"&ÖqÉp‡Œ kR8œXnn³*ëi‡³BdpN°y–z6Ó¥$äú4Ôª¿¶¹¬Ï[,’KÍÞ›(lœÆ$œ¬54VxšVäU2ÊÝrB–[A-ñkëØŸ×ùÐcë=…W7û*BLb2ü2âçaZü¯nYušW…+pIp'ZFùçe- ãâ +J/øü–¢ž~0†|2HŒMŽI¶/²±Gk†/»Í¾ì [óØ,‡–Uœ¥`U1 6cgñtgn9ýhñï¹Qm ®¸>}ð٦׾õ¦ŽO[|®O…Ës)‡Ï‘3¬s¸Äã%öÓn}‡ü5äšKE-ÿs_Ðøiä­¾À»Ê¥ìÊ j¢UFÎûïƒæ?÷{¼‹,„w‡û¸Ãç}9¶|ÜðWéˆC9&aogU0ªOV_¾=Zn¬œÁwȉù‡b®[K©8Yg¢Ý <¬¶5ÓTxß®$ ÿÜgÒÜŠŠp—›z¤cV/°«Ž4ô²SÐ{.74|Zmhè…4À=É[ƒU&Iñ6)æ’52ÜÁsŠÁ¹†³Bx0ûl~È¿¸?RxÍ)Ã¥Úd¤4‡Œ–{º$ }Ùh~÷y£¡9 çT»•ŒbP.y#Õ"i$ØdÂ*‡”]â˜#¦8¥Ô, çi15íXÍÇZ­ÇRȲkXP›¢–äT´ÔXçðC 5óP‚OÜB=2Šp‘v)-ü]ÖÎ ,Ä0Š|ê’ÒŸ—'‰ »ÃÕa›w]ræÉrC½KWË0I(Æib’]Á94 €>ÛQÒV7G0ϧ!@®ç•UØ]É©°ËXÅ–yj¦EJN·É¨Ù[cØ0Ë<-; OVXèÍÞœKÆñâÛ–ø³Ý1Äc—‚˜a<µ3ËÊ_êÇúÁûºdôŠÝaè]Ã$Ä9÷÷³•… {ªmih9hPïéÀ[ ½‹µL—Їø¼Aƒ}^§Bý Ԣϛò§ú&¶žµÒƒn3 +?o4½>]ãPm’Êg¦É¢[æ)HÈÞHécÛ*ýxGSÃöh舣å#ÈJNyu¬U‚ŠÜëƒ=XlÏüyóäULÊq(øÅbf=ìÙ·}ÔôN)£Ò''d»%Ø8àZ®áVk8ÀSjþÇÀ¯?Yš&!÷NAÎú´+lô­Ð+*jQp-rv™IÊ«ÎÅõ©H¸…Ñ«Ý×O6œ£ .)øã]&—š$ˆ`wÏ2˜¤ïdIÀ1LSJ6æ½–á“M.׫£—›fñ û"bÜá<%Ó·ÂÀüeæÕÿ±ÏdZæ‘™~ 0*Ò§Â$üýêü£Ž>Ñ ¨Þ`­H &.!xOŸMŽN4NAyU„lßa—ñ*¬³Œã *rµ7ÿÒÞHÙ£EbÞÇURÉçu"ôH+þc‹C9]åàc¢Ýrn…CJÍ3‹‰)6)§Ì6Ï*ï_q¢ã¡ÿæ9«d«·ìe•àÓ1 ^=åÑ57X¥m&I#`"ù¤„y‚‘¶?ˆ _x“wc³·ä†sž‘r ð:Vá„S´Ð…~¨y ¹^ë–OFÉqÌSŠ÷Eød3È7Y=°aÅÞ,+Ï0[ߢwÆU A­Ò † t¦UÊ€ØÕ5XßJC½qŽU¼5{a˜¥¤[þ¾w‹œêU’³r!È=å.)=h-Ö£’ͳ€‡¥´¼ý1L˜-x-lŽäU³`‡3ÔlÃ8î…WÁ…ÔÜ*À/¶>ÞØë‡>´KàO=Êê ›ÈÀ2 |¤(°Ä'-³«CÅÙçÊ_ii—”YbÃEÔñÈ_vÛÅ®EuwñèP‚Ët«y¸£¥Æ†“õú—v¥XÙ’ñ»âeêЛå.¹€°1¿ "¤ç[g™%'@Ç‹5̾ªPycÞÅiFÌÙí^X2X›ÂÕÞ‚ßL¢ªè€š<Öññ§ËÜ—M>ç˶@x(¥m‘üŸãaŒ"l¤3x¾_E«p+™˜O+|>ð°V×eUÒJ¼+ÍïŽW›^èXˆ€šéU¢â Õ¡ÖzI`¡¡öx­©Ý<n ë×¹«S¸ÔUx{©³øÊ¡˜öqSÀ™kɼ¶7Y™t´LGü±Î!ÿµJCú¤„ÊõHÚ =æ&;ûÒ?>& £–ë©¥^56Ù0QrÓ6ŠñjA–ÐsоE|ÿŸ–Qf“£â,³Ÿ—i•'KÁðäT°þ©€gsÍ3„ »„œýeUíÓT'Ú¥e¬sÐGŸ‡ý±Å£-ñ*hÛ8UÇû(ŧkt¸GÇBœ;”ñávu-Ñ"¯Åš'Y™ûøHycêãXqˆk—f™&¦YåÜò}i bKTSnq¡9 f™ÁÆ®÷–ßÙ†?¯…tjkHsÔŒƒ9VMÖ +ÖýäMñªÑ­­£™¦«"õoó/ÙfÉ9~] éd½†g +Î'žcÙuõ÷b7ø\±i +µ;PrpFˆ[΂šc¹c˜ÅŒ\·BH´‰é¹>­À9K=FDÆ0ÏÝ2Ô¯ÌÄÄÍÈÝAèC›âUb]rTŠERgšÁ'ÚU\·®©Î$ÆÄoöå^uHˆi £À*ÂÅýµÌ!ÿ±ó²ß¹È§ÌR3Ü‹ 5®Å–W×n}×,Á§,½Ë»¿ÞWëSs‰æaÕÒ{ìÃ83Ç6'¬¶ÍaÓüLž}¸Þ½6ËKÿiœ}võ$ü`Š’2ß’{äàTš7Ž!"³ØT·ŸëÔólJZ¾KUÇö.54Å”Lã4>þdCXw¼&øy4†Šòªˆn%5ß¿ÀAo¾šÒÔ1Žø€=‰9^]u¼[]dà§Ù>fS2³Ð3= +Ò)c@¼J|ÚJgÞï+¯‹®Þ¸´€=BœSUO÷¨j‰5ŸâVƒÜ¬§#| Ø,ëü¹°l@Ϫþ´ÒÒá]h{{(å‚ÏÇCŸ«Ù=Û1_·;\ðp£7ùwXoà'Íæ÷5ôwÀZ8û £Ì9CÉrÌ ã¬b$à$l‚O)$yÔ-/Í"Jªi ¶ØžwiíMÁ%ï“ý*j¡hOì!>Ä>Ë«hk(~5 z8…ˆX}—úËJgʯv¼Úòîh¥®Ö¥f@r.Æ««çÜK?ÒQ +]’ʯš\`=èÑñð§[­C@¯_9êyn}s³KÆ;¥ä,ç<8~*:Ô5‡üçFmëÿî3ÙGzTŽi†”½9DŠÙ Ǻu­]6-²Y¦SA¯ü¸Æmøk›ÇuÍÓ‹,S€g1Ñ"Ô£¡•ó£[<y°3 +ÚÃìÍ3«=úÚúSPë^->Í­&¤~=ðy¥–ûeUÈ=Yâáb\ÂÎpù­½’kÖÑʧ:ëóûeSÈÿ²%¯²Ñ.u³°P—á–abü*ZÁ±Ž €zökYåÀ9§+|Ê銀â×1 .%&É©b–:B´KÕȶÍ7Q=J~U@ÇÃ8f;åŒB¯šQбÇzÉ ú]ßue†ýøßúƤ3>- h<æQq0«Â:Ç*²Nó ‡“¤äõ·Ù—à³Ú&1‘ÞyzžpêÉ"‡r¼*`øW8X O¥n­È§Çe;%OówL“¥w|€Žõõ£…WÝV¥pµ/ÿúÖ`Þ]«}¢§”ž,Þš´>†~z ¦åVkt)8•Ë]Û]9׎ԄœzV•OE©0NU¥l‚c6NˆµÊêÉN9¯Ò8…KœoJ;?ÍOüÚ*"'ðË€oMÆ™ÅÄêy¸€ŽƒtÊÉy†Ñ¼{ûC¹WmbØ“£Eêh©­Û·ÐÔàRq‘^ eið÷A]éHåN 4Á+GV¢çïÿÿì½÷{\×u(úÛË/HîÍçï‹“Ü› …‰dÐ9ûtQ²E‚UÀ"vŠ`ˆ2À`PØD5˱ì8qlK‘­bQI‰½Q"Õ(J{ïŠón¾÷_¼·ÊÞgN3”  ÁÅsöÙkïµW_k¯ÍÖŸÛóäªãpæ¾ÜzﻫçüÝŸÏýûó›–x—÷,qíÀ`þô¶em_¬ë®?¹ieÛñ ÏäNl~º÷ðš–îùùÔ¿ÜýÓ©¾û…©ß…³<ûʾ'Ÿ¾°wyþÊûËû/í{ö Û¾öÑ@îòÝK޼ÑQwrÓ`ÓùÝ«W\Bz>°âÙ“›sØmñ•ƒÏ½tõàÊgnìëù|í’‡öý|Ö?^ÞÖ¼hõów¯xþÜŽ®›žì<·cõàù«V^}ùÊ?|ºêŸá¤N/=½%÷ÄCË—Ÿß×Ûrj{ç,ÐU;µ±cú•ý¹¦ï÷¶_Ýß¹èÜÖÌôO^Yp÷—k›ôÕ¡•ÏŸÚÜ9ëàoçŒ;ôÒ´<üÚâûÇv°?W]ÚõÜ g·=ýÜQ ¥Óï-ë¿öé3/½.ź“ײõ¾ûù%µà¬^ÚÑ9ÿÜöî¥çwu5^ÓdßÜ=óÌöÜÂ/ß\2þÀ/§þõŽø<3ëÒ®ÖG.ìHO:òôêîþÖëûV-»ºoõÊ“[ss÷¿4ÿ¶ýóÃÿsËÓ÷ÿßüë俼ñ^_櫃+VÜ8´bù¥½½X¿|aSϼ ›:êO®_ >{m^íáWÞsl}Û„³Ûºg~õÁ`þ«ƒË¯ìh;·ëækÇÞmŸ| +tó+{Wä/ï]Ñ{e/Ð'ضÀWÛOÂ~ŸzwéÃç6/­?³©sæñ=3?ú}óï¿4ßþâõ扗÷dyk¾ùÁÌüÇÏð®ïuOßðTöó·z¦úÕ’ñgÞZ:ùô[™?þÍìš ƒæw>~qÚ¸K»ûÛ.½·ú™s{Ÿ}þĶ•GÞm™øñsĉwš;þvã½ÇÞ^â}¹®±î𛩺/7­ÈœØºª÷žUW,ïÅÆC/-пššð%èÎg·.…3ºtÚçëÒ÷{7;õòÎÜâË;;gŸx7õÃýÿúÈw÷ÿⱿ9¶v±wnkçã'·.o=úNßìOß=ùÀ‹KïÛûó…㎾ÖrßþŸOÿÇ-«'ÿÍÎç&ç$èÜWv÷§OmÉÍþàw jöÿ[ý¸s›&]ÙÓ:õØ;­~¹®}Ú© ¹y§7®l=½õÇÏžÙÖßtôí¦ûöýü±¿ZÛgýñ¿›gbÿ¡s;s §¶v-ûñáÏßìþÙ«Ëæú÷ŒsüíEÚ…]K~t~gÛcw¶ŸÞså½'WÝðôÙ=Ë»¼Ó×ðñïÚþìµ–ñGß^‚þ>ôY=xlKëä«û{®¾ÿÔO.ìì>·§gÑÅ}ƒÙ3[šNlè™s|]û”£o·L8±¹ùÁKûò™kŸþ·Ë‡þùÍÏ6d?±¹óñó;s©‹;sK޾‘š°÷3ÅöêpxMú±“›Ÿö؆§û÷þ:=éýß.r¿úä™OïèOã=²×v‚]²³qèv3ÏïXzqßsÿzyßêçNmn{ôèºÅÎço-2Ž®[rßé-Kî»z`éÜëö´~¹i±sdíbtùžk‡žù%ö˜¹¼ ã™ÇOmZ:åÚû=Í×?\võ£§~q|wËáõ}³AŸ™}~S÷ÌSo-¿çù‰ß}gåýÿóƒ—¿ë‹w[AÏíÿÉë™·??ó/½´püѵK¦\ß»¼çÊÞÎ9§6€òæbýÂöÞWv®È^Ù³zÅÉí=ó÷¿œ2vÿjÉ={9ûnØÏûþða.sýý\êÚ|ëù¹×ö<ûãK[Wv]ØÜ5íèó¾ÿá¯çŒ;òòãôṳ́ó›[ê®íî^pe__ëÅ]}M—ö ,½:ß™-m{§áGv¤½¼§s.œÉ—@×?»u õå:°oÛPsäwOÜõéoŸ¸ èrØ.sÎïìOÛÑ×€ñÇ£k›ê`?¶âÌ#o^üvvÊѵù9g7>Ù…5oûÿeÞßm\õ蟭é0þøèk ܯ€‡^õsgv>óÔ¡5ùŸ¿“ŸsfÛòìyÐO@™wä÷~cnÍ‘µ ÷Ÿßûì çö>ó“ã[ó©s;Û®\òÅ›=SÏoHÝÜ5ã‹·i_®[bØØRwÎÞ¹-ݳOohyàÄ»-“¿¾äþó›;f¢Ÿçäú…ÎQGßé}üó·ûg^Ó7ýãÿH‹ý?[ø÷oLú“·ó¾óá/g}ïòÎÌÔ«{{ŸÜ´ô‘#k[î‡ý{âì–ôÃÇ×/´½üÄÝŸ½Úh{';ý2Ø;v<ýô‰-ƒÍÿ¾í‡‡þ£ÑùäåEã/lh›|qkû´“ ·^ƒ¹¾ÍãÏnê]øùë¹Ç·ÿxÑß[Û<캖«ï÷¤¯íïi;½¹éÁÚ¦œßÙ½ðÌ®ôÙÝÏÿâËwW¶¿÷bÚýè•%Æço,0ÏïÌ̼ò^6uå@¶íÜ®®E‡§~úæï¾eùã[s ¯i4¾Õäy7Si_ÇÂ?|Ò×ÿÕ‡ƒOžÜ‘ëüls{=ö}„sø4œÛEþÇÂ{öüËÌšC/Ï»ÿÜfЛ¶.øèµæ ;9÷®ßh~øúÇ?ÝpfûòîO^iþá'/ιûø[s¾6Ó#÷öen|üÔ/.íÈòÆ"íóu-ŸÞžï¼¸7×|ìÝÅÞ±‹Á¶o}äó ‹Í/Ö7Þíƒå+Á6Z~fgï¢ó»r-×>Xye¾ýâÖÖéç¶·N;½+×tlw_êøŽþ¦ã³ùfÚûð׳ÆíýécÿôÞ‹ó'{þä¶.ÌAY|àÅ–{7=¿àoOîè¾vhÕ3—w¶^ÚÞ=÷ì;m“®íêiüê½Áž«»òK.ïîm8¶¹£þø¦-_®²ä)ÐÕ’{/î[tß•mÓ®È6\Ý׿ôÚî§Ÿ9»¡{ÖÙõç7ææ^Ü0ØxfÝÒÇ>úÍÔضZûÓC?¤ú̦̣—÷õg®½÷äê‹;{úæí½ßLþóoÏþÁÅm­^ÛݳðêÞÖ3[óOœÄú8'§`>§Ö7ºGßš|»ícë;>¹¹göÅÝ+s`#ç.îìo:µ±sÊ¡—ÿàøú̃—võ·\Úµ¬}çÏæýÍŽçRßÿø7ýÓN¾ÕúêÒiŸ½>ýGßœç{wYãçëúçžß¶ºÿüö§W|úfÏÐz¯¸ú~îÊû} —åNîèYüþï–èÇÖ ,øðwýs7>9ó¯>})uÿEÔñ6u<~eooåãå½퟿‘¹ïÄúLÝ¥]}© Ûû›ÐV?¶¦É=òÚ5`£L<ú ØEÇ7®h9üFÏ#¼80å£ßõÍ:õNnÁ©õͶýxüŸ~eú]_¬Y¬ŸÞÚ5çÌöUý_¬Y:éÄÚžyç7´žßÔßôѯ½7ú&þõº“þöào—Žÿpørk_Ñ·[Øû³ÇÿöìÆ¶‡/ïîš{uvñõ÷zR_¾½øÝ/LûÛƒ¿ivÎï^Ñá½e¹ ûºžÝÒú0¬é½gßmÁ>Ž‹¿9yyÏSÏ}'7ûÐ+™‚×zjCóç¶6è^ƒÇ·tN;¶©µîìÎΙvôÌ»tÞ¹ §v,¾ïËw{÷æ3×=÷ÈáUÇ7´?rmÿ@÷Wô÷œßÒ6ý½fÝýÉ/§TüÕ£}bCêÁÿühÕ _}¼ú_NoÉ/üüÍöG`¿²³û‰ Û»_ßøðgkf9Ÿ¿™ºïÄæöé—ß[¹úÚûO¿pôž£°n'6µM½¼/—::éÉ·—v¶Ï>¿7ßtv__ó…ýÙK°§g¶÷,:µ93ýêÁ|?èŠ+®ì\rý@Ǽc;ýøõ¥÷·÷‰s;úÛ¯}ðô¿\>0Ø{xúë2½Û9äzÃ…}ýïýv¡qnSϜ۟Ì_Ý2ØtôB˜ã¼‹Û[êÎïlúÑgo=ñýó ŸŽmè™ùåúì£'6vÖu0×òç{¿ú¤«éò¾Ž¹GÖ4XŸ¾ÜP{f}÷̳ï4œXÛþÈÉwš'îÿå´¿Ù´râw>ùÕœ»A~âÆ˜÷Ž>°;úS'· 4œÙÒ3çÊîÎg7Ï×No˜õ½“ï6x'ÞÍN9½eYóÑ }`¯d§~cþ÷7?=á?úõ¼q'Þº¸>à…+®îË6€ý:óêþå¹+{»Îmn}ø“Wû‡÷óÐw?û]‹}zíªæÓŸ<½myÛ”©ë:§^ØÔŸ¾´ó™§ÁVj9º¦Á<¶¶u‰wûæÞ8øì¿_?¸úŸ/ÝݳàâÞž…—ÐûúÊÖÜ’3ï¶×þØuë–>ú‡ƒËWß•wõ@¾íÚ½­g¶uÏ9½1?ïò.°«7·=üéïfÿã…--õÿ¹ÕòKÛVd¿¶Ä9òûywcÛ'¯eîÿôõÜÃ'6¬jûèÍÜ”ƒ¯¶:ÇÖ¶OþòͶ¿ÚŸÏü?‡ûoèë:üäÄ;]õg7­î½¼ã©eý¶ÍÙ¸zîÿZ“ì; KŠË;Ÿì»ºÕÊ {Û¯kðÞ‹ ôsè'[ïðšÅÆÇ¯=ñ½O^ÿý#o4Ü{y÷êg/ìÿņó{–çOlèxùÈåm½‹N¯Bûì•Gþ׿¬ûØC÷Ý<íü®A °«w.ï>¶¡ýÑ“›;¦]Ø5ØuýЪg¯Zý³ `;mŽÿbm¦îüŽe™ó»úš¼´ðûçv÷µþ×'ËŸúÃÁðË®ÿçà²e7>èiC»ó³·šœOßl{àýÿh~ÑñØÅ­½©¯öµÏøïƒÙ¦ÿþ8Ûrq×’Iüzú_¿ÿb£~z{ÿÒSÛ:>þm“ñΪ‡¾ûj·õ'þ}Ví…í¹Ô~´|õ>\yaWÏBì)puû÷zÁ6{è¥Öø£íOŽÿ‹3ëSuøh ÿÆ'ËVÛÐüÈ¿ýöö÷ß8òÓm8òÔ‹g··ÎÙ2¨ÿÉÆå¿óæ/mêšznGo¬¯{ôíìô«ï fo|owÊ¥s~øÑKüݯšÿ™ùO'Ö¶þèÚö¾%×vô.¼¶;·èÊŽî¹Wvµ>|iWê ۚ§kÎ'¿o½÷³×ûfÜøüª«ï-ïùêÃ\륃mÓo]díù×éß=öZfÒÕí«z>x9}ÿ[Ë&üÅÅ­(W²SÏ®ë}üȾ«û2Ó.ín}øøºæ{O¬ÏNÞµê<èÕç6·M:ôrÝŸøÕ‚ýÏmÏ=9¨è_ÿl]çä_oõ¿Ú>á?÷åÿßzZ¯ìk}üø¦?øtÍC|Nÿêà²åWövx§uÒ¡§UöêŒq6d§_ß±¢ë꾕}Ç·ö̺°kyÇÕ}ϽpõÀ3?=³3ßtdÍÜ»>ùíŒêëÒ?º¼seîÆ«raWó…ÝýÍ_}¸êÙ+ûzS§×·üè£ß<>nãj«jÏOüÇA‡¹±¯§é¿`ýOíè˜výÐ@îŸ.êêþ•ÁÖ¾¸£kîkž¨ý}Nÿ£Ý?ø¿¯îì]ròíìc`ÇüÓ§¯Ìúû/ßnô@ÏX|cϪüWû–çŽm\úȧo5;g¶ ¶^Þ=¸ôâÎî9g¶tÔüêw}òÊœq×÷·M¹±? g5·}ë'@_;³±ï‰ [ú]Þ ¼{gû”³Ûº@ïï™y}ߊþëûW ^¹ÿùú¥žÚÒ×pa×@ëõ÷V^ø©}é/7¶?Šy/§ßí;¿ëÑ/ß\¨}ôÒôÿýÉËóï¾²¿·ù«V>uõધ.îì>ñÖmOõÜùdï¥COÿìê¡ÕÏŸéóõ©{®krÏo_Ù}q÷³?> ¶ã¡×ÒÞ¹ÝO®¼þÑÊgNnZ4aûSuúù« ~pjKƒ{z{Ëd\ïƒk:Üö¯íæçkŸYvõÀO^¹vïÙsïùüõÇþúÀ¯'þ)Ø‚÷_Ù³bÙõŸù÷÷_iþÑšGÿì‹7s³ÁV]þß?õoÿùAîØÚEÎg¯Ï¯9òf£qd9ìUæã×Ò÷~„=~ßøàµ½+Vþ×Á«®‚ wfkÓ¤½¿œüW›ž¹ÿOÏmo_òÕ‘§_¾rp0þSk3õ ;ýøGVýüÆ|ûÕ]¹E°õüºñÇ7dg]½èà¯gþý½úÿµó'ÿòÈ«³µÿþ$›þÿÆÈÏ’‘žÀ7õ“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri? "•ö“ Ri?KNŒ‘Ÿ©ÕcäçÇ{°«yRc¾±jÞÃUã&íhŒ*e¢Ué:ÄmyL’pÊ( §T +O(YÓi/ÄÚG‚ÂJ{íC DD¯dݳÝ(£¢wd/WsD¬ºüôÆÌPÊýèœc2 ¡lm ÒEgc.“oëLçKߢo»=vtù^ñÑâAž’ε¦q%GŸJT.»Ã[rçæ‘$}3Ÿ22A*Ûuõm*?›9VuÙlÇÄ\:½¼äGå&Xéc.ÁÊ*¡1›_¥×–\ÑžklÎô•ÎOÔãÃoŒM›tLå‹•ŽHs鈌WlÎt4–ÏVè”l®»-Û‘m-YWª³e r·1W08fxZé•> OKxÚ×0oÇJþkSÉaÑÂËÊ(ö«p^V^AP9Ìl„ŽühMßm*]ƒ-‡¤tÚªðS¢•®^ŽÎ^¥_¥ë4%gÁ']"Ø%]î°dÍ]†H· lOyU%#TNÒT2>‰°­Ü½©tYT†T­øLœ%GPêÚ»ºÒ3ÓéT9î‚ø‹ÃÈ+9œ|»HÆ_1q4)ÓÛÝјJw¦»òS»GŸLÒªÕÿªc¿ê¡_KÝVú­tµB=>üŒ¥d×Ш_¥3ýJ_åõ ¬`ñÕÙC•œŠr[¶Æ±¾:¬PRz•ÈöšJ6qGÍá/ýÈTúá/yo*ýð—^<<^*åôue»Jv¿4¦R}}CÇØ |eøÝœC¨>/'^OUºw“Ÿþrˆ’I3°gêóSiþ¥n[ø­á­w 4.+y÷€Ñçse ~¾r½¹ùléºGv$)ysšKï9ÅÏŽ€'ºœ<×–LGG9¹É•,ìZrÙÎÒ‘¡‡‡™\šÌú’^ss&Ÿé/ƒ×ù/Œ@1bWº±är¡TcGjJ¶ô’À #d™4ve:ËÐîPÊènW㎕´™T’6S©v^é[“¤ÍÜási3eÐV…Ÿ’±KdéÔWñþž’ƒ$IâL»$q&Iœ¹é.•¬ŽŽÄ™Ô˜Kœ;â¶ô½©taT†XMg’Ä™aGc/qFÿ¶$ΤÆ\âLL¿ÒÅW’834>IâÌ× °1—8SÆ‘©ôß$ÎܡęÑ"=é?eÐi¹'n„¶r7+,#Û.ÙŒÑÛÞcôìÅ›ÇÈÎaÌ´ŒœðHÃ$jzÒPž¯ìŠÜVÊ2”îÄ%Í’Æd7ï¤=OÂßn›¿ÙßfþV2ò Kø[ÂßF{0€D}KØ[¥³·4jÂÝîV>wK”·„»%Ü-ánc»ÃF å…ûÇ“+ùo_”09De"çÛ|ˆJF>9DÉ! +ãkÕVÉ©ŒöŒ2²o »Zö-ºI XáôÌ`ºczG㲆òê1ÇË=i2]Íé–L×—£“÷ºÓùIe´Ñ¼1ü5’c¬çN‰ì2i¸3DBé5ÜÑK§ÇÊoT“Kwf‡jl2ºÕŒáÞ.½ÝØÝ¥T̾Vo—á>SÕúx¡UëüW«†ÿ‡ßáÏñðÕw¼ÂfDÌ–²ÙTŠ*ÕTÆu䣥J` ^+YÎ6UzÁ@âŨx®Êvvg{Á™Ö7Äy}Ü¡¬£Tálá6#m•^B>Ô²î@[:\£/”ìuj/ÄÚG‚ÂJö†¶r}$tí’"‰*ˆˆQÑ;2D(1ˆˆ9ˆeç˜khx;ŠÁè¢eš •.Bs™|[g:_ºZðm¥£'üq[&©B¼y$ñç$þœÄŸ‹ÅŸËëšÄŸ“øs¾#ø$ñç¢$™ÄŸG™$þ<ŠâÏÃx·ÈH¨›Úø²TÏ$æ\q˜ÑâKbÎIÌ9‰9-Z–îèÈ”ºO™Ö¶<ü{M +;t–¼SÑ×*7^ÜlfYMòCï ¿Ø-ùŒõåZ@©*·ðK•»oÍ™––¾Þt]¶ LŠ®Ò%Wì½aGQÎ`¬Iæ±”ïQæÝ»¸*EZ$.¸ÄW).¸rt‘ÄW¡~¸±taqâ‡Küpà‡c‹n|k.îjXzá9&/])7ß±âEgÒ–£ÂEhÒáªÒDhÒáªREè˜ënU®nPéâó¶ êD„Ž5:zÊæ,IW«Û˜ÇÈÎaÌtµúvµ~šÙÖØœøvß;”4.jOɽɒbÿ‘:I%_Ú<W ¦ç Ž­•ŽHÉ×êңÎH¶¥¥7GjÊ¥›Ëb£…ÓÝÑÄéâÓh×¾U6ÂíêhÙÔÛ0*es†' +1zö%1â*܈«Ñ­q¥Òié|Dø·ÇÕ ­äMkK—“væ?>‚&öh­<Üûc–¾?™æ22NåÓÃŽQ9l¢t‹e0qŒ´Q0Ývâþ¨t5Ù+îÒI܉û#q$îÄýñ-Ú—ÄýQáîo‘Ó ì|ciCc1‚*Ù¹0ZÔšÔËîüÐÚ’»á45ö¦Ê¥{úÒ]©ÒëÈ[ÿUåy¶Jܪqp•œËÛÕ×9-•oì/£Ð=øÊ°cÖ’k„owLÍfJ/»à—KÄN}iØ[ ÍÌgò©!=+ÓQÆÆ…ÞMR!é¿4zû/•! +’vECh0#Ô®H«-ùzš|¶tF›T’ÆK¥ZB#Ñx© ³%—í,zx6(é#ÅŠõ×é#5"Þ¤²»)ÝOÒ¬¾\S_ÎQèj,تp»7é‘òm¨NKܰ·Ìã’´QæNÖµ1™ƒV‰ C”Ó†<´2öhtä¡•ŽÏ˜ÍBË…޵ †V«qßɉB£Íaž/цHÜå_Û]žØ€_ƒ&V`b~ÃG'±+0±ǸX²^šXÈ(+pTY%w“F`Éè6#0ÉšJÌÀÑÁ 301¿á£“˜ß,µÔè‰!8ú AkL‚s³ÙæÖ\cé ¬r­À26htXåð‰1kŽÝžcì*²ÊÏ+¼ü§d;6é°‘46D’#Ì·ïh‡Ù­;ưGˆ§}cýB†;Ù»œ»èGËq) ©JW Z:ÀRª!”îmêhLµ¯fP¶»1•É/»· ç~o~YGé®aùôˆ©‡ÍÑw¤Æ¾8*ï|U¸<ê¥Þ˜uc‰e|NN‰Ç{”y¼+…í ´•Q ß!oI¯)•v(úÚðûúÊcå3SeÈÛÐ;ÃŽZÉé8½}¹–ÆTº<ÜÂ/Uî¾É{aë²]½ùÆ¡îë ¾Ñ÷†Å2o´-ºÆX2}˽tø›·}+EXèFÉì¦qy¦³¯Œ ‰ÿü°o¯]rï¦tü¥,×màaÇ‹¤îë°5BªÖ¤ qêúr"¦w¨[À$æ õR»It¿ŠÔýÆ´‚tú&Äè±%‹µ¡vg»Òeh²ñ+W[Ws-[]¿˜hO‰ötç´§DyºcÊÓLy”G¯ö4†eïm Vé"8É#O¼ê÷1% ÅöÒI¬}$(¬d®}ˆ'ƒˆè#€Hé;2D›£ "FE#2D~AsD4¬üôÆÌPÚÿèžc2[·\xÅ‹ÎÆ\&ßÖ™.ãúD„V¨ä©pZ:îpZúŽ$"4¡Ã‰W¥KÏÛ²§ :Ö$èèqU'—JV°ftǹãèÙ’;7ÑG¥v,}êÀ¼“}Ì÷÷MnÄKz;ÅQKz;}ísU­Éÿû͇”º‰ô[éû§v✠¯ö™5úd[ùR»ÒE[g# UrgŸÛâŒ#f vdsSJ@¯ÇX®lƒ +bÒR¤âOT͘é)RS²1RéME¦ù*î±ì”­í8ÐIŒû2k 6¡.[ó®tÉzû,¢òc2IBà(à%×äq;ì¯Ò¹„^úÕØ‰>’§j^K:÷P&7æCw^p´¨.9šolêHÏ)Ï«zgØ7š¾>Ýeõu¥fŒ>¦RëTkÕ ¹Jr›< +ÉMO˜Û(¥¶‰#œ¨Bö{ÏÊ5võ¶”~ÛEåP?¢ÀÞû±¨ÃÝŽ~Zé†Ñm–·$ž“Äsr[CÙx::î8o=æÐí1ÍÑ¥i wb·s…Õ¸ èZÃ]ÍþUV²Ò05Û5† ~L5 ž˜nÍtÿ¡jj7aò?Í\ÖÙ”í¨º ¶<;PíÝ]¥UO€ÿÏÀ_ÒU}€à„îªBÒ¼eð—Gá—¥¨6«§T/X¤U7ã;3ªt«Ú©î¬ª¡?ëéÏü%ð'þÑ…ƒã¨3àÿ“á1ì¬2k…© ~免juS³ù÷™ðÔ4øk•Q«[žîV‹ZO³~Š^íðÿ¡FýKGìÙŽª–ªÙU〺ó¡C<®Á©µª…€ÿèüÇ€ÿ#ª÷ÌH7vp:ðúSàVð+°`¸}€¯¦ÁÔœtaÚøͶL£:6}Ä ·Ò†£XkáŠÀ:,,n¦S«™:ì€p±u@@– À^y —“t<Ã3-8†fQëzŽiëð‡,‡z€˜4OxKw‡q5×Âa-að%·V÷4¢ÖµL‘²1…îñ3 _òxpbóÇÍuka*°Ô@ŦæÓÇ=„AžtÝ0P^À: ÝàªÁQZÓ zšÓ€Áu¨WÏDÊÅÅ%à p)×â(,X~xG ­  šŒ*êDÈÁ“®iñu4Øæ9ˆ$l«E C‡ÅÂãl#ZЀ¯ˆ!¥vÕEjph·…dH¸®ºîb': +Äi¸.ò˜‘kjH@mŠBȦ©ÁÜ-XeÜ; |Mû0%AÀÞØ&oxÌuàœ ÎKuäæßœ¾Ö„c˜&ÍD÷L¤„YôaX ÝÖˆ"áeÚ7È–9«.÷8s €™¶Klpî .ñh${„xª± bÖÈɉ®à5w @Ó./-A€âùÏšåðç"S¿ÅŽÃ8Ñ|Â1I›§N u }Pzð`ã™ò€gÀI÷h»á á!‰; ,T-‡ÈÅ€,\f븄†$PÇÀuÂÙêrtÃvc v +ÈÀ@Ìö­óÒ ÷ †yªªèúÄ×0²Òð¶‡iÅÔ<+®&ðØ#êC.,\hr.¥–αá׈¨ŸÖV›@ÀÄ<+0Ȓߊá[LéÈ %(ÀAgD¹íÒÈ(ñ«ÀátÞ: ~Mc%Î'MÙ‡'lúGÛE*DÁFV«ãšX¼åÀ_M:Øšf*•Á#F +ï9•]¿³PŠ#¢‚`D—8góqHàŒL¸ž3ª@‚­ ‘€E† 2À`žyR—PcCo$ÉR8pJˆc ƒ’Ä*"ys-vä Ң胜…¨§:Ìÿ,Éx€)€âF†poë]ŽLõ!dRä÷xÊ&yi„4GúZTxÀb76iå2^„j‰<Ð&Ù‚G‚Iñ—Q[0ø]úBu~']CÀDC4ñ0N]‘íª¿—»øe,%ˆ b!…YmLyŽrVì(E†®‘“E!™kÒS +4äI€²rªF#—•`*‘8BJˆh”âê‹Òet9ú«ŠÅÈ¢q´"©bq«Xp«¿Š¬Y4,ÆA47Q3 †áÒºØä2ÄÁéh“ÍëùÇÝ´™EâUýUE£ZñÈW$È”â}æ°°á8Á§ ²V‘pOê–îh4•e¢±~¢ÔÐiã r{"¦j¿MÒ ûcåÁ%Ä ’Þx.ió§€… ÄBZоâÁ±H4§®xÄ'êG7ŠF–+EªLŽœÈPP‚ÈÙó}²( +¥#Åc§%&€ ²`KF+tÔ>çà¼yçáÃ.³4Sªø8ÿ“AÎUWѲ¥£Â¡Œ€,t‰è’q²iÛò,«Ä¨ò‘Y”È0aÈ`¿`¯kÇE`—=bšþ@$ +zJécÖ²>L> +Ö˜2gE^?–Gs—+ƒƒÊ$ÇÒ9IEg7} g +FW&¾z±5NáJš#Ú°$#“!2üHï ÇxL†xXØ3Š!GŠélËó7ÉK©×Ê=6XlD—ŸrÙ¹ëùqM‰Ëãp LK‰“Ø®ÜRG +´d€Îw« 2ÿ3¤_ ¦MîÛðÝù=µÐ»ƒ|Ã’LÖÖ †“–„h&ê-ìKã°%0ÅœQÍe²ã”'KFQe4y ‘®(R§ˆ†hSÄb"ŽyªªÈúÄ×0ºÐ) +v˜Bî3°9Žb´Xr>™DEq.‚Xœ~€6­&*­¼‹Ñ lU‘Ðm<¼ ’õ¹J¡‘<ÐU¡dÐ4Rl?oø‹E@;‘•±oƒâ«†FR—ã\1-´¶É! ‡½¶(„9 (H¢‘kWJÝ,à‹SCš‰‘U˜öêŠh kb¶åáÑ&] M#Ûa½Íba O§ªŠ±caîh(¹¯+ßFhû«ŠrcÁÞhD˜W%ŒŽ¬‹…µ]©*L¸ˆ@ K|]?>€ÔØL—F’f…ƒžR“œL¹‰Éà‘ÓW:ä¶¢ô%ôC𚳋?Bê=a=—žYe°2lyáÞ¢ÆeP,ý¸H&þj¨ut¤§u8I‹Œz—OùŒDúÈ¥]ä®80±{‡´qX›”u~‰Äàùá‡èÄcŠª°É¨3(3AEœ8Ñ‹âÜ”’B >Š[‘ÌŠ¬+ó–ðÒÇ6'ºœ¤¿ÃܘėAL$$/»–<Øœr“ ¬«Fs/Xf„Ó3bù‘ž¿ +1X,ù¹jäf +ï´ìZU‘éP†‰‰Ùg±*d Ћ@GAÇ£ì`Zq¬ Üm—¥úãQ»1ؽ#fGQ’‰U˜ðêŠg+VÑ\xØRù!ÈtuÊa7p4a„ÙB0£$–pI»`–I͈%oD;ê#¤È)÷1éa|F,Ì"%88?±(J·¶EŠe›Äò0"™ýUÑ\ŠX®E4Ë€ÌT;)/€sÓmiˆ€-{[’ËR±ÕÈoƒç^ºÿ,ò8|0QѤح±d ÈÞZn€HnGr‡NJæ%ÕÞ)Xû.Åë0G¨[åð>Ä6*º™DÙe®Tü‰$д÷5ÙhF q›HÖK,/&’:Ãȩ̈Ñå*!$ibĘñÅ‹¨ñN W—Ê&“#òuÊ>ÄØš.¨Sã©'¨d¨cèDC¸R4Ç´3R ( +”ãúbZqt]°ª„àdÕ˜ÅAª@tOˆÅ’c¢Kc †±I™"\8C¶ýTËÜ.‘ÆpˆâÉ>òUR1…É´M®_!jYIKª(FÈ=i ²/«St+–ÓCÞÎHÚO,1¨hîdÊúdB9ºL7WÈáL±ò Š)±s } Œ˜ìÃÖÿ]§ª) SÒðd,›üƺe +Ç‘NäzÂã§H§+’CK3Š%"E“•R§,Ò­ÇaNr™ìò†ÿ®g˜µÆ´íP”ÜæÓ‹É3.&¡hlš,®HûWìšêØZÝ’©ÄR¡`-ô@ªÃ™¸œ–Æ:šéÌ ô ž¶ÁN@=;8šµÇ +BlF©ªb³ŽâFcOlR.–ÅÉÆ,ƒõœ1–#xT~`Ör¦ÆvðxDò¸ú«ây^¡4°›dPÇñ$*OžhT~\:¤>¡®„äèrp…W€¬7`Ñd¼ÂRSv™%uTŠðk¦ LØ~Ú€)ƒ ÀiÉGdHÇ2OáK‹d•E“΢ii)ÀB¨%r¨ VS$HùÒÝX¢WªªX*X4U,˜LVK7‹®eÿ­(cà´8ìÛëôã®–B‘½W¶,Rޝbt£ûÝ)ÌPá„lXJ]¦äsÜu=–›–ªŠf¯E“ÛÂÉo)L!qé88”Jȉ(Åç ƒKóP*R*‘&…M(\‡/–‹F9)álµh6[$ßö‘¬$WòmTñO¤©vÓé²ñ8 +ä¯.Ÿ O—†J ÇiIÛÀÀ#.¢)ã•uÑ»yYK4[ ·ØÅ(-Z)êmŽG‡†AP¢¨´SºCêª÷Ø$7¸šNtz˜í˜}³(ê)J(A +pUº™ÙŽ Yª\Á¥tl*ȤÐì¶¥ÙÉg믊%¼…Óá"éru±EºEò#žu +pZÒ¢ëÄ=G$Ãàœ*‚Þ`äòEr¢é ±|‡XND +ŽšÌ˜ÑI§¯¶Tº9‰uƒÒó8$Œ©êäá´ä¦Ò0|¢#¡dä‘ô€hþ@‘Áág²*ˆΔ¿†îmòÇŠ$Ö¬û+LªR׼ܬ´ÙpÉφÕ-®W­²"52;\7že—ªŠ§âÉÖ‹ädá[‘¼­XfW,û+…éGìÇ3¤Ë”ÎhÈ|™H>¾ËÙ‰eõD’l(™#œˆKÕ‰‘nO”c$Ù|Ç&ß²P‹‘Câh)⊠»ètyäñsdµ ¹ 8”oÅmb™1²›£†uÄôF/J¼²'\ú+‹IUE ߎª¢ÆqÄ€ŽYÙÈ3N!Wòm» lC¢q63£fhÄC¶«v‰TÄM”Baã(jä ¨]±r\ØB–ÌóñAjÂjœF2«Õåj)òº”M­áék÷Ï¡¿ +`Hæ‚ÝÐN3UÔП•YHÃÞ8™Îò!Cž)5Š(,€‚`1‘Òy”]V‡V@PŠñ„|š±?P§”ÝC’gq`_–ÈT³J<Ï éÐõ…ÇÐQÍ<´`VO + [*ký§üñë‹|éØ ßúIT ê|ÈÙÕA«÷ŸA\MêÏeÊ8EbI1UxK=cúéòÑo±Kri;uÊ+èDÞ Ø4¨\Þ þ,ìÉEf¡QÎ[`^Pÿ¬†­ ?œÎùöòöln¡¸ ¾8PO¢ÍÕmYvÁöhF*­|¹ðœÿ•ú¢ß¦9 uÌ(Å’ªY1‰ògHÃDÝ£>ðz¸&¿)[ª@ì"¾ªS_¨/òÕzÎr¶d.È&Sç$gÙ‚.Ý õÇ„ ’Ȱµ LiÛ ½ë?'?QÿªœŠAÕ±B¢ASátgÌ"ÒHúûOa#)¢MÊf5‚ C.gàEõ”(¬Rô‹rÜØMù<(ßÃpÑXjQOé¼³ °†™R© ½ÈO©áëã_¤i`lƒý‰\ABÁc0Pi‘õ…§ ™ªI¨[TÌ‘&ðžzH^ÿ ÍB§ÞIT +EŽr:;ì}RžªúÂSÊ$%Ú7£0$ÍÌÓL} >þMf#ÔªŠ”LnZ…EMè\=­sŠ]}á9´…\yätU'‚9ë·þ»ê1ÿõE>[Oí؃`È3ˆA8¥äóÑ©÷ŸAd-Æz`ÂÞåÂ[êÃ?ÝÑoñ÷7œD±Cv…Y1ÓeO}á1!³®q|]ÈÚ×ÈRÜL½è?å__䛬%©~¨7iø:TÏÔh ÔG::ú:3]ùtsõ´\cWkºX7Ô  2íæÝQu-Ò4=u6á i²7©‚ªHõKø'êã Gg1ÿÂY5Tr!!5ÑWkâãs‚Õë…_Ô?i…_ÉÂt9Z‚bûÌÄ&X»fwaãæêÖ\cs&Ý•¯6ÅÝ´0®‘¸ã\¯žØJ2ø£S¿P¡pI¦ÈO~ÐwäzOÀq\Öêy±±€õ:åe¡évbªÈİîÕ<èÍ+sz;Q™¯ Ðb"lÃóÐëUê(ÚŒ¶úöÄ8®è·±àH»µA+y\ÌR…¨GÅÆ-{ “¡ç•0äàDÖV'NüR¾®%”/)})("Ðí=Š 4G¡ÛFÉDîjès¶A¼i¦s‡‰\pZI‚oÍ»Lò5¥Ò|"úš[/½ƒŽCt<ºšÃ“)Jö5j#KÎ010áá“WHPÈÚeO‰H=D¨.0ˆ]Ψ“™š¤$RÙÎä…g•޲tGX QºžfT€ejºðð\”14X|†©^+zÊÞŸMøg(¨b}¯OÝÀÿkjZ\é';œØ®!»´HýYcqä¬ðé˜SÈ`írBpJ~P¿q²qèk¢o×ûDMl"5±¹0©«zH& +ø'²³*~†‹œóø9­« +1 ƒ Z§ èýßêªBÌÈgJ…—‹}!6C `RD«žýùä笵ƒÛr{ýx‡fÓTÇÌÒÐãåb&¼óX˜:êßÕSÆ2î…ÅSfFtÙÆ5C¼õq ·‡<¼W.úãnoÆ5t¡šÐ…7ïÞܶ 8¢Æäô\6•îí­ž‘NåÁ”츹-©•mKRóWlñéÚº%o¹ÜP.l²¹ *¥ÂSÝ`-ɹ;éÃr¹Î–F­ ˽E$ ®Š šåCê B} ¡a-«0l@sQ5“ÀßiòjÄ€ŽL¬ã9D×£þ¦Šy™z9ºN«MKö÷Œ>€ùžæð¢<ãÜã"ꉎiÛ®¡™VɃÙæÁÂ×˦|£c^/wzÊ5L˜ŽëxÛ£¥ŽâaA€Ã_¦¡0´a =”1†!NÛñŠ«)å®–«Qê¥‚Õ èÉ1¹Íc"ÆÌ9aDoãˆ|Ý¡¼› s;¤ß [šV@P$T^•+3bb[q¹àÝ]­ÒsƒôŽ…Åcm“‹½ÄuÇõ\V*×=×,LO3Ⱥq-ÜMLi‘PÜ=ìÙí +p»l7ñ¦š[7×–õ‚þq+ÊœjüÃ[òpûÔcMEQö„]S£Œá3¸™moZvé£9žyV7®ld}öySƒ‹”½1èƒTH—_hÄ'nE"a@M€ê‚cÔKs:¶LyÖü790ŠTb{¶‚Ðu®:&Cƒÿü$8! ¤#Ô  +ê@‘fA»BþF“‡„ʳ +WgN6Š) ïhÎj¼Àà:ÔE&`”«£7ÉgG­”¨å‰Æ š]“Ь +í!š ±] €j +°ØNFǪÚÕºcU¤ 8#ÓÔæé†ß ¿2ä±â& öI)rß"î²AM{uÌ­äÖô.õjEÖ`޲\[—"¿˜"Ë­}°DȤÚ%ô :6WÞ™-0¿ƒb·Ø±^3ÑIîZØ_‹j,*Q3°³‹ôcQÏ ê›aÈþ‡˜v€ÓFÁ§qaeŠÚn cð AL°¨‹5òÂj3¬Æ$1ÛrícM µ!p®,Æ€4ÖþaA¬åCÞAIÔ:Ÿ+¢4 û\èç¦|®h§UsM®à$|aòæJbçi*¤£ÛÄ<ëtùƒJ§V5ÅH¨3:´CSzŽ†ã² ›;¸ËæxFüe)Þà``¨žCì bqúƘŽê€¥sþœ¬¯00OÚåk' 9˜ +/ ¨lN‰X˜![_Z¦Ç^CY*O·3z2ù“:`>;y¾ C¨Ö{W®ÀÆc‰=®‘Aë¡>ôI=~wM¼»pGî̶ÆîôÄŽtW3œ±¶G&ñÁºkB}}ч¦4æSm³²Ó-Ùœ<„w=vÓá +'õ.¬«À <;qâ„Tª¯sF6O—´Ž´^kxõà”)¸”½I÷QtY¥KmÏ5ymµRñ°æPŸÉz,,G¶w5ã“„­'©ø +%=ÃL†æñ­$²I• ç°å7Ý'bã(@`”DƒMG\ì Ž¹ŽÔH{C¸”Tý?¶_ãúZlCV-(—.¥;3Rxu¨° º„»¡R}¦nÑå.”¿…å·ØN;9›T ‚-ÿpQ¨2—Ê… Í…± ²ì)Ë +Û-!€*ÿ¹n¦î ˆÛ]bLÀ4¨Ä”î¶À&”΋µ¨x‹ +$Ûq©¯‹+\5âXηRC| endstream endobj 24 0 obj <>stream +À±ä1‚G*¶Å¤+nÑ‹ÃS£š jÔBmv°ÒBØò·,°°_7ŒìQkQ:pfð[؆ƒRY°zƒò4Q2É*0³Mç„|#.Ÿgq]£)ä)r,Y­‡Ÿ@.vJäZ(¯û£ÛZ)‹6Lxxˆ°êÚ NÊD@.¦Ç`c!<ö®‹í7\¾.KM¾æÉ4÷“ªÁ ¤ÄÜg‘ª%‘(L¬ÂK²[ì™'û‘"HÄÜHpK4¬GÑq‰9•U£5ÃEÔL[ã‚uê»L+-¹ðh™'Ö)¸(M•15bãKVìávsÏS[ör[H]·¹•´+SØqÙd#*ëg(˜+¼€2LÐ1a‚5|5Ë a‚‹ˆ‘ù:,¬ò`_pÁðO–¶‚_P_wØ8ê5‘¬LÝÐ¥Š(Û€ YaÖ²&¢×ÊáX§ +7µ_v™؆]èúÅ´H±r•îKÄH‰²{>õóv¹ÌDÇìbIŠ0"w¤“Mé0ËÎ޶ŽNuq_GP‰L)Ü-䨆“…þ9Ê §›Û<“kŠÇ–½1šJ^x‰¨;2D\T::÷â‰Q’"uù N“À “ËØ+¿+pãt²TÊF7ImÑéJ{V5¸Ì•ozb +XG™Š Ls‚¢â…u¬² Þ 4a. NÖti”Ey½Ta†ˆ ºa‚˯©7ˆ­“ª¤Sý?R²o”Sh*¢×€œ²•½á`g'\w**´Q-P àÚÜWÇa²eÓŒoWá&yX{ݽS}õæÄämnûR#u9¼pZW]¹e”jômëÔý›fÒ _oˆäê÷Ãt“d±i¨ýq]:pÔÒ‡Ii©K:tÙšƒ +¸u‹µy )îpME”ÜŠÍ1Y#þíš û¸R­ôøêX±‚iÑ㦧t‡" gdz\‰-«#t*qä`|eñ ®AF¿ åàÑð‚Rº—Pö” R’ j|.™™žêä¯S‘²ÌÅ¡®:XŽfzRt¦AOæèŽÎê›…e£lRwdüˆ£I÷/j;†&ÍK*…DˆØÿúÙ¡JƒÂmÙYšì.6£hDT:j¼ž,ÃS +2€œR„)¶^D¦L’į ÛH¨ÀzLŽTíoÄ<î ˆgž\¥$ú©ñ(6™´há„ÞÙ²ï*'I¬¹¶dˆ@Ë”3¡i®!?Ä÷<.!#§{² 6ÊVÉÔŽQÜ[žË’iY.¿š¼iAÞX|ßfUcÝÁిɽAlĮ˭ÃdG´(мcýÃ!H‹H‚”‡áe9¬áaÖ¿!¸=œÜ4€™W™ÜgRÇZtÖÞmê˜Éõ˜x4MÝŸA]! ê½€G\àm¨ÞX.•¹R¹«N5ÐTcLm؈°aó͸.Qœ†ý¼•n’`xe¹à[X{…o‘ñnñåX®á±È'E'€L)빈TVî¿l’}`øw~ ¾÷ƒ, +V‹pÉP'Ø@Ña«ÔÅReœÝA¾&›<ÄŽë*¦ãfþ-’¸Qt+oÊ"}Þ3„ßòŒiQµ7]v#¡ áë65‹k9d3)ê¤o«“â_–ȘDp@\,‰m!ï §ÏÏò=ƒm"$êwI=õuy‹¼g[T5ªétÿ†N]‘øþ Ýò$}ÂöÓ…åÑ*²¦;"Fd-›TÔhˆÑc‡®I¦n…†¢=l&Ã~é©A%S#öè°¥Äy5HV`ù3.VøùNj¦DtjJOõT¤ÆÜM7Ê Î |S +ˇ»ja¿!Á æ¹éõû¢¶^Ñ(™ìªõ(Ë{Ò9aìr›542¸_­”s¤ßXÈIp ©Íµ'/Aen‚Dº»ǺpGÀRyVþWÿªoé€õ¨Ñ[JÞÔl`ùº¼7ϪE÷LÊ; ¾x§ZÈ{K˜¹oöp„4vYÏ­ ¾n}Ø|{ˆé(e€Z=“Ú`ÓÆR¯o¶Sty3æ}3ÿñ„ŸšG Ö`5¦l˜E¼X—åe*ä°0Éâ†æ±xÆŠ ìàßâ³Ö +KŠÉ!JÏ(n‹Éšhg;æm®LwØJG§w&’å¿ìšg Õ´2ƺf{J8)ß<_ƒ.Ï2¹™Yú«&/ìg&@½úØ=¯Í\‹zãòÒ»|·9èånPsòÐ3Ât¹è öqS»Z2¤i^&_­I.z¥Íb½?ùè]º€/q$‹Í<ò·Ó‘—Þu +WÛ–Pp{X:e®I­ ,:GäJqÐA+¸ñ¦ÍJç7E!®é’6IM+ØAoPœC^p :iذß@÷<¬6¹ëÑkŠÊ»f)y™œótr×§¸í)^IÈÎzÙÈš:”kµò& î3L2”ma*+;ê•[ÞbΆwuK¯<º›¹Ù"Oгcn }òhöË«:b”wsçüž÷ -ùtN9é‡öã—ä›G3 ]·$ß¼ +8ê²°¢z ’üFªÿfå2ÕSsí½Õ ïÈäÛª½š™™TzáÝñžÌL.µöOÓª=j Ë·­ç¿Òê«"¿ê¢Q½šÿwׂ0óÞ|Žk¦DÌ~ן›á{à\ìËÃÑ eÓªð+u'i¹Å°µ: Ì7­ÐÀê½ðhô@àס40åðÀê½ðhô@àס6h`R¦y`õ^x4z ðëЛ4°¡û«÷£zø×¡¶h`½°yFaó£é^ø×¡¶™*üqõÂÞsB¿ =ªƒ£ö­°mþ@Vð—¡tq@ÝŸ¦¿]þ0ºúmè=Qø ªûs,Œ$¼ÐorLŠÈ«C]ó L5âÊs²ÁtZ<ü¨¿C>øÕ“ãÕ3nyXgVá¶Üîz52Cq>ƒ†!ߊgQÏú 0dgy²î òD ˆ®$mÈW¹E#Éï‡@[½)$€Ú\#„¼>>H¾hQÅðsªç±l !õNÍB½I† ÍVÈoòC–çÚ¡¿›òÒ bZòU;ת5r$v]ô˜ÛþùnBJ[ A6ƒt·ð¦y…e)ÙÅIÓ6ù›¬Ï +u B4©§Ñ"^€©ç,‡Ÿã†:¼¤tƒ„©½°yŽ:ÐÑ'8¸/ø.BÆJ7ýW +„"Ð$uA¤…"ÈÖry…º*¦Å¨Âîɯ’UJ Ï3äZ’žÈ'_¥ný®%½4QKN¦€Àu„^ÄÞUVô1ÚIŸÔZ¼ØÇÑ'Rä›6eì™ìLŠÁe³¨¦«29‘R¾êmK}‚ïxuÍZ™UaR“'‚ÈL97Áo +[È/p{KqçxòAòU¾³-ðö)ü …ÝÏÇn[Ç+N—é!º]ˆìš‡¡¶Ô"ª4kÕ ¤d!DBS'‘;"ˆó†ˆÜl b‰äÇE ë©ÃèjŒ·R$*Ä>ȧ|SDŸ£gp4¾q•N–\8CZj§M•Mƒ +–!ȈA4Ç_$(/ß¡ÁÔòZÂSß4åηÀ†t[.&±T>¨&¿ªû<{qºlaú‹äÉõ¥Ö/¼ä¶MB]¼ ÜÀ¦ôjBÒ/ÿæRµ¨¤K +óø E…:‘Rð9Kî µDf"§v­!TÑ/‰„¯ÊÐɺsxdØ$"_’|U-r²ÉÁ æƒÜàƒ?jªÃëùÓåÛ?‘Ísh@È#g˜aî`{†Y83†z ÛN þ¨íómŠ‘±Ò|ÊNjstÔh|gmLˆúm õÂ@]ÇCBœnNq|!øU5ß.Ka(û·¡0˜Rp8‚‘î .“ƒ§¼C) +¾ø¡–EâcÀ²%#‚„W`8ÄC]zC<¼âx5é$NäŸ`Ã+åTLrz‡^æ¨&}ÂŒ‰¥MÅõ§‚ýå”G ß>áåxˆåù¬Ä‡ %ÌørJi’A`{‚Pcq…:íè(Í€ô„pqB;R,HxF¨p' F¡´ã J P@ž0·Æ[ž”¢ÄžVùBÉà £Hy¡ "Ñ‚ %1 +ÀFû@]º¢®ÌrÔ^ÏFˆeø<“=Æ4\]í‚‹–q²ŒH—W)R%¯UèU,‚‹ŒO <Ý-è,ÃlKñÊò&œ 7 +â^Ú–Ûr…ÈgÉŸr§4á/7lBÛ"ÏZpó(åÎ)Üù6Ñðγxw ލuH¦)¿AÜVÁtI7ßÀŒ +œ"ˆ[ +Šðb’êªx0m&ù’^ä$|§‚4)EøÎE’¯ò]áç„K0 +Âwp³NåE¦F± FÀ–WÒ.!ª´BKòŸàŠð%~¡µ3ùàÆ€ ì*,¶%÷Ìô5Ty¸´€L¶|`¹dN_‰€R©€Šìp4Í'~T×#4¬Äx€ÖMy3bàD˜œq>L&;‹ÃÇÉ,Pmáeÿ˜ø_àÛåB§Ú”ÙØtø•B‰”„–ÒÆ$ˆ½³å‚s†v€'a/;Ê»LNÒ &¥£„¶O +®àa2ù‚ÀèÞÓÅQaŒWhN ÈW¸:¦šNˆõK·yXD2X +’Ä_ò‚¸ ‚|©Já…ƒI±¤$~ÔSB9 ºaÅRPbšœó«¸Pƒ‚LöONP&›œj~™Mâ€Øç€õÀÄX}H‹0ÙŠ ê&uñ‹¡Ö^ꕦƺšÒÔlÇW¤¤ÊDù†–¯=~µÛÐÔÊþÀm¹vðn¸3)„£5V¬Aœ ùœ‰ïueP@êØ®Æ¯¤]wJ ; ¨P>Ps]e©Á(þ(Y<¾BNŽ/ûc Õ– á*YM½VH‰|N>É L*~‚ëÕÂ31kùþ˜ÀŒMiˆð +€ôÀÁ)mõ¦L­¥I7/…—Ü”9–­19)7¸&ß{샂²OÁ:Â0Û1 œ‰/˜Ç"AS÷…OH‡]ù°“Þ‡ ÅH!À± ,‡´HzJ€1±eŽqL 4Œ•À­+¾Î\AÂ7Q¹øa¤R0k’“c%óeœ¹¥"KB@‰=÷© ºA18"_éH Å$ùâJš^&õ]&4÷ã  YÅš  À¢€þâQb@x‰ÙšŽlõ”në¡M¥û>Èç¸vœLtÁ¤H¬tIW‘„ÿ 2£@×rBŸVÎ zØÐS‘KƤLÏÔXRi¢£ëùóer|©ÛZÒˆ ‚ p‡`¨†oÔ H®þ„7߉¤Úì-¤è…`!_Š RF9 ¾F™@2”`ƒB”/K±åsºJ=bH •6ƒ÷¾@ʘR½ðœ¼û48ÕñW ÿ«J“)LŽ“©[¢À}ªòMWi^ÁEá‘å£Û.c@_ñ7D*©nЛ¨d°ç@¯%Š·}ª8G (X šæBD˜±YkA Îý¼@ CÇ :ƒ2WØŽÊ +“›¬DŠ¿æ^ ÐQ=ý>Ð÷¦éJ>:å0†D¢ª]ˆNéê +ˆWSîRH6ûGÇ %P©DðeÙä%,þ¹9¢&8¤É†Ô ¾è6¤t8BÙÎôƒ°S_ÈI F:LÃwbHw7óñ=_Mã6¼$eà6¼$ª!†aT6¥N@eÃd#$ú†¶¼äÜ D“ê… ÀÁþ,ŸóƒS|K‚|²à+äÈ7V¨Ï‹ŠñÍ¡—éîBþ„7ævCNˆ@ ŠÄÑ”!SÃFL‘{8 |8ËAêŒQ"…á„N¢Á¥MNàÄÊk'p®9F¬@¾}( +0…=Yƒ°eá¸9]/Òí‘ +Ædñ™¡K1<_ ðE²¢ä3Od± +¨T6“;!Ä)äžÙ<× WçöXô¹?Þ+Ï _FàÕÑ"/ò/( "¦ºàË.彄>Áù 4•@è„Ìxú±nþAx© Š¥û@¯rÉzDˆ¯â¸4-y!`å’')´5òÄ÷*[}2­‰ÓGöžÝ†ÊÃà>†JMá;©¨”6l¹jñ—•^dÉL@Ã(mXbeÊ礚eÉ^Ò¤Ù¬ëV$_¥b¯Ès®¤áÂhìg ¯£ž+ùƒ³cwá`KØ•¡pUÎ, +b†Vk¼´èú¡%®yq e<vÄ¢Kþä¾™¾SÎväþ<¬°ÚfŽžRÛ‚ p¤) ">K–²H¿j¸RÆÙéFˆä1‘ܱBsù…9UèİGM.€Oº…— §Åÿ„Ç]+‚€B—ãù~¹ íëmPp +@[®:‡» +æA~×# ãz¡S¥œ3¡=”r,xªð®ÊØösYhˆ[\Ï’eàïð]Ý1CR§"EjAZX²pA¦ø‹^ (ØFG hßáLîÒþa]¦¾ˆƒJMí ú“ô`È:éÕ a,D„º°ÛšdD׆§Ø†ïÚ(@® ¨¢Á4›×'ðQÊ T +59y?6¡ XÀ?¡kñçëÄNà9_ÇÖŒÈË.ú¶ÃŸðRp*²f»0eCæ„ €Bœ>P%¹úƒ2a•` +&ÌrõK`oT-Fhñþöȉ–Æ~èH`äË“0OÒ.‘§²Î¸DHŽ$®KÂdùÁ›.6{Q´øNE%L‚@JØ }˜õŠÐô¨Od !™[º|6¼&P`í +@ÿÌJå wÂU£Šù÷&ÙÏ¡õQ(ì¿lE&(vG`û5#¤¾"Ñéí‹+Å+ÙOÓÓ|6ëh + Žk(Ÿo€ž‚ M‚@Ÿ‘«ÁÔ¾Y؇ÀÜÔ~¡Ÿ=Â'„ÒB‚äÀ>Hù@Eaü5 + ò²tó“; šF¡4Ö(”Æê…zØÀ¯ÆíÔÞ–ý¯‘Ü!¬xr‡°bÉŠ%w«Hr‡°¢ÉŠ%w«HrGø9MÍ-œÜ!¬"ÉŠ%w+–Ü!¬"ÉŠ&w+šÜvWH–àäQ(ÃUIŠ%w«Hr‡°bÉŠ&wÉHa¦äaÅ’;„KîV‘äŽÐs¶\ÜhreX‘äaÅ’;„KîV‘äaÅ’;„KîV‘äaÅ’;„KîV‘äŽÐsœÜ!¬Xr‡°Š$w+–Ü!¬Xr‡0‹$w3šÜ!Ìhr‡0‹$w3–Ü!ÌXr‡)‰~L%w3–Ü!‚u¸2¹C˜±äaÆ’;„Y$¹Ã÷=1!m™±äaÆ“;„Kîf,¹C|·ÝÈsœÜáû îˆüB®7ã +H}Ñ…Þlò̪.éÍâÂDÕ=½™½ªÅм›“/ÀW›q¯43Tå*UuOo6¹¿.ÊÓ›±µj³gØÐ=µÙdOP‘§6›ÜE–^|û®ÆTÝS›¡ÈµXo¾ÚlòÀD,tlq5( .ÔaKÄê’Úì]ÈõXJ ‚Ñ_‹1œ‡§5[‚8éžÒiñxV„ך½"MÒš¥B¡5[^˜P›- †YG=­Ù‡~žÖì_{ê°ÅÝ™U-p“éÚ ú’ví²Ó*©ýŒb‘§5ãE;OžÚlòTUìY¾§¶Â>Jj³ÉµJ +-Τ +õÔf“‡äb‘§6›\‚ÀB®7ãå;»«öôaDhÇñ‹<ÄgžR=Aü=½ÙdoK0{wÌO.Ôf“? €EzO‰§6K…Bmƾ8t¹ÖŒ#òyÉš$©Gó´f3Å*©>4U’Tf$ºÌAÆS™Å› ôv”8¶6ƒ±¤1‹·j°P3c0™5篖ÉV%ÙGX®G/Qo\c¶¸Q(°NL ÌñChÌèó[ªÐ˜¥"_cö +u¡1[Ü8€gkÌ–ŸtFyKÃà§[hÌ–ØÝÓ„%Âàk̲WJõÐ-ÁaÏòH6Ë^ClHñ°ž•TÝÓ˜M‘X÷4æ0+íÕ˜ îi¡jß:þ•ð­SÄu)w—Ò¹ÿ¼ê[R‚ èÝGÆ#==’=L%§lrYTi0ß4˜ï‰ oÆI¥ªœï‰%°Tƒùžxè­œïÉc;~$­_$¹\ú…^Ê'þ”òÉoGÈ)Ÿ,‡s,fú¡uiœÜû9Ÿ˜c²(ëçH(§|¢äë ÷egmAA¥BfóRå¼A'¾zm)†DÝ…¾ÅuOI[nK¾Jï—ÈJž(ôs>q$¥|²…MCÎùd©¢¥ç¿ÍÅ>9s“¸Ä¸×)¦%Õó“9'óÝëTŽ’{*`$»×±˜UN­ÃB'T9W$»×ù…½ŽiLª&¹×1ohU ¸×©‚ÜúîuŠOæ<…žÜÃT-`úp9vßåGQö®c)’Ô`â'ÁP¤ÄOšË÷ßôL£ž` '~âï‘ÊÉšØÓ{ªœÐÉP\©È3 sHõl¾~o,/ LýäI2þìØ%—*ç~®wÜO޼d¨°j(Õ©õ–yˆ·\D•S?qJÌý$4méËÊ<õƒEJy…>ê WBPAöˆl™¦BxËCdïX0ckàLy7fß:ÕäéûÖùGÅó­#Ý"xºM©%³·ÐT$ß:¯Hö­ó …„'`-ùÖ©œ‡$RÕÖÜÀ‘ÂK9=x¤ÐTÞjÞT1ô0•E§Sà ÑcÓgoB›38ß»NUù³‚ ðgXƒì¤—¬d®â]—¼ëü"Ù»Ì+ô¼ëTS 2<“‰xAÆh²eŠw¡×¹=9Åò4léH±ÓÌÿÄ"ü¤Æ˜PKå¼Üw±çà xâküÁ _ª`z…,z°LÇ凅™^ç:͘½ _aJ¡ñ4/Ú Ð-pDº  —d4DQœ£gWòK¤ ¯Ð¿ ð:ó/¼A}«¼49a½×¸_­t,5ž{2p¤ÅEBàL‹«„Uy‚é‚@µ8¡—/Ø3@Ò”uzæ#°0©HüB!Mxù"‡*dI2Q !®x Ë ˆ9Š`rä si©P¾"`×v$éK–:•ão q;]²èr•P$+¥" +ס£ï[t9Ô%“®g8òMº~‘dÒõ ÈòD$[ƒ’Ú„$`þÞc 3*=.§ù£hAa܃Šl½u… (P¨qƒŒoÓeyè¤Ó¯ -Q>þŒ]:þ˜J«F]¿H2êú…ÞásL.´ûV]GPkɨë¸BBç[¦ñ»Kic5öœW$Δ &„ò¯´šðBþxt¨ÐævM\þ6—<;΂«à¸É‹e9ª ñ‹$Ðù…=b¹}h#Ñ›§Èyw{†6¸±Þüígyˆ…f¥¡XÔE¨ÐS‹½[óUTa›õnЈ ÖÀä%•_ºJÈ$y‘ 9äüÎ|ðzcÊÛ 0ÂÛ,_ð¶TÕ5'D%iå2>xr£? Ê”,Àܤä‡è]祩ö“H ó=ÞÜc&(n¹ýœÿHÄò!/;FÎZ´® ³¯z¥žòƒWÊÊ(µ,ËÁ'ü¡èX*ì-AO~g§Š$¾Ó“¿X‚W•á³Rœ++U\Ï÷MuØÃcŠåùª1«©‚ò»í{‰1ž†ù Y–R*Ã÷çé/Í库NouyeB˜";‘Wêž©f¸½£›áaX0šBb¼êG)ÃY5M\dãSŽ´>Ï9‘—á +%€‰Þ|°²¨õ0ø]UÃûd» ò~²àN¯L€ô…0>Xly…˜» 圚Ü<\H·~¢M’Ù›ñè{™ó)­?eV3}'1Æø(›.Á‹ei •Ñ•ˆ9ß áèÅßsƬB7dÛ¦RÖ ¿¥ÎÊXª7 T"© ÌªÈ‹„TMˆ% +ÅQ" 4æÂQäFS*;G²­˜¬?ÕËÝÈÎåípóŠäå{…¾C"É" Ÿ™¨‰${‹Ð(¼7°3Å?öK=¼¨$S˜Ðæ ²ã¸¤; _¦ ÉUuß.$/ÌP!gÓŸv,'0oÇBâúÓOÀÍDÌѧ +C3’¤L5¹HªWÈ|€Xo|wUÏ8ërÌðwR¢Ÿ¿ãhÄå;.ð‚?ûÀ)§Ê8¥ ‡T¹-¿c÷ÑV¤2v£¤ËÀdùY#7ôŠ_â/Þ/óÅm&3c^}ñ¨‡aªZ¡¼ÎòƘjÒö1ìBé"Ûi¡Xª‚—ŠºŸÐVÑy©Æ­Ãb"ËÙAÈ„OpB‘íâ+£b–€ZÁxacfj³Bëi8Èì$˜bƒ‚´Qg™™ez‹ðRY™j +OCá,U‘ßb/-PN\[XºrÊœ«UÉ+“8‡_êqì±iŸq£^ˆcéÞaõy›ÈÒ"³@ûY¨Î^±Py›³»ÆðÞÕ¢<%XDq¼GæO€ ˆý÷IØ_ +½É,^‚b>I˜€˜ÖÅ[Ûa@Ø|.2dY„&¾¤¬éЧq² W…Ž•î“‹MÇ´Xvsfef¼Ñ2„mg•!‰½žÕš±kÌɤªL@…½=,xy!)ô Œa‰+f%ëwˆºrDódÙÁ2¨žø=a$öFø‹¦!Þ^äϽP!yž,ôö"ÿ"?Ùý×Y?ª‰ÄÐÅ¿` ïmG•ž$‡rPiè[H“ÌAšB`Á „Ç>~ô8X©+x8¶’Ü%žH\\¾8¦ü‹W¢¿J$¹ é€> šÀ«³Ÿì1ç ¯ºô—.úÔ¥û2©½šèªgñ­]•0|mC¥Œ±¸S¬Gnã³åÝ'Ÿ ±R/.]¸ƒxñÞJù¹s|ßäSY¤êì'_)ýíW÷þ•è/nu ´7=ãð•Âz©^ÿ+›8¼zøoÛêB"§¶[Œò*-Uœâ>E`M½ýz n7ß# .¶Â2{à^IØÂkB`W»8Å +2²yÛ‹Õåh £Kx1=!¡¯iÃÜuÝäªj"ˆUÞ&`uy‡#Ãè‚D øåÍ}h‚ð?»ÍÃчÿdxÉ¢×GŃc\ðÍ·¸àa»*úqp&Ãw,€]¯i&`²aÂ…2ãém@è ú%ä ιSa¨fj,Tx×Ð5—cMO©Ì¬¢š¨QcDÃãe‘€RÞrT÷oœl«ºÉ[˜xWcøLôfs-†:"5 ÇGW4QMW÷à*•`DÂÔž1¨4j‡ŽíMÄvK !Ê:–m2_»·TfŸQMŒÈ1"`ô>Aê¾ÿ3ðý²Þ¯Sñ¡Sñ^™3̱ž Øð0(C2jÄHòQé‘#Â+ú öÈ'½Íüc‰ûLâé9(½‡XÌ‘ì]HOèà "!/EÂ.â´ +þq(cÏd Džƒi¦gÓcN\œÑ0âlGb"“ÁzNDÄ!D9{‹ +7Œ:å‘p{—8ÿëDü3OÄðǯsóiçæšO,äãö¿—kÅ2­Ó‘äíBºÕÉUK8z±õgbŠ”ÄB¦Ñ¨%¦Ò[ªyPý£R;¨´*¥ÎñŸ¯÷Z¾^¼¯U^*N'æ ¶êÚh·7\SQT€ª¦ÃºTÝz×ÖÎb¶ɣcá¨R¬í;­êВЊN¥UwkÕRå¸T¬Uë­jyG `&¶ê@ef'6+|&Ò¼EM6Ùnµ\i{µÂÝåÿh6Z¿£%øßˆ›˜šN\œ$¡¢r›¯—Ùêé·q›ÔyÉÔÀ¦ÑJÀ¬_+Óèÿ»øù…tî!JâÑ{ƒêü ?¶ág(¢€Ä·k%Qì¸8By”‡[9ÞI0‹¢Â‚+/K¹É3“8øð÷Ë¥Ë6Ñ*‹b ÷M‡2×à‘ì¾Jtæ€-;òÉQkfò³ö¨ÉÊ)ÍÆkËF×4P\zVe%ÌÙSa.°’µþy|‰®õ, ³HÃŒlŠãT©–æÐC )v)g‘S>5Èz„×Âì”6&¥óÑD¶$]ÉÉßâô³#xáD‘”8žaZ€Üý&I×|˜o‚,|zFÃ6”†Wp"v‚òÑ«Ø*  ÃÐB‡^"VÙã’Ù Ý·è5^“¥Â@_ºXµ-LEâ$0Z—nšl—©>Ù\ÄͤK5 #SöRO)ósÐXj Ç`k¸™”–ȤZ<è€BJr +àqY•h®"%Qvè1=Ìh†pBØ9”% +ªÓØx-+‡‰®èŠÑÁÇ_èI[X#9÷C‰IùcÊâ¡Æs½2`‚Ì«LåNä–§[ø½ÍÛCÃ,¡–Këб$*†áå“‘Ôà 0¢„^*6Y;Ä{¼ó†mÑ5Ç+Òý­­ð«ÅTF$70ü‚Þ¶1;x;e˜üA˜½ÇI¯\Ñ;Ìí_–¢·Ò˜.rä,6r(¡0€…‚p ûÖ8èr{nj¹88ØÚ s1Äk/6>aS/ÁéáœõØ³Žˆp6Áa=¤la^O ˆ®ÆçŒ–¡%üF€ýpœ²#æ H%03K<÷†`ô~°éNöšb%-“?ù­a>–ÎÚb@Kã©%êè2ÇCå9,—e ÂWf)f›¸¦›0ÃqUZ˜ÏLããY6E®{ø)L|91ÝÂè=ä«&’ z™Ó`p3ùÛõº|(þ¦+gF¨ ^Ç#¶[+2ëmÖFqu*Ðè \”kh¬ùâS‘43¬YˆvÀ‰±À뛚‰´ÒD¢ {eòdk¦Å^ú41§6ô€‹Bïjha3w>o¥MèÓNÙd”65Ä ]1BfªÌË€Ú0÷tSÁ˜ì•9ÉàsYŠ 3ƒ6í ‹~64öt†…qÀ4} Dö|‹£àá"× èÔx@*ƒg‘†-3tÐÎvéML;¡šé,d áj¢¿¾-òiY<ˆ Tz‘Ù`q¥Ôˆ¹ÉZ”þ:fûºAð™<ô¼Kâ²j`WÓ¦ÄÑ +tÇ¡~Pž¹0Å[¯ºÊ¢¼‘öé<«³†b§¦BÄ•¸ô=#H¼Ït-6) +h=Ž9È£P&BH§^€Tšr™"¹8*3à·î@¤³ ”UÛÀC1ÌäžZ,ÙPÐttvšð á¹6ÖDgOx[ŽÁ>a|ft* Üû(¡s6Rë±I¢b´ÊDtn‘ !òÚ  ]‡|ˆ„Åè­ñh(01ƒ•MÏÅ*˜,oµ‰é˜Úì¹ÓáãÀT(aÛŒq`Œù¸ÀQ0M‡ÑQý›¨ÚgU¶)õ#Ha9 ‘AèÀ3\¤ ÷5i$ÃbéKI¨£—†H«Æ~-z;Èd“ÆAÌEqÖÆlvô¼’Áð“ºÕé<8vpN ü³®³÷"²gÚÈÜhët,ñ º,PKèe7 $œ¤Í,ӹú² öü;Ü”‚h³›ð‹ÝñÚŸcJHÀÑE® ðGÐÙ˦¤CxNvP»a•€ÀˆÃÈ”n±ø (ðžôÀ§] OƒÉºÁ„% S¯ËýfñdbäÉH˱ΒN V(=à q†yЗé=;¬a›¼ eޱxÄ–Î_#5ñ Í_ ¢HX‰¢¸‚ãèh\P£T†Ã)³H <†Å”! +E)ŸÔA–b„ÁÝ8 áˆœ{“Çg—l×éÝBõ„²Ö©L5B^ÈÒ¸,.*V6É!óšBÎ%ÝÓ)-9‰[˜®ŽÒ톢ѻ1ú–ã ˜Icá&2qžÄ[ãϾ 'Ó›·\–RÆQXŒ36Å3ŠÒ-*HÄunÉ£9žM:Êö”õÒumtûµ‰:à–Âp*ßÛ<16áчˆÔ”²ÄÆ6M è¬C”¢’è”JçÍÆDŸ:Õ!%O ’\=~!‚Å’< ÔNÒ7")¦rɪæb œÀ~S*dŒÈ†ð7hHˆ +Ëøa£üà&ýð5øe€m¡pLLaËŽƒ ™QM¡0^AÎ2„ ¤ƒEmWcb–ƒHæ’ÎÉ5K‡§bÕ8cE¥#*Ãcd)Іì¦Ã3¯ Ê#•{•ŠTÆöwG€€37[T[ÐØô¨˜Æ0ÚCUd&z:L6@‘ÙĨ8ÔlÙé 3ÈIÕ2›*C6&£šŠxÔÈ“á'æˆ5è‘€¹åg ‡Yêx^MŠÕyO, ÷u/‹(¾Í»hu$‘‚}:”%™]5›¥ŽÉŽ èÄòÆ£6糩 Ž"“êr×k$U¤ikŠxjFeКÊ#%uÌÒ~ÒCC&ÓˆiCYà>=ö @œpăb蟬yï¸LwÈŽ¨® ÆP‡¦ÂRÁÀ¤jªh‹!Ò«f-tF‡`Y>¡ª,ˆ h*.9'kD6EÁmuùû~ºË’P#ÿØ¢±Äˆx¶…Å7¨aÊì™H¾ƒx°ÁÅ;DØ”Ë_¯´ñ'ÉV¬Qpž:aä[®m1¨[G#ªª"Æ‘Üh0I #Ù;£hQršõ@DæÜLÁ“J†(kÉ$a±g†ÎX½JÐÄ×”%›{Y=BS2’Б Õå/¯‰£Ålv,P À¦“уEbüHÆšWñ­J…Iæ(‡`3W¼z®bÒ¤é¼Oœ£îPVï­_ÔòØp”°@a2 Ï0ŒZ¢Ã$#BKM¼bm"ˆ†a™Î¤¸8â­F2t`j.2 +È—øPôR¶Éäþy/¾†‚€ð§ˆÄŸÅQãq`O¸"ç>À¬2Þ Ã©TŸױR<¶ÑåÜC牫ç)æÖfr„Ês%š .;\LÆ£LI’[:;*K7j‘ÒCxB‰®fwbÚKA¢‘ÙHžÒ¡•ááf)uT,¸$BLñ‚ªÂÓÜ«¸[ +Sì\–K$YK˜$Ë“[d× ÓÅÒ¹9<ˆ¥–‘ÁÎi+qR¸i&Ê]6+Pé‰aóÝ‘¹:2Ùh¦Î5ÕeVìˆç@t¹´â (NÖ`¦®±´:(Qà€iŠìŸ:KuHÂdiý™‘Ófr“1Æå‘­€ ,ÚÍ7ª £ìª2ÅHåùÀp[ —Q3Ò¨‹ãjÌvÄÉ»BÄ2—ô&¹¢ÁLÛì¸Aï,T2—½ö€Ñ?2Ó9¬ŒåPA{ ‡¤•(²¿“ ¯|42'‘éšâ[ÐÚA¢º§¸i¨¥‘yQgÏAiØ#S/Qð¡¥ÀN™*3‡òìî.†š«$û±Ò1°]. 5 ‡Pab’ ÙžL%ñL2ø²ŒÎ:WÐA*dóÁ›Lnãá='Fgc;›‡k!B" €gcD…LQ}ñ­Ä”e­Ž#9I@àRÒà”*ÃÖyJÔAlCãÀt)O +dú¢‹¤:€ö%¦@Û'eB&lëló\þð …ÙçÈØåpª?%˜Á{z vÎ-“?Îh‰Ë@:‡^Û´(w²Æloì®ÅŸ& 4‹òAœQV‹=[‡Kùò…é¬êŒ1¢ +ΦîRP¢J'ˆþ]ŠÁaÆ?Æ-\оÔùÉã±4 +3Zb-f(Æ»%ÒÃÅÁÛ…¡&“X&OÔ€ˆ—è"! Êå,9”ç_§Xä!¾³H§îˆt:)öìo…ÒŠSŒ@“«a^(‡>é*CEû n‰ÁÓÕÈøã¦*F©DùÉ–¥G@ú,…@­Z€¨Žfaʾ‹6l|Ù ²'Ù?\´u»–°àcxwF·a&WU‘Ú PÉR &rÈ£TÅ›7<84ß b¸%ÂF DÄ)fe@ ;lê„„ŒxçÉ+P^ ×A8ƒÓR(á9Ê®üÑ& #—a`K¼u†Ñ*ϺۤòéüíS• ¡Ä¢lF#ðŽû´ÓâBe6ô’R!mC²‡È@ª’î¬ëìuVlâ² üÂ̳üµoèÞÔšÍrjSšƒˆ>%=D et•åQ&Ò§‰ó¬ñô 4f/ÑDê,¬‹ÆZ”ÍYþ|•¢Ê""•I.”éŽ$&¸˜+ªí‹;8#Üv&ÈÑÕ% <Ó ÑQ.SuéòLÇÛFAáÄv«kìF¥H:h:^¸ØìŽä,pìÐà…’®ñ'm¼‰ Í@­ ç‹—BdáDi†OOe6_ƒÝIJÛ^Úa™½;:<¨xŠQC`'8ªËäÄ5옅¢ Ð^&ç÷:Kw` C¶Ø½2Ý”™x_Šb‡Ch 1ë°N¶zØAa¦jF¢1C=Gq6_š8.M;”Ê-…¿¾Š¬BU™5Õæy¦@²Ñ†´BLŽæ‰^žÛÌÅX\ºYáù¿ˆÔ¢QÕ`gr0fmSôr:=BnÓÍ¡!N¡ai,虋Ù&ÃŒM÷>òX”•ò½¢ÝÆJ¥Éúe¡öÀöP¥[q4Þéº4 ‹\R&=ØIŒ + «b ‰~²Ëm¼½$cŠÂœð4ÐCd$dÉ”0?©C¶v¤Dt³o¤Q0{1^~Ú»s×è^Ä`W0UqUŽü €x½®ÛhDAã‘‹wé.E‘£,£%ÄÞÚx}h‘â©¡‹u8ŠNŠÅ¬2qÂAêj ëÙzéö˜D˜¯í0¹L¥øU4œØhGI¥Ð¢1u˜pÁoÊ7†Ù»ÈÌé ZˆA,ˆVÀb\í¼è!c³×6l.©#Æ@r¿Ê´¨OÛ;•ø]pшõH’,É\¦a:l,®½-Pb‹e4 !ày}¿]ža ÕטìCþ Z‚ò—Qkºƒúøî,TøBf4¤YÄ D}þHov…dƒß:D—Ѿ‹èˆ.:ãÜâOr‘Å„@ˆ·}°UQ\ 1Z…ÝF» ɆxKÁT]ƒ§ºÇÛm²¯‰ïš +ËF›*‚è1bÐYEM¯Ùð~Ø¡kuÒ-ž…tr½ƒŠv$´ªA H8¨naÇ·é(7+:3•’·‰n±Ë#‹g +ÕÑÐ¥S ×@: üÔ´¥S­³™Xh­‡½ÑM#¼ÌUM€D»Q¸!’@: Šhô¬óGmPjPaî:>Õ +z´Ioò`“Û´5&,Ñ‹¸ °˜hÒ‚I£^‰édãÖÐÔ\vÇǘ ÞMü‘Ø"«ç‹ÀϦ&Awhh¨4i•˜­Õ ð8ÞF£YÁf`ÒX.”™@ŸGNDOÇìutñ\%棑ÕL +Ûa Ì’(f`¾ƒ?1µŽj‘1L*ŒZ0½MxJ×âxÏ !‹Åô¼pÒ48a6“ÐPnã¦d$:24]g—xdt£1M†:(¹l­ºñ8Ìòé‹'ªM®>XB)ñ7*¼:çÿ*Š^ŠÁö“nžÑ­ z7° f1Óé‰.›~#ùéèby@6žRo *:­š4W”‹5žœÒŽhrŽÐv=H-P6ÂßH/ vᇔ m(h Ÿä #Òs“ ¬N¢ŽW¢01ºIÇq1ü¦DÝD1 | Šeñ$Ô£à”9QÏeˆ€#p;la“yRc5ЇºÃ6Œ^¸¡í*h3QÉÔ¯Ùô@>ÓSGÌKJÃ$4KX$ë¡jŠ\M5™ ‰J/î‚j2ÆŽ +1×bV_—ÑD•®Kt÷‡Ñ6K$¬Øh^Õ ‘п¯Z-î +Foq‚`S s„ÎM,*g‘%$,FYà *’Yçi2 +Id.Zвàj9”©ƒÜÝ4"^Â÷À!cHR<‘œájÑEOÇ„txÛOiSmºÂ£»+¦ÈøjÚEYq•™ý ”ûé§CdÀ` (*L4t¦‘=ŠŽ9³øª<;ª ä¨Þ“¸Në!¥šLA$ù<ñžÆßƒG…Çä¢6¿þG’E™a4î(fªÂP½¡?éOhˆ3…W—êñmÖžyu¼ßÀ×ÃÑØ¬‘{ ¶qyîlJ×U©3 èx…’ŸÁÍ8šÆDaË÷wx•O:xƒ€w¶Çj2[šd~ò¤LòîFÖ£ +þËÞþë¹´a:9©”©<¢ö:‚f.46êô„„“p‰#É‚³á²|>ÑG»FMƒT€Q:U y&Ü=Ý_9,{‘8`¯#÷b‚é þv±‘E ×—0I<™¬L$ÌX@]”SæªÒ••Þz®¼Ì›U¨%´d³dwˆñšÂ¬M”Ìy¾Í-³äQ@LI1¹~FjR%Â"$3HtÛ·“FbW¹Lx%…/G^©H\^ó‡ºTJÃMÎX®4 w&3Oãõ%‹ÈC†Þ @iHáZá²,IœÇ·ð‰V¥Æk³Ñ­—í§b³’xm”e·èOñGÖyŸ1>ÂP ´™¡Ö)ðGqXpH´½ àòó½Ç•¿Ê{ÜÄŸ·_õƒVµÞùÎϳbò)—?Œ|mâ‡}9¨uáßýûg€êÈTºÜ¸¯$2­nû)±W¬+­Ä~«\iM÷ÿ–`³ÅZ­úØ*6Ÿª%^óV¿0ÍN*q„°Ð[w:1?2l öo¬¬'šÔ4Øÿ­XXŸõ®J]ô©_¨;º¦.àÏné)¢Žh ˆ¾_‡}~ +Œ’}*¶J ê¢XKÌ' +¨Qiõo”«þh¬D]ôÔL·ZßÑ\•Ëì³\i¯Ñ¤¯ÔTáÈ5p¥^}MWН Ó‰C(ÀÀ:}2ZÆ}dJÆü‰èƒÿÅl@ŠHûIÿë7× ­{¸Dƒpì#¶_šËøôa}”¤aA÷¢Uºô_þŸŸ4¨·VT¥ç-Ô:h±?ÆáÝeû{û³ÖwŽŠiôß÷Mã3CÏñ…iÁù…•ÞÀ~  ä\ýâ~ÂJ¤·n3-àTµ +µÜ­Þ·½ÍCMóaLg¿|[(Öÿª•D‘6d8Å‚Zb!ñµò» H  bâ?óŽÿÀn ñ ˆ‚_´&AðêÕ©âKÌlù–)7Ÿõi½^|­”VhÆ8›èÙú˜„³þäyrŽš«µ£‹î O£s®…·+d"¡É¡ôNkP"Ö€— +øß¾ øL<ŠãV¸j]Å.\CÎUl‹iáâßT ûÒ†Fƒÿý© pÙØèãΟµJ{da§Þø½N?@~žJ×p†¾ÂÔA†\Hƒlý[E|]Èr‰¼P­Ô°> pµž`Xé4;S¼Êè: gÕvÄWì°·‡ãN±ôòŽ2Åvµ$M Q/w«aš.$Š­ND/ÇVã¥2ü,4úPÛoñ†Ð£¬‡£J©²n?²jŽ Œ»¥è ô7F• + \GøI%±š©a¾A/4SÁÐL¬uQ†Á+‰¥ÄHbJ•€¥Í+!/ýÇ71©v>²^p.«ÎºÞª·«L»ŒÚ*¾1Û¢¦œ÷oÌ”ǃã™"ÛnÖŠ²Ÿq{‚|¦Võxøë‹£Ô™¿n%eEGcÊKy©þýbæÿSÑ‘à³`}ù Ø•+¾gî-§ I°\­€¶î°)Í»>‰ÿf0;“‘ éÍéNÛ•üo•ú~¹ü·ãúØ?Gþ};¬*ÓB«úËvø_Cûù`ù›èäðy× YÈÿQ)uqôÚF‰j Õ6ÿĵÿq™Ey¿ÌÂôx+NpQMYrÐÖÞ'¹ìw;ÿpÑE˜_‚˧±5ë—äò I$$:Qæ)_ÜéDДÁGH™ÿV|1£ÿ7ËtšúKÔBý_’îO‘t]WýWIº?Û¤Ø÷ãÆþýó€r1Á¯D\×èæ? _‚½9¦žCÀ4›ùÀ·òolþ(g•V»ŠÆá÷t/e§c(0õ’ÞÊTаáÝ¢ ÈP|mãHÜY"Ö§ÆÚà"ðð#¶ÑŸb\þyDkh‚‚Ä/º3ÝÉT~«ÀÎ5:¿(OŸËŒbáO=}—ð—\‹ü d…ÌÔv•\&͵LÇEŸEtªE—ß¿F´c–B÷?ÿù3±Wl¿|–9FܬûÆ—þ×Cܽ/1u@ê¶ÿ]-Žðbú³`èr8x؇vaˆ‚×Zõuš‘’žëæoÜâa°Sñ—Hóÿk 6×j4ÇOÅrã÷_ö߯aÿÇ%^Fuü9D:x(†cZ–ð§QØuC"ÿG³4#Syh´* Ió\ ºíÊÁñn¦Öma±é±¾r±õ2M\ñ{y7™õ·¢]ªµ8ß`£=5Zÿ¡mÁ; ÁmšÅ’¬’Þ×êå@£ß*­Ž\¡ÔnQ]T¸ç«òÛ,V[»%ñï$¶]ª~QÙ/•ýoWQ\*¤¬`fá`Îã°ìþµ*ÊI«XoI}íOð½j©b5šÐK Gæ½™wDKî¾Ú¬«Uy¨ý¿+h¼Vÿ#@@D³Þ}Í6šÕŠhÏ(g«Ñ)v*·¹Êc«R vÝ.k•Ýj£;oCÎn*­lUÔÇMù£÷éµñ~é´¹jAÓjVëªW3°ªKNÓ=ŠøîEï—3éKxy¨ÞëížÙœ‰ÙüBˆ_ñ1„øÛÚpFŒ¿ÖÔ6~‚äó‹9 +æˆ+œ=Âÿ×ñÁ„:fFøÅQÃ_ìñBüCâïgÿ0î¨ÿ£ÀÿkTñ=,Gµ]ÓpTÌ!®ÆqJ“1JLÁ89ñm)’®óßuý"Œ¿ãO§-*þ"/?Ñ×Õá’7æFEÉ[¥PÞ”ê:ú/‚ò‹ ü7”_Îó?“  EÇW•‘ è˜ î_{F LYþñç/Ý}öŸ¹ýü»éÿÊûËB£V->Vn7ŽÝbþ›o1ÿÂÓ)pfš“K?«Š’øF6i$°ÈÌæ5_zBPWñ0Ë´®Í¿þTÿÅÄ+Å€ò‹|ýtòEÀGLTL\ü"a¿HØ¿ÐÝퟪaªÃk˜ê?SÃÔi˜ÿ"}¤³Xnt[¿¤Ì9‰þWÙ|¼‹”T%ÿeRõhPÊÑÿ{„ë”…XTf{ÿ4{ø]û_£Ý”ì7‘m´ê•V;¡%š?5j3R< +Lá³.·C¾óŠ»Õ÷Šû_χ~E†ÿ²Lþí”ç”»µÎµDpŽ«¯ÍšGpÂòA´eÛs”ª#͆Òúæëe?©ïÀÌÀ  €öD³8¸a ¥ÕÄÔ7ùIŠkÜš‹öH¸tä $-fêü©Ú©H… 2 …‰i*»w¹“8ª”½Êrùe¥VküNŸÔЧ ÐÅêÞEú’ý³(>¨™Z·â /Ø+>‚Vdß;ã}–K†0¬²%{+¨¿]®¸Jbþ³¥ZŽÉûZÍÁ—+P´³â×Â\×n –Ck™Þ©Š‰UpT¹Žnö EÁS +É87V §ïM^TÒ$€®h +¯/eÊuÌè:v ’mFVrLaV0uL½š¦Qà þ Ê.­Ó™›ÿ¿àð¶ J5.|ØèŠÝ+Ú²p†ÝQ5„oÏb¤Z´Ú-¿–*V xcâ:÷p—+¦TOe9÷è©C7 kj¦¿\Ušœ•Á=“ê˜Jd¡¸núû¡û½é¦¼l†Ò*¼zf5i¹Zà(àZµÒ™bµ†‡z8°†5 ¹¦Á÷+ÅHu ìÕ0ÅØ¦¦)žÙЃ¢é!K‘ahŠŠ›«Œs°¨2®ÝL×à•¥é^U¢òK ¤ÞìDu1Gš¯îMÁ ÌWŒÎÎ… ËGZ—+Û|¿üжÊLéd¶;ôÿ}ˆÙÞ lV•…Â=ŸK0 +ž4=úÞ9XÙïc¿U¬?B9'êƒz U÷û)€ôZL¿ü9°©*o/x»f?î6A¾Àd.l¶‰³êc™àÀžã[â@}ï˜Bš»W—¾Ké—j3Z2µÑ*þIJÆÁ£ÌyÙqTPAæ×ôd©kôÖsƒÕl¨å8½Õœ`5 {³{«ÙÁj&V‹˜œªÖ[à ÖÐcfo«i1³×ƒÕÔ˜ÙkÁjJÌìÕP5#zPSìW¦U}|êø;æ‹E+> ËvHP°ÍˆJ‚É…D‰+Gód‰•ù,…³±0K±8‰RàÿtÕÿƒÚXM2žH*$Ï÷¼R± §,ecä#5ÿžû¶@6' ð){¤jšÄGžÜP•[) vóÿ`¬V£Ti·a‚¥Ð>Ð@F¦Î*h¯i·úŠ?Ñ6ðZ­; ì0‰ï ÁGa[/íÄ÷©ß«§„;OOÎ}ŸF@Tïï OmTZ÷•Vq:üì=~ð¹F©û +br®Ø)â3{âwb‘~I:üžú¶W)W»¯°–v£ÖåšÃÂi½Zj”+"G0ÌCMxýW:Ý&½EÕ©À¦%ZLLƒÊªbÉ[ÕOF³JìUÚO‰£bTÄêH ‘Fc-t%Ðb¿Ûiv;Ú,\ìí~…IF®k)1õÇk­Ÿçaš­ê}·#ß[H·€ø²V?¹‹Oè_ªUzªÖÊ­ +_¾ÈÜ#¾â?ïùÀ©‰zûö·b«½$¥z–«þVD%‹ÕÅòvL½º·«|&íÀ¯)tî«u8Ô!€@„gÈ=BríOBÒ®±Þ¨ÇMY^_­Qz­~ˆµ‰šŸ´ý?¸zµïê‡Ú×*¾Ë9 âÜÉ¿ù —ºíNãõgõ[ümèÅaÕáQùçááb»ˆÖFd×@:†EÇŸ~.ŽñQ…ÌTþNiûá÷07þ›Aåàù.Ï[¨¹ªcŽîØø„"—iãýç0ÛüçßM…-ÍH9ª¢¶¥˜Ž1pUOÔ•‡Yš¨ù÷®Ï4Ì”©›¦kk¶£iö õý^-S +ÎËãÿÞÕifÊP-E5-Í´²?†";÷Š»Åúc·øXI4šÝf°~¶Õh¦[•"óÖé>Bk¶ÇLضˉùÍ"à§ŽºµJK>„bþRÕÏo {nuîÅVßíÛ¬$s”îAúˆs4UKÌÛ®& }T©4ŽØ°4ƒF»Šó¥¯š˜‰2t5´A[m1Ûã +š5+á}ö+p[é×^T5¬|-&ð.oËÜDQÀö¿ÑJ¨‰Gº€N†öVàd¢ÚnÔŠJâ]*ø+`þAíí´og/õFé¥ÑíÀ¸ "¦fhNü5Yœ«U[pîw*MÕM4‹x#Ô®¾vkEßš8°7oÜ3”®IõÈ÷½YTúêTË0‡ÿ„YÁ’ ª­ß*‰“ÊD¾\í﫵j‡ï¸jéŽîu,Nh¶Xÿ­Ø>–1ÃúL­R)#c;+Ê¡æ•V»Y¡»3º•ÎÞV½\ùã¸RjÔùºÕUŽa¨áîÇ:¨ëÀ³§zñpæ]ºÐUkè.²•Z-ÿGÇ£œCOâ%ËèY »øBµÕÃZ6 ‹c3ìY±^m?ÁAbÐB­ÑhÑ<Éqжùýüû7óÙ*BónàËBþf£ÕAÕ:ÝnƒrÍŸnéš1³œ7e l*xà~«Ð’£`$Ÿ%ñà]0”jÕ&œ.´’üçðVÆÙŸíÙ@‹±´ùߨ¥Ì}f^âsu }8ô×F¸y6ŹmüVi5ñn†OS +)yIoÑ“9˜_û¸{à/4 âÒ"oÕl÷gí¤Ñ”𭇝Œ.ônÅÐ𡜧klÔÿ£J³[k{Ô6Hœ e6IßøêýyÄc XÓ0Ûèwê6|:m˜qÝ"€ +ÅR%M÷|Œ¨[š×1V—úE®Ò§æ‘à)qçdš÷><–Bá‹sbvV­ü’UÇ?!f|}Ú ù(7‹‘Zi·ðÎzÐ|1Þ)È-ÃUN|S„Ä¥#ç6¢T+ã‹ñkÅ +-•z œàó§jéé Õx¨Ö*ÞéÕ5Û²ûa^F'%^ѳh‰^Ìþ;²ß,–<ñ ržù×ûJù=ó¤~%LŽžèA®€sŒ“”øÓD½†ŽSüÚH——拤ªv{ zQE®½F¹WÎ fGkÕz%ÑyJ¨Dqƒ"±HQ^–Ôc±Þ©&@ +r +?¥)%¥Hº À©Ð­Õßåüák4‹š@EØ,v ínŽ*mIä©  ©´¶rrMùó ò{µ?°j³÷ÝøŽJr,¿øÇEv‹¸ë‰]ôδ›Œ@¶3Op²®8zZ|¯› Ð\õMÉ’8ðøyDÂt\GíCŸ#Î)@ËNw›t>äA—Øì^}ArtmuØ>ä-Š)¨å"› >ÁÜ'ú9L°FÝšÀü°iáFÁ‘ÔDþàøÝC±VƒÇŠq, x”`O}ÜHdáŽVÈ  ÜÕ&#KuÁsЧñ„¦ñ„z­\‰:Üç¸~âÑ… "†ýˆ:Çòyè­–E5ËeÔ#YFUeå³Þð…ÃDµNR-Z *ÃBæÝhA@ ‰§j®ûaq5 §¡i\ï5)‰ î† “ÇV®+è‡D‹àv¶<Ø_ίXÜ‚o!^xnܧî«×"’‰àŒ¨Ý||}IÝ£ÕxxHuÛÉS|žu°§Ñ+:“a#f¾ÉdñcÈÕ‡è½Vyè ]¹Óh=¿ã!*¿§ã–Ï¢ö‡*“½æ¾Øj¨×’hTm"WëA#·ÍUh%¼NÊ¿¹é©W®< >KWMS½¶ÐÞ Ã +ƒÃ·œî`ô ·EHVÌ>•Zå’ÀZ±™úm@_•:Ê,å!{{Š?aX­]*ÕÛ}pët@Š•¸EL?ÍZIH0Jì¬(ƒ˜SüÜ[CÕùmÈñx=[‹›=ˆKBÕ—±" US<îä_*„k5¹É»O_µVÊcy÷,.¡_ÝR£ŽÏCá­G{(äDZ[—ù_d·¯²’I¯i‚Å6#ÛA…4²ê=¿‘ØgÃ?gqõÊ•võ±Ü•ˆm©3õÔl‘«ÅZdl2…áØŽ@ñ^¦àK@ßîÔØ+­º|ÝÒ3'¬Xf³h6ûžgœüïòudžïCH CFîxN$-…ZÕW ÞKbñ¬coIÀ«YFT¬õÇØ?š©F³=¨B©Ÿi§Ja+BL½šZ"¾GÜÕk?Ë•VX¦ Í +ãbXꎞœŒº°ë +$Ž®ÆL•Ø:,¸ï¸õÊcÑ¿ Ôc@â+´1Ý~5Ü}åÆxT ŠGs_àòšÙ5\¯Ví#_<Ô;©v÷^ðBÒ +£zyì‘]O@ó®V{kÊ.?‘²0ÔáG»¯JÔç˜ÁÔýÓE¡B›kð¿£/¦=„d©râþÏD®8Ò Á\ç8ŽdWÒhÕóE8Ó5úCZ: ¶ kV7¤D“’r7¤]…j®P¢ö ‘ª\ëÏeYfë¡!«š½ ì5%nRJ¯¾Hd)jf­0–âå~ @†—’iw«Üj÷ˆ¨ÑµºõÒPãRíb½.\>¢Ðæ†<ϳ7ùöžžŒ/º+Ë"É*›>·7ô£uÒ®5Ø{Üɯ´Ñà‘Õ¾ru¬¯´V«‰Û÷>ø$WZ¢ý²Ø­>p¦ÞáœIã¤<”°znvÕÚ/Õ&ˆÉõ>b2Vk‡jµ+¨HPo7î·@MD|ëÅæù 6^½ÈF¡Ðç½Æoðõ¶]yDsMØà®ÄSØ))½zˆgï9¨þQ©TZø¾m¯yƲâqñ·Êp‡j³VI7ß«ÕsÇôÔø}³*ðüöœjý¥ÖîÀv}#/ƒöVý%yA@{Æò±«Y¬ ¹‚':ȸìF³ÃlkA“lfbŸ}’í£vÐB*×:îu-éJ]¨9 ™ªFú8»µå˜¹ +ž üh¬íO|›]>_™\*^Ìmëûó™õÖÆëÓâc}t»0:75™­Sí/ÖéfÞ_\?ÝXÝ3Öw¿Oî­·º%»×öœ¤jãŠÒÎ=çç”/ëK7©™õå¹f{½½£-Œ$×—vG[¢Òv'ó¸y¸»¾lT޳ՕÕR.•š|ìj·| ãÙ¹BrѾÚè䞯3ÆÕü\úµ±Û4é<Í®ZãÝBÎøržy®Mž$sÊö}dg_l÷Á>;üö=}’MÅ*×[¼^_~)\¯/¶S¯³¹¹d·0µQ~I° +w·ûÝÜÃõ¹©­×.2Oì“}¥Àq7‘+©»oëËk“笘r;{óxÓ€¿&Þr[å­Ñ̼óü%}וòb5»P„ýU÷V¦æç*™š}ðÊVp¹›\Ïn-Ÿçç\³ û²õÍ_µ³›Ùå³ò·Eí~üšº]­'aA«ÖÌ8nÉ7ëÜ:¬#œV3/ÓÖÙ+Ï…Yus™ÝË—¨ÙRM©ÞÆ¥ý‡&¯)Ú†±×‹9ƒÂôAm©3¯´ÙÕ»ù‘¤¿.XUé¡Ï™vÆšß?#‚“R7ÏæhÐÜÂ]s&óÜ)¿fjõ³Fúäéâ t±3ëuÐÌÏ5¾j…‰yû[úèáiš]Od¬ÙÝ'F-§s“›̶ñĨ`þìbSp`çúD/¬?®\ ¿ËÝOçéÓd©¬7‘>:ùVsžkóËDÑ|F£øßÛÊræeªY-,o¨Sm¿:š)Ê0^"kU¹ïæ§VÞÎ}Nú +˜<Õ±az•ãžïÎÝìÒVû(viŲ̈ÝÚ·ôñÝv–uÓwëË›ÙT¹;*°;‘Q¯º·éãî‰á¥Ê@Ç àu½UZœ`»%ŸÏ…ËåµýlÝ>zxœRïoNÓúÄè—<âtVÝÈî®ã_«Êö†º¢Tî×Ô¹©ìšW¶ê·Iú5©ff©!ý´ŽwµCüºÂZ‹²X–a¥—ç ¶9Ÿ;Òn¯šy¬²L•ñgn$éM/ƒ•¾úý°Qp¼`ëÞäW½KTgs@Sò–›¦‰Œ$i™lÁ8)û`sïË–¨3ê" "1åð ôÓëï˜âµ¦6Kø–±æƒ’ªÓôëK‡Ž žÞ(Ë¡­ƒÝnTÄÖ~`#BÛÀGamX~ß´ ‚S+´*ÿ'uæ¼1‡õȵ¬Þ6eúËë‘ üÉÐ(bÄ¢VÞõVå£J$°è`r/°VØZéäp¬økÆÊûQ@ T€+ b¡eLƒ]¬g“õFf8”*û§0Ùß­À®®úXKÕ鈣²äÍðÀ# Ié?ûÔíûAÝ_äEê™ãX¤¥yGó}hȶÄ;CŒZÒ,GÞ§¿øq4yüç*(úͤOÎvê…õÉÊ HúšÌ0Ütxåãnánïr±0:“.†ër·Ÿÿ’Kîeý|üô1[½¹]Ï—^Þ&+“Ä ³s¯ÎÈbÇì9©3 ‹šhîq~z‰~[Óß}ж”ñõ³É)7ûÔ=ºÊíì¼eäen+é£znýø¦ulmýU Ž2KºÃâW¥v»<Wh„¿.ŒM%ô¬™/Í,d¬9m^ÒÕÌýc®2“ßôe+””¶»®.…}wö%ÕM"@5EÝÖ­L<ëéà€fó…½£ïiœHJ ­›W?¢œ ¡š ¤ôƒÊɪ —ú< Ç¥1•9 ûÞ¼øŠSKµ6ùœ&_¸|t±!1Ö‡“ßÕ—fAŠ´Ð§6¿çv2Ö$ 0}Ÿ9\ÿ6“9L^wHFRaGÀIÖEíW­TnëÙ.ú`ÍÇÁŸ®oÚgµÝ“ôþé ;œN†œþDâ” +ÏUËšñÀF¦f=~#é$éËÿ½­ìç6^’8^‡ËhÔ(Á_sæØ½ëÎ._ƒÝîÆ()Ë“ŒÂl¤kë³ÐúñM-­íkë§£.×TOf*¬c€Ò¯]½ŒgŸ¾.„ooÅî_§`¹)8û™—½YPD ï€,¢bp“yÑVFý²+‹åך‚Û´Б­La9ÿ=åõbn®gÆ ùzN¥–t_†Ys_¾9viw;sx°Üâòõ+Ÿh÷2™>üz|†º¶øpþ¬s7&û¥{ ì6Sµö~¥™ŸÊÐØŸ=òHÒCÉÂz«õtj,î¯ÑKÊÚÒjwYåÁÍnI}ï73›£›QÔ¹Óöh`¾Ý¤Ý¥yïÉñ–ª¦IËÏ­·Æ¶7 3Ós«sÐoæÊuàNG…Âíôè®T__¾¿©¯ŸÎN,>ÍWù¹Ï„çuî1`lÎç¶[3w Çz1f4¿Êjzç7ÐÙp§W³ÒÄÑ3èüê¾Ñ±ÿé•&‚§TÁÆC¶Ú®ZhU˜ÿv¤lçß²¡‡Ðò¥nGs‹Ó«ƒø²S£*‹ª3 +2aúò “Þ¹TËlWv¾–såWwN ßÔèékJ.»9ΘÑ|ct5Å Ìzv¾b.Vî&*N› ™ZêH…Në$vŒ$Ùˆ_OëüíMòLþqtý-s3åq¬'ï€êZ_’ w yÎcþ~᪔aˆb#ÝóëÝG”ìó½æqw³šö²ž¯äoöïoA6YB‚ó0/Í*ßÓÆ”{äïÜa²^__^;Èm½V¿e̳‹Túpæà1}t2 šÅFrãÚμ¨å–,ª0†²²Ûú¶;ƒÂÆUê¼|5yçdâËqáv|â2÷ðÊÔœ/s¹í©é)n¼³O’ÄcòpÂ[zørü1¨Lô¨Ÿ±dö†{Õ¼ÍܬŸ}ét¼‘wa‹G­Îná0ÙMŽ*[ß6–y% íÞóÃÃbuòpDº¹t!w¹9µ´@=sv$¹tÝøö½_¥³ûkii?Te©r3ýBv´Å¯KÕü\ãJÊhªéc³p½ñÚ™™ÄzÏ‚Âô`ÑxxÉÞdÖ¬‹ì×ìÙZ7øíEkôˆÍoG°Éëo’tÈ»RRÞóæH’.@"ö çsDzV +o›Ë¹Ú®é Á|oÆGsÇwluì‹ ˆmì§ë«[(Â}A¤Ûo”šîÞšÞ_Ìï¬/eš²äÍg¶<µÞšw»H“×ÓöuùkîÁ½[È_U:!xºÏ­Éàû7—éÆÓþ @,ˆ,ž¸D?¿û“‡I­mIX²ºbéQ⾤ó'iÛ="±ñ6÷pØŽÌHŸíæx!›¾~,d×6¿¬¨[iwá%]%=ó¼~v²U,,ç:Òl€­/žW×fë–ì’½£€B7C{Xtð4ìJ™˜ìey£¶÷:»joly»Zºô6JB™o£™þ°ãybýìá¤+õ½jmws©£òüúâ×çI8‡N¬±B=˯^¼ãú–Fí5ó +Ü/þÉÚÂSåæN€ºbÈàØÜïæ6oÚíÜÜ}!¿<ý%y +¸xù–yÝ_5{ñåp Ø×ËJJKêÐ9# ¢ÚÉBîá¤Êžòð*À­öõÝF²0º³Þ¿éä­TºÀ5§ñnç¢}XÓýãÃõl4Ä2«ðå⹪hæËSnc5Yõ˜ ¶tvÕöº]*Lm•ÏQ¹üŽ4â"WY¾AU¡;ë+€â–GŸ™švÌÖÒ9HEÏé}5£ƒš½ö²¾¼Ú—Ï¢ƒà¯ò‚E¥=we­žù´9¿sˆ„Bí…*ÑDo +ÚI$O+ìÖó%³#ϧ¦#€5™¶÷ +°—éFúa*z€üŽ×ÅHOÊãâÞ¬œôdbt¨“@{¶/qˆïß•â“zZÑÖ +‡€TwJ¾tÙ2së›Í7Qy®Åiãr½F‡\º˜]Ù¾Ú– \ç:S³×¿*Á/2-¼\°gºH/Žç–[ÞJeÄÞæ´’©Õšw!ÞÇ1‰mßçï•åIY‚ç=ZìCºV¬à­Ä8^Ö(飯n'7·ÿV’ÒK×›µÌ_h”‰|i̺Mf´UÈ;G›aaãmóh—奇׉ PÛŸ-_Šö€bçS´Ù0J™béqj‰KZ™:œ¾D åëBu|q™ ´¢Rá¶¶`´jëöÅc>íl´;xõ=_˜Úž?˪§¯í¥ÊâÄ+¬ùhZyõ핤H¤Ék¥JZvÓÎ}óQb Dp¯‹› ë5”¥‡n¥&½™Ü‚Ô»&¤IZoª{ òöq¡°þH~Ü=)Æ_‹”^‚ê{€>çÈ#Ë{éã¹uØ—Ç™º< +!g¾Ô»M;ó©1­z;ªW2ÆK¹l^Ÿ9öZv3ûô­<†ÖØúò¡~“ÛÙYó.‹ÃÍ@+'òëK×§ vÚ‡³Š6÷V*õ<÷¡™>ª™ç"\¼XoO_Œåv¶u@ûñL3Š Š[ûƒ+ûä¶[IBÍìJîÑ´Æ–çºß«ÖêÛL´ ™·Âr¡Ä±Ñ£Oi4‰Ó±6W*&fWÖí±ùÀD®³öq¹± ÒxóËͼoÜ\,—K'‹Zqæ S›WO6.®.ê°/ŒoÍcU¾ÞÜw w×Ý'ô¶˜$Ýh¾>wbÐFÈ›­`>m¶ óç°ñ§SéúýcÛ£mo´Wâ’E Û3^oºÀË$µÃ®ÿ•áØyúäÔ>ña羬?ïÂÊ_Ï&K„òÝ9°¨¦ÒN+Ë_›’M”€•™\>ÉÍTJËs—;™´3·…ýMTa-tV=(òbs¸„—a*SJïïlâuéã%ÂA Lép ˜CåÛRñ¼ñ ÚëBþ9YÈ»jþæâéÎüeDõ;ëtÿÛ3§0»…ï±}¦;K|Éš63{ÓÓU»¾u8‹šxØ}|¯0 èüå*?é·UËž‡X¾¢~/LídØ—ƒ«¹†´þ€Üò(CõO3’7}Êù +‡Í2¬……äÊ%› +êȺRÚ\óÅ»ç¹t}mô p7u­áaøžÛ}Pü鉾oo–¶ö7¬Å‹Ó{XK¥ÀED@5N-¶•GØ}ó¦a€ï²­ÞZ¿ʵÈtogó{³.œºÙ98C'í|iuº:h~qOóß¾¸ç #ÃÌ6Ñ.ŸºIŸ<•:8Çÿ[õ¼ô‚®q9J'{ú…=ãX3Jj2”ÇàÔ7é)ÀÄÇ£m¢=ñÑÍð W¸¥\¹Æïu–/¸'¸»OÓ½F½Qzj5^+~ûªHìñ1t"þ~#ã;'R6 ž0 OЇhÈ2¹`ÎéVç÷Fë%#¹±k¦5P'èßÚ“Ó.T½Žˆ˜u L–ÓNùñ[õ ¥i©UE0á¯dÑÛLöPïðî|Ò´(þÚÂø€ô}ã·~Q8±rÒhÞ‘Ê,]j5î‹Ý⟕V(§D„•ÇÇØþ«Dœ‹_d¿Ù|>]üwí+¾MI•[eØßêCU¸wñy²úS– ÀÂÇ{àQ‹Ü¢÷‡íˆ>ýü"Ì/:ò]‘0¡â‘E¾€C4Ç´¸¸mÑú¤U}Åd–ç•Å•ÁtØp§Z癡ÞMr¤ÖCÇ†Š¶üùÉ?ý†ï;H»^‘7¡ƒs"å™ìÛˆwÚ®N¤È÷þì×ä®jdl–¨ï'¹£wÃÉ ‘rJßÜ“…*:b¬ŸH¦‘ÁpÃg쇯1L\ÆÛaت$wbšPØÁl±É’…Vûê†IÐU€¸mÉ©-âϰHê7lÕÌ€EQH‰4Ùþôœ7 !ÃNBfØ'OÞ¡Dç©’àᨠÀb„p;ñûS¥žh1ì (üx72Qlc±ß#rã¦pÚ°Kø7ØÙŸn¢ ¨“¾UaIC³îñuój` ¹ æ5­ÃüvQª$ª”Y¨˜¨ÿÄ<¼ÅfŠñÄv·ô„ÓÛªç(ã€ß ­ êÂìþðÕv¢[Á7“SCs‹R«ÚìŸÂ#Zp~Î+÷˜ˆpð¶²T¶Uׯj('×@Å*Ó7ŒXÐÖf³ÒŸ~žÁgXìŽËwŠõr±å¿Á…LHÊzêd\˜^®UüÝ£ðK½J¬ÿuð9œ&{XS&‰o#4}¹$2zlvÕ¼³g×Îî”…Ù½ùÙµ§ŽŽiÆòá¢î}8ôþ¢KúÚI'“{p7^6ÇVŠx‰µê}ÕfWެ§Ñé¯WS£s{¹‘äè|Z?»-ŸŒ&+êÎèÜÓóñèìêK!¥ïºðÇÆè„ÑÖ¿ÒðÆÚþݪ²y·½†“sØ%G¥•éæg÷vÏs;[£Çâkî%µÐ67Ý»“•‘dþ䃾cixO‚‹›lž¼á26GgK©$.íÛèœV8ÚlÏáÏK¾´•fÒ_Újsz¹ óÞ~å‹,eËe z£}9nöTº­dÛN¡~¢M¹—_”ò„JËØ÷ÞúÞ~t`d§Ëªµ÷D·Î†~¾4þ?7jÐööE,}·Ýj-µ¯Z×KûÊ‚q<%o º¡~7.žvç"½~ÌlÆ:’´´ç…QØà ÷­›…ÙóèA¿f¦ÇO›µÝ¨AÛã7VÆt$vsõЮŸEjL_Ì.•ö÷¢muï§f’Ë£wQƒŽ$•‚²¶³Vkü‹³ôàÆ zù])œd#W:Vh.&÷«{G4èH24¬²1ÞØtr{ר‹ïië{IÛÆA§CƒŽ$asÆÎõ¤Ù™„†F£gW¿¬òA&'C»jœØ5NÓ}>8èuëúìþˆE £Òâ­yZ~\ˆôfþäkì öÂÃñdÔ #ÉVkytºÕ^œmG­µíØ7{mO®^ª1ƒšOÓ“™Ê :’ìY«1}=»¼ôz9èX¡hŽ¿Yݽ¨A•ÂÎa&jБ$íjÒt̵h—·J¡qr=èÆ—•‰ÝÊÓiä ‡Î Š¦À›ó£©'6hþûKAtylº=¹>GàétóöÕ|›i*0¨ÝôåÔRÙÝúzÍ×z9?Â_ÛL¥®¢5®2Êîë¡=èÖX×Ù½,9p*ƒÃ²A÷k•ÍØAwRo͹˜A¿Í*Ç»oÝР0 +vG¿Ù-ÖF#=ÙªnÅz¼gÜÅ šSΔF‰\ëîüøIùvf)rг›•vì gS•ÛfhP…»§œÏ¯ebÍÏž¯;­lä Ws'7±ƒ>ìfˆ‹E­õ»¥\ïf£ýzZ}YL~‹ôææâ64(‡mTÖ¦ãÝSîò»¹èA §êØEçp+jÐVëëü8œJ6ì½>:4³îL^gƒÇ:C3ºØêêYëteêí&±ƒ®´hPàbÞ°³‹Ë9>è‹;4ùðmŒ±r-s©nÉÑ’ÿúmïå©_çG’_êúÒ ›í„œÏ?§Ø kSù¹)œ,Ïrš¤YÌî aevÅùú ] A)3?¬•[¹ÜÜ„A·GCƒŽj™ý'>èâa*´ÒçÆJþ… ºvº»o)ÿóSƒ¸*QYù»ÖyÕë÷1_»£zùµýÕ˜†C³jVè+žýžï-@†½jLëË%¿¼Ÿg_{d«ew]×è«OÞýSyµ¦ì­¡ïÞ×´²[Þ±â¾f•½Ñs'îkFÙ/mÅ}¿U޳/˜¯ßæ”ã³ñѸ¯)åd}oŠC,⻩œŽ¾¥¢[/*­î¨Í¿ö’ÇMåìtt…}õŽ™DǶ•³ÇùµÐwïë®rþÅMÇ}ýªœ[ùlÜ×åjܾŽûþ¬\_\ÍÄ|ýn+×Ïsq_]åætIëý¾®ÜZ·nLëÛ–ššÙ1c¾§T÷NÛ‹…Øý¸š™¸)Ä´¾?VwǶc¾–ê×­óµ RŸzù¼3ýݼ©Ÿ,-w®¢¿jíƒÑÉéí¯ôU›\Ú ~M¦6×W9ÄzhŸÖ©.ÛϬ5}ÍÎÏÉØTùd6Óheô‡égÆÜÒ¤ à]%C¤gÕÝüòÌå1I;h­©Éõ…Îd¶p²f_æ® +—'¹«ür +Ê”B6“*e³™…YY{»KÖp6:Oy\Ÿ$U¨ÜH5o>í[Øsê“ÊÂÊEÏÆ7 Ëž¦:¾P]¹Ÿ†34–o;‡‹*ßÓ&WæA=' ÉÚO¨é4¢5./â+”bE- 4‰Ê˃‚h šN1nл>ƒnÌ»y¬<11îKÒ¿7¨0JÿKbÐZ¼cSò ÆñPà/Ý;5%­58(Iÿ1ƒZã(ýÔ¸”ö”I}_~Õb%é?vP”þËQƒ"¯4.+±k.}x?(ʱàE‰âÖ—ÇÂk=ìÙÕñÅ9><ýÅñ|qÈzK$ ®i|ß®Þô«Ç¨…¶kùÔRµ¤£[è‚®=ù-ëhH†cÄE@Ö?ñëêÜ©:çýóMVÖIRB°6ƯÙ:vq$àV&8=”Æ×éäHÃo›É$ýƒÛy.‹ÀÐi@¶„ùäP÷+P¥õiÕÝ8=€ŸIþOñB’˜¹ÍL\¨ü-§æ¯Ûþr}›Ny5ŸäÿÌí5t˜Ü²õÁ +³ÊpÏ,DÛ黨„]þûÙhÙîw*™ê±´5ug÷]KIö Æåüø V*© v› ãƒWU ¬j‚­*šŒÞä•Jûå|ØÅQÀ Уñ|cg"$«¶)·@`!©ïGsÏ¥•Jçt&€ÉLC‰ìì¾=Dgq]5ƒ¶ñ;µÙsîîµ·!¡ÿ©c˜\@#ÒVŸ½¼íN‚¬·7çQÁ©´(´ënf'´LR +l(þÃ'Ï Ñ½¸ë ²ênÌe¦ø”ļ&ÏÆÎLyȦ¾Å,rÿ0J + mIÐrug¼õlÉ‹ÓêOk‡%= ½N®\´ãÓ™1ˆ‹aªê±¥‘ä{÷·¼¡¿Ln¾KzŠ;û/îè `­ÜO 1%-sånÇñJo>ƒE:œÒx씼³?Ü<_¾ô,ÆÈüòéÞ±J¥x{Êo¬>¡³çÊYÿy&ÙY¡¼g^ò /ëìaòíâ“ æIuŸ±‡Å©«OƒXˆ¢½bܲ%ì0Õ·âªe.nb‰P¼tìϕ߿À|7CÊ`6šAoâýÊf_:& Ø‘²,èeì“Nå&Þ‚ì¼GQžŽÙÉÇMýËÒÎ.ÁFhâï‡Î;Ô¾£‘d tnSC›âÖâ…¸ó2Ì6ÝÐZü‰pI)r*¨ÀPÑB²å‡`2àØ‹‰ø:òâ[4‹ê¬¶‰ß ¯Ò¥dÀÉH²ÃÌÓ¤|ƒ6Ìçy ¨@1?ü1F  c×íz¤Y#Ž|Äç­X±c$ù®IÁ”:ãï'ŽùGnëÓÀó€÷èû±ëëÌNöùÈÐ@÷e…áì²$°õ­Må:êLæ¹ð ëk?i>eàüe€â£“ƒÆ³ñýmüDŽ<XCñXµGhI¬wñ°8‡à-R¡N¼òu;xÄc´îÖ%ýËâØØ0’¾¶„×í>z^?“l¯…dMe†‚A’Á&YXšÊ’‡É0“¼nëkg'{C˜7ådBú÷MùQ»Ï6ŒrÖIÆÙ$†^P˜§FØ}FXé`›¶»AŠþ»ÏHc¾Ïc¯Ù޵ׄ1Ù§›KCP”^[<è„Di}í4iL¤îG’CÓÊÍÚÌä{‘ €éˆ;Æ€%Èï>˜£ ‚e$ÙËêbdY„NÑ äCB–åòXÕMÂÈã“ÒU,ü•…²©×ÁkŽÁƒˆúÆP72D?êܰ?/ô(Œ:6ÿ#ܰ‡.NÍù¼ÐeqêZDŒ`&ò­:ѯ 8Oùnq²Ì+^ €’Nå€Û7P>h«îµóSg?pºCó +íÁ¾Ö} f »“"Š3N#‚½<^S!Ìd¹:‹Õy†p§ M)#8&q¼BŒIË\\·ØRçÄ`{r,cºì§¤E{®õÑ÷afO±†è÷.€ØC65@7Öa +»Š4æ +óžÛìlh$ ±Ë±‰÷ˆq>ˆ—„ÉCÛ#cû}»Ÿóíþ!¾f)pbˆIõ5 Ç.‰#7åcñ„Ib +·‘èÌ÷€¢åV÷Ÿ6jgÅÛÜx¹›/¸_Öo +'«ùPÝHòsbèúGÐED }(†®ÝHòsbèúGÐ$?'†®](ZðÃ1tý#è0[ÿgÄÐõ ë‰ü` ]ÿ:Ì©ò1tƒ£?#†®=å3bèúGÐ4‹ˆ¡ë c‘#èxcUÞèÃÙz£ÀHæs:ƒÄ‰wÄñÝt?q<³á뽨8¾ÙhšV‰ ‚‰¥#-ðý|à÷B!šý÷o°üðq|r ¼+Ž/dÁ‚1¼¼³6ï™WøÎâ‡:˜%à=Åß^|bÚçALÿ1ˆ ¿,EdÀÑéqÓ—Õã"¹†’e7cƒvCGùË{ãåz¨El‚àÄG>ÒéVžîÇÍþÊ^@ã ìuÖœn_vŽêGé¬MüH†¥ôM2"ïtLÇÏØ¡ˆ›‘>:OlˆÛ€ã:2 8†¶/ÄoÇÎ q… 2b$e;™Ê•*× +GÅ^·;ýAÎbx`2°Îw™-ª’/)õ ‹¤:ñQ½"Æå±ç­!N¼Þ‰&ÇÃièãÚ?H+ìAôq8…nq(àEØ ƒƒ#ãb¦ŽGÞz¯E¦ß”| ½|ûá\7ÔOü}zt6­X7볞3ƒ²¡I]Edk„öxaÙ€ÄNýê@Djqì(6ñ°<ÿ̈ÔóÿßÞun%eë'àDÉT €$IEQL$AÅ€J˜¹óç>û=ûTŽTQxgÍ,»WÛ„âä³ó·÷.©7»@¤ÂÛ"•ÜÚÙ "ÚqN¡•] R½f- ´ ½f×Ä$iªÍ #,à Úk8X8¹†Ò%ÄP8c:¶K(бÍ=ÊIÚWÛ ÷e§P8È fAqw…³©Wn …Sç êý +Nߪ°k(œ±}Ì¢~6^š&¨ó'›Ÿ”v2Âkä1Mjá­ªAS?‡V,Š ÈÐØjƒ$dY†¹U'¶ã\P¡ÑÄfÁ…c–HyTÅò”½l7«†¤ªàbt"dÖQ=ö éÍEœÙC§?y1t_ç0!–=oºÃÉðÀh¤I—Ç*unÜ¡ëþ%W =pUˆÃ«sxòÄn "Ú{Oð2áñ×»|È‚ÅI vó©;\t‡v;òUVàΖG‡_ò¨J°›o|Øy7@ùÌvû•~ذS¢RŒ· :(`QZ„]ß ìæfŒ;­V·b§j,–Ëc‚;˸MЍ]ä;²NUåâÒÝ–Ô©¶_þ&ðm»5»½†B=¾Çš1ÂÎó½u:2é´J¤²¥Mørz`Ø©ûá Þ5ZÞÂn¿R÷ªv.lw_ ÕìÖKϵ¦ªç8Ï»æÉýö±ÛB‹‹õà]ž¼æ¬DÑÅåµ$ôëOÅPÍlÇ›Cn5ì¹÷S(¯¶¨n íùÞo©±šױʛ§jVÇ\jc³8I{ÝU%9½:r9U6[— +ÉÙ¶Âíï Éå„4Ë#®Šë3+"·)®ÏÆy2)"g8?£ºo›ŠXŸ:—ÚÖ‹n!”R™KmûúqÖï ñÜŒ=XZ'¹ëÁJºÍ–^»hº­í0¶Ðtzz€Ì +·#4–Î(?Ìöh:=› Þ}q†¦ÓÃÒ9A>ê£éôlñÆ‘öÛ¢éô°t†ùǶFÓé5µ9Cˆ]4~Œâ®Ñtz~9¯Ü šNK§öŒ8GÓéÙYTyáv€¦Ó³µË´×¡éô„ÑÒ»34–N;êM§Ç´±¥w§h:½!i3;EÓéíŸÈÅv†¦ÓÛ?ƒ +SÐt:ME6Õ¶¦3ÅŒì MgoŶEÓé4EírÅhg+f M§§a¹¬:R,£éô8<‡­Þ%šN¯.ªs—h:=o‰NMa‡h:=,F{uŒ¦Óƒ©<#;@Óéaé4üÅ1šNo1”Òø.Ðtz + ÚóîM§‡¥3­Çç\L-±¨©/¶€˜ªH¥^m‹À'«Ô‚—.v[¯NoHæÒÅ6õêÌ¥ kë´±²­â +«¤Å‰?._¸­# ŒQϺƒÒÒFèº2ÒÞ¬ºœÒ1e{H|t ÊÖu6’6”˜¬SÜɸ˜R#¢Ù÷¨R#:UkDÚ0kcËœ¢Z–Q¡;[˜5½x Už+k"¹í2w&F*tçdj8 ÊÉe H·ƒìÙ§¶B 'hô…î—¹³dQt\æN&ú³„U2+s'aßL +ÝYv!¾p 7g{y®;ÄY|7v¢„¦¶,OÃR,:Ÿ.9Î<öÐÊùD;No²À[ÒmŠýuY+PgÄa•†kÓmo³D«“°t’-TØâp`Z<Ñ¥!£3Ê eàïÓüÀ.M4hlƒuØj4–ùw …±ÿŽÏZo‹—oòq®ÜŠA:pq÷-¶³ËSEvA;o ߊB…5B +oƲsmÖšU`Wkߦ> °ömºÁ—$™Ã6e„Æ,•ü5( j,`‰˜Éx—áR^ÎUKi¥Þ«™k IkÚêkUÒ[Ý*™–b¨5‘#Û!Sº»«`ØÝeî!ÁÖÝ¿þÚÈ F>‹¸Ó¨N;í8ÏÀµã´Z5W”NU'Ñf!Õ12Øöð"ÙK{ Ñg¦@ËxGîdøJÝwÛ]Cu…;'u«­W¸3“Æa½wSáÎåq~ 7W¸³Q)ÏžHQ)Ïñ54ªp§ƒK²€±[ánc½×­*ÜYÍj^}øÙ °Ë 3bXKîoÀºlkÉým«¤«Sóä[ÖZt»ýÌ0bÂim†"Õ"ŒÉš`8^ªCÜ út7×bo²ÖÛX.îÂ.Æõ$b%ÎN•Þ¶›ÔTüŠí ã:^ê!\·“aN"ºæICã¤ymÁõÜI÷ó³<‹¨çÍW4$³Ü–1®ÒíÍ2gsÝþøj. juÈCôNÙ[Àñ½¾]ÁŸ¼;ø9Xß ÆöEè&{(n­W5<þ•š¶X’ž…ü~ +È)—‡«Ã¶O¥XƒBwû^C<Üb=Œƒð‚êåBA“UuØŒ«ëÅnïÌo¤^§è¾pØ¿çÖ¥Þ\¹:läéàɨӉ ¯U¼TØ.”дåÁëÔ—¬e?Å™ªðp~]º/üËjÎêŠs,Ñ2è4~pØù¤úF <n(“ǔؿe̸ÓjhxmØéÑÔ—xUu*Ö}˸#f€Ãæ‘a§‹e7ë6ìÔ _É#»P·SV~Åo„ÿänòiå¹þús®÷ÆŠJOÆ~úå^{c‹Ì+îx6 ™‡‚Jè,2¾OÚO•õ˜E‰ŒÎbؤŸ‹Ât_ÚT2ÌjA­ó£ŠÒcµ)dȤ*ž2´ÊpHBMaãAÙ­2ttá[Y1ÏÇcÕEU2 ¬RÙ`-X’îK†¡U†[§[™¥d3´ÊØ*mC„¦§×ÒyR;½ìÌOA3Ü“nu§»uî‹õE·ÍÆQ³AÛ‰mÞ—´IUzn<ÚØX%¹ÒI†Ù/«k¦l©J”­¦£5µÁÞ†Væ¬Uãä¸6צ­ú­Ë;ñò܆uCjìÙÇÊ»ÈÛ@­ËÚn^kŒ´mÐÔÄŽ +pCÂÎÍÑ+e;x±MZKÙ4JË’}L4Bj};cêgÓ9·FaF•ÝéÈczßÊFXÀÁöÏt“]ñޛɮÐb™¤Âךì¸3³ª¼'¿ÕeeÔÆòæÈFè6…äæH¦®gá ,[Rç@N-íÂÆ–óHCÒÁ¿¼³Æy,HãŠ!ñæN™·z[( šÞë@9Õy®L €›jÞ˜ìŸÒóþž\lêX> µÒ¬7¶±ŠŽ]kÖ˜ƒ¯Y±Xë“”(íVlc=;+fHÓÀ…ÕÒ¡lŶ@ZÅÂ\¶GZÅŠY5¶BZÅb©ok U   +ÐáãÛ +h¨khÄZ b¶D*ÖÓ¨ÅX.‡ƒŠzrÙ> +ÐdH +  JGnwõgå°(Ÿ­Šl[åS!R©(Ÿ®UaçEù,TdÛAQ>|+ßê¿\”ó$Ú¬€g»(Ÿ®nçEùÌë#ïª(ŸÕú•ŽŠòÉ­ +0¨©áýÍs£Ù ֯귛ÜPŸ§;È e¡®ŸåÜPŽêú™WõÛ&ÚV¯®Ÿý8¥mêúé¢îœç†RÕõ3· +熲W×Ïp‡ÌsCÙ¬ëg^ÕO.]lNùl\×Ï<2Da¹rP×Ï +’kGe@ «úÉø‹£º~æSÓ©_¹U]?Í¦®Ÿù„ "Tm×õ3Ü1»ÀWn.þ!òÊ]Ôõ3¯ê'—-Ôõ3gtXÛA]¿ iU?Û¨ êú™«º†QÐ6ëúÁ$7FAÛªëçón¹®Ÿ•z|Îëú™WõSdjuP×Ï8«‡Hݦ®Ÿ¨ÉWõSÅ]l]×O' NVÕOŠSÚžre¹’‘óº~æUý\!b‹º~æ×*DêÖuý”ø-õœuò\mU×Ï|];ªë·éî瑩Ÿ¹wØV=¾­³x¨êñ9Ç=èVõÛÍ¡­ëg€{°mk«®Ÿ¹$ÏÙ`×õÓÃ=HØ6µ'qÛº~›CÖáGfuýÌýÍš(‚-ëú©÷T™bÙI=>ëAæõø'Óá«úí¦ß&]ÚJöm]?¥øt©Û×õ3¯ê'!†œÕõ“/ª~Û¡ÒìŠ9ÆgÌ^]?S1bGwR×Ï…k½Ÿ®¢Ÿƒº~²Vt¨ï6õøì£pu¨¥¦®Ÿ0<_ÕOYyûº~AÓª~¦YÎlÔõ3ïÒáb[Õõ3tÒ‰‡Ùª®ŸÁ¾ðUý6ç…³‚y,ÌÕöMvKåŠ×õ³©WnY×ϼªŸ£èAY]?óá2^,[uýÌCÉÿ⬮Ÿ9 VÆ‘ÕõS/¥²ªŸ®<¶E]?S!ˆ—aœ×õ³,Ã8ªë§ÚI•gºÖr]?sæ° Å¹@¬ˆ}«N5žFü™±ŒÆóMć*¯Ôs7gLeÚEŸš\góÀ{lQˆëþñš¸ _ûˆ»P×O<Ž÷ÛD¿ß{&zE éÞ1<ó],‹rt±|øJ/Öäüz±$}Ë£„wï~gØÎ£ðlRk×ZìsþúñîÅðzzç‡ÉôGÑs~Y=õ¾¾{ö÷ÙhËwðñä©ÇXo{üÖ+eн}ÇZC¼%ì­P¹ºò‡Ó ¾•ç_º4„ߌ/].NÚt‡‹·1Y H¾Ž`ªh°X©ZŒõšË0Ó÷/­pPo®üLcþ^0Cå‰J±Q$*ÏO§DµÝú\ôãc@®ºùþ²?åàq²uOD+7`/ˆòubàòà2D´= ©î“òú(Jö }Ÿ’½U65‰ûÈ×aåuyÜþL+æG®s[r–’QwÈŸÏÃg§îàÅ~ `·-ø"çè‰;tÖ«¹?h¦£Ÿ$¦+k ÝTèæ!8!Ó'³Q”„Y¡¹äÓM÷oN¥L%Ñ«Ëo2ôò’E¯®°ZODß÷#ø×ô!û¹"_$ŠßQôñ¯Þ¦ô‹šŸ+×ù|ô„·Aü²Î¦|aø ÌߌñM *°*?½ÿ°D”©…ϯæ²Ð¸¹y$jãz¯2ðß7È1 +Ãl‚¥g]ñÕêu2tâ‹_ß—}Õ%'âWù/ÇBÙ¦¬?¤}ù…©¦ühÃüÄÄçK Ÿåƒøa—ï“å~*#|U ‹íôq¼;ú¬儤hµM€8È­]´Ú¥ í¢r+–o'x$„þ$æèm=,Ú`¡p'æ¼Á¡zKô¶CPË1‰þLàmk–Î]͹½¢ü‡?¿·õ|”ïþm;Â÷B“t2=íûŸO^ã•vñ#y”éûb)E®1¥ýHe÷AÍv¢ªF]ž]4Û%¤fãÝãÔI¡ëMO^ïÂUa~ƒ=‰M–*ÞúøØPþ§ÞL8Wt°|Ý«Á å;=n†Ä­¡[ùDŸu"°X!Ðø¹W£ýë0~…#ˆ.ø5U¼£k ªÜ"u SǯøM¿0ðüÆó®O7)H´É#üj»àã^OŽùѼ(Ù£º9á«—˜p?ïq.c:×­€L8D_ÄïÂ¥è(ãM½Ìº•L9ö&cyC¬ö.x3ì‚üÔÌÈÏåê> +c„sWp¯Ê§Aî•lÜ«FoƒeÕh\žøÝgí£ôìY^å3¹^¬Ðèè¡GIù ½3ßJ¥q"—ÐRÊ)¨Hà€‚ªâÆyªCA3ðêþä82úùnëSPuâ(·b>^!C\Ž¿âíi€»râÙÀTRÀCyT†ÀMй›òM › †>îL—ï!^ ˆÔ’ÜR¥ð}Åã°ñ@<‘Ä…>;‰€„×ãÌèŸW4˜JTߺ„H«Îî㯲1èA9±Ë¦ð4|r*—ÍcBYç½­G fÜÈièë÷ Q:Í|è‘6‰N²H9Û·yÕã‰D*`2­ Þ5Nâªö#À&Z› «ß)ˆÄi¡?‰ëÚÉð½0åé]µCJ-»<è¸×ˆ +æJÍB_äÅÓfF&ËjœuºP.–(Ä]B»_J »_Ê +Ô°ÜhâÃÉAäut_Yüîðæê,:Ëæ 8÷)í½©PåÀÅ/’߯ ¿Ö}ÔþJ¯ôŠhÝ YíöKúê…Ì*ôyGLÇ1–ò×3èÊ›@é¥JÖÅ4¨®¨ñß^òHiÞÊžDˆFéð -õC”Ô&e4䫌®u_¶€¨+rÜìio¦§½îÃÌå™Ì‘Oñ“Ç X©@“’šèÃÛh+Ëàõf2^²J¶ ´×ß~4_c´/Û§NtvÛ«ÑÞÁòQ“YmÓůºhWY¹ÆûH5ë•ÐåÚÁœï‹&ÇßõBëUÍxÓÞa­L†~Øš¿?‰¦Q/£žï2ÒR›,ôA#Y`UúY® +wpXݸÉoc²–?*¡î¯ê°òQÊ÷òV†‰g-ôŒkpgÑÓ.ÁŠåÐ6ùRdø°>0_jÚÔÐÏR'äÓa"N†| 0{§XhÙI–/5N2”ºGßø݈Lãló™¾'©ûêꨆ¦"Ñt»%D-¾iÎÿ²y©3žè,”È ><¦£³óºáJßêt] 6n‰Àoªœ¹¨ãS©£ÔË«2¢v²äøÕ]G<)C§«zš.ÜÔ䤮”@ÖEz ü`÷*’"CÍ`ÑNž|ªgšbÌ•ÙÉ¢ Ã\ ÐßM´Ô ƒÈG¿HLßë!ÍBãå=È\[@~º0+×àVfÊm´üOÐÍ4UšÄO-P/ªô(p3…+…¨@%G{Ó÷= +¢‰º‰ž=h½û5HÐâÃç„ö.>²zÖ˜çh¼ÌÂh¤è a_@-t–ûŒ 2//I€86Œ>K®¹‡½OɆŒZâÏÜ+ßRlà\jû, ‰X ‰Õ +H:öÌK‹ÅñW@¾XØð sv-li |ì--_NõöKBO2MT´]£²&ÈJ¯JJ–^>¾õa11°nëˆè¥²XG>»þ>»]Dgí9Òs2™¡Ëƒ$j·’ø&êß25;“þì¶¿_ú~·%·Í`=&„S‰¹¡˜×@þ&0B·$XA_‘n_J|$‹ºñK+ÖsEËœåcQ¼½ŒÌ«o|Øy@d&VåF#?ç°Î-A_¾ÔËì>¿wòE@ã‘/Xs‹§ƒbòž€'ã +K‹JK£y—GBr6oóEÈ¥ÞçÂ"<Êf2 +ý&R¾Õiðû¢iâ$v6n*Ê“a/¸³¼dˆ]ìŸiyä0‚‚ºMX\J0…UÓÀ“pyäÓeZRôý™”7ŸcÐ_JÞg‰›XîWkÅ ˜Â+p¿ d]U‹?~þ9È4'>牵JCM@µ£3Æ•„pvÆš±ˆ­&4 ôó„Ó3vôêszƈ¹ß éQ,¤×€Ë£X yšiôÛ.¥pÆB/ÇQ'»AV›ûÆ×gÚÜD×t2ÔKµÑ]LË»Q}‰éÞxéH!þ²aß)G›¬æ±_ÌÁ4£¾z7ƒ÷¿è"Þ$!ס6räE6JŠMÔb«H7#kbÜ÷XæŽlÚPS>ô?Q_p=9Ùì\>åê9ùÛZ;/{Ñ-ÈßÞÝåü)é{ÊŽ¥åo㩌üm.,[«dåo/š9ùÛ»N^N“ÁnR¿ýèy?Cb«fXå”M†ÝO±R.8è•Ö£jóäñI™œI’ÉK^œ$'ƒ‘W†d6h^7Ä%ù°·|sy¨°îò^ýåE?ñ˜.¿s…Zlôî!¯i`ËÒ@$k¤Æ¦ÍþA½âô\ÁФ†ãoìàHñ¯8×wõ„@Ùò굇÷ÅF‹œVi•)¸±ÒL´3è4忈hµÁ¶ñsp—_ÿðþv¼¬„Ó¿á[ɾ¢­¤à.ÝG%ÞÐ,92Ñ0å¶ Ü6õ¸JŠ]F¦½ö«!ÞQá´ÚíÊÍžwÞÊ‘ +·¬0 ®Ó£¬¯¦\"šÇFc^)¶D'+Н¾ùèAΖ‚#ü‡I‚:ß¿…âÅ v©P!tL#؃ä•[^ýé$å{å©Rí;J [Íè¬ÚÃNÐ{±—Þ{XÛâuøFÞýð«Ê»U_ÐZü`ÒJPeúñµR !ô É–´wq× +òn&,‹MP¾ úbvŒ 4hŒ/uºÉű¯L\ã4»Zu¸Æ¤Ø,œZ¼ÔQ®™ÅN.º£ˆo’70ñvTËŠáAû²áåüQ’ +¸¯:ï„fÖznóv»Þûu0;žþPÃô$IøSÁ•ö¢ã|‡ó{Ö´÷úóýpžFoCûÔà£IѹnDZßë9åëåˆFꢆ7Ñ×/_Š–ÞÐÜÜÕɧ|ü”3H¾ÈîEµowè,{ ™û®StaѨðV82Fü2Uº?"qp1ñuny_ÒòýH¹%¼%xCðÝoø¤C®Â|ádk·kÝÅ|†›,l±&%öX5³Ò5ÔÝ Î\(¶fLÕN¦?§¡D‹òKGÀåÁ‡ÀÞÐëô(¨ò³•ïVµ `·l=žGgãn… ÎXDa;y¤(ò°Y4áãªÔq°ºç 49¬¡sðB¢spSGw±^¢ דí]•á0œáh(pM >%º÷üœ™úõ+ýŽaTHtv>:#>O”¿&Š#3ø2—(L&ú 0×Z³ó+ZLù(©Em¦ÚõVw"©ëˆF^©Ö8 ¶Âá÷Utå–ÅžK)öE0&^~óL–s«~Æ„ ;å¼ ²nqc8é¦ñ…Þ4`#&í]{¾ŠÎŽO„ÌJƒ¶}ãHÙvÓ…@ @{a¼—§Ñ×ç`žöž½¤¬5ÈÐà°b'¡ÎˆÞ^*î§ÎZ'…ö½,ÔâÏç•«\¥_Êù&wñVéÐïòBßD>È2½o··}·vûï)psŸ»ÃÉp%B=%ÑÀGæ®f+$¹gEþ2ú )ŒêLèù¾Ÿsó:âû82ó}£Ý·È‚¡—€’K.8t¼žºh»ûUÐJnU XB×0¶ó;bÁ>°—T,XE}ßß@«WQð—@ÒioïäŽg¶ƒej¶gö­!Ì„GŸ›^GsÁ‘øÀµ:Dô¢z’e(E4Òî^o`Õ,]¸a+ˆ7œo†ù)„´ÅüѳËšx.¹Û¸þ¶œ‡yaâ.”-–èÂk(s-ùEŸ;4˜4]¸ç—ØR Ï&‹GŽ,Ð~–ª°ïçåÅcõ ¾½w?èŽÛ?ûˆBDa~]‡/Xˆ-l¡h¸ƒëÔ ßÔS,dcƒHõãú{‚(L-þÔÎv{}eÉÍð6+FêC|·d]¼ì);½备_è IÙáU]´Ð¼l 6Ó˜@ ¨/2prrÖô-‹| ±&à•Ýíó[|ι É“ˆo8ÏjGíy®ò€ÒÞr¼B>uØSìÚG,È]"Ÿ"G1–^~ÃÕŒ(oï…D¬0G‰‹®àe…TPu8!ÿlT<šas‰Jù7 r°ÊÜØ{qAy×8²Îp1[ƒŽÌ ï–"«d>G•êaFIÇz0Ð +Üó&ÔÐßKÁÛN¦ ²#Ò•X0—¦öq P_—{Ùѵ÷»á~Ò˜®Pƒ»<Еst²üû+¬é4." æUôêvᦠgý”0¤¤Äô0Ad¦|J{Ý÷ë0E2t‘õ¶NwÐh«4Dà‚žŒ§ç'ˆHµM:ÀQ'E¬ h½èìö­Æ[G_²Hù¬À¬(΋”?¨X OV©“K­OX¢O›ÉÌéuï¾Ò˜ (2쌤ø8‚¢‰»pТ^8ƒJ®ØQ­üd =ñ6½XGeà•ly…ÛÅÁ²¶)R!™!"$4À$Œcu$ä–+ÎL¤„é«` +£Õ.‘`l20;a¬Êª"•§)NJÁIMîr·¢à¨ )õ£4—EÈ(2²Ðhcó8AGW +ñLEïŠë3Ë©ú«ÖHX,ø]rQ t#‰„YU´6ªYþoµÆÁÞbPfãš +nQ14Õ ?Wm2ì‰_èéÍ`¡M`yìŒÀè%0 + Ã)ޤÅ£ÊÔ „[ bhaû† +·ÂîˆÕ骞%Ÿñ$§‰w¢3¦^¯SORÓ”JZ >–‚¡¢–‰8åïdZ0Â$Uveô'W5¤|±FûTÒ8œ,D‰»asvÊÅ]„dÄŒM{ `رdh–8ŸÐ)fró•ê@ÎÖ8%.+"¹*ë-Ù­I§Øfv®â3ö°ÔÙˆ Z‰ âIT7©ÒÄiÏz ‘áXŽ ÒÆÆ^UÑ}(ŸÂañ}I ¹ýæ.úT 1¸Q¼°­ùÄø4Óè‘âr%òË•ùäa¿rLt"‡¯V ^;ÿŠÒ‡ì{_X“ëªI…pD{&#Tͽ’Ò6FP[—YʽAíëqÅ8DQD³ÃÙY=™e/%•[œsAc½"¾ºÆ0…á……È<ØÄ»´Ö𢿓ŠYÛË š“Öl†´$¬ýørŸ@ôàO9<›¦_@§ùqûËW~WÚðÅ{ÿ¤°oÝÒ0c1®¯z‚ƒçý˜Eñ:tï~!Â.€½}¸·dù–™x Ö6÷h¹ïÝetªWáF#¢_ͧxe#ëwÍ}õ.3:c»å¾¤ÞuuyìqßBæ(K Vë§ðqœ³€Œû,æÂp_Î^Ðâ|f°‡s$qùVK¬Äp¦-N}³N >`ßüèFgÕî)V]ˆÓÛ^ñaº ,$¦ï©c°[¾ÒM —m#‰}ÑDTþ¢‹ƒ›~Í`x + ¨@>‹é¹¹ ó¹ÃÐ…±ÁV¢#’c¿mú®9Ϻ<å›â´SÊÓÍ ›Ø”‘î¶šÅáÙU±8l´Šþ7Ïe…=X]jôëE‚ðä"囓ý^ù&O÷³Ý«Ë O¢*w°úSFêL¸¯µÃ^†n`ÇN`ˆNìy Ƙ…(.ôv<þ†Èi†sgÇïKª´¾O¢ý½Ò3_CØhœ˜'8œÔÔrvÇ+Gd0i}Ëtvö3¢|”B”(˜ÒsÄ;x „•È‚v_¹ÝÔÐ}„ë Dh -™s¤^UBˆŽ/pH LèQZ”Èø½\ss(_¦¦š“,'ó³@³ªÄé{¿ÌK™ŽŠÔI¨b) å퇺ëcDšèÇôzz˜ÇŠÒ—b}¤W]µp| +V¤TšØa´ºÓ®5'—®î”êx‡š“Tÿt§Û÷•ܨ³æÖÓœ8»¥ZwÒjN©¥š™ÁŠÕš“"?Œ¨;íZsrmkîrv½¯,hN ™Ä—!šqq©GŽ…ñFb éØ €4¤­Cp§)ÁX,·Ú†±[Jôo/Ñ#I;°À¿Oõ=àÄ˹›#3èq–£Tƒ§ +…u1ˆ«aD½+ŵ ñ´èÕi‚§†wyF¬£Â!™0ùjÈŽâI't¡•ëpˆ¥õ#´&³!Rp[µ*RÈ&'r¬€?'ÇÍö1åïIP¬£G¾ëV‡Et,|‚tÒ—*Ö+™88:±ëcóœDæiübÒU‘cEc—>2øž8‚SÒr8ŸÍÅü )›3—®”˹‹3=2· ¾®(ðƒÖJù<½€ç_‘>@ûxš 4°¾ú7êÂoqŒN·+ü¬µSB™oüèUÈ&üRZqyÆíìqPö…,röDJ=ñ(Ïúœ­G]¡Ç!ë/|X¦åçéfs$~”=ŒÉ'ñ‹°ü‹ïŸEÅ*3L‹ÀÔ²Â@>°—þÂÍĶ/‚Ü#Héýô",*{‡œ@‡>‹p<ÅO • $EúJ ðYÔÚø¾Ù§»{RÈQ^ßÕ;$¹âä +“¸_Eä$åãÒS±~t6ˆëC…–œ‹2Œ*¨N(ÔlÔj³ªF]æÍrXô`™ vÓ‹x¶k§¬ûï.Ýü¡¹½§Ä#0Ä)±tl=yá&$mâÇpºo"Üb•îê$—…ºôÔføW]е¾ïsä±ì øWÔ  0fhñ.‚ã.@2#¸_#È·Ä.ñÜÝQ²Ñ ò÷&~“e(—Ïexã>‘ìlÅÈ "“OÏÍR£î¾”Ø-¾šbJU¯2²T¾­H{Öõ©Ðéc”ƒ…øóŸV<}Ïð¯J#1ü#Íåãö^Ô£iŸ\=VJûO…ÎÕÃQyÎßàLÑË[Èè¿úŽ ·’*F•)|7yÂŽ™e +ßMžp׆Lá»ÉÎe¢0ξ›<áЋY¦pmžðåÿf]‰d’ÙK$Xf/ÚYLíÅìe6ß ¹Ò®h¡N’Ýù䫲˜N¯¦ÿ³*}=­?§óÕ^j/Z¸<©×“Liúô5™î…8cvB幓¥ˆ1ˆ™Âç¯Xzf«ïµƒÎñ¨ôLÜfÕ1aGßW?P¥† ØïÁüxéöÕ–!x{ËeÓT +¶ +± UƒÒtQ\—ƒgÍÕÅÃj;¼ªóá±HxÉDk…»Ò®/óÑñ䣜e!æ–«š¨2ò£¹üFUUMÞ °ëª&ªš&  [¨j"UWØJN%ÔWK +²Z&‡é—‚ð…êjA^t«¤Ïä=WOBŠ"'²¾!:‘å¢AËð¸|[ãû…ßJWKÓpá;ôY“„Y~˜ñAƒòNIÎÌ m´µçí(Wßʉ¡·]Ül€¯¨q~O‹ÒAPH:}äß6%j(ôÂW¡py¬UÅh«kb°B!(“*|©a«- +*/nÑš¼`“ÕJþhzUªOŽÝBÍ“)ô+ŽÕ"¶ƒ™­ÿcp £˜¬‚‰ìxÛ\É^Äw£ü±÷¤Ôýè¾8Î4îSY¶N¡½ èƒ=‰á&ø­}ïàø(zÛâû=!¼êK§m,¹ËÐZöEßMøÑÔðìÇÃÏåý3n© ¾ûbåéWÐX*³êEd÷å‰?,«>5>ôjD +¯&’øõÄs®Õ[L3fu] ø³éÄuxÿ¬2<ó`瘚¼ƒe‚8­A¢zŒ«l›KQ˜Ôbòx¬¬Á‰ýúÖs‡®ûeDoznëÎÇÓÍuêHjM κÃó‹ ¥¬2.Ø‹ÂoÒÂ9 +*¤ HªÀå7ÿÐè'Œõ*´Ê1Ÿ¤U‰ò:ö«,—žƒ§– «È¨åíW„S¨ŽòîGA´y>‰„¸5(Ÿy‡"œ¤7 ¥‚Ø”†Ñiz«±™NµûØÅ„zI,$ÒÊѱGþ +¨è*VõI夕Çåø½ø±?¯@’UQ¨D:— OLT¢àlœÁÖ%0:É ÈÛXÔK[nÐz‰EGÞ—ö“|ªm‚#ž2Š-Uˆâ‹Ó]nÓŠ8æÉìñòËØ²Q*{ pï,™½y*{¹qÎI2{óTöB8¹Ódöæ©ì]žÝ$³7O­Mº]2{óTö8ë’Ù›§²aʓٛ§²G'y'ÉìÍSÙKå%³ß:}¯­döæ©ìqÂã$³7ƒQB}»ÉìÍSÙ&;·™ÌÞ<͸öVn—ÌÞ<•½Ýô½FÉìÍS+“oŸÌžkÀ(•½Ë³›dö[1ÛÉìÍSÙoW´A›ÌÞöÛ*™½y*{áŒ9MfožÊ^yƶOfÏ7`Ê^•PëdöÖê;MfožÊ^J¨ï,™ýæ„ú»Hfo¾”˜¿ì ™½ÉâMÒiB}!™½yyGv”ÌÞ<•½ƒ„úŠdöæc0H¨o;™½y*{µt”ÌÞvB} Éìí¦Œ— ðò¤ñRÊx¡<›àÊÈVo|œK@2ËLæí霷€ôÞÃPp1„un.åí!vÀ¯#¼{ »ÏiÓ‚u ½‚L[¦Ì¹19@/“ +òZ7¶g ±ro—Sο)/ÕŒéET{åµX~Ù¼ø2o¹šý,S®wìÐäèçÒü=‡&>ɼKó÷šRqÎ#®ïÐÜÆ—)oOéÆÔ´øçÆüscþ¹1ÿCܘi—¼•ƒò|"÷Tº<ôÉåtµþ†˜Aqú2›7Gÿš.\ä÷/þ…¿ v¤’{à7 |Ú»|øÙ=ҿל»ˆ½BÙåD ‹Uiö´š}ÍG‹í¥à£ÞY³[/í¥ö¸ ÐÒ{>4$b€žF_ùÁG:@Ã@3è¿Þ?9+ µAìEÁÍ +îVô$~7úœÖç“éÿpï/W_‹ 墳(ü®0_ÍF³Ñr6Á.[ÁOµÿ/ôæ½xCýs$öÎö ôÝqáG&®øžÏ¿×»A‹QøFŸ•ÐÜwÐPÃE&ã‘CÆIŠ%hŠŠï…I"!‰ÉÒL,I³{Ÿ.&©x†Öy¨©óP’V?£íÍÊ3:- vIõÞ7š¥RéÓj4ù˜ú÷¢Ýù ÜÙ—«,(þº9ûÇôòuô=M¥j£ùäcºh¡}ávSÝNôéècOÙ0úåtöòºâ~DîE‹__ÚgN>¾žÞÿ9[òm' "!›(mÐò :äÓEû z¨>_iž©ÏgpL.Ö£Éb4ç‡A4Xà–I$Y"W6f:„[~vèé?v3›¬^¹‡|õù?б诸¼é¯Å|º¸ú¬>aó·¯õ|‚¾PüÚhÖ\GÑd¶^ÚïJ>LÒÑ0I;ôە|˜”£aRv†i·+ù0iGÃ¤í “8­¹öç#D‰—úßʨºubNZ'æ +­$ͱ%'„Œ.i¶D-­]moVžù/%Í$Ëþ’f$ØDXÙ?túNÿÑi:Mí„N3$¡ã1V¤aŠ¡"QL&tEhÍCz"4E%4i»³ô¶»ÿ +J #,‘¤âܪý(u’ ™%c(uŒ‰GX’¦‰8Þo£aÿQê?JýG©2Ó[Rjë=Ä~½æ×{ˆï†Ÿ%9Jì…éD\ÃÂ÷¹škáÏIÉ®d2ÁÀ×Úæ6|[ý71'D˜i*Iþ—iIinIšaé„ÑÄü‰!©?–ôÇ’þX’ ±Mü±Eï",‹Ó ‚'Ð}ÕS4é)Šé +Òš‡ôi=zn… +[Ó©þRMljH2g¸í°ä=ý±ÿèöݶåb#fÑáN°‘$§'yJj7ÓyHM¸ñC:ÔÝ +M¶0¦?Âý+„;FÇ#ÉIQ,,´6#Ü÷áþ#ܦ„{ûøÄÂÔµ–ýï[²$âHAf‰ˆ^`kF:s’aéX,–¤b…hy,á±C°‰8ƒ…pDnÑÈx"–$bqvïÃu)õÒ;xwÅ€T”ðë8t#NIš I:@£@Ÿ$Y$‡Ó„`ñþpÅÀíH$qš÷>r?¦™8A&‰xO22¾B‰Sgˆ «ˆ(p‚&b ¾¥ÅÐ12ÁÆ“Iææî”Ô¿ÚÌ·ö¢­¯:ª_‹ÉtÂ]îÜÍr0mË 4ÓÚ +M.¡¢ßСŠã$C-Få(œç4pw-:“Œ³D2©}¼9¿œ!I1tÐÚ¢sB‘Ú§;_«LFÆ´¶¹²¾0aЀÆ—‘[Èb±ðô´þº]nÕEDÎxœŠq‡q‘ Æ’IPwÑcü‹Ó$“  ä&Ï eC”ÙÁøÛtK›Nîù +ó¯ùË’6AHË‘ºûîCÃD„’os6•&" P’|PE)ŠIòqoTd{m–—H°:5?øÿ?¡`{G"6#ЉÓ9CŠš@*„lÔô†š€ãŒ” ’a1ÄÍO(ñ{G’à‰†¥­Vï&‰ƒH2áT.<{Šûüß´gl£8R‘è$³iÏØ„ÎeWìS2=ÍýK‰ÿŒ}j90dy>ÁhÅpØåñœ^¦W‹Ñ ­ ëe9úÇto4ŸÃo§ß蛽—Åt‰HÆtoùúõOøýDxÜã)·+®ÿèU• endstream endobj 25 0 obj <>stream +%AI12_CompressedDataxœì½ms¹•&ú ò?Ôý0öƨ˜@ ¤ïÄD°ø2Û{mw‡»íõ܉ -±Õ\S¢†¢Úãùõ÷y€¬LYl©çÚ±bF«Éª|ppÎsÞÿáÿúæÛ§¯ïþtýbØö›îþáìþúêáîþWùtóÕííÇ÷üè¿û寄m“N¿Š/󉸾ÿps÷îWk·½|yÉ«ñÛ›W?ÜÝ^}Øœ]Ý?\ßÿró‹_â»ïnn¯ñíë«ë·wï^Ü_øxûða{uóËòhÜëüêç¸ãOÌ´q¿êÃæ›ßðû«w?^}øpóŸøÖŒCðÙîîã»×7ïÞìîþ¯à7/Æh6>˜Í ïñõ¿ùÝõ‡êœ­3coü˜Îî·ƒ‰ÞÅ!†~Џ´ßNÞŒÆNý`mà}¶¾C߇h,ïy~÷êãÛëwßÜß½ºþðáìîöîþï6»Û«W^|}y÷îsu‹A½»{ñ»»·Wïßÿöúúõõëg~å_^ÞÜ^c.ß^=lÌÀ™=ýÊØ—»7·¯ûñퟮ1ËÖ9~<¼”—øý‡«7˜ù‡—_½Å'ß^?àÖoð®ÎÙoþõÿY¾9¦2¿ø·ß]¿¹‘ÅÆ"ü¯_æ;ßß½{uÿg^¾y&»ÁÜlúôåw×oßãůef‡~ÜbJ‡‰ÿ[þ‘ÏÅpä<qo7~r›&¦o÷“zýãÍõ_~µùíÝ»ë4§÷ߦ5w®ïÓ¿é›ß}¼½¾ÿý»ΠåGSšˆßܽ¾¾ÍÉõ—·W2~9ÌþßtÂwW÷o®@(w·„–cy&ú×W½æúY€ðr‡Iz‡ç¼{Àë¾¼ùþåi¼|óð+ÒiÓ˯ß_¿ûîî2”Þ¸6fë=èÏE¬çd8|;:·Át”—3ûóOo±ÞašËS?ÿ#.Þ½~™wòõëåc¼<†)ó@D߀¬¾¾¿ÁDü*E"·¹¿y½§¶`71ý#s½Å¤òǘÉö“Žýd’Ÿ0³Ç|’¦kþ€Q”…³/Ï~³Ø ývÄ80ì³»·¤»ä%\YìÛ»7é»ùwùW|ßý[7L'ÿþñîáúnu{½™Æ“7÷W?^oŒ'§¯o®ÁÔn>œœÞã듳Wׯono¯N.®^}|¸>ùívïõÉ×å´îä÷óWé”+¹ÛÉÕ«›{l‰ïo¯ÿãäjNºþJnþªÜüZ®ìN®Ó¥×‹K¯çKoÒíoÒ97‹snæsÞÉí»“»tî]:÷nqîÝ|î]z•éÔéÔûS»“󹯯޼¹¾?y¼¾>y…ù>ùš¾å(>\¿â¦;ùÓÇÛÛ뇓÷W÷œ÷?œà +ðÂ׺Å,Ý gÂÝ^Ÿ¼º{ÿWÞ'àT¯¯É›NÒ;ÌÛ¾»{x}ýýÉéÅÉ× ƒ~èæÞCœ½½y÷qRùÿ_¯ß¼ýXÜ©óÊÿïî_[ݼ»æïo¯>¼úxË?Ê WøÇáöq:ùúíõ›«Mg&FÀ}´1S8¹z þ#¿ÅOίo®6Ö¸L¼ØtÿyýîÍ5ÀSÏ“oAÎ/¿ýëÛ?Ýݾ¾ÿêÝ÷wÝ/hþXvñ^¿Þ|ý§ÿ?€~ŠaâÀ×ß½Áßó9¿ïùèí Éî¯7éK\)–ÿ?}õùõ÷‘ûËÓ§ï~¼¾½{¿¸m:ïéû}s{õîê~#ŸÏ·ûõ à7W˜žý yâõø#pÅ{JËëTwä„ÅWO?è×`Ïõ ä3ÐÝ_îîÿk¾¦õ|ù÷òŒ³+ p7¯Zi|??oùÝó– #º¶ù0?&ý¹¿5YTúìèeß7`£`Jžóí_®°ý}ó§GŸÆ÷†Œ|mñíÇ›‡ëýݽ}O«ÅæÛ®Þ_Ëf/g~;ßЋڶK/^<"°l¿Ù½[|ÿ/š¿‚$¹©þíŸÿúËnùUÇÍî5tèXøÏu}÷OtãîÌæ^îîÓ7ÐÀœhxT݆¤XŽíê:Nû¶û‡—O¶û°¼“h§ò]ëËoqÝî|žŒ2¦ö0¿¾¿‚ÜÿÇÍ¿.ßýC­>Àí|.éâ1¶nñë?ãþ»Ýîlw¾»Ø]žõgæÌž gîÌŸgá,žMg§gggçgg—çý¹9·çù;÷çãy8çÓùéùîüìüüüâüò¢¿0öbè.Ü…¿/ÂE”ûãìã÷ôÑ-~ýgA^LÔðÈážtê£ÕüÊࢋ>Ž1ħxwñ,žÇ‹x9õ“™ìä&?S˜h8vÓÙt>]L—§ý©9µ§Ã©;õ§ãi8§Óéééîô¬;=?½8½Üõ;³³»açv~7îÂ.î¦Ýén—&4<ëŸ:ºÆ‡‹5©&Ù~Þ£¾áckøè!S3ÄaN‡Ýp6œÃ%Í8ëçœw£ .ºÉº;õ\¸K,£ñÖ;ïýèƒ~ò§~çÏ0ì 9öÝhF;£ý8ŽaŒã4žŽ»ñ st1^†>˜`Ã\ða !Ä0…Ó° g˜ø‹pûh¢Ctòv———8ÎqœáØá8Å1áˆ8ŽñÒãp8‡ÁÑ_ö¼ð‚?çØŒØ®§ÝÅéÈé‡Ý°çFì<ýç.lE‹ i°-{>[ôâœ?ØÍØ´;l]#6q<ÕûcŽ;ºcOü7|&ù]^ÊÊÈ`¬° òÍÐÇ~êO{lÃþ¬?Ç ^âÞÆXƒq†VùÑèŠØåæÔì §9çl›K޷Ùüp8 +³ # R±  Æ`±ý-v¸¿µàªV–‹ëÉÙÈ!7ðÓñŸÁåÃçc\¡:â¡#93îs¡ 2ï^¨ ‡î…¢HYQèìT’IòGhú²ï@¥F…N/Ç(GÈG”cÊÇé|ìæã¬“MÂã|u\4'~–N¤ÐÛÁCˆO†6Ûa)ÈWHáñÓ)ô& +lÃàÒI£_žã6ŒnqÃcÎÎ÷µ<Å›8òL0°å™ã¸~˜–7>æôtç~ä©ÖÎÖw9ÇÆm9µ¸åãçñ^Éš>Î_Û¸€IÍ/Ÿƒ’¾ýøžpôîû‡äÒÚüáæ ôx€Óî‘ïð¬¡@E;ÿgÊê7?”s7忎Û>ØiãÃdØÏÌÓ§ÊDW§mGo,ÖeÜ óÒ›0mC0‡o|øŠæý'ß áÇNzÎbüþÝ»«·×¯7oòGƒUh|ˆépºBòåðùpr rû;î ð)GÞÿÂfv"¨OÓ±#VÝñ˜äˆùrŒrx9\>9„×SñèÓAvÓáŸÄÖÎå8ËGzFú™äˆùrŒrx9œC:ºSáì€w‹Î‹Lº…4§™Ò%%R±]¦…´äb¯0b©HVŠ˜'¢&|6I1F\ˆ"™ ¢˜¨hù0Â$D&9AzÁŒÄн C¢ÂÀÀ(ÀÏ Ô#ÄëÓ Š;]Ê“#ñS&Û#T'´ùT'DöT'ÔòT' aFPÇp†ÏdØù?à†ŸåçxóÝso¸÷µüS·£û応‹Åq>gó±›Aˆ]úŸ™’KâÙ{ûñ­Ý•½]̰—³Ý¨X•Š­i7›e‹i¶˜gãl¼ó‘ [¾Ëv®d‚>$p3Û|¶Ì7ÙrúÅ +éÄ™Ž1[$ƒX%Ó1eëä©X(Óq–-•çÙZ)KsÙ%³%޼¦É¹±te ÏwfÔ¾ŒníÌØ¥åØ[÷öÁb!\Z Ø k#aW[Ó²è½wŒbwPŸëjenå‰\Ä÷6µ’Cß'ûÜ49O¼îÇh†Il6.#þJ(‰ƒØq\6Ú-ý «ÝO¹ZžKÞOÝ6 "AÎë-–{D]yÎEitÁC\ñý ŽhSÝN£‰òKß[çLS‡yÖUŸ¦Ñ¸¦FãhWœ5šþ¿à· ù +’§ í½KÙl69:ññ ¿}—Ù`ÅøŸLþAœ\ÅÍ•]³«+;»ºÙß•<^Åç%^¯ì÷¢ç‹÷tqÇìK>°SÂgâ$<¾ìè.cÅ#6”¦WlxÅ76 èÞ‰‡ì,û Ê/ÅWÖg½Ž°uèÄMáÄuæÅ}6Š -ˆ-Š+mwÚ©¸ÔÒ‘-гwób>.»™sÔ:’Ò5÷æŸ%'Xïø¥fm†YZfKJ·0ž•PTř㔟Âd‹fêšÌ|ìf=8V<½puÍÙ÷Ü}Éá/’Pî²fÏñ–R|ù3¬·:üþè²ckyuÄæ1µŽnþõô©C›ðöëyèxÊ8<CplÁJÍþ Ù»†ÂÿØÑ¶.ŽîéS58ª£;öÄ~j¯á竟ôów«DüWßp KK´Ã£11Ï’Ý!$)@r†‘F/í–ñKÝ1Lûø%ñyÓÛ}.”*¢y/˜÷b¹ågFžt"€Ÿ«aÕƒ:[+>ÝrT ÞúlîÚ©À>5¤¶–NÍq¶4»Wñ+¯E‹Åý©Z<›*(ÞR4QèÛû8™i‹ið Oäñ×È3?J7:9QB‘Ê©ßøÍmÁÞêø3®IÏpL¡Þkèrã‘¶ƒ§ê¢UHÉs.ú4]|lêâ#½‹ÃB· Ȥx +2¼0 …r ½²;ƒDïAltF*ÛÂ.…ºè +%UíHQ 'R“'%u²7@EX/Ré‡Ô“¶år’Ê”ÉI"'y\¤q‰±†EÏE5, +Ýlb›¡Ñ Ž +<ò3š„›í$‚æ\¢j.3X2}ÀÔ fò¦CÜ…§ž +zÚ‰wþ\0Ô…Úz‰7 N85äpl/°ŠGè]EAXSâ¡)”G¢OSÜáù,RX_?Ç ¦8Ät éè$$±„%–ÐÄqPLAŠûcšÓűÛ]ŽbÜO ÉvØá^hURÌv¶À‚ÎKþyâ²3Mö2 3ä.)ùqFÖ»n¡¨]dÌ\0ò0£à1ël%1–¹ÐÞlIÃ/É÷)Í>©q{En¯Ê핹$A¼¤†,ô¹Nf¸¨tI ¬•:W)uÓ¬Ô¥n¡Ó ]C¥›²È)êÜE¶ +BQˆ÷^ˬwórð=-wW’·;P»cXÍÐ3dow ~Ç +GHßçGGÿº#¿üó¼‘ù’c‘Ño±ˆöYÎÈrM~†8=‰ýÖ¹ é•ѺG‘ϸèÓ,JSÓ¢4Ñ¢d‹E)îVÇÙÇ£Öʃø¸^ÈK +ù´¨b0×0Ø‹£N<|ëú!K¥}õ3W/¸XH§ìµRº ©NÂE‡,©–Õ –õ Jƒ¸¨`0ŠrÛg]‡qé’_:å[Vˆ½Bw³w~_‡±˜zöú½™gvì* O¶ït•Ç,¼õn6ï$7Aqدì; §½Xxº•‰giäYšy–†ž–ûÞïí=ÝʇÀ‹¿4ÿ$?~ßøÝ/þÞ?ûîn{“£È¬XOÒ!,&úNPº—ò/£U‚VÒO¼&hUºˆ¦Y¦uMµ·­Ù6uØZqížÐTŸ­žv‡4Ô†áø±cF5Ý3Ä.ž:º§Oi—uõ¯µ¯®.]»ëj‡¸ìR)°CÕu‘9ÅÃÚú +4†rÌÉÉrÕAÒÓC4Rs_ôrØ‚áDž½7Ysv.6˜@»¸ŠwaV„¬UòOŸúI*Óà[*>]TfÇ¢=Qç&× <®È £«Åãhüºi`ÝÍaYXáà)©^éÖUÕL‡-þ´¼Á3>iúšEÜÊtØŒÖEkä +uÒj~²¯ûˆ<¡çùº»VìñÓA]:¤+¬LmU@ç¯[Ô–†´¥mÄu¸¬J¶u ™®©²´‡--aëH,?{Ÿdµö1VsèÔóƒ£ ‹Ê…ÒBHÔ£ÑOöÔ0‹ÕÔµâ”þf‚Œ>!šàs…'v­d‚þæXgÑZ +wþ§ñǦEŸ~&ÙÌ¥ìŽáµwtÈb\h'Så¦Þ;©‹–²×Sä­ºübªp|f{SyEtÚG¡·h½óV®ˆ®òDÔ¥`SùÊ#öÚO¦äGuÒO£l€5¦"š”Ÿi%„âÂ>îôO£kÛ¤k»¨ÊÚí½÷¦|•‘S²¥Xÿ"¯cαkõåH5Èİ4¿¿V7Ky*ˆö™Ç³o˜ +½=Ï÷díÆîøâ©vãº/G*— +¿¥‚o©ÌÕö¡ôâÈ8ÎsËÝÜ„#äJ—¾›&¼¼œ{oìæ²—qv ¸¿ ٶˆ’px +à_’úx-¶üœ‹r—ƒrf ÒÁØ~ݼ .½üœ‹rǃ¤V3€§Oi,x縺 ®löœ‹J_'ׂ;S)4i¢Ð¬hvÌÙŸÄ{š›ÿ’ó%æKÌ—˜/ 0_`~Ýôïõ†_`¾$ÀüÎò%æ³1®/ 0_`¾$À|I€ù’ó%æó'ÀøqœŸå×(×|IIÆ£¦—Æ›EÀ?uæüÀqqÔ¡J¥u+M_ëû­4ƒ¥¶¿×ó³jßUúüZUßÍìï,—^š[óÎŒÐÌb »Cçæ»{¦˜ØbÚØKƸd«à±n=vö¤½+ä_¶~Þüóö¦¸gˆq¶n-Yaaº*X“t5'ÚlØvü¡ÀuÊn¤“Uj;Ò"mE[“º'RWjŠÒîz¿2Åní°_Ï%õ¬ignê¼èå<N× œó&åìéÆÏA‡%ìp7ÎE·ªö圮(çb)NgYZ$éiWÓNZúOûQ­ùºÊ¶8(+ãÚÖ¸Îojd8uGXÏuÇá8ŽN…qìÙÊž všºX!*³$…nM Š4<Ьܮ+4 HÀU˜áÖ±ä]Å:.fÃ×O×jôMþ4éAkèqñ/ ‹dm³8пµÙ¶µÙ¦µ«3W¹ƒý½×Þf~ßss±¿ÖÞBPÓ4â¸ïïä—ÁV1úq8[ò¼ëRŸ"¼ˆ8î{Ò:ÿ?zÀ¶X…`Žñ•‹.EG_òiø¨æ‡OÅGÏÂCuâ ­MÔU2ìIü³Ò¼«ût)¶æ`]%ÅbCŠ]>.Ų6xžœzÝŒ€–ªPØT†¨C]Ë8ü|ŒÔjŠ[Á¡®BCm$ô˜W­¢¬îI 4VÒî Ô-DÞ!tvZ¤Ó)ä¼~‡ s[þ|º•Yá|Vž—BpM?Ež)hM@]vÇìøz>NR¨H¢î4¤)çP¦7¤kã C(hA{²ˆ cÒi§,J` ' èPÝ#L¤Î¿9ÈB–DÐ-XH›†5ÒI¶,¿?°ü? i¼Ä|$¼QŽÞÇÁÌa·ê»t ËO®sЂ( šoÓûÐ߉úf…]˘°ÆK#^z’à¢89Ó/ÑH8"IÿP,î3¯;/1Ò=/Í—|^jÖèDK~¡ôYž.òYÝg_nøå†_nøóÞpï¾)qŒÅm³wÙÔîš9S{?MW…GÔŽš½«æ¢ŽY¬B³«S6Ü­¢MýíæÜßâèÚG/îãëÆeúï2ŽqÉXbK4c‰g,qöŸVqûÈF"žFxãEXöx~,¾±Ž´ÃÄws*ñ2¡x}øƒÇ¨nñG8úxä§{ìËê§QçJÝq§üŸ{Ãus–Ç»Eyìˆ}[+›¿4eá†çvwÉ+Ë=N£4d)ý¢Nç~QfÖ’éa¯3,]¯ÙÖÐ)wËÞëz8mii˜]¯ÉùÚåÀŠÒveÙt¥t:_ô[©{­Ô}VN»Üf¥j±’ÃöÝUöU–]U–Ur7•nÑIeÝC¥¼Ô]SZRQ:Ý E5?yªsI³ËÆióØ=rœµN}ô‰?Ý¢ŸÖg9ºÏ€õ÷sÃe¢ÔÜ1Eÿ"I2ØòŽNw?Ä^²ïc€î4<ÖJå׬;ªx³í±ÉmUÊ7so•Ñã‹Ñl©6oµÑ»u›•æëëî +T´±ýv°Sh\_Ÿñ_ÔÛ%M½qX%‹ÖEœicUÒØ>g,­<­t?­ŒÞRÁ÷e=õTÝ6Lf‘bôØI)¬%Ÿp¸àÁ#§g•,¸N’༔ÅcI¼^JáK¼S)|תåu~¸šW÷t9¯Çuþ`÷xa®àåçJ’ý\»+UîÚ—ÌE1:U#<¯.Æ\62ìꪑ‡jFV%#ŒìŽ©¹ŽÚ2m{Uë»T‡ãY™½É¼üíÝ»oîoÞ=ܼ{óâÅ‚º—_t¿}Ïo†ôÍ7W×÷ï@ö—w·7Wo®Añå·qã–õ¦mtncL‡? [3AEô½q€l›!Ä-À›zêBÆ×?•ÿø—ôÇ5þ÷Q~5y`ü«üù?ðëÿƇÁ”l~³ù·ÿÕo^§+GnY¿Cý¨Í[œõä m~Ý:«Œç×­=úeóþïðßÉéýÃùÍ«‡›»wW÷ÝüJþÉîîîvó‹Ó¯òt¿¼x}ópwÿrž‚%yùÝÍíõËß]¿zøåæqÁÿÿêIû:U¶)\ÒnþÌYÌÀÅ„Ïcܘ¶ØiN†~;A„;ƒú8AÈZœ°îYE-Ðù­c‚Ù¶Ÿ¼f€@æÐí±Ûw:îÁN¹vØœÉ}Cº/®ŠØj¼ŠÆ‚w  }Ä ؽéÉ>=y0SÄOîq_;ôP pFd@`¾oÜkÁ%† ê¾ó[qcO‹E0òVP>0ZG{®>èÁ³Ü >øƒÜfØ‚M`t›|âœàÝ#Ϭ: ¡YûW\þ=oaL:c1ý7¯f9aŠÀ'iz%RÀµ˜N²[‹¿&2ip€"aÀ' éXƒY¶` 8ÁŽ^/âzLpÛÎp[*N“lìFd^¬ÙŽ=˜Û1kò6fK›ôD;Î ÷᫃ûL`¿“¼/ùÞ7LÎã„1ÏIè{3 hlÌ<ébézÀ•³LMؼ¥•·Õc&׃cÞKÞÁÆÁÿÒ«`†Àš©68ƒ“ÖŽÙ÷tXaHã—bHÔàúBB¬ü„‡@=ŒíÛN0|êÎÀ»9¬»’21&L.Fª½§s Œ?æûۼš(Ç‹û#ïh„iiÚ‚q,6‡‚ïI;i5²ä;VÏPVà%¹XLÀÄڼⓀ… +°sð*¸q’ àð˜Yèº[úJ¢Bþ!z 0{qŠ3@]¤HF?EPþä°\ç÷1àÚ4&lÁàAE=ˆs€ì&,>>]nÖj}â]ù€ 3I¶6—s‘ÈÁ:°/  „'¨â=F“†~׃F@®œ¸+K²=ØDЄ±=1z¬ r5Ä ‰1ðŒ§6ÎÙb‡†DÂp¦q0=ö@ÚY=€2°§-ÀÂ@`;b]0¼ÉÑÕù+Œ³Còpžy?}oéúáéM¬.Á#6#öÙ$ŽÝ)Cî ‘'Ø‘|œ¬ Ž ‚™r¨_㜓¸’u\Éîà jÀfà†Lg`Á…ßÚiykõ²„Sg1T.qÄ +àð ^¼W`£ØÔ˜þà"æLiœ0¹‘Dƒ  +ÇÞ¤ñ£ÆLûQãÁ#>–'¹Éb¾(¯Ç“F©½ƒK{n@ø»“‡Iò!½‹±ƒ¶ k·qøoÎzxT0rFbõÜi“ËOÂe {¢ï +²Æ’‘AÞÄm°pštü /b‡Lù"}"–ÇÆ„cñ0ð)q=Ì –À'¾Îr˜žvŠ÷Dza‰ãD†Š3 ë˜à>$J Ìq +--F‚ûŠ>H< u¿í!Ó îéAäATqÔ|@?Yš9'°u,‰ãFÅëBBöã 8¦0xV!T'¤‘p©'š®†žÅî ™/w0‘êêu˜º‰ì9L}ßCr'0á‰Æs®â ÈÈT œN%³É#Áap¦!ˆÀŒúNR #âA$[áQaz//ä¼hàÞÝÜ|ÀîO‚bÚ5ï^@è;ì6B5Ô¢)…@Y¡‡6 •1ß è×X+jj (Ê%GÚØìÞà/쀭ý0߃’ÆÍ L084´“:òÕ'Y#ô¦ܼð"f Å*Xª¸\kKsàVz=0p§Gê#Þü‘ŒæF¦ÞãbÒˆ™{a ÉÉð éý˜§Y + #VÝrh/(r«2lvä5¸õVê[[+1E› FPÙ¼‰iG56fIÄž–P &˱Yp –ÿèSöÄçž6A˜€¸'ÌÜ< Œ4â + `˜÷½`ÔÝ® €O–oN~{÷¬{wÿ¤ô³õæ mœüîúêö7W÷7ÿ“7¿8;ýªh>ß}wÿ6}•‘3@öë»?]¿<ýjz‰ùöá¯@ÖûÇWøÚlþøºÐ·ý ô]þbÎó1n~ñËÍÿçÏÿ·2æsù„' +7-`«Oà†›¼l¸ü€ Š¥(À¿Ø¯`±Øåó{=Œ v Ø$Ð|Ø€¿ŠÔÁ_ŒAš á‰=WoéDÃUâ=Û€o ÈÍHÁAX‚ %Ÿ·³”òx<@;Èo€"ζZ…ËÇt»ú*ìDø„Ûùã·ÀPà¦ø4ëäµ&ƒ2é¶”0¹ùvÃÀga×€’7ã°ÅÌà*€&È:làH.ôzà†d¶1N¨ØŠS,.§SÂN˜\Œ•ïøŽ©C¢mHÚ·”㔂ح aúþ&¾4ÄjBó–Ó ¥[-lÀ5·Øu†rÚÁÆ,86¸Ü LL:½H$£ÛÃb‰”ÀÂq2à"^ßÐê7àåu®¿ ëüº‡ò^Åq/qAE‡iœNr9Ì–ª'Xª8áq=y5(8 HÀI¶ô¦Bœ‘ãÍ/3R¤a¥½ŒJèyÀd€5l0°l¬ŽsIÑ ]@³Áœ°ìQ¦4È–€ÆÝÀ-ñLT ¾ƒ6ˆ³L?¤ìeàšŽ–F`l Oe@ôR¥Ûy¢wff´¦Pn<ဪ©M PJ¬& Š}4çväkcße˜uĂ΂_PªâVXr ³ÍDŽÎÅÞä«`–¡KN܆˜Üç, §ÉÍ?ƒÁ»ìLÌž:Â+T‹2çñ*^OñÜ ÄÒ€Œ‘ŸûùcY\pB!BhGTø×Ä4¡`A#9?÷Ä@«yýE`fÜPnW™´_ ¦-5¼¨kþ¯e²dí$ÎeŸrDQâÖ’1ºÞBÈF©ï;è/F"YpyyúKе%Nå°!˜"éÇiƒí@‹pò¢ÔñNCÑpSBy´y‡´ÆÄ²#5èÆ·ò@S¶Ç@>Ò °uœiGhŒ8P9`9c|î]^Gì>þ޽ôÁ“±ÿ öA  C^Å-#ûI¨‡ZT&€[¼£·óŒSÀb$Ö òX.8ƒtƇ‘°p7hã£"(À§6Žì [OÞƒ–÷ãøÄÊp“`÷²‰f!×í&h½éÑ }°èÁ†¨ÓžMŽg€PÀñ°Çpûžü oÉ>ñJó›ÇYV°å=µ:Ö&ò Z©’â‹‘Ÿ\/ ¶0Ëü"deˆ ì„Ìê¥3ÉÎOzÁаA›ic=†LQÈÃ奰b±*,z°nh®D[ 0 \CÃpÌ@“-È\Yæ ”uaEjÃäQ6oL7d.©‘õ¨Ð]f¿@ÞÞ;‘B]H>xr‘Ÿ &h¹#‡ +=.3PüA×8áu3Wõò¸-5Qð5mg^ö65fÞÝÐP“d I€c£DãRÑ] Vœ‘'hì™d]hГ—ðù²pr÷©ìp0™aP9˜¥„aš ;¬* ús˜‰‘÷}>ŸæCpËiØS¶Ì––'ÐX/ȳ)N® ´ jd9 { yKqo†d1Eš˜Êôsa1ú>-¡‘Ö–bÏ!¢’¾¸E„££ü„$ÄohGâôB±á•¶ã¼phôÎqht@àVi?Ÿe«p¤Š ›Ä«&>£ý1²ˆ8þ`@G\¢¾ Ý ¤Ô_¦·Å–Ŧ•Ô‰Æ#äÔ0¥÷ù¥L‚70/:ŸÌžŠÓÅ<ÍéöõÇËWR_–xÚ +À{ñȲ”4rO{(H(b‰s5]y_y ŠÛy’Á °xeOj_,ÍÀ–ñHP#z·X? -ß‹Hßì—ÚSs—/ˆf‚à#µàØ„aE;r3謼Øñžâ8—–†eßcÇà6…F!òøjh*^Q6&¶HNà•Ÿ÷¾ +2?eÿxи4ªžxqµé¼¶ñÞ³“dÙªbt&/FW°ÃysÓg¸\ãÄQ¹K UÐÂȘš=÷ðäý–ž6ZfÈ©3¿ñª†F ò+.%oÎõæ›CzͼözOH0Ò€ [¸!ŸßSžÕK&ÿ’‡âþ[Z° +Ã…ôÉVlå|áОvJÀj P·_ru=/´ðYºXfQ@‡7ì@\áÁ§ÚiÕ”/"r˜Ç.1ç¬RY­ø¤ +|‹Æam4vB‘ºÚRò*+ΔÏãÆIÂÓ’ŠÙ³L#c‘¶œ¯Â†ÒÒz·’Ñž ÃðÍ¿i@(’Ýô&1ÐjQ°mÁ޶iÐb†6‡´š!®±SI=mà#,%D€y.åGy&üDé7.¶eh—dž¡PzëÞ[l…›H‡ÑðñP™›Á¶ó–è /Ž›òƒŒÎ¸á1ZÉñÔȘδ_OÒÐ:ÓŒ=5 +Š,pï8Y3cGõÅqª/ N¥©žfs¼DNU-ùŽè^˜hnƒùê!ƒgääc†Î\ò²úÏ/ŸÜÎ]Jƒ}sÐQöHŸóf{ (üRe©ðÈ«ñ=Èk¯<ñöÖ“¿aÊZˆ§€Lëd ä´•](‹džÖÌ:BI´';VQ•<©†Ë‹èWX*Xœ8ÿ°w¦Y-ã´c`\{ÜË[9qˆàÉ }[äܘ‘¦¨^å‘.NnÑ2A›d^‘,c_ë¦@Kà/Ü n¤b6k´¼ +O¯$ #Ä@V¹›Æ@›ëÁ/šú³Ï¾hÝô`h-ô`öb—Lj:9v<ÐûHÓ„Vº=„S~úof{}2\†0¶Xh—<#´÷BC]Ú?@ôg8¼o—t˜ÆÑ2»·j{cqÀ댷ø²€ÐjLGø`À¨c1›ÝÒÂÅšTì,IÚ18›Ò.ú•q†þRÀ8K‰‡…³³I‡Ðä°¦!³ˆÂ “l}b«˜…ሾմ>ÁQTÌæ&ÞÌðeiIá.)*úú3ÜA¦-ÍZêªb £(€¼àPG‹ù˜Ígœ7J³¥­óE©S sâO’Ó°éyñpopÑé«®mƒéí°ª¡·^ÀI`Ú“ñÄšÔcÒ  fÄ|D*¦n-Ýu@=Æ…µÆÜ$oªÕ²¼Ž(Z<¨Ð¦ùe7¿P©ø=¢Hn#TL¼÷B ïh8£ù-ÐRJç ¶®aÆAÔ›=9žŽÁ§]4Š÷±¬l±ƒOØÁðŃà]C“©%ÝÓ¹ãdZ¬³vŠ˜Ž4b«a[{asÀø–·§‡·—ZAôÒ’0¥€ç jøQ^ü9=ŒXz—ìQDsŒ#Šr¢5ã¼@ÿ±á +Œ²²¢\<ƒRØõôYš œÃKÆì‹ª/·,±M'ZýdKTF²žˆ‹ô5’+dÏ +þ¯š31˜äq9·šP;n—ÉÌ{£Ilj5訢C“Ê>á ×+ÊA,ñA–u˜4epHX<^JÜ”)£¦°œrØÒ{X'^iK3%Þg¾oÐ6ÏGð¶½ã¼*;{¹5ŒãÿaDŒQبÝÖ‚_0Ñ›ilRLÝ.øé6qÞ¤ëÍNŸÖÌÀ›Âè„! 4’úV /:†W ô ‚·{*_q ㉯q>nŠ3©˜ÝöŽî?FÔhÞGeÊÀdŽ=õÕ&¤ÛþJÅl Ûä©ÛÕœš^t(zЄ<Åí]VlžFnaDWåFI:d¨ºÒ!ƒG-`°Úà(³°’J˜t¼¥Ã­™ÏË…¬å}Ö:_% uMˆ¼5ÞLPIP¼Ä=jÄ>öÜ•ð5¤a¬ÀäeY-» [ŒÂ‘øây µèçYܵä[Á“`Ö˜Á€0"©ÆtÚÓx5yº”ó8jÂI–@“Œfè^Ž ÜÆ…3k(• Áà(¨Æ¬Õ8Š›Ñ'O3Ø$·†`ôÖÓ° :î'îp…àp»¸†N$Ÿ Ü4»²qgË]4bsnj (nòž®y-KOáMn}™JÞ'÷'‡„_\Ò8I×0Eãc‘¶H±ŸÕñ^32a’ %Ƨ9ºF憎îtìÅ8‘ýbóÄYb¸Ë@Í›q ÜÁXÄžkL•1¬'†ÀP¬1& +ž©•1}F­Ë‘R¨MŒIž™j­ +’Õqåpú~*¦¡¶é +n2Ðî OéxÁº{¦: ”QnÉü…=äd¦+íWÂ*±1% S/kå™ì‰ör°'PfŸµîM&ÌhÜÇ2ak£´vž!‘*ž E‡ª”~2zº ð$°Æü ÚdÀ8MR<ã4­ðÙÚÚÀ˜)À½‘1SS¢6V0RÔ‘ñƒ½M *d°2u˜IB™´„#^b0ioGŒUàLm_!?hm‘ÁnÇð·‰) Ê Ã3È9x†£a/Á®Êd&Fl”ý7=s¢{?Š*S›Ÿö×Kh(K\3‹þ•õ +ð#ù«j{¿0IpmÆÁhsÏè±U)CzúÇÒ*kÑ–s8I¤™ž2Ôѽ0Mô{Œ‚±+3N”XγQ.mƒÆ%ßI|ò¸™­‰˜‘(’4ø– ’÷2 ò Œ Ë*ª2aâuDÖFOÆeÒꇿ ÚdÊ1 $aiéZY\1 P¹PJ†„¬®mµ†5„êœ ±Ô–^‰¸2±÷¦`¯ÊNÌÛ`° ¸CšüF™˜1P§˜D£ÒjyŸ^"2ÏXmßf8*ð‰sꉺ”io‘l\µA]`¤•H4ÌÏèf߯ÊÏØÌÈ01dDµ)_â2Ú‡­/µ#€Ç'`Kôe •+ŸH+Pän´÷JéÚ‰{J9.L4Á`¼L¶ Ôn C™Ú<0šÚcÂiH‚µŸÅ„( üy +ß®½4äR) ¿Ç˜†Sˆ»ÔR»Ã`ÈLã r ž±§£Œ¥í(R®ÝRÕâÆÄ ˜ûI{³@©ÀŽ€'&äUΰú6ÚÃV¿ˆ>£5 }–š˜Úù§'·öX$q8–•UŽIEř٤©âø¬è1{Gk:VÕÖfPþXµ¥jO®Ú•Ê|`w¯ÝÈ…7(·³b+ÊkÝdOÊé­Øœò—+V™ì->«óŠ]+Ÿ¾âø*$ )9TDA-€t,B]:‚¡%ùtD-AuèD-|UàÅRvëpZô«HT H†¨8gJdJ@*Œ¥‰ŸTŒÂa*~tÓÄ*fGáÈåS§ + RÀõ¬PTp¯ +CR°ùGy­*ŠIÁï÷¤»Š–j)*ÔJé*JKé"*È«©Ó¨1¥©ð2¥_é3Zzš>«R÷J4œR뺦¾¹¾SJ«ŠÙ;挆ÞÜ8«R»U°¡ÒØ«HŦޯÂõ]êIeƒÐ‘–-[FŠÎ,öÄ©L'*´i‚Q!¤Ê”£¢O•9h^]‘T¤«²A© YeÆR1¶M+˜ +ÑUÖ4Ü«,r:H¸eÙS1Ƶ}P'ƒ¢ +in™#U@t1fªje-×M#j­­l±%¼[™qUPxˬ"Ê‹)¹AWFhÀ¾0a«¨weWóʈ®âí›Æx®¯Lú*Ò¿xT~@Ó™ /¯*3A96TbCÓA¢ò"”EçVÔ®£ÑrñŒÄº ´ÈiÉ·U¹ŠdÔDÇõ ›®ò6UÉ31wíÔðZÔ)SŽ­×Þ/À—-¡W´€Ô¦á@ ôiH7–Ž›|Û‡¿¶¬´™Ýj´;O0$mòÄÌzV.A& %´J¶N—LíZL‹Ä‘¶¦ª8Ê1&°m-LìàRû9ÙLA€0Ƈ—é½ö—1¬1±§åmïj…ˆM•Ë)–¨¥ƒV_Uûwõ“k±@íj~Õœ†Úe­§³v}Kôx½,Éo^¯fín×4ÑrÛ+Òª½ÿŠ:Kà€"îe¸Ú%HAo«:¾áé*¾wÊR[$^LwTÛðì>ÎK.ùV˜ç„ð±õ&r@4æíODΖZ$kþH*+µ`C´ŒÅ€’ÁtˆFÊ.;õ¬ ÏqCá T€@^}ë>Ì3%¶Ä+ÐÅW°Ìp£Bñ‚V÷'C#™)½n$ëB=‡ueíÔCõw÷­ÏH4Z[ÝGͱ³âA€ÀïL{90õûuzÓå`cÀ.šÎ.&ÑaÉñ¡ÞЀ¢ß¶Ïrb'6v’„¯ìR ›hØ«¨íË•½ %ÉÿàÕ£DÍEÖQe´ž«Î¨ÞÿU1­Î¢ùžiónì{ÖÂà0˜f*–œÀ^*t@S‡ d‚zGL9c0¨<‚å‡Ù–èh­ƒ\ã>õ\êwyjM^­×ÐºÕÆ¢SdX +_J*E/ø ­tн@¾šÀèñô&3ÓZq“P™u?PŸ „TÒ볘ÞïXX0€'Äõ¦a>}2ô™ÙuØŽ¾ºÚŸú ê­­GÒbzFÔ}Ô¬Öìj¹õ.«é/Ò åò檾'9uÍ‘‚¿±©ÒÎ+š{iUEVûçÔô–ßîUsë“Ç11KS:•$ÓØòêy Õû¬\UOÑüœsW6!–‘LŒ‰ê½_ ³•‡uXÊ—b4TÁJ¼pÐAê!0à È!e¡ T»\ ÷“XÓ$¡åE¦B„AÏÐ\ˆTÈ1r›¤1› --{–U0t4‘‡¨€xœdá±fÒìB-­‰ñ ‰‚iMa]¬³Fèƒhü=àXÓÀ[>)$Þ3&‹˜EQí”"§‡H1)®Îj/Žï“ +ËÔDj†T“EæW!/5‰3üFJ«x—Üý­â©´ödYƒhízÇyZ]i1¤¥ÓP¹«wí<ÔÖž—íEO§â,”F&¼¾ß³/©'Òqû(Õmqè*õ@ÀwOômmŒ²ü¾„¬Õúl˜WV —Cbé±PÀú=eŒyd ¤`ëãõÌ·ôµ~”½Žµ»í@×ÀF“KQÏ +–•Ï[¤ÄAVI +ÜSÞme¸PÞ ðÃÀ7Ýh"îŠE9N‹å4êÍ0Qÿ e·U{‰ÞÏxµ ÁÃÄêmÀ‹] >`Xù}ºoÚûKöˆ,®¸Ã›…ÿX®D%Ö¬jQÅåö©™dó峭Ǧv™–Âæ—s¨…C½ZÀÔ˨U‹ +´À«©I Íš"µðm*äJˆ×ûCá€z‹éA·¶ª†%õN?Œhá ²©ÀR +^î~èÚå†XÖv_ó˜‚B4z9VÇÂR$¦‹ë_0Žv¡ÓŽŽ $RSgd(v.Heª©³¨róß~ßýý–ºYMt«îžèÇ+Ûx©7ÈB†®'ÖUùD“`zñHá"} £Ô°ÿYв¤$ 0?ã~@"¬{e)¹"­Â u°©•7ö…;0.A+ú"ÁÔ‚ŽJaR«P;ñÆ âÁ·‰ѱ¶½þâ,‚*RW¯¤&Ë +²Ê+1:ÇÚá§l±@C2ä%­Ñ7ãL?HZ¯µ~ê¤S\® +™ù{ VÇÑQ•f| .gÅ}^Ùuˆ’0Eþ‚¯1&„öX;l¢5›¥ÙDÈP ®Y!¼€µ!0,˜Ó BÀBÆ(µüY`ÑñI¸ÅÀ@&'…\‚üŸ¾YSM ]MÃZ Ead‚N*`ŠÑ #+…ºü$–H‹“T• R’òÊK¬¦Äp¢{)éÈ<²ñpfÒ ‚àÕ10«=”ÇØ¼‚ÜÒB‚LyIa|bIÍñIš…¾˜Ч³RŽakº®K­/ìæSú1Òw;a>^x/¡PæIQõEƒ0JÆö’’§ž…:¹¢[&TL˜7W.¬¶ºt ÆÝi} ´PcèÞÿ´ça’±á ½|„S®­V_j0% 1ÆÀÀé GÌOå"ƒWYÀv?ïøÝŒ ÿ·e|ŸT^í)ù¨¯Ö"íã*ªIœOús—*›0¡weaéƒp?Fù bá“"D}CÉF#¶Á>0æ ç¶:e=ßH·øÇ™T3yé)4Ò%UÐiŠtÀzyÑÕ „ ]~Pɤ&ƒX Ñi/O¦à:QÇ€(Sy’È6¢/“¦FÚÍr?‚d©+Ê`/© QJfèAî½V\©9†Y2éF†ÉiþœŸy1Ù££Úe« m˜Ôz{/wþh$y²t¼á8w, ,CªVY ˜ªÎ +KÒ—÷i%(Ç~l¼ý˜A§L[:0Ž>«FxZö“À(¢kLéRÓ Ͱ—`gÆ–-'Ÿ¾Ú=‹O¶–Ž©ï’(c˜®85– Ò@¼¡_±IFLf4‚‡€I¦ŠYî”!ý€´&B& j¹4àGú‹6ÞÆEQ|l@õF"òôƒû®OÜ’î^Àä°ÌÄJršÑXp¸gXJŠv^Í%u 'N<()ò*ÕB@‰¡ª=1°Œiòé9õzRÁæ{ý”ìÈkBÀm¦t6ˆ z2)¯ÊÒû:7k²dø$}ÈÔÞʬI»§óˆCf¸žkÙæ…ÈBÍÁ%·q ‡^ï0}Ÿz“êw©÷z{L5§ÐsSs5½5¯j®’âyj±ßTô¢øo‹î4¯é·!ª=PËâ9 ã5êùõáåï®ß__=\¿¦X\‰Á©.ÊúŸ@œ[–peJ”»V%lê•Ò"ù‚U%lÚ=UñkK§Y蔞[ůy–øáÉ7]üš8U.B˜uñk\'Q‘¬¤ˆr£ø5?½ÊüŒZÓůYŽ£ŠÂ¨(§‹_Ë«0ç|ÐlÓ.~WoÍê×Q¿Æ>M)ÖuÍkË*ê!´K]s˜ž,›áL#U±kë}Š—­k\[Ænq£7íZ×–tT#©>éZ×40žÛŸe‘]ë¸xË,Ë×o# + #œ%<ª.qÍû°ö¼/ñ«®` QâÀØä‚ãíל=ê·¸kmºÆ5Ÿ”îÃ8r£K\[õ™¢JĹlÕº¶>3¬1HA—º–Šó¢ÇN,÷Ñ(uýôÖ;J{º&ð‘ÊYªyÍü}ŽÕæ’×–6CÃlåwJ;Ǧ¡ù$äJÍ–…Ïi¯Û{ñ‰y`Eö8Œû’×Ì¡F$šÃ21ü)ŒÑÏ— ‘ÑÙ´)Zb€ãž~ê¸`ăÀì’v¤ß”¼Cô)ymi­dpö`sÉk0!'©76&Œ²,ô"Ê¿¹æ5H̱^Áîs.Hj†dNؽƒ`|¶ý?C+ûLU¯ë¦5L2IÒ‰ð@Xî¾i 3YX¨„™,Fw¯±Lœ"2"â5aÐÝk$ÉĬ›Ö0ý#ŹL l‹º{ 3GD(‘õ~Pw¯aÂ’„jzæ$Sð.º×H~É`¬ä—xÛh_çˆéÀ`‰¡Ý¾†öLK>é¤Óå¨Ûל¿Ò¾† .TÀx×Vûš“•Š& +±xVík,5lf¦±§î_Ãà!FêNŒÐ™[Ûê_c%½•AQx–Eêþ5VB0˜‡EŽGûlÕ¿†1HiR 0õØ¢Íþ5ÒzELs*sëêþ5’ dh „°5ã¨Ï0ÅŠ+ÈÞ)Qº ´úוJ³˜`‰Z÷‰’€Í3  Žs®¯£œjÙùô´rý|Œî[ÃÈ3Ɇ®ÛÕ0/ kƒ­‚)˜rb¡jWCÜ"OÅ¢M’±Uu«1Œ?µÌ}Í(¯[5«Ák‰s¢kÝŽšÕ0XœVFÕ¬†ðÊ1Ì;ÉPÔÍj¸Xa!]\^4Õ¬†£c4½jRC#.ØÖH#.“st“š'·Gÿ|ùDÞ»f›¶WƒÉlA£œÌ + •Ñí–Åd”3ƒsI›5æ20cnåÌ fO>N<$Ë´hÁ’’âÜ ’³Ò‹cÀ2ù°íÔ³0£¡C³aÐN Ú F&ÔŽB••Sƒ°×IvOdËž°rj–QF×S«¨}¼¿x=A¦×. Æý0!V¢íÒ0azFb1/³vi¤Ä.—»ò‚®\†‘ а"àδ]’R!OÂdi*—†?sZÀÙd]»4ø üóVfL»4R¢1çl’埊KƒŠ‹OPQcÂÞìÒàöN›“9œ¶íÒ `Š”Cž½`¢Ó. ¦Â°z¶ô ±÷Ê¥ñôÖøÉ.ã»Ç84’ý½ÏöwÛ´¿c®¥B%¡%MÛŸ±º’t°y…´Llf74õOzÅ>³6¬¤´L>ÁÊc|?qh WÆÏ4´ŸÁñ·á;ÿyÜíÆ0ÒFh¢a¼ÚaÔ  Mï§×E$­„¡õd `!©x¥H:AbÔ|ÁêY‘jU¬’<œð¹´$Žc!à86† s LŠp✉ÝYµ,œ©®*å6 O€é'3è$Ïêå +é0ùUYOÞ.¡@–s)¥@ D:¸û~0q(—ˆ +™>µ,9J¡í}`8S h‚å± t.h*øŽ†%š0#“èUPÚ4H~–K§’_þùÔ»Ñ̵ViN‚¬¥…Œi“«­"Jh·•ª©Rµ”u&M0'ùÎûÆ0\@Z©½#»X¥ÒÁ)&ÜZ¨rÅYœ/Õˆ‘¨÷a˜¡ž"ftb²\«°­€yÜz˜‹âòi‘º CµbÜ÷…aZEÊÙÜ—Ü%”%木? ©]‘ê¥Ü“öE¹o¤>aÒ!¶«+ZŠSX&­ ‹î¤RvØÈ/´§Y‰œZ+æ;ÐS!Õ¥Ø2±”8&†H`…¥’ÁwJQd9ž‰ú`šbkÕT¦e齫ª1©¹”d¦Å“^%ÜÄo÷¥Ÿù&,Aà¤Îö¢ô3't $í¾,49‡Ì-)¢gºr®0­¾X–£Ö_&Å’ÉÛ,qC ¨ãV-Ÿ³BˆÀ¾À2œÃª,¶,ˆa6"”E–Z)Å´™¿Ë=Uªn—¿—%ºËg¥ž·¨Ê='Á’¥8_Ïf^ydJÛ²n8§.­0›…Ú}/–K˜ÑBíéDKåÉ%x”]È–yXÔ4— ôì±Ýkdò\ d®yy©”k§“ÂY M]5…#¸Npì +8–2íÄŽƒ(r,¨`×Ma¸BTÐ!Bê1•+²ӂÎ7gÂj©!ÏäœA¶d ‹XžgŠPBâ ‡3f.WOÖ/Š+)\î–êÛ[ún…—zݪ(¾È °ˆ‰Þ„(½”Ò'“}ë×sk–âûTˆè»a:ºgA™eÉ~Š6^ÅUDuû.1£4{”Ž„è’h‰y Vhbn#À¤ÎÙ÷”™«Ò”5÷*àt± 1¦K| «Æ\h±ä.R›ƒñœ,BEú)}¸-):—MHs¬yGšÃ\ï[Áð‘’›GŽ,žZš9ØÜøËÓzL— ’X£bN±æ÷}#¤^ »³h‘Wé4!¸Ÿ>C¾-öã²=…ø-dEK¯XéiAå•B¨Z”âeˆâ~¯›Ö=aè!`\˜èïT0J¿ Ãð>G<þ¾tñå¬U!Õ%e—}=d‹‹QE?7‘»ÉçL{’n©yy¬”z…Þä GD©î™êÄÊN(¹E‰R•KS#œAð9ãêŠwÓÉ?–z5±ˆK* RiÒÜpE}±lÓ¢¾L¯-þ–1Õhp^ò|R+˜Ô“|Ì=ÉÇ)wŽ¡ç%™X~”r>6+p™d¤¨aºýñêê/ç‘ãL–/;˜Ä!òÐɘ€ÏÊnŒö[ÏWÞu#”‹0ì[Ç0ä"²Šã(•¥ö­c$›„¾ڠ̰\IΑ{±ö ueõ"_ÐjÉWÎä„}&ìC@¬H 7cÍ"ÞŒøjO˜<+Ú=ɰY×k2ݧÚHó&aÁg990³ÃÍ›Šõ»ÀÔc !Þr'2!šñde׊ԜæÝMëó2–¬ i ß`K}1ȳ±o#®úIÚéÒ:­ùߊ+'E…ÃÌËØÙMûÖ/‚’hÐ\vÍâî!w--¶€‰†}'.ŠäqÕ´‹r]ì¥Á¦qÚ³øÐ‹¸Y7 Ks4w£':ýZ‘QRã!«ve~˲˜Ez)]4ÍRNÀi\IÄIª=ÍÂÓ”˜ciÝ^Ü2Ñ“ögðFúšW X¨¥‰q:•+š°f#HƤ­[µ_™XÇB2_rHI…{ˆ!ïÖp« ¡&¡$Núæe cFI…ÏÕSÇ=è±Vjãpc„Ô‰k•˜À¿Wœ“ñc£‚*ì‰Õ_¬`[ýåŒñˆ4vÈÝ ˆ÷`Ðú¤¼Pa$w[AH¦ëî;¨p^…¯ÓïNÓóÁÏ—˜¶þrF }asVb6ÓŒYQhdƒÛžn—q ¸íœ,fú¸¿Š14¼ö¹üO[°.™žY?´ì^›`¯ÐJO¿gØë½ÏË;Pß_·X‘ ndƒKxϬêpúéÛ"¿¦ vVŽC&üub,ÄN›|Ö…dH +)ÍšQ:‹ßÍj máK5 J‡EÑ')ûdŠÆHíR$`^¡´ÔÍ„zݬ¤2Z¿—hYQf£¥´+Å:£­´)÷SÝ?Ê[´š~Ìï^UÒ™Üjñ‘§F7ö(sYšW ÙÆ#/›nÞ‘–W÷ìÈ´Ð,z”éF•Lš ­®¶¤é´Uµi&sUô)ï]/*ožv¹©¼ÓTµª²%U¡«¼}›e²æ‹rq­Â +t9®Ì7šÕ¼2QµÀ +/ReÄ2ßZ•KœM×+Ëp.p–¹d³GF横¦Za½º#FæÓíF™©«Êo…û—ZqEB´ +ÌaRªÒaS—±Ó¢ªU ¯È7UL/ËAU†¯ÈÌf¿"`U@%’U!A-Úu PÕ k(¡ + * Ò,¤¨pŒ*Ȩ P©å8§VÙG·TùH…ÔT Jôš¥,Nlܧ‚˜ª¨fãŒFqÎÆYU‘ψ_T0ºYdT¡pU«TøºÊ©>¡U,UŸU]-ú†ª×ª´”fÝW¥ä¨ú±J=R5h³NÕ*`[Ô/Uþ¶èiª`n¥Û5»U(½°TíUÚd³[…RFKÍ଴ªÚÂY¿mV&.ºð\Î8iʺþqV«Û哳¾/ºœttU9ëóíÚÎIõ×%Љ@•Îæ„U)êlpPõ«‹a¢.}=[1Z•³g“G®·]›FêBÝʮҬ÷­Ì2ªnx1䨒ãÅêÓ*Xž DªÆy1$©òèÊüÔ,³®ŒWª\{1w•ïÊ6Ö,_,jªº¼²ÁÕêk^«Ê½2þÕµòµÙ°ª±_[›õù•½R•÷W¦ÎÒ@H›í”yUµ%ÐfÛºµ>£Õ"AŸUX”u Zeˆn6}PvlueWo¢ÎhŽH¥f¦¶ÛëÙ­ÍþV©òÌ‹\¹4yÔ.Š6™)GM¬µkD‘{íXinšÚ-£v^íÐÑ›·öµ÷~åMš9Gí}Ò¼¦ò]µYVíùR¬O9Í×T>·ËU;Ű•³Oñúâ"l‹ŠÚ±¨$NñDf ¥Ý–-¹¦½žµXÔþÒZ¢*oëR Ï®ÙZf+g®÷ÊÜ Ê•¬ †òBp¢|×MH£<ß +)§y†Pµ£½ »”›^6åá/(OÅ4;C¨¨‚cÖ±ÍÎ*”AÝ: +BadDÑBØ*CÁs¼¡!~ûÑVêЭrä`­¤”/š:Nù²Ö긭dÕa3me­ºÑJ_®sÌ-½SŸUë¯U˜‘Vë ¥¶*]Ç8éûÔáQZ­WaVMó@¥5ê¸.m¨ÃÂÚv:ªLÛGê€4mb©ãÚ–š§Ì:*jN›†r¬]Ó ¤"ô”=ªíS†,!زƒ©ÃÚœ¦"‹ýMÅ3¶Œv*²XúTü¤² ÖÑ—MËbº©ì’*èS™4UÌhË ªN‹µD¦*s«Šg]ØhU¬²ëªøYeVá·Mƒ²ŠÞUöhø[,Ø*\¸i÷Ö—×VóŸ¬ìì*ª¹i¦WAÑÊʯ«kÐnù¨¥&•8òw)øYù)d°Æ¬k´ `% Û3-Ŷý#VJ·2 ›Íb£)„¯¢ä€/:혱t1² +cÿéÖoºu˜Õ.õOÒží çÀãE¦Ô%â¨YÙ '4ÜQð‰¯ªòaIޏÝ] 8JÞ¯ç¥h…ò›Y±kM³ƒÍR-2d“$óaÝüa>¹vÚéçÔþ¾ù5[½æ±Õ¾E=5­jŠ“;S¯MíýÔkÜrž*R©]¯ŠÚНVëÒ±[“zqëMR{ŸÎ†àk×=ȨÄÁ²ï)¼c_Š0»ƒRï=˜=ȲêÌ4Ò4¹.¼Îe°"‰ŒÂhp§Id ßg…;QÕ}œ‘¾†-Ò*I“·"éAhÀõ}X“¨¾¸ªc¯_ ®…¯Òª©¯'DÝGMj]ßÿàšìPÒ_rºfχý—UËmJÍÔçÍV‡¯NÌiê1tÅ7ž«Îh´EÐgÕí(ç+g°µUÔ-ô;¶Z=ñ†(u¼ ÛL·î“§P¿Â‰µZ†_ùiÝÜ}yS5µºáGd»éÙIµrctp ¡„ØhA57L~ cªæ¿ª‚5Ÿ\·g(·W WÊKµûµä¡Ô_΃¯¹H=S5×4±h¿ ¾,m”F +ê‹eû…G®Jk¾¿}¦E;ƒù³Üû Ab©[‚Þk‹ /WÕó0?çÀz¤5a´ëÖ +´„$ëÝØqOFÊ–Q¿ÃèåÑ©Ò"j{‚`ß.³NmÛPOa³mÑSê*íDßIW…˜·ã¤+½S›59HP¡,šGS™$ì!Il¨ëÍK5!ª.¢xq +ë’õI½›’z7Ä-ô€ëú|’”c0€´­««ï'Õ…ÿ{š§\»Š?ßGîW7 ŠOUñðlXòH<ºÐÔ˜´Z x{ÏMÔ©YHõ3œ/¶ýÔöV·BÐäÛj©À³Ä+ÈŠÑ5Z*pÄT8:¼Š™ZïB3”8`õ^¥ÇÄÈn)ˆàè±hL [»4›éÉjz/!Ó +{î@ž%VcYuÛXäA‹|_/Ó5°ÄÍÙT™4Z»ú­C*<µº† èÝNóýÀ ¤4Asß`¥"_2ÖQo;¼¶Ø°n¬ËÛØºõ@›€÷ 2:Æ¡ÁH¤,¼ÏeáÝ‚1^<Ƭ8äöm…Jœ@ûªúyuñuõÖ­îzðu-x=u9y½-B/h]Þ¾B]¿&£Vy}5غJ¿¢æºÐ¿ÚË>jO•¦j7Öíô¦nµ5PÌ¡tEP|¥ôQPliÑ|A1µù¢šÎQì´ù–Š-«ÑfŽ>OO-V“ªÄˆZ%ŠÔ²*‘Ö¤%)ñª¨³Hç&q+á®6‰j£©Á67¬,jßÄ:0"{ùÿ»×BÅ*! wr_z-<¯×BUóš4 ÅF@Pa`Ž›¬ÊÓê5Œ¥f0ÊR@†ÁQ) §ª6œ +’u3>Ã(~m¤# +A¼cl¿6¢{]8YjúÐYK{ç×e—¥º¥—-Î~š×ânÇRå™ +²÷X”R"%¢y˜˜ÀBr¸¬ MS3‘j[²G•®50\Tº¦6$¥­Àgé k]>äiB +pê\ªf53ô7‡1dÁ4HG—ýÐø/2Da§Æ¤Ñ;$Éåè…_Í9MH¢–Ñî+&%~ˆ¢œpÌÆb;–&980èá@©kÃè ºVpZ£Ôµ¸ô&NC®øUÈ–•»XP¢<̺c㢪̯~p]*X UrXOD]ºXÍe]ýX¯D«Š²^Ѫ³&…ºž³¦¨V]hM˜u}iMÜuj½7Zµ®ÕÓ·©7©~•z¯·‡”„šÅ[êIUœ©¹6…±©¥UENAkïO{Þ \Í –á¤5¡–ARe ¾g÷Ë¡ÑéØ26ŒÉ²`Gí–AŸm€Œã`µj‘¡Ð¢)µ÷‹C’ZP>N¾…¢óîÍæ»Ýé«WßþîîáŠç&\ëCÄô÷\”¯®[í–i­‰`*Hb ½€1½–M7m’gÀüôé °—-X@ÏΟ´Ùú(Q´‘᠃͖Ykt’3h,wO»Ü@ã*Ãà è=¸Eb.±ò›ŠZP€JOSÊ>úcåÉÌgÓÉ~q†¤x“ÙsMxï˜zX€…O~Ã܆yW¸‹IÞ–%WYE‚Ö6ajlý4´ˆq²NêgüAn@+ ÁK~80BŸ¬ÏC[ËæÉY,U¬½IehÙ¯¥CÃÈôšÁIÛÜS4 [u÷ H5"eFFà ˜éÉk‚„‘§zÑ)Z|CÑ<ëf¸ÌjÁ(ظËÿS.•Z">†3l×aö“øRôîÃW R)ð1½0T +¾0E)Îóì@Ûcõv3mÎeã.[¼c¢M=ÆrBZéƒÄ”åiOµé¤ÅKw>Ð:±A”Q“j(ŸÒ$ÎÔŒ««³(§Õj °gÐÍKb[e™&Úq…2Š+"¸!ŒøieÉØ8:6ßhA%HhˆÉ7@# –‰T#sTi;,™´2J¼C†`±êt +S¥ð•¥ö,áM iKF%‰|dä±%HÍkØÖg±&±0;ŠI€Sw‹ óžØÞ3Þ r7 ä`$"c¿1ó“•c#}“En3±Ç0’!2R–þ_pìIF‚EcwYÑiÖÁän†Y©ŸŸ‡ΜÈHu†Ò°11gÁÛ±K1S4VBK¥o2 +MâFà0$÷éí±w2·«‹Ž ôÃnç,µ±Á¢l¡1åb`'ŒÔ?Í3(ÿ¯œ1V<áì39©ˆÅµb#‘³Š‘Óo‹›²ÝË€¢„Ä´ÅXùÌ¥®, ¢ó%¿\008‚Fq% Tn£$©YËÀÞqLz«ñ{†ßñA¬Šád:†ŽlÐÖÂYx™H-g¯××1!lp‰‰¨S£âdØ-ð½-aÇ' „ÔzÞh¨kÒŽnæB^l|€• +ƒ¶|é(å™"/Á±x[úË1xkHë#ëVOxÿ™ØÐg1­@ñ,m“–ï/ZÖ rÈÿYQšm+ «[³*Û à9xuŃr‹þ¡eŽ!°" y M®¬!EgrLƒ•xcŒoË}ÙÀ +,ŒÛHi ìŸÃt„¡Ï¬[Ð1®wdØK¤²ËsàèT‚,­FæYr;€K0áNÎb£c,0˜–Ê©ŒÁßJŒšgÀ»‘© ƒ¦A|ló$*oÈåW¦Ô‰y`ŸeNûÀ\"Æ sϲò%ãóÙØ˜Ùkž‚—. lÕ‘¾'Yp–gA>Æù9,~/ý¡KMŸ_T2×H\Žå3ð€ÞúØwE¸4¨1U±bÆxÏ½ÍÆÍXçß'uZ¡a ‘ý$rµ*7Jì;žÄ8‡!í#Ê`ÃÈ{ •$³-2,Ðr/zú“- ü‡ƒeØ ÷©Nš]ŒLe(Í›'ñ#DbSÃÒ²~Lë²õě٘a"–%Zrñ3°p ++tèãIJ2V⎉¥£-Ù¸N˜‘>ì~œÅTnH50ÎÍÈÔ{<ß$Ñl á6lÄ•úX{ZEÉl8ÙŒj bJ·—®ÞØÛ˜Èb+œ‚y`œpZÃpŸ17c²6›seØœŽÊ(_‘!þ‘'xý½Ðĵlgˆ(Bë.1-™3Ô6¹°2 + –/¬HŸÁbÛOôÙ#Ó8‰¶4hãÌ>Œ¬ÔRO;vŸi|‹± §„r;rÕbRú “‡yí±/…í1¹hb:ˆP:xEÖúfÕ ÕèzvS#÷t3Ä-Ïœ”ZèÈÔYØ®"Y¥I–/c¨'×0`4cä1ÈèRËpÆ2G#Œ D Òeµü¼è }¡<öëbÀÒ 9fÌ|›$òcƒqìÈB"L$>”â››it’õŽ3˜EÄFP'³)ÉÒ.ÌqP|) +[vÊþ +†ËÀU\ <xFÏâu„¶nd‘62!{6³,ûسñ}/ÞÇ¡Œb–ó!,ÙSgy–["§¡O¢]”åõ°W'yÒÄ\HF?ºæB=“$RC°dv‹£”±i”˜M¥ã<°«Óy¬Mkd‰½p,gÙuPÎ5g(¼Íé”dÑ ŠL 9Ê¥žmÊ_Ô—ˆÈ¡„ŠVB¢±¢Lq§Á„ÅØóB™ÃÔ/È*Öƒ@*Ð%†Ø=–µ ´ q(,"Ï8  Ø°Ë­ÅLY +RŸ[bœ<-|Á ÆQJ`a°ÏÆ;f¿€ò _ê‡Q„‹gÜÒζi`u­+9P¦±—ž4l'CòÜÆÔRâ6(MVPŒØ¡¤·äˆ a4ˆaÔ¡TDÀxañ‚QGÑ£—Ôàçd†Âœ÷’`™çF¹IÙfÓê0߈mîxœ“‘É’©LC|ì÷B\Æàh–M—6bôd"è …?Ç(™0ŒÉgßK:£¬XV¿Èå¨eÆ1-‰ž©O@¹¹@C”Ä|< ‹Â)RçäEdD2Â8!EAí;™Á†Ëª‘ür•Ä{8I„=Ö¡˜Ñ>ôt—Òät¤Ò9_–?ÒÇ âÈJº Qìq|ªŒŽ¢ê"SEN!üÅ3»:~ ·Lñ4QšQÒpÙct %; &6ø!ôêI·„ÿQ ¦Ð±ˆ!SzÝzÉyŠâ×™È_&Ö‚b;˜ {©ÐYMd…:Ì#Ï’ŽƒuŒÂ#‹Ä<ËŠä4  ÓÊÜQ¡-‚æÒý©¿&å !í‘-³¤È±Ky†ôµûܪ‡d: ÄzÎåe³PY<æw’®-æN&«gómGE”²%³ÊAjË¥¹Ä–E[¤8&‹ˆÃvÒ[±AV¤Ž\ ’¸PCƣΈ.%b²YŸÓ(ôYõ0ÙuêÁM1Aß¿öÔZi² èj.ëk–‡~h×®+U™¢'+gâ¿zuFkHú¬zjØ{–Þ%¼ +UäAO/ÛíŠKÅÓ ¦˜æ2Õ® µÜ´†0_Í{2€}0ÖJÿÖ01ºE]ž±r]˜qz¶ú”3ˆzTÍœî™ oC{Oȃz/‚ nì-®ž¥‰Ë3nßÇzw;ä)…"$¶«æ¬1P™Ü©y9é>âe1 v㙄‰­Pk³-ïR¦}„¶Å"ÍþÄd4±lCÀÀ† Y¨—Þk´ÚI9×fÅ´ ¦ÜhñqÏe‰#`æ¡Hê$è21’O¤Àଦ‘ñ’9Þ@áZK"Ú(é)Žôú2-QI3¾cO=½g(jS*âR{´Z¨zÖCÀ¤‚™ïçµ`ölDŘ4.½-ùî‰Õ@{ÞK"Y €÷RçãÀ gå‡jðé–bM‰1Ñ€,ž±bìÜ ¦Î4ô¡é“”Œ30høD+RŠ$6RLµ¾x+½{Ö4ŠóTÅBÙDÈi$ÈÕ¡³šdX°®‰(éöò†#çªJiî +™ú¢¬cÖYeO£[ÚæØ›*ÒÈ0RÛ©Áq¢¸ Šào$~ ²=ó¾Sõ°H[¯ë?Ê;©ãAÛ9±–ýÜ¥4ÀD¦_CiЊCuH£fn|Cëà‹,BåѸ†îB÷¥äF¦Ì}¯õ2RÌ­Ÿ”®©Fy•Y…îáªyVÂ<­„@#mÚÖhýMŸÑÒõYµ>I+-c_è®Á¡tRrüä§»œÔÔÐh9\éeN–JE­“ÄŽxðs­‰ÏßÕz<SPèÀ‘>pÊÀbØ.ýËtØ´)ð­)’ñÖ=d÷a5ë)†5ß°n0 'Ûgr5­$ÐUs,€âtVÖÔe °36ë](3g=r |06¦iîá܈ƒ LÁ¬Úl¤<ôµåI,÷‚%F©BÔ6`qŠ©ÐpÐ} Ì_t0$Óqe9ó ÉÆ†¤,Å̰ÀyvD.æFÚ´%÷ÁÓM†;Pú×Ö@òAðcÏbSm£¢Ïº{1EÒ¹ ké\ëƒl‰ÊŠéé|U‚ÁâB7´­¡žñvòzô?h›*]ï²RRÈŽªe6Ç:†‹³àéöß°æ:fL²¯9k*öò€Êì{:Ù–ÖÒùذ'SóÆ,ú`Å2·7BÓ§A IDjÊ„M¡È"1lÐGƦ­à …1A¢èÛÆtú¡ì°ú‘Ôe”§»/¹kiøõC1çS¼KâtèY ¨é + C1‘@`- ?{xSnÞt`Þ«rBÐ'ZýÈ€€Á·\ú.É B9QÊÉ!Œv pîÙ¡éáä3ؽöÞˆ×Q¶Vz´ 4þ–ÝM¬M—níHJ¯¤A2K™1}y9ê³§œ“¥3 Y‹É_ö€[f‚ar˜'ßcà[ž‘{Ü|c®-ã¤f'ï —YÇ„_Zb\6Üd5sLÞèƒ o`Éu€Ö‰®†W:zHè‚ ÔÆHß#ý}L¤¶”¸„‹ ’à>Ö¦-îS ‚žÕÞ—lú6ŒdLªÙuDT,B͘ÅIdÊÕ™ž% +nf +<™X#èåIBnx’Dxf'ÓÄnBׇ2‹Ãà¢TŽœ¥žX@œ"†%m8.)²Ï²· /s!Õc­4˺@ƒ¨S4 °* +h×±‰´È´ œÀ{m©-L½&Q ï#žMÂ0ˆÕÐïCJšê!=™'¢Ç'é›òª9%SŸôIàÎ$©ÕÔ¢Õñ Oã©^!©#6±½!†ÚèUfP!9=®•¾!5µp$D³=£ L&–šèhi êèûd¦×±U9ëNôõ°õFM÷N²ÇHQà^®°Ü=Ž&+'²`àHüVoÀèR]Œ£ð},5¹FžÁêfÞÇk~@¡, ÄMa$€ç¬<©(`zÆ™ý8æÒaQ"ÊmkîåÙ2ddVÔÜ“ÇÓtì!A +šh6c›m:ZÑ~¤’{ŸÔ|ÛQ +cõñ-d椸¿cp5½ô‘þ„¢¸Õ’Ã±Æ +y{-t°ÑÅþÙó—u_•ðrœ±\; ÞÍšáJ:æ¡[¨Öôi˜°’£ŽgçuŽV%%…dÂõ2RSXª採ӆê/µ<ܶÆЬ(‰špR÷À¬bª±Obtub1qwdE#Ùj(\%+µ/&´Rq¶ÙBWZà ¢JŒÄ–ÌÍD;²ÑŽm5wM1 ‚« ÷$&tàž4¢ÊÖ`#R§¦Æ­¥Ž ”ú:­mŒJ 4aZÙN¹ !A »ž  f…o`jð"1yôbàÊQ; +š“ÊsÈìˆØjxOª¤&ÕA’@ÆJMàP™¶Y¼|!?©R7œ”ã6Ãí% ºRY«fz)Þɦö¾¡úLLGä˜ ­Š>RkP2ó`ôœyâÄÒœTvŠœùaÇZ›Sg¼ÊšÏJ+Ô÷É +%—–‘¾ÌÁ€€‹‹/F ý‰)Kc­†:^° â”óQ”ҫϨugP¿T|• ëü¼ê+œÌPÄ Ÿ(=ÞIÉubmI\63D2D–Ûç.˜ÚöîV¦“s·t>*“„ã¾ðL +€<³^6È­„“F–°+Ê[m !w¦›ÉXƒy£Œ,<lŠýQž6Õ8–¶‹Lér‘ŸT›|ƒ'i‘«­E +51(„µ£ÑV'Ç|’&ÃÁdçå_Y¯ÛcÖ•“ðÚ +Æ'‰øÄ“ÊîÊ3¤†)ƒ@\éLWÛoóˆC¢Äøo” Ø1‚´Õ³À²$C'2 +|6mãµE$*&Àm¡·M1f;Ò¿HOƒ‹$9 ²…C +l™–AØÈ°Í¼ó*›ºc²‚HRv,~ˆ¥]ó"‰)‘]$hSö}™÷i¶Y®œŽI 4DVîR]ÐŽ«‰È•W‚Ï–[Õz)È3Ä.½¼}&QxŸÚC"oÇdRתv´È«0èAl+¥'Må¯!â`Ñ^ŒZJ“o”ÏDZˆ™ÀR°o¶µïH (7>»éAŽÌþÕŠÌŸå+" šYÎwíÅrÃ$±ÈäªD7ÚæÓþ +CØ(¿œã€r1H«£Ü{X¸Bˆøÿcï]wmI®+½'à;ì?¤ê(î™ébYvËVÂZ-A–©²›,‚*QÐÛ{~cF®½WÌØÚ‡ÕEK²ÕÝdó쌕׈˜·1Ç0?ðºË{Kq°A_ɦ¾ÖyóÂîZ̧XË“ ‡íV‡\Š›ø•²Nv;I 4k´,ÈS˜–zmFYpjòyÜ ³0j}ʵæÛPc2‡}yrjk阀è^1ló‘–t8O(c‡[‰#vG…W³–æãë]KüOG°€õ{Á=nðÁvþLÄB˜|á¦mÀGlgÀYÄU´"5ÂJ ˆwVô3p$l {6—€aÙíQ +³îtM6ˉÅÙnµÉ¶ìº7û€!zc!)Ø—€b +6* ¡¶¶. ª‚Í È¬`nÀkk¶P,˜ÿ6[=ˆ€YÛ:"ûš6|¡€º{ãIÌ^ðÃî/ør?¸õ 1ø–7„1¸¥ÜÛ¯wHÊà&Dfp·§]Ám¿A¡·£€¤Û8!RC¼@­!f ØØmì µkй! +‹#vÑ\µF…7Ð8”+Jy—>Cp€Ò_0b_oF-áyÀ~‡È~Aoó‡ϲbÙC®"bâ7)ÇÓ‡tI⇔KôoS7¡1 ¤€boÁšFz´&ì²P¡³aMf…æˆ MÛlZhÖY¹Ðð2{±qd—! }'!ÑzWÖehÙf:C+MȘ†.œ;Õz÷îìò³kãÏÌíÞBk.8tmSÊ¡I)d¦×>§ÜíRÛ$yh» +ÉöаuçéC¿×6ÍÚÅB± ´œ…‚Ch\Û.âyfÝ#tÌ…’Iè¼Û–^B_¨ÜÄ&À¥æ{ w¥£q,T›^1[JPzVüižµjñ-U,ü/}XX%«–U,† ¢O¼[bäÞ¯55s¿>ᣙ+Ü)‡²ÜA…„Ú†Ý-—ÛêžíWؤ5Ç¡œN2ür8xàµÌ8P +“{ 5x…¥Z騊Z<,š9±è9NW©2¿šÑGÉTîÍuˆÑu€Í×C™7Ô·©¹MÕÖöX1v£j dÕ¶úϳV‘㽬•èð$kAûóö…¬…ñø^×»zhÂ÷Y õë^Kýqšì a¶­Èƒ0az!Ìû·à‡°lVèD\y+úâãn`de×oš‡g» ´[gœê!&¨“ѵø`Ì Û5 éí$uz‚(^£œ2Êúìmêº!6:Ñáÿ8 Ç>amDQEAÞãWç!ùꊆ‡Û²›µ¯ƒo°/WEÒ#žþÌ.*©á¾¹»u„ÏÖõáÂyâ ºæ,Bô^˜_ôëçùåO&®ßâ‚:ñÕ6Wžã„†¡8?àf” vm’Z6˜0Ï_†{3bè§J«}ÁÏ%±Kôhþ0ˆÇ•ÃåÆ?ßI¨§Q²i¶bí;¼-náô #ºH“Os¯Sý-ëMÚK·éˆE&㙹ÈF–Û5/ñÅó¬/1ÞËGãóóÇ+m¿(³Tá7àݶΓŽÞ6޹m9I}Õë\£ÌÒ©\äÅû;sÖ&³Ä6N´òà( £lGÿÔ<Í™ãú±íêÓq`·UÞA ÅÓøšw0w|€7[B|þûWñÕ-{Ðö­¯«j™vôûÕö D=»‰fÓI^šLpaìF\úév1m~¾Ì¯×+¯æý~Þ-~Û >áÜ,Z/aî›ß£ +7úÜìj™€‘£ÂðWû£ìi%†³„—îã×~/2-ø™Ì–‘úÆ=ùÕŒú=—’¡ì8â(å(ÂPÛ¨»‚U‰üd\ ôP6»ÕÙ6ÀÏ´.ÜVð4Ó¤$ ’6E:(Y§É +k!½:YÓc[]ÐFÆâóCÙTô Ápî¼N;»pZ i²âÀ35¥Bž±)«’òi?•S#ÄŸ$Âé Š=Í›‡žM~§…yœcä|?Æú°ôíÔD^€x´êu×Lä- KƒÊvJÓˆ*Ááp4 Ù8ò9φ: Î@Ýá ÅX-NP|¢æ5+8~gÓÇ'¯Ð…ýf-ßbº3ájÒ•¦0“ +ºk§—¥Éòf '©(wBZÁ wž¤Jr©;¨ÌÞB‚´a#ïÒ¸±íTõÕH¨Ú)Ç’ýZÎÂWÔKX/’"lïÜ=\}d€;ÌHùõÙé9"If¶… Äæ­€;Ÿ´<óþí3ª ØSÈ^ñãu¦ÿ¹ùîÜÂ'fgZ‚ÝLŸ.Á&°p¶^ywaös’Wu[Õ´L¬¼ÏPý¹yãÑf9@Vˆ†/=VPõ<¼‹šC–v „µ.ÃÇãíÖ°€4âT‰ôˆ{l@ŽKávúf?×He'åRÛ€fîñáy½%9±Ætc9¾åèó&Íõ “Ðe}òPhJ,C3¼CJ‹Çæì›ð¥—ŠÐÅ Àö'Õ’Ê &_ðˆa>IÙš•„F›Ïq?$e$:îH´¨í ÌdˆiþLT2J\H¢e²éq–ªl‡M·Ë^lô™OKr$wÞ R-yBžQ–?íêÓɉVÑ—°mT²“t]O"¶ û`ìš#]íÕÂ>mb›ó,a¼•u?Ý>HØçãÇ|}s·ؾøhF–ï-Ñ:¢AÛÍ h×™ë2™£‰ÞFüÁÂÏ\ƒu)ÆGÝ-é詬;Âx;zMìNÿÒrô +Ÿ6W†E +¤0JN”T¤ª`6âßåþ9K°àj‰ë37iÖYyR…,‰tÁ—(òhœ3O›l+¥„“©IîT‡å ŠÐgn­v,4ëZò嘌*5˜†9:l6œBéý˜y¼ô“Wç =âI [›‘L L\Êz¢“¿ëö<Ïþî*ûú'_ÀÒÜ2(õ$½8чv±Ø–(t9÷s¿Ù›h.ajÃq?)›K…ÛÁfžÍ;{»íå@’™ÞïdŸE*¼T!˜-fU™ˆyðdF¾°á’ÇA IvûÎl¸€@©ÖŽÃæ„ó5C­MWcUY:Iœ +ØÕ¥»Xí?¼– ¦ïH¤Y{¯z¢°”ÍɾöÉÕ vø¢LGƒ3uOS˜!î• ÿ—<5)pFÐáÛä;To=Kd3y5ÿOö"“ŸìuåŒg_Ñj**QØp_û–æ/²XïMŠÔË_>¯Áð¨>ìS<•˜ÞÈ6Ïøƒ²Qˆ•¹W4‡Z‚‘`d^§ƒíÖ¾\V•¥/ÆGvEö4¨OÁ­.žá<;¤«DÊ(¡™q…ÏRÕàhA?6•BÏ +?=óáãqç¬Ú‡±n°–RY’Cëd¶Š?iñ·ó»DZÌn{þ¤,OÕ«r©sÇlð1@§b>çE6”€?Ü\œ†Ú<÷``¦7§MÛ-›Á¸¼óÜF%Iê×uÔGRï߀ï©o~žü8ƒÛåõ‚Y:}œŠÖ®÷î7Í(ÍΞŽÍcÓbJݦ›u‚Ç=¾9Ûé‘|Þûhï|LyKsƱûŽØ uÁÝЯ×) ò´Ér–Èõ~`Ñ JÝÌD~FOƒÅdÁãlîâ\b‚¬Å)Ú%°7ç9œá9i@\µÞ ÚrpÒ Ê•iV‹Ïä0UåÏsd¬žß±K¥ˆh‹äPÆgy©æ3ˆ@9J-~‹›¤ü›èÙ¹Þð…‰~`‚¤Ý²g¾Ÿ'ÉQÔs`#εÍdN©äS`™_'ÛÓ\w•ÃntwœæcìkhËâÕ«pÞ¢a‘=~¾.ËxåuyïŸ`Ý%â›Xwšø6×kûUÂÎ>nØ4Ãüˆ›oœfq_gëÆ,3þ]3rW|þ€Ò8.(ŠbGÛ”"–«áÀD“=œú(:HHÊö>„¤ì•wgÓ‘¬!tiOAò ž$_œk—7hN7ùé&ë[¼¡ 0™O»*IŒ£ +Zã’ôð|¤¯øš‡€s¥eÅ\1÷¶uJZùr™Vÿ)órRlqÈn0HÓõ4‘­mʽ0ï:M¹5tSÐò¶ÛD¶o0ÞtƒÆå­â­j.7«+¡Ä¤¶ahvWÎ’]ËQt!˜õžÐÿ 1s‹%#–ôDÌSžÈ¶Ð‘\0V² „ïÄXr{ãÜoî@ÊÐ]cK¤ª¢ÎµÏ‡ên¶Ó ÂGŽF\8DÍš¤,•ü^éR†g¤™ ƒÔÄ/Taž9$$@ÙNc—&ë¨ou¨ôû†ÒMô»^½8i4#‘oèR˜NS,öÔ°ÿž!z«z¢ÎUQ"êÙC_€ÅÒà{Ý +y'á>EPRA Xˆ`˜¥²†PÊh§ÅáóBÞSM/6ÔÏR†f!1/ò€rˆ7âëb G¦`³X¾(¬úˆßœ`*’½¯b-÷2ØŠµÐÃg“î$.æXôD€áË™%߫߈Œ†:àÉöšéFøa×ûÊݦŽ1ªÜõŸ×¾ìô@Þ¢þðǃd²#ïy%Üjßüxw¡ÔœRrðüwí›EûT®Ò~—Òuuo­(…ª•äZòÆZ]—7_àØ®º±VæÃ4ÉLY×wŒÉ,öÕdÛFNçÆXUý\x,¹¬hµÈ³SüÐ’É´·Z,š‘°hgÚX­³ŠÐÅœt:䯯j™sJÏÔmäQÞ1Zòƒ%¯}A¦¶±Z'~"mcOmc¶ìf› _îï˜-Γ²¢£q;³…kÍ^‹E³EÎ+`«Ð¶þþŽÙºf ñºèl;7fë:½¶r±Ó "Ì– /dˆÊÞl©š .…j¶(Ú-€Ôfü¢¹˜~ €ÀÀý·æª!ø ÙÚ\¥^sE*Œ|«MùËÖGŽæêã¥óƒm×k¾Ç¦ã#ß³˜®/°\Ï*cïm´l{µ¨§¼gµž~WD&IoRkt°JþÞ—úʬ( ¸9l¥¶Ã·ô/°X?è±6ÖêòXÿ¢†êŸŸ8ÿ–픹þhßìUà„V@2+ÕDªÌÝŠ—E ¬ø„噜þ® ‘F~Ÿb‹tVÒsU3iЫ³M#åVª©æí:×.*bð§Yååj~Ó…n´!m3IUSìn*7PH¡Y¹7/údª< úx”XÜÎj#¨>eç²ê3ÑþD&–ÛçèFªe¡yTäõH¨oÚŒÕ/êLÇAù©¹&ªnepûHL¯wj7mRE¼ãBœSI´ã o¹:d(‡š&2ª_]u­AÚ4sMNeK'¼¤äJºkEÙeì’w%#\ +QÃ!s7ta{o WÊî¼ÿÔI +Îö†Îíu3œÓ2ði±ôØI©ŒÔ"¶>^ ößÞql¦ðLЙŸ4z“NÀˆªB8;ÙéÚ:ÅEM—&agE³îÁXtø ×é^g±ySW+iɳT®T ƒs‚X†’fØ a†yà®mUÈe( ^ÕånQ¢%…4¥jþóãH.kÓNÔÃ_‘}碈{ô ÌrØV6‹gázÕæA›‰•žnM€z*hX˺' ¨y-tt¼|¸Ô~¤J×W:|§ßнêˆP©ËÞ¶íÚˆ‘Ú¬Z¬`D¢ÅæÔW^¦é6†-Æ Nƒ~•œ¯NŒ¦jjköå€Ä§ò½Ð¾f¹«#›g¿¥i^% ¯²…TÜ^ɉNí]®Ó¨džfP%+ìš1¡]¦…2Ü.¨ÞE›ì-ú}¥‚×AR=ÝZ¾øé²<7Ò† d(SšÔCé…šïÇzº¿©t2Ø9”‘•´­RSÝž÷G(z}4?þX³©ìµê"#€M¸JUÿ°0—3tÛövx1Ù¾oÆîÂR棸ŒxQ{›+rš ŽíÍ0DÑÛ‡ +bžŸT×·Åu¡¸Îf\´öaÛ¨ï#‡û•ˆƒ}í<¾Ïƒ mS€aèöÈû­@Fe·rIȪd5õB„ƒ°phfɿϸ `KÐãS¾–R@ Jý‰.‹¢Îd—èˆKÔ&hD+ˆjä«¢Àü7:ùð¨4›hÊ ÛØæWñG}ùð ßÚ¤ÒÐ@‹QD oæ–¤¶¹ƒé¸‹‘h(º±A$'T›(Ûáò͈ü'yf/¶–áD±Ÿ#]E<‰wzÙ¬Q/˜ÅÜné°çWвM'W •S?§ŠÃ%1ˆêaܘұÐBëEØ»‘<&’æiœ— xjª…™ài_y£ D‹n­ySÕÀg³ïÛ€¿ýÓÓ¶EÔñžé$ÆáÓyÃ9°ãÏgUTIÃ1•¸5jî;y9 ÍÉ—<©•Pñ:¡ù@ý×üHL “ÜB1ŒEø§ÏPÚcq­ +¢jÿc +Óþwð“Ò…œ¥¥¸·HÔÁ|žÙS}_}D*ÞꔩY âÏ`‚à_ËÎ3­†)NYS¹\¨‰àÌ–¹îòHSP!ì2‡ÉÅãä Ðu‹ÔÓ§¾ß¬tl +ɉŽÈ Œ +,å¤é‡ƒ1”;Æ…Ó£ÈÝ¢°Xàk¡Õ­AïC} Ækr·Ä]€%Ž¡»òõ"y’Å×o–tì'öM÷~;n—™œ|‰ûÅÞyðÛi$QìÎ7­Èz­~»ZMtOd%ò¹÷Û9±=tÌȵ ¿]7¨tõâ®#h㤣tCú@øŽÑIGÔ5ÓÿYiã½ZtÒu]º+mWÒðzuÒñû$y¼:éèÙ1G–êX‰>:Z±à—ls„:êØûè<›º +ªÍQ5»³Ú%¢ ®š"]®ÅYç—úÀ•Ùsî}u$–:©Ü +”0è«—>“oöÑéo‹¾º½'µìñ†¡úÖW/À¡K¡¾wУ}õ"'ŒvGÔ¿o—Üå¤k‘œ´|ê7¾:¯Q jÛ!`>ˆ¾zQ͈/Üm«ò4}õþZoÈ‚]ÍÔ¯^EHÐT²mÇí«àú—àÙGqþÙ[ÿx…ý¨À´°¾72 Òo”owÝÌÀfórë ª‚uGL._MPUJ ¨Zâ7`£í BñaSùzuÖa7õÀ¦]Ò¢¶·OÓD³û+êAàzÚp¿àjà½l²mÒfnG^#ä€ Ì–Õ6îí µÕôÕºM:ä_øhkÍ‹!vKõÕS? N¯à´áÑìjÔ+˜¥4›—ëá¨ÓÃÑáøý±ÐiÿÒxê?]ÔJÊ!Ö^óÖO7oþԜ…¹Xýô¦$<­p6Ñà§ó. Ý¡ÕÑ÷~ºp‡@!ر{nz+Õ›wP±ËòŠ7R;ñ)Ûó\ +)6^:yoÛŵ¼/øWƒ—.Š=%Õ œ”eï¥Û^ùi¨ŠÙùrôÒ?|¿·—ÞDKÍ@%òËÞK‡4¬‰)kp§9zéЉ£ ÌøuF']´`äü½'jÖ;N.Qè‰æläè±Ûÿ©€MGÖE½ ÐÒXÈ£ÎëèÑ; ,éÐÑ a«Ÿ •ŠÌéP'nÝtMÔ/À&j=6þ:#0Ûza`±VwOª®!ÉœL$Sp×¹}-f×°^ÜufªhA±r"ÿ^ÝõFWŒî¸ü䮋(†}à½úÆ]¿†·!]ت󻎇Eé ˬ¶¯­»Ny +¤K=Ow‚.‹"*]î‰à®SSÏ•m˸'{w)”Úér‹î:PRsY½ôÅí¥‡JVølÛ"°`=@$3´š­E`ÁêÕv1¿ÞûsX¨pm0æÏÒ²-³È€¤„Ú¯ð>0ƒA4#ýµö«ž®û¼kÉW=m̱D®¹ÕXò} ßú–C§Ï%_ß!¸ØåÝiÛ’/ÒP§àq)æ#–|¹ÏŽº`"ŒçkÉ Þ¡E2X&e_òåÀQÂo,òï±äË·½D^ešˆÖš/w ß«œÇÜ×|Ù‡*{” +ÚTÖš¯úòïj€FÝÔ|yH{±ñ¦ö5_ž n;ŠüYäæ³æëúD(‚•æ¸Xó­DI8›ô}¥æ«ó°t8Œa¡øË+ñqÂ÷¾)þnwºÿŠâïGŽv¬þ~åå_”l­‘9^Š—_P»T¹Éž\¸Žk[üµ·ú-Šƒ2)æŠ þ{_ ÎkÞ1¼´h¾WûýjÙÑÌ]?àR;¤­ÝD¤ˆfÅ®öûã<Õ h-´«Çøÿ…sýCKº§½3ýIŶ‘±À÷yoódÕnžØìóÞv€;i% À!ï=éÔwKÀ†¼·ÎsÁ¼e&ºÌ¬ñSâ[÷BÏ›ÝËPºeM|g€ý#åKó>íaà¡s©³K1ëOw·ÉîŒÞíØä¸Ãë|7É¡³U`6)ÎcŸä1¥õ!Jä3&¹¥íÁ¦¢$7.¥vžþäµ InN.“9:ü?WLrë&Éõ ”1øªk¶;—‰nçùïúîñ#¹Ý1X¹Ç#Ýëpf6:§ Ö5Ý-œpOæÀ—É}§»7?_ÒÝYrVÒ=>’‘Öt÷RÒݼ+Js„F6FLwÛ=ºèol¼¥Çt·…?f¬ÉUTqû>ïm+…ö‚˜÷&ħ”*³b„5ÿñPfãPH{›½=š¹*x±1ë±UÜÜm‹YïŒOH4:D4˜÷YïL,H3à(ÚÿcÖ£òw.ޝ{¼pÿÿá´m¿RçA#ºñË"6Âf…;Xîîµ™'°`ª;%¦Ôñb1˜{»-‰oC½m=æí…Ú×(0&›ð;q Ã7Í=bz"¯ÊTnÚ×lÞOfÜ&°=Èïì­ÛVö öf["L!qJ‹ìÔ I\›h:¯Žä¬…çÍÞh·bÃ<¦‹‹ÙŸqðóy¨´]‰Ä5/²~Û| ¢Á€ ²…8 ­S±þëPX³"N(¼ÒÚgd h‹ +¬øãòØËc§nétVqÞ‹ÍÁ†Ó[°ôÍivéª:yCÕCtŒóô3¬=ª36'ÔRÂJµ‘dÕk)~gÚS’KY*Òµõ0­ g“Õï­'TçÆ„™ÛeÙ ƒ°9 ö,Ÿ*aŒª´ç£ Â?iùdk=æÖ‰,É p6Ë™`ªe-.¨ ?ÈÝ#„ƒÇrqʳ|ŒêtÖvúV¥ T'ZH0ò '©ônFëH.”$Æv(Im6ع$m«1¿¤Ò¨„ +,zz$ÌEƒ„½x@<(°13ÅÌQëuÝÜ!n[Þ‘3£Zª«0‘¢:hþzF£ºMÒèDPE)[[–¬r{¤ÕD‰K´SÑDŸrzöÕÌO_ƒP`‡Û"Ah‡¾&›xˆy&s¸?âKê"O³UGœÃª“Ì;‹˜Ai²:Iý—*Í-»0Ée¦h"Ý`K¹à'Rv‚Œ;Ïå£RŽy%' UVÁósÇEÛU¡‹ˆlõ&¦,]l¬­jûö Zlãê¬kvÉ™KB;¶çå!Ò…?Ð*zPJç¾Eër~x´@¹Eí ¬½)A–l2¨*cWy¥Y2r"Y:Ae^¡SïÊÈ'‹¶S”޵n§î©^N‹œÄŸxZ§Î%~Õç'"¹ðù:~ªù # +ߌ4ŠzîJŸ£f¾Ñþ‘QùU½þ•hcã ÄéNöís£tƒÏáõ«–“ǹ,‰ ¤¥‡ÁÀ1†„WA­J‚{ËžuPjPu—†‰£È[uò’µÉKV¦ÇJã?Þ3;9)™`ó4Íå`/5·¾ØÜ'ÚIÛf“³©4L2Lš°x‹jÆþÉÿÓ7éhƒ\SÈ®‹;Ùt<µY³·¡ß CÉ\væ:Ì£M!´/ðyÅAÿ`M®ÀB·8½´—v ŸÜ-á’£}‹ªða¡•° µµ=5Ð8ô\Áß1ºŠ·—Ì)G=Xv§Ü6%‘ñÿ­Î3œ¦ÝÜh¼6;k¦%ØyM™‚Ôüá¸Ý5߯ÂW,”r¨C»Rbõ7`my¶¯ºŒ +ªº§Îo;€½(úék–ðEI¶’{Ä7T( ¨þà‘'s¼p¥ <·ýR†ôë™(—˜%ŽFr‚©ËóM§1JKº<˜›¹ ¶óš³Y¤,?"Ö¼FÐíÚÉôÍ‹ÙíaÛäèƒÙ ¦bÖÅÊ"s½šfmcL øpÜ`…b³ý1‹‡^¼ f÷í1é\´m4±EÁÐr‚>A’§.ù¨Ú~ZîÙoX*Hìé…9o—&ëfW*ØÈ(QkϰŸ3° u»¹–cÆ6ÉŒ&©$“xh §ò& §¶ûŒâICIªl\r¸.&œŒî᪽õrw‰‹ÿ¾±¶ìä0p¸˜^õ!âù)Fµ5u¡Œ¾ ­—æ%4dFD`O”ÏSö&‘øt(mÆ£Œ Š÷ÓU4‰ Ug›x¹®N@Ó58ÙºßË›†éöG†§ó’ÀK÷;9ýNÀØ{øUš¶’|z%EíÄ[°/Ø”¯µ(¼^¢§Ï*9+Œm„fºÔ|~ÌsÀ¯¢TŸ×ÈÈ´ ;˜IƒÚ´†ä,ÓÆl /IXšmZ˜c3 8š½ÙŽpa¸¯Ã÷m…:ð2¢Ÿ‘Ï!¨êL†äøöÏ/C vñ’O6JÀr%°9]i÷Aª¦cè)vˆ9:yÅ>!gÁWœ:„^G-o:¡Ê¡ ø$€µìÚ›Ž$#{õ0ˆŸz©hŒðR-ÐÎòÐæÖ‰òÉÝð»k.™GØtÏ£ ÒñM7š5»Ä÷ {¿ñ#Ì0¼Qв©_ËüèóàúT|$Eö±ÿ¶ˆC•˜ÞÌ;±½x:ãœ9…Îcóó.â#åxiÍÙ\9ŒØÞxžnbxS ì ­å¤^•ƒÙ½ñÐN¾\ƒ}‰â"ëQ6_ßnp6™hß™<½Ìnß„žgÞLÂ6s› Ôè&2„GìÄòɶ ¢ñ@p%vƒÍ¢ĉ!E¯+A²³®Mxí­nö@Ö±RŠHròÃö@ÙOŸdÝYhIkù)SÆ=ÈÛ™I9npÊè"»)ÐʺI:‹¤¶™¾úÍ^k~Šû³ëFMY~B#*7q³§4O# Ù@LöFCÉÌËP"bEWãcsBL_—جÎ3˜/îz3 ÙÀŠï <ÓÀyHB ´lhAÎüú4”Ü‚.PPà´˜Hý“[{^Äð ðÎ&îumü‚rÞ(@-2ƒ‹oQl›¶I`#À£kDtQØÑ*GƒqUãüêéúQó£ý”8Ðf˜Â‚ÅýõÉÖfÒ°7±…D7ºâæ„báÒ‡þ;ݧ$øÈ…¡$4]÷*E)ö^ãØ¸úþ„Ç|Â:ö!kÊµÉØ<™ékè ž¶Á KšòõKø"¼6TφA÷)ú¡†/Hbh¦m‚'ö0Õ)‘€ÀŸqW<° Û¨;êÀ€á Åy! Fèó&ƒŽÉµ;D¬¶B¦/oÂWûÄrNlÕUð_2bJ‡Q!$‡pB© ªÈN…°^œ¨h&ÉJÏl²¢¤ÝêAÐ{ñ<0Ô²®ÓM*ç#à9„¶-*½—ÎhÇ$)ðêîÒ"v£>ë©v³-,‰ú¹5íØ‚ZÛ§gØð½Tà$ÑÌî†R¯€,<èèmz©"îr¤ÙUìñcšŠÛ–ª!ÐÃkª ÉR³ò—0cï2fÔߺ¶ªl«Œêšxû xK[Ô‡†ÜûˆDÓÝ÷9À:ÃqÛ•º¹D*g ĵ­JE1I±l”–füM:“mY÷Y:®Çl(Ðo}4à¼-טO-¨˜R„ªE’dû¼,p_Rn!­+ ô˜òƒºÄšÆ =e÷BAaŸbÆÙÄÂR‘U©1C-À9\?Ú×YnwŠwŠlúî³å8F]PоWc%ëp†Ü<æ¼’iÞeökʳèX%J+œ_ˆ-–н¨Ú¿_¤“ÖÜÖ*âiÖšoð¨,S¡l‚ã­gª`ñ®ú¢ÎŠ~E&zSÅü“EV*XÀM%HÜàÚ:\;5V”üÝzKÒal£7‘ݶ*ZÎÃÝkš‡ª qQ# ÆÀ´Óœ1MÇÒ%HH¼Áš[”ô„Žö¥7̃£ÅZAÕ4ëú]UÒvöDs]Úübm¼Ê#س*ïêÒ¦›·-Œ +êDÉÃå +¥…-x\àR]CÌÞL;l¹Ú§Ú|«$¯f bÇÑ))L>¬`ùZŶ)sx²A¼E¼’†Î3š—Ñ’°#È Ä€é\ 6Ï"r-äà`šyĒ϶•”¢>({ÏÌß`mT‚_›)©ƒm±ã<ãK‘µz4°=¹U(ÈÞÀ™-—?)ÑÿÀ·ºúkçÚ“û‚«Šþ!®j¥«*¸@Ä(ÚY(uŠ;{õ UOÅù‚H×™rY=13äæ“Q°ç—'¶zsè¶kí&Å®¯P$w—òâSÒr§>(X‡…=»¥´Ú<ØX]½[PIÞˆÑÀ¨Üîíê%Οlæãêš«!/S¿EjþÆÁ¬þ¸æ)ט‚׃ÀÇV¾[@Fdˆí[¯$T!BAÜÄQnà™»l³¯ð–„ I"÷Új Ý/$ägX»f€Çy.M´N>ð”wÂFÈ=-ÒLÍ1mUÕ•E7¨ãÞóá)ýÅý¡Npe2b i]‹rhx9$ãì+y9Ez°´!¡Ç3’7\’€ü¹irÙj5¿â³>¥%ƒÅŸ*˜œ5‰ÍÐΛaò¹Î˜ÖtVÏÓY=ÏYÏéQ ‚T’¿ƒþ üR¬ìVBÉ {˜©eý×w¨ô”è­Õ¶pÀ Í?Éâ:[¯@åĤ3T³jZÊë;([’׬HePA–£¾&À%©¡ðò9}Î.¦–ÛjѦœënI³ÌÜŠ6`kÞAô”Èô‘Ì +Õ|vêµ ·}雜کïèS]ÓÐ~È&fმYITɘæXÇP+ÊÇòšvs8,õ&í NÌGCûý%ÔTtM=Q޹K2ºòÔt¼ë7lL|DÚ4Æ9™zŸ*?š´t<ÚÕr~­áPÒ;Té­»CkÍ º\(W©ÿ_}æ¶Xàƒe/>ZA ˜î÷m¯å3¬’ÏJ/¢òXJpjÜ:Õ)e^O•<^ªïZó×ÄE‡Š ¢uów¨Ës­*òe.M-Z[ë¦:É6âMåTï]h½æ—^È ÙeÖº( +44*£@3üY×¶ +¡®¥"ÿN}5¿f…¸Šm`ÐŽaŸünÆ›uåÇàY€Ž§¿lïî>n­“Ç´ÖÛ÷ï7´¦…ï4K ñ¯ˆýTY‘aÆ­à…8iWÄ~ò¯`ЏˆV<Æcý4ÇvùTȺøW`IØ>@åí¦ð-a« +™°Ý­H›í®;÷¦°>a›˜¡ív¿BV£°KÁîÜЧ­Ù +È©ÛèÐU°—¼µµ»ìw’ àÑÞºÎ<‰ ^L€Öm½¡™œ©ê YÀn»Zx;…”ýÉÜüÒ¯w ÉàÞŒep“§û.38ÙÑõ€ Ýùû`†R¡ÇŠq݆0+B¡³ áTÄñî²8jî`8ˆw¼ 4~y X#úã»ày3j Âo8wˆßoø>ü_1ä1üðóŠ0ömJ#Àá×ÔHÔϬJÄãï’2Ír;¡!àN …~‚]V)ö%`C;ÃÌ^…fˆmò+6U¬I´Ø˜±&âbƒÇ›4^ìY³€±ÇdÍ$†•mFrit yÍÐ*r£¡åæmj5tì„Ìlèú¹s¹w¯Ð.;ÖËZvŸv­Ü?fÆ®ð'Ö + ˆ“sÅ Ä9¾Ã2ĵ²b"âz[a7üòLÞ2ü¦M¸ÒÖÝð…Ó‰FÓ:%~5–B…“44´ÒÍ"Jó "â¹ìC*š›åÝæ•©eR‡T {gV>aà׾ȓmxüBq+œžD\QÔ×q*ìz’þ­ÜŽØReô³ÂÙýÔg¹¼P\±P¸ë}˜%¦Ãˆ``ó8ëÿœóm„ŸÇy9nAÄ À|ô=^?â/2Ñý´Å'rAJÚDF +Ò¼rsŸ¼"‚úT¹ž#+­93]5ù2óWÏ)_¯$"ô»G걟gînÿ+¡ˆ +À#‹pi¹^ð|ןgêêyP«Ngn¡m}CõcÎÊ•hÓYds½Þ?;M&À϶WÔGêQ:5ɾ¸Jzñ×ë{ wðÑëÿüüµÓËvH92 ‰Íb#°I(KRõu#E8dÈ$†üÿu–ÇeUÏ%îý$ÅñW£‰ÐÀà×ÃyƒLI5.ì`*^,d‡ +gY–n¼‘uõÇÚm"ëk g‰/vÙÅ>ü>Ëâ[g(M ʧ SN玣F•B\i­HH"âVsle¼  D¿€œ´Ö§å·ùÕ2)7\G¬7þy·mÐ[ÑÅA‘¡žqV¯§%”I½Œym¯O`>Y š.ª™çG3ØÓú?ox½…¿Á½!ï³­«ýD-cgçÌ„’¡!eþBüþÊwM¦ +œ9ÝP“Pl’â½S#>µyši0Ós}VO´%’¶Ýñx*& 8 ÍJô9q½•”×­T«E À¢mD65ö.­‰É´%ˆ;AgõÙi„Ü‚‹ˆ%'o1/ºOÐæÁòˆ^[Büœ~+bpƒ,ùö\ŸÖ\[mæÚžE/¹‰"…åS`†ÑWˆÆ1®ž7)΂[ÌD.Í+Üx2,s3‚<Ø'¥øå¼Ø—s¹5¸í¼‚÷V1qwI¶ªÎ¬’(˜ijÓ.JŒ~C`Ø›Dú×IyxeÀs2Ùsþ¬C™°{̲~7…Ü(ôž©o>ý¸ ôN¸ß›Aýrè9Û?Bq"öIw•Ȭ²rÃdîÅùÈ3J9"öÞ- +*u삺´#oWrç4(¹>ÖexØÝªn°°Ý ½Ù$k†¥7´’ãöRÚ¬¶ãd]ÑžÞ€þ,áFPED WÌãÜ<® ¹…:uæ’âëÀý¡¢¢ã­¾Ðõ•Rä<ý‘ªÓ•ÖO³ ´â'®”Ƙ²Y/q–T(‰li8k×f¶Á’EÝ’÷@êžmÏ›Ø,&?Oøšef¢ëÍÂ)Ý ló¬üÄu§"-$LÉù×®]Ié+ ÷P·¸>ÃO¡°h®$ôD3Ðo5 }`Ô¼Iè‘f`£ßi:}`Ï tô3ÐÑoi4ýæ<ÏtôN3ÐÑoé4} Ó tôN3ÐÑoé4/}¤Ó\yéæÊOÿD§¹ÒÒ¯tš•>ÐiVú-f`¥tš7+ýÍ¢ùñâøúÍ2z’Ÿ,Ô€è 6;OSÆ^é&ÞÄT‹E/µ*½‚6±‰I[èQ{‹J¯“xÍ){¥×,í"Û:¨dªk«Ò+*ضαQzÍ7DÁ–3ªÆ3%¾H½f@Éæ\Ùœ¢7­E©Wº¯õvƒÂ+ _q¬ð¹E”)õšŠçŠý +;ã*õjÑÊäu ™ýw•zåÞ|·¸$M¶–[êÒŸ´…¶ñ²}åp_‚Ökšn€ï|Ó{­W©v‘ÿèf¶Ö+ ¸„áMa#õŠê¥,ÕÈTeç…V©×<ܳie+-o¤^3óƒ7m[¡tÔ|]Gø•VñW¶XŒ“mCª½AüÕ6/I†™¥‚ ØÚ¼³ ±óÞÛ[P%6 ã±án±y-z°4>où½„]Wä×?ù1aŸô>WwºªÆ^Öä“,«‚©yyO¦ýl>Q¦æ›/ Ö +ØmQƒµWØD¶u˥ВQ.uw±‡lB,*¡º +–û“¦g5KTwb°â·Z°}|ñ£¹l³™›ìýtDÑÌË>ÌÜ‚3úé÷dØ®®9dgID(µŒ-(?žì{Óâ_þ#/•Üv–/j%®–/j%®–/h%n-_ÐJ –ïÖJ oj%nÍ\K f.ˆ%Þf.j$îÌÜC,q5s«Xb°rA,qkå‚Xb0wQ6qš» –¸³vQ-qµvQ-q±vQ,qgí¢Xâjí¢XâjË¢jâÎÚEùÄÕÚEùÄÕÚEŵ‹:Š«µ‹ŠŠ«½ûx!þHïÞÞä#¢½‹ŠŠ *Ö—g@óÏ_-àj‡ëƒ»½³-'<*Ú­BÊòÐìÀŠƒæàæZoäA|"K˜**d· #ïé)~$§øÎƒ¹œ">›YŸWsרƒG5Åü\-E†6ìÕØ»N°þXr/ïM‰ÿÏØ:Gv"cêâo4(_6-JÛˆŒµô©Zøà²³ÝO¤nîâxÚªŒ5 @)ÖÛ={ßã£Ùl¶óq±Ði÷V\Ì61<š£l;ì±ãIÈÝÚ“ ©+q1aOÕ,n»×q‹„¯êb4äëñ²3Tq1n\=ý î¾¶…=ÈYðíÞÑÓ–\¸ßìMVA[¬MA“\à »6Úb Jº)-ªR‡ÙV[¬åy%²}õØh‹¡§BZµE×óp´P(lµÅD1 ®L[±½Fi±:Á}`ÂÒ=ž4Æè rA ³£î5ƼE¨{‹ð 1FûŽK›\DÝ5jŒmÉ™ž$ÓWô÷?z#àû%Âb_ÝÊX÷JØKc x§º¿ÏwÄÅž/GfГӹ˜i¡2ïÒüÕt9SfØ+¾“%u£ó%c?ðñv2c¸çûh}4Eþ˜Ÿ,6Fu¤k¤Æõ±ðŸ’¨Ó‚m0HñuNoˆ2‹flÚ$lŸ±ýdÎ)!B@c\ê'-Ž=ªS²Û¶š9H¦ÀaãÞê½LMí*f„oàŠ^Ø¥Âj.égyÁ$ iÒ©bß¡f{ ÎPÕÑÿ4K‹eÁÎÚi^¥s £!DÄåQ¯ìâéÓõ©áDw5ÄÊiäF¢l"ê‰väü<ÿl’H0ã-ì7´<Àð [Û]2©ÀSÃn@‡dÅÿÞÔÀ/|ŠrPLžæõTæ¶ýí˜b½,œ¾¸í˜\ªûÛ×&ùæ<ä\Þìi2ÄyùúúþôuÇTÚS÷¯Ÿ(IÖ +I›äúp_ž:Íá·ùͧsâóü—zPGu„íEvÊn³²)R‡Uªp= J,Hç%ÔAtÉúu1vq¿P'w:Dí«yŠÕhóÓ„ß ù”k èëÑfóÞ׊@gUåv¾²c¢ù ƒÐ·°“`/d„.'$S·…§40>¤(Ÿ;6«zaøÒ,@Uôð4¹mO/€5ýJ‡Bó}©øêÉé ƒ”„?oªø¦(oS„lŽ6ÅÑœãÝ#Ê´JsZ@„OMJo>ÓÙ¤Ða¼ŒÙÎ#;ßÔÇ%âîÖÕÕo;’ÎSçÂt"u˜–Î^/ÜÆxi ÊÈd¿'ºì¡P8€—×” NS2¸¼„xWÞ&,lfúµðåR!ÙÔɸÕ]&% +„åÒ¾”­õòîö•-ßî)÷’ù®ïi/+.:]Ù¶ãaüЇ³ïÜ*<÷•,óN~ùG{¸£(ùÍ©ü´|Qý龪ÎþRÿøåOþ³…0¿þåËýô§úùó?ü꯾ûþçŒõpå‹“w»9ôo:zÚ+›’RZ¦«µþ’—O'iò¤^²ÊÙŒ*ÉþAI²O‡ +ü¤m–j£‚±¥&v¢ ƒä"3t‰‰tµRҤȒ'¥ImŸ +À•Lå:Í24~ÅÛÓäàØ–f¦3‹§œ^Á«5 +(·¸ËÉ4fÊa'´¸8½*Ý´³Ü~KÜ TtBó)2JWÜÊ儃IdÙ—` dÍl‰b–œíÒyò®p¡éÚ˜½S±%«ê óÛdëOcÒ¡`5ÊGy’Ñj…7EBNÅŽ\(øÍóGõ’CKbø©4ʽu5#5‹²Ôv³ƒ‚ÍÔˆ¢µ’ãåì?¢V„f’(©C˜âMs¬¶šÿ/è kÏ` ÈŽf¯úzº0bôt ¹‡§‹Œ˜ëÔD‰k¯ú@>¥uÊ~û¯u³´u‰ä‰« ÖMÝæTfŽ]4áæT +ICöðÞ@`ß#æUÓ7™…¨rÑ ;«KÙ”Éâ§Áv:‰RÝ… +‡ó¯ö¬”³<­óò/ß HÞÙiÑH\ +Å5-®œn”¶é®D3×&꘵:©æ!' ¹Ú5‘ 5×W †äêJ )KÍhjgÛ{”JzÉg·´•lõÀd+Az«¹ïŽ/“Ð,SÏ"ô ª2 dòÝ< ÒÒ:‚甋 òWP)ybØL3\¯…|­J¤IB)€”šëFS¤¹€G›ax8#bç3'À\™ÓùUyÙ Á˜ê +îÉô®UgBìT€$ÑÓ¼ˆ3(‰ÑGýîv~å¨J½(wYÈ@€ŠS|º²Kë‰ä E)N¬|51€vð—*Ø¿¹NL–8B˜xåXC 2JÝœ‘±|5L¡3•Ù× 0Vª$h mƒb fçu áÔ˜0Ÿ.ïÆ¦EçbÓ.µÇt¶]S°€»7îÚV_ç‚Mæ¡ÝPì.ö—n„bf÷íÉœÒ}»°íX`'´iï·ÌDS +8êÜVê” œ=Ë6½á˜Ü§P€épºª"º*(@ŽÇŒòygqÅ!­!ÛTiO´:éI\ +BÈøÃɦ!B›\h#[ªf\È褀M‹ùÄxù·›‚…¹—¥p‚´›9«‚Ëùâl„SD õnký°ë˜]¾F|ö@€NžÞY©°fúùw†¼ðÔw>”®Ið‚Šºêh¤’$’Ähû™ž™²%‰i´ÇÌmúÛ9_TkꀽÅîr¹,I0Y]Çvê¬çî“EÇžV»›ìÀ’ª}K:CNOË'ÇŠC•¨í•ÏBLÔšÿJ¤¢‘Á +ì¢޸NJö eWëRô?fæC†Î6¬4IolZÒ"T˜.¯æŸ²s³M&Å]8‡\‰­]‚Æ;³7‚Çáâ!Š~]×&‰Ð @³S"£Lbÿ1!&fؽAF\îY4¶×ÉNBìE¶¡VÏÙXÔCP:|ʲQ‹uø½‰†h ^˜1Ïó*þ£sÝÙã‹+‰Øù®s‚øº(슚™Žíľÿ8ÙÇá^.dOTVØW& Ó2çsÛ |™s&ø O™¹-”Ê»(Ỿ²aלêlí6—æ‚ÈΛÒ1©ˆ\æ*ò$É9Þ¸­‡È¼#€,‰Nƒå%ÜÞÃùÄVS†àßÓkjbÏqßGj—™Hñ€ÔÈd3U<5“$êÝ(!2Ó¡Ê*uïXæE… —dXÞsÁ‘Ô>C‘•:]²o‘ c²RðîØ2àëì^!t›Ô\°.÷æ§ #,ÖYû…¦¯íâ„äþÊÚT 2Ng¥„wèâ-xï¸M,®àÃK®I ©ô_«mb ïK"'ÀÎ*Ñ =È…®S!¿˜@›¾½O.sÓ. ØÖ9v*1ñãPŽ?Ý¥þ—D^˜ˆ×ºs£0à$[õ¼¦˜’úá)ž*ňy£‹?0ûɧ¦WÚrQÎè:fµtLǪ®H ã˜\pYOb…}b;xzûäˆCÊ€ÍùqlGëzÖ0âl^qÖ`ÕßYµ>/_O­‚h)õÖvé´É`“öðVðËýLdÓZ»gA›I73  硲!ûÍ‹¼¹—0bûLaTx7¸_p^®­y}¿- |cÞaƒ’ñ½ï47«AoªD%Öï 7Z_LN‚úž*ÔãEÕlkmd;ÏŽÕùiîMc3_-¤òä”[ÞÌy3 rå-ú«aۥʤ*1®í–`kYÖ®yIþ&›H|ßÛ È®› ^9ýÜ\³r´Í”‘kŠ-ߣ¤Í^vA« mÝ QiìWÜCU˜ba >ÅkzÄ¢¡0bL…Q!ãnˆ"°hæanÂ8hÏÈ „‰=ÛFƒÅ›$C(i¯CîL´7ký6!m"ct4© ¶SòVct Ó1(0{=I•Û ½TÑqCçÍŽ¼9OEf›_ä6»„ì “X$æJûÞ…d¼1o1¦&yBàêØä>hõÖ¤«$R¯wr(l±Y[¬ˆs“Š)ÞLŧ¯N ±ds`a–Ée+š´ü1)”ÁeâÊò9æ–ˆèÑ• Ù(Û³Š3eo’YçT!X3`æ›TiŒ¬É³œ¦ô`Œå6çÑn{dî.¦¹¸5×GóÄUÊ>UxÔyk¦±“b¥4s“ÔÏ‘rÜf4Ñbwï|ɇšSÝaO ™Tº”ñ”µiv +þ¹$mλð@Öt¯lü±ÏÃêÒKŠÞ„é=%M›agØ.}ˆTy<²ß‡ÚÉϘ/?»BÎM®ýñOÏcþnº¹§|> kcÒ¸„*ŠØ£µ†€Øôqc…ÞV°dâ<9€ä€Õ\«šAé“«²ÑÌy·Å$ð^›;m€´E,/¾ó<„¡œ«yÕeò|«ÍÆ'±Z™íä¶Ð?lÓ¦;"Z Á¢Õ×·íZ‚ð§² Êfãò' ¨Š¥éíÌ94Ž–¯Ì†õ Zƒc@*·6)¨¿6ˆÝ$¼ÒýÛÚÙ,r>^^ùÆ_äBOµÝ”“½Ó¯<0ˆ®ªKXÜŤa†«¥’Hm'êL /¨™^I4G·ÀÌN%=Ûê̪/+ kH;?@@*û²-ÃÂ_÷CØúV²[ŠÇ£Ÿ³…v Û­I…ݯë"™…Fˆv„ûýŠ÷5‹Œ›u¾~n Ÿ(Ñh<{Uç—¼ªÛ3°Þ6ÉùééÇA<ô  éž'jg÷¿NÕï?ÏõЪ¢‹tߢ>¹x6çÙ3[oßLå³;¼ êMçõ±N4º¸É,–ù{å (!I¶õœè¼×…€Û@NØÈ·»©U +­72%°ó?6Nö\÷ð¾c‘ìièJO+Á +Ú OåuÌ7ºwÑ +a˘üÇ^$!”‹Ìk¹úô¨ç¶™8±Û½½!A &gt ]æžØhÏœöYrsAh#•VZðUãÝ;/Œ p®ÅAyoÓÜkE%Äî5ßkÿÞÜé¦-ü›ãˆÙm Ìà9§åh³/<2¾ÃÞV†chÉÝæä1kÆ> póaÄDôÝèÜ11ãþÛôI…xÊþ ÖñÛDò}l·`"fIPG k“[ýl€ç´°·f›Å«ÌãL 0-º=…­MBV{¯·Ðp.´ ìêTI¾MŃ.ŒÃ-Mð;Pi@•:È£ûU8q-ÃeRE/ˆÕ¯ IXd¼¬ŽsäDeÅ‚pÉvŒ'¤aä¤Ú`kêá'=ùuMqÓßö¨úƒoKC—25b<ÒíZ^ÙÙU’í¨·¿·:¦zÏÿ>°ü/Á¹…ð"ÓJ==Žä0âóô,ŸœíÍy‡O Ó))’tîF‘U¨êãÇߥODU ƒçsÄÎ,aKC‹iЂb·]&uIØvˆ]Oµø¥­¦Ê5 7#HÒd±²0÷¯}(&>ÈðIÝÈðµ ñ4Žhˆ ÙUè„:¥ç0Ý割’U;á htº­Ñ,#ÌŒUFàRÜ‘0ª í¤E!™CZüüwø,Λ]wœ  ».š)kïò`¢2\sy|×§P2dW ÃÊ,¦ $B€‚ ü‚È4¨vµ¦ !/)ªó^fÒ¢ÑãxIý¨z':H ª–°Ý­ßÝá ŒëË|çSDüOâHÇî,Œ[^!ÈEÄ^ lwŽÇyIºÍ¿;‡,ÂªŠ·…l onM?CQnû½”3°ð!‹-ýÍz?`§™°$ÃáÎ÷)Q2ÈÕ—P‡Di[¶Ø±òòð™˜Y`Æ5´$ç6»dõˆö¼µ À{îšE6Ÿ¸µ®%Õ=GÖªDSceæ+ª®ë0œ4ùˆàgëµ7.6ÿc†ûqÔú”¡ZkKe~BÛÑ  Z«> ¨ô}ðv—ã®,Õ£xžµï%ŒØ>SÞÍZU‹ïw­Î=}¥¶>íR|̉µ¤¸ŸRki2Î̵¼g÷Z&ݯ’µÜÛZ° v-üî×ûR?ŽÛÆZ‚Ž;ÎRÉÞî[k=|ÝýBI=웡4¿ÝuC‰?lÚpoó7¦à­IXÑ L C0E±µdJ a€cP[ |ƒB‚Ýx’ÕâXÊÖ]ð–àlˆLðSÔæs€:Á# +`ŸàL­˜¡­+ GÁ‘ ð¥àTp%¿ÞÁ©¢KºÂ²‚kû»‰£y‚wEy…ˆÝ.uÀ—mñ€S n|ÀºÅP`…ÌíCŠq"“‰Õ‹¡Ì}` ÝC µB +c0¶"÷AÝ +pŒÁኑü‚Ûø4ŽZãÜõCå<º¹Wj<Ï +dáÄî²+®6æ VlnÌc¬ß}>dÅ +ǼJ€‡ÔÌŠZÞfx&æyÍ´tL1M°õ61°Ú!¯µÂ½CB,¢Æwù´:y¹\_3zÿ¾Í}H'þ€\ü»¤åÚ0óœ¡}`Í‹†æƒmV5ô0„¤ìÝþÒ¸¡{b›]!‡ú7î¬shÿئªC÷HÈt‡”$},Û{<ÏLÌß}3!ƒÚn¶€Ð½ê±h©<ÄF¢]Ý¢dä…£p¨Ê²Ö?ôˆ¸Ò<"Sy­œÈÓç¤ìŠß°)»qÉ Õˆr-óz-ÚÐV/.ŸŠÍj±ÜƒÎ + Ê«]­HrRô}Wµ×Xi’ç Už}rGõ¯E*<.÷qí>ð†× +×íªúµ–Å ·¿Dßï54\žÍ›¢Õ-|ÅÊ[Qâ늵:POb„è[5µ]©ïñóµ4¯¼V÷»Ö"?¿}ʵ‚ßÑZýÛŸLÐõÓ»^ë§ñ{­•×øÙw…Û0{Ö²o˜€¡`æñÛ2óº +ÖÒt\GkMûãÆ>žcU0d+;DÒÞÁLœñó«°¤ØF [9ó@||æž@ø$éÆÊ[´æíº„PxÞ ™ª|‚Ç{ÐSÓ +ŠÄBƒk¨Ïý+È£Øg¤;¡Yiž²h‡È|m'W¥~;Yã@õ”÷ã%^âù*‰p³Êµon{áÓw}êpžøæ®9» ¤ƒîÃ/ðúÝÔÀÉDS‚̦ée¢&fÓèWO͘(k·¦²ú¥bqÁ))Ñ͈¡ŸÊ™ý‚Ÿ_"‘#w”©ù¿^9Xî÷óL==‚±¢A¼Ú¹XÙ1jÄ +°ÈšA”9¹f"Úæ ìC¥‰ž¯ù‘‚s XÊì›óÌwoá7þùéàwjw»‚ìœfçsüüCÁüfB'àÒnâAò)úŽõ Ds"ª[§<ôU5¿3»^å«ìqú¹÷òfí>n|þíõ —­áÝ÷²Îëe*ú%Áô«íÁ‹[Ú||t +±¶(ÛŸ£»—~ºà›Ÿûǽàü÷¼»ÏoVD¿™úH±XªÐ‘³N:Ñø +m~Éfñ · `5c5&‹KXá,áÍ…ûxçÝÞ3˜TÅ(ãÿ«™pñ„Tè7sˆh_L~ÈI€i–jd§¨ö€¨Ì¢E$bL¸ÖSºNö Þ™óŽi“4.DGÔýË“(Ì‚b ¹¶‚"c¾qÉT*z4‰ì|6)&dñ^44HXúTÈØ5…ä"¨ #Øl„4•”Và6 ¡Ó…v(x2?óöÃCƒG=bÚ'‘ŸpȽ³øªf(X§žhUÙB¶-%a1ñ‡s¾[Npä©+@â¨dÑ¢ ² Z”XÌF–8¤JÊðfˆ:ð+}#Ê$RfÞÁDŸŒ²@žlŠÃ‰{^û«:É´ÓÕŒà†F8ykpŠù)HÛšµçœÑà Ž9<¬YÎ’='9Ìå´&ÞG–æ»Èøƒï< j¢zÄ‹„‚ñ—x=i'‹ÞŠÐ›á5*påE@ŽÄÞ¿ý +äâÀ›Ø‡Shø˜u¸6•D®€¹ÎĬ¨¹d]ûIUÙŒ73²RëöS{‰yÎÙçY]ð¼¹=[ú­¾³8ª œ8ñâ^QÕÌ ¾ª} T-kq}¸íŠFSŒ,;uW˜7ÃÆ`q¦0¶nºPÿasQ¸Gñ¹U’¸qÄ Tøà<ë­@„LJÓþA÷:iÚý}­¯EîØe;y§ìÞ(E½c÷=v‘Fü®b(êN5v¹ÖÍá4£‰Tm’ævsIE5B@òí¾ûå)ÌÐCÚ‚ŒU˜Ò#«ú%B$aa¨PÌ#Py”“âSÝꀉ™›öV&Ô»@Ãú}ºæÐôu½ì`Ä…àωö«—°ÁT1LW1öØ>´)òL–¨“íâéL +Û]<Ϻe†[ ;ïö‰Â¾}¿{§op5û/ ÎúAƒÍ +S"˜¾íÌ +&4ÌÏ`†×‰}Ûðí²–ÿ^UÁg 2<âva&ìûAï¹QìPÿ/iö];;K¼K.ÄCÒ)vPÖ!]¡göâß5û~/Í>’ÑÕ¥NuzUŠè4• šÛ3'”Jp,Tï)lµ,Ú+OÙd<}v +¸jÜð›Â9—¢P’ :|JFˆ¯¦›k‡È!¢åÆ|u $;mÝfIQµY×½:{Eé ­§éªqþDš݆®.›ì|­â=:wSuuãv‡9Ô·×E! ++£}ò¿ÑyÆÌú#»EÊ-¸ä +¤¥RÄøà}Þª}$¯} µÜä" ã”x‡í@åœ9«c&é¡i&£­ªšT +2Ê/…7 ^•Hƒ *PÿYôttÏÍ8yÐDE:'Jl„ ¯Iz¡uaì$Ü‚-‘ò8Õ ùD{€OPÛyÐ1é~Ǩoâ+M•ydNm¢½ØVÒ^‰@•’7¯kI‚ )¥Ÿ’—Ðç#[‰#C‡l:¦â†›ª>ëÙÁT3˜YÐ`–Úe–ÒÛõæç“qªt+[Š<ã%âr= Ðîhý¸º)DÔDÙ½ÅÙÞÌÙ5y’ æ¼ú.ˆôé SÄQ§r…™v¢ÐQ5®!ñ¡6à“¨¹Ð6E«ªÕ«|iz¡{¥šl|›Îˆ—ƒŸckLm›ª²Îâ…Õ"Ög3)gÀëAë›#%À*ª­¹Bèï~é9.‡¢·Ë_3]DzÎEú “Ǫd'5UVÞ6âb'(tÛ—Ëu›„f†&ÞAO Éž.üÉG‹àë7ËE¸?P®)»fJb¨€¢åb›Ëasþ"eê7„çT /šcÉSªõV»Ð¹AÖwPwaŽ',º4Ñ+‘ŸÍ¦ƒwô4/¼€@m –¬|ïÛNw(`‡(…3mÔÚdTe/¨^¶ÊÄùÈDNó¹«éháDÿ 6T 22™=ϼ +gÉJð° úSõ^3Xo1''/­²ÿÖæœKN `“íQàŽ©t˜I/r)ðŠÚªš’àreòÝ8¥>ÕXþ~wqñhÔy4‹,šú5[ù]»Eÿä,gÙ… h¨•vùå_Ö,º(vO¾ÏÚ§ÎRE¾!e°pÒÜPEåÐ&ÒNé~À¨j_EˆÚékÕÏyÊÜ ¸ýPjšñ öjþjÃÍAÆÑ¯®¤dk +ÞÓ 9¿ºÅ†a ü‚jFÂfUjɸrë›¶*¨ØŒÌ%½óì7·«]¨¨Í•‹’TÖ_ZH¼?É>ÞïÇŒ*Qš9Ú×pž5(J%I¢ Øæ:B¹CÒ^pûx=}ý“q½®|·mS\ +Êç¡ +GÙ¾Ù~–§*Ü…ÕCþVN‹Ô>‹´ ÀözœCqŒÛb§Õ­ÞÚzí—2ŒµUR¦'U_@ 'äî_t- Xhy`E[„ EÈvR{ÒÖ“HJVˇkëÙÞ“ØjË>€_`¡ }j{2I±ÛlEpÖæÍO¼'CØ*Ó†;\ÒQ–»Íþwi½/—ZÔˆ Ûø/¶u9Øeª‰7¼û[uµb¼DíXÜAÝ©‘éŸ*Í™g½š¦õËuqEM×X›—Rì(häõ,˜âl|je¿åf5€˜q>v„$@ a5XÞ!a¦D›6d"ó×\uvü¡ èY7ñ@Øy]Z{ø/uÛ$znôùÈß0Ëœ½6ä:4v‡êêáÔ‘mõ7‹’EE‰À•ŽNª$»<‰9C§À·üŸ“ —;‘-0ro~^çû&[Bpð¸èKzÕń߹Ý:IíðsóÔ`}”ôÊCí×á}!ü\=ÓÔêîß;5cÕX€ÃôÍçki¶ä5å/^?x+N&?& q?_êá*ûi’jQ˜wl—‹= Iæ..±¤ áy“½”ËywÙm“îöïåhÎpcÁZÊàáâ398]E½|çÆÖ7"‚sLÑY^*ݯ’½Ž$Ž¥õÛ˜_>(„Ÿk$Üú©mžÔãáE¹çi‚¥ÎÓAüµÍt;ÚÌ–w€Öù1Ýžgë¸Ë¨ãPçGœècì+íUÒI å@êÞ¼÷ë*{üz]–ñÂëòÞ?ÀÜÂó‡}%¼Ã°?m¿Å½½…O6Ä0âÆº™Tas3îñëüþÐVÜ¡Ñ; ®üò'?ýî»ÿbæñÏÿòçßÿÍoý³?ÿûŸýÕ7¿ùæçßó Lå“i|•Œxç|íåOþÜ ä›ÓýÙ/¾ýþ»ßê”ßËПýõ?ýæ?뻣ùÿ~þ˜‰þú»ßüÓÏþâ»Ï?ûŸ¾™Fº'·ü›_ýwßþêgùÍo?›‰~OF×|õ÷~ó§ÿðýwÿù7?ÿüí¯ù³¿ùã™Õ ïäÍàÿá·ßý㼓÷îþ/ûÍï¾ýæíæÿËßûP(²r–¨‚º(Þ½¿þÖúùößÿÝï}÷ÿñ£»ÿ‹oþÏïöí¯ößÿö»_ÏÏ:IþŽIò—ÿùûúß|ûË¿ûþ£Ëüõw¿Y®òá‹ú«ïþñï?:-×f÷ßüýë·]fåŸýä¿ùÓ?¯?û³_ÿbþÖÿýÓo~ùí¯ç_þÛ—?úËï~õ›Ÿÿâ»øíÿäÍÿ8“ÍŠÔPÊ—LpHù÷Pš‡’¥F­PÈÛ“ÈÄŽ£É—ûSý÷ÿú?y’U¹}@;òOúçÿhÿóÿ²?þãKN/ÿéåûßÓË/ü—uçÙÞÞÌz©)öÁ ½üÅnTx°¿Ø]ñËFm¯øë/Þkæ·ýéÏ?ÿßLaÍ2‹¾_üñ7¯ñ•ê?½üÏÊU›Í¶ÝÖþsºM .-ʸ^Ãù~5bNN€µ žîƒMÄJë¶9}f9ü@î—ºé…ÓñIhŒchmQq¿`eÊXrïãÈûÿÕÙ7N³|´aÕì .Nr)”2DR7дhóto©}Žj·Í“ÐeTW'Àµ#[ Ï#ܾÑÙG¯€N!Q£S¸\FL€½n¢ûŸ„–7£Ýqn?¥„”ĘÇÙ½‘ GÅ\ 1#ÆÝ€Ê&î]Zî$÷Éã›Û6Nñ ¡ÐMi1 ð~Å“À&ð0NÔÌî9úî€Ü#úµ>E’¹pªËŠ(ié˜Pú¹€NÀ\ _×]Œñ錗îÓæ^`ó~™§Âq'§‹,é9! ô9¯ì˜G÷uu‘SµK¥rèäâ’u YG‘;q~ê"~JÞ™$OU®+«A…¾ăà±Ì¿ŸCµB‹?§ žce3è* P"­Kfíxœ¾Ã@‰«@5£$ËeWYvè]Íö¿ý.E ÆÔηËD—éò µ1Oß Opàê¡(m?d¡<Áu4W JÝAÀx‹Ò~µ©‘¸,M¢¥ÕßuÖÞœYTvÔËC²êYM[ኒ+§“ŸÌ};¢y‹ ±:o::&> Á6³r.¹;§»4‚èEÀí/®më_k9à÷¹°TøÕpÜË·=çuÑ7cWö @úJ¾3­>x °=ši7tÏFe%½•‘wt*0¢òv™oÌ~A½Ùo2“ÑKñRbOļ§×üŽGS cèAdÌAGªpEZl]g±iÅQòfO4àh>@"òÚ÷ôN¼sCЂ47>IΞC»ðTùíû˜“J-©´>ÄfØUS!}¬Öýtd©Ä§w3ÙŒðYfß„$5ùSçÍ^ÏÃöNáe@hƒ9ÁÔ×»É{£)KØ‹Bë¤?…8N ^+&Âã3Wl-ÙÌr@Ð`«æ¡±œ)¿Vñë×¼(Uº3‰N´tº»èÛFÀ‚x>ÀÁ7 87Ï8I#q„€Æ}2Kƒ­¹mNƒ°„ÅSàø§ˆÐÃn‹r>æÂÓAûžK‡F…B?qtSn†M;šÛ!jyý»Îf~P·ðî8¥ôûGçˆsʾâIÞžmýÜ@l<—ûtëA%lë$/4s»F—¬ÀyÆíž÷—'_À—'p|ó+3Ÿf`E:xÚÊ¡»ê€¬°Aйà¦ÃDØï™*딜±Mfê»: ÅBleÞl§‹V3àòÚ…¥>¨‚ŸÓ©âAö>[PËÁÔ³~%¾/»CÐ :P“_G. ‘îw' é§³7T˜K`ÁÎK‹,B‡úEÔW%œ~‘”={¡Ƙ S5øéŠÑ¯ƒ1¶D 8€MÞN#¹àræû¦Öƒø12hi!Ôö8à +~—ƒGÕòãWt阻aK§¸h¶Öö¡XÚBãâ}gB¢ûv„Óf‹ÍŽÑܦcÄð{*ÏCþm¾Îz¹Óô’ä˜ì„±÷Ùèyà`$¥Ý»Ð%E$B–Ú<´ö_œ:à~fú}oÌJÖzc%ÂØ4_\=Ô{B1H˜ê Æv¶Ö>±œàîKÐkÞ|‹<•òÄÒÙ”|û«kNÄLú£¾P,;™×áyáÚÆóA}Ó+± +2R’þ´Æ¸É݉±z¨/¦°Oƒ¨ÄO×nö–4P¿·Ü@#{F"´êïòóÏëá®èor0è ¡ȃ^äÀêÀÐd—&ir0Ú| +wFÕãžj={d1¸~Ö€#îßQ‘ùX×0g»XŸÛF­›XîQˆí|°/‰TûÕ«ÜD’ùv{IÜ€# b–– Rð½þ®"(ºÈ¤ÔGÎîáÛ ¢Ú 9|¹–ònûéò9••$õLÉÃ,öj¬>{õ eyÎD§žÍ6Ïæqàóº%-~ÀCd«á>HÆGl!§È"µ¸º…×ñÀÛí7„ð„ +¦Kj2¤Pö^OÛW°\¶k¢-2pɉ H×;¤¢>èi*Û˜mÛuÆ|CÛžœ˜$Ñ;ªJ#I°qyÀ}ârÒÚ&uLÈ&qXV_k¡JªÔ^o“§Ù`<ƒ´Ý—t ,Ùl=ìÀô1Ý¿ÁÙ8ÔQI£Î`›—I$JYw5Ó'AÄtÍÂ4ÇÊéÇHeé‘¿ˆš±ã[øvh~€|„Ì24EŒÒ‘$E”’t@õ/3&Ã%ú’>rW˜ Ë-Dpê§;%|wªÝôxöãÀPž ÕÛ_D†ì;ÌEžÔ6²Azü¾·ªŠÊÉË© ÕÅÅC¨SÁÈmqÍÑç,H3; +a%ü lbÞ‹4YRaµ<[â hïô’žxäl®Ô*&Ü"íÂ3Yw(ÎÑÔ du]3û$œ^R*@‹³_¨MºVýº +½D>ŠlƉ›è!NoË·4|‹VXÅÃöžÉß :ÙIôœøŒª0íÚ(4åsG]ãÕ¯td§ý–ô'P€}R*þˆ iPû)/÷ñ ä‚ÀÍK+ Ägš+%©¼­&ÕÜnÁþöz ^¿nOÜoàÑ<Ñ¥$nž¨ñ]/É64Òå”îÍÕºÿí ¯$(ÇcÌ`"²Ø¼èâÿ4ëkÏ<œÝóºóXNS-¢ÈUQƒ‹j•ÖÅS„ ðrY³ÎˆM_Ž9‰—8¿ƒ«·žöŸŒÄèæþî+zñO?RÓ’Ig‘ÖÕNäÂÿ¬m~Ö{…QDÏBG¸$k²óÊé®NI<«ž—†…“ãÚ~dûðfÄçYøW +ôÔJûæ<¼ öf—¼VÕWõª‘P@¡‹\¦Ù3Û²ú =-ä¾¾žåYÉå&qvªê{(.&C~x~¬÷xÃHý¢;äã¨ÂÆkNçéyýꩣ­*Lr»ÈéN<$(sÌc~TT’Ô$î#Û¢QtЊŸüp‰ÄLÑÄÃ'âð.v^¯FdÒì4^ÏÑh Û¢…$>à}%·aÍßG!i˨&™F°ž´ƒ Ê2&4Ïn® ¡˜‹{I“+ÈÛ1 ÜÓÑè——ÞNò*—³ÙHƒÛN +êÎõD_(Ö6•½O ++VØÇð6ºœîg +£,6`‚Ô"¬qÑ£OUk¶ÎŒÿJH{H¼{Hš.Œø<]š˜äÑg2£á.äÛîw?”Ñ¡ Tx +‡Í…pt17”x,0»ôz³§r9¦&#ëeb¼x3~¡!uxD6ÂC´ê +ˆê÷9-¼$E +DIË[$I8Ä“Ë^ÂÕSè$Ž¢äŠ65 âE‹×%eúÀ\±IZ´ârçÙWåì’Ñø´kÚd aÈ‚ý¯gɧ¤v™R‡Dž[™DÛMš½@ÿÕä-M#!aðÜ1mna‹ää.qÀLÒO×=1ŸCÕø˜L< QËNîÀo¥ \84÷IÂâ½T§$1òJêgϺ HC4Ÿå‡WlÆ c>¤!Leáuó¦- pÿq”¯ñçì!¡7A+©G\ÙfþXkw…~À2g¾’ +'¯ü0S¶]:„'àÔ3M&pÑ]jD~à%lBàmI5ðœ«2ß옠Ÿ ¶öÚÄs;Ú)%ª¾>ÂckfCwü³,®J3ë©Qš¶§>$±Oƒêªôߢø íä~á調Ïw¶w§íyÆlX°wJñOÜh„¤Ã&¤g<úÝ’Ò刪ñKžcãPJ +cA0uö8ê/æí¨½öÂ5UkÀå¼ü]}®á@S¹˜S‰³Œ¬†Í+º 7#ðÿÙm-^Ó6O£ëÃYú˜…‘Ъµ:;$˜çv.ñ!5‚$…škìFÜ¡ˆqÒ~‡¹á<çl}±­Ê ¨“‡' ÊˆN !3׫}vWvÕ›ã7‡r¯î%6%T„š|Îà#˜D»H„© +}*rˆÙ +lSfÛÿãj×e¦ÓÇK;Ð uOÛ¨ÿZœGÓD‘Ù”F©K +R>dùíS‚õÖÉkB Y®äi‰‚}›EwO~!^@1˜0´9iÍan ²¿e;úbOäV±™ +ÍÔ¸`óêJ_So>á­¹äþ;š™:*‰p:ŠÂŸ=ß<Ù0à-gi¬¿%ã 4 ƒ P­ýtvñ£tÕ¬#ˆFúŒÂAœ +ôÀiåëcˆœZ…WĤxZ ߨ$UÂÎé–>NêÂ!Å‘¥Ód¦¥ »š¢j;Ûèñ÷»Ø—#Bºçn7ðÖNÉö¦‘PIté8Ñ`Á£²#JLÐáÜøëYû?гoÞXìr9°ïqP5‡ZÓ²F¬Â ‘#פÔ"1´q+ÙA;öÀå³FŽ·ÆGÚO6qH£§ÃU<ˆç/ú†)²©¶x4Íóìw³¨F@ù¶§ì’Îãfœ`Í´A¢|c”¶ª§§“ÅFâú~\R´Dž‡ª&Eü\Lßó˜×¿‰x_×ë@qÉ( å>Ê;ÈÀùí¶KÐ +¸ãÂK¦²6=€§Òƒˆaìw¥ß¼ålÉ¢c§V §5ow°#µã•`µs(òÆ|ÒýdÄ;C°uŠÞË–M[hÃ:íºt:SB’Å–éåb`$¯ ›(ÌG’ ³µ‹ìHM®ÅXAu¥*Q7G0(šÊ¶oÞ΀¨Ç(™Ch%0Þ£þŠ—!Y¢SBž×eÉ#)š°$ºoа»Æ£Ü'¸ê`»Q¼p:êM½C`H’@$:@ÈÑÕÀßU LÊ{¢¸Š:·7ÝΙF io~¦.qøÏ•ÀÉŠ÷ØKzÖt\XØÒçq »œ>ÝU@b2¸l’áxÙFãªYx½y‘Y© Ó³7)ÁuÌ¢ã<Äç-Av®;§F*=2sÝÑËÂS±ëÐçP¡Xåe æÜD`Wq^ŠÀ3 C ÆœZïxxÅX|ØáŠ¢nà +!ÈRwþwiTQÃï„ê\fÿTnNvÖ¹›vW^'LœôBfÓ¸hä%n0ûCÙ]¯¤?Œèú¢æ%ª„^$u¤9¦À–†Fµ˜P¡NЉ„'´’QX:F ÒsŒ23ŸEd*EŸw”ñi|©3ôš5Ö7ì©dWt¡üE‡»6M5_X:²­D¥ÐaÓJ|f¿„æ°ËL ª‹ kñ S8 QF3N&sÜf²ùœdmeùõ« X@å„hƒ¢ùÎnj>¨Eàªã²M¦,J*×ë$nE¯ó1 N‡‡²F‹ªêM9´tà27£fFìÐê —FsG”^pÏ’·ì@Lµø¡®{&èò¸Û¤kù•Žä6s‹"Pž+r2gº“+ñÙ¸ÊG"ÔLdÆ8k“¹+Û ‡Fó‘' +ÂY²jÔVPN%XÇÌ-¥l²?% &‘UXÿœ|R{»9.ðŽŽFfÑ‚‘L"œ”`k¾žhº‹ê®í~‚÷–Ô?9W™T³(3ý?¬½Ý®ôHv¦wº‡}¨À5ŒF‡£²a ÃÆø`¬£†P’ Á–Z{øîÏósµs—ª«»Ð;#’d’Áˆk½? €à«…Ñá‹o-š^Ò·ØWù[’ôR(è±Þ.út ‘”MJÍ• žý'Í0ps&Šœ «Þ‰I†+浯å6 |cÑ àÖÕ£ÂA®½Ç”+=Àw1L»˜˜#•¶>Ln`DI…q.q×)·ò +uøë¼í'üíA²„íHæ vFÚ¶Ü©I1Uà± ©y +îÓçæ’³âD2Énj)Õ⨛lÚqOIÒànv´P]ÑN‘8©¡uÎ ILÔwL0÷BxZì˜É…•¨êû(Z®¸ZüŸ ßžxð9…¿üàç¯E¸þ‡ÿô¿ÿé_þáŸþ¯¿ü«¿úÏ¿üòßÿñ¿þñOKß_é(„²´]1^YAý€µçw°0A7આ¬?Û;ÇûÆ¿¯GÖ×»,öŸŸxöÀ’Ù(Žgî+ëÖØÄVÛðz¤3 Ðãm(Nu%áèžü„J—½¾5Š~—-”ólp ûÝFîú¹ù7£)cnÛ(²3W@õyuzTTªgcæ® ®9à6ˆ?$¡üØE{b²žÒA•ùÃGßvx+«Œ'~‹ÉWñ›- ÇJ”u¿PýÁóõÍ/¬Ü`ÛÖ(q˜’8áóuë½jr„iЪoÅ«ëß4|ÂÂÙ~Oªeg} …ÆçÔ8rêˆÝ0ågQ>àl²t®˜üðSO7uoOÖŸR¤„À,c\ýü;aR3ìáMðÍú\zTë'ÿ±†¢—»Ä|*©¬ÕK2 ×fŠG ÇI£f‡{ë©@xžP|oL–Sz>šgQ/õÅäIJ…YòJ%z­y*î B°8›RzTÖg6ÎÐ"ÚÕäR˜ +x)ðP·_©¤±qëYuTQTîÙGÐ"uÛòò#îùãW šç`ÙA83 +×J`Ë ™@}‚¢Ó=@!®"æ¿”ìöÍwp—aaŒFHa­ýÁiÚãîQø…qð'X½ +ŠÔ«¤½ô"Ó¸|”ˆíEÍ…U£Ý67îÍ×¶4aݠǶ‹ÊÏ­õŸœ;ö;öjÛ€»éùG.¼½œQînÄh(º.ÔÏ›–!LÞú€wS®ö8^t'X¢^‰+ˆ`|'¬CQ@ä´á5á.®ãj·¸ÇaVœrëÑ©µ2Y1"r¡¯âñ&ü*Àlê#Yé¦xË•,¡î´AN›{Í€ÉJ"SòjÖÛBÈCšFÊŽí P9`dðtó;MH§ü° 3ˆØL#uõC´ pß½þmÆX§ûw1=¨O pÄÆµ«ŽÉÙ²äy»eã(7Zsi»¸.³ +’ÛËíº¿ØqFZ°(ȲbÞë_z0kÝ·¬Q!ƒ²^ûCïªznXf=]U€6D´e²Ý¨ÚöÊ/Ç€oÍFF¤jÆU¯¼³J«|”E”d‹6Ú¬îån¸>€KÖ9Æ ˆÅÁ§MYéü‹RÀÙ—_M¬Ñž‰°í‚,Ú" 0j¾î4‡ú(1–>F’/pyWžÏÛë >¶=s©“„AQr9Þçf>úaÑ€ òä†K¦ŽÀL¥õL<.ƒgyx®À•Û È. ~_–U-É€'gŠÔ+±È¿Óüž›­­4àå'vyŒ¦ª œ˜=´CGg:6GÚØ9W'±`£¢.Õ!@óF‡$Hûå›MùÉøw_?^‡»b(tœ*7û"pi@#Ýótõns†6 §iD9¶| ðÜ;þÀSN¯¶;Mã`ÌgÉ#}KÄf‹MáZš™ƒ§Tÿ ËŒ-V„rËP~¸Â0Ohæ_°O' üp2Ž.AfË´dMì§öæhTZãŽ%Ïå£ê·ä¯†ƒ¸œ†‹'DƒâËDub¼Æçá¦â ÜÊ}cŠß’ LÙ9P—àìmˆBmÕ …¼Ä~™ŽQŒ; x§îW´Ööê( #™x Ð{‰Y&CÍ|÷0^XµÃ`Û­lÊ3ÈH ‚Oû©Ÿ5dÙ;,lŒBú' LeˆÙuŠÓ#—…¢¥Kúq» °u¾6´0G¦ò`°×´n2œ€ú¦§È"SÌcâYÎÐ8¸´ +'OðYƒ,Ó²öj¨Ñ³°Ö#Π&LHk ¸¤‹rvÏãi *¹ ‚\ÖòþiÓåk,‰Š;(S´jŸô&1lqï›%µ}°ÚwÅóºvÊu]ÔÁÈB]hH€K.úìÊÒ³'´²ÅøßŠú®b! \‰?ÆÙ°nVåêÂhäŠþ¢S AÀc±#ÿ€&«ŽJé÷ºu½¦ÕLìÑÓ!8f»øÕP ÑלŽ ‘šu§°$Q„,+Òs8 +Y4®˜²ÚXÔ¥¯VànÉ[· *6¤¡vx˜6ìó‡£1Âp +<Âw£b„-¨t“—Â7¶2£A2TÍZ¤¤V{¸s£ÛHbDQo!š¾4•TÀÂ{çäD ˆ ¡õÖ•›|%ª7;S‚fÌ„˜Ð¤0ÐT+YL:Ln= ¥–܇Èð‰¢…‰Ês –EotF¢½1‹®Wuêëyí€v@LÅòê0AÒ,ªµ4lðß:ú"ì»J T*0[±ôÑ66kƒªÖäDê¾es—Bro¸ ÌTR•?þXŸï} 5åa¡d _75i*v0§È¥$CxlôMOYc)º›Þ†ä•Qûeí­ù G¬*'ø’À-‹ØZ˜¦ŽÆh»ù»ô@lŠUàèŸ'b¦ôŒ‹^ÐOé%„¥÷  Ëг‡ö(ò1§Ñ#Èl&§t¹Ö>Ÿ(´ 6‘°z¸Oo@ÌSiÁ”€Ž±‡säêÑÖ¥‡éK1ã5º¢Ý +±GSS§™PuýîXè,ŠT¬ÊacÃMaÌ\œIÄ’`Áu/eÝÑ) JZ$ùz5«jb÷ýnßA:Aý³W Ñ €XµÎÍL%í2u#:B´µ¤qùÕ€÷¥þÎ×q(VcI¾ìØØ Èѹ:‘•—4’+ßf§AÜöºÕ2LV_÷ñM>-ýµ¿0¦¹Xig”a•[ÑŒY]–ðÖ¤™ÿþ +¾dÛr¹ŸÍ×¾Q»õ™°ª9»Pé]‰mEåŽïŽ‘8¶è{qÕ¦(Æþ ±¢Œ®ãV8!ìG( ȉ «…¼òŒÌ+øBd^Iå~œG‰’ÁÔ UÛÎH†l ø©-¢Å«CéNÓ^sh>ÍNôÐ…”Õ¤NÕknöŠóŒº÷Z¤`ØrŸ?%V¤;¤Wd…ïû’øO.Ô ¢DµG&dÊÊmô–˵5Ú©3>h«D=å´‘L–ßr“²N3?=üX–ð`ǵ:0Y'kïSU? ¡ÆYªé¥µB1äy•]…SðµUî_Ùø¬I,&¼«F:ƒ…Hµ˜nª‘‰`ã3œ›j-²¶Än|Å}¬W7o#¶eÍË€Lì‘j§”x©Ðýíô`WD‡‘C¯#ºŸ%âÝ¢" o|€2p,O®C˜ãµˆÍ”I”$Ãèå·è˜ã¡ °°‰ªø§•M/<ÌDþ—]Ê"ÉʤAh d’äk‘Ï}”/«žítx gÁ–ßú®ªwU"¢„ÞŠªÃE’¡TåF]{²bgË+Ž™ /F…W{&½s³ÂzDuŠŽ§¦[æLáiµ¾.´5ÖóŽƒ":ô@:Ž2!1Áéþ!w`v$P‘ˆ¼ç#¨p¦65%ü"œ$åøó"ñz­°ò$­HiÊ|Ízÿ­/=8ÔA|Ì 3¬Zƒž·ëˆ×²6´S<*ÈP +“붯 äy8[€nE8k.»âC`í}ÈÅæG³°¢ì«x÷ÈQÖ*Y5)¶ÄBoµÜ‚Ð⪠ÃõlÁwOžÃÈÄØ;Ž…hªøSõÄšÌ9<½{h·µŒkb—~ôO9#U\&Dˆ5¶ÜËßî)pCAT€‚^;~GÖ§rX r¸'P&GN9~^ôGŸ1rÖ(D$pºU¼p§¸Lƒ}j®°(3- s=“îjA‡¬ß(´Ÿ(l½bä¦ÁΨGP0õ0n¾²ø_³+¹_K#½Ò€ ð¬V£e/˜9ipL+_&âíÄ36h%µù:ZÍ@ŸZÎidM€ÃþR +ÚePŠrs$Nd]³Ÿé±¯È``5˜ŸÍB[Öz*sËòA*“×P¼éTál-T$gðW$>(\0;„Ò‡:kê>n¿sKlPnÉ7)%ç¢xgÙŒ8¦E9ª_mr^gòÂ×™n9éŒ2£˜sñþM‰{2C—7‘RpmäTÕ*ð>ãj¸æx BÀv¼™ÈeBäk³+¥®µAt¥™ŽÓÑ´‰²ËÀfpõ0Ý(U€é¢xÒüñ ›…´„TŽÇé©„M1KL’EÒ¾ØÜÈ-'…Ì/9ÍQŠ,Êú“™†À&°?ˆ×È ¨U,S`Ö!Š·ûL]3Y,á»Û³â ñpmî7Kèøvßq 9Û£©mÑŠ$k VTü É#å¹[×"76Eã]À8¢ÀÁèmÓÕ,·Ê÷–×á-’–)€¢‰îEb ¦Çq“¶f²Z¯x²d"á—ï3í+˜:ÒCúZAcÿóLâ\`´ µQ;%òŸ…  âˆÑ­„îÖ½ÒŸLîŒwyÉË…§³b›Â†Ôᥠ+ßV-…xâ6ò:N‚ö¡wÍ{¦‹õp\ÀÎS‘b$ÕÊå ‘œ%øàOv‡__ã4ôÅØ ‚.+(έõ:Édu¬RË9!hF~f‚(ëœz¦áyî/ÊJ³îŒ›¦’*CfëÆ—Ú É]3Ó‹YŒ^Åÿú/Bý¨9Bã¦%Eù¶æöˆO¾­)ˆ¥¾e†¥„ùøúÄ&µ©u¸r3»é“<ºv¼ÈX1 zÃ?ëãœ3‹<Rð`ÑRÛt¦PËΤ=Ü‹qj&3ûFeÄÀ„ÁÖ4 `•4-³Bž±ËHM©é„Wä_æQÌþ}í$»Ã¹ŒY³¤{a\%×$VÜžÖì“~+×kDæ 8/§j™,š°ù†Y@CYH´N9©g¶g+Lã +§AªƒÖl4Ödz0Xàõ[ÃC<*ÿÔÉò¹¿ÑüÆ«Šç¹´‚^¯4•Båç ¬HèJƒž{»SL/9œ:«Áô& ÷N†"Yk^kÚ÷ÁËYyÎY‰‹ØÁÍÓ9¼nÂ$+þ:p úp·‘­ ‹§™©Õ2ç*vAºUIî­žÕWZ8þ<„›¬Oè‹z¸óÔ‡ËàIÀä³…Su‡›·ޤˆ<žA\Zß5vZþ8Ç‚j&ÖÓÈÑÈ-KÐ[sÕ @êØ×Ô¤Ih­†a¡¹ùGÓÚ‚5U¿}q4t‘ú}©¬8¿‘·¿ ˆ P‚LªìOÏÛ7Ú©t-#Ö]©‚]ÎÍì,QíÕàáG¼`¶¦ÜŸ_2kEWå²~­3À×ÏÑdØJŽome¯%k‰P:ð¬±!À%ÖS±ôrDìþÜc]ppb¢)î+ßAþTÞxVŠP¼__sn%ôðùoÚà&c™5’øÊrÓ@´¹&f£Ž:•KgB÷öãeà ›F£)í³s*µO\/uYè.ë6ÈÒÆ¯šHa5 †ÆÑY½A êjë}‚²M98„œ¹S:kêHÐK8òöù‘RyŽö¥‘ýì4†ˆ“µA2,æT ¾ô( endstream endobj 26 0 obj <>stream +;(Ò¬á\Òð˜€Ø¸??î3×DÒÁ®\?Y?}køq`¼5‚ûR=ßžŽð:¢,Ó¢6I1FS8£r’*`loî £ óxн$s™3í +=@ÇK{ïq“^èáüÝ!xÐÈDH£è¨¿Ð@uœòD£Cq>?[’àz'm¥z° Úùñ¹/¼1XK^`>WÖùΗù»mÙAÞŠªê`ík>8™úĵ0¼Ä9KˆjŠË6ô!rJ :C ~5$»Žß«3Áµ[û“gofæNµäKöâPY–1JT,cÇ£×N/Iä + ¥ÉPzADñ8Ö"q1L¢‚4®¤ãacþ› ò¿4aÂ÷¿Žg)ÖD"¯âìG  +7 #a…o T# +ÓÀ1Ê€Vœßâ­¢UIîŽpÏ}ØA"ÐGÕ ÃbT¬ø¢ h ÃŒlP”eË+²@ɉ‰ôs¸Tò‘³jŸG$  ï&ýj[勉©øÜ`M6Ü[Á9ÎW8¨õÝr‡ KD£¶ †äP]ä4”ŸM²?±a…M1}[H1^EƒE–&ó(Ek¦ŠNClNj•U°ÎÕÙ9œ‘ï}Àªn/Pq…‰Š•˜÷ùÖmn1Sµ¤ö¤Úî"‰ÿQ?͆Z z¨4ãÃ7&o±>‡¢îç— +¨Ñ+ÄG ÌŠ /‘ÈIÞ•Py4Eìrê°ðu¸’,v›ÁX''¢@Ouâ'…\3kt¯rž6çŸÈ°'iéƒP pÉp¹]¦âöÒ¤$¯¨Û¢„4ÎÏ%‰ÜäÁùÆ)øtH>–f>&?s'ª°&Àr¿óÖC˜§©œ:ïÇßå½×¹ ãk<ƒ¹Ð€$/Ð .¥§¬Ù½h»ø%ù»vHrˆ¾ôøeçfC?ˉù7ÇÙ°«A]r-ÆH6Pì£aÞ$—o0³=¼ã·^HVjíI ÚuüI”3:´á®· b(¡8é –ÞB«2b`Úó9Sãø6å +wEjU‰-=Ìè¯}˳ÝBg1¦¼ì»Jµw{3£.¤ÜÑõà%È)VƤ¨¹yfgz𸍦N.L;Ûˆ‹QÐ;Ûƒyé@榨QD) Àž\{ÀºØ7„ † +‡z +îܬYt%&½õ*ЮûÓµozëÑâ_k™ã~ò´_{A^ ð?ð!ß·þ4y—¼ñêqlÍÇÇ$:*Ü~ù<Ûcã¶gcøõÛJÍ 6§.kÜýM%§NÍa½/5ž·^:ÿÉÈšÂ&å·Ïäßá$Þt jÛÇâ¡Zž`Š`åW»C4g€z*„Aõ#…W¸t#›ùu0PÄM&ã8P´æ•ª·&(äêoîÐG€µl _5팵±vö^ÆãLƒ"àkTEçùØÆç+Zzôü¥°^Qá£VY1/­I‚IDf‹µr©ÆŠ“«øóÑﹿœ#l…‹ÈWÕ㸯ûÊßÅ"ÒÁ‘$×ÃïÐ3?VcžÆÚs³½­ ÄTnUPC,Bì!àÿDô±åD¼ûA_·©ë"‹¢k¨M@î…A]Œ™Q + 2zʇtÉ·õ F¨¾ßÏCéb*Óë~X`ÿ` œMá^]-o=ˆ;fl°ÊÆösêô!’TëÀcŸ/pQÁ´ÁÐ⸵¨¨W_·^ý|¼vâô[ÆzP±£LŽZo EÁÄ÷äÎZÅ0Ã&(‡H&jyÅßdº_ ^ãW_œ§Éd’Ü•çà.‡…›úΣé1Òƒ S@¯º/‹IVÞ™®wû¢œ¢9@‡~Swr~ÃmKÊ»Ç#=!kþT 8;õ+T3¡0Ó˜³(Ë¢2¦#Èy©ñµ¼j<Ñ[´o:[•_<ž_ÝbÕÇZÒfôö+sÃØ¢ØÝxˆA¶ë o=žao[±ÿw½¨ÙMùšêhVAì»]\š½Âµ”Ô×Q »}+Bwÿ°!7˜gõšl©UÖ1 ™2óNRÒ‡÷;ô© ™ó² +¸&‹(à¶°§ÌïÝ+jAëf‡ÊЦ@KŸõ¾2&¯¸‚B ByÚBêÉÌÔh—gøâöåOi;úAªóÑ:0ÑüÁLíf…tzݲk +5@”¸NPîè9Wn^ÓÑÞ{ä©ô˜wÀ ‰îBÙ.z<]1úHâbýÄ…Rs ®îK¾÷8ÚnZ¯ì3½õ¢ÌÓÅY"x‹ì’ªVã,p§“öíV +¡îÑß{䦡ßdiãþö8G +\ˆOùÌ$³ ©Eô¥ƒDy](À†ìýµ3 Ì$dΟ«˜«wôšR!ø tć,R;U§ñÞãyIéä%mˆÝ¾ßbé0TIÕNÎÖo{°= ÁNþáÙöֳוYE]¸ 2x¾(Õ ØxªŠd’±U²†bòßzäæ•À Hn€x?Î#î$£?±T?K¥ÑwQ¾«§\L~A幨ë<¡ÔÌnhĈ‰¿'iHtW”n§¡")ƒWKX§,šÁê¼RMûø<®¶/7aæãËsöZsœîõ®näUò‚+òWYknRñ½ÝTnžºwÕW¹„ïA‰ÂqRíŒè†&ëèrérïØ‹âòÕ×`­UÈ$îuwØžvň2eCýü­—ÄacÆŠTQSñµDø»‘GÓîÒ¾wB8P}r!ë¨dSU&~VÔeÍß"#É ¡kh/y®š)F½UX!ð]Æ<+ŠyN(wˆˆZ‘EáAw­vÚáQ ‚»N½^¯ãG¡ãàöj¦÷:ú(ûD‰JçpØßfk•pÂ.<¤æœ[lÈ,=.SÛ€=D…¬8}ò’Ï §Kºï•˜Gµûái›N^Ó9Þ7=.¡Jë™Q}¤_{)(vFP캆1f”ÑPCWÁõ‹8ýš‡p}+m/‡ €KŠêî5uâé©ÕÏ~Gν²•Ž¢GSùaº™;™ŠÙÜ„3Ô;Y~­v+CÖÄœ³l6äBñ麎èñ&ºúQ#Z͵áù`!çK_žÒ–6Sg×Cúý8ÿ®[/rÉ‘Öà û{‡oׯ¯tÁdnÆpû"_ Xxc`ì@$ z±À²Y “Ѳ9€ä^Àûÿ¼K»p Ô®¬ô*áÆ®ˆ’ÄÁˆoSÆÒú!jFQo¥&6€%K«}ËLÒöp×¶§£Æö”$‚ñÔ"fÌWÁ[ÝÉ!§í¯ÍH”@e=ÜCÂñfCƒÐ |,µZYqÑDzLVàZCe– O´SK§y>xØtsÆ<öTçî1ÓãÀPÜ3=Àå¥!=Æs¦m‹<õ™›¤xHRœbé´ãôóíª¸&ºŽ‚|¯õMö?éÎןPãc BOòÂwË]Â_²‡ æe¦sí‰ÈÞb¸-4ÿXwŽg>Wíë¨L† õQ_”=1,}öCzéèÕ‘€¡ìú`V!þO:ÎZ:gŸâ‘(ÄÄ.!IQœ{àCk`΃>â—0Q¥TG{¸Á)“ºßÌŽCkRšöpºv}—y™o™ã[mŠ *ä ˜o:èõ1¨¼QŒä¨ÖÝ‘¶[º:øóÉÌòÒÂwr-.™¸;`BkÛ¾£·U:@]ÒÝLõ÷Äuu{%chÇ8ªV _Ù~Ãw8N줚¤F m8º_Lw¨zU(ï= ‘I¨dnzRçVM¦W׎UÏ FPTW‘i¬x¾ +/ëñê£XÔ¿ˆe«½Çcô! qÎ÷Vånn-{¢ ’¯ÄK'2O÷å"ƒûUCF`Þ93²q÷Ùö¢!‡LÊ+>…«á"¡#š„…^ÀŠ¡€+ñþ0‰[>“SuÏM’>T“à­Ç¨V"6|^@îtrÞ¾%¬£²'ggz×ÕÀ‡Ä¤ÜtÁùLÚg*·ºçã$³gHü˜ç„h™¯PÏÔ˜³è¼™`e*اòÞçÒžÜþ—Æë¶“ä¹%ÚK$ÁØÒ˜4ÏYwÚ¿Aä¨|„pùٙ紶Å&ô÷ß9ëëYN!èŠÆP{ŸÚ“’cøèÂnc® ÜØñÃM)|¢:uŸó)„¤ÆuÇ)†‰ÂÔë½\ï’‡x|´ÉÛ¥Cr†¿ÏW’ÎîF¹Ù lârü?W¨4^✸ΠNŒ«Ÿ”Tù1§k›^!\! DÚìTÎôŠØ[CFæ× âí댼-Ý:-¶ÃÊI—+ÒjðkƒP«ç`_Ú (â1âÁsGUå|–¼ºÙ§§‰¢çóÌ’Éà6[Ó¨C*€8 · +Qí_?¿³¸=åâ_5>¢ŽÔhõ€Ç®º*¿H+‹[\]ÛÄ/ëÕðzïb‡‹]vùüÖš¡•ø˜(L4©¢»À‘öž<ÃUŽégÅwuëà?úed«4\®tçÔ¬²¼<&Ò4ɦB¡ªŸò^e“XN´<šŠy]§çzq¦×TÇc6y}´É›W xœq7o3•4+MU¾~>óSr¨º2¶,¤Õ$bõ5vÿd*Ør¹ÂúkƒÌ zE¡Šœð…ùÐë[åŠt1ÕF Ñ#ëäÈ /‚7*“ဲ¤ec”a¶kÌ1!Ú)6„<¤x6–¤^ä !:9wW·VôŠø/øZ=&é"#` ¯/éABXCø”‡(v—˜ +̱…aÁ3%L­ŠC~«oµ‡µkC=<ÈDàô_ú¦#åp_[¥¤…hW<Å}Ü›í©v‡—!Œ¾þç±nÁ¥Ï+"ÙAŽÜA¨U5#æççS>ewK(ÿÅo ‘ªâ507Õ)·  ]Hê+úÄñÂ0aÔ'ô ݆!êÁÄÍ`ÙFÛ¿])º÷<œ¿‹·Æ+Ê«ç(]¯8bîÜgeAõìÒíÕÃÕ¬íZäDpoëØÔ“s­­ÂA[4Í9B:©S$Ë=v°Ñhܺrwë7°oþ°Pƒ=$%^ök,_Eݼ5 õù8é}m,PmEÌœ¸Íü=ð®Cö 2Ë]OÄ>`øñ +e„0-¬õh}ÜÏͺ´U!•öLØ‘- +oà¥üÖ¸ÞËèЂÙ1%?°¿F”,žŠÃ@¡”w[ÙNÒ¨­Uwͤf]qÅ©\UàxU%å[ V%ÀÃÈ4rÇ™;ê6(_³šH¶!ñ4.i5Os +KÝ3.}ƒO=užc³á|}@ŸüLºí$ +P»é„1!ø!p×”ƒ!Tòù˜9:b'øÚ©­«ë·â{·¬‘×áQQ!ê¼¶¯Ë(Û>ÉUl›{S^µîÌØåÐñXŽÈ(£ìÃÇX'h´¦•ÑTÇ…:Üú6ÜB<‡çA¹LSîä*„Å˵çsŽZÌËñKªª<¯ï\[Wáx·`B¶Qåü¶¿Ÿ‡+yþ­ÓÜõóô„'«Dø ¢ÄIÀZ1ê³S-4ðµÁ¬EŒèÛ·î¬ÃëGϪ "î$7oø1d§Ý±BëVÄ­§žÃ¶]k,u}œ^A¶À‚W¾ßÊuǯˆEfžè´%4êpfÒhŸó4ËÖí‘å¤ìXÖÓ£‚Ñ£a¤S yÉéqBÆ8Ñ éßÈVæL§°éQZiIK®Ó¶èKVu6¿V#<´Zÿ{ËMã—¤Ù>Ó×^Ài¥täÁ˜óEEq­‘.¾ò¡k<+ñ¸IˆÿþÚÃ3®Õu`l›yëߎ£À2Øo€$ÌÑHÐkÍJvG#¿¯=¾Æo@dëµ.ìrŸƒrWwè .Š@Äã‰äPÌŸÒa¨ƒô³oI šUo#0'ÙÍÔè·×í©ÎtÙ˜W³âÿê]Øíz›¢QõR>¯Z0ž©·*à;qÞ ½’QåA£A¼#.¯C Ô8±w€š´z K£×±Ëí½ÇŒš `ãX玄0ÔúðDG)¢lVeÅjsE-)K™¾î$¼á‰Q¼Ü’ÀFÖt=Æy•´½ã` +^£µùÞÃ)´Ä×Ð1¾;Nm#ÀI Jôp^ûÞK‚•#Á +&`‰U6ŸÌ6fqÚ¨*áœ#_bÓK¼*c"æ¸ßŒ¤žP7œÓöÔ¯×ÏkÊsB™Sm¡º$2Ï¡i)@rlŠb_ÄsÁfËt°1Pœ`>ÒíÚq”gí¦Æ%(dï¶‚ mgå­rJÁ_×lù6˜“Ž*å&Ñש˰ǽVCz=†¨® Mµ°'Ý€shr&ÞÁ–a¯,3BÔ«èË=Nrö ¸zLOtëœ@‡6Ó>»CóTpÔóÏaÅ^Iº3@@‚÷­Õ°7× *í"X%‘kb% ½ö<’W¤ƒ‚„ŽYxÑ'Û!^ðÖû¢9™Ô1žköhdÒTDå‚¡ÉE«úr ¿2mëɯ™w½gä·wöÔÆ"•QP £Ãšùšy©›ØCîD™$Ot† ÖÏ|õ€G°.¤´ñyl˜èe\8¤ì®=H3Ñ#¸4z8êÈX_¹„ÊÖqçJ6òs G»É g¡ ![š¾ õ‚}®†‡ð¶œy½W¬ajèãÏ¿$?ï—ª!"IJS+s²j5(¡æ-¢J‡z…Õ|ªdCÊ/1È×—ða§AÅŒ¢A€ïåœÏ*£s禬ƓŸ$8hˆ0 kÑ]q™ò ºWt'|ÍÝÝ +1pÁU²¿.>ÄKUó‘çT<ìiÈ¡\Ó œõó[Ìy(ê%[K4ÖøY/nãz†¬oHŽØS'^À·ïñGk1!ÕBXel½ï8.7•×Åb Œ‹²+²ÊgªÈ¡–±Âž—’ÎÙ¬,½Z”#Ÿ¯Ï ùŸ†SìÆÚUô§Í$æÇÓŽúMƒ«³q]!H`gN6<Ý àúé:ñáðó+îîèüy2 5"0WŸñ¦jT_Èo·8>¼5¬ù¨»ZòÞ(ºr]ƒIª‚”÷Únv-ƒ(×eM¨r3à–WC®.†F¬KWì×·ZÏôÓÙ Ö•ÚõÛç‡;›ë×M]|\n†¨`ð@ß¼#ãy’yGhñµäµˆËª1O>bš qô| öÂÙTÅFœb˜;1^5½8m¼#?›߈jS#¦špñË¢\+suƒj«ûé¯`Š1?"@U{]kt'd:R {o8£ƒQö¥q0µü&4¸ì +‹y\©)°ñÖOfMA°§!¯e «±8Ÿ÷ç·€^˜MÀá'ŸqÔ·•#6Õé­Qrá¹§©ðZüÚ +½J$^êZV#ÄŽl ¾"?m= Hµy¨¦ðúAq¦~øz2¤è¸Mp¸aMœÌš*aÐUÙS1XÃÿ'tzîµùˆ¬†I€zÇ ¦(´xÓÝ)Óèæµ"Z’ƒgÒ®ÄL$ÙI‹ŠbÃÇäqáS`éÝOÉUg†>įFïå6wæc$öøX«x]iÐØ Ðû¶F”°–yG¥—õH¯ôEt…H – 5m( +†“X©/Í©L÷ yS0ÑL:2z¬Š!VŠ üÖÊÓ³˜|»Ž=Ñ#d,°N°µzc•‰}žÛt¹lG•Â~ñ¢Ø§(ô8Ô)j®D¨Œ"Í„Ïl_ ø:œôz}J%Ó+¡@â§è¬Léø:¶· ‚Yk¦A_75MÀ>!AWÙ•\=hļòº¥ÂAå -ýR¢¥X¢ êh%gÓ"‹l`­Ÿ&³›¢Ù¸@Ø >cT!À¬Ž{nîG€ÃTÚ»+¨·›£TÉ[ü?žÁT¶æÉ = ÖµÞ´<˜Ðo?"oF£EˆäÎnî\‡ÏE4ØsЀu 8–Ú?¦mÈ~Û-}ªgÖ;÷у<ê¨UÇç³ ïòÜpè%¶¹†–*‰ƒ ;gä´ß€e½X~_Ú݃œ¤pÉFÓ°´ +RÇk²{õP9ˆû„±|éá Œü(­j²Ü¾9:¸èJõx‡QHa®˜—­dkRÝPñiz!†íÔ0A$@+¦0<¸ÆM3Ø­¨Ÿu¨+®Á“å¯ó X›˜µ`δoz¤Ã3/ª’Åðüí8°¹}Ž'>”JaëqðÖð@ÛžÑð«Fõ0¹BKE ³µróØ]û ßû¶ßƒŠ4ÉÓèë„Ô!Y<ß •¡iWJ`o ç#¼îkã¤K#}Çüƒ°p’M*&åÛ«áyøÃÍ[¼Q>¿uFz#'¹³'uX¶§gà'¸^é:¾¶ÅV£=¼ªl;qB`ÏLùÚÞ¾uúyÜÚÎm*JÚŠ(ï„ùÐ&`Õ²ûƺžú%à7i€'I(Xð¤‘Õ$ÐØ1+Sày“<~Kl#ªšÓÝÆ¥Ã¬6l¬ + +ýdS}5F^ rÁOCn]0fŸ»Â­ZÆGV€<û{¦y-ü­qã=š’·œ›wórêÉ:Å  Ô³–¾AŠôiÈo<Å f’þá[w•‡÷Æ‹Ðô­aàøºe_QDªÒ”/c¿[Ö BõÙ’É1ô÷À¡­¯†gÈfNÛ +œ_ߢ„ÑÀZAÞ?%‚¬¿à×FU²RÆ}̧@Ö|Ê(f7p+·ÂíSèÆÓ_z…Ê{°ñqß¶¿5†ö37¾)Ü0Üs~Ä~nl3»Ž:žU©ŠËÕ¶®ÃÚàW\AÀ%îrû†ª¿Éº¾Æç· ÿx›RO†¹±WøÇ̹'"¬,ndÓW²¿öÄ*ëˆ;´OÓXÊÖÐè üãTöSj'G¸Åpל.Ñ3²GìYÈ< Y Š–;”†>¿…Aâ…àä +©|nÔ[¹á…ékãD[(±‰$­'†œ m,‡û 6UÕ¶‡šìg}¦$ŸF`u4œqÙCbH¶)ë `¿›ÚûªÌ ö§ïº©õȆ×c 7ÇÁaÏç5 $2kç>!Úxdk•Ö³©P;þò¶ß!ù—­}À$ÈÆú +F彡ĕò—pþª±k’`b­´ Ä.Ÿ¸ý­Iì¯( åÏ–×°'êÍ(“ÿø=ð’†l˜"èi¾ã{W ×^œ`—œ)‰B—}Aõ\೤찘¤NaJá•û¸vú¡Qàä +Öûèú!-a>Š¢"ù(¶ח0úcŠ:™}/(µ·†_M»_‘cÑ›J %ϵDÀDþV{¡Vâ4ÏLÝ4ÚÞNµc>*ègÄoŒ¤­%Q!.€[A:ËXÍfû²ÛèªËîlH„b¦`%èŠØ–ÖUUl4TQõóuƒØ2åðþ¶WÓÚ€Æ@u½LQõ8>² p‚«»×®JH¶®5S¨m÷n#õnƒþIu> ýiè»áŽÊçý”¢1@¥†H¹_*d®å¹ù-oöj¨=šÊ’!l€ÚO +Sv·^†üº«Ó(aŠj»z›ØFóqãh]r)µÞc °é\ƒòDŽ)Ðâ8¶‡kªgǃsÔ¶£]¹GãÇ„c>3BOcüc1È%ªbJæ‰7d*¤ฯ|ÞÞÒà‹©Í5l癣9ïЀO÷j çѨˆÇ‚$„Ïx@¸iC“$(˜‡²¬ ==[É´bí%믫pì!yÇ)øçjQÄd½ßeÆnæ¿ td„N/õ„ŸàúÖp—@'“¹ùÒåš[êDï>¾ ]È!R±F7“zûT1+28„  +æt$Ö éî ÖΠŒ™ -°tõ:ë3A G~餶Úz¹,3²Ì²ydº§·~w¦ÖVH¶ðÅ·@Ú9J€ú"MŠ”4•w@·M"ѯõ“ÒC`FWvÙzC€®ºˆÞ(ÐS„G;ô~ʽâ™áÅ¿>r;ष˜–×ñÃ7XYÛµAcG½s_\þš‰¯Tó6µp…V Œæ)ýñÆź!yv5¼fÇ*½"Œú‹ÚÙÞi`#æ´Ø'bà̱›ßn"˜Vƒ™ xó¼×ê@ŽF–f½Zʆ°qÄpäÑ‘¯y,ÉíÕ¨’h]ƒ œ —£åL@°9Âà‘kÉ/pou»Çæ-–#¼Åñù¤@ÖýÔk§F& 2Át€“"µ®öÙp€_jØöŒúK?rÅ×Ë]í(½¡Œ¶.‰$ø•*>¯ëþ;é®å<Ÿ±¼@â)O¹Å?arT}°z¡<¹—´Á‡&ü]¿ÁË2h ‹o B3ä(QHr׋\!ó)AjB¾™_zä1 ¥î5n¨}sœk«—ð8›Ö–eÛÍ¡\<ÿ­‡„¬¶­æ¶JÌ7½JÌE „]Ö‡¶`@K4zê&[ÒmøÈRÑ’¢|ß¹&{!ÔSY/”PFþA å1 -èaÁù-q&ô€‚ÄôPë&’¶C¬Ã¬Þ¿NäZ^õÙ™¹òä€dXòìq¹™¾¤¹Ðw8LÙdCU•?†R7û%@Gÿ6檃TŠ•2n”* U,ú„dÔQï®WßYÚKOÃWCÀ—øäõ-VOªèmMP¬’@ËÛçy¬}?Ö×kö¥SÙÁNÍ×4÷5¡žPgT‘Œó©È¨{r»¨BQÙýÚã—]ò7û© +ó7,ÿI(*šÄ¤Kî”6»·eUs˜ÐóCÙ{™­P”%Mwo/•Þi1›ÜxMVì<ß"~Õ¶øÕ³%|ëEE…0µ$]X1:S¨¯GþŠ-'M}j©)¡ˆ²îãUGA?Âñ»Ö/%µè¥R¦¬žéagÄ~¦iilÍ +” v¬2Û“’ýèU(dêŽÏ3¹zá.¥CqªJŽ¢7æ=0 ädxû‘n·bU(Vñæ:7²Þaˆ¬¡ TUŸ2ç®R˜æ[1ÐáÚª˜ݽþMb’!BkM/»ý[/¬”9õ¾qÂTaùŠ: 8,fÛõD›êF”×Eñk_v£„`3Ò®ßg˜8¶p†!Ê/ªÂ{P(}ïq<¨Å÷6Åkê¯!•¢N"ºk[‚ª¶æ7 £†)¸4 ÌÁ_{¼& +p¶~šjM_ûÜ_eú:#Vxà·Ž„ ©øjòH1ÒmßîžÛýXѫó`Ø%‡ú¶àÆÕ*9=He9°Dä°•.ö¨ŽyÎd¸! +ò²‡¡ä ƒéy:ôrÆ}²íóŒpççsî+}q m7b,ÒŽ=4euÏ`i0²ã<çÞäLÄ7ŽÓbzˆ¦Î +¸“ m©˜}bõnŒõµCÙwå.ýÜú^oÝ:»¢[âºæØ¡ùBÖ6´SŸ¸iEÓ’ÙŠ¯^Û[‡l¶ºOÃ@IQ/G9ÃðY{~ï'8¨}R@@RKÞî'¯à` \žÝ,9P`,|8öº9 ª—|/›=ñimæ9賦ÆÃâ ìÛÝQ=DÜò>åÑôE_þêz¾]ÊdÞÉ·4œ_¶&;;f·‡ÐÎì8ªÝ÷{ËçÆ ðÞ;W~=¢DòÈ3Û—çÔ”(Á}ÓãÞp¶Šõþ”å¿öÞ«¦íz™‡gÚ`ÄŽU1¡  í&ÒTÔåoJlWØ]¥Gy¡$š\B~°»FcoÓ¯O³ú*þ–­M(*ý Ü›ÙTƒL øY6ÀAF©¾N¤è¨¢`^çÜøz‚Pê£\ +1|…ÑV(ª­äé€&ãéÜ-ÇPñŒ­/ÎãHß<õŽÆA-9Xø<À_zQVôvM5ŠR|Óƒt[{a{¾4r‡«@6fBl‡[^NÄê^}ß=Ö‰„Åí‘Ìzëu¡ +÷ÝqÅ:IZƒ?Œœ8Îðh¸µd9®‡‹2£ÉCuó²×UÀb=ï÷^½¯Ç=S?tùueœÊ€+&;Hù“€™N:³†kÊ,úÞƒZ +ó,IÇûÛ|í)Œ8E1/=ØÑ©'šu×»Rë6€ì›€zá·ZVì°ÀŒ“ëBqß”°Ê&½TS³SÀ$ù\÷aÅüÚãëÚœ,é×^8÷)~«TuâÃnXZV)M˜)êlèÓ€ƒHèLÒ™"ö” bGJÊä%Iæ*µß˜Š(òS S–5¹¢@’VB0O’3§…-…|ל Õm3!ÃеöU36ˆÄ¬ûP”çPªH;‰óÈy¸;dë×ÂçßAÀe:$ÐüÍ.Ò)ÅL^¨Û‰¬Â õ[©³¬×¤a,ŽŠ¯Éšmƒ^ž"0×`¼ûõã¤ôg2 »Ào:ÅàßÕÖv5j ñ «'Úï=XsÏñˆ }iœÑÞPüOV|‰—Y¯–ÃZL+0às+«ü¼Ñ+²oÐ.gjXã áËVZuSª0ЋyÑ~ïòbdý½sߨÔnm«íëVœý±yײñÖe—úé¤ÁxlHXt©Tr˜ö„Œ†§GM`'ÁË5壡UÖCßP4ÈÇ …{ì‚8º»-BŽ#÷i!o +}BKa8Ö›VGyßL·µuWGU'¤q'»Úg‰øØRSÎPÃi„E«­/ +ô²Ñl¬ kyWwè!K2¤$§æ>Ã/ÙÂWzõ>w¯H·å21+¡4s/$ +µkjv냢E*—/ÞzmÁúöó¦²Tó¦¢3+ãV{MóÕªb{ª½Mž«\þ¦±Â=ÝåÎd¼\›s=,‰ Iœ’Ö>‚‚¼›MKéP@‚çzâú‹¡èM푉s°‰u8.)Æ­Ô}À¾([ê +–<\Z=&ŽLõž9%Âéů²‘EM9?‡Æ ãAL©¼²m¦G Oré”’ûaöÀRf7—ø6¿®~dUÂÊ24Ƚ8p hù†u×uÜã ÇìuìÆVÖèšùºéŸ]²;ö˜êE2AxP„‡Úv;:^þ±ƒF E5ƒ$Z1³‹|:êÌ™§ulü’Âd“Ń@> ¶qÃ0€ +ò œj†¼u(ÇÉò¸÷ZëD Õ^k3ë"±%û¨ˆÍ°³œeýyy0køœ`tëQt5Î/¸­ Wð‡HNS–èÌ÷¡åã5õ²¬pO«óM´78å‚¥õP·Ò:*ÚnZ÷bÀò¤ÌÛ(ã3o¯—¸Í+O@Q_Ôù°"„O§ÅýÉêÚ¦ƒË,P $Ô=ÂmC:åa¢—¬kP+½&©wÌÓ­sã¹ ¦ Œ&3­D’':*Hx*rÚHå´œImPê +¯ú3t}ªÙëuÐ[IX#ìöKÎD}—]ú. F`H×]s÷`Ì1µ$4S’­¯U±d,®·ê€Ì­ÉL¾b’‹ äŠZßmàGcì_„‡/¸†kdùgΨ›Ï(ÓcM.T_%p +H‘$¿ÍÍþItÅøEH¸[ñ0ÇüÊ['™Éˆ«c@ûîVp^¯×”—–çѶàöµ6§$ Èম}<[QÎÄcãLdµ>àß*E êéÈ èB\Áe¡à · +¦ôã±0ï$PB‚[¥;“2XJ],gäzÍ“€ `F_QŠð\ÃPlä5©îVïx‡ÿ¼‘r¤tAÊ™©‚±,óOe­mpjýr +|‡H@ìÍ­5ÓIjÖ!†ô´—Ymöˆ"!Šš¹ÎqÖÊqnD¡.ñ(\”ÂFNãï\#½=+@á k +ír*ŽÌã\ÌÈa‚?¸4f´ƒÙt©¯Ütz°E‰‡3§Çi¿§1µ\ŒSîFË{³®éÄ9ˆ*áœälì¸€Íæ¸î]ŽuZ2˜ ×È¡à´AEÑ;¡²F§šJålvtÁJ#5Xɪ¬@ ›ï)'KcÌ­ˆié`le#UÜözþ cU"årGÙ©%’3;6r-5z"¤à802O +žg¶ÿf˜öÄ}¿‡kô¦â‰¡,¸ôZ f‹ÕÂ?îð³- ˆ ð'»8‡ú¶$ß@:²Wà'ÎÀG(Èy¡ú°‘·?t&]sÉi_ÞD»?7‘"§zêû“Ñå Mã•oMü Æ.ÖÙ0X½Øx L:Yæ–C¾¹<¬˜Ï´\B+³q%Iß%™ +bsÀö2ñÚÙ*µT‹×´‚ä—¾í V¢XC½j»m„˜,¼Åµ<­Qý‚ë'8ž›5Øy“OÁÏ7%LÖ?EuLñÿdÓ€%EÑ¥Ûó|¢½ÙdOOq:ÆTKº=÷ry_"B*›Ãº‚<|-ÇlIºª¸.2¹e_Z¢½5 Ž 'c`ýü;Žar0àRo^«B¾ÖCÅ=r'ÿ¸{!nK¦¦š.švÛ áþär”°Y÷³3™pt. È“ìÅN²‡yÎjó,ÜË7R÷šT\Fí…„½ +ƒßØÝC´0U§G§  /…ÊkÇ/W±ç3Î6x8ÏWÒèÞ f¼ ºÅÊ.¬>l<¨á£ø§×t9º¨Oa`2+¸+A zô %Ü–ݹ<§Y@ãþh>¬pFñ·žmýZàædª"‚`Õå4Äik'ÛTЇ“ðn-pd x «×ð*èEJ Ì8(\Yp`ÔVþe8H*4Ùà –r¥{Š3çÆE¿NćNlºéÕ¬2ãTÑr½Ç£ž^¢žŽÍ Yw+p”ž·•H`½8^Ð`Þ­€î3Ïá<ÐØ»vÞº%omÀÖS¾C ½œÛaˆäWdÐÇõ*Óð*›Øë|cyȸµ "3˪ jÜæ.+‰R”‰ªzy€$Øí ^JîΊ„^ÉÓmó-Ñ"f³Fº½âÁ…kj°&`4'UÒ#NxuP!y±¨«€³ó¨ñÖêÚ¼PÁ9'Ie64¾NlÕêÜ¢ñxïà4ÝþjÛzg‘¡s“WTXïä“«@†±!pQ³cZ+…ʧ 1TnÙÀ¦ÁÝîA³zô~³×-UQ/²!|çWð¾ÕždqL¯Sÿ ^¿.La…™Gß{QnQ e ÚkLQ‰1h€óü:ü!F¨²b–ìÕ'í—È<¤^#µ¯þèû¤<)NÚ÷¯"±º~ÕYVJšŽ–ÔùÏõ;yH K>¨¥˜j¸šE«j\UµAqè*Á'­©Ç•W5–#•`Ü£Ò@ ‰Jû>‘"ÖðRRYQ*›zή¯òâÒ8®Ì—õƒãË@=D•óƒ =#TJ÷¡— FT?Ít”ýXãiuœÞÈŠ1ìlÇñÔ)‘ )ðŒ4½V— +’@«ír;¹æÆ^ÀjÄ0ÎèlNÃv¦äê4¯®Ó.‚o¿õkEŽ"2$[Î`¢Tme8ÒLÔÅS†HµemÐoc/¶ë2Vñ§êDìðúÄŽ^ ô@Pé܆¨¶u¬U¹Þkc.g€xQg™ÌxÐ)°Æ˜0âæZ þ[¯v³J—|dBÖ*t_n¶7’lì-× + L7!¶^ô5GÔP.O5*ׯ† d&Âë÷·g»àÚúÉ^•ˆ·AleC'2ê&À”vrg¨yõ×ÜöáY”¨p±C˸«cà(ùV8<öËj©‘Þì.ñ5~*«G™;¾äÆä]$5.!9‰ÅÑ.É×-ɦµ¿tb.W~ÏŸh~Ï=[`Ñuǰ)W€”´aÓúeë`ãÙ Þ!*SÉVÎPÛ›G<‹ü.LHî=Y¸Ž š­íSÛF,[€ý£YÌ-ÒÀ£T=Šú<éî ¬ *•ŠhöO‰E‘o§±+CÛ?/Â_s¬9O7PSš¦˜#³»Uš¶Gعº$&;W·¥T˜+ÁÊ¡¶ Ä]!d׎¿±ìˆ¿çh¸û¬%°Ó:ï—8$~ 1õ†,\9j}øØ%aé]Ÿ¨²¤>Ô×b´…¾Qõ;r{; ˜Ëϱôó`u™mª X(–“;Àí‘FRX4ˆ¹è%‚ä}èmˆ¸)^@ˆ¶Íc)‚£Î ‘Í +ª“'»[Š:0R‰€“&QþXX²å¨XKd— + š$ÂSmâk³õöþÉ©,²õ–Ü„l€ä7è#-­×\TÙñ”¿6h !f™åÁV#OŽM‹@yÁà†¤K tg1C·Ù &:´9Æ#QAÂôÃ…¤ž7ÅzŽèeã…{ò†%°à³ ÄDþ)Ö^2Iެ{ÂþUfœÃo $óÚ %…©öÉV"ÀöÞûН>Xì3d ˜P·¢ÖEòé +þBJ[›hÕ5`¬¬;{6ë[ÁÍzɘ£†¾kɵÁ4@Y£]J•Ä+p;ú‹N¹Ï©¾ò%y °bÍÑ=ÃgÀØ÷㘠Ȅ„, ¶Ë¤¶îþˆˆšŠX½ùI·¡ób%VŽšDÄŠù…òø7Õm¡fãôùgÎóhö…Dî5e|£_]fTÎ_*WÒÁ$_²· ¯ø ¸ Õ{]4Ä7© èr»^Ø)Aâ|½ç#c>•v‡ƒÊišb’#”Y"”Ì¥šå¦~†S0\„Çü‚…§1m®ù¾áOÆÙ¡LÇ9Kå%âl[|“M“"'ÔÉÓÿ€]ð +î[;Ré$„2LTò‘'U16¤EßtáøÊ‡¼&KÜIàuÎ%è ËfslA¦¦Ëg'-#µÞ1©×‡d* gê0Ë _ÅEÛN]Ö4p¹ñ +¼{ï@ȵ¿åLóŽ9Ò‡¢o‘Ò]ïÝ![í6›9L"G½pÍÛL€lk6A’´Q€ñIg +ÿઠyÙÈøˆ"Šò5?‡›tn÷@?c›ÑEóØØOruo³h Ì6‰°*|CºƒdEµAnîs¸ãÒû² ;DcÞ>B76û«áªÊQÈtãó‹ø™ì9èúäÑÂQËãu«¥ bføÄNVG2ú±c>Ø‚b~˜ú‘$ìÉžò²¬7KNMQÔ/€æJ‡éÔ°d7˜‚œÊ¤¯ûuìbM×ÉëÄŸHï›Z¦TGjÕ¾…ð“xë~è yð6ÂX¸]£*súà3’o«a­ˆÊGKŸ†ä .Ø•.y9¼ÐhÑj5"ñi#™STç[~Ï£ ¬þ¾Rª{·ë%Í ñJÉpåà­KT {45™'¨E³e¥º ïˆ0UÐ>ªåܺƒŠuQSíÀV0nÔëUeŸJnh˜¢P¤±I ¯W¾xÛ¹ŠN] %ªïb$4•¨Jˆ$­fÑ"sy¤D@IŸX©ÉsKEB8ÙÚä¡Ù¿¦HÍWxà‰aïPõÖ‹oúµŠüg˜\Ý7G–òd ¨†°+îìïÉZ謼†®ÎÊuµÑRäðoéÍ ?v¸íÛÈAÉác}¾·.rxù䨰¯a\˜¡8tµ:5‡:23‡«ˆ âÔu%H`²7£@z.éܬ[CÜ¢Ñv7/èD6Ïç@û°!1âÖ?ü.1©\Ïî”…TÎÚ‘5tÇ¢ ã¤V’ ½v6)A2•EZñ$p€)õéž'€‡¦ˆ‹ÓýÍ,ÄüœÍ'ˆ-žùÆóƒ<ÏŽƒ|¸EH¹A´¼âo{i«J¯¶3v‡ùtðâ!Æî!è›õ{°Ö”¨žˆÅ™W›z]ZÀÕ¡¨Na‘.Z³êüÑ¡ìÞÚºç5¤ÇȵòùëD†ØžÔäsà±³z@:¥Ÿ&<…UÒíàS[šR¹×¶ž'$ƒŽy„4à ›|Œ=˜F”—yR,¢ÚMXg{CHá¿€n`3x6v§Qµz#,A(ƒ' ÀãÞ° {ÉC({å<°¼»=N Í¥œ1øº<­åâ¥M“‚þšÚMÀ…³AM»Ê®·)àó%8Û²ÁWSå +~g„/Ê)ýSV^s1Z+õ“ަ—Úd†?_‹¯l{œhâ¬É¨£ dÁ²ÔUEÆÓiFRngÙ=ÈýÐãE¯i›6¸zQf´},@<8d,D²ž“æR[J +JÔ2¶½p~Ñ£!Ø›{®M^*³GQ›2Öw)4E‘QFâе^­L•X©NÝ>Ùqmìï©'hSŒ;cAæm¾J …Â*HkA“JI8Šr¨3ýIÊ,ÕŒr]É…"…ÚFÕõ¼"ŠSJ{²‡(s¦p®N½A䃶Æ:Þ•Q[ouלðF¢… ~c jÐLÕèÅîÊûöd\Šs5È„|GøV§ÔʽC¬ZºÜ;ªI5¢g É¥`u¢1# +8¯Gü‚s¦-"WÛæÖk;Åk ôYî +9Õ`çÔyÁà ¬Žî{ˆS sÆ(7Å_× L–çR§ ÃJDZ‹• µÄ uH™½ÕT‘⤉b€XqdÂo} þ©Gd¨³vcº+»'ë‚&ûpð„„Æîzxî;¨æ ¶èÍáž I=^²xëòQm$R¡AÜLjîȯ(“·ÍS¹Í±?,Á>ò),ɼóhUƒ %à ‚%ˆpý†_ESBuED߸»§ +FHùÞ’2Öé^Ëb‰_6d<,RNøÕÓP•tÛоÕÐÐ;¥™Å'g`Móu´À•›®žéDP½:U7’±Qk¬Îéú4…3ö`%[žŒŒm— pk¸5’4‡VF(€í"²í.ÈŒnÌë…½ööî ¤¹¹sRÂÕ|¤’qPàÉ^ê÷jX81ÉtjÈ0ÔIPç:vWÓúª×;DŒ,us*_˜¥äl@µI¶:Jb\2Ž,Hº+î@á[Bðý ˜Î 6-/CL„â(1fœÂªÍC”,GŽãvŽÒš’Á˜U«±·ºÏ`Vä ÁßÇ£)D¹T¼á8 ¯ V„J€%>ÎD‹A)Ù}~Èèj(â°úz£@0ðz)TñZ–Ó«[®Â\ëŽÈft°ÖïëéÐл Ã}í;FU•]w¬J‹'ÞÇØY•4¬X†‚¶¢—†ö`å+ï+FÐ9 ýªxà#at²TQ:Z”–Y¯ãL_©(®‰`R¥70¯b;kvÂ(û>“ÐP„éT ,2ù3P«7Жró6Ñcž”]Ô`¼¶09O  =¸ÑõÖtç•sóÛÐ5=-³~q¼yIˆÖÁd{Ç9gÅœ¨d}4ËÔà˜° Xúˆ5¶ dààÌÁ¶  ‡¡Ýkþ¼‡RÀÉ+ÚDµL¤¼À¾–Ñ ÷†ÏIiïö°‚·z˜e”07M•¢Ò€|bc¥!­øþ²¼­¢5r°GÔ(ÝJaò%‹}DñVtÀ¸ƒ,Ñ¡ùOÌd’~Xwøê¬õˆ~/8»!˜ApÕí>RWÌ9üÁ|mbÔƒ¸"Õ– Ux&Bµ€9.±e{0-J\Ï–~l…·è¼×Ö\56ß³Æ=L%|tOØ«e§ã,¯Ã›Tbu[¤Äˆh-3‘NÙŸ¡A}H›}æ‘õäÚ>Ó¾5íÓC>Òô?œIH iS½ôÚºž$ìKKã:[‘ƒkY”ÄGgI +XTy‰Ä±ø8q/™"†¼¤Ú«­•A7›$ÎÄ—·q´#×gÀÉ{f <]Ù^0^˜gq®Y‹“¦„jó‚kzÛ]à¹}âËÏr M +ÂqΊ&~,àÖ‹lŒMh>p¡'DçTB _PP–1xÒ\US.RU7’Ô^Hæžð5jz1–é…pÁ_ÿEHæ»(ª°ÿUú¯;¿EßÍN©#||Y-}ë‡ìq°]÷ýAÔ‚÷çz\a@ä»&P( „ú Ì#K{Ù:ªè? ïGê±ìG¯Lðø˜¿¬Ÿ=SF:®*ä¦XâÚ$•èoê>osu¢3©•mÖ±þƒŠâܶ¨Í¿éÈJKt6ñ%œÊFguœý+¨‘—{*#©gm”A\¤×6™!m*JÈ\lvp…³ LçÖ³‚ɉUíZØ×Îq—AX°š19!,iñÅœþÍÞÄÉ©èºR ©\âMMéÌH ü…b7+ 'º¤óÊ/ lt +˜^ƒô-'CE%Þ¥"îäR8Âe¦™šDêjŒO¤RéÄn»ºÕ÷Š)_›M¦¥h2·ÌîÓl?Â'È+ÿ¼—¦5Ö"o(U¡8‚é3iì›ýoP~O¤ËüMoÄçþŒé`þùÆdPZG½•pD†Å­¿T¯õ‘ã â^¬{·×mZõk/‰Î`dG;\3|—F>¿ÜÖÞ“l+×kå¦ +X]9Þ/õ +üÄîûeµ c‹7¨±}¢wˆÔ¨AÁîT.ãèAÐÀB9ÙBüç¡ù¹¿qøWÉÎs‘´F0—é„«)N0¦üz'A’ryÉáÑ®LÄl¸Ÿägß>#.ºŠÓ¸ ÒšˆM®ˆI±W&n®°F…‚Ìðý‘Íw6+Ìôže¦.ËD«ZeuŠ%î=„ݞ̅˜=-Qóp×Ϭ£ˆ™Ö'ÝXTà')Y–ýtîËò*ªœ?N«šÁÞ&Lmó—t;>ÆðÎÏÕ¢¾/c(Nðc¸S¾Ä§ïÒHp +aáÚGBÈ礣•öUKŸÓt½—?§¢;†ïëGWϪ­ßa¯R8:uî5³^ÛåÈfæ õ4¸ú”Äx$ uÌ~¾dnŠDb9ÅSŸðöù +e+/¾µ•¬½L=.(ƒ Ú"’å÷+1J Z—%5Ÿçº­©Æ˜Ðz¾ƒ^ijö)ÜŒü’‹¥©ù;NHF¶Ì•M(&Qò‚Ì À…Ú˜ “k$ÙU–OA: kþ°á…6£‘´ ähtÅ´\Âõ›Ê³úù +¼•È?™Þ»i•¨&®½|÷h +^'!v°Ãë¶ì.v£IÛ0£Hå?[ýíóãËù¯ä¢ÉÌud² {ZsR¹íñ¾-¹è‚r+ [®Kbx}Ô±5#[´Ñ/ªNç­áW£âkã `†‹ÁN‡M­”¢œ!/ ‹éóRØJ°OÝT–^cØpǯFN*¶»±!Ußv2ü«_jÒ:Up$ºgã4tÎnb¡mÌL€B~€¢Ó½][‰7ŸYãµHÛ¨ÀuSN‚OŽŽh &ŸÚ¸=crZª»:2‰y,2º$ ¢OAn• þÎQÀ» Fƒ×|²_oïùÌÚýûda`ÈLÎ)m|ID$ŸÒ³n‘×`Ý:Uuz™¶¹¨þ¤6Ýôb;ëq,5®B‘Y8§Ê€··öÏ/Àÿf¼ñï´P»ÎB«©B²FE»"ë¿âkÅÑSÀ[S)š±$‰#âg99&Zõ¨Õ“#¶s³õCD(œQ%Áµw&WŠ®6D®WCEÛ%n/geq-ŒÙrG¸ù9\‹ÌàÚ­‘¤½ÍD sŽôI<¨‚ÑBS±¸uÿñÀ²àðRÿF*­ge¹ûOî¢!}-ãç”®|zPsn{2´[T”¿—Ù½®]rêÜŠÎ óÌ¡JœHTTヲýäÏèì>àSwˆõArÄñeJŽ­oqÑ,æA0lüój8¡V!(t<ØË¹wÏÔ‹.=-ÏE"—ÌÄúü¨9^ëÁ°uÏÐËù¼vnëš56¨:“vsçaÊf2®.Ñô¿5à~þǶP[3²YŠë**YÓ.{xߔوh"‰i¯Î ʤß)ë9Èó®scÚÆ ÌžLµPÀæG4è‚C ]?‹ô˜¢ÑKª³(ƒ+X„“ò†eüvîèM«ǎꎕ=…—º¿ª÷ç:ÁxUF¶)õ&ky ŽÇ'Ëõ/`’P:,«CG£$—µýþÖ#ÛݺËå½ñv°ŸrcÑ1:C ++N…ÝÓ¼H¨­ð—g\’Ï)øŽ‰ýÓÏÀ=×AŠ^×àɵ&ý®ÿ6+=AVŒvIŸŠÑÄI!„wê™L¹ZñÞž _ß×™’”Pƒõ ½?°>àd±qH\¼–{]¨9xáÕBMzÀæ ózµ +­Ácw0_f1g¦ ²ÀDŒåÚÔ}‚ž«ÄbàPÉw´ÇvNóCº±À“)r½¯ÈОódÙx­Ffw¬”ð´…WœšC"±œñCÕÔ}D¡ZÅåkñ›&kÖtù2`yëuîÒw¶Vã¢B‹€„XøZ•Ç/SùhOv—²s}ïñËN¾Êõ>V ηãl<Õ𔝽ë‚6°OD›¹·$/o0±=â·^àšµÞ¤Âì¾3áÜ|Š,Â’ÂÓÂà¦E¨ÃGEIÁ¿–XYgÌçD3ÚA°èâ¼ E–T‰q“\HökïÇÈÕWˆßºžAɆ~JYêC èzðä ªÕsóNŸ› 1þ\‰zL†¬ðÁÒcdœ fY µ\u“ÍÊé ŽÍqi®%Þq6É“"ÒÎ Ê#¬ýú®I¬;×¶I¨r±Áû»-³Ô±Îû™¾ö‚‹@]`¾oýiš,¸Ùÿc+4v‰1¸á™|ý<ãx[­aµR~ý¶ÑŠOM¨ʼn©«Ï×;¢Âz!_J:o½´ç#õ‹•~·ò ÎdXóÌ#ñò'ÏGìç¾Úõ计Ák ¥KCþóa -RW•sF½6*—_‡ƒåÓåNšøáÝ­Š€Î3áê†ma´1|Ñ_ÍÖb?\DuÝ[/‘ÒÖPÇüK%¹ÇÞ5Ž!(„ŸF2,G{ê™æ¢™ãn±e’¯+'à4ØÓ‹À\³NÙµîÛYâˆÑíÚ5ßýSmϬ>þÑ':38„@+Ú¹¢ï+= ~Ñãf!=êhm'j9~Q‰t|V©Á3\Ñ2EŸœ“_scåâ|ìü|Çšm¦Aµîvp‡Å¼‰zbkf©/¤PW°Â-ìò0IÄNG¸áÚtʆGŠí¹æøó!Ñï¹¹v/û¿Ã¢dLã[ ØtIø{ØÛ€5çÙp»°W¹»×.·m»÷sÍö}S·­r ÄQnEKJƒÎ‰Ê=å‡Ý±½\è%ó¾o3f{±ÚÑK+D÷¯ðQÖýÂõD½œIeæºeÙé!!?1?]KÛv:gõ+ o½qÙ v/;ñÀEE„Чô"Ù3 0=mèíñ•yQe? ‹Ø1Ùk­.L¯K@@lotm®-s +w\kíéˆõÊ·‡\8‚L˜Ú#^8í±Öä*ËÂ2ÙÉýÞ^àºô¯‘ ÌÏѲ6YT—Ü?cħr題nÝ%Zp>gˆV€àÁ̱ॢ„§‡B@0Ë®”Ä %˜¯×™`þЫîëqÖBƒ +£=ÖBO¦Ö,^„˜¬æà5ýM@~iHÉtî󤫙êÒwÖt-h§€Û5h%¢7|Ö„3,ÊëU.‡È·õ‰G&¨Çç¡Ìà&í¥»Â¶»—€¶¨i¦Î=&u}ˆfVYÃèAöÝú §Ò7‰ôëõ òHîWUþ? ½ˆ×XQ@ùºæçcÚSbË…&Ä$,…#±TC@0ÓÝ€\U«Ä +Ä01ɬ¸£¿>÷¿Zؼ¾Tg’ÚbS/‰Ÿ®R&€Û±{ŒÝã~Ì:E¯š$ 97"™ +±h>³@|oê̹“ñëå>Ý»¤L°{<Ì_Yð§’Ö¦3íÕ¯ôRœ„É7/ÓB¦Æe(`,åçk‡Nߢ=fï}Ž-¢¯ÎïÜâÒM¶1“R'j¾ûésgë…»êp'ã 4º¡(øc™  Û^V?­#ÃòÎ^!ÂÍMñÑçN¨4¦FRÓÈ0Pó¶ÕÚÕC´?|$Ád"‡’`öŠ÷4w¥J¸o«›çô.ß0+ˆÖxï8õóLÎaky‚–,µÀ1 žUÛÃ.«/ÄLF%Ô9úö`(Ю÷9ÁŒÍFCçÚÕðyí^#OW>@Ê5ER?±JbÛ¾ëqþ´5ð§xÎôÖ –(O·¶b àZ`³•šÆTd&ž$3¬ê[þ.f{í~ïá™@´ÃCÕÇwÇÁÅ]ç"‚°+gqˆM]¡¯=¬ÞiEìÓo½jÂhœ-žTš7ª +ÃJ^wÒ6Q)óÅ6€lÎÞ{<¯iõÞó¾ïoŽƒ‰lìIJ–LÇÖo{°Wù`Ýè!rmHž½†³Š:#Z‘@,&Yå™K1DlSŠòç¨åMGž"kž%w÷Þ#÷®ó€¹ÚP?æëq©.xmµŸ;šêG¢©¢¢yŠðkn„|I½ë“%ýYbqÈ6zÜ®I 6DHtÚn¨`œÕÒüËê±cߨçÖÀ>>«IËê5Ä™iZA2z'=DÙ¬³oxUrƒk¼¨“u$âæ}äD±Ñ¸ìóôÐ:PœõAà!µE4TÍDe‹ILPâã*`r-egÞ„Žß‡† ô¨»Ç9^1ˆp †ÞzINÜÈ}Ê[*²¶„ó8Ûw=z@m'iò'Øyë¤%`F¤ðDõ‰b>­¸ÁÀk®äÿºº;Êì¬I¹´—ÜÖ™iFýPЈDʵžŒ”ìÓnóô/°K =Y!éèÌúõ¾^'ˆèá +ïê¼7y·#y²Ï”Ðtýòš3™µE– ª}žIÝÏäÚ=QíÈ<ÄÍ+ýløBñô;sÞIæUWÏ’ÈŸŒ‹²û¨³šVfÖƒ¯÷Þcc“Ö˜S©ÿ—½úu/%ÂÎH„¡qT­™!‡Ïwêô«ßßkÒ;z¹!£swšÖ»¤A6Ç*xÁü'³²®Òý4Ê3òI‘¸¥™;¥Š¨ØÜ„²5‡©§síéd7qå, ¢àP·Ñ÷~«¹,Ä«wL&Ix¼wøå©m©â>‡NÏ¯‡<¤ûÌ6ÕôR°„o=¾] ßz­ÅD•q$§Qp©÷ùb~‰î^“¶€¨@§Y7PhÙ,¿)†½üàöÙãöyJÚ“ßFV+l¹P?©Ø™ËMÂÝ‚ÄÊ +±ÊÂ8NÙŠŒé0ÜÉîÝc¦ÇZÜv¹{Ô§q=Æs¦í]¼z¦nä!ò×Ì‘´Ú~â6A„"‚¼®»|ä‡0Ñã)î[Üï%€ÃJX +Bô È ÛO§ Îhošw¤ v¼‚°aTy §…ú¤µNJˆÏžH| +¯”Œg6ÊZŸt4ñùëSÒšWÉ +ÖMIÂãhdéØŠÍk.¼g”ä× B³k"àqðŠ£Âû8䱿”:jŽ_+‡ùÓƒýã3çåÅ–}%•dcÄ|×CqA ” ǵö¾¢‚Gn_Zböóeo\c]u¬ð¹Iz€¡R5€˜’´®Î)šÔÑ{ÓÚ +" ‰íê6ü=wb°Xð•Õkf­ºS&Úhw\ÚTkUê"ñ=ËÀ +ø›°ÅdN2;½ ¨G4íµÕÛÄrø9QRm‚1i ¦ g8BRœáp§žý'2‚º u–­+7RAzø*Ø®4Ü…V²Ê¬é“‰ aÑvÁΕ”ûʈÜ&ÀÃiÐXp5ÀÏùÐ l±¡ A·ùÚþ_;¢•˨ƒ’°-ˆt^Dý#;2& +»¡õmp…OfE“>öõ˜ôAÕÁWSCh†–ÆðÌñ§^¿î.á†S+w\‹\a·€¸±bCÛÎ|©K&.œ…HÔë~˜ôX +¿8ldCcq§x¸©öoÝaǶPÆ8\"ÎO1tÞû¹1‚Ϩ¾nï¬!úÌ·qž²&E +(×¶±!ä‰ÐçÇýƒÎÛ·ä|á#‹iÏÐ¥‘˜&å Þ« +CžÏçX™dý2dó>ßA:C„±ª¿×&1šÁÀ å× +¼<êï_Ï Lj+ÁÏ X9Kxß”™¿‹^ÜcóŒ× ÿìÌ“šêõ yþ~,U_Os +ÎAš ŒxÓ·ÔÁ•‚¯m ÿÙÓI‡0nf E±~¯zllÑ'ÐïþjÈ49’4,¡ª~~‹´'9#dÈ”ÕòS ¾~~g…{jÇ¿j|Ô›~Þ,ÉpÀ.¿#hvð(ÊÜÔÛ^ ¯×.¶ëò6<ßZ3´BT]A³³‹‘jY»š¼Þ’'Xª¨oL?+¾ª[Þž§è—i°\ã&Gµ¼µ¼\óuSåe—*ØÊ’©=0'wBÍÃtРJm“(R†Í÷>Êñ‚€¦aÂQ5ùÿY;»Uir,=_ïá;û ¬)í˜16>±ç¨hºÛ0àžjÆíß½õ9Ì1ʱåû›M1Du¢¨®Wõl½ŠŠq)d@ÏÕp8™*mS¸ÍÚŒ%f7[Vè=¨yZû«b뢼ãrbhH‰š’ªAÍž«‚­ÛW$_‘¿ÿ7!{)g·¢ý·¿4ƒAW©’ +N‰O,=ü»GDB¡7¿.Ö ê°¬Îúø ªýKžDlö¼þVŇjÓ”Lyu +O#Ó?s8ÎÔ4´+b®ÂÅ ¾¡j:ZÆuò!ŒŒ+Ú):;`DQ“u`ÂŽšßâ{ØE­Â“½ìíæïûsöàaQjè‚i,z¿Ž}ù-‘6Òÿ*uð_y°„-cÿžèüaÿÇøö7ÿöÛÿüýdùÛ¿ÿ?ÿü¿¿ýÍøÛÿö»¿üåÿô?ýíÿùé¿üîþñ§þóÿûéçÿõÓúÃ?üå?ÿÓÏÿ÷ÏqÒ¯¿ñßÿøç?þî/üÃOû¿¸¸çu¿Âpü¯ü{±ýcxñWü¨/s™ˆ}"ãÉÞëOñYÅÆì~—‚6˜ÀÑnÍlœ†%<‰ZߟPÔÇU íâ–ŸNKhÌä‰èÌ£ñŠ\ß2!˜{=ïdz~dLE/úe’ýÑОhP>•* +Ù-¿ÑN2öŽœAút…AAý|¤†øû£PômpKvC%…çuÆÑ•Þ£aŒôÞáÐ *6”A±A1Y6X€™> >P»- w'Å<ä|«‘nËïìÎ"VùöM<£¥þv$Š;^¥ +./b >ŠMY2˜•÷Rë:,Ø—ë‹×<ÉEÒzó¤ÕÆV²a¤ÍµÖx÷ssÄûó1C/{kjá½ûóç…‘§Ø7ã`ahò:ˆoõƒö°üÈhAy|Ÿ¥•¸²³AÒÛ¶‡f€›¸}óD#îÉ#‡'/ŒkåËý3fÆ¡ç#Tàòà +rn}ëß7´v"n=ÆGÛˆ,ÍÚÐ^|Yó°µ*GR`zlððP-î¡ä¯UFVyfJûG±0‰³åbu~ $Gñð–`gÈïL!4ür—1ÐúýI#1VØ×6)6`’ã‹kN/ ½24“;Ùi´»7:m¬ô(7tꔞ;ŠlC#w÷‹žqØ$@I2®?7ø +Jý½1 ö cÎ%e˜¾)0;Yò}LDGuh‡ý­HŽ xÐù|¨|à ‹—a[gF× +”£ì“/+f=|iÁýM‹Hú!8>‘˜ žKEµÜYç9¬ÇXÖz‚‚æ` adr—\!>/·×2u2Ò§âón Š”3ó„ùˆJÊ|!æSf_õ„Ȭ4¸ÍP¬d÷SÈÑè™ÑÆ® +­üþ9GkR¾hÄ,©ÏP»íÍõ(½ÖŸÃþá3ǬQ;#³kô‚ÏëÜ?‚È Š 3h9ø|tu­Áúw84=ëYV†Øòc Ó&º6‚ÍÉŽc¢®:(›¥r´D'¦*g53|ÙL:åõQÿ&§TÏË/ª›#qÚ7890ejÓ>¡„ÄÐ8¦—LK>Æ|Bø¶·ã,î à g†É}ÀF3l”J{¢ƒ~é]x9'‚ÆMDSuŠˆ}üPÓs”ƒhŠ í8EûÀ‹Œ.ö ÿõç¨Ó0\æúŽÊ´ÀÜ/¢öS«u@%uðÊ »¤`!„«ºZÙÁ 8j³xåuó™v¾;4ivK”{ê!Am‡fE<Ÿ¡ÃAÃ$õÐ$NI%€ø 7ô¾:>NzƒNQo‘hRkö^NyšHžÒ{ îtñ¢8m Ù~Ëž—zPw{#}¨ÆàÞ‘åT-–ÅÎnaÎ4Ž µáý@b:nç¿ôüx_6¬x=~ ¤pÅ£g¼%HÍ&azûzªË›…¿åpn¸{ÃQ =P°àpPBií,M4’lÕ‡€ÔMAlb]C<È¿R¢òRÖ]|÷Éo¼ü:˜¨²b¶{öãUcMùik¢N°ü¢´êÄ÷Õà2BÍOQ¦ø ,¹ˆÖ”nU¨È’‰AÉ UéS;"•§§*’C*Þ™ì}ZC¼â Ð’›ÞŸ9g Ì`û¯dŸ†¢CÅ3ó€”Ðé!i„¨‰n`‹Cß=Fd0>Õh̯ æÕ°-€âÉ¡“YÒyGqûû7âådŠ_Ÿ‰,SÎ}ìΚ$Pýdº%Ú¸{i¸±Ìùú ‡6ò%âíòúø{/¡ª}?b“=ýÆTÙ~"®©) `4•îïB0”¿l|Ö¼IÃE•ùWjŒ|ÒwCm`?3›9KFï¹cñgUx£a}™÷}åR#ãð§¶~Š’ÀëïÌk¿s>ÃlW­}Žû å’ÈSN½á>þv¬Á_jëõÙÃC¡îœCCñþmõð$îg2’o„^€Nì¦d}j*LüÀüä‹­&Ê0ãæ- (ÆØº·ä!#‹ãÁa’;ƒ“!‚'"yªTn3ˆ +ÆL"ñÔ]¦ÞL +9H-ìS;ê,ÏÄBê"šy7u¸‰oHÑYUÙ R3Žz0”t;ª› õ|ýÂil$”Æž`!å]óVvàIèŬ—mÐ+´òøì0¡Œ°{½Á;èT>Ê”Åk•eiÒ,d7 Oƒø- vÑ™8 +Eý¦ξ¹ŽtE´˜–œ.”HÐ15¶˜ä¾œioô9c0=¶B<Å0Ý‚ZDõ¡ã=²ä²Ày Y2^# ïÈÎá"“•kÄÛ!íroò‚?f0àzOc³æÅ¨¨ª+WªVæ°A ÃZm¦ÝçÑPòÅ‹ÑÈ<¸ «Û8‘ß®Lϳä_¬pñõ*pSzLù/ &®K: õaí¨›éBï«ëý‚V˜U †2¸é>aü\>ìx‹:¡vöj5‘,·"«ÂgÚNÕ“;EšïË5‘­$‡Ícþþ¦ÑÔ€ÜcJyœ4¥ù5ÿ„Í䟔0Ñ.|‰›Ñ‹>Oã¾Ë6R'fg«ÿZRfe˜¤#5ËŒÔÏÑƉœ–Ç‚~Múx–è3"#Bƒ‘èbÌ/G䙡Œ“uèé~n®q·¶ŸÛ tƒª"Q¸0{ç[C~™â.†b$ '®Ã\_ôð½Yx«‘QÞOÈÂÛqï¤ÐíÔUmâàpä ÊP)`¿ìNuØ gåìhaÉ‘]Ûkì«×ŠÑú¢Ìp¾{Ì·ÆUoðaïÀ0ÉaöÅáXùP8Øo5 Óýü>üÁ®¢s‚¶>¾´”ÄÖ¦j5ܩ԰qÂï† §ƒÆéV­UÅáz¼©4&¦ùÅ-x]vÃÞŸ›Šþ’5Me×RÅM`§Ù¢š¶=‘RU ƒ 5GXTNÙÈ8\4, +Ѱ‡ß ùå7^®Xü¤†Veg•ØSƒ¨Dö1Kz®ac®Ø ¾=^2_ŸÇcÕ­9aäG#· 7n÷ô'õq~o¨Ø…œ‹{k<Å`÷¥Éù%V-léÜJ"¤ñ¼â'Èð8¡é>åã[rþ“A–{nßra÷Ž}nD-‰òuVÚˆÜ=£ÚØ8L¡AîJûwŸß‘KTûêËàhÚØúoÁkïŸã•çî¶?5ªŽ+7bœg+q÷ÛÞyà1$¤V´•šÏ«!~Žî4"œK®ó~K?"E'›Xsaþè]õ¸t×bP*Å;*–Û#à¦a°Ä1‡„?Y.ô¨›>W…5ÃêÞÕΡ¸D®WöP +/¿Ý@͘JU4¸õócÚðˆ_øÎ2Q\†ãñÄk‡·i (õ³µ¯ ?q[+Pr¼Ç +Ôø¹UY,ö¸{ 7ÒI™àZùÖ@²ïE_øÜÈ´zB œ|$Û*£G. +ð:n«ã1I‘+v%ÆU›\ϰ:³ CœaÔú°§ÓGR8´]ešžà$Å|D£4œ[;†ÈÅnHèâ)z6ú¹cü°Ê$vSllâpÈKó¬{XìéÛ¸ÞÖ¿Ô¯¯r¸Ðýþ¿hlzD‘÷6– ¡¡“õ*Gka+¥d7¬þÑð£ð˜bý«Uç9‚4b@ÍyO„/o—0ñY,ðƒØ?Ç’ÿ¨¶¶_•ŒõÐþØ71/#DϼÜpYgS©~qÈs³£^ßí¶M™À e‚¸ìë[¸í²€ÿTÑCµë­áSìçF¸jÊ„²ðvj¹­è—ŒƒÔ”Š¡¾™c+Ó’•ïçæ®q`æÁ álýýNñ©êé^Á‡ˆeÆÇ*tQŸïxñÑIñÑ`èFuœYÇ¿ÛùûÆn®½¶¨…žExbîß3Ÿ{->@ãw<Þà3ÁӘ׺ïZ¹î?+©Pb›g1Ê}Ć[uƒÅ7 òl†é´‡2àø.²(rò™iDãpÁ5ó(187› ânÈíƒÕ†òþ[p ß!ÕÃÅ8Eôœ5{EÃóÑ[vP¦š.{{iæšëq6ÃßX”Ž÷JB<ô„!ŸCúþýä@™8ŸÛLxMLì¤ö ÿ´(+B-á!sC€ß"w‹â°j˜K“P€™QlbXsƤºüû]Ëx\Á£„»ßpÖã,°×§’’¥†ç”÷2r´Oè´ç=¶rͬœiFÐh©SÅôü%ÂXŸ°dÜ=8°Û@zP^=–õÖHùO¯NšV†®N^N‡‡ë¼—ãpNÞtÄŒ†ÀT pÔ‚ƒ÷kÌthÝ%7µ*z‚oà8¾Éªo3Û£A"k{55azÚᚇ‰ü<1CVßUw®I°tzU£—2=ÜÜï ®„Ýln§iÙ#±ŸEÙ_¡w.… +׆×^UG¯=nN ,{)ˆhb¾æå5k=/’í%ûeí}¤õä´žññ°]šÉ•;•`Ò>ÔR`ð÷;ÇPЍ à@ånr•Wo#†ÕϱêxH"H¾E +AØnRФj rÕWƒEvOÙÀ!*“Æë[Uð;Díå^÷éß@B-cZz+Èç^è¥5€ÎUM§©eýñ ›p9y¯2Qï=ùø÷ñ¸X’xÈ™—ñÅq|ì¼:iˆ;#—ÖLlò)@¼õÑP-ÓQ\ø¢W1þéýìa}”œ\’ûI‚bÉå#2Uûæb “úp;Û-WÍ’¾HUä=DjÅHÇdI¦G”½PÉ1yYREU¦@T£DÎÃG–kœ3•0Ú±Pú:“Ëàî%EÖëóEɾQ´:B¢o¥Ø&& +ÞG”13¶ètQ$]ÎÕ¾'rç .…Œ„H72…?O5·šÞÝsbqšØœÆåÕOàÓÒþú¦X¢Ý‹ê[œÇðÖO¶'ûz#?÷"¾†½5¹?ºrY3.ë9\55FLËuD/;6Âås‡ßŸ’­CüRœ£ßCi•Òž"@àe T)×áXAÎoo(2Øß[Pj‹Ê š@KÜ9+y³[¨S“†ÄRïoŸ‡¤L=’2gƒõÖ eÙ~j}%ŠŠD*Ö)ŸcÄhºWŸ©c 1 yfâ„k ëÖÁ¼#+ù{õ0¹É«`–ÕkgeØ»æõ€ªpœ~¼ÉkÍØÍ¦÷#·‚þSú8S¬yä+…œŠOP”;.Žà,è! Cª ¬£wHÞ”Ô¦·Ç‘v&OuÆ;ñ!é¾SV¹7üdÐOºßLÙa#HÀ^4E«öEÁŽCJÉ×Uñ½×{ˆÜí‘;ç¹àÁNqfÔ{J$Ž¡ŽÚEØb†+HÄÈ,í9"{ˆ+Ì ‰!@ÈÓŸ5 À S ‡`›Ñ†ßG “ôbí\ÛóU#5¤C¾“ÿç^*Ôc”š‹n’Od&¯uÕ’ÖQK<3ž¹Þ>wH!~‘ç[Â,Ùà¢Ðž#un挾°9 g3‡"²ˆÅ~œxF˜:° ˆB²ª‘^é‚+ À€Kæ±ÙÖÈ™gÜrþ# ”±€šJÄüËLÞPö `ä×hï î¯RT‘ßuЍÑBC +¼ä‡†ç €vÔÎôýjϧãÞ•©¼öàà%¹'ðn§“T·¤S†;…o|sà'Oq"q¨¡ºŽ›ýÊMâ~—ý‰î$…+Šv-²l4úP¸‹âMSÖ-†ó¸ Ù !R¹§[ÊâÙk@HÕ×Ù ˜o\0Ã%ÐvþD„E$Œ|„tVÜ‹fg2üh¨ú«xÃù,É@š2—¨#s‰ª+’¦_|ì.—Ü*ÐÉÏSciφM0ŽU•íöÌg[úÙþÙa•£lþÖøwqª½NÇÄù4EÑüÐ>rŲAyT‘D;êw ¸C1oHÅȯ<€«K_ô`·þ#¶íMD—W$¸ÙÛæÙ¿Ö+a©4Güßuv;N[Q­%oœLë‘7€ØÝ0D_ôø¼ŠDêës/T9ä•^°4ã’z$L´¶à=Ú[Ê2â‹°42£!uv´\ÊÖX[t_WU¹ò~îgváІª±A ¼H×Î@Ê!«„&M–uð#zÕþ eXc Z sò"“µ.èQf)¬{­cíI‚µÿþYöoABÅ™c%©Û;þÌÞ ªÈþZ‡õr@oÜGÃ>46¬TÞzëyÕÛä=Ïdk©Ÿ¢ßO"1[†µPé(t½÷ †ÙǺùÔ8ƒY­Æ¡›L¼Õч@j® ÈO²¿•ŒâP?Ìù,ž‡º“ä‡Ú1‹B¬±±ÇÜQ_ÅV oÑ_2\¤ƒw¦C†Øð=Ÿ!‡ª"Ã’˜¡««o&‚^ù@9Û©Þh3ÔÇ•œp¥l‘W­"ÅI¨!&KþY-ï?ô*‘ûö +Ÿ)\à”Û|þê©l"R +ÒGnv!+ pˆ™öåAëÖP°+1Ê%C°¦“åÀˆ¦¨Û䫨g¶a÷*)ž1 àv!A¿_%èÉ0º"q®í¨ñ .ÏÓÃM˜›%Ôs´ëü8O}BÊ~ûÐIZ&‹×kBâj1œ3ëe5ösÁTŒß!¶sï ÚóêuhÞ(žî¹ÃàoèÛíy­à^ÑŽT>1'[v+À5byªNä`£ãÅÇßÑîxb-n”X‰Ðâß/*Ú÷ûÊRìÚXä(h/rÏ%¡ «v]¯“CñF— +´¶oA¢´»—hd]¦r[ì,¾Q¬ +°,Î2»ìaöØ×ÐB5Jl<Š'nÝþQÊ}éÈf‰ L ”3º½H ûu¢5xÈ»Ó0-4¢W¢áqlQ¼>ùæ³õ½lqöÚ&¯=ã8¦+pIÔ×S™0&<XAMi•0@@îÚó\5pÑF8s©vh½^ö#nðXƒÇ6­\¦u&ö&Þ†ãí·±)+Ž$ÐûÚí­â%(„š:{„ÅV¸pû@à€%DØòí»K5=…)«‹ÿIÁëõNÅå+»‡3#7ŠNbCÞÝ)P'­ŠÐ—A9¶ˆ7…÷WÑj µ2E‡Q+»”]tŽŸîÕU²?¯0•£§:W<ü©¦k‰Ø!쀶¥žåo¦ÀÀò†ƒÒ¼¬ÃÆg£¶èàFõ²:D…nÞaz±¡G¯Ù™ìL“¸qN ìYñW-Q~ž;^ŒÃ^Ø¡)1MòØ£Z§Ç§À¾Ã–5OAS %®VfäeÆ]3yG{«éˆ|¯X‹*e‘…h2G¹WÇbÌ3„L²!ªÑæä×QÑCúy=í”-ì{Èà¬ÔuxJð%xýöB¯°H1¬Â!èFsI pÕ€šO©õ…\ƒæËŠEªy:¸[䣅<ƒäª>/ÏĪ÷AîQs5ÕØ 6­Ocx‹ã%Òxíä.øá2ƒ¥á ÙPjWÓŽ‚.`°”a »uvª¦ÇMÞ“{¨RÄ~Žfo­‚Œûׄ2° +2ê4, Òµ$ëÞ„³Å‡B©8ŒFË©‚+6¾wO#‡¡ˆ½ûö)õaê/[çî‚å߹Gy½9\Iˆ4ÀÄÅ»ÎÅà9ˆngÆú1¶%#Šô¦tq×’OH| ·8‚•ôNÚÍ0èŠ3Ä1ø¢4rvXî –²×B|íüàx­P2H¤èˆiß”ôgãýßOð¢â؉TŒSRÐá;N..ä8ÝiNDA¯Àí×™Píšõ˜P@p–ø'µSÊ'Lp"ñû„>.G%ò +ïÄñ¯Fa7¬û-Ì>…G´òþ Ð“ª!™ý§³èãÅË[€ë¹ï1/ƒG&h"ϬšŸXÒE‡ÎpÉ {–I˜9"UE:“6pf4`FO1ɯ¸%3ƒY ŽŒ¨¢÷ý§qy]ÕS;äÃ׉¢yùIöó±_ÖHHÿÆ¢ÞÆxM†Ì¢”¯Ùúþ€|Á,õðŒäJ Öû8%`‚,‹šp4áÙùèë Sež`ý^¹ÍÀ$åi¿ ÈZ½pÖË¥`| øIc?ä<ÕrvÃ(YèvÄ\‚L(ˆ¨í(WÒÞ¬†w{  ­ƒ» †¤ÔOOƒ +uZá +)»Æ²ÿëg‹“MöY …ô1'j#ýA±Fšqí—ìÇßp,ƒ6xjì5Ÿ½%U.‰ŒÆŸ¢qLS:¬Ú¸`IÉOR ¾…«Aµ•¦$5ºê¡ÈY¬Ë`ˆŒF–TD2G«é·$'£þÂ’:±/ëÂ'ºžõ +ù<|c‡ƒ7S MqÀ6„½F™rÅBú#ÑK½`ð.–èÀ<­à ïàý·É.{Æ"²µ½ñSŠø)ªþ2LܨÒHú‡Œ2Ê„Îr†‹íøq1-óî9Ãù¹¸÷¥ñbÔdÄŒi¬sñÒƒÍÊ»úœÍ!8 ˜``È IN„ž^k~…dŠ÷.uP Ùç$ßî÷DbÉmùƒ.jsîµmÝ|üSN> ‹yR—x6ÔÒDÂîä ŸaÜöPB¥f7Ìsƒ•n>UŽ4boÄ¡2äRÒ€aFbaßrd×wpƒBxÖ<©K‰d€™§jàövàšf 3’‚t9fäW"„Ü9”5òïƒUÖL5ç»ÇÕgB|æ;С +ûÎ#2~nmõ@÷ÈÄ~ú±OÑAb¿¡ýµLR(¿51øt™|ö”ÉZ×(¿†¤˜9³‰|`?=‡ê¸…ôÀ+5FÙž¾kõZVÝw°ó–5dÜ?Nñ©½PÒ Éò8–œ§ÚMóìØ¸{DÂ7Ràšqgë–œ®÷Kt'Và‹´#§.«xÆ7í¤Ÿhoçx¼àcί 6¿Î‰²|i*¸vV6Õ¨&°ÞóÊNwô^¥z‡:gMɈeUS×–U¼°L^¯ûUUÜ{C†çV‘È$ˈÃ<2¢íDh{FnÉY!/Ý©ìg¡#{zòÁìÚá©ÉöÝa%xWÍæƒVæåÄLC/“Zä"‰ºR„QÀ— ¼Ì*À‚xÉFP¡ÂýK|Âk8¥àý•gÔ* ù2‘Á8066BêôKÞo9¢ˆõÉ{=Õ<©÷©ŸqRÄýø-ºZ/TÜrÿÆÄÎK¢bó_;Èü“@[€ISï(ºL‚ ʺP6|?½½ûMR–_”Ïû +êñ³øÄö«\¤ƒuKÄ.ã#Í;+YòzB $8Ø#ôÄR3©ª’TÀ~“v±?¼Ðä,Âa¨í’0Ù¯L0ð¯ÂëCì„Ä>‘Òß;õ¦4ú—íáàêp÷ö}š)WèôÂ’Ý·Wz$–G9ŒÓkje;k¾!z)‘AQ w„d üAð‰½J[ŠÎh~?{Ù%Ój9|á\½‹ +´_Ôg!!/Ž’·Õ&JÌ5‹S$ÇA +çÁ˪¦pF­oh¸Ì¿$x)6Æ–d©ü[?HÃmK5äñ«1LI‚ÔÁ²ÜpycÖzƇœâ•­@CõݲüþY$€˜¦1_½ŒKJ/ÌDòæ÷~b¡á–´Dn±š;âÏÙg‘e³|?cm"Æ’w„ê±þ!î›òõ;Ðt„³ÆÛìw–D¦†ñJ1êÔÿ<ÀGü¨=Àüfæ^o9ˆùF š2Ø—ëptù…­¸ˆ.qÿGœuù|ež'¶"8Øb6Ž>áÛ*¯;NܯIËEUŽJ¡¾-†­ˆ5P×~E|ÚöK™$Y™µ¤£]Xz ¬ÔSñqŒR*{-Hàô'àâKÐ&¹ûÒ“&¼é€ß1>E}t!ѺÖb2_rúÚE{"È%‡Onïѧ8Z;ïö„¨áæ¡ì´K»îÇÞ,ð¯ +C¢mé%w©ÏýÚð°XÐ~I féђƺòTŸÅóï¤Ìf#3ô9=_q^Xç+w{ßJˆqïU¹†Ý„ôz)³ìаkÏuÊfr”%:\úts¦?âËÌL®éþUû™ñ¤ö˜¶)L°¢ ‰ÎªT÷±˜úoý—Ïä7-¿\¹ +ÀœàR]± âï—¬·&D~$åý‰¦â¦,Zÿ.ßÔ-¼:R áOë„ì{5qÒ¤SŒ(Â÷›iK[äDÂþR—gdvýÁ°]Ò‡4©×-ó»C^­_8â`¥Y£x‘ð¶b€uY¾ÁP°j +»P÷ºÅO•Š„‰ëMi´?[‘}}sÂÃ.—ð° ¸B ÈÞW£)öâiáD°f¡{zäk6Ç»£h}F~ `ô†™C\lrHU”>öƒ}Rˆ½º°ÂL¢©[Â." I›æÁ^µ,fŠŒ·çÛOƒur÷ÎX"UÅÎ! ¨U<Ðèë†Âãèuå#„s›™Ñ”]¤‘qÌÍŽãÇá””@Gî+0-‚Œ0ØÂÀÎrœšS%C"©b’iüÔ½}}Ž’X`uÊžêÖáÏ|ÙKÓªÛ–|uhfðó¹0ÄËhÚß\êØÙC Y$’ÚÇñI&ì^ãÀ#–¦eo{ŸsüGȨÇ=P>ÅÇŽb/èÐCÐÄ=Ñ€°jdvÀn,C>¾Kâ1¨Ø!JS±¨­ðܤY ôõôä'a1ǰrµc½¥çL¬ÛØ”ôä³ï+dÈÝ8JÔ#eR¢Oû&ù¢Eqì„Ñ’M«1öë+<êH àTSznTk¯TÓž ô#c o¸FTlù?Hç,ÆËÄO,¦"ïCz +1œ©u]Jo±'z‹ÔIîòG/*Üôr¶K#ÌD\}FI¦tÊgÀFôpN Ò³=ª ðÕg +ÌiUóž(ð€:GEõÀ0zw*lê‹ûÈáX*0Ò#Xt‡D/¶¯)üˆTÁ rq&NȺª°S…>ä~5c¨}ï«BðDïp¬;Ž[gûöQ˜‰Äª8tÎQsMý¬5Þ è¡²îŽ€ Ü^Eì¹e}‚iì|Ž«i +øž=E׳LNô)gF0ÃRj‹(w5e +¤Qkðœk¬„MîÇ´10¬Y®踊œX ¦~¤-MùÃq›âÝ^7”5Jø“#ï¯ ?Ht°@‹ˆ m…(þyé¿1ú³ü;PÁ.”ätA "ØáâFt‘™åw`ÿ´a-1hwÝÊ#ɧ»-‡“Ä€ýà·’gâðKñu¬ „­Î8”i¿·ÎknxF]ÕêZÒwÀ5•À¸ô8S¡BM2ÕKcr¥ˆNÂÂúñ8½½C„©xŒv:$VÕ>ìJ…4vtYÝrˆÃ¡ÅÂt“Xêé‘‹P΢«ônÏ ØCD–äÖ1Œ9ÞPË_G†|„­jȱ$ZWiáBŠÐ)fÉæPùbMû“ŽùëLâ%¨ZI2, 25¹pmw þ0ie2 èHåVÛ[TÛŸX¡öRMå¿B›<0²u¸‚ñ».Ã¥Mõ¶‹Ù…¥L8E{ì‡%ušQqË|„ž)";’•¯6tÈôX+PÝØ›P£~;Òê^î±€Uöt ¶e Ö¬Ò/èÇÒä‘{Øë˺œ4FD˜¡“C÷6êÀÂæšÏÔ…³1×ÂU˜ç¶Bý&Þ¬n˜dx ý8/úsôÕö‚‚è¥P-+׸þM‘|!X7ÀÙ6kø3(y‹6œmRˆ.º{À¤Cu}ºq âó‡³é×ݤ‘bX-´Šcþ@qåœ N¼çquOè!÷ÿßïN`=|÷êã(§£ŠFB½A¾«ñ¹>ÃîÑLq—¨AÙÐdi¾æAr¢„MŒaÀ^§5VH^æ…ЫV|¾…}øguÄ{ @)$‹˜ÜÁ;m0—P)ßáU­+n¯®õh®ksLîl¦GÅ_k°•î ÷Åråµé[¼Céy•f‹)8Äy„ŽE,TQ.Xê +…âĦPе­àOsiÛᣞ“ô>?äk=£>õ( ÉŒ6t‘ÿîß~Z¹6<TÁS© 2ŠêÕ£¤f}ãÀêRÞŽúb@­wg¯d +?`¯3WU ¬톨ýŒ(ºjí Ì|«T¨Š0‚¡e3ḛY¶‡Á‰%êùáZ‚¶ æß@+cßÒBDÎ$¾ öÕ’ñb—vHµ32 a'™ÏúzÌšS˜5ï×n{*Án) +Î +‰MgªÙcŸÄ¾0Ñ/Hä³D(^Š¢úPØÎ̘ðáý«MÃC°R%Çv ù:¯t +G~Ȩ:WG1ÇjšQâ]tœVS¶~âÑGU턬xàúÈî)Œ\ÌRR5TS– P…R(/¬W&¢¥Pî ­6yšÏVý´•ö%Y’w%ø× |$–r.ë[>åšY£ø–W”IA<5”«ü1ðYÜV4çµË£ôȹEÝásñý·,ìÿ»¿j:ó¯<Я¸¹Äÿ¾poYø.Èêj^‚BfP‡î²š×t÷ZfT?÷:-„2Q¿;™ü8µX wÈÌBødÜ.óXÁá$ %ψ¢§µ…¢áI5RæqZ`’ c†Žt{±@[_{`Ì–Š[{1nµҵ¡YW3ô– ^M¨0( +]§[ÛòTߨîQ OʦæÿÆ^Ctj͇±B—ÝÏŸ›]! ~x ! †>ÿb˦±0‹» ºÈìðÇâ¯N´1ß–Ø¢€ËäØ3jŠÌ¤5Vò½g ’ztƒ!ÆI¢ÄÁ~aïáÀåÑŠpe€ü=[¢T%Ò‚ã¢íe 36Ù<&Â3- Ô 1IF¤ †ÿ¼dQXúl–Œûœ’†êyÒ }FÚ2 ºƒ"±Q ҹţŵÑPáÀÀ£+ +$ªJÌibŽÆ”ÊÏï [°Ñ¦èÓ + ‚I¥Ò—B¡S!ÜG1˜{Ál£Èz<Š2â¸Ô”ŒÆb‚ +¦àø!ˆüÖä¼5æX +„f|Ø+¨Rˆ¤æSÔjc Ût„óy\ÅߦßZé½ßÉA/Å“òŠÃ¤øÂ|!¬¨b_=^Ú`òí6òÒ*ÿR³¨’^;¬¨ñÓ`ˆ¾ö;§¬ù ÜC£ ”Ýø”8•"Y¶.Y T­)Ãï%¸iÅ$G¹ºIE·Â$`îõäkŒxºÊã`…Þ?O¶oõx÷AP™…!lÙx´¨T° Wèîóú¨€‘Å%´fõ)7R6o ¿xúŸ;ˆbSÀìœöBŒå(ªMíöM¯•ÓÞõ ÇI†íu Õ,ú)Þ~@Q#×$ˆ(0LIBZ€€©# @JÂ/Žz}€ ¨5—j<|Zze­¬t Ûš$³ gs$–‚ej¢>ÔôŒ.0þtŽ‘œLõ-¶Ó ´Ž>Ù |ÎÞ¼BtÐBɇޓ8&e„r 8€¾£ÈLÐû¹G„§ýT2à»[üøÔKª³T´µÀ* 0‚Ðÿ€º!ãq(ey(êöKÜpjÿP–øE¯vÈ™š;ëÐN_ÒvUø ¥æÞ=ØQz¿tí‘Yƒz©< Îç•$ê'É@þ‹t”z<ʼõèØt3q¢¬6Ýø¨?ƒR VJõ{áx6”»88’"ƒÕ£«*²ìh öPÔ }V·#ãúó¢Ò£ªß…µ.I;!#ìzag…¥3LA\ØI•?*ö4t!¾ýzŒô[n+Úåì~vç–¡Džl¹‚ +hC¯ l?Œ–ò©Y Jfœµ*3gÖa³#mÿÉ|N#+(‚¸'‘T +•ÃR+­;CÖ Ä7æÅ@èÚRâö0ÿsKå°É»®ïŠDDÁŸÝ†ýÍòBñ«ièF¸H_áf@œA}È—M;‚_½_Ù³&ꇚFKÀX÷DuK¥„UΞb  ½‰¯,þ˜UM‹+Bm…¯o?AÒô Ü_+Ná>¨Å<§aω‘ž¯ƒ Úrwç ¦«¼~«x.A +2žåÜ€¸ž›N –Ât`¨ÖZ_™ ‰*˜ŠÙcþŠŒÑGC¹ëÿ·ÎFÑ|ìæK8|°q:&Ø,#ý›$ZäºýË"çyÛezr‡h°WÔç9.Ìjë–£­;ËKåßP?]Øé•""„̹[BSì’r”çó¥9]Ýýû¦aKË‚¨Ð² ãÈ”Þ÷ùHBa³‚¾¤ßó5eM¤¹Ç +ðÙµë«ù%1‰K œÑðŸÒ¿´á5¡ÉšFôlV;ò¤BµØûì´Ô{ +2 áúºc¢ò©cÄÃ… ë¾ÄÞª¨ñJd2T#`V6ucmˆ¡îJÿ¢ÁMnü &ÁCãð6צ¹+9è¥(4ÐÝïúGs{_ÚQÿh¤î®qnÍ$ €nÄ|8攉äÓ{ƒ¿‘­nýâ[¸ž]À>j$^!]—çÁ~_b¡œ5qÛL諃¸Ã‰ªíD;òŒÁ½`çš4äÐqå­áà‚D ½m?÷"…¤z¤Ì0A§°±|ÑN¬lAš ÚÛÏFeŸj­òÊ€×q mŠ€$[†® ÜÍžùK î‚z?7xOk¿j a“ç,š-Å¢.²ýø¥«ú‰ÃÃUCÇNvö ”0R›ÁÀ ˜¢ípÇ®S)”0Kn!¢îgz…h9NAÌÍ)Jñ[Ík‚ík¾fÉvâ áÈÞŽnõ²îÁ°7Ïë°¢åâ56‚ŠŒLJl¨ÏuÌÙPNÃÙX÷ãûòÖØë/†ŽW|Gå“ÂGC Ð^x^1Æ«9›Õj6ýî®{Û·+ìíBDþ%ûÆ® ] k®×¹ˆFõ‘²"¯·‚«ˆ@õð*"daÓÝHcvó>ë.Ô–§´>20Ûãp(:ì¸Cu aÞ°Þãîݻުԃ/r·Éû`Ž•×fXª¦ÖûÛú]|?ò\…Ï!¸ÝF%QzH¢¬e:±ˆOú¬F‹Á˜Ð¯Äl…ý«…;l)P¦<ï>j¹ú‡¶y¬ËöæI‘ªž±M›#xœ¾Ñ¾Q y(…?é$…@ýïGÞX\À§†ßßl<˜|v'šÝî¡ è>¸|("Êr¦‘ø(S'¦Ï=¾š¶ß{Aê„:¹'É¢c9ꟻWõüÆ£‰5µÁshƒËWʇž´c¨†ß9<Õãðôˆ±G•Ž|·@!¯ˆ'ìpö¢ÚÌâWÀ‘b‰Œrˆê¨Á=“Ý]ì-Ó1âhFC(.Ï@ªÅ•ÙüÖðÏgï»õµWíü|ñõ¡š a{1©§Ä‘%CbãÁ“Œ,4…¼`)IXÛ‹O¾"X5,tì”o'6žtóF„©óô˜ÑC…{ÌÓÃÜE ù{Œ{¦c[·{©)+g*É™¢¼bÞÀä-ÉfGT»v?;¾–†²; +¢öм~|çÑ}„¾’M-$m6ïd¥N°ØÁjÏÚC3—L _ä}ÕC½n`+­ÆŒ¦'¸â¼0Nµ7…á˜&È)¤ŒÀwKCVå±üBeN)nÃ{2‰îä¹íõ n _”0ÕÖ:õ)·eÕHŠ"àvõV* ¾½q,2xßz@_‘ÁÅtô‚·Õ£H/ìÒÌ›± PBÒ€Ry=Â-ò,û[Àë€ïŸœU°¾Id„wì¡Sv“@¢2déf!íì£ÄýxQ£EU¢ˆMî¾Âiu´ë6 ¢ºÒWAvt¼®í|&AY; dG8Å: V¾àîáB=ƒo2w‡¸û'áørw°ºÇ +T¸ƒ ÝáD»úõP‹ž¸Ó©o1C‘^Fêþ$OÕ•¿b»1|‚öøfco5 +Y»a}Hó Ö»åáqžË¶·±kZ:%™py¯û(;:zY +{^ÍMpØÍ6ˆXº·,lv÷6i±yÜCÍL=æeÌl³»R܆À32-MBõ—RÄÛ·$§Àœ¸õ2¥H†AÕ|N^#™éΪ½Çç8¬‡*¼wNÁæŠïÀÆ_áÊä+iT:_챕ó{Ô:s½¹ÉOë <ËH ˜'‰ K(uŸ‡{ê"_—ÊÉ>½RT#y}+Ì| VÊ<ÅêOŸ_ °×Cý¾m†¬CÖq\.ãfZªEK±s Ä=áúèöqÿt ƒH¸w©jÙêÅ….ì•eD­ØÍ>AN¸`#>rYÞ½÷Œ¶q A =¢ãßT«ÿO¸0â v¯ÄrTIJ¹úiVKX³÷N}§¨¡£Â7ë>iäw¤w3þpí½GܶY¼}aRðu$~ñDUõ ‹Qò¼÷ðqÜã~n˜Æ¹¬—5B”E³&R5tW^þÛ-ÊâOèWcô ›Œ¤Öñ[àãɇJ˜üñH ~f¿+FZn¢'GFlémUB©WP~NØJ3g~N‹½õ¸þé¢ÙéÌãJM†Ì ;ÔûÐIR#¾›¦Z§Òçì÷8ó°7|­§ÖIhynCGÑI$Ó°e•wúŠº¡ Àý¹>*5`‰÷`NôCÊT¹ay/…Dðþ +%eAXe‘5@2»¡’ãDݧ_]ÀçÆÅj¸[4ðaÅ/.îy]Á¯ðþ+ÿÞÃeÿ˜±ÿYñ£¾à?5æïQôqD¤ë[!Ò®‚=ø%dHh]LMÑñ[/zøÑ¦‘ŒUQ { @=ºº¿˜ í·¢…ž±¬³÷€ƒ€²$©ÿÈ­ìÜv\h¯9òŽ„+:¬Y[íõ *¾‡xMšÖì™ ë£X¾öf]CH:!$^ÁŒainÚ‰e…rð&͘RÒ¡ŒèA Î!JУ<çð ƒã£&ã»4´ÉÔY|i qPz€qß=œkšÎ$SÌ&ÓWô€HuVóV‚œ‹· +™ñ}N¶· À¬{·ãؽDXµê8ò£ 4)n{µP1¨¬SÛoòC!Å7<_ëÀ|æZÒ>V JKÓf¿ë7ûy@+Åw¾òèÑ7EX‘Tò¸;"¬ù°žÉ‰¬¯0 `qÀB¡»ã¤ð+ÌPèb`…HMò$(ü¶ðÀÙË»“% HÂ{×TKúuÞñO:zí]_¡aôÂå†];ǧa¡ÇÄ׋ A¼n@8ª=Gî'%ôžF½TÉ£—@?¶”ì +äÇõáa€YÓr7És¯ÚÊîsÄg¶£œ]²Íé´ã芈. ‘Lí#qÃA@B +Ð4jŽ]í> £€j1«*V¶ëk[{ó-Üû½Æ´þú) +Nˆ™#hQYuIÛí¨@Ëœ÷…ßÏ”΋üE¯.¦„ j*Àj¾#¾Œ0IÎû½&£Pûû\>5Ä ÚW¾ø4Œ¶ýW%]¦ÐKXØPÜMÔNh¢³;C†„4+,§tクÍ`ôPߥ—°…,«Æq8ÐpGEm…P^^KŠ|BoPŠ(ìu½d ‘P€õI/‹¢f\p£|¤ÕYŽvôÕ$LMÛ{Å}œ©›B”ìòÓnÑšû²' Nμ¢O¾<Øjþ˜ìÖ«zçH ³¦»¿ü¢GÛâ=’Ë• ï…&µ çÉððÄ®¡­ßù@m£Çƒ¼YUä 1|öÄhùÔ!ÆX 7Ùý&e·£î0²ž05Ëcô 'ðÕðÕн zÏïÍ%áèÜù±ÃXóR¾è}¢òŠ”@ôØËÅ1E­”n[¬9YÔƒFÜQSX™j•}Ç"pMµhg/‘zbv¬„z|üZf µbÕ¥Hñ`*R›ži‹T2í=ر»9˳{e$hJ@Ùíµ2ó8ìǘEKììUŽŸÍcu{`>@½}‹kÙûÓM³v@…¤'‘u§«˜¶¨E†áø P°ÇXŸ‹9þc˜ªã¶ÇQX„¥Y«éŸ{x¦%º‘+Uï/ŽÓ”ËÙkóÃÞ Á9ëè^ÌRD)yé$h”’Œtr;{Õ"peR¿5ÚÁ!h•tzð[…¶@f3bbÊ bBè×#¯#w­QØ—½t×f= U¿_¿ýê“n©¡¤D 3]SYsjØ%ìxQ‚n¤„s¯.ˆFòö µ‰!–Nöæ i§#ì,F¶íѶ¬b[G]}ï(ÄÛc™{Ƽ­Ú =28#zgУB¤ÇD¹]urkm ‡#½H3ÙKÉÖÝkeű{ëœ)£z=¨ÒÑc¿\öØïâXBj¼+:ëîkI×(sO ÎëðÖ*Å çdõ%dÒÇÁ'VVIÈßÀ%(‚Fj˜O K.œ™'„­˜Á÷p9ð¦{ضƒC!äÑ&÷ Ò~Cº[šÙTqUÖ·$á.»‡J2ÈM­ldUëݲó~öY÷*½Ô™ÏQÀ.{Ð4à9KfŽLç=,*&ä 0ÂÓ}TH÷x/FÅ})âê[`å,Þ=ìd¦ +žé¼.Ô¾ïI(1±o߃/’÷,S:”Š2”¥Š ûB¤ÿ‰$4èÁskJÜ’›Ø!f#ž©A\Û³/ØÛ°ã-€œÇõ±U0ÙÞ<*%¶Ã3¼‹ù‚lSÉÿ­GÑ傉µö=Ó[¯'”Ä(ÓÎóPáÖÈž,Ò—²ºçèš™Ùaú¿ˆ¦•÷‘M¡b¤ÈµáöÅqÀ8™ì)L2ÈÊ•¸«dºÞ;èÈ…¼*ÙSöü¢ßᄘ~W•œýP÷­DY†œ¢!ÕÚ³¢K߈ÛòÉÖ·bévSÎ1Ýq°-quK§%¼ht*þ¢¿QÂ*G”O»¥_ ˆîn¤k7°×VYA–áp·å*Ç:uª<,ü mAG,±ÉÀhŸqi€¾úøD‚Nµ4±ˆÿÖ•ÜÙÓä^íõp¦‡DœÝãÚŽÐ)³+Ý–HJ×W`û:÷èéîñe/ûĉÂÁ7MÒ’»Çˆm‰Êˆ5xøAËKZ#œ3g¹Ç‡¾Ñãc‡=PÍNq™;˜S—¹ÂHÓpó‰QqŒ+¯ iWd-qH=µ£Ÿ¢Ér+ø•tÄDø«ó1)_YÊ[RÅ ‘Œƒ %¯Ûd$]`•Ö·¿Nù*B5£|è (œs‚ò؃Ue¼K%´c¡ñ±B>u]F`ÕH“NK¹¬˜‡º¯”`= váô°–l'VZ¦(;°§ÃG‚Y Ù¯ýã<)_·ónçsÆ·÷3òÛà÷]±z\@÷éïà¿\s2Yƒ¢×²t†…lûX¿ÑUÅÃbâ~L+”w›q‰þœ-öö_ôPZq¾žÄ/¡^"LZψښ̈a0$„ò•PŽà’¾uŒÊ|5v$ãsÏãîY±}Õ«Þ“´{Ä®)M¥Án»‡Náô0EÖ¥žßA“u¼û›°èbìï¶¿ó )Á=Ÿ˜ùèÔb 4ÞL‡#˜†ä¾{žÁ¶oÕy× H~Ù!ÎÃv¥~ñeâ2¶úì…Z„çlè)UP\úªÇ1Ú¯÷¥¦¾wB™JfäÿùL»R +͵øut“E~IéøÌÔ×ÌvpkÕ—kôdÓx-2Ô/za®â¤s?Ù‚ªíø4ü–"9Á9‰#,{Àj°Ç53íúQ0Kêøv¤Òy$H +â$Û+Á;ê:-–\f/JÊJl 5•¢`Z$ÁøŸ{Ä"¶,ÿÉì·êËã<çmÊÌh5\°—ÒÓS»÷+ž©â£õ½~êÕŽhSmú UQÿ]ì]!ŸÞ +fla×íOÚ +1_}üÑ»ƒÒôøçr×åv#7$]O/"–Ž“)úrÀ¾@zìMÕ=íß« ZÚãy)x¿›¹××qcI(옺¼¢È¾•I|ÇÅQƒ3«/¶f¤‡P/áîzmÞ„C°F2..õã@JnJ`p‘9ÿ#ù‰ý#@³¶pìœRdÑe^JF±õù¢ +dUÕlÊÍ7Î|ë•õ¥:±£D@$:„/ †n‰(°îŸ‚+X~5¼ðÑÀ…é×·ªr¸$³Á\–j¸ Hî Üaádãq©V™f-ˆz¸lU½ÌE`@J÷tr+8ybÛʺš¤¥s2n5€ls­} •¶§µI¯ÖñÞã÷·¤FMsBš›Ï{/ÒëÔ£÷k¯/#&ë^dÕÕõ~ëñÅÚøÞ ¸ Ê ÷†I,5÷VcϽ=¤jû ÊdƒDEù6Z—"&‚HoíQr4{$$* +HiÂĹ·GïIµ6õ]È%dªÿ*ÍâúMyÏ—o YVò‚‹]«²ü—}­àFPïÞ=«ìŸ ’A§f­ÙŒÎg{5ü³I¤s8‹â ¨}¿¥S + ûκ÷„%Èž&yä±À«°5ËÂiÁ\Ýœ,b4*¹j£‚Ëa%=H”уío½“:€ôz{´èaâÕI +w÷LlÝéµ£VãN¤Uþ‰ãÔOôÊí²‡#f¿kM³m”çº)¹=ʳ=4Bi˜*”›ÚÛóôoj à赑ƒ.jÐc˜ì„ ÃÝ‹¿8®¶¿Çy ªô¥¥Ü’NÑÏ65Ež'»ŸÁj×ÐΜ¾º,RÒ¦zЃM¶:S÷ÛOŒ –oTHù<˜¤ÂYil|uÕ4¬$CyuÙÚ˜¬&" +JzdÄ2díÃ?wXaJ à²„Þ:AGÜÛ0+Œž@râ¿ÜFŒ(s”ZuE̺›05k¨ÔŽ0ñ÷ÔvJ8Ç­@x¢ý +M÷3¶…¢OBdœY H£îMS¬P^7A4ã7I œM½,!î^ì<½hÁL¢’A¸ãôȬ öt¸W¾iœZ8ó›@œI*oßl¯3u˱Špäs=Ù¯»·Á¨„øfßLÝÞýÃ0ôA» B¤÷¼üw*žÂ}ØW‘¦^®–;¼A™L?_²Z¥W¬ÝC5{ìJ>Ò&šœì½@•F#mòÏžà‰4(4󯏠ֽo=ØV~k=4f÷ȧ½…åy-é´c;1裱ˆüĉ°õåD äé&ÃK#ñµºùE²Vb»õzŠ‹™ñá—èL²ït¾µc±Ø½š&šß5àcÀO®{a›Y{%íDë1džćœ¡&}‡†RñžM7DJ>‰a|ÿÖxôBn„M¾øÒÜÏù?‚=¬¿çy¹msFv¨¸0Ö'ÈdZä8úÛõEOECm‘­Όʺîüê^‘ö?YÏž÷ã$>Võîç +$ $-ª¦ï±AO-‘,n£ã½Æ +K*&efD€¿4†5 Û½Ÿ?›: ò4c +ÍäâçÇ]ß7ƒ^,‘t².ƒd*ÂÞ^huz°^º$U{`hÄÕ!Jô õ·{°Èï ÔÐÛW¡µ¾ÎdâˆI3?NzÊ +%$\j&˜Gˆ¦Œâ–iÑÄÈf˜Fнs}ïÓÂç°íí0„–€&Á¥P¼yÃÓñà­‡C ÅÈ÷ý}ëµ"d5éÓû¹Þy®wÇøïÅ)S &¶£G"Øgè÷¿?@8Ë.î=uø·ã‹Ä7á¾ÓCÚ½CjhâÈ’È”‰:1†AÀy¬Ïx\êÎS2Œ€¨iJ‡²á<ùðÞ"Þ¾ê1hö H4Qý½ò}ƒ°o¦€èÿÀÙ³›¢ëvfŸl‚€„?íÎв…\òì…Îm`F¬ÝURµÔ‹ëTô7 +9¿Õè‘y¦Ê8U{8i W?Ϋ%âZ5z=„’¥†¨=˜a2€ñ̲b÷䙨Us-lÑì±B8]—€}Ûš±jè£T¤ ¡sìè*»©™‘Ð_ÈU–&2L?º±ÛªòçEâç=ÞŸôÖ«åP¥ŠÀf9ãRÈöû~?vÞT2Äwd¹Ío=~¢&ünÝ í)ò‹ãkI,jñ TV,k#9¿è±Ã‹“Ùü¢-![h%@}rb–i°Þ¼ÍßV&õ”ez¿½uxM(0V„ 8Ÿu <ç’Ê^ã"I¢í™– ©´v}M§¤¸×-îu½UvøiSßÓÆ¾™NºØc±ëÆŽdjé Gƒál„'2°‘JPíAèJ©Å÷D1cŸªpQ³‡9L‡¹†„ýSïS'ŸI‡É|"Šó Äi¢†Ë!ÚI·~—e–w§Æ¡BªˆfáGT {{³/ô&¶®{Uk_ô@>Ô»B÷(¿÷Êà$:BÚ¹ˆ’n5öÐr)qÀõ!µ¹ß«˜QôˆhÐ#¶Äç1êšSÌ~Ú©_æUä=¦©…OÙ¿e°ÈÐî»È$"-ñæ’3;»eêÂóö|…è6ô• ì=<%“–/àû(fŸ’EÝŠ2¿‚¢ôdËEŸœßæ‘gŠ…`îÅWpD¦L Ú9ݘ& +]­oòT{ŒcÞöÖ! OÍé Tà“(Ù©>Gl,=Ì •AØÄyï0ö]v4u¥OÞ{ ÙEŠÌ£¡R û¡­ì×·ó 01O…|/?• ~Ð~rÑ#¿0uä¾àX1`Öi”;C ±Äýˆ‘€ÎÝáD‰Þ=Ðw°Cä=DAîbÏ´^'šŽ +¨ï^g šØŒ,¼>©%(‘Í­#:d)P&Þ£{رt·©ŠUY…ñ"yðÐ;»Øl ˜>×Å¥_î`?p7eÌú{¯¿;—7c÷Z‡\wJÁy¶×ÔQ‘µ÷â¼ÌøŒPÉÉû…EBê‹50H{É„nð‘‚úE/“•ÔÎÁY8&Ù£Ö ï˜VZeb%`wGÐb¢$ýE»?ƒˆGÊ”ªíÇY‡=ºç¨Ú]„È5!ä• Â[Ï sDµŸ{¡W"³a)BpØLiSäpÊjd@1é;†=/ +àL £ˆek@K&E‹6mE¤G‘ü³PÑ(œ€ à!‘h“ªP#D7iyš‚°á½Â;ü8Z’€F !'9}v(‹>а{€F¼Ïêiê(PØBè¿gæ¿?Um´Ò"n|"õ4ØTsÁ¬tÈ^Äõ@.¡ ³2Ð0l9úºÈ•þ<Ê(-ú'zûöñ1#ž&\1š×âqL¾òÞƒ•W¹}øÃ†邏À¾~e_‰‘}2]`,\P䥕‚ÀK#.Võ”º&¨uJt^R +Á€îãWwêZðqÒŠÂÒ+.ñw±2ñßùèúù/Xç +ÂòVAgdJ² +ß™0Ãé‡Ët@Af9Ÿ3̃Hò»‘â8dø©‰µ¡‡Ä'bGOŠÅ6 áö 'º{Ô»}xæA¹ÙAäH.öe œü‹p°nî/Øn<®ûZäÃ0G«Š±Šº²¯XjŽ‹ô€e^«ÏìåĶ÷Ž{íïFh2ý5¢Pw­(6Ò£éÀ³ŸçLhhƾ6}œ©>ÖtÐu<½‚[/7Žƒ[ =ª£J“ñaC§lLƒÓ§§iÿR>çè>!¨²·CSf;¯ÅtȈ;v ÈAé– H1vð˜^‹. 6&+ju™hÇÐPÌ^3ÄWìïŸ0€]7áËx€ŒÁ;ÚƒˆÜ; +{úùt”2 ^;‚%FXÛšDF8 ­!yÊXU°J ÄFXDצô½ÔhŸŠ$Û—ˆr…Ü€ ­rã¼1'ù¦ûRãÆì=˜ÜZtÃ~¬_÷ê‘úÅ€U›TNÉÃÒ°1têGY +88²¦¸,3O@ú™¢«kÑìÄ¢õˆuK?=€s‚` ¿ÝÙ4}WÛqçË€’]å@žf –ƒðœªÓSn3óœÈÒíã4лËR?½dH«:ìDfN¤:œ¾á`(^Ó®= +k!Îèð<†¡'ò§îþý +°Ã"8.˜ë\Ú ÍŸáqu¾”=:u’ú‰·žê©ºÀèN+M#Ø@—óg’KZÉ}”h$A†Ì‡ñ™BÂÕñêlxºGãΟ-PKÓž)4]Ë-å=S¬†ûñV1ɧÙPG˜çLŽÄ ¾ÚCžl“bgqA ¦¦sÏ»ñg@[ú²“œàu-HJÁ;\ObfŠUΜÂ}«Žø](ü©.-cäw·…t<é–ä+X…V…kŽ`Z8 ãë öÔ’IË27E‰‚Bl÷¼S³:ÛŽR‘~‹N¬¿ü$¼çx_5ö ÄæÍ¥Gqj X(p!¨¼i/w†$ü‘ó¦×šqÍíØÅ +ÄS —_Â^³ÚAöîÐ@óz| +«\Q7=´qj$Z.¢Ž —iã½-O1ÁËq_+¦.)Ð;që^ËBi¨%¤úí×_ÃW’Ìø2S˜ª»3XRÙ‰‘QúÓéEÆŸ^zI/Ôáç+LÐ=Î@öÑãÞ=бhz8SZ™1¨N@»ôí礔ˆ3VÔ¯©øÒ‹´D< Ç‘ÈFÈA  + ¢^®…­uÜÀ˜/öÑD™Ø™ý@ ¤HZŽ* šµ¥f´7–b°8Ç¦2À +ŠP–zu¾ÊtÕBaÒ=MHJaŽôDÂÙtè¶ÄÜKhD\ÂyHáíEº›ønAë^¸¯¸4»N ¼ÖA B/2}I½¯îqˆÁéñ€;¤G¨&‰"ö`¤‡ÆˆôðuI‡ºñ:ÓÞÀÙ‹´½Ø~:Œ[3ë$~LÐäø%;r ާm‹3~¯üÁ³N„-ö­Â°9hTc²ÃZ%*U‡ÎCÔ/ñ”“RlpZ‚$…©M À”õÛ¥ÁAE¤®WET!å‚Q*©Š¦³IŸÄíÙÁY|>÷Lû~s‚d£6)hçÀå¸HílÒBHDáCC¡€( œ†ø&òK”àÙÇfÕ‡ÐVz¡˜Ü£Æîɲ÷¤®ç­‰D)~”ÏéíÃ9ê'Ô?‰ ÜM/>¼{,Ž>ªô7ž=7¾˜”Ã3¶žò\33pì·» +pƒT•=.ì·“â3ã…FJÌ`B´pÆÖ˜y­1a{(˜'U§ù@ +x^^\Î;ÏËJpîêb"Ñ©¢¼Ã¶`53æu‡¶‹´›BYÉ¢ŠEGácQñ«Úl_T ©·fKBŠL ÒP8K «2Š#é ÈU'ñ rΤÚ2é|8+=pñH£¬! 3¸ÆUÐ2©W*’ÐFÙÛ¡WQý"d·TœÂ‡˜|¹%ܽÞŽz5ƒ×a÷ð¯"IøGËœ¢¦1XÖiÉŽÊwЏE’hï,ÒÅì3D6¤›Q®$ÒT•yÔ k­98ÏR@ijï¿GUKgFü¸êh/:þÚ@V<9´¢(sû À‚µ×èÛ=Þç P¤’o¤Î• †EDùèœÊZö˜¹+K—ŽÕLÒþ'c!’¹!„”p9ÛI@-ÝË"à'‘þ[J8Pb°eõ.y=kÑ({ôP—“uŽç8#0<̶ÌîÁç Ògtèç7eÒd$î"„ËPù,GƒÀ<.#`ߪh€Z Œ~æèŽ+=Xþ㸑Â?—ïT.x¹jõæFŒí):üuÅIdï<ÚgU0]~5¦ù-75ìí‰p™.B/ù9Iy”…ÆŽXŒ pëˆ%´¢)†>^ØA¨0=Õtgð£í—%ö³GG1& Jj!E݆cD S9½´&w/¼Ó°ÀBZ‰^ÁOÀ¬@„ç®–eCr^>¼k2rÌÅS+!zì!ÉÊ'ؤ\=‘ùˆ>¢W¥ º_Ûƒ/Å™ªéÁHŒkáUÜWœBžó1©j!bÆÇK!‰–άRqY2{e!®Xסob*‹SvßñIÓ6} ¯l¤A`’ÛGËG5jÁƒlÆ)Ü"2·7¼d^†’«ÒÉøÁžWÔ‡<´sBÏÐW,ˆ³ƒM˾ݯ}‘ÉfüCôHͯÝË= ½TnX3BbœWɤûîª+&fÁ@ +¨d%áC+œÛ„÷HÖB~ø26Iüëw:Ê +Oñ€i’ë`*µ· #ƒÞiÔ^×,õ1D(GÞ«RR2¸šB,¡{«%8‹œdò`öèÅÊê e–ÁùIzóÔ ";‘'Æþ4RÏ%*ñÒ +Q(=f]o¸›—Þĺ!ä äßnˆ÷È >uÀ1apµÊ=9Iê¤Ì›5R±1öä¤TeÕÌa‚L.Uh®1ÞcÒ-.Áý¯qÙ5{ÔZ™xzÎ7§d™ÉëöŽé;‡¤`“—¥N—ºÑJ”Èô¹q"¢#‡¿úH¼>qäRrVÝ‘c©ö+Àv(CÏtLó )É0²Xð‚&$ñŽôÝ)íW,dzç1z¹jY`a[˜‰½Oå€ê +É› +ã„3¥q@Ó™iž0K; +éÓ:B út‚ÿþ õÊ&‚7­­Ð#ˆâ~À ŠÊNLŽû–Mƒ¨’£2×àÕ;Š{ì*¥–(ùõA(ÄÝõh}Â$€\¡â>ØËù²e" è àé›ò±õ ¿™ã.MO`c=$HåñȦº?!‹Em ÷çl]áQ4ª£{Ž*/” ë¸/Ñ,’n@³Ü(Xϋ՗i´÷¨P–¼mÆŸógÀ¦«ùm¶aceyıò‡Ìƒ¼ç¡da›|ñ]eâ«S»N ªZ‡%€uîÏX:’k¥m#;>r02„ó‘ÓíCj|]‘ôúôô™‹.6× +š'¸%z„<Åž‰ú)‘ÑKÒÖ‘Gü+f¬Î ½S pèðˆ£§‡Rhx,Z§BŪá)”0ÔŠ¥¸Øu÷î¨Ã‹’gPé  Cv_Bv”bfpBá·ªb^Ìú„74Šc²,Ü’Ž«¡M7›=zŽ4?™sl¥• S }÷#¹7µ¤Ü÷O´µ9äà·JxRP {IPލ²R.øRì¯—Ž¬†0ï™$GQ%¤+<`µó©X—Àâ4ãì[×»Ò Eæ„(y iBÍv/7[ô(@ö‘ …Pä ² \KÖn–“DãõW)£Ÿ€¥#½ù:‘6â él¦G…\ª—CÆ–Øù¬OtM¨Œöö(Í2¤ÿýÝyx_ §#c£K€3]³6® ¤#°àYC˜áîÈ´ƒÚƒb.#‘²‰¾=ª”`…{Öê·! ®nî2¤DUµ3Säna<‰Y;÷¦‚Œ¨ºôZÅ–ðe¼QV~Î º iaVý€±ÔÝOõ ¯&ÜnMÌó®9ù]¹“«·¸ZŸp– vÀ`Ù Ñà° ¶Ž¨‚ëÞ±>V…ˆºë±‡Ä;N¦nlC]Q0¬²›Øº`ŒVä÷|Úë!„Zxí-„¢fpšaõƒ=ÀÎ=F±e‚‘Ϻ©²l&&æå}g²y‚É„½s–€Áù œ,‰ ˆR–,Û ¬//¾»Þ oß:ô›˜§ñ±|Øù#ÌÑs$ŒÍ4 1'òï +âE .Crf6¸¼cTá*š)R“VÏfS5¡}N@؃øšÈ! rW )J>ZpÂØ ’¹GÛœ¹ŽŽ.Fÿ|€Rz¿†áÙQÙÛÑ9S–FóCn¥Ž‡Fˆºƒ¹demg´¿Ÿ°¤­Bßáiî'„¯‡üe/VÀÝ Úö9Έ(pD2Ϫø”ÓCÂʾLqÃô WEô|œIwd–GÈ6£-`/E†ÛaùP”UÑJJýq-‡,R”“§Ãˆ‹eE~ˆ´=e²)1͇Zíºr žœù 5UgÔ‰–6%%¤E8'ëœg4UXØ4u¥}‘q"Pc!ÅØCš ùòŠP{Pá#„¹¨ÕПÐM“·Ñå¶üÖÞe×–%;Ï{½ÃiÊjЙM»`hØpÇV‹J4 ÀY&à·w|ß?ríSk.ò€@U¹çX™sæ%b\þ‹šbøMƒ’°»À“Ub$ ˆ*y¥€²Àrİ¢—0½n‡„ü××qÍòè ÚŦ//ÀkpS¬Š÷æ‰Ë +ÈE“&•ìIœGÀ‰ÀpŸùªŠÍ8o‘ÃrY¡É·‰*pC<Û'$œjû¶eÜ?=,¼%ìÐr€©U^?6mÖ¶:®t«‚nÅqüæKz£, „‚÷Œ-žZQÎRí±¬÷.;²Ó÷`ÏL¥QëümÂU'K^]o„ýÂZbžwá@Ù å|Ù~»í¼Þ2åÝ-p`î×°Q¨ðß.õ(ç=¥×ƒIL{Töd}¼ªX¼ ”ù×›#ÆÏ:b[{ª&ð”½"îY½^ôàÞ±öß•jœ²Ê"‚€ó!p4ùÀrq‘9*ÂVYᢢ¯+üý4Å ÜÁfÞoInŠ¨ïŸºÐžž+O‹wt/#­ =#)Ŷ:ï5eŒÒßÌ“(uiˆRú]aqQ!BÝ^’wZv‘ùñÞñ¯CJŠfÁî@MLÀK$êˆFÓÇ((Fg6Î<4â :|Ì3_…ö׎8PÑ5‚þ4ÙŒy ë>ÈXÁË}/é·\w–¦ Áí¾Õ9 xÇÒð©EuÑàME˜½ve¶B´ï#éˆ~Ø.4ò.ð¢ßˆŽYŒDžöÎT×a=††|F4 Çgg.û‘Û)Ìá,ÕQŠy÷ñ¶ù›7œ)”Ѿ‹ yÈ$aØoЮò­©꿇ý© Âx“âaý¢'^†H¥Ÿ×( ®¿èž™¯¥“ ƒbƒ{}Br‰‰Âо.ÎõO¤úcõ¶¿×+¦p÷iØ ]¥»{B×c¹g±xL +Và,øTåŸoîˆqC9äŒv¯÷Ö\áËk¦<óbï …—„âf)?äääFcˆ­|Õ:QXˆm5ö(5ѯbfWR¢mè5r_÷¶y«cĨˆ#´~Ys]É™ŸŽ®,â2÷Û…Y…}ÜAç8î"†_E '{Z¬:§Z5‘,,Ê%DDcôÉúk¯й +såy0±¿¶®¨t`~5®TÖ`0Óêû¨Kb˜;Š_åÞ…‚ð÷›†Ëe±NTj¼7ˆTŠSÌ)Dòï_¿Žº2l±˜rèÎÓë0SÄ-/ä%Ò_Ý#Kæhî˜Ú©zØ'‹›pe•ä}VÒSÀOW@Å_’ùžz;-eÞµÀCé?^ê'›…Q‹ËöÆmOó`wn¡(°¤Õ’DLî€R}ª×QY÷DÏ\v<£ª§ ¿Î¯l +“[Ðnc£ qÝÆ´RÑ·æY¥Ãcöþ  ‘]^ õÝô°§òÍ8T;üµ«ßšæ!ž™æj´õ›¸Tvœ[êÙœš+䦎¾¾jˆ·7 åýa÷µvPp$z·[¢€ +®^µˆ+MuYŽù@¸2ÃYœø +ŠÑ_f¯èü:\˜€6{Nj®åt¹RŒó–ß+ÊR  BŒˆúJæÝÅúþ„#&EŠ„‘‘A5ÅP8lÙ¥×4Â]Mb‹ë]k5/ÛBdåÁ¾s¾Å&D…ß&“®°!ÓFfQ÷È¥úÍÚ}áÈr•ŒÄ”Ž|$Wx,éø‡+BuÜw Ô_úä`Õů½fKßK¬* Ä~O‡df/Í‚ÏöqÅQ®lÁ`ö»óõ; |ðxëKhðŒíÁõê›=Œ®Â_@$—ØZ¬Í64*JZ¸ªMÎð‰wÆr#L-üMÏF’Ò"{#‰·¦@e›…©öNEàÖ)S„ñÒ ›‚ƒ«9#®ìqÅéðëOnk\aOT`ÍÖ¸ƒ‰²ÞI…[×#[ Øì.= ÍèaœÑ:— ¹ö;6@ϱcö×G#P;¹±Fí–GméŠf[8(‡a|G\p^<Ó*Â¥±Ì4Kî"Òý¥Ì`ö*q«Te™pò¨ÀKš‘U€·ƒRz\ó~ ·Šê¹;UI÷ i«x$Çí î× 2 ·3%óE;¡@#SYeJ¨=-ÑõŒ¤ºbÀE$f¹^ ¿9t~Éß´Ï„ö®NŸ—©ÖÎÛä=u]³h“ݲJêA[h«ÆòQ¾IRSâÉ'(ö?ÕÇþèÊ5׌i¿ôÂÌí„pœYD·”âÙŬ÷•éA•¢†Þ©OMPO<ß¼^Eü3Šø2¦Ú/Ë&Î#’øÖ‘—j£±‚tµÙ²6‰¨o0¶"èÌq¼6´¤¢"D¨hòËÙ½rr¥øž¼lÀfhqç(*ø€¾Ë×rI9N§„uÜÔ’¤'ª^M2–Õq}*‡F¶¨-.ÝjÎ\¹—)´o=|È icô=™¼æ1 °,À5X.vaÛëCJb÷*—Žò‚Ø™@Ú?(ï_áYË}PàÑ?/[ULyûŽ%Z‚”}J2(ƃ4‡v@ôâ¶xí^f%ŠލFüí¿ +îÌðàá#€õ.~‘ˆHZþ˜™ÌŽE§„Ì8Ò/ß +öû¬èÄ+%ÿdX¬–ð;’8Vò.VÌî¨Ð«ïçM[€ jânvAJõ¬^S;KF%Þélß³^²„‚[™ÈºîóÊR]°@Ù[¼.6ø¤”–KˆO^_bòw¬)UOŒ–•—Ü—¼‡$›j÷À“á2¥´1ÉÀíÖ·à©òMxêøY¸I*;Õ¢Ô&Õè>­¿¡è$ékÿv°ýÎIí±Žžy U[è¯ûtp¢šß®ËÑ7õ%)áŠÀX´ñÀìë8œ}ñBÈÅ×ó‘Z  B8> (üßU5+Ñy&Ûe{Š/¡¿Þ)!ÇYàŒU€-R¾=yÝ—€°G°KÁÌÎëÍá a†¾¿CO²õÔ9M†¬¹&!rÜêßAÕMˆŽ”\8%/íŸ!5ÝÃÞû ¯:ˆ6¹lˆðò‡çqæJå­žÝQÛ>7 +ÒÇLöJ>ÈK5­zÔý@C;>)å··ÏSävŽžÇÆËŽÂ›ˆ¨†Óh Gi•‘Úç8-ã1ȃòÄÿ¡÷×Äþ›Ò¾þ_x ?ð…Ïð—Õw>Š7/íÏè¬ÄØ·ã8Z eõ¹4]Xõ|ÉÙs]¾ÔN2‚vƒ¸é#¬Làzªh[%ÜÔ0«Y\¬‘{£#‹‚*@1µÎ¢`ZÔÝ߇2E4­™¼° íË ƒñ$Ž|8ˆ æØOFâIO—ÇQYl!0Æ Ï¥à™¾äŒ3„Çè9FÆÅh|ÉYÃŽj×SšÄ:U †“ŠJÓO ŒúSÈ–Æ™\#b[äfgD㔃uÑ»ù¶²y¼¢\èÂ**Ý»¤¯©ø½E5…Ýmr†=©û€•¹ñêW©“ Z:^8œŸt®p ãƒ%u•h¥;ûîP…|„’$ð>MæÙá)Ö2{®3Í©™ò^c.pñÓ”mÒ.8•=÷O©ÏÌÞÑ|Jö±óÓl§{Þ‚¤1µ;ˆ;ò-¥@(é—”’¼Š¢¢|¾ eø¥~ MÊÊ¢@„Ú);âLÄÔèd±Ò]_'ˆẫ+'ÈOAQá}"„å©ZrÇ—AÍ¢a0ò]DQ®ëØ{¼ÒîÛÑŘ÷0IŠàú6¨¤Iѯ’gØ›| öÖàÖƒY[$²¿’ÜG(džé>=ý~{~8Œ-Pòï†ZdÐ!¤C€2à¨|ìG¸0¹à,¼§ùDK„-P˜Ýà ¶qU¤ja *:„ª3*÷ïvLÙÛÒd¨Ìšðþjë*§Œ‚¡âueskß'¤*ùS‘‚³yu‘z-œø ÐuZ8Ú ´†«uæÏ©+&~AW¼L‚֛ł¸Vªµ fíND0ƦÁ¯_`›™˜U_c¢·£€¦ïã\™¡ïPá‰8%2ôoFØÃâ r"èœèåMúºôl'~`š{»hq˜jENLËk0óç<tª_í“Ϩ³då{QÁ ky5³vºƒîí2¢&V ´©àº+ÌJî·ZEôŠ(:Ì,ÆÝLJžßTÛû{)F¸ÕiÛ°¥1ˆøéiýŒ:ê¨3É÷~›¸¹bÄ2ÙyVP"hP𸲽ò>-W0^Í-%¸Q¨YÜAŽd)mC³–'-À4ÞìƒÚöb§º +d`Ô"…Þ¯µ¤S +ú’”¸»)Èê1iæÑÌB.Pž©ÉÜ“¦ïû6ñ!º€´*ÇŒu–^¾{½†é柳›ÿ?®XÕSÊ’±o Ç]v:e™ì¼‚w àL$öº9Ýk‚§?¤qúÎÈä‘_Ü£œß59,@½½JxwFÖã3"íÃðô?ÿœ3Ú»‚D»}ÜÕ_¬L#&·¢:¥Éc¨›ÈcÎWž…(Åa•\‰bä@½ãð_ìØ]©”òôM ˆßþ8#ûgÐ.]æù—±ì…>ØŠg½Ðâv k +y.“´¡ùÀ=ëŽT-׳h%FNXÈ8Ûž4]2áÁà¨j +U¬¥SÇï¸è‡ôÒßa‹«Ý`r/Ý\.ÝR0f»‚ª—»®naLä÷Kv¨–ÙJÓ™ÌbäLZxÐõ»_Ðël¼AIûŠoÌ<òçjCéÚf>Ї’Rí&„RôÑÄkÄáá4–Q^/åÜHæ¦ö0ØÏ3cƲ¢! æðÖ¨Âc¡ ¾à;ž‘Ûø¢\/óC=Ò&´é_V­¶Øy“  +Õk ™;Úæ±ø@»€•š;f®$C×[jßþ>X.è±J·ÿV¼éK¶°§‚Wn?¦¤Zy<ÑŠuæ8îNä~ñHãJ'B] ½¦QOD<ƒì6cΔf–ôSµáO‡úñ" 7R|ûª?¿•áÃ15h+ӻ█~T¯ÛSn¤TÁ·)Õ­17²E<ý&!¼·"ãYpXÿø¥ùÓ_ñE•‰¢*î©9Èœ¨MŽEäz1Á'‘ÆQÐ"²d‚ÆÂ44"7ç@”z JÊï‚ËUŠ}§~²Vû rb 8~A€´«à#–Žê-Ô‰Îðò8ÊÄôW¼M>XÔëƒÆBq|ÔŸ‚¥ÿôEAÃ(6 )•'”x]À…9˜àBIMJŒÑUwh¿jÒ\wô¶ˆÔQO¦W­ŸQTCC-nô +‰Xn|Ùf/3*fÑ#†ÿŠVdÖjsx¢nqñ&ƒÍ» +yʸoµ¡¹V\%vO„ûü¡_Î1ÔƒVd‰Ô?%¢½Ý^Ì',סLæ0¥KÓ­5ç#]0®Š!Oîe‰ [{i`íyŠÛñk\æŒêħþò«J¯‘ÁA“ q Òb©Õ+à<àñº·½’°ƒ”s›øßõãú¯•~ìÞ EzFäV[‚$Õ1‘®tíJj¾½ãz=ë‡ÏÎÛ]=àéV#â#ª¸};#®#ÁÈÏ‘áÜÊhìƒYú¬ <ó˜]•Ëþñçš—D²f¢]::N!5/ + –ïb2éàøà +"RRþy8-ª|Dáåb¯u­çÒ;»8]´ÃÒ†[ºÌ‹ÔW¿Ä³† mÖc¯îxÏ4¢’ÈÈðq×”5E³ÉäW™¶ šÕdIé#*U¹¬Èf+Ø"C#G­ÿêä#Âu32h«(ã3Q ‡=Nüi%¯¥2´çÇ+7À­b›-¥ø¼ÏÙ]+$ĺ"—VpÒ2«É"ît+×^ý}í/mŽ?"Š¥ºwmlêÍùáN€,ɺöÓ®ù.ï@½û€Àô¤‘ðMûü÷,j¯6Šéâ’¿ÿµÉ›Ú–MÌóDgc¤½ n÷K(ð3 +‹Zf5O•äFÆòM8_5ýì}™ ?!ª¹+ÝáþçN«†̆ó$ {í§gÁù¥m´ã Ýá•—tßÜK*mzŠ}…Ž|+p°ÊÔ@õH s©ˆBgÊèá?À—®êâÙéW8k»ÝuÑõröses”]+z8޶‡ U}íö{Ù‡Ã%æH`»ËL¼ëvx´,XÇõ’õ¯ùò¡ÔlüÇoÿFŒÖLçŒøº$Ìó ½…ˆ×7Ç9|Sž}|YŠŒºóç¨$<ÌsŸ8×Hn9VMÓNm†ó.(­;5é6ÚTM¥(œ_ðÃhT±sERש.8f„ÉØ'ÏÂþñZ &þ(úkVH˜˜ËìÔ ªSUj{í²AP”}ìÙËQ¥€ÉUd]N Z¿uüN¸u‡6›%ÚâPÎ ³KÊhiÿMÔ“Ϋô¯^L”ç(Õœs"PÚÝç n3¤^ß/9þŠ~L2aO¤Ìís”(Öt½$çÎã<ÍZáIyì=ÁÅiöÔ_º@óÀ´ùŽ0íÅ­O?˜süŽä&‰‰þR‚Ô%Ôoì’IáÆ%Té Æ{ûl*ïìÔm‡Ú9êFµÉ䶨aw/ÕNP½!Ãg Fo…aJf¢âøÉŽÊà¶¡‡= ¦’¾]ÙDy7šÛç«ßßc•µ£ÐjI”¢öDî(¨˜ ú™5ŸÙböF˜1jáü¢=Ž~ 1(¢F}V-¢ÆxŠr=Ugš![<¢âÜËÉßžÒ‹âß3àï"rÉç/½¥ÏfF†æC kžBÔQ0YŠã_`ÂpC¾ {•\d?ÈWuε*êy©F4‘­‚‰`Ó–ìskÇ|Ê’PWËÌ™#=ûü³ Tuy¯}¿s0ÃêOè¹ÙRÐQItÐ%&°ÂýÔHÔ}ç,÷gýò_<ú8äg.µ±eçɹ :RKNÍ5¨Œ_ñ€§ +Û5>s–Ï¿ÿ‡Sá÷(ü!˜± L²ð)æ²Ñy쩾@Ä•05U{WŠo’@vé-zi2£E:¬±@hÑkè'BwXpÊÊæyñ¶kTÉ™ærx£4î e}Žßlð„ãþÀ ·ñCD›™J‡ùðWãá/£ôYñ‘I|–/Ç®¼4Øùd 9ÕšŠ +iøÔï#â}¶"ŒÁÛõSCí¥¤ms +iP(ÑblrâüKëf\/—ä)Õ¾(¯[+x-ÆŽªòC…;ÁÖOã‹{„5 ^óŸo'âXœ+ød0ŸË"Gïnêe"NT,E`GÀ¬¬~9ç‘©C¢`Däi¦ÍÍïhG%Hû›œ¯®™0·˜].çú Gl-‚(?šdܱÛB%ó§¼ÈW½ÈWÿŒÈ-ñ3j‘¥» ™D‘ ó8$èNçe¼Dæ=—Æg»Bh^9°Ï(´¸µG#‘R +Ž"DWrßd(è]­Ù¿¬ãÉDäš‘q›Ÿ]¥ëÏãÏð=¼ÉgVy~2IÙG€ãg~Š™ë`üeâS ¹ö½óZ^›Vì@|³¢»º9зÈYY#ª·7-Ïïïû ­òûxŽŽƒD™$;ÞƒžýBa30†ã§ë§Ï›ûl¿ÚªOˆŒÃ²¢DƒlÑ;Y;K•½é©’¹ŸÐ¹@œ ÕþñÉÞk[›?Däâµà’¬€¥ù<Ϋö ?z¼ùÖ8’o±?ëÅ¥ M¾œ>!€ã^^¢¬—zŒ-ùÿ LDÖô©áƒRò®­U襦ÓÉ–Œ’7Sïï·h&J¿»I¿'Ç1ßÛlDã}FÖ»0ºõ*B”Þ†3ú%ìx3ˆÂÍ­õ–=Qê‡Î自~èqè ‡þÁ§OÇæù'¼|¤èAj»¥ÃW”¢6¼Æ—(5õ=ZŽ>¤3õvƒÆDˆ +e2š^í[²×Ÿj¶0œYOxàö¢³Ü_;zç{Ý…] Òj} I3Ú|7ص¨·~øó;ÄÓa\•ò¦ßsÍ—·;º²¡GMdm¹Æ÷€·ÇoAì&]«á Rжƒ\Žë*Ù(ÆspøæÎÑd•»˜ö1?ìO5ĨтnRä`üPSÙ‹¸¡B{¿i©iD-*Ò€š>@5§µ¨Æä=j% ÿtR:3£Üì„Ô‡)Åt꺟?(ÔÜ¢ˆ¬’+÷÷§¶–7M,Z%þK݃ø/æÊˆbÓÞ»Õ¹¡ ‚p<˜# ŸÔ^Ó¤•䊨5ß(Z9]ªrÇvÙA¸"VE´U+ô¦A‡Nõó¶ÝHÄBĹÐGв84F÷ßãTm9ræß¡“¢?ùŽ'm è½f|_ çÚ%ûzrc °w ± Üo¢ÇßL¥v•"ó†Ò“»¾@^e–0)fÙ%u 9ü8\æß‚HÛÀÙ—½è³¨éךþl»Õûá9ã¤Pƒ=”¨À½â„“Þé~¤Îò&*ܦ­G ¢ªA •0%Š•ZqG,ï9Î! í…•ì}~WWÜË&†Ÿ)Jx"OÅ#óC€bgäŒh=ªƒÉþ]N>²GÙªÞ.:RŒä.©T·D¦Sל4™ %É[ +üFüõò¬#‘ì®\ìé7û¤_Ž._Z5KN”ñxPNu–M‚(yÚ§°Æ÷Ï5Å1z7ïˆÆ(ÏtB P +ÊÆó~ÜAsú(Ež]ÏžßÎqrÑê8à°KšºÀ¢ˆ*mC‡óž¯AЕøã:Š‚^ñ pˆ ˳‡$d^Aršn ŒRu{n÷$^eÅ©ÏsîtíãÕ{îÌyá3ªGT ¹q€ðº‡2&"9ŽÍX"n ÅôËî¬Vd‡$y¢TçYåÀ—@‡Þ™ÆÄ«è¼€ÉZÙA„TÈqùS:"d²«º …ÿz µž´±V>cû}¬S73ð‹5AŒ{I/àöp°…ZmJ» +GØm.z{yYD©ºJƒf£f¢^1äÓ_:f¡. ²~KŠv\EŒXù&àGöçJ½ç¡ƒBŒ¼h¢–$Ö¶ëÈyZd[.j×SI ˜Ð¸ê›ØÙZ€NòU·UÒª}Ýù2ûò.FàšÀ±úI­ñFP°nqÏž8Ì«F_Q§"BkàÑ¢ñU*o>Ú;²ý8TWÛ„ $êVkN„*eÜumF®Û¬Ö×|ÿ9½üÝà²ÑëO*Ò—½­´èd€ƒvBø —ÞeÁ ¨öh'åø…n&͈®T]—ï¼ú>2 ó#’G8ÚHˆ¿ÿ¹ö|påƒ/ƒzV+àÇúáÏy òΑœÉÎN¯_ÜiEíEE¥_Ð +¥Fí±]7¡;.xaÅæÞê×>;ÏÓ 1]Ê_‘°;~w™›ÿ¤Æ8é©ÖÐk½&þ!œ¨·R•Ó­}qÙ“µøo€öá€%ûWÚ'-ÊJe +²‰ŒžÐ'"dâ<3Òˆ¶Iq0w̯¯ëB^Í»ýkCp>щ¿½ +Óœ´Êrj¨ò0ÁùÜ%9úýƒ¼5ߙߎicIà/€*DÑáìäè?}Dxgîã|ûQà].pìóí˜%óúÄ÷Aö+úHtñfØíÈf=ÿ~Áh¨+£ê‹äÿøŒI%m*ý3/uJw¨{7^eJÄ@ ÅE\e¼‚Pg±ö÷¸è*: ÂÁ_¤»sç?4¼?"æ"šÕ/d9QÃ]*†àÒiOäÐ1²F‘üp™Zl€O÷OاM ³ö ™ãxUÖö/z{¦wcîTø&±Ô8EA¹¶: ;"¸MD¨Éa¤oèI¢§$£þ~Ï_Ç¿_ÑSC8³çÏu¦ZKñ xÅß³TÜuâøcLÙ-Ê«2”Fãà~WxT8<†ÃÍt*Ñ0dp_Ž>—s e}ïgQaŽï胾"Èß?”ݤԴæKb˜uuî¡Lò™ŒejCnt–æÀT¹ö# ›H±u ŠQªü\Ú^Йï;âVUùóš‘OV¨½ò¾Úߢ>4¶î›…¡¼ÎÇõ¢Ï)À.³¼k*©³–b/ß#¾Ö\ÂЄr +óqœ½ï©5³õê!Ó $œGÐ]àÌ%ärïĚ˽oZÁ¨•éíÊÐ/tšHê·Et‚´}*ïÓœ ¡Ôèn1Û×ÚÔ2}Y‘¤o§ÍÝ;‡ q"O”…Çל!Àz¿Pí\ù%Ž;¦-þ×Aìª-œ&½nÆ Îr4øQîîEOü‹xV½ó*wøÌ+"G–Œó”*9“B ôëî‚yXÄªÄØ?#R6lyi玗óQÔŠÉlàý Ýe2¼Õ©ÿÄT<4p«X¥xø mÆN„z‡r¨+ð[àQVžñÆ[Àñ£$~Ю!‘Ñcƒ„¢ X: +²8wÂ`úOR ™{ß®£GTqf[ˆ\ì?«Œ©hïµÆÌ+ÿCæ2¦Â[Ùêõ +,œUˆúüpœQ:IÁûÌÂ÷Þ‚ké¹ÿÑ^Š+š“ï]ùŒ:"ÃŒ§àzŠxžøy©8}”‘/†ŽÐ¸üMÏ”¼M®áE;5ÛÚoÍ1ß²úÊD_Žt•Q"’ æL(Ïóˆr4ŒñþìäilE€í+èJ¡™!jûËrMz5·NŒöÚÙHËŸ/2„DæQ¼%<¶²­ý ýyn‡bü¨Ï¿‡‡"%ÖU¥+ä_¥¹ÑâXw® H¯þ^ÓHã^ZsÿÉë¥4î–ä‹"ý5ËB€ZÜ‹§?#ã¤]eÙÀK~ÝY ÇúgDθ¬z ¯’ð·ãÅGd¾ªÜoBЬ ÙJiÅ@EPWžÑóÞ_È¿¯ +F j¨®õÃŽ¢ÃI,¿­ïó„5fR;ö¥¡3a*Ñòa<‘ȉ ôèÖægÎK2¼‚ë¿kýEÔÎÅ>â¬tõ§rº,lÓ,µ*›žnÏB‘q3cÞ®_%’Ì?ÖÚ !B=Ê¢¬Jg‹¡G xª§xV=ŒÁ©}n´i-j-æ  +…#ïxîÝq•Y@R4¥gÛsoÒÛ¹ÊÙ`ÆÙ`½¢¢%Žu/Ý$$à‹-cœÖ5bjQ,6j‹‚±o)­Žú?N…ï&EREÅqå\|<Ì5ýPmû1á’3)&1¤ŸÂø–ú‹‚Pé½c3± EŸ¼íRÇz¸´#¨¯½êËäÃÅáSõw¹GOÄÙ÷4±ÛïZØSß"^PS°”6äP/ +‘[¥\ï¨:Å~å¸ï‡løtdwuzj™‹ÿ«†-Ó5 ꀪ0¢/-ô©fzœíZÉ=ŸpAú*=ãK0àsw”:—•½¦þMÀ½;S†ÖÔÏ×| 60â?DÞý5q~RñÿI:þ¿ð`Î÷ó÷D{ÿÿ°ÿë·ýßýöþÿôÉÚoÿýÿøÿðÿö¯ÿ‡û¿ýûÿößþþ¿þç¿û·ÿÏßý/ÿþ?þç¿ûÓ?ü—ÿïïþáÿú»ÿé?üÇÿö?ÿ×øÿKNúó_üïÿ_þþßÿ·¿ÿ·Oñ_îùú ð¿ò¿÷c·̵ÿçÎúAEV¾ªô÷i"Šø:מ³I¹û·¯sãߢ”ü îÜ qŒc6¸Qx´Ãc€3bV*É».JNüöˆ(bTM!Ú‡˜À=µÞÕQ„€^-Aý‡fW5üg©ß½c@÷:àP·Ä?Œ;SŠzl[øZ{*Ç`<²}˜C’§Ž)VþI1ìS1´¨Xê¶ÿèqxKÄå µþ®öÒªöHg"Æð´Gr‚9"áÓa‡ÓñGcJe²¡(ŸËÒ¡û¬øï=ŸZU,;àóè^î´-¯¢! ïÝ5XÓ~W7Ú$¢ íýêdGŸ±PßÕyÝç‹vCf#ž9ZkÑD:Ñ>(aàSñkõóiH`³!Q ²Dt•:ÆåEWsx–OˆèŒ Ù'(t®;´¿£Š+¢P & +K…DÀ×®ë8:žaÿûçÏÊSï”NWþ4ä úl…Ð2Šõõ0¡ˆ`é©vhÃ&‹wÏtœâ9Dºô«¾m~ô#Ÿàéku4ÇÄΠˆN}@<ѸS”X7[ÜØ?(È;<Ô=‘¨3ë¼úûïµÙ?¨uUüûú ´˜ÉOA‡áœãüHŽú!ï]¦mçÌ:þGÔH³›yà~îTˆÁïçA㈠@Ü-4އ¥LÃAÃÇïx*W°ëõdGß¿zeĈd]Úí‰ ¡Ü&¦_¯ÏªÒ½¦µ’¨Ÿ£¿C)Å?ù’ô€ìYëeWtDtÑqzB§ÙO4z€4”ÚÜëÜM¹ñ^†Fø–+è 3w?`˜€cèÇÐîR)w6Ê“ýõka„SOK5NêÕ=Jºi(c”ã…Ó)øðÏ…÷ì´xiÅH9µÌ®{)›ˆ}=å,³#ö¢x×™h–…’yËv}’íŒ Ù†ù,ïÚ£×Û:r`§„+Þ:‰Áìë3ÂE´Ågõ“ëúé8ôºEjÝ#¦šånCŸ%_Q\'éÊaÊ£UèŸ+1 +$"ÃHÒžy…!OÙzßögR'/¤Nð*ÿ8{“åPþ»%¶ r¡=ÑûMOh-<Ø<«v?ïRµÅCü +/ËüUÕ•w. ÙÛ¶«Cv‘jÅ(­7—¢“Œf7OÒ›̵ a›lw rØõázwÝìµn9>™`ñ2Ô™ž ¢½¸=x9M(v“±Zǧ„G‰`ÌOD¿C¥€™ÿ8qKÀ—>EÖ=Ñwƒ`¢-€­ék ­84œ%e,JñcÝËÛ݈Î;)„t¿ÛíšÎ=*‡è,øpï·êÒ}Î_^§¦'ðMRTWÎ;Ö Ô©;N¸Ôº÷ì÷v¿;3v#½À|x=z»eÉFȳßÿ«ßïî¹?(¨xQ‘Î<¶ðX–’»QŸê‘~3X‚º‰í)rü“ uÚ\C%Ž#pY"xèˆeÙ#™ «P¾GÒ,žº!E•k¨æ·ä/A•SZ®¦ëðM‘¥÷ÛΤbg½ÄüŽü©Þ)ÁÿlMçÉÂÕ8•Kâ!ìôŸ* +_)׌´#c†;àr< Oý> Ò”F”Ìã[ñï¦|“¹Y%5|ˆ0*=¸nD)ˆBš»Ö(ïùUÞó}V©öޏåKÌ¿yòõµäøw +Y_›6“TŠTµJY\Yü+#µå³öˆ›› +8埿G¤@iAöKY¿Žákêãwû}ÍòТÁܪ¯H¥áÅòhL~²Ž°ÈdA¿iñŽÒü“¢ž!Qs:0ƒì8½íý@6¤!%²‡jµ¹ÝhÿŽŸQâôº¡·¶–(S­KªžúetÌ0çį¬Ç•ÛI>×òÂ_ÁÈìîU«>Ö”BzйÝQ—³aúõÀB˜16`5앾ˆ¾Óèasw_HÍË5}q ¡£rÌùÀ*Ѐ +]yµ9g¬x;ÃPæsôí55FõóC«ã8Au¦¨³ìCÅ÷Ks+ì7 íàXhaáâ¨Ôï”2Ÿ¿}Fä7Å8•úD‹íó8¸Ì³Ø2 ò0-I×>æ@î#$Ú{+>>›XÑé­Œ$4x‰§ÒKÓ‹v°N›0&ÓTõ:]“sظ %΂ÛRðÍ‘ºŸ÷E«¼³”ﯽé0Þá,\½¡²Ê¬²x!¥ì=‹¼ÛÜY®…—š\‚ȃ튀"èlñÜ9S—þ³÷[*ª0ݸ°Æ­LªŸõ`‚W3…»°Ô5SŠŸ~îÒ(%<\e‡ûSÓÆ"$˜ã +èÍÙ>£ž(^u {ê[¬Ø‹å8îÀCî´¢ßãþÎù>"²jõÐv;øÌùüpœëPãÑP­›;òøªöü!ÀY$¯'lýBõÿ‹Ž±-d, …vvÒ’jñŒVrãù™+Ðl8Û8m‘_ec*ØHƒkT'*XƒýÐò\bYÂNJàÂǃru‘º”Üesé½™IK=¸kd7o¡$8Û;j¨Íøœ:ñÆdz˜YRäô¿Ÿ83Cÿm*õkpþh~ÒÂ÷L`cµCO¾ÕüIÁÞ©2Tª›#Õ Ì€Rœ@ÒsN+0¼¾}E5¯aHëo>Õ†ª½÷áZùÉàõT Ö¬2ªÍ|>Ÿ7Â…îDÛeeÈY§øý掯ÃÓ=çÏnñhw3°Cáw´Fèqð|KÁèçC°3{<8Ò¡P·òh¥Õ<ôd´ÈR’ûd +Ikï Eq$"²ñÿ|.ôV"p’òÂYÄâ±S²C¿u€û3Y°} +ŠÛ~‚ûÜU(0˜ãjÌ iVÒùì{g>n½Jå00…]dLPwDÿ"³åH +snæ‹kHB:ÕzËkW©ê“÷íƒÁøzª"î–L͘&¯û*Q9¾•5j¡§âÇ’Ì|ƒkG"Æ¥ø0 +ó§*Ðè}V‰z3­Í—oMíU8IE¡ò(Ù†,Ó5²Áævüj·N·»õÁ=œcS"ÛàÝõÙ×{‚«Ø8èkŽdj-=H§á N̓zlû>2Ç;ìMû‚n#3ÝE¯Ñþ’¾˜í$Š(„nÊÀoêCÿ[&LÇpÂtº×öRË%Ë>@ N€–éðõhÚƒŒž¿NS6²rzxpïðܘ†fÇš9?â9ù’Â"äUÐc}=S!îÿò>™ÑÓÙðÍ%5£‡ myL1ʩ툫|®¯;ñ—"Á„“AÏ#µâaÀ˜mjċذ<_&ÈЄlqÐCE‹ð<ã–øƒÎÞ8 z”Ù8¬¥è³NÊPjdÀ„‘éxtý$´¾M˧õmy¯’6è´CÎhH¥@<µ«Ó+F¼<¤S€øP³œžc#¡½Ê÷ˆ ?©ô› +²š|íïþ~-æŠm;F”Û]cÒψïð÷ñúË(´tõôÄYçhLbލŠ¥JgåC Ù$Œ¿ HqýDÓ¿áQ/ˆåÛQ@ä)ìèSõB¹¨dÜ·|0¯Õ:}Jï©ó|Må µW>Uãn[1 ¿Ð÷pC4§hý3â}Ú.»)ô\®öÃqf& Ñ]ˆœ±á9åØ[Î%OwÉø¨´S2üAäðj”º©Q¬BR4yjép êA|†õ…ÞoÇ` ˆã62Áå;À©%Î)m¯}NX¨‘1Oäô³iqu'J’GGBzzÔ(ˆš–÷DD4ñ:Pï#„”Ò´ÕOJâÔ#º”35Ixàí|gdE±&¦yHëczÒãÙÛG,U²m«6  yÛ5†ú›TØì?ú=h“yµ$è±lÞïŒÌÌψ#F©À¨îwÅùô hKÐFëÒ¥9©ÈÄlƒ_‰œËþ;½ÏïŸçZMA_ —Æ,¡å¿8Æ“ùÇá5Ï7nûIoãLj•9â ùº'ߣ ¹ŸÐçÊ·}lží¤OpѨîMW^êNGñô‚ r~F¼¯fÚƒÈùžó‡ãð„£·ÝÈ4(àÆüðÏÔU§ô,ì.Þ>ç÷¨£,‘0o¶ïz=~SÚÌÎ Ž¨ô Px»S€‘gõØÿ6×·ˆ\²;b'pŒH¼?£m´ +à ÆF¥c³Ò1~ªäW9¿8âãM-NYDO雿ÃÀOXãÛ®¨"y +c«âÌFX kœØê×2rx¾Î$ÖÎ#)lã4TlïÏqÿdÃxàŸñ¹ÁâÏçwxÎÖ°"±oãï‡8´¨§h²+æ=ÙÅ: ¬õ¼G8‚?ŒjšIË××W×0_Ërz"uÏD@M'Ê BÓªàǧú3äxÌ$¯Có[äQ{Áø×ÓV™¯í׌h¦ §úðÒÊuþÜ&rItzû»”7¹/1*â)9xDŒ²µ—1‡˜IÄ|Üd:·{×OýÉq¼“;âålSlÚ¾lïѤÜìf&BCÅQº‘9§gíéÌß—Q!÷¶½è Ú#%âéÏÇã…ïÜa@b펵×Q1©3ŸÔ™vüUô–Ü¢’“¼ë´O—"Î> yo|“ãPà€m(yt¬›û„Çø]ë>|¬;`¾ T6õûbÑ endstream endobj 27 0 obj <>stream +ÒßKÓHÀ¥¯˜¦F¸LÀž¹ƒ^[´Aöõ½_©Tyjtà©]3Qêxl,Ø|¾Žt#Ùÿ\ªÓ{šØì—ö‹Oµ‰þ$qϬ£ÉXbly‡‘˜¥‚Æy°Åuཾ‰ûô +®¨¯ïµìSüŠ€ðÇÉ5fWìH˶º3=Ú€{ýPâ««X2Ó`Q””4!˜"é2=®í0@ jÇFÜ¡]€&xŠ€ù…» <’½PSá + “gRÙ¨+SLçœ×­–t’„õž]íRri=Ã+s?¨…vp9æDÌrôÚٛɄ¹Ý÷bA?XŒ+#}TVݤøç™ajð›§„€ü$Œµ…R"écLôÒvUɃÏUÍè®è•ˆ™©ë”³£°iœ\1ÊyD¡îŸq…(ä#ˆŠs¤ß¦Œ`sAZïwd®ò<‡ü‡ýïOÙÇ„ýšÃE(ÒpªŽÕð¡%‚5ö=U·˜}îç†+äm$u2òbƒŒdÎo‡¹Î„EкêCä3p×X÷L ”¤ì¤ÐeÌÖ_6†îP V  äü +ŒcOæ“õZÞ1ŽyNQ£–Ggö}sŸœb'Ò·é ʯFÏ §—RE@¬ß»\›÷˜'î_-]þ‰î,e!ñwU­*m¬ß}°èê¡<De8SÎ'þ9³¿–ûùˆàØ)†NEÏ!è](«Á +¹Œ|ÿ ù«üþ!›+ÛòwÚùûïW[öËw¿ä¡÷3xä¢qŸ"â¢ÿ Âcèæo×Dô„h‚†dE:å{Ï©ù[DîÙ¥ÚC®‹`íçq¼õ@5pÈfSß© ¥öÖOHô˜Æ¿|ýÏ(Ü¢éøw±(ñe'½X`Ü“mŠÐôißið•»™´Ñ†_¿®ú} +ïÒº±#ÐàïêPÄýyVh¸®Ÿ«±{¦œòc­»›&—_§1‹ÙAŒŸòeÜÁv²ëø`/P‘,î ß9QlyL^ˆQC¨]‚ºß~È­ùž¶}gÍ@;ŒßéWa”¶¿ +j/ë3ÀG`äh_¯ï· êCÖ]4ÌYßvÕ·å˜Σ&†*v"Ôϵ¥ûôψ?.ž¿p %ªA¤ +Äáÿ‡â›Î¶ŒB €—¶Ä‡))p%Ûó³è1€ –(/†guÁUó`ºûS„z¶½ôlË’è3 +KžY˜)$³Z|Ey=ô[Ëœ”Ì·ëɱ“|Ñë&ϰƒvЃJ®QÊà£ÈqDü ñuxýtŸ<µ>1ªPcrš¾#”™ "b®]qݯ3¹Ob÷¨~|)’ÈÓõõñ8È1ÁÉN—üÊÉ3= +‘aÞ5WŸDë~áMa½>ˆSÜ‘úò¶!m5s¤‡¿33Ôœ-¤Ê¿ùÈ燈óc²íksÖ/úŒÂ,Y@—“ÛÅVëZ‚šïLÀ^ùФ¬zi*Ž}øs%K*„w«ó‡ãìÂ>&HÝxTlTÎ`—Ôï¨t/·ÏZ€·è2Æäs¨üˆ‹Ï ÈÆB|ó"ûŽ8_î`üx˜¿|­$ðUÀÛñµ?Ž‚j‹,V¾!rê¬n%f6î.S¯^×zäZ¿>ßDÁ&&JZ=Qˆûé'"hÎ!gÐiF ŸwÎdNóÀ »0eÕõ½5îv«v;ÞŠQíÂÖô8hòƒ”{ÔÊ”Àú¼ÛO5bù\Òé\AšŒn9Æ(t4×&gÒ/aÚȸÕE–L蜩-nëAÓËoÚ‰x³Iù=à¼ëª@Í)M© µr (Rra®*§¥Ù|G³YlÇU0€ýpÞã쟩5J““ÅáVŠïûqf(À(3iàIÊ(’äÔÊ<âœ-i–ó­“q|“·‹ëCm[E@xžÀG¡¼ÉúÆU®æ—6&KòÖÞšÂIMºä­¬êFñ×g(17FU d´´d"F ´QJÒ¤ `t»ëÆØ—?ÏG@ðN«ðd¼ôÇýyM¨[L¨OÝ^ZÎKÆ$@ê#à +Ö{×´óZ/®ê{Ôkç:m­„óƒ4@ºJÞÙ%M¾®q.Úp€å5\"Ú’®«£À¯½ÉæýÐY âÙg®‡ÍµÁĺµR—ÚÅ¢”€4@ÿ‡=fÅÒýuÍš~ÍŽ€ŒÖÓ­RºjÆDÄd=’Á¼3­¹3OÏ1lQ44ñ«jÿ£ÚQ,WJ!CÈÎèo›X䑘Yìò gÁ"v†ñ&vò|­¸ ‹ ]×Û*lG4±Åaƈƒä||Fä+yarñ~8Î~ÍÀï+<¿Ÿ*-'ž´uŠ×¹ÌÅ>Ðò¾ ý.|¤Šù|Fým}Ÿ w.éò÷~÷8byÌX?¾—Ëeµ/¶ö秈à^L£½ áïQóˆÒ"âX +€•Ü1Ѽ¸?•eÙ°!4Á¹¾ÑøQ{–”¦Ñ÷Á)D³›åÚV¼ÑÓFúr„v\hïýâµ"¾oÊiTBìQ.­Ü, +ÃìÏ1Àî€ܾ<ãI×$u‚î-Šõ%T*Ÿ®ç^Ðïˆ04r(ú= :ÊÙHE€ ‚Ü„+çpÅœc/—Z„ªÕX˜Ýõ‚DLEUJkÐMv ׇ'z¦*ÜÐÕ—úXJì-Kê¿«v,VH’lz£Ýâ‹„4X$¤;–!ÿLæŠ(c¬õùï™Ò¬t1ªÇŸ¢bmXs¶…®8¤£½‚#ßGèá ^‰†  8¥»õ|dº€-ò}|3ù‚fB¯KPp ûu¹Îˆïèõ²kž6 ج1õó©qå9ÆãìQ5‰0äÂõùíQ~/P +þ'½Á;ÿ=ݼ—¿i!\‚¨Âqƒ»ÍýO%ˆ¨Ø’½N„¼Í# ¼¸AÓKEäWXÄ 5á2'ж1"gŽa”ÖÞ;”ay1-e–Üã9VXÿTR/àÖÌÆb, +÷ŒuA÷­Å-§# +¹’­@¼e8 +3iTéȺžíœè`į!dü&Y¤r(RßT?<çkª»_¢–±Ç¯ lIÔðLT¨ƒ«i4¦þ­D(’ÃW¹âˆ8 ïG1&?@qþ Á»†£¤@TØ(L™ì¼ ÝyÖE¶ØG1]Õ ¥”¦D2j$Å?Zí£Ý½a”‘2ÀÜJ¾X” +L*JìU:¾Œ§¶> ºYhQzAɉg¸‚?:Øîxl~JË^:©+5X\Àn+îŸö´(ÙKL ]u&ÿ]¸˜J´KPe€T×B!ðàc9Óýš³B×Ý ¦¡|rà¬æ× +çI\ÅØÆRÔXâ¶Zn¯K[à³iâðrkÐÁœ†)X>AMd‹Ê‰¼™¼ýÿèazØÏ‡À÷|ötãš + y*Î똛ã€e4Â/®Ã-?íf8wåLþÖýîÏ—E‡­™È^Cå*û}XÇñe¹rœàJn é°m >Æ•'‚[ ‹Ÿ¡Þþy‚:ÁÈ0“ЛK­ÐW‡á!/Íì£tscÉëh¼«é{¨?¾÷ý,Iú×…ˆ‹5ÿv +qEsõîkƒ äkõφàCa½W±3æMS‡[7Ô^´d^}²¢öåEcÞ3’÷è†qÞÕ…b˜Z™‘[©¹“¥ïªF‘§"ùç³´7ïûQq IͽïþËŒìIÊ»oô½Š8OlÆ]™álzï‚î£:,òú¯"í»²—Š'D-ô< jád¶Ÿ›¨ûÅä·^´QØNÆ4øù‚æg‹K÷TÅ#¦¡¨A +ÓAB0NÃë@å†Ö{¦l ÁD×´Ñvòª3ð¸ f¾ <8è¯CîhÎt¿4:»(x#Ö|ðŠ‘µÙÏLu¨ çF¸J!DtžQÑÔ¦%L†Çaò?’ã÷K\),c'ãÇUKÇ虑ïkëTÝÇ á|(&îA^¶HÈùUT±£É?ðUÂ{S¼©Ü¾s®’›¯âÿTÿÊÆËOR}CŸ(R@Åó‹<«Ñ;Ž, +Dà‡3…ÓJÌ“Ÿœ JL¾†v·«‚ìÔ§|ü¢ú¸ÈβeÀ÷›òÏ«·©‚åÎ²× —h1 «"<¤dáZ"{ÜU.èiX4nÆËW-¡q`JÚûã÷ãOÅwRÑã3L¡Þ,Áá/(QMëè?UÔ%•¸ºä¿}ýqL`)z¸|æ8 wÄRšH“0¸FrSì®7X(†®3¥uÔ¸µ*0Ï%ŠÜ Ç¡bV@ÁB.=ÕWÄÊyõ°½}!ù&Þ m´%&0Jc‹¡šÐ§sá”ì6“dV^MTÁ(8|Šè9Aø…³gÿUòšØšö@­c"5‘(NSÙ¾ÆÞ´÷cx'+zò¦Õó-@3_=’¯ÞÇ«cäûˆ*ÖŽºüDÑÒƒÿ-hÐm…—ØD¡ÎËh‘†Ú2ˆ0‡he\‹_Æsþ:%Û·™¯£è&.cæDçñú=µø=-¿Ädb HH™-ØˆŽÆ¾wûÅ †e +Ñ= ˜«@h»Œ%‡Mûž¦=Y(h8&—hÎFÙ¿¬SiÿŹi¼.ÆÀ=ÒÙ{¹›¾‚vÝ÷Âv\…ѳͬæÈËNY@ÃëÞ™q Ç{ Õ½®yQÏåÙ©íN¦Ê²^¬ùŽW"ˆw€;ÈqËhû.“IЃD/ ´{@¨9¬êˆ9¬ç=¹7¸ˆçŠk030š#-»‡¸¼êó\esÕVl®VV׳3ó§êVÖ1Téæ{¢C§"à ¾@‹-Zb-ô¶C»¾Ýáã§“ü¤ô=ät£Vw>÷¯ñçó¨­Î&Ÿ(•@N^šîŸ‹î ã8ªº¶§±3;9>?ÓÔš§…ã‹<£, +ëd·o)„YÓ(„‚q¹ƒwª¯/Zb’³ŽúY$t:û»Fí¯j'ËMÔ½tÒÒ§Ãq‚k³HÎÄ#ï80$Ê×$Ís Ð#¹äþ»¿æ” +ƒv^wÈ ~Ñì1›¾´Ô4Pk’j;ÞÔÁBkyfÐŽöjO›°K4˜J2HW˜¨‚ÞjMäåÙO&Ž@dJiŒ[)CÃ{E¢ªŽÜoû%/‘Ñ)4O†€zUj‘£<¦’ 2 +Ìw¡‰Ï¯[ã¬Q+Vu7_µ+!¯»ü=W<ŸÒÎSuáøŒÔ;Ñý”´U‹ŠçYÚ¶ky(/ýÂ0`ø˜Ç”N+ÍZz=_‚ÓÍøE­¾¸drä`“zø;¯ØÛçTtÄîP‚èŘ$?øç3š¿fMƒX)î\Ó"tKŸ˜€&Bƒa¢ÈsÅŽÆvÁ!A?g±(ðzªlM#™‰2_Ñ 9.ºf£Ä– ‰r݈|‹>J¢B>¸.Ù"j˜H~b–¢H+:5¸+º!rqÐWä¼Uk‘²ó• ÁæöP¼s¿,"Dù…w‹Ÿdz-s”døù 4Íg€ìW‰aÜ +DŒã]UZ×qcÌôj’0X‚-ÎÀŠóŽ„èx*i5:p…S¯}– Õse=ÍhÇR„­— ö;m ÿáD‘åQUüvŒÌ«[h¥(½Ã,ÞÇ3ò5\v>'£e¤>c\e"ˆ¤òÜUDE ûÙË$„’¸ê¼/t!Ç×yó8WEMÕé»#"f´r.:Š0Â×ut¤øº²Hv¤a·Ëöu¢—_@Nˆ˜T2Ö›vÙé¼Ù…ŸÖ9µ H¤Ñ.Ó ­çà}Ùõmù0º&§ÄÃXØVLN$tÐusK^Ý£}_®;’HXéäië +‹¯Ó…ìŽIIVj˜èÜÐ%«€¤ÔÑ»«ñ-YEgWÛ›yiN”{–c••gß„†,Ç5”¯°v°P³ìÅ´Ÿ{¢NÀrù °²JÿÀÚL{p?Ç.1ó)Š^žvTä +óeÿp'ÍØQrÅ”ùØWì +ñ¿Lù·Ñ߇øNI¹_û¯§dž€°ë\¥ß Ótèä0#Úƒ¬­/,€x%ýFIìubž¿ê^—}Él*÷ûÒ­Œã†wÒ#‰Ÿ¹|Wê¶Zßb¯¥8PûeMæF ŠoƒÆ¹XÖ±ÊVZÓu4#Ð!›gVŸŸ³¶E«(j‡ö«yèzÕ¼[)†™ô_îˆRÉ:ýke>è~ +†×ÌG¹‰ýL€Ž8뺠œ¥„.¹G¹|ø!Eí:—¨1éâNˆ% gËv°ž?FD®b¢Yré6šeg""3±—Ÿ9ï¯3 FP¿³ÛÈ7wš<öÙàØ tÙ{ý´³~Úë­ê~üVÙº(ãK>ûU®ï$@à;¢Ù "/úX¡ÀØý Ÿ¢öSè Žv‡41Ð÷¹^}ì‘3Õ‹«Æ¾5qÁ™ª“ÅÆëPûtûeÆ¿'\ïWv:‰PŽV4íÄþï'®iI5QU>šÕ1U÷›pHÜ$¡#G°UžGüÞþxrÕºnYW’KS뉟Í{©fm¦lë¥2¨¿ÁÀ +©û\á»EznGÄÍ Z…7gå\7„áˆÈ%O™hh~Èa4™l3±Ÿ5K:=Ђח¦'牺ÓTW»"ÈKw½"AOKuüpm¿N¤“Ö]leèËp/ªñ~ï„b=4/L·EQЊêÙ¤0ióÞ{M®]D½²ßúßtÓxðQÈh#Ì…høT›"&bOHÇ]Òæc¡C»„A`þd Uaê{™”lppVe]Hm”_‚7à#|ÿNÆœT«ÍãN™&ˆJ•Mé¦Ê7TퟃzÓͮǑÔW±G(eãSŒj@5ñÀɘ0)õY)u¿‹Wz‡WÚ_vçþ>Y[è±A/fæ E’ÞUÈÏBl2š ÆÎH‰žÐy½«ñÁÜÜvýƒýåÞ‘.WåšîƒwaçO·©ö'^|k:Ò«M½ðfô–ëºÕW«Nª{÷¹y§7§þ¾ÆWšgÖ´ûÃÞ9ó¼íßy_Gº‘ÎËhUÒðBVéU.(6óÃåg|ßÊCT§¹Ã†G²Á°“:;°£%é<ÈÒ'$æsÿ`¿V¯–À²²Åˆ*{CcÚêÈo_õˆÜ´bÃ3S/¿ðQl|;jéSºJ^ÚˆõFÐlFç>+B +}¿»"hOq<¿ÎDîÅRƒ¹%Q·Nò‡žPiß‚cÇU&JsŸŽõ«¿Ș‘Š>•/ËŽüu"õ4†¦³@®wŽ#^U=K§GÙ'‡ÛB<÷#êcwÑw§ù.w˜ÕLèòád³¦«¡ÞÔØ·U8Iб>Ü)¼%lÐÀ‘9_«Œrl–‡®¨'ÿ.èÝS4_)ñ4ßX9_M»š^¿Ä Ñc>'»Ü˜‘—3×p§|´€™OuÌ] †:{eñÀ‡nh|Øi½—Ô4vF÷f¶Äÿ™¡$ÿ¼¨»ÎË¡`È{Êà@¨àPò$¶Ù½.¾¥cr²öcµÜ& +ß¹_`ÿ¤#S,ÆB™·°‹DÞËûWÆI”ò2´Õ¯\e¹û¾y—ljÖÞTÎ.ÞiŠŸ Õv€Rè;€©BhðÅôcö™ýnñ"¼*l€ŽŽ†‹È½CÂ3³×µ#x2TÓ ''z7h‡°Û°›+¬gEÏøs³ÿwZ2¼("¥eAhZ®píœGägŸ—%ÎÈ”eŒIÞû4dQz9ªÜ‹ã‰Í¶xã'˜¼“Bš  +c–¨Å+úWtpé_!*îÓýrMKñî>ÞŽ¾æž)ôÏ©û ÛqGÔj]BRôGÒeïZÅô¾ìËìwîx/ÊØŒfX¯Ñ;‡¢-lÌ[–ÅGjdާ\ ;÷3†©V?Šòá,è+†³ëÕã¤*ò¼5,”â‹ õN—rd"a€ÀÁï©RöA fPøVÆù‰º9Ïëu@Ÿ)oáÎMºÇX˜¼¨v’°#Ó ½OKDŸgC×0"üêw—àà #“™OïlWá,C·Ð0†Z+}Ip ûÏG1Áý¹Ûóušl$”+w/Ž÷UúÏ0HÏÒHþ„$#òÔ‰`%‚ò»N4¢³sò(¯Ì#•Ûbøï8ó¨šúÔòñ!Lj%ÑËÍ$ß„Îêær ·Ù¥±NTŠºg¼H°3 ØuÔ•™êõ„ºŸãL7‹˜˜Á Á„Uª Ø w½½ê »‚ làºÈL©ïû‹c–ÄÊ_É_X¢’­+ÍV%lÆ¡\á¯=uwšY\º(ä·;ðó½ÇKGê8Ú…+j%ÞÉg†‹¬-7©aŠG‹lõØt³ÍÿÚj[œW¯2Ä 4än{†«PɈQ=Çu¹âƒÐ}²×¿‡ Íbÿühô¤éìêQDfÕMÑãʉ—ú¢'-õÌ-öHÖñ‡~º”‡YÿUÃ,Ñ­"zIJß•œUuŸ¼Ù=d +Þç4,ó-3wútüéê'Ù„ßKO–6=YÖYÕ»ñ=˜õùÌÌxmt$ÙxŠ4ÁˆëIsѺ¸ïâ§×[¡o=ÙðˆžÍvQê@Ô‰ÔgóPŠè–udF¢¹9K¿ƒ¼z·¾ôgaÓ_™2ÇDwÆDx®'}ðÕãXJ2mµ ˆÂÜpÆ&%›ŸßЏ £aMQÕ×!ÅTÍ=!(?ApÊÙKÅ¥{%Û½„ÿ‰«˜? „-nÖÃ\ +M +çìñÅÖáƒ)ôrž~¤ïÝɃ[dÓ£:É+•€ÎPi‹3zåÒ®›nti¸QÿŽ* ø1½U6¶…; 5n^³ˆìáàÛo1KG„Ìz+¦5gzB7˜r±™âê4hé!wð{M[ªÔp1¡Qui+3Šž,a{7£¯ê +˜×ƒ ’/Ò‚SQÑòâÉr;Øúõʹç U’]¥‚ÚÈ|¹K5XÀÛ›-„°TWÌ·hÁ°3§ÔÀoZ/_gõ¹ÏKÎ'ÝÅ]Ê-š‰}–ïÕMâ +©j? òØ€igÐ fýOõ¼…¦±SâYúýÓ ƒìŽŸr¶y)…G jâ¤"¾»”ÉȧÅ#Ÿçùe Hß<ÐTèj½RÓ”0](õ+| =¿„5ž8äÁ@2GX¥ãb·ý|ïMAîQxÿ^®3Ðö¿d-<Þ[wòƒ­ ®øS^¶”ìçíÃ<3k1`–Iu&7VPÆoÉó¿ ¡¶(bäˆü½9Khò¼1Àõ¤¼õåjÓ¼v{y¢‘øßæ©’öev¦-eÒM{KHX\‡MZlvžÜFÔ7Ð(+!íîtíò'blÊàL4QÕ ñ­Qß“w „ -`#îä³6ib7_Òº3uxÃ:Q¸ý"Kˆ‘í> *FÜ +ÂwË"¢.µù¦L ®ÜKb}wžq¡hCÀc.XO0d©Ae¡Xå›h)jmñ +®²sXÚh„ÚΊU% +V$ ö?*÷Û˜òòKh¿'› Ê|³¡#(?ªMP×\¢Ð´3Ї™¨}÷þö_…ÛfCŽ‘ÜíG¦i,}zE>\"¹ëîʯ˜9„óvÐPðÒd`ÿx¯âû*„‚omŸÝ~ƒ’)–)"Zîùm…s VêbXwÎÿv0Œ")DÖ®ì{Ö£¿ã/ä +W{ÞÔG¾t‹°÷‘/Ê‘MÝÆiºZøZyîÿ¨xŒë©6ä^´{П©rÉ9@NúÊè—ºJJ¶‹2ÊÏÒKPÒÓåbV™+„•PðV[¬¨ Å‚af+q„Ð +Ø÷~â{?ô—7Ó÷œœWäéùκŽ#"½Äÿt+:ñÀ<®‚E0 êûßU +ÕðDòÞÁ×SœmñâO'‚`M¦( CÞپå—î¾×‹$ãâU³â>râݺN¥ŠŸÎiÒ@¿eDpÏ¡v“FÒ +‡‘ßµ7=VˆKñçBõÜßïx>Øøn=¹qšqD¥ËD¹­8Ù¨ÝÞf!ó—XŠvÜ!ãF%˼î-üš²ÉcÀ^Z®{M¶]´Ïqš}î…ĨƵ&¡8’¿å8-³0XZ~ý!﯉÷û7ÿ¤ýü¿ð@àëžÿþàã._o¿Pñ®I¦FN Ôb¯ò»f-C{.H4 E<‹’Žçj|ǦŒ bryüŽ}¨¤øHûmú\µàîq‹º@2&u|ìó‘%Á\Hi¯«xØöEáFލêÊή𥂱£º­äÁhæ6ꌦ;)éò8]5Sþ'j*íŠÊïL3ò.;Žqä™ 7–Ÿñu&' ˜ ŒUzºKàþzŒ/ X ó`WÀb6œÍã¤!é»ÍH"ô·iq>MEWæŒ éeG·*l3|[Ó2ºTß®‚ÁàfXþ²þ¶¹îWFûI±(|Ã/0 +šp Ä_$…‘hà;ûî-…ÄHCÊ•@˜“Ø"=çL´|MÚJÀZ©Mú§ŠåyB©…´&¼ó rßòì,‹³øxì|½v°pxÒ?É býepÑ5zt4Ïú™¬¬Dµ1aoè¸kœÂâv}¹ ¢, ŽUß?årÍ @†÷ÉÌ"ö ^ØE[`䫎\%´±ð=|7]fzLweÚ +>ëš6(˜É–žH,ìàAÕ2¬v¯ÁVioŠCHž6—°Mïϳ…–¤œÁ{ ßc£ëÍÔ*K%‰¨ x'Ÿ¬à¹Z¥ šzHüw63BnOçöLñ†2æTF“a|}oô­r1Ö÷¯´»M†t`á–íÛ„´$épè‰w®ˆžjñù‚€Ä-Ðé)ÈnÕ™¿žtÀ¯nLj °&7qAQf¢Þ™ˆ †'Ü_ߟV¯¹°,|»¸"¦âûwÎÒçì|]Ìnåbe€v»ÈsJ}FñPƒbÚÕí…·´«#+âNÔ*lšvŸu‚ÎnŽ…„z Å +!·ÂÑ…yäB¶W)¿LC÷j˜ìÈÌø/ÕºÓåëp+0ûûãæOÅ—Tf‰¶r"¹üžš †à#¿sÇ^ !Rb‚Ft«ivÝT {ø¨|$pÀ­šél|Gätƒ_J#ð ÜÓÌëCX <éÄty`á?}ÖLÔåvEf>8+Æ´gýé!¢ãº_>íë ¾:5RÈí:us›8ÒÓuòD¿‡6ÌY!½Ì¦ÎÎê^.¤ª}D¤ÅtÖ8´¾>ƒv”ªè2Î}ƒ:Ò«Œ^Æ~°iCSàb3ÃLL.^š–gšƒ†32dñÚºé[ŦÌuâ(Qz"Üâç–9SyxéiïÁGDûêæžÕ*DL¸¿º8ÊÌt_çVX;‘BoØã ÕwÐÆÑ ‹N'$wOÑ.|MœçËæjfUbl…)DvH8â°®iê(³5"ý HØÝ®7éœÐ²Õãñ`ØÔ +TÓƒ†Oõµ§Úqu¬×ª)*‹¦œC(ÓQ´9ƒqW¦Uc¿úásñöOÁ¸¼¨âéÑmC†…Ÿâq™ºÂ—ó4ųygà\åüŒøs DTŸÙ«æP—éó8Á< £ßù.¤‹ù€ÖÆþàê:J°?ÇAu‚(ÜÎîl/½ægÂ\2†qͼL‰”Þµ™FYÐ!..”ï‰Vt !Ä_O¢î« ~ìŠFd˜¶ï:7CßS“}ëŒÈU] h®ˆ'*¸Ç…ì¿:õÒZôGÈß3Që¨3=‚Ã#ʦÒįÁÑNÞxSÐAÄzž[=­Õa&6|B1Ë«&‡ûÒU³5’÷ðù4"þˆ(Æéé>ô®ߣàωÿéô rí§ýq-Ï +wá’–—v?Šgûü÷<Èeuݸ>×ùÃ_ƒy°u%jöv`èðëãð¶ô‘Aä~‰ü}FQSѤ ©:4ÞÊ3£Srä¹¢í*{§½ç«D¸®ùåÿ{†u†f ó +ŒÜëÒõlÁ$C¥î§ý•ôÌØ~¢e-ƒ¾=Tu&Ê3äôÅeá~®:kÏ´«”ŸþsûÎÚ ÜÔÔ…µ÷[É]uÀZ騳ÕÒ£´³ëŒL•QÁÝÛ– QÛeá%”ÕU÷Ónwþ¸^yY>lÁµÊ³æ0åÙ ‹ÚX!UÒÚ×µ Vñ}"ô•ÃK-Æ{øyG½q©™Ø>ñ˜™Ž’VÍËv-éöâ4m vmoD2ŠãýÖˆ6FClˆC‰ìŒ/C Ê{χð ‚ZåfÞA† ý5Ë#*U|v6r:ìGyí²9Pü{Zº·Í‚i›ºÏW£A绌k{Œk]Q`qì fÅéW×Ñá¥é]bˆ]½R/ü€oóXêáÈ‹vw:˜Øå)lWzG\Qƒ¹“ +s&a5÷¼GE¼íUo¦öó³¨ôN”¨Ðu¼žyòë×ÀöSñÀG@›™BÊhίÖÃ_éÿ±âÿqÕÐG£Kot7QØ ¥3™}¦M`Æjf÷ñ>YKûœ}ùÖOQ °%ätD­ø®Tg‘@x‘à FŒ}‡¯N(Rûмni³ðwýŸúTœ çhãÌ£ÞÛ#4è“LŦŸÎ†=Sã>‡ñÿ5fwLÛ/k7£bՂΧ:C-dä±Ë••J2"D(2qõY¾¦Æ¶ž)ðó M×_}-/nÐJEsŽB„ê«F°'ôûxª.5F€<æ ûþ‹ˆœ`Åyl~™ÃµîŠ’þ„Øø_”š‘Ü{ +uþŒ8ƒÈ$óÊ{}FêE”è“Ò¬l¶[»R”ý(ëÛ>wN¦ÎÆÒýùŒðDpe ¼‚‰T§úã8£—$yÚTË<¿ùeÇÿeÄËÛ…B…NÎô-êtDÈOÚoR.³\Ò€³»Y-4z¤D»ô¦£t¡Ü·ˆ÷ ‘ªfÏóÃqÖÛSÎNv µÊ@ŽŸ",¢Zljî³ýj¬>¡m¢xïŠM±µ ‰ûm›Ïj›§´Q²¬÷Í$ÇS„ºµ"ríF@HXçêåöqœW»"í9fe\úNì­«G¾#8”ýRM]ªZÜ=:Þó—‹5S/JRM·¼Q¯Nàù»Àž¢¦ŽôeÿÄÙ3Ž3ŽÇ×FsÄn |…‹'6¨©G˜ãˆŒCtc(2¥ ¹è“_`Z>DãæL± »X_¥Åicó½§@Èj.1{Å4Ç;D½oÀ­ŠA‡‚ªÏ-´Ëˆ³"îó+Q§: lÕG”¢ I/¹R—Ýêµ½ž¦-hT¤^øýgÔHÁ}žé› rAü+M"ÌbQéå— Î/yÜ2‘¹T\ÝÙÙ—¼æÌºÎ‡:¿Ž#£’5ðñ%§;4fCY£t4ØjˆxUU/œ0_Í£@yÉ”«Š-öÆK¯þÎ|óWpU9“}]dÓo¯þ†7å®[";1hož!-“ŠfíŒÁäåðö?êo´– +¶Œ6CºØxfPÙî"æ „­õV?Q*‚Î(‚¶jßl`­_?ÙñœCˆåO&<>¾\Gªk%Å ² Ë|E˜HÁN„bl<ÎÝ ÔYËàèF„1½Ø·Œ®?Õ2¬á®qÿC‡B ’Éj{_’eþ¼‚Qâ9N¹óðçwŠwÙÚR¸~8Ìs¿´\3å,=&ÊYVÉψ÷ÈïQl(qI™ £â·ûòJenœ…-[}Û…!ÐcRãýŒ¢ùS 32b@Ü­É-}ø“ÎK¢GC ýÐ…xÿüYOæëgìŸ)KQǘ3J:Eðº÷ß¹ÜÓ{ã݇ +ëŒÖ ¤²ñŠHþžAôñÕIrõþøó~¥­‚ÄÃè¼µj¾x!#tý€e0N1$§xtm<Öx}•ŒêU?/DæÕ56<Þ®î­OE¬ŠÐ+ä(¾A×ѧ"Èå:õéÛ}#k Ýi¦ÇÓ"çÇY²†>æ¡Íi,mIræß™}à_/|–]…ñÚ˜¿Œ›Än6´fÊVóy=›ââ öƒ©”Â~#%ØàhÄMßY¬ñ¶Fkoëû=þ+øÍ”ò-Šôú›p©òö˜Ó¢‹H6«®õ~vNEó¯šïÁš¾F ¾ÙBEê¯<‚»ºøN@ÃXñÂYØÔ쨩c(LTˆvÅN'¤öËä†Y€Ìº¡¾ä{\Wæ1±+^@j ŸˆNi1òC„²N$Œj=®8ƒ¸¢Œ]Y¢ìVo'÷:cÓyÜãê3–§¨€>:[@tâéHÛ1I² ™dxe;¯­º¾ÃqçD”wN‰©;À™Bâù*ÕOûã¶“žŸ"öavŒàêúÕ±q0J%ºj@£—ÚŠûÉõÎØ#]Á=²oŸ¡ò›ªb‹»„’,d@þ¤KdxåÓðÉÝaè6ª!‰“™^Æ;ôLÅH“^)zÄp»Å„M‰¬Œ6•yÀ¦û{¯YGo™$¶+²ÜF!JLÖ D¼·88ï@FØ”%‚]<Ó/{±·å"#íãÕiŽÿç; qCÍœïHǸ!÷}çè%íHôi„]»”½7"ò5`Ö׫‚†òÑ£¸Æä¬S¾¶¾yÎ[~°Ê}K˜!ð4gDÑ ÄxrDö©åßkG)¬'Ì,sŽî@²(.„Cê¼T’ÀT^¡†Y0ñQ¼m‡—¦Ý|`$;Bõ¡÷DvRœQµœiÉV}¬xs&šÜœ‰"V!6´¬b›õ]ìpaBs9Sp¶êVµ¯»#9f_âK}V<–À½ô­4yþ¸¶m¯Rf™¶Ñ +ЂˆЙ?-Ýpã¹úß~R«ýBfu»•[oèõÐÔ×S-Jò6õ­çûïô£ú& jêõõ7É>Ðâà.²7°'Dݹÿ“J³Çe| +ߣæ•~¦Ó¤ßÀiÔb;­&c+a#œ}mÓ ª¬KÂÞþൕ×ñ”G†o¯ÔÍÇŸk½Ù9S'ŸŒÞ~÷Á®T§^¼~÷­iTÛ/³ H†UNª`ZîºkÒ”+ R(mÍãw—9ÿ¤|8YªöÈíx§M¡€Éî¾Ó|Ò6ä”¶YúÅ[Oêâ¿ñðíí£š8Ú1ì6 » +¹IkÕQ<§æŽ+âÐl(²ÙÎóëëºËœ¬ ‚þ¯â2«"s«Jý E×5"OqE¿ÅŽÇ÷ru¿“¼?þçÐçûrM]–Aü±L¡â¾ŽñC„÷qæ>ÎöJÄ|uÏ‚±°}ê‹–N£æ˜ýÍJ5n‰Œ{±{15¸LyÙëâ š÷{”?‰LTÕxr ƒVjgà:õÌ(R³¤¨H½Æ+û4 ”µ÷‰P«x,ýèVUÅ–¾OÐàÓ~6¾?"æo!ÚÖ/r9Q”D­ˆi‚F±Ó-õ¢èë’‰že¿XÝzñ +N[ï#,ŽãÕRÛ¿èeïµ["®¾Ž·¢¼ðN·ìfîuºyD‚ªqG^=ƒ!•ÅÕ¶Röþëøwõo:é!d‹ÙóçÑ<Ú€xм‚ðY*î:3HHèr© 5nH°¯Ãñ"²Ã§;êT‡Æuå$»[´üû`„øCÄ1týÍýíCiM´î¦®«°-v‚m(7=LÐEЦÛO‹ºÀ‚”2>#²‹\%Ú¥‚Žƒ¨}CD}è–¢’ç\òãš’d$ûqßÏÍ+ƒð-êC<›Aÿ!=>ï-ο0èaW9£( ³ (‡ï_KˆüÝ+·ë‡ãÀden*ç´…A'¨ùÈ©ëçй!W{ž^í}ÏêC­|H—W2~!ÕÄܨ¡åq[ä%vrCŸ%Ç5KY +ŽÑQ6&ýi_KÓȦլŒ( 8mòÞ9NÀv; j`„ô½½--ßE „&Â7pU'Ónÿë öÔ™§íÍ^ÝŒÝÌéóèæ›Màùù +†zÁßxz¾»ÄLšlÔÓjh~ehÎ3ët©ih~ÇÛb1Ðhº ô‘ÜVßý‘gªÔñ iküpH¢`)1þs1?{ ƒ¢òwì¦ÚÇY”ÔªbsžãÆË®²§+`\àRåíæ)¤# °Ð„vª1ݬA-ã%!²4è¸DÏâ•Îò1a¾H|«à멹ï/*0¡òà%h¬ršÂ™ˆ¯‡uoñ^·þÃqVi!ù²öÂøÞ"l±Âþ h/Ÿ•ºú½AGt•q³Jg +ÞôZŧbWS¨{%?è™´'°.Ô©uÖÚ…À|Kê'#=„Pæ3JLò®Ýµ-¹xv‚ô<\õ% +±bcâÙÊ»V|DÓº‚ª‚е¿ÔÂr¹#…dúlùóE"\fÓÉžF÷§È‚ĶC}ýýð´à‰=·m _0‰¾jm#·±‚ï\A’úÂj‹àý—5ñ ­Uuè Gú—A³ÀkkWW`ñÃQCîoì´Z +º³"öƒ=ïψ\®YxÙEüúé8½È‡4uôuèH‘4{(£È¦ ½ñÔÍ…èûÊ\Œô©~zADÑÚ$ŠùúßÖ÷y²ú›ÇF}w:9à ìõܼÓäuÌÓË6?#páXÒÞZ¿ëýEÔÖ;ë¾V|R“b9ÀêªHA†æb‘ÛŠmN»~UEá Ã¿„ ¡vXÑSyaéÂ7÷Öd¦ß£öR¥× ÄP²Å?ï,Q'$BC™ÏÓöpÒûI~–UÁŒUÁzåBKûjÿœ¦ÛÎÙ‚-c–¦’æŒÙvõrb~è+J#ý^èêª@¿²·2.¾æ~"ÒŠœÝý›îKˆ–4]e8Ð5Ã"P èý 1¬‘Œoò‹"GGùÔELÐú50Ũ“¶ßY‚j¹K;Ú…Àr{êûÌ‚¬äÝÛgÄ‹h +cÒ¾8­nùÒ$Ä +Ósë¿>@wÐöÿÏÚÛ­Ø“\ùÙWðÞCŽ}ÐŽïˆ<´cÆØ¼'¶!É0`†±<à»w<ÏŠØÕ]»¤F iô¯\;3wîȈký>aCqÞ{5ÞåyMf×TcA"ÿ§Ìâ^³÷ƒ@ÃÞ5‡Ã¦&¡%“Jß<§Èr''V|¿[b{&b~”k#6•­þøuØÝßä'éþÏïÿÊ“%¬êûÏ)õþßíÿ1>þîß|ü÷ÿöç/–?þÝøãÿ×Çßýû¿ÿ¯¿ùÓŸ~ÿ/ÿôÓßÿïŸþóoþñŸ~úñÿüúãÿüé?þîÿôŸþåÿçŸqÑçuæ_áýÿþ{¦}“cÿgÅÍ~£0¼”ðo®ŠBmˆƒô Þª‹¦–~ ¸9/6È(‰hËò=öŸOG¨Pµ«ö´ÞP éLŒ jØ?> eM§˜ÁÊS ê–bðÓP^¿Þ³ÚÔ¼/‡Ëä'ÚébDÖìÕí?©5]ª®¬Æ“ âAíKù°¿œqöP®|c|RWü½&E¾šêvˆjh?òUî ÖÒ´g&€—c>„œÅ—( º`u5GöëJtïõl6ϳ?JyÁn< +íaFݽÊ(÷Jh¯D·„+­ÓüÉÀÛ(94²Šs<² aFh‰- +§:áÀ[ÜyM†ztp§¡¥÷o"\ÅÀ@ª{òåà@O_}…’±ÅÜýÐį́aZÿÝ?íõ;¢3K“ƒƒƒžFWKˆ¹qçï.J,òûwˆÇ3ø;ÍZþÞ–îÕâ×ÎAܯ)û¬z€Övyûáï0ü5Þ°+Ò‹° …ÄqÚëJ¥†€„/N†¼çØ!.yêðtÛª“u¦OÍtÎåcâ)‘Â@4<ŽúýgÈ!,ðÂw8§»ËAåRÇ B¯9|¯ŠÕfêà§Ú<0Ókq0œÐP²Ú©Ò ¾ŠDáWÆŠ¶<[U\KV´¯ Îâ½u:UÉ7šaǧŽ7<÷0oš§Mˆ¯Øžª_d«" ^câðt¯ƒOÈ”6»> …7'Eœ(ݧ¦ãÖÔåû›¾Šã•QÞ²Ôx MÔ`röÏ¿£+©Ù,$Þƒòý<Ÿ†òü~àÞÑQLDrÓw¯ õã! Í!ÕT1ÒiYŽ1µm#jÆç‡Øƒa¿%†å›_H}—'\íâÑá—qȯYF)¶PE!g¿C”Ô÷. s‹Œtlá•J@L¢Š5qt…)e]Uõ¤Çè?šøªu^©¨,€QºÃbĺ±ßÆ½ÓØS.ˆ 4ú@¿t²ÏP-)ì‹CßA¯ñ¤i¿#¾(±ë VUX"ª l”^Œ ¶ I…i[qÏÖóüâÝ/@º3Mj–ZD€[mÄþ*Qè¡?cÆ!øiqÖÔ©­žgÑIÙ"rjÏŽ6¿)ñÅ€Š5íA®ûR¨ÀÚôUûÈúî) \8‰5Ôr7Ïçã×Wë› kbÆBºw{UbÔã¤Mòž‚÷C‘D‹`G÷å+±v>G¯§}Ež6[¥ ·ß˜>b¹•¸Š?ÐòK(4ËD‘‘e2BžYyQäWAƒFmqã: 4´TTÞØ0 .AòsÌo&ÈDt–<ÞlóšIânK¬þtV0OÒ¸}WažãJXñ00º‰@y…Þ#ÈÁˆè(»›c ó¼#Pæ?WÚObÉÃÜ_ h¦ŒûÈx6°Ý«¦ã˜ŒÕ+ŽÉ RdV»)„wÑî…U¨=TK÷:ÊxR|Þ/y4rÍD÷ûŒLt:Ÿ^“šO]2­í +…žÈíW¿áÄñYÁz™ÔާN× 3ã§R×Qú#ªËñ÷'Ö-27ÿœu”NÓ¦îÝš,Ëeþ<{ +ì)^ˆ¢.夼z BH¥¾G4¬rW“×G)¾GÒ×8uwÁH¦ùc¨™{W£Çëe +ŠÞÇtŠÅÅÅ陂Ìm;c‹ùM„uµùú!~yõ•$›É• Û-žAªB­ +ø+ª9èY—çUa/ß×7N‹Šƒ­e·Ùïç™$}!/¤BÓßÉ éÙÞ‹™Ï­)Þî Xȉ;[P…Ó>¹¤"êØ‚³ÅESÌÍKCá2¼ÄÅVÚol’L^‘.J¾GDÙ^Må—SyâMñ›S5ëaçLîmj*󛈯0Ï;º~¥äIø¤N¥ÈPPªµèœ D"4e]ªK¬#KGÑÄF‹ŽÙ[€ß­ôù{ VßϲÓû*¦[Zë´´U,­“ûx  E£ï1†³{x/áû„7Ù¶FýŒÁ˜‘ôJa$M%€¤é#,Fs¸£m°Íߣ ®ß7§YŠÇ/ª,®z2g…©'¬:™“;®)= чçÍ8š†F1 •FÈ/D+¿†«²IÉé +;ttÑÅc]äÒ0eÑÒ‘= ³Š”ã½Ð^²Øw„áŸQ¢º+š±ÝÓ”.0›Ðèµ´J”¸Ð~ 8Ç<ç+EUCn%®Ô@U…çm‰ %³âTÊ}!Á^nÿgù¥qOS¾r¿­1êxF¾íe¾A íÆ¶í=H)o@Pâ¹”cÆŠÐVêßE¤0AD±Îëúô ”1}L1íFbbíŒ/‰êü£Áöx¾GµØ³Ûå%,oçÀã¶’f3ÇǸ¹†ìŸÛ·3$­ q~’·(ä/Å=íõŒ¸ÛÇúN…«öÖêžx¨3eä‹Ï³‘÷€û†ºÓ|ûtWpbÌ0­áÒMùæÏì|Š,Œ(ªDÕíkT:'(g KãŒ9öôÓEEAôÈ–ª‰Èj|ç{D<§Œ®Ad†ƒï7ç!Iªs x'#ë'#Õc¯†!Ý${ÂûøRÂ98vȨÂuyPøbOeK3•ó …újä½]µøýó¦sj<‚$ÎâbǼ“QÑ?"Ž1å/!˜¹âZ¶³‡ô¸E«†n +ßf2{Ï ÈÛ¢ø_ÍÅb2bûKÌ%š+tès$b‹|…ÈHŽ›Ê`MI쿈t¢ñÔÌ ‰÷ñï }¦ì§WÄŒNîVÿ2"’‡ÉÃeˆ¿GµÐ|ë¸ØŽÈè@Bšî5ÎÚ{(Ôq”1†é§+1€™ÐìÔ¦cýÒI'?£÷èŒ>¶ ¥SÓ¡÷ìž(#B©wlõ|[ iÏ';­bø^_pþ'ª;¿ÎScB¤öœ§OÍÂ7¬5Ec˺? +Ocß?\ +#(u숗“à_÷#=¥5¡ƒ.Q8H€æe^ê!h,àQ€¸Çýïi›äkÄoo?ª(µl[%o穘ìì”ÖŒ.€(bÉBà²}ñÝú÷¤Ì?Jº¯ ²СÏÍôÜæ1´Äg‰é¸i7VöÍv,´´Uã9£÷EwËgGk<ÊÜ{à"²7öŒÖ¨}zŸÐ066 I’[ú'Âi­.à+›Náø"à5 +:5êé{h@q‘}€˶ñðËJá¼ØÊÔŠjà%ýóS0?'ªå¶Ý‚®æ\ÈHvÒú  ¦}êDüÍ÷ο©È¥xlå«Þy; `í 0•MïéjH@”°EoÙ§À§töö@pß*ŠR€§›D +W +EÞ<]ãÚ#ädÞáþ»³\H£QQDªsñïª]›~ñx×sz®ðÊtéÃNgP\¸ý0Â…|Ö¢CÂþÚKh«³3—Ïjó^ëAŠ¥û 3 VªTþ}èØ£ †rÀ•ÚðÔ§q]IÂán>kÊ Vê_þ9ÅŸCû({2Û®tX†H·È…­«РÕG²{QŠqûá²}P¿ 0}Ë:G"/Ú“jÕ×ýÖšŠcÀY\Dï=!*ZÄœÀp£ ™JHH1±¸|XD–Út˜H¯ƒ“‡ áà ¼b{FTÓqX¢Ñ’© ¤@;ôËwz³(’E•FZ´ŸŽ¾§Å`4±{H€1,ÊQrš`zä‡ÚnLØ`”UF„€.DjO6ã¦ÄXÆîY…({;D…T†ÓÛµ«•´?Jž’$Ä–ͬ¨/ò~q’ì°®>;á¶×•:M3˜Ëx‰Äýd?>®ñ=Í/Y= :Z?JžìIR1]ÝóŸ1g°üƒ•ÞÐ_á,˜óäã´”IŽRNao‚Žd8&& F<(X5 Εì˜tìÝgÑpÁ(6ˆFó¿4Õ•û.ĬŠ2¿? ÔôæÃlÉ™‡y +F§[¶nþìèsÅÑvF7OQðu°?aQ1µÊñ‹"ÍÁušýÇŽ×ìG(6lé›ÑÿV9„ûýáýRü.¤  +˜ÊÞ΃]·¥J4ÉK~'a¾GŒƒþ®Œ÷ƒ®Â’M¼ÝÇɺ8u³ì#Rœ¼¬7ÎìƒY¥¥P¥î¿DÄo §‹G'ìoÎãá=cZ­á.”uœäï=.m ãäKd}¢G±¼Š-Ø÷["?¦Åc͆Í¥labt Í +ÚŸ³f¦n=?“Eÿaï@Éõ¢‘ÁNܨՀÚŸé9ÀEUž2Ç£-Üq®#f3ô¥!Ê`G1ÕÆÝ¸ðÐÀ'*N©Xüàjƒ”n9÷[™”…2"¤ë¡?ß–DÆ~YMDYæ¢-G¢(ï°´6ÊԦ„´£†Ô`ó<;#åõÍa㘻•÷ˆøm¾fûõ¦Z-2÷¸K½ŸžqÃÏ‘‰P\/uÚH €hÉTúðÛa²KË(Sÿûi@º°ƒtÑ?1?ù§ûÒ!ùCëkJ]‰¾³ê„ˆŠ1+0ï Ê¹Ì.†EΕ…dYï«Ä÷ÕëQ<oA48°´(·#NŠ&’‡ŽN^g?°ç‡9Â*|Òè/yšûƒ/õ´òÕ4ŒR9Þ:¡¬ÅKÐþó +Ñ_!ŸøNºT¡7ˆÀÖÆˆP?¬Hü}^)VWÚOÈü>S—læäÇótðÔDmL5°²;Âí‡WbS +UŽ:K~I£¹y^V.Òùý¤F7vÙ¸Jº)¨Qžx€AÇԵЫþ&¢¬`Am*÷+½EòU3ËDh9õJÕÐWÁ÷’lûM“…š³jŒï~{²¬B€­eñ·¨GO¥¼ÚQ=c+»çâ×mÐoKþü)¼XÈÔ7óÌ*ïëÌä'œdü)¾¼¦Œq Ô[? º+üؤ ŽÀM€P—ˆ‘Ê:¯Åûn¶QÓ#ˆ†xHñ ˆÛ #(TÎå +¬eÿ#8GãsÈ%ÝT‘û}ÖD1ÏÓvRÒGJÁç†{ù¹oWLº$ž®èÏ´‚…™&žœ3<>­LNÑ.Ê4Ÿ9¦®=âGZmçj{~–µ~¢kÆ7%žéÞLLò¹·pÊ>F~»ëÆ×(#At&ÙHŸ¨afô¬+\ºB¸´ï§ùØ!_ïQâœæûÁím…}’ÑtÊP䬀“îɽœÍ%ž&ýŸýèËþ0¤wðá +óïÆ‚ðL°†O¡7,^$Àc¸Â”¬öN*±¹è3öÌÀL¶û׿»)L0úz¬Ó©Î!Ô¡œ+ ËþšŸ-;ëgâ~9D<%%íP€^æ9y«?ÌvF@ÈoÍ’…>üM€<Эŝ±'ÃytkåG°¹öïYý—vù +ܳM 9$HòCŒËð@hÊ3û¤xZ—Hî¦'Ç[›ôYfü©ø )« +”ù¸^„úÂzµüìâ#õÂíâoü‚ûo¢VC•^gÐsIèØwvû +̈/± i¡t#¶FÉñÍ{_n<žêNIöQ9Loÿ!.µè˜2íòeZAûU :áR€ª‚’©#€ÊŸj@L´2:Ùýë`O!–¥«ÙúX+ áoª€,l¶ÏWìM7ML}6 ½§ñÍyÚ +@ Í‹$&›ºúûëBü{øº|DõñkvÄ¢¥ÑÏæ)Ít¤%AMy‡’LDa;‘ÃF]<¤aŽÈ é€Eˆ ™ˆª¾ ®¨E÷ËG§_øsÝï„m¿*®0|ÜQâùN‘Ôàmö›Â`i‚§1ÚaJÁ±Ÿžb:AÌ`ú€­žÚB9Øé{ï*ßéœ$99Ubš¸2YÆ2´Þpü£Œ¾7¼(ï@Š´6è0Å5‘L¤¸líËùõð[q€Ôâ(ÞΣ1?~æîû1´Ýné~ý5Qm:™´š/Ëö-¨…rO(–,•W›ÂÒ`Ùf€ +¡5`Ü!lꬿo•6DZ@ư†À¼…©|d_Õ§õa󈆫A Þº¢^ThUý*|ë½$R¾Ó3,ß“ sè£3Œ÷Hp]¥{ÚµÙÀþp¢„u È©G¡'ܤl?¯Oƒ¨ZŽ<` +šÐ̦Ì4©¨´ÿbøg:ÒTØ †¢B|eËû  +qÎOíä‘ʼ@·K39n·zO„í|t%ÅPúh‚Ùù“\–³œU'þv 1í "EOp<±tH@Fc\¼]l8æJ!9O…{NŒvrŸÇ>­Rd&ïÚ +Ñ:ú~òüË’ç?/èר‚@©¡:1ÂFC,PÆ*üXÂõÀK‚…ÕlÀ5Çéå!ªRåóG¡¢¬x›@!)°š°²¯a¹0m—7¬šâàΛo¶c(Ò8²ÅÕÃFGJÜŸU éšz;DLÕ}ŸqŸB¯è*®ÖfE¹ÒMb„Tâè ¤ržl[;JÌyÖ|[|ÚeOÊîAFzm„¯"+7¤qÄJdÌAsºÛHå)ظÈtѽ‰4Îtøh3øÂŠm„üÆÐ¾¿ à*bY­Ä…zZD¹²Õ¨z*5š7ib5’.àÓZ§¥Š„LI}PB •aEö_çÍ£ÛK¼@_b²Òµ@Ü;©¿@ƒôÓéì‡LÊ×ïW•Z+ý8´¾úð•ñ¾íï®ÖÁRC p!…´¶Ÿ9ðL#(_¢?ü0ã»Üé@O€‘=ŠU_Ðã”Ì,© ½‚ñËâj\‰]œP€¬è +ñî$a^°dœ#t†‘++`|½®ôÄðb6}1}SI Dª¥ +K<ê"×øJ´“¶‹Oä T¨¥`×´,>eKG0Ñž‰×¶pÑ1`CÈ¢í-äìö÷Ñvª?°KV¢”´A³bµ¢ð€,TÇw* +Í+Ñ‹æJr„+’li`×;Ó1 +f ‚E¶álŸ0áPFºŽuô «‹™#av5µ¼Y'ìH[§çkî=V¨ð$ü ó™MzÖêø:¨Ã‸ %Ûð™ÊNWIkiݧ´fº”½íÅÒ|²„—03«Fé$0µÀ&CܕЅ@œ˜xšTöp@>öª{“æ¦Ypÿè·aWDô2j»÷~ð:lÈéöÃØÂ¹ÆV3ÀÚñ¾zZ—Ò%†V‹SØŒU6n9BÃË¡šM¼+ôº$•Áš|¼4')'†¢è:±çb‘eòQÒ‰ ìg}€f˜TÐ)èçX-«ÁjÉZ›jAìæ§ù[Q²d$iF’£š3œo€]¨A^Ï€ÈoÂÜ2j$4ýNâãúhjT¢t¡HfúX±ãøËIØM뾕ÅÈ0=÷$ûWù x÷.Àƒ lÀzÞÐl_'ñ[(kê4¹·´àyÙÌ‘›<‡ BþþL® ¡peô™IÄŽÒñæË%ÇAáx”ºâö …+¬µDå Z]“¾ç]”0©kŽy¹¸èFGZÊ”ÆÖQ VH`Æ>µ€×¡µ pî¡f¤ à* +¬§»OëãžmÚ1‘q°7 1ìØ©hå²CQºÆ†¨1\5$ÅRFùÂ3kY•'}‚(g™ÜVäâW²Ld’)8Ä;Ên°Q,£|% ²³>x¢ ûžƒšS5ãÅe‹¹€ˆ=A-”€`.h•v“|˜ Õ¼sA½-6–BÑ,œŸ[Þ0¼ØøhV^HÏ…hÞ‘»®#®¦ÒXÙKêÁ:±Éí kº DŒ!°LªRR¯ááb§¶®ØÒª-/0»¥øÿëïÉÃws€r¯±×Æ‘AÝP–™?ÄÁR²¢¢ú*^;-iJŧÀj:{wD"§@ͪ¤)f í’ó¬èpPì¢Ã{ñS +œ€%KÀ¤%)ÔòøK8£A€ºÀ2JNîj×>`ÁØ„ãjÿ›> x°’Žú¾ž®;›ªG§eº&„"É´Š|,jV SHLž}ô/k$„)Â0B÷›áIì)AJÉ¿«KùzÃNÚd}Ïi•¦[öã_g+ŠÆåÐ!ÛZÙëNªõEë Œå Ì,Ýx”K€/Ã2¡qN‚ãsÂFZ›E^­xsØeòr T,Ò¤éxne™Q.§ ×jn÷ éCžõ yå V–ygOZh *–~±‰ì鿌Øíy*ëµOœÌœУ·°ÇJ×T¡ƒǨ +ó0¦{¨ZØ':5âÔ6ŸÛË'݇aÚ@ŸƒÎzˆS€E˜€1@«’«MÁaž`)ÐycKÇ,Q¾¾_ Á¬.*¥ºðƒ<¢Á#Ž˜ s9 ?ß— +b @ŸŸ +£lO>{Úh±Ã\F@}¼Þô¾ð6¯Š? +÷§· +õêyìÔOu=çÙƒòðö S¿1‚ûBfoäˆSõ¨QÝ^Ò{w¶°vr»ÈtÁvQì*”ˆhç+ÑØõRöôö᫲ªfÜ +Ú=?.Œ˜—#½TCφ6>‘ü‚Œ!ÒXIáJ¤ß¦©ä­QCЧf…švF'ôö¸¨x$û§#töHñªZ;7]ˆ°Ó*w€Ô¨àÿäJª7{ü0CÍy¨7 wëÐ÷zÊ9è=ìƒÀë9@·³DSÆ›PÔ™u‰c¶ ×=÷ˆ)ÈTœšmWRÚîóÁÛoÙ< 1µÌ6:´H$±º÷TŒT†—zSÈìÃù‹†`û¡™]òö/ù«ìË^ºR)hûv* +tyÿ}¤Dˆ( êÜé< ú*°W8ƒ]Ò +"ªCœƒñ!Ѱނ\Ù‰Ùyö€ºŸ(Rd÷²{Ï»Š_1µ“/Т…®^v +a˜ý'„aH êýejˬbà^`*´¬¨°ÓØ¡¢ÅVئÇ~Ü Ò&5@Âû ›¡¦à)ÕÖ8™ÿ{/È‹FÎ㈘/q–te2%ÀÐ7+­,GÀS–ôt²#épÏápí¯>Q/±BÊdÊbB5Ãa ¸¡ì¨õå0íJÆr‡•§˜6»µ)éPEm×ÏÐådçúìhARÑ„àCëñ ®7MÆÇpj§ÿBy8 ¹ª‰ »èàÚʪ¡)³'Ï~}Uh{Ü'å;vVÄlIÎÂ>÷¿Ç= M¥B17ˆé¥~7œU)Ó0Ù«…&ê%šÔP‘C‰|DЭ Þ‚C«Eæ§"¢ú&”-ö›ûàIÍQˆ˜u:]{}B#^½‰ +Á ìÑþÍN¹ŒÖžS½ª9l™éÊT›2«)00lÉ©€‹»Î8àþõ|á"gåíö’¶¥ ŽÔs`ÓDWí} ­³C×”ÒŠE:+ý]0ŸÀq·]ÂÇo&îÍ×+ à¡Yrî ÍÊ… +kîHRžb÷´¢ÄÉ+¿ÊQW!qæUd‘ç><ÉõàYÊíEq`ç;‹­Eľ¢Û¼ª ÖWÒ ïå‹PÙ8]¬ ª³4ßiØâò~í¯Y%TnUe@ÒVl¦!Ù]îíÄkÏ‘£@‚8/%•þ‰x˶mTN@­ï_~AP¬! +lº{;Äaó5tÖ;[0nòÓ‘:ÃÆ«1 E%0=¢¯díïY1V‘}›A®¥.Q>·(²^gUàÕ(¦Õ5ôÎà:rq&ÍyQ‰-Ò±J[nÏO0ÈÒ +|£SÑF>¯bÛP­«sø«Pëˆgähñã*í ¡KL«æÐl/Ý™rR2]ÎB°ù¬ÊAŠš` ±·ƒÝïÞO)¢Eì£*Ý•‹~<ˆ"’^sW¨ 4_‚Ý«¼p@ Ö +ÁLþ”é¡Q¬#ίm?”¶†ð·„´ýÛ‰žï8ÏÙR\ÝmÏž0TÆtœ¸ÎV:?,Ø¥0zœL+öðHÏÞk¾D6 j@GkôNB#½_XþòP(͇î?F¨B«X‚ByH|kƒôrÖ÷j&»PaDêBYûUPK4ŽÇUCma0C^ÝÜ©‹|ˆÓ­£»ˆ ?~CñžV#Â)>ˆàQ¨XQð€‹!tûqÏÖNÿ?J¦¬:Àqˆ‹¨Ó±_Yúc8m¸íïk]ç­…éA`t´¤.j…bh Îl¾”ÂÖpEÔÕh‡ ަÚõ*M#Kêšc»Y˜ÿN©R—.-…•לæ#¯9˜‰ÓEá +ùpŠ! õžv>:,caÍn#x‡Ù[æƒH™¯!@µe§ª&OŠ7¸u´šà(‹G!¿Òý+a ~Q{)®‡ÔÐsäÓ÷ž÷›¶K@¦B¿‰ú³˜ºŸ§ x¸ìu*¥úIÖ™1g¡ÓTõƱ|¡$Š:0ý‚ Ê4›c++%#~ÐÇ™E+ŽÚB€Ã¤®}’F²gl½égHäT¼àFl¹K%xÐÉ/@WbGƒÛZzn&5ôã4P4l8fD ¶Yì­Åˆðhºe1âY9^¨@/¦à +BƒR%Q¼„YI"0ˆCj¢Ôù%v¶Fì…o„iœÂ¹›ŠšÏ…È"x0( ÿóx£Õ Z¦Ä ¥^ç<Âüì+“Ã+!CÕ n èf‰²8”»6En ð’îÚó t÷ö±š‰Ëº„·Q÷u#$‘"d’Éß÷dŒ¸Àšóu^µoÔ©ÚõŽ 7cƒaËU íöFSä ¤©¢§K9Õˆ°„Øœ­_lNðAT (*©Ú‰ÛÃ«Š§” :¶«¾C$Ù!-÷Pn+ú›´²¿K˜¾VaZÎ98S1ì©UެFpeK?È¢R÷çq®nJÑ.1¢%ˆ“rzˆ‰Ê•€/Ù¤Pš®á›i=Žb{Š\€Ôñ_íVå÷žX ØÀÎì<­YG@ÔŽ™½`Ð2¾C]á÷ÈÊ´Ÿè é g!ÊÕ0Œ +Œ"g´|ÒK $i×›#âYÌŽ0Éâ¶À¤h}÷Bv‹‘gc߲Β]@<\å•N ª‘EÆ…lA±-*aùª©Õ(¸áŸõ*ÃkaÄõ»FƘ“Üž¹¸Ctdö Õœ ¯Hn%Hwžö•b#l‡sn¸:ìÑ™]wW¨lì¯Ò9†z¦Œ£ƒùVœAÙÈÙßS3Z—D™î1©À '"Ô‹ iD@4{$z\½Ó€»ÿþ¢{Ы ñ㈤›‰”Qm>œ‹Z\·ë=¼¿aÉU6W5Nq—à,¶ZèÑ`,û”)Dt=Dļ“AœŒø™Sþ%†‘°ó•\Ž‘ôs ƒ$iƒ—(£ÎVì:÷2FªîKª~Õ ÷,¦ï  ‚ÅÀ ¤¯ÄôDÇ/{k–¾wHãNsù2HlˆJ·:©YŽWP3& +ùSŠcED}eÚÃj飃ˆH )Pt7ÞŽìó¨ZLܨº´ê»ÌñŠ2kV:Q͘Šð¤Á‹wo¼²Ê:£#Êe{ñ§®|@oi^F-©?ã9]s·yDYØq!@trèõ–uztöOE<ÏÀyìýa>£úZ¡.ŸoT‚ ‰d…´ÎÕ2ÍLðõBI5ï>…c¨.ERºj ˜lrŠ¥0ßlŸK…d˜âù‡2ü¸óWfîb Ëzôñ‘Þï #ö»³JöÜÇë:;x£\QÈiç¡úCõã…júaîq2`äZÁM'B°2ÇVtBxTt@É<£YëØlë +Ú:é§‚%UH(ðñ² c¨ãë(Œ„Jƒ«JÜ +ÓC÷Iãó«qÝ‹J]áÞ…}cÀ›„Ò”é<Tw†å˜°ÊˆÓt±l¼“laÑáxàMOÖ%S¹KK|¾ÝžnuNô•FÒÌ;©‡ŒÐqØ‚‰æ-³Ýk>Ê:Vª—òÓGȤ°½Ën؆³kÝû¸xz^h$0WICT(AŽ+2µOŠM.*ÙñaíÚs“|û›CuW!°3$ìjj$2‚ú¦jæž;öª8¢fc¦Î£9Ôh7~°›¬$5ž>WóEÍÐëͽXLMª¤þŸ'¡”8rð;Üá/¶f…4€^K*QÀpˆ*ÎÄõì2L5C6° Š:p!ø TãJÕÕ”~+`}PÐî•ǬYôˆ(K(‰¡T?‚t€ ûW'¼üŠçéM»“BìNFö…îJ(ˆH >RÁâ§î0t 6ìÇ‚e÷¦ál O¤PƒX˜m^¤m õ' ¼ò'׈ ~üq]ÐÆ5¬5‰9‰qÙ×oç@/€= +¡–Q¯¿Òsi÷bÖÛÁ¬Úê›lj»eÓÐFÆb†»Q‰F¦.(íÂUa£j27¨œ,ô€‹5¾Êö´O»UÆ„.GN2¬Îº¤cé…÷ 8Ó‰€5—ÍsÆëâhP./©¥—T:Ì·c¹Æßµn¥ý_sH'ºm†¶º}›A¼DÒØ—‹]Ý¿-´Bª[(ÚˆÏA·jX©*_PvE-d÷ƒ‹1ÛQén=`)å"òq…®e÷}­x¾˜W2"°kwº•7¤HE¤ @s·®xüt‰¤Ç>eFçüéÈf‹ŽmÁ¥Ù‚´é]aK`ô©xÓ´ŸÍ7saÜim•‹ÂtL±hA7ùuˆŠcLtÛ‹Æ?üA#Q{¶qåÉ JÅîq="z{¡EXßÓЈ(làft&V0Nv°·YB´yÿ€T F5 á¥5C÷@<*˜äª%||¢.rË¢Oœ™¦gÏQrfÙßóG>ΖÊÏ’kÍS/ `]š-AÊ$Å,S9\ªØjÛòƤ.€¢I¹©5V Þp’&›óʨ*pê`YÙ®-½tw[X!/¤öd;®Æð7AlQj‰MrÃB&”F-bÖ½”¬'ôôÜñí£ äâ÷êªyñ轉å¤A;RP1öS£fêa¶Ñ%¢8Ѧœ3}÷×äèÔgݞΖU¾è ¥d_hT׊pÕ´–s–mlôœ¯ÔŸQ•º2Ñ +T³F9EÔ¼ ÏWKTô£‹Såÿ‰k8œ2®²*½vózúJ +âªFG! Â!Ì¡wB­0 +&áÓ µhïXŒé °!<‚ÂN'íb\+4—m²3'«Ÿ5zÚŠ!.µ±„ÒgCŒb'ᓳOv à‡#Š«Å}Ϫ¡Úí[wya+…jÎÞJýYäÑßÞôoÿ¬_ç_y¢_1ÌŒÿûÆ S¸ +µ(3•wQœ:K1Þéù˜A™aÒÙQ‹ +ö[”OIÔ9Õ"uk”Ø.ì<¾(æÄöÀÞÝ¿i’$â¾è†bâˆÂrÀÆY×_–é^Ý+øn› Uˇ!ñÙ¬’îYPÌt=Hë¤õ|b9¯<&"Õ¨2¹¤¤ÓóÔ&–fÂÍŸ1BJ±»¥öòhg,øõ6Q3ÓH{]Èî ¢–xŽeP»6)ª9 3Ô­ËQx›Žl5÷FĈ]êpcC€&¸7ÜâÀ:®Kˆä=G ”‘Š8³EwÍ.07b”:`tlÕH’`<0/™´Äü»—m§­øº…±DÜx÷æ»PD)Á¦|ÂW=™†Äé\ˆuŸgFõ$TYÇq“é”BüÛáÙöJ¯³fâ-ÌÆÇœñLz¬cVþX\™9™õZ‚"³àL[]›Ñ”7Ù“wöІMøÓ€Ï<‡Œr]lGŽŠÏ3[ׂŸž©¾Çâ›LˆðçÇ­  àÅ'“:A‹[‰e²…Ö< ÷©òÙëb}J˸Àp›±t–ÀVùÿå9ë ½~4ô‡•Uͱ(°ê޳ûþE„hæáHKîr|U¬vN_Í>ÏfC À öo"|†£ü|®ô•V¬ÖØÐÓS{µ×(@YCá5Ñ+MØU11ÙÉsMÏë@|à‹5ëgŸÊ¡¶€¹¸ŸÈ[ËÚ?”Õ£¦o s<¹¨×©¢Õ`¬×ew$¨¬ág*ñqõVÒ,XQA¨126[]ÙŽ˜¨ŸI¡DÇ#}~‹z˜š–s=»‰^ lÅ™Ùß2ºõÊcÈlc² Öi¹™.¸=;¦Îœ/œDõQÍÓSg¬¼CùyÉìùz j)jRõMT9ò¹ yð¡·8Ö™ 0èRø'¢ TMHꉨ'¢_ãW=ŽßŽÙ x¬qèTb‚n õ¨0sýñí|‹‚ïZ5èIÕ8ŒØè½â=/GëQq’!‰è¯M÷õ¦ëyd¬Ž±C¬‹•KÓ%0ìS`ƒ}ÉL!济¨`í™nƒ0 +3JB)?Úõ°qH³"…:ëçˆ-“O㪲Ä]•(ÃPǽoL××óÆš€¼ÿ­¸w¿üü–Wm¾ƒk¨!h™Ö +þÍëkÆx9æ{n*• æ—ëI “¬)ß É…xþ¨(ÁÒ­…mÿ$dRçþE ÃvÅT:{övÖ£ôÝŠ¹$*Þ{ã¸ràwë’Ù»ŸØ›îwHXÊÕ×#ªK›¥Ÿ 2"DQ÷8ÎEÅ”©X@#eR»ÜËVþ‹©×_Ì4ÿJC÷Ã\e¿k]/¡PO„Ó‘.7ÝqAçœJ”‹n2÷âÞ±s +Î)=rn¹E‰–ÐIþ­ÚÔëÂÈ£ñ1™fX&L>–B¢>P+Ñðf O9O{""u +Eôµ¹’ò¬P/S\I¥òùînó<š½Úvkp#JeùXºÌi±ºŽ\ǵVÌ +/‹RƒMJ¾º6 8z[¨YУȖ*åÉÑ.î°™Ñï´·pR3ððùÀ²Ð.-¡ï§å'²¶M¹#‹¢üüô£³lNíh€®Ê:\PCÝç +ÅZ…ÌéS»bhn­cÔ̦Zß’Öƒ¸´[ ±évŒå/üÝýòŽš%GAÞþgS!"Tÿ\n9O/aÁql_¨ÜGDp…±ÈÅpb¿åXyÅZtÉ9(Y¬)sæ¿fæ™øV8¹ ôœ‰‰ Î]ùª(kµýj§Þ—:^ÝX“Õô6aKömCiŸGÿkoÆË·86m|pÿ4oׄèÙžâëÙu‰å†ü¾‡†ž‘÷Ô´Ô‘µ½¤t*_,ª,R7 ©ò¸ðåŸÀù8 €ö‰âɺ­ Pöh‰Pbû2=OhSN7'‚yVÖK( +»áòÒ9GBÔk'XYNkVtÅÙåw*ašý0z¦TÛhÿׄšÖ)å‚ç§B*UV& s¾Fľ¨ŸÎg-]»à¯Q¤'M<îŠÛ(z@mÝY +¯ÀÃSÏØÆJ;E”ÚiêõÓE‚8Q8úµO9uéž.Î í(áòž„͸R`,´:CÁC­="ò«rÛOéª45bt>BÌ¡"e=7T ¯'ÎÓŠJ h¾FDgæƒ%®K˜ºŸ¯è3¡©EñJy<Γf†IÑ^èýäf€ër‘‡Ë̦–TEÍê{ˆ/“áxuWQÚë,â-@Î ÂÚCwjþê”Ð÷\ ó¯Ù 8ºmíÆæí܃‡ä„Æ‚L|Œ„%e$~•Œ hÎþõ?>ãvMöKi3ãKÄoO3C]]IÖ7Q +¢,‘úïJ±Åû•½2ªí„edèØ ˆiêx}öý1¿Ÿƒõ&Õ4lUâç›æm4çx·¯¬ã{”\2ä°]SÈGªQ³ÅÛfß“Œ·ÏPE”Ò/õ¹\®½ê¿<{Å÷…šÜu¸½ñëïñºê‚É<â-oãƒÂú©xUšãá`_l1=ê{%ø%3,ØÃÞ=b @WE¶ôh¬†4é󸆡²º· X¥à»¦.¬ÖÎT-âvR€~isÚÇ \•¥o‘aÔÀìôdÔ— (Pĥ⾴Gma鯴$ Š6‡ðkTÖôs Ôf”,Ó%sÈ|"«ðŸT.{¿­”`ld˜õu6S9®“Õ×m/ï%ñLôîÀ3)D*ªtO XG,5ØÑÑõbx\ô<·XÈ–Õd+x¿Ð$ΓÑé<Ápl|0ã’;åÞxiÕOy…uú•ìèo¹1jG{£êˆ`ökY Æí‡8Ö¯’Ã~c}ÀØïæIë4‘¡!ìáÙ/6l+SÉ5Ò¬ŽrÌsºšAxÝçwu¡Î§–;§C0ªë-0Cp©Ä'V=Usa9%žc›³Ø3 ô·ïÆ{ÇuÕ/Þ=À;úâG)ËlI |y”ÎÏÈCÛ<­±ž¯*F ¥”ÌÀ>Íšö„QwÕ‰ôÜ”ú•.wât‡õͱÊÝã,S:>;yÀ¬”ä<¨P1ŒŠ%QyÅ$ö2,V>ÔÇ£^I +@S=K Žh«8š6Ä«Fôƒé'eceÝ[JîMÕ]ÂlW¬Ïâdda"H¶¨x'¦Â  õ2°¿ |vßÁý;".±üƒ<5'Š¢Fnoý;¶F…"×´ä´ò›²î?m¡£=_€²–dý uÀî} ,ˆ k©;¶F?’=•¬¤@·,ùl~q€[z9!}=8R¨só5Áví‰raÊÆq~‰×äü‰ì©ŠÈ§¶¼÷¬0%ØoáW{úšm¨ÌÜFŒNΠ–h ¶….‚#' žÓUÅæƒHÈåöM†5ÅÖTïµIþe”ç3Î÷h¢ç¢â•VPšÇýC¯¤Yßœ_w:Y|=¨œD (H9~®< a&‘ôbÎþšÓ š˜÷ •dˆTÖÎ!V½#=t?Çý6-P3þ*,‰ç|6VPœ”ºÎéX+¡ã¶_=És +‚™£wÇñt®×û"å$@B¡j¼5°ø×&±xêEE@r•'~ ~qÀ_9aX8§Àæ™F6ž1”J¯½÷8$éØª®Ÿ(ØqªnŸ©|òŒÓ~…ª2%1a¬³dѲÜï8Œ øâoüŠ(ß×o>¥;eŒtÍ¢¹gFøý»ÜRcÇ–ùC£¤À?÷([Ç8t;+äòßâð÷vàŽÝ‚–ÜDPt}óqÊZjÿRÚ¹MC”}Ö÷ã&Ó9Äîq£|•Æž`Ùí˜Âô¡!3wþhy§\¡! £KyVÅÏ Üà@ƒ)¥«_øLØ6~w0”Ξ³°¶ ëN`G 8(05Î!Þ]9B4Q$¨\!xJìâßøë‚À +zÀ¡rÞCåüî†êO9>%¶"ëúë§ZÜT>©'¬ÜÇ›’Îðç¼ôGûjRÛî¡ÿë³+¢º”›¬Ë{™7ÙÏi¯„{I\gØy œÇ™¾Ï¿·ƒtÞÍ`€BÔÝ»’Åfâó@ì^FæçL‚¯ƒ 5ÔvPp_YAÄ\Án˜ÐPÕ;/nØÉˆƒ:£¨L»ø”â@‰žÐþ<@çJ­^ªª8UôÃÇõ ‰·%T£xWöã€ÙNô¬Q¢æçó[Œ³­Dvò,K|m“4ÄéqUÛ?#ú£É hÊ5e‹o¨Àn¿°²¶3…y’Á×AÐz( Qµ[ÂüúU~¿ëáõ.ÿÈ#ÄAEê´L23Û7áÆ"ƒŠÁƒ-ýêGÌdzä¢ü³Œ”zìÐMË™*Úž®Ã­u#ÞÛýS ™ê |=ðÛÛwÚl€òiïQðû‚Hˆ;‹"ù8ÅqòqÄ—Þ#¾›¹ß¢Š­f¤€ǰ£_¾£h…A“IšÜÒÎG#”¸1Ñíóq¿¦ãÿã)Ξ’i ªxhNÃv•¶DEêA°8*îpû´’JIÒÈ€»›¥ai‰ +à‰Ø¦ã2JÂÏD…ž={O Q¿½œ‡·ÿzvȱ¥_«·ü|óñ=5‚µy¸)d4”$ERP“?pV8÷n­q ™ê)±·ëµ`T=QùFY'X¥Îy„Ü$1Ã1O„èõÀ¡‰°Â‘C­ü{ãJÇÜ‘&ù˜)ø˜@É `Lu:a¡h¾Y"–Û(ÌÄF°=cþ#E¾×Q¼šZ•Ñ- wèËÆ³L?tIÞ{O†EåáE4ìÐNòñˆ[Ây †Ìùu,5µé{tæ(qÊÕ­ÛTø”çöˆ)È&ëNk‚º†¨ÿç°¯À0–ëd³\j FHêÓV#ª‡4ÑóZŠòPÔcñ<,”û<ɦås0(H·—ð?뫼.°‘Ø92º²_àaÄ|¡p«%M%/ÀÇ®Á€6‰[±Â]¶AvI#p§$‹nÓW)®ëÊ.}¡ ÍÇæ9´íUÏð®{—©j²Á³Û¬Qhf0õóEÃñÐEì{Ÿ¿ˆî³ÌAó B©$¦ú¶zê;ó­!,dÛáf]ä3—Ùñ…ã mÚ}º™d¶­¼ ðf4dDnpü‚/òÊTêWð>×—·ÕXoFÂôp<“{YÈi–ϣˎG`„ñjpx!S[èù”׳*ïñàMõíã{6²Oå}Ê<›Q⪤ ôhÞ"üe{ü²ýª¸¾Ebw&Q÷97ÚâFÇGÓ{ˆƒÔ)˜|ç…Èýh² ôXÆ{Tà@Ým=ñ¤yÑ‚VAÞ*ÔG`È…b–u`$@ÐrÔ*E ÕT4™&C@Š_ –ï}……È.Û(êD‰»Z .iu2+!é¦CåÙZcÔ˜Ñt3“ + ÚñÑjÚ_èZ$÷ãxE"³rHð醇€:Š4D L›“c’Õâ(_štiQ=@ÉÐËçù]MG†b¡eŸ©TÇI´¨ÀÐ¤Õæ ¨0SÊŠë#þODÕùº¦hÇa$°îl ÈNEõ -þ}$€2OMö^RÓ›/fÑø›4 zØ]Qì)Ñ$¶CU¯p³:s—®H<“Þ:Ìgô¡á¦|ˆ¡ÿ# laJÿæ<(‹À³ä؈Bž±—oP[#/ÙC;§y)Ú_¢ÞDTi^&ùšûÅš# Ç%ËÆk˜çÑèc@tFè×€×,¡ q‚Éß¾9Í^CòfdýòØã†Ú7,0ˆŒ*Ô¤õö|î2:#ÿ\ Õ0ŠÞ~DQ ”0| 6€·$@n£+7BŽÁèJY‡>"* +šéˆ;EÛ}GY5 J.‹–+ÎŒ'”ÄD|äÃÊêW!8CæuîÅ‚x·Š|ʹR–ˆkó½‡;]ûAþȉ}í!@ýâƒÕ¯Žì³îʰ"m6Šö`A9¢è&ÌP]yŸÂÜbÿn’‹mdk1X‹Æ{DŒ©£÷öñÕBå»#~A›'·V{_L%_!ZÙþE°H9T7ú¥ûVÏ&ˆ76Ò઀콡¯3€4á…ÃòxÈ«Á[Ø›Ï6ã9Z é(Fõ€é[œÄnµàǃ¹1Ibìô#ö§B=ü«˜j +¯9¯"«1 +ÅÞþžbÇ'`FÀ©Ê‹táíNù›Óä#Õ‚¸çy€ˆK€`W`ø-"_êš'ëbˆß¢RÈŠb!d~™ŽNëh„é‰DNl›*=3¾Òªh¬±÷ ©_d‰Î®`´ðëIç@LbÞããW7=>¡èMtøkŒ(úa‰ +îD°^è[|ú¬„‹ÌÂ0þx"Š&Ý#>æŸòC þT¥×;ë[ÖMR›yŸ‹–G1 +´µ‹ëNW†€p´À·ÐQWóÚqujåï"h •*²uøö%ª!éÞÇò8+Å }‚·P +a$TxvìïQzX‘éÁWåèk”@gõ3`Îy¬üjî)æPáR¤X¢R㹯œ7fXN@¼"ª¬ˆÂ‘äÎý#€­‰:÷×+.RiQõª?«qpÁ¥oJ}LÌ.ô»Z8ÕÒ.%,Âb%å•4>·GðBèî0ãXáU5Z-X_¾Ä1«Æ:¦Ýþp_QÏù…º9Hzl«#ªgè$VàL^ÓÔäJÏÉÙ÷xy]ëºÖóȦ#¿’m±sãʲ²PÝ ©>ˆ¾Xy€š’†ŠÏjw©ø¬~¦@ïÛRGê[r1œÀ}ã‹ÔIÑ~2`rp®XG£Ë!gÝw È5aï„nï:ŠK`FH›ë³*šR{d¨õõÀcD­àË1jÏfz,ª Á$òp;+çre6<qžíu•Šð +~µèBfßèÅ£sÿ@öð'U·q €Tqî¥Q®GÉLûñg¡9KüÜ?KÃý+O–ðˆí?'Øú?~GƒæãïþÍÇÿoþbùãßý‡?þñ}üÝ¿ÿûÿú›?ýé÷ÿòO?ýýÿþé?ÿæÿé§ÿøÏÿ÷§?þÏŸþãïþñOÿé_þøþ9.úý'þÿßÿóïó§ßÿî§}‰_ÜÜóºƒ_a ÿþ{ ýeÆþÏŠ/õ {¸±û`lŸÆ.Dñù½{󇵧MìCú-Š*ÉÚÜSoºy¡ØÊŒè;I5/—æ^递ø6LÍCcÃþÐüG¼'û&N…Ç o¿­ˆ¢rôªªŽA‚eÚÐó Œ²þ´q°#8´’uwL–2X±Gû0@Ùž„wv3bïÀ޲¤öˆHMߤJ‹ˆ#^ãMôø2·(ðÀ"ñîÈö¼DÄÀ‘)ƒŠˆýÅŠ3eFÄNˆ `@ ÑSÈ–Ô¨Ûi!.¬¹‘—kYP«>õñ $iH¹Es6PìX>8ú핹õh¶ïo‡²g̨ (që@ ±âJ]$û‚81¼šrî$É@Ø?u9Üê1Ñf@!‚} 3$Pó +éÀ“R¦LÃ}‚=Õ„vˆ7¹ã»dô’Ad<ë J2“µ?ŸÌ© ì¾ÒS„ÅPfBí4f½‰âèÄ„Rs ˆâ×™lЧçï{·ì§Šx xCR¹à²A ¤ÿ:?|:¢õ% +ˆ1Q {#:ΪlôrÜçÞÞQWx?w³0i[ºBÙx›P–{êmì2·9ߟF$R]dÞB¥æÇQ™½Æù»gíÍ÷Tûë3í +©,â ôC‰‡¬þû¤¹ùy÷Ï·îJó5èÉV˜÷7ƨªê€;àd{xÕ{±˜F£;~®/âþwZÐÊ7Ÿ¢9lÓÃ?>.Ö¡}{E·¤‘ŽïÛÒÁSzuîoˆOw¼ÊF +~,C0Q?½a— }…ߥnj³ÇTMÞJ +hÏ~_l‰&©Iy¬¿.$k±e†=A´ž ‚àâiiíŸsìµòNöãO1õñPˆXhMl´î… ¢Œ ¢Ð†k˜Ô5´zú¤Q:@ŠPE«…Ii?:ÚLHØ4 :o˜É@®·ÒþMÀÞðR)Rú-ÀYØ{küÑÉû6œX¼䊇:>žæo1̳Þ_¢v£oÎcÎÃèö/ö-4Í$^¾½÷Ø„ )°‚EáøŒ~çÍ6TövìyàïôÒ¬ +âsH›Q493€‹pkgvñõxÿ,U–É’™k«òy%A +0*wR‘M!^ˆE÷ª½h`w w”ðF̵Š{—‘Á ?sHpGe äDñ¦…ÖŸç ü ³çÞ¿®O>ô!$øL–¸Ì@nö¼»û`´ò)?Ä*¶'P¢ö‹¤y5ïlçC˜c5o93È);”©ýÍ÷>±ue(ÌSRä)y%æTó”d®S®|ŒQÌã¶q,4¢¬dÄÈ앆YÐÎZ\oY.4‚…)æuÝLx +±ÿ­¾ž @6m(0¼˜ÎÅ] €²á5Oâ)Õ[[NáYF¸•¦Ö£*ˆxuœ‹i==‚³dç~qéI±Œ÷Lå†ÂŒ‹šr¨S®lZ|"¾…Z1;kbujŠ`ó-àä° >gÁdcè÷ÖÎ|"*…§²wªXØ®U›ð{xäÏ ¨Ý‰øi0Q$öÔèǹ·‚ˆ™†&mD8âCŒ;à‡M”¨my!: m®Ñ`CñP>^Ï‘_[ÊH IQ®JcçiËÂ/Œf<‹ Þá_{C~@åƒÝ„b{OyðÑzi²;øÚ·óH,‰Ý„÷kn‡4­xý"J¬S½Ô”gXms¿ƒ17*‰Ùoá +ÂBâÙ^r­=Žó›º{ÆM¥6˜(JèœÃ¶õ<±"W¦¯Ø”Ô›±®Œ¦08' <•?øTн‹–8ˆ +û•ZAç·S&¢vÑDу$ª[w´—&1zá·>‰pÍtþ4%Ô;ãØäx3«•«Œ +ª÷›@n¥ªV¼€Šª²¶šH²Yâ%^ERW…I— ã¼"?ùË™ÐÝ„ìLñ`9««yAJ³Ó±=(Át‘Ö’2uºL¬÷ lp~”TÉS`^ lùk®£]!+–²2O¢³ÑdŽÜk¼¶lVu“h²œ”¨ÌVt°™[qÓš 5ªç±XËÃVk®笻÷ÞïÇàרÉN"(…¨H¯4—H˜jÏç'ó¸y¤¸OvÚãò[å:癡ŠTçÖSoèj”&nÑAn³=Qm݃§ ÚïÅà«Q}EÒœšubR‚$„5 ³8kP§°ÇÅ™ÇM]uœ.Xdhʈï, +…(¬)ãkZÐA±,í…’ö^… ‡Û˾ë4Ò¥ ³ÜÛYÄX‰²Û–ª{]02£¬KØ€'V؉•€컉ß?L“ÀõW‹¥ŸJ±É…Ià SÜfß?‘G7ÇåªÇä²ÎA Éj C"ìë Ìh@ Ó“žx•"‘§½.R™+dù› ‰âgØGh Ròý ¾Ã¾'8¬À~"$öSZóÑÔ{ä§¡ö´3ÂŽ•¤/ÇlZ¤½Ex%LÐ +R—(ŒïΓ´Šoð°åî=bÅt-ªí”a:bMÃj½hî¶ûú`™€ï™s6çÙ'AE•{V ”Î’ÓQXtkH¦4é +uáèÌc4r÷WBWzÎ<´¨¡g£DÌPÌßyLœÇœbˆ[Âch±#ö¯¼Œ°K‰6; g" +<Ž”ytëu%»#¼" +Eræô4…â ¥XùDT3Ðq!óQd¤êùJ‘5¡ü]îWB/•Á¿')F˜R(²ÇIVÙ` 2"ÕB(F<.3‰¹1ÆÛ~Tçm7'ùWB¢~÷q’3‹k‹!nR¥UÌNÑ¥}p¬BuwA~j³Ò(1S­|Š` PDÌÏ‘‰Ô½º!'˜€–1Õ,Yø_#¼f殘h¹×oN®ŒÕR‹7¬ßz:²øï!¡Àˆ /‹¸Ð—¨èdJ¾&ÌÞð£ÙÑcÝÊt”Ñ©gÔ¨(Ë·µÍ÷ˆûŽF}éŠþd ·‘ŒÒ¦úŽIÈûŸÝ^ab‡êÒ·Ìù5 +2“oœÿ–I†X7€V†Ú©>Y,dêð pè´Ìõ5"žXWb ½ÙÛ7ç©ÔÐ\ìz.¬¬Ÿ¬Œ'VŸØ½ŽŠÉý2ÉL§ ÎAÀ©Ü9g‹ƒîùÙ'÷éÇÑÍØc:¯>þfì§k€»ô®£œÂ‚kîk½yd”•¤ Àê¸ ÒØîyõ""M[h‡§±_z8äqŽe&#f¿ß®?&€Àc”œè{AâÙ»„Ô¢¤e^ üçãÌÐ[S¥¢UBzé-"Ö´eˆÄf¿[ßžç9oÔ¾2h7Dô¨‹èŒÉ–à›ˆuì‚©×+—ýeZN*Æ2^Ó”é´EW{8Ðξ +Œ6ðV¾–«ûêH #t«É´voØn"ˆé)««WOÓù©vD#®ú—ÇF2Žtµ22+Öë¼±:]Áíî +\W¾Ýó’Mre• ñP€x¿L8rzo>D™$S·¨¾°Ñ›×Ñœ^“»n2ÇÏütG%öQ–h…E5°¸0ÃÖß }Xí¡œu5¾Fø”ŽqFV›º¶ó`/쀷G4X÷A†9¿¼†ïÎÖ¾Iñ×§ì`±™ÀÌ‘‚0>qrÀu:Eƒ x  çEÇBkBe6f]R"ïÇß2qVY2<FmæÕO®Á;$:ÂQlÝÿˆðŒ{¤ÇNêkÀooKM@Èœ]Í’/A”×éFïíñÞŽ˜Q”¦eǿ訾E|·@¾EQß”{òHKDÓaÈÑ!騗Îav‰Þ. 63Š”•í`"ò&8®cMç´ +ÔÚ}§ô9›’+¶¨I<¶ÎÖ<ñ<¤$?t‡ûhºuÚ¦F5»XÄ—bþø·s!:À6‚¨Ï(Њp²W ªˆÖàl¯ÿj9)ÅΚHQôõ)ý¥Õ +ÒE™ýÑslØ,hXa›†Ÿ“@™Q{b SìÊ”lie²óа?*fDXuŽ9="ÆhaÖ›%ƒ‚Ù$™€ê¤X©S'ëm?$YÁ0÷{¤®Áj¹[škTö‰4 r|í± +Wg“ƒºÈŒó4ÛÙŠ sÈ>‘™âaÊþö¼ Õë/˜!6žÏÙxšK@cc”ðÿj(C{Và¼T»ð­r "€@×36N>Ã^zW¤o=öînG‚¾mƒh®íƒÅ–6]tÕž•àjFÄp=U`1ÂI‚â¿u,ðãfCèÒ½f¢,: c¸VÜPO$j²JG¿ í3„Ú²Ûrd(€a—,ÏD×°rnÉ0܃ö‘ÒLÑÜRÛßç'eBóØxß^Ö¨Q?|ÕÍNTm·óœ1v„aÒê^I}3JÔ• +¯/‚ªê´b…¯ ˜å ×9/2ÄÙÑã|?Þå6,ä(Ë…~ Ò—¶²MÛ»Û§;‚Ï™±¿Q}»† Y«ÓEDÌ($.xÍÇg‰×:ú8q¯ŽÄ•ª†‘M›V6ˆ¥H:1.¤úè_×'–¨}ÐÃÑ» qõTÒˆ²¸£š¿=½UöhpÒÔ I +"àGDî+È#°À°5ÒÀ®q%Q¨ ZÂóºR·%˯ßò¹ŸìÇÝâà[6ÒéÍZhb:xº³ˆ“^TöÒ¡6Hß-M5Ø!Q†iA¡=9~¤ÇÓ#U&¦¥ØEäÏÞýpÈ0ÙkWJ“8.]~Ïu +|÷`-díã€Q´+ðm$‚R:Ë:QOÙ车µ}ùn6ª=í¨,浜±Sõʼn+ÍìyÊŽ[$yoÔÀöÉÈ‚Xó!u³DÐÅÌûÕTæ©!À}¶ØÄîÓìäÌÁz méwÞû’”îÐ91â¢0¾Ÿ~äd’¯~­Ä“ýn¡}'uªc×fHØÝ—¿Gq>ˆñëg†úJ¼–ìx-óx^†Ä»Ó<æÂ=‘œ<Çvn)ÌDf-F=0+žq×ï]àÒÉÅ~0Û:å®{yˆŒ\d¯G‹áhß'tßüIQ± fí5½o"ÐÆâÒ ôñó94~Uµ~M¾þ…~D‘Ü/mºfV’¢æ¿Ð©gp3U_ÖÊü|êûq…üAthøÁ™g=Ø 5ç{ˆCüèÒ]°Ö‰ˆ—wg:·Û;nƒµÍ,q7¬aÚùò[¼Á¯qhýžwúH»nþ&â· g f¢ŠAæñv°Q±‘ž Bãq•žbŽlÌ¡ñ˜ìµÊâ…þñ`—ÄX邈§2-éPOŸ§4ªžÒøìßD´`3…?. +â- +}•~Te Â”PÔKB?÷}±lRB~Vì– =QË— u7Jî v*BrÒ•q¶ëÛd|èúÆIÊFw‚\k䯛3Ú‚)Ü?¯‹eRQÉäÞ¤Âtô<œ–ˆAcŽý‰(÷…8]Ž÷ÔÜ‹ ŠþïqymVH?„hÏK.²ýür°ÎG´‡-ï³–Ù‚YáP :¬L[Ì_#ž )‚DÉôÕàýE}Þqú ING€žB&Ö¡ìïr +Ÿ¤wÔŸáv¼Eüö$Me±aØ{¡LYëí<.SX|²N#–i©Hmò·Þ"P^o/tÂ/Ž@†‹Ü¨°-ÉÙCÅ?poÚOñ¢ìÙô¯ñ¹÷ˆ×¤mh¦7þv¤dë¨ÅPã>å«´7c©éRö;’×yÜ-w¿]÷[>@§Çìká +äµ°ãì*Vd#ºcž ™Ý ÊG #\’×A£èu¡˜¶OŽ"/D¢R>7Ì|CÒûV9àžàºi?8çÈÓý»e"žÒªßõaˆö¦ ˆ(Œ(&¨ýèúÉp÷&½¦.W’Ӥ̋ò5‚ñO†Îݨ½E!½E##*Š6­ÕØ @g¦áA•Áâæ"» ô³Øë3db_bص˜dön> þz( [d2rÀð°™*1èB`¯ÍçJx‘î†9·ƒÐÛŠÿ0X‚}÷l¹ó½ç$áú+hÓ ¥;j2‰¬±<ƒ‘¥¯ÌÃ\âãL…¸ÔîõlY3Z>¢T†¸•6nL™c»[`r’þTÚ{D¡š3mˆ=Lê{TU$WŒ[a§˜^.=5ýý.Õ4Á¸ÓܹÒ[Ô£É-ÈZ[Ä`°Ä÷?0Ð(aÅèšÓU¦kðØï!ýŒˆüÂ×íñ@²†ÇXç`€­*~<š‡˜àN"Ú)0z0‰‚ãµgž£Ìk”Cño4]mG:¢z‘NB›ûG42¸-˲%¿f7™GœÃ’Å^¸Ò­¥Z UKäC0~ÁZÒ{Пã¿õFwùXÍ"'Ï·ó‡ë#òÍÁ_©¢¿!î=ið{³Sa¿ÛýùD,ýß#âYµÈŸð›óŒCþ“F“½?0VkŽÐÀ¡‚rˆžÝÔì+ŠÞ%|n,è sè¯QÿpnŽu”C²‹Î0‹Cö®{•©½!ç~fôàöÜ °ç=‚fÖp²Ý‹Ó¸¨·(¼ÄÈUÐ3MB"HÖ‡]j«J~%⦽pè(˜`Kú]ÄݪÁÈ£NJa÷›ó¬C#4`íñRq²˜J‹’†¶'¼_?{Œ'I5ºL` =ªèúÒ¾G}¡'‡ÔB»½­·(Rƒ…-E‹4¹û›tgèº(nMÖ`§ÈˆÐ +M¢=°÷×?OY[óTïÕbZ žiìõhR;î°Ëæ±rÅudfKÞÁ¯àÿ.PP>þ;+=CBÿ÷œ~Àß ©Q6 }xvfû=çÝýÉ!„îi–oÒô-[X›BržªdîlDŠ»µ/#ä)Ðl kðEÑ©Ûõ™Ÿy/$v<{!å°)Q¡ {ŒN ¥HJ¨Ñ±Ç`Ëá.®ÖŒÂHÁÒrbHèÛVe/ .1ôÏ rVÃ*Œær.S¦ªo‰}+%Mf\¦êÀ¶Ÿç:hóÆÎög¢KTM”ôBŸFœ³,"ªå—¡ÿŽ:mc@õ‹ïŸû¼2à_ÉÕ÷~UDø‘:=ïÝô¤GÕq„J +2tÞ”Ï϶CqsuòYˆ¾å™sgŠE’p«NË^ÄØˆ¤ÁÔùÕðÙ!¥öYõ!öß=Þ Ã…@³im +:2ÎOhºÛqËP¡BÌd7±[G x§ã¬{LíµKb \¥_DWgm9±¶¨hv=¢xËzVÙŽx&ºM]cRðÊp%j€wÐ0ó0ü«çIA”VËd‡ò:òÐÉiá‰E_5ýq"jÞ3üÅŸh– AC9®ã÷ܧ˜×Û¡<‘8ƜڙÑ÷Ý0K ðdhg€u}ؽ5"ÀPÂÂîˆÛˆ®SœL—Ÿìn@jÅ+¤xh<R7þ?ÄÎ%ûá|wA©ÌSb¤•;o™7,ì‚3L9Ä—°Ú~žZ6›÷mDåMlöÜidMQ×lÊÓ?9DfܼI¬Ê•ØŽ¤¨¤È˜¨R5i»‘V±´’VÙ:á, +& ᔂ]û—¸›~«Ìðƒùä¯ò¿$k6cÁ¾äðìAm3 +JÆÌ<Ø>N `ÄÔÞÜÑhÁ ¿ëa8¶Ã¦ w>Ì +Z±G*qÒ}B÷©L0£ž—MÅÔ<øtˆh" + +“&;ÅŽõZ\å:Páñ.“ühI"Ëg tdBX2vƒÊ…Ô–¸Îª±;Ç$‡®­kñ2P‡gå¤"t˜OR@×Í`(W„ùgóù”p Õ:’|MÞÿ#•°_„]§ýûr´ñHûZlÙèœwŸ³2kdb«TZN8ƒë .Õ’IâÄÞ6ü#ÈížwžV€gÛ‘ (ü¦D‰ƒ nÙ´*JDÀ=¾4/®d.«FÐû@v 9"‚Ic×ü"éaÒÄ´ÖÔk{„ðˆI6ÚJÕãnæ÷qä­<;P®Ï®‚Mäv€ ¿=»ànÉxoÇS ¿NèƒïDDÚ½ Ž˜Ëº}D€û$ñÍøñoø2Š4z¾{Û¹ßK9ú¥cØô=¬úU Kk¢ÙYÚYã.2öö`†=Ô;ô„Šb¸pDoª½é«.j”¥¤'œæš²Ù Ða˜qà€œ‡e…°§D¤œ„¥’·bÁ'| Aþ¢Ypfb¨°¬VŽâTŠa±¥EØ)˜S ¶æ¼,â}bd·nÿUBß.új§QHѳ¡ M)‹ÕfëŠ>l9ɈDÕ®¶g‚x×X°x׺ +ür"o¥¾xÙ~#÷ÛLSHDQêÞø½‹†,3@YÓA{~œú”úROª6®RžŸÂÌ- ðŒ !ITÁ±=wIðÀ{>n5B>ˆsyD<.ÐíªCáÝÛÒ[ZбŠûƒ @ºm’~SŒ›]–§±·¹OÓ`H·x‚Qlrwjzµ°Ê8Ïçcø&Z•Ÿ"VÎ%h²÷éOM,‡ÝW”õÿ¾²ScÑÛwO±ÇµR´ŽßUá@ÍÎp½}©`¶sžبX1E[±‰…˜ÜXRÏžØIؽ:WuXDå,:`ÓÂIÖú<FJÄS’À•#÷B>‘Òø]ŠQ9;Yn&`Ò‹ÉÀË’!õØfîçÙ^ól¢NŠ'îs"ìÕ'*æ•çĆzyàÓÌ©ôpÛÙv+’4¸öãA 3STaOî>' D¥7vþ®IÒ=8¸×,Æ¢»ãlͦ+HDèJö± `2çM·*1\58¢÷Ó(¨DM^¢d–(~¢ªeCRù:lleCs„ÚÁcµ)œ5#Ú•™0¤'t¢QÞqC.;®DrMD ÅËjÞ|É8þÄ7JEçlU4–Ú½œÚLrj:û Cõ,ö6v†‚¤Æ^ÃIêᚣ¿çhô¥vDIO›D‡´„#_¤„;‘íÔT››ì£Šßæ°Êøº°ÊZh@¨ø ay©Ê¢ù‡ƒ&ŠZO®ˆj¶Zq·÷lçnG•6#ªÅs`k2JjV<®œ2KºÂõ-EêúP;h°1ÚóºÒ{„H9úŒwÙ(žD¨^2 ×}…aâ×¼‰#¦T°°ˆÜ-@á×O i“O…T&ˆÄS^ó4bößoÛá>@D< ¼bÝ5)¥¯^Ÿ9ì§=åæ¡5Ö5J•“šS*¤*¨_¡š¶àvS|®rZxª´…Û!Û˜—»×F;z&(éãu¸ŽÙŒ›:ÿkï¶k½’žç]ïa:>pX{ò0i r’øH0Ú +` ² G»O=Ï[œÿê9¦´  ÕÐúÇ7I²êÛ¼›hßjj4ö€Çj +ê¾!{Ë.Y-ýz׉’+:öT4WotͯpªÅËènÖ²žjûµfΔM±$Ô)Ðç±E‚—ÇúÖÌW˜ÃìJ¤ 2á›xе í>žnÕÆFì´B®ë¨ŒQy½(K†ýp‹ñPTi?¤õ$ ‡ì«DsÕûîMG›+À) àO{A§G¬$ÎU–M®* +VDLì–Ú>¡—ãÊT› DbPâ(ØHåu ¿ÎöPŽ +U”†<‘¿ý{8×¼&3Ør©M ؾG[À,¥1W]d$fv_ÇÏn Ô¢dWÁ’ÏL%·ö¡GƒÙfÀ!"ßHÁ™T {¢S¼7Û™È|)K<5çDú3ÕãÇl÷g7䱄»1ê!é«í¤|E"¬Ž±èiO™Ñá¢ìþóÁ?=ˆ—õ´t)؃ˆj¬B9Sú_{Ca`ï©~•¼Ëös !1å:‹?ã ܵ߿’ã&H5R´óæÏƒHrŠ ®(÷søW4©Ã€ ¾DÞÿc½“‡Íñ;ΕM@ÌÐ;$K¥–Á õ×”s43š}V÷ 1æPÙÀ z|†‘í¥Œº¯éÏÒr„pÐæ–ëqÍ®|zÁ€îŽç e‹Ç#X€±\_V ¥¯QEðžõ;¾Ô˜ ã¸ÃíR$K"R(äÓ´ùc?œGÝÕº¯Óh€Í£•7Gü¾Ln´~Hi«÷s9'| !f¯UHØä_ů½æc^Ï>DžçqC¢C'—z¿Næó*RÝ¢]rÆã zL¨;R.ö %sÍ [ž#ˆ¬,ÖMeWÐèŽÆÉ«wØŽõtý™^)±v·£Ãí.øl°u¸ûªÌÜWDÑäÏ⠪ʫ¢å_“¦´6¦¢Tø©)a;¤ü,T8oó£û!%M˜¦œ€>^]FäÏN›%AP]ü +ò9À"Z¤BÚÑ«ÍÓ¾Î$ð~ñQc½âÂ/w€%#j(êæ~µz¾Úõuo. nA–œèÊÅ>oñN60z41»óPö¨PÃð Ñ§È;Ça&&ˆ/i>¹H=ë•í.vœ5á~ŽBN5üª›úaj ÔZŽŸŽL;y„Vèv.©šëM˜5ŠÜ{hÿ’¢œ²ªÕ‚û'ÉþŽd­eªÅ¶¿XGoÒ{èI‡«µ/ƒš•Ô\ }º35pÅ”É3Ç»….óŽâØF yr­õuRüW)òˆ>«:¡¾y©ÛYO WŸ¶z²ô¥N×1Yí}²ZµÕꙋ4 £‡ÇaÈî0¢<‰ˆL¾¤Ï  ­>íãszytPvRðüî<¼.û<ó:²6`‘õJ$‹n@G`á[;Âãkñ‚ÁðähH”ðt¯rKhx½i,´{õÁÉ0¬Žš8ª¦éžšw ­µ3ݧaÉ"ÓÐj–q¡Ž[1[çvœ ûÒ"­ÆÁc ’”Vð ‘8pX¬ñ&÷ák“8Œ(m© ‡_BZ®hm±\©øÿô¯â2»@‹€ùôН:€V—T]- ñC|¥×€kæãw$µ®'µ>¤Q|ICF½ÞÂo©ÝF‡¦G8ª‡Ú Æð>ðЃë„Ø,Œ©†!3h&«r…éÒì NB„/Õ1©¡”̕ôg.'Y¡6 Ðg-í©PñÆYÃUzªÆB›¬œ® D"…ûö–}ɹêêÂÑsß…@¾¬ô3Ã!¾$ßÇÎÜH+T$ÒÂ×éµÐ³Rø`°DÃt¼zð4XfN(/ŒÒöýœzãÓA\Xð`’–Uߢ‰¦è¢#Ã{ <’”-ê¨c¥¡´;’DWº%ùªû§h4‡´ÕW‘Þ;ê?E±ýE§83ýz#àtñu&9+û»‹`%¤¥ëUÿu&ò/É3êÍ( øì¨5Ü ÀÇÕ¢rao*©q=a‹°À&`æbñ,{Ï3›E¦X‚–½s”"i¾ìZª£;nŒ©ñ5ÂiÑ­YI”ö #ͼøO§\Š 0‚¨*“Ÿ¶û<xH€7gÁ/d– +:• :j7žáLm:YH“|1—ª´ÝÆ#8 +KCÿÇÇÃ(€érÄУš0žã(°ùD:v®¯ãšãÝШZþ*/Ï-cJyèf +—?¦²FPI80jüdOAyœÃ;ÀÜûîÆõÁž5»íŠëC$ÂqÔâíż¼„ÚÖD"ǃShß–âÈ`¶œ,üIØ ¿ÞU;²HÊ—°Ü²<°ÓqãïSÌ!žŠt,W­š?ÂTo·<Íc^±ÂS+ÂY²=ª’R;ngטðÆÂAȳfv’{JtzVÓ Á¦Âpª·wì½Hó ™¶+Ã~6 +¢{~âF½_>20õ³èê’’>ª{†éeJ¦ß«'YF”äçIÇeú±Ðß`êzôŸª·@—Ù펧5÷+¢}"G=L#ל ;÷âê+{n÷¯,fñ£/¯ÏV_aRÏŸët’Tì`w.Æ ‚ +« ß½·NqŒUQip†®R}uuÝz›݃ê±È“ýSÈëeØÕÃûÊ<‰Rž†(- §i¢è±©GÝBM/PS’)ýÁkDÕ6íD ÍKÿ{¦+‚ý%Î<¢¯BØÛÈâ‰:@Ižb”k1Ž +FOíi²óL¿Ç¿BŠ[ì¾Ró÷Ú9b¦s»õìW_ì9Δ¹j·zØ],vKcR1ÎJD‰L@5Õv&û¸dÐ'mǫ舜Y Ef{èÔ^²5ï³VõZBB›6umgÕ·i!j’5¯GBO¦`šü¼9S˜£äRÅIØ1A_ñÝ&Bõ ÂVEb4€‘óž À–2T·ÌÆôÐ×oYB £BJˆ$5¸@ÙÉÔ¼´4{™Ø‚ǺUf8'¢8òDœÓ°Ÿ÷“b‚µä‡è°Ðò ÀÀq0=Rö;š€0ÿV{©9~P3ŽgÂÎ]F^í*Å`ì+gÍX£6£ÏÔ`ûVîg„›½ýa0"=û—ÁH[w)kîv~YŒgŠnc&T¡øËž»½ÿ|ü¨ìçm'H_'rSÙAûݽI|†$nv +õ€ÙêÂ:¦y’±h˜åÑGåD8ôÚÇ(GÏ“Äõõ¾Ð‰È˜¹®;yÖ±p(†¢’¹5>6:èLõ|ÜY¼–»:ñ¶—0£ež3•^ò‡Nj`Gv¤#{ˆ+Yð-‰*Æ£4(㘠ÉJ×Ó÷èRa W¤ÎŽÕd©¹g–JÖu>ÿ4µTüªÎYVUºyhTñª€ß¯á÷“#¿;a èZ<\ö8xk@J¨ôуK0U –ëÔñ‰“|öPéœhõ®—ÉWV¥eMhw¨ TnTQþ¯„´Õ§êHƒ<rñÔ7­;ý×HàÜêïýÚÜy^°¹Y§½êް7¨*tÓAéKduê7öœèr`m¢P.¿Ò¢Œ·P¹tѾe^«Q39{~sø +‡îšÜfÈ &>hjd\/Ih¾µ‘¢ºR2€n¶œÓ”ݽþ3z©0¦Ê +h ò2`w0ÄÑ 8W”4ý’CþÓ±ºD)ÄÍc}Ø#.Ϊ‹9 éfÉgÇyU¨&–7´ –8±œn\JN€n¯°¥pFÛhûÙ¤ü¢IÛªÖÓÐ!gùF‡¾ˆ’f ¶Õœ?ïüKMÃqŽ'ait7ýUÇç^³¯ïeÖª&ë1l”ìã@ê kî+Û0Ø}+$hc¢d ‰½ÈûzÀëGë,“£ûLŽH­ÛLkˆñ|r˜–ñÀ”5Ò–²2T–Ï-òù8dAØE=Õý4¶#*4û‘9QŒñ¥Œ0ašaQ´»´VdgWËzêh…¦DwÚê/E-FuØ ?a¢ì…k{Œ,(’Ø +X¢&zm ØÝŽbÚ¹w 1vÄ~Ëz"Šuí@“õ›@Ue:®dÙ wûaC´àt¬7—ê¡¢CÔ3=a$L™Ü ÷.åžö³3^:Áy¸¢UÜMØW¬ +5êŸ.b{‡]哇câ7Xy¡Béѵi%‰.ýçyÁæ/+á>Z‹¦*ÇÁPYJ--Aötµ†Á‡N‘óiÊeõ—tºôÒ‡90]á(â˱„´ÈRé¡—»?÷“~ÉÂlîëWY‘‘™<µ#€õ€Â$6t]7ó)¨6†^ñ¸ÔåyæÏûס£Æ>0ð°ýxŒ¯Gº©ö:õmèÕŒK^å*¹q/1‰õ¥ÅžR¢Ç’jò„ñ›§$è² × »˜¾€Ð…½Šæñ9\?&;H¨iNitMÉb+ +xÞM{VÌ©öNBÍ7ÊN5Y×Ñ+ŠVø]eŠ­õ(+AòOy²öcðïÿU¸p5Àš‡‡°äâµØ(¦å¯@¹&Ñ$BŽœTÞáðd­×ÛÀ^²ðG~ˆy´‚£Å„_¨Ço;ŸMÖ@ЦðȾnµ„µS‹Þõ¼L¨z2Æ¿#Ö{ç €R6ê —}‚Tw÷?vø¤”–LHQÞ_ +ówœAí¡£¬ÕtUlRSœV¼WZ%d”ö'÷æã‘‰^*8ü¦ØãÒp’ÍžîjÄ0CûôdûååïôíHúíäæÌåesІü"ï¨f“¹ªƒiï1QUß"@Yï® (ž)¸FYÞD0¤ñ-ÇPdŽBy©ø\#‡U—Ò#w-EÕú d_tûùlÏA¶õ‰8!oaGÐ6J 9×»÷–cú8#að"ü\»×þÓDÊO–H²¤F¡Ú“ñŽÓÂ3⃛dn¦vœ]¨E„gü²´ `Ñ@15*œª:W¡#¡, Φj„³Ãï •y.öm9=`TàØfµ2¦AÂ_1v (½>¡`MúmicÇŒð +Óv¸å- CëƒX†€8j¢IùÇI Œ*3D]‰á{£Çn=Þ)#k¦²(4}ãˆ×¥¥­vfF©½ÿ`æù*û¨Ö‰˜§xÉQ4ò;×"’²ŸEg`àünÁŒþvõ1n˜¸+fyÛ»ÃzÄ=Ü èYo€E.{OíÑa½'6D¢}Fx¦£r£ä\žc”ôJI&1øjµHyý° fé¾§ù4Üò™hÚGéÔŒúš-B/Ø?¹éЫê¼?xXÀÁ€Š³e…÷¯4×AC¥¿XTD[»­ä*1}ÏÊq,zþ¼¯2ædh¦5ù@ð5P‰îü9e„V "@l1Ü­•jm(;ˆ‘1z—‘§nšgeËÐñÞŽ˜·|4`ë s-£S€ñaÈwƒ +Ú;Ó<¢Œ…÷BÒ«H“ç È`Sx˜ÓŠÜ¯”€@¯aÖ~Ð&EZÓûM¾G!r»°šû¹¦€TNŒsy €‡#ðdLûT<}Š´’ü72¢ˆƒ ÐËž>œð´à¡u$Çjp; ÝÈý÷áøü‡gõ3ê$«â5‹ý“@8í8]%6ÂÏT®xèN¼7©9«ïÈâ Iþ@Ôâ|ÄQ Îóº0›c]KÔ®ÚÁ÷Á%˜¬½xÂÎæ ¼tuw¼JYÚy©dóH4napîìR„-pŒßc°¥Oåç3"ÝÃðõ?ÿœúÐÎÕ`€ +gºâ´}¬;¯#E€úÄÈC"é¯L‹ÎïòþÁÖ &BÔöáÀDíå>™”80SèÆýQ>öÏfŸM¾Ìó/£Ú €°Ïj¡¿P?X,ˆ³-9 mL'ì‡\JÕ‘¢¥ ª:†Ž>w’B²MŽ.¹nçè™u”ô¼©'è6àÏâ6·3˜«–ÏPâ/D3XgT\]¦®)ÓzÉÁ ã‘Z­3 Y|] ‡3GôPB¡Ÿ¹Òõâ^G9ètµgücÆaN)EÇB³ˆ±©Ôˆ ål§|ÂD`q´#V?ûh(MõP𴉹3^ç©Æ2]ü!íì÷eî÷%à¬X/ú¸ÇQ×´†üóeßj‡÷¡ðQÝ×Ð2¸"r·Ô¦Åk¬ÁÑ^Ñ¥¾%÷íëé¢:Ÿ›ÚÎÎUÿ¢[X†ƒÃŸ#nTŒI‰ºZÚ¾î¾&;Óóº¦ÍÈж0˜¤‚°%bè<ðpɉî#Nþ´GÊǹ¸Üt 锯ò¦ÎûÏÕ&‹¬Æ2Å{Ï5†˜R ¿ùÇ¢”XŽ(“‘µ"RD=–Î0Z?£T¡RЃz¥ 0‘¢̉ÚF£Wšag‹î ! +•‹É«#þ|æ%ѮٵN@Ç9ÍÉ7-¹–H›Íдý`rþPöÛDÿˆ‚úíbÿüˆ‚µwx¥çL òQ®ö*ûùªfFŠ­3‘t ‹Boªé ÿÕ_W.„¾>ðHÝQï-VÆm;¢½Y-—&‚б½¸2È…4ƒ )(ß7‘ Y_gŠÍéu˜ãèy×s¦˜5ÒK^‘KejÏ— d‰wUîð½ C¹n:Þó$Ÿ;Âlj”M‹^õk#Àg%ØK†z+Ƚ½mâ©w¨û´z!×€’c£½ê«ð"9û¸å¶¸åöuô[œKW~Žæ#NK«|JÓÙç•©Ë13Ô…ø6™í×é7·ºŠ™a|ŒÕÛ€7!™‘|XÃÖ;”GFôv´çjŽî׉HÖ,îžlð9vÊû@ºÓVáè"Îï¦×ÈØTûðƒ¹Ö/ZØLåÑnÓvC ëPZž£BckdÏpŸ,–C j–]ÍuñpÊHí_ƒþ`ß¹Qú ¼¼àÅ$¶£…. So&iyÍ®“-ŒLäØŽïª3pï•öá¹AMã,¢Šj4ò&o£ –f²·EêH|e@ݳÅòóÙ_ ]ÚQÝ.&;¢½€@£žb |_x®'‹Ë=2LÙÕUk™É·‚Lö+9hŸï„¿0i=÷ìÉF>X‡Šqñîúȧ°ÑFÖÕl¹›­ýlÌ"æÉFÌ¿Nû,QëD=/éÈÒ˜Í1wƒ. =­%Ö ¨³c^s‡g˜2žv¯.ÿu?ø‹ éü‰äOû +#("¸pSºYèB-ž]zñT ,x¿üñ{¨Ÿxu^»¿±Nš(ލžßÒ@âøQ`S!3s‰;±¸dŒ|ðò?l ¿GiŽ9Xs¬`ÝÙÖÞP‹õFÌDÈŠ×bíyøþ!0é¸OøÇ&·è(÷!€h­(³D½œyfVút½c/"žòKÐǼ ±œ~Øܠ×1åEY6m Šæ —NwÍ`j?l¿÷ÎûË ­EÖ±y +M:xôVl†*kÈޱŭ›4ñ$ž9Þ÷€÷ÁŠ:Fëýù!ˆ‘¶Ô‡®9ïj©Ín¤™×aýËìÞOˆ©êš‡NõŒÑ~GUÏ­îx¦šˆù "}W^[Fªr>Œ¤ÜŽÄ÷z"Ùæìˆõ¼ØèrgtûPÅjV¸â³Ìlï½£]×È™BÚy Ï%"O3Ð%¿Êz1ê{5z=¬ºÅ(h²œ[ÐÔ3* ‘Tí "厈‰Qt'¬ƒy2ü/"ò£ôØ›Á;‹ÖÒ:“¨G˜ß è©Lu“z;`Úw¬üOO0»bh^ûº(¹íp)FøJ…¢C«Žq2€ˆ5rê ó‘þ‘›Fû£«ÂÖäÿçÊ„† ñW~\çy¹X†¨6}Í·Ÿò=Ä1!+öAw.V;v@¾ÅöæéèìͰ8M@òOu½ºv~xßOâPYPCãã8}FõËÚ²[ij¡ÓþSõSLûf÷_Õ' Ïë`÷Ô£D¶3ƒ»¼ó‘Æ9=\ + +Dºp_Âk=–ªÈ]?Õ~ˆÈÍ+&=ä›õùá8¯ô'ÏýM·ú•tky‹àRvt‡9§[ÎQ÷»?+õÒ—KþÿEÖ†ÔZìj÷‚Þï…ç>꡺ڒNÚäº#v‰ƒÈ[4¥ùÝŽZ"G9»õ¾U+Ç5§òÁK¦Œé`¤ ˆŒÄs •à8ËÆÜÌ«´¢\áá} €»í/1Lže%{ž ÄØ;À[và±›Ó‚ç% Ÿ&Pº¼ÀŸ +&íå3J‰óÊŠdQÚ[½°]>®Ÿ Î˜ìÏ<çLQÚ\ýÀ¿€˜mg¥9D"¬$ vzÌa/Ó DGd*ÖZÛý%ÉYe;~rŒÕ5ª¯tŽ?”"¼}Ū1CUÍs^ÕA¥Nm¬~?jZÈQ{úëÜ»RßÄG¬ˆÒÑÝyÖü"5¿È8ƒi„0>>³GpÎT¯eìÂÖ±¿?€MG©¦}œIÒ/´œI_Jï?DÔz…÷… Ùá¬DÝyd¿µÓ*¦h:|säAg‚×÷G?YzHÆÜ’âO”ò´ûŸÁ˜£buæPîCZSnOh=Û`7"¦éÝ^ò½þt–`k˜ãþ‡FOõ“qÅW ½ÖeÊj6›k+ mψ?¿S<Ý6GG9ò‡ãÌñòw÷»WRÄ¢/€¢ Zù?î߃ۀO¶Ÿî.Ç}Ö˜åBIðù"ÎÇã?'™¤–±¡Y~ç7ßã7¿jëØ­»n`°^ ÎïQµÌ5rER`j&Õ ßä®N©xÔµc‹;"_Ïf>øò©%ã£bг~øs;»µbĘZ‡]ù»F:P¨¤Îß=;+Dš¥âõd7¹/ïË85oôl­pcóÆáHÍ€ÿºÉÅŠÕˆ†÷i÷8V +L¢·³–w‘%3G{1¬|h²Â¿ñ{ðLÔÓ­Ñi±T’wÕ5m¢:t'B|Îã//$òAf¸•¯ËuoÙ—UdKR‰o/hëКÄGS¹‚bЃΘMNß?Èó=)ûøsìiŽþý’ÜÀ• #DË>#üG~Åæò$äžu¢[÷žë颲iÑ%LÒ)=?¸Å`îêò=.Ž=ÎÈ|FùLÓ2K 2é]â(”pö».· Ыµ¯c*ÎuàÜ·ËêPiê.ߦÿÐãþˆ¨#îC¯ԬQ$ëZQÚÔè•–vW9ë9Ú»Mà_@eê°ñ0_/,Á¡ê,¡p¬Wamì§à<·÷ñÅÜð^Žs +"ô>`ÁÏDDèÛ'‰$wåt;ãWü±ÿ:þýJ’î5²(¿q¿RHKÕ€waÝ!€ƒL¶'ˆ5R“-¢ªCƒ_›_ï…²Ì ig÷Ъ.ÍN$Ó5¾ªXo!:뇈U4 Îq¿£ hŠkN!,iú+ÈÕt3…è°“:qTáÞÕä¦Úh×uèUÂmŸ)¢ï¨¡H{žŽ=ôQËꢫíÔ:J¡°ÂJmîtCLÙ/<=#‹,|Jì— &TPW0·kJÇ:3N|ß|\Ö}A5Í[=‘é`(ä&çq˜;ÝǞㄽQy‹ü§r0 ³ôÂíä¸RÑÑc +\g?¬þKØSƒs{"¢P_÷#ðåKù¥èýÃqúQGÚ%]Q¿^Tïmgc1û!âeµ6¬ϯòºª_?m‰ô£<‡Zé_h%S•¾‹þÄi…6TuÚb=~•³@èëQÔiö(aÈw= ײ“«S¢T<4ü™óèjEÛ½ô¤Ðʧ(_çÑHŽNX¶öÖùsØ­ü9ɸLyk(ÓOÅ™mªDÌß`ï-¾!¥º¯ŽVð +—>ÈÑÙÞ{Mܽš)fö¸JIÒý¬·÷LߣxÌŒÚÏÄøõ…ˆOç Ñ2ŽOC».&eÀìNRí3"gª"‹Ãæþvœë0ÇÎÁÔù½„DaîК ”rH§Qòâ}Éܱh}u/J`jD5vT½OÔ^£þý¹ž'<1Z6‚ÕÒnAæÃ>Oá 'ÁCñGçÓ.úËdÒ”_¶Íßµ‹þ"ª#k±STk¹íŠ9ËÍB«dAug~¼wfýuÚ—ã¦+-(> “‚š¸ûK å’‘]T­Æ‘ÊR!©|î²é%ÚëVö¾)ÂsÜqÛ»c:ê$ ŽAWÂÂZq¹Ù·s3ƒqÌ ^ïù~Ô°˜í5u·H2÷ÄY%Š`‚_ªjOY ˆÞïUkFÆý Ý.¸ êø«Š»ßÑ5¿@&ûâïòľíÁÖ´“P>¬kh¢0­¥ö¢Ô?;”WIùõt?vIwCý B9êi죓Mx–t£¥J¡\öG»ý®…0õ-âE1» ªæ{T-µ+©1Ò^w.°Ïh}µ_ÜÕøú Ÿ½úÆ `ªë“–áM@µY½jå©*d*ìöôµ¾£í*þA&ýÈè¨2ð@ÃVå{ªN˜ì45 †pêJï-üµ õ5ƒ þ­ +ô~P@zFPj÷QABïàäÀ¤ ]à÷î¯%ÅÛÞÝþ5öWQaP%¥¶tä´È¦4(Ž÷oAƒv £xòx.Új¨Oš›F£·9Ñ´ Q5¯ÐnÀj—ðOÃ…PHÛÙôE "t‰Áèþ:¾+$‚a +óQ~ëIÿ`ä:±´!b—_=à +‰¥¹T®€mi\ê+‘'Ìsø;6=¨YÁ­6iø]0תƲÇõ}ÛµÃ.ù·‚'Î »Àše¶÷ß9j±éù±ªò÷õ7ìMaˆ2L;'æ:ÏŸ#0¹âç1^Îá¿YC_Ö¸ˆäìà ò ûÍ~PŸ(àbìN•8ë+ÀÿëüüÀp¦|ÿ«';úþÒ{³oñ +„,Ì^œb=âV‘üý&½îª~ˆ"bΗ@×Ú%Yj”åÏ™ z‚w¯ÓžE³Ä+ëÑ}FÁK*šØ×ø:QCéê82_‡Ê€;Æð0¤ŠDì¿MwRMèEóüIÄ€6Pë?ˆoçLChöµ="l+“äçpP*OF#hÒG Ã~#¬¨ÀŸcè Œ}«Ûû›|DÝ‘áZÌ-7¯ +mP6S`R»Ê]{GÁ°°Ü]÷¯‡$La„ïž IÔ$ýF`“ôá?zQd¾P‘ë9?`ØÝ5¢ß¥<.¸©‹Ë»Rиãõ9XŽ4˜Þ:‡)fËp¡ÞÍD(›¾×·¥#rxë`bq¯Ga ã¨f¡ëDÕ3b›/¿z׈ ‹Ð*°z:7ÌìëH€Ýq·ÝsŽG¹ð¶>#\DKŒ¦t?çOÇ©ÈTÍî¶#–Å‹IÆr%cióuͼc€Y)þ|R#:CUûí8©O£ö3Ú= Í"š&xª <'yšIžþù$ìM—Ãóoe +¤ÙU6i×-&<ëf vf<¨6?ëR·Å:µPšÿÖêÈ¢´@,—w‰’½mzPF|h¹¾ö2%ì‰ÏFE½„/´ Ó;#À¾ðÌ€Z@Ç=\Çe͈禘݅Û}åøJb¢ÇQt»AéÅ™Å{Û‘ º åòh·FÄ ÿk„=dаñ €–ãyúħ´ºç¡'*ª@CY‰º5ûUšïd«a¡ïwL†X@“Ì‚)ÓìÔ)![’—˜nö1âøÃÉQöÛ }ô] ±öˆF^ú˜R$®W„º[óPŠ™âªÏžÂú­¤úýo_ƒF?œ`ùɕ԰>Ðý„ü¹4¯û†£v7ü€‡«’¢ë0™›Œ'Ú³å× p€%ª™7Ñžš)ú1#ð8ôüˆ>–:æz-—PÂ.½ž\É WÊ×󋬰« +½—’ô%(ò[¾ߴ„a˜¢/.g±F¥CZÍôŠüé¼Q A6¦ýJÚ¨Ä=JîŒ %§¿;Q8ûb)þÐ#ë¬ë~Œ+EµáïUÿÂæîLdíÜY#ª†I5_\^$çLİ÷Ÿw›m;*( fhž23!eÇ/žˆ® Ú¾ü]Õ_ÃÖÇ×ò‘Òûô ªV†$·»°„£™ãþ¢¼¦¿U¥]bê9iy\°¹÷[W!ñ¥ÐÓÖ·ˆÔ'Eðà~/]âŽÓš:GúÚëEè{Œ‹ˆ²_çɸ™É#OÓ’51|½n^DiùIU€(|1„j-^%ЊZ‡Ë-”€Ê»¸³µ˜òœƒÏìu£ Õ%D®…y4|"R¿ìå€áUË”“ºÉ Ø_™€ß×ï©Z1íÍyÐÒD†Ž4LëÍÉp…²uçùE'ÞÑ|éÔo¾Â°¦ìëq-×íìå\aãÇÓÓìEð8Û ùμöû ÞfjßÒ¸×lïÕí‡ÏÍÌ–cú¼gßûˆ +b]W;º¸Õ– *½÷N{z|EÑ~ÐGogŸn{¤Ë ùÜÒ¾äûÄ)•ݹê üý(8Ë33ÛÏUÑrí6Ýâ:œÉÏ€}9ú÷Ϫr‡Þb=ÓŠþH´KèáxvÅpЄ™ª½¼ÏgŒéNŠÍˆPRÑ€–cpWdr=~Ù9çà¾ÈzZüÕAO—ˆöu{xýrnkT\ +{eâéq ‚<جb1b ÍñvJÛhò|.Zqܬã‘öþõ<Å$07e­X(N%d'´EE,‰ · DäXöšúCÀsl)ÙpÞTí#ê™Ñ~ z¼`¤‹øÒ•†,c8:°0ì‚hï¸ã"üá{DV«znÛ)ºØ€ãÐ<±ÙƒçŸvÍC%|Þ!ˆ?D !Ë~J4‚ÿ‡(èrÌãö¾óæß*“X0 ­ã?t ±»†ÙƒZjg‘ÿ6MUˆÑv!S:LJ6ßÊ4~“;¹œ˜Œ4R(úì?=(ª;!ÙÖBF¹D’´Ûs Ö@®kí¿C66¹ý5•¦ÓWi×=fHF_n/DûOå´¿èæcfþ\13¯ÁHe뢢_ÎØÉý¸±|í3áza>8TÊÅÁ#Väë’ÂG£±àUÃ4_ùBîï+®K2˃Q®U½¦]Mê6y]tóùxÞW8†F·ñK¦ìw½w™—±y]rÜøkgZ\rº¶!y¸ `ÇÜ+6O—rwøö\€‡¸gýTæÌÖf´s¢-µ¼| ˆuBù°>ß&ÃÊly‘›(‹©eÇoœ½ˆ†‡ºvì§°é +•fh÷¸·‡dKHöèKXèOÜ +¢Ž¹0’Ž`*”íœ/ª“û–Ð(tHØœÀSƒÜF\>”Ô½ 鎊é.SÆÈu_neD¹+]ÇžMRUô“gš=ë³ÅwI‚VÅ84{=Ÿ7¹¢œÖÙ´+2|)½Ì<2°ªOE†÷ýÑU; "@ì'q»šäÖç›ì@‚¦×1?P¥…Ót¬á=褼š«Ó£¼V:m®ºž`ÚÖÕd^ï æáÝ ¤Ù“ óP3ÇlœcÔ÷-/p¨Ã¾´oç.€†ß œ.£÷k¾ä.¦F‹Œ ­QQ'këµ§‡ôáXÉ„Xùôì±X:%‚º›½Ñwºv+äl×ô×yŽk,äEÔú•Ë®¶]fl¶«‘ kš/"û+zýQÿü"§]‡ŸÉ}æuJ"¿ Ëì]S‹9^½ë¥#M73wÏqÉu}ýù!bK—äE,¬ƒ†ºåŠë)ZÝ +X·QjžŒoœÒêÿ±Ï´NaX5+ÚÂTÑû— Õ”r#äÉÚz25.Žå[S úûq5ð÷G†lÅ¢© Æ܈ψ¿„{¿×_Äè¥üÄK™˜kšÔÁ?FäÚ WÑyÇwf šd)ªÅû÷®d.?gWNðø"¼.Šïò¢üÁ¨¶H|Tuïœé{”8*öCæD+nóp$-ÑÕy׺8>kŸïó6m¤Ðn9lÙ¿<Έ›ÄŽ üf†ã Öè‹w}ÀH ±3¼  ‚Æ)@W^³àš¥ˆB£ +å¼ ‡– ;>—:’ÚŠŸ2„ßµX§™}ñDГ7‡ÐÉ`µ+;¿'rðYX[SBêpíô0´ì®ÄÞþz5Õ6ÂŒ”’´œo”Ì©D^)'*2*Àwì¸gQ)Z€Gdèy£Ê¥`–Š>ø¬ŽyÞt|.º¶ÏˆüJdÿðç]wÍ1gI’ŸfRÚOKsTèµ;Qyÿõ Øp„µ Æâtg…N>‚œé¼£>±ÛÉþ]?#rφ¸/¦K}måoÇy2Ѡ劻[IÕNú‡°â¿Îe†rÎô-J\ÍŒùåõ ¾$†£UßéK¡ƒØÉR2Ðê}A*¤~F¼ïhZ„ˆøÑ”¿<Ö^ˆl!{%¤˜Ï¶Ä’A‹Ô|{ߣV|Ô-G!™ ȃ¨‘Ss¯y„û<²êýqi_ÓV×÷ˆÜ²[}`¨úE~‡4åRö{ÇÕ~R³qR³'yª¬&ç/’øËüºJÒ¾¼ í}NáO­<âÙ®ÂxZ‰ÏÇ_Í•SI„¥ˆyç6ÕQ½{Î +ÿ•(Ä]¡³LòÙx­ãü > +#ÒœÜÝø¾Ã/öcyØ£êÀïM0ô·Ç½Ð_…E¥ÑôÂSÀ"ÝBÚMs…* hn‘bJ¸Ø¥+òüŒHòQä…šJ æú8ºAIDºFpÒbë³üq+>¶¬*(Ì€A†óU–_vÄ¿ +EÞñ.c|ß$qŒ3Nhy˜ÏxÛZó¤¯+¾AæîEàIcí!OûÐ^í?4ÕC_úÓ}¨ä°«(G[¼c8×Ó#*È¥_ç§ð«óS°iAãeG|i±I°2zçG§k‡W)Ž+t䝨£®³Ù€xd³q÷üN¬92bhyž®¨½Ëã4‰Ç4~¯Íaœäÿ>²³h§€aë.8š>烯‡vò>ÏÌ¿þŠ‘£•Æ]Ó +ÆXˆÊH¯3–Dk6›û«§ÇºÓN”M*qÜô9Ñv0Þõ, +*Ü+æ2”?˜Ët}oêi´¢ŸÖõ°ñ÷N‹uå÷ÏÿüÓ2)°Üø~kd0 J‹„ +Ô”û–?nŒß£¢6r+£Å/±sKÐÛåR ·ôã}K¯Šw¥Ä“pçF „Fü³ÄÆ´ñÌ™®õNŠ#òÚ#Žllç:jfÒ+ǹ’¥O×ÅyCMo(皸AÉ"cX}ìEª‚l{qÀ”§<³(…TçÄû¨û#ø¿>øG›I-K7 ZûõY… +¾€¶À%¦µ¤_@Íe3  "ͬ+ [!»ôÂj¶.?|ÞUk© ðóçvËH²ãœ•<óè'â9"þTCDÌùu"L*ö;:öDF-hkšnþ’pÄûq³ …6b¼‰(ö\‹tÊ Åç(EæL;Iã¥Ý?EA‘F–ŠÆÓ~-ÖÅqŠò£m-‚ùȇðï_X¹ãæuôÁΈ3¤ßo®2Z5.Au`ÒG§º”nöÉ£ˆßŒÓš3aëj«¦æ³ö;ßqĔ凒¼N$Ã?_ vû~GŠ#¼zþd²V‰…L–IÐB9r~ßvÃjŠ]#§ìfì͉(Õî*õc,е‡'âEfÄ WžYÛ ›>"iéq‡Ñ-·¦š¥€Õv¥þÁ¾ŸŠÏÔØÓªŸÎsg øZÁš¾ÏV»"É;íAòü:MEÀGÎöqaU$Y`Ý~(CÎ0L‘r@ÒP·qË~ +ñ¯{j ™ÓÿÕi²1zFÜà>Eu2NR,ª¡u +m$VTžcsÏPþ’'È÷<ÏñÊðrá3É™0¨}ö‰À¥£Ä\ö'é∠9MÕ}G²Kí÷lD²µç~Ù_ØQU4e‘Ƽ‚Ù"FGc>G-cN‹t&b¨“Êø0çé¸ í¼Ÿr¡¨W6ïyDðåÒ.Ò«)þùÌý `m›í²ó<‡ü…zeõh¦@V;²x[ê~qù{׺ƒV9ú ‘öQ†" ÅT§ŸcðÌUæÜh,ê^4£ââú¹ïô|í¯«s®y>ÔJ‹ÞãŸÛ %#“_6#0DÄ-4ònAÅT˜=Â;ö”·Ê4ª1â×5ê`ypZõé™à–q¦¡hM¨P^í/ìy¢e_c©öÇ1ªö° C‘+?¢µUç<ù¯pr&}Á¯`áø•„êÏcó~X§¦9Ø ìª™=øüë¸Ê‚ÑŽ"#ÂÊp´×Okþ¨S~ûŒ½U"ø_ÎßnáµhÔýr‡ÞÏpœ‹Ë̵0¶_r“yE+Äý˜-L-!wÄÞBÃú¼je~‹Èï5U>{Ð….T¸Çñwßo¿{ºF#A•âçÝ" hñ‰™úŸQÌ;]1Gc~ÿªsE0†É¼xÞOÚý»4˜d-·cµ|ÿþ®ß;¤²¿iÍr;ŸÑD="„Iª'B0œtÃeukŠ)".RŸûô>'Qi¶ªµÒ0xH1›&â¶uËXÖ +cÆ +ƒ/`Í¿ª[ãûm—­=_ö&Q6îèOIþQ¶†¦À~ô÷¿{ËP?S]j*ñXèÓì­æsšyÔ d©FäÇù–¶}êx²†<æðR”aq, ¦ú{€A?ÁÁv}Q‚²½Ùò˜®z¹ë\.ü¡Y"q#¥KûëBœŸ{ ÎA¡¢o>(8§/:·ü$$ª‰‚z¨&•aËf(*fìò ”ްć)ˆ%;õõPdÀA-‘^Ìëiˆ+ådÒø!B Û¦„ízúá3ŠYíþëR2D¨ÅE.P/@ Ž©f*õòåp ¡TÕùþÊ# ¡$hÓ(jÔÃyöçB”Íš„"|CÀHÏ;€ÓwDT&æs\Qý¿Îä6‰…³Hœ“FJVî™çÅÓk-’áQ"(@a9ǶðìA ñ%ôZŸ_÷€Â‰^²É[Ì …íèï]òrîÂ>ÓjÜ`úÏ5‰² b»_ƒÝ¿ˆB©(âèþ°%ì7RK+j’@ƒ Õ×%YÖ>"þ|r%UÁ›uHýá8Çâ%¨¨_„qÜuu³û2wÿ‚$üÅgÑš¬Ñšª ¼k‹±opBÿ€¾pî×sq¢zèÇ:ñ=âk5´³¹)Ãöý8ȶÜl_,#úã—~z•eq ?ƒu‹÷içv÷Üî×ß›¨³’Ÿº¼Bd£R YØAƒ–†• +LáN¸<Ös&›gbwi„Î|‹„íþu¦¬Øgô¦ |†u•sÅHñ³Ù<ªdÊc$ Þ)Ô­@ZÆ|V§ÌòÅHàEXÝïÞÇßÝ'´F™ÏòÀ“€‘€ìÁÔ/`‡ìGtîJ&8çù¤Dîè‘È0¶æ)üŽm¼Êä•U‰ €ýð0ÓþH±q´8!tÞJð};Ê hïþ¾SÄýÅì­x,ãŠ]v(%0aÞR¯'`y Pî¹pÀàÖÔ´½hèóx™kÔ2a2ÑC¶Wšô¤¨8¬—·ÔcÒÁÎtweD.2rfc4ÉNžG@š’ShÛ• •‰Éyéýð-"è§u eUðæǩ͊áX•š;ÙÀNyê?#x¿„ß.ÝúΙ>¢žØîÅù0H,@ýûZv¾E:_$ñ$J~'UîåSÚäa¼ñbÓšz +|á»ó¡xcæ2}úçöØ:ìRŽŠ¸ /¹i§?@}Q^{á9 +Bñd4úÑË ?†‰Š´‰—B–›MãçÚ‚5—‚µ¿„#hU Ñð6QÁ”"»øôÃwEœôfÎ@3ħý>$‡@pGcb1™Jþ²Ôû5>>ìÊÂTáÞÀúny7C s5¼ú~".˜iý3"'XI•õãqvÎ @x×ùH§x}€ª~îvÉ< Ï•Œì)ïºóìëôàvTðnÏÑVûõïÏõ8YìKf6æÀl  »}£ªÞJY®9Hñ(§Ý1tíŸC¼ëÖÞ˜æKüˆ*+B‹äžhÏìÇù°<›VN⛬lÃ~¡²»Àüÿ,/(å2ãÕ˜c¯ “=Ïú¼!_ÙÒЈ$29Ý10`Xlp–Gãg&ò¼šýVò€vÛu‚L~Æ X«ˆhWÄhª 3Îøe€(ˆ¨ñŽÐU•Ôh£ü¶Ÿè-ßÿ9Sš•>NNó‡ øÙ‹ûi{ÅŽDWŒÑ…oÏ"pb +ÊïK;ËÿgÔ¸¨_ÝVÇóŠnê}\´Af uÎHb³+ò×8’³š‰h𲫞r¦wñ£nÀãmk‘þ< +DÿDIÈAmÝûCÌß ”ˆÿIG/°ÏO:oÇTƒ¬FMTÜ. +²çø¸ð”"J©Šçõ d9#Óöf—f²ý0‰‡ /#¤%T¤jŽa”ñgy•ðyÞÂ8¹ÅjŒI´ŽbÆ$aŒÆ ‰æ²åÄ$‚»Xš~æe—®íIÁZ•Ü)È‹# èhȺ˜Ñ`~ÌÜ<òþãKÛ ÊTÆ:è„*(î šxIÉn1M!û»ãÓu%ª‹~&Jö ÊÎ9Æ­D •ã•ø‘<®ÎPäò!0íËg#;ÇŸj•ðV;ê„üø`‚³+㙎yòA9Ã-šz ‰@u£À“Ùhs Uäÿ¡O™‡•.@” ÒüP‡Ú.Ö¬ƒ¨šù0è.}'ó •Œø±®e4Í:¥‘îs¤UXåaªøÎŠJ\“T0ǦD“ÿ.vlw ÀÆc q*DJ°Šÿ²‚ œ•%‰R¢Ô@…MU•¸ü@e}P†$:W•qåLû½ªoæfÔu>ÔföI ÞËFÓþ wáÖOÄòÏ/}@„©ø¦6ü‰Ðµ8黉Q±‘u1×ìï¶ûx·]㨋,aQ_‚¨”ðÜû`t¢Ñº’w;µ”}±QgPÐ({i˜gKžëˆ“8¸º` ÏcÜ9£Þ„SÜ¥À9]°y4؃Çð~ƒ'’ü;1ê]Ñ&üÈF$Á¦‚4­e‡œWË|‚I³ ÁAU^oæ(Ò߯ #´iPûWÓHFjÖùýœLL3½Ãº†UMQÕ•¿gdÅü®·ûå¡`øÅT†ñvº­¾ æâ6H¸F£–F‹,h(…Èa@c-c»Éw9 Wy ¼-gBõ.%ù¡AÄêî¢ÞÅ(uæ:Ò}D L€$ºDè±#†Èñ·ª9ápjlî/$êz"78¥zk\ÊŶ°l]4Úyx®óv”ðL¶ÀªüÇW¹“ˆ_·¦Í$ÈüÎè@FŽÆ•a<¿;£šÈ4?<¬èSÕü ¥èÒ!Ø=?,µæïø¯Ê½_kf÷qÒ¹)ûQ˜º3o˜ªktOä¯öÐSç‰Dò RƒIœ o/{\ÍI€3c ø…;·!{½Ý¦ñZ³^ò¿A¤¦«\9 +[ úÎiä@ Š‹;/ 2o· j?}Ë9u$Nkå0ZŸÌ¨'æ(R w²Á÷Äź‚Y¡ä-Î'Hô%~¥k÷¤ÿ£vu‡‡PPÑç0B>ô®ûaT^"ë™ÏÍœÈ/º±^V…³¦[Þå’²ìå`-Lå9ìÊvØ•ÊúuÊ6‚è1åHÝFf…üÕõZ=•X=õ– Pyÿ%óæD°^ñΫðû†ôòPŒ÷@Ñ&9O¿OÛ¾¥mozÇ-z¥€£Ÿ®ã:IóïkJ5žÓØì{ź]Ûw_¢Qճˬq&éöÕìÝVÐâRw™’U­DÎÉÏwz¯Œ¸;;±½šÞt×k&<õ廵}°¨l—#šÑdrØD6é¡,~tG.ìÓ]å=Ó¾›x„{RF\ÎD)"ECF×¾QÖu®"„s5¾„ôXžòœÊUžíµÓ°wV¡¢ä¦ä‹¤©Ø"Aô´=Þ»¡MÃî¡V·Ò”{Â]Šº³ þÞ~Í@ŸG…u‘#Fa— ²³:]AyìÔùê§Àæ–íË|ÎǦ‘Vª,Óþ{~ Å¢†Ñ­fi£Æ#̨Ì;Ã6/ÿêç¬üTœµŸ¯E°@Ô¿k£pkF ¿ 0û` ¼6ì/§&N¹"¦Š%`ÄG1–POÿ½næÅ™;˧gì®\˜¨¶@gEÌ}o|TçU±‹3äYûb\ØË¯ãJ¬¤2#.ÊB-ÆãUù¥ñJ\®ÅpEΕC®V'˽&‚ ê«h©5\ô-fdG4Úš2ûe¤×¾_ƱÌI/Ó4 «ËÑŠú+çžæ¼Ïr “·jèûÏñ¡‰ Ù=j]Z¦ßÑyìí:Þ/™vîËœà çÙ†©KéòUÉ ùªZX½à›´¬ñþi±Ö#V‹ó{/…Þ»[È£:o$þ‹,'’JU†àVŽ##íôx=_XÝ*;ÿ]BîkÁìÍSGîcÊg$;Þeþ–ìP«`ç4Ê’ï¸b͉ŸòšãÕV3ŠfMƒâ D‘\ðÌwÍ]ö{—Œë“]=ü™ç)D7¨w¨% €G†ß¢DÒ“ü1©d—¿ª`û€^±~×yD[›]ËžãbÉ„ËÔë)ÃÉ»H®L‚‚F2"³;“ß;ˆ$fptN?j¾Ï¦6Ͳ¦b6B¢»ïØ ßR×ü®…)ÍM¤ +CÄy@âÒœ¯88u'yÒÞ—¬ ¼OØKT û;^3ÕÍ(©ÁÀ¥%ã:4¤pÖŸÏ™vÊ NJ¢€ÚÚ“càYË‘êÌSÔ¹ÉZùÀÇ9hƒGðü>êÓ(‡¾Ê!.¾êxîŸMæí}®xG­–3™\óííq-ʇwŠ„ê d‚tšGãV3Õûsž¦ý+~ê3ÊH¨tàé×ýFS¥)ê? aòåˆvìÃ)ÎÙ8œ³’ƒˆXUD=Y|>ĶQíÁUþÁöx*víǤ+FÔ5+*¡™²’*GÚC›y§ËÊzõ’yˆ‹Ü +³H#©ESŸJ€€;$ú§í¤”6«_HÎQ|ï’ë¿Î³4ß…LpÈø¼ÈF‰áDe}˜fÇÀÈë}üé)]V""dK*Zj!ýÒÕ‘s߯[µúT)Û ’òŽ·'}%šWÓÎ}?Êä"ê§vF@|†¿ð×WÈ4Z.À¿œ!™".Nš‚ž•fö¨Ø|ÕŽò±GÕh3 +ªñ-}™xÀi£Qòê¥ÃäO‚³$c7pf·R»€îu§”Rçgo½øáÜÏBè¹Ñõ=@x´Jh¨RÁ…:BÐXÄD®cÙÆXt4,Hè~A¦AΛ³îêo®OO|éÛÛÏ Ïo¢¸Ù‚ŸgŽBmŒ&>,,ë¯ÑÅ‚óÄF8ŒTz½Åжð~£T†Üµ{7¥'ß + Ù÷àômA‘ÒⲪÌ+ïÍ«VO±`$h¬gI4ÀË‘]€i'‡¡Ë{›W>stream +ó²ÅmZŸ‹~t‘ýc>¹¯¿iæpCŠýUùjþV®´•÷ÅhZÆqÃŽ«ü6ñä3—'—£î§`íb UÓ²Î8ôÙ}‰bsâ Eî4¨+èoïçÒÆI–m¯Ÿ™OCÇ­œiÒÎ ûæ¡ëpð(7±4åí¾Ú·z­wàlft¤hºErR_ +ë.~šû’±=MdéYKhŽ]ð\¢vêÅ®˜ž1Í7XÌ£ÍùІ(|N ¥sÔì +íèNÓi_gʾ£ºMG°ó^-¾vÜ!!6 ªjÔ¶Ä 1Îá!àÆ ou ^ÐóåDÏW½¾WQðï>Š[¯àñŠmr|ÁZlW´ºí‘ì&6å” SѪù¬W’»§Élù¶2žOªÒS;tvË‘F×j7AÙ9ryîСœ ¬HÜ]þ"ìoþu*ªz°ØJA) CÍAžö5Y¬•'ÇÑÞàR'?Ð{‘ï‚_§†Ö}úšÊkï#{}†zaáU³†/œŒ 9DõÁ&ëºßõžî l¾ Ïreeé´Ø43õlŠßÓ†ðó6™Îc§/…£×2滣pNó ½Íƒ‡œûO“Ð'½QÞUp|Šßæ1 €W\YKKÊãVȸWÈ3SQ~ßcûD6mjÎð–BÕ•xÛàf °¿ÛP xo^ƒ·Û!kz‘r{=`%4‚¯—aÝ¢7¸Zúv"×NOE uØêè˜hy;ãB¬mý¾‡ÿxz~2uÐÑ «V$ôàwÏ€Žl±òw µÙžÑŽ_§$ +Âêµ\6Bio‹ëÇ(v=áaèî#3mÄz#ð/&âëLQhúÝ'B'WÖ‡þëL$]¬4\Þ@%HÔ™À°®ƒ¶¢mq¬$¢ÐÍäbäR¤£‰˜¹XŒŒÞó0¦%4îÐØuç0E:3*{VMLºüh Êè Ê;â×Ò‡YÊŠR(ˆ†œÝSgŠ$8^ñx /ÃãÁFûs`íPúfŒ®1.X‘^¥üSí¦ „°Ûô®˜˜~‘‘|91;ºljDâ(2ڥϡÿ× AŒPM.Šê]Š+ôËfãC»Š1LÉ_Äå¹%A)󼟧x(ôÀ9E"Á$” šT{ï`ÿN¯/eÕ;ÕŠš;8ä}ãJÁË‹wªÈ±ù‰ó¦¼¾-ÀI€D)ó¨ð'ajŒôH}-3X¯C¼­M‘Oþ]ØëÅg¯®”ww<[Ëé+h¯¼Ø^½/ýVŸçé—ƒ_€O'o®àPKùG*Zè,’m1_o=J;ÂåÉ^Dz³³wÔD³*L¶Ó† +’@°ÞÝ*î–îÅ't`f¯í# ‰ÇíyÔi±ãA¸sß$œœñWÔØ''J3Ô\ì— RØü.ËH±_ÑÜÓ”hÔ㥄 +öéò¡f|X†’,øWÖ­ø ˆ.!守Ġ3F$aÿázk#µS”CÛ Ò×].ܘz@qNËÊ’˜Ó\oãN¶¿´éºÅâ,P:Dc’õo~3N¢T™¡­6IŒ+¤†06P<)¿·7}ຨ91¦Úó·QEߌº.dúï™®hî7ÐÑôC„GF| @¯\ŠpÇ– @ªè‹“ó´—¡*ÿ„ ±E…ùoɼAáãÒMÐhPaÄ”irº ]£BN%݆F‹ÌÂKSdjÊJÆ,ïŠ ÉãZAK”±æÓ#ɸ7ø¹Ï€òvؔȘEª_yʧý[øO”R_ü±C9^§¯‘~þeÏ™Âé@qß¹,½±µòVQ´‰šíP¾§mt˜^É¡RÛE)Vpš«¶äîL%œ)0ðc€I à3þh[ÊÊ2å&aÏëVcáÕI»W+ +ë˜6åÕD©ž…¤o&rV‘Qý ñ10“Qº8³N(S ç×y ž´ªå5¬ÒèÑ™½^l{Uï73½×þy4¸ÝÕ9ík™Ö¿ î£.\ß²^Îo‹}÷ŒÖÐ-<¬P¾„¬/†;ÛÇá?sŒÞeCÑ䥾÷ ß[­È‹™\5‚v¥IÃ"EB€Ðd¼eŸs¢î„k¢¼ŠœWèNåqVé ©»u'ÃBùÔÕUwÈÇ1æ7Sa7•\ +¾‡ Üg)pI‚çLGi·¶£42fSDŸ|#eãªÉÏÐj-‡QVmøfb‡¹ßL0F]ú On.ˆó”ÍK +/2Ô½ZòLªÔ)Ї4„<lЈ×òr­ô‘á´°ŸBôæzûÚUüÚå㊓&Ý mÀ"˜‡>¢Å¢Ù¤Y~p4'€¨ÂqònQå½?bÑ»Ž$_•ôÚΓ¥Oë6„h¨¬!jAïD{5ÿ´ÔÌß÷OÕ"†aJ»VÓ,X¬jÙÜêçýÚÚY;ðªQaÅ&=B`YXú†5¸-ê;Ôô7Tò0Þ±Äh›?:¼ë±\›†ý@““Í×5‹Âü™oY¤2®|‹ýíe×t+%1A2ø×Q<¥æÎy—ŸÓAÊ3$ÅØ4•µMÜu©lètPP g¨|«Ly è£V#@R­§¦¥uX¼7ÎjX +ê[lêÿ"‘{ÒX'¸¨¢J„"þMUz™–7Œæö)†Pc]%ZbÅi:ä Æ\<´Z$ÙÇéâ6=ìɉI´l¸ p9bz·>ãà‰Ô§ÜR”Hˆ?BÑ5¨÷ei (÷½Á+€ºÝ KëÓ©û~Ñ[ÚöÁ/ 3‡IE9zíHíf +¢ÙãE1’…‹ýcå@3z}f¯S'¡#y¿ºð{h¸ÿgŒÀÖ™ì(ÀMöJRé’$r"М´#S.5­©ÚH¦ûŸPa¢÷L‰€‡ ù…d/<8ê2؉vY.¨0æ—âØò>¬Öd¶îï[\ÁZꀲU¶^ýâ†0›ï¼ëºœw-E¯£ +aì +C¸Ìu àÿá²R+:ø5ì¶°#*è•0o$®q–BSÏêQ7+¥IÅV4´ÌWkvÅ–d/í>ÚíLëmGÍ­ù½}œžnIƒQ£-ïRÈm›]!IˆÒ@éx•>ØùH +÷UôZŽˆ<ã¬Ò`Æö;à|,Uìeü…b/x/-¨<èÁ<~ã›/?,8q›FûSÙ«Q*Ïžy(5óPã>ÃLŒ9:Mˆ?„áý5AÿæŸô£ÿèŒÞóŸŒÝ…;ÕGfüì¹¶Øo7åÌß ¬šØ(„÷—AÞ#ã}Z7ª¦ñïë9÷޽9WkøòoѦùU±žXB©œBÖ%Š>zÏŠ`*DïÎ+ÕŽâP¡3}U!ç/²ïŽÚ?¦ºX×F1­ ªê6CD×âoTÅ¿ÁéLÑ3e¦!y‹ŽqåJÄÑ3(/³^zgeihîEØ…ÔþHñ8"°€Ö¡ìJQ[/4#Uc¯U $áD\ï†ÛU#“Ë›©Ë•¬)bÛHG£Ç:3¬¢yÃã(Íà‚CÒ­~1:¬CG®¹©Ç-©xylñ PŒE;”IØ*´ö|zNIžJSj—:®¥L¾0PšPÞdáU$±Äì¶±ÙÌ„(€öùÒ|n°DäŽc|s0ξö,’{î+‹ô3´Û‰ ú£¿y>Ðädd!𮓴²g^‡º7–v*;ý=2£°„ç·¹OºãõÝý‚' Ûo^¯ÉÕ°ºÎ¥œÄ" nÇ_ªì»pg^^±m–´½¯•'8/¶$J•ˇ€™µ›M•m•ýúæôL¸?#LJrræï">c³.c t ˆf\ +ôõ°¸ƒ¾˜j0§ù:°*ìêaÞ¥C„i⃺ØÓ·Œä§+Þ.g"F~è,‚ŸÈÜö{~õœƒeDçE•¹°¿[ܨöþäa$ûqûÕæþj¼œhX#•vfv,¡³„VçK”^ Gxœ´³Íc´p·þÓý@N$*½”÷ïQ޼aõH7mC ÃiÚÜÌ9›¹:À9,j9yÏûD´q€?½Æ†èûgŽ {Ø%szfjdøýóóŸÔ(xø¶^ES¸)ùWé…†lkð 5æx•¦œMÆ g&h׬‹œ£wBÜ(³J&f4ÞhÐx[ÇÀÆB¿÷…ÂBô©£?Ûj¿NoêsUÉ8 <ùÀñ#²ªðGìê¾/2À„úVUtïúï*a® ¦=VAo×A?öƒåVPwÖ–J‘šŠr<`÷yÒ—Co€¸&`WɼêQÅ!ï }Þå¥a›úÐ,` ¿‰“Gn}ÿŒH*ü­mO-6û™ÌÆ7c÷–gŠ™æ¼K&.órýÕY!ÊFåÍÔ5QÆó²÷¶Ž=ŸRÌUR‰ÓRcxdÿ(ÿúg³ÍÃù—1ç…7ØjgœP¢ùœ4Ø–œ`Žªôj¯ÓH…ÒLïQ¬ÿyIiI›“ãkñÀjMñ `œ"¤ì꨾¼PN¯l1VbÑ"rt +”-#ôG–Œ—®mׄG™3 @¾äLšoÐE»^(ëÝ­ÙQ’º‚ÅWÙ µã¥,Ä4æèG¾;ºÏµi÷L²œ;bõúªÊ?ʰcéqt¹%Ós¯ª¾¸šs7JÐ’ÌŽ†õ¡pÆ œÄä™§Q*˜JÞóe³j}'IWvâ®=Ú.¥Ú9r]9žröuÇqWKAïDÚÕ^‚«šF&”º4¿èVÜd*½Å-Š)(Q(` D~˜Õçõ5C¬¦!iGŒ1!“9Ž•9QÉðœ9²æ_DÉ(,‘˜Ü\õœ Ý +ìÌf嶸{AÒ ϤPç½°³ã$º—ÂdïàG ñÑ·T·iº"½¤,@¥•BĽ.ú+¾¢2KÔ±Ý/¾£o")ÖhäåÛOB ?ê‡À˜5J4ºn*°=©€Ä&¢(Ÿ®ŠG4ubÚùn]¿ >xŒA JÂÈ ÇŒêq”1¾^Ù5\YF4ç¶bH[ÏŸ¢*Ä ®¯)j?Яýû]+4÷¢ò&Hpätè@ PEF÷œi=^ ~ 5mûê÷%Sí#"í¥zF¡¼²ë‡ÃL4ÌYÍf¡ûš¹-õ"jÝŒñ(æÃ-ÚB„‹1Ú-;J•Aú—Ï1Öu¸Ž@=îð¸Ø7öÈò€†è3¬¬SŽßy›]ñ%C»?DªÍì¨ëÊqR_É.>g‚¦²#–$™ÜŽc» ‹Œ¾m¯_Ó°L p³‡;ÿê ‘ḛ̀/Õ¶ÐQsVúß]€B2 Ó÷‘]”qý@ +SvhÓ«ðkO¥ßú8Õ+Ñ’ 8«ƒhŠ“¨ks='§7ÌÔt1¸¬?FÔtµŠážâ{Ô +[OùÊ«¤}$ÆéÎÔT¿Ó³S¬"èz¶wâh¥~Füù D”¡¹Ð2WÙ÷ã8‹‰ÜÚÝ]Dä}> 5E?¬ô¢=q¯êØg¯„3†Y´¼šg:ÅÍÇÓNL£¼ëµ÷Bz‹ó c+­€ñJƃwy¡é¶„Çu“³£·9Zr«3MÛU#)ލª'/öN#rWŽl32ŠjïÍE7ûëL˜x©á€£æÞ“r&»};¢kf@Ä̃&'¥r×CGÃ{§/ãUstËñ–SftaËwW5œ˜zet¸oMüý{îý£ÉÛ÷ˆÃ;½m¿nzŸQ×íµ¨ž{?l“ cÓUe#¿#•ü(ßÿ=ò1Á.Ü‘ÇßÿЃÍ+ñ³·C3‡Lû`íÜäÞ¯cëGÔ¦1+Þ¤ŠÒøS>™.‘ºx•ÃSŽ +ÎÑ$ÜËZ}È€\Ç€­ ¡=ÐùócÃ~-epÏeD¶ûûãÀÔÝÑfߟ Oî[Å“z&fHŸé¨è_@umcn°ÉDŒ²^(˜¥;JŸŒ~–5Á­Ç\ÀÊ­Uå žƒïßÏŸì¾?ΉþšE%u}ö[Zê9¸W áá—Ö‚„ù~7³#×"Mâ·Šf)}àdtÄXœ<££»b®»â«è×+d'>ÇÎôP³Z\t8›‘mnvßÁæqlLïˆY˜‡D_4š¨Ç¥†v^ž!brãtá"]£é6KòAÚžmàN_ëÜ~ÁA‹órz‘¨ +N~0×úE.….ú™Çcy –êÝÓsŸÉ1[è×Àq*÷Ñm©±5qÔ„Ú×±«‰Ã]™A±APo° 4À¶ó»+ô>'ÛôÄÏ{{+5_¼6³#h¼Z6GÁÜäv¯Z«Üek» +`µ%Ê¥# µ°›— +G~‰Ì {6ÙÒßú +òŸïL©WìˆöþŒ‚ÚIT=×êEÔÀŸÆˆ½ÓÁҚ͋“í¸·ß‰ €®Nñ„9'¨™¸ÜIÙÐnñú(1°Á@aÔä3ÎzB 2—¾GÌ“˜‚½zêF­% +³+ýBJ¤Îô`:*ÈØ +žYÑ,óIâ|³ü{ƈýè‸¹ý È4ËaL„óBp˜ÎùA;¢:O+„«æ9,z¿Ìq—ÇmÍ4i¡Ýß"š"ªÞÕ¬>zj×ÝÖæÀ.¬=Ó·¯þÃaðã0ueªÒ³B÷´FÜ|%81OÄ󺡽B^ß?\ìXòž+cÔ'6äŠo- +aX·úOÇ™íE`hªõ޹Ž•_=&gˆß0Ï5 +xBO–eÿ1Ð[B4n(ú)Ð?ø Àç­šx\¿·¹û‹­@Ö±QOfS&ÏÑ̪ÚÇ·ñ¡NP|þÎÔî{ÀûX-tÀõýTÊá5¥Ù­)_³åy–ù¿Ê:ÌÌ×D,˜MrÀ”45”ìpü±¢2ËqÊZåë’YiºÐîψœ`ň Íl“x¢Ö(’o~[)>ÀtÉDæ"­ƒcÀ*ùñ“+JæušûˆÒÙ¦8ÛŒPÅÀþˆ¿Æ8) +PÃz+Bò(7Ët{>#<œ¸¯ "ûüé8úlC$Q»ƒëa¡çÕbþ)"Àh^y’ÚÐ̸˜ß?w®WËt…àdÎÞ ð_VE¦mˆÅP¾}F¼ohõÎ`›ñ#rïzPH8éœù<Î+ä ¡¶öq®~%áÂDª]‡²gõKž;;Ë z<ûÁ•šé9–” øÌp$ŽÚù BNì…'?î0«zQðø~Œø~Ô¯}æŠUÝŽºàÙ­é:­¯§û ʫʛ• žj€99‡è3'Šsbë¯QÄ1ÒùþJ[t³M©°Éš@³È zâ˪œÀȋб8³qÕ‚Ú%¢_ë+K§6‰VàG” É-ÁOUºUÛyÓ3L3¾G”3Ö×÷mÜFiâÄØ5é$HcB01„LÍzŠ`:ÓåýM[‚%NB7+Ðý%±9ްd;p ÕÅ#WŽa"°AN@"^)A0ÕDà‚òu‚d‘Æ ~i×»1þüŽñ¦ÍýÙŠúóßÃ{z®…N*ÙäAëá3âÇ ò#й'’{¨ñ¢UŸñÅ-…¹q ºûq–ƒ°Ç0HúØáÛ!šåwöð=öð¼µáA®¿ï=Oü«ö]e)“±4kíMjEsŠ,KaGIŽºsß°fÆÛžYLjÞÊ÷1«¬[ŒµÇùÎ úˆøÇÓFríþøó½9ÐSÙÕ[$kV;uÏ…¶Iù0`0ŽÈÔâ΃3êõ<º’]T× ¢™CÊ~½3”úŸ±!ʈu"êÌŸˆò|¹+]WÈNÃöŽLçë0ïЖ®0 ÃôºÔnâß©|Y5:'MK¸%/º“нí»ÙC=Z€E¥Sù,Z ê)”`žé 2zßñGÔãµQ6xB9Á+ü͘ò-ˆP2Ѻe`>‹þŠôqZÖuïÁ›F«K›tO)'×ÂñÄ +<Œ¨½”ÀÝhS¼ÔŽÀ}„ˆ]“¯sœ'&éU0Àt¹àƒñ»ãº,_ˆ‰ÍøõØ“”ß~ŒÐšìf?¸ó ¯¹°¼;¾Aa‰¢ó6qg[ç.Òg“Ðý¸ê{µÔ€`_áIi¶À¶,Ù‚ÆL’»z Îã:Ï9=¬ÐWAçB_}$¦îpœ`ãcÑÏjš_#cö±o©Ôld8¿¦4W¬Œ"S­§÷ M¸â[”×ÅœïTÚ=îT`ö¸d©Øã.q¤HQ‹É.s`áG ByÁl6#WüÚ§ÔŽûÎÿÏÚ»öZ–$çy¿`þÃùb€ÀfÞ/É2-Ó.I!A £1žiIc³¦Ã& ý{çóFDîSgïê!AÎT®<¹Ö^—ÌȈ÷o WZ°; +7¶ÄYGg[‘2Æc°Ý`OÎKr¦ N£ŠÊSÙÎ#ÒêžæT¨3‡âLÚ¾J<…#Wb+‹`ç1ˆí™-Çxx‰‰ƒ.îßu›ž ƒrBõŽšGC[9 );SS1Óqc1œ±ÉJSoÓ˜·pû4 +dVV7ʮմ܆2ÊyÕ(ê¼P`ðT¹‘ºuv +êQò&N긃‘XÕTQå]L +@5µ§| ‡›I<è°O½@” €Œ(«CêV¶Æ§’馇é5¹©™¹až~`Øp—‡x­×…«_«¼øs^„išs&¹D +‰éæè–ŒBŸk¼{{¦Ñg¦l¡ü8ˆa:o“½/`K‘ÿ _Ê}ÌdÒ%M—ÞÝdk2 ‘ó»~XНÊ0N·Œ©·¹†ø>Z@Y9¨ˆ…6ÁQ3ê!E%n_Åðš’Çü¤,¯ôŒ_Ù&ܯ©²æ{¹Z_ +s°þÕR Å&±{iMœ;P§±K™Æ*ÁUíMŧìæ~ŒÌžþüÌ5B8·«ƒvéMÄŠ¶\Ú?öÐSìöóòÜ NˆfЦ °_g"Ñ*jX„>Ô°ö¬Æ^îük\,Í*ua'D’èc/Á©§B‚;m0¥l% M¬Ý¤¨™$EÍ5,¬;+Õ,¤k3îÊàb9œŠµ\ˆ‹²_亟z”n¾B¨ \Ùz±Ùrc:"s 9ÑÈH¹È„u @ —•$¶ÆËL`ƒ"«Yö2ò1–¦£ÖE±×Ê|-7"CL³ÝÅ:̬aPêî„ÙìÀÔTŽsMuµQ€«¬áí1¾-‘PK˜‡6Ș­?—ÓTFš¶Ûå¼§GGUI'™· 5&—JM·Ÿ´Ÿ±ê‰6»Ò" ^-5…°nº;Ÿ0ßÈOJ|ãc™eøkôǃP™H×iÎáÐÇ´%bwœÏ­@‘A|%y!M¨œ„/{Ø2̱*›>Á‹qó!WˆœOî±K+ùù‰H"«”¸àCŸ¢ÙTö“Ñ0x—¡. vŽqV|7º„s¶”‹žzÜùƒ2*²OSIÇ9KžrËÔîÅÍa£+,á2|P3¢ »×]úÿë²ép2~u)«+;áá5a y›4.<ЉÌÜÆUpÂV^!¶(8˜Jû_U—ì¥1:‘¿¡“gè!4#±§LZe§Û@5ødiæ|…ê5ˆªLQ’²ûþÈóö3aeT ~âFªP¥ šz¼aãDÈpZžÌì·`\‚‰u’;Š|¤”w"%XDuÏ)1ÃlfŒEá½&yXTo=÷°WÊea(æÙ^ŒÓ³Ydœ-‰@‰í£A!„ëSóæŸkü”bØcÛýts.Ï€L§I³ÇáL +CL¬éVwgrN’5bPC5sé–*5BEIÀXr Šú™¬ÝMžqŒ­ÍĘLÖ[Ú/T¶¶ GbÆpdÍÉû2O!=0ÝgjLët&}†öâ£ÎõÅ8ÓT⪎ì]ÂÕΔ_u +kÅC1PV:A¿R¤š §«KA”žÓ Tä“T“³ýž-aJòf<\ä›Å,BFPÖ¨áLéÃ{ ˆÜå?*3âmèΤ Ÿz’ ÑÔð‡hL  åªDM2BÙyMc¡×°?ïÂew|¤ìÏ¡²Š47ÙDh/wAt>Ê*ˆÊ†ÄdR²(øù˜rK_ýìÿM{ß ¨?³¥„/oèÑUü–šÜ­jœãE*#ÒøO¤I.vô«N¼WêtöÉuÞ…O'“_tŠfû¯$¦/ºÏÖcùzîa7¬[Ô‡ƒhÜÏãT§’Èq–"&#Êœ4ç—ž€Rñ´ðÜvSVÑ·B¯%pâ" ¶^ey¯£öëÙ6ùÃ2ù›Ì=2 ñg… ¢ßOõE»EÏ}Ý´K`²‚e{䉾êÕЭ`y•hI'Äö¡ðA«I Ê`íê¦ ú\"µÄ¼`•Hç°Ê’òʬšià ­)Ùø•gJÇÏ{›:‡ÍôðÃÂjAéÇ^(ª( ÖZ9$Í$ç¼âÞ¡"@ð B­2 ¸ +ìÙ¢ÕâîÝÝ Ü. ¾!;R–L.äÏ*&¤¶Ò¢’K‚¨ +ó–ÍõPrᯣBK.oKÿûÄ]ß¡w{>Ð9. C€ê-Uª³ø÷¡¸C>4$O*x\q —Ù?ƒ€àú_~eÊçHpP‚2B—ˆnˆ»?h.Žv¾YÝÜi4%C(Þú¨ê9RNª^Mº,:f³‚Ð=’†yA;ìú¬Þ~c÷§Dô‰dÿM¢ý¿p°„K}O¡×ùíù/ãíÏþÕÛþOß>Y~û‹¿úñÇ¿û³¿ü›¿ýõO?ýðÇßÿ7ÿðý¿ýõï~ÿý§ÿð?¾ÿñ¿~ÿ׿ýÝOÿæ?þã줯ÿâï~øÃ¿þé‡ß~NñÕÅí{¿ ðïùÿç;?fœÿ[ö£^èLœAyJcÅù"õ;ˆò×óÁ‰<.YarKR}ÊðRê›”†¤È˜¾ £C6­;›[”éNÜþ&­w9YÙŠh*foøAâ:Ì%œÈyNÂ÷úÎÐy ÀÙ Ÿƒ0¾q m;@0Ïp +:š—8lÓÆ$«rš¤F½NЃrÉ–1ªõmú226: §VhM!þ/Ã-èŸd¸‘r’þ$±ÓÀÒ-w’JPš¦êi ‰ɓώ:ƒ®¶#DŒ4ìáÝb…fðÛ7aª…%Z®$„|€Ç• Qæ4x2jB9 üÖýŸoVßgÊJOr ÙÜÂ,áéwƒ–BGwFÚˆ!'ÓÕ.šüDu˜©}Âò˜:`,ƒÞó¥êœƒ’›FâMF‰ø4ˆ +þ©PU›ªÉè4ðh÷u­ibbBYÇÓ,ØóVIIu-¬%¹)þO›6ý%µ&¼g¤FºšãwqøêÀ’@þ’œ¥Ý{ŒÅSÂú8ežAYh QA‘Bóu‘Ê$¥÷ç†Q:•_”U§®,Â@>ð¯Än¸PùZƒ ½ŽŸlè‹ëZ[Õ­¥¿BÅKêÊ|XçVÒ;à,‰u ÉäNJ²>ŒHé6Üá?–s²ø…’1«2˜x`åƒÒ³Å#°ÈŒ6¢<µ”Î{•˜7†Aêª7e¼wª +4”É£8¶¤é†RÎ%$¶]žÀ9ÊD‰ü-»ÃGòã}Å` S>˜„9Vî}¢î`zùV$Ãæ·œ|.š¡"f> #$=C Z;þÊ˾Ù,v¹OJÂ×ccv& ›¥ª¼t!ž&£P-c4IÍU%Û(ÙËOŒ6óT?0sæ+LÒÙ„ãU3–]ŠƒB:Wø+èUnò›`(Û\ ¥üzÚWwåÃÌx›R>|¸s°$™[—é^-F¾i™÷艑ÉU?·3š måÅÁAºjšd?âK”ä‹PÒ²u"Bû…ª×g_ºÎfé:sužŒ/vâÙ³Ø -v¯—ȈaŒvÙœ Šâ\"²ìg× +èð‹& à¾h«Ï Æm)3{¥3倔PJ@œõ.²‡ÊˆgÉ´Æ ˜MO‹o÷.lµ9‚.ÌÄÔãÄëê8ªðI›Ž ~ذ[ú”N×V¾HzäìÚlrM´Å¢úÈþ‘Þœ©àařΠÅdD©Óãü:µÞrÚÞÖaÂKåDëå¹K$R8„A°y¢Í\íK ò &åýáØ7‰.óÐO¨1ö¼ì{a^k3¤ºHá÷¶&Çn%ûÌ¥ãhs^b¤ÓÐ-Áw£‡ÌP̵ÁmîÔ÷Ü©¯Û‘w©)ªž}¬Äì#NåÂ#êêãát(©g(‰m‚ìL~œ0 +ö(ÄŠ¸M‡Œ¯ã]ÑÀ¿æ L¥Ú…d©}âγìRü[Ø<ø‰ÄΚœªÙÒiø]ÙMŒsÉ¿W‘ ‚ÜÎêñ ŸÀ§ø^ÐgÃuu4ÈGU2R["k«ê-üâ½Z’Ê\¦µPÜÅrUœ–ß4Ž^ov6bY– «ÐÕí(Δ– ˆE=VˆdÓ‹êƒL²”©T½à¨°·Æ‘PÙ¬\Š÷h[ðžH“mɪxœI6zKB™~¦Ñ@™*«ˆÂZ9³µ,lPl„¯Ø,ÁŠ\E‚R[OIçi®îýE-a àV~>8ÛWîºgÅÆTÐ0=6M‘sXMf" „?–Õ¢±Å£ÊÌÛÂ_ÙŸˆmPƒièÏIt;Ð%¸5‹¯¯R¨Vù>›X´ÿ1 ü‘‚UØÒàÂsF£M(cº8¢2ª!>{_[Ø»žo ”·”ñzÕ§ƒt!ÓÕtTÉNðqxíu²Ît·ùÜ*ìïyâ›Ì`Ô<°G}4£Q¦RÚk¸Fíã ¡uÉwPì~SB„œ.WÓLøÌjÑÖÇvý,lç|:8J™1È´äÿQÇžñqiG¿7·­H§[ TÚGˆ—§ó„Ïk7TåX–ê•­cËþä%mnI`dÜ9RÏÜÍŸÌêR%Uؘ¾m,ýX˜ÍJG EÑc¸nâšÛÒÚyg Ô©&R$3Ð/å,; ÔLok;ì¥1)û=êþ¨ù9ØÏ&ø6gåUI¶NMEDv‘µŒwíÛ­í`g{\qîaÂ¥[:7›kXØÇ5+Ñò°ùüÕ”û÷‹úq …ªòñàF‹D ¢.Ál^8LËMhY¾‡#!Ø¿¯òÏzÛr¶)n…Ûd•Ûy2›Ø3›zÓyd$À›0Ÿl8± +«~ƒÝò¶I§—OhÐÊÌ5SÎLWË(pK½‡­éXÒiøLш;R{bIfKš×$ªñ‰¥•åUŸZ¨QQ®’Yq1À$½ÎÒpÂP§Ê0k½¨|´ç4TÙ™@jíA'•!¨ñ'V1zpÐDOiªb¿3 k>?Kt‰^Ä.]½äИ‹=oR–!…P<å¬:Ùzè£OªÑaÊtcÃòµ«6uÎíT.z¡4·áɨZÖg2‹Y[ã,`‹ˆJŒl… Ë%€KÍ.…`ùIšÏN|¬É1´ÔbÓ•xtOFÖa9í½#ÙKR0P>¼#1n‹çÏ/ÓÃEÄ*æ$Ö…VjIªéH€UŒZT<: ÓJ…ØŠ‹&”wž©Ø *@áe8ä'ÆùL€Žm]H•«]]=’ÞI oÂÆX;“&6еÙu'Íåô‚R«=4é¿ëÁÂÙ†Œ!‹ÅÅôèB%Xðw_Ez±èSë"eLÉJjv¦2u-Ko7ðÕ!µÑVå5šUµ¦ ÇC lòÙÜ|KÒ¿be1ãLxjªÐ^ +ªu—•eMî£Lb, ó—¦C.j¶Ò`׫_*œ(Wô¡]zÉ%‚LŒËë¬^ªuZRÛªþ°”t»höCçõŽ ×Ïî†52‰ÌVóÈSr9£ãìI§!Z0´žK­!e­ Ï=L›yÞçðõAHÚˆ;"Û&Â`‚!,×…)£eàÚt”K<¿(Sñæcé¢ù¿è¡yB*ƒTNÎãÕîúi„’ â©À‘í:=³X”le‡Ò>!‰4s“­Dç¾£ð³mW.Æ›œ(ÎCÎTµii˜ÒšDQÉô,“U–Á”-Zéû¹‡e5$XŒ'–¡À‡^<ÓdOmk—5À7Xéç_ƒ?ãíúªO•J“æfwzö(2R`g.£ˆ%îóvŸ]#··CöW”Ôž{èM9gPÖB íE¯Ž³IüH¹k ò):ë!½"Oc<„Å-&ÅNî{hö=¶Qf3ÚÍ™YN7MòD.Êe ¶©‚=0ó£GÑ&Aˆ +Ò< *v»gZX Ï,y´ùŸÝI1GeB_z,S³_žºÜSsw6–ëCLm¸ã§ ,ŠŒÏKØ©ð,rJ_dCMÞ×ߥðEŒð G°ê”±xXt!DJ•B«yG>ýy·ï¦¡õ&>#È<LÀž|î±Dæe):âÖ¯{IŸ€:»5ËBΟвä©tßPe¨ÊXdŒ¶d^ ¡ÄT=q«!éÒkýÉõ3²Ö«hÙLý ¹BTgO‹ðì™4­ÇÜvˆ@YäÀ&2¦$[ƒÍ­^0äN¯Î»ÝÜòL'šA¯€ fvz$éWŸʶdy£ÄCánœË—à =H{œW¡‰@½kwÒÍ›•Ç/_æLb*<(-Uð ù)•3éö€T•-Hà‡ýÇ^uÉ^ .œ£¢ÎT*%ë€2±ñÉ¢m£ý¾½£áL¨1?(—vö²ÁÞº&í­ù!ËIûÐVˆb%[ÒóÃ-QxBNî„JmÜYs–^1/žÒ&Èñ¹°š&[A4™<š¥‘T"¤­v‰}ÀXO~õh¤$³Í7îÃ(çn¹ås¨ÃÏ| +£8@&½èñrüØK:Ϊòwé<ˆ· ˲åÁåDþ.Í /[e-79‘áuÐ1«–çš É+Õ-/zP·<÷Ùh A[¤0jƒ±,@€«¦J>”/¯L8¥Õ³“T@T%3±I¨WºÁù-…!àÆ²Êˆ ³Drî•2Ó°œ¤p¤@õW:òÓg =çnÚ mÙÉŸ¹~³z¿$i¥Lºó+Ú†ü@Þª³R`Û¦m;0ü@‹±°1§2W8Jr’,ʛ՞̘ˆqx¿žÅ‰ì˜å4‘̱Bòoé-ö½¬uçF,4OÀ¬£fl<¤)ÿÜK¼;¯K`wQʽ0'X’•ºS^rûë:9I~Õe¶pgÒ¼;NNjj ż8sÕ¯YˆŠnD×-²èàÀhÕÀnSÑù.W+ÔGP ã&¥AVEû:ì€4²Ï™Ç1œ*¯(Ë¡â,,VrCJJÅòÊéStš76£Ø·€°±BZô'— ë¶h¢’=Ÿ9‚kvï$´¥7_¢£@åÏÆ,ÒY-–è`æ:YI‹½kïæï„Úm ØO„ÊœáYBÞ§fø(T¤©@ã¿Dµ%&ƒuÐÕ‚P,4@'É]ãÃ(ÊéÈwaY¾êMó¹C5¸ö°ç +W“x+öb½KÓ¾pâ@|ÍW)á3‹¼èÛ¶š§rP]Ÿ{ᦪÉec1|Æ1•›´y–ÅÜä ÕÝÎㆶ´ôÈ5e.S(x<“E%ℎUpÐ¥Š/s«Æ1p +1è!lіܸz4Þtr‡Ÿ©Eÿl—½èH/E§—aù¸I, àL$D!Qžö’’›¦±»:°†Ñ} +$Ò3?PŠ„¡µî‰”îRn—Õ6Ó¤#(¿>çf,05ãlh~$ÄÔ²]<õ°§ó!âyÛk± •¥kAÍ`©p7Ë‹zš¿ÒyêÅV‹HzAøü¦+žvÅÛu$ĺ^d$NÄEI U2©é}ìðG1©b©fþ§a€»°³`Hã[\v½WlŽ$*#œÉ´Ñk#?p(›$± ßOsBÁX¤-©œ²¨ñ‘Ô熬†œÛKíO€œ¿EÊ’Ü;vi‚óÀÉËw[@Ò€ï’íñÄà{ÊzÛä6èEÀ-uË•eÆDsµú\2h–e=°õ==pùUSF<Ÿ',õ8“-®Ô:„ÚHÍTG©YùXµzmw(´,Ÿ2“—ÎÄ–¢«ÔQè±´¢–« ˜‰~ÏŸ;5´:ëùI¬¯ úÊ›£¤8`âØ w|Åi¡½èA¼=@t6âÏq £_õ:ï‹Kje¤ð«æ_Ñ:ä‹î.º ’•mq÷$Öø|à7d•)¡,ðS¯-Ä]3Ý3i¢aÌÂd’Õy5™P[1¡6{Ù’£uAƒ­¸;7*I+–ÝÝxîq§Ñ á†þb–y.$‚eŒ‚µWäªE'ÄkeùýkvÿÂí–N窉NõÀƒ~—ÈrêA²­t<³é±Ð³:=º½ÅÙJqŒq¢TõƒÕÌ2MºgÒ|<½ +¤O²ÕLˆÙ/s€MøHè/±èg)$©!=ÎwgCL^-’ãÂá†Ø‰Éd†™æÅ}þŠ™ç¼8¤žÀ(‚Q†ó¥ÜŽ”/º‰Ï=xEí¶à½éû¥ç^Ò“ìÍô$Id°ÿ"W„ þ^!lº\Ø´€©h–|l×+…T]žOÇð-¡²Â9iªfrÛ‚ý':xß_Rt5øsd4èÇ¢-¢aeIŒË¡àlÏŽ LKa‡ }:‰`J¬¢k–š3 +Ó¼ð/©Øæ¢{B6"9޲ÃÓm “žv*ׂ3 +-]ÈBvä ×/ã”Ù”ÁïÁ-WñÚ®‚hÎ<ó¼ä¡È_£2È@©A>ƘÈìšâ茯…ëÚŠ&Á[?Ñ6Å”DŒ&a²>ÜÔ3á&Ê·ƒ©+üÕÐvç0Ñy’~Eçé2·ç›ï³¥HІ—=“„.&‰lpg¡Ù1L(}PØz}æ°;ok€Õtë àÜê\É|Ù¬=8RA"!|8ˆ·™ƒ5…¶®v‹í±Ùm…Òg‰™™·ö|ð³ê,Ó6oRôcÂËànYmÕ˜VV9 oFâ8 >4mœ}ßð8ÿD¯šõs˜Ú(:àÂOÒ,ì 6›hx1/ÅÙ?ä¡Tø‰;`<Ó–aL¨a$¡³Én(18*i¥§O‹ˆ¥!?ö³XÀiŒÐ«Å+MaI5½Aa–e ~2:ëö`Ö²ã¦Kì´MÓ†G›¶Ù¤Ô*y›% f5ú>“a¡…±bÅ9DP¥Ã5mgY)·€mÍfqŒ‚»;¢·mê661öx¬Hø6;LóJð¿xA’ š8%]i›‘@¦s±dŠÏ0X“…¶F@:%H{I œ“ùÔÁâÉ6ãg½ÌU|E6Å<2úÚ6÷»]¨gŒ=ÎF‚Š&û“Þ¢ZñÔ+™Ä„Y Ø«Y*I“4ïÒ9]ÜsFŒn t@¶ÿ¼Î©»® dãG5ùù-7­07®À¾ºdÙ…º=á`•å4“3\Ã÷Ãlâé¼Áç5ЪJý”­Âù˜ùR¿x/a<LVð&;ü¦:‹t·7ø0Æd©¸m]ùõ¨ÂÌ!Iök7weï¤~=Ä„Â"œó˜¹ÇP^”{ iÊȲQ@&]Ñ.0{T ›ÒxS$D ÉS/ø†)ò…(¬:i÷Ò“ôi褩ë|–,@t€.Á[½•Oe#EÖþt¨üÂ,멣 æg[­w'ª[ Ð]‹+jªYRñ´qTaã)òZéRôSyÕõìw@–8¿ƒuÅÇÇe{‹Ì´q;8›È ñ&K\õê367ÿè dÉ‚Jr<Ÿâ³øJ&UgÚ,' ®âà–°ï¶eC þÉôU( ÃkÀ«p-™ýVñ\°ã ^Sg´¥?„Là)Ó!T¨]Ð&ß[± 2ºd1Ï5G­¡Q1ÌcCÀ ,ºÛ6)Z+úò$¤ LR…È +xXíM „òTW/"Bý9T…f–2Cª˜ŸÙ?;Ún¡ˆ±Žz*mP¸šÝ\vÐÝ(æF¢ÄÈéq6SÅ{L“d‚@,ÊŠ«˜ý™ŒI9SD0‚Xâø Ärz°-¿JÔòÀ¹|ªÐN€c”$mÄÿβÍv©KÄ¥üƒ +^ïœ ièW£ËhOõäJé©묨ö‡£ ’k~"@WMD\µ¨p!)^F®ì4XØÏªØ¤ŠM—‰É®Öª€[§G¶b¦¸°óIùÓ!Æqâ\ØœˆËÔÔ‚ÛwÐÿØŽxÜV\ȳ‘á^~êíÒ^]4YvÔ†kx^d­ˆ:ˆù‡`U5Öf1Âlª‰Le;WVp?ôØ 8uÏ $Js‹ýÂZv+gÑKÌßÁË-8,¤†­•8=ä= œIxƒ,7"ôˆàƒLžx¶{¦mo˜Äu'4…Kêûƒ<,cÑ$Á½Jþ›Mf£ˆd…‚"u kÊŒO» úŒö2vtàÅ aÝ™õ¿Ã¯ó¬ŸdƺÃQ¿c'ÅEœØè‚N²55O½Òå˜×]” x-Yä¿ñëëò}?ÑÕyMä X¤Øu"™wâ4”Ã5 +ZLÅ÷.¶Õ‚½ÍrØ´”"ÍÑÃoOv´EκXúœÝ7O–ú½*É`ìhRzó  Ú³4]6Ï›ivê°õAœ^ç7’ç"¥¥2ŠÌÀØ»„·ÎlMJXkȤÓTé•”ÇKXoVõA/€³š˜eËúŠšœzTWÁ9Iý§C•·'Ò=CÌÈG@‰ æiK‘Â.‡z>œ[Ãp:@Öä¸ÒǬôI0.^}ð´š rñÉyb2·LÿPˆ³†Ý$ßY q%?=’;-‚O÷"jb~ÏìSšù`<Ì¢œ³p1 X’Xè²bÂéž|ŸnÒ*, +‰´ÓjäÈm¢)>#º þä\"w;PÝÓ’$MÔ>‹Žšp¡]Ñ…þ\üdùη_ŽÃ"²{©£A-ž ã_äElHB̽š&Ê7ìÉÍGÈ ýO“u?›¨"x/[9¢“íÜ(Â7QgÈ‘Rƒ’ M +Pû‰Â·‹øå°IÓ y¤º@oé ‰š î­ë¯¸Â§™Ìœ®Å ü>=ª°^''ßUDžö„CxO´—ëÙ¨(FvÏÿx¨Y¾W[qgF=;Èm=`Oo¥oÅ.7R© ÓB«!÷4 â½ctñÁ¦IN!A¦eíÐΚÂýµ ×HV¨ƷiÃj¹ˆ/4‘cºdwÎ8(rzH,Þ(·èR–Ø_D?g… Òqù|}hÊ>3g,’LF$•Ð’©’ñŽªj`Y.;+:,Ùx:U~½ )?ïqæNzðaÒÁx ªßžCUà¹Ð×£WÏ&¶À•Juléz੃6ç ÐR·Óa3 —L?Mªdg"Û%"cݼy]Jx¦^Ù@Ôœ;N¦†[‹Ù.AÅä)²i^sf üÅOäÓŸð«DSdWÛeoÌÌoä¿ØA€¦= +Ñý,‰ÌÇÊ™]Õ2{6þ +ò"Ó…¡à©¶YVÒ=“sâ‘ÍÁªä!w³º©ÌMÎtv²:͇À6Ï4‹3"H5 kÑúÄ_¢‰ÈÖf+ÑS¥YÈ«%Wæïò1$æv‰‡eðö¦³ts`ˤÖ^ð-8Î^ ]ª¿Ò¼¸zÕ ¸4¨ûm £ˆ*S&; ˜&^Ž€ “iAI ‘'“ž¤ÒÉ7žà;ÚϼñðÈq£ ¼:¯Á Ûð¡À*wçæŠg +ÊSt+.œx­ÁœqŒÉ9¿Y‘§F=±4 &séAÈ—ž{ýŒ–>Z‚P +|¿Dd @…aÆÓÐÜLBÌJδ†tÁ¤hÊ lóe½`¥cå´¦ð¼QU+?ð£Éò}¢„ ÷žù|H~ ο÷hT$çh@·†#É„K¥k)FI%¤é%' ¤ìF«è©€q©Úê@Ñ8ªØO N߆r÷ˆÕ¼0 dùÎí±íh’ìCPO¤{0›™?iÇȬÁŽ õØ¥¨GóŸD£  ¼ƒ¤qu«VXa= +)I{`®â¬ïìpPÕ¡®Mq„GÈ‹"˜ô¬ <§ÞN¥N´»Oz®T¬ô§RÞb0ãdɰªŒ:H¤s[ù н4BoqGx‹†kP¸ýv·ÜlËaň¢òüÊb=¼µhÀ"Éœ±¹uÒD?ƒ­±ÉšîÎ$Û;ü³ÎÅu•Èäl–H6É1-©ä·MYÌÊj]XÁ6, O …±Í¿)dáQá[0«`i#Òí—¤=z!”§RT ssý2™A`pJö+ —¨3"p·ðeo2þÚªèÒ¾¹ðþ)cî&µ#«ZÖw‘í²Õd¯&kiz£ì|ΰ(u"[-ý‰ó)cë­ 'dÏl„l +â`“CöQâ¤Ô­1‰!U2ªËRyâ}´ï¤RIìŒþÆ.±øA]o|Õpªzê<mR_aÛ)­Tóãù½ønò<§¤pœ´í¹ ´f™Ó`DgÓSéJD‚Mq¯ T dG ú"¸\žU5‘J=™²õF¬Ø 1r^‚§Í|(hôb"¯Í.ŸØ\²zïu`I茓’ý®×ªºÍŽÑ(½ÙÁް,{™-= ùì¶î:RÞS¤¹Á)]#ŠyU"`¿ˆäkA8Ô­óŠLÐý\W/©PÁnhX¡ÿ*Ë™ÞÖ³ŽJ=)-I,CæB—u•¬)I¬Vé6“ŠIÖ NX÷ ‚r³˜1%ÐñàÅÉs©DJ¬"f$Œ~ª$àT–(ëð$Ä"s»´Çª#´N¿S Æ”X`¹eŠB†_/–“­Épå÷bàc÷/ØIN*”¯ +J¨ÃÁvYh<àLƒ¢»©EÊž\fHŠPÑ3°2ÌÈÀ˜ ÉËì†lfGd]ÛóŸç7SÒÖëg3„ÜŽÍšr2õâ$A.#JôÚ¹: õ¼ù|ðýÓÐhàoÏ¥í;hv“h#ÿs>TN¸„ìä¯e°‡ªìTÐäýMTPûü˾´%-§oGž¢ þoÒ® ×ÝFIVb/Ðäá»%5bMõBÓg9oÍ r_|ÊÚ²N°1g³>"C"!µc0ž³GÜ2ÊóAÀ»øp`L¶I°èÀè¶ÖÊM!¹h´¼+ù’€ýd}”£ò™k¸e\Ø&µçyŸ °OLžì3ANûg.Y“dù +åÞá +°{?¯R9wIÖwg$WÈ—t$Õ7&¡nF»\éC·“‡Û  +5'éq¹fׂøîyG`Z +2 _Ü‘ÙbJeö`~æØÖ+1M)ÙÌ†åøžr=;Sˆ€òE°³eIp盄6>•J6öí’ŸîÔ¯©-É›­é™d‰7‹®9\–œ4Èä¢gHÍ×Ç0 °†çɤ¢bVçOªtˆÉ ·Ç&E$Ø{²+GÒO³$”'Aä”wœ˜-“ôy|‹`/¾QÒ9»º Ô6x=åÆ"•ŒæÙ™ÁJ“/¶'0É#cѶ+^²…q2hs%>‹%Ѻó¿Mº›ß)ž•ŒdN2ªä_ùíÝä\hBi Q­yí;ÁÝ«7ц,G(¿D¬ÐŠü©†Ëä $/J³€5†KËõZøh©BSiå7nÙp@R8•ùš²Ðw+FKvþûžVL#Sï‰ÖY¶0Žôns[’d¦öòUú²R]¾‹~Ý‹iš^ye'`gÂ{’/²CõPêsoP•8½†c¶‘0'¿ ÒÜ\ˆÒÚ8FxœGc:HE©G÷<éƒó–YÖ±eÃ|'S±.:`ˆ=У‚­šHäIz5}ý¢*ï'é>’ E÷ù›OÒ6J_gÊgêĨ+eW„ÀyCw‚çlü’œ‰ß%)CÒëì'o†0Ë^¼´X™‹Œ-«zA —ÁtÁjP.,"_ÂÞ¨Ü=D%e)ÎÄî‹ÌNp‰ ÆEÄ]ÅþÄà:± ð2oVJEE‚Ð&[ᾟ‡ÁÃ-XÚ oŸ,UY¶S2`J(™v'å>Ôš¼<ÌbÕg|$›£¥í“öýY`YÏ <ßÐLŸY£ÕZç‰ ø—Eäð‚+»ùóûT)$”#‡&ŸîX2?.9Ö7½s†F!¾D‡²&ƒUV¥ê³‰bË4¹‚ŽØ8aaG’Üüé^²@à™NJZnÃÛ&v&W¶ŸÏ°«3N'³ˆ.(ëH +%V èÕò/ÈžáX|¾,ç!%•Wåk̾€¤4“I1ìÖ顉¼Ÿ–ZM¦ZdcÜ/Ù¶ôâòöb†ž2VªC5¢H;u(=¶&m#\á6µÚŒZPíX2Íä«UnÇèïDÙ Ët$´Íò°ÈE ¤*–4G¦>T¦]“K%´åK‘>üyn&Û²Ö¥ë í†^ô2ê>ÖÓüØfî;*¿œeŒ öNÖÁª>l.ô,IŸê÷Œ­Ï;¾¶‚9PsœºaöæX±³£f'à.r³HmðjU¡Æ÷,p5º"¨è2Ÿw™(È+…% ¯…p­}«•.1bÈÿgE(î6Õ …i`ñq"?±i„œs>{¸eš¢Õ ü,`ß0 Ì:Á4P(‘Xl‚¢ð—ui$¾€Ù bRÂÂA¤ gä&ÁDÚ™¨ÞâÛñ„†ä3¦¥D$ÄŠØFç·ECûnÛ<^É­0nÈÆ=ËáÒö¥àò›ºR>oë*Äú‰]"(+H¼f}hœÑd +Ð’a–è¹!4S 1´žDfkþ…’Ôf>éÙ @”º…Sh^¬['´î¸M{Œ˜ZæÄÓ’¯Û:ÿIÅx‘HWˆâÙ‹»&ó®ú¨(Åâ{{ÞXf‰³HX +á…‰ž{>p30ïîrÁÚ´áØÍßXO™’ü0݆¥|t8N/¨ß׸Ÿgö!>ŒØÊræf"Ñþ†Ñþ¤ºÍ_Q~9ßdMÓ‰rKý!z¬œŽ5‘sˆEÊj6«~Uº¡(—,‹«Pµl&Á0ÈZ2‘´é²òCJZ]ìZ˜#ºî¶ü7ÎÝž—W]]¤ptèézë‹"—¸íI€g(™a¾6JÂÛõa⟋*ÇП¬¥¤@wõ—l»onoÕĨ²:g*¶‚Èg³såÌfÌB-›?ÅÀÝW[½‹¡SNÐzÞßí{q24SdàûKå Áæ+qÅŒ|LâR¬m´7BY· žM2ã7–êÈF@žÓÔTܤ’]·M RÓZ²†em°#`Dé&÷âê‚KòCE}YZS“=¾ÌŬEWÕŒp&§$eqê?`˜:Lâj7Y…%Œlè·Ó 8½Š¦ãä˜Y¥˜š`éTä;ÆyÖC@JÑeØ™ª–LàúÝÎäûq7D¨ + +Ð,[éa–Å£IWVÔDâXÊ4ÏàX4Œ4ÕCÛ—<ýèañÆÊ Û™&t z)Õsæ=Ã>€È.]¯$Œ ïh3­FIèSa|Y§$ˆùé›I€ažË1 K–âa¶´ }´§ ¤ 6@è²n-æÊKƵ8J¹N„ûŒ Þ ¯tb*ɨmEÔë‰Ò7Š4<`Wl›ð ¯„,¢¥€Z9Ý2°ëy‚5,>’²!ˆ[Iý…( QZFɯKv»µtÅ6“Šb‰†ž ní–,cóÓ¬×_‚â€pŽÊ‘jS*\Ÿ쀞S஡SÛ33*#3§éO 4ÜÛÜÀ¸Ê]fnØî ‹žÒ¦ žšz)«ÊC§*IPæ‚Lgh +«5»wMûð-/3õÀ¹ŸÖãLÍÕ%±ùív¦½áû± +QVtêªìvè!…ÀJ¤Kt&iUaLfR¢rt&®Ò#}’ »ÔØ_¢cP!ÌÕHUH/m)§„ÜÌŠ-Ѹ¶mlêRj3ƒ@¢E·äÂÙ=/ý‚4ÌîÚ¼äØ •™hH¢Â¬AKzÚBµrGµu\¢ÂIÒiš˜ÆC¥{&Á±˜‹EòÊË‘DJú–U;'L -jl4 Í¶9]^«Yœäa83#8°v9R„Ÿ¨áÀÊ(V#\ë<AòL¾iIÄÊèÁ áVÍomJ +ˆž ³øó ðj„·0A@YÜNá¦1 &ì*MU»AÔMº¸Ý;×s K§°™E’’$Iêx*Èh r‹²S>ØJ¡H„$nzºZÑNÕ¼6Ì éôßúJ«°µe#iš¿}:Ø®T{V³Þ»*ÜKÞo'»¨ðógnG´ƒì ^³«Â4oûÛæÈAuR>X*lOý¹6”ÐÚV3Û#M3§„Xõ°O3UQç&,©|O 8\ ²%—“¥îÓ .WkÇò•¿‡ ”š8 v‰ §é¯Ö/¤, ë‰õá5Q8¨S dMåÊv‘u°eÉpA|zí:J]Ê…‚@pƒ8 œ â׈[py”â„][Ó­Dˆ±ýƒ»€7×þ”±JM‹Y7™,&üäzÚÂÉ6#ŠÊA‰òd[zS,F¥ + { ô¤ÏOÓÒHªDÅE6¾Ê×ÈÙÌÖɉÍÅvV·Ï¿2B‰ti¡”K=XšÑK½ b64=½A(ÓmQâõZš¨õ2îÉéÌeRÀ +\މŽQ€9 œ@SBÊD€¦JŒWiÕ"ŠÊJÇ”Šþj/è?éIV¯oW +Ž\ û,ž5EòíYÈ¥†äkRZ.’‹èá²6¾‡7˜°*Té²ôän®¬J‚ßtŒµËB+l]1ÞfB QÑ‹ Œ²4…š%\l£Ü0”1ÑQå2ÏJƒQƒFmú:y¾—B0HÙ`œN‚óšÇ^…±1Î=ãêU뛲†bk¯ÞRæŸ'eã°X¨¯ðýÑýkä%TJIµ¡É¾êëTV9Äq¾æbì°ÐÿâÛ_Q€F•ê• +†o.  _g6Æ[@Žs+“Ë]ôiÈ’¢¬@VmŒ¿Ü†Y‚ª…@9 µðѳÖµHü磇‘bvìØ=' +íÅù«…Ôüî–d$;¹ÎW%Ú¤üª·“,Pʆš2Ðé|ùÆ\ë¶Œ‘ö’г» Ã¯¨w²È^”‡e½0‹¦º en"¼ë€„â»ÍôØú%«œ($I/hô=1Õ39x;ý’óÆJ‚˜Z&T|s’7G×ÞÚ.ÅVÉf†XͧPØWã#TH£¢ÛT©Þf3–h‡eûC奣4‘—‹œ°™Æ§¦ÉÇ:ÈÛ>¼9^ô*ÊxÂê<ËÍô‡f¾&â|уu7˜h,Ì~¦ç^]«µüëÑ2,=áX4ÎZ* ;ÊëJ¿Ôa‰KNì\åÑd씸ЪYïþ*›èh>Í™‡-(‰cÜ@ïœw–?5·<¹hDXËA¸ëç`“ž"ªÛzhšÔa WóÖ¥‡ve§Ðuõ0¤f5Eâ8“’z§×.~=ƒ©¯C°B)šlYaÐì>N¬§q˜PÔƒT­N@¤{Ô(ÞÖÚd.U†PnÍ_UÏ3V%½ÍV Lè‹Í‘æ0îÁÇ^cKL¬i?UXÉ™ ñþDl:±q†.Ÿâù^›ÚÉ =ª÷¸ ä‘ý|¬`™¹©îfY˜LH!hÑŸ¿z!ŸzmŠV|Øó@¶Å”ì‰H¤3¾eqªí>š®{Oøäï9ÛÃóÓ’r¾Z ¤BDX=$ÌÏ”.([µËÁêu6ZôJv¬’¢”Ä HÁ+ŠaÈ´d)úÁ`³ÎKÂÆ¦ËWãÚšYm6-¤+½ÚôçØóXqc¥Ü³ü@•¨ï•ï×` AWÄ––U§¶hÒöát6žX•m‹²ùÉŸíÕjÌ& +t÷ç–rÖ+3a~9;;e£Ð,'—‡~ªÞT„aµ€èX"ø*r°€Çg–R{Âü‰=[·UN¸ < l&z¨¨"¦bù³a2ÁDL™Pþ—¯Ÿ 3ÿ…6ðN_Ó ,»<†ÌŸÂ`N0ת{™m¤§´™hs`{Œ&(“æ¿Ô-àÎÍYÆœ‚Î’;TeÛl µš!²Xœ#&ô2º•§0}Ó°’ZUœÇÒ7U±¥ƒO”ž‘o·È™$Ô*|—I²å§‡+q&ÃÑ Ò…t9½’¨¥žB,ùO`f+b›Ð«‰b!ç=ðo8=fóuSèØ®£%Åv‚Š1õÚ"…àeV¥”e„ˆÇ"AŒRäâœ&ÿOôm›ÌåLE6OP·´G$y@Örn”ŸÌY#‘A—Ø1«ŸfV@Y]ËÅŽñ–hß±§R¤¬æ/“4) +œÕvË +ev;$IýÂìY’/µ £ßLgF0hBdõCßMF…øTùøMUrݨIéLÿ¦n|:Wi×pÅ%÷„[õú?C P™û­M@uz¹»œ4y[µ«f Bÿ†·~‰ƒ[HˆÐã—¾‹OÊoÜ?ÛLpÿè䀰1Ù³rB¡ é+,`­!ÀŸ7 +oOz£W—Ëãðm°QA4ÆÐEÕÐEr›K*¥\7¶¡} ¡¤©þåÉÐ"JÅñG‡ÁbÀÒ +´4*É£¸d¤‰<ŒL^XÛ//ùˆvp¦të¥Ó ^JÌö-Þªôz­û–á$!ÆÂׯêÅö‚Y\,ß±T6" + >ö°MQ÷ªg-R˜{êŧ‰ £12'ÔÈŒOñ®MÆùê§ïjêJ7‘Ží‘íìFý2EU:^$$w3wÍ ÍU‰é¡ÕýôÀQ=L%²jÒÛ£G{ï“ÌÍe‘ –Ò‡4p»N6Žm§Î3aáÖ8pNIñW=à#R¡€ «eÇÆ4‡7/«2!®W7Ô<ˆrF“óG’v þ‡çÞ5‡Ø ¸7«wIDtE9×SbžÔ±Òc¥ºÎ*Jb[:Ãbµ-xš'ÐîX9òþî&­J8V>®œFu’ò›Ø2h( +œ”eÔ‹nœð9 ÁxjM¶²Éù2UÌøÐã7^ÌÀF,e½è%­¡5·ˆú·! j»˜âvÇA˜Wª öš~1aŸÔ-“n4˙ϔ\ÏHÈ‘lHE+ˆ«æÐ£—|ONh+e`H7ÄÝ(ÓR«|U –ÕCž“„~×%J®RßKÚ ôHå~ Ⱥ5õ‚ÕBþìê%7#×éQ%DMa¯Œ@l _½¼QZC9é¢hÍàÅ#rœf‡®ô ~vMV‹ÃË|Ó&wÝs„‰¹çäóž{8ën)Q¦BϽ’Ãv˜%ýæwrÒPЦTÈšãb$kaf\’eïLô빃ÍUîÚÏ#ÀñiP Ê8u’RCU>ÒÏ€ÌbRd64°^ôE½dš›Tð 5›}o*|΄I#ŠÒ¨)vuR¿ŽÕLB4Q½Ñ„F’z¡bÌåäagR*m°zTcI«îµ@ž_ÔÜm³†zÀ¢GÏ3Üè$ÆI8›ŽÕš‰Þ·B—áÐäNÊwt:›:"˜‚·_’þ”Û£jgß.äd+~Ž˜Æè¾--a.ê rëiàÍ]¦Ô :ráit7̦¹ê½e¢s&›àRŒží ´6íЧ)õIÙÙ6]NÓ”—ŠýêŽ1œìîfXðu \`ïÎwו¨p¸7Ž ÈCÌyyM,þ&¾½,ŒÕÏ/–ÐÏ ·v–Ä^Èc$N9÷Š€Z‘mþÝÔ̳BÌè¡G‡}0øPN­á£¶Q›ª®âhl³"V¾ÔNò?‰®¼l† d^i~@X¯5,ïÔ@ÐqP$A3Ì!^È|,ú«îà~¢6VVR;\œ”Ê9`5ð3›{€„—\CDEj0ÎÆW²‚›8ÙËQEú¹W™,L@Fèÿ§Jdâ²ß³– 8ð§¨$ìIÐiÈEØ38E¾"¨‹Ã"ûG+Ù\0|Ìm•…Z\À‡´ÓYéI|fGØ|u€+º¶HŽäRÝ ‘!AžÁúá>0N ÷&VÃæóC¶h˜Æ% ²ã© }‚JÎ2µ™µì|•(–R0¤¦¡ƒ”r@˜-2›!¥gÍF÷EU¬`ržî{Ÿ¯;Ië|ºÖ9‚ +ÆñÆ)ËŒ€ø@Ò¯ÚýÑΩiúëc²f®†Ä¶‚ Љ¨:Ì’8‡ósXÎìYÕS¤”,™o²BUϱ.•¼áLÑê jhoGß^¡Â.ÖÊéÕ - U¸6•Út@\“pÀ^†Óç,1¿yë¼£ÚWCâk # €ÍÆÜì…Œ+v _ÐS¦TîH'Áó8H¼·YÐ\Hè랈ÈèãÀ6̦àîCsJ ¿vSÃïb¶M›2º/Y ÌÎ÷CºA´ñô‘Á¯/þ +ù{ß)ÈFš™†,émgŸ +ž4 ßEÇ‘¡j H÷:sMjƒŽž¥ñÁ «³•çñî•õ*²/þœÌ–4Q)0ƒ))Óœ¹ðöÓq‚iC‘ ûÈŽm£Û>ÍêMIæìÎ[30”¦7¤8AB­è !JU˜‡/Œ§º'äÇ‹ƒ&{¶}]mÉÖÕ³›Õà À¤t~¶+ìlþ©&J ˆØ¹\Ò›Æð¢ÚÆÎ£eÞ1 ÔƒŽ0­ónZç±R™"Û_UEå0b¦þŠBŸ©ð(òl˜ƒÒ.†8ífÕÑfÛ`“Üv7!`Ý9UR, ð›tÅ. 6™=û²WÎ;Ð|ïÝÝðé Xð@¥`¼” ÀäžLå<ýù8ˆÒ(ú Buta;YÚÓ + LéBE˜*2þròÂlš]Õ=R¨9‚ÐX&ïÀÞdaRðÆÐMp˜¥À´Q~ÅpÒZá ÉGÄšŠ†Y[Hʼn +õÄ=™ŒÊŠ_Q}SIÙÌÓ¡¾lX2Š@<ì¡XЈµš4›ð³]ò)Ö¶ÀÚ|hîqpM ©QUKÎ_?Iðw¿û…6¼Š#uP’vçà‰² $—qÚW 01'&˜lèWw0Ýž):Ê'›cD«×Ö|üZ³í0wh·JMÅ„vü& +°~ØÁl©Ô~èÍÏ…X¥I }qÕ†‚òSWÓös¯V¡ˆœÞp@ËÅuÌ…Å5®ÜEÉ$y[~(ÙüP„noN€Ônxäw– Õ-A·8;ÈëB^ªKÔ"ŠóÔ¦ÌÅRZEÔ“ÔáŒ@îa<¦ÙD®Âþ:öŸÉGñ6U(D̉8×f«löØ +?ø'ßÛ†Þ z/þ\fÑ\LÙš¾ ‚Ï?‰kÊ +¥·³U—†šxw‹|h8"T3(T§Øœ*iº|!n¨eLï1­Goq¢é=âÔ2=ò¾Þ 2yFãCˆéeÚ$–Z5¢Õ8:Ty®ðRœÄŠÖAɤ¨Ô†ú$ÎËÚ4ýjä`™ž p‡Æ¬î$Æ"bzgh’ôCzˉñ­ÑV„BŸ_nvˆØ < «%2E“9\ÜÏÍ-L1Í=œÒ !þG¯H:½ËHš5LÞaÂúÕèÁ_ãE~g›ÇgQÅr;þd›"(=ú»(r‚D©TäÀE®zgŠöèEy”À¢§¦¤°¾q‚0 UˆHVá3Û1¤aS‘£åˆ1õ1¿u¹³‹¿×Ï\,b<»Xÿ6WõwûÜ!S-ƒÜBèˆ"Ž‹ò¦¨Ä†ÄZ- +)©h´W=à!ó¾-Y™ßÜ =Ó ÀuñÔøâê¬Æõ%*&6®†ÉÂe¤ßXÉüƒ@Çš• êèN¡ËùOÍ.tƒ¦86\qŽü-ˆ6X¸á9 +ø>à(ÞW/õž&Ì>¡¨&8»´Y¹£~OæJ\Б3[ê;Í\ñˆYE,ŒS:{J +AUõ?H‹Gã JPMñ,ïa.uŒsyÚŸ+Ó%¹í9ÔÃÔ¨P¦æf ^2é’+;=Lg +zW +µÜnQÐÆK2?ÉÍŒ—RµÂé6´ý…Ro\ Of ÄâârwAÎ2ž{D6hÆÚû`‹fT"\VŒ­Êf¬É.ªˆCY–ãG@#dKO.ùª#Z ‘qheç0žs”Ï=J7ÿP×­^ä(èE|”…n†¥#‰Ór”ç1’nâ &¾!†Ð&Ë¢\?×i:k{ 3Y7¼"ÐXÙ„÷Ì…~›Þ=f¶qJϦÀ>U€öž¦ÿ5M=X¢ií1¾Ñ!š°Ï‹›G«õ ™?Å@¼«š ø`ztMéô?=ªÄ/Q¤‡I@Zyh{ƒ”–Ú"Ú8o +‘2¤"çF.5Ì,[>›B½mÿüÍD£/´û&¨Ê,ü­J#±ƒ<Íô”?ßihš=ìÕßîb# B‘Oã€'pg½Y~É1ýÅòi +GV)Êé‡>ÄS³Tf‰¾°0†6v`ì@CVáµ=^ªØOî!âsWQyá©ÝàU— Bk¨eh1’Ÿ>‘x¿ëh÷ Iú7¬ÛC½¨æ[/tSqoްf«KmZd¤(TIYÆ|ô`ÃK+ D'RÝÍÖ‰ Ë5ÙuÉ)å!Õ4ùì5!åÈ©‡ð ¶Í±K!Îûš^³q×™`oêÉîïÜV 6F)ì÷Q}“û|`fÿåãÂß­“ì O'-IióW0B„©R)ɼ)š$÷ÒYÌ’®¥.ŠyeÏ=ì•r ¸§?ýZ欌›Äèc“îÓç\Eö55‚BaµXƒË#{ÚÖ‡§ ­€B4p¾A°Ox5´OKn‚ÃÒ¸ œoL…F ¸„ZP¤ãÔ ˜/ ÜžåfªŒ£ð¨óy¸ÊŸ4)¶Œ z(5™Ï¶¬ÈÓÈf"ÃÔ‡:‡w˜Öá<ø B2hË”6â‹a² ´fƒoðÃ%Xà¤Tò¢G°åÿLþØ bÀˆ±ˆ9âkŠŠGðõi>|[‰oÏ/Úv§Š(&̵3$…J°,äõMÈÙ`’ ¹ $Óê&7@W%`“Òç°ñ‘‡UrRâJËâL¾'2÷JúÃÍ =»!à8º”êRÒC,ÄŒû3Ï[<dî’¼fâìlj;Ÿd2áfß–å4â®ed0¡k½çd1ÒxÕ)Z)CŸ7½Æ™>öâíR/ˆ@²²q +)‹%QÉê’ÚQ­)D‘õ`wØúsK8,‹ò …#nôÔ P˜If\†´ä¹Í7…Ø”±³ßäe£ûbO¸a1lûé8ÃtY¯²¼×‰Ò?ûõlsöœlŪÊ|žÐPú’TÞÁ¤R‡é‰"µ£ÍDJ2w­wù!6¨óç²!–¤ + îÞп¼¦·ïnò‡Bú»KФÏ“C®ö›8œ?%ØG”ÛoÒnÿ…ƒ%ìaû{B­þËo)ɼýÙ¿zûÏÿéÛ'ËoñW?þø÷oö—ó·¿þé§þøûïÿæ¾ÿ·¿þÝï¿ÿôãþÇ÷?þ×ïÿú·¿ûéßüñÇüƒôõ_üÝøá×?ýðÛïÏ)¾º¸ýKWÐÞþâo~ÿÓûá8áÔüúÿùûìB>ÿø›ïÿÏþ‡_Czû‹¿ûá×ÿâ¯þ×ß}ùþoøão~øýOþý[çøÛ?þðO¿ûáŸÏ)þþ|hJ!æ¯jà½oè?üî\ÚúÝoúïß¼/Þóóÿõ§ïÏ ýßþøãïºgùùÿ÷~÷ßþûO¿4òøñþÅ_úw?þó?üÒ°ÜÃsÓ÷Ã?tüêbÍì Ó<®ñ¹åqêoN_ò>ÿó?5ãüÇ_Å[ðí!ž§þÕ#üÖ“ý¿ÿý¯¿üðÛ·ñê©úüO>Xâ´ïH ×Žf½§0¢íó×mHIÕý»ûªÍÿö[YCJ^ÕéÇ™»Ìh…zg"‡@ç4ì××ׇ\ú²ÖÜŒ]/Ï¥³hûÚ£"÷ýötöOç‰Ò(ÆšÚÉ£¬â—…EÖ}“±{ÂR‰ÑÖF4? òÙGްÅÔ|t²€ÚaÄLFÅI +Zc:Û¿7;áªÉGTî“_0L¿츼³o»jÁ>ûéÒm&Cæ§›eøÈd•ß^^oÜ&ñïüæ#\ã?1°êÍ”<߬Qô"}zãÙ²u`‹“åÍÝ~[š GãŠÆvÂ:o4ƒEK½Oå$ZÏ/öFQô¬qÄßøŸöõÀ_üÉ-‘Ö­{ü°Ç¯ýü³×õuk¼ë;)ØÙý§¸÷qɈæp¸ Åw@üfCiß«±VoË¥úÕìÝ>ùÙZoã>c²>qËØX¾½¼®O÷‚»v}IÄŽ_¼¹ÖîÍy¯¸`¤öšehÂùØ-­è›üq>ûxfAÕh6ÿ…SÝׇ^c첪¿ïZ‘ÿÂYý‹Ë'nÑÙ<ûüƒœ}ô­eÅϸ/Ї {\ñ¼§}Ÿ©‚bŸÙR|²ë¶ÓMòž;.­¯þîÛXɯmÂx·göW³·—WðéÎ?$i}¢aÃóÏÖ~’_špë‰yb¶½IjGóêÅg+ê’>S”lÏ5°þöòl~èKÞR>)_¼¹ähF‹éÍáÇùì‘틦qd¯ðñ;´mu°¾õÎwøß Ã';]¿exõEBX}ya+þp¸âf.>Y@t_*é½w~÷2{c‹!äNñr¿³÷èûm¿j^å¹ïk?Ì’GN õ¶~Ãg’í3°y€Wí‹7 #k+DL:Ô&ͽ—§2ë£ùÃ18~€ÑÿLÖÙ'Ÿ Eä7k”Ñae©’c•°V}T|ò¦/ìÍü8¬X—_²¿þ“˜=+Þ­1À.+®€d…šGŽ™òÜÚ—?!^ƒúî€^š/Þ\‰4üÅÛ¯¢Ôí’ÿú™K«f®èûŒŸAט~Çž®àÓ}¦˜žÆ„8ë}¦‰%÷«É–Æm˺êÅI?ûW‚ê'ÀœRlÜ´ïãÏù1ÿú7E +dæhìõíå…=®X„ûx¦ýòó'ÿäÍ~Öx>©˜Ä1ûòFÃÅÐ(ºTtÝ;º¦èŠ¿ÏÓ ®ë1 Čϕír'êuï–"ÿÕ)FýêoÜŠèÛü*ôÎÜQã*ú´>\ALÝl™÷Å[EèU+Šž1ÇùožV[Ï™bª@ûÿN¨Ýì²é;=n—Ñ-jo¯.à7÷žæôöZÛcâ¬qe'°Êw⌷{P-‰;ÑÓöçÙ{™º¹e9¹ÒÓé>?žÝn¾®KCþË·ú{ï¶ý:(F?š¿ä1çÉݦñ:Çó¶7J·Ò'€o÷}ÖÕÖ~kûN +ÄÉÚ3æ;ìK­m¯˜ÇŠ«­{ö;ßQQ}B“9>QEà//ÿñ‰î}_Ø>êý]é>‘n ¿2¶ÚÑx£ðýø"¾¾‚_¼´|÷ùÆB¥ÎÅî?ÿ2ظ_¿û\Yü´È§üÌgÙo3»ý¸7-¾õÔúÏÿ4èÏö!A³ëý,—ï1)hÛ&³£nWh9¶ܧDÏ™c.lÞ—bmÀõ}š¥þÂg}§€SÖûÆA)ÐLjÏo#ótßoλ,è[ØË4¥?hso~U(-ß¿mx†°¯÷=o §ä¢hÓã0íñ Pìò²€,cõ[n–.)žâRãë19}xŸ£y¿³÷«î¸åÿpï̇g4S¼"Ê%|ñfiîZ3ûçè½û]–ü„° Ó Sý Ä=.y˜JÅýñ,ý=çcË%že%,×uŸ'iy߯§—Çe}ý#>ß)ÎÊüö3j¿SÜêÑßMPLøå\õFr¼%íó£ŽmÍÕseÁÌâ¹LÛQ™Œ°c–ûCòöcPRÄa‘ã'”}[Y+Xóæ\v(ñU2‹Ìõu€ÒF„äw—ø[Ì=Ƕç[³ü½Ø´âÇÆv“¶?`ìÛqïÇ-û{ó_5ç”ÆânR~ÕØúcÜQîDx/lô;=ï´ïóš7>Ùó1À]n³Oœëý¶$~ì=Θû£ÞP¨¾ûD  ¼=¿œùqcÌJÜfýrïìXñ5ä]~á +¼­ÍÇå?Ry³ýÂý{ô½¾x*/ì7§ŽrAÝ1§Ó‰Þí—ßì»<ŽÇÀáúc‹º´.bŸ”G´•Qo£}KW»Žìkòâ}ÖŠ¹帷—ç\Xõ;)øÜ¾V}…!_Ùb䨩¯G •LÀ[|£ä¾‹5½îvÃ0ÐÆ¾(“1ùìÍÕËM¾€ßæ=½7žq·=a¿¯B‹ÝwãÆW_]Ä» ΊÝÀ±§ Á˜wLNÚV~~=H,júØo>ê74ר% _äÃJ _ˆQtºÍñÑ‘k5ÌŽ2‘³—%¼F'Å‚žþgoî½{³´E¼ÑêEò¢ãíå¸~³À Û[®|W¬ÑCŠü|öùm ;!2¶@°¡ïŒe†ðrÛó¸~ÂFJï¦wz$\p*º…JÔqÞ¬ñ±E)öÑ6n‡åOþ÷k•» ¿Cö®‰iǰ}Üí±ÏËëò –þô9V»]0ÍžcX–kµÆ¾c6\ˆ#{ãŒÀ|EêŠVÏ=¶èÚ¶7Öý˜b×ý{´.½k»]#oÍUçôÃxü2/‰òõ×xÙúŽÂÓ%³ÕgoNž0-ø q†ª€MK>?ë'œùãMi·"uš‡eÀHZä˜ &þr›í=FÕΗ­øùrX?_•'zD7ÕQ¡¦E¥a¥7kÄÏ‹åÃ+Õá[J±%a€}£c_䤷>ÄÏWðøî¢p4Þrfz·un¡Ït÷Èqv|Ñù^¯¶`ŸbÜ›R@ÐX#¬óÀòùâ¦õwEÆ”º §¹Ž»qmö%ÑX# ˜fŽF¡1¹Åæ£ö›Àwš¨í]fB¥ÀŸ½ëÛcËnº>ªÇ‹šAÆÛËŸ ßÖÚeû4˜q`ùÍmÝy”Š–5NÑBhÄâµ*coFk¶‰Jóóí:¢«…}¯.À¯,§[A"jÛ5—ÅÝé#gémåhäyªá^oLzÓ¼ùn*l§nÜ”óPAíÕD"Ù»†ÝÞ&jô%Jïê-äx_ýñ§—CÆâºH1x$$=ô/Ñìy9¦ +ß0­F†}F~†i³Fáô‘Ä”h“¹cÍ›¾c„vÿöò +ü.`µ6†Oͺ¿_¢yæú®9#V½/å£íŸb€zðÜ“wô>Á<]Á§û€|Î7‹°ßírýÊ`æ;õE6gßÒ¿WÂã!•›ÔJ¾Ý÷s{?æ‡Ó?®+_ .3÷º’?MRœ÷ÍIiÆD;¬´#(ð,žæn1i@Ǹ}#.@hëíå<.­_`Ìn'*¨sÜé¨Ö¸=ðXâ*Zþù{V¥}‘ÞX)Ù<~þØ·+ ¿ª ^9yüý‡_à/*Ü/ûÿÅ›«ƒ((êÛÖ‡Ælû¡}¯4¥W4fß  i¹˜Ø‰y£eÑTŽ1è‡ ˆÐµØåqÁ¸55§Íö¢Ñh/;Íö¼4š×f©}gŽæt0¨V­¡ÍÐj‹òóuùt$=:íöwþâÍÙöØ*ÆíÛ·‹ªºõýó'ÜÆ‰›ft²x:Z•ãdÝÇŪãŽ[­®Ì[Ûv P ÙÀ5ø[;NØß’¿Ê*ÐØäPâ½ã½ýì­^`Øe‰E)ÕÄ;®w˜Æz  ˆgú°X?(Þf€:âf‹íJÔwÔ½Û¸®œKŽW!7?™V@kÜ)®À“¨Ü¢‘¸¯Js2ŒÃ­±îhÄt½ò¤@}üív›'»5ýÝèÉâjý.dËÆYcݯvÝ7¡PIøs/F Sb Ëð+Z3²­0R­pǘ† DÇÍÀ¡\ýô;^jq’ñÀ)r6ö®~gYêëóóiÌù¹ßï@Ò þyiÁ°¾‚ú£²]-X,!]¬´ïRAŒ)>Þ· z}Ÿ–\ˆÅÉ<Ö£±ÅúQtBiFßá¨ú–x3¢¨9.>ŒE˜Âl pÞÈî‹L÷7ƒO"nx ¾ðj\ñyãµZsÌmX‰…sÁˆ÷=}·S4î[v“Ã{L\zG­×  +Í¢´ŽQ@ò€ÙÏp|3Ñ—¥%¾ùŸÚ‘)z•÷°æyãðî)!IäE‰/fN’˜Ûï;ù{½„9žÓƒ æUÒœ9†@'݆ˆÒÇ7:ÕwuÀ|{\W`·V YsFb¹²ºÄߟ]õMeï›´e%YÓwç^9 ¥[¤ÌÜQóB/úˆû:¡å‹‡†µ9Z÷µøs¶w6WÔ¬|#Ô]b€Y“ºËŽ_0|g½>~ÁðD3ĹfŠeê<츃ž¨ÖÚ%wVo£Ç×uSrÝ'Í$k'¿+^»"BÞûñ-Îoþ¾;ÂKaÇ­y¾‹1JõæElÎçÙù.%¿5R¡±Çê¥ âô)QšÌÍ¿¦=kŽ'Þ}‘ ±Dh¢©óþ¹™÷…|ãjusЬqø„ÈïqG^ ãë]c•J–·Æ6⾬ÐbXÕF?GóŒ¤âtL¿¡ÇuuÏäuÔ'£q¥Qî¸åþ0e4R.Û~~Y#² 1Åß·¨ì+޲Ò"–©¥Ä|–s Úû¡ýÁ½³-²ZRýõªZëÛmk Œß~¬³(X݉ú·w)WÏ1èhñ«U‹ªsnöãlHcÔá¦Ø |ê ŽI—„f,?#ÐҽĄċàûqD\F‚še¬1ÐPÈÓÆa‡7üÀÒ¿ï±+l¾_í)ÀM|a–jøsí§Ú‘ +‚ÁöÙ›ûEÄȈÐs‹MV)6Ë|{céÙ$Þ9OÁ/=^/œÛ +¤Çß?ÞĶãüåΨ‘·§c‰' h[–›³+ݶV"ôرçh+¾MáäAm+ ¡ï‚fú¶»õô…®IR×ß·ÇN«Q#¾Ò´÷¾5¢½6í%¢g#¾Ã;À4"ˆý,¾õÏÞܼ°ohCßq§bá1ÑéFÂu×;n±Œ“¾:ûûvE<«n軆g@ìÔG»wfDUˆvúÒRºó£.´s,Ë+nSÌŽÆSß}µ³<²ÕÇh*V +½DݤFÉÛk/Óãänc­Ò<Þ–²kÌ% È%:­ÆRCÔª–4c_`Š?{ßGA=y(&áý;õ ð¤S3r' ‹-÷ €ÐÛˆ¸‹Þ5ÇL¿/äƒR#ïÅÎG½Ûûæ³\C‹´Åv‚—#¨¦ņæÆÞ4ïù!|‡zo󜭜O£ï +yb©h5}Š’ëV^C¾°Yi…»8ci ˜Æ*µD„u·¶ mLëžl%Êxš",Bké±\F„aÇÍ;Å|–AD”<=Ñ•ÑÖ)O¯W‰ú«ãôŽO‡Z­m1‰õÒ«ÿ0ôýðZDnبŽõ»#N£'8K~Ü®Gš%›s ÐgÌëhdÔIû5cÐH…Nd(öýû`â=(˜u_˜Ø²»5ÖeÛvAжÎxbÉ×q,æg|Α¶`Ô{ êPÍ%¶úÈüdN."j—ÆÇŠ=çc#mÍ®íö75i+kM|wuDœf‡±ì[$©ì:V¬@ŦZiW ¿,!Hb€vÐÂééÆÔÅ&„ÊzñˆO]Wäd#8½kï‡ Ø}}Pï–)¢’/Ü$¸<4¦ØÅ9}ôU%„fÐ]Ýÿ~zÈQ©E ÿUÉ9wT ï‚<*”o¹ØO-Ò#“(oW<-nu÷•ªZFÜ­ÉÈÇX±ÜFu§Ý—˜ç[ïß5`_F5O‡£±‚Þk9f-%vc€îx˜}SõF­º*Ë{Õ¨p[ÀfÔÈ…ØýËq±Î|}lëø­3ö#JÝ[0«?l§2RÏ76s`G­†Ï·ïuG:¨âÕí Õz™…Òc‹_p¥QUN;úCŽá¿RR@Úš¥b:½t@åÁmv —¾¼Êßí¢c÷Uó¥‚ó‰ìr¯ *`…ïÉVI'9ËË3Ößµ?a^F©`ØŸã—ùî|Âí>Dsëf²k‰d«ò¥Ý{›Sœ.è®UX! {Q'ÄïÑý8U ¼J„½R=MqÓ‘¸ûRÃÞ¥75E¸!oèÏÞ~fµ­t«¸ïÊp±)šÒîŠa“D„ùQÙ r¤ÀÄÑèUcµGÅŽGZ½¶Œ]¤_׺@ÿy¿›²"ôÏÊ=7o÷Û{J…Țˎª0­·âÇ;´$è•á]=MAÄ0¢6¥ú>{sÁ[Ù&—i`Æjhíw/àðQ–)Ã$ª±‘5ÞÝ0=kܾü¹vD (¿q+ÞÜ܋͘˦^ýÚàÈÌË¥7Û¸‚}«ùïèçA¬\—»·à¾Š§9Å~wg½C¡£Õæß* ¯‹ +Ë)^ÛxƃËL4Ñðo]Dr¹]Çå‹úüÿª6}Ž+Íů_åa fo|0Kjí5î¥D{2B—lW~ÁˆÚ—"®øcA;­qÍ@ Ô–ã»Y-€F­¿›¤ì˪بé…>Fºåëõ X_4O2,¹Z/shßdضËÿ~O˜ç 8ïÓÒÞŸ£¹xHê>­—àî^Ÿž—ð’n0[ST>íNÀÁ7ïÆN±ÆöÐ×ðù¯æûÚózÞøìÌà5`ÓÙÌàë^˜oøª€­´xW×òŽ7¡¿úÍ#ßzêŸ}1wÕ“Jƒ/æ%¾Èxh߯kõË.ÅòÙDS)¾‡Ú-¥!íäK¸­wÅ$’â>ÇøÒH¬{¶`/[/gƒxŸc-96³5Åûü ?5êV)y·m ˜àù&‡ÍÁd.'²•O‘«¸¿6@©è×PÂéõâuó]œZJÍ--+‚Æ 6ÅOþU^e<ôêÌߢu®X²ªãÏh¼¬ +õ¼y™ù ±–¸ÏËèý.1À +ØûŽKHŽäR¿d‚q74Ö{7²e€Ë“ĨÃûöû·H@غ|»Ë'ÿ6¾yíxi¢¼Ñt³aeXo¼ W‘H"É%^ú¹´h°:Œ¹ ç4b¾·†¾—>ýÏðÂIhà_ƒ„sVßG*®•`£§þ4Æ6CÄcìdÆ;2X›¶²“e‹gÈGÞ…,Øð§1_zBë‘å|h­8“WâÇ|E-ŽŽ$MÛÊÆß×<)=[ãHë!YÒÈÝ2³Ýì5¥¹x“WÆä´o¸z‚Îz›g‰Q–ñ“š,óBðjXèBòºÇÝw¤ZpÕò@k^¢6ˆ¦ËÚ´_O â~]ˆÍmÜMZ¦Ø>Ý06~qÏJ&ËíÂrs`Ñ/¶ˆ÷«÷(olÿ¹¹5 +<å™ÇåNõv%¦¿‰½_í©K“ë¦r¯÷›ç•QÏa@»ƒN)ìýl˜KîÉÇÝ|»ò5Æ“í–êùsÕý@jÍøŸ¢Ø„tûhq:+—@÷ÌWœJQ` Poœá#â)¢¡ê…¿yË·þÆÿ>Ö¾ô••å†þP^b®jêgjÁ¯Y°#ƒÒJ¹ßâo”™‰cèÛRŸÖì›ü¡läJ_¼C`²ù‚"nÂOÇÅv‹å+2Aò|Wmƒ”]½>‰3”/'ó&F±´êñ©a>y)&"-ôŸ½ù‘Õ¹Hžr—o3]°¶Öã\ˆ?€(WM¯_ªè¨ïè[Éë¼C!jl¦]Ž3£KËÖNö“0ï§=C¬FÞH5h1®õ5ÈlA.£¿ã„9!ÐúÆ:7Ѽ§z[wÃÆéÎ8¡HênãÊÍÎ ¹G8íÌÎÑ/#á±úŽn§êû‡}>Gw‹|€»xÅœ7ÆEö²æÇŒ«jóüà`)¼m@Æ•‹èïø„Ò”ÿ¥†Ìw4 `Œêƒõ? +>c]pò0¶ 5>èãÂ'ZcwÚ4/GLè6?–ŽÿŸ´÷üŽãÊò?ì‡=»Û:Ó3Û½ÓÝÕU­®.•QIUH¸LP†¢w  @€ð&½÷>áé)J¢$RôH¤·H8:6mddd&@UÍü{_dD25³{措.#_¼xæÞßï¾{ï£RÍË+ +1·…ñ¢NÝØE»Œ=œD6À.ÚÅŒ8E»2ah!éýðo¦Ç ˆNnÐY làJ»›ŠŠ N?6‹ ÚF:°ŒÚd(ªµ˜Ž(§“PPer¦n@1åãDB¦ì›9Cg—îrtp˜]$frÒÈc_ZÌáÐÀ“ÎÕd—íRª¥…]Æ.c¢zØbÒ™Qu|æd¼¸°›ÈkéRD‹CÂ2&%žC³tT˜ýãB¨Ö=“¤Ä 8{W¶êŽÛÄÅ,Ú#Kѹ]tM)6s(Šj3• éè6²Œ6ƒïe‡Ä Wa—±˜g¦Bo'tuvIénËL6ÀÙIwaÓIå¤XiXL…©pŠéô,z!pPÜm/JËéøWh¢¢˜®VQN©*tU6‹ö½ÒTO¨˜ÒteL•ô,åA^ÌÂY÷Ò¨Šl]”]¨4Áü¾Œ6#dA•JJÌ)Ú±z×#º¾º˜þºf(y§5­—w‚G8eLº;›!Âö.UF9q8³•£»6);Âá쪴º“h»+]¨ìE‹KË™×Q–“ƒÂèTL?º „Eƒ4rÎÐÍÓk”®IÞXM/E&‚]Ao’“?¯(¢#]wQÔ§e‡Î– «¿®’¢O£ Ä iç‡L Io ‹Ú娤>S«¦à­®(bè»”^²KèÝ\Ä¢‹Pý|†‹ÓVÝ^Aó=ºBz’ÑI$kg(¢Ý‘txWyÌT8*¸d*X…DòB¬¢8LUÒwQI‰©1ri]WÎ2*U3G—¥”Ó~ÊŠ +æuÌq/¹H¨Š®ŒaÑ:9¤‚‰R ™Q*UufóF“ÆŠ‡›.‡P±“*Ì.… !y-Õ˜ÐÔ +’BÓ¦Œ~]@CA Êñˆ®=`sèÚÅ»~Oä•“ÉØŒ!ý^%”°œCk´R†5WG +LMj8» :ˆ.ÖfJý”1Å *Èی闕ÐHyÏcµ ¦‚Círe~\AG ”L?,BÍ´GBLú2 +žÅ‚˜©QQÈÜ#…lé‘Åt O²éC”bª$™E¹SŠ­¤À@I)›ÙžäXQB¬“çýHXR(èPè|"ÕlÉ.ïS!n„î‹Bu¶Â“L±™b*ôÄeL¥ƒrªÊ0ÙÃYPÈÅ…dË"SÁTcqèT0ž ögSÏr˜M[Èyþ›éžèY/Îa +Ï–ÒĘEn—‚Ålê ˜£«o¨¨èK³˜¡!Ÿ.ôª_x–<&+˜ï𨒠+jÆX¤eeÓ›³9H>Ì¢j;QÛ£ðl1s(YÀ´a!BoWÈÙ]‹9È'CW¨œW:Ï¡ÀÄÈ‘0OdzP¾ER\Ì¢ÃÙÐ=ÔÔ³Tn>ŽBËvfJÙ…À‘Âï™T’M„E,º³…úB d\BdÐ1‡n€S°ZT¨e5àEˆ¢ž¦V›ÖÓ(ΆDn䢣óÉ0¬Rf)R‹†S©¤Äe%LT%™_H +wR H×µ–K™Ð9ÊÝGŠ‹Šé“ÿBÆËéz‹èY²üY¡LyÐH7@¥X¢îS/+ÙRAÖg&eÔIVð¶^ÝYfl.I†fUЛ]õEkùNÅLºù}+)qQ׃˜i¥ÂaÑ‘I¥EÔ€¡K¨èES8 *©cŒ­«¨3L2笜z–rØ‘ çeLÂùsÃieWF‰ÉØ:Z³Ò#Ž¥AÙLÆ‹Åa~O¥ì’éÔME,Ú\ïd]¢Û‘*˜Ä¡‚¿…´ ÌØ–ÐN}t[T8SÌ¢HƒUA­å E÷=íÄvR§\È9VJ7°Ë2RúMCq1ÑÍSL€.&PQ¾+Ž´‚*ë,v)ôGÚº]ªÊ*&W8¾«(£«w¢…Où|mgÑi'Öb L¹Ÿ +ž  +TšŽî,MÉ+ʘ„îŠÂIT¡R"¡~Ñ1Ê .§:;eS …vU01äÓt x }@›Ž×dS'ÑäÝnt$Q!µÝ–MOSVø} í %sÊ +þ9€Wô‰/§XªõÐY„ä=X4ð£îè#CÊ 0ÝI€£³â*Š™'Ô):f¬‚¼+—‰O*¦_FŸ]Vð&ÕÊ îªD=¨ ã“Ho\AHÇÒGÀE´«…ŒQdÖ‹NF'ÅÅ4ò-£—EÁ +o ²Ã3*È?:/­…ÈÓfIQÁ—YÁÔ\ Õ³Æ!Sé±¢ªL#NÁ¢…l*æŠSÁ*Bš—Ž\¬(¢ ‘†¢d‡?U”Ó£E‡»"þġǵ°¬8(A‡‰p+§½ÑˆÃ•Ñ‘‹åÅš~±˜è}2±ñßÏö.ˆ‹˜ÈZò”€jµˆŽ†£•â…LP*nD²EÚ®Òéü¨ÿLŒ7˜mzb©Hr¿Òñ”TÑž.¦«é¡/¨`tMÄ+ +‡’…'‹È‹¿è/`Xƒ$“iée*#€Ãa’‹ +w™ÐŸ@9(‹©»JJ D|wzJHs˜¤jrØtei2¨ž>Àá°wÕ!³Ò*)qYm¿Ê©ì›¾HSa"œrÆ"±vÕ4ä°|Â*º-º ˜Y ôíœRšA:¢¸˜i€Åü̦ýè†w:E—.ô…®gÜѽlj-–ÐUkiup€j ”Iá0fùJhMEòkZÌ*ÞtúŠS˘ gÑ^,’r* +qrœbú.2ÿ¸hÇ5Å*£w†fL43´Äaѧi4ú=@9×JPK‡C#§xC…¹€ˆµ³›Jé´‹>8C}¥2b9èÖ#ºLO1Ý"Uš’œÆãÇÚ´é\~tE!‹)ÁÆáÐßÄ¡°óîÌtôUTn<«pDAXÄ,Zú<–ƒF#¤9ELùòÊúeT`YP¡ü‡F€Å_(¢Ã[Éû:ÀÃarŠhFçPÏî¤wP¡>ÈkZÆl±ƒtüN]8Ê´ÑAnäáÐ.Zƒê™Ó;$åÐùEÔÒBÂrZÐe Q¯Šwé³g0]^ÌÔ¢gWÐA»¶3›áfôõ!Ƈ¦ŽÎ!/.lÒb&ÍœsîJ¡FþìrZ£ÒGŠl6“\Èb®Ôa3Ç¿äÚ \ò佺4 ãеØd¼­»¨2@læ¾ôTÆ ºß¶ˆždJ “ÆV‰ªô©]Ò…Ì,}€PÎT¡ÐùC)$ʦA:¬`RÖéQÔ(£4J(§K™uH2Vº“†^À|d Zq‘nÖ‚¶•ä*§~]‚²sÐJ K ‚åL!„ +Zø£"&¨ ë݃ÔyuäBBŒ"ªPN9YS˜^Ë%,º¦Cy1m0hà€ª?°èÔ›Š²:eÌ+¥*@—3A¾Å»²ùÒº0› Ī(,s %æÒ I Ë¡Oówr1Ø¥Ì;‹†Še; Ö9°)üÆäY"äÁ€ýR&ÄàG ‹Ã‘Xjw ¥„Óµꪡ]aóT±uJÈ„ˆ•ìŠ,-a*Ü–ÒöèþÜ‚Œ.ºûÓ÷ KäZ²SôPæNBK™: ’ÒGMätSÂ2&úŒA’H\AÑå~P”h1}ó“RDk,2D‰Æ%dô)-fïÙ̱+S,ðÇýßµX+X»~™kJ©)§™w+H`H}]ßš$0ôtе?i½òý³ôˆ¢X‰¢2†sʙڗ”W}Wº)¤³ɤúÿG©þTH!z–:M'…Lú})S@áG=ØUK’©þRB—f"¥´5/©(˜x$,£ Š”TÓ•$^c3X>¤g310HHMõÏÕœü¹^Q•¤P"‹¦Àí©zc%ÈpÑðšZˆò3 eL&ÚßJ:+e2©Òø¨í¼¤Œú~ºBýô}wå;7ó°wΓ±ÿtö›Ãœ~Sø ‹Ùt8-]òþGÑDtì?:Æ¡oqâP÷ð³wÝ$ENúi¿vJæSÎJ§Às˜’ù,:À£¼¸Œ®p]Â$—”³©jä¥DÒBæú:$.¦cK*v•Ü/e3E9¨Zu¥L­Z“îøÓ~íŒp1s¥%‰ôé¦Çdø =’T~=:¬aSy ”o½ä‡q.HÌDç•Òg”ï:ͤ³@vB)øëúþ:­L#aÂ¥Xe´ðGݧ¿«œ sgŽ[èBÈtö›ñ‰¡\*–œÍ,jtC9$RÊf’3H%K‡ÐuÑù}|]J×ÅûIvªûq˜h[æ’ +¦ÐA9S¿ +è~v o@—)+PšÔï©B äMcTè{èRÎxüú…@×vå6½Xet t2(†Þj;¥ÊËJw¤?j£r§$³Ô‹Ù¬2¦r&\C¥»ÒÙMt™~ +ð¡3hÊYLV&•?HɤwK1“Rp˜ÞÑÁÓdèÜ7V1“UóÃ~Ø)õùÆé“z· fÒRŠ™Lõâ–R¼sGYùNÇhw‡ lG–Ò–EëŸù2F%2åëIuGÏ}øŽ68SŽ³ëØ—,1PùóЖ „®TG×¥—PbŠ2¢aÑÍ”ì¸r9Œ+¥o2é¯tÖÊ÷(¢‹]”1þtôº +ºà|)Uâ¬]JAç#’g?Û1ó3ÉJTÅ + %f1Epè[úºª ¢p«BAH¥ô#w.m*KŠé"tråÏ¿mgàèÌmª”=p%Œ“~(aî6"½LÎ(•@Hƒz„vª¢0%ˆ™ŠÀ¤«³„nàG=8ÀX÷Š +:ï•´€´uçpè9åT0sJ`RÊæIÙO©d*¦sJéDz2^”®˜^RL;«v¥e죙<ÊI(Ûñ`íä4ì¸'Ƀ£‚°¼„.VÁ¦œ (OE“—²òâ´ N1S Žò¼—RËPD§˜îÕ¾`§üZ¦?­”9•a²5JpÈ”¡î⥨IN&qÐõÌJ©J\HÈ”â,+þ[ßÅ¥N«wr ÉTQ %®`Ñ·êT윌ï\äAXý\•TÛÅ2SÂHh1s]ü/ºuêŽp¬X¾sGøNè ëRêØ½xçÂjÒµþs—ÓÅÈb†ômœHLU«dr4*i1sZÉ¡ÒgÊËiʆ|…”ºJ± +u‹üüëv®;àphOp9CÙØE4h!ݸ,.¤I„´÷€¬¦G{4hOK1¤ñ· ÒjwyÚÚ4þ»o®ÿ_¼Ãž”¾ âwY?w›ý߸ƞUô£{ìÙ0€¨ÖhäX`‘ú‹ ¼«Zº#®ü¡˜]\¸"§rw?+ÜiÝiætÖKųB%æÊÞEÇ,°›Oç=¾‹<ÐßÒwO¢¶H'I1ù +Tô½p÷.›ƒ*¡rJw‹+ߩك +öެ^ƒÞSNRQë0NÀ¿Â[¨/#SC )vá,BB}Dl€]bñî7œú6/úÉÐSo"ÝqÐ"y¿<3àdé6FúÃÑf.$ÿ±ìQçf†*ÃúÃFÑ}åE´~?%,4@ÝôÃgË ×Éý°Õáz°[Ìôv§ÕÝŸõÃèüÁΠ >2å…oÚ5RD÷ýín’Y€;oÞ%Úé##Üùš]Íí|÷®7ï#ºû«¤ì'Ï—–³~ÔêŽðïß-fzºÓêÎýøÓ;ÿ¦ö wy×;å?>æ?ÿ³ GîzŸ±J +À^‹B ŠƒÙ-)ˆKÑU6bjW’N+øpº,zv‹Àb°ÉXRøÿ…rð»pÛ09È $Cb„ÈJÉgw¶9:@@õ°~¸Íi1©`بÖfiù›@Ç'èrçuZz£UºWåd¡sֻΦîuÜùÌïĤeÛ”Ÿè€¿=À¢wvï}„ ™]ª²0¾Å…oRÌF§_Hˆ<í…%@Í +–:),EØIMPYiQY¡‹$¡Sí–£Ð=r ¢…d$ù,‡ZÄd4^)ý²2ä×ø¹Þþ­Ê&iÔO¾ %”•ÿè»ÐaCyEé¿ VD~ô](ÝåÎýè»ÐæAˆ©ð]ÈSL‹É8Ý|%WüðË~ÚßÿÏûëÙ\ÿŒÁf½»OþÿËj“ö¥hd*JHe9ˆ Úý•?ú”¢CIwšùYá®&ñÞÕGê#|tYëa¸{Oá’ߦ]ŸþŒæP5ÄœFÑò¨¶áõé©Å︇–rÆÆøãüC˜]p,>ÙþQÚ­Ä.Ç\?ßtõ×ÇuÍkϤÇVŸvíÙ|ÖQïÚ›•žÀ&ô­—Y±pG|üÕyuÒ©j^ŸèüìÍH[ù«‡ŽOpOà~ñÙÄ÷@jFR“öª»pŸQžrÈÎ&¦Ä•±)ññ×:ÙØ¤üÜvÐjÍx4ÝI»ª9å4H3A£*éQ·¯Œ +¾xØÂZ{Âý,:,«J;Œ’Ä”®-6fâ¯<Ô·`“½ºÍaøž{ÅË÷Îýöå­S¿ÜxÔ\–žRœÅínÆe¾|ÔZ¶x³î½W·›>|u·©äÅšßm·ïo8™1Šc“²êø”²s긄עMûm=›v«b}Â"\Õ6­ +špoOô§#å–žËú4øãgܚΤ]VŸUƧ•u“²“‰ÅÙ´[R»ô¨öýWOÎgÜ¢Ó9N°4j³~“ƒ9yý”·ÿÍ3áñ”ˬƼÍú´èÄÚÿP Æ(Ôˆ‰ˆA›ôêøo&EÕ‘»Æºî¸SÍݰ‹«‰Yƒ!7o»œ iÅxPÍMûÕ¼L@Õ™pð&§ù‡Ó.Á Ì)<µ†÷õ2ܯîÄ|ò–¤OÑuˆNÆ’ÓxPÕ•òHÏf|Za6`1¥=˜U{Ư姽ZñÚ´àøÊ$÷pÒ¥lÅÊŽ­^ñvÎvyÞ››µØð°Õ¶éÔ ×ìêöu‡² ­¿”ÏbÞ„µ†ú¯¡¡[„¿§÷šT¸O+ȆU\Ì'®Mùdi¿²=6¨pøM|Jvséé@ÿ•tШÌÎõ¹9Ko:¨ìLzø§0¿&áæˆNñ­Œò«&/.~Ñ}0jﳤ=Š–‰îC¯ïw¼öL|8í…± [ÌXHÕ•öIj’vÞñ´C|v+s6(7í²3¯žq?~5"8÷i»_<á~º9¦8ž5â6+Rnu{lŠw(:É=¸>­iZx¤>™òôö`žÞÞiØc­å‰é¶pg÷¡´£ë`Ò!©Þ˜–žÙ´«[’^›!n×µ¯<æ}üâVÓV¶•EÇÚ÷¤'Å•„]בp(Ï?²ø;ÿõ¦?Â^ìL¹´ã­{^Þ?ö‹•'§‹9ùÇ2uî6 +1¯QŒyLÒ4ô ÷˜diAr*Î¥f„Ç Ÿ¢)ãS¶dƒ&m~ÎdIûÌjXCò˜]Õ¸9®ªM;5­¬¿õ‘®_Ü;ý^àËê_OX«ÿiýI˜œ´ÉÖ‡…ÞÜkúãâWU¿xý]ÝûØwjJp,jŸ|6¸ÿïgŽÿ +W·>“r}´­bîë#ÿõŪOÛ¹ûÓvÞAt î3É1¯Ž—ôh:1·IFø¬†­ˆmˆê$)¯^kA–í½˜µõ§½°Ÿò³ñIù™Ô„¼†p+ ¯ì\Ö/;Gx¤5ÉIÕ¹ŒË¤H»DgRÓücY¬¶›èÅŸA’ñ›5™`ï@ÊcRlÚumñ³óXÔxؤOÏêd©€^’uŽöB*(o™}tþO [J²ÛÕÌBÏÕLÄlÉÎÙ.äæû¾ B&}Æ«lÉxÄÕ)W÷þl[™ ókbž–O7mŸeÃF æÓñS sNimÚ/>“ ‰j³AI]ÂÁ;¼2ÒV‘œÑtç|¿Î‡.ÞI4¼M‡°ruª{ïš½{_Ê¥ãnÍõÝ€½kÈÌj„¹Hßç™ÐÅ{Xpð‹¨O'Lx„Uq—°2æQµe#½×2!ÆKm½¸ßfÆýFy.¬ìúës2V q¿N˜qËÎa“ÝŸ¥šö„ÏfMzJÆ–˜³ ¥üŠö7£Z©ÿÍhÃÑÁ±Ù{ {ºþøwÕ§Þ#ŸO­tï‹Ü¬þ×ůß‹ŠŽeƒ1jÓUî× +`îôù YŸ ä¸OÝùæ‰hß›aÉáM‡¦uÍ-??2püŸ^Ý&\eÞßÛsK^>¨ùÍòúßE§ÕM ùé ÍsëøËÃBÐ)nycÎ+kH;xGÖÆÚØ/4°:&<s›¤¯†ÅG¾mûpù®hoô©¶.1!=™šó,?î(Ÿ¹túŸ_>à~ŸÑunØågWž5—®>j(MNu ‚²Ì)«Å`ï$áÖž„ð÷_Ìøz¬˜Û,M¹ÔMi·¸&ûèåƒÝ‘Ô¥|üª¤SÝžvÛtÑ}çúˆ¾›1rÓ3ªÆ•§ÍE¡ûÿÞ{ñðñ_¨ûuü‰™·1ªm|óH¼oõpïÆÁ§Ø„àÈÊãúB_øåüw t^¯ù÷Ù¯šØ¸S/M€î_yÖõñË;åÃíû · ’pu~†{§0¢i쬥Î|ØjÍ‡ÌÆ­ˆA—öJëR°oð I“GkeÖbMzTÍi—º5ï5*¾÷éEÛqíVˆ{"ì<²1\_”U4î¾ÞÍiþ‰Í±¶=¹ Nº1ÿºdȆôò”GËMy̪$à…¤GÏO¹Mâü7Ý?gî%æ­CÄœµÕé°Vüz‚d ì +ì‘‹ÙëøÌ/õ\Ë-Ø.eÃ}W`ïÉp´66ݶs·}œt·¶no(Y··ìuÉÁ¤}ZæQ¶!éyÜÏ;Nøù £[9¯×ý.>)kÌù/|Cû.&ÜÚî茢1îÖ§¼ŠÖ”KÓž5[ð°Vš½œ_¸ ÝIzzã>(Táéܬ¢3VðR>îñU»àøÚ´ªùõ8èŠ@ïÀ_ ú¿>WŠR^Y}Ò¥nÉù¥ [~î±4èϨS×óÂ#Â_`A³l^ëæŒ *é‘4&½¢Ú¨Ktry¤uOð‹ªß¼ü–w(¼6¾úD^ùâ^gÙú0ﳬWÞõˆk³~yîQ4~³.ãï±¥½UÊm'쪆´]Û’!ןªõÕ¤ðèÔ¥3¿\VÖ§]€³fTÍQ§èTt²ë Ëû,†lÀ¤‰»•MoǼ~"ø4 ëfcDq*9©¬MMKªÒNi]bFTyTXÀ¬Y|ÀÝºÑøëW÷{o‹ö¾¹'Ú—UoŒ¬=á}¼1,<˜˜–I¹äç"÷ZXË÷E°?ûúÀŽÓySÔÞµóˆOã^éYÐ×MÙè ¯Q’†u¹lš-ØëÛs²¶¤»ûPtº}O|†w0éU¥A·ÇŠúÍIuýÚ¨¼z}XûR|l}¸ã£•ç?XÔYŽM*ë^?lc½ºÏeo<“yýPr úHUùüvÝï—öýýì—UÿšœRÔ.“’ð™5¯ÆEGcÓºŽ­`ï¥ÌÇÚDû'ÏïUýêÕ㳿[ïøx}Rt,îT4€èJ:TYŸQĔ|Èj›­ÆŠvܯéN¹ ¸GÓ‘óê9˼Ot*ê>šöµ~¼>Zõk°ÇqXk/Ÿ¶”lŽt|¼øâí¼ÉôÖJÖr©lJy â”ËÀÇÀ†&ÝÒ ðÖ+²‹¶+øœAƒÏuø¬¥öÅP: îJx`-DôÊ­“mkÁ`ÈÎéÕØ?[óßfÃ[ƧéŽM çýZÉVD«ÈG4òüœFJ„mQ»¨LwJßhÚ^šóé%¸GV¹º>ysìÍæŒ¬.jïѤ½=–lÀ Ïøu¢¤GÇÅÀþ%üŠæ¤Oݱµd»–7ÀEù¥¾›ÙyikÜÁ=s\‹ùD5¹ˆ‚»é’Ô,>áòü©ø`6Ôu{ÎdÚšÓ)³!“‘=ñŠNcÎÆ²7OϽyÆý”hEù¹Þëx¸g0î½”]¸CDú¿ˆÂ؆î5¿¿1ÎÝK¸ÄgòAƒ2»`»¼1zÑÌ=#©ŠÙù£m{·ø4ØòzÌ­8¿6)8ôfLU¿1=`Ùt˜D)»¼69ݽ}¬¥ôÕ“î=kcÊ31§žûr”(|³ú8Øá´Ö¤GÇ‹MÉkâ3`ü#ñqUÚ-=»:ÖõéÒw¬ä¤¶};ÐÛ›ñª;âNaå¦8:#>ñæ©àÓ•§Â}‘‡m¥Ú¶÷ÿ‡Ò#ÿ’6w¥&MÜĘäxl¼ëÓeÐïÏ4þ~þvã{›£ÒS ×ä)x/˜9:&ålý(6Yÿ§øTßbS-屉ÎO’nUËò”¢ñÍSî¾mÀ‘€ù[ae7ÌÛ¹‰®£%&»?}þ¨¥øYßáÿâ¹V÷njâL8d5+ÏZXK·kÿ}éÛ3¿\ú¦æßVq?^zÒµ§GÀú¿®m¹m† 茬Ox +8Á™ÍiÞáÕ)Þ »tžVGø°GÌ®¨Cº%VuçáÝÙˆŠŸ ªºÓ>°©0Ö÷•;i_oŒ÷ªÚÓAqíÛ*?§èÌÎJW&»÷¯<“U½ õ]~»¨7¾]7b®ó¥ÑÉó¬Í À°3ÜŸ¬>ãWweCE6d1bþ¾¡tpàz:ÐwL€us‹OEÝ’Ó© ²ˆh%Ĭ^p²õ¥2ë·æÍ–·‹æÞ­y½:¿ ×f#°gƒÀ‹`-þ¾A"0x˜½ü4鹜_0²óZ9c +û¯÷)[3>8íÕ òþþË9ØÀxI§¬ôÒGÀgŽ¥<’šM»à0æ7kcNUë¦]\™ ê¥ÙÙþ¹¹ÞkùEsßÖ’©';¯aI±¨Uãóz]2œ(4p#¾x÷ísÛuÀdš˜ átàa‘ž+ùˆuƒu€¡¾ÎôÀéê@WžO»äõñiîþè4ÿPÂ%<™ôIS  ðÐàW™Ù ÷>³vÓ¡|ÜÛÿ}ÈÖÿ×y“-æžöߪþeÊ5x ñÕ” ì#ØsÜ¥j&|âšØtóG/ùíË'µï½ÝýbÔÜî¿Íûdñ»öÒø¤ôðÇÚ”]}>:®m|thî~Ó‹·ëÿ#ÒO—ŸZŽ‚{ô"ÔnÊÅ;štvŒÙ›Êžß=ý«w[ÿœ˜Ò´a~½lù1ï“ø´ìlÌ:Æwe¸½ô]ˇÞëgÿí +¯ìŸ0œù]rÌж9"9îþ8:Òùql\p8:.8´>ÜY‘² *cÓ݇Qu& E§EÇWG:>Zk…¹è>¼9ÕµwexøxÇžéÏÿ«ëâÑ_¾ ):·ÂŠÌ\hJxdmœ :!8çí{ñ¤µÄÿmýû¯Ÿð§ÏŧaŸÛ%§£¼ƒËÿ¸t»æ?ÖŸr?}ù £ìš€ýNøjÓž·€…AW +R ¢cËPnÎ:˜Ûƒð« `Ë$ðõ„° à¦Õ±Î1·¶+ã7W–Õ¥œRXÛȶª:Y²³}Ÿ¶³ÅßÄ]Ñ´‹9M »¼~m ú5­‘¤}}.Ź4Ì'² àÐqGÛ'/œü·ùoŽÿóÊHûGkveýË mýÔµsÿá½zî÷I»¦)6%9V­<•~þ·göÛ–÷W lÍõË£â£+£ÒãÀ—D/7¯Žžû`m¼îýèT#k}¸‘•œBkÈ(Yœú²åO¸ÃªICÿ’nñ™…»§ÿ-x£úŸ¼ªÿÑÓæ_Ö¾“Þ‘œö]?õë×w›K¶¼Ê6Â¥hÀ Ÿo7ÿùÕý³ï½¼Wû°ûÐ7¬Š`NMG6 á~U{ìÀò“ÖâWÎýÞÿʼn_¼¼]Wò}X\OI‡ƒnNK«¢“âã«ÃÝ­r÷¦œ’3¯â|Òkh\\‰{Mò”SÙøúqK‘ÿú‰ÿúæAkõQ;òEóŸSSªö­Q—B˜É¡í̸ÌÊœÇf&|iÔ!ªŒ¹€C/Íõ²­yKÿšKvî9ü61 80Ø3DÀºH{ÁöL6³ãNîqâ¹¼ô]O{‡@w«0ÐͰ×Úӈø:€ËOa84š\b;b¶å:ÀR²Fà’ü‚¬ãí QÃ[Ðÿ¹ Åœ õ^ B}WRð0×õ1§ätÜ#«[œ¹ôôüQÐ%ùˆJ‹èUÀ'x˜OR‡ù¥çð°Ù’ðë$À ÙpÏ4*3U<Ò‰AOk0¿²5¿¨Ufç5Àƒu²ì¬^òË[“^Øuƒ*X1îR‹æ:ħÖ&xûbñÉ$ÒÉ>ƒ$:~m¢û³ŒOÙ™†ç‰ˆµ73k4â!e÷Ö’Ñœ›ï½†ìKvÞv!Ø/7o0⳪ndg¶æG²öd‚Cð,1 {%b²€}”¥ƒŠÖØŒì âFqŸªcÍ!8ÜÆcà "2øMvÉö9ÐÉbNqÍú”èDÊkµåü=ý »²)6 cv=3{m +ñʸGqéƒM‡´vcJ|lðÕúˆàHbRÙ” êÄ1¯¦ãõ´¤2ðõù÷^Ýã~Šû´ÜµÑ®½‰qÉ©ø¨¡mmXßøüžîÔëÇ–VØbÒû¸¹(¼téÁ¹ßÇ&»öcNà€~Yã_"Jû<:-<ñj¸ƒ³òXx$ãè5Å&t-ÑIùé•§üƒ#¢›Ï„Gð)i5>­¬ý ¹Ä{åøÿóên[ìFlJx³>Ìýtíi3+:Ú¶­}O0Ýê°`Æcn‡uÝ€»õüèD÷¾Í±†SÓÍeYg÷!Âݵ?ö6Ž +ØgsB|<1¥nÄ=Zº/Ö‰ ¤~cê<+6¥lM¹-ƵÉq°Ÿ5ñ)E+6¥¨Ãí²Ó8è¤äŒøÌ›ÑÖž?løwèĸË$Çz^Ú©ïÆ€™üZÁ_æMæ·sFÀÆ:éšCTõü wOÒi³_b^5wsÙéÙ”[+$õz|Îd†µ)ÊÌš éð èj“ó ªŽ†â„«eOÂË;ž +ŠÏæ@çæç_Ìõ~ž õÃßàÍ|øÂwù9µ8· ¨ÉG€¤µ0‡ÒlØÖ‹|–È7‰|yÙYƒ: +úc}Jr2í“Ôoƒ¾ÎÍj%˜WÑs +OÄ€³lx´]Ë3`GÝ€¯B—áþ«ÙYÉ›‰Yyký7¤êÆBªÎà ¯Ù€‡®ŒàÀ 2a« p‚xxCÂ)=t©Zp¯U¿6ݵo}ªc/à0 á¸Nò]¿–xó<z èEÙHïøfc ìLùÑBC7³‘Á[yàB[€ÿ²sŠ® ²“ & ²q)¯AŒFÍE£E¬}¹xfÞ ËεiŸQšòꄾ;Íåþc>Øwmkîâc"Òw5”5½xñH{fm¼G› ]ÎÎJûLª¤ûÊݨëkoÔéNÂ¥éÀü ¶X2³Öž¤ÃÈÇÜ6=æî³¥=°O°Ç§yßLòö­Œˆà.½è$룼‰QU=634·‰ÖÆ -Ë£ªêUXK¯î7³VŸvï˸L2Àû3е~‹½ý{ý´©èåÖ’õ1ñ ÂmÑeÜ}ýIà¶É)]+>c–`ÓÚäWŠOtí}q·ê_W7~áíæuí¯µ—¿¾ß\šqë…)—ž›˜æZ~XýëÅ›'þ9ú¸ xµ¢–ð„)ØšIm œ">Ù¹7:Z÷ûÄØÙ?$&K°Ä·´Ü,pÛ‹_?lÿ8ë5ës[/pkPsñ€¼9锟˅`L<ŠÖ5àq˜]×ñ÷_Ùœ[¾×ø‡õ'-eÉIq6#;‹9çs€eVG…‡7€æ\ñ6p°/Q´ŸAOÁ|Œ9ägS.åù ì8ðRtá¿ð5î¿úõ]#f{.¦€D£'ÜÚN"Üwô£>í6JÓ.«.œ!ÑÉñ°¬IrsòöìœNµ½Ðsô© ° ð¬i+à¥ÞKÛs–žlX'Íø ²<à¥íyÛÅL°gC¸puÚmQá^æ¹!ßxЂ-¦ ¼‡çâ“,é±êSk/ÇtͯG¤Ç0¯ªckΠ݆uøýsÓ@vN+K‡ø­æ¤ïóÉ(`ìMÀdxРÈÍêäÛ«…­–tÀ¢ºxUëcÍ·A• \øšðÛlÑE]l°6p°”_ÃÍ/ôÞȃ}ÌÍui÷qÌsùèéIÍÚ8`V 愘ïûbùÚæ¦8ŒÓ挺tî~Ì-;—ƒ1Ì…¿ÎÏ^¼ŸíD8 n×¶¬ËªrAkOÔ¡“-jšcŽÁ Qçç×_ŒF½W¥‚Fý†C\ýzTphuÚ¬^q÷Î?Qßµšð€A™Š€?Ù5-˜»¿ocÚ¦\ŸÔ'|á7iÀ® q¿QßdEr}Bx86&?wö˜_?TVÆÆ`]ÃØd¼]Æ +Öœžüâþé߬vìOzäçŸ×½›ìÕÀÞÓ£Šð[MiŸE¿9­í|ñ “½ü¤«bù™äèÒ×%ñpIM|‚w4ëE¾;uWÆ¥l^º[û›Åojÿ›‘7GÇ,Ý:ûë7÷Ïý)>Úu0 sž÷hy)øÎWëX/¾=ÿçÍ YÍÒí–7ñ÷g]zù6`·³`oFàãòÚWÏZK6'xG€‹*–Ÿ‰+³~½ô-àqXº\X/|Î{=ÚR¶ô ñÑ1ùé˜×  Ýöçåo啨ÔÐÅ-ø†¼×¢ÉºMÒ”CuÞÿeÕ¿¯øEr¤ûXÒ©íxqŸË‰O軎^sñ X«i¯º-é–Õ/Ž4±V'ù'2¾Áë1wß@Ô©ãá¾KßàˆC6¬cÄó§\šÎä´M•˜ºz=é0‰pŸ¦+Ò3a5?¿ Q¼}¡ÓÿB«Á‚¢³›°1¯ÍæŒß¢ËGz."]œ˜´9бol—‰ZwwBØwZ•)»Y„9­Z´¶¶ûÁnõbäšìÚ˜1t'ý㻎¾'ý,iïQgCFU6¢b^eÓ¦Cr:Qó³ j2›°ÀÐWëNUsÔkP€Þµ¥ÃÀ•í ¨»M`K%ÐòÓN³b}\×{mÆL w÷÷ôåg­}[‹z]~ÁÜü_”ðHá[¯%Üân‹"êÈÎ÷ÝÈ. ÝËVÊÍ[úò `ŸÃ&íËáΣWy¼x€‡/=Lú¯¥ý—‰Y£&óYLÛa½ù´<_5²g®´}¶æø|ôµýÚ·Kã½Êe»‘XOŒûõŠ”W/‹ºÔí›-¿Oy•­IŸ²9áS·¥Ð¹´Ç I{.®OÙ/‡eÇóáÞ¡­Ë@~Q§N‡´‚¤Ë(J8uSòš„C×ùfFÞêº|G²¦í9à?ÁÞÀÙý¸Û(‰OKNÎß®}os‚_ùj¬ëÈ#õÁÈL]¼„ùzz^MWÌ©n9U«ãòêºØ+âCÞÛ­eO5Gÿaå>¿j+lAkYAÀ:MzÄ5oFΗx¯íýO 7«ßÅì²sS’ê×wÚÙø´ŽK¸õâÄŒätøðúH;{ñVõo^Ýn, +?lß÷•ìÓˆ\k?²¼ð`|-Tó1àh1»¬fsº­"åäW¦|ò–Ðͺ÷ryËÛçF Vr‘Ÿó)[Vƺ>{ó¬koÚ¥®{Ä­Ž‹5¿Z¾¥ç¦\_Žc>àvU3²›cÊÓÎKU¿röþÕÆîÑc¢c£=§›šè½r}8¾p7æPµ »wHϼiÿdmBTƒÎؘÒwÆfŒ¢´ïê£t`èˤ¯w(l‡WË‹N*ÎÄ&]Q{¯áÅ]À’N£tk¶çòV¤çò÷Ï-ƒ°Oäé¨.æîÜ Ü³%:£ç¿|*¬„ß5ä#î³fÂC·‰Ù¾«È–¯n‹;Û>M¹…U˜ÃÀOM[¤¸ë`¶þùË Ø>á³hqÀVü7áÓKŸK+çnK?Í:úÑ™ \ì0áÑ +óÛ,Mð“u—¢í%ØÒ¨Ë¨Zwj:×g¤ÕIŸV{ÔöÉŠöéô!åÖñý_ŸÿpsöMpèkðì1à’óDD\BÍKù¥ ™pÏàò¤‘ÿâ™æ,ì‘!à&Ÿ‘ž ™HÏ`nÁÒ {Äœ˜Œë“üšÇ†ý¿OMöăƒ_®=Mùû/e#ý_³C·~{»¨àgüò¦ùïZ8 w¸UQ糧¯ìýú=ÒuW977p31š£vyÓʘàHÚ#;›OyåM9À½`­,Œ9v=é66€—¯Œ+N ¿²µhéË.jð­]›ÓÆ®„Ó$L>‹y”ÍχÛÙþÏ~³>";ŸŸë¹sšÅ1§ENê;7ðžim;æÔó`ÎŽ=ÓýÏøt¯~îm[”VÆŠ:à,ñUCÒ¡m‹Û\÷7ì;Ò}÷âVû1äCOy_’ž]›áz3ܱgá›sFGD'³^ƒ,åÑ £•'ó3}æõ1UóÂÝŽbÌÜÊ¡jÅŠ¦ø„¤Ò~½þw–†ÿ·‰žÓåùYÛ•M·¬.áQ¶d¼&U>hµâ¶}› E›“mœ7÷ë~›w +ªˆ9YÇêL÷þ”Ó¤&`?c.]7Ø„öŒ× ]w +«^=êú$5e1 3צ„Ç`-Ö%glêÄ´MÕ¶&Æ4-ñ)]›ýVs±âÌþóæ°Y.ß_·›¤ wŸFaLˆ peù8°Ç^<–˜60¿Is˜$1—E•péyytá, ¸záYÇáëí%ÿ˜×K¶Â}×Ruw&¨b(„Œ»ÐʈQ=·ÿŽvÿÿí¼Tóû|äâƒTàÊ£¸÷—Q·xuÏàÖœu` ðîU6Ǧå§S3ºÌmfB²æ\X§ €¥`ááÁ›)he†èåïú¨¦.ïëéMyd ¸_#Øšíÿ‚Z-IàpoŠú‡¼îõ„¸òùSþþM‡¶{î±à³¤ÛªÃgoeæ.‚n·õ&ziÜ«jÛ˜’žZ¸ÛÅ^ÖG:÷^Húú/â³&+>kÈ„ÍæÜ¬^ zB´ôL[ûü©òT6l¶ÀŸ Þ•™¼EÌÛq#¶?6ê2>àú¾ËwWgÄͯ'»§ƒ_c¡®„ÿÊ#x·óO%\â3¿ºl¡> ýOÎZ,©pÏ…txè›Ìlÿ ,¨âBÿxÈh{»h´À¡qY»¸ 6y(¶2îÖ´'½jÀ…ªŽlD¯Ù^2!{fFg­Ø¬­?:cÄ\ÞÊ´¤záQóŸ7žð?KN«`q“ÀN«& |&6sx›“²êÕañ!ÀycܸÍÝ?t…èlv}\qfôÙËgçŠæ>¯ù`ÛoÔå— X‡”÷Ò­„ÿÒm á³ÀÐI¿Õº6*;ùæÿ3Ð' àþq—Uó\Lú¯Ãzý6  ª»1Ÿüüà ü¬¢óu]Ÿ¬ùCÚ)=— õ^L¡±qáAÄk´’­9µ ?«ìœ]G–ýíæ¸°æFŠù´\ ¾/37ðu°Ú&ð¹TØlˆz5ÝóO¸{@/k³ðûpñ¨Ë$ÇgͰV +àH’|PÃO_[›=ãQó’«#ø‚íJ"¤'ý(þªlVßU<Œp'à1˜Û”פÄüƒ7ÖÝVÓò´¬:?×w=‡þæ{¯fá'cïDµ¸WÚœ Ü\wYÔ«v›ó_~˜‰__´ e#:e&¤“§jÞ†“{462 ¦že—àD~¡ÿæÖË £ÄBïuØ•ˆXúR>U敟Ç}’³ ‡°êÍxÇÇË“üÃØ¬u(=¯UàðLföÊúÂ8ñ>`«!b®÷jnnð»¬UäËËDÌV,¬êÚZ0÷À8È`ú¶ûo"ÆÖ‚A»½¨UúU.<âí…µr:°õo4¢TH øFÀ¼ßv‰˜3Z²óZUj–{öùTÝŸò ßæû¿,wq lÕöÂÐÀúÀµ jbÖdÌ¢¾D¬ý(æ 6FÀ'CFÍÖ‚øˆÑxKwËë‘:ø.z(îåW¾oÿ(åVt ¾®Úeuów»KãFþ6ìÁ¬Ov>åjýdcüì_<8ö›õg-Ÿ¦¦ÅõŸ–¿ô  ì­¸–ðÛÌðgÙ°+ήN +ŽlLv~wŠ«ˆ èüˆÙ¶îÕÎ?jeaö>3˜8åÖ V‡[Ù‘›•ÿôêþÙ?¥Ò¦l@'^i-KLwÈ¡½ A±öøô{ëkKÒÓº¬O'ÂÜÒ³ëÃ-(Æëƒè4÷ðú”ºsù¸*é€ùn;”vªy9Äq½ªÎÄŒ¼I&Ý.ÌÓ¥¨KØYѲ='ïx;'kÛŽ¨ÛsI&,9ww‹;ÄÕi·ž×µÆG ± iuÚß~ 6ÑIp÷0o4­Ø¥ÕãÆnÜ}ùæµèÖGG7ž O½,Ò«RniýÆDëžµÑæúŒ{-ú”Ë Àýj.æ‘4¤Òó逼e{^¯Þž7÷Æ€³$<6 èJ°O6òioÁ_>l¶eƒ0³ÀýÊ6Àcùy:·4pôÝ@þÙü¬Ñøý¢NóvA-~» &œm{×&Ͼ¿6ÙT +ãf}†_µkyïÅ›¹ÐÐWY¿Å›Q7mÎè:W'õ«íû>³aÍcÕ®·L/ÞN¾#ž›‡’¡¶C¨´_+L$Í žÖInY-æÓðssæ¾í%ƒ…˜—w'CâºÌœ¢;=/n„58” _ŸIG®»Ò û‰ùžËùçƒÞ¾|š_2e"z5ÒJ2…ý`È xáˆuð/Ï{¿LÄçð ¼-—}ñ´óãiQeÒ«l9Å;˜Bqóƒwˆù¡ûøœ¥èTXXÑ‘ +ñëãqg~¡ïË̬ÅFÀø€íø:3g0¬Nœ+Åw—êOƒÆC3ì ´.-°7†rsm6dÖÁ7uêÆªŽ·0/Àãûñ€N„ÖaÚÉÏ­ÛK¶«™ˆÑuq¬tpó뉀ÅëïLÂ!:ƒ9T¼Œ»çRÞ?øùVÐÖ¼¹ýåÃŽ² iŠO~Úr×wXtIIذŸªy8Àª{puDt49sùËè”M›Ð·n>“ŸIŒŠÏ`NXSÀ VƸ{cã]çÂúmX I—¾+i·qOïÅŒ¿w¼†â²S°72vÞ±\D|þÙÍ#x¤?ü'ÂaÒåÃ&îÓðR>u×*èµø´¼÷ÀØ„,=Èg¾ßQš}ò×%µœpOFíÜIò Ytóð+ Ÿ²#æ7ÜÒô«ï”{ßMNëÛ‹¦ÁïM6°çêu—¶kÝ-kœéúhÝ©åG°¶ìÊÆŒ«·/ëº|;ïï»wˆN­Œ´³—7¼¿1Þ¾'í3ÊVƵçׯ4u`Œí¹Þ[ew&z8 lKûUmIäï Øzâ>­hÃ.?\þb.d6[MÀ£E'£^ÞqÖÌÖ¢R˜[2˜°V’þþ+¹…Á»ùEƒ1á•ÖcUæ×Hr³JÙ[ÒhSvÎ?k|ÿù3]ë&ŒûæŒìHooÜÙ?s\ù6á¾rìLÿ¦×(}1£my1©¨ÆÃï'%fÍ,lêKz/§C½2³Hÿ_΄Äg7ì‚£)ŸN™_ìÿ›S‰âaaMÜ/<só§"‚ÓéYvi$ÿbànn¾çRÖíÖ‹þ»ÙçkúžîG>Q˜¯LHÉM8;÷ì<TtäÃÉ÷ ZÍ[Ò·çô:´fã.ñ©7“i¯²¡ßÐà!“ õ]'æû¿!æ¿‹C¿Óa½"Ð ñY‹Ö²>xw[9ô ðü†[Çyt\Ð?†m°)p¡(ð°|°g îÊG,=Ûƒ.ÖP\pt|Ú{áóì|ß¹E3ØG£Ø!i>¢W!wÒ­ƒwèøùÙ¾¹Ù¡Û¹`ï…¼¿w ã5k‘Å/¥½²VÌ-©OØ…Ç3®kÒ}éëÍ«2겪7¦ ])—ŽŸƒ1Ï„5Ò¨GѵôlÏciݶoè §® ®MˆOl­!˜ŸSó³`‹Á¾_[uX5+SÆNÒ +"”4$fºö¯w~<ûô»¯¿ibçÝVk6dÐlÀÞÀ}c.<ðUtb>0øá7kSÐÏ„KZ|D†¤`mÐöç ïå;ÙˆÙ ÜYø¨ååƒö2çÅš_{.Ÿû÷ê5©Òß^ÒgRo8õ¼„OË[sÉÏ­yÕm+^UÓò„¬z Æv ø(á×p3½"?§“£õ¿2&>º<.9|äTÜ®<› ~ Z{Ã7¤œÚw­áá¡o‰¹þ/€7šÀ¶kÐ7/žñ/Üi+ˇmø¬F¸½¤‘çÔÒ·èlzQ¯EçÐXР!±ØG^]ý˜X¸ø,ƒrFÀFbAɹu‡¸6ó” YŒo&ui÷…)ßÕÇÉÀà ă>«!ýÂfMæ4ðàLØ<«·7¸x _›J…ú.b³f1¨£AEëú4àqŸF™{:#kx5¦®‹{†nà¡Ëï-ÿ|èq~±÷F~©çó̬ZøvÁz1Ø0ì½ Üp¤. +zçÍp÷gk£Ü}Ù ¼5?kÐÀ|ñ3ÀW°ÐçN,lŠŒªØ‚<ò£¸—9³ùs À²˜Û¤HÌh[“nmGÒg”¦ƒz1p³îŒWÙ +6õ<Ê¿HÏXä »¶=6£l«å£˜< `C—†=©ÊÌÔùE“ukÉ2˜™3™’ÀS^MG¸Æ–Ϭ¹LŒjØsgqÐo¹PÏ` +ôß˧¼—î¶-?n+üÜ„{̪¨CË_“WǦ{bS=ê”K üRÙ¶àÅpsI|ZV›uZôÛ³Öžù{ ¥«#²Æ”ÇfÌ-Æ<ìÑí9:?§èúËs•8áQ6½x¦¬ZŸÒ5£ó÷ŒGÕŒ9EÀϧ1`k»´6=#¯ÏŽÎ… JÌ­lDçLDúç4J²þþ‹D°ÿznÖvakN«Œ¹xÇPŒ&àžn´¾’~؃"é¾ò¦d5Ë»?zó”ûÔ$ÝÜ#è2ºt?íú +Åkm8åu`üŒS: “ óm˜ãV’ÃzûúÓ!e'ò}®NÈj£Ð·L@R—ððÅ|’Z”‘ñYt¹`ßEÀµC8Šqš³da>·–ô ׉cUcàvGòÉÿ¸'1§Þ"oÉ„AwÀšÛ^2ZþòR«ýþ¹F• ªxÙV¶µh½œ}n½’n»–]°]…5Ò»µÔs}û…íFvÑhÅfõеié)°Çýx¨ÿZ<`RÆ|½}™ÈÐ]ÐÊ&Çü-²õfw¥=‰ÐÀõdðêp*tù)鹚‹öcfN-_xÖð§å“`ÓqËóáŠ{.®ºí ä–@ç.ËELF”¿‚…lýQïW.,4x öiqùT@Þ¼iï:µwMyäçßÎ[zþºd»ü6b„±ÐËÓAK?ðï›`®çB:i>¬hòóâǽ6;g»õ+Û£À< Àþ„½i6#l˜ÝB„U¼è¤´jcDr$6¥¨MæEñûi—ätlBpps\|4íÔ¶o ËN¬>|ºþT¸o+lÔ†Õf`oã&Šú„SQk¦k{Þ E~£¸GϹ (ÏIJ¸Ì2­âM'znÚÙeµI·º}mZ~æå3ùñW¥Gׯ‡Ò.QutZR½9#­Y“Û·ï ¼xÔÁÙý“]µËê·üfý–×jÌøU]Žë'~±üTr.æ4+ã3&þ–ßfýË‚íÒÛìe7Š›ƒ=tbc\Žâ0«ÓNé™í°FüßAŸþþÒdN˜¤ +öK}6¨lO»eu˜S|vsœ49¥>Ÿ \º“ ^LvÕØ!>“r‰NÑÜϯNyTmxÀb"À 3Ñ”CR¼yâ—Á¯ÿ"îlùøïQñp¯I…yz¬ià )¯Aš ›ô€Áz«óaÿ7qmÆ'no¥ýÊV„w±€Õ\l²´)æîÜ¿6Óµ/PufÁf¡³0°5í逺xäE¤w·^èMhœc`s–‡Å‡Öž +÷ÿ÷%ëÅ,fTdƒß ¶+Äœ’¿µ(i~ Y¿ètÖ'­ËƒÎÎ,hÛK&ÛÖRß×€ƒ¾…¿¯s Ó³ Àk'¬hÏ_ŠWpfÝÙ×—ží›£ä^3åk‡LZ"¬èJûíQ§ª)[ø2 ]ŸÆ#ý_$@އÔÜtHÖ”òqO¦<&mÂûùh,pùþÀ18ì­ìBÿ·Ä¼¥/áQ´¤C:11¨P\N&8ø%æ±Yós}ײá¾kI—UŸêd𮮌OÖNøÁ¦ÍÏ*¸[a ðÑÐÖÒ¥ñÜ«Á'ùç=7¶æôZø·vÌ';—ôJkñ€¬óIAg[›Ñ Ó¾ë9Ð)€áôxtWX#̆dç7ÆxŸ½¼ÛQ´ü¨»âÕCág/nsÙñ YU|Bt4ÿ¶1ÊÿìõƒŽâWw›þðâVýo·ðá‘7¦]ª¦ ð‡ÄŒødrFz*íRœ#<êöø„ª.6mä&ÝfeÚkQ'íÚÖø¤¢f}å}HªâSÒªè„ððƘ`ßÚ(oïÚ¸êÌ«§’#ËO¹{vþá˜]p$ë:îœZãï÷|uê¡oë~óæüÞa&Z” ÄÊÆ˜»c¢mOÚ#®Ýœ–V¯È+s.“ä-pÑèç´ø„KÑÚæ~ã~Š»¥µÛ ðS&1hRNMû渴25#¯ÝlŸqËëWŸµ”>¿Óø»Ä¨âLÆiV€ÞÖ÷%íÓ÷“sHjbã{’ÓÍ¥o³oEz¯!Òîˆ`]X}Â?ßXó—E•<Qveü²†äŒðÄÆ˜ðp&`Ö'Pœ8p“,`Ú4èãt@ËKû%uöö3¢“—ò<Ú;Q¯AüfLQwŠNâ~!pqõvHÃËzU-¸[ÑX°·^‰rQ‘_:·`2æÑùžG‹ü 5|ë÷€ PÜMÆcQ6¼s ¨y¹Y• óÿ6¢â¥âêõñîÏbnîá|D-Ê£ó2èg6Ü{‘€=‹ô^ÎÎõÉâ,ò¦M˜ŸuC®ãB„‘2õäŒf<$kÎÄgq¿´!ïÊöO†HLZ,<ð%Ø’+Ù907§}¿¨SÇÜŠÆMÀÒ+vMË‹a鱤{àbÒ×Ó¿:¡¨{ù°»<ÒŠÀψwŦEUkÀIÓ>½(f×¶½z¦ªÎNÌŽ!¼šîè¸ð0æâÃ]¢SY—² Řfçz¯ás½W‘_2?ß+cžñê˜[Ï‹ÍHO¿yÚVúâaGéóecÜè|90©2a³žÌCAù¸ïÁ?°1"ø,t½ýw/¿å•mŒˆ¼ºß]áj– >[ºÝüûÙk5ÿòêVãï¢c‚(g}Ãa/ÞébÇÆ„GÒ.Y]Öu|JY·úTtå+nç¼÷Þ?äNÞæÑqfÍZßO›™µÖ<>Õ4Yêo—ú« ‰§ZlÂù,!Õ6Eˆ=œ ŬuBÞ٤Ą_³¬â³„´ 5"ìTûz$+þr*G„üœÅ§|׳,2Ü·Ý~„÷™’ 1BBð^?õÛ|ÄÕ8Zòõ€ïÿ²ÌÀŸçdÔ÷9\²ušœ¬'ElaBN”\ V)áÛßKlÌÿÝârÿ½\†žçðF'³|Âù\…àD#dïÑãU<졬¬È,£¤8Á:°Ê`¾Gjˆ¯] süÜ2É.ü×JE5à§bÿ]x€ÿ"v»QÞö \øÁÂw¯îe#D™†iñ– VºqˆµÖ {³Þq=Å…ŠI1»c”xmMî³y®¡çYåøçÑÆ¸ßÁ(:Ø6AжЉQ!nµ«Èc¡üâàú_sÔ|Î ÃðÏ|l÷À=öz¡nçÊÒÐó™âP»›`‘óàvŒU±}³?Œò3 aüÇ0Á?5´üͳJm޹ôS¤¤c99Àsä‘´ô«yìn*ü`tÀ,.ùlàâçêSÀÞÿ^`¢NU¸D£ãwFóß[Ä/àw¾œ\}¦bý˜+Cœ}¦*Ç)Ê1f9#g£«øÃjK¡ëVo±»¾úþ@‚ø×½ø ‡8ÿv¢"%ÿZ¤Ã~-±P§øo ß:ž)ý³ÊcýÔ1Šÿ½ÉåÞ–rÔÿ±†šeWaâöÇ‹¼-@£'ÉIãÄø½At EBI?Ss‡ÄØdøhÛ$!Æ<Ž 8ûnö@Þíô{ú0_Ï&)iÿoÈÚÀ¹íJR’M†‰°L8æ‘b".4ìR;ð÷†K¾ÎÖdºl¶AÝm£Ø½¾â»}P÷Ý^˜§y¬oƒ¹oucüœL°sVZ1ÞK°·Û½HÀ{ÂεTÇÜù¬s@ÿåÔt£ÿíHåø¶JÀÿ{•˺<Ã9€a« d¼€} +ðÃð/¦1DÐ‰Š `‘w¡)+ýîxÇù¿s‹-¹ÏWšs]N¦0ñŽ?tÿb‘ð¿ì|ŽO>šaÇpaëůWÀÏ5‚,ç RÂõæÜç'€vØ$„Äs .åÿí’Š-bϾ?ô×µç<Ów濱ˆ6ö›cnׯU.õd ·Ëé™v >Žä”4Ç:"ÛýðÏ%n;}ïÝrìÅ,ôsžœ4Œ8Ób“-‘ò.ßÜŽ"¾îõ"¿Žáì2tņ¸?çXAÍj?Ü&FZÆ_ ƒ¥^k-…¯uÕ¯÷ûiÑ{}¬¸­NÜ—Ý.Ì—½nÌ—ív„—q€²Õ‰ð:Æ[ljÑV Wœ©}‘ÑÒ­j’y¾?Xòi£7ï­\WÎM½»Öõ4 ƒŽLz»?Œ ÞÂlu¼2 d¾\k‰}d, +¶OsJÌìS5§Ô® çFpaOh(òvi±Ÿ]÷_ï+ý<]žrÇ8Pü—䨥ÝÁ7ãÄÓ*E„X'‘Á6×v)þhŠx0÷?SòÐgêª2‹œ_²;HŽÚî!…nv¢>­·@\w{‹?ÚĸèÓiJæá8&ôçóý5”ð¿Ò±†…ãùPkp Ï%üZb Ïæ(' ·i9˜ à÷·ûÁîë­y/6š ßêÛ¡ïôí°w{½(_ ÐgÖ BÌ™‚–y$¡$Ž`GPþù/½}·Z~aÆ…ýÔñ©Çv±Ù1ßðeÇJt¤I óÞé+ñÝì*r[lÈx*eD\[©Ïu5ãÃwzŠÜ CÅŸ–s_ÌòÒÌò2ï¯5@_ï`‚Ö»ðÁr.äñ47÷þ\%øù  369!Î"F‡Ø&ð‘@÷‡±bòLSv% Ïg©àC1&Ììи)TØNчùê¬Ç+ ù.;ýß™J°ûj <ü‡¶ èGz¾q ¨ï‚ºm4<_oÌ{~<‰‹ý9G/Ò÷Â¢Ž¤ôâsmm­uŠ Ù@ÜŒ Zo¿RóïL’£ßlÎwÕ5€?÷â¢÷†¡!ÿÙÀæY¥ŸÌâ"¯1¨­Ü7³• ÷÷û Þ_hHÙÿòüÉ|ʪaA ã¤èÍŽ’û}%^;Ý…ïgE)N+õÙÏLÈ/kÈ1/-À6‰Nù±Hw¬Õ¿˜'d«KƒM#nÛO—“œÆKü[ <ަÈY¿–¹Ô#9Ý4Tôa»'óùB]‚Ó(9à÷6äǫÌ„{ød§­¤Ÿa²Ú}µÖPäºÛ…ú´Ò}#çÄÝ'„ÝÚj…ùÚ¥´Lû$+Ï,e¦ïöc¿†à>‹u9ç*³·ºJ<‡ˆá×Ue鯎Gh‰GzÚî!h³ã»ÖXøÂÔ“÷z·-Ûõ°·Øçpé·ÖTðÒ>ÉGž©«ù‡FÆV/Ì}¥6õþJeò½Õª4§ÕšT§íðÛ)^ªób=~[kÌþµ àmôÁçÊãFsߌä¼Ñ·$;ívç¾9WS²ÚqÁlã˜ì_€ß4M`ÃvúŠ>,6¤8ëêÌ”Çß­Ì~Öˆ¾]—÷ùši¹Þ]øVÎI¸)¡%^—ÒSn¨ùÙ÷¤ä蛣èГ‚Ä»¨H—Ë~º—¨éÕ¬®.ëÙ\eš“F”všt{’sMÉÏ~ÖKLv邆ß2ŽRãeœü§€å¸¾R›álê…z¨8 ÷DZW—D1wô]¸ðùJlðN'5öhª¬à·@c?ìãv+Øu«¥è­®*çɼ(ËYߊù*gÁ^¯T;øÑ·åc¥&l÷`|õðÏú.˜¯œrk¥9ý¥eŒ“o %¬·!=L#ÔÓ!Ü4Šúº?Tâµ7ý¨ïÈy=W“è<[™úh½´ÖA Ø"„nwýV!®k-7óµùÏ‚<—NTôµarÜý!t¤qŒ½\v™e9ÉØ)wÔ¢´Ç µéOV›Ò_ˆK¾Š±Î£Ô(ç#9`0c8×|uºÓb}΀^L²¢oÐÃîð²>ý!ã$¹~WRs ýP¯½^@÷‹¼6;óÜ­uÛï}6[voc×R!69)Ù hÐr3Üm· í³ÖTü~«îäK/muö [8|ÐvOÑgÃ01j¥µôÃ\5øÙr3ôíÖ!ê@ÊÈtø¬QÒݽA„ßJ Ìm¥ ðÔãØð¥&ðÇ…ê‚[mÅîgÍè*ñUòò^Ï×@?ì R«‹\·ºñþ‹¨J^ŽÓR]á‹vÔ§aÁ+jÂÇ«‹ €ïÁEIYIĤ¨?g8‰w–jrŸ­µAÜ,ÒÒ€óYlºº>åMÖÿê|CÑ“¸’¼ÑC‰VŠ +^“’’Ìø;bbð_{ƒEA{£ùÍè˜ïó•Õÿ¬ry{½Ùoìë*^ä-}kú}c†óF ø¥¾ .ð’ ŽåøïÚ2ä‰s8ûbèyíöXïÈ|yiøZ:K&Èr[j)òº˜%å^äÓN{ŽË^WÁ»¥êœ·«MEŸ/|ê¹VÄ°ÊØù¦ dº;óXo+xµX“ól¾2Éi±*ùÁ‰Š’»5û´ÖZê¹Ò@ +š­„»-7À^­7—¼_oÃúŒ +\r¿>½$c&ùOqKÖºÐ_¦xÁ¿Oñ—s"ÿ”R¢oèaï§kÀ¯ ñÿDø¹\¶LÐ2¦ÊÒîHÈ‘W•ì˜ëó¢äÛ2zÔM %üöNo‘7xúîê‚°8öŸÓ,…ûo÷BÞ-Õå>™b¦ÜêGG\U—g>ád9¿ûm†—ó~©ªÈz>W™óv¡2óÙ>üO »®t•¼»´Ù“î:ÈK{ÛO{jÃdž €¶”xØðXkÍ}®âÅ߯|½Òó¸¬âÅ8·uRÞXJØêB}Ùê,ýhB}Ù@ú.7ÃÜ0 Àý®^Û]ß ÿ èlØ¡˜’¾?„8Ã…:ž©ýÐàÎâ’Ö»3ßN—%==çÃŒ£ì¬­Làr ôýF;ôÃ~Òo§í7%L{ALtûc˜’ðÆ6AIÖ +"oÎWÆ:-Õg½¿ÝY(|hêKôØïÉøj–á“7Án69Ód‹U O.7ÁÞŽ‘“n ácþ˜f%ß±#ümÓØhieÂkJò«k»´t]3ÊWQžþ@Ywߨ_òÕ0ˆüºÖZøj­üj«»äÓj;Ìg­½äë‰BH²Hy…ûƒ˜€ÕÖÜúö\×1ZÜíê<Ÿ+2nÒÓbÜãVLœó>À3K@¦ÑÕ½X¨É~6ÉL¸S_ô#ÑûÒ\c¡[#!á5.æÓÀí<²Š ÉÇS”ôS ·˜¥P¿µö˜ûs¡75‚¨»½%_±)Ïù…ߨëqq&1jD~4ôå½]oÏx/¦ø^×·g}8QÑÀ›Ý¥þë y¯ö`Q[}Å1èÝ.ðëýA”ßbô-;åóÕ†¢È§'Ó -™€Ž_ªIy¼Z—ùÌ0ó:Qab DHEIÀm|’ûÕÕ>X¸ ðÑ+u/6r]ÖÒœeô°ÛV 1îxš‹4O² +Ž<¤yZ€ÛÁõã\MÎ57þÖruÂÝíά—Öbš´2éñr >ñp´‰µÓÏM_n.z5S•õLÆË})/‡¹QRßlu`s.TÕ¼Í>jÌ|cú“…Ædç•–,} ôÝ^!`¦òºüg',ð*Lð|MÁóŪœgëMà×~Â_+ÕYOv» w‘_D¥¡7˜É¾-×!“þÑ Ø¦ñ’/[ÝÅvºQ€?+qWrÒèj ®Ìô‡ß>:_£Æ¿ÛÄÇ Pãn·B}“àÃÿÁG^k+öÿc‚pÓ8^âÏ)¼_–ëyÃ"Ågî"|V[sžê²—šòžÏVe»L³îÍp“Ÿì÷¡BªJ"n· £ý¥¦êêÀ¯ÝrÞ<—¾£ðÍluú£~ô—ërzÓfO¾×#êÉá0.ý_Kµv99ÃhyO¦Ág +D¨YRôy¡üV] +’ <ÅLðî>d»«ØË4ˆô7 ×¦à¦8m¶ÁƒÍãÔ”nܽxˆq„–±Ýµ££ÿï"­ä¿ó°UR¸Ö‘þò\ÅFØ€ü¶Ò…ôÚìÅʹ¹Î“Œô{ë…¯e¨°ãl‚ª1ã=#ÕýÚF;9z¶ºÔCBKúKÅOrÞ逸xßÀ…I‰Iv >Nטýj­³ÐÇ"å—îô3bwú1~ÛýÅŸ·{KÖÔä|ÚìE„wÓS^w“_ÆH±Ja®‹”‘r{Štg’™òp”’öbŒ•å±Ôƒ +Žût#èå}P;<âÑYÂîXðsú®Ü—ë-IÎkMÉ/¶»€Œ!§dRsüodø¿¼f±&Ãy¥1ÏUÎMz@~}¹³$ìÑR3ëe:ôf'>Òig ›0]ò ì£yŒ’~¬ÀeXd%;E—šÒ]›²^ئ™ÐåAtÈJw‰¯u’™{8FIÙë-úh°ˆ¡ŸÍ@¶]é- <óˆvy½pwˆ—½Ôˆñœäd:÷a¢þ\¬Ì~$!Çý½PÎø>[Á= `†1>l³¼Ö‘ïºÚ˜ñXÃÏy(¡'Üè…‡^Ñ7Ã| cämuÑË­Njôní[/ÊïÊ1üæ|Uö“…úÀ÷ç:ë;þÇ“\øù µ?÷±NÐs'˜yë­07]eÎc%7󡌙q_JÏz±Ù‚ýf•.·Cj Ÿ*òžk…©÷t•`Ÿ­rZæ\+2T×Zx¢*CîbCõýpŸÝ ršYÅ*ÕcgÙ愹7ÛPÞÚŠÌÇ ÕÙo#ô”å„×v'Æï`„y0‚ 1 aCGiEgJÞ¦b•Kü€\úÏjeãÑ %ïȼGS„» u<9US­Rz¦®¤¼·ËxmmÁ›bÐ50âöÞ`Æ‹)AÄ_³å©Nû]è ƒüT÷û½˜¬Ÿ |ÊÅ,|¢Æ'Z¤°€ÝîÔW‹×7;³ßþÐòÈ€‡ÏŸ«/zµ7JŽ^l¿PqSîL±¾Ýê!|¹ÝC +¸?W—â²Ú’ïº>@L®†…Üg¦{NóÈÇRZÀ±éV)2j0Ãc·'Ï}©.õáVgѧýNf=*ÐÏ6MI?£‚›ò?luçz†‹ývúò?èêÒž-uû0Ì×€?ê{°A{CøÈ [Øå,èÖ(&\QUà.áfy8,°+ù–)F®]É)ÝÆr§âf)õøéÍJ{‘‡®£èÓlGaÄö8.KÌI|5_‘ñl¿úõ`¤4Ì>O8S“açbƤÄœqs««4ìLÍ*¶Hp‘†!„¯º"åÞŒ ÝI-H(ãżØ†Fªjóý…76GÈpÓ+J|¼?Œð?R0 Ž•À¡f—Z¦pIó,ì÷ÕÊzÛlg_BK]ë@}Õ·¡|v;Ñ>úøGÛ(+ß8LϘâ&Þ[iÎys0NŽÚýqF_ÁI}¨­*tÝè&E5•sª,§üXâqNç9¤ã™††óÙŠòõÞÒ¯ªŠ  †ÒÌ +£ní´Z ÷¶HËq[¸ˆù¦¬g;ƒàŽ÷T@½|9¡%YÅœ|yyî+åýѤd#¶†‹>X€ÌljÏ2Š‹8#‚ަÈ@íâv‡ë:¡OÔe(mmÚ‹ FÄ+­YoÔ5ùžnªëz{ÁÇ3%³tê•%!÷å°´ ¥ˆ¹Õ^øf¥!告q[ +¼»ÓŸÿáh~4IÉØ"D‹àAw§ë +¢ìjFÑ|cÁ»aZÔ£)AÂëåÖì·«m鯬RÌ·…ÈW1?á™eš øÕo€èCÎ ½¿ÑSð~g¬Äog¸Ä×,AG™ÆH‰À¸¼Ûê£fœjª¦IFöZ{±×fw‰·ŒŸôtœuû@ŠŠ8Ò 8s}Äüâh·»Ë}%ßNµŒb‹”odžÆÐ!@–žâE=¦†>8²ùt=4tˆóÐ8ˆµÊD„CYñPÆœÌÒ‹ÏtTøÑ%×¢¥ƒmZ¡ýh±>ËãTQ†µNóñ§Jvñ9pþ_:2Ø&/9ùÿ½Âáüg»zèd–Ù/üü]WÛú}¡ªúl¦œh–P’Œ?³=IJh%‡?\ª(õ9­ÂÙÄ\È‘Œ‘{®¡îÀ¼w‡á~FIY®c»3Pì}0Tê»Ñž÷~o8ûãé 6Ù.§fŸÍq0&+gg„•´;*È_hA|÷c?Êo«òÀü³µ®Rÿ….Ô×fBÌÝARªóþ/ÿ@Ì-Xl)ù8ÉO~ )‹½·P—öf»ìgDMѳ¶†‰ßæ[‹Þ+¸ð16j¹%ùé(%èö$'îA7.ð^\ÐÍ­njúdί }C-ûœ)è ð…†’o•aã6zÁnë=i/mý¡c–L’’¬2>Ü>SÅÙe¤ÍVæ<› ~»)e'<Ÿ,‹yØ…ñ¹*f‡9-t”zwP¢H9ñOö°ñ‡cäd ¯açjâXÁ€îI > +TÜ‘FH?RV0öÇÙyú| £ö:Ár\ü‘»Ó‡ðÛB†G ÑÖIÌ4AMÔÔ%=Zl)õ6Š©‰F19öXÉ…ŸÎ +Ë,Ê²Ò ì7ë|m»m®eĦ(ƒïö•~Ò5å<×Öd=[n-ò´NѲÌSU§=Ÿâ%8Ù¦¨°Ã FÎn?üëRc†ËjkþûQrìÞ3Û2YA21²W[K?ïá’œ¥ÛäÄÇ;†ÍðÇ™êÔ—²òØ{&)6êh†ƒ=œf@Vz6¥€lUðPF1>Fß þ¼×_ä¹;Xèu ÇÄØç°Àä†Ñav)6éXŽŽÞ(ü¢&8ÑÃnIY€?¨Ë|q¦âbÏf«„eÝ:]Ãji–R’vºážºÆ|÷ÙVØ×abìz>ê×j¹ðPJHÛêD|ZmE~ÜÅGY„T³Ÿj’áͳB77Ó‡Ÿï{×8Ê éZÆÍÚš +ƒ² ¶5† Z€µi¬, ø›bJF„›¨hŸ­i1Èù}Oé§õ®‚7ÛƒÙ¯V:SŸëšSßÿZT/ +k–|dUÓϪj5"º]ÁGا8PÓ(#eo½ÖGk#$=™a£>Û†)ÆAþF+ñëV;1p¿‡}0JMµ)ù³–‹[2/àO¿žLqJ-l°u’ ;Vñ0–iVENN3ŒÂŒ#”èý1Nf.þ/MôÝv1àp€š`aåšÆxEú^zÜ|5ìÍV71Æ8Y_¢ÆÏÔ½TVA<×;ñ±Ö ú§VTfžÀFïöz¯µg½\ë‚zÚåBÜÞ&h±>ÃeœÿXÆÊ|¡€}W›Ñ@fª&Œqï 1·W›‰ùÿ,UÕ;ޙǡÞ{ÃP¯ídÔ¡”˜ö}–Yrª"e,µd¼Úîf¥˜¦ùëýìT°Ààñ‡„èûôø‡²²ôwË-ðÈù6B¿(ê~maØ_s\»œpyqQ óÛè…xd¨8«†Ž´j¸˜Ã)ä`’ vÔÁñ4xa?ëôëá(äójs’óB]ìc›„˜yªª.[ëaÆðëö-ëXÉôš‹0II &9!Þ¤ &ÚæXër]·QÓØjœ.G&hé[È ýalŒmšu¬lÇ„í Á¿î`¢NT†®¾äÃJ}¡«¾ê½ßOÌ=Ó”3mª2Äj:FU•ñÂ$adŸÍWUë*DR\ÂÞüËrØC]›úf©#'àd†ûüÛ¡Œ–?ß~s1_]·hêFÚO#Êyfì/ <Çf©¸äãÙrªmº¬À{ᱜ Ýëƒz«ñ·ee±we¼¸§ éîYi¼c7GÝïÓ2­ò:ŽyÀ«„‘¦ï(ý0Aþv]%ˆ½»ÙWàf'Å:¾Å·J9Ŧ!Fò~?3ðæ±›Ã°]{Ž÷BG–Çö$6vk‚YÀžk+›Ï–k;Q‰Ø†iøxËü±&¬>[ðõcÄ8~qè#q=$ód½¢ÍðÉN?ÀõbT‚AŠˆ3NâsÌrrá÷e>צe º +ßLãŒãĤ#e]ù¡¬†¾?ÆÏ_iÃùVÑeІ|ªå’Ü´\ò íÖ/xØ-¸=…=ÒW³¢ =ì¤ÕvÔ—ÍtÐÚü³QJƹ†o–WRvÅÂbý +q½›´ÖJýºÕÉŽÒ·–EÎV‘? óÂ/ ³ïÍ ÉÆžò,c'e±4ÍB¹® ‰vq-yG,,Q6b>/¶‘­Êú†í‘2°ð;§J!Q×v¯H¹¿ÛQènggot•§ÏU<6kuìÐý¶òtÛ`|¿C”·(ªŒ–á)Ïféx7S»°à`˜W°?„ö·ŒÓ3ìrÕ¦n±)«Ë¬r&x¹¥èƒRöXß!ÈÜl&è»+s7š™¡»Ý•àVAêF3;b¯‹—´´u”Šz1€,~´$ ~³ŒˆJ¶û‘_·ú¡Þ65!ëd–É8[®<]®ï³i´ù–BÏ¥6˜7’mJ|¥é±ÚPør¯æq0ˆµŽ³Ž¥lðᬫel¶ŠÒì£Tûh5ÎÐËNÖVäº~0íl‰Ï;^®ëߟR¶¦Øù»S̬·äh¦œt># ÛåÜÒÝa|ØNgÉGû9þ\ÉC™$üâVDÚõ^TæÝ¥*jÔéX{ý©LDÙí/ý¢ï‚øLàÀ狵g‹µ­§ •"Ë4»Øl½›:]CûÒK+¹ßN(øKTü>&ô·’ ÿKžÞ €W/A/üº}í +èé_¿ƒ endstream endobj 29 0 obj <>stream +¾¸Ü¿DNôýsŠ[ðtoû÷ +õsÇ2ªè¹ê.üç©fÊ'Y-þý¤õb¤ ïÒ‰/¹WɺŽÎI‹ ¿ÄKˆ½T›•þ;/-ö=.ø7rzðoQŸ]A±n¯/7óŸ5¢’+DHV²IRÓ÷£ôݤÝ!^æR7?iª‚êÑKE¿lÇ#Ô@ ²SR¯`"#.ùù^âÆF^¤E\#Ç|½’ýùӥȷo@A/Aaož€Àî—:‘Y6:Ë’Mbòpª†½3)Déz)!s–—ÚkrfjÊÃÆX¸ç½8ÈÝA|ÉÃ1 +Á}‡|Þ)zÔͺð»ìþä!èÅÝÛ ˆ×Ï/³R#oŒ0 _jÐ!€nÐŽ—™»Ž6*è…N„·¢6ÿý®˜V|¬­lŒ°3%ÜÒÇSä‹!úƒVˆñSñP^-% ·ØiáW°ÑAWc?¼½Œ‰ðÿ“pùõ÷åzlü‘’‰·Î°q¶ùröŽŒ”°+ÅFîŠQ€oúfp!‹­´ m-ÝO&døLpn½Ä,Q~Ô}XØç«ÐðÀËþ®OAoî€B_?»ÌH wê$$¿ósƒô}èÜ#5 n›ááŽ<ï‹™{bJ‚MÍÅžÎó)5=w¹«ØC%,|6Wƒó™­"~­ÌO¾ öû| àw‰}õõ*)1äOzrÔ5 ÝWÂ\Ÿ\J÷þx v«&/þÚî 5ɪP,3Ì]1¯`s²ÜöÛC}›oG{¯ôÑ"æ;ð_d¥®m¨ì›D VîóR®1Òâ®G{¼ýÍùÆ GÀátóÈõþmP~ Çï‚¢Ð˦mrD¶|ÖÚ@¶·¶5áÃù +‹~¤«¨4*.§&NŽ4L¨YÉEî‰Ù›Ã4ˆ¼QQœô¼,=ú¯ª¼„¸˜ÀÛù^7E…1ά¤‡r~æsý.í—ž_÷?‡¢¡5  Ä·ítؽ +Tþ5faî•Âè(P„—;èó]ËÛ w€^>¼ º~íwг[ÂÜ\AyAÞ—Záéw49.gZZuž Óàƒ†9IÓí‚o#•Ô¸¼›hÆ5vnÚXtè¥p÷—@­º€R<ÜAy~>  7ÏAnN·@1_|Þ=ݼvù¨åÀ÷—ª ¢o,4c>iJßLr¡g*±ïV:8ÑÓõÜ€NÕ¥¬v•’z)'$”âóäïê +zyç/ï£G ð—. ÏO@÷nþú Ýýã*Ðî› Ÿ§Î `“²!.«ø/ú!V‚~¼«îàÇOT1¼Zñè'mŒs~›™•z¥ ØÿR‚×'P–÷gP¾7(áãÇcgÐ+ ?ܾ úý·ß@/ïþåè ??æwu=Êkg +eÒ`׆ Ÿš P2‹ö•ÂÜ;i¼šäÞˆ-¾EÍH¼‚ür BG‚¢Üžƒ<Ÿ8>:?ݽvtç+ W÷o‚ž÷öþéÕzx¤Ó\sÑ{Ã$&bs¼ØÇ !D¯w"?­v¾NT ^÷ÐJï×ÂÁ7± ñWJ"‚A9~ž ¸oAÎ÷Aoïݹݿ zu÷èÞõ kW.ÿ/Ïy>úýÓãߢÿS€}¾XQiŸPOç  §¨éƒ¤HU#ñS3òõ;>*ær–·ÈãÁÐûû÷@AÏŸƒ"ß¼úý.èùí; ·‡@N7n€®\þ ô ¸^Ê'++úž¦žøekDÙ—´W[Tµ‡ÓBÜæ8;]ш|7È…=­BfÜ!¥E}vé›»èÃ#'ï³§ à—/AO€óݺzô¸Æ‹ûA7¯þrwzB~ þ]Ì)tÕÖå¿Ú€ž.0qÿló+ÏÖDÕziYþú87G×K›®E¾ã!Þ±Pê`¹wq±ß~Küìyé=p  &Bþçtt Ë{@}'yºƒJ#îSÂÿZꆇ›¦J£V'ðÁJüëVFé}ºð:½rŸ‘›ü[ÀÏKoßÝúöÅý ·Ožƒ¾}üz…˜–}§ƒ|9]AZíDûZÕ °EÃÇê'ÊaKcUÅÊžºÜ‘ºò€@?HYñ—щ1—q1—2‚@žÏŸ€>G¸û{З7/qûè“ ØO/}ópû’z¯—út‚[ø~m–0ßM +TÖ=ÕuÌ/ê&NPwÜ¥‰„~Tƒ'=Àæçÿìå +rûò{ýôò¾È ¸O7€3ß?t=½wô×޼ +|ñ„O¼Ñ Ï{7_ Ó÷3âõœd]¿(O\Ãôëa¡ŸV–æüY/ºY…AüEÈʼéå zíüä +Ô™—óP ëЛOAoß¹ãõÔÉàgÐ7Ï fvÜU¹õÚ8]VhT²ÀëCØà•΢&9-C/áÌô•ÅÖ•ùÖà ÎE‰±¿…xº¾¸º€<]©'>\í DN1òvƈ߶†ˆa+ø¯ºvjà÷²‡Mx^‡ÜGF\Jùú”èí Šñô}xúôו« ÇׯýñôÙÕ tï¯[_ÜEº½½”ê{{Œ›ãaU°JNt‚²ãe÷hG²jÊàÛ”„éúÒ×òÒ§tñHxè•ôϾ d–A÷,ßÿã€Ã'@¿?Ý¿ñèÐî÷]@Ï<¹=}Ê û˜ã4SOñßàg$-"³²¶zµ—³ØÃˆœí¦„´Ó‹£’#¯„}| úøÄäóÂôèßûÞpqôÀâí?¯ÿïù?cèñìÈí‰ ¨0"är $é·^TÂõA\ìÏ5aÍÑw8+¤oOUR÷ÕuµRvT€}%„å]C'ÄüçñáRìG/ o¼A.ÏA7®þzró/àºAïž=¹c™üùë%zvÆjTæÛ¥.D°¶)ûéì07u¬–æ1^Íö¯EôR¹nxÚ“. +÷m5Šõ›Zz •w›»Kσß,kˆ›ªíC,övÒw&šÊö¦*É óYæj«M3uUÓ•xÅ ?e¢ƒ4TÃðìá°½ªQè§µHü“&ß™GzZW|›w“”‘u›˜œx›•šú´ ‹ñV×—eè‡È ½¥^;ÄH£ª’½§¨fé'jÉËcM4íP=²r§•ÿL\WßY]ÅCÓ^“óJ‰¹B"²®ú¹{€Þ>º Ôò#˽Ǡ$ïà«´4ð“v ÑGÛ(ÊXéfÆìIx…Æ© +¼a²»4ÄW Sï—Câ¯KøøÛ·ƒÇq¯¡²\PÜÃäà„+¾o>€^ÜùôÀo® OßË‘¾A—Ó#Ò.C’ +®ñàÅ/GxhÏ•j¨EUÉ0Nò ÖiæT#ª9[¨ª³ÏV‹ êZ¾f¤®x¨¡)AD&ºee]õñù-ÂÝù9äþÂt÷ÆPìçЫè¸3£”àÖËe™°ƒ×úëX&ycýÎâ8Œ²r¤IVŽØ¯€/7T„±ºwûœ-qÊN¾š}9ØËÀøs vïƒîüy ôÎÅ”–ð.æÜI+_©)3)Ê&9#çh^È;]mœ8[«n?Y©jÞQqÑšAÊ7eY\—öª…D~Y:Q³sîâ23o—¦¦Ý ÷ øÃïÝÐ7?P\@ÈåÄàoW#¿ø_‚¤§ÿÉB?•5ÐÂôCå¨i-û`ª’b”óŠwÆËrf[1žº^füÆd-UÞQžTK„9ãÒcÿLð÷¹–ö:3ñVzdП^¯^€>¿v¿’“生t;+>ñ*\|WˆÆ¾éá‘|Ô˜/S‚ì‡+Ý¥ÁçË g«|!àóÕB²Q[[µ©¨aMµ³Ck)èøÜœ?¾}ò¹éáÊ D'^‰ñ¸êõê1(9Øç26/õÏÜuˆÏˆX¬@ïO•cŽ4\œež'ÚS¶´ìf{²¹1QOZécE϶’|Æ„¨wݘëzGj{¨‹·3ÚL?Õ2ÍŠjŽQ.ÂïKù0ËL5߲Ю4ëjšŒ3|ìžœWjP‰H›Óå¨ E9ju²†°<܈Òvr¢æºø‰k]cýUúñîò•¡&ôú@|w€w:ÍGø²j+Ë,ð” ·N6ÔXå=ãFUCý¶\DØUT—íLU‘×{9IúÞŠÜÕþ†buo3T32 TôõÑÄ ÍIã aÝ,–{m)äN+óBVY•¾9ÒD¶(šj슦»²Vx4Ã'ÏóI's"Ž}¦’»1ÄN[ê¢~ÛáîNT¡V‡ªŠ”µiŠîæ‚鎖,ICkìT}}ôd߈AtUµÔgJ›Rú|ïþêª(Ù`céæt ä`MÓ\Øž„•±Ñúl“3þ^mÏòiëc¸È ))I3ÂKläŒ4W~mkË··æ4PñO;¸ U±=\á'u+'lu°¾X?"Ì?“ÒÌV‰MWYe™¯k6Ï5vÎ5÷/Öu~2àÉfÑRõR´¼ñQÞÁˆj*‹Åe§ßäÀáOzª›ÚåþCµmååšÊ«½&[¸!ëâV‘i¦Oy¼ÜÐo×Uׯ6‰OÖê‡íºªÇ» ó,µ§då¯Ñâ´€þÉ[Ë¿)›ùዃ5ÐeqOÍÜPm‰º‡1;ÄIla >¸GˆwStwb&Û+ã5C‚¬uY%Þ6'âþkYTñ¯¥òªS ³3Ž‹Ò#wÆøù†©j:0¦Œ 'G×C +ئÅnIíªÉv¢EÝç&9-ös³gGÇZe=miGEœº¿ºhMÜÌ2L7Uª„”íaLŒª*îþÎÄ÷l‰/ü¾Ùª³/°‡JF¾E+¤oM—#—¥•Èé¾ÊŒÉöŠ8Yk]ÒT7\1ЀPŽwñ´ÍÄe13ie”½4D[À~µjELÔ·Úƒþ²?† ùµ['9šï/4t[4µ•e%ýð{”xy}ñç†âÐÛÇS|¼}¦œ¾/¡¤¥„˜ý ü7³Àê4#Ç>ÃÅëªkT<„Màn®]zºÐ&9_hè<]®®3¨yØýizÖÆ&h[LˆÙ”³¯ý¾P):š©Ú•@ír`§³Ôü“9zñþ4)å@YVlŸil9œ¬Ú"ŠA)ÀmË8ÃT Ç6SÅ1Kh¦ajìÎ9rc»+i)ßýx fw¢Ž¸=&‚m0ÍRâD]Qv8åØC¬²þûBÛÔù|cŸMÍÁÚ4e¥‡Óe£”_¼7Æ/<š©diªxf•€hÓÔÖš¦ëE‡ÊúŠ}9¯dSLŽÞ“¢ 2zúþ%É4͇/öóÓV»«Àæé>ÙÑZÝeŽ…j5Ó¬¤C,rlÌî0ØÝªÀ%ÿX©¨¶ÌÈ&…n_¨m3/6ômjÛ·gÚz·T½[ŠzÎò0=zeTÖKkq{ +.äDÇÆŸ/ˆxßuBîÿ®‘¹Ë¯t¬ƒhVÓ ,Zɶ\Up¾c=tŠc=¢s-ú]ÇÆÚÔl¨AÊËkÑ_ù°¸÷C"t¾^Ù=ª“U"VÌÜ•)6D?UŽ:žw¬[Ý8rºTÝ|¨!O–*ÛÏVÛçOWj»L*V๸§‹€ïšÆv†ƒ´ÎI»ŒÌõ^¤Ï¡¢ iŸ«oßÀ‡ëÚÀo7†P!óC„hý4»¯²÷4Uœ~a曕Q2ФñÓÅê–S&þx +f–ÂCwFÑa–)FΩš9VòKBÞÑ<—´7Vâ·;Xà¹Þ™öl¾!ýÍ4?ÒYßpœªd*;× ˜Ž=­ÎæH¹¦ hÐrgÌc›š9¯m9˜1g»Ñ‡*.öHSY~¬©­?QW–Ù•ì’QlÜžq¶(ÏV s ç–ÊYE»äH ôá<—hVQ?ˆñ7޲²O´MÝGsLÌ®î¿5Œð˜z®%Ú¦‘ñ?tLüåŠJàp«ºZt±Ò2u¶Ö(1-Ôušç:µµõû +&Ì4MË2«¸ð£¹rÊÙÿßݪ^Ç·'slÌé òc_p¶@-4+È)Çäl¹œcQ²GŽ}À6Eÿ]/ü³Ê¡ÙU´œõÔ]3Òû@ÊAžÌ×tÙ—j:öÔÌBÛª¨þD_?ñS_ÝóïÍòê«<Áѱ!Î÷8Ò‘¡§ºê¦³ÅêÆ]eõÅzíP[ü`¶I\ô@~éèÐôåß—+jOf9˜ŸÀØý½#¸ŠšeUQ³í3LÈŽ»5Pùk¥ºõt¡®Ù2-ÄY'ÙûýˆÏ61!öûL9É"áT­äˆNRšón*æç¼¨üHÅÇNq¡@­BLRRŽEÉDÚ5BæÞt» +•ú¸‘èm’ +¸ +!Þ¬"§™•Øh‹g”" bHàÁ49cKÊÌZî#…›¦„ì³¥†!Ç:írêp’–n#ƒ6{óßïç{ZfÈ™³íÐO«]¨ˆÓ™ú6‡ÿ\G×QŠ.¥úÞ/«œƒû±Ü0dVóð{“<¨E[-:TW—›”<PŸß‡Ž*‰Žý {v›•”t»–œsªe”|_¨m=ŸڭƧlA}š‹Üã¤ø‹.ɱÌù<­ðlŽQìxÏg”R3ÏË™¿V…†)dŒQO?Ó7©?5eaÀ÷&ÀŸ²’ðz¾J§\lð+ r6d{‚žy¶TÙlÑrqÀ½Ðß]œÏ +è'kði§³øŒãYJÞ0+ÙYÊÍó´8¾ ’ÓLrt¢IEÌ8PSÍ3ĤÓFÉÙrePwýF•a× +YßùÌÒóYbÖFwºË0Õ뚺"úÕù,nŸPwG©I–iÇ^7LÒé".Ý A†êÑÁËý„°í lÄ®y0MÍ?]äQŽ´ô¢£ùÊZûB³øt­¦çt£¢ébøs¹¢Î¢å“× a6½À±'êþ9îlVÄ=ÖŠ8Çó<êébUç}íÄÏ-aƒ}–YlÓ0‹ÏVÛl‹{ +>ê@Á,üGÏbüWÏ üWÏfýϦ¨õ6 Æé2T>Ò¹åòK]QûðÏG“ˆàÃáüw[­™OW곟lw@= ã„衊œ7Âl¿»ö1fþ…²’ñS[Nþ>Kø›j–CŒc™oþ¥c!|kÕ²0¿6ÊkŽu,´INL6ÊIIV )õDCÎ9Rs÷FñßöGE%{ýe¹–qzÒ‘”‘n#FíC,àïbb¬aæµÙýÜ(F[äÌÜíAJžMRV¼/¡¥oŽá£6ÉQ‡üB»ŒWbWs0&93Ͻ‹…æ¡€¯9›/²"-Ã0IIÞ‘¢Œ2&PËUÕ' à9XMuÕÉ\Mí÷Y컟t¢* :"ƒ÷Ęн1tÐÁ4 ¢ë$†˜¬ã¹Úú#-eøÚæØ¿KNLYÄÕc#ëpà‹ÅÚö]Mƒm–V`Qaý6ËÑ‘6@[Ž€qÚpK*J#î+«‹"Ï–í 5 ‡€w²8öT‘b"Œ“è(Û,ÈyŒôa|˜IÂ,¸X¨ïþd½ÓÙjᑚ·N‘Òw‘¶iv‘QLM¢$ÝÝêBDþ{£n䟽êQÀ§¬€´.K?„ +Zî†zŸ,–íkÕ­» +N©ALKÿ÷Fuç?úêÎÿlU´ý{[Øv2OÈÛƒû®ô#¼÷Æ)q»ãĈ“öÇBuÍ錈}¢áãm*`ü¤èð¹úôÇ㔨»;CÔ\€kåÙ¯UÕ)¯­jZñ>ïï AÕ÷ÕržUËÃïÊÊ ¶¹Ú¶³åú¾5oµ³àÍF'øõ‰ÈiKLܯYâ`ºX›ühª,þþV?<áb‘‰·)QQ†qdÀ…É6­¨Ìª©`/ñD'‹tªc’ÿ¼{ +àïdA(ü±ÊÀØ8$ó à2䱎Gý±^Îÿ¹Â/;ÑÒJº©au=¨œŸëÍòŸ«îf¡w¤ë:É6‹M½X$CÿµQÙy4Çg9„{¼Ôœæíj.úXÍ„N¢¢6ú²Þ%%A'sšUÁ@Üűk0«’˜|<ƒ;Óbâì*dÔÖ0Øo³æw¤äQì³M}ª2À·“/f(9'J:Ôª$eÚÔ”ôƒ)bìÞ8!b®ìº5JHÒ¶—&®÷Àü”¬B£¾?Xúéð{§2JÊ…†Yr6Ërøkþ…NÄý dǺ'“¸@‡}öì½-£¦éÚ€Z“”‘Œr6aOF›_{¶È§ÛÔŒ¢C99Û¦d–XdŒl³„”èuœ}š]êø&ôd®Jt¢«ï8Yªª1É©)F)%y»å§á&Ü9ǧý˜«¬98ɦaÁÍò²Òs Ë«øø3 { ǧ¦™‡J&äBWU÷_Çš¹kU­?Wʹ§:F‰]ƒŒ2MÁ÷Æá¾F 2Ø$Á„˜¥Äx›Œ–}8AгL3r{³(i1.~oy4˧¯Šé`JÎ×[«½ÄìŸë ’ó媻†6+‰)Æ)Z:ÀGÀ¿µõÇÚ““wÅÔŒ} ³Ð´]× þ¬«É}gèB}Ýl-ô2Ž`âÌ2ZîF?*À¬ þX5|ßàrNtdˆMƒO6)Š‚òÿïÿŸ£÷~K3Ûþ¿çLÍÌd2“Þ{bbš©F{ï½#(Hï½#öÞ»Ø@)"M»4)b7ÉÌ9çs}Ÿ?ä¹9?p)\ +›½Wy½ï{ïµ–°åßV¤%¹ÈØ_ùÞß?Âg¬mÜØþÄR×õeMØu` BvÕ°„õ‘ŠW†î¢'¾E{_+Ø´#ì^ÀÂN, Ö èà +ëìór/è¥m–m#äh;Ù¹.iW‡OÙT{ á‘”‚ZáœÁ'yf¨þZ(Ç(:Ö=AÈ<œ£—otƒžÙ†@¯-=%Ïä‚Ä‹ +^ü†úüW›“„¬ÅΪ7–Nèkë¹Ì&fBœ6ìð·o‹uµV1.®>óñú <ãȇÀVwäþ¸0Ï$"N!Ì\j½S·_° +Þ]±õaÒmƒ¤ ¯ø†Šu^Á̼ æ9,ÿ–{k› äsŠžE]ûž|}WÊÁÙ¥TèæTM¢mòiy 뾡3ù掤*ruòYY—ñpW†­øpÏÞ"Õ-)û`Í \íM¸¾Pqn­»ðÉÞµÂ1ˆ.!Cýû˜Oؘc5Ÿî–’ +¬¨Èí1D(`+‰›Ã ¹úÂ@BÎëßÇðQ×ö ¾9މ]ë){¶ÕWøÜ%½Þ)x¾6”x¤ÁWï)éˆdò>`÷©Ì: OÜ_ÂUY(˜ wyhmoåëÕ1dòŽ;ô…MJ.´Œ¢"Ó˜xÇDͧÍað'… 㑾)ï±wŽVì˜eO[Û¸oð[/ÝC~²´—=0Õg\öŽC£ì£U1ÛcÁÇ gëk=rZÍje„}¼:je 4ÐÔ_üÄ-÷÷•j81ÖuúëR™j›Ž—xÿ_çlM¤SŒˆrÏÁ>ï+Ñ)n :EUï]“ð0·„^rô¿Þõ´êÝylÖö,lme@|ê¥d½Üœ á|ú¦—š…ÙÆï´Â®š;6›ŒM›Ó˜¤i|¦W-z[6Äô’…H¨±ìšÀ%n €Þ8§ q@5sÀßbmÄtKøåRkÑ=csñ›ˆU´ÜGMP°KnØG?‚K° #B7ú«^êÛŠîÊk³¯L1ÒÎuÁ>ý¼ÚK(wLÕá–‡a¡ÀÚ?µMÁ¢¼2B…W +äŒ9JáJøµ¹¹$ðpž‚ñ÷4[)PñãÿP°’ÏYÚ +Ÿ¸¦aIG@¾?V’ˬS¨Xm[ÙƒíÄ'×>Õ9AHÙ'&m !C6ìþûu]è`C#ò½˜Vhh¨|¿=Í…IE·Å¤˜_5¼„óžiHðÎ$ø£svºHEp2žâÒžþ1Ç-Œ:Ñq¹;bPè±®<ú@W³4öÄÐsÓÒWøÐ)ÆçnMbSWñ/p^MCç0Wk}å“´ø?Êß|¯¤ÝqÏ‹[àqz°1Ïö8u"Bº¶®ìž–—{IËË8/¦DœAþ¬mŒº Ø1|{Š^²9„‹wŽKÜRÚ3‹ÏôI _õØ±ŽŽ:XäÑu<ö—% þ.P!‡ZbÅ‘–Ty $ä:Ë5þ°Úœ}c»'÷î¡•â³!«ƒè(ë8*Æ%Á&9f0)ÛcØØÍAøÇÅúüK78Â!cÀüñÜ£aã \ú¾šYs¼Èg¸•,ø®Š=6ê}‹u­9nÕÎBs«KYËØ™¥zçðékýe¯Vz +=⚨Ý9D´u¼ôÍB]Ü5cGÚÝS#÷e¹®{OÎsÍA?{¨TÛ ø‰Ï÷ºÑ%…%lŠàŸ¼•iŸóë)go‘:\d N‚xåèTÇ,2Ô69ç ¿úsà–¸&Æ)A§û}⋉˵Œ“›+œ3Ä¢ã%mk +Ÿ¸1Xó~­·ò…©©àÑf?(hu 9ÆÉ½EM{öÞ”ÚCÇš; +ï,6äÝÐ7?X¬Ë½¡­Ï½¹Ò]ú пUkcØøå~8àƒ|À"¼YB‘}eé-x0†Š83Kнå›ÃUúl§˜š0Oƒœh8¤S€Y_*uN@>˜ÛÓnŒBϘ{«^/÷V¿Õ7¥Š–—„Q¶ÒSóN„Mÿ‘þî;AÅÄ”k¶a|¼´ÝVÿÇJ'$ú¹ hdCSé mCþ+Çxñ'c{Á9ÿîR*ãHK.µ§][Ì}î‘÷§*Ãl"päÁ<½fÐÄŠÆ¢€9nö£ ‡ûÕÒ0t¤cb¶F¡›ÃðPÛ*þTÍÀúätÄ$9ý¶‚]ðÞ3ÉG›»àg)Y—¦0éI©×Õ¼Ü[æÖÂ[ýð´IJAÎÇÛßÓÞ_ߦ µÂúá¼½0þ/c}ÊEÛdÙëÓ%&eo‘Ãdf¾m« ¹üÛ‚Þ-ìÞ,×g_U‘ÎΓc~_o˽w"'z`I!wT„=x…çÓÐ`ë/5‚¤ •/“²Ã¯,R>}›hYD-°Š±¹ß–„_t<Ö7¥Ú-DìLƒþwà ÀGjÖYf©CLÉÞSÐ+×{+ßhé×Ṳ¿&­yûã,=êšu +œñŸm^§ˆ•ðØÜWql`àO¿>1p¸Çzà}$UŸçÙQçL¹O÷µ4ø®†uÈhe›3„Š;вˆþšëÿñ¥ÇKªPY^2ϳ@€¯Öî™yÍÎR) ›«œ_Ûçлlѱ‰Ip/0krZÙî‚°v]ÄDi\?¼îšfÙ'ð‰–ÐSµ øžs‚RfGÅ-Ö¦_76¤ßò×Brão¬Œáž©‰>ÒqÙV) º6FJôïý>P³' +ìë2õÕB%/¡‹·&+‚l“¨¸=5½2ÏÒwøûœón1} àbÜbl +à wf© Ì~Ýš!fN°sÎó +<Œò |Òr{ù“õžŠ—®)XäbSÎ]?õ²¥ôæT[[oŸAÄ;‹Ì}å¯MݯW:*ßï¼u¨Âå[gpÉV%ç›±¡çs]§OM»K.wçßµtäÞxé©KBÊÙᓵ  [ýØhŸŒ¶Šáëƒ5Á2~ÙýfPÌo¼‚¿ "¯ØGHé¼²ç„Ì7g”uÅáÇ*j¥¾5óf$èrÒïfPo~s ¾òÌà NM`“"2Û²µlê©YPïUŒ®&—ùë9Kñy›# WjêÛ²°ýHÏ&íª‰…>·¯ ïÎb²· a«=%/ Å÷V{aôâ Aɧë«ý°Ç$µÈ1ÉGx§ñÉÞ tÊV?2MY[ØZññ—y~aÄž”ÇÝ•RA*~Üy]cΓÍApØ#y¤eÝ +t¾½4d‚•àg.‚X¼3…Š·"S¾Š³Ó_ùB/,œ&¦^夿úqóä?ËÌZßZ`ícEAƒé·lã%/·ÇKƒŽõ,†WÍ£Øg¨¹^9æ‘ÒË{¡q¿ò³?ü«¿:úÌ )æÏµ®ü—ÇJRÙ73Oxjf2é9¿— RB¾,Ñ>5¦p}ôn“»3KÔµæ|KøÉ)ç‘T­Õ/V'i^cëôÁJÇâ·6×'© +Ûìκ¹Ú•uÓÜ™uß«†fî-*6&!!žE|ÅÁj£èËúÿê%×úkƒêéHšR~Ä«ý6z’VxÿØÈç/rpÇ.Á;Ç9¦ÐÑÖÁ’Çøõ¡‚^ea¢·û‘¡ži\Ú®“0Åk÷èK 0ì<©h]BÍߖЋwÕl´[…Ïóii^ 8Òÿ8ÔA“Ô5':àEò\Kn༠4üHÓ):Øôˆ³Ž)Xøb}öu%;õ’†_ Ä'2ÊÞÿÖ‹ˆ»¿;ÍAÛJŸa?ý6E ûCS—|ŸýCB‰9·Õ_öEϬB?lObÒœ2fKÊ…ïɉy{òêhûtÉ{]KÆmë(*櫱¾ýÔ ¸d‹ A?:§Ði^1.Ë-8UŠIµ#"þW'L„OôŸYX¨ +²N2VÇ)™2^éM#û¢œž}EÉ- Ä&^ž §\]„F.÷V}T +²®Î±2ïOÒŸ¬µ•}ü0ÀW-y¸ÈćÁÁêÖ¬—_M\þW ¯ÁÄ•íѲWÛã w¶ €Ã%°/fgOË@;¥„œ]r¬ÔïHÑ+=¥2FâY0åÂRGéSË0.®¾*å:$âéÏ–¾ªxÀÖ .¹Ü>YñF]—z«ôö7+ð'5 à?BOÎ%éš«B׺Aïö´ªc- ûŸ®ð«‘Eö©ˆ…žyl꞊TìQrˆÛ“èd¯”ZyhImW—òa¹£øAgeÔ|Ü£ 2~XªKþ·ž†¶O¡|rBÞŠZq¬áà|j\®g¡&Ã*˜k¶*ìXÏf~55öûÔêÁü@·´*þXKCŸUüOµ{–T¼1 uI(þ35ÕÔÜ›@ еT¼Yï- ðL—‡xgªbw&!ñë}%ïå¬ðs»sÕùþë݌/6‡ ‘Àgý}‡É,ÿë›Óâ™§ViZKî;e ŒÛؽ¸gî\8æÕ+®ì¹ø…SŽðÉñ%ÿÏJ¥5àJ}Êš”“vÃáZ“øØDÇž,,j Õ—µ«"ä¹É#%”hëóŸlËIEªÈkû t¤²í“˜øÕΜ[ÖÁü‡öѲ Kkö‡•ä[d¡6³-ªöJPÉÀ<å{”Ô +àuô¾žMøßµk árÜ®–†ÙÕ¹Ї[ê?ï^'YFªCöUüéRcÿ±^Xw +øÍÞ<©`g +»=„]ëdžº1!s‚¼{¦~HôÖ1mš–vnë?ïŸsßÒŽü¼=J)Ü™$•íÍ“Ëý}bÖDÈp+/=‹<š[F.qÎ<[¼Øý—„ú«O†Ë=ÔsüŽË^„yóˆeûJêh›í˜m‚^¸¦á¶I\¬„[|sVPxsšV¹%åÁZÀOFÐ1¿µ—‡üÐRþ-íé¿æ9)w¶A}¸TÿüÏ\ªwŽQq #d{¦«ÂL™³ìÏ7DÔðs{ Ðôÿ®×vùûWìÍ£36A¯¶FÀoöU¸‚S3‹q´Ìfùµ³KŽÉ˜¶·Àx ú~c¨úÝúìóŽ›å–r6§p M3è¤?w&`ɇ:rµº-ý®²)ö¼®3/`{{}ȉ€ÆÄëúᩈ觿­õ”†ügÅ=ÒáÊœbp¸mº8È#`‘ +ó÷4wHé@Lx½#!î«tÛ42ÆÒWöØÔQú@BϺR›r¶»:üš}o‡0KB®XgðûjZÍúpe°©§ì±±»èž¹/ï¶[ +úðu‰ËÙ× +8ÛbZÁ®’=Y4ý½"h>ÐÁ†–ü‡*vΕ¥ÖâÎlòŽ”U©ïB¼ó)yT`Mhk=Åíe/~퇼=3GŒüEÍJþË3]“ô[Ü›¢,,}ù‡m›ûÕÐØýÕÀ¢|ÑcŠNtð,ÛdÁCGÒMcgÒ•¯Ëµm»Æöi§B(°‹)…§Æºî-‹üEÏĪ(>iuìÖpî çtù§o+üV—¦®É>ÇAjëÌ,Êž’Pà´¹}6ŒŠ¹"Ì~ùëΟ¾9CL÷¨(•ÝN'|°¥íÁÊ ­¾‚[ÝÙ÷=ÓÈ ÿ=u{ù£ÍqjþŽ”ØžÆ$Z§1 ÛSÈH›éR¢Svu Äž¶¥ÿ@ß>s`h915œšøµ_Í<>ð“¿Œó` `I!ס U¸Õµ¬­IŒ_Ÿ„šÚ ÏÌ­•5‚ìk+]¥l"x’©¯:h©“øik¤¼1$o޳Ë6&ˆÉ[®BC-£Å/´¤27$´â)£Â§²óPÇÂ,±iGF&ÉèeÇ<*ÍÔ_ôÄ%‡Æï(È%®VÕ¢[t¤éž¾ rmüzu¤à®5åÚìÝ…õAXøò(&® ó×jgEÐÑ"‡´¿À!íª@$CRxºy°òª¶àî?&N¶À&r«ŸµlÚWCSÿàqüm +¿> ~í’ú÷~ñ‰ºd„MLÊßô÷¾ŠQ}0Ç‚úfÇ6eNrc„˜pÃ;Ϭ`Òe‚¬ëŽYt*Q‡&6ýÄÂfžñoO[ËÝš¦y”|¶SÂ,;X T¸dˆäµÁŠ×ÛC°O›CÕoýµ»lÃиFÚƒQDÆÚ®xŠ™ûTÆÊ½kÅîÏ¢’æi =)½f}¤"q¹7ë­¥;óαŽF<Ôñ¸#°õáüG£9Kí9­"PØß<ð§¶}‹5ÂÉ}ÛMÈ|vºÜ:çPI€?{ ŸeÍEOœÏûºZ?t⯩!–Ûüµ%gà1¶™šD‡ŒTbDEvúhOËáx\——mêÎ{(g§^œ£güÕ]óñœ¡=ë™[AˆXùϺ‘±—Žvóhèp`üÐÿíµÓ~¡à 7§)96)«JQy²6ŒËØò·¿†úÁnƒ‡ù뚪hqôÂßþ¥ïªxß‚N¹ñèâw†î¢°,$¤GV¹>˜õLÓ”{Ÿ“ÿòg~þÓ3¶Ñâàÿnq[v”IJm1"Ðw€ÝòX_Í\þ?ë Æß«Øª Qvøê`~ðê(4êÈÈåì.rI¾EáPឨؔÿ˜i„ÿ®“Q'fBÍê0äãæ! ˆ­Ì]MSÇ®¦–çÓ +tµÂ]—ì–JF"况¹ž9xŠ]TbŸ@|8;HÛXvÏÜä¯5W¸Èϸ»ÖQøÔ>}·5€Ž‘ÒïöcC~Yí¯ +?Õ3ñ_L¤êC=&ˆÕÉ>ßè 3| lìcSÿ‰Ï95ð˜GþÏ2’*wè•Ú^|ô$­4ÀÔ—pŠžÔ$ý)g+ÙyAæ&€eEà»Rl†ð¥v|Ò¥!RÈn)¡øXS/ÜUH.™ŸeM„C‚MÙœ@Å8çÙ«ãøTU+äÅö ¼§6íkÈ•ÞyH„K + +wÍÂR€ñbµÒVÀÜ× ¸> ›plÔxßúý€ñ'HY[ƒøøÍaìç¹ÚÒÇ…Ÿ|Ÿxé»têÝõTêRkå‹åŽò§Fò-?ûÉ?ãV)åž¡Ÿf gm¾)‚EnŠ ï½ŠšÄ/+DÔ?[ÜæSKýÀ¡¹®Ó£¥ùï “O–YüS‹°ïÈÜ4ºo¬kñqÅ©$—ë<Íɸ=ˆKºr¤2ü½Ûļ}­Ä:Œ +_ê(¼clϽµ6TõÉ.¡ULr îÉ닞î*Ö]àÝ€®ö¨ñy!Ï9OÈQ´AÞÍ5–¿Û3 -‚f—’”oŸ#dîÌS 'Ël.ßq.³Ú*Á§.÷ÃBw™€¶¤T8eØÌÕ¡šCké‡Õ¾ªÈÍñê4ûtuÌ–›6ÁÍ8LM}| äC§‚Rb•órj¹WË!:løö,­Ä©`Á´5ŸVDÀè›Às—ŒZd›@Çl@?®uCÞ¯Ö$YgÙUâD,¹ ìúÊ@yÈÎ,(ÂØpUמpsy¸Š 3÷Aß[Ç áG L„kšîSó½ +&Ä-C%¸æà±ö™ªpECòyaÚ%ëxEðâP‘!;2DüŽ´:Â#‡%. ÿ6Q ÿ^"C¿ú{2똨)µÈÏÏ^Ÿº·ÐÐä’ó Æ.xØ &í|,þ¢‚_ö¨•v³©,ö’©“´9NÊ]î®~½ÚWÜ‹J¼2ÃH½íž%9gyè¥~Fj/!㢼ôiGÆ'¹UôêCt Ç–ú´(À.1in ½Ê½ÈDìëÛ—øõG/™Z§ö û†úÖ-`ýÍW†®ògúÎÊ Ë 6· ~MÌIèždÚQŸÉçY1ç-9OV«Â†ˆI%üÜ—€æsÌb2M½åÏLå϶üý-ÔT 3XûºúžÓÍ&Ù®‘Mq̳`NiÏ·Ð->]4{5´*`¬0^í}= Èk„ì}à÷CMs·wžvÎaSׯªÂ4-…÷–‡á)¥âÈÄmØ–a‹M#È$¯–/<°ÔõyÙ–uÌSË€ï…Í^]CÛÎBCݶŒ^âUÕñµuͧúÚ‚U³2IÍX±óWÆèéÛÓÄ,C7ø#%ûåoàЫ» +"Ò£DgYÅШ•aÐ{CGþ}ë,>{]ÌGYDŒJ€/É'ÆÚú9>gGŽJ·Éªb·$àËpñ;— »g¨å™GXyºüç5óÏjËܾšêg&Ⱦž92 š÷uµMGÚZÞ¾Šƒö)¸è}€A}šºz¯‚tÎ3‘;R2˜—ši|¢w†œåž%å8§qú¶¬»Ú†‚{ænrl+$áÜ6éü|]Þƒ)FÆQtÒÅRÊ%SkÉÛ>y¡µú¥¹“äU (v£fo‘C=45 {õuvµlˆñ+#5á[S˜$y}æ]ï,´§kìðŸƒqˆ iú¦òÝUŸn*zÿý;ç*¥ øWRêó3ÆæÒpÏ.Ó-E'»¥˜4ÛdUäroî«…ºˆË2jÈÙÕŽ’W›“Ä y}ö­Åº¼{+=@çúëšçÿc!VŸè±Å[3%¯< +tî7 N³4ŽþÛÌìÍB"<“¥¯÷d°øC-}ÄLÛ,*UßVòÐ*¢Û%lôBKõ!(örɧ€³Â¢Ïë+îoö€ŸÙ&q½¨ˆ?úáQW»qñÎInõêøí +ãÆ|}q€y¢h®y¿4H)ØQ5 +R±s“áQ01‡Zýt‰'82ñ{,ܫƃÜJ\®GE…-7ï- [cuž´>^öÞ#«þìU Ó»±íˆÔ{ªFXäö(»ÈÜ ¡c.tU†\¢oj¸q׬àà -ë, æ¼ûÓ>Ê„¨¼ lâ!çwUÄâÝE\ñÑ*ƒê6*-btb?-ã~kMÄÍӕƱSÛì`Ëþ~ÞëeA¶ X¸[ŽÏØ5W_òª{q¹°MÅkœbb® xØ °y¹%"ú»_ž"W®Œ ²¼êZö®†ÏÚÕ21{K‚Ï"ÛÔl䎊 wk:'¶f¸äu9ß³À¥mKi¥óõU¯úé׆Љ·,%eüô‡‹mÅ‘ãÈœALôû,,ûPOCêݽĠ˜¨TŸSaŸðçQBÆ¡±®}OW×k“Ò°þû˜®Ê&§oË'À>C]#¿Û7Ä´Òõ rÁ©cÞgìÖì›;5ÿ« a¨kÚÕ0k,€^\›e”ÌÖƒžj:€÷VñµýðÂ]9 á˜ÄÇÛFàÁëýOW:Šî*¸ñçåüœÛ½œò[O/}',ùtË>‰N؃2´€,Ý•O7Ë_lº§ñÉ€>@­LJº‰QׯJ~vºR?èóÈöY.Ü#çÒÜtÉŽc©JqIÐù"VöÝ>BRàêhMÎú.Ë܇ ·  "ÖÇÑñV19{må¯Ç–n— +%M•o&y\ÊúFïb]£o#'K +j±ð·=3_èÑ +…‹}˜XU2Ô©ªå¬LÓ‹§h%wšËcþj+ý}£·ø‘w¶:~O‰,èÆ%^ +¼öÃTC~Üá‡v ç3­³˜¬m ÎÙ$¥!¶©ò(Ÿš<Ðñy¦!xš˜‘qÉÐu-…ûfaçž…Wïös’ +ˆƒ*fqœœ¼9ŹTDø¦–}°Äm>2u.|[­ëõ÷®rj¨Ÿ™Žqûë„Ís´=˜´7¿í*…tç ½Ð_¿Ý:ÿ¸Ö~²Ô\rg±¹úI½ø*(*àÇQbú ë*N^›yCÆN»`鮨*îƒ?©™5»jI=O„&ßþÅÒZ™±»0¤w/ôJŒ-ÃÇf^í¡‘MõsÇú -g°¶ò5§(âÒR4}ON-ÝÇÆY‡I æNÔ{]Sͳ9ZÅ «2À6JÎ3¶B^krnl‹ªCW+^¯ô•¼µ‰PI#‡oOÖD-VÉj‹-µ2r”|tôöpõ§#-¡Ê+§Bv¦)àÓEúTÇ"íH‘I¶Hð¾_°+Ådý­§ãþ»"l?Õñ]I,Ú}´OÖ¤nLaS›QQ7Dô¼Ç«}¸HKgeàBmÆÕYZÂEÀ,þ–~üs‘pg©¹2h€q7÷õÍïV»*Â÷¤~ ƒˆµNÀ£–{ A[c%Ï’â7Ö©²7î9Zéò 4mˆ[ãˆØ#= ul$ ŽŒ$È©™Rsb&ÃÝJD²sõÅÈáhjk Ý~Ù×Ðàû*|c²ê“©3ÿ±œ›tmmþÙ<ŒË¢§(rŸ[§Ð™c”Ìçc¤¬€~JØ“³á€ÆÏ_B…oLabŽM Ò±‘‚?6’j „Š=#±Òmdàþ}áK Æ—UveaÂ'í*j…ßL,Ööèã,9úÊbmƃõªw{2RÁž’R>'(~`èÀ†ºf©E®9L¦¹¯â¾­ôáêpÅs«¤:Ì!'—î(èx†Ïܘ¡”¹Ô<–g‘ÏrÊQ3`‡ðœ·ÎRòüuýR±*|ˆ¿ÔQó^„Mø³»:ôb øÝ aYÐíVH䭘ܓt«É«—ç˜gÂ\j6vOK»üõxåÄ—œ˜k‚|\h-y¤ïGFï,ò…VkUá+Ý.Û¦¢UYt°mAÀöºÏ!‡¦­Œåz”d¤yˆˆþºÌ­ÿg‹ßá3Ò°ÇË´G‰ÈØ´ðæDM‚¢­<Å.ñëFžc†]¶5FL0µV="eüÕU÷k74òç)TÜ…­lmŸ6CK9gª‰ôŠqÉžYL¢×nP‚Hޚ§ëúQäüÇÎq:ißÜ¡ðy\×—hHŸ–Kq«ø›¬Ž$ªÃD6•']_mÃUÌÑ+W:ÊnôÁߙڪž*éyL‚ükŽTôê1… ú|¡µ:æ¦WÁ¨öוpɱ–âgãô¤+ƒ¤„ó¦Þ²Àm"rˆ[‘pvš÷äŸ&ɾ¦Nèâ÷Wdê¯x­hL¿²1R´«d@;‘Q-6%}3Ö÷šýPE*ÚSà³=³ØôíQø§¥ÎªçòFÈ“vtæõQ|Æe÷$ºÑÌK;ò¹ ¶ÞKŒŸç—=l…Ÿ­Ëý½s ™°ØX¨­Ï½ã#âwç‰å»2|Ö‘šTìïŒ/ZÛ^ôDÓ\è–ø¯aÔwÙg±™–QПÿz—“}dÄUüwN÷÷×öÈ8¨CeÇWVÏÚ‘ÒJüû>,íy÷´õ75ÂôÛ»r|‰¬½ô8>à'aч?ö5L´¥nn­~¾ÚQõ°é7þüì™§ƒ= +rET/áÇݲ‹«¿.>¨gbwõ,ÒžžEù{­¶Ë»€ÊY‡¼bd?†'?¿j÷ïgÓá!냕áÖapØ‘‘¹=VªkÊ|0„ýe¹þ± ›ò„˜ùꜘu÷@K‚ê‰àC-¾ø½ÜÄ!§œeŸ#ä:”<Âæ,½Ì«äâ÷¸¤Ó%&áïŽà‹žŽ8|c¸è¹º)ó¶¦2LÉy4‹ý­¥(ô§æÂ3meáç—;*ÂöåtØÆ*g¾6/@Êξb›¡y,Þ%AeíHÑy;2R ÈGËtʉ†ß]bÓ­*:b¾«ä…y }¼Ö";X®ër-pN€é1²ü=O«O—Èh«¸&½yi„ùκiÏi· ™`›¿[.±¿€)ú¯Uз«]³¼êi~µm‚‘»Ñ‹‹\àæß˜ÄÄQ0Î9‡ËÞnõÁbM­/k ¯¹çˆ¹ËCåMÝË]%OL]¹6û¡ï=SŒâ¯€Æû²Ì`ùŒ ¼[ÇDïyœoÀMZa­[ƪÜc–Ê95‡2a­µÚаq U/¦p çÔüì‡*aþ#97çšRXtk¹Ÿàžà]*FÕ¶kAÅícpJÈþ=$Y«Ãøt·4’zQÛR’rdnžpHÉÅ«C°Ð-?8s ü‚/V +3®Ž’B~ÓvÄ^Ñu&^Z*{·7Ï€í/64©Úà‘k£˜Ô/€½üV&ÿÿY™¼ÿ¬“_–0…>"ÞÐYñ‚šzŽ˜öîÌÖ$v²È&ÉU> >ok¨:FÂÎ ” + awžìP@ú†Šç(:Á#¦ä¹g±©)6Ë#%×ìÊÉ`7éÂÆ8êDÃ¥Zä™C¤¸”¸<¯šRõÕT×µ§fÂtlòæ2_þ¸« VhiÈ­Äg0ÿŽŒ—r± öùÒ &öÖÆpu µ²±yŸÎG?¹þó0)ïÃÀ.wd°(§å˜­ŽØUâ¹¥Ãí€ÞœÆ&Ùç(‡šú:Ÿ‚Mد‰Û'”8'ᑚڴ›ƒ°¨‹Ñi2>>úµ•z}•ôû $ü'9îw ÐÂðÐßÚ«"/5UF\Ÿçå>E>¾ø8*à÷-1 ¾2ŠÚœ‚„ù´¤êm)6ÛÐ5d8E™/<²üW‡zLññ—{böŸ7d´<¦ÿ¾ú†OÝWÒ@»³ä\× -_ß ~ª¯‡¾˜eƒ^vUÅí¨Œþ³¶àÓÄó üÜ{;ã5ážY|þöl‹²›zGžj8Ä5—l›¦”=•i¤f®š{±¹âå¼°â©®¸:€ +Ùœ`©êÊîϱ³oÎгž.u–y(@U[ðr¹§:n¡^ J¼ÔN}윦V›º+ž-Kë› ïÖû!!;S°OGüÀf@Á†×C~Ÿ½;12°_–i˜c#:çØO9Ò!RN,Q·€‚¨y¡¿÷ãÒ_îé¸-16u£»<`¹¥ðÎ#ñ/VÎó3¸ø»ß¡>üî•"RÇůYÅ7̽¨Ò)µLÛžs–r^D|uAÓzy¥¯ì½kŽŠtÌ3ढ÷×g8‰oÿ½Ê«ó÷Ë>Õrh{J|Ž]TnhÊ}¦ä$Üöº}„™ó¶Ÿè‘SáÎY\ŽC„ˆÚ®ŠQÔç½â¯(ù×[ËCÜRvVXìï3 +0ûÛ*¯áÔÄfx¤ð„íqÐûõ±Š—þ³'Àú¯ #;ɽ±5†ŠuHéöI\Öö>}G†,a¢  €•!BÒ9íjsñ‡ŸçY7ëKŸo ¡€ïUº-&åz ‘ueŸÎB"|ßü|Ï%EfmˆJ^Û$ÕÉ» 4´UÎåx ‚Öã5^³ÿ ì?[4æÊPÀlÁK»òÄRÛy¸Ìáí/Ó |‰{úyw[àQ KCxÇ,äb‘Šu½üsKÑˉ ÑçbbžBXp»u†Wøæû1jÖeFÎû3Ãðä«:~Õ31>í/5=寕&@;÷?ïÁGüÅ+}óÃ8!éòÖHͧµòJAöÃ…úœÀíÁ¼ ½yDÖ‘‘'<65>Ò혧:¤Œ2Ï<ŸàS×Òvf)ùv6Ö:†ZøÊØ +}Ö +ÿƒ›ò£®ú^ÅHiÙ—T¼ÌÛº†ÌÇr^ÄíiZðÅÅÆÌ ³Ò1ìÞƒGúëc®€C6Š^:Æ‹^lôe½tŠÊü*tŠOI¨4§˜˜í™A%+ñ¥ûrXª[ÏÞ‘`R54¨KJȱš`Í×|={{‚šm”q“ÿš¦$ØéÆÎ " +`Ìäfáõ…è+›ˆU¸ÔRþd ý§°(èçЇ³¦¦ò‡+˜O[Ã<ˆe˜QX$”ì/ˌݕ¯õ¥7Æ1Ù§«uCN))s¤&|}½Ò‰“óJž #.i…ùOÝsäâ|Æ­ÊØ—gça¹6 µX^›paŽy[&ˆ 2÷¤<\`ã…µ¶yj®àÝ•Zòûo.ÿ@ äO¹Ÿ{åkSGþ%/ñ’’—|s†”‡Ê¹ˆM ¿çQò›|jDטuþ'/7ð‡æÂgß[Z³쫈eÖY&8#øÑ/ÜŠˆg‡j2þï5^Ó± ß/~¶:s×%ƒFŸšj›rz’•õHU›ýèÔÈõï®ò*ÉÅ66Ù:†ø¼Ò[ödµ¿âźˆ”BÎþø;*éù/‹¥Ÿ=@<Ý«Š5u}P7æ?îE&üÁÎ~ýÃ4-æªc»#E%mOƒ?úT,@o5 œ,·É9>21é@žø¼:þd úºV?f#SçÛr—餣^ÃÉ2ƒ¼¯Áå~Y¢ Ž8˜U +O³Ë© ­IbæzM¨‚Ÿù@ÎM¼åž©úlÆÅÈø9ç™&‰ÙêªâÏ ãƒ~˜&åXÚ Au%o¡¦Þÿ¡·êõ/c¤O¿"o7‚ùôçú$DÑYò´òûbèó‘ŠK:\ @¶¦Ñ+”|›Œ‡ßÕriv»ZÕqrï®á²< +>É=ˬÜAGéë o.pr/‹ð‰¿OáÒÏ/·c>õÀÓ/‹‰Wtü‚{†Úü;+íA›½•±Žd¢µ¢­+¼¿Ò +Ú›d•yD¤Ô#Ÿìáò å¦´›G3àè¿õ¸‚})2Ñ1 ³t”¸§€uèCÄ9‡ªÂvg¡ŸÓ5á. 2fG‚Mò)˜5¾6j[LαM2 +¬£¼rmsáý1tØ/£ˆ°_gÈÑ—•¼¬«ú¦â»@<û¬mG„vƒãÎ.5T¾Õ5”¾…‡ÕrSïot‚yý,¯‡<í¤]Ýž`#|JMך÷x}¨â­MŒN\}ôª‰¥>-·=C-4"‚í3ˆ¸oÕ~]å7ûÔ,øæ89e¡)ïî ?÷4$Ⱦ‘I6Àƒí³œj§´¥Ö1×H—òÊQ2ßþŠOú³{}±hì†%Úçøô­9l}“º¿È©=^Ôïiy4ë!W.,x:ßTòT×~ãUrø§ËC‡z.Í£¤–;$´2ë4­lSDLµMÑ 7ÄìŠ!äª ›ï[hé[…‡c’þè­üüÓ>õ²±¥(Ð+…Åþ\º6AÏGøµÿêHMÆ|1³èN)*aO-;ÖS0‡:Ê¥`c¬³ôŠÙÚ²çK}°„o7L-Q‘.%&eSûh¯zoƒ¼âQŒ¾‚J û“öúÏåáªÂ:{†qVΉ»¬m*~¨ë¨|gê){·«Bç8Œ¹€0'̸ncKNÌ‚&— +S蘅DØçÐI6)¹À£"V|Ûö;5|Þ#ÿU^Ø­öLü擵ºÁ#Ëßó;K~»cGÉÁîÉi`/ÿþ(6å¯9fÎ%KOù“v¨e“Lcè8}uðŽŒ\¸5Kp+qYNrÇ¡‰ÅÙ–R [Rds’’aSòO6¦ÜZ}ÏÀç17‰¾˜ê»¾x¬#=‡âÕ Øë"jšÕßïpšá¯“`j/¸oæ–ª›aÏ”µ ûRvÁåźܫ+}—kã„8}:x±`é®Í_îi­Xî¦ÅlŒbíE÷ôM9×7újÞï«YH¯š\¾> _CÄ/Õ6kkwLÏí‘r½‹¢O+øtMÝÞEÃ>K/²ÏЋÖqqK­åÏÂü›cäÌK=¸’ Œ¼ø_{™÷$̼»àŸ†Qa?5U¼û¾ õ«Œ_`èÄÄ{ý÷y8ÅŸÏ›Û+C–:Êž|t®ó§„štQÅ/ 44U…¬tâ£äͰø¬à_é¡gÝ3ØÊµÁÒ§Û# WæÎüGÝU¯ê…¼ýIÝXò`]|'êÅíï !.wÂß,Ô•?óo‰09×éi~κù]ÊãKß•¼¾ó½ùsêÇßâŸ}onæ±µôéFé]sÆm)ül]ñ㟆¯Î8'¡1«˜´1rò=]SÑÇ}¾§¤¡Ó”¼Ý9BÖVÑ =üüR{q}šZ8€/xk‚fY@KÍåÁ=ˆ/0ˆÍpÔ7ùz+èýë´TM .MÛZo…E̲ânŠ©açW{Ó«½rXâJOÀ eá^%§ëÁç:fq¥U Ó% +üXO}Yb‘m3¨4€aîlŒ!’wet˜s•,"F\PRî¯÷ToÂ7ñ±öÉzôÖ·Ø>ɇÚÅõ¤1vÅú%ck  hÙ¸Õ~̧íqB‚g^@^ħwVÇ^›fæ†x [c°(—à:=—ê]¤‚·g á;*jÍžNÀ_BE>aÇglöW¼Ô4ÄßµŽW†ØÅؤ•irÀ$Ùv 9wuõi_OGYì~Ÿ»< ·MÁbœb€ÄØßüuCÐq`d›+rÍSÊöµ¤]F¨Þ×s9ÇFçPÇ&ìé¸í9RÁžŽÃ90ðx_L‚úoKlúñ"ä•“óì“„$àOænt°ZX~wwž/ë E«›ïÖ†¨ÆNäûµð‹ÍQÐË•Aðk]gy€¾ òte_hè©Í7wQc¬ÌÂ5ÿ¾íÞ²€í!è[Ç *Ý.EÄ›FË_èz*_ïéùàv9«Ê¥à ¼jyßÐØ{´Ô<â¿¶°³@m‹‘qN9­lcŒ˜fáâæøù7;±gZ!ñ?ËY•÷W{™Y‹-èÏ#¸ÔË õÐw³<èGu#ìݶˆ˜lÓŠÖÆáŸ[ê­ twÎB#8PÎ+{ÄØÇ*Á%¦:vZî%Çé{ ‘ІêWºxØ®ŒÑø÷¡u€_,wW¾!$Þž¤ç(:Éáƒ|L 2#úL_MñCc1vŒZp•Ÿûù{Zò§áãÞþ óöBLÈïµ¹±úÐe7Ñé1gùEágG(É7Øy/ÿ˜ÄGœ›"Eü2€Žøm])È{b›$¨{j"QñO~쮊züÕÈk<Öñ¸¶IÿèskÚ3îÊú0&×4JÉž:»ÐÊ:\¤BöØin-{©ægÜí«ùp¶ôòÇi\Äï«£¤tziôÒÈÇNRÝÓØtëpuðî ,Ò=Uúy’v·¹ìé/2zÂ-'ÀQÄܰs#Ä”à£*ù«…ÅüºD®ÙWb²]’êÄY^ôí1|Ìå!èç>rÊ‹Atô¥izÂýYZÖóÍ>d쮟oCŬJÎÈØê¯IÛ‘ðÈÚTÚÆ9X¿ä­1F鎘 vN2ÌU‘ãØ˜äØûÿFÇ<3õW¥/÷V¾w+üû÷¸ ŸŽ‰4Ú«á22:B*È}°%B'zP%ІòÈ­pˆ‚sm³¿ø™gø|5±ps öࡨMèÃŽ\ecò—º`ô­W[cð×,¡È§`OŒ¼Ú6ÝŽYT¼KFÈ?Ô³¨'÷«‰-ü¶Â«û²Ì/q™GËÎ骠óïuA—[A,þjæÕþÛÂoÔÛ!)",¨âT¬Y¥mÇs35¤Ìén|< “.w5¤ü¦@§_—5¾ž àÚk ßÊfÈESýÄÔ ™\¸ädÖO›ØUA3£|w˜Cþ:ÆmÝ"AVè À34,YÙµënZ힟ž6²æ¬ÔÒE½lÏœ÷ƒËY´ÆŠ•VøŠE-­pÑ@)˜éÇ'ûz0ïôÜÚ{–fð£U-6Ó/*h ¥^u0òï‹ào¦zI™“JfîPOK¶·§%kREÎ8ðÑpG,æ‚—9«E¥,š +V,ôšU»âá6?¬«îõŠºîíÑ(:Ù]:ÞQ~gFÑ©%e_S"Ò~÷°Ën/™¨`£ý^PŸvÉÆ+‰Ysa‹ÆºjŽIêžOõ4¾•7¥ŒËðÉ«vJå–Z77€JY5c˦ØÜã3ç;ndÖ¬ªâéÐÿA-äý¼‘”ïïçäy°p5©ôÑš[6-*½1-.ºåc¥ž÷°3. ¶–…ÄàðE=®hÚ,@u rnˆêâoU|ÔÝœ±nÃ坨ð…3:DÊ. cvÜæÁ~X4ûÕiPìãk["þß ñ¿¦‰ø¢@çÆÄywFÅ%{q9ùožœªüðìÊæ©õûBKïç¹iÅThO»fÃÆžÞ÷Ó1ëÃ\ú”žêÂD-ÛÕÇØ¼b"{q짌Ԣ[vNÙãe±xTC-é!]³¶€_ìyèð㬻E=,nÕ„ÍX0 lÒŠ»½mÙ+•MZº¸>…ШD3†îæy9o˜›p)øÙ²¦êÕº‘4«g–÷ÑËî·7&Ÿm¯ö¡>NvÖ<–>ÚsA2·¼L쬙U3¡¡ä¯y[hܦ57©lÕƒ/\´£Ó§úë"VÍð¤=/ºhÕÉ›6¢§Œ¸4-ôRÙ”veßA«Þ0ÓÀV*x{t1u}ˆÇ×ÑÁŽÖš¨ƒQåËt‹àËt3ÿËñì=7¥jÅFÌ_4s´´¢E «~´õfFAÉZÖ àãÀÏ^~魉ΒÇsýUá^Îű.ð« '­F×\öÈÊ¿Øb ÷†™ØM'²ïÃýsVúy¬&eÉZ}ü?,8¤âA9µ Њ; 0éÛCÔa€‚<š AFð•NLÎÞ0± +ÐÏ„Y%üݲýiÎΜVÔ¾(`o—,¤â]ÀïxX¨ã îÕãÌU/5mh®[0³ë-ÌÚ ‘^±Ó {ƒTèÑ8‡½ão¡-ÍõëÃÂö-?—s|ÿäšK›µQË—­øœe="qËÍÛò´|m—ÃhÄš•‹Y02ÊfäÄäy-9gJCH–“?«éE«^sRK)ðˆÑo‚ÆvjÐ$e-™9€¢UL«pIs:|úñšìû9Ô]À¯Ù_ê#5ŸõYw’À{#l겇ƒÑpJgLôÒu²áaÀn[“7-è‚5+¡jFÝ“K&"Æ)„åÿ5Õܵ pܬ²â¹•ñ‡F‡M¾²ì'€õóF弉‹™3óQË—¬X›¡ zfÅœš”èÆDdÈ·ózrᨊ‘;ÜKËŸÑ1귇מ<¨#䮚ÕÇÔnµòƒöfÄœC@š0wP¼ +I_-§ô‹!³ºæj"vQËÜ´’«ÖÌÆa5[„+¾Ú\•òÛH'!wÉ@Ê ÈÀ\­É—§z ®ÚÈeóv>aÑÝÆY´¬úX¨e;³~ÅÅF¯¸Ùˆ%­bÍŽÍZ6ÔG/Ùé+ƒ´†! !“‰H¿†ËŒ8¹ibÖnÙ¹Ø5+³vÓGk\õPêçŒÚ ]¿îáó¶Gù­›#,<À-ÔãϵnÏG‡ï±pÛ^&|ÁLÈïAEÍkóÆfˆWXêk?“T¼´ö‹™þªˆ%#8®x÷y¬6ew„„Þð‹ºçìRá œžPSK¾Lµ¾N·* ò–žµåiHÚö  öýĪm/©b\y¾dÀdŽ {>\ñ–›Pºÿ¿31¸²UKSÑD/&fc„M[ñ°Fèú¨»âá‘-¤¢ @7¬ØIàE ´h¡C6G„=ë£bõš_ œw2ê¶G„²½q^ÇÖ¶â!UùûˆGÄÄÉ㙫¾¦ê¿fھ͈mGÓmýŸ'ùòý®pïxÈŸP¶€&Ô-eA¾éIŽ&EÚ%:}N ‹ ô@ãF¥³*ä‡A^óš“ÏØnëÜ’¹gl’Ö%3ºfãa§´œ +k+♯ùzBOX²°-íìU{—tk°…²9K[sRÊç¥9¥h;½ðî7?Ÿ¿ékïYõJUËžÎþ€QLðkÛ C=¬´É^•¯‘<#£n9y„)­P'h|dï@½WQKç-|¬¯ 5Ö×”03¬•\óe¬…·ák&¯y9¸)]SÖ¤—¸˜øuowÕÓÆ^v h«.6rÓÍÀï3Ù«ƒ¤º!eÓ'c+4ÌÜ šÔò¡þFÚ‚ÚóÓ‘>yÑÅA¬ 2‘ùʃI®pc ßjouŽÏaJW-ÄymmÔŒªîÕà­­\ü ‚𝦔^œUzÐ Ó}Q ZxìXoý+O;8ð¯·Ý”šmŸƒzZù´šR±dÂBŽÏžMRчãͼEw36hå}.b¯x:åóNi×´•™wðIËŽfÊÁƒôAÙ¬¦ñã¼›ºf§Õoy˜èU[SAPÓx¿„MGMÌœ:÷Þ¼®îݦБ€×ÚðzuÏ^–¨VÜ-ÔU€Ã_–;¡ &ÏéÈE;~^ëÁ˜X¿<Ø*é"=àC’þIõC­‚Õasi˜Ÿ0Ròä" ÁÖ¼<Îö˜¨oÁ +ø*=´<¾>ÈeÌÙ¹¸qs6`hƒÏù°€JΟ0«ÕÃ:97`—:êqY‹F\î¶Úôó8ë¾fÂÆP m¦Ã¹5ÕÌÛåµnNµõoÍ + ;³‚þÝ wÕGCÎÙ( €†”ÐðÌ"rrK}ÆEÀÛ•mq¹£,bÐJ­Ú¤cWÙ¸ ‹Z¹<È@løy£Ê†èqUmØšÐÞ6J冗…ß›à¶[h³ç¬yi°e' µ=&uN˜Sb)ð~˜ëCÜæÝ±–Öýñ¶¾­Ñ6Ù¼‡‰˜µò=”šÕaqÞN,X²4¼?<>>&µ}tºÆ:tA §! ¤¦OjøµÎ^^>¿¾äÌ ›¹7Ècm{Y¸U ½öøžý5@ßlØ0ùë^q»[É*e@“¯”G\;¹c¦âÆe©qÉÍ£Lèé…# +V¶OÊNñ«øÍõçÛªÓ,jô]¿¨k{¨…²ðþñgÂó&võ¤JQ´–¹»(ÉÞöêgA#2mÑB-š˜5+.aBÅ«×wQF´í°€–š½hiÅϘ¤œY{;{ÆÜÜ0$CÆO«éµ³i˘A§pôʱîöÖÌu~Ã(e.ë{øAKsJÎZ°T¼Û%Öï 2оot»ÖܬƠ†œ3¯¥•lºèu»>JÍ–‡T½dgÔ4ÔœY3²hÒ&¤ÔaÕÝM+­fÍÅÆ¬{9øu¶ä`ÔMhHY£€6ßr Çùøcúö¹èj*^ñ0Qëa[ÐØJ´‹9ɦNaæà@;tÞ!­¹E¢+Á£½­V,ø’-›ÔËìÜÊ»cÝ áVÙöxk׆¿™ºìjÁ,Ù˜5KVbÁœ‘°zœ94ÂkuuÃãRxô¬¥£yXÝGÕñªgŽk¸ö„™˜1wòç̽Ö6v«¼äò„ŽGؘ©6Ìßi·ìδ©×G8t fK& Œòa}o‚‚ÜkÏ9Eœqk$èêÕ®x»õ“¦‰YÖYÑßÖ™ÒÏ—&¸º;Êm-„ã=Ìâu´o{¤C½3&ìÝ™àu, ÒácLüö„h`gRêÝ vx¶&´ ‘>gÂä/ rHãv§—žìî¡&TM©ë@/²1 n|ÒÈÅl +¤{SÇÖd»iÅ/”/ òx3BѼ“‰Zö·wn}½õ?mÀ&­z›@[C˜¢Ý1nw\4°Z&u„ì9¥n{¬}`;ÀïØcÓ‚xTƒOžu“k¶§h¤Ãy–xÕÏ ® ñØ;S­òÝQ~ÛÎ8±a7@ǯxÅ"7ÒÓ«Å[;ͨþVyºŠÒòrLÚ ŸUÉéC²æ4k+í•·ƒ—4Õ'­Rk¾ÀÑÝZ`äáÞ¸ùˆäÃQ±~gL$_ñqÉ~-=שlÎvôË1†î¨œ/— pwmLjÞ²®£uÇ#jÛôrs&nu@!®°‰z² ÜîT-·'S€e„⊠þ¡¦Ö…oº;åînÕª»G?ªÁò^¸©³·ÜÑ'«Ñ©Z Ò¾ZM›,ÇÞm x|jkŸYfe)[´år¶2XGz@*E>ê1Âp½ŸÌ‚ +OG88ÀC~ pØO5 Žg…l„rŸ¢½Â!V€\Ê*og[Y6¥Ç~Z°ÊÖ=<Î +Ð×#ZÂÒÆxoaŸŽt3 +Ì|hÒd? 2glÅÎZ¸Ø%Ÿ½*¿Ï´›Co¸P…‡“-Ç{´è· õ3‹ ìs9Û-“TO[;Øë>aû²ñË9>)1e¶Ÿ^¼h]»þ|LFJ ôb³fÔÄÂMŸ³äâç¬-Ð)½1¤TMX N.jÁN¯¼~挑Qâh¯3+°*¡<ßÖÕQâ‘wA¬ÝÝÕV¹–ié6°ŒVf©ç£ÑòÌ×Û‰˜³ŠiKžì¼G™4ì‚›^»îg ×/±ìc"¼€VsóðÃzC¯Kc“ê½vyOM·PžÈç*£dÙS|ƒô +¿Y‘Rþ{S9úJÔV5­çC—œ<Üâ =ã¢TîLò$ÇÙWû“"ýf€Å\j&.Œˆ;nÕcèÄ™ä’rk_Ø!﬙°t2Ç­2¡[Þ óô*qN™Šç”Kð~-0‘@#jlÊŠ‹OÞîÒoŒõïNwØ¶Ç…Š½ ¾äË,·ó0Hgÿk•#û{‰×ÿu–ß·;Éá¬53æ¼í–îV[;#eÂÔF +XÚhƒô‚i—€½3Áâ,¸p¥SBѲK$Þé²®·‰¦Ü\ô¸KÂñšL +£l¸Y!EJš½¹Bšþ+{ÚGT%ªÆÜ.†î%½QnS«Z^KȪ ½+Ë*f ÷ñòƒ†6ôš¿×;çéUÚz&µ¬Q©0ÂåŠñf©dÊ¥ „ËiÚ‹ÀRcÔ¸E…™¦m3–ö2í©’õ=(w½< y j¹€(eŸUÒÚ“×<=ê­á޾‹æUpòìònˆ¦Û€ËÜØÞnVÀ6&·´¯[ŽT‰`¼AÀ¶gPšÔáùä+à|òåI¨Ÿž<Í?v3é‡ÌÈʳ´úž(U³»Â%é‡-[»Ãèâ-?¾|ÌÄkÚ{²º™úx UÕÉê}«•i«´Y>…6cVHGMsoo­²¹ý½‚(|.hD?‚$ÅýªDæåêæe›´mc¸Cq0)<:¯­~»fEäì¶Ég¼º —ZÃÖI%ùý|~œª¥+Ó«´ˆF +þ¤¥GàWuÔôµ´ÆÒª«Ïˉ¤×±$W £Ü0°™Óô%“„5©då5´¢Qácyo]Y>“‚;éèà.ºmÁMªœÖc3ÆŒ¸Ç §úLx1Ïj¡é²y4MbŽÆ79ŸÔ#t×KË…gr2™?fåмÿ .$ôNÌ©âü¦óÔFƃ.ïƒ]!©·Hé³!}ÅÕšeSZ™Ï¬àëtzOªDڮʔv˜Ë]<‹ Ïnj‚Rcªò7–Pž•eãç¦A¯—f•\m‚TÜèã³¢ú¹m °äѨ;ׯ$ªU@—ìŽs[¿Îñûö§8-;ÓóæD§mÅßÙ?í•üÎ~‰N©Æ+$Š’nŽ8FÓÕ_£éÓâäI²J L°ôµfXz™iãæVÊv@jß)æ=m|»ÞСè÷²;äslžhŒ%ûÂk”W‘PÅ5Xm÷¹i¸Ÿ?@ÍÉh>“[¢øåáxÈŸw³x þ¹(}šƒi¾¯·gŒi%Ø «Ré2Úõ*ÍT$B2DÁ<š`?ŸÜ¼‘Œ&øcõ·0ý="ÂpÛÐwµ¦Jv«´X|TÔ}>·Húsh(äÎÝìÄÊP˜í¦D8Z3f2ÈW<é„×0ªk…{õ +nÿ€‹Ëìš.G³g£”é•Ö«Ym¿wŸ+-SÍ+è>ö~âÆ½ì°wØ/ß“Bn>‡üzæyHdDÍÏ%EÜ?ðОۺviÊ´‡›ó´¬ÊVBÉÀ²O5f3[´Ý2?N"Aˆ;Ç$]+$iç¡çHã3ŒÑ\Š-Š@r‡U1*ËÆþZ‘‡¿’ž„øùÙÃøß²ã +îuQä™ÝDÆ}%tM‰Žûu²™bÓ[z}Bwɕޕâ胯Àµ}7«êU÷ÐÔñˆÊZÍŰWàž?/>•[,8›]Úýó“àË×’C®ÞÌ yO=qíQuHø[ÜI,Æö¼§wˆä3«;ç;º¦ÍH¯^Ö¢VùÚÄ=³:½m¿›@þéù‹ÊSñ°¿–*O§åÉ~|÷‘zâÁÓÊÈX‰¨$ö‰kªBî…áCò@Ö_ëL×iMÊgJ‘¢P'¦÷3²üý”Tg¿ %íAsÚgKÈü±„F¼í^A™ðJDs­b¹”OøÇÓ'…'®^‰yø +äe,ä÷›Å!§NÝ ¹w/å¸Vuõc +óôƒ'gSÓšnÈÛ{+–†Eâý‰ÖžõÁfÚ¸ž_çÑ:Í:»L30ÔÕ#°%òµ:o2Õdz€ÆhB dÏ+Þù îü3úMÅéôtâ¹ä¤š 鉹÷­ì²%›?çf!ZIÜc©dˆ¦rð-³±µ¤±Ð¬*åÙø ò‰é”D~h ¹õ¢0ä— ¯C†æ†¼§†„¾††\½—’ò uŠAT>WŠ5 ¯º£ÁÝÛ’eSõJ;‘×é/' –ÓÌ¥ðÊXh9Ês))¯í‘1°I¤R3yÿx—H ¹Vò;p­+÷ Bž½F†<ŽÀŸx‰ú±¬‚±»Ý”ïTÈá³ gÎ&“ŒXº¸FU;¨[ÞWD–Œ¤ƒðã× ¡ƒçrkígãó¤'ŸÆRBþ¸ +¹û¨2$:qâÙ;Rȧ !wÃ!QɼI‚ž¼£ŸŠŒg½*ãKS§m3Ókîbñèí/ m$½Ùk~QÒ÷sD<ãd|–ø×”ìö“Ÿ–‡<¯ÿác2ãǸLþ‰s73B~9rã~IÈÃ(LÈ…›¥'"ßãÏaqúúÞ¡Ž‹Î9k•¶Z„t­ºÆ¸SÒe0U¶SÓÀ\ «Æ ݬC ߪ¬³ü‘[ =“È9•œ)>ñsâÒŸŸBž„C<¯¹t=õDä[è4\ï=…òÐÙŠŒX±3 º.Av§DSÐÒ>’‡å/~®ù*¤¸ô$ºé§'ï0'âÓø?$¥óÿñ:ýË÷òN¼|‹:ñx,"Žòg((äi\Ó‰OÖS™Õîß´ÀÛN‰¥Ô5Ð…X–ªV§:-v}{ï4‰Ú¾R€àLEÀ¾ûÕÃżҎ3/ß@Nþy¿ôÄíg5!÷ÃjC yÓtòEóäÛ,ÙÉÌ*ËEyôy‹0ßÛé…Ú´Í£^Ŭ…ö) +>ý—®|ÅnÉ ˆæ³`Œ¥—9eªß>¤°O=÷Ct<çÄ«(Bȃ'µ!÷WX‡ ûĹÑôÃåPÈ?¼Æý«ü%½Æ{£°FñPÊWæÎ9›éóftJÐD-ô(Û+»øý©mÂáÒfÑd!†6V‡¸ F]/8Χd‰ÿñè<äyTÓ¯bH'Î_þòÛ1'â3Z~ŠIÀœ)ÍÅÞñé»q³vA#ï®’Éðö¾1TsÇD Y0›Œ`Œ†•Ã5W²[~N!ŠHjúñbhΉŸÏ½ +¹û¢¨7úYE-¿5Á:ßËÅÆz·VNœ³ñcjJú°ŠœáV³rúûÚ{F Œ6Ï'}à £û³æ¸õ6 pQýžg…dåó~Ê(•ÿ›%:õ"–ðsì'ÆUÕŠ»D¼ì©ªóf´Ÿž<£'¦-Ùià •‹š05×™äìd¹¬=½Cn‡°:F p4k8–b{#ºeW©.†'}ú¦îǘ$ÂÉ„LÎÉ”öïùµÒëE埬é.âyßÑìÊ1Hu°%§€´5¦ùÕqnÞÝ.uHMõ"™»–)p'Ö"Õ7?æ´}ÈúéÙ[܉§P *O\˜‹;žÈ¹ö¬6ä2ÀQ/ù!ñ%ê-È,g¶Iåh·w´ ã= +è«A»X¥2`øÝƒe¬Þ©JL÷FQ mæyyƒí"¨Îp.­Pøó¥;!×î‡<| ¹ZrùFVHÄ;ä‰Ô,ÁÉüBÑé’ú«G\S@¯æÁØ3±e(Ó‚*韕 ½Wë1ºÛÉeWFÁ~ŽˆƒŸHÊåžJ(j¿˜RÑö ¤ gðŸzûܘ!CtÎɪÝmflO¶öYÄDµÆÉ÷¨,©¿”ÊÖ¿%SäO)¬þ—‚"´¸¶/4£¬ínjó^f1ëœa{ aÚcLsT‹@«U8uݰA1çlçLé)¹³&Bn@Û”6¤a(ÛùɲNEQg¯±œ-PG51•á KxvUÏÍètá…o)¿üù¸êÄ«¸Sñ…âßãK{þ(ÄÞ*¥ ?ÊG«52-y]êaº×ª¢LꈙSêê7Ë6\ùú¯%`Ót:£P¢òQy²¡*²`øœ9÷¶ +7|§ 鸜U.ÿùþ‹º§ÿH¹ñ `sÍQ)Ь(BÔ*ûèU+·œ$xÐÚŠwëµ³Î(R©u¸™¡¢]â,æŠìé ®%GÔ<†cÕOª`ŠÛŸ +8¿Å$á.¥çqoWBºŸqÚ4»ÔAÑš nY/à¿1Ã= ¯íÂÒ{~y}ľ¥Ü Ub¥’ÞL*y· ƼÂLä5R<¥uÒ[©éug°¶kè¦þ»0”ò¶IÍmVç*$ú*K_(h£‚ö‰ÕûCø² &{^O]04¥{e¸(›œWhЫªO¦(”uj‹%–"N³. +Gîy Lj °]pY$/uJcÄ]½IýRM¥[©#Í=”M€t0ÂÀ/»P¹³6:lÌÖÓé1i{­¦¾Fׇèèh‹ã°:ŸcÈ–§Õû£äÂŽ‹1ɬ“Éùm¿FÆ£OE}ÂþŸÇýácaëO ¥mç²ê”@ž°®®¼Ë`mVq!›^lÉ+]²À[#lʸ«ØßÃO•H$)mÊqK•H¦µŠ |‰&•&öfBýoêàÜ{Šì[juõ« zÊì†nhÀ&Æî±š¾ÍÑéÿ\d ¿Îrø£:j®]ßK5˜t­ÓMÓ×U¤’t¤*:Û“{º»Òd}†J™RéîÓ€¥RCaW¿›Øc´tÝ`­ýzÒ@/œ³óPóvÑÞŒðtÀ_/Z)Õkƒ\ÆÊ0Ÿ3åÒ=ú¶:m79¡»¹ú†”y(îUçÑÚ Ń:º%¯Ñž%tÇZmñ„VËV‡ác‹d N¬Ð–ZÝóÜHgׯ¥aÅý´îÁÕí·*÷¦$îÅáΗEÞ¡Öô¡{ý•í]º|aï”ÝîË" ¼IPWsËE&äÓC³+›_Á©Üèµ ã´J~>u¬½0ÂBywÑÚTèï'´\بAŒÒ´V¹•ârZRçTvT¨ÚïBEFŸÈPÔ-4”©:õs×@­·§4Ù/,k„°—ˆ·ïomyè!s^MªØópØ›^&rÒH/öªZŠÌZ²¡oÓë…ÊþH´+M-æ'ÚûùEnmÌ£‘§l=ÜEoeÉ- ®yy¤½.çs ¥y׃.œ?H@÷—„¬)51eZÏ© ˜Û0ƒô¼I› iÜÚNõéZJD ÷”ü†[ò¡µ¯5סéjÖ3òF4M‰As;gÓ%·îy¹ôC:oÛQ½dlŒ™Ö!>̘Õ ¾Ó¼§G7n ‡4¬·Š‘k“·«:{ +d­ý)–:²©IJ¡["šHý $á]:[ÓÒ¦Êuô|ê“I³Æ-ʶMŸÂºæäs¤²ÏC­mGcíÇ36Ð ¿¬ô‰SRvßÞ…ˆ°)û0J™%jUØãihë‚“9=µÕ˜sÕ è9"†rKÐÊ ïmJ5iL×C×2 +·Ý„òmüeˆ‰ží­|ïjNºî¥\ñ)*Ÿù œ +!±ò%¹2ù¢ßÈ$ÏŠ»Æ­-õžjšYFŒ3Hˆo­rFâ ‰_ ðè«*twºEô%È“Í2ŸG°¥_øÚÏBã¶_6£oÊ™ò‰Û‡l2þ”½ƒ½3*n¶ Ö¼|꺃^óÑj¤’y;¹xÆ&@N»d²O+mÕÏ&¬z¤93¹`ÅE©\v` +´õѳÊÚ—ûƒdÔ÷Y‘iëø»v/¹jÎF«¨‘ƒÆÚØE'©bÜ.Äœ^ßßN{ëv*;íZVŽKÙãÖµ;Û S.tÖÎ®Û ð_fý[¾¦ò56ë`’Éø:ß1|8+ñíNp;‚N&Ì©à;ô¼Q€‡ÍÝ ‡^ 5¨:ÀZƒ®¹Oc¡÷+Z‰´éø¥ƒVbÆêW°7ÆáÕÕoý‚Ìk~Iñ‡YuÕ+ £à†¿ “¸ ác–ôÔ²Ù~øûáö¢{cu¬² Qê§÷Së_lY¤¢Ïþö¾£qÝP½ ?]Pƒ_¬šàñV\Ƭ“©!çÞŸéªMûÛO‚¸ái;lö¶›{0D¬_ó’*çìÌê¯ðxî£v/À$½_´liü°á@¦ì Êö¼¤Šý!JmЈÏXµ3!G£ ì÷1*òh”†ØtàŠ¦û‘q½È·“*\üP7úÝŒŽX0§ÇeÏé0I›Nbùq†ôªþqAÛ?¬ýŒ¢ñõ´ùnJMÍíG§î91Çgh<äªÃ!Bå¶{<×´dŽZu0êt ФŸ>¡ÀÍ âGeuá£2ø»€²)aÜ$DúÕí Êæœ) %sÍÑ-_¶‹ë.bý‚¾âý|_ö½ "÷`°…þu¼µû[@¨øzœ3å…¦/ T½Ûq21ûC-œ}?»yÍÏÛ›J¦ì"RÀ&ez4<°­9g`Õ¬[Ùk–&ð¢¥1gÇíyq¥û^:¸žük èujÕ¼?,Î}¸¢¯I9ÃTì Qá› +d¢·&|¬«âõá­yoŒ†^6|3€J™SÔÇí¹1 ãùûƒ„Ê+4fÙ ÿøyŒŠù>C¥l¹ )CíÙwæŽ3 ´µïw¨üM“±;“t⸉œ?¦¦æÍòúÖL°ÄÙ®ŠÇBÐ}Osþ™®Êg{vlþç!:bÁDÛ¸7æô°‚ ¥zVUób²·8t¬3ïÎŒ¬àþ¿MÿN3¹ÿšd †ñõŸ'´osb÷—ñ–ö%mÕûÉöìÛcíyw‚ýåaŸÇ› GóܾíQòËûŸUnÿ÷)¶pÃÒX<¯*ŠšQdÝ ªA¯ŽFðà¿Æ‰ O38Û~;h&—¬º© ûÂý±cšß»5Êf¬8IU“:T¸ŽP°2ÜÞ·à‹ç\ø‚ƒY²2jö‡¨è¯£dÜ—!"âÐ…)ý:„+û¶$tÌ÷–=ØÒáÒìÏ!“në 9w ¤¼u úÓ¶ —µÐMœW!b§õ‘ZΟ{&|ÛÆD­èp™Ó’†·;FLög7¶èЃÎ]¨|ãâ§]”½<é¢ç½ú¿Q6ó»Sº¦)|´Ð—ymC_ö|Û†HÞuÓj÷½œ¦U3©rIûß}B»®¦Ò}*kU_öz^Yò|Ø£y bR”sy¶£àϙβÐYà9 lŠ•zvq &aÛAƒÎöbS×uè”ù¾º×ëÚÆØ2yÏŠü”×¾p4g_P ’Îl™š +¿6³©°u3ìÓ· ´cÃfm›PI{.b™_IÑ3³çˆÌöTÚÐTÇ:ë÷ìàkÆœ¨o£hð¾_tà¥Ôzši;®Ö†“ j‘I«ú’ÈmWMòî(·5ÌÂõðËè§=¾bYS÷> *¾7*̽·c®‰ÙµÖ¿?taóßÕ®ê‘)Vlƶ—R³`@f j$è– ›¿a€'ìÛ“þ/€¯ÿ¿Y: Xã‚MG aß/ìxé°]'´j‚Ä­[àI«æÆ¤*sÓO^5A?Ì«k^QЃXК³ë¨I;<žmiLرc²þoæ}›bóƒÚ†·K:DÊž›Eú¾¥G$íè¡I;&è§e]Ä’·aÁí8‰¥ûNdú¿Æˆõ߇ˆŸˆ´YiöÃeyÑ«¹®ü‡óòüÐÿ,Ð8ß'ÉäU3<%Øß˜±ïnªÛ„ç ¿ŽBA붆ìm7*÷8såû$‹±eAeNö–¼ È +âv]Èê£1ãÛ(²i¬ú¸aGLª ÖÜ ä—I®ø_Aêó‡»=Æ¢nÑÐ;ntÉ—BÝ®—Pµã!ÃWíDðÎd oŠ'^²ga×¼ZP€Ÿ¯(+_®çèØ“ÿo™Áß6ÔFmèãÆºk^êß1“ _˜U;FbΞ•?ÓS÷l®·òÑ‚²êé² +¹4€O×½˜6¼Ú7±ayšqß,Þ²ÖÄ ò’. ±ÎŽò2ÿÜ@dìØhõkhôr?èé²²äɾµ>î³óxîdmìLoEÔDw°NµaŸ½¤êÏ>rý²¶*"Ø›~uQ‘{wÃPùfdžNßwã +wí°ä5]ý›+Ðp´†U<.(¯{èÅ;ƒ­YwFÅ…·¦d¡cÝàÇÐØßW”°¸- üÃ7ó²wfsZ‰;;ÂÍþÓ×’þûœ¶6Î%ÇôB“.Ú¨U;¦¦üuMCÜ’¢ði@˜zÏËN¼4ÌM9?.*º³m"-ª³€÷¼n„ÄíXÉ«ªºÈõþú×ËjH¬†ž~­u&ØW“ú·ŸËýê&€§:óû[ã¯NvÆ^Ýw‚#¾ú™ŸÝ˜’=¦ð8ÃaËÅBlÚXÈ¿ý4ì_RÃÞ±ú½TÊgºpNQù|º»òñªš\¹c"•vÂÓ¶•+ÊŠ°@{î­`OÅ3 _ +öý¤z#;ïÚŒ¢öÍ—!Ríw?‹¸gEgìX wÌàØUuQäºþqÓq|Ï# 5¥‚ÇÍ« ‘+ÆÆ„=©z×+[T•½é)¾7ÙU|{¢»ôî· rÙPýnE +_3V¼ýìÅ~õ`Kþöã«þ;MnúìC‚fúJB×ÍЬocÍÜ[SɆöqµ¿úõº¶i€Ä~¤Ôº›*ç{ËߺiÀšå.õ×ܳÀRçº ÂÖ*âûJö´•Q_½ˆ²%UYÔTwɃ/ƒ Ê=BäîzëÖLਠ¾mG¤ a‹ö}¸ÒUÕ«¯ã˜Z€÷M2i»^RÃâ@]ô„´ tË\»7Dg~gÑ¿O’àG#˜Ê£©áþD‡íû´Èðÿ-߇aùË:ð›ùþò—ë&hÀcăQ*vÑ`† öiß…©8tá@n\Ññ à  +·iªzíïȽ:,*¹9×y½©#å­ çºkŸïèÉ…+LšXWUÕ³•èÛñÎêÇž–Ò+s=°·_œ ز½gC¥ï»Ð9:xÆ_nXÎ_Þª˜¯ž†¤E€zuÒIûpæóñýñ^B©»¯*BAÌúã‹úÛ-ýkUpà©ÿ¸¢)}:)ʺ<)ȹ¸(‡½›èÃ'ŽwÔ>ÚP#?,*¢—Ôõ +š†˜$bJº;..[W7¥OI"»ªßŸRÔ&qQó®Úòî.ËKŸìZa)kx‚™[ð –øûÑñœw5<~¤-çÊHkâ9=ñÜ0;óÚŠüꋞ<è>á×!Aî½£Ñ¦Ú Yéc&ñ´‰”ö›ƒ‘ú[ôí¯ =e/v,¨œ5€SW?,«Ùëz|Ö ™«#Fýf ¾ü}ýæüŒ$óÏ=2}ËF(ž‘!3eõ ÿ dø¶’°bøV™ýl®§àÖ¸¸ô暎YìƒÇÏtÞZ”ÞYë/{<ÈI9g&Äýhå'Á¾’W>~ú‹Êº¨}©lA ðºöõ¼¼êy°·äѺºøå_ÃXÀ5•O*ª#µ”Œó«&lîça +t×ÓTTV‡µ¥Ü\Sƒžo ”?Û·×Å|ÃW{„YG:‹cþ£ ¾ø@­xS•¹‚]7Ö5Eφa>1è »üÍÍ7¦ößÓtú¿'Éè]KcâÚÀm÷T ÏO­™êcèeo.d†]ýÙÞ’÷ú¿SÜ?Gð•kêÊH/1á’ uÖKK8;ß®I¨i…Nõ‚Þü5A@ýß½yφÎùâFçm\:ÚžzmNžwÿh + ßÆÃµˆ¤m'±çm~¡³þßÿ÷0¾q] ŠYêË ´&_úï|KÏÁH‹tÃN„|ÄW|E•íùeûDþ_ èh™7ßWô|RRpçóuœ™þyðX³àr÷¨´™®Ü[{nTÖ¶“µeA&mª#VÊŸ +/˜q~]V`2Æ;ÂG[ËoòJ¯{šK¯ÄU¡Á>DÔ‚³(GÆúØy§»ªž®j`Ñ›ºÆè ¼øÁ¨0ùAÊó +ÐÃ] ,þ›‹Ñ°k"Ì÷Õ¿Ü2àR·Lðºê°M]É“= 8vQ zî`¥ýn§\ß¶A3=U/çå5a˪š×[¦úw+ýàgó]•ƒrx¬’}©»áãéÙ®º¨m1Ó€M *ê^{XY,è˜Ó‹Ýe÷&eðp©èF]â£BIè+¹tÛPóvL˜~ÉÍþpÎJþxÎ×R|wÃH)ý6Ì¡l±é[&Lú®‘ +ÚÀ§ÙˆEkªú·VꇳÜ›SCÜÌKÀ¾¿YÖAb¼Ü´ß7´ Ñ^§¯©+žr’¯LKrž­¨Ë"fºKîMt”½>òŠÄë:{Tˆx3Ä…DMI«ß¹á™‡ŽºËZÐË€¤8´öñ¼÷ÇßclÆ×ã9VÖš÷ÖæÈ+¨çç—zS®îšÏ«¢’ñ9~´·d‡}n¯› 1Z|ÂYLrè/Ø¤ÐŸÔ ±?/÷NÁäÍôWÇ€ný2ÑŽþ7 Ý¿ø³VÔù&ʼnWœô÷gȰŸyÉ—W ØL­àšWPùüÈÛBûâ"”ïÀo‚]ÉW´¸°_l´”ó&jÊ…EuM쎭1u¸5÷þ—A\Å—a@ÿ TG.ø¿¦.}»m*û0"J»ª#&^Ù÷  æÔ•ï':²®¯ª+ÃV”7˪ú¨GCò’š$ƒ§œgçGüôrƶ­±p¦·èáLèá<°Ï[†Ú˜mk=€ß°Üus]Œ‡“vi\šöÿæ‰Äï¸j€Ÿ_ç޵Þñ5gÝø6NB~øÌ'-}m¦¦ÿþu„Jø×4³mÇ­¨²o¯ö—E.)@»æª„WmüçÈx§”HEü6Ú[—òÏùvÏ—@së¶ · Ì¿í¢Çý&®x|ÆÝ’öèËÆ(}~fTŠþâ%WõË÷ÍàWL!Àïy{xÒ¼<ïÖ ?ætäá} g¦”D˜Œ³&JéýE6qN š’U?u5Þv²r¯¸¹Œ Êï.i0ñnAÙC_sÎÕm *}E‰ú¸ª„¿ß·6ĵµ®©~ ðîãÑÖü+Àç˜qkÚú¨ IÊ…á–èÓJ¯£¬Ì Àk>ŒÊkßô"â~ñóª"€š- ö‚ŸDy7ðñgy•‘§[A/NZÈi¿OÈj^ê˜y·M´¼[s +HÔ¨¨äž“žz1 ʾéãçßÀ'鬎95Ø ×3ò>\ö”‡oè’¶´ˆ”mcSÞš–¶iÇ.(ŠïZ.fVŒÓâ²o»ë>^:ØWþb¾§øÉšªüù¦ºò¥‹žtN‹Œ:sÜos= 3…·”Зå5‘çF9I—w ÕQùpÅŸÝ„òôýtsG#$ÎHI[ºú›úŠ×cœÛaރžj ÇñYqX›Vtö¢úf¡¿®€¼Ùч.Ë ÌvÞï(}ºn Ö­›õƒ¢Ê{3=Ç:—;!® óRrÏñËîù[‹ùÛòn‰ +nYðÛftîl7èÁtgÉÓÙÎʨIùãéŽÜ«Êãü´‚×~AΟ3]àðC7éj.ºe§¦^püÐ㯗U Ñ‹Šú·›€·tƒžJbÿXÖÀÓÖM˜ .í;ïÅÝ•oO™° g}>Lvƒß.èqy<ȇ«äüÐ 5wíØ‚@gY¸•’pÍIKþÃM˺ࡥ^8pÁó)¥¯Ïw¡m8›ÊWMÙzÆ%Ðø¤˜ß|- g´¨_Öu%qÿž%"Ö-ˆ¤}7±r¦«üÙŒ¤ðÙœ¤$l¹·< Àü·cm9÷§:³®þ¿%a߇,è*¹·i®‹?ü<î¿gÌÏð,ÀD-j"ç´Õ‘ûÃì÷©Öþ/´fhˆÝ¶Ô|سCR·mDÀÓT8¦yzX\úúð{ö¦‚ãº=ôâKvˆOÿ›u¨oø8Ó]üt—ýð ¸´>ZÉUwKMĆ™V1§†½÷wä_íÇÆý¢@Æüäfç\œ–Ö½ +ªðIúãsX”Œ Ÿ}LÔ6PÛ ½oü´ÛNöû?ÆZ3/„ù—'ÚA÷æÕÐX_kÉ£Ù¾úwÁ¾êg“¼+S‚Â+=5/6õ°Ã¹·õ¸è_¦Dàˆm#¹ÐÇÍ»0"*¾£#gÿɯŒ=¯hŒ½:Ñ~=§A|PR³®i‰Ù×Ƀ²gšw'%µ‘?ª±?é1~dç^ tQÒØµ‰çx5ïÎo™ðUŸ±©ƒÞ£.rL”{k²#ûÚ²²øþ¶7,­yÂÊsrˆW³ xÎÑöüÐ…@ÿtçßd}º(¿®ýî÷É>Ð1ôÝY-*ñòZ2~FXzM^ø`G +v¥„„ï{9 —WgZÉ‘¹ÔÂðßÔ¸·˜ª];*Ï ù°k¬‹ÙÐ@Þ{•1$νíäÿ)jH¿¥B§ÜÞt íß<uäÂî™±E3]ÕïL„Og7Œ¨Œ}È/¬|æçß +´B½œœ“…¿zh׆ÈáÜÖúî³ ´ª‚œÞ¤_’Ï{XïN +R/.ÞfIOl.ÿs+øí‹ýõ Ÿ}ØçGÚò»ØÉw'¤€O鮉ܱQëWôØÌBúï}è”kCmà¨Ù.È›%e]øx'8ÜÉ-}!¬‹>+Å\?$UUuo ä´ jxì¹aÁ£ueÕëõþª×«ºÚ(nuÌ9#§$~ÓKCÌ«Q½ì›nvîS¿¸8z¶·4|S[úæïDù¿§‰ð-eQ×;ÙYõlTº·¤†¾Û|ýª;!)¾½Ü[þmŒ/>öÖ }ÐHOKÚeOKÂå%yMø¶“qä¦5.šP™6nÎÕycÒ’¾)ÓÅÌû݈K8cÄ'žïGEÑbÞœtQ>ý¾$kˆÛ±PŠ­´¬KÇ9E›Ré\/2z ð€ï|ëï?i¯¸³¬BůD7&C¾ó¶a>:šëÂÆ„UÏæd5/Öàf¤ÔÁöÚg]÷_<-Œ53<~MÙÖSÀ[´šÅ^Høœ¬ôÞtwÁý‰NÀ÷ !‘&JÝ„žÊöEVñËœ´ôÞdGÉÃAèÉloCÌì"©¯)ÀŠäK;dÆ07ùüXk¹IÖµ7îâr_Öã-]uò×A*Ê'«l­ùxÎÎ(~ý¯1nÇ®–6Ý‘w}¢-çÒ\èîLwœѮʗAÙÝŠOOOÖ&Þ¿ð× ¶äÈ‹ÎÛµVEÏ÷d?2b£ÎuƒœrÞž^5@bxõ‰WKßÝ9éh.xö× ¼k(}±o*x±g,záeÅý¡¾úÇ(/çÆ®‹T9%«{1Ý]ýjÝϼsÞ¶ ‘½c‡gu7Ö]ö¤»1ñtG}â{Í %1íæd/8rY]—´ ¬LúìB}?žáî¦Ô®ê!±CÂìKA$jN^=/«8ofe^Ñ‘Ÿè,x´süÙŠ•2$ßí¬}µnFd®Ê‹C'…ׯyÎHŠn®jk_ø½ï%Ö$å¶í¨¬¯ÇsÒ‡èè-3,~]UødRôáîd{úƒM"iÓ†Ïw0+nª9çdÐä¿Gé̯ƒd覒èç'>jËtW<›VÕ~<¦’‚:&dTZõlÇ Ïûç ùŸ ™üŸ9áŸSÈ®–eÜÇ_XÖ×ÄÚ¹¹Q¾öìç;ƒèÊýa<ú‹ù×dú[ ^Ñ8ÐWp{ž±Ô_µ¬BDoš°i‡>rõ†ói׆NÛЧ®;´#’¿¸ðE›fRÁ‚ûñÐÅ€. ÆEå·§;+îÍ)@ ‡Øñ—¶”ÐØC 2)®zì¬ ûê¢ÖîÚ)ZXôºço˽³0P6+…®ê7T°—_|ÕÃÎÿ3 ,{¼ÐWýjMÛÕ6lëÙqÑã1aáí=;&wÛ†ËY€½_Ô4Dû%àçÞÖŠ§SÒÚWG^lQO̟脇¯¨›«ghyÁ~Ä» ¢:l¤5÷Ï`où“u€Ÿ¶L¨¤Ï>BùЦêõŠª.vÏÖŒ›îÂeOk¸Y¹×ôM±¿Û) ç?;ÙÈMW3fBýd£^ÜÒbR?ºôЇ+Ú°ÖÇxš ¯;è¥7\¬¢ëËFdêšñiY[p3¶äûH û›—Ú”¾ìCÆž7RR.ÍôŸï8š@ßý-ìïÇ™žÊÚ°U=¾àÐÃcíÚé5Ó]Ð(wkíK ¯*´™uÚ%Z[º¬)y´ Ê{TGï÷ݪ¢òåž¹þãT_Y¸šuIô' k+¿xPyó²Ì;#œwצE)÷ƒ½e‘ó½ ;æ†Äãì]9>é¼…Uqà&Õ|õ¡ wm°Äaaæ úÍoFrÊŸ.nþ]¯üÒÆ­xTÿÌ91ôÈMŸéÈ»;Îÿ_m_÷·d_ì,y¸íD*è¹÷²^\ !e<;½iÂWúHÕ²ð™îÌ»£mÇÅ%·gåu¯fÔïŨÛªÿöÞó«í,ë÷|uŸØÕÕ]]ݺ‚«Ê.ç€m `rÎQ ¡œsŽdãœ39 å„Bd„$”³Á®êîçÎ1sTÏÜ;wæÕ¼˜µ†õ,¶—–ü“ôÛçì³÷÷ó ç¤}âž ¥œÚð ){~kå]ÃU×X뵓ҒËõÏ7@~åž –DÕ¸¢ˆ[¹c¢!v,\œ}ŒZ¨¹ÓrbŒUñ‡í)vÛÖ4­h}œpÓöz~„}ûÛ~VÞOÛR\Y|ŽI‹›¹¶aTî ?ï ûºæã¦¸{•ÏtLÁ³•=y6=*=áo¹ÑãKæßÁ¯!òNÿ›’þsr¹ç`š¾]#¶&¤FfYßÕý8÷ºöÔÒ0БÓìj—\cÌbÿ,¯Ù«âÃVû‰éîiR{ž‘ásÜè› ÏË¿·½®þÑö¢å¸–Óè˜d”/½DŸ·÷®ƒøüJ- +É)ÅkæŸ4œró~·ü vcGß#ñÈÈù®QÂu÷%Ï|rj{œZæ›e6xeœºÔ:æ‡ÍßlR +|R~ÓÊø¹ÅGÇŒ½Å™dýî&ý_”ⲯ}Ó¬úÍ!F±íö\Ì$¢uì¿’Vã‘bsC +|1`Ë\×(9Ë3!™_Òo¬Pòâ::¤¤V$M,X\ÇE8Çp77ú!'Ãmç=ä‚­1VÙKrñSs„º&™¥ŽaÌÇìLT%@oímxÒôÓ5÷ßÂJvÓö ½jøà”’ +—Þ¢nÎ=€_°>§”©ó¼–u î¼2.,¤—0SëIŸ¢nñk®šËö…‚6/a`ü3Ī•~ÄEû4¾8Ä',¾!çéûà§Ç8•_¤Ö=š» ;PŠP ÿlŽ Ò¢z)6×%J­Ud{9%üq„~å_µgwçÉuË<ºå-ú¨ëçCrrÇØ)Ú±´ “&, Bçn 4œ^Õt"¦’=³씨ü{×8¥È3Ë‚{äô† š ú’¯¹_v^Ñ{û¸ùiÑ·1©9ª#ÕÙž×X /Œ¨¹Ä ’ò«ŸADT¿j»ð Ÿõ‰TXýsŠß¸6€K7Ü«ý~¶£ô›ÅgÍgž¬ «9-®ij©´§ê;ŽÚ4¿‚ß¶ÞO¼±þ¦õ¸ánÅ·ì[±<,ÿqÇ@iNXy´¹·ˆ¬)Qí÷ÛÓô:‚P`„e­¿­¿xáÆâkè)Ewéצ§é€aÚ^²K~×^X›à¶øÕퟌӰò~e‚™÷Õ(ãÖŸýJRYHÇn‹š¹˜m-¥Ê­£VÇ8” ž‰‰›¸$PK›VûQY¶÷¤[Ú焌M)­eg‘ÏÜlͰ½(û*d` f±8´ØÙç6ò)+R^“g:Å.ØÛ!±Ô½ÒŘsëC¨«–'U_oÀÓÖ—´=4?(ùóÆû¶‹­ç× qŽif‰OÎo]{¹èü½5ÜrÞp¯à3eGáï•’ ¯P¹ S—Ä™ZoLƪ +JÙÕ®÷„ ÿ£:¢æ!\SÔ"Ë3ØÉ¹û ß8Ç+ýämoí_–žBÏ€ñuÉö¨íÊܶ ¯ÐWRVÝÖ1{ý âlÌÄÇmÏàn¹'‘—#ðK^ 5#*JyLÅøe|ˆâä¸ñ^ó¥°œÕàŸ&æÆô@³ü6¯-.Ó>„¸œ¥W{¦Èyë ŸË„¥«8ðÔúîŠîÚ¯çÖ}íäoŒ /.¼l9e¸[{<ªå@7Ǩk#äÛ©õ7ƒfƒcøû}Ù?M-Èù-®qQ³kJYx‡Ë´¾&fú}~åÝž˜¾[t°"Guä*ÇìÒê+ÈIǵfqJ€|#i:3įþÆ/"]£´R÷1Ï?I*pŒânÛÇ0לÓÄì°¾¾ØO©0=B\µ¾ÀeÃo¯¾n½×`Ê÷—(И™ Ñ?©ÿvñy[fDÝ)Ü– ñ^5£!±ÀBy˜|ûpsZp]–HÝ9I­yAÊûƒGÆlÝ[éy1ñ‰!5«am™1)ºþå”ðê׎áÚsÿXðwç¹D¯Ÿ7‰¸a5 I^·É>C/^Çf,¾†üœš km”QdzŠ»°1"hvNŠ1Y~[PA.µ ¯ÙÞ´±s!¢eC}JVÿ~Öø ñ»à,©pZºw ™y`f":bƒCŠÊ´¡¯¤ÖÛZcKÙY÷•¦½âë ‚x€Zí›%UFÍl¢N@~Á.;Ö/j¼¼4ÂoYîg—™Ÿ.êúÚ~’r+¿RwWŸLÎsV$»‹<ŠKM,ÞRŠqHúv—xìíI|þ"¨‡ õA=Ox¨$`’€†^·ðrruž¾·Úû*¾Øýȧã‘WÆ0×WFñ™Cг–'EŸÙß•ÿuó]ãŽv™[ÚŽYæÖnM°Ë½3 ¶G7|Óøì¨ŠP˜Ô‘ªRcÊ9EÌñi:¨ /á'l/¾Y~W÷íUÝÎa|vDΨÛѲZR׸düFŸ\ŒìrÓx·âOÚî’ÏÖ çèô•·¨ó€uò7†X¥ª{Õ=µñK…Í©°50%„8úÉÙ/±™ŸÞ…œÿt†óÙÖ[ØéFˆY|?c{Üôm(õ;ó|rÂH­ ) E+ý°³¯AîŸÔþ`{‰K›U}î•‘Šcz2ªáA£*F­{{kczfþqÕçÚŽœóÉÉå 'Õ)ï¡N.¼"fºgèe­"ªáBÝS©ùÏ —A]vMÓª“ ÝÝ9ÐŽ“¸¸tÇ örLÁnHh$d¿‚ Ñ?…[ÄÝ ÷õO‡£úÁΨ:JeDN*ŽÈiµaP쳘ñ:Ó6@,N;x®1dºc¨õ¬ý}ãOË/›N@·Í )£„.¿?®»ÉôÌt†” wô¼¶_´ò¾îøæP󙀜P–4 +8  é­ïñ®ZÙÁ’D”0spQ ¾Ø=Õ’1÷¬ô'íÃâ¯ÍÏ,Kz\ +Z‹¢¯é§Ą̊ׄ^ ë¸ôˆŽ÷Ï +#-WÓØÛ~)¥Ð¯ïŽwUÿ ë­M(ùèV€kXÍñ9aÇ"älMQ +¬ïÐi©µ”#sw§Îûøä´r¯”^x·&¦eB>X˜¨ŠÙhy?oy ;Òq1SüÂoŸC/~j¹W÷Óú@ë9_ã‘c–®® +óoiY©ñ2 +ð>%©È5…ã²éŒ}œTèR Q^u7{mŒ×0*lþBó˜|mu¼¶9Ì.ˆ=ì™Ff/¾j:ç˜Fg{5䊘­ã~dAܮښ¦ê…üÚµ=bâr“6h±ž€ž\¿ü¾õÌê ìŒ_ÏFú 킵QR¶s†ZâÑ3[cV!gs”ž·>@ÍvÓ‹À˜o:¨è£òÈG!’Zßyk›¾5Œõ¢åtpªùLX†¼”“ +ƒJÚ5Á*õ)Yáy>Þ£¡Vxd¸,ÇpóÉõ7Ý„_J»p!Å=‰kJŒ\|KÏ_aT8e”’­ \æêäÙ•7­'5=•_¨;‹?ó]ÓK(›côrËsø ýæ¿Ò ?{KÌûËüý–sž1r¾º³á;§â«Ï gvõ·_b{[õãÖ8òúÆâ‚}€psõ=¹`á &}¶³òOA5›³WÞ¶¥Ùž”}nºWñ¥c‘æ“bo„U”² ŠÓê²k7&Ø¥NyÑ­âC“ÈôåwM?ÊÚ ?›í.ø~µqË/g¡’–v[†Ï÷€XrOR 4ݵ_j:s?Ýìo>µ5Šº²ð²ùTXK­›y”€Š‹ªÄ˜ˆAHZyßrVßSú'}WÕ_´…²=.ù.¦À•D5í$ë+b†ª·úO`ÿ.g)¥Û#ÈtÏ$úÖÖ(ìÒÖú²g†Vì– ¡ê'¸Ìû¨Ûÿæ‘RËöÁøI­ç|ÈõL*VÞÕŸX}Wñs¼-}×*€¾ØœhKÛ–"o»¦‘9ëCi)¦ iIÖ%]JRµöAó÷ŽQZE@ÍF^móëMöI|®w†R™šg?i°¶å|ú0¯þ;E$;¤’Ö1–'µ]z9µ5»èW¡²öLP—^$ºïnLÒŠ¶ÞÇŽ)VóÂsØiuWÉçwë¿û§qÚÍO—_·¥Ç¬=OÖ•|E_ë÷Ö×èŒ0’OëùôžO iùX'ÈA%£9>ßÙ±9ɪÜ<›\`bö—x̃å·‰y!ï·íd܆¥aÍòØ]¢­_R¿1Â.MÌ  íI±ùŽÎ½Õ¾Áý»ÑE¡Ð¥¦×mL2J¼³="Ÿ²ë.Èw° ›X¤¶Ú'9#ˆ¼‘I®Š»6.ؘÁ¼ºûb«Ý“ëb‰0IÐÐÅèRó5±›œSð«à '|RTFLËjŒ¸mîiâmÀñåðÿ¾Â-×$êšõUÍ)Ëã²›oЗö'|Xî¼6pÚüJf]j^K`–øUë“æ+ý¨Bç8bŸyÒ·>û¤Ï.í¯0ò_ O›ú*>Ÿfåü»Bÿ瘂X™0uK6&zñ–~QùB?¯he€gfäÚI7U=%y¼òß4¼Š¯¼¸a%½z}”tsu˜YîUˆÑ –ÞÒÝ-ûâúô??ÃþüÏÚîë¿O,ð©nˆlëÇg؇0×|2Z¨aÛSˆtßLëe󓢿®ôן¨@Òv³WF(·Ö†q›#”Rû(µ$¤¡Ö,ñYq#—àAÝ4Ü-ùjåMËY 6l=f}Ú–VrZRš,¬¡Vn 6eZ}·ô¢ö'7È«‹ýœ²!FîïgEÅ_&Uþ1­í~èï(<Ç9‚Ζ·WýÅð°å{`.ól–¶»ö{çh[ÆÖhÓ÷8ì‚{—¿>„ÏÖ=jùy¦«æ+'`_Ç4£Òúªé¸åiãq˳֋kýÐŒÀ,¾&iæ’‹‰äÏÕ)b¶Os§Ý¯æ¡"rMXM®Z퇜÷(Q¹öIÄ5×4&{ÇÌAÛÞÁNoŒãrâ "fHOoõËqEöæs¶g5?˜W}»=ŨŠº„Û3¬&ewíŽQâí ’ÑTâò?XéðT»=†O]º9ÍjˆX{Ÿ¬Œ1Êç^®-õSr^¶^öL‘ªâ 7dìîYcVÚFHY!ƒ„2rQ«Cð«Ž)ôím¡$¨eAâs¬Ö½%I{b¡«wh’m®`%5.hua%µÒ?‹ËñÉRk/1êýúž®mõÓWóoé¹–×ȳ€7ˆwÞÜ]wGAžJ.‰a3±pȉ!/1ç¡æ>"mBTþWEiúÕÑþpoUÜ_är¼|¥GKkšE¬ÄbçÝ¥{ý‘y=²ÀFù€^I,Ü}þÛ5oê’_I- )q·2ì-÷86èÙl×ô¢OJ.Iè;ÛS¤ìåøÕý’/5ÝYŸÚ_¶Þù`ßÂÁëEDŸª‡ãœ4éÖ$§ÿ“¶ëÖè,ŸæÁ½å™»ôõ©nôÖ¤¨qk„W½ÞO¸±j°s í¼{¢-Ã1A(Ý뀭ŽÝ#¬OÞ%oMíÃÔ¬Í!rÖüÓæÔ5Zgì/áç·ß"/:Q—Öú‰×¶&…P¯RŒqO‘rç·]xG¿ýå-ãÏ›o+OÆç˜P'ÐCŽiV¹_!BûèÊ@ëÏö1èyÇxËù¥—•'\-WãFVkjÎÄå1z.¨ãÍõÃG>E; °OVlžÑâSRÊÖ^ÃÏ-½nÉpKiõ›ãÜ*Ý=ôñí)vuXËC¹¥ø×úšñ^Ù—–{Åß8‡ZÓjryˆS¦½Ûtvùº(ªœCÈ4µ¤øóqfÖït]EŸi{J¾vŒó½J~Û죶󪞖´„ƒòÎÀ3ÌK¾däüáæÚŸ&Y9Z|ÖrÒ§áLo‰78¥Ô=l=T‰¨1£ˆ–0 ©Aµ~u‘µØÒ¡f7{u÷úæßânÏö”œUè•á*cfÄ!r{^PaÊí£Ð  ‚Zó¸ú¤önå·Žax†sží—«s"fÂ"áíQ¦¹ß|Ì+cCœãIJ¹‡Ç\#­W‚ w†”ÜÖˆŽKXºîD­Ýw×¥‚æ• d}RÔbz;³Þ¿î•Q›ƒ€¥·gHQx°Üu/5—nHÇB€øzÕ4èæ$¢Ð§ÄçûT´¿Ž^Áç†tÔÆä¢€Ò² 1½câáA_Á Ÿ:'‰Í1F³õ ââr?ìTÜÈhý›½oxׯ%ÇÌLèÁª@°¿È¢Æ´ µi×4±Ìðòƒmu=dââÃ! §Õ‡çéH¿ŽÜ[uì,Kºbó\JPË€­¢3CFVÛ‘ÿeå΢¹·×§éḤŒ×2Íúªî»wÔËÿúŽüó¿ÎŠÒÿmý}ó¹¸QLwKY£ÔÛ[”<Ïòª¬íÂöHóyÛó¼¯twoü>>' m§ÖÙ}ÏÉ[yO»½ü²õ\xvýïfJó¯ËòòTÛUåãªæ_´^ôÊ: މv(Я%ŽQôEwÑg–§Mg²;‚€ìéýí) Â>ˆ½¾9H¸æ–q!>u;ic‚U¬íkþQ+)ÿ|{}94C+êRó"“Ë<Óø,L‚ZxOÏ^~‹O[9îC^ ©9€D”ˆ¡‹ã’1*·ÆÚÎû„¢^HðÈhe«ïªO¬¾-þÉ;IsË™ÕAݽ‡1ãÓŸBŒß–bnì.qˆñ.Î=K-YÁÜØš¤. 2—)7=rNCPËG»¦(ù ï•RŠÜÈk`ì4ÝÏ=ážl>RQK#š.ž_Ó×5ÈËÿTÓWas€RR’zrS\G­ÜT²ðú³}œÙè›e5˜Ÿ»kþ,ï„WöÖŸ³ƒZW²ÛÂZfËò0îšþ9ììÒÄ[OOØ($&,|rDO,õLŠ“V÷ÃZÇݽŎîÅAB޲¯ùŒO) ÇV ø8×$.{¦=ÿkygö§®)øõ]›´ ½á£àⲟ€æn Öõ)°9«-VßAÏ¿Ö1¡qKGûJ?>Óò~.0´vö$Á˜ «påŽØM— ‘íTóaë³"˜u„S2)jH­5—™40‘_ +Ã*RIÂ@iŒëˆ5«oÎÄ,zx±ç‘u˜P`|YŠè@ÿÓ*Ã:to©£Ë§â¢—ß"//<­ÿÎò¤ê·”XèW“kæùÔ°šXçW!rvm,ì¶‚Pº5Ð|jéQýöD†OMkñØ$0xÉI»CC(2½A¦M}wWŒpt>óSóÒêü>Èõ"¨Ë¢ˆ†^“0òÑAµî’rk“ìŠùçmǵ}-_«»›¿UvÔ~g{¿äK]OªJ­“N¼å˜d•mM²ÊçžÔ~#—ÜüWMwÞæA]Ùèo<˜ º=-9GD5~)xG]Ùªý.8Sâ¥üóË‚?©þué4#¨èf¹¦Å°­Qz®GÊoðÎò!>µ<ðÛú„¸›ã‚›Ÿ¼#žþ÷í1LQÜÔ%òë:Y›ã¼J7ØÖ=AÌv¼ƒžÈ‰ O‹¿3ôåýÅ7ƒÍñªøÙݶÓsϰ7bj>äddÒÌDF ”*ŸŸ;÷¼ü‹ùÇ…_¤®ûŽ[ºÚ}ªŠKJÈßžl½WãË’&>6¢gÃÃf³õEói)?ëó¨Üè×32rž–\˜¥GµìÖøŸäU‹\3¤\—”]ÖõuoŽb¯n ´ž‘w•O¸öu`^øÑ&&LíжͶl¦O%¤úU"¼k›¹ö®ìûaú…?Ž2Ó¿pO`ãÝí±½gæ!¡Nl+„èå~èÀxgÖßV~·öºôûÀ,®$nâS“–ÞÎ)JÉú>;amïÜ]êèX¨–Xæk<¿ú®øK¯œ\~1õöz4Œµ1N•OÙËsË;É~5pÑÛ +LŽ[ÎrË©%~-·-uOKJÌ ëØ0¿š *(e;Jî™NØ’²! /I@3Ëwl=O7fÈ•Ö÷-ç,/êN,¿†\ëéÔ1b‡J‚[ãUZ„uvi7}uŒÖ¤zÜpmî,Íò¼á¤k‘QáË]÷A~¶+Ú±… 56ßÝÔqa~ ­Ú>‰¾¶9†¸ÔÓ›ö–Åíí=¯7§5ÚÇÈSö)~ÛÞR׿ÙÛ,0PÁé–ôÍ—¹6t}o{ÊßÖuwêÞr”½ ?í/Iºþáê~w°,hÿ`a"ʶRïxÍÅѺŸCó|Njýí¥QBådwÉû›]Ï>nöî/ó:ƒJtÑF?ìLPÇC5B”wVuËØµëÔÛËŒœ•ÔÜ΃’Z—´Ðt½~Ûò0úÒâ+؉!òÍí^ýúåöâ ÂU'h÷°† KÌ H FÕzg9GÉY¾i^­s‚xks–ÒQ=“­güJô­°>Õ¼¶à jBÞZ{ßpÖ=…Í ªùm+ïP瓤Û.-Ï`—]ØÛF>qo^ÌñªuËï±iöqJöÒ@ëÉù‡eŸû'q·Ó„¼˜’^›4ˆIqÐÇþijIp†^¹g1Ý2Ìu÷4ÐJlvHG.÷«)µ‰96þ`Œ – óÌòZ¦žî©»3¤ã¢z.Â1 »è–!®9'‘·W$x‚^Ñ1›x  ùAæ–s¬åbHAìÍ„Å4í¼¨þÁã¥Aü5û$«.UK½2N}@Šºåñ°= +»²úªùdR/aí/ö>Ž™$,Ï,µŒÅ¦€‚Q»=‰¾éF€1V¡ê«8m}Ñxz èv—’‹°çž&W†T VæYèƒE!/¢g‘–`ù®É–Ë!¥vg±û~x®§;fjçÅM) ¼íœh<÷ÁÆ!ÅŒb@ÅFx”\Èڳίï»ãQ÷òj* b5º¦0¹îLNÔÈn5ˆÖѽ3Äü¨6u_[g{HM*uŒC¯XžþÕú²åTH# ï-õ< +/Jãwê¾Ò<|§–Âf 3bµY#@nk(—šv>µNßcÝA\FûWK?½h76øzržðH›®‡õÔzj¬ª{»Ýª»wVI×íSô²¨Yĉš9˜E!'±Èg‡çXh·’^Ú¤Íkè¾ã7¶ób±osË7ƒ¼Ó£Kw@í [ºû|ÆÞî• ^ýÖ$£ö×Íî—»6gsvÎ9»`}Z}É>T“õË +ƒþ펗{«B¾CN¨´ ÁòÂ&¾hþ4gc¸ h—¶’JhS–O%B9¤ü&ð}EKï1—2n½sVÝV´c‚†vºO+!ºUøæ$){}sy Äñú0á¦}œQ¸>È/õÍta㦨ÃBŠZòr–cœšëšÔ¹¦…Ž V‰s‚’ãC_ީսf{k£~N))úT!Îþ—õ·M'à FãìÒTl…´ü¶Ô˜I™M;zr•_ŽÉ^B\Xz9·9JœŽI³ ¯$´G,ÿ¸ÌÆ,²Ñ! ¥Æ-Eߨ1Rjã&&Іˆ+¡YÔ Ÿž¹«ç¢þ¾Øsïã|ߣ¸¡‹´\¹G#Äm)ŸÕ!Òu×âÊÖ ô"'Q9µvGßÉŽjEP+›\3´¢ùv^0ufvqåmõ÷KïÎLI²ÿ˜ü’_)@¯L³kmý´üˆ¾·;aîîŒèMA.oe é¬¢7ïÏîéæ+‰yFÛîR{{È$"GLBÆ®í·{n!¾YÌÍ€›»5Úrqs¸írØ ¤ìغDLŽW΃¤ÎïšÅŒ¨šÝVRÊ +B¡c²åÚê`ã¹ÔyŽ ]=É…v1àåZŒÚ°1Ï^„^Ú_àQ“6>Ë®¦Vß!ÓÖ¦¹(Ÿ©»;8ß! 1žkçÇ;{vVDbIÂãThß.O÷!® ½÷âÖîÞHj-+£Á>Öš•´°IûËâŽÛÃ)¯ZL_y=¹6„JO,w<ð¨é A½.¨£V{U´ê'ÉÔ9Œ•öY>Ò3KÈM˜Ù¨]Ÿºcãà#@oED¬à˜›ã¡?¬‹;rb•þQË÷>9˜™s°&ìúÛ&G1’ >¨ËóÔ†ëB‰ú ¬€S}î_uOŠÙê|þß=~PE«ùÐvóüj È7œ–€.µ†›—°cób†G%€mÏò›Ý³‚–­ nÕê­À>A-Þ–³ëVÉ×Wú¡çcðk©cy„Ð>…°Í¯ê¤4]àó"«Ü†ÔùרrÏò c¸LÛKèæG-?,<ŸrŒPRz« è¨ú(`çø¼„™‘Sk€†uÄ"ÿ,äEL¦Ä o–SïWqšb ?@†XŸ•~a(ÿÆ1\ñs´ê¤_†ÏóÉYu>5ꕳkƒ:!Î âpu¨ú„c¼ög· ~Õ=¿êÁåÄô"êÎRïÓÔ\£ëSô˜YHqHa×Ó §‚j$ˆ1\¶}äŸ È鄉ٺ1Í©[Ãf‚<‰é©µ!9©ÎŽ[zïy4Œí 2µN°kFˆ5ºŒÙ² †TÕÓQ¿®ò9+JP‡¯Øk½ä˜Âå&»ºã ZXǨhX­!©<¤¦7Æ Ü›ÆX©íUÝËo¡çœR*ü>2ó/ƒŒœ¯CJLqDK¨ Ê¥I«õÀ"bÄ|‚_M«¦îßRw2·F—Éòªp¾9.>±(éú°ÞûæÃ¦ä®c_î7p0©µV=„üÔÒ[Ùuﯽµ&E¬|†CÍm[£çy”Ôê¿mõ¾ÿe³ûUdŽƒˆ˜„½5¡àÖ¤ooM$ܱ2Û*\îÆþ¶GÍÂ$­wž$,Ý€3„~¹f[F® +hФ ™xÃ+üÍ鞺³> ûË&›RC¯Uø¢„‘ Ý1qQ =³yŒ½_,]]ûÖ®®¸YÂÜS°Òº°5NÉñ*„° ²›JSL­k8#§´Ïò›šo6‡ê~ ( E^%¥Ø¯dTí΋–zŸ,uõÆÍ/vKéÅ;:!qßÚ ÚRÂñé9-^u;% î{fEðm½l[FÌ[@_tLnøŒ*ð¹òµ~Ø9û0òŠ_A)|Þä'ç®bÒ—ßCOeÔ²¤¥«3hlg9e´RÇ9ß§æÁüz À8[Ÿ [ß#/-á2§!€®¦ÚÊ£ì®áA}JNƒ{–^æVPK¼JzÅÊ>Ý=˨ˆ›EÔä»üºò[ÇhÃI÷4üêúâRPM.õžZ›áÔÌ¿%¦ÅÀï•Lèú`Ëiûä\@þÛ½•uq=¿kè{7ð° ÞK@m­‹Ìµ³ƒZâ`‰;°Ñ[b&zýÁ2º¿ÔÙ6tr^3F.ôk¸¸}ƒÉe>?bd¶:gˆ¹›äÛÛ³´²è ÷«KÐùq“ÍvÏ"Ëbz`2ô¨—ûÛÄùž‘‹MšEôH*V¤Rç!7uMŸW…ÍsLB.F´¤Š¨‰‹ð)PÏ «Ò1¾a}]óíÆPó©Ä¹zÏJi<°‘[fBÃÇm×Ê#ÆÄ†T|¨_A¯vIÉ…^¯Ù;Ëi¿MØßøDÅi\yÝ|Þ=…ÎY-36övyï9eÝ€‰€æSˆ®1Vñf?þšéQõñå×dz¬ K@­ãÔmÉxõ¦Ø ú‡ïÁwýUÒ*ý³´†Í b è·²“ غ1é¶ÏˆáË#ìÚ¨Æ ˆUF‹} [æQ° >]èêtÈ9 +c„ëöZ‰û·k·¨E µ"®§ÖÝÓT0k@®Å‡uªkð°‚Q½9‚K÷¦Î…ÉIù¶=M¯°®GÔ|X\ÇGö¸¾ò¦îøÆ»– >üJXƒÉy·p± ŽÔÇç…¤„…‹ uÛ'o½ž00 A»Ñ1B¸µgP?¬?çxôõQÄÅm¡,¤óÝ]I[矒֠é+=¦¾Sô=›­A•ˆ´Ô?»5A*L­#ì™a7&AωÙKoQiªîêo¦XYŸ¯¾†€¾©³¾®ý«su+®ã"wŒBâ®…Gø°,ä}XI¶ÌúÕJnì·ãcœc#:Þ¯e@C6nA(5ìnÐÄC{4ŒÆÈBï³kÏý¤‘ƒˆëHe :Ç>Ø–æ™f6ÆM]í;‹=\rP\ü΢äÁ¶ÛaìFÄ„+ŠÍ+ÜrÄM»” ‰Y{ŸÝu'¶ÈÅí-ßy7>)¾dùUí¹Õ×Õç)ÿp¿åÛ¶¼,¹ð«³ýaÄ* uoMÒ—´ X{+’ΟçQàêæ_ÔœÚðý¶”T¼·,âÉûÊ~ÜoËOX˜ˆ6õW+UÚl¯ Åý̬ÜŠoÿ[\/ÄÅô¦3½)¢ÃØÇOxgÑYÐf6:Çÿ£V³W…¾ížfXmÉùÔðÔ"ÐÿE€g«\Ó¤RŸŒZña‘ƒ‰ê1y>Eóy¼åâ¨aWÌK"Ö;K*tIÑ×jÄ-u@J.‰ÎyéŸeU/¾h9¿=ɉ™h »‹LxØÈAÛV +á>];Ù­jÇ»Æ9e›ï‰7TÝE_:FÎg Åî)r±GÅoÝTˆ+âVû¿%¬âÀÜÓølÛëÖS«ƒðKໃ˜²%§—nÉ9µ^å]ÐïoƽêûÝ!CÃ9…ºa~Ró­w†Z3Š)I›XàL­O,g×ûŒ¢Ð\?u_±s{sý}ã ÀçB*^ ˆ9N0†Kʪ +©%d¯”YU3j³„¢­AÄÍAôû.#¤äµÄ´’kŒœ·ü +rj½¿åBX/ŒhpyAºÐ-ƒÞvNó|Ún~ÈØÓá”âr–ßVýà—‘‹ý2V­g‚pûW úqíλÀœ¾5C/ Íu‰ƒs}÷Có}Cæ¾KF,œV}Öö¶!;ªã“]ÓÔüsüyû(»Ò+—`¼r|qL«öɱy¶-?ÎJ>¥ÝúÜú rmk’V8ÛWõ9ÐÁEaîAÜðÏà‹B:bU@O®öj5Am72ßÕåÒÊSĜ䒤cgQ"ŠÎ a=Ñ’kCzMÌÄÃî,ßOÚzØ:ûEÂ}«Ñð11ƒýTã+ÖZNùutHbQÀtÌ´¤‡´˜Ò žìLŠšÛÅáùÇ“±ÅûCá.=d&×î.vÝ *5Ë/ëšáÜøCwÁŸõw +Ϭ¼«ÎÙ_¦Óþæìz9˯ç"÷×»Ÿ‡çù$× ¥|}~mþeÍk£ÐÜ€ŠX thCÂÌANw~½<Ø’½·Ä£ìÎÑ!‘úóÚö‚/µ\ùqí•Oî"3\Aƒ\ÐѪÃz*Ð.„ܘž Xžƒ°Oânº¤¸,Ï49' gVí.¨¿,óh—ØØ„™ÞPR˳욄‡LEİ’ݘ0p` ³9f`!v游–Õ1°[|*:è#N]T'Ć€†òkx-+ã¸ë†§M?úåÔò]3ç99¡ï`%LBÀžäʈ“Òan§˜ÔÓŠ¨‘ ójØ€Y˜eaµP²  ±xáiõ±…‡õ?Þ €=ÔB@ÛÉ kÛÉaÒÝlf"¢&|¹GÏp–›9˜ý…¾ÇÓ½'Û +>Ø?Ô9 ÐîþYÌíõÁÚ K¯ ŽùAƒzÒ_î}îÖñÑ©úX‹à›f5¦iåþiìm 8 ŸÕH(a]ß×­È9‚MŸ{Pýíâ£Úo¾/ˆiéuQ ¢ÚÔB|3hÜ ¦Åtœ–íID¦õYÑW O ¿«é°kß³ÄBG{PÇ‚øU|\ÄØ)º—™0Òꂲ¶ÌˆŽZëc0lwWî€|}ßoê„̽½A=PP˳ ý´Ì×$£|s˜‘‹1Ž våjÝ·Ž±¦ŸíèK[#Œ"ç¯1(ã@ÃJÂ>A+X|ƒN kElø­QXšsŒåWÓkcbwE(HXî<›:…Û@OîbílÜœNtJÉù%¾pwžû¸$à€q“´võÄíÌ[ïÓ ý"zÔÉÆ€æ·s/·ü`{¿ŠÞ’´vtï.wÞI.ñY»K=Oã AlžGHZ¹´˜™KŠ4J·gÛ.'Aœ¸'I·ãØÛÓÔ¦¨ŽGýe©ýî?6ÙÜ„]霦T,P²–ÞS³CÆ»/¼.h³²€šÙ¶·ÈïúuUÀÎ2ëÝ“€gp·ìˆ´°žÑšÒ!mêøäüÚ0üæò¾vc– ›Û;wA¬G ÄâŽT´ÆÀÁB;ÿƒUÂOÎ ˆ)!wm°õç÷?z†Û®ÄÕØòƒE.þòDøaE"Ú±r±A u3°´  Râ²bZF펑‹ŒƒxŽ8­qÀ9» BÚ3² A .? e7ùÕlPÛÍõÎöÐÃ!*nà gT¬ºˆŽÕ7r;f%Æ»ùeù÷ÓÜKÿbîÎÿSÔ@9ž ky8¿šõÈ9õž)d{œR`{Rñì«ww#2ˬŽNMÎñh;V+¶ÀÃüÔÒ2ê£fB…_ÝxÅ?[{Ê9Þt* +X`ÇÜ)I˜î¿ô(iuÖ·5?­ôWŸöHa·’fZ+àÉP[óm#Ø+[RF5`µî š×fy9¹ô¢òÇ„ŽT¹gæ ¢ZÔ1‰*\îm6JÊö(;©• Í1IÈ›í)þbJ˜÷ïž j^p@L êÖ8`œÜí]³€7òµÚ>\}fs ê¯v91ÇA'æï½Œšzº‚Z>2r™_‘ÚÄ•‘ÒµäFTXÀJÌšÍFEt¾³ÃÆÜÊᆢ«éGÛ“æŸbjäõä<¹nß&ä†ô"â¶ŒYP·}Ê^¶_ÓÃÙšÄgÏ?©úÚü°ê ó£ª/ÁXnÜ]èì‰[ÄÜÝ%1gáÎ#·ö×ìä2霠æÔBtÌÜ%ÙIųMr' a§æDƒï®ô½ß[iïý°Âc¹fE O~Nêù uÝK˜%÷¢Fݯî¤E]˜©£}oIÜþ«½ã˜ È¥!-»õêX[ààƒZЪåAµf×ÊFXâPö¬´¶¨ŽT³9 =í™ÁÞþ¸Ú~/¨¡5¬ 6X}_ýóÖ(< øHüÙ±3×÷(¢ïésƒX +-ŠøûöÞw ^É©ûNF_˜ï!/ÄÁXÝ1ÒZ¢&96GGmM¢Ó}f}ØÀ†y¦7m/«¾3>ÊùlÓ°3G(q1PO÷Ì|ÂÁB‡ho¡«= c7[ß·×?(ù£¶'ëß—Ÿýa‘Gú¸"‘|X•ˆw,Têþ帚‰«©9ô²crakvÑ+'æFôÌúËBîDZp×" F©ûZ.y”â Ðæ» 7i‘pv- >Û‚¼J €þ*È%Q ¹"¬¦ÕûT¬úõqlÎÒû–kÛcؼä<êœn¹ºÜ_ÿ³#µÖ·LÐêSv3\Ó¬êÕ×È›áirqhšT¸ñ¶ñ¼RxõówÕ'vÌ|âÎbWoÔrçž_ßNs*ðyM—ý³ØrŸuÃ+E^÷ÈPù[S˜|ZBòë:8ñùÁ®MÌI]øúš¶5‚ÉõíÑ‘Á%W»d¸[^£*ibÓ&Z£_ɶ>/ýÒú¬ü{ï üzTG« èÄ÷,¯Ñ>Î,¶½#ß²iÛ¥øòvÌD,O˜…”È=»‹€z"ób¦s–‡Ø¢”8Fñ7ÝRdêx_ê˜U¡WK(Þ[á³ö–ºïÇ-BftžÕ–X2Â:Ú¯d5ùd”J·Ÿë×` w¸¤ý•žÉÕS%£Ö¯¡ÕÆLlLÂÄFº'0¹–gõ— *ÎmMâÊš{w¼Ê¾å ®`i°-óãfﻑK­#»o\bBUmW3 ȉ…¾çÉ…®¾ †Xæ–Á3\ÓmWÜ2ä­ykÏFn>Xc3¿%ç5=ÓS3ëƒÓm7çïå}9ÛžõÇå÷µ§¶ s9-›c¤Býú¯WßÃnºg•1k×Bk +*™‚§Å è®IÂØï’ ¬ëæŠù5ò¢åeãiП·~]c“–ؘ}—3²¡ûówîîèÚéq ½Ú=9»ö¦é„sy%$'Ä4øü}3º»À#$æxèyyh¾°–XâEÜŽ1eÉyZ3“’ õ#:Æ#|;ˆ8ïj=el=â²°KSÌÄÇD?Æ^TËl )ñ9~¾`k ™ÓPëSÇyrX†Ô÷,§Ö%å7lMòj6úq—­a?I¿—rs?_{Ùp&i"UíYXð€š\êœÁgþkhq%>9,}u õ´c•eÔ$ïÄ==~­»1NÌ^íGel´ÝŒ+‰Å ¥:tËÖdêZ_ì͈šs±k wÛ~ðÎ`s×á÷–X¸}+‹Ò  ýJbeÌÄ„…縈ùÞ3¢²ø—¹>Œ¼âš€^™Hõ»‹ Ì®AŒÎÑÛ¶@NµO!¯ÇD\ŸŽ ÝšD]uO£¯‡¤Š*ì×Mÿãš°3`dÓJEjÞG0{À¸m[ë‡]œZ~u’Õݤ ÖG±¹¦—ͧÖ&°%•aƒ˜¹9ŒÍÞ|×tÚ7Ýt0SiÂÂ#}Øè~¶³ ànN´]rÉð%!—–°°±^üºWlO(u)áW·å¨¬ýeq;`#qØÄi‹Í±ñûË‚ö]+—’Ðj¢BuhŽöšyŸ‘ö©µž)Üõµ7 ',ËO.¾k)vžèé©kPà¶wøê{ÐFsµ£7iv ÌæÈ,±`Ž…ú¸(díÍq‘I3áÕP+|j Þ#ï$€z +â +y#±Ðvk×F¬>°1{ |ò¾¹§7¢d6DTÔŠ˜ŠÝœP +Qa¹|ýmÕq}×¥OWŸ” «IeÉ>i±³+aâÀíSÐK‹o‹¿ðKÏ%ô„Â}3 ¶gÂ:nk u'A°?A9*Ó=bRJÌñÊ©% «1angFf'L|tPE«\}?ç““ +wæøø9Åôò½±svã-¿:0Íz•\í«9çž‚dx"”KÆoŽé»ø1CÄ>Ū€³g +ö–øìÝ%è2vÀÈ‚/ !Ó¼“èÚ¿YÕYÿWû{LV"¥ñÔÔÚ] —ªI‹€âš ÝòËIù;sxt<„SJȱ<®ý!¢"–$Íôæ=+~°ÈÂx¤ðó£êVÞb3bf ?¾(bǘ°ˆ–PÚôFDOÍãÿêdr¾»×=Ën\&eÆ#•Øœ¨‘ã›mÉÔÞ»õ¥cšÐPê‚zZ Ð^BŸ–VíUò#&Z}ÜÈj\ +‰š@2Âoyfá×.é`µï=¨Ã>%¥tß*`~\æ³bZbÍ⣆ӛ/+­¼.ûίÄþ²ÞñèãF×Ó– sMQJA?Ö­qê“£J“ ®)Ì-¿†R“\lïÚ_êyºÇ Úͯ&V%ØФ)ôÊŽ‰Ò³pÑ‘6n0v@Ÿ† ¬¶ †T³·Âå­(9X¡!lTˆWE-Û#ßò)8­Q#Ÿ²¿Üó4ir| §oËHy^­ÔuD|O[„]‰ªYM Ü=­ýèB°„Ÿ3¡o;¦[ÏÆ@}ò*Yõ9£Ì¯¢U|\aãÿ±Åå|ܤ£“ Ôfç$"Ý>€¸–3ë# +Â?C) Ìbó¬/«¿W·ç}¾ùºé4ÐÏ­l`¿<À|L@+@„µ¬¦]3­.¢i¹R6œ (×ý +FeH+º•<À+Œš­‰–³šžÜß­¿œðO§î‹ã\(ì-0€_ë÷¬bö®EHj%›ÃåÇ—Þ}éÂ_ Ít`Cª>aH/&†S5UF«Š«ù¸So`%¼{qÕ;CÈõ+xÍVî¼:Xézq1³  ¶“b!À×»:62¬ T¸F×ÉÈe¿®ˆ;bs ÈžKÜ_æÂzfSHÅ…$çWkˆ%ö¡ÆŸãZ|Å/ÖñŽ^ÂØEf8Ç!§S÷±mŽ’²ìc쿲ƒ¸>Å®\!dxg(Åž)báG+—ô÷U!ÿƒG‚|⟥WDÔ]œ¤±[´>HÌPu53É-ÿhÉËIS'oÏÚÑŸR¶d„ÜÅwдhê8 `½­Iø•ÑÖ3›#-gˆIs׸õ™26/æú•Ô²TIê9m!yë%Çpé7Ë/ó?'¤¬vÜ9Xízì bóæö )?f‘bs<¬í=ìlÔÌ#ümSÜýë +äK:ô+"чe1ÅŽit†}Š˜³Ôù‚ZžÐq0(uÿ±Â@ÿÇŸ˜C,¿©ùné*-dà“ƒuc}e¶£èËfúïm¯.Ä lÌ/ëâ®_7„íñ9,5§Àž•Où°$à6+zO8þφΛ_…å˜ü_×ü›¢¯[º<Øx][úüóš/½£¤‚=Cky—5-Êý*¡KÕFUDÆ©ýjßÞ©zÇL(ñɰ7ürF5È]1 «£bÁê@þg¶×9¿OÍÇ5°[S× ¦Ž¯;d´âµ1Âõ­Jî/ lÔÿ¶Î"ì.j}êºsöÉ¢¯@žKû¸"ïZ…tÿ,¡`õ]õ1ÇH݉¸’Qs`”Ð÷Úy>«!>'¦î-ô=Ú³õ> ›¸hçdó©ÍÁºc~îvÒÔÎþ°Üu?>ÇÇÆÍ|ìǵŽ;» LHŽ¿½þ¶ö„ª+ý“ùû…ð óa…þhÿ ‘Z}°*`ÿjwïYÛ ÀÚ #½y{²õÂ8;íŸÍó¾Ý3q)£pÌIûpÃO)ê:ÐðóÜ b¶WE.µOc3Âz!!i’&fSXK­Øi=µ9ÜtâÀJ¬ü`e€±Ê†¦Ž­û^ «x­q-¿-i¹ÛD©Œèé@÷³ê$ü«D˜uß%'µÛžb7VÿÇF÷‹_–ùlïL[†c¬å¼s +u% +j9è+ÒÆ(îÆzj‚qTá¾EÒþ·IÇ`¸°]`yYüWuoÖ§QùÑÙ3°»"䦎‡gH@;ÝýÕÙñäƒKÙ›c·ö¨X~ƒ:çS2ö.ZySÿÓ'íŸL÷ó¾vŽ4^úMîÿ/bÈÿ¿wàÿ+;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9l†ôÿ±ªcÿEìw'NÒ±(.êHÉ''rKÓàuŠÃű?©úäâb.›[@ÂpI :Š-:v¼uéÂå«Ç.ÖáPÔc§þsËc`£cÕlDoÖcPTÜécçÀ¦7Áã“ÆÔ÷f¦¾7ÍãkP\ðú¾™‡Ÿù¿½}ª‘NGÑpØc¿½{ ¼}ìòåôÓŸ\:– AêÜ'<ð”vìÒoÿ "ð¢ üAo Ž¥]:Vy Úvé6µ}Ý'ç323Óed\O?FK½¸ríBƵÿ|]ñ¿¾¾úÛsÅÿÜþÿùú·íéÿ×σ'ÖÿÜ‹´Ô^üÖ|E$*îÆþù›sÿg[ž:Ú¦ø“‹8> ƒË¯l)?©úzìüoÍù›'©?þ—ʼráJFFÚµcmÇ._J~]K9Küû™ÔÿÏýçÌcWÁn¤eþ¶×WýöŸœ8ñÛŽ¦‚àÆ±ÌôË—3>”þ[XÇÆjD#!”Ü&ß,«Ñ«f´DŒŒ–]+µ)nÀ•†”øâˆžV™c·Å-"fPËjuɹ>¥Ô?˨Šéøè£ˆ7HèÑq¡©%³RSÓºäüç½z}_èÇ„f‰±0®%•†U¨› “6Ü2>x0v‹} +A›WJ/õLco¤©e°·£rzy\)D$í¬µ!j™cŒY5pÚ|JLζ yÍ1Þz1¬Ä—ïX¨%>?¦£Õ'Ì\ìμ˜Ó3#jjEHM-sŽa2â*&䣵³39ÇÃEµœ¶˜ADOZÅœèå–“ ìãð4ï>'8èJèÅ´ˆZ€ ÍJˆîq!<®êf€?#˜Ë®ÈÏ[ýÕßú'ÚÒjVãŽV„OEä­ Dúú›¦ŽØyÇ0ìŠ}¨þd`æÿ é­¿ãºÒ5ÿYßYsçNßž{Ò÷¦;t'tÛqbfe1333¨D–ef’A²ŠŬâÃU%9Ý3Ç÷=™jy-YRÚû}Ÿçóì³vûaø å¤]'HÏŠË2s²ZÌ©fQ^£ +÷›»’6“4>cämMªšvÆ¥M„·« ®§u‹êr>%^Ò­ìDlâÊÌ¿8c•Õ$fÅW²vi5îV- W}±ö¦î{ÒÍ/Ï{ÔÜÝ N•óëÌÉú(ûôæ¯u˜×¨Œ[ù—wf8çÒ0FdP) ¢ZâUs6gùeÑ¡†o1‡š™q*X › ŒŠhµùyó R ˆ ‚…ûl2 ïÌ:8+ç<îâ^Æœ¼Ò½0¼_P#&üŠNÌ'iA|Ò–”ƒ%ã–A9õˆªIŸŠ— õ¸G ó"o'ý*îU v¬Ü¢­YÖyÄ%k%²ŽÝFú6f܃÷ÍGŒf"l2'ÞŽMѧÜúC}FCj ôܤBýO(W7áÕË ŸŠ› ËYôqÖ¨OÜ€ûeí¹°VNÀÏdæÄ˜KÍÅ=×ñ N–‹è4ù˜Ñ‚eˆ‡SŠù8•Y7ûrjŽsnk’S2{­ü‡à]æÙ”­Ûˆ{èc—™çÖ_2îŒ Îã^˰р…ä Ü'¬Dlì"Ü!¨¦‚÷“%m⊵1Öѵ îÙŒOÅ\yÃ:žœ’–ãv¨·AŠºíé9ö¹Ô,ëlܪlZV\A=–.Ìc±$¬ÐS­?d­mG'óî`œE²„UT‘´)Z¯Y›±©Û·FØGWž4}¾õºí`jªý0>+(¦lꎬCÖ8l:ókÿ­¦/¡;Q—ª#1Ýzxõå¥÷¶Þ”ÿsr.‘EáÖñ0¯N€yô"®‰ðèŸGËEé£&í¼"Ê'm"}²–\P¯*ÄôFÜgP@ IÒ6yCrZ^…;•­Ô_|‚qtåEù'{e͘ÊÞ¿ÒóY³8>Î;³ù¢éËÅû%ï­?«ù›aF縗R6Á•±¾Ó¿±÷}€M+Ú)Ÿ^Ÿlû)öðÂ­Š‡ +é5¤WÖBze¨‹y:dçœʴ§åxÂÑv’>º ó©9(hNÖ)ªÂý‚Š\ˆ_• +k²öù­‰¶Ÿ»’™÷ <,„žã%;éàoÏ1OìØ˜§P—šµë¾½«%#Jý'õÉÐÀ ,Øw7åSó²^IÆÅ+N{äm9úh†RcÈ¢‚f á7¿N’Ëÿ\VÊrað«y¤[\‡ÍÒÇ+Û³>³ ñêdôaTÌÜú¥í›“ ßlLÔ~±9YÿUÊνyQ¸—ñå¯G¥ŸPÛs;ÌSôÖ‹÷>IOò/å‚Z)Õ©ð€¼ƒð«¸0wšBРɇ´§èÜ|Ã?µ9.<Ÿt([wܒƉޢw×^òÎS.£¬à·XÒnQýê«Ê7^×|š²*š@9xÐlJ»ÕœqŒhŠ[Ò÷ŠëqûÂÎTÛ¡•WÍ_mOñ.¦ÝzÑÚ¸àâÂ㶯7†ø'R£ªšìŒè +jå^LO³ÏlŒtü`¿VþÇÕW¬ã»º3a“To5Ø®?€Ì1.SAq æWaÐ;¼ ö„”¿g€ôu™0·A„ºM¸[P™?z9à;ÂÔÇ)AœŠvÜmV§ìšÎø„¦³ëX¸]Þ°5Úü]èÎéßxÎÿÌ;1©jØœÚ~Å;‘xÅ=ŽÍp/lÔ~ºùýùgõ_:oU~¹ßtˆpjDYÐþ­1ÆÑÕç ?$ÆÛOSnn1åê¨íEõº.{s!õ¨X¨Ç G€†ƒºõþÅC ý1ƒ…š7õS1S7Ö)ð°J°>ù°¾=2[0]…W_a©ëf~Á|-î¾½'&<¢ª´µí0æn;ЏÛOÆmõûã¶–Ãôñi˜ܧbcY 5~våç€F·þ¸6RóifVÜ÷_}D»²n3e—6d¢ZÔ+mE]Êö\Ä`$Â*º\Xè}š‹ö?G]–ŒOÍÇÜ*À+ÏG¤dXÊF}¬¢m·hÇ*o^Ÿ­Xzÿ± ÕüsYÆG½âZÄ¥hÉûEõ»~Ö%ô3åT3`^ØT¸÷.4èÀóZ“vn â6 ^~UÊÅ¿²1Ñz8x·äãÕÇìs¹àÍéí7’â•ããì“9¯¤>çTåü’&Â#m ü5éï2ã^£uëY›¼·©ZÈ_êOÞº6Ë»8w­âýø¸¬wgÙåÍ)'¿45Ë8K8…u}t^™qËš6cÖßpãP7‰ i)2+«B­ÂÜI+Ì/Ã<ò,`P.¾bÝiøhí÷ÄâSþ‰ÍüS™iqYb‚{fç ûhbœw6kW .I]ôE˾—|èÏînðq4¥lŒ˜GPNxEÕ ×M¹h†W'Ä¡.0—Y¹ ½¾·!næ¹”µýpÆÎ>‹8ù%8h{Æ!­MÎ*jw&%eñq!ô¥àR|¼ãÈ֫ƯâÃ?`³²šõ×mûÖ^²%ÆDÖ_ Ϥ†åÅËOk>u\;õ›È½’?#sÒZÊ¥—Q>ƒr>¶ÞªîØ Z®åa>vfÚ-¿(ù`m¤úÓøtÇÑø,ÿRÆI·£d yCΧ“Sƒ¶2™À³D@ÚNø•LÔ-­'<ÊŽ¼WÃÍÃX|üÒ|ˆy÷µO–|ÞQD@­­Ž¶ìONtݾx;¯×¿…ZA –³NYêÑ +P—–ƒ‡"nQ%¼C„5ÒÜ¢ù:Ó*‰ˆNMDŒè‹~< `d=P QlwAoÞ]Ðjs1‚„þÙï}œ Íô1wi+¯¨àW w£*i!ª”bJ’¶¥lüb ˜*ãUÐÇMR(ïÓ ¸s1ÎP>Isü&iפl]JÜÛeÌ´úè%Ä£faàY¿´ñ):v—Ì7sóZ-\TXê~›µf¬³0ÇU˜_™JYI—°rñ çØò¨àl.Ôsã—#cjY.¤×Q ¤—_Ž9nŽ6~·9Æ:NTüBÌr‹wõ‘aË5dVÕ¾°XHú(x'¯8iãœOÙ—7G¹Ç·Fy§¢¯Û¨Ú¾ø_¯Eþ„Œ謞•¥§Ç7@ß—_5|6ÿ´á“䤨tM‚ÂûRÀÌ$h êl=’ž­ý&3WÿMz®å‡ôLç1Ä-oÙ˜“6l޲NíG;rvÃ2&Ì[]b†q45Óy$;Ë<¾<ÜòýX÷ùßynÖ|I:Œ²¬C\¹5Ö²oéiÕ‡K+Þ_zTù—­aÖÑ¥7ŒÃ]Ü}ÿ¶pwn×mÖ’ 9¯2AEÒÊ>¿=Ç>“° AóTÜÍÀi›´†Ö–BXÎ,À{ç¢r”3qx*Œ5é¾þ÷YºaìX„WÞŽUoÔòBLÚ™‹¶f™§·ÆÄ%oC݃o5º· ‚ÌÕx 5Û¸/9 kg!}âZÒ¯`äBZi.dÔaþî~ü—ã‚»¯ÀY¨Ó´[Pšr ËÑ ¬Šª„TD#¥¹ ™»ñ€VL… šÝyƒñí¢Á²;¯Q4ª\z6¹j™òw÷Q¾[Tdp4í,,è´¹y•„€1…þ«"|²VÒ§à^5·àïÌC@`#Nq%èÒÈ3—P°2iãžÇüUÚ)oMÚÅdP#ÊEzîäc–›ôÑ*»Kú®Ü¼œE…õÔ¢JAÌkÔH2Q¨÷N.<0ôvÙ| ˜L™vÑœ9,Úu½5õbP}­­2] he#î’Ôf¬¬Ó)+ç\ÖÅ»‚øD (hê»OF®¾Èú ª¤C|léù9dîùç¼ÞœvñÊýOÊÞG]}×輊ºÀéc¤\òfÊ'¨L[›¬Wü}õMÕ'k Ý+“†vÿSö±Ågí2³¢RÈU¨MјšVÕ‹½lújñiíßò!ätIé6dÂC• ßçb_DœŒ³i[ÓÁå¡òV†Z¿ÍÎ)Û0¿F¼1Â>–±Š«Ó6Ðß­ñöCKÏZ¾öÞªþËuöÁÿ9£­ø™Ò¶%'„—SãÌ£©‰Î£éiîùÔ4÷\|¼ó'ÔÆ-N[™ç³~PóSV~ÑöDÇ‘øT+Ìó|rŽqbkrøtÇaëí¢?».¾ÿ6$íÜ K;0d¡9Þ…iÎ™Ô ÷\jš}jåMë~ÿãÚ/Öß°ÏãÀsú¸W›°<5Ã>»1ÒðåÒÓÊ¿ÅGYÇW_u¼É=ô¿Ã7š¿­ä¢ ©)6ü.aî‘·ƒf7ÓºJA–ŸïÈ?d}nrŽW”žåœEA«3Àž0;îå]¡‚:unI%#ü–^"ÐÝ—‡ú$‚²Ôýœ®Yz]ûéö¸°86÷¡!q´ü¢&ðÿÊ ¬âæ^κ¸Ex€_™‹JÚ + “T°ÿæëD} }ziØ[Л +QØKfËÇ &xq¿š‹¸/z œDD{av—´ÚŸW ý{Kz ’´d\¬sôQA$Ìo>`Ð`I-ŒBA6ÈÂ#0î0%âUâ>ú¸si}Ú%,Ï…5r*ª×SQƒ!· 7@ Gxà#š\Ì`¦tðFî{L„ºàýŒýù˜©/Þ¯> +ò¢Y7d½À‚ÀMÛSG1·ŠAúõ•Å5¨SµM{«¼ò˜1é¾ lgÎ@¾É¸´ü]ø½˜SÚ”µIjw¦àº¬J!îë¾JW†Ã|Ò¾‘… q´[yuå/óŠþ¸5Ñ~dÇ&«]QÕÎݬû›÷FÝgˆMÙ”ž–¦fD%[£¢óôq[‘Ç-_l sÏìFtšIÁÅ­IQä%þÊHÓ÷Û“u_íL×|‘škØo؇ÌÑ5¤ng…îµ|C8LJ®q *†Êÿ¼Sö®÷jÙ<=Úy&Þ–ûn•~´>Ô¼×+k£\Òz ®ss¤ùÛµ—ÕŸ¬¾¨ú|àýv&0§²#Pr(¿¼=>°ñ¦õûµáºÏüw/¿·ú´fÿÏaA-y‡ O}—²ŠJR³‚¢íqæ‘IÖ Ô)¬ ½ÒFÄ54-(&¼z ê”5¬´|ç¿uù¿6_µíÛfŠÞmþ“·ï†tj”f&‡ª“tdyÙ@ù´¢”ƒ_œvA††\šjÄ»óÆž—¸n~6k võSP¸¼g¶ùPÆÉ*¢–%L"Ú} ZúA»åh3ôZ;NgWd^)V +²aÔ¬àgÈ{Qƒ™>¾ô¨r€°° îx»Â¯ úŸ ¹å*꾎Â瀹®M;…å¸f8si´ñ«hI!*çæ£9ä 6æÖ`~Q6³~µ²‘6îê'‚:3¨ð|H-Vb~YkaQ%ËÍ+!«Å¹ˆFú%­ˆW ¾®•“ÀŠÿ2xHÌ›rJwfاÒÁ„ÖdŸV˜ß™až$}²N¾ŸŠš,dD§#B2æî’Ο·Ü¤ý%7o¾šöËÏkuDDΤ}fwžÎH¦.2hÔ’À³Tz%ª7‚?Šñ ´5mWÐÙ(ã“wì8¸—![ÃxôÞ¥¢}rKæÛD@-N;•ñ9þeÔk2çý]=Y›¬)m…±_'#7çè\™ñHëh=H:DU‰9Á¥$ðU|‚{!;+k"ƒjAÚ«ìX· +‹?Y{Á:NøT¬IƉ촰43©mÛ×4,¿P—®[¡/¿¬ÇŽ4‡B.]zU÷Yz–qsBô‹þ•±)èó”•wym¼ãÇ­ÞÒaѧgÔ-©YIùÖ(çlb‚99Æ»@̉Ê«¬výUó~ïõ¢ÿ\j;ýÑ€Íñ.bÀ1ñqÖñÑæ}©Éð¶öÃ0Ýö8÷4éÑòƒÛ¡®ë ·†“šažJNÕZ›æœÌs”›qš¿-!£û$gEÙ9EáQq)оBXÉ£‚ÂÚÄ\ã¾ôœ¬uu;Â"ðÏÊÌœ´›“Ö6q9š„Ø›“­G–_×E8ÔÂ¥—` wj˜˜˜É¯âþc^oxÓ«E;~ÉòÖaÄ©P‘Þ{˜WÁJÎо"ªFÝ*µ¨Ñ1½j“OFôZ<ÜZ­×b>nYÖQÿ}ÖÕr8ëe¡AAu4·0|³Ü·zàÕ÷ ¾ú¬Sò ÜÊBT +| ª‚9åÂf ½fI¯MÒky¹ˆV‘ýˆÏ ¯à>aíèu>¢b^iSÚÉ»œ†Ì’ð¨vðQ7ðUhð5‹ÈÙDHÒLE$­$ýoHÎÄBòÎ-}¬¯AK„®O 顃 œ €^ŸuŠÊ—¼…ðš4;VÆ©ø\Ç à0!åï½õKÞõ«ØÀ›ô1Ð" á碖ëð™uið’^G õ?ÈEûžÐG¢îÿåbR}d}aAo¤=õj0*})°Vw~¾g^«ÎEt*ܧÑÇiûž7ÿ0Üwñ…`÷ÍÝØÀí¾‘ Š›6'xgV†U;Ó]*2t}<œ…ûôrÄ}}(åzèMù¯=Ϻ”˜_+$ÂF#1u!s›5˜»ÛŒ{ŒàOÐãVöÙÍYö©­ ÁÂ¥áQµ0>É>“”×böþÞÔ´™¿3­mÙ˜”—mC-­½lÞ·=Ê$ü7Þ¡î›T¤k…L‚Œžu«:©p÷ ÐG îÖ‰p—I‡Ìª%DXÜL„Dõù˜¤=SË÷ºn€žš] 衦MÀK–k{1cW.¬‘~­¸¼´7o ƒ]½Í=ÀÕ¸Û('¼jÌs}>ð ‘õ$¼ß—ñèňǤA½7W§ÔÍë¢K˜WÞ±Óªö ^Ö÷æb*1ñ› ˆïöl +; LFµÒ|D-Ù£Y-l2â£&åb—ħš"ÝZy.põ!å7›SviMÚ¬  õ+Y…Ëøc>¢Sãî;Ó˜gð èêƒU˜ƒ9¡æ»ïîÑkmó:}Æ)iW4ƒæžÆÜâº<Œa>Ü÷°x™‹tõѱ©Zv¦Å%ù ©+åP‹7&•ÍiGßÕ”óöÈŽãîdÊ{c ê4 ‡ l}’{nÛjPl¹{úæßÈ ïšôD@+ÃAS±ä'›²s÷t'¬fY|VÝHùŒjʯW‚¯óˆ_Ž”7›h†ŒÏðΧ§$g—aýµ¬8=u cCzê<ŒÔœ‚ »~Yþq|²ã4â‘4.?cÆf-Jè=ÐÉ)¿IûŒš¤UÕ¹òªóÐÆÆOc‹K;÷g&Äy„•™öÅœ—^»S0H—¬yi¨êãÅGUÃì’æ䘥'Õm¾¬û&3É8›ƒ9/xTl>çÚëš}+¿MΈ+—ž¶|æœÎ¹4’=`·ðÛ€ò¸¤jm¬ur†}²¨tcLPœókDoÇ¡Ôù°F |Î^Ÿl9¸ôªáóÔ”¤<íÕ*ÃÛ¾Ýx,)Ææúvá3¼Feέ¡y£ÿ^ɇÁgÞC&˜—§ªcå%ëÇÌŒ†‘uX 83 Vq¯¢ q‹k'šömÏr.“¾¾[iwwoÊ©f¾k:CëèÈü¨KÙ‰XÍòìÜ[ˆCÏ'|JRòȰ‚SXPJß®¨5?¯¨”X_„ļf=¼ ¤ß¨.D»h-ÆzU4öí‚y +)xwç9šm §I†Ú |ÌiRѵµ»Ø¾eéÃ~©Éîþ„]ËDüFݦMÍ¿Dl]Š\H'ÏE•<Ì+kJ:„ådTÁÉ-(øDÈ Çý÷ãNysÊ«•‚îšñ0d%Ú{ +fÖ£l¶”Qw¤ñiuá5ëÈ€¥Ÿðwu"¦îÝEº°`è†üÏÏzDðYúnfݽW3n£” uõææ»ïäú_ÀJôî…ðç°^µ:Þyñû«ÿ <À!Â×^#ž›x gŠè”y˜ïB鬧 k¤ôš–ç~Ã!ûõ¶“;ŽÛ“ë¶›—¦-² ›ŽŽÖ~õjÄ)—¢=ð å3Ô+kE|²æ¬OцÒ÷¥=Z!îéˆÏ™¥«ãâ¢BØÒ¿»`ì-,ªxHÅE\:~Ö©îHÌI*³uç¦]Òê¬ûdkXÜ´ƒü´ôg÷n0c^™ZõIr†S¼6Ÿ0¬8û97p óuue½JFÚ©hM;å ÛÓ’²•WŒC[ãüsÞ§­G•ßÙzÉ)Ù éZ–RP§ˆGP¹9Ѹß{óÄ,<(û+f×%æ„eëÏÛV5‹rkY»°< y8>Ñ~hñIÙÇkO¾ ¿n?u_|üèÍö {Á«Ï€ñUDPÁÁ £¥mâʤµí'ÔÉ)F}’–ЃšOòIËÛe‘ËXô:)擵lM1NnŽ1Nà.5/î´:*?Øx¢a¡®{Ó˜r€MÞL{`rJVî¼Vò³çü‰7¬‹+SüK“]åGgºAWn“á«Ci‡¼…ö•ŒCT±:Ñ~lg†_F€f$æ4i»Žûn ãþ{ˆÏÒŸ¥½Ã«b§f¥éY#e³hW†€%:Ñn¤kp7Ú5øó²±úD‚‡ø5iwç Èž-)»†³:Ê+†Ÿ«/D¯¾ "¯ÉpÿS*Ò}ƒöÈÕmgÛqÔÍ+ÁZj5Š×U`¶ž;…clŸõU°ÿf}Ñò¸¨8öTt<çìí¡ï¹õÀxYŠW ÙfQ§Ç ŸÄ]Ò¶UðÒ”K';•q»¨ ñ©xУ:ð'ݧ»p ¨[Íñ?lü:9}ìHOAAÎ6RQ5d õ‹êÉpW߯¬Ž³2¦¬†é‡lr›Šv]%£]}ù£zÄPˆêuñYNåˆöôg謥7ì»·~Šú{®å¢=÷©HÿSšßÞ.J9¤_Ò4ÿ¬åDž笒”÷ÚК­G³2Ó%Š»º ùXïƒ|TgHÙ$M[SÜ ¸G\—žå¡^IS¸—ÖÊÁ˜àëˆ[ËM@.ßš––‚‡_ß]4vçURø¬Œ¤UÇÈ:õ<ø,í‘5/·òß®ÿ8>!n,ĺ®¥AÚi”ü¢wnÈ=VU;æÔ°aÎ.©/þ–°Z4 ›ªm{VTœvHk ³4dìòzÄ¡jËØt,÷£ŽCÏE§~½ò¤ý½†Žzé¼$ªÞ±³ÏmŽw^xT÷uj‚%çÕŠQ†—‘])Ø» ñ)yóÂPÇ÷˜ ²•CÞJ8¥M™a±íVí§Æú¯ÿûLWù…ˆùzÒ-®Ézd-¤W//M&"Ðv*9Sÿ]r¶íÇÍ—5/8¹%TLܱmgžFzýŒ¹ÔLð„vÒ«ż’µaÆ1tΨ¥@3wæx— k»Y‘µš¥éIUkvJÙ’™S·Ùž4/­øü·Éqƒ† ¾ŒÛô¢…!îñŒ 4÷ûé5Ž,ôØÊ+ÁɬUËÅüzMÚ¡¦]FyÖ¥aè{^`aàê…±Žó·Ú÷ÿÖwÃÝ7Q‚IU<ŒÞò˾ •˜ +éó/اŸ«NÿÞy­ò³Btà¸>œñ^½—r!WwõíÆL½»Àg„WÖœ¶JÊQ»ºskydHÜœ«¥d êŒ÷=@á÷oÙ9çV'8'â“Êš‚¯Ë‚zÄõ„_ÉÝôÜ¥‚&#nÓ!­ÝrHjÖgÅË£œÓI‡ŠážDÜ&5é{BÆ@ÛÍ–l@#Êxåm‰9QéÂãÐö¸º‘ÖL"l¹ŠøzˆˆÞDD̽dØ`ÈG42Ð þÒ˜ªjyTVš ŒðÒ»ÈXßjÞÜGÐ{ÀûsašôAÖ÷ mÛÍë³Ìóx ï!ºãÊú¯Ã{›ˆ0§4ëT~¼PƒÃõ#£ w]ÅÃýÈHÏ,(gÁõq‰ÎüvQg¤ Cƒj7Úû<¹Ÿ¯Ì¸•íˆW\(ïÈE5ʽ%=ígú^+1÷¤ìznÚ¥eoY…e ÃÍß&Þ endstream endobj 30 0 obj <>stream +pN"Vy=Ô ì”uš”ä™,x4æÔ²“³â²íqÁ9`ž’ä´ø + +Þ±6Â<²úŒ±?=«¨Ë8dµÉiyƪhLÌ(j–^óO¥&¥?µŠŸç5*š£)`@ÈQRÊgÖCvéJÍ)Zâ3ÒÊÔœ¤"1Æ9A‹ffe5¸S'Þ£Ù¼~s¬óHìAý'«k>Š¿n;€Ïkût2zo°£"ﵘò¾.cvN\•£×y¥¨£íXÁÏ)Ûš¬û2Ó¤¯û:îêÒ£NqOÁüì.(…{ önT. ×ª·Åˆ»¯?Å\·F0ïà“ŒCÙ¶9ÚòýÒóÖo£OÇ|wX'ˆ ¹'íÑJÖ¡ÆÒÖÛÏçÍ—„ßÒƒø;sDzöYÄÎ/¢ü*â“4dÀmîž^Ä©ãÑ÷fãÓÒŠ8èÙêXÝw±Û•_íùuê

Iã.pP!"íÀ|Ì‹ñÙÊÏq§¨.²  ôظûú‰ kTÂݘ‚[ˆÈ˜“qac¸úïÉi^1Ìó©X|>2ÖûVKBžCÃmÊ«dοa]VåàçQÈâ)—^BD P«Z)d$a!¨ä ×v¬ 3 ܘ Ì׳!µñÓû¯,àYÝ7ˆ0ÍÀc0·¨W/Ãü}wân“~Ã*.+ĺoåé×¼åF^Ä/{ïøU„WÔœ ÷>ˆ»ŒŠm›Yù_“QÈë‹Æþ\T-#Cj P°NÖE2¬Õ’ ú® ÷ra¡çÁîêÕIjÁr‹ii.å]=à±÷òQsw.bî£×› Z5•0²>Np ›ŠªDÔ¼Î@Λz².5óˆÇ „zÑ{Ð0¯´usšy&>',Aè}ON-ws\Z’žUƒ^CM‚ßì…µ9?ûÊÆXé—KÏŠß[^÷9Js‡]V›¥uÌe”Ò9õªÙôúÆnHÊ̤m»À‘P–4½fVTŠ;Mò­IEÝÖŒ¸‚Þ¶>\ûåæHÃAtNÒ´6u¡6aj–fmÀü6Ugvªâ‹øpÑÉ7ßâã©€¼“ðˆj0»° +sÊ;ÐÙþ.t®K–vòˆŠ?LL¶Boð«óA9'Ok¤KÖqª¹P[s1S?5b^ÆYÔͼôœŽ‰Ø-:`^ÖÆ:—ži;BO%›¾ÿŠº­Y›¨œðhù4‹à%¨W†€¿á~A5âÕô½éÐÀPÊÛÓ—ñößÉxnOþþ{©xŸ’Iy¥-Y»¸†€zC]&"Øs“¯'"¿ÔÓíÝy½q7,gQ~~îc_Þ +›ö"¢&ÜÇ*I:9W2N½’ +AKéõ>úÞ¡ZLxÄM˜KXMú•lÈ µÛsmÇРވFºo¥A" WfÁ°˜V“ °ŠÈ€¸‰ÊÛÉè}°ç5v£>yæ•4>auÖÁ+Ùœî8º1Ë9ELýø¼JJÀ÷‘ëSXè®8ñ%°U?³ÜÈÇúžå¡Véµ<2j0aa9cwÁÐã †9èÞ[ìy@¯gì.hU{‹*Ô­la˜}j¥˜{% ©€ oŒûÍר˜Î˜›WÉÑ«zy®æ›ÂBïãübÏC`¹]𪽅þWÀúµ´ +*¢×åèk‰šzè=h@ÔrBž é”» &È#:=ð–,ã–ÔÒëÐyà»|4t(ãåoN·AÝÒúZ·mâšù!æÌŒŽ³=˜ó‰QWë±Ätõ—+¯.}k9ŽZµ¤OÅYzÕ~+¨¢üf¼Œ ›´z{–{!1Ûy<ã”PAÐü¨Á÷ò«æ‡[÷a¶nLŒº5ÜíñÖCÑÅ﮽¬þwˆšrµ >Ñz0keœÉÓ{ô‚ZéÎHù'ñ‘ªý¸•W“ó©ù˜[To¡÷x}•²²ÎÇç¯%ˆæ{¼íîT°ótÆõÊ;³vI=}Oq+Y0O×R.9°³´e/&éx·íEܽ˜RH†…7óRÆ!(ÃÝvjZÝš™Ôv¤gDe¸¿ýL>$6Q zßüN¿e•%¦uLÂ=øóÕñ îÅÄï +åш !u‹j3­‡w&›÷Sp̈́רA]Z.áW°0°ˆñ€¤eo^£Ø›7XÒY²³´üÉl¦×´wáU̹ ŒCò¯_Ö<ÖQ˜W+òK½Ï‰h÷z}¶Ñé~^T+ß.(o伬³íÄÎlõ;³M`ü+âvNIʦb“ÞùPÿýœß¨OÛMI»ºs{VZ»=Ó~*ë3hw<&ÕdK$8ð¾£– ýH¨íý;p¿ŠL$"éœV‹²nqæSrò1C÷Þ’ÖHÍK˜HHPCƤL|^Ð5ØO†oÙñè-ÚOÍw –û^½]í-,úɨF…TBòÿõƒ–¤÷ GM}ÿX¶ÜÂ:"(iËEùeøÕ+£GV~1╵¯Î±Ï¢ô¾‡ù¾çÔ|ÿK"fì&¢j9–v !Nm& è,,tß##F3ãÞñŒiµÛ3uÈ¥zpÐa"d4@_Ðui„ÞèÏÇ´ª\È †ÏÄ€Å$òŽ·0/ã{ˆ€šO×a~Oa^gÚ[2ß £:]Êź°3Ññ#0¿† +uPY¿sÈÙ¤»ëZÁßw{7hî†Üܾúºã`bFTCïO‡|ÊD]õF5âÑk€MýäÍIÈÛ6ÖÙí þEÄ>x/5gV¤g4­É1IEvRP9¡¦ lM±N¤§Gó^íÔâÒ0›IGx,¤ßÒG¯Ñû²Qè ÒÆ¾” +Ç\ø|XsþÊ¡WÂz-áS²QŸ‚± º–±Jj ŒMÈØE¯Ù„_v(€žüsI!¡¬+)ë òË=d~9æáS>YGÚ-¨¢9òÁ3Ù‰¿"VµtoQß÷ó¢Þ ~®ˆ»TŒ¸[Ü›`‰;UœTjË&k ]–îœkðiÁß}5ãà—nM´Ú©ÿ"1Ý~÷éÄ[ÓªÆ)e Œ±³ÜÙʘdt8 kÃýò6„^ï ˜»2>?a“ÔA–ȇ ZŠfË r4ÿJÊË." fve¼ü’VŸ…ZAü=×ó }C…E­.ëÕb9ó+…ùˆLü–”J`ÊÎù±†/–ÇÔ­I÷¤Ý>b±dœ=½iÇõÇY÷õ!𙞤W'Z±«ZVf¥eDxà%l”ŒXXß,ƒxÈr•ŒôÒú?H†Õ ÷"êSË +‹=°˜œŸ ó*3~^iÚÍ)B£ÜrÏE ÈÎ\ࣖÕWí•yë¾&¼% õ[ÉF|zE©ag}*öŽKR·ãU´myåM3â²]Û]È£”_É"i!¦–Ðõ¿5%¸¸1-¼ y¤4c“UçB oA“¾uª˜¤ÏÒGß[#Âý©XÏ]Èzðv%z³2Æ)ZxÞv°6÷%ooI)),(Doé{Ó‹} jåá¯æ¢F3päUÐêja`Œ¤ŸĂº¸CP•…yBBFÝæ¬´w_½ƒúnŒ ¾;tÎúLZ® ‹è 8ä`2l†œe± !,|s u`ƒ‹j© ´5n÷)¹d üÔ.®_›RÔd<ýwˆÐà0½öVXî),Zî–ºn“ïí‚i€6D‚–tàŽ_¸:‚„-76ZîŽ[Ã"CòÎ݈°q7,nßžáœÝƒLô諟£ji!$kG<âÚèÎæ8óäÎ$ëT.(i-D´J˜/ y Ývbas& “gÁ +ôÚ8½ï%f0Ñë¹°,æÖK³vU+âVu >j͘¤WÖ +žÚH?Û’¬MÕž¶KmUzÏ?Pñ(ð:KCOÊɈVQXÔ›v—Œ}dL¯G £^eYc×gPÂ\õáz®š}ˇºúPпÕQöÑ¥¡¶ï6FÚ~~n"<yÊ¡âlMIÊÒÖ¾®ô\—u© _ÊÚâVÆ›÷g¬âªœÓ¨Ù‹˜ºæ_ÔØž7 ³.4ê +У{1µ¢“2þ±,d=²¦•1YI|NÝLß'=òfÌɇ|Î-Ç\ÀÖ6Qn—Ô€£óa­ sËèûLT®Ï©æü=T°çV>b¾ºSÉÒ.ö%z&p“®/ÄoÑJ/ämúù„9qåÆkæ‘ÍQÖI"À­Dܬ ô}È\èÚKÜߟޯ•pJj0`ü<ŒP éûÛ0Ç­¿dXow’uÒkŸÛ3âª\Öd=œKiŸ°Š~>‚ôÕù`÷pm?AïqŠ™zs0Ÿ»KøºZvÈO;~¢×äÿ Ù“Š© ·HZÈ0hÔÜÞ’ÎøU•êçe¥<”³s!•xwÑ4˜[6]/,›oæÌ7 F,»K]·öVÌwr‹:ÑHw¬¢Rðã"Ôs3ÐËÒ>K7í}¼J3P˜óUTÈlÉAîB]½ÙPï-$xc ŽÑ®(dXºɘB²0VÿÍÆ„ž›t<ñ§ýw]©`×pÕuø}½ù%Ð\à²|T¯£Ÿ_ÁBæž”÷¾ õ=À€AÀŸúè,$ÍIãlÊÆ¼ˆz$oç]ÿ\2¾ê`,4¤ÂÒ6"(nÄè|Õ¨r1ó`Ê/kO€y®¾‚þ„Þ4h6̃¶Pa9;5+*IL/¤ç¤U0/½w ËÓ3ܳÉiÁEÜ©jOŒ‹/opÇGy§vÃ:%0¬Š„ÜÆÊ:¤µY§´j†±7¯UÑëF†“vkéçœD”Ë ¦ÜáQvÒß—€ß›¶‰«·¢}Ç*©X“­ˆ.îLqÏá.~YÊ*,KÚE•[SÂK‰i#wñ%÷ÌÊpÇIП,hyÊ&®Ýõ4»^“ŽôËŽ[—ßÛÖ¥YÆ®çìúͦ,˜¯½]PC¯È˜ô¾9è¡Ë‰i ½³ wŠ*öÂJÁÿ=ý¼ð_ž –@¿Ô悲vÜ-®Áœ‚êä4ç"2§hÌ®='ƒ×€)ÀW}‚ +ÔÅ/§ü +ÂÏ)C=ò6"`ÔSàô=QÔ!¬ >¸ü~ðaÑ{gËÈ¿):‡{õrÌÓeÂ!/ ^­(Ök€Á,Àêèÿf* ¨"}ÈöZ>î—µÒ¼‹LFȺàÉ¢¦´»óôŽq*wæÀ³è{aà5íx@Á„9@ëîîŠFOsq;åO-D¤¬Ý°Z |Ô¿»tm:¿Ö÷¦°Üug7¦QÁÿµc>qâUqæ5€fÕíØ5<<Ð}+š §!‚ ]a%/7&¦Ø'W‡:¾Ûfþ´öšwrå)ëPfF\’™á_LÃÿ%&9'×_u|¿6ÔôùÊ“Ú)7¯”òHp—¼‰„üµ ® vQ)î’ÖQE{fF^“¶êXˆÛ ýFbSµff¥•ñIú¹aIfNT’šáOLqOíL²OìLË+ÖF…6FY‡³6Îù´{!uqK·§8§=÷Kß =®ùxs ~Þ¡ç!Ný<sÈÒ6ÖéÄLÛaÜ#¨JZEeñ IqÞ¥¾…,š}Æ'\ÒúÔï\rœu,5Å:N¸EU{Q%äSµ²Õ*Q§²=9-*Fí’ª]`{Ò-©Ýk9°ü¼áÓ줴‚t¤ ÛȾ¿øÓÏQ½s+ÓÓ‡kó·Ùw£–TèßáC]žÙ~ùŸ±ò‹rI!*c~q=bç]NLñΓƒ&Kï‡l’¦ÅAñ€Šû…5 [ûѬ…tÉéÞIyµ‚Í)iYÆÉ¿Bøyye{!%;ç•·ni=°°·FF?‹J¯Kçôº}Ï£¢×*)ø¬?ÐûnHQl8˜vì|DÎ-Àü¿ÊÙ¸SPŸfžL»Yç Q¿@ß/ƒëÌ…-ô@>jÌÅt$@gISæ'Nï¡ AÖ€q¡Â´é»ò :7“A5áÕ£ð^$°? ‘ èUX¸÷xÉõ\LÉËÇüŸÕŠ´[Ú–Þ²)[VÆE—wïâëêÙž‘Ö¬¾fþ@†T| +ø™Î]i+¿d2)îÓðÓ6UÛÚ˜¼,œXŽ¡¼Jfjšwsq..~iÎ%k¢÷˜æb–›DÌrƒ^—,Ì÷<ÉØ“^ skØi»¨|s´íÀÊëŽ˯:&¦XgèûËH@/'ÃÍ/Ï¡ÐÏãzèýœ3‰ îÉЭöOW³&&Ö^2¦&8§SSòÊaîÉ¥§ÍŸEnVþiíIç©)îú™õ„C/X|Î8”žâ]À]âš,ÔufNV³=Ê?C?¯˜“¯¿àIÍʪ6GùgWž0÷%ÆgéµÙ$Ôÿú‹Žïbš>™ÔñÕÆKæÈ,¿sñKÖÇ:­wLÍ Š2vî%Ä!(‰OÎoŽˆÎ…î5ý=>*¼D:Tm¸CPŠÎ1Žg¦[HŽ·ÈL2ŽþÌ&®ÜçYzÂø.;£lZÙôõúPí'ÙiöYÂ!©ÍÎrÎ"VîÅì¬àÊöþitVÓŠÎiZ ‡†‘™V5dfTM[o„ð~¬ŸÖ_µ|³9Òº?5Ç:“vr/#nzíJRzÎ ½ÂJú™˜]úYŸ^FßBì²æ¼_/ÇÝÊŽ|PΠýšö(Ä*(ÎÎ ¯Àg*ÎÀ5`n5±¥ˆË¬ŽÏÊ*§²s*ZÒ3¼ qzíÁ&(^fZáC.I[Åe©iÑeÒ.oø9 díÁ ‡\³5Òyp{„}™“ÖÂÆ®dHÊ«æ#VY#2+,AgE;o8G7^öM‰.gf$åé)uSrRÓ‚9ÔˆMÙ¼=&8³õ†u$3ǽ *˜ˆUR‰9•­ð'õ„´Ò40AÊ¥f¡0a× ®¤lÜËôß9@`Þé=ç¸GRÿ6"gü*\‡¾†y%uI;·hu‚q,ã”2^0 î†UBÜ'ª§" +–ufÜâꛕWücó÷9û— Ž,?‘žqõ4}¸ö²ý‡<è}²Lô±1OcN^ñΔ¸8úZtrþçhfZRõÀØœ¡|jÎ?æuºBÞß*¯¥Ù(í0§Å”¶™ÕKÏåS³zîæ¸¦yk\r2ð¥‰ÎwÆ[÷'çšö'f:Ó_ßS7æ–^à©sÀßÍÀW@ÿN.=`}—áØxÁØ¿ü¤ó›­W‚ÓëC²‹Û#ª²µç’Ó¡­‡¯5}¸ù’wlsXtné•䢽¯æO[üSˆM^»3É?}~víEçÁ—ì#ñÑÙaáéíqÁ…àýæ¯Üý I‚Ö“NiÝg«CûèþXxØùÕò£–Ï™ŽcˆµíXbš{i{Rß™˜ÖwÂ\µ%¦øçV†XWŸsm¾â!l²ºœKÕ§Ÿ¥Ÿ]NMН@?ŸJŽvü°õ²áóõç_¬‚l ·ï[}ûè(ùÏÕ§ ßÜJVf–W´FÏ˺O·‡›¾ï9­ÎΪ›q§†šP•5r“ÓFÎÖ¤¢:r¿í‹àÍÆçµ}}Øò鯯9·¼-9úüLzVTLzå­¤OÅÊØ ä[zM)Ô«¢­Óim%Y¨ÿ”MZ™˜å\XyÝüÝöðè1ñå׋ËÏØ?m¿‘”eç´LÐsñqþÙø˜àÜÖkæ/:÷Ç6ý}ñIÛ׫9?dÇ$¥ÿ Cֆߘ]ŽsNnÐÏ‘rN¢6uG~vy¨ýG_Åû±Û-ŸÇ_r.?nûréqËçKZ¿ÞzÉ<½ÝúùüÎAè“æuuàç;ß`ë' ˜ß{¶"v)ýì|%þŸš”–­½áŸIÎÒ{«L*¨S¡À ôðÎ8ãpX 1¬1Ôy`ýãpzV =¨¨EmšŒ¾Çù˳ ŒŸ¼7k>ܨy?=Á¹Hk<¾zå # â4ˆ“VUóÚ+Þñð`Ûß‚×>°™*ß]úUäFÍiðŽøAbã]ùç’¨ôrŠRÀì+#ÌCž;ÕŽÞ«ûx{˜ñc|œ{†~¶‹ ê¤i·º31)¯H@}$'%¥ôßYxÒ¹/r·ý³ÅÇŒï–^ˆÏ£½ˆp‰ë’SÌ“Y;·˜ô‰jQzÏíKÆ˘6_ñ.%ÆÙ'›¢ ´¿:5--‡Ú?fý´ýšq`õYÇ7¡›óôÖÿmå‰ììòcÕ…ù{¼K÷9–p,Üa|³öTptþã›Í!î‘׳;+²³à/ã²²7ÒË[¯ù'VžµyTûɤùâo'u%¿ ÝiùzõYçá$ô$øÁù•!Þ‘•çÜçï×´þ´â¯¡›çÿkõYó‘Ä”¶cmDY•™Óv$¦å5«/xÇi&\{ÚüufŒy";Î:5·ò/«/˜?­¾œÙ%Æ„7†š¿ÚyÝú}b´í`b¼óPøqǾ)ã•߬=m?²ëщèZZzVÿÙÚ‹¦¯wFGwƘGâÐ׉qÑÅä„ hãUç¡ìŒžëÑlOÚ—ž‰O/<‹Ýc}¾ÙôáÒ£¶/ãü³™)IÅækÎ1©æ`¿x¨à†¤ÿ†½>µÖ yîéS°³NI}ڹͮå ðý O>ߪýKäFã'Ñ;-Þiýûò#Öþm³Á¹ì´¬"ùFR´ù‚óãæ Ö¡Èݺ¿‚ßþ=8Ðð—õ!ÞqÂc¦lê¶-úygà²Ô ûÔúpëw‹Û÷Çî7æ½VþÞ¨âä¿j>ÜâŸX|ØüÙêó¶oýƒ5qèKÿàÐWü>t­åo+O9‡Ã÷ùG&uMœÒÕüÞÙÝðA|&>)¸°=Ì>ែkøieˆûÓÆa±õzÕqÈ’ˆCÚ°9Ì9¾E{Üëøâ“æ/\½• \«{ñ c¿µ»áóàÍθ]ã(¯[{Åþ)z¿å³Èõúƒµ¤Æxç §¼9ú¨õtrTÞ†Øûûw&ÔM‹OY Í¼Ãá[ Íé‹~3&>û/±uz®5ì{Ä;ûîòPËÑÝ·vg´þÛ­áæo6†[ ¶j>vt_úýÊ“úOQ›¨*y>íÒ°vlª–Õ×¢³±»í_®Ä8ºËüqX_úc|Œ}÷Êé¿ÕÒ‰º©¹Ž#ë/ê?[¸[þžðò;¯ÛzoÕ•œW’~49-.[ÞüÅÂÊÜW/½óRüã¿Üf~ù?†—~÷”_üÎü]æÁÕg¼£ÁÁ–Bך?\ºÏú60Øòñ¤öÂï^ Žÿûü­Öý‰QYEbLU»5ª,[zÂýaõyç÷Þ«ÕtvW½;¿ýë翚Ք}”z!+J¾‘—.=Ž=àì 6þeýaíß–nW}¸ù¨íûÍg̃¡ëõMŒ˜Ù¹^ÃæEùü£ÖÏý%¿tÿ.ØSúN°¯ä…‡ ŸLèKÞõt]z$;½ÕòÉêÓ–¯ÖŸ·|µò´å‹Àͦì¦Ê?ëþ¶ñšu|ù ã(:£¥Æ•M;£’K믹ǠÏ~XzÜþuXÒ{µø]èï’׊²ÅgâS;£ÎúKCíêøtì^ÓÇþ«µò_­ù³­§ä½qÃ…ÿÜ•nB=m¿a^{É8¸l»ô´é«èýÆÏ¼ƒ¥ï¹ú.ý1v¿üÃäë<åÓÉ3sª–Í7Ü3ôßµˆÞlþxåIÇ·ë´G>a~½òùÆ3ö‰Ì¨¨hjssˆýãÚÓŽï¢wê>\?±w•üçúkÞé=csJÓwi8t¶ÌØ9–'çŒe¿ušëÞõôVýÉn,ú½°á£ûœsï@}~—NÛzÍ=éí©ýó˜¤èWCÜó¿zÊ9ÿ«WÊÒ?DðŽ, Nn4ÿ-9!¼ãNOÐû¥c߬ñìoì–’?újÿ2®=ÿhr%bÓr·^KŠâ£’ËËOÚ¿ö ÖüiV_ú›9]ùom–š?Þë<ý?ÇU.>fOM¨ê¶Þˆ.->nýbñ.hnôç`õÑŸÃçù¯Ì¨¼i}Ì,<à]––dì==ëòrÏÕš¿Ž‰Îüˈðü¯o·ûwþñþÛü£º“Ã5ûfuÇÿWøVùûY+óLz¦¸§yz’y· ÊH§–›œ”–fízaÊ®Eî +Eï0¾ŽÞ®ûk`°êý¥‡Íßd§Ä¥¶«ußVÿ‡ÿ¬:BºMúÈãÎÆ ÿ¹ú²æ“ÕGo¿³ô æcdNRy‡wä¿â¯9U$ðæú÷øâãæ/¼×®¼ë¸ô«ñâoÝUdù«µûþuýëTøAã'“ÚK¿~#+úÕ¨üʿͪ~7*>ûë—ìcÿ6f*ú-ëÔûÿŸÍPöÍÔtð.÷{ÏÕÊ?;»Kß±u•þ~J}ù?ÆÄçþuÆPõçGÂâ÷ï·œø÷µ—Ò‹ãÚº÷9~è/wýQËW³ÚK¿ÍýñøºÎý&zŸwÂÕÍ=²xOz>9¡i}ûiíIë— ·>œ¿Ùü‰çÿç轿ÒÚºýa’“œ“Þ‹‰éU1ÆÄkì½DQQzïMŠbk + +ŠØÅJ“b×äœçÜç~Çû¼ÛûÃŒ$c³Xk~š{3gUöS ÓÅЂôSСo—ªŠÏùÑ»îc!Åov#¿Úa_ Ðo +Î[KMi¯ìbVž¹Ÿ¿ÚZîi&E[ÄØ0ËÜÏ8XâµÓ_ôÉОýv¶:Áe¦2åñj1h¥`ĆlvÁ¼– ¯Wš!ït5y/”¼Üçð¨+C„Ø;ÆAD„YŒZ¬?Ÿd>˜`$ß™¤>™«I{ºÜ˜öÒ*)ñ“ðb\FH‘.û + À`ú"p-(íÁ|]öS€^ŽÓ£n SBïp2¿ü5ÁJ|}¦"e›úмvzÝ(ôZïÈu´ÖÍØól¦2ôžq¬,zOK‚8ø$ A‹M0·íN„ÏJcñǘ/½´¢¬—@¶ 8÷A›Ý…_MC¸È¥–RYøÙbSÑû~l¤UFÍ8÷YÓ‚Ä»;e¾KÍP·¥FÀS¢ÂÁŸæDù/7Z‹ÝÏ5£³ä›Š“ûVW]ä±3@L˜¾ÞèÂøÏ7À?©8Ùj ^®µÁ¿Lóóßâ?]ž¯|ï0:RFO|(ÁG^f%ÜY¨Îy¶Ò +q³ËJNfPiSuÉï:Qþ—uõ…I%a­›¥ä¿Å'>Å&=PÒâîHpÁ7w +ƒvFò>ÙÆÑgºJÑ¿ËlÎNOÖ;%ãÇ55'â–¡%í©¡!Ýe­üÊÐ óR‹ò½<ˆÇ²s¦e–*ÑÑ»Ðï¦n¨×vw±Çj{àËKÃVº™¼L·…æB¯Ó|6àE¾lµe?ßéÌÿ° Ê~¿ÜXøõTÉ%hTÇ#Ï2Ƈ1!ÛPÏÕÖü7óÕÙÏt•‰æ«’ª‰9ƒÐ/+-¥Ÿ—êñA3•0·Åzè›Õ¦’«­(Ÿa^þó?× ´DŸ9»d¥ñ]Î þSÎ üSÁЏ*#F]74@?NVƒßÅ}ºZæûü¢}Œœ.g¦Þ‘".«Ñ×t‚¤Û”ÈRbØí­žBo.4ð<äÃå9~qÌ¿s<šMóßì|X¨Íy*§%ßêC„_žªÈx<ÌÊtÉþðÇ4'û£q¡f¾˜­Ì~?W™ñ¬vØ®K%.¬w§½ाï#źZĘhÓЖož+-9/Ôœ¸[CH¿KPÏ‹jN´K+6þq'6ù=€¥øNø÷ŽÒO¦Aø÷þòo‹MP·~dÀ_ý0ßË€×v7ôÀ¾:º+!¦1áV1:äüwj¿4è„ß3èÄÕ®Œ÷“ÌDWë(jadnt#›‹>®µy{Ë}·º¾r~êK\‚Û_CÄøwÎ1b’–qCWó`¡.ó¥”ðóÎ\EÄ#Ko‚§±;ÝÏ6IZ»9'N [,yr±ú^LH¼>ˆ‰þk’žtÇ9ZæïœDEÉ*ãß“Þ\Ùî'§é›àß”iU±÷Í}%~¦r¿•–‚7+Mà7]%_–Û >+m%~‡J>Þ.ãË-9/ m9¯ÅäØÛ¢\ŸKìD×f\ì“d¬‹à™ Óèk +_ÎUg=§Åß©+ú‹šà}a¶¡À­ÿýå/àãYlÆ$ìŽ4Ò·úØi‹M…o¦«2ŸMpr^)* ¯‰)ï6ÚQÙ§jg½—­kH{:×ä²ÔœùÜÐ\ôa§0] y+* +¾Ú ¼ + ¬«Î1_•ýlµüVÿ¹$Ê|ºÝYôi{ ü» 4ä:-éÛÍÅÚòÄõ<†e´äûFW±ÇVðg%î*VêC}5äu?-íÑÏO.Ĥ¸ë˜Ø~Rìí–¢oH1a c"®´ûÿ5F¸a-ñgÞgæ|¾n—a2¶Ê|–[²]õõY. ¹/fª²žOÒãïM³“ž{á?ªJÂo7—GúKJÑׂߺå²x.C{Á»QÚã>Ä÷k +JЃõî<¯AjäÓÝ!tÚ„5{ +BºÐ& óÊË‚•e!6iá×¹zðû©:xÐ?ÿó®„ÞîÇüØì,ö² ”û[†«€GS²“¬·Â‚m£¤äivìnØó09}³ ²7ŠˆúÿæÉ%ÿ«#‚Ò’À•ö´W'jF™ÈoKå^ë=¨@;Çeœšvoµ¡àíÁ<ô`¯nHÿHMq¿²ÖFˆš•zJɉ7ÕÜD—­vˆ;€ç°í~tؾ —¸'ÅÄê²Þ¬tøØeÜÒ­>jÌVÒw³¯øëfO àãË‚5ÕÙ_Ö{ʺ(Éo» /Mb|ŒŠŸó\FM¾-g$Þ§%?!¦¾Ó3=ºËC‹c¿\zuÔ ük†^¶wÞðs†ÎœW«Í‰.+I/7;Œ¡ f²ý¯§û¿º8ÆË2P²V÷x®2ÀQÌ]%3ðÆ8ùûmc?Ø×¡ÀÄ Q¢k+³ÝÿÖ³q¿õ ”} =_î²ÔûZÁN|HŠz{±£$ôñB,D%Ìût8MC:ÆñV€œRL”MR2[—ùªr£ñ`KŒŠŸB€|ýdÓ”ètûDIøVá§…Æ´çó™/“´¢ÅÄ¥®’oŽqZή˜˜¼ÓSøÉ2ö°KŠ¾Ú€l»ÔSh•pp{Š:þö 'k¡ùyœ•áÒ‹Œ¼:_™÷b_Jˆýg®‚z6#dïJxP“˜ ]ïů´ç½^nH¢áf?’Râ¯÷ÀB.š >&1!Y+*|µÑAŠÚî&ÿìû^ãÂn課žÎÕå¾?ÇÅÐ^î0ΆL³áÆ~˜cŒ’½;FË]mºé+³Ÿ¨Ø&hé÷e”Ì—ëͨŸæAéb îÇ\uÑ—9aî -?åž¾2ý¡µúÕ¡ g̶”‡è[ŠÕÌòTˆ¡æ³=FHµ©é¥†!dà4/ëá,?çÉz+Ü[+Ìx2'Êzo¦$/6—ymv }­Ã¸ë0ê‡e²;B.àþlmòó忼׫ý¸$ôÇýQZš×Ñ$‡p #§›æ•GÒ=·»sÝjSmt~1³2êౕ5¾ÎIbšUžoÌóØèÊùl*öÝêÍóÐצ>[è,ö¦Å?ÔUƒ?ºQA;ƒ˜+-öô¢d˜²*ß]ÊÎü à0OIͳ˩9{*Vép–[Ý7Ëpé7€ŸÞ-µzêÛ ¿Ì´„oŽ¢3%¬„7:aú3cw‘Ÿu¸4tO‹?ž"@O4¸t«´Ä”~c£³4ôxŠ^l—¢#Lƒeߦ„É÷¦yi¦xi&8Ñ/CEêš<~~ÀõõaÌ"†….þw«½Ð]ËOx8\üç0.êþ\C®‡À.;;ðj:À‡r8ƒËßÌp3‹ ¶QVá‘¢{¤â vFÁ¦QtŒSÉ-7cãvK}–²_ëEiO® ø=ÇB¨©yÆ1bìR'!àP]#ØWñp»täÞùwmG Þ‡Ó…?œŠ’3À‹'³†ȽËÔðåF\ÀZ+òÛb]þ»óß¹˜úË|› >¬uÃ| ƒ¤˜‰ÚBÏlÂ¥šbOë>jWŒ‹4 #‚· ßLÃ``?sÞ-×g¸XñÉf §Ðñ÷S¼ôÓ¼Ì3¼ŒÇ»½ˆ°)¼Ö Ÿ«‡~ÝW 5M(ÿXÀåŽRŸ?g OŒCeþûJZþ +xM1Jírt⩎Ž:[®¬sÎYF)9e¥îgh…ûlw | ͰOÎzžyˆ’.g'Ü[jÊ~g%Äëþ4Í»¯d¥<ÒV¼^ëÂG5•}¤ª þZà°Žt,üÁt}ýÉŒ°bµ§ÔO-Lj(õá ?òÖVK µ0o»¬½Ñ×5f>Û:¿OÔË÷Ýar¢CÂÊSTä¼› 'Üc`öUŒ²¡B;™@íÙGÐᇒ² }9¨]Lüöày_'Dàá®­I}9F ÿk©%óÝTuÞg);åõj[þ§c­tê•%?î+„ÐÔS•€¶ÑVðn©>ù±š~[J¼»Õ—ç±?^¶?NL_ÄF `Aw'kó#÷¦¨…º†üCäÈÇr^üÛÅ–¬÷Ë­io2äϹvˆŸ„ÿÌ>I€üêÛó¿®`…Ü_ëÎÿ¸%.ñÝ*ùf“""-b|p.6zIéGÏ2NÍZi+öZï*ñžà&ºŽ’"o[eðð}=5Û‹Ë+Žr»»Ø[òóHK-¶Ëpq¦QÔ“ñc ÈÒrNäã!RÈà ›OÖ… ⢙P1Ž vwBˆÛ`Ag(ÅÇzl–˜c×RÀN-ÛKŠz<_—éy¤d¢“\Ì‘ŠQ|\ÿo=ìTÿ°J +ýÿYb±þ»)<œ!BŒ£_Ïô5-gsU¢ãé +œMJL4üh\ôæ8>¾…öhAXês0R…vJØý jΉ†\`†zoÁ|ÍRfÎùw¬JRÎV±·u°ôÛZ[îÇ¡¬OGÓ¨¤=)ëx–…´Lг·†é‰Û#¼¼¹fÄÀw7÷Á}7Ú Ì?[é,õŸë„û5a£ïàS\Œýœ<«„?ß\òiœ›ôPÊŒ¹7W›ún³ìk( Þ—S27†p?u-…ï”l˜U‚Š\lNr!ÝgÅ>ìBþÕƒº±ÑEJ¯Eû6–E]Ÿ€}ŽUTį9"øTCÌsL b×zÀn«Ý©¯Î×úKO+µŽã\ØÞtk{„š:S™ýlŒôó†Œÿbœý¨ésYÂ}0×^êÝNŒz(cÅ=5ö£âvÅ„$`¯¡'S¬²%µhG +ñ±*á±û>e_%¤G¹†nL4£v:Àž§ +tܾ ³Õ[æk,3`£ã,¨eŒ” ©M|<ß\êm–ÌBÌŠ ;šá3í*féÖê§CWÓæœmv*™°íÞÒ/úÆìÚêÌg‹-…Ÿrr “¹jQê 9'þSN‚îŽQ³·û`~ éÏ—[ò>nbvÄ´,û¸oS³–[J¿щÎÒœ +\òù=†õnð§iQÊ«‰Š˜{*rš…Ú¤B–zÊ*Á¡äÀÍL´¡ üu§¯ðóö@—UŒÞÓQ¡VÀ䙆¡{2TâµÝ_ð]ÅwSBoÉè€?¨Íxy¬f£Žgªøv•☬fµZn“·º`Ÿõ yî3-P¿µ!\Ìj/&òïå +þ® ›ºÑQöe¹¥ü“qiWbSl +LŠe`›aa»Ø>ܼowÍ#Tò±¾yÔ¦­šTL膴Úósj¬,ð¸ëbz¸ÛP5<:po¦ºÙ¤àb Ý¥_V;óßmd½YêHy¡oJùø÷¯êdž_½ä#‡—v2WUs Pö”ܲ=9«È2BMÞ G­ôB[±‰O§ð¯ÎÁ¢¹Ÿ—·Ö‚óÛhû QÖRŠSÅ-³iÙèE óþÔïPÎ*µ1ÀŽqô@ÍAÚ'éùv!Õ4‚ 5£ŒbVF+:î¦FXôa³°ÛOŠ·Ós,bN¡¡‡«Aßmtá¢ÍãBÌÊ )nººð•ª +òyµãc!~kLÛ*j»§À{¥-óÕJgÑç=½Ó š¯K>JŽ{2AÏx©æ¿-7!€Ì$ŠÙeê!Ñ·—›pyÿ.TÕß/²yï ym—GîÊp©g3´’#5>}¡9ýÍf=Ù"oà®ö1R4üüç?êÇFÝ£Ä=š`¦}Xl†EèZ±?¸…‘÷k +Bïü=+dï)°—™%PßµÈgÓ<Ö¡¡”;4l䮜±Ž³Áçup0É^Ø×!.òÛ|]nJt™«yâ”â2ŽÔ"æJ7-ð€~›ýäÌÐkv™E†·(°q%.Á9K/s,Öv™5 -æÉ +„iŒœ¶Ñ_dBE;'©Eç=M£ÈЭA˜ßv?2òPÍ£êëJ<–ê +^šŠ¼}¸œcMÍ©f–-÷"¢ÕUé/-RjÖ±®ªêD/XeèøaØ÷Åv°çTMÊ»…öì€Ãi +ôðo»ä<]3øÝ©NT»hêZ'ÂW#È~fî+ ÜEeî«Ù„ƒ™ +’s’Yà½à@Á(Úé-òžâÅÝž`ÆÜàĺÎ5¤¹Û'JãÎ{¼×½q”œáPÔ²l“^¥ÔTC{©Çáç55/æîzo¾›esþ,¾CÆ*¶ R“Œ}´4À›Ç¬AèÛ²½çÚ3=7ÇQ1cDÈj?²àD[Ùt¼XÓn=LjZÀ0MRÁslÚ¯¾èxžÇ5ˆq±ÜâÇ’:HÆáª°ÕðÉVÀõx¼IVkÇdÛ„‚³E.Û©¥–Íu|´NbâÍ£¸Ä}UmÅîD5Å(ææ-µ¢}«ø\N.wÕ²ñnZ6ÁCJB¸uÃòuåßCADôHS7#q¹ þ}}´Òûj–‘s®æÚ•Äm ¿Ø0@OXí"­´ü6:‘†fÄLá ?7ìb?"ëÞ,Ÿàiî®È4w³’çëÉA“tøëU>ÎsORCØ’ðKT ȯó­ø0‡ª®~s˜ 6~çHÅÇéÁ¯uÂäûÛíîÎQFÖZgEÚ¬ï¹VO X©e„[+ÒœU0c» w^P5!>›¡`Ü,mü|ë'ß8ˆð·RÒ÷<’sªmØ©1 +x±¹ÐCÅK}bhçe¬4a ]•9kM´í®JðZ /e­‰¾ÓÉI\Ö:B‚¿ì//~¼À#ý´ J6ûÊý6úмSØÌÃõx±nàh±®×©å‘uÍŸZ¡Þ@^Hrª8°¥–rÏåú‚W;ÝPOë@YˆCŒË<1À»ƒ|°¾†°Þ"HÝi íˆÐ¦F’V˜óðƒ©Ç \ÎÁbmŸqšOÜ3ò¶å´L«’]²?]?™æöìÒí!LèVGɧ½1B܉Š·H¹Å-e©×zàwªH‘Gⶺ£ q»¯ô»¡òÍ:†ŸÌ×tÏ×´ÍU +쓌bÛ$%ïh–Ïßײð's,¬u¼$t{¨Ð¥ì¶ÞõÚÀÆÕAc´ÁÒ]µ<Ü'S³ðH^+°‹…È|ˆ¹›½/©Æ®w±Šgª +ÝÌCØXë(6vOIƒL3Š÷•eñJaØ)+ôŽ¡§<ð`ª¶ò#;@@ZjEx­w’v·3Œ Û „:ˆ?§8E§XEæëñáú&”÷B+øã\cæÇ¥Ž<Ÿã%nÕïõ†É¿×jM2\Öb_Ù«FÈÙ_h–¯Tw/3ð›’òŸSõÙoôí9ov¨ØÓÅ +þÉbUƒu‚[ºÝOJüG×Ðý{¦±ç—®¶Ù6^½Ðýf¹'ý½UŠ=^dâ×û1¡«½ì”Éjò÷rÉý6lþMA~Ò_˜è?J‚ü/¤ö¼yzùð&èö•K ×›‚¾?¿ðíªœïº3€‰ùg‰Cÿ½Â¡›Õ”œ©NÌWyñËD æã8þr˜‰yÞ)¹'„d^C×$dž]àÄÇ\¨ÉLû““s…ü!-øÈ¯¯A1no/6Á²ž5À“ž(åž[ýô$‹” 5t" ]øÛƒœŒ….n¢\Hòì!!^µaÊVCŠ®2’S.!#Â/ú~»Àމ¸ÄK ¿Bˆö»”õõË…ˆ÷ï@A¯\@¡ïž‚Àî:Ê3®u0“,Aù®¼š±5·ë{ˆ?f,/´UgOWW„Šéè=hÈÝLÉ#1ë>€.ч,|ÜX”y§(Ü÷¢ûÓG —woƒÂß¾¸HO‰¸>L+x¥©Gütƒ|°HÃî驳’™ë(óVÖä}Ü–‹´U¼µaF†”]úDÎ*9ÍGxhùH_5îÕ\‹‘v t9ÆãýEd¸ÿUbLÀ|„ߟ‹u¨¸} ã˜f º +ÆÖ>~[†ŠØ–ÀßôÓ$eCæ[ÈAÚŠïŸê3Æ*sëÁe>äEÞ‡†~½\xÑÿµ+èýƒ; ·Ï.RÂt`“ÞJ¸9A†^DÎþæœæ <%´ô 1Þ9ÅFé¸Dû%g±³ØSÍ/x6[ö™©ÂùUæ%Ýû~½ ð½@Œ‰ºŒŒô»ŒOøq•’yX÷¥Ð×O/¤yº‚Œ ½Uwe{€”è˜âíÓBÚ¶„“¿Þü±Ø öÝÃêÚÞK½äp];æû„°ôu+<ëFëÔÊ~nòjjìµ(Ï÷¸\ÿ ôx=¸qôúþmP^ çŸc¼Â_‹üÆÿ¬³ÎiLæJ–·¶%Þãd‰NÙ× +Í*€KFI »“¸ø} ­È¦b—ïHùëCdˆ¢¦<\Xœø‚™u³*7þ:::ðv^€× AA´Ë=ñ‘‚›ñÂÐNýÛÀ­ý»‚Á) Ä÷mè=!<ï +­ çRAT$(ÜËôÎå.èùÛ ‚^=º ºvåOг[7A¡n¯A¹AÞZ`iw4ÂìçÇZr¾CGƒê‡1AsC¬ÄÉ6ÞÏáJ’G:÷¯(ý +#'õ4*äB˜û+ VŸƒ’=ÝA¹¾>  w/@nn¢?½ù|xºqå2(âPË/ˆò£®Ï5!¿hêKß³‹žLW¢>,µ³¢&ëØdÒsfô<9åBö dŸï ÿׯA¯îÜ}{üöê9è«ëнþ@wÿº ¬ûÈÇÕœã2äùræ»ao¡¦Ú¹qcUT¯ âi+éÒˆ„ݦe¦\Êö¿ïõ”éý”çã Šÿäò|âzìÇÃÛ·AþñèÕÝ›ç{âæEÿ9U÷Ú’##-dÂÊ`Ñ—¹&@T´B£Š‡íg$ŽŠðî ¨â[¤ô„Kå?\( !ÂA‘n/@ŸŸ>}ryº{åèÎ_—@oîß=>OèG×Ëu°ˆ³M…MãÈðõÑb“µÚQþe¹ë7&„¿í&—Þ¯o âã.•„ƒ²}?ƒb?½yºÜ½¿wävÿ.èÍÝ; {×®ƒ®\ºø<÷ÙØ÷/OþP +òý4<ÆÉ¼°ro†G:Òñ¨@þ(Û•“ÒÖðêÜ—&$ä!*:òOLdôÅLoçÇ ÷ï‚^¼E¼{ìû]ЋÛw@nƒ\¿ºtñÐ3àý’¿x‚è™Q÷4u¸ïÈQÚ&²«k„»“|ôú(#MÙPþa€ u­*O¿ƒOö$ôÂOw7Çã oÏ\AÁ¯^ž×»uù2èð/ï?ݸüÈýÁCPùÏà?%¬‚×ÚÚ¼7ý°À£9úßMnåñŠ@d1óVGÙÙúBèdMù{1§ìý îQ ͹‹ŽùùGÂ×Ï>ïñ¨‰€ÿ?<¸ºœå= ¾?»ƒJ#B/á’Ãn.tÁÂ,òÒÈåql ó¶…ZzŸ‡(¸Fɇ\Ƥç]‚Ä$ýàñù£ÛwA÷½}yÿ!èýÓ ŸŸü.áR³î4 Ë_M + AˈoŽ)*خᢠcÐqU±ª»6g¸¶" Ð|fÜEDBô…²Øè éÁ Ï/ž‚¾¯0÷ ïï^çö°'A1_>]øééö1)ä^:ÅuŒ]ðqe€¯ëªjpŸ§jiß§YA]LØóF<âq5ÿ•—w5ØËäæò}ûôêþÐàsºœùñÑë½{ ›^¹Þ¸ +|ùT–p½ –ûAW‡5ôQã ý¬$}Ÿ WRMóí¦#\+K³¯VÁ +oT!Ënb33.Gx}½uyz Ô™—ËCPàëw w]AOnß=ÎËõ À. ŸŸ=@´¬ØË +>ü­y’Y`VÑÁ«ƒ¨à¥ŽÂO9Ý åäO÷2ãFj™ßª1X—„˜?~|v}ýïùäñô)°ÇWA·þüôö+èþÍ; ]AÑÞ¾c¼¾\ª'¹¹¾å…„þ‰KŽ~0]Gô_ë禛¤Í›ªF´ÜCŽžï¦FÌt´QŠŸÀ“".…~z úôÔäóò5ÈØßûW¯¸¸z `ñöÕkÿwý/Àz>{r{úTþãb5$ñxüµ­tÌï~õþ½;çlÊ+IƩښ5™5ÂC½áCs¯ â£ÿˆõô¸óÉ Øoçó ë—ÿ=½qxß' Ïž‚^g™ôÕï%+ýŽžñ~¡³,XÛ˜å:3ÄN×=GE ŸÑAx‰íÖŽ!?í$²ß‹àô—¨”Ò[E‘¹×QÉл”\ØÝf}¬¼¦·l¾§ƒ²5ÖÈÜ‘Wì@æ³ÏÖˆ,ÓµUk“•å7y¬4XMýÜÍbx‰àךrÌÓF,×–‹w-Ž-¾ ‰É½OϼKJ¸MOIqíD!½§ê˜é†ABüZO©×Ö6¬®dì(EtÃX aQÜHÖÖ• ÉwjáyÏ$µ¢¸Qm$A~KÈ-}P–sžyÙ×Ýôþñ] –ƒžß{Jô¾LN?mCâ|´ ‚ô¥.ZôŽ”S`– 1¦q!ja "RîW@â®I¹©€ñ­Ãr¯&Ñ_S‹Ð’‚ã/}{çzp§ë€ß^{‚~|þv1â[ÐÅ´ðÔ‹Äü+Xñ«aâóR;)Ä®®¤šÇ9Ç$y¤TÏUÕî͈¦©®f¸¶x°¾1^@À=/Ì̼âãóG¸»7(âkÈý¥;èîõ; ˜¯!—Ù0j)Ö­‡Íø>Æc¯ôÕÒ-Іº­1.äüež¨(·LT”mŒ +aóCõXu?^\Mñ®§¡^`‹JäE%]N Žºìå`üP»÷Aw®Þ}xî J ÿué WÄ­W3-Jf™EAÍÞ×ñ9GË cÇ+¢¶Ã¥ª¦-5¡ þTõ1c»Ùä7Íx« +HÑRVö]tFÆíÒ”Ô;aßþòýàúéã Š øq1!øçåˆïþ iiWéåÅ®õäPÃ`Ü*«aXå•D³‚S¼5ÊÌžiA~Ö÷ÐâÖÆkHŠöŠÄÔs5ÞßçJVDè_ˆŒ„[iAW½Þ¼}}ë~);>÷Ab\âí̸„ËTpñ]>õ®›ƒ÷™j@~—ó²-u•Ÿ, +ë—¹|ÀæîNñ fmMÕº²š.oc„Ô19Ùýüâs!ÂÓ ”ÊJ¸ípÙëÍPR°ÏETnÊÕj,ìõ —¾0 DåÈ} m×q;ªææmÀÀlŽ×ÓÖÆêðK½ô¨™¼˜ÿÐE„¾^mo…ovr¶Fš(Ö‰šM)b™ŒQÆ…Ú§E\û\›Ê¦¯n4OsQ; +N©I-À¯OVÀ×”ðåñjìâP\ÛÁŠœíä&¬Œu +×Ä}U†Ñ®Š¥ÁFÄj=l»Ÿ{4É…ørh+™»J:Ø*cÃãõÕE÷¨Y]_·©`·•"æ–¼Š°ÚÃJ4ôs–ûê‹§zšŠ4Ãý|eo/YRß”8*¬í¢ÓÝkJ!wZÈ—•Uiëû²±zOÙX¿§ªáïOsq:.þpVÀÚ›®d¯ 2R:I?ׇ9ÛcUðåÁªBUGMª²«)²½9SZß#¯«‹rý©¸×êæº YS}r/ëÝ'ªŠœh(]Ÿ¬¦Z”<”e’ Ý‘ÒÓ׺à_-Bú?Ëõ’ƒ.yUŒŽX“á5ÜÔvÀpSåÏ‘ÖÖlI[Kv= ãÚήè¯êˆéfó¿Lµ°B—êŠ Ãü<«ŸjÓÐKœúÊ*»®¶É6Ûб;ÛÔw0_ÛqdÀÃYÔ4AN1HñQŠ–²OŠvjø`#3•vƒƒ=í5Æ·ò*ük„­"¯ñföUI‹À2Ý«:X¬ïÛÓ‹ê–%‡+uC{úªúó{¶|GEÏ[“cµ€þ)Z*~ªš¸aóÕE‹’îêÙÁš’©nJøÌ +e¼™Ôøàn>ÆMÙÕo«ŒÓ ò2W'*1ÎYû?‹á*ªŽ4TäÖ(:Ò0LˆØsóLr8Sê’”•­ïÆl ‘c6¤€vUg=$GÞe'>˜ïcgÍŒˆ[&º[!²vaìTŸ¨pEÒD7M6VíªùÄÍ!d´º*öþÖ0äÛñ—¶Þ¢ß›£—直yv-Ÿ²1YQ¾(«,Ÿì­LoÆN´Ô&Ê[ÙaÊþú2Õh'G;Ö„[”ЗFHQ ƒ„Ð¥~”ŸC+ ™ä<ôr7â»QŒüñ÷v­t_×®8˜«ï²kj*MªJŠð;cÄ8E]ñ×úâÛr.foº‚b”SÌ2l´q óÓ¦°:IÍÞ›f#ô¢«šSæT¸›m“͵JOæê;ŽEµ¦)Ê8IÉ\FmJ°ÑëR\àŠÎæ*ûÓÕü=UP»,èÑ )ïp–RlœÄ'[UÌâ½é†æÝñZ¾S) šT<ôæm’W³œÓU,›”œn"Ålõ"Ö(1ÛÒæŠ-àe­FnÕâ6Åèz?-Á&ã•N ™»òób•ugs­ò]C¯sŠ…rj˜¥»“LˆYÆ-Þs ö§+ûš*ŽMÍÃ9555–É:Á®ªNhTpJÖ%„¨ >Ê4AI3Ž-“\Ø|7u¹« +l›ìØ_©´ÏÒÑ@­fØTˆ]ŠÞ»;”è¤_KB‘}šG°(ù”½¹šVÛ|}ﺦ¡msºµgCÝѳ¡¬c-Q¢–F`ƒ¬½£dCõ ÌÉœ€s¦ç³ÿ¯Gæ6·ò¼¢mŠ’o×rðÎŪZ€óÏû¡Ïûh)EgzÊ9Å(2ÉX`E  ý8(@äT]#ú‰Ê²e%-gI΀äðÝyßê†á£QÓ®>\¨l;^nÓ-ÕtZÔôBÀs±æß5œí4«Ü1ÍÇoQ3V{Ê}v•Ìò½Ùº¶µ~L˜¾ü~mþC7ˆ2L2PÆ)>cGSÅêãg¼[! M=š5©‘qrX¨M ÙA„ÚåÔì£).ò@Å)?]àsöulüޏÄw{ ÿójGê3]}Ú»In„‹¡+'à`¶ªN?ÂcÈê‹•LÂÑJ³êXW%ÚÓ2Ñqi”g²2æé®žõk½ªÇ¶PÛ=Ñ2+ˆåç½&OæÂCð tCRªkÍù´Ø[ðÙ±XÁu¬Ô îë°Ïr‰óžSÇFÌQ‹ö¦ ™ŽI|ÒÎH©ïæPñ—ßë–Cms¿SÙ9àTµõ:4ÍÝ{Ó̇‚œj’c›K>[„ŒÙ®âï3Í%îF1)Î2ŽsNS œS¤»—x aÀö§¨¹Ç@ÝÏ·*çš%ç8YäsÌÓ°QAH0ÊðñÖIrŽª9Û}‚ãõk±ºãp®±Ï©1weÄD“¸ØÇ,)ó?ÿ^»MÍA,ŠéE#y>;ØÌ#]]Ǿ¦©Ë9ÕØbSqÑËYï7{ ž;CˆÀ)%CQƒŽÓÔa²vå•4CÌ=v>ÓêxŸc+ +Zìˆ~âœÂCŽt5ÍÖim¦ °«f£ö5•ššºÃ©J枊Q²5‚ŠÝ‘•‡Ï 3Uüs±*Ø¥» +z¡]É(Ù×{¨cãlj"à‘þæzÖ¡¶±k–†Ü–Àü7†ASN´„çdyÜ/= ókQX \æ˜ N—šåÇ+ RË\m‡MWß±«­©3*iPË$9Ó¦fÃög+ˆÇ ,ÌÿnWõœ÷¸=œe æð_K˜üã9RMIH>ÐP!Ç‹,»ŠQ¶>l]Ðð¿«¼—Yä=59{µþ]ßTîm•±ÊuÕ{ Õí;S´ç² îÐP7öÛ êþŸõ +ѯeoŽZ¶&ÉóÜ׊Žô¢ÆãyQá¾RtºZÓÔ÷8ÏÓ&Ü©"el ƒ=·r?ÎÐb*dµùcwŒ”~¨cböW+*Ž7D='«UÍ-­HÞ”â¶2‚)Û_¬íÞš mðȳYrÉ™þ¼g3íT 6û²v ƒµÔb‹œQ4×”û\[|µ3çÝÞ6Å>‰J?£áŽªÛæ‡Ñ飂hW‹‡<3ÔŽÚ¤ŒÝI\Ò¦ “´8„ˆÙ"—/ñjO7êd¦YQM+ÙÕ4Ž)ü{‰Ç³MÓÔ”‡¿#)ú¶Ð–üÆ(+Š<]ãð}Ûb—ÌW·î/Ô÷X5<¼e’˜¶;^h/õ5Š ½Í2xÔ6…mv%±ÜÅÊÝêdähêZÎôôó9€v):Ô8€ò_ë-öT 3èŠ=L£ôTó>Ò*ÃEo –}Û,öqŽ££~:ð·žRô¯¡Bx¶(¬9œa!g÷Ïà*R¦CMÊÚ›¦A¶$è˜þ’ˆ¿—D-GsµMöI>Ú1NÍ2ö•}uJ°1gÓx»B€V·Â;ð©.Û½ðèß:Ažš‹Ú•³‹€Z…Xdøl»ŠV¾§áÓv&kUð”'Íe ÞmUò165!Õ¦BEÙUèX³¬,Ô$Z' é2Zæb/>Ì"ç3ŽêÏû´[øî89Í")ZïÉûhÍûlŸ&dÌ´}YM×µž{Àý)ɦdÚÔ´|Ó8:®Ä%ϧÝþNÑPà`;ãx–Ç?Yªlø½Êåžè à3=±ðtŽZjè)ñr(Xè_‹õƒ¶)fgœSd׊»S¢ +‹Šƒê³álžÇ:×Ñ]%6á|>ÁùÌn›Š˜¶§%di©%gs5-'3Àº§0É›ƒEßæš +ÝÍ£ø¸Ó96þ|̉Ž\p¿Ïg–‘2Næ+h/ó…&yy´Y‰I;64ª?%wLSa;cà¯æ‰’°C=©èd™B<]ã +M +dsŒ’q¼PÙdײÑÀg!Ÿ?wq2ãx Á¤Í`Òfˆ¹Cô$;÷³ýü¹!Õ¢@$XÔ¸t«—b›Æ%ÍQKŽ+ºë3«ùÔ=-Ÿ~6Ï¥ÍSKOfp™k]iχH^W¦„QoNf¨°½ii{„”hŸ<ŸuCÃÍ£ÓLÒòÃ"x±º9† +ß–Â#¬“¤¼£yq_K)Ü×UÖìÍ5IŽVª»Ö„§«ÀÏEa­]Ë%¬`CjJþùLTã!öxFÀ>Ð +X:éh¾ªã—¡fì÷¿~o†VìÔЊ—[çœó ý;J.ܪ¤ük Sÿ×@%þ¯Aÿë‚–ÿ·Î«7O2ᵘ—^Däó¿§„5¿ÿ¼?^¼;”÷a£%Ãu©.ëéf{ÑgÓ(6jP˜ýŽŸå{wOLË;UURk+g3x€OQ)6EQ€Yœñî?zzù9ß:´täßkÕz:¢À%™øD‡Ÿr¨!dï+q9;#˜ŸÆAÉN3Ç>JIÜ—QÓlb\¤±÷Ã.þ,ÁŘ ^ë]Y/Ì’ò`»‚–³9@ÌuJ™ÅF)9m]Œ‰\ DîŽq ö&8%{S,¤EAË=ÇÞé\Óà/À×ë*€¬HN7“¶¤ØHó ¨å*Ñáxº]#ª:œ­®9›¡BÏ´˜ÄCuIUV¼#A†ìˆAÖI:DßûaS +é³5uûZÜ ðµó|~——¼4€ªCE<1ô£Á§ó5m‡úêzç 9ß®F&úeS "œ€¶ìç´&e—KÃï«D…Ç {sÕõ»€w²ŸÏT‘!ÃÍãˆHç ÈyÔ´­!L¨EJË?«ë:²ÞÑŒˆ¿?ÅÅ8äø´­òç$£Ð,!%ïnt–EüÏZíð¿;¢À§a€´.Ó0Zì*ò>œgâöVD-ÛJV©IBNûŸ5QÇ¿QÇ7„­ÿ³Éo=Ôas7İoK}eÞ;£ÄØíQ\øá4õkNT}4-`j¸§8?"l¶.íÉ(1òîÖ )àìXEÖ[µ(ù­cŠ\ük‰ËùgWu¶\Áqh9˜í f‘s¶¦õx±®×:AÊ]îÈ·Ö~{¨rÚ ý÷ µÌ:X2_“ôXÎŒ»¿Ñ‹?§aœ*x¤i´üÀ…IN­€éЩ Áá<…t>Ÿä¿ïø;œãó-S‘{s,¼mšð³ü@Ï!ýZ­àþ^â2µä’.Rè#}7<û÷j“â÷ò9wÓ[2ˆ¿c‘èœA¥œÎŠþ³VÙ±?Ëe9„}°Ð$wj«E{Óø†Yv¬¥—ìŠËƒvU<ÂL ìÛJ :ò÷´Hp4É*>‘Ó÷$øø­Ž"7;P‹)%}}ÒNŒ¼U‘äyÏè­m‚^°=ˆ\,p_»/v<Ü_èóßySNðãŸKÿ1Ô œ.ò*ÜBFևоIYawΟÒ6cB*À®–~Tœm„·ÜXòq¡6÷¹¾:ûÙ\Uúãùªä{–Áâo6)%sª žá~½ÿÁ&cïNrq{SlÄÁ ²;\ëÍüh––βÈ%pkOC…:T¸¤ƒiTì±»§.Üû®÷@}÷UâÞLc¯UÍ| .étš˜}¨¢9Tø ç1Í*ÇÅìŒbÃg›À¯7F°‰Ú¶Ò„Õn¨ÿ¾Š^`– ÃŒ¥_¬€ß;š &Ÿjh%Ç3ôsÍ=Õ Ø¿¬pÞ÷Ä:ŽŽtØÇdïÍ Rª¾¨5)oV0°;° ðµÇó\ŠsŠZ¸« d9U´û5Ë&Å'z»7É(=&ôp¶Jp¨¯k?\¨ª¶(HÉf1i³î«aÇßÙŤþš­¬>8É©¡Ãl +fé eÔ\̱†…²*0©&96cWEƒœê«jÿ÷¼gîJUËï¥ +ö‘žZ²§)´Èa;£°ofiy°EŠüa“áâœä¬Ý1|¬}’šs|6»Šœo’ ãvÊ#ög¸”e LÌö»µÜƒËú½Z/=Y¬jÞÓ06.Ù,'§|ü[3Pô)!i[BJ7Ji&`íú&ðW}uÎS'Üo½¥ÀË<ŒŒµMsÖúà6%±àת þlÍ:Ô N &É¢, 6+òýÏñ…ÿ¬±(»SÔ¼…îâïçó#ö*ko¶*jû½^Õv4O.ÝÓÀc6мæÛó>îÏr¸‡:aÕé<—q2ϤڵxøÙ*‹ó{•Frp‘Q [é„~6MÒ—‡HºVn¦MÑÖ²?UWy4ç«i`‡š^d•ãRúy¯ŒeûÓ.&¥Ë™…›íPSÔ{µì¡ÆÞWó£oÎWg{m’Òf[a_W[˽*Ä$c—Zǹð#oÿÌŠ*2B¶¼:õýF/2å ÐCP«»Ês^<Ï(*J]•î¾Ø ý¦i*ñää|{dêÂ%›z)13üü§ÓÜ´»jvê½¹ªl@òŸÙ¥ØŸ&1-³¿"Ï#ü‹ËEnŠß“=EÁ¬ —oI±&iiðJOÚëùÖx×ÝqX¨a¸4lJ”òvo_ôà{´¨Dû8Ä×4˜énèŒy¢…ÜZoÏýx §Y&¸å+}èÀóç˜i¹¸S€iWPrŒbLèÎ*¨•Ø­þÒ/òê\wR†÷õ!b¸Ë!Á·†q?×; Û]¹Ÿl#PïœOë}©î'3IJƒ)&jWŠŽ?êÞ1IDZ‡‹„â“UîÐ.‡–Òu{†ÐñGs\Â/L +jîê &Ô:†‹¶ˆÁ[ý%ÁjaÊ;}]Ö{§œ‘ï<Ë®²öp^(j½`k¼Ú y³TòÐ9\n„Eî ùÎó<[]éP2†îâópYøZOûRwþG»ò|®TMÏÙ‚¨åø¼/ÕReÝé"‹x>ÿ×:µÊPáv9<ìp +›`tÔ:ûnEÙÇ™à“ÿ›]Ï(ÛSáÓv†àAëèð…Tp'-íó–˜AØ××uØ4Ü&°~+ö4,øé|UýÉB]ÏÖ.nsŒ˜êÔTU9fk6eL°¶¡4p¡¡ÄÏ&&Änö@¿Z%åQŸÄÊ|-㸔ãy:ñh>Ô¡S÷5ç=ÇÎ{a¯RPÎi\à¿Btí£“æ˜a£íS¬²Ã¹ +æÙjeî›èœB'íN`*RÇ7Œ #÷5LÜÙJ«öt­º÷p‘IÜUc’ŒRlÔÖ*bsnWQÁ Ýå~úvJ’SÓ9¯sNU ÷U´ü£î`Šœi—££ ÝyZaÜÃõî’¯«-Å_̽ð cwù·NÍ`wÓ@±¯MEHë­Íð@¤{ü5„Ixu6_ÛáPó 6%§Ü èÓ¶¾1Pê·= û~¬åswg„€ƒ2g™Ø_Ëë›ò^*+ÓIXI·ÚàÁ:I…‰ˆ°ÒÎÞÍ$‡;'IEN rZîZW‰÷r=ØýXEÃÏ43 ä|˜DßTsâo­6å~´ÁãN½?¢BŒÌO]äÍÎ*Ø&!&ZŤ„arÜf:`«åk>¿_׆õ›¯E—1òÝçkŠ¿ïŒñà +aÞs%òê ?æ®c¬Ôow´Äß*†ýš¥c*RÜIn7å¼Üð³9oW <+Œ8š+Š\ìIú8ßéºÚ•ûÖ*#fnâ ½Àúµ<–s¦¦õØ«õ®B÷QFô͚¯5¤ö r~2êM>Òã@[!Ú!%ëDW:~æ?完rcëþ§®6ü9PÇÈ ¼ÕGˆ¶“Áv ë˜ ¦î+P1ëiðÓ9&æh–Ï<ãs/ü«¥—ëÈE':JñÑ)óÈY¶á_C}úÓŽÌ—ÇJL‚MÆ-5ôbÃØHÛ8>Î"Å%ì ánõ"ýg«³?¬¶—„X&Yðs>wÌp‰'ó<框8°ìSäÞ4£üt^X½?+ªÚ–ó`»ÚúFÛT%kw‚‘딓׻!^k¹î"|OŽŠ0|ÕŠ¢\Z’^þZ ~¯ˆÚ4Ø,›¼<Ì©Æ$š¤Hà'1Û äF›³5‚ t+Õ,?ÏSüŠƒYæx–…|R©S‰M´L cÖJ¿Îr9'Km³û‹¢ºÃåʦåʶ}= ¥:&Æ<ŽŽ|C¢Uв*‰™ÎY×dã=Pp¼XÕèTó¨¶qBœYŒÓ×ç½?ÿ®Ë7þ1)ÍíϹH”y„ ¯Is]mÍþh,ñ“ ãMîÌ×e=;S1±'ó•uV9)Åèë¹nË‘Öqlò9&~/ñx«Cä¸ÙúâV)9ït±‚±-!Ænö"¾¯w{.Õå¼Ûê†~1 aC‡*2ŸÑ“<þ8Pp1ÛCØŸË-¹/fk²žêëóßÌŠ2Ÿêª3]×Ú <€ü [ÂG¯t# +*/Âß å™ÇÊÃW;sÞ aB®LP~>Û—Š÷g…\«Œž}¤b”žÍTP~žÀRU\ê»Üœôtˆxe¹æ½ÒY棯ƒ¾ßa©lã,ÈZâÛ>ù:+ùH˜ùíO9ÁÅÔOŒV4ã"šÑ7×ZK#þã³÷€Œ<_Wà©«Éö² ç/4缡f¿\läœèhå‹ÍI.ë½™ŸJx쎤8È4Rz¤b"L¬®Íû 祿;š©àý½ZÓw2ÇÆm¢·ú‘¦!Lô/ ¿¯d¢F©ÉÏÕÜœïŽQv¹ é?AK{ Á%ßQÐsžhø™Ï–s=·»‘I›£´œ ÿçÉIߟìôӰǺªêÍþ¬úªè; Õ ÷M£ï_‹lÚÁl·—êÓ„xøÿv„G:R‰uúu¥:ýñ45憊y}£)óÕ™’œ;ßË xù‡°(è=àWøû3 øFOÑçaܽ–âÏ×Ü.G³4ô¾¾ide„žc”á3ÿY¬ªý=Ççü3O+³—†ìŽAÿï÷D€Ÿ0RÉ2N° ,2ZúšY¼ÑYüU'L~2ÍŽ»#Fû_Dø\š`†»%%)ÿÝá·ŽpbÞ/w凜γˆg®Ïæ+x§zà:ã°07üÖRk¦Û¡ŽÜ›áâ-“ È–””à˜fÁtòyÏõˆ§€—8žÆ¤9'ÑY-©ôÔP=x°Ì¯·j)@n†Ym–cSöfðy§Kl’]ËFX” Èž¶ªrc„:Ñ yçóðŽÔ\¤mŒ•gcW; naþ+«˜1 c¢f+“Ÿ,Ô$?;ï… àE?5Ã.EDœÌñ¸F§|}ˆ{þì÷‘†ƒ>›§Áÿ^¡aþ^¥SN±ùÛ£E_L£˜¨ »&A¦é[ÎçœóÑv™{¤æáì2|€…ô˜›¤˜«ÛRrª˜›ùVÅÏùà³ +wÅĸ•æÂEŸmxèl]ÆKµ ñáj;ôë/]eµYŠú¹Ðš÷a¹«Ð{©½È{­¥øû.à·Ž§ ÙF)!Þ8BËøg¡¦ãßeQ뾆Q²Ð~»Òžýrµ%óà—Ül㔌b¼®úf»±?É*1Ž ~lô"ü&×õÐÈküÿk½¨ØGæJ²˜ùDJýzeJ”ÿãtš^¬oLum*ýò5îHŠùzÍÒŸëås~™À¤@¥Î6¥»Ÿê¸ô_ËÂj§ðèjÁÉy?g1kkêu¤aaþY©j>Ñs){rîþ4—p¨¦äïMàÒ·{Jƒ `ÏùÚüW†NT˜™ÿE~b膇XFéy–QÊ9FŒwб ÛÝ褩Ê<÷Æ"ÿ¿T‚ÜŸ·§ C§Qwçj3>nõ–ý^ ¢Ot\²]Í*W5ˆ9ñÎ=—CMÎß•`¢ÍƒèDÀ_E™Ó]쩯*t#'>®Höº4Œ‹üøßv徊”µÕWôÉ8õµI1)‡Tê·Yœ£ÀÓˆÑQkƒèôÿ¬4ŒhYdóPÞ—ÍÞäg¦aðçá‚/§zË©ùÿ9zËï6¯ìý{¦¶i›Rl˜ÑqÛIÌÌL²À²˜™ÁÌÌ–Il¡%[–,…Xæ$mgæ·¾ÏòÜšZ–¼,ëèÜg_ûsIçìͧzæh…!5T2ªûë’¾ä¿þç ìã‰9rÂ/k=Å´äª?m|ñ'‹Å(øã+µ0#úó2ÖcK×Ç@/÷°…Û +xª¹½à[øO€Ÿ|j>Y×{´:EÌ +YÚg÷] :8¼° ³Ù›wyµ'ï²­;ïFH_—»»@¬Ù˜†D5û«Í’Ïëÿ«—,ŠÔ?Xd ‚zjõ> W{fš^zãÈ"à-pñGF1¤`¼3˜®áŠ;Þð³ ê‘`?:Qoƒ³ø¬%6`ŠgÐK¿`ØyrÙºŒVì”1ÊwôL@G( +›Y!#8>r;0×¥íëësŽ—8€)жÂûóÂÊØCc·ä`Ó#@g½3ðØ…Æü‹ZN棠êŽi˜Ê¬zõC?2éÆÎ,ié¨|0{÷à )æ'cCúY)3ñ'5áç­ÁژϋáúxÝkç46˧bÕû•<Ä®šT´«†}ôÌV¼2·å\q£¾X;?- …~Àb#uo|3˜¬ŸœªÄfº'‘qÿ«&!¤FÎ,8† O]3ÄœÕIj®Š_yYÅÌ?­fäŸÓò*îãRÏNQ2ί×ůôCßh…yçìÜSÄì»kUo> ðÅÄD,°°–Qp”¾=ïñ+OðÅÎoòºâ¯z✽tO.ƒÄ|¶q¹»&&Ƨ$ìèh£Eaã¶ ùÑÑWyGÅL=igœZgÅ'5B3.Bâî}k€&kèWQª=Ó5Ïõ ™¿·‚^üÌË»ÿŠ–ð±$¬æ‘ͭзk½ —»:ôÈÄÆýÇÁ±°)a©48ËÜՑ˃Z.É9I)iµÇ€—ŒÔvõK!¯WºÊov×~8AHºõOaί—²þµHÇxf0)a5±h_G«92rña=¾0h¨ÏqIæ’CcŽ9¬/ÖæÁ°†Û.¾PB“LtðZUÀs`9¹|cþÖ/£FÎÔÀ¦h…—»cn«y¾Þ_q'8[šƒ&nOC’×*^©Ù±?ï(`őυ7G+mŽÔůAŠô:X @þ¶ÿ¯oN[pž5¶WÜð©˜Ø€¥wa×ÖmØæ5$­Ösù#ŸV*þÏEc|YÂW†µõÇNÓÁZ‹ôÈÊÀ/,ºD¯8.oGG,>rSPI¬05ßuªÉeº.È3Ïths<ÓØäÕî‚ß]ÃÅxÆ«žÚÛó¯z%è´ð½x§’¡Óy*ji5Àï1{‹âÿ>»6Ó‘a Çí˜èØø—½qˆóAà÷dû,zOG%|Zn= ¢TøæJ¬ô%Ÿ]hùø«Œùöû° +_x°Èò;>ß1\uäÍ}@Ëö´\ô¡—ï=Ý=òÏ"âÜÓøD¯ü²\Xzcs–^»¥ä# mà»c˜„:«£¿n«ŽýšžuïŸóÜŒ«N@#ˆ ×g`ÉÙÂg†Ìš}1?8 ±vçÞ‘sÞ_’ÐbÞ5Ôeÿw]Ôé_±;ÉÙ=Ù?ßÓáK>ÙØÌÃ;âýjlÀ,ð]à­ºW#°—ë#ð÷Û2\^@E,ØœÁ§ZjîÌaÒ~Ùž‚§˜)0}Gö5mKâoæî¢;#„Ä+è—€\ +xL‚y‘‰üx¾Êèÿ¬³y‡f|•O +ŽuÏ–? *X Á#=ͽJF   ϶e¤Ò=½ážE%تn[»*oÊyçDÅÑ'{a±þÉ=†+ü²ÔÜûe‰Mý¼ˆ-;6#òÜÓ%Ï—ºÒ.[ºÓÎ}YuìX:g}±Ð#¥–~²4ô›Ø”Ï‹,ÜŽZV·F ùf«ßýé´û -½¿$j<´±©»ZbIðæžÉº˜QtÂ9qþãï· Ææ);¨£Ö5ŒÈ9ØM`-9‡kŸn ”ÜÜêÍ¿œEåD¾ÃÑwVßÚœ¤o+9Hç,6Õ5‹MqΠâÝRD¼_‹ÉØ13‘»¦¶ÁýÅιý¥¶±ckëØ'«@ôÅÆ?{À8÷—–Ô ½zM@/boMc#þä­µòÀÖ^{Û(Ì¿àè©|í– Ò¬°§Ëݤw[c à1xs’Sµ1EJßxpm¼î­}¼üѾ‰\rà†Œ^¾­dÖ„5bvPË®wÉðyL: ð]©Â£F¥ºç°¹‘^«;.>¤å Âz ¾ ,T¤W×±…Rç‘",½Õ·VGP1n9 ¶)ãB–{h ¶vV’E„y¬¦–Ÿ#gŸÒ4ßÕ¶—=è'¤þ¬äV½òNS‹m}µÏ›s¯zÇAÑ+=%,m9×ÜÅŽ,Èœ=¾dC‚ú°5ƒO;4 Xf6þx™C?´°ÈaÀ/{çÑYÖÁ²»~u]ò¶†RáŸcC÷5½’Cc¯x/¨µqð³Õ±’›æöŒ #ð—§Ö‡á±+ãØ¤T¯«Ý5O¸ä=—¼£c:Hx•ˆlÛpís¨äÚßÖHNŽÐ­rk„Mú—¥–ÁÏÀmxŽ{“¼> +~æWFö~ Hæ.Tœ[J.Þü÷žŽ ÛW°ëÂsLˆw—¡f\#¥\ +ͳ±kcØl•0ï¢WŽÉô}`å0ŽíÖ1 »&ok–ZÔ +8>«jß@­ñ«ékÃ5Ïœ#ðw›#°‘Ú]îѺ¤9fÖÍqdÎÚ¾|†UxOÅ.¼æƒ'îÉÑé‡ótЮ’Q¿>V“ºÒŸ÷ÂÞ›{õÈL'˜ù¼1HÌúhñ­ñ‚;Ë·]PÌ_vBO{Klö·ðE/1÷Á§•Ö©#‹¨ù@Ï€y%õom­E×ô‚ÔË›coÿ^ãwX†ábH|p¡eèh­e. ¢U¬ Þ>õÅÚ&mWOG„—¹Ì½H½wìšÁ&»%¸$Ï,9ש³Ô^xy¥3ïê<÷éåö¼kƒðç!©a¬OR‰³/nŒÁcwæ‰eŸ,Dð'+ r`cà÷¼}³P|°$j8\lhùlk›ŽôÁûlå ,tTÀˆÎ +™ ¥^#©Ä8Š~?Dʹä“PK\ãä,=ÿ\{ų¯ZK­"'üæ¨~è%ç˜GÉ]äÂC”Ä “ˆø5¿«åwIJ3¾Ü7ø‚!t¬Kή÷ªšË£”tû$1Ý-'íh¸0#³þ\!Cþ²ñøÇKâ`Œ´½1ÿ`©eàp©¡i‘M iq…^(Æ#«ýà—RJ‚ +.tsŠš£ä‚¯aŠÿè«K½8M<ÙS÷ñ·6Pì/“„”s–†¢«ÁZ¡¬±êY&åôÚ©4 ¶&pÉ®iHTH yç•V=Þ]@å†T¸GÉ@®4„Ì4ØŽ‰T6¢óCFlYÀÀ$lké˜ÝE.Û©Àe8'#ߪ—zQE~9ê—EÆƒÍ +ÉpYžqd¬c£—ßTGÿ²>‚LÚœÄ'ÛaϼsØ´õ1äë`ù£õ©š7>: ˆGâB_Ý{UkÙ= çó¿¬6ŽGêEIÕîHmÉ9D‚{®>Õ«"WX‡ÑñÀ:½µkâr–ø<¿Ÿoí-úCÍÉ<­`äüÚ[ÿæç¥Î¼ "a?èE%ž9Ø-hd €ñ×ýo¯ ˆ ³9K-p+ÙPMäîÚ(>gÈß‘êûÂ5ˆ‰Ô5ÕÑ“~êG¼øu±§æU&ãZÜ­ÓÿXê-‹ùÛNFUUñëÃyŒ-…7¸Å¿ß;á/úï¯m[KªrJ‘ €¿Ö-ŸýÅÆü½ÎdþµŠƒnHòcW‡‹£VÇëñ -<îÎ^àŒ\Ú±ŽCýNüï:}l#Ö¯ŽBÞlŽÓmeí[ºvŒ"~Ø$nÞ7‹Ä;:% #VŒDÙÕã +ƒ +D†G‹öL!ßœýÔÔ\uÝÖ©5WuAsm­«ôžg¤îåÖ&A&̾6ˆ‹þnuûi‘Eøl%ñŀV§5„â0à3Â@Î8¸Ï––Áã%÷ÓŸuy- ¹và>ŽQkê'|œ¦WÞ±ö beܲ‡cõi¿¨™%QZNÑS[ À²ðë%.gˆ¥NBÚ™rôO%±üÈØ(ÞÑÉ~UdŸe}œW†ËØœB'øÄüÕIB¦®òÈ9GïšÄ-{FJmhçW‚býrx0^Ü‘‰KÞ7 Y{f!/lä–„ GK|a¤oýž`ü)rÞÖ0!ys÷^!ª¼]úîæWé÷Ïüc “ym}¹Ü^ûh¥«úžŒ™þ»JwJó{9ãúR!Ë@ÏÚ8*vSß”@^…4õ©Ÿ$ôß[¼ÖOöÆ¡[CwÐD|'L9^a >ÙҶ–ñ=KC[П–R \ߨYnΕa|Ú¹C­˜¹éÝ®!í©è®QtìrWéUKgáïk#Ðw½fšWr]ÝXvoG °®K +¾:¨'uÄ"ß<±@Óy©h®~¹kØ…­~-¹Ø£ ænÏSëŽW8< ¿ãýÌ%#d® Âßî,°oI­ñ©p¹«#õK핯W ñ›“°,Ï,,aKŠËšâÿ1J˼}äCŸ†Zá’QнjZuÈÄ%y5„SN¯ðiØpSwý;‡¸‹­Ã^à±_E+sOa6‡êÞ¬õB^­×§¹ä¨´ ™H)‰¹èªŽÞ–ƒâ,½)çÍ)—WF«ßê:Jc:ÊÞäÈì¿Ö¸"Ç,&c¾ôÈ«`"­-#ÇV*îp©.ϯ*z"a<ùNB|ùÃæxõ‡/vžh]‚ϰ ã“|Zã³µSñkÓÀWé¤?íøê="eeôÔ?K+ J¹µ;óÂÑJÛ̱½uúhIÜâÁ¥ÛÚ«o.òkï*º¾Ö_z+Òa©«öÞJ'æuh¼¡~½óÖÀ+¼$g¥]膿ú™_rï{vÁ¯» /O8'p¹ÎR¦_ÏÉ!=¥öhQ >´6 ï-7t…8¸c —å“r÷t,<à?蟭ªßÀ'm)¸`÷¬¶ÖÇN—qªn4V½?!Á^ +M `®AdŒ½³äº©%ý´­«äÆú8*Æ6P÷Ê5Q{h`!ý³Äl¿”VÒ° :ů@$zæ ±š¦ô«óâ¬3®Éš¨ÏV:Õ«£@¶UÈäm%,.¨†§,!ÿ¶Rëþ½L©ûéÉlf¡·•´²?‡tÚ®¡©Å¯-=ˆ˜alÖo=ðäÓAÕ­>tÖå–ªÄ3Ö6lÚæ$¹p¥ölu >ªznŽ™y% '•ùä|Ìò 3³Ÿ˜sZÝz·­:ìÀLí/â*Ã&4°.±Y#X`!÷,Ë‚ÆC€—­í3{KÍÝ{Kí[Àõ· Až,õT?Xì®}jÆv c/H¹Ù¦Y¥žaô»aúéyvÂo–¶‚»ŽahÌ)í´LPøxð|^96×Ú_ýÀ:Tý`+ÒßBO>ƒ½gnìû´Ù¢Ú±p¨Þy6ܧlᇠ½ÒO+ÂÖ‘Æ + ãôØÞ[dy˜¿Ü?0¶ö†æé`Ÿ—¹61¶•^_AÆz•ÔšC+¯É©Â•[ÇPi!“@¼oo.p°Aç§U{Ø9°ˆ[C榎mCSƒSŨéø¦†ÖO‹¢¦ †]å¬H8ÅŽ F¶s–”·Ô ~CÍüC3øíù Ôbò\ÒºŽQЫ¥®â.9!]*@Û%ÌZ€/)ÇQã¶šP°­Fg»UÐÄ-8Ã>ZþÒ¯Âî.‰ø¶1v‘yˆð~[Ïçþ½Ú¦ØÓÓ"ÌÙ[db­ÂÖ=³¨åÐ$âï鸘°†‡Ù4llh i8(ß< µ­¤€€y©ßž%¤†æ(y9¹À7ƒJZìÈ»fj*¹në¥$¶CR~Ã¥ý6ßPts†™su“vzŽœqÆÚ^q×=CH7´ÃÛú°i!êQ1ëw¸´kËhh±¡Ù£¡U9wŒÕÇnÍ`ÓÔ¹×Br"h×ÜÜ9㕳[ªoöBßÛRöê+§à<µ$ê{ræÃ–ÖÊØ ŸPbÒJl–{¿Ò_øÄÐwVE‹>¹ÚUñdsš”£nÌÿ}¡¡èº£ øÜH]óâ¿í$Øñ"®|k®âIPƒ)üÐé?íÍãÿ¶ñ…»rH\pºòÙ® +ž|`bböÍtËÑ™‹¸$´rŒƒ1´Á^‹A‰g+ÞÝ9).{ÿ‹¥±æÆfø{ +™ÔŽûiñáôj/>Ù7̓­_̱s.Í7–ß± #£5­õ¯–‡©%Ûº&±WC.÷ɱ9A {`â2>-ó…‡a׈C„ôP@‹/ êhu‡+-“»Ëâ¶ IÀ\D¤­OV½ +ª`ïCLÖB2±™y]× wŽsÊluO%˜„S=µÑ§¤Ä—¼¤ ®QPÔ¾‘†Qu—FqK^þâgAöõÍM!‡täù©|g_~¸Ê¤–ȵv)&užs£½>îò'GóľµC¾¬åH?ïõ¡ª§î)xl@MÈØ­h¬xÒ‡I<½2ŽئfÈ5>)©Ð Ü<&Ø6‚ß’KÃÀº_™¡Ô:ÆÐy!½ˆ³c°wL,ìî²°)¸ä6=µ­ã Æî©­9e]B)xt§’^9ß}2€Ì¾0‚IýÝÞUñ‡JýÇBGyüÆ$ª`ûñœGÏ?X¤cÌ€ï^f2ö­4ZX­ñLEò(1çÀÒйknèw+é¸È÷˜~íVSËj&Ä0Gx©¡ÈßRzåú¥dßÚ5¶ô÷lÝÆÿÕ†XjhÙ1²êí€_\“3+ä {Æ.àëͦAD鎚ôN’Ýcˆ¨õÁš{Ž®²k^òojAÁ•~nõïq÷ÎüC\ñîwÏ4&esñn© tÇÞ[{oc¸ú‘s¢ü~`–ø´c–XÑKúp!¨$€‚Æži¦oÂ3ßÚ´cr,âæ½EÇ6†MrŒ‘üÍ÷+IåžYtâjü¥‚Uv{†Zx ˜«»¸üøŸÈ™o~67S¶§1i+}…WíCÅ×uMiçGÐ/NNß—P®8jÞš¡/›aI¿ÙÚ™…I )¬&—‘Ù;ºú”-IÍ ÏluÔžŽ>2±‰~±è@G©þ…†ú7pû¯ßðeIÀ;4ÒàöÁ¢{kC¥Ö§±ébøûs“ôÂÛëƒÄGìÙRká0ùì9æ×Vð³_„yw¿šgå^‘rKïrKÞ·w—?]î®Mp žXŠËðÉi^):Ç«€gn΂^þÖŠ›v昰ŽTí”–¼]—D¹æÀq!À69d¦ÀÜ*d*àD_l ½ŸmDðÁ""7¨F¤ìú¾3O-wOã’ƒ¨(ç(5 ˆåBðx_K,ÚƒÆ ã?œ§eÜëy’QöÞ9ƬZaäYGÑo÷&_"£ #+µüo·_"m.z8ÁNðÉÑ8ìUó)9Tóè¦b[OðŒA3ü2L±„m€˜vu¼¾`} +ŸgÀÇÚ‡Ðq듘d—”’¿6ŒŽÔcËö¨ˆ¥²–ÚçÓü’×~mcsh¡¡9²·ÐÉJŸ†Vâm×&MbñÂ6Q×…zëÓ‰¸ŽYFù ½âjku¯ÕoÜè/¿’Ã’wµ¨’^|êù÷/|=ÓTœt°Ì¥ï/ +X.96Ï èœ[Víž©þÖ3Qûfß:‚È’2sÎ,õ!Þú bñžMܽkç7"œ¤tPǪ·LRÒ7gX ¿Ž„Ø”Áó÷—y­‡Önß« ý‘ÞU># ¶1°H°yR©ò›õü‡­˜á›c”Fê·»FoÖºÀw—[+®.´Âî0Êσ>Üù×8)û‘k +¤å^Rq²NÙ{kîlŒT? HÁïõ¬ú½¬A¤Ö¥_ùÎÞ^›³cY ú•û–¶Ñ#_t`áÐ"ܱ>G/Õ>ã–ÅYî¨ËÞUÓ*·'qI®QrŠ­ýÊÜRÿ@A¯¹¤a×ÞqSŠ,íg¦¦‚KN ì­c¸æ™c â…[‚N9Ö9]ÿae¼ö©JT~k¹Y `>:GaïMDhHMƒlÏRÁŸè˜Of6y[‰JsÏA¢ö´„’%6ï¯Eþ¿qç'3 ïZRÙÆègº>sc—ÙŠþpIÂ(º½:€·w×Þ7ˆrÎËé)§eñ«¸òÍ/ãÈ”«Ë­µO‡ˆ9× +Ÿ]þÇjOMì®2âa‰®)ć•>ÈÓ­‰Š‡^Yùs×LÕó€‚^¹2\—¥´qk™x¸HFYˆÈC òÉF­?¶Q-2ݧ¨ûðÙÂåíE¢£¥¦ÞH¼ìéˆ=¡Ä; }gí.¾­æ¥]XF¼·â FÙw4M…]3˜Ü jîà rÞMÀ?¥ìª9Àã;Fб3Ø„#+“|d¡Ž,äúƒ%bÍ®…T°0ñÞȾðe&óó*§Á>†ˆ³Òv4"ñŸV6Û9z#§|<· ʹ¹>}¹«"—ìj©Õ +aùÍ¥.Ü[¿œVæW`sm5Ï;*ÿX­yè’Áb¼jJ嶆A¬9j•_ÏglŸˆ=~`g—œZ©{ø—šU û#¤äå®úW\Ê/½°·§ÛÀ//‰«ž^i‡ÄÿÔŽ-Œ³J¨€žqÉðEÞyܯçàvM°?RWMªð«I…ÖÈC{Å­ÅAÔÇíØ¥#â\:Bm`‰ÇqëèP—†v„œ0àû¼êº,ÇDñý –‚²0_Vxo ºÂ:îh…Š j‘9›€ÞœªOÑtTgxd_À,òÎqª¶&H)Övè½rί=°¤ï{ëâ¿A'Ú–Ð«ÖÆ YsôŒŸÝ#õñ!)>=(Ǧ†"çeÈô­B¶y€øa”\|Û7É ïÙº4A ŸòúÁ26ñ¨€êV5% Øø–ê´‹«øš}£ÖÑUõÇÆâ¥µzOË(:e_ðŽ¡?®N28 ÷§Úa —C&,RW¯B&Ú‡ÊL2ÒÎ “S~³öWÝwJñ#¼ê¸‚˜;'g©IwÿÞh‘íÄa@¿÷õø2ë`Í3Msö¹±Ê§;Zf]7êï MeiZ>žý@G.ÛÕòƒr\¶sñn¹úPÝ ¹Û‰É½8NÈ9˜æÔm óÒ‰ziëÁƬ÷“’çU´€bO6?ûÊ7JYh.»oj,¼”"“wæIÕ;*BÞ¡ž\éŒï£©³ì®±µì~@ù £±Ç#ÇåÚÇAÏÃ‘Ï»ÌØüC ¾æ¿ë F¤¿vPÅEh»FBªFö¶’^Ù÷aï,ºnj̹lg_ÙQ*T•ïÀÉw¾—½þiÏÈÂØûб¶vØÃÕ.è#`M?äçà<ÔpQ 4Y&HúÝ#…¦~Ybp‘…ÛYd“wÙÔ¿ÖD=!º`mò|„™‘þð¼'²ŸÍL€¬ׯºFÁ1‡Zd®s¢ú­¹%÷æòíw+½ˆ7=¸Œ»¤Ü'?K9y×öMdÄÁ" |`"”÷«ƒ€ùÔÄ<‚XèÕò‰›rFUHË#ìxäOË,â_®ðó"yÄþÆhÙC}Kîcg]ô(µàÖ<ñ‡¶²·ß´–FŸè¨Šým¥«&fOÍ€oL  æEEw”œüsî9Z Ç’ý2tÞ¶S´­"W:@9\aP÷­tÂÎ2‡áÒ1ó=luÖÚTû+ =~—è3 +YA ;Òóöi™‚qIë³»àñgö dìÿùf#=§*TŠ{ür}´úÑž[ö_—p`G#$ùå|Øö¬æžbnôãã ¼âKÓØ¤fÊϾѪ[ðDk{Í£Qé…€‚T¸2RýÆÚ[rg¥§â®µ§ðææ`Ý«à ³ü àñ>¯0Ùa “0³0{>÷O;°­ÍCû&±( b×î(XÕjnýJH\ëÇXm'ÄyFx¥KÍÐG3ø”Ÿõ‚ü?tââ[j^Á­¸ì÷•~BJ`^Hðë˜P§ “èšC'mcðÉ(‘=$y«£„l ¯ò>µèíiS[EÆ¡­uÊ«¤”¯ŽÀßnI »ZrÙ‘X±¯ÇoKI%æðã­lÑ¡©¥ˆ%þÑ º3O.ÝœÀ¼ôá¾côAÑ‚yÙ*=;C]ìg65•]ŸÄÅè©{õ¯^Dì÷S¤Ü3€ú}¹ üJß[[uý_Ø÷7Oì«p¯ʵâœóãäèL]‰çÌÝ©gÖFª^îÎ3á{ M-ºDüÚ86ó3°^þ?Kð.ÿ?ëdäçeliXƒL^ê®yDËû3)ë剭i +üxC:T3¡a¡hk– ãäÞW +S–|jg‘î•QA‹M5w|㘔 ”Zã2ƒJ\^PI©ßQSÀ*^Ú©!ð‡c#x PPÌðkñE!=úÅÚг«g!öÍÊæ 2ß~³£¡Õì›è¨­1ä{£¸øªŠŸqºþþÌ06ñ÷QXàµòqEï~ûx÷â·£ä¢×Ÿu¹­‚ð)á¼rXÜŽ–Ì-xÌæ,.Í£ –Âqk²>igžXá›FÄEY—‡á¯Ò7—ßoÆdÝÌysëû>tæÅqtÚÃØo4”¤5tÀ #ÞþÐ ?ÓRwqž_xO.,{ûô?Àîü¸%%#Sè›3˜°‰ s*qù¶qX”}¦.. Äíÿsq[×ÇQI%¸Ü<¸ok™8ÞhU~ÞöZ¡brOÖ>uJàïômå÷WGP Þ)l’sí©ßª|»ÞWúbWËÅlŒ-¬}2ÇÌ»¹>€Æ_v]AÉüe•ø£õþ{)þýK¢ì‹Î!ð“ÅÁê'BØ›uq'=Øtßl}‚Aœ{ÓÜ”sÇ'É}T?9XÄ–-óxǶÈyC6éÐÄgE¾Wß7 +h{Z:hGN)ôÏÑ‹[Á÷ëÉ9 Ç=Ф“]µ•¼ûq™ú›APx}{²>6(';§Y[3È´m5 Ô‰è{F +È+…ÅÍ‹²ÎÉ8É¿-w—ßöMaRöô¢à“€†ÛÓ‹Ø»1(äúe ×NIÞmkÀ#cˆøOF.i_Ï£¸g©¥»:uW'f¹¦i¹ë€ç^h­y‰Þž¿;42û‘3¢±.åG…¸ìå±…‰û¼BÇY0GKˆŒC32àÄ +}è)­èíƒøìÇ»f^›WŠËÜè­¾³ÒVzUÁLý•]ðð>ùÚWè×?†”ÈÌ aù3vyÜ%[?ºr[I«2uܳ¢“žœ26½=ë¨zåWÐPÞy&‚\öêâ7õÅ¿Wù ‘~ÙŸL\ú®–Pà‘Àb—Z +h¹)W‚€oc¼$äܪiŸ_à• ?8G¡ šÆ¢çbò9­ çÂB{ut@ÉÄÉÅå‘>™£qþ\å7}²r˜A%"Å9 zµ>Qó8röd¸þk£H`^Úš@'zeÄlÏ4>Ï9BÈÞ–q +#Øš&ÐÇ1m†’u¾µüõ·óìœË •7FÐ)ÀûªtJÉEK}uñ UïNBâo~Õ‹zݯDåmH*ž¹e°ôãRó¸Á%aûÑ¿5röï-:Ë1RðGøÙÞ©=¶‹ºV¸ü½q‰PPԽߙǕ5DÈò$Ù+'‚ü€é8yûAQß¶•=þ§”øñ7¯”T¤—\D8Á/}þÕ-ï,³àÕ‰QDúy³ú@JÈúUÏÈøÕÑxç¾ò‡}„¸_ù•Ï¿ž$¦Ý«·6TýH+ÌÿÃÐXpß9\ôtw™whዬ­“@Œôzç©¥^%³*8/ †õ"ú¶œZì‘à]¸+_YÚë´×%ÿÄ+ˆþ—YT÷JÇßQÒóÏèø¹WÌM¹·Õü¸+³ô¨Ó ͹7ƒ2V­wŽsN â#õ1ׇÀÑCe½“e6òû$Õ1!&#¬e€÷uBºOJÊΡSŽ´„Ê=5<3 Bäo˰™GFz_I,°ž`Ízÿ|#Ç9EË·õ@«xé¿ÎRÓNìti{ù`Ìô9VéECSÝ·„]ºÜV}wûñqÙÓo»@¯OZ[ªÿptcßmò!öQfù0)㌵›œá™ÔºÇ0ý³èŸœX¸¬ —ŠR¬¼Œ¹Ô1 »fr‰Š<5lX±·@ª²ôÖ>Ñ4VÞÞ˜ÄæZmñ)ÉÅ›cõ±ëCèŽAl’š_qw•rÆ$.¾PPÊ›9¿×&>>9ß /tËhåjQÊ)'þŠJ˜øÔÖ—ýæÀÀ!,ˆEîy_òòÜ=ýÕŸvž`ßäOudŸ{í3kWñU-?õŒ–Ÿ~csŽ\„Î>ËŠ½Ô +ZÂz2ÄÜœwc +û ¿ðþ×­¥¾²·çÝÜÓ‘ª\r8'êÖw¼š¸z +á¯5~ËÑáœ,°:TpͯªûøÉ*jõ©™˜ivÞ-(ÿÖ' /²wÒRÊÝ\ºkùÞÑ_uwu°æÑº„œAÉó#:íáw ]•žnL@­=e¯õÍÅ·ûQ)?qòŸ}=KO8ï'n+ÑiÎYð›°Ž ø­–¡ã•50g£‡VÈ“ŸÃ’—q /k.…6ßQ{°Â :øMÇ+LÊž_øy™Š<²àá.%"Ë£¦¶¦I¹ëƒõo5‚Ü›j^êï9è{û(>A%(8­`æžš&åŸj€&ŸÀ$?ýz–\|ÇÞQ÷´¡âÅw´Ì_÷CŸ}7A~÷=*õÊ?ưï~YDkº+îµÃ£\h½?ÔñÈ*dkùÑ1E-v«ø„îÑp`ºADœ„[xmmŸÔÈ9«vk óa±±ô²[xVBHýqŸýÛJ'ö]"û¬””sÎ,(¹¾$*¾êè,yºÙ_›èC¥ºúPѦ†ÒŽvðÓÝivUPBÎ<ŒôÉ­~ºÒ’uùpüñ¯E|Éž•ê­‹±wUÝ Ì×a™äÆìÈëÞ{gëcý2T¶ —Ö°êÃÚ)¥¸§™%®q~µ©µôÆ&æ»qdÌ÷s”gµü¼ó‹-å×={oêD¾í'\nª}anª|1Žˆ9iâeÞØèEóú^ݹ׃Í:ïœâ ÃZ!ÝÜ^t{}¤æ…[ŠIuŒÁß„ô¤Ê°‰ƒwÎÑJmÃÈ(Ï2éß[¢á/«‚Ö°žØœ¤dZŠ®­þs×H†ìYXË"Ê#çÂ|Ê6‘WÑÌPò«nQs_|OÈ~úK?"ñâB'è¾¥žêQ[ +>|} +›¹·À- wM|ºk†X¨—Ü›o©¸gî?i¹‚O+Í#‹„}«W^„¥üØ Î¾0C.»¹Ø +ºeíßwB_ûf±Y–AÔ[ 3ÿš}¨>ѯ ä»çp)[søì )³Ü£àwEBŸ†‡^—Þsš”Ò‹ùƒ˜ã™£­ôÕ½œ$$ýÒTòè›xü÷RZÑéZÍ™¨{ÿJyvÖÑ ‰üü#£0óüRkÞcCΕ1lü añÓïFPO+¸%W°)¿[ﮌ>Òªìåô¼ÌËzÁÇ_û ¾î­yö¯Y\âs‚üë©Oÿ£äåÅ…¤Hhä¬ÑŸK4ä' –" œ#å/l}¥×U•× ùñ¿uƒSUPrÎNcÓOËIyç—Ä?æÈ§€trº¡"æ{zÆ‹oŒå÷eÜ‚{̼Çß î|ßRñæg-õôJwí=÷2Ñ=]“æ’”¿;4P {!cGC)t·4¤Eg»gëÞ­㼑3{S‡-`k]³õ߃ðK;ƒjR¹s»1ŠÙš® Ì Bó¤m›1AɾäÀÅk›Ð±SlÐscKå½õ¡’§¾™J€G é^56+RÇé“Mиgb×§éùþyf_+Ú3Ó±Ÿ܆ƒ%6Õ7Ï è)•~àos¤ç,©Ø5CÉ_ÅX‡Gí¨©µ‡±(¨æÜsìjçt;ms¼±Þ>HO]îE¾š¦e_Ã'r !cÝÓì² ‚ òk2 çâ‚Æñ¶–Aöªˆ —›½:}ÐPªCF~ð`ûf*ro‰E›Ìm-·«¦ƒ5üâ㸌_¬‚3ö¾ê»A6ëÀÄ!['0I‹ƒ°¨m¥tkŸÐâó|Dšc¢î­KFÈ ë¸HŸŒTÙ#q°ÌeÍTø—-A÷§-ñè1;¬l®SI­ÛR²!›ÓÔ·”Z|¼Ñ40q»KÁg[‹ä³µ±çóŸ}¸È¥†ÌBκ„–åŠô;œeFê¤ß±v–ܰŒò*õ­ðZ膒Srv¡¡ð¼còxm’˜´8€‰Zhª»cï¯ôµ×¬ôÒ6ƈ‰–βë‹-7ê_íéÙ¨žR½> ]›@&-‹šö-"Ñ΂4p0^¹0´À%…MbaØÜÒZ2=rF™gŽQ¶>ŒOZn¯~¨_ž äžéÃWœb%߇̽.c]ëG3ŠŽù¦¥æåW=ðß«w–º±‰–~ä›È÷<Üò÷¿Ù:k£—»ª|ôó2á-í´NPz©íè&|P·Â_ò¢¾gä¼=˜ÃÕ® WÞsŽžØº‹oõBŸ}Óyñ¾¹âæ0§üê‡GW¾"¦Dÿ²Òxnh¨¾)#ÿ.Á\dd½þ¶øéådÜ>óŠgW¿‚â¿Í|só+øÇ_ÙÚ€yl¯¼·1Xy×ÜšsEBŽ=ÙP~û›Ô“¾éº„Õ)lÖ%ýº¹¥ìÍžŽ‚ØÕÒ1¾YjÑŽ‚˜·5XvWƈým¹³ü©g–V:D(ya©Ë³â–[«£6úÑ!`›cà +^úÅvЫ­Ñ3mø,S;4Ù3“³“.Ki1¿­ögß9X€¥†ÔðTG_À U±!-oî#zåøJ€`KDЧe*âh‘ú¼Ì¦¸çÐYÃ\ݘ@¦ï¨pß:]BŠ;%£fÜXïƒE9GáQ›Ã„DÏt#fkŒWî™Ôy¤ä NÍú5gkŸxÙ¤ÕAì;ç$1%8/¤¬ ²»a‰fY…o—øM[ð~ Àu‹Q±­‡–àšb•®Eöm÷WÝqŽÔ½ðΡ³=Jd²u¼ú‘¹¯öÙëb£fCý.2¤çRö–šû—[Ç"Ÿ-lH §•äSÓ«6&HYn >I!(¾ÜL<ÑIþVÍ®½±ÚÏÊ[hüÃgž54Ö½”óëÞè›á/Rº[J/[›D¼ f¹¿> +ð݆fð}5¿ê& ±)Þ)tŠ_J/õì´ÒOIZì'Ækš`OÌmˆ˜kŒìCë?Zé­}1FL½2Í(º£é¦Ä °÷Q9O Ô—ÿaé#%NÐJÎ +ßEO÷OBÒ‹â^|GLˆþQT˜xjSu“pRP{rŒš~‰Sôø§iBÜÏ3ä¸ï†0q?Œ’/j…EwÝÓä}_}<:ùî¿z¡n±ð›Ì|ž{:Ò? îµ­=뜊•tn}[h§æƒŸœ4t‚òh=@;míUõ‚œkõ¯Ovÿk÷ãê89›QùñReüí_¦È™÷³¸l×(,jg˜©|?M¹ÖZuï;#åwÀQ¤Â˜ŸÇHQ‡å‹Íú²L©ßÓbóý2XªœÿñÊ!áÒÊHÝûJÆ£aÌÇ3³Œ”rzÞÃÍT⎒Pìš@'¬¥fæßÙ¬ÏÚ–ñ)¦.tÖÆ¥¸~é[ÌÊm) ì›%æØº ñ“¸„K”ÄÿÅ$<°B³Wúk_4‘ý{cnÎ=¯gwÏ ’ƒF]H'à„Ì¢ÆÅqìGÓ6ίóÒ6¸»Ô2t`ˆLLœOƒJߘcK‰Î– K®{¦˜E«cäÌåT´ž_qu½§þÅæ1ÙÑ_­ç^Øc”x­<€ÏJ¶eõ±–îÂkËy—7FkžÔ”2ß<jD¼vÐüÙ,à_á’3C¨èånØ“ql|älUXÏ#îšD›sôR¯R@ jÄ,¯” Ú”rjã‚Be?=^Ýy¹2ÊÌ7 12æDˆ»rÝi2ê±FŒxmëÄ'¬´bߘa÷”œº[Øò3qõQzÉuNΫ¨”ß"×Í:‚O\Ÿe”:eB䪬•®ì%ĵ#Ò~SrÊžFj®9&jŸ[†«î¬ŒDjCßúåÔʵ™n®¦¯¥¶Z|Á-%Vû娵¡Ò? M¹g‡qßõ@âOŒ¡“~^î=]gÕåÄþüâòoÿh©za{ +™´Ô”{Ã,H:'ÅŒø¨¥]臾ý+çÞ?§ÈqgåÏ©…OÉù9ÑÚŽŸVÅÝÇ6&uG.ô(©ÆÎŠÛ“ä´“ .Wôî|ÆãËÿ²C‹BRÈ;çpém×hùƒÁÂÛÝà‡ß‰ n~§æø#`$UâsŸþˆMyò«¾©&þ“IÀý¼$j86 xaÐb +·µQÿÝd°Ží,!¹âÍCXæ“[^…|lëPÙÛ•ÿñ4Êþëâõ™‘åã··5H7*õþ89÷áæ"ecãšB'Õ„Â=6ûO3©Ò-ǧ{•Ü:§Œ² Þû‚z¿ðˆsÀßCŸ/µß”²ò. £R~\é¨}î’²aºöš¶ÐÓ=5t``ÀŽÌḺ…ÍØ1° ksÌ’å Zö†BÌØTw4/K¡NUGCHÛÀ ÊÈù!).k_O® ¨Ñ!%>'¤âW^l‡Þ›gäŸé­}÷ýXýÇ•”„_­mÙ·ÃZéàãí£Øø†VÐ’J>Y˜ØOV&)d¦×;¥èô…¶ò». <7¨%•›û¡Ï| +>¯äcö´p¤ï<À7à î<ª}“4ó9žy6~`$Ç2Ö>…IÙT ‚ t„sžU»0ˆycìB=]ãWzå]Í‘¾[“ÔL{/ñ€IçzêR~Ʀ_Xî« üÝ+@×^ñV­ŒRR×¥´B§šµÏñjÖ¥ìŠ>íhIÔ6Ran6ð uN9ìÓ0ÁakŸ!g­É¥[ +VyØ©÷CÈÙXÃ-gÖ~ rKÂ,Üš¡8F‰Éú~\ô´|S&¨ºë‘à3M­wf¨©Tìü?Z‘¯W¨™¶N®±_˜­ëfÙÆh{z&áØÊålJ ™«LÊÖ ©À-cÕzT|¼[+"¯Ÿ¿Ôyᇼ9^¤Àm½•·—;*®;†ë^I¨ÙGPi¿iyåלsŒªÙVìÛFhÚY…¸äw_´ÔS{g©òh¥¿þÍê)e¹˜ìQÒ«zdm“â‘â+ŽWx¢È™óµ:Vù`ˆÿu ìíÆ,5ß4ÊÏŸ#žSKïzeør{kéïöö¢«znê¯Z^ÆYCSùSK{Õó­iB‘]ÚˆéÀäüÞ +ùpÈQÅûÀº[‡½ô)ùn±Ð1…JÙ8&d £ˆ xö³Ëbï] ¨(ÄÿlòÛÿ¶Sˆ/bÊ€œûÁÒžw}±½äža€“ÿúþ·ÕñÏûԦϛ 䞫ý`iK»¨ÀÇþ¸kbá| "ÖÊ4«Ì؃‹r)Ø ˆ6»çhÀµñS³Œ¢«J~ù=×¥xq’QÒO.º(V=kYÈH­»­iDœgŸ±9C)ØT4RÝš¶f—®«Ï&ë釻`–ɱVÇL¯`cŠ–· ÊriÕC×dÍ3ß,*qušS1È*ÿ£­>ù×Å6èóõAÌ{[wí{_áÝð<,3 ãàW¥ÜZë$=ß«2·ø$¯†ZîÑ ·”Øô•QÈK™Öa‹<\ž}›°2KH“ˆËžŒÒÎ滛 m)³j[Ψ +˜€‹>£˜½<ŪR5ÕFí-ré‡vaã¡]Ðpé½§¡×¸”ü­JΦ„Y´%ãB{1¯Ãô,×t#r¸¯k(½jí.¹·6Zó\%Î9³ÔSõl[ͬ”ß•‹ª‡Œllxƒ÷«Y°]=®èO;¢ô`©6Å)‡ÄDÞæª«Ý0Ä(°Œbâö-VÐHÇì[èèc+¾g&Vo«q9áJ ÀÏäÕd´k +›´­ÄfÚ‡Á/,È7NµxðÇ!-©Áí‰Ô\Õ‰¹ödSʃnÉ8àõYf•[É„… øñ2Ÿ2 Yë2Ô·ÐÒ0‰ø‘ý“^½ˆ¹ª`T¸äÄ×4*! Âç´Bª¾öd¡þÒ+á6gÙåŽ!Jò†„–³2IN]¢%-³Š<ºFŽMB/жc_¯Ï¶1Ö纸N)`!f¥}Œ¸6ELÌÉ®‰ÏØü·W øR=µ.rÖǧ¦V…Í<†KËÇš'ù¥Ž9V©OË‚mkÙ-¯ìò*—\s„b”ç×P+] +rÑú,)Ç2JM]Wp¡]ƒ8diŒÔÕs*hµG‘Ú¾«âïBSÓâdÑ,ië†q±ó] {ö1âsdœƒ+Ø3# +ƒòúd¿ [à•“kãͰ¥¡Nô$õNÝ‚Èÿ²"èñ9nu¤ò‘’›qj +ÿáä>ù|¸ž€vB7dìê9nMÚ€q¹Ä-À7§9•kãÔtK/.ÊÒ‡~³1M+\cç. 0óSlhpx.àÉקȹ)ä°ßØÔ°® ÖTT«´ƒ®ƇXæÑvØê”djFÅn 2ýrZOÅ©_cd·Š/jR~6w“s3ÔµÊÒz¶Ô—yk¡2ú` œ²c¦b·M­½kʮ÷Ê:Î(9\i›9²7ì[Ø´€™ÐÖ%µØ‚]¥&¨£V.÷Á9gpûf*,¬'4äÒÝÿ‰!”{d¤"ë2ʧfÖ…¬=[Z!Û©àƒ¦ÆÖý¥Æ®/€~T„H­’l§ŠQ½!Õû ­= #õ™šžÊ÷< æÖ1Ñ>æR*¼jÔ­SÔõÏ ­˜¿¦¹a}–Sé˜`æl̰J3ôÒÕ9bUÑÂ[Sw4®Ìj•-ôxëÜH¿ev°eC·׫Ô9G)ñ©˜ð“€½¿ÜÔ¶‘3NŽÉŽUÔêÕ3a3æY`ãìj6lSÏÁm›yL·–‹že—]^ÆæºµbÚ–ŒZ´ pƒ[I­Ú’Qʶd,˜ßÜÒï[l÷š[6ÔlHÐÜÒ^wÌ„[K­1 RÞ›‡) ¶HÏU= ôÅÑ<ñÉÑ®8¶7؆vÍ¢–p¤ˆ±Ad–YÇ…åë3 H¿¶µóØÖ*qÎaÓׯq–~xÜbWýËÕ1t|È xÕ ì…æî ±OãPt69¥"¸W!ƯHø•ò&ÔC}ú…u˜øÑ)ãÖmÉÚxeOWÀ ¤û ˆ4¯š^é—¦î‚Å(Y…7>™üú¶~®kÌ¥íµÌ¶“M’f¸±Ÿ›f›×èÛØÉŽ>Va@-&¯L1 §ëï*;0¯—Ç¥²¼¾µ4Húè˜æGN«=\Š·õšWÇ'¬L‘²l“„'`â}ºf‘GÛÌsÍ72=ó<´_Ã&†—9< +1Ž’f›àO¥x”MÒ7õ³Ó6gØea ½­çÓ¶æù(¯ƒþ²Þ0²gµl8È ±¹=hìž=Žœ'6âJ=2X†åƒ<[¼Õ–\D4 3òÇé¥gV‡ž8Á>Xµ)AÆ. @ŸiÛªnãEPC¯ ú¼>ͬ°Ó+sxXäìù±Ýÿÿ9zë¾ÄÖö}ØÙ1»föt·£ÓŽc;vw¨¨XHI7Š…Š +JR’’b€-vwLì½ïøþ>Ïûx–÷¿¨Ëµ®ëvt+\Ú†j§˜–<#c—Z²Ù•WF»°©‡£-õ{Öz܆–Q~ñÌþ& o¶õ˜ì-kW§Y\bÂâïù=øy_CÃOñû=ëæê´’‘;!ªO·õ°Æ%ìâÆÊœëíeI+r&ã`¼£oÏÞDÝxÿâžð’šU6#i…LˆÚ +Í}ÔxkgÙ{×0*iEK¯¨ë ë#ÍÄiIK锲:!ï„;å´ôm~^ÝÓ°`èdÍk«í|TÔœ”Q¾ êir¨¢‘!ÖÜÙ–º,íÆo÷Ô­)ûÙ.mwݬ²6mY[|4Iª<eÖø¾;Á3mšëk\2JÆ’œ^°cbTبÐ] ¹lÕÀ¬tÊh VÕŠŽCŸ‘'8¥/vtt覉…Ù²6à·,uðÕfÅ´Œœ6 hó]skëÅ|ücGco‚†Z1ò×-uè- §Ý5ÜF2t5Ä«{9©£C°¥nǦ¹£c]×wò!Ö¶â×ëZ|Á®Ev)H…†æ’^µÏ±³¿7ÕÖ·=ÞH[35aVõuÐU)gq½q1sh¢¥ÍÄC„ô B´ÝcRcRÑR6QëÀ±§5l伦—½¨èÕµ³Rê‹ +îN+ZˆÛÓ’móæ;µóíÒ­‰P³3*fÑöX ãpšŠÚs ‹ÆŽ†)]?×e¯[yÊu?WÃï-lïMd÷D›xÝEú&¢×T]þ–¥G°7Ñ-Ýwpö§[ºWGˆmG~oºch¦Çzàê¶ìN3é. 2yQÉ^m OiYPË#ÞÜO‹vJ‰[@¯²0ËæzÄÌp3fw²µçp–;²;Ó©^çWG[ZæµÄ¼%czm¼³wèëÝÿiyÃJïÚ1y:î`ªchÇÙ£QÓÕÔŠ=GçО“ݽï`Ñ]Z:dR†_0S {³tòÉR}ׯ8“´ioaí϶ &ÙíûS¤ê'¿níêä¡,r¼®Wƒl&K¨M=ˆ‰aç7&éÚ蟬Ý-±³‚žòY©¬Õ6$káµå ·àÌldüÉd—rßÑ!\·5SÆåŒL£¸1}dPˆQñ†`BvO‰{¡¯£e­)ºÛö-í;ÖÔ¢º¹Ì)ê*Öwô§©šy‰òæþÔV,Ó—Ÿó£”Vá³cîn›y’ s¿rRÞ0 +êÞ¢¿bB!iSõÊeíü O±Y†lR@Ã×Õ‹›äEB–8™TAö ƒP¯»ÁLŸ!Ü@œ¦u¨ØÒÝq µ ¾:XÏ6¶^d…ì99B›¨³x¤K6u‹K­½í™ šºÂY%6nYK.ܲ´4¬}=!ï@jÛ™Ÿµu¤w·lN×ÍÚ²q:× õUãBf†­‡”°0ÈÈ_´®¡ñÁÁ''9°ióRRîŽÝ°jj!-êš`³JÒ.i-UÕ/›ÑËðú©óÃÌÛPg…F<„•p„Ùú¾î‹°¯JÇã•é„ò:-OU?Ü««ë&÷Gv ›ÞÛz‘‹º.úª¥ »dk¡.vÙÌ(ßgÖn^bÍV‡\¶ZÍÜ‚SªL2½pT9<`öCya »Y¤ðßá«{îá«ØOŠŠnŠj$í¥sJ6lÕØ‚[­¯7QKögZ¸³¯Žf:”;Îúºu{#iy¢«Ûiî YT½8µ[¤ôAF„½ÐimoÝ”ŽÏ1 ypË€gäKZŒB.~\Þ‚qªÉà )6aÝĦìŒõ)·csÝú½)ŽèpšÍ=[hî=q1Xÿl4ðÿ^m<_` f¶ÌEkw紖צïd&L«ÛÉNm;}tˆ‘3gjeíO×7,›p Y1oÍÔѵ;ѧÛkï˜57×N™¸ VµZ4ÌkuL¢¸ÖL]Üå¿$1æpfSAD÷¸W©Ïh¥M¾\Š$…ËèKÓuqÒÆ-Ù.U{íæø€uÑ2 Ô÷·ª¥ü±h!M5öp'aÍô!!]­mÕBõœ!¨¹£7×—Áåíà:CbY÷œ{T”„z7ÝB‚XWÅôÎøMK¿tw¬[0¯åЭ¢†,ƒW%ã©B¾;À³a[YÃñMd¹os$‘Û:UÝÊ2¤P RŸâlÊ=H6ånd,ú—·ï²/y?‰ý!Õ¿ä*½²?PÒh.6qákZbÎÁXmþî8¾È¡®ƒÈ:ûÓxuÊ(.MØ[?$çËKåݽi6>¯õLª‡¸šrqcçg‰ó¡µ¦öuUløïâZDôœPÚ¸¦ïißëÏpA§-ÉË‚6uÈŒÃÉvá¼U1m’ÊXŠnö ›.iêKµŠµ“Ã"öŒ¶¿u\Ò 4µ…ÑËÊ® Id_K7³ N}¬ªoMêe¬ª¹õ3âúl—Œž7ÉG„Í6WY†d-&mêG«xíÉÊîÆa~Ž {8ŸË€2q¢·„ʺWÍäžø¶*“DgŸg'£Ÿ'ÅÖÜÎK­½_’ {ËÆ¶ w÷¥ÙԢ晑îæ@·-›É%sJlŠc¸aQ i*ßÕ¢7Ñé-tYF U‚'ßV"@Eœ+©u?¥e0~zéîæù<ôr~6á:­†éÑÇl‰0ˆ¸•SÚÆÂ‡±njbºÔÄÂY-½Ð¦± +£¿_RÐÓ)IíéÖ¶6(¢ê‰ÂÏ,BWF -Í®ySS@}_˜Ž“™{J+¸O¨*~,`×6·ƒeÙ"“ön:¸’ @—L5·/²G³ Mûs\ÍÎt¯~}¼wpÎÊm7rb)^ÄðºBe}ƒP™@޶rã%­œh­ -E;P—4¥i£î9{ GS¢%K;Û Tu‹­¬ná"«¥c ‚¥Ø|Ê«Å÷Q0Ñx9ïffî—˜Øï)W2 D¿½ +@¸=|‘þC€?ä×¼”Ú?0/])9;­‹MÃ¥DfïéÚQÌW½õ(›Ò¸_Kƒ©Q>%•î$¤ê9¶ZpZÊ +Êïº Îã]ÏÌëùÕÓìöüEº[L4õ'\ÿ„Ë™„:Ô*ẅÛ3­j©žT´!¬JQó੹®o®¨–µˆ¢Îy•Ôèî§å´ÿž“Ï»*”\ÍÊá]ö@\zìžî挽ôñ3ÙíÉ[ˆÛïW>¸ùûA-Èk¾‰‡õ?Stö$ÌZp‹–&¢NÜu åwµ˜3Xu#!$ªÉ‹Ù²’Âd-ų[¦2hªÏuÄ¡àzʰ!z’“ÉøÍýIàŸ†¸%‚®æ§`݉e4oM—3£ÒH—-kºzì®;´f“8ô­œÇÇqùÈ®^G5·oÜÓ»LloIb3‡Cš©ú@"Ùì]œW÷Ka:ö÷â,ü½äXä¯ï_Eý™žãÞG¦òHÌ—b"ø¸6ü÷™T‚^© Fˆ¼~ª¹ÇÂ1F?AÊOJ+%îµ´)¿’rÙmïO>|È¿œ™ßz5Äûõ­Äíîƒx·ûORÝ¢h—¼.só ÂýŒÅè?ôØÉ6´wq´»ov¤eUò›¤[{Wÿ‘ΞK®¬5< ‹¦üòÁ«ärTö·\ø¤,þOÁ‘´KïJÜüÈ—cY—x”º¹{ãݲÀºß+«Õèñ{q‡(WÑÅId¦Rƒ|tOßDmCçB…툮ÁëÝs +9÷Š«dʪ´w¢£ˆ?¾{›{éþ½·Winýàn7žä»]¾ìîæîžp R.¹™P÷‡ÇÛ⫉I„ÇÂÎâձޮ£é¶þ­ÑFú”’]aQ¨z5 +_6dïë:Y\áf£e&MP{ÔbdžDŠåo|ô> (þ#9™t->z+9&Ó]ÔÆ*\Õ·âÍõ¨a¹ˆÜÕ¯-avÌfà›ÂÊÉÏ´RñÕ¨Ê1ÉÔý#jÜžzåºývË×í•g¦[PÍÍÓævß=Í-!}™IwÉÀViwµy )M/$ŠÄRKïx¹u- Y·êSMux¡-wb³Úô…»EÄ’HLmù18†æöÔ»Äíp¬{/sÜÞû¢ÜÞøá/½ñGÿTX̾ÍëTgEBÄ‚–Û°¨çs'´}ÍÃ’N0O(È£p'’Áø©G¹°Ñk™å†«QY=?¿ £ºÝ|v{ñºÄ-$šyé}0Ùíñ»j·ÞH·Àø–K~±­?¼ f\öª¿‚z•ÏîIœ3v·Ï´ÔY5}õ-ŒÎL¦ÜŸÑh …ÆøTþÏü)<•}éÚ“·ß®ú»=~Yàö*ãvë è’ÿgü5,N©°wÏkÆ]O礖ÃKð†Vs"³g BãïC«ëV¼Ë0ö'è±§%Ú›™9=—Cc.ǧvýì÷séÎÃ8··Þ7Ånw%^ò‚ý@Ç ¸ó©ÔWÆ6”ߺ Sôµ¦÷re9MYXöJpÌOñ`Ñ·!„_Þc.E%±ˆMfÿèRûã]÷¬KƒÐ—"Ïü©n=Ánï —âŠu—SËÌ"éΠ^®dêC®ŒõH6f{Gµå`çÀ™Ö¹žƒl˜õƒm/˪T·³@ÝW>Týüð%èÒ³÷P·—Þån/½ n^¡„Ÿ½¢ë~JãÿœZª½ §L~hâ8³z­0üqRÖR¼ eBl"b´ˆÍðjfˆ?±Ú&R¨KipæêÇŒBÉŸ ¬Ë@ÏýÕpéS ÑÍãm¹›û›ëpnÞql·ç~„îzVýèá‹û!:Sü[2Ôú8*zÕÃg.KšÚ—š–kw–ô±Û9c ÆŽ™\ }Ì»;ý‚v<*¨¹žÖõãëO·„>…’/]¿çöçÍÐKQ)M¿„Fc®€2±ÏmJnÁÐJ” y¥|á0¢Sà@7vOPZâ‘ÌIï"„ì~tzÓï! äË~±„Ÿn{f\úõÚ'·^e@½1~HËkú“ïý,ì®4Ë…¤E=éR“Ç$”³´>chp°º³Æl·ÄáC¯áÅÃ"øÈÓ äf€‹*ðøæ––ÝòK +Hø{XZÇe¯0â¯aqÌ›¥e¢$<ÿ¤³!`r?¯$%­è—®=­n¬P YñB~gr·ÐPUß=™ƒ£ë|°T½œdz^*¹íMùý]@ÅO¡±ÄŸ£S~NÈaÝÈ.ïy”‡?¬Âª_Щ–Ïݦ U¾jl¥¹ô5IãÒšp³‚ƒàuòÁÝ=êʾ¹¼®ÕSŽ’>‰Ìh¿êSÿËû Ü¥w~0 J.=z•íæ†»äÃr{ð¾Üí.ÀQ^1l·¨ó/y•ZJ½1]-i[2t·OÕFYD°O£ +V¾D¢Â°y£…õ³%Þv”>ÿ¡¨Z\¡º–”ËùõÎó·/òÝ^}„¹=ñ,v»û8ÍÍ/u)1­õçìÜŽ?šÈÒSWþ‚ŠY¸l •¨:qþQ?Lد©ªkû×uÎçº6²à¬ù°B´êmNiÏÃ’êû•ųøÂÞû¯á¿ú…#.Åf6_ŽÎë¼PÜîQM–ù0Ù#q3Æ®ê†-ëË·'™{3mvmI*3²»´úžq¥ ¢P…ï¨õƒ‘D‘g~¹À3¥°ýEb^{j~ýsSTUgEÕi›Z%aŠ!~±QÁƒ*z‹ÆÎ†Y%5sAMÌtÊ Iv3GÜÉŽç÷Šòz†‹X­Ò@Bø ‚©õI/í’̹åDýíá›ÒKŸ"p—£r»nDúoæbGŸ‚¨c¯³k¥¯kê´Y}Ò1†U'¡Î(H©³Ò²€5=®hËÞÒäÔvÑŠaWb£µðí¥”Ö±DÝbP)nìy!jänZ‘ð×—^—þ¸ïöØ`3ô‡ÀØã*l‡_G?Ò*â”ìÉ—® oVʹÅp‡DªÀõóUÅ\c~s‡!™Ù¬ Á‘doXéÛR¸èY\Nß¡±¸;ÉYÍÏJªxï˜ò$CÏuB®-›ù€ÿÆŒõWû8 ÷qa¥Ÿ]ÙT¤’‹±=ÜT±î^wÕ:UCµø*zž&&W\AÂÛÔ_ÀÑâ§X‚<¤¹Qš)â*Kµ‚>°KOŽ’ÊŽìøÂíLú’Ÿ¸¬"$[ù¸@½°%W¥”2‡d´€/Êå÷Êó¹ÝÚ¼†FE ŽÒÿéð@cû^ãˆ|ÿvOTGoOhWß@ì`¬Ä,V\š~ꎥ•|<Áį™Ð™ zÜ¡ïﵨå:õ[¦ »»ÛÃê{?`(ÚweÃëøÜîÛ¡ñõ?Çg·ÿîU{90ûSTVó‘¹m¿DƒÚ¯¥UˆoV-Þ}}x“J×>&i®Ú±Òá«#8ЪÙ`Q§L¤Á~v"—ËMhOáë¸.®Þˆ¤›?T’Œo‚Rê®ß}žzéÑ‹,7ßä¥Ïqµä‚›#àBÏ&ª"X×3ž–RR¦Å°€U-¹À¥d/Z1ãÊ–¢Áºÿ€@QÆå!Ý=º®@[ÚÁ—ƒÛ:DÑl®,‘ÞeM­"T šÝ1T¾«Gî”æ õT<˜Sß…=tÔ¾.2­°8ç ìI-Ó  ©ÔŠ6•zˆ.ôåI¸Ý‰¢ÞÎø~^__ *á‹•U< ÒÓ£Êí4“ú‡µ”!"ïªõQ1r -襑슡iéFø®è¨e›£ÍÌõ1vì‰Ã°(Û+ä‹Û²à*§Úć³\óÊXïI+ì–ʵ¢Á’Î>E6g`Æê´¥‘[­±0W3‹:Fg3<ÓK?!hÍ!ÝR>ƨãÇ%øDGg®Ÿ–úùÅŠŽ;>HÊuʛᓪ®Z»¬­Ô,î*²H¹Fqw±¤½5XÄ¥:Ty<ŽªPÒ«¬Òô •[ûyà™AnÕšŒß7u´·uìZUóbê’”\|hi`íXëP3ÃŒ|«¤)Oåǫ:ÉQz¥’#ªêïéK’v±c ƒì<³¼n‘õ fõýÍ+Övꪹ•´im!N47œ:›,µ¹Óü|'ürm˜˜6+%%Ì)JœšvÌè#kFßJ˜ÒuÒlŠ&ÐPGµ»˜]ýTÖz¥´eŽÈúªÇ”̬ !Æ¥élØ1 u‡ÖfƉ­6ko¤"du¸&tNŒ˜×0Ë–mýê%K¿bJÝŠ²ËêsÌf¦^Ø–/éíÏá· &´ÖKý ±'•¡õ#ßÉœ VOhS»$¥£»?NÀïI›ÒŠÛwl"ݦ‘ݰ2L.<µ·µqt]dìŒÀRÆù ·FnáKCÒO/`Ä|º ¨UN¿¥º}ÀŽ 4ôû•—a®•a×HêÓÖ¶fŸÁ!D/–’Š~Ú’œ™»g&í™H3{]íÂ@ÉgScì#kGÂ=›¨äý¸ª¡˜C*ùH)‰¿=>\GYšìê›Ò5UZ†hI>)\Å%é„̘Q5êr¶06œ4ØÁ\SÇ™«…ÿe¡Žy:;ñå§NbÍž _8¯$dÌÚº:íz>{ÖÐÍÚŸlå쌶·nZÙ´-[Cí¦^¾ßWòþЀÍ>µ3Ëj"DßœóxQ ÏÙ6QË$P¯™|OGoÖóy~ÎË; Uÿ«kþg¦žs<†¯šæ Íwͱv'YÌu#¹tFŽžRsÖÇ:˶®®ESby¤¾jUÇ„Ùiµç“Ü™„<1a@çv\á×UÎÈÒ@¡Ç®—`f*ö™’˜ñj_EÎÚ’ÕÆí©qi˃ؘ% 2lVT鯥g<ïØJ­8±4Ò÷MMõÛÆ:„KŽŠÝPøï™ ñ“ ÜîX=Î¥DD¬É`q‡&|ñš¬â³³#ß}’“龯†è*?Ÿ˜°ÙÀÏÊ7”¨„m6eÏJ….«P)Ç£Äò/N2lWÍÞV!¢ 5±ÿrâ+ÿµÀ¨Ö8gg¤‰x4ÞÚºoeÀŒXð†º*|K‹ˆÝÐÔÄî›Ð©;zDü†±$…~úâ ÖbÁÇVXÆÁ4éä" Z[½oÀ¤}Ÿjlù:Ëb»äÕA« +d¡¹žô-bW‰ŒÝWÂb÷Õ°¸eq…ߪ ¾­ÅçíI ##*ù©ò›T|:‚LZèIµ&Ìû´Ø—ýjI˜íùŸez÷ +eCƒHp Ö¤™ G£ˆì/ΚÜóIxK_¾gFg^Ì\ù6SÏÜÕ¢Sg +‚œüœðªì‹ƒÉü:‰«Ú.܆øÍH`›f&êl¦¹ëW«ät¶¡yÏQOÛ³Ók÷͵gÄŠ+±tßBAlHý™&öálKתþb6ôÓ²òa]\òqóbŽŽ¡&þ_kLöžª´‘Ë̸ÂIaÐ|¾ûL_þ³ièÅ×i2jMU¼®ûlZ1¹çlÁßãøÒÿÎQ§6x^P๥¥}u46ïë Û +xäÆ`™ï– â½£ª +;¥Vž˜ %KE'&d°f™«ƒ•‘‡Zxâ"/Ç{s¨8|EòÞ•—ž[‘…«’ÂÀY^ÇÙ(“zl£ÂNìÈÌkEô¦èA|ö Ȥc;6ïȆ-KJ?OaÊÞ#~Ÿ©£XÉÕ+C!Ó=9ž»š²°C;£îlªžñm†Œø2)ù2ÛÄ9šîÖ›ëPý?³éÛ<{M X,ú¸¥†…6ãò.2€]pøŽºÔw¼;óþXGÁ“EA•œµ1„ŠY䕨WRr×e˜èM°®’Ò÷ëC° ©Þ²7–&нÅ~xЙ‘ _ÁBõèä#Smƶ‘òÝ Ïøn- =·TÇ®(asýeïÏÍäÒ“\îºèSa¡§­1æÆúÓÏFzĕӋçã­DYPê'"¥Ý<3àÁcAß'Ð9Ç–ÊÈuèÝLGÚݙ֌Û+Bxð´3Õ]þz[ŠŠXU‡¬J+£×eÕ¡ë’*¿Y.øÅTW‘÷–”<ÛSíßWöù²¨<öЉ–õÈÙžõbMz{ ƒ'ljÑšæ<æÆ—‹œw)"j¢=ãÞD[Ì5 #æÚ+õÁºòél? è>úw{k¦û—IBù4ôF‚‰ùCMNús„™ø§ôûr¡×¾± pêúPMÄš™¾¥ÄWïªQ™ +RàŸ*ÒÇ£¬€ëóÜÔ‡‡Tò®ž˜?ÏG¥¬ð+£ÿ;Í }qR{æªèuÀ·âô÷‹ý9O§º@O6u•."j¾7÷éŠ0÷ùæ`á›Ñ†„kbø @+¿u +>ÙØÉ7WÄG#äÂe1ÀÒrß%aé×@Áë-iþÇïcXÀŠfDeþrjÊõ 56ótŒ +;°@.q™£=áɦüaw¨èý‘¡"ô«_f᤽šèÍýÛAEžÙ)@­å[jWÄ™®¾”Ç[²¼_Æà9¶.p«(àɱSþï9ãß3”ÚmMÌæÀí)î’ê—7Õ•¡ŒÂ€[©Þ÷54eùþw–Šûk_²)-ñ·’¢ï¨‘W­ôè«Ký`à˜DèD'Øsvð}šˆþ×"£ñP_›qf®ÍÚ¸t²3ñÁ¢0ëå—Y,â` _‘#c÷ŒL䡵‰s>Á¨ÿ¿Y*þï1|Í–º*H÷t¶ÅßùïRSÿñDS϶Tu:Š/>›DÚP…Gdöw'üe•µ$Èû0ÃÍy~j§¢/f¦ŸŽ^h\æá:i¾/óé¡¶gĤíjQ±;ª2¿¡¢£­1·4¸ˆß×D˜”©ÞjŸÉ¶¢g£- G–FÐ}gW©§K€ \¡CW„¨0+ëö\_é» 醑óhOOÏ÷—~\B½×$Pß]ueðú äýR_É—&&¦ßáUGþ±ÐW¸§&e侮I.Q…¯¥>í–¶6ô^¡û á#"ç=®ˆy}IK,ð<ÓQ@{*hƒ“|ÇÌŠ¸¦£D^³5å¿Ø¦‚¾Ž5Pw†±É»jLòÁ0 ¼7„Oø¢'åmJ*ƒt´ˆ«2\Àe{sê`ßÖU¡Öæ¤Ûòꯓ7¥ÅïFâïÍq3Þ¯K ýæyîÓÝ…¾_¬][ŠÖ$`o® +œí) þbF¤žŒTD¬ÉÁÜ|O<òzOUøÍ¿,æùEŽ•úY×èoýáúê@ÂýÍÅûªèx|†ÇO†¦tï³1dK]*ÇG_ÅÄ{þ†õüEZöëšp +&k~°,ýô·é>HÈ¿í~f«I[—f¿žéйgd|¾*Byÿ:ÚwC…MUÑsX[K>|±6ÑÏLÄ¢}$ÀÕOŽóþMOO¸®¦%ÜZ‘BÃöõ5‰cm™/ÏFqÅgc€þ*ó_ðS + +ÚSFLt$ÝWbîYjs¥%Ÿ§»ÓmHK¼×ÅUk’ÊÀý‘êøÕaX,‘p•í÷ÐË){úšÜù¼WóýàWKÀ>ïªÊC÷t•~Ã3·4¡–†¤;S=éÞÿ·D"}›Æ•üüñbN¡£=÷¹­1íñ×)2ê à3[ÈWCK¾q>A#þ3ÇhØÓBÂ×%éÏ6 ýWE`¿Miô±©<ê¿‹¼± Cûý99P‘ð×R§åÌÙØ¶§¯ÍZg?31Âÿì*~sÅÜ”ôúÌA„3A®LrÁ!gVJÙ¹•Tt¤|:¶`r~Ï:AÄ. ³žŽ²Cÿè«zõƒ Úïʬ¸&¢“rUM½\‘`cňÀY~Ù;Scî3c}æ=3óæTkÑ‹U&ÊÜZøÊÖ˜qO‹N^£#7ĈÏGºêp 6·de¾ï¾™l˾·­|Ž—²)¯ œæ&Ük +ùÃBþ}²>õð7“Âò€døoã-¥~@Í‚\÷ÎŽ¬'Cø¨«-%þ´½~ÖR’nLó¡uYÏÔô¬§‹¢ªÀÉŽw##ñ¶³#ý‰ýx{¥·,ôòh#ÌGÉÌ~5Dޏåê/òÙVTÇîÊ‘ {ĬMÔTE W„n˪>{•bïÊ|fjÍ~ØQüTR›ðìЀ¶ÿ ðTà6÷PƒÍ›ï+ Vã®n£SÖ•ð8§äýxsþSg;ØÓÚñx¦;÷Õ ‡ôÈŒ vÎS`­_ à "rš“ûÔÑš|ËÙÝRüÇdkâíeÀÛ¬*1EŸmƒÝ\¬Œ>µasœ™hÏ~cbÅ¿˜î| +꿯§U®+±©CÄä‚Ú„övHàB_UÀª¸Âgªâclyq*B®rá¡NFÉe.IEŠ’tKŠ»6ÏÉy½%.õÝ,õÝP”6—…^n(ˆÚ±Ò‘KRt¤••ûÄÌÊ|7Þ•²0òÙ‘ƒþž@ý{Ž„X–#Â÷FHïð!>—Õð_¦šR7¦¾p°Óžïªò?ýÇ…¯^”A#•ÌÔû«ªªÄM}ú"“ålWth«ŽÚT•xok+BO&jÁ/²Úm„ŠõáòÐ# &ÿ? tÊ7'¦x[W°­.‰S^/ôç¸[q¥_ƵûzL*À‘™ÇY,ÚÚ„‹{4§6&òÄH*´uÂÊ`¹Ïl_‘碰òƽk`B—”ø„EMØLoéûIØ}U + Þ|ýÆ0³4175ˆ¨M,tOI…ìÑ¡+U>‹|û/çåt/àû9UþÛjjÅ´‘Øì ê÷ÛbÈ}¦»àÕh øíÂ@uèÂ2V@H°"þξ•2ÖÝÑ}mž›öÀÙ~{MöfWQ>JCÛø•þmÐÈkf¾ï?ŽæîƒxÒ\wÖ£éöŒ;‹}àó¼â·“}%µ­…/ŠãÞý\óòÖ÷QlÁkmÖ®4d©?ýõ06ðâqy„ôdžª*´¥2æ>(øùÏ#9ï¿â!*ב:Çëp8ÏËZ~SûôãdKÆã¹d–_á5Ç+û´5ŒH¼sÖž™¾o@¤uîà¾åÕÄüÑ]so¼ê%&%=™€ø¯I+b—Å%±§&TÞ·‹ w3µ|CYfç¤ßqIª…å!K|(Àɨ(M}ê=9æÆtoÎëý‹{+t‚½ òb²·üÓ–™º!Ì÷œá¤<˜jÍz8ÏÍ{²!/÷=¶zßJ‚:¹E{tÚùENºQ»«GmIrßÎtD¼˜éLöØQ#cwôøì‘ºâ'RdƵe>,þïIFÝù(¶£ªŠgÇxØÛ3ýœ¼â÷s’òÈã1Ù¥¨«šì)}¿oFdý5OBýÇE¡üg‘LükSu`g9ù)Ǻ¢n­)¡a†æÌ@[gú‡ýÑÚ’£1|íÙ8¼êŸBíWg-d]à€ çÙÑ("eu°2pM‚ ÙQc“Nl”²íaLܾ6i[ `œ´ÌûÄ€Œ?3áóv4äœe)6òÄÄ„­ ¡£§:ŠžÍõ»/ŠÀ£­Ñ·í¬¨;»bXØÉ½j¦«ô­«ê}n¢•èQ ÛrxÈ–>Þžù|y¨Ô{AöÜPÔÄìi+;ÿ¾…•ýÐÉ)|³,(û´)B„È 9{ +dº³+ûìЀÉÜÓã2Ö†àŸWdÕ!ã\Èk[ñ»ÙžòO_¬LøŠ’”=Ý‹ðY—6–- ѳ\ƒÈ`—¨Ì{¢-ó¡k èíÀO»jtì©X´.+õ]—T„êqs}¸ôiÔÃ\Ÿù@I»a F_?5²P;¦FÌ´§gäÞÞ•cO]zbÃåmë*C-¹F Ç¦ú¼GkèÄM2nM^p3¶àÛDë«•Víä‚> +Paׇ© wæû#ð·ñ&Ö·‹™žârï %>çÄÒR``@çú`æ¶òÚ–RÏ^TÚ¦V …± 5YÁëeIÖ+—8ß8ßà QÉÇCMe䬠ÐGEK»#úе%gtÖ?õùDCðƒ¹Ž„—®Bÿ¥°×¾¦:æbö®{][Ÿëwl&CÏmµ¹zxÌ'õ±¤6àÏaJÂCSsö k+䣾¹øuaÔË+C”Ï/Xò|wÖ‹)öÿjûÑxSúý™Þ‚W{ÆÚ\#Ó=Íë¶9åý;j|Ù‰\µ1Tè3ÏK}1Ùžr{ª«àÙ‚°âÓ¼´æs:òv{™ÏÕ"îHKÌ>Ñ!b·•¥a‹Â<ÿ-EQ౩2ü؆Lµ÷”…[ø`G…N:³T'œšªÒ¿MÔ–}›"U¯)ÐñÖ–BO>íú¶šP²®©MXVÖ„Î Š½d„È'b|ÌËmmuÊ—I\í‰57T-¡ÄÜ[SWdýg•Ñø‹‚ÛP—F˜šbîLt&{n* ?ŸÚaINai`YÌÛßià€Wßšø€§aÿ5^•ul†ÏsÜ'û³ßÌ:RCÈêòã–—x0Bí™)—°£AÄíÈKNõ°¨UEètoê³¹þL÷¹¾BƒbþÆ06užWáµ&®ù Ôà_Ñ ÇTâ.€5Îîï(P1Ž6ð›m%:e—·§'æ\ÌÐqt€¯JPqûZJÁâ@é‡ÙÎüçã͉wG¨áWø•¿š)÷5øÜU)6q®¯êÃùu4J(<0Õfíj«¢°DÀ[FoÉ‘á»*&ÄÁÄ,¢b¾ŒR+ŽMè´ïxÈ—QRÙ¦¢:tE ~½9T⵫BÆ­+ð)± ·4èdmSÆSc[¶Ï‘R²,†‡,yŒµ¦=QÂîNu¤ºC¾Îk'eájzö³m &g×X·&„/ r¿2Û_üÆØ˜üp‚›x˜!éÅ #ûã’ŠTx`©«Ù×óûKýT¸˜rlØ"åx”Præ UnÛP;£èÌ/ÓDÔ‘Wùe‚„¸´À%.Ÿ!Âl½5A«ÚÚÂo³ÜФ(h®/åÁñ¶üÐÁ`ϲØ;ãÔ¢–\°«¹ð.U‘ÇFxÀ{ɳ}•–¥åþSÝ·e¥>˃eŸlMq7œ¤;+¢ïS­ú`”V½¡Á%í(EK¢Jï-À¯zµÅÝ4ÕÇÿib&úª<úëDsó"oLÏ8Ò2·D5A*læ©…\¶¥F'Lõ@^O¶ç=ÞT`ÓÅÈ8[söÝynñ; ¿>Íu–øM¶”|\áWøjñ9ëRxÄò@Ùûó Jõ¶®:lgê»!+ý´hÍS3*õÜLè)`c Øc¼ ôéÄ€Ï;ÐÀ£Ïí€fùß\Ûêà5iYàÑ&sWŒYð\OK¾~b&–^仳Nvä<ÜPT¬È ÞÓ¼Â7c­Ùg6bñª·$CF^äoYqy2àzE¾tê¡R¸¥¤ƒ¶ÔTð´°:x¦¼odטZ›Îíô-2g£ÈŒ )ä“‹~½¡Fgͪ©ÐfÁ;)%óñžÝ’×&ïÈà1ȸ yu䚢2pS8±×afŨ´‰Î2ÿ™¾êˆñ®ÒHWQäkeê?ó¨âslïÎ}2Û[|jaѶõ4Øž›÷u_¾k¬Œ]ùé*R¾^¼9ŒÎêCÄ\ßÕãŠþ^lê: À-ø¼%)4h˜þù¾šæÿpc(ûÃÿ·L¥üå$Á÷´°ˆ/tÒÉq6ACì™Ik:L¢KY4Û~u1 kIŽM˜àV\‘QA›ÃŒÊÃJÉ‘™¼&«œ(y ÔÎÇS¡xßD¯²w–¾çä?=A$>-`O þ—=…çmh˃×~y[Ë@o™X9¬uiŒ5€@gî ÒÏøÁ$ÙGHy.¦çûÎË(… bBŠ£·Æ{”]òRKJ`iÌ|ýÝI¬ù÷"³þ¯Y2jËO\7"ÿ»Ádÿ5O&lÃbg>´Zàó€Ã1rùwÀ“Z19Ó}à×®ÁÒ€¿]Íü/³û£d䢢òó¢¼"-~?ÕpsM˜úhU˜ÿbCFHÙÑÖU.‘²×U„Ô=PÛ²š} ,âÌ\ÿ}‘qÑS›jxÔ¾µ=Í+õœãå=^æ<ãç¸oÁ"N Øœo6|áÅ3$[zJþ¾Qx—ÐñÖ´[¶Æ¤›ËƒàªŠ€EA¹àubW¤ødsØÝÒ”}÷@KjiE‡jxCŒŒàU_k{]Ó¢n® o­´ÊY~黹®‚'ÇÿÇIA~Gg›jÅ÷ýö«¨Ù/æxÕ>:zÆí=="ñÜN†žYÉÅgflöÎpUØŠ¤ø³+ã¶­>ê÷}2À¤S[ùëi>N%~4ýŒ´¥«Mù×<“þÕA¬>³ÂwÔ…A“=É/m‰=ùÏÿµÀlÚ2ÖÙ/gûk‚ÏìLÒÉ( s:J€èjâ6d…~‡šªÈ-*þÀÞ@S6d¾Ð7gš(Ç6jʼnú2I¬ù6E#®«Qq3 +Ÿ‹,åÓÉÖ®‹ï}ö µ©{ZL*àw³Îm8ð¿§påÇf\þ¿Ôkªòþx”T©¦Ä?é-ö¾6Õ–óry°èî–x6IFžO54¬µâÔ†_ôûñ8¶oB$l©Ë€¾,x·¦DÄo™iå{–FÂ’‚œ'§îY».e=duˆ÷ÐûhÄ,¿àƦ"bÏŠL;Ÿ«o?fÔÙ¹E>æf°;°®u§$Ò÷9*ÐbM‡vdèKyw`'@Æê¨KrDĦ´kÇÏЈ«rLÌò :bK‰Izè @¥xtÉ , +J|æºSnO´¥Ýß—ùìk«BN̨”#3±hCKÈ^Q’7 ð3¥xc° ,p××ÅßiŒ{æ—…ðåß§ê¨;zXì.PK;Ãè8kcö}++úÚªôf]^î7ͽ9±¡s¿8ȨC3©ìĘ̀<£!E…ïíMÉ·ì wm¬ø[s]IOÏÕIgÖ:Ä dnμœßÇ£Tò¶ °;\¶.‡|Z—Uøîêjw ´bKwup{yäï»ZtÊ?@ÿ\ä9×½«®I[æzº„i7•%Í0©‡€¾XU•ølk¡‘[hÔ²4ßgW[÷ÝAgþk™ÙµeBdÚ8 gòÚ´C ¡ ð«%£Ø‚µaXôž•~1gÿû¿m üÿì½WW\Y–.útººNW–ë¬NSi”Y©Ly 9$ï½7Axg„¼I)eAxá½%ðDAxoeVuŸû/î]‘}Ïyé—ópǸŒ3˜!$Ø›½çZs~óû¶Y“:ÊiþjYÒ‘”ò #¨lÓ“Æ¿®¼ê8µ3¹è“!òÒVÔ¥çqsÿÝÍiJyÜ6øØ1Ãh7ÿ9-—T||·ù«š¤Üúƒýeϵ¨eàɆ´—»<Ôõµå%2;¨IÃ¥†Ô\jPÍ%•\´`О”Ö3öõnM3jwžMšé¨ýýÀÞ÷0näs~Ýnݲ2Æo°OÜÅÛÞ‰š7ǘ•q=Æž5öö¥×†Fö7ïNE¬|¾KNmÚœ¦Ux–^©ä.À;HÂÄ@Ç­ä®í)XÁæ¬(¨%t$ׄ’-À 6gêþ£èZÿÃä†Päš$ ‘pýªÌzMÌ6ç ôêæhËIï";ªd´F5ì÷,þ6ÐñÕaðsï<.×5¸nù©á”éqÕÉ­WÈË€ûãí}wBVOJoʬk¹4Ëæ0ôªåIû•ÍwˆRç$§c{þÉÐÆÒ“¡í9 vcŒVl}?­ªùx–Qð/˼â¿D—ñµq]¿hsjkz'¨6¿ã”­3‹¶Gi…Û#„[²Š{ ¿òßœšÏ<Øœ”Z¿1N¸µ6J¯ö, ‘ –æªîV}òyú7ÏÐßÿFÙó÷q3—ìV ˆ¶wØìí÷¨ëÞJ¨aÙ»3°kÞù®Ë†'e]}×|Ú/¤ìg®Ž‘r×G1Ù[c¤ÊíqrEPAn:Xá2bZ6Î5†¸¥¹[ñÙê«Î³€nØuÂò´'+$euf8YHA®Ýi»azTöÕÊóÆ¿¹®Zß±ªÞÓ +¿$(ÿÌ?M«óMàrwßu_ñŒC œcÈüEqÝ¿iv~íšËð +§ìoüÚ9Þ“½3ÞvÆ= ¹àžÂo¼Çæ«u~?/iøÌ ´¯c–Vkù©í;ÓÓÖïLϺ.®¿ëÎö/a’!i‰Ü?×fðù^űOÎA„ĆœX·ö®ãüžQ¸= »îšEå' ,¤í äôæ$¦ fЃjj—oS¶=Ü~Îö¬áÃãº/wghu„¿;Ïh“ö7~âÇßHi-)¦øÐB…fÆð1læ™Ð­YFKØ2ødu‚V­»¾òŽTh~Ñuyo†PÓˆØAmÿ€u‚^k#ä5"zPËF¬½‡^uÌ oï.à*JFGLÏèJ¯ˆÄq³dp p’ÝLÉþj&/(M!)¹Ö·„)ð.dz/Ñš}êÉ®üéOÆ×ÔBÓKøY 7ðÿpÞNÙ…ý€SÉ/d #Ã&1næsâÆ;÷aYS‚ê/<2RÛ/ñÃôš°/fe³< +líž’Ò0qkßÔʽwa#63^ÀWâæ»?þúÌ›¼—à“’+ƒRÌmÿ:×=‰Î|6ß5Ñ}Ñ;G¬ˆ«{i»3„|û0ôŒì~ŧŠþ¼?l¿è9x°oba€„Ô¼W6ÀrÎòÚT›NŒ¯ý“R’û'ç("Ï«xpÏ>—º1ÓÜ™´îŒqê7ÞárÖA v÷œwOõd;¦p•›½µ‰{¸é»Ä)~ëö(9oë=1Ïø´=óŒÖ™íÐó»¯á#ˆKëïð×w¦ùÝ©åž!÷\xC½ýé0%û/[¯kˆééÝNÀ‡³Œjß²é]fu¯w}¿=Ñ}Þ1Ùy~åEíI×TçÕ˜–Ñ•Y3Ñ>A-u¼Ý/øÈ»,&í“5Ò:½RRÕúK蹕—Ùî9JóÖ$»NuùÝî ³>¤ä ÜsØ× òºö^Õ§¦{å_8ßw]óËypû{V•ònÛYûOȲˆ\ˆs¾‡gÉEåOÒó~§’”ýY9Pñ¹c_ì‘r{–õœ— tfÅ5,„gšmx\ñé­àÏP×ÿušQð¯Ög?x•Œî5>g˜Uù'Õî³™€Õ +(qŸ‘›×ÞÃòv€¶tÈ™íÕ½!ãkÌí¥ê@g•z0µQ‹â¾;-óËPÕÛãÝü€34,¤âqýÊ»µ_:F¡ÙÎqh¾o_× èq“ˆ¸G•â~û ϳÃ9‰¯Ò?¬9áëºØ”²»Â*.&n’܉XúïnÌñÚW§Ó‚NÝ3È™wЛžr{héÝyBIDÇÁØ%÷2kéU ˆ_¾GNéÞš†•z¥Øb¯ŒÒâSq‘«cØÂ ŠÜš´òA%£;ªb#:ÌÄðÔ9ïØš µ[^Á.ÚßANÅ´´®¿o¦llbÔ@ï>Xãñö­ rTI\›sÍâ«4O:¾± #nullÈÄÂùÕ”æ‘ +÷©ˆíQ« 7aI¢F6) ¤A6Æ‘7‚ZFÏ–‰ýyõ΋¨apЫ`¹æh®)x–姦¯Þ/ÿö ñûß. ®ý÷·íçbZ!Õ=ǨÙ'ßÞ™"íMÁ¯ú&z.쎵Ÿ·ýXô™ênÎïcza7Óg÷-«hõ-å¶ýE×¹Ð4äæ? ¤ö_ì,¢}¦çªôqÝ7Æç]= }8Ç”¸ð× +Ç8òÊrÙŸMOÛÎøîðü OïïΈ`Û#è›[#¸ëîv‡W.&lN1Ê•Cíß*EÕï#/ç)•Uf]dbÕÞ,6ooA„0¿¥æÛ_c³6^u|眀_ ÊY@ Ha„åZ ÕîLôœ÷-ãÊ‚j>noRµö¦þäÚëò¿yæ;²Ü‹ôú€êÞèöé˜wYˆÝCå¤VXø˜™q/‘+6ÆP9;Ó¤Ò•a•Ò­½EVK@ÉEºfHÅaë™#•¹§à×Aîý »_xÒ=Ý~>(#W†ŽO1$áÿA1Ô|ak˜ÔèŸ#·$ÕĶ˜ŠÜ tS…ùy÷÷Û“ôVï£ÅðøØß𗞎賈Íç¶A-ŽI™=!%½Ó>й®þrveâm` ¤åãã&.1¬ÆWîÍâÊ“ûp½÷nÚÚÛoÁH‡ÚÏx¥mf@J“OÁXÏú,+¨ q-ó ®9vƒcšYcü±ç;åPççòþö/¥½_ÙžA/y3Ï“Ê2}Òñ¹ŽiFÕÎ4£Zÿ¤ñ‹EÑ­ß*ú‹þhueó]ë ÉºwgE瘠Á7¾N"®ì¼oü*0ß â¥ú Ë’•=(ýëÊ›îìÀr?Ã5+„ìŒS ÷æ¸-ž%n‡w\íÿµ?!æÖ$ïÖGoð§ÿewUÓI>Uck’SëÛº§ðùŽ7ÝgËøóÓò¯4CEÿæGxd\ØÂÝžÓúg蜨œ ˜ Oèðˆ†Tç•c õ?Vb|\úIæ¹ï˜I"öÊzI®9\ñît×Õ˜[•ÔqÑa5RÐÛ-ÏÛOÏqó>Žhˆ­>5½Õ¹@,ò-«üK¤òˆ’ÙÓs žeb™kžPèšc6‡TCý[ãè«›Ã]g%•ß½Å]ÿÜ?-ý`òã:1Œm»m}Ã+ã“}2Ö5¾±þ¦êëQê…?Ó¯}âžBwwÀö–^ yÿNóqrw™´¿ë>4Þ™×µ_­¿¬üÚ¿„©ˆé¸ä¤iðs†T±1Í[Ä}©•ÞÁˆ†ÑQ⫝̸­ç×Þ”êY$–ã!úÁÁ=E/m}‚Uç•rÜ‹}DŸŒÓѰ‘»Ë¨÷22ϽH®ð)Ù=™wj\sø‚Š ñÉ™À2©*¡!µ¤ TÜγÃü‚ø8½:axº9O¬µ¼íØ“S[*jS@E®÷È(õa'ÉÌ=ŒÕSÛK\øÞ®0n`"R6.9acaÀo…ÍF@ÏÅMê9Èà aŸs_§~Ôùµw‘š™u°Î—ü}‹Åk ^¨ËFrˇ ¾HþRª?÷[ÕÓ–òŸwú~ü{,n@F©x‚ö+û9>¹à «Ó¯Êô0`wD"fÔ(¤íÉxÝ%n»{‰×¹3Å®[{O)Ùž"—ï.2›VGˆ7WßuŸsL@¯g®åùU"‚_Áƒy—ù=>YÙ¯€ý VÙ-™û¯ á^âtlN`nØ^tcxÔùù ô”cŒ”á[m€G5G€vŽE¬°^@Ìô ©ðe¾%4ÀEÔ ˆAï«Ù'cµEÁ| î°<«üd{¸ú ÇhÍÎñº| Ø"ï"£É+çv{™ãq¸ö¾þ¤c²ñ{÷ôª{zÕ3)ˆªäÄÊàÓÌZ£3ÔÒ¨OrÌA®;f[Näpc˜üí1€?S§ã:z׿,«iu}àxGTMn .BóÒtMX.Ùë:¿â1ôsfMóÉÞÎ/\ÓÔêpæ½¾%ØÍð,è̼õa|¶cŠZê—ŠðqÃÀàÎ4±hísê“2;Àœ4ÎŒ™ïí)úh»ó"x¦O°kž5ºälU@A¨‹¨©ˆ_Ö¸¬ƒU) ÂÖlNt]rÌ` +“VIÌÌ£„T´æ°‚Ñ”ªƒrjkTÓË>°ñ9 Ç*m?5}cÝ}Î9G†Þ‡ßø·ZÁçA)ª<¬Ä5p•I £ëÀ$ Å´\œONiŒdÞß’÷ÑwÆà—ÉóÈ0%^=·Š$‡ƒ¯·DwKØjŸ†…ÊôRØS2à>5¶r}ve}y}ðô¸þ×¾Q÷@\q#†Ì»MßFl÷Wù܈W¾H®Ü[Ä%Œ ìþFßcÙÃŽoJj×Ï[‚þýuÀ·Öù‚°…KsÈÙ=+Ô¢=)¹þï;ƒoÞêÿ)¬gÁÂ:.½ÎçÒë~ÂB‡íÊ0…›3ØÛ{r*i¹ó$nêï:ƒï“vˆuA ¥;ic¢ƒ:VóöÖì@ÓY¯‚€þy‹I Ê»¯dز¸–Ùбq5½=rïg“D²o‘Hb èž’Õwˆ ;“¤Ï2ö3‚™kŠ™¾†ó"h†ûØ_5|±õ¾é[¿Wæ‘’Ê}RZ]Ê( ® >;X‘ Æ TPÁh1ÐõSÝ ýT„ð-³[}‹ÄRÿ2µày¹{ŽZžPññû–>0–"–WÍêôÈÅ$¿|H¸·$€î.P«vðEkÃÈ‹Ž)\Žw™Vö«^9·= +¿â[&U}Þæ˜$nŒ ®ÙßvŸ,«’&I_@+f8(•Žb±WÎøÔ€€<Û˜¢”[ÞÂ/Ùßc²Nƒ^Ïό՞hw§Û+eµ¸—¨Uîer…GJ­YÃ^s/Ñjb9if¡í/k¿tŒ·üàž…^݃] +ȉ•{@O­Ï³Œ¯ñYQpÜ€”Þ½1Òyzû}Ç9ÿâ¯ïV6ÅÔ\lJ3ô ¦á A¼W€ÚÚÖ‹™%v°BƒبQµùÀÎ!ï¯ô „4},óOøì½9FÓÁÊÀÔ•Cõ,ô\uN6ïšî8·ù¾í’gY‘µ&¤²Cj:,®PÒ€+ùe¨ü½dÎækÈyýƒª³¿ê8¿7GªõÉxý[bUäêG¯©çýËŒžˆŒP\ÀÞÜvg›¿6ËëÙ8Ç·Ûöu9mr’Ö^QTÇ#ï[¨ˆ˜ +Sæži>³=Úp2µÒwwSFiž{XwÂ-§‘A>°ÒF.îƒhjºþºé;Ù@Å_ÖG1å!Óƒ÷.o^ 0‘7 91‹jŠðÛü¾¤×äœì8“m!µ؈q®åÃ*‡’²pp@c¢ƒ2n·o™Zïš#–z–9íž%V 8~wRËCÿªOd¬ÖÕ—íçÝ3Ȉ–Ñ6°‘!í doùñ=çB?ÐD€ó- `® FùÖ;ìuÝ£úïì/[¿ó/1/µŽÕ´³ÀiÖ=G_P?ìøü®ï#RJ­o‰Ò²5…/q~ã–ö6ìÞœgÕoÏ ¡ö1z}\€9b•Ö¹=®Ú[ftxUBlÄ,és,²ZV'p7·ç)î_ŸÝ"—…䚘šÜxOW`™Þ°R‰È®y ‡—iõ[c˜kžÌ½°EBqXÅ‚ìÎRk¶Çq7Ãr.$¦â"€ö¸¹úªé»Í7¼ Ð+!*à&Üx0Ðs¨ã°‹» ¸ª Š‡‹û%I[߯”Ò¢ªäôºh(iã1Ò«¢¾„ËÙ[Æ4Ÿ7ý`|Úòõî¡Ô«Ý21Ö5ɪÚz‹Ï‘õ—}êk9X•»gˆå{2n×Ö²¶:%ìÚžâv†d,ˆ{›o{Ùujmz ü.¸_#$í,R+wYé]0ï¯&=òûýAM/Í9ƒÈ1APßËͼWìœFßÚxÛzèŒsA§Ä+4†kŽQ”‹ˆž9z]DNkô/áÊvF`9[#È+Ûc endstream endobj 31 0 obj <>stream +˜ì ”ÓUŠ® b‘ý§ŽSï:/„äØÒ°S!KÝ Ý·³ø"¯²ŸÔô:ç0ö×ußøˆå¾FãÞîö/&ùÃú7~=Ÿº3O­ ê%€~è~Ð8ô0hèåºð¥Ægõgm¯[ò#*.Ñ5+BÄžßgÖzE(Ï"¶<ªÆÔ{ÑE¶çßÎó*þÛWú¹}¤3?½Â!¥ôÔÿXóy¥¸äÓGWþYØx壻ð'VàBËý*J}HMÜWU3–gÁ¶§1·\s˜¼½Yb‘^—2óÈ?Û9”+LtÜ@mõKÉUþ%fC\Ã'µ|HÊlkX°‚ÞÕ0` =T2ZÃf§WFsÄjЍøè àP>§susSó´í[ß"¹:eà`¼“ãê^F\ÇÚ“XÖ¢ +‚*ÔíŒ&õ´&¢eB< +&Ð,ôªœ÷Ka¾Üü´þ„ùaó7@ït4@{ÈE8¿²RЉ!ŸTÞl Ã":lõÞ"4Û ´lÌÀB훇‡u÷žì.sÁùñ` Î¡w¯ñ-¡noŒ4^XyYrÂæÔ“þ˜}ðG·Š‹ÌÔw µpÞYF»–Rí›EßÞ›ƒ„-Œ(D¤jèŽkŠRæC_Ó?¨ÿÒú¨ñKÀïK¢JjS`AD™É!~‡wž×Ó)Q«swvÃò¬ì3óÓÒÏCr*$az7÷Š*F‡OÆÅ„µ}<À{éq-¥)°Ðs#¬"7zA†´<|jõî0Àëû>]/h ¨ÙPÿ2¹Ú¿ÆOIïtMÓª·FiEþE!Ê1Ŭ]{×ô¥c¢íûíQÄ¥1Z™s‚ÓX`u‡¤Øö¥Äú +™R +˜ &°;ã,ç.Ï'§6FM Xj•Ï‹›î<éúø»€OÝÅHlÞ›:ïœ#ïI±¥)#òa…Ç9y“´HbZ1ýÀ6øôŒ_XÍA:ÙêWüzï%×¶÷ɨIKoÊÞw'¹Âe¤VžÆÌ"^ÔÈÁ%-lJÔÀ&DA èp•»K=—“ NÜÓ„ÛÎItÎî,¹-¢â^ßý÷-&;n@Ö:gI5öaRÞÊ[r~P{÷¹GÆnVå—Ó{ÒV®ä—57°DovOý;ÉÝž‚e…Ô´®  *3×ï:ίBoÙǰ›KLTÈ îKXkðåA¡läÀYÌ=´ˆ¸I#ï˜Ã®t}¿ù¶õ۽ў+19ºúÀÊÆÚEüÃU‘ aa£€ëúç!Yä “UÒZ6<â9ªauÅ€ÎI™ù””Y@‰j¦Ø¯d¶ùä"t@ÙÏö, PC +>"¦åaü³ý2FSXÅh‹iÙ°„A@ +‚|7¼¨þz–}éŸ ýÅÿÑÆ3 !%㓳º÷YÍ{3¼ŽÝIR‰íIÍWp®žILNx‰^:5©çP#jæ`>µ•´æˆWã“·^ñ-5žrN¶Š-0ô‰âºû/ö¤”&Ë놿­¾«?½7ÉM(]@O¶€ÚZlC_Ù™£Õ­ÖszLÏ;~Xy^ûm\E¨MXˆˆ’Òí˜F”Úß1'äïIûÈ~¯Ç1+Z(ÿd†_ô/{Sä¢8ÐQ)¨[“@ãÌcn§ <\LËûeäúíÑú3[Ãußxæ —ãz2n¼÷"¢”\x`™o9³=ˆ+-©Ë¿ÐY–¡V¢7lÍÓj"ƾ^/ȹÕa\β¤í[Û“ö¿Eåð›I#±i߯gÕüî½Æ/ã½ÒA¦O1À򪮾ŸÔ}nxX÷‰áQݧ —[S澘IÈN­¹ óG nìoð˜I;îœ"ûå|dÔ %2ñlÝñ+˜™5Ñ ©Õ¡·éUñàá*‡áš‡—™Ÿ´|ŸTsIîÅ ¢{-ê“÷Q"Z ?ªë§W„â_¶{€<@–•Ì®Ã5¡0jfaJ àªÕ¹!ea"WX¤´…ÒQ¶F»OïÍ£oXß ((-«#m'×ÞÖ¿3Í>’€þìM臅ÕCnKA«€»¿=øÄ+1óÞÉ8­æÃ=ø…ÈÕ„–ÒÑЉQ=±3¼æUЛC&do~Ëö¢î+í£‚Á6- =®2¦Å”DA=M¸¸s¯ m–ˆý*f»åmçwêRäý‹ýÇòÏ­‡U‘èpM$L˜XˆÌûË19£#&'×ø»/;Æ;.ìŒB.zñ…a5½ùƒÏþ°*ä§L<|D›y? ó’g™TÜ eveb\Pu÷NHÍEºç¹æ'Õç\ûÝîûŽ«™õ‡":&, ¢výXáša58Æík?²½s=—bzøí¨_7ðIQ€=)k_/Ð a£î\âÀ6ß“*ãØ[î9xæz_æšU©G‰+O¯ré•þû1Ÿ12zâf>-¤â!}RF›wTëžÃúèÒ„™MØ_xž\{0ãÒ} +JcTÇDÅuL¸{ +UhzÖ|Yó¨æÜÎ4¦Ú¯¸wÇ#àš^aJVFzn|Ø|Ôr1™>²û: KtˆzÀ횣1nú1i– ø*÷4Û5ÛsÅ½Ï *á¹i±ý`Û“C³óЫ€Ë3ö×_dÖ˜Iê3÷; 9±v…>Xç Òýϼ.vg‘Ó +øLkTNoÌöÜ2Þ+útIœ÷'ûÛÆS»Ë8ÀsY[„RͽæÏ×ÞBn¹çáµ&!#e¢´¤€ƒÌ@³bVwJ'¢¥Œ‘_Ãè´ £®^Â/š^´žó™ûË:“p°ÂDíÛØ¸¨–Ù½o¼s7¡Sc +j½{ªãìú«¶“Îaø•à"¡$ªÀïèÝ)3×s #˜œ/¤ÄWx–`·cZTUÒHi9)J®VñP{ @ߎÀÎ;ßwÚé:â²h—¶¨Ž‹Šh9°ÌýG÷<²Ìçm ›³€ÏÑjÝóì¶°¬šyçÍò´ã[YoÕŸ§ÉW~çï¾ñ`èÁŠd(¤ì_›f7¹–Øm!µüð‘çT÷Å©öóÎyX^ÔtçQÄ4xß«b£":>ɽȇïÎ0ê¢J*¬ 6íÎö\Ú[€_óɰÅq{%½5(Åø–±%;𼨂ܜ¹Îã_„d»Ap/±]sÜ–iNÃæ;ÌeËcÈßæx%¿Ÿc~¼þ¢åLRG¨K›P¿œXéœÇæùë ++1ÞEȵµá®ÓŽ1ĵÈ­! ôNL;0àSòÑ›“øüµwˆì­áž[1)¾<®"ÕûoÙ™Î<닾–³ ® f£ænÏ7žyt!ÐuØô +³oaàƒ +d©OНê螇 î=Û[“¬o076FáW\SÝW£:BsÊJC¥l4|DOíÙ˜º=¿3 Ø^³{gqÕ=‹¼Z&Ô$ÌdÈ/[î‡u~Ÿ_ˤ8¤šÌº @Þö¬¿ƒ\4>m>¿6Ü‘QÞ¤ò6ÆÑ…ºí§Ö§Ð›¥!¾5ŠÎßzÓvÚ;Ûvh¦Ê¸‰C8Üì–0óØ[S=—\ ØŠ †M‰›˜hÏ2ô¦GÚWé’B¯î."òöíB1ÐFÂŽÕÕ3±ûvž8ea“â*\CDƒ«ê™Hƒòj¹H¯ŒÖ¸7ƒ¹¹þªå¤éaõÖ7ån çýjjæ¨í 6G~¯û¿–Gß_ëLêø¸„†Þ^—ìëˆV>#­gÓÌ£ ×xå"ìÞbÔSW𜸹'7eÃרh°´™KÜ7 †¥ô–°Œ\•1ÛãR>"´@¬Þx]÷ZrékO*O„䄪¤™KØ·öIâ:t{¦û’õuù'¾¹Ösq5®tßÀ€¤M<\HÅîògÞyçXDÜpÏ€˜œÃxÉ~£5n3FfÆu\d@F©]{ =ç]$”&ô\lB/ éw|­BÝ|Í­÷Ï2_%Ö;&ιg:²=Ë„kÛUK¸QÍ€h{†Q 8+mãóÒ+\fj…C¼Œé×2 +ïáYži^÷ú{n»¬¯ù¯ÛoQyñ Ç““S&&S“&É5EÈõ-Šz*¦á"3ZÝ3¼áï:4JQð ‹È^™»3Ũ´¿áÕn¼ç´–˜ÝEt¡úî­OvFNíNC³‚*j[HÓËÝ&–øæQ•s‘¯7§8E_-ˆJ¾Y!ÞÚ>ì©80ç®Àô¸ñ›° _‘4PÛÓôÀÊ@íÍA ê¿Y}ÎŽDܘUÀŒ™é°WÆ4'¼ŒÍ¬ãýêdÒØ?è^b¶®òÆÃ¤è‚ˆ +Và]꼡¼—û©cºûš_Aj +¨)€{ñ½JJ½GŽ+ë(Í1-£èÒŽˆÔ)-4wo z3nbÖ†Þ‚:Üë•’*÷-<ú;—Uâ¬ZNo½¨=±ú²ê+ŸUúóF’§A%âš!U‚ylLéè]1 ½Û»ˆ¨pL·d»fP¹>©!iKöWEïqƒqóÉñuI3åœÔ?×}%¡#µFMldØÌAÇ,¦ÄÖülé&Ô"ÚÎ8<Û9Ùq:óÛÖ8!o{‚Yá“öâ7f˜µ«c¸lÏ<©|o_úÁÂ&ücÏ=´q¨€'¾%jMX.a%µý‚|¶LÒþÅ4»úcÀ%/'u}œ´¥W3òI; ¸Bë›î¬Hæ: Ðz;ÓÐ+›ã]g¶Æ:Ï:§`9IƒäNÌòL5 +Ù>)¹*ƒ#I5«'¸ØuÉ1Zù…ýEñÇ@åÝ\ÕóA¬]­Ò=RR•_A®éùÔƒµÞ;k’Ç1 AlÞÚ'GµBTÏAÛÞBÎF Üß·„ý¿¬2^R»ÿ}U 8´3ðÝé˜EfoÏà VÞÁ^«ã*ꃙÔô«4älÒ°q=¼Äþªá«•7ˆ¬ †K hxäÍä•¥Þ²OÇè×~oû©åBLÃDý¼!”ü²ÉÇô HfM´…K:\á±€6+{‹ûî7š¾[Ÿ…QÅ¿lð¸‡[‚^]iiý.fârÕ¿8ûß„5¸6%?ë÷2aÑÇŽÌóKrj]DË‚ñ½áž£5¤­|Ú¡·6¡kËßx[ðíKô·¿qN7ÿà›ÇÝÞ×pàûZdßÀìIiéí)=®"¡GÄÔÈܸ‘Ú¶5‰ËqLpZü²{½i«ña‰K¬â¼ªžkÆ>õŒJÒš^†}“7+(ü,®ÊÔZ]xÕxj_ÚL¨OpÞtŽo‘V°«7 +xuD/Y.þ³íeÁï3ë1F4Ì®Ì3¨™ëëŽJùúîæÎ©ðg3ñm0p)3®Ñ+o:·=]öÀ¹¬«aʧú–p%koêO8ÆšNƤ´†­ˆš6‹9^£%¦’Óæ¡GiÛàÃŽtN·ŸÚi:á[ÀÜNêÄÌC»ä~LÏEÇ \ô‡õÞ;)3 \ÄÞÞxÝxR&¹ö‘ñ~齀ÚȿƒñhÉõk<æ/ÛÂþ´EÌ‹­×RÛw§».L2³~cxXôeZÇ‚ûçhÕ@Çü°=Úò·½9ÄMÀ3 ‡Æ^ö³é‘+·gÑÙ!5—4ð‰q½-¤$×lŽuÚm;y`Á×Zh W™Ý™kë>À×B2NWLÉíIêvëHµa5ð~FóYÄ=°ˆøqP÷]‹ÄÒ€’‹éy¸«˜Ÿßh9˜=©*óÜKp™ t>µjoriãm×[çSúƸ?½ÚÛ·ðéÑÌýVu?ǯëc%Ö§×$÷€3¹Q9îä¨FLîÜ í¸6޹1ô‰6ă~yO¡¦¿ø®±îs%ìFPƒ-ÏŒ÷ê4¥Tý#éªk~P¶ÝMÝ–µ_tMTe{Uô óRF‘à`}ð§•Qôíi^ÕŸwg˜­@« +ÿc³ÿùÏv.Ó3ß“í˜è<ïœA\‰€Z抰9ŽÉÙȬA0‰(Ý7‰Ä_õ¦† ©%¦å•æý!¢!Á?8†S«|væzH`žP¸ÓÝ_œ½OmlRZÏìãQc…8ç•ÒZö/Z}Õü·)VÖ?éî}îk½ô[4ÌÿýˆÁÿÿ>ÿ¯ìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ü÷ˆÕø?Ä~wòd)]‚`#>ê¨øèdaå5ø‚ÅÆ0?ªûè$ìb!“]B@± 4*‚)8‘¾uéÂå«'.6aä§þsË`£õLŽ@ßlF!ȘÓ'ÎMoÏG—Nd¸ôëŸÁGç³o\ɾu-ëêõ¬K—nܼz";ûÚ —/ÝÌξ~üðú Jf£ì+®dg_¾~9+ëÚÕÿu#rf£«¿~ï&ø=×®_º 6ºñë^YW²³n\ͺúŸý—Ãýomô_‡ÿ¨ý#êGÝ,©3Öß“«ô†ˆ†Õã•¢ +vàד]CRluÂDn K±ÅQ¥9n`£F!=ª¦µ†åäš œ\åœ@eÇdôŽ–¾¾¤žƒ‰(Y=Q€š´Y=á^$–lOB³<3Ø‚À<­.®RÂr<¸$»'ùИl€çŸþŒ¡.»Æ:¾ßyWÿ¥oªçZ\ÎhM(ؤV@Ü™‚]ÛxÕvÒ1 9ï…\Ù~ßüƒ‘|hLª„䠌֒3Ûc6eèåÆM’~¿²á•öÝ‹\ˆgžIúûÁù £:jGÚÈ!€>©ã "JZsHNª )˜m>­6¬b´Æu”–Í©–3Ž™ŽËI©q_Ï#Z„Ü´IÄŽ9qÎâŠvçˆUQ­˜3ôr¼ +RµGŠ/ ‚1JZ8ä”]Àxø]©Á>Úu1¦æaB6Ö§$7¤V‚ý5É£¤•KNXØØ¸‰KšY¨°_QàËâZBuLC¬ÿ`dzði 3Ò¡#P“jCJcÂÂBGõÔÖ¤‘KL›{Eq=Ì ‘4qñq—ìQªÜ2lYDË„%ÌLä¡•ÏøyUòè8îþJ¯$aë“ø5|¢GÉFx3ýv@üE½b?ˆµ˜ùÎÓ”õÞ»”©0a±F.!mca3½¬£FZWÜÄD¤mVì’ÓšbZ!n¾ó8n2Ó+Bþþjï@ÜÂDEôøú˜ßÖáªr|©{_'{ØxÝòSPöÆõ™žË˜Rç8&×3G.‹ÀXÚzÅ1+ 7Rš#J\U\MnÍôÇcú•´&Ç6×±@( ¹˜íl¾‰ÑWщQ”ãJ2l‰WÁ¬O±k£úþ˜~`À§ù·»VÀo%4˜Ò¸]QS| +j“_ɆF AHÉC¸§q¹Ûï §Ý“ðk%DN\F®I)yȰšÙ=ÕWü;Ó3ÈY‹¨¨–‹ô-ÃrvÆ+ÿêžiü>¦ÁW&õlxB'$Æ BrL/¢ÆÁ9%ô"Z\/ D3}&UĪ”‘I™Ð´EÄ=XõÆb6ˆ!zPÉêò/³Zâ,âÏ»€ÎÝkð îPÚ¢F|]DÃFÄu^@ÅGyø1•W±ºÜ³=—¬Ï‹þhxPögÓý¶oC3bœo‘Ûµ;E.Ü› ÞöMòcRB¹{ºýœõeõ—k#g5Ïš¿Yy ÉNhøÔ0À~÷:wç}×uß<¢(¥#Ô¤´¨‚„žPŸéUàõ ÄêÀÖ×w` í^Ü@m‹‚¼IXDœƒL¬¬ôöEô¬ž¸– ;0¿ù¤frË¡[¶ Ê}óí—"‹ŒÎ”npÀ¯ÀWû—à9ûõƒ]$üÇfïPÚʧGõ\lT/fE_ˆèùø¨NDŽ‚¯q+ÀþUñ@j­ï^jµo0e²ã6.Ù)Å—{@]9ò ½Þw|îlö?Ý_— C—$4”Žc¦oˆÒ1!»€Ç8gùq7¾F}DÆl‰*(uqM¦§0©!¦g!cf1gc›c}Þõ­cŒp{c˜t{wŒTZ¦5øÅž\®ožXVК¢Zz‡} šå'üu\7Ó!%úvLOnL¨­¯!i3À ƒqÓJ8‡ ×?¬Òà¦4 @ä„T¸’ˆ†TØR3Úý2v»g‘Þà§€¼$Wzç‘·ÜÝç¼S¨ë1³Í9 ÏrŒc³}sÔrç$¥80ŪÙnûAý°ð+?Õ}‘3ÚSZ3es™žõ +òÐ2ðṗGŠÈÛ«ûÊ1Ýúƒw™ë•‘*CšL¯:¢fu¥BVÊ,Xûú@Íf'Ì DÂÄÁDuŒÎ„žƒÜ7ð û`,Œ¤ú}+¦"n„åzë¾µ£*bmgzÅ¿€Ì=üâç5‘èg+Ëa Õ ÈQ­54¢£6ÇßIØøŒô†äqbUÀI¬y‰•Þ÷âf6:¬±`ç3×E’Ãu ½Êg'Aþ® ½MÛz%™wA±êÀÄ¥Ú¹Œ;‡~°Ê¡¦¬ x@Iª‰NÒP›2½&Sz>ußȧ$ô´ö˜]œ2Ò{öA½ñ«hme?'nèïM›ôLߥˆž‡ú61z"F6òpSò4½&¤/:Ø|•^£ÂBjl ˜ã–˜‘Ô¼og`ýZJóÆ >ok–\’¶Þyòk?ÄU3m S’RcLÓumw¶ûÒî6?eæ’Vž%lýw“¶‡qëý÷)û0¶Ö±ž3¾eìí”–Üt`0Óë’G¾Å}àÜ*J]P‰/ Há9)¹Ôòö˜ŽÑí‘Jw—Xí>ÅP¯_-"E•ô–ˆSä]‚^uÌ`r˜’™>ðb_‰/ ¨ÈÕ»³„|÷,±Ð> ¿Ê…Ÿùí$µüóȼ•‰°á%JUpïø¾5Ñujm¸ë¤‘ZpÇMΜÕÀneíBòÎ A9ôzPŠÊ‹èXP—œÑµ;‹-üx$àŽøCæ­Ã'E礨[a&k +zyn°ìÏú§mg“ê^fXMkvÏA³6‡[¾Ù|Ûôåæ›æ¯ÝSØÜÍtN?!ë_ÖKuA`FÚH¬š É¯À•íÉqÅ>%`—pá€{•Œ¶ ¶ØX˜pì´…OZX˜øÿCÒ[¿·ueoßφ:i;MÛÓPNÃÌqÌÌ Ë²ÅÌ f;Nì ;qÌL²˜%3[¶˜e§3Ïów¼ëôýAW®Ë‘¥sö^ë¾?÷>ûøÀSa¬ÃÚ'šZ;|HÏÁÍÔ¼sNÜÁªŠÚh%“¸ûCŒŒ–Ú–óBñÇ9jI@SzÑ5Yzngvÿ l`†\lÔ"bE-2qÀXÛüãYÁµM!`/Ô©[KÍtiiÙ~3±ói›…pGÀ¢¨ šDŒˆE*Ü•Ê>ÎKkvg…ÜøœµCÏš!A-GŒµ SC[ÄÖ2³W·ÄçÄ¢è,Ÿ‚1…þË Øè°A@ ꤸ±®%=Y€àS3rA—n@žIöëh¹;JÒ£€QÊw«9è%5-lÒ£¶ºç1GM+ò\•ÝIut–C ØiÅ‘y>74+øL‰,õÏ£Öæ®‹Š6`2ž[ƒp:ä0{õ“¸]^€: Çj !Ó€V–5ÌBÏ4þ¾kš˜àÕÓ}z‰´ dix¶5}ð¤üø¸¦îw‹¢î?³…[CÎ6vdýè×4^y}úYÊšæ¤?ZXU»VVe@YhŠœ¸5N|àš %¸Æ ÷–ÐŒo O¬ç<ȳ^•´l×ááZÉÉ…ÎÜÃÎAüíåžÊK­¤+ÿ°>-»þX´’äpà³h9AšBt5Y|¾2 +þà5I;Sä÷$ñ¡´ÚìfêÉé³X]à³CÆšú©¶!õ2³+ý:Rª ¸f¡·ð×ÍaZZ̪hð[•a³"Œ:¤ŠÈœþO&XÞ†,Õð}²Æ˜CÞïƒWCòUØ‚ ÔÐ85-¤—0ýjvÉjùoƶÔoÖ{*Îmöa¯Ø_ Îú§8˜]‹XàG˜Iů +k¤ì˜N!Dt—Š’æÖ@††\3 »³²º- £h~×; h®nŒ@]õà=“¨+5>%²ÈÄ…ìµmAsM#h7'Ú ½† "FS Y†œ±ò¨^­j–ú;d‰=»T<»ô¨r->Ǩü¸D)þú3ˤQKMSÄRûÄçs]èVÓ²=:FÁ&pæÂ`é)hIÜÎ!ÅìBä BÀ@+éE!«Tæ5 +hDQkucÈ,f‡MlÄwM“SW†+¯nô“ê‰{BPîšdfo nPRw†È‰¡)zVhš]¸Úƒº ’òõJWÅ%è’À9)ãÆßÞDs–ƒ·a®û€é6‡I÷Ã:8u]Ò +‰® ܽ±âÓþiÔ¥¨—Ñbï‡ÁoãfȨÀ>;Ôï·$¤ã“" }q+1Ó +·§JϹ§Øh¿V&Þ¡¥€æz¦XèÀ« ¤dd‡@“|3ÔœõQôÅÞâS!•€ÒH˜•T q0“‘Oú÷¬DúÑ!6зT”ŒÅüuŸZDØê_ô\üÎâ+ô|¿–OŽÌ …!‡D +µI Û$¢ µ´Z" +HY^Uñy¯¦üºWOHñ›©ù1ÐÜø,ð…£æYÌR¯†×qkÓ»¸ƒKÍ‘rãvð=æµ*j5KdmYË‹ÚD\è‡sŠ–4Ð +÷@¯c6>- g•¹ÕäT7d–m»6>ª¾²´ôF¬uO£6!da¢"6&:ŒükáàNÕ†y¦¯T²< A&[å +à*äðb¯šžíÓpÊCz¹pk{Ï9Uy8Œ1Ö·ý‘w|ð&ò hbÈ$¤Dí5OàœÅnð™0²Žfi|µ7t ÏCÝþ‹:XXäyõñ9‰ ñ8¿^D £"ÏÖªÍÁ{fE‚¨MÌÄtäYÚ†÷¨Ë} I_Å͵­»Žæþˆ½ö©×Ì([!?XêãçlWóÖ'ÃQଠAÂñiŸt¹4íz—ññ{¯†W0Šh!«L¶É«}*11 UÚZEP'‚Ÿ&<\Ÿ$ÜÛ¡&†4BrÄ$ 9G ¼£œÂÀLc½k\AÙ•¯r²6¡–VºQç6q÷ Øã~XZk” ‘çÀÿVË~[î-¿à£¦F´2AX[[çƒlë› C3RZ`š_ެ+y&°w–º2~Øì/9å!Ü L 0+}˜Ë«Ý¨‹a­ì×ñÞiBÂZoÖ¡ùשߺú+ W³ò":Ù¯¯™ä—G Sx&«î¸F ŽyÇò{'J.f¼ÅÇG!.õ£Î¯öbnFõRa̤¨l-™¸ø‰‰ò©™E1 Œ‰Ž…Þ‚P +pacÝ“ RòÚ‡’ãÎòK¾IjF`†‘P±JcÀ2›£äGÛ cu2øK‰ égÐ)˜‡n3ynxzǹ416µ‡ŒOB–ÚÖˆ­ºÙ™ÀÝ«åWE¬µOA…A­˜ÔÈ1È 1»€²2P! ½8æ`b¢go®ú)è©Ør€jZ¼TóxÏ!«ŽZô°QĈ/íÍ*šÃæêúÂ=ÀÕA­ŒÒ ð0ÏÅ8àAYÈ,“„á{Bð>NÂðéäB¿©¾uyL€Z¡'ôœÊ]‡ˆ¿uøû¢¤>êà3|&à£\ê3<›tcï“…Ì"VÌ&`î!¬f•Ë‚&™Ð¥!d8ÇP×ÂZ'jjj +× «À=¬ Ìoäáãs5Ïãà1›XÔ>èZ:B¦êê YÊ÷³`N"³µ/öµ¶Y±Äã´3ÃEæÞhE1ص¡=nkîŽÚªð(ùå[㌌˜Y^íR k£<”[ÕÐäR?ëßR½uéŸöùÍbá¶Ššµ:JJØœ–r7´u ³lÈ»rIÈ$bAS&ÈOJ^y@[W»=­`;'¥ƒL1JxàëäÐÏ“WȆtN¹Ç˜9uµtµ—惺†± ëe‚ŒÔ7„<ëº;ûˆs´ò¾OÇ,]|‡»˜¬áAïñ#&1'b”K‚™pgš_µÔSuem{mmˆ–´Ð^uÁ3€ÌCËõL’¢zd펋 kب…®¼#óoòf˜(䘅ŽüCëÝEg<£Ø‡Q˜ó¸ŽOðÃy®ôœ[z[zvg‚‘»ÐY~z§x?ª2÷€>ÚÀoMbÈã̼•!ô… B"dQÖÚ5-jÒ?C bV!øœ°:Z~i¡§ä¸kŒ™íÖ‹xÖöгko™i©Ææ]8‡¸^Æ‹j%t¿ŠSj|™qÐüôÁ÷¾\²Oͯ\êÆ_õL±^U4ˆä ¨Õ ž[áÓ2 +çGÊÎmNSƆ6·¶¶Þ¥B†ÇoBH†6Ö‡ óû5¼*ß´‚ãzÚæSI(!¶ðÈa+—Ÿã±>. „¿/ñy3%z0 WHà% e‚¸½ºÑâ IÂÆ~œS´D,\²G[•€°mH-gû•RJ@-ç#µµ;_¾UÓø£&k·gD8ŸQ&^W +Öô»>e57js¢v9 g—í¨hÙa;—ãRB©$`j|åTsP.½ˆº«Z!+!Þcââ¼:^°%;bâƒj)Ë9.¨ éâ°©¦1d¬®Ûäµ»óBA|NZ ùŸâÕÑá\Z½Úú&VÆ +[ªë£³µÏ£sÂÀJÈóÛãsàÏV y¸*é)áÔ?€ˆ!ëã^Ÿ©®5hªk‰ØÄ¼ÌwÜ"“ìY…,dMK÷ªäÊÌ“Š»[ªg£«ÊÖ· ã5ì5¥˜àŽÖ£†ŒB–_/d¸4\Œéuù1¿žöØ(¯[áG®KëD´ ®¾Ù9¥`-3RâÖšÆÝ9Y}|^À Zø$ŸFLñª•ÛSÌ\¯JPµ>ÃDkZŠŽnô1ÊöÌ5õÀÙu!­˜æ™¦¥ÏvæÝ™ ¦­Œaû¸÷…§š ÕÕ^=ëVsÑn5§dsœ™µÔƒ½²1LIÐw¢/ ò’ömt3v­2¤–Y¨SŸŽš»>RzAßzç³¹×Y?”Œ¢í)ZÖê{̕дÑ +©ÞZ¶ò°sse¾#ëÈJgÉoÖ^̽WŒÛûì­˜Ä=sÓ;`|~ÈÌ% £¹•ŒÜéŠk~51Ío`–[^é˜åŲ•GÖIvùÆöîúöNP# ;uT´ª9÷§µ!Þ¯y90@PrPˆ³Õ3~R×=úi{Ÿ´4FI­ÎþÅ?Q ºÒ6¶6u¹UœrÄW<*zÎòæÖÖ%+š±=%¬rψ)AÃÓ¾ ©ñ¥ÏPÓèE¼CÏ'¸&Y9îI1Ö¥¬-uKªÅô][uË®½ºå÷EYô 3h¡¸µUw {–»f„ÄåArü^qÜÞô!bkî [;#¶Ú§ˆ—@®®ð¨+nûµäŒ€JDôOËè!M0[Ýóøœ¬!lï5Èø!`«üë5é‹Ãô4G'ývT]_‡\s AÖÿ!{u|ra›y±$ùÄ©aU,ƒ—º4bŽSÍ«rÎг|>zT þ$GútŽÁ¯í¥§w& oÌí!à)è1È´Òˆ]Y‚KðéÅakuÃÚ¤˜¸4ġi„lò,b¯n +Û«bs²èiÜ.;'‰¹ý¢ûÇü“5õsÃË-ðS¿±îqÔ^÷*bkìDøíã<‹62Ëfß•_{Ïpéw­(ë„KÕt§¦ZsÔ¿ŽÙÅR—’Y¶1FJ êEîIJŠ_Ï,‹÷F€µ¢0æ!ðuŸVDÚ†\¾1Îʲ;/«ÎóYp®Øi1Ö«–ýÀgnµ8Œ¹b|V|Ä9Â(;ª»ÕRª[-cþ¡wZÈ=Ó|L@-$Àœ% ’¾M×·•üŠÍIzš[Å*€ÌRâ™áûTü +RŒ×¾©¼òž~ïÓ¥L2²†î×#y‰ž¿5CHX®¼>÷¦è´k„’Õ‹~ìêg§Çgj¥Î1j®«ò|@ ÙJÅA‡Ô¬2Ï-MÙVø«¬øôÿLTg_ŽÛOv´Œ¯Ž]ÖK8q³\2UÜÛ™(þmg²âêzwÁ/q5)#â`TnÎàîûÕnú9 àÀ0a½ˆîT“3Vú°·üS2Q4skŠœ µXà›Qp½Ó +–{”öŽñÊ=S‚ +eê<+çø;ÃRaÈÔÒíTJès]¤Û.“ˆYÜ#kDÖ8¼ÐcK=Ô»Þi)`”Ý* Í­‘q¼!!Ž\‹Ð WÏ U>jÃ\øÊ?.¤íZk[ý:..læ“È?ö]ð‹˜;ûpÿ=ÿþ—êǹÇâöæ¿éIŸGßôÒ¥•A®®nØuÈëwÏBz6Ê=ÍÌöÏ*Z9la bV+Èu²6¼öÃçoÌ–Gˆwœ£¼‚¸¡ºÆ¯c‡Œ<Ò®­îEÄ,—ù í«X…*fÁê5mqxGÅÇ9úIw}Z¹ dkè;šAÛ5^“îÑs*¶§è™s]Ø+›Ã‚RD3CÖš&Ÿ¡®9d“ÈC6E}Ø*•ÆlB6èeaˆŸ·8ÈÎŒZ¥2xIB»ÂކŽÈ¬¢!„ìïZÅ‚°²¾¡¥ks†ŠZÄ= +šÚ–ç¯ñI|·ºÜ^pÈÙ[q18 ¬m³‘½ ÀŽÜ˜¾F3T˼SŒ<ï²îLÎô«*nÅÄ¬Ñ¢ß 3] jŸ5Õ¿ZLõi§`~vçx´½9&a×Ρ"kU!m,¨}Òдõô-¯b}°üüÂ{ôY{õ–á9þNȬ¨sëDÌU¨1÷ô³÷>ukwÈXSç3p«¶¦ªnyU„‡¾JJÄÈ'ú Ì +¸M[WïS‹ÉȵYç8+Ç z¶/kŒÚì°EÀô›¸„m5>)l‰Âs’ê5 )5>W÷zw¹i42WÓ²ˆ.¤ÇLÕuà±/cvEmÔ¦h@Ö›ãs"AØÎÄz Ä,àBÄΧGfÅÒð¬¼Î«`:)×§“ò ÞèÈ´€ž…^Ç=pNÑ2|Ⱦ'µˆ´>ÌÊpO +@¯¡&Áovʹ¨‘¾6”yrá]Ú÷«ï‹Žûî˜azÓÈXHNñëd}c×ÂÂEM¬Š]àH¨‡7²f’žTË9£Ü¢ F²ÿlµ¯ðäzÉ%ÿ³lÏ*¯ö+iYþZ¦W ̯äWyÇrN8ûR~Ú(=„1qªB:zA`†–Ps*ý“Õþ©j¶[MÉžëJ;¸=Š†Þ äÇÌb ÑH »Ä£ ¶Ú£ycÄJ/ è±ýZÜ£ŽY5I¸Q›¼.5 ™TæU +*v†8ùÞ1Q•gœ +(y+­Ä«e£|z¹Ñ.²{JŒóÍÔˆ9È^%>Á=Qq#<2ñÈõW¿†‹ö*éÙ!ˆ‚°X¼Äo gùÀß‚Fj¾Ï@/ +!צ-Í].}]ƒGßøÜ£{626¾„LEŽx¸ˆžUîa„ Þ|¦jyÈ\ׯÙþ¨§g»³Ù®•ƒ)yA!u×N+Û³ÑË‚|ÆŽš˜îQKx‹ ´YïC® +!£, ¡å‡<ä…ÂÍ©Š[~³Dæ·Õ¶¹MBê¶IÂó‚"¡×„O ›e!3¶€Þ›ëžFì²Z¿SÐ3KCZ¾WEÎX¯¼¹6I|°Éƒ³|VÞ¶= X^耻­#Žš§1GûÔ*²–¶Kå+»;'­†q`ÀÔîÍ×½FÖ3vçDü½y>ê–=×G¸µ’4)ê¶M<Šß‚¼a’AîW<Ž8IJè,Ÿã·áó§ +ÎÄçê߯æëÚåšwÁ«öæ{€õ!k‰¸›DEŽÅ.¯CöøMô—ò¤EÌÛ“CK€·Ø-³Y‡ŽßÅ,  C=1m}sïeU"Ǻ©dÌvá.z&ÄÄ=èÁ¨Qê× omçŸ\êI>â*¿íŸ¦† |âBOø-5/bTHá%ÛV²ò7'I‰Û“U·=jjFÄ šo—*œzJÞlú\@Y+ ûµBÒæ0úŠýuÚþ•îü3A½,jP#èKÞi샲GÏ,bmõguöç]N“ ¢% ¥ç;‡Ë‘=^§\ÓøGÎ)nÕZ5ç‚ù®Hª¹„’qõœ*ï ³¹&éÓòð0O]°3«|ÏÁ¬üè`TìÙ¹¤=¶ÒJ=Z\²GEÍ +j…׸íUº'èYA#æAÌB6ÐBȾ‡Y±dCIÏÚãBÚ–Ž€^&pŽ’¶‡Èé·9~-½p{}}ku!ÇÒË„~ˆ2rñ­8h¢—MÌò½Y!woVZã†ÌâÕ)d •àO +²¦½ ¯¸Uªˆšalì +à±Êø¬€[¨²×>GÖgã6±ø÷yïã—úqŽCöª+îlMæŸØš,»ãŸãœ!f¸”|BXßü:fi|5Ê$înÙÎŒ js’U¸9¹ç5HE[:9²¥ÏÜܾ‹,J}–Šä3‚F>˜ˆFrªU@÷jysHk÷D²È,ç³P Â.8K-l [Ûf‚ö6M´?2[Ý_lèù¸Ü0_6†íBnÀ§…ÿÿ~…‘ýÂvyÿk^MÔ¢™YµS ËPò—«nnOSÒ|z6fyŠðÐì{˜mx™mì9dµ!»€°²*ýb¡ÇD­ŠÏÕ¾ ÛdŠŒxG{Ø!mN] Aî„,UYdRè ¤.eÐ1‡ˆµHpNXÈQ¸‰Sùær|]È$  u…ωϊå{ Чa»XìÒà·F*¯ó #&™ê/Ç«¢äTBX[ý8nlx¶kVÔBnÆ,÷V^Úž  ûÓ!ŸâüÈú*™À§“Mý8¨È›JüÃÍJ’o¦å¥kJÁuOÑ;CÌï(5' †š‚\°1†¿ãÇÞŒ™È…{P >ëSÊÅ!]MsØXÓ^Cöeû¡7ÂJBrÌN-zx¼OøèLD%Ä­QÈÀ#ø \ì&èšgšYÒÁØXdÕÈšµ»òbôä? \fÄ„Ow)ñ|\C¦dtÄ´ˆ]éÖR‹;„7~zǾó³oZÀÚ›—4ü>/Q€Ÿs>Ö©e”8F°7œj>Ñe‚ÚR²KššÚ¨¦¥3n¬mò¨(™#˜+kýÅ'¶Ç1׃1ccœ_º5Æ+ˆcì9jžïÚÙ¸° tØÄ®9>d½×¤¨öø”m%³²|sÌ"E¶4K GSÒ]zBJjfwžMŽ-ˆ$^¨Ÿ±îIl®¡+>/{õô€‰ƒ y´˜Íø¿ <0eÕìPɉÅ!zÆ}gF +>RSãQ×Õ»UOÞzµOºÀgêvôbúÒ ¿|i’•²6wû€¼6©,`•ÔúM5-AKMSØVèKØBÍßV’’ü;>_÷&ààP²Šì_ +ê耖VèU’Sšj¹Oû¸}gFÎviäÜí)Ö¯c0æa+îÒ±° }à=ýô‚=C㋈OvŽ““¶&¨éÅ€­ùDã.1 +^ þÞº©’ó6¦ÄU¬…B†ˆšiÅÞì}çxÕÍÙÎìŸWß”]‰kåò¨EÄÛ†Þd☵þU41njx1Jù~8N¯†^y„2ÑÁXðÙϼú–÷Q»T +Ù™|T¾Üƒ¹¤nÎ=¤k):Ò y~¢ß<‚Ï án«…¯OØÒ0‹¶ôÜŠ =§lm‚‘µ c» y4bäáÃ&!+î0‘úߣ&­ÓR!dz”ìü¨ôÍ,¯†/ö«ù¸°¡¦¹¶²6¾8ê^@n”€·ó" 7KCÄ”¹÷—âVE}ÈÆ#ï-ð˜ñ9.ý#rmz^ÈG®CÌ"dø¦¨]¦Žl­îÌ5…‘{FÀ#fZ‘SEÍóÂ<ù,2ñú$« ¨mzî7<í÷™ž#9Øk‹üp\›D„¶* gÕÔøLÍ]kë”ßRÛ°I%»ˆë2³ÐÎiàqv€ŸÎ0ŠWƸ]ãó¥¥Y{‹/6öÇçkžÇªŸ…m\òÇ9ysØÐg®iv›ž«‚sMý>kÍÓ5•ˆ´¥âÃNÕ®Vºke`6'ˆ÷ ýúêw»€·°1>£Ðº³>Œ»»5Š¿53Ñq›ˆóE C^ Xž©VE£Ç$æxÁ âÈÚ8²ïÅ!•#ë¹`Ù€VÂòÎðÑ>-¿ÒgÓƒf!².¬g£ÁSK‘û/‚32¦WÉǸgXÀ¶|"²ç?dâ“#à!H–†žä„m"n|^"ß]5„‰²±_Ï« BÖØ5Hy0W A“˜ =—}‹Yªü ˃„› ]¿­õW\~. 餗ŠOÜcf¹§ªÝSÕ\¿†ù’]á„ °4Œºà™fäEÕ2ážM^=û¡øâæ£Ä¯Sˆ£f™8=ºçpãöß‹ªWÇ.[bg8§(äú{XÇAÔÈç¤ì€ØZIÏ Î0 ãÀÑ1«ˆвKëLŸZL‹ëš#溶˜MÑ´ëà³ÝB2²G¸‡Ô—Ϩ±|zÈÛÈý SŒÜµ^ÜõAü݉”ëÓâ‘ëQËãî ±ñ²_k[Í,ãÇ`œ‚& ¹¾ sŒþ#Ãêkë‚v²ö¹9ÁÈsÁ±…M´¯Ž˜ì6Ðòû#™ f®m®m !{œòú(Ìçî‚~. ºUœSgå5dMþ?=#>äfyØ +Ú5·· –ý{™Ïÿ}‘ljš9„¨…ÏØ—·DåO⋊Öèœâ)ÔHÍîBuÛÞ’âyt^,Ø„¬­iz&øq]ÈR×ê1IØnCMmØÞØúØ„0P ˜<`”ñ#EMr—ßT]ïµÔ·ùÌO‡ý––Á½ú©2,Òa—97T|fmDBÚQuÝÆ—¹º¸ê |^}l4¸,f—ˆ‘ûWEKÿJ°4¼ƒ€?5 YÞob¢v”؇.%.ɯc–~œ•UÿgAÑòÑ.†±2ƒfYäï×àGm1‹€·²*BfFiÉÇv!?êP´¸ŒlŒËÌ3×Ôý ½)•"lm‰X9×$=c{„–èžbåù€y‘ýûA -Û=Az¸3NM +ªù˜íaFêf?é¶s|o×*æÃòÃÐ#Ûð^«Ð«fBÍ`÷fE|dÝÈ£ÝZrŸ=¢‘2"Z!9¤ãU!ïÛ†Ïu+y>-³5ÍÌYb¦¬ôÓ“¶ÆH A %Ë5MËÚ™¡çnŒÑ’·Çe¤ùnÒƒ¥¾Ê«; ?^Ðr—’Q¸k” +wõrqØÈÁªÚR¿_¤¹ÕR¶gFBÜ5*äÿžS<þ8'€^aã}sÐC©ÛãLdfVPMÏÙ³ò¨ÿôôßð +þqO-ú¥0jfc‚ZFA@MÍß'&ù¦¸¥1Óã÷aóc` +ðUd`5ǯ¡dGL”œ‘˜å×q*B&™$^€\õ«h…æ×©?šÛS¾÷¨Ëo@þMŠ 9\/átÕò ä¿^DZ%B`°`u"ô?*b¢æ… LÈö"JÐÈF#¼0ÉeuÁ“éenmÕý­콨‰SÏB®…×`‚&.rd3¢»»KB 2ÎnðœµajÂÖ ùþÿ[7GÿØ&f…­ o"sŠ'›¸;OC}„WÔHÉŽèqÐì🵷 Qì.Ô¶½…W{ 4=:¹YDZ²0QÈKÈjà9NummÐVžÃ&¯IâóÀÚ ?beaƒFÆ¥æ”y,൦—&Ÿ¥m:d¯{á…Ÿ‡,\|ÐÂ(óðé~„ïÕ?u›Zº×cBÐ[ѹº·‘YY­WÇ*ZÔ]ÄAöå„Í /:…<î¨mZk[}¹0h0à»°a1‚§‡Æm,ü®UÀ>jÜ]x<[iˆ/V?ßuùð˜€QäÓÓóB&FIÀ@/Í*Úš’ƒ¦Ú¶h +0œ0dí²òÈQ £t{Œpw¹«ò·µ>ܵ•^òÝ¥NüÏ#Ã3AIrÃÿmï®öTž_é*;¾ÔQx$¢%gFtÌ’ †S†üࡦûfè™A «(¢ãb<œ÷´ïÓJÙA½ŒëSòÑžIV®s¹ïƒ–ᙢg¸&ȶÇH÷¶F w¶Æ99+ƒ´ÄµAüu¯’øÈ­$%z ®=*Zææñ¾îUæ÷–·GÖ‡à÷U²OÍGîG Tì·{¢âzPGÍÛ™¦g9G˜i1„ö²h ô9¨†<¡a»ÆÈ ;Ãø[®1üí–ž·gçA>ðâvϯæavÆéiþfÞ.°}XË,Ü*¿¸ø¾äWï(+'¬–²@·…}ÿð§ßíY@EËuW^÷M£.~„̾k¯y±üá;¨Ë›Äd8ÇÜÏs˜q;62Š}3äÔí1ò£°I*ô"ûÄ!›Diƒ ÇAŸ4Ò +¶•˜›ÞJzXÃ.EzÇ¥Q×ÇXY5%=d$Cæ¡fíYx„¨žSÒ²Š%€½…lä^Td]:6'Ç‘ë{:>²Þsý˜ÙwÖɸÀ†-n ø¨‰KˆÙ8¤8ÌÿG;‡TS³œã¸»n-þQÜΥđëepœQkMsz f¯i‰:ÄBŸ É,̲˜'²‡ÖYÆ%bE|HR›KC*l¢æ‡Œôb?|WØ? á5IøkýKð’'Qsp)¿Ï ¸n-«dXzCÉ+_¦'û´õÍ>CuÝæ«`¹w9láS"ÀÏHîrOS2¶ “ BŠ[ɯXâdÅ€ãÀ1=ç'? +hˆÉ! %3ªa—!{L£ŽšÖ£æ)².Ÿ­ëˆÁ˜‡õBR@+$¸gèÙ냗z+/.öT]ÚÃ?@®/ûLNØ*þq +r?®ÙïA|°=BºkiÃüºü–pi{„š¸Ò»ä!Þwqr×úHw:QÇl­¹ß­t”üê#=@îYßVI¨óï±WÜcäÄ †Qà…ºöL± 6)û·‡Xi«È7\“ì¼õAÊÃ¥ܹíaêCdmvêõCåoŽ×eGgßTžZëÆ]öMRRJÆêPå•å¾ÊK®)jŠg†”ìSQ3œ#ÔGëýôË˲_œƒ´ä°Š_TQ3ýSØÛžqôåኋžQìÍŠ’P2r7‡É:°¿y'xe«Ýe§W» +zÇ C*f¡w’øÐ7MJòNRÓ7(÷ý“B´Jˆ©„XÏ8¿Ä3Á/Û Á÷ᯭö”ŸYïG_pMá¸Õ¤TŸY»bžcÃzZ.rOÌ.r/ŽAÂF®ùfب˜Q jy•13‹ø5âQ¾ijšwŠ–ç”æchXߌŒåÓ(ÎIv®OÍ« ¨¹åî r¢Y{PRÓ–û°WVû‰7KÜÓŒ,×8=5<Ã)ùÝÄÃïÁ+¹f£¿êÒf?á†oŠU·Êªã!#zÅ7Í.õMÒ2ü“Ô”­â͵о1zªg‚™í”íŒ +Ë*A¥OÉCmQl àox¦H‰Q3ç›fæÔ%§pk”’}þpåCÕ¥µn g?ýáVíþæ05Ñü +uJÛXr`´>¬f!}¶ÜUué¹öªS‹oÊù&*où¦+nm“’7G%UÛã’*˜«Ší1JÂRþÒò{â•õâ’]Õð+Ƚô#ôT×(#úùÞÎ`ååî’ã«ïKO,ƒlôaÎ-“ÔÍ_/w–ü×òðžIrÊ +òžî¢_7ûÊÎÀ{.ºA«½“TP-ă&äy'e¤qqc”›o{UqÂÜZzpöMÅq{{ù¯kØ«Q-§"9úü{’žÖsÐaïQrK"o‘5¥˜YÂé¸q‡XlËôBý»”¬ÜíIbâR/ê·Íðè!FêZ/-iñáÚæ3Ë;%†$8‡)CÔ„^ÜÕµUíe¿ÌwTœ^~K¼ìbfþÇ +Y>{{‚žê&ÞÝìGî#%Þõ+•Ûð»‹]˜Ëª†œÏÊ;»I7ßVœ\x[~|á úôF7î†ýúøìkâ%èÔZ¿ ßÔFüÍЂ>:÷wØí›a!÷ÎçúÀÿ]£¬¬•ʃIdo•\1‹ù~`ôðÖ0öú6°Àö°FWÕÅÕìu÷$z[èW ++È5Î?îMÀ^Ó·üdzZð£{„˜„h¼|߯瀎H…>µ”±3ÍG­ôo[[*›—ü¤”çîï§'b{Zð“¼Ã9@Mñ)ÉéÿY W„õÄ0ûR?îŠîyþö—EG6û°WäȽ]a³˜åÖ +ª¶G99ÛP;£ÌLäïˆÌuT³½À›‹ýmáã‘_%¡‡4Œ¢1Ü]ï )-l ú‘=·ÝØË‹op×{ÈÉÛÄ»>%· ´?ß5ÎʆڿãìÃ_ÛìÅ^\~WyÆÒZzXW_|x©ƒýpñ-?qö%ùâÂ+âÅÅ×Ä‹sϱgV:©7g_bϬw‘nlõÒnA®ðN‚¿ ³³¶X©½”;Kï0gmo +Ž*’¾g|ay^~zù]ÕõèIðƒGK]äKïIWg_ZíÌùÙÒúè›åw¨Ûc¢Ê•~^žgJT¹=Î)Xþ@¾0áJ'ê´gwÇ;Œ¿7û"÷ÀòܵånêƒÍ~zÊö-i­ uj«}~{°âÒöpÕëÛÊsc²ôÏW:17vub:RK |(;½5ˆ½¹5„»á„¾Þ¦'íŒPSÖzª®x'$ïTpsTŠYxǸ?×N¿åx‰?km-;¸ð¦â¤³üÐ3ÆÌYï%Þ +©ÄÀJýƒ!‘¿a¬OA­UAžK¸¯šYìVBn›ýðþ¹Ž’ãֶ¶§¥GíÏ˱?Gÿ²øaÆl«Ÿšàgçì 0SÖ?¯®À_±½(úüössÉÕ.òíNÊr)ÈýÎÀe® ½Õ>ôoóo1¯PÇô³¿äÞý«©¹ààFåÎ|;êØòûŠ³Æ–‚*IæW*IΗ–Ç凗:‰×­¯(7FÅeߎ‰ ¾T×–üäŸqŽR7û7ý”{p ×–ºH×ÖhiÓOònC–,õ©X%ë}ÄÛˆÇàoÏw Nhês¿5=.úq¾{aº¶ä¸¹µêNpFãÈ)Zé!\³¿*?f{Rü“µ¥ð'×ùQHÍAÙß ïï r*|3[#‚²ùN¨ÏßÜÀi½¤»úºÂ†˜)Ÿt‘}ÒI|ôI/ó+ÛkòÅ.ê]ÓSÔáZ’sˆ|ß=‚üí—Ês“²‡ŸÏÔd|kh.<0,z´49×§‘6z™)ÎAfêbæ´¡¥à»IIæçSâì/”5ß¾¬ºÿ—a~ÎÁù·„Û®~ÑÆ=yþ-úÄü ÐÜjèÏ–üŸì¯KÃù|ãä”­)8¦×”›Ë}¬ ÏL]Ýj;[×TðóýÁŸûi>}†¹õOÊíŸþÏ웢»k}ç&Å·ÿfmËþÑ;{àž¨îA]pâng¨Yaµˆ´3ÊÊôÎHh®1Ýö‚vÅþ{Úþ¬ègSKÞ í¨3Þ1F¦²©èlþù¯þÇÒ’w#¬•Klo«îŒÈ¿^î.8ºö!ÿˆ½5mßÂë‚#¾)fîsòoœ½Ä¼0ðæj?éöü[Ô ýãôýºæä¯¦eI_¨jó~hÁÞø¬©ðÜ_WßáïY_—%:ÀNùd“þ÷)iÞ¿?í&Üúû<å ü½ÿ[)Í:³5m~A:¯kÊýA]›¹OYùå˜ õ³!FÂ_'¤y?¼¡¥ýøªüÎ?WºYIâ¢ï9>15fï_}S~jR”üe/éêŸ Õ ŸÛ_‘ïhjI7æ_²íŒKAß®­t Oε•œmEÕÕå§©ÎÝoo#^壛ê*}¼²ð~³›•<×N¼`QuÎþ +}aTr󟦧Y?oöˆŠV:ÙÉÖg¸S«X «=Ô;«ÝøËKï1g;ËOÚ_äV7¤ìWÕf|c}μnyA»ºôžzkîuÕsKÙAKkÙMcÑOãòÂ_âþµ‹‘øùÒ{½•úCcsÉÓÕ¹û†éŸOUg~«mÌúÎü$ëÀZærŸüÑþnÖýý;£¢*èÁl#|–¦>kŸ¾9ÿ;ЃCü‡ÿüÀ¹ý¹$÷ì_†E©¬üåŽò3‹oÀ÷Þ¡Î8^¯=¶ÔñèUíí-õc¶gXeÎQzÚxñiÕ±…W„ó–'¿Î¾¬:ùòÌL}ÞÈ–WškG[î¢Ý7µUžP×—ü`|Z~t¶“zm›ƒpÖtuê‹ï°—L­èc¦'ÀÔ½¤;†'%'µõÅfŸU÷"žñ +saBRxXÓP~bñ3E_:8ûšrEß‚?9!Éßgh*=`{Ž?;­(>ÄJ>ù'ýcàÞäûƒüÔ¯úè÷ÿ6-JùÜÐPðƒåYÙ±ÍÁÊ«>)kª9ýÈ+Ò•?i£N¬öÕ2lí̇ÕŇ{é©ßöRÓöó’>ï£ÝøÇâ;ÔõÅý„„€¦¶>fKßäÜüdRrïŸö¶¬ïì-Ùûm­%?Û_U™¬/>3*/;á—Q3Bœ{œœ°þ}q¹}f¡½â„õEpyåK;!wXž{ÌЊ:ãWÑóEÎÎ?ÏÿqñUñ/†úü£æ'¨sþq)Ë7SÍÝ­öKÊ–>Pn-¼CŸ²>+>¤oÈÿAS›ºO_—ö•{’Y0û}ÖÒVyÚô˜~]U[uÌø}Èúó«õéüyñ—¿ÿ¯a^êy׈cyE¸8"¹ñçɵ?Šîýmùðïöô¯c %‡Ê“Nþ {éÇÿÞìgg3?`ÜûÓ„ áMuÚgÜûŸ0ï|6ÿõ›}íSü­_þ¤UT<Šiå¼Áª+soÊ~14|7ÂKÿgád9ß|åî/¾ñËÿLKò]ê"Þ›¬ÉýI]›T[›óC'åÎß`¸þ÷æ—ÿr´g|'É<ÚÁJü~µ‡’°ÜEoÁü½qÊÒVðÓ¤$éŸ]ÄËÿû +}ê¿'% ûŸQ“¿yEM? +½”<û +qöeåÉå÷ø‹‹¸ ƧècÄ«鬺ô'`íãö7UçÀgo¯÷1³–ÞSî®õo!kjA%9%¤"§Z_ç¦~¿Ö+E¯t rgۉ׌­å¿Úž—ŸXz‹»4ßN¸4¢È<@K9ö—.fòg?3mF~ïSMí£}†æÜŒŸke÷¾^}›rj©=ûòÆ0%Íö®ä˜s˜‘ã„la†ÚÃHýû{JÂ_ÆøiŸ;{±Wœc¤‡ƒµÉ‡™i‡þºÐÉÎÒ=Å_—e}5!Kür¥syùî²¥­ôåiÉ¡Ùט³æçèó–ç˜Ëîq}sPRºôŽxÕÜVpÀþ¼à`;ñ³úÂóÿ;,Ný¾•–øm1qÿèŒ2®u@Û÷Ã/ùóæÒëá¦üö_ê–Òc-ÔäÃ䄳Óùf«šæafy ·l –_²æ…OìÏsO¸'Ù%Ž×•W¬ -v¢ïϾ­HXëÂß\xUrxéþ’þIùQAú¹?=FÝûÞ=&‚·ä 'Ò¿57åü°Ü‰>ãž$&,`oÖ`®~FI=þ'ó[ôUàhSSñÛã‚-3÷sn¶5@Kt‰qCüâq ncLN^ø@ºõ¤º!ÿ»)qÒ?õÉ_̽Ìýykš–9X›ú­±•’²Þý„?ß!Î2>Eš®ËýaXRðó¨ }ð=3ãÈì R¾²^âxËJдd}§mIÛojÍýÑÞZþËb;õêtCÙáúò{‰¾¬Â+Ñ4ÿ¤¯ËÿÁú¤ä°RšüS}îw ¯ÊO.¼Ã]¬®¼õw^Ú…›p©1\°Ú‹¹8ûºâÄük<ðæø„(ó+]CÙÁN^Ö×Nîÿ¯VÒ/Žw”ÄNVâgmåþg€rç/(÷þú¬âÊ_úW?]éÅ\U\ûRXpú”œ…wØóæ¶üïuóöžþ¤ªËûqŒŸü¯iqÚwKoñ7ë0w?kÅ=ÿeeèšJoíŸ沿(=¢ªÏú¦ƒpñ“QÎõ}Žö¢3ï¹÷¿[ï"gE 5Û£Œìð&È<×Ü#ØÞqì­Ô9íã’£SÍøëÊâÓë}¼’…NÊ͹WgVßᮬ~ \³£‹Ó÷9žUÝØèe¥O‹?_l¯º¹ò=÷špk»—ððßz6fOÃ,ÙÀ\³¼ÈúÙ7)À:!¿™^áÎ8Þ®Š öq³þem)=ìÆßvM“’'[²åfÿ«í9㡪¾òÔ;õ“ÒÔýó/ÊŽC?ßYè$ßÙ¤¥nPu-y‡,/KÏoJ+ç;¸æ;ˆ—æ:*ÎͽÁÇco(òÏ:Þ`ï¼æ¤~ÍH9°ÜC4¡(øq›þÙˆ õó!^ú×ÝÌÌ=üÜS†vÜíŠÄ³¿þó—ÿçyÕÝo‚*>vù› ÀsöW?[[S÷[ž¤˜{c”™ÃÊ¿ò÷ì+?ÿw¿¼ød ô™ê¤o´µ }1.¼öéûâgK%—¶F)I]œ„ofjó‡ubZH' möSô ÙûM-…GÅ©_±þï—˜ÛßžVÝš¨):éžæ·ú‰Ék  ÎÊÃ>ì-usîÏÏ·>}I¹·o¾‡”9z¹GŠv¼¥Ü°¼(:hnÉþV)Íÿz€“ü÷7U·þ×þ}~¹‡‘>Súyö%ëáB;ûÁü¥ÿí¡ÝùTS—÷¶¹¸¿`¿ýîŠkH\å›ã—:«Îoõsò×ûy…Ö6ô1]mþ·✯‡yÙ_rr8ZIVº«+m´›Ú†ò³ÚšÂŸfÿÒÕfµÖ‰>·5ÊÎQ·ánéÚ*®¹'…¸ÅnÒ-{GÕù…~FæÆ$¿ÒÞE¼6-ÏûJ­(øÖñ ÿÛLMηÚú¼£+8éÆV왹—ÄKkh÷Ö>n®¾'ÝZïf£¼|Šs’Q`®ìƒ\u+f®mÙ™f®AæÝ¡&o“ï»Æ( žqFÆÖ 'G׊¿>^]üëö°„9ÓX|äíú_•Š»Ÿ-¾Ë>0"¿û•,cßÒ+ÂÕIðAiÆñ¿/½!憴R¦_Å)qOQR6ÑW^gÒ×\ûÄñ2ïhpF†/R7£-v3ê[JLŠÓ?á?øg;õâgíô«_ª›Ò4·´vÒÒêÑ7¿ìåeñŒI®Av&hlÖÖ îþÒ»ìS í…Ç M_ϾD]ú ÊiÆ'~5ÞXzÉ9ÆÌZëÃßÐ?):1ûºàôrWÅ¥ù·E'tM™?^U\ùÀKþJÓPrÒÞNº¾øžro ²Åö(¿|¶›xg¼®øø€8÷4ôañö8·hs„[°=!ªœ‡¹œo/;¶ú¡òèÓÓsÔ)Ý ÔYÕ‹Ò»s½äÜ>QÊ!MMöKíå—×>TÞÞ©JöN1Ð>%-{ms¥—{÷ÓÙW•·½SüŠÍò½å÷Ø S5éÿš–gí›’g}=,I8°ÔU~o²±èŠ¢øêßU«=U·MÀ¿ó/PÇg)_}ÀÝøóÚÃ/µ-…'¶ wÅù×þö’œ +ý$á¸U´â…÷9ÇVz)½"”gTFõLH‹Ý„˽äGÎq)nå5iý}åysKþA]}Öw uWCZÑ5É-Zêg&š^1þ?޾ú­­¬k;µ™ÎLÝ[êNK[ê”RŠ»» ÄÝÝHpw—@œ$$Á]’@„„ mgæ}Þ÷úþ‘ïäùá\á +pÎ>{¯uË‘µ‚ö4Õ·š‡Ý‘ "v}ïÚƒ÷&‹B\в +€‹Sºð½óí”°ùlÐR âýlmþcß5K_ÅÇ٦§K]åï–ˆ15Eý˜„3sÕ¥Ûƒ¸¨l„eþu½üÞ2TÌgÎãùºŒÛ¸d«„] ðø-/ýî$/ó®—q}§þÝ#¥,u!ÂLu%owF¸(]#òssyЩvÈ»ß ‚„›[ƒŸÝ*j¾G lZ:Ä!G%iÈ£ùÊZ—AÈÜ’’RÚ`Ÿ–[`ï6Úáï–›Ê_º†iyÖArºœ•pi®1ûñö(>÷ËI~Üe3åš^Tø`©ÄT¶WÍ%ü˜a3½F&Î3YWw`r»!Ÿ4Ât †R¯øçÖ› ®-tȸ¨Õ>T˜±!óözÁKß}* ^>ì ‘fž‚›óx‚–üÌ=FG»ÕôŠÕÁ¢À3;Øs £Âö$Án9ˆ]tüÆ€¯®üËž–ÓW§Þ£„ý>לùX[•÷JÊJy°Øšÿr_M…LF½²,ä²BX’z¨PW[ ÏÕ%_×pÂÎKi_.®÷æ½pW|wÒW0Q‚òà‹Êšüˆ]-¥ÈXŸÿtq]΋4Ûœõd¾%í¡S†ˆ4µ?I8ñ·J<À×}ØÏ)˜ß./uå?[)û¸>XöÞ.…GØFp Àº<]í!¦{ubžmœ’µÐZúz¥³,p‚“è7JŒ8¿-ƒ…¹Í<æT6¯4êùÅÙž²H¯žRêaã,£ÈË]›àU1N%íUÓK€ýÿ2ã \ŠÒmIÑç¿ç˜Ìÿ¬‰ö ðÖháÛ#suó‘I$ÞŸäbíRB¢ÀG€ã¢×ÆqñÍøï×f„wžaÊ%aÝ”œ©pk¨$pc°ü£UÊÈñ½»°­"æ¬÷•n@Þ/µæ>ÛÌzéD&í*ˆYûSL„m‚–½>DKÜæå™šàoÝýÁÚ û¸Ú +~ +äüí…ÈgSìS#&úb?.åÆV;o[ÂÊŸn*{9ÎIº*eÄ\2Õ¤>^k/øhé¯øê–“3W±‘Ææ¢'«|[‚Œ˜mJò&ŸgÆ^íD}ù½|fµ“˜6^ƒúØPõ—VPðn_Mÿ0 +u„<ç2v©»àùbWê}ßX˜©íq\¢s‚S¾;)bn SR •ٷLj‘gdôø»ãŒèkˆw§$ôÐ+¦6H`!ꪌwk«·3‚Oæºä@ˬð¨(Å›Rð»m,Ö­ã“Ýj!ek”ž»Ü…Ž|tÐf{AÀ¡ç–¡cÖ{*>n @¿[‡1QÎqf‰mŒ˜ «I¼>Ý ´Jˆ V >Æ£f•{ |†CÍ€¬!#ÆêV×TÓKÅ(ßè¼17dßÕWeÞžm.z唓²žÌÕˆSïÊÙñW\rbÉÎ%{£·üÓL}úùæ¼gëÃø˜Íj–c\ˆ³P²æ›!o·P‰@ž¥¹Ødß=†•®‚—“â”ûܘK62Â=ÉDî()à¹îŠ/.5ïT±aV :z¹³àífoÑ«þÂ×Û +Dô®‘R² ˆ<Ë DðtmúQRÜÍ ZÆ= ¯àý|#ðLbÌ«âi8úü|#6ïßQ­ï~‘}´8ps°øõÚ4bG†M=2P˼\úLSúõNZ²M^ÏY쥧èøùw¿Ö‡‰ºDÄž†G1×–½˜«-|°ÜX¸Õ‹ÍÙ×q©. £b¾­¥ß³I)YûF‘èÀ,lËPñ›CåfÛ +´Õ)gÚ²ƒö&É%?€ßíLòŒMâšM€S—:àu‚ìÛÖ^È—Qd¦[ÃÂ{ \¢KÉ(ò½Ð£ oöjyqç'1'ر~¦ú4Ç$ÎWãÍ÷[£¤ §¢†iWù*¥¤.·A^Œá#ÿÔðb.®ôä?·âb|Ïâ;eÌRÛ%i«—šhó˜•Á’skv ©-3`m³:F/ö! +ô•û³ÕmÛ¾Ñè%¥ÀcbQ,ðÅûÓ<Îò6–Súíº¤œ±·(l±x²Þ `½o‘UÄZÇÑÙv¾ðh–Ãré)¦ŽÂgÛJt¼u›èV×pw&ªÈ[#œ¼¹ÔG@*Þ‘“ ~z…!%Ÿw•ç_ë(Î??†,¹¾,¦EXºè‰ó­°+Cðà…¾ò·V Xç*Ž]QIØðK—ûi ‹øà…fâ§ÕvzÄr3#Ü Â¿áç~?ÞϺ4ÅÇX»¸™Ö.fòt)XIƒ=Xäcv%Õøu ¿L]x;Ý‚ûîT×Ö­ 1 +,€ÞñªùXsCÁ£0ùòF[¡¿k”žµÔÁM›â–ê(A 5ôo[-Ü4W¿¨|«M;-¨Œš@nÈèç¶V~þö ;kþÙ1JNßUðˆ.mëK-f8Ô‚Ù¦¢j^êÍå6^ÆJ#f¹³2g©‘úm£³²`©™—²ÔHÛì`'Îc&ÂîõAK¯Ïðˆ‘Ž!AÙZ/ôÓjoq K‹ÉÜ3P)û³µýÞÙÚ—žG26¾ši) üB’KÍ.Ÿk†Ì×Þßì* Øî¯øæÁfzdô‚~¹š´Ò,HÝ®'î‹Q–nz’^˜sЃ©û3¶g¶¦wk’OX•Óó6äÔÌm«Ì=ÉÅLòð» +dcºÞ^örw w fÃlRNisEêŸÝ°Œ‹3"b„w¤µÖ;! lôB>,w€ßo¡ +¦«Û÷§«›½¦JCI/µ+ÉyÞ)>ß­gâLLÌöxYèÆ`Ñç…¶‚ç+½%¯×ú1qµ%±WZËÓýô<ìKK/£È+¯8F„ˆÕfÜ7k)Ú-©Â¬t2K ¢¢çÖALìö(&vWE{&é¥nUE¼Jøý¦”za¹úÅ£­©ôåÈ&`æZà¯W:ˆ ›€ÆÛB_ëLJ-·"µìâgZfñÓé:\˜¹8ÓRðÌÔùl®=ïÝþGôs¥^ùk©zÀ"ÃfÍöV„lë„l÷L“l¡ªcžŽ[“@#µuÙÍm9wÈØÃY.ÿ`VT¿=Álôÿ6Öwý44tÿ0Ö4ÙÇ!Ñ3-Ñç»ÓŸlk±û³ ÜJ:t±‡•¢¬"}è&•]nÅäŸä'ýŽŽþv¢,øó±ôW  ‡÷A÷®ž?}äwö7Ї;—áÞÿ!gåûmö£cþžcÓ~.°iV 9GÛ~+o$¼™¨F?çÁî 1ÐwÚÑe—„àÌ?‘À>I±ß±ãcŽUg¦ýÆN9MŽýzŸöõDÄÛ ˜çŽ7–gÝ®‡%ÝT  ë}´$›”Q²Ü…XîÄ…l °3f:9‰r!1 ›¿ßŠ®¸Z.þƒžœrv¼èãûc¬˜ð“¼Ô°ÓøèO'³Þ¾9þä1(øþ Pèã[ ‚ ÿcíÐÌ«KíŒ$›DÝ‘WÑ×Çù0s7!d +Èå™ÖªìÉ*nè u·¾Ø.»6BÀø÷£ w{E׊3/‡}<îëèÞÅó °GwÓRÂÿ¢Þ×ÕÁCÞ yf©˜]3nU‘Á¦öŠ@UuÞ³ ©Ô£ñ–†èR䦜 ½7ɇ¿Ðó5lØë¦²øsôÔï'‘QÁ§b^<9Žûü!&è4.üÓo³µÈ8·šŠvNÒQ.#—¾>‹ß!Ã7$° @7EZ¤,ðt3)X_Mþ8Á§¼cV<ïÆfÞäE\. }{ªøû—ãŸøž\¹úöèöqJÂ÷+혤GNNðr<Ç­¥•»&Ù(Ï[jú¦„ïÒ²^#‡àÐ’sf;J4üÂÛSU¨wöSe^Ò™‚o•}Tê¯eNÍÿí¤¬ÀnÐ×ä=\í+ÿâ5QQÿ®q*÷âe#oq”•mîÆ‡*«¡OFØOh°5%9Q1‘'Þ¾:ö 8Æ &¾øÿôÊ%Ði`-/ñøÊ =‰Mþ~v¦³ü»M‰˜ç•÷W¢5S —yðÂ?ÉùàSèô¼“à˜¤A/^»vþ"è20·÷._=¹uùòÓIljÖ…zô¾Rˆžo‡¿wj)¹<Æ-™•ª»jr†j¸AUà2ãŽÃ¢UÄFKÿzu÷è °}÷úðø>°n¿sróæå±È€ç'Iß.µ£RüÆX…ÏúIñÆNÜu5ö•¶†úAÛÀ îd”ßiÀÁ¯W¡qW‘yy|} +~þôñÑÐýËW@W€ó|`æ³kW@~—.ÎþöÈïÌЗ{O@ßþj,Ï}j¬E….÷Râ–û˜Iæ^A®¤Šú±‹÷«„dÿ!*/:#BTœÅdfœ +ý +ôèÆMÐ Î^߸ +úòà1èñU?ÐÍó—@w€õò»rÀŽ ÈW/@Ô¬ØS +>ì‘UÉ(´ªi‹ȯsíE/m +Rú²”?ÙÈ®a¼¯Bcn%ÄœyõôáÁP|À+Ћ[·€9þtî·ß@®ø.Ÿ½zzÝøñxÌë7'+ ®Í·aÂwä”Üõläê6t® ýÉÜJü2ÀDÝï¢cî +ËÁç ÂÃŽ%úJ E¿z záw töä)ÐÍ?ÿæã:èíƒç KgÏxqþüɱ¬oïϰ²œ*ZÙž™ÇðÌòXnçÔ1ÊׯñÊZÈ#EîM¼ô*øû·“io߃’^¹|tÈåË¿Ÿòð0ï×@—ÿ: ºŒûÙÍ; »Wo‚žûÝå} ý ›}e²–ðy©“n‘6 ìêjñ|7)zº‹nè$„´’KoÂ’ÂO†¾|zyëèݽ ?`~/ÿñ@€\<ÿÇŸÿÝÿ` n?=¿uTr¼ +œx¢ÿçz?*æç¿Êm¢£v |òš¼’¸¥­©^’ Ã<äC~Iîix|ô‰Ø€Çb^¾æ&pç.è¯S¿n9 ÷&èéí[ ÀZ&½ýtŒœ•~A Ëx2ÓQñUßågd¥ŒT“FÅôw£Õ‚°n"ëyšt«ƒÀz"†Ñî!S çŠ#rÿB&—\$ç–_ìgÔÅÊ«{*¦»ÛÉëc ŒMy%Þx>ÇTµØ6Y#ZRV¢Uýœä±6zð@åU“þZ ƒûUCÑ·0œçÔ\œ_iléEpLî\zæylRÂyZJŠ_¨­e¤/àã—º!¯×1áVM%}S%¦-UãgGHúZ¨ž|¡–w[R#Žk×D°á¤Gø\È•Š„œ?Àa™§>ú€ž\¿ÄòuÐK7A‰_O‘R nµ"°ïôõ‚ô¹Njô¦”]h• Ñ–q!rf€S „§\æ‚ãþ”rÐ/¤úû66Ó¿ŠH{@)F]Kúòýã ûvú]ðíA(äÕûãá…¥'æŸf——ÞbÃ_͵¿94•ë8ìT²^ jß$ªÙ5ˆm5G7TS:P×/ÀcïefþùíÝ»aþ ð·ßAþ÷üAÿºŠyûí<»ü‚yÞÍ¢ãÑ¿.ôÖÐlŠúÚõ1Ø·Y'¸PÛ·buTX>=X‡Ñ´óãGªÈuTä]LqÙ•¼¨¤S)_£Ž}ýÈñ»@ì^]øãèéPjhü TJÉv7nq¨ŠaS1*l +J¶ÛÈg{çëÇöÄ­{s¢Æu ®ë'Dª{±],ÒÃ&þ>\|…˜•}•‘q’’záûû ß?>}Š|÷r<ákä©ðŸÓÒþ AKý&êH¡Ë\ض¬š¾-¯$XìÒõQF¶¡ñÊÜM[¯&*Ú¸‰ÕØ’¨´˜?â?¿;ú;<#á\Zxð¯Þ½}ä2;>÷Jb\âù̸„S”‚Ò‹|8òq÷N[ø çe]›ë„|=˜ÖíÏsø€>ÌÝÑòñV}µhEUE“·Ò¿UàWÑ9Ù¿G¾yw,<à5(÷{(?*ádôç S¯Þ%}}w™›òG¦üÁ‡6Ó/„oɹ·Ž…rÙ‚MuSÓ `ÖÆë¨Kcµ¸¹Z”¡÷n„{ÚI(y°ØÖ[è`¯7’·'ª©v•˜iUÐ[2N‰cRÌq˜ZÕvsUƒu’ƒÜT°!·¢ä–T\Øüxfv°¦ogFLupÆ:„K#½¢åÑNîÜ@|±¯®|£ëUr`^ ¿œúJÆŽŠV°-c•;ÇëªœŠ®Q«¦®vM!Àl¨ÄŒu¹¿ØÍL\îæÌ÷Ö•j»‹uC}|UOIRט8*¬ í¤Ñü«!à ÍĽ‰JQÚÊPÞ¡j¨ÚU5Ôíª«ùîIÖcäàö¦ÌÝÉJÖÒ=u¦ƒ¹2Ä.ÜÁæDEêöêTUgc¾²­)SZ×#¯­r>P°4Mµ²Æºä'°W,Š˜è¯‡¬(«(6iS²J6¥´ô¥NØ[›Ÿþ÷|ÄcàGPáK2\¢nˆÚ_Ï +j¬ŒniÉ–´6g×Ñ~m¬º >Q{L‹ÿFÛÌ ï¯-]âçm+p©v­Ìe®9Œ5ö©úö©Æ^ÏtMûà÷¦¨%– Rʲ¥h®x©h£„ 40bPYig˜åå·ºÄ ñ-<îçjá—.÷EWüz¼‰²(iØ&{ÔžÙºÞ]³¸Ö3ß Ù[¨Ü5‹ê|÷&ì&lSMË[!ÅêþS4s#ÕœïÓýUų’®ª©ê2m9Ì0ÀLo¢÷:¸‹~®êlGŒ·VÆéx™‹•h×”€õϬ@øÏ WäÕQ루ˆå!|øú'Ï"“5¥ÌI™Ùæ.\Ðê )fU +pWUÖRĹQVâ•é^V–ax¤y¢«,kÆj{ÅE ’FšEÙ ÚÑð kƒˆh(öòúøýþ ‡´ÒlÞ5Ñ ;jJžCÏ'¯*¹ÐYY%TÙS™>Þ*Œh®I”·°¾«úê*Ô£lýX#vVBMœ&FÍ àCçúŸœzÕ"ç¡æ»à¶F!¿6j¤nc›Âcªëtèª+-êJò6  6ÇqŠÚÒ·u¥ßÎ{äôî$—¼%%¤Xe˜è­1t¤]䪒’½;ÉBxÌâêm »Â¥ònªUæ5µHLuíÞYqEËFn)É™KCˆà5 &zEŠÍ´Bñ‘©Ràž¬âïªëØe–x ļ½)ré–—¼­f”îNÖ7íŒ×ð]*Á¢æ¡Ö&x(‹¼Šéš1íRRºm³Þ‡_ê'ÇlH›¸ëÀ¶Àó–ÕÃæ‰ÊŠy5gNN/˹0ÑW·º~È;#nÜÑá +öf*[÷ç[޹ꛆVh.–wÐ]`m'™Pç$·1FÉX솾ÛQ1 »Sµ­K}èïæ–‚'K°ã&jYIGniùôMˆÙËÏx<7ŒGœ4ê7y5ˆ8¼<Ô.+ÿ¶> uÈ)Ù^-áQ³¡‡3|¶ÛÈÂmŽ”}Üèϵ؞zÛX—öXÉ ¿±Ü™ä™Õš‡ytY]iÈ–Š÷.4©÷"ñ®žZKùñ”•1·v°¬+¢nûLM×DcA°UA€újML „{FÀ™’U 4ÔØ’ór¶§ð•s–Ëq.ÔlãpLqžiÏed!=&Jñî$>Ó©Ä%mC>® –¾ù¹"lÞÓ7õ¹Tý.ukS×Ôµ;É(s*H© !v¶©ìÕ¶Ÿ1ÕYúÁÐTæ¿5BŒ³ãâ\“”B—–˜ãP`=:z¹[KÉÝânºEµoj’ørà`–϶N’ ¶ø„-.~[IÊQ7eûOðc^ÿ˜­jß35ôº4bÆŽŒh)}g•T|ö½×n×°á³#´âanÞ»Í!t¦×XÛîÖ5vº´ Ív55ßžõd­°9ÿ²)%g(ªQqºZtÖŽ¼’ +äãÀÌ£úzZíOárlcÅÁ³íÑ7]ZØk¬nÚžP ð  éÖUr=ºêÚ=m%cWM/[FÆnÊ aûÓÇ âû8f[Á‚ì(hE½Ì­æÐÈÂÚ5@">[‡iY{ú†N÷±!)ÿ¼:ò1å@/t)¡q?ÌTôYa%°r§V,8œk’ï/ÔKm¦šv»±®}G_]»¥¢–Ø”¤L»†Uîžâög˜èÿÝuûjÜîMÑ^üc¿o"ÚUødŽÞŸå2jz…Û×lEPÿ¿‹\Þ¿óLÒ®†”½Øû`n„n˘Ð=cUÇîLUÛ¦–ZèšÔî-׎ý\wýÏ +WücžÍs›(K’¼·_ì5‹ö§Åõ{æJñábu[œ=`= ˜KMÌX*XïÏ}ºg ÁWG(àÅ.DÈÎ1}ÏÈ@»¹ÜýUq÷Á¢¨É¦§ËSž/ £+ܳ5]ëÔû,âhŠTvdöÕlf \ +dÂZovÐæ@Ñ×==¥Ô&§›sïè«’//vä<ÞÕbRJdú¡‰ŠÝŸ©jB¥ +¢ýl*,âh¹fÔ¡ fì(±Ik2tÒì Õ®FF9Ô¨X«¬"Ô"ÙVâÓWeÔÌÙÜw›œOߟ©ðÕißV°a;ã¤4›¼Ò÷lk4ï•cŸah-~3ß óNÖ¶ø4 [+ ÚUŒ"»†šoG…;TØ$_Ú5à;E}ás ·3ö§xüƒ¹ÊúŸ‹Î_pd&š(åî²×Nõc¶nÀ®e£7ÇÙŽX°£smj6ˆÏú£iÓÇ£;*L‚¯?¯g·]MHÛÕã³½zJÙ‘©ºùÀŒ[‹N^(~oj,ò·ŽââM,œ¯Ì‘T¸?E)õÝç³ÊˆÓ\ê¯y¾Ð"‡F[Uè´ýå  §äÎIJùæXÁ[ëDÙ÷=3±ø`žL8\â- +:xmŒœ±?SÙèгPÀ¹|Ï]xä==:tª×€N÷¹ƒ´¤2Vî+‡ï¹>Õ¦€'Ø4Øôm 6Å>‰Môš(eû³• @ÜõZ5|Ê®žO;šæP¦)6s©3íÎ ñõi­0êáR¾;É#n J_¯*Î;J³H¡ß–ûá_g{1¡kcȰ ),|[IÌóN³ n=¹Èm¬¬Þ55J¼ U]Þ%aÃá"ð9+¬qè9øÅ~L¨KCÎ÷õDÝÃÇî,^ÀôÙDï´¨ýÇrõØÏU~Ý®ZêÒQK÷ç[L®éú¾M¶­¢þ»L£üï2…ð¿ËtÚÿ­šÿo…WgU2`5èð=ðˆ;¿´ÂꟀ~vW|ÝÌ{ºÚœá7W›uk­­ø•e5 Ì~ÌÏúxqw„šw¨®¤üÔsñG€§È»¢8È:’ñø3 êÃ[§ž†øµÄ­ò˜ip››dUà:\ÊžŸíVas6‡Ñ‘[²Í^FŽc”œè–QÒì#؈­>lˆC +ü,ÁÆXúK^¯tfݵJ _ +jÎZ?!×%e”nIIi+#舕~|ÄΧpw‚]¶«e"l +j®/÷M?]³oä^‘”n'$­K1Ö *Ë"ñž‰Ç4Í¡‹ö¦ªª ”’#=:qOS¼-ƒ~Ý” ¾mŽÀƒ·•4°¹bW iž©êZ·ž sxíòõïR`“çúQÁµÈð›Ë}¨‚ÃéêÖ=sUË@Êwh ÿGÙðpÀ-n`–¤¬2!$ì²Z\¾?Sß¿kªªÛ´“Ã×SE†³ŽÃ#\&àó(iëƒèP›”šhªí<¼ž× 滵´SŽK[”ô"«„˜8@H¼¸ÚQþ?K5CÿnЇ†qZàºÌåXðlgqàÞ4»» nÞP1! )í–Äíÿ.‹Ûÿ³*lùŸ5~Ëž“»:Rþ~®·"ps”»1Š Û›d#˜ÄUÞI}OÇA»4ÀúÉàß§jÓnŽ".®s¬ÁŒq³iÄÉœZRé9ûï%žèhžËvêÙè F±kªºe¶¶g{‚˜;ßžÿx©½àÑžði3TÔ/¥b{úmº:麜wyµ·<þpšŠv©a–Qh€…I.½€áÔ )ž¶`ošLôõ'ù€»^ ÿöL|þy +b×ÄÄÙ'©î0 3›øc‘Ëù9ÇaìéIeÄÐkæ.XöÏÅFÅÏyvÓàë2ðgç<Ñe@¦Nã‹ÿYªlwOqè€ayfå.}•xw’ óèûzZÙÎ4xGÍÚËß/4£"~NŠ^%³Ô##¥ïJpñëíÅÏ@,:¥äô•~ø·6BÄ9nRÀ%'À·ö ZáÆüËÊ@¡ÿâ@ÿl€Ã}Eïþ3-à¯Éñýüø;ËÄ¿—«ûgy\ oK\@ެ ¿—2¿_ð=¤oBã|ñ³õ!ãìä¸ù†²g35¹wÌUÙ·M¢ôëÓ¢äK¶Ò÷v)9SÛ + Ë÷ÿ«ÿÔ.£—î(9Ø]- îÑRÁ;ã°ˆ¥žÌgViYðÞ“äTQàv1wu”§›ä™DÆîë±»hÄê`ÁÇ•î’n5›°khèÙÖ0Ý‚M:œ$dï©ÉÅN5.Ã¥%¤m˱1›£˜°©Æ‚«Ã˜D}+$a±«ä³[M+´JPß·ú!o¶½ç $ê¨eûšO_sÍÖOÀ+øêžl£¢~·xïµ bª¹ˆ5)gUÐ1›ä; k÷§9d—–R´£Àg¹ÔÔ2Ç%Ë.Å%|»«¤C|Ï„îM‰{æÚ¶½Q•MAL¶ÊIk=°:Vü÷(:õÇTe•À$—ŽVnW0 €—ñh8è}¹­@§Z䘌5|hÕü¯¯fùç—å5SÊvuЛ¼üËæhù{«úÕ&E„ØeØ8×)kg ëPRr<À¹9Ô¤|‹·Ù w8äy ¹€ýéÜ|76ëçbô`VÔ´«£Ãíjl²UNJð è·& þh›R|Ò†„˜¾%¥Z€±› Þš«ržZ:`ŸVš _[‡±ö RÎR/,È®"þXÔ-±˜{f<Ø¥C'ÙTE_­ŠüÏG³¸¢¿—˜ä-%o¦«ôƒ¯„{¦²Æhû£EqëÏQ«wšÙÕÁbVû‹_O·å=sO±9{F¡èpšC?˜fPzìh‘Éþ¹HÅ>¸xkö}¡£ä•e‚˜>?HÌ0¶p2íŠÖf·¶¶Òkà“÷5Ô§†V¼-%Ä9¥4_­´mé!¦îËEkm%/,½%‹í/TÂØË~ôÙéªì×ë£Ä´©–ò·‹-ÐÀ- l‘± Ûã˜È·¿§Ä•[2|¶¼*õÉj"åàC'«;*.šg¥¥ûÏ6•¼×5–°sÞ_³tb“-=ä?ÿÖ$'í¢†•zÉ$Ê8,û¶CЉ´ŒP3û¸y/ÂÞÜ8ÎIùtsWÁÅ[4èºk‘B¾.t§=˜n‰÷Û/]‚|׊Sí*qźǣG&:ÆÁ-™þË17õâoçVÚrŸyä´bۺЋúâ{Žù‡žƒ=Ô 9gkº9ˆüÄJìzä¼*ן˜ø× !ìÆàÁׇ°‘+íà¹/íÃ%›ý9/WzSý „ +–Ü‘¢â÷€¸w*Éà­1DìÞ,¾ô`‘ŠõÜåÔÓ‘ÆŽÒÀåAT¼×ÄÁþ¢ ä. C·Ç°Ñ¶ø×õ¾²¯aÊcsmÖ—œžï4‹ÇXY³7-±^¸>ˆúºØ~8W•rÕ5 ³”Gl:œæ~¶ªÒ©¢Ã—»J¿Y‡*–º ýçºòŸ9T¾¾RÕÝG3âæ}_]ª¹ÊÚÃY&Á×ÿw{º-C†9ä°ï{ZL‚àÑíáòöQD°cœQpðßÞõôŠ]5.ms¼Ò +›éF~í ¦½Z¡ãÝæÚv»Ž]Æ¿ x…]v8-ª;˜©í^ÃÆ­R]:‘È9US¿&cèë!_fêË>ÙGð±kÝ%o·%Ð(Ob—û+>ÚÆ±)ûÓ4‚w[°gD¥ºu¾šc¾Ç„ò_‹d¤k›è¯oÆ6ð‹-):Íi`¡ZfÅž‰Ë8Z¬¬ßÑ`]ZTÒÎ:Á©&æî™yüåaT„[ÇÀ-´è—ªzöf„ :iKЉZD†¯õ#ÂjJÁLô“¹œäÒuŒ»&ëj]Z.Ê­¦æ{ l¬GKÊtÈQÑË]y/ô¸«+]eo›KßX{`Á[]Ð÷›@>4ø[úK?ÚÕø´žšŒðô¿¢îM×´;5|¼]ņº~ÚA„­öC>m •Ø×ó9;!À Ìý)æÇØ`íŸ[$°0—’XìRœ!§æ.u–Î×øï«©X_O³åþœ§“‚è³vü¹ÅÆÜgö1XÜÀ÷‡Z +xK‚Ž46‚nö#¿Ú%„ÄíbÂæ)n­´ÞühõݯkÅ|š®A}Ñóý§«K?lŽñ` +aÞ9â?æ¢s òig´ìóöHIð)ºŸ›òŸôü¬œ—vdâñvd%_MEá^SqÄlwҳ閿ÅÎÜGÛ2BæÆ(.q¹¿žÇtª[¼À\­tùÒ£ÏV½=®&ÝuLòëQÛq/ãÐÄçüœðWOƒìIÅFr©WKÌô>Ë>Töq¹.ýÖf{æ½}:Á.ã@–{0a[Cèû8.Î&Å&lâ"×{Ÿ§ª²Ÿ.¶•}³)™0ž; ÂÁ4±§cÁ§L‡–ؤC§…Uî)±hCÎ+ßÑ×5ص•Ì z®KNH^é¿^jÏõwÊàa»rdøÖPá[½8êÆLsÒ½34üÏq›G‡É²Ë¡ß]t¢EŠ> Ù.À7Ú°˜õaÄw€·R­rŸŸâs=SLôþ è$ˆK…I´M b–ú!ö¦8샹Ö)÷¬¸vo¾²qo®²Õm¸ÔÈ@[ÇQ1€nHÜV £¶U„L×”€c¼ñ®Q(ØŸ5¸4<Š}gA}7×å=ñ½ë2̉¿NL{þ›©eÆ'˜«Óü[²Ÿm ”}’ ã¯M.L×fÝ>R30Ó•µÛrbŠ àWnÈàÛã˜d_NüœãñIqSu¥O·¥¤¼ÃY.}CBˆ]ëXé( ˜«Íy¼ÞUòfy:ÈͼMKzq£à 71‘ó͹w§ª³n™ëòN‰3o«2ý–Ú +_þ·|e½Ð…rPÀ´g‚˜gƒ†-vä<D;=A޼í–ãKÝSBζŒ–íUÓ!G.ù Y€\*Ü|œoJº5Hürz¾£ÜÜì£bö¢ªµ¾¬§fQô…™ª„Ë–QpàYÕ3Ååô°Rß5ƒ®þߦ°Ãk$–m—¼]¨J¿>I‰9£¦DüµÚ˜yÿHEÊn‡ÅåÝ;!,~è¾Û@‡­v¿2ã.5—¾úSÁ ¹á¢¢ÜæÆá…aZΖ —ù÷¬¨æ§‰Ïþ{šZá‡|Û+ùïu"@O9RÉÜš`ÚdÔt†QºÚQúÖ(L¾9ÉŠ»0‚ú|jþîä#ìÆ–¤,å?›ü–avÌ“ùÎüo‡ÓLÂ×GÓ\Þ¡ØÏxùw5'ìÜ\Kæó=#±kààlJ:x]JLpN2a^#›ä«¹þï ¡ðÐû“è4—•åÔ!‡ËUžy~ݶž\øæòm@_[嘔].ïpŽEtèYp›ŠÞÕ‹*W‡YÈ£çë‡çÕpö1fžu„»Ø^ò\'Ì¿¿=B[†ÐQS•É7gª“oûj!(xÑ·–áÂÃL<Ζ‚ ]$ÇúžýöêØ¨£i*ì×ýk‘F>œÅäoŒ¿±Œ¢£<:fI‚H37ûúœóQ™ãÕð°.È…»´˜³Ę?6¤¤ÔNæ#5?ç©s„Y´3Bˆ[h*z¶Ú^üÊ.…NÕfÜÓ¯.¶•¼ýa¬¬²J‘‘3-yOç;‹çÚŠ—šK?ìzkŸ½%ÅÇo S3þž©nÿw^ÜâÖÑËfÚ +-´eß[lμ è¥çöqrÆæ0!ÞX]òp£ îV2˶†‘!«=ðOJøA]IÄŸüœÏö c¯YûÉÉ#|ðKbêÛÓZq~Èá$­ÔÜê×ys‚w$E¿ýÓÖ—ûÚ)%äüÍåÔòw$èhë*ÐWQ–~@Çt•˜EEþc¤ÄëÜä×'‡°Ïþ³Àªt«‰Yë½Å/·K>Ú¥è”=2õ?L¶wÐ4#¨¨¥Tú? õcz&É:˜÷f­'ù¶e¨àÕæPá›C3›éÒñ©V)-Ó¥âÀœ +FQ4êAúÇc]á§¥äˆó+­Ù¯µdðßó|Ñy‹‘ñè¸J˜ôs–Ntë°¹«ý%ï÷¦°™;rX¬©!з¤²¿ý´­â“'*–GˆI®™†1ïRóÔßKž{¼ªª<á&äÛóß;Ë£X'Ú•”"ëhñ[8ñv]É»s¼4ÿSJZ ÿˆ9nlª+ÿ²ÒVòÞ£¡—Ù¸ÿ,ñD¿fØ÷$)שÆ%z&ÉùN-—´9Љw)h¥G€—ôÕvµË šó¶”†&D=>&LyzbVœüò3c•`bÜ*b–w’V|hàâÝ:|¦SOÙ’šk¢<øÐÌaýš«érkhk=ÙþEyô¡‘ŽŽþ§Â1AÎ_ë…}±S}ïÔTŒÐ2ý{jª/~»ÚQðÔ9Vä’–GîŒB¢W; >¨Ø!çvåÙ¾ëÂë}…ë½ÐPà$_ß¡ý) +äßÅÿöÍ©wªi円‚ÛJ&Ö1Ó6å™oÑ{yuÉà@<çl—}s«ÿo‹Æø5/tká GKœêý•ZÙáw4 hÑi:Ðqi»“Ä쀛œ +b±*ûÙ¦Šœ7Ù ´JÉ%Ç:Š^nɸ½Õ“ýÈ:~³Ø~×6ŒŽsO±Ñk€ÇÙ®øäGÇó”íÔÒŠï1{fñ¿×®Mt¤à¸]#»k¸ð‡ÿ,VõyÞ|O^ì¯Ú›¤~ÌÖtšEâ@ÞxÔäœ &r³ùe¥ 2݆ ’ ³îÏuAÂ7$¤¤1zÒ¹œï}ÿŒ‹M¨ï›ÔÜQ2Ø£¦ùúĬ £B¶¼tNñé%¥`[šób¡=úêTmø…qæ—?ÜJ|æ¾™ð;>}©úéàM/€e{Z.ú@K·IJÞl ”ØÇß,£øÈq^¾ß„0÷Áú½tCÁGèëËžõc"þl* +:Q_r‚žôü˜š›pwÀbÉÇ+Ñ/ϯuã]rf±WILwŽ•ϵ¤>à|¿5L 9çÑC“ÿwµ²Õ׿£Ƥ¬÷”¼Þè/{»7‰Ïù1Ïf,pØ>ïlWaSÍó虀ނ~Xë­x¿Ú û¾3ŽKs(‰ë|Œ¾¶ø©w~g¿o¢Tè“ïik#/šZ²žö"ïô Âo\ xL‚© ‘ˆ þçJ{aÐVÙ¼¼-+ ±Œå¿q* 0EƒùzšÛŒbwÆI¹{:!Ã2†ŠXì?™k.|8ÎH»V™t¦­"䆵½ØWÄ*º¶%%ïéèðÕ¾ÒOsíà'3my÷ç;³î8%Íò¸{F!wSFÏÙÕ2 G³ÂÚ–„u^¥lº>ûÑ$'ãÚlCþÃm).~GÁ.5·"ß»µ|°&ô•ö|ÿ&pÀ]w§å¤Ðßuìø Î1xÜÿmðš-x™¨ðÕYK?.ó×tMÛ¯i6õ§›wdB¤YFsÞN7ÇùÍ´Ä]ûµPÙ¸;Ó4¶­ ­2jîqÛ‘‘Mùifáö'©ÅnEEäF_fÀöXÑ׿— vƒ¸Ö*碽ӕUólªGKÌqÞÜ: îCG\¥¿úcG/`¬KIÉÎIj©SÃð½§²ÄÒfOé›Îœ‡méœc¨ß=]SÑãõ!ZöŽ‚ƒÜÃÆnac6%¨P‹ j×bvML¤ÇXßå57I½ÓõýGsuý?æ•¿æùàS°ŒÓ; hÉIb¦MC/vè*Ù£XŸ?ù2×y1ßPúÄ L¿±ÔZøÑ2Œˆ›ë¬x3ÛBúºÑ/.[ë•­qÀk#¤ø @® @¿,äxd°àÀµqzþŽ‚YìÖˆØN-¾5ŽOp¨1ñÀåže0ûÅá 2eψÏYF…mHðq&kßÄÆÍrè3,²ðË65:i®+ï™]ÞÑP +ìRv¹WÓ6|`h›Îµ2P¸ÜŸóÐÔp£öþÒj,daÕŠŠ¸°ÜRüæ`ŠKÞÓsÉ»“L)›‘<ßSúv²2çÞ¿s¾œ¡E p«O9ô_Óµ]?Í üE‚‰^í+ ´+|Ï~ H¦fÔ7‹Œœíü÷Þ$³Â+gCÝR&Ä6ˆK nõ“bn¹ÔlìJ?6Y)L»i›À$xˆÞŸã0Ž9¬#ÿ<ÆJÞÆ5Ï©p¶ÇY`¯žZlW"ãWzŠ7{a_×{+ÞùjwYú QRfÒõdÊÊ >_ÂÊ|®dgÞ³ôÃ"÷&Ðñjz‰GÁ€¯öÇ.t¤½[lK½{h¢“öM|ÞZ?$xµ/ûñÚ@ÆÓÙ¦Œ'[Ã%Áÿ, @>5îM³ÙýÜÌwmÄÔ?êFg*köuŒ +Û0üË|]Ö= Öo½¿àË¿+üÆ™X˜\ uNÕv®ÔJJZÁJ/â àSß­ôcâ<::Â=Ëeîù꽩e[l´ee#§.ùê,5dú-4¥ÝUsÃ.Í6¤Ý[낽uɈ¹.x”R”|s­²«&æý˜!–ý˜#Aöçø½)ÏkŠö§+ÅfqíÏùúQ_¼Ÿs|Áþ å0 “\&B®Í@Ê1ô¡¿w“RnmSs¶ÈIJzúµ†‚Àãu9¯N(É·:‹^ÚÆÈ)¦>rB39óA7%òÆÚ"tWÅÃ{´<¢Ç@ÌÛ7áó·Õ€/èF‡lM°á6eµ`¶¿8DŒ·L³vµ@^˜I/!ÿÌóøGÓ"10FÚÞ”ˆ¿?]Ûy0-®öšÙD——i/ ¶Ž—†Ùe”§œ[¾>BMQpËîwc²µCcov–Gži…†_¬/ 9?Dˆ¹6#κë”Ð2Ç«À˜˜Ë+½¤\‡¼’°1ˆ‹Þ…|r© _m2ð+Ï*Õm Â¬ +ê`¡º×e¢UìI…n:ÝeÀæ9ôLÂŽ–Žñ˜¹ìM9.asÈw”P4݆ʲOpËíã¾ñ`“\ã¸$ë2d©,å?_íEF­á£»*mRlÜj?2l®+?`u¤øó¶ä#qªú]Y—÷à|þ¯åªÞ#_½H©Èâ«-)EDX¤ðX›’\0׃âô±ÇÈåîOóyv>}®-둊“xYÎH¹Ðÿ|nº)í…CC… ³³_´¡"¯ÚÍi` €ñCÿû¬È ³>FͰ(Øå1äÙJßÿç轿ÒÌÖ¸ï9s¦žÉÔd&Éd2)“Þ«ij[ì½w¤÷ÞA±w°¢"]ª4iŠJ°k’™3çœg=ïòÞúÁ6Ôø¤‘{!åÊÉOìÃÕ/ÿöà;âšúTŸ¤ø–YTv‰Yq÷ Nů‚Ó5IÿÛdõléqõ~9, Ðw€Ý²éºXœ¿}Tê¿WQ uiIòª¤"iuº-üÈÁbî,³ð»ËLì¡™Izo`ÿë"cÿç#Àß»°í«“­Ï6¦°Ù@l¥í˜E;f{×Âï:°òø;!¦ÀÖŒDØ3¢Êâ*hnH +~šƒ½8û¾¥«þ¢K”¨5Ws™Sxam êFh¢íñ¦‘¦à\G=ÿru”üÁFÃ|tâÁ‡6d«sâ:LÅ. 3vœ±kb >:Dãïíæ;›v”ø.¾yà¾Òlż'×]sA“ÌêÛSíÙßk©•IzFù}—`YiËÓ5ªÐøR?&ûÔþù·15¶æØ,äïè¸ø¨&±Ï²=%¬@ånÌÁÓ"*lÉê,&ÏÐÛzÇ¿HjÙ³ðEûfBóöRkJTÝ”UBrñ¢Ž-Lü…KÛ·rY»föØÎÛÙÜDßú}ÀøsøâM &scõZÅ«»Zõêò§97O}2…È»àÃóVz›ï¸n(¨9¿i8%×ç8…¿às/ÚG0ù.zÖ¦;’7¤Ô ië“m]û»^üïMV÷P|è Æ-äÄ=aÂ{7óÁÃ;r‰¦÷‚ž] ®Dô„:`}“dÌÂótö/Gz>õ Ñ»]‡+ß×k“ð䕪ßýe¿­M€^…äÆyVåE­°úÆŽ`]tu܈)°å‘%l©®¯õ±ª«áñž“+>ôp»£z|EH…-ÚZ"¶½w3X@~GGu4p@ÉsC^ì,ÓmIlŒhPE«í¹öÞº§«c ÔYp~HNÛ”£òçXL’ò®ù0¢#Ö„а–Ô°maâÂ:Ô¯$×Fttˆe°ý•W +¬­[^G5¤êà"mCÜölm¸õÉÚt{v@ÉÉ;aé„Ê—g½â†ç[ʦÇpÖikÖ9÷dà C_ÕËå¾ê×1%¬àßkLžW†È]êoºVQa÷N"êÈÞVՔߓRî})Å>þׯtÛ?=,žOŠÎuHÐ=‹òÑÙ¯ú¯³sì«dÜ_tÃŽšåkº•‘*ãrfóÎsìîYxïéž?¶óEáTŽ«·áò‘hÈ Ï@ùŵѪ+‰öæî~ÄÓíiA»oñÂÄ*ûUIË>3yò»òÆ×ôÒkÿ=þÊ?ƒ*ò/àò¢*tÁ®_»m$4Û8ü#g§dE0°»Ì@½w0i¦hß@CúƒüÑÉ FMlܦŠÙ”qÁk#ô£þ’°þõWRdÙ¯Ûóp`öÒÓ_yÑ"Ê9騼ä›îxék{˜iK>2Ñ`Q¶ *'Ulëh­1 <+ª‚¦‡AɺΜߗøù§³IdbØ@hÝÒÀ2·Ôà”¸’}¸Œmý“ØöŸBÛŸ‰žÌV|KMªNðó¶CÚ3uŠ¢ZÖ1})Aæÿ8É<©ãÔ_çŸÕ§Ÿrö ³7fñeîaðƒÕ±ö¤Qø»_©yçcJ\uDÉF¬ŒSóF±…'µM¯¶4|Ì@ZqM6TÝ®Ø%2?f¦€bË4ؾCظ¼|äì]Ø·w îÛ…½›Àú»Ä­÷ìC ·lƒÍ÷=TY,ùŒœYðGlžV’À_-ssN.ÑÓ~tô”^÷J@/'pÙ'œ²»€æ +‘EÎц[NqíÍD #© Ðô}«päÆH³ã`ÃKtHD-båÜÜîm3Œµuo¢Çö¾ä5lÉ>ðüÐÜ=¼½Dn‰¨Pyk3 —枪‹î XrXMlÜòŒXr÷_]-/Nïèpq=¢8 o{ãlzb¨¸PbJ|rÜ#¥6|Ixïà ·´˜Ò--¼ ¨¥o*Zr=“5£DÙžÇvMÑË­bÌë-#›ù÷jjßHJ0S뾊È>¹ˆÏ=åì­½\Àä˜zÁw]#Èìm—ÒPÛ÷–™¤C§hrÛ&è +éHõ~ Æ{§Ú“7ÙZaÑ…m%¶iÏÚ58–cóm¢†Ëà×_ˆªŸ|ªb”ž&V&}Ï»ý•£».9®BÅÔˆœ˜™œ¥ºGËî™)?kHÏO¬ÔÞÛ˜Çj…%¿- Ê/zGZŸ:7Q×¼âoüÞ†ªÙ\¬½×!Êþâô_ž®éÿ¸ØÜ=ekJ|¾îÁž’yh¡"€˜TÂól}µ¤¤š‚0õ€Ÿò›Ò®}uí¿úõ÷a㥑–[Á9XÆ(<åÛq蛓«ÃèÌÈ< ¼*ny´H/üuIXsÍ%=×u·?Y‘+· ü°_Q" ã:òФ|Xas8ÌžÝ6bšbztYÜ@j;r‹f÷Vø=q ‡º: ÍöÍÖ?‰kÀ¯·uˆüå!Xz?, ’êŸfT»úÚîKi? 5?ÿIŽ}{ÎÌÊ8˜lJ:0“šÁª$fåãïCÓ´ÖcW綉;òüŽW³³Œ®9Z¥’bv|³GŽx7N.¼ÔÛžrkæÀÙ§<l9ÑÏÛ'®¿œƒ$Ç´˜€à*aí½DúI÷xK2À6[@®‰ÈqeAàÒQ[\ÈÔM)¶j°{÷¡Ù;/Þ6ò;f}ÇBCî­p;ãË@n32:¶ hÌ<8·¹È"ø¤„Џ‰Eö«ÉuKBн1XÁ™ Ä»ß<µh8,÷Õ¤®Ïv”Jo )!%‡62âÐ +èî*åÀI"í‘¡¹DÅ:ý{VÁhPMF%îcFMtxPK¬ñk©­€9ví‚. ÷¯ËÉu¾9Bås`i×1lÞw šÿ_m»@´c¦µ{½¸¦¤Ö*…M7ÌÀg8]–qhÕŽ– Ïc2ƒSÐ$ßxã ï@õ+óG-§ôü(³á·”§>á×¾ú-4ÈÚ˜¾²÷4]ó 7ßX—4ÜñÏÔÜŒÉ09€>€{eØÚaÜ›3q5¦)nšéFfBKÝ;f.óØÁïÚ·q®)d†w +äodIT« Éàé«CÇ*ZõÕbÙ`®®£JR¿Åç=ûÎÚÙ’µ5Èv”ýîW\4tfŸž€?:1‹}uZJH;ïk|a=îgüè꥖Ť"Ü®_sh†ìÚ³6¥B²†¤}¶åØBÇF5ØòC¡á¿RÇ€Çÿ;h@WÊ»ÊoÏÐsn}ð +%a-›R² q-‹S j·¤´Ð(7ª@THé%ưÙ7W§ÛK}sèb×:Ù#†§øf™9¡dMOÔc+i°U +QóÃyvåÓ¨^ص½,èJìmâd]DGª‰þ¶çâðã>y ™nèx1ð˜^¥f\û{wCÚ} /¾Y­¹²­gîé;*‡ÑïN¿¹yæŸ ‡+LòC (‘Å~ Îuσ ovÔŽ+‡íœ€æË©…§ì#ÐQŸ¿ïâîyØÂX‚“ @4ÐÚ³„œZSÔ€ƒn( %+¬î#ç é¯UÁh¢wUÄLjÝuQ±D°%\©e¤õ2ÿá¿vô|Jd‘R•¨ß˜€>[h¹¾Ò]ûûr7øú¥ætÓ›kŸMã +îæàZ^ѯFþOžáÆkë ·cò–WGFZûŽ‘‹7N@ßµåœÿÒÓÛ\¸cš°ÅL£êGÏ䱋Í;t0H îð-’K%¼æÌê”S+}m{ZRÝÖ,*#0‰Ïr ŸXEí·TäÆ_uôækÁiB¹£·õ¥³ôW¿üÂ+i|à«}”³FNöÏ·¿qO7ß×ðj®¬ôRKõÄ[ÿ$øÕ‘ ÚÖ’Z·dÄ–ËdÄ+¿¥îÈ.¶&íë1•;jdñ¿môÿ¼üþV ¾ëqÕëMÏBóíyë ¨¼nø›_¥”ò««cèTÏ`óM¯ð´’œu0‹øuϾŸ†eý¾ÒÝ|_Œ-¼PöàÜ'«CÉ{ꄆ¥æ oÜ#­÷7gjo‡5 õc*r[Ò–¯bãæ,,ýȆ‡;°°#¾õƒ‹ØþÞE€Æô°œˆªíÍG“u`æñŽíà Ù7“¡ûLexôÊ9XqUËÊ>³&¾vM¢K'(×te· ˆ¢bÑí|ñe@?eíiP@ãWx'àÉë È´c'ì bŽøöC;¶qÏkŽ9¨èpb_ø +•úq•!ðLAS<˜ìÿ—“N÷O5=SÞþ²Ì+¼ìƒïið•{zbƒŠ[sÙ>€zU’ª£*d‘k¬ñ¡­¯îÕÉÆÛøeXK¨ÛÒQ0q3‡¶¾H¬Ùôø2‡Ñ>b¤B=tà5PËuýÒ¸*|—¹2ÐþDŠÊú~üâdOËã_ùõ÷Ï÷¶¦~Û‹,KqJ11#¡5 @—‡—h¨‘Ú³Z¢‰z¼Z\mT‹+sN´>3õÖ^±w¼ÝZæð,*`À4Çì,FÐ@t”– ‰ËØt_Xۖ喝×:\8ÄŸn–ðïMÎÀ®ƒŒ:vq=¬pÐÂsíYº¾†Ü"¡ ¨åáEFýæ .ËÙ º±€/üaœñõp[ê ðŒŸ¶¤äúµiLþ"9÷»àD{ê¶W"ßm'Î *`9› ˜ëöÍ$¾âjd–‚ßw èâ6kÈë‡+äŽ] ‹3pˆA/ SE ÙgWûÐ*J³w þõ1ècg膞Rþ““[q&<»:ƒËe4½þ©œvn[G'êJD5°t¸æÖ,%û >ëGçhýM¿–:ÁjH)}y턌˜qýïu‘bß,àïñûÀˆ®vŽ7>Ðuü²>UwGOmìxóÃrguö_áØ@³ðÕ{:LI\‰*ðOC_­ ‚nk»Z¯÷#ŠÎNc +ŽÍ3ÚÖÇ€yéïxìB¾ôâ2—8õˆš’O*|™éÈZi–ý—Ã2w–p ;Lñ‘_“èŒï­¥¿úº¹»úfL‘¸†! +)QEžé¦‡»‰ë]VdÉ‘Ýø?…’è¯×0á‡ú‰m¾¥&×&ö}xúË/Z„…çÌü‚ó;ZL­¦¿îUKæµÏùÕO¿Ý7Óžx²«|{ut°é‡‰ü_¢´Äu̯”©àdü’ƒÞýé|ÐFCíØèø=øï5Þж ^º6Ûúp‚Zršsût(±ŸÍŠiõIš““-/ô°"ÿLà «¨èòìÅ—îaè³!Tîu\ѽïäŒâ <ôІk9´`ªç q E´Øâ +[Ö³±JJý¶ž…Ù7±ðVhØ{™Ü6 +ìðýõÉêÛFQÑysÛóIbé1$ý_=Õ/>ï®zþU_}òîÆ—ûZ +d}^ºÄ+¿¦f”ü\$Uy,3ª€o©å[|-Gn +ñÀIÆì¬0(¶4T{Ç5Óööx­Gsà EMLlÄÌ¥ÅôDÏSð‡" o/€¤žÚ7á‘ÿ7"%zNÇ4YÁù–ǾɆ;û&dõÿܱU²Á[288G-[E§šX¿Î#3¾ÒQ³¾‹LÖ?Úƒ¤;{ï,óªÎÄT¸2÷DÃ3çpå5÷PíuçPÙåñ¶'ñjÍŸ€Æûè¦ÒwTLÌJCì;ØÌ¿<€-:»Ä>/¦¡7ï¨h ‡Zfû¡†‹]E¿Y퍄&XUö.ÐtÖwFNÉ~Å-«ôŒž_ý›{“[âb¢*ȯ@¤á[À" +BbIñê$¦@ʪ»I,qÒÒS›{äêž « 5«›RhÚž_}hÆÖ‘[r\¥µ¯åîæ²üÈ"|‰}¼Lí,á«6f¯øpÓ;Ž{£!÷uTý¼@jú=±ŸÙÒY}q•òÕPۓφ¡É_ÏáŠNRè·•ž–'Æá¶äʤ‹Ÿ!__þê@ƒxS£çžžÆ?ÿ—e ýëà»Skõ÷–¨ýåN‘¡šº6ÌûØËÿ qþo€Æþ¯û¸‚¬ÚÕÁ2íƒwH%/¾Ãå?þjsžy¿ÌÀi© ]¦|sœ¦`ÝTs³ –ùÓŽ šV›l×"Óˆ¬¸œXS¢òâjTq\MhßÑZ4¬ìŸÖÅ-oÞ›Y@K4ÅU°Ü¨]¾m$‚þt +†öŒ4è•AØX ´. ZžíèHrÇæìµ™_ñ»†{ròú”™þÛú$8ÐZ%¨òW?¾½~ö‹I|ùÓ€]ni o"jÈ›°œ²£ÇsKÚ±!Ce‡TÄÊC³P°«c`7gÛ3v–°µ‘yhª™—Nyú­±«æf"ÿrá³+_ÀóÎNó¿‘´&®#d|£#Zúâ_ý ÔS¢æ”³Kì²JnõýÔ«'?iysí›M9ꃿÙXh}¹kÁƒýjT‰kœäYhKÙüöÿ˜Ý¾éŽŒ˜šŽ>Zé?p‰fÞ¯w«?npG?¸‰Èc Fg›ïû¥WÆžš›«iá9d†_Òú<0Ñœº)®{á©z´§g"Ö'°@,l¾·H-¾ìC㯾¨"ä}?Û‘þ´ãõ×rôëÙygýâ–{¶ñ†{\ð³¯úÚRN„f9Y{š‰_tÙÚYx-"-º×TÜ;´!kŽWX¬÷®ÄyC:îȦ%9¤}=¹iGI(‹.’+lÝ-7l¶;JFÓÝ!PƉæ·ßó*_}#½ûÑÄ)»¸5ÛžWb*üsÐüÍXö––Ö7ðÈûfBSXNYâåÿ¢`dþ¸2Xs52‡ÈÚ72°Q€Ob:xßÈ£ï™Xظñ.ªhzê—_uŽ<2Mý`fâŒ,BPF¬Ú3°ˆ{>-0O*òš{¹»ñî¿ñ†µ§õæªþ|cŽVmÔ_R1JÎ-RŠo¬ ÖßòÐ5¯ò®{œa†%óšÞêkÉ»‘‘ÀÎáÆ[&~ÝU›¨õ±o¼õùÖäÕ‘™ +=HœÐ1 Â¶¬oTüêÇïTÔG7yì@”Û¡¹GVXÀ‰µÆž¦û¤òߌ£ îîYY=a9*o}¸áš»§êwõÝôÒÛ_¡3/|:úͶ–7íy@¯IùÕ5 +¯ÛR“ê-ý¥—”´ç?Jq÷~2w¾øÙ;Vÿ$ª"u„—¨P|õ“³‹Ìwþ³Ê$úe°0É{zLiH +N¶‹Êné™Yçã€nŸ¢•>ÇÞŒkIЈ]–ÂÞø'Ai:aùC)6ó=§ðÌroÃ󘚊Ròk}òFcüµÊîüàdPãjh–¶é‰o¦ñnâìɰþk“0ÀNÊ~Ýœ§‡Ø‚Ð<ºØ?)ØR0ZÝÈ7ºÎ¦kÞ lö!ÿtwÍÓ/–è…ç–…u·×'àYÀïªóËñåö‘¶TAý«­©—?îx}1ªî(^—Ö>*À9;&2" e1ãvnïñ»;qöïM2Í;QðƒûÑÓ¯ïá º™ì}7{`ÇÔÆTm¯w–P•q¶ue¢53¬Ä6EXd`ŸmJú¢§úî?䨷?†å¸r¿òü8üÍW쪇ŸÎЦ–>ùjšsÚÊÝ’cò0RrðŠíV|7"mx¹m@äîê)-.9"Ç•ÄáYÇzLݾ’Ó@K¶ȼc3¹-ªÆ–zM °f{tIÈðÏ‘J\C­w5¬œdÄì;ýºµ{0fÎ"­ê¬©³í^PJ¯Zéi¸>ƒ|û=¿úþMOO8E x‘¯6'Ù­žIj—{Ê9ˆÏ ÍršƒSˆ·Q<-¢Ä–m6Ð*4€–±CRâ +hÏJ؉P@Sƒ–±µû˸zÇpó=°îêú,²äê`"¢ÆWlLµ'ûÄð·Þqd†–]{}²#ë”…_q#¦"Ôtb +kN¿{b© RTj´¼¬ŸTŒÔónú}×HÁ³Cs¸Ìç—H tåã_¦È9Oþò°8 jûÜ›8*~׳ßÒ³s.m,âËá%ÏO¢ò“/ÆõÑ®ßjí*¾4‡Nþž]vóŸÝU·>õô_Þ7àêJZKaÒ•/Y)·Ì¿×Ø¢c;꟭¹µ*.½Õ´½ýàäuG´TÄ<½øŠWr僃•Ø; ÚÖj‚RTN`öÚ;Z}u¼ñŽOŠÏ%”<ûž}ûËåº×q ž®Ï€ÒCÕO]WG;²¾e”<ø§Œœv:,kIßRóý²–g»: ·Dâ÷î>-0g“GNÈ“Ÿƒ3߯ šþ\ÎTÒR_iò¡›‚?ò²;ß»©„}3ºìã +vì@Cjh~HKjÚœÇùÆÛ_è8E—µ¬w¿ÅA¯=“è4 §ô¤ŠZôÓ<®ä'(ó+DæýÊð×<}m÷µ¾$å]úç(èÁ—3øW_w¼;ÿÉòÕ÷¾‰ÖçºÁÚ½çß,w6½>2°ð‡&bë¦ öÖ;G¬jؘ ‹Ò1À†qhŠ”Yvam]×qð1%­ys +ñÆ&¬:gb–ý,żûf]ð£»ùjZð³Wø‹•SyÑΫøÝÛ_yc´9=<Õñ.0ÒñÜ"¨ºäím¹¿7O¯KñyG‰>Ù“ ÷Ý¢üsG‹-oÿmCWî«;Þ…'Û^zê¯Å€uƒeD&@/w”m¯Ã²ö䨢#mKÊÞÕÑÚwM ¸_N( ÎS+ÓìKwÕ¥ÄË/§a/¿^$¼ýYÏ.>mÕ\âÙkK?ìÅpKƉ•ÎæGÖκGÓЗ',¬¼KëCMIÀ¼¾Ö +[o !óOûç°]=—lí-¿ê›h|”#Þy§ ϶¸º] í_$U¹$°¤Ð",ã?›<ÉŸ«œî]#º1KÈ5‰Ê/¬úsÏŒoÝwÐ14)¤d‚#ê^XÕEQ³ë¯‹})¸ÿý(4ýìrÓMÇ0ä]HÅ¡lªØß2o™É;^á +÷,lr`[¦åWÞXÕÞ°µ<ÜÖ39Ü]‡69®'5„äú€Œ\¿!Åå(UërFã"¿õ±A„ªØ5õŒy§¡É³ÈìoG›_>‡ÉûÙÑS}s[ Éü¹nmŽRÒòöé×½ÐÌ{GFò£‹N‰¨áY{FTý±ˆ<´RáQPR•¼úÛ+c¬ÿø;eG+¤Ž¨™»!…< Ì‚žgZñ(Í6†zÏ{ù2ÿÁ÷îIPÕ–Q²HO9¡efülÕüah~쩼c@TÚ™Ô--«âž ÈQµï]\QÔ€¬ ++[SB*DvPM¨Œp­óÇ#f[L­¸Wþò·î99Ýï×’#'=Ñó»bSÚòÈ=Q}Ý:ÞòØ5Çlœ!5žóNàs÷ ¤æuóËèlÝýµ9.L/hº°Ä¬8©¦Wþ¤eÕž±õ€oxÄÈZ~Ýïãà¬o†[ +Î,à«/Ûº›®8Zn&AO#2d¾c¼ã…”ZrÁ#nOª%ÁETÖæ"º`]N­ i8è=ѱà>9 =çqÅÛF>;fâ3B‹är÷HÛãYLÆ÷•w>ƒ¤~-'•Ÿ#5žJºqö“ެ?{û[_zþŽ™›wÚÞ]|Í,(7 kn*˜¥7¨Åw?‡§]ûZTûì;éÝI÷`óà,=8ߘÖ¼:2@û&.eGG¨ânÕ¶^”µ½Z•@’‰3{s‡-#›²ö·€îFå}¸WãŸiI^Ÿhz¹9ßž[–n/1`®qdî ¡àWï*Uß Ož£7=4‹ênøÄ•÷# u€rÂZd~¢ŽÓG¸o¡c}óä’èµ-ªE•ï[ÉÈ^¦àÐN'F–Ð…1#¡. +¼×¿ˆ«ôËpB‰oýÆ7 IÚÑ›L|^\ËÂé þù^ÒÆ´°Ý3N~·2 {2O*87…ÎøÉ+†%çéÕqµ) +ØdÌÈDÅÍþ–ž‚k°M9²`U zÓ¶Í ô Á¬Dؾ†Ùµr¨[z&jOKnѱ+.M£rPÑJOyF®ÇÈüC ïœAdØÆÁI[BÕ¦ Ó£‹#:h¶w¦íE@)Þ50a®<±Gâp…I[‰?79ƒ6ù“ïÜqè¤3ýjbÛ¦šÞº1O, ʉï×;b&eÏÎá|t‰¤¡v6ýÈÆ$n[¹ Ÿ””Hô;”QuÒ¯9û+/9&YuÆnÈ-=¯é’šQùó² ì´w¬õîÚ,6Ã6†HZîl»ææU¸GzÝÃä´õ)lº£¿ú¢MTzv}¬ýɾ‘Þ±m$4øæ!Ék3°Œã^çƒÇÛYæÒâ&"¬Á—m/3q»>w×*Þ^æRCJJuh‘Rí“ 3VznëøçfE§Fе?QË3¿]TÐÊ/ ´<ÿ|þòsQããO‡ o¾Öpj¯Ù‘éŽQسÄ}fÍë]ýÍÏWêo|ôÝ,í{)û¤SuÓ.=÷bÞh»!O1ÅI_S +_œˆ-¢š×$u7üSM÷\ƒW†A>m}ô¹±«ö²„Qóû›;ç?Åf=ÿÞ=}h4\Và*~“"KÏRòŸ~QqÿÜ'¹WO}Rûà÷O¹M©_ä=»ü)äí­O]=À<öÖÝX¯»ní.z»_Ä”¹Åäà$-"AŽÊÝ5[þ\ç8¨8À檣KÄú} ±#¤Á‚÷m,汃Í<´2°{V*Ú¯ÂWîY™Ì;›ýÑÉþµÂ /𶵄òÐ<6; ø“k‘dä7\ØYÂVhðoݰÇk¤BÇ`Ç“5qË馻^IËë`Ã5[_ë ¯„SeáU¸†Hi9ZÕZbßöhý5ÿDÛ£ð"¼ ¤†e:§îXGšìÙ8Ì(à!-Õ1aÛF&aßÞ5z´Ò=•¸¶°eÂ5ùå-¹~}—”¢3TœŠsƒ°ô¯z[3¿ÐÒ›/­ŽÒŠ—{¯§Ðy?›„m•ì¶gÆ.Èc¿—”“«×f¡¯x¹2ÚžèîRSWËM-»þ2c³Âs𬨜\ØÉ=JȰbSuà{ÖèË iNìCh¹ãn~4…}w~žR~M7HH–p7; +ß~5Ö^ó‡c—>Cª<Í){ý)9çÕ?0þN{ô%6íù7¼²ôŸÆõçi'8ÕÉ'¦ˆ9¿2Êï~;IùnŸò¥‘ò¯ILæY=·üzp_iiO…g^ÿlôæêŸv×±•Í +Î'ú´=uõæÿ¢¡eüâ›D–9§‰%Mé÷N˜ú›Š—I­û@ìtõÖß5r +/Œµ?=1Ðt÷3:å›Õi|¥îí¯u©W¿ŸÃçÝŒÉPIpÒÎ"$5¶P÷zžüòBwý/5”¬ß"GáÊ^~7…ËM:2‘zè´?WíûzdIT~§d¿=?ƒIûÕ=ÑözŒ{G‚x{JFɺ¤$ßÞëHßQc*3ð´U @i©%×6ÇÛó·l‚ež¿>E¨Ö/gs†Z·%§µDdØB×(u•ö+!ýÒ?&i·œã ÷hó“˜.±EݵÒP€Cl›Y´°†SsË.oJïì#ðZ]gCêæTËs+íÌÆxÍ­¸ +ø~#®jcòà¡7Ò¦§V($GV¬ AžÚz[ïmÎ@Ó¢Jlõ®Ž{ï`óþÞà‡•ð̨[qh£“ÞÛé¬? þ_^¶à£›Í=^aÑŽÜLæ‡Uîà¿}Ü¡˜Wó§‹Íû‡Óu¨#Ô¯žx›n®ïûÄíO6¦ÚžÛ­Ö JÁÆ ¥vgI@ͳý3¸wΡú+޾ò_ýåç6%ˆï$9ÇÔ‡yêF¿Šª¹H×8艉_pÊÚUtÚÀÏ?\èÈŒë(mÛcÛÊÚ¦‘o-bdJÔÀæ¥g|Ï.:8üC Ñuäḻ©†(¹•CsÔòÕ)|ÞÊPÇs#»öwßPû£ 16Ó;ÚþÜÈ/:³>E© «ºYŸUn)Ú“ƒeVú‹Ï­O6Þi Õ‘%:È3} ù£•Ã8¾6 ÇæyÅÏWÁ÷Ö§‘©‰³U»FvÏ"àm,’«Âj!®ãÓÂrjÓ†œÑlžæ”©GÉ©Ú>Äc÷$µÄ"¦ä.ò ×¥ø¶KóøŽ»:>ô©«æîF>³ +Á7ÔŒ¶+3ÈšS&~Ã¥IråEFᓯf:²~L¬›sî“Qªü +.lUÑMVcRz¡Ù?ªÕ÷5×¼3Í’úkî‰DMcЋ¨’X·¶0ÈÔˆš Š3A9¶!ªlM^Wýaê,úYMùr¨5õ«)xÆw+ýM÷íÓ”ò¶ÂäïûñQýë3[s° {gÑ%+'ã9âáWÔ‚?þÑz}BÅj½º<@OozûðSfåã+Ûþ/¹³"*:­af~ßYwãS£°ò¾~”ιs‚Zpÿó +꽉9Ô“šóm¯Ç/¿cßüBPxó®îŠ;sÌò‡-¯.~¹@κk¢Aã*v‡O}«ãeŸ½øŒVxãsø”Ÿ½c5‰ewR² ŸÿåáXå¾wQ‰;FxYH{g:‹Ï>á•¢rQå¯NçÞ=÷™G*ß–·¾òKª®&kn­—]l¹ý%¿ôò—Zö›?bf\ºèþ7Ȭ{?;S?X8Ìvžà½•ÃÚ5‘a1=¢lKÕœô¿ +í½‡ÆÅ×>» λw%¬"àß»úTÇž^õCBÅÿ¬¡c+¬f}ºôê–Ó:Øñîæ4¾èöÆ 4k}ò20ÏŒk1eûdÁ_V\]P‰Î «™m~£É1†{QqÚ£j@#.}zh﮸,§ÿ*éÈúÆÝ×ü0 §ƒ ½·\CM÷÷µ”¦C|l¥"Þ;蔳¶H­\™!¬«ø” m_׊TòkúÛz#®À—lËQùF|]L ÏÝV£ ·µ\´à`[/èÆ¥äÔp󫯧Úß~£&¤ýàì)¸º«çPü*6Ú3‰LÝÖ‘cz\åùÁIÅm[Éí~99½vg™M:¶ó:wÍDpPƒÌ4C›_Éj‰è¨-»:Ò³€Ï_SRª6U´š]K¢Þ¦p` ’ÚèºM)µls\êÄfGQÏçy-—œúë!):ÏÒ]{møîŒ†^òÇr7ì©{Œ˜çš`™G¹†Qn¾kŠ”»o¤bÞ;™Œ 9&oUŠÈÚ\À•´æ†êy8àûKìC­‚Ó­ÏÞÛ×pÝÕ•¾Ú‹^IÛ)±àìDGözVÍÿ"¥^Ö|!eÿ¬âW¾ +/¡ËíCÍ×ìý­wÜ£íÏVŸ¬•lfHMnˆ)­k3ˆ¬]ûÞÍâ%Μoëàù«Su·Ü€ÿû¤àë2b‰e’]"ãCN«®‡èOwÕožÞòßÌw?èY¹?›:kî;zënÎcÊ=r!¢Qø[wë›ßUqØÝÚ4øqD…) ª°eÞ¹Ž¬€c¶<Žiš )xðMuò³1 ûß vïßöo¢ȹo½Åm½•7Lc˜Â’§7¿hH½}:j&v~ÜàŽ:H¸àbóGOöY:ù›= YæÑÜó´jó*) ¢7%bsp‘T +¬ýㄞ’QÊW³knæ¶YJå(¾ü¬’[wWOƒ%jÝmÎCSB‹èÜBé†JH êzº†—bˆg” €³SÝÞ…aÎú©x™W äÒúÛÙÆYGúê<£vœVóGO{æ¶ÐCß8âµk°ù–g¤ìúî8/f` WåÌfç,¹$làR·–Ù¸°ŽXÒcË6ÕÈ÷dëã–¾k@–‡t¨b ™æ–a²¥üê{¸ìÓ{jÓ–œZ¿¥¤ÔÇMT(ÀÅ”ˆ™O_™£Õk:›“ömLò‘‡+<òpG‰Þ{:rcPE(Ù\ nH©å› +&È6Œxê•óóBØ +ðÜ ¨úÝ9Xycm²ñ¡†_xÊ>Tÿ`KKmžãÔ\Wòêïn›éÈÝe:ª¥÷Œ¨ò¿<ЪC{s–_Ùú2ñ64½&1¥Ô1‰H9p0hq3qà Ãß;‰}+¶aK‹*Ü]&4üŒ_€=Ì!3¶ÔÈ<¤å‘C}æW+v}¼­g"5¸C‰š«>Ó³Àiݳ@› +F‹OF­ª©à]ò~…ÍÚ¶pi>YõÄ,²AÒßj™Ó¬“½àÕ9N“¥«#yS‚É‹*I £}yŠRЩ8ÃiÌúÎ:ˆ/ò/‹#õ×—:3q•] ©H5ëj~S×Å›…Ü‘‰¨ à Ô±:ü*j]XÎ,€^úU𜠉ÚfžÅç1:rÎbò]d´ÄÔöË`Ù[zJ³e¬=Í2 ~»»LÇD4ÄzÇhÓûHÞ•ƒåºç‡ö–¬+¹eé^SˆLbf½sšRyäîY8ötN8褘–Ó·¥ÇõÈÒ= ¡1n Ö­Œ€ïøP¹V"x׈©ˆéðU{ÿïL ¦&¤À•;Ç`I-µmÛ)ÚÔsé~ ·»ìÂ?øÓ`µJ +üJúœ×1u-O´çé†ê^—Hà  +ˆà€ +WÖR@A Ÿ ¶?4u#Ò¢º.OƨóÎP ×hUÞrÕê" ºª±Ö´}B÷§Y-"§:'F²qѺ’ Ö«Ê¿H¨Œh¨ ‡~°Ò9¼ëà +c‰3N^‘tÇÉë©à˜•E +-ÓQ-¼ad ¶¬,jPÏ„ËèÕçldQPÏ'm*ˆå[7ÕÄúM¡zSAG­¢Ñˆ­w:lŠÖµôÖ¸U4²»Âï‹Y РžØh'¼¶Ji®DÏU#®éOo×Ìo¯ê½§kòÐ%ïYy¢ÝD/³€ç˜àV;§¹5¾,ªïîïê–ú‘9kÓÐÇ($Å6Ðþxu +žºmâsÂZ}g¹k0nÑyUý~9VñÑn)»NÙÙqÛØä”`ßú̶ME+¤ˆ™¸ä¨ šÖ’kýÒ´à—jZÙ¥ jì ¦úÁI‡¬o‘vAÌ£Ìl× ¿ÑØCÏôŽÐÊbZ>Þ=G-›¶_W÷!ž®LQªÖ´qdǽõÎó£$5Ù¹ü-#‡6°1î9\¾k“æD|ÄÐÅ é»X%!5´Ä‚Gutìî +ƒ2[͸ Y'侜IrIË(={c^½k¡Á·ŒlÒæ»#lbÀÿô &ö]<Ñ–‰‹›»zãæAÙûÄyb3ª*¤§­K[’¼S­Ü€¶ÚTò°& ¥dš\ujUðÀ žñö¤ ),Ù>z ï©¿ +hŒGq¹9Ägß<µÖ3M®ó/¢Á‰³çï]äÁ +‡¿©ã }J>àçݬ ~P¼®ò(¨u€ÐpÈûV:ðƒšÕÙö×ë2ô»°š +ŠéÈ +Wê›mK´ßÛ¨¦ùÕÚtÑåõ¹ÖçQ5À‘€ÖŠñ:d°"ËýSA—r ËŠœBæÚ©|ÛÂïÜ·÷ÎLýCÄò+púO>´eù ÿ2 딑K6µlø&À`aŸ·wo(]5Ϩ˜xô55³"ïB;º`^™ê˜ œòééå91ϱ ‚;÷Ícò7e˜¢¸‘ŽˆZøìˆ‘ƒß2s©{Þ>mÌÍáoÙøQw×dlU´°½*œÜq²y!#¾¦"W;f‰…ŽY~›¼›”Éåž´]MÜÎãmÙ˜Ÿ’Ò¸e¢¡ƒ&Æ·Di˜è[þ m¢íåÊTËý°`o¹aËÀÄî:y=6º‰zaÐ2qû€Ö³ÀhwϪ€ñ0"fgÇÎíÜ[éÙºFÖõŒŽU¾xSOn-³ ëjB©_Ñöâ qþÜ> :t êöí}s>»Í1AÉqÍ +Z´cü¨ò„©·kâ3ã&&¤ µ$ö쇾ÙR¡J"†ÞݳŠÉ<]ûøìçÛr +feımùu|²sžVf•0 Œ¬,Ë” Ž*ý¡«)ûʦ”NÛ±tÅÍ\ò6÷ׄ×YM®)a½UÒY£"gzšnûdðìM©zs‘ÑÔððÎ)~ãÊüÙ*í:¤”‚ME'Ö»8À^U÷°¼rN›yþÆ3MkY]àÚæ$š11Z×Ó™·1݇ݒ 0󣟢ážGæo(êžïÙ ]¹Ä÷˜ux)¬c¶ûfI…ëRjet‰Öºc$7ÇôÄ&¿šrÌR +Wå,ð¦RDuJˆï¬¢ÆKQ%µ9¼ÄBE llDÏ€ú5ôVç,1ß°yL'&êãïÛÙ´¸•ß\ÂUõ DD/êòÉ: ê^væâ (Ï4ÓY×ôw‡uÝÝA%ê½4tÖ]*°•1#‹è›#Ô¨y —ìÃm÷#ñ•Ρ- ‡Xâ¢ü*F³_I(]“u¼ %jYùKðÍì媢³<=N³Íñ›¼ [>Û)tx僂5ùØ ²‹•ˬ­üÅ9ÇÇo9»§¶€˜¿ãíQìx»¦#V6 °ÙJ×½vk™OÛu’áq;®~MÛÍ^QŽöû–ƤAÃð¼kq´_>2X7Ù5˜5)x»4ÜW«ââﮌ2*"úñ¸µozÛ.Ûvòûü&lËÎÀÆÝ3ۮίOsÒ©>yGÎÚ"ªÄobW¬fý-S7Jyë˜Â½‹>0±P:&Ì%ã¡b6áÀ®»_sõ,-"±ßÄç{øòu-°ô Æ¿Žý?6`C\uÌŒ*ß±S1;+Ý3QÇ€Â5‡/X[$·Æí=3q‡ oÛ΢úÔzÛ,6sUGjŽ»©ÄƒufoÈB'„Í|Ö¶»S¼ctm¯Úv4lÐÐÛm™†ëǤXå 1Ù)Ι"sïÙÆ`«Sbšy„“­ì¤>0ôñÓÝã-îéY¡qfV¨î,•ñ1Ou‚ŽÌ[ïü¶½[4òH)­H;Á)ÐLŠQ Ã3±`àMæ’ŠA)Ìõunë»»¢6|m‘×äôÖ©ºGóxÃ祿ÑVÄ(ê ¨™`‹˜^h d­NÒ*ü명°;öb¶c ï&”E¶‰OXSr!îyQ‡yJØè^`Ömhyˆ 5­Ðúy^½Ò8ÓÓ*Ÿ˜AO‰Ä%ª¡¾J½x¬nRŠ¥ ÅðS6¨dôG_wwpoÇ;Ö”½T¿ž‹^7òÉëÃnèh- ´DÀÈèØ0¬¦ãc—çÆ–fUbÓ¼lL-m‰Ó¼‰—tÒÈ-lÛÀi,Xp¾.«öG\-òéTwW£g^ñkù˜Mé]"7l»øý‰ÚW{®îù¨ƒÉš9„ koŸC×MÑ/ bÅýµÊñ¡zx°Ù©d¬(GD:ñ0T?6ÑŽLñµâ~¬EÊG9‰ÕÖitVpI@Š.ÍoÙÇ–w<}ªøŠH²ëô­ò|4Öß!öÈ¿ýüÉãUÁøŽ‹ÍŽØ9ô5C_S1Ü©ê¡g9»ˆEÕ4C+õ, YÛN&{c Så^À—–º{cÖ!ed¹«Û­ã!W–úÙ†ÅE‰ld™#é¶Áû9†"uþy7zäÖ8a*mŠ.+¢Ï¥â—ÁÕä ”Fî£~ÒTn?m(_Ù+Ê_ç—øºa˘aM?6mS +§GÚ'$2˜X²Âè·AxÔ™‡bªô­B¨hV‰fšu݃eú‘Y¨´KV5ÆP¿c•/ªK0çj³ág¡ÕÜ“U¬o'¨=™aýètl¹oÜ«Q v±Z< ž^èèÐcÃF´%Ëä¥:éšwý•6!KKÆM?¬+!®/!ýò:ñåÍ[%ÿ¸>ýÓ¼' ßRA£IS]ÝRÿ$4 À—î,#+bl­}‘Q?Û3š?̘ÓO™NdŽ=“ŽH¥}ƒùFI?Ô+— Øgúåcc-œž‚莰yœžò¯ $ì­G<Í ¨º¶–û$û. 1¨”uiÓ³°²£p×Ö%öæœKÓ³¬¹þ’I eŠ;”g˜PtÛdK1*´Lõ5s;“©MM?ˆ ÄGúÞþ¢^(ù·¦0Ï33Hó/ö3]Ìß,µÜ6KvOòÀú™YþÒìbif±0Ü•3ßÇy)-ï“Uô÷[›éÉMˆqGÈì,pâgu%ø‹%9ˆ‹Ùéí§ÊógŠ 7hþ3YßP¾qQÂsiúx›·mèˆ žyt®]&„éÄ”…ñEl/_UÍ¥Î𩳅|²ü%§½ ê˜;WU+:Q˜Çø,¿öÙWR>¹zñÕ%¸(íô+Ct~ªZÒZQ ÐV5"Zp‰K÷-âkÜ +jQ.ÌÍ-ÐFG§*z¦òúä5BöÜ&^ü‚…ëÍÀA(¯KÚo´W’o×`oeCÎUåWžÁë~0“&y]Õ³¢q¢~vz0lïŸ +\²³Âë<^Œï¹ÙÜmO¿<êT-ƒ“C¿Ð¢ìŸ›˜ÆJú%•ÃìÞW³C“ͳãRŒXØŸ9%½UŒwæ*ÆÙ+òNrÜ1 Þ[é–¬ë»êù…>ɤÕ'^cñ»×ëÑ$ãÖ¶‰3pˆä,´eø§¢lÌ—i©ærNUJ¾¾ööɯ— +>}ú¤þ«ò\ä7lç¹Þž\»´íTNL,ÉÔóS³æn±NïöS…{%$ÎV&o¹jŸÿ¿LèX¸ˆn?ÓÜ8ò{UEï/ÕåÃ?•|uõ~õ'/|’ö–üª:ß/²5ÛÄA}ÿ€sßf›ë„æ%¼É™%cÈS‹d­&ÁÉžÿŸ£¿~Kt]ßÇqgí½få¬é\“ŽNãØŽÝÝ*- Ý)vw‚ˆÒ`7&&Ø:³jï×çýý?¾û'Cð‘ç¾¯ë ¸¹NOhÉø“ÔìÆŸ³óºoƒ +D·2³»ozùãoC¾óðÈ»™‘W+ ÔýãGOˆÓ£§qNO^¤8ùGòn<}wò¤}O¥¨zAœ\<ŠœþžpÃ/ûŸÖçÜÃå¾Ó4}·Õ¬´«>­³]’]Ý2•I­Û®ù9<øðc0ã‡A”‘‰ußÅ$ÕýË'˜ü¯GΙ7>’nD¿ó ã:=s;¹…1nÄßLë~#ðg;Û• ípaÃÒ!²-vš”jÙPKߛײM¨\ôÅ1oáhùƒLPÛ¯ŸüÑß?{ ºñÊáôÖ éôÖáäÂøÞ3ªìûÀÔžïS`Ê8δGuÓlV_§«©š–Ô­(ã 3j°®Ô³¦Tø¹¢a*™Û¼–Šl~J/ý_qè¹ï‚#+o|`:¹|D:9€XGsòŠ­szíËøî‘+ú_.>´ï¢2„?%! Ïsƒï:ê„«šªÒµ1r¼UÁËÑ [ ]uC MPUóB…oñBQçß@H3¿ç£'îħ¶þëýg¼“Gã»Ï!ìwÅ:ýv/äFdrõ!Q”_AÔ×FY7mE]Ï” tÃzFñ-ý3¤ª¶ù|NýJA0íUˆ—<‰J«þ98ž}Ó7†ñï®é7~¼ýÙé'¨·ÒïRs«cà:¿ ´ŽëFX«ª:ÂŒ˜›dq’uâòôá¡!LKïVШ¥•¿ÇQ¤Ï +q/“j.*þÎÅ#Õ)5«ö‡dÐÀÏ¡©Í7=C™?†Æ +îÁàƒoXô7QK¥ÿôPiܲŒ•¸©æC¬ã5¤yEJ1P7ÐÓ’Ô6 F—·MgÓøãÞT®ÊÇÒ¾Oƒ‰xGq~vóGý;$†ù}TJå÷ñÙw³¿ç„ÏÐTÅ>Wÿ¥­J›.ïâ65õ<«ª$qR\¦“6á»[zÀmŠâ沬^$Š_D¤7Þò‰.ÿÁ=vÃÍ ÔôÆïﲜ¼Ci7¼£+œžº#å]癯û!·XéÂ)פ)D kê¶Æéar¤~ûÙ$­È‰ä”ºnSAyß"”Ò½—‹à/{bTÀ(ùíÄœ¦¾Îvzú&ÏéÝ'¬Ó ×"§GÏS|ƒˆ7Rë¿ÏÊiþ¥š-ö×ö¶æ­ÈëjTÞBóìÅôŽ¡Ë*GüÊZ–³Y­¶L\ÅrhIþ1Öñ Šé{RL‘¾Š+è|ò.÷£oþFLFÍͨܖñE.¶Ä[P7Ûׯ£˜åmØUM9roºJp¸ÐÐgV¶²ÄM]ëÐ,¯¼cÄ«r¸nÜò¡Oæ k²ß5¹ ñMBn™sJ^ùk¼@ˆ.S‡ËƪëE¡Òáž"´g’vV5-•‹2nÆŠ‚™1;ÂH4KÙ–º¸žÎÁÜξÑŠzq£Lø/Pz§Áz_'5Ýw äþôììÆçpÚÍȜֻ‘ Þ{9TÓK×ò>‹,~_R¦Ìì[J ã"î‚”•²(†ûo©h…»æÚêYe+_*mjyµ=f§ÞŽ/[ „Ñ,¯ ˆR ~|뉺ñ˽8§ç.›ßÄcŸ£©Í¾Í =†Á&膷Ž7Ðu²‘ö1éh³H,¥õöÈ‹ZÚ5y5Íê$A2˜Æ’|ÀSÅa¸ÁW±Ù•¿…ÄÐ&eÖ¼‚¢»Ý+#‰êŽ îÔˆbp]×ÓøoŠ¥ã£n9OûšeÕ…ò!µ£½/…Ç,{ÃÀ•=®¨ŸÏ,áê}A¨Ž— I¨_ ¸Æ§dÆÐIø’Ê ®©g ¶Ë`Êþ.°UÅ™Xðc3½`o‚’¶&£'¬ËI†Z€j 6G. †%"RÏ`NOçH^{›2·²J@ãô~ÀSš]HÔ®÷4f_m]GdsgGHkW_ÌP‡ªJYÖ±^î¾¾ž}2% oiI+ªRÜŒª·S¯éW ×I¤ý„¶¶Æ°ÊòN +G駨ßÇå´=‰+ÿ>.«ñg¿HòÍ€Xê¿#3k¾‹Èiø! +Ôx;%¼‡f꽺º¦èZùx£ETƒÞ7ðq›4Цš 9˜ªàÎi[XC½u íííñÂ9zY»D+7ø:b–æC`rÙG¯Snüþ&ÓÉ'˜pãK,ù—pÍsh°i0¹¿YžÛÝ$/uÊÐc]ÃHCo7xa¨½%iÂٵ͵Ǔ ÍúRô²ˆ™²&fé++ö eÄ…ÑÒ<ƒ¨:w¬'oaGªd²&áÐ0º·£+QÜZ­ªËÕ´áô’ü¢ª·fÃÐÈÝÔÕ³v µì£©šÊ³Ùê*‡žœ3ß“ç2Û~»5ÊL]³â—d•ÐÙ±FŠi¸4sAUϘoá¥Õ áfŒ³°óRÒL|7Þß1!éÂXd‚Ì) #Ú:ÖR¹¯?2Ô”žÉ™‡¨àÍÑ’%)!|yL_7ö*Öô½Ò9E=Ñ,)ÏÖ‰ª† ˆ6)êÖÙÚRÛ,ëXªn>·Öö\®” Φ¨ ‹Y:òl–Yrh¤,Ë鋯Ö³ª§nQÝVaŸ®oÚ75Öïêx»ÆJòŽ‘\Ÿ`篩9y˪zâ’¶§gYßÀ·MV0m{uŒ“½­åB·&(Ùë#ÅÁ+Bä§c‡ôu¥YqpýY»[Uñ‹fÅÄë(2tCÃ.šS7ÑN/jáê4ÂNõHyºVÈÑI«s,š梶»¢®@íÏÖÕŸ¯Ô…;ZjêÉB™àb­ÍrºÒntÌ×´Y5e8Í`ežf°4sàCËX·`BÖŠ•‹Ú #riU¿DY:$eJÅB¢JZ2³’mó5õG3•5V1åéd{^øŠöY)È~>ÙH‰^—ÔQ6e¼‚•!üKK®óL[Ñ» iyu´o*Íâ{(;šÏ&[ú/§¬]92x]q[C¤Ÿ¥üj]JŠ](ŽÛ•“bvÄž ÍéVÚ²Ÿ-w¸®ÏY—PãÕå ·6†Q‡|ìJ5aWJŽ_ëGù쎔„ž¨ˆqGãÄXëÒs¢*íþ )æ×#çëtUù©‰‡ÛÃÅž`»Ššz¨ ÅiY“èxYYªËõ‘•^xìžzª)Ž>RC"vFÓ®¦Éc=÷ÄÀEê«øvmuùž¦ o!ÆØdù~‡ZDœcº”v`)§Yeøð- 6öHK/Ú’ ¾Ì6ç9O7e8ÛÇ!Žñâ/§ZjðÒ&#ÆïS“ \ĺœ˜|bb"/gÙØ5kOŽ:V—Äü=K/þ{¥´Xãìý‰jæñd}½ÝPŠsh¨`›¶«ÄÇØÆJbìZRʾ +gS`Ã×Ĉϗ3\ò‰‰ +>1`ÓˆÄÓë,heI”]MIý6WU{µXQgÁnJ ñGºrзø!Æ.ÃÆØØØu!ÊwS‚ ÛSÒsíèXCLúk†UüÕÌ*:› $®t¤½ÛÈý¼Ú•õnm Ëõ?ëüʯ Žm o*I>Ö1PÇ&|ÖålIÎÅ4¼«Â¤êH×3W¾.” ”¤”…¾üÀÙžì0‡–¿œ®¦ièýQXÄÞ(ÄwA„ ßÑ ˆç 5­YëEg‹•5‡3å¼C3Ÿlבóϧ˜(‡ ³ë9x›š±/T×-Ö¶nª®ga#>¯B<¶…ÐO;×stÔ%qo êåÈ€=YIØL7³¾8è×1NΧ“1Ì>ÊJ?gf-÷¢ÜWû ï×…0·-Öos˜ž8ÝŠòœïÀ|>VTà¾é«h_,>G„˜jcî›+¢nMצ<Û&$ÛUüâ96xkì¶%Ìÿx<^v¦¹ÎD†.÷Ìwë„ô:3°ágFNñÖÌ×Ú—ôdc0ãÍžêoW‘“Žu´‡·#-ö·ó ÇÇØ¤ø0ëÊЋ¯M ©¯§[s^.ö¹ÎtC>tbCïn qa|øLMÊ£1ZدÄ_d”°[S5iÏŒÕIwWGaÚvHH6æá©Š³+Y»LØæ`ŽÛlS‚³¡"ú¡¥&þÎ\sîëC3wC\’º¼æÝQt˜}œg¡üv‡Š}¶ÄèPIiÒÓnlÀ¯Ö~DŸ“55:&d±3ëÃdCä“…ÎÐ'Lj˜r¦£ä©(9×3´å„}U9ñÏI>õÛ,sdfÁÿ7£w‚f$ç¬B=–º¡lbÔ®`žið‰‡£Pßma‘×lKÆKko‘;Ð/ÙÇ“ìâъ̧˃Hÿs3ùu²œu4NN¶+Ñö1H¨Mœë·+ÃGìO\Ÿy,'-Šðak"´ßöhIÔ‘‘ wèh¢‚ÀåÞ<ç…®¼WóÝ 7Wólâ–´-{(9zjþŸ“tØ—8Œ3#¼ÜŸïº;†M½š©ª±«ù{R\„mî³+xíËÑ¡&nñ©Ž]ë+ô?Õ5ËØ*Ž8RâV»³½v†‹Â6úA^#Ѐ ¡`ST°ØïrnpOŒ\ì©™á0 ¢vë Ä endstream endobj 32 0 obj <>stream +ûPMH<1Ss4кöùbŽ‚xùm¡Œï0°1èàùŽl׃1x葹´ì|®¼ôë9E^.V7Ï·©¾.5Ëÿ?« ú«—µ%…ø¯ ~ÚU`ÃcLó¨r3¸Øc-¥èTKŸèh¹×ÀV8l_ó™lËxbiαÚöÙ—²3mÃÄèÕn¤‡]ÆÉÙ–P¢v$ÀºŠ`îÛÃØÀ¹Nø}5èñj/.ð\#Àm bƒT¤¤c-9}OŠOþ¦Ã¥3ÀB.ô˜˜ )>t©î~¡cÃN'h9Û" O +\UÑw‡IŸ¿×ðÃ=»>o`‚tý0ßAVê½s5üç$ômŠ”}¢/ŽØ–€ÜšS-Ô§?ØÀÍ÷Ó£çÚï÷ÄÄðALð¦¸8j[‚ Ù¡}ÛÁoæZ ½vÅŒ¤ÅŒ_üËÍAd̯Z^æï³™o¶@ã¸ø%>j¬&Û¥}÷ò:ç]ŒœjL<Õ}[_}ÛR‘òt{òù|·è)=êgs}†óå49ßú ¢Dÿ¢`'þ6!Hø­øózo§]IJß8u{¸$|KLHÛ•Ñ1 +b†”ð›œõ鮩ÂÿÎr{ʳ#=1é@ÅÌ[î!&oôGýw¾”u9ËÁêÐQÛr€o…iÙ/çZA/v¤eÅÖ~|ärgÎËœ×;CL•ñ·Ç˜aw­üÑÚŸÿÙX—toCˆ +8ž`¬ >#}Ö`Ö¾ü÷»â¼Oß,TÀ1 +á~#Üä;65ãÌÂÅ:ô U÷žiŒ±#{ º«Q!W3t¸¾)õÝTg^ÈŸ3\¹‘ ÔZΉ¾$aC˜ábíJ~¾+Éõ¸´à²­`ÿŠBÿ': +òŸ¥ÒÒ8d‡²$zgàÀÆdgÆã探8¤´Àÿ~Š×“ÕÕ™>ÿ]äÒþ˜¢CwÄP?+ê¡‚pËÀºµÖ ®ÉDLµ€]ûÀþßæ™¤¿WK«ŽTäôs9óàÒé–„§«™o/©x‡…ŽÛ!Äj„#CuÓÅTiùÿ-réZè%»bpÈfšëlCÜÃÿ®U÷žLUwì©Yè3½è|šTpd$ë Yßf)àK1s­?×c¡=ûõ™™Kºž™~fºÖ,´Œ£ RârWÆË#)õPCI=Pcöåp_Ûp¡‡©>úþ-üç­AJò\'Æ{º¡ð•©ô»¾ +ôd¶æjí'¬’B6ˆ¡ÆŠÌK]07›¼/- ¶ä¹L7ÅÝ›ª¿·6~çPâ"¯´ŒCÁÊ^ë/þt §%(ð{R¸×¾4ÿ㑺!{L”'ÞU—fÿ~¨b—{aŸÖ^["„Ï¢8h{â¾Öý`À‡ +™i»1¿¬t¡¬¬}95Ñ:ˆòÑ—§ÞW’C~Ùè.p^èÁ{²sŸ£¢ßßP2ó]ÏÇ9 C9"p¦)é¡®"üö8'â¶±:ïÍÞ(te©äîR“”$Ç(|8L¿T±rwDÅã¼ð[šÿMsMÊC`ßý·¤èCMâݽL0€×I;â"7SeÜã¥öt÷mqïrw¾ó|[Ï¥¡¹uWÚ\1ÝDð7× ;àA—:|Êé*|küi¶=ϵq§vïÏ™ +ÁÅuŽÕ8âËx•ßãa’Ç;ø'ޱëï«’âèé.ÿVW§y[]:d„u‹çú5Æõ1&ôÇ­~À)”Ìå!x$êåOó]àí~n,IÝg½_h~¬)ýrkèõ£©6î‘MNM‘ó³Ÿê¡—†jþ¹–Yh—Cü­]qGh^?©øñw¼øûbD¨]U’`iÈx{n¢[ý7 ÷ÛðG +‘²¢ëÉÙ«bè—ù¶Ôßmb¨×¶í¿%*°O`â6G±1=øø;Y¾ÿz9ùPU’³Ü—ûn¹ün Øç92äp¼Ào\Æî*D_™øp®#ÍëÿÖX¬¯ó48ÀÏŸ®çÎ4æ¼6V¥>¿šcÏ>3v€|ÆxIw/¦xÌ¿–J+•°mQÚ+ÛPßæ Ø×1‹:Ñ"#ÿ»Ê¡kZÁѰïoÓ}¨ø?ÖZôç³U ‡*ræº0ë•¶4ì·Ö¢¿êªߟÏ0qǯÓíààs~a`A>Ÿè)9¿gMàcÖ2_šêB~éB¿û®ãû뢰$¼™’|KÁ½ÝQ£W…ø€Å¸›¶*畦<ã±Vqo®¾ðͦ„©«/xg¬Jr¨$%m I6!þËñ8& ¨Í€] ÜàÝÓ Y÷ä€Ï£%ïŒÌ·Çß·Tÿ¢çFý<]žrø›ðé¤!ì§ÉZ˜/P³ kÄ}¶9óÅ0=òV-Ôï—°ç÷JNâÝùÄ'iYæ+?óåê :`º9ßYSšð`¶9í…±.ëù0=æ×NxÈMSÖ[&Èz7Ì¿oí-ôÞ“bbFñ‡£ŒÌ).q_ ]Ì{ h¹•AbØ-핵{ +xik¡çZoÞÇQ¡Ç¾úI[s{„ðëu¿­ö‚=—Ûr^ +±~·§+c9äð€oFZÞ™ŽY¸Üƒýb®¿°KšXË턘iqľ¬Èg¦)ýÕlS¦ËF?èqzê·™ÊòýqrÚ†ë¿ÞO‰ÜDûÛGò\·²]VºsœçÚ@n»rjwLPlj†:/÷^ëLZÆ|+ÒËÀ͸3SWà<Ùû~²1ó•¹9ûÝ’^t8FÎXé»,uæ»­tB–Û ?,µe<· ¯ç§eûLÖ§?[î‚xŸêJ‰ÚªÜ—j^ÂÇ?=î³%Âo îÞb¶ìÖŽ ½·%Á'î*(É"ZâýŠLÏﺡ7Ô¨[Fº!ë2Zf-:ü 'Ëõ_—fÄ¡¦fÏvxs£žjøq÷tüÔûz~Âý->‹ ò¹ÓEŽ~¿§aÚFiúÒä‡r ñÙ!¿«£niø?íJóÃþYav•„˜c ºÜUè¾Üžã¾ÚžïµÕW`~àLcúÛÅÎÔ'ÿ·Éf‰ ù®|çý1TäåT}ÓådmÍ?Ë‚²3 .ð[r„ßêÜïØÂ¥~]l:1ÐÁ;rLè¡~¤F'ªÐÑ€§_Ó÷ûÅÒ +ò9ü㑚‘}]·§z¾}‚û¿¬C&b¹;ÏÍT›öî×å´Ä~~þ]5ÂwoŒ_´*Æ}™lËz2D ûiòƒ®"ýÁRê³UD‘]‹›|ÿÌXF:j{½¯Ä²)ñ•¦â˽™†”û³MYæ[ÀÎkbl¨±!ÿýJqµî¾Ð”ùx±>çùv/Âs_†‹°´e¼’Ñ‚Zl†øŽrrŒ5™÷§šó^K9iÏê ¡wKBŸÌ·A|V%„p!/õé+í÷abœ©©À½ ô};Òïß"bè2Jø¦ŠŒÇ³]ÜÄ +dôíZDÐvhŒ})ð(¿™æŒ— miO·„yo•è0Kâcy–ÿ÷æÚ‚à9§[²\×{ýÓõÒTû ò¸vÐÝ…~ðÇVlЭRô£~bärèíÎ@Ž‹] +ö¶vÅ{Í6E¼5TF=²]gZ 3x9Þ¿‰i/O5˜CMÊ:C‡;FQ!{ô`¯’Í­¯´õYÏš1I/EäøWG€®´ý€§.µÔœ£1jîrôörSöû]!Ìgwæc“"jà!·G+ó#÷ |š˜a¨Èy¡«Èp›lÍ ^éyï€üÿœ"þ³Ä¯àÃ'Xö@¼o*pÁ?ÌU§ü>Y•òf¦.õõ<ïó¬t̪!¤<Ù”£vT•¤ëL–ó)Zᑹ#‡zí)Q!§Sd🫠GFj{r¬§äýg…Ïù:K)Ú/òßS‚Ö„ÉïWz³O 4Øåd)Ù®¢¤™qrÅ¢$Ç_¿GsfN5¬|@[Ço !½» +]WŠ=lbbÔZ€X“Ñã7¤%¡ 0÷é&°ó¦tøzÛ(.t¾=ïÕVÌûj¦®õÚ[¯÷cýôÕ‰ôÕQ6Þ‡rJò¥Ž_²¡ ¥¨jÒŸ,”ÄlÊ)ڲ̻£´¨_GéÑw†H¿ŽPü¿×rcïnö`ÂìJnÞ8?õáõœ¢}%´ÚG Þ¼à;'Û ï¦ZŠ^o‰H‘6€èfzˆA†FJÄDÊk¦ æ¾ÚƒðÜƇ¯ ²L-H÷ù.ô—s}µ`g ¹#Á†ʸƒa>b£í½Úr^êÎ~;ß øþ&´ßž‚‹šÀ'ÔûÒƒðýiµä¼Ð–ÿÎT þ¸Ò‡ Y&Äô3R¬ˆ{hW“-5qwf¢n/·§>­ {°ÕŸúá@ +»0ñHÆžb¿DÄmµ Ï篙š6Ç.q©-ó÷ùÆô‡«]à7ËÝE§» Ÿ”õoŠbݾGF¿½ÿÍDÍ¿43ã°àµÞ´÷£Ô€ÛÝ—›ÌÀ_lrtHmqôPÐëï'ª²Ý¿™è‡äy¬Èö<Íõ4”‡Ý“`?ÿkº6ý¹Cˆ.ö <—ºáŸwGñ©€wΟġÿZ`¯fÉm)€ýÙ¯ŽMøäÍ¡â€-!x_AM<5rà{£”X‡Šœ¸'0N ÷:UâεôÜý1vöº˜qª`·†IQsÍ…¯–:‹œWÁ.¦ú¨æŠÈ‡Blèé½Ð +ûhíDx]hyH‡Š¿7‚ Þ•âÃ&3^¯üVÀ®6iIô¾†1Ôå=ÑWd=›m*ø°Þÿ¼3ˆsŒ0²¥„´ÙÖÜ3M9¯ŽÔ”ŒC-}k÷eC‚ žl‡xŠÜ;Ÿ/ ܆Œ•5߉÷ÞWÁW†ù™Ö!Buî5ÕñÌÚWøqà§)æÌÈ,Ü–À|¶E¨Ð#Um©‹–6ß„pÑ•g<•1B調QwÎ4Ä}me~«*Íyp0BI8té©‘–»7^¢¯Êù}¢ô\[žûûÖ(1aGMˆÝAÜLÍÿ:U]qeàafÛAŸú‰¡wF¹ñ—û!ö øëduÅ×뙞B¤—MFÏ>Õ×–;Ô¥ˆ¥.l€®ùIY sí$¦þ¢­‡Z˜ +Ú’ä¿_e¾³ +óü€×d„~:+ŽXì/ð–óRý èZ蹞”¹Ö“òzª2èéRsü[k_ßZØÓ>†‰¾ž½;@¹£,Ïñ=ѱFrŽC…‹¶4¥<‘ýåÄ?ÓÖd½1ÔC>©jŠÞD¾ýu˜íz©Ç&-·e¾™«û_mÿ>Yöd¡3ÿÝ¡†œ3XšáœêùÀ‰ìþ˾‚?5²Ñ¶áïåî”7ÓÉæZó_­  >/‹K¾´’"4½oíËñ±ÇJfÖé8>fO ]ÈõÛ•œh‹ÃNŒ„s<ØÂ§ûrR⹦E§}"ÿα0[RRœ¡¶ÀUJO½³§`@·ÇÈñë²’¥þ"O #â…ývO‰I¾œ¦‘/gXKÃÈ('úñ–•ùŸÍÒª¿¬šM ×VG?œjIrÝ‘|93cg`ðè?óÀþï¾­T÷ž¦îIt扶0í<Ý›õayБcŒ  .?íJi Ž 6èPÇX…8ÿý1|ìþÌÿL…Ü—£Bæ;S^-õf8/u¸8&˜y¶QjÊr7ÊsKXò¨?À¿’âOÔÄ„kfÛr]•¬è_W: Á_ÍÕ‚!fw¤ä˾”=Óþ°'#%Û'h¹‡*föõ ™fÐóM1Ö®ää¯öÁ<[ò^OÖ$<šà†ýÚSìÿ£¶4ù™}Œž³)¦&,u¡=.¦øÄc£À¡%g(ÑQ'là-£vGard¦›¼>DŒ¾4qQ'ZRê·):äÒÄ‚ïH1!Bðûa¨çœ»-¥'wî^ÏÝ¥%Ù†‹}mC·sµ hoK[þ[ )êçS-#oœ’¾ÜÃŽ·Ü ™n‚}Zhƒyi¯?d¬âîPÅ‚œ˜´ë<ÉÉvd„˜“é7Õ +‹ÿk‘ÇýÏ—}e¡•8Æqé«B¸×Ö¶(æ”,ö¢Íu°RfÚãëÜ£ézˆÛ‘–ð7vS‚ô>7sñÓ•ü묢¥ð%?ö®„âûÓÎP–û³„ì¿WØ”¹~Ôg€×=OÔ\Ä×É +þ×¹2Þ·9äH‡ŠÚÊý¸Þ“ïzaä&˜h?åÕ®Œ0A‡¨)¹Çz°—%1†ÆdOMM„ËL{ü‹ tnÂg/uf»®÷ÃâÎô,ܱ–ƒtè¸p»…Ó÷@?u`Ãn)y/wœ¼µ!Œ¿¥!ëÕDyÒóÅ; '³NõÌ‚Ý1R’²:ý¥¦!ËÛ¡á@×…¸àõ¾BK}ê 9#ôÑ\sŠóW tµÀ&O÷ÃÃü¬W{c”ìMIì–¶ÞŸø…àÅÞ¢šª¤gSíyþ€‡v3ß •f}Z“³ +ú²»Š™»Ú ó•Ó¢ŸŽPC:´øäz>Ã*Þ3Ó÷M¤ŒËy&ñØL+¾œbá.Í· +‘aKƒøPcgI঒\ðu‘CÛ.u%?=±P‘G3¥¥'‹uû“⪒0ví]Ð'\"À{I‹]Åëb¤ß\[ú³= Ì{}þÙX{w¦)ñáÆ ÔëÌÈÃ8L<ŒmŒ–hWs +׋½vÿ½=\àiiˆ½§-ûM+Hô2êjªR°s7¦¢§+»ƒ%95ãLφï*Hñs÷Ó¹Ïw¤ÔÔU!!ÖX“õh¹½È è¯ÏK-PßéZ觔ž½-Æ…¯÷ÁÝ/¦8˜½qLèþ(ÂÇ&}>´æ™Ž˜r¡c‚*XS v™l}>UÓsc¸¨ 3 Yþ7×´%†OP2„èuÏU¼¤;§:&ì:ß]S•õlº9û™MZì¿!AxÍw|°Ôg¹œ™E›RRìš„q¿yl åÚ$Àý¢|c¤”#5§`WÆí*¸àùLÐB/.È®©+whë«/ÌUü¿WKKÏM„t›òÙÚ~oS2\DŸ ßMÌÉxîPñ»#ä¤} .Ú1е`"¶¤Å;c¸ðSseQHLjû-taÂ'[aÖÞˆKCqÊ_ËÄ¢‹ØÜ–ób±t¦¯àí©xØC=5÷jžŽ<ÐÇl ƒ¼ÇQÉW×ß%evá£ï¨h…®V·žMqp'zzîš8ÊÿòDÁó{fÎòøÿ­s9̲p‡JløåŸujaãϧxøC+kœ’`•¡{Áï®ga­Pã§Ú1Ÿ6$\ÐÎhiñÑz¬!$mIPK}Ð@í|:32ŠìZ>ÚÜsŸlÊ{y×ok å÷ͼ76 #y_YV¼>ÌÊÚ–3RÇÚ–”Ûǰá纒¸o&|úuOí(p‘vC9i¾æºÔû|e ûåRO¶óÎ06üLMÍþj¤\Ÿ!ÙUqòìêR8à]B&ëSï«ï­=lr”ÿj?Òð:1bz’®쬯ÎzäPò@GJ^á‘‚¶ áÝè Ûõ`ÏÛãŒÈ{Ûý'^ñbÌm©5ÿÅÉõÿ™å®&IY'Ú’øU!ĽÀ~97ëÍR7Æ{œŸþàP…O¸0³çvÑ¹Žšµ?ŠÝ¹Í¶¦?0–GþlWRLÊÖ6 ßÏ÷à‚öÇ)ÉGrê¹U´¯¸žöêÈgwŒœñm¾ªê@ hÇQLð¶ão¡}.4ŒÜ+ƒ€àаÀævðëe&äÄÒ*<6·Ÿ›«¹_ç.0ÓÎÔø„359ëà†­ &dr´4„K¸š,gïJþ6q¡ûÖ`ÞÛ•î|×c  ÛfyijIEÝs15ŒWR€újfCOôØøÕÁl—M1ÈíH]’üm’˼4ý 6pwœœü÷²€5ÃÄœ° ûŠ‚À鎤·Ææ„g3y¯ÿ^TïjÈšºü·‹½%AçfëÔÄ¢œ™XÇxI¬MRà{4†Žp(‰qs%OV™ñFU“å¤å NŒ\Ô©ºœf–|ã1·ÄØ…”÷u–òÙt}ëõç>v59åPIIünæ…‘þgކ<ÑÑòæz`žs½÷«XÁ‰{ÑYäu{®!ûíúP¡Ç›p>Í&\ÌUVnµ2ÛO»î÷“I.Ö®ÅÇï*à@_æ»mÉðq»:òP_ÅX“²sGx Ç†VB€UVÙfÄ^zø` ¾Ø“ïaC…©Kågó¥eæöBo] ØXײ³)ëÛWh±ê#3!ge°ÐÍ*‚¸9Ì „ÃRÆ]Á‡ïŒ“̴‹ss„½>D +ß•Qâž:(ÐG)'Xàë|çí´ÿö0à‹‚Ç +Û© +p¬ÆÇkù¨]9=É®¥çÎr°Rê +f½_ïKý}[ût¬¬Äœh»ŠRÄb?%fMBMÝQ·å˜ kÂ}µ¯ð½¡:í±¾"áÞ ë.Ì⦔’2× sµ4€~Qâîõã¢Í6xH 1úŠÜ—*fêkG‘Ûærî¾›¸ÔŸî¼-C|ÙÃ?m •„X ±ó}Åþi÷õ4ØÅt)cµê½Ô–ü`ª!õ‰mîmW¢ƒOuÄäc³Ð¦ddmÈI;êJܾŽSdEø¯ ä;«ÊâîMTž² +á¡5ùm®Œ»¯ÂƵ´?JŠ5Te=1TDÝÞ‚>l }ç»AN¤œË6ñHÇ‚ëJ‹Ï,<üê`»¹:é¾¹2ý‘±"îþRkâË &ñÜP†_èÁêj2î¯ïÓñ1iO‚ð?E…n@>oKP>ãä„}5¯H߆ jDFü| $%ÿôÏuž#pQŠ’ÔÕWë@êóÔÿ÷Лr¨÷ž±;†ˆ\çy(‹c¿Íð¯ Zwµø cè•m„œz¤gÀ¿ +u˜¨ù[£Ø¨ÃqbÚõœýoS\úžšCfç¼ÔT‚ÃO´<üº¨8p®-ë÷å>ð‡m9ÄË¡C†ý¹È¥¼Ôu5_U¿1JN¸Zªiµ)è ùNÈG}eâƒúœ—7eäÛ+½Pÿ‹…ê¶um9GSWøj¡xb<’…C95s('féÄÈAït ¥‚.g+Ê7Géi{€Ÿý6O+þk™Mû{¥¢ùj–ÇþßóT¬Üe /sEZ[ +r6$Œ¤«in °öø‹ÙòŠ?­u¢¿6êåç‹<Þ®ž’½1JM<œ¨æÛµ•õÞA¾ÎÑÑW‹¤Â-9™Äƒ¿YK+7]°¡àCM-Öªæo륂À“[*9G¦ëyMŒüÌoc8×Õ®D^éyt øø”3àqûxIèî(2`¡'óÃ\k²ëfÊÐþ%ÿ¬TÔžZ˜P‡––}=×òð,C0¿…6#cƒ·ÆÛêÖ'Úê¶”•Øu 5f± ñqª.õÁ=ò 7æá…—v5U%Ø×`ç„ü”y!;~uˆ½5LÚáCtÕ‰z¾ßØ©O‡0Á§ZJÆú>Ä:LK9Ô”¢. 5Õ'?nA}ü¡ýîcÕ—ß®æ9¤}Ÿ°$Än‰‹ì*r:Àa{ +¸¿}¼Ðg¦-þ÷UaÎÇ#€AÆ*ƪ„º6Œ Ü”“¶FH‰'RößËúå$«dW‚ ±Ô'>]í+pô!  _/´C½OµÌ‚kMvj ¥mˆòƒæZâ_.we½ÝpuQÈLS£~›à'<=¥¦;¤%¡{Â"ßÃX䎮.Kdi.xµ x®™>t˜±*ëÕÎ4p{$ßm_ù´/ÇĬ‹±á¦–‚wã•™Owïk£¦-ôä»Ìµç¹Ìuz­ ‹&°™ßf˜øo‹Á>€ŸV.Ün¨-sèÙÈ3!óTOH· +ÁžZdÔÖ(<`w¬8üë µ4ù¸!ÃD^Îói'fJ¡C‰ßy,ud¾™iM±§ ¦Ÿ[*y{ãô|mUÖcÛ.âXKÍ=ÖbbþY À®×ÐcØë3¡›côܳ…š¶U)5eº»$`YHŒšï.ô9PàÓ/-ÖÉdUõ¢”–¶$Á‡X´“IÒ*†ùÙ¨ˆ=UIⱑ¾œ¦þ¹,(»š¯¬±šdO…‰ýkõº/ÈÙ§ZRšciW]g/QsæêÊ=}{Ïl?%j®áø ÜÿÛ©ýc¥´êÀ©oË|îé u6Ç$\ÍóØW³µÍ†F¸·œŸòüPGÌÿ?[YóŸÖÒŠËEóЀM;0’sgøô«ÅŠÚ?–„g³\ÊÙ<iôÊÕ|}çÿμéËñ-)éD‹‰8R¡C÷eèp@φïJ‹¼ìJB╹œº§À‡¯ ÁÜt‰O Ua··º¡¿xð×{ h€S3g×U3wƸù¦æì×"‚ÿMceèÝad˜ÝÐÔ°2^OYWT¡¶GùyÛvƺ°$x àà!¨ç¾h“—$mHË!ViCÉúh=a[ÎËÛ&…mŠ a³í ë3Zn[Ý0Ͻ~„׎ùyMˆ ØåjK‹÷ø¨ÙVè§JÄ“!ràÃÍþ´÷—Ó´¢@ÙÆè) e×0‹V‡ +ßmI‹Q#ïtÜ¥GÞ_ì(xo7ò1Sý¸à!fÒ]Ss¡û±ŽOº˜ä“¯fx¤c)Ç*†‡mÞÒ¦g€M u³ý˜ˆ‰ê”׀ϊ;TaÒ.f˜D {ã°ø#]qÊÖHѧ#@3[˜(CkÆ{c}Ú Û0,pgîPã2®¦ù´«9ÐɆFÐëC¼#Ã%O7§¾Þ•úØy¢ež™8˜«¹ÊÚó…ªúu%´*çƒ×GùS·u!ìË¡Š:¼ôÞ8>ö|Šû{¥²áz–ê—w¨'mŽÂãìZlŒ]GÎu˜8¨U 6êÄDÊû¶È¥ŸéE&êë ìäÀÓQxSJ-ôÁ½V„—“ÔÂÿo«nø%áb†Vô·•Ëýk‘Nº0­M†ïŽá’-mà7KCÈ/'S,ìé³äÈLÎ9¥ &èb‘_þuEPy1Ë"©õTÐÉ$ú÷$ûßÕÚî‹™š»¡š¹«¤&îÊÞ =Ù/H>? Þý4Á÷ÿy}äq9YJÙWÒS7FHÛrbôáçB?íI@žKÑOMõÁ¿]Nsñ{×9»ƒÌèÕArÄJw¡Çé(äËÿ›!‚þo…IXQ@ý´­éof» +½U%6yY _m#(_MUü½¹ö|·#U-÷HÕÞ¸§À·Dè/›¢’€} l×—á7äôcÈÙ(Hy°7„ò9''›®ç"’ưa*r~¾Òõ^ï»ìH¾'z&àøÄ3K%sWEMÛ–B=š’ø3¯ä@EN¶d¸ZûÞŽƒ½÷Õ´ŒcSCóÅd»Ä®)Åî)‹ƒÿXfâ.çY˜ý R⺤8x{”·<„ZCÔÌÜc#µ« Æœ8ØC%1~_ŽzïýTc”ëþ(ÈóDGJ:3T²†ºJ;æ¶¡.çÓæ1ëHIÊýf&ä_šH9€oJœï*z·%£åÙ'è¹3íÀ=Ve>TW€]´59[_jÐS#­`e`/á€z«®>äá®æ8„33.é`¬$áÛ—õÏZyýŸ‹åU‹¢’HmÈÍ®åR.­xbá`vG1áãe1ÏÔá·w°/,ñu¡äPcïÊK“ßšzx]»i*ød(ò|¸ï©‰Vt9W^¶*Ä͵Ã<ŽÆé°ÿ,TTzîT‡I±I !»*xøŽžYŸàC$ÌÄQ~îuÖ\Ð7 ñÿ¬<Þ©Ÿxe!æ]šp™Öþ\·‹9.åt±ºea¸$v²;Çå|’Ž<ûïõª®?W*ZÎ-@ÿ“ÓNMÌ¢?—Ë+í:j¥á3ßžór®-ýù¾çÐ2ÿUò÷,‡tªÇe;tðÈ?–èè=MIÒöèÃrKΛ­!x ]O.pXx ØßVe6CIüTÂûxª®õÕ&Ù?¶ŠÇäõ@r¶ÃÀ°ž‹x™f d^MrPÇz.lWÉÊ´2Rg;¡.ƺ‚gú*Ð myÖË¥ØgûõyRÝuN:.Ô6JOÞ¥§L·e=W B~2TEß™xeC˜çx²¢½1dGÂÏt(Ÿ2¤ï¶8ëåñxP/)Ïgºcïëšâ~_( +<ÖTÑwÇJ!Û#”¨%'÷p‚¶«H)GÿË'Ąȸ!·pÙ“Ç_NUò¦ +ú¦Œ¶Ý¡ù?Þ—£W_½4H‹´´ \,-H×= µ",r<žÛzÚ˵ޤWG˜ÄË)éÛ\MÓŽ‚˜¸.ņ_-”Uü±\^sn¡ƒÏ¸äiž§u áÉ¡úÿÏÞ{?7vei‚?ít÷t©«§FÕ¥2*¥LJ))½O&ÓIï½á½÷]z#¥Ò&= Þ{€ÞÁ{O2³ª{ö¿Ø½/kgvfb7b~؈etð(ž@ ðî¹÷œï|ßÞ;ä +p¿:†8ÑÓ;ò±tomðÉê4£I{ydmŠß—wˇÿ²&½»cg "ÓÝçV—üÖ ¯øÂõuc[7Я{Jº®jûºà–ÈÿukàùŽG ݵ1Hqe_u`¼éÄÊ»–o£V>ê¿í~G¨Ÿ¨ú]aUþhouä]ÁÃë(Ñ+/a?Dto1}s˜K¾iÀ'”Ø«Q¹6¤¦4§Ílü.Ð-æŸçuÇLƒQÓ@T-Æ%ô\ÄÆ4ì„oq~sY ´q]ÖÎ#øèõq³cÇÎsL¸™ÃoŽuŸˆ.€öfÂ’)/¡¿sßý~m’ÕÕÒÀ§5<ƒ*€xØ~;³øKçwY½„UpÝOš$,ÿ<µäbGxѼ=‰¾˜F”«SÔ}ïø¹ýûuÀÛ·”\„ p<ß4¹>ª±be¡wœB^\Ï"y^ÁnlMvŸŽê(ÍçÀí˜yp i’òR&ˆC#¯mN´ÝuqHI#‡V±~%·ki‚ÙÒ ûÕCü°Z„ +«Xí[S˜ß,æzÂÈî5ˆÓÑÛ³Ä -t][¿4ª&UoŒ÷ž±=,ÿ£ãq÷‘¨F@λïÅœÁøpËï5?}§–b 3nµY#@nk¨-5í3Þ}蘾Å~3Œ8¨8ú¶—ôÀÝØà8ô¬•ðÏt\Šé©­!(WÕC>ÕÍaïkÒ¥µ)zMÂ"â$,LÆ)ä¤|vÌÌBû”ô0'}ÃÀpÈ(å‡5ÄÊà,¦88‹,JêÑÕP;c¶‘ qhÀ;Ák]Ÿd4Xxœsñ8«oaG7_ÁŽ;6ž\{Ótå½—Aÿ×mÙãü¢¿¡ Ô»ÞÀJc&¾ÈúKïõ•·€»ôUeì”>0§¬ J„Ú˜áw€Ï«p¿ÀœÜ˜ã¶n΋z·¤˜ˆAJj%DŸJ_$]]~‹9íq¼ü–pymœQ¾üš_œ•cS& Ôa¡_E­¸|ecœZ²5!hÙš¶oL°ª6'(×·ÆÐ§ãFjcXGoڞƯ¼„UJ*~½ ¾ú÷ËÏ:¾‹ÝgWC±Õòû œI™=¹!¤À\]~ƒ8î~‚9ºúŽ t:æÔÚ(òLZËCÄæÉÕi ¥!4ƒ¼¾ò¼öû­·]?ø&Pç“f20O.÷ÏK£ZvWÒÄêâ½àâ3SrçÆ$ü,àZuIçÍç!ÛÐݵIfmÚ" „4Øë)3±vÏÃÆî8Ù訆Òä›AeŒ”攉 ¸!âLtUœ_Ì鹨¿:oíYGî¥ ràrµ~·®ãß.m!ά¿î=òäBBAmÎèûÙ ­ˆjeÇÖ,­"c•ò"Ðw0ï`'¼Ï¿p?oûaJrõ?M~2¤ ½Óìf×KÚ¸~h mèOè®ÔûªãÇ…¡Òßú¦;Ϥ­Œ¾œ[*šDä¸IÈȹ>^sÛœÇ\/`KÖßuŸX}Ûw:fR2®;q“„Pðº ïƒs1#¡fwÇ””Úð¡|c²ûüâëö£Ð÷»vù`Ö.½Ü쟣¶­ŒÂ¯.¿î=Y°ó¨YŸµ¦¦ÖŸ#O-MsQAÓÀ@Ä*FAŽÄÌR~ÒÙ?˜ñŠÄ~“„kãÔiŸNO · C·RŽ¡8ÔËJÅh[ë¹’µ±IX–qÝ +¨Åtï‹Þï–ޠΥ=²;~5½-¢£·DtÔÆ€ŠÖy’…¾ÃðÞ™X›ç#ýó„’´…ʹøÔŒ‹ƒ¾·‹X34 2iæ¡w—Åý› +bƒþ^÷A43ggI(ÿË*G7’º‚*P—­Ô¶½e¡DýVÆi<úº‡m•ï×ûú/~?¢¢5<Á†µ¼Zð†ÓÖA= ¸]I«„´Š~•¶=ÏïôÍ º×'¸ ‹ohekÔÊm»Åûš|Éû²÷èÆü.ëþÓÖ$½6]×7¸ŸG\:óÊÒ+â… zyX)!¦-ƒCë“ä@k¨Xð’ÝÖ¤èpvÊ6t˯églÏJPŸà­Y!Ôèr³5 ©!¡§£>,ò9;^%¢Ã×­ŒõœÜ˜Â•dò”]@‹é­q «'ª"ÕFÕôö¤AÆÝq y Ǫ]¿´|éyÖ{ts† +¿¼ø/¯×ÿUb*ãZBsdŽP5°zvl"FÊÈ'„Ô´ætý–ºŸ¹>Š< 8È•€ +W4sñi§D¾»<ôtwUrsc_2p0P/¿–… éñÕKSˆ3KSèó~ÀÓÓæ}£n¸â',еMw_$\ƒ÷ ^!?¡%4FÔ@‡+¨Õ~¡4ceá Ëý÷Uw»¾Šhé=ïWE…%À·–„¢¸ƒÏØPsûÜcôR¿’Úø—õ¡ïW~‰›9ˆ¸I@È/ »ë’‘ü’H˜q0Û*\ÉÊþš_ÍÂdÃÒ¶~ 3„!¹i{ŽÜ5Ðz³.66jà ¿à/O¶üÔ°ïWÙŒ¨º÷|D…¯HÙ½•Ö3;s ÷ÞÛäò‚C.OY$  {ʼ/QÇ×Ç)× BXD9ÀŠB硾†³8Ä}±1A( +.0Àûj—^ÂŽ®½Ež -Pª€>ïØ'—,¿Æœó¼èý>2G­ÉÚäý£”µ9G«Þ˜"ߪy°ðgË´JÇ äIÏÜ Ó€× ¡¹ò+v×ðzƒJN›ož^ã[ V”ô:ï(þœožQ—²ˆ¨Y;ëyRÿùÆ»¶ï|Óð³Ë£ˆ“5¹ÚôÔÒ,§ÉúŒx* ŽQ2{—_w¿ö¦ëhXññÚÊ–”žÏFî¤ <,ˆ÷*P[[âf);¢ vÜ ØŽ‹Þ4Ñ[w<?ndölÎKV'È×¶çi5 ; ÷aKп·Êfûæ‘5I=h2tQB‹+ù¸8ϹجEDC±²@ªÞœ ”@¿é ¨°¥“]'âZR]ÂÄE•‚^ÿ,«~c]äxÒôùÊ›Î#i3¹1ï ´ï¸ÈÝi ¡mÏË£å<ИبŠßZ 7nÍË ¼ÎÀ<§ ¿7k`?ê§Ýû¤ó˜o +]’0²ºã.:f’ûîßÚœšp¾bkŒU¹úÞt¯ñÏ“öoÂó¬&ÀK@­ã´¬ÏñZM?cëïv}>ëÛ„’Vš§µ­N˶¿ñ)ûÉ@ö®Ìr×fÅpϨ»ôN„9b•ѽ6†­ñ/°º‚:1>a—÷o(8mÞ1Â¥µYZ•ïão·¨q µ.¥§¶ÞÓY`6¬ÅÇtêÖ,Ðà ŒÆÕQܹô]˜‚t#®ãÀ¶§éukï—âj>,¥ã£€ö¸ä}ÚòÍÊóîãÁ9ø™˜sà&2eãbAiMY…¤´‹êZPÑs)m`tEØí£„â¼Q@Ý]¾31óèËï'¶ç5Q€¶ȳ®þá ’Ö¦©>¤®øäfOD%"¹_Â\Ÿ •C}„ý³ìö,Àñ”YÌv?CR 4þiŠuåÓÅ'°2°6-Ž'ÍÜœ@§t\dÆ($æl<®GÈÛ]I¶˜­‹¯(%ÉçǸ |Q:߯eôF5l\Á.‚v3bâ¡ýF{Ü>ô(ã¼5r)©&®A__{ÝwÊ?ÍlO™äÒŒsðΖÔD#ŸqŠö]‹é`Eq®"i&ÖùˆËk3䮤cè'À»†“N..ï~’2Á|•ç—æ£‹O¾¦œøçÛÝŸÿíqÕñ›Ò»q‡€6j~I2’u Xy¯¤?ãâóü ¸ëÏ-ßY¶}±=CªÌ{D<ÅHÍW+ã}7Ò6&bÏÅ£~p0‰RŸë—®Ê—Ì+‡¹uŸÿo)½—2Ò;2zG\‡/[k?˜G_‰—°ð° 3üoOXúšo¶÷âŽÑ—µB=à©`ý+€žmØš&Uç¨u»N&¡Ç”:ùÝ'v@ Ûó +˜€%q˜'•oÍ /…Õœ.ŸÔrUèl€«ÈÐ<«Ñùs÷±í Ìõ¤‰Ö–s2á1# xl[)„uR²O%ÅosjV_‹TŸmŒ¶Ì*}SäJ¿Šß³º Fx'Ä=küóM㯺žôY| ? > 6ˆ)ë +zõº‚ÓPÞëþt< ¾=5È›S¨"˃¦Ï³Ôú¤QLɺĂM¨?±‚Ý4ö‹¢fº®xs{yùEûa 3ŽFU¼nsœ(Ð[3¬†¨ZBÌ0jFsxžP±þQ´ú}fmw!ªäu'µÒÖ¹ÔóKבå—ÝÇcj|y\ƒ+¨Ðå¾¹Þk›ÓÄÒ v€5Ê6gp×=Ͼ Í‘+Cs¬fÿáÚº·4ü»×}æïÅÍg>¹‰¼x`!°<¬£5ÆôTÀ]%I=hybmwykwÅ?M¾V0rvõ½‡GÛs³±i ½=¬¤Ö„çÙMi™5Šˆ1%»=màÀâfgÒÀBdÌ\\TËjØÝA¬§%¡b£€C…4¼nï8î’áaÇW!µ6gáá‚“Óz+míI®1×£:Ì5H€zZ—0²a hfML-@†•¬®¸†XiØxÈ~·õK wº" =ÔBXÛÏŒi¥ä˜NH‹êo¶0 ¾Ö¯€_ð-›²p0ûÈý¸éÖƒí>Ÿêp÷ºÐ<æÚòëæãî'e‡B`½A=Hy†~òéøh¨¾­EN³:ÃÓ´ÚÐ4öš t¾$¡‘Pbº‘á­ ZÅæ(öœùNãçÎ{ÍŸ~_–ÔÒ[ Z(‡„]ÁYAoÊ ¦%uœîíIÄEÇ£ŠßÛ–ÿ!¦¦Ã2Ž‘Gi»LѱºB*>.nìÞËLi-‘¹¾‹qµ9r0fsÞ›¯^ß™úQËÐPDÏ…‡¨µáy0Zf÷Ö$£võ-£4¬c6&Øõ‹/[>ßëøví-êäú(£bsŒ×™ãôÆ”<ÄÚ­Ìù}*¦±ALà×ßÁNmŽ®„Ôô椅Èy…‚´mø~ÌÔ/Ü|è.VfåÖ8ÐéÄÍò ¿_ž³Ò`{noäMÖ!L¥Ì×ÐÃ]0q=êd{Xóñ»—âØ?¤¢wg²œ§8ëæ³rîÁ‡)»D´òY—–´pIIPc#&Bõö|ßé,ˆß$éÚæ8¶h{šÚ‘Ðñ¨ïÝÒ›ÿºÊæ¦-èúÍiJçåŠûõjÔxó瀋ܬ&¬föå|ù‡E?2ÏlõMý;‹+^›@œŠé=Œj¡ów]Ç–ÞÂ/{FñÍ+ólLÌ"íÏXˆ•Q©¢r`Ç.åï:$ü¬U@ܘ!”,½îùvåEûWþ·}gRjl펓‹ßõH„»^‰(ãàb#€ë†ga§"sè‹Q%îJRËhιȈç¤Ó“:'gÒrv-iduE4¸a-»#¤–`#Ún`~ÓQ)£˜V±Zâ:VGÊÈEd,"Jä»åqíÓÜ“o¸ñŸ +Àx,¦åáBjN¯_ÁiõO º¶Ç)e®uÞc ŒãŠâóÌÆ$ЩY3–qˆXI;ð©#ªe´&,„ººýLh¾ùÈæxÇ‘ÐK¿$mºýد¤µ8ž5}í}Ùø½VœµÐz€žlµõ†k{f}†Ñ´Ú@DÍë³ýÜõûçú¯Ò:R}ÞÂA%´´ÞIT¹ç%˜³w¤«~e?5¬ômLJç+7%,ýGÿµ4 t@R êÖ8Ð8³¸k9‹€2òaµqím㫯¾ ÌÀN§ÍtÚzëqÂ4(hùÈ8À²Ð´?ˆ+#¥'<×]WaVb6­Î2êÖ~Yäœ÷¡hAÞñ•ëAç×I5òRÖJn)¸„ܨ^DÜžcÖ…ÕRbP9Äi9ë“ø«Ö °Ümøå^Ãg —ÛsöþÁ”MÌ͹ÅüŒ}øˆÛ;…e;ëa"7'¨7Âj!:i‘K2P<»$Ãa º'<çy‘÷J‡v½<ÖÖ,²Âþ íÛ¬ž°H~+m‘ÜJôºŸ–0Ê…I“Lšw‹¥Ödw@`"K£ZvÏî¢Xœ´sð­ pÕÚˆŠÚ”s°Ñ»n%ï õ%t¤¦Õ·½ßûg±×ö¥·"Z›÷uÇáÅß®¿ƒ_>R€þ”eÌ#÷âúÁˆ¥¨SÄ/¬ =ñJ†®;yǨûåòx +äjÆHëN˜ä¤™ŽZŸDŸ j˜­1æŸB^v=nø³ñÞõOÁ>m3¡:eÄ•%A=Í[ø„»L”·Ë¥a»Óñ¢ûýªÿ¤¼òžŸ*ÿ°ëä‘ö¼Éî¢Dœ±qPÐõË)5«+¥¦Ö…½§7Þu_ ;PKâzfëžGÈÝóŠ…9›€˜0B×tŸ ,P*#€›çlnÖ&áäl >¶¸J ƒõŽ,«r]LMk ªX­ËãØëîÝç·Ç°¥Y+£wsºû¬çeë·P¯ï9AOP9ÀØšf5.>A^ŽM“+£Ó¤ò•gíǔ³Ÿ®…¹=ÅjHj˜¸†Þ²=ÝwÒ?‡<Ráo¤Aî%´Ìö¨=´€/[C^Ij¨­Ðyž°vÁj„ožÓ¼5Ão[Ÿä5­¼Äv܇}=#(û§nɧKÛ~ÈšH y V“«7gñWÀúõĵ¸ª vnñUÏ÷£¨s‰yFSè”qp0¤bWƉW_¢.¬¾ê»œR+Ó:Jcð–õIè·¾ØËq5¶5Æn6Üìû20‹-ºŸw³p‹Õ ËCJb}ÒÄ„ÅÌ\Ürë‘AJq>Ç]\~‹<³5Ñ{6i"µæœ LÎÅ &Ìô¾u€©kSÈK)»ˆÔ±{×'Qg}ÓèK±R]ÆN…}Xåñ÷–„ýa#›¶¡¡ÔA÷}y8ò¶oé%ì„õaë±ÅW]WÀ›tbÁò;l‰éqç‘¥ lÕÎÊ]eÌ f®¾Å^]}Þñ}pºãG ™ªÓ6iweàQÆ.à®NôÜšÃWE \ZÚÆÆà—*8Ðö„ê-%üì¶u¥àK6ÇLœ¾¤™/xÒœƒKIëM ¡1jf£&h䣃*F³ +wiéiÛaÛÝÚïœÏ»+}@χõtè7(p×s|‘úVï—a£€YX” eMBBÆÀìŒÏË +fjÏ)dåÍ\dÖÂA4Ôº Z‚÷+ú  ž‚¸B¥í}Å9±qÇÅ@äí|rÁ28W2Ûâ*j]RÅîL+…¨Ø¹vùYÃ7zùÉ_/>¨>S“j²v>©àì—§MøÚTïIç³Êß…fÚ¦õ„ò‚…ËÛ„˜ŽÛ†®yã‰(P}S &gˆ× +jUXÃjO[¤l ‘ÙiQÑê_À¤òŒ™Ï˜EÓý®/Œ#˜WžñÃÓ,ÀWÉcMG}S] "ÔÖ¿3©—ó“†AÉÚ«pNÞ%äÝ|vÎÍ£^ÆYp÷ä©À¤ wé ¿SÕßúǵ˜+iˆã©©Í9ÕǬM@Ùš ‡¤3“2ðÑVL¢/n¾ë94Ji𠋨A•¿>Áªö<Ô/¿áµEæÙ½¶DóòïÖß6Ùž„ŸŠêè1ƒŒ¿=I. Ͳº’!©æ£—Ÿ¢.MðJÿ<')ûÒûš|y øà×ñ›3„ë¶ûÍ_ÆUά…Þ™w0à;NÆ?¿n¹×ø¥÷öBÒ"á§œ"vÊ΄ŵ„*0§Eñ%èFÓúD÷šÁ’_-?í:š†®‹ã,”òvè×Ö¼CÌÎÙ„ô„†Pµú¶ö÷³ŠÏ6ÞàÏGgeبjDÕ‹‰1¨¦ÎÑRj>.cZ ï›Dœ ÌJB ¼Î]ïð/;^ù,ˆ£¸…Õ›¶±`H }Ó±‘±JÝÖ; ëæÈ5¼bYÒÌèÊ»¸Ä‚‡Cˆé™Q·+kºZC¬Z{ÓþmJ‹¯{ï‰3z cýòÂæx×÷Ðul«ïHWÖÆØU!¥Œ¸<Å®÷Ž.f)•þ)bùžƒKú뢿ëâÑ#OBóôº¸ZÎÉD˯‰TòÎ?Mrk?\òtÖÔÏË;dÒ”UHYŸ#”8Ÿ÷žJ@çI€Ö[Ÿ„ŸYy×óÃêh÷›ˆ¢¬E>œrwó®þÃæÀó¸Ð¡žú'•¸ôÓ è÷KjzCÂÈA€ù½è›a4åBÆ®‡K·>c긺üâúWO°_ýÝædëw¡Yµ‚‡,9°‚…Ý—32;sfBUÆŒ¹žÒ£‹ÓVzÇê8¡hcŒ×VÝ’åbÖÞ›ñ›‚º¾sÖŸš> ¼#•å 2–çîÊ´¨ä÷iTW ñ9Nó.¨}y;©1c!Tç°E!£`—, xuBC,[|uã7®'×ÿ ºcÂÀî~ƒ +_ߘ£U..­RJÞÛÙ¨ÿ}™EÈÙ ÍAuËѵɊßœ;µç‰s!=4O([|Þxhc´åpJÉhÚ1Jèy»”Ô±ÚRf15o¹—w Ý™¸èÍÉÎ#«¯[…æpײ&){×#¿2ó±) »·$ÎÙ9˜¨mùYóa•üÜ'ÖÛåÿf×ÎBÿÌÄHmÜY°?¬‰ò© ´vÚHïÜžì9>Î>õw–»¥ŸçMdx†Q tÌwkoÛ¾öÏ .žߵʸ{v1; "W¯Mc/ÄôBBÖ"$§MÌŽ˜–Z·2ÚsdõmÇá±~×Á¹Êî…έ‡_‹©x=)-¿/kØm¢ÔÇõtÀûY­;v Ç!¦AÝßRË#Z"evœRa¼1òp~¥úÝKtt>½Æ?;¹ü¢éóÕWÝßçìÞ²t ï• ¤Bfú¾U?À ›ú9™ÅÁûùEù­8àL[ +L‘o}1i2Ó–á›Q ßá.%,ýÒeéPXÝWb¸ñë­ÑÞ£-âbÔ€¯„æÛ;I+×ÿD9»5;$Ê»n¿ÍÝWužØ«ý³ëi鯼’³JD;KC¿¸ßb¯M +j~³=ÅnZUüo+?¿÷ðÙÙ¾ cÝÇ6§Pg –ƒµ"­¼Ã-C÷ G•lé_¼Yh¸˜]f{\ùGõЕ_' äÞæà«œWȅ·DfIu€;Ýü°){°ëâRòfv˜:ÏSÔÑ ’ÑV¼Èû´õë Ωÿ`º]ú‡ÍÑö“ÿ¶ÊÀýÿN ùÿ÷þ¿²Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfÈпk8ôïÄ~uøp9[†â¢>éªúäpIõ9xÞ‚âpqìO>9Œ8QÂæ–‘0\ƒŽb‹—N?}öЉŠzèÈßö<v:ÔÈ&Htðb+EÅ}è(Øõ2Ø>9yèÔ¡“ÿë}rìÂÅ gŽŸ¹páôùÓ§N;{ñÐ… —Î?{æÜ¹ Î\:}îâ!ÚÿãNç.?}òÒ… ç/^¸xæü!*´ÓÙ¯]:yòâ¹ó'Oƒ.~|ש3N]<{êìÿËNÿÓá¨ÿ+c¢~Bü¤óú'ÍŸ\:täûC]Ÿ´ÿwy»Í[)›Ç!6¡¸`Jè{±æäxùH;Ž¢á°‡>¾z¼|èôéó߃Y*[—ú÷ “‡jÀdð’àЩ“‡êõö<„…öoFñ4âs›¹3ç_8ÿ·çuÿýó³ëþÛþÿóóûÓÿïÃÖÅ)hã‚DÅýíÏÎý_±¦ìSùɉ2Ÿ„Áݨï®=ÔÕðI/xï±ó·ÿƒg'ûܹ¿-ŹC}‡NŸ<œ:yJü_z4 ÿú¦ÿúxñÐY0€S?Ž÷ì!è'?9|øã¡ð.:tñÜéÓ>éªþ1§7e”Pã )¬ävçYí5£;ndtçÔŽ”WUâ+ãzZsÜÌîKÙD̈–Õ³5G( .PªC󌆤ŽÎE””ABk¨¸ŽÛ 5ƒnº»¥àwoNÑ—_ãË·ÆñeÑybY|XžÒ’ªc*Ôå´IHŠnß‹ïü6ˆƒ ‚¾À ½Ú?- +Ï@ °× +zmJ)DdRÖÒjÍÆ³)aàô•˜ëÛsÈóã='bJ|mÆFm+ñ7’:ZkÚÂÅf¬bfRÏh«©uQ5µfs s!¥bví9úû³f.¡åô% "zÖ!æ$Ì\”OA.[‡Ÿ +Lá¯Gf i½˜W Ñy Ñ7.„§Tƒ‚ð,ðgszk´ëÛõ—Ÿ‡&úÎ¥Õ¬öŒV„ÏEäõ Ĺ姇7^ÁŽm¼…Y{Óú]xU|hÎêÄÔ¨ŠÑS³;S>g‘ñÓ6ù@XÛÏ +*edŸ‚ ̲`ËÀ:i¢wå­<؈Y“Ð2ZcjJ]LÃî©õq«=m¢µ­L´ý°1Õu:k¢4ÌÒ®CÌÏÛ$ÜX“ÍiBéö ¹&i”rS/¨¡Ô”Äò(˜£¬ƒGÍyDü„E@ÜVQš9o—IÒfX*kãÓ>5 !ÕøTøŠ„‘ÈØÙè]§õÞ+¿·Ž[pËäW¿)ïâà¡FÝI+£'mc£ò.'ÞS3ZRF)m¾ŸvˆÙy·XXðÊÓ6&a&6¦¬ÄÖ¸‰PQË} +bƒênóyÇc\YD;$K›¡†Ò¸òÍw¸âÀ µ"msé’ISN6m¥µ&´„š´žÚ5?Çc‡µŒ–|ñÆ©,fåãÖ¦ðWÃ󬿴ĈIÊJš¸¨¨šPQáË‚li‚[Ÿ4¤Ìƒƒ! È¿yÄù¸y9cÀ•§õز„žÖÒÐ[ÂZ. ŽIÈ •œœ%ߨ…ý¸ü¤á›¯;~H)ñ¥I5©:¢¥ÖÏÜ,ýgÝHÍŸS \TÎ*aÈKÞg•¿[{ÓðeZ‹/Mk e€5«„™² ¨éÅdž:ý¢]üVÎ! %-B2ˆFÞ=x'ï–§- ŸõÌö˜ŠÙ’T2[s&vOÎÂèÊÛ]93½5¡âteVÚHiIjˆÕy+ˆ3—³ ©Y«ˆ–µIyYÇàHÒ,a…µdL'%§Ì2nÆ%¦ÝFÒ.¤eAœC¹t0áî‰ÞãKãð3yüAviàAÖ#•å½òÛP“¡œS"ÌZØð¬™Ú”4âJó|]ÞElšáWCzäu¨)]Ê* &æÄ ô¶´Ú’wRÚòZG\O¨ðÍ!/%t<\ÁzçÙŽóΛ´GëÉu~5îZ@‹+Iø]ïÐÏ wEY7 5 È:7G¬rÜLnˆÉuQ3™‡šN8yT0‡øœC>˜±É¥›˜Yp±±]å±ó..9c³&FWJ5rç¡âVyÂ"fCÍÏr^ù­¤…ÚVôßšëüa[Ñ}4¢#U»G»‹F°?þj’Ûx8gÿI˜Ã•@͹—ŸôŽ*(Õy‡ˆ•óˆùi;±ñI`í„;©°à13V.f{ŠR²=K«ëyˆ€‰Ù;7RóÙÆ;rEÎ(cïØ£&z÷úXë7[ãßE4\ÀGbÚ!ïšÄ­Y2˜€)&fOÁÂèNë •yä…µ±¾£þyrUÔ$¡oÌR«–^ m½¥\‹Ló;âJz}RCªŠ.nlM¢Ïëî6ÿ~} 5¦`BZf»o¦ï¬¢ûlB­Í9ð”Ñ–¹“ˆ=ZÎ6|'kèO™¤ô¤‘ K›¨­'¨"¨;´Ž¤•Ø0pQi“\Ñ 1Á9awJ'ƧuœßtßIçÏ¥ÿl¹SñÛ펯bSRBHÁïÙž –øÇÈ×Bc¤«)%©Ò7ÙyÔù¤öóÅ×Ý?µ~é~»1éq€ý¾lñú›žó¡YTiÎDªË1×3fR#Ôˆ!êˆ%ÌŽ«¿Ç)ïzD‚´…Þ‘y“qHx;P¬¸eý 3§/mä"v,bÖ«²g§¶í:ñµy¦24Ûy2¡`uçLCƒa ±6<,*8ô=Dü×ÙHÞ)d&Í||Ò,å$_H˜…ĤIBM‚Ç´`¿W:˜[ì¿•óöå\bnÚŧn*‰•PW@ŽÜÉ/õßÛÍ•‡…%ùݼkè>È=FÆLo‹jE)²8aB]j»Ïµð"¨±G¬AÚÊ'¤ÌlxÎIïÍØ59`4ââÆdÇw1£§`»ý<çº7ñq«'¦§w&-,DÒÈCåÝRYÆÅ§§.ï,¼Ê{n½IÚcV%m'5äìäæ‚›…ɺX„¤_ã×’jNßæÀ +ûàÈ_–D¿®²)I £3aä 6z÷® _ø1°`]9×Èã”C*5Ö‘fZOÂBi‹)õ[sˆ"Çã†oÖ_ÊóŽ‡ þ)fÝÚ(æ\p–p=oavçÍÔ¶¼ ˘Y=9›Tµ ÈÓ'iSãZNwZˇg?Ʊ¡"W©ï¶|œew¦€gé8}¥1¢Â–e ´®+Ô”O‹™Ø°mÀc6§HWÓ nBs¬Æ„ŠÝ–ÔÐÒ¨a2¥)eæ Sv)oy _äü¹ç«QÒµåW”kÛ£”’Ø£)4Gº˜"‡fÉeq £%idvyFá§¶ÞQ@~ :.NÛ™°ˆ{-e¦6g,ôv€×°¼`†ELKƒ¸Hå¼]ë{^2a•G4¨¢˜ŽP–0PÒÛczVgXÅí (˜MÁYÈKjup}Ù7Ö{489ŸR±;6Ç‘§6Þá/„f蕛㴑 NÝ꫎ïôwKþÙýKßjVgÎ(aç¬RÞÆ¥*ª wƒw `=JÔ•Õц?oL¶\@U”ê˜j$ÄÃ&ôœž¼UÌÉÙ¥¢g?¨ÙÜŒ…ÊØx¸¤‰Õ1óЋTs¹c¥4œ¸ª´QT4|jGMÄÚú4üLx]¼ øÅûE‰ä=ˆ•ˆå¸ KšEÔ¤QDLš0Ñ[S€ïd\BV~Y~?ãñ2n± ã– ‚¼¸•¶s±q3ˆ½»$‘ï.‰Dy¯›ù³»8ò"ï’É¡~Q ¹fÇÆ§ízø¬¹ãåÑsN2¢¥Ô¥§Šè-P#ÍœYH/X…´Œ™Ñ™2boä¬Ì¾¨7a£#¢à¥-²¼]Ä„šJ%Ì| +Ô¿¸Õ—°rÑ»+ò‡ùE‘(xÑÎÊÐÓü"ÓãËÀ·¥¬”Ö‚‡…i­ËSÄ+«ÓÔ²¼søÁÇf^;s²JsÊÐsn{º÷äö þjÎΧìxe\7³®Á»içí79Ïðã˜[çhß¡üµœ‘Ú²ã±óKò{!Åþˆpn­!ª%–E”È¢œ‰Ú jygÊÄê ¨HåÛóœÎfDÖK(I-³-¡Á•çág7¦pEyvKÔ Ä¯+ˆå®§MÌ€:œ6ƒ˜4 Q5³5¦5@O¬Œé¨ i½Ý?½ºò}*¡â£ö샃Y¨É½\Ö+":jíö4éªoš\âGžå#ø‡qzå³RlR%ÁÇçi5ÑìÕ-€ï«c=G_õ+èטIpÜàÌY€1IârTÕy<¦î>UÃÏG•˜+ ¾¥fõlOãKöÜ‘¸ëbãÀºu…”Øâˆs9®Â]]€ŸžªøùaÇY½Œ×3Z}3ðS+¯Ú¾\yÑòùÊóÖ/|øâ•)lÑéÔ?.Ý'—ïšä¢,ÀŒ¼•Ü4AKXC¨ð« 7BZÀ<>iâ€{Dµ¬[v\Ü8vÞÃ!f\Ú +j*˜ë¬éþ›´upÌ>cá ÒjÛû%gÇËÂäÝ´Ÿ +Wê›a4¼wÝ{¿,¿_¢ö¤Œ½g#ªÞSa%à°:ü¬•Ñ™µq±y§ˆ•wÊÄ)ÛЭôÇFÈC·3€ÄAœFMÔÆˆ‰Öœt°Q9Ÿ–s YïH9åCi»ˆ‘sJ…»‹RÙûeéà³$äç= g@XÎÙ†næì7åÜ÷¦ ž{;KbQ~‘ÏÌ€9ù×–±²Y«€š¶H;¶á{@ F+À¥Ë@ÏT'Í´Ö°–T‘²IùQÖRë²!=ïþ¹à|5Ù]‘ ä9””‡Ö[æs3‹BAÂ4‘säç¼ëÎÛ÷«òG€“ñ¢Fˆ§æ¸¿ãéI8HAcu‹„@Óu¬ìM™1 ¾4¢!–Çäú„•Þ“XqÞ|’uß[¥ü°žøñàð§|ø¯‹yÔHn¶½lú†>÷tá×XÑ{À…V’’"óðY´–´™ƒ˜ÝájhYPçÑyPâV!)¬&×DUIJ$ÀêàžÀÙÓr}Î!äWøìŒmp$cºYñ™q°ÑI3©6xÍÊxçwþYZ]Á%¿™t2ÐY;¾c£Ã@ý‡ç,€«˜Hµq#©&m§´æ=LäÀÉœãÖÓ”uä^Ò +4¡UŠšЫÂjCäJH¯cÄî-Kä)€¯Pì-Iúw¸¨9 GÒ@ÃCMý"zCDE­ñÏâ.økI­%kaõ&Œ †¨u‹„™4°{6'á'mj·=†<åŸÀ^ð<î;‘TsP»N± q&=“5JÙ³\š³Šè=¥.jèÒ‚CÈØ]” ŒŒ®UðÞ¸ð@ÇÀ­ˆ‹´ÔUß…˜_“[eâ2ž¡GiÇà-€ÝœÀfk¨4¤aŒh eÈ9·Óz@ÌR?-±ç‘Ê¡Æìz€ í,1Ðï×(Ýïþ2iÞ9x;纟~€µîŒhÍ13£ÃxæÊtïÑÀ’‡Tð9@ORVZGÊFïʸ¤²¸M@ÚH”w ÜÊ8Ä쬃Í9Ÿw +¨§y)±³Ìgçy@ y·›´1 Ôu' ¸bLO©5¤-8oDOm ( %Q=µ>a²UD‹Œ(q׳V6& öÏyú³n±8ãdãvWÄÒÂâàC¨¾äå· €ûE⌛ƒƒêÌî"¤‘ú²™( ølÎ rÅ#‘úÈH;Xˆ¨ŽÑi£˜•ƒèIµ@[ƒùyœóÜ|ž_‘ÿ”± Qµ5¨¦Ô&-ýò‚m`8®eâ0W ®gÝÕ®Œ™Y]„õô¶šZü*8GªŒ«Ø°¬C@ZxèM ­Îþ¬÷ðÆ(þjÆÊÇØkñZcL!Bf…=«£‚ÆÍIäõãùØÉ¾“I KWƺŽDUØÒ”h@£ç/6!ò<¢!×nÌ¢/ú&É•Yý $ªÀ#*f³ošXš£Ô†gÈ•5½)£awnŽõ±Ü¯ù—·Ès ?zRjrU +ð˜à,þj`ºïTDµ U”œÎ?K*ÍšEÀƒQ ®»3&!1¢Ä•„ç»%5}çò\y΄-Í‚z»ãpŸ°’ZWs{2f>)°oÇÅ#ç´Îº÷TTÍF$M2q`ŽVêgkLÍB¤Ô¬ŽŒ–Ñœ˜”ÐQ[¶ˆË«ãÝG3z5c”0Sz!!mâRzÀ™l|Ò_%Ò÷^1àÆz@OiXÂ% "jÎ=òKÊÂŇ•P]¡·'M|rnY(Ìx%R›”¬["J»n¬–ˆRVRS\ß}:n„Å-„š¤ƒÚ^˜»³ø…wð§‚sl7Ÿî¸n¿Þñr©…%R뎇ø½ ¬!=ï’Bç,¡s“й¼¼[Äüªiõi+­sàuÁͧ¥,,XÔ@®Í2ó±[:PGM€_9ïç\Ãòn!ãdöåÜLDztrp)'ãÓB ‹¥¢Œóþ\h‚¬«_xèðî¸Þœ0ràK¿0 Á–Õèk€‡Ñr¶‘Gõ®O|jpMÌØ…”¼gð>ðYu& GsÞzš÷Ü| 5{Ýü/ïea³P\’È —´ˆ¨)ÀQ¡æª€k –À>‹"AÞ-æ§­b:Ô(Üú¦ïüÄͪßî8†îzïLæ×ʶU„ßµ2c’sv-¨ ܈+8)Ý­‘È‚œXÁ·œ&?ˆ¥w}§üÓ¸’¬QÂÜ£4«Xk“ ¡f§)Pÿ6§a'×Çág‚óÔÚœI&Èš††@Û&ÔDF'¥¥4|8t^)¦Ä^[{Ûð'ÿdÏÑÈ¡$¥ 6&Pç7ßõÍš„ä¤Qˆkå[ãM_-?­ý}d t5«-g‘“zPkT|xhŠ˜ +s-¢è8Ÿoÿ>®ì9“ÒAz‹Ïm¸6ÙwzsUœ·H…»|hkAÆÎÅgì̾„ÙUp‚91³ ãRZ.k¾V’ª·F{¾NÁÏ%TÔ†”ŽÑžÒ³z €ËøäŠÐ…£ˆº4¨/=(ŸNõ(‹ê™íPSô,ÈÐ¥9€A9ÛígÛƒ©ŒsèaÎ=p' 4Ahô¸‰É¹†|¦MbzÚØ/(ÍPð˜£/ã¤w¼LTÞ+àì- <x*Üè ˆé~À—ïîyey—€žµ‰;€/í-Êïd#)ˆ÷^6É8‹Ö¹;ü|P–qÈ$Ypœ Ø/f–0æ~aÒ>òp}^з9G¯NY8è]¯ˆ¿âðêd$ïå3vÀClýÒ„õ'Upì0àd‡ˆUp ˜{WsõËÒv™0b$4çû.eM"ÎÿIÒ[¾·u®ÛÞg¯½» í*¦mÚš4iÃÌÇÌ̶d‹™ÍÛ133‹ÌlK“-§]ûœ¿ã}fߺr]yÎgÞ÷¿ñ€rd¨éé%‡œ–í”ÖÌ«g¡Ã+eÍaàÇ>ǯnžõi껩Ôo²]€Y}à™„–Ë[>BsmË| ŒÓ¡œY47§¦äƒ1<6Wu„-µƒGiÄ.»ø`–’|lK +egšUäTTÕ8”F-ÓmÈ×ÈçÚÄÔíi\Ôþ¢¹§®¨Z£ƒ¼+ <ºhªÏò“ŒUìSW”Û%tÛ<§ ¤qBz ø:> çÓÀ=‰!†´Íá£3Ôt—R*ܦ':g@]ƒ± jEœc0V æ˜è?òL»d›.ðh¨뽨g¾ù2è=vÈÀg„ôb_'â.²CˆÇ;cȧ;¤ØµÄ}×dR†k{¤…æî˜È Š^´ÖŸyiµ3óWŸœZä9f­;ëâî`î-×42ò<ó°†ñ‚ûÜξ»ÑUpûpŽ’±ÖS|ópq¤âR?øÃüÖÀyœš¹5»8‡‰Y”¶3AL<ÒsÉ5À96s)€Ï1ÛÓÅ׆ò¯:f¨iN-eî€ßÞé¢&úªkOÀ=„µ"Ö‘Z@ö*úÖä Æ†w?{¦Pq%»tcýÄ5ÇEºeB?”3@­úµL¸GMÉY*¼»?MꪚœêòJ‡’ƒ èê:P†lX‡™ß«b!<‹†{¡¡É£:2hbáƒf&6¼Â¢ý±Ááþ¹ÁfùŒ„¬CЃ>­D^ ^Ä [¥µû ö1ÐØ?V$õ!ïR#¢ ¶ (Åt¯LHð)Ål¨¶NV+€o•UùþªÉòj»œ‡òèEü]c ¿ñȤÌ#Ÿqdeá}Zzá¡‚”´2±G+LBÀ$ø Õm6%£È¡åÑ€îJüf• ï10Qn Ø’2°±~¥f›å”´~ÐPVÐKËÃqùÉ*—^–ƒüOpkÈà^ªÝêÊ—ZD š¤•GËåÍG+ÕAÀJÐN^þl°7'± ˜ÿ<€ ˜ë†=†ŠF¿¡¢>d᳎Áó›D‚f. šÓÒ´å?–¿‡¿9P|˜Þ–5v­Í–Ñwd|Œ p`=b@Ï¥yµ\ŠCÅ,1´_ñjé0Ž^äÖ1á^h]ZÃ#ù5•µ¶ ms’6—UŸ¬ˆ*ë¦ßÄÆyT|‚[É)µ/P3Ü +bWN…©ês/ïP +?.üc,«œ]PóI®ERÒrOæåÃ9lâÖ 2f„y*¸P[çÓI¥n- éT2aN%#–šº1„|¼7IˆÒöÀ޳bOí b“OÌ"¨–i!P§ 1cwªà¾¶ñõ—+í©¿ød”\û)u»¯äq`‘ƒ©¹D·œ”æyØ6Uòxµ;õÒVOþópÉÛ6Ê«SÖÆ’˜Æš^Àøì€‘‰õŒæ”Q2áO½Jl¢WG-6µg_>ÖP‹ÿXç‹f:š'õéèÅ{3È7»È×~oÓaŠÚŒs;Ý\´WÕ:ëÓ cAx8COSÖ%ŸSVDŸ³¡c7fqÓÒ´ß¼så@Wš&ƒæš~§‚Q ùŠKANßœ*yy0GH Ͱ/pN9Ÿà×5Œø Õ­]Yµò-㘧¥;çùH‡¬Œ·ÑXRÉ'ŸX¤õ'ViýŸë¢*Ð'T¿‰íT#^ƒìYìs±›ãøDð{yakÍ@ÈR;4W÷„,å —€\ w)᯼j|²OÁÃzE䀪0[EsxETålïÖ‰ØÀV>ð¯[Ç%¯O’—zÈ¯Ž”•КKd=à?x·†Cl³Êø@>±©hðMय़aS²699Õ£cãAò?‰¡>=×àUs°úŽ‚›‡s oŒÕÀS Ç@Î „¬%˜¯žœ4K«væùØ Vè‘jM>„¬Òš UZu¼"*=" [|Û<6c”qÅ;_Vé2Vµ?õê+ꎬm!KuÄo¬Ò°A=µp¹·øÉJ:Ù¡­ëß’Up7æ¤d›J*<^ªl?¶ò…µpoã×Pró„x¯–Zx ¸7XëŒyøºGÍÃÙA.ß›¥¥²**?ZeÓÀ½"ùH·R€÷>sjèEë“%õò.Ù¦(á%iS)$:•"ê_z§¹g‘]âSr1à™ÅMpb¿,–qí26|žœèTвAfÉwÉyî’ñÑêÎÒÇ}ä·Ÿot—ÄAsè^-”—ÈYrLÔîd鳕ÎÜ›Ž)BÒ‘–Gñj¸xÇ(=),/ÚfE+ý¥÷|2­ X@I+tÍ‘eM9¿‹ònþ÷œ4íQØ"y¨¦d»5ôâ VÀÅâ€þöp.ïÎá<üÉî`öoa%.9´D)Ý—£"¼J3úÙ§â €'”µ<²M‰OÞA¾ô.ˆx! ™ ø8P‹Ù¹„é^”МÓl˜{†UìZàÀeÝE÷héW¿>œr†úA›L@^éǽr€1 E€{DÕЇôØÆñ{‘‡óé\§B@rªD ·Š‹ CkZÀ€«W&J£›Jîçå’NÌå^ 4²ñ>hÈ_û.Ø”‰Ï\ÀDô±#¾UÖe\ [k‡¼†÷#.mM«C-¹ZZu²$®<|ÐÒ‹œ‹Ô4¯œSêSóðA¥èØÌ¡…@ò‚: ˜«Ú½àý÷䨍Í)ìkÛ4+;¬“–y5”¼€ž…;±T´„Œb‘d¸]-gOAÍÞž#&®c#lÔÒ(îG-æ,UÝÁ¥Z í’2·Kvipû9e¥ùx’SifÀ\VãÑUÔ,qÀ"© š…Âc —t‚°6ÁÎ\§§™…"ð@î +.Uu‡–%Uhðþ#3ŸÔ¬¯«ïß—‹¶çQÑ~CU‡ÏÔ¬rë߀¿-˜±)n1=¨g¢€rýàú=‘Èk–ÖøÍÕAKE³ÏÈ@ƒëÃL|É«|Qdè€FÈ>±V¶O®¯t©Y%-p!£ôÈÊe}\@~&„ÖZ}I…C.À9U<ÌÞ")ue¤è¶} ûƳÈÈu„ö€ìäVŠYgÜÀ£}Jæpž’º?IŒÌ“|8KIòïØE=ßìEÞwÎ3s] +zÎá-͵È,°Ï1³×† oÓ´ô?<æŸË\6ÄÑ!À€ GÑB:‰d©cYl›£e8¨éö ìë`Q×<=Û¯äS>Bì¼~wñ|©=ïòfGöEÛ0ü°¶ŽO‡ö&vdkËÄÇ:©È½@Ét/@óÎø¯þ2¬Ç¦îMçÞ™éIPWþÞ¯’ +¼J>Ñ£<žÏÉ +‹ôq…Š9±2ˆÐ\U@]&ò«ß÷øTM£>m}·KÁ‚ïŽß[ëƒÝ¶v_êšÑ¯FI…Sãnƒs.~èó(ú² +މ8X@¼t+0‘9!>¤gc=:j¾K¸M]QéQòñÐÚ¬m––nz¶9‘{géCÆz>çp ´×Á«­ëvëëz|Ÿª[#åÓQ N…-´RŸk›Ï¸êW’sLeµ^hlÔUÕ#”kؤ“%&.l¡#}JdÌÎHÖo‡³øDðlÈ>í÷\ªìðV;yÎkòZjy ý è2ûü¾dq‡J@ X„ Vy4‘Ha# ëyí`茆‰ñ¦+’÷n‡èÑCû¯Ê€g•7ÌwÏÖ«Ð}úªf›Z,ØY¤¤†—Ê›Ž¡×rYÃxþÚ{GÈ hÉEGæÊv›JÄÜ—I8>}ýpÐ +òúª¨úÈÊ¡Mª×ÀÄØ•èØ ™Ç ®¤;*\Bx¥¢ýd³f:´RÖ0ñ .$¤Àc[­’ò#‹¤ +šo¯ð8A+éÖaS—`BV69´Ì—ÅnéÓ™ê íAóii°ÝYÔ;Û)Ùí{Ròp»“´dç<è5¨Ià7'FRΑ“´3‘r}­7ñçí¾Ü«^ˆ;äô7¤c* Ê)^-Íoœ˜h¨# ~8ÔC™Ú3ONñ+ÅŒ½ifîÞ%Ú¶=’s}w4ÿ¡wZøÑ,–ze¤T¯œ”â–æ—±î™ôk¶‘øs‡c·ý LJ D@CÎöÉI™>%£Ô;_-õ.HéN%!m¥?ñ‚}zƒuld`!TÑó]JÔVÇÑ’¸:d&ø´ÈH¯ÐPó æ‘E\5 2©È-ãÀ'YîÂ5Ë. +è™!3)ß­¦y´b¤]`|ðÎ>Ê#/ãæÀ»eè(çüyðdÀÀÂ@ë¯^æ–‘Ób±ð¯Ÿêþæ×³<:rnZ›6Õö;´U.mu³Kóa: ¯n™ +Ö±P!-­Ø-§d@½y RqÀXÑ^°üUON–¢3Ò2ý:L‰•TøÑB.ôëÐɇJl’K)`…L" ¥Ð|´vÈ¡4”BŸŠ”Ô³0 /äì/À_z‘×RÞä4p‰vƒ€å>à[âqÝt|Ð@) %AÐ{cECÈ**÷êpŸ–ZБ²Ü +|òîlé‹yl´Ï"®ö/³ið3AËûŸ©E8q°Uuh©¬áx©ª÷Ô*4—´ +Å>3y²"”‚q €gPþqµ¢šÏ8Yá±?®²™ né+#˜× VÒüI…ÝÀ"xMlÀ@ oD ÷KêBK|ÑÑ2›áµ ³Ö²o…W*»ŽW+:ËÕž¯ú¸R=Xd-3dð k±Š+ =^9ß¡yÒÄg¬ˆAá oÑ]jj4} øîØ4èK‹MÜ-yîUÓJ¡kÝ—Q²—ûQ\s|ìGЃG:JW{iŸÍº¾1wÉ6QüÊ»HÌ êØØµ!8ð[bfH/‚—È.£eíÏãbìóˆW.%19dšoJlZBæòì®OV.ô&öª¹¸ýIØck{âé­Á¬[~¹ðÈÀ!Ú¦`Ý‹ÈwÇÐ=#v0švÙ6šyß¿ˆÏ>Òq>59Ë6Y íñºáXDGÛ˜ˆ!b²Gž÷$<ʯdbŽ¡Œ«e Ürj´&éQ³Ðà9Õ9T ÀδâKÔÒ?–(ðV&îã‹4“ +\jTœKALõ«¹Ç,æšæ•:çÈ©~}É»c° ‡€ö=,ó{2rª}– +¨ë»}ZÇ6…‹µOà“B.%lâ2¼jrŽ}öì`ºè~\s@+âzU<\@ÏDû4¤<¿\à7P‹?.s™—…eNY܉h%ð'‰šÓ>¯°Y(92‚q°€ü«§Ã•†—9ÌãµÊ¾€µ¼šŸ [øü?W9¬?V˜Ä?Vx·þú`>ëÚÁ|á0þé696Ù!cc‚ÚÚöcSuÛ‘^$pÊ™…‡rbž–³?WòÖ­ò4böÈ–cmð]h]Xí1Á£ ÷ðëÙxÀDä ”SͲ[MÉôéXØã%aùÇ5ž(´LEyLÄìà å_&惬š›ä~k“Ê´?´,­¯W ý±Y5^V­\¦ÏÄ&ÿÿ~à¡ýÂVqÕÖËZýbnÀH…Y ˲6Æ/ì‹„D–^²¹€‰ôBû–«úBËÕƒ%QyÀÊaøÌ´R¯ ›ã2á•òÖ E$ ñÞÑ\âñöçr@îYªÂt8` A_@u)½Q}¼Äc™„pOH£P£ôð\@ޝ8¨Àû„—ùâk’† •Ïw¨Ð1S¥OósCÔ_º[AH÷)˜ ZZÖW}81JÊAn.Ù.}hŸ#gCûÓA>EyU ë+DFÀl +ØQt2À¾ ¹?EˆõÈë[ ¦sŽ ;œ ¦»§‰é>%¨) öfЯ³ÈÇ|ÎGP 鑉ùMYmP_V¼íËö‚ÞÊ0qÇVbÁD{ÌÕnô­BÀ ›¼€Ž…ñê˜È} k®EjN@ÆÆ$’Bs6æÁÒa 'ÿ»Æ¤† è$‡ ýÎó×2!ͧÁ&†tôR§š˜×Í}~®—þúÏ"‡öqUPõçª@üœiS±‘65%i +ùܦdcP[2z~PUV~¤ªï ëËk\ +BÊÞTÉãѼköÙ’g~Ÿ²7Ë.8˜ae‡c|\*k>±ÒQAÐaî×3àh¾× ‘ºtl‚]FÍY¾öØ$ä… ¶4 +@Ž&$9´˜ø¨™“U:þx'pƒZñè+Þ¯Tõ‡Wy|·–œã30>=‹tl¡Sþ±<‘m}‚;ã~()+s)+*Š÷]nõû~à3‡Z>yCÎ.Þ˜§¥̵ƒÀFn‹Pä3 ʽ†²z¿©¬&h©„ô¿>h"fÙe¸X¯ŽC¯Vtú–—ŸáÒãSœjl¼×ŠKó[ ýauSáÊþãeiÝ1¨Û“Šþ£užø\»d4' +žWÐDG»•ˆˆú„C=2ÒJÃféÏ6ëÿ®qù—¸¨f]*bÊî|éS¿–^ ­¡€¼Á +˜Ÿ©¼)´\ÑZ®êuëö›¹4ƒXDbPË\7àÁ€ZÌ?†îü¼]ÍA;54ÐÞGà)>… ‡…ÒʰYZ¶Š¤­<Α™…ƒöÆûµ5Ž–Ë[ŽW…Àùøð!rØÊe@sÜ5ü 6l)o>¶T÷ËjÂú²Ê VȆæA¡ýK~-æS“rÜ2||P%{Ôu‡r1Ý¡3í <¤WÅÁƒ1šYd‡††\Þ3JÎþ¨«n éØxÛ,>ö`Ž˜²`k6ÒÄð{¼ø{ã¾BÌÚ[à#þš âÈHÊsË‘¶Yċ垴_¶; ‡Õbñ‘‰Ç²ƒÞèDücse[hbØPÕÒ Ù^pn9äJÀ@¾@ƒƒ÷þàÖÖ÷Y…Bq€Š7‡J*k3.jêso´\–×é7 ãÑ ˜v%ãÖ±1*jî– ßÓ2 +wæ(©'`lO@ éYè K /q¨PýïÍcwfI ¤¸dô¬#Ð7£¸ 0|žWÉFueUÐÚZÀ\ÝZªh¹Q¼z³1_éƒ? ›%• ÿqE ¯0É@kÓ«\6´í3ò Ã×YEÀ‘5@«GC+µAèÌðHŸ‘”kS3Ýà9yL"þî<-Û¯®iöêF=†ªf(»ubž\—Ï"úAš% g••y µý>sã‚×T^ë³>+é0Ò`¶EÀã:.¸üTNÉÛšaf»4ÕÍSý4÷^¯ ¯–5‡×¤‚&þqm°¡ÇXVë44+ü+5£sYÃŽ‚‡;PsÑAqb!œ˜)%ûsØÈ ýôÕŸV-l¢—x4”ÐÝIÔ›ƒiôÛ##¶ðXàyaƒ ¯øL”>³¤Úeà3ÜÀ ÂÐÜ8´ïeI(†æsC€e}jÍ-gÃô\VèÛ±IZåú·9Žy±Ö¿³3 +ø¹0 2 +6vo†šê\¬’:¤L¯Š ò%n`c²è¾k‘’y¤q?ZÄÒå¼ûS”|¯FÂ?2ŠøaУ—8Ìð ùŸuÑ­¡nLГm œ"hý=¨aù”Ïqi>`k9Ó/§æ„G›ytŸšž­3… àú”|Ò‘¾¢6d¬h:¶HjN–Øt§ +íÑ܃‚êË£—áÑÀøÇ`œü ZßÏöW†Õ–WøMt4÷¹?GÉt€k HÙn 6Ω#eBç#‚:çØX^ ¸¶:íqZWçy²Æ_ç +F¾¡§ô)4'ÿ¿ {†–Ø ·P‹ƒf  æ>®ñEÿÙd³ÿ\g1ŽŒ Ì‘‰M9Y×­‹ß‡×%G+’P#e'kÒ¦’æ£U¾ØgáÒÉ)À+¦ŠF—A@wêÊʃÖê~ 5&÷éEìIRvr—× ­t›*›<ƆI¯©~<`•6xA†…ú1¸Ä¤®LäÝÚ™àÝz§¾Eå0JkW½ïWy¼4pÙ±UÀ‡Î¯øL’ +‡¶Må3Uµûƒª‚²¼×@-:”!#2T¬WC-øcY$ýß5IýV> .ÕoU€üÝü¨éØÄ!‡Í4xÀH)ðAùØÊe-Iêzz‰Ã˜g¥fô'èM¡bÃc -!3ã˜''Û§H1ÎZ¦0/´߯"¥9çp‘‡³ÄX¿’]bŸ¤$ìâ^ÙÆñoOÌ|`XvôÈmh·‚–ãVÒr@Í ?.óØÐ¼‘KÃÅ:Õ<èœ9¤RBj.> a! Ÿ³ƒ÷uÊ(™5³ä`‘š¾9Aß%ÇÌà¢ü*Bªc‘”z('gìÍâì³"Üê îÝÆHé“C ?n å%çD/äžhÅü žT4%ü¼3NÊu*…t—\€=ÑKÄÿY‘Ôý±Â½BGAûæ@%Øg©Ð>ÌT¿’œþÑÌ"þ? §ÿ/ÿ_gÂHÉ _rŽŒô¿š’íS³g±±žfÁ±¡®/h¬L|U2°‚˜îUÒBBz@Mõjð€A$/€ÖD½ +Rޱ=ᬱ#þg—²ø9È¿±!(‡k ŸF*öƒ¼àÕòÈGf0X`u,èÿ¢˜ÔQA¶çüz: â]ŸA,Yx2¹Ð©FDÈ‘o Äð,h- xM‰ßÀDY éîÉW³xÎÎ$1ê`ñÿÖĵGí ãÓ‚æªÎЊä}h‰Ž=Y%ý^GzBÚ‘Žœš\aÓ>® $'k倃ºÀ«ãhúÑ +È5Ð<Ž™Vrò’ d5àé6ey¹ßR<‡Ž¼&¯Ö6 Ø!3 é×ÓJJF¡Ë¼ÖÐjð˜šÖŠ7øzÀÄDûM”B¯äÕØní‡i§¡~ppLôÖÑJEWhYTîÖЊý&1`å1 }9AcU«O#‡—ÊÌ啘ë7r(ào!ƒ:JIH<phØBCŸ˜9ÀGÕ'ku³Ç[UcáuióÉ— ¾WâÓQr=ZrfÀ@É÷éÈù@³rä\¼ßPÞt 407`ÚefáL”û æÍféÔÓ­aü›ôc×%Ù5Gˆu‚ïÙ§±o¶‡Jïmõ^ÝèιRãSBj¾_Å( ‚üà–“æ×3É©¶)jâ±J@údÑc Ï~%È*Zžcu8‰~é˜A¿ +¨É™­,O9¬°•Çò*Y%‡³äD¯œšyØ>¨¦æìO?XïËÿÝ=MK*…4 Û\}ÿò§?­‘OAÊpΖ>ó,=ødökYCÈô—ï@]¾ÛÃÆ{ÌøÏ*ƒ¶Ò‘A=%Ï#Ç'ØgðÑAƒë†ö‰ƒlr˜ÖôØo`cüzR¶]VòÂ-'$Uô¨wZqw†–êR’z<È<ÄÔ&æHË(¨iy€%{séÐYTh^úxEÀCë{64ß÷ú'`hßMP#b6¬wª€˜˜c Ïÿ+ãWSm³¨7N5::leÂÐz¸Î#sYmôÀ±µ¬þh‰Ïõ ÌB-<ÏÇí¡5¬Æ%d†|H =^á &JQÐ@Ì +èÉy^ð·‚€ýý€!ÜÛg®l^òþh‰…?^bþ\å0jZþ!`é=«xc’çQWÖztÒŠý9Zöæ0êQÐÄ&„?C¹Ë¹HH>™Ô¯ãœ26|k‚‘z 81 8&¤e¡³øhŸ +PRŽTôBhéÑRYc`©¬š— /Wtƒ1j¹8Ÿš‹qÊÉi»ãðÃ¥Ö‡í3èwÐú²Ç `ÍBî_çP ó¸h¿ö} +÷ÆÔTòûfæ¡}г5ˆzè˜ÂF8f;#¸7k=EW,?muçÿî˜Á½ƒÎ¬Ûâjò±sãWQ²Ý ®] ôìýqÂ;è¼¢}‚–¸=€gîŽ"7ºQwí“ÄHhnöÔÿö@é¥öÂËË¥7vQ<ó„xŸŠ¼=Qúxs¤ô¡cï’ãâ< +b²mн;JŽ2µþf'Ål¸_ALñ. _¹fa'á\ÓÈ!É'£dìOâß­u#ï¸çX…Ûƒ…7·ûs.»g1‘5Ç=ô,âbÝóĤý1B„wž ó.paéšeç»æØ…{c$ð÷ÐO·‡ŠoíŽÂî;ÐïœJ\‚G Í]Qsž#ƒZRt&æ:‹£Сõ œ^t¬0üjV鱑„üò(Ï"1ѽ@J÷”è×àSs¹ˆæQI8¶yz†GÉ*õ)™ÅÎ9|Œ š{7G·G±/l —8)©ŽYrBPÎÈÿÓÀB/?È5{£ˆ‡û£˜çžZnØ,’†A† i9Ï"½À3OJöÎãư/v†€öÍ\sÔ4ç §ðpš[ìSpJ=2VÑþñÝÞú¹ksdd¢<‹Ô Ÿ’ þôzòx4'`‡Šƒöjø$»œ ¼ž˜äá Ï9ð€çí9÷k¨yX¨°ž×A‚ÖÂ|Zjî¡¿9…|éRÒP®ˆëOÌl’_GÎ Y˜X¿™Žp©)Y`l6†/—Û°÷׺ˆÏ×»iïT…¶K½?YÆ ôÓ#CEø”øÄƒJ¢u˜üfyûÂ5KÍõ€<'¾ é8Øÿ,óùaøû‹Œˆœ +!Ñ£,;eÎZ#Ö1/ÀíNr‹ö&©I ÇL!žLÂî.Þ·Ï!^A_ߟàÊ*OEþ.¬‘ôïÍZ;úŽ}ÿzgy½qkoˆ±ÝOÝe§nõQ#L °KæºÂ »ƒø—»#䨵!j¬¼*û§½ü[Œ‘s0Mˆ}¹5€x¸3ˆyn%GŒ"ö'‰1ƶ¢êêüó‡@ëƒJZ.Ôg›ýˆ»P¬t n¬w_ñÌ•¾ô,Â_ÚgqqûÓ„}V€Ï +nŸ!Dmô£nöaïaŸdôÜ#»Ô¥Ÿ"'8¦)I ŸßŽ—>ÚÌ¿ºÝWpmøÀÞHÉÝÍ1|¬²6ùûÍžü;a5 íšÇÇoA?3˜ûûþHá-ð3œ@«Ýóœ"¿’‹šéžágEؽif–¥ ~ÍØXpa¹~ÕÚQüûÎòÉ‘š?9ôù;ç<91¨eÀ‚:6Ú%cæ‡@¾…攎v@ć—ø<À¶T7¨‡Œ–aŸÇÆl ÝÙ=AIØ&Å®÷bžîQSÝ <Ð(Û$!Ò6AŒÚF=Ù@Ü_ê(ümµ~s³ ûÈ=AMù_3ÈÚà½ísäÛ$öÍþ(tŽûÆ+ã”ÚÁï®÷—XoÇ>XiFÞÚê!¾XnEÞÚíÇ=?&E€\ážþ2IO=£%ì ^oô–ܶtæ\ž–Ä~=ÍOþÚÔ\|s³ñìô$ðƒè~üó>ܓ嶼‹Û=鿘£Øì-znŸá•n²2] ¼Rû,#{sÿ +b­ž¢›® Ôk÷$úírKÆùÍÔÓÍAâ»ýQr¼}‚»Ó_tã`vÏ>hŸD<6w•Þ%}µÕSòüDÃ'Cµ´Ö›wek ðæÁ8òÅÁê¹ ôµ}’{8EŒßBøm}}öy… å;… ý[S]ñ¯=Øgæ6Âói~á3üìo•åùçœÀglÓĘýÌ Û(á-¸†§ý¸§;c¤ÄÅ÷™¯@–,ð(hù»#ØW{ÇM¡_­v]SUfüh¨Ë=»Ú¼¿XžÕ؈xí—sÁ82r·†0O­mÅW,ïóΙësÎ9&ðÑ%£ÈÚ ‹8gÀ=òêêƒ)Nájh3þ™¹)ÿâ‚ þ« Jäß—r/hêòïvâ#O¯÷¿8±àrÆónïÝÚ)µ•}IQ÷íFwÞï^9óäy§Š‹>±‹7‡É‘K-%×7ºJn­¶ü®&2ÔfžÙîG>0µ žŒRžØ&0I~-ú¬„WELw,”>ßÈ»²Ò’ö³¾>áÔÎpÉCmSÞÃ)JFPϧÎRR·ûŠ®­t¤ŸS×Ĥ<ùûÔõOú™qßôO-· nöâ_ë‹/šêŠ.¬µ¡oê‹/Mób¾&¾úb¹ vß>NO·O°söÆY©kݸG›}ˆ{Úš¬•å™§—ÛJnö‘^:ÏM½è ÇŽ1RÖzˆÏ–Ú±÷Mõç·;r~]ûya·~o·õÐô>ïû„å^¨îŽ1Ó–;aW ÕÉßÊ¿1V¤œ2V%ŸZéÈ¿<%H>­­E¼Xë¤GX›Š/oöߨî+¾±ÑS|ÍÐXxQ.ÎøÎXŸûëÎ0úÕz7ò…wN@vL² +Æ©qÛø— Ï­u•Ü4–ÔÖ$žý¼3ÌL]í¥¼=/Ãn +s6û)K­…—ô59?ék²ÏÈ*’žÆ|0INÙõ´?†z¶5ˆ|¸Øv­§ð†µ­àж>ågUUÜKmigÐÑ!ŸáZ`ïŽáÞAŸkam,º´Ñ]z{òÈnÔ=Ð+Wwz1¯]ãäøP›»ý˜'[=¥w¬Í¹¶ŸÈ¥Éßoã#æÈÝnMÅÅBÙÒ%ÇÆ¬ž\¥~­”äžÖTfþ$Å«¯Ï¿Ø†:êóŽpÚÞ0î¶"çÌ5þÓ~\ô§=ØèO‡X)ßYÚñÏ×û‰o E¿N‘bmøçôÙ/¥wçE‘_ÉË’ÔÕæœŸäEŸšœá‘ñp{ÃÔxÛ85a½»ä¦®>û§yAÊW ü´¯eeÙ?¶""þ1ÉN¿°Ú…yå˜bçî‘ãV»`×V[€æJAÖg³¶\÷óƒkœQ¸=!aÚ /6GhÉ.yEÅö=MS“ýËùÝßGIÑŸ(yùáÕ¹ÿ³Ü™ûfg$ûî<ÿÕ¿ÌMigÝ‹¨wÎ9àž¢ûÎiÔ+¿œ˜Tòp‡Ó´·\@rÈùdK é±µyÓú!÷C}æÙµŽ¢[îJЬ&÷vÖ½ïþÛTŸù<¨ ,]ˆ×S¢˜ï7³/ï d]²6&žZkϾäY f4ãŸÿ`Æfonâ^­v]ÓÖ%ÖÔÆ}·(ŠýZQžy¦ùüËšœ»ÿÜîE¿5·\žæÅ}>Fÿtœ‘ôÙ‚0ó›qJä烘—ŸMˆã¿F¿=û7™0õÖ¨ic &㌲<å”Lšòí 'áË JÔ?ç„™g:I‰gÛŠ_±5H‹äåþ ãSCuÚéíÎâó¼¸o‡qO>ÑI£¾²¶á_«ÊqÏW[iчSÜ oO·ºa×Wšò/,7]ÖTdý¤’fœ¶6aM³a¿*à>>^ëBßۤŭt`ï[[w­m°ûÓ‚_RÙâånõÐãÌP7¶hQÛCÄ×ÛƒèG}%·Ö{Н[[²~UVÅŸV”'ÿ`n¦>3µžlô_®´#në /˜ /©ªsÏÍŠsζ¢#ÿÙO‰ùj£óvkˆ©¯Í?»(Í85ÉIújAšò£º:õ'ãûÔó;#%FÄѧi§§yЃizð^ªÊÔSÚÚ¬Ÿ€œŸ`G~1Àxõ• ãö?&y |s´¬Íîâ[ëÀ÷z‹n-µæ\^{e£;úŒ¢üÕ7£È(»œVh›&'îÒ7 ®¬µaî™ÞÃ_nEÜùò–¼2ó<È–O Zé(º»ÙOŠ04•^SVæŸÑ7_^î!FìŒ3Ó!ÎZ”&|½Þ‹|hh„]1¼L=Œ{­{Ÿ]]™w~ùüªòŒ¶’ûs‚œ_UUÅ×Ö{©ñÚÊ¢ Ëí„ÇÚzôõ9AÖ)]MÁyK3úö¢$ï"-îú'Ú:À½øˆqvÂw#äˆ-òâ¿ÒUeŸ1}(¼²?^úÄ£À¥.Ô&]jÃ=þDUWtm{¤œbé FÎIó~&'ü8LL<5ËŠýj„ôüßë½EÏÖs¯ïb¢|ªòÊc#_°Þ™yi–óâÓyÁÛ/¬M©?YëÓN[ó±¶!nÍWæÝš^sÌŠ>9åœÅGíöÂlvÀn­uÀ¯™[r——¾6u`2&ÅWtE·¼ +r`‘Û«ÍYg×Ûò~ÓUf]6¾/ºëÒUI¿œdD|>F}ýåjgÑ!ìéçè—¿}¢–À£ÕbÖÞ8âñJgáoºšìŸ¦XI_tcÞ|² Jÿa€—q:ïùoÿ½(Èú}£ûv¾,㜲<벺<ýLáõ¿ÀpýO[ÉoÿµÔ‘z¡Wr¹›óóö!j³Ÿ¼¥ä覦ìsó‚Ø/ú±þ§ vãoó‚¨Óˆq?´“.ƒ^Š[nC?Xn-½¾Ù‡~°Þƒº¯o€]éÁ>ùGâá'€µ¯Z;wϾÚ¡¦nôÞì á_Bsj~>> À'˜ÛÓ/Ïp~Þ¶9ËاúÆâß-ÍÅ×6ºPW;0§$)çIñWþÑO»d¥&ÊÅo?W•GŸÒÕfœ£¼ûJ-zûývWüŽ´G{“„DKoþÛ$%ݲ…äIý{Øå!JÂg}„¨̰¿² #Ûfp‘ãåq¿R/þs­‡žªi@ߟ¥~7'Šùv«»äÑf/ê‘©©à¢©!ÿâr{Émc3ìž©¹ä‘sVBÞlôbŸ›²Ï[›³/ Ñc¾¬Ì¹÷?“ü„ŸI1?6acNoÑL£©.:¯®Ê<3ÁŠûª¶àÙ?˜ñwþKY_p¥ž÷+>êö?Àíüp0BLtLQS] ·ì?45G}«,{ù¹Lñµ¥³äQ=.霰àÝw µø˜í~ñf/úÙnÁõÍ®œËææ´ßG¨÷?µ6g\sÎÓó—ÚK›ër.®÷À"–»àQ;ýèkmù¿nô¢jß_æ$Ýý¤®èíÏÎxK:`áX]UÒÆšô3›=°[ÎylÔæòEYÉ“/ W?1vÁ^oŽ6Ôä·ÔeŸ5Õ¥œžd¼úò`Œã˜á£ö&Øy‡³ÔÞŒ¿6€{2êueUÖO üØ/ô•q_¯´für°HJ/OøQßHˆß|Ï^íæ§êŠ..Vdœ™dÿ2-‚]è£&_ZnÁeyç+K]´(U}êOêúÄӆƌ³ÖÆâßÖ;ˆO« +­,~þ¯VØkÀ*¬|UUÞ9mEÖóûü_e¸*3~Zk+¾¾Ö‹z -}ù+ñþ¿õ5¨„c˜³=\ò`¹~mµ ø¬äê/å;MUá…Vê÷ﮟþ¯!ZìoK½„˜ZÌ—MÅ÷ÿ{Œðú„·ÿüüQʓϷ†KóàO¿åfßülœ¾Ö‹¼glÊúYS—yZ÷>眢"óì ;î›E~âO]è%o¾lDEÿ¥%kjò/ß:½ ˜ËÚRpIQ™úC7æÁ§ÓŒg§–:roõ1#~ÚíǧéʪíÓ”´-àM ó žï Ó’ù1_­w ^l ÐÓVÚ1/íØÈÿhé%UÔüƒ±’§¦–Ô_<ó¤ ä7CêÖR'îé4?ûô3õs}Á¯ŽIô+Ç".n¾>íwfòÕZš)‘ŠÊÒcô„Ï N¯¶^ýüz­ÿúpœ”`#Ähê3/šZ îí KW»™Ñ«Ý؇+Ýð»+%€ã‘ÏeUY·—:‘¯ÛI¿¶SâÏo‘£ç$ÙgÇ™I_Nq¾š`%}?HM9?Äθ¡ë@½‚ÇÜþìÙ/ßþŸfÄ›ü +6Ò}&à9k[ö/æÆ„Ó¦÷‰çWÚ@Ƙ¦¦Ó²–öø—¿ŠóÞ‚ ”$—Æþ .}ýõ,÷éçô_nôä?<˜&Äö3¢~—g] jø¤€†ƒÛ%Di«ÒNês.Ló¾£Eþú·Ö’W?è/çÊr¯;Y؃QlÜÐÛ!roùRY›ñËÌËÏ[ oO­áâfÊ +A¾]ߢ¦:fñiû“%oV{Š®ëÞ§žÕ¾Ï8o›aë{1/ í%÷&XÙ»CÔ¤õ΢ëÛ}ù×öGŠïîlkè,yº3" Ù§k%k}‚L]=öæ/ýt6â_ÚòÜs‡c”˜ZÄô)Êø»#bØæ¶ÔExnjɽ`¬OûQ&Ìú~Œ÷Y'âåÿX`÷6‡(IòÊ¢_–[i‘kôwè‡ÿ3Dzý¹ª"ó'umàþìÓÖÔcÇáYä£7z÷FY»£¬s슦<ëÇ9~ú÷“¬´oÇç—qï¶¥¥ú&Ò uUñmuYÎ9¹$ùMyÚw;=°»Óôteꥦ þÔ9ÏE­â^Z»÷ÖF)){óìRk?öé¢8ó;¥$ûÇ¥è;ò²ôÕ•™—·IúFä­•VìÃÒÛÜ‹í>ÜËÝAz‘{ŽM°Í³K$%O\õòØX^¸HÍÙ™÷pŠgŸÄG8fQ®YJòÁ8#]Óˆ~6+ÍûÝ>) Ê«ó. žýS&yóåzoÚù)ñ›+Dɧ6Ú0Oæ +“¯~¶Ñ‰Í¨…T¯‚‘ï\ ÄïÞ¬µ'_Ô–=ýt©5ó²_. †ÏUÖ]\¤DjëóÏÏ󓾚b¿û¢ƒøàËò“o•5Ig¹Ì=¤ÄJØ‹o‡Y©·\3Šcœž46õ`±Ñ›vc­#窮&ùûåÖ¢Û¼ôZtÌw³Õm3ÔÔôsíûÜkËíÙ77ûáW»r¯ijRÎèÚàXqß©ªò¯[;pÏÖûow@¶°O³‹—±¯g+ò®Žñ3n‚>̳Ï2s÷§˜Ùö9^é*x–«…W¶Jï}ºdh.º¡i)º­h)x³2ŒÏáÅ_T•¥Ùè(~´3PúÊ>…ˆs/P`)mg¬äñ0óÍçËm¥¯Ü løþþífòþBYÒ7‹âÔS âÔï'Qç7ú‹ßÎWç>–ä=ùli€‚ØB¼2þ]m)º*—Ä7€zþ÷Rä·êúœk wùYOÿÕŠOý$`8¤¼µ¾ô+[C”ø½a^‘kZDtÍ 0냘ç›ÃøhÛ¬µ5@ŒÝí+½g¬Ïº ©Lý hÝ“€š‡uÌ3s7F©1†6Êç|µôpNLÚÁGØ¡³¶ƒ…wœ‹E/lÓ%O¶€.z”RÎȽÆVæã{ÒËì}}mÞ%hÎe³ùPßXð›¥qÏÚG‹ž¬)ºÑKŒÿÜP ¿±ÓOŽÜ"El`ž¯öÞßÈã™}ÉX—~z§œ´5"(>~yAœvnQœqN!Nÿa· óÚ1ÆÎ·t`ߨë`ww‡DxYîqâÉ'­¥÷þ®Æÿ¸Ñ||8ËÊsÌ×§t +ŸàU±q>cy­MQÆÛ£'›ZЬÐ÷ÖZ1÷¬ˆë¶AvîV?#mŠÿ¡!ëÒÎ0%\÷õEIì·³¼äïå,íä· ¦²\s"ª_'à¹T<²c±®Î£(™;KÍ—¥JùN!‰øbµ©x-âÎþ¸¿Üƒ£zŸqfµ7ÿ:´NêåÁî=á`„—;-ʾ4ÉNúýp”C8œã —û‹®íƒÌ|joÿÆ9‚|v8EµKˆ[ëƒ>× óÔ¹ÀEË«SÎ2ßüÃДqi¡*÷æ?ù‚¹9ïº{ŽUªA½¼äÅ·Óe°µÜ\pÉP—ôüðÍ—cì§_¯vç^;œ@¾>œ ¦-õ#¥ˆg_ÏÔäEؘEªú¼ßúé?L‰ã~Õ7e^6~H½x0Ž}§n)|4"Œ;³?C)úú°‡ôø³iÞËo-y¿¯•<\í/¹¿7†‰Ø"ǃçòÛr-Í%«oO03MÍð[Kí%w&… ?Ó"¾ÜG¿9ÔˆyÊ.R.<òÊ×ú®’w.9¾?NŠÝƽؼ°€,=%ˆø¡Ÿöò;Èæ3µÅ/ûHQßoõâ¢&¥ÄÝÉ2Òî$¯Ð©`ÀÝâPIÍÞ—3òmr±‹ùƒ¶6ã†k–‹;˜\s¸¼PCÉ·MÃ_ìŒ=x¼“•Ê>§‚Z¸1\p×§©nò©+*Ý‹"ÒÞ5a è#𸨕 r\åõ÷º²Ò{ŽÁ +¼m„_x8ÉÌöÈè°;kýˆ‡[cÜlèìÂÎ,-{µ~g§¯ô¾¥9ç÷õþÌë®E\¢}š–éVò°Û“ì¬ÕvÂÚ 8W݈¹ ¸ûÁV7úársáo çϘÚJ«ÛЈQ_÷’“OoôrwFøyÚÆ’ëÂÄïÆ¸ÑߨkR.­´æ?ÜìE>?œbd,÷“Þ©šŠ.;fùˆ\„¾1ñçAê³/'x1ßµãŸþ£ÿìóåvZêD þá{däg Òü{î9&Ư¦æ{eÔ܃I\Œ¥3ÿй#åèZýVéÎ9á`Rˆ°/VðÖ™)Šò¬3£´wŸsâÎMp£¾oÃÞûd„óꔺ¥ôN 5ò»q^ìO=¸ØÝ!J"k˜g‡tÌ2‹×Ç +ïíÌ¢ceÆá\sc˜“cí Dýd½5ÿ†w{8Nˆ^íB>ÜèC½Þ$FLð`Û£´xYMÂÚÆÒ;[#´ø­J´cŽp)$Üý9néê(îݪºÙ¦l°Írk]¥·5ï³ÎÉ«2Î蛊nLÑ3OæÌW¦œ›IJMÑ`»£Ì¬µnÄ#]}ÚYcSî遲”èõ!VæþDy{ˆ™il*½»Ñ‡O}–j›&%Ak Kù×+“™E³=Ž‹8\äávg˜…†NäSÛœ˜r0+@o¢¬íùw×»‹n®õÜÚ™ÆFÙULØ€¼Í~Ì+û8.Á1‰\ë)x0'‰;=ÄxõÅ8ðAMúy÷<çVTHöçÊ3UP«¨½qjÂj;⦦>÷ª¢ öÈÒOŠ6w"‚F‘dwœ˜²ÜмmlB]ß$DìÏ“÷¦ ÉÛ“øø=ØÎO¿'̽ÿõÖ “îÖ4ïÉ«Ê6縰å!ì3sâ‘MzE'.PÓÞ\9õªÐQO튪ÆÍi!ÑÚQzÛÜ–wi¥7ó¢¡5ùœ¦!ù÷ A\áÑJªô Ì“R=êŠj‡LÊ°Ï +‘ö)^ñö 3i½—iꢼú@Løi‘ƒ¾kë«§nõˆs-M¤GËͤ§”ÈAZ²mNˆÜ“óñzyŸ>rNñJ÷G9ù˜c^€ÝŸaçíOSR6‰¯¶¨‘C¼ôøØËÊŠ[i!=Ùí¡Åí°³·‡EÖNFŒªvi¹µ5QF0õÑb«Š~™«(¼in%DŒò0¹”»7Š‹\ë,¸cjÎøÅÔV|Ó>-Á¯÷`ŸikÓÎÓcœd§ŸŸçß76`@fª$ñ‘¿ÕF}il åë*j¡õ¢½áâ;ëýÅ·VP»ã¤Ÿ‚Uâš'§éÓ.®´³“¶§ê…ænN²L’wèø÷=ÄÈoG±ßOrSÓ7"Þª>_‹"¾­.xõUPYÆ·O–ßmÀZ: onN¢cd ÔŒÝâîLðó¡:pÌ€… ?Ú,¼klH8­®‰þÑ6FJwÍWrM¬(À€VzèŽ9ðk>r{œ·=MŒÝž%ÅÛ”l侦}KVß´5#ÂlŽÒS—{PÏ6úqQ¶f1ôÈ›ÃØW«}ˆGk=Ø缘©©-¹f¨-¸`m(¾³ÑMÊvËD,Û<iìÂDÍW¤ßcfºUM™tg·>€x oÉ¿±P|I×’õĹȀùÁ÷v'鹪ÆüK^UeÍ:ðTKæ¡Lšuf«»ôéî0.ãpžOq(D4Û ·ô{cšS¼ÞU|gAûå$7úëIAÌÏêúÔ«û“¥±Ðg¼Au¿1LO?˜®áíÍ€~c¦X[J¯RÞ}:/Žþz©+ïÊö09Ú‹0΃o÷17ºY©€Í£—úa/4ÍYwÔ-7V&pÑË£ÔBs¶À#/opë«[v ™—r6g˜ù5Ÿå7I*ÝZ±Ð:DŠÂ_þ0R[˜î4—}Øz²Ú ´~·9ŽŒÙš díMS +|z!ß&g"Õm¿ïÌⶆI ‡s5¢ÝÉ*ÆÆ0×ðÿ âÙ):êg9Ÿ|EΧ\£a®t ò¾o+ÎûrûÁZÉŽØìà$›Ñ–0ÏL=ˆ»[ãt𜫄{ÓåÔµ ÜÚËŽ7·Sž™šh–[9Ö&î[Eå¶$çõßz0™ß(%”[¢Œ­^’¶Žþl†¾`–nØGª)«#’’¹zì]íò냹ں•nþ&àל„¤yŸAU–ôíZKÁUÛ0'ÓÒ&JU–‘oXê˜OL5œ—D©¶Þ +ÄF‹4G+-œ$PÏ(„+ÛÍ’¼~AÞFæñþ0#Í>-¦Ùšls•܃iV¾¾±èÚœ8åGk‹8}©·hm/϶4°^®µ—ç[šÄÉ–Λõ6A‚\ë }¾ÿA'¦½Û–¬t£-wß±-3œ +Ó­¯íuék»lr1]ÕXpS÷vä…DÛœahBÝ0Öü²Þ»±Ó‹|y0DÊpŒsòwû$ùšjΓ¥&iŠ}°žf¬ÄovråeÙg¦¸uBC_Ó½±(¡.OqrצX;³ü’ÃEÙ³(¦Ø§ù¥ký„W«­%×í£”XÏœ½=&„7!S>íD§­« E¸†šk]“RêZwék[áýQ|¾G[ÝêÖV7¹ÔåÒý|o†‘ëRJ$‡rÙ£æw&J^­õ=6µä_Yê†ÝZé%ÆÖÂbN5#Ò~–‹I×7»¹E®©éþPv¹‰ür«ƒu8RE\jçÁEW¶ú‰1;ÃÄû,«Ð±ÈÎ"ãfË^ÿ8Æ{õ•µõÔ±PSõÈ:H†˜[Km´ÿ£¯~k#íþNm·Ý­{KݽÔ[ ww÷¸» îàI J‚µ»ûìó½Þäç#™™sâ6·1„ü±Ú YjÇ…+™EO•ô¢'¦:Lˆ±î?Ý’÷ÔÐþt¶=çýî,Kðs¹^úk±zÀ,BgÌôVm©ùL÷t“hw¾ªcwŽŠY‡+ë2Û²lKàÑû3lîÞŒ ~kŠU¶Þ‡ÿK_ßõSÛÐ}¨¯i²M–EN·D>˜ëN}¼¥€GïÎÐ0Ë}Èà…F’´Šð±›Pz©•{†—›ð;2òû±Ò€/GR_ûƒ¾>¸º{å èÜÉã ¿3¿>Þ¾t÷ᔘ‘ë·ÑŒúk–Iù9ϤXÄ,eò¸÷vªùt’¹;DCÞnG–^ä¤ÿöIˆþq„u¤:=å7frÔIbtà1lJà±°w÷AQÏm,ϸUI¸!ã_­õQ¬´â¥.lØR'&h}€™6ÝÉŠóñ¯ºñÐ{­ÈŠ+UE§¨‰IÇa¡!G ?}8ˆ +=ÎI9‰ü|<ãÝÛ#¡î]?º ÊûúüH;8ýÊb;-Á:Æo‹«¨k“\ˆ±¤ryºµ*SUÅ¡ ît# +.ô#K¯ŽàPÏûà;½°Âk Eéç‹B>}~ó*èî…s ‡wŽR’Bÿ"çßS×AƒÞ ìÌQ.# j‘ íþ²êœ§ëc„’€³8DM›`”ÝÓÁwU\è öIÁ„¼i*=KMþqp"êÅ㣰/§pQ_ObB?ÿ6S qËÉH‡ŠŠpêÙÔµ)L캺>ù +è¦pó£ÀÔLÐT?MqIïÇéϺÑé·y9a—Šƒß(úñíè—û~ Ç—σ¾?¼u”÷ãr;*áá++`©šåVRÊ*&bÈçÍ1rêÆ.Ö©dÀ½zή$fÍt”¼RpóoéªïµôçÊœ„ÓyŸÞ)þúé.*â,ìó L\Ð)bBØI`Üǃïß<’âÿò$,:ølUvÌÉõ~|¼CÉÁÙU|òú3w¹4Ó‘÷ie®o…úÏöBômÈSü²û-ŒÓíhÔ VÎs³O’’£ÿˆxõøØõ?]¶Ë§O‚î_:Êùöê·qNá÷ÃnÃßËtžS…LŸïËð×4Ǿ؛¥ÝF~¥E`É(>n[ŠŽu«ÉE69¼1FÍ]$HªÁ!ü’ø;´”ˆ3‚ìØ?‘ßÎå|}sš—y}œUÂJ»³Ô‡HþµÄªù¿mÞÀü#°[‰Åùœ“äü¬ãùa 7ÏA®_Ý>ôäêн«@œü tëìPð³û ìÿ#Íå)çÕüÌÛ»B®CO.6! ƒôxi+'|¨ÿ¢‘}šS”z’š•|¼8âû‘Ïï±z”øê9(ûÓ{PÀ£; g—Ï‚"_>½r túä Pè –¿=="ÌøÓÐ{«®+{4É(º¡ª„?™m£GHk_Û øÛ´üâ? ‰IG2ƒ‚@‰ï?‚¾Ü¿ºwþ èõk ÷nƒÞù]]<ý;èºðû `ܧAïý®ƒ€u<&¢ÜžkG~\ Ä. +áÊ6V̸€ô¦ ½Ù‚‚]o€•Ÿ#§'Ï ür$öÍ[Pºÿ;PÎ{PìË W7®ƒóqåÜ9ÐoÇŽî]8ã› +'ò7e-äÍšfUÃâæŠÞ“ 7å”®?*Ä<¯‡—œÅ§Æ‡AC¾ÂžÝ½¾yôòúUÐ…“€Îÿ~ôàÒiÐ-à|‚Ÿú¨-½¬k,|jž„…,–¼7O "ÚÁoç:PŸÇù‡]„²KÕåy§á±1ÇKCA™Ÿ^ƒ¢_>½º~ ôøâгK@.œ]üãOÐÉãGÿ‡s¯ý€y{㘌—ûÅ«æP÷LüJ—–ƒ÷ê9$ÀTl‹ñ)‹ý˜PE=úm#¬à +<2ì7dXäÑtÿ÷ WW®€ž^º +¸súè0ï@wÎ=»z tùÏ?AÇÝŽ—øöˆ’qQ]‹þ¸2Ä+ØœhÚÕüm)±rõÜÐ%`nï^ºz|ó(üåçãèäŒóõ0ð=)0×ýàP’òìj|iœ]<="(‘wÕd Õ°¿VüI9 +‹Uüˆû³±<û‰¾¼ÔKŠYê£'{yÙcUäO]¨_eYæ)Ayái¬â *=íDè›× ‡×o€îqöæúзû@®ønœ»º ¬—ßåëv\…¿~"gDŸp!-RZ¾ENÉ[€ζ¾´J©KÌ\U-f¸†ö¡ +‰º^u,èõ3ÐÇû·A±¯^ƒ^ܼ Ìñ)ÐÙß~=¼ìºtæ<èÉ5?P¤ÿ§£Qoޯ̋»:׆ +Ý“²×FÐá+èàÙ6ägc+þÛq¯‹ŠºÃ//8—r$ñóGPœ¿?(òõÐ ¿› 3ÇO€nüñ0×@ïî?]ȘßK§þòâ<è!‹çNýñ¿ý¿ÖðÕ­ g7oƒòC‚ŽVÄë†Äþ±Öˆú9Ï­r¨ˆm-—¸*®Äo*kªE<ø0þ€[œ}y,úÕ‹#Q/ßsãzuûèÏ¿nž>÷èÉ­› ûÀZ&¼û|„˜‘z^I{<ÝQ¨iÈðÓ2’Fª ¯F…Ô÷£Õ¼n<ãY’p³Çx,„Pî“ÊÎ…eÿ O,¾@Ì.¿ÐO«‹W÷T˜ºÛ‰kã ´ q%Öx>»®ZhUÕ¥•HY?+q¼0PEzÝE§¾B ~Õ`äÍë9ãW]r¡ *û4&5ý:!î%)ɯóWÖÒR—°±‹ÝeoÖQ¡E%uC&¤,WcgFšZ0šx¾’sk¬FÓ.¬ cB ±Ùe—+â²N„¤Ÿøôüèñµ @,_ݾxïx‚œw³†~¯©ç¥Îv’#7&˜ù1ižäçXy|hÒ%vAÌ,ä‹ õC“þ¼ +O¹O*B\MŒ=þáÑ Ð=;ýÎøvÿ(èõ‡£¡ަ„$-ˆÏ=É,/¹7Ä„¾žm÷+*I–IfCÊ„yÕ¼ª]ƒ Æ¥òÌÊj–z¨¦d ®!–‡Eß.LOÿãûû÷ÇBžûƒBßý=¿ûtáÏó ¨wßO@3˯“ÊPϺÔãjà|o Å*©¯]gø6ËlbW¬ŒòËMƒu(E;7v¤Šè_G†ßA•^ΉH8‘q4ðÍ Çï±{ tþÔYГۯ@ÉÁ±ÇIÅ×Û ì˜…¡*šUF«°JH™n=—é«ß¶zfk +TÝ —÷Ò¢»„Mì=vAÑe|FæDZÚ¹²¤äó?>|ýýÓ“ ð÷Ÿ@Ñ_ƒŽÆ†ŸýøåHAJÊ) +¸ÄoªŽ¼4À†l‰ª©[âJœEÂ,Y¥ej›a¯Ýä˜ÅÉj¼¤_.¾ŽH‰:ûåýÉŒÐàß¡iqgSBN½ypôîáóã™±Ù—ãcâÏ¥ÇÄ å•\àBẘ˜÷ÊzØG1'ãêlgYàÞ ¿nwŽÅôaö¶’‹µhª˲*Џ•ú½½‚ÌÊü=üíû#¡¯Þ€²D€r#âŽG~ùzâ̓ „À÷GáÙI§ªPå÷X¤é~>tS̆¹Õ „]ÏämÈ›šÖ³:YG^¯ÅÌöP"´Í˜÷#\È“N\ñý…¶Èê@sm¸‘¸5UM¶É„t‹„‡Ü±Ší*!Ënh•ÛŒU  ¾!a–™<̲” Y”±!s“U¨™Ázˆ¦¦ë`ÅÍwðGzK£ìÙèB_]ùz9Ú+eA¼@~94•´m%oKÄ(wLÖU9$]£E]íª„‡Z— ikbv¡›¿ÔÍÏšë­+Qv7©‡ú¸²žÂX]cü(¿.¸“By^]Vp¾»;U)HYjÀÚe U.YCK^Íu«Xè= ãÑñè.U%cq€š<Ý_bæ¯ s‚By{u²¬³1WÚÖ”>Q×%®­˜ä³¾ Ð÷Mµi¢ÆºÄË¿W(›ê¯/[–V‘¬2Ü*eoLPR;!ï¬cØÔ¿æêÆv´,ÂÂ"tQ„‰W1“ûë_‡+Ç[Z2ÇZ›3ëðH¿6FÝ×>A{TƒûVÙLžë¯-YâælI0É65¥Ôi¬Øõ56]}û¶®±wÇTÓ~x@Ž\lž"$-M`"$Í/%m¤Z"#å4½¼üf—°!¶…Ãþ2PÍÿÖÂf¿h` ßL61‚ÆšyVU|g¦®×eÖîÌ5Œyæk]FAïÚ„MK‡lÈ)9ó#„h À’fv¸¼‘õÃÔ_U43ÖU¥¨.UvC´ô¤É&j@ ƒ»¸Èg²ÎvØdkeŒz€“¾0U‰têxŒ¿gxü¿§Ù¯š[E„- aC×FX9f±¬)iv‚žiìÂ|]$D­LÜU•q{€vv”ÙÔËÈÐ4OuµˆÚøÑÊ^aáüX#Å,ml+¸¸ÕAX¤B}im¨àÃî4‹{°Ült(àm9)Ç®áW¤lðŒ¨,í©LlåGO5×Ä‹[?d}uòѦf¼=3FŽŸÆGL`ƒgûàŸÙ,æ æº 7G`A¿Ök&Üú6ÉŽ¡®Ó®®®4Ë+‰[€6ØÇÅHjKÞÕ•|?·#f!]*6qs—d¡"7Ç‘á6«RR¦KÅ€í…Õ[ +f…Sä®Uä5´LìêÚ½3³’ ߔӇ`«c¨Èå t Š •<·ªŠë’×±K/öjñ9±dSŠIÜ’ÓJ\ªú¦íÉ®SÆÃ™åÄêaWÑ*Ý6AHµâ£Öú°¡‹ýĨõ‰&ö°-VÁÖÇkЫ#¼âå>rœMÄ©ð(ù´m±¯‡Xeí¡E¼§¯ïq*ép§šV¶-¥XD¬’V¾[UIu«L›‚ƒvª««­ÒZÞ¶¼–¿)a–.a#VÆ0æ)bÊæ8.Þ*e•›zYÉs‚<›´gÊ=_3`×Q@¬¦ÙäÄ»¹>˜÷Ü!C$Îò…vk•q‰.Cu‹ÍT׳¬®o]Uµt¯(Ú»Wdµô™AbÄì0/oITØ1 +äcKÞãÅH~±$¥Â7•\ê†Z@ïå¦=šÆÂNõš„M^,fG\l•_†ÛŤL¯’Û‘3ÁûÓ\¦[ÏÀlŒ”~ZïÏ}½Ðž|K_—òHÊ +½¾Ô™õuG'¨5s¨¢º’ M ëo’ïêB—††X) ˜àÆž—VFÝÜ–@2—ݶ隮©Æ¼‹öÕšÜ3ñø=‡ àLñÊ8Xß’õr¦'ÿµc†ÍrÌ×lã°ëX¸ãÔ3à;R‘K…MwH1 ÃeŸVKÞþ\æ7{4M}NYG¿SÞÚãP7u¹T´R‡„lÃEÏ4•¾Þ’`Ót%µM¥Ï7Gð1ÖILŒSEÊw*ñYv :~GM-w+IÙ»@ÜíšZd»†¦1_ìÍp™1oS‚Ûab·¤„,ySæó)nԛÙªv¡¡×©Ò¶E¸xóHÉ{ËXÅßsí6:3B)fç¼ßB¦{õµínuc§SÙÐl“³síW» ^m B¿mLÓ$Õˆu-2c[\Irˆ¶gä}=­vu˜,ëxQÀL{ä §SàÕW7m©xdm'ôë¶‚w«+Ù;êêZ²’æ’SK׆áÑ"pÈ®‰ÇÛÑ +¸>ŽÙ’0ʶ%”B»ŒZêÖs¨g m + a_,Ô ¦¡Ó­#ÃÖÇÊ¿¬ B€|LÚÓ`óRpÌ¡‘Œ<œáWû(w(…¼ýÙ&ñî|ý„ÕPÓnÓ×µokªk7eäb«”nS0ÊÝ:6nwšŽüﺠÛWãÖ££Â¼LÁá,2w׀Ϸɰ‰;jRÁî ›n—S+ܾ>`˼úÿ.°9ÿÌÑ .!s¡ òÑØößÑÁ}U‡kºªmCIÎwÎñj=Kµã?—„]ÿYf 瘷T±8–óÊmÄy†]“°Þc¬î/T÷±Åò빯¥Aœr|ÚÚPÞ«µþì'-º2B*Xè‚mãS=zÒ½Àfï®»÷MV ¹Hܘôl~Yáž©éZ›"çÙ¦ a:BéÑW³™†pJàq«½™_7 +=R‰UL-24fßÖT%^ZèÈzäR¢’ìRx꾌ޮj5 !RGy‘~Vv°T3j—àÓ¶¥è„U2afµ­$TìÎrjöWjEf°º›žègžDþšåplR\ꎂ˜å¡b7ÆŠ>L·&>Ø…í/29€ß¶•ŒŠSU‹{º®{KÍÁX¥¸”íÉŠoöɲO›#…þ$âïU~«]Æ„ÎuÒ³×:¨9{êÚæ#›âëhŸ@oöÿ,ö”¼RðÓ/ëK^˜G)É–aLØ–¹6Pñac ä½sqðÀ/#±èŸ%6ÿ`†_íÑÒa?µûk `>Ý¡Àg¸T䂵1DÔJ_iè¯Ya³×PÓh—rŽIRÆfoÅ;ç*ê@ÅÆØ%<„¢ÒŽI¾¾Þ‰ü©ç±Ý +|[Ì(bµÀ*ÂdÚåd°KÍ%oHk¨HÒ¦Š8«ˆÃØ’q‘66Ù&‡GØåˆh‹¨"Ø Ÿ[F11ûÆ× fOOÈßÕ‘J|×ù,"|Úž‰Mþ5Çå›ÅàH‹ ™²»Ô ô”Ø¡"•oŒç½³L•þðñE{sDÜþ"‹o–P Vlji»Ó•v œ ÁwßÅž–Cô¸£F&{µÈÔ-.{’p]ÄÈ~m÷Ý Â&[%Ð8«º¥@'ÙTèx¯Tº;SÙÄ]¯EÁ%¹4\ʉE>0‘Êö´èôÅΔۃø7'•üˆ{ZR¹KÅÁ¯ããíR_¯2ÆkB¤˜'Àß—ú¡3½¨àÕqxÈú$tKŠÏñš˜8·†XèÖWV» cÞùª.ï"¿axáר5,ìB?*Ø© æúz¢nŽc£wµ<ÆŽ†GßÑ3ñ^“ ýp©züç +·Î¥%—8Õä’ݹƒÓTß·!cA¶däü–(¤ÿ.‘pÿ]¢Rþo™×üËœ:‹”©A†^ï†Ýþ¥äWÿô³{²"p{0çÉJsšßlmÆÍÕ¶¢×æQTÄ?ó7ãÓ×9g_^Iú©ac´OáI6IÑWËHÚ£¿°o +ì×"»jÇHZ%è‹ïPc’E+rêª[vgj{¶¦ðÙsí¹Ûózä€O›&#~iI[àï¦ê„kbZÌ¥•ÞòØ}é”CÂÌ£à œÍ¡æ“v¦™<‰ˆ÷õ'ùÀ]/—{8G‚¹ tŒMEp‡Þ12ñ‡ lÖÏYÍ£!”v⃯» ™?%?ç|ØM®‰ +¾8tÐx§ž´oÂý½XÙîÖ±¨€aìL7Šš*¡KÅ„ì¨i»Jéö8`[ÎÁj›Ë?Ì7#Â~ª„<¯”^²#"¤ºÆ0±kíEÏì@,:&ˆ©ËýÐïm¸°³ì„WßÚ¦(ùëÐoËùÏòžÏt8ÜWøþ_»*Ææõsco/ ”ÅÿµTÝ¿?Ãay[ìrdy°èÃýÇyßý@š&äwvÞ7?k<Æ6Lˆ™k(}:]“}ÛX•yË H½f$^´”|°MÓ•­ÜÐçöÂbŸØDÔ’m) íR2 ;JrÁö$$l±'ý©e¢4À££2À.ºKM*vÈÑ ;*xô®íR€ÃVó>-wrË™8—¶¡gKAt :a_…ËôȉE9&ͩĥl‰ÑQ£¨]cÞý•aT¼¦µ,n¡«ø‹[NÉ·Œ!~lö—½Ýôžw +—¸¯&—îj)>}ÍÚ7ò?¯à«{²5‰ˆxøý&à½W§ðÉÆ Ö&h‹„ŠÚ˜"æÙ]»kbJRᶛᔓKíS¤ Û&àëh—”Zæ»'Ô£ð<ÆÚ6Ï´ Ê*Á'ZD¸„ÕÈ'5#ö¼{™|¨«¬Ú0É©¦”Û$´²=ÀËì(XÈ]5¾%A&›Å¨´m9¹`ß(¨ù¯¯fî¼ ùç,›á5’J]jp˜U\þmc´üƒeh€ÙDèç!c{m—’²v€s³Ë ¹æ1DÌF?8Ô­eçÆˆy¸ÌÏgçºÑ?ê&öfM.5j“£-bB +€G€~kâ²1MXçnNóÍÀØyïŒUYOÌÏËÍùo,C°hÛ!k±òÕ&Ãå.ðêt[àT#¬²Â@‹$÷ËÁ ¦ð¯E:q[IÊ™î*ùèëáž®¬Ù´ýÁ‚°õç² Õk"”¹Ô¨•þ¢7¦¶œ§n“åÑóû&uÏD#Ù5ÈÁùsŒ|pÑæäÇ|Gñkó>unŸ¦oa¥Û$­Ínem¥WË%î*Èy¥hk㘠øj ­¨pû>yWL+\m+~aî-ö_hÏ{!ãG_Rp#Ϙª2߬âSt-åïZÀþ›c¤³ˆQ¶5É‚x|ûK'¬Üa3ÅUÉWz`I:€XÝ–ùpÐ<£ð… õùLSñucé+fÖ‡«æNt¢¹‡¥åæÞT±R.(É ‚L€Ã2oÙ'Páærz;çEÈÛëGYIŸo¸$l¬EB¯A£ÍeóÝ)÷M-±~Û“åÁKCe?”¤‡.)¦è/@÷ìhàñöÉ‚OæôçKQ74Âïg—Û²Ÿîˆ)EÖ)x¾ñÍw󡆅ÞWóhv 1ks¼1ÿÄJôZ_Ù[qUös|šÿŸƒ¸ëÀƒ¯ ¡Ã—Û ^¬wf¿´ ûoôg½\îM~¾§ÅUì(iðí D¬ˆ{‡”X°9‹öÌ`KöÈh/À] ®ï(ñ_DÄz ,ìà/ÌRöÂ2xki®õ•*øIŒµbj®Ð,;úʉÏb=m¸ÐTð`¶*éŠsb(Û,ú¼oâ~¶ªÒ!£B—ºJ¾[†*B»óŸÏvå>µË|}¥ª»¦…Í»¾ºT³•µû3tœ¯ÿïÖ4xK±‹!?˜oÑì/Võxfh¸m2as±6]퇅Øå¤¼é.ðgc1Á©î˜tªêjJ6Â-'çzµLôŽ’n#"—ºr^hø1W–»Jß-4—¼µô@6»À6:€|hÊ{nî/ùd“cSzjÒ^@S_ü>ˆŒ»w`ªiw(¸X›Œ vü´> Yé/û¼>TþqWÃemkùLƒÒwu4Ôá‡ü-Æo–~Ù)8ÔQýì¤gØ„ggĜ쇳-*þ¶o( õŠÂfºžšZÂü:³n‰pé룘ø¥`üÝ©­nñsµÜYø|”y¦ºðÝQ5?áŽ}Š[‹xÐŽ {±£a W‡ñ‰zaÁ==7ý²ž›tADþ~ºõü7}MÈm Žac´¼µ^läÖ!Ï.¡£S¸d·õËH†ìhH¯ŽKÛ7pY?güÕPÊvõ„¢==±Ä«Ä§{Ÿe*ý´T—zs£=ýî® g±Ê–zP!›CÈ0Û$&Æ:ŽÛÄ„¯õÀ¾èª2Ÿ,´•~·Jéž;´,Üž‰Có¨Ð}nW2a.¼oâW¹uBÁº˜S¾­©k°)+éÛSÔl§—¸ÜUðf±=û¹C q‰á¡›Cùï4ˆëÓÍ w§)ØŸó¶5*Ã&ÿp*ñæ ðŠËt¾Ñ&D­ Ã~¼•lûü—½££#wut8 “Êœ2T¼u +µØ_öÑ£c1÷f[uîa­g®²Ñ3[Ùê6\ª§!-“ˆ(@7ÄoIà[2\ºSÇcÙoìÒóy»3‚§‚C²Mbc,#ˆƺœÇ¾g]†Y±×ð)Ï~3ÔDX†±qÆê¿…–̧›¥ŸÅüØ«S¼¸ó¦ÚŒ[rjÏTY»%Æ'Y~õqຶ5‰JôåÄÏYga£«+y²5AÈÙŸaS×ÇpÑ«=ÐË%¯fk³­u¿]D²ÓoQ^Û‘°ëƒ¨ð¹æì;ºêŒ›ÆºÜ:aúM}Uºßb[þ Àÿ–/b"ç»`@òØ€ánOás,ãà…Ž¬ƒÈï'§ˆá·Übl‰[Çgm‰(™^9µì@Ë&šÈ¥ü­‘²OsM 7ñßNÎu”ûÏwT¼7Ö?Þfä{õõ¶IzÁb;ôÃ0&ñOzâ?ýÃo"BÜus.RÒ„m„FžYl) ýÇÀe¸lªÍ¥¯Î|cÊ œnÊz0Lʼ;ÓŠLÚÓ“Á3M ×—{Ò_:dè±’ópi°WNƒzO¬¨Éy"æ¤>òjÙœ_ Õ½{z}þm­öÍ<ˆŒJJ¼­`e}tŒòPs­°/Sä”ËcèÄóJÖ 57ýÖ\Cö«õ.XÂê(9+íËí£„„76úȨ]½ jµ/ã‰Qy~º*î’y´Àÿp†AÞѱY=Œä÷ЯWþoƒßáÕãK·†‹ßÍW¥^S‘¢NËIa®4¦ß;²M혬¯wñ‹z…ëÖR!+ÝE¯µü˜‹Í%¯ÿ°‚®{ud„ÛØ8E ¹¾9Všôï·e˜õx®3÷û¾‰Ž;òúÀÄæìýL–ÿ³BÎζ¤?óè©0—–…±J©kø8‡Šñê™_Íõ¦qùû€–ØU!SœRD†Cƒ/Û_ªØ™ãÖmiˆù€o.ßôµEŒJri19û³ ¼]ÀZeÔ—FP¹2Ì€ïéù_?<¯‚³Ós,#¸è…öâgj~î½­ry¡«L¼1]xËW A‰¼¹h û4tÏÀamJ˜àåAb´ïÞo¯š‰80‘!¿æÉÈ_ âþ *w}´è­y±£f Ç`)Æf_Ÿs.Â.⡼ +Ú.ÂĹpgŠuf +uj}‚<ÂJ(çf=qŒÐ ·Gp1óM…OWÚ‹^ÛÆ ÁºÚ´» +^ü•…¶âw‡úÊ*Ë<|º%çÉ\g¡ÿl[‘ÿbsÉÇm@oíª°™›ØØÍarÚ_ÓÕíÿÌ [Üjjét[ÞÃù¶Ì» Íéw½ôÌ6ILÛÆÅê«‹¬waBÝRzéæ0ùÝI¥07h_E)16$û5–½=Fйš@¾ûÃÚ—ýÆ1Ë:ß׳(‡sü*§ÐèjRþž¯ž³—±Ö_üÆ«¦#ÿš4íYD—šíV±°1×5…N]ï. XjÏ{eªÉ½·Ô¡å¾åçÞXê‚|·ŽRr¬£<¸sëAÅ­w!”•9Ïоü.çeß‘p9. ¥XÅ‹¸`¨I{ºÖSðsš„ØÓ³v,oÊÿ:ÂŒ}âÓ\!w{ i@Äú*ÂÜ蘮’WFAáóqBü5vâ›ãCè°§ÿÎ3*Ýr|ÆZoÑËÍÁâO¶ d’G OþwÎôNšf±8€Hý{¾~|OC'XsÞ®ö$Þ2å½ÞÊ»odÒj.Ù2AIwÊX‡„VØŽ8ÅKýt¤«"ôä1ìÜrkæë}%±à¯9®àpŽÁ ¥=<*ãÇ}ý9CÅ»Õèì•þâ:}[ ‰64dú–Pú Ÿ¶d\¢ª¡âÕÒ>Á9Ý0î]lÖýµÈâ¸'ËÖÚRü–ZSüæZRî;Õàä¾hu´ì«C‡+ò.Õ ÿ\ù_½äJ_mð]# áP“ ½^y4,Ô(5ûþþ4³¯cc÷µ¼SÌ(¶Ž¡B7{òžX{Kýw´rË0:t£ ñÍ1ŽMpIÐq€¦ð·°‰ +'æ¬LR27&i¹.5 eWá2Üzx‚S[ìÛv ௚t`¢a½H×§?—óóƒö´-Ãû€6ÝpÖ: ÒU¥ÞP²â/kyOô=¸hzÁÇ?:à÷]ãløtcþ‹ALàc„€3Zaì=üÌ$9ììzWIÀO#¿2þ´1ŠNØ’2 6 ¶##dìÈ*B-ãy õI·7a¿¦«šM|¾M +h±^ð—­1T‚S„M±‹*AÇ›‡àßÿW'lí{fa±»üíæ>iiˆœ,åæûIé©—d´Ô«JNÞóLô•Rܵ¥pð|Gù%?嚘™|Ÿøt¹±àËO@üÒÓ»:zº¯ô³º!åõ¯Yï×·Ú +àÊÆ@Á›¡âæ@‡O–üœc³wôtÔ–ŸæRQÊöüªíIxèb{þ)=ú´Vwq¦9ÿÙB6¢ª<îFÙ÷g¿-t–G±Ž·II…–Ñ¢wjaü­ºâ÷g9)ÏOH)1€þÃg¹e¢¡®üÛr[ñ‡µ|_ÏÄü»Èüšf’Ü*B¶CމßQsJ6acë”PJ/é«íj•}šoÎ}ÐRrñè?éɱaâË¿T”e å–á3¼*JѾ–u«±é 4iSh®©ò€}#‹ñk¶¦Ë­ T¬öd>·KÊ#÷õTp¬à*ìSÄÜÕ^È7Û$Ù÷LMÅ%Ý€±'†ú¢w+yOã…_åáÛ£e‘+yeÌ ³.qE¦ïwáµ¾üWk½à`à_ß¡]©ìŸ…ÿõÍ©wÈ)åÚ†¼û[R:Ú>ݦۙkÑxyuŠ @<ç¾Ú.ýî–áòþß&…öË„Íw+¡q‹¬êÝåZÑþ, s0hQ +踗 +Ÿ¹p“C‚ÏÓWe>ÝsTÍeþ– bñžVÀ²Œ¢#—ZÒnmöd>´ ¼]hH½cFƸuLä*àq6†+>;'‘±À¬ôB~lObRìR|ÚÚ6JS[ôdsn{»k U¨ï*kÃ/Z2žôâÂo÷ Bo\ xLœ¡ }öÇr{þ×W˜œ=¶`KTdÏ}ë@Gøzš[%´"ü·' Ù5ŸfG„-t<žmÎ0IK¹Z™ùõt[EÐuKYäB_éWFÞ׫›¸"š +]é+ù<Û^ðxº-çÞ\gÆm»¤øÓ¯Û£ç³7DÔ,—’>˜á×þ½È¯ójI¥¦ú̇*VÚÕ™†Ü[˜Øm ³ÄØ +ÿàVr)ÀšP—ÛsŸ7¼:ÕUöþ¤˜ü»š{Þ1ù¿uN³Y-ä¿>cîǤÿ2Õ´ý21É?èœ,Å<šõÎÔã7Ýsõ×|e£kºi|K!à[DäìÃiaÛžIúid`vUä"·¤"|½/ýÕÖxaà_‹¼›VXk³‘^SeÕÞ“¼£Äg9onô!î +R_ŸÚÖðhk„D‡Š\âPÐ|Ïé­±´ÑSòv½3ëÁz[ê}Ç8"Éw GÝTøhmˆ’¹-aÁ7ÆÑÑ›ãè¨1D°Y ¶)Qq.¾£¯ïò›&¼¦úþƒÙºþÃY^å¯9.xåy€qzg-©Â§[Ô"»º’¹>Šöù“o³e/æJkù©×[ó?™‡a1³ogZëýÂÒÕ^AéÚ«`u„»èÁåð·…ÜW^=±Àpàê$5w[B/r+L‡’ ÝœÄÆÙå¨X ;zBžE†ˆ6O “}½V]6Ö©d!Üj ¿5 „¯W×Á4 lÁÂ¦Û +-õ"ÌSŒŠµIvÙL+%l®1]‰z-#ç\› &^T3Ÿ*r^tà¢ÏJØ­£ä̹ö’wÆšä;Öâ¯ó­Y/¦ë“îš3_ìOÓ\\éÍ #Zaç—ZŠÞîéØD†Mt©è’ʬXâ\OÉ;UeÖÝf}=8Y|³àVŸ>Ö³¨¿Lµ]?Í üy ¹ÒWêo“øîýâ ͈ïf1sðß½Â+f‚Ýô2ë &NÌ»ÙOˆºé”3ÑËýèD)?å†u +à!rw–E;X`1üÛÑWrÖÇÉ9%µ5É(ðjÈE6)õýr?*fGM…¹gØt¯Þ»ž\º9†Ž4c",ãÄäE_¥†t¿ù¦”;rvÈÅ™†”»«]wN6Û +o¬öC‚\r|Îá4¾ôp–P¶;GÃzt<Ž×Àìš*…{FaíϹúQ_¼Ÿ³\Þî4a×"œ\¶UKÈÒö!t’nn “³6ˆ RjêÕ†<ÿ£uY¯I‰a6; _ZljI†>b\31ý~7)üúê,Ø%ã`w”üŽŸ³kÀænÉ_Ð ÚœbB­ÒjÞL)vakžÂg¸”@^à ÍËþžãpL!0FŠG'àîšj;÷LÂj¯‘‰w*1éÖÉâËdIˆMDÊrˆÙåk#ä$ »ô^7*óa;8úFgyøéVpè…úâ sC¸¨«ÓÂŒ;Ž1JúdU#*êÒr/!Û.®Ä­b"7GË>;eeVQÁë"Ù­%C,bo¾º×i T¸ô„|·™êÔ¢sì:n[IEíÙÌ 1&ncÈw}WhjCdئØå¶IßxÐ ÎIL‚e´Ø rñ +¿ž[é…G¬ a#º*ü­蘕~xÈlWî«•‘¢/[bd x];ø‡´.çÀùÜ_KU½¾z‘ZB¡ÙW[rfž€F[¥Ä¼Ùd0§vôlö®‰Ë±É°©³me¬øKbZÒù6è—³¦¦”v¹l˜™ù¢ ~yÐn- Œü¿{íô@^(بµqršYÂ,WËž.÷a“vþöÕP÷j°ÍAX€¯®©Šq¦öþ¼±µèc=*îî÷G—@¦¶œ€ˆ‡´ x¥'å…¶6ý>;óõo¼Ìg'͹Ÿÿ»Î©ßV +6Dð0ÀßqËeþšãðþY¡Óÿ^”¯§-õd~^‡ãAîMsØ.‡èÖ±ñ»Z6å@Å"ÿ;GÅÿw…„<˜ÃC—úʾ¬õãcle¸´µÍ.m%×­Ôx •—ŠC²OâóDÚQcÒbXœe¸â«eèì·úš‚{sµ¾ZsÏu¼¤»ËÍÙÏ,½àëݨ°I~âÝ.Ì×ß—ºÊƒ ÜÏYbÅ® `u¬CËt>à p†[ÃÂüœ®í:0ñ؇&.cÏw¬ib‰ Ð}­Dß ¥æ?™m…M²s^öCcÎÉèYŸ•¬Œ·sµ€–.ýä’`’Œ@.5áb.÷¿ž±Kð¹ûÚ*KÁ'Ú¤¾û,¡ß­“˜¸µdØ–Ÿº4„‹W5”½Ú˜ ”îèµ-©Ä)/ûn“Ù¦ qÀx1ûz6Ñ«ç3<>Ç­eá÷M|ᾉË÷õ­÷h?BLYïÁE®õa~ˆ+óg>8ûü2¨w¥?ÓPòj¾¹ðÙ$=ö–”—út„—t«wÏÔŽK˜DÏò"hm¼6\öÑ©€Fÿ\$ ÿYçÔ.TuïÎ [zªïš0é`žÉ;\tîÍÕx¦…õnW¶”¤|`}?³“n÷`c®î)t¯¯w»‚á‘Ró6ûA3ÍÙw¦›Òo-÷–Z&©E£œ¬{²ªœg.% u5l‚ðÕ5.áÂglÉñiŠÆ²âšÂ;³üîÝ~MIÌ´ˆñÉÛr2ø`žÅøkS0*6'qñó]o.ð–ä¢-)&y©gjÈÿ´ÔY¼6T‘`¯[aF8™û(ñ÷>ÜRó6'I™V¥Ð©g¬ +lcŠš·¥`Bô-ÐÀÅa` Œu=Và³MJÉ1 ÂÖºÁ_–ÛÊ>.@c6§Xå¢jx8)+àÆbwá×í©âïÓmQ× MQ~ó}…ßTٺƜö)xâßËìÊÅqTœ¼©ø•UL‡ÌÖöÌ’1{&pŠMšñf˜öæ÷aü‡?Ö +C~-p*W†±qÓ=؈-%‡ös¶Iüïluç—¨„¿°….5,j¾³ø­mœ’å±K\rn¾~ì`¡ntß$¨µŽabç +ì9€|[hθ·Ü‘ýÈ×ÁÔ\òl¾ õÉ9 „®´ ¾i8é7§1×[ Ïr³žb¦=9Ö\þáäÆ &ycŒocÝZbžSM*Ù7ò{³Õ=ža³[ÇÂL³[“¸dŠüõç,‹lÓp ëbv©yœ_±ÜÎŒdܯ*øqr~Ó9Ê«Øì‚,4eÝÓׯ^škκ¿2€˜ëÜíipÛ8>Ñ&¢d:Œ2»eÃÂ-åAŠêØ;rAÂåÍ¡¢Ï?g©d«ŠT¶-…GnK*¾;d˜]¾ì?³dðfHà_¾žÌr[BÉñég§ŠGÙÑT×Úd<üt+, p¡yIÁ+xÔŽLð«-¿<[ŽY"¦Ï·Uø/uB?w £¯NÐãoÛ§9[S\ÔL=¾ŸtIV]¸-åí*ZÅ®Pì5bòÝz$—è»–Vn×1àžéª¦Ý^Õ —÷fÆ<¦š©ªaXÿ¹î²7¦ÖÂÆ–’· =˜ôFxÐu;ñ¡}”‘méAêø±—ä̰ ÓõiO{Êz 1—&y鯽€ç³N¡“g; +_Ìv¾X÷õ·PSŠŸÁôªÚ×j¥®iÙ*gB¶$µ\·¦Mt8ϯsj©åÀXËÜÀx}=¶=F&ÀkøTð~W[׿”SK·Ä˜øåÁòm}ö½ù^xUB.Ú›åToH1¹³ýˆ§ž'ð.;:Ú¡ga¬rJ¡ÈÝiAÓPݸ­©nHiyN•»«Ö+« +&tq”’4?ÌÊ\¤%nŒRLm¥_È©¯ÿ¨)ývÍ¥ JTʦ²ØWüÑÔœys +—º"â!†é%€¾$LWVmËpiÛ2d¢YZ¾>Y·Ð—ûÁ&E¥ï˜*¹sýÌ C7îǶšËþg©^ìQS|š©Ìc¤£÷fùuCeíž¾’ëQ±Qnå4¨[+¬r*Xˆ-9±-!óÝÇE;'H)ö)bÚÖ"ÂØ˜rW_uo®ÞPu¶sA.Ìx0FOº3€Š¹4AŒ»<Û÷Ô<†‹Õ4T¼žkGÇ8U|²EJ‡îèØ”ÝÙÚ>§QXcQP +6Œ_쇭¡cdUÉwSøâCM³ï9«Ÿ`¬-|ÐVþã·ÚœGŬ´kä¬Ï§ˆñ/ON×å9ÄØd»k— Ì£åÁóéo4ÂïW¤”¯§—šóÞ¬’dU©·tÂŒ{‹íe_Ÿë«kžùÏ¡âÀˆÉ]ŸÈ{ãP Òÿpú¯…šÿÌqù;Seߣùþ;RH䮞Žò˜ižBÆónSr-“,”¦¾â“ 8üJ^à“Ó‚œ禫Šî¯µ—¾0À#:ßÏtÁB.-µa#·F9KÝ¥ï'˜I7åU¹Oæzà_uÐ3=ä¬mUµÀª ænM¡“ +zWϦÎpù{ÓÜŽsªqÅv%6Ý¡¢€÷æk‡vfõ=¾4‹Y*øèVüp*P ºVxx<þžª¼1ÀÊ™k¿F…]l-ùzQ„õÓr"®oööj)(iKögvÖ‡s–F™W]SíÔ°»Ï»T„\—›»·D§ØMÄ’*º‹št¿úÝïp±fÐ;Û8åbÙ×Ï{¥»à­yd—áRm„Wå½iG…_šï* ´MÑ6À5["BºØ, +zé\/:x}Ÿíâ~~ŒT²ØLqª+Y.-éÒ3Ð;3üj‡à65 ±­bÁìÚ–‘õ ie˜”éÐp¨j¾¼ªüM'<ñz/*úÖBsÞC)/ñ¡®17xu‘Öƒ½j™‚¤î©¨]à»gè4ï,…âV£‹,#>Å'íN ›v ³„Šñ]Ç´i˜H³Œœ»!£—mšÃmÖüÝ´*¢æ¯Œ²¼³Ír÷t›Ö3×¢ý_m“°Ö¥e@¿¸·ãb€\ÇçµB®;$¸b‡¶uÔ¢h´Èëª]Z>{ZPã1òXsýèˆÅ~"ÀßèT›„kG†/µB>ˆ9ÇÈéw¹zŠI >CŒÿrÖP]µ=ŠŠ™oO¿³ÐyOUs­ùþô>ðÚ0)ìöbgÑ7}Wù‡šŠˆ s ôtûp-Á-#æîjá‰.4j}¸è½e¼ð³G…/Ý×3ñ6)>cWE*üwš‚ø°ýw+üeâqö´ÈBWƳåîìW+£èXäÇÕ!júã•.|Øbk…¿©.ý¶Šye„p¾®Ôÿ?åéQ9#ù¶ˆý”xm¡%÷íLKIØbà‰E˜¸­)JžU„L²Š!ñkãÅŸ‹t+Õ.9 åV +7DYßV†Ó>oN”~wjÝ8Ç : ¤ +³ x€Ê_s¶ŸsøÒ]#,Ù!ƒEy|wÉɹæQLäbâóF9Èåt ðÙ«Äg¬÷ÿŽÞú­Í´ëû¥©Ì´3ÓéÔ;uWÚÒBKâîî–âî®@b„¸ƒ‚k‚;Õ™û~ÞgïþCöÅþ-äÉ•ó\òù^YçZ h9&þò 9óްç!jù§ ŠV=§ æO*Ç&'À¿Œa¿N’à‡À{¯¸1¥¦ÖâgjFÆÓï³"ùšƒC\µ°¡Û6eËŒ¬ÜÐ@WU ÌM3²DÃ(¸ÕK27Ø\¸ ÅäOõcbfdˆØ…!dJÈD,˜—#Žú±å¬Úqeæ¶ú×:Né»M—¨ugTØzTÛÄɪu'¹bð·ý)®`Û'Œö£’Üø‡u7Ÿ5k Vè)•7Å5‰ç:k>œY쫸¿c§ì»à¥½˜´ËñO®ü¤o)Iþ<Á¢Žqé! *?ĹsÕû}Müž‡?ôs9“ +h¶‰–{a\ +ý°é¦Ýû3ÑÖ'¹8è¦7†ˆKzzݦ]2C +'Øâ/“ÝÞç„}G³«ÖGÈ{STÔÖQŸ°a|¡OÚ…Ê~ýë®K@]7RËŽú·‡ШyIã qåÍQ1øQ?µâr]üßñ9ÏCZD²ƒŸwÍÎÌ>?Ó[ûpQQólËÔðñ‹‡Þ¼ëá< +hZSÆS3õ¹»^ÅØ–·ÏvhW~âð?˜ä#îX0R +åüúW¬òØ M9ûrÕÆ:9¤$¤Nu#ÞúÛšŸZ)µ×œŒú‡+ƒÄâ@Gã+_Káµ üaV^ûj¶¿òÍŠ‘0rLP×?=XnçWÜŸè º¸È„ üñ‹Úq7 ¤†ï£äw?ƒ°aƒ§¯#\ØÒ]*ÿ?cTÌÿÎ +º¾ûøî—/*ê¢VuÍY‹zt–MC-~0׉›é®âåç^¶PRÿÌ✠*êAXêÍ q}¸ —{«èÕõ°¹žÚ˜}Û‘†%…´Ðøiicø²ºòÙš¹âuH_ýzËJ©š–7e[ظ<Kú2F@| à`_„ÆïS¤æoSDè– –±nmŠÿ`±Gøü¯ã-½Gþr0B¸±¥k:ÐÇÉî’vú•y9ôÓ”S¨ æA£ý˜c +gTÐØ6}×Éü;É`UuQbÂ¥Q~îÝ(bßN(Ýw‘j¬¼Š»ãô‡M ¹|ÓŠÊ›ê¯}=ÖYuoNYû,dG¯9ˆUN*v{„K_4’ª7=Æö(—±î|ÄCƒ|žaS¡! ©ø¨ï _jç4€ï+ð)’æ·tê½àµ7D\T‡ßèhŒû­U;©Á·<ÄÆS¼6L‡lz˜è}±aó¨¯_¹éÀM*£¼•÷Çà £\AÈC‡ÜØú­q6sÅM…œÔ†/¹è¾5GSö¬ºäɶ‹ŸRà‘ÿL³Eÿ]æJöô×irÛË]´ð’¶9ÕÙY“¹j>Ò´â5#³zYOì=ÖrÏõ€“émŠ;©G$ŸßÐPªç±ÙFJæï+Šæ¸&cÛ‚JÛ9:7h†e,ë±9þ~\¼’Pò`}ˆJ8˜’8·ö×?OPà{>6iËÍ%­Ø…×V“~u®S{h¥ÖÏJªï-öC#&;A]Ôâó“¼’+k*DœŸÉ¬ût¾œx}ÇIõ•Ø´Ã’fdO‡¨é—ä„Ô?'ûªŸ5°8»&¶0úáY)ùÑÛÌ#BÁ¿=˜òÉÚWÎÖœK‹ªªð]­©n´¥<ý߀¨ÿ; Ù?» åûNlÁ¶„~œè=s´6>êBæ]Äæ^ÜÒ1›ûué‚GLõ ¢úð)ÃÜê{mu1g…%¯Ž¯«á©£­åO|¢¢›Û&XÊî0¾f׎Íÿâ!TÍ¿®/Á×UþhD\þdË|tCÔ³jAçÍ Ö½Þ;ºßåG| `jÿwJ=š¯½mg!>»$Š»ˆ±a£TÕ}Ìtßö‰r¯rnì:°•ö®ª )OÊßýv0BGÎH1SàgsÐsÀ¦_åçíajö“ŸÕ€RÌÜä¿WM ´¦££wÇ„ý1é?óüž/¢p~¨ñµ‚VðšñìòêQ=›Û¸ ¯ )¢¿¸`yAuÍ[Þ]ìéé^hT:ó>ïåï&fþ­Cúy ßðÙ‡-×lqhÝË_µâŠÖ\Ü’…Z½ãbc¼lÂ÷ :î?³,Þ1*ì àû‹Êògž¶¼#]MÂû2HÒ¯íåNˆËޟùsZR}à BÕˆÂa~ñC³àÒŠ‘\ +ä±”M3"Æ,Þ°*8@ü2M%NR°»LjÈM… ÷T>ŸR7%|o·N {6½,Üú¾`Í<Ÿ "C¦æ $î—€ú¿ëBÃÑÌé-;ï …þžhoxëémŠ)¼ý3êÓÝÓ‡v4À+Ø +— ÷ò áý¯>IÒ%wÚ…yEuÄþ0 r0ÚÒæî„ÆÍ¢²~öòÿ†èÜÿ¢sþÏöcU¶ç„¥Œw×>'|øŸqzYG„|eâ¿8h =3¶xYN43óžØx©€K9¿k€f¬™Iuc-µ×‘©Û&Rñ–µmCçoۈͻbƒ~~QÖÿm„M´Dݶ–¹éÂïxH &…=û:ôÐÏ$.é©Ã†¨]'¹öÐG/«`ŸF%7íœÌ¿z Ÿ.ÈQI/*Á±€Ö*@ü3áÑÕ“JBñ»€]nØ!ñë6Hüš»ëÂkK…Ú¹d@§¯ZI¥ŸGDÂ='·<Ôœ¼;Œ«\×AãFøÙ×åw¿yZ+ž´"³ïæFÝÿEŠÈº:ˆH?#oŒ9á$&ŸqR- ýðk(îB[}ìÕaNÑc ¯<<îÁ_a ñÏ,›ÐY-"~Iß½ç#€ƒ6tÁÔ 8rFß»øíÿb‰áÉ[6æËDëÀáT›úÛ¢Øöc‰×÷}š„ú +Ĩ•¡úð òÑÓ^ñdNO\Ó¢’ƒòÆ÷!E}ܲ¬ê´ì;‹…\Tà€XXÿÒHË¿»Ð®¿ü¶•˜õÇ<éŒþéæÓ¯ãüœ«AYÃ˱š—*ªz¶¨@¤ß«*h"K›â„ÕÏ6ÆÝ=Þ ÿt{ÓÏ_ÔT¾Z1ƒ3v½dÈÁfmó:¾ÎsÄGg`ÿ»L¡Ï*ª~`ò~Ìt¹¾Íð»?O³8ÓTÜá8¶rËÚôiw]ºíÄ5N(SÖ,¸ºM ¹™ùWûê"O¶—¿8fÂ%ü¹fÂ;¥7ñ§9e¯«Éùi…oO+¡—ý\ÐS6ûœ‡šyn¶ ÐÎÒŠgRlì9NÕ럆pé—UÍçe5Ï]¼‚{^Qá“ ¼8|–ÿ%À|>Ò»6L*[³Ñª·‡¹¸=Ÿ²a!•¬jÐI!5:~à«@GÓÓŽ¦”ߨ…ïöó›ÞºY m”‚ nNÞ KÞ'ö†ù×hkÞÝm3½~ÍHÕи£þ˜ ²†÷‹²òkCåÏûó_¬kj¢wÜÈÌ=µáÐÍ£¬›ðÛFDêW¶êÀÉÚ²C 6̨¬¯#”¦M®pдk6o‹˜A-¹`ª§ñ…qÎ@J? °Óµ #,`Ì #½ìª·¥é劆Q6Ñ^óHJøCP~RR÷îìd[ͽÙnÔÇe%§qFI«ã3/Lv2W‡¸õ+*d¦‘¸nÁ-6²K쀖ñ÷Bb·ÝTоŸ +;'AM >ÅUŒâ«½õ/¢ª‹C¨‚ïsBźP²¤jŽY!fPÉNå#%<õ‚OPòxËJ¬hÁæþ]Ÿôâìp+¤hÅL®pðSÏ[™q7켤ð)iNÔg/ûyTÀ_&ƒ0¥—T”Œ·ÿΰ¹‡> :ŽêÜë_MJJnº8i\œŒ;KFB1¢àý_èì˜ÛÛ.nÛž‡ÐèoÍ¿£ÅÄüÁ)zò“¸ìéñ™Žü»n|uÈBoȼŠ]ûô³‡ˆýÏ<§íë8ªx:'+¼µioJø>ɯ;hH#ÿ¾›_pÿ{€}T; Úq+V4èŒöi¶¯úÑÜ@íó !“Xu‘þìÔ¨¤êÓ6OÕ ¤ÉžòwžÖ’}ðÔߘ¯~2P/¯’6lˆô ¡!jÏÍôV›ìÛt§X3å—I:È“ŸƒS¾M ëþ™©CV"y¸³0æó4•ðe–ÓòmšF<Áý˜ Á¾0 š½ê ×-ëðy ܼ͜»vÚß[FЧ%&ÑÎ-üËJË;¯Ãœ‚RN#SÂ2JÎt6… +ßœ"gÝù©ôꔚðñxÚ0êã ŠÆ÷ÎîÊÇ÷gF[ê>}q³ Ÿ½¤Æe,aVK*Y±s°»>6eÕÉ» ±VÑ­y5&ÛÉ%lYèõË*dü˜¨ìº—Ut endstream endobj 7 0 obj [6 0 R] endobj 33 0 obj <> endobj xref 0 34 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000058497 00000 n +0000000000 00000 f +0000060920 00000 n +0000060734 00000 n +0000794165 00000 n +0000058548 00000 n +0000058949 00000 n +0000079137 00000 n +0000079024 00000 n +0000059707 00000 n +0000060173 00000 n +0000060221 00000 n +0000060804 00000 n +0000060835 00000 n +0000061345 00000 n +0000061602 00000 n +0000079211 00000 n +0000079609 00000 n +0000080881 00000 n +0000090313 00000 n +0000155901 00000 n +0000221489 00000 n +0000269461 00000 n +0000335049 00000 n +0000400637 00000 n +0000466225 00000 n +0000531813 00000 n +0000597401 00000 n +0000662989 00000 n +0000728577 00000 n +0000794188 00000 n +trailer <<22A1AB8162374CBEBAD99849787A9DBD>]>> startxref 794385 %%EOF \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon-results.pdf b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon-results.pdf new file mode 100644 index 0000000..056c5dc Binary files /dev/null and b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon-results.pdf differ diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon.ai b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon.ai new file mode 100644 index 0000000..5d2803e --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon.ai @@ -0,0 +1,3377 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[6 0 R 35 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + Print + + + 2018-12-17T17:05:38-05:00 + 2018-12-17T17:05:38-05:00 + 2018-12-17T16:31:46-05:00 + Adobe Illustrator CC 22.0 (Macintosh) + + + + 256 + 124 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAfAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9CaJo1lrGn22s6zEt/da hClwIZ6ywQJKodI4oXLRrwU0LheTdSewVVtR0fyFplsbrUrHSrK1BCme5it4owW6Dk4UVOKoXSF/ K7WnZNHXRNRdORZbQWk5AQgOf3fLZS4B8CaYqmTeVvKSlVbSLBWc8UBt4QWNC1B8O5oCcVXf4T8q /wDVmsf+kaH/AJpxVA28kOheYrXSBcv9Q1SCaSzgndn9Ke2aMNHFI5ZqSJNUIT8PA8djQKsjxV2K uxV2KuxV575ivf8AA/8AhXRdDk0zSbXU55bK91C+t6oq2thNOkrelNaDkzW4Ulm/axVg0f58+QyE /SXlTn5o9OCW6iitUZTcSx+q9JXT1BSqgFl+0wU064qj5v8AnIfyfqUATU/L0k1sJSkaTPa3CrMI 7hoy4DOiClpLyepCihqQTRVO/I/5ueV9R8yxeWtO0Q6U10WAkj9BY2mSOVz8EdCyMts/CT9peJGz bKvQT5c8vNcm6Ol2hui/qmcwReoZK8ufLjXlXeuKoi907T7+IQ31tFdxK3NY50WRQwBHIBgRWhOK usdN06wjaOxtYbSNzyZII1jUtSlSFA3xVDny55ea5N0dLtDdF/VM5gi9QyV5c+XGvKu9cVRF7p2n 38QhvraK7iVuaxzosihgCOQDAitCcVdY6bp1hG0djaw2kbnkyQRrGpalKkKBviqHPlzy81ybo6Xa G6L+qZzBF6hkry58uNeVd64qiL3TtPv4hDfW0V3Erc1jnRZFDAEcgGBFaE4qg5Do+gwxpa2Swi6l 4R29nCoLycGc/CgUfYjJqfDFUtCeXluRdDy04ug/qicWMXqCSvLny68q71xVEX17p1/Gsd9odxdx oeSpParIoalKgMTvirdlf6fYRGGx0S5tImbm0cFqsaliAORCkCtAMVQwTy8tyLoeWnF0H9UTixi9 QSV5c+XXlXeuKoi+vdOv41jvtDuLuNDyVJ7VZFDUpUBid8Vbsr/T7CIw2OiXNpEzc2jgtVjUsQBy IUgVoBiqGCeXluRdDy04ug/qicWMXqCSvLny68q71xVGXdpo3mvRrm1urblC3q27LcRKZIpCpRmV XDAMA2xxVU8okN5U0Ug1BsLYgjoR6K4qhvM/lq61S+0bU7G5S31DQ7iS4tknjMtvJ60D27rIqsjA 8JCVZW2PYioxV5xdfkb5rutR1O7PmeOxj1CV5Ta2EEkUVHkhb0iryyLx4Q0qBWtD0FMVVtB/I7Xt N8z6brN15kOoR6dfG9EE63Ls3Jr4H4zcH4zHfIvI1/uxUEEjFXsGKvOvzel80W8dreeXbCPWLq0s 7ua50WRXL3dss9p6iQPGRJHOm0kTLU8l2BNMVTTyT5n1GbS7FNeVoZrqiQySkerHN3srviqKtzH0 qFAk6gA7YqzHFXYq7FXYqlehRm78vaU9+nrXBtYJJDMvJvVMSlmPL9quKo97O0dmd4I2Z9nYqpLD bqab/ZH3YqtXT7BQQttEoO5ARRU0I8PBj9+KrltLVXEiwxrIKUcKARxBUb07KSMVVcVdirsVdirs VdirsVdirzy1/MnSPMvn+DQNEikuoNAvXj1bVDVIUu2tLpVtowwrI3wOXYbLQda7KvQndERndgqK CWYmgAG5JJxVLLfzV5XuVtmt9YsplvTGtmY7mJhMZg5jEVGPMuInK8evE06HFUZcajp9tdWtpcXM UN1fM0dlA7qrzNGhkdY1JqxVFLGnQYqiMVQNpr2hXpthZ6ja3JvUkksxDNHJ6yQMElaLix5iNmAY r0J3xVWOo6euopppuYhqMkLXKWfNfWMKMqNIEry4BnVS3SpxVEYqxl5LiPy95lktiy3KPfNAyV5h xFVStN616Yqi7fRNV0/nDpN/FFp7MzxWl1btP6JY1KROk0FIq7qjA8egIWihVW+reav+rjY/9IM3 /ZXirvq3mr/q42P/AEgzf9leKu+reav+rjY/9IM3/ZXirvq3mr/q42P/AEgzf9leKrtM0eaC8m1C /uvruoTKIg4T0oYoga+nBFycoGb4nLMzMepoqhVUF5k8tG+ElzZpG80q+lf2M/8AvPew9PTloDwd f91ygVU+K7Yqw3zVrPmWPys2l6Zc3HG5L2K37OsepQSPC6x20srywRR3KzGPhM8gEifZb1CjSKpr +T/nLS9e8tQwxahLc30Q9SSG79X1ljlVZkCPcfv54VSZfTmk+Jk4s25xVnuKuxVRsbyG9sre8gJM FzGk0RIoeEihlqPkcVVsVdirsVdirsVdirsVdirsVdiqTaxqF3NcjRdKk4ahKnO5uwAws4GNPVII ZfVfcRKwoSCxBVSCqlHo+XdM1/R9H0e1SOdb1ptRkhUEhzp9xxa6l+080i7/ABEuRudt8VZhiryD /oX1beWS5sNdmguXaaQjgfTbjcVsYiFcERQ2ck1q4UgusjH4emKoaX8hvMr31vcnzUZGtJ4p4HlS eQ8UsZbRrcqZ6ei/q0IBDFKjlU8sVTnyx+UGs6R5ttdavfMc+q2tu95I9rMZV5vcNG0MtEkEfOP0 +LVU8gfkAqh/+VI3cIglsNbNqwiIvtPWNxZXE73VtPLJRJElQTx2gjlVXoxo38wZVLW/IPzOZklk 853FzcR2Zsv0hNGxu5ozPaTmOZzI6mP/AENkAC9Gq3M15KvXtHsH0/SbKwed7l7S3iga5lYtJIYk CF3ZiSWalSScVS7TbyGystavJyRBbXVzNKQKnhGoZqD5DFU8xV2KuxV2KuxV2KuxV4xdeadZ8x/m hc6fouhObS3tktNWjvovTjuYHe4HO6BqFiWS2eOLkperF0HDksqrGPNHkJ4Ndj8zeXrnULJdKE4+ o20ghuotRWJvq9tcMyzqnJnAVykkc6N/O3K4VeoeRPzKufM2v3GlNbwpDZ2zyNeIZQLqSO4MBktV dFrEvHjJyoVf4fioSFWfYqhdJsf0fpVlYc/V+qQRQepTjy9JAnKlTStOlcVRWKuxV2KuxV2KuxV2 KuxVTubmC1t5Lm4cRwQqXkkboFUVJxV455S/Nb8wNa8wrpkGn2d7bzwEQ3ZZoZI5YZ5o5HurNfVe 2ZQY/UjklqONB8cgQKsw1fXtJ8q6XcxPqSQyRusmva/OOfoy3BChmUB+U71AiipxjSlQEVVZVM7P SbMaRpFz5beG8t4pvr8c8kxK3frwSxtM9wqzF2f1+fOhriqP+s+av+rdY/8ASdN/2SYq76z5q/6t 1j/0nTf9kmKu+s+av+rdY/8ASdN/2SYq76z5q/6t1j/0nTf9kmKu+s+av+rdY/8ASdN/2SYq76z5 q/6t1j/0nTf9kmKu+s+av+rdY/8ASdN/2SYqoxaJeT6HqljeNHBPqn1nkYS0yRi4UoKFliL069Bi qd4q7FXYq7FXYq7FXYqwX8zfy7n8zWgu9Iun0/W4Fqk0LtA0zRo4t+ckZU8oHlZ4uXJQS2wJ5Kqw fQfzFuJdLvU82JFF5v0kfUb2RYhJHfc5TEtjd28StRpHZ/RWhZlBljUoxDqoHzN5O1SaZvMnlq6k 07U4DGY0kk4yQXIkjaNLp1dYp4iiukM78ldXIYipkKr3LQk1dNGsV1mSOXVhBGL6SEcYzNxHPiPC vfavgOmKrfLlzPdeXtLubh/UnntIJZXNAWd4lZjt4k4qmGKuxV2KuxV2KuxV2KtOxVGYKWIBPEdT TsK0xV4B5n17zX5m82tp13p8mmnhbiPRZyy3bLz5j0YJxcabetDcxhpJFYJ6TUbdeUarKreDRfy7 8q3UMd1Fa3cEMMeua6kcfG3IQJBbwrxRHmPIemhUKtfUcAFUZVhnkXyD/jLX31y1in0zy5zZpnmd 7o3SyMJeEMlyZDzZmLTzJyX1AJLeQepJir3O7Y6TbaZpukW8ESSyCztomBSKKOOCSUUVB0Cw8QMV b/52r/lx/wCS2Ku/52r/AJcf+S2Ku/52r/lx/wCS2Ku/52r/AJcf+S2Ku/52r/lx/wCS2Ku/52r/ AJcf+S2Ku/52r/lx/wCS2KoS51fUT5X1q5fhDfWEd2iPDUrzhjLK45j5dcVZBirsVdirsVdirsVd irsVYN+ZP5Z6Z5qtWu44EfWIIyIUlJFvOOSFo51FKh1j4FlKsUJQtwYjFV3l3yr5m/wTpEerTW8P myytRDJJHGGt2jHS0uEBKyx8KK9O/wAS0OKqmj6vHoEElvd84NJtCEuIZWMj6YXPwAvQGSxb/dcv +6xs1FBESrLrS4t7m0huLZg9tNGskDqKAo4BUgbdjiqrirsVdirsVdirsVdiqH1C/tNPs5by7f04 IRV2oWJqaBVVQWZmJCqqipOw3xVhGoDzbq31+bRhDB5i9JoYJLlj9X02OTiwgDIsge7lADyEKyps DUBearz/AMo+XfOfnCWz0fUhPp2i+W7m6g1WO4qDcTNIjBWFuYUlnSrssxaQbpIf3nVV7GmraXYo mj6Ham8ks1EC2VmFENuEHEJLKaRRcRT4CedOinFWIeV7H81v0vpt/wCfNSs+TajNDZ6PpkKi3VFt LoCd5pOUzM4FVXkKA/Fvsqr0py4RigDPQ8QTQE9qkA0+7FXkVh/zkNYzXEFtd6O1pMZYYLqs7Oqy MZYp44GEI9ZoblYYDUKC8o3ABxVMbr8+/Ki6ppdrZxT3FteXQsru4eOSIxTyWktxDCistJJXkiEJ XkvFj1xVNtD/ADj8la7rkGi6VJcXd5cNMIzHAzR8LcoskhkHwhAZV67+IG2KpTp354adLd2ljqOm yWOoTxyvJYrIZ5mJuIILM2yrGvrx3JuNnJTgUZWFRiqm3/OQvkg6jbtA5m8v3NjJdRawoZQ9wlxb QC2SN1Xf/SxzZmAUgg98VekaZqFrqWnWuo2jF7S9hjuLd2VkJjlUOhKsAyni3QiuKpdpdxb21rrF xcsFtobu5kmYioCKAWJAr2GKp1irsVdirsVdirsVdirsVdirsVSvWtBi1B4buGT6tqloGFrdheQ4 v9uGZNvUhkoOaE9gQVYKwVeUeU7H8xPLWtT6U+rCfRnGnWTafQJNpBM6RLJarOJI57W4RnVXUbNx XgnBlVV6t+htR/6v19/wFj/2TYq79Daj/wBX6+/4Cx/7JsVd+htR/wCr9ff8BY/9k2Ku/Q2o/wDV +vv+Asf+ybFXfobUf+r9ff8AAWP/AGTYq79Daj/1fr7/AICx/wCybFXfobUf+r9ff8BY/wDZNirz DW3/ADR1f8y4/L+mKbny1pM6fpHWrkJE0KzwQyEwsiLHJdosj+mBCQlQSatVVXokOrWFnANM8uWb alJbExlIWpBG/L4zcXUhK8+RrJQvLvy4nFVDUorZY1fzZqsMEE1RHpcMht4HJ/YLVWe5belNlb/f dcVRNtqci28dpoOhyrbRLxgaZBp1qlP2ODr9YUf6sBGKoe7h146xoM2oXNusX12SlnbRtRWNjc/a nkYmTj2IjT5YqybFUqn8p+WLiJoZtKtJI3W4VlaFKUvJhcXPb/dsyLI/iwB64qgX/LfyC8hkfy/Y MzBQawIQQsJtwKUp/csU+WKou08neVbPUo9TtNKtoL+IzGK5jjVXX6xQzcSBt6hFW8TirpvJvlOe zis5tItJLa3jMMEbQofTjMqTFUJFVHqxI+37Sg9RiqHP5e+RTM836AsFldBEzLbxqeCmNlUcQKcW gjIp0KgjpiqfRRRwxJFEoSKNQiIooFVRQADwAxVIIbF7/R/MFgjBHu5ryBXO4UyJwBNPCuKshxV2 KuxV2KuxV2KuxV2KuxV2KuxVid9FBqnl3y/rN3EraismlypcKOLKbi5tzKop+wxoSp2qAeqiirLM VeGy/wDOQt5YrZR6pDaRGHVLmDWb+NHNu2nxQ3FxbyWqtN/ezC3MZq7BXVqj4lxVVk/5yj8vS3ul W9jpF1ImoztC8kpClfRZlnVFXlykBUcEYqzV+zuvJVPPL/53Q+Y49Ti03S5LSew0l9WNzduhiCkS iE+mGjldCYfi+z18KNiqCX88r/TvWGv6V6dxa2toZreAFI3uJob26eaG7mdYnglt7AegtORkbgTW tFUNd/8AOQ8Vp5gvon0yS401Y4UsLSEKb36z6t8k4nCu6pX9H0RSOrLyIDVCr2ZG5IrUK8gDxOxF exxV4p+Y99+YKa9q0Hl7TBe2H1+B7mW8lcWKqLK29RJIbUGR+S/aNwwiA6KTvir0jS9Nj1Oyjddc F3p6fBHDo5S0tAEFFVWgaSccfAT09sVTfT9E0jTmkeytIoJZaevOqj1ZKdDJIfjc+7E4qjcVQmo6 ZBfpCJHkie3k9aGWFijq/BoyQfdJGGKoX9Af9rK+/wCR3/NuKu/QH/ayvv8Akd/zbirv0B/2sr7/ AJHf824q79Af9rK+/wCR3/NuKu/QH/ayvv8Akd/zbirv0B/2sr7/AJHf824q79Af9rK+/wCR3/Nu Kqd7CNC8t6pPZu7zww3F2JZm9RjKEL1avXcdMVTnFXYq7FXYq7FXYq7FXYq7FXYqhNU1S0021Nzc liKhIokBeSWRvsxxoN2duwGKvJLXRNVPm1Na1bU5dSt5ZtNk8u6Hb8BaaNaS3cdDN6XCBpHTjFGy 8mKl6clBbFXs2KqBsLEoqG3iKJUopRaAmpNBTbrirksLFGLJbxKxIJIRQag8genY74q2tlZoWKwR qWUo1EUVUmpB26EnFV7QQsoVo1ZRSikAgcTVdvbtiq02doSxMEZL0LkqvxEGortvuK4qq4q8M886 B5H1z8w9Th1rUH0rVbC5tbuPUdPc219DafVrcN6zEMJrNmDAuB+4b4m+BiQq9Gv9KninFzqOnDVR 8K/pjTa2uoog6eoImjeRQPtejJ8XaLFUVpzX80Rm0TWkv4I2Ky2t/GGkRhv6Jkj9GWFh39ZHbxxV FDXr62FNV0qeAD7VxZ1voK9goiUXP0mAD3xVINO/MDyh51ayg8u6wLqJdQkttRht5JLedRHb3Djk FMcyqzxAhhs1PnirI/8ADOnf7+vv+4hff9VsVd/hnTv9/X3/AHEL7/qtirv8M6d/v6+/7iF9/wBV sVd/hnTv9/X3/cQvv+q2Ku/wzp3+/r7/ALiF9/1WxV3+GdO/39ff9xC+/wCq2Ku/wzp3+/r7/uIX 3/VbFVDSTbx6ZqcV7IZbG3nuI5DdO0wECirB3lLlloT9o9MVTzFXYq7FXYq7FXYq7FXYqoSX9lHP 9XkuI0nCCT0mdQ3AtwDUJrTkaV8cVeYaB+d9zrvmL09O0Geby7IGgt7jkovTdozrwa3DOEDlPsyM jIv7xvh5cFWRRpqd9qsgjkim1+LlDc6gg52ukRygP6ECuP3tyyleRI32Z+KcI2VTby/5T0yw8r2m i3VnBcKsUJvkkVZVmuI1Ssr8x8bc4wQSNqClKDFUT/hPyr/1ZrH/AKRof+acVd/hPyr/ANWax/6R of8AmnFXf4T8q/8AVmsf+kaH/mnFXf4T8q/9Wax/6Rof+acVd/hPyr/1ZrH/AKRof+acVd/hPyr/ ANWax/6Rof8AmnFXf4T8q/8AVmsf+kaH/mnFWP8AmT8pvKWrahpesW1lDYazocj3GlzQxqkPrPw3 niQJ6q/ulFKg06EHfFV+karJpMU0ro0Oi2p9O/05vjl0qUDk3EgfvLMqQykD4F3H7vaNVP77RNK1 TheAmO6KD0NStHMcwQ/EtJU+2lTXg1UPcHFUOZ/MWlg+vH+mrNf93QBIr1QP54iUhl8S0ZQ9hGcV SW2sPJDazo2oaHp9lbXwvXjuXitUtrtOdjcnhMhSOaMmgPFwMVZo6lkZQxQkEBxSor3FQR94xV4Z b+b/AM8LF4m1CyuLq0tpHDzrbRB5Y9Pnezu5Z1SHZZpLiK4jWIBmiibh9onFV97+bP5ly6xppj8u 3FpbW9yqX9rHb3EvrQzadNJ671h5iOKYJIEjYSGnAjkaYqyLyx+ZfnvV/Ntro975XOl2U73hlu7g TVRbVowsfwq0fNw5ZWLANTYdCVUptPO/5q6f+j2v7KfUbOSCaX9JfVeEJWe8tYYzeRQxGdJbRJJS VjVRIlH7NxVQUn5t/mg2rxXv+E721txpzifQZIXb0rprmyUXEk/poH4xTykIrj4RV+JB4qvZ9Hur u70myu7y3+qXdxbxS3Npy5elI6Bnj5ELXgxpWgxVJ1spr7RPMVlDQTXUt5DFyNF5SR8Vqd9qnFWR 4q7FXYq7FXYq7FXYqg9Y1jT9G0y41PUZfRsrVOc0gVnNK0AVEDMzEmgVQSTsMVfP2tSaz+ZfmKR5 LOxubEH0PLd1bGqvASk83rLLCz3C+myJNz9NIHJHB5RHyVemeWPLjQIbLS53eWNfq+reYGaSQgD7 dtYvKWZn5j97MxPxDfk4pGqzqwsLTT7OKztIxFbwiiICSdzUlmYlmZiSWZjUnc74qo6Hey3+i6ff TBVlu7aGeRUqFDSRhiFqSaVPjiqNxV2KuxV2KuxV2KuxV2KpRrOm3X1hNX0sD9KW6hHiJCpdW4JJ t5CehBYtE37Df5LOCqlenXQsLePUdIQy+W5OX1vTQhE9jIrcZDFGtTRGDCWDqpqU3+Aqsntrm2ur eK5tpUntplEkM0bB0dGFVZWWoII6EYqkfmYaTbapoOp3voQPb3kkYvZuCFEks7gFfUalFZqbV3NM VRf+LPKv/V5sf+kmH/mrFXf4s8q/9Xmx/wCkmH/mrFXf4s8q/wDV5sf+kmH/AJqxV3+LPKv/AFeb H/pJh/5qxV3+LPKv/V5sf+kmH/mrFXf4s8q/9Xmx/wCkmH/mrFXf4s8q/wDV5sf+kmH/AJqxVLbL V44vL2v6tYSRXKwS3s8EisJImaJOQ3Q7iq0NDirJ8VdirsVdirsVdirsVeA6l+V/mS/8w2uma5qs 2srpivJbWsi24hujdIsM17MsjXkkSGNWWRnp+85ehGATiqdXvmHy/wCUtNgt4ob99DuUAbVLCAl9 QKSAfU7NqgRQhXkkXi/N1V2Ulm9SRVmX5ZeZdU1zTbsz6TbadpdnO1vo09lIHtp7ZGZE9IBVACKq iq1U1/ZIZFVZliqlaRW0NrDFahVto41SBU3URqAFC+1MVVcVdirsVdirsVdirsVdirsVSLU7a40u 9k1vT42likA/S9jGCzSogAFxEgrWaNRQgCsi/DuVTFVBY30wJqmgIt5od4frF5YwfEQJaubqzC7E sTykiH2/tL8dRIqmqeYNBezN6uo231MFVa4MyBAzqGVWYmgJVgaHFVH/ABZ5V/6vNj/0kw/81Yq7 /FnlX/q82P8A0kw/81Yq7/FnlX/q82P/AEkw/wDNWKu/xZ5V/wCrzY/9JMP/ADVirv8AFnlX/q82 P/STD/zVirv8WeVf+rzY/wDSTD/zVirv8WeVf+rzY/8ASTD/AM1YqivX0rUtOlZZobrT5kdJZEdX iZKFXBZTSlK13xVXnube3UNPKkSk0DOwUE+G+KqP6W0r/ltg/wCRqf1xV36W0r/ltg/5Gp/XFXfp bSv+W2D/AJGp/XFXfpbSv+W2D/kan9cVRQIIqNwehxVJdc182sjWVkYzeKhlubmYgW1lDQn17lqr tseCVBf/ACVDOqrzjUPO/lKy0/U7i+muL2xsZYF1O2SMDUdSuJZRCj3JYwRJbhvh9GqgCiMFWkbK ofyt5c81fmLeJ5i81s+n6IWMY0WN2aG4iRUZfRYiMeg0qq/Pizlk5RycJKKq9lt7eC3hSC3jWKGM cY40AVVA7ADFVTFUB5ftJ7PQdNs7gcZ7a1ghlUEEB0jVWFR13GKo/FXYq7FXYq7FXYq7FXYq7FXY qx6f/nW7qS7Xby9dO0l6mwWymc1a4HhBI1TL/Kx5/ZLkKsZtfyy03y3+YsPmTRry4ii8wX0smsaV Kxmge5+p3TrcxM/7yN/icEVKkNsBQYq9HxV2KuJAIBNCdh7nrirsVdirqioWu53A70H+3irsVY2b Se80HzJZ245T3Ml7DEpIALvHxUVPTc4qu8t6TYXmm2mtX9vFd6rqMEdxPdSorsomUSCGMsDwij5c VUfM1YklVHaivlfTLY3WpCxsrUEKZ7n0oowW6Dk/EVOKoTSNU8h607Jo91peounIsto9vOQEIDn9 2W2UuAfAmmKpm2maOpVWtbdWc8UBjQFjQtQbbmgJxVd+idK/5YoP+RSf0xVgXn3zDa/l3ZzX1q8e naJJaT3FzGFVkglhlhRTZ29UUyz/AFjhwqE5Uc0o/NVMvKGmWOuaXZ6x6bLolyRfWVjN8UlxK5V0 vb8sKvN8IKR/ZTY/aC8FUO/5N+VG84HX1jMNm0altIhZ4rZrpZOZmKIyrRhT1I+PFzuwPdVnoAAo NgOgxV2KuxVCaPfHUNJsr8p6Zu7eKcxg1CmRA9K7VpXFUXirsVdirsVdirsVdirsVdirsVaZVZSr AMrCjKdwQexxViL2t5pGuaDpYRptHa8kbTpt2NvxsbmtrJ34AbxP4fAaUXkqy50R0ZHUMjAhlIqC DsQQcVeGW/5H+ddNeKbTdVt+NpI8lnaNUJCllO8WnxwMUb0mewu7j1JKVSUqRWlQqqXn5efnVdav p1/c6tb3M2lXKzWkr3HHjC+nTW08SFYOSSSNLxM3/PTjUBcVZD5Y8q/m9b+bbW68wa+LvQ0e8e5g t5AgZ2aM2x4NGzFOKsGTmAK7eJVSm0/Krz5pX6Pl0i+ghgtoJlfT/UYTQPdXlrLdxWd20b+nFPDb sQOHwOSBs3wqoN/y6/PJ9Vi1afXLKXWodObT5NUjZkEkb3NlOyRwiNPSJW3lBcNVmP7APwqvZtHg v7fSbKDUJ/rV/FbxJd3NAvqzKgEklFCgcmqdhiqVW98dP0nX78J6htJ7ucRk0DGNOdK70rTFUV5R ZW8qaKymoNjbUP8AzxXFUN5n8tXWqX2janY3KW+oaHcSXFsk8Zlt5PWge3dZFVkYHhISrK2x7EVG KvOLr8jfNd1qOp3Z8zx2MeoSvKbWwgkiio8kLekVeWRePCGlQK1oegpiqtoP5Ha9pvmfTdZuvMh1 CPTr43ognW5dm5NfA/Gbg/GY75F5Gv8AdioIJGKvYMVY5rej6Pqfm3RRqNpDeGztb25tUnQSCOVZ LVRKqtUBwGIDdRXbFWR4q7FXYq7FXYqo2dpBZ2cFnbjjBbRpDEpJJCIoVRU9dhiqtirsVdirsVdi rsVdirsVdirsVdiqVa7HeetpdzbWsl39Uu2lmhiaJX4NbTxVHqvEv2pV/axV36Z1H/qw33/B2P8A 2U4q79M6j/1Yb7/g7H/spxV36Z1H/qw33/B2P/ZTirv0zqP/AFYb7/g7H/spxV36Z1H/AKsN9/wd j/2U4q79M6j/ANWG+/4Ox/7KcVd+mdR/6sN9/wAHY/8AZTiqlpenyXWmalBqNrJbR6hNcc7eRkL+ lKOO7QvIoqPBsVSeL699dvP8MfWvqPry+vz9D6n9Z5fvvq3rfvft158f3fKtPi5YqiP+d7/z+r4q 7/ne/wDP6virv+d7/wA/q+Ku/wCd7/z+r4qiPK/ofXL7619Z/T9I/r3170vV9Hk/oel6H7n0K8+H Detefx8sVZFirsVdirsVdirHvIv17/Dtl9Y5/V/q8H1L1PT5+j6Q48vT25UpXFXXH+Lv0i/o/wC8 fqfB/c/3dff4umKpjrf6W+qp+i/96PUHL7H2KGv29utMVa0T9MfV5P0p/fc/g+x9mg/k264ql7/4 u/STcf8AeH1jT+5/uuf/AAX2fpxVMdb/AEt9VT9F/wC9HqDl9j7FDX7e3WmKtaJ+mPq8n6U/vufw fY+zQfybdcVS9/8AF36Sbj/vD6xp/c/3XP8A4L7P04qmOt/pb6qn6L/3o9QcvsfYoa/b260xVrRP 0x9Xk/Sn99z+D7H2aD+TbriqXv8A4u/STcf94fWNP7n+65/8F9n6cVTHW/0t9VT9F/70eoOX2PsU Nft7daYq1on6Y+ryfpT++5/B9j7NB/Jt1xVL0/xd+kl5f7w+sK/3P91z/wCC+z9OKphrf6Y+rx/o v++5/H9j7ND/AD7dcVb0T9LfVX/Sn+9HqHj9j7FBT7G3WuKpcn+Lv0kvL/eH1hX+5/uuf/BfZ+nF Uw1v9MfV4/0X/fc/j+x9mh/n264q3on6W+qv+lP96PUPH7H2KCn2NutcVS5P8XfpJeX+8PrCv9z/ AHXP/gvs/Tirfnr67/hq+9Dn6PoTfXPT9Pn6HpNz4+p8PKnTFX//2Q== + + + + uuid:a4ef74d0-b82a-004d-875c-486b6ed2e622 + xmp.did:3676e182-bdf4-4f00-af12-63237d5011c3 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + uuid:d1c078a0-2746-42b2-b0d1-25aedff8fb1e + xmp.did:1b6690ed-28a8-c141-9479-b6a9cf6be651 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:3676e182-bdf4-4f00-af12-63237d5011c3 + 2018-12-17T16:31:46-05:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + + Document + Print + False + False + 1 + + 612.000000 + 792.000000 + Points + + + + + Palatino-Roman + Palatino + Regular + TrueType + 13.0d1e2 + False + Palatino.ttc + + + + + + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 15.000000 + 100.000000 + 90.000000 + 10.000000 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000000 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000000 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 20.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 10.000000 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000000 + 95.000000 + 30.000000 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000000 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 15.000000 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000000 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000000 + 100.000000 + 35.000000 + 10.000000 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000000 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 20.000000 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 40.000000 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 40.000000 + 45.000000 + 50.000000 + 5.000000 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000000 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000000 + 65.000000 + 40.000000 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 40.000000 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000000 + 50.000000 + 75.000000 + 10.000000 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000000 + 60.000000 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 40.000000 + 65.000000 + 90.000000 + 35.000000 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 40.000000 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999400 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998800 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999700 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999100 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999400 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998800 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999700 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999100 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998800 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000000 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000000 + 90.000000 + 0.003100 + 0.003100 + + + + + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 8 0 obj <>/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 40 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>> endobj 37 0 obj <>stream +H‰Ì—Mo#7 †ïó+tt£ˆEI×dZ¤E{Xì!ðz»m¾Ð8ýÿ})9ñÈc§ë¶‡Â@F–‡)’ÊùO—æüêÒ™‹w—fp¦}n·+2? çß];óëfâm4\þŽäƒáhžÖÃÅp±|}ûv8_.u±ü2·M6^œ‰„Íûaqu³y^?™?¯Ï–¿ï—›1&莙ߴ°ÓË1q^õ~\|8+d³Y<>ݾèÿ´üþ ÿ6Bo 2j€k¤¾Õgw²G§ òwþ€XF–M lV÷Ußý ѦL›™»ázøyò:ûl%Æ€<$’ìäØføFÎ’gˆl™‚ ÐRðõëðzàt¶¥}-y mm;d²Î961Ö ™qÌÎGȾ:2‚@8™Q‚ÍÕ—!H²‰3¨‚ÈN$cýa,؇[‡ ³%IS‚£W—\®u±Ýä%C?e¨¹Xü²Þüy÷¼Ù–À^øýÄÕ-„8¦á6z§§TOq'˜-#ÒH +’ƒðãDâ Gë½¼:ßM ˆÓÀ¡N`t¤‚ÜÍs’·Ž²Àao™%LD‹8u`aµGVJÖ¯8¿Ì·ÖI¦æÕº½³ÁÍÓÆ¨bŸ ECD~'Id=üªõ$ì1ģ윤g3î!…mÜ]Á±SIXwÈ ‡ ì"? ý–ÝÅŽßP B¶Ð¡¬³œdfos ‰\±5[¾ß 8p¹†e>N±ëQB)YŸÂp ¦KuP,©Ë¹G¾Ä†×z6 +>ÓãQpDP]ÔUVÚSM$÷Q^õñÉ™Ïfª%"Õ ~†â:Š€,ˆ¾lÕìKúªý^¬ à15QGí1Sâ[7.¨øBSSKŽZ¯‚bO¯V{ÛÇÑ=£;éÏÂ4ÕÒÈÓqò¨…µ/ÕÀ÷â~¼eOP÷Å»Ò%°'GœÜ*¯øÚÆïnÖ÷/¢©u<êCíƒy˜{¢RŽú¼5Þe©$ЀrçúÔÆ0袖±.‚¾Ô^ èQÅcUA'“´mˆÕ÷ð„àj ̓ö_5Kµ£Ÿ޶’î±&­j©Ma/ï~[?<ÿ3ØÙ!ýÂrmaÿ6dœÉaB_×þú,óNä}Á$Î:µZ S×ÑþбÝ涇{–væÿËÄÞNê½ANÉé¼NzØÚ½ãz}ótF ÑX¬¾®7¯wo%ôuô>stream +8;Z\6>7Q'"ou;-.b/?k6 +:ER!1jqcKS) +>5c#pQW[hG,*l;eIIsO]Z@;K8QuuDHYNb"$U+A(G?gJG%S@9"W8eV.ob?rs&[c[tq +Rc8kT-?u).nXf@;r endstream endobj 41 0 obj [/Indexed/DeviceRGB 255 42 0 R] endobj 42 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 35 0 obj <> endobj 43 0 obj [/View/Design] endobj 44 0 obj <>>> endobj 34 0 obj <> endobj 45 0 obj <> endobj 46 0 obj <>stream +H‰„– xÇÇÿïÌäÄ%v™ï"Š+A[±”X-WZ½E) II‘X+´¥¶ å–ÞöÒ„<¤(ª®º‘ª]ÐK-!‹œäÄV;^zÎ}ÏÒ÷yzçyÞwμ3ßÌ7óÿæý”äÔÔÀ,HD Üžr‘-rtBTÒÚë5¨+àW0zRŠáé~Î56iL‚·Ý–ÇL?56±ïÉ fr=.&*Ú–sm¶ˆ½ÇÏø°}ìšÇ%¤Lñ¶+€¤øÄÑQÔsMs`ø`n§$DMIòôO>ÊÎx7*!¦ÅÁýݹ} £’'¦8;€ç˜>ÀÕŸ”ã?Ýõ^¹ê0eÀJä‰I÷ÔT„öøž(™Î)0Þ®éi÷ˆˆè0ÀùØôɯù@ÕѲÈ-s-#ø,q­æ(@îº.Ÿÿf˜D5W€àíù£Þ§þ¼xž”Püî&ø¢ +ª¢ªÃ•z5Q þ¨:¼j=ÔG4D#4Fš )ÌÐünXÑ ÍˆBKè‹WŽ~x¯¡?ை¼Ž70oâox ƒ1Cñ6†a8ÞÁŒD$\:ÂhD#±ƒ8ŒÅ8ŒG<ð.‘„ HÆD¤ “0™5œŠi˜Ž÷0i˜Éßãûøb6æà#ÌÅ<ÌÇ,D:a1íE>ÆR,Ãßñ –cí \|fº@»°«TU4 «±Ù”‡µ´[UÁ—X ؈¯° ›±_c+¾Á6ü Ûñ-vàßü½ìDžjˆ]ø»±{±ûqqù8Œ#8Šð#Žá8 +p'q +§ñÎà,Îá< +qïMŠQ‚R\‚ª¶•¥ü€Åôå½€¬Áú¤‘?5¥fÔš¢h2ͤ%´”²(‡¶Ð·´‡.RÙègº/ˆ¡EÑQ¼)†ŠD1UÌ‹ÄRþ‚¿‡ÄQq\‰RI?YSÖ‘ dÙR¶“dÙ[”¯ËÁ2UN“irL—2KæÈ-r§Ü-Ëcò„<# åEY,Kå-5RVãUªZ¦Vª5jƒúFíT{Õ uFW6uEÝTwý#Íÿ0n>o.4ÛÌ•æÛæ_´¯®©ëé¦:H뎺»î£èÁz¨¦ßÑct¢ž¡çê%z…þB¯Ó›õ6½_ŸÒgõ}SßÓ£ºQÃ0V#È1:nFo#ɘj¤3ùÆb#ÛÈ16Z¤ÅÇRÕRÇRßbµYZ[ÚZFXFZfZ…Õd­i­mml5[[[ûXíQÖ˜fµ³7 <hoýÐùÈä¨å¨ïhäu„;;î;UÅ­LªMfjNmhMqkIëh3k°›ö±Åd§[ôP4fÑâ) ÒYƒb—8(‹Å9ÖÒÄøËú2@6“md¨ “½¼¤¸5˜Í,–Ë5òKùµÌ“{äY zB¨QjœJVj¹ÊTëÕ&µ]íVê´:§ÊÔeuCÝñi†ù3s&kpÑ\n¾l¾£¡«èZº¡6tK¢Cu˜×^ Fê8¤géy:Cª3uŽÞ¢·ëƒúŒ>§‹ôýÀ†ŸáoF kÐÞèdtukbLc f ŒLc±á) ZXZ±ƒXƒH¯þn ‚ÜDZ£Ý¬B°uXƒvŽWÜðepÞw–;m®ÜÊöˆí:§:rÖUKi˜šÃ +ôãŒÎ[̘œÝjã ³“˜ã4œ œÕœ&ØççÇqÇ1~~ˆKXçdGºû×{Ûà\ïHuŒp åd»Z|Î÷ð[ E³?ÀÆü¡ï(WtA[Êú¶ü?Ù]n¯+Êã+¯U^-Ui/ç•í&6¦¡Ý‡3¿Ý—ì¨àï­‚wgoR±Ø\±Ò>¶b_Å=Ï<É×åh\Éö2Q¼(Y]œ\Ê/a‡”>*ž[<³ðfñðâ¾'²}O>=}Â|ºùù4RíÜXšå…LŸÍ¶X¶cÏîUüàöùvb»ÛocËû=³ˆq’}á£Nº}ÁoQ—v¶ëÏÌf—Ùr-ç©Mr›Ü+óùŽœæÛQ&ËåeyU^—7ä-×8yãɧd9ÇåC@)¶Zl =}Ê`kûô*ª³zK%qí²¥îÈ*µCåy{sçÞ›ÚªrëóÆ·ªmžú÷Èz·Ïqûÿ{JêŸÏ<ÿ62˜nÏüºÌŒ[Ìt[ɔʦyLºBfß2ÜÁ]æÝ +¦ß>¦Êm¬b†ÝÇ=<`¶}ÅD:Ä,sQ6ƒ9{”I›ÏŒ:îeÔæî)7§63o1/ϸi‡kø™i:މ<žiÏ<Îd"O`&»ˆœÊLvù*3ySy:ù=æcS9ÍÍåë¸\$I‘™È¿ÂAU¨*U£êpÈjÐ ™„‡ø…S¥1ç.Ó +¢–2géyjÅükÃlüæS0…Ð,zŸ:Ð r¬LAlÔ‘Bi6Í¡.Ô•^¦…”Nݨ;…QêI½\ô¦ÞÔ‡>¢¹NýèUzúÓ<Âc”£;)šïz,•r¡$Y]ÔuD]#'0«/yI]ÊÔ.1…š:Q¢©3M dšH)¦.”J“˜Í_¨®”%}(ÛÔ‘ÖÒ:Õ…¦Ò4šN›L¦Æ¦¦¦ÿ²^­ÑQUWøž;{ŸÉ$ä1yB¢™¹™dfHB&ïR @Âc¥`0g´ÀIh«¼ RÅåÄ®®Ö¶<*vhU& 4Z„ÊC´¼±VÑ(ØÂ¤ß™„Q\ýC׬oî¾ß9³çÜ»¿söÞ鬩W9{k$OàY|JžàAìáÕü<¿ÄùŠ<É‹x1?!OñÛü ŸãOÙ\;'ü8äÚgi=Cé·Èº¿¦‡égÔL¿!=@?¦zj  4™‘~BÑLš… =—¡yô(ͧÇé ZB?§eÔB¿ 'é)ZIOÓ*ZM¿£?Ð&ÚŒ<þ¤ t‘>¢KÈ?WèUT§OP%ü“Ö ­£Ïi=]¥VúÄVz¶Sí i´›¦Ó_‘ËÚi½AÑ[´€Þ¦…t–ÒQZŽºbîûXFS°Ÿî§ß«—ÔË4 Ùï,ý;n-jŽEtˆÓaÕ¯~Àky oàõÜÊëøÞÈâø/¼ÿÌ^öñ~…wò.nãWy7áÃüåwù>ÆÇùCþ€/ñEþˆ/ðçüwðü%_å¯ù×K!ÉÒ IªÒ(#ø—ˆÞ6ÄïeDðbxQûâÖÉ~ÞÂ[9-le3¤Uj2CfK ïå}üïçœ 5ô‡J‡´Ë>Ígø$ŸàðYÙ[:e.ÿ›ÿÃßðuþ˜/óW|ƒÇñxn€zî“.™'³¤”‰<†ÇòLèi¶Ì”6ñ"¹ôJ•ò)´@­úÎ5½n݃ªòueÝ­üQ¼Déd!£aƒÑ¹Ô§TÝ݆þÄ0~\Ÿ"r­Öê¦*¯hÀš "[ƒeȵõ²†Þë¶yPY´Œ˜Ôbjmœ0ÉKY+&·x\V¯RçnÂ÷Üš·Ò“ÖmNöxúÁé~(à§ÅSC¦<ÀÁMLâÜ«×`¯uv{›«Ò¼•Už4M³V{ÛkÝÞöª4ÍãÁ,Ù½R\4õ ­Ùˆ5ËlA/unoešWñ´´ïlš·¹¥%­Ïº÷)íß!„ò]¢2DàMè YÕ>Ñ\j¶ii:aÓlÖé©Â›rkêÜÕX©æé£¨z7Èø !4¢Â;u!Õn|¹ÒÚ0hàÉ/ÐÌš9 _]ã «¡ýF%ã<´R{0å ë¼QmUìâÈ.tˆèF(gP4ÚK ZH Ê- ZA Ú= Z:‹"ë12ŠùÀ¢¨õJè£õŒVbxBééKÀ`\SîÀ/=0šuÆ fƺÍhC͘í¤-£©ÈŒ$cFz3+­ÀfÀ쎗ë@\ýÿÃÉôAQßë„gø”ÔÃx¬>C_½†×œ¡¤  ÜLæË€õÀ&`°8\®ß±}Áßç„gà…ñ  ÎÈ/È2Æ[FfžZ§h…é"G™ÑæÈ¶ƒQ§ÊJËx¦cö¹%ý_ï]8•ï¢6¾ß+9*N‘{v¯|s}ƒ@öË_1»öžíõ%£V½xt!îsI\V2fÚœ‰ jõÚ‹ÛüGüOÛSËQ¾¤B“§q$d)ýÔù>¥’Ì*â°…ð2°WÆÕ.v¤ 랪䡬ȃ¤ >Œ^@o /0ð²ÞŽT%¢Cÿ}‚e„e‡;<–Ãc1ìâ] +»v*ìœîÒªY—¦9L« :‘F$ëDrqkC…«NXÈ È#2u"3HX±Rg—„œœs"pNΉè;}'¢ïDôˆ¾Ñw"úND߉è;}'¢ïì’Ð: Jèv'! 9!!'$„7•vmÝBlÝ®­[ˆ SˆY…Ü0pÀ#Àr Ø ø€}Àqà2pmÝ;tܺ·;aˆ¿¨¤ò.-1;ìOIrQafQ!Å'%ª1ª-Ãa·e”`()V3mF+Ì É÷÷sH2JŠ4Æh«§½ïýJdž¸¹ý¨¯ãòìþ¿zèÑ…¯­h®^êï¸òØã• "_K«šw°V´N\R—-cÄ@±ÀòÝVl«YD“rkŸýrñNµ2¡`Á*ÿtÿþa8{íŸ'òSÊ(‘¸ !X;åìÂÓ•X>e8t; + ÷„;ɵÏcÉ¡9Á,G›Ý%DhÔqk¬Ø‘§Ú›&xÜ#P¥}Ò5uÄus‹"£UAdH)š»¿nÈŹÅ&ýÞ¿itž6ÄUåÏŒ]ýfNqdt +ÜñÈJ¢}ëot¨Dæ|¢JÕ›82ÑÝ_°|ÑøL³Zi2¹$aTÏÞÌÛ2¥æ9{Ê*Ãù›CB""º'ˆCË·™ƒy¸ óŒœ-Ü#ú!BˆT:P‹h™9“ëÖéi×v}l ¶°Ûðî$NÃ"0E`J1Z»<4³K&̘Y ¦:4st·*âõxŇ0Q'ÿ×ùèÔ g‘­ÙaD®Nä†å:Q®«b—Rƒ0* øQX‰rX?p¡WØvb |ÐL:~ÐŒ¼ã} Á!¶{Ïwíú<áJÈ"DrJrÊ·Ž‚²$]2ø$™\"0”Orà£ë«o“##IRÄ]ñ®Ñ›rF ã<$òV¹ËíF2éÄœy3ꃓxJOÉFKcÑ͊Ш{ê¬"VF'ŽYÒ`pi‘ñ½âLb ÑÃ%þ5/LlWOuŸDEŒŒù/éåÜÄy…á½H»kk- ɲ|‘Ö^ ¯…„¬µeË^K^cls16`0wJ® 8L¦I +…\ % i i'Mš¡e’lè„´?š^ÒVíL“¶Iû£ÉtÚÉÞÒi›©å¾ß^@'ÌtEèS´õ)b‹EèS„>EèS„>EÃá…sÄRMP-ˆ37UM +Wý©!²± –€ï`kôT¶F€7àx#ÞH€7àx#ÞH€7àx#Á6X³\Ä4X3± –ƒ%«Ú¶†Ä`Ea°¢¶ÁŠÂD¿6\}¸ÖàÚ‰ë0®¸žÂõ.ðÞ( +o…7ŠÂEmƒ5ËELƒ5sb° â”ÄÂ?Ñ-Í -ùÇ´4ëtª©<€S1B$ÌùËʘ=$Æ_FÉá.Ûã ¬y¢÷ö Ëë3u¿_¾skÇ‘¿þÑj·Èö°\e|ÇÞÓõÁÖ·mmÏ_ÎüƒÆÍï<Þ’MnøÊÈÂÍ‘ ΩytÅ=¿8˜ˆwÞ¹ëœ{n¨ýÒÉá AŸì öß7ôfþ×Ðr`úŸü»Î§©v*G}mŠI¢¸  ‰@AÂ2ñ·ht3ˆ¥„r«Ù¡Ðqb¯h Æ…NV†û† ª¶¢ *BÞk±2j£ÓEÛô0?éXÕtÚ—ò’—V‚ë]7óÏF˜zƒ’Ðï¬ûž_{i¤ÿÊQ_‰(»¾ú¯-¬_üá…D½7rê\Vª·AêÝQª>°}OÇoÞWU7ÏEm]-‹YAÈ:‹yUçkêÔRfÇßé’ü?™:È ?{q@ôûYžÏÒU=Ì¿Üt)¢—¼ÈŒå½ùÉî±Ãøá µrú/ìÏÙïS)ª‹Þ>A-ÄÙ%']âCÜxF72œvoŽ83¶íB¹ò)Ä1{å¹ *e@¥ v=*e@¥ ÎXƦRTÊ;!ð¹&k 2'’ïè¾A—›3Ý5ðɉy“82»é6Zt¨CÇÖq uhTÐATÐATÐATÐATÐATÐm´Ìr-3±Ð¢-:‚FU)Ô§I§Bwò󦵩¡6Ôê¦#a…œ×ÖôÜÖtþ‡ù‡sšgý«õ7-4ýùzÿþg”*‡À•×v­Ô³Ûœo-k?ž\n§÷Óêþ•™µÅÞjúõ'”Àœª•‹»¿ÐÅ\t¢±ÊU!ÿÈ`Û–+ù·U)Ï1œÆó¯œ«àŽÞýÝžj½tÓ®žZ×ÜìõòthN¸©cɪþ~œÝÁé?³ÛØSóèŸ^£ÂxXÞî>aÔ9Œ:‡Qç0êÆ‡í:‡Qç0êl×ÓDJn<I8̃Wê!®Áâ®îJ6w%ÐNÂ'fSí$ S2% S2% S2%|dJ@¦dJ@¦dsw–‹˜Ü¹ˆÃá!|±©@ +d @ +d @K +´¤@K +´¤@K +´¤@K +´¤@K +´¤@KŠ-ÈY.b +ræ"– R1YÇ[¢K·Ù¥š7; ~J¢‰ðØmÑÞãÿüOw£mü݆k„¼iê5 ½¦ .‘ÏväˆS5¿¿‹0É‘œá¯QuàRNÃUÊ”ÃèQdênWÍ–††‚h(ˆ†‚h(ˆ†ªj¨ª†ªj¨ª†ªj¨ª†ªj¨ª†ªj¨ª†ªj¶4f¹ˆ)™‹XÒÐ ÍMlqšSfåt+aQ$Ü@‚aÅÌ Îg‹¥œ¸4<æüž³‹KNïí¼·)~Œe¢Ç•ÁŽ}¯ïèT«ß8t[ç¸&:\eÉž3}+^|ùþî]ƒ.Á¹\劢á<;ujû™·(Íó½w‡Ö•íýÕ±m¯5÷§jjiþÉå,šztiïÐ…CW~Ö¶{áü‹ÐTjúOìiö‡0MLï•B±¸R¨^qŽX Ãñ&àx¶ãMÀñ&àxxæoäIŽ7º•ÓV>[uŠ‘ ™ºyÿ¦ÎÊIïºÑ³¼DÞÆY&ÇË<À.h4±`A3%–C¶E"£42J#£42J#£¾2ê+£¾2ê+£¾2ê+£¾2ê+£¾2ê+£¾²-’Y.bŠdæ"–HdˆD6¼ò<¹uI3®G\oÅööxñt*å0¹®‚ëªÍu4UqXTÐTMU Y’U Y’U Y’Uì­ +$«@² +$«@²js}–‹˜\Ÿ¹ˆÓ #gðÑÒ;mO˜¤Gd‰!\¤É˜ÙÔjN–{°¶·69Þ}ôíCÑнÙõ{¿3äèÓvïÎ_g6í_;õXpù™¶c1úþ;ö=üt_ÜíÝõî—Lί]U!oeO0êv]ªo¦O°¬ÓYQòµ'ž#³ OQŽ/qmÔ(½t‚Z—4©¹]Dx™ü$/EÄ¢ORýU9â¦'¨þá‘8ˆ8hÅ5ˆk¬XF,”%å#+4 Ó€Œê¹éÛHœEœµx¬#Ö­X÷¬'çß4§›ðv’h/HdI"[ÐIB/H¬&‰Õ‰µ$±Ö75ðÞ+­M­ÝSÉâöñ_ö 'ËgöM/šŸ] ËÅÈæÄaµàpF[ºöj½»Úôç7O¥Ž:š-]“8ÒE°‚>Õp¯Í`÷êSÄÒ§ˆ¥OKŸ" îöžý©¤D¥%QM‰jJSlÿ ¾ÜO/–”ºþî¥^¨å¹=»ïQË[ÿYZ,_ˆÿ.\ãNòïÎy"—†ZÍq}ˆ&õ(†(©×/ÍR¿4Ë”¡ÅÅ܉—˜«Øƒ'¹>]ZcÈÖ"[«²8Ž8Ž8‰¸=ÅæVâ«÷#îG<‰xñ¸qúAÄøÑ»Æý°qö Í•,•u©XeÇ}2iÙ8i§D»%±•[-‰m”ØfIŒPbÄ’8A‰–ÄÓ”xÚH, ¢||µbÝ+”Ñe®™&¼¢ « þ‡_·™Q\;èÂëBîŠqÒ‚*&„6ç¤ÀæFÚXhC_˦WV£¦O/}v!¹‚Æ6diæ€#¶¾½ÂPWAðzTBy»ít®Vw¾²ê`©/o§zèµ€OŸp~qúdMÕY—P|`ÃPG¬H°™îËŸÛð“1xǪ‰õ-ûš Øô,Cœ~a×ð"Êõ4<|"¿Úív;]µcOo`ÇÈT±”žw¼·þÛÓ/_¼(òòþá·NôÔ–N¼Üay I‹'ö:ÖUßS¹nWë2]A‹ì¯ƒ+ñ{NÉQôX”d%v¤éæ£91Wæ ù’+°¡ôJ¦4—¹2¿9UYLÞU5Lâ:#n@Ü`œÖjpÂ佯×ʉ»òaQ¨Œ„J Õ’¨£D%±,‰nJt/7>Ó0½æ +Áà^¨ƒœ÷/:ƒ*ܫָw©÷‚3í_„a,䶯(CçØÌ_›‚pupãÀËÓœNGv`ßŸõ¥e<ñðCOi&Úžß|W´)GfÃɉžêß|ïY5, ÿ^ûÖ×ê:»F·.l·ê¼ýg{žð—ÎØr/sacŒ„Q.EýÐýh~4húÑ üh&1ˆòáGƒØeƒº úÉC’û¤2ûá "‚®2\ ¸ÖãÆ%ŽâèIGqÙFÉ`¢) U ¦ ‡ê¦„›,™œYHŸ,ÃýÉp24IÆ¢-ÃBʰ2,¤ )ÃBʰ2,¤ )ÃBʰ²éCðæC—bøP>TÖ}¨€¢„L‚Ç ™3g‚³ ÁÙ…€Ýô<{‚= Á†`C°‡!T'{‚= Á†`C¦Ç|ÀC˜Ç\~y̬8Wã²eæ3£erbÝÀDWìä >þ€—ÎÝ8äëy5?|}û‘7F¿¸åÄ«ü¯ÿćæoüöKŸ=ß÷øš??1ôò;³{[×.•Cƒ¡]-ÜÙL÷ê3Ý HÀž¤²Ø¢æëHŠI1 )$Å€¤ê3‘’b:’hææâ]¹Æü !qAŠ|‹™v¡2• ÜÊ:” DÂ’h¦D3ƒ# ê*ŒÇ•èòQ‚³«®3Y­OÀ¦™º,Õ < ÉWȋνœºxØ ‰Psed8Ü6Q°y#¦F8øêžŒp_EE¹˜n«¶Öôîwð’7=|æâS3 ›Mð¦ëxOÚÚÐ:ŸJÏ+Ìô¬­zæ™=Éï®)Nw¸\L x®ûö'B±ð>×Ê4$‹HÚ+éwytÄá×È)V¬KU=ˆÃ)¦@¼VŸôж6çPµr,l®§D=+Ÿ=Ö‰(C>Y‡$pH%Q%Q%Q%Q%Q%“ÍxcóòC 6K`³¤³9?U¡oNlVÀfÅd³‚_ª€C +8¤€C +ˆ¨€ˆ +ˆ¨€ˆ +ˆ¨€ˆ +ª£€ˆ +ˆ¨€ˆ +ˆ¨˜l~ÀC›—¢³¹>ì`쵌Zœ-^?;à—-Óä +ÛtwK@‹ £-¼;'Öܺfêtyï|éêdtèí½moÆBÂá 4<¼fë¾Â¸úæÉ±¦ç†¿°I´Û\"_ÓÔ¹¶:WÚ¿£¢]iòf·Œ4l:;T’÷ùÃk”ò¢éõÑÕ%¾ò¢š]Ïý2/]œNwå pXsû3ÛKöÿb¨ÿh½9‡®  JHÑdÀFcèÝ)ö¬÷ +•ÅæÐ¦¸&űH^)¯”9SNæô³} :Ãbs{¢˜­ ÿ™ˆ3Õ¥\àŒï0b¦*(3X64EÜ+'­‚rÇ(íÔåÔ†—4hˆ&šÅéµ9o¿ßµ#žçÌnÓ´¢àίn(¯¦©UeÉJ­-^ìà¾<&ø+ÊÂK*åòÐü'¼œ£¶ÂV#nCÜfĈ;õ˜\ ¼ ™MÈlÃÓAăF¼ñf#F. +¿ÂiXuMÑ ä@ƒh š¢AS4hŠMÑ )4Eƒ¦hÐ š¢AS4hŠf +Ó„iù!†0i& +T[WʶÎFÑÉV†åS‹ë[hý«­ó‡æ>ÍÙú?¯[0_öÙÓÝ=¢Ð2”•Y9Ü2p ZPèlN»+½¬±è÷»ü.§‹· bdl}íXY~AÀg[öX°‹6çÝ¿_L`M˜¬ÊrådWUGöv—¬ 'ooRv‹n>‘£¹Ün)­hû…ĵ'Ç›#…A|\xë–ÍË^1öÍÄó JǼ~½#üîcé-ÿäsÉ4qÜ·Ê~0C÷ùë±›7ï×8M{rìâù[¿à8ïG7;o=î½ g-Ä뢑²™W‚ûéå\UuÅáuÏëž$ +)MBx† $á‚@E%ˆPh4Èkhj- àcp˜‚h[tå!ˆ-Ì8è C1ÐF‡Q +•Çt¦Õ‰6PN B¥Èˆ"XÈé·vΉ—Sna¦™ùòÛwï}öÙµÖ^g…uIf:M2Ûâ½)³¼!2%Q/ ­zY Ødí3-!¾ÕK9Ï=ë4%:Ðÿxº…´N0¦Á0 ý¡cô‚èb¯º_Kïêîü] +Ý-2Ê«’Êý9Ò×+”aÞ&©²¤ÂªN»%E[Iòéém”*oŒT9r+ZéN–r'%ƒO¤ã»û¥ûõw’tÕÌû·¼÷ :}Èѵ×ËtœóhðOæ3–ñ'Ø’¢¾Š9Œr6IÒš å‰ãÁ.~wÕr2WzS_äL“ÎAéá,”Z»L*ìé2ÆZ'ýœXÃb)ö¶°]iŸ#¹¼Cßÿs§ÉÒ±u¯gêº]·®9Z“ÎßÌé:èu~éX5RfÕ§ÑöPÐ:·8:¯tvJêÐ_:\Ds¦m\OîeÎ}8›|%Ù(ãtŸ À™ÎúW`Eõ2Ú}ƒóž.}[‘ळN*í/¤ˆ¶G¼52…ú6VU0œg+¡½W"5^.g5Gz±–ØÞKìÅ,úeóþvh¡sÒØ‘Îë'œáqµÑh¯t’WäûÞ+2÷êô›£vËXå +c´e·é¾ëÙ'&5—¹_ ÖFy9q~G¥Ú¨±K}†ç³JÝw7gªb쯽mèjÎHǼÂóŠ0gÁ:±×¯Ð<³n‘ѹ°ÆÎf¬E²Tû06¶œÁn‡«í¨ª¨?˜&5:c?ØÈA)c¯ÆÀV«Nn³ê‚Mëv‚~Бç۪ߨíê¼Õ'ÌØØ˜ÚN¤¼û>³Fl*®ñ¾¡ONнP{»‘Fï«)ãÏêS‘2Ç\l÷4½Ë1{¹SÌÜËÕïñ½ÍÆ÷ñ?õmOW{ã7¿Õ‡ÔþãjÊ/ðƒ¸jìPÿkt.­Jl1þ}­~×ø+þt³ªqIcCt¶Ñ¹·žü}MÒWäÊéU0ðÂ+[D®NG×ÀyÑÒ~µ½Œ¢ ñ¹ñz†­çîU´§ÑEëÖønb10j‹âŽÆ>ÓGçƸÈïìT¢‡Úý†Ör8?s^ Ñš®¦bëX²%$\¯éòÍ_t™ubÃø~'¨Ð«Ml™,7q¨*8Áï<ÐGÇðK]r£Ô鞨 º´ùù°€²Þ% ¤CNéð­£”}ê¸WÐÎÙÛ¥³îgtwéÝdìr¶xš(ë>5IqV¹ç,¢<:î´‡ÿ'îúGwî¯ñ±ô^ÎY"ÙŒëkÛ +)ñÞ‘õ‹¬±Rå/æ|–`סߚUœjµï›·ËküßÄwbtd/­vó›ô¹™»:ò¹ø8Üïãï‰Ç «!ØÏü×†ë— ~šÙé­#Š-±ñ3ù}ë¸QŒÕ;¤!ÌGZž/Ô¼ ®ñ¸x#½Ù¸©9ñ¹(nÆbe&eß.q¼gî§šàlt^q½6v§bzFmWí/®™bj«Þ`5G3yR¨™âmƸ›I3ÄãP‹nÖþÕ¿ÕG#âóTc€úqš^7ž·Æu=«uÒÍä…ô39fÌ"Ÿ‰ö>-Fj¼\£9´æa&ÞEvÚâûzžÐü#Z—™S¸§&Uß mÒ¼3Ì Dš óÓcªæ Y VŠçîÉ”'xC‚—i^›¹ýæôÆþÑ|Ênlž•©=ŒeQîÙƒ-δæmÛãvñÍy^Wùú’sX‰Õ«ˆ S|±Ÿƒ½Ž$”=ŠUõ5Ø +{áuØ ;£åNóE¦àóÌ?}ã(ê_œ_o¯·”bÓ¥ÎZYä 4íÂ|ªëík½Eî½IÚpη?X&Õþ –“”~þeêçÊØä;Ä«JrºäÏS Ž±µ¼zJUÖkèxôê¡/°'¿áÛKm”>λô/¤­Rü>CœºD¹=Ë]”%c¼öøäeòÐBég})·ðì(kkpÁº]J­¯kž”&þ@¬ÙI™öÄRé–¸?8gím);Jçð¹nÖré÷Ñ6Ò˪”‰mÒ6×Ú%®ý)º”~;`¢xö!Ö\A_Æ×ïQëTp>ü-±›‚ËhÍõ9ŸaÑ÷(ô‚§  ¾ IÈ ¿gG…ý¾g­$·X)m¡úC5T@iØ6Š øôë‘à äzu‰î22‘ +®P7Æ9¹Ü!s EiZ mÃß…¡‡åjæ¼ëÿDœ“Ár©ì«¿‹3œÕ;þè +>wŸ—Áp7õÇ©ëèöâîí'SýsfŸ³È +ÎàGøÊr}]'÷¹/¯¶H~b7íe=þüSî‰ÕÖ‡ò´B¹}Ì|ç5%Öësá7ŸQk3 ‰‰-u¦üÿ6G‘,x{:~)>ßçàeÍ{Âbú-D'iÛæ­óa^øœÆëN´}¶¡ðkž[‚*§iÛjþûTô½êœ6þZäT³-d»Ÿç¨NòoRáÁ.}I¥£±!$·ƒÛüCï +r”aŒTz‹x'qQóEcùlGÃÔ§sI*õþRô9¯¶ÕPƒÜ«xwŸþ͘¬Å]ÍøwÈ4'åÉÁg^Gg+Ï=)5úns‡ö019eò¾ß¸g†qΕnÀœ»2Öaà]þpÎð<ã†w˜ó¸Œ°÷Éíö©pÂNXK:ÞbLˆÆÐ{™LUܶR›ŽSòpÈgØÊZöî¸Lr6“o(¼Ûͧí T›oeŸôt obïJøÛ+`®ŸJ;Å<7š1C’ý¥VqÖñެã/”+åû¹Ÿu×:÷Ðo» ¢n„Þ¿Äð>ä_{¸kw{5qºÂ-wÁ 3öji§¸ge¼ÎÓ@žb÷Zÿ„\&.NU¼Rìíö³Œ³yZ;•Ñš{°O)o²TZ¯R¿²/Ý“+±™œÉ2™¤mÆfþLû2Õù{9&ž±Zìâ"wcÇðãu~Å5ø±ßñçMû3¹ÅýXò½$üе¿r€½[| &Ë$;IŒH~$ù>çï@Á)8ËoÈú—ägw„F‘ì«’Ÿ“¥P.¢$ƒcô=ƒ Ý-Ùºö6É·y·ó +ç±= çá"¿Aû@™ý86Hæ]jÈW|¾dýG˜ÓzÆ}íBý>æû.ý~'Õºõ~íÛi–6ÝS­?DŸ×©Ïc¼€çÀËxóé÷{ê™Gr? +Y³%_ÉÞͺN£Åèt +ɾ<ÿ>ýrd¤[Œ]læ{÷mâK_lë°öî»ÑãÜ!ÏH¡û*õ/Ï—h¼’ÎØ/›Ø6Š(Žÿ½^Ûù¤4å«F-EÇ‘D…Ұâ’¢º$!¨¢ª´‰7®i½)D‚ˆVU9"¸ð!¹4 ÑC¨‚8¢ž8õPqh¯½!µ0ÿ™8Ž)²‘BhÖúù½yófvæÍì¾ÙŸá^ GÖxNêå³ò迃šCäüv7²[˳Z®“7È™#O“yŠì· +Ÿ¶ày ÐøÜPñîÄI ×áŸB®áŽr’ï+…Ø0Dzð2óðæUk-´ìf.ø•¹±Ÿzåm-™OC2·žÕùöu³2ÏTkŒåNCAÛM'¢‹Hò›~Áo7Aæ™?"s„™ã÷UÊ·ì xHæ{/&蟣þ|øMÆ7…„|÷[`žôËÁº™8¹ÿçXž•’uSlóšÊ ŸóÝG?ýØoã6¹Cû¼O7°]ŸD§ÏTÞÈ5ÇÙ5‡vtN æÕø…Ü¢ÞGyƒrŸžï.]k3?Ê¹ß ‹vTLº€g‚I»VTÛa\Ul¯²ç.ëÐJ°­`¨…Y{•ó>dèí~«ðü&÷Rs?ý•Ôû¬“Œ\À ÑOù>Nà»ÈÞ×Ñì‹5ò}gbW˜eîlg€YëÞáí ~Ý÷] Øó$ðÀ;ÀÃ'¶¾.fWj®˜©––ýbµR׎™RI(Ǻðܺëqóc‡ç²™£ñcNÉñ‹•jbºZv*Ý7K¢X{-똛¾çäݲã-‰ê¢˜¢‡/G”™Äª¨aŠ(à|\$)¤ùK!¡ä(-ãHòwZ†-j\—ºl_fi™-]ö"= ‚ŒéÚN½³üfl3˜ä¾VW#‰·q—ë[p„—ùÌD`ÅC—ù0„¥²A%‹gY·»èÖßà³ñãüx‹¥Ïl³`ƒýˆopóÜ:“…ëÚò¢¶„q 縔¯4}l¬¶Y"øx›…c”Om,΋CïÌþ!ÀKw endstream endobj 39 0 obj <> endobj 38 0 obj <> endobj 47 0 obj <> endobj 48 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 22.0.0 %%For: (Nicholas Carter) () %%Title: (daemon.ai) %%CreationDate: 12/17/18 5:05 PM %%Canvassize: 16383 %%BoundingBox: 47 -402 570 -150 %%HiResBoundingBox: 47 -402 570 -150 %%DocumentProcessColors: Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 244 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -792 612 0 %AI3_TemplateBox: 306.5 -396.5 306.5 -396.5 %AI3_TileBox: 18 -752 594 -18 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -71.5 -13 2 2156 1341 18 0 0 439 43 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -71.5 -13 2 2156 1341 18 0 0 439 43 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:0 -792 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.6 %%EndComments endstream endobj 49 0 obj <>stream +%%BoundingBox: 47 -402 570 -150 %%HiResBoundingBox: 47 -402 570 -150 %AI7_Thumbnail: 128 64 8 %%BeginData: 7348 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FFFD15A8FD15FFA87DA8FFFFFFA8A8A8FFFFFF7DA8A8FFFFFFA8A8 %A8FFFFFF7DA8A8FFFFFFA8A8A8FFFFFF7DA8A8FFFFFFA8A8A8FFFFFF7DA8 %A8FFFFFFA8A8A8FFFFFF7DA8A8FFFFFFA8A8A8FFFFFF7DA8A8FFFFFFA8A8 %A8FFFFFF527DA8FD12FFA8A8A8FD15FFA8FF7D7DA8FD4FFFA8FD14FFA8A8 %FD17FF527D527DA8527D527D7D7D527DFD24FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD04FF7DFD05FFA8A87DA8A8 %FFFFFFA8FD07FF52FD17FF527D5227F8272752FD0527FD23FF7DFD1DA87D %A8FFFFA8FD05FF7DA87D27FD047D52A8FD06FFA8A8FD17FFA8FFA8FFA8A8 %A8FFA8FFA8FD24FFA8FD1EFFA8FFFF7DFD05FF52A87D2727522727F8A8FD %06FF52A87DFD13FFA8FD31FF7DFD1DFFA8A8FFA8A8FD06FF7DA87DFD06A8 %FD06FF7DF87D7DFD11FFA8A8FD30FFA852FD1EFFA8FF7D7DFD15FFA87D52 %FF7DFD11FFA8FD2FFF7DF87DFD05FFA8FFA8FFFFFFA8FD05FFA8FFA8FFFF %FFA8FD05FFA8A8FFA8A8FD14FFA8A8FFFF7DFF7DFFFFFFA8A8FD3BFF7D7D %A8A8FFFFFFA85252527DA87D527DA87D7DA852527D7DFF52527DFD05FFA8 %FFFFFD14A87D7DFD04FF7DA87DFFA85252FD3AFF7DA8FFA8FD05FF525227 %5227522752272727FF7D522752F85227277DFFFFFFA8A8FFFFFFFD11A8FF %A8A8FD06FF7DFFA87D527DFD39FFA8A8FFFFA8FD05FFA8A8FFA8A87DA8A8 %A87DA8FFA8A8A87DA87DA8A8FD05FFA8FD1EFF7DFF7D7D277DFD0AFFA8FD %2CFFA87DFFFFA852FD1DFFA8A8FFA8FD1DFF7DFF7D52277DA8FD08FFA8FD %2CFF7DFFFFA87DA8FD1EFFA8FFA8FD1DFFA852FF7D52F852FD08FF7DFD27 %FFA8FFFFFF7DFFFFA87DFF7DFD1DFFA8A8FFA8FD1DFF7D527DFFFD057DA8 %FD2DFF7D27527DFFFFA8A8FFFFA87DFD1EA8FFA8FD1CFF522752A87DA87D %7D5227A8FD2DFF525227A8FFA87D7DA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD20FF52A8A8FF7DFFA87D52 %7DFD2CFF7D5252A8FFA852A8277DFD41FF52277DFF7DFF7D7D2752A8FFFF %FFA8FD24FFA8525252A8FFA85252277DA8FD22FFA8FD1EFFA852277DFF7D %FF7D7D277DFFFFA8A8FD23FFA85252527DFFFFA8A85252A8FFFFFFFD1FA8 %FFA8FD20FF27527D7D7DA87D7DA8FFFFFF7DFD23FF5252527DFFA87D7D27 %52A8FFFFFF7DFFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8A8FFA8FD21FF527D27A8A8FFA8FD29FF7D7DFFFFA8FF2752 %A8FD23FFA8FFA8FD21FFA827527DFF7DA87DA8FD27FFA8A8A852FF277DA8 %FD04FFA87DFD1DFFA8A8FD25FF5227FFFF7DFFA8FD26FFA8A8FF27527D27 %A8FFFFFFA827277DFD04FFA8A8FFA8A8FFFFA8FD05FFA8FFA8FFFFA8A8FD %06FFA8FD25FFA87DFFFFFF7DFF7DA8FD23FFA87DA87DA827277DFFFFFF7D %A852FFA8FD05FF2752527D7DA827FD047DA8277D527D7D7D52A8A8FFFFFF %A8A8FD2BFF7DFF7DA8FD22FF7DFFA8FFFFA87DFFA8A87DFD04FFA8A8FD04 %FF7DFD0452275227522752A8A852525227525227A8FD04FFA8FFA8FD2AFF %7DA8527DFFFFFD1DA8FF7DA87DFD05FF7D7DA8FD05FF7DFD05FFA8FFA8A8 %7DA87DA87DA87DFFA8FFFD04A87DA8A8FFFFFFA8A8FFA8FD2BFF7D7DF87D %A8FFFD1CA852277DFD04FFA87DFD05FFA8A87D7DFD1EFFA8FFA8FD2CFF7D %A852A8FD1DFF27F8A8FFFF7D7DA8FFFFFFA8A87DA8A8FF7DFD1DFFA8A8FD %2FFF7DA8A8FD1DFF7DFFFFA87DFFFFFFA8A87DA8A8FD04FFA8FD1EFFA8FD %30FF7DA8FD1CFFFD05A8FFA8A87DA8A8FD07FF7DFD1DA87DA8FD2DFFA8FF %FFFFA8FD04FF7DFFA8A8FFFFFFA8FFFFFFA8A8A8FFFFFF7DFD07FF7D7D52 %FD04A8FD0BFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFFFFFA8FD2CFF7DFFA8A8FD04FF277D277D527D275252527D %A827527D7D7D525252A8FFFFFFA87D2727A8FD2EFFA8FD2BFFA8A8FFFFA8 %FD04FF7D5252FD05275227A8A8A8527D527D525227FD05FF7DFD04A8FD2D %FF7DFD2CFFA8A852A8FD04FFA8FFFD05A8FFA8A8A8FFA8FFFD05A8FD05FF %A87D2752A8A87DA8A8FD09FFA8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DFFFFA8FD2CFFA8F8A8A8FD1DFF7DA852A8 %A8FFFFA87DA8A8FD06FFA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFFFA8A8FD2EFF7DA87DA8FD1CFFA87DA8FFFFA87DA8 %FFFFA8A87DA8A8FFA8FF7DFD1DFFA8A8FD2DFF7DFFA8A8A8FD1DFF527D7D %FFFFFFA8A8A8FFFFFFA8FFA82752A8FD1EFFA8FFA8FD29FFA87DFF7DA8FF %A8A8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8 %7DF87D7DFFFFFFA8A87DA8FD04FF525252FD1DFFA8A8FFA8FD25FFA8FFFF %A87DFF7D7DFD21FF7D7DFF7DFD05FF7DA8A8FD04FFA8A8FFFFFFA8FD047D %FFFF7DA8FFFFFFA87DA8A8A8FF7D7DFD06FFA8FF7DFD24FFA85252A87DFF %7DA8A8FD22FFA87DFF7DFD05FFA8A87DA8FFFFA8FD05FF27272752525227 %52525227A8FD0452275227277DFFFFFFA8A8FFA8FD21FFA8FFFF52527D7D %FF7DFD26FFA8A8FF7DFD07FF7DFD04A8FD04FFFD057D5252527D527DFFA8 %A87D527D527D52A8FD04FFA8FD23FFA82752527DA8FF7DA8FD27FFA8A8FF %7DFD07FFA8A87DFD11FFA8FD0BFFA8A8FD23FF7D7D527DA8FF7DFD2AFFA8 %FFFF7DFD08FFA8FD1EFFA8FD22FF7D27527DA8FF7DFD05FF7DFD25FFA87D %FFFF7DFD07FF7DFD1DFFA8A8FFA8FD1FFF7D7D527DA8FF7DFD06FFA8FD26 %FFA8A8FFFF7DFD06FFA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8A8A8FFA8FD1CFFA8FF7D27277DA8FF7DFD07FFA8FD %27FFA8A8FFFF7DFD05FFFD1FA8FFFFA8FD1BFFA8525227527DA8FF7DFD31 %FFA8A8FFFF7DFD25FFA8FD1CFF5252527DA8A87DFF527DFD30FF7DA8FFFF %7DA8FD41FF7DA8A8FF7D7D525252FD31FF7DFFFFFF7DFFFFFFA8FFFFFFA8 %FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD21FFA8A8A8 %7DFF7D5252FD07FFA8FD2BFF7DFFFFFF527DA8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DFFFFA8FD1CFFFD04A8FF52 %527DFD08FFA8FD2CFF7DFFFFA8F87DFD1EFFA8FFA8FD1AFFA87DA8A8A8FF %525252FD09FF7DFD2CFFA87DFFFFA852FD1DFFA8A8FFA8FD1AFFA8FFA87D %FF27277DFD38FFA8A8FD21FFA8FFA8FFA87DFD11A87DFFFFFFA87DA8A8FD %04527DFD3AFFA8A8FF7DFD05FFA8FFA8FFFFFF7DFD05FFA8FFA8FFFFA8A8 %FD05FFA8A8FFFFFF7DFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8A87DFF %FD05A8FF27527DFD3CFFA8FFA8A8FFFFFFA852275252A87D527DA87D7DA8 %52527D7DA852527DA8FD04FFA8FFFF7DFD14FFA87DFD04A8FFFFA87DFD0D %FFA8FD2FFFA8A87DFD05FF5252275227522752272727FF7D522752F85227 %277DFFFFFFA8A8FFFFA8FD15FFA8527DFD12FFA8A8FD30FFA87DFD08FFFD %08A8FD04FFA8FF7DA8A8FD05FFA8FF7D7DFD05FFA87D527DA8FFA8FFA8FD %07FF52F852FD13FF7DFD31FF7DFD1DFFA8A8FFA8A8FD05FF52FFA8277D52 %525227A8FD06FF7DA8FD14FFA8FD31FFA8FD1EFFA8FFA87DFD05FF7D7D52 %272752275227A8FD06FFA8FD47FF7DFD1DFFA8A8FFFFA8FD06FFA8FFA8FF %FFFFA8FD08FFA8FD47FFA87DFD1EA8FFFF7DFD14FFA87DFD4BFFA8FFA8FF %A8FFFFFFA8FFFFFFA8FFA8FFA8FFFFFFA8FFFFFFA8FD05FFA8A8FD13FF7D %FD15FFA8A8FD52FF7DFFA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %FD17FF7DA8FFFFA8A87DA8FFFFA8A87DA8FFFFA8A87DA8FFFFA8A87DA8FF %FFA8A87DA8FFFFA8A87DA8FFFFA8A87DA8FFFFA8A87DA8FFFFA8A87DA8FF %FFA8A87DFFFFFFA8A87DA8FFFFA8A87DFFFFFFA8A87DA8FFFFA87D %%EndData endstream endobj 50 0 obj <>stream +Ó­ ¯­Õ¯¡1§ýìì[‹=õÑÀº~tŠšö r.†tLØž›G t–Ü[PÖ½Z1#ÓgÕ·;^|õžŸ‰ ™ÈåS +Xôª –ò?Ë|Å?s\ñž—]"fùÚKnÌús„Ðt¤ƒrhôª•^·wð×lmT;§æ.)ÿÕ/ØÜÈ?ú É—G%õ‚½ôU—ºlã@t¨ìƒQÿëO´ïçPÂ\±SPöp¸½êa §ñ厛Åý>ݦü<Ʀl»ÉµkJMØH©YÒâ³W ÔòE3³Î$hŠò´£K÷|ý³ƒÐØ!TÆo} é°ÙçƒvìÀŸ«çuÔÂÆÄ7¿tBSŸñQ?¦Ôu;"mß‹®ù:FB}Л.&*l¥ÖYù5O&ú!iÿj5~™ Ã7ݨ¬%-ämxôzEÓôˆGIcýèwˆì˜ã¨œL«@åd¡‰wÚÉJ9ïo¯¼6DMÊj¢v=ÈÒÏã,Ú†“‡³ ò.‡ÍèªoS¼öMª|ÍÚ·jCf¬Ø‰eÛ|Ý¿‹‚õ.GN+}^ó÷Oû“\ñ·y¡âË$ãpæwé²¶ñÕ´²âA` 1jJǪÓë®Î* Yûrî½!fs¨:r^ǃ¹…õ7†Y¥ÙegìªKcà‡3rÔ{§ úú8íTocî%¡âö˜¸þñQXz³nDåàïµ´Â3ò–äM±pÅ„N[6arÍ´ÊU³?Æç­»Øˆ3 =õø‚¯€³å0WM”’iYsÔ6åÖ²§Çú!ñ¿˜É%õ“ëÎE?¼O{q~VÒèù§#¼ì‹ãâ‚û#¼kjTüI^iä %<ñ/«ì*íɉ…îêw_]øš™®ÊÇ^vöU/7ñŒ¬éñO½u/~6¢“O™¸…7ÓŸýQuùç3 txÖèßq2ì» Ý3ÊBÊÊWS²ò›QõMlaüŸÝéglļózTæ_V|ÁÅqAÓ¡è,NþVÅüBÉzulDTùÈÂ*zH+xv ‘tÿ—öª·¿[ÈéMw7<\ÑÁ’Wôuamå‡/>"èÀǣ•@Ü-ßq#rWŒÍæèµÃ3{:€ÃFQ acK" { ›æ.Ѷ_Ò4Æ.*ëc–õ-±[ø¢a&lj•¥!æ^™íGÇ»[±:FýË‘öê‡ ò²ÈuC5À# Ì5'*ç°Ó÷)®èÀÏÀ-è)…›Ã´æM'ºä @Aý˜e ?3HëØ¼-/±zxmÈ„/ ñ¥a±pA…IX„Dï:I _|þ¶“]11jCúNòÒ ¨ef€’>Ñ {­'ç^UcRÎÎÊa±+zFŶV¿ Øä–—…Þ +6ÜTšW6£rçä ¨-±vg„‰ùh°Oì`œŽÝ pinzßIitqJo ¢³ÎØèEçfdµ¶-¨œÏ~&aRƒLGo8ˆåËFLÚ–S°î‚fÌjšß‡-Ø‚= ¶nÁ—ÖH|ž`1¶$È?ËÜîïËÕ7 w|žd°BvRó²Ñ´¤'å­˜I¥ß[ [~uœËý1Õ®ý1)êù1Îa|c‘v<æ‚–œ>œwh¤öI¿?))»T±«½bÈc7¿þ–Yv~TX|q¶¿éÙü.e¬=ÚÚ|¦—_:-묛î¥$-ªqÉAIÅͱö¢Ë‹ý-¯¼ øŽ—X» ‡ÄÎk`)_'ø­Ÿ‚|þî(¾íc"ׄâQ~Ï/àíÚ{wFy´U+µbÕD­XP`R&:kŸ¸¥W5Äüs2LÕYZIê/2XþM ½ä†´ñÝ1"æX{]ÔÑHÂ/nÕýñnTr°ööðwVåÇ?§$ ï&¤5>ú½–ô‡…œñ—‡[þh¼ôn¶›àCÞ` ¢¡æ½?½eB7Ì+ª†ÔõϧºKïö‚^ëkzuÌÛVu[Á¬¼žðôÚQ\Ú»?¦»¡/}ÂÚÛ|éßZTÑejΛ㥑W#²î‹¨zqý(¯>þxöÛÛG!‰NuëØYýpq úA@œwMKˆ=-¬¼wL ~r]ßœ4§Cåhˆ™7íoï5GY9Ío½m¨Ÿ¹b¦TÌA? 3Ñ× èî"_[ã#'§æ6cÓÖtˆ´M3¥|`§é>bÊX.ÞÕ +~è€Æì:˜¨‘Ã:4iãÓéÞ†Wj\ú5=µä¾«›«à¢ÁóOö·TÞ ÊðÉrÙEnñÇ£”ÌG°)¯Ž`’^À%½;Å/N>Û¬¹ŠÌM:Í­ˆ=­&e^a–<ûMûÝ@ˆ;!GÆýªÂ¦^vóJ¬è e^YK<"õÁϽ „{ÿ9m_öŠþp~@ó›©Îœ zÊ…ªxrTXŸüü´OR_ðy”ÜtÄΩΚg^nÞþ–7§¥õÏ~6bâNÍ r©Õ‰Wªãïý¡#d?Ú2¢sÃ*pô® ¿e¨þ¨§ÄÜ×<<á ¦ý½p¾8æw5>+ú‹Lüg†Aÿg‚ØràFnZÀéVNâ5 6éÊ´²ùc?1ë©™xÎHM»e¥}²§æn°«äʤ¤äê²7«¢dúº°ofz16í<ÔÔèµO{.ЖÑ#ȹ¸b€§n»¨Í;.s'À ¢ýrTܦ‡¬KÇÀþx»üs+øì§¡×]ðÌ €9–íˆ\+¯ì檎V2§&dOôÀßy9U×zZ^-Éq©³}-"üK‹jjÙšMÌø¬lÃÒì.¾1!)¸º¨ª‹Ür+Ö‡ ™è›š¸L€ã«Âf\ö¬þn¢ü|qx¶jÏËÆíû…ü%¥|ÍÎ%n»ô53­~ÉÌläÛû(ñÎ.dÔ´ŠVè—S³L|è-¡ù–žæ@ßLI0IÓbÔÛ€üÐÎl¾«AUžó jo©(e7™y¯OjàiîÛ¤“¼`¤–‡,<ØœEL±÷bã:¡Ú™‘‡=×f5 /ƒŠšûÓÊÞƠ÷›VRõ¼¡›å’µ7A¥—V̸ÚMkSì¼¼üޝ5ÿ¼w¢§)þ¤‘òû„¤>r|ZÒœûû««F´×|¼´¡ƒ¥Œ·æß +pS.˜‘/OÒrïé}g?¿»f#¾MuÙ¾ÎtÚÿϪÈò¿avÏ׬rq°èÞ† ÛÔ O4HȲ¤¦-ª 1a"uÛ‰->ð rÿ à«W¬˜Ì5;«9daÖûñ×mÜ–M; MD@߃^Ž‹Ko›éWð´SÓ] /ÃfØÓY÷xª§>òÀI­ÿ죂¿hÈoAu×ÇÀΛherî¢M@]rvµMhE £K¸ã2·-„Â3:ç“—P½åDdíØ1y;Nfàà±NÐÃajá¹Þ†¿¨[OÙ‰Ig&;rïí¹¹Ôƒ™Q¡âw\äº-7¾ì{†ú>IÃï(-!3"s´£òAX Éßvã+} ë6tÓÎA¸‰‡sç¾iÜõÐ!ë€F1 S¶æê03 +0Ò¬;£C¦-ÙpEÛ£hh˜Þ0:€|;"…G.¨9ÕkViÛáÜŒå!RöL/.À¤ =Íi¿+P™—&d-ï×½âÚ+Àß*g5ä’i1}ÁL.9™ »nĄ́Ú忎ó[÷FHà* Ð Í!+»qÝEkÜó3P3Bμ•Z¾l£Wîùûý`ó–ÖX±Òê=P½¬¥/(E³*\ª·ýNÏo¼máÖ¿p¼§éÕÊ`ÓÛocDÈToõ½‰®ª›³Šæ×ZRîe%<ãO7»òFÈD­1ŠQïE Œó6AÙ‡µaLÉxOÃýqIÓÓé¾–·sr|Ú„ —ºj§Ôny©MódÚªSõmšÍ?­§WŒô £Ã6Fýal^1‘‹€½:ÔSFjÉu;§òaXG,¢–õJ.[y5ÏöÜtØa¯»e=4nÕ„ÉZ2‹–l"ÒŠ«£-ì‘ʦ,=|¯B +©Å³†^\0Ê/riÍ“ðPÝ‹u#ã⾃V¿a¦ÕlX©5Û>àbêúˆ€1¡£×8Z¢ÆX”/3<Ñ—®ðËáì=¥nÅF,\6ó–´´’e 4Ö‹|3« ä„õ"ØðØ#,¿>Ù]öp^U÷Ò!È;7ÞSóbÃIkÐq+Xù5ÏvF¨½Q&fÓIï{Ñ%ÿÎ@Ë?7¤…¬M1‡ßaÉ!íôÉ©EA2îSIß¡ ?)ˆo“$ÈAW»áDçíë~&Ì)aïÂ:Tʆ•=£h|T@߆,¤Ò]@ï¸YÈÃÜ«‡=W=֌۴dfƒ–-ÌÆ#­fÅNïù¨oöŽŸG_°pAë£í[~>ç°~rÍ˧ÍÙ¨Ua+./¬‡'m90[nÉÛ~>*‚D­Yùè%#£rVNL]Ô’ó¦‡é£rrÊÄ ½dÕ#bNi)EîNÔ›cuÁ$e…Ì€…hÕ3jlò¼—y¸&û~uÐßkv@—zI͇g}Ö¤š½›vsP!Nù¬‰^¾î¦ƒ7Ü ¨›]quÈKa¶tÕŒ-Øt‘ªÃ6BÉ‚ŸT‘Òl,ЪG(Ø ¶ öÕ ÙÈ _{ûÎ zÖF[[džºp­°Ñ£@ÇKëΨÑЇ5p³,îAZ¼mmIÝ´ ŠÖ¬„ºÙÁ6ð¸\‚bÂ?8Û¡…ÿLs{67§¬~jgeÕaNë0©·€ýb'hѨ]4ñÑóf!2 ä’+²¤gVÏ’2ƒ½èè  ñvQO.S3òGûi…³:h{ø_@“/èù«fF=c7GZ… v.|Þ!"Mš»(…¤É?(§Tà9·Þß]V`³7­äºu³eTMÍcK/qëÒ~tòCRAPVó`¸5õÂtñýU¹rÑ.$,»Ú8k#"Þª—… Û™ •a6jÅņ‡l´ê5;&'lÅ„lˆÌ­ydˆÍ„g^ÆfGÛ41·ì|Ìš•ٸ饵¬º) E£qÁÆ­»…‚í1aëf€…r õ°çŽ›Ú´ç¥ÃöGXØm¶d&äNô!£‡Õ‹F.ØÓºçm­y8.©~°ö³YU]TÈËØpSüý-Iþ^pâÞ(»î Õûê_ŒË²ï~­~÷y¼1m7@BmøÅ½óvi»OΪ™¤–}™î0|iU~ +2È[XΖ»9yÛ*Ú÷ë¶=¤ê øiÈ€Îú ÷¼ØÒ-¡|ÿÿ?ƒ­\µàK&ûaÑëNZóΤ¨gÙÍc„\̶_$þ4.’þÄï-ö°WInÈA­]4ó[Ö}âžQeK¶«§:fe˜ ^ñÐë8lÃW­9© ‡€èµ¼ô‰‘I›®6á‚‘Y=«¡å-èå³Jùœ‰ ³µ³ç]¢i·ÁÞN‰Ÿ4)û‚ÆöE+ ìWyÈD,[wÐ »~.ãÓDkï^'Ú:<ã4Û®Ýä‹×¼4ðV€M^e gœ ð’—‰Þ°i+nÂȨ¸:¦@寸äe ©dà†;©fÙB¬X¶ÐÁ›ö¾õ±ÎÁ5¿¨}ÑÉhÚ´Ëö&]["tÅMªó?Ĥ©Ã™«^|ý?³mšï³¶o3mªÏSBù~€ß¾w8 dDÈ*y“ƒ¼Êƒ¶éK¾M‰µ!*s~ìƒÄI[¢æÔˆøŸ€»æ2vGÛº·Gd®Y›¤5dæCÖlÌ´–Smm…?ñv!^M*p‰! «yÙÒÁ^µ÷H·|<ʦ𱿤TÎKsJÁ1vzñ­ï~¡pÓÛѷꑪÃînUÐØIðkÛ #}¬Œ) ÎÛÁH•Ñ‹·œ´ŽV¬µ<°w!ßL¨©å‹!ÆÛƒ‰À'Îj€õ±’¾Œó^.yÍÃÁNëð9SCؤ â×=müUw;<,¢­³›.no‚É^õ‘šF”øc+$ÒÌ…DOi…#cÉÀ¨ØóÓ^yy˜_ó1ÿ,•Süö ¶=ÒÖ¹=Òmüvxžx]¾j'-j£gÕM/¦mµlåã| +já ¥üÜœà €fZ¢—´°Øñ~Ð wGÍ=@c¼ÚvQ¶ø¼ §UÍ RªC& øðìù·)*êÓW°ìâb¬ÀÏÅìw·|Ñ)í™± +Ñ‹!)ìàR +à•sC-˜ô5; ´åf¢Vmø¢…¡æh@û%n:>Ìæß^Ô5½Û´ h­M ^¯ú„ìõQ‰zÅÅ£®9 Ðeù“ +b꼎\²ã´ŒwêþVI©ä®œ|vÁHmŒ´ŠVGÌÐ(7i¤.;9ˆe€ÁÖ<Îö¸x`É +è*=³bx~ÝÇgÌÛùØ s&hhƒÍ…РZ.œ4Žêäü ¡ì|AÍY6bó·½ ä¦_ÀY÷r #<Úþl—skš+Ø´nN·©¶æÚ ;s"Õî$‡¿ê¥!æm”Šà)/8$h6‹É©kîΛû»­mì,VUÙ…I€°1)Vo1w¶Ã²;Û6¸àЛ-›20ª6Fô½I +b{_3ïs&¬}’…á~튧W?eꓘeÝÕª¶î4•Pš8ÜÛUeãžMô1K×ÝÒí@×àÎx{ÿΤ +ä£Ã6Æ™¸íI±fgJêÙ]èroM2h fxæ¼ ]òqHvƒ»Ÿžêê£&ÕøôuÀ‡Ã>6zÉÅ‚Mùè­1‘toZâØšê0­øÛå!Ÿ@0k!”,:™È°¿£{ ðë­ÿŸ ؤU¾bk]²;NÃîNˆ5›A©eJGÈ7Qš¶Ç;4ÛAa×Î8›¶`¡ÕŒ áRç\ä†íiéÓ"«sÕÏ ®Ø;Ó­òÝ1aÛαy7HÇ­x:Å~U/ÂݯÅY»ÍHU«&4,dïÛ•?f;Ì€¡6†‘ÅŸ¦x]‡{´ìélQ1K "ÌS9wÃ%“ÔÏX»ØëÞöްöËy^)1mNE/ ¬kÁžŽËHÁ~LÎì ±xÓ+䄆Äy+2­o‡¨EuÓVõ’“\²Ó­Ÿ=kd”y5Mf¥£n—ÚzºÊÜò°µ··Þ*×2-½–±ÛÊì"õ}ÃyO¼ýÝðyk'-äæa½Ê"À°K.z㺟Z´DØË„/yVs p£zCÿðMîÓûíò¾†Þvy’¯ŒaeqÍÒ‹8°ðZuZÕŸø*Ôµ¸­nF/„„œì²…š¦ÔîL $‡½¯ö§ÄúÍ ‹¹2Â%.:»‚.1ÕmèÆšä’*ë@OCÞÝ0iéfNXeí.y/ÔݯÄ:ejS.ÁùµtÐDª bÒV†…äÍÑýÆxÿèîL—m{¢]±7)”|™ãwZ ³ÿ»Ê‘ý'$P}ìNq8ëã\Ƽ§«cÒÒÛjë`¤MšÚHAKͧ¡Í ‹Ø;“,ÎÒ0¶|Ú@( ‹;·=ÖõÑ6ñ´‹š–p<&“Â(å*Äc דßNÓ¿cdˆê$5ØßÃÐÅÒÛà +Ê jï•„¬Î’Ð{r¬í9£‚ÂCjÍßï™w÷ŽÙúD¦AY‹Ra„É\©d §i^ÊiÚD‹ÈÒ`k×4¸ÄÝÅnÙTÛf,ïgÚÓ9$ëûŠBìÕª Äehï/x9û7%­#uÍÝ7¸5Ú50ki§yœ»¼<Ôk€Ëe.L¯#bSy$í«V†#]"šh±íYüàËêBòÅšBò…Éȉ¼–|4ûuío4P_´šëª–¨ a ¡hwUºåÇU›˜5C}9½L}‚„:ÝÍê«•ië´]Ý9^…:kVHÇL‰¹¿¿QÉíx¯ ¶?µ €“ã~U¢`‰3òAnØ&mÛíRLµƒF]ÔÖ¿]³ÂóöÆÚä³Ýäðà['•ª„Â85¯'Û£´ˆÇŒ +ᔥOäWw5 ðZciõõgäDÒ+w§$¿JùÛÀeÏhºé!“„5¥d. ÑJÆd°ØiìÖ †‡dÈaMÒÐÛ–©ïâÆe}E]ÆR‰$ÐÀÀ*áAÌû|’4U,4äñò·Õ…„›…™È›É-çJ²Q—jó!„Á[cWOŽ×¤àO9ºøË·-¹Hµ3zLÖ¸QsäTÀ ×)°Uðhº\m(O@1ÇàðÎG ¸îjyUûé¼læÏ9yôŸïÜ‹¸wóÃñÒBüj ãnCoWH@)}ÎÑN_æ1L„Êi ­ÒkVu:½¯O]&íPgK»Ì•"Ž.E¿gã;Sðꇺ–‡-e”'•¹¸‡ù«å9e—ðàê¿„¬h¿­b¨}€äì^—¨W.Ùà·~ìOsx;3óæd·mÅß­šñHD~§J¢SâEY/§óÃPªah@‹•‹$©jQ{¢e 5ËÒÏ̘0·R¶ƒRûþ„X±ènÚõ†.…ÊÃî’ϳâÅ Ùû²±Yy Q\†6öžÍÏÀžHЇüš—Å=_¦øåþXÄ•[¹Gß¼®9Y’…:ÅAsïè:;²Æµ̤U©6Úõê¡©X>‚`ˆ +h¢ýB2w#Eð?D·è¯ úÛD¸á&¦yàRCìzyiç…Š’Þ3ù%Ò“÷"+"nÞÊHJ¤ü Ú®IÚÇÆMùŠ["4šÇt­0^ÁWi†ùÌž™*{.A™yVÛb½”SÔökQiïå•êß +ŠzG¾ùûvnDä;Ì‘çïI×ÕDüzúiÄ먆“e%ü³8Hß ]‡4mÆ.Àλy«²µBÑ©)í¸òØLG ‘2üŒ!XÎb°S…‚‰|ÕðžIмc‘Q˜âZQ>ý—Û×¢>¿‘]þ[iæ6¡žiî4¡§ æÁ%g‡ lea¶¼MØ«·™-Ú^™+‘àÝãÍ’ž’´{‰Ð&pdÆ>ÅM ¹"«K˜'*s1¿Và.f&ÃO>¹Ÿð{n\ÑíŠ<»—ȸ£$T\V¢â~êG¤Ùô–~Å€ƒÐÛçEð¥ãåXºïEMãÀµ:ú6Š:UÛ8t.òEÍѧOKç—Š~Ë-ï=ùèYMÄ…Ë©—®eG¼I ¹ü >âå[ì1 Úö´¯„ä5vÏûºz¦\„G/ã ª½m}sšp&„²ßˆM$Ÿxú¬öxB<æ—âr婌ÙÏï>RÜ}\ñ:–p$:™}äòݺˆÛ‘¸ˆ‚ +믠fÓU^ùD)Vë:ÛÓGUŒ¿Š’îTÉÒžŠÓ1WFŽ'¶àl·‹*Û/Vƒ‡.׃-ç?=~T|äÒŘˆûws"žGA#þ¼VqüøíˆÛ·ÓŽÔ4ª/}Lcžºû¨ú·ô üßòŽþêШ¸s²µoÝÇ¥Mè…Mn¡Û¬³Ë†4#=}ò ["_ãÑS™H¼é. +=t@v¿@âœOjjº¯Ä¼©>•™Iü#5¹á¯Ì¤üÛŠVveÈ&ÂÍ»X£VAêì³Ô2ÄÓy8Þ\l#iü^Nò·„,òѤLÊO¯ã["®?+Žøå¯W÷ïåG¼M FÜ{‰¸t;'"-yœAT>UvUx»š]ý¼›ZEP(íDA·¿Š$ +gÀ™¡—Í”ñ{UH÷ùä‚¶Ÿ^€FÄ'“ަg ~z—D¸Yñ'ð^ïEw4&säE4!âî£ÆˆÛkX‡ˆLF܌½püÓÝWØ£‰ùÊ_2<7(îK…Êüy'—¾hF¥-˜¨ÅneGmP•ÞÖ>ZÎO£i£‘M˜É[5Èñ«e`Ç™´œÎŸ¼€E<Æ}ñtäÌ…”ˆßÏ~8’Å;ñ!}º<sÓ«ïÅÎÙE„!yoLn„u Œ#¹]“edÑ\*œ1Yº”˜Ëû5&t<*ÿó¹{yGNþñ"âÖ³zÀÞèGsJx¿ã¡ÝïåFK+'ÎÛ„ðñAJ樚œådåiTªæŽ¾„ÑæNÁÒ5 hÝ•*¨ãúÛL>‹@Gï>͉È)œÈ*—ÿ›#>þ,–p26…q¶®^q‹ˆ“=VwpÞŒ©è©³zbFÈN«Y°ò‘“&n“IÎN•Ë:2»äv0«k¬K³¾ÄPlÏ Äá¹uês/É¿>~Óôó‡d±Älα´"öŸ…Ò«%på0Æt‹Fq¿ïâç¤:hÈ)¢.ØZ2üƒ-q.];¬·CVÑ%5Ä2W#SäJjD ^û˜×öÛ«$Ö‰'o±GGA{¨=rõ~aÄËXì‘—IìˆËO#.9êY’0"¡Ìu¢d¹Kf9sMjG뢽«mLƒJp+ /|:v©Zm@ {}•¬þéZtïFImöiU³í\E“áŒâö“çoE\¾Uqÿ9$âÚ½êˆ çDD½CIÏ+,Ÿâ‘ß ÷u–ΕKvj­¡ûÚ¬èƒÈûÌ`&GûšÙ1[Dì\-€²gc+‘†GEuÒ+µÍý—@hÝÔÊîK÷£¡'£â`G’óùÇK:Î¥U·Ým& ½d)ý.ôˆ¡ 2ïd5nŒqÛS­ý#–NâàSØ© +RYR9•­K¦ÈSXªçp‚â^iãÀ½¬Ê¶[é%ÌÛÙ¥¬›0†í-˜iÿ€`š£y"u¬N#«vêz¡>>ïìàLë)ùs&B~P‹Ïb);„©²nEIw¿±Š-ŒÆ3•a ËËܺ¾k1™íÝ}KùåÊú#/â±ÇŠ;ÿL(ï;[Œñ]/§Œ>(D >haZ +zG髚2¥#fOÖ¿ Û°Uë#^ÐÒIÓéŒíµ—*Ô‘E£ñ0æüÛ:ìèÍJ„ãBN•üägMGNMøûn ›ŽF§AþcÄQâVÙG¢½vËI‚-X[q.½VbÖÅêA¶Of¨î8Kùb{&ƒo‰Á‡Â0ƒê Š)Eœß?$cÏgðoÔ‚{ŸpÚ »ÔA hMŠ%—¬ÐßèѾæWööòÛ~9(jDÏ«2h•©¤?›J`ÞÂC™٢ɂŠ;ª¼Iz==³é4Úv…WÝ‚"•×1xm Ÿ;˜¯èë,= 6jÅžX¿?‚«Üp sõ¸ô%>Ó#ÃFÛä‚bƒ~¡R#dŠbY·¶TÒe)ápuÑXrßCZ|‰éy€%È^ „Òq·ôCgO²J:TëRêˆ æ>ʦ[D:0páadþœ·õu»MÚ~«I#Ò À»ºÚâ8¬î§h²åq=Úþ µ¸ë܇TÖ±Ô¶__' ŽG§`~N(àýXÜz"±¼íœ&åY0ÁÙÓÀ ¬m£j>xÓCƒ†ØòP³`S&†;ˆª>aºD"IkSNà˜’…r,Ë §¹ž‚ˆÎ‡o³˜g.ÜÌ>rõVAÄ«ø‘÷)¨SÅü¿aPù=E÷Î*í¯˜$gM*!oBRÙ‚žQ½h¡ýzA•JJ{Ý? «—ô:kº¤Ö"É€¥N,ÓV´Š‰BÉP:­Ó“ &¨Þ4Áø·ÑÙ3¶ÔVÑ£,Òhú*í†^HÐÖ‰Ùgá¿ÏÓéÿ.³Û¿Îq„c:j¾]ßO5˜t­“†64ÐS¢–t¥+º;Rûz{2d†Z™RJ Å=*±Ïh!kt½5ÚNÔ«)½xÞ.@.:˜e;îZ¶Rê×||ÆÊ¨3=ÜNwëÛš´½äÄ^nýßR!ú~gÿ`­ÍØBPÜm¢[ +ÊàIBo¡Õ–@hµÄ³º yM\§B[nu9ÌóîžJóŠ’²îÆ6íM´*÷¦%®åÑnͰEÞ584€êW¨j;zt…íý»Ã›Cy’!@\ͯ_I,¤ßË­ýÿ8zË¿6Óumø}Ÿg/™5Ò™ét*Ó©{©à´¸»[€¸q%x¢-nBB ž Á‚BâÁ©ÌÌÚ{ÿÞã½³>ñèuç!¹ïë<_xÍo»…ýÅlsaœž¾ÜY*ã¾¹»;Ë(^c§šñKâ®jýdT5ÚU©ö £ÝUãï[£FÚG²†:Ä%}íâŠñÓè™Þ „f ´6Öƒ¶L¶ãÝÊŽw¾…¶§ºmgfïÙU^uC½CSKZ“Ô”jÆ›Jfzø©âNv‚|zº}tl=ð¡7CØÕ’47ÖR¢šêÆ«'?ÖåÍ»š÷Ü=U+˦yÇö.67›=êêâÕþÒÆÐ}‹„™³.d¥mL7@Œ3ï)º‰š‚5y+ce¶“§5•Ot`î¶`nMv͵åÏOöb Ó‚‚ÅIFÒöLgƒC9<ëÕ4×j« \óÈ·{\ô†ˆgšÀÌÚéŽz@´"m%é'ëŠTã‚|ùp[éøÇ¢þ¶±´Ö:aƒ1ú[# e°Çž0Ùíwkê?D7½ÏêèHêÿ³"}ïÐŽÌÚ- »vÅ‘¾íýérçD À1ÍZè/ªè©¸?×K •QFûçÈ]@­¶¨1ïõNÃ@(F¹a/±(Ü[­mÍÁcƒÃ`ù¨½,àíL Š]*f¥KÉëk«7!o”É¿i:Ò®jG ÏÄ Uí,ÈK$õ—I-gg©«we¶ ¥žàeÌô³bÅ=¬ÈÙaA’NÚß6¾«±yXÏFSÇñö»þÓÍZÁÑ"µüÄHG™8—–^ašfä­k»:õòþ–õ¹îz÷Rk»C÷¾Õ¦iáÙµ Õ6-ažg—íÌqJMòVÒ†²¿ß¤nã[ê™V€½5Ã)ÚWr!–yJ‘y +õvsñÒ§ãÏ7;¤ÎÀµv º%çW…¤øm "fWÁ®Z™k§œŽëäGª£ç¦êò”£Œh•¨©Ø èd®+°›sõH‡±¥õx³uÌ©eTÚ”ÔÿZ­àd§Ûp¸Ù£õ¬6wo+jñŠ‘†RÅHMÁÀ‡†™>ÁütV<Þ ž‹‡&e5c£¦H8J’‹ZÊu³¬,ëjs«w¹¡y[‹\h;¾ÐS·)„¾– Šn.¼§$™'[({Ó¼ŠÍ1ÂCgɽåîªG»¢ºŠmI+A?VS:ÆC½pÊ>t-t. +Xv1â­yüÌ,¿°J ³´¬M%{’“ßÔ‹Èø¼ÀÆúU„ ÷<5×5OÍ÷ëY(›† Ùš«…íkÚ¹S^c-èý‹ w0OJóê˜^ »Ê§ç"¶%ô,ë\-útI@=_æ‘N—øDÇ<­dcŒ»:HŠ\§%èûª£L"VÑÖ4-wKDIv(X•ÒV !Þ<…KØÖÞ4‚ Ù&E­ yù›cÕé^¥È8C£æ@õLˆKA äš–ùt5dë¼i @k£ôÌÕZÉæ9a©¼ÔOˆ2Ž2W¤í¤a'Æ0Ò˜·>ÉͶÍ÷ [æ:ZíJÊ<]õfg(÷ž[FÌ÷ëšjNVÚúÎŒí#'9Sl¦yåVÔR|ú¦ßB}£m¾¼3Ç([Ÿë`åjÕ“ïÀòNrØ–¸nŸ­ÇÙd ð® —çVQA^ ­Ü§©Á¯7|blzÝ™"'ºòíOÃÓN—)U^=à˜ç¢WáÁ˽U!‡«üFï2¿Ú"øf‚œ¶5‚Šõª( @~‡OÇ„ìÏb£-3„ø£eåÜÄã:•Ø4}gî­À ƒ)Ä‚\øeƒCu¯Õ°V¤œÂe!¯ðtóÝMŠOÚì­z²Úº¯n,¼cê…<÷ÎQ ô5D³” –7ÝÜšÆ(¹°Íqø‹µÁÒ‡Ë î˜ú‹îÿad ÿÚ¨mþ²V×î7ÐQG«þÙV—êx¥©so +úf­3÷örgÁí±ÊWG+ ìéNók‰O:^çRÿ´6¯×·Èp¥;ã%¦‘œ;ÛBÐëÓE:øb……ù¼!hp-ÔÕoÏpʬ*Æ·Ú>á3uÍû6ZKõ‚}º&"'®ˆ˜Eû†Î!³¶«kKÙ@0Ïס÷fpŸžW}²Ä¡ëYÄC%¥üDO«8ÛkŸß¬xàÑ2ìÏï %ßžfæ=r‹ÙöÉê—”–c£&íŒcÖGPa2~Þ ¯´à’×’÷E´ìL¤[BÉ=RQKÕÕùûpeKÆõÖŠ—SÖ¼þºT_{¾@)·M?6e_?˜®rɉ©áÓ40¬3lÈÞ4þ?÷ y”ŒrŸšœc®Ù- Úöhg’mQR ô¡† ñ(8•2lêÎ("d­ùlwÿÆ)§­"  Ûf9e}•j““mBTèZGÞ¯›ÝE7L+n1ORÓæêҿ߀'ºæùØÍAjº]T¶3„ ±OábürRªw–”²=Œx1ߘ{y„œüSÊ(>_j¬;Ôñðö|Š_ùåÔ—”œìU²*†ÑiÓµ9sD6`)“°˜C*É;Ž·Iò"ΖªÁ> ½Ä¯á"Õ|·²©î@QKØž"%[§ËÂ\Jxªg©†æ4ÔѶ§ q–IlŠWI¯²L"ß;Jï-µçßsÏÀ£=³¨7‡Jj!ð?„uš”v0KÍri¸p³˜”å×1§F6Ö)§ˆ ‰¾9\òW#õu³¦Xã"Ç|Ó·ÐÚêÖÔà= +*È*EÇÚe„dë .Ù­$g;ä„T«·#„¿>]æVûuT_ƒÍóÌÃ3YÐ2\¢{Ž’s±Òøîl½¾e{ +¹'"¦yUu o Îib²{›ì–bSÌ£ÈнI|ìŒ^âV°Ê} +Ræ—eê\Ϫ:š'fl~È}d.y½Õ[øhg¸ðáŸf~Ãù‡c!¤má²|*Ò§#žqÅ'KX]ŽÉu©Èù™+çku§Œœ½6Xiì/Šõ(I°Óeàl‰†vH ñpèÚ86ΦŽ×š»¾l·Ž­74»–ëx.=¿Ú­ª.;^d"=&Ô­æ¬s,°{­©Å»þ®kO˜… míB^Ústæp©_-‚—q0‹]hEE}7Ã)~éŸ@ÝVžw–Yh@>ß„<6BŸYƱa{ôŒ¥.ä‹Õ˜×>i=þBÝH;°Ø9 Ö½K¾¬¯Oü~é]öƒ b–[ÎGÙÄØ·–1Ð3ËhÙSß,*öHÈDĘ«"Vû*€uB¼:Ò°aGZÊ2 Ý̼¶;’÷@ wË«3}*Z±gŸj¡Âݳ<@Ãñ1V!v{ùЋwtm9w–ºŠo­÷W=\î?ùˆùiëœ$Ä-7gÿ:C‹ýn‚ýí4%öûÅæÜڦ̟¶¦±Êpô 6ùÊ¡œuK…öILìÞHñ3c{ú=M}ÒCsÚ+%w\RfÉ®—c>³]‚ŽuÏS­ãÈ0û*Ä"DÇLÖd^ïÃF|·=Oÿ¼ÐÜ|¢b‚×?>YhK¸¶ö1æšO=Ñ’²T”2¯œR˜áàTÖò:Òç>õÂÈÆxõ,ØfôΓӎ´ÕÅ[# >È«qKÙ•G +B†K Ý­zeìÌ¿µ=Põè—"ß%©/¸nA„ëÙˆó…:–w¶:Ë-CÇ»gÀ1VaI˜}šï˜ÜóXG^'ÄÃö%¸D¯– ó¨h»ã‘¦Ò{k½¥·WûÊïž­²I1,jl“TEi(Å'jjÙç:ô¯ ãHK™†ÊÚg°9gËÍn9£ì@„·ŽÁBì“àW1:æDÇEªÁÊðC%1X³ü½1T¼W†Oßê+ze›¨ŠÝ*圂Dœhˆ{ãë}eŽu®_ËÅê‰ù 2Ñ&Gl€ƒ]sÄ ¿žZâÓÒÊÍãÐ×'+À{Ì‹µZ¾GÃÆìN ß®~(zèœÅxõ5µÇ+u5çklÂé"rºÞÔî[í–Ÿotˆÿ{[ÐtnÀZDàð±Ê—v)6à1–‰Gݘ!ŧø””ªC% äWÑJÀÛã X‡²ÐÍÐQöûÖ:Ä!bX'HI[}ˆ ÷4§x’’h›Öuú|¹òöDÝT~uky¬à-#Ø·^99Ó§¬Î;².Tø¼ 4úDIÞb6`ÏOTlèá<­xèÓáŠ‡ÚÆ¤Ÿ&ȯÿ¦àÇ}w¸?^Ã,W ACGX9?ÏÑAŸ¨å‹ä"¿¿?Yþl­#ç×µÖ¼_v‡ñQ«Cô¤•nÄã!)nwóvOˆJÜŸÄDï£C×{@wWº*_Ù…ŒÌõ˜°^Ø›¿ ’¿Sò +~3¾/¸k.ê™Å§Ùd„Ä™æ¢Cø¤ŸN9ïBBÂâû¼«‹mI—Ô5I— õÙ×÷‡Á¯ç ©ë€ŽÑÿ¥oÍ¿wºÄ@¬ö—?§$}+egü0/Hÿaù/ó@Å ·Œœg8ugsíÓtŒSJʱ"~³^þ¤«ÿÑÔ“}ë&e:åÌRS?)k·•ø×j ëÔÈ!¸TèÄ}1À·£¹Ï·Šn­t•ÿnÕ¢¶‡ ¦Å·v‡‹ïØÆ*žèÒ.Í0c´òÓí¡²×Ú–ÌŸwG‘¾yv…yà!"dg´=XöØ.,}ya žˆQ¹6 ›âfýh•Ró \¬GÍ(ß…/¿OûÝ&9'*ŸûæÑgËt˜º=çÑâÇÒèÏË\â±–˜ÔZ±_KßͰݛuÓ>YtjÀi»@áõ•á¿ûUÄ55¬qª=2\’màÀ÷Y÷Æ1A·IQÑ5á—³_]ûç\SAÈ_ë\Ú§E:Ä&„„iX‰W¤Äˆï5üÄïw@Àk2á‹ ‡ëƒ ð‹U&ùëVM£W^w¬ª.p\ºÔ™~}k¸àþé:•à1Ðñ»SÄd—B@ôjšÚOkêþ½Î¥6Ðqv!(zo(÷¡±-õÊ_;MþŦs,ô‘Ž^u¼D®ðjI>5±ðÂHêH;C%Ak=EwŽô\r`fú‘. YhùÞyr†©7ÿ–WEÎq)(9N)Ù!†…Z'*ƒt­I—ghqÿ²ŒP²V>b‚—Ú*oëÞ•ÿ¦n,¿fì‚>Ü"F˜GÈѻäm}Á/½ÐgÖIü[‡÷v{¸ôÁR{êÏ‹­i?ydø„3¥ã‘²Šv†P/bZºSJˆ?Á^9DeO½2pÌî((h¾.ã§¹š¢ß\rÈ4}¹3 e‡‡8¥¨¨ý1ðó^È“íaBÌ(3÷J&þÛÍ^d„KÊ*tˆ©Û#Èu]ÎeYuô·»}÷Öú Á#쒛ȤÇÿ¯ŒYöðx–SîÃ#—Û3¯¨êã.Írâ/i›JïH¸åg†®CBÍtJ)™ äš §ÊY%¶qTä,/îûIZøßõÍÙW€}·ˆÐњ挟¦0o¼Î´ «žéR¯nôä=ßV„šúÊî­vW„œj:ºì¢Žú¥vb¸¾±þuª"dÎ#ã,S —ÆžÒ‡}øø? cþ¼\/8 äXÍÂßÌ6†] ý¸7˜vÍ38¯JN¥ç=ø¯¹¦ÜWÇØ.EGOÑ¿§¤>ü†šüðBLÌ?-C`€S(¦1X48ñÖ7«½à·ÚýX‹ËÙ>^ëJºª¨yóýéÕ?uïRµŠ©Ùb~ÑuM+$èTÓÄ?V2+ÝbpøvoêÕ)Ú«oäü´¥¼´Ë»BxŒ[ŽK7´åß?ÖÑªŽ €þ›€…íøo–Gº¤q‹×D¬¤«>uuÑ–òfµ;ç7«òjnGE¸ç1©{lr?!íÇúÂÐÿz9Ë%Ç›K™@v€}vŠÑ®Y€ßø|û 2ZÝqeåCî«ï°Xç«4ÀÏ/s +—ßßÑ6æÜ<[a“Ž>Ó~(™áeþt²Èc~Ù¨ipÉÀ±ûã¹·­ca{# PÏ 4ѯD$üµÅ¡+º@IPèKƒÈ´O;êccc›K^]`-¼­¬‰ý¡«êÉwª¦ŒÇÇËL¼ <軥ÐÛc v¢aUúfÀ¯ýjJ1ÀïÞyBòÎpÁ-]Kô·½èGÿgúÝú(.®ƒ’õ½”[~wœš´5JˆXï‡=S6ßVÔå_U +ò^i­¼»7IIPµV<Ò6æ]sÉÈ™û£äxë(áo Ôf„}ðî“¥¶Â«bÀçÌвlS¨ˆÕž´Ë†¦·ßª¹‰ÿZªË¾ <'ni>HŒýfá4¨ÙòíAðscGÁïô„ïßA¾m½ø›Œ“ñÓj?ü¥¨¶à¶”_pkk±ÔQvOQ“þ‹±#÷wmKáÍ zòwaÑ×5bƒ§…&Øq—·*ƒD˜dç1Í%aØDø ‡c)½h¹èÍRì-÷öv2åðÒÛC•/vJŸÚÆ+ƒBÈKeMò¥)RÄw~Û½0ußÅÆÿ: »´Ôü«G ‹¸ÐÒJTÌJS?ö¾ô»{²eê!&;E¨xÇtUÈr{Þmc{ÁƒÝ!Ðãôœ‹å†:Çluî®n¢$ØGÐáî©Ò‡–ᢛ}Å÷VºËŸÙÅ,¤}F€Òu@î™:“–¿Ú…x¥áæÿ¸ÜRqo¡­äñÂû‚ÛúŽ¢GN½Ê5S¿Ùz°ñ±ìÙæGH„©§òÉFwþMëh`~ZQÈBkÞ S/8øPUCR6–Üšã¥ÿàøk ÇC,㘷»#¨Hà-Œ} g=˜˜Ÿ-“„ »”’5N˸\_ðâÿôA"ÿ.¥&~¯ða­iž¦¼CÇ]ã>ü¿§zØ3G-2~¬žå&^WðSVñs.«ùé—ýJB!·<äÇÞê¤Ç +F¥UÂÈU×d]ÓÏŽþAÛ”ø½‚ñ]TûÇ&‹h—“}*ÄÔ[ùÜÔSü|«§ì•e°2ÀüÈå÷y÷×?æ\û÷›éÓ’ÊW{Ëî9f §‹­í§ ïšÿ0 j øÀDXÄð°­)X˜ÏÀ¥ž¯·ù5tMŒ‰qÉàqÞ9tºKŽN< ìà˜>BØ·†®òCÀ?zçEº=ÔÐËÜóÄ”ÿdNcâM}¥ÏtïrðÐ,¦e ñË®©šà¡3üª-!þÍBwáµ1jì7#¤è¨êó~Ùø€|½=NOžœÃâf]>ÒÖ’]@m›qá í·õo~^n˾ll/üuµtoGˆÑ¶•=ÞBEmÁž¯µ\]o-¾¹?á˜ÆÇºóoOÓÞ~³ÞuI8ÅÚæ‚Ë‹¥wDœÜ-˜Gp1×V»Á![“ĸQ^Îõ)Vîo»¤T]{ÅóvxÔßzaÿ5NŠùÇ4%îºúü«Æ^nF="éÒ;xÔN)zh ‡ xdØrGþ­µîÜë–ÑÒû.:Öðþ´®0üoúwÑÀs.u>4ú§¯ð–®.å—à×ÀkGý´6zÚ…ú~Šœô«mˆ”`j/¿o.~à‚·{Ó^Ûãïkµ2­†Iù¼âà„´ø[‡ + +Ô3G.ôΠã<dôÁ$ú °WYú®üÛÊÖ˜Ì[ãÕi·½€®´ý€§"N•Ôbï µÄÔ ‹’2S¾?³ö§ …vÈó…æÒ[Æ÷ ‡š†¼›kÝÅŽ=ä‘ó[Šnk}ׯ`€¬ã„øÕöâ[Ë­™—­©?ªë¢¾]jMÿÅ x›½iBRcå›¶#ÞC%i©EÎ'-¾/|¢¬O½»úð)}ð0·œ‡ÚŸ¦fO03ªN»®ŽØìE‡ï"ƒW>‚ƒÍå/Ú‘o¿ïÁGÿv¨cöǑ‘bNÆe!!æ’©½è±}bƒ†XEˆˆfXô%ICY‚CÃ'îÉñšúâßUõùϺJßn–;¦ÊÃ?/+ÿØ`ÌS„X×< `â•~pðߥø·ÿXiÊþm¡1ûîrKΧ¸ôõŸÛtÌÖ$<~Z}mOŒN·ÉÈL–ãEZ¥W‹I°‰!¯dÈèÃÅjÐç­ú6¯–Ü— ¢}jJ韛|ι‘Ru0[~ EìŒf=Þ(ºç×Р§ 5Õn9%àÈ| ‹EVøæH+ *Xe€¶NÛC¯÷V>ÜFY…¤D眾3MOÛábÖ>BŸ/µƒîí ±Q.À×[%ø˜ÕžÒÛ–AhðÙrKWÀ[›‡°aꦌ_ÕM‰¿î Ã]bJÖ©ŠÛ•’³åÍy×Løä½iF¶²¶à' -ñ; =éÇ1rÄwS”ð¿)¹)?íõcbÝ2né,?çJ`N‘CÆ.ß$½µÞð‘ ÝàG‹Uw,ãä+@tËý¤(Í{Jü|#òÕr;ôùV?ü…m‚·9ÂN×u"ž¯ö¢ß«›¶B‚míšæ‚|øî :x«¿üÞF_ÑýÕ€ïoG‡H¹ÈÕaBú;`_úá¡ßl}(¿·Ö]öH÷ôts½9ALbdX‘zÅ-#ešS\nK¼dêɹnlŽýÅ2”óÄ)‚¥žèxdm?*¬ iNPòe¹¹Û3ÏØè.ømõ}Þ•­^Ð]S_ÕÓ¥^ÈKYkÅݪ”gC$Ý¿|¡£–jª <³Ð·;¹%ÔˆK}àŸgF~k££ß¡’®•GÝùÛ|cÑó ì—¿ðI‹^x%%/4u±?Ob_ÿߥwy7=J6d½ùb£öÚ.!äÞ¹À%%æºçY@Ä.÷U<íÃ%}ÛJººÐ 1ÊÊø}mf"“Í£ä#%©ä<á®â"¬Óè}{î•íqtÄÖ0âíN?àdRÂL]öU;é§ÕEÝßVfÈiú.ðÝ¥ˆ×öb¶u¸ôáZ{Öõ•Ö‚¦ž’ß­Sˆ¿ÐûÜØSùÀ5GÎ9 ä¤ëkª3øûxñӵޏ»k™Rb²CN/œ¯­ú]HÌ»dîǦ~^ª©=Ñq°1:i¡%éþ}~¨±¯êùÆ8"Þoà±·Eµè¥Ðçn¡à“‰Eús›Ãùs‹Íü´NA{ÔøcÖMCWÂeË4JOº Ãd.ѪO—YõˆÄqNÒU‹Yðç^Mã—mÍ*…Æ)›’®,vf>´MW¼9Òc3ŒÃÐXÒÓñ@á.6›úOÓòi]àWÃc׆‹î- >1M:r†‘ÔåK»ˆ–î™g—»Tðö(>Ü1CHqLAÃ䨇½ú1ûöÆ@þ½ÞŠžyf©UBÍ6õ!_XFqo€úü+9Í?GJwXcì.y(c%}·ùüö\ß$pʉÉö)܇ˆ”´Üzr0MÎrÏÓJ\rfQ`†ÎrGùͽqRŠ[Æ)Û„­w–ÞYhNÿužû]?*üŸÊš¬îzñžš¾Ñ‹:Yä“|:F…GY]à”¡ý +l:à-íSÄX§X^5‘’Nu\¤_IιX¤ƒOu,˜M„‰Þ=¶M@^8ÅÄ”}=«˜þS`F¨]BË´N B­càgÇ*.rÐÞ†î²û“äÄ*e³”¼]à;Ød„TÓ"z©úr­ìU®?²+Ì€¸sÉY`¿^@ äI.ô â…œ‚°Å.hÚ—u÷Ï .ûÌ@Ãyfñy[£°W–6t]ÈÁ­“ô-Ч"fîÕ@îÑR+ø™WÉGø›²7‰>Ös 'K ü@VÑF?艌ŸòÓ$%ôÛXáóOFbÑ×M6eeùàõþ9.ü|¡ž¾RË»X¡½*dâîXÉSsÙÃ-èœg¢¥üìÛöiRšsžuÎQJ|j°—¸dÍû¬ŠæøË=i¿ŸåÇ:BÑÆÇ¢‡æ!hꑚ…÷)9Š søxu?äålì÷2^þ-›”Sº3† 7´Þž¯Ë¼¹þ¡ü9 ' ÕÌ +û 9SÖ”wKÑVìQp æQü[ó`åCkÎïbF̯+Ù÷Î ¤ò³5võÒ,VÊ/¼}0C)r*p)–qp¬y¨8ð oתž(3o,ö”†ÒÇȸ;VSørG̪ð¨kqn9³dk*¦%]Ÿ¢Æ\ñ( Y~r¼ÌBhIy9ÿt•Iòéi¨ÓEàÒ²íQDìÆ!Fû¹'«®8_çÐvÇ+#7z³®û T„w¹¦Æ¿^ßâXà¶dì2çLÀ» ãý +|À{™ë½¨ ³¶Òwã`lƒ½Ö6¥ü´ÜžqewòêHËÃxt<Œu†–ážãT^Ùÿ½?QñÂЖò³².õ¥ ÐWˆÄ³Å-7&§çùdŒ|û.Ò#¦æ©Ù0»”œ¶òüxé}ÉM›ˆš³5JLÑ6þjê©zô×ëNHèÒ;ÈËÝ~d¨WF/Úâã̃°ç'‹ÌÁ,&Æ!‡X'¡¯]€Öœ£—xfð‰'z@³üg®-&Ê"„Eøæ)ùN)1É à¹œ—ù㡊 ä»+ o,uݰŠPồðW«}O ­…ŽµÌª=9eg’Èßôih%ÖIàûŽ C<3älï§Â>Í/·K¹ ÕaLÔÚ>Ê­h©ó([›Nôü¯[55Ç:bžU~½Ýzl•’ Ö¥\ø  ì™“Ó#çÁíSÕ™ŽI|’GBH±Naâ-"T„mw¨¯¥¬’r;aak½˜¸….hüö@eü©•ýÅDª:Y&‚ôÝÅ¿¯„D©ëyrÖ¥¦–œ­ÒN*Ù2Qì›EfÎ@JȽ„¤rZåç­¦®£EÞ¯¦—ìá‘þ›kR^Ø ëDaÐÿš¹œOFÞ%ÃÆ.òY‡6áx‘Gp©Xe–YJúö4:r}ô(0 kgŠš¶Øƒy¹;É-·IjPÞyħ fZ&‘ƒ§@í¼<Ò2ªÜJ>Zß }¾Ð^zË7OÈ|Z¸KúºLƒ{uø« e!Cy[f ·”õE×5µ97| +àÈùîyBîñ2ïYâ{YwFù¥!¦INÅæ(#kù#î•®r_ÆÊ½®nÌ|adâþØÔ}Zg“ìj|ú¾‚þ—UÐòÉÄfH°Éëj­ðy¸×ÀF\žÄ«¡­ö‚oAÃ?o7÷Ÿ®7vºulâ–õfk +µ+¬z¾Òö³e8û·½áÒ»ÖIF–CV‹2O° +÷ÅŒl×,PÛ“¸·îlܱ +—z¡#äzÊ&Å'¸5uäÕ>èþ’››ÃE·6ú‹îÙ&°qGsÔ¢s-½"p‰]Î)uÏÕÀï½ÐšsYÛ˜ñ³y d#÷†/¯“¼+¤gªÚ@÷ÔM…¿zd¼r¯ŒWé•ò@ÖQb\:êR+èÅ¥YFÂÏûCà§~ µÞ}¶ÑUö»?ð>Fñl\èWâÒ¶FÁÏìs ïnôa‚gùy¿¸ä„ô=~¬aW«¨… :fw¼ê™±+ïm]¿ÜsÄl“Š”mˆÇ«ýø(Ç,%Ë«¨Î9Ö°ªÒÀü3PPG!ö™êü‹ÕÆFç %˜·ûBL¸ur¢`”œiD‚Ò÷€î˜Æ1Ñ~CרOß3q¬o➯\ #åÍÒæª n°Ì3Á ÃȨ1|úÙBÛ.‚‡[…•Ï-#¥÷7ûÊú€n3òHG Ê\ôî=*Ê9ÛxHò\φøÕØ´­‘¢{ÂògÞ9\ÖÅ—yhúµl¤}¶:ë«IÀ?[fbŽ5Øt‡´"réCæ}mGúå¥w¾n +šìŠê +EKÙýõ\Ô±^À:Ô±(G:Ö3‹K±NV„zgÐñ)Õ£oàM7äß•7†{•¤_ËEjèå§KLÜù +¹/%¥¬ #ƒYÊGK­]ë>î¹êl—Œ’ øÝ‚- ôÇ + áWÑJWú¡/VÀÏý:JÊIýýcÕ«K+mE÷Íc•AÎ9lúñ›x²Òа ÔŠq¨:6Ðïþ.Ö­$¤Ù¥0 /ËžY¦ ©váR72vDì’)^ùUM1b{º¼7ÁH9ô°s·Þ_dAƹ4Äœ“º÷G«5µúžÊ`U3è°®µG‹,ÖÅWh±&¯žX¼9Rùl{üÌ£gÀ=†ZîÎ!Î6KÎpêi•'k<æÞ%ÉÒ.¦gº•ôÒC#ëÔsœrL¬u¢ü±y0ç·ýqèKŸ¬ãW´ ìÒøú%yg’šc““2öبíAøó­ÁÊÇš¦Ü«êúôŸ€®;Ñ H{"JöÊGèCC[ùoã”ÔŸ‡ðI¿ßW9EÄdu}É-93çÇíUÏ>é븎9lÆÆPÞ½ýiø›]!ì¥e ½=BLYD…Ï×ç^ö©iГ¥ÆÖ$x£;ë—ŶœkÖ)X°[†~{¨"eùTÌJ«ŒQ¸+fdÚæð§Ê*‡o—ݓצþ<ߘr{{㙣#.Vj¹96Ù Ô’CBNÑ4^ÓÔ'^Ú-²?…]í+r¨%Ÿ.³I^ æSÕ Ž <ÂÖHÅs}Sæe}CÞ¯ÚúÔË]·N˜ŒcM-a­©jο |¾—¾yRæÁ$<Ü)AÆìO_ïO"Cœ³ÕéŽ9^•ºõÿ/§ŒœõèŸ@ž#ðR\ÎÖpñÃí᜛¶iHø§5× è‹=1$ø@·ÏÀÌÂÒ`§ •r±Ì|5 ºìJB¾¶½ü¶uª:Ç«fÀ¿ +ñè¨e 6Ñ5KÊ ÌÙ¿XäÒæ8” vñ-E(ίäÌã¨È•îÂßLƒ 'ûbð+ +ûyKx©÷lµ±uWR~¶ÑÜe•ÒËW?‚Ÿª2~i-¾õ÷éêèK›𓵦n³²Ž£h©¼½6€ŒôkdàPõŠ_Ï!ûµ´ À §’Z~j¬¯Û“Ðs?{±JC}1±i_7ë;ÎŒ<ö'g•˜&y›¢Vüƨ xw’‘y¶ÄÅkO81ÖÕÞnÿ²Û*>^çñìjJÑ®„šášo⻕ ­ÞÏWèè³ur¥E KØ„%ù ‹íš†=@ìJù`—î}çÉvcÇ…¹F`<‰ÏÐÀñêóše6)4lw¢ä¡[†ˆ<ÑÒKO ,ˆcøøì#àÿîY\Œ]‚ˆXë/x²Ò•õpohÜ›õï LˆGI+ +̵tžew ¶Ö]º;ŠHµM³A–Ùîó|w‹EÖ€5OR“×{áO[r~™¡'|«à&_9QàsÏ»âfìÊ(?{u”¶5ÆH²LP-ã„hUSƯðпiØ9×]c˜·‡JJ¾yн=AËv)j—ÆèZ³®v"ŸþãúÑ?´o~8[å:>qci¢"Üòê<€Ã"¤°p÷leÈrwÚo[£ÅO½*ƒ´Œ­IRÌÎ&ro’”i™"gø5䢯&ýt…³O"¢ ­×·+žúІ•wÖz Á‡JfE@“jȹ»ãeQ+i·L½…÷®®2³„ÔÄæùé×½jžG„‹9­ +uMAl“ȸ¹Ú¼_ ·í€çZDÇj oÛ¦ ‘ûSeÏÓà—1&Ù,ÄÆé:+Í6\·Þ×:CÍ]ë/{°ÒSú`åCå«ÑªHï<¶àb™I¸X~nKñqnÍ»Zš8Ò ÕļíQÐ §‘h‘À"ì3¨¸óe&rcütw“pºÊ§ùõ”JÏ&Í2V´ñ¡àîrWÞïRjÞ±¡w0K/S6^µNáã}Jj‰O‰Iþc ¬  Ç°{B÷fè%GkÍÝ["jöR.Â4JJ\í« qJ y§Ë¿ÐØ´.¢ånLbýÍ¿ÀBl ¡aV)2þ@ŽËðié Ó%zåg“ ölµ¡yÐ$rLÊ—­@_T*ɹžyL‚[È^¢{ôM êž~ã%qeþðøÿ±µJ>mÖ48uaâs—iÈ£&ñl•Ç>3¾ë쇋ùÙ7]*RÙ¿­µŸ·kêO×YL—›ëÔV—ø–ùô³õúwŸLm£GF.åh•pzålµõãîySן|²À¯>[æ‘}*rñ¶»xK«šQîÒµµ‡0ñóMÙwŸ•ê’crO–™$ á³Ð4¯ +•m™ªzé4ƒÏÀDjºòk[s·N@#mSÐ8Ï>ÿl‰O;[°í‘¥y_~Ç%g€lÓø¬¥Žœ;öÉÊP€~%«òHÇÁœ­4¼;^kl5˸å[b>È,áW,~?3B߸äärà¥f )Ç‹lü×͆¶À,]¿Žê—çRWWíI`©n%6Ù­ª.ñè8È­Il¢_G.½XçÒýZzՉޅ<_dc½{<µIð =µ|möjsüätZùß––‰O,âÉ2­êë6—ûeN>Ñ’­] ³Ïà³ Ý »cˆ7þEöp…‰óê«‹¸GG,?Yç×o +NŒ,’OK›§Qþ:äëû×Ö»¾“åæf·¦‰i—Q3ìbxðZÑ­arÈ7ÃÄGßÌóÃÿe):]¨¡8dôœÝ)rü¾˜”äÃÃ<"È˃Éò“®ëZßþpºÄ%rvG˜I[#Õñ›}•A‡ð›ÿY&•ÿ{“IÜ”B”]yw½•¯\òzœU\[è× ë2TјöóJOÙ3¯ü×+ïy À,ãè7{㸇œr«k »bzº¶¥üžVýËÁ2Ä?[y¬ ÌE&f9g°±N¹±:B‰Û›Al"x¨_ͼŸtdh`ÚåÔÜ}ä…GKóëy8§¼:k{8ÿáöPú}×,(Ø1GË÷éÚ:Nz&ÝŠì õö“‰‰?]eaóä ó$êí¾„”j#D™ÆIÑÎ9f‰OËAÚ¥¤ä# ë’‘ÒbxÐ{ß'>tHÊ_øUäÌ#MÛ£iig'_Ò´¿Ü#zeä’ =±ìTG.|SÆjoÕ#Ë4­Ô=O/Yî¾ccÁ•¹zÐesqàâS%r¨¥UlN`"ôÁÏMcx Þššxø³ñHÏtÎàÒ/Ö¸¬?vêZ?¯×5®ã”-åÏÜJ.åЊ~c—`âfk“oÌÕÇ]²K¡o>mðu¡” SS~×dÝ47Ä x]·°=Vñr{¸*ðᡇ:ZÕéJ]íÖ(6j¥ä¥Cÿ\«oºzîP…ɶN‚£írXœMÍ›çùàµIf†„_Èš‹º0Ðàÿ³ÍãªgRé©_°=Tòìd…K9\oê\›À¥,ô?8^ #Çþjnìý¼Yßyl ú¿:÷PǬúlªkp«XÈÍ!xÈjOñ­•î¼›>Õ£&þ ÷ÕÈ!ªñE,áÓ} Àeî•?1ußµŒÁ"Ýêê +Az}±%¨µjpi‹ƒð`ßbK×§­öé?¬õ< 9€ÕE Àz.àeþ‘†Rp¶ÀAúÔ\¨]Æ*°J9ÆÚ–ŠêÆòß•u…·6>@_»÷“ª9éø«„žµ/¡g/uÞœD£iLúÑðÊîhé3À“UÌÀ¶I~GüF„î oùf‹zɾ¹Ü—rYÕžú›i¸*Ò§h¤ÛgjÀûS”D§ŒSâšç€Ürr¶÷?ù„˜èinô÷Ãø§ßˆPi§‹ |®ž¾7ÍÎuuˆñqÖáªçGsø”Õžô[†–¤_ݳè—Š“·Bž.}@¿=Qs &Ã/–iðc)Ï­Æ&.}̾jìJ½¸ïût¥¡Ö­ª#Ùe¸äIeØ©›u±ÈAéÐC ­|­·ü©Œû˱XêÑÓJmrb’gž˜å'¥k•§K‚KAL³Ïí2Fñ¡®¥qo +¶;Vùl®!óÁ.â†wšúçF ïl±– ¬mùÆ:Ê­â‘=*>Ö.AGí gÝž ¼üiŠ~Õ!F¯µic„–`è„?0t"(xÈÍѪg€Ç{fʽµ3yÛ;É8]ä/VšÛmRR†Y„;[«­ÿdªk>6ÐAÇZ|–MTúb{8ýškŽ˜¼òh±¹Ù©©£îˆ˜yne3Û1WOô¨ØUÇò@Jp(±Ž9r†GË‚ÎÔØeø„CìQ3À>)ëÜ@*ù´LÁíË Õ> ÇiÙçM=»³Äܵ‘Š •Þ¢‡› —‡z +(ð±U%ÀlŠØ¹kc¼"‹¬‘²-ª.Su•D,}¯|,ylÃbTØì›kš|>[µh«‚[ybllöéX`¦:ß"AFì‰`!>=¥ìófMퟖ¦½j¶ þÄ"å@>›Þý·¥¶ãë*ᛩßëK¼bhH»½1‚H>Ð5Öë Êæ’û_L‚†ÿµ7ÝäÖþ±B%)!™®é‚W»SEüF3¿mšÂåJ3®~Ùkøðç^ËÔ—Mv½O‰LÛ?óéØpŸ†‡pÍs«rF¡y‚¿9FMØ +ÌvÚeu¯¦ŽèÒp ›È×ëýà‡»BbôÁ,»Ø,$ů÷âÂlÀºjXà3#—pT¡ ðY¶)b¬{†]hãcö„à€Žzå”T>ó(‘1‡úÀ>²!¾YV•EÙ)yî¢}jdkñÂ&!ÄÛ<^ù±O â¿.pðŸ5L—ŠZ´9‚¶L“âLc•Y¿x$˜ï .éDI)¼0ÔN=öÌ3|³”ÜÏ+|šCŽzã˜ô„ç׳=jRáÙûà1|ZØ9Ï®8\ljô/6ÖûÕ5˜c= f¿rÈa6 <ðÆ9«lœSAÉ=ÒÑʾ®²5Æ%û䨛¨â•_A¼7 |¢©eëÛ»LãØ‹„^àR—œYì•!b\@=LC·ûË_èô/ëÍ]'‹ºsžœôb™WA-< £]3° ÇrT-9O×zKŸîºÝ®dÁVç˜!æúU@­éȯë<ö‘žNØ'Û%!~©ð|½ñýáRSãÉb-ût1 ¡áñ6qiÐLÂÉïU1`N% ´#¦yô-ïœêfŽWÍGxUôR»•è˜E%/0 1u”R×,>ùX8×V_ëW2­ÓU¡+=©¿­õU<ñk¸ÄϦ¦ÎÃuwú]ÑuÍGÀß©„ÃeíÈp³† ?Ðpv5éXèèY›icßÁB`iA߬ŒR*íÆÞ‡ra¤Âœ²²7‡zr±'ЫêæF‡ªõÝÖ8áEJÉ:^æ3—™¨óuólÃ8\¢#JJ°&—¡ñg¡–ãÕàÓݳ¨÷,ü퉙ypçáJc‹{¡¹qKÌ.Þ—P ÿ½×Ø÷iƒÍÜ›ÙÆÀ/×zò_[„±mQ)ÿ{P×÷y›Ç±Îár7„à¤ÃEߨ_•°;QhHÆù* ¬)Ý­â#¬2Nðzi¦Ôk«œUl›çW(jQ>C-Å­à*.tOBˆ3O BL@›'pÑ–ijªyœ“éžm@Ÿ.ÖÑæ9Uä,—c­ÓäD»˜[dŸá•ZÅô ›˜”`!CŽÈù^¥à`³; + R +Ò.)jâþi*{|Ô¨uš‘¨-¿– ôÌÙ­ì\OÌóÌ¡âÌBØKÓ*hoŠøtT°ez¦eÃ牙gRžGOØÎ~jŸ=sˆ'KL¸kž˜êœÅ'ùµ ÐÉ"½2Pï_68´Óeb¹U ´VÎÉzë°g¥¹Ã"¡eŸ-sI :át Ÿýç&ýuôkHòíù©ðt‘hCX¨ñÖ-ƒF}Ò³ÿ³ÞÔö§±¥óÔÐÀ´\¶SÃÃì+k0ÛB»º?^õ +è“Èã9rá¹¾žq¬åã®,³ÏV§kÙ¾À5˜)ð«­¡üÛ¦á’gRAÜeÀ“¿ö(¹È­FáÆhuò‘¾¹ñl¹±þÔ@)ó©0I[ceÏÍIW3å¡gF*ä“©¶Ö¿È'-ò¨Ÿ6þsæäžGE{èÄý©ŠW{Ct¾ÑØ~´(`ºæØ ÀõàOË5Ôc5£âPIÊö*p©VIEÄöxiPà:Ç« M«µ5€_.tÊÉ%»“Ð8óxÕë/«lòŇnQ“s†áÁ;3,„{±±Ñg¬ãù9\ªåœ¬×7oñkœ‹–QÄÌÑâBfZ`^CsÛéZcóQ ËJE-±ˆ*c/V„/›5uçR—º†²5RõxGˆ?Û¬kwª)%>¥È§#ç»TÕùG@Ÿ\®alµ‹-ó¸s—x¶Ì@|ÚàÏ7˜Ø#@o­òé¾%ð4ð“%6òsM½mŸ§ï¬¸ížcƒÏÌüºÃkøï=&ïhr«^6’Kþ4óênp +3?è]OIú_ûõÿ?'“ãSUçx‚öjÙµÀf…WÈ0`NŒƉ±†êTqÁóœrÇ<·b_ÌÊÛV§XÄäôƒ9FÑÖ8ñÍÖhUUü–çÕ ^ æVð U=Ù«ižÏj•U¸þzlà ólЮµÑWuw¹³âîj7ô‰u’Ð[e€Ž*>¼ó©QÀêQ2@Àž>œqºÒÜæÔÔSfð@N°}–8:èÙ,Ÿ†w¬§ þ½Ía~Ýb’|:lή¨òµUŠI¼Xoh<]åVê¨ÅGz¥_EÈö«)¥'†:Ö× è±Ìþ¢»›CUA6úõë85á†_‰J?Òâ +}r\æ…^ùu…O=]àà<êêÂãÀù-u=mhX— +“â^baÏÖ ˜›ÿØ´Zç±ÙÈRpjép›¹#……îH‘N@§Ÿ-ý'7ª ¨+ÎñràlSÇÈñFS×—-çX‹Ë÷©>GÎtÎá’Îtìs}—ªtϧ¥TþµÇoü²è­ÿhCµªY“ˆ’äT’óÿ{¿y䯽Æþ£%&ìh‘‹û¼Ããþ±/hù¼Ãç¯Ñ`*Lâ®ïTÓQkïºÏVëŸÁó¨ˆrbžßP]u±Á@û¹XC?6z¦©è¹[C@ÿµÇ úÕU>6ílQu¾ÈBœéi埀Þûk¥¡áËZCÃé²€ +øž”­QÄËýiR‚KÁû”tà7Å@®á¬Ð>›ƒ7÷„E÷¼J\šKIJ÷(©yŸŒ|ê¦æ_M ͧËl”_C/j Ð§j¤8ä—R€ð(X¥ž9bªWAÉð<Ý!£¤Ÿëxø/kõÀZ +˜n=³Â¥®%yÕ-5Îy>ô@NÉ:㓶ǯ¬bÜ[·‚šLÕ°nq¹P”¥ÑëûÖú…Fk‚|>>/ÚvùùÜì‹¶ãq›²2!nò>ì<œñÊE)JX%̬›ÝŽI—7Fª~XzU¾7íëXвªÆn–îÙÐq˜Ð‚ŒCLÙö€§v²[çW~£í¹òos¯H…1ç—kPoA³¨0Q˜tÊE¨[.N‘ÿmIÚ•rP*WßÕÿ•Wt'\ܦ]…ïã†VX·:-iÂçâ& ŠïQå÷ƒŠ¿¤|2QÒ'fณY»:Ñvb¼{ÌÉ''yœrÈDKoé!½´½Ðÿ"å‹ãnãê85oqˆ~~}ŠU”pñHÖ$]Û‹|þÆ¡1 À“uœJHyP狘²ËØq¼V¦iWW‡(yø=}-ñâÊpýÏq­$a¶5’¦ÍqÞµ•ÑŽSî‡åŸ/¼¬Û—´ÑË2nFMÎKoHÚ)ÕÛ3"VÚ-¢€Ç$Fµâ¦Ð4»lmŒ^˜Õ¦ÕðúM)‹„øÑŸh53ëlŒtä%,¼†¸]سôª7§o®Ntƒ'Í7-k[{Ë+\|FþÅz«ìÿÚoÂS¼rÐ%Àu‚Êå Q•õ>ñ'ÓÍú/áw}›Ð°®…¦XÕ‹CÔü5Ð7š.:xæ…qAÙÒ¸¼ÕÿZAœ{#k‡„Zå4,½%mNóêƒF99áRw­L +ªgÞRN.³®l|¼w‹y9®g– &f%èžÆÈ4·°–3*˜kãà‡§9e‹¯IÇø{a“´Kq£ y}”]²ô†r2®7£Fq;x“3*¿YxÒðSp¢õHLßyp“€:…Dà‘*Ô!¥%ÂNðP烓'“fN}dš_³òšr&c‘0·æoŒEl"öü›¶Ÿ×'(EQ£„’tt«SÞ®¾ †U­ï¿ºG×wùKèÍÆˆVFó=kýqyˆV€ÏÞçפÇQ›œï{Ü~HÛ]öçÞÙOg6çÃÞTºVüiu¨ý j0‹”švŠ([~©hkV¦XŸæVÍ>gä!¯IH+CäSaüz¿ÓÕóIY—T +6±Š:6õœš¸«÷æî¹ž²ÚP#­(®ï¸°ô¢åÐæ(·µª•˜§çÆÚ$p¢EHƬ*oÆÝ<˜™9EÊ+áef]˜W,Úœ&U:îW~ç¸[ýåú­0ã—‰&û‹¾^x×r)éä¶m{EÌn!1MkñþV_øŒ{v¯°äóÿ5II¨…]‹ÙÙµq#9émÍÞÀTÇÙ¸´„]DLØ­MÂÌ« h;ÎoŒ7È99-)>žyöÿ2øÙÒµQÚÕà³dË#èL˜:/§ëlN6üœÛž‘p1À’¸^F LÑ +ÖÆ:N†u‚úIà1ú|6à*!4Å+óÜo8°>Ôy±²ªÓnkÌ"è×¼®‘¶Jú†VI^{'(Z|J=¥í¾üÙÊëêý‘)JáÆ½pS+n\œ–·Í É—†Ä 1­ yc”|Îû°qßì‹Öƒð»a³œ±<ɾº<)¨h`ß½ è®wGÍ*ÎêHû)ûòÏãÌkˆEÎHyå’U|>ñ$¿*hé’Em*1þ¹âÕaâéù§5{ÁgìjE Ps‚(xŒµ1^iT§ Ƹ¥ §"®>—0Šék£ŠvǯäKoø×“ŠÎÀ$¹1‘Ê‚“Ä‹Þû _K®üëÖ™OÝ÷êYfLõ—~ +:ørÌÈm]yÝv*4N¾5RKÃ&zY@Ï)T¸C­^c­ŒP/¤| +æQÈ6 'fbwÄ ôЍž]ŽXEDÌý]ÊÛs+çíêÏydÒ¬[Ê‹ëňYBFa_#:rÉÜó†}!#»>é‘pWÆŽE W#&N3xgZ®”Ç·‡Ïõ—1—µÓ+Òu_dšSîPõ—qÁ©¿7wçÿ›©¯à‡™'e²~6믫ê߀Y!“ïþ5æÓÖÆÅó¯Zq<(ÿzîMS^XK-Z´ £]ô¿h8—ñ‰i»>üºê€A™ÿÙ­†#/¯8òÉáÄÀ +J °xnQL'!„5¼ú¸žZèº[¶Çu³ê+ð;õ3x‚6tqc%=f”²¢FÐÍvn[ÂJ.Þœl=¾^µ :³®þÛqëàõi1œŸ¤ x®´{Ihªóüü‹ŠŸ|ó÷„`¿OºQï¯FqÎïàµ(ÁQ^]x”U%žß#€O"ç%ô +FÌØß·6ĺ¼úšxÌv£ìsÏ­ŠÏAßç#ve° aÀ{HZ—4¡f9 1 +Ö‡ÛN¸ï]þƒënÁc:v3æî¿—t©”#¯>¤“â–. è^nÒªŒL´œˆ™AèÁ˜EBMÏ <¼¾²vI¢öÞÞˆIØžf‡§`ý ܆µaNñâ+ÎÅð¤¼seˆmöYåç+ok¿]zÕ~pù5çòê[QMdBÐÓˆÚ–†XùžG‡bj‚¼ü¦ùÐê[ÊÙŽ]8ymé©$é컳vI×AO‚ïâa ƒïÀ§SWÇè—65ä‚´ƒÕ¼í“ˆrÐ7)·ºµ(¹9oïÝ-X¿¸IÔ 5e±0·Œ‡¸DdÀ§Ú¨S•°SJBºš#¡©Š}«ïj÷%À `ö.EÒzýÁ¦†Ué~\þ—™geßoŽ5ŸIÙYà'«[/y_,qÊÀ«uGt¢çýúï|÷¯}4Ò®eì‚ö„Õ´2Ü^àkö†vnSÓÅ k%-+Ô‹S=…¿‘^ü‡Í!æÅ$øD¼õ<Î8é|Ú.¡ !¬e–-½*ûañyéW±æÃI› #é|°ö¨#1!XšÆ‡º²0à yq-¼·|qœS’pt©‚Ðs3Ï)§¦Õµ_{ïÔýÑN¦ôʬW*ŒšdÔõ nIX§¤5½ü¾G°ç¸SúGûÍÒßÛo•~½\“vuõ N¹0í“‹1Wß-¨ÛÙy ?åçV‡˜—Â:ibW+0¼ž½Š¾°ž'Zkz¦ÿifFÙ»5#â­.»îT›2‰‹ÔƒI»b0a‘°Cº.V¢–"V•2ã“+?,©n@tFK£~ãÖ¬\ޏ䈙U Zµ8¢e–§ÝüŽ-Ÿ€‘q³ZFZù⫦ï7ljç·g•ƒ=«zæEíÞÙ§eß.¿i= 92Àª0[ÿ­¸©§j)ꑉ³K½O ^éøçNÞpJ~o$ü„B¯bVCÂÌ¥#6vûòpDZ ž[3ó›7G§½J¿°Üºð)SÙ(WQ )>ÍØÅ”œK%˸Ôʰ‘_ç~Úð鯕1ôœýÿ¯…ÜòˆhÛ3 +ÅÖ¬BŽ9íøç—Q¯Õ1K“M‡WÞÔÿ´üªùçÀ$5/nâVmû¥Âí¹4í”Püó ÓŒÂhó´S!L9‚´ê¼-à*# û™¦_Ièé%1«*¨åUÍ¿#^ð=møeý-ñbÊÁiZm8êVõí +>ë{BÒÔtsÖFye³ §c£ôÂè(­`áqÍôè§ OÊöbv1ó¨{ξÁIÉZ&_\ª=š"ÇÚOÆ'7'Ú/-t^ÚÔ)h!£J€:T’´W.Àïaœ}ÚthùugÞ&h縑=J/[› LsJSV~kÊʪ Mwžsÿzõ3÷½â/ã­'FVEØ(§lL‰j–Þq ½Oègœwš÷n¼!Ÿqß)ÿÖ .üÒÚ_øi4wÚ.&E üÿ˦îû%{º¶ü´ƒR˜¢mN0Ê"~}T«¤D}1“¸cc¬ãŒëNñŸÆEÇ~·þ²þ(þýC +¿-bd7¼²6"(_y-«›ýv<8ÖrµÎ#VjqÒ.e €=iO— +|COÜ!ç®N‰Ú^2®¬¼!ŸÞ#à×ûðkV¥03#æe|Ý×Q§”›pðZ’.)'f”t„4¼ÚàãÚÆ9/¤'`.!-;Ós?5{cdEééYˆ•ß™´ò CyÎ{U‡Í·Jö/“ŠÃúÁ¾€¦Gì|DÊ÷½h9±½Øû$j“ð9²Y+øk{h»*Ä.¡']ý¿¦\êþˆžZ´1Ñz|m´åÈÆáLÔ@8“ñÒërs<ʦ®õøêxëQÐò¼ìlïü;fR6üýNZEDG¿–õñˆ¹9©,3ß}/h“—'E5 gj·*2ÚrÚ1xñ³)åÙñ?­Ø·>M+hX|K+0VýqöióéqµœSÎK;Yµ h‘ÖC¨YД¶*8i‡Z6óÜÏ;Ø~v>¨ùöó̇9>-çãwf½B +bá7e}˜QÉFõ첡úçÕî]}N8¤å#zò¥¬Û”v‰(I›¨sHèh¾˜z%0Õvµt¥¬:èIZ?n”tnN€¿}Ñv`õeã¾¥û .óÁ»Ô"VqgÂ"jÃßÜï¸ûy¼bÕê(èâ1εqam\ÛÅÆ?óæ¾[ÿµVUô¯ÃÌ#¿ÛxÓtb04çS÷Ǭ½Ý³ÃÂʵ)amÌ$ç  O@Ô¯5ý¼o9j¨…I#£, ºey¿×—x:®4¯½åW˜Z¾ +ŒóÀב3>)ëæQ£úŽ‚†z ±r›c6 )n¼·9­dxžNÌ¿"Yj:ŠXiUi§3íåP6vË2`êÒá$ê’ ƒF~ÓòpûÑÑŽ“±iZ æb6X‰·ç¤]a Ÿµ¢g”àßû}Ø}Û2÷¬ùgÇݪ³ÏëÏ&ô ›ŒrÉübžõAݾ¹!â•ÜÂMMÌ,ç.¾"ž[|Rû}p´öGðLW“Nmk¡ûæ’‡Z®M¯DÍBVÒÉ'¦[O´­àí)W×4­G×'ÛÏfýr%x#yÌ*hAl|rÖ/Q¦ÝBFÒH)O˜)eQ¿#`u-⎠–S±9B:9÷¨z¯ófñwž' …àçÃ&6~J«÷ ù”n°é«°EÂÍΪzSV)3sëâSÔü¬×¾í‘ò26!!e´ôÌ’ NAޜ좟B]N%]-gÒ^jYÎËi˸Äô¬½§7®áVǵÌD˯Kj¤í± zñüãÒoLêƒÿ4{çꞘŽV”r‰iYO—:i´.4ô<.ü}h¬fÒD)ÈÚyͧ„3 +Ãøç O"p>‘Éö#P“cÔ Iæ•°žW“´+ùà‘ùI«¸#¢e]›}Úº?8I+Àlb2f“1¬·ë¿´ôwþ¸ðX\å^¥—­¼-ß¿1R<0-k_›×!&µ1÷(–Fx×@2^©$ãóÓ>t?láµú^†%Ms/ÅuÚ®ª?-=í<›Ä5žŽY‘v +H8?¦œÆÚíLh’v ³‰:Q³¸÷êᎫo€G¹˜}¾ˆÔ*ÈËC¼«þ'’kó/EÕ‘)~Sd’˜g8ýûåWåûÖ‡[EìÚ˜Y%^¦ç‡Æyõˆ^BAtâŽùGí'‡D¿˜Pä5ó‚~z rØ4ŠÚVÇ(œ·+¾Šk©WRvv]ÆÍiÍyx›c­ì·Ê¾šyL<ŽØbÔ#ã£.nsÜ@¹kz*>MƿDZux2åèîݘâ×̾¢G‰hˆƶ Á©††Á3Ÿ­ 7 ë•«´—4h`•t”Kq+« +µðÀ—Ö'¬ÀS–Ö3›S­'“N!-7ÛÿxXÔ0®fÝî¶_ÌC ÔrÏ­êï\Û3ó°è‹¦³àý¼êÖö‚únÔ l^a\…}¬H[¹¨™Ûœl¿²2\}|m¤óLHÏ(Oy”꬯çVtϬ[HG-M¹øAФᱦ#˜•Qƒ8…q—ˆˆº% ö4fæµDô´òÌŒP ZQ‘›ar^f}@Ë,ZxK?œ4&,bFÖßs7å• +‚€éë´‹iÖ5àõ6Ô%fy^4Ièxµ[æ.aÆ íØ]çXŸ4“/!ÖŽó+£?"ÀO ¯js’SÒ²J¶gøä_ +¶Ù)³nu¸íØÒó¶Ÿb“ܪø´¤-4θž"^t?(ûR§¼øéâÃÚïA?7nyá¼-"ðâΰAÒ3ðjÓvVe\ßp0ª©þ!<Ýv24͹5ȈøNùòPÃúž¼ßÍ?ªßÅ?',TH2.Nø×ªŒ[ÎO;¥ì„žreñUñ7¾Ç—?[yIþ%:®"FµýÒ¨INáœ:Á*Eubfíí¯DÞn;§ä…¦Eu[3}¿åfÔ7RPGq;¯)éä5c¸6ò ±iFÉÚðuô¢3rbãÔg¼BjÖ/ ÄLÜÚ¨VXŸ²¯ÖS¯,½¬ù5KÞ»Ur̤à,¿!_}Wÿ=þ9¶Å7´³KoùWBu~„mæ5åx`œQ¸9B-Øv i›•Š·¼"vð$4Å.‰ëÔ‚”¥[6ÿ‚z\«®ûó°°øSÐ’‡SÖ.QÆ­R¢)cy‚’çyÒt(_'¯·<ÜzdáM㋯~\j;•²«ûP÷= â CfŽ#)“ %:ÙxpåÕÕ?û\úüÐðÍeˆM +µ¾Ú*ç4Œ¢°žY†Ú¤ìܬª/7«¾‚w†Ú<½>N»„Xd4Ä&"zŸ6ÿ˜°‹(]”w˜á^²›þ}F&Ûòó¨¸ï\í8¾4B½à{ÖxÁ,NÛ.FåÌp:þcCNÚùþGå_øž´ŠšÅôˆYÂ\xÑqdJuù³×Ücÿèý­ú'ÔÌï|?/WX*Q¯ÿNŒ[ÌØòIàÍ.?¥|ówæ®ÓˆMv^ú0/o-ÊT ñªÿEÍ7¨S,ÞZ½iú°Úý$n¦Ô¤‡þQ+¿øé +~ÿ’Ž]š°Ú`}OlŒqÊ3)gË/¤‚ƽ†YkÏÍ?½ðõCâ×·:\õ]hœr>k²AsÖÎoI[¸uiå +fë¼€š:Î$ìÚÅw”S+oEÕaí *ã‘ó¶çøl†Z4¶süZþYà -?cVñüÏIgGeyHq^á”Æ'[À}­ ³S®'ˆ§B“œ2À.º:¡§æÏ>¿ô¯Þ‡þÿ>Æ„™ßˆßƒŠ___™`ν¥œ\~ÍÈ{ïâ·ÿïóq\/øç h˜-¯ã¯°þ ³,7+áX’wgÜJI¼vÒ®[nüéÿÐßÙo^üŸ]´9Ò|pþiùç‹Ï¾O»ÄíyewfFÕtK¹þ~«©[¶v °ÙžÛ™Yõ`4ÓÚd穉ŽˆYÉMÚû¢àgßN&ì]Êܼ²7¬kÉ3w_ú§µ×Mû#†¶Q3¹_ï™aVéWÆÑµñ^YÆ{ý¾7®­ûyímñÞGÿ ¼àÙ´C!ËÍõþæ{E>ëäÉCÇO<~üÿå ÿÛË1ÿ{Ήù õ“ºOØŸT|rrϾï÷Ô×AVy¤Oxÿ-¹Cxr×ï2I:õ_þx‘+ò-&< Ž)üäç|’˜ÖIºt­¡xO}é'M{>.'þ+|üœÌ‰cÿ-•G÷´ì9|ðОCÁúßõüÿë“þëÏ{ŽÂ :ññ|îùø>Ù»÷ã)âûjωc‡ÿ¤þêÿ3 +šP‹‚×+ha°68Å« è8 q §!ífÖ¢fÒÕ¨†\7±*â6~ ê”q#^ãÚ%/8͸šâ”"Fqf‘1P³‚×KÚãFa>- ÿVÚµIqÃê»lþ¹`í9?:EÍOS PíjLÛ~:i•Òbæë·¢–¿†-Ýòà´¤%0ƾº9J<Ã'Ï'&ÙŨFÚ–²(ys/™E+o¹å ³ %¨é¼°>Aøeå]ãÏ1 ¹s2kâò%ÄȪJÚ…DÌ!ç"&NM\Ç,‰ê˜E«o;£Zný¶»«+e‘A b–±Sn¹ a¶oLÒó—Þµ +Œ/DÆ9¥I“œ×IÑ)uã´ÕöHÂãÏëÎÃk¯ë¿]~Vöyh¨åXRÇ«Á 2rÊ"£/µ›T»wåyó•WÍG–^V}o?9T¤ŒrfTË)éøu¨YBNÛUâ¤SÝ6tñ‚}cRÜç5cöîn8ŸÄÊ®Ï8D4xPSVQgÂÀ©Šé%1=¿6¤å\‹y5I+«za¨ú‡•‘úÃ)+£"k“жÜrqÆ©¢°'«£”‹ëcô"Ä¢¢v•(¨g4Ô‚(¬QÊ-b¦ý2qÂ.¡®kåþW?£& )f’CfyÚ'“egÕ·R1s ÉI§’r :ã&ê•„žz9i¡£fzÙ¶^Ï-å`Na'êà¶&¼Öˆ‰q-ffU`n±±kR1=ãR)’6ì‹ =åS“v13 §mhÉ—~æâwly¤¼÷3ê[ÛðºYŸJy»Ôa³”0Ûƒø´¨?Ä¡R†¡ÖPWßÝ´gðYÚÙÝ‹ÙÌ!¦e¼2>Éqp“N~{Æ+`𜘎S‰Z$´¤«ïvÒ-çg|rivFÕ“tó;6jê VÅ­”∎Z°1I-ÕÞ¬øÅý€”1ôª’6|â2©`õ éL`Œy9i‡µôª”¨G@L:XU ¥(ibÖàÓàõøa§reŒ|fe‚–sˆIK#äsá)^EÒ5bUò«°=ª£D´äü ^Ô<7$¼†ØzºQ[OOHý7ÕöK\O8™II1?ab•‡ôìʰAØš°«e1ƒ¤}c˜rféYó÷ïÇ"Sí§’ZfIÚ éˆ›øMC]—~ç¼×ü#ôb'bw„¦ÛN-¿¹ú§‘ŠoQ3õjÊ&$`V9µË™¨MÁNÂ9a6'i“Ñ|ʤ‘^”vðšS~kÆ­çfª¤C)„âF ‚Æð´ :iµ¡PÁ ♥×{]¿•­é*ÿ,øVAOhÕœà8ýÒúëæç–þiõEí¨†|ÑÑ®F ÌkcÿÙØ_ô:-lO;üà$áäÌãÂß/½,ý*i _L(ù` æPpQ»„’À§B|œ8Ó%Ûò«Ón ±KéP œŒ¯çFƧîKÚ¡ŸMÜš˜–[‰h¸Ui+¿1mçÔgœœú´]•Ð +êS/iaT"zêÕŒjÁ&&¥]RfÊ!c¥œJQÊÝÓØ¼°ABˆ•tÔ¦b^…4é“p—”•‚:Ç{qs[}CM?ͽk=’ñ«ï¤æºï¤üJUfF}ŸÂ“ö(¤);¿5ec–#ÒÅŒ›\’ñR«¢¶Ös!á>µ uH¨`NÜÌ®N:™•£:ãfÕÆM”Ë„“ £ˆ”uÜxœóÜx™t‰(a½dSG:0ò‹„¼5Ó{zW–ò‰èø·é§<7^£î‡„·ÑKczIÔ& dð© Öœv«{0§Z‰9åܬ—OüÛ¢ˆŸñ +é˜SBOY9õ¨Ÿt.j;Ô] »œOKϨ'¯}}²ñ§µ‰ºÖ'öGŒ´«¾× §ú‰?þnXX¶7íúU˜ åáÓ«ç6îN2®fÜ2^Ú/']‚Ì)¦ÁÞIsn¥4ë‘q1‡°s}„‘·>κ6‰ÚVnÓDÑg+oè—Ó?çìé‰ZÙ Ëo«¾Y{Wû]D/l|¤&ÝꮨUB]§Ã¦X¹Y;§!i¢¦Ç—Þ¶ìßœ¢_‰Zì•q敹§„k¯ç#£âÚ¸†} ÑÓ®D§)—Ö†;~1Þ¬øÃò[ò¹˜QÒ2pk6ÆZŽn5MèˆÅi7§5sªQè< öXigß”£» µ*ÙˆEØœ´2«²àG;x‡U‹8¨¥ ³°=iUK"FigpBÚ€åä¤Qи1ÚrÐsÿâ?Ûo\þWçõÚ¯c#JJhRܸ>ÄÌÛ|K?zK;‡jh…Ãuû=‹?Ÿ}Ñð£ù^ÕW¾‡ÍÇ1³”ìß#žY~ÙøKh¼ýbÚJ+I[:/`6Z>© üµÔ™óvuåu)a“Q࿸“×’p;¶Ôw3³2YtQn¡÷Qf–Ý3‘óa«Q£*ëç‘ÃVÕüõìâ(3?ãé»óq⌄Ÿñ(äiÀ”Qš­6\#ŸK»ÄŒÜLÏ=ÌÛ=òöÜLz®¿LûûD`m=¯[~M“ϧ-ÌÊœ[ÆÏÌ©o…&otEŒ ¹¬Ò¨šÑN¥­Ì +àò:ÔÊk +hiëS‚º¾_6)ˆ[Г.§Z®ŒN¦ø•Q³”¼*ÿ<œ´AMÚ$”¨Ž[3˜¨…1#³4ie×lNÏ-¼è8”Њ۷]==)| +¼™^6P/GŒÌâõQÚ¹QzžÿᨘðÃÿúŽ]øÇĸ’ˆhäø«(:M<·ø¾ø¶qßìóƽáIvà×MƒfNÆ æ¶ÓQmÝO1]ÃOQ]ë/QMçÙ„Uк¦ã5®’ó¶AG‚v¤nyù$Ø·ú†x&¢é<×’Î-µë½ü¯¶»µ?¦L*~ÜÄ©Úk=´ð¼ú«…§•Ÿ/<©úrcˆ|fa„xª›vèænÓ ¶¬jY +0#ã —'¨ ë)—7u”K! 0OLËáú´GÔÀ«Å±%çrðÚ¿€šr HIp*¬uÊzûeÒÑÓ kGÆì‚ö¤›Yý~N"ÈÍð:3>V㆖tqcŒSúÞÓ{ëý¼Tþ~ŽÙˆZšŽF´M‡ÂаFò¥”ƒS—r +‰Œ—ñ¨ä¨³w0ùqRpïu 4Aê4je–E¬¬ +ÄÍoOûŬ´OÊÃuêQ÷&]2NÚ£”nÍ*Uïç•=[³RanN*Îø¡gÝà‹ –ÓÎÞ´kà^Úwk4ëユ›“Ë2³b.k +ýW9øm)‡„™´Kh9gß­,ôxJÂÌ©\: ~æ*bcU… ´Ë¨S)Žšma³$å–²3¾¾ûÙ™ž»øT•­EwfVÀ@ý¬†ô¼XˆÍJ% x"OÿýŒ÷Æ«÷‹ê{ ÉDQ ®ÓÁ‡ù»oçü]ý(ÔŠŸ«O&OW XÙ”´pëbzòňžZ·Ð¯%ìF°ó éÕÀªˆh(ùkÃ?.<¯úKp”|nùmDZ»´ãŸxï4ŸzZ°’†D¦(ð»X•I› 0»ÇÕ4xYàùŽ ðCÜ!¥…uô¢¨–šVÇ@{b Ù“vúµ´[.É,ˆù˜³§sõd¡>17¿±ÑŠ# kÞÕ}·9Î*ÉzÕˆ‡Ó‘rq[sNv3ðkÚZÅJ+Ž[hEI£*ãçr€“i÷à#ÔÑ q€'t(x1ऀž~%lf–†¡WB&r!œ#q{^¡F_ñ>ØžStåüR!h/I4[vFÙUÒ)¡%¬ /\ +a +tæï‚‡ÙZÉ>,+·=i·5f!àS‚R°¿Y—RŠÚ¸u(h”4xƒ8ìqÖM™°°«’|Ò9¯!jaUd¼RAÚ¯P¤ýJefN¡Ì>@ÐG¤™¥:='‡Su¥½O1O7¼žj0;Ó5îƒÇ@üUʃOXå4Æí A7mNužA­bbÊ©¯Ì©EÌl¨mœ[àÇT_ﯠíÔ1ð71‹Œ±¿5óšãn]` +ÎK/b%½×ñIeIØOœ7âà¡c&ÂÙ¥·×¾œ}Rô‡‰öÓ¿nY#®ÓÝ­ÿ‹ýNý¾„AÔÕ±Ê"véÆ(û2>iË÷´õ‡!Ú¥-Ÿ\º6ɼ²1É.¿ÄXn>¼9Y¿?0]ûCD×x(8Þx(¡ÃkHÎÚåù­õ'ÌÔ%JÂù%¬ÌʹW_ºï—f¿^þo¶¾Ê?^°Aï°*÷ʾ^}ÕrdËÎ'¤-¼Îs}¸åç•75{—_W<‡ç˜d¢fQGÆ%¢¦‚öðÀÚHÛá•¡ú}ÎÅZ~^{䃗Y—?’O½‹èÙ¥-³hsœt:0I>˜Y•);¯)ašf–`v1óW‡[:ïÿ~ý-áÐæñ¸ÿAËψNоå‘K\3™Ä)‹’Ÿµ©•i‡Œ11J¢ðÐàK³n)gkVÕ°pêá¹q=è@w÷`ê"iîѶ™ÉEéE. ó÷ÞKº{»(`3ôZ{÷0–ð2ô²´WÄŒ»XP³Ìà%¶ýJ5>¹ð¨|+7Çéx¿ÄhxøŸu«”OÏõ´§÷6yÀ^×EÍ¬Š˜S» :sa´i°$çв~©üu°jQ'»ó*Uq§„ÞH–ñvbn9?åÓÐó pZ„:ùm¹y1?3+,ád|R!âä¶%ìàu™ Z1fb‡Tc y#&fY@CÉ‹š˜×8&;d¬`|@Cºrð;“p|ÚßÕ“òÉ嘇OÚZ+³³=wq~É̪¯gAûegerÌ' á<³5‹{¤®î”[%KžMû Wü +ð#'éæµEœJÜłހ‰V ÞÖ£ÿAÚ?ð$³ þsI8Q3³*¨c#ö.uÖÙÝ7ð›£zX+àõ”ï®÷•1¯ǃ°‰]Ò1¯†A_'h…q-¿9å–0£vQǪžUâzÜ´wå5ùæ““ÄóñiVYlRFŒK_KÊV‡UmÐÌ×c‡["àKÞÖï‹j‰Q3x@'§ñ¯~>% }ÑÓ‹WÆ;Nl Ó S¦ET#ih¹£ÔüУ8ÑW)Ã<·'0ð)o—t|xCÜÌ®HX­˜½KÐ󂺎ó ÃXigÿ½~×)¦€ÞÄ'@S1—”‘ñ÷܆œåQà™~Í3ø(ãx†OCÝý—™áñiõ¹9… +ç8Ä.c¢ Qñ飠µz³sp̬L’ñÉÅI‡œOÒv¼lùehàÊ¿åܽw·fn §ý½wânNóúýÒÒ¸20Ý-Nyng@g% +AÂzûUÄòØqÞ|·ˆ:P§Œ…yUª”¯«;a’SQ«ZŠZ{ÕI› +ø z\OÉ_×Rò6&˜…˜EJO»$¬à$åR|RP‡û#ÓjF`ZÖº6)(ß„ZZyÓrhs””—²(8 =.¦L€µN•ŸŠÿ­Ž6\~×z$8Å,N[U’”µ·/Þ6¡“´aF% Õ‹[ñëJ1 ñüÒ«Ò?o7îLPòP½¤}e¨ý—Õ7-GSV)±HÉq=¥`í]ù×óŠÿ&€¯æU§m2:b®ÑŠ[Óà)bÚÎó‘ÉÚ}ñ©šïãšÆ#¨÷[br¼áÒpËáÕwíg2v¥4ëR÷€·–`.!sq[fn}ÖkbãµÀÇ¡ )åì»ÖЮ®½nü>8Òz,¡e–¢FN jâ5eAËlNÒ/‡Àf-2æ6xà—ÆÞÏ€S°ùQ·Ÿž‚Þ‰/M¥×cÎ;#˜§÷nÚ×}O·Š;ÓÞÞ;€Ò¤UÎNZº$Yð Y¿„‹y9-˜‡Ýá¶gf$‚í¹î;€§jÐ.àPÓ] —znnϨº3^ ;å”qr —¶gÕ7Rîî~×= «“V•³KÈ°Ï 1Èô  +s«)x Ž‹Ùœ„­KЏúï.OIZV'ØWQ» ckF&Þ†:ü°¨èÏ̈9 èg—2áøUM†¹e¼¬OÂÝÆµš·K•t©¤ ¥48Õr2e• 2®ëÓNµ:bäÕF µÁƒ!N97×s?ü˜õÉ%IëýiÔvëæêîNº•âhVö$=Ûû`¿Ö6+WÄ`ÂFa `îEÔÊ©ÏÂf½s¾o2¾î\Ä âÖÀ4§4ëîꎘ$œµIQKÔ4p=bþu8`z0±ßBÜriÈÄ,_¤lê• kßÀìün—sÉøIÀTÔþÉ jE­}½!½šÔJšÒ•$íTˆ€×éØÇiòê.\C5ôËÑ)neÌÜ­\}Ç/‰NA]ÃÚ¤ì*IÖ +jNˆá“®ßT|œì¸˜°q›_N¡Úôž8í’ ÒÎ.EÒ¡’†õâÎ¥·Ç×Fˆ'ׯXWw‰MpÀó°ªbÊ•Œ¿v'$¦,ü–…WÕßÌ?©þ jä¶DÀÇ,<«ùzýMýO±Ib~ö2Å­ˆÚe"ïcÂÏkO¹%¨nðÆ䳫D«‚˜MÎßJ¿rß¹ô§ÄéjÂ,îXzC>ÓH‰qS2‰û ¨Õ¤]HHX9uó͇6µÔâ”cà^ÔÚÛ1K(˜ãæ ÷ @ëÈ1ðüˆEԙЫqÝ{ “‚9DÄ”GDOy…ÔÜœˆ÷~I"ý°$¡nFMzµ«ðP¦œ*IÎß}Çâ¤K!ÎƾŸSßJ{„ô˜µ³×¶˜¹‹” ÔÜ%Ækkk¾x«gýX“½ƒ!£Œ”pªäë Åûš}!aèf]˜îá¯ä”èÐzLÌ)å!v)'b¶»µîCìü¶„ƒßw þ¾´MÆJÚúoujÞò8§(çíÜšSõçæ%¤GLKX䌸YÒÒq«â&I纑Ûf¹U¿wcˆÓ¼=þÇÝÓ:»³ÊY1=ëÚìóê½a µdeŠX8$Ìÿ4¥»qutwÇí"bÔ,l‹š›ÓÜò¥·ÄããŒûó¶c£¢+Ÿn¼¡–nyUx-óÒP§ ³j}¢éˆýîùš{T¾5pêC:VùêËöã˜^BN[¥Ì¸‘U?œh?>ÿ¬ü›•ç½ïÚórÎ}ê¿Û^¸í¾þ4¾s ©(x´¨SÖN"fj âà¶zÕîÍÚ¸­ïå*ÌË'ã×IQ¿ucŠxa}Œx>i‘Ѓ6f›éFÕkϤdÄòÛ4ê`´àžâW˜o–~aî»üEh„|eiŠqu²»â[DÓ ¸ro<å½þ*j´â¼3±+—'ÚÏ4Œr 0#¤“vFrFÒqg(éü-áèŒãÜaS"Z^eT+'F =²¥W %Írö–¯ûÖ–¿ûÖ‡EÕô 7éaÔF­çÁ{¶FŒRêò(½ž×ó_öÝx—ò>Oûzïà\¾š3Î!Vz)j’Q½ŠY®ƒf뻟›S   íã•m…ÂϸCÊ^g—ÌÆ@OAÏ`5¥ýðB +âd7¤¼ÝkZ9uiLT=2Þä×´¿ûzÊß=Sõ@(s~…<¨¥V Ë.îC´=ý1÷ÀoàSÄÙw3ãï{˜ö >ÇõÛûy5åä6Ͼh=1÷’\±ß|µbè“.iºÙAK·2;Óÿ(ë—+#nóÆ­0iãÔGµŒ"ÄÎm΂îMƒÖÊÀšcÀë «Œ_¾1Í+¿½5¯êÍÌ‹y+1¬—ãf}µñ[ÇÛ;mø&8ÁiÊÍtߌš•̨YÅýˆwVð=zq;j–R`Ï®ŽI®ü ¦ï‘† b¦–]5ñjÁ³4ÆŒ‚†„ILˆäd듎ã/Ùy¿[zÖ~¿†ŽØq¿Ä® )ëã§æžÔˆL0®eì2b“Ò#Ãük9c¯28%h™{Õq5€·2 Ú03¯9¦a•îÕ}§j8ð?iº+~ÉùÔ·ÃVNmÜÆoMÙ‚œ»« sòš†ƒa-áÄú›ÚosfZiz†Ó±i$]DÌ +aúµHHÀ í)»Œ4ÓKW†ˆgJ–Ì èèW¡kFµ0®Wó¢“â¶ø”¨5¦“ ÏZó*¿ÿ—ð¸Rйn½ ì¹W´sX“´[ºG5ˆ_ãˆC-½e^ˆëe4Ô©FM +VÔ¢Ä-RJ/ÂZtõÜXÇå{íGþ ™–²¶¼½w›”r‹é(~ÈÇû.Äœ´G.œ}M¹øR|ñ?™oVíËùo¼E\·‡böë¿E¬*ðÕÝ[3]ý[ Ï0;¿%ªçV FIj•ÑSNKÖ+á¥Á!Pg˜wà¿ÃH-Xž žNŠjsŽîÄÆiÀœ"Ú–¯ïAÚÝ¥J€‡[7ñê6LÜÚU ³dq”z1l“f†iÖ. æx–š¹خ¤ì˜]@éØes¯ˆÇ7Ç%M8fbÞžë Gß Ì§èÂ|êþ”W©Ìú¤|À ÆÂ˜¸zq”_–ñ*UðP`à»R3ÏÒ³ê ¿G¸?ã•KRðúŽ[¯6Ì–U-érÒ5ðõÜ·Ä·‡àµ»0/µ,naV¦œBp¡4 çŸð©Tˆ·ûzÒ;ø$å뻺d8?æ‘«ßÏËUiðИM)Þò÷?NLWƬ¢ö„]ºPБñKEÛ +œÏ”ø{­¨OÝ1*hQ‹Œ²¡g•Ï µü¡^Hè PGäx§¸¹K”?ŽFÍ2JXË)ßg€æ) Os®!À+äÓË/ˆG¢Za}Ìį kx1½°)¤Ö.¼cäE&y•Ü2á‡Y©×ÑiЀà£xi‡ZÞ¥;¢¶5¼ªˆŽ[£žÇ@‹Æ´üÚ¤YÎÙÆµ;pýúXçé™G {—×~|G8šÔ‚ÖvÈùø½  …Y{OWÖÑ­Šë8Õq~Ý™^†˜gsNjùÆdýAðL'RŽÞÛIK·1Ë™ +è)ØŸ­9k{ŽKÙò ˜øµ*ÌÚ£JZo?G-÷†Qû­g1“ˆ°>ÚzxáeÛÏþg̳Žûäó˜[ݵɸ«PcQý¯/æ»o0gO_Â!ì è:ÏÆM”ü„‘Q”vŠ© ·1fÝfíëO˜åtü½Ùà4¯2x¶¯Ìø%ü”GÂE\BJÈL¾’òÊd©9E÷š…Vœ›ë{´µ|}2=×sóÈp]Èκºû€cËúÕ½Ÿz¿Þœ›“IR~.1î –ƒ.¡¤ýbvzV®LÍvõÅ-"jS +6¥ê߃†ÚymëÓ¤KA«4ß÷d–ÑÖÇy¥Q­ðjøfËͪË8)×ÖÆÊ~\xQò§Õ—õß#¸î0òëâ8ŽYT<ܧ v ¿¾±åá‘2.a t$ÔCO¿FË.Kš»“Âú §¿ÿlu¨îÇõÿ“„¯|h+ÛâM;íL§íL¶ÔK•RJ)VŠ»»¸»'×ÅÝÝ$!Dî$Á¡{ï{ÇÛ™÷á| ádŸµ×úÉÞkŸN¨ýÁ öK#Î<#ÆÈáz ÐüR?e±Ýô|§+éóðñ§J&òXN‰;#ÇN0Ãù™#™Œ½ bä\sˆ™®jƒ{®bâÎ)e@÷'¸x[5g3âüS %épås CûËiÐ3¥u6-Î99 ðZ|Öé´Ppf‹Vœcì98PR »ÀOªìŸsbàGB ·û2Z¼qúè»s5À€Cû“¸õÁ4ça름7ÛŒ¶Ûà~W“€6á’}³ᆄ¡ eÅõ‡“éÜí>|€®‡z*çQ/Ô<振‚;mõ'Ûž‚1O¦ó¤|üñ s(''))IGJZʯYë׬(kx½<#`%à§Œ ãšöOp]hDg*‡ià§©@!.f¹¬ó…ܦcmv¹q}öbZ øÏ<—ýÏ‹ôÏ“ ŸHuß޵Ø†ÙøGmáÂv%ìÉdaõ¹:¿êl*]¸7Æ‚íŒq‘›ÃôøÍ¡4O½BÄß’‹9À[T… G@ß.Šò êT_ã=ަ8 ‰('FŸªáRô2jÌ¡‚;ŸeÿZà§ŸÎÒÐ5)îd†Ž>š%AAæŸhÊÆŽ´eÒ#€ý§³™Å‹ymÿ,çu_,ˆòO´<Ö¡šC>ùÿõÀ?1ö kÅyÿ]̪ƾ‡Ù¼¦ÓÙüÖã™ôìc-—y¨¡#Ô¸ø}% y1—]y2žq +⸣æd†ÏßJ°;¾x©œ#€ÃÇêt¨ c^¦ƒÚÈ?ŸásÎÔ".x&ðQèc%ñ˜àãsŽ•\¢1ÏÀ}.fâ_ %'Z`WŠñßêC8ÍÏ;U¦ @þEéljQ‡ãLì‰,³èb*ïÇOUF6ðÍiËí{Ý%ÎØŸü)ú@ +¼þx:× ò€6Ú™¼<À¦ã³ÙG 0ŒWîŽd°ö†xðZ”¾Ÿu8r +ø‚ŒûÞ Êå\IˆÿrÁ å¡ ±àXžUx2••w +ôš±/ûÔÆ‰x®%%õTûèàùYŽ ¹!ÿXÁÆ(X¨M€kû£´øc9ˆ:=Ó¸f£iEØ]<ùß‹vªÄ„îJ0Þ†÷‰‘‡r\È©‚Ø“‘ëyÎÏî/ £\ú¯yaÞæ…€ÏYÛRj[F…Îô¡œ·'8¸]%È- z"ÍÊ>“7\LeìÃ7úÒ¾®u&ZèÓœŽêÆ 'ik€w +4Ư™¬òŸZúD pXÉH=šb¦Œë½ÊŒÌ}‡¨“Ѐ—/X¯óÀ¸§…¢#àƒO4Àgee”…͇šÒ‘uváá´Hx¨å³vUtøö(Ðã +6þdðé5qe€·/Ï/?Vw×Þ.ó;/æ³Ê/2œL³ÿ̉ O€64¨² +÷”åãGsMVÉÚ8¿%ãaNÔLäÏirÒO 5msçó x¢ÿ‚ºú–K¿P3Ò rjü.Àõ^´ÇV?ÆóLEƒ_LóÙ`¾p'À¯ªLj2ò÷•¦pÁ…qmÜØ÷2#×sO–=” éú1Ü ã +åHÅ#o†>™dÀ§&Ï_¥ÓôNÚÞh[ÎØó¬äN‡½4¨IæÉ4Ÿu1/ÿ\HÏ;™ + ÀL²GÀküTˆØ`®òŽ”¨¹Øc€oçê̼€ËÝX—…æTëµÎT ŸaÇrswœƒÛ Eìæeîd²¤à/©ÛÀ,õ&ÛîRcÎ&Òy¿¦Å™³-‰v›}TèãPÆ€÷™N•`|òÙTNá©*§ì|:£àç ‡±'Å{4îAóË0•8†O7L¿m<Ÿ0B^kG;¯wc<Ž•øhƒ ãoÜ‡Ñæ7|,0j s É§Ò9§êŒ¬3à»”™¹zun™AUÒ{ .î>Öf–k¬Ç“m®'Ñj­Oˆß¯ŸÚ›ªîª2 ®úî—{¾0è²s­P`<¿r¨ÎÈÙ¬’ªóªü”gôòJZòŽå³+AÈiIÿ̦gþo!£ø­Ä‚G;R¥çÿ] ø¨ì\Í¥\hè©Ç*jÒ¡Ñkyœ³™ŒâÝ)FÚ®hž¹‚6PŸ 6E"£6<Ørªabw‡)aº>²ÿÞ=Æ4¯±ÿHJŽÜÂûì ’Ž&8iº^jðf'Þm»›àùS#` Ë95|F?N×OÐãAΠ~Íò9Æu£}9·'ãÏ9QN¥"ꩌG8–³‘ÆïéÀ}÷$ÔƒŒ•¶5J‹Zî¡­tR¶ð¾GRbÄî(9bgŒ½1@Ô ¦ãç[ñÞKÇ€?z€å»jüÏ)ïç¤Xp2ÅD—?Yë&'ìMˆûcBÜÏ© ñç2Šþ™ã‚Za }s †‚uƒ4cfÄÑ%ê—†Mú¿Oÿ ®£Ï„‘Ã@½ÄŸ©iG2jÜá)vg`a%+‹šNTE@S^U~á`’O9Óy@ƒe­ŽõŸ|ª$Åœ(hÀÛó‰GS ¸Qï*ÅéÀëN¦ÀödH¯­1”ç™’‰<œeÜ \“v¤d¡,4âîÏ%žÐç=À9k½$ß­n‚×ÿ]žýÛ& ŸhòjOç2¾ŸÎ0p?çÉÉÿ€ëlŠy¦ Ä]Ì>™ãÐ-3~.d×T®šs€égsÀ××q4ô´3à—öWµ=‘}48‡zMx1´¶ZÈ9ÕÐQGSô´Ý &l_ ¸VY©4¨ËFµ9zðù±š…9RSa +Lè\ÈÑOþèßS·®s jël.§ît6=[/§§©¹¤c-ŸiìË9QåUÊ3Ä3Ù¥gšìRƒTÌ;Rq©à·P' +jÚéà C/¦é˜Ÿ.è£üŸ Eƒç+y]‹™å?gxð·´C5Á0I‰9VR¡‡ + +`VÂÖp¤Ì.;˜4ïX°KÃ&œ©©Iº¬Çr3Âz­ým¥à±Ô€ùº?D Û"ì¿éúq«m›•f؇¥úø7§2Bø©œ=’2a'À?èÇH¡†1Jø‘”žp*g¥í1ãöFƒLÄ8šLg$øþ0=z»ßx?B Û"øéðž[ýX÷­AfÔJ7Ù­㤗àüö$xÿ}×ûãäðÍœ—¼*ü‰º.îÍzøÿq!Á0Á1žG Ž3 {Œ—n(ÕéHNŠÙ¥Dl÷ÑBÎ¥Bò?À‹ž|>š~BJOÜ øîôb\w0nÇ2JÌ/-øS.ûBËgL°Óv)!c´˜Ÿ@ÛŸÈhñ›=)v‹MÐ÷ú~zÔÉ„ˆp›¼ï¿üô­0ýpœ½7ˆp2Œ&Ûý<ûOmVÉ©ú_Þ!‚¼ôÞì‚gŒþï<“v¡e N¦¨‰†1B°n€àw¢ñôÆ>qàM΀¦=x|¤ä`¦Èq:Iš‹~Œz"e$kgw’OZ GìOC§Àó"~©ÙسIfʱŒž´ÐÞ<†ñ,ªq]ú|N(¸0îïÉ9Æõ†èSð¬ÿšÀØws"OgmX¼'<ªdaϧ™ø 0ÿÿh™Ø£ RÄö ÚcO†ñ»Ð²ˆÆý20Î3MVá)¨smVñÙŒ€gP= ¶ægÛØC«^ÄåTcä!aæùœ@t¬¦&Ÿ(I±ÇS”Äð['@û ¡W +9‡šÜJÀ%ßÏfØ„óñ?ó\ÖžŒÝZzCÂNYê¥d¹…EfÎæ=n¹íp¢æO~6ú®½QbØð¤G +qOÂI]éaFœxtÌé$½;Hð;”â¥Äð3)fì1=›É*=žÉ*1®K^ÌæÔŸƒ˜ŸLòð‡2voŒ¹Þj·Ôް[lCÚë0ÞÆýeƒRÈ<шxÿžC1žÇ•û=pÞº>¼‡º,íýrÖ^×Gò_iEÛïöá¼v˜Ñkx…†dóéÒèÇ+õÐ÷»xoã™uݸ4ß„úº7@ð?’Rãô ¯÷Gq›ÝDoãyE]=dµ…à¼;̈Yï&ú,Õ£¿èzI>ƵÙÿ«-ë™jØÛÙZ„åZ+ÚÁ0L :”ÃV{_—;ö»#¤ ý1| aœ¶ÝGò[ï¤øª+aï¶»É'ãœÔ£qRøÁÊmî°Ó›j·ßr9'†J¨Ñ›½ï…z”µ~ˆ [m…}ZmŽ«ÄúÓâõÃ8Ã(>@?L +Ýì"z óà#<øñ8µ?Èîq`]dð{˜o«m)VëpÛÝŒ÷Þ>Ø 3®]Ñž£N&ÉÑÆ31?gqB†q?È0ÆH>Ÿ2dlĹЉ2òµ‘£ £¤ý9ጋ2Œ¥Ó Ò îö0#Ú0ÁFN°Rö†þÛÆµ )d¹õuµç² |ÉÞ(5bw|2Æ„þGÉÆü×ð5HûÍN¬³a„žp¡Iϼòt’K4Œ2’ Ãä°ƒaRÐVÎe­ `ß%xˆ¹7À…íôóRǹƒ„¼ÙCòÞèÂ8ïàýÏT,´a”}8Á†Ÿýyòé@ɧïM°+åbä²nŒ¸žº+Áßs`ónì9?’Óÿ™f¢/¦80²q/ìp’–°3†ZîC¹îOÐÑÿ™ÿÔpÈG +Jâé4 w¤a ÷eÔØ-›¥6¢ëlÎv¡Žä¼XO÷–æÀÌVZÓÎÞŸ/£øi ½'![Ôm;Åc¶ ç²?H‹ù€Úê&yŸ*¸¸ÿÎ +Jðû£Ìx£6Ú‘ Yâ=Iw¡‰°;,į÷ò’7zi¡Ànõ!·zá¶;#0[ÝÒÍøùf7éL™• ô”/ÐßÉ@k„üóX¨ÆXë: îk-(ÛÅz¤ÕFÉkµ™°ÙɉXi¢y©Kào4E0³õV‚ëzÅw¡0–÷x£ƒài0ã·ú‰¾ Î}VZök­XçíNŠÏVÙk³—䯪J¶”åC_ì¬?™ 'ël¹ùÅXs5HËÅÚsÃÂÕ0šêªÄnö ‘ºA!ÌUªn€è»ÔŒ±_nÂ}]oÃ9K gRbÛx–¾¼ÛO õì¹ÓpØh…~XmJ²X<°Ñ‘öe¹‹0Qö`¹j}!ccö‡ A+Æï´&¼ßì€YïØí¬Ös“&x€ 1úátüÎ`:n£Ÿ;]•j¡*M2›­Mý ­Iy¿Ö…r<“1SÏuî½7L 9™dÂO̾„=þÖ¸¦t®rŽå¬Ô‹h[šäÿ®„­Æù/µ'[ovŽî¡¯µ“±ß6»hú>`ˆïv/Ñg»‡ä»ÑŽv\kAÚÎÔÀÞÍ×§~Z®Ã9è{háÿÓ¯ î­¢o÷â<6;çHq.Bþw±9ÍaÕV&¼Ùì@9n÷â½g»NTúžŒ‹Ôõ3£t ?vúiáÆ÷ˆÌÕ#¿LW¤™Ïס¬Z¨~ãBʱ”š°3€öÐáCN”øcÏm+Êa±m·ÞFÔõb=  `ìî =ä¾ûvæÛf;Ên¹a¥.Mz-ÏM|½TÏðY¬ãøÏVìªpv‹Õ8»¹r”ÕJÉe¶eµÞŒwÞj'ûl_¡üÒˈØê¢o´Ý—Ó>Oׯ¿íϸÓ/»£.Où´ÜˆtÚ5 øÀo©™à¼Ô„wœ­J|µÚõR]ê÷p¹1ÙY7ÀG¬t²cöGøÝ 3n¹…àfÔ„+ ÉŸö{Ðîú^ŒçlEô‹åô·åV’÷f'%H×CXkN¶Üj‡ÛèºSíu½È¯š:Ä—ôÐÛ+ iÎ?åŠ1—ÍWZ`Ÿ¶ºQ.[=hçmP׺^JÀN)h­ ùU?$ÄêGrx›ý¢´…Fª×\ Åu¦óYS +3[¨Mý¸ÝAðÙ E­·ã\'¸¸Ã9”ô¯†4¾Ã¸>r ü\à‰‚…ÕOÐ÷$À·ñqàûsõК²øÓ%Ioµå)ï´åðw‹µÛM³­N’¯~µÓE ZoÁ9®·`¾NW$¼|ûNU}±ÚLp;–‹è»nê†ñ¼3Ðe»CXÏÕ¸õ|]šíLU²ùdQä“n–Ç5eaœÙF3Ñ}¾&Ù|¹)õóTqÜ‹qaøýqaÔ=uQÊ륜“¦ŠèÜ/€=ÄݛȆ>ß<³ÝOòßìÀºlw=Á¾-5ã¿­u‘CF¿Ç¸/™d§C×;pnFŽëøÍ×'[Hs£)‹žÍ×£lG³¡T¥H÷£1ˆ#3a¥ ûM[•b>ý=ñ¹¦8þùnÁïx‚™¬­…{ít3S cùù[}\Ø|`3ÁIS}5" ºÝCõù}¦$ÁL^ýRKð1]lNqù9ßêNü¼Ñ‘lµÖ‘r+îÍxvཥúÄ÷JÌðó{RfKÂIYn§øÌT¤}\ªK³š¯Nz?žj¢,ŒyºÚŒ²SW ;„áŽÛ=ØÐ£I¦ñ]-È))jwá¼Ú’h>Wùdª8Ød­=Í~²,Ñr§}2% ï R#V›’-æj¢žË +MZ©Ž¿ÿ@¼ÚÌ +¼Û@ 1™­@Û/7\TÅ)¯ÔEÉf U˜ÏÊâ”7ý|ÿ»í$·¿gËයnF”®‡¿ÑÍŽX¨Ç;,7!m& bMdǘÎV¥}j"»_æE¼Úmaít1ÃHN3Õ8[uqÒ‹Õšø× ?bÌÖkSmÖÑöêï‰/u="´~$W´ÞÅŠœ­…Pæ‡ÝSf‡ÜUå„›¨òÂLæj oû„a¦“…H—…Z†—¶,åírCŠåjSŠåRCŠ…²öjL}_Uœðz­ã¶Xr9Rv{Ù°­nZàj;ÞÔ™ÃB]Ú'5Ð’“!¦ ¾ÃÖÚYóTÏ­î,Üj«(~¹™ê5S {3Uÿxª î©$'ìI¯ÈÿÁV/%|äÓfÚi¥e¿´íBÌR[•d>YþDšøh¦*Òlgãwª0÷G8)ë]xoã{-´¥Éo–êŸWY¶µòa­ë¾ßM Ú¹¹ÞŒu\i@XkËÌVŸŒe†=Xm'xm Q뼤m)gô–ûc8ÿE 'GÒ#îLd$˜Êsc¥Ý›*†¾ªÂùš€ü´Þ:m£ï1™ÿ´‡t½ïw½çw½~ºšà¼ØLòP–$¿Þé#l÷¼öúŒï~A|N÷¹=–öHQÿ¢—ïg09Ú áã7ÚiAÛÝ´àÅú´OŠâ¸ÇÃÂðÛ#‚È;’¬¸G•H¯?z9QfóuX·Ý>NÂF%p¾n1_07ÔgqìsmuÒð<÷»™°Õž ¦²šè²ÜAÛËÉYí`DÊ â^öP¼ï$ûÝü‘æú7Ñí9d¶6Ác­#î˰ÀíOMYä3ý(Ú{o tO²í^?ÚíhŒq2ÁÇïôÓÃõcBò2]Aþª-G}ÒþHx©,Žy¶P“l¥ †K +>ÇÚÜÿM]ã|" §ëî}éþ–[ãÞ®µÄ¾Ñ–†˜,Tǽ1ŒÐ¢Ë ηÛq1'@o®vâÝæë’-&‹BMå…÷GÓîŒgÇ<-F9ß*ˆÿrmµã©©NzÛϼÙźÞÍ ½1"йÛMõ¹ÙŠu½Ñ#ºƒñ|vY"аÚ9­ªÀÛÈ ¢ŸNd‡›H2Ãï pƒoõP}¯ ‰bžÖ’CžU¥¸ÿ½ÒJèå'<’ãº2?Òtµ6År˜x¯ïxU‘é{[[Ep—fãç+é~;}¼$€oßVêáçÊ f³¥Éoå9±¥™Ñ¦Ú2œC?þZ™“jÄǯ u›ÍVzà\ ÎV[ü¢­‚Ûö ]þV–D¼Ülã'¬405?Ж«-tßÕ6’ûj+Æa©)Íj±!壶"öõD^éxvØCM9ÍI]Av\j"¹ÎU#­TÅ03u)ì4?áù 8þY%ÆçZ3ÕÿöRÖs¥â3U}6šmÒË ½=’þH–ñXõ=âÅZGšC‡ØÏ´•îeºÓÏG‚Œœ÷’æF˜LÆ>xð¢‡ãów Óí¶0úó½ü`³Ã!zìr}ŠÕb-à½Æd«™Êø€kÍ—êýžŽg»Ý]êDùêÆè°í~JÈà ©¤ùBÖFý=õýl%ÒøK«±Ü˜À[:uÐ\Mò—åf²—² a1‘ }:U’òv¶äµÖÍŠ2ê¬ÑÌà;‹({e)Ü\ùhêv¼»â;ô£,7ñÅìÔz#gT¥Ù ã_KóR,iA“¹Éf³Õį“ŘCÂXEAÒ‹érÌçÑŒÄWôÀW'‹€îm!xus‚ïwP¼þåÝVäÅ=Uÿ€™ov# ãøˆ‘ÂÐ7Uø¯W¥EÉ«ÙÔéšÏPfâëvJð£vRˆÉ ;àvÙù¯ÅÆd§ÅÖ„XßCivî¹J \¬y3Èu¹>,ôü[[ñX[i:] +}©­BZ ç&Zõ‹a»ƒéÄÃ1zoà»Þ·[®[-Ô¤Zh*€.G¸«k°Ñ½âhsEi²ÕÁ8%h‘Ïóå±Ï«ß)rcߪ¾'9Ñ c™¬­^nÂj§¶ÔBt]h„[j~$¾šÌ‹}*Í6™Ì ¹¿7L‹›m‚V—!>)‹(NãÙHó©"ø+MIÚ{ͼM‹8ñYœÃ“K½ì`›Ý>Ašº +k×'tþ½Oøí÷~¾çŸÝ4ŸÚbøû<è«”€¢ìŸ]ÞìdDöñÂowQ=¯q}¯K3Cnõ2½nvÑÜoÍ×&[‹àßnb\ß]•e¤úËÄìnä×¹ZØ;EAÜã>vèßõX«#éQ[øÑ¦‰Îï~ƾ_jÆygE?ŸÈŽ}+ËŽzÚ@tÿ„ëJUÚ»K35fÂð·õtÿ'«mDßåfà–4kP–겸çÀ¿›qWªà–—‡…¾¦?H«H¡oA-ÎVaìf+—›0v‹ hÛ©¸yÎñ¤ýU µ?hk‘_Ϻ­wÐ"–šˆkmWãšÚ‘„tÝÙ¯i!¯®-40"ä%ÛÁôˆûCéþ÷VêÓ–Ñ겤Wêè«Ùê´Ïªr¸º<Íao0ƒ²Ù-LZjÄ9ªÊâ^hËãÌÚþ·rãm®ô +‚Ÿ”’ý•áüM—Î(€§‘ç'¿åÅ<íaÞ.Lrúƒd}i¢8ɼ˜øšàûùð8·:H!»}´ˆ}à[6ºSìÕå¾÷&²\oJÄ^w¦kÓŠñ¡ÏEIÞ÷G + þ«‚”åFŒÓzsÒÇåºø·šòÈ÷4ÛëÚòh‹½at¦ñUSÿj±î5[—ê»ÖŒqY¨‚¾^jÄØO~OyË ýrµ(ÙóÉÞ¸% +háE^è#UAÔÓå¸ÕÞ0Îw¹ å’•æx‹ü᪪î¾ +t´² ñÅtQÜ3uQ¸i/ÓíÖVÙw@€Þèá$î +ÑbÂB Þ xÔy±GOåÞ™«Œ~¹5JïÎ~4UJ ZoýΙ¯DL•$¿͉~Ú+Œ{ÙŸ7k¢…½™­ÀÇ ç +gêè¾ÒâˆÇ²âSeiô3miʻŒãhìunŠóŸ•pw UØPi^âóɜاšïÐ×Qà_ÊÜèÇ U)Ñv™×ìÛ¿¦ +ÐÁçr1wµ=Ín¶:Õb¾ôYÚ‡!~ø}y̬ñÀû£é¥6zÀ»™F¢ÝÿVYŠío]D÷?Zˆž×~¤~ý£“êxs¥=í+?õÛ=^ܧ›ÝĨ…F”ª,ö‰¼(ÆTñ=þùxN̳NàÝQAÈã¥:ŒKNšÇ­R´à_z˜¼ú +ð–é,Ð\ÚŠ¤7ã¹ë±v×û™N&35 VM,¯ÇëÍ„ˆ3EV¾®Ÿ¹¸ xžo{}(gý Êu£+ù‹¬úv¤ãÔ›‘øi½ƒ ]h ºÌU¥Z­6¢¿®¶`¿i€F„šÌü@:o´ÓCGþ·k.+-ŒÈ¹j¬«®ëóßIFÚ/) ºÕ•öM]ñÒ0ÌEmÿ¦¬B[ÍÔâ¿õ âL{Xw5ÅI¯w{1n»£øÀáâÈ÷¬°צ˩>ã¹Ë.Fð_â`Óù +ØPÏî ÷nr°®‹è//Žy¥®L²Ùì!æëY~óõ8û¹úÔ/sµi@Ç£œ%y±ŸgjQîÕÌÐ×ÕÔ Ëm¿¡Œ¸gݬÐ[}ÜàÛ=ìЭ´ðmœhKE Ú-Õÿó §—÷ åH‡Gã”ÎøN ç´Uq/5¥Á¦êï!/檀Çè§EÑc¿Þˆüúòr§8Ñx Ð±Ì€‡²l?PG~wyßnö0ìn-5@í·ú‰ÍL߇cÙ±Näò±œ‹ßì$úNæEš*‹ãÍúÁ÷é>¯/W¦¹=T” ]‡²>î²q[¸À5€ Û]DŸ”ëDaôËX×›•DO“ù6|à@ øøÇ6ZÄî !r³7Íc¾!ù£â{ijÉïÑ/¶Ø)SXeušíV;n½ºX›üqµ j±Ù‘òex[emÚ·µ!Y×_˜±Ð$ŒQã>õð£Lëp^Nf'<ßé¢úŸÊÒY‡ãY‚õ1|¹MŸ©#:«+ÌTÅ‘$¢Ø]ÌÀµH×+Ú¸Ír5t,7ùål%Ýg¡†á]‹±¿ÒFv¿)͉y,+Lº?ÎT[þºÛ#@F˜¥¤ÍV'3v½“¯)ƒ›Ë³c ¢ô²#ïu3£_Ì”â½WZ3SedY^ÊgYVü󱌰»òìÈûk ð/[ýŒ¨‰2´«¼,õÛÞ0½ØŠwÕÖ#m:©áĶ÷mTs"#îÑÌŒõXVÔ#YnÌÛ•fèT)Êj®g¿ÖBö\kÁ»¬6á]×[Éú!q{˜“–‘öÕø*×sUvñÎ(-~ xÞ>R ®—àµ;@ôݤ†mu3£ä¥§ÁÌÄ÷º^!m,?ñM Ùéš$ÃãÖbcä‹>±Ç_ãéa&KUXÇaÀƒ¢°7–jqÑÇ2í`œ Ý!mvêÃ^Mf}»>SóöhLH>a¢0ùÕb+Õg²úbXz»ãýw ÉîV ÅñÞDAè3Ui‚™¦’ w¹×ÎŽ°ÚRw»ác#¶ºÑ^K‘– 5ñaf+“?/µð£ +1þ÷ó“ì·hkçÉï ³ÕqŸ–›Síçë,äáOU©_[Ø÷¥yÐÚ¼ÓbÑs x ]?'e¶ç>˜“ø¡Ký Ôa¢n•°ÙÇŠÓ ñó`.çk`æ«-[€Oo”åÉ–òŠäÏãIsí„è~Ð+iVäÓ¥š‡µ„›®¨¡Â räZWÚ×v–ÇÍÙ*„›~„“ºÙEð\nBÙŽd…ÞG˜Œˆ#ô +}_,5§xç'|ÍHt¼1ÓBE®¶!Ý”@ÿÎW$˺߂vþ½…ìsOVo±jWûíÏJB0¨'!soœœ¸Ðe¾ÒF Úhç'ï÷§“ö‡„ØÅV¬ór;Áo{P„^i!¬7!lTűfò܈Çëe|Üî0+a©“毬¢:î çgî ‰Éë/ñ¬m+Ìzo4Ùe»?Íqà¢a"“»|¯ª’å¡úNvœþ³*L|c\sYn@ÙO•&½›®AÚh›è~½É–¤ ›ÊüT˵fŠÏzÙk¹ë<ß³]n‚xƽQE™®5QBW:„)€Çߎˆ#ŸŠ£Ÿ‹£®×aÝw»8Ð震¬þe½- )Á-C:^­DØü>žôh©õug¸;®.b³| åàUÙ…ÛãYü¥.F˜ºã ý±Y¨ÄÚhK‘·[9 +ÍÌÈ>AÐ]eI웵vj÷ÇÑŒ€{ƒü°c9IfÓÕOS±ûCé´#…¿/åSvG‹Š ãYéšZ„ÃpV$È¡ðûã^Ï—%®EZov§fÒïÑOç¡ûT _ìÖ[Á[ü„þô¸7½œÐ÷;\âÎ5Ûœl± <óȽÍV‚Ç^Êi§ +r—¸Ðd|¯öÛÞ3–þ¢“åñ‡²,úÍH^§.A˜™¦<ñ£~ˆ˜F=;Íå^<ü`(“=[žôFYúpXäq«‹óíÎ|}‚ÅNÊ}§‡9ÓDòÉD:Ý(HôÒ°’¥Å‰ïš^ûį§ÊbÞª~D¼ÚêÆyË*`¢À§›TÀWûò×ý|×{Ó5‰ïçÛÒìç›Ól7º°^«m” 0/ïfëè‘û’\ñj+F]žj5SfÝ+ +~ÒN÷ºµÖñØ‘‹ùuä„Tó;SuiÞûc¬ÔÍnrÀr;Þe¹ ë2 ¼tŸÐëa3Ýõþ.ðæ…)®Mdß+x¿­ÞLÒzoy½—Ûg¦êåtäÎ-nsŒ Ý’êè>' £-÷yø­qˆ›j÷?‘S¡Ûý©.kÉ_O•|þϹܦ½ql©=éË¡<¿ìP–“«M'otÑ‚W>Žóë¡–QÝ(²6»­9„íl§—g0’–ZàÖ ÍHû•.^œñìÂÚ =n¾!Õz­ a;]ÿ~±9æãþ(>D×OÑOðq«½œØùNðB«8AVŠý t·ÝJ=Æ~¶öÔüSu⫬ +ãPBò½ÓH 3]j&¬u'KÓ>öˆBîwñüîÊ +ÂßÌUBí—QÎ;}ÌèÙf²·´,ùíî ¹Ö÷š* yÒJsºÕÃ÷¿_MøöG-Áéæl5=¢§€`ÿåsc$j£bad4è„–°Õ‹÷Ÿ®…škjÂ_Çz$g#Öz(Á[½"¤n4‡¿ÐÊ +ÏŽ}ÚI÷¾ÙÍ |ÞÃó}P…³¹ÚÁu3‘U ¬+h>÷»ù—ðëmÔk¸a„Úd¥,vÁlÖ1þ;’ æÎPk©¯­!úí¸X µ<è'ìtýæëPöKMh÷•V’ÏV¾ÚI’?œ,EX¯tЃV:¨~»Cäþxosˆ‡˜ïÄ{oIóË·'J[¶yÈ…:Ägù÷ØçcyÑO§Ê’?mõ1bOÆç†?ïšl÷Ñáë¬Ø…z¤ƒ¢8ò™ª,áý|+Õo±³Ù“EYmcŨÊ_–šÁ Î"¶ûÉ¡Æ=†™èÇÑܰ—½é~wW»ñ^;£|üú ¦¬E}ÛS·…˜•¢¯¶úe±>ùÓBc’ÕZ?ÎW'eÁ×€È[nƺéºñÁ»ýXŸ…†$»¡Œ@Ó6¦ÛßÝ  +¢^è‡xýxNÆæPsk r½ÑM ž¯F~’'|/ƒ;L7“ý4uD¯UzÆz7)|¶õYU†þ¸ÔJôÚ$…môÃV{ Aã|Rµ ÊF”`{g¥•ÅÐËKÛ7Æò²–‡xðÙ6œ“¦é°-µ¢‹f:h‘æ&<Œï7Ýx^ér¿ˆ¤­A|ÖT%¾™kŒy¥¬ {./ {¢ç&3ò¦€?Ú&Gd9ù»’L¦nP„ÒõñSV[Y¡‹ uÕí)øñ(óe»©˜¶Ò N˜.#;Ì–“¿-ÕP}ÖZéaÛC"ÔÆ˜€0kg<êåD½CmU%Xà™rImÔ»"˜ï-U 9á\‘ShÜ/ÚhO±^lN±škA{­w“ÃÇÙiûÔHEi䫹jNèj_±HSÏ “d$>8þ äs¯“ð —ñnªé)ýAr%{ÝËOr»}2‘%Ðõ“–§:­tÀí§kaŸ–{1þ[&zK"À­÷ñak=¨1v„H …í·ÚRÖ[a_T%Á¦²¿GÛ]ä¨ýá\žº†í 4 Ã\#zwHøZ€Zí¦®ö“VÉAÛÔÖTAõФ¸le »ÜɈ˜m@;-5ã}·X)Æw /·ãÜæ› 8¯½a1K^˜f¡,L2Ó–¤X/Õ“ãô’töö0¥ªÃúçD¾XíbÅè¥99yVæZ7!p±i7UµÉ{£¨ˆuÜeÂÀßÖ{ ÒRè›inÁ"àÔé*¬½$3öéJ=âÛz;>zgX@ÝO§oð’A½'íösSëR¬GÄ·zy~wz…þOdÅ6{Æw¼ó~©µÕ_ÀßõÚÅ +×V ,:©ÞׇÅ~wfêÍWÛ)~Æ^ü­n~êj+d©ž´¹ßL3ÜE^k-«ˆ¶œëÁûÍvÒ`š\’a,»D?•_±f¬‘áLîò º+°Ô¹úI±HÛFö¥º>ì(„Eíi²~,<™¯Xß \îFù¯ôc7ú©I‡S"Áö %«Jz¿6@ \i'ï ¤¯÷æ1—ÚD Ê{ Ÿõ1ÐOÆó1Õ¢‹Ž5¯A&>¨JI¼Õ‰‡?Ôær¼–k¸ÁªrŒÝL ÖIÝ€ü²ÒÍóœ'ÚèϦ-td¤j9Ašjª“ºŒî0[ÉõÒ–ñ<Çs¨Ÿ3âÝ/7`cîNdP-WjÒ£Wjø¡“E §ÆL“A¶ÔuäSç;2Ò†Šq_&PÜ·† +‹æZxÐe wö‡2ÈòïP3iVè½…Š¤Ûíܘéªôˆ‰,ŠåtËQ]Àu]ú‘±Ý˜ƒ\ªÈŒŸÌÌöé%ÒžŽ3‰æ«å‰kÍÂÄ¥&ì×Ívf¤®_Lß)oÙÊåmõ³¡S¥ÉCâðGÚ +qÔLc I[7]Âv]¨Î†N—‰Ã¦K¸‹UÂ`k+ó¢úP!¦{o¶d¦ÍÕ£fëS¬·GHÑ{ãl–~ª°qª°n{LÌ–&}Rü€[¿²=$D*ËЖª¢¤—‹5p˵F”ëV9z·› ]oÊ€Êó¹Ž3e™áºÖbº®5—°\Ë ËŠ{ô`¸^!îNÔ/fÐfû¸ }ìèµAAÚÎh:Å0*¦êúˆ…f¢Û|eÚG]'5À0$Ĭv‰RËPá×k1Qw9t¯ý¶òÂýÞLÚB=ÂN[³]ë$@ “ù•úÉü²}Yvææ7uc€™°?‘‘±3Ƨd|ÒZOšÛBsòWuÔ|¦n5×H +(„û›”##ŸŒ‰É—ëyÉû}™›mY¸Ù2ŠëJ Ãw§#4SÍOÏI6_i&ù¯µ“üuƒlØî(7ug8˜åþ¨‹ïv[[‹þ¶;Rm¬‘E`”?°V3Uô E ñ[ˆîsTm%Í{D˜ò~„Ÿòn²ˆâ!/Á[+~@ß˾G¿WV&Øè•¢œã™â“éü¦ånrÌT=ÊeM’%ÜQ”vëÕyUz—2×ö)Š}%¯ˆ{µÞ÷?˜JÏ0Lå¯õŠ ôàSiqÍñø÷Ú#iAéFÂWñÃ÷•ª6òíÚ0Þ_?Å£Ì4Ý4u‚°<†]-#í^9)ñ¯ÌÄ?ˆ¾®¿¥9}½ùÉâøê%äÅý¿ ·®]<ùëwˆÝ³{—¨A¶ö Ÿ,6ýN•BαZÈYfÆT¿ô•Ð>÷æß÷ˆ1/ZxÄg•Ä´»Y°èëxpO†¿û%a ß¥üèˆß…á~טþοQ#œóúbñ3}¹ó´òh0m9ßÀ YíâÁµ5T/m5Åe¡I¥¨÷eÑ-k騗åDÔýàÚB#=xkDLÛÍb/tgp.SUPûÙ6Œ·´k­¬cxH+ˆv½Y³˜˜›•d’È•Ûñ¡×Xáþ×},ßþfzãÈCp™Ü¼1»w ’ðÍò÷Nq²ëÑTÆ÷³~æö(1ZÝc=VhaPr˜;ò¬ì•!€%íô õràŽ„²1$@/vpgš°þ|´GVjðs^„Ï_9ñ7¾ßn%8ZÝÌLò5íä?èE=×6ÂO´¢‚Ö3›Ô](°oË™ð»Y˜„k줸+I>^«7¦w Ïnß‚¼{pòòÁÈõk¿CžþýÄÍÜ ïd}© q[’ûL?ÆHÜ’²áò¢“¬™|qù òå‰ äîÍ? ¿A ;\ã¾ ±yb +óø[7öLUI´Ó6qµí¹ø‘ +Q@g˪Œˆ}üƒ„3ýŽCÞbG‡]Itþz)Ðê3$Úú $ÁÆøÑbùÈò +Äãþ­[ßû òòÎ_ÆX@D ¾¿b¬æûp^«\º)峬pÀ;yiHLšhà·çR>ãSÿ¦G]A{»\B»9B°ß ^æÏ!Ÿ›@>š>€Ü¹vrû+W÷nBž‚çq{ÿäj!ÒÓd¢$ùýrÎc¦=Õf¹‹ä£©DVU‘:³0¯kˆ{ùHèM|`À•4gH¬ý'ˆÿÇ·KÓ{·wï@Ìïݼºsr÷ú ȵ+—ÿŹOO@Ü??úm03ñë¾DÌ5LfeëÆÅô}©˜üj½1ÝHñ.&.ÁÁîã}½~'zù^޶¶XÞ¿yï.Äéùsˆç›7 îw Ïo݆˜?x1¹qråòo§à÷B?[B8Ñ>w%…d»Ù–LØRWyîæp~Öú@a¦1XŒ~×(€?ÉAGÞ¦„{‚˜¸]òþ`±xh±}úâüò%ä1¸ßßW¯BžƒßxqïäæÕ? LîCÐÞοwð“ÌÆ +^Í6 ¿íËØ„ó9Q¶^™«íæ%hÚ±òZªÛ@>úm›õ¶‰ƒ±(€ÇÝ!øyÿôåÓ¥÷à7žœpøÿÎä.ä˜Ë» ¿ƒ?}€ <Ý®CÝÿRT#ÝWû^ª1²1›øºŒ…¸'Æ&]g&®#®ÀüB~s´øtéÁ­;{ ¶/î݇¼}üâýÑá +9<æv1ýr ‹ê¤ªÄÚn° ›^Û™W´å¤Õĵ¤;æþ D\Æù^Bùû^Štv„|zþò\îÞCìÞ¼óöˆÉ}ˆßç—¼-Í£…¸Þ­$„=é$½W72¥Õ”oCùäO#l»‘ï|§jòÙw +öa‘rŸð§³•%ÄÉÜbÿú-äå=ˆ xNs€™ï˜@žÜ½ ùë÷?!OnÞ†|{ñ‚rºQ‚Œ'-$¸iëYÚ~ˆ¼>3¾#m_ÃÁ>ÉFÄþ™ƒL¾™ƒCýEŠŽºêiõ òÚôÄ ä™•é}È7³77÷Ÿ@ݺ yæë‰‰)ÀSˆ÷' ;ÆÿjæõÊ/ieˆÕ4á••ÉWû‘Ú.aâh/ µ€g›G$™&ùýæòÉbgö hù bñø1ˆñŸ¿ÿòÚä äÞ_·!ï>øZÛ_ö³ú|%ô@UAò\ïcÅÏ·‘½g›ÈnÊ +¢ƒ¼œþ­‰OxYÃ%=ÏBÂnA==.…:ØA‚¬­!¾Ÿ¬ OCþºròèúu‡/fæ»ý ðâÄÓüí¥WÛ[m‚XË­ANÚž\ÌÛ vdBÊ–„‡œë¤"^÷Q>çaSïÃÜ]¯D|±…„X~µl +¹jùÞ×@>q¹wã/ÈC0î÷žAžß1ò’àêö;9Ô×d´öuºA¹ÜUš¹1”Ÿ«ªeøNÖ°<Ç«i.åÌÔG˜Ï+n_C>>6…ؼ0ƒ<ñ½÷ç P·!¯A-Þúóú¿÷ÿ æÐòé+ˆùãg$—Ëy°àßj1×ç ~Çꌼ—°>žÁœë˦/äOwgâ[ÅøWðøkØ@ßßü--.ù}´±±†X>{¹qõwÈã›ß}y÷ô1Ä ÌeȇK̘ÈÛ¹˜¨·Š*”óØ÷˜'ãÍ‚°¶|†e{.צ=?Ó£–.0¯ 2WÑos1œø0Äß)^ñ7ð¡ð;ÌxäF^‘_~j²¶’9ßù·Ø—MÝžos"?wu´ gz ›8Ø( +í¬à:5å±>Õð¹V¹ì“|4ññw’ÈœOy’êŸzæ“}‹t‹ö¤ +³)äEj›¨Óµ«ùf’çÊp6wq0—£í̧Nµ}gŒ5¢³°¡· 0 O; +r*s ¼„XÆkj<Â÷'Ì#úªýKÈÛ‡w@.?„<»ûlí|•}\Ž#ÛŒgF*«Ù¾‹]¤•¾,ârO^Ñ$‚faÃî¥Ã®w‰ˆ]™\Û +!ÿCcÆJ!<q¼bûÆò`ç“ÛßÌ,!.Ÿl/{Ú:]Žð¿ N¼&D¦¾lb?)+è®›ÃÙ¬•!lk@ˆÛ—dæée9ºñÜÌå‘|‘¤¥ µ©è{`&•ü,9:úº«Ío¬!ž_Ü!^|€Ü¹qâ÷Åõ*6iÊBÌk\»N1×Y]_ÀYí/.œïÁŒ×Jo:zµ75Ûž…œl." Wf¶å1­‹Øøç¤”4“Ÿ«aÎ>—­¾‚r÷äöŸCÞ=³„„»þFƒ›V2Ò4-y¼ÕAjµŸ»#Í;õêÜò=eNÉü°+i¤yÕóükŒW¥êËtXŠ =&ö!*ê",ü¶»­ãöï, Þ6öG—ËAÎÞW=í¾^‚EDüÉA§>é-b¸i›Ò1kÝùܵ¾lÚJ¿0u¾;^öÿ8úÊî¶®mís–¹i mÚ4Ü0ÛqÇ133ʶ˜™Á’™™e’-f²d™ÅL†¤í9½ã¾?äÝ:ö [ZÚkÎö^kNè]ã4)gg£'cåw£šÏÃK²>Ì}þ胊7©ÿ‚”å}Vò&ùÃ{W.ÿåá/·þ^™[ýM~Nþçå9yÿ Öµ|ÉÀ®N1ДýÐ'bvÅ9Ë$èåñ¯/ner}XíUr0.M7OÖER^uc!ß"ª*ÿõöþ£ÿysçÞ_ª_gü¥6#ïï™Ï_üãÞ• )xù诰ꢻm?/0‰iæyÄ!fAÃj:ܯgpíò¡¡#@Àlô‘vÖzÑ–r†výh™¾>‰mþÙ66>X˜` + žÍn’O& ¹$\„CÄlö«L¿aTî3v ¸TL˜]Â9\ôž”Þ‘±ÀÖ.äÖb?X3NK×M0ó¶×&x;˳üÝ•I–eab›ëk;š#eǤLp ȯ€¦“ê•‘ë<"z[`£¯+ ™Zq)úz$\ä‘L@=ó1¶iZþî4¯Ê:Û×¢œlR/Íqd33øÕ¾Áü^_ê$™|«ÔðÅ0zy³“_²·4€ñ˺B²¾¼›V1Q=Õqi!U'}gRlžÀ½Ý[bÔ­ñÁÖ~£|¼»X69X+*_ïÎ÷öflð˜Ïˆ¨ŸC½e¢Á¾Â6óÁ¬€Ÿ¾9ßÚ“vÝ26Ì-¥7Û×É¥;“à‡îULéoÖ¾Õˆ–‰·-ÃßìˆÐùê%Fñ|?ýÅÒ`ç[áÈHåêèpeqiŒÞ÷bŽ?ž5EçÜWÓR­ó½-»Kœ]ìS“[ƒÆN¾_ß3èÓõ{uƒ³SÏø)à£:R³s_´»ŽÎ ·ÿ*#¦- P³à%ŸÐÚÚ.N rGجç ݼ¤ëöKpocˆžb[æºU3òÈVßlÈ(èXV£Û½‹!#¿/qo§¥írrÍö2>[ðŸd˜õV>È|mšïjÚZêÒ-t·*§iÚZÑÆ%yÐÁSÄMÙä8tc´3G½À.·mv"‚:.ý÷-.ïw3‹S¡‡+ðôÝ%Ì›ÃefS, sJ´¬Ó*Sèû‹ø¬ýu€»º*~XÀ§¶BÏÿÆ4K¯Ð +—‡7§FDc¼l嬠q{uì”ð½ +ö`š©àg}¸Ôð8nfrN÷†!¹Ã+'Öø5¾”Õ±%êìÎt–nŒò²7‡{òÅ#ôײ¹¾vùÊC³6ˆÚZ%å[„¸ ó&Õ2{ÐpIN1n‚ˆ™ˆŠEp¬c‹\"d¦c ñÖ'rUJ¬ ©èЈQÐíQ0Úƒ + ït£¢˜adýØÐ7Ûô8• ˜CJ(ßY‚&¬"3÷ÖQ€Vh:5trê.NHÞÄ.­9¦ÅÕDu„‡]è‘S[Bªþ!ïF'(ãbr6ü`“ wŠ»hAŸæ[Ç—ºqY‡s˜7;󄬣õ!Ö!pì®tAÖzPËÜæ½9RžOÄn*yT¯8ÑC¬³÷Ô0">Ö÷Ï•4XPMy¥Ô—ˆÙb_fÖ‡U”°šÏð)ب º»Û-íåzå½<‡„Ѻ·ŠÉØ_Eg87 %Ž5l¾[Êl3Í2‹­“ü:Ÿtf3¼Ý³àבá@¬–ùä„¿–y´Xw+ ƒœYx¿ŠqË8„¡{Ägê›ÙS÷¨F¦÷ãÓû²^ÚÖ"!Ã"äÖ튺áv½!j¤ Ž \Æ©‘CÿoÌ#fg¢¢OI¨õkèà¿ÀüD=tl¢ѱ†Ðtj¤À‚JJ“SD«“tCž1›³o,p!5»òI¡q³³Ý*#UYÄ”†]1 Ñ'êV÷/ÅÌ‚A¯]5wŽÆ­£ú˜¥{­ 7š‹3ºK Ì­ŠÖPqÐGkÄ2ÛtÇ#¯ŒÚÒõŽîÌ!^Gê®í,€Sô ÈŒ])æPr(v5Ÿ6Ë)»jb '­ÄL‚¡˜š·¥úDm¯…T¿˜XS2¡9£ãÄÌa„õt´}¹õéÑ|í]Ûxñ÷ú¾’«Ræ›ó»“U/":~¯QȦˆúZR2*&¶=$ëù‚† +ß]%¯sr¿vf]ôJÀg{üiŸ¹gjs°.Ù%Áv$jM›¸¼¨žMp¦yµ#U?RõëÖLýÝÀ‹Øî]°ãðë˜Øˆ‰Ëêé°ˆØRaÊRt]zz°ØrÿÝo8ªš Ê&æƒòÑ™€zh*¤¢¶$øbç*6{k¨õ®G‚)ÓM¶<ѵÞr,ãrÜ蜠ŠXTâªüT~DMi +‰Õq îâ¦YÜ0´šÈã-Ã¥"Ô9$˜<‡ë‘â«äC•·69Y÷ζºÆ£†Ù B@õаùÎå–G®Õöç‰}í>²µLn²jÙ—å1}ïxX=8T ûäL¸u¼âÚÁtÃû"$ɾN(“tÃsÔ½ˆ +¯¸“äõØÈ&%zZÅuè*÷ZSòÖxæ… ÝÓwyT\’vò« ÃÂêNVDÝÝUvRCrJë¡–mu¤ÅM\nDËç$8Æ#¡ƒ¼r£_Fi k€s¨§£| +, ¡Ï]BrET30Ö‘ G«mÏ÷!É@>k0õAiGΙ‘„8ÛâuŸÑP +¸'–!q|»Ýmè÷éûƽšî^‡ŒÔì–âË} +z[XÇÂÆÍ4ÄŸGüéDÛ¨ŽÐ gDmÜ€«÷É0…5±!¾Å¢ùå”öp¢Ø·ÿO‹ý‡•†)ð•¶)ðã`LjÖÕwM„Ì]cv%©>håöFw{×Þí +¦þ½ÇœYì°Ø¾³Zs'lÄ4ÅŒ‚¸IÐ5v +NlÝs@l1£À|žh©à Wv¸Twçp¾úzTK†ì/lSÐï®4ª§"Â6+¾/˜>¶ñ‡ÜR“x°èæ¶ÑÞê™:Ü$Õù6Áé§:|ë©1Q³™ +J`y³•/ì /£b‹[Li2 Vÿ é*üÚ6Qu5¤Dù¥°Ò 7wš–à¥+ÜÌKn +zºÛ³â—àʼRTÁQ°µÉò*ñíq »çd¿WäÔ º§i…—œˆÆ÷6Û'Å–F„ª€ ™k_mzl-¼â5¥Ÿì0ØQ€ß¼Jz{ÄÔ56÷M{Ôl´[Š-ñn´'ù7@OË\"pÆï¼Q¿Œ±NÒª'(5ÇêÞáS#‹œèè_‡§:æaÏwfZî(xåßû[n;WÈÅ.!:Ý#Be.´?¶/´< +nÀ3Îxo$4ý±Ëânñº£Zô0w¿r¬Â•¸ŠŠÔp¸ +ÏÚŸk}óÞ"ŽzýR<°A¬p̶? ®"³NU,´_Â…+†1iãèâóG3àÌwz.+¬`¼bz« nºÒ/'u„Ô’]ÚC჋. µç=p‹ØtŒƒð)0Å>9,Ã/‡g»Dí©ÎÕ†$Sº/"•oÍ _»ÅJÜÜ·¨Óî‘0ÀÞ |‰{µ#yoºæ†c¥æ®_…)ÓŽ6Ý·N€ÓbªÞ‘„ +¹8ŸŒÚèSjð7~ª ÑŸöxOÒ_Èí²¸ŽÍ9¶tö¿³1™ÇFLÝ©Ûxb ‚v§[ï$4øÙVß‚OÉ@Ø7M~€ëU +Xn9 Ägÿ©‰MKð¨W†ÌKô'Hôìöɱ%! ¦2¦!¶žº‡µÀ¸•ˆÂƒ…¦Ç†ÁÆ[®tΉŽNô‚9Öãëã:bKâ>ŸK„+;6±Hï­žSÜ‘é’!Jâ» +@O‰*b›}­î¡k³õuÔˆk:¶°';LžSBi8X#”Å̓~ ü|bÝű–MˆQ#ŠcZDiD‹­^$œÑ«ïúëD˜b·’çV J= +T‘O…ʈ­ñ­Î îf endstream endobj 51 0 obj <>stream +] +1¤áOMLÒ©‰:Ö¢Êw&K~XÄÝû@É˸r¬%¶…TlÜ‘—ï—&zÝÐ1¼Ä¹Þñjwòrk™z°K;Z¿ñHq51ÖÃúÎîap5¶Ý5Ûá œØ€Ç-^_ÃÄØæ‘©A¡6ÑÕ±†ÉŽk¹ôˆ†K‹è¸˜‰?~¶Û½önŸÓÒ’Z‚jRKÜ:bšúçì2&Ø##Õÿ±K&þ¹KÄþ¹K!ÿïwø÷Ø}.)܃xs~’þÃ{%¯û ŸÃí/½‹5×÷‡Ë.Yz+.Œ5Ýu® 3x•W9O¿ -“jNäÄwæT‹ðVä“4½p-—]ýÝHîHàm@C†¾ßauEŒdˆ[‚*pIÐù5º(ªÆT†e¨*»ñÖ!ä¶Úg©UþB~XD,ñ-£Òs¨ÿ:ð|•åœo¾·7Yñ£kµã¥_Bª:˜ÇVש-Žu|ÉÞ2"}o“î]cÖ‡6­!% ê–ª¹wb\8tM\ϼ"¾Ô¹-8\G¦»6I@,óQ›h²_-àGu]ݧZbó©‘U´&{D/í«ÐWöeH²GJn0Ž£R|29¢ëî khà €×ÁDÿ. ªÐ2Oî…½¹°;¯;1uF]}A-¾Ö¯€æüŸá“@Þn ó´³NoåÒ¾– ßÄÍýó!CWŸÐNþDO4͵Iji€Ï#–."RÝë¤ÚCïä)àõbZ'¬d"btÉá|Ç‹ ”ÒèZÅå/`ó¿ÜŸhó?ì! Ó@‹\W¾»NÞšlz5QQ¡mÁð‘Œr®âKþ½#ÿcW0þŸ}ÞÈ¿8#Q=²z¹í±e¶ý}›}´‚J‹ª°3ƒ +¦âR¢j&"¨æOy­ë-¹°‚MÿòpW` rUñ‹BPøK@‰o9³0¿í°ù§V# a Ž6©MA]÷H|«wƳ‰«¶Ž×^ݯû%*|š™¯%¶{:^™º ¾Ss¾ÞŸmË=1‘A98ݹґ`aAPÃ¥Ô?ÝB7þ¶C#x•ÄóTË“Dÿˆ°¹³'hûS›`ôÝ4fƒBjpÖþ|Ó=ÓXͰŽÁŒêyü“rl¢ý4øÔFc¼³‘0€nr,ƒ_oO4ßunâJ­‹¸2ý³Ü'+{;cZ!® Õä&Ï:6'°NNÔ:@¸oý˸⸘Úx0Ö|Û9ÛüÀ6^w[ÆËþZÁÉüÔÔUyïpW¢i{héxàX%68Etgƒ Žùö›NÐéa*Å]Å×ög E§€XõʸhžX†‚_zkk¨ù±z°õ£êñ9ç$ªÐ9CÈÒrj/ª˜%_*èÅ_ø•‡U~ï_G¾u.“ÊçX5·ÓîŸÿ+³èÙ…„…qIȇ«lç:èåötÉϦ‘ÜKÞ¶ÔÝ%Ðk¥ è—Ýô {"X¾£á©s¡üÖîDÖàÕg{cÕ7"br“{“Ù±= OJ¬c>Ó0Q'j.Õ/!T9–©öEX+Ù‡s ûâ®ê[¸²/bÓÎG~¸„z»7Þpûh²úWŸ°ù}¾ê×½Ùâ[ÇZl{DI…y×á¹Q îRBƒc šÝ´ÛH¨À] ¦Ÿhy°»Ï˜˜SÀ_8%ÄjÛ"Õ³†Êt/C^ε¾TðŠ®{+®Å”Ú  Y"úΞ¨‰Çb½þpþÒ6ÔpÅÒUômp©#͵Жn_lzvbâ~¶«3 £@v§Z^¹–ÚÓv¦ëoY¦joøe‰¾RÝÓ§fÁpç`þâpöÔ•¸_7Š|fê?Qjo™º[žØ×Ø` ¯æ!ýC-'ëËÀè™w¥õ¹g¹9ùLGF̳Šnb +n~*fW§Øl¯¨9éÄÐø&fhJßš.¸aI¿d›¬þÅ#–­ ówg€ñkØ´ ¶{$œ«½ÉÆ[+”ÌO»þUÍ+øÑ¿‰¯í‡f\G§ßŽhX‚!®P/høIÏ)ÿFÏ)úRDzõÉ<òÖ?õ=i?q µ¯Rëg1™ž%|_BC6±Åa ,뽑>1P1‡zbà0ßmø«!ƒâz|Ó±žÐSâÊc€Ïò-µ>Ýí+½h/¿—!ò|"&hw™æXB¤û6Ð9îuTž}ýöpú\×UyÝ6ÖúÊ-¥xÐ2±Ç&65ª¦CNt\š_É€†T”ޝ+¬ðÄì6¯¦oÀ§ì¤y7)ÕA1¶poªáÞÎxõ­€’ÃÞ8–êjçÍ×ÏÌdÌ»mÁXD¬ð‰;^ˆ|ç:xÄVßè“€³…Ð×o»Ä ?ÅaEt4D\Gƒ: ”!óݛЬyГ¨ŽÉ8¶ŒêÂ[‚Þ¨µs0jé .ÕS® x ò=X†G†-ê¸LàCz7¾Å*ØDß&ǵ m쫹–Øë"dæ~‡+¹ùOCC†KˆÉ3v—\²TÞp,´>órÏmró¾0õV|*§"M½1®È ðk‚Dtϲ0‘ï,l¶mŸ£ëk¹îYÇלl±(G«ØìƒÈ“½‰–;–Þª«‡SÍ÷w‘©‹¬òïÉ·ÿ‘0G‹È·ÖáêuÝ}µWt‚ò‹ú®òK;cõ·ÿÛ¶·ˆÎÜž‚9ÈeZ„ãÝÄÕ¸Ö:ÒlUW¯>Ø$¼ý>,Æ´„u<¦GD®ŒÉ) S-‹ph —ê=Ë §Ö¡‚‹‹¸¤¬m¶'Ú{›¯y…ôú˜¢¿ß·Ak؇<¢ ?¦>þ ¯üñ?Eø¼óÎ9l¦dõf’ùéÎèÍ=xdSoý}wå=÷RíKóPÕ!±òòÖ(¢èXOêØ*8¿7Sþk@ζ¯¶$;…­©19<±¢§æº˜]z5¦e±ßÛºg tÔÑ,épšä\Ddž©iè°Œ +[!þ `V= ¬p‘ÖQèóMRÉ7«¨Â/$äª jNù÷Öê;GSЂƒRUÙóþŠ/xrÁ>GBÆõü®ƒ¹ŠëF~æ殼¯+ ζ褈ŽÅœ¡?„¼øöí¼‰˜×ê6?Üî*ýNEÌúDNLÿx°ü§S¾Ú4Ωzqùo¼¦äk€^ᄵðþtÓ]-/ç«á–»I˜)çc:1Ÿ³ÑöZÎLûÌ2R~3ª§@CZ&Ú-¥4®ãò*8¦gà5×ÿ0cëO-W!J‚RxE@ƒìv-D¬œ>†Pøæ6 ¯]bdQH‹®9±Ðq~ â–QB~ç¾;Öó؉~x1ê[£Õ¸–±Ù¶ñæ›j^íOžeRƒs ‘¡ë,¼`î.ü>Q AÂμ¸ h ÿ:äͱÍtH{‹„ìÄÚ?5‘Àï·Iˆ÷62ád Y{´Òtß¹‚Ȉ¨éÈUh‰q8Ñçœ÷‹¸È˜‚ò‹Ðy@.ü¸IÎút—õáÑ:¾x™Yþ‹œSu=°Lkô.cs¶‡oì7Ýõ­‚Su½e—ÜüomcÍÏô]®uØ[óHÍuëdãËXÓƒá–'^@oÅU˜JÇ:&×!$•ýfîÿÃ* «)­æ±º_¶Ç*/Û†ËôÒMß¡Ì.Äæê»›¯M¡ß„¥´V‡–²?y&å6üÜלþ§êùG3°ìs®yBá2§áW\ñÔ‚Ú”¹Å8P|itÿoÄœÿ²Žxø‘{®ú^`[ux§V¬,½u¢g’Ϭ¼® Ðèjbýq¢ž³[q8ß|/¦¦!~Ûæ™„_V11Q¡6´‰*=š%ïŽ×Ý1õÔþ´;K^¦ÖÞçÕ½¼°;~å^!׸W¸°à67¸ŒÌ;š‚(;kn 4=ÿ—œ[ý*"á°Cr³Š›ñ¥¡§ìÆáLkò;3~¬gâý +Z‡|¨þÅ2#÷zBsøZï*"ÓµÏôU†sÐ1S-wŒüÆ[køüïX…÷þ¾„J¿ñŸmzgXŽ«8œmúÕ±ØüÔ·Ž(ŠªaÅÿ9¢1bf@Ó,Ã3vॿo÷¯khx×bÍýƒ™ÂïKuwíKõ÷OŒ ZPÍ!¹ÖÉåAP':2>ä–>ýŸ©ö7¬Ò?ß­¼{¢$4üfåðϬt:µì—¿Êxy/ÞmQpa5ªz¾ùqT‡*÷ŠÁÙ†J@ßâ[ô“GÆ!¨Úïì.ã +‚æµØÎ°î·&;¼Ñ–|8Vriw´ä’u¤äç º£8¢Ã5¬€^tئØnðÝþë%w&jƒÇTx@MjŒxÕ0‘+”êŸOÌ\ö‰Ž…9ѲqA1½Ù½Š|㘩»îžm}WPÛ\BÔû<)°†)IPy€¦xà_m~ìVN¨Ùß WÚ7¨µ!5éWa+ÂzXAPÛšš8↎œ˜Rtj¢¢½H÷—ß’óêS޵#Â@›ž8ë^§èºJ/(™ùßh¹ ×õ3ØlZÓ&`?‡ÖX0ó`ýíEôËVñÉŸj¹ßŠho?Ý ¥v4Õ’üÎÈåí/t<µ¯  +S”Ü}oasßÛ8ÝnWì ÷ìKÍË€ß%¿³²X= é‘àÊB*2èÄÈëònÀÞìŒ×_—Ò²?Ñòó¾Ú®¿i›Ãdtµå]½ºùOÛd[&ë8Ÿ”ØèZiz¨äß×üè3vÉ­HÉ9€þÃU…el‚¡¯-io¬ùqDAi;Ñ3ÐÿÙaóß›İ +_£ó#*Bm@ÉÂÛW¹A ¹åð’‰Ú®>èéöpí•‘–´°Wÿ‡Wtýo[‚Â_7R®UdVX†«ˆ©ÈM'Z&¬Æ”4"‡Ð\›mÉ'F&ý½¥g*¬ ·ÌTÞòKÚ2Oô8ð] Àÿ´û7 µ³à$ß)±§¦}™\~ €±ë†þ¦‡ûu×k/‚ëmo½+ Ìýɺ'2FÊg!q{eâºðá\ýÃÙŽTà;ð‰¾Cqô‡í¿}súrr›v îg”†ò›Çtëˆ&œ× Äsí°õUX†­û?™úÞ„©+!y§;Ìîø^¯èÄBEŸnZÔD:®$¤ÂUÜàêô]•7ì2BjôÀµNh>Öò™®TæîHÙ÷Ž™Ê_\ ÷m¥?º…ˆœ°Ž8<Ž]Øþ,¸ÈÎSe@InÞGFLܯ](°0Àq!=ÒÜøÃßm]3@žOïlóí/¢*öl«gêÄÈœy‘ª¼«È·öYXÒÞ:Å4†z!æUüd™½9ZŬQ +>[F'öû—ýl‚¿¶/ª½+„†ˆœØ˜è³'„§8¼ è8¿”XçY¯º½=žù­®÷Í´¤ÃRLyÜÈøSº3ÓñìàÍ€eQ% q¬A—ºW›ï-4ßñ­A_9W0o7ص—6yÕ?®QZŽ$¨¦¿õÆ<2ý£¡ÆëoLù¥àæÿÈYy?ÚŒÀ5?ý¦=ó×Ϧ1ùA1­)&Å•ÖÚ’-#Å×7™¯/ +É)ŸE4…îwŽ&úWDäȢÙæ{Gó­£*LÕ™•A;Þf2ÞÙ'CšÑнÕñä`¶ýñþ,øµw]â—âÊW1YšÞ¦ëëȜϽËàܸخ,¼¬ì}û¥a¤âú,öí3ð7.È<&Ö0͇½¹ùÑÞxý‹ÿì3ØÇLƒGÔšâ\«½@G'zš»%Ô&x7ðÕQ5ê\ƒ§Û&®Y†ë¯lPKÎuV¾ød¬=å¼k”i›k}A¯{qαŽmŠª)ý¹–g–ñ†k汚Ÿ¬“?ø%ÍOßo±YQ=eQªBJjÇé¯÷÷^_LKl5õWþ¢b–Û¨½âYGçz%Œã(ìqXÉ!sBÙ¯½5ÔpçÃ)УÄøÔ©¹_Ö 9ÿ{Äv* ­üú»Ÿ:çÑåïM=cïM Ò;#ªæÔ-q®T=4 ç\2äœ{¿Ý92­y|žKDª>3 ÆNõ â;#W‘šÂ’ö·GsåwÓrÿh²êÊÑXéÏ5xQâŽz¨ñêá¹Ò+aÂìk¨lÇ*˾ +OuŠ ©>%2/d Á"úþ©˜qh=fêŸ?µôÍŸY¸ï­.ðÈãŒmZR…+w+(M~u'ãh•ð'I–AÐmë@Ë5-¯ôüÎhýS§šc™l¿¿5‚y4/h=˜å·.1–ñ¹G€Ü[èH²-ÔÞ‰é €6(µ^ ­)¬à3JıÉóË‘¹€#z|KÏv®£Š½VC&¨dÂÃj ¿5tx¢Wש™ØáAÓÍcWwgáÉÎMzûá ´5JN·Ð3ÌÈ»2RÍw넯‚ÊÊšÛØìÏ$¬†'îR¥u¼å¡±§øG÷Bó‹íÑªÛæþ¢ËÎÅÊÛ'fXQT©:ÂÓŽV19Ç.=n``N·˜”c3ü²[Ž(°LÕÜðÉ:2½ +boÑSŒ µc›Àoï-´>دºbÈ;? ~üÕþ 8e{•1 +Oÿbw¤éþ±ŽEˆjX„Šà ä–@ ­3-UU—ÿ°$zp2yN)À­ }¬gRÞ›z§ÞG øç*2s®õO’XûÅņᯜ"BeðßQ­=&ft„×i ÷":OÌË»8Ϻ”3P{ó¨B)¯ä‚{™à!"naROmLú)€}'ûhTPr™ž zCLCjòIa¹{3Mì³à—‡³íµ»œsë´‚+ °¢½ELí*½ü¦”Q~Ù9~ÝDäË)Í ²?ß”½=QòÈ6Vü㉂8ìƒyPòþ\åÕƒ…²ë[Ce×ÂæäßmØ Ÿ£&cžUþh W|ûl»oùÄÜÙWSÛÝBH’µ¯â²š›}ép¾.é=Πyœ&æƒRºÞ铽Þu¿”\·7 M|ꣽydNDM†·X´h¢Þ»žÔêXEe:…è סx'Qgi üÒöPÉrVÚW[%—¦Àƒ".Ô2Éò /̃SBr\Í™×zfÁƒâV*&ªã²c?nê½ï¬ý+‰>xï,nÜLûµˆ‚ [íÖâ«´sˆ×Óø¢‹!©Ê±@(RJÏ Ô=øk_ÕÝ¿I é_:&u¯Š s„¼aBùÏÓÄ·ç– ©!Q²q-®&nÀÔzä€/˜F¤86·´›»5G̵-ár›¸ŠÈ ¬à·mèw+›sjâ €1’£:>'nê<6 ºcF.¨D—»7š“]-i>±* fµ.“Š$¬ÖŸ¦‘•¿Œwd_˜l{ûÉhÇ›/û›S>_Âf3 *~ ¬’Ë7º "³¾Þ›ÅWûÅØ£Et¦cô,(½t‹îFtðâ°–vI¨ðãíîÙ ÜÒãëÃZDiP‹ªñkhX¯’‚ŒY »g_JÜÅ6šÆà¾MV›o#1TAp]àZ€¥ìLÓÅüÚ«ÜÆŸïÏÂ2—0™¶©öîuTÎþ<,Í2U{g¹é¹GŒÈò§ïx-í«¹ p>çýn×ìi¢^¤ßèLÔ–\‡¦;×!Ùn)¡Î2ƒHâôjDÏbÅM¶O†)µŒUü"cæ-¦}1yþ™i¨ä¶_A •·Çào¿9´[@K…ãïøïZ;= +òpTæ”0Úн9LQàïD õ˜†u,B“uMU”ŒO' ¾0Ž6=éGæ]~uõ뿘Æj’ÿ°àiCêþLÉmmoùϬʻÿäVÞüÀ¹PûìÏ#v¿W‰o°‹`逿â–ÃxoesÿاÑ~ßE·KSvg*Ÿí.t¼ƃ86³Y!›Ö±pq-‹|ªb’þc¥àþÜ'"N­8Èîèùá<.ÀVzHÛ;ÒvrÂz~OÌÐÉ©ØDÿ®ÐHĈ]Có\Âö®eØK@gß×÷4üdíMÔšk¸¥ã]Þ®¾éšíx|4Lßà^žB¿ø×îT[Ê™‘Ž}g!´Ç¨J«s +leða€3Â&ú¹wêÔÄe™8ôãÄw™ -!@÷¹TÔýöÍ +¥þºeš²Áªùu’ó¹ŒVõLɬ¸oí´¬°õiH‚.2¹4„Íùf–ðâS¿W{¢íâ‡<‚OšXg yåÞ@ç.#Ò=b\éî6_5ºc_'·FôüÞ¨–Ø”ƒ^ù$Í)¾Mp0^ô‰žEˆéyô¨Çk™¸Opbâð}ë£@ã/JŽf°™‡sè×âÎúkÕ/¯ü5÷Ö7™Gæ_ÞŸFäo ´ÜÙn¼¹AËý^Ê-½±Ì-ú~œ÷“i[`DÏÞ<åPN=‚žìw;xÄGì¾3[×tÜ* è)‰{ÂÄÓm÷ÌÆŸ<¶ö.DÍ‚þ0€+%±˜ßgk¬¢f09玕|Z,Ñ»]¯ˆJ)uŽ9DÊÖpõæ¡òï÷fÛ^º6(M+쪟d]57CJ@ëjXx?à«jlE@…«ðÈqeŠAÐcqOã㈅7·ñú|JB¥KŒ+öÊI§ÛL6ÀÞîØÀæoO“B::à-IM)ºxw’g¨º;Ù–z¸Ô^àZkO?¡ –Ù•¿Ì‘ó¯|èQêÄJ·ŒÜÔ³ðnjߤÔy °~òrG̱oÆ ¼öIÉ5ÎedúátÇó½1Г½HŽc“Ù&ꆽ%V%_Ø™n|áÝl~eËúÎ0”ui{®1I5X¬¬yíß„þ¾ÇêÜYCæÉ‡šï¸Å4Ø©¥wöÔBB›:J|ÒŠ{Bê½ q?:\hL{ocwî 1yæL†Gɦ¾³ ‰ÿcéžüs—‚ÿ͆i ©¡YÛ“Í÷}k䪀ˆÕ’s±'Ûý«§¶¾•¿×½ŠÎµ4^96²N² Wü´7Q}5ÑÁ4Ürs{ù4¸ €ì “4ìò‹›ôœó#à'Ÿqªn~È(»þ·á¶ÇØÑÅöU|¾OŒ) k uA5±åÄÈå[ºg¢[‚á°Ž‰>5³èž lqTEÇþƒòÎÂ$ù4ü‘˜Õê\ãµï3r7˜ ?w5¼þ@ˆ*¿\á¶;¦`ɶ¡ªŸô½¹_[‡«~Þ_€'[';ž8;RŽ5t˜o Wè‘+ƒ +:È/EdùÄз®õ¶Ewîr~Á7Ž¥¦gï,’[Ey¥°L¯¤ýU@Ήëp [HÿÞ"v¼Oôd6Ð^ ¹&¡Ÿƒ*.9¢éîõɸ8ó(4yUðå(8ók·áê8¢àRoÃÛo,ý¨œÃ%BùöXûƒÝIȳ Dö¹uZþþM|g“ƒÜš¢åOàŠ¾–u7¿ôJ¹¿ŠÚ7à›cFt}XâUà×RÛü::,jîŠoq»Ž½|lXšzF¢¦®#`þ­Ó {¦ÑÆÛÆ‘–û¶tù ,弈Uø‹…^íšA¼Ôñr¿–3Ò¿4÷—ÝØ™iKžÅç|½Á-¿<Ÿ{Ul™h¼m™n¼}”èo¡&7>ƒ5tŸöJCf&É-g€=’^NX3&:Ûæõµ”6`¬ 00ÞDí¨‘ð®4 +'•Þý¨§5é»(‘%QGÚÎ\óÓpåÏŽMl龈‹° i-€¾$žš;»¼2l™W†(tJÛÞm´æÙæjû¤Èòˆ©“cgT¦±¯½jëÝ~qTMNh&PÔHC[x}QCgï±¾“U±a4hX+è +*˜pœ÷JˆÍÀyx×°ÙÁub‰“PæY…gK.뻫~²Žß€²>›Gç|)T\Y¥ý¸€Ìùz÷e î†s›«h¿kGåU<’KJƒDt,rÜÒ;4 +z\ +rƒÀøyHÊÑ**GÖU|9¸‰kŽz†û`Ü"\±·ñÊXÛëöÖ<ù«˜Yö©êÙ‡„ü_?0÷Õ§Ęb¿™ë—  +œ+m©Ûå÷4‚WßJÉ/>Ù®»w¸‚/’u•~¯Tü´3zøÜD]óÊ?løöS#ºöh½î^@,ÿ Àéßl= ÿ¶rx‘MЫÀJýƒˆœ×Ó13›ˆ|ã`Ý/!¹ÖµÁDjúÛŸò›ß~[÷òú'üš×Ÿ›»š~>o½í\†eL ^}:Mûzw “éYa·ïN·>Zg]”wÕ^·ÎÀ^(ú O¶fHU^U7ß­ Ôz6QE׳¨g[Þ±hÑРÛìWbÊ*rÇñvïRd‹ßÐsi»KМý¥†'iûë Y …½‚åÿ¤ê§Ú˜5ÖÁŽûBdúW£-/¾áÞ\Ò²3Î;暟Ŵd¤t¤ú«êñç®:(¦îéj˜ø8Àó!¾6¤ÃÔïÒÈ~¡Å&BfOQŠ~€¼ºt¶Ó³³ nÆ€XNôóÞŸn¸ï\§øeØR@!Ä]u÷Æ‘o¿ÞžjM´M“à_î—‚ÖjE¥ qÕa î·W‰-;óˆ’ º“Òr!=Ùâut·©™p¯Š õkG–ÖÙÄ}!±2 aSìJ½¼«íÞ$¬ðü,2û{ÛpÝ/Rná/ºÁÚÔƒ%xÙ êÍ9×&¸4n¤ ãÀwoѨ1 ™V£š\Ë ÅÅÍ‚¡ˆA0á”PЉû˜> ᔑjí2ÈhްIÐð÷ЈR¿¿L¬ŠY†åaó˜6jÑþ·6„IÐÒÒ!6À/îmÒê6»šoj‡ÏVq{ôSÐêŒs¯`3óÐgûSM7w†k.+Ø™_ʸe?L°¿uó›¿ðë^~ïZAf.B_šú›¯ÛÆZnÌ4Þ±/ÖÞò¯as€ØYÃÕáÓÎ$Øæ€vtÅ¥_tÉûºCZëÄÌLë<*cgžð7ªÔ'Á׺ÖowGÁÅôšk«¤òËÀ¹º.Mý”ÿü3Cwk–w™³=^þ£mºò'UwÎw³ˆGŸ,á^~'$¦ÿ°3Ù”¤Ÿj{ÜÓžñ¥u€VîöâÃ2Bm\ + © YG¦G®µÆgQ®õDÏÀù¤¸Š¸ŠØø3þoàøÓƼ7qÙÇZ2Ø6UqsoºúÎþ +*—~}n‰R~m +—¾3ÚþÀÔWþƒŠ—ùí2!ù‹¾ÖŸóJnüUN/þAξÁªzùm¤öþÖHKúÎ à‰Eè<Ï&¹Î-B¹Åàüõ槀¿E„•ü «ðvQUÒ¾°ì™c½õUPèF+4ÛRX6à:ß[cטָּZA³¢¾‡ä¤Zç +:sg +þÌ>G*r¹Ü¼Ž)qGómÉ3˜´ïÈy?oñ¼D­ymŸ§5ìÎRK,sˆ¤˜Ðä&ü؈XHððÙN¦JÔSñë"#÷öÙN׌[Æ!º6ÙЀŒMño ë¼Bpºk¾-Ï·¬2J/Oârní.@Êö—1%ÖILŠmñj ™éK÷f‰zl….)®z£·åá +§ê©OÙÕÔ zkœ¬÷(ȵ ß"V.? çóu“¨·ªax’GÕÉÚY£Ö®Rê~ìkLÿb°1éドګÁÍö̈^5†Éþ.íÖù¿­vWfÄ·X”˜‘Kwl¢JìÎ97ê_8WÓÂjlHùr{¸)9*£‚eòΊëfé9ç:¹ +à±LߢÄ+AVx¥„:ˆÇÛTRÌBÁ†¶˜T‡Š +“Öݱ.v¼9Ùë—Æ¶£> çÑòè3#Ñó´ýl‹ˆtˆ …ÃàÔo¢êÿ<‚µDÏi¿žå\i}¼?×x'ªAÕüéàM†<¼o“Óî]ã¶;—iå˜T »òâ +*ã-ë3Ï\ã£Ið[Ë@Ó]gõy¿_¾=ÛøÜ2Vu}{´î†e´üÊáTÇ“À*­ö=àñÞmÓa3 ë7БQ3‡õ› ˆEKÏtLÏïôK-!1½1.cAâRno“¶;€}åšeW›zÚî¬b²>SsKQñ+¯ÊØeç•üšï·'°Y~9ëSÑÚìÈ·ŽuD†ƒgƒ˜XCR²;‡-²ëo‘*’¾Ö÷×å[û–Ýbíî,8éHM( 5q-®.¦FUzEø*Ã`ëÝ£YTű¾wÈ%ΉŽÜ’ª‘¯|¸µ3…O÷"«¿]%7ÿ˜XϬï®ùi ýêƒÑŽ'ƒ¦|¸Œ/þ°Bßoõ·>Qu¤T=ûéï¨×W>ˆIÑ€^ÁÖ*ùEß-^|¤~{Î0’ýÍÞlÃ㈜Žêº{UƒÐÔ½Tþ; ^þŸƒÎý?óŸ}ìݪ:¬€ešFšîK“>Ã<þàh…>Õ1ñÇ2Z[x[q4Ûž¾Á,¾%áe,ó«Ð4×½Aj6v7]÷, ³"R… K"$$#¶JÙ9_L·¦jÙTÀK4İ<ŸST“ÚÞ[£530‰‡«T\Ðú<¤ 7ÅôøÑ<ìµ–_ù£”“÷õ(øõ73¨·ß̵¿¼V)ºâå—on\øç¡âé; .½RpšGNso¶¿ +)±À¹¥‚ï€<\Cç¸Ä¤ª¸¶KV0qGKŒWçY¦j; .Í€Ÿ~ªî©½Õƒ,¸Rôüê‡ãˆü ˆœg@)ÿP3>VP/ Múh¨-õ›Þ–Wäœò››¼šû©×¾þKkÚõDèÎ2"íp”ÖÚít©u¡ý™mµãUÈÛÿu°úöà~ s¼Õ3³ö.žôIÞò&ζI¨£œK-÷íBðKuí­ÝYxº{•aŸ½p̶¤M×'íW?Š(YȃY€…-÷Öi%Wö'QÀøk~ó?_‚¿ýXý¡óú#Sgáûtë=ãTã=^ûó;^}âZDåzÖ é~ñCwÑu°øN@Zy/nDÕžl±Ù§ÖÄ~CþXÏ¡'î«Ç´\rTIimË}ë”Jc_ëMcWÇMfóÝѶŒO†[Þ|ÞYõòãXö—nùOÞ%HJ`[i_†­Âr¼2:( ê¤DµÄf·¨ý•¼³àÜ3óË­‘ÚkžedVTÍÄù}âWÐÛ£êNFDÃÆ6Ù¾æ§vaÉ5Ë8 Gæ¡©gZ>¦fk¤êˆŠMЍøtÇ +¹xðܺ¾¦»r~ÓMC?èÖî4âÅá2½F%høYÌ,½´N-¹¹5Òp à¡ëªÎª»Ûãíš1XJgsö7ƒ­ù×Í1…Gg`ÿ³H¤D€?ÐØ_gÄÞÏ3œ¾Ãi:ó`š„þBÕmÙÛßïºUÛtë„¢5s͆nÚŒå"­äÂ`SÂÉžšGÇ,èÔßÖ,˜ +·êÒ04å;fõ³ãBÉYrÙ‹ï”àÜsAð¾U𫟔÷kDÓÎÒÚRTò¯ÌúgßhÑ9gUoçd ½ìÒ#ü²{KòŠ'ûnHÉÇ0“ûiR¨ÅÈÀš_½æ ¶Ý,ôžŸCܰá+Wuˆôe "e:ÆWaQû}Q{æOŒ²×ß9í/|ô–Ûbé³øR°«ø–‹™|ÉDLøc¬»øú¶•Ò¼f¦´-iÀïŽü1£²–×ó²šGkÚš‡óC%Öu ‰;>XÞž—ÔòÁÇ&®[0¥ÛfhÖ'/ªþÀÊßr‚K7¬ðüO£ÄöMºl&¦ic¬Ù±éæÓ–ô„Ò©þÖGNFî¯&|Îé;ýµa†¤Ä3×L©¾0ÒÕþxEG­žèi¸£§þ­yrRÒôòô¤ áF¤þvQÉlQ’k嘼3“}ؼU-«yEKÝ4AÓÖmèòÅØšXvâ*1-%oûHÀý ò!„Ç4uÛ‡1tÝÁh~ìá×ßš×ÂK¿Ìòël傪#)*ƒ¦F†á.fÝegÖ™·òî–WÛ…*ú»9ýÑiw7¨|ÅJ¨uq²~·ÓÞ]r²ÓŸLI _ŽÐP‡c\Ί›DVÅÿ©"æ¾ø× ƒõ!«Ÿ®£}îÍO'%•—½Ìì3^fîµ3¶ZúúDAÒÕm/K°çǶ»K®é‘I¿0Ëï}#¬¾|FTrýÀ‡,Û(-E 7O1“ïúq¨Ï1ŸB8ð’¶öþ¬¬ìʦ³=õË$G¸î"à Ԓ›>NéÍ/aÆÑÞaàŽW»¢Cä.k ï#ƒ€;³Ã£:l®ôÕМ§Æ$õï·cùt^LŸì¯yé﮼5Ø™õ­ôé7&bÚ¹5SKú†š³djyµç£Æô–@öyº×3åÇI +)V'c|Þ–ùyÑôÏ_³lÇܽeI‡Ó$ìdzëó4w0Š,ÿ:‡| +#AËpÁª‹Ð´hÀG‡;ÞxXÅ×]Œì¿·ÌÀ÷3Jdš“Uö‡\ü»Sú;˜ù,óÉ7&låí™Þö'¼ºç§ù×¾>=¥Á¾ý¾3ûRœ +þö—¨¢õµ§¯î®ôúDZ®¦÷} ìá¾uÑIèñ•+N&j7À ®zhm¾ap²Ž^~eNƒ,Ùö°°[6Jó¢ +–2ί¾8B/?«CeÿhDþ6-†¿•‚ ÏZ0EYUWCœÊËqÕ“…Áæô5Ugö²´óu€W}-"jy²o ¶uØüG}²• O¦?š[Rÿ=ެ:ptf¯)Ûg$€Û[ÆØ< A2ÖÀÄ][ûû5SGÒ¦µ3mÊÈÙóP:öFhÐ% ®lÅ@®ZV3ÂêkXâ)5$ñ{3.õ¬—Yrn\P{%–ÏÞÄ7-§'ºšŸ»êŸ«Á‰§ŒükóýM ±q}ïâ·Þ퇜[ÒÓ {^61(ª¸U4>_±À²#*Ы?¦~/@C.™ ÕSrHª’ñßEŽüŸY–pÏO/hqy#‚Š+s1ý¹?Šm=Spa8aÕFo[wôpÖìÝ$p_üü{Tá“_ÁéÆÄM÷ ìU;‹´hg‚¢zxþÁói‚Íß0‰ËFt¹‹[u×-¨»ìoy¶ã¥³¾Lw+ÇÄm/¡aÍJ,›ˆ€&ÅHªž·ÐÍÜÖxŸQ¹7Ò3Qƒ“´ðœŸ›ßŸÐ£òφ{jîí8@±x®ŸÓ“J[R_~/g>þèÇÁ¿NQIëhÖ¾ø4އÉÐM ¾l#5Ú8€C ¬ÿ.u™>N:7½ð¼èÕ²øbEÓú,–ÒÆ‡¯¡ù‰'áO™V«7œ°R35ù´‹žq6 ¨½”4ÇOJñ»>XåaˆNÞp±ÑvnÑ…e ¢îó[°éƒW¯ÙZ“Wí°œ®jÛ‡iü×­¨¹n‰ŸÒÓ5„Æ‹6oßGhÞu4'njëŸÌéÙ/¯éŠ›^ù‡ƒZõ»‹Qw~¼§íîŒ þÆÅ­¿<Ü–õã@Káy#¶æú¸°é椤åÞ²ørÝ/w¾Ñ‘K¯ÌÈ:Ò7í¸Ò3"kÑŒ,œ·kW,äþ8‡½îa@£–˜ö4`Jvü\æÖ—¶j&VLKÛ㵨Œ_ºªž½ûÞB¨øcˆÐx&áά§g#âÖĘž8ÊÎ?–Üå]RÁß}Ç®|rJÑ™ú‡^u žõàT´¯þõ'0Ó[{ßÏÈ¿èg¥þ*m½ÿÍ@ãÓoMˆôͬҫÙþˆ«Š¿ðíŽ<:kô¯òe„Þ³@Ê–µÏ§¤ÕWüú«¨Òw¿õµdÿjÇ5Àsÿ°aJÎ…¸­7ÌØ²ßcåä^]â÷ļç'Fùµ÷¬ô²»ä’G' i·¿Ô½úÙJÈþcº¯ù¾bhÌYÖÕ¾ý8‚Œ°I»\m,ïVïx¡…+¦ö·³rPÂÚÑ™=}ŒÃÆàÍ˦ŽÔ˜îoZzùÛ.Lí’¦%i^Ñ”¸hèHÚr£ËvÜ4ÈÔ0TŠKz‰*IøžTôæô–Ñ<'¯¿»¤jz<ÕWysøôÄ`ëóþîºërZí唇—Ž£³^ÿ2Ý~6Âk¸nÅTþ­ƒ—] ¼þnÝО6«‡hp¹Wƒ‚šW>xßK„­›ð»vtÉâpÍ+)é· qí“U¡Z†ªz>¥h/™‘5%Oæ¥×;±›XPµ¤Ø¹DM/¾Êˆù£=È‚€˜¹ª%Û¨-„Äßf o޵eï¸@ÙiEŒAI;^2(E•¯Ùõ1j; ¡›¾LàÁŸÆ1M_'¨¸3´ Æ0—ç5Ü]' ´®‡æê0É¿[ñy×¢Ò¶„%%(aAŽJ_5ða‹*FíªÕ¾jácç5´Æ¨ +_´¨A¦Ç´lÆì0üí’µífãæä¨Â¾¶ôó&Jù›!f×¢”²é‰qÝ8ƒ°3FhY2·'møûA6kV}‹‘¦CCV´¨¢…áÆG£]™W–µÍ¯W-ˆœˆ Wc’ÒU+®|V }{0N‚}ÄÖ½U>-%­Aië–#Xy{#ø–æÙ’a2&¶æj6ÝxÀAß¹êD·Œ3èŸÂLúa†Þ’‘KvlÕ~Nÿb2¿N²ùÿš ‘>ášv\¸ŠU:g-OS°?·áÊ®]é”`SýBHüœ‚Pîë|1'ky¸ nz‘·< ö5Üïm½‘³ªCRNåT?!mYO©ž;Ú·=¸½¤h¾f†®: ™“ꆇAióÓýq}3«.*pÓC‡ìøé¸ƒP÷àÇ ¡êè»…LÓ’¥3cÝEÌk0+:d†Uy±’þ¨5ó¤‹Ú|mvR2Ö{¯BæŸá·ÇÛ˜í¯üÝ ø%&wÅB¬™Ó‚߯ qb°#!¦»ËFº[€ë±›µ¦‡fmZˆÕë1všÄeŒ¢ßyºÚ{À‰»N|ôhš¤åáô@ós:û’TqÛÓ‡K’³à÷:‹R¿꨽–bÒ5„ªs¬ò÷lj¹o¡2žC¦=?…N{ý#§<ý÷!à"¬0í4«&é´ +Ÿû­âÑOTòÏFlò),ù%*ó‚—]qgÅ€­òK;ÞA3ï|;L¹õO˜Ùý)Èd¬Žú´¿œüé¤düUÂË'ÕøÒ¦ôǧGÄM%‡c„ÖƒXîœùYEW†:^ž–4=úÖ„LþqV-$Õ§þUÿîÖ/zlþ½-¢pYÙ–°k½Û2Ö¿7¯wO9IY¯Ç8 +Sžø³ +“—ðq„€ûg†Jùg×qà…—nZÛ²mÌÔKTÚ_ÓŠö÷C¸¼‡rXê)ëšXò`a¨3}ת\Ö@Ófc ÊE.½½8ÜQ°aeâhÁ¼ +W›¿ÜE ¹~ÃBiY7¡‹¦$ÀwZDÚ_¸ôkÇ”°´û“ÃÀÂéÁæ[ž£ý{ ò^‚ˆi0ØÎ(ƒ²æ$Aìòë‹:XvH +­ót5¼[Tµ¼ö0ÒÎ/ ×Þß¶ÇÞß©^ЀÞÇx(eA×ôòC\µÀ+'úA/ÇE­5à´MºfÏCÃ|39ÿY`¬Ù ™›Ntåá8•ð9Deü3Iãþ+Âä}f²?M0(§éô/³ì¾GÙý[Lí?SLÎgX݇`nø"Ò×to¶¿íITÖñbAÕþêÓ8®5¨ .hHu»nuÕÀh\Ò`²'û7ýMŠ+..ÊaÉ%1w¤õrfùvÓÁ†O _Œp Ï»‹Ïù¸çVŒ™ÛRûŽEÛ røãjxj@OÞôqbãÒ3¼ÈÃ,îa€ŒX÷tænĘcÑ-´±«®®êɳ*lþDçk?³îr´¿ãù‚ ìxí矟W‘ªÖìBFŒÏª6¬Iá¾ò+â’‹óÊÆ'[.\ͺ› +œ¿\‰Aó× ‹ãøºe :?"ë|=Ñ×öx^ wt¶jÏÏ@ïxœ3±zÍÁÂm{¸”5 ¹iÁBkU³ÊƒÄw®^Xü´’\‘òÌð¶ýšÛùÈÿœ#Ó¦…ðWA~Û]­ý¦^{f„ÛpMI¬ºJ+zñ¦3ë·£y›T Ó£&Rõ’• ™µ +‰ŽT²œó›ƒVóäÈs-¢i~–nO+Ž;N¯Š¿¹ãD`ÿ5C¥.)kNŠÏ9陿tÕß=îçW=ñö“Ûrž&>9ñ5@B|!€½„¦eCûûaXâÏÌ’{'yE÷ŽM +êéÏZÞ^=e$¼Ü¡€·íÌΨœêá䜾ù–Rt÷˜›|62Tû _þèw³èõ¿f¸_f¹}Ÿ§Èø]?´|ÕÉ×ÝÒbsNGtˆpÉÙËÛñòhÛVléŽQðÁ­ßrAóvÈ¢9ãàqð®›Tzf ùí÷ªŽÔ¸´_'{ +oíyY¤%;9£„¿Ûñ·¼˜ª/a2üË$³$v,Y ¹c=µw–u âm/¦68|ºng‚7LØ×rÔw>Æ7-»> +h=¦QgŒ°Œí “¶ê¦"ÇbŒQA’fô°¬;ºl{Œ^rSšÇ†a¯F%O¢*fýšMÒ}Ô7cQ‹ÏŸ@§Ä0éÏþö¬ŸåðÜóÒŽ7±ç½ˆåµç±x«hÓJ\vÔB(_rÑ€3fFcÔB­Ûc>…8]{£ø¶'JA+dúÙS*BÞŸŒúO38GgÎw<ЂYUýýéXüGumoæMøÒ€’Yj₟©ñÕwÖ¬ÈÚaõß3¢ŠË~zö¯^FÞÙ‘®Ú'aàÙ¢U1cáÃzaE [S.ÇjT凨º›S·Å¯ÛQ¥+vtyDß™µã˜0‡5¢ç +ŸþX“t÷–‡þŸ¦è?38ôÆa5±š›•\UÝB•¾¼w²á݃s›£ø®¯ ì¡Ã0³bnN ÷ä\°#“~ÜPëcÊ´R3ÚHX¶S›ŽróŠ™P›ûø#=e"U\v0kï.ëq•ãZRÕ ¶â‚ x´ç¥@޼î àäU32oÁˆ+[°óñ+žžîeŸD:eíçøå’¶°V%ŒXózBɧ$VK–µO×Mé³ZÝ0¥öFOGæ¯ã=ÀgÑaØû©¾æû3Òò;{î¶ü- 9k¡7Oj‰¥k>6ycŒ‰YóàkW½èòE^õåɾª»sÊÆgNnÑ™P?à醋ܬgÕÞ±qvF©ð½1rÓEiÛ÷#*þ5®> 5g-ÙZ>ÂS"‘‘ÊÂJXò‡0²=J„}¡Ÿ'ñ ƒ ºaÃ…(ÚÃ5Æø;«€¼^ÖÃ36ðüyËó°üjÉŠ¯Üéã/väÁ½zä¹êãÒgŒ¬Ö ¸h¥µDMdÀŠƒÜ¶7B}ž`2vlJÔÊ® z¶æÑþÉ5?‡>mJG,óŠà/£¦RÔ,¡/Y˜1"×ϨPésztîјì˜¤Ý˜þ^sÄt©ß~tÖgÝ…ì¤e/Ô2«#fJõº—Ҷ᥂½Œš‹³±º´lFU®ZP%›|ý²[5aŠÂJ|vÔN®úxÜp÷ð‘¯Þ’ÐüéÈÛw–Û¿6ÖÕ5®íEu¼Ÿ‘ä–4ÝQ!À_öÀE謃 ¸|ÛÖ‘¹i…—­Ù°uw[H&†jio]pé?Ó¬þÍX›UÔ?tÐó~×#SNë‘™ç¶bóËÀy+µaÞÌAÌYx°åX-Y±±@ ZýœŸ@$„¥ÐWóBù¸ŠZ<6D.è©Àí±Økcš<ªÇ¯Z¨M±Ó²9ÚÅ‹:XsN>~ÒÒKôÉÅ­µŒTŠÚfõ¬¦@wgÒ¢•¿i#4®;ic*R¡UyžÕ˜õs°[¼dÄ—„¥€;î®Ì?§‡Êo¯Ú µóvÑÓÍ\å³Wýtزƒ\q3à+Fç’\¿æ@,‰Kvhîʹ}T‹Í§uæ^@åÇŸØ4ÓZ¶äšÖ²é'w¬z‰Ày'µ%jg×½<îö8¯k3HGÇj éÈÇsÇKjÝóS û£tÔ¶Y°` 'a óZjý¼‰Õæoù»wCâúG1Ö~Q6Æ/™ 9^Rs`¨#-0Жº7FE­;ñ€ð`ÓÓ4ÿ懱úׇ¡–¬Ý ¾Ì9$‚0©&U}œî1~šéR|S [>HÁ–·=}Û /Ûà·}øú iÛÃ%#"ïCß¶çGUny°Õûÿw&U»jÅTLAÖ]äöI~ÿ¢—M]r²Û¾ðCˆ/ù'–¿·œ¨#¯’Â%'©aÞÂéXö):ò=ýõ‰+nBÛŠ ]÷áۖ혺5 ¸âäâ\üŽg#BXÚ¦§›5Ñê#rѼ‘R1«gÍ ð¬]À˜sõò§¬f‡€ønÒ¬ ›†ó6f[l¾ª—̸ªu'´`Q?Lt ì…Ùü­£3Nnw’#\ó“Û¶‚ Âê1㢶-øiˆ ƒ¼â¥CMÔš‹ãrxñŠ—KX´â+6bܰâÀ­¸šE+¥m3(\©×|Á¼‹ÚºH÷&¸½[AxÅ‹o ãÞ帴©£ž«~LÓ?‘nÍ—ˆÈþy¦[y8Å“í9‚½£^ £'ET¯ZÛÒæu- UëÓ阶Z´qÐ#rR©šX}fVã‰'Ì w$,è I¡!àSoàVLc<ßö›·cù9j ×ͨ‰õKfdÛÑÙóÏS$ø‡ wÑÃBFmÜXœ +Þ>Ù¼KÒ?cã!æ<ü²“E<R‰±8¨Õv¼Ÿ7!³×dà–—_µcÊ¢Úö„˜öKÝt6¿S_Ÿ×·¾ÞtÄ82¦µ6cùzu„ÇX«VQGA¯¦‚2ÏÕÅ_8±c!¡&¤á Ä´äá' ”ò œ^è—0²*^= XökwSÎÍE•²öo²‰;±ºôð¼™Ñ4¥â‚ò®ZO?1Ó×Óô j‚æ,Z 5‹fZ󊓃Tq' ýÄ ®Ö‘ +­]èˆYœuô0"Vû¨š2£¦´Ì%ìQ/wÉžž®üu/zÃ$¡-yQk/mÚ/X°Ö¿ÞÇ÷F¨ðƒX~ß +¸×<ôލ–P4¯#Wmº)­»~bó–ß´ä ÃZRѬ…Ѷh'åøì  ñڦܼæf Ö}Lôº—^rR['µø‚ñ›oyøü#üƒ“²$AݘÊ/ ¶îtGM]8‡ˆ™iîähz@óN±pÍ#®Ø˜à°’è몿³bEWmùø¨Wëà4\ ´?;wI·'ºú7,Ò²›X²Óš—l¸²9Sgêê‘çPÛå€$;%ÄYk/kL=L×s›"Gk=víI ¯3béãÍY†úlÝŒ LÙ%ËUÙC’!ȬJF•²rl]ä§¾^núô°¤eZ­åû5Z¾s «ÌÄE½ôð:3?Œ‹ ;!¡lÅÏ!t”b—‚UèTÊÆ HÆ“¤ˆ;Q×ì4Rɲ¾·kÇ+ìÞô1¡sfNSX.ª·  Œœlg0Ÿ¤ÞBU–}£&µ>ÛôôÉ6<ªUÏ a\'„¸dCsßPsXÚÔ«ºŒ’ám·´È1`FŒj¼¿Ú6l‘Úè +¶®NÆPäâZñ7ñÕÐ;½5ÔgÔP†…¯©÷öö¢.ôK˜Éø÷4‹Ô+d;,ùå=õN‘¼ÆÝ«hôõuÏZhµÓdÆ‚_»îå2WbqÔ ;­ÝÔ7Vî~p€ZfáÒ§”ä¶9SrÖÊA.¹yŒý°@ñ5Òc‰Å|à +ÿ0Åî=š£EŸ¨{TI«4ò‘e8ôTÜ4cëe¬û=Ëz[@F-òKpY³JJåRŒu|ÈßBDÔ¸òM?¹äæâællдAÐ9ªâ7Néõ .lÁAiŽiýüˆ‰Zå×ô´Z¤J +µ÷÷Vyeým¶&›LG³é¦>­?ø^ØÉ~àê뜳‰ÈK^6rÞÏ%ÎÇvÁCiYPáë1-±ì§u.øb¬æá¢Ç Æ!·Ö.1˜†²Áæ,ÇQ$R ÒûèvÉ9tïR}VÝo˜:øK•°»qÆÀ-¹¸¨Å:<â&6ìLqÅGÞWûSBÃf˜N[eá‚¢Þ°GHòûPf™¸Î6ÜpÊúš'­}´ ›Tà‘ €½C +”Kªâºdbt@ÇE„Íøš ™µâæ6Çú ¡¡±Ý™^ûö„@¾7Éœåô}ˆRÿYeJÿ½ÄU~šå ïN1™ë!uÎ×Û3iè²÷P³&ÍÝø°µ›<¢¡”͸ùŒI:sÁªž6b+–ÝBÑV°ß¶>Ö-œöpàn1Óg6ËMÒ1–\8³|Ųáµ)½?ŒS¥©¨¦â~ªþ&¹ÞVC¼Bjd?TybJM$(æ–FÝðµÀoÎ;¤·òÍji‡Bn‚Èä,‰xÄ!kžÉȺT+ßÚlhš=¾r¯T Öu›ª‡hŽl&Þö¦¦u±.z\Ãþ£³šñ“‚Ü“¹æToõG¬²OÎ,qÈÚ´ÆN™Ôƒð#ù S&¯{ÞEuf‹ùí|†#ˆQ?«/%œ”þ|Ÿ;uï~é±'—Òç¿hø‰ LP±<õn±¼lÅ–íŽÁ+·躙Ðö  Ð )b’:¡>ôJ'Õ5êzû +ür18b‘KÆÍ±eh¨EÁêy#Ç ò;àwÚÒ“PÀ!©325kÙ.éÞë•L bƒLš×5½Z³uíwË">ý¤[­eè%âR%—¬b÷çûVá¸IΛ²òªÞæavW¹©éWÿÜ+‹ÀÄ¿t~þŒ¦²dÓ§ôÒ¨–\1.…$M+9m^–ëÖJanÍ Ì8Ðkèe%š¤ƒeý¦J±8ØLEÉïa€´Û¼$SÈ3ã0²Wõ¥Ø«¥¹°«9ég*òáçŠA÷xHî+Soß,çL9{9‹1n[ðàf ȼ‰ñe$ã°-âÚkØd}!—¬-â-‰hŒë°S±ºNpº(ŸömAåÛ7“ãn]}{²²ó+©ƒz³ŸÊ}ç‹V eÖ) ¬¸ÙÔ¨[;m%×ú-rž^o¤ ªª$=ª|I¯¥–Ïԧб²7 Œ("½m,í¸ÛQE|P[ˆ¾[œºX]PuÓVÿ÷0ž ät×hÃx¯VÝ·«Vc\²;Áéú4ÇÞŸf²wfÄ–ÍÉ>ûJ O9ãó.¥X¯P£åbyÕSôVÛ¯lÖëP2¾8SŤZ‡»ò¬C´œ Kq;,qìOåóÞnžÃ`ì•+}Œ^Ùƒ+œ þg-íŠóPü¸eà÷âÔ©´w ŠòX§‹«äßß~ ‰ûëZáñ—/ßUäÁd"X7ô¢ž¼NŒœ´)n“àҎJ„²Q(U-!ó÷K ¬L86pÑa¸Œ®ã:W‘íÃ盥—«+EÖT üZ\!ùîÖ“š¸«× +ãÒR‰ß‚ÀöKbÁxsÈl”­xÅ’I#·}\ßñä¥ÆÍ¡õÏÔÁ³ PâÌ£†Ûù‚²îÊ*~©®UýTR6pòÉKȱ¿¯Æ=y<öø >îÒ=@ܧƽˆoþ®ª‚ó;4xEß#ÉšqpQs^6֦誑‹4•"®§ˆAs&âˆîGTîb•1ŸÉãN3IÆ74¬æ5`ŠGBä—ÊŠ)ß_¿”püñåĸœ„êŸ*ó×±M¤'‘1e´¨\=Üe¹åk–ýªÝbÕ H(±4Ø)ê µ‹ûWð’¾l7יãš9D{ïyR_A;U[ˆü¡¾}.7½ó»·S~.L.»ÞO”åà¨7Øš +xòSCÐ,»Á:$vbýPŽ$T¢Œ<´ _jª®ÃIñ -Ú3OžŽ?|Xy²¸’ÿSaõÀw÷âþ¼wþR~ÜËÒ± wšâž½B@"ì‡Fñ~‹ºon¤·ÚÉ‚ú R¶Zåï Îbɼ™\ Üq%)•pêᣆ“)ïß—W+~Ì)‘~ûú=éØÍû q/’°ÇÒÇ.ÜlŒ»þWRcûØn¾HÆ((„òr½H=¦¤”Äl—R +“ôáÌžÙ*/”Ú¶_/«œ«oÓ^hj³žMMÁ~sÿ^ù±óçãnß,ˆ{ŽûíReÜÉ“×ã®_Ï:hQŸEûñæ½úŸ²s0Ëz†ê—Æ„¢ýÉ®ÁõyÂÀkõê}½CªÕŒöÊ ±lMáNåÂ0æ›p„ö–à} +C»}%¾¬ÿ17÷Kfzó¹iÅ×å]ŒÚ%;=ç¡CM:9^4hm  +§‹ÐìÙ¤|èVA£â§”<Âñ´\â7/ÞuÄ]~T÷ýÏãnß*Ž{•BŠ»õwþzA\Vì$§x¨ik|êÞvÏ»À®Rbå +ŽÛ¨Ãó—s:iKÏÚ‰¡[u0ïÙô’îo^¼ǽKÇÏÎç~ó:wùICÜo±k»Q÷à94în<úØÝ°okëygzÌ¥.¹ 2k3çìRqÐÚÏ1©zjdÃq0·=q±4òKq‹ã§”ɉûIĸ߯ÔÄ]»Ó—˜J=öà5>îïûíqמtÆ%drŧóß{M9ù"…~‹U)O’=ãêíŽ8¹4Ÿ¥ŸÎ¥ô<¦Ru/(,ß[0fìf^Õðwñ)Ô)¢² +{Nܾ_÷ððøûLê·Éù¼c¿\Ê‹ûþ§qߍл€ˆûãRõ±oп Q†÷†¡ÑÞˆUïšµIzÆ­ŠN= fò=ÙTÉ2€$Ýin§->iBŒ^j…]nhµþ^\&9ù6y23_t"þ âØÙ¿2âî=ÄÝ|Xwöbö±¯@Çɨ¡ëR"ñ¶« ¿â ‚ôýüÂ>±¶ŒÝ,AòßÅ®ù4³F~ö^"æÔ½×ˆc)9¼ãé¹¼ož'¿ùózɱǯ`ÇÞÇ‹O&Æýu«&î~2æXF½íd~“ççNrøUŸØZíÖôw.ŽIT«Ó}#V‡AÙ34ƒ'õ¬”u2§ãÁXÿ¦6ã™’êÞÓ_¶øëFõ±+šãnGO-V|ŸÛìû»¼Y~[ÂSϹX”y <+j&•{= ýîÄÊoU¶ ßÊ«í¾–]A»ž_I¿ +¡Ú_µÑo¡4K›¯JÒk¤õ.ýxD/éœsõ0§ ÄâY3¶8¬ÃäŒj©eŠ^¦´O^Ñ7dªcðÕ šâ.„j}VØ8x)1WðÇÍWÄïÿºÛxìé;ÔÉ”rÑo)Õƒ¿—#G.WÇî”ÂÕw:hÖ’~õÅgS§ô¸üiuÓËe;ªn}”Ë[Ed½Þ$«ü$®t´‘À{¡Í½jD]­…:ÿ,¨“}wãQë±ÏŒûû& –››'dþnC +ã…]Ò÷>¹ aË…‡Dm]hA'¶èMB•Z”ë{Ä®JŽÐ‘KåXQ8í]R}¯,¿’QÆüùm:êln çJCÛÀ&U—ã8‰AY¾à‘Åô7bl°ý¹CP}= ÆØuF)å“°´k0íƒ?YÒAôÆW·J.gç¶žîw_€c”×À0Åe$F—Èa©‹åbC£u¸¿&j'ÕìàšöGѵNDá¼½`Ääú¤¨»Œ[n4¨©­ +6,•—Kût•â^k“¥O@ïB›0dÿVú‚Ë“¤û$oEýCéJ‰¶Á£Ð㢖A⦗?RÑËnXñ¬Ùû¼fÝͬáiõý½ÝÉLzßCÁz¿ ḓYÞ{æm&ýDfi÷/Rà'2ߦ”pŽ¿/ï:•ZÝýKA«â÷6¬÷Ií6ÚºÇTœ¶M¼äDU/9°€­ ƒ8áîÁ)yÙb±8«[1¦‰£Õ(º?¡“ìyĹî¾Ê£ýúçÕüc¯•Ä=Oì<ö&þcy çoXv‹MÔ¿¶I†j&Õ„¼Ièå’_5Pëç|DÀÀ­SJÈ/††õMâ Wb+[…R]M—PžÊk³É"_~Vù²Â¹Ž J1$öš~¥ºL£¬u@a»¹¢c¾ÌQ(ÿZd>Í2yãzR±Ã0D2šõ]F³†¬î¯P‰{³å}=™ƒý9ÒacƒTahÖ$cy¿Òƒ4Y ý@'‚?Ÿ2RÊç\ؼ“‹\t°:½½ç‹6bÓÚ‡º2ÆcN»¯¡»U7@H`5ý-á!n‹†Ô%äncjV~³•b-©êìIa’±]öl—õ½×øž-Ö$‹äºj›Çi™ öõoŒÛWœ Œu/ªuo¢K±7-ö,ŽõiÜVY¯Z; ’+zúõ¥‚¡ ˆÑã/Àó}é X^-®þ•ZJ¹UØÀz +!q{ÕR„Ë&ÆTèìPOy¼•øæÚ¢ SPâÊÃ:xÜ(‚j»= +QW-nu)zëUÝü×rtÊD©ô©Ø19ÓØƒO± …RÓ6(éÏQ‹xi%¯Â£ë{µÈ´}³èë&.yø¸5¿ä0ÃlÖ®^>)­¼×ÜX6a ¦Õ¸¬³!léFŒh(%Sv>fÂÖCòëÙÕaûu¯ý²V½mî*vjûÛÇ Ô’ “µô07Ý2ÛžCùà‡—l;[—Logôï"jÓ‚Ð<ïÔO˜ùÐQ-½Ì£¢Ûe]•ª¾Á2i—2‹OW¿À`·ˆk<¯¼‹Å ®Q’·ìnUž°w0cX*)˜°*º7ýrÛš‹Ç\4ákG»º?‡z4G=6 ¼€´úžK\{ÃÑßoW #RL[«‚Ao{÷Ð(„ÀŒoiBüÒTú‡ ^æwqž)‡d»BéIó:jù¶[·íÆ>ŽÒà³C oܬô‹>aÖ9¿¼áAÀȬà2ÏL4Âü¸¨ÂÆz5¤‹—lã^ÙdÔ´3¯9æRVÃ$Ðî [ø1Ê•~ž¥QƒÈêOatËaÛ±íG×F ˜¢i¿¨gÔ.åM;z;ã|ÁæH7ÍÇ#­û™ð5?¹eÁ‰¯šw*#v>tÆ-•F¼]äÕ»ê£âç,„²7±aÙ‰([Ðg-÷G°¯³BóÖÑoí>Bãœ\VCßGM-I‹.|ý„C€ŠÕt ²‡üÊãRô9tô"·óÖ£g—¹z°Ón&hÖÁhÝ óøgùÊ-?¦nÍ,8˜¢Q?Í÷Ž}˜ûw'9½Q ì’3+]rJÉx¬ŽY¨NƒdTõtF=kXk¥(&¬^­€Úõ¼ê.ou’Ãß 19QuÓ«?ÿB@\ùnVÝøÔJ-û;ÐH[ÐòKRí¬òf¬§âz¨·þö¢ž^5ñ!£JJ¥’|´e•=߃Tܺ±%qA¸¿ —B^‡˜Ô ³P÷´ÉYEÓZbþšs@¶ìò×Ý8à‚¡þÍüpáõkgñÁ›òi¢kàKX ÿtä3åå.h_ï¸hˆýQ6s?À`­9á€y¦jÚ!ćíšWËØ{`/æŒôæu£cÍŠ,Z;Šv<Èš=ªzßGÅ®'ûfÅbÔ8¯ƒ¥Œ‰Šo¯š³>‡õ{£$Ȧ“Ø69Ôü,Ô_ÿüÃ$™µ"×ͱz£eÍÉÉ{DÍQÿŽýlÊ ôvÙy"!¾FHÄ-7(k´§ðêÜ‘‡®åÍ® VúŸrgŠ‚›0JCjRéçYîðšœ6Û_wRPsÃË*½éox°ç@–ŽR:ÌX€Sö÷œ\¶á&6ͪšM UÞ +õ•\HËnüOÓöÿfhœÿLÑchàá$•üeNäù8ÁîYÒ5¾™ê)¼ê)¹UÖ=9œÀ€>Ïs†·ÇÉÐÓDäÿ®r”_§‚ kG弪"!"/¸U×<ýDþ™Àµÿ{†ÊÜÐQ ¡jÕCjߟhö#"çþ ohkœA]qá§ô°Ô =¶le¬gxÁ/͹™'½mÉFmÞ%Á?PGq܈êO£¨Ú/KçüPíÍ-=*'–û‹…Ðô+lÑí#¾d] ÏØ6£ +”È´yUgÒ´øÂJ.úkÏÌ„lÛi°=*FÜþjÇ„(<ô +>xáÅ+š†—n^Î~íãnJÉÓÿŽ3h_ˆê5mù…áü †Ú‡ÛöÎÌ]¹eßÇĬZð KðÿíÚucª÷½°‚UCíóyEÕÕØÍk!oôˆÌc„¶>lî‹P·aeÎ+ZžOõ·Þ_TßlÙÑe“C-/Æzj®,èaÓ2`準¾¦ÆO ‹þœí-û+ÒW{k6öœ-2ËAÏþiQÓœºí$ƒf‡ÙëzxÖüpëóu]GÒš¹gƒfDe-œ¬Â?ä°ôÓ[fLù×qýà ¼ngø05;vdÁ¶–¾çÆÕdmYZÁÍ#‘ÙÁ¦Œ mSÒ0mÏx¿f*Jø2ìûÐ>bë/‹¼ãfÓ7\4HTM_5T½Øv7gîŽSP[ctTÔy·¬eì¹ÑõËÚÖ7aaåõqAñõKóÛ]ðÍ7²4ö¿–U4kÆÌÛö›ŒÐ¼ƒlËç0´eG–n!©ûŽŽôÿ†ÑÀÿÎRè±1.Ût²±û>ÇGïº5«æ¶äu+$}ÕÒ‘¾ã†åoÚ!™«fлyuóÓÏ!"ü`Ysàí:›s>õ‚¶v¤î8ÿL°¸_¦¼¨®ýÕ’¾3kÏC'Äâ²eèLß1€ÒwÌ ŒEkü’œ¼aEWì¸pÕû.hîB8à×Q\ý¡³3gVRx{YVñt®¿ôö¼¬ôÖÿ.™_§„U $+ªìÈÛ÷`Z÷G ¥ŸÃåŸÆA5ëööÂm¬øÈsåëºe…åO U½ +KË’wÝЦÏ!*õË8ªmÓÔø~ÈŸRÞ­y¨ÐSÑ¢|Õá4“³¢“¶GÉð¼êcÛºëÃ6îx U°3ÅæíMsEKö#/ìæ§ rÀÃEÃãµ#GGæ—©¼mcK†¡#94Ðüˆ|}ÚB(|`¡6î˜pE{6lid°õÁÜPÃEãýeèÅ’3.j}4)iºof€ÿñ²P_c¹xËÖüv„›þÇ(#õ§qnþ_šÎ¼;¸f%.+kî/+ªîíۀɇ®£¾“-I‘¡ú„ÉÚØ8µ<9ôá›ýಮ1>:”{~Q^|mÃØðrÇÏÝ÷ ÊwàÌ5=ðåŽc8rûª’•µ>ŠñâÕ‘®‚«ã¢òËÓÒú[¡ÀÝ>PÒo+ +pò–ò.ÄÉÿÓ‚J>­é|û£‘üSSø—ŸûÛœ®%Ù-¼¥Ÿý`'5î˜1¥ëÚöä%yùý° ûº‘vvŒ“õë„°âê¶[±¨î(XˆÝóº©-yÇÖ™¹ªj}±®>_V·%i)¹@ §£ÃÍÙÿp8ŸÎ«%å;UèDó,r«nŸ%ex´ô·šQ¾3X¢¡€ï±Wj…N»;‚ŽZ~[tÝ6ˆqikjýKu5G+\bpžV\mjw/¿‘­½ÿ÷–¨éHG(4ŽÃ"¶+î[¦p±ÀÇ8ž}W 4cŠâ–Ó*½rÄ£`”„fo Ab­SðGú7ùçt¯Ê.löbYǹ¦rÒf7*Ì1Á+Þ¥%šGÁq‚ßÝÁ=]z‡¸¥l*?»ùžðÔ/Œý¸(—”’é–SóƉYÇ +BÞ± +Pb“wlj1kïw +.Ü;Ç(Þ}Ú½®nLúq„òð2aÜ7¾Ðýñ*v¹¢þ¸Ÿ“ó“– ù¨§—ÏSŠ<ÊêøýÑò;+¯r~^iÍ;½ÛGx¶ÜËLZzƒºy0LŽÛíÇFí W'îb£÷‡0W;!——:*X†Y™«o±OºÏÿÙJþF.(ømñeÁec_ùmç !Í,!&N7]ë%$ý Íy&&Ì¿Ì;;ß–ô½²&é{]}ö/û}°‡þ9bê*ÈãÌÄÿh[ó¯X¨åžò[C´¤¯§¸ß͉ҿëÅ=ýÏÎ{è=‡„’gžº?‚3“r-L¬mŠœ?ΉüN̹ÿ£¦>â‡õÎì_]Jr¦MÊ.]ï!gíöT'þ¹\à .òˆv&q_ üv ÷îæû¢‹KåÌãµÕ[½Ä„õwÅwûŠ7BoiÒ¾ŸfÇþ²òí­Þ²‡ê–ÌŸvБî9.tgøÁ0êÑvɯ&eZ+ö(ñé»ù×¶º²Î[FK‚:B‘ºQ_qÁ£ ¡¾¬ÕÔ|YáQ|’yxàˬ+Cذš§ª£k §²œû÷lSÁ£?WùŒ“yf•y¸ê‰Š“xfŠù­J˜øíö{xM6rþ5äúêHÄñ2›òy³¦Ñ%¥æùÔðÒ…×é¿lö\ ®Ò‰N“°;FJ¶ËD$—ª©=0_S÷×*ŸùQÇÄ[†!Ñ{½¹×ÛRÏü¹ÝôÞ3ßôö`–ƒñi˜•þ +Ô¥&CÝJRáñ" Ô ¶{KÂV:‹~÷iù”Оé>M(³0ò]s”Œõ®ü‹.%Ç.£åØ$äd«ñØ4R¦iM:5͈û±Ÿ–µô¾ÐVqIó¢ü7ecù¹Åøõ­^RäN?%z·£®/8½Ö¿c%DYÇñQ[}¥×ÚSšoMûi»rÃ)!$ÊEXç§h»·ú¾MÌH·MãÆ¬ãe·]XÌî$l®.ãÇÙš¢ßìRdý=üþvòqùÈ6Uýlvw»«êÖV1f€{¦ÿõF:Ò>Å)´Šé[ýèGʺœSjô×»ÝÐ++=Äð~nÉytÒÍÿWÂ.»îŸá•ÛÅȧ†öÌ3Šú¸ïgxñß«›J/LòËu |ë$=Ó6EËtN + öfZPÊ)1U?Ä};ʈø§¶9û X÷ã8&ZÕœñãÁ6 +èu¦y¸òަ!õìZgÞÝýaèãõî²+Ëo ‚ªW–ñWõ í¤m3&rõ-âYPAÌöΡãŒcû‹¥×» ñ?¼ÅÄþôÑP/ +„æXÍ ŸÏ4>9;B ûaïCÚ9çtèyUJ*3ïÚÍ6å>ðëX0Ë&zŒ™ø--õúWôäëÿÆÆüÛØ žB+XDDÃ/~µÜ‹ú²»_ÏÙ.¼¹Ò‘tVVóüÛ~òƒk^¤þlӳŢ_T­UaAU“Ð/gW8݈­®Ô³cŒ_I…i?L ÒNí#cR|º®-ÿª_èôë@þA<Ùúo.jŸ‚ÆÍ¿Ê87ÎI:ëVR‹6‡«ž/¿ÉùÍ4\õ`aªŽtÌaS÷&qÉ=Ä´ê ÿèå,»_¼þ¡äÆú{Èm°Î61*Ú>S ô›o™FG+2Î,½Í}ð×6‡s´Ì@¾Ú§Ðð²øwucÎùÃ%.ÙüLý¶üÑ´ óÇÀ¼€ýi­¦Á.Åîå^2 BŸìõC;§á‰9*áÏMSÖIâA·ðv²ýZé_ll³K©;…—ä5±ßuTÞúFÑ”qÓo`Dåaß,tB¢ü*" âT¸§a=JZ1ð÷×1y»¯à¢¦%úë.ÌÿÓ‹}üÍê>î-ëÛ)~ùÕÝ!zÒæ1rµqGÞX|IV—V.Êÿi©µâòÞ(-AÑ +½¡nÌ;g—P2÷(ñ¦âs÷ 6Ôf¤eñøî­…¶Â³bÀ9ÓŒ,óXuärgÚ)]SÔ×J~âê²O¿‰[èCE| Å~¥ j¶|ëìîâ«‚ #Ì„o_T=ùº rï^ÆË=Èûãµ—¦„7û1‘ ¯Ê®ÈjÒO/¾Ê½ n)1¬ã8Àè'†WùWÞäþb(½j—`buo‘·ë +#þ¡}væ\x]x}ç=È?Ý…5u)§ß‚×~öãJ/ävîÙ·c”¤ŸÍ½ä„õöò«æ¾âkŽqHøVWÚƒÅöø«ª†ÄŸM¡™V}ä|AqøwÃŒø‹^ º¦1qÎItôÁ(æ9X«,mGþ%ykᯯ°™‡¨i—\ W€lÿøTdPN/vMÓKÖ»ϦØ)ßLR²ö'X}{Õ]}séÅŗ몆¼ó+oŠoøArJIyó-EÁ±¾ì‘± ¦!bür{ñECkæ©ÅÖÔ”uϾ^hM?½Øfo‚˜ÔXñüßm°§?íV'úÔô" óIó/ oÉëS//¿œÒ|â +ª÷'èÙ#ìÌ{©i¿h_Â"7º0{èð¥w°pYsù½vtÔ·„èß¼.bkýTÌË85LŒù~½½è¦eþÈ2dGE6#¢¿Ÿl(K°ª„¤íaJ¼ª¾ø‚¢>ÿ޾£4jãCy¸u¬<âã<©âˇ¸3FŒµÏq`@ÏôÀÂÿ9Eˆú×RSöoúÆìˆ–œßmâÒ‡l1±›£Èø Qö¹=1&Ý,m „f²øç.56Á,®zp AG{ç©›õm.5 ½?‰Šv+i¥lyG‹´Êƒ™Êˆ $r{ ëæÆû¢+Ô×PRZ6ðÈ|Oh‹„š:GãS‹H^§ dë´ÝATøjWÅõ;ê0Ó09Ñ6+BnO0ÓvÇñ1+ïàwÚ!Wö†qÏì€ëM“„˜åÎÒKÆððCCKGˆ­wzqO”M?+›ÞëC†ÛÅ´¬ Bˆß¢dK›óέ÷á“÷&XÙòÚ‚'‰ßL2“~¤D~3F‹ø‡œŸòã^6Ö!á—Îs΄ö)²J¸å›ÈQfÀ€;ŸêßÀnÌ¿®üÝ8DI0£3ôŸ©^ÒâçÑ íð»›=È{æbÜF?7]óuw¹ óܯl™§‰ æQ\´}‚³‘»0á›=åWÖº‹®.¿Üߎyr0ÅG/÷Ó_€uéA>þjómù••7e74/ ·7>`£7FHɽ¬l ©gr–®9õC[â÷ë9¿,6Çž6öæÜ²#REÝSý¤ ÿý¬¨ôÑ'Cóç!cíMÁoË/óÎlvA.¯wWÞ^誺/i…^®L¹óTÒÕSÇzYPE-pÎÀ£¶ßçÞœ¤G~ß »öÏ9öÓ¯MbLô‹ê¤såÏ~ÿÇ\cÑÝc æ—ßsOÝsM–ÜSÕÅþ4Š{ø^äwʹU«=è{k݈‡–Ib`çû)×1KÌukè†ÞîÆ'}ý¦:é¬þ5òÞ'ãÂÊØã0:yg *Ù''—…f¸+ø(Ó&FÛž{fk¹Ù‡ŠÚîAO&'L×eŸç&ý¸ü®è¦#tneš’¦í€]^x‡zh™&e›úJ¯¯´gý²ÔZðëzgÉÓê‘G ò¾Šƒ\쬸fŸ¥äBsÒµ5TÛ4!Á2T|{åUÜå•י׬S¤d«”Y8W[ya˜”÷ýN.õãBMm@ÃÃYŘ$}KÒ5íËüNjݕw׆Pñ€»5^‹Yx ¿ëP NÖ9ä?¶x¼?6¹ì“UÆ©$,öd×u$œ2N cf›ó#Õ¯sÃj•[Ǥúõ̧õp‘ +Û:Ð[tÉ­!fí VG‡HQÖ)z†WÍCLÒRœRjÆÁиaÄï,)Õ/g–X§¹E;Ãôx¯\„3ŽP—^U\Z{Wye³rMÓšxZ[ŸpÆ6€‹ñÎ 1+ðÛ[ïrÊ)%§Œ¢,ãÄXýËüßwFà6ú ×Mãø$«LSµ”žSÖþºØ½µÓ‹xhî'Æ:ÇXEöqRîbGÉ-C{ñ%×,-ß.eäGÏwG±QúNX˜ª­òÎê[ÔàJDØà.¿#†ï7"6F„[ƒ¤g[ýˆómù¿n}¨¸mþd›¢$ûÔìŠýQø£ý!tŒKÚÈXëbä.·#¯)êò™`Åü8ËOüÁ'«'[å´å~zŠ´¦ø´mŒ–î¹Ô«f”ÌTG+‹›«)?/¯+ùÍ8IN7Ï’RŒchàÍô²£ù¦úC•»ØY~¿—óÃ$?íÌz/,Ì1Ç‚é›êB{z ˜&˜E^å‹:çl r­ ©hCÝ—¼€_GÎùZÞ +Y˜^n-»¹3Tpck ô ø¼ÏLýU÷]ÓÕñ«½Ðp± çL?èOk«üJJÁvOöïó Ï~Y{•vuëôÉöÈ=Ç46)´÷n3ùI]ñc‚‹ ¨©ÅN)!Iמ}~ˆñÝ$/íWysáeU+ì¾´¹ò&4áê7#¼¤ëA%.sýMÁ奖¿kû7}Swe7ì2jqMþ•œ{§ÿnÖݯ­SL„WÍŘF áëÝÙ—^f^ê(»´Ñ‡~¸>ŒÞA‰?ýþ­ULLqKØ…ÞbòÁrä4+Ôå}Ë8#Ý9Ç-·+x°­B„uš˜bƒGø¤¸«½ü.ûÒÚûü+k]ÐkÎ9v©i’ž½Þ¾gÀ?õø•’æ™%§Û€Ö,¾)¹.á$}³ñu¤mÙ¤¤dËþ¹uœœdhƒÜ:˜ d9æ%v)»(´‡ŽáUùù½!rŠCÂ+Ûü[}]ú»¾9ýç9~ì7=Õÿ–×dýê˜fï ÓÓ׺0ay!Ù­aArjM‚IôÈpé€--c¤X›X3tÓ¢vÉIA í‘SrŽç™° †ƒ0c£w 7Í#U÷lbRÊþ83«›”þchPË$#Ó4RýØ4»ãWðÑû {ëÞ”]¥$þÇ+g•ÌÐòvÁw0Kˆ©ë½¨è…vøý•7ðp—%‡à–óPNáÐ Êžªûoq±ßJùÍS¼ÒíAl„®­ðÒ\]æùÕ·åwAž,ô*ÙPË4%SÒ”wQÖVî”ñªvQ;*®éZs.ˆY1?/½Ê¾r¤#—®p© ½ˆØ)a᥃iZ‘M†O1Ábwz‹#/D­¾¯¼%kÌüu¾³40LU7+ãò`Máým1êTÖâRvÉæ{øc1#é—1z̧œ˜åѰªüNõšœgÕPòƒËl²[˨ÎsˆÀK˶P±kýÄõ;üÓ= z´ÊcìU<]ëÊúÅ£££\†šÏj}‹UÏ#oJ¸e¶é»`â=2Bð½ÌÕ®ê°aÔ“¥7y¿ŒÂÃwÕM)?Ú3ÎìöW=ð©X§F€5M32³¼ŠíþêÀßû#Ð{º¶”Ÿäu©ßÉE _¡çDæÐ¼1)3Ï-aå[úñObz¾OÉEX¦(iKoa7^–œ7Ós6H)êæÂŸ×;+ï€þz¸öºêñ‹ªû»=èÇ. ³h˜·óq70ÏÃÌ`c¬“ÈG¦QøC;Èš>9; `CœRDörMßVþÐ;Ë,qNZYþÞ×ûÌ8ŒˆtÏÑòmS¤¤ çRAæ^šï.k,üuáUѯ¦ñêˆÝQäƒånè-]ká5¿š]¹7NIÙ%ŇæoºUŒÓ(ø¾ýèGÎiJ¶k–µLË-S|ÈröÙÊ{Â3‡¬¥Î)om +h…Ÿ7kjüRžiöp«rÓ4E)Xâ#?ˆÊî óòÏ;¥¤eŒši%$9'‰)¦1l¼q¼:Òn6uøæy’Y²=Œ|:)|~nJðäWÓHaØÿîðy'‹‚]‚‹ Î 9^—èŸí +N™q†–¾5yºúr#´Öö=m¾{w”_nž¬©vÍñªÜ2R¦q¹ö¡ê6¨û>5«Ò!b´¯áwõí¥ÝsÄLÀiöqä³ÏÒ¥!”˜$¨gÆqôãм­Ð[òú¢_Tµ9¿ºexÀ”|Ç1×o`œ |R+ë÷aé£õQtc€•ex‡ i©º*áäþ¢lÌ¿y¼ÈÆÙÕ¬rÉ%!}_FLÿÓ$j9Yç²&qÉ«ÀU ë?p鸨cÀ$.­h¹ rskñq«¹'¸ÚøÚ¡á’6Ç«ŸoŽážíWÞ]z“ö“±/û·½¾Ò˦QV–UR[½3Â)ܳ²í3 ¶GñQŽi\œ_O=ÖóB=ež"$8Tu”ånøõµî’ó}E×zŠ®˜Gpq¾YzÑ‘š ÝCb‘òJ³5À.ÑúÖœSêÆŒŸv!a&1:b³u°Nòî03Sѹ¢l*üÙ)”»$‚ +×”b Åucž}ß +¹÷ý +á§ý^ØmJP½Ú¿³ÖQvÁzŸEéPO)ôÈñi›°»ïö‹ù…—׺±á3¼Óv)1= å"ý*n¥_A/´Nbbv‡*ï,väV×%üÇ1KÊšT$oCÝ\î!<³Îв\2jŽ_Å©´N…ö?ƒ<uôÈ2MÍ?^nl´Í‚ì8‰ÚÆF˜†02VÉ¡JDrÊ8m'ä÷õ!l´G×1àÖvŽøµMü£eàr®o–˜î›¥z7çØ0}úÙÚ !ýP_ǵŒ##LÃwý¥W7ºË®»e ·- +È>½ˆ6Û¿¦yYýÌ6ÓR„>Òr«™~¥÷Ô2CÍú¼.ØX¿ +—n‚>]x›yUý*ýWÃÛÒß?oˆš,2*TÖRvuõ=þ™_+âx5šOÃÂ9gð)¦Qèc×4&Þ)!§:µ ‚‰†üËÒæÂ—œ‡ö¨ùh¯ŠY\`ã–ìý)rÊJ:<4KÙ·ÐÚºî㘥fÛ%´lÀ»5òe‰ò(¥K=ð{Kïaw=Nõ/õ»Êß/µ]ݬ³ÍâÒý \R`©¡aÔÊb/56Ôï=çÓ,SЗewŒÄT‹B€²+YÛãÜ’1AùYU)rk¢¶7ÂJ ‚×$tÈZÞÁŽ–˜˜ÃUJ…QŒHØE$yôDÈñVMÃÈ»SB˜]óòu`«ñÕñNÈ ˜Ä­kà¹4¡ýšXeæ)ø“Ý‘’ë êi@Í, è8UÖiB<àøløÇ >Æ2‰Š\é)¸µÔ‘u}ïúÈþø/õ/¼:v•SÎ( +íki̲;²ò¦üñî*Õ<Á…gÞ´ì̽i1Jp;£ôäÕ.äíù–œÓÓÌ„¯eüä3!÷p¾Q´+nÆ- ³—¸i›ƒ¬$ã=Ñ8DŒV4eüüùø*nÎ/öAl”WNËß#Fo0²í²4ðÒMkÖÙ×èÛÿz‹¹ñ/uãóï—y«FHZÀ=5WG:¤Ô<àaO¦Ž™ŠG†7i¿mßv)€©Y›£ä˜íìÓ½Qr¦qŒ’áQQŠ>¯ó˜A=oEEëZ3~Ùü½ ò!Ȇ¿¯tV…{ålh(“yU”ÜÝ¡²gK¯Ó.®w^µ]]`g Ó¿›¦ÿ⚤ç9Çñ1•ícðó(:n¶6ïgÝ+è% `.ÃL¬º±ð’y¬êéþXÙëì¾UŒMÞÆÅi^CoÌ4übìkš¦ç®ô”][ê,½¶ô¶âÁö@åS×®àØÀ&¯ŠDV Ÿ[S„8‡êE­SÉEùT¤¯’”·5¹g“£“ˆHËtuÜ‘^ëƒÝÞÀ&—… –VáœÅ¦ËÃÖÞ\6tä]8˜¢çùu ‚ƒf™¼±ð¬iŒï–ÓKÜrlò—oWËþ2Õ¾ú¸US\å°í*\®MM-q„ÌÃÕú'ëm¾E>Í·ÌB9@^9\n}÷÷=oÊ:¢SNÉôȱñ.)&Æ:‰y6Î2^ùÀ!!ejëèSĸAøÅËŒsªÆØïÝU·€|ZbãÜ xµB‚CÑÄ6OóË4¯Š~"EüSÝó£yëPµ·mÌ´Òv¦Ñû“ÂÒýQnþÎ>jx°y°êžU\õÔ$ÆgîŽ×Á¶ÆÛð;“­¤}± Ô8B‰Ý&Å.v–‡îѺcì†ß;èE>0¡n"÷'•vyMµuŠ˜¸ØQu¿núôÌ^oîÍà£Ò òiš™í” Ñ»rs°â†q¼òžizo½;÷ºE }Ô3+B{&nŒÓ—»”¯^;dµDÀ>±E:Ô!'gm¿‡‡­¿‡>µJ¨Å{œo4´…öÒõh˜P¿»’Z¹7‰HuÈqɵĩá¡7Gq‰ ¥ôx•Ïô¨™• }4Ïŵ‚¹€žš' ½qzùÊăØ­ ž^ñ߯–‘“5)``T~Þâó?­2)5dm*Â2MÈÒ½\^D=÷ÌspÞ%6Þ¥¥{iH§†TXÖmˆ‹²[M‡íŒ¡Ÿyô̪ÏzîÏÍÝCs³CÕĶHè12|¥§èbåÑW}¤_Í #þ³Ó_Ô×ЬfÎî%~_LN²‰‘OœãU÷FËï­½KúEÓõ]pO<ÍÙíg'möSã7º+¼“°çÿc —ÿµÁ&mLU=‘wä]^ìªx`—ÖãMâÚJ_3LcèDzƴŸ–:Ë/ø.iç˃)Â8„y¾7„´J9‡²–¸+f¦«[ʯ¨EÙ§Ñ<3ÔL¿&´/2)Ë6‹µIE¨å~ZÜF/.|çäšyùØ£d6’}º¶EJÏݯºç”áÓg—Ó¬bd$è½›ó/¯['Ëïy”LŸªëTµ4 q“¿Wµßß$º$”’c-©,¨¡nÊXaœ`”:æ˜%†Nð ÎÌÖC®É›‹ÃŒÀ‹ƒrV•WÍ€nŒ`#µï`w×  Þšš¼záp‰Gòi ™¶i|úñ +Ÿóe»®õãj]ãê>AÞR~Ç!çÓ‚ +zt<¬e7S›üël}Ü÷–)øó“5!8.´’>zÊ⚬« sW¹ë:d˜„­Aèý­¾Ê0Àá½Fep©®vs÷l©æšaÂÿX©o:=çU`³M£°h‹gVò`;sBØÊ(;cRXš5÷ìXÇ@þÏ–@àU3uäÒ †P°Õ[r'°Ä§yW›^¯ŒàSôÝÅ×üz&0÷óNc×Çú×~ äj®Wîü¸^×àPpнÈGËÅ—Þä·J©N%©ðþó"âUŠœ +DÂÉs Ãgî–ßZ]|Ù8ˆxêPR¡N‹z{¼)ª5©ðióáîù–Ž“Íö‰/¦ú·N}h@j‘SÅZÏ'_úT´‚C=íVòá §À4ÉÊY|WuMÝýUÙX~A^Wxqí-ü¡#t?©"4'cšdfíO2³ÞžŸE¥jLúaøÊî@éÀd•Ó"˜yTXà”€'P÷‡ /ºgŠA½dŸ7t§œR´§þ¶ÞWùÔ-kdZ¦k`ûc´D›„WbŸãARJ¶ëïù„Øè ~ô·}„Û_ŒW§ç„NM=so‚›k¿kâL}•w}³„”åÎô‹º–¤Ÿ3˜»‚‡¶VÝ^x‹‰ +(yp ÉÈcéבóJ\â»쳋©gC÷}—jŠ:²E‚O>˜¬xTⲎçyŸ–÷ªå+]å·%¼ØÓ~©Ô©e”š¥¤$ç)Ë5GN÷«YÁÑ.#¥Yfˆ‰ «Ø«iiÜÃ<Ù¬¸3Ûy­ù«kžúÇZàp¾–ŽmùÚ æ™C! 8Bœeól»/ëÒíþcŒˆ³V10^kÓZ?#A÷yM÷uý@&@o TÞŒwg§7÷âöûÌK®9lFpžG9^jn7O‘3vÆqq‡+µõ'ëuÍ~âW²Ìã¥÷¶úÒÏÙgIiàýоùæf›ªŽ¾=ÎÎsÈ›¹ÖÙz’SÁ­ôë8èYu‚U†ŽµÎR2œjNU虋„àÕ°`N% æ–‘³Žtä’ ¿/aA–»‰ 3²Öš:wgH¹+ýа¥®¢ëï!÷½Z$tŽØ¤a7ƹ¹+ƒ‚"£¤‘¶5N-St”D.¼……/½+¹i#b} +\ö_;5Mn ÏFY-Æ$ãW›ÝÌ©¢æ'Ñ‘{ãˆGn-­ìãFMíƦ÷{Óôuò–qŠWõq½áÅk_}^¦£ÜÓЈ½îÄ3º†´Kký¨äMc½æ1AÞ\rõÓº¨á-}Ÿ7øµ_–èDŸ¼*Ó>Qð`w¬è†g‘ÇÍß^ÃçN6fœý´×ðö½–±OÜz·¶;»ãÖp‘n•eŸãWZ¥¬ÂrüÆ =a3´·ó¨Ð"©C¹Tu$»ŠWµ1‚~¸Ú»¾;LŠ>˜áï “ãW»ðOÌà¸{UØá"Ÿ<ªÐ8ËÔ=ó$1Þôxé-ì‘e¤:þ³žGø¸Xö+èEý˜pã9n}°âæâ«¬ÓÎIlŒkŸÓ +u5Ä Xcç4%Ã=CËý¸$dX¥ÕÏ­Ó OÈ1q )Û©$.°p_c¸Õ˜mŽ õÎ75zæë=ʬ_ËA˜¦a¬RD¤yØ8çx™‹·Éh¹> £ìó2c|²[Zc‡>ðȈ€½°€ª–ë×¶w¬á"“Ì¢—Ú¥ìb—cõp0{¼ÕS~óX+b~ZmîÌ‹˜¶9J:èÅ2—Œ^x0‰Ž¶O#R@å(Zrn¯t•ÞÞ¹Ý"ç –@ƳN“r= +P+‹LôçU×§e7aÉ–Iè#†\x´ÚøÒ»ÐÔ˜¯åçCo—†}Ycz6Á¥`!lrd[Ì(rj[^Ø”Í<—Rˆr)˜¥–©êDëLu‚_ϪÄòjh¥öB²_z®­¾Ö£$fš&*/u¦þ¶Ò ½åQñI×›^{WEü‰E¿¨Þ¾SŠˆ^ƒˆáÓoVñ‘*>ʢ䡭úW+Óm¬áˆGˆ´°¯–h »±ÀûЎ雤ì¹WK)v†zUÙÜhU´¾Ø">7NѲü!Ûo`W­ +؇«<–w‰¶Êiyà˜TÙu/œúZžKEHwÌTÇ8fQ-:óx§w©±Å¡onÜs‹÷'é…í5vŸ¬qÙ{#°0ó ìþJgþCãpA쟛tÚÿÔuÜðL³øÜµaX’wž'\ì©LØ)Ù¥*ãh™\Ž)Ó¡¢L^x½´õþê‡&)§Ø<'¬<ÕV»uµ4‡ZD°*øð½IbÜÎHõ£uPÇ;#øhã=ugˆ—é˜iÀçë˜À‡6% èr¬i‚’hó‹,Ó‚R“˜™a“,ãèG>=%ߥ¡LãbvàarQÚ÷²š¸ïô–Ýô‚5M°2CµåQóªB=s¨g”iIyÎÙê¸aÄýõ÷Õa{c$ÀéÕáÆQäãC5á#eªÈyN 2a·/û¶erÇ*FEØHû)Õ6CHò¨YÀ<³"TïŸÖxŒ Tnš„?Y+'°ÚÚç\j~eœddød§ +“\ dÿ±ÁÂ|^e¡=*rU‚Ž:Ò“ ƒó =s¨(‡þìDËAýÏjSÛ‹-¯ƒº.ÈrÙ6•»/¯Án Ÿ[Æ÷‡*€>y꟥iëY~µ¼²Ì2CM;Z¬åºC×`Æ`6{ó/­÷•Ü™ÅLþÐ)ç£7§Y…kÔdŸ¶¹ñÐÐXÔÑÊÜ +lÒæ`Ù]YsÒëtùãÃEzÕÉzm­g^HòÍ è'k?s qÌUG»d˜Äý1能‘ªG^€|´ÖØî›±í³\Hèzð‰¡†îW² ^99Û%çš&¡‘[C¥a¡ë_–šŽ—kk/Ú¤”’ÝQxÜÎPåÃOË\ÊñiTRrõ}ÈðíiÊ1ߨè^¬x@xjyÕú¦£Mam^ÄYgç¨?àM· "]ºæ¶àJc³/4ËJA/1ŽWÄ/±ˆŸ6jêŽÖ^MÙ•5´ÍþÊ›ÛèˆÃºv›’VâÖЊÜJ¾]AÍ÷>9]ÃØlçxHÛ>ñÐÀB¬ñ(Gklœä-ß²é^àaÓ  \ô—šzó,!OûzÉ1Ë…ffÞ4ü÷[àÓ!ðåEJÉ;‘ò ,…ö•¦³$ýÏýúwÿŸÍs+¨y@O0.u#ש½aC]šÐ $°(bkè6v0Ç+·Îñ¡ûbNÞÖ05Å(¦¤̲Š6‡HÏ7*ÃLãðÈй<—FDt©ø‡LPåTÔS\ªð÷BP«œ’ÐõW¿Ž‡²Îq!»ãØgkÝ•— ¯¡——ßÀo™FÉ¡¼UrT±°spQÄö-I¡ ^ !Í9‡ºXýÌjÐ1Ç.v*Øe°@ƒ!+o3ϳϛFrΛÇòn:¥¸$Ç,³È¡äUÚgY…nku¸5œÝ4QxÃ*…?±ÎÀŸØg° ­r´ÞÜÚktgŠ–0È& ,Ò4]rË­D‚ÃÆGþˆ!·ç»Óì¢ÍqÌ3 ã€–Rè™…Ç~4`r|*LÊîhŽPÀÏ¡=Í'ê ç-“´l_è¹¾9Äsß"pfìö á©ILKuÉE„CCSóþ$)°v˜[Á„;å,X“BÀá¬àRs›MUO?˜!Cs‚-3ðèTгYn1ϯ¥¡þÚâ±?o²Én .gw¼â¡i +›x¼ÚÐ\æS½z±OŬð(ˆÙ%­4 «ã|^pAe®õ]Þè­ 3K(ð—Èg?Ñ~õÈ«Ó}j|¡[ŠÏ<Ö1+>/ éA=ïTR ý¡ç·”õŒýQä#Abí +lŠcƒ;\5|ÙiþðeOÔjšÃe;uìêÐ,›š‰tjq™ÛSˆÇÛSèHÈé‡ ÏjuÅóBÏ6½ê÷¯5u|Úðüj|¾[ 8|–’i›Å'-2qŸvê;¯ WÜjZÅŸ{ÂÆOÛ om „¾ݤäT­Ó’lrJþï7÷ÿ¹×Øã[`#|ó|üÇmÿ˾¨åã¶Pp´Â@(°‰»S¸x›’Y}¼òâÍáRc=à SA*8’ò<:jåñ ã™çãt=¸è馢»óç‹îQVFº¸´C=«òhžƒ:Ô2ÊO@ïý¹ÔÐði¥¡!hÑ÷¤l îïOì2Ì-odzBçCs gDðPöÙøPp~o¸èŠKŽO³ËÉéN9=ïdQHÿ²ÞüöózCsÐÀ­ö¨˜%  +ÝŠFšUÚH´ËE(§ŒSêœ%¥ºd´l çéV -ýH# |Z©ÇRÄvhÙP»²–ìR¶ÔØæ„ð)-ë@JHÚD?0‰ñQ=ü]öö,Ì8‚|씑3Ÿ—™&H‰;CÕý•·ÝRJÖñRC½[_Ë4K©™¦)R²CÉ…9µ €>ÛSÓWú‘7†±O§!@®„Ž•MØ]Å­tÈÙ%Ö9Z–UFɰËi9›£¸ë='hRŽ—Ù˜÷¹Lc%7­Óð';£ˆ‡n%)Óxj{†]°ØK€÷uË•;CÐÛÆaH˜köïg+‹‚ZîD×ÒÔq1 Þ3€·ùjYn5ñyû¼FƒæiÅŸ7¸”OëõM^]={¹‡ðÔ&a}^ozu²Ê¥Ù¥UOÌÅ7,“°ÝᲇöYtÆð¯¶†ãÕ2‡óBêG•\Šê8›µÛ »·ÐžõóÆÈ=›„œëT + ý¤¬zØ“o{i÷\2f•_AÌñHqñ^Ày>m÷'pq[Cˆ§¾Þ$åU®½¯~ôq­†{¼Z' +Ìó)ŸVh¨ ›f*¾c)¸~²^ߺ« K^åýnUÒ) Øyø?VS/ÑàÛ½E×Mg¶G°éÞ¥öa ¨7‡Ž‹šÈ9\ªáWj¸ÀSjþÇ(¨?^Ä™' wN@Îú´#jô/3*jZqh­ +N¹YƯ ÍÅõ«ÉøõE1+Ý…W×…ÜÃu9ôã[¢”™¥ˆgfÀîÞ%0Iïñ¢k'¥:Uì»-CÇ<žOϨ0Ï÷Ĥøƒ9j–™‰ý˯ÿcŲÎ!³Z6`2t”_MüûÔùG=slÒ|¡Z‘3Íb|bèž>»“dš„<ð©‰9þyÂ!çWÚf˜¹¦itÔÊû‚ »Ãå·HùWÈ¥Ÿ×HÐC¾äM.õd…‹Œ‰ñ(x•N-ß"!¥ÚeÜrû»¼属ù›OìÒÍ÷å÷¬SèD¿ž õ8h¯¾¹Á&ëh3KÌ'",ãÌô½\äüëükïK¯¹æ˜ —¯cíK¹Åó]˜ûÚWKàµnøåÔ\çµdOLH±€|c•דVîΰó35ðQf{Lˆ=j•5Žc²l2&Ä¡©Áù—êM³ì’Íqüsã 5Ãú÷½[”4ŸŠ’ÔRŠ@î©pË@kq^ˆb™<,£çïb#ì¡ka³ÄdŸ† ;˜¦åÇðÏ}J,¨á¡{<ßüPtm·zß!…?öªªcn"ƒK ð‘âࢀx¸Ä© x~¨£CÜ2V©ióQϧ|Ùi—¸¸´1ă)>Ë£áãŽ×ê_8äÔUKæïÊi—@oV¸Bâúü˜š#l›a•.Ô°Ö{QáŠÆüóSÌØÓ[ïa)`mŠVÞþf£b‚òH/ œ,qñ_6Ü/[BÑŒQ¼5HN ü}~Œ5‰qQ®Ðù~5½Ò£ba?- ÀÃZÝó\´ME/õ-7¿=Zizy¬g#‚b–O…N0U…Û¦¥Áù†Ú£Õ¦vË,ðD=w´Zt°*Þ«Eùæ±iBŽum” •æw w½¬r°7^¼êøx‡—±ÑS¶õ>?lˆüà‡—Ð ÿZêθÿ—¹ö•o…O?”Û¢–ã5>ó㦨þhǵɰE‹]E7;K.Hˆé7„ÜÙ–¬+»UɇK Äk\Ê_+t¤_F¬Zë¤0b¯sr.ü#¨`ƒzZÙ‘VæÓàRŒã¥×ísèXŸd ã_`ÃÁ÷/õë˜åv:Þ:Sùìó½êx14ž’Ö? ðlžeš˜éRr¾¬²«ýÚê$‡¬üžmúà3ð°?6ùŒ# %>•cŸ#¦Z$èç.%b> !eg]E:ç˜ù«]Ð{âê„À<µäd•÷êÙhó`rÜ¡©%Yµ8Ë;k¯Ÿ¥hL;g- sÏáÓ­S¤t›‚W±'«AlŠk*ŒbÔ«`ìӸ¸µ÷·¶†àÁk!]ºòþ,-s–]h—·‚uÿ0aW¾lôèêèæ)T”áMÁû %7 ¯!¯ÕðÍ¡ùij¬b‡¾^èY¨ã…ž+6Ob¢wúK¯Îó(¸PPsl` ‹„™çQŠHv #ϯ¤ºæðiûCˆ¨½!ôcã(ö©GÎ…Ô"¢eœ”´Ñ¹µ3½ïUâR}*l’[NµJ+ãÍÓ„$‡º‘çÑ7Õ™%؄޼ËN))Ý)eÚÄøø¿–¸”?¶_ô¹´ýZ¦g¡¡Æ½ÐòÒ³ØòÊc¨ãY¤„ÔÅ·ùw×zKâüÉ2-B-¾ÃÝ3ޱrí³¢jû,.= Åæ;f1Ik]Ð+3üŒŸÆ¨1§WÞB"÷'©©s-y§ANójpÓ("Ê9ƒKóhy.-)ß®¢¸ÕußbCƒIBÍ2MŽ×EuG«"¡O÷jihŸšTèQÑ +ó\ÌÑÆË‰ãµ¦×Ÿ×ê[>¯ +ŸVLŸŠWÐñqA°®n%.g{zË©¡AWù Ó 4£®Îtké0ÀÎD¿¡¶Æ»Ø1X}9ì]æÐ<RáÉjà ·Œ^°Ñ]|u†õo]cÊí‹Ô;›}ù Ÿ6hÔÿ67ô¸€f9µä§ÆwÞEÑ2CÎÞG.v\Ù«Lt)ù ‡–ØÈéúÔ_7† q×¹ä“Ä5Z|O]›rî5ôñ¿k +ÛŠ|ö;Ð +¼h¹KCÍ÷j) »àZ`y6Â8‰¶H°±¶iR‚k–‘w²Ì§ü¹Á¥þ±ÎÂh¥.9%Ë5Ç*8Ôq‘Çz!Á+g•êØ0ŸŠQÐ1G ¬GÍ,õéXP‡‚Öˆ]ä×0¡œ*.tsû\×YvÅ9KÉ>1p± É‡Ú:æá¼°')×§¯NðhªãCLü4ǯgÁì*`F–WÉGºäLˆOEH_îÌÿ}ùUñeÀ;·°‡R„w©ë^u-É«P=› „—m›…?µ– ØÕŸ–[:|ómod<ðùøàsÕ »ç8çªãw† +ﯿOùÝ ÖøIcp£ùUÃC‡ü°Þ1Í,wMS³Ó˜x› 8 —èW‰È^MË ‹˜šfÅD,´ç_X}]xäû”€šVäZàW‡zHqÌð+ƒºj@ÆL"ž­¼Mûe¹3õW¯’;Ziy{¸\WëÖ0!NëÓ×óAîeê©EniÕ3Ÿ†Rè=èÕó '›­ƒ@¯_:çëùCs³[Ë»d”l×8~jÔ2IÏÞ¡'¹fkªMbVîÖ@ÑÓxÙ ãêáþ(=Í<Î-uKÙ•^9aSSV? Ã½j! Ôn nÇÇ:•´ÂÀq²)à.½èðÎ× @žÜÅ<Úm›œN0KHÉ69.õd‘ +ûcÏý úæx¥¡)¨¯e|^kîüŽŸOË­>YêRý}í%Æ ~ß© AWêO6ê_¯ó˜'ëMÁe?°Èůp¨‡ëžÇgÌU=:ub$Æ›'0QÓ”2¿†Kùs½¶õ÷XœC:×ø¼\Ëû²"â/ò & >q{¨âÆnéÛHÕã “ýy•ƒû²!|Ù V87Ⱥ®X¸[Š~æ‘ccjzᑞƒ ‚zèØAÀ9'ËêɲÐ3!n6Ù¥f•9•"Œ[ÝȱÏ5Ѽ**¨çc]@³] +f‘OÃ, ê9ˆ#ƒìýnèξ4ÍyøoCcò)¿Ž 4ž óª¹X§’]i›eÛ¦øƒ rÊÚ›œ‹&ðYíØ(ß#?8õxK=Z2Ë\Ч2š^ì7àsœÊÒÇιÂ[扲[~ÀG†zÑáüËn›œZ´Ò[pus ÿ¶M‹96P+O–oM^Å<Þ—Ðó«5º•ܪ¥.ÈÍõ®Ü+‡bîGåWS+M“¨ÔpÌÆˆq6y=Å¥àW™&ñIsMég§I_ÛÄ”¤CÀ9ð­ À83ØøÔs‘.%ß8’go0ï²]{t¸ÀF.¶uûç›ÜjÒ´Ì) ý>¨+=¹Â%…&úÀJŒ‚½zޱ¾Îzns%k(»²ö¦üj@‰|~¼H*ú´&àx´B”‘ãRÖòf–SÕÄÞŸÄÅ-¾ÉûÕð*ï¬áuÞ9ÐË¥'ËõMÁ¥ÎÉz ïhùÅkP·íŸvø¬ã Ò,¦$»”tÀÐ :úÿÙ{ó÷8ŽëPô·—^Ü›Ïß'¹7A&Rl@ÝÕ»(Å"A™Z@‘")ŠE‚ƒÁb€€«6Ûrâ8NÛRl˲Em”¸¯")J¤vJ÷}•â¼›ïý索§—!ÑCKÀ`Ôðg<ì®®SuösêÒó5ß9±¥„=Ñ–^>øÝg¯\ûÔg‡W|üʲoïûáü¿½´}dÑãO_سæé³;GŽo~¬ÿìÎÇWžÛµní•·V¯ýíëþø {dé©­¥G>;´zõ¹}CÝ'wôÏ[õþ“› +s.ï/u~öÖPß•ýýKÎnËÏyÿ¹Å·~úJ×·>?´öé“[úçüÅ‚)‡žý·>¿ôNÀ±üÏuw÷g¶?ùÝ#@K§Þ\5rõƒ§žz]ŽçNž/¶ÿñž§—µž^½¸³ÑÙƒËÏíÈ|¸¾Ó:¶epÞé¥G?}qÙÔ?~àÏwþயÁ3ó/îî¹÷üÎÜŒs O¯ìé¹¶oݪ+û_{b[éáýÏ.ú›íÿxÏÿÜúäÿ÷Ûÿ:óO?{s8ÿùÁ5k>;´fõŽC<¿|~óŠ…ç7ÚOlX,>z~aë‡Ï=zÛÑ ½ÓÎlœ÷ùÛ+ËŸ\½òòÞÑÞ³;ñ|À"íèë}3O‚m~yïšò¥½k†.ïúßäjß Øï“¯/¿çì–åí§7÷Ï;¶iżwÓu×[Ï.²?ùu×ôKo~i‘ùöÌûÛð®ïWG9¶ñ‰âÇ/­˜}è'˦ž~iùÌS/åï~ïgµl\i~í½gfO¹¸g¤÷â›?uvïwž>¾}mÿá×»§¿÷Âqüµ®û½œ¹ýèË˼O_Í´}øb¶íÓÍkòÇ·­:ÿƺÑËVa ã¡gëþ*;íS°Ïl[<º|öǯæî8úzñK»JK/íêèøëÙØÿ¯÷~}ÿîÿ‹£¯,õÎnëðĶÕ=G^~èƒß Î<ðÌò;öþðÑ)Gžï¾cÿçüíÖÇgþÅ®ïÎüÚ °¹/ïÉÜZzèí_.nÙÿoíSÎnî˜qùž޾Ösß§¯öÍ>¹±´ðÔ¦µ=§¶}ï;§·ty¹óŽ}?¼ÿÏ^¶~ÿ“_.4±ÿÐÙ]¥Ž“ÛƒÿxÏÇ/ÍùèW«>ôïyçØËK´ó»—}ëÜ®Þû/ìYÙwdÏå7[~ÓgÞX=xøµáŽ÷~ÙwÏGÏwO=òò2Œ÷aÌêî£[{f^98²âÊ[O|ÿüÞ•ƒgßX±ä¾•ÅÓÛF;o\±àØ«}³Ž¼Ü=íø–®»/î+ç¯|òß.úÇ?ÚX|ðø–þÏí*e/ì*-;òBvÚÞÍ;~ÐþÍ×çî?±åéïÝøäÈÞŸæf¼õ‹%îçï?õÌ©#9¼Göê.ðKvefƒm7ïÜžÑåö}÷_/í{ü»'·ôÞwäÕ¥ÎÇ/-1޼ºìŽS[—ÝqåÀò‡¯½³¢çÓÍKï,5Á–_qõÐS?Æ3—vc¾3ÿàÉÍËg]}kE×µwV®ºòî?:¶g¤ûà Ã=óй̓óN¾´dêOOÿúkkïüŸo?ûà-Ÿ¼ÞvîТ÷¿{ÇÓóþôгN=òʲY×ö®^qyoÿ‚“Áyq©~~ÇÐâË»Ö/¿ñøš;V,Úÿó¬±ç'ËnÛûã‡n…ý¼ã·ï”ò×Þ*e¯(÷œÛYZ|õï|ïâ¶µç· Ì>òÂÂo¼óÓSÿ|™qjC~ƹ-ÝmW÷ .¾¼o¸çÂîá΋oŒ.¿6ßé­½÷}­ã[çwfï»ôFÿÃÀ“k.‚­fÛhöÓWÁ¿ýEGËá_>rË¿xä Ëà»,8·k${vçpæ¼ÒÙûù-ðç~ ìâ—‹³Ž¼R^pfÓcxæmÿ¿,ü«Mëîû£õã÷<¿Øýdèµ·ÿîé]O=qh}yîǯ•œÞ¾ºxì°G~añm¾ðpËáW:î<·÷;?8»÷©ïÛVΞݵ²ïȆ•Ë>yqÅç¶ŽfÏl˜ûÉKK´O_]fßÔÝvxïìÖÁ‡Nmì¾ëøëÝ3>üõ²;Ïm)ÌÃ8ω :G@GymèÁ_™ÿáúá9ïýGNìÿçGÿúåÑðryÚ×Þùñü¿¿´+ÿÀ•½+–žØ¼üÞïtß û÷È™­¹{ŽmxÔ:ôóGnýèWëìkÅ9—Àß9¿óÉ'o]ÙõÞozÿáÐdœ÷¾dêù½3/lë›}ì–×c­o×Ô3›‡ýø×¥w|oÉ_}¥køuÝWÞZ‘»ºEï©-wߨ;ëÜ®ÁGOïÍÙóô>}}mß›ÏäÜwŸ[f|üÂbóÜ®ü¼Ëo³—{ÏîXò!ÈÔ^\æß·ª|l[iñ‡ë3æ‘—:½Ó¯çÛ/î+<úÛ÷‡G>gåc'v–ú?ÚÒ׎}Ÿ¾]òγhæðçOlÀ”¥žé¾}óÓ‹ÿòÄÎÑÁ«‡Ö=ui×Êž‹;>óZ»Wd>såŠ+»ËË.íê8º¥Ð~lóšîO7<ÖúèjÙíö-¹ãòÞÙ×;®ìY~uÏ“OÙ88ÿ̦Bû¹M¥‡/l\™9ýêòûßýÙ³ýqíýðÞæÓ›ó÷]Ú7’¿úæc_Ø5´ôƒkoþlæù¡o^ØÞs÷Õ=+½²w´çô¶ò#'ð|ðÉI˜ÏÉ ÷È‹@“/÷ÞutCáž[Vãø++žÛ2ÚsnóHç»?Íx/ OÿóW×ÌøËƒ¿X>õÀáÓmÇ_î¹kï??ø—g6õÞsiÏÀÃWö—^{sEöÓ——Þµç³ÿòàϺœs{ÖŒœsUéü¾ÁGÏlí¹Öôö3¯wcÇ¥Ÿƒž¼ôÆOy­ôСçòÿ>^ÏÉ]wÝÖq×±×¹[Ÿ¾ãë­_lØÒ7÷äöþE`{­<¶µöÑÍ=mgvõÏ;¿sÅ"ðKžÝzjçÒ;>}m©wao9íÐwŸ=¼îØÆ¾{¯îüüí‘ç¶öÎyóóo}ÿdzšþä¾??¾1{÷¾»îŸ¿÷ø¿œÚZ~ôãûî…}|ðò®ÁGÎï\|lCæžÖÏw>~1{Çñ-}s.½¹öñ«o=ùƒ³`÷u;¾¹÷KûJÙc`“žxy±qqWßCçö–;Ïìî:¿´xöôôŽKNnÉϹr°<¶âškû—];PXxtSá¾÷~½üŽc¯=rvçHßÕ·Ÿü—KV™þÉ«ùéG_ïŸz½ãü¾‘þ7ñ¨qvóŠŸíx¬|eëÊÎÏÀ.„9.¼°£»íÜ®Îo}ôÒ#ß8úéèÆó>ÝP¼ïø¦þöÏ–ºÿχå¡Ïßè¼´¯ððáõÖ?ïh=½apÞ™×G;Ž¿Òwï‰×º¦ïÿñì¿Ø¼vú×ÞÿÉ‚[Á~~ä³0ïÃàwŒdOlí8½uÅ‚Ë{úçžÙ²H;µqþߟx½Ã;þzqÖ©­«ºŽl¥8çÃ}cË“Ó~ÿÝŸ.œrü%<7 ²pÍè•}Åð_ç]Ù¿ºtyïʳ[zîyÿ¹ûÿæ­Ÿ}ûëý²Û>õʺ®S›¾»òÔöÕ½§Q§¾ÚÿÀùÍ#¹‹»žz|¥î#ë;Ì£¯ôL;þúðßüο_;øø?^::³gÅâ {WøåC{~kwûî_·úâö5ÅŸ_æþÍÂ[ñÛûÏçïüà×¥{Žo\×ûî‹¥YÕã}¥oæ§/öÞýùþrþÿ9´rä³Ã'Ažm ýÌæÇ‡.í|bÕ»¿èu6=þðÿZ_¾ÿk`KŠK»¾²ÝÚóo¬ìûðÕžio>³X?‹qðõ>\¿ÔxïùGþþý_-úÆá:n¿´çñïœßÿ£çÞX]>¾±pÊ‘KÛ‡–œÚðˆöÑs÷þ¯·Üö5ð‡î¿yö¹Ý+VÀ¯ÞµzðèÆ¾ûNl)Ì>¿{åÀµCë¾síÐãÿ||g Í©Ÿ¼’o;·sUþÜîá®Ï>ú³{†{þëýÕOüö` äåÀâÿspÕªÏÞ^Ñ‹~çG/u:¼Ø{×[ÿÑò¢pÿ…mCÙÏ÷õÍýïƒÅÎÿ~¯Ø}a÷²oÿtΟ¿õLF?µcdùÉ£…÷~Ñi¼¶îÛ_ÿÕ õþ}~ëù¥ì¾»úñß¾·ríùÝ+ÅžWöô}öÖèøfß~¶ço~oÇcSÿäô†lÛoßùìýUëŽnìº÷í_<ô7ç÷ŽŒ|vøŸ¶ÿöðÏœÙѳ`ëJý6­žþµ°~ióÀgwuÀúºG^.ιòæÊâgo—{ÁÆuqׂx÷Ù»þê']õ{‡×Ïû»ã¯ô|ëêŽáeWw=zuOiÉåƒ_ÞÝsÏÅÝÙ»Îoï¼ã ÞÿMÏíýzxþ‰MO¯»òæêŸ¿Sê¹x°wαmK¬7þuÎ×>ŸŸqeǺoÿÛ·¢ó¿`ýOî,̾vh´ôÛV?qeÿÚÑ àk_Ø9ðð'ëiýMIÿ½=ÿ4ý_Ù5´ìÄËÅûÁù»ž›ÿן¾œñÀÎXúÙëÊŸï[]:ºiù½¼ÔåœÞ¾²çÒž•Ë/ì\pzk¡ý½_=rËûÏ-˜rmï¬ÏöWK‹1¶~ìµÓ›†9¿udÉ¥] »wõÍ:³}ìþó®í[3rmÿš•@ï¼aùÝ'·wœß=Úsí͵+/üäÎáܧ›úîú—S¯€Ÿ?pß§/>ª½ûìœÿýþÏÝzyÿP×çï®}âÊÁuO\Ø¿rðæ[·?1|b×cC=ùÏW=þô°™>Þ½ýÈ«î¹k/ìùÎ÷NïxèùœwvÏck¯½»ö©›—LÛñDÛ~ü«Åß<¹µÃ=µ£{&®÷Áõýwoÿ×>óãWžZuåÀ÷Ÿ»~ï™Mßöñ¯ïÿó?þ‡à Þyù5«®½óÔ¿¿õ\×·ÖÞ÷GŸ¼Xz|ÕÕÿýÞÿöŸo”޾²Äùè׋Z¿˜1΂.‡½Ê¿÷|îöw±Áo2w_Ý»fí\³î +øp§·uÎØûã™¶ù©;ÿð쎾eŸ~òç—®,c<ää+ùv°¾÷ÛÃë~øÙrߕݥ%°íoÿ4óÍc‹ó¯‚]tð§óþú…!ýÿÚõýézøWiÿý~1÷ÿ5Èϲ‰žÀõ“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?)"õö“"Ro?ËŽ7ÈÏÍ òóûS¦Ü=Ð5#SÎ4-¼§iÊ´{­øûÜÌP9Wjz iJÇmÓJåùl9_È”V5ß ­U˜Í·ÍÍe +Í·ð“ÍðPóìR¾'?ÀyÙL!wkó7áÑ©ðÿ&­YoÖè W5µ8®á´ÂÔ]WÀ¢ÙH«ei†eh–&Œæ~|Èt[ WØÂ5M͵ãð!`¦ç¹®cÚ¶ Yô–ç鎧9?û\¢‡bŸëmz¸i éÁ&¯ù–[›>ÜôPà7X7×mzix¨wN¦ K2à/fÇÅ9¥ü@9?ÐÓÒÂàé9Xªà?4=0ˆÿ¢küOóÌüv¾€{p›ÿ+¬ým gµ?PìÊᯡM¹î?Lm¾eeaþ©¦UÊw—sC¸7°¯¥Lä‰lo¾ÐUÊ à¿‹æÛî(Wþ ÿS^5Hûz‹®iSnm¾í¡|Àó`Üžð£#™Â0?;šï*÷ÞøáL?= S‘Os¼1švoÇ´Â`o¦COŠW¾ ž|fÜQ)v.ÏeËÓ‹Ã]0·éÅ•I1ê&2ƒGËC‰÷+ôθ£Z öæò=½åĈ©Çǧä­JŒÌªºÆc  à±RýyãéÖ‹˜,—:“.B)74\HNžêñqßVÄi¸Èæ’bƯ&ÄK}gœ±I‘îŸ-gFrÉEdð•ñçÂVÍJŠ[gf(÷íRnÅ0ìnrÙykÜ1(Î+çËÙ1LŒ +–Côôü|¡†- ½“D]ýˆT7&Ú97?!ëU&~ƒÍç]šW.es3K™ÁÞ|6±‰5x‡ò@zcͯ‚Iq0WÊ”‹¥ÄøT^˜ Ÿ|‡Æœ¡-È&MÖ£]ìîʕǞûäã§ZdDÃ0RWråÕ5Ú+9"ÉuWWBåõ¥pÿlâŸÉÇ÷Cƒ¹ììá1&ž2ýD2}me,Í ÅÒí£½cz¡A…ºªþÆŒÛ4T½XW¾IžãžL›ä[Ô•|‹º&ÒD.–{‹…bOba^?nKJ·†;0˜Ê´º—iÉOû¤2íËߌÄqÎÉ"j8LVß ùÖÔÌ(ãîä}iuÈÄò“µ|·3¹3YØ=9—Ô9¿7j¯ƒä4Wïr,qÝñäëÚxÒ® ×Ã1íÚð»îÒ´Ä‘à¶ÞÌÀ@®0/WÈekq{â/Ž;)ÎM%¾Y$ã/Ž¿Ì£("µ3&ÎÎH¼5Cµ›™ ó25˜u_–œm&KldF~h°ÉæúsåY™Áɧ“:û®“F’%'²:—dý*qÂRøJµ5­c_IkVÿkŽýª‡~MŠ1ý–ÜWO`Áe¡Xš•€DëRì%öu'ØKÎZu.ö’ïM½ ‰ä§€Ç§ÑK½p_¦0šY5†¨ q`9Sª‰ùùqßïRŽŒÁ¤ˆeººòåüHr­]yaü¤$¦Ð~êó +I‘ ¿U¿LÛ]*ö'/­¤‡Ç™B~ —I|6\Üì¬bòúîÀ ã¬N,?º’7 âgÇߘLŒK'^i—<,ÍOO@ª§–Úëî|¡PK‰ra"¨-±VLîƒ'‘â@rý”Í÷]§ÞW&È3É äûk˜ò—tFer·¿Ë¦e3õê%ßšz÷ŽZÜ´l¦NؽáÊfjà’:ç÷F-›INsõ.Ç’w´›|u3é•—a,Ó™´pæKBò+Q8“m¸Â™Æ±4›ã“£p¦£î g’³MZ83^[Òp…35YK²Æ+œINmõî-Q-“ÎÔ¹Øk¸Â™X«ÎÅ^ò½©w!Qo…3“!E4yÊj ÓZ9n‚¶r7+¬¡Ú.ÝŒÉÛÞcòìÅ—7‰CôŒœvoÇ êÞÒQ[Tâ +GÔË2$dN’fI Ùñ~û M”ˆ½‰ö<©|K$ß쯲|KŒ|*ßRù–Ê·I%ßî. 5ßRñVïâ-‡„šJ·TºÕ.ÝRã-•n©tK¥[£I·`Ú¨£¶²€r‰‘ÿêe S&ª‰œ¯2%F>e¢”‰ÂL4'¿2W˜SȬê¨íLb=VœXZ³•¸âŒwqn Eg7Ƶ‰¼BlòÈÁ´' /Ã$êI“ '{Cšü@W®;?0æÕ¶AêÌeÊ3jè{xcÜñÄ.5Iq›L=jôä]Ò&5ã¾9ÍúT¡5ëüWk†ÿO…ßáÏ©ðÍ_zíù¸kþâXB}ruäIÙÄü•z1¥:k¸Ž|²œhÀk%kÙ¦z?0F1ê^*d‹ýƒÅ!°bgÁï“O:ÔÄJu.Æšß”‘šùÚ†OhhSÌ5¹åBõ»¡Wï"SÊ—{ûsåä|4™EbìK.ú&¢gÄMY¬õÞ#qˆ¾oŒäppw̺Fd ‚ "¢×5¿ŒQqDÄhU:yÒ7¥…ÓSˆ714ÿüÅçŸkë%YŒ4ÿ|=4Óüs•¥IóÏ~ >Í?§ùçß ¿Æ½#%Í?×qþ™4>f …6µ&íŸæœÓœsšsNsÎ_ˆG^ÇÛ”æœÓœóïÜ¡»{8ù½“E04Rº¹Æ”ß¼šz‡Þ©_Ô$™¶ÀKHN€±÷ÆÅ¬ÞEzâ^ˆCÃ¥îL6W5†_wäVå +…âhR ùžÞ2ü{KÛ'Æ1úZ‚KCp_jì&9•¦q¸$DšÆá¾C ½¬xll&*ÇjqjO)—˜ +–un*0Z¾§8u$_,äÊSK¹®©ÅRf`¬Ìm Kti€îú2ÐMàάÎ÷—Ǹ“/¸-êùq§7;1N¹ü¥¦Pà ‹þÌÈ“cÙŽVÖ×ÎÌ`O³]|“†sY¥ôøC}Ç£:ÆÌ¸êw%GÞ½rì†ânñ' µ_+–5Gã/¦Áœ4˜“sÒ`NÌIƒ9õÌ‘¡æÈÈÅtÒ`N1 æ¤Áœ4˜3†ùÑ(™ì42U¾”©Ì“~RšªÃÐÔM VïªFnÐñeWŸ i5‰Ûsòå9™üXa£É'òB‰ÆnÍ‘¼gB·æ¨µj2mËQw%»õÞ–#ùŽ|ÛrL +m¸îVµÚ©úL;[M”O—ªÐºC¤ÎUhÚÙêwZòI«}Ó®V71‰C#uµš×›é*Ž6À•Jiß§´qAÃ4.HÜa.=ì?QœTìîÊ•qî¥\WMÄ7Yøª‘ê¬_ÞÚ•øî`z´ŽCY9R`6ñÑWÊG¸yÑÑÀÎB½lÎødê&Ͼ¤N\;qº©MIJ§£ù®ŠãäÓã®ã*néäï´<‘néx¢‘œ{sµ”Òù;N-º•§ä–ãD޵`’ÜtLh9Ö‹¬LÓÂ[³ÓðG½›Éiøc21”Û(á䈤ázUÂiø£ŽåzþHÓ*üÁ‚r¦†"º4T0©3ØÙÄ1¡Ébhf¿¼Z¡ñ¾¢¨”É–3…ŠùäÇ øå„X©/Õ-ÍÕûAÝä|†ûgÃfŽÔÐ øÊø‚¶&îÄÔ™Ê}»”[1œÈ&÷w"o;‚Åyå|9;Fø>Á§çç 5ì`èɤÒþK¼ “¨ÿR \8ÙÛ/Õ ›ºKÅþäF=<GÂÓnR“³›T#5“j¼DZkâKžÊÅä6sqBŒ•´›Rq"Ió‡KÃР“0ÔXƒWUç~oÚ#å«Ð#% ÃÞ0°Ð€UhéÚ1Æ¡Ë4¼³ &²­bœ,•hÉ1ªï:´äx4lZÄJ£%1Ê ÑÉøO\n2ù¢åZ./Ž{¸<õQ˜z©ø³Nê¦^`-^`b™z©˜z©øóµ,q×…Éç&F-uS7°daê¦nàÌ:©ø[ÞVº‹]=¥LröN}À:ðk ÄÉâ¶èâÖ‚IÃúÛ“¢Á®»©©!@ŸJìõ¥6&ß1ùÉ"%©ÃF1A‡õÞ/$m—Z'Ò,[,Œè˜|¬»>a ¡v{g!“í›ÚÌ â`&›/¯º½†ðêPyU!y\>=î×´5K¹ â©oãžM>–j|¡6j«s ¡1ã¿K3§z¿$kˆšÐ¶5¢È›Ä÷Öxéd‘uä Õxõä¼l¦Ó'ôNý¢&É´­80TÎŒuieлˆ¾7î(Öz_pû²‰kö††KÝ™l®6j ¿4îÈöÖÐ…¡€ ø÷–vUÅèk“)¸®‰·?³:ß?\C*Ò~Ü76¤aZRÙ‰[Rå +ð—šÑ7&ÌÔš‘'AÞ^KrñKê0ƒ%{»dèÉgûÝÄ]¼©ý—ªÜP¹uÛ'P±äÝ+‹¹ Ýø‹õkÌ«¹ÖlÍÇ_L­§z°žRã)5žjœÊ<ÉÊ©õT‡ÖÓM VïFTcæ Ò:òú” …|yN&?–e3ùCCV"fJùro®†K&“ˆHlÒô%— }‘?¬5^÷ Ñä;3FÙKpgÌzvüúÆx2ˆˆ^×;2F» "FªBSzóx¥Ús"µgrÑVçÚó¦\ºTƒÖ"u®A“óËWPƒNžPuz©dYF ¼%_Þ<&Y$íX2ùL漓½Q[;5îxi‹ß–io§‰ò3áÕ¡± |&Ÿ¯]}Õ»ŒïÏÀP‰»ÁL +éÞ¬ÉÿUû͇$E™~K.<Ôãè Š¥Y vµG#Ÿll@1m)R÷5»áO Kh¼»d%6ãë½GKÚŽ£N$‰‘Wæ7`ꚎzY xóÊ(-g ‘ø¬ád7#þê]JèÉ/™O-ð‰äª…ݹҷ󥆋‡}ùzwò¤£Ë™Îäë0i¢9qž„p_P[¤,ôÎÄ5ÈÎ|B¥áˆ­ÕiÖš¿ä63%·‰'7ý«"ܦOp¡ +ùCxØ{~)30Ôü¶‹ú¡~D£÷hÃÝŒ}ZïŽQc†Onò`[9ùÒw†ªñ¦ +_ºl˜<îÐÍ Í´ ô&æ1±s¸™+¬¦L»W×:îèò¯²B…ŽŠs`ê…ÓÂà鹞ü@ðš¤1Lþ§y«ú;‹…¦[`Ë‹£ÍÞ­MZó4øÿÂQü%×4 Nlª”,\¹~Y Ñf³yVóâ%Zs¾3·I·šæþ¦ú³þlÁ_â88Ž:þ?3aÀþ&³U˜š0à÷B“Õª›šÍ¿Ïƒ§fÃÿ{šŒVÝòt·Y´zš%ðSôjÁÿ‡õ/…س…¦î¦‡š¦tu—CL<¥Ã’›ËbÌ^È•æÂâ •K¿›/÷sJ‡Ój5 ÿÑ5øÿÇ5¹mn.Sàºx&4Œ7¯çæK°ô3Kù®ûs«x(ÿ&öö)•+_ƒ‘§‹…ð3hÏÎw1¯Né’èhòšo¹µyáÃêà}ý"Hcf®Ô Š;NI©¢–Ìsa§„Ѫá–ô7áo®íùvÒ¿è¦k"ù¨÷ªÁ*oTæTÒªéžÝ¬µ:.üÇÖ-tŽû[Ý€áíVKó¢R¡µ + žkqZmayH=:‘ ?¥{Vó"zÊ6l§¹Åj5=Gƒ_t¯Õv\øÅlu4WÓâ¶Z–æ"Ds×knƒ/Ú­ºº7Z=ÛraLÝh54ÓAˆm88ŽÞjZº@€á–Eozº†SÒÍVÓ€™àç]ÇhŽcÒ„í¯žÞª;¶cãk­¦‰‹§Ãl ×hÖVÇ¿:žå5/h‚ :„µ+JÓq†šîX.Ò¹n›°Í€‹íY| fhK ¥Á¸„ÞŒk‡ëß¡?n¿ †ÛøjL]§ ÓÆïh¶eͱé#N¸•6pX«…+è°°¸™N«fê°KÂÅÖYY& {åi0 ü]NÒñ Ï´à„E«ë9¦­ÃB °@ÚbÒ<á-ÝqÆÕ\ ‡µ„eÀ—ÜVÝó¾dT†q }XnÃ5a?@Hئ‰7Û²qC3|ÂÒ,®-ŽB»D¸ +íâ¾á# Û4GJ=ˆÊ$qgèü"pᦀ|`°qü‹Æäçé' +ûmkšM”dº°@ZšÐˆ´„%<iBð¢Ðk,;€iôqÏ6˜iD«k™&"dc +Ýãg @¾ä9ð,€bóÇÍu[a*°Ô@Ŧæ€ÐÇ=„AžtÝ0P_À: Ý`Õ€U€Ö4€ž¦Á4`pÝ#*ÇÕ3‘r`q`q 8\ +ǵ˜…Ëï¤5ôOÓQR‚9xÒ5-fQGƒm^€H¶Z2tX,dgÑ€òdE )µ«.RƒC»-¤@ÂuÕuG8Ñ9X NÃuQÖÀŒ\SC2jãÉÃΘcÚšgâ 9!Ƨ`Xa¢T^#Åéy€ +ýW3x„e{¼-@Â5®|•(,MSƒ¹[°Ê¸w@ùš ñaJ‚€½±MdoxÌu€ÏüÒ\¹E×§o 5á¦I3Ñ=ia}VB·5¢Hx™öͲeɪ˽IÆR`¦í’˜@z DˆK2É!ž‡fAlƒ„5Jr¢+xÍÅÝдˋdK…È?ð9C³þ\dê7ØqÇ#š‚O8&"i“àÔ d¡¤F26ò”2¾€’H¸GÛ Œ„‡$p<2µP¢²pY¬ã’@× g«ËÑ ÛŒÚ) 1Ú±ÎK/\܃æÙ¦ªë_ÃÈJÃ{@Ø627ÒŠ©;È+®&íA†õ¡®G´ƒŒÜ†Kg©¥sl`òvõÓÚÁj„˜g&Yò!|‹)¥£a ˜#ˆ‡@•Û.Œš¿ +Nç­â×46"€?iº(>Z_ý + ¦H²à;Š=Ï + Çs]é›_ªC¾ãyðذ٠+!º÷èæ+*"nÛaÂŒÀ‰ÀX¨PÀ0•¯¸(Œ`µ]\'Rîhˆàò›-¬—‹OíB’_ø„ÛêH h“¾€E‹ßFËg.ZÄ,rœ«aÓžF©í†)48 ¤È"3Œà€”¢óvêd¾#š(º,rçÑJ&ZRÍ:Ò›a˵!Ä·ÈHa…ªUtxql$ ŽV1ÉŵGúʪ¶:7`30yп$êƒë'Î0<ÐÀ¸¢hf±¢YƒÞ˜If©A H¸³"¥#l&ƒL”’@³ñžÁ†ÙÙIbXbUÒOÉC½†~§ ®Ïv¦]Œm!v‘gEÁá†ÔÏ`ÞÁFÝ-(öJJL#KÔ!.b>[„C‚ddÂõ¸Qíìm ˆ, +dÐCçÉ\B‹ £‘¤K!KHb`€’Ô*"Es-ä ²¢èƒ‚…h§:,ÿ,)x@(€áFŽpPn€è[Ž\õ!R÷xÊ&Ei„tGÆZTzÀâ06Yå2_„f‰2Ð&Ý‚G‚Iñ—ÑZ0ø]ÆBu~'–]&‰f`¢)šx§­ÊvµßHÊÇCü2—MD“±”B–¼6¦»›6‹£H¾j¤©jV+žùŠ$™²¼Ïœq 'ø”JÖª’îÉÞ0®²,t ÑO”ƒ:mœAaOÄTí·éQyàx¬d\BÜ í|I³Àœ?%,dJ –Ò¢´P4ñOŽE²9mÕ3>á´Ð†Q4ò\)SeræD¦2ÐDΞ“EU()-±[Æ0[¡£õ¹ç-(:vY¤™ÒÀÇùŸ +®ê¼Š–-U´àä©`HD—‚“]«Ø†PdYFµPŒÌ¢B€ C&ûëx]³8/»ì‘ÐäôBˆ“(é)µÙÊö0%ú(YcÊ: +œEaü\Í]® *‹ Kç"Ãô1œ)e]™øêÅÖ8‹(iŽhÃ’‚L¦`Èñ#»ƒKèà1"³pdSŽ” ÒÙ—#áoR”Ro•{l°Ú&ˆ.?årp×óóš:—Çé@âLK©“Ø®ÜÐG +´d‚Ϋ ²ü3d\ ¦MáÛRðÝE”=µ0ºƒrÃ’BÖÖ N†“•„h&Ú-Kã´%%œÑÌe²ã’'KfÑd4y ‘®(S§ˆ†hSÄj"Žy¶©ÊúÄ×0ºÐYJv˜Bî3ˆ9Îb¶XJ>YDEy.‚X\~€>­&­¼‹Ñ¤ìHS•Ôm<½K’õ¹Ê ‘2ÐU©Ð4Rl?oœø‹e@ûQ”qlƒò«†FZ—ó\ -ô¶) ÌÀQ[Tœ¤Ñ(´+µ ¨nVðÕ©¡ +ÍÄÈ*L{mU4†5 [j‹µÉVB×ÈvØn³X™ÇÒÓÙ¦*IìXš;š +ÏRZD®ŠÆv„Ÿô!oŲ8õÎ&¦‡0©ØF¹#rCqÕI`ÆŠêFšªTÞÅjó¢)élS•¥åC˜IKêp~ƒ è‚`Dšëi)Ñ5^2iñà˜­¦¸B(Ü…)Ì„ŽŒ÷ûKLï±={ÝE&NlD|¯b;šmªZÎ-yˆåÔY9DïñÜ|$ÏsQ͘b¶D›Ý3~„R¸²9'°´ ¾€ +çdøcÏ”ŽöâXN‹|qÃe„‘I +ESLÅ‘ö’ðý"ŒzäÛRä“Óyð6uƒFaz³|„Ì{LÂz.'<=òÊ`eØó½E‹Ë \Æq‘LüÕPëèÈH7Úp“9õ (;sÅŒDú(¥]”®80‰{‡ +´qX›Œu~‰Äàùᇈã±DUØäÔT™ 2N\èEynLJI%Hå­HgEÖ•eKxéc›Ý@®Ò@Þaí)¬ â¿Ë$& +’—ÝJl®N½I¶U£µ¬3Âå±úHÏ_¥,Ö|(\5 +3È…wZª ­ªÈ‚t¨ÂÄÄê3‹D•G:èU #“ƒ`ãQu0­¸^î¶ËÚ ãñhÝÞŽ‘‹£(ÉĈ*LxmUˆ3‚›h.9B„L@(G—éú9ðŸ`˜’8ÇÔêXÅ>ì!‘ñßu:5…iJbOæ²)n¬[¦ðp™èD©'<~Šlº*5D±2£X!R´X)[ Ê"Ýzœæä$‡Å8,[Hð/zÖHXkLÛeÉmæ^,žq±EcÖduEÖ¿hä×4ÇÖê†B%V +ûhaR1?VârYÛdè¦;0'\ °/xÚ=Žìà hÖ±e›ªÍ:ŠWuÌ=±OHµxx,N¦Ü0`lçàŒñ8‚GÇÌV®TÀܲG¤Žk¤)^ç*»NUUu/¢ò$G£ñãcù„¶’£ËÉ^òÞ@D“ó +KMÕe–´}Ð(¯™21aûe¦L&€¤¥‘!K(<…S­h,RU-:‹–¥e ¡–È¡3X°ºX"AÆ—îÆ +½²MÕJÁ¢¥bÁb²¶X¹Yt-GnDÁ˜§ÅáØ^¿ŸwµŠ½²å!åø*F×9ºÑ +.˜Ñɇ¥Òe*>ѱÆ]×cµiÙ¦hõZ´¸-\ü–Å—ØÁ¡RB.DÑ(?o|4µ"¡iRÚ„ÒõÀ|±Z4ªI W«E«Ù"õn´ä%¹Rn£áˆ"H³›¸ËFv(_]æ ¹KC£„ó´dm`âÑ”ùʶèÆ]ÿXK´Z ·ØÅ,-z)Úm˜ŽÇ€¦AP£¨²S†CÚš÷ؤ0¸šNtzXí˜}³(êY*(A +pU¹™ÕŽ)Y:¹‚K騬TPH¡ÛmK·5RÏ6Ò+x —ÃEÊåÚb‹tƒâGäuJpZÒ£ëÇ=g$Óà\*‚Ñ`”òUj¢å ±z‡XMDXMVÌèdÓ7[ª\€‚ĺAåyœÆRuŠpZrSiæèHêy¤< Z?P¥Ä@pú™¼ +’€3Õ¯ax›âı…" €gÖÿû+ÌhR7m\ïh³áRœ O·¸^³ªŠÔÈípÝx•]¶)^ŠW¥Z/R“…oEê¶b•]±ê¯,–qÏñ-S£ ëe"õ8øR¬f'VÕ)²¡bŽp!N¬T'F^¸=Q +Œ‘hdwð›*ÈB+D-’¯bå)øN¸‚%VâR­¦ZµL¼¢&R+‘mªRQ¯ºˆVfPA‡ µKäòù¹p2Ÿ^‰æûã5Ñ<5›­LI–L;‘éO)&‹Šç¬*©eòU¢ èx’:–Êæò + àÁKÓκ&XìÉÆò›ôV< O”FhœßŒ¤Ùª¥âÂirdcÉ„ª)‡pbBÆÛpíÐj¡H·#É£ø¤nãÑ™5ˆçây„x¶!–’ˆ%-Âjþ­³A'š#Ŷ)w öò+Ñ€p4b*Ó;€ˆCEyHºô 9O†:qÒ~Eâ U"¥á½ÄòÑ’Œâjx-iÞE£HôJ$ÐDE¢(Dð‘@K•PL84@ÜåQÄÏ‘§](,€RÀ¡j|+îËŠ¡ßu¬#®7FQâ'{ÂGbÇb²MQÇ·ÐTÕ9Ž8Ð1/e£`Á‰ ”J¾o„}HtîÂnfÔ ¸b(¶c§]"§a®j¡°suž¢ŽZ+a×!âYD Ø,Y´HîìÆXͪØÎ”É–¨YšmŠ®QÃ6lÕ‘:J=jQí0Fô¸Fô8Gè¼Õ9“ñÁ…ø€áTiÉB¯ÄÚ¶Dûº„í#,iûû‡"ͪf ñÐQǶ%5j¡ÀQ]Jx¬–ö¨Ð‰CP4))èQf ëâ‰G,v5±™ãVžÄ¡ZECžÙ:dž.ªBÝ‘™ìÉa»(è\ÕºÈO~Ã3ä>µSp 爫EdÞN%•‚B­žniÜ èE¥#}ÜvŠ2Ré‚RrL¤j›O< ˆÎEw “K˜ooò˱Lyú¤½"1 é¤È•Òkö Ùä6ª¥ä§HžiDi®|S +X‹„MÓ°¹BM´ò#‚ñ¯ØÄƒë‹'¿«6„:[tT†¡é¼>|8Ä©Mk +÷$³D§m«,.>i"ûâ®èTi†v~Æ­­jðx¼~æÓ”{ˆ4 ­Oœ.ŠG$’ÙäЂÛò4 ÆéÈ$¥R|.¿ÐH9Ò‚àÙ†Añ*yr)J¨íÔÀŒÚmu5Ù²á÷¼Ò ʨ ›ZÆ€mJJ›ŽpºHç8}¿@»¤d¢-iKú©,’‚ècê?¤EϨQ|€üé6† Ú0¨Ã‡­+6Ž+û¡@(’y>>HMXÁHVµº|ZŠâ†.USkÈ}}>ú  †.Ømý4Se ýY™•20ìcë,2$O©Q|@e)kGiÑåé°À +(j1žR3öŠà”e‡rpLRà*ìëÙά’ŒC~!º½òªYF€ÌæIdKc-ð¢ÿ”?~{•o"ÛÃ8‰:ƒ€6JvÅhíþ3ˆ«Iý¹L™§¨@,©¦*o©gL¿\>ú-iÀC.m§Nuý({‚—7H>ËÇGrQXhTóXÔ?«aÛã_ÂÏ£§s½=¥¼=›[D(i‡Nƒ¯Ô“Gsu[»`4#“V¾\yÎÿJ{ÕoÓœ„b3*±¤Ó¬XÄNõ3da¢íÑx£F|&¿)[ª@"¾ªS_h¯òÕv®r¶d-è&Sç"gÅ‚.à íÇ„L ’ʰñZ®´í…ÞõŸ“ŸhUNÅ Ó±B¢ASárg¬"ÒHûûOa#©¢Mªf5‚ C.gàEõ”¨¬Rô‹rÜØMÅ<¨ÞÃpÑYjQOé¼³ ´†™Ò¨ ½ÈO©áÛã_¤i`nƒã‰|‚„’Ça Ê"Û+O²T“P·è0cD˜À{ê!5z{üƒ4 z'ÑQ( +”ïpôIEªÚ+O)—”hߌÂ4Òh43ÿMÿ1õöø7YŒP«*22¹if5¡óéiKìÚ+Ï¡/äJ–ÓÕ9‰ÌñؾõßUùŸh¯òÙvjGÀCò &ᔑϬÓî?ƒÈVŒ!íÀ „£Ë•·Ô3†ÏÝÑoñ÷7œDµC~¥Ù0ÓåžöÊcBV]ãøºg_+ KI3õ¢ÿ”?~{•o²•¤ú¡^§áëX=S£-Pï-†ûó™r®«yv)3Г«Ö 5è‚̾~wT]‹4ÍÅHM8hšìMª``*Òù%üíq†c°˜áª:r!!-ÑW[âãsÕë•_Ô?i•_ÉÃt¹œZ‚bTûÌôNX[À.Æ]Í=¥LW>7Pn6Å­´0®‘¸fZožÞC üÑ©_¨‚P¸¤Sä'?;r='à8®ÀkóÂþØX zÚÆ²Ðõ ;=[ebxîÕ8<Í«qzÓûјo`Ða"lÃó0ê•t}F[}{zWŒÛXÀ nm0À‹U*`°õè¢Ú¸5¯!H2Œ\ ¦ƒœÎÖêôé_AÊ×µ”ò%åc,Eºy¢Gdƒå(tÛHL䮆1gÔ›f:_2‘ ÎC+MðÕ£y—I¾%)Í·(¢o¹ñÒ;8ÄÀ£«9<™ªdߢ62ñp†‰‰ —Ÿ¢BB€A.З¨yJD¢!²ÀtAìZÆ@›ÌÔ

[Çi‡ +TºMZ¾=Pôy±)Íe¡)ó•cŠZ¼4ÿ±Ü]úÍ>IÍÙ#$ïö}6Ým¢bo+m—{K-"6v_^ÏÛbg-6"¾L23œú‘תò^ˆñ±ÿÌWRÎg¬=bã@6úÐÁ«yoVÓŸ©9ÙOÄäø›½Ð+úfˆq Ÿ¬½Þì$Fíô~öÂ|¯ŒaÃni«³žÏ×ç¾?ÇIßQá8É‚žÎ°`†¨}‚œ½7AÍ]k…¸êª²Ÿ)YO¤Ôô‡ræ«äOÓ(¿l©ûc¾¦øë¼ ÷¥†—ò@W•þØ2ñ¶ËIs­!ºÖ’À#£bw¢ï‡úìLàS­*Z™~8ÃÍz<ÇËy¶ÑóÒ2žÍ ³>˜FÈÉK-åž[_Ë6Â2‚üaB†ì’ŠN”4´CE+å•ú?rUÈ¿+U3„\ yd˜ø})*òp +}¬À§Ø%ä ] ,HÁÏÿ´/e4µùïG°A×Լ𻻃é¯dÜðÛ³•) ]𠃜·›†^Dæïyál– >šF'Ø$€î”· ‚ÀY~iØxÀÃçÍÕ½ÝÅG-4‚_©XÉ÷d´Ÿwz0ßïöàÎÕ%»¬´ä½YÀ& !?ŽSÓ<§ØøC )àØ4»¤"Ò0˜î±Ó“ë¶X—òd³³è«a„™Q‹}¬¨-ðuLÒ,"XðBSžûfwÎãp‰ïv_ž»®.õÅbW‰ÿ5þ±¶üY߃ ÚBGX€l±/§oŽ"ÂÕùnbVæ‡ùû +JžMFÉÙW2˶³Üî)t5”}øéýr{‘‡®£èëlGAøÖ8*SÄLx«¤¿0ôûYFÊB÷eÐø“i<äTM·ˆKýÇ)á·6»ÊBO¦i%61*Â8TþmZü`†›öhš›öDÊŽ~e.ŽPÕæùóònnŒà¡æ1hè2à·;ŠÜ4¼„Ç#ÁŽ`£Î7æºÛì²²¯w¢<±ÉG³Øü¡ WÓ>Á:Î,:–WbŽ•løî(<Ø8ŽŠq(8¦LÜÞP™ÏJcö0í9Àu¿ç™ˆC%Ï0Aˆ]î©jùJ.vO„ŠÜ¿ø®íh¡×ÑLч¼4ÀðâéŸnrïJ'%|¥ °Þ†ø¶TŸÿþâw.Ærߥ–‚ë=Pý1FZWä1ˆI¸µ\[âaÆEía##ðàíÁÂoÆ0°Ÿ9ïW2œ,C¸d“ˆ] èø‡inúËnæËYnÆÓ½>xØ¡˜^ïA„Ï7@¼÷Æ*Qêf¤+4àjg™ÏŸ³ü„g†árÿ5ÿP ¼¦ée6*ñLKCž¯TÕ;fLƒ˜”²ÚóÓ·Á|v:á>úègÇ(-Ï4LN—±,7g¿·Œãã€užáÅ=T0Sžhª Þ¬wã"€šÊ>VV~-²™ÇZ&îp¦¡átVP¹Ö[槤5”úx–yg»µÐZ¨—MR‰Ú@…k›2_l‚?_ܧêåûÞ)Ñ.bæÉ+sÞKiÉŸ&èè%½|s¸ÈÝdf;P{¶QTø‘¨<è@†j¿3tÑ× x4Í€ijS_MPÂÿZnÍ|?]“÷EÌJy³ÖžÿùDI-[‚zUé‡r$õLɧn¶¼_nH~ªâ„ßÓïo÷ç¹L–‡LÒ7†0Q|hÐý©ºüÈýiJ‘¶1ÿã0)ò©Œÿn©5ëÃJ[Ú[»ñs¾£ÐOĉa›Âüê;€õ¿)g†<\ïÉÿ´=Vê»=\úÍ*†GšÇp À¹|Üì#¦«…\ó$%kµ½Äs£»ÔKÊIt'FÞµH`á:.s®›Wåz©¯ô籆Rb“`ãŒãÈÆ1øu KËØ‘O‡‰!l>U_2„~bDÆØ¥|ÌžT€Ý“2 fÉ%':"ô`ŽcÓÁ ÓGŒzºPŸéq¬` íSô±’^r +\ÿoì—ü°ˆŠüÿYf2ÿ{K8t4K(4ŒxŸëj[Ïç«…'3•X«˜høиè­I\|+>ìÉ¢ Ìçp´å± +¤”œS5©À0ñÚ†úšÄŒœ‹ï.XÄœí/ËPÙ·õöÜO»ÃYŸgIûrbÖÉa–Ò²·Gh‰;£Ü¼ùøWÀw7õÃ|7Û ?˜±ÚUæ?ßókÆDßÄ¥8Øy+¡¥ôó$'鱘ó`¾.õýV'Ø×8X| #gncj[‹>*XP‹¹Ô’äšï(óê D=–0ãžq{cø$`¯!§ÓÌòC¥xW\ècQÀbÔ<òR@1ŒÓsõ=èh Gìv‚=Î䨸 :f»¯Ü×0TfÅDÙ'™ó1A]—øt¡¥ÌË$"&˜Dø˜C% z<ËcØ”Œ²í äO»¶¶Ý1×2âP0 ;}e_uMÙ/55™/–Z‹¾Øe¤,@'sUÂÔ—2vü#‡ŒÙ› dïôCýÓ]VZó>mâcvǨY¶IÎUCjµÂ*!$nwC¿èóÜf[!~ëÃØ˜µ>täß+•¼= &u³³üëJkÅgÃ(:Ò¦À¤Xå賕`ebºY>œ¼o÷M£Ò‰®eܪ©• Èæ"hmêçPXYär6D„ôp×G XtàþlM‹QÎÁè{ʾ®uå¿ßÌz»Ü™òRלòéïenõé¯f ÈGv6ít¾ºöPÍ'ï+8åû2f±y”’¼;HŠZíǶaŸÏÐaÞŽ¡F‚i€›·ÞŠõÛlÇzðQ–QbŠCÉ)·jX¨% óþÔïHÆ,³MÐÁöI:äPÅFئhù69>Õ8Š 5¢ cÌŒ6TÜmµ øãV6`o€o¡å˜ÇØEú^r¬Vy¿Ù6M +ЫCĸ™š¢×ÊêÂ/kèûþ[ÃgX'Q;½^«í™¯W»Š¿ìËy¨ÝDÐB}ºË8)î™”–ñJÅ[i†™Iˆc•l(Œ¾»ÒŒÍûw±ºþâ~‘u¼Økw¸Øsk¤"rO‚M=Ÿ¥–«pé‹-éo·ºiÉfY#g­Ÿž¢æå»<þdõp‚÷DÊHû¸Ôжa~pŠ"Ö„Þû{NÀÚ—c./ 2‰ ¾ë½…_ŒRX¬]M®°«Yˆ=³Ð2É_ÔÁá +xa_ûX±ßÞh¡÷Js¢Ó|]Ì3‡›q¬2V{¨Ñ€ôÛ e*Ù€^³ÊÍ\¼Yމ3+° Ž9Z¹}©®Û¤nl5MU¤´ÍŠ Ã02Ú1E)¾èlG„nAýv‘G*.EW_ê¾\_ðFß\ìeèÇæœ¨+©£|¥­ªNeS²N´ÕÕ§:ß"AÅïŽ@¿/u€=¦kSÞ/vdÍ!¿€Û“’ò´-à÷gZaÝ. ©ë]p_5?û…©¿,po™y bág+‰Ž)F€÷‚C9½x·¯ØkšwWʈ¹/eÇ:Ï7¦¹Ù¤eq=Þ.êÞ0NʰËë˜Ö)¯bJª¾£Ì}ÿó†Šs£/ßÕ<Ž‹¹xß.a–˜‡(I†~jàÍc6†!?tíÙ^ó™[“È˜Í BáÚ¢àTSÕ|²TÛa¹ÀˆŠO7NQÀ‡ó,ê¯UžðdËÑac9%!OEõ…Gk‚6#À'Ûý׋`ñFIy¬im•ã Η8,‡†R>ßUðÉ2…Ž7c”u•{Ò²aŒ“·Ü†ò¬¢‹ŒTá¬aá\5,¼»˜wíæ?é*ο;„<Õ i‘ÆzâJ;ìûÆ'ËœêßS¯×%ج¥þòµ€}°Ø"9Y­é:Y¡ã¶D?§²ßê:rÞîÉ‘±gK•¼Ó¥êF‹”S¶3@LüGÛØó{¶©÷—¶®Å:Y½Øýv¥7ýƒE…Œ=Ybà6Сk}¬”©Ò÷^RéÃvLþm~~Ò_èè?Jƒü/¥ñ¼} zõø6èîµ+ çÛ‚¾»<¼„Oøv]ÆÊwÞDÇü³Ì¦ý^eÓL*rÎtÚ[ÖLø*­EšäÂ^0Ð.èÒ‚ÂÌHàš¤Ø°Kìø˜Kµ™i²Sc®‘cƒÿÀ§ÿéýãúîr34ëE#,陂_á±=@K2‹}>Rßû±3ÄÎXìæ$ÊD^"üu;ºüqMañuzrÊDDøå"ßo—X1W¸©á×ðÑ~W²¼¿^ŠøðôÚ úþ9àv©³"óñz'#É,âWìÉjèÛ“<˜®—ðcÀòb{MöLMeè õ²Ux]údŒ€qDU¼ìG=m*μWî{ÙíùЫûwAáï^^¦¥DÜ¡¼V7ÀºA:\¢böu¸IA.œï,÷RÔæ}Ú‘J5ÕÜõz†˜UöLƬx5ûkx_æÙR‡žvt5ÆýÃeD¸ÿuBLÀ5\„ߟKõȸ%mŸ¡£ÚJú¶¿#AFìˆ`€oúi³ +ZIAšZ²¯”Gñ™`–»öb3]øy‘!¡ÞW‹Ã/û¿q}xtòîÅeJBØ£NLÒ;''HßÏ9˜¦A3lÔ!€gƒˆš¾+"Ä;¦YÈc-‡`›&ç,u•x¨x/æjP>³ÕX¿ª¼¤[`_ïKßK„˜¨«ˆH¿«¸„×ÉI‘×€u_ }óüRš×çkˆØÐ;5¹q×v‰‰öi.Á6# îˆØùˆK]`ßÍ1ØOm;Ük¹®í@— +ÊÞ´Á²nub1î@­Üãå&_£¤ÆÞˆòøð‡ÓÍ¿@O×£[×@oÞåzü9Á- +ùµÄkúÏ“ï˜Ag®dyiZãÝO—iä Ê¤¸dœ˜°7…?PS‹­JVÅ®ˆž¿1L*”×V„ J_2Ò¢nWçÆßDEÞÍ ð¼Å/ˆvš %>‘s2^êP©ë9uÿ»ÇZ³À@ÜøÐN†<Àò®Q r®DE‚Â=Ý@ïîƒ\îÝ}|òôúÉ}Ðk‚^ܹ +u}Ê òºÔ +M»§d»œhHùv-¢AÍ3§Ú¹?Gªˆî¨Ü[ÜâôkôœÔ+¨Kan¯Zu%{¸r}}@Aï_‚\ÝE~ òùøtëÚUPÄG –?]æGÝœoF|U7”½Ÿd?›©B~\î`FMÕ³:IDFä,9åRö dŸï ÿ7o@¯ïÝ}{úöÚäíüôàÖ_ ?@ Ðý¿®ë¾òqvçø‡„^è²Ò‰þ®¢ÅëÇ…ÈéNÜD5ų Þ†A85! w©™)Wòƒý/Å{~ezyƒò|¼@ñŸÝAÏœ@oýx|÷.èÏ?þ½¾ûb/@œ¼è?§ëažÛ2D¤YHX*þ:ß h€’ZdPr1sôÄq!έYr‡˜žp¥âçK¡ xx (Òõ%èËóG ÏNO@÷¯ÝÝûë +èíÃ[ Àç ýä|µñh®¹è“q¾1^âcc¢Ö:+¾®taü&°w=¤²‡µPð-d|Ü•Òð`P¶ïPìç §‡ îƒ\Þ½½ôàÆMе+—ÿç¾8ûþõÙ +~¾ÿ±šK?]TíÏr‰ÇZ.Èå{2bÚú .BÕˆýÚŒ(|ŒŒŽü}9ÓËäñø1èÓà —/Aïßû~ôòî=ë“§ G7o‚®\þôx¿ä¯ ZfÔu=öûæ¿Ð nÚTµ‚½)jcœž¦h¬ø8È‚8WW¤ßÃ¥F{zé§›+Èýé#зΠàׯAÏëݹzôxWŸ€n]ý äöè1¨âgðŸ"fÁM]ÞÛÍhàñ<õï§êd•/ÔKykã¬l]/>tª¶âûüà æ^ɹŠùùG‚÷—KŸ€÷pj"àÿ€®gù¨ïÄ/n ²ˆÐ+Øä°Û‹ÝÐ0³¬,re’ ¬B¿k¥”=ä nó ¯¢Óó®Æ$ýàþåÒ“»÷A½}õð1èÃó— ŸŸý®`S³î5"*^O ðA+ðoöi +ئæ õ•űêeO]ÎH]e@  ¸Ì¸Ëð„èKå±Ñ—Òƒ@_^>}^anŸ@ßß¿Îí/`Oƒb¾~¾ôÓÃõBRȃNTŠó«àÓê )^Û TÖb¿L×Q¿O71ƒºP—&üi ÷™—w=ØÓäêò}÷ôúá#Ð#àsºœùéÉ#óƒ Û^9ߺ +|õT–p³šûQ[ +Õ÷SâôÌ$]??WTCõí¡Á«Ê²¯WC‹nU#Êoc23®Fx~½szzÔ™§ÓcPà›÷ ÷AÏî>¹çåüÈ à'ÐÏ/î jVìU9öÎ4Å(0)iàµ!dðrgÑg³œ”®³ógúq£uŒo5hŒSQBÌ?¾¸‚¾¿qÅ{|¹?ìñuÐ?ÿ½{ä zxûèãSgP´—ïåϯWªÀ OV:0{2Jîööçæ6t¹í§k'1Q¯{蘗há]pDø¥d¿ï //PôO»ósÐí+WAÏnÜöã)Èû+èÁí;_ÜE¸~¸”òíî+Ûî •鸌Ã%.ë`ž³«Э BüT}Ù;yîk ¼äqaXÈ•4ïo $Ï–@,?üë€ÃçÀ¾?=¼yôX÷§g. —Ÿ\_òBBÿÄ&G?š©'ø¯pÒâ¾UY+\é%E/ôP"f» ?ÚÉ%Ï`IWB?¿}~îòyõä ìïÃë7\ܽ°x÷úÿ»þWà =^¼¹>w„ÿ¸\S˜øG/,þÆö *æ÷*¯æ`žŽÚ›å‘·dUDÃt]íº„å"ßò ¹×àñÑÄz¸_Šùì ìÈÃå%èæÕ?AÏoÝÞ÷èã‹ç 7ÀY&yû]"g¥ßÂ2>,v•kš²œg‡Y)cµ$q!Ýg¼–ÞKd¹v IÏ»¬Bí2¥ìNqdîMd2ä>9zÑ+«í+_èí$oO41veUxùlsµBóL]õúTZ1ÈIžè  ÕP¾ô0éžBܹ¶ý¼ Ãq¥æâœKbKîÆäÞÂ¥gÞÅ&%Ü¥¥¤8w!^ÓõŒtý>~½·Ìs{aRUÑwBš~¢¿4ÖDÒ ÕWàÉ÷ê`y/Du¸Na]$Nz‡Ï-{Tžs½0<󪯛èÃÓû@-?¹ý[›éVC¤½¡£ž$Ç_ùöÞôàNç{¿½ñýøòírÄ· Ëiá©— 󯱡%¯GØð/ËÄ›ªŠbšdڧ؈c5¿æd¾ºnVÈ7N×rÔ#u%C Mñ|<Ö¥(3óFˆÏán^ ï0Û+7Ðý›÷@1Þ!WáÙP'JƵ—Eÿ>Á¥¯ö×ÑÌòÆúí NáÅË$­¬0K+Ë7ÇЅጪ“?VCöj "_bŠKåE%]M Žºìé`ü%P»A÷®ß}tñ¥†ÆÿJ8u’*ãÖFjf£Ü,§dhyìã•Æ‰“UaûÑruó¶ŠW~*û±=,ÒÛþueañ#bVö}TFÆÝ²”Ô{aßþòýèúéã Š øq9!øçÕˆïþ— +ÓÒ®Ó*Jœ¥ ¤PýP%Ì"©¥[dU“œ]²=ÎÈžmE|ÑõRãÖ'k‰òŽÊÄZ,Ä •s=ÞßçZVDè_ðŒ„;iA×=ß¾y¿s»’Ÿû(1.ñnf\ÂU +¸ä>Ž|ßÃÆùL7"¾Ë¸YO–»Ë‚O— '+às÷¦yx“¦¶zCQC“µÓCj ðÇèœì¿~~õ¹áá Ê ‹åG%\‰ö¸êùö()Øç227åz úfˆC _À ²JÄš…²iÙü]eKË``¶&¨ëõ¸å>ZÔl+ÎgŒûØM€¼Yëhƒm u±·G›Éi-Õª2Mr>Ú á@l3BŽm¾]iÕÕ4™f8È]9»Ì¨âã6¦*aëŠJØÊd fi¸¦édFÎuqV'ºëcýÕúñîÊå¡&øÚ@tg€{<Åø²kª{ +Ø"aAí“ 5vyϸIÕP¿%çcvBƶ¬¿ÖËLÔ÷ +rVúJ¦{›‹Õ#ÔĈAe¥ÝbB¡Ï{„MñmÜJÿ¡ZA`[e¥{S¥Ðs²…õcMÔÊ7Ïô)—ú÷uÂúÕ&ÑÑjý𾮺áâÞ„u– ÛUÒòVÇH±@ÿä­•?•Íœ°…Ášâ%QOÍÜPmét9|vˆ™2ÙB|píªèîDL¶WÅ©‡¸™kÒ*´cŽÏúÏ_ðŸÅÊêc5±=ŽŠÔà#¶Ç8yF™ œ)eYÌÌÖõà6‡I1›b@»j²\†H‘wÆY‰úYY³£c­Òž¶BI‡ vº_X´*j¦§šª÷T<ÂÖ0"ZUûp{¤ðÛÉ"‡w¾ÑªÛŸ§Uì))y6 ¼9UY±$©ª˜ê«JŸlÄJ[ëem¬0Å@C¹r¼‹­™hÆ.‰¨‰Ë£Ä¨Å!|èòÒÏ®áS2.j¥þÝ0†øñ÷Nø@Û!?œoè¶©k«ŒÊ*²ð»„8y}‰wCIÈÝC½?SI6ˆ )& &Ú0þiUX¢dïϰ‡:a­EÅ.w¨Ü͵KŽçÛħó ÇKÂ:ã4i˜"g® ‚¶D˜è 16 ð +ÅçóUüƒ™Þ¾²¨]&äx–˜w4G.1Lá’-JFÉþLcËÞdÏ¡àŒJ.jKÊEe5LÇL5Ó*&¥›‡‰1ÛøˆõArÌŽ¸¥rxéÇk;uØ­1>dc€š`•p˦Œ=ÙÅ ±ªúóù6Ù©¶±Ï1ÍD:ÔŒ²½)F¡IÂ)ÙãÌTÑÔÕl«Š‹u¨kkÍSõü=e½À g—nˆðQ›"\”QJN3LÍSèB?'u¥»lê“¬Ö Ùæh( V3¬Jr¡MŽŒÞ»Ù¨¤_Ë¡m†‹7+xäýùÚ6ëBC߆º±}k¦­wSÕÙ»©¨g. “£–Gù`½¤µ«`éèèÓy>û\Çcý_ÌNÕEDë49ߦaãKÕuç_ôC'\ô#:Õ‹Ïut¤cš^l”0ÁòZ¸ûiˆÏÓ+»GuÒªò5gYF/ÔË*a‡Ú‹¾Õ#Ç‹Âæ=5|´XÕ~²Ò®=^®í2«hE€çb/¾k8Ûf…}†‡Û™ d¬õVøì)ûsõíëè0]øÃúì‡v¥Ÿ¢# Ó<ú®ºšÙÏËx¿<ŠGš4~¼ l9V!âeÐP«²= +µÉ(ÙÇÓÄ¡’]q¶ÈchY¸Ý±RßÁü/k©/´ iï§8NúùêzÝ(—.i(ùaP0ðÇ«-Êmµp_Ã@éÇʂļø{SU1Ï÷ä°¬_Õ½Öźi38È$'T\ôš<]à Ž´\*À3MQE¨¶-çóR_ÁûR%ǾZ?´ ¬Ã6Ç!.ð¹- y8O)ÞŸÁgÚ§pI»£e¾[Ã%_oZ4-E× CÙÞgW·ôìÏ0JírRªQDˆ]j)ýb‘ã3æºK¾Ï¶”ºƈqæI\œc†Rà˜&æØäØÄC5z0MÉ=êîd¡Mq2ß"ºÀÀémš!ƒ r|‚A‚‹·L‘r”-ÙnR^Œç¯¥šÎ£ù¦~‡JÈØ“c%>&Q¹ÿÅ÷Ú­*6|iŒV˜£"vDPÿÍax€Ç”S ¾À1U÷KGEÿZT×€Ú§…ü³åÙÉj£Ø<_×iÕ6tîijë +*ÄX«¬<Ùöž®U·˜5ÔbYsŠëê(ºü`©®g[J[¥°Èó9Ré¹î¢g3å#¶ú³v‡Š‚4”³Œ^<ߜ뢩I~¸Ö•ó~“b›B¦ŸÍS±'‹5í #¨ôq~´³YEœëëÆmrbÆÞ6iK‚NZ†ÇìM“ÊO–¹ug›õ㜰¶—™ìlœDý½ÌåZ§é‡*rŽ]‰ß[lO~kGž­³¹G€¾íM³ÊjÚz-j.ΟIBÌ8]¨¤þ½ÂeÑ&:íDߤü”Ì>CîN€½MÒÒ°#±øt…L8[çŒrzáÖ9ãd±ªÙ¦a¡€ÏBºxîât–K>8ðPN=žE§Îr‡iINVîÛÅs|ªYO0«°é6Å:ƒM<ž§”ž,U5u×oRñ(ûí|C=_ ”Îb3×»Ó\†‰ž×¦QoOg)Ðý.qg”˜h›º˜uCÅ/ ÒŒâŠý öd–Ï:Ôð™‡Z6ñx¡ºó—¾vâ÷&¯a–ZâPSKNVÚæ » +Ì¢ ü«§QþGO!üžNûß ~ëÿnpLS X:©éò÷´ ö7àŸ&˃÷†ó>n¶f8/×g=ßê(þbÇD ²ßó²|ïïQóΔU”ßšJüù,àSdŠU^`Ëxÿ­â‚oíâïõÊšC n–c“Lr\¢]K9Rã³ØœÝQôOÃ(¿t·Ÿ‘c''H(iÖ1l¤aûÃ&þ,ÂÆ!žÝY/M¢Š`›œš³5HÈuˆ%1)mc ¹1ˆÜ›àìKÙ¥ûÓL„YNͽÀÞÙ|óÐ/Àלh+¬HJ7N’¶Å˜H“” +ÔrµðhžË<ͦVÍÕÔžÏR çt⑪4È"©Þ!BvÇàA–)Z¡®ûêÐçjë4L˜àkÇÅü.96yyTŒx¦@ÏjÛt5 ŽYR¾M…Hô?Ê*‡G8m9Îi]Ì*”…?T +‹"N÷çköïd»˜©"A„›&ᑎY&ó(iÛÃèP³˜š6_ß}d½ãY!ï`šƒ¶ËpiÛƒŽ)z‘IDL"$Þßì*ø¯õº‘w…£€OÃØ/h]¦~´Ô]ìu´ÀÀî¯ +[wÌ2£ˆ”ö_ëÂÎõÂÎÿÞ´ýׯíH‹É݃~[î/÷Ú'ÄîŒcÃfØÈ_óšã>ýHÍA;TÀùIàasõiÏÆ ‘÷·‡ˆ9×`&*³Þ©„ÉïìÓ¤’_Ëö?ëÜêó•J¶]ÃFïHÅŽ¹Ú¶“¥ú>‹”˜»Ò™ÿ~½üîH ä´E*êïYJ¹e¨"d¡6驌÷p³¶@E;”°HãxÅ€ “>îPÙü£2ñb>ɼ{ àïhžÇûµBAìÏ3qÖ*À;ŒŠC›øk­’ó{™Ã8ÒJ»‰¡Ot=°ìßkÍòß+ÜMƒoK +ýísðDÇ,2ål_üŸõªÎƒ9È!¬ÃÅf™CS#ÜŸaÃÕŒò ­to¬"hOÉÅ϶B¿­¶¢"ÏùÇSÌ’C )}_„‹ßî,vµµh“Ó7á!„È;•Iì€ÞZ¥´‚!xàÆPÛÚØm©àá"Ÿÿ^àó¶dxð /ÞE?T–ø¾vðl‰[ àâ0²1\üMÌ »wñ<¦R t6 㬣¤¸•¦ÒO‹u¹.ºšìóÕéOª“˜‡J¾YÅäÌévXx~„ÛÍ~DüG«„^²7ÅÁîO³à‡ÓÔ½IXäz_æ'“¸4èhŽI²+(p€»˜ûj +Ä®Ä&Î cO4ˆØ}UEäæ0Øw£â{ dög›ú,*à[°Ig3„ì#%¹Ø®Äe8¦ i6fw>× ~³9ŠIÔ´—%¬õ@ü”´“f,ûjüÞ±”|¦¦–žÌÒ.ü5çLÇgý²ÂEßË$*Ða½·¤ÄT]PkbÎ$§cv¥d°ðµ' ²cšR´'Çg9”ÔR›”’e㽎ݟ¢—]<z4WÍ?ÒÕw-VטåÄd“„´ÕóU³âSÍUÕœäPÓ V9£ìÈ2‡*úDÍDZäèT£ “±§¤žéªëþç¢gîjuëïåJÖ±ŽRº¯®ˆ4Ë »ãÐo&qE°YŒøa•`ãRRÖÞ.Ö6EÉ9>›MIÊ7ŠPq»ƒ³òŠˆ &dûÝYéÅfý^kŸ.U·ì«ép«›l’‘Ò>*ü[ P´]1>iGDL7ˆ©F`íºf°·®&磱 æ·ÑZàiAÄZ¥¤œõ~X€UA(øµÆo8_g1tøB‡dV›äùþçK¸¢Ö™ä½iJÞbOÉ÷‹ù‹Uu‡€·?_¶ÿÞ¨n?^ •í«a1›ƒÅž yŸæØœ#­ úlC?]`Plì|Éþ½FÅ9¸Ø0 [í‚|1J‰é+ÃÄ m'Ó*oo=˜®¯:žå‘OTT°]E+¶ˆ qv1í¢×Ú<„ùi#¦žÈE[wc?Äk­ì®Ä>Tñ¢o/Ôd{nÓæÚ Þkm^¥Ð(a•Y&9°coÿÌ « |¶¬&õÃf"åÐC;P«{Š ^<Ï82JUî¶Ôù¦n.õ`ç|{bìÆ&ûÈ1³¼üç3œ´û*Vêƒùêl@ò_ØÄ˜ŸÆ1jæ@ež{øW§Ëœ¿gûòJ¼IN«ØÁcâ²àÕÞ´7 mñÎ{“ÐPýHYØ´0åÝþ®øÀ÷j‰¶ÉB_ãP¦›¾+æ™Frg£#÷Ó¡ŒVl–r*VûQÏ1ÿÒp°gj>Ã&'çÆÐ¡»ÃÈ@ Vb·ʾÊjr݈^7‡ áNG@ßÁþÜè,tßéÎýl…xíæ|ÞèOu;%”N3{bTüP÷ö)r¡a{´„/9]£bí²kèHmW‰—~<ÏÁŸùÂ(§ä® ¡C-ØhóÎð£o«ØñwÖšs?Y'`q§€ÞŸMS + "ôOmsáÛÝAd°UDH´ŒvGHq[ý¨€í^¤¯éâ~];Æo¡õ]BÏw[¨-ù¾;Á…Éy.räõY^Ì}ûD™ßÞx©¿e ôkކ¬LqÅ'¹Þ–qsÃÏç¹Ü= $ðl¾(âx¾8r©7éÓB[¤óZwî;‹„¹3ŽKÔ÷ë×p™ŽÙÚ¶c`¯6º‹ÜÆéÑ·k‹¼/«I/mRR~#"êm'.ÒýPS)Ü%&k……¯µ¼ÌGZ^Ê} 5äÖ ÆíOm]¸ PLj]¼Ý¶ŒÀ69c—RäȘ¿uTØÙ<}<ÇcœÍó8¿—þÕÐÊN´¤âS-¹äxš˜y ä,ëH©¯¾!ýùngæ«:Á*á”éû0á†t¤ugcv‡q?·ûþs5Ù×:JCÌSLØŸÛg9„Ó.ãHÍ‚ŸÍñ™¶i6b†^q¶ ¨9˜VïȸÐ=MC“uºŠ¹'¥ç:d„äžBÏõÎ\7»¾/CFF +¼5Â(§ÅÖ¤W¿iøß«ÂŽC5&Ë*«s¨Ð‰F1øIÈv¹Ñ*‡Ål"ÂÝJ5É.ò¯òpމ>™c"ŸTæP`ÍRDÌú`Ù÷£9ût¹}î`IX´RÕ|´\Õ~ ´TË@›&Q1€oH´È‘Q!Ó1ÇçXl¼¯ðO–ª›*.Å:‰3¡Ât y.¾ë2ʉJLsýs¾±0Ê4ŠOÐÕ¦9¯µe2 •úÉñO¤ü„{ õY/Ε ÌéBU½EFL1úz¡;x¤e“|‰ßË\îÚ0)n®¡ä£ELÊ;[ª¤ïˆ±[}ðï]%Ëõ9ï·{ _õØÐáÊÌ´$÷?åôÎ0æçJkî˹ڬ纆ü·sÂÌçÚšLçõŽw ÿB7†qÑ«=ƒüJÀ‹ðö¤Ä<ÓDEøZWÎÛatÈ5)ù狾ä`NÀ±HhÙÇJzÙùl%ùàY,XÆÊ|WZ’ž¯­tA½V»Ê}tõ{£¬‚cUc£u’Y¸Þ ÿ6ŠK¾ÉLþd~ûSBJp2¢å-؈fxôíõ¶²ˆçy¬} #/Ôxhk³=Í#ùÁ‹-9oG)Ù¯–ÚÑ)§ZjÅRK’ÓF_æg»»+* 2Ž–†+ð# «êò>ʸéïg+¹¯ÕöŸÎ³°;CÈÀíD qýKÍÄ(ÈqJ²‹Š“óÝ>ÎǬ´#ü¥Ô´G"lò=9-癚—ùb¥)×c§‘´5NÍÉðw¹LJúþlw€Š9ÑV×l d}ÔUGß[¬Ixh/ôúµÄ¢ÎUrúX©>Íð€Çÿ»+è:ÖK-£ïÕšô§3”˜[JJäÍÍæÌ×ç +RîB',.'àÕ‚â €_áÌÒa›½Å_fqZK¾Üs~8ÏQQºæÑÕQZŽA‚Ëüg©ºî÷<ýϵÜ6Y²7ù¿ß~ÀHÓ e˜%ÔôC£d³«Ä[+H~6Ê»7†ò¿:÷¹"e„;D¥)ÿ½ËkeÇ|XéÎ9[`Î\Ÿ/TrÏtÀu&¡aJNøå¶L×#-±?ËÁ™§è…Ûbb‚}† ;Ö²I=×ÿ]$œ^âdæ˜BeÙ5IJ3}ÍÐá +¯Á¢!¹jüµI†IÙŸÅå-³ˆ6 nVÐ ÷5ÕU›£,ä©VÀ½˜‡w¬â ¬Ì<Ó!v­âªä¿¶ŒQ #訹ªäg‹µÉ/.z!ȹÑÏõ€Ç°‰á§ó\ŽAήØ&Ç^<û}¬f£Î¨°¿W©è¿×hä³%LþÎxñWã8:êPͬ‹iºÖ‹9ç<”MÂÇ«¸X›—`ᥔs[JŒ¹¾#&¥Žq2ß)y9ícÌ¢½1BÜjKѧÍÎâ/V,t®>㕊Ÿøx­âýK[Uc#.¶å}\é.òZî(öZo-ù¾ø­“|¶AŒ7ŒR3þY¬íüwEØv ¦—.v€ß­vd¿ZkÍ| ø%Wë$9cw”¯­…¼ÝéÁEL1K £È›}p¿)~á›Hä ^Žÿ>dìÓ 9yŒWø™˜ê}mZ˜ÿãl†V¢kJun.ûú%î%HŒö¾aÈõ´‹ 9¿€L`”#SçšÓÝδÚ¯ACxt5¥àô¢Ÿ³œµ=ñ0rÉ~ «z¶­,rœ“z7Ì\ ´5‰It Ó¾Jp ÓWõxARñ`Šœ~ž—ùôû1\ܽÿ,³Å¡YRÁÆ`å#ç(øµo“µ«Geÿg“ÅÙ3L3ŽN° sÿ^nž:˜c‘Ý£%뙺ÆJŸ8ÆÊ"8¬ ^@sOÓóƒj." dVôT'ü,Ì}ý¯>ø§cÓ”¸ßW; Ÿj)åY’ÏV6›™wë[µ(-ò˃ÒãŠ×†Á/wçqù[ +D²©¥à[2ä/€Ÿ¼jE×¼2NÊš[¦öìíóÙ¹üµÑ•sy¥3ç²µ#çFP_½3Oª\Ÿ€F払{+ Ò/kÿ«—,×ß_`¢zZůvç¸Ø FñC³8Ï#ø¤ ‚ öLb?9Jïz!Ïö5L˜[ŠûäèC¿ L2¶•¸4€)žù'Á/}2€ag)%krz¡CÎmë¹X¿ŽX2¢2‚Hlø±oªNÙÓ×d-2ñ/RÍùfEeцé!À¦‡@œõL"¢çër/j¹ég Âò»Æb2«üÕ/=¨„ÛS<”¹µìá(þý/“ä¨ß µ©ge¬øßä´¸›}UQ_„¢µ‘ê׎ \†WÅ®ñ)ùÈ5¹`G ÿäž*}ejκâÁÄ}5×µ}^‰|*€Å«ßz'±A!Ç/8U‰Kw¡bþW'LJLŸY°÷Ã"œ“¤¬•1Z¶JPvYÅÊ=­fæžÓòK à“ÏŽSÓί TÇ.÷ÀÞjE9çœìã¤Ì{«­åo¿ ðÕÈBïϳqæ!È}KΓ¯¾ð«MPïâŠc¤ü©c üÒ5p¸õÅÊãíYX¯’”·­£CDu[rÔ'{wÙ]+ù¸A’vj©½ì¾mˆPK»¹ÿ£­–Ø:ɧ¢V¸'*ŸëkÓÿl¿8ÁÏyðƒŠžð©(¤æSLM°w«]à—;ìÐÈÁÿÇΗ|5s¨!¹80‹OßÑQ@-ì˜À¦•ôª#@K†k»údÐ×Ëí ›UnÿK”u÷»¥ÚÌG/0°îIlRHM*ØÓÑ+ ˆxç“ÓÂgjàãôüË@»kj®|¾ÖSz70Uœ†ÅoM@×zK_©9Ñ'¶ðÂð÷ÂCe7«ckÃ}‡öç©Ðlÿë›Ó˜¥Ã -¥7¼*Îoîšß±vÌíó”Õö zì•BbBjbéÿ9é̯‹„²¶&íÈέß_m”Z˜ø£%€E5ÇålëH…@n +(I¥ÆºÂ{5¥D×}枦€ ®{—¸Ò‘÷§s ð–{¤<ÂÖ’{Õ#Ť„æ9˜u@ã8¤ð7A9&˜§Â€–^ ü»»À%ýï»krܶ‘Û6¹ЇÛê?ï~O± Ã#wu4â祆¾ÃIígÀovf)E[“ØxÇ êÝj>z± ©\·ôA?mN’3¦'Æñáóþy7lmèŽZñÖ¥|g–Zî³*EG;x˜0ü*j©wºèárwâÙùÆOÈYï~©ùû | ¿ríÕo¼¹IJ]-s0‡ÏõL‚#6GÀ}SÈ×!^Î]žߨ˜bTm*ȹfȽalÜ/m‘ß5WDÇȸÿ¯Y^ÚU#Hà×gà‰~_ï'¤¬Ê=)70‹²tdßá~¸$¥GŸØ™«Îü3Ü¿bg›µ1~º9 y¾«#}¶rXË\NX;ûÔ¸,€Y;s,€·ª_­Â_® ">lÉñ9~)oc’4×Xyw›òûÖ8"ußD…ë[3¯iãOš: +î㯠 ?]rA2 1‰¦>d:êÓý_V»Ë"ÿ³Æá˜å^$Ú5Š(˜§#Â=Í=Jf%žmÉÉÅ»zÓ5…޳õ–ß±´—Ý”3sΉ #wÁ£/¸‡¡‰¶!H$»4òœsšX¹«gÔ¬ U½±t—ß1w•\·ö\ñ+Á¯¿.ñy»FÏ!cmk™ÕGK¢Æ¿í¢¦=²Ø\xKÇÍ;·ÔºéƧn)9U ¨—!­€¬ cµô ­üñÏ}ÐÇäØŸôœÔ?S5)ÿo“ßîÒÔ@$eO~s ãó¿.6t}]äо,àJŽLÈ×DÑóÅö”ËæŽ”s_—Å­Ûæ¶)¯F"rËhş͵]GFõË¿¯£U†”ðøÍ¡üÇÞ©Š÷Ù…->Cm£[ÁÃì-Šë¬ÚŽ–T´¹{¬:jwN’ûäç­9!scšœÐѪføœNô`KŽªˆÍÞ¢››]¹7Sè¬ð=}[Åí1zá–’‹rLá’S¸$Ç$:Ö%CÆú´Ø´m µclîÛ[h›Þ[l>²4 ¶Å_­!ðS¸ Œso `I)ߣaTúõbÎæ.¬OÞYZ¡­-Uw ¢Ü öβ×.)2ÅÒ Xê ¿ß®…¬J cÜòõqrê&Àƒ«#Õïl# Ç{FJyÈërhKɪ i$œ€–Sã”Òü³ØT  vŒäR·ìšÆe‡{­nÏñA-Òþ=ÇF‡{u™©Õn2ÎÜUq{eåšaÃ7ä<èR'=ÎÚÂN0‹±OÔ´’óÓ”ÌSšÚÂ{Ú–’‡=ÄäJ^ù+Ï­ÐÚ]õ|¡!ûªg¹ÜYôÐÜœuÍ5ZøðÐŒÊÚ5ŠÖ¥è›“„”“½o⎖¸Œ3›ô²g“aé+¹çSW'ni¨¥¾ilOÓ%=0tÍŸ½:y¶2\tÓÔ’vañòÔÚ"zy—ЉŽûc¥£2â`žGÙãQ¶u, R¡%2Ó:Põ\'.ºö%܃“+r©€Üæc#—ñu±±ï ðØÞãšÄ&® Ažù”á½_B²©ã’Q +wý½«cÁ÷œêÐ4 êŧ)Di—†ÉI—‚³Üê0.S%ʹè™Á¦ñ³oá2l\öÿvŒbþæ­$ r½rvùÞ­Ò§B¥®T>s "Þo Â_„kw¹†ª¦Y7×GPY«£Ð$;ÿ¾Š“Í5ŒˆßÁ¤Ì2À;JfÍÚpeòrOÎ [WöÕCƒ¼oðׇ¡QkC…·×Gòî.µåÝqJÁQÛˆÕ€?µî.r8üü]¤ì‡Ÿ—›ÆÍâ†}=î‘Ö¼³6\Ó “/o —¾ûgUÐj@|TH ±ùÆþÃÕÆi¿Š^º:ˆ|èÔ«ÃØ”=Zâ±vÃõÞ4ˆs—è’âÜS”l{¸ÎRKþåå¶œ«³¼§–Zr®­÷!žeB¤¥¯&A%ɼ¸>ŒˆÞž%•|6“ Ÿ-d辕IØò÷L"Éþ¢¸ö`¡¶ñ‹µy"Üï‹E Ü73Ð~&#h"{ ä"ÃæC?9ë’WJ+rŽP2TŒÜs-¥Ï¾m*zòŠwÒÙ[ñÈ3EÉ2 QÒÚ)ù7ú©ñÖDZÛj>aGË'íH%û&È; è‚~L´s†SãQÕ —†¨©¶1Rªk†T°­üÂ„Êøk™ýÛÊ-Jj1Òwç%‚ýÅÆÞƒÅÚú½)¨Åç{äà(·¼ê£OF- +(x°qZ–’¹Þ-¼Õ]|±¼³úÓÉfpôïcĤsæÚ‚«Iz¾¼®üY+6éôê ¹Ø¯7Gñ‰Î è› úÞ#+²3Îh·’‰>X® šèðm#¹,dÀä ¸ÿ‹¸¥e`wx‡Ÿæ ß%V,v¡ |3<˜O.#(Çg¸GPÑö~t”Bº-¬ˆü}m•°1FH´õÁŸy¦q)kè–>ÐãµñÊ·^&ðGÒ|wõUSÉ} ç ¾®Ô …ëEÈ®pmÉidœkº&Ù£¢”Z0±€ÞÞ1òxû‹¾OMȵtÜRsÓO+˜YtÕ¼=±Ø–óЯ¡A¥œÂ‡]èø3‡» L$0þêÿíµ3~¡áa7¦hy.%¦©…Þ["díù;\C}oŽtŽ"£ÂuMuŒ„ßz/þXè¬|ÕŒM»sûô7‹]%QÿØ(耪_ËL©Ú¸Ï­cV{ˆŸ&ew-Èh9¯äÑpMÊïjVÑ-· ÂÚ°¬òz[‰ÏZ|©˜rfù›_Iê$Ûŧ +ﳬ‰ñÈñiã˜8¯‚”»2FL×µ@;¦é£¤q×@­ +ÎBc|Jp´o‘ŒhäQöŒ"ö®Iĸ¤ÃEQíá¢@î[¿;0þ8%gs€˜¸1„ÿ —Ý)~óÛÔg¾Ʀ_[ëǤ/µT=^n¯¸/g¥þ©æÞfýÙMI»¾ØM̰г:‚ŽÞ"b7¤ÐWAMMò;óÏ&¿é³­®ßZÛ02Â÷„©GËág›¤÷ÀÚ8²k®mqÅ«¥–ëûfŠ—ue€rî@+aí…{·kÈ»*F©s½Ô^|ÕÜ–ÿçê ì½[Ψœà]WוÜßÖ¬;Ç#û]Ð :Rw–”§i…¾T4T¼Ü±ˆú÷m¢&Ÿ–RèV²·fiÕGË\>ß > î”Ó—ûï¶çÙ€¶¤UzUøì•Áš´Å–²×+½°Ø1x†{ +·)ÃgŒó o ÑÓïùЫ¡•:åÔBš^4òÈ é˜a”z5„±£æ½] +¬ÁBÓ€xíSÑK\ãØ¸þê·«]ÐW«#5)Î.LVЧE]´÷WDnÍ€cÌ]IçMmI——‡*ÞéZ‹£æ[K>øgP™¯òÄö)lÚlø±GÁBY,4üÁbuŽOUðTÊ|ú“”ôò—‘Š_m|ñš”f $xµ|æK›â?–úÞÿ®0ÈÙÛzdÒr/8Â7E/ +ÈxUÛ³Bâáróä‘­iâpQÒè™Ä§Z[*n,ð ‚xgk/¸¾ÚS|;Üa±½êþröup¤¶f­ûnŽŸi†r¡ñê„ èþÏœ¼»ßµÃ^sŒâ³“ätŸ‚2PJƒzjÕá‚Pr`©Ø]ªmÍsñGfÛ+'fïêØ@0¾X¸4ßœ€¼©àA\S"øj7'UÎ-¿QWþᘗ)8!„;ûPQ¶¶¢ëÆÆÔÓÖö¢k#è(koõ+çhuôÁå›"eúdô † õ«0I>2Þ= ‹ÖÔ§^•dœqŽU¾ùbaÐ<:*tK…JÜRÂcjDÊþ< úo ­úßKÔê¯ážÌ&6fKI/ ósP'¤ïÌÕ7úÔB’¹5€Ë8Ù‰H<­–ßîÆd\n,?ciÆ¥lŒQò—»àÏVzkÞô`’ÏM³Ò¯øgÈ%Þv©•ÞCÊ:­®¿ßR )~¾o"ƒ÷ðe!#°K\†ßÀ„ùçÙ¨]s]Ûþ’°îàåKËäîbCÇîb]Ë&°þÖ~èÓÅΊ‡ U¶|~+*ú‚Œ—yË?Á.v`ÞÏ‹ROÏrâNš›óîÙ`Qƒä”Óraþ“=@óyfpÙ–žŠ‡–þЇ›áþz:М]S]÷çFÕ¶™KóÌr^e£ 4×%û¼,j +0`¬Ð0ÞpíÝ×H¹»Àó}CSWp–ñ*ðé«£°(CsñõåAT´GI«<°ðë*<È2ŒN …’=[mo`ž‹ ¹xÏ,½ÂøÎ¾YÒ4Õ·nÍÕ×:TÌÒ ®V°o¬mú¼ ®h85ö zÖ²”[hef:¦È9‹]·´Ü'¿4@ÞßÖÑ-6Ç)«þh¿Zl/¼áœ!æ®É„›”Uð%õÈ,®ÛRó¶Ô˜L— +¿)‡¤Ù†@/}*lþ΢X`æ˜ú‰¶ôÞ?+ÍŠ]==ÌLÐÝîÀ"jÚ5‰ŒbÁ®Ž‡ iøØ]€AC†Úº †‹öβÑ[J*˜—š­)brpššãŸ¡äy'Ñ ­9׌õE×­]ÔøhÒ‰a|ÊÉÙÚ‚›“¬¬«#Ø”ÓÓ”´3––Ò{®Ibê\ ü‰µ—Ô‰hn«fgžGß·4jÜz¹ˆñöášèÍI\Šº.ûZp†Þ15´‡ÏÁxd¤Œ…ÆŠ›]°?6–¼úVÁÍ;O+zó3%ýÑ1sSYt@AÈö+±©~%.Ã5‹]îÉ:WsVE<¾Ò^útc‚œ¥®Ëýs¾¶àº½ èÜp]óÂldøÑ´9]ú4 ÁæÿÄé¿l #ÿ¶ +D;3ИÀDÙ³"qßÈÂî1Ó5ƒI_h-½å”ÒAn9;× -ÇŸ-}÷¸¤äÃïæºÊ݇®qTB&æ·>äÇÓ+]„Dï¾Òy1Íɺ4[ºk@Ejšj^- Њ¶tõ†òÎà²6nßÈc~^ˆÌd⎠ê‰`¿–ÐÑ«–Çv–$Í£µ2†LY+PÁ?5ØŒùNT|*ýº®ëá–X[«#¤Ø¸SU‘§d¤O— ü„ Î!ð›=«ê(~Ã+zù»{„ ÝÓ7Ôç¸ä} ÏoëÈ íyè`…E÷/Rªl2lr#ëFKMÌåÏö†Ñ=KëÌ`Ëá~Þkýå®qD´_MÌØ£¨+}Ú?½Ü‰ئr È5^9ß<ÜÄ:ˆ‹Ý”’ŠC€Ý/OR«ìØœ ^ÌÝ69ÛF6ngIT˜r›ž‹ÞÒq‘~CÇøæ4Ÿº&¥æø ‡’Q6[{ڋʼ0ˆMþÓÖ^zK%̼5ß +Š]Cç à>sÏ r÷Ø} »—XÌ= Òã*Ýãá|Ó7ÇÁ¸Ô4CÍ‚zæ-Ö6ù»m]Æ([§íYÚgCæ.îµÃð¿Ú‹µÛv Ћ«3¬Ò™:ð}C;ð¿uÂc²x[ÍAy&ˆ‰®a䛵¾Êûöö’k~âIµ0ïJ¯âϘûg¾‘”¾ÿÓ=MÚE¾_lßµuUÝ_¨xì=ðOS}€±O‘J»È/”DpÀÐ9áÖtºg›ê· "Þ¡YÒ°» äZ‡q öa +¿q¹>%äžÂįt"^*Ø%w&iù×€¹º‡Ïý’þö„©’´5MYîοjë/¼®«O9?ˆyq|Œôþ¼”wÅÞ[ùÎØ{ÙO8imaåû¥äšÚ7 2·u5I›ÒÊ7»:äÐÈ!ùT¤‚}µâ?f:úßÀã¿6Aí×E!ÿÀ@GØú +î¯ö?^›À¥JÎ1òï¬õ‘âìðg‹MùWt¢Ä³ã”¨?š Ï~åÜûv–}EÆ+¾Ç+zÞÖŠXꨊ³šX†OóÎÐK=2L–GHߘ¿ô-&¤•ÔoÏ2±!¹Â!+z·&Í{㜆Äçn´²)AîR¡’ þj­íúb%AöÙ52iˆïÛ³4kŸhïC¿q Ñ2_Îw¯÷´¤‚ÍaXÔáãùzÚÀžÇ˜%ìò•AfŽeóno`òE +ú`=´ÐÐ{ÀÿvéE²†‚G£œÔ‡Ÿíuµ€êžá#j>Ã/Ç–nIqîaXšOŽ-”rr¯õ’R¬ŒÔä­r¬½„h[?&fm ›è”QsW0ázl™n©XÞXõ|BPôÚ§­kÎ×6„÷6q²Ì«¡ƒ€¿íX…’€Q"™ïÅÅëÚÑï¼:1Ï>ÅM2J¯6UÄýÑZñî×õÐíà †ô,ôžI(° "3d¬¬3‹ÝÈw¾9‰d×*騱 êüaNÒqPÇ®1QS7&Ù`ŸŽŒÜ#r÷–øM–޹¿Vj{½«¼:4deâüá:a³ä½ óñ’”Ypg¥—kë¨z0'Î:?ÃH: ˜Å’²·¿ ’®.5UEô“²®å?»üÍJgeôŽ2¬aPñÎqäÇånhÄæhé#ôÜ9Yþܯ`”-Tg(€Ø¸9†Š?X `Í$Ô™ýl¥ÕY©H¿•êUTübæñ÷ bñáb}WØ_v 䮎X䙀½·tÞQóS.¬ ?X‡yƒÌÌ»šúüGÎIlö(-ûÑ(%ç& Ÿ’vÔ\$ ñ 탘èõI\Ü¡…E94Óˆ‡fJÍþ"©rÇL®ò›YOx_ø‹õe…[kFÆØ‰)Û±ä/ ‡ã¿¡~:7/κ¹Ö{¹£¢íhi +èæb;þo†^âSಭ½•ÏZËn­ U>rÊáQ5µlKÃ$ Böú4­Ü§póBŽW øˆž…Ø·q€×L¤s†V®{è—Ê)àûƒäÄ¥öšWR|Òï]ðw§›!//IÊ#®´@ckÁåÇX¤D´_O…:å„Ï,áÓsñ;F*Įǫ&—úÔä|Ë ôí\Kéí…>ô§­y¡Ä©#á:b•‘Ïué0§† q͉¸!@÷yÔÕöÑÂ-m$c¿.óëþÙ¶‡Ì üá2 Т²6-¼1^“¤i­HsËú€Uà™æ–oŽ’“,-°û“”¬?:á ?wUÇþ8‰I8µ%e”¯Ž3¦i'\ƒ5±A!50ƒK†Ï ÊQ©›“ÄLS/éã¥ðŽwŒIÙµ¶kf?äõý%:däÓü:!Í¥ª¥Hkq±)WZ •{ +f•½½üÖz/ò¥¥v_Ë,8e^ð c>­Œ’Ó¸à§Zàq—ƒ<\W§BÅÛúAǘ)ç(I'-=åRTì ¿"&/êîñ)Z½Ö廆ZIˆß{zB‰¥¯ò™¦!óÜúpYĶ–UÝþøÇ|}IÊ_æºÞÏ€fß×QJv4ÄÜÀ >Ó1‚|¿Ô{¤n€ÞkÃf_!fõOp«×{yiC¿´vâ¢Özȉ³Âò[àè㵅ϾõŽ¢“æJëò¯d¨ÄíYrÅ¶Š˜s §€Âýï€ñ}2¶•Ü34•<ðËÃßaÔuºgðÙ¶ðóPøû..÷ÀL¨üï“î¯Pñ0ûÚöÁ ªŽ³¥d”†÷}ØÚ +®ë².$™W¶ÕÄRU[Ù{HâÝ$%¯Û5°±¶nL´µþh¥ö°éçáü˜eBÚ.…%Ê… ºe°ä¯Ë€.°ñÛ Ê·ö÷ª¸38‡É[ƒ>dåÞA¦>:ïïg3¡kUÑÎ!HÔ•í­xgj̾9ˆz÷Óròm'>í9ûé 7çÚž‘‚Ü_ CöÄàyEˆC^5)Ç­ å{´ÒÆ ³<¨åwçø”ÏKlÒßvžèËuøþúPÉ#}cöC[uä-ïv?"þ—æ’w?4Gk->¹Ü^µ«f"ÖG1y³â‚»Jnî9×4½Èc‰>9&gK‰-ØRQJ8@=XfÒö, âö—éÔ1Q³¥­£ÕŸW›U{˵¾9Ék±fN¸ç)üóë”Õd¶#bÏìÎQpÿç­ +÷œö«ÐI® È˵¡ŠÇ»s¸’ÿ:E½ÛÙ7#€oM á®qVþz!vŽ_xi—pLÃJ:á*±Ù‹ˆ·´T>ž_ð+Èù˃o-]Ew—;KïY:óonôU¿ +L²@_÷e™Å ™YD¿‰Ý5 xÙ[´4ôï%b¿ŠSµ­`Wì«y5û*iµ‡ðq¥…ãä/6ÀO’Nè…¹·t’ÂÛj~Þ­¤äÏåb’VDôéX0‡ïœÆ$lcðÊ©á=$9+CÄL)¿ì­àÝicsiÚµiÜ£¤‚Vï6¥È¸-¥dß@*ÝÓã +·dä"S+äÉæ ®àÀØØ ø’àpžÛž¥oŒb?ñá½üQш}ÙŠ.>;I_ ïg6Ö—\ÃÇë¬~õ}2úçqrö@ +ý¹Ô y¥ïªŽ.zsý{܇›ÇöTx€Wˆ ­$ëü%òc{ü9SGò™ÕÁò—;³,Äî|}£®»:‚KÿØËÿçd ÿÏÉüg‚ú²„+iP‰‹•é¹ïN3^Ûœ "Žæ¹ä5 ’ 6áqrnö¥( Ð`‰§¶§©9 ¼P_y×;‚M +Èhþ|z@‰Ï (©5Ûj*DÅO9µÞùxdà3-(Pi>-¡ ¨§Á¾Zj;wôl䞉KݘdBgk!o·5ôÊ=#½9Œú`^U ÒNw">œÀÅÿ¹>´V.¾àýÉO÷.þ8D)xý°Ë-â£W‰øè™Çlk‰ÀÜ2€vÀnLáSÜ +ZѾ¡®6¤á’6Çj¶gI¥Þ d¬Aœqyñú7}èA6ãfÖÛÛ?wcÒ/Ž`R~€Fÿ ¡&üªaZùî—6Xì™Æª˜‹³‚üû3¢’ˆØ;§¿|¼û릌‚´c>nLB£BF +Ü¡ÄçZGàol“Õ1!ÀoÿŸ“×´6‚Nð+9„ƒ¥†¾=kãèÑz“òˆ¨çó2 wÄ(×XU„CŠx¯o=XDÇyÆq Žh¤s°*v³¿ìÝZwñ‹-»>HbaÕÓiVÎ͵^0þ’ë +júïcèø_¥è?Ë~Yg^tôCž.ôU<Áßk­Ž9îÅ¥z§jâæ$Ù7MõYw½ÒìÇUáÓýèp‰Ï?²†ÏrÈF;|_}Ï ¤ïjàíj¾ošQ¸Ð¹¿PWýx† ~Ò K8Þ^õéwqÑû_PÉ'ç„ù×·Æj¢3ÄBÇ82cs•²¥fC:1c×@{dð˜YqÆ997ñäRèŽw›´«ç’|Ÿø5lø®^ÌÙ™ã“rl²O~íæÜ±t<2ŒŒýlà‘÷ô|ªkŠV¼£ãÓvt¶s‚ž½hîù¦Ê'³’Êû¦f胕~LäÆ8»DW[~CÁͽ<Í̹¿ÔQþÈCwuâ¢'ËÝð„¹.T´œ|¦’~Ç;E‡[º*ÎIÊî,4B_®õA#·&ï ,ä^øÌ€†‹¬«NúU!)yydfá¿,3p‡flÞá"2íÀ„J8±Tß Ž ¼ûµùdÇÄoöÈðéë]w—›‹¯*XÉpò#$^ûvóú× •>*=ã€b.Y{0e[Jz¹±-ïÆ ;ò¤”üô”¡þÝY{où+Ÿ‚Žö̲”’W§yÉ/þ½"¨ ÷Ëþlä1v´Ä<·½Ø˜ÿPËKºtû0;ïE1ëA@MGzgy)ê£c§©+x.%%žÓ +³.Ì·TDú•,üŒî30÷¯Aýg —P"“càWk£•OÂgOö€õ_Bv’isï‘“2Ý„Ç 1sKÎ….â>jêÁw탤”IjÆù&Ðëg9Y—çëÊ­b’€ÏUæQ +»«ckË߇ÆÞü¶ ýáºO‰ÎY—–>sÉá©Ûs ¬SÍçE-‡«‚¦ðØ6lû`9À\Ñ[›öÈ&îØ_æ v—™¤½Eb©_Qýa{_РKƒÐDÏ ìb‘Ž›s±üæÇæ’'ÿ’‘>ôÈÈIÑ•>ÌÇc‚âçߎÒsβò^B¦ž7 aeÄŒ?ôÌ´?ì€vî=ê&Æü!({þÝ)åìæpÍûÕþŠÇZQî­¹º¼Ž‚ˆYTÎY 9´4>Ò噥{”¬òÀ¬Ò‹[3´B·ïÅ\øÊÜRý°¥:ñ7~^ä÷&qõ+rWÉÈ=£d_1ÕgßQ b®L1ÞœžoȾ³«<Ól¸c®¹Ö‰\ï/yâ+y¼Þ›óÄ+­ˆ +ê°i!-²§1¼2rn`“t¨%–íªé~2wKŽK?40ª}JRž дkÖøf븎qz®µúDÅOýcŠ–r`§K[Ó¨c¦N³‹/ÎÕW?uI9ÅKÍ÷FqŸ~—”DüØ~}ÜÒXqËÞ{¿9$€Ú†X rÚK%Í=&¬r c?ù¦0qÞRþ&`NµPhS"& cÂvLLÔÞ" hjøÞ<©twž\nîªzª©+»³>†Ëý¼R;èUR +7†k¢×ú1Ÿì}¸µ ôÞ:éŒQRx߯ ‚ê‰YVÅ?9>Û€ÈwÉé µ8锂{E%аvg¾ÝŸã÷ç%b×,F(zyn˜‘úê/_¸gò§:¼Ï½ê™¥½ðªV|F+H½±1M)ÀäFžÆgD_h…!=jjȹ1Nˆþ]ÿ໦â‡ßÚZrnîêÈåÎ6$ëÍíŸø•1÷õTâß«‚ÆÃE*Ò1z¸ÒŸwͧªþôÙ"nòªYØ NÎm8÷ög3?¼wÔRA.)>Õ9Šú`ï)¿·ÒWùxMJI£æ¾ý“òè§ùö² ž®Ââ-%¯õ …wzÐI¿qsŸ}7ň;Äo)1)Ž)ÈÛŽè­Æþ£åV50gC6È“ŸÃ–ð௫u£N•>Ûš½¿Ì¤ØõGË,ê®ÿe‰†:4N%2í¦ƒ7'ÈÙk}5ï4Âì›j~òŸþiØÛ!N%Ì;­`eŸš 瞪…%Ã&F|7E)¼kk­Ž¨-}ñ=ýÆw=°g?RÞÿŒN¾òÍ0îýïkƒÐHMGéýDä¯óõà:>eŽÝœB}²Ó +]*qÛÈg¸5\¸®#åå_[%ä4BІ]µ9Œý¸PW|yŽ—VJLþu’yr¹ ÷¾™yVFÎ:g]_^µ·ElôTÅ{†ÑÉÎnt¤±¶ø†½±3Á)H)éá>ÙCË—¦!Ÿþ^ í*ÑÉž¡ê([{ù]ÿ$°½¨ï ,j{¦úƒgª&Ú'GÇmÉñ)! »&4ÇÅ8dÔ<׫È9"¨06ßÅFý4‚Šúyšúé¬Vs~¡t ˆgŒm¨w]„ãKõU/Lõe/FQÇüôëà7À¼~P×Aïwâ2Î;ƹ¨VÄ0µÜY¬|á’a“íÈ·A=¹,däÓôbëê{•ðïMñÀ×aSHÏAnŒQÓæ ®­úsÇ@îšÙTs?ò{†÷*›ÅES)(¿MË~ñ313â÷düÅù6ðs"Ù­27ÄÚ8.}wž'>\Õí ç$)_-)º?ÛXzßÔ yÔò„Ÿ—÷øŒ€–^á‘3ÊSŒò )9Ý5É,^—q+§%ЗºF|ah®¹×>‚ŒÃ¥üÖSõá‡qbúYssɃ ‘øsÙê83òéõÏ-Èħz*î‹•Ãô*1I;z|ùá ·oba|.Î9윗?ZêE$ýÛQ?u°DGû´¸´ )â­s öÊ5 +}Ä£¸…^|$&=êG\Ƴߗ‡`Å[*lî4'渚—pÖØºej¯zié.¹­Ãî/òX[jI!ɺè”áK¬¢FŸWì™Æ¸Ø—’ZБ+ÿZ—ôy BA?«ðiAÔŸßíX„MG«µN¸çwá¦òby°äž©òÒ:Ϋ¥W^¶RÒvtôªmeU”o¬,bu\„ÒÖ‚¯Íò +O+9E§ÔüÒ Íðû¶~Ü;µ¤ìj<é×.Hæ…IJÉÍ…&ðmK;äsöÚ;…Ë0÷¡ßIY¹×lý5ñ>5×5OÚœ&d®ËX ·JHØY‹¼>fMhÏ rNP/øç$\÷4£`¹»úå1á÷ú¢Ç?ô"b–Ñ N÷Ò+ϼ¹ñtÒ³³ö6h çDéç›rîj³® ãb‰ +#~D:­à]Á%=úi­£,òPC.·µ‚êùé—õÂOtC~×Uùìû)|ü¯ÓÂÜëÉONSôòâ÷A +>kô×"õyŽŽ ÉPyŽAÐ kwñuU]ÙubnìÉHò +jÖÙ \êérÎùE ôÖ4%ïNN×–FýÌH{ñƒ¡ô@ÎË»ÏÊyò&îîÏ¥oOÈéɧ—;ªî»ÆQñ®‰Ê§ôþ`Ž +Û1·5Tw‹ƒZL¦kªúýÊâ'|foà°y\•sªæ {>Yk]@M9F!Ñëƒà¨Í‰šhÿ,)/8ËEYûpi£ÔÌKö^|¬¶=Î?74–Ý_ë/ŠðN–<Kõ¨qá:NŸ­Âº]#‡´6ÁÈõͲª}j|Á®‰ûbçÕî/rhÞYB–_O-óë˜&9¦È…ÎIjîÚáãÚâͶšVu0'Ô|¢kšSá˜h¡oŒÔÕØúÉK]¨WôÌËÄ„Sö~T´k‚SP°À>À&ýz>`¨•li™ŠvÊp™+ý°—~ µ"hàö ¶g¢¡vÙÄIÈÚÒòð;jD#(¼1‚OûCÁÎ;c뮸ã2ö\Še›°Ð³¥¢oN’üZBŽWƒL±V¿sʉ9!å•“ Â{$ö—xœ€‰†øº)ìø¼):rǾ…Ãs(iÕ›Jtc‚–å’Ñ +Öë'ýFsgQ(übm”~±Ôu~Ypx´ IÄ]“Ò3œá~‡S¬pô»–¶¢æ!~™¾ ñP+ßPr‹ÎÎ׿Ÿ·÷BŸ¬Ž‘z±oæë«ïںąËÝ-•Ë]Œ¸õaR¼¹­äúBcÞÅõÞšW»z:¨§V¬M ¢WGQ ‡Kâú=³X¼=/bæ¸XŠ’œç‘CF‰(djì +΋Xîf‰{šY²6@HXj©x¤‘^¥fŸé&”žb$þÜʾ.g\k‡Dþ0„‰ú¡±òå·ˆ?«„¥w;pñæÔÛð}èÃIk[UäR{ùC€Nô¢â~—ÓSNë„Åa‘öâGuâ51çÍÏ̬wÇýÓøªÕ²ûŽaðSkGáí.سz /~Ð7”Þà‚®~||å[RRäïËÈçsµ7åäÂ?¥¸¼‹ÌŒ×?F\þ&íΙoJŸ]ýVŽý1ýíÍoŸ~kmæ±¥ìþz_Ù=SSÖ)%úx-è΃è§Ç¼Õq+㸌QjêuScÉÛ]¹£e`½S´‚m)g³¯äžœ}r© អ÷‹^X«slýà˜¥¦Š7ëÝ¨È 0ˆaÈG?õb øÕ÷kýŒtC3!ÃØKt bf8 —eô¨“+=™w÷çáÉA5"ÙÞ]0hytPË'˜º‰ùžBÀ@ðýEøó y¸@YâP]Ó˜ €a®®¢R·UL„w“*%Çœ’ÓÒn¬uÃß8†o6ˆñî‰:ìæ0äžV»eu”õQnåÚ0-ks”hÙ„•>Ü{Ç))0+¢®3;àñ¦Øùïõ›£ˆ> Àu |zpžqLWGoéè5;&‘pe ø`h”kŒ˜µÑWùÄPŸxÍ9Vé–áSìSÔ€IrÝrjþÊæýîûÅØý41¹íšDÄye#Èði¡9ä뺨}ÏÌ"6W⛥•ïih·Šß]àóÍÞ¾‰KÚ1±¥hÇÄãí- +_,¢º¿–¸ÌÃy*8¨¦¸'H)ÀŸ¬]Ø7zIŵíYR¡ªòIß„z¹:HÏ2w _­öCoŒ€ŸØ ÏLwZ¡÷íÂâÅnq¡µ“çg¯†÷m÷”ßu V¿ðLc2ÝJT¢e¤â±©»êÙ΂ç|­æÀ|*¨çQwz–š†Ãß-lÍ‘Á:Á«f”¯’3\RB‚BXx¹¬šø£šSuc¥‡3ߌý0LH?;WWýrFPýV߀xé’S]2FÉêò=ÀQK=5oÝ7×y ”ßbl’g“ä“1н;-÷PzH±šzøSS32j[ÅÅÂûÐÚ!—»ª^ “’¯L0 îj:¨ÑBÜtÖ§c½5 [ænrü(½è¼0ÿ÷ŒÔ÷ÿ"&¼ø!îÅO¤¸È_Åùñ§z±å—±™qÇ…%ÑLJi©—¸O~› Æœ˜¤ÄüÔùeˆ˜xQ+*¸çš é»kb1‰÷¾ï‚}¼óÕ,h84 ø®‰pÿ€ê×Ö–Œs*v¹µ!\¾e„– Žz|® œ³?O‡î±ÓÚRþD/̺Ö[óúx;øÉ÷S„˜_WF(™Ì²O—Êbïü>NIàŸÂg:‡ào¶§±þɲŒ¨kMå÷R1“þôEÎ:1LN{s0G§~µqØ_—¨5»Z\®OOž|º2JŒ»´+dbã † ølЉRŠòonJ±É‹Ý˜RM}Eìæ0$Rû°ÑzP×ד‹7Fú¸!¿Þ3Qan®p©ñz¡útsç›!•„4\ò‘Y þgCÔå™Á$úT¤Âýýh‘ÃÿjáJþ² j¿, D‡K|öÁ2÷yEÔñ÷š¨Ó¯!ƒ¾ZâÛ„ ûjùj/약ü`¥±Ö_ójc¸úíájdfnŒ2K·gk9î ~¥c”œlé,¿mn-¸di+¸¼9€±1RçZ‰¯m]„÷>¥g탽š“dž15dŸ×I2λ&щ ³:¨rƒ&qÝÂãÓ‰yiîÛYlìß7 %ûFÞ«A§ṉ©ÄdÎˆŠ®»ÇY+Ôô¥Nt¤^Pzu­³æÅF?)ÑÞS©—d_XfyM|€Ïжä5ÑæŽükKm9—ׇ*#üjj‰w–³õ!_»hþbrŽ/uÊHéö~täRüéú.6|¶*¤ç“vŒµâiF±G)¤4¶GÆoȸU†a¾²‡«nž\båû™iÓbä=)¥úÆýD#A¾¶¶â–›poMuðûJnõíQèÌœ¤âÆ£è:7ëÕ±QtÒÉðºY ñkSÌb‡\„Z‘71”]ĘdÊI%·$"\sÍ>ZõÜûì2æ§Nhì±aL‰¥6pÄâ³ :+úÄ‹Ë'¿i,ÿpak•°XŸ}Ã$L8'Ã>?ÆÊ¼õ¯V؇ã +>ôÎ|;'üéù·¼¢—·ƒ*<å/‡ã=^jÌ>¯â%þ^_vÿ[}]Q„¶O}|œ•ñÃ#4GGìké`çDõ‡>lÔ A΃k³üËÚTøxœWðòþúO“ŒŒ×¡962  ×Ÿ4â” =°wß³³îÿkœsÖÞ zNËrjFù—MÒõyEÒqdeѶõ˜|·•lh+½3FI9n—âÓðïϧ=¹ü½mV”Aß;Šï8‡@×ûòït@ý$É»ù“Zðñ–ß@.#dGüŠKzú‡¾¾2ö³QÈû²(®=2 ù¡9Ê¯Åæo)ªÞüwƒÉ>²±E”Ò·àéOo{TÊ‘µUqhkQþÇ]'ÿ¯“ßyhBÖGòîliˆÐtòƒJö£QdÒú"Ê9ŽI ¨‰ù»:\æ_&r™k†êQòªr.ØÜKþàUk|J@#NS}{¾ØTxSÆÎ¹4€Núu¹µê¹SÆëZ*Z;Á»j&xŽ ?4±°Gfs{ŽC\f-Ò3×憺µaIZs¨ZkƒÚZn@NÉ Êð{zJ™_I * YAµˆ° pðB ìþ,3÷LWÕûŸ‡k>ýª¤ÆýaiμÒ +™…€`ÂÅ5ôJ¿–\ôÙÌÂ}¶°ÈA£Æ!äÎ7ƒî9¥ˆì€– 2õÀžy¤O)Àîj©pßy€o Û:6 hTÛ$6!`pݳÂ<ÀHöaT´m›´¡ åæHÇ,»j¾ûÖÐŽŽX”yfÚÂ}36Çhé¶.ÒG“ÎuV'À¥^Xê®yüÝ+ ®½ü d¥,Q“×dô|‡š ³Mó+×dœÒíyýpQ\2Ðà.. Ð ÕŽ>Ä«aABFÎ6IÉXao*Ø 1\µ °†k†U è²M)+s’‘g"%ê{ð‘bÈM¹°üž[JH76•Þ¤%_PqroÍ7¡^/÷ÒÒ­ƒÜlC(S×#ʰÓÓvõ,â‘…ÇÝÓW¤Ø¤ÍIržKήr«—VL®Ÿ»Ø }á¾=Z "¬]ew–ZK¯Ûª_Ii™Ñ)'µ|Ð5Ç4³|ª ÷®–rV!)zï™%,vVÝ]lƒ>^î©y»ÒONZê&%º•Œ +¿ž ]Å&¹e„Ò£e¾8|æ<¨Ád¬ —=\üM +·>EË5 r§$Èç#´â{9dk*þÓÖRpUÏKþCËO;;WŠ0·”?ßœ ØduØVlÖŸMÐWU¸ØÝêü¥WAÌu)HùöqtÒ6À1A³X87„LCd>ûµ$úþE¿ŠJúφ å•ô϶ȹÍ-9×ZŠîÏõ³r_?ø±"öÑyŸVÿeCÔ»o¦“]ÓUÍÍ)„è_wŒl¼w^Ì^ž`—:ñoœ +8›]Óô<`í_†õÔ³àªRºï§.Œ1‹z(gDåOBZ6*\ënsãž&¤mLRó6u4—¦¹Á©kï¶Ê;Åúv¸yl¸É>Ù%\§çÌ‹s€\ZþÈ9VùÌ;…Ž_™à–ö±A·škÿXh†=_ëÃ~°vT=´uçß ÍÂÓý:.aEÆ«²Œ1r=:kk^@öhh ·–”¿©Ä¥.A_ºe¨øWàÖàslS¸¸å)bŠTRòtœr~GÅoÉXå[3ÌòÀ p1Ókp–ÆÙåªúª7» <ÆMTw`Ö„{ïi•.5ws’šµ!elÊy°….ìkû#Ã9Q‡Zžëj‹¯Z:Šî¯U>WI²Î,v–?ÛR³ªÆ… {3âò'Ašç|j6|G/øË†,Þ_¬JrÌ@£ÂŸaCÕÞ2×ÏÌ3acöÌ\vÀÀÀ# ±k"Ul©ñY¡yj%ÀÏ”•AT¤s—°¥Ä¥Û /ÌÈ·9­pÐÇA-®Áí×\ÕIx¶I!tCƇmʹµ)V¹KÉ‚‡æ˜ˆ£%?h±×äB˜w¾±Ùo Âû'=z1kEÁ,uβœè8¿Šã׊húøÓù:ÄKÏŒ¿1ÅÙû©‰ëRzÖò%y¾Ÿž°4Â.pëê¸V)#OÛ‚{½6ÕÌ\›nç9d€…Xe¶abüê8)5<';FsÐß% Kõ´êðY¯šV2ñ™N­gÛ§ÙÅ^-¾¥å µü’Ë+@^rN Ý2bŽOC+s*(kSä,ó-yMÁƒ¹uµ’ ¹¡/\WÏ¡ W†kû®H:=óõõ c­$“´¢ÀG϶ƒïÛ†ñÈ/á=pvžpׄÌÌÔ$úä¸<Ï ¥Ò>Ò_ìoÃŒqÑïÕÈܯËÂNãVË+yi§Æ Ïûõb'l]ΩXŸãWeµX'K\3BÄÆ·lu„–jî¿1wcÞ®OÐó†9Ùó½¬\û8˜Þ hòµqJ¶[Æ9â3Ô×®)…èUUÍ"keèÚ Æ‘~¶i¨¾2.ÐÑ›Ätß ½Ò«âÖÌ33›ˆ…„•I'L”lÇ$-ÇÜ]~o¶>ñÜroþ]·‚ZWÖR65 ¡NäÖó°N%æšåã\>Ú¡`•y”„ ç$,Ê¡À¤ºæXÕ†1J:z‘˜þòß4âWŠ ž.ħgÕ¸µ غŠYSða^m­$°P[ï3ñH@na†ëxµLhHÏFíxĀދÚQ2—z°oÖÇ8eëSB¸®vG__~±­ì ÀÚOìC•/S¨”--³ÊØ[gì‚ +Ísˆ^­ÜÜ~¶Ø~{o¾,r’´m¢á¶ŒM]«Êöƹ~^¹e„Yt°Üׄóijצ¸eöQVÖú$»Ø>É(^™æ#WüUukÝò¤°JÙȈµLö˜§ú×gp`½ŠÓÔ"¯Š…Ø6 +9{Kõ]!³¨Î>ãdo”n[ÄM= î7ñéîyÞ¦æÀ7ô\ü–‰Ïriy˜)NÉå…\¶K+¡oÊi[7¸”´òM9µdSΆûL=Þ…–±®q]ÍLÝ¡%I«ßDEº´´Jcõƒi€g ÷\Õ“Á_í £Ÿí-Š#[Ãоµ¶Ç$n …{jÅæAQ‰eDZ›¬Eù´MmGÖ&©c—º:‚Œ1÷ bÚk^® cbƒs¡G]ËÙžoèº5vE[½C&Fx²TP6S~¤oż° >9ä¼êMy3ß­ìl÷ω¾9dŠGÍ( ÷KS·Ã£”ìüŸµµ>}s[×>ìÔv ™§Z(FiÂÐÃK±ŽJ*õÍœD{7;߯–P–ÇYùãu5÷”­Ø×KÃÌâuy-AßIx³ØGþdæg†^u°(’lé…tN@\'gXLjq@Ä{u b·¶ïœýÿ9zë¿ÄÖõ}ÜÙçìÙ5³§»qÚqlÇîî[‘’n ¤)II1À»[Ç™9ûÔûóúþßåùu ÏsßW,Ös_lÚ†™‰Ü±0p‡S ÌQR•C‚n‡úh›¡A3 +t|€‘¼¬f€ÇéÈm{yÅÜ„Øm@þp³$Ç3­œíÑøž££{ÏÑ7|~qžØmèjb—•AóҪϳ€·ZÑ·âFÅÔt{A è @'Ì ë‚–ðp§ ú³µ âx ¿= ¥bÀg·ŠV<'£”¬j05gÏÏg¨õ'SÍm+–fŒ[ßôy'sÝÚ'Z2õöÏéYè¥im¤™r<Á }P´ ¯‹ZÆ$miÕ»Ö†ú >×-¯ ¼_ÌÎHEØ¢,ËsIY²ct$àµv¼Þe1·Æ¸ÒuK uà0À—eM‹‰ ‹Jrþþx[û±³[µ6ÚÎí'å¿bÕÄÝt“ª·íì±¶†Õ1&nz˜’³bjB®lÓÖÖ´çì.ë_¥j¯¯o¶2­Ø)mÆ¥î€Ï³`.©ˆ5­•ÉÆ”¢V—š_êܭ¦¯ c³öì ÔÎx[Ó–½™°íh¡Í÷˜vg›Û¶'ÛÚwf;w8êýöàÁtS놆\4PÀ.9)Ó%o«Õv’ZªSoÞ®hÏÙÚº=ÙHtë©eÛ£tÌú(ë6SK×Fˆíñ¶¾IImè”´ÒgÓho¥tÛÖˆ;œníú¶Ü¡»˜°i£ÁÖL¨=g¯iNÝP7+'‚€÷Ó°åhm>p¶´Muw';øKÖÄ‚½b¥TlŒ5—ŒÄÜU]í—“‹óçÎ^é«ÏrììQºuMµ. 5eFΪ4 ÚrXÕ…WF»1i‡£m{¶F솎^yñÌþ& o¶ èœ-[w—EÒb@îû?øy_KÅOñ]û½Ã«–6Ê´Šž7!n̰÷2Ç¥¬’æêÜëåɯV úÁxgÿž£…²ðþÅ=á% ³|FʆLˆÛ‹,ý”[Wù÷02yEG¯h*ÖGZ ÓÒ¶²)U?eBÑs)¨+ºvܼ¦·iÁØÅœ×6×:øÈè9½rAÝÛâT+Å#ÆÒÕž¶,ëÁm÷6¬©Xn]Oìª>}YWr4I¬>eÔø¾;Á3oZëÜrræ’‚V¸c¦WØ)»VRùª‘Qí’S3´Ìš=‡6-&%MpÊ^ìèi›f&zËÖ„Û²6ÀVGUÓrRú$ Íw-löÅ|ücg}o‚Š\1ã Ö­ ¨-+§Ã=ÜN4v7%hú8i£C]Ð¥n禥³s]ßsñá¡¶ö’7ë:\á®Ir+‰EÆÖÒN^­ï±«¿7ÕÞ¿=ÞL]3· W «zbîâ0"fãbæÐD[»™é…‡.èzšÇdBú¤²­|þ¢ÖkOkYˆymkQ+èÓw0S‹ ïN+ÛÛÓÒmóæ»tó²­‰&:P³…3jFñöXýpš‚Üsâ!‹¦Î¦)ý×m(Öm<ÕŒf€«å÷• vô%²zc̼žbC Á{j ¡`ËÚ+Ü›è‘í;9‚ýé¶žÕQ:|ÛÙ€Û›îڟ鵸{¬»Ó š[‹HYÔ sVG›HS:f…U@O° Pc\R|ÒÐÃk£Lô²¥>3ÜŠÞd÷ÎrGvgº4ëãÑêh[Û¼Ž¿dj@­wõí}½û?mÀ$mØðà]:ÿÀIÃLuí¸zu3JBÆ¢†RµçìÚs±zöLš[GƒLÊq rÅÞ,t²Ôؽ1Î n:Ú˜û³í¢ƒIVÇþ±öÀEÇ­Ûº;ÇyH«@Ó÷iQƒí¢)¥å“³W_Šè~s²¾öÙÖÓ7+ì­œ•ÉÙö!9{„מ;܆ ´° '“ݪ}g§hÝÞJWгL’挑AZÍ‚ŠX½Ñ\ö…¡š½¦ìiß·vvìØš‹šÖr—¸»ÄÐ9®nå%)ZÒØ†¶ ÷o2j•O´máI7,ªIE'Ü$À5}‚â!¿jB)mW÷ ++åüL#Oƒv Y‡ì2½PË×7JZÅ"¦$…XEzE!ßô€¾CXA¼–=Tbí釸‡Úß\MÌ¿f›ÙY!{.ŽÈ.î*éƒÍ=’2[_GÖ‚¶¡hV…‰_֑ж¬mMë@_O(:ºÆ]ñý‘«eAãfi5‹Ãí˜]+fÕÌb¹8’ïó]Z Çê·Í¨¼“™–ž‹=Z±uw8 +ÔlÌG÷ÌÂç–Ïé{˜[vNך±±f\ÄÈ´÷é«€Ö5²á|R²K€IŸ—óv쬦UsqQßUq)»lVÝX²ljE-é€×O›fÚ‡ºª´’!Œ”#Ê1ô÷ZEý5z¯\/R4èxêÆá>}Ci ªÑòÁ.èC,ê»i«ÖÌ’½²hØe ½rkœQ¿x‰5{bÙh5KnL¥˜åѨjX` Tð8¢XV«$”Aæ¿ÇÕöÞÃÕ°ž”$ßÀ×J;;ÊæT,誩 »2ÚX?o¦”îÏ´q/f_Ítªv\ ëŽfâòDwËÒIµªû°·X/쇌ˆú*¦u} Sz>Ç"âÁ¬ ÖÄ—¶™D\ܸ¢ íÒÀ2L⺙EÞëWm;cs=†½)ŽøpšÅ=[hí;qÓ™ÿÜhâÿµÚ6øu%<˜ijÚr63m=]Ó:^»¡‹‘8­é ¹t´Ñ!zÍÜŸnlZ6cA³jBþš¹³{w¢_¿5ÖÑ9ki­Ÿ2s›lx˜?Ö,îœDr›mYš*¤Ã/$Jc¥Œá¬~†2’€êõ¬SžQËZü¸di*—ÞŸ®ïæ¤ ÛrÜêŽúÍqmÑ*MØ¿N"†‹ÄSͽÜIh+mÈWDSÄèØº +g¨ÂÒÙ—gåËaŠŽa Á˜ÔDÒç`'#ÀÀ-· æU ­+aÓ: ÛëÎë84›¸)Û(âÕÈyj„ˆoÁxv ›9œÐBRøµ3F’¸ì©Z6Ó˜JÁË|KrÈ÷ 9ä»Qq¨_޽Ϲäó$î§´€Ò«´ê i³¥ÄÌ„­é¹cõ»ã¸b§¦"ïHç5¨¢¹TYP_£ XÁW”)zúÒíb.l^+îÔ qµA¥¤¹ë‹˜ÈùÈ®«Sñ»¤3'’5¯z;¶ÇzÄÇ3ÀcШKŠòàM="óp²C4oSN›er¦²—›3ÈbEH[úÓl]çä°˜5£`K{*„-íá´òòë""ÉÏÚÍÍê†Q«ÙisC}ôU ·qFÒ˜ã–Óò'ùððÙÁÖë¼Í,ç£ÌC(5¯#EÕÓ:ÌÈö p¹ ¬ø¾ºáu+©7¡“¥Î"âEÁ%9„ç9)¨çÉqu·óÓêï—fAß±0mÁÃ=ýév¸uf¤§uÐmËRéœ +“êfíjU-ÔàºÛ àš2£&Ïl£hCqxÓ»j„ò¨˜s%3­áïé™ô¿¿|ááõ<ìrAþ:µŽñªŸÑis«§t½ô…}ÝÜÂpkE³:Z‘]+f)•júÀ€´°·KšÖÛ£-b7)£ ¢/L|w<J +Ë©{[WHùP”{›• }J/¼¯)y,d5 ¶v€å!É*—õm:¹Ò @—Lµ¶]d f›Zöç¸Úé>ÃúxßàœË7 r•NÌòšºÃäýƒr¡+bs¤lNŒNØžª4$OiÛ){®^ãÑT§xÉÚÁ2ªÔ=âA³G´Èlë\‚`ÈvßÊZÉ}$TüVÉ»™•Œý%6ú{fjó•¬Bño¯á_düù5?µþ&tóKewWªSÁÅLë%ó°Q%•;z;E$£ÓMcå›·ê ãoÑuª§˜Ê“ˆP?ÇÔ +ïW”ñŸ‚ +ºï‚óy׳ò{õò{<‘áCù;fxÂåLV85jѺ•Û;­n«T¶Ãm*që๵¡®¸ž¹„¤Ìy—Öéï§çvüž[À»*’^ÍÎå]ö „_zì™áႹôé ÉãÉ;ˆÇïW>zøWüZ˜ßzx¦ìêMœ3¶a­-½¤,î*èn³d2FB‰³7£m%•Á\J`µMe5QÕ_C!äa \ü$7‹þ›ç“ Ÿ>= õH]-HÅxÊ©>Ún zF­•-›ºÚÖô˜];whÍ.u´:?Žåò'Ý}ÎZnÿ:©·o™ÐÑ6’Ìb ‡¶R A’ŧ$¿á—¢ Ìï%Ù¸{)qˆ_?¼Žþ3#"׳Ÿ"Jã/%ðI}Äï3d¢A¥ˆ…#Þ€ÙÚëa食!•Â'eÕRÏzê”i¥ü¶ÏgÈO?\Î*`_Íñ~}ç ñ¸û Áãþ“4Àhê¥oÊ=|ƒ±?cІÉ®•õ-ŽöôÏŽ4#m*~‹LjïèX ÐXs)ÕõÆgá1ä_>z—^ŽŽÄü–’ü‘œÍÿ{HõÒ«÷¥á„KAqÌK^•yxúà<²Áúß«k5hxÉI§8OÙÍId¤R’Lƒ|ToÿD}S×B!™åŒ©Ã…òÚÔŽô_72 Ê~vFWžÛÒ5‘a­D×üœßyŠÿå]úRt2맸ÖßüBëÿv×3ûÒ§`Ô¥(à5ÿŠÇC/°Çûü¥øýå´rËŸš+¸«™‡ú+c½ÒÙ¾QQ5Ø%˜#Q»ÖsM³þ0‚ýeyúv6¨çʧÀšŸ¾]zö¡Âã¥O¥ÇKï +ï0üÏÞ1 ?§óN+Ó݆‘'?¶p\9‚>Ô8¤hž”·•,軘#fѽ[é’ÏÌö‰TJçR:Œ±ú)³Húgd"ó2Ðs?…F7]úDðxõ®ÒÃóm)€uXŸx–ÇsüOw½jþöÊûSL–ä·” +Ûã¼ +ñë^–$kÑÔL_ÒÖ'º5Ô<«¤«´Ÿ5˜ÔÁ5wÎä¡ic>U˜é”óQaÍÈõÄôù ÷ø„ÿéséÒõ»ñÞ »ÚòKX ú +( óÜ®âaŒl‚\Ä+㋆á]B'ª¹gºÌ^H@0&}Šáòû1-¿‡&’.ûÇáÿ~Û+óÒ¯×>{¼ð.êþSz~ËŸxXßQ÷pµE!".X§Œ’2&%§Zd™Cƒƒµ]PF‡5KzC+ÃFž§´\TýÓ«éé9m¿¤‚D¿‡§w^ö'üϸYV.~AÄñßK»š'é ó*bòª‘që[QÓšæ*ˆ™ âw¥ôˆŒ5=“¹XšÞC1xÈæ7eÒÛ¾1äßßVý=,ŽðsLZÓω¹Ì9•½ò’‡5Í Åú¥§Ùœ©îUÂVMlªÛP—<.«‹°(9p^ÜÓ«©îä[*Ø–ØJ¤ìITfÇU¿ØÆ_>c/½÷‡õPzéÑëßpì%ßX¦Çƒ•wŽòŽeyDZ~ɯֽ"7š24Ò‘ö%cOÇäP}´U ý<ªdH¥j4‹7ZÔ(˜-Eó¶ó+hó‹k ·ÁUêkÉyœ_ï<Ïõxð¢Àãõ'¨Ç¯»Ó=üC—’ÒÙ?çäuþÑB’šº ÔŒ¢e#µTÝ… Њ ¢mMC“" ¡k>—ؽ‘ c·¡ÔïrËz–Ö +îW£•ÏŠúî¿‚ýê¿—Õz9&¿ëvbIÇ«Z’Ü—Á‰-h‡ººhj¬ÜžlfìÍ´ ºn¢Lnbuº¨½ã *SL¦ˆÞS?!b¯‚J¡WjQÇ‹¤üÏ´‚Æçp†!¸¦Á†lе°¥áÊ!~‰IɃ*{‹¦®¦Y%kACÈr)ðÉ9#WÒÅJà÷‰óûÃÅL¶,ß y gè|3Êž„¦pn½ +¦üöðm٥ϑØËÑyÝ7¢A7ó0£OA”±79õ²7u ºì~Ùݦ—Rf”Ä´YYyàš[¼åhkqéºiJå0‡+µSÛøŽ22{,Þ°\†{^„¹›^,úõ¥wÕ¥?n&x<~°¹â§ DèãL§g;?Ê&æ”îšHp·¾gQ)¸Zåp§T¦ÄðÕ%]\SAk§1…Ѫ ÅåoáÙ»2˜øY|nÓŸaqØ;)Ù­ÏJkxšŠdcïeB¡/[øÀ£ÇjýŒ縨Úß¡j)V+$˜^® Jhx‡5Üc²§³ë(VPUïÓ¤”ª+Xǃzüà JòƒW„¶6˲Ä\U™NØv¨àÃQbù‘W´=‚ÎXRá’–Õødµå©U2Æ\ŠòÅyü>E·G—ßÔ¬ Â’ÞÂѯP˜þ7X? ÕÝÙ×ÖÝ/ˆì•—Z$J¢[;@Ù±²IÇ Üš•µ` Ãœ†>«F!Ðk†Xr¥ÑÓÓÑÔØ÷MÖ½/Gß$äõÜKhü9!§ã÷€èúËAñ˜¿Gg·þ•×þK ¨ãZz•äf ÁêÓß?3«õcÒÖš ¶:‚­ Ý &eÊÜE`%q¹ÜÄÉ®ëaíAšåc5Ñô68µáúÝçi—½Èöð E\ú_ÿG¸õ1&òj¡(Cô½𴌜:-®êH…n£dÉÈF«ÚŠ{i¡²œË3Azzõ¹\¡®¬“¯·wŠcX\y­Û–VC ¬‚·z¢)|of¯Ü?(Ë(2ªyP—¡sèlÄ[¤Óÿ±Âä|]hbM*©YF•€ªÖ(ÛÕš!š\ØŸ/åö$‰ûºxýÉ|¡º”/QÕð„rHo¯:¯ÐBÖ‘‡”<ˆ¢»ÞoFMÏ[4¶¡–FÚ0+Æf„µî·¢§”o޶2ÖÇXM³fݪê¨RðÈ1¼æòǽ,ôën,›Ö¡Ž©#ˆ_UÑuÙ…ˆ®X(Ah7DÚu‘=ê¨îPD·XÒ[F´‹}ýÛJíú4~ËŠ­:œj—Îr-+c}Cf¨G&Ö Äƒ¥]ýÊŽ`Êì²§“ض8(€«YÅcrè^¥ÍŸáÔÖÐmÒs ãR\’³+Ï_GùòbEÏ$æ¹­°Iuw½CÞ^f‘t[eÜ*“¤§DÚÁsÄ©ÂNu>£.’ö©j´ýC•¶xf[³&çÀöÍmGãí»Vzͼ”¶$#•Z›˜;¶äÌ0½À&mÉ×ri ê.R´A¥âH‡jzû“eݬXã +ߢèYå½ðYÃ@늭ƒ²ja7mm¤Ã‰Ö¦SWKóµ>oš_ðÊÅ¿\&¤Ïʈ‰sª¦R—¶=:DÏž1°ñSú.ª]Ùê¬õ”°jŸÊ;‘¯õÂö¬y혊‘=!ÇǺµ]M;f‘þÐÖJ?±×gïT…®×…Í)‘óZFù²}@³dPNiØH‡¼1×"edDíÒ¾\~û`"»Q€ÇK¼(t?ž4ø–@â¼ 3{ÃZ:¤©=ñB~oú”NÒ±cë7M¬¦•aRÑ©£½ãÜÙ5t‘ °3MçƒÞ™¸E/ýƒDˆ–ð¨n V9ÖÚNnð¯,G_+C¯Ñ”§ìöVßAbÈHNåuIÁÈÛ³Š÷ÌDÈ™£¡~APúÅÜ÷ÈÖ™xÏ..ý0®n*áK?‘Kn7—&»û§ô-ÕÖ!j²–OŒPs‰Áz#vTêp»Úè.*ô`®¥óÌÝÆ?_h`œN`@_]¸ÊS¡nÏŽ+šWá3gíÝ]Ÿ5kìaîO²9;£ìM‹ºeoªß´Ó*—GH…KFrÁ¼œ3óùóÖvÚÆ8“°acµäÜu3¥tm»¬¨]T~:%£¾/tjv/¾k·‘Ë ´— å® _1‘J¦Œ,ÀéÕƒ]´`‹IÒgT4fš%ø0‹²%oÌÔE˜57AŒÌª‹}¶Àܵã‹7͘ôã™Æ×¥ž±“®ý`ºµÇmj€™ÄM&1={àÃ1-1¢ê†ª¥=…ZÙ,”ë胒a‚R&A”,Шž˜º1ÝÊ>t6µºeåÁãì´ãÜ‚ÈYÙg#÷ñx:vYÎB¯ª¨E ƒð/c]ùžÎž’×+ÊÆ"÷0î¤ R«½wu½§ã]Âó qK]º,¼_–A¼74ðèm=6uA‰N““³^Î÷W&ÿ5N‚[àÉû#˜Œ½LÖ±ƒX½i#•.Ê×mœ‹ÜGÅ¡«ô~þš®.r{™x8J(:´‘JŽ”J÷0.uÃØPs>ÉÀ|wR‘ç“4ÄÎ6n1-@ÏH±Ñ^}ȼ’˜»¨Âf,*Ñq;&bñÅ éaxÔ²¢.zXûyqßœ2+£f- Ö'šÐ¹Çgh¬ä²¡tÏ„¹È5-<¥£6FUËJxF‚K™có†PÑ“ü*ßI><Ä%ÁÇLi8ÈqYW호9sVNIÛá‰ÖŒì-3±zYUòeI˜á¹¯Cd¶Ð¿Nµó¾¹8â¯s¦lД塲}SúÈÑÒt4ÎlÞ©‡,ñ…³ÆN’ËÐÛ`•·A ]¨€EucÅ–žY·©ÃCVtu™û øÐ†ÙèPàz¢¯®f ×©eK +TôXwÖëuUEâ¹]rè ÂwF(5Ó‚ +_g‰ßÉ4­ùÐI«_Ó|3„J\WGZÐà‹üŽ£QB麶¦…G:©èïóTÊ®šèèÊx¾x1Ã@QùåÀ„Êùç³?C'NiÈ9N5ç|¡M¸©Å.ô—¼æ€_Z›sžÏ÷—~84brNtIJ†1´æ>^TÁr·Í”òi…÷Œ ÀËÙ—ý|žŸûòß.|ÍçZÿ9ÓÈ9ÃUŸN3hß»-gS-]«Š²/3]Ïœ]ÙÏ݃Å>§SxèùR«po’†<›¥`þ³Ñ:ø}–ÉÙÖÕ,IóƒæÅéÏÝ2ðçó äDZö¯9FÓÞx#Ó­%nX¨µGÓœ¡£ùî‘£9–`w’ÉX7‘Êf”¨˜)%!w}¬K¸lïî^47Á—GkVõŒŠ#µþë${æ "NÌhÐW¶èÛ*gdIPôjW‰M°?«÷LEÈ|½¯&eoÉëã÷4ØôåALì’>+®ÐÑ2jšà{†Ôº›6Ç­ ÞFgœZ0ù'Öú¬õ¡Ò@3+ù»èÓÏfzöçM2¾£A›ò¼7Ë´Ûª¢{DÂ…VydkÂohI¥«*Øÿž:0ãAGVTú†ªÈoIRøqØ£%9ïûdsãÉ(¶¥…ÅÛðà}&}OƒŠ;4‹ÆE5‰ª†ôWsDÊã·ååá'¦êØC#$js83èÛd=äȆË?¶QªN¬Í´}sKã¶©îV ã6T…{抄ƒI:vw¬ëVÁ#×äÐøC3®dM^õÅÕYà9ÉÉòÜ×V„è«¿œ˜19ÀÏ*7TÈÄm=&uÏF©XV#SG •ç.t×€ÉÙVÃcŽŒuqÿráªÿµ@oÖ8wg¤…p4ÎfïÛè°¼¡©‰ØÒÁã6´uqûfTÚŽž°¡F.É*>Ÿ;)õǣ𱠚y0R‘|r‘­«‹Ù7¢ÓL5·}›e²ÜŠÚàU%"ñÐÒHú¾«BÄí« qûhü²¤ÊU‹ØÖáò÷MDБ ™òO'±ú»ƒXr:‚H^èÍx½&Êÿ¼ØŸózI”ãõŸeZÓ÷2yC OtÖ¥YðUG£ðœsW]Þ×I(xËP›±gAe]Ì\ù>ÓÈØÕ¡Òf…Á.~nÄY~îd0¾Mbkv†Ë¢¶‡!þ3Rh䦅<›iíþ§›-=mjÝs6R÷´ú}K}áÙ¡êÀF(Û·’áF"d¦…u8ÛÖ½j¸˜…]ñyY ù¸.)ý´y1GÇX—ð¯5kO]´­ª‹pò*¼ÙÕ!W´ä¼OÇZFÙþ01óPOÈ™¨ú°((}³,){¿&…¬á’'»«¼§{k?i˜°Öfìw‹wõa£mq·̘«“mi·‡©ûZõ¦º6~¿&)|w¤¯Ž85]äNV†Ï J‚¦yEÀ:UúœÚHå§vrõš¢Ìß-H¹¿"Îz±­. Ü7Ô§Y°yFX¦²:p_O4­vC p‹ª¼½ø|´=ýùdwÞÓY~‰—“yÛ ¿±.EìÊá‘ÎÖ´»ZlÄ•!DØ*tÄÕ‰ÖŒ‡ö–”‹ŠÊ3&€ÆÝ91PËö5øœ-ymĪ8k“äicÆÞkM¼>Õ™ÿ|OCÈ_‘Õ¥/ïyk¸&b_HØVl Vû­ÉjÂåô”oQ\úqŽWúvCF.Ý׊OMðä½áRÿuI‰«+ë©{ äÐ/¹Gã¤êaföƒyqeà™ƒTù}¼‘x¨¯OÝ×ÕDík!á²ü€-¬Aƒ§úÊßZ[@÷`Ág&lM =4 RŽÌõ™ÛJxê ,ó‡­,쫵6nE Ÿ(ÿðÕB*;Áæ­K>yÙ›co ¡>ÿl¢E^9½x>ÞFY„eþbbúÍ3#ü×8ôc•{l­ŽZ—ƒÞÏt¦ßagÞ^ÁB¦…¸Ø©žÊ7Û2d䊸6tUV³.¯ [—ÖøÏrÁ/¦º‹}¶dø”ÙÞÚ€þò/—Å•qWÌÔìG®Žìk"л=,qSѶæ¾Âboœ_ä¼ËàÑ™÷&Úc¯Yé±×ƘiÖEÏg#ð„Y@G(q1¿;ØYžç“øÊi>è­û‡†”üç#éO!4ø÷å"ï}*sàÔõ¡ºÈ5"cK…«ÝÕ ³”Ä ?ÕÄO7F™×ç¹i­È”]¡`žL]áWÇüwšNŠÌ^æœáæ>?uPP3ÓOG/4 6ëp•<ߟõôЂJß3¡Ówuȸu¹ÿÆPñÇQvì--6ò÷51:uª¯Öw²½øÙh葵tßÕ]æå"‚–Ũ°2ÜÎ̾=×_ö~C ÝQÖ…ºE¯&9 7'؉7—Äà×:Xô73£ö@CÌ]VÚUc“v5ð¨me¹Ï޲ðÝ¡¾"iL¾a¤ç>Ú3ÁóeŸ–D>kÒ +¿]MuÈú äÃRé[·.!dÜáÕFý±Ð_´§!æì¨1Énq•Ÿµ1ý–®>ì^‘ç î+&å?®Š}sIG(ô:Ó“A{êŠ`''厅yMOŽºfo)x±=L}k¢ì cRv5蔃a*xo—xn æoJ«ƒõÔÈ«rlàeGkÚ`ß×”5a¶ÖäÛŠÚP¯S6e%ïG›îÍq3?¬ËŠüçy…žÓ=E~ç¶Îî-e's’ƒt´ÖÍö–‡œ[ài'#U‘k +ð'·À‹‹ºÞ[qó/'“ñõ"ÇJ_ñEßpoõñúª ñþöâ¼**—ùêïÆ– Ÿ³1ë’šÀ5iuÐþHmÂê04ŽO¼ÎÌñÿ;ÐË©{†º¼yAþëùðë%`ŸwÕ•a{új¿aY[Úª0kSò©Þ Ÿÿ["¿OcË~þt1§ÐÙ‘÷ÜÞœþøÛ yð™½ä§¥¦Üø:A%üsŽÞ´§ƒD¬K3žm ¬ŠÁþÚ²˜cseôÉ8S78– öÿsRP•ø¥.뙫¹}ÏPŸ½,Éyf¦GüÙ]òöŠ¥%ùÍ™“c€>^™ä‚CÏläò¯6bñ‘òùØŠÎø=ûp·$Ê~:Ê +û£¿æõOÂZÿ+³’ºÈNtêU ôrEЉ]”ÀƒfùåïÍÍyÏLY÷ÌŒ¬›Sìâ«rt´…]ôÚÞœyO‡JY— ¢6$ð/GúÚ 6ƒ¶äå~ï¾lϹ·­|Ž›º©¨šæ&Þk ýÃJ‰ù}²1íð7‘“¢Ê@"â·ñ¶2 fAn䃫3ûÉ.új[iÀí`ïŸuääÓüŠOʆìgZöÓEqMÐdg¡§‰žtÛÕ™ñÄÎÊy<„‹»ÒWvy´ê«bä¼"EÞrûn+kãvˆÄ½a|ö¦–¼£„/‹ ^Z.lAŒŒP`3ž¹yUñ'€—v ‹½— +ÞmJ‹?îÈJ?™éq×È +ý¶8öžïÉ{*FÝU\›lŠ»{ .úaÇœZÅó|èGøÉ¾œCœç"âv•ÕQ;ª?''ó™‹“ýjEXô8.ý‡³©qG_Ÿ±"ƒ. ÑÑ[âšÀ}Eך(÷Õ/Ïsªô~KM¬ÚÒ2ªG;K=ç.t&6kº»ÒÇFɺîdyŽ·ç¿ïÈ~æèÌ}½«Ã•ìië³xàWs}…ïúJƒæ¹Åoçz²oH.æ§åú³3Î÷C|O,t¤¹9ÿ©‘štÀñÏ@û­IkCWÄÕÁ;€·pñÀï¹µá7×äðä- :UŠM¾ÅÌöþ‰W|Yƒ‰¹jða† ^Va³Ûj"ï“s¼þvîÀCŒ˜\W_‘¯žóÀDK¸i¡¥ß²Ò’n›á9ßõþúØ7Û&|ñÆ0>ÃJO½£ÆŸö§½%檉ôÛ–²0âß DÄ–wd!–Î÷˜çæ}Xäú¬ ŠãÌvvd¾œíK¿ÿ«$‘ šî/ôÜÑVEŸO°9çãm­ÿžg4œŽÁÒ´¦®XT”Q0ßgÛm8ð¦º6|OWyh¬IÚ3ÔÄž¦ü+À1ÿÇ«]”WD©i÷WÕ5I›†&ÔE&ËÙ¶øÐ^½©.õÙÖU…LÔƒÿZd¶ÚñUëÕaGVtÁhäï.tɶ¾$p[Z’¤¾YÈõ<¶aËÎÇéõûtÀ‘YÇY,ºúÄ‹{4§vâÄD,´uâÊ`¥ïl±×¢¨úㆠ³kdT,©p‰+ʺ𙾲“°çª ²øúaXø4·àÙš Ì÷›“Õ}á­—…ÐkKò]kKÌÝUQ…ïžzn¡Õ­hPi†ÖÌû󢺸U>ÍÜ}cse{}tEüÙL‰¿±Ê¯Ø×Q +ô´ô;sŠvt$Тº xÀw÷@^Ot•<_“¢¢7¢sò‘!¶tÔHs•“Söa‘_á½9\“’F»*?L÷×|9³¶06µðèM94lOEìÑ*V5¾‹|ç/÷åtàû95ÛJÕ´žÔì ¿Âÿ·Å^çLOáëÑ6ð»AmØÂ"NˆO°"áξ™:ÖšpÝÙsmž›þÀÕq{M˜þvWYžðu”вó«Ú+¢®~ÿt¶öŒÀ’çz²MwdÞY쿘畼›ì/ý¤c½(‰ÿseìË[?F1…ç¶úì}YèÒ@Æ›aLÐ5äÕåBðêš°¶êØû ç?4ç~ø1Šƒ¨AÞGš\ïÃá|o[cÄM9ôóß&Û2˜I¥³ü*ï9^ùç­ax:à³÷4ˆŒ}#<¨“'¯è¯.öžêØ{ã]Þbò“$`MV·,);5#ó¿_d¸[(•ªšp'ãŽ[Z´(ª ]âWœŒŒÖ6¦ÝS’boL÷å¾Ù¿¸·¢E%:º!/&û*?oii¢¯Nêƒ)vöÃynþ“ E¥ß±Ðû6b…‹[üjψJÿz‘“î ×ïjaÑ[Ò¼w3‘/fºR^íhq;\ÎHCÉ"óÚ2šð×$½áë(º£®‰gžrtdù»x%椕QÇcT’[ÙP3Ù[öaßÏþÇ<ù7™üŸEá³èš+,ÛÅO}<Ö}kMUnlÍ +²we|Ü­/=ÃÕŸÃjþ9ƒ¯ÿ檇¬+æ>;…§®V­I¡;Lò‰\¾=ŒŽ?0Ô'o«Œ“•ûœ gf\þŽ–”»,ÃD˜е!TÌTgñ³¹¾ÏE1øÕ(;涃}gW ?¡ÕÌt—½s÷Uø|5S+ ÈÄm,tK ïÈz¾dúf6ÐÂК¼ðͲ4ûµ[R¼ß qé§CmuÔ¬°ÈWMM¿#úе¥gVTö?íùDSȃ¹ÎÄ—nAQÀ’콯­½˜½+ÂÅ]×5æù[H_íõyXì'í±´>ðÏarâCskÎ òÉÐZò¦(úå•!r¬×¹š2ß“ýbŠõ¿Ú~4Þ’q¦¯ðõž©>OLÏòL÷¾íAJýðÇŽW~b'Õl ùÎóÒ^Lv¤Þžê.|¶ ªúØQ£’Ϭµ‰§æšŒïõåß§ˆµkJT‚­­ÈK‰K¿¾­Á—®kë—UuasÂo9>ê‰ûr[W›z>‰­?w™sC•1Rrì½5MUöVéÍÿt“±š²HsK쉮¯MUÑ—S4Ù%* *}÷;øúÇB ð4¬Œ×d[+"fD¹ž“9o燩ÅguùiK‰M:!ö,dˆ[ ÜÑÂãwe§hôŽº*lº/íÙÜ@–ç\Ñ«ƒBÁÆ0&mžWå½&©ûÔà_Q‰ÇFdÒ.€5®ž|/1öÊB/$ô»£…±k@Äm)ê¾ì(‘±ÎvðÛm*u›¿g ä^ÌÐqv‚¯J‘ñû:rᢠìãlWÁóñÖ¤»#”ˆ+üêÀ_ÍôÔ‡ûZ\Þª “4×_óñë y4Š/:0×gïêjbŽMÐ$À[Æl)»jÄÉC‡."cÏG)UÇfTú ä|”X¾©¬ [‘€ßl•zïªñëJ\*‘tãbFèÖ06ec¨ÚcòþÌB©Z´÷XOáK9*æ÷3¾p[Î\>æž0/¬ ›ä”}šé)ó=4_|ÿH*ZÄÝž9v0°y’ãÜÊ(9;`¢»,ñŸ³TÊæ(¤ocغ=,sQR%•ÍÊÈu³D¬ƒUöNIȸw‘{4Ɇ¼?4Ó*ü_•Wúž9(ð¯“M´‹¬¢9>ø­ŽCŽöÿms0çÃ?\ˆÜ-ÐSªϯ{)ßÇ™´ïS ÔSXÈ¡¥*fe0ÿÝ2¿Ð뫊Ø!Ôhhi϶TÈÄÝ\Ù®dÅ{YgëHõ6µF½rrŸ|ƒƒÎFá¹s}¹^˲„S+vd&WX(åûc4˜•_ú©qUGÍzº©!, Ö޵ç<iLy<Û úèÉœ+¡hK‹Jѵd>5µçø˜È¥ËXè² øÕ;ý‰~wª3Íóûôm†T?),ÐÐržmkѹ»¦ºø5)$bY˜ø…ÐÙ’·¦æ”‡Ü‚@ÀÔòðÉ/é9Ÿ–ÔÄ¢kCݾ¿8Pæ¯ÆÆ>P`Âï˜á©Ç£øÒ3'±zÛŽÌÜEeOGlõùpi¡[R1'†‡Ûûê‚WuõEßgÉØiqð\êƒã1Lå¡“N?že²vÆÉÈE©pW{á]j¢ŽM°d€÷Rfû«?.Ë*¦z2nËË|—Ë?Û[âo89ÉwVÄ¥>§vjíÁ(µvC‹MÞ7’‹—ÄÕ>[€ÿ^*òk¿inLøÓÌHôUeÌ·‰&ÆæEÞ˜—y¤Ãgm‰ë‚Ô˜¬S+©|KƒJœê…¼™ìȼ©Ä¤/JñöÖœ»óÜ’÷@}žë*õŸl+ý´Â¯ò?Ôár×e°ÈeAù‡¯äÚm}møÎp…߆¼ìó 5O-È´¯øÀ@›ÚÀ¯ÆÛAŸOŒ¸ü-,æ«Ð,ÿ›k[²&+:Agíj±Ëž¨)×O,„²‹|wSsÎÃÉÎ܇ÊêÀy…Ï4¯èí;çÕ™P²ªDÅ/ÉQù›G6lþ†ø¼â*¿-*íÐH.ÚRÑ@[ +xZT23 Ù7±Ìì–¯ŽfÚ¿éô³QDæ† òÙÍ¿ÙР²g5” +£ð½ŒœõøÀ@­ØRÔ§ìÈa±Ãðø EmÔš²:hS ‹ ÃŽ­¸ü%YEð0íË} 5àáÆPÎÇÿo™Bþ‡‹ÛÓA#Ï'hÄ“1ül‚ +ß³ ×ôè$·ª&xvüúbÖ’“8Á­ý´"§€6‡éÕ‡#äÒ#"eM^4'(}ÔΧS;¾dßL«qt•}ç<=§>-pOYò/'¶âp–¿¡« YSVù_äm-½efæ>°5¤?<2Õ~•µ?Ï8sâa“D?>õ¹„Và7/'-Hð©Î¾:ŸQVéK1ãµ9ëÍ¡îß‹ŒÆÌ’[VXÒº žôß ëó$üö04nàC õ><#Uþ<É¡ ;Ý~ã, üËÝÊ?ŸmîÚ%!•Õ_ÐYɇ©žÄ›k¢´G«¢‚r|ꎮ¡zyˆ˜³®Æ§íéÚ–×…îk¡‘g–º„£ðÌ‹žÚÔÀ¢÷m¨i^™×/ÿñ‚(÷é?×ssyjÄä~·ãŠ.ž!Ù2 öôrÀ»„³ÓoÙ›“o.‚?n¨«…•ހ׉[‘áR,í`OkKÎÝt¨£j¨à "’Wr ö¾¦ÇGß\BÞÛ¨Õ³ü²÷sÝ…OŽ/þ‹Œø6ŽÊ96×%.J ìWSr^Ìñj}õ´ÌÛ{xÒW©âÌF*9³`rv†kÂW¤%ï]Ý™·íÑ¿ïi&åšÛ+ßLóa!;ztê¡©>ýÌF,ÙÑ\Ì?ûuä·¥­Ïú1Ýܼk´ãpm躬6pCZã÷Õ„Ïÿfc LD°ƒ ~>/­ ;ë–9¸CgŽÊ÷i€ F‘§FxÒ©±>çà†µd\T27Kú6ÞHÚRVnÈŠ?¬‰ ^.ð +½ŽL€nsQ‘§ã ´±½ìÕhGuÈ®¾ðŒªïR鱚¸(Î}µ*½?4Ö¥þ§¾š~F ÞÒ×§þkžAûæ$ÔžÙ I;š¢àÉÞ”—öΤ‡ÎÞ‚çÿZ`´l™ê‹L¬Â—³u!gñd”ˆ>ÅCôuñò"ÿCmMÔ™pàh¢ªš²^ZsÍäªc;¥êĆOê¾OQ ëdüŒ¨Ê÷"Kùt’Ý}ñ½Ï¾±>mO‡NünöW;üï)lå±[0Å/óž€|8%VkÈ OúJ|®Mµç¾\,þ¸k„&M’_§ššV€Zq ë#.úýxœÝ7÷4å@_¾_SÁ¶,ÔÊ=k3~IIÊWPA÷l݈ ·ª²:„?ôð®¶"r–_øqC[¹gC¤kì8¦78¸Å¾–V°'°® §Dâ9 +Ðb-‡DÞ‚¸ø½[ +yàÀWŒ5P–ðÈM=*y×-þ:C%¬*б˃¨È-:èy ƒr}”v àÑñ|‘ï¼®¨ \ªø¢èÝ‘ôþÄPtd„'™iU[j\ʾWpâ"Cwm¨ô]CmÄÆèͲ ýѺ´ìÓ‘®©öØÔÎØÒÐ+f…è¸%9&}Ó€L^W׆¸Åol-÷¬Ì¤›»€®ûê` W•è´©¾2¯±vÐ#):á¦{×ÕQôqW‰ˆ³2óŸé×ݽ%ïÿáh¤ì¡ÉsÂLÏuUÅ—Yù§µÁº0·?-¨afÜ:²b˾NÒñ‹ÂRß¹žÔÛíé÷7å¾ûºšÐ 2õÈB(ÞÐásVÔø”MclÇB.Ù®\znŽ4Ç?sKÊÃŒ¸ÊS ”4n¨¥aT¼­9ç¾smUz»®¨ôŸæÞžØQyçNòÐB,?²Ð«OǨðEqÑGKÊ-GSæ];3áÖÿÏÞ{uÅ•eé¢O§««»²lVgVVeV*SRÊ!‡„ï½ ï½·€7)/á}`Â{Kà‰Â{ (³ªûÜqïŠì{ÎK¿œ‡;Æeô`j„`oöžkÍùÍïÛfMÛãò/cËèò¨B„·¼ÄåÊëþÎïlp‰X±;»ì™AäïL@ÎïŒ#.x$ä2÷"¯Kþ}õ>üÖ¿xæI•{ ²ý…žYlõêÛ¦ãko«?wNu_N[„Üà[ÓÝ9»ó°[®9XÁÆhKŽgYœ2ð…ûÂÇ.)¾Nù í+ǹ: g@^íö«¨­Û3˜B¯„X“]g?¥ãÒw9”1vÓ—Ëâö›!)¿1‚Ì5=iøëÊëö;Ós~üFÆÊ¥ºôî›‡çÆ”ô–˜†ÕížÃÝ:¾*~î“`ó]3ð+–—õ'L+o½F\Ü{`ï»Ö0»ýRZcv]KÐ,›Ã=—,OÚ.n¾‡—8§ØíÛ’'CKO†¶çŘqêmësØIÝPõÇsô‚]æÞþslW“Ðõ 7§1¦÷ü*ó{véê0£h{ŒZ¸=‚¿.(ÿ·W°‹ÿCÁ®þ‹w–Rê6&ð×ׯhUÞeÔÒ|ÕÝÊO!Nþêê»_)û¯ý6aæÜ*>Áö“»=мâ[ ׂ–»; ½ì“t^0<)ýëêû¦“À e?cuœ˜¿>†ÎÝ'VlOÊC +Rãþ +‡ײ°®qøuÍÝò¿¬¾îøðCÀ ;Yžv焥̎,' +H5›#­WMJ¿\yÞð77ÀUë{få(µð·Kü²¿f¨µþIlþîû®‹Þ‰žç8âæ¢¨öß4;¾rÍexº¡ìoøÊ9Ñ»3ÑzÊ=9ëžFßÞÅÜT=êøN"®ÿ‹h_ǵÆò²õ[ÓÓ–oMÏ:Ï­¿ïÊ ,aêS&>e +Ý?×fq7}Š;"¿œ (õa9¡ví}û^¸=½âšCÞL˜Û[ÈÉÍ)tAÜ̧…Ô”Nÿ"ºt{¸í´íYý׆ǵ_ìÎRk£1oWBo•ö7|â˜ÀÝ +J©ÍA)úö…Ò“ÀÇ0ÙgB·æèÍËà“ÕIj•þöÊÊ{b¡ùEçÏ,¾6®²BÚþë$­Æ6Ž¿Òi!- ¾6ÚsÉ1‹¸µ»€-*éíq=½3³"%ÌâÁ5ÀIvÐÅ{«Ù¼ 7†¥¤ÿºÀ·í½Dmò«Ä»ò§/o(…¦W°€ÞÀýÃyw&môGN¥VøÜ°†ˆ˜˜„„™ÇNï÷ʈ­?;D3k‚¾¸•Åô*05%¹9hàÓÖ¾;é•{ï#F.%bfÀ}€¯$Ìwüå™7y/Þ/%U„¤è[T¾{ +uðÙ›®É®s¾yByBÝKÝÅß´÷œ’Ý/ÿTÑãwÛ/ºO&왘˜ àa5ç“ 0sÜVÕÃÆc#„Ëÿ¤çÿÁ9¿áS<¸g—Ü¥lÌö#vfø-;ãìº÷ؼuPƒÃÝgÜÓݹŽilÅæd/dmòvcæ.agš×²=Fº±5J¸a|Ú–}FëÔö‹ž3»o`çœ#ðóëïqWvfx]^©éžÅwŸ}K¹õé09÷Ï[oj¾ëi]NÀ‡sô*ÿ2á[fv­w~·=ÙuÆ1ÕqfåEÍq×tÇ¥¸–Þ™]3Ñ>I)u¼- øÈ·,Âís#f¤vø¤ÄÊõW=§W^uäºçÉM[S¬ZÕ=Ä·»³Œº°’ wÏc +\³ˆ+Ú{•Ÿšî•}îí¼saöQf¥ònëö—ˆÒ¨\€uŽÂrä²§h7~£—þQ9Pþ™c +wÛ+åt/=ê>#èÈIh˜p¯¤'×ð¸üÓjÁïŸ!¯üi†^ð'볎ï}J>Z÷—7̬øƒêaçAŸÓòÉ ”‘šÖF¡7v€¶tÈm^Õ½!ãô­¥ªc@g•xÐ51“â¶+é) ÈUÛ]g€35L„âqÝ÷Ê»5_8Æzr=7ý‹¸º„žOK˜„lÀ=*÷ÛŽyíÎ)\¥þaõ1×xçÅ ÀΔÕQqÐ “øNÔÒwcžÛ¶:ÍoߘáwèžANm¼ï¹æ] µ–Þ•à‹£:6nß.¾—]K7¤¢CAüò¼rr×Ö ´Ä'ÅÜöÉÈÍ~±:Ž) ©H-)+—RÒ»b*"©ccÀ\AO3¸ö­Ij›å5ôœý=äD\KíüûöÐXÚÆ"Ä ´®ý5.wÏJ'Å”DÀµÉP×®Ró¤ýkÛ0üZHÇ„MLl@Mn +)0¿ŠÐ³ò{“v¡8fdƒJ*dcq5¤¥wïk˜ŸV(}ЦkžZåX^6~ù–tá×o ßýz‰ù_6ÞµŽk÷<½zs‚tkgšX䙆]òOvŸÝo;cû±è/ª»y¿ë¹øÝlŸÝwÌ¢Õwä[ö§Ã3kÿ0Û~¶3 öÙîKÒǵ_Ÿwžó.ôaÓ¢.À_ˈ‹Ëý¥4=m=X¸Ã ,<½¿;+„n ®m`¯¸Xí>¹¿9M/Sµ}£V}¼;Œ¸’+¢ªìºÈ„JÏæ†gA7¿£Ü´¿Áäl¼nÿÖ9 »’36â#1Óµ@­Ù™ì>ã_Æ–†Ô<¬g\¹ö¶îøÚ›²¿y%í9îEZ]PuïaLûtÜ·,ÀìÎ#óÒ+L\ÜÌB»—HåãȼbÉÊ0þêÊñºg‘ÙTr®Yâ툂ƒñÎKÝÓ°+ ÷¾×Ý/<îži;’‘*" +1Û¯°oÿN1Ôtvk˜Ø˜'5§Ô„Ö¸ŠÔtS¹ùy×wÛS´ß½ÙðøØ_ÿçžöo¥ƒM§·A-ŽKÝa%­Ã>†¾¢þòÃÊ0ÄÛÀ@XËÃ%LBD«ðÌaËR.ë`½÷nÆÚÛoÁH‡ÚNù¤\JpņƒvÍ oJD·?[ì»ù;×lϵ´Æ…Òü–Zü‡iAåßçî­ë[F¬ wœ]{Ûuèð‹a­+nê­¾Ç\5=í9Ð{>XúR çÂ2t•crݵ½é”s K|ˆeœY>ÃoÎöš»šÒÐ`ÿXãñÂ2|yBCl‰«põkošOÅL\JØ:ðÈ2†-Ö¾hú6ª¥#€†cïoô?ÏØûE5ÀÿÉ5a³+³Ò+öÉXûØóÓ¦/MOj?wÏãJürB=Ð_Ø}#‡–ãý2hAÚFGí.c+v†ÛN¬¡å ‚rnkžUï˜aTìþV9Ôñ™¼¿í io×¶g=ç}ÙçIeÙ>é¸|Ç ½rg†^¥Òðù¢ðú¯ýE¿7‚º²ù¾åÐd]»sBˆsœ_ïŸ_§àwF¾ Jš@¼T}nxQü'Ùƒ’¿®¼íÊ .÷Ó]sÈÎ¥Ð3Ïiö.qÚ} ¤ªÀ/ý Ñ×§¸×?z‹;ù¯»“ÈÒ¸NÌ÷«úè[Sì7ØÖ=»éxÛõCdWl~Zö¥f¨èß|TWÆ.Üí>©†Ê‹É9=“a) Õk}rL¡þǪOŒK>É>÷7‰E>Y/Ñ5½½;Óy).ÇT¦tTDÍè +hm–çm'ç97>Žj-~5­Å¹@(ò/*KIJ¨’Ñ×sðÞeB©K‚/tÍ3šÂª¡þ­ Ô¥ÍáÎS‹âŠoßa¯|ô”|° x ˆ ƶÍ6Œºê“ñH~ãšA]][ùÕåì&h—?qO£€Æ»;`{G+Ð<‚}«y?¾»ÌCØßwïÔÆ›š/×_U|XB—ÇuRÊ4øÀ9K,ߘÄÜLXD}é•ÞÁ¨†ÞUâ*“-gÖÞ–}ê]$”‚ã!"ºÁA¢—º>ɬõIÙîÅ>‚_ÆîŠjXˆÝed{qýH*÷+YÝÙwj\󸂰ŠñËà2±2©!6§ ìÎ<£Ýüø8­*ixº)!ÔXÞuœ6=o¬üØ?ƒÎÌa‹bRJCJ#ÀÇÁûçHåA ¥&câÓÜ Èkî9À'¤¨›!¡Ê/'6$ô ÌÐA% âYbw„uý!]_H.@GÕ,¨crν½âœåm\2³±žeJMDEkÝ7³ÁcoùÎÉŽs¡e<ÐÞ4HL!bGÕ¯Œ`®lÏгµÔ»Àl +ÌÃó½ v' ×^¶}ŸR é{ÖÁÇ1îY"•\l ,Svg×½sÐbcÕ²¡ê“–ç-'wowIYPàxî9BMHbÅHGì[yìˆšŽ·Cn»f:.„TƤµÿ~X?ÐÓ‰Øq]–CÃn9§[Nؘø˜–‰ ÈP”Õ¾>Mkô«‡îx䃜€œÈè-®Yd¡[‚,ˆjÝ 1Â*J‹W‚»Ufßkë…äø +ÇT×EÓÓ’¿Z^tœ)¸„ÌÊÀ£°UÈºÓøÅ@ßÉ…ø°AH‹h@mVpa» +.Ü%ç ÜÚ‡O-s÷£w  ¥§mzOéÜŽCI©PÏ|ëµ°šÔäÏæª|°ß-»{gum{–R5ð™Q™´ò˜ +‡ÖÓn)¥ŒI·WÓǯq +\™O‚Ì÷I`y15¢" jgØÔ?äÓö¯N³›vf¨ ?oõ¿HÛØÌ­1Èiç0ä¬åiÝùíÑú?­R)ÿ¾Ûû"³Æã8±5¶QHQXÇá_vl޵îÒ]ž4»Á˜Ò}2>Ü1Ïi¿¯tåò¼cÕä\âwí.‹AˆâS +qn·gksc yaÄñÆöúöµdc„SᓈQq]/ÔažGFª¸|Ã1E*tMs]s¼Ç4½Ü9M,pM".D´¤º€ŠR¿;‡Éß|ßsZ*,ýݲàæ?o¼iý> bÔ1Å¨ÈÆVHÉéÎæLBKkMª µþEäÍQèÙ•WÈÓ[ Ó‘9Ûã°‹ %^"T$ÄZÿ<¬`ómÕI×Xû)÷4üJLÏ„y—% ®(¤d´ÇtôÎl¼ïÙ8´¸Ðæ˜é¹¸VuÌz÷­ß4øp{†V•0p‰~ª ®ÇU}°3PûV"¤ Ö»çyI-±!®£n½Z‚çùæ{®¦Õ,ø?¬÷>‡Å5b6àrU½# ×Fñ×\“Ћ;#]ç@žäFI Iu#ªäcA­luIÈ¥I£ˆÌÞƒ™€œ[}S÷ÕÊÛæS³Â›šü¼_ÊE¬Î1lïÉ·#êÁþ„¡¿/®¡´eè¢ÕáÖ–‹þìžk»˜0R»Ó+"QHÇ'Dt˜Þ^âÀŒËuLSJR!.aÜ™!ÜZûtPFïñKí`N€gÄMƒ÷<Š>ê®DËö vIxPP£K@ÎVøÚ¨šÿyÃÜ_eƒ*LõædçyÇ,º0e÷ÇÍ\rXEmŠ(è!¾*$§´Ä4½¬} r¬Âö²ñkû›®ÓÎyRÏ}ØÕ¡|’"Ë"JlCp[‘ÒÐ;÷M|j\ËÁúåä†höý-ymgvp^ºØ§gaV¡ø`cðõÁ–ð®c Så×0‘Ù^ +%æWc*Ög¡×gW<€§'ô¿ôºâŠ5dßmzø.jx¼·ÊãD•غ èðER…g[”4Ò1{}eÛ¿ *)?mñû÷ÖßZçñ#Õ!gu¯LRŠ7ÐøƒOGý´Å †ä]W‚2LiBËèJêXð„šÖ–¹÷“I,Þ³ˆÅqƒ +tOñê{øÙ)bw™ Jûé¡ì5Ål_C‰°'Ë}ì¯ë?ßmü& Å–z¥Ä2¿”Z›6ò©+ƒÏöWăqRЛA 4eý÷B?Þ+Âýˬÿ"¡$°L©x^æž§”%U<Üž¥Œ¥éS3;¼r1 x–ø=» ”ÊÝ\ÑÚ0âœc›ç[¦Ö‚ýªÖßCNoÁ.ú—‰å@Ÿ·:¦…#ÈËöw]'ƒ ¤Ê”IÜÔŠèÎr…c–pÛ'gCüjÀ@žmL“Ë,ï`çí£è\ Ó €×ó²cå‘í®`wù¤Ìf÷¥Ò½L*÷J)Õ«ã˜Ëî%juÜÀ'¥ÌL”ýUÍމæïÝs=—6Æ¡çƒrB…è©u ³Þø—Ç Ji]#'·GÛOy·²1®æ`Òš¡q â½ÔÖÆˆ^Ä*¹Ðý*dßFéˆé(Mûv6io¥o ¬écš_âr=óôÆý•‡i+›â]è¾äœjúÎ5Ó~zs´õ¼wQžµ&¬°Âj4¡ã“3€+dÈ›žDÞæÈýƒÊ³¿n?ã™'Öøå|œþ¡²ré£7”ò3ezwT†¯-`n…΋n»3…¹¹6ÍèYXǧËö +y!c°SÖ^aLÇ%íY(ð¸ +]êžm:µ=V<½ÒwwSFnšX{Ì-§’@>03Föƒhj¥gýMã·²ò?¯¡Ë¦£.o> 0‘•0 Øq‹€ jŠàÛ¼¾”Ûèœj?•l1î%XeLÍš ‘U¢ ù€8ÏhY¨”O‰dce_áœÆfŸéóÊPEŽ™ös%¾:ªcA}Rn—GB¯qÌ!ò,¯ê¿Øm;‘Ðê2b˾Б0`›?¬²Éi  4&*$ãtù—)u®yB‰w™Ýæ]b6ƒãw¥´\Ô/úDÆlY}ÕvÆ=‹(Œjé ÖŠ=Ëï9ú&œo™uMÒ˶Þc®èÕ}kÕòm`‰^x ¨uÌÆv“î9ê¬úaûWàw}•’küKäæ­i\± ð·´´aצ„Y·-ôØÇ…¨õ >ä ˆUjÇö$ªÒ³Lo÷©˜¨YÜçXd6¯Nb¯mKÈåî_žÝ"•F¤ê¸šÔxOgp™V°V I. ÐÃËÔº­qôeoö^Ø"þvDÅ„ìÎQª·'°×"r$®âÀö¸¶úºñÛÍ·g} =à +ä €›°¸‰…u¤)näá&h¨[¾ÅÎk µ=¸ÌhqŒcó3Z.é`ãÁ|PϦlL@Ïí.`+C*.6aì§l}w|Rr³b¨â˜üNéW 7;ƒ2>~å}Ï;Óø’la„Ñ’8× +oà9²þºÏgé7>^{)sÓhyÕðWç4ÆE;¦1yìõ~%µ+¤` ÷Ì<¨awƒ:6£ ¶D̃ϒ–û)-Wá+# +DÁöHwŽgŽÖ׉EIëÀ×"¨‰Z&iì¾VAò":tiL«v/B¯oÏÚc–Áﺳ²ÐûWq ë›Ç”Û_6œ^{Uwz„xî÷÷;¾ø•éEùÙŸ¢‡ — >¤Ìºp(eãÒ3«Â¾¤Ãö,£Ï¿7>mþjw_–±óÙ‹C•ßlNußN˜hÐ66ég ]ÆwÛ^¶—½§Ý8ΪþâÄÕ>stream +ùtp [æž%”ydœÎ­etuZй=Íé˘÷æ¦íU牵‘žóàwÁqg‘R±³ÈlðJï‚y=å•ßïiz©ÎYxžáIý^ ©&¦S6×™íO¼Èhòiûø!}/'û^±su}ã]Ëq 3N‡dìsÌЮyzmH.$xçiµQ9µ!°„-Ýæm .n£sCRvGL)Ä»& Eö—í'6Þwœ Ë1%º((C”¸ºn9çpE>e?'¤èuΣ ìoj¿ö/Êü ôÏ4öÖÏ&6éÃú·=²#¡T„ôbAP?t?dz2ôr\ ¸㳺lošoFU‚kN7þˆ9³=Á¨ñ. +‘ÞELYL®ó-¢ŠlÏ;¾‘pËÿ8AÎÿØò¬ýÊÎ ¹di¨öcÀƒKÃ*Zcšç—`JC*\m@M¨ó*¨õAe/+b‹óäJÇ,® µ"ìMZ…ü¨žK «)ˆˆ’ÐRPêc:6*i¿?•² <Ú·õ í[ù¼= Qp1 ó”cª×‡;NøU”ö„•KsH:.‡”ÈŠ š +Ú5ˆaã㙘õþhØÌ¢„ „†´U|'¸L­·¿hú›„™÷Ïšþâ?«ï”œZ}[W°g§ÿî¿ Ìò«Y°½þÃFÞ%!VmŒõ\1¾¨ÿf}¢«0 ÃÕÚœ00as}%ŸÙG:nfVØÄ´žÒo:£ú¨ãâ? .~tvõÀ +l`y@E® «I€»` cjÐòLèö úºk}Ã3G(,ÒjÓf.é';›üa…J(-)©2°Ä¨Ohذ”– K- QÐÚb:4©g¡CJzKDÃèðÉ(`Ž˜Qʯ`w¬N¡¯iž¶~ã_$U¥ l´`rBÝKOèx@{j"ZdAH…¼•Õ žVGµ ˆWÁš…V–sa)½=¢À•™ŸÖ3?lúèö h¹PöÑÂJ!¬â‘C*À› 4hT‡©ò,ö亖˜È=óÐãˆîÞ“Ýe8?.Ô9$àîÕþ%ä­‘†³+¯ŠùÁ|ƒzÒ·þèVqÙú´Ö7Go Ì‘«üs¨[žyÐI˜Â¨BH «†î¸¦É¥ÎqÔeýƒº/¬¾ü¾8¦¤4FD•Ùâµû$Ü®¸F@Ž©˜»3Ы–g¥1?-ù,,§@’–¡g s¯(¨¢·ûetDÛǼ—–Ð’ƒ ÝW#*Rƒä`XËÅ¥Wï¼¾ï×õqC†ÁÁ šÕX&U–Àø)i®jÕÖµ(°(@:¦5kï¿pL¶~·=?¿3N-uN²[‚ Ì®°” Ýž&[_#rÂJ>Äfg’ãœÄÞðË) 1š^åq¦;ú>Þ.à“@wÑ“›÷¦€NÇ9ç ·=RLIÚH†|Xá²÷AÞ¤,â¸VDÛ· >=ãQ³‘ N¶¿Ü{É÷ƒíý2JGÊÒÛŸ¶÷ÝI­pèé•§q³3²±) ‹3°ð1Pcƒ:lÅîR÷…ˆ÷ þ–s +•·;GjªØ¤ŸVDwÿ}‹ÁJ5Î9bµ}˜xcåéfH{÷¹WÂnVÓº3VŽøç5.'¸DkrÏý+AçoOCsÂjjg–?†”ÙëwígÖÇz®ÛÇ1 ›K dØ êKƒXhpe!¾täÀ¾YÄ9°9)#ç˜Ç®t~·ù®åÏX÷ŸUµoeaìBÞÁªŸ´°PAÀuHNpq5$E߈)© I- ñÓ0;ã@ç¤Í­)¬a@<³°ë¶µ_j| ¶iNê±q-º8êiÆÀÁî›{ù³XP1Ú,ï:¾U?(ÿƒràÆ¿Ú,ûìÀÊÆX +Ö„‚¤‰ Ͼ¿—ÓÛãrRu`±ë‚c¢ýìÎäœwWQÓš>Øy¬«^ÚÄÅEµÙ÷:Î{—‰eAÀÍÓ&!+e2Ó&Ÿ@Û\%À|— åQ¡:,'7ùdô¦)TÁÊ»Ž+»“¨¢”‘Úåœë¸dßô#Ûë{Ûé“öS]sôºµW°ëá9BYh_²ù¦åŒ”wéãÍ·uÇ“.iFMwîùÕ"²sS´9ÝzÁ¿„ªòÍÃó¼ó°kžøíYäm\ˆ÷«z™qc/7m0³Ï0®½ëÊÙGzwލ G u®t¾w™Z›Ò1zR:r‹yÓòcŧ–gU_y%=×¢*rC@%Àº—Ø-ÛS´2Û[B¾é ä¸{“oyRÿR\ö•n¨ìãàÜiT2Zì£]g,Ï«GåÐâ´[ë]ÂVzˆuA)£=$aCª»wÂjÂ=È7?©ú«„}ù7»£í—²ëEu hPEéú±Ü5ˬwŒóÛÖ^âs}óÝçãzØ­˜W•0ðˆ1€=ik_/Ð £€æ\bC7G‰åŽ Ìu÷<,{½/{ͪīĖeV9ôÌJÿý¸‰G‹éÝ 3Vq~)½Õ·@¬qÏc +ý +TIÒÌÂï­”†5ÚÖêæÖÛÖ“¾¹Ö€fªH˜ØøƒÍþgI3—µ5Ý}Þµ€)iX䄉ò.÷\óÊz€¶ÇV¸¤=—vá7öìÐF‚°ŽÙÓ30{v®(ma*l}Tƒ­ é¯ôi9ŸŒÚà™E_[Ý|Üô°ê{ëÛŽ27Ðó5%û Jí-&O~¯ë뀖KÛ[ëLéxؤ†ÖYÂïééðV=£gÁR&Ô« UûäBŒg± ê)ˆ+X^ÂÜŸ¶áêömThÆÌ!ì#RZsDFªŽÉm )^ Tm¼©ýV->ÿ»µ'ÇÂr|eÊÌÁïYûÄ ³g{¶ë¼õMÙ'þù–Ó 5¶dÏ@‡dL\lXÅê dßyç\„_uÏ‚˜œÇxIå½%a1€Ff$tDPF®Y{×sÚ·ˆ/Iê9˜¤žOÔ=nÿJ;„üaó §.0G|•P瘬?ížmÏõ.óá®N[L-æÄ4ÂíYz àÌŒÇͬpé6 ð2F@KïY…åxg¸]룜6Y_Ó_·ß!o$²ONjH›˜èl}L™¸D×4>ß¿ˆ¿Ô³‘q ‘ÕêÞÄUçDç QŠ¢€ß]DòÉ„˜iz…ý-·fc”Ý\btQ…ê»×?Ù«?±;Ó“RQZÚ^Îî ¡Ø/¡·Ç\lLÎAl¼†_›f}¹ ,þzu„p}øàQ±¡ÎyléqÃ×®#n¦A"Jl9Ó¼È2&»ŽcÏP'SÆþA÷£em hVFÉC^α=¡ÁÜŽé·s?Ä@}òJéMžEj¥_F®þ°ÊÀüû‹ùa‹‚H™ImÎèåíaèÙð"­)²Ì…ú%ÄŠÀªÈò¢î+¹¨èã­W­'î<°óÖ²îà J.4¬¤·¦ äÆˆ¢ã|HÚ|*° ½æ_¦Ö„”|”[Êz…Z¿3Ýñƒb ð7¯Ûûç²ïű +¹3 +ôkSÆ"`¤MÐÍu1=Ä +ÐÕ:Í+%V¤º¸žGÙ_ë½³¿&~ÚÄæõ] þvLËÇÇôl”í䇨ýû– ÿçUÀKJ׿¯òùv:.«;sˆÜíY\ÁÊ{(À RUBÅD~0ÿc•ŠøM*&¡‡Û_×¹òžÒpA —´9‚¸¸Ô[úé8íòom/›ÏÆ5 äOñÏ›¬òi â_¯½­;æo<—Rë÷µBJÆ,bûTôæ¸^@ʘ‡elƒÃ:Â9Óvbk¤ñ˜}+¥1ìâûq=7pPÖ{ï¤ÍLdhskãMÃq™øòGÆû%¿÷s`¦#þÆ?¨%Õí¯q?o ú37´vBKiÛé<;ÅÈù•áaј§VóýöXóß<óðk€gô{Y̆WF¨ØžCå†Õ8†Ó«sŽ·œÿ-*úÿþob°ÿ¿Oàÿ+;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lóÿ7±ÚcÿMì7Ç—PPÅpü£öòŽV\†‚ÿ7™,4ã£ÚŽCÏ2XÅx$ O¥Àücyà[çÏ^¸tì\#N:vâ?·<6:VÇÀcñðÍ&$œ„>yì4Øô:ø|tþXαó¿üiçt&÷êÅܳ9—s.]É9þêµKÇrs/_={áüµÜÜ+WÁ¯#g7ʽxöbnî…+rr._ºú_7"e7ºôË÷®ßsùÊù `£«¿ì•s17ç꥜Kÿ¹Ñ9ÜÿÑFÿåp¸Ú>¢|Ôðѵc'Nko^¢?¢ÿoçr²Îý2~¥x:ï?ÿY„#òÿ&Ø lSöѹb4Dß®é¨:Ö^ûQWvïì€þç_Çþ·WYŸ/]9›{åX÷± çsŽåœ¿’AÜÿÙÙSú_{ý¯¯W]§sõ—3¾t,»ïùŽÿå$³wìêå r?j¯ø—°ŠÙ× +I…²Z}Kô¯œÚÑR;ÒRk\ƒ®I1e5¹!¢gtÇM|ZPIït-` }ËÄ +ÿµ6¦â ’Z>1®R" +.<¢bueûee×¥u-r:œ³”ºL‰k +SZÂG–q%q%¾",ƒ_Oèxø°æþ£öÁm¿À·ÌíöÎS*JªtLÒê£f·OŠ,Ø]€]qLuž K1UI©%"ÅÜŽ©ÈM  •4 +h15µ%"'U‡ä¤Jç$27.£µ°ôõ¥ôltTÉìŽiø””EÀŒêYp÷"¡x{ª'Ç;‹)J¨µ µ€‘sa¡%!Î=Åë‰Ë¸ ðgyÁ5ÞþÝÎûº/üÓÝ—rzKRÉǤ´|ÂÎ4ôòÆëÖãŽaÈÇäâöhÓ÷ <øÐR H!µ>,g´Å5\LÚÐËI˜ÄýeÝ'í%¸9¯„IúûÁù b:J{ÆÈƃ.¥c#£JjSXN¬+­~µ&¢¢·$täæÍéæSŽÙö )±aOÏÅXœŒIÈŠƒ9qÎa‹vç •1­ˆ7ô²} +b•WŠ+ 1JYؤ´Ï‰¸¸]±Þ>Öy.®æ¢ÃƯ$Õ§Wøü½5ñ£”•CJZX˜„‰…M™™ÈˆWUàJZ|U\C¨û`dzð¨I 7Òz¢FzOPM¬ kÈ I ÓSZRF!cî&ôl0/LxÊÄÁ% ’W¯tË0¥Q-š43Vý§Uñ£à¸{+½â¤­OÐð^% îËöÛñ3öŠ Öâæ;OÓÖ{ïÓ¦þÁ¤AÈL9øŒ‰Éö²Ž© ž±ñ™I°OXNmŒk¹ø„ùÎã„EÀȬx{«½ ÕãêâF\SD‡­ +Êq%îE\­ìaÃË tqP9Ø›Ðg{.£Kœè|ï<©4aciëÅ­LTÂHnŠ*±• 5©%ÛPRó˜|Ǿ8lä ·g17Kô†„ +ĈNDéXð[”aŠ} +6d}šUÓôÇõ~È¿%蕈v=©A—$Ԩ⨚\ïWPJVOÔ æ‡•\¸{›¿ýrÒ=»\‚ç%d¤ê´’‹ˆ¨]Ó}·czùä"2¦å üËм‰Š¿ºg¾‹kp)= –Ô qƒ€× ) pNI½šÐóñ±lŸI¡2m¤CRFFOÆ"äì¯ +{F Ä-¤dv–™Í ñç[@åo77¿¬ÿFÚWÿ©oRHˆÊÄTŸ„p{wòÃÆ«Ú¿:GZOÅ¥˜¢˜_T’jæïý^5Tùe|™O… ß"ìÚ꛲O¶Gk¿N(1E %¶8 °&iÒâ.6ší ñKÏ™>þ]|/má’cÄ5³2ð ³"¾“0€|VÓZÂ2ZcLJkJëiµ=c¢¶§õ”¦¨ŒÙžÒ +é -±1¦ÀUdŒ ôtÚÌ#¥Œ|rÊ$b§,C1½Praa•ˆ×÷²’6!/±Â¥ÆÌx³o}0š0³±5¡Ú#Gßò*Ñ…1-s°:øä.?µÂ&d×ÓOYŒÇ-w_\BDO¨ k Õ!=–Éöe°²I` 1i‹x i‹’&mÏÆ@ýc‹ÍÈØX„¤‰KHé¨íqY¶×91Šû¢#Û,½*¾3Ñịg] m§v;NUøŠ•ñ޼!Ô¿™aÕO›”{Ð…ÙþÕ¯:‡‰ Ÿž¶ 8 3‘4qð`îxûoÏʧ%,äî,±pWB. ¨ÙP¯ŽÖµ0Tù©c‚PšÖö2öM!¥cg²é[×Të÷A ð—°ˆûB:.Î%!€1˜¢£uî¨ 5¶Ì»ËÝžì>íY"”‡tBŠCB*_;ã#Þ +ÎqZ#RJML/-co»fWTþ²3‰¹Vq‘~%­Å=ß}É3Ýq)*GU¥-Ôž¸†Ú¹{ä´é΃”±¿/®QbZ$¡#5íYA}4à@Ý!·ÆŒ¸Ú¨†OèÄܠЇô-ð:â*&¡bvºçºÏ[ŸýÞð ô¦û­ß„gEXÿ"§swšTè™$ÜòOâoÆ¥ø2÷LÛi뫪/ÖF:~Ðw÷7ûŸî­‹flƒAîQ“zJsHË‹ë`ùQ¼À§ì¸èSöäe{_„À$Œl\ÏèI[)]I¶2mÂŒ†^uÌ´~–Q;÷L÷ߦ-ƒ"::¨¢w†Õ”¶˜iÙðÌŠ¨7iãP—÷ׇ†3ö{£1sÿ@ØÈ%&ÌøÚ´™Ð°·BG¦ltl̈©ô(ñ•^³Û¹ °Â<0ô÷u>ï[ bÌ@m‹jY={&JÇ S‘øÔpQ`^°iÛЋ¸E$5Pák£zrgÔ@lj‰5®hžåEí·;ï°%ËÓeÏ,­z{yÙ'Ád ´ŽŒžÔœ1Ñ I=½3mqS¦~qÂÐˌ餈’Ù‘PrzR¿ÄêÊå¿ðIm -àY*fwPC¬ ÊPÅI ¹}ߘí['d‡u È.à1ÎYü͈ÿ½.*c4ÇäÚ„&ÛS˜X×3q³ˆ½1‰É³>ïüÆ1Ž¿µ1L¼µ;N, /Sëý øÛÞYl¾_B(Ž(¨1-­Ý>Þ“ãš ‚üu\0Ó A%êV\OjH(-¯!3À ƒ€œq׊Ù ×?¬RaQº$¨€ç…UØâ¨†X›ØVÓÛ2V›w‘Vï“A^’*|Äu÷d×iß4òJ\ÆhuNÁr˜\ÿ<¥Ì9E¾œfVo ·~¯~Xøû•—µŸGåô¶´VÈHElG¶g½‚‹8° <Üóá•Âol×~é˜iùÞ·ŒÈ÷ɈaM¶×U3;3F3mñ÷­}} f³’f:?³Êc¥@þ¬ ½ËØzÅÙw!¡rßÄ!Ø9ô};›¶¿Ê¦¤­tXPI¬ŽNÖP³½&ÓzeÏÈ#'õÔ¶¸u;m¤uïzPQ[ƒÊ~vÂÐß›1óiÙ¾KQ=õ/b¢wG,ÄÁ¦øifÏO^´¿9ø:³F†Õ˜b0ÇÍq#±iÏNÇ´ä¦YÜ­9RqÆzçÉ/ýW¹ŒŒU(HHˆ qMçåݹ®ó»ó˜›i3‡¸¿:ð,ië¿›² ‹JD¨˜Lˆ‰,‘+C˨›.€ï[“'Ö†;)u×h1pÜ4àÌ)€1ÿIoùÞÖ•¶}?7Ì=3δ¦ÓÓPffr3³eY¶˜™Álljtb'Ž™I³dfK³ìtîçù;Þk÷ý #ÇáÈÒÞk]×yþε×ö¨Ñ×=“…§¼Sŧ#wc¨üìBgÞþ…w9?-¼Íݷч¿±0€½VM:û·¹§ä¤­B͈È™ r¶§ 7§÷]JhŸ”@øØÃ£d Ú’°rp øî˜CŒ˜9¸<Æ:¢}ú!d¨©…±Ã‡õLÈLÍû4'à$¬ª˜V²1‰»·1ÄÈød©mù4/š£–5¥Ü“¥g·'€agð÷#FaÄÈÅÆ,"VÌ"µ¡?ž\Û&ðAz´ÔL·––0³1Q;Ÿµ Yw-ŠÚIĈZ¤ÂY©ìÓ¼´fgVÈMÌ ù1;ô¬rÔrÔXÛ55´Em-ƒq{uKbN,ŠÍò™aS迼°ŽÔ^@JëZâÐ~5#té:ä™ä€Ž–»­$= ¥|šƒÞVRÓ"f!=f«{wÔ´"ÏUÙYTÇf9” VçsóBß™ÈRÿ"fmîú´¨h&ãy4§C³W?MØåõA¨ƒ r¬6‘2]heiHÃ,ôNãï¹§‰I> 9Ýo —@ –†×[ÓGŸAÊßVñkê~·(êþwV¢ðhÈÙÆŽ¬Ÿš†'H^ hÀ‘gHi8¨¨šë™F]_îËùuy ïð +h÷Ò¨cì$Üœ¹à¤gB~Ì (¹¥îq~1ðQ’£»ìÄ|gáÁ¸…9™¹ %¬Cž“ ïÓûÕØeÙÅŮ쟗ºÐ§}S¼Š QÈXë'ÜôN3ò=JÐßaÌå…÷å'õmùûž.þyB”ó›LT±=BKuãn¸GªnxÆIÝã¤$çpÕÕ€’”æ™Æ=ô©(Y“€âž¦¤lŽT^wŽ¡a.p·§°·7†!‡W^›~žò£¦ùñOŸ,¬ª+«2¨,4E~´5N¼ïž %¹Ç w—Ðçï +­†€ç¼È³^•´l÷áÁZÉñ…Î܃ÎAü­åžÊ‹­¤Ë·>+»ö X´’pà³h9!šBt5 +Y|¾2þà3IÛSäÏ$ñA´Ú ìféÉéQ³X[à³ÃÆšú°©¶!õ6³+:Rª¸f¡·ð·ÍaZZܪhX•³7¨f•ù”Ì­18®i-d¨mBžU‚ùD|ÃÚ«ª¸¹Ô“¾oömÊw#˜ë[Jváò¿pªµè þYÑ¿’W晢eº'èƒô‡È³¶lïÊmô‘îïØÄµQêãQz +ä%ÊRÙ¹ÍÑ¢[ãÇÜS%gÃ%gýSH ‰i›ÀY–Wå§Â*9/Çç×Rs溲÷™_díÕ7e}£«Ëù~ë=x‡–mhË<°Ú…:¿£gWD5¬â çz?êôJwþáåy‡Àî"ç°5J}Tó*c&1jä`¼àkès+}EGŒ/SXî,8ÿ»•Z…<‚ <÷Î=MÏpORS6‡q×·Fñ·jZNDÏ*õk †Æ©ia½„P³KVûËÏÛR¿]ï©8»Ù‡½l‰:˜â`v,bAa&¿*¢‘²ã:…4jÑÝ*JšGriÜ,dìÌÊê¶4Œ¢Eø]ß4p ¹º1 +uÒƒ÷L¢.{Õø”è"¶×¶…Ì5 Ýœ h3ô&„dM%drfÔÊ£úL´¨Yêï%víRòìrУÈ´Ä£òÓ¥øèÜ,“Æ,5MQKíÓœÌu¡GMËöê›À™ ƒ¥'Ü % ;‡· 9'A­ h¤…­R™Ï( A6ŬÕa³˜1q°Q ð¼E@æltbžÏŽÍò  1›02Ñ~=|]ĉ+zU”Tð¼00¯[EÍÜš Üõ¨¨é~D“ "š4~kw'b`W…àýQ»¼&b‹Ã6ngA,ÏÖ´"þ›U4Åýâ³"qØÆÁ!>³3‹d$yuÄ,E€g£6è»DþÈ™YhÏ #ÉF^§rKEJ…l ãQÿ2jox<› ššëœ¢¤ôrEÜX]çS²Ë<Ó0Vàë[ë’+½:V¢Û*zžkŠš¼ |å!=òM²Ë"fÕ£çU®NÓÒLí¥‡W>âo… |üÖ(ö¶oœ–éUl K? +2Wûehè êë±ý¨3È¥ =EG<“Ø{A5d@#£äßv6! +}îž&§® W^Ùè'?Ѝj$ž A¹{’™½1H|ࡤn‘…§èYáivájê¼þiÊ¿Vº*.B”§ÈƒÀ1Îaü­­AÔY÷h9x暘ns˜t/¢Q€ƒ1P×Åa­èžÀÝÝ+>˜F]Œ©qIQ-ö^ü6a†Œ +ì³=AMñMqKÂ:>) +Ú—°òÈQ3­Ð5UzÖ3ÅF´2ñÖ-ü3×;ÅB§Xa%#; šäŸ¡æ¬¢¯/öŸ«Ô°F ª„„Zˆ ª€™Œ|Ò¿g%ÒO1°±€¾¥¢d,à¯ùÕ"jÔVÿ*¨çâ·'_¡ç´|rt^( ;$R¨MJÄ&…¬  ÕQÐ@Êò©ŠÏù4å×|zBJÀL̓æ&f/5Ïã–:x5¼IX›Þ'\j|Ž”›°³€èy0‡ô˜UQƒ¬Y"k“ÈZ^Ì&âºA?œS´ôV¸ z·ñiA=«Ì£&§z ³¸t|ìÚ ø¨øÊÒÒµÖ=‹Ù8„°…‰ŠÚ˜èò¯…ƒ Z8UJ䙾RQØòt$ ™ b•+€¨Ã‹}jz¶_Ã)ëå­iì]çTåmà0ZÔXßöGÞ5ò À›È3 ‰a“³×<…s{Àg"È:š¥ñMÌÞÐ<uø/æ`a‘çÕ'æ$2Äãz5ŒŠ<X«6>ï™ b61?dÓ‘gi> .õ5<þ&a®mÝq4÷GíµÏ|fFÙúùþR?gk¼š±<Žg… Ž_û´Ë­i×»O>ø4¼Ê QD [e²ˆM^íW‰‰A­BÔÖ*B:øôø4áÁú$áîÆõQX#$GMšs”pß7Ê) Î4ֻǔ­qQùÚ('kji¥uvsw7¢‘0€=îET µF™yhüou°ìÌroùyç55ª• "ÚÚ:?d[ÿ”ž‘Ò‚Óürd]É;½½Ô•ñãfÉ ÷ánpZ€YéÃ\ZíF]ˆh…ä€Fˆ÷M’Öz³Ì¿IýÎÝ_¹š•Õ‰ÈxÍ$¿< +™Â;YuÛ=ZpÄ7–Ô7Qr>8ƒä->>Ùp©unµs#¦— +ã&E dkAØÄŇML”_Í,Š[`Lt,ô丠R€‹ëžnO’×>–u”_ôOR3‚3Œü ŠU–Ù%?tA.ŒkDÔ]Èà/%n¤ŸA§`>xTÌ|ä¹áè/äÒ(hPÔØÔ6>[j[£¶êæd7dtŸ–_µÖ>}†´bzH#Ä!3ÄífØÊ@…-ô⸃‰‰9œÝ¹êg § +`Ȩi9ðRÍ“]‡¬:fÐ#F#¼´;«hŽ˜«ëƒ÷W‡´2NX/ÀÃ<{á<€ea³Lï Ãû¼: ï“ ¦úÖå1ju„žÔs*w"þ.Ôáï‹’ú˜ƒÏð›€CŒr©ßð|Ò Œ½ L6‹Xq›€¹‹°šU. ™dB·†áC]hEœ˜©©=jT(Ü3¬Ï °6d°€‘‡OÌÕ¼H€?ÆmbAHûb<¨k雪«Cf)ß Ì„9‰ÎÖ¾ÜEÖÚfÅ/ŒÓö š{/¨eÅa ãÖ†ö„­¹;f«n@8À«ä—o32âfyµ[%`¬òPUC“[ý¼KõrÔ­Ö0‹….5ku””´9-ånhëfØwå’°IĦMŸ”¼ò ¶®Ö5­`;'¥QƒL5JxàëäðÏ“WȆtNzƘ9^uµtµ—惺†±‰èe‚8ŒÔ7Œ<ëº;ûs´òž_Ç,]|»œ¬áAïñ£&1'j”KB™p{š_µÔSuym{umˆöx¡½ê¼w„™‡–ë <Žé‘µ;.6¢a£ºòÍ¿Í;œa¢Üc:ò¬wòŽbÄ`Î:>!ç¹Ò[pvé]ééí FîBgùÉí>⽘FÈÜød¿5‰!3óV†Ðç·' ‹²Ö†¨i1£þ xj@· +Àç„ÕÑò‹ =%GÝcÌl^ij¶Wœ^{ÇL N56ïÀ9$ô2^L+¡TœR㫌ýæg÷ðà’ýj~åR7þŠwBˆõ©j¤!$g@­†ôÜ +¿–Q8?Rvvs’˜14´y´µõnµ€6Û™wx{‚˜¶2†}ÔÇ}°'2Õü$h¨®öéyXš‹ö¨9%›ã̬¥ìåaJ’¾}q÷xÏF71cÇ*Cj™…:õ먹ë#¥çõ­·¿˜{“õKPÉ(rMѲV?`.‡§ø¨VHõÍв}‡#˜ËóY‡V:KÎX{1w_3ní±·bíš›ÞãóÃf.1Í£dänOW\ ¨‰i³Üò¦àp\Ç,ÿ´(–…­l<²N4°Ë7ưwÖ‡°·CÙ©£¢U͹?¯uñÍ«ñ r€’ƒBíÒµ¢¬.MTÓšjiÜQÿ&nKÝJfÙÆéQHÇ(òLRRzfY¸7 +¬ƒ1ƒ¯ûµ"’ rùÆ8+<üéμ¬66ÏgÁ¹b·§ÅXŸZBŸytlÔâ0æ²ñyñ!ç£4á¨~âQK©µŒù‡Þi!÷Ló1Aµs–<$xüUxºFèRò+6'éi«2K‰w†SìWñ+¼J1^û¶òòúÝÏ—:0ÉÈz@ä%zþÖ !i}¸òÚÜÛ¢“îJzL/btB²»Ÿž˜©•:Ç8¨¹®ÊsA%d+V³Ê¼´4e[áo²â“ÿ5Q})aS<ÝÖ2 +|:vyD/á$ÌryØTqw{¢øÌödÅ•õî‚_jRFÔÁ¨ÜœÁÝ ¨%Ü(ôsP#À'`"zÝ©&g¬ôao¦d¢(hæÖ9j±À?£àú¦,Ï(íã•{§ÊÔ9VÎѯ¶‡¥Â°©¥Û©”ÐçºH·Ü0&Q³ ¸GÖˆ¬qø Ç–z¨w|Ó"RÐ(zTšG#ãø4BB¹¡®žª|؆9ÿM`\HÛ±Ö¶t\\ÄÌ'‘= ì»à3¢1wö#áÞþ½¯ÕOr$ìÍ=ÓÓ>¯¾é•[+ƒ\]ݰã×õl”gš™˜Tµ"rÄÂ@Å­V2Pê,lmx€Ïߘ!&-o;Gy CuM@Ç(y¤[Ý˨Y.óC†[W± +7TÌ‚Õ jÚâ ñÞ¶Šsô“îøµrAØÖÐq4ƒ¶+j|&!Ý«çT¸¦è™s]ØË›Ã‚RD3ÃÖš&¿¡®9l“ÈÃ6E}Ä*•ÆmB6èeaˆŸ·8ÈÎŒY¥2xI»"ކŽè¬¢!ŒìïYÅ‚ˆ²¾¡¥ks†ŠZÄ= ™Úƒ–Ÿñi|·é "|fj|é7Êå[£Œôõ>âÐÀô(d¯FÎóèë›ýƆ6¨×w~È@A340Kw€ƒ6VeЀ{ìœÌ=RÓ‹b–šæ26چưÉ5|ÚŽƒKJØØØ ûh­/ÿ×íqrÌ =hàãƒp~G}{Xmò\À*¹õ<Üìþè2?¿€,îÖH˜a›jUÄ‚ŒDK˜yD?äµ­iЗà7= Ï)žú,ªßˆì¿ªϪ}¶"Ü <sÐKØAcà §V.Y›fd%µmqä5[ó,¯ð{ï(ya=³Ö¿qjdÜM¥B4¶ôFì×çe1»€±˜—àRãG¬"QdNR½¦!¥&æêÞì,7FçjÚÂÂ…ô¸©º<öUÜ®¨Ù ÈzsbN$ˆØ™XŸ˜\BˆÚùôè¬X™•×ù4lP'åúuRÔÙƒÔ³Ðëã¸ûÎ)Z†Ù÷¤‘Ö‡YžIè5Ô$øÍŽ™V3Ò׆2/¼OûaõCÑÑÂ3ìB¢c É)½€€¬oìXX¸˜‰U± õPãAöÁLÒ3Cj9gc”[´1ÁÈAöŸ­ö_ï/¹˜b–íZåÕ%-+0CËô)ù•ü*ßXÎ1g_ÊÏÛ¥§Cã£&NUXG/ÎÐò‚jNe`²±:0UÍö¨)Ùs]iû]£hè J~ÜÌ!ÆÔ°K¼j j«=æ7F­ôÒ û  Å= ë˜%1“„³Éë¢P³Ie>¥ b{ˆ“ïUyÇù¨°’µÒJ|Z6ʯ— í‚ñ!{¦Ä8ÿL˜ƒìSâ“<×ÃÀ“a€\ h¸hŸ’žÖ‰(‹…ÁKr–ü-d¤æû ô¢0rmÚÒÜåÖ×5xõ/¼ºç£acã+ÈT䄇‹êYå¾FAêÍoª–‡Íu­Qðú°ízz¾3+‘íX9ø¨‘’2Rwì´²]½,dÀgl«‰é^µ„µÈ@K‘õ>äÚ¡€Ö1Ê‚Z~ÄÈ#@^(Üœª¸0Kd[m›Ç$¤ºLž| è }&|JÄÄ( ›9˜ˆôÞ\÷,j—Õ œŠ žY6Ðò}*rÆúxåµIâàMÞšå³ÂðžˆíéXÐòRœØ lÕuÔ<‹;ÞÇ¡V‘µ¼ˆ]*Z9Ø9i5Œæ vw¾î ²ž±3'âïÎó¹P·ì¹>Âm¨•ìIQç2ñ( ò†I¹_ñ$êËb³|NÀ†Ï_œ*8•˜«Ÿ¯k–kÞ¯ÚkìÖ‡¬%âFmq 9»¼Ùs0ÑKÜjÈ“1ogNyD,Þb{µÌBd:|·€F€yõÄ´õqÌõ€–U‰릒Q0Û…»àw¡cFi@ƒ¾éÏ?¾Ô“|È9T~+0M-ŒøÄ…ž +ð[j^Ô¨ÂKæR²ò7'I\“U·¼jjFÔ šo—*œzJÞlúlPY+ ´BÒæ0ú²ýMÚÞ•îüS!½,fP#苾iìý8²GÏ,bmõgvöçM“ b%¨¥ç;‡Ë‘=^'ÜÓø‡Î)nÕZ5ï‚ù®H +©¹„8’qõœ*ß ³¹&é×òð0OOܰ3«|×Á¬üä`TìÚ¹¤]±ÒJ½Z\²WEÍ +i…÷¸íUz&èY!#æ~ÜB6ÐÂȾ‡Y±dCIÏr‹qamKGP/8GH]Cäô¨NÈHX„œ€–^èš@_ÛEÂ1‡õ2a@#"…\|PG+™è¥!³|wVÈÝ•Öx ³øt +h%ø“B¬iïÀ+a•*bfä_#»x¬21+àÆê?„íµ/õÙ„M,þ}^Àû4Ç¥~šã}êŠÛ[“ùǶ&Ë.Àøç8gˆn%ŸÑ7¿‰[_ÇŒ2‰g†[¶=#¨ÚœdnN`îú RÑ–NÎ߀lé77w†€ï¢‹ÒF¿¥" ùŒ‘O&¢GœjÐ}ZF^ÐÀ#ÆÒÚÝ‘,:ËÄù-Ô‚ˆƒ… ÍRK #Ö¶™½MíÎV·$z>-7 &¤»´ði‘ÿ¿Dd¿°]ÞðïÅšW!µ(lfVÄìÈ2”ü¥Áª®iJš_ÏÆ,O}³ ¢³Ýa‡¬6lp‚VVeÀB,ôš¨U‰¹ÚW›L…ñïh8D¢Í‰¢ aÈ¥êB Ãa‹L +}Ô¥ z£1îñc©Î 9 +6q*?Á¼@ޝ ›¤cð9‰Y±|wAñ,b‹Ýü£­‘Ê+Àü¨I&†úËñ©(9A‡ÑV?Ižï˜µ›1˽•]ôd:äS\@Y_%øu!°)°µ `S‰°9ByìŸiyåžRp=Bôö3Ç7JÍ ª¡¦ lŒáo{Ʊ7â&rá.Ô‚_#Äú•rqXWÓ1Ö4D×}Ù舒·SK‡Þ<:Ú'|x*ª’V‰(là.vtÍ;Í, ë`l,²jdÍÆÚ]y!zò¿ \fÔ„Ow+ñ÷ý\C¦duÄ´¨]éÑR‹;„×~Ͼý‹ZÀÚ—4ü>/Q€Ÿs>Ö©e”8F°×j>Ñm‚ÚR²K"ššÚ˜¦¥3a¬mòª(™#˜ËkýÅÇ\ã˜k!ƒ˜±1Î/ÝãD1v5/vìl\Ä:lbW„Œœ +?²ÞkRT{ |ŠKÉ,‚,ß·HEQ„-ÍÈÑ”t·ž†šÙ™g“ã "‰jÅo¬{ŸkèJÌ‹Ä>=½0hâ`ƒF-nc3þïLY5;TrlqH€Þ†qßž‘‚ÔÔxÕuõÕÓw>íÓ.ð™ºm½˜¾4Ã/_šde…­ÍÝ~`#ŸM* Z%µSMKÈRÓ±Õ#úß±Pó]JÒã€AÀNÌ×½ :8¯•œë5’3=ZbJÀNÊÙýaOFKõ]ñÙê'q¨Û¥º®Ø¢Hƒc÷Cö÷"k¢0_ ïSWÝ‹šÐ'fÌ̪LXy´ßçø¼ÿ» ï:„¤f½jæúdåÕž]Ž\C¼Á [$‚ ¥¶-:[÷6:ÛðÞ Ç² +Y~“€¶ÉäPËBð`X+Ç‘s€÷»´¼G'ÀƒþˆvÁS‚…ÜÃæêú„µº1a—UïÚE‚˜•GBöG@ãCú¦ç±ÙÚ—ñy)ø£X„ŸÑv!YãökðbÂVû"nk쌛kšÆšúˆ^ÊGÖA‘ýK!=ÔÒ +}JrJDS-÷kŸ´oÏÈÙnœëša1c±òèn »ÐÞÓO/Ø54¾Œødç8ùñÖ5²°5Ÿ‚hbÂÁ%ÆÀ‹Áß[7UrÞÆ”¸êµPÈ13­Ø7ƒ½ç¯º1Û™ýËêÛ²Ë ­\³ˆx.è°A&Ž[ë_'@¦†—Q£”€ãôièGa|UŸýܧoù³K¥IÀGåË=˜‹êæÜº–¢“a½0!úÍ#ø ®K-$ø |–†Y´¥çVlè9ekŒ¬ÛÈ£Q#1 Y ‡€‰ÔÿÆõñÚ8-òH¦WÉÎY@ßÌò`øâ€š‹jkkak㻨£î%äF x;/ +z³4DL™ûPq1aUÔ‡m<òãÒ?!צç…|ä:tÐ,â@†oŠÙe +àÈ&Ðêþè\óP¹g<2h¦9UÔ<Ì“ß"¯O² +BÚ¦ó~¿©á’ƒ}¹(Ç´I¤!ÈÁ«rVMßÔÜ´¶N,µÍA›T´‹¸n3 íœ7ðHøé £xeŒ[àÕ5¾[Zúµ·Äbcb¾æEb¡úyÄÆ%š“7G€ ýæšfé…*4×Ôï·Ö<[S‰H[Z!>báTíØh¥;Vfs‚ø`2Ñ¿¡¯~· X ã×1 +Ý ;ëø;[£ø»13°‰x0_Ää• å¹:hU4zMb޼ ¬#û^R9²ž– j%,ß í×ò+ý1=dR!›á"z6<µ¹ÿ"4#cú”|Œg†lË'"{þÃ&>9 +‚dièINÄ&â&æ%òYCÄ!‘ø!ô¼Êdƒ”sÕ2‰¹Ðsùaз¸¥º!ú·'e5ÀÖJz^h†Y˜ŽŽ[Eì –]‚\gŠšàøÔbZÌX×5×µÅmЦŸíÑ’‘=šÀ=8¤¾üFxŒˆå×CÞFîO˜bä®õ⮯âï„M¤\¿ÿ¹³<é_#ûµ\jfA?ã2 hÈõm˜côV_[²°«µÏÍ FžŽ-b¢øtÄd–‡Ü1Èqsm3pmcÙãä×Ç`>w„ðsգ┘:+¯"kòÿ Ù3êàCna–G¬ Ps» bÙ¿—ùüßyœ˜™CˆYøŒyyKlQþ4±¨hÍ)žAÔì,T·í.)^ÄæÅò MÈÚš¦g‚×…-u­^“„í1ÔÔFì] MÅɃF?jQÔÄ wLÕõ>K}›ßül8`i Û«Ÿ Ã"ýqp™sCŧÖF$¤mU‡Ñc|©q›«›«žÂçÕÇ@sËâv‰¹%hQÔ¹õ¯5AKÛ 0øS’å&&j[‰}àVâtÌÒO³²êÿ]P´|²‹a,„ÌYVùû øQ[Ü" '¬¬Š°™QDò±]È9-n#ã6óÌ5õ@BoJ¥ÆA[¢VÁ=IÏpÐy¦Xy~`^dÿ~HCËöLlS‡Ô|Œk˜‘ºÙOºå$ßݱŠyÀ°üôä6¼OÅ*ô©Y…P3ØÝYY7òê„DV„ÜçDj¤Œ¨VHëxUÈû\ð¹%#ϯåb¶¦™9ËCÌ”•~úã­1RRHCÉrOÓ²¶gè¹c´d׸Œ4ßMº¿ÔWyeôÇZîV2 +wŒRáŽ^.Ž9XU[êkƒ´"ZÊöÎHˆ;F…üßsŠ'ŸæÐ+l²oz(Õ5ÎDöaf…Ôôœ]+úÿ@Oÿ ¯Ð÷„Ñ2 _ +cf6&¤eÕÔüíqâcÿ·4nzò!b~L¾j€ ¬¢æ4”쨉’6³:NEØ$“DÁ k¢­Ðü&õ's{Ê^uùuÈ¿£H×K8A]µ<y! ÑcV‰¬XýŠš¨y²½ˆ2²ÑïMrd]ðdz™G[uok{7fâTÅÀ³kaà5˜‰‹ƒÙŒèîÎ’P‚Œ³ü&h`ùõô¼°‰Q4ÐK@³Š¶f„ä©¶-š ' ›A»¬hÞ)z†{‚üÐ5Fº»5J¸½5ÎÉY¤=ZÄ_ó)‰=JÒ#/ÔµWEËÜ#ÞÓ½ÎüÁò®àÐúü¾JBö«ùÈýä Š]âQâï¹&*®…tÔ¼íiz–s„™×HhŸ ‹ÆAŸCjÈV±{Œœ´=Œ¿éÃß +kéy»väS/añjf{œž˜aæíÛG´ÌÂÍ¡ò ‹J~ó²r"j) t[Ù÷úÝ.‘U´\Ïxå5ÿ4êÂ'Èì;öšgQ˾Cº¼¿9@L†sÌý÷<‡™°³±#£Ø?CNu‘FLR¡Ù'Ù$L=™ø„‘VàRbnøf(é »é·^D]ceyÕ”ô°‘ ™‡šµkábzNyXË*–ö²‘{Q‘uéøœDœ@®ïéøÈzCnÎõw`dßMD'ã¶x4à£&.!nã0ÿŸìBHMÍrŽãîx´ø‡ ;—’@®—ÁqƬ5ÍQ踽¦%æ ý&$³0˶a~œÈZ d —¨ñ!Iu|N, [¨ˆ‰š6Ò‹ð]`ÿ0„Ï$á­õ¯ÀKžÆ/àz´¬’m`é %¯|i˜žì×Ö7û Õu›¬‚å^Ü¥ˆ…O‰?#¹Ë3MÉØ‚L2)%¿beˆ“NLÇDõ<œ{œü0¨!&‡5”̘†]†ì19jZÃŽšgȺdb¶®#cÑ IA­à™¡g¯V\Xê­¼°ØSuÑ5†¿\_ö›$œˆU*üã>ä~\²ßƒxß5BºciÃü¶üŽpÑ5B}´Ò»è!Þsqr×úHw:QGl­¹ß¯t”üæ#ÝGîYw©$ÔùØËž1ò£†QàƒºöN± 6)÷‘û]C¬´ÕäëîIvÞú åÁRî¬k˜úY›Ý†ú_ýXyÆñ¦ìðìÛÊkݸKþIJJPCÉXª¼¼ÜWyÑ=EMñÎ’ý*j†s„úp½ŸždyUö«s–Qñ+B*jf` +{Ë;޾´=\qÁ;нVQÒƒJFîæ0ùþBöŒo‚W¶Ú]vrµ«ð°oœð ¬bú&‰üӤǾIjúæå^`RˆL Ña•ëç—x'øe4ø>üÕÕžòSëýèóî)ü}š”ê×"kWÌ"ÐslDOËEî‰ÙAîÅ1HØÈõ ÿ 7J8!-¯2næ`¿F<Ê?MMóMÑÒáœÒ¼p A­ëŸ‘±ü…À9ÉÎõ«y•A5·Ü3A~äDÖ”Ô´å>ìåÕ~â 'äÏ4#Ë=NOÌpJ~7ñð»ð +A®Ù诺¸ÙO¸îŸb%¬²êdȨ^@ñO³Ký“´ŒÀ$5ek€xc­´oŒžê`f{ÆeÛ£Âò JPéWòP›CÔûøëÞ)Ò£˜™‹óO3sƒj: +ü„z +˜D,0[#Àtbšk†^OMw+I©Èß9ðü#{ÎC:fñ'—0òñp4äZXPÏ,Úž!¥,`ozÕ,Üïsò–+Ÿ2Ћ£6.1deWyµŒü-›¥ÊÍÙ×Äó ï¨×;X÷5ueûWº1—â ÷qÈ2>ÐO¿w/¨&§m1Òì½ô;³=ÄÞqfÔvkz?jÿ=+'LðýÓœB„<*)Õ¯®‘{” +ÁÂÎc÷¤„´>,Dm 3Ó!'oT]ÙFŸßž*;º…ü|sHP3ÕÔO%£€5ÒAÿî,¼ÁŸqõ“o¯}Äž_ì¨:µÑC½·ÚÅ~¼ÙÏÏZùÀ¼gy†>d}R¶½›|s½ž´ÐÃ|<ÓPðýFù®_É)Ü¥$AŸ?XùXuq­›pÝÙO°ÕG»·9L}d~:¡m,Ù· ZQ³Š>[îª:‹ôÇ\{ՉŷåGü•7ýÓ7]ã¤äÍQI•k\RsUá£$-uá/. ^^ï!^+ÙE1 ¿Ò‰ÜK?BOu2Ò¡ŸïnV^Úè.9ºú¡ôØ2øÀFæìòù±º9ã_Ë%gZÞ;INYAÞÓ]ôÛf_Ù)xÏhµoR€ +©…xЄ<ߤŒ´=.#nŒróm¯+Ž™[K÷Ͼ­8jo/ÿmm{%¦åTÄ!‡CŸß÷LÒÓ"z:bàã½JnIò-²¦7Køa·"á‹€m™>¨·’•ëš$>ZêEÙb¤®õÒ/¾'\Ý`fù¦D8Ð$ç0åsˆš´Ñ‹»²ö±ê¼£½ì×ùŽŠ“Ë|CÌÌÿµBÖ†ÏvMÐSÃÄ;›ýÈ}¤Ä;¥ Ò¿»Ø…¹¤jÈùÉñ¼ü¨³›tcñ]Åñ…wåGÞ¢Ontã®ÛŸ£Î¾!^„>A­õ òMmÄ3†ôá¹·¸sÀžhÿ ¹w>×þïee­ PîoO"{«äÒ¨YÌ3ø¡‡·†±×\À®`®ª «=ØkžIô ·0 V‘kœÜ›€½ªo-øÙô¬à'Ïñ1¢ñ~ðý€ž:"úÕRÆö4µÒC¾em©8h~Rò³Rž»·Ÿžü™íYÁÏðç5ů$§ÿï½"¢'¦¸Ù—úq—u/ò´¿*:´Ù‡½â&ÝGî튘Å,VPåå丠>¶G™™Èß™ë¨:k{‰92ÿ{fá#ãa@%¡‡5Œ¢í1Üß )-b =·ÝØK‹oqÖ{ÈÉ®a¿’[ÚŸïgeCíßvöá¯nöb/,¿¯¸ÔÁ~°øŽÿhöùÂÂkâ…Å7Ä s/°§V:©7f_aO­w‘®oõÒlA®ðM‚¿ ³³¶X©½”ÛKï1§mo *5*ÎøÊò¢üäòûªkÛГà—ºÈ×—>®Ì¾.>°Ú™ó‹¥õá·ËïQ×]c¢Ê•~^žwJTéç,$ßB˜p¥uÒ;„»íÆß}™»où#îêr7õþf?=Å5D{¼Ö…:±Õ‹>笸论l}WyvL–þåJ'æúŽNLGjiá}ñ‘•e'·±7¶†p×Ð×®aúãíjÊZOÕeß„„à›ªnŽJ1 ï÷æÚé7¯ð§­­eûÞVwö‘xǘ9ë½Ä›aµ€üÃC©0$ò7,õ)¨µ*ÈsÉ—àS3‹=JÈm3"bÞ?×QrÔÚV¸Ïö¬ô°ýEù¯öè_ßâÏo˜mõS“|ãìœífÊúGâ•õøË¶—E¿€ßþjn.Ù·ÚE¾ÖIYn¥ b¹ß¸Ì=A¸»Ú‡>3ÿsÞñuDÿ$û‡Aš öotQnÏ·£Ž,¨8ml)ا’d~£’ä|myR~p©“xÍúšr}T\öݘ¸àkumÉÏðç(õÑfᆳŸrŽáêRéêÚ-múiÞ-È’¥~«d½xkñ¸ü­ùÔ1M}îw¦'E?Íw`ÏO×–5·VÝÍa9E+=„«ö×åGlO‹¶¶þì"? «9(û[ô½íAN…¦±qkDP6߉m&_³¶•˜’¤|9Äxð?ŽgEûuOJξ%?Ø»ØU~cÇF*Ü,>½Ñ‡:µÖWµUpHU›üõRGño%=/yޣⷔüòå^úÇKÌñ¥w˜SóoJSU§ï15çý¸Ú…½`y‰»Ò'ɼâ"¤‡ôäoµT4Ô÷TåõÕÅGæ^fÿ`lIݳ֋¹¨o+>±=ÂÈŬíqFÖêÔ±¹öœŸµMÉ{ºWþç9îøŸº¸Éÿ줤í™}‰»¸üž|ÃÜR~Àòµá5þ´©¥üШèÑ?{©·þ1Û†>ïd縆ø…ƒ¼¬…Ò¥åUçôMùß©kóöξƜü@»ýÙ¤0ë€û#;e{€“¹ÐI½æxC»´ðsÒ,©oJÛ ý±ÖËÍšϸ»5XC\í–.w1î9^•26~ol*øQY—ñðôÑ¿¶†é™ëPO›¸k+ÝØ‹kÀ¶ e'ì¯Kè[2Ð4$çx½{ ÿ0js¼SüòõÒ}äïZØ[Q‡–:*O¯"Ù;½rtí=á¶wž²µ¹ÞE¸²ÒYyÆþ¢hÿ*øÉLuÆ¿V{É÷¶&$Øõ1a©S#$"ÙÒ;C|´<9%ËúJ­(Ú««Ïû~F–òµ±¥äÀkbÒ¨Ï3à´^Ò}]áC̔ϺH?ë$>ü¬‡—ùí ùúbõŽéêàöí±sˆ|Ï3‚üí—ʳ“²_ÎÔd|gh.Ü7,z¸49ׯ‘6z™)ÎAfêb椡¥àûIIæ—Sâ쯔5ß½ªº÷ça~Îþùw„[î~ÑÆ=yþúØüKÐÜjèÏ–üŸíoJÂù|ëä”­)8¦7”Ë}¬ ïL]Ýj;[×TðËýþÿôÓ~þsó”[?ÿŸÙ·EwÖú +ÎNŠoýÕÚ–ý“owß3Q܃:ïÅÝ +ÍP³"ji{”•雑ÐÜ3bºí%í²ýö¤ýyÑ/¦–¼ŸÚQ§|cŒLeSÑéüsßü—¥%ïzD+—ØÞUÝ‘=ú×rwÁáµù‡ì­i{ÞòO1s_¯ëì%æE€7WûI·æß¡ŽéŸ¤ïÕ5'3-{ü•ª6ïÇìõ/š +Ïþeõ=þ®õMéáQQòçì”Ï9é›’æýsñàónÂÍ¿ ÉS¾Âßýé?•Ò¬S[PÓæ—¤sº¦ÜÕµ™{”Õ™_ R¿b$ýeBš÷ã[ZÚO¯Ëoÿc¥›õxXTô Çg¦Æì½«oËOLŠ’¿î%]ù“¡:éKûkòmM-éúü+ÖÃía)èÛÕ•ôñ¹¶’ý³­¨Ãººüï5Õ¹{ímÄK£|ôAS]¢—ÞáÏmv³’çÚ‰çí/«ÎÚ_£ÏJnüÃô,ë—ÍQÑJ';Ùúwbõ#+iµ‡z{µiéæÔbgùqûËüƒê†”½ªÚŒo­/˜×,/iW–>Poν©:en)Ûoi-;¤i,úy\^øÓ+üƒ¿t1}¹ôpw¥‡þÀØ\òÓtuîžaAú—SÕ™ßi³¾7?ÍÚ·Ö‡¹Ô'¸·›uoïö¨¨ +z0ÛŸ¥©ÏÚ£oÎÿô`ßÿÁ?>rn})É=ýçaQêþà+¹£üÔâ[ð½÷¨SŽW…GÁk,u<üQU{ëŸKýØ$× «Ì9JOÛ2>«:²ðšpÎò´â·ÙWUç _žš©ÏÛÙò +ÂAsí¨³Ë]´{¦¶Êcêú’ÏÊÏvRï­ rsΚ®Nýjñ=ö¢©}Äô˜º—tÛð´ä¸¶¾xßìóŠ£>Ä3^cÎOH +jÊ-¾g¦èëQûgßP.ë[ðÇ'$ù{ M¥ûl/ð§§ÅXÉÇÿ¤Üû‘|oŸúMýÞ_§E)_ +~´›”Üý‡½-ë{{Kö^[kÉ/ö×U§&ë‹OÊËŽ¹Çe”àŒç''­¿G_XnGŸZh¯8f}Y\^yÛÒNÈ–ç1´¢NTô|`‘Óó/òZ|]ü«¡>ÿ°ù)êl`\ÊòÏTs·†E«ý’²¥”› ïÑ'¬Ï‹èòÔÔ¦îÑ×¥}ã™dÌ~@Ÿ¶´Už4=¡_SÕV1>A°>Ãüf}N:÷Q^üSÁ¥þc˜—zÎ="ÆX^.ŒH®ÿψäêÿŒŠîþuùàoöôoc %Êÿ+öâOÿ¹ÙÏÎf~9À¸û§ AÒgšê´/†9÷>`Þþbþ-êŒ}õsüÍ_ÿ¤UT<Œkå¼ÁªËsoË~54|?ÂKÿGáΟ¦d9ß~åî-¾þëMKò[ê"Þ¬ÉýY]›X[›óc'åö_a¸þû5æ×ÿp´gí/É<ÜÁzôÃj%i¹‹ +Þ‚9½qÂÒVðó¤äñ?ºˆ—þû5úÄNJ’ö>§&ûšš~z)yö5þÂì«ÊãËð;qçÏÐG:‰WþÜYuñOÀÚGío«Î‚ÏÞZïcf-} ÜYë!ßDÖÔBJrJXENµ¾É9<&Lýa­WŠ^éäζ¯[˳½(?¶ôwq¾pqD‘¹–räÏ]ÌäCÎ~fÚŒüîçšÚ‡{ ͹û÷¿ÔÊîþkõ]ʉ¥öìKÔ4Ûû’#ÎaF޲…ò¤ñ)úp#õo(Iã§}éìÅ^vŽ‘ Ö&d¦øËB';K÷ ~\–õÍ„ìÑ×+˜KËïq—,m¥,ÏJ̾Áœ6¿@Ÿ³¼À\òŒ+蛃’Ò¥÷Ä+æ¶‚}öû{ؾ¨/<÷ßÃâÔZi¾k#>Ú»:c€L£kDíÓ6äý8ÄKþ²¹ôÚŸ¹)gþCÝRz¤…š|œtúÏp:ßnõQÓÜ#Ì,/ä–Áò‹–I_«kn~®”ßûÊös©…”þ³´ôþ7SÍäG«}âòå÷økë]¥Ç—ß¶¾Èþ­yþ3û‹ÜcžIv‰ãMåeë“‹è{³ï*’Öºð7^—\z¿¨Z~X~öOOPwðŒ‰°à-9À éß™›r~\îDŸòL“–°7j0W¾ ¤ý“ùúö*p´©©xŸíIÁO–'™{‡9·¾Ø =r‰qCüâíq ncLN^øHºõ¸º!ÿû)ñãë“¿š{•ûËÖ4-s°6õ;c+%e½û)¾Cœe|†:0]—ûã°¤à—Qzÿfơٗ¤üÀd½ÄñŽ•¤iÉú^Û’¶×Ôšû“½µü×Åvê•醲ƒõå×ÿú +}X…W¢i(þY_—ÿ£õiÉA¥4ùï¦úÜï^—_x»P]yóo¼´ó76áRã:¹`µsaöMűù7xà3ÌÑ Qæ7º†²ý¼¬Ý?¾÷?zXu¼§<êd=ú¢­üü Pnÿù#åî_žW\þs?ãÊç+½˜Ë¢Š«_ Nþms’³ð{ÎÜ–ÿƒîIÞ^ÃÓŸUuy?ñ“ÿ9-Nû~éþFæÎ­¸࿬ ]SÉð­½³À\ö—¥‡TõYßv.|6ʹ¶ÇÑ^tê÷Þ÷ë]䬘¡¦Ñ5ÊÈ^o‚ÌsÕ3‚½îÇÞÜ@Õ>)9<ÕŒ¿6¬(>¹ÞÇ+Yè¤Ü˜{]qjõ=îòêGÂU+0Ú¸8}ãyÕõ^Vú´øÑ—‹íU7V>²³çÞnºz þ­gcv5Ì’­ÌUËˬ_ü“¬ò›é5î”ã-é꨸`ï7ëŸÖ–Òƒîaü-÷4)y²%û7nÆÑ¿Ø^0¨ê+O °Sÿ>)MÝ;ÿ²ì(ôóí…NòííAZªk€òH×’wÀòªôÜæ ´r¾ƒûp¾ƒxq®£âìÜ[ p<öº²!ÿ´ã-ööNúÁ7Œ”}Ë=ô‡Š‚Ÿ¹é_ŒR¿â¥ÿ«›™¹¯‡Ÿ{ÂÐŽ»Uñèôß®ýòõÿyQuçÛŠu!xÎþºàkkê^ËÓ´}s¯!cŒ2sXù—ÿ–}ù—ÿì—ß… ”>Sýø[míC裇_ ¯~>ľðÅRgÉÅ­QÊã.NÒ·3µùG#:1-¬6û)Iú†ì½¦–Âý£âÔoXþç+Ì­o ϪnNÔ÷Lóˆ[ýÄä5ÐçåÁFö¦º9÷—ç„›Ÿ¿¢ÜÝ3ßCJ«)ƒ|ƒ>¾ÑÃÌr“³7‡1wæ;QÇ O³~Ò?ÍÝçã•ßn˜Þ`Îo ñ +Ö{˜é‹oQÇW?”Ûì+?»ÙÖôsu­OBs6+>Hò -Ä“C¢œ½ïˆ÷þª¯-úy{€ñ(ª•qƒªñzŸ½Ü#E;ÞQ®[^í7·d§”æÿk€“ü··U7ÿÛþ }n¹‡‘>SúeöëÁB;ûþ[üÅÿî¡Ýþ\S—÷½¶¹¸¿`¯ý%î²{H\åŸã—:«Îmõsò×ûy…Ö6ô]mþw✠ó²¿ääîs´’î¯tWWÛh7´ å§µ5…?Ï(2þ©«Íþf­}vk”£nÃÝÔµU\õL +q‹Ý¤›öŽªs ýŒÌI~¥½‹xuZž÷ZQðã9þÌLMÎwÚú¼Ã+9éÆV쩹WÄ‹kiw×>’n¬~ Ý\ïf£||Šs’Q`.ï\u3n®mÙžf®AæÝ¡&»†É÷Üc”$ï8#ck“£kÅ_¯.þÍ5,aÎ4úH»ö¥â΋ï³÷Èïü]%ËØ³ôšpe|PšqôoKo‰¹a­”PqJûÄB{áQCSÆ¿f_¡N/}å4ã}3ÞXzÑ9ÆÌZëÃ_×?-:6û¦àärWÅÅùwEÇtM™?^W\þÈKþFÓPrÜÞNº¶ørw ²…k”_>ÛM¼=^W|t@œ{ú°Ø5Î-Úá¸&D•ó0—óíeGV?Vž}:dz:¡{‰:­zYzg®—œÛ'J9 ©Éþq©½üÒÚÇÊ[®‘ªdßíWÒ²×0—{¹w>ÿÿ8úê·¶²®íÔf:3uo©;-m©SJ)îî,ww#ÁÝ]8IH‚»$!FB¶3ó>ï{}ÿÈwòüp®p8gŸ½×ºåÈZkÐ} ­Ô1Ž +7T¼×“/MñÒ®hxi×&ÙÑ÷¶‹ÃÕÕyŸùùA­áË­#å¡ó€þÝh+ò×ñ®A¿þ6„ºl¬Ï}ár—•ýåvT"Olòž›¿9ñÜ2‚O°2‹¼r.Æ«b÷†á_Í£¨—’µ aâlw õÙLâ´[Öý425%o{Œ;ßÚSW Ü*Ö&AEìúÞµîM…¸äeA¦t à{Ú)a Ø åÄû¹ÚüǾk.澊sM…O—»Êß­ c&kŠú1 gæ«KvqQ¶l„yþu£üÞ÷Ë)~Üe%3åšNTø`¹ÄT¶WÅ%ü˜e3½&Î3UWw r—º!ŸÔÂt †R¯êùç6š ®-tH¹¨µ>T˜¡!óöFÁKß}* ^>؆H‰N 3OÎÍyÿé )⺌ÿh®9ëÉBKÚC§il’pâo;x0€¯û°Ÿÿ’3¿]^îʶ1Röqc°ì½}aÁ%ëòt­‡˜îÕŠyÖ JÖbkéëÕβÀIN¢ß(1âüŽæ6ñ˜Ó=ؼҨççzÊ"½:J©CŠ3"CÌ#ðeÀKËØ×‰ß®zo®¨-þ6€¾féGÆ8'Û¤k›d‚÷ôäÒ}±Ü=MÈqèÈ.ÓCŒº>S›àU2NíUÑK€ýÿ2á \òÒIÑç¿ç™Ìÿ¬‹öôðöháÛ#Suó‘Q$ÞŸâbíã„D €ÇE¯Oàâ›ñß¯Í +!ï<Ã"”K»')9ZRáöPIàæ`ùGË8#Ç÷îÂŽ’˜³ÑW¸3y¿Üšûlk0ë¥w +™´+'fíO3ÖIZöÆ-qs˜—gl‚¿t÷K/ìãZ+ø)ó·; Ÿ°O˜è‹ý¸”Û}ì¼ +¦©ìå'éê8#æ’±&õñz{ÁGsÅW·Œœ¹6ˆ44=ñ(Yå;dÄ\S’ß0!øü3öj'êËïݨà3kÄ´‰ÔÇ†Š¨¿4‚‚wû* +ü‡‘Pp¨%ä9'‘±ËÝÏ—ºRïûÆúÃD…ìLà“œòÝ)ss˜’ª¯Ì¾=FŒ<#¥Çß`D_ë@¼;%¡‡^1¶AÛQW¥Ì¸[Û}È8Û> ˜ë’ ³Â£¤oƒßí(a±n-ŸìV )Û£ôÜ•.t4ࣃ¶Ú å¨8·³ÑSñq{úÝ2Œ‰rN0K¬cÄmMâõ™&H EBL°Hð1«Ü«ç3*dc é4T·º¦›†\JFùfä©!û®®*óö\sÑ+§Œ”ðd®ZœzWÆŽ¿â’Klc”ìÍÞòO³õéwšóžm ãc¶F¨YŽ !Î:BÉZh†¼Ý@%y–æ’c“}÷V» +^N‰SîOrc.Y¥È÷iSPÀóÝ_\*Þ©dÃ,tôJgÁÛ­Þ¢W›ý…¯wäˆè]¥dyæAxè®™è‘ã6û +?¨øñ7FÈ¡ç¤4@ÔdÜÛW³ûzß¡’Š*:«P»”¸ÑYþÊTŸç¯o.ù´<ˆYêAGüZàòmRLêZ{Å›…fèËíat„C‰I±ËÑ)ÖIT‚]ÏÄt²2ÞqòÞ_´ SHû¦¦Q»®JhV1JÖFÁK}åŸ\Z WfyœU !=ìùP,úË®¾ªÉ,ç`Vº o–:ò¯÷g=œoO¹kjLyökž':˜áWÍþȩƦEÕ­€¼«äTìʘÅÖaJòV?)j±Ú‚I¼5E‡½u Ô,}¼¼åfì§µVì—í.|ÔÎ01Å¥âTØu,Ôày}úiOÆ„8ÆèÎ z‰GÍF8´|‡ŸjÆ„Z†QÛ#ÌŒTÜY­°øéz6ÈÖGŒw Ñr¬#좕nr¬A\òx­m™¢ˆqSUE÷U"ð«¥vtŒsŒ ÿ©0ìcȨÍîÂÀÅÖÌû‹ůvå|ÔV"x¦6ýÎ()îæ$-ãžšWð~¡x&1f„Uñ´}~¡›÷ﬨÖw¿È>Z¸5Xüz}a“bSôÔ2¯—>Û”þp½“–l•Õs–zé)Z~þǯõa¢.‘ã®M2ÒžÎ5•‡Z0!œ¢ˆËÕ…¡~M Y»r €å¥ÁIÉÇånð+ó$,Ö©%CZÂ&c‚w&X¾8ð(Øå€þè)þd¿]hL¼a¬‰¹éÇfxÕbÆb5ЀŸÖûH™àkV…UŠ‹·Ê1qV%6Á5M«pÎÕtZ´õÍn#¥­õAƒ·‘Ñ.¥ØWÙ<ŠÝ(ÿ´Ù‡ˆØSó(¦Ú²óµ…V‹·{±9ûZ.Õ¥fT,ôÀ£Õ¢ô{ÖqJÖ¾A$:0 ;RTüÖPù‡¹¶‚MuÊãÙ¶ì ½)rÉàw¶IRž¡©àñ¡A\³pêrü£V}ÛÒ ùbEfºÕ,¼GÏ%ºŒ" ß =rzñVOq †w~’sq’ëg¬OówLBâ|5Þ|q¿=JÊpÊk˜v¯ã”Ô•6È‹1|äŸj^ÌÅÕžüçÖQ\ŒïY|§”Yj $m÷RÓm³:XbjÍ4¶e¬O cÖÆà¥>D᮲q®ºmÇ—#jݬ xŒ,êE¾x†ÇYÁÆrJ¿]—Ô‚3ö–„-fO6z¬—ÀâÍÒŠXË:Û.ÇÍqX.¥ÂØQølGŽ·Œbݪ®m²Š¼=ÂÉ›oA}¤â ê§cážëXøãDøó®òükÅùçÇ%×WÄ´s=q¡öau¼ØWþÖ"%ë\űË+ ›~éJ?-a©¼ØLü´ÖNXif„ëEø7üÜïÇûàY—¦ùøK7ÓÒÅLž©#+h°K|lÀ®¤¿!á—©êogZpߪںõ!FÐ;^kj(x`&_Þl+ôwÒ³–;¸iÓB\Àr%h±†þm»…›æê•o· rg•Q“hÂm=ýÜÚÊÏßdçoÀ?;FÉé»rÑ¥ir©Ä §œZ0×TôBÅK½¹ÒÆËXíoĬtVæ,7R¿mvV,7óR–éa[ìÄY`¬ÃDؽ>héõY1Ò1$([ï…~Zë-ti0™{z*e®¶ß;WÛãÒñH†¦ÂW³-%€_Hr©ØåóÍЀ…ºÂû[]%;ýßœ#ØL”^`à˜ªéA«Í‚ÔÝázâî°eî¦'é„9w=˜º?Ëa{æjz·§ø„5=oSFÍÜQ²ÊÜS\ÜÁ¿+gA6Ñ¡íe/wÇðq*6Ì:Î)m®Hý³–qqVDŒðŽ´Öz'„Í^ȇ•ðû1TÁÁLuûþLu³×X)p(è¥v9Ï;Íç»uLÜ‘‰Ù™( Ý,ú¼ØVð|µ·äõz?&®¶$öJkyºŸŽ‡}iîeye5Lj±ÖŒûfé"E»%U˜ÕNf©^TôÜ2ˆ‰ÝÅÄî*©`Ͻԭ¬ˆW +¿ßg†^Xé†~ñhj*}9²¤ùøëÕb ñ¶†Ðß×ûña+í„H »ø™†Yüt¦fjDζ<36d>›oÏ{·?Ïý\­WüZ®0K±Ys½!;Z!Û=Û$Ý_¬êØ_ ãÖ%ÐHM]öCS[ÎC›{8Çå̉êw&9Í>bâ߆ú®Ÿú†î†š&û$z¶%úáBwú“52vŽ[íC‡.õ°RU¤ݤ²Ë­˜ü³‚ü¤ßÑÑßN”>–þ*ôð>èÞÕ³ ó§O‚üÎþúpçò1|Âû?d¬|¿­~tÌßólÚÏE6Í¢&çh:Ðoe„7“Õèg<ؽ!úN;ºì’œù'Ø')öû1v|̱êÌ´ßØ©1§É±_OàÓ¾žˆxûóüÑñÆò¬Ûõ°¤›J4`£–dg”¬tá#V:q!›ìŒÙNN¢LH è&Âï·¢+®V‹ÿ '§œD„‡/úøþ+&ü$/5ì4>úÓɬ·oŽ…?y +¾úø¨ ÈÿX;4óêr;#É*@m²*úÆfê&„L¹<ÛZ•=UÅ ¡¡îv£ÀûÑe×Fÿ~ôn/¢èzCqæ…â°Çýo]Ý»xöèîqZJø_CÔÂûÚ:xÀ$ϳk¢À-J2ØØ^¨¬Î{¶)!•zt"Þò=cœ¹)cBïMñá/t|ÄG5öº©,þ=õûIdTð©˜OŽ#Â>ÿAˆ : ÿôÛ\-2έ¢¢St”ËÀ¥oLââ7¥ÈðM ,ÐM‘æqx¦™¬«&œäSÞ1+žwc3ïò".—„¾=UüýËñÏü@O®\}{tû8%áû•vLÒ# ''x¥žãÖÐÊ]Sl”Èçm 5}KBˆwiXH¯CphÈ9s¥j~áíé*Ô;½û©2/éLÁÇ·ÇJ‚>#ÄDBD|:…Kùƒœq÷ÉÐ·Ž¥¾<ˆ =W•wz³Ÿ˜èÔðŽ)!uSÂÎ_íC„Ìu|\EZáó=¤0Cúäò –u¦‹yÄÊ~nòiJjìŸQONÜøëwÐu`»ræ4èÁåó ¼/¿ñоý˜ã7ü³Ê¸¦Ð™‹}Yºæøó4²Û$¬´¨,%&ØØx·–ZlW± [zþê ,¯†† Kï2ҢΊrãÿBE9ŸôúŒ 0úÆ-ñšœ“qw¥•úk…Só6ÁÀâ8«°OZÉ%—„°¼ÓÔœ“…Q °×þ Ç7.‚î\8zzí*èþµ‹ ?Oÿº}î,(ôùPnpà±æò´ Zaö})ßi –˜†ÐÁÆAf¢¢•9TI|QÊ=Ã+N?MÏI=YõíØwÿû@¬Þ%øƒr?¾?¾ z~å(úåCл§·AgNŸ…?bù˳câü¨¿Œˆ7Ú:Èã VñÍ©JäÓù6f”¢–ÔN"Þa–ü KN9–J~÷ôùÁÐý gAï¯_}¿ôÖï +èÒ™ßA'@ ÐÅßOã>zçw¬ã )|g¡ýae€¿2*FjÚ8qc"Êëf4üV q£Q~žš™r2ÿëçcñ¯ß€2ß‚òÞ‚â_¾ܼzÌÇÕóçA¿8ºñ¬o.@œ¼èß4µ°×2D„U‹HX(~cl8@E-ÚVñ0Ó}ôÄQ1οYzŽ˜žpr ‚‡}E<¿ zuë +èåk ‹§ÿ]øý$èáå3 ÛÀù„>ó;U[~eº±è™y¶:ZúÎ<މZj‡¾YèÀ|Âu‘ —«Ë Î ããN–…}e|Š}ùpã2èÉ¥‹ ç—/‚^¼ºôç_ Ó'ÿç^ùóþææ ¥ ÿ³WË£Ì+wõ<¢×À£þ£Â&#¦-÷ãÂÕõØ7ðUdtÄoèˆèã™ï@W¯‚ž]¾ +¾{þø10ïAwÏ_=¿vt寿@'ŸÝŽ—ü&DËŒº¤­Å~X€·Ç[ÅuµÐ¦à£VGéiÊzèÓ~V‰Ÿš~—ÌIè±Hÿç ׯ€Þßö}½t Øß¹S§@wcÜ»| tæÔï ÿ+WAÐȯ¿I˜…t5y×úÊ¿xTÔ¿ëœÊýExEÊÈ[ee›ºñ¡Šjè“vÅ“ìEMIÎETL䉄·¯Ž=Žqˆ‰oþ?½r tXËK@|'¾òAÂCOb“¿Ÿí,ÿn•A"&xåý•èGÍÈe¼ðOr>ø:=ï$8&éDЋWÇ®¿º Ìí½ËWAOnÝE¾üt›šu¡½¯âƒÚáïJCËA®ŒqKfGD¥ª®šœ¡nPÀ¸Ì¸ãð„èc±ÑÇÒ¿^ݽzlßýŸ><¾¬ÛïÀœ\żyy,2àù BÒ·Kí¨¿1Vá³Å~R¼¡÷EU}¥©¡~Ð40ƒ;åwpðëUhÜUd^Þ__€‚Ÿ¿}|ôtÿòÐà<Ÿ˜ùìÚߥK ³¿ýò;sôåÞPÅ÷„¿ËsŸjQ¡+½”¸•>f’©W+©¢~ì¢Áý*!وʋΈg1™§Â_¿=ºqôˆ³×7®‚¾àèÅ­[Àÿ:÷Ûo GWü@—Ï^=½îŠüx<æõ›“• ×Ú0á6%wc¹6€ oC2µ¿ 0Q÷»è˜»Ârðù‚ð°cÉŸ>€Aѯ^ƒ^øÝ=y +tóÏ?ù¸zûà9èÒÙs^œ…?r,ëÛûó#¬ì§’V¶gâ1½¼uôîÞ0¿—ÿø È‹  G@.žÿãÏÿîÿ °†·‚žßº* 9^N<Ñ ‹ÿs£ós‘_å6ÒQ6=Ÿ¼.«$nkjª—¥ä0ù_’{}"6àű˜—¯¹ ܹ úëÔo [gÎǽ zzûè°–Io?#g¥_Ã2žÌvT|Õ5dùéY)#Õ¤€Q1ýÝhµ ¬›ÈzÞ†&Ýê °žˆa´{ÈȹâˆÜ¿É%ɹåûu±²êžŠ™îvòÆXcKV‰wžÏ1]-¶NÕˆ–•he?'y¬r¥"!çpXæ©þ '×/±|tçÒMPbà×S¤Ô‚[­ì;]½ }¾“½5Î.´È„hó„9;À)ÂS.sÁqŽsÐ/Æô÷ml¦‘ö€RŒº–ô5þäûÇ/@÷ìô»àÛƒPÈ«÷ÇÃßO K=NÌ?Í./½?Ć¿šo#~s¨+)– 6Ø©`#¼ZAÕ¾QT³« ÌšjŽv¨¦t ®!^€ÇÞ)ÊÌüóÛ»w'ÂüAáo¿ƒüïùƒ.þuóöÛ)xvù +ó¼›Eÿ0Æ£]ì­¡Yåõµc°o³Lr¡ÖInÅÚ¨°|f°£nçÇT‘ë¨È»˜â²+yQI§R¾Fÿúú3ãwؽ ºðÇ9ÐÓ; ÔÐø¨”’í$nÜÒPêdTXå”l·Ïö.Ôí/Š[÷æEj\ÛOˆTõ2b»X¤‡M8ü}.¸ø +1+û"*#ã<$%õÂ÷÷A¿|úùî#(6(äxÂ×ÈSá>§¥ýAƒ–úMÖ‘BW¸°i5}GVI°ÈÙ¥£Œl}3â•©›·¾²§‡$©kLÖ…vÒhþÕð…fâÞd¥(mu¨ïP6Tí*êvUÕ|÷ë1pp{ÓæîT%ky€ž:ÛAŒ\bnމ` ¢"U{uª²³1_ÑÖ”9^×#«­šr>P°ÔMµÒƺä'°W,Š˜ì¯‡¬*ª(V%iU°J¶Æié˰·V >ýï…:‰GÏ!- Â—¥¸Dí;µ¿ž4ÔX9ÜÒ’-imή#¢ýÚXuA}¢ö˜.ÿ¦™ºÐ_[º2ÄÏÛ‘ãRíZZ™ËT)rjíÓõí¶éÆ^ÏLMûà÷¦©%æIRÊÊ8.JÞ\ñRÞF h`Ä ²ÒÎ0ËËou‰â[xÜÏÕÂ/-\î‹®øõD+dIÒ,°Nõ¨2V +ÜSUü]U=»Ì¯ž˜·7M.ÝVà’wTŒÒÝ©ú&ÛD ߥÌ*j}’‡2˪˜®)Ó>NJ·c6úðáËýä˜Íñ&î°­ŒV!6Çj°ë#‚’Õ>j‚]Ê«ØÓ6™¯‡Xe푱Ev`¨ïqi˜H—–±)`‹”Sº5Â)tOUÒÝZÛ®æa]Úêj«¢V`SÕ +·åì²U >jM‚‹2O’ӶljV§|¦—“ºÐ)*°+z&Ý‹5Ži +ˆÕ »Š vȑћƒþN%*éǼPì˜âá­J>y×XÝbŸ©ëYÕÖ·®Oµt¯©Û»×”µÌ¹ArÔü° `EZÚR²À{&:úÀ(`™ø¬ÿÖÈÜäTúê Ú5ä|‡Žs͉jÌ÷ÕC'øêèÈÅG&:Ò¥¡›¥Ìy5ü§$öÙ€ž·¢ê6MVV,(©9ó2:xEÆ…y ¾ºÕõCÞYq£M‹+Ø›­lÝ_h5xç«;¬jZ ¹XÞ@wéµbBS|Üæ%c©úΦd@w§k[—ûÐßM-O–`!†LÔŠ‚ŽÜÖðé[Z³—Ÿñx~8iÔ;#nòªqYy¨]ZþmcêQ²½£bCgùl·…Û)û¸ÙŸÿj©=õ¶¡.í±‚~c¥3'È3-ª5 óèÒºÒm%ï]lRíDâ]µ2 çÇ_PTÆÜ²ÉaY?VEÝöÙš®ÉÆ‚`‹œõÕš<˜÷ <*€3%kh¨¡%çå\Oá+ç—ã\¬ØÆá˜æ<3žËÀBzŒ”âÝ)|¦SKÚ†|\,}ósUؼ§kês);ú]ªÖ§¶©kwŠQ攓RÍBì\SÙ«9>cº³ôƒ¾©Ì{„gÀʦ(…. 1Ç!Ç&z´ôr·†’»ÄÝþL‹rߨ$ñåÀÁŸm™"lËñ ÛR\üŽ‚”£jÊöŸäǼþ1WÕ¾glèu©Å ›”h)}g‘T|ö½×nW³ás#´âanÞ»­!t¦×PÛîÖ6vº4 ÍvµÐžõd½°5ÿ²5NÎW£â´µè,›¬’ +äãÀÄ£úzZíOãr¬cÅÁsíÑ7]Øk¨nÚ™Põ𠛚…tk+¹mu힦’±«¢—m #c·¤Ð°ýÀ£ñ}³#gAlrZ‘CI/së€94°°v5ЃˆÏ–aZÖž®¡Ó=MElJÊ?¯ ƒ|L9Ðá ] +hÜýcNX ì£Ü© ç›dû‹õãVcM»ÝP×nÓU×n+©%V)Ó®f•»§¹„ýY&ú7Eݾ·{Ót„׈ÿ˜Gçv%>Ù£¥€÷ç¸L‡Š^áöõ[Ôÿï—÷ï“´«&e/uÁ>˜¡;R&tÏPÕ±;[Õ¶¥¡ºµ{+µc?WÄ]ÿ³ÊÿX`óÜFJŲ$/ÀmÂ{Mâ†ýqýž©R|¸TÝÄgXÏC=æR36† +6úsŸîéiðµ +x© b#¦ïh÷—»¿&î>X5YuÔbYcÊóÅat…{®¦kc’Z`Ÿ„EM“ÊŽL¾šÍ ”KŽLXïÍÚ(úº§£”Zeôbccî]Uò奎œÇ»LŠCL?4R±û³U­3C¨ôQA´ŸU‰E­ÔŒ:äÄ ››´.E'Í ÂclRÅþ<¯æp­VjžWw3“ýÌè¢_ó<ž]AH÷¨É9N%&~KRü~¶5ùá¶´8âp™ÍÛøÍ¦aUxfªZܳuÝ;ZΪ ¤Ù&*¾8& ·GŠ-RXÔ?ëÂV‡’ _èdæntÐó´µÍG&.Í×Ð1Ž +ÝîG~^î) P 3¯˜êK_˜Gi©–a\ÄŽ½1Pñ~k ôkõà_&rñ¿+\áÑœ°zOÏDüÖîï >€UÄL§š˜µ;EoHP1k}eá¿æÅÍ^cM£CÁG9'(YÛ½o]LÌÑç Pêf|X;.õÆf,ú§AÀu«9H›ŒU Ä*Ø*Åe;TTè®–OÝRÔÐE°”›M V)µ£ä£íj|ª]…Œr¨P±iE¨Yþ²£À§¯I©™s=¸ïVŸ¾?[7à«Ó¾#gÃl¤4«¼Ú÷l{4ï•c +Ÿ¡o-~³Ð óNÕ¶ø4 [# Ú•Œ"»ššož@…;”Ø$_Úuà;y}ás ·3ö§yüƒùÊúŸKÎ _pd")•î²×N9õc®nÀ®a£·&ØÅX`Óˆ¹VÄgýÑ éãQ›“àëOàëÙmWÒvuøl¯ŽRvd¬n>ÐãÖ “׊ߋü-£¸¸C# çës` îOSJ}÷ù,RbÆÁ —úk/4Ë Ñ%:m¥A è)™sŠR¾5VðÖ2Yö}ÏD,>X —9B³œ^#gìÏV6:t,p.$ßszyÀ@êÕ£Ó=zBî -醔•ûÊá{.@ŠOµÊá V56}GM±Oa½FJÙþ\ew½5Ÿ²«ãÓŽf8Ô£ +ä@Í\îL»3H|}Z#Œzx §”ïNñˆ›ÃÄD‡Â×놊óΠÒÌãÐo+ýð¯s½˜Ðõ1dØæ8,|GAÌóΰ n¹Èm¨¬Þ56J¼‹U]ÞeaÃáð9'¬qè8ø¥~L¨KMÎ÷õDÝÃÇîë,NÀôØDýÇJõØÏ5~Ý®žZêÒRK÷ZŒ®™ú¾-%¶£¤þ»B£üï +…ð¿+tÚÿ­ +šÿo•WgQ0`5èð=ðˆ;¿4ÂꟀ~vOT|µ æ=]kÎð›¯ÍºµÞVüÊ<Љf?æg}¼¸;BÍ;TUR~ê¸ø#=ÀSdŠ]^dÉxü‰õá­SGCüZæVyL4¸UŽM²Èq‰N-.eO‹Ïv+±9[ÃèÈíaAÙV/#Ç1JNtK)iölÄv6Ä1ü,ÁƘûK^¯vfݵH _rjÎz?!×5Î(Ý'¥­Ž #Vûñ¶1Náî$»lWÃDXåÔ\_î~ºfßÀ¼")ÝÒSJŽtèÄ=uYðŽúuK‚ø¶5ÞQÐÀ¦vlˆ])¤y¦«kÝ:&ÌàµË׿KŽMžïG×"Ão®ô¡ +gª[÷LUu.=)ß¡F$üe—ÃÃ]·¸uZg• !a—Uâ¢ðýÙúþ]cU ÐN_O)"Ì2p陀ϣ¤m ¢C­ãÔüCcmçàõ¼z1ß­á 2\ÚF?4È¥ Y$ÄÄBâÅµŽŠðÿY®úwK< è4ŒÐâ×e® À‚ç:‹÷fØÝEqó¦’ 1KHiÿ³,nÿwEÜþŸ5aËÿ¬ó[ö ˜Üµ‘ò÷ó½[£„ØÍQlØÞùÃ(®òN è{ZÚ¥ÖO +ÿ>]›vs”qqc€˜` fŒ›õH-N~äÔJÌsØ/óDG \¶SÇFoN2Š]ÓÕ-ûsµ=;“ÄÜ…öüÇËíöT€O›¥¢~é);Ðo3ÕI×eŒ¸Ëk½åñ‡3T´K‹0BC,Lré §VHñ̲{3d¢¯?ÉÜõù·gäó,P»F&Î>Ep‡õ˜ØÄK\ÎÏycOG*ë$†^3uÁ².5Ê.ø°›ß‚?;§á‰.=2åp_üÏre»{šC|Ë3Û(séªÄ»Sl˜G˨Ø×ÑÊl#Ð`›Š‡×7—¿_lFEüœ ¼ +f©GJJß•àâ7Ú‹Ÿ;€XtŽ“ÓWûáßÚç¸I—œßÚ'i…›ð/«…þKþs]÷½ûÏŒ€¿.Ãôóãï¬ @ÿ^©î?œãq¼-q9²:Xü~œùý‚ïy ]ú·à‹Ÿµg&Å-4”=›­É½cªÊ¾m¥_Ÿ%_²”¾·“35­°°üpÿ¿zñOíRz©MÁÁîjXp† +¶MÀ"–{2ŸYÆË‚÷¦™$§’°‹¹«¥”8UØ$Ï2v_‡ˆÝUC#Ö >®v—|t«Ø„]}CÏŽšèlÒá!{OE.vªp. !mG†ÙÅ„M7Ë¥¢–9&)Yöq\À×±» +:Ä÷LèÞ´H°gªmÛ›UYåÄd‹”´Þû¨eÅ_p¢SLWVyLriiåv9rxšƒÞ×2‘;rtªY†É°©¨àC“¨æ}5sEÍ?ç¹,¯‰R¶«…FXeå_¶FËß[Æ¡_­ãˆ»çš$eÙÆp±%Çœ›CEÊ7KPq[ýÐp·žC^ ÙŸÎ-tc³~.Õ̉švµt¸]…M¶ÈHiýÖÄmkŸ´)!¦oS ÍÀØMoMU9OͰO«Í…¯-CˆXû$)g¹dW +, ꎖYÌ=ìÒ¢“¬Ê¢¯yþç£9\ÑßËL²MCÉ›í*ýàëáž­¬ñÚþhIÜúsUÔê!Avµ°˜µþâ×3myÏÜÓlΞA(:œáÐf‡;Zb².Qñ€.Þ}_ì(yež$¦/ 3 -œL»¼µÙ­©­ôêùä}5µÀ©¦ïŒâœã4_­´ué!¦îËEëm%/̽%Kí/”ÂØËj~ôÙ™ªìףĴé–ò·K-ÐÀm l–² ;˜È·¿§Å•ÛR|¶¬*õÉZ"åàC'«6¥Í3ŠŒR‹ÒýçšJÞkËØ9ﯙ;±ÉærŒžŸkŠ“vQÍJ½de–}Û1މ4P3û¸y/ÂÞÜ8ÎIùtsWÎÅ[ä4è†k‡|]ìN{0Óïg›(]‚|׈Sí*pźǣC&:&ÀÍ™þ+17uâoçVÛrŸyd´bë$ºØ‹úâ{Žù‡Žƒ=Ô +99g{º5ˆüÄJìFä¬*ן˜ø× !ìÆàÁ7†°‘«íà›¹/íÃ%[ý9/W{Sýô„ +†´£â÷€¸w*Èàí1DìÞ¾ô`‰ŠõÜåÔÑ‘†ŽÒÀ•AT¼×ÈÁþÂ,§ä.  CwưÑÖø×¾²¯jaÊcSmÖ—Œžï4‹ÇPY³7#±^¸1ˆúºÔ~8_•rÕ5 ³ ”Gl :œá~¶ªÒ©¤ÃWºJ¿Y†*–» ýç»òŸ9”¾¾RÕÝG³âæ}_]ªùÊÚÃ9&Á×ÿwgº#E†9d°ï{L‚àÑáòöQD°c‚QpðßÞõôŠ].mk¼Ú +›íF~í ¦½Ú¡ãݦÚv»–]Æ¿x…]-v8#ª;˜­íÞÃÆ­R]Z‘È9]S¿.eèê!_fëË>ÙGð±ëÝ%ow$Ð(ObWú+>Z'°)û34‚w[°g@¥ºµ¾šc¾Ç„ò_Kd¤k +›è¯o†6ð‹íqtšSÏB94ÌŠ=#—q´TYoSc]T’màTs÷L<þÊ0*­e`[t‡ËU={s ‚MNÚÇDm "Ã×ûa¥`¶ úÉÔFNri;&\Suµ. åVQó½z6Ö£!e:d¨è•®¼:aÜÕÕ®²·KÍ¥o,=°àí.èû­ š +üÍý¥í*|ZOMÆ xú‹ßÑ ÷fjÚj>Þ®dC]?mŽ ÂÖú!Ÿ6‡Ê?ìëø›^È0(sšù±À‹3’—ZË^Í5äÝŸ­Ëffç-vÒbÔœ‚[–~Àã÷ãcÌ}È/ë]å¯Ly÷”•é×$̤s­°¯¿­t‹¬1~±öXûçf ,Ì¥ »ägȨ¹Ëe uþû**Ö×Ól¥?çé” ú¬šn©1÷™} wðý¡†Þ– # à‡[ýȯv !qg„˜°5DŠ[ïEmt#?Z|÷ëZ1ŸfjP¤ô|ÿ™êÒ[c<˜\˜wGJŽøCϹèƒ|²–}Þ) þ1MC÷sSžã“žŸ•ñrÃŽŒ<žMZòåÐXî5GÌu'=›i‰ð[êÌ}´#%dnŽâWz€ñëxL—¾ºÅ ÌÕjg‘ÿ(=úluÑÛãZaÒ]Ç$)¿õ°ñ£ãŠ×‡‰É1ø¾ŸyÅÀO¹(¥~;ÓñÿÍPvˆcÄ–„Q°Ñ‹Þ"8äLŒs’ê–#c~™¨°C#íæ3|ÎÏ9u4ȾT|` —z5ÄL/à³ìCeWêÒomµgÞÛW¢ìRd¥¶=„ްOàâ¬ãØ„­A\äFâótUöÓ¥¶²oVæÃs§žC8˜á1ö´,øá´€éа»StèጰÊ=-mÊxå6]]ƒ]SÉ´MÒs]2Bòjøõr{®¿S +Û•!÷‡ +ßêÄQ7f›“îý˜¥á.ŠÛ×3ÍDïO3‘€N‚¸”˜Dë$"f¹òaošÃ>˜ovωk÷*÷æ+[Ý&€K ´eè†Ä92jGIÈtM 8vÀï„‚ý9QƒKÍ£Ø'ðq–ÔwS]Þß».ÜøëÄ´ç¿ëÁQ–a|‚©:Ío©%ûÙö@Ù'™0þÚ¤ áÂLmÖí#s0SY»##¦X~õq঱3IöåÄÏyoi7]Wútgœ”w8Ç¥oJ±ë=ð«¥óµ97ºJÞ¬ bB¹™·iI/Nxäôæ &r¡9÷îtuÖ-S]þÃiqæ-CU¦ßr[á Àÿ–¯â¢»@ +¸€áÛ&‰y–1hØRGÎÃAô·Ó“äÈÛn¾Ô=-äìHiÙ^r¤ç’šÈ¥ÂÈÇ…¦¤[ƒÄ/§:Ê;*Þ™jKžØ†Y…^u}½}‚ ^n‡¿Æ%ÿÅL~f¾ÿMJJ¸aî#DË›°áðè³Ë-ð|Ö.à‘gj  ÕÙ¯­Cù_g›rS²ï͵¢S Tè\SÒ՞̗N%,vKRl. õªð=À«kòžÊxé½z.ï×Ruï‘…Ý@~ÙèC|1¢£h™8·’¥$ßQsr>8G˜…VÄçIjÚ 6ù‚œ–sSËϼ½Ð°Ù…HZ¥æd|¾sœ”ôáæV³oU­÷e=5‰¢/ÌV%\6‚̱¨ži.§‡•ú®tõÿ¶„^±lg¸äíbUúõ)JÌ%⯵ÆÌûGJRîL;,.'èÞ aqð@¯ðÝz:l­»ø•^w©¹ôÕŸrNÈ ï4å65/Ór¶¥¸Ì¿çD5?|öß3Ô +Çä›m¬ä¿×‰=äH%s{’Uh•RÓ=jFéZGé[ƒ0ùæ+îÂêó©ø»““Œ°Û’²”ÿlñ[†Ù1O:ó¿Î0 G@^Ípy‡&`?åßUœ°só-™Ï÷ tÄ®žƒ³*èàqb‚sŠ óØ$_Íõg …‡€–ØŸB§¹¨,§Ž9\©ð,ðëvtäBÀ7—ïúÚ"äìêqy‡ó,¢CÇ‚[•tð®NT¹6ÌB„<_?<¯šƒ°1ó,#„Ø¥ö’çZaþý*Ø<„Žš®L¾9[|ÛW A΋¾µh Ç8<üÀÈãlËÙÐÕAr¬ïÙo¯–:š¡Â~-RÑ¿–häÃ9Lþæhñó(:Ê£ea–%ˆ4S³¯Ï9å +0^5ëâ€\¸;I‹9;IŒùcsœ”:ÂÉ|¤âçAÎØ&ĪKnváÂÝ +fÙö02d­þI!?¨+‰ø“ŸóùÏdì5K?9y„~IL}{Z#Î9œ¢•šRý!oNPâî‚ÆÑoÿ´öå¾vŽr~žÀ,G¦N7¦û8´ Â*—ÐèZJᯞ³œµÑ_òÚ«e¢ÿ^5˜8ä]-)×=ÅÁï©Éù»“ØôÍnHðJ{AÀLMþý•dð#ÿ°àëÍ•.Ø7ë(-Ï:*@ºÆñ®LÂf*IS™çßPüùw• ÷›GÎçíÊi%S‚¨‹ÆšŒg=eÁ?g)¨‡äP3¡ª¦Â vüSŸærªIù6 :Ú2€JôU”¹Ð1]¥&Q‘ÿ)ñ:7ùõÉ!lijÿ,²*Ý*bÖFoñËíÁ’öqtÊž™úŸM&Û; hšTÔò*ýŸÅú±“dÌ{³Þ“|ÛÔsñn->Ó©ƒ§lKÍ5Y|hâ°~Í×t¹Õ´Šõžl‡¼<úÐ@GÇÿSá˜$ç¯÷¾Ø'¨¾wj*Fh™~Œ=5Ö¿]ë(xê+ +r—GÚF!Ñk”ìs»²Šlßuá¾Â€^h(p ’¯ïÐþ4òïÒûæÔ;U´r}CÁƒë˜m›ö,´è¼À¼º¤p žóv†Ë¾¹•„‚ÿ·McüšÁº5ð„£eNõþj­ôpž;š´è 踴Ý)böÀMN9±ÀP•ýlKIΛj†ZÆÉ%zÇ2Š^iɸ½Ý“ýÈ2~³Ô~×:ŒŽsO³Ñë€ÇÙ®øäš@Çó”íÔЊï1{&ñ¿×®t¤à¸]»k¸ð‡ÿ,UõyÞ|O^ê¯Ú›¢~ÌÕtšDâ@ÞxT䛹Ջü²Ú… ™iÃÉ„Y÷ç» á›RÒ=éÜÎ÷¾ƃ¥&Ô÷­j®m” ö¨(E¾>1«Ã¨m/Ó|ºCA)ØÏy±Ø}uº6üÂóËn>sßÄøŸ¾Üýtð¦À²= } Ã¥[%%o6JìcˆoæQ|ä/ßoR˜û`cŒ^º)ç#tõeÏú16¨/ +9AOz~LÅM¸»`±ä㕊è—ç×»ñ‰.³Ø« ¦;Çʃç[RŸNr¾ß¦…œóè Éÿ»VÙêë_áQaR6zJ^oö—½Ý›ÂçüX`39lŸw¶+±)€fytL@oA?¬÷V¼_ë…}·MàÒ +bƆ£«-~:މ;oÅï)ÚÆä{šÚȋƖ¬§½„È;=¨ð[Ä“`ìB$"ßÿ¹Ú^ôŸ56ïÀˆïHËBÌcùoœr@LÓ`¾žæV9£À„@Û)wO+d˜ÇPKà'óÍ…'i×*³ƒÎ´U„ܰôC¢—úÊ‚XA×¶Ç Å{Z:|­¯ôÓ|;øÉl[Þý…ά;yÉÇ_s<îžAÈÝ’Òsv5 èÑœ°öŸeaWO)›©Ï~4Åɸ6×ÿpgo“³KM­È÷n Ÿ¬ }µ=ß¿ ðGäÝi)ôw-;þ‚s ÷›¼f³^&*|uÖÜËü5SÓök†MýiÂæiæÑœ·3Íq~³-q×~-V6îÎ6í¨EB‹”šûcVÜvd`S~šX¸ý)j±[^¹Ù—°3VôõïeAƒ]/®µÈ¸hïLeÕÁ›êÑs\€7· AƒûÐ×Dé¯þ°éŒqR²sŠZêT3|ïé„l±´ÕSúf³3çáf[úç*ÅwGÛTôxcˆ–m“s[cØØí1lÌ–j–"BíL®‘‰ô껼¦¦qïL}ÿÑ|]ÿyA対øìãôÎZrŠ˜iUÓ‹ÚJöæ(ÖçO¾Ì7B^,4”>Ñ Óo,·~4#âæ;+Þ̵¾nö‹ËÖ{EeCðú)~Ѓ«Ð/Kù^ì8p}‚žo“3‹ÝjÛ©a÷'ð &À˜Ç@*°(Q±æqlª¯×ꮎ‹wi8(·Èo åëÕu4KZ¤ˆˆÙ¶¢Ç+½¨`ó$«bc‚ ™k¥E,4°¢f+1¯”Ô¼ëãääKjqö3MCÞ‹Bì99üÁ:JÍ^h/}kªI½k( ZlÍy1[ŸrÏ<˜ýâp™²gÀ笣Â6%ø¸£€µodãæ8ôƒYÙ øe« +4ß•÷Ì®„FÛÔ”û8»Ü«n>зMç‚Z( \éÏyhlH¸Ñ {i­²8€jEE\Xi)~s0Í%ïé¸äÝ)&€ƒˆUŽH^è)};U™sïßy_NŽÐ¬¸Õ§ ú¯™Ú®ŸÀæþÇ,ÁD¯õ•Úå¾g¿$c3ê›YJÎöþ{oŠYᕱ¡îq&Ä:ˆK nõ“bn¹Tlìj?6Y!L»iÄ$xˆÞŸç0Ž–8¬#ÿ<†JÞæ5Ï©pv&X`¯ŽZlW ãW{Š·za_7z+Þùjw™û Qã̤‡ëÈ”ÕA|¾„•ù\Áμgî‡EîM¢ãTôœ_ë/Ž]ìH{·Ô–z÷ÐH'íù¼õ~HðZ_öãõŒ§sMO¶‡K‚ÿY"@|jÜ›a³û¹™ïÚˆ©/~,ÖÎVÖìkÖaø—…º¬{ZA¬ßFÁ—Wù³=°0™Ꜯí>\­w(h«½ˆ/€O}·Ú‰óhé÷—¹ç«÷n –mK°Ñæa\”eŒœºì«³Ôé·Ø”vWÅ »4×vo½ öÖ% æ»àQ +QòÍõ~XÈ®Š˜÷c–XöcžÙ_`à÷¦<¯Q(ÚŸ©˜Äµ?êG}}ð~Îóû³t”CNr ¹V=)G߇þÞMJ¹µ3LÍÙ ')èé× +×å¼:¡ G\Üî,zi#§ûÈ ÍäÌÝ”ÈëCˆÐ]%ïÑðˆ=1o߈ÏßQ¾ ²=Ɇ[Õ‚¹>JüÒ1Þä1°Ý{•×Ö^KÜ‘¨ä×\ã4¼üÞ; KßœCg¸ÇÁBKÈlï4ì­c¼æžw¾ñEX Ïü»2ÒöFÝ]} Èùì?ׄ“ïãý"M¸†@¼·ä45°ÔžRãkðÀN¯í›™Ì#›Ñ KÃåhy§•”†Û_|gë/¾Õ[%ôŠ;ÃigNv‹™(P`ýmÿWkgüBËDlJ‰¥¤´Þ\ŸBîù;ÞCýÐHƒúg¡‰ñ¾¦zrú·£Ð'?X‡Ÿõ r/%_;ý‰m¸:ño7¾#¦®OñNß1‰Ê®0+îÁ©¸õU`¦&á[¬žm®Þ'ƒ¥ú°[6ýO'‹ó·—Jý÷ +´!)IZ›¨HX›iKÖ?¶³˜»+,üÞ +{db’ÞëÄÿ:ÉØÿy ð÷NlûÚTë‹Íil6[i»&ÑÀ®‰ÇÞ3ó»-<þ®žEˆÊ±µ#ö ¨²˜š”€_ça¯Î~hìÅ{ÍÕß^á^Z¨ºœl{º%F¤Ê¹—ÆQ/¿\%}°Ò0xð‘YÄꜘS±èŒ= gì¨vÑø{‡ùÁƦÇßËŽoÞ¸/¨§4›G1ïÈu7CÐ$9³úît{ö÷je‚ŽQþÐ)XVÒò|W…*´¾ÔÉ>3‰ùmT…­91 ù»Z.>¢Ž×Y¶'‡ä¨ÜÍyxjX‰-Y›Ãäé{[ïù–H-ûf¾èÀDhÞYnMލš’" +H.°^Ô‰™‰?4si.kÏÄÀžØ¸‚›Ÿ[`_¼5ÉØœB½Qòê®W½¾úiÎí3ŸL#ò.yÅð¼ÕÞæ{®†[rjÎojNÉÍyNáo#øÜ˶L¾€žõ™Ž¤M $eSÒúlGÛžõуƒÿ½ÅêþàŠœ‚Á˜™ÿN˜ðÞEç|póÇŽ¢™» gˆ+a¡8ß)³ðâ:û—cŸzŸÝ®Å•¨Éµþ)xÒê@Õïöþ²ßÖ'A¯ƒrrã«ò²FX}kW°®‘‰‹º:fÀ”ÇôØòð2¶TÛ×úTÙÕðtßÁ¹¹Ý¾"¨Äm/ÛÞ», ¿£#ZØ/Ç乯!¯vWh€¶$6†Õ¨¢µÉö\[oÝóµ1PÊæ8?(§nÉPùó¬Š?¦Hy×O€|ÖkýrBEHCjØ13q!-êSkÃZ:Ä<ØþÚ#ÎÀÚ=žGÔ¤êÀ<"uSÜöb}¸õÙúL{¶_ÁÉ:ai„ÊÄóqÃËmES²}8ó¬¥?ó‚kªá•¾¯*q¥¯úMT+ø÷:“ç‘"r—û›î…”TØ{‡hò½ƒˆ:¶µGÔå$”_J°Oÿµ9ÓðöO7‹ç• síèô°ŽEùèèWþ×Ñ9ö¿52î/7ºa×Ít5=ŒHI•1³yw™ƒ9qõ,¾ww/œØø¢Ð"*ÇÙÛpõØÊ4ä•{ üòúhÕµø Û@ó-W?âùÎŒ Ý;ˆxed•ýª eŸ„<ûŽ]yëkz逞~å›Eùqy%º`Ï„¯Ý1šO¬þ±£sâ`U0°·Â@½·3ia9¦è@OCúƒüÑÁ FŒlÜ–’ÙrÁë#ô9£þаþÍWdÙ¯; °–èlåœvT^ñÎt$:ÇÚžùgÛ’Ž4XDŠ-ˆÈH;ZZkT ÏŒ(¡iÁ%P’¶3ç÷e~þÿ\cÂG™ÒZ·Õ°Œm89¦d­`[ÿã ¶ýg•Ðög|&³…ßV‘ªãü¼£çö¢ˆ†ƒµA'ù?A2Nk9õ×FàùDõig=ÈìÍ9|™kühm¬=ažõË5ïbT«+؈ÕqjÞ(¶ð´¦³éõ¶šƒê)à# ®éЊªÛ3ûDæGMPt…;° ûV9Âc€—½‹¶®Á›°w 8§¸õm¨áŽu°ù¡{UÖK:'cü] U'à¯W¸9§—é©?Ú{Joz&@‰“¸ìÓrNÙýC@ó…È"ÇhǸáÎV|¾…Ôè úE8òaS¤Þµ3ˆ¡e:$¬±÷ŒÃ².n÷މ ÖÚº¬7>cûÀJò¶äx|dêÞY&·„•¨¼õYP¢©§ê²k–R¬NŸUã˜îÈÞ1sø‡nÁXl…Œ™¨Ð2©!øÎ‘ß½céìÛ6v +|jJíŽ^À>2 º?Xy1-½Ý³@*tIžYJOŠ+¶ ·¼ –ÜÿWWË«³»Z\GL‡(öËÚÞz¦šžÙ*®ø˜¯ŒwK¨Í_ÞÛyÂm ¦t[/¨Ai[ò–\÷TÍÓˆQ¶oã±Óôr‹ófÛÀfþ½Ö£<0âÌÔz`¥"Üî Otlæ±ôLÄž–…8tÏ$îháeZǶŠÐìKû¶“µ³D(Ž*ð¥áÅŽtk_ñ%sgåeç0!­·5ó»iTöË‚ò«‹ÔÂßgÙ§—ð¹g½µ7‹˜c/ø¾s™½£çƒjjûþ +“täMíX]A-©ÞÄxÏt{ÒÖ"2[#,º´£À6í[ºâ÷`B2l¾UÔpuôæ Qõ³O•ŒÒ³ÄÊ„¯ñyw¿²w×%Ŕ袨 +‘U!ó  ×hÙ£ ùg5é婵Ú› ¸B°ä·AùeÏHëK@çÆûšWüíÆß[Q5[KµbZDÙ_@œþËÝ5ó'›»¯hMŽ-Ô=ÚWC2ŽÌTÄ!3 +xžµ¯ö¿„T”3Æðs~SÚϵ¯oœâW¿ùÞ.l¼²9Òr'0K…';}{zm^`×Ä-O–è…¿. kn8'`/µÝíÏV'ˆ•ÛúN~H‹¯ +…1- ydfR>¬²¹Çvfß„‚î0MQº,¦'µ»Dsû«üž˜™C]›ƒf{çêŸÅÔà7;ZDþÊ,­–wYßIñÍ0ª}m%ˆÔŸ†š_þ$þ»`b¥ŸóO5%šHõ`U³òé÷ÁZë¡¡«sÇÈÀy~W«Ù]AׯQIQ¾Ù-Cd“ ¯ô¶'_øàéš=tô)[ŽÏóöŠëæ!IQ ¦`#¸RXû`‘vÚ5Þ’°Mã6kÂ2\Yø j©-ÎIdÊ–[µؽk‘Ð왆ïxŒ]‡¾k¦!÷W¹± ·Ûz4jœßZb¼BEÌÈ"ûTäºe!èÁ¬àÜ$"ë7÷@íjNÁ+}5)s¥Èw¿’#+qdt÷*•rè ‘ö ÈÆà|l:pšþ¯7„M Ú5ÑÚÝ€^\WPk¦[¦àµõœ.ó8´jWC‡…0ih‚w¼ñ–g ú’–•ñ£†Szq”Ùð[ò­3Ÿðk_ÿ\@dnÎB_Ûzšn¸‡›omL4ÜóÍÖÜŽJ19€>€{¤ØÚaÜÛs1¦)fZjGfƒËÝ»&.óÄÎï:°rÎidºgäodID…« JáikC§JZõõEbÙ%`¯n¢JR¾Åç½øÎÒÙ’¹½€Èv”ýîW\ÖwfŸ„?95‡}}VBH½èk|e=í§ÿè쥖E%"Üž_sd‚ìêÛ3·$O‚Ò†„=¶åÄLÇFÔØò#=¡á¿vRÇ€Ÿÿ¹Ù‚?mÖ±‰q—ßZWÝó. sø7¿Ì‘Ë®{DZ©ž!ð#[wÙE=7ãçy|âÝ-¾çßüt™VtQƬºÉ¬|}Ö=Xópu°9Õ3hb*7¬ Õ†dðÂ’·)mzè[øžŽß¹»LAìéq >Yå+¯¤4Á¿Ô’¼c¸ÑIÃïXà€–hÞŸNÁðG'¶åÈ +-Ši ™@|ß]&ÖPžñŽß1ðå² ðüP‡-ßš%N ßž!å^Qö Îäu/‹ o÷ ÔŽC ‡í˜„æË¨…gl#ÐW#Ÿàäî»ÙÂhœ“ô@ÔÓÚís„œÍEZSDƒnÊ!%‡«¬îcÇ ñ¯5Áh|vUØDjÝsRÑxŸ°e\©y¤õ2ÿñ¿vu|Jx‰Rïß¾Xh¹¹Ú]ûûJ7øæ¥ælÓÛŸÍà +îùçáé^ѯjFþOîáÆ“ w£²–×ÇZû®‹7LB³Úr.~éîm.Ü5NZ£ÆQÕ¡½gêÄÉæÙ¤8wx—È¥¼æGÌêä3«}mûRÝö*Ý?…ÏtŸYDíw”äÆ_µôæB¹½·õ‘¹³ôWŸüÊ3ÑøÈ3Vû$ gŒœä[hëši~¨æÕ\[í¥–ê8ˆw¾)ðëc3´£!µnK‰-VȈ:~[Õ‘XjM8Ða*wUÈâ[)èÿyøý,@|×áª7&›^Úó6QyÝð·¿J(å×ׯÐ)îÁæÛF^áY9ó4`?ðë^|?Ëü}µ»ù¡[x©ìÑ…OÖ†“öUq KóÏCߺFZnÍÖÞ ÉkûëG•ä:×D[¾ˆ[s°´c+~bÇÂŽíøÖNbû{'ÕÁrÂʶ·íLÖ¡‰Ç;±uÇýåÀD†è1•¡ÐkÇ`Åu +ûÜúôs +]:I)¸¡í,»ë_DÍ‹îÎ⋯ú)s_À¿Â3 OÚXD¦ž8¨ø;sbÇ·Ù°ûv\sÔNE‡âuá«TêÇ5†À= MvOb²wµ<þ_:Ý7ÝôBAx÷Ë +¯ðªW zº¯ÆWîëˆ JnÍUÛêUDAªŽ(‘EαÆÇÖ¾º?Ö¦ïúåàĆP·­¥`b&mc‰X1°é±=¬|Ä@…¹éÀs +Ô¯ –Çûú¥qMøþ$.cu ý™•ùý0øÕéž–§¿òë^ìmMù¶Y–ì`:¢B«_Ž.-Ó µo&´Dâýx5¸ÚˆWæ˜l}aì­½fïx·½ÂáûõX”_iŽÚXŒ€ž òk)-#—±辦-ß3[q;¦#t8'qˆ?],áß[œ=;uâ""b:Xá& …7çÛ3µ} ¹Ay\PËCKŒú­Y\¦£tk_øÃ8ýëá¶”/áé?mKÈõë3˜ü%rîwÉö”:'¦@fíÄï Êa9[‹˜Ëöí¾âzxŽ‚?phcv6kÈëG«äŽ=3‹Õsˆµ/ SD Ùç×úЇJJ³g þ1èSGè–ŽRþ“ƒ[q.4 ·6‹Ëe4½ù©œzaGKÇûJDÔ°4·¸æÎ%û— |æŽÑúÛ> ,e’Õ\šxã””˜~óï ‘üÀ$àïñûЀ®vŒ7>Òvü²1]÷pWGmìxûÃJguö_váØ@³éñÕûZLIL*ðÍ@_¯‚îjºZoö#ŠÎÏ` +Ž.0Ú6Æ€}éïxêB&zGqËœú?DMI§> Ïvd®tUß6 Ë~É`»Ë¸†]5¦øØ€¯‰Ï¿Ö÷ÎÜ_}ÓÔ]};*†! +*PEÇ{ñÏ»,È’c;ºñ^ +%>_;¦fÂt“;j!}[E®×}¸ûË/›……Lü‚‹»L­º¿îuKÆÏùÕÏ¿=0Ñîx’³|wmt°éÇñü[¦´Ä´Ì”!ç¤ÿ”²þt>h¥¡v­tü¾•Nü÷:ohÇ/]Ÿk}º¨ô=;µÐv6ó/7`‹Ž.ñ¡™Ï‹ªéÍ»JZцÙ~¤æb×GÑo×z1ÉÁIV•­ toùSò‡ž_qMÃ*=§ãWÿæÅdF—¹˜ˆž +òÉiþ%xú6°†°œ¯!)^›ÂHXu·‰å¯N›{jsÝó!¡fmòjKMÝ×á«LØÚC²b[†«´ôµÜßšD–›E#€/±OVH Ýe|Õæ,â n{Æqo•"ÄÓ¾ŽªŸIM¿Çë™ÍÕ—çPÉ_ µ=ûlšôõ<®è …~[íiyfnKªL¸üòÍÕ¯Õ(€W05:~áÙüË™Ò~± fYŸ¬º¿L…¬tŠô}ДõdÞGÀ^þ??óÿúiìÿzñ°«Èª=-,Ã6ØxTòê;\þÓ¯¶÷+ ܱ† +Ú“cÊ·&Á©rFÑm7Ð`?íJ¡9!9±ÉÚÙx#<ƒÈŒÉˆåQ*/¦BÇT„ö] ¡EÍÊþiCÜòö½‰E´DSL ËèÐå;"èO‡`hß@ƒZ„ÍEJë² åÅ®–Ôxh&wlMÃÞ˜ø¿«Ù¹§‡ oÎL Ó~Û˜'Z«UþúÇw7Ï1…/þ°Ëm5ämXyR€“wu`o)@; 6¥¨ì ’Xyd +ö´ ìÖ\{úî2¶6¼M1ñò/L@žk誹݅ȿZøâÚ×#ð¼ó3ðìo&Z“>×Ò¿Ñ’- }õ¯~PÊQsòùevÙ-·úaÊõÓŸ´¼½ñÍ– õÌÃßn.¶&î™ñ`Ÿ +Uâœ'¸Û’÷¿ýüÌnïLGzTEG¯v:E³ï7ºU7¹£\Dä £sÍ}ÈkCOÍíµÉŽÔÐ<2Ý7ÑúÒ?Ùœ²%®{å©z²¯c"6&±@,l~°D-¾êC믾¬$ä}?בö¤ãÍ×2ô›Ùxç}â–Öñ†\ð‹¯úÚ’Og‘9ai{ª‘_tÕÒYx#,)ºSW<8²"kNVY¬÷Îø}C:îØÌ¦Å¿W?4qH:rÓ®‚PY"WX»[nY…m÷Œ¦ûC ôSÍï¾çU¾þf–õ£‘Svy{®=)¦ÀTøæ¡ù[‹°ìm ­5¦ç‘L„¦ œ¼ÌËÿEÎÈøqu°æzx‘y```#ŸDµ4ðGß7²°19"+"ozî“_wŒ<2 Mù`bâ ,B@J¬Ú׳ˆûz>Í¿@*òš{¥»ñþ2¿ñ–¥§õöšþrsžV­Ô_Q2J.,QŠo­ÖßòÐ =¯ò¾kœn†%ñš²Îôµä]KI`Çpã#¿îºUÔúÔ;Þúr{òúØD…Æï hPa[æ7J~õÓ÷v*꣋Œ<±#JOlÐÜc ,àÄZCOÓCRù«oÆÑ÷÷-¬ž •·1ÜpÃÕSõ»’šõ½ôîWèŒKŸÎŸ³£‚åÍrkÑk’uŽÂë¶U¤zséíå܃ŸL¯~öŒÕ?‹(I¡e*_ýìü3ëÉÖØ‚ø¼ìf&y_‡) JÀI6QÙ3ób ÐíÓ´Ò'ã˜ÂÛ1 V KCØ[ß(U+,,Áfü¢ãž[émxUQQ +~M|Î@ÀhŒ¿ÖØ jLÍôÍ5=óÎ6Þß=9Î} +ØIÙ¯[³ð´[\@û&1ÛrF«kùVÛÙtÃ3‰Í^$äŸí®yþÅ2½ðаîîÆ$<ø»ê|2|¹m¤-EPÿúTkÊÕO‡;Þ\ލ:Š7$µrpή‘ŒðkX̘Û{²ÎîŽßý{‹LóLÖüÀà~t÷ëÞ»yƒG.&ûÀEÁÚ0µQeÛ›ÝeTeL‹m]lÍ)°M éÅçG›¾è©¾ÿöÝ!®\˯¼8û»êñ§³¤âŸ©¥Ï¾š‚朵p@wd˜ü ”Ü<"@;ÔÜÁ$ÿÀ®{üÏ9löÏ[Óí¯×Å ÷tÜ’?ŒÂÒÛ¾‰ò‡û˰âc;›âèž|d8´L¬ +©¨õ±evÏÀ#o+ˆA *Í?‹zëøÊÞÛv§·-ã[VéËÏ,¼¶gzfË ¹äŒž]tÑÒYt]ÃN¾(%'œ^é*º“ÓšCK4°ošïé·¼ÜWßÍUßÛ+¾–4$îè¹{:JË¡žKËp%±%xæ‰Sw äEÕÐ’m92ïÄDn‹¨°¥n@Ó¬ÙY2|ó¤çPë}5+ç)1ûÀN¿n/ÁÞŒ™³D«:oìl{ЫV{nÎ"ß}ϯ~øÅ@ÓóSQÞAäë­)v«{ŠZ3Ë=ãÄçç8ÍiÄ»ˆžV`˶›ð« j@ËX†!É1=´o¡ÀmD( ©Á‡+ØÚƒ\½}¸ùVXw}cYòaM0Vá+6§Û“¼bø;Ï82]î½9Õ‘yÆÌ¯¸Uj:1…¿5§Ý?µÜ) ÈI5^æOJFÊE57í¡s¤àÅ‘‘9ZáóË$ºòé/Óäœg¹YœC3?5ñ:÷æGŽŠßuì¬3:vΕÍ%|9¼äåiT~Ò嘎#Ú3à[-]ÅWæÑIß³Ënÿ³»êΧîÞâ«z\½_Ak)L¸ö%«1ùΑ€ù÷:[tb#@}s5wÖÄ¥—"ê¶w¼î°†ŠX _ÓóJ®}°³âµÃ ¡& Aåøgao<£õ7ׯïy%ø\BÉ‹oàÙw¿\¨{âéÆ,(Í1TýÜÐUq}´#ó[FÉ£JÉ©gCÒ–´m<Û'my±§§zK$~ïêÓ{6uì Q€< ð98ãý*ªéÏuá¬_I -÷•&¹(øc»ó½‹J80¡Ë>®a'v4Ⴟ5¤¦­\‘w¼ý•–StUÃÊú-ºzãžB§ª9¥§•Ô¢Ÿp%? @_!2þSН¸áîk{(¨}ò%)ïÊ?GA¾œÅ¿þº#ëâ'ÓÈ×ß{'[_jkoõB^~³ÒÙôæXω­[RØ;Ï<±" fcvÍ,rPËëÇ¡ÉfÙ¥õYtqLËÁG´æ­iÄ[«°ê‚‘Yö³“õÍ"ºàGW?òõ´àg®ð §ò²Wñ»§¿òáæhsZhº#Ë?ÒñÒ,¨ºâémy¸¿@¯IðyÇñ9ÙS ]¢ü ÇK-ïþmEW¨:²BSm‰îúÑEàÆ`éáIP⮢íMHÚž‘w¤nËQÙ{ZZûž‘÷É¥j¥†Ý`2‹Hür–øõáÝÏ:vñY«¨æÏÞ˜ûa¯†[ÒO­v6?±tÖ=™&ž2³ò®l 5%ûúF#l½5„Ì?ë›gÀöt\²¥·üºw²ñI@†ÈòLC^ìpu{fÚ·DªrNÀ‚K°ôÿlñ&þ\ãtïèÐÍ9B®QT~iПû&|ëF°‹¡ AVõðBÊ.ŠŠ]XôäkLÁÃïG¡içWú›nÛ‡!YA%‡²¥dC¼óȼƒ&ïd•+Ü7³ÉþEl™†_ykYT{Ë2ÔòxGÇä|puMYY䘎Ô’“ëýRrý¦—X¤TmÈKüÖ§zªbÏØ3æ™&Í!³¿m~óù<&ïg{Oõí$ðçºõyJIË»ç_÷B3ÈN:%¬‚gîPõ'V"òÈB…G´ ¤_AiTðêﮎA2ÿã딯’:":dî¦òÂ?z˜m} Ä£Tëê%;jä3‚Kär×HÛÓ9Lú÷•÷>ƒ¤|-#•Ÿ#5žI¸uþ“ŽÌG?{ú[=ÏÄÍ;kë.¾a^œF¦|Å­xøådÇ»ÓJfåEdæÝ/½ƒu/O´¸zw_Í+ï‚óÖ;ÿn|ô™•öͧärÖýÓŸT>=ÿÙŽ Šß5úËF‚}0’ {2X©o²æ‰s¤ê²ZXwS’òã`KÖJBáÏ ÈœÓ +\ñY¿õ%|éO@:9-¨Müšœûäs“°æ¶œYz‹Z|ÿsxê¯Eµ/¾““²N»›oæai…Æl¿¤æõ±‘:0r)»ZB w«vtð‚€´íõÚ$!¿³7pØ +²Ù/mèhDÖ'Œip5¾Ù–¤É¦Ä­…ö¤è2¶tg™sŽ#sg ¿zÆP)ºNxÒ<½é±ITwË+®|^¬x”Ò óã}œ>89Â3ë] —D–©m ªüÀBF~ô0G6:1¼Œ.Œuàw}K¸JŸWá_$”x§Ðo½3„] ±ùØÈçÅ4,L`‰Þà[è%mÎÛÝãä¬ÕaسRÁ…itúO1,)°@¯Ž)©MÀ&£&*fð·u|HmòËkbÐÓ¨–аcb  vh!Âl4Ìž…CÝÖ1Qûr‹–]qe•ûƒ’VzÆ=Òp3&Gæ™xÇ,"Ý:NØVª¶¤ę̀]ÖB³=³m¯ürLñžž Ëqåñ‰£U&=f!BþÜâ ~ØâO½rÇ‘ƒÎô©ˆm[*zëæ±0 #V¼ßè\Œš™”}‡óÑ)’|t‡>ÚØôc+“¸cá2¼R¾?>ïPJ÷I¿á诼bŸbÕº!wt¼¦+*FåÏ+‚²³ž±ÖûësØtë"a¥³í†{˜Wáémt “S7¦±iöþêËVQéù±ögzÇŽÐà]€$­ÏÂÒOVy‡vow…K‹ˆ_¶³ÂÄí™ùÜ=‹hxg…K *(ÕÁ%Jµw¾ÚÛpW˯¸0K(:3‚®ý‰Zžñõ¬è²œV~i ååçSðÄÏEO?‚¼ýZÍ©½aD¦ÙGa/âßó0kÞüèìo~¹:Pà£ïÆ`©ßËIÙ§õœªÛ6è¥góVÓ yŽ)NøšRøêTt Õ¼>QwË7ÝôÀ9XqmôèóÑÖ'Ÿºj¯N0j~{ïâ§ØÌ—ß»¡‚†«r\ÅodéyJþó/*^ø$÷ú™Ojýþ)·)勼W?…¼»ó©³ØÇÞº[ãu7-Ý…%ø¤S‚šëŸOv<ø*¼Ð–º6ÌŸ%ä\¶ˆª_è Ð}–Ëw•Øâ­ñê›rJÒ«ý5ƒRR•SùÄ9ÙVì7%¯v7$lŒÀ^î‹Øœny«dåœïmzö™WLÎ3õ óͽ Œà $YAO¿ #%þ¸6Zpãhœµ£dyFÊ­OÚѱЖLYH®|dÃ6}X%BO¬¸¦«tB` ž0Ìï³°œ]5ž‡çHpÉ?ɉ¹W¼#àß$as“\"¶¦Y5ÁN[P&ÄoÌ2½ÓÄ­Yt eÓׯ‘¯}sØÌØ2—°>)§“ÒÊ^ÛØ[³·-ÀuVig…Ôâ[jKÚÖ“Ú÷-\ÎÚ$<ð‘&€¡a9Láæxã}SgÆ%ÿ\óË  •푊&) Ê ek3ð×V +⣰û%L™K I +,BRÃ2€d¨Ü=#±åÏ îÀ¡Šl®:²L¬?0;‚j,øÀÊbžØÙÌ# »o¡¢}J|å¾…É<´±Ù\á_« ÊÉ +¡iGC(.`³C€?9‡ ~Ã¥Ýel…zÿÎÐ {º>I*´v<[·ÜÛœiºï™hydl¸aík½å™àTÙFxÎ!RªžVµ¯Û­¿á›l{Z‚U° ÇLÃ=ËHó£}+‡|"¨¡ƒ"Z&lÇÀ$غFW»§ãŸ-lqM>YGzXC®ß˜Åå$èt%§â ,í«ÞÖŒ/4ôæ+k£´â•Ä›itÞÏFaÛS»í…¡ òÔ'Áådäêõ9èk€WGÛÝ]jìj¹­a×_blfhž‘‘«Â;¹F éÖQlжüÀÒMÜU3¦xÚ@Ë=×pó“ilÖÅJù í !i‚ƒ¼ÝQøî«±öš?ì#¸´YRåYNÙ›OÉ9¯ÿIòtê“/±©/¿á•¥ý4†¨¿€(H=Å©N:5MÌù•Q~ÿÛLòw‹øä/ňäMa2Îë¸å7 øJÃH{ +<ãægà·×ÿ´³»N,lV`!>? í¹³7ÿ5-ýï²Ì1C,iJ{pÊØßT|´Bj=b§³·þ¾Sxi¬ýù©¦ûŸIÑÉ߬Íà (uï~­K¹þý<>ïvTŠ*ðOv— )Ñź7 äÄKÝõ·¾TS2 …+Kün—›pl$þtÓi®ÚtÈ’ˆœ¥`¿»8‹IýÕ5ÙöfŒ{oñ’yEA.¾»9Ö‘¶«ÂTøgá©k@€ÒPKnl·çoËÙó<cšPœ_ÎÖ,µn[Fk K±…ÎPÊ*õWBÚ•L!Rï8ÆA®ÑægQm¼~EݳÐP€Cì˜X´šSqË®nIY¶x­¶³!ekºå¥–•zns¼æNL ¼¿Wµ9 yðÐÛMIÓóC ”!+V‡ Ï­½­¶f¡©¶zOËÀ½·³yor‡C +xFD­8²ÒIïmtÖŸÿ/[ðÑÅæž¬²hÇ.&óÃwðß^îPT‹«ùÓÉæýÇÍé:Òê×Ç@Ï<ƒM·×†À½âög›Óm/N¬„VË$¥`s–R»», X¾Y\–c¨þš½¯üWGù…­ D²gŠœcìÃou¨ã¥]û»w¨ýɦ›ámiàÛ˜¦T†”Ý,€Ï*·åíIöÁ²K«ýÅ6¦F5„êð2ä‡>ÐüÑÂa_ë—aó<⎗«ƒà3È”øÝª= »oð6—ÈU!‡Óòi!µiSÆh6ÍpÊT£äMâ©kŠZbSr—xЛ|Û•|Ç}-úÜÙNuu#_X„à[*FÛµYdÍ#¿áʹò2£ðÙW³™?ÆÏÍ1‰NóJ)U>9¶&ï&«†1ɽÐìUŒê‡ñžkžÙæÇö‰ú®ÉxOcЫˆ‚X·¾8ÈÔŽˆš Šs¶!¢hMZWýaì,úyšüåPkÊWÓðôïVû›Úf(åm…Iß=¹ðã'¢ú7ç¶çaé¶Î¢+Nú/2Ä㯨ü£ôæ”’Õz}e€žÖôîñ§Ìʧ×vÔ(ü_n:Ý7UsoUTtVÍÌø¾³îÖ§aåCÝ(œsïµàáçÍÔ{# r¤#5ùÚÞŒ#¿cßþBPxûÎîŠ{óÌòÇ-¯/¹Hξg¤AcJv‡wúNËË>7 +zõ­ðÖ?æñÉ?{ÆjËîÿ¤`¾üËÍþ°Æ|ï¤w ð² –e꯽>‡Ï>å‘ rQå¯ÏæÞ¿ð™{T¾#k}훨ºîŸª¹³1^v}°åî—üÒ«_jØoÿˆšpuè¢‡ß 3ü`èlLù`æ0?Úx‚÷kÏH†Euˆ²mesÂÿ6)´÷n_ûâ.8ïÁµ’€ïìSž¸{Uÿ +åÿó³†N,°š™ÒëÛZLë`GÖí|ÑÝÍYhæÆ$Ñ?ψi0ezdÁ_\]@Î ©˜m>9£É>†{VrÚ#*@#.}zl뮸*£ÿ:Ñ‘ù«¯ù±_Fë{ï8‡šh(MGF +øÄBE¼·Ó)»F:f}‰Z¹:K*ØPò)›š¾®U‰äS÷ vtFLŽ/Ù‘¡ò øº¨ž»£Bîh¸hÀÁÖ^ЭeJÉ™áæ×_O·¿ûFEHýÁÑSp}OÇ¡ø”l´{ +™²£%5Fu¸Êv*òƒƒŠÛ±Û}2xÎJOÍM¿RÓáj,£ Ga%Q±:BK|î<À7-»z$ hT÷""=fa3‚Ëtô +ÀHžiX’{‘¹©Ä–ÆVÈPß2­yeñÂ4ÐñÐ;Í® )ºâs3¶æˆyîaì[“~jËün™snu¤ýð{Ï€¸öð·Ï,©Ü5EÈòÊHe> ä^b5zeôÚÝ6éÄÆëÜ3Á52Ð m>«%¬¥¶ì™éH÷">]A©ÚRÒjöÌñ~?˜Â-€5 +j# ê¶$Ô²­Er©g +›aE½\àµ\•sêo%è}užV¯îlN8°2ÉÇn®ðØÍÇgïiÉ%¡dk‘P¸)¡–oÉ™ ë0â¹g‚œï_ÂVÇzAÕïŽÁÊ[ëSÕüÂ3¶¡úGÛjó<§æ¦‚WÇDGî­0Ð ¼o@•ÿå†VÙš3}ŠÖÄøß°©è5Š)¥ö)Dò¡A‹™ÈˆC;þÞA„X° ÛTáÞ +¡àgüÚ$쥙¾­Bæ¹'ZžØ' /|rbÅ. wtLD¼w0ÞsUÏgº9­›2hKÎhñJ©õ¼g¤@Þ¯²Y;f.Í+ç€Â+¢ž¨™ÇŽ×O† <êš’RëW` ý ©Q5º8ªã ]à+BÈÓ‚‡Ú”ÒkiKN,߸! "ÖoÉ Õ[r8b†­½3!³P´¡¡·Æ,¢‘½U~_ÔB€tÄFó8áe‚êŒÏ\5àšþôtÍ~ðô*ß»»¦Žœñ¾…'Ú‹Ï1 xöInµc†[ã]À"ºîþ÷În‰o ™³>M¶B’­íOצá);F>'¤ÐwWºc¦­GÙßé“ñ !%í’°ëw }ð'Ž ì;ŸœÙ¶%ïaUCQ#—1B³Crm|^šfœ¨¢•]ù`"†žÑ ~`Ú¯œ²K{ñfIÄ4ÊÌvÎò =ô Ï­,ªáã]óÔ²yaûMUâùê4¥jC.@†Ð ¶qÜ;Ï,°? +Ró±Ëß6pH!=ãšÇå;ç0©>@ćõ]¼ ®‹å_RƒË,xDKÇî­2XA#±Õ4‰K—vBÊ8§D1Ò³7éÕ{f|ÛÀ&m-³;BFüO¯`òÀÉm°˜©«7f”¾ß'6¡ª‚rpꆤ%Á3ÝúÈh«-kœ ”̫άM<p‚{¼=aSK²ézê¯ãILKnŽñÙ»@­uÏë|Khpüîù{'y¸Êáoi9h¯‚øy7+ oh†Ü +jC- úÕò…Nü fm®ý͆RQAQTâJ½sm €ö{Q7¿^Ÿ)ºº1ßú2¢8ÐZ ^Vx¥: åR‚@tY‘c‚±>O*ß1ó;l½ ~cgÿ±üšœö“WJm›:…Á>÷ÂÂ:¤ä’- ¾0XHÏgÇlÝã› +@W-0ªÀ¿‡<úºŠ‡Y•u¡í‹]0TµO‹ÙÌÌʼ˜g_Áü€{0ù[RLQÌ@GDÌ|vØÀÁo›¸Ô}OŸ&êâð·­üΈ«k*º&ZÜYNí:ؼ  +_W’«ísÄBû¿MÖMÊà‚rÏÚ®&fãñ¶­L‚WAiÜ6ÒÐ# ã]¦4øôŽm3Ð:Ù–¸:Ýò0dØ[InØÖ3±{^χÍ.y¼_@HO…ú5LDÌ6 q/2Ú]s„*`=Œ°‰ÇÙµq;÷W»Æ£Ö®‘ £cM‰/ÞÒ‘›ƒ+l†ŠPê“·½:Œß?· (ìƒÚ[ß¼WÎn³ORrœs‚Í¿DªdŸ£®ÉXà-…ˆê˜ fYDW" +jsh™… +ëÙØ°Žõ©é­Ž9b¾`ó¨V(Œ÷Ç?°±i1 ¾µŒ«èˆ°NÔå•vT½ìŒ¥AQžq¶²¡îïi»» +6Ô>KÔwÖÝ È±•Q‹è'Ô¨x WlÃmì#±ÕΡm3‡â_æ¢|JF³OA(]—v¼ Æ{YøËðdõ,qMÞÇY™§YçùMž¸­¯í :<²AÁºllPÑÅÊeÖVþâ˜çã·ÝÓÛ@ÌßõôÈw=]3a ›Øl¥s‘^»½Â§í9Èð˜ W¿®éf¯*Fû½Ëc’€~xÁ¹4Ú/¬›êÌœ ¼[î«Urñ÷WGaÝÀxÌÒ7³cí8ø}># ¶mc`cŽîÙç€~×Û§‹:èT¯¬#g} Uâ3²‰«rV³nŒ–¡¥¼³Oã²Â€û,Ô¦– sJy¨¨U8°çêWG=K³Hì3òù9¾|CÃ@øÍ=ƒQÀ¯£ÿÇ,bP«ŽšPå»6*fwµ{6b;çñëKäÖ˜­g6fôíØXT¯œZoÃf¬iIÍ1•x¸Áì šé„‰ÏÚquŠw­‚®UBÛ®† è{»ÍSÃpݘ«”!¦:Å9ÓdîÛÀlmZL3p²ÔGú>~šk| Å53'4ÌÎ ÕÃ¥R>æ¹VБqhí]رu‹É,¡i&9ê)1jqx" ¼íïÀ\Q2(Åþù¾Î]wWDφ¯/ñšì½uÊîÑüEÞp–„7š'DÓ¯c*Jÿ9Ci}ÑŠ·µÃÓAíè‚UÒ ÓˆÇ`Kƒcµêñ‘VËütçâÀxË\×H¡jx ešÕÍfã²s’+©³&s­ÄkÄ*øÍ¾júãYÌXºL8[§ëª÷ÎòáìlÖ¿]a|VHÌ.&zêÔ½ÕË}“úÁ®¢5£Æµ€Nß”kÂ:>;øµEÒÝ!’3w,ÃôR™’朢‚×¥è59í[°öí¢ÉžàcÈíeDÙ¡“Û?£-}o—iŠQ±(Dß°—´#ýMnE+lõøUL°YL/4 2צh>€uUBØ=Û1Û>†Î÷ÌÊ"Û·Ì'¬+¸ׂ¨Ã4-lt-2ë65<ĦŠÖ hý<”^i˜íi•M΢§EâåP_¥N<V 7)Ć|x‘)T0úˆ£oº;¸w cƒëŠ^ªOÇEoøä €a7µ´–°™Ž ZÂo`tlêVÓò±+ ‹cËsJ±qA:¦6‹Ä©Þd"4rÛ6p \¬Ë¬ýW‹|>ÝÝÕè^@|>fËÈDz–É ;N~¼÷Õ¾³{!bg2&aÓÒÛg×vSt‹ƒ˜%q­b|¨^-lvÈ«Š‘V< ÕMb4#Ó|¸k–ðQö%bµeX"+C Û¶±•]wŸ2¶*šØsú×xƒ‡^ëï {äß>þÔÉš`|×Éf‡múº¾¯Ç!îTöÐ3K]D»¼‹jœ¥•º—…¬“½¹Œ©r-âËýËݽQË"¼ÒÕíÒò«ËýlýÒÒ„td…3Ñm…÷sôE"êÂËnôÈqÂtê4]Z4DŸOÁ#®‚«É—(Ü'ý¤éÜ~ÚP¾¢W”¿2Î/ñ.v!Cæ1ýºnlƪ.ÍŒ´ONHaâ‰UÎ@¿£Î>S%ïäBy³R4Û¬í,ÓÌA%]Òª1†*‹MT¼ª.Á\¨Í†Ÿ‡VsOwT±¾¤öd„t£3Ñ•¾q\DÕO°‹UâaðÜðb‡xD‹6 …,i—(yÒIWgõ WÛ„,U.7󸮄t¶¾„ôË›4Ä—·ï”üãáÅ´Oóž5|K&Ls´uËýSP¿_º»‚¬ˆš±µ¶%Fý\Ïhþ0cám?e&a9öB2"i”ô æ&ú¡ÙÄ€ui¶_66Ö2Ééy5Aݶ#o‚Ó’ÿ5‰„½s‹g8~å@×öJßÄSh *eCÒô"¤è(ܳv‰=úyÇòÌk~ ¿dJ Hžæåé'åÝVé„À)š§ûšÇ¹IÔ¦¦Äâ]oQ/”üÛ"S˜çž¤ù–ú™ÎIf‰wŽZn%¹¦x`Ýìyn±<;ŠXîÊYèã$JGFKÇû¤ýý–f:fâ6ĸÁ#dt ‹8ñ‹ºüå’Äåì´ö3åyÈs EÛ4ÿ…´o(ß°4Ásªûx[·mj‰ ît®M*„éÅ”Åñ%l/_YÍ¥Îð©s…|²,‹ÓÜuÌ_¨ª*Ìc|–_HûìkÉŸ\¿üú‹ŠÜ”vúµ!:?E5ÑZ•ÐÖÔ"Z`™K÷.ák\rjA6!˜Ÿ_¤ŽNWôLç ôÉj„ìù·L¼ø ×›ŽƒP^7–´ßj¯$ß­)ÀÞ*ʆ\¨Ê¯<‡×ý6.`&LñºªçDãDÝÜÌ`ÈÖ?¸dw•×y².ßw±¹;î~YÄ1¨ ˜§Üú~¡Y3Õ??9ƒèŸ¨f÷¾žšjž—`ÄÂþŒi¡è|¼3W>ÆÈ^•u’cöÕþj÷Ć®K ZX웘ҳúÄë,~÷F=šdxÜÒ6y™8mþ©(óej +ä_ÿ?Goý–躾;kí5+ffMw;:aŒc;vw¨´€t§ØÝ" "Hc·˜˜`ë̪½÷÷óþïãþÉã|ä¹ïë:n®35±âfZnÿ¯ï}ñÏÞ¦üàëù%;‘|£œRñNÚÜ”8=ÔJ +µÃj™Hbnkì3–t~íQ§b7†ÌœøH)’½bâdŽ,‚ü ÓûëzÊi~Î–Ýö‹³ØáÍÛ‡Èî¿°8ÕËÖ†)Ä´BÞ·¥om›“Wc¦¤uxƒ¬¿j`P[UÒ±˜O.[ö#rÝ¡E£O’3ëËÌé¼ ÊÝJÏì¼îá‹¿öÂ1ÅÁ#€zíóW¶ÃËO‡ßnº9øx#~ÉÍ®ºGÇv¿–6µÅ.ª«i+úJ樰Üß<˜Ó\­K-+ dqµî‚êõDAÙjLMõlZ9Oþµ„9PÊö¦âû_f¦ÿêøÒï‡Ï¯âý@·r©ŽL8Ïc¤YA™—ˆ×4MÕ›£¥Ô}cëà¦Q4­QuvMÐZ»& ÍíÓ˜ÖŽ-v[û³¾z,¾F0XÅUù1Ù:‚ì’ŸóR¨¿¤Ó'D~q}þ{JH¦c·/©“%x'd‚Ÿ +É!¿Í÷cU2eOï³³ÛH¬j›ÑŠM_ ÈÞ—°B‘#™7ë EJx|üàæ–s=-§öV +¨ó—Oî‡GOcž¼Lrð ç]{úîàéOû‰JQ¹u÷˜ÙÆqûŠ©¥ca¬‚huUŠEÆúæîe&¿f1¡¬~ÁùÙÍz=<”úkHx#>½ë_a¼kN.PŸ`æ5¿¨²kO`Žt‡tðèo…Ås>Cè*lìÏ’67Ä’'¸qš.R[Ç$¹¼i9—S3QDW9fæ5<.@KžÂÑʇáÌ]>e]{ò8Ðá½S²ÃgoœÃÝ—9ׯ;:8:Æ^ƒ EOÂbKn8}*¸ÏxÑ×ÔS°1ÞØ|4W×½cªàÏÊjPz©¼}Dªî’ š;ºûfÊZû¶+‹«çH …™"qfrô_Ht+Òþ,зàFBëvLâ~Bdšc]YÞ†ª–¾¢+%õ³›»•PAãB*½r9ÉžvN† o…'r~ˆLàþèZäðÊ=Ëá×û^ïÓüÃyÎ^X‡'ŽÉ±Ñ¤ë–ÐMØ,Ä-]Oe²J4ÀìªYÕíùìÚÍxBɆ'†;íœOÒ?ŒJ¯ÿÑ'çÅþ!.©úÇ€HžÃ+¨Ã]àZße:¸z>zÓ¯}ô!ý+¯ æAg“"CÓ߇_V¶–¯¨ºZ'•Uâ&pg_o6§u2LŸ}ž…5ÝNCªo…§·ýäÌu¸÷ìðöÔ!0BpÍ5€íðÂãðÖƒààS}Í;ªö‡OÅ×}ÂKoâ^íªi‹[Ô´Ô/U—F:J«‹›> C>ņ cÜ)1·÷ïpÁOáÉͿŦ4ýôÞ%ßÁͳð‡°Á¿B’j®Ý~™èðë-‡ïrÞûQî¿]óùJ¿M¥ÉÂd=æ–%¥T³<ÚÖ4¥l(÷âÊkuq‚¶M¯Ë†À”¬{À)æ—(Òø+(Jy/-³ízPdùõ˜¤æŸ¼¿R®=|íðÉâàäVàððyÜ5ì|Zc—û^SGôÞR °ÒŽÚ”öVIfeÓd:µf=¸æ—pÿÃOŒŸ?P®…Ç×ü•Pó£W ùÇGŽé×>û“®…¿óá:ÖŠª†0-æ&Œ‹8‰:qiêàÀ¦©{+¨×GÓŠ?à(Ògù¸±Wþ Uþàä–ìœQýs"¨ï·àäÆëîÁÌ_‚£÷`ðþ·,z—‹¨©Üwj 8fIÆŠßPó!–Ñ*Òœ¢¥è+‹éëjJhéS£K[¦2iüQO*WåŽci?¤ÀD<#8¿¹ø¢þÅü)"©ü§ØÌ²»ȶçÙá34Uñ–ÏÕm©Ð¦ÊÛ¤¸ M-Ï¢*ŠŸ…è¤ øÎ¦.pK›¢°±K‡,©ÕE"‰â—a©õ·¼"Kvõ§]sñÆõ½öü}†ƒg0íšgd™ÃSW¤Ã#€£Ü#kÂsu?g*8¥š…h¬nUÝR?5H×÷c¿˜¤e9"‘œRÓiÊ+íY€R:w³ü%·|Œê%¿ŸÕðËÃ7™Oßæ8¼ÿŒuxé\àðèE²ƒwñZ\ríOY7*Ùb_mwsβ\·¦æAåM4Ÿ‘þnl_÷º¤|ȧ¤i)“ÕlMÇ•-ç‘äŸ2amÏ ˜ž'…é똼ö'ïýp¿x‡à¯E¥U]Ènz[Pï„aK<5cÑ=½:ŠYÞ‚]Ñ”"w§*óu=fe3K,ÑÔ4ÌðJÛ&@¼2™?‡ÛçÂ-øL`ö;ç {óê߯e—8&唾Á Tþèu±dį²V,ì*ÐH;q&iaEÓT¾ ã¦-+˜i3CŒx³D)lª‰éjïÏnïÎ/«û1J„ñ¥g +¬ûe`BÃ}'î¯Ï>®} ¥]Ïj¾ê¾—E5½qÇ?dÅŠJ”éâñbèˆ;/e%-ˆá¾›*Zþ޹ºrFÙÌ—J‡ZEF^u—Ʃŗ¬øÃhãoòˆc’óû~y玺vã^ŒÃ '€Íˆüb±/ÐÔFïÆº®0Ct_ÃÆ[Fëè:ÙPëˆt¸Q$–Òº»äM­šœªFu‚ JHcI>â©âO0\ÿëèÌò߃¢hÒ«^CѮ傡xuÛwrHÑ¿¦ëêü7e¼ã¥n9Nôz›e•ùò!!µ­µ'‰Ç,yËÀ•<.«K/âê½A¨¶Wq ¨›\ýS2cà-Ž$|Ee VUˆÓú[e0eoØ¢âM,ø‘™ž·;FIY•ÑãÖäŒCÍOÕW%—‰ƒ©·«?««}(§µE™]^!õ£qº?â)N$jdz˧º¦-¼±½-¨¹£'j MÕ ¥,ËH7wO_Ë>žÐ7µ¤´eU1nZÕÝ®W õŒ*k$Ò^BKK}Hyi»…£tSÔb²ZÅ”þ“Qÿ›O8ùº_4õ_áéU?„eÕýª¿ŒÞC3õ“t­|´~\T…Þ3ðqc4Іš ÙŸ,ãÎj›XÝ5q­­­±õÂYzI«D+5úø:·B–æ£bÉGo’®=›îàH¸ö5š|# \õës®äJFÛzÀsbNâœ뻡dçZd‚‚Uu-eBV?ÐÆ÷éé•Â[;5–¶ÑÌÖ^%¬±k\רQÓ*‰ã7’ÐÌ_¾Ê‘Âír/kS;Ä™ƒƒÝyjy'vFÕL=œ.e\®ÿ±^Öp¾\^3%奩e=<¹BZ'W ò%½Ù¢Ö–¸þö¦˜îÎŽø®^9´K(CwöJ mmò¬Ž«{XÉ”vB†šÉ^óòâ¬u5iu¬šº®® è[ð^ë£\ø¶©J°5^S¾ m(ÖËêQCœˆÎ +ø‹¶Êûæq:¿^QÄìwB+Ós M‘Xfg³NάS†–¶ÈÃ*[Cšû‡@£º±‘•ÉöŽ]3³5†ÞÑÓP‡³uÂÃ…VÝúxû VÙ×"–ô’{ú MÒŒ†žIlY“1™]kˆÂ¸š–ßø,"£Ø9ZñÏ« +lwQ4£­Ì =nº)Ë[Éýúv}”‘51ÀÊšªÂMÉ›ÉfIL'lÎ׋[QaK¨¾6 ¿¡?±·QžÝ٠ϵËÐ#ƒHCw'x~ ½)iÀÙ´ÕGuûúbô’ˆ™´*fêËËö %Äùá⃨2{¤•#ob‡«d²áÀ º»­#^Ü\©¨ÉÖ µàô’6ü‚ª»jÝPÏÝÐÕ²¶ ÕìÃɪòÓ™Ê +»žœ5וã4Ó +~·9ÌL^³beåЙ‘zŠi°8}^U˘m⥕ ÁFŒ£°óJÒH|?Ú[—6&éÀŒËé“F¤e¤©|OÛ7zh¨*>1’ÓÆPÃEA‹RBèÒˆ¾fìV¬ê»¥³ŠZ¢YRš© ÒT}u9¢öîÌ®ºØÚR±ƒ!tæ+½ìLvÃÛâ²¶ ÊzQbcKwtoW[ò¬RX¿gìÝÖÔ”¯³óNÍuõÓMƒW™{cØÄ‰.Ð'MkÞ;uÁ[%쥻Ԥf Vºõ˜ú3žSÞí„SnÃÁØÛ, +÷Um]•ç@OD%³§¥Ý¼Õ!AÖŽ™ eAÎÌ%äåèWmEÔsCcìcc?ÔuB^^ÐÀ‚~æ@cL —pV§š;fG+ õƒ¼ø‘.Vˆ¼•å?Ú'ˆ4)j–™êbë k_¬l<³Tw],—N'© ó:òt†Yt`¤ç-É© Ææ&³ª«fAÝRf›ªmØ3Õ×njx;Ærò¶‘\c箪99KªZ⢶«kI_Ç·N”1­{e„“¹¥åB7Ç(™kC…ËBäç#‡ôm¹Q±õY»[Qñ fÄÄ0Ë02x]Ã.˜U7ÐN/hâûë4ÂvõPiªVÈÒI+³Æ5MÌm9vY]†Ú›©©=[®Ø72ò·µÔäãùÁùjËøÉr«Ñ>WÕbÑ”à4ýå9šþâô)€ÇG:c²f¬\Ô’K+z%Êâá0S*UÒi”•h«ª=œ.¯²ˆáþµIO'ZsB—Ű/JA拉zJ䚤†²!ãå-࿎7e;N·¼_—–æY†kñæâœ^¡û¾²­ñt¢©÷bRÀÚ‘#ׄ—51ÄݪÀ‡ïŽÒ—¥”$ 'íÝR2þÏ 6öX‡·QSƨiÇfVá¶ ]Q—À· W¹C‡3%L ÷³7•E¡»cÄØC3ïÐÀ.82s‘–az¢U]‚¾˜P¿MóˆS|ÂÞ-{q€2×CôŸÑÂÍä€%)+sEFKY‘R¢ö4¬ü«ÒÖa|ØÚPQø +°öKýE^‹}Ä€1/my€w¨¡d_}‡FϘ™Ð õ*×4÷ÈTL²Ž PkRx^HO˜ë§e/’§ºPžS]ø€!#bVÑ@œ7aÆû+R$ܤí±Î¾Muc펖U¸&+øºÚ›âhSÒŽM•Åç³u—3 ýçWs¦ Ø„µAX€MSB92W–M”Ul‘!«jF‘=£j+ÑKª!ª&’ÏŠ¼±3ZV´­d@Ö•E©6|h Ž ÅXàz}ç3@¯ó`«C¤ðñæ´÷[2DìÅ4¥àÐÌÃïqÑs=Ï鎯“9~Åá4Ÿ¼©øf»Ò_r¨£€¯ò;ŽLLèÖ(6hsv:Í£|[âq÷µØXsSÊ›•«Cȯv )ã¯EÕ6_ÌšUp2¦Å¼Œ‹åêÞm.r¹£àã\ø¾"ãÍRÔõPMÍ85ÖLˆª*óÅŠ —¹«å—E÷ùžçéöô7K]™ïþ™a ÿ³XRõ×|iÃñ8½ðtNÀ¿\iÖÍV6m Á¾Î7¥¼žnJcÈ÷8e`/V«z¦øÄ³.õßÖªo e »Ê¢œUQ¶ßRò‹üåb’ù>ËÂü¹((?˜(-³Œpr­:æh®aðh©yìh±¦gªL°¥aÃæ¥¤ˆY)3sk¼©wÍØÜ¼¢-ǯ•¢7Fˆ#3|>Å¡™Y„-tn¦å]n4Œ­öä9íKiñö§5£^˘©ïmrvúŽ„}  %¯ P#WE„à…þB%?õÙ¡¢ *!mIiI‹­Û0%åTGÍ>ѓӶ¡¾Úšø§µyŸÒ§ù{ª¬äÛ´-Éú°Ö›ôtW–çv "ÄØu|ä‘¡œaaC7d¸ÿ²k #=)Ù*ËóZæºm{´*Á­I)1gãô‰ µk8ù»Jl̪é5ßrYá¾î«è™s=HŸñ&ðë5))z¡¯0fGNŠÚzÏ7¦>ZnÉ|¶Ôžç¼ 60À65ù@AŠ:Ô²ò&úб²’d§«9"ËÝðè] <øDSy¨†„m§ú]N‘!Gzö±‹:ÑWðmÚÊÒ]M Þ2DŒ²Êr}´ˆûT1m¼”f‘áC7%ØèC-½`S‚ú:Ó˜ã8ÕæhAÙG ¿žh©ÀcH«Œ»;JM<0pkrbⱉ‰¼˜ac÷UÔŒ]9>âH]õ÷ ½ðïåâR`3÷Æ*™Gµµ6C1ή¡‚­ +tÈŽe)вiII{*|ŒU ]#¾\LsÉÇ&*øØ€Mµ!âO®² •E65%ùûlEõåBYeã¿!%ÄêJ9@ßâ÷e„(› eS`£×„(ï .dWI϶iX # 1á¯iVá73«àtŒ¿Ü–ò~³/ûËJGÆûÕ¾ ç¯ñË¿Ís8Ö|¬e (ñHÇ@™ð3EYçSXðŽ +“r #¥]Í\ù6_*ØW’’æ{rýgº2CìZ"übZ ¸œ¢¡÷†aa»Ãïy6t[' žÍW5ÿe©.”WL—òÌ|²MGÎ=›d¢ì&̦çà­jÄ6_Ys¸Pݼ¡ºš…ø²ÖqÛB?o_ÍÑQÅü½)¨9#ýveE!Ó÷Ú€›#œ¬ÏÇ#˜m˜•z8ÊÌXêF¹®ô@?¬ a.›"¬ÏÆ =~ªå>׆ùr¤(Ã}×WоX¼?Š2UGÝ7—EÜšªNz¶;HH´©ø…ÛrlàæØeS˜ûéh´0äTs•;‰ ^ê)ð›ëÌÖ éqj`ÃOœÂÍ!˜·¥'áÉzÚÛ]9Ôצ"'éhYv5.f[ZèkåޱJñ!–>”; ߘê’ßL5g½Zè*pžî„|lÇßÝâBö%øÐ骤G#´›ƒ„ 2Jȭɪ”gÆÊ„»+CÈm+$¨õðDŃÙŒŒ &d£?Ëe¦!ÎÑPùp¼*öÎlcö›3{]\”¼¼æatˆm”c¡|v +½6Åè`IqÂÓN¬ßMK/"îωªªs²Ðžñq¢.üÉ|{ð“# ÄûÜHL:ÕQrU”¬«ûÚRžª”øçŸú}†94³àÿ›Ñ;FŠ=5’³Vú¡n‹ÐV1jS°óO5øøƒa¨÷–°Àc¦)í•¥»Àè—Ì£ vápYúÓ¥~¤ï™™ü6QÊ:%'Ú”è0Û$Ø*ÎöÙ‘áÃöÆ®Î<–’DøUÚgk¸(âÐȆÛu´¼uQžÿRw endstream endobj 32 0 obj <>stream +Žã|GÎë¹NÐÛË96qSØ’=·‡ üO ”¬s=5÷Ï :ì?‹Æ©‘^êÍuÞÁ&_NWTÙTŒÜ]).Ì:÷Ú‘@<öäèàs·ðDÇ€®öäûžh ñÀš¥m †*qq+™Ûƒ!ë½ ý!¨ß¹·!Êó[èÌu:3 ¸ÇF.öÄLH³PÛ +ˆŸ¥ây &Ä›©ÙGFhMûr>KA¼Çü>_·ؘõATà\[¦óþ<øÐ\\r6[Zümž¿˜¤@/*ŽæZTßåÿÏ"¨ü6ŽËØ”B|Wò?ï(°!±Ž§xÔu9€ +\ô‘–Rp¢¥u´ì« `‹²§€yM´¤=oÌ}¹Ò‹öÚ“²Ó­ƒÄÈ•N¤›MÆÉÚ’P"¶%ÀºŠ`®[ƒXÿÙvøG}%èñJ7ÎÿL#ÀmöcU¤„#-9uWŠOü®Ã¥~7À‚Îõ˜¨u)>x±îz®cÃNÆhY[" Oûòœ‘wI_~ÒðCož^70Aº^˜w?+ùÞ™šþs‚ +ú>IÊ<Ö†mI@.óÉækS¬÷áæz鑳-È»bbèz?&pC\±%Ám‰ÐÞ ­à·³Íù;bFÂBƧþõz?2ꦖ—þ|¦>ýífè“}»­ÄGŒTe:õâ"ï^\弋ñá“õ©'ë"oë‹#o—%=Ýêƒ|9ÃÇ,:BJøÍ\›æx1Å@Îu>Š(‘7ìøßÇq¿÷bý[ëÎs·)I©Û§n …nŠ );2:f_AL“²ü~—³>ß5•ùÞYjMzv¨'&쫘9K]ÄÄõ®Âˆÿ̳.f8ø:bKð­0Åu¥;óÕl3èå¶´¤ÐÒ‹_jÏzµÞ—õf{ <öö3ä. •?Yzs¿kî­ Q~Gcì¼5!Àb¤×jÌÍÒ“ûaGœóùû8ðDŒüù~¸Ï7ñŽUAM;çbízÈ"„{N×Ǿ܃Ýöó]Ô¨ Ëi:\ßü~²='èÏi.áÌHHj-ëX_·.Ls²t$¾Ø‘d»]Œã2Í`ß²|ß—Ç: +òŸÅââæ9d»²(r{àÀúDGÆíú¶¢0¨8Ï÷~’Ç“_Ô•é^ÿYàÒþ˜¤C·ÅP+â¡‚àwËÀ¸µÚ ®ÉDL6zÀ¾ß瘤¿WŠ+UäÔ39}àÒ©¦¸§+}éï.¨xû8·>Dˆ:Ї†Ê†óÉâÒÿ.péŽÓ‹vÄà Þ発˜‡ÿY­ì>ž¬lÛU³Ð§&zÁÙ)ïÐHÌ;Ò2¾ÏPÀ&bújo¶Û|kæ›S3—t53ýÔt¥Yhi‡c¤ø¥Ž´W‡:Rò†’¼¯$FíÉáÞÖÁ|7SmäýZèo›ý”ÄÙvŒçT]þkS5è¹¾ôd¦ælé%ø­õ“‚ÖûˆÁƲô‹0«¸'- +´ôå8M5ÄÜ›¬½·Ú~oWâÂ/µŒ]ÁÊ\í-ü¼/§Åí+ða»R¸Çž4÷Ó¡¼.»•ÆßUg>?P±ÀKݰϫ}MÂk_Q°5q]í€~´ôჅ̔‡˜°Ë(¿+cON·ô£¼ô¥É÷•ä ëyŽó]xÏ~vö Tä‡kJf®óÙ(t GøO7$<Ô•…Þå„Ý6Væ¼Ýæ‚.Ç˹{ÃÔ„}%Á>Ì Òc/T¬ìmQ¡ÿ(/ô–„æ{Ý\•ôØwßM):ÈPwwàu¶¸ÀÅTóx±5ÕuKœç½Ô™ë8×’çuahlÞ‘6–M5|ÍUh¿…6xÀ…Ÿt2† +ÝžiÍqîÄ…ÝiC‡ÜûsºLp~•c5Šø:Záóxävg£'ö‰}äêûª¤zªÓ¿Ô•)gã ÈŽ4D¸E‰qþ•åü³üËf/àJúÒ<ñê×¹Hà?€v?3%o‰3>Ì7G>Ö½ÕOôøÅTóÈ*§&Éù™O µP· C%ÿLËÌ·É!¾–Ž˜ÇC4_UüØ; +^ìýu1"ئ*НK{wf¢œúoî³àÿ¶ä È lŒ"eE>>Ò“3WÄЯs-ÉÏ­b¨Ç–í»)*ô³ab6†±Q]øØ;eÞÿz9ñ@U”µÔ“ý~©ü~Øç}92è`´Ào\ÚÎ*H_ÿp¶-Åã¿«,Ö·9àçÏWs +§ë³Þ+’_\β‰gŸÛ@^#¼„»ç“<æ_‹ÅåJHÈ–(åµu Ïg£ìmEk‘áÿYáÐ5ÍàHØû÷©Tì«Mú³™Šº9}M˜ñZ[ò{sÁÇ›ºÊøgÓLœävsªxfàÀÏ ¬ü£È—c=% à÷ôÃ1|Ôj_ú+SMÐôûz1Þ7„E¡”Ä[ +.èݺˆ¹"Äû-tÁ]´Y¯5¥iµ‚´{³µùo7$”p]mÞ{cEê“%)aKH +³ +ñ_F1!@múíHà^ï~œªËx¼+|Î-q{¨Ðo®5öþxeà =7â·©Ò¤ûÀß„Nõ!}{!¿NTüšYz ®3é/éá·ª¡>7êÀî?)9ñw纟¥%é¯üôW+ýh¿©Æ\GMq܃™Æ”—ÆšŒƒô¨›íð ë¦ +¬§Lñ~zßÒï¹+ÅDíb†éÛR\üž¼ÖŸóÐrAËýÄ!ZÊkK'*úðÒ–Þ|÷ÕîœOÛ¢|·=1ô³¶8êöÑïæU¿­tƒÝ—Z²^ ±aú>·§Ê£Ùåp¿ïFZÎ©Ž™¿Ô…ýj.¿´IXK­„¨}iaØž¬Àkº!õõLCºÓz/èqzò÷éòÒ½Qrʺë»ÖK ßéGûÚ†rœ7û2–;³g[@.;rjgDPhj„:.u_éLZÚ\3ÒÃÀM»3]“ç8Q—ýa¢>ýµ¹1óý¾’^p0BN[î;-¶çº,·Cý–Zó?.¶¤½° +¯æ§ezMÔ¦>[ê€xžèŠ‰ÚŠìWj^ÜÇ¿=îµ)®÷úïÞb¦ìÒŠ ¾·)ÁÇï((‰"Züý²t÷:¡þ×Ôˆ[Fæ;!þk2Zz5:ô 'ÃùÇ 3bWS3gÚóõÝB{ò“ÿn°™GF"h®#×qo~1YÛp1Q]õÏ’ ät— x¿M9Âgeîs4Î¥~[¨86ÐÁÛrLðz¨FǨБ€§ŸÓ‰÷¹1Þ ò:ü㡚‘yU·'z®mŒý¿¬C&l©3ÇÅTòþ +×ä´ø^~î]%Â{w„_°"Æ}hÉx2@ ùµŸô³®,õÁbê‹ED’]}‹›xÿÔXB:j{­§Èw¢!þµ¦ìë½éº¤û3 æšÀŽ«bl°±.÷Ãroa€¥î:ßþx¡6ëÅV7Â}O† oI{-£þºÐñ>æd«ÒïO6漑rRžÕ@ƒïô?™kx­H¡B^òÓ!VÊóõAbŒ©!ϵðS+Òç_"bðÏ2JèϦ²´Ç3Üø2däíjDÀ}v +hŒ=)ð(ŸéÆ´Wó-)O7…9ï”èñ6Ä§Ò ßŸÌÕyAvÀsN5e8¯uú§3ã•©4úAä p퀻ó½àOÍØ€[C¤ÈGÛ½Äð¥лí¾,'›ìiéˆõ˜i{g(xd½Ê´ê#¦ñ²<ÓÂ^h(0»š”q8‚µ£‚v%è¯À^%š›Ó^kk3ž5b^‰È±¯]hû¯Où]h©Y‡#Ôì¥x€‚}kw˜”¸%c€' ®U9¯fêÁΆòÔó-YïÏ=dWR'k2_kýöXÃ[Eø°¹†¬WÓµ ÷gjcîèKnLÕÆ=X¼Í† Y‘ÿõ—:ˆÿ½õˆS#5ÀùÈÉúŒÚ²˜·sm€OéDøØT¼Â-5i™p·—ûÔ\ñ[î@ûnQž³íOMȽx«ôüÄĆ[D(9'þ¾|{©!óÃŽæµ3ó²J‘~Uð ÛÃå¹á{>aUL +3”e½Ô•¥¹L4ç.÷€<÷†@¾NòÿYdá׆ð!c,€‰» ž×¸ÀŸg+“žOT$½®I~³/Ïùòo ³"A„ÉIO6äè¸mU9é*“ål’–hÄ„oË¡»JTÐÉ$üçJYÝ¡‘ÚFé)9ÿ^æs¾ÍP +vG |w•`¿Uaâ‡åîLÇc v1QL¶©(IG¦_e±(ɱWïÑœ„ +ÐÖ±ëHÏ…Ž|畾B7«˜±¯ VeôØuiQð|;Ìuªì¸!ƾÞ:Œ žkÍy½Ù󼜮i¾òÖk½X}eü#}eÄ£>„眒x¡ã­+HIªªÔ'K}EQ2F’¶$ýî0-âæ0=òÎÉïæÅ÷'-7úîF&Ä¦äæŒò“^Í)ÚS²A+=ÄÀmÀ{¾Ó¢ò~²©àͦˆnˆnº‹`¨§„U <¦`®+]÷íA|èr?;ÎÔ„të@=ÓW +¶GðáÛlÐŒ Ùä#Ö{О+] ÇÅÎÌwsí€ïo@ûì*¸¨¹>|\5°/]ï_WÚ@Žó-¹ïMÕàOË=˜ åABT/# ÀŠ˜‡6%1q¼*æÎt]Äí¥Öä§3U!6{“?îKá1ç&ÉØUèS‡»­äxý5]ÕbÃÅ/¶¤?Ÿ«O}¸Ò~»ÔYðiªúYY›÷¶ Úå'dä»ûßMÔÜ 9Ý> + \íNù0Lõ»Ý qº>Æô¿a•£ƒª #Ÿ€Þü4V‘éúÝD‡Øå ÷#E¦ûáp¶»¡4äžûåÇ©êÔv-ºÐ…r_ì„ÙÆ'Þ9ý@AH±©ñ‰@„Lwæ}ê,мÑRùx¢ á.dÅ¿œïølŠQQkBhÔ©–˜ýí*Ã]ÇEZeè`sCÊC‹í·Ò‡ \íBœL )Mz,eGÞkÏü`»zoe„kn†¼jG~Ù!$YûrœçŸÎÖ¦?[jÍ~iBz½o`!fZóÔ¤äó«œts1y¾#Êú4ßúv¾)ÁiOAˆÚSÑ3ÆJ +^Š ©·×º°1N—œ›8Ø=9:r¢&ÒÉ\Ÿæ=ÓYàº(B†óØi zª æjÓáÓÿXbÿmápþ½Âfþ±@AÛõ¸ô™®ÄãÍá÷7eˆ`uUšŸ±)ÅÍf"CÆéä³ ú¯yùr† Ù’8ЛùúÈ„OÜ(ôÛ÷Ôø#¾;L‰¶«Èñ»2ãÄp5!æLKÏÞag®‰©a'Zvs1Û˜ÿz±½Àq¥ìdªx`. ¸/ÄŸŒñÑóͰO–v„ǹ–‡´«ˆ±»C¸À)>d¢>íÍÚ Ìc¹ìl•EîixCMÎ}YƳ™†¼k½ð/Ûýøû#ó@JH™iÎþ8ÝõúPMI;PÑR7q_×%˜À‰Vˆ›¡®Àe¡ ùå À­ËXsíxÏ-q|yŸn Xúá“uiÏ,=ùŸv~ÚW¢NÌü- ÌkK„ +>TUÐ;h)s ']iÚS#ø®šqçTSFÜÓVPæú©Ñªâ¬ûC”¸S@—žiÙ»£…AúЬçcÅ ÚÒìç›Ãĸm5!zsp35÷ÛdeÙ¥‡™i}î%ßæÆ>\ê…¸ÙÆào•eß®fz +‘V=óD_]jW#;°~º:äge5̹˜|C[ ´0´)Éý°&Joæø¯7ÀÚý|8R¶Ð›ç)ç%?ìúеÐ3=)}µ+éÍdyÀÓÅÆØw–ž<ŸÕ°»my5{·uGYšå}¬c#Îä,» +9ÞôBDöý}˜ûL[•ñÖP ù¬ª*øþîæ 'ÒùBMXjI;[ó¿Ú~>Q™òd¾=÷ý†œÕ_œæ˜ìþÀèzcOA‡ŸÙhë`žçRgÒÛ©úij͹¯—ûP_–ÄE_›Iaêáž·öäøè#%3ãdµ+ƒ¯ôeûìHóý޵…!ÇFB’¹ láÓ=9)þL‰=Õ¢S¾M’áßfY˜M))ÆPç,¥'ßÙU0 [#äØ5YQÐbo»„öRH|·«Ä$^LÑÈÓ¬²ÅAd„ˆùxSJÿ÷FqÅ_ͪ€…j+#N6%8oËò¾žš±ñ3}0?xä§ßx`ß÷ß—+»OSóÇ:ýX™ïËtœêÎø¸4èÈFP—Ÿw¤´8ût ã@,BœïÞ>zoæ{ªÂ†ïÉQAsíI¯»Ó;òœìcÌë05i©å¾),ú +Ôà_I±ÇjbÜ>€53-ÙÎJVäÍå6Hà7s¥`_EˆÚ*úº'%FN×?îÊH‰¶1ZöŠ™y5CgºôbCDŒ¶)9¹+=0·…¦œ7UqƸ!7» +}Ñ'>³Ð³6ÄԸŴÛù$ŸxdbäÙµäô}%:âXƒ¼eÄÎ!d_.€LwR׈‘&.êXKJþ>I‡\˜Xðm)&h]þ°=uß—¢·¤ôÄNBÜÝ«¡;ôë`¡·uâr¦ã¢¶í=Þ’ûNBŠøíDËÈÝ¥¤®÷°­ÄÇ,õ"ƒ¦`Ÿç[`ž‡Ú«ÏÙyk€¸;P± Çfí*Or¢&æ¤ûL6ÃbÿZàqÿ½Èe_ŽÓŠì£¸Ô!Ücs„ [sŠz‘æØ')3åñUîÑT-ÄåPËGø½!Azž™¹øó©rþUVÑbø£’}WBñþu{ ÃõBæßËlÊl/ê ÀëîÇj.âÛDÿÛl ïû, r¨CE¬dZëÊu>7òûcL´‚ŸôzGFŒÝ£ÃöÕ”ì#=ØË¢(C}¢»¦*Ìiº5öåù8tfÂg.¶g:¯õÂbNõ,Ü‘–ƒ´ë¸pÛ8§ï‚~nÆÜRòÒ^m+89«ßñºŒ×c¥ /Ú@®€žÌ8Ñ3óvFH ÊÊÔWšº O»†]â×zòÆk“_ÊÁf“¿A—ólòT/Ÿ6-mn‚¹N4ä¼:Ã'>Í÷@Šø{š†84á²­JdÀ¦å}•·µô–¶,ó©¡$ùÙ‘¦ð¤4Û>ålš³Oq ŒÄ7B~Ž×’„“·,d$N·y˜j ï”¬”§úŠ´ßg˜Eÿ¬JÿX`wô¸¸- >î?VAÍKlÆî06jàC õ>÷=g#¿žäÐ@Éœë° À|ÿ´Tu],T4ÙLlŠ´ðëÊ6`]\à:Û{o³/éùF_Î[«„‘¸§,)\delÉI£@mKŠm#ØÐ3]QÌw>õª§¶¸p›¡”4× s^ìÌ~±Ü—ùj±+Óq{zª¦f~3Òó®Îì¨896u1ð.AµÉ÷ñ÷ÖÀnV9Êw¥éx¨u1=AWvÔWf<²+y C%/ÿPÁ[…„ÐNtÀíZ°ûíQFø½­^ȧc¯p¡ æ²ØœûòøêÿÌp—¤ŒcmQìŠâÚ `¿œ›ñv±ã9ÊO}p ÂǛو3»àLGÍØF¯‹ +\fšSKó© I&ejëæºp{£”ÄC 9ùÌÀ*ØS\Í?{uäµ3BNû>WQ±¯´ã0&pKŒñµŠÐ^çFö¥A@°kX`s+øÍ’t<Þ,<2·ž™+¹ßæ.0SNÕø¸S59ãà†Í1&d¢°8€‹»œ(eïH¾Vq¾ëfλåÎ\ç#  ÛfxÄÓ E]s2ÕìVR€úffCõØØ•þL§ 1ÈåP]”ø}‚˼4ý|?Ög”œø÷’€9ÍÄœ°q{Š<ÿ©¶„wÆÆ¸gÓm9oþ^TîhÈyššÜw ÝEgfëÄÄ¢œšXûhQ´U’ç}8‚³+‰1vs9OVžöVU•á{¨å Ž\Ô‰º˜b}›å1·Äèù>”çU–òéTmóÕç>659é@IIünú¹‘þg–†<ÖÑrf»`î³Ý×c«PÁ‰yÙ^àq{¶.óÝÚ@¾Û¾w6Å&œÏ–—¯µ2ÓK¹ê÷ã .Ö¦ÅÇî(à@_æºlÊð1;:ò@_ÁX•²³‡x Ç†f‚ŸEV +ÙdD_zxºÐ•ëfA…Éç‹¥õ§sÅ%æÖ|O]ØX×’ÓIëû"Wh±ÊC3!k¹?ßÅ"‚¸ØÍ „}¼„»:„Ý%Åï›iùçó<æÆ%rm€º#£Ä=tP& ’Ž<:g€¯ò·†Ð¾[ƒ€/ò>)@.'*„ß‘s¤å£väô›–žs2ÃÁîHÉû*Lˆuôa­'ùù–öùHYŽ9ÖÔ vň…^JÔª„š¼­"ÆoÉ1–„ëJOþCeÊc}Yܽ}@×›Ä )%i¶æ<^z.¢ÄÜëÅE>š©ÏsÛ—¢ôeÙ¯TÌä;–¶—?Ì¥Ü=56~±7ÕqK†øº.†Þ( +²ô¢çz +}ÇÊRîéi°ó©bÆJ/Ôs±%ñÁd]òëÜÓ¦Džèˆ‰G:f¾UÉÈX—3¶Õå¸=§À:Œð]îËuT•ÄÜ«ˆ~mƒíj:òûl wO…Újio˜m¨Èxb(‹¸½!}ÜBzÏu‚>žIYÓl⡎?ÒžŽóð+ýy®æÊ„ûæòÔGƲ˜û‹Íñ¯Î5˜ø3C ~¾ 篫J»¼¾ÏGcÄ„] Âw¼5ù²%Ayí’ãöÔ¼} & öÛ¾’”øÐ?WyŽÀ=Dì+Š’Wú²œ-}É/¶ePß?æÜC@_lÈ¡ž»JDØÎ"|Mœã¹¯,Œþ>Íü½&hÞÑâÓŒ  ×Ö!rò¡žü*Ôn¢ænc#F‰)Wsö¿Oré»jeõJS=Öòðk¢BÿÙ–ŒçK=à[rˆ‡]‡ ùsKx©ãr®¢v}˜w¹XÕlUÐAsíOúòøµY¯®ËÈA·—»¡¾çó•-kÚRަ&ÿõ|7ÊÿØx¤qåÄÌ¡›9¤c#½ `о– +º˜)+ݦ§ì~öû­ð¯%6íï岯ËûÏS±²—$¼ôei-nQ(ÈZ—0.§¸EÀÚãÏgJËþ´ÔˆþZ¯•Ÿ-ðx;zJæú05þ`¬’oÓ–×xù6KG_.ò7åððu <òxþn).ßtÁº‚90Õ7[*¿¯ ¶Or4^Î94]Íkbän+`>ëƒÙÎ6%ÒÿÜHÏ9gA÷Fpa€O:·ï #ýæ»Ò?Î6':oô ¼í_ôÏrYõÉ8j×Ò2¯æZîže}æ3ßò^"c¶elðæhKÍÚXKͦ²»&¡F-t >MÖ$?¡‡ßÐp£žkp)—“‚uyvVÈOš²cW‘›ƒÔˆM>HWÿ¨áý“üô`x¢¥¤­ áƒ,ƒ´¤M1 +àÒ`Smâã&Ô§ŸÛÐï6V|ýýrŽCÚ3ñ ‹B¬ÿ¦¸ÐϦ"§æ¿«€ûÚFó½¦[bŸ¯³>ê 2V0V$ÄàÕAŒÿ†„˜°9DŠ?62ÿ^âÐ/&XE;dÐxmüÓ•ž‚…oKP¡ê’ÔGãy¯wÏ5݃1Vd¼Þ‚úo åºìÉ Ÿ÷䘨516ÔÔ”÷~´<ýé6à}­#Ô”ù®\§ÙÖ§Ù¶|Uaÿá6ýû4ÿ}A ØðÓ¢À…Ú Õ%v=yj ¤Ÿè ©!Ø}_‹ŒØ†û팆~›f¢û ŸÖe˜ð‹9>íØLÉ·«1±› ·Å¶ô·ÓÍ©/wÔÔ³ñrÞî(=W[‘ñØ:„ ;ÒR³´˜¨æ)°«uôöêLèÆ=ût¾ªeEJMšê,ò[#æ:ó½öøÔ‹qëx¢¢rAJKY”àCŽÇ´ã Ò"†ùX¨°]UQü‘‘¾˜¢çÿ¹$(¹œ+¯²šdW…‰þkåª/È™'ZRŠ} nS]e/Q³ìæÊò]}k×L/%b¶á +ø Üÿm×ÿ±\\qàÔ÷%>÷dš†:e.çxìË™êFC=ÜSÎOzq #æþ×ZÒø§¥¸ìbÅ<0`Söäì£i>ýr¡¬ú¥:áé —r:Ç@Ú½r9WÛþ¿3oúR¼]KJ8ÖbÂUèà=:г¡;Ò›’i.¥î*ð¡Ë0]}üCEÈíÍNè§oü5ËÄàÄÌÇÙt•Ìín®©1óˆà{ÝX|w{b34Ô-ÖRÖ¨­a~Ζ„¶&, +\8x{ê¾'‡ú[åE ëÒRˆEZW´6\KØ’ór6I!bBÈL+èꌖËf'Ì}·á±-B~Yâü¶†yÚâÂ=>b¦ú¹öd€ìÿp£7åÃÅ­`ÐCÖz’]ÃGÙ4Ì‚•ü÷›Òw«,Ï}©3ÅyGžçs1AÏ¿š™¸,¥D<:Ô76Ù4%xÀû„œÏPólZbâj7Ìm©;ÏOIÎÚ±RMu(§]#íÄÈFî)±á; +”ßD]â“Ùº¸Ûâ|ßC=±,f&ks]—»P±gúâ¢m1ÂS/ˆ{ £…Ü4•ÇÞ3VÆ?³ÊpQZt¬ ꮫÌó¼g"FaþÓÍñODÔð;m…~÷‡éá÷Úò>ØŒ|Ìd/.p€™p×Ô˜ïz¤ã“Î'øäËiéHGʲˆá![€·´ê S]ÍL/&l¬2é à³bT˜”ói&¨CÄî(,öPW˜´9TðùÐ GãL”¡9탱6å¥uæ¿= µ«qi—S|Ú嬀 hDC=èÍŠÞ–á§“ßìHò½ì<Ö²òOMÌålyõÙ|Eíš’ Z‘óÁkÃü¼É6ˆËšöõ@E^zw}6ÉÆý½\^w5K÷ØD‡õË;Г 6†á16-6ʦ#gÛMÔŠql"å|_àÒô‚s õm’ö +ràéö0¼!¥‚æ{àËBÈÇ‹ jþÿÛ¬üc‘E8Ÿ¦ümárÿZ “ÎD@k“á;#¸ÄñðÛÅä×ãIöd–Yth&gÌPvt¾À/ý¶,(?ŸaŒTÈÚ*àx‚ý{‚ýÏJuçùtU•ÍPÉÜQRãwäÏù®ÌW}$¯_ûïãûþ¶Ör»˜(¦ì)éÉëC¤°-91r_Žð±K¡Ÿw% ÷Åöȧ¦ÚÀß/¦¸øÝ«œÝ~fäJ?9l¹3ßídòõÿ¦‰ ÿ.3 Ë +¨¶9õíLG¾Çª¬È*/)ôk¼uå­©ˆ½7Ûšër¨ªæªZëwø¦ýuCTä·§bmúüºœg¬9IvP^Ç£ä„3ÓÕ\dBâþ6d_%@ÎõSB—{±žk=`§m)ÂûXϼŸx:^ÎÜQQS¶¤Pw»¦(öØÌ+ÚW‘-}iΖ޸w£`Ï=5-íÈT×x>Ñ*±iб»ÊÂÀ?–˜¸‹9foŒ¿&) Ü&Æ, à–DÄ }53ûÈÈAí(ˆQ§ö@IŒÝ“#ü€Þû0Yá¼7 r?Ö‘N ål»¡¦\ÄŽºm¨Éú¼1@Ì8T’²¿› ¹&Rà›âç: +ÞoÊh9¶1zöt+péÕe`'mU–Û&ÀÅZôÄHË[Äø™Û!®K8 Þ*+O&x¸ËYáÔŒKØ)Šû>Ïeý³ZZûçBiÅ‚¨(\[r±i¹” @+s0;ØÐÑ’¨gê²ÐÛ; +Ø×?ùÀºP²û¨ÑwåʼnïÍ =¼®Mƒ· ä}¶ô¸>ÜûÄD+¸˜--Ybf[an‡£tØ¿çË*¿=w¢Ã$Y% ÝØ•Æ^L–óí¦2ú†Œ²)9!ÎÆ 9v3-g[Eˆ´LjqgFFþÅðÿ³÷ÞÏ]YšàO;ݽ]êê®Qu©ŒJ)“RJJï“É4dÒ{oAxï½A—ÞH©ô†IO‚ðÞôÞ{’™UÝ»ÿÅî}Y;³3»óÃF,£ƒGñù€wϽç|çûðÞQ’+¶fI%[3ìÖ˜~d`õöìÊ«žòêo^Îÿ!< /ßs‹…i³Tæ¶Óý +{1¨RCj~k{qéyÍoéÇÿåóÜï|X ñnº_0¯ï!¿1ÞCÞV +ÑÞ—½?÷Ãò³ú?/=©þ"<«J™ùÔ¬}èÎæ¥jy 5í”öç<²¡„‘Õ•Ðk6ÇÚ->¯ü,  W€ã¡ãæ¡!¿VÆXã4UC<Ÿ¢ŸRózF.z[‰¹îS¢¯øÔªŽÛ]S³5C¼Ó³a! QRj2FJ[ÎJ'¬Ï°»I€3k3îÁ‡+³äzç‹î£öŸ[{Ÿtè]Ð9â µçãÕ;_ [Öfè‹c´õý¶ó–G°SöŸÚ¾Ûš@\‰«ñµ–Ń€ÏkJ)vC)èIÚ†"z.,¤¥5®M¢Ï¯Ž!NG ô޼W,Ý[|²:ÍhÒÝGY›â÷å=òῬIïî8¨Èt÷¹ÕÇ%¿5Ê+¾p¿@ÝØÖô럒®«†Ú¾.x$òÛx¾ãHwí R\ÕWo:±ò®åÛ¨Ïúo{Þê'ª~WX•?Ú[yWðòú#*tÅÊKØ=Ñ +QyA¯oŽÝ¼ü–rÍûŠq}º·ókIóÖŒ ÖÊÈ-¿Ïû}Òõ ìðÊòåíY^ëòÊ5×Ï„³›`ÞcZ.,m@jµùŽ|%8ÍkÞœ ¯¾A<ê„²ç‡ +]3@ëÈë‹Ìr{×Þ ‹—^´ýè›Â–D4ü¾…ç¨c›“¤k[í`§·Þb®í˜øÄ¼MÌ ¨-ÞØSk㔫žW=ßÙîÖ|šÄ‡§ ¥I½9k“R`CÓÔªÈ,½>o1}s˜K¾iÀ'TØ«Q=¹6¤¡4§-lü.ÐæŸçuÇ̃Qó@T#Æ% \ÄÆ4ì„oq~sY ´q]ÖÁ#ø•ôú¸žÙ±ãà9&܈ÌaŠ7ǺOD•$ ½™°¤VÊKîÜ÷¼ÆŸ_›dµ@µ40Çi Ï Š ¶ßÁÎ,þÒù]Ö a\C÷“f Ë?O­¹ØV2š·'Ñ—Óˆ2cuꑺï?·¿xû–Š‹°Žç›&×GÕ Vl,ôŽKÈ‹X$ï+Ø­ÉîÓQ=¥9㸳 $ÍR^Ê qhäµÍ‰ö£»n)iâÃj6¯âv-M0[B†‘a¿fˆÖˆPa5«}k +Sâ›Å\O˜Ø} ±czz{`–x#¡ƒ®kë—F5¤êñÞ3ö‡åt>î>Õ +ÈyÏམK"nù½ö' ï4RÌ*aÆ 6kÈm­µ¥á£}¦»Ó·Øo†§GÿÁþ’Þ¸‡žµ1þ™ŽK1µ5åªfhÀ§¾9¼ðštimŠ^“°Š8 +“q 9iŸ³°Ð>½ÌI_À802Iùa-±28‹)Î"‹’tuÔΘ}`$hX˜àµ®O2š?¬<ιyœÕ·°£›¯`ÇO®½iºò~Aÿ·mÙãü¢¿¡ Ô»ßÀJcf¾ÈöKïõ•·€»ôUe”>0§¬ Z„Ú˜áw€Ï«ð¼ÀœÜ˜ã¶n΋z·•RLÄ(¥u¢O-€¯N’®.¿Åœö€8^~K¸¼6Î(_~ͯÎʱ)³Œê°Ð¯¦Ö\¾²1N-Ùš´lM Û7&XU›”ë[cèÓqµ1¬§7mOã‹W^ª$¿VНþýò³Žïb F7ÆÙÕPlEuü>(gÒ&fGÆ@n)0W—ß Ž{ž`Ž®¾#Ž9µ6Š<“Öñ±yruZKiÍ ¯¯<¯ý~ëm×¾ Ôù¤…ƒ Ì“Ëý³ÄÒ¨ŽÝ•4³z x/¸ùÌ”•ܹ1 ? ¸V]ÒuóyÈ>twm’Y›¶ +(!-özÊB¬Ýó²±;.6:ª¥4ùfÐE¥9efnˆ8Ggàs.꯮Á[{¶‘{)£œ¸\­_+Ä­«Ä¸Å7¤K[cˆ3ë¯{O€<¹PP›3†~vB'"€ZÙ±5K«Èؤ¼ôÌ;؉…g_xž·ý0%¹úŸ&?R Ð Óìf÷KÚ¸ah mèOé5®táUÇÊ¡Òßú¦;ϤmŒ¾œG*šEä¸YÈȹ?^sÛœÇ\+±%ëïºO¬¾í;3 +)÷À¸Y (x]Ð÷Á9«˜‘а»c*JmXI(ߘì>¿øºý(ô=Ç®C>˜uHÅ@/7ûç¨m+£ð«Ë¯{OhdÒÂCï.‹û7Äýî/‚ + hfÎÎ’Pþ—UŽ0n"uÕ .Û¨m{ËB‰æ¬ŒÓxôôÛ*߯÷ÿô¿ù9üˆšÖðÖ ðB ÀNwXõ0àv%mvÒ&føÕØö<¿Ó7/è^Ÿà6,¾¡•­MP+·ì–…×äK /{nŒÁÏCçòÂz )¬ ‚Ja_HÝO kåàý"«Ü6èûׄ‘òÍóºVÆpÝ{¿´ÞëþÒñ~dc”ñ­À£Z@;§lNÜ""C=@czbEh ps1b08Ïi ©9I°ƒ»œª·öªöOoëþ´ù®á»Ð¾4¨`µ5üÞ€‚ÝÑ q‡‹ooŒ7뛃ŸõÍÂÏfqד5ãzÝktyŠ^ž´ +)3°óÓmG"$ˆ1ÜÕµQ€?]ß§ÍÌž•iNËÂö"Àñ®¤ÚUÀ¯ä­Øº¸[¶2ÚslÄcègèžæã²î?mMÒkãÐu}óˆKñyÄ 3¯,½"^ؘ —‡UbÚ:8´>I¾´öшš©Ø]`Mšg§ìC·üÚ~Æö¬ õ Þš"@.9[Ñ’:êÃ"Ÿ³³À¡Dôøº•±ž“S¸’¬K>rh1=£5®eõDÕ¤Ú¨†Þž4ʸ;n!äXµû—–/½ÏznÎPá·‘ÿõ5ãú¢*Le\GhŽÌª³FVÏŽ]ÄH™ø„†Öœ€®ßÒô3×G‘§¹PãÊ‚.>í’Èw—‡žî®JnnÌãkCFê¥à×±!¾zi +qfi +}ÞxzÚò±oÔ-Wü„º¶éî‹„{ð~aAÈOè Ðá +jµ_A(ÍØXøÂrÿ}õÝ®¯":zÏûUÑ@a ð­%¡(îä364Ü>Ͻԯ¢6þe}èÅûÕ_â"nòKBÁîºd$¿$fœLĶW²2…¿æ×°0Yçðƒ´} è aHMnÚž#7D´Þ¬›šxã/øËÓƒ-?µ$ìûU6#ªé=Qã+Ò&voÆÌE¥ ÌÎȽ÷v¹¼à”ËSV èž²…—¨ãëã”ë¥Q °¢Ð9E¨¯á¬qïÓ¦?­¾iù*¬"TT”ʊѳ‰»ž¡G;ùPÊÊÃDµ¬6ÍõÝ77@ +¨$¨’ÛRËÃJz-ÀóJß ½2£ Î~0—NÐÀéh¤”°fDìŸÁ·çè5ÛsÄÒÅWè„¢ ’ÑÞW»ôvtí-òLHI©ú¼ccœ\²üsÎû¢÷ûȵ&k—÷GLRÖæ­zcŠ|#¨áÁBÀ@ž-OÐ*/'½op€NC^/„æÊ¯Ú]Ëë ª8m¾yzOI­ +¨èu £øs¾yF]Ê*¢f¬÷IýçïÚ¾óMÃÏ."NF4äj?ÐSK³œ&Û3â©$8nDÅì]~ÝýýÚ›®£aÅÇk+[R>>g¹“2ò° Þ«@mm‰[¤ìˆN€Øñ0`;nzwÒLoÝñò¨Oÿ`ÌØÏqüB¼àŸaµìxïæ\?nbölÎKV'È×¶çi5  ÷aKп·Êfûæ‘5Ih2tQB‡+ù¸8Ï›¸Ø¬UDC±¢$UoNJ ßôÔØÒÉ®q©.aæ"‚*A¯–U¿1.r>iú|åMç‘´…ܘwRÚwÜäж·À£åœ<ИبšßRÒ·fÈå%¯30ÏiÇïÍšØúDÍi_xÒyÌ7….I˜XÝq+3 ÉýÊû·6ç€&œO)Bl±*W_âÏ›ï5~ã}ÒþMxžÕx ¨uœ–õ9^«ùgìqÃÝ®/Àg}›PÑêCó´¶Õ bÙà7>U?hÃÞ•YNãÚ¬î•`—Þ‰P A¬2º×ư5~%«+¨ãyÿ†‚Ó¶0F¸´6K«ò}üíµ"®¥Ö¥ ÔÀ{z"JfÀZ|L/¡nÍ=¬d4®ŽâΠï¤q=¶=M¯[{G¸×ða)=´Ç¥…§-߬<ï>œƒŸ‰i1Wn"Sv.Ô‘Ö”MHJÛ¹ ¡®=—ÒFFWDÉnß%çMêîò™ˆ…G_~‡8±=G¨‰ê„´m@žu÷U´6íHõ!ÍpÅ 7{"jÉóþãú©ê#ìŸe·gާ,b¶çê”z ñOS¬+Ÿ.>•µiq>iþãæª8¥ç"3&!1gçv½BÞî¢H²­d¶.¾¢”$?žà6&ðEaè|¿ŽÑÕ²q‡PjØÍˆ™‡ökíqÇУŒsðvÖÄA¤ô¤š¸}}íuß)ÿ4³=e–K3®Á;[ +PM\|Æ%8Øw-¦‡ÅÍ¸Š¤…XçS .¯Í»’ΡŸïNº¸¸¼wøIÊ( gðUÞ_š.>i<úšrâŸowþwöÇUÇ?lJïÆبù%ÉHÖ-`å$ý7ŸçWâZl?·|g{ØöÅö ©2ïñ#5_­Œ÷ÝHÛ™ˆ=7úÁÉ@&”¤>÷/]•/™Wsë>ÿ_R!.e¢wd¬ôޏ_¶6Ö~80¾7.aåaøßž0²:jô5ßlïÅ;£/kƒzÀS+ÀúW=Û°5MªÎQëv]L€) *;ùÝ'v@ Û[03KâZ60O*ßšA_ +k8]>¨3äª$ÐÙW‘¡yV£ëçîcÛ˜ëI3­-çbÂc&ð<ضJê¥dŸZŠßçÔ¬¾ ©*>Ûm;™'Tú¦È•~5¿gU)F,Lˆ{Ö&øÝ15æ›Æ_u?é9²ø~|2lSÖôêu§9 º Öýéx@s{ j”16§PEÖMŸf©õI“˜’u‹›Pb»5hêE-2>t]ñæ$öòò‹öÃ@gªyÝ æ8Q 1¶fX Q„˜a6$4Œæð<¡bý5¢hõ5úÌÚ(îBTÅëNê$¤­1r©÷—®#Ë/»Ç4øò¸WQ£Ë}s½×6§‰¥AÝ?j”mÎà®{Ÿ5|š#W†æXÍþ µvuoiøyØ"¤¯ÏÒ«£¹8b¹µÜZeü­9b¹íQãîgmWz>ykZ‚²ý„?¶öŽ]PH0¾2iÀ5ØR÷ÏÝ_Í +ª~óŽVü©óQ×ùõIZùüHç€WÄôLøÆ(¢(4‹¯ˆê‰ a¹1 e4Et2nÜ&—oÌÐj6¦ˆ×³‰,ã’ˆ#f £ã:rsTKoJšyØŒ÷öxÖ=xoÇÝ?²ã N!+®åc’F>Ö5¢Á×-½ê>ÒÓ»Ò.sc¶û\T‡©Ž0 I «T³ÝŸLºn¿‰9¸ô¨•Üœsɇ#JF“÷që׳œ¢¿7”ýÖ0\þÃÂóÆë/ö—Mù/a€Y!YXø)fã“¶f)µËoáçm›¾Zz×[VmK[9Èéþò?x_w_Í{x”œ…Þm=¦“–}v¯ûÌß‹›Ï|ryñÀ +B `yXOkŒ¨€»J’6ÐòÄÚ$îòÖ îŠš|=¬`6äê{/¶çacÓVz{XE­ ϳ›ÒF2kc*v{ÚÈŵÌΤ‘…ÈX¸¸¨ŽÕ7²»ƒj:X#NKB/ÄF‡ +iyÝ ã¸KƇ_…ÔÚœ•‡ LNd¬´Y´'¹>nÂ\ê1× Mêi]ÂĆ´l Y˜51V±ºâZb¥ãaã!ÇÝÖ/ÞéŠöÐHa]?3¦“’cz!-ª¼ÙÊD$ÌøZ¿~Á´lÊÊÁ#÷ãæ[¶•|0>Ô9 àîu¡y̵å×ÍÇ=OÊ…Àzƒz2òýäÓóÑP}Z‹œfu†§iµ¡iì5ÿ è$|IB+¡Äô#Ã[´ŠÍQì9ËÆÏ]÷š?ü¾,©£·$$tP »‚³‚Þ”QLKê9ÝÛ“ˆ‹ÎG¿w<,ÿCLC‡eœ#Ò™4¢gu…Ô|\ÜÔ/¼—™6ÑZ"s}ãzjsä`Ì$ æn¾x};dîD­CCVRkÃó`þtÌî­IFíê[FiX!ÆlL°ë_¶|¾1ÖñíÚ[ÔÉõQFÅæ¯=2Çé©xˆµ Z™ë)úTL'bƒ˜À¯¿ƒÚ#\ ièÍI; ‘[ +Òöáû1s¿pðI »X™•[ã@§7gÈ7ü*|yÎFƒíy¼7Y§|0e’2wÜCwÁüÅ < ¨“íaíÇï^ŠC`ÿšÞuÊrÞþᬇÏÊy¦AÒÆ#d\ZÒÊ%%A˜ ÕÛó}§³ N|“¤k›ãØ¢íijGBÏ£¾÷HoþÛ*››¶¢ë7§)uÞW”+žÔ«QÓÍŸF.p³š°†Ù—wñåüÈ<³Õ7 ôï,®xmq*f`ô@ü1ªƒÎßu[z ¿ìÅ7¯Ì³11«´?b=n$VFõ¤ŠÈ‡”¿ë”ð³6qc†P²ôºçÛ•í_ùßöIi°µ;..~×+î.HD'\7< ;™C_ŒªpW’:FsÆÄE¦@<'œžÐ99‡–sˆhI«+¢ÅÝëØ!Ñ póƒô˜VˆJ™¸0Àì°šÕ׳:R&."cQ¢ ß­k¿˜æžü{ëÀÿœ0RƳ`1Òpzý +N«Jе=N)s?¨ûók`WŸg6&NÍZx´ŒSÄJ:xx€OQ£5a%Ô…4ígBóÍG6Ç;Ž$€ÈXû%ióíÇ~­Åù¬éë…—ßûg`ÅY+­èÉ6P[o¸G±gÖg@« D4¼>ûÏ]ßy~®ÿ*­'Õç­TBGëݘD•{_‚9{GºêWõSÃjA߯$¡t~°òwSÂÒôOPKÓ@$U n3‹»–³ +)VS×Þ6þ°úªáËÀ ìtÚÂA§m·'̃òˆŽŒ, )¡ýA\™(=á¹î’¸ ´³iu–Q—°õË‚ ç^Š”òޝÜ:¿Nj—²6rKÁ-äF "âö³.¬‘ƒª!vH;ÈYŸÄ_µ=høƒõnÃï¬÷>¹Üžsô¦ìbnÎ#ægÃ÷@ÜÞ), ØY/¹9A½ÖÑI«\’âÙ-kÙÐ=Ñๅ‘ùéÐîµ5‹¬pë}ÙúíÔë{NÐT 0¶¦Y‹O—cÓäÊè4©|åYû1•ðì§+Ïg¬|bÆ%J؇o… RÚ¦_º2Ñq:4­ ΠŠ3ÈKþ9Ôõ)Ì ¿FB +éeœ”M&ȹÅè7Œ‹/zO­bJü€;Çõd£äÆ­9\q@ÉhÈšÙð¬™ÖRb®:ªþÌù¨ö‹À,üRBOkëÅß<¯}mœYé~N.¶?€ö½Ã;4}«“W~a©ü4 8wÎÊÇEtìvï›ÞcΟë'4ˆ²œÐ˜'Ôøç(»+ª–¢ú›Ã1í›A;Ôþq–wîWÛoºÎB÷J˜ÙˆˆžÞ ôcÕÖ§icTÔ¹ø éBp¦ïdÊ‚¼–4kÓV!% °'çê—Ý0·‰™›ó<ÄÊJÕÆ;üeß :ß³*è•ù>+︲ ™ «/í2bz:¤buç(õ¾|IH‹-Ï8¸¤ÂÂàÏÙÅ;S*FsHKkNšÙ˜´™ôM`JìZOïÕ]ŸÄÕ†µ·†ªA¾ý)®ÌóºïâÞêÐ󨉃úÈÌ@—˜Q€Ûµ&­rÚ1òSÖ!‰h‰5¾9ø…­é¾3¾9dqT‡,λÉ;K,‚_¿°9 ? ¸<«°8ôºÇLÖ}ßIjŽhÈõ »³$å—­|üº‚×øL{RÃlL÷]¶Ý*ýl^zå_¼/šl+ €çrºWÇHåÆ[­X|»ì›EÖïØÅ¬œÖQ2?•2rzsf #g“KÂFV·óæŒõ ò„ýqû÷`=‹?,±I;6¦àæ’&voÁ6|3£—ÒSZz£o¢ëÇ¥§‡7_!ÏD¤²¤£`eöæÑylsq%i¾—°Ý깘„YHñ)„Èí)VCR'Àĵô–í龓þ9ä¹# r/¡c¶GUøë!%¾l} y%©¥¶Bçy +ب¾yNóÖ ¿m}’×´òwÚyöõŒ ìŸf¸%Ÿ.=nû!k&5äí,xXC®ÞœÅ_ë××᪂ +عÅW=ßoŒ¢Î%æMY wR¦ÁÁNˆ]'^]|‰º°úªïrJE¬Lë)aÀ[Ö'¡ßúb/Ç5ØÖ»Ùx³ïËÀ,¶è:|ÞÜ,bT‹.©ˆõI3³pqë­G~¥”âzŽ»¸üyfk¢÷lÒLj͹˜œ›ALXè}ëSצ—R7¨g÷®O¢Îú¦Ñ—bJR]ÆA…}Xåñ÷–„ýa›¶¡¥ÔA÷}y8ò¶oé%ì„íaë±ÅW]WZÀ›ôbÁò;l‰ùqç‘¥ lÕÎÊ]UÌ(f®¾Å^]}Þñ}pºãG ™ªÓviweàQÆ!à®NôÜšÃWE\ZÚÎÆ”ðK5h{Bõ– +~v[ºRðŠ¥@‰cfN_ÒÂÆ¼iÎÉ¥¤õ„¦„‘е°Ñ+4ñÑA5£Ù?…»´ô´í°ýníw®çÝ•> çÃ:ô¸û9¾Hs«÷˰IÀ,,ʆ²f!!cdvÆç‰e µç²ò.2kå Zj]P#ÁûýPOA\!‹ÒŽ¾âœ›Ø¸ãf ò>¹`Š«˜mq5µ.©fw¦UBTlŽ\»ü¬áƒüä¯TŠiH5YŸTpõËÓf|mª÷¤ëYåïB3íGÓByÁÊ‚åíBLÏí C×€<‰€ñD¨‹¾)“3Äëµ*¬eµ§­R6ÐÈì´™Ž¨iõ‹/àGƒ +RyÆÂÇg,"Šù~צÌ+Ïøáià«äƱ¦£¾©® ¥µ5ÇïLäü¤qP²6Ū€“w yŸó𨀗±Ã&Üóy*0)è]zÃïT÷·þqíæJâxjsÎÎÁAõ1kP¶&HÅ!éFÆÂäŒ|4¤Õ“è‹›ïzŽRšüè"jP-Á¯O°ª½ÏõËoxm‘yvoD-1ܼü»õ·MG¶'á§¢zzGÌ(ãoO’ËB³¬®¤V@Hjøè姨K¼Ò?ÏIʾ\xM¾¼|ðëyˆÍÂuûýæ/ãjbUÖJïÌ;ð ãŸ_·ÞküráöBÒ*á§\"vÊÁ„Åu„*0§Eq%º#|Ôɬm`È7Ïn_|Kº +4!¢Â^Oè׃óÝu·Š?Û˜ì=ÖRZ"Z7à^ ŽÖÐnÄÍ´Ö”‰Õ tiWÂ ê” ^쟇_JÛ¹¤Å‘ Ë‚*JuÁ)`îyù¬¤ŽØäº×öýêãúC OjþRaÊß/Ëîí­ÈFu\ØÖ¥¬csÎÌìI™½Aªjc²íÂÖ¦8¤¥4e]RyÁ3x/xÌ[HClÈ:ؘ à¤á™Þ33¥=iç¢ã6å02`McFV_DKjÊ/pù€+JvhÈ7µ+ ¦Ö¬Œ‘‹ƒJNOÂħ¼ƒ³n!'0}{ŽTPÒêA]G¤|šë5ìLBÃêØ5ösó:!zðB0Æ®´#iF_Û˜îù1 êS@Åjõ+5!5­noÿ·u.go•ŽÎ:¨›“ˆsk¯Çc +fk\)@„f)Õáyl©óqãié§«O:¾ü¹g× ÆmâÝÁÇ„uDLÇêÈYi-qm÷ɨªí‡°q)¤dÔGu"¬OÅz…Ñ´>Ñý£v°äWËO»‡¦¡ëâx %‚¼ƒúµ5ï³sv!=¡%T­¾­ýÆó¬â³7øóÑY6ªF bb ª©s´†”†Ë˜‡VÂû&g³„’’×¹»0üË΂üNÄQÜÊêMÛY° ¤…€¾ÎéÙȘ’R·õèº9r͇±,iatåÝ\bÁË!Ä ÌŽ¨šÛ•µ]­%V­½iÿ6¥Ã×½wÊㄱþyas¼ë{è:¶Õw¤+kcìªJF\žb×/Œ.f)•þ)bùž“Kú뢿ëæÑ#OBóôº¸FÎÉšD˯‰ÔòÎ?Mrk?\òtÖÜÏË;eÒ”MHYŸ#”¸ž÷žJ@çI€Ö[Ÿ„ŸYy×óÃêh÷›ˆ¢¬U>œr>R%mbnHE­p$kàôE='7ÞVÿÉûøÆ§@Ýܘ´A¬]m3*JMXKmLY„ôEÙð΢ü~ +hg›—·gI7’&)iáaÝ/`?&¬<Â_VÅØ/é½ÿ¶ ízYDHwnL£/¬M¯{^"^PkÓzfÏAiù÷úßWø´Yæ}ÚôgÏsÔ©¨‘OŽÔ•×è3ó²ŠÏF™çþÉýKÛñ”‘y¿,–XJS º§@Þɧìz Í*^¾ù;cÿåßǘ–üÝU‘, ÂV{_·“²óù»›w 6žÇ„ðÔ?©Å¥Ÿn@¿_ÒÐ&ÌïEß £)ï2v½\"à¸õsÇÕå׿z‚ýêï6'[¿ Í®Œ6eåc÷–dÃ9Uà¯-?k>¬–ŸûÄv»üŸƒ€Ãì:Xè¿€ù˜¨;‹ö‡5ñ@Þ)¤ÖN›èÛ“=ÇÇÙ§þÎz·ô󼙃 Ï0jŽùnímÛ×þÔ%À3à»6wÏ!fÔäêµiì…˜AHÈZ…ä´™ÙÓQëVF{ެ¾í8¼ã$Öï: Wٽйõàk15¯'¥ã÷eͻ͔ú¸x?«uÇ!áï8%Â4¨û[ +ryDÇC¤,ÂŽK*Ì‚×#&ί¦Ô@¿{‰*ù@çÓküS°“Ë/š>_}Õý}ÎÉÁî-Kò ²´SÈLBß·xas?'³8x?¿(¿œiK)òÍ¡/&RfÚ:|3 +´ãâ;Ü¥„µ_º³, +kúJŒ7~½5Ú{4¢C\Œñ•Ð|/LÒÊ ?QÎn͉òîÛo3@÷ÆÕ'¶Æjÿì~Zúk ¯älÑÎÒÐ/ž·Øk“‚šßlO±ÛVÿûÊÀÏï½|v`¶ïÂÆX÷±Í)Ô™¨å`­H+ïpEËÐ=ÆQå»Dú—‰,4\L.³?®ü£fèʯF +rosðUnAȅ·DfIu€;Ýü°){°ëæRòv˜:ïSÔÑ ŠÑV¼háiëלSÿÉ|»ô›£í'ÿ}•û?þƒòÿïüeŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍ¡ÿ Öpè?ˆýêðár:¶ ÅE}ÒUõÉá’êsð¼ÅáâØŸ4|rq¢„Í-#a¸$Å*/<~úì¡-8õБ¿íyìt¨‘M"èàÅV ŠŠûþÐQ°ëe°}ròЩC'?þ×%ú䨅‹Î?sáÂéó§O:wöâ¡ .=~ö̹s.œ¹túÜÅC´ÿÇÎ]<~úä¥ Î_¼pñÌùCTh§³_»tòäÅsçOž;]üø®Sg.œºxöÔÙÿ—þ‡ÃQÿgÆDý„øIç'ôOš?¹tèÈ÷‡º:?iÿoþóvš·R6ClBqÁ”Ðÿöb)ÌÉ÷ò‘v:EÃa}|õxùÐéÓ翳T¶.ôîÞ?k'Õ€?Èà%Á¡S'Õêí;y íßþâ9hÄçþ6sgοpþoÏëþÛçg?>Öý×ýÿÇç÷§ÿ߇¬ÿ:ŠSÐ(>†G‰Š+úÛŸû¿bLاò“e8> ƒ»Qß]{¨«á“^ðÞcæoÿÏ>Nö¹s[Šs‡ú>y +8uò”ø?õh@ÿåMÿåñ⡳`§.~ïÙCÐO~røðÇ!Bá]tèâ¹Ó§/|ÒUý¿ÆôœÞ”IBk%¤°ŠÛœgµ4Œî¸‰ÑsR;RF\uT…¯ŒhÍq »/e1#:VÏÖ¡$¨¤T‡æ I=1‰()£„× +Pq=·jÝtwKÁïÞœ¢7.¿Æ—oãË¢óIJ¸’XžÒ‘ªcjÔå´YHŠoß‹šîü6 ˆƒJA_`†^íŸÆ…g  Øk ½6¥"²&)ké µfcŒÙ”0rú‚*Ìõí9äùñž1¾6c§¶ÇUøI=­5måb3613i`´Ç5Ôº¨†Z³9†¹R3»öœýýY —Ðqú’F=ës.ʧ —­ÃO¦ð×#³Œ†´AL‹kÈ輄èÂSêAAxø3Š9½5ÚõíúËÆÏC}çÒV{F'ÂgM"òúâÜòӎï`Ç6ÞÂά½iý.<‹*>4gõbjTÍhŠiØ)£Ÿ³Êøi»| ¬ëgU2²OÁ‡fY°Œu`Œ4Ó»ò6 lĬ™‡Iè­1 ¥.¦ew„ÔŒú¸žÕž6ÓÚV&Ú~ؘê:5Sš i×)æçín +¬Éæ4¡t{†\“4I¹)«ŒÔRj*byÌQÖÉ£æ¼"~Â* n«)MÞ·='R.fäâC:jSÎ#å÷².>5ãäâÓv.!ëà`âbUBK¬H›Hµ)#¹qÏ Žç22v.&ecÂ6)ïæà¡FÝI£'mg£òn'ÞÓ0ZR&)í¾ŸvŠÙyXXX ¦lLÂBlLÙˆ­q3¡6¢!–ûÄõÝæóÎǸ²ˆnH–¶@ ¥qå›ïpÅjEÚ +æÒ-“¦\lÚFkMè5iµj~ŽÇë-3øâ9RYÌÆÇ­MᯆçYÍi=ˆ³”•4sQQ ¡<¢Æ—µ<ØÒ·>iHYCZóˆóq-òrƈ+O°e ­)¤¥·„u\xÂ*Åt”o’P¼öö½oy.2*J«©u97°{'úoüÊþö#ÈELÒÄG‡”ˆ¢õwÕôM5›2«³.2c“SV15e‘ÐÓ`L‹„‘¶ˆHI¨‰¦ž\“³±`YžwJø; YÚ&å‚bFuœž°’Ó–6ò)Á9lñÚhóaÇ/M_©ú›> ŽIÈ µœœ%ߨ…ý¸ü¤á›¯;~H©ð¥I ©:¢£ÖÏÜ,ýgýHÍŸSJ.*g“°ƒ +䥅g•¿[{ÓðeZ‡/Mëe€5›„™² + ¨éÅdž:ý¢]¯üVÎ) %­B2ˆFÞ3x'ï‘§­ Ÿ Ìö˜šÙ’T1[sfvOÎÊèÊÛ]9 ½5¡æteMVÚDiIj‰Õyˆ —s©Y›ˆ–µKyYçàHÒ"a…udL/%§,2nÆ-¦=FÒ!¤eAœC¹t2ញÞãKãð3y¯üAviàAÖ+•åä·¡&C9—D˜µ²áY µ)iÂ•æøº¼›ØµÀ¯† ÈëPSº”M@L̉émi;µ%崎¸Pá›C^Jèy¸‚íγ×7i6ëüܵ€W’4 ð» C?ƒÜe=<2Ô, ëº3šrÞ|± Èq ¹!f"×E-dj:áâQÁâsNù`Æ.—fìbfÁÍÆþu•Çλ¹äŒ]@Κ])5ÔȇŠÛäý «˜ 5?Ë-Èo%í,Ô¶¢çøÖ\çÛŠî£=©Ú3Ú]4‚ýñW“ÜÆÃ9ÇOšÀ®jνü¤çpTA©Î;E¬œWÌO;8èŒOk'ÜqJ…—ˆ™±q1ÛS”’íYZEØÀCÌÌÞ¹‘šÏ6Þ‘+r&{Ç>85Ó»×ÇZ¿Ùïø.¢åÂ>ÓNyÔ, nÍ’ÁL13{ +VFwÚ@¨ Ì#/¬õõÏ“«¢f }c–Zµôylë-åZdšßWÑë“ZRUTI¸±5‰>¯¿Ûüûõ1üÕ˜^€ é˜í¾™¾³þ‰î³ ¶6çdÀSFF[ +äNl öh9ûð¬m ?e–Ò“&.,m¦¶\ >Z‰ îÐ:’6bCÂÈE¥ÍrAD/Äç„Ý)½ŸÖsz|Ó}']?—þ³õNÅoì·;¾ŠMI !¿g{‚Zâ#_ ‘®¦T¤JßdçQדÚÏ_wÿh|Ôú¥ç ìBÆ(¤Çöûf°Åëoz·fQ¥93©.gÂ\ÏXHP#† ¨o –0;îþþ—T¼ë ÒVzGäMÆ)áí@±â‘õ',œ¾´‰‹Ø±ŠYlBÊžƒÚ¶ëÂ׿˜ÊÐlçÉ„‚Õ3 †µÄÚð<²¨àÐ÷¼ñ_Wd#y—™´ðñI‹”“|!a“f 5 Ó.€ý ÒÁÜbÿ­ÜBÿPÎ-æ¦Ý|ꦊXuäÈüRÿm°ÝÜYxXX’ßÍ»‡îƒÜcd,ô¶¨Y”2#‹fÔõ ®ûLP/‚{DÁ¤m|Bʆç\ôÞŒP“³F#.nLv|S3z +öÛÏsΡ;q3ѳzbzgÒÊB$MTú§˜uk£˜sÁYÂõ¼•Ù·PÛòv&,caõäìRAÖ> O[eœ¤YLë8ÝižýĆš\¥¹Ûòyp–Ý™6ž¥çôEŒ”ƈ[–1ÒºvlPS> /fföÙœ"]Mƒ¸ ͱjv[RKkH¡†É”¦”…ƒN9¤¼å1|‘ë瞯6FI×–_Q®mRJbJFShŽt#0E(Í’ËâZFKÒÄìòŽÂOm½£€üu\œv0aöZÊBmÎXéí¯ayÀ «˜–q‘2Éy» ×÷È„WÑ¢ŠbzBYÂHiHlXa5·3 `6gi /©ÕÁYôeßXïÑàæ|JÍîØGžÚx‡¿š¡WnŽÓnD&8u«¯:¾3Ü-ùgÏ/ JhX9“„³IyJJUT+@ï:ïÀzT¨+«£ Þ˜lÿ.¨DÕ”ê˜j$ÄÃ& œž¼MÌÉ9¤¢W?¨ÙÜŒƒ…ÊØy¸¤™Õ±ðЫTs¹c£4\¸ª´ QT4|jGMÄÚú4üLx]¼ øÅûE‰ä=ˆ•ˆå¸‘ KZDÔ¤IDLš0Ó[S€ïdÜBV~Y~?³ âe6{\°ó.‰8p k¥4§Œ=ç¶§{OnÏà¯æ|ÊÎÂ࣌{àfÖ=x7íºý&ç~sëíû!¤Ä_Ë™¨-;N;¿$¿RÜéèçÖÓ¢:bYD…,Ê™©Í –w¦Ì¬Þ€šT¾=Ïé iGdaƒ„’Ô1ÛZ\ip~vc +W˜g·DBüº‚Xî~ÚôÇ ¨Ãi ˆI‹€Õ0[czP ÄʘžÚ6ÓÛýóØ«+¯Ñ§j>jÏ18˜…šÜÉua±"¢§ÖnO“®ú¦É%ÞqäY>ò‡§Wþ!1+Å&Õ||žVUb¯n|_ë9²øªçpXAo¸ÆL‚ãægÎŒI—£êÎã1M÷ñ¨~>ªÂ\I˜9ð- «g{_²x$àŽÄ]7Ö­+¤ÂGT˜Ëq5îêêüôÌPÅo,;~Ìdì¸ÑꛟZyÕöåÊ‹–ÏWž·~á›À¯La‹H§þqé>¹|×,efämäF  ZÂZB…_C¸ÒÑæñI;ÿÜ#ªcu@زãæàvÀ±ó^1ëäàÒ6PSÁ\gÍ÷ߤmƒC`îð+•vRÛÞ/ 8; ,LÞCëñ©q¥¾FÃ{×н÷ËBñû%jOÊÔ{6¢î=V«ÇßÈÚY;›w‰Xy—Lœ²ÝJl„”vˆ9—T¸»(•½_–î. +¹;KB~Þ rÖ tˆåœ}èfÎqóQÎsoºà¸·³$åùÌ ˜Sm‘µ ¨i«€´c¾W9´!ad´\º ôLuÒBk ëH)»”5raµ.ëÒóžáŸ ƒ¡¦1»+’ü"‡’òÒºsË|nfQ(H8€&rüœwßyû~Uþp2^Ôñt Ã¼÷w¼ý#))h¬‘hº€•½i³3¦Å—F´Äò¸‰\Ÿ°Ñ{’ 2®›O²žÛ£q›”6ð?þà’ÿuQ"šÈÍö—MŸ'M7ïBz5iõjeâôålÔÖ¨¶ïòúDË·ëSm‡7v¯)¤(û+•åר³15½èǶ¤ŽÛQò»?*_x;ºüªóë‚‹t:³Ñ4JÆ5û™U #¶,ªƒ[}Ûüçµ·ˆq ™² [“„+1-£=ª˜æ×7‹º°ò~Ìú¨ý‹û„s§µ|—˜!Ãs´ÚÈ,®82‡)Ž*I%©<8‹¹”Ô‘ê¢Z\EÜ@iÊ:”ˆ–RãŸC_Î#ÀZà*Âì5ß,ÐáJt‘ö§š?™îT}þÞÅÂìºYè” h! ¹2 $Þˆ¨Hå%¡dm +qÆþ¢ó‡Í)BEð¹ÔÈVGkލe[“=?®¼jý:8¿º>†>÷tá÷XÑ{À…V’’"óðY´–´…ƒ˜ÝájhYPçÑyPâ6!)¬!×DÕIJ$ÀêàžÀÙÓVr}Î)äWøìŒ}p$ãºYñ™q²ÑI ©6xÍÊxçwþYZ]Á-¿™t1ÐY¾c§Ã@ý‡ç¬€«˜Iµq©&í ´æ½LäÀÉœóÖÓ”mä^Ò4¡MŠšÐ’«ÂFjCäJÈ€¯cÄî-Kä)€¯Pì-Iúw¼B.à^‚<àl…i?Ødi»€”0~áp³€'e¼#Ï3@Ã쮈DÖ¥·öV$ƒ93áË¡&HY°¾‡T˜²0;S€£ä€6ˆƒ5N€yON™0Ñ[Ó6¨‘;«;j¢5çÝBNÎ+‘ä¼Ri~I"Ýør„ êˆ0¿ •ç–Äàßdý9÷Í×8žìVa¡ÿfÔ>°ÝÌ}•uA d=q+à‚€7ùç1Å)3›µK€Vft$tÛPmå`€“å=C?n'}3‰(»àsSF,®cvæÁ¸´&k’² ¹4gÑ#J]Ô44Ð¥§±»(˜]«à½q-àÎ[9i+¨=ê¾ 1#¾&·ÊÄe¼CÒÎÁ[»9)€Í ×PiHØÐ@Ësn5î õ€˜¥~ZbÏ+•CÙõ@ÛYb ß¯Qºßü/8eÒ¼kðvÎ5t? ükÝ5ÒšcF‡ðÌ•éÞ£€%;^©àr€ž ¤l´Ž”Þ•qKeq»€´‘(︕qŠÙY›s>ïPNóRv6bg™ÏÎ/ò€0ò!7ig"V¨ë"NpŘR jH[pÞˆÚPJ¢j}Âd›ˆPá®gmlLìŸóöf=bqÆÅÆí®ˆ¥…ÅÁ‡P}É/Êo÷+,ŠÄÕ™ÝEH#õd2QðÙœäŠW"õ‘‘v²Q=£ÒF10j¶ó1ò8ç½ù<¿"ÿ)ã0¢FjkPC©MZûåûÀp\džEµ`®@]Ïzj ]³°º <èm! µ: øUpŽTW³aY§€µòЛZZãYïáQüÕŒ(°×âJZcL!Bf…=«£‚ÆÍIäõãùØÉ¾“I KWƺŽDÕØÒ”h@;£ç/^6!ò<¢%×nÌ¢/ú&É•Yà$ªÀ#jf³ošXš£Ô†gÈ• ½)£ewnŽõ±Þ¯ù×·Ès ?zRrU +ð˜à,þj`ºïTDµ U”œÎ?K*ÍZDÀƒQ ®»3f!1¢Â•„ç»%µ}çòF\yÎŒ-Í‚z»ãpŸ°ŠZ×p{2>)°oÇÍ#眴Φ÷TTÃF$Í2q`ŽVêgkLÃB¤4¬ŽŒŽÑœ˜”ÐS[¶ˆË«ãÝG35c’0S!!mâRÀ™ì|Ò_%Ò÷ bÀô€Ò°:…/JEÔœgä—”•‹« ºBoOšùäܲP˜YHAlR²‰(í¾ °Z"JÙHMqC÷é¸ ^·j’Nj{`îÎ"à ƒ?\Ã`»ùtÇ}ûõΗZX"µîxY€ÐÛÀÒónù tÎ:7 ËË{DÜÀ †VŸ¶Ñ:÷^<|ZÊÊ‚EäÚ(Ð,! »¥uÔ ø•ëÞxÎ=ü ïá2.f_ÎÃDd¡G—rq0>Ô°X*ʸîÏe€&Ⱥûå€'PïŽéÍ ž±ö ZlIPƒ¾x-gyôQïÚùÀ7¡×ÄŒCHÉ{ïŸÅQPg²Ðy4×­§yïÍ—P³×]Àÿò ,lª“KTã’V58*Ô\p­¡ÂØgQ$È{Äü´ML‡…ÛÞôŸ¸YõÛçÐÃÝ…;“9ïЃ¸“Ûž#ßX›à·”ü¬ëþlð¬´MÂI˜ï¿˜žY#ö»oâ&:eÑ2n™,ëéHÄÄ”Y.L™‡äi‹ Ô'ãZBÙ¶šP⛣VfLBrÎ! „q§3¥¿5QÊ)¥¾¥à4ùA,m¼ë;åŸÆ•dMà¥YÀZ»L5;Mú·9 ;¹>?œ§ÖæÌ2AÖ<4œÚ6¡ 2z)-¥åáóJ1öÚÚÛ†?ù'{ŽFæ%)­µ1:¿ù®ïlÖ,$'MB|\K(ßoújùiíï#“H «Ym9‹ˆœ4€Z£æÃs@SÄÔ˜kEÇ‘ø|û÷qUÏ™”Ò[||hõɾӛã¨â¼U*,8äƒ@[ 2.>ã`ö%ŒÌ®‚ ̉……—Ò pYûðý°ŠT½5Úó}p +~.¡¦6¤ôŒö”Õ[\Ư W„€.,˜DÔ= @}é‰@ù p +¬GYÔÀl‡š¢gAîÄ€.Í ÊÙo?ËØLe\Csž;I  "@£ÇÍ|LÎ=ôà£0mÓÓ¦~Ah†‚WÀ̸ÿ'Ioù×±n{ß³ÏɆ$;è$Nbˆ;13³e13K-©™™Q –dÉbf†f1KÝjFµ”ìsïßñÖÊû¡GƥžgÎ߬ªÕ)òIyGK”ÒЛ~²"iz*ìrÔ´ðRyýÉ’P2±I—¼t²,® $U^ˆ{WûTBº_ÃFyÎs‚û<(ô„üø?ø=§šOv«E¾ªis†]´=EŠójèeÇK\Ö ¨Ã?×ùU¡%Ù­¢ ÜÚóvÀ؇€Éü.õÈ̦œ@¬f }z!Ç®D'[gŠžT\zH_ÛÔ‰Åv5Û!¬ 2˜GÇD…WÊ[ÂÀÌ<¶OÕ2ëU7tûõ‰Ï `9³zÁœ—+ZO µ¶eß ÆéPÆ(šáU‘sÀ™ª;ÂæºÁYR q€SÊ*>˜%'D»œMÞ™f9äÕµvŇÑyë´]Ó8â1ð869!u{µ¿(`ì©*«—Çh ïŠø~=—æšêÕƒü$e{U•¶E1Í:Ï.j…젎ϾŽóëxTpO"ˆ!­s¸hÇ %Ý©¶‡i‰ŽP×`l!ûŒ¨9†úy¦]²N—E¸Õ”‚õ^ä3ï|9ô+¨çу:ß§rYð!øã1ÄÓ bìZü¾sŠ 21Ã9‡Ž i µ;" ¤­õg^ZíÌüÕ+£ÙAŽYëκ¸;˜{Ë9ˆ 9«Yh¸Ï­áì»]·çÈk=Å7G0!%‡rXà3ð[=äqJæÖìþá:dQêÎ!1¤ãþ<j€}d⟣·§‹® å_µÏPÒ.ÓÔQr{§‹’è]¨©;÷Ö™!Ÿä‘Ó t“/ßýìžBƹ¬²AÔçá’— |PεêÓ0JÜ*rÎêTáÝýyLB@[ÝìPUTÙl´_[ßé‡2`#À:Ëo``¼ £9¤äŒÃÅ’§&Ñ£¥Û³/©)Ŭó„~ ­“zµ´â½Ä›Ý ÄkŸ’³ª 0y]ƹnÊ£ü8ëÕ‚ ¥Ax8CKSÔ'ŸSTFŸ³¡b7fðqÓ’´ßOMwÌóvi9w£°¤‚G:6KŽ-’†?×…Õ O(>#>Û¡‚¿Ù³Ø.ã`6Çq‰àïò–ڠ¹n8`ªé š+!/¹ºÄ©(yåQá’½r.Ƴ($ù•µ€Ù*[Â+Âj/`{—VÈò¶ò‚ÿº´Òú$)q©‡ô*¤¨ª„ö\ü ëÿÁ¹Ô,\b›Uß ò‰UI-Ù^jWòèVn•‘RÝZô(ø“êÓcp £ë(¸y8úÆPÓá<z ä bAÐÂY‚öèHy“¤zgž‡Ù˜`f©ÙäCÐ"© X$ÕG+ÂrÐ#‚°…ϳÎc2F¹W<óåUNCõÇà§]e}ÈRÙ4×ô@üöÇ*ÐQ +—{‹Ÿ¬ô¡’íšúþ-i%gcNB²*%‚£¥ªö# O`—R +÷f°1>59×1÷h(…G€{ƒ€µB`ÌýÀ×Ý*.ÖrùÞ,5xøûãUaEh•E÷Š8\ä!\ +>ÎøÌ¡¦­O–>Ö}È»d"„—$õ…€àP)é +äžEV©WÁAƒ9‹›`Ç~í_,çØ¤¬’ýyR¢CNÍ™%ß)£ç¹å¬§”‡Ru–=î#½ý|£»4ZC÷h ¼DÊ:¡£v'Ëž­tæÞ´Oá“B.Ù£æà죴¤°¬B`¡­ô—ÝóJA¶’Óa~µÐ9GL”6çü.Ì»ùßs’´Ga³øý¡ŠœíRÓŠ>=l‰üú’·‡sywçKžìfÿV`“ƒKä²}2£à3‚ Ÿ½J6xBi@Ã%Y¸ä­ÄKÏ‚šy°€‹µ˜í–‰®E1Õ1Í‚¹f˜ÅÎv‰´»è5ýêׇ“Ž_ß0h•òI+ýØWv0&Aƒp°ZãpÛ"¼q-r±^Ÿãó‰¥îRrÐah/BXpõÊDYtséýï<³Ⱪ¢É£f Î ùëÜ‹4òËèˆ>VÄ·ŠúŒ+aKÝGÿ~Ä©©ýhW A®–T/‰ªŽŸù5´"Ç"%Í#c—yU\\ÀH.:2±©A< Îü¦êvxÿ=&js +óÚ:ÍÌk%å59ϯcbÍ•­AƒHènWNÍÙ“S²·ç‰ë㘈C9 ¹4Š}ãV‰Ø~suw`©h»¸Ü¥çœz‰m”²Òx¼?É.€4Óo*¯uk+ëüf¾ÈoWLÁ‘™C:_›`e®ÓRB&¼ø~»KÕÝÁeqµ:#¼?dâ±Zõµ ýû2BÑö<2Ú§¯îð[”.ÝûðÙ"¿ “âRÒ:x!Ç®ßm +=&I­ÏTÓ0W¶x t¸>¬ßÈÿ±ÊA†ö«¬cKU;ðäšðJ§ŠYêÖ0ÒËBódù™ÚkõšÅ•vëPrÑ{‹ÄÔ•‘¢Û¶1Ì÷"=ÔÊ ²“K!bºAžqö*¸èÃyrêþ$! +0Oòá,9ɼckù|³qß1ÏÈuÊi9‡sÔ4ç"£À6ÇÈ^Æ¿µOSÓÿ4p.sXG‚E jÅ|]$öF±uŽša_ ¤Û&0¯ý€Eó´lŸ‚G>ØxýîüùR{ÞåÍŽì‹Öá’¾yÀÚZ :›Ø‘q¤)i%B×9Óµ­;ãR<ò’—a&uo:÷ÈLOÚŠ÷>¥„ïQðnà)0?Ç+LâÉ +}l¡ µ*¿ª\èS½ïñ*›G½š†n§œY²;^|o­vÛÒMx©mA½öÄ•5—² j̱ø¡Ï­hôëÊ+ÝZü`þÒ%GGºeøø Ž…qk)ùN9à6Ue•[ÁÃA{³ÖYjºèÙæDî¥7Nt<öà謃GSßíÒÕ÷x!>Ó×´ºu"ÑÁ49iwóh`Rd§RÄthªêܺêfP¯]n¼Ò«¥ +›©e^-2Ö:ŸqÕ§ 册åuhlTÕ5~”kXÄã%6l¦!¼ +DÌÎHÖo‡³¸D07$¯–…ò‚û ,Uuø«‚<ç1 ¸v ¹<†zt™ïYÜ®äSüf¨U.d$bØÀĸA^;X:£f ÝúÆ)ÿŠø½ËÈ&¸uÐù«ràY~Ä€ÇÀÜz4|šWWÝbU‰ø;‹äÔðREóôZ.o —ÿ¯³wøL¿†T2Uµ[•BƾTÌöê†×W…5! ›0²)=mS b&.7°Â—ì(± á•ÊöãÍÚéàJy³ßÈ…¸t¤—TýxdW„Ìâjh½9¼Âe,„K‹I\‚ZX¤à2OXUº”l„W-`¸Õ&¨7tÍ«¡Âvg‘ï¬ Äd7tîIÁÅîNR“ól × &߈9!:ig"åúZoâÏÛ}¹W=wÈh9.HÇ”B*”S<6Zß86R‘!=µäp$¨‡rtfž”âSˆè{ӌܽ9r:tþl{$çúîhþCÏ¥ðÄ$’x¤ÄTŒ˜â’旲ஙôkÖ‘øs‡c·} Çõt¸_MÊöʈ™^½Ì3_#ñ,Hh>m¥?ñ‚mzŸud cŽ TÒò +6ÔVGhIT4‘ +¼D¤G…Œö«)ù!=Ÿ2‹*ƒ fA&º¤ì’à z–k† wβŠüZ|fÐDÌw©hEnˆ iœc‡tËÊy€9p.)*Ê1WòÜxÒ¯g¢¡ýW’sIIi~5±˜x‰G‹KuóéYn-)×íMëúíšÊj§¦¦Å©þ0í×Õ|™ +Ö2‘A µØ%#gûA½¹õ‘ßPÙ^ï7ÿUOŽ—ùÂcÔá3}Zt±…Xxb&ú´¨äC&É©à3ƒF!ÐRh½Ú;d“ýjr¡WIÌ +è˜hröJ^z |¡Ç\ÑìÐs6=Ÿé>à]âr\zT|@O.ôè¥#Ð{CecÐ"¬ðhé%^ ¥À¯%f¹ä¸äÝÙ²;ó˜h¯YTã[fQýàwæ÷3^c«pâ `«šàRyãÑRuï¨Uh-/`ˆ¼&:âxE ã@sPq²ZÙ­g¯pY'«,¨[ÚÊú5¨•4Ÿ^\iÓ3ñ# 0Èz!ÈýâúàOZfÑ=fTÖúBö­ðJU×Ñje`¹ºcàU'+5C€õAÖâ2‚f>/]‹ET 9ðèIùvÈ“FóxEòx‹æTQr uè#ÀwGF @‡œLâîlésŠZ]ë¾”œ½Ü|àœãaN@†´äöÒ6›u}c(î’u¢ø•g‘в0kC%Ào ™AX^B›”šµ?±ÍÃ_9„ä h¾E ¶jð™Ë#°»^i…À ˜Ø£â`÷'a-퉧·³nùä¤ÂžM°NÁº3z.õ`4í²u4ó¾o—Ò²ñ^)Ë:Y ñºa_DE[ð!B²[æ{²$ʧ`  Œ«¡Ã]2J´'éV1Q`žêíJ:`gjñÉ¥ì%rɉ…=Yb&bS…ŒsÊ ©>mŸeÜÓÜ2Ç)Õ§+}wd$6aýй‡eOJJµÍò~UC·W#d[§°±¶ \RPÍ!‡ºGEʱÍÁžLÝ‚kök„’‹õë(¯š˜çÓ“ +|zJñÉ2‡q²,(w€ÌâR‹…@+?‰ÅКö1x…MqÈÆÁ ò¯ŽVx¬,¼Ìf­Uõù--ÐúlØÌãý¹Êfþ±Â ü±Bǹ%¯æ³®Ì>ãŸn•a’íR: ©k?2Ö´…tB¾CÆ(<”±áûóÔœý¹Ò·.­€{ ±ö@¶têz|€ï‚ë‚·±$ +zŸŽ…LD +@9ÕÄ&¹TäL¯–‰9ZTœ¬q…Áe +Òm$d–¨Hß2!Ô`MÀÔ,óYš•> ýÁeICx½zèÍêñðš &`á0¼F1ðÿ÷7¶ˆªÿ³^þѧ'äú ”’² >kcþ¶ˆOtkh¥› èHtîa¹º/¸\3è_Vø-lº×D-ó19N=^©ø0 ÅA0>À;:K\îþ\î?È KUú€ûBè ¨.… 7jŽ–¸¬QÀ÷„9 +é×ÓËþór|¥_ÏÆCuï^æ‰NÖÄ gW¢b¦ÊžæçõB¨¿t—Ÿî•ÓÑ•¤>¬«þplW€Ü\º9\öÐ6GʆΧƒ|Šô(AÖ— Ùn5ŸØ°½èd€})*r +ë–5|´/ˆŽ9ìp‚’îš&¤{ ¦@.Ø›A½vÌ"^éq9' ÜJÂ-ñüêòº€®¼:x :—í½¢ãŽ,„‚‰ö˜«#œè[A9Ÿ6ñ¹~-íÑ2û@ל‹”¿ŒQ(ÖlLƒeÂ@OþwA êQIv)êû¯=d|šWI jie!¯›óü\/íõ/îE6õd•_ýç*_ üœaU²V9i +ñܪ`aìzP[RZ~@Y^R6ô„uµN9>eoªôñÎhÞ5Ûlé3Ÿ–GÞ›eÌ0³ƒ€1N–Ê[Ž-4d@tXO+ñéè%nh½W/–8µ,¼MJÉY¾îÈ(à!¶4ðAŽÆ'Ù5èx?¨™ãUîhËwZqë*ß­T÷‡W¹<—†”ãÕÓ^“xd¦‘ÿï“ ˜¾<‘m}‚ ;ã~()/w**«ò÷].Õû~à3•‡iCÆ*Þ˜§¦úMuƒnÀF.³@è5ñ+<úòŸ±¼6`®‚ô¿!`$dÙ¤ØX–M ¯Vvz—èx§ —áÔáR*L¼Ç‚Mó™¡óaõSáªþ£eIý¨ÛãÊþÐ:W×îÙß ­‰‚ù +i(—Ô“AŸ°)!µ,lbÿ\a1ÿï‡w²ÄaC5ëTRvçËžú4´bhä ¦ßÈg{ÍÁåÊÎàru¯\·ÏÄ¡ºõlœß,Zæ¸úU"Þtà÷m*6Ê¡f£€þpO€§xA²ƒ6HªÂ&IMØ"”œX¸ì‰‰…΀Æû4µBË­G«à<¶ü ø)láС5n·Š >ƒ ›+ZŽÌ5=G†òÚ°®¼* ° uPèü’OC†yUÄ—PJDnU}Ç¡LD³+E ÛáQ²1G`Ì&&É®¦"ÖF€÷Œ’²O´5­A- gÅÅÌ’@lÍÂCš^b`BÀ‹¿7íËE̽ü¯µP!BbžK†ˆ°ÎÂ_,÷¤ý²ÝYø8¬‰BF.ÓzïòŽLUma ‰a}ukP'`yÀuº”¤lGÈ~= øµ¼÷—¦¡/d@vÆ>*Þ*}¨¨Ë¸¨nȽé×p˜=¤ßL´[ËgØ´KËB()¹FÉž†^¸3GN=c{ òhPÇDôjx‰Mêo†»3KLy$Å)¥e…Œ@ß ¢rÀðy ЖWC{k~SMWp©²äF>ðvfèÍÆ&~¥¯äaØ$®ò›™¸“5&%¼Â ýíM¯rXÐ>´×À¥ƒ _²Å€#kVWê&Ð3#À#½b®UNÈtyr…¼Ýyj¶OUÛâÑ6ŽºõÕ-PviE\¸.¯™/ð0‰AÎ*/wëëú½¦¦±¢Îkð½.Ãn Â¬‹€ÇµLl` ø©Œœ·5ÃÈvªkZüƆhí-¼^3^-o ¯I>Ì Ü+¢º`C·¡¼Î¡o‘ûVjGݦòÆ9{ â F:üØL,86‘K÷ç0‘' ýôÕŸ65l¤•ºÕä;ÐÝI䛃iÔÛ ›¹L0_˜È+^ã…×$®qêytð‚0´6{Yˆ õÜ `Y¯ŠOuÉX0·ŠUæÖòH>‡²2 ¡Á€§@Ï_ødBŠKÊ*uȨ€mYèÌ¿_χ@Yô$=`æ2«|Ññš°:°Äç»A6öh˜e>5޵&˜«jŸžÇ=—åúvd”T{€þmŽ£_¬õ—ÜÙ-yø¹Ð¯Ðírfo†’êX¬–8$ ’ò%­Ä +2ÀÆdÑ}ç"93¤rNÌ"Éò@Þƒý)r¾G-æ… B^ôèÉ›^¢"þ³N'¸Ô´Â Z²u]í¿Ôô"¯ò96Í«l-%eúd”œ0àè#—æUÑò¡}¦ \Ÿ‚G é*ë‚†Êæ#³¸öx‰Es(ÑqÐMÀ=H¨¾Ü:1ð.Õ­yz>aœ±3Œ|¾;Žzã×c3Ü*T ´2Öút5mÐy-›‚’íŒÆÉ§g¡ým0ǰ¿2¬¦¢Òg¤Á¡µÏý9r¦\[@OÌv©1q-1z>" ² u€kküЧ%QUÌçñüœMpÈéùúž²§Ðšüÿ‚ì\bÜB)˜€v€š;Yã ÿ³Ébý¹Î¤‡ ttÈÈ"¯ŠBë¢÷áuqShEÜj¤üxMÒ|²!n ­òD^3‡z°HJ~\é7V69õ|šC[^°Ôô}¬…è0¹W'dâòÈ]½¤Êe¬jv'=Ɔq¿EÒèêÇÀƒ²2‘wkgŠ=”wëºV¥Ý ©\õ¼_ÕÑÐ\ÀeG>z~ÅkWÚ5mJ¯±ºÝ øS5”å=zJÑ¡i—"c=jJÁËBÉÿ®‰þ°ðÀXp(>ƒ°äïvàGÍGF6)l¢–ø ä/”-VhIÜ`×ÑJízÀ<+µC ?Ao +m šèhû<)Ù6EŒq,P3Ý€y¡óû>%1Í1‡<œ%Äú¬RÛ$9aûÊ:Ž{{lâ1ò G@nC¹äÔ—‚šjq²ÌeAëFN5ãPq¡çœHA¥€Tqp~5ýž ¼¯CJÎt«¥‹”ôÍ JüÖ()ö`åSâSí‹ÄÔC)co†g›bW±ï6FÊžýq-·KÉ9Ç:çX#âtt„¼9áçqb®C! 9e|̱N,úÏŠ¸þ6è:7z(Á6KÎa¦ú¤ô“ðÿ€žþ¼|=FLý’2ÐJ}*r¶WAÈ:œÅĺGúú¾€¡0ðU-ÈÀrBºG‰O êñé~&Õ£¦—øõB~x´'ê‘s í g ñ?;ÅÏAþ B9\ç{Õ‘ä†K +™øÀ`å€Õ1 ÿ‹‚zBf@KÙž‹÷éh0ˆw½z‘d]àɤB‡ +q C¼ ééðð,h/ xM©OÏ@‚Yéîñ‡³xÎÎ$!ê`ñÿÖDu¡¿Î„ñ¨SugpEü>¸Dï‹þ¯ŸÒ’²Ã@³+,êÉ_|¼VÑ8¨ ¼:Ž€¦‡V@®ÖqLÔÒÈKNÕ€¤[>s9ðð?¼ +XÛÈgMT„OG-µ+è…N#ðZýG½Ûؼè·T¶ºÀÏýFÊg$z´¨$šÏri>L;ô ƒ»€cü ·B+•]Áea…KM-öÙ¿…K‡Îå Õ½j±(¼TÑ2U4¹•"ŽÏÀ&ƒÏB´äÒ x +àа™Š:6±É€jŽ×êg¶ªÇÂë’–ã% ü[©WKÎukH™~=9ß«%åÍÊ=qp>}EóÐÀp¿h—‰‰ ɶô›Íþ²;;#ȧ[ø7=¨ÇÎ9r²sëÿf›Æ¼Ù*»·Õ_xu£;çRP…K ª)ù>%½0òƒKFHrËH)>%57¨f”:çèÙŽEÊ­Ð|!Ã-eÁœóÔ ë4ôÜ1Ù¹@J¶Ïá¢m3Ø·Óè׳ôô­qbÌÎ8ê™KЉvH±1NP×N91e¡nKùÙØ•}iwü½œs+XÐó8¯œ–ï¢"ls%Ï|jBæá")Õ:EI Ç>= íÓ³mÒÒ.>) ¤@½c×p »3ÔT§Ÿä×á@æ!¤ž™è†^ìWQóKöæÐ gQ¡ué£>/ íï©YÐzCFÜ럀  s7µذÁ¡>ªg ÌtlÌÿ:Ú§ ¤Zg‘o*TtØÂÀ‡¡ý2p!Sy]ôÀ‘¥¼!´Äã¸õPf¡‚ù±Bgh k€q š âKŽVx¿‘\вü:Rž|V°¿0„KÏgyMU—¼-1qGK üŸ«l†CEÍ?,½'eoL’âܪª:·VR¹?GÍÞF> +Yø àg(w9ñÉ “ú´¼CÊ*Ùš §N Ž j˜Hû,.Ú«ÄÄù•ø”’V1 -•7ù—Ê¡uÉðre÷󀆃õª8h‡Œ”¶;^ò`c¸ìÁúü¡mõÚ_vëùô€IÀùë9èy\5tÞóÎ6…}cl.ý}³ ýÐ6EˆÙD>´Oa"ì3ôŒ웵ž¢+榌Ÿ¶ºó·Ï`ßAϬÛä|Âjâ±cãS’³] ® ´ìýqü;èyEÛ5q{÷Ü>OËÜÇGnt#ïÚ& ‘ÐÚì!¨ÿí²;Kí…——;Ënì "¹çññ^%>y{¢ìñæHÙCû!Þ)ÃÆ¹å„dë!zw”eüXø›uœ³J|rBŠgñÊ9 {t8YòÀ9xá—㓼RrÆþ$îÝZ7âŽkŽY¸=Xxs»?ç²ké—Sr\ó˜H÷"6Ö5OHÚÃGxæ90Ïæ—sÎYV¾sŽU¸7FŸ‡zº=T|kwvß¾€zçP`Ü*h튒 ôÐ3 gbŽ¡gq´|´ä–ÑŠŽt|ºOÅ,;2Ð_Cå^$$ºˆIàžà¼*6Â-RÝJ1Û:OËp+˜e^£Ø1‡‹±BkRBâæâñö(æ…äÇ"9Õ>KJÈèùꙨðò\³7 +¸?Š~î^ æ†MBIdÈ †w/Ò +ÜóÄdÏ-)/hf`|&Ü©"g€±Ù¿\nÃÜ_ë"<_料SV^Ø,}tôþdÐO·áUàfȉ–aÒ›å!Ì ç,%Ôâ`œð.¨ecþ³Ìã…õàóé99ä‚[Q.rHÅìµ>z¬}žÝäíMR’@Ž;˜‚?9˜„Ý?\(¼o›ƒ¿‚~¾?Á.éË«OEþ.¬‘ôïÍZ;êŽm÷zgq½~koˆ±ÝO‹Ýe¥nõQ"Œ°K¦ú »ƒ¸—»#¤¨µ!J¬¬:û§½Ü[·”žs0}¹5¸3ˆ~n%EŒ#ö' 1†¶¢ªšüó‡@ë +j.Ôg›ýð»P¬tÀo¬w_qÏ•½t/–¼´Íbãö§ùpÛ,æªÄ6ƒÚèG=ÜìÃ<ÞÂ<÷Ki¹!%«Ì +=K?EJ°O““@?¿=/{´7˜u»¯àÚ&ð½‘Ò»›c¸XE]ò÷›=ùwÂ*&Ê9‹ß‚~g0÷÷ý‘Â[àw8€V»æÙE>4!Ó5/ÄÎ +1{ÓŒ,s[É5CSÁ…åÎ’«–ŽâßwÆOB*zÉÈá Ïß9æI‰ вPN)#?ò-´¦tdà³üjFIx‰ÇlKqú·K©¶yLÌÆpÑý1àÑä„abìz/úéþ%ÕµÀE ‰²Nâ#­„¨½a䓸ý¥ŽÂßV»Knnva¹&()ÿkY¼·mŽ”`ļÙ…ž#żñHÙe6ð·ëý¥äÕég—>_µb_¬w•\_ë*¾ºÖ »¹7ˆ|nù»ºÜŽyú¤hg”¥oÆÜÑ6À.¯t"ïö„¹eTèÙù 7ðû45uk ÿîp:[% <–0ƒôðÁ$â™ °€m +°F?üÁöâ™cž z‘ã‘rʼÐç_Ï& žjš²Ïé³Ï:¦0±Æ»ï{4t #Ž[! .²Š¶†p¯L %¿êóÏIE§GIqŸš³Ï9€wXÇñn).é×H% &Þ˜}cùXÝ’uÆò1÷Òþâ‰uûz¶+`àQ*6Ü6MO·ú8œ¦¤@ß#²Ò ¿kn-½²Ú…¸³6@ŽöÈù$¿’œ{8ƒ|ã’aZRŽ:s;ˆx´Þ‰|°;„‹³M¢ß¸¥ŒB ýYöYj¨ý×ÖÔÓýaăÍÞ²[Ʀ‚_ÕUy¿ntÓ"×»X1ËqÖÚ0ÖÛ1VZ·¶z/–?"níöcŸ #@®pÍ™¤¥ŒQö†ñ¯7zKo›;s.O‹c¿žæ%ml)¾¹Ù vzøAôF?îùFöÉr[ÞÅížô_ŒMÑ?lö=·Íp˶F™™În™m–ž½9€{1áVOÑMçòµkõv¹5ãüæòéæ áÝþ()Þ6AŒÝé/ºq0 »g/yh›„?6u•Ý&}µÕSúüXÍ#Aµ´Ö›wek ðæÁ8âÅÁò¹ôµm’{8Eˆß‚?vÍñÑ®…JÎþ´ t­—±ÒAz¹ôuÛÔTxa­³äºu霡¤ïc^úlŒ÷/%üÅÐwX@ëS Öà ÏÅ´ ´KAÉsHAn“q1ðû+ÝùWMÍ9çÍ—--Å¿YZ`¿­w¢îïƒ1;%D¹fié‡c”øÝÌ“ÝÔcskî/Ào3ÔåŸßîǽò«T»”]²=ï ¸Ì>‡~»=»³ÚUz©­èЦ>íçqÆ›êë²/ìõã_¯v]Ùì+¹­kÈ>/ç§|'ç§k¬/þu£óÌÔ†>Í+üq†—ý­¢"ÿœøŒuš³?‚~aÅ¿×ðt£ûtgŒ˜¸ø>óÈ’n95wójò¸)Ô«Õî¢kʪŒõõ¹gW»÷+ò¯šà¯}2GzîÖú©¥­øŠù}Þ9SCÎ9û.Ú¯ Y:a‡ãô·¬¦æ`Š]¸ÚƒÚŒ{fjο¸Àÿj‚ù÷¥ÆÜ êúü»¸ÈÓëýÅ/ŽÍØœƒñ¼Û{#E·vFŠAme_’WÄ}»Ñ÷»GJÊ <ïPrPRVñæ0)r©µôúFWé­Õö‚ßå’¤SúºÌ3ÛýˆÆVä“~Êë:ɧ¡CßÕ÷( éö…²çÛyWVZÓ~Ö5$œÚ.}¨iλq8EÎèxÔÃYrêv_ѵ•ŽôsªÚ¸Sƒä'ÿ€¼þI?#î›|â©åVäÃÍ^Ü CCñEc}Ñ…µ6Ôm}Cñ¥inÌ7ÄW_,7ÃîÛÆié¶ VÎÞ83u­ûh³~OS›õ£¢"óôr[éÍ>âëOç9©í´øÃ1zÊZáÙR;æ¾±¡àüvGίk2/ìv–ÜÛíE>4¾ÏûÅ6!@ºª»cŒ´åNØU}Mò·úŠÄo •)§ ÕɧV:ò/Oñ“Okêà/Ö:i–æâË›=Å7¶ûŠolô_Ó7^”‰2¾34äþº3ŒzµÞxá™ã“ì“̃qJÜö0ö%è³Gk]¥7€%5µ‰§A'ï 3RW{ÉoÆË1Ûƒ‚œÍ~rÄÒÇÂKºÚœŸtµÙg¤•É?O +b¾?˜$¥ì‚zÚC>ÛD<Ül»ÖSxÃÒVpEÓò³²:îÇ¥¶´ ‡3¨è –Gw.°Šwǰï ïµ°4]Úè.»½ yd7òè•«;½è×ÎqRü¨ÍÝ~ô“­ž²;––Ü ÛÀOd’äï·‡qs|Äî §Àªä` lé”abÖO.S¿VˆsO««2’ ã¿Õ5ä_lÃDõyÇ8moûFS™sf‚ÿi?6úÓLô§CÌ”ïÌí¸çëý„7úÆ¢_§ˆ±Ö \„c +úî—²»óÂȯdåÉ?jërÎOr£OMÎpK¹Ø½aJ¼uœ’°Þ]zSÛýÓF‹ÿtœžôÙ‚ ó›qräçƒè—ŸMˆâ¿F½=û7© õÖ¨iC+öžº6㌢"å”T’òí ;áË rÔ?ç™g:‰‰gÛŠ_±5Häæþ ãS}MÚéíÎâóܸo‡±O>ÑJ¢¾²´á^++°ÏW?R£§8@ßžnuî¯4ç_Xn*º¬®ÌúI)É8miÆ<šfÁ~ÕW–@úøx­ uo·Ò¹oi…ßµ´ÁîOó_|¡oLýeˆ›»ÕC‹3}@ÞØ Fm^o¢mô•ÞZï)¾niÍúUQZ^‘üƒ©…òÌØJ|²ÑGx¹Ò¿eh(¼`l*¼¤¬É=7+Ê9ûùÏ~rÌW}è·[C¤H]]þÙEIÆ©IvÒW ’”U5©?Þ§žß)}4"Š>=H8}8Í…ƒLÓ÷RV¥žÒÔeýôàü+ò‹ú«¯ø·ÿ1ÉM¸à£fmvßZï¾×[tkécÎUàµW6º£ÏÈ+^}³1Šˆ²É¨…ÖiRâð ]#üÊZúžñ}ÉïËá÷@¾¼%«Ê<²åˆƒV:Šînö#ôÍe×UùgtÅ——{;ãŒtˆ³% _¯÷"ê›`WôïSc_kßç_WUå_þPrÕyF[éý9~ίÊêâkë½”xMUÑ…åvücMêú?ë”¶¶à¼¹u{Qœw‘wýM=àÞ\Ä8+á»RÄ¿¹ñ_i«³Ï?^Ù/{â–cSê’.µa¢¬/º¶=RA6wP"ç$y¿“~&$žšeÆ~5B|þïõÞ¢g냹×÷FÑQ^eEÕ‘Ç_ï̼4Ë~ñé<ÿí–æÔŸ, i§ÍMù¿XÚà·æ«ònM‹ +¯Ùg…x¯ŒƒtÌâ¢v{a6;`·Ö:J®™Zs——½6v 3&EW´ME·UJ¿œ¤G|>FyýåjgÑìé稗¿}¢—D©D̽qøã•ÎÂß´µÙ?M1“¾èF¿ùdA˜þÃ7ãtÞóßþ{‘ŸõûF?æí|yÆ9EEÖeUEú™üëáúŸ¶Òßþk©#õB/?år75æçí!|Ôf?xKéÐ7ŒÍÙçæù±_ôcýOìÆßæùQ§?â~h#$]½·Ü†z°ü±ìúfêÁzò¾®v¥óä=ð‡ŸÖ¾jé„ß>ûjw„’ºÑ‡³3„{ ­©ù¤¸x¿—`jO¿<ÃIøygXÛdg,w`žêšŠ7·_ÛèB>\í@?œ§œ'Æ_ùG?%î’u”’(½ý\Y}J[—q~Œüî+•ðí÷Û]ñ76:ÒíMâͽùW¬“ät+È'uïa—‡È Ÿõá£þ1ÃJüÊ:ŒxlÁFŽWÄýJI¼øÏµZªºuV˜úÝœ0æÛ­îÒG›½ÈGÆæ‚‹ÆÆü‹Ëí¥· -°{Æ–ÒGŽY1iœ_°Ñ‹ybhÎ>oiɾ0D‹ù²*çÞÿLò~n"ÆüØŒ‰9½tF 2º¦è¼ª:óÌ3‚gÿ`Äßù/ECÁ•Bܯ¸¨Ûÿ·óÃÁ!Ñ>EIu‚ܲ7^üÐØõ­¢üåçRQÄ׿ÎÒG ؤs‚‚wß-Ôáb¶GxÅ›½¨g»ý×7»r.›ZÒ~¡ÜÿÔÒ’qÍ1OË_j/{lªÏ¹¸Þ‹Xî*‰ÚéG½XkËÿu£õPó¾ø2;éî'õEovÌpÀ[Ò Çj«“~4Ô¦ŸÙìÝrÌc¢6Ç/ÊKŸ|‰O¸ú‰¡ özp´¾6ï¼¹>û¬±>åô$ýÕ—cÄû ¹7ÁÊ;œå#÷fD¸µì3Q¯+ª³~ZàÅ~¡«ŠûzåcÆ/‹Ä”ñŠ„uMøøÝÁ÷¬Õn^ª®±èâbeÆ™I~ö/ÓBØ…>Jò¥åVl–g¾Š¿ÔER6¤þ¤jH<­oÊ8ki*þm½ƒðd±ºðתâçÿú{ X…™¯¬Î;§©Ì:czŸÿ«T÷o}UÆOkmÅ××z‘$e/?c&Þÿ·®™p¤±·‡K,·—\[mG>+½:ÇMùN]]x¡‡™úý»ë§ÿkˆûÛR/>¦‡óesñýÿÿþÇþí??”<þÇ(ùÉç[Ã¥¹%O¿ådßülŸ¾Ö‹¸ghÎúY]ŸyZû>眼2óì +î›E^âO]¨•¥o¾lBFÿ¥&«kó/ß:½ ˜ËÒZpI^•úC7úÁ§Óôg§–:roõ1"~ÚíÇ¥†´å5¶irÚð&yž:¦Ï]³ˆ—{cEwUõù—êPÏ&Åy7wG˜ùk=ø+m%·¶{‘·ÐOM€ÑfyI§–>ÀŸï S“y1_­wÀ_l ÐÒVÚÑ/mÃèÈÿhh¥'JJþÁXéSckê/îy6 +ò›¾ yk©ûtš—}z‚‘ú©¡àWû$ê•}7ßö;#ùê?Í-äHyUÙ1Z¿ç §W[ ¯‚~~½Öƒ{}8NL°ácÔ ™ îí ÊV»ѫݘ‡+Ý%wW:KÇ#žK«³n/u"^·Ó“~m'ÇŸß"Eω³ÏŽ3’¾œb'|5ÁLú~’r~ˆ•qCÛ|Usû³g¿|ûZào~ðÉYô €ç,mÙ¿˜šNß'ž_icš’NÍzüYÚã_þ6*Ê{ 2P’Lûƒª"ôQô׳œ§ŸOÐ|¹Ñ“ÿð`ÛOúAV‘u5 æýj6v¥©N;­oȹ0ÍKøŽùëß>–¾úAÛ9Wž{ݱÈÄŒbâv€&XÇð‘{#ˆ—ŠºŒ_> _~þÿöÔê6n¦¼äØõ½!Jª}—¶?Yúfµ§èºö}êYÍûŒóÖf±®ýBß^zÿ`‚™½;DIZï,º¾Ý—m¤øîȶúÎÒ§;#|¢mºN¼ÖÇÏÔ6`nNpÓOwa"þ¥©È=w8FŽ ª„ ¯¼œ·;"‚m `K]øçÆÖÜ ††´¥‚¬ïÇèqŸuÂ_þ¥vosˆœ$«*úeù#5r­ƒö®õð†ˆ¯?WVfþ¤ªËÜŸ}ÚÒŠ|lŸàÁÝ‹<ÔFüÞÁ(=kw”™cj†]QWdý8ÇKÿ~’™öí8=ãüRöÝÖ ¤L×L|¡ª.¾­*Ï9''£®Hûn§v÷`š–®hF¾T7—ˆ~¾9Œ‹¶Î +[„ØÝ¾²{††¬ êªÔŸ€Ö=ñ«¸û<#wc”£o#?qÌ×HçDÄÝ\„ zÖv°ðŽc±è…uºôÉÐE·BÂÞ¹×ð‘ñÆðžøÄüs_W—w ZsÙìA<Ô5üfî€ß³ôQ£'k‹nôâ?×הܨé'Eî#6ÐÏW{ ïoäƒñ̾d¨O?½ÓGJÚῼ J;·(Ê8'¥ÿ°Û…~mcå›;0oTõ°»»CBœ´û¸þä“e÷þ.—Äÿ¸Ñx|8Ë̳Ï×»l +—àQ²°^CEU^ÎÝ£%,P÷Ö>¢ïYšà×­ƒ¬Ü­~zÚ/þ}cÖ¥ar,¸îë‹âØog¹ÉßË* .˜ÛIoAMe9焟–Ïu*¹$ûb}½[^.4u–=š/O5”ò\ñÅjsðZøýq!n¹÷Fù>ãÌjoþuhŸ +Ô˃ÝZÂÁ7wZ˜}i’•ôûá(8ÇF,÷]Û™ùÔÞþ îcñìpŠ j·Ö}¯ú©cƒ’Õ¤œe¼ù‡¾9ãÒBuîÍ1^òSKÞu׳L‚zEé‹o§Ëa)ž9 s¹¥à’¾>é‡yÁ›/ÇXO¿^íνv8x}8AI[ê#DJàϾž©Í‹°-0Š” y¿õÓ"~˜Åýªkμløzñ`óNÕZøhDwf†\ôõaññgÓÜ—ßš;ò~_*}¸Ú_zo ±=DŠóòÛr5Í)­mO02-%·–ÚKïL +~¦F|¹3Žzs¨q]ÄÜ’È+_ëºJß9eŒ’ýqbìæ0öÅæú…dé)~ÄýÔ—ßÙA6Ÿ©+~ÙGŒú~«}0)!ìN–w'¹…9½Ä¥¦Â”ì}=ß*㺨‘?hê2n8g9؃Þ9Ç.qƒ÷¨ÉùÖé’;#Eƒz.÷x¥ªÏ!§n Üõªkš½ªÊ*×¢¸7FIØú<.je‚×L~ý½¶¼ìž}°gáN2²ÝRZÁÆìÎZ?üáÖ'zvag–š½ÚSrg§¯ì¾¹%ç÷õþÌëÎEl¢mššéRp1Û“¬¬ÕVÂÚ (WÕ„¾ ¸ûÁV7êárKáo çÏÛÊ«ÚP Q_÷’’OoôðswFxyš¦Òë‚ÄïÆ8ÑߨjS.­|̸ًx~8EÏXî'¾S6]¶Ïòà;#Ø]Sâσ”g_Npc¾kÇ=ýG'îÙçËíÔÔ‰ZÜÃ÷ˆÈÏ$ù÷\s ´OEÉ÷H)¹“ØsgþSGÊ/еúÔ̲ RÂÁ¤n[¬ä® 2RäYgF©ï>gÇ›àD}߆¹÷ÉûÕ)UkÙVJäwãÜØŸ6z°±»CäD0Ö0÷aŸe¯ÞÛ™EÅJÅôùrÆÆ0;ÇÒ9úÉúÇüži\ìá8>zµ ñp£ùzky0Á…mR㥵 ?hšÊîlPã·FÈÑö9Ü)söç8e«£ØwÊš«¢iÀ:˯u•ÝV¿Ï:'«Î8£k.ºy0EË>™3_•rnŠwÊ:E…íŽ2²Öºá´ ig ͹¿¯’£×‡˜™ûå¤í!F¦¡¹ìîF.ôYªuš˜í1,uä__¬JþeRýÍö86âp‘‹Ýaê;O­s"òÁ,µ5‚²´çß]ï.º¹Ö[pkgeS2`;ò6ûѯlãØû4:r­§àÁœ8îôýÕã,Àµéç]ó<¬K^)ÞŸ+§ÌT³A­"÷Æ) «íð›ê†Ü«òfØ#s?1ÚÔ…„âÝqBÊòGÄmC3òúÆ >b–¼7OÞžÄÅïɹ„v^ú=Aîý¯·4—ºixOV]¾9Ç-až™zà¬RÐ+Z‘`i„’öæÊ©ÿSŠzj“W7mN –Ž²Û¦¶¼K+½™õ“Ï©“èE•n¸ZòÑÁ<1Õ­ª¬±K%tÛ¬a›âo2’Ö{i‘Æ.ò«„„ŸÙ¨»Ö¾ÊV(×ÜL|´ÜB|ºÑAŽÜ¤&[çˆ=§™ðé#Ç·l”0Á†Ùçù˜ýVÞþ49esðjk€¹1ÄMÿ€‹ý·´¼ø·•Vâ“ÝjÜþ+{{ˆ_dé¤Ç(«`—–Û‰Q[åxc5v±ºè—¹Ê›¦øèƒQ.Ú/“pöF±‘kwŒ-¿ÛŠoڦŸõÌ3M]ÚÙaZ쓬ôóó¢üû†F4ÈLU„!â·ú¨/ ÄÜ#me´_´7\|g½¿øÖÊ2bwœ˜â•3Kó¤4mSÚÅ•vVÒöTƒÀÔÍN–ŠóÎÿ¾‡ùí(=öûINêoº&ø[å AQÄ·5¯¾ +(Êy¶iÐò’g[#°‡æÎ››“¨˜)y åav§¸…;¼|¨ì3|8`á‡CÅv ïN«j£´ŽÓóUc3 +0ࣕZ†}Žüš‡Ø'ÅmOb·g‰ñV q «mß’64oÍÑ›£´Ôåä³~l”u†Q }òæ0æÕjüÑZ&Â1/b¨ëJ¯éë +.X‹ïlt³]R!Ó:ÏAºÐQó•iç·Ç™.ee¥[].ÙÇÅ­ÀèZóo,Ô$_Ò¶f=q,Òa>ðo»“´\eSþ%²ªvxª¹ ýP*É:³Õ]ötw›q8Ï#ÛåBªu†Sú½À>Í.^ï*¾³ Šýr’ýõ$?ægUCêÕýɲXè;Þ ºß¦¥L×r÷f@¿Ž1R,­e×FÉï>E½Ô•we{˜ Å?ç–l÷17º™©€Í£—úa/Ô-YwT­7V&°ÑË£”BS¦À-«htéjZw ™—°7gùvé3Š«\‘À2DŒ”¼üa¤®0Ýa*ÿ° ôdµhý*ns³5ÏÚ›&xužUÆ@¨Ú +~ß™ÁÇm çj…»“Õô!A®þî!@ųS4äÏ2銌G¾6FE_é€ç}ßVœ÷å(öƒ¥Š±ÙÁN0´ ,  Ÿ{àw·Æi`ž«{Ó”µq‰¥—oj'?36S-dGXš9oå•äÛâœ×ëAg~£“olu3¶:¸IšzÚ³ê‚IL¼a©!¯ŽˆKç0w5H¯æêêW8ù›€wœsb¢ú}þeyÒ·k­W­ÃìLs›0UQNºa®g<1Ö²_n|¦Z{+á­’¤"rO9#§ã¯l·ˆóvúùy}èÇûÃô4Û´ˆj]h°ÎUq¦™ùº¦¢ks¢”-­¢ô¥ÞF‚¥½"ÛÜÈ|¹Ö^‘on%›ÙoÖÛø Zp­ƒTÔùdÉZõÝþ€¤t¥ùh¹»øŽuá3.]]¯SW×e•‰hʦ‚›Ú°; /$Zçøp}3ò†¡¾à—õØ^Ä˃!b†}œ¿Û'ÎW×°Ÿ,5KRlƒ TÛ`n³“(+Ï> x0Å¥ðíºÚîE1eyŠ»6ÅÌØ™å•. +IîEÙ6Í+[ëÇ¿ZýXzÝ6JŽuÏñQÛc‚’fDʧ¨ô¯µ•ÔçPKsRòÿqôÕom¤Ýß©í¶»uo©+u7 ww÷¸» îàI J‚µ»ûìó½Þä|ü_úú®ŸÚ†îC}M“m²,rº%òÁ\wêã-F(ÙÑ8‹CÔ´ FÙ 1|WÅ…>×paŸLÈë¦ÒسÔäÇá'¢ž?> + ùr +õõ$&ôóo3µð·œŒt¨¨§žM]›ÂÄ®‹à¡ëc¯€n +7O0 +LÍ„M5ñÓ—ô~œ^áßN¿ÍË »TüîDÑoG¿Ü÷=¾|ôýá­£¤¸—ÛQ ÇXYK=Ð,·’RîT1;@>oŽ‘S7Æp±N%îÕ³pv%1k¦£ä¥‚›KW…x¯ ?Wæ$œÎûôîHñ×OGpQ'`aŸO`â‚NÂNã>|ÿæ‘”·/N¢ƒÏVeÇœ\ïÇÇ;”œ]Å'¯1s—û`A3yŸVF áúVèÛÙBˆ¾ ùqŠ_v¿’qºzÄÊynvâIRrô/»þçï kÀvùôIÐýKç@9ß^þ6Î)ü~8Ãmø{™Îsªéó}o5ͱÏ÷f)D·‘_i‘X2ŠÛ–¢cÝjr‘MÎoŒQs— ’jp¿$þ-%⌠;öODä·s9__ŸæåG^§Ä_•°Òî,õ!’-±jþo›70?ÁÈìÆãVbñE>$ç$9?ëx~D(äõ3Уë@·ÏŸ=¹ztïêÐ'Ý:{ì”ðöHsyÊy5?óö®†ëГ‹CÈà =^ÚÊ ªÄ?¯GdŸæ¥ž¤f%/Žø~ädz{@¬Þ%¾|ÊþôðèÈÿòYPä‹ ÷OnNŸ< +}Äò·§G„¹aoÔue&E7T•ð'³môi-ãk;›–_ü$1éHfP(ñýGЗû÷A÷Ο}¸v ôãÞmÐ;¿Ë ‹§@~?Œû4è½ßu°ŽÇDÔ‚ÛsíÈK”Ø¥Q!\ÙÆŠ^7#¡7[P°ë °òsäô¤ã¹_ŽÄ¾~Jû”óþ-(öÅsÐË×A€ù¸rîè·cÇ@÷.œñ͈•ù›²òzM ³ªaqóEo ÈÉ…›rJ×GbžÕÃKÎâSãŽƒÃƒŽ€ƒ¿‚ !ß@aþw@¯n^½¸~táä ó¿=¸tt 8Ÿà§~'jËC/ë Ÿš'a!Ë£%ïͨˆ…vð›¹Ôçq>äa¡ìRuyÞixlÌñÒ@Pæ§W èA/¯_=¾xäéèÁ…ó ‹ü :yüèÿpî•0ïon“ñr¿xÕ꞉_éÒrð^=‡øŠm1>e±ª¨G¿i„\G†ý† ‹<šþö=èå•+ §—.‚îÜ…>zÌûÐsçAþW¯.ÿù'èøÑc [Àñß¼QÒ#.ªkÑW†x›­B»¢š¿-å"–G©)²zð“~F±Ÿœz“ +ÌIð‘ðgþ ç×.ƒ>ÜòÞ»º ìï쉠;À1î^º +:}âwгËW@àðÀ߯èù÷559VúÊ¿y dÄ?«¬ÊÝyžpIDËYed»±ÁÒjðãfÅã +äyMqÖDTø±¸w¯Ž<Žqˆ‰ïþ?¹|tXË‹@|Ç¿z* >ŽNüqfº³ü‡U\67É)ï¯D>l&•]â@óÿ æœ@¦æ/ˆJ8öõù«#WÏ]]æöî¥+ Ç7ï€Â_|>ŽNÎ8_ß“ò±síÐ%)Ï®fÁ—ÆÙÅÓ#‚yWMÖP ûkÀ˜ô˜£Ð¸È#Ñ‘GR¿‚^ݹ zl?ž=}|tX·ß9¹ŠzóâHøKÿc¸„ïÛI~ãŒü§óý„X}'曼ýJYCþ¨l tÒÊo7` ×ª˜+ðœœS¯_‚üŸƒ>=| ºwé2è2pžþf>½zäwñ"èÌo§@~§Ïƒ¾Ý} ªø÷gcyö}-"x©—³ÔGO0öò²ÇªÈŸº(P¿Ê²ÌS‚òÂÓXÅTzÚ‰Ðׯ@¯ßÝâìõõ+ o÷]ñÝ8wtX/¿Ë×ì¸ +õDΈ>!áBZ¤´|‹œ’·0œm/|a•R—&˜¹ªZÌp íCu½0.êXÐ+ÐÇû·A±/_žß¼ Ìñ)ÐÙß~=¼ìºtæ<èÉ5?PäÛOG£^¿9^™wu® º-&e¯ ÃWÐÁ³mÈÏÆVü·:â^u‡_^p./4äHâç ¸·oA‘¯^ƒžûÝ9~tã?€ù¸zwßtñÌY/ÎBýÉøþáÜ#ó¥CF)õ9´Ãm`bjZùê8.VZ[öPR‡yS-¹Rðãûñ”w@ /_¹|t ÈåK¿Ÿòð&0ïWA—þ<ºŒûéÛ ;Wn€üýî‚r¾ÿ†NŒ¼¬ªÅ}Yìc¥š'šx6yµp®›iê"…j;qA­Ä’„ÐãÁ/‚^ܼz÷>ȘßK§þòâ<è!‹çNýñ¿ý¿Öðå­ ÿ›·Aù!AG« +âuCbÿXëGDýœçV¹ TĶ–K\Wâ7•5Õ‹"|˜À-Î> <ýòù‘¨¯¹y zyûèÏ¿nž>÷èÉ­› ûÀZ&¼û|„˜‘z^I{<ÝQ¨iÈðÓ2’Fª /G…Ô÷£Õ¼n<ÿ I¸Ùc<B(wáIeg‹Â²ÿ„'_ f—_è§ÕE‹«{*LÝíĵñÚ†¸k<Ÿ]W-´ªj‹ÒJ¤¬Ÿ•8ÞF ¨"½ê¢S_ !P¿j0òfŠåOÎÆø•D—\(ˆÊ>IM?‡Nˆ;GIJòë€ÃÞ*ki©KØØÅî²×kƒ¨P‹¢’º!R–Æ«±3# Í@-˜M<_ɹ5V#ŒiÖ„1¡„‡Øì²ËqY§ +BÒO|zöôøÚ –¯n_¼Šx‚œw³†~¯©ç¥Îv’#7&˜ù1ižäçXy|hÒ%vAÌ,äó õC“þ¬ +O¹O*B\MŒ=þáÑsÐ=;ýÎøvÿ%(èÕ‡£¡ަ„$-ˆÏ=É,/¹7Ä„¾šm÷+*I–IfCÊ„yÕ¼ª]ƒ Æ¥òÌÊj–z¨¦d ®!–‡Eß.LOÿãûû÷ÇBž½…¾ûzv÷èŸçAQ゚€f–_'•¡ü»Ôãjà|o Å*©¯]gø6ËlbW¬ŒòËMƒu(E;7v¤Šø¶Ž ¿ƒ**½œ‘p")0âhàë/@Žßb÷èü©³ '·_‚’ƒc!’Н·Ø1 CU4«ŒVa•2Ýz.Ó;W?¾;/lõÌ +× ¨º.ï¥Ew1š0Ø{ì‚¢ËøŒÌ ˆ´´seIÉç|øúû§'ÏAáï?¢¿ ?úñË‘‚””Sp‰ßT!xi€ ÙUS·Ä•8‹„Y²6JËÔ6Ã^»É1‹“ÕxI;¾]|‘u*öËû“¡Á¿CÓâΦ„œzýà.èÝÃgÇ3c³/ÇÇÄŸK‰;AÊ+¹À…Âu11ï•õ°bNÆÕÙβÀ½~Ýî‹ èÃìm%kÑT –eUq+õ{5z™•ù{ø›÷GB_¾eÿˆåFÄüòõÄë7@ ﳓNU¡Êï°H!Óý|覘 s«»žÉÛ75­fu²Ž¼8^‹™í¡Dh›1ïG¸'¸âû m-ÕæÚp#qkªšl“ é ¹)bÛUB–ÝÐ*·«,*|CÂ,3+x˜e)²(cCæ&«P3ƒõM;=L×ÁŠ›ïà/Žô +–F;Ù³ Ð…¾ºòõ>r´WÊ‚xürh*iÛ2JÞ–ˆQ«rHºF-ŠºÚU µ.ÒÖÄìB7=~©›Ÿ5×[W¢ìn,Rõqe==„±ºÆøQ~]p'…ò¬º¬à|3 vwªR²<Ô€µËª\²†:—¼šëV±Ð;zÆ£ãÑ]ªJÆâ5yº¾<ÄÌ_@æ…òöêdYgc®´­)}¢®9J\[1Ég} ¡ï+šjÓDu‰=ÖÛ^¡ lª¿¾lYZE²Ê8p«”Q¼1AI]센³ŽaSÿš«ÛѲ #ˆÐE&^=ÄLî¯g|j¬ niÉkmάÃ#ýÚu_ûíQ] îe3=x®¿¶diˆ›³%Á$ÛÔ”R§±R`××4ÚtõíÛºÆÞSMûà=:r±yŠ´4‰4W¼´‘BhQˆŒ”Óôòò›]†ØûË@5ÿ[ ›ý¼-|=ÙÄZkæYU=ò™º^—QX»3×0景tu¾k6-²!§äÌ¢5ÿIšÙáòFÖSUÑÌXW•n ºTÙE ÑГ&›¨}€îâ"ýeí°ÉÖÊõ'}aªéÔñÏðøO³^5 ¶6Š[†®°rÌb!XSÒì=ÓØ…ùº2HˆZ™¸«*ãö!ìì(#þ²©—‘¡ižêj)µñ£•½ÂÂù±FŠYÚ ØVpq«ƒ°H… úÒÚPÁ‡Ýi÷`¹Ùè2PÀÛrRŽ]Ã%®HÙàQ%XÚS™:ÙÊžj®‰·0~Èúê*ä£LÍx#zfŒ?;Œ˜ÀÏöÁ?;4<²YÌAÌuA?nŽÀ‚~­×L¸õm’C]§]]]i–W·m°1Ž‹‘Ô–¼«+ù~nGÌBºTlâæ.É"BEnŽ#Ãm2 W¥¤L—ŠÛ1 +«·Ì +§È;]«Èkh™Ø3Ôµ{g„5f%¾)%¦/ÁVÇP‘Ëè @+*ynU×%¯b—^ìÕâs<:bɦ“¸%§•¸TõMÛ“5\§Œ‡3Ë9ˆÕ)Â,®¢;Uºm‚jÄG­õaCû‰QëMì5`[­‚­× WGxÅË}ä8›ˆSáQòiÛb_±ÊÚC‹xO_ßãTÒáN5­l[J+°ˆX%#¬|·ª’êV ˜6íTWW[¥µ¼my-SÂ,]ÃF¬Œa"ÌSÄ”Íq\¼UÊ*7õ²’ç:y6iÏ”{¾fÀ®£ €XM³É‰v ­–¼ù¹Ìoöhšúœ²Ž~§¼µÇ¡nêr©h¥ !Ù<†‹ži*}µ%Á¦é:K>j›JŸmŽàc¬“˜§Š”ïTâ³ìtüŽšZîV’²w¸Û5µÈv Mc¾Ø›á2-*bÞ¦·)ÂÄnI Yò¦ÌgSܨׇ3UíCC¯S!¤m‹pñæ‘’÷–±Š/¾çÚm +&tf„R4ÌÎy¿1„L÷êkÛÝêÆN§²¡Ù&g!æÚ3¯v¼Ü„~Û˜ ¦Iª1êZdƶ¸’ ämÏÈ!ûzZíê0YÖñ¢€™öÈN%¦À«¯nÚRñÈÚNè×mîVW²wÔÕµe%Í%§–® ã7Dà]·£p}³%a”mK(…vµÔ­æPÏ@Û8@¾X†)MC§[G†­•Y„ù˜´§Áæ;¥à˜C#y8ïöQîP +yû³MâÝùú «¡¦Ý¦¯kßÖT×nÊÈÅV)!ݦ`”»ulÜî4ùßuA·¯Æ­GG…y ˜‚ÃYdo“awÔ¤‚Ý6Ý.§V¸}}À–yõÿ]`sþ™£\ +BæB䣱üvKD{ôU®éª¶ %9ß9Ç«õ,ÕŽÿ\výg™-<œcrÜRÅâXÎK·[ä5 +vMÂz±R¸¿PÝÄˬ羖qÊñikCy/×ú³Ÿx´èÊ©`¡ ´=ŽOõèiH÷›½»"ìÞ[4Y5ä"qc’ÿü0²Â=SÓµ6EγMAÂt„Ò£¯f3 á”ÀãV{3¿n z4¤«˜Zdh̾­©J¼´Ð‘õÈ¥D%Ù¥ðÔ}½;]ÕjB¤Žò"ý¬24ì`©fÔ.Á§mKÑ «"dÂÌ 4j[I¨ØåÔì¯ÔŠÌ:au7=ÑÏ<‰,ü5ËáØ¤¸Ô1Ë!CÅnŒ}˜nM|°)* +Û_dr<¿m+;¦ª÷t]÷–šƒ±Jq)Û“ßì“eŸ6G +ßZDˆ¿Wù­v:×IÏ^ë æì©k›ŒlН }¼Ùÿ²ØSòRÁO¿l¬/yn¥$[†1a["täÚ@Ň’÷ÎIDÄ!À¿ŒÄ¢–Øüƒ~µGK‡ýÖî¯5.€Uøt‡ŸáR‘ ÖÆQ+}¥¡¿f…Í^CM£]ÊE8&I›½ïœc¨¨c—ðŠflH;&ùúz$ò§žÇv+Xðm1£ˆÕ«“i—“Á.5—¼!­¡ + I7š*âÞZEÆ–Œ‹´)°É69<Â.GD[DÁ求o[Rlꊈœ>Óƒùas©»Óu¾:í[&d{’b,wç<ÝÍyeWaÓ´­Eoæ: !^Um‹Oº•<¼MF+´)ȹæID¨]†Nðõ§]>“Ôçû¹¶«ãp÷f+ë.°X{FlÞW¸o •-u—¾vHèˆÃ™º›’‰Ü˜dÙ5BÞ¶Rȶʙ( >ëLºG·e¨8__Ïn›—âÒ`3½R顺yO Œ[‰L\(ú`h,|fÅÄì_/˜==!WG*ñ]糈ði{&6ù×—oƒ#-2dÊîRƒÐSb‡ŠT¾1ž÷Î2UúÃcÄíÍqû‹,¾YB-X'¦íNW6Ú5 p.ß}{ZÑ`àŽ™ìÕ"Sw´¸ìAJÂu#û•Ýw_€›l•@㬠+tê–dS¡ã½RéîLew½—äÒp)&ùÀD*ÛÓ¢Ó;Snâ_ŸTò#ìiIå.¿>Œ·K}½nȯ ‘bž_ê‡Îô¢‚WÇá!ëÐ-)>ÇkbâÜb¡[_Yí24Žy竺¼‹ü†ýàu†_c×°° ý¨`§‚˜ë뉺9ŽÞÕò;}GÏÄ{M‚öÃ¥êñŸ+Ü:—–\âT“KvçZ NS}߆ŒÙ’‘óÿY¢þ»DÂýw‰Jù¿e^óÿ-sê,R¤z½vû—’_ýÐÏîÉŠÀíÁœ'+Íi~³µ7WÛŠ^™GQüÌGÜŒO\#äœ}y%駆=Ðb<…'Ù$E_-#iþ6RÀ>¼uh(°_‹ìª#j• ,L¼CIò¨±™n:kc¾9Ì+Ýè¥eÙG‰ñn)Å6‚ÛìCÙ'€÷cè(sñëåÎŒ;–1p ]BÎZíÇe;'h%›„”ådØr?6l{œ•ïšb–º”t˜UBÎöåÞ¾¡qàÐ5»z6à ©æI\ÂÚ*Ì2EbY ô8L@sPìj¡À£«ª>Ð’Š4Èx¢4`K܃}ßlI)ÆvtMƧìèªkÝ:Ä àµÓ׿K‚NœíGÔÂCo,õ!òöMÕ­cUSKȵ+`qÿGØ$ÐP'À-n`'¥ü²Kraaèît}¿ËPU· h'»¯§Šb™„†9µtÀç‘RÖ‘ÁÖ r¶óðz^­ëV²1&e­üÕ)¥ZÆðñ¸ø +¡ÿY¬úgC8 è4”Ðâ×¥/ @f:‹ÞzL4´k^ؼ.£—™Ç)ÿY¶ÿ³$lÿw…ßòŸUn‹GÊ^)ÿ0Û[ñvc½>Šñ¨˜ðCƒ°Ê«âQ=jÒ©ÖOý¡«M¹1Š »°6€Ï°5ÎÎx¨&>t( %‡³,æ_‹ÁÁ›éÐ0‘ëS´"§®ºew¦¶gk +Ÿ=מûh±=ï¡Gø´i2â—–T±5þnªN¸&¦Å\Zé-Ý7‘‘N9$Ì< +°0Á©áÑj>igšÉó˜ˆx_’Üõùç1p¹‡s$˜Ë@ÇØTdwhà#¸ÀfýœeÑ<Bi'>øª± ’ùs¡Qòs·Ý蚨à‹CwjáIû&lÑß‹•ín‹ +øÆÎt£Ø©©ºTLÈŽšV±«¡”n€¶å¬¶¹üÃ|3"ì§JÈóJé%;"Bªk »Ö^äobÑ1AL]î‡~oÃ…e'¼¼èøÖ6EÉ_€~[ȶ0÷l¦ Àá¾Â÷ÿšxÜU16¯Ÿ{{i ,þ¯¥êþýÈÛb'#˃E&è?ÎûîÒ4!¿³ó¾ùYûà1¶aBÌ\CéÓéšìÛÆªÌ[Aê5“ ñ¢u äƒm‚˜®l…„ä†>û³ûÄ&¢–lKYh—’ÝQ’ ¶'!a‹=éO-¥à‘ vÑ]jR±CŽNØQÁ£w5°h—¶2˜÷i¹»ø“[ÎĹ´ =[ + [Ð û*\¦GN,rÈ1iN%.eKŒŽÚE…èóî¯ £â5­eq ]Å_ÜrJ¾e ñc³¿ìÍ ÷¼S¸Ä}5¹tWKñékÖ¾‘Çø x_Ý“­ID$ÀÃï7ï½:…O6¶±6AÃX$TÔÆ1ÏèÚ]‹èT’ +·%Ø §œ\jŸ"eØ&0q_G»¤Ô2ß=¡€ç1Ö¶y¦UV >Ñ"Â%¬ö@>©±çÝ£ÈäC]eÕ€IN5¥Ü&¡•í^fGÁBîªéð- 2Ù,F¥mËÉûFAÍ}5sçÍ?gÙ ¯‘TêRƒÃ¬âòo£å,à@ë,È&BÇ8§Ûã˜h»””µœ›]NÈ5!b6úÁ¡n-‹87FÌÃe~>;×Îø¹P7±7#hr©©P›hR<*ô[” lÂú>us‚œoÆnlÌ{g¬Êzbî€|^nÎm‚EÛ¦Y‹½¯6.ÿpWw°È {ŒØ§™`•Z$¹_f0…-Ò‰ÛJRÎtWÉG_ÿ÷teÍ í„­?—­^¡Ì¥†D­ô½6µåE×Rþn¡üvsŒT`1ʶ&Y/oé„•›"l¦¸*ùñJ,éàC«Û2.šg¡¤>›i*þ n,}ÉÌúpÕ܉N4÷£´ÜÜ›*VÊ#ù¢A pXæ-û*ÜYðÉ<þl©#ê†Føýìr[öÓ1¥È:ÅÏ÷"¾ùîc>Ô°ÐûjÍ.!fmŽ ƒ7á߀X‰^ë+{#®Ê~†O{ûç .äºðàkCèðåö‚çëÙ/lÃÅo7ú³^,÷&?ÛÓâ*v”4øö"ÖĽCJ,؇E{f°%{ d´à.‡† +×w”¼]DÄz ,ìà/ÌRöÂ2xki®õ•*øIŒµbj®Ð,;úʉÏb=m¸ÐTð`¶*éŠsb(Û,ú¼oâ~¶ªÒ!£B—ºJ¾[†*B»óŸÍvå>µË|}¥ª»¦…Í»¾ºT³•µû3tœ¯ÿïÖ4xK±‹!?˜oÑì/Võxfh¸m2as±6]퇅Øå¤¼é.ðgc1Á©î˜tªêjJ6Â-'çzµLôŽ’n#"—ºržkø1W–»Jß-4—¼±ô@6»À6:€|hÊ{fî/ùd“cSzjÒžCSŸÿ>ˆŒ»w`ªiw(¸X›Œ vü´> Yé/û¼>TþqWÃemkùLƒÒwu4Ôá‡ü/Æo–~Ù)8ÔQýì$l‚ÿ1';äÀÀál‹Š¿í +C½†¢°™î„§¦–0¿…Îì‡["\úú(&~©¿†Cwj«[¼À\-w>¥Fž©.|wTÍO¸cŸ"äÖÃ"´cžïhØÂÕa|¢^XpOÏM¿¬ç&]‘¿ŸîG=ûM_rˆcØÆ-o­¹5DȳKè(Ç.Ù-Gý2’!ûÒ«ãÒö \ÖÏ5”²]=¡hOO,ñ*ñé^ÀgÙ†J?-Õ¥ÞÜhO¿»+CÆÙD¬²¥TÈæ2Ì6‰‰±N ã61ák=°/ºªÌ' m¥ß­R:ćç- ·gâÐ?ÅeïèèÈ]è¤2§ o‚E-ö—}ôèX̽ÙV{FX뙫lôÌV¶º—êiHË$" +Ð ñ[xÄ– —îÔñX6À»ô|ÞÁ©àl“ØË⇱.ç±ïY—aVì5|Šÿo†ú‚Ë06ÎXâ·Ð’ùts ô³˜{uŠwÞT›që@NCí™*k·Äø$+À¯>\Aö&Q‰¾œø9Ëá, btu%O¶&9û3lêú.zµúq¹£äålmÖ£µ®â7Kƒ¨àAvú-JÂóc;r}>ל}GWqÓX—û@'L¿©¯J÷[lËøßòåALä| ÈAÐ"Üí)|Že²Ð‘õ`ùýä1ü–[Œ-qëø¬-%Ó+§–hÙÄC@³¹”¿5Röi®)áæ þÛɹŽò·óïµÅ·‡ù^E}½m’^°Øý0ŒIü“žøÄOÿð›ˆwÝ܇‹”4¡C¡‘g[ÊBÿ1p.À#›jó_ê«3_[‡r§›² “2ïδ"“öôdðLSÂõåžô$zc¬$À<\ì•Ó À+jržˆ9©¼Z6ç×Buïž^€[ëƒ}3"#ÕtŒ[Fƒ’o+XY£<Ô\+ìË9åò:ñ¼„’uCÍM¿5×ýr½ –°:JÎJûrû(!áã>2jW/¨ZíËxbDžŸ®Š»d-x{8à ïèØ¬FòûFè×+ÿ·Áïðêñ¥[ÃÅïæ«R¯©HQ§å¤°?WÓïÈÙ¦vHLÖ×»ÇøE½Âuk©•î¢WZ~ÌÅæ’WHXA×½:2Âmlž¦dmŠ0éÍj~¸Ì¿Lä +ûdÙ÷íñâÿýNè G*é›SŒ|«ˆœº£ •¬t”¼Óóo¨1çG_N @ߟ¢…\ß+MúwƒÛ2ÌŒz<×™û}ßDÇy}`bsöÀ~&ËÈY!gg[Òý=z*Ì¥ea¬RjÁÚ>Ρ¢C¼z&ÁWsýŸi\þ> %vUȧ‘áÐàËö—ªvæ¸u[b>à›Ë·}m£’\ZLÎþ,o×0 VµÀ¥T® 3à{z>Ç×Ï«`ÁlãôË.z¡½Ø_ÍϽ·5B.0!#t•‰7¦«oùj!H8‘7—aŸ€†î8¬M ¼iiˆœ,åæûIé©—d´Ô«JNÞ³Lô•Rܵ¥pð|Gù%?嚘™|Ÿøt¹±àËO@üÒÓ»:zº¯ô³º!åÕ¯Yï×·Ú +àÊÆ@Áë¡âæ@‡O–üœc³wôtÔ–ŸæRQÊöüªíIxèb{þ)=ú´Vwq¦9ß¡QUw£ì»ÿo å‘@¬ãmRR¡e´èZ«®øýYNʳRJ  ÿðYn‡h¨+ÿ¶ÜVüaGA-ß×31ÿ.r¿¦™$·ŠícâwTÄ\‡’MØEÅ:%”’ÀKúj»ÚDeŸæ›s´”„œÄE<:ÂOzrlF˜øâo#eCE¹eø ¯ŠR´¯ecÝjlºCMÚškª<`ßÈbüš­ér+(«=™Ïì’òÈ}=«øN…}Š˜»Ú ùf›$ûž©©¡¤û0öÄP_ôn¥#ï‰c¼ð«s¢<|{´,r¥3tÖ%®Èôý.¼Ö—ÿr­ ƒàë;´«#•ý³ð¿¾9õ9¥\ÛwKJGÛ§Ût;s-/0¯NˆçÜ—[Ã¥ßÝ2\ÞÿÛ¤Ð~™°ùn%4î`‘U½»\+ÚŸ¥af-j¢B—âRá3÷nrHðyúªÌ§2bŽª¹ì­e‚X¼§°,£èÈ¥–´[›=™-oRïX‡‘1n¹ +xœáŠÏÎId,0O™%¥øå1²ðÿûíÚ@…»Žsé©h—àFÀþ½PÕäyð9q¡¿â«GEÆÎÔtíÂC oväĬí1TøF/üÛr&ÈÔ†þ*ægÜ›í* ]#$ŒSÎŽ`|Ïû§Ý_hBüØ go vä¤B_Ÿ˜åaDÐ&€——j—’ò¶&²žÏ·G^ÑÕ†žŸ¤;å–bÓw€ß±©‹=àÏûoz,ó(ÙÈ= &Õ:Vüf} ø¥möÝ<Š ŸääúMñ³ï¯SKÖ%\˜¦¾ôi?*ì¦Â¯Çê ƒŽQüÈÙqw6ŒÀº\ùâÜj76Þ)¦y¥øTÇxyÀlKò“)֛Ô ³;pâW*[}ý+v䨤µžâ×ëý¥ï<*lÖᓾ7Ïbú¼³M†N4 dGCôøãjoŇ•^ÈíILŠ]ŠO[ÃFij‹žL bÎm@bw ¤ +ucâ]emøCKÆ“^\øíDèM€ ¢‰3tÁâá¡þ,·çýw…ÉÙ3` ¶D¥AæñÜ7  tˆ¯§¹UB+0áíö$!Û£æÓÌ㈰…΂dzÍù&i)W+3¿žn«ºné/‹\è+ýÊÈûzusWäQS¡+}%ŸgÛ O·åÜ›ë̸m—ú5Ãa{ô|ö†ˆšåRÒÀ3üÚ¿ùu^-©ÔTŸùPÅJ»:Óû`k»-a–[áÜJ.Xêr{‚—§ºÊÞŸ‚W3cÏ;Æ¡1ÿ·Îi6+ ¥‚üWgÌý˜ô_¦š¶_&&ù§s`€¥˜G³Þ™šcü¦[b®þš¯ltM7o)|‹ˆœ}8-l;Ð3I? Ì®Š\ä–T„¯÷¥¿Ü/ ük‘×`Ó +k-b6Òkª¬Ú›c’w”ø,'àÍ-Cà€>dØUAê«SÛmm‚èP‘K +šï9 5 –6zJÞ¬wf=XoK½ïG$ù®á¨› +­ Q2·%,øÆ8:zsµ1†6‹`Á6%*Îe Ãwôõ]^cÓ„×Tß0[×8Ë«ü5Çå¯<0Nï  %Uøt«‚ZdWW2×GÑ>òm¶±ìù\CÉc-?õúbkþ'ó0,f¶³âÍL !p½_XºÚ+(]b¬Žb×=¸<þ¶0ûÒ«'8\¤ænKèEn…€éP2¡›“Ø8» àdGOȳÈÑæ t²¯×ªKÃÆ:•,„[ ä·†ðõê:˜&-"XØt[ᣥ^D€yŠQ±6É.›i¥„Í50"¦+Q¯däœkÄÄ‹ +aæSeCÎó\ôY »à£u”œ9×^òÎX“|Ç:Püu¾5ëùt}Ò]ó`æóýix’GÍZF„¬acö <Æ®‰=˜aQ÷¦D7à—­rdÂlWÎS› ¹­ åÙ&˜å^EÛðž¶m +8Äò@éÛ¥þ¬††¸ë½Wz AóèˆVDØù¥–¢7{:6Ñ£a]*:€ƒ¤2«–8×SòNU™u÷ŸY_Nß,¸Õ§õ,ê/Sm×O`óß1¡"WúJßÚ$¾{¿xC3â»YDÌÜü·GE¯ðŠ™`÷½Ì:ˆ‰óãnö¢n:åLôr?:QÊO¹aBÅxˆÜeÑXŒÿvô•œõqrŽCÉcmM2 +¼r‘M +]î)z»Ñ \ë­xï«ÝeîGLЬÀ“–±¹cŒt)3ý®¹î™BÆîÉ©Å;t¥¿(z¾#åýB[ò}•°kàrVûËVú2­¤=™iJ{¼9\ð÷ äS£ÇÄdö³Ó߷ᓟÎ×ìOWÖìªiÖaè·¹ºŒ»j^´ßZÞ·–¹Ó=± ,Ø¡«íÞ_®°K)y˽°o€O}¿ÜŠÙQSaî6Ýã«÷®'—nŽ¡#ÍØË81yÑWg©!Ýo¾)厜rq¦!åîjäSăÍvA#¤‚Ä«ý —Ÿs8/=œ%”íÎѰã5ð»¦JážQXûs®~Ô×ïç,—·;MEصȧ—mÕ²´}ÈÝ„¤›[Ãä¬Íb‚”šzµ!ïíѺ¬WǤİ ›…/¬ãÄ$C1®™˜~¿›~}uì’q°;J~G‹ÏÙ5`s·ä€/èFmN1¡Vi5o¦»0„5Oá3\J / ð„¿æ‰eÏq¸&#Å£pwMµ{&aµ×ÈÄ;•˜tëdq€e²$Ä&"e9Äìòµr’„]z¯•ù°}£³<üt+8ôB}qй!\ÔÕiaÆÇ%}²ªàm#*êÒr/!Û.®Ä­b"7GË>;eeVQÁ«"Ù­%C,bo¾º×i T¸ô„|·™êÔ¢sì:n[IEíÙÌ 1&ncÈw}WhjCdئØå¶IßxÐ ÎIL‚e´Ø rñ +¿ž[é…G¬ a#º*ÞZ'Ð1+ýðٮܗ+#E_¶ÄÈ ñºvði]Ž?ÀùÜ_KU½¾z‘ZB¡ÙW[rfž€F[¥Ä¼Ùd0§vôlö®‰Ë±É°©³me¬øKbZÒù6è—³¦¦”çv¹l˜™ù¼ ~yÐn- Œü¿{íô@^(بµqršYÂ,WËž.÷a“vþöÕP÷j°ÍAX€¯®©Šq¦öþ¼±µèc=*îî÷G—@¦¶œ€ˆ‡´ x¥'å¹¶6ý>;óÕo¼Lÿ“æÜÏÿ]çÔo+ "xàå2Íqxÿ¬Ðé/aÊW‡Sƒ–z2?/ €Ãñ ÷¦9l—ŽCtëØø]-›r b‘ÿ£âÿ»BBÌá¡K}e_Öúñ1¶2\ÚÚf—¶’ëÖ j¼†JKÅ!Ù'ñy€F"í¨1é1,Î2\ñÕ2tö}MÁ½¹Z_­¹‚g:^ÒÝåælK/øÃz7*l’Ÿx· óõ÷¥®ò C#÷s–X±kDgXëPà2Ý€ÏpœáÖ°0?§k»L<ö¡‰ËØókšXâtŸEE+ÑwàBG©ùOf[aA“ìœýИs2zÖg%+ãÍ\- e‡K?¹$˜$#KM¸˜Ë½Ä¯gì|î¾¶JàRð‰6©ï>Kèwë$&nm¶%Ƨ. áâU e/7&(¥;zA­GK*qÊ˾Û$ÅA¶)H0^̾žMôêù ÏqkYø}_¸oâò}}ë=@ãSÖ{p‘k}˜âÊüÇÙŽÆ>» êGÅß]éFÆÏ4”¼œo.ôŸ¤ÇÞ’òRŸŽð’nµãî™Úq s€èY@­ C‚׆Ë>:Ð蟋ä?뜺ŪîÝ9a‹COõ]&Ì3y‡ ‚ν¹ÚÏ´°Þ àÊ–’”¬ïçqvÒílÌÕ=¥€îõõnW2Oü{™]¹8ŽŠ“7¿´ŠéðƒÙÚÞƒY2fÏN±I3^Ó^ÿ>ŒÿðÇÚ@aȯNåÊ06nº±¥äÐ~Î6‰ÿ­îüï•ð×¶Ð¥†EÍw¿±S²"v‰KÎÃíÏ×,ÔÖ1Lì\Cáƒ=#ð o Í÷–;²ùz ˜šKüç›PŸœBèJ ꛆ“~sŠs½òñ,7Ëÿ3íɱæò'71Éc„x››èÖóœjRɾ‘'Ø›­îñÌ›Ý:æ`šÍØšÄ%{T ,à?¨?gYd›†KX³KÍãüŠåvfì$«à~UÁ“Ãèô›ÎQ^Åf<`¡)ëž¾6öÒ\sÖý•DÀ\'øãæ 8hOÃ€ÛÆñ‰6%Ó©`”Ù¥È(›n™(RTÇÞ‘ .o}þ9K%[U¤²m)ë:y¶£ðùlwáóu_ 5¥ðL¡ªýp­Vêšf‘­r&dKRËukÚD‡óü:§–ZŒµÌ Œ××cÛcd¼†OõïwµumN9µtKŒ‰_,ÐÖgß›ï…Y%䢽YNõ†“;Ûˆqêyï‚°Ó¡c¡zÆ*§ZÜÙÔ9 ÕÛšjᆔ–çT ¹»zaÝ¡±²Ú¡`BG)IóìÌÅAZâÆ8!ÅÔVú…œúêšÒo×\ +¡D¥lŠÀ!‹}ÅMÍ™÷7§p©+"ra˜^èKÒÁteÕ¶ —¶-C&š¥åáë“¥q }¹lRTúŽ©’;×ÏÌ0tã~l«¹ì–êÅ5ŧ™ÊÁ!­ “2uCBÍ—W•¿î„'^ïEEßZhÎ{(å%>Ô5æ¯!ÒzСW-SÔ]#µk|÷ æ¥PÜjt‘eÄÇ£ø¤ÝiaÓŽAØa–P1¾ë˜6 i–‘s7dô²-@s¸M€¿›VEÔü•R–w¶YîžnÓzæZ´ÿ« aÖº´ èà—§èySUÅþÚf`ß*^¾ –í’1áÖQ\¤¹öy¥«È±9箂yAÆK»ÝÁ.¼õÝÿ2HxË2ŠŠZ„šê‹Ÿ,´•ø¯ö¾ÜÌ}fÇÅþ¹8ŽÏk#„\wHpÅmë¨EÑ>h‘×U»´|öþ´ Æc䱿úÑ‹ýD€¿Ñ©6 !×2Ž _j…|3r‘Óïsõ“|†ÿ嬡º4j{3ßž~g¡;óžª:æZ/òýé!|àµaRØíÅ΢oú®ò5æèéöáZ‚[FÌÝÕÂ]*hÔúpÑ{Ëxág +_º¯gâmR|Æ®ŠTøï4ñ`ûïWøËÄãìi)…® ÿåîì—+£èXäÇÕ!júã•ÿÏÑ[¿µ™v}¿´3•™vf:z§îJ[Zh)PÜÝÝBÜÝ @Œb@°  îTgîûyŸ}¼ûÙû·„#$WÎsÉç{ek à=àWâ¢.^ÊE-!úœ¸áÕ¼üGÇGèy7Œ¬²G¬Ò—g»+Â'»ër@Ñ™ëfråš‘»fd-éëÞú±ç´ìŽP‘{.|MÐXúaAS24Äîxnœ¦v|DðŠ –hþ?ÓÂÞÓ¸†Ïãмm;4õˆï»#¤Š•atJ`T’²_.Zž:qÅË*P´yœyÇ ØóµüSPE«žSP󧔈‡ã“Oà_Ʊ_§HðCà½W\˜Rckñ35#ãé÷€H¾fçWÍlè¶MÙ2!+74ÄU(sÓ„,Ñ0 +nõãÒŸÌ 6.h1ùÓý˜˜Y"va™2 æåˆ£~l9«6\™©­þõ0§ôݦSÔº3&l=ªmâdÕºƒ\± øÛþ4W°íÆúQI. üú‹Ï +è©:JåMqMâ¹Îšgû*îï˜Á)ûNxi/&írü“+?éZJ’?O²(‡ã\zÈŒÊqnÅTõ~EW¿ç¦Á}\Δšm¤å^˜B?lz‚ƒiA÷þ,G´uÄI. ºèÍþ!bÆ’Ž^·éÂC—L‚ÃI¶øËT·çß9aßÑìªõQrãÞ4µuÔ'l_è•6F¡²_ÿºëP× Ô²£þí!4j^ÒðhR\ysL ~ÔO­¸\ÿðçA|Îó‘lçç]³1³ÏÏöÖ>\TÔ<Û26|üâ¦7ïºy·šÖ”qãÔlG}î®G1¾åé³úÛ•_§9üÏ~&ùˆ; ”B9¿þ«<öÂdgSξ\µ1„N) ©Ó݈·¾¶æ§Jí5£þáÊ ±ØßÑøÊÛRx-¨Èk_ú+߬hé#LJ›ãgëÃmüŠû“´B'™T‚?~ñâ@;vr㆞Ôð}Œ‚üîc6¬ðôCcä[ºkEåÿgœŠù߀ ë»ˆïN|ù¢¢.ju¸9kQ‡Î#â¯i¨Åæú1q³ÝõO<üÜËfJê_€YœTEý1K½9)®—áro½º6×S³o=Ò0°¤?#m _VW>[3U¼éª_oY(U3ò¦l —‡`I_Æ ˆ¯~ì‹ŸÐø}šÔümšÝrÂ2Ö-Mñ?ü,öá(Ÿÿu¢¥÷È_F)жtmôqª»ä~e^ý4­Ä*¨9-EÏB:džš”÷LMÈ¿ è§Ô}; +hü’€³¨C%~¢¾úIد~Bóç \í¾_¿å§aÖŽêÂ'i´sLᬠ+;«À¦ï:ø‚§Œ ª.ÊLL¸4ÆÏ½» EìÛ¥ûNR…WqwB‚þ°i&—oZPyÓýµ¯Ç;«îÍ)kŸ…Làè5;±jÃAÅnré‹Rõ¦›ÃØã2Ö퀸iϳ à92“Šúú¥vNø¾Ÿ2)i~«A§þÑ þðW{CÄ5AuøŽÆ¸ß:PE±S,|ËMl ™0Åk#tȦ›‰Þ÷6úñÚñ•›v|Ñ”¢1ÊÓQy|ž°1Æ„\8tÈ…­ßš`3W\PÈAmXñð˜{€î[³7eÔ%O¶Dø´üg†-úï2W²ç§ ¿ÎÛNXî …—´Í©ŽÎšÌUÓ‘. ¯˜ÕËj|êT豎{®œüKoSÜI"ùü††R=?ˆÍ6P2_Q4Çí1ÛfTÚÎѹA,cY‡Íñõãâ•„’ëCTÂÁ´Ä±íç°÷€¼þy’ßó²I[..iÅ&$h„¨¸¶šô«s˜ÚC µ> ©¾·Ø˜ê=vR‹ÏOñJ®¬© sj|&³îÓùpâõ |ÔWbÓKš•U<¢¦_’Rÿœê«~ÔÀâìšØÂè‡gõ¤äGÿ]l3Œ +{@ü>tcʧj_9Zs.-ªªÂw´¦nxü¹±–òôý¢þï€fÿì"”ï;°ÛftNpúq²ôÌÞÚø¨ ™wu›{qk˜Ù´Ø¬Klゼ>&¤lˆþâ„åÕ5|myw°§fz¡Q=èÌGø¼—¿™ù·½èçq|Ãg/¶x\³ Ä¡u;.Õ‚+ZsrpKfjõŽ“=ð° ß'é¸ÿX¼ãTØÀ÷•åÏÜmy7F»šÞ+I…÷e¤_ÛË?œ—½?ÝYó猤6úÀN…,ª…#üâ‡VfÁ¥¹Èc)›&Dþ†Y¼a#Tq€øe†J:œ¢`w'™Ô‹ +é©|>­nJø:ßn;œölzX¸õQ}ÛÏ8šy +þ>ID†ŒÍ9HÜ…õ×…ú£™Ó[6xêÊpCÄ‚²æùUþ¿!^ÿ®ƒ‡ß4sÀz.xEK+ZìÃÄyØ%׆Qɧ´ÔßוÕo–û!ISµÏÇøeW¶,ø¢EMÔToéÙžÊGS=Ew—šÞnëhÿïÇ ±ç§a·|täŸÃúw°Å©VÙ¡WÀß²1êw-ôšÏvVóg7߇‰ŸëÀÆ®*Øe­ ç:LêïnnÁ=— ä¾]xÅ)(ÿ{¦›º5ÂÃnºh   ™2 ’7€kX7jHòç”Ø »ê ©øÃ_ÞöÊÌ/Óbíš•X1§€|XÖ@÷„òÏ£¸ÊC7ªdÈ/õu6¼XV Š¿xÛ¤€/q¾Ž‘A»#„²%5òžðñ–6dD'¼ì¢Ž\wó¨žÙÛR~{{º§éíϽИ_´ø¼ €ú{²½á­»·)¦4òöϨOwOÚЯ`+œ‚Ü˃„÷¿z%I—|ÝiæÕû#4ÈÁXK›«7?ˆÊúØËÿ¢sÿoˆÎù? ØITÙž–2Ñ]ûœ\ðáw|vÄéåa"äÛÿÅNí™°ÅË +p¢‰™÷ÄÊK4XÊù]=4cÍDªo©}¸>ˆLÝ6’Š·Ìè¬m+:ÛJlÞµlìô󋲆øo£l* %ê¶-°ÌM'¦xÇMý3%ìÙwÓ¡‡>&qIGm6Dí:ȵ‡^ +|Yû4*(¹iãdþÕùtAŽJú{Q Ž´VºøãŸ ®žTŠßýìrÉ_·Bâ×ÌàØ]'X[*ÐÈ%=:}ÕB*ý<*î9˜¸å¡æäÝ\åú04n”Ÿ}]y÷›»µâI+2ûnnÔý_¤ˆ¬«ƒˆô3òƘbòÐÂпvâ.´ÕÇ^á=6óÊÃãüÖÿð̲‘ hñKºÆè=/´¢ ¦Á‘³º¦Ø=ÀoÿŸK¼0OÞ²20_&[§ÛÔßÅÖK¼¾ï3$ÔW F­ Õ‡5îöŠ's +xâš•”7¾)êã–eU¤eoö,ä¢ÄÂú—ZþÝ…~pýå·-Ĭ?†àIg4ðO¿1Ÿ~àç\ Ê^ŽÔ¼ä£Nw6Åž]U£2Öõ͉AÞ]_KîÃuMÞóm[ÉËÏ㨊¯“lö·é£ó† ü/‡~ô»úá(—|à¤Ô횉E›Jɸ¸áñ¸¨é¹™Y÷¢”|VRŸð¿ôã9,íO·èöÆPs̶[ÔB³—u°ô ;½qÛŧŒëÖŒàØ~ö%3åÏÉîŠëZdꛉÛødËA¸ùŒ}·mB¦mšêÞ5ù¦¤¨ qßGYøC7›¸¢'•í»Ø¤}—€&ç-š{L\ûbDPûØ×ÞødN†x¿¤¥—»„Õw,Ì‚ëjþãÉîê'@zèâ—¾˜‘‚“=½°~]څΆ¬ëz2xª·ö©GPõ`¼­1ba ñý†òñË( zxtfÀÁ„ŠšRÏXåßü4ô +ê«YøušùÅË8±ÒÝ^N.þpf“óbßÇn_3¢³{kδ—Ý´ÐÒÎ1 +ŸÆ¤Ü:®F¼;³c…e©y¯±×¦ûUVrµ·«ðŽ™þþO þåùÑ–ýÕo7-døÚ J({ÕÀJ{ó?sáѼìï^e߉-\Õ€c&ÚŠž:Y©7¶Ý®¢¾Àæ>Ù¶“¡ëfLášT‚¢â×\Ê%'7÷ÊXGÍû-+ mTÍÈùï§åû“¶m…¦‡êÞ.¨k_=9ö^ ì¤èÚ²‘´fÂå¬còƒ +lΆ‰Ù8£@Å;Zê¸t1û²¸âÝÉFîõ1QÕ³E"ø^UA#¡xBÚ'¬þx¶1îîñ^ø§Û›Vxþ¢¦òÕŠ œ±ë¡ Cv6k{‚×ñuž#>:ûße += ¨øÉû1Ûåü6Ëïþ<ÃâÌPq‡ØÊ-KÓ§Ýté¶×8©hLY3ãê6Xäbæ_í«‹<Ù^þ☗ðçš_ì”Þ@ğ攽>®&ç_¤¾=­„f\öqAOØìsnjæ¹@ ¥Ï¤ØØsœª×? áÒ/.«š?ÎËjž;y÷<¢Â'Ayqøþ,ÿ‹Ÿ#ø:%|¤wm„T¶f¥Uopq{n>eÃL*YÕ “Bjtü ÀWþަ§M)¿± ßÿìã7½u±Z)\œ¼¾–¼vNì =%ò¯±Ö¼»Û&zýšª¡qGý1d ïeå/ֆʟ/öç¿X×ÔD︙{Njá‹GY7â ¶ ˆÔ¯NlÕ’µeƒl˜PY_G)M›V\á, iÖlÞ1ƒZrÁtOã ;㜞”~`§kX<À˜zÙUOKÓË £l²½æ‘•ð‡ <ü¤¤îÝÙ©¶š{nÔÇe%§qVI«ã3/Lu2W‡¸õ+*d¦‘¸nÆ-6²Kl€–ñõBb·]Tо +;œ AM >ÃUŒá«ý½õ/¢ª‹C¨‚ïsBź•P²¤jŽY!¨d;§ò‘žzÁ+(y¼e!V´`sÿ®Ozqv¤R´b"WØù©ç-̸6^Rø´4'곇‰ý<&ௌA˜ÒˆK*JÆÛgÙÜC/?íGuîõ¯¦$%7œ´ NNÆ%¡Qðþ/tvÌím'·mÏMhôµæßÑbbþà=ùI\öôølGþݾ:d¦7äFÞ?Å®}úÙMÄþgžÓöu‚ U<“ÞÚ´5%|Ÿâ‹×í4ä0#ÿ¾‹_pÿ»Ÿ}T; Úq+V4èŒö)ÐWýhn öù‚†I,ˆ:ƒHvjLRõiˆ§‹jPÒTOù;wkɃ>xêoÌ‚W?é)‰—×ô IVDzPßµçbz«Möm¦Ó¬™òË +äI€ÏÁ)ß&ÑuÿÌ‹Ô! ‘<ÒYóy†Jøà´|›¡F1E?&I°¯~ $d endstream endobj 7 0 obj [6 0 R] endobj 33 0 obj <> endobj xref 0 34 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000059480 00000 n +0000000000 00000 f +0000061708 00000 n +0000061522 00000 n +0000794808 00000 n +0000059531 00000 n +0000059933 00000 n +0000078334 00000 n +0000078221 00000 n +0000060507 00000 n +0000060961 00000 n +0000061009 00000 n +0000061592 00000 n +0000061623 00000 n +0000062117 00000 n +0000062374 00000 n +0000078408 00000 n +0000078806 00000 n +0000080129 00000 n +0000090620 00000 n +0000156208 00000 n +0000221796 00000 n +0000270104 00000 n +0000335692 00000 n +0000401280 00000 n +0000466868 00000 n +0000532456 00000 n +0000598044 00000 n +0000663632 00000 n +0000729220 00000 n +0000794831 00000 n +trailer <]>> startxref 795044 %%EOF \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpgmd-search-stats-serialize.pdf b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpgmd-search-stats-serialize.pdf new file mode 100644 index 0000000..b63fbdb Binary files /dev/null and b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpgmd-search-stats-serialize.pdf differ diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpress-minifam.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpress-minifam.out new file mode 100644 index 0000000..be70fb7 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpress-minifam.out @@ -0,0 +1,6 @@ +Working... done. +Pressed and indexed 3 HMMs (3 names and 2 accessions). +Models pressed into binary file: minifam.h3m +SSI index for binary model file: minifam.h3i +Profiles (MSV part) pressed into: minifam.h3f +Profiles (remainder) pressed into: minifam.h3p diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out new file mode 100644 index 0000000..277d401 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out @@ -0,0 +1,18 @@ +# hmmscan :: search sequence(s) against a profile database +# HMMER 3.3.2 (Nov 2020); http://hmmer.org/ +# Copyright (C) 2020 Howard Hughes Medical Institute. +# Freely distributed under the BSD open source license. +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# query sequence file: 7LESS_DROME +# target HMM database: minifam +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +Query: 7LESS_DROME [L=2554] +Accession: P13368 +Description: RecName: Full=Protein sevenless; EC=2.7.10.1; +Scores for complete sequence (score includes all domains): + --- full sequence --- --- best 1 domain --- -#dom- + E-value score bias E-value score bias exp N Model Description + ------- ------ ----- ------- ------ ----- ---- -- -------- ----------- + 1.7e-56 176.4 0.9 7e-16 46.2 0.9 9.8 9 fn3 Fibronectin type III domain + 2.3e-41 129.5 0.0 3.8e-41 128.8 0.0 1.3 1 Pkinase Protein kinase domain diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out2 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out2 new file mode 100644 index 0000000..2f900ea --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out2 @@ -0,0 +1,13 @@ +Domain annotation for each model (and alignments): +>> fn3 Fibronectin type III domain + # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc + --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ---- + 1 ? -1.9 0.0 0.48 0.71 60 72 .. 396 408 .. 395 410 .. 0.87 + 2 ! 41.9 0.0 1e-14 1.5e-14 2 83 .. 440 520 .. 439 521 .. 0.95 + 3 ! 15.1 0.0 2.3e-06 3.5e-06 14 84 .. 838 913 .. 827 914 .. 0.74 + 4 ! 4.6 0.0 0.0044 0.0066 6 36 .. 1206 1236 .. 1203 1251 .. 0.83 + 5 ! 22.1 0.0 1.5e-08 2.3e-08 13 79 .. 1313 1380 .. 1305 1384 .. 0.82 + 6 ? 0.4 0.0 0.09 0.14 57 72 .. 1754 1769 .. 1742 1769 .. 0.88 + 7 ! 46.2 0.9 4.7e-16 7e-16 1 82 [. 1800 1888 .. 1800 1891 .. 0.91 + 8 ! 21.0 0.0 3.3e-08 5e-08 5 74 .. 1904 1967 .. 1901 1977 .. 0.90 + 9 ! 8.9 0.0 0.0002 0.0003 1 85 [] 1994 2107 .. 1994 2107 .. 0.81 diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out3 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out3 new file mode 100644 index 0000000..a5fa917 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-minifam-sevenless.out3 @@ -0,0 +1,6 @@ + == domain 2 score: 41.9 bits; conditional E-value: 1e-14 + SBCEEEEEEESSSEEEEEEE-CSSSSSTECEEEEEEEETTSSSTEEEEEEESTCSEEEEESSSTTEEEEEEEEEEETTEEEE CS + fn3 2 aPsnlsvtevtstsltvsWtppedgngpitgYeveyrpknegeewneitvpgtttsvtltgLkpgteYevrVqavngggegp 83 + aP +++ ++ l v+W+p + ngpi+gY++++++++++ + e+ vp s+++++L++gt+Y++ + +n++gegp + 7LESS_DROME 440 APVIEHLMGLDDSHLAVHWHPGRFTNGPIEGYRLRLSSSEGNA-TSEQLVPAGRGSYIFSQLQAGTNYTLALSMINKQGEGP 520 + 77778899999****************************9997.***********************************997 PP diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-noargs.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-noargs.out new file mode 100644 index 0000000..4d94dba --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmscan-noargs.out @@ -0,0 +1,5 @@ +# hmmscan :: search sequence(s) against a profile database +# HMMER 3.3.2 (Nov 2020); http://hmmer.org/ +# Copyright (C) 2020 Howard Hughes Medical Institute. +# Freely distributed under the BSD open source license. +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out new file mode 100644 index 0000000..fd21f18 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out @@ -0,0 +1,4 @@ + --- full sequence --- --- best 1 domain --- -#dom- + E-value score bias E-value score bias exp N Sequence Description + ------- ------ ----- ------- ------ ----- ---- -- -------- ----------- + 5.6e-57 176.4 0.9 2.3e-16 46.2 0.9 9.8 9 7LESS_DROME RecName: Full=Protein sevenless; EC=2.7 diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out2 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out2 new file mode 100644 index 0000000..c33f4aa --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out2 @@ -0,0 +1 @@ +Domain annotation for each sequence (and alignments): \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out3 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out3 new file mode 100644 index 0000000..f36396a --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out3 @@ -0,0 +1,12 @@ +>> 7LESS_DROME RecName: Full=Protein sevenless; EC=2.7.10.1; + # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc + --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ---- + 1 ? -1.9 0.0 0.24 0.24 60 72 .. 396 408 .. 395 410 .. 0.87 + 2 ! 41.9 0.0 5.1e-15 5.1e-15 2 83 .. 440 520 .. 439 521 .. 0.95 + 3 ! 15.1 0.0 1.2e-06 1.2e-06 14 84 .. 838 913 .. 827 914 .. 0.74 + 4 ! 4.6 0.0 0.0022 0.0022 6 36 .. 1206 1236 .. 1203 1251 .. 0.83 + 5 ! 22.1 0.0 7.6e-09 7.6e-09 13 79 .. 1313 1380 .. 1305 1384 .. 0.82 + 6 ? 0.4 0.0 0.045 0.045 57 72 .. 1754 1769 .. 1742 1769 .. 0.88 + 7 ! 46.2 0.9 2.3e-16 2.3e-16 1 82 [. 1800 1888 .. 1800 1891 .. 0.91 + 8 ! 21.0 0.0 1.7e-08 1.7e-08 5 74 .. 1904 1967 .. 1901 1977 .. 0.90 + 9 ! 8.9 0.0 9.8e-05 9.8e-05 1 85 [] 1994 2107 .. 1994 2107 .. 0.81 diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out4 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out4 new file mode 100644 index 0000000..cdaa77f --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-sevenless.out4 @@ -0,0 +1,6 @@ + == domain 2 score: 41.9 bits; conditional E-value: 5.1e-15 + SBCEEEEEEESSSEEEEEEE-CSSSSSTECEEEEEEEETTSSSTEEEEEEESTCSEEEEESSSTTEEEEEEEEEEETTEEEE CS + fn3 2 aPsnlsvtevtstsltvsWtppedgngpitgYeveyrpknegeewneitvpgtttsvtltgLkpgteYevrVqavngggegp 83 + aP +++ ++ l v+W+p + ngpi+gY++++++++++ + e+ vp s+++++L++gt+Y++ + +n++gegp + 7LESS_DROME 440 APVIEHLMGLDDSHLAVHWHPGRFTNGPIEGYRLRLSSSEGNA-TSEQLVPAGRGSYIFSQLQAGTNYTLALSMINKQGEGP 520 + 77778899999****************************9997.***********************************997 PP diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-uniprot.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-uniprot.out new file mode 100644 index 0000000..d65d832 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-fn3-uniprot.out @@ -0,0 +1,10 @@ +>> sp|P13368|7LESS_DROME Protein sevenless OS=Drosophila melanogaster OX=7227 GN=sev PE=1 SV=2 + # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc + --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ---- + 1 ! 41.9 0.0 4e-12 2.9e-09 2 83 .. 440 520 .. 439 521 .. 0.95 + 2 ! 15.1 0.0 0.00093 0.66 14 84 .. 838 913 .. 827 914 .. 0.74 + 3 ? 4.6 0.0 1.8 1.2e+03 6 36 .. 1206 1236 .. 1203 1251 .. 0.83 + 4 ! 22.1 0.0 6e-06 0.0043 13 79 .. 1313 1380 .. 1305 1384 .. 0.82 + 5 ! 46.2 0.9 1.9e-13 1.3e-10 1 82 [. 1800 1888 .. 1800 1891 .. 0.91 + 6 ! 21.0 0.0 1.3e-05 0.0094 5 74 .. 1904 1967 .. 1901 1977 .. 0.90 + 7 ? 8.9 0.0 0.078 55 1 85 [] 1994 2107 .. 1994 2107 .. 0.81 diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out new file mode 100644 index 0000000..6f9320e --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out @@ -0,0 +1,11 @@ +# hmmsearch :: search profile(s) against a sequence database +# HMMER 3.3.2 (Nov 2020); http://hmmer.org/ +# Copyright (C) 2020 Howard Hughes Medical Institute. +# Freely distributed under the BSD open source license. +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# query HMM file: globins4.hmm +# target sequence database: uniprot_sprot.fasta +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +Query: globins4 [M=149] +Scores for complete sequences (score includes all domains): diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out2 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out2 new file mode 100644 index 0000000..49066d4 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out2 @@ -0,0 +1,9 @@ + --- full sequence --- --- best 1 domain --- -#dom- + E-value score bias E-value score bias exp N Sequence Description + ------- ------ ----- ------- ------ ----- ---- -- -------- ----------- + 4.9e-65 223.2 0.1 5.4e-65 223.0 0.1 1.0 1 sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gor + 6.8e-65 222.7 0.1 7.6e-65 222.6 0.1 1.0 1 sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapien + 6.8e-65 222.7 0.1 7.6e-65 222.6 0.1 1.0 1 sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscu + 6.8e-65 222.7 0.1 7.6e-65 222.6 0.1 1.0 1 sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglod + 1.2e-64 222.0 0.1 1.3e-64 221.8 0.1 1.0 1 sp|P02025|HBB_HYLLA Hemoglobin subunit beta OS=Hylobates l + 2.1e-64 221.2 0.2 2.3e-64 221.0 0.2 1.0 1 sp|P02033|HBB_PILBA Hemoglobin subunit beta OS=Piliocolobu diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out3 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out3 new file mode 100644 index 0000000..3a120d0 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmsearch-globins.out3 @@ -0,0 +1,14 @@ +Internal pipeline statistics summary: +------------------------------------- +Query model(s): 1 (149 nodes) +Target sequences: 563552 (203007781 residues searched) +Passed MSV filter: 20725 (0.0367757); expected 11271.0 (0.02) +Passed bias filter: 17002 (0.0301694); expected 11271.0 (0.02) +Passed Vit filter: 2323 (0.00412207); expected 563.6 (0.001) +Passed Fwd filter: 1129 (0.00200336); expected 5.6 (1e-05) +Initial search space (Z): 563552 [actual number of targets] +Domain search space (domZ): 1129 [number of targets reported over threshold] +# CPU time: 2.15u 0.09s 00:00:02.23 Elapsed: 00:00:00.90 +# Mc/sec: 33479.07 +// +[ok] diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmstat-minifam.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmstat-minifam.out new file mode 100644 index 0000000..6f6cef2 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmstat-minifam.out @@ -0,0 +1,11 @@ +# hmmstat :: display summary statistics for a profile file +# HMMER 3.3.2 (Nov 2020); http://hmmer.org/ +# Copyright (C) 2020 Howard Hughes Medical Institute. +# Freely distributed under the BSD open source license. +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# +# idx name accession nseq eff_nseq M relent info p relE compKL +# ---- -------------------- ------------ -------- -------- ------ ------ ------ ------ ------ +1 globins4 - 4 0.96 149 0.59 0.59 0.52 0.03 +2 fn3 PF00041.20 98 12.20 85 0.67 0.64 0.60 0.04 +3 Pkinase PF00069.24 38 2.57 259 0.59 0.57 0.50 0.02 diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/inclusions.def b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/inclusions.def new file mode 100644 index 0000000..af038aa --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/inclusions.def @@ -0,0 +1,71 @@ +\newcommand{\UNIrelease}{2020\_05} +\newcommand{\UNInseq}{563,552} + +\newcommand{\HMMERversion}{3.3.2} +\newcommand{\HMMERdate}{Nov 2020} + +\newcommand{\BGLnseq}{4} +\newcommand{\BGLalen}{171} +\newcommand{\BGLmlen}{149} +\newcommand{\BGLgaps}{22} +\newcommand{\BGLeffn}{0.96} +\newcommand{\BGLre}{0.589} + +\newcommand{\HMMERfmtversion}{f} +\newcommand{\HMMERsavestamp}{[3.3.2 | Nov 2020]} + +\newcommand{\SGUevalue}{4.9e-65} +\newcommand{\SGUbitscore}{223.2} +\newcommand{\SGUbias}{0.1} +\newcommand{\SGUorigscore}{223.3} +\newcommand{\SGUdombitscore}{223.0} +\newcommand{\SGUseqname}{HBB\_GORGO} +\newcommand{\SGUmsvpass}{3.7} +\newcommand{\SGUbiaspass}{17002} +\newcommand{\SGUvitpass}{2323} +\newcommand{\SGUfwdpass}{1129} +\newcommand{\SGUelapsed}{0.9} + +\newcommand{\SFSevalue}{5.6e-57} +\newcommand{\SFSbitscore}{176.4} +\newcommand{\SFSdomevalue}{2.3e-16} +\newcommand{\SFSdombitscore}{46.2} +\newcommand{\SFSexpdom}{9.8} +\newcommand{\SFSndom}{9} + +\newcommand{\SFSmaxdom}{7} +\newcommand{\SFSmaxdomu}{5} +\newcommand{\SFSmaxsc}{46.2} +\newcommand{\SFSievalue}{2.3e-16} +\newcommand{\SFSuievalue}{1.3e-10} +\newcommand{\SFSdomZ}{794} +\newcommand{\SFSucevalue}{1.9e-13} +\newcommand{\SFSaidx}{1} +\newcommand{\SFSascore}{-1.9} +\newcommand{\SFSaevalue}{0.24} +\newcommand{\SFSauevalue}{191} +\newcommand{\SFSacoords}{395-410} +\newcommand{\SFSbidx}{6} +\newcommand{\SFSbscore}{0.4} +\newcommand{\SFSbevalue}{0.045} +\newcommand{\SFSbuevalue}{35.7} +\newcommand{\SFSbcoords}{1742-1769} +\newcommand{\SFSainsig}{4.6} +\newcommand{\SFSbinsig}{8.9} + +\newcommand{\JHUninc}{955} +\newcommand{\JHUnsig}{955} + +\newcommand{\NMHafrom}{302390} +\newcommand{\NMHato}{302466} +\newcommand{\NMHbfrom}{302466} +\newcommand{\NMHbto}{302389} +\newcommand{\NMHnres}{660000} +\newcommand{\NMHntop}{330000} +\newcommand{\NMHnssv}{73493} +\newcommand{\NMHfracssv}{11.1} +\newcommand{\NMHnbias}{49311} +\newcommand{\NMHfracbias}{7.5} +\newcommand{\NMHnvit}{4022} +\newcommand{\NMHfracvit}{0.6} +\newcommand{\NMHnfwd}{1562} diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out new file mode 100644 index 0000000..4b6e04a --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out @@ -0,0 +1,23 @@ +# jackhmmer :: iteratively search a protein sequence against a protein database +# HMMER 3.3.2 (Nov 2020); http://hmmer.org/ +# Copyright (C) 2020 Howard Hughes Medical Institute. +# Freely distributed under the BSD open source license. +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# query sequence file: HBB_HUMAN +# target sequence database: uniprot_sprot.fasta +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +Query: HBB_HUMAN [L=146] +Description: Human beta hemoglobin. + +Scores for complete sequences (score includes all domains): + --- full sequence --- --- best 1 domain --- -#dom- + E-value score bias E-value score bias exp N Sequence Description + ------- ------ ----- ------- ------ ----- ---- -- -------- ----------- ++ 3.4e-98 330.5 0.6 3.8e-98 330.3 0.6 1.0 1 sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapien ++ 3.4e-98 330.5 0.6 3.8e-98 330.3 0.6 1.0 1 sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscu ++ 3.4e-98 330.5 0.6 3.8e-98 330.3 0.6 1.0 1 sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglod ++ 9.9e-98 329.0 0.7 1.1e-97 328.8 0.7 1.0 1 sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gor ++ 3e-96 324.2 0.5 3.3e-96 324.0 0.5 1.0 1 sp|P02025|HBB_HYLLA Hemoglobin subunit beta OS=Hylobates l ++ 3e-95 320.9 0.6 3.3e-95 320.8 0.6 1.0 1 sp|P02032|HBB_SEMEN Hemoglobin subunit beta OS=Semnopithec +... diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out2 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out2 new file mode 100644 index 0000000..7439d21 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out2 @@ -0,0 +1,5 @@ ++ 0.00049 25.0 0.2 0.00058 24.8 0.2 1.0 1 sp|Q0KIY5|MYG_KOGBR Myoglobin OS=Kogia breviceps OX=27615 ++ 0.00063 24.6 0.0 0.00074 24.4 0.0 1.0 1 sp|P14399|MYG_MUSAN Myoglobin OS=Mustelus antarcticus OX=7 + ------ inclusion threshold ------ + 0.0011 23.9 0.3 0.012 20.5 0.3 2.0 1 sp|P81044|HBAZ_MACEU Hemoglobin subunit zeta (Fragments) OS + 0.0014 23.5 0.0 0.0018 23.2 0.0 1.1 1 sp|O80405|LGB3_PEA Leghemoglobin Lb120-1 OS=Pisum sativum diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out3 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out3 new file mode 100644 index 0000000..7a9ee88 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out3 @@ -0,0 +1,9 @@ +@@ New targets included: 954 +@@ New alignment includes: 955 subseqs (was 1), including original query +@@ Continuing to next round. + +@@ +@@ Round: 2 +@@ Included in MSA: 955 subsequences (query + 954 subseqs from 954 targets) +@@ Model size: 146 positions +@@ diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out4 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out4 new file mode 100644 index 0000000..5ec563d --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out4 @@ -0,0 +1,9 @@ +Scores for complete sequences (score includes all domains): + --- full sequence --- --- best 1 domain --- -#dom- + E-value score bias E-value score bias exp N Sequence Description + ------- ------ ----- ------- ------ ----- ---- -- -------- ----------- + 8.9e-71 241.7 0.2 9.8e-71 241.5 0.2 1.0 1 sp|P02055|HBB_MELME Hemoglobin subunit beta OS=Meles meles + 1.5e-70 240.9 0.3 1.7e-70 240.8 0.3 1.0 1 sp|P15449|HBB_MELCA Hemoglobin subunit beta OS=Mellivora c + 1.9e-70 240.6 0.5 2.1e-70 240.5 0.5 1.0 1 sp|P81042|HBE_MACEU Hemoglobin subunit epsilon OS=Macropus + 2.2e-70 240.4 0.3 2.4e-70 240.2 0.3 1.0 1 sp|P23602|HBB_MUSLU Hemoglobin subunit beta OS=Mustela lut +... diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out5 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out5 new file mode 100644 index 0000000..e1eb3f3 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out5 @@ -0,0 +1,12 @@ +... ++ 1e-19 76.1 0.0 1.2e-19 75.8 0.0 1.0 1 sp|P86880|NGB_CHAAC Neuroglobin OS=Chaenocephalus aceratus ++ 1.4e-19 75.6 0.0 1.6e-19 75.4 0.0 1.0 1 sp|P59743|NGB2_ONCMY Neuroglobin-2 OS=Oncorhynchus mykiss O ++ 1.5e-19 75.5 0.0 1.7e-19 75.3 0.0 1.0 1 sp|P86881|NGB_DISMA Neuroglobin OS=Dissostichus mawsoni OX + 1.7e-19 75.3 0.0 2.1e-19 75.0 0.0 1.0 1 sp|P59742|NGB1_ONCMY Neuroglobin-1 OS=Oncorhynchus mykiss O + 8.8e-19 73.0 0.0 9.4e-19 72.9 0.0 1.0 1 sp|P81041|HBO_MACEU Hemoglobin subunit omega (Fragment) OS ++ 1.2e-18 72.6 0.0 1.4e-18 72.3 0.0 1.0 1 sp|Q90YJ2|NGB_DANRE Neuroglobin OS=Danio rerio OX=7955 GN= + 1.4e-18 72.3 0.0 1.6e-18 72.1 0.0 1.0 1 sp|P23216|GLBP1_GLYDI Globin, major polymeric component P1 O + 3.3e-18 71.2 0.0 3.8e-18 70.9 0.0 1.0 1 sp|Q99JA8|NGB_RAT Neuroglobin OS=Rattus norvegicus OX=10 ++ 3.8e-18 70.9 0.2 4.1e-18 70.8 0.2 1.1 1 sp|Q7M3C1|MYG_AILME Myoglobin (Fragment) OS=Ailuropoda mel + 6.8e-18 70.1 0.0 7.1e-18 70.1 0.0 1.0 1 sp|P21659|GLBP2_GLYDI Globin, polymeric component P2 OS=Glyc +... diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out6 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out6 new file mode 100644 index 0000000..215e75d --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out6 @@ -0,0 +1,9 @@ +@@ New targets included: 154 +@@ New alignment includes: 1111 subseqs (was 955), including original query +@@ Continuing to next round. + +@@ +@@ Round: 3 +@@ Included in MSA: 1111 subsequences (query + 1110 subseqs from 1108 targets) +@@ Model size: 146 positions +@@ diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out7 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out7 new file mode 100644 index 0000000..24abdb6 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/jackhmmer-hbb-uniprot.out7 @@ -0,0 +1,8 @@ +@@ New targets included: 0 +@@ New alignment includes: 1170 subseqs (was 1170), including original query +@@ +@@ CONVERGED (in 4 rounds). +@@ + +// +[ok] \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out new file mode 100644 index 0000000..a47eadf --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out @@ -0,0 +1,8 @@ + E-value score bias Sequence start end Description + ------- ------ ----- -------- ----- ----- ----------- + 6.8e-11 39.9 7.2 humanchr1_frag 302390 302466 + 1.2e-08 32.8 6.8 humanchr1_frag 302466 302389 + 4.1e-08 31.0 8.2 humanchr1_frag 174456 174498 + 4e-06 24.7 7.0 humanchr1_frag 174493 174456 + ------ inclusion threshold ------ + 0.84 7.6 7.5 humanchr1_frag 304073 304104 diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out2 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out2 new file mode 100644 index 0000000..0bfbcf4 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out2 @@ -0,0 +1 @@ +Annotation for each hit (and alignments): diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out3 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out3 new file mode 100644 index 0000000..a2a92d5 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out3 @@ -0,0 +1,5 @@ +>> humanchr1_frag + score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to sq len acc + ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- ---- + ! 39.9 7.2 6.8e-11 4 80 .] 302390 302466 .. 302387 302466 .. 330000 0.89 + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out4 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out4 new file mode 100644 index 0000000..4c8677a --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out4 @@ -0,0 +1,7 @@ + Alignment: + score: 39.9 bits + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx RF + MADE1 4 ggttggtgcaaaagtaattgcggtttttgccattacttttaatggc....aaaaaccgcaattacttttgcaccaacctaa 80 + ggt ggtgcaaaa aattg ggtttttgccatt cttttaat gc aaaa g aa t ctttt caccaa ctaa + humanchr1_frag 302390 GGTCGGTGCAAAATCAATTGTGGTTTTTGCCATTGCTTTTAATTGCttttAAAA---GTAA-TGCTTTTACACCAATCTAA 302466 + 89*******************************************966655555...4555.68**************997 PP diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out5 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out5 new file mode 100644 index 0000000..d61eab6 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/nhmmer-made1.out5 @@ -0,0 +1,13 @@ +Internal pipeline statistics summary: +------------------------------------- +Query model(s): 1 (80 nodes) +Target sequences: 1 (660000 residues searched) +Residues passing SSV filter: 73493 (0.111); expected (0.02) +Residues passing bias filter: 49311 (0.0747); expected (0.02) +Residues passing Vit filter: 4022 (0.00609); expected (0.003) +Residues passing Fwd filter: 1562 (0.00237); expected (3e-05) +Total number of hits: 5 (0.000406) +# CPU time: 0.01u 0.00s 00:00:00.01 Elapsed: 00:00:00.01 +# Mc/sec: 4388.53 +// +[ok] diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/sevenless_domains.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/sevenless_domains.out new file mode 100644 index 0000000..6b57e20 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/sevenless_domains.out @@ -0,0 +1,7 @@ +FT DOMAIN 440 533 Fibronectin type-III 1. {ECO:0000255|PROSITE-ProRule:PRU00316}. +FT DOMAIN 824 924 Fibronectin type-III 2. {ECO:0000255|PROSITE-ProRule:PRU00316}. +FT DOMAIN 1202 1290 Fibronectin type-III 3. {ECO:0000255|PROSITE-ProRule:PRU00316}. +FT DOMAIN 1294 1397 Fibronectin type-III 4. {ECO:0000255|PROSITE-ProRule:PRU00316}. +FT DOMAIN 1801 1901 Fibronectin type-III 5. {ECO:0000255|PROSITE-ProRule:PRU00316}. +FT DOMAIN 1902 1988 Fibronectin type-III 6. {ECO:0000255|PROSITE-ProRule:PRU00316}. +FT DOMAIN 1995 2117 Fibronectin type-III 7. {ECO:0000255|PROSITE-ProRule:PRU00316}. diff --git a/bioinformaticsProject/hmmer/documentation/userguide/install.tex b/bioinformaticsProject/hmmer/documentation/userguide/install.tex new file mode 100644 index 0000000..683a5ae --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/install.tex @@ -0,0 +1,555 @@ +\newpage +\chapter{Installation} +\label{chapter:installation} +\setcounter{footnote}{0} + +Choose one of the following three sections depending on whether you +want to install a precompiled HMMER package for your system, compile +from our source code +distribution,\sidenote{\href{http://hmmer.org}{hmmer.org}} or compile +source code from our github +repository.\sidenote{\href{https://github.com/EddyRivasLab/hmmer}{github.com/EddyRivasLab/hmmer}} +We recommend that you use one of the first two options. You can +skip the gory details section unless you're already proficient and you +want to use optional configuration or installation parameters. + + +\section{Quickest: install a precompiled binary package} + +The easiest way to install HMMER is to install a precompiled package +for your operating system.\sidenote{Thanks to all the people who do + the packaging!} +Some examples that I know of: + +\vspace{1ex} +\begin{tabular}{ll} + \monob{\% brew install hmmer} & \mono{\# OS/X, HomeBrew} \\ + \monob{\% port install hmmer} & \mono{\# OS/X, MacPorts} \\ + \monob{\% apt install hmmer} & \mono{\# Linux (Ubuntu, Debian...)} \\ + \monob{\% dnf install hmmer} & \mono{\# Linux (Fedora)} \\ + \monob{\% yum install hmmer} & \mono{\# Linux (older Fedora)} \\ + \monob{\% conda install -c biocore hmmer} & \mono{\# Anaconda} \\ +\end{tabular} + +\section{Quick-ish: compile the source code} + +You can obtain the source code as a compressed \mono{.tar.gz} tarball +from \href{http://hmmer.org}{hmmer.org} in your browser, or you can also +\mono{wget} it on the command line from +\href{http://eddylab.org/software/hmmer/hmmer-\HMMERversion{}.tar.gz}{eddylab.org/software/hmmer/hmmer-\HMMERversion{}.tar.gz}. +Uncompress and untar it, and switch into the \mono{hmmer-\HMMERversion{}} +directory. For example: + + \vspace{1ex} + \user{\% wget http://eddylab.org/software/hmmer/hmmer-\HMMERversion{}.tar.gz}\\ + \user{\% tar xf hmmer-\HMMERversion{}.tar.gz}\\ + \user{\% cd hmmer-\HMMERversion{}} + \vspace{1ex} + +Next you'll use \mono{./configure} to configure HMMER for your system, +but first, decide where you want HMMER installed. By default, our +\mono{configure} script will set things up to be installed under +\mono{/usr/local}. HMMER programs are then installed in +\mono{/usr/local/bin}, and HMMER man pages in +\mono{/usr/local/share/man/man1/}. These are the standard unix-y +places to put things, but you may need root privileges to do it (so +you might need something like \mono{sudo make install} when you get to +that part below). If you want to install somewhere else, you want to +set a different install directory prefix using \mono{./configure + {-}{-}prefix /your/install/path}, so programs and man pages will be +installed in \mono{/your/install/path/bin} +\mono{/your/install/path/share/man/man1/} respectively.\sidenote{These + directories will be created, if they didn't already exist.} For +example, you might do \mono{./configure {-}{-}prefix=\$\{HOME\}}, for +installation in \mono{\$\{HOME\}/bin/} and +\mono{\$\{HOME\}/share/man/man1} subdirectories in your own home +directory. + +So, to configure and compile: + + \vspace{1ex} + \user{\% ./configure {-}{-}prefix=/your/install/path}\\ + \user{\% make} + \vspace{1ex} + +Optionally, to compile and run a test suite\sidenote{The test suite + uses scripts, and requires that you have \mono{python3} and + \mono{perl}. We haven't encountered any systems without perl. If + you don't have \mono{python3}, \mono{make check} will fail and tell + you so. But HMMER is still fine, and you can install it -- running + the test suite is optional!}: + + \vspace{1ex} + \user{\% make check} + \vspace{1ex} + +The newly compiled binaries are now in the \mono{src} directory. You +can run them from there, or manually copy them wherever. You don't +have to install HMMER programs to run them. Optionally, to install the +programs and man pages, do: + + \vspace{1ex} + \user{\% make install} + \vspace{1ex} + +Optionally, you can also install a set of additional small tools +(``miniapps'') from our Easel library. We don't do this by default, +in case you already have a copy of Easel separately installed (from +Infernal, for example). To install Easel miniapps and their man pages +too: + + \vspace{1ex} + \user{\% cd easel; make install} + \vspace{1ex} + +If you decide you did something wrong after the \mono{./configure}, +\mono{make distclean} will clean up everything that got built and +restore the distribution to a pristine state, and you can start again. + + +\section{Geeky: compile source from our github repository} + +Alternatively, you can clone our git repository master +branch:\sidenote{As of 3.2, our git master branch is the stable + current release, as the git deities prefer. This wasn't true for us + in the past.} + + \vspace{1ex} + \user{\% git clone https://github.com/EddyRivasLab/hmmer hmmer-\HMMERversion{}} \\ + \user{\% cd hmmer-\HMMERversion{}} \\ + \user{\% git clone https://github.com/EddyRivasLab/easel } \\ + \user{\% autoconf } + \vspace{1ex} + +This is now essentially the same as if you unpacked a tarball, so from +here, follow the \mono{./configure; make} instructions above. + +One difference is that our distribution tarballs include this user +guide as a PDF, in addition to its \LaTeX\ source code. The github +repo only has the source \LaTeX\ files. To compile the PDF, see +``compiling the user guide'' in the gory details below. + +You need our Easel library, in addition to the HMMER repository. We +don't guarantee that the two master branches are necessarily +compatible at all times. It's possible that the Easel master branch +has advanced in support of an Infernal release, for example. You might +have to check out the Easel tag that corresponds to the more recent +stable HMMER release. + +If you want to suggest changes to us by submitting a pull request on +GitHub, please base your changes against our \mono{develop} branches. +Our master branches are for stable releases. + + + +\section{Gory details} + +\subsection{System requirements} + +\paragraph{Operating system:} HMMER is designed for +POSIX-compatible platforms, including UNIX, Linux, and Mac OS/X. The +POSIX standard essentially includes all operating systems except +Microsoft Windows.\sidenote{Windows 10 includes a Linux subsystem that + allows you to install a Linux OS inside Windows, with a bash command + shell, and this should work fine. For older Windows, there are + add-on products available for making Windows more POSIX-compliant + and more compatible with GNU-ish configures and builds. One such + product is Cygwin, \href{http://www.cygwin.com}{www.cygwin.com}, + which is freely available.} We develop primarily on Apple OS/X and +x86\_64/Linux (both Intel and AMD), and we test releases on a wider +range of platforms.\sidenote{Thanks to the GCC Compile Farm Project, + especially its Toulouse and Oregon data centers, for providing + access to some of the platforms that we use for testing.} + + +\paragraph{Processor:} HMMER depends on vector parallelization methods +that are processor-specific. H3 requires either an x86-compatible +(Intel/AMD) processor that supports the SSE2 vector instruction set, +and on 32-bit ``powerpc'' or 64-bit ``ppc64'' PowerPC systems that +support the Altivec/VMX instruction set in big-endian mode. + +SSE2 is supported on Intel processors from Pentium 4 on, and AMD +processors from K8 (Athlon 64) on. This includes almost all Intel +processors since 2000 and AMD processors since 2003. + +Altivec/VMX is supported on Motorola G4, IBM G5, and IBM PowerPC +processors starting with the Power6, which includes almost all +PowerPC-based desktop systems since 1999 and servers since +2007.\sidenote{If your platform does not support either of these + vector instruction sets -- or if you're on a ppc64le system that + supports VMX but in little-endian byte order -- the configure script + will stop with an error message.} + +HMMER3 does not support little-endian PowerPC systems (ppc64le). Alas, +the PowerPC world has been moving toward little-endian ppc64le, away +from big-endian ppc64 and powerpc. H3's VMX implementation was +originally developed on an AIX Power 7 system, and Power 7 systems +were big-endian. More recent Power 8 and 9 machines are ``bi-endian'', +bootable into either a big-endian or little-endian system. IBM has +stated that it really, really wants them to all be in little-endian +mode. Among common Linux/PowerPC distros, Debian, Fedora, Red Hat, and +openSUSE still come in either ppc64 and ppc64le flavors; HMMER3 will +run on the former but not the latter. Recent Ubuntu and SUSE for +PowerPC distros are only coming in ppc64le flavor, incompatible with +H3. + +\paragraph{Compiler:} The source code conforms to ANSI +C99 and POSIX standards. It should compile with any ANSI C99 compliant +compiler, including the freely available GNU C compiler \mono{gcc}. +We test the code most frequently using the GNU \mono{gcc}, Apple +\mono{llvm/clang}, and Intel \mono{icc} compilers.\sidenote{On OS/X, + if you're compiling the source, make sure you have XCode installed + so that you have a C compiler.} + + +\paragraph{Libraries and other installation requirements:} +HMMER3 does not have any dependencies other than a C compiler. It +does not require any additional libraries to be installed by you, +other than standard ANSI C99 libraries that are already present on a +system with a C99 compiler. + +The HMMER distribution is bundled with a software library from our lab +called Easel.\sidenote{\href{http://bioeasel.org}{bioeasel.org}} +Bundling Easel instead of making it a separate installation +requirement simplifies installation. Easel is also included in other +software from our lab. For example, +Infernal\sidenote{\href{http://eddylab.org/infernal}{eddylab.org/infernal}} +bundles both HMMER and Easel. If you install the Easel miniapps, you +probably only want to do that once, from the most recent version of +HMMER, Infernal, or Easel itself, to avoid clobbering a newer version +with an older one. + +Our configuration and compilation process uses standard UNIX +utilities. Although these utilities are \emph{supposed} to be +available on all POSIX-compliant systems, there are always a few +crufty old dinosaurs still running out there that do not support all +the features that our \mono{./configure} script and Makefiles are +expecting. We do aim to build cleanly on anything from supercomputers +to Ebay'ed junk, but if you have an old system, you may want to hedge +your bets and install up-to-date versions of GNU command line tools +such as GNU make and GNU grep. + +Running the test suite (and some of our development tools, if you +delve deep into our codebase) requires Perl and Python3 to be +installed. If you don't have them (which should be rare), \mono{make + check} won't work for you, but that's ok because \mono{make} and +\mono{make install} will still work fine. + +Compiling the user guide itself (this document) does require +additional tools to be installed, including \mono{rman} and some extra +\LaTeX\ packages, described below. + + +\subsection{Multicore parallelization is default} + +HMMER supports multicore parallelization using POSIX threads. By +default, the configure script will identify whether your platform +supports POSIX threads (almost all platforms do), and it will +automatically compile in multithreading support. + +To disable multithreading at compile time, compile from source with +the \mono{{-}{-}disable-threads} flag to \mono{./configure}. + +Multithreaded HMMER programs use master/worker parallelization, with +\mono{} worker threads and one master thread. When HMMER is run on +a machine with multiple available cores, the default number of worker +threads is two\footnote{Set by a compile-time configuration option, + \mono{P7\_NCPU}, in \mono{src/p7\_config.h.in}.}. You can control the +number of cores each HMMER process will use for computation with the +\mono{{-}{-}cpu } command line option or the \mono{HMMER\_NCPU} +environment variable. + +If you specify \mono{{-}{-}cpu 0}, a HMMER search program will run in +serial-only mode, with no threading. We use this in debugging when we +suspect something is awry with the parallel implementation, but it's +not something you'd generally want to do in your work. Even with a +single worker thread (\mono{{-}{-}cpu 1}), HMMER will be faster than +serial-only mode, because the master thread handles input and output. + +If you are running HMMER on a cluster that enforces policy on the +number of cores a process can use, you may need to count both the +workers and the master: you may need to tell your cluster management +software that HMMER needs \mono{}+1 cores. + + +\subsection{MPI cluster parallelization is optional} + +MPI (Message Passing Interface) parallelization on clusters is +supported in \mono{hmmbuild} and all search programs except \mono{nhmmer} and +\mono{nhmmscan}. To compile for MPI, you need to have an MPI library +installed, such as OpenMPI.\sidenote{\href{http://www.open-mpi.org}{open-mpi.org}} + +MPI support is not enabled by default. To enable MPI support at +compile time, add the \mono{{-}{-}enable-mpi} option to your +\mono{./configure} command. + +To use MPI parallelization, each program that has an MPI-parallel mode +has an \mono{{-}{-}mpi} command line option. This option activates a +master/worker parallelization mode.\marginnote{Without the + \mono{{-}{-}mpi} option, if you run a program under \mono{mpirun} or + the equivalent on N nodes, you'll be running N duplicates, not a + single MPI-enabled parallel search. Don't do that.} + +The MPI implementation for \mono{hmmbuild} scales well up to hundreds +of processors, and \mono{hmmsearch} scales all right. The other search +programs (\mono{hmmscan}, \mono{phmmer}, and \mono{jackhmmer}) scale +quite poorly, and probably shouldn't be used on more than tens of +processors at most. Improving MPI scaling is something we're working on. + + +\subsection{Using build directories} + +The configuration and compilation process from source supports the use +of separate build trees, using the GNU-standard \mono{VPATH} +mechanism. This allows you to do separate builds for different +processors or with different configuration/compilation options. All +you have to do is run the configure script from the directory you want +to be the root of your build tree. For example: + + \vspace{1ex} + \user{\% mkdir my-hmmer-build}\\ + \user{\% cd my-hmmer-build}\\ + \user{\% ../configure}\\ + \user{\% make} + \vspace{1ex} + +This assumes you have a \mono{make} that supports \mono{VPATH}. If your +system's \mono{make} does not, you can install GNU make. + + +\subsection{Makefile targets} + +\begin{sreitems}{\monob{distclean}} + +\item[\monob{all}] + Builds everything. Same as just saying \mono{make}. + +\item[\monob{check}] + Runs automated test suites in both HMMER and the Easel library. + +\item[\monob{pdf}] + Compiles this user guide. + +\item[\monob{install}] + Installs programs and man pages. + +\item[\monob{uninstall}] + Removes programs and man pages from where \mono{make install} put them. + +\item[\monob{clean}] Removes all files generated by compilation (by + \mono{make}). Configuration (files generated by \mono{./configure}) + is preserved. + +\item[\monob{distclean}] + Removes all files generated by configuration (by \mono{./configure}) + and by compilation (by \mono{make}). + +\end{sreitems} + + +\subsection{Compiling the user guide} + +Compiling this User Guide from its source \LaTeX\ requires \LaTeX, of +course, and also the \mono{rman} program from +\mono{PolyGlotMan}.\sidenote{\href{https://sourceforge.net/projects/polyglotman/}{sourceforge.net/projects/polyglotman}} +It use a customized version of the +Tufte-LaTeX book class\sidenote{\href{https://tufte-latex.github.io/tufte-latex/}{tufte-latex.github.io/tufte-latex}} +(which we include in our source code, so you don't have to +install it), and the Tufte-LaTeX package depends on some optional \LaTeX\ packages +listed at the +Tufte-LaTeX site. +These packages are typically included in bundles in +standard \LaTeX\ distributions such as +TeX Live.\sidenote{\href{https://www.tug.org/texlive/}{www.tug.org/texlive}} +You can probably +identify a short list of basic plus extra \LaTeX\ stuff you need to install on your machine. For +example, on my Mac OS/X laptop, using the MacPorts +package manager:\sidenote{\href{https://www.macports.org/}{www.macports.org}} + + \vspace{1ex} + \user{\% sudo port install texlive}\\ + \user{\% sudo port install texlive-latex-extra}\\ + \user{\% sudo port install rman} + \vspace{1ex} + +Once you have these dependencies, doing: + + \vspace{1ex} + \user{\% make pdf} + \vspace{1ex} + +in the top-level source directory builds \mono{Userguide.pdf} +in the subdirectory \mono{documentation/userguide}. + + +\subsection{What gets installed by \mono{make install}, and where?} + +HMMER only installs programs and man pages. There are 18 programs in +HMMER and 22 in Easel (the Easel ``miniapps''), each with a man page. + +Each program is free-standing. Programs don't depend on any details of +where other files are installed, and they will run fine no matter +where you copy them. Similarly the man pages can be read in any file +location with \mono{man full/path/to/manpage.man}. Nonetheless, it's +most convenient if you put the programs in a directory that's in your +\mono{PATH} and the man pages in a standard man page directory, using +\mono{make install}. + +The top-level Makefile has variables that specify the two +directories where \mono{make install} installs things: + +\vspace{1em} +\begin{tabular}{ll} +Variable & What \\ \hline +\monobi{bindir} & programs \\ +\monobi{man1dir} & man pages \\ +\end{tabular} +\vspace{1em} + +These variables are constructed from others in accordance with GNU +Coding Standards, as follows: + +\vspace{1em} +\begin{tabular}{lll} +Variable & Default & \mono{./configure} option \\ \hline +\monobi{prefix} & \mono{/usr/local} & \mono{-{}-prefix} \\ +\monobi{exec\_prefix} & \monoi{prefix} & \mono{-{}-exec\_prefix} \\ +\monobi{bindir} & \monoi{exec\_prefix}\mono{/bin} & \mono{-{}-bindir} \\ +\monobi{datarootdir} & \monoi{prefix}\mono{/share} & \mono{-{}-datarootdir} \\ +\monobi{mandir} & \monoi{datarootdir}\mono{/man} & \mono{-{}-mandir} \\ +\monobi{man1dir} & \monoi{mandir}\mono{/man1} & \mono{-{}-man1dir} \\ +\end{tabular} +\vspace{1em} + +You can change any of these defaults on the \mono{./configure} command +line using the corresponding option. The most commonly used option is +\mono{{-}{-}prefix}. For example, if you want to install HMMER in a +directory hierarchy all of its own, you might want to do something +like: + + \vspace{1ex} + \user{\% ./configure {-}{-}prefix /usr/local/hmmer-\HMMERversion{}} + \vspace{1ex} + +That would keep HMMER out of your system-wide directories, which might +be desirable. This is a simple way to install multiple versions of +HMMER, for example, without having them clobber each other. Then +you'd add \mono{/usr/local/hmmer-\HMMERversion{}/bin} to your \mono{PATH} and +\mono{/usr/local/hmmer-\HMMERversion{}/share/man} to your \mono{MANPATH}. + +Again, these variables only affect where \mono{make install} copies +stuff. HMMER and Easel programs have no pathnames compiled into them. + +\subsection{Installing both HMMER2 and HMMER3} + +HMMER3 and HMMER2 are distinct codebases that are generally +incompatible with each other. The last release of HMMER2 was 2.3.2 in +2003. HMMER3 was first released in 2010. + +HMMER3 is superior to HMMER2 in almost all respects. One exception is +that HMMER2 is capable of global and glocal alignment, whereas HMMER3 +programs generally only use local alignment.\marginnote{HMMER3's speed + depends on numerical properties that only hold for local alignment. + Its statistics depend on a statistical conjecture that only holds + well for local alignment. The internal HMMER3 API includes global + and glocal alignment modes like HMMER2, but the programs don't use + these modes.} It turned out that some HMMER users need +global/glocal alignment more than they want the speed and statistics, +so HMMER2 still has users. I didn't anticipate this when I wrote +H3. Unfortunately, the two packages have incompatible programs that +have the same names, so installing them both can lead to problems. + +Specifically, HMMER2 installs 9 programs, 6 of which have identical +names with incompatible HMMER3 programs: \mono{hmmalign}, +\mono{hmmbuild}, \mono{hmmconvert}, \mono{hmmemit}, \mono{hmmfetch}, +and \mono{hmmsearch}. + +One workaround is to install the two packages each in their own +hierarchy, as above: \mono{./configure --prefix=somewhere/hmmer-\HMMERversion{}} +for HMMER3, and \mono{./configure --prefix=somewhere/hmmer-2.3.2} for +HMMER2. One set of programs could be in your \mono{PATH}, and you +could call the others using full pathnames. + +Another workaround is simply to copy the HMMER2 programs to an +installation directory while renaming them, bypassing \mono{make install}. +For example, something like: + + \vspace{1ex} + \user{\% cp hmmalign /usr/local/bin/h2-hmmalign} \\ + \user{\% cp hmmconvert /usr/local/bin/h2-hmmconvert} \\ + \user{...} + \vspace{1ex} + +and so on. + +\subsection{Seeing more output from \mono{make}} + +By default, our \mono{make} hides what's really going on with the +compilation with a pretty wrapper that we stole from the source for +\mono{git}. If you want to see what the command lines really look like +in all their ugly glory, pass a \mono{V=1} option (V for ``verbose'') +to \mono{make}, as in: + + \vspace{1ex} + \user{\% make V=1} + \vspace{1ex} + + +\subsection{Staged installations in a buildroot, for a packaging system} + +HMMER's \mono{make install} supports staged installations, accepting +the traditional \mono{DESTDIR} variable that packagers use to specify +a buildroot. For example, you can do: + + \vspace{1ex} + \user{\% make DESTDIR=/rpm/tmp/buildroot install} + \vspace{1ex} + + + + +\subsection{Workarounds for unusual configure/compilation problems} + +\paragraph{Failure when trying to use a + separate build directory.} If you try to build in a build tree +(other than the source tree) and you have any trouble in configuration +or compilation, try just building in the source tree instead. Some +\mono{make} versions don't support the VPATH mechanism needed to use +separate build trees. Another workaround is to install GNU make. + + +\paragraph{Configuration fails, complaining ``no acceptable grep could + be found''.} We've seen this happen on our Sun Sparc/Solaris +machine. It's a known issue in GNU autoconf. You can either install +GNU grep, or you can insist to \mono{./configure} that the Solaris +grep (or whatever grep you have) is ok by explicitly setting +\mono{GREP} to a path to one that works: + + \vspace{1ex} + \user{\% ./configure GREP=/usr/xpg4/bin/grep} + \vspace{1ex} + +\paragraph{Many `make check' tests fail.} We have one report of a +system that failed to link multithread-capable system C libraries +correctly, and instead linked to one or more serial-only +libraries.\footnote{If you're a pro: the telltale phenotype of this + failure is to configure with debugging flags on and recompile. Run + one of the failed unit test drivers (such as + \mono{easel/easel\_utest}) yourself and let it dump core. Use a + debugger to examine the stack trace in the core. If it failed in + \mono{\_\_errno\_location()}, then it's linked a non-thread-capable + system C library.} We were unable to reproduce the problem, and are +not sure what could possibly cause it. We optimistically believe it +was a one-off messed-up system, not our fault, but then we often say +things like that and they turn out to be wrong. If it does happen, it +screws all kinds of things up with the multithreaded implementation. A +workaround is to shut threading off: + + \vspace{1ex} + \user{\% ./configure {-}{-}disable-threads} + \vspace{1ex} + +This will compile code won't parallelize across multiple cores, of +course, but it will still work fine on a single processor at a time +(and MPI, if you build with MPI enabled). + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/introduction.tex b/bioinformaticsProject/hmmer/documentation/userguide/introduction.tex new file mode 100644 index 0000000..ad76943 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/introduction.tex @@ -0,0 +1,482 @@ +\newpage +\chapter{Introduction} +\label{chapter:introduction} +\setcounter{footnote}{0} + +Most protein sequences are composed from a relatively small number of +ancestral protein domain families. Our sampling of common protein +domain families has become comprehensive and deep, while raw sequence +data continues to accumulate explosively. It has become advantageous +to compare sequences against all known domain families, instead of all +known sequences. + +This makes protein sequence analysis more like speech recognition. +When you talk to your smartphone, it doesn't compare your digitized +speech to everything that's ever been said. It compares what you say +to a prebuilt dataset of statistical models of common words and +phonemes. Using machine learning techniques, each statistical model +is trained on large datasets of examples spoken by different speakers +in different accents. Similarly, for each protein domain family, there +are typically thousands of known homologs that can be aligned into +deep multiple sequence alignments. Sequence alignments reveal a +specific pattern of evolutionary conservation particular to that +domain's structure and function. These patterns can be captured by +probabilistic models. + +HMMER is a software package that provides tools for making +probabilistic models of protein and DNA sequence domain families -- +called \textbf{profile hidden Markov models}, \textbf{profile HMMs}, +or just \textbf{profiles} -- and for using these profiles to annotate +new sequences, to search sequence databases for additional homologs, +and to make deep multiple sequence alignments. HMMER underlies +several comprehensive collections of alignments and profiles of known +protein and DNA sequence domain families, including the Pfam +database.\sidenote{\href{http://pfam.org}{pfam.org}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{How to avoid reading this manual} + +I hate reading documentation. If you're like me, you're thinking, +\pageref*{manualend} pages of documentation, you've got to be joking! +First I want to know that the software compiles, runs, and gives +useful results, before I'm going to plow through some +\pageref*{manualend} tedious pages of someone's documentation. For +fellow cynics who have seen one too many software packages that don't +work: + +\begin{itemize} + +\item Follow the quick installation instructions on page + \pageref{chapter:installation}. An automated test suite is included, + so you will know immediately if something went + wrong.\sidenote{Nothing should go wrong.} + +\item Go to the tutorial section on page \pageref{chapter:tutorial}, + which walks you through examples of using HMMER. + +\end{itemize} + +Everything else, you can come back and read later. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Background and brief history} + +A multiple sequence alignment of a homologous family of protein +domains reveals patterns of site-specific evolutionary +conservation. Key residues may be highly conserved at certain +positions; some positions may tolerate certain substitutions while +conserving physiochemical properties like hydrophobicity, charge, or +size; some positions may be evolutionarily near-neutral and variable; +insertions and deletions are tolerated at some positions better than +others. A \textbf{profile} is a position-specific scoring model that +describes which symbols are likely to be observed and how frequently +insertions/deletions occur at each position (column) of a +multiple sequence alignment. + +Pairwise sequence alignment methods such as BLAST and FASTA use +position-\emph{independent} subsitution score matrices such as BLOSUM +and PAM, but the desirability of position-\emph{specific} models was +recognized even before BLAST and FASTA were written.\cite{Doolittle81} +Several groups introduced different position-specific alignment +scoring approaches in the 1980's. The name ``profiles'', introduced by +Gribskov and colleagues,\cite{Gribskov87} was a name that stuck. + +Profiles have a lot of parameters. The BLOSUM and PAM amino acid +substitution matrices have only 210 free parameters (20 $\times$ 20, +symmetric), and those parameters are averages over large collections +of many different known sequence alignments. A profile typically has +at least 22 parameters\marginnote{There's $\sim$22 parameters per + position because there's 20 residue scores, plus gap-open and + gap-extend penalties for starting or extending an insertion or + deletion.} for each of the $\sim$200 consensus positions or so in a +typical protein domain, and these thousands of parameters are +estimated for one particular sequence family alignment, not averaged +across all of them. Early profile methods were vexed by a lack of +theoretical underpinnings for how to parameterize these models +effectively, especially for insertion and deletions. + +In the 1990's, Anders Krogh, David Haussler, and co-workers at UC +Santa Cruz recognized a parallel between profiles and widely used +speech recognition techniques, and they introduced \textbf{profile + hidden Markov models (profile HMMs)}.\cite{Krogh94} HMMs had been +used in biology before, but the Krogh paper had dramatic impact +because HMM technology was so well suited to addressing the vexing +parameterization problem. HMMs have a formal probabilistic basis, +allowing the use of probability theory to set and to interpret the +large number of free parameters in a profile, including the +position-specific gap and insertion parameters. The methods are +mathematically consistent and therefore automatable, which was crucial +in allowing people to make libraries of hundreds of profile HMMs and +apply them on a large scale to whole genome analysis. One such +database of protein domain models is Pfam.\cite{Sonnhammer97} +Historically, Pfam and HMMER have been developed in parallel. + +The first implementations of profile HMMs were computationally +intensive, including HMMER1 (1995) and HMMER2 (1998), but HMMER3 is +now typically faster than BLASTP or FASTA searches even though it uses +more complex models.\marginnote{For DNA searches, BLASTN remains about + two orders of magnitude faster than HMMER DNA searches, but is less + sensitive.} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Problems HMMER is designed for} + +\paragraph{Sensitive homology searches.} +You're working on a specific sequence family, and you've carefully +constructed a representative multiple sequence alignment. The HMMER +\mono{hmmbuild} program lets you build a profile from your alignment, +and the \mono{hmmsearch} program lets you search your profile against +a sequence database looking systematically for more homologs. + +\paragraph{... even for single sequence queries.} +HMMER3 also works for single sequence comparisons, not just for +multiple alignments. Pairwise sequence comparison is just a special +case of profile HMMs. HMMER can use a BLOSUM substitution matrix to +parameterize a profile built from just one sequence. HMMER3 includes +two programs for searching protein databases with single query +sequences: \mono{phmmer} and \mono{jackhmmer}. I believe +\mono{phmmer} is superior in many respects to BLASTP, and +\mono{jackhmmer} to PSI-BLAST. + +\paragraph{Automated annotation of protein domains.} +Various large databases of curated alignments and HMMER models of +known domains are available, including Pfam and others. Many top ten +lists of protein domains, a \emph{de rigueur} table in genome analysis +papers, depend on HMMER-based annotation. HMMER3's \mono{hmmscan} +program lets you scan a sequence against a profile database to parse +the sequence into its component domains. + +\paragraph{Curated collections of deep multiple alignments.} There are thousands of +sequence families, some of which comprise hundreds of thousands of +sequences, and the raw sequence databases continue to double every +year or so. Clustering the entire sequence database into family +alignments is a hopeless task for manual curation, but some sort of +manual curation remains necessary for high-quality, biologically +relevant multiple alignments. Databases like Pfam are constructed by +distinguishing between a stable curated ``seed'' alignment of a small +number of representative sequences, and ``full'' alignments of all +detectable homologs. HMMER is used to make a model of the seed and to +search the database for homologs, and the \mono{hmmalign} program can +automatically produce the full alignment by aligning every sequence to +the seed consensus. \mono{hmmalign} scales to alignments of +millions of sequences. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{HMMER uses ensemble algorithms, \emph{not} optimal alignment} + +Most sequence search tools look for optimal high-scoring +alignments. However, sequence alignments are uncertain, and the more +distantly related sequences are, the more uncertain their alignment +is. Instead of using optimal alignment algorithms, HMMER uses ensemble +algorithms that consider all possible alignments, weighted by their +relative likelihood.\marginnote{In HMM jargon, HMMER uses the Forward + algorithm (and variants of it), not the Viterbi algorithm.} This is +one reason that HMMER gets more power than tools that depend on single +optimal alignment. + +The use of ensemble algorithms shows up in several HMMER features: + +\paragraph{Explicit representation of alignment uncertainty.} + When HMMER shows an alignment, it also calculates how much + probability mass that this alignment has in the ensemble -- which + means HMMER can annotate a probabilistic confidence in an alignment, + or in each individual aligned residue. Some downstream analyses that + depend on alignments (such as phylogenetic tree inference) benefit + from being able to distinguish confidently aligned residues. + +\paragraph{Sequence scores, not alignment scores.} HMMER's + log-odds scores for a sequence aren't optimal alignment scores; they + are summed over the posterior alignment ensemble. Statistical + inference theory says that scores based on a single optimal + alignment are an approximation that breaks down when alignments are + uncertain. HMMER's calculation is the full, unapproximated + calculation. + +\paragraph{Different speed heuristics.} The ensemble (Forward) algorithm is more + computationally intensive than optimal alignment algorithms. + HMMER3's acceleration strategy is quite different from + BLAST's.\cite{Eddy11}. HMMER implements heuristic accelerations of + the HMM Forward algorithm using vectorization technology available + on modern processors.\vspace{1em} + +Individually, none of these points is new. As far as alignment +ensembles go, one reason why hidden Markov models were so +theoretically attractive in the first place for sequence analysis is +that they are good probabilistic models for explicitly dealing with +alignment uncertainty. The SAM profile HMM software from UC Santa Cruz +has always used full probabilistic inference (the HMM Forward/Backward +algorithms) as opposed to optimal alignment scores (the HMM Viterbi +algorithm). HMMER2 had the full HMM inference algorithms available as +command-line options, but it used Viterbi optimal alignment by +default, in part for speed reasons. + +One reason why it's been hard to deploy sequence scores for practical +large-scale use is that it wasn't known how to accurately calculate +the statistical significance of a log-odds score that's been summed +over alignment uncertainty. Accurate statistical significance +estimates are essential when one is trying to discriminate homologs +from millions of unrelated sequences in a large sequence database +search. The statistical significance of optimal local alignment scores +is calculated by Karlin/Altschul statistics.\cite{Karlin90} +Karlin/Altschul statistics are one of the most important and +fundamental advances introduced by BLAST. However, Karlin/Altschul +theory \emph{doesn't} apply to HMMER's ensemble log-odds sequence +scores (HMM ``Forward scores''). The statistical significance +(E-values, or expectation values) of HMMER sequence scores is +determined by using a theoretical conjecture about the statistical +properties of ensemble log-odds scores which have been supported by +numerical simulation experiments.\cite{Eddy08} + +And as far as speed goes, the pioneers of heuristic acceleration of +sequence database searches are the folks behind BLAST and FASTA, who +developed effective heuristics that closely approximate an +unaccelerated Smith/Waterman dynamic programming search. The first +implementations of profile HMM methods used dynamic programming +without heuristics (the profile HMM Viterbi algorithm is essentially +Smith/Waterman, just with position-specific probability scores), so +they were more comparable in speed to Smith/Waterman than to BLAST. +Using the Forward algorithm slowed them down still more. It was a +while before I invested the time to develop heuristic acceleration of +profile HMM methods. A principal design goal in HMMER3 was to achieve +at least rough speed parity with BLAST and FASTA. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Assumptions and limitations of profile HMMs} + +Profile HMMs are primary sequence consensus models. They assume that +the residue at a particular position is independent of the residues at +all other positions, and they neglect any higher-order correlations. +Profile HMMs are often not good models of structural RNAs, for +instance, because an HMM is not an adequate model of correlated base +pairs.\marginnote{Our Infernal software provides better tools for + structural RNA sequence analysis, using \textbf{profile stochastic + context-free grammars}, a more complex class of probability model + than HMMs.} + +A profile HMM also lacks any explicit model of the phylogenetic +relationships among a set of homologous sequences. Sequences are +instead assumed to be independently generated from the profile, which +is tantamount to assuming a star phylogeny with fixed branch +lengths. Ad hoc sequence weighting techniques are used to compensate +for the fact that typical multiple alignments include many redundant, +closely related sequences. + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{How to learn more} + +Our book \emph{Biological Sequence Analysis}\cite{Durbin98} describes the basic +theory behind profile HMMs and HMMER. + +HMMER's open source development code is available on +GitHub.\sidenote{\href{http://github.com/EddyRivasLab/hmmer}{github.com/EddyRivasLab/hmmer}} +The GitHub issue tracker is the best way to give me suggestions, +feature requests, bug reports, and pull requests. + +\textbf{Cryptogenomicon}\sidenote{\href{http://cryptogenomicon.org/}{cryptogenomicon.org}} + is a blog where I sometimes talk about issues as they arise in HMMER, and +where you can comment or follow the discussion. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{How to cite HMMER} + +There has never been a paper on the HMMER software.\sidenote{And the + way things are going, there may never be!} The best citation is to +the web site, \url{hmmer.org}. + +You should also cite what version of the software you used. I archive +all old versions, so anyone should be able to obtain the version you +used, when exact reproducibility of an analysis is an issue. The +version number is in the header of most output files. To see it +quickly, do something like \mono{hmmscan -h} to get a help page, and +the header will say: + + \xsreoutput{inclusions/hmmscan-noargs.out} + +So (from the second line there) this is from HMMER \HMMERversion{}. + +If an unenlightened, url-unfriendly journal forces you to cite dead +trees, you can cite the 2011 paper on HMMER3 +acceleration.\cite{Eddy11} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{How to report a bug} + +Open an issue on our issue tracker at GitHub,\sidenote{\href{https://github.com/EddyRivasLab/hmmer/issues}{github.com/EddyRivasLab/hmmer/issues}} +or email me. + +\emph{Please} give me enough information that I can reproduce the +bug, including any files. Ideally, I'd like to have a small, +reproducible test case. So if you're reporting a bug, please send me: + +\begin{itemize} + \item A brief description of what went wrong. + \item The command line(s) that reproduce the problem. + \item Copies of any files I need to run those command lines. + \item Information about what kind of hardware you're on, what + operating system, and (if you compiled the software yourself rather + than running precompiled binaries), what compiler and version you + used, with what configuration arguments. +\end{itemize} + +Depending on how glaring the bug is, I may not need all this +information, but any work you can put into giving me a clean +reproducible test case doesn't hurt and often helps. + +The information about hardware, operating system, and compiler is +often important. Bugs are frequently specific to particular +configurations of hardware/OS/compiler. I have a wide variety of +systems available for trying to reproduce bugs, and I'll try to match +your system as closely as we can. + +If you first see a problem on some huge compute (like running a +zillion query sequences over a huge profile database), it will really, +really help me if you spend a bit of time yourself trying to isolate +whether the problem really only manifests itself on that huge compute, +or if you can isolate a smaller test case for me. The ideal bug report +(for me) gives me everything I need to reproduce your problem in one +email with at most some small attachments. \marginnote{Remember, I'm + not a company with dedicated support staff -- I'm one person, I've + got other stuff to do, the Xfam team is asking me when HMMER4's + going to be ready, and I'm as busy as you. I'll need to drop what + I'm doing to try to help you out. Work with me to save me some time, + and I'm more likely to stay in my usual good mood.} + +If I'm in my usual good mood, I'll reply quickly. I'll probably +tell you we fixed the bug in our development code, and that the fix +will appear in the next HMMER release. This of course doesn't help you +much, since nobody knows when the next HMMER release is going to be. +So if possible, I'll usually try to describe a workaround for the +bug. + +If the code fix is small, I might also tell you how to patch and +recompile the code yourself. You may or may not want to do this. + + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{When's HMMER4 coming?} + +HMMER4 has been in development since 2011.\sidenote{OK, \emph{slow} + development, but hey.} Some of the stuff it will include: + +\paragraph{The return of glocal alignment.} Slow old HMMER2 was + capable of ``glocal'' alignment, in which it would align a complete + profile to a subsequence of a target sequence; this was great for + annotating domain structure of protein sequences, among other things. + In developing our speed heuristic for HMMER3, for numerical reasons, + I had to sacrifice glocal alignment; HMMER3 \emph{only} does local +alignment. In HMMER4, I've solved the problems that prevented H3 from +using glocal alignment. H4 uses a new \emph{dual-mode} profile +architecture, combining local and glocal alignment modes in a single +probability model. + +\paragraph{Memory efficiency.} The HMMER ensemble alignment +algorithms (the HMM Forward and Backward algorithms) are expensive in +memory. For most uses, you don't notice, but there are extreme cases +where you may. H3 can require as much as $\sim 36L^2$ bytes of memory +for a query sequence of length $L$, and for a 35Kaa titin sequence, +that's 44GB of RAM. In HMMER4, I've solved this with a variety of old +and new techniques. + +\paragraph{Ensemble calculations everywhere.} HMMER uses ensemble +calculations (i.e., integrates over alignment uncertainty) for scoring +homologous sequences and for calculating the confidence in individual +aligned residues. However, when it decides how many domains are in a +sequence, and where they are, it uses an \emph{ad hoc} procedure that +uses ensemble information, but is not well defined. In HMMER4, we've +solved that problem with a new domain definition algorithm. + +\paragraph{More processor support.} One of the attractive features of the +HMMER ``MSV'' acceleration algorithm is that it is a very tight and +efficient piece of code. The bad news is, it's a very tight and +efficient piece of \emph{assembly} code. We have to write +processor-specific SIMD vector instructions for each platform that +HMMER runs on. HMMER currently only supports x86 (Intel/AMD) and +PowerPC platforms (big-endian AIX PowerPC's, not the newer crop of +little-endian Linux PowerPC's). HMMER4 will also include support for +Linux/PowerPC and ARM NEON. It also can use the latest x86 vector +instructions (AVX and AVX-512). + +\paragraph{Better parallelization.} HMMER is so fast that it's often +input-bound, rather than CPU-bound: that is, it takes longer just to +get the sequences from your disk than it takes to compare them to a +profile. That's been taxing the simple parallelization methods we +use. HMMER's multithreaded parallelization really doesn't scale well +beyond 2-4 processors, on most machines; and possibly worse, if you're +on a slow filesystem (for example, if you're reading data from a +network filesystem instead of from local disk). In H4, we're working +on improving our parallelization and our data input. + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{What's still missing} + +Two of the more important holes for me are: + +\paragraph{Translated comparisons.} I'd love to have the HMM +equivalents of BLASTX, TBLASTN, and TBLASTX. They'll come. In the +meantime, I translate DNA sequence to six frames, and search +hypothetical ORFs as protein sequences. + +\paragraph{Profile/profile comparison.} A number of pioneering papers and +software packages have demonstrated the power of profile/profile +comparison for even more sensitive remote homology detection. Check +out HHBLITS from Johannes S\"oding's +group.\sidenote{\href{https://toolkit.tuebingen.mpg.de/\#/tools/hhblits}{toolkit.tuebingen.mpg.de/\#/tools/hhblits}} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{How to avoid using this software (links to similar software)} + +Other implementations of profile HMM methods and position-specific +scoring matrix methods are available, including: + +\begin{center} +\begin{tabular}{lp{5in}l} +Software & URL \\ \hline +HH-SUITE & \href{http://www.soeding.genzentrum.lmu.de/software-and-servers-2/}{www.soeding.genzentrum.lmu.de/software-and-servers-2}\\ +PSI-BLAST & \href{https://blast.ncbi.nlm.nih.gov/}{blast.ncbi.nlm.nih.gov}\\ +PFTOOLS & \href{http://web.expasy.org/pftools/}{web.expasy.org/pftools}\\ +SAM & \href{https://compbio.soe.ucsc.edu/sam.html}{compbio.soe.ucsc.edu/sam.html}\\ +\end{tabular} +\end{center} + + + + + + + + + + + + + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/macros.tex b/bioinformaticsProject/hmmer/documentation/userguide/macros.tex new file mode 100644 index 0000000..3b08eb4 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/macros.tex @@ -0,0 +1,104 @@ +% customizations used in the User's Guide + + +% Description-like environment for documenting functions/APIs. +% puts the description label in a minipage with a large hanging +% indent. +% Good christ this took a long time to develop. +% hanging indent trick stolen from Peter Wilson's hanging.sty @CTAN +% minipage allows multi-line label, and puts item on next line. +% customized list inspired by Kopka/Daly _Guide to LaTeX_ p.213 +% SRE, Wed Dec 27 11:37:18 2000 +% +\newenvironment{sreapi}{% + \begin{list}{}{% + \renewcommand{\makelabel}[1]{% + \begin{minipage}{\textwidth}% + \hangindent10em\hangafter1\noindent% + {\bfseries\texttt{##1}\vspace{0.8em}}% + \end{minipage}% + }}}% + {\end{list}} + + +% Description-like environment for producing lists like: +% +% label stuff, stuff, stuff +% +% label2 more stuff, more stuff, +% more stuff. +% \begin{sreitems}{Longest label} \item[label] stuff, ... \end{sreitems} +% SRE, Wed Dec 27 11:59:43 2000 +% +\newenvironment{sreitems}[1]{% + \begin{list}{}{% + \settowidth{\labelwidth}{#1}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + }} + {\end{list}} + +\DefineVerbatimEnvironment{sreoutput}{Verbatim}{fontsize=\scriptsize,xleftmargin=2.0\parindent}% +\DefineVerbatimEnvironment{tinysreoutput}{Verbatim}{fontsize=\tiny,xleftmargin=2.0\parindent}% + +\makeatletter +\newcommand{\listoffaqs}{\@starttoc{faq}} +\newenvironment{srefaq}[1] +{\addcontentsline{faq}{faq}{#1}\begin{sloppypar}\noindent\slshape\small\begin{quote}\textbf{$\triangleright$ #1}} +{\end{quote}\end{sloppypar}} +\newcommand{\l@faq}[2]{\@dottedtocline{0}{0pt}{0pt}{#1}{#2}} +\makeatother + +% Consistent font styles +% \software{} for the name of a software package +% \database{} for the name of a database +% \prog{} for a program or file name +% \emprog{} for an emphasized program or file name +% \user{} for a typed user command +% \response{} for an output line following a \user command +% \ccode{} for an inlined C code phrase +\newcommand{\software}[1]{\textsc{#1}} +\newcommand{\database}[1]{\textsc{#1}} +\newcommand{\prog}[1]{{\small\texttt{#1}}} +\newcommand{\emprog}[1]{{\small\bfseries\texttt{#1}}} +\newcommand{\user}[1]{\indent\indent{\small\bfseries\texttt{\% #1}}} +\newcommand{\response}[1]{\indent\indent{\small\bfseries\texttt{#1}}} +\newcommand{\ccode}[1]{{\small\texttt{#1}}} + +\DefineVerbatimEnvironment{cchunk}{Verbatim}{fontsize=\scriptsize,xleftmargin=2.0\parindent}% + +% The ``wideitem'' environment is mostly obsolete, but +% it gets used in converted manpages. +% +\newenvironment{wideitem}{\begin{list} + {} + { \setlength{\labelwidth}{2in}\setlength{\leftmargin}{1.5in}}} + {\end{list}} + +% The following are used as temp vars in how man pages are +% converted into LaTeX w/ rman; see ``make manpages'' in Makefile. +% +\newlength{\sresavei} +\newlength{\sresaves} + +\def\argmax{\mathop{\mathrm{argmax}}\limits} +\def\argmin{\mathop{\mathrm{argmin}}\limits} + +% The sidebar environment, for inserting ``asides''. +% Requires the ``fancybox'' package. +% Example: +% \usepackage{fancybox} +% ... +% \begin{sidebar} +% \sidebarhead{An aside on string theory.} +% String theory is not mentioned in this document. +% \end{sidebar} +% +% SRE, Sun Nov 6 14:45:32 2005 +% +\newenvironment{sidebar}% + {\begin{Sbox}\begin{minipage}{\textwidth}\setlength{\parskip}{0.5em}}% + {\end{minipage}\end{Sbox}% + \begin{figure}[htp]\shadowbox{\TheSbox}\end{figure}% + \setlength{\parskip}{0em}} +\newcommand{\sidebarhead}[1]{{\bfseries{#1}}\vspace{0.3em}} diff --git a/bioinformaticsProject/hmmer/documentation/userguide/main.tex b/bioinformaticsProject/hmmer/documentation/userguide/main.tex new file mode 100644 index 0000000..24073b7 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/main.tex @@ -0,0 +1,53 @@ +\documentclass[notoc]{tufte-book} % `notoc` suppresses TL custom TOC, reverts to standard LaTeX + +\hyphenation{HMMER} + +\input{titlepage} % definitions for \maketitle +\bibliographystyle{unsrtnat-brief} % customized natbib unsrtnat. Abbrev 3+ authors to ``et al.'' + +\begin{document} +\setcounter{tocdepth}{2} % 0=chapters 1=sections 2=subsections 3=subsubsections? 4=paragraphs +\input{inclusions/inclusions.def} % snippets captured from output, by gen-inclusions.py + +\maketitle + +\input{copyright} + +\begin{adjustwidth}{}{-1in} % TL \textwidth is quite narrow. Expand it manually for TOC and man pages. +\tableofcontents +\end{adjustwidth} + +\input{introduction} +\input{install} +\input{tutorial} +\input{pipeline} +\input{tabular} + +\begin{adjustwidth}{}{-1in} +\chapter{Manual pages for HMMER programs} +\input{manpages} +\end{adjustwidth} + +\begin{adjustwidth}{}{-1in} +\chapter{Manual pages for Easel miniapps} +\input{easel_manpages} +\end{adjustwidth} + +\input{formats} + +\input{ack} +\label{manualend} + +% To create distributable/gitted 'distilled.bib' from lab's bibtex dbs: +% # uncomment the {master,lab,books} +% pdflatex main +% bibdistill main.aux > distilled.bib +% # restore the {distilled} +% +\nobibliography{distilled} +%\nobibliography{master,lab,books} + +\end{document} + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/pipeline.tex b/bioinformaticsProject/hmmer/documentation/userguide/pipeline.tex new file mode 100644 index 0000000..826188a --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/pipeline.tex @@ -0,0 +1,533 @@ + +\chapter{The HMMER profile/sequence comparison pipeline} +\label{chapter:pipeline} +\setcounter{footnote}{0} + +Now I'll briefly outline the processing pipeline for a single +profile/sequence comparison.\marginnote{Code gurus, masochists: you + can follow along in \mono{src/p7\_pipeline.c}.} This should help +give you a sense of what HMMER is doing under the hood, what sort of +mistakes it may make (rarely, of course!), and what the various +results in the output actually mean. I'll first describe the pipeline +in the context of protein search (\mono{phmmer}, \mono{hmmsearch}, +\mono{hmmscan}, \mono{jackhmmer}), then wrap back around to discuss +the modified pipeline used in \mono{nhmmer} and \mono{nhmmscan}. + +In briefest outline, the comparison pipeline takes the following +steps: + +\begin{description} +\item[\textbf{Null model.}] Calculate a score term for the ``null + hypothesis'' (a probability model of \emph{non-}homology). This + score correction is used to turn all subsequent profile/sequence bit + scores into a final log-odds bit score. + +\item[\textbf{MSV filter.}] The main acceleration heuristic. The MSV + (``Multiple Segment Viterbi'') algorithm looks for one or more + high-scoring \emph{ungapped} alignments. If the MSV score passes a + set threshold, the entire sequence passes on to the next pipeline + step; else it is rejected. + +\item[\textbf{Bias filter.}] A hack that reduces false positive MSV + hits due to biased composition sequences. A two-state HMM is + constructed from the mean residue composition of the profile and the + standard residue composition of the null model, and used to score + the sequence. The MSV bit score is corrected using this as a second + null hypothesis. If the MSV score still passes the MSV threshold, + the sequence passes on to the next step; else it is rejected. The + bias filter score correction will also be applied to the Viterbi + filter and Forward filter scores that follow. + +\item[\textbf{Viterbi filter.}] A more stringent accelerated filter. + An optimal (maximum likelihood) gapped alignment score is + calculated. If this score passes a set threshold, the sequence + passes to the next step; else it is rejected. + +\item[\textbf{Forward filter/parser.}] The full likelihood of the + profile/sequence comparison is evaluated, summed over the entire + alignment ensemble, using the HMM Forward algorithm. This score is + corrected to a bit score using the null model and bias filter + scores. If the bit score passes a set threshold, the sequence passes + on to the next step; else it is rejected. + +\item[\textbf{Domain identification.}] Using the Forward parser + results, now combined with a Backward parser, posterior + probabilities of domain locations are calculated. A discrete set of + putative domains (alignments) is identified by applying heuristics + to posterior probabilities. This procedure identifies + \emph{envelopes}: subsequences on the target sequence which contain + a lot of probability mass for a match to the profile. + +\item[\textbf{Alignment.}] For each identified domain, a full + Forward/Backward algorithm is performed. An \emph{ad hoc} ``null2'' + hypothesis is constructed for each domain's composition and used to + calculate a biased composition score correction. A maximum expected + accuracy (MEA) alignment is calculated. This identifies one MEA + alignment within each envelope. + +\item[\textbf{Storage.}] Now we have a \emph{sequence score} (and + P-value); the sequence contains one or more domains, each of which + has a \emph{domain score} (and P-value), and each domain has an MEA + alignment annotated with per-residue posterior probabilities. + +\end{description} + +In more detail, each step is described below. + +\section{Null model} + +The ``null model'' calculates the probability that the target sequence +is \emph{not} homologous to the query profile. A HMMER bit score is +the log of the ratio of the sequence's probability according to the +profile (the homology hypothesis) over the null model probability (the +non-homology hypothesis). + +The null model is a one-state HMM configured to generate ``random'' +sequences of the same mean length $L$ as the target sequence, with +each residue drawn from a background frequency distribution (a +standard i.i.d. model: residues are treated as independent and +identically distributed). Currently, this background frequency +distribution is hardcoded as the mean residue frequencies in Swiss-Prot +50.8 (October 2006). + +For technical reasons, HMMER incorporates the \emph{residue emission} +probabilities of the null model directly into the profile, by turning +each emission probability in the profile into an odds ratio. The null +model score calculation therefore is only concerned with accounting +for the remaining \emph{transition} probabilities of the null model +and toting them up into a bit score correction. The null model +calculation is fast, because it only depends on the length of the +target sequence, not its sequence. + +\section{MSV filter} + +The sequence is aligned to the profile using a specialized model that +allows multiple high-scoring local ungapped segments to match. The +optimal alignment score (Viterbi score) is calculated under this +multisegment model, hence the term MSV, for ``multi-segment +Viterbi''. This is HMMER's main speed heuristic. + +The MSV score is comparable to BLAST's sum score (optimal sum of +ungapped alignment segments). Roughly speaking, MSV is comparable to +skipping the heuristic word hit and hit extension steps of the BLAST +acceleration algorithm. + +The MSV filter is very, very fast. In addition to avoiding indel +calculations in the dynamic programming table, it uses reduced precision +scores scaled to 8-bit integers, enabling acceleration via 16-way +parallel SIMD vector instructions. + +The MSV score is a true log-odds likelihood ratio, so it obeys +conjectures about the expected score distribution\cite{Eddy08} that +allow immediate and accurate calculation of the statistical +significance (P-value) of the MSV bit score. + +By default, comparisons with a P-value of $\leq$ 0.02 pass this +filter, meaning that about $2\%$ of nonhomologous sequences are +expected to pass. You can use the \mono{-{}-F1 } option to change +this threshold. For example, \mono{-{}-F1 0.05} would pass 5\% of the +comparisons, making a search more sensitive but slower. Setting the +threshold to $\ge 1.0$ (\mono{-{}-F1 99} for example) assures that all +comparisons will pass. Shutting off the MSV filter may be worthwhile +if you want to make sure you don't miss comparisons that have a lot of +scattered insertions and deletions. Alternatively, the \mono{-{}-max} +option causes the MSV filter step (and all other filter steps) to be +bypassed. + +The MSV bit score is calculated as a log-odds score using the null +model for comparison. No correction for a biased composition or +repetitive sequence is done at this stage. For comparisons involving +biased sequences and/or profiles, more than 2\% of comparisons will +pass the MSV filter. At the end of search output, there is a line +like: + +\begin{sreoutput} + Passed MSV filter: 107917 (0.020272); expected 106468.8 (0.02) +\end{sreoutput} + + which tells you how many and what fraction of comparisons passed the + MSV filter, versus how many (and what fraction) were expected. + + +\section{Biased composition filter} + +It's possible for profiles and/or sequences to have biased residue +compositions that result in ``significant'' log-odds bit scores not +because the sequence matches the profile well, but because the +sequence matches the null model badly. + +HMMER uses fairly good methods to compensate its scores for biased +composition, but these methods are computationally expensive and +applied late in the pipeline (described below). + +In a few cases, profiles and/or target sequences are sufficiently +biased that too many comparisons pass the MSV filter, causing HMMER +speed performance to be severely degraded. Although the final scores +and E-values at the end of the pipeline will be calculated taking into +account a ``null2'' model of biased composition and simple repetition, +the null2 model is dependent on a full alignment ensemble calculation +via the Forward/Backward algorithm, making it computationally complex, +so it won't get calculated until the very end. The treatment of biased +composition comparisons is an inadequately solved problem in HMMER. As +a stopgap solution to rescuing most of the speed degradation while not +sacrificing too much sensitivity, an \emph{ad hoc} biased composition +filtering step is applied to remove highly biased comparisons. + +On the fly, a two-state HMM is constructed. One state emits residues +from the background frequency distribution (same as the null1 model), +and the other state emits residues from the mean residue composition +of the profile (i.e. the expected composition of sequences generated +by the core model, including match and insert +states.)\sidenote{\mono{p7\_hmm.c:p7\_hmm\_SetComposition()}} Thus if +the profile is highly biased (cysteine-rich, for example; or highly +hydrophobic with many transmembrane segments), this composition bias +will be captured by this second state. This model's transitions are +arbitrarily set such that state 1 emits an expected length of 400 at a +time, and state 2 emits an expected length of M/8 at a time (for a +profile of length M). An overall target sequence length distribution +is set to a mean of $L$, identical to the null1 model. + +The sequence is then rescored using this ``bias filter model'' in +place of the null1 model, using the HMM Forward algorithm. (This +replaces the null1 model score at all subsequent filter steps in the +pipeline, until a final Forward score is calculated.) A new MSV bit +score is obtained. + +If the P-value of this still satisfies the MSV thresholds, the +sequence passes the biased composition filter. + +The \mono{-{}-F1 } option controls the P-value threshold for +passing the MSV filter score, both before (with the simple null1 +model) and after the bias composition filter is applied. + +The \mono{-{}-max} option bypasses all filters in the pipeline, +including the bias filter. + +The \mono{-{}-nobias} option turns off (bypasses) the biased +composition filter. The simple null model is used as a null +hypothesis for MSV and in subsequent filter steps. The biased +composition filter step compromises a small amount of sensitivity. +Though it is good to have it on by default, you may want to shut it +off if you know you will have no problem with biased composition hits. + + At the end of a search output, you will see a line like: + +\begin{sreoutput} + Passed bias filter: 105665 (0.019849); expected 106468.8 (0.02) +\end{sreoutput} + +which tells you how many and what fraction of comparisons passed the +biased composition filter, versus how many were expected. (If the +filter was turned off, all comparisons pass.) + + +\section{Viterbi filter} + +The sequence is now aligned to the profile using a fast Viterbi +algorithm for optimal gapped alignment. + +This Viterbi implementation is specialized for speed. It is +implemented in 8-way parallel SIMD vector instructions, using reduced +precision scores that have been scaled to 16-bit integers. Only one +row of the dynamic programming matrix is stored, so the routine only +recovers the score, not the optimal alignment itself. The reduced +representation has limited range; local alignment scores will not +underflow, but high scoring comparisons can overflow and return +infinity, in which case they automatically pass the filter. + +The final Viterbi filter bit score is then computed using the +appropriate null model log likelihood (by default the biased +composition filter model score, or if the biased filter is off, just +the null model score). If the P-value of this score passes the Viterbi +filter threshold, the sequence passes on to the next step of the +pipeline. + +The \mono{-{}-F2 } option controls the P-value threshold for passing +the Viterbi filter score. The default is 0.001. +The \mono{-{}-max} option bypasses all filters in the pipeline. + + +At the end of a search output, you will see a line like: + +\begin{sreoutput} +Passed Vit filter: 2207 (0.00443803); expected 497.3 (0.001) +\end{sreoutput} + +which tells you how many and what fraction of comparisons passed the +Viterbi filter, versus how many were expected. + + + +\section{Forward filter/parser} + +The sequence is now aligned to the profile using the full Forward +algorithm, which calculates the likelihood of the target sequence +given the profile, summed over the ensemble of all possible +alignments. + +This is a specialized time- and memory-efficient Forward +implementation called the ``Forward parser''. It is implemented in +4-way parallel SIMD vector instructions, in full precision (32-bit +floating point). It stores just enough information that, in +combination with the results of the Backward parser (below), posterior +probabilities of start and stop points of alignments (domains) can be +calculated in the domain definition step (below), although the +detailed alignments themselves cannot be. + +The Forward filter bit score is calculated by correcting this score +using the appropriate null model log likelihood (by default the biased +composition filter model score, or if the biased filter is off, just +the null model score). If the P-value of this bit score passes the +Forward filter threshold, the sequence passes on to the next step of +the pipeline. + +The bias filter score has no further effect in the pipeline. It is +only used in filter stages. It has \emph{no} effect on final reported +bit scores or P-values. Biased composition compensation for final bit +scores is done by a more complex domain-specific algorithm, described +below. + +The \mono{-{}-F3 } option controls the P-value threshold for passing +the Forward filter score. The default is 1e-5. The \mono{-{}-max} +option bypasses all filters in the pipeline. + +At the end of a search output, you will see a line like: + +\begin{sreoutput} +Passed Fwd filter: 1076 (0.00216371); expected 5.0 (1e-05) +\end{sreoutput} + +which tells you how many and what fraction of comparisons passed the +Forward filter, versus how many were expected. + + +\section{Domain definition} + +A target sequence that reaches this point is very likely to contain +one or more significant matches to the profile. These matches are +referred to as ``domains'', since the main use of HMMER has +historically been to match profile HMMs from protein domain databases +like Pfam, and one of HMMER's strengths is to be able to cleanly parse +a multidomain target sequence into its multiple nonoverlapping hits to +the same domain model. + +The domain definition step is essentially its own pipeline, with steps +as follows:\sidenote{\mono{src/p7\_domaindef.c}} + +\paragraph{Backward parser} +The counterpart of the Forward parser algorithm is calculated in an +analogous time- and memory-efficient implementation. The Forward +algorithm gives the likelihood of all \emph{prefixes} of the target +sequence, summed over their alignment ensemble, and the Backward +algorithm gives the likelihood of all \emph{suffixes}. For any given +point of a possible model state/residue alignment, the product of the +Forward and Backward likelihoods gives the likelihood of the entire +alignment ensemble conditional on using that particular alignment +point. Thus, we can calculate things like the posterior probability +that an alignment starts or ends at a given position in the target +sequence. + +\paragraph{Domain decoding.} +The posterior decoding algorithm is applied, to calculate the +posterior probability of alignment starts and ends (profile B and E +state alignments) with respect to target sequence position. + +The sum of the posterior probabilities of alignment starts (B states) +over the entire target sequence is the \emph{expected number of + domains} in the sequence. + +In a tabular output (\mono{-{}-tblout}) file, this number is in the +column labeled \mono{exp}. + +\paragraph{Region identification.} + +A heuristic is now applied to identify a \emph{non-overlapping} set of +``regions'' that contain significant probability mass suggesting the +presence of a match (alignment) to the profile. + +For each region, the expected number of domains is calculated (again +by posterior decoding on the Forward/Backward parser results). This +number should be about 1: we expect each region to contain one local +alignment to the profile. + +In a tabular output (\mono{-{}-tblout}) file, the number of discrete +regions identified by this posterior decoding step is in the column +labeled \mono{reg}. It ought to be almost the same as the expectation +\mono{exp}. If it is not, there may be something funny going on, like +a tandem repetitive element in the target sequence (which can produce +so many overlapping weak hits that the sequence appears to be a +significant hit with lots of domains expected \emph{somewhere}, but +the probability is fuzzed out over the repetitive region and few or no +good discrete alignment regions can be identified). + +\paragraph{Envelope identification.} + +Now, within each region, we will attempt to identify \emph{envelopes}. +An \emph{envelope} is a subsequence of the target sequence that +appears to contain alignment probability mass for a likely domain (one +local alignment to the profile). + +When the region contains $\simeq$1 expected domain, envelope +identification is already done: the region's start and end points are +converted directly to the envelope coordinates of a putative domain. + +There are a few cases where the region appears to contain more than +one expected domain -{}- where more than one domain is closely spaced on +the target sequence and/or the domain scores are weak and the +probability masses are ill-resolved from each other. These +``multidomain regions'', when they occur, are passed off to an even +more \emph{ad hoc} resolution algorithm called \emph{stochastic + traceback clustering}. In stochastic traceback clustering, we sample +many alignments from the posterior alignment ensemble, cluster those +alignments according to their overlap in start/end coordinates, and +pick clusters that sum up to sufficiently high probability. Consensus +start and end points are chosen for each cluster of sampled +alignments. These start/end points define envelopes. + +These envelopes identified by stochastic traceback clustering are +\emph{not} guaranteed to be nonoverlapping. It's possible that there +are alternative ``solutions'' for parsing the sequence into domains, +when the correct parsing is ambiguous. HMMER will report all +high-likelihood solutions, not just a single nonoverlapping parse.\marginnote{ +It's also possible (though rare) for stochastic clustering to identify +\emph{no} envelopes in the region.} + +In a tabular output (\mono{-{}-tblout}) file, the number of regions +that had to be subjected to stochastic traceback clustering is given +in the column labeled \mono{clu}. This ought to be a small number +(often it's zero). The number of envelopes identified by stochastic +traceback clustering that overlap with other envelopes is in the +column labeled \mono{ov}. If this number is non-zero, you need to be +careful when you interpret the details of alignments in the output, +because HMMER is going to be showing overlapping alternative +solutions. The total number of domain envelopes identified (either by +the simple method or by stochastic traceback clustering) is in the +column labeled \mono{env}. It ought to be almost the same as the +expectation and the number of regions. + +\paragraph{Maximum expected accuracy alignment.} +Each envelope is now aligned to the profile using the full +Forward/Backward algorithm. The profile is configured to ``unihit'' +mode, so that the profile expects only one local alignment (domain) in +the envelope (as opposed to multiple domains). Posterior decoding is +used to calculate the posterior probability of every detailed +alignment of profile state to sequence residue. The posterior +decodings are used to extract a ``maximum expected accuracy'' +alignment. Each aligned residue is annotated with its posterior +probability in the Forward/Backward alignment ensemble. + +Currently, the Forward, Backward, and posterior decoding calculations +at this step are \emph{not} memory efficient. They calculate matrices +requiring roughly $36 ML$ bytes, where $M$ is the profile length and +$L$ is the length of the envelope subsequence. Usually in +\mono{hmmsearch} and \mono{hmmscan}, profiles and envelopes are small +enough that this is not a problem. For example, a typical Pfam domain +model is about 200 residues long, matching to individual target +envelopes of about 200 residues each; this requires about 1.4 MB of +memory in MEA alignment. However, in \mono{phmmer} and +\mono{jackhmmer} programs, it's often going to be the case that you're +aligning an entire query sequence to an entire target sequence in a +single unresolved ``domain'' alignment. If this is titin (about 40,000 +residues), it would require 57.6 GB of RAM. For this reason, +currently, \mono{phmmer} and \mono{jackhmmer} can only handle query +sequences of up to a few thousand residues. If you see a ``fatal +exception'' error complaining about failure of a large memory +allocation, you're almost certainly seeing a prohibitive memory +requirement at this stage.\footnote{I know how to fix this with + memory-efficient algorithms, and I'm working on it.} + +In a tabular output (\mono{-{}-tblout}) file, the number of domains in +envelopes (before any significance thresholding) is in the column +labeled \mono{dom}. This will generally be the same as the number of +envelopes. + +\paragraph{Biased composition score correction (``null2'')} +An \emph{ad hoc} biased composition score correction is calculated for +each envelope, using the posterior decoding. A corrected bit score and +P-value for each envelope is calculated. These null2-corrected scores +are subjected to the reporting and inclusion thresholds, at both the full +sequence level and per-domain. + +%Once the position-specific ``null2'' score is available, specifying a +%biased composition correction that applies to every residue, the total +%corrected bit score for the target sequence is recalculated, by +%summing up envelope scores for each significant domain. + + + +\section{Modifications to the pipeline as used for DNA search} + +\subsection{SSV, not MSV.} + +In the MSV filter, one or more high-scoring ungapped segments +contribute to a score that, if sufficiently high, causes the entire +sequence to be passed on to the next stage (the bias filter). This +strategy won't work for long DNA sequences; it doesn't filter the +human genome much to say ``there's a hit on chromosome 1, now +postprocess the whole thing''. In the scanning-SSV (``Single ungapped +Segment Viterbi'') algorithm used in \mono{nhmmer} and +\mono{nhmmscan}, each comparison between a query and target is scanned +for high-scoring ungapped alignment segments, and a window around each +such segment is extracted, merging overlapping windows. Each window is +then passed on to the remaining filter cascade, where it is treated as +described above for the most part. As with the MSV filter, the default +P-value threshold is $0.02$, and can be controlled with the +\mono{-{}-F1} flag. + +The \mono{-{}-max} flag also controls the amount of the sequence database that +passes the SSV filter, but instead of the threshold being set to $1.0$, as +described for the protein pipeline, it is set to $0.4$. +%, which allows passage to anything with a sniff of a chance of passing the +% final threshold + +%Without doing this, the +%segment-surrounding windows all overlap to the point that merging them causes +%full-length chromosomes to possibly trickle down to the later +%envelope-definition machinery, causing to out-of-memory errors. As a special +%hack in case of very long merged windows, a maximum window length of 80Kb is +%enforced by splitting long windows (keeping overlapping blocks, and tracking +%shared hits as necessary to avoid duplicates). + + +\subsection{There are no domains, but there are envelopes} + +In HMMER's protein-search programs, multiple matches of the model to a +target sequence are treated as domains contained within a single hit +for that sequence. In the DNA-search programs, each match of the model +to a subsequence is treated as an independent hit - there's no notion +of a domain. This is largely a difference in reporting. Both pipelines +rely on essentially the same envelope detection code; envelopes lead +to domains in protein search, and hits in DNA search. + + +\subsection{Biased composition.} + +DNA sequence is littered with regions containing tandem simple repeats +or other low complexity sequence. Without accounting for such +composition bias, we see many cases in which one part of a hit is +obviously legitimate, and serves as the anchor for a neighboring +alignment segment that is clearly low-complexity garbage, one form of +a problem known as homologous overextension.\cite{Gonzalez10}. The +null2 method used in protein search delays score modification until +after the alignment is complete, but we know that this kind of +overextension can be (mostly) avoided if the model's log odds scores +account for the composition bias of the target region while +constructing the alignment. The DNA search pipeline therefore does +just this: it modifies the scoring scheme for each target envelope as +a function of that envelope's sequence composition, then builds the +alignment according to that scheme. + + +%\subsection{More about envelopes.} + +%DNA sequence is littered with regions containing tandem simple repeats or other +%low complexity sequence. When an HMM contains a regions with similar bias, the +%envelope-definition machinery can produce absurdly long envelopes +%around plausible alignments\footnote{we've seen envelopes extending more than +%1000 bases beyond the end of an alignment of length 300}. This happens because +%the region-identification method is confused: there are many overlapping weak +%hits, with no discrete alignment good enough to call a hit. + +%By trimming these very long envelopes such that they are no more than 20 bases +%beyond the edges of the aligned range, \ldots + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/tabular.tex b/bioinformaticsProject/hmmer/documentation/userguide/tabular.tex new file mode 100644 index 0000000..486c140 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/tabular.tex @@ -0,0 +1,324 @@ +\chapter{Tabular output formats} +\label{chapter:tabular} +\setcounter{footnote}{0} + +\section{The target hits table} + +The \mono{-{}-tblout} output option produces the \emph{target hits + table}. The target hits table consists of one line for each +different query/target comparison that met the reporting thresholds, +ranked by decreasing statistical significance (increasing E-value). + + +\paragraph{tblout fields for protein search programs} + +In the protein search programs, each line consists of \textbf{18 +space-delimited fields} followed by a free text target sequence description, as +follows:\marginnote{The \mono{tblout} format is deliberately space-delimited +(rather than tab-delimited) and justified into aligned columns, so these files + are suitable both for automated parsing and for human + examination. I feel that tab-delimited data files are difficult for humans to + examine and spot check. For this reason, I think tab-delimited + files are a minor evil in the world. Although I occasionally + receive shrieks of outrage about this, I still stubbornly feel that + space-delimited files are just as easily parsed as tab-delimited + files.} + +\begin{description} +\item[\monob{(1) target name:}] + The name of the target sequence or profile. + +\item[\monob{(2) accession:}] + The accession of the target sequence or profile, or '-' if none. + +\item[\monob{(3) query name:}] + The name of the query sequence or profile. + +\item[\monob{(4) accession:}] + The accession of the query sequence or profile, or '-' if none. + +\item[\monob{(5) E-value (full sequence):}] The expectation value + (statistical significance) of the target. This is a \emph{per + query} E-value; i.e.\ calculated as the expected number of false + positives achieving this comparison's score for a \emph{single} + query against the $Z$ sequences in the target dataset. If you + search with multiple queries and if you want to control the + \emph{overall} false positive rate of that search rather than the + false positive rate per query, you will want to multiply this + per-query E-value by how many queries you're doing. + +\item[\monob{(6) score (full sequence):}] + The score (in bits) for this target/query comparison. It includes + the biased-composition correction (the ``null2'' model). + +\item[\monob{(7) Bias (full sequence):}] The biased-composition + correction: the bit score difference contributed by the null2 + model. High bias scores may be a red flag for a false positive, + especially when the bias score is as large or larger than the + overall bit score. It is difficult to correct for all possible ways + in which a nonrandom but nonhomologous biological sequences can + appear to be similar, such as short-period tandem repeats, so there + are cases where the bias correction is not strong enough (creating + false positives). + +\item[\monob{(8) E-value (best 1 domain):}] The E-value if only the + single best-scoring domain envelope were found in the sequence, and + none of the others. If this E-value isn't good, but the full + sequence E-value is good, this is a potential red flag. Weak hits, + none of which are good enough on their own, are summing up to lift + the sequence up to a high score. Whether this is Good or Bad is not + clear; the sequence may contain several weak homologous domains, or + it might contain a repetitive sequence that is hitting by chance + (i.e. once one repeat hits, all the repeats hit). + +\item[\monob{(9) score (best 1 domain):}] The bit score if only the + single best-scoring domain envelope were found in the sequence, and + none of the others. (Inclusive of the null2 bias correction.] + +\item[\monob{(10) bias (best 1 domain):}] The null2 bias correction + that was applied to the bit score of the single best-scoring domain. + +\item[\monob{(11) exp:}] Expected number of domains, as calculated by + posterior decoding on the mean number of begin states used in the + alignment ensemble. + +\item[\monob{(12) reg:}] Number of discrete regions defined, as + calculated by heuristics applied to posterior decoding of begin/end + state positions in the alignment ensemble. The number of regions + will generally be close to the expected number of domains. The more + different the two numbers are, the less discrete the regions appear + to be, in terms of probability mass. This usually means one of two + things. On the one hand, weak homologous domains may be difficult + for the heuristics to identify clearly. On the other hand, + repetitive sequence may appear to have a high expected domain number + (from lots of crappy possible alignments in the ensemble, no one of + which is very convincing on its own, so no one region is discretely + well-defined). + +\item[\monob{(13) clu:}] Number of regions that appeared to be + multidomain, and therefore were passed to stochastic traceback + clustering for further resolution down to one or more + envelopes. This number is often zero. + +\item[\monob{(14) ov:}] For envelopes that were defined by stochastic + traceback clustering, how many of them overlap other envelopes. + +\item[\monob{(15) env:}] + The total number of envelopes defined, both by single envelope + regions and by stochastic traceback clustering into one or more + envelopes per region. + +\item[\monob{(16) dom:}] Number of domains defined. In general, this + is the same as the number of envelopes: for each envelope, we find + an MEA (maximum expected accuracy) alignment, which defines the + endpoints of the alignable domain. + +\item[\monob{(17) rep:}] + Number of domains satisfying reporting thresholds. If you've also + saved a \mono{-{}-domtblout} file, there will be one line in it + for each reported domain. + +\item[\monob{(18) inc:}] + Number of domains satisfying inclusion thresholds. + +\item[\monob{(19) description of target:}] + The remainder of the line is the target's description line, as free text. +\end{description} + + + +\paragraph{tblout fields for DNA search programs} + +In the DNA search programs, there is less concentration on domains, and more +focus on presenting the hit ranges. Each line consists of \textbf{15 +space-delimited fields} followed by a free text target sequence description, as follows: + +\begin{description} +\item[\monob{(1) target name:}] + The name of the target sequence or profile. + +\item[\monob{(2) accession:}] + The accession of the target sequence or profile, or '-' if none. + +\item[\monob{(3) query name:}] + The name of the query sequence or profile. + +\item[\monob{(4) accession:}] + The accession of the query sequence or profile, or '-' if none. + +\item[\monob{(5) hmmfrom:}] + The position in the hmm at which the hit starts. + +\item[\monob{(6) hmm to:}] + The position in the hmm at which the hit ends. + +\item[\monob{(7) alifrom:}] + The position in the target sequence at which the hit starts. + +\item[\monob{(8) ali to:}] + The position in the target sequence at which the hit ends. + +\item[\monob{(9) envfrom:}] + The position in the target sequence at which the surrounding envelope starts. + +\item[\monob{(10) env to:}] + The position in the target sequence at which the surrounding envelope ends. + +\item[\monob{(11) sq len:}] + The length of the target sequence.. + +\item[\monob{(12) strand:}] + The strand on which the hit was found (``-" when alifrom>ali to). + +\item[\monob{(13) E-value:}] The expectation value + (statistical significance) of the target, as above. + +\item[\monob{(14) score (full sequence):}] + The score (in bits) for this hit. It includes the biased-composition + correction. + +\item[\monob{(15) Bias (full sequence):}] The biased-composition + correction, as above + +\item[\monob{(16) description of target:}] + The remainder of the line is the target's description line, as free text. +\end{description} + + +These tables are columnated neatly for human readability, but do not +write parsers that rely on this columnation; rely on space-delimited +fields. The pretty columnation assumes fixed maximum widths for each +field. If a field exceeds its allotted width, it will still be fully +represented and space-delimited, but the columnation will be disrupted +on the rest of the row. + +Note the use of target and query columns. A program like +\mono{hmmsearch} searches a query profile against a target sequence +database. In an \mono{hmmsearch} tblout file, the sequence (target) +name is first, and the profile (query) name is second. A program like +\mono{hmmscan}, on the other hand, searches a query sequence against a +target profile database. In a \mono{hmmscan} tblout file, the profile +name is first, and the sequence name is second. You might say, hey, +wouldn't it be more consistent to put the profile name first and the +sequence name second (or vice versa), so \mono{hmmsearch} and +\mono{hmmscan} tblout files were identical? Well, first of all, they +still wouldn't be identical, because the target database size used for +E-value calculations is different (number of target sequences for +\mono{hmmsearch}, number of target profiles for \mono{hmmscan}, and + it's good not to forget this. Second, what about programs like + \mono{phmmer} where the query is a sequence and the targets are also + sequences? + +If the ``domain number estimation'' section of the protein table (exp, reg, +clu, ov, env, dom, rep, inc) makes no sense to you, it may help to +read the previous section of the manual, which describes the HMMER +processing pipeline, including the steps that probabilistically define +domain locations in a sequence. + +\section{The domain hits table (protein search only)} + +In protein search programs, the \mono{-{}-domtblout} option produces the +\emph{domain hits table}. There is one line for each domain. There may be more than +one domain per sequence. The domain table has \textbf{22 + whitespace-delimited fields} followed by a free text target sequence +description, as follows: + +\begin{description} +\item[\monob{(1) target name:}] The name of the target sequence or profile. + +\item[\monob{(2) target accession:}] Accession of the target sequence + or profile, or '-' if none is available. + +\item[\monob{(3) tlen:}] Length of the target sequence or profile, in residues. + This (together with the query length) is useful for interpreting + where the domain coordinates (in subsequent columns) lie in the + sequence. + +\item[\monob{(4) query name:}] Name of the query sequence or profile. + +\item[\monob{(5) accession:}] Accession of the target sequence or + profile, or '-' if none is available. + +\item[\monob{(6) qlen:}] Length of the query sequence or profile, in residues. + +\item[\monob{(7) E-value:}] E-value of the overall sequence/profile + comparison (including all domains). + +\item[\monob{(8) score:}] Bit score of the overall sequence/profile + comparison (including all domains), inclusive of a null2 bias + composition correction to the score. + +\item[\monob{(9) bias:}] The biased composition score correction that + was applied to the bit score. + +\item[\monob{(10) \#:}] This domain's number (1..ndom). + +\item[\monob{(11) of:}] The total number of domains reported in the + sequence, ndom. + +\item[\monob{(12) c-Evalue:}] The ``conditional E-value'', a + permissive measure of how reliable this particular domain may be. + The conditional E-value is calculated on a smaller search space than + the independent E-value. The conditional E-value uses the number of + targets that pass the reporting thresholds. The null hypothesis test + posed by the conditional E-value is as follows. Suppose that we + believe that there is already sufficient evidence (from other + domains) to identify the set of reported sequences as homologs of + our query; now, how many \emph{additional} domains would we expect + to find with at least this particular domain's bit score, if the + rest of those reported sequences were random nonhomologous sequence + (i.e.\ outside the other domain(s) that were sufficient to + identified them as homologs in the first place)? + +\item[\monob{(13) i-Evalue:}] The ``independent E-value'', the + E-value that the sequence/profile comparison would have received if + this were the only domain envelope found in it, excluding any + others. This is a stringent measure of how reliable this particular + domain may be. The independent E-value uses the total number of + targets in the target database. + +\item[\monob{(14) score:}] The bit score for this domain. + +\item[\monob{(15) bias:}] The biased composition (null2) score + correction that was applied to the domain bit score. + +\item[\monob{(16) from (hmm coord):}] + The start of the MEA alignment of this domain with respect to the + profile, numbered 1..N for a profile of N consensus positions. + +\item[\monob{(17) to (hmm coord):}] + The end of the MEA alignment of this domain with respect to the + profile, numbered 1..N for a profile of N consensus positions. + +\item[\monob{(18) from (ali coord):}] + The start of the MEA alignment of this domain with respect to the + sequence, numbered 1..L for a sequence of L residues. + +\item[\monob{(19) to (ali coord):}] + The end of the MEA alignment of this domain with respect to the + sequence, numbered 1..L for a sequence of L residues. + +\item[\monob{(20) from (env coord):}] The start of the domain + envelope on the sequence, numbered 1..L for a sequence of L + residues. The \emph{envelope} defines a subsequence for which their + is substantial probability mass supporting a homologous domain, + whether or not a single discrete alignment can be identified. + The envelope may extend beyond the endpoints of the MEA alignment, + and in fact often does, for weakly scoring domains. + +\item[\monob{(21) to (env coord):}] The end of the domain + envelope on the sequence, numbered 1..L for a sequence of L + residues. + +\item[\monob{(22) acc:}] The mean posterior probability of aligned + residues in the MEA alignment; a measure of how reliable the overall + alignment is (from 0 to 1, with 1.00 indicating a completely + reliable alignment according to the model). + +\item[\monob{(23) description of target:}] The remainder of the line + is the target's description line, as free text. +\end{description} + +As with the target hits table (above), this table is columnated neatly +for human readability, but you should not write parsers that rely on +this columnation; parse based on space-delimited fields instead. diff --git a/bioinformaticsProject/hmmer/documentation/userguide/titlepage.tex.in b/bioinformaticsProject/hmmer/documentation/userguide/titlepage.tex.in new file mode 100644 index 0000000..07e7c8b --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/titlepage.tex.in @@ -0,0 +1,11 @@ +\title{HMMER User's Guide} + +\subtitle{Biological sequence analysis using profile hidden Markov models} + +\author{Sean R. Eddy} +\subauthor{and the HMMER development team} + +\pkgurl{http://hmmer.org} +\pkgversion{@HMMER_VERSION@} % ./configure replaces HMMER_VERSION +\pkgdate{@HMMER_DATE@} % ... and HMMER_DATE + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/titlepage_daemon.tex b/bioinformaticsProject/hmmer/documentation/userguide/titlepage_daemon.tex new file mode 100644 index 0000000..55c67fb --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/titlepage_daemon.tex @@ -0,0 +1,11 @@ +\title{User's Guide for the HMMER Daemon} + +\subtitle{High-performance biological sequence analysis using profile hidden Markov models} + +\author{Sean R. Eddy, Nicholas P. Carter} +\subauthor{and the HMMER development team} + +\pkgurl{http://hmmer.org} +\pkgversion{3.3.2} % ./configure replaces HMMER_VERSION +\pkgdate{Nov 2020} % ... and HMMER_DATE + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/titlepage_daemon.tex.in b/bioinformaticsProject/hmmer/documentation/userguide/titlepage_daemon.tex.in new file mode 100644 index 0000000..27f9ee1 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/titlepage_daemon.tex.in @@ -0,0 +1,11 @@ +\title{User's Guide for the HMMER Daemon} + +\subtitle{High-performance biological sequence analysis using profile hidden Markov models} + +\author{Sean R. Eddy, Nicholas P. Carter} +\subauthor{and the HMMER development team} + +\pkgurl{http://hmmer.org} +\pkgversion{@HMMER_VERSION@} % ./configure replaces HMMER_VERSION +\pkgdate{@HMMER_DATE@} % ... and HMMER_DATE + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/tufte-book.cls b/bioinformaticsProject/hmmer/documentation/userguide/tufte-book.cls new file mode 100644 index 0000000..534552f --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/tufte-book.cls @@ -0,0 +1,88 @@ +\NeedsTeXFormat{LaTeX2e}[1994/06/01] + +\ProvidesClass{tufte-book}[2015/06/30 v3.5.3 Tufte-book class] + +%% +% Declare we're tufte-book +\newcommand{\@tufte@class}{book}% the base LaTeX class (defaults to the article/handout style) +\newcommand{\@tufte@pkgname}{tufte-book}% the name of the package (defaults to tufte-handout) + +%% +% Load the common style elements +\input{tufte-common.def} + + +%% +% Set up any book-specific stuff now + +%% +% The front matter in Tufte's /Beautiful Evidence/ contains everything up +% to the opening page of Chapter 1. The running heads, when they appear, +% contain only the (arabic) page number in the outside corner. +%\newif\if@mainmatter \@mainmattertrue +\renewcommand\frontmatter{% + \if@openright% + \cleardoublepage% + \else% + \clearpage% + \fi% + \@mainmatterfalse% + \pagenumbering{arabic}% + %\pagestyle{plain}% + \fancyhf{}% + \ifthenelse{\boolean{@tufte@twoside}}% + {\fancyhead[LE,RO]{\thepage}}% + {\fancyhead[RE,RO]{\thepage}}% +} + + +%% +% The main matter in Tufte's /Beautiful Evidence/ doesn't restart the page +% numbering---it continues where it left off in the front matter. +\renewcommand\mainmatter{% + \if@openright% + \cleardoublepage% + \else% + \clearpage% + \fi% + \@mainmattertrue% + \fancyhf{}% + \ifthenelse{\boolean{@tufte@twoside}}% + {% two-side + \renewcommand{\chaptermark}[1]{\markboth{##1}{}}% + \fancyhead[LE]{\thepage\quad\smallcaps{\newlinetospace{\plaintitle}}}% book title + \fancyhead[RO]{\smallcaps{\newlinetospace{\leftmark}}\quad\thepage}% chapter title + }% + {% one-side + \fancyhead[RE,RO]{\smallcaps{\newlinetospace{\plaintitle}}\quad\thepage}% book title + }% +} + + +%% +% The back matter contains appendices, indices, glossaries, endnotes, +% biliographies, list of contributors, illustration credits, etc. +\renewcommand\backmatter{% + \if@openright% + \cleardoublepage% + \else% + \clearpage% + \fi% + \@mainmatterfalse% +} + +%% +% Only show the chapter titles in the table of contents +\setcounter{tocdepth}{0} + +%% +% If there is a `tufte-book-local.sty' file, load it. + +\IfFileExists{tufte-book-local.tex}{% + \@tufte@info@noline{Loading tufte-book-local.tex}% + \input{tufte-book-local}% +}{} + +%% +% End of file +\endinput diff --git a/bioinformaticsProject/hmmer/documentation/userguide/tufte-common-local.tex b/bioinformaticsProject/hmmer/documentation/userguide/tufte-common-local.tex new file mode 100644 index 0000000..f9813d4 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/tufte-common-local.tex @@ -0,0 +1,105 @@ +% additional customization of tufte-latex package + +\usepackage{fancybox} +\usepackage{relsize} +\usepackage{fancyvrb} + + +\hypersetup{colorlinks, + citecolor = {Black}, + linkcolor = {RoyalBlue}, + urlcolor = {RoyalBlue}, +} + +\urlstyle{rm} + + +% customization of titlepage, hacking TL. +% +\newcommand{\subtitle}[1]{\newcommand{\plainsubtitle}{#1}} +\newcommand{\subauthor}[1]{\newcommand{\plainsubauthor}{#1}} +\newcommand{\pkgurl}[1]{\newcommand{\plainpkgurl}{#1}} +\newcommand{\pkgversion}[1]{\newcommand{\plainpkgversion}{#1}} +\newcommand{\pkgdate}[1]{\newcommand{\plainpkgdate}{#1}} + +\renewcommand{\maketitlepage}[0]{% + \cleardoublepage% + {% +% \sffamily% + \begin{fullwidth}% + \vspace*{\fill}% + \fontsize{25}{30}\selectfont\par\noindent{\thanklesstitle}% + \vspace{8pt}\hrule\vspace{8pt}% + \fontsize{12}{14}\selectfont\par\noindent\hspace*{\fill}{\plainsubtitle}% + + \vspace*{\fill}% + \begin{centering}% + \fontsize{14}{17}\selectfont\par{\plainauthor}% + \fontsize{14}{17}\selectfont\par{\plainsubauthor}% + + \vspace*{\fill}% + + \fontsize{14}{17}\selectfont\par\url{\plainpkgurl}% + \fontsize{14}{17}\selectfont\par{Version \plainpkgversion; \plainpkgdate}% + + \end{centering}% + \vspace*{\fill}% + \end{fullwidth}% + } + \thispagestyle{empty}% + \clearpage% +} + +% \smaller not \small, so \mono works proportionately in side/margin notes +% avoid nesting \mono{..\monob{..}}, because \smaller will accumulate. +% in man pages, close font changes, e.g. \fI..\fR\fB..\fR not \fi..\fB..fR +% +\newcommand{\mono}[1]{{\smaller\texttt{#1}}} % literal (to be typed): code, program names +\newcommand{\monoi}[1]{{\smaller\itshape\texttt{#1}}} % meta (to be substituted): vars, options, args +\newcommand{\monob}[1]{{\smaller\bfseries\texttt{#1}}} % emphasized literals +\newcommand{\monobi}[1]{{\smaller\bfseries\itshape\texttt{#1}}} % emphasized variables +\newcommand{\user}[1]{\indent\indent\monob{#1}} % user-typed command line, on its own line + + +\CustomVerbatimCommand{\xsreoutput}{VerbatimInput}{fontsize=\scriptsize,xleftmargin=2.0\parindent}% +\DefineVerbatimEnvironment{sreoutput}{Verbatim}{fontsize=\scriptsize,xleftmargin=2.0\parindent}% +\DefineVerbatimEnvironment{tinysreoutput}{Verbatim}{fontsize=\tiny,xleftmargin=2.0\parindent}% + + + +% Description-like environment for producing lists like: +% +% label stuff, stuff, stuff +% +% label2 more stuff, more stuff, +% more stuff. +% \begin{sreitems}{Longest label} \item[label] stuff, ... \end{sreitems} +% SRE, Wed Dec 27 11:59:43 2000 +% +\newenvironment{sreitems}[1]{% + \begin{list}{}{% + \settowidth{\labelwidth}{#1}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + }} + {\end{list}} + + +% The ``wideitem'' environment is mostly obsolete, but +% it gets used in converted manpages. +% +\newenvironment{wideitem}{\begin{list} + {} + { \setlength{\labelwidth}{2in}\setlength{\leftmargin}{1.5in}}} + {\end{list}} + +% The following are used as temp vars in how man pages are +% converted into LaTeX w/ rman; see ``make manpages'' in Makefile. +% +% (Obsolete now, I think) +\newlength{\sresavei} +\newlength{\sresaves} + + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/tufte-common.def b/bioinformaticsProject/hmmer/documentation/userguide/tufte-common.def new file mode 100644 index 0000000..3fd41ea --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/tufte-common.def @@ -0,0 +1,2026 @@ +%% +%% This file contains the code that is common to the Tufte-LaTeX document classes. +%% + +\ProvidesFile{tufte-common.def}[2015/06/21 v3.5.2 Common code for the Tufte-LaTeX styles] + +%% +% The `xkeyval' package simplifies the user interface for the document class options +\RequirePackage{xkeyval} + +%% +% We use the `xifthen' package to handle our package option switches +\RequirePackage{xifthen} + +%% +% Define some shortcut macros for error/warning/info logging. +\RequirePackage{hardwrap} +\GenerateClassLogMacros[@tufte]{\@tufte@pkgname} +\newcommand{\@tufte@debug@info}[1]{\ifthenelse{\boolean{@tufte@debug}}{\@tufte@info{#1}}{}} +\newcommand{\@tufte@debug@info@noline}[1]{\ifthenelse{\boolean{@tufte@debug}}{\@tufte@info@noline{#1}}{}} + +%% +% `debug' option -- provides more information in the .log file for use in +% troubleshooting problems +\newboolean{@tufte@debug} +\DeclareOptionX[tufte]{debug}{\setboolean{@tufte@debug}{true}} + +%% +% `nofonts' option -- doesn't load any fonts +% `fonts' option -- tries to load fonts +\newboolean{@tufte@loadfonts}\setboolean{@tufte@loadfonts}{true} +\DeclareOptionX[tufte]{fonts}{\setboolean{@tufte@loadfonts}{true}} +\DeclareOptionX[tufte]{nofonts}{\setboolean{@tufte@loadfonts}{false}} + +%% +% `nols' option -- doesn't configure letterspacing +% `ls' option -- configures letterspacing +\newboolean{@tufte@letterspace}\setboolean{@tufte@letterspace}{true} +\DeclareOptionX[tufte]{ls}{\setboolean{@tufte@letterspace}{true}} +\DeclareOptionX[tufte]{nols}{\setboolean{@tufte@letterspace}{false}} + +%% +% `nobib' option -- doesn't load natbib or adjust the \cite command +\newboolean{@tufte@loadnatbib}\setboolean{@tufte@loadnatbib}{true} +\DeclareOptionX[tufte]{nobib}{\setboolean{@tufte@loadnatbib}{false}} + +%% +% `titlepage' option -- creates a full title page with \maketitle + +\newboolean{@tufte@titlepage} +\DeclareOptionX[tufte]{titlepage}{\setboolean{@tufte@titlepage}{true}} +\DeclareOptionX[tufte]{notitlepage}{\setboolean{@tufte@titlepage}{false}} + +%% +% `a4paper' option + +\newboolean{@tufte@afourpaper} +\DeclareOptionX[tufte]{a4paper}{\setboolean{@tufte@afourpaper}{true}} + +%% +% `b5paper' option + +\newboolean{@tufte@bfivepaper} +\DeclareOptionX[tufte]{b5paper}{\setboolean{@tufte@bfivepaper}{true}} + +%% +% `sfsidenotes' option -- typesets sidenotes in sans serif typeface + +\newboolean{@tufte@sfsidenotes} +\DeclareOptionX[tufte]{sfsidenotes}{\setboolean{@tufte@sfsidenotes}{true}} + +%% +% `symmetric' option -- puts marginpar space to the outside edge of the page +% Note: this option forces the twoside option (see the .cls files) + +\newboolean{@tufte@symmetric} +\DeclareOptionX[tufte]{symmetric}{ + \setboolean{@tufte@symmetric}{true} + \@tufte@info@noline{The `symmetric' option implies `twoside'} + \ExecuteOptionsX[tufte]{twoside} +} + +%% +% `twoside' option -- alternates running heads + +\newboolean{@tufte@twoside} +\DeclareOptionX[tufte]{twoside}{% + \setboolean{@tufte@twoside}{true} + \@tufte@info@noline{Passing the `twoside' option to the `\@tufte@class' class} + \PassOptionsToClass{twoside}{\@tufte@class} +} + +%% +% `notoc' option -- suppresses the Tufte-style table of contents + +\newboolean{@tufte@toc} +\setboolean{@tufte@toc}{true} +\DeclareOptionX[tufte]{notoc}{\setboolean{@tufte@toc}{false}} +\DeclareOptionX[tufte]{toc}{\setboolean{@tufte@toc}{true}} + +%% +% `justified' option -- uses fully justified text (flush left and flush +% right) instead of ragged right. + +\newboolean{@tufte@justified} +\DeclareOptionX[tufte]{justified}{\setboolean{@tufte@justified}{true}} + +%% +% `bidi' option -- loads the bidi package for bi-directional text + +\newboolean{@tufte@loadbidi} +\DeclareOptionX[tufte]{bidi}{\setboolean{@tufte@loadbidi}{true}} +\DeclareOptionX[tufte]{nobidi}{\setboolean{@tufte@loadbidi}{false}} + +%% +% `nohyper' option -- suppresses loading of the hyperref package + +\newboolean{@tufte@loadhyper} +\setboolean{@tufte@loadhyper}{true} +\DeclareOptionX[tufte]{hyper}{\setboolean{@tufte@loadhyper}{true}} +\DeclareOptionX[tufte]{nohyper}{\setboolean{@tufte@loadhyper}{false}} + +%% +% `sidenote', `marginnote', `caption', `citation', `marginals' options +% Each allows one of {justified,raggedleft,raggedright,raggedouter,auto}. + +\newcommand*{\@tufte@sidenote@justification}{\@tufte@justification@autodetect} +\define@choicekey*+[tufte]{common}{sidenote}[\@tufte@kvtext\@tufte@kvnum]{justified,raggedleft,raggedright,raggedouter,auto}[auto]{% + \ifcase\@tufte@kvnum\relax + \renewcommand*{\@tufte@sidenote@justification}{\justifying}% justified + \or + \renewcommand*{\@tufte@sidenote@justification}{\RaggedLeft}% ragged left + \or + \renewcommand*{\@tufte@sidenote@justification}{\RaggedRight}% ragged right + \or + \renewcommand*{\@tufte@sidenote@justification}{\@tufte@justification@outer}% ragged outer (flush right on verso pages, flush left on recto pages) + \or + \renewcommand*{\@tufte@sidenote@justification}{\@tufte@justification@autodetect}% autodetects best justification mode based on all class options + \fi +}{% + \@tufte@warning@noline{Invalid option `#1' for sidenote key. Must be one of: justified, raggedleft, raggedright, raggedouter, auto} + \renewcommand*{\@tufte@sidenote@justification}{\@tufte@justification@autodetect}% autodetects best justification mode based on all class options +} + +\newcommand*{\@tufte@marginnote@justification}{\@tufte@justification@autodetect} +\define@choicekey*+[tufte]{common}{marginnote}[\@tufte@kvtext\@tufte@kvnum]{justified,raggedleft,raggedright,raggedouter,auto}[auto]{% + \ifcase\@tufte@kvnum\relax + \renewcommand*{\@tufte@marginnote@justification}{\justifying}% justified + \or + \renewcommand*{\@tufte@marginnote@justification}{\RaggedLeft}% ragged left + \or + \renewcommand*{\@tufte@marginnote@justification}{\RaggedRight}% ragged right + \or + \renewcommand*{\@tufte@marginnote@justification}{\@tufte@justification@outer}% ragged outer (flush right on verso pages, flush left on recto pages) + \or + \renewcommand*{\@tufte@marginnote@justification}{\@tufte@justification@autodetect}% autodetects best justification mode based on all class options + \fi +}{% + \@tufte@warning@noline{Invalid option `#1' for marginnote key. Must be one of: justified, raggedleft, raggedright, raggedouter, auto} + \renewcommand*{\@tufte@marginnote@justification}{\@tufte@justification@autodetect}% autodetects best justification mode based on all class options +} + +\newcommand*{\@tufte@caption@justification}{\@tufte@justification@autodetect} +\define@choicekey*+[tufte]{common}{caption}[\@tufte@kvtext\@tufte@kvnum]{justified,raggedleft,raggedright,raggedouter,auto}[auto]{% + \ifcase\@tufte@kvnum\relax + \renewcommand*{\@tufte@caption@justification}{\justifying}% justified + \or + \renewcommand*{\@tufte@caption@justification}{\RaggedLeft}% ragged left + \or + \renewcommand*{\@tufte@caption@justification}{\RaggedRight}% ragged right + \or + \renewcommand*{\@tufte@caption@justification}{\@tufte@justification@caption@outer}% ragged outer (flush right on verso pages, flush left on recto pages) + \or + \renewcommand*{\@tufte@caption@justification}{\@tufte@justification@autodetect}% autodetects best justification mode based on all class options + \fi +}{% + \@tufte@warning@noline{Invalid option `#1' for caption key. Must be one of: justified, raggedleft, raggedright, raggedouter, auto} + \renewcommand*{\@tufte@caption@justification}{\@tufte@justification@autodetect}% autodetects best justification mode based on all class options +} + +\newcommand*{\@tufte@citation@justification}{\@tufte@justification@autodetect} +\define@choicekey*+[tufte]{common}{citation}[\@tufte@kvtext\@tufte@kvnum]{justified,raggedleft,raggedright,raggedouter,auto}[auto]{% + \ifcase\@tufte@kvnum\relax + \renewcommand*{\@tufte@citation@justification}{\justifying}% justified + \or + \renewcommand*{\@tufte@citation@justification}{\RaggedLeft}% ragged left + \or + \renewcommand*{\@tufte@citation@justification}{\RaggedRight}% ragged right + \or + \renewcommand*{\@tufte@citation@justification}{\@tufte@justification@outer}% ragged outer (flush right on verso pages, flush left on recto pages) + \or + \renewcommand*{\@tufte@citation@justification}{\@tufte@justification@autodetect}% autodetects best justification mode based on all class options + \fi +}{% + \@tufte@warning@noline{Invalid option `#1' for citation key. Must be one of: justified, raggedleft, raggedright, raggedouter, auto} + \renewcommand*{\@tufte@citation@justification}{\@tufte@justification@autodetect}% autodetects best justification mode based on all class options +} + +% The ``marginals'' key simultaneously sets the same justification for all marginal material +\define@choicekey*+[tufte]{common}{marginals}[\@tufte@kvtext\@tufte@kvnum]{justified,raggedleft,raggedright,raggedouter,auto}[auto]{% + \ifcase\@tufte@kvnum\relax + \ExecuteOptionsX[tufte]{citation=justified,sidenote=justified,caption=justified,marginnote=justified}% justified + \or + \ExecuteOptionsX[tufte]{citation=raggedleft,sidenote=raggedleft,caption=raggedleft,marginnote=raggedleft}% ragged left + \or + \ExecuteOptionsX[tufte]{citation=raggedright,sidenote=raggedright,caption=raggedright,marginnote=raggedright}% ragged right + \or + \ExecuteOptionsX[tufte]{citation=raggedouter,sidenote=raggedouter,caption=raggedouter,marginnote=raggedouter}% ragged outer (flush right on verso pages, flush left on recto pages) + \or + \ExecuteOptionsX[tufte]{citation=auto,sidenote=auto,caption=auto,marginnote=auto}% autodetects best justification mode based on all class options + \fi +}{% + \@tufte@warning@noline{Invalid option `#1' for marginals key. Must be one of: justified, raggedleft, raggedright, raggedouter, auto} + \ExecuteOptionsX[tufte]{citation=auto,sidenote=auto,caption=auto,marginnote=auto}% autodetects best justification mode based on all class options +} + + +%% +% Unsupported options + +\newcommand{\@tufte@unsupported@option}[1]{\@tufte@warning@noline{Option `#1' is not supported -- ignoring option}\OptionNotUsed} + +\DeclareOptionX[tufte]{10pt}{\@tufte@unsupported@option{\CurrentOption}} +\DeclareOptionX[tufte]{11pt}{\@tufte@unsupported@option{\CurrentOption}} +\DeclareOptionX[tufte]{12pt}{\@tufte@unsupported@option{\CurrentOption}} +\DeclareOptionX[tufte]{a5paper}{\@tufte@unsupported@option{\CurrentOption}} +\DeclareOptionX[tufte]{executivepaper}{\@tufte@unsupported@option{\CurrentOption}} +\DeclareOptionX[tufte]{legalpaper}{\@tufte@unsupported@option{\CurrentOption}} +\DeclareOptionX[tufte]{landscape}{\@tufte@unsupported@option{\CurrentOption}} +\DeclareOptionX[tufte]{onecolumn}{\@tufte@unsupported@option{\CurrentOption}} +\DeclareOptionX[tufte]{twocolumn}{\@tufte@unsupported@option{\CurrentOption}} + +%% +% Default `book' and `handout' options + +\ifthenelse{\equal{\@tufte@pkgname}{tufte-book}} + {\ExecuteOptionsX[tufte]{titlepage}} + {\ExecuteOptionsX[tufte]{notitlepage}} + + +\DeclareOptionX*{% + \@tufte@info@noline{Passing \CurrentOption\space to the `\@tufte@class' class.}% + \PassOptionsToClass{\CurrentOption}{\@tufte@class}% +} +\ProcessOptionsX*[tufte]\relax + +%% +% Load the appropriate base class +\@tufte@info@noline{Loading the base class `\@tufte@class'} +\LoadClass{\@tufte@class} + +%% +% Detect whether we're in two-side mode or not. (Used to set up running +% heads later.) + +\ifthenelse{\boolean{@twoside}} + {\setboolean{@tufte@twoside}{true}} + {} + + + +%% +% Detect if we're using pdfLaTeX + +\newboolean{@tufte@pdf} +\IfFileExists{ifpdf.sty}{% + \RequirePackage{ifpdf} + \ifthenelse{\boolean{pdf}} + {\setboolean{@tufte@pdf}{true}} + {\setboolean{@tufte@pdf}{false}} +}{% assume we're not using pdfTex? + \setboolean{@tufte@pdf}{false} +} + +%% +% Detect if we're using XeLaTeX + +\newboolean{@tufte@xetex} +\IfFileExists{ifxetex.sty}{% + \RequirePackage{ifxetex} + \ifthenelse{\boolean{xetex}} + {\setboolean{@tufte@xetex}{true}} + {\setboolean{@tufte@xetex}{false}} +}{% not using xelatex + \setboolean{@tufte@xetex}{false} +} + +\ifthenelse{\boolean{@tufte@xetex}}{% + \RequirePackage{xltxtra}% xltxtra loads xunicode and fontspec; must be loaded before bidi +}{} + +%% +% Detect if we're using LuaTeX + +\newboolean{@tufte@luatex} +\IfFileExists{ifluatex.sty}{% + \RequirePackage{ifluatex} + \ifthenelse{\boolean{luatex}} + {\setboolean{@tufte@luatex}{true}} + {\setboolean{@tufte@luatex}{false}} +}{% not using luatex + \setboolean{@tufte@luatex}{false} +} + +\ifthenelse{\boolean{@tufte@luatex}}{% + \RequirePackage{fontspec} + \RequirePackage[osf,sc]{mathpazo} + \setmainfont[Renderer=Basic, Numbers=OldStyle, Scale = 1.0]{TeX Gyre Pagella} + \setsansfont[Renderer=Basic, Scale=0.90]{TeX Gyre Heros} + \setmonofont[Renderer=Basic]{TeX Gyre Cursor} +}{} + +%% +% Globally sets the length + +\newcommand*{\gsetlength}[2]{% + \setlength{#1}{#2}% + \global#1=#1\relax% +} + +%% +% Globally sets a boolean + +\newcommand*{\gsetboolean}[2]{% based on code from ifthen pkg + \lowercase{\def\@tempa{#2}}% + \@ifundefined{@tempswa\@tempa}% + {\PackageError{ifthen}{You can only set a boolean to `true' or `false'}\@ehc}% + {\@ifundefined{#1\@tempa}% + {\PackageError{ifthen}{Boolean #1 undefined}\@ehc}% + {\global\csname#1\@tempa\endcsname}% + }% +} + +%% +% The titlesec and titletoc packages are used to change the style of the +% section headings. These packages should be loaded before the hyperref +% package. + +\RequirePackage{titlesec,titletoc} + +%%% +%% Loads the hyperref package and sets some default options. + +\newcommand{\TufteLoadHyperref}{% + \ifthenelse{\boolean{@tufte@xetex}} + {\RequirePackage[unicode,hyperfootnotes=false,xetex]{hyperref}} + {\RequirePackage[unicode,hyperfootnotes=false]{hyperref}} + \hypersetup{% + pdfborder = {0 0 0}, + bookmarksdepth = section, + citecolor = DarkGreen, + linkcolor = DarkBlue, + urlcolor = DarkGreen, + }% +} + +%%% +%% Load the `hyperref' package. + +\ifthenelse{\boolean{@tufte@loadhyper}}{% + \TufteLoadHyperref% +}{% hyperfootnotes override our modifications to the \footnote* and \@footnote* commands. + \PassOptionsToPackage{hyperfootnotes=false}{hyperref} +} + +%% +% Set the font sizes and baselines to match Tufte's books +\renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt{14}% + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\normalbaselineskip=14pt +\normalsize +\renewcommand\small{% + \@setfontsize\small\@ixpt{12}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\footnotesize{% + \@setfontsize\footnotesize\@viiipt{10}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} +\renewcommand\large{\@setfontsize\large\@xipt{15}} +\renewcommand\Large{\@setfontsize\Large\@xiipt{16}} +\renewcommand\LARGE{\@setfontsize\LARGE\@xivpt{18}} +\renewcommand\huge{\@setfontsize\huge\@xxpt{30}} +\renewcommand\Huge{\@setfontsize\Huge{24}{36}} + +\setlength\leftmargini {1pc} +\setlength\leftmarginii {1pc} +\setlength\leftmarginiii {1pc} +\setlength\leftmarginiv {1pc} +\setlength\leftmarginv {1pc} +\setlength\leftmarginvi {1pc} +\setlength\labelsep {.5pc} +\setlength\labelwidth {\leftmargini} +\addtolength\labelwidth{-\labelsep} + +%% +% \RaggedRight allows hyphenation + +\setlength{\parindent}{1.0pc}% +\setlength{\parskip}{0pt}% +\RequirePackage{ragged2e} +\setlength{\RaggedRightRightskip}{\z@ plus 0.08\hsize} + +% Paragraph indentation and separation for normal text +\newcommand{\@tufte@reset@par}{% + \setlength{\RaggedRightParindent}{1.0pc}% + \setlength{\JustifyingParindent}{1.0pc}% + \setlength{\parindent}{1pc}% + \setlength{\parskip}{0pt}% +} +\@tufte@reset@par + +% Paragraph indentation and separation for marginal text +\newcommand{\@tufte@margin@par}{% + \setlength{\RaggedRightParindent}{0.5pc}% + \setlength{\JustifyingParindent}{0.5pc}% + \setlength{\parindent}{0.5pc}% + \setlength{\parskip}{0pt}% +} + + +%% +% Set page layout geometry + +\RequirePackage[letterpaper,left=1in,top=1in,headsep=2\baselineskip,textwidth=26pc,marginparsep=2pc,marginparwidth=12pc,textheight=44\baselineskip,headheight=\baselineskip]{geometry} + +\ifthenelse{\boolean{@tufte@afourpaper}} + {\geometry{a4paper,left=24.8mm,top=27.4mm,headsep=2\baselineskip,textwidth=107mm,marginparsep=8.2mm,marginparwidth=49.4mm,textheight=49\baselineskip,headheight=\baselineskip}} + {} + +\ifthenelse{\boolean{@tufte@bfivepaper}} + {\geometry{paperwidth=176mm,paperheight=250mm,left=14.66mm,top=13.88mm,textwidth=102.66mm,marginparsep=7.33mm,marginparwidth=36.66mm,textheight=38\baselineskip,includehead}} + {} + +\ifthenelse{\boolean{@tufte@symmetric}} + {} + {\geometry{asymmetric}}% forces internal LaTeX `twoside' + + +%% +% Separation marginpars by a line's worth of space. + +\setlength\marginparpush{10pt} + +%% +% Font for margin items + +\ifthenelse{\boolean{@tufte@sfsidenotes}} + {\newcommand{\@tufte@marginfont}{\normalfont\footnotesize\sffamily}} + {\newcommand{\@tufte@marginfont}{\normalfont\footnotesize}} + +\newcommand*{\@tufte@sidenote@font}{\@tufte@marginfont} +\newcommand*{\@tufte@caption@font}{\@tufte@marginfont} +\newcommand*{\@tufte@marginnote@font}{\@tufte@marginfont} +\newcommand*{\@tufte@citation@font}{\@tufte@marginfont} + +\newcommand*{\setsidenotefont}[1]{\renewcommand*{\@tufte@sidenote@font}{#1}} +\newcommand*{\setcaptionfont}[1]{\renewcommand*{\@tufte@caption@font}{#1}} +\newcommand*{\setmarginnotefont}[1]{\renewcommand*{\@tufte@marginnote@font}{#1}} +\newcommand*{\setcitationfont}[1]{\renewcommand*{\@tufte@citation@font}{#1}} + +%% +% Set the justification baesed on the `justified' class option + +\newcommand{\@tufte@justification}{% + \ifthenelse{\boolean{@tufte@justified}}% + {\justifying}% + {\RaggedRight}% +} + +%% +% Turn off section numbering + +\setcounter{secnumdepth}{-1} + +%% +% Tighten up space between displays (e.g., a figure or table) and make symmetric + +\setlength\abovedisplayskip{6pt plus 2pt minus 4pt} +\setlength\belowdisplayskip{6pt plus 2pt minus 4pt} + +%% +% To implement full-width display environments + +\newboolean{@tufte@changepage} +\IfFileExists{changepage.sty}{% + \@tufte@debug@info@noline{Found changepage.sty} + \RequirePackage[strict]{changepage} + \setboolean{@tufte@changepage}{true} +}{% + \@tufte@debug@info@noline{Found chngpage.sty} + \RequirePackage[strict]{chngpage} + \setboolean{@tufte@changepage}{false} +} + +% Write our own aliases for the \checkoddpage and \ifoddpage or \ifcpoddpage commands +\newboolean{@tufte@odd@page} +\setboolean{@tufte@odd@page}{true} +\newcommand*{\@tufte@checkoddpage}{% + \checkoddpage% + \ifthenelse{\boolean{@tufte@changepage}}{% + \ifoddpage% + \setboolean{@tufte@odd@page}{true}% + \else% + \setboolean{@tufte@odd@page}{false}% + \fi% + }{% + \ifcpoddpage% + \setboolean{@tufte@odd@page}{true}% + \else% + \setboolean{@tufte@odd@page}{false}% + \fi% + }% +} + +%% +% Compute lengths used for full-width displays + +\newlength{\@tufte@overhang}% used by the fullwidth environment and the running heads +\newlength{\@tufte@fullwidth} +\newlength{\@tufte@caption@fill} + +\newcommand{\TufteRecalculate}{% + \setlength{\@tufte@overhang}{\marginparwidth} + \addtolength{\@tufte@overhang}{\marginparsep} + + \setlength{\@tufte@fullwidth}{\textwidth} + \addtolength{\@tufte@fullwidth}{\marginparsep} + \addtolength{\@tufte@fullwidth}{\marginparwidth} + + \setlength{\@tufte@caption@fill}{\textwidth} + \addtolength{\@tufte@caption@fill}{\marginparsep} +} + +\AtBeginDocument{\TufteRecalculate} + +%% +% Modified \title, \author, and \date commands. These store the +% (footnote-less) values in \plaintitle, \plainauthor, and \thedate, respectively. + +\newcommand{\plaintitle}{}% plain-text-only title +\newcommand{\plainauthor}{}% plain-text-only author +\newcommand{\plainpublisher}{}% plain-text-only publisher + +\newcommand{\thanklesstitle}{}% full title text minus \thanks{} +\newcommand{\thanklessauthor}{}% full author text minus \thanks{} +\newcommand{\thanklesspublisher}{}% full publisher minus \thanks{} + +\newcommand{\@publisher}{}% full publisher with \thanks{} +\newcommand{\thedate}{\today} + +% TODO Fix it so that \thanks is not spaced out (with `soul') and can be +% used in \maketitle when the `sfsidenotes' option is provided. +\renewcommand{\thanks}[1]{\NoCaseChange{\footnote{#1}}} + +\renewcommand{\title}[2][]{% + \gdef\@title{#2}% + \begingroup% + % TODO store contents of \thanks command + \renewcommand{\thanks}[1]{}% swallow \thanks contents + \protected@xdef\thanklesstitle{#2}% + \endgroup% + \ifthenelse{\isempty{#1}}% + {\renewcommand{\plaintitle}{\thanklesstitle}}% use thankless title + {\renewcommand{\plaintitle}{#1}}% use provided plain-text title + \ifthenelse{\isundefined{\hypersetup}}% + {}% hyperref is not loaded; do nothing + {\hypersetup{pdftitle={\plaintitle}}}% set the PDF metadata title +} + +\let\@author\@empty% suppress default latex.ltx ``no author'' warning +\renewcommand{\author}[2][]{% + \ifthenelse{\isempty{#2}}{}{\gdef\@author{#2}}% + \begingroup% + % TODO store contents of \thanks command + \renewcommand{\thanks}[1]{}% swallow \thanks contents + \protected@xdef\thanklessauthor{#2}% + \endgroup% + \ifthenelse{\isempty{#1}}% + {\renewcommand{\plainauthor}{\thanklessauthor}}% use thankless author + {\renewcommand{\plainauthor}{#1}}% use provided plain-text author + \ifthenelse{\isundefined{\hypersetup}}% + {}% hyperref is not loaded; do nothing + {\hypersetup{pdfauthor={\plainauthor}}}% set the PDF metadata author +} + +\renewcommand{\date}[1]{% + \gdef\@date{#1}% + \begingroup% + % TODO store contents of \thanks command + \renewcommand{\thanks}[1]{}% swallow \thanks contents + \protected@xdef\thedate{#1}% + \endgroup% +} + +%% +% Provides a \publisher command to set the publisher + +\newcommand{\publisher}[2][]{% + \gdef\@publisher{#2}% + \begingroup% + \renewcommand{\thanks}[1]{}% swallow \thanks contents + \protected@xdef\thanklesspublisher{#2}% + \endgroup% + \ifthenelse{\isempty{#1}} + {\renewcommand{\plainpublisher}{\thanklesspublisher}}% use thankless publisher + {\renewcommand{\plainpublisher}{#1}}% use provided plain-text publisher +} + +% TODO: Test \hypersetup{pdfauthor,pdftitle} with DVI and XeTeX + +%% +% Require paralist package for tighter lists + +\RequirePackage{paralist} + +% Add rightmargin to compactenum + +\def\@compactenum@{% + \expandafter\list\csname label\@enumctr\endcsname{% + \usecounter{\@enumctr}% + \rightmargin=2em% added this + \parsep\plparsep + \itemsep\plitemsep + \topsep\pltopsep + \partopsep\plpartopsep + \def\makelabel##1{\hss\llap{##1}}}} + +%% +% Improved letterspacing of small caps and all-caps text. +% +% First, try to use the `microtype' package, if it's available. +% Failing that, try to use the `soul' package, if it's available. +% Failing that, well, I give up. + +\DeclareTextFontCommand{\textsmallcaps}{\scshape} + +\RequirePackage{textcase} % provides \MakeTextUppercase and \MakeTextLowercase +\def\allcapsspacing{\@tufte@warning{Proper spacing of ALL-CAPS letters has not been set up.}} +\def\smallcapsspacing{\@tufte@warning{Proper spacing of small-caps letters has not been set up.}} +\newcommand{\allcaps}[1]{\allcapsspacing{\MakeTextUppercase{#1}}} +\newcommand{\smallcaps}[1]{\smallcapsspacing{\MakeTextLowercase{#1}}} + +% If we're using pdfLaTeX v1.40+, use the letterspace package. +% If we're using pdfLaTex < v1.40, use the soul package. +% If we're using XeLaTeX, use XeLaTeX letterspacing options. +% Otherwise fall back on the soul package. + +\ifthenelse{\boolean{@tufte@pdf}} + {\@tufte@debug@info@noline{ifpdf = true}} + {\@tufte@debug@info@noline{ifpdf = false}} + +\ifthenelse{\boolean{@tufte@xetex}} + {\@tufte@debug@info@noline{ifxetex = true}} + {\@tufte@debug@info@noline{ifxetex = false}} + +% Check pdfLaTeX version +\def\@tufte@pdftexversion{0} +\ifx\normalpdftexversion\@undefined \else + \let\pdftexversion \normalpdftexversion + \let\pdftexrevision\normalpdftexrevision + \let\pdfoutput \normalpdfoutput +\fi +\ifx\pdftexversion\@undefined \else + \ifx\pdftexversion\relax \else + \def\@tufte@pdftexversion{6} + \ifnum\pdftexversion < 140 + \def\@tufte@pdftexversion{5} + \fi + \fi +\fi + +\newboolean{@tufte@letterspace@pkg@prereqs} +\setboolean{@tufte@letterspace@pkg@prereqs}{true} +\ifnum\@tufte@pdftexversion<6 + \setboolean{@tufte@letterspace@pkg@prereqs}{false} +\fi + + +\newcommand{\@tufte@letterspacing@soul}{% + \RequirePackage{soul}% + \sodef\allcapsspacing{}{0.15em}{0.65em}{0.6em}% + \sodef\smallcapsspacing{}{0.075em}{0.5em}{0.6em}% + \sodef\sotextsc{\scshape}{0.075em}{0.5em}{0.6em}% + \renewcommand{\allcaps}[1]{\allcapsspacing{\MakeTextUppercase{##1}}}% + \renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{##1}}}% + \renewcommand{\textsc}[1]{\sotextsc{##1}}% +} + +\newcommand{\@tufte@letterspacing@letterspace}{% + \@tufte@debug@info@noline{Modern version of pdfTeX detected. Using `letterspace' package}% + \RequirePackage{letterspace}% + % Set up letterspacing (using microtype package) -- requires pdfTeX v1.40+ + \renewcommand{\allcapsspacing}[1]{\textls[200]{##1}}% + \renewcommand{\smallcapsspacing}[1]{\textls[50]{##1}}% + \renewcommand{\allcaps}[1]{\allcapsspacing{\MakeTextUppercase{##1}}}% + \renewcommand{\smallcaps}[1]{\smallcapsspacing{\scshape\MakeTextLowercase{##1}}}% + \renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{##1}}}% +} + +\ifthenelse{\boolean{@tufte@letterspace}}{% + \ifthenelse{\boolean{@tufte@pdf}\AND\boolean{@tufte@letterspace@pkg@prereqs}\AND\NOT\boolean{@tufte@xetex}}{% + % load letterspace pkg + \IfFileExists{letterspace.sty}{% + \@tufte@letterspacing@letterspace + }{}% + }{}% + % load soul pkg + \@ifpackageloaded{letterspace}{}{% + \IfFileExists{soul.sty}{% + \@tufte@letterspacing@soul + }{% + \@tufte@warning@noline{Couldn't locate `soul' package}% + }% soul not installed... giving up. + }% +}{} + +%\ifthenelse{\boolean{@tufte@letterspace}}{% + %\ifthenelse{\boolean{pdf}}{% + %\ifthenelse{\NOT\boolean{@tufte@letterspace@pkg@prereqs}}{% + %% pdfLaTeX version is too old or not using pdfLaTeX + %\ifthenelse{\boolean{@tufte@xetex}}{% + %% TODO use xetex letterspacing + %\@tufte@debug@info@noline{XeTeX detected. Reverting to `soul' package for letterspacing}% + %\@tufte@loadsoul% + %}{% + %% use `soul' package for letterspacing + %\@tufte@debug@info@noline{Old version of pdfTeX detected. Reverting to `soul' package for letterspacing}% + %\@tufte@loadsoul% + %} + %}{% + %\IfFileExists{letterspace.sty}{% + %\@tufte@debug@info@noline{Modern version of pdfTeX detected. Using `letterspace' package} + %\RequirePackage{letterspace} + %% Set up letterspacing (using microtype package) -- requires pdfTeX v1.40+ + %\renewcommand{\allcapsspacing}[1]{\textls[200]{##1}} + %\renewcommand{\smallcapsspacing}[1]{\textls[50]{##1}} + %\renewcommand{\allcaps}[1]{\textls[200]{\MakeTextUppercase{##1}}} + %\renewcommand{\smallcaps}[1]{\smallcapsspacing{\MakeTextLowercase{##1}}} + %\renewcommand{\textsc}[1]{\smallcapsspacing{\textsmallcaps{##1}}} + %}{% microtype failed, check for soul + %\@tufte@debug@info@noline{Modern version of pdfTeX detected, but `letterspace' package not installed. Reverting to `soul' package for letterspacing} + %\@tufte@loadsoul + %}% + %}% + %}{% + %\@tufte@debug@info@noline{Plain LaTeX detected. Using `soul' package for letterspacing} + %\@tufte@loadsoul + %} +%}{% +%% we're not to load letterspacing, so do nothing +%} + + +%% +% An environment for paragraph-style section + +\providecommand\newthought[1]{% + \tuftebreak + \noindent\textsc{#1}% +} + +%% +% Redefine the display environments (quote, quotation, etc.) + +\renewenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep \z@ + \itemindent -1pc% + \listparindent\itemindent + \rightmargin \leftmargin + \advance\leftmargin 1pc}% + \small% + \item\relax} + {\endlist} +\renewenvironment{quotation} + {\list{}{\listparindent 1pc% + \itemindent \listparindent + \rightmargin \leftmargin + \parsep \z@ \@plus\p@}% + \small% + \item\relax\noindent\ignorespaces} + {\endlist} +\renewenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \small% + \item\relax} + {\endlist} + +%% +% Italicize description run-in headings (instead of the default bold) + +\renewcommand*\descriptionlabel[1]{\hspace\labelsep\normalfont\em #1} + + +%% +% Used for doublespacing, and other linespacing + +\RequirePackage{setspace} + +%% +% Color +\RequirePackage[dvipsnames,svgnames]{xcolor}% load before bidi + +%% +% Load the bidi package if instructed to do so. This package must be loaded +% prior to our redefining the \footnote and \cite commands. + +\ifthenelse{\boolean{@tufte@loadbidi}}{% + \AtBeginDocument{% + \RequirePackage{bidi} + \@tufte@pkghook@post@bidi% + }% +}{} + + +%% +% A function that removes leading and trailling spaces from the supplied macro. +% Based on code written by Michael Downes (See ``Around the Bend'', #15.) +% Executing \@tufte@trim@spaces\xyzzy will result in the contents of \xyzzy +% being trimmed of leading and trailing white space. + +\catcode`\Q=3 +\def\@tufte@trim@spaces#1{% + % Use grouping to emulate a multi-token afterassignment queue + \begingroup% + % Put `\toks 0 {' into the afterassignment queue + \aftergroup\toks\aftergroup0\aftergroup{% + % Apply \trimb to the replacement text of #1, adding a leading + % \noexpand to prevent brace stripping and to serve another purpose + % later. + \expandafter\@tufte@trim@b\expandafter\noexpand#1Q Q}% + % Transfer the trimmed text back into #1. + \edef#1{\the\toks0}% +} + +% \trimb removes a trailing space if present, then calls \@tufte@trim@c to +% clean up any leftover bizarre Qs, and trim a leading space. In +% order for \trimc to work properly we need to put back a Q first. +\def\@tufte@trim@b#1 Q{\@tufte@trim@c#1Q} + +% Execute \vfuzz assignment to remove leading space; the \noexpand +% will now prevent unwanted expansion of a macro or other expandable +% token at the beginning of the trimmed text. The \endgroup will feed +% in the \aftergroup tokens after the \vfuzz assignment is completed. +\def\@tufte@trim@c#1Q#2{\afterassignment\endgroup \vfuzz\the\vfuzz#1} +\catcode`\Q=11 + +%% +% Citations should go in the margin as sidenotes + +\ifthenelse{\boolean{@tufte@loadnatbib}}{% + \RequirePackage{natbib}% + \RequirePackage{bibentry}% allows bibitems to be typeset outside thebibliography environment + % Redefine the \BR@b@bibitem command to fix a bug with bibentry+chicago style + \renewcommand\BR@b@bibitem[2][]{% + \ifthenelse{\isempty{#1}}% + {\BR@bibitem{#2}}% + {\BR@bibitem[#1]{#2}}% + \BR@c@bibitem{#2}% + }% + \nobibliography*% pre-loads the bibliography keys + \providecommand{\doi}[1]{\textsc{doi:} #1}% pre-defining this so it may be used before the \bibliography command it issued +}{} + +%% +% Normal \cite behavior +\newcounter{@tufte@num@bibkeys}% +\newcommand{\@tufte@normal@cite}[2][0pt]{% + % Snag the last bibentry in the list for later comparison + \let\@temp@last@bibkey\@empty% + \@for\@temp@bibkey:=#2\do{\let\@temp@last@bibkey\@temp@bibkey}% + \sidenote[][#1]{% + % Loop through all the bibentries, separating them with semicolons and spaces + \normalsize\normalfont\@tufte@citation@font% + \setcounter{@tufte@num@bibkeys}{0}% + \@for\@temp@bibkeyx:=#2\do{% + \ifthenelse{\equal{\@temp@last@bibkey}{\@temp@bibkeyx}}% + {\ifthenelse{\equal{\value{@tufte@num@bibkeys}}{0}}{}{and\ }% + \@tufte@trim@spaces\@temp@bibkeyx% trim spaces around bibkey + \bibentry{\@temp@bibkeyx}}% + {\@tufte@trim@spaces\@temp@bibkeyx% trim spaces around bibkey + \bibentry{\@temp@bibkeyx};\ }% + \stepcounter{@tufte@num@bibkeys}% + }% + }% +} + + +%% +% Macros for holding the list of cite keys until after the \sidenote + +\gdef\@tufte@citations{}% list of cite keys +\newcommand\@tufte@add@citation[1]{\relax% adds a new bibkey to the list of cite keys + \ifx\@tufte@citations\@empty\else + \g@addto@macro\@tufte@citations{,}% separate by commas + \fi + \g@addto@macro\@tufte@citations{#1} +} + +\newcommand{\@tufte@print@citations}[1][0pt]{% puts the citations in a margin note + % Snag the last bibentry in the list for later comparison + \let\@temp@last@bibkey\@empty% + \@for\@temp@bibkey:=\@tufte@citations\do{\let\@temp@last@bibkey\@temp@bibkey}% + \marginpar{% + \hbox{}\vspace*{#1}% + \@tufte@citation@font% + \@tufte@citation@justification% + \@tufte@margin@par% use parindent and parskip settings for marginal text + \vspace*{-1\baselineskip}% + % Loop through all the bibentries, separating them with semicolons and spaces + \setcounter{@tufte@num@bibkeys}{0}% + \@for\@temp@bibkeyx:=\@tufte@citations\do{% + \ifthenelse{\equal{\@temp@last@bibkey}{\@temp@bibkeyx}}% + {\ifthenelse{\equal{\value{@tufte@num@bibkeys}}{0}}{}{and\ }% + \@tufte@trim@spaces\@temp@bibkeyx% trim spaces around bibkey + \bibentry{\@temp@bibkeyx}}% + {\@tufte@trim@spaces\@temp@bibkeyx% trim spaces around bibkey + \bibentry{\@temp@bibkeyx};\ }% + \stepcounter{@tufte@num@bibkeys}% + }% + }% +} + +%% +% \cite behavior when executed within a sidenote + +\newcommand{\@tufte@sidenote@citations}{}% contains list of \cites in sidenote +\newcommand{\@tufte@infootnote@cite}[1]{% + \@tufte@add@citation{#1} +} + +%% +% Set the default \cite style. This is set and reset by the \sidenote command. + +\ifthenelse{\boolean{@tufte@loadnatbib}}{% + \let\cite\@tufte@normal@cite +}{} + +%% +% Transform existing \footnotes into \sidenotes +% Sidenote: ``Where God meant footnotes to go.'' ---Tufte + +\RequirePackage{optparams}% for our new sidenote commands -- provides multiple optional arguments for commands + +\providecommand{\footnotelayout}{\@tufte@sidenote@font\@tufte@sidenote@justification} +\renewcommand{\footnotelayout}{\@tufte@sidenote@font\@tufte@sidenote@justification} + +% Override footmisc's definition to set the sidenote marks (numbers) inside the +% sidenote's text block. +\long\def\@makefntext#1{\@textsuperscript{\@tufte@sidenote@font\tiny\@thefnmark}\,\footnotelayout#1} + +% Set the in-text footnote mark in the same typeface as the body text itself. +\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\footnotesize\@thefnmark}}} + +\providecommand*{\multiplefootnotemarker}{3sp} +\providecommand*{\multfootsep}{,} + +\renewcommand{\@footnotemark}{% + \leavevmode% + \ifhmode% + \edef\@x@sf{\the\spacefactor}% + \@tufte@check@multiple@sidenotes% + \nobreak% + \fi% + \@makefnmark% + \ifhmode\spacefactor\@x@sf\fi% + \relax% +} + +\newcommand{\@tufte@check@multiple@sidenotes}{% + \ifdim\lastkern=\multiplefootnotemarker\relax% + \edef\@x@sf{\the\spacefactor}% + \unkern% + \textsuperscript{\multfootsep}% + \spacefactor\@x@sf\relax% + \fi +} + +\renewcommand\@footnotetext[2][0pt]{% + \marginpar{% + \hbox{}\vspace*{#1}% + \def\baselinestretch {\setspace@singlespace}% + \reset@font\footnotesize% + \@tufte@margin@par% use parindent and parskip settings for marginal text + \vspace*{-1\baselineskip}\noindent% + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark% + }% + \color@begingroup% + \@makefntext{% + \ignorespaces#2% + }% + \color@endgroup% + }% +}% + +% Ensure this is run after the bidi package has been loaded +\def\@tufte@pkghook@post@bidi{}% +\g@addto@macro{\@tufte@pkghook@post@bidi}{% + \renewcommand\@footnotetext[2][0pt]{% + \marginpar{% + \hbox{}\vspace*{#1}% + \def\baselinestretch {\setspace@singlespace}% + \if@rl@footnote\@rltrue\else\@rlfalse\fi% + \reset@font\footnotesize% + \@tufte@margin@par% use parindent and parskip settings for marginal text + \vspace*{-1\baselineskip}\noindent% + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark% + }% + \color@begingroup% + \@makefntext{% + \ignorespaces#2% + }% + \color@endgroup% + }% + }% +}% + +% +% Define \sidenote command. Can handle \cite. + +\newlength{\@tufte@sidenote@vertical@offset} +\setlength{\@tufte@sidenote@vertical@offset}{0pt} + +% #1 = footnote num, #2 = vertical offset, #3 = footnote text +\long\def\@tufte@sidenote[#1][#2]#3{% + \ifthenelse{\boolean{@tufte@loadnatbib}}{% + \let\cite\@tufte@infootnote@cite% use the in-sidenote \cite command + }{}% + \gdef\@tufte@citations{}% clear out any old citations + \ifthenelse{\NOT\isempty{#2}}{% + \gsetlength{\@tufte@sidenote@vertical@offset}{#2}% + }{% + \gsetlength{\@tufte@sidenote@vertical@offset}{0pt}% + }% + \ifthenelse{\isempty{#1}}{% + % no specific footnote number provided + \stepcounter\@mpfn% + \protected@xdef\@thefnmark{\thempfn}% + \@footnotemark\@footnotetext[\@tufte@sidenote@vertical@offset]{#3}% + }{% + % specific footnote number provided + \begingroup% + \csname c@\@mpfn\endcsname #1\relax% + \unrestored@protected@xdef\@thefnmark{\thempfn}% + \endgroup% + \@footnotemark\@footnotetext[\@tufte@sidenote@vertical@offset]{#3}% + }% + \@tufte@print@citations% print any citations + \ifthenelse{\boolean{@tufte@loadnatbib}}{% + \let\cite\@tufte@normal@cite% go back to using normal in-text \cite command + }{}% + \unskip\ignorespaces% remove extra white space + \kern-\multiplefootnotemarker% remove \kern left behind by sidenote + \kern\multiplefootnotemarker\relax% add new \kern here to replace the one we yanked +} + +\newcommand{\sidenote}{\optparams{\@tufte@sidenote}{[][0pt]}} +\renewcommand{\footnote}{\optparams{\@tufte@sidenote}{[][0pt]}} + +%% +% Sidenote without the footnote mark + +\newcommand\marginnote[2][0pt]{% + \ifthenelse{\boolean{@tufte@loadnatbib}}{% + \let\cite\@tufte@infootnote@cite% use the in-sidenote \cite command + }{}% + \gdef\@tufte@citations{}% clear out any old citations + \marginpar{\hbox{}\vspace*{#1}\@tufte@marginnote@font\@tufte@marginnote@justification\@tufte@margin@par\vspace*{-1\baselineskip}\noindent #2}% + \@tufte@print@citations% print any citations + \ifthenelse{\boolean{@tufte@loadnatbib}}{% + \let\cite\@tufte@normal@cite% go back to using normal in-text \cite command + }{}% +} + + +%% +% The placeins package provides the \FloatBarrier command. This forces +% LaTeX to place all of the floats before proceeding. We'll use this to +% keep the float (figure and table) numbers in sequence. +\RequirePackage{placeins} + +%% +% Margin float environment + +\newsavebox{\@tufte@margin@floatbox} +\newenvironment{@tufte@margin@float}[2][-1.2ex]% + {\FloatBarrier% process all floats before this point so the figure/table numbers stay in order. + \begin{lrbox}{\@tufte@margin@floatbox}% + \begin{minipage}{\marginparwidth}% + \@tufte@caption@font% + \def\@captype{#2}% + \hbox{}\vspace*{#1}% + \@tufte@caption@justification% + \@tufte@margin@par% + \noindent% + } + {\end{minipage}% + \end{lrbox}% + \marginpar{\usebox{\@tufte@margin@floatbox}}% + } + + +%% +% Margin figure environment + +\newenvironment{marginfigure}[1][-1.2ex]% + {\begin{@tufte@margin@float}[#1]{figure}} + {\end{@tufte@margin@float}} + + +%% +% Margin table environment + +\newenvironment{margintable}[1][-1.2ex]% + {\begin{@tufte@margin@float}[#1]{table}} + {\end{@tufte@margin@float}} + + +%% +% Auto-detects the proper text alignment based on the various class options + +\newcommand*{\@tufte@justification@autodetect}{% + \ifthenelse{\boolean{@tufte@justified}}% + {\justifying}% + {\RaggedRight}% +} + +%% +% Forces the outer edge of the caption to be set ragged. +% Therefore, on verso pages it's ragged left, and on recto pages it's ragged right. + +\newcommand*{\@tufte@justification@caption@outer}{% + \ifthenelse{\boolean{@tufte@float@recto}}% + {\RaggedRight}% + {\RaggedLeft}% +} + +\newcommand*{\@tufte@justification@outer}{% + \@tufte@checkoddpage% + \ifthenelse{\boolean{@tufte@odd@page}}% + {\RaggedRight}% + {\RaggedLeft}% +} + + + +%% +% A collection of macros to be used with the new Tufte-style float environments. +% \setfloatalignment forces the caption placement to be treated as top, bottom, etc. +% \forcerectofloat forces the float to be treated as if it were appearing on a recto page. +% \forceversofloat does the same, but for verso pages. + +\newcommand{\@tufte@float@debug@info}{}% contains debug info generated as the float is processed +\newcommand{\@tufte@float@debug}[1]{% adds debug info to the queue for output + \ifthenelse{\equal{\@tufte@float@debug@info}{}}% + {\def\@tufte@float@debug@info{#1}}% + {\g@addto@macro\@tufte@float@debug@info{\MessageBreak#1}}% +} + +\newcommand{\floatalignment}{x}% holds the current float alignment (t, b, h, p) +\newcommand{\setfloatalignment}[1]{\global\def\floatalignment{#1}\@tufte@float@debug{Forcing position: [#1]}}% manually sets the float alignment +\newboolean{@tufte@float@recto} +\newcommand{\forcerectofloat}{\gsetboolean{@tufte@float@recto}{true}\@tufte@float@debug{Forcing page: [recto]}} +\newcommand{\forceversofloat}{\gsetboolean{@tufte@float@recto}{false}\@tufte@float@debug{Forcing page: [verso]}} + +% Boxes to temporarily store our float and caption +\newsavebox{\@tufte@figure@box} +\newsavebox{\@tufte@caption@box} + +% Save original LaTeX float environment +\let\@tufte@orig@float\@float +\let\@tufte@orig@endfloat\end@float + +% New length for tweaking float captions +\newlength{\@tufte@caption@vertical@offset} +\setlength{\@tufte@caption@vertical@offset}{0pt} + +% Store the caption and label contents +\newcommand{\@tufte@stored@shortcaption}{} +\newcommand{\@tufte@stored@caption}{} +\newcommand{\@tufte@stored@label}{} + +\long\def\@tufte@caption[#1][#2]#3{% + \ifthenelse{\isempty{#1}}% + {\gdef\@tufte@stored@shortcaption{#3}}% + {\gdef\@tufte@stored@shortcaption{#1}}% + \gsetlength{\@tufte@caption@vertical@offset}{-#2}% we want a positive offset to lower captions + \gdef\@tufte@stored@caption{#3}% +} + +\newcommand{\@tufte@label}[1]{% + \gdef\@tufte@stored@label{#1}% +} + +\newcommand{\@tufte@fps}{} + +\newboolean{@tufte@float@star} +\newlength{\@tufte@float@contents@width} + +%% +% Define a float environment to place the captions in the margin space + +\newenvironment{@tufte@float}[3][htbp]% + {% begin @tufte@float + % Should this float be full-width or just text-width? + \ifthenelse{\equal{#3}{star}}% + {\gsetboolean{@tufte@float@star}{true}}% + {\gsetboolean{@tufte@float@star}{false}}% + % Check page side (recto/verso) and store detected value -- can be overriden in environment contents + \@tufte@checkoddpage% + \ifthenelse{\boolean{@tufte@odd@page}}% + {\gsetboolean{@tufte@float@recto}{true}\@tufte@float@debug{Detected page: [recto/odd]}}% + {\gsetboolean{@tufte@float@recto}{false}\@tufte@float@debug{Detected page: [verso/even]}}% + % If the float placement specifier is 'b' and only 'b', then bottom-align the mini-pages, otherwise top-align them. + \renewcommand{\@tufte@fps}{#1}% + \@tufte@float@debug{Allowed positions: [#1]}% + \ifthenelse{\equal{#1}{b}\OR\equal{#1}{B}}% + {\renewcommand{\floatalignment}{b}\@tufte@float@debug{Presumed position: [bottom]}}% + {\renewcommand{\floatalignment}{t}\@tufte@float@debug{Presumed position: [top]}}% + % Capture the contents of the \caption and \label commands to use later + \global\let\@tufte@orig@caption\caption% + \global\let\@tufte@orig@label\label% + \renewcommand{\caption}{\optparams{\@tufte@caption}{[][0pt]}}% + \renewcommand{\label}[1]{\@tufte@label{##1}}% + % Handle subfigure package compatibility + \ifthenelse{\boolean{@tufte@packages@subfigure}}{% + % don't move the label while inside a \subfigure or \subtable command + \global\let\label\@tufte@orig@label% + }{}% subfigure package is not loaded + \@tufte@orig@float{#2}[#1]% + \ifthenelse{\boolean{@tufte@float@star}}% + {\setlength{\@tufte@float@contents@width}{\@tufte@fullwidth}}% + {\setlength{\@tufte@float@contents@width}{\textwidth}}% + \begin{lrbox}{\@tufte@figure@box}% + \begin{minipage}[\floatalignment]{\@tufte@float@contents@width}\hbox{}% + }{% end @tufte@float + \par\hbox{}\vspace{-\baselineskip}\ifthenelse{\prevdepth>0}{\vspace{-\prevdepth}}{}% align baselines of boxes + \end{minipage}% + \end{lrbox}% + % build the caption box + \begin{lrbox}{\@tufte@caption@box}% + \begin{minipage}[\floatalignment]{\marginparwidth}\hbox{}% + \ifthenelse{\NOT\equal{\@tufte@stored@caption}{}}{\@tufte@orig@caption[\@tufte@stored@shortcaption]{\@tufte@stored@caption}}{}% + \ifthenelse{\NOT\equal{\@tufte@stored@label}{}}{\@tufte@orig@label{\@tufte@stored@label}}{}% + \par\vspace{-\prevdepth}%% TODO: DOUBLE-CHECK FOR SAFETY + \end{minipage}% + \end{lrbox}% + % now typeset the stored boxes + \begin{fullwidth}% + \begin{minipage}[\floatalignment]{\linewidth}% + \ifthenelse{\boolean{@tufte@float@star}}% + {\@tufte@float@fullwidth[\@tufte@caption@vertical@offset]{\@tufte@figure@box}{\@tufte@caption@box}}% + {\@tufte@float@textwidth[\@tufte@caption@vertical@offset]{\@tufte@figure@box}{\@tufte@caption@box}}% + \end{minipage}% + \end{fullwidth}% + \@tufte@orig@endfloat% end original LaTeX float environment + % output debug info + \ifthenelse{\boolean{@tufte@debug}}{% + \typeout{^^J^^J----------- Tufte-LaTeX float information ----------}% + \ifthenelse{\equal{\@tufte@stored@label}{}}% + {\typeout{Warning: Float unlabeled!}}% + {\typeout{Float label: [\@tufte@stored@label]}}% + \typeout{Page number: [\thepage]}% + \def\MessageBreak{^^J}% + \typeout{\@tufte@float@debug@info}% + \ifthenelse{\boolean{@tufte@symmetric}}% + {\typeout{Symmetric: [true]}}% + {\typeout{Symmetric: [false]}}% + \typeout{----------------------------------------------------^^J^^J}% + }{}% + % reset commands and temp boxes and captions + \gdef\@tufte@float@debug@info{}% + \let\caption\@tufte@orig@caption% + \let\label\@tufte@orig@label% + \begin{lrbox}{\@tufte@figure@box}\hbox{}\end{lrbox}% + \begin{lrbox}{\@tufte@caption@box}\hbox{}\end{lrbox}% + \gdef\@tufte@stored@shortcaption{}% + \gdef\@tufte@stored@caption{}% + \gdef\@tufte@stored@label{}% + \gsetlength{\@tufte@caption@vertical@offset}{0pt}% reset caption offset + } + +\newcommand{\@tufte@float@textwidth}[3][0pt]{% + \ifthenelse{\NOT\boolean{@tufte@symmetric}\OR\boolean{@tufte@float@recto}}{% + % asymmetric or page is odd, so caption is on the right + \hbox{% + \usebox{#2}% + \hspace{\marginparsep}% + \smash{\raisebox{#1}{\usebox{#3}}}% + }% + \@tufte@float@debug{Caption position: [right]}% + }{% symmetric pages and page is even, so caption is on the left + \hbox{% + \smash{\raisebox{#1}{\usebox{#3}}}% + \hspace{\marginparsep}% + \usebox{#2}% + }% + \@tufte@float@debug{Caption position: [left]}% + }% +} + +\newcommand{\@tufte@float@fullwidth}[3][0pt]{% + \ifthenelse{\equal{\floatalignment}{b}}% + {% place caption above figure + \ifthenelse{\NOT\boolean{@tufte@symmetric}\OR\boolean{@tufte@float@recto}}% + {\hfill\smash{\raisebox{#1}{\usebox{#3}}}\par\usebox{#2}\@tufte@float@debug{Caption position: [above right]}}% caption on the right + {\smash{\raisebox{#1}{\usebox{#3}}}\hfill\par\usebox{#2}\@tufte@float@debug{Caption position: [above left]}}% caption on the left + }{% place caption below figure + \ifthenelse{\NOT\boolean{@tufte@symmetric}\OR\boolean{@tufte@float@recto}}% + {\usebox{#2}\par\hfill\smash{\raisebox{#1}{\usebox{#3}}}\@tufte@float@debug{Caption position: [below right]}}% caption on the right + {\usebox{#2}\par\smash{\raisebox{#1}{\usebox{#3}}}\hfill\@tufte@float@debug{Caption position: [below left]}}% caption on the left + }% +} + + +%% +% Redefine the figure environment to place the captions in the margin space + +\renewenvironment{figure}[1][htbp]% + {\ifvmode\else\unskip\fi\begin{@tufte@float}[#1]{figure}{}} + {\end{@tufte@float}} + + +%% +% Redefine the table environment to place the captions in the margin space + +\renewenvironment{table}[1][htbp] + {\ifvmode\else\unskip\fi\begin{@tufte@float}[#1]{table}{}} + {\end{@tufte@float}} + + +%% +% Full-width figure + +\renewenvironment{figure*}[1][htbp]% + {\ifvmode\else\unskip\fi\begin{@tufte@float}[#1]{figure}{star}} + {\end{@tufte@float}} + + +%% +% Full-width table + +\renewenvironment{table*}[1][htbp]% + {\ifvmode\else\unskip\fi\begin{@tufte@float}[#1]{table}{star}} + {\end{@tufte@float}} + + +%% +% Full-page-width area + +\newenvironment{fullwidth} + {\ifthenelse{\boolean{@tufte@symmetric}}% + {\ifthenelse{\boolean{@tufte@changepage}}{\begin{adjustwidth*}{}{-\@tufte@overhang}}{\begin{adjustwidth}[]{}{-\@tufte@overhang}}}% + {\begin{adjustwidth}{}{-\@tufte@overhang}}% + }% + {\ifthenelse{\boolean{@tufte@symmetric}}% + {\ifthenelse{\boolean{@tufte@changepage}}{\end{adjustwidth*}}{\end{adjustwidth}}}% + {\end{adjustwidth}}% + } + +%% +% Format the captions in a style similar to the sidenotes + +\long\def\@caption#1[#2]#3{% + \par% + \addcontentsline{\csname ext@#1\endcsname}{#1}% + {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}% + \begingroup% + \@parboxrestore% + \if@minipage% + \@setminipage% + \fi% + \@tufte@caption@font\@tufte@caption@justification% + \noindent\csname fnum@#1\endcsname: \ignorespaces#3\par% + %\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup} + +%% +% If we're NOT using XeLaTeX and the `nofonts' class option was NOT provided, +% we should load the Palatino, Helvetica, and Bera Mono fonts (if they are +% installed.) + +\ifthenelse{\boolean{@tufte@loadfonts}\AND\NOT\boolean{@tufte@xetex}\AND\NOT\boolean{@tufte@luatex}}{% + \IfFileExists{mathpazo.sty}{\RequirePackage[osf,sc]{mathpazo}}{} + \IfFileExists{helvet.sty}{\RequirePackage[scaled=0.90]{helvet}}{} + \IfFileExists{beramono.sty}{\RequirePackage[scaled=0.85]{beramono}}{} + \RequirePackage[T1]{fontenc} + \RequirePackage{textcomp} +}{} + + +%% +% Turns newlines into spaces. Based on code from the `titlesec' package. + +\DeclareRobustCommand{\@tufte@newlinetospace}{% + \@ifstar{\@tufte@newlinetospace@i}{\@tufte@newlinetospace@i}% +} + +\def\@tufte@newlinetospace@i{% + \ifdim\lastskip>\z@\else\space\fi + \ignorespaces% +} + +\DeclareRobustCommand{\newlinetospace}[1]{% + \let\@tufte@orig@cr\\% save the original meaning of \\ + \def\\{\@tufte@newlinetospace}% turn \\ and \\* into \space + \let\newline\\% turn \newline into \space + #1% + \let\\\@tufte@orig@cr% revert to original meaning of \\ +} + + +%% +% Sets up the running heads and folios. + +\RequirePackage{fancyhdr} + +% Set the default page style to 'fancy' +\pagestyle{fancy} + +% Set the header/footer width to be the body text block plus the margin +% note area. +\AtBeginDocument{% + \ifthenelse{\boolean{@tufte@symmetric}} + {\fancyhfoffset[LE,RO]{\@tufte@overhang}} + {\fancyhfoffset[RE,RO]{\@tufte@overhang}} +} + +% The running heads/feet don't have rules +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} + +% The 'fancy' page style is the default style for all pages. +\fancyhf{} % clear header and footer fields +\ifthenelse{\boolean{@tufte@twoside}} + {\fancyhead[LE]{\thepage\quad\smallcaps{\newlinetospace{\plainauthor}}}% + \fancyhead[RO]{\smallcaps{\newlinetospace{\plaintitle}}\quad\thepage}} + {\fancyhead[RE,RO]{\smallcaps{\newlinetospace{\plaintitle}}\quad\thepage}} + + +% The `plain' page style is used on chapter opening pages. +% In Tufte's /Beautiful Evidence/ he never puts page numbers at the +% bottom of pages -- the folios are unexpressed. +\fancypagestyle{plain}{ + \fancyhf{} % clear header and footer fields + % Uncomment the following five lines of code if you want the opening page + % of the chapter to express the folio in the lower outside corner. + %\ifthenelse{\boolean{@tufte@twoside}} + % {\fancyfoot[LE,RO]{\thepage}} + % {\fancyfoot[RE,RO]{\thepage}} +} + +% The `empty' page style suppresses all headers and footers. +% It's used on title pages and `intentionally blank' pages. +\fancypagestyle{empty}{ + \fancyhf{} % clear header and footer fields +} + + +%% +% Set raggedright and paragraph indentation for document + +\AtBeginDocument{\@tufte@justification} + + +%% +% Prints the list of class options and their states. + +\newcommand{\typeoutbool}[2]{% + \ifthenelse{\boolean{#2}} + {\typeout{\space\space#1: true}} + {\typeout{\space\space#1: false}} +} + +\newcommand{\typeoutstr}[2]{% + \typeout{\space\space#1: #2} +} + +\newcommand{\PrintTufteSettings}{% + \typeout{-------------------- Tufte-LaTeX settings ----------} + \typeout{Class: \@tufte@pkgname} + \typeout{} + \typeout{Class options:} + \typeoutbool{a4paper}{@tufte@afourpaper} + \typeoutbool{b5paper}{@tufte@bfivepaper} + \typeoutbool{load fonts}{@tufte@loadfonts} + \typeoutbool{fully-justified}{@tufte@justified} + \typeoutbool{letterspacing}{@tufte@letterspace} + \typeoutbool{sans-serif sidenotes}{@tufte@sfsidenotes} + \typeoutbool{symmetric margins}{@tufte@symmetric} + \typeoutbool{titlepage}{@tufte@titlepage} + \typeoutbool{twoside}{@tufte@twoside} + \typeoutbool{debug}{@tufte@debug} + \typeout{} + \typeout{Internal variables:} + \typeoutbool{[twoside]}{@twoside} + \typeoutbool{pdflatex}{@tufte@pdf} + \typeoutbool{xelatex}{@tufte@xetex} + \typeout{----------------------------------------------------} +} + +%% +% Amount of space to skip before \newthought or after title block + +\newskip\tufteskipamount +\tufteskipamount=1.0\baselineskip plus 0.5ex minus 0.2ex + +\newcommand{\tuftebreak}{\par\ifdim\lastskip<\tufteskipamount + \removelastskip\penalty-100\tufteskip\fi} + +\newcommand{\tufteskip}{\vspace\tufteskipamount} + + +%% +% Produces a full title page + +\newcommand{\maketitlepage}[0]{% + \cleardoublepage% + {% + \sffamily% + \begin{fullwidth}% + \fontsize{18}{20}\selectfont\par\noindent\textcolor{darkgray}{\allcaps{\thanklessauthor}}% + \vspace{11.5pc}% + \fontsize{36}{40}\selectfont\par\noindent\textcolor{darkgray}{\allcaps{\thanklesstitle}}% + \vfill% + \fontsize{14}{16}\selectfont\par\noindent\allcaps{\thanklesspublisher}% + \end{fullwidth}% + } + \thispagestyle{empty}% + \clearpage% +} + +%% +% Title block + +\renewcommand{\maketitle}{% + \newpage + \global\@topnum\z@% prevent floats from being placed at the top of the page + \begingroup + \setlength{\parindent}{0pt}% + \setlength{\parskip}{4pt}% + \let\@@title\@empty + \let\@@author\@empty + \let\@@date\@empty + \ifthenelse{\boolean{@tufte@sfsidenotes}}{% + \gdef\@@title{\sffamily\LARGE\allcaps{\@title}\par}% + \gdef\@@author{\sffamily\Large\allcaps{\@author}\par}% + \gdef\@@date{\sffamily\Large\allcaps{\@date}\par}% + }{% + \gdef\@@title{\LARGE\itshape\@title\par}% + \gdef\@@author{\Large\itshape\@author\par}% + \gdef\@@date{\Large\itshape\@date\par}% + }% + \@@title + \@@author + \@@date + \endgroup + \thispagestyle{plain}% suppress the running head + \tuftebreak% add some space before the text begins + \@afterindentfalse\@afterheading% suppress indentation of the next paragraph +} + + +%% +% Title page (if the `titlepage' option was passed to the tufte-handout +% class.) + +\ifthenelse{\boolean{@tufte@titlepage}} + {\renewcommand{\maketitle}{\maketitlepage}} + {} + +%% +% When \cleardoublepage is called, produce a blank (empty) page -- i.e., +% without headers and footers +\def\cleardoublepage{\clearpage\if@twoside\ifodd\c@page\else + \hbox{} + %\vspace*{\fill} + %\begin{center} + % This page intentionally contains only this sentence. + %\end{center} + %\vspace{\fill} + \thispagestyle{empty} + \newpage + \if@twocolumn\hbox{}\newpage\fi\fi\fi} + +%% +% Make Tuftian-style section headings and TOC formatting + +\titleformat{\chapter}% + [display]% shape + {\relax\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\begin{fullwidth}}{}}% format applied to label+text + {\itshape\huge\thechapter}% label + {0pt}% horizontal separation between label and title body + {\huge\rmfamily\itshape}% before the title body + [\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\end{fullwidth}}{}]% after the title body + +\titleformat{\section}% + [hang]% shape + {\normalfont\Large\itshape}% format applied to label+text + {\thesection}% label + {1em}% horizontal separation between label and title body + {}% before the title body + []% after the title body + +\titleformat{\subsection}% + [hang]% shape + {\normalfont\large\itshape}% format applied to label+text + {\thesubsection}% label + {1em}% horizontal separation between label and title body + {}% before the title body + []% after the title body + +\titleformat{\paragraph}% + [runin]% shape + {\normalfont\itshape}% format applied to label+text + {\theparagraph}% label + {1em}% horizontal separation between label and title body + {}% before the title body + []% after the title body + +\titlespacing*{\chapter}{0pt}{50pt}{40pt} +\titlespacing*{\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex} +\titlespacing*{\subsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus.2ex} + +% Subsubsection and following section headings shouldn't be used. +% See Bringhurst's _The Elements of Typography_, section 4.2.2. +\renewcommand\subsubsection{% + \@tufte@error{\string\subsubsection is undefined by this class. + See Robert Bringhurst's _The Elements of + Typographic Style_, section 4.2.2. + \string\subsubsection was used} + {From Bringhurst's _The Elements of Typographic Style_, section 4.2.2: Use as + many levels of headings as you need, no more and no fewer. Also see the many + related threads on Ask E.T. at http://www.edwardtufte.com/.} +} + +\renewcommand\subparagraph{% + \@tufte@error{\string\subparagraph is undefined by this class.% + See Robert Bringhurst's _The Elements of + Typographic Style_, section 4.2.2. + \string\subparagraph was used} + {From Bringhurst's _The Elements of Typographic Style_, section 4.2.2: Use as + many levels of headings as you need, no more and no fewer. Also see the many + related threads on Ask E.T. at http://www.edwardtufte.com/.} +} + + +% Formatting for main TOC (printed in front matter) +% {section} [left] {above} {before w/label} {before w/o label} {filler + page} [after] +\ifthenelse{\boolean{@tufte@toc}}{% + \titlecontents{part}% FIXME + [0em] % distance from left margin + {\vspace{1.5\baselineskip}\begin{fullwidth}\LARGE\rmfamily\itshape} % above (global formatting of entry) + {\contentslabel{2em}} % before w/label (label = ``II'') + {} % before w/o label + {\rmfamily\upshape\qquad\thecontentspage} % filler + page (leaders and page num) + [\end{fullwidth}] % after + \titlecontents{chapter}% + [0em] % distance from left margin + {\vspace{1.5\baselineskip}\begin{fullwidth}\LARGE\rmfamily\itshape} % above (global formatting of entry) + {\hspace*{0em}\contentslabel{2em}} % before w/label (label = ``2'') + {\hspace*{0em}} % before w/o label + {\rmfamily\upshape\qquad\thecontentspage} % filler + page (leaders and page num) + [\end{fullwidth}] % after + \titlecontents{section}% FIXME + [0em] % distance from left margin + {\vspace{0\baselineskip}\begin{fullwidth}\Large\rmfamily\itshape} % above (global formatting of entry) + {\hspace*{2em}\contentslabel{2em}} % before w/label (label = ``2.6'') + {\hspace*{2em}} % before w/o label + {\rmfamily\upshape\qquad\thecontentspage} % filler + page (leaders and page num) + [\end{fullwidth}] % after + \titlecontents{subsection}% FIXME + [0em] % distance from left margin + {\vspace{0\baselineskip}\begin{fullwidth}\large\rmfamily\itshape} % above (global formatting of entry) + {\hspace*{4em}\contentslabel{4em}} % before w/label (label = ``2.6.1'') + {\hspace*{4em}} % before w/o label + {\rmfamily\upshape\qquad\thecontentspage} % filler + page (leaders and page num) + [\end{fullwidth}] % after + \titlecontents{paragraph}% FIXME + [0em] % distance from left margin + {\vspace{0\baselineskip}\begin{fullwidth}\normalsize\rmfamily\itshape} % above (global formatting of entry) + {\hspace*{6em}\contentslabel{2em}} % before w/label (label = ``2.6.0.0.1'') + {\hspace*{6em}} % before w/o label + {\rmfamily\upshape\qquad\thecontentspage} % filler + page (leaders and page num) + [\end{fullwidth}] % after +}{} + +%% +% Format lists of figures/tables + +\renewcommand\listoffigures{% + \ifthenelse{\equal{\@tufte@class}{book}}% + {\chapter*{\listfigurename}}% + {\section*{\listfigurename}}% +% \begin{fullwidth}% + \@starttoc{lof}% +% \end{fullwidth}% +} + +\renewcommand\listoftables{% + \ifthenelse{\equal{\@tufte@class}{book}}% + {\chapter*{\listtablename}}% + {\section*{\listtablename}}% +% \begin{fullwidth}% + \@starttoc{lot}% +% \end{fullwidth}% +} + +\newcommand{\@tufte@lof@line}[2]{% + % #1 is the figure/table number and its caption text + % #2 is the page number on which the figure/table appears + \leftskip 0.0em + \rightskip 0em + \parfillskip 0em plus 1fil + \parindent 0.0em + \@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima 2.0em + \advance\leftskip\@tempdima + \null\nobreak\hskip -\leftskip + {#1}\nobreak\qquad\nobreak#2% + \par% +} + +\renewcommand*\l@figure{\@tufte@lof@line} +\let\l@table\l@figure + + +%% +% A handy command to disable hyphenation for short bits of text. +% Borrowed from Peter Wilson's `hyphenat' package. + +\AtBeginDocument{% + \@ifpackageloaded{hyphenat}{}{% + \newlanguage\langwohyphens% define a language without hyphenation rules + \providecommand{\nohyphens}[1]{{\language\langwohyphens #1}}% used for short bits of text + \providecommand{\nohyphenation}{\language\langwohyphens}% can be used inside environments for longer text + }% +} + +%% +% Redefine \bibsection to not mark the running heads. +% (Code modified from natbib.sty.) + +\ifthenelse{\boolean{@tufte@loadnatbib}}{% + \@ifundefined{chapter}{% + \renewcommand\bibsection{\section*{\refname}}% + }{% + \@ifundefined{NAT@sectionbib}{% + \renewcommand\bibsection{\chapter{\bibname}}% + }{% + \renewcommand\bibsection{\section*{\bibname}}% + }% + }% +} + +%% +% An index environment to mimic Tufte's indexes + +\RequirePackage{multicol} +\renewenvironment{theindex}{% + \ifthenelse{\equal{\@tufte@class}{book}}% + {\chapter{\indexname}}% + {\section*{\indexname}}% + \begin{fullwidth}% + \small% + \parskip0pt% + \parindent0pt% + \let\item\@idxitem% + \begin{multicols}{3}% +}{% + \end{multicols}% + \end{fullwidth}% +} +\renewcommand\@idxitem{\par\hangindent 2em} +\renewcommand\subitem{\par\hangindent 3em\hspace*{1em}} +\renewcommand\subsubitem{\par\hangindent 4em\hspace*{2em}} +\renewcommand\indexspace{\par\addvspace{1.0\baselineskip plus 0.5ex minus 0.2ex}\relax}% +\newcommand{\lettergroup}[1]{}% swallow the letter heading in the index + + +%% +% A couple commands to incresae the number of floats you can use at a time. + +\def\morefloats{% provides a total of 52 floats + \ifthenelse{\isundefined{\bx@S}}{% + \@tufte@debug@info@noline{Adding 34 more float slots.} + \newinsert\bx@S + \newinsert\bx@T + \newinsert\bx@U + \newinsert\bx@V + \newinsert\bx@W + \newinsert\bx@X + \newinsert\bx@Y + \newinsert\bx@Z + \newinsert\bx@a + \newinsert\bx@b + \newinsert\bx@c + \newinsert\bx@d + \newinsert\bx@e + \newinsert\bx@f + \newinsert\bx@g + \newinsert\bx@h + \newinsert\bx@i + \newinsert\bx@j + \newinsert\bx@k + \newinsert\bx@l + \newinsert\bx@m + \newinsert\bx@n + \newinsert\bx@o + \newinsert\bx@p + \newinsert\bx@q + \newinsert\bx@r + \newinsert\bx@s + \newinsert\bx@t + \newinsert\bx@u + \newinsert\bx@v + \newinsert\bx@w + \newinsert\bx@x + \newinsert\bx@y + \newinsert\bx@z + \gdef\@freelist{\@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E + \@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J + \@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N + \@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R + \@elt\bx@S\@elt\bx@T\@elt\bx@U\@elt\bx@V + \@elt\bx@W\@elt\bx@X\@elt\bx@Y\@elt\bx@Z + \@elt\bx@a\@elt\bx@b\@elt\bx@c\@elt\bx@d\@elt\bx@e + \@elt\bx@f\@elt\bx@g\@elt\bx@h\@elt\bx@i\@elt\bx@j + \@elt\bx@k\@elt\bx@l\@elt\bx@m\@elt\bx@n + \@elt\bx@o\@elt\bx@p\@elt\bx@q\@elt\bx@r + \@elt\bx@s\@elt\bx@t\@elt\bx@u\@elt\bx@v + \@elt\bx@w\@elt\bx@x\@elt\bx@y\@elt\bx@z}% + }{% we've already added another 34 floats, so we'll add 26 more, but that's it! + \ifthenelse{\isundefined{\bx@AA}}{% + \@tufte@debug@info@noline{Adding 26 more float slots.} + \newinsert\bx@AA + \newinsert\bx@BB + \newinsert\bx@CC + \newinsert\bx@DD + \newinsert\bx@EE + \newinsert\bx@FF + \newinsert\bx@GG + \newinsert\bx@HH + \newinsert\bx@II + \newinsert\bx@JJ + \newinsert\bx@KK + \newinsert\bx@LL + \newinsert\bx@MM + \newinsert\bx@NN + \newinsert\bx@OO + \newinsert\bx@PP + \newinsert\bx@QQ + \newinsert\bx@RR + \newinsert\bx@SS + \newinsert\bx@TT + \newinsert\bx@UU + \newinsert\bx@VV + \newinsert\bx@WW + \newinsert\bx@XX + \newinsert\bx@YY + \newinsert\bx@ZZ + \gdef\@freelist{\@elt\bx@A\@elt\bx@B\@elt\bx@C\@elt\bx@D\@elt\bx@E + \@elt\bx@F\@elt\bx@G\@elt\bx@H\@elt\bx@I\@elt\bx@J + \@elt\bx@K\@elt\bx@L\@elt\bx@M\@elt\bx@N + \@elt\bx@O\@elt\bx@P\@elt\bx@Q\@elt\bx@R + \@elt\bx@S\@elt\bx@T\@elt\bx@U\@elt\bx@V + \@elt\bx@W\@elt\bx@X\@elt\bx@Y\@elt\bx@Z + \@elt\bx@a\@elt\bx@b\@elt\bx@c\@elt\bx@d\@elt\bx@e + \@elt\bx@f\@elt\bx@g\@elt\bx@h\@elt\bx@i\@elt\bx@j + \@elt\bx@k\@elt\bx@l\@elt\bx@m\@elt\bx@n + \@elt\bx@o\@elt\bx@p\@elt\bx@q\@elt\bx@r + \@elt\bx@s\@elt\bx@t\@elt\bx@u\@elt\bx@v + \@elt\bx@w\@elt\bx@x\@elt\bx@y\@elt\bx@z + \@elt\bx@AA\@elt\bx@BB\@elt\bx@CC\@elt\bx@DD\@elt\bx@EE + \@elt\bx@FF\@elt\bx@GG\@elt\bx@HH\@elt\bx@II\@elt\bx@JJ + \@elt\bx@KK\@elt\bx@LL\@elt\bx@MM\@elt\bx@NN + \@elt\bx@OO\@elt\bx@PP\@elt\bx@QQ\@elt\bx@RR + \@elt\bx@SS\@elt\bx@TT\@elt\bx@UU\@elt\bx@VV + \@elt\bx@WW\@elt\bx@XX\@elt\bx@YY\@elt\bx@ZZ}% + }{% + \@tufte@error{You may only call \string\morefloats\space twice. See the Tufte-LaTeX documentation for other workarounds} + {There are already 78 float slots allocated. Try using \string\FloatBarrier\space or \string\clearpage\space to place some floats before creating more.} + }% + }% +} + + +%% +% Detect if the subfigure package has been loaded + +\newboolean{@tufte@packages@subfigure} +\setboolean{@tufte@packages@subfigure}{false} +\AtBeginDocument{% + \@ifpackageloaded{subfigure} + {\gsetboolean{@tufte@packages@subfigure}{true}} + {\gsetboolean{@tufte@packages@subfigure}{false}}% +} + + +%% +% Detect of the float package has been loaded + +\AtBeginDocument{% + \@ifpackageloaded{float}{% + % Save the redefined float environment (instead of the LaTeX float environment) + \let\@tufte@orig@float\@float + \let\@tufte@orig@endfloat\end@float + + % Define Tuftian float styles (with the caption in the margin) + \newcommand{\floatc@tufteplain}[2]{% + \begin{lrbox}{\@tufte@caption@box}% + \begin{minipage}[\floatalignment]{\marginparwidth}\hbox{}% + \@tufte@caption@font{\@fs@cfont #1:} #2\par% + \end{minipage}% + \end{lrbox}% + \smash{\hspace{\@tufte@caption@fill}\usebox{\@tufte@caption@box}}% + } + \newcommand{\fs@tufteplain}{% + \def\@fs@cfont{\@tufte@caption@font}% + \let\@fs@capt\floatc@tufteplain% + \def\@fs@pre{}% + \def\@fs@post{}% + \def\@fs@mid{}% + \let\@fs@iftopcapt\iftrue% + } + \let\fs@tufteplaintop=\fs@tufteplain + \let\floatc@tufteplaintop=\floatc@tufteplain + \newcommand\floatc@tufteruled[2]{% + {\@fs@cfont #1} #2\par% + } + \newcommand\fs@tufteruled{% + \def\@fs@cfont{\@tufte@caption@font}% + \let\@fs@capt\floatc@tufteplain% + \def\@fs@pre{\hrule height.8pt depth0pt width\textwidth \kern2pt}% + \def\@fs@post{\kern2pt\hrule width\textwidth\relax}% + \def\@fs@mid{}% + \let\@fs@iftopcapt\iftrue% + } + \newcommand\fs@tufteboxed{% + \def\@fs@cfont{}% + \let\@fs@capt\floatc@tufteplain% + \def\@fs@pre{% + \setbox\@currbox\vbox{\hbadness10000 + \moveleft3.4pt\vbox{\advance\hsize by6.8pt + \hrule \hbox to\hsize{\vrule\kern3pt + \vbox{\kern3pt\box\@currbox\kern3pt}\kern3pt\vrule}\hrule}} + }% + \def\@fs@mid{\kern2pt}% + \def\@fs@post{}% + \let\@fs@iftopcapt\iftrue% + } + }{% + % Nothing to do + } +} + +\AtBeginDocument{% + \@ifpackageloaded{algorithm}{% + % Set the float style to the Tuftian version + \ifthenelse{\equal{\ALG@floatstyle}{plain}\OR\equal{\ALG@floatstyle}{ruled}\OR\equal{\ALG@floatstyle}{boxed}}{% + \@tufte@info@noline{Switching algorithm float style from \ALG@floatstyle\space to tufte\ALG@floatstyle}% + \floatstyle{tufte\ALG@floatstyle}% + \restylefloat{algorithm}% + }{}% + }{% + % Nothing to do + } +} + + +%% +% For compatibility with the subfig package, we'll set captions=false so that +% it doesn't load the caption package (which modifies our own caption +% formatting). + +\PassOptionsToPackage{caption=false}{subfig} + + +%% +% If debugging is enabled, print the Tufte-LaTeX options and the list of +% files. + +\ifthenelse{\boolean{@tufte@debug}} + {\PrintTufteSettings\listfiles} + {} + + +%% +% If there is a `tufte-common-local.tex' file, load it up. + +\IfFileExists{tufte-common-local.tex} + {\input{tufte-common-local.tex}% + \@tufte@info@noline{Loading tufte-common-local.tex}} + {} + + +%% +% End of file +\endinput + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/tutorial.tex b/bioinformaticsProject/hmmer/documentation/userguide/tutorial.tex new file mode 100644 index 0000000..c198013 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/tutorial.tex @@ -0,0 +1,1478 @@ + +\chapter{Tutorial} +\label{chapter:tutorial} +\setcounter{footnote}{0} + + + +First let's do something useful and see it work, then we'll do a +complete walkthrough. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Tap, tap; is this thing on?} + +In the \mono{tutorial} subdirectory, \mono{globins4.sto} is an example +of a basic Stockholm alignment file. \mono{hmmbuild} builds a profile +from an alignment:\marginnote{\mono{hmmbuild} needs to be installed in + your \mono{PATH} to be able to just type the \mono{hmmbuild} command + like this. Otherwise you need to give a path to where + \mono{hmmbuild} is, which might be \mono{src/hmmbuild}, if you're in + the HMMER top level distribution directory. If you're new to how + paths to programs and files work on the command line, skip + ahead to \hyperref[section:running]{running a HMMER program} for + some more detail.} + + \vspace{1ex} + \user{\% cd tutorial} \\ + \user{\% hmmbuild globins4.hmm globins4.sto} + \vspace{1ex} + +\mono{hmmsearch} searches a profile against a sequence database. The +file \mono{tutorial/globins45.fa} is a small example of a FASTA file +containing 45 globin sequences: + + \vspace{1ex} + \user{\% hmmsearch globins4.hmm globins45.fa} + \vspace{1ex} + +This will print an output of the search results, with a table of +significant hits followed by their alignments. + +That's all you need to start using HMMER for work. You can build +a profile of your favorite sequence alignment if you have one; you can +also obtain alignments and profiles from +Pfam.\sidenote{\href{http://pfam.xfam.org}{pfam.xfam.org}} You can +obtain real sequence databases to search from +NCBI\sidenote{\href{ftp://ftp.ncbi.nih.gov/blast/db/FASTA/nr.gz}{ftp.ncbi.nih.gov/blast/db/FASTA/nr.gz}} +or +UniProt\sidenote{\href{http://www.uniprot.org/downloads}{www.uniprot.org/downloads}}. +You don't have to worry much about sequence file formats. HMMER can +read most common alignment and sequence file formats +automatically. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section {The programs in HMMER} + +In rough order of importance, the 18 HMMER programs are: + +\vspace{1ex} +\begin{tabular}{rp{4in}} +\monob{hmmbuild} & build profile from input multiple alignment\\ +\monob{hmmalign} & make multiple sequence alignment using a profile\\ +\monob{hmmsearch} & search profile against sequence database\\ +\monob{hmmscan} & search sequence against profile database\\ +\monob{hmmpress} & prepare profile database for \mono{hmmscan}\\ +\monob{phmmer} & search single sequence against sequence database\\ +\monob{jackhmmer} & iteratively search single sequence against database\\ +\monob{nhmmer} & search DNA query against DNA sequence database\\ +\monob{nhmmscan} & search DNA sequence against a DNA profile database\\ +\monob{hmmfetch} & retrieve profile(s) from a profile file \\ +\monob{hmmstat} & show summary statistics for a profile file \\ +\monob{hmmemit} & generate (sample) sequences from a profile \\ +\monob{hmmlogo} & produce a conservation logo graphic from a profile\\ +\monob{hmmconvert} & convert between different profile file formats \\ +\monob{hmmpgmd} & search daemon for the \mono{hmmer.org} website \\ +\monob{hmmpgmd\_shard} & sharded search daemon for the \mono{hmmer.org} website \\ +\monob{makehmmerdb} & prepare an \mono{nhmmer} binary database \\ +\monob{hmmsim} & collect score distributions on random sequences\\ +\monob{alimask} & add column mask to a multiple sequence alignment \\ +\end{tabular} +\vspace{1ex} + + +The programs \mono{hmmbuild}, \mono{hmmsearch}, \mono{hmmscan}, and +\mono{hmmalign} are the core functionality for protein domain analysis +and annotation pipelines, for instance using profile databases like +Pfam. + +The \mono{phmmer} and \mono{jackhmmer} programs search a single +protein sequence against a protein sequence database, akin to BLASTP +and PSI-BLAST. (Internally, they just produce a profile from the +query sequence, then run profile searches.) + +\mono{nhmmer} is the equivalent of \mono{hmmsearch} and \mono{phmmer}, +but is capable of searching long, chromosome-size target DNA +sequences. \mono{nhmmscan} is the equivalent of \mono{hmmscan}, +capable of using chromosome-size DNA sequences as a query into a +profile database. +\marginnote{\mono{nhmmer} and \mono{nhmmscan} were added in HMMER3.1.} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Running a HMMER program} +\label{section:running} + +After you compile HMMER, these programs are in the \mono{src/} +subdirectory of the top-level HMMER directory. If you run them without +arguments, they will give you a brief help message.\marginnote{If you + run a HMMER program with a \mono{-h} option and no arguments, it + will give you a brief summary of its usage and options.} In this +chapter, I will assume that you have installed them (with \mono{make + install}, perhaps) so they're in your \mono{PATH}. So if you type +\mono{hmmbuild} at the command line, you see: + + \vspace{1ex} + \user{\% hmmbuild} + \vspace{-1ex} + \xsreoutput{inclusions/hmmbuild-noargs.out} + \vspace{-1ex} + +If you haven't installed the HMMER programs, you need to specify both +the program name and a path to it. This tutorial chapter assumes +that you're in the \mono{tutorial} subdirectory, where the tutorial +example data files are. From \mono{tutorial} , the relative +path to the compiled programs is \mono{../src/}. So instead of just +typing \mono{hmmbuild}, you could do: \marginnote{The \mono{\%} + represents your command prompt. It's not part of what you type.} + + \vspace{1ex} + \user{\% ../src/hmmbuild} + \vspace{1ex} + +Make sure you can run a HMMER program like this before moving on. If +you are stuck getting something like \mono{hmmbuild: command not + found}, the unix shell isn't finding the program in your \mono{PATH} +or you're not giving a correct explicit path. Consult your shell's +documentation, or a friendly local unix guru. + +\section{Files used in the tutorial} + +The subdirectory called \mono{tutorial} in the HMMER distribution +contains the files used in the tutorial. If you haven't already, +change into that directory now. + + \vspace{1ex} + \user{\% cd tutorial} + \vspace{1ex} + +If you do a \mono{ls}, you'll see there are several example files in +the \mono{tutorial} directory: + +\begin{sreitems}{\monob{dna\_target.fa}} +\item[\monob{globins4.sto}] An example alignment of four globin sequences, in + Stockholm format. This alignment is a subset of a famous old + published structural alignment from Don Bashford.\cite{Bashford87} +% +\item[\monob{globins45.fa}] 45 unaligned globin sequences, in FASTA + format. +% +\item[\monob{HBB\_HUMAN}] A FASTA file containing the sequence of + human $\beta-$hemoglobin. +% +\item[\monob{fn3.sto}] An example alignment of fibronectin type III + domains. This is a Pfam fn3 seed alignment, in Stockholm format. +% +\item[\monob{Pkinase.sto}] The Pfam Pkinase seed alignment of protein + kinase domains. +% +\item[\monob{7LESS\_DROME}] A FASTA file containing the sequence of + the \emph{Drosophila} Sevenless protein, a receptor tyrosine kinase + whose extracellular region consists of an array of several + fibronectin type III domains. +% +\item[\monob{MADE1.sto}] An example DNA alignment, a subset +of the Dfam seed alignment for the MADE1 transposable element family. +% +\item[\monob{dna\_target.fa}] A 330Kb sequence from human chromosome + 1 in FASTA format, containing four MADE1 elements. +\end{sreitems} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{On sequence file formats, briefly} + +Input files for HMMER include unaligned sequence files and multiple +sequence alignment files. Sequence files and alignment files can come +in many different poorly standardized formats. + +A commonly used format for unaligned sequence files and sequence +databases is FASTA format. Several of the tutorial files give you +examples (\mono{globins45.fa}, for example). + +HMMER's preferred alignment file format is Stockholm format, which is +also the format that Pfam alignments are in. Stockholm allows +detailed annotation of columns, residues, and sequences, and HMMER is +built to use this annotation.\marginnote{Stockholm format was + developed jointly with us by the Pfam curation team.} Stockholm also +allows a file to contain many alignments for many families (a multiple +multiple alignment file?). \mono{globins4.sto} is a simple example, +and \mono{fn3.sto} is an example with a lot of annotation markup. + +HMMER can read several other sequence and alignment file formats. By +default, it autodetects what format an input file is in. Accepted +unaligned sequence file formats include \mono{fasta}, \mono{uniprot}, +\mono{genbank}, \mono{ddbj}, and \mono{embl}. Accepted multiple +alignment file formats include \mono{stockholm}, \mono{afa} +(i.e.\ aligned FASTA), \mono{clustal}, \mono{clustallike} (MUSCLE, +etc.), \mono{a2m}, \mono{phylip} (interleaved), \mono{phylips} +(sequential), \mono{psiblast}, and \mono{selex}. These formats are +described in detail in a later chapter. Where applicable, the programs +have command line options for asserting an input format and skipping +autodetection, when you don't want to depend on it. + +HMMER also automatically detects whether a sequence or alignment file +contains nucleotide or protein sequence data. Like format +autodetection, alphabet autodetection sometimes doesn't work on weird +files. Where applicable, the programs have options (usually +\mono{-{}-rna}, \mono{-{}-dna}, \mono{-{}-amino}) for asserting the +input alphabet type. + +For more information in HMMER input files and formats, see the formats +chapter on page \pageref{chapter:formats}. + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Searching a sequence database with a profile} + +Now let's go through the \mono{hmmbuild}/\mono{hmmsearch} example in a +bit more detail. + +\subsection{Step 1: build a profile with \mono{hmmbuild}} + +The file \mono{globins4.sto} looks like this: + + \xsreoutput{inclusions/globins4.sto} + +Most popular alignment formats are similar block-based formats. They +can be turned into Stockholm format with a little editing or +scripting. Don't forget the \mono{\# STOCKHOLM 1.0} line at the start +of the alignment, nor the \mono{//} at the end. + +Stockholm alignments can be concatenated to create an alignment +database flatfile containing many alignments. The Pfam database, for +example, distributes a single file containing representative +alignments for thousands of sequence families.\marginnote{The Easel + miniapps provide tools for manipulating alignment files, such as + \mono{esl-afetch} for extracting one alignment by name or accession + from a Pfam file.} + +You ran \mono{hmmbuild} to build a profile from that +alignment: + + \vspace{1ex} + \user{\% hmmbuild globins4.hmm globins4.sto} + \vspace{1ex} + +and you got some output that looks like: + + \xsreoutput{inclusions/hmmbuild-globins.out} + +If your input file had contained more than one alignment, you'd get +one line of output for each profile. A single \mono{hmmbuild} command +suffices to turn a Pfam seed alignment flatfile (such as +\mono{Pfam-A.seed}) into a profile flatfile (such as +\mono{Pfam.hmm}). + +The information on these lines is almost self-explanatory. The +\mono{globins4} alignment consisted of \BGLnseq{} sequences with +\BGLalen{} aligned columns (\mono{alen}). HMMER turned it into a profile +of \BGLmlen{} consensus positions (\mono{mlen}), which means it +defined \BGLgaps{} gap-containing alignment columns to be insertions +relative to consensus. The \BGLnseq{} sequences were only counted as +an ``effective'' total sequence number (\mono{eff\_nseq}) of +\BGLeffn{}, because they're fairly similar to each +other.\sidenote{It's not unusual for this number to be less than 1. + I'll explain why later.} +The profile ended up with a relative entropy per position +(\mono{re/pos}; average score, or information content) of \BGLre{} +bits. + +The new profile was saved to \mono{globins4.hmm}. If you were to look at +this file (and you don't have to -- it's intended for HMMER's +consumption, not yours), you'd see something like: + + \xsreoutput{inclusions/hmmbuild-globins.out2} + +The HMMER ASCII save file format is defined on +page~\pageref{section:savefiles}. + + + +\subsection{Step 2: search the sequence database with hmmsearch} + +Presumably you have a sequence database to search. Here we'll use a +UniProtKB/Swiss-Prot FASTA format flatfile (not provided in the +tutorial, because of its large size), \mono{uniprot\_sprot.fasta}. If +you don't have a sequence database handy, run your example search +against \mono{globins45.fa} instead, which is a FASTA format file +containing 45 globin sequences. + +\mono{hmmsearch} accepts any FASTA file as target database input. It +also accepts EMBL/UniProtKB text format, and Genbank format. It will +automatically determine what format your file is in; you don't have to +say. An example of searching a sequence database with our +\mono{globins4.hmm} profile would look like: + + \vspace{1ex} + \user{\% hmmsearch globins4.hmm uniprot\_sprot.fasta > globins4.out} + \vspace{1ex} + +Have a look at the output, \mono{globins4.out}. The first section is +the \emph{header} that tells you what program you ran, on what, and +with what options: + + \xsreoutput{inclusions/hmmsearch-globins.out} + +The second section is the \emph{sequence top hits} list. It is a list +of ranked top hits (sorted by E-value, most significant hit first), +formatted in a BLAST-like style: + + \xsreoutput{inclusions/hmmsearch-globins.out2} + +The last two columns, obviously, are the name of each target sequence +and optional description. The description line usually gets truncated +just to keep line lengths down to something reasonable. If you want +the full description line, and don't mind long output line lengths, +use the \mono{-{}-notextw} option. + +The most important number here is the first one, the \emph{sequence + E-value}. The E-value is the expected number of false positives +(nonhomologous sequences) that scored this well or better. The +E-value is a measure of statistical significance. The lower the +E-value, the more significant the hit. I typically consider +sequences with E-values $< 10^{-3}$ or so to be significant hits. + +The E-value is based on the \emph{sequence bit score}, the second +number. This is the log-odds score for the complete sequence. Some +people like to see a bit score instead of an E-value, because the bit +score doesn't depend on the size of the sequence database, only on the +profile and the target sequence. The E-value does depend on the +size of the database you search: if you search a database ten times +larger, you get ten times the number of false positives. + +The next number, the \emph{bias}, is a correction term for biased +sequence composition that was applied to the sequence bit +score.\marginnote{The method that HMMER uses to compensate for biased + composition remains unpublished, shamefully.} +For instance, for the top hit \mono{\SGUseqname{}} +that scored \SGUbitscore{} bits, the bias of \SGUbias{} bits means +that this sequence originally scored \SGUorigscore{} bits, which was adjusted by +the slight \SGUbias{} bit biased-composition correction. The only time you +really need to pay attention to the bias value is when it's large, on +the same order of magnitude as the sequence bit score. Sometimes +(rarely) the bias correction isn't aggressive enough, and allows a +non-homolog to retain too much score. Conversely, the bias correction +can be too aggressive sometimes, causing you to miss homologs. You can +turn the biased-composition score correction off with the +\mono{-{}-nonull2} option.\sidenote{And if you're doing that, you may also want +to set \mono{-{}-nobias}, to turn off another biased composition step +called the bias filter, which affects which sequences get scored at +all.} + +The next three numbers are again an E-value, score, and bias, but only +for the single best-scoring domain in the sequence, rather than the +sum of all its identified domains. The rationale for this isn't +apparent in the globin example, because all the globins in this +example consist of only a single globin domain. So let's set up a +second example, using a profile of a single domain that's commonly +found in multiple domains in a single sequence. Build a fibronectin +type III domain profile using the \mono{fn3.sto} +alignment.\sidenote{This happens to be a Pfam seed alignment. It's a + good example of an alignment with complex Stockholm annotation.} +Then use that profile to analyze the sequence \mono{7LESS\_DROME}, the +\emph{Drosophila} Sevenless receptor tyrosine kinase: + + \vspace{1ex} + \user{\% hmmbuild fn3.hmm fn3.sto} \\ + \user{\% hmmsearch fn3.hmm 7LESS\_DROME > fn3.out} + \vspace{1ex} + +In \mono{fn3.out}, the sequence top hits list says: + + \xsreoutput{inclusions/hmmsearch-fn3-sevenless.out} + +OK, now let's pick up the explanation where we left off. The total +sequence score of \SFSbitscore{} sums up \emph{all} the fibronectin III domains +that were found in the \mono{7LESS\_DROME} sequence. The ``single best +dom'' score and E-value are the bit score and E-value as if the target +sequence only contained the single best-scoring domain, without this +summation. + +The idea is that we might be able to detect that a sequence is a +member of a multidomain family because it contains multiple +weakly-scoring domains, even if no single domain is solidly +significant on its own. On the other hand, if the target sequence +happened to be a piece of junk consisting of a set of identical +internal repeats, and one of those repeats accidentially gives a weak +hit to the query profile, all the repeats will sum up and the sequence +score might look ``significant''.\sidenote{Mathematically, alas, the + correct answer: the null hypothesis we're testing against is that + the sequence is a \emph{random} sequence of some base composition, + and a repetitive sequence isn't random.} + +So operationally: +\begin{itemize} +\item if both E-values are significant ($<<1$), the sequence is likely + to be homologous to your query. +\item if the full sequence E-value is significant but the single best domain + E-value is not, the target sequence is probably a multidomain remote + homolog; but be wary, and watch out for the case where it's just a repetitive + sequence. +\end{itemize} + +OK, the sharp eyed reader asks, if that's so, then why in the globin4 +output (all of which have only a single domain) do the full sequence +bit scores and best single domain bit scores not exactly agree? For +example, the top ranked hit, \mono{\SGUseqname{}}, +has a full sequence score of \SGUbitscore{} and a single +best domain score of \SGUdombitscore{}. What's going on? What's going on is that +the position and alignment of that domain is uncertain -- in this +case, only very slightly so, but nonetheless uncertain. The full +sequence score is summed over all possible alignments of the globin +profile to the \mono{\SGUseqname{}} sequence. When HMMER identifies +domains, it identifies what it calls an \textbf{envelope} bounding +where the domain's alignment most probably lies.\marginnote{The + difference between envelopes and alignments comes up again below +when we discuss the reported coordinates of domains and alignments in +the next section of the output.} The ``single best dom'' score is +calculated after the domain envelope has been defined, and the +summation is restricted only to the ensemble of possible alignments +that lie within the envelope. The fact that the two scores are +slightly different is therefore telling you that there's a small +amount of probability (uncertainty) that the domain lies somewhat +outside the envelope bounds that HMMER has selected. + +The two columns headed \mono{\#dom} are two different estimates of +the number of distinct domains that the target sequence contains. The +first, the column marked \mono{exp}, is the \emph{expected} number of +domains according to HMMER's statistical model. It's an average, +calculated as a weighted marginal sum over all possible +alignments. Because it's an average, it isn't necessarily a round +integer. The second, the column marked \mono{N}, is the number of +domains that HMMER's domain postprocessing and annotation pipeline +finally decided to identify, annotate, and align in the target +sequence. This is the number of alignments that will show up in the +domain report later in the output file. + +These two numbers should be about the same. Rarely, you might see that +they're very different, and this would usually be a sign that the +target sequence is so highly repetitive that it's confused the HMMER +domain postprocessor.\sidenote{Such sequences aren't likely to show up as +significant homologs to any sensible query in the first place.} + +The sequence top hits output continues until it runs out of sequences +to report. By default, the report includes all sequences with an +E-value of 10.0 or less. It's showing you the top of the noise, so you +can decide for yourself what's interesting or not: the default output +is expected to contain about 10 false positives with E-values in the +range of about 1-10. + +Then comes the third output section, which starts with + + \xsreoutput{inclusions/hmmsearch-fn3-sevenless.out2} + +Now for each sequence in the top hits list, there will be a section +containing a table of where HMMER thinks all the domains are, +followed by the alignment inferred for each domain. Let's use the +\mono{fn3} vs. \mono{7LESS\_DROME} example, because it contains lots +of domains, and is more interesting in this respect than the globin4 +output. The domain table for \mono{7LESS\_DROME} looks like: + + \xsreoutput{inclusions/hmmsearch-fn3-sevenless.out3} + +Domains are reported in the order they appear in the sequence, not in +order of their significance. + +The \mono{!} or \mono{?} symbol indicates whether this domain does or +does not satisfy both per-sequence and per-domain inclusion +thresholds. Inclusion thresholds are used to determine what matches +should be considered to be ``true'', as opposed to reporting +thresholds that determine what matches will be reported.\sidenote{The + default reporting threshold of 10.0 is chosen so you get to see + about $\sim$10 insignificant hits at the top of the noise, so you + can see what interesting sequences might be getting tickled by your + search.} By default, inclusion thresholds usually require a +per-sequence E value of 0.01 or less and a per-domain conditional +E-value of 0.01 or less (except jackhmmer, which requires a more +stringent 0.001 for both), and reporting E-value thresholds are set to +10.0. + +The bit score and bias values are as described above for sequence +scores, but are the score of just one domain's envelope. + +The first of the two E-values is the \textbf{conditional + E-value}.\marginnote{The conditional E-value is a weird statistic, + and it's not clear I'm going to keep it.} It is an attempt to +measure the statistical significance of each domain, \emph{given that + we've already decided that the target sequence overall is a true + homolog}. It is the expected number of \emph{additional} domains +we'd find with a domain score this big in the set of sequences +reported in the top hits list, if those sequences consisted only of +random nonhomologous sequence outside the best region that sufficed to +define them as homologs. + +The second number is the \textbf{independent E-value}: the +significance of the sequence in the \emph{whole} database search, if +this were the only domain we had identified. It's exactly the same as +the ``best 1 domain'' E-value in the sequence top hits list. + +The different between the two E-values is not apparent in the +\mono{7LESS\_DROME} example because in both cases, the size of the +search space as 1 sequence. There's a single sequence in the target +sequence database (that's the size of the search space that the +independent/best single domain E-value depends on). There's one +sequence reported as a putative homolog in the sequence top hits list +(that's the size of the search space that the conditional E-value +depends on). A better example is to see what happens when we search +UniProt (I used release \UNIrelease{}, which contains \UNInseq{} sequences) +with the \mono{fn3} profile: + + \vspace{1ex} + \user{\% hmmsearch fn3.hmm uniprot\_sprot.fasta} + \vspace{1ex} + +(If you don't have UniProt and can't run a command like this, don't +worry about it - I'll show the relevant bits here.) Now the domain +report for \mono{7LESS\_DROME} looks like: + + \xsreoutput{inclusions/hmmsearch-fn3-uniprot.out} + +Notice that \emph{almost} everything's the same (it's the same target +sequence, after all) \emph{except} for what happens with E-values. The +independent E-value is calculated assuming a search space of all +\UNInseq{} sequences. For example, look at the highest scoring domain +(domain \SFSmaxdomu{} here; domain \SFSmaxdom{} above). When we only looked at a single +sequence, its score of \SFSmaxsc{} bits has an E-value of \SFSievalue{}. When we +search a database of \UNInseq{} sequences, a hit scoring \SFSmaxsc{} bits would +be expected to happen \UNInseq{} times as often: \SFSievalue{} $\times$ \UNInseq{} +$=$ \SFSuievalue{}. In this UniProt +search, \SFSdomZ{} sequences were reported in the top hits list (with +E-values $\leq 10$). If we were to assume that all \SFSdomZ{} are true +homologs, x out the domain(s) that made us think that, and then went +looking for \emph{additional} domains in those \SFSdomZ{} sequences, we'd be +searching a smaller database of \SFSdomZ{} sequences: the expected number of +times we'd see a hit of \SFSmaxsc{} bits or better is now \SFSievalue{} $\times$ +\SFSdomZ{} $=$ \SFSucevalue.\marginnote{If you calculate this + yourself, you may see some small discrepancies +due to floating point roundoff.} That's where the conditional E-value (c-Evalue) is +coming from. + +Notice that a couple of domains disappeared in the UniProt search, +because now, in this larger search space size, they're not +significant. Domain \SFSaidx{} (the one with the score of \SFSascore{} +bits) got a conditional E-value of \SFSaevalue{} $\times$ \SFSdomZ{} = +\SFSauevalue{}, and domain \SFSbidx{} (with a bit score of +\SFSbscore{}) got a c-Evalue of \SFSbevalue{} $\times$ \SFSdomZ = +\SFSbuevalue{}. These fail the default reporting threshold of +10.0. Also, the domains with scores of \SFSainsig{} and \SFSbinsig{} +shifted from being above to below the default inclusion thresholds, so +now they're marked with \mono{?} instead of \mono{!}. + +Operationally: + +\begin{itemize} +\item If the independent E-value is significant ($<<1$), that means +that even this single domain \emph{by itself} is such a strong hit +that it suffices to identify the sequence as a significant homolog +with respect to the size of the entire original database search. You +can be confident that this is a homologous domain. + +\item Once there's one or more high-scoring domains in the sequence +already, sufficient to decide that the sequence contains homologs of +your query, you can look (with some caution) at the conditional +E-value to decide the statistical significance of additional +weak-scoring domains. +\end{itemize} + +In the UniProt output, for example, we'd be pretty sure of four of the +domains (1, 4, 5, and maybe 6), each of which has a strong enough +independent E-value to declare \mono{7LESS\_DROME} to be an +fnIII-domain-containing protein. Domain 2 wouldn't be significant if +it was all we saw in the sequence, but once we decide that +\mono{7LESS\_DROME} contains fn3 domains on the basis of the other +hits, its conditional E-value indicates that it's probably an fn3 +domain too. Domains 3 and 7 (the ones marked by \mono{?}) are too weak +to be sure of, from this search alone, but would be something to pay +attention to. + +The next four columns give the endpoints of the reported local +alignment with respect to both the query profile (\mono{hmmfrom} and +\mono{hmm to}) and the target sequence (\mono{alifrom} and \mono{ali + to}). + +It's not immediately easy to tell from the ``to'' coordinate whether +the alignment ended internally in the query or target, versus ran all +the way (as in a full-length global alignment) to the end(s). To make +this more readily apparent, with each pair of query and target +endpoint coordinates, there's also a little symbology: \mono{..} +means both ends of the alignment ended internally, \mono{[]} +means both ends of the alignment were full-length flush to the ends of +the query or target, and \mono{[.} and \mono{.]} mean only the left or +right end was flush/full length. + +The next two columns (\mono{envfrom} and \mono{env to}) define the +\emph{envelope} of the domain's location on the target sequence. The +envelope is almost always a little wider than what HMMER chooses to +show as a reasonably confident alignment. As mentioned earlier, the +envelope represents a subsequence that encompasses most of the +posterior probability for a given homologous domain, even if precise +endpoints are only fuzzily inferrable.\marginnote{You'll notice that for higher +scoring domains, the coordinates of the envelope and the inferred +alignment will tend to be in tighter agreement, corresponding to +sharper posterior probability defining the location of the homologous +region.} + +Operationally, I recommend using the envelope coordinates to annotate +domain locations on target sequences, not the alignment +coordinates. Be aware that when two weaker-scoring domains are close +to each other, envelope coordinates (and, rarely, sometimes even +alignment coordinates) can and will overlap, corresponding to the +overlapping uncertainty of where one domain ends and another begins. + +The last column is the average posterior probability of the aligned +target sequence residues; effectively, the expected accuracy per +residue of the alignment. + +For comparison, current UniProt consensus annotation of Sevenless +shows seven domains: + + \xsreoutput{inclusions/sevenless_domains.out} + +These agree (modulo differences in start/endpoints) with the seven +strongest domains identified by HMMER. The weaker partial domain hits +(at \SFSacoords{} and \SFSbcoords{}) are also plausible homologies, given that +the extracellular domain of Sevenless is pretty much just a big array +of $\sim$100aa fibronectin repeats. + +Under the domain table, an ``optimal posterior accuracy'' +alignment\cite{Holmes98} is computed within each domain's envelope +and displayed. For example, (skipping domain 1 because it's weak and +unconvincing), fibronectin III domain 2 in your \mono{7LESS\_DROME} +output is shown as: + + \xsreoutput{inclusions/hmmsearch-fn3-sevenless.out4} + +The initial header line starts with a \mono{==} as a little handle for +a parsing script to grab hold of. I may put more information on that line +eventually. + +If the profile had any consensus structure or reference line annotation +that it inherited from your multiple alignment (\mono{\#=GC SS\_cons}, +\mono{\#=GC RF} annotation in Stockholm files), that information is +simply regurgitated as \mono{CS} or \mono{RF} annotation lines +here. The \mono{fn3} profile had a consensus structure annotation line. + +The line starting with \mono{fn3} is the consensus of the query +profile: the residue with the highest emission probability at each +position.\sidenote{For a single sequence query in \mono{phmmer}, the + consensus is the sequence itself. Oddly, this is not necessarily the + highest probability sequence; for example, under a BLOSUM62 scoring + matrix, where the query has an M, you are more likely to see an + aligned L, not an M.} Capital letters represent particularly +highly conserved positions.\sidenote{For protein models, $\geq$ 50\% + emission probability; for DNA/DNA, $\geq$ 90\%.} +Dots (\mono{.}) in this line indicate insertions +in the target sequence with respect to the profile. + +The midline indicates matches between the query profile and target +sequence. A letter indicates an exact match to the profile consensus. +A \mono{+} indicates that this residue has a positive log-odds +emission score, a ``conservative substitution'' given what the profile +expects at that position.\sidenote{That is, the emission probability + $e(a)$ for this aligned residue $a$ is $> f_a$, its background + frequency: it's a likely residue, just not the most likely one.} + +The line starting with \mono{7LESS\_DROME} is the target sequence. +Dashes (\mono{-}) in this line indicate deletions in the target +sequence with respect to the profile. + +The bottom line represents the posterior +probability (essentially the expected accuracy) of each aligned +residue. A 0 means 0-5\%, 1 means 5-15\%, and so on; 9 means 85-95\%, +and a \mono{*} means 95-100\% posterior probability. You can use these +posterior probabilities to decide which parts of the alignment are +well-determined or not. You'll often observe, for example, that +expected alignment accuracy degrades around locations of insertion and +deletion, which you'd intuitively expect. + +You'll also see expected alignment accuracy degrade at the ends of an +alignment -- this is because ``alignment accuracy'' posterior +probabilities currently not only includes whether the residue is +aligned to one profile position versus others, but also confounded with +whether a residue should be considered to be homologous (aligned to +the profile somewhere) versus not homologous at all.\marginnote{It may +make more sense to condition the posterior probabilities on the +assumption that the residue is indeed homologous: given that, how +likely is it that we've got it correctly aligned.} + + +These domain table and per-domain alignment reports for each sequence +then continue, for each sequence that was in the per-sequence top hits +list. + +Finally, at the bottom of the file, you'll see some summary +statistics. For example, at the bottom of the globins search output, +you'll find something like: + + \xsreoutput{inclusions/hmmsearch-globins.out3} + +This gives you some idea of what's going on in HMMER's acceleration +pipeline. You've got one query profile, and the database has \UNInseq{} +target sequences. Each sequence goes through a gauntlet of three +scoring algorithms called MSV, Viterbi, and Forward, in order of +increasing sensitivity and increasing computational requirement. + +MSV (the ``Multi ungapped Segment Viterbi'' algorithm) essentially +calculates the HMMER equivalent of BLAST's sum score -- an optimal sum +of ungapped high-scoring alignment segments. Unlike BLAST, it does +this calculation directly, without BLAST's word hit or hit extension +step, using a SIMD vector-parallel algorithm. By default, HMMER is +configured to allow sequences with a P-value of $\leq 0.02$ through +the MSV score filter.\sidenote{Thus, if the database contained no homologs and +P-values were accurately calculated, the highest scoring 2\% of the +sequences will pass the filter.} Here, for this globin search, about +\SGUmsvpass{}\% of the database got through the MSV filter. + +A quick check is then done to see if the target sequence is +``obviously'' so biased in its composition that it's unlikely to be a +true homolog. This is called the ``bias filter''. If you don't like it +(it can occasionally be overaggressive) you can shut it off with the +\mono{-{}-nobias} option. Here, \SGUbiaspass{} sequences pass through the bias +filter. + +The Viterbi filter then calculates a gapped optimal alignment score. +This is more sensitive than the MSV score, but the Viterbi filter is +about four-fold slower than MSV. By default, HMMER lets sequences +with a P-value of $\leq 0.001$ through this stage. Here, because +there's about a thousand true globin homologs in this database, more +than that gets through: \SGUvitpass{} sequences. + +Then the full Forward score is calculated, which sums over all +possible alignments of the profile to the target sequence. The default +allows sequences with a P-value of $\leq 10^{-5}$ through: \SGUfwdpass{} +sequences pass. + +All sequences that make it through the three filters are then +subjected to a full probabilistic analysis using the HMM +Forward/Backward algorithms, first to identify domains and assign +domain envelopes; then within each individual domain envelope, +Forward/Backward calculations are done to determine posterior +probabilities for each aligned residue, followed by optimal accuracy +alignment. The results of this step are what you finally see on the +output. + +Recall the difference between conditional and independent E-values, +with their two different search space sizes. These search space sizes +are reported in the statistics summary. + +Finally, it reports the speed of the search in units of Mc/sec +(million dynamic programming cells per second), the CPU time, and the +elapsed time. This search took about \SGUelapsed{} seconds of elapsed +(wall clock) time. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Single sequence protein queries using phmmer} + +The \mono{phmmer} program is for searching a single sequence query +against a sequence database, much as BLASTP or FASTA would +do. \mono{phmmer} works essentially just like \mono{hmmsearch} does, +except you provide a query sequence instead of a query profile. + +Internally, HMMER builds a profile from your single query +sequence, using a simple position-independent scoring system (BLOSUM62 +scores converted to probabilities, plus a gap-open and gap-extend +probability). + +The file \mono{tutorial/HBB\_HUMAN} is a FASTA file containing the +human $\beta-$globin sequence as an example query. If you have a +sequence database such as \mono{uniprot\_sprot.fasta}, make that your +target database; otherwise, use \mono{tutorial/globins45.fa} as a +small example: + + \vspace{1ex} + \user{\% phmmer HBB\_HUMAN uniprot\_sprot.fasta} + \vspace{1ex} + +or + + \vspace{1ex} + \user{\% phmmer HBB\_HUMAN globins45.fa} + \vspace{1ex} + +Everything about the output is essentially as previously described for +\mono{hmmsearch}. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Iterative protein searches using jackhmmer} + +The \mono{jackhmmer} program is for searching a single sequence query +iteratively against a sequence database, much as PSI-BLAST would do. + +The first round is identical to a \mono{phmmer} search. All the +matches that pass the inclusion thresholds are put in a multiple +alignment. In the second (and subsequent) rounds, a profile is made +from these results, and the database is searched again with the +profile. + +Iterations continue either until no new sequences are detected or the +maximum number of iterations is reached. By default, the maximum +number of iterations is 5; you can change this with the \mono{-N} +option. + +Your original query sequence is always included in the multiple +alignments, whether or not it appears in the database.\marginnote{If it + \emph{is} in the database, it will almost certainly be included in + the internal multiple alignment twice, once because it's the query + and once because it's a significant database match to itself. This + redundancy won't screw anything up, because sequences are + downweighted for redundancy anyway.} +The ``consensus'' columns assigned to each multiple alignment always +correspond exactly to the residues of your query, so the coordinate +system of every profile is always the same as the numbering of +residues in your query sequence, 1..L for a sequence of length L. + +Assuming you have UniProt or something like it handy, here's an +example command line for a jackhmmer search: + + \vspace{1ex} + \user{\% jackhmmer HBB\_HUMAN uniprot\_sprot.fasta} + \vspace{1ex} + +One difference from \mono{phmmer} output you'll notice is that +\mono{jackhmmer} marks ``new'' sequences with a \mono{+} and ``lost'' +sequences with a \mono{-}. New sequences are sequences that pass the +inclusion threshold(s) in this round, but didn't in the round before. +Lost sequences are the opposite: sequences that passed the inclusion +threshold(s) in the previous round, but have now fallen beneath (yet +are still in the reported hits -- it's possible, though rare, to lose +sequences utterly, if they no longer even pass the reporting +threshold(s)). In the first round, everything above the inclusion +thresholds is marked with a \mono{+}, and nothing is marked with a +\mono{-}. For example, the top of this output looks like: + + \xsreoutput{inclusions/jackhmmer-hbb-uniprot.out} + +That continues until the inclusion threshold is reached, at which +point you see a tagline ``inclusion threshold'' indicating where the +threshold was set: + + \xsreoutput{inclusions/jackhmmer-hbb-uniprot.out2} + +The domain output and search statistics are then shown just as in +\mono{phmmer}. At the end of this first iteration, you'll see some +output that starts with \mono{@@} (this is a simple tag that lets you +search through the file to find the end of one iteration and the +beginning of another): + + \xsreoutput{inclusions/jackhmmer-hbb-uniprot.out3} + +This (obviously) is telling you that the new alignment contains \JHUninc{} +sequences, your query plus \JHUnsig{} significant matches. For round two, +it's built a new profile from this alignment. Now for round two, it +fires off what's essentially an \mono{hmmsearch} of the target +database with this new profile: + + \xsreoutput{inclusions/jackhmmer-hbb-uniprot.out4} + +If you skim down through this output, you'll start seeing newly +included sequences marked with \mono{+}'s, such as: + + \xsreoutput{inclusions/jackhmmer-hbb-uniprot.out5} + +It's less usual to see sequences get lost (and marked with \mono{-}), +but it happens. + +After round 2, more distant globin sequences have been found: + + \xsreoutput{inclusions/jackhmmer-hbb-uniprot.out6} + +Because new sequences were included, it keeps going to round three, +and then again to round four. After round four, the search ends +because it didn't find any new hits; it considers the search to be +``converged'' and it stops. (It would also eventually stop at a +certain maximum number of iterations; the default maximum is 5, and +you can set a different maximum with the \mono{-N} option.) The end +of the output is: + + \xsreoutput{inclusions/jackhmmer-hbb-uniprot.out7} + +The \mono{//} marks the end of the results for one query. You could +search with more than one query in your input query sequence +file. + +There is an \mono{[ok]} at the end of the search output as a signal +that the search successfully completed. This might be useful if you're +automating lots of searches and you want to be sure that they worked. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Searching a profile database with a query sequence} + +Rather than searching a single profile against a collection of +sequences, you might want to wish to annotate a single sequence by +searching it against a collection of profiles of different domains. +\mono{hmmscan} takes as input a query file containing one or more +sequences to annotate, and a profile database to search them against. +The profile database might be Pfam, SMART, or TIGRFams, for example, or +another collection of your choice. \marginnote{Either \mono{hmmsearch} + or \mono{hmmscan} can compare a set of profiles to a set of + sequences. Due to disk access patterns of the two tools, it is + usually more efficient to use \mono{hmmsearch}, unless the number of + profiles greatly exceeds the number of sequences.} + +\subsection{Step 1: create a profile database file} + +A profile ``database'' file is just a concatenation of individual +profile files. To create a database file, you can either build +individual profile files and concatenate them, or you can concatenate +Stockholm alignments and use \mono{hmmbuild} to build a profile database +from them in one command. + +Let's create a tiny database called \mono{minifam} containing profiles +of globin, fn3, and Pkinase (protein kinase) domains by concatenating +profile files: + + \vspace{1ex} + \user{\% hmmbuild globins4.hmm globins4.sto}\\ + \user{\% hmmbuild fn3.hmm fn3.sto}\\ + \user{\% hmmbuild Pkinase.hmm Pkinase.sto}\\ + \user{\% cat globins4.hmm fn3.hmm Pkinase.hmm > minifam} + \vspace{1ex} + +We'll use \mono{minifam} for our examples in just a bit, but first a +few words on other ways to build profile databases, especially big ones. + +The other way to do it is to start with an \emph{alignment} database +flatfile -- a concatenation of many Stockholm files -- and use +\mono{hmmbuild} to build a profile database file from it. For +example, you could obtain the big \mono{Pfam-A.seed} and/or +\mono{Pfam-A.full} Stockholm-format alignment flatfiles from Pfam. +\mono{hmmbuild} names each profile according to a \mono{\#=GF ID} +annotation line in each Stockholm alignment. Normally the \mono{ID} +line is optional in Stockholm format, but \mono{hmmbuild} has to name +your new profile(s) somehow. For a single alignment, it will use your +filename, or you can use the \mono{hmmbuild -n } option to +provide a name yourself. For an alignment database, the only way +\mono{hmmbuild} can get a name for each alignment is from alignment +annotation.\marginnote{For example, it won't work if you concatenate + \mono{globins4.sto} with other Stockholm files, because the simple + little \mono{globins4.sto} alignment doesn't have an \mono{ID} + line.} Of alignment file formats, only Stockholm format provides a +way to concatenate many alignments in the same file, with a name for +each alignment. For example, from a Pfam seed alignment flatfile +\mono{Pfam-A.seed}, you can do: + + \vspace{1ex} + \user{\% hmmbuild Pfam-A.hmm Pfam-A.seed} + \vspace{1ex} + +This would probably take a couple of hours to build all 20,000 profiles +or so in Pfam. To speed the database construction process up, +\mono{hmmbuild} supports MPI parallelization. Running MPI programs can +be a little arcane, so skip this bit if you're not in the mood. + +As far as HMMER's concerned, all you have to do is add \mono{-{}-mpi} +to the command line for \mono{hmmbuild} to tell it to run in MPI +master/worker mode across many cores and/or machines, assuming you've +compiled support for MPI into it (see the installation instructions). +You'll also need to know how to invoke an MPI job in your particular +cluster environment, with your job scheduler and your MPI +distribution.\sidenote{I can't really help you with this. Different sites +have different cluster, scheduler, and MPI environments. Consult a +local guru, as they say.} In general, you will launch the parallel +\mono{hmmbuild} by using a command like \mono{mpirun} or \mono{srun} +that manages the MPI environment for a specified number of processes. +With the SGE (Sun Grid Engine) scheduler and Intel MPI, an example +incantation for building \mono{Pfam.hmm} from \mono{Pfam-A.seed} in +parallel across 128 processes: + + \vspace{1ex} + \user{\% qsub -N hmmbuild -j y -o errors.out -b y -cwd -V -pe impi 128 \textbackslash}\\ + \user{ 'mpirun -np 128 ./hmmbuild --mpi Pfam.hmm Pfam-A.seed > hmmbuild.out'} + \vspace{1ex} + +or, an example SLURM incantation (on the \mono{eddy} group partition +on our Harvard cluster): + + \vspace{1ex} + \begin{fullwidth} + \user{\indent \% sbatch -J hmmbuild -e hmmbuild.err -o hmmbuild.out -p eddy -n 128 -t 6-00:00 --mem-per-cpu=4000 \textbackslash}\\ + \user{\indent --wrap="srun -n 128 --mpi=pmi2 ./hmmbuild --mpi Pfam-A.hmm Pfam-A.seed"} + \end{fullwidth} + \vspace{1em} + +This reduces the time to build all of Pfam to about 40 seconds. + + + +\subsection{Step 2: compress and index the flatfile with hmmpress} + +\mono{hmmscan} has to read a lot of profiles in a hurry, and +HMMER's text flatfiles are bulky. To accelerate this, \mono{hmmscan} +depends on binary compression and indexing of the flatfiles. First +you compress and index your profile database with the \mono{hmmpress} +program: + + \vspace{1ex} + \user{\% hmmpress minifam} + \vspace{1ex} + +This will produce: + + \xsreoutput{inclusions/hmmpress-minifam.out} + +and you'll see these four new binary files in the directory.\sidenote{ +Their format is ``proprietary'', an open source term of art that means +both ``I haven't found time to document them yet'' and ``I still might +decide to change them arbitrarily without telling you''.} + +\subsection{Step 3: search the profile database with hmmscan} + +Now we can analyze sequences using our profile database and +\mono{hmmscan}. + +For example, the receptor tyrosine kinase \mono{7LESS\_DROME} not only +has all those fibronectin type III domains on its extracellular side, +it's got a protein kinase domain on its intracellular side. Our +\mono{minifam} database has profiles of both \mono{fn3} and +\mono{Pkinase}, as well as the unrelated \mono{globins4} profile. So +what happens when we scan the \mono{7LESS\_DROME} sequence: + + \vspace{1ex} + \user{\% hmmscan minifam 7LESS\_DROME} + \vspace{1ex} + +The header and the first section of the output will look like: + + \xsreoutput{inclusions/hmmscan-minifam-sevenless.out} + +The output fields are in the same order and have the same meaning as +in \mono{hmmsearch}'s output. + +The size of the search space for \mono{hmmscan} is the number of +profiles in the profile database (here, 3; for a Pfam search, on the order +of 20000). In \mono{hmmsearch}, the size of the search space is the +number of sequences in the sequence database. This means that E-values +may differ even for the same individual profile vs. sequence +comparison, depending on how you do the search. + +For domain, there then follows a domain table and alignment output, +just as in \mono{hmmsearch}. The \mono{fn3} annotation, for example, +looks like: + + \xsreoutput{inclusions/hmmscan-minifam-sevenless.out2} + +and an example alignment (of that second domain again): + + \xsreoutput{inclusions/hmmscan-minifam-sevenless.out3} + +You'd probably expect that except for the E-values (which depend on +database search space sizes), you should get exactly the same scores, +domain number, domain coordinates, and alignment every time you do a +comparison of the same profile against the same sequence. Which is +actually the case! But in fact, under the hood, it's actually not so +obvious this should be, and HMMER is actually going out of its way to +make it so. HMMER uses stochastic sampling algorithms to infer some +parameters, and also to infer the exact domain number and domain +boundaries in certain difficult cases. If HMMER ran its stochastic +samples ``properly'', it would obtain different samples every time you +ran a program, and all of you would complain to me that HMMER was +weird and buggy because it gave different answers on the same +problem. To suppress run-to-run variation, HMMER seeds its random +number generator(s) \emph{identically} every time you do a sequence +comparison. If you're a stats expert, and you really want to see the +proper stochastic variation that results from sampling algorithms, you +can pass a command-line argument of \mono{-{}-seed 0} to programs that +have this property (hmmbuild and the four search programs). + + + +\subsection{Summary statistics for a profile database: hmmstat} + +Our \mono{minifam} profile ``database'' example only contains three +profiles, but real profile databases like Pfam can contain many +thousands. The \mono{hmmstat} program is a utility that summarizes the +content of a profile database. If you do: + + \vspace{1ex} + \user{\% hmmstat minifam} + \vspace{1ex} + +you'll get: + + \xsreoutput{inclusions/hmmstat-minifam.out} + +The output is one line per profile, numbered. Some of the fields are +more meaningful to you than others; some are sort of cryptic relics +of development that we haven't cleaned up yet: + +\begin{sreitems}{\monob{accession}} + +\item [\monob{idx}] Number, in order in the database. +\item [\monob{name}] Name of the profile. +\item [\monob{accession}] Accession (if present; else '-') +\item [\monob{nseq}] Number of sequences in the alignment this + profile was built from. + +\item [\monob{eff\_nseq}] Effective sequence number. + This was the ``effective'' number of independent sequences that + \mono{hmmbuild's} default ``entropy weighting'' step decided on, + given the phylogenetic similarity of the \mono{nseq} sequences in + the input alignment. + +\item [\monob{M}] Length of the profile in consensus residues (match states). + +\item [\monob{relent}] Mean relative entropy of the match state + emission probabilities, relative to default null background + frequencies, in bits. This is the average bit score per aligned + consensus residue. This quantity is the target of \mono{hmmbuild}'s + entropy weighting procedure for determining \monob{eff\_nseq}. + +\item [\monob{info}] Mean information content per match state emission + probability vector, in bits. Probably not useful to you. Information + content is just a slightly different calculation from + \monob{relent}. + +\item [\monob{p relE}] Mean positional relative entropy, in bits. + Also probably not useful to you. This is an average relative entropy + per position that takes into account the transition + (insertion/deletion) probabilities. It should be a more accurate + estimation of the average bit score contributed per aligned model + consensus position. + +\item [\monob{compKL}] Kullback-Leibler (KL) divergence from the + average composition of the profile's consensus match states to the + default background frequency distribution, in bits. The higher this + number, the more biased the residue composition of the profile + is. Highly biased profiles may produce more false positives in + searches, and can also slow the HMMER3 acceleration pipeline, by + causing too many nonhomologous sequences to pass the filters. + +\end{sreitems} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Creating multiple alignments with hmmalign} + +The file \mono{globins45.fa} is a FASTA file containing 45 +unaligned globin sequences. To align all of these to the +\mono{globins4} profile and make a multiple sequence alignment: + + \vspace{1ex} + \user{\% hmmalign globins4.hmm globins45.fa} + \vspace{1ex} + +The output of this is a Stockholm format multiple alignment file. The +first few lines of it look like: + + \xsreoutput{inclusions/hmmalign-globins.out} + +and so on. (I've truncated long lines.) + +First thing to notice here is that \mono{hmmalign} uses both lower +case and upper case residues, and it uses two different characters for +gaps. This is because there are two different kinds of columns: +``match'' columns in which residues are assigned to match states and +gaps are treated as deletions relative to consensus, and ``insert'' +columns where residues are assigned to insert states and gaps in other +sequences are just padding for the alignment to accomodate those +insertions. In a match column, residues are upper case, and a '-' +character means a deletion relative to the consensus. In an insert +column, residues are lower case, and a '.' is padding. A '-' deletion +has a cost: transition probabilities were assessed, penalizing the +transition into and out of a deletion. A '.' pad has no cost per se; +instead, the sequence(s) with insertions are paying transition +probabilities into and out of their inserted residue. + +This notation is only for your convenience in output files. You can +see the structure of the profile reflected in the pattern of +residues and gap characters \marginnote{By default, \mono{hmmalign} + removes any columns that are all deletion characters, so the number + of apparent match columns in a displayed alignment is $\leq$ the + actual number of match states in the profile. To prevent this + trimming and see columns for all match states, use the + \mono{-{}-allcol} option. This can be helpful if you're writing a + postprocessor that's trying to keep track of what columns are + assigned to what match states in the profile.}. In input files, in +most alignment formats\sidenote[][1ex]{A2M format is an important exception!} HMMER is +case-insensitive, and it does not distinguish between different gap +characters: '-' (dash), '.' (period), or even '\_' (underscore) are +accepted as gap characters. + +Important: insertions relative to a profile are +\emph{unaligned}. Suppose one sequence has an insertion of length 10 +and another has an insertion of length 2 in the same place in the +profile. The alignment will have ten insert columns, to accomodate the +longest insertion. The residues of the shorter insertion are thrown +down in an arbitrary order.\marginnote[2ex]{By arbitrary HMMER convention, + the insertion is divided in half; half is left-justified, and the + other half is right-justified, leaving '.' characters in the + middle.} Notice that in the previous paragraph I oh-so-carefully +said residues are ``assigned'' to a state, not ``aligned'' to a +state. For match states, assigned and aligned are the same thing: a +one-to-one correspondence between a residue and a consensus match +state in the profile. But there may be one \emph{or more} residues +assigned to the same insert state. + +Don't be confused by the unaligned nature of profile +insertions. You're sure to see cases where lower-case inserted +residues are ``obviously misaligned''. This is just because HMMER +isn't trying to ``align'' them in the first place. It's assigning +them to unaligned insertions. + +Enough about the sequences in the alignment. Now, notice all those +\mono{PP} annotation lines. That's posterior probability annotation, +as in the single sequence alignments that \mono{hmmscan} and +\mono{hmmsearch} showed. This represents the confidence that each +residue is assigned where it should be. + +Again, that's ``assigned'', not ``aligned''. The posterior probability +assigned to an inserted residue is the probability that it is assigned +to the insert state corresponding to that column. Because the same +insert state might correspond to more than one column, the probability +on an insert residue is \emph{not} the probability that it belongs in +that particular column; again, if there's a choice of column for +putting an inserted residue, that choice is arbitrary. + +\mono{hmmalign} currently has a, um, feature that you may dislike. +Recall that HMMER only does local alignments. Here, we know that we've +provided full length globin sequences, and \mono{globins4} is a full +length globin profile. We'd probably like \mono{hmmalign} to produce a +global alignment. It can't currently do that. If it doesn't quite +manage to extend its local alignment to the full length of a target +globin sequence, you'll get a weird-looking effect, as the nonmatching +termini are pulled out to the left or right. For example, look at the +N-terminal \mono{g} in \mono{MYG\_HORSE} above. HMMER is about 80\% +confident that this residue is nonhomologous, though any sensible +person would align it into the first globin consensus column. + +Look at the end of that first block of Stockholm alignment, where you'll +see: + + \xsreoutput{inclusions/hmmalign-globins.out} + +The \mono{\#=GC PP\_cons} line is Stockholm-format \emph{consensus + posterior probability} annotation for the entire column. It's the +arithmetic mean of the per-residue posterior probabilities in that +column. This should prove useful in phylogenetic inference +applications, for example, where it's common to mask away +nonconfidently aligned columns of a multiple alignment. The +\mono{PP\_cons} line provides an objective measure of the confidence +assigned to each column. + +The \mono{\#=GC RF} line is Stockholm-format \emph{reference + coordinate annotation}, with an x marking each column that the +profile considered to be consensus. + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Searching DNA sequences} + +HMMER was originally developed for protein sequence analysis. The +\mono{hmmsearch} and \mono{hmmscan} programs assume that it's sensible +to ask if the entire target sequence is homologous (or not) to a query +profile. It makes sense to say ``this sequence is a probable protein +kinase'' because we find a protein kinase domain in it. What if you +want to use a DNA profile to search a very long (chromosome-sized) +piece of DNA for homologous regions? We might want to identify Alu +and L1 elements in human chromosome sequences, for example. It's not +super useful to see the 24 chromosomes ranked by E-values in +\mono{hmmsearch} output -- we're only interested in the element +locations. Also, if we can avoid having to align the entire target +chromosome sequence at once, we can scan the profile along the target +sequence in a much more memory-efficient manner than +\mono{hmmsearch}/\mono{hmmscan} would do. + +The \mono{nhmmer} and \mono{nhmmscan} programs are designed for +memory-efficient DNA profile searches of long DNA sequences. They were +developed in concert with the Dfam database (\url{dfam.org}), which +provides alignments and profiles of DNA repeat elements +for several important genomes. The alignment +\mono{tutorial/MADE1.sto} is a representative alignment of 100 human +MADE1 transposable elements, a subset of the Dfam MADE1 +alignment. We'll use the MADE1 alignment to show how +\mono{nhmmer}/\mono{nhmmscan} work; these are similar to +\mono{hmmsearch}/\mono{hmmscan}. + +\subsection{Step 1: build a profile with hmmbuild} + +\mono{hmmbuild} works for both protein and DNA profiles, so: + + \vspace{1ex} + \user{\% hmmbuild MADE1.hmm MADE1.sto} + \vspace{1ex} + +and you'll see some output that looks like: + + \xsreoutput{inclusions/hmmbuild-made1.out} + + +Notice the new output column with the header ``W'', which is only +present when the input sequence alignment is DNA/RNA. This represents +an upper bound on the length at which nhmmer expects to find an +instance of the family\marginnote{W is based on position-specific insert + rates: only $10^{-7}$ of all sequences generated from the profile + are expected to be longer than W.}. It is always larger than mlen, +though the ratio of mlen to W depends on the observed insert rate in +the seed alignment. This length is used deep in the acceleration +pipeline, and modest changes are not expected to impact results, but +larger values of W do lead to longer run time. The value can be +overridden with the \mono{-{}-w\_length} or \mono{-{}-w\_beta} flags, at +the risk of possibly missing instances of the family that happen to be +longer than W due to plentiful insertions. + + + +\subsection{Step 2: search the DNA sequence database with nhmmer} + +We'll use \mono{dna\_target.fa} as the target sequence +database. It is a FASTA format file containing one 330Kb long DNA +sequence extracted from human chromosome 1. + +\mono{nhmmer} accepts a target DNA sequence database in the same +formats as hmmsearch (typically FASTA). It accepts a query file +of one or more nucleotide queries; each +query may be either a profile model built using +\mono{hmmbuild}, +a sequence alignment, or a single sequence. + +If a sequence or alignment is used as query input, \mono{nhmmer} +internally produces the profile for that alignment\marginnote{Using + default hmmbuild parameters; if you want more control, explicitly + built the profile with hmmbuild.}, then searches with that +profile. The profile produced in this way can be written to a file +specified by the \mono{-{}-hmmout} flag. + +To search \mono{dna\_target.fa} with our \mono{MADE1.hmm} profile: + + \vspace{1ex} + \user{\% nhmmer MADE1.hmm dna\_target.fa} + \vspace{1ex} + +This output is largely similar to that of hmmsearch. The key +difference is that each hit is not to a full sequence in the target +database, but one local alignment of the profile to a subsequence of a +target database sequence. + +The first section is the \emph{header} that tells you what program you +ran, on what, and with what options, as above. + +The second section is the \emph{top hits} list. It is a list +of ranked top hits (sorted by E-value, most significant hit first), +formatted much like the \mono{hmmsearch} output \emph{top hits} list: + + \xsreoutput{inclusions/nhmmer-made1.out} + +For each hit, the table shows its \emph{E-value}, \emph{bit score}, +\emph{bias}, \emph{target sequence name} and \emph{target sequence + description}, much like \mono{hmmsearch}. + +The ``start'' and ``end'' columns are the coordinates in the target +sequence where the hit is found. When the ``end'' is smaller than +``start'', this means the hit found on the reverse complement of the +target database sequence.\marginnote{\mono{nhmmer} automatically + searches both strands.} + +For example, note that the top hits here are coming in overlapping +pairs, corresponding to the forward and reverse strands, like the hit +to \NMHafrom{}..\NMHato\ on the forward strand and a hit to +\NMHbfrom{}..\NMHbto{} on the reverse strand. This is because the +MADE1 DNA element is a near-perfect palindrome.\marginnote{DNA + elements that have a unique orientation will only hit on one strand. + \mono{nhmmer} treats the two strands independently. Palindromic + elements will hit the same region on both strands and \mono{nhmmer} + will not filter the overlapping hits.} + +Then comes the third output section, which starts with + + \xsreoutput{inclusions/nhmmer-made1.out2} + +For each hit in the top hits list, there is a tabular line +providing detailed information about the hit, followed by the alignment +inferred for the hit. The first \mono{MADE1} hit +looks like: + + \xsreoutput{inclusions/nhmmer-made1.out3} + +All these pieces of information are as described for \mono{hmmsearch}, +plus a column for ``sq len'' that indicates the full length of the +target sequence. + +Under each one-line hit table is displayed the alignment inferred +between the profile and the hit envelope. For example, the top hit +from above is shown as: + + \xsreoutput{inclusions/nhmmer-made1.out4} + +The alignment format is the same as for \mono{hmmsearch}. + +At the end of the output, you'll see summary statistics: + + \xsreoutput{inclusions/nhmmer-made1.out5} + +This gives you some idea of what's going on in nhmmer's acceleration +pipeline. You've got one query profile, and \NMHnres{} residues were +searched (there are \NMHntop{} bases in the single sequence found in +the file; the search includes the reverse complement, doubling the +search space). The sequences in the database go through a gauntlet of +three scoring algorithms called SSV, Viterbi, and Forward, in order of +increasing sensitivity and increasing computational requirement. + +SSV (the ``Single ungapped Segment Viterbi'' algorithm) as used in +nhmmer is closely related to the MSV algorithm used in +\mono{hmmsearch}, in that it depends on ungapped alignment +segments. The difference lies in how those alignments are used. Using +MSV, a sequence is either rejected or accepted in its entirety. In the +scanning-SSV filter of \mono{nhmmer}, each sequence in the database is +scanned for high-scoring ungapped alignment segments, and a window +around each such segment is extracted (merging overlapping windows), +and passed on to the next stage. By default, nhmmer is configured to +allow sequence segments with a P-value of $\leq 0.02$ through the SSV +score filter.\sidenote{Thus, if the database contained no homologs and P-values +were accurately calculated, the highest scoring 2\% of the sequence +will pass the filter.} Here, \NMHnssv{} bases, +or about \NMHfracssv{}\% of the database, got through the SSV filter. + +The ``bias filter'' is then applied, as in \mono{hmmsearch}. Here, +\NMHnbias{} bases, roughly \NMHfracbias{}\% of the database +pass through the bias filter. + +The Viterbi filter then calculates a gapped optimal alignment score +for each window that survived the earlier stages. This score is a +closer approximation than the SSV score of the final score that the +window will achieve if it survives to final processing, but the +Viterbi filter is about four-fold slower than SSV. By default, nhmmer +lets windows with a P-value of $\leq 0.001$ through this stage. Here, +\NMHnvit{} bases, about \NMHfracvit{}\% of the database gets through. + +Then the full Forward score is calculated, which sums over all +possible alignments of the profile to the window. The default allows +windows with a P-value of $\leq 10^{-5}$ through; \NMHnfwd{} bases +passed. + +All windows that make it through these filters are then subjected to a +full probabilistic analysis using the HMM Forward/Backward algorithms, +to identify hit envelopes, then determine posterior probabilities for +each aligned residue, followed by optimal accuracy alignment. The +results of this step are what you finally see on the output. The final +number of hits and fractional coverage of the database is shown +next. This is typically smaller than the fraction of the database +passing the Forward filter, as hit identification typically trims +windows down to a smaller envelope. + +Finally, nhmmer reports the speed of the search in units of Mc/sec +(million dynamic programming cells per second), the CPU time, and the +elapsed time. + +\mono{nhmmscan} is to \mono{hmmscan} as \mono{nhmmer} is to +\mono{hmmsearch}. There is not currently a iterative DNA search +analog to \mono{jackhmmer}. + + + + + + + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/unsrtnat-brief.bst b/bioinformaticsProject/hmmer/documentation/userguide/unsrtnat-brief.bst new file mode 100644 index 0000000..3e29fae --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/unsrtnat-brief.bst @@ -0,0 +1,1332 @@ +%% File: `unsrtnat.bst' +%% A modification of `unsrt.bst' for use with natbib package +%% +%% Copyright 1993-2007 Patrick W Daly +%% Max-Planck-Institut f\"ur Sonnensystemforschung +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@mps.mpg.de +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or any later version. +%% + % Version and source file information: + % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)] + % + % BibTeX `plainnat' family + % version 0.99b for BibTeX versions 0.99a or later, + % for LaTeX versions 2.09 and 2e. + % + % For use with the `natbib.sty' package; emulates the corresponding + % member of the `plain' family, but with author-year citations. + % + % With version 6.0 of `natbib.sty', it may also be used for numerical + % citations, while retaining the commands \citeauthor, \citefullauthor, + % and \citeyear to print the corresponding information. + % + % For version 7.0 of `natbib.sty', the KEY field replaces missing + % authors/editors, and the date is left blank in \bibitem. + % + % Includes field EID for the sequence/citation number of electronic journals + % which is used instead of page numbers. + % + % Includes fields ISBN and ISSN. + % + % Includes field URL for Internet addresses. + % + % Includes field DOI for Digital Object Idenfifiers. + % + % Works best with the url.sty package of Donald Arseneau. + % + % Works with identical authors and year are further sorted by + % title text, as in the standard plain.bst etc. + % +ENTRY + { address + author + booktitle + chapter + doi + eid + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { + % SRE customized here. For >= 3 authors, shorten to "et al." + nameptr #1 + #1 + = + numnames #2 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "URL \url{" url * "}" * } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { new.block "\doi{" doi * "}" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.eid} +{ eid empty$ + { "" } + { "art." eid tie.or.space.connect } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.eid} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + eid empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.eid } + { ":\penalty0 " * eid * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In \emph{" journal * "}" * } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + 'skip$ + if$ + } + 'skip$ + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + eid empty$ + { format.vol.num.pages output } + { format.vol.num.eid output } + if$ + format.date "year" output.check + } + { format.article.crossref output.nonnull + eid empty$ + { format.pages output } + { format.eid output } + if$ + } + if$ + format.issn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check +% format.isbn output % SRE removed + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + format.url output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + format.date "year" output.check + new.sentence + organization output + publisher output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.url output + fin.entry +} + +FUNCTION {default.type} { misc } + + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +INTEGERS { seq.num } + +FUNCTION {init.seq} +{ #0 'seq.num :=} + +EXECUTE {init.seq} + +FUNCTION {int.to.fix} +{ "000000000" swap$ int.to.str$ * + #-1 #10 substring$ +} + + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + seq.num #1 + 'seq.num := + seq.num int.to.fix + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/bioinformaticsProject/hmmer/install-sh b/bioinformaticsProject/hmmer/install-sh new file mode 100644 index 0000000..f5061e7 --- /dev/null +++ b/bioinformaticsProject/hmmer/install-sh @@ -0,0 +1,295 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2003-09-24.23 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# 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 +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename= +transform_arg= +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd= +chgrpcmd= +stripcmd= +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src= +dst= +dir_arg= + +usage="Usage: $0 [OPTION]... SRCFILE DSTFILE + or: $0 -d DIR1 DIR2... + +In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default. +In the second, create the directory path DIR. + +Options: +-b=TRANSFORMBASENAME +-c copy source (using $cpprog) instead of moving (using $mvprog). +-d create directories instead of installing files. +-g GROUP $chgrp installed files to GROUP. +-m MODE $chmod installed files to MODE. +-o USER $chown installed files to USER. +-s strip installed files (using $stripprog). +-t=TRANSFORM +--help display this help and exit. +--version display version info and exit. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" + +while test -n "$1"; do + case $1 in + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + -c) instcmd=$cpprog + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + --help) echo "$usage"; exit 0;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + --version) echo "$0 $scriptversion"; exit 0;; + + *) if test -z "$src"; then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if test -z "$src"; then + echo "$0: no input file specified." >&2 + exit 1 +fi + +# Protect names starting with `-'. +case $src in + -*) src=./$src ;; +esac + +if test -n "$dir_arg"; then + dst=$src + src= + + if test -d "$dst"; then + instcmd=: + chmodcmd= + else + instcmd=$mkdirprog + fi +else + # Waiting for this to be detected by the "$instcmd $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + dst=$dst/`basename "$src"` + fi +fi + +# This sed command emulates the dirname command. +dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. + +# Skip lots of stat calls in the usual case. +if test ! -d "$dstdir"; then + defaultIFS=' + ' + IFS="${IFS-$defaultIFS}" + + oIFS=$IFS + # Some sh's can't handle IFS=/ for some reason. + IFS='%' + set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` + IFS=$oIFS + + pathcomp= + + while test $# -ne 0 ; do + pathcomp=$pathcomp$1 + shift + test -d "$pathcomp" || $mkdirprog "$pathcomp" + pathcomp=$pathcomp/ + done +fi + +if test -n "$dir_arg"; then + $doit $instcmd "$dst" \ + && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } + +else + # If we're going to rename the final executable, determine the name now. + if test -z "$transformarg"; then + dstfile=`basename "$dst"` + else + dstfile=`basename "$dst" $transformbasename \ + | sed $transformarg`$transformbasename + fi + + # don't allow the sed command to completely eliminate the filename. + test -z "$dstfile" && dstfile=`basename "$dst"` + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 + trap '(exit $?); exit' 1 2 13 15 + + # Move or copy the file name to the temp name + $doit $instcmd "$src" "$dsttmp" && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $instcmd $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && + + # Now remove or move aside any old file at destination location. We + # try this two ways since rm can't unlink itself on some systems and + # the destination file might be busy for other reasons. In this case, + # the final cleanup might fail but the new file should still install + # successfully. + { + if test -f "$dstdir/$dstfile"; then + $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ + || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ + || { + echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + (exit 1); exit + } + else + : + fi + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" +fi && + +# The final little trick to "correctly" pass the exit status to the exit trap. +{ + (exit 0); exit +} + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/bioinformaticsProject/hmmer/libdivsufsort/AUTHORS b/bioinformaticsProject/hmmer/libdivsufsort/AUTHORS new file mode 100644 index 0000000..429a6a5 --- /dev/null +++ b/bioinformaticsProject/hmmer/libdivsufsort/AUTHORS @@ -0,0 +1,3 @@ +-- AUTHORS for libdivsufsort-lite + +Yuta Mori diff --git a/bioinformaticsProject/hmmer/libdivsufsort/COPYING b/bioinformaticsProject/hmmer/libdivsufsort/COPYING new file mode 100644 index 0000000..13023f7 --- /dev/null +++ b/bioinformaticsProject/hmmer/libdivsufsort/COPYING @@ -0,0 +1,27 @@ +The libdivsufsort-lite copyright is as follows: + +Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + +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. + +See also the libdivsufsort web site: + http://libdivsufsort.googlecode.com/ for more information. diff --git a/bioinformaticsProject/hmmer/libdivsufsort/Makefile.in b/bioinformaticsProject/hmmer/libdivsufsort/Makefile.in new file mode 100644 index 0000000..37eeb7c --- /dev/null +++ b/bioinformaticsProject/hmmer/libdivsufsort/Makefile.in @@ -0,0 +1,54 @@ +# VPATH and shell configuration +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +SHELL = /bin/sh + +# sources +OBJS = divsufsort.o +TARGET = libdivsufsort.a +MAKEFILE = Makefile + +# options +CC = @CC@ +CFLAGS = @CFLAGS@ +SSE_CFLAGS = @SSE_CFLAGS@ +VMX_CFLAGS = @VMX_CFLAGS@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +AR = @AR@ rc +RANLIB = @RANLIB@ +INSTALL = @INSTALL@ + +# beautification magic stolen from git (added within hmmer source) +ifndef V + QUIET_CC = @echo ' ' CC $@; + QUIET_AR = @echo ' ' AR $@; +endif + + +# targets +all: $(TARGET) +$(TARGET): $(OBJS) + +.c.o: + ${QUIET_CC}${CC} -I. ${CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${PTHREAD_CFLAGS} ${CPPFLAGS} -o $@ -c $< + + +libdivsufsort.a: $(OBJS) + ${QUIET_AR}${AR} libdivsufsort.a $(OBJS) + @${RANLIB} libdivsufsort.a + @chmod 644 libdivsufsort.a + + +clean: + $(RM) $(TARGET) $(OBJS) +ifndef V + @echo ' ' CLEAN libdivsufsort +endif + + +distclean: + $(RM) $(TARGET) $(OBJS) $(MAKEFILE) divsufsort.h + + diff --git a/bioinformaticsProject/hmmer/libdivsufsort/README b/bioinformaticsProject/hmmer/libdivsufsort/README new file mode 100644 index 0000000..63c6655 --- /dev/null +++ b/bioinformaticsProject/hmmer/libdivsufsort/README @@ -0,0 +1,185 @@ +libdivsufsort - A lightweight suffix-sorting library. +----------------------------------------------------- + +Introduction: +------------- + +The libdivsufsort project provides a fast, lightweight, and robust +C API library to construct the suffix array and the Burrows-Wheeler +transformed string for any input string of a constant-size alphabet. + +The suffix-sorting algorithm runs in O(n log n) worst-case time +using only 5n+O(1) bytes of memory space, where n is the length of +the input string. + +The latest version of libdivsufsort is available at: + http://libdivsufsort.googlecode.com/ + + +License: +-------- + +libdivsufsort is released under the MIT/X11 license. See the file +COPYING for more details. + + +APIs: +----- + + * Data types + typedef int32_t saint_t; + typedef int32_t saidx_t; + typedef uint8_t sauchar_t; + + * Constructs the suffix array of a given string. + * @param T[0..n-1] The input string. + * @param SA[0..n-1] The output array or suffixes. + * @param n The length of the given string. + * @return 0 if no error occurred, -1 or -2 otherwise. + saint_t + divsufsort(const sauchar_t *T, saidx_t *SA, saidx_t n); + + * Constructs the burrows-wheeler transformed string of a given string. + * @param T[0..n-1] The input string. + * @param U[0..n-1] The output string. (can be T) + * @param A[0..n-1] The temporary array. (can be NULL) + * @param n The length of the given string. + * @return The primary index if no error occurred, -1 or -2 otherwise. + saidx_t + divbwt(const sauchar_t *T, sauchar_t *U, saidx_t *A, saidx_t n); + + +Benchmark: +------------------ + += Specifications = +Processor: 2.66 GHz Intel Core 2 Duo E6750 +L1 Cache: (32 Kb + 32 Kb) x 2 +L2 Cache: 4 Mb +RAM: 2 Gb main memory +Operating system: Windows XP Home SP 3 (with Cygwin) +Compiler: GCC version 4.3.1 + += Programs = +Archon4r0 kvark's sorting algorithm http://forum.compression.ru/viewtopic.php?t=352 +BPR Bucket-Pointer Refinement algorithm http://bibiserv.techfak.uni-bielefeld.de/bpr/ +DC Difference-Cover algorithm (v = 32) http://www.cs.helsinki.fi/juha.karkkainen/publications/cpm03.tar.gz +DS Deep-Shallow sorting algorithm http://www.mfn.unipmn.it/~manzini/lightweight/ +divsufsort1 libdivsufsort version 1.2.3 http://libdivsufsort.googlecode.com/ +divsufsort2 libdivsufsort version 2.0.0 http://libdivsufsort.googlecode.com/ +KA Ko-Aluru algorithm http://ko.pang.cn.googlepages.com/software2 +KS Kärkkäinen-Sanders algorithm http://www.mpi-inf.mpg.de/~sanders/programs/suffix/ +MSufSort3 MSufSort version 3.1.1 beta http://www.michael-maniscalco.com/msufsort.htm +qsufsort Larsson-Sadakane algorithm http://www.larsson.dogma.net/research.html +sais Induced Sorting algorithm http://yuta.256.googlepages.com/sais + +All programs were compiled with gcc/g++ using '-O3 -fomit-frame-pointer -DNDEBUG' +optimization options. The times are the average of five runs, in seconds, and were +measured using the standard Unix/Cygwin 'time' command. (user + system) The spaces +were measured using the 'memusage' command. + += Testfiles = +Manzini's Large Corpus http://www.mfn.unipmn.it/~manzini/lightweight/corpus/ +The Gauntlet http://www.michael-maniscalco.com/testset/gauntlet/ + += Running times = + +== Manzini's Corpus == +Files Size Archon4r0 BPR DC DS divsufsort1 divsufsort2 KA KS MSufSort3 qsufsort sais +chr22.dna 34553758 6.030 6.196 22.694 7.514 5.404 5.362 16.980 50.006 7.132 10.642 10.796 +etext99 105277340 22.160 32.582 79.872 34.264 18.758 18.064 73.236 202.684 24.106 56.612 38.748 +gcc-3.0.tar 86630400 13.856 20.692 61.690 35.822 10.382 10.084 40.908 135.174 14.952 40.766 20.990 +howto 39422105 5.806 8.326 25.432 8.288 5.472 5.320 20.694 64.834 5.672 16.366 11.388 +jdk13c 69728899 18.106 22.252 61.234 32.182 9.260 9.010 34.172 101.096 11.314 39.792 16.396 +linux-2.4.5.tar 116254720 18.174 26.226 82.830 25.912 14.672 14.290 58.586 194.412 19.890 54.054 29.614 +rctail96 114711151 32.490 55.826 119.026 62.502 18.500 17.914 70.072 190.562 21.060 70.456 33.248 +rfc 116421901 20.736 35.404 91.284 29.666 16.116 15.658 64.390 196.500 17.936 61.436 32.224 +sprot34.dat 109617186 22.832 36.720 93.122 32.096 17.894 17.404 68.084 187.594 23.352 56.946 34.092 +w3c2 104201579 27.264 29.384 89.352 54.682 13.866 13.486 52.660 162.582 17.090 77.804 25.498 +totals 896819039 187.454 273.608 726.536 322.928 130.324 126.592 499.782 1485.444 162.504 484.874 252.994 + +== The Gauntlet == +Files Size Archon4r0 BPR DC DS divsufsort1 divsufsort2 KA KS MSufSort3 qsufsort sais +abac 200000 0.044 0.064 0.104 27.914 0.042 0.036 0.058 0.048 0.050 0.062 0.044 +abba 10500600 3.270 5.124 10.766 30.702 1.714 1.602 2.570 7.952 3.514 15.272 1.460 +book1x20 15375420 4.392 3.530 13.872 97.468 2.312 2.154 7.442 15.756 3.542 22.376 3.912 +fib_s14930352 14930352 12.728 10.830 18.524 179.040 3.638 3.588 3.544 10.232 6.700 18.224 2.542 +fss10 12078908 11.390 8.974 15.130 85.328 2.828 2.824 3.344 8.646 4.618 14.754 2.076 +fss9 2851443 1.002 1.210 1.644 5.256 0.410 0.416 0.618 1.290 0.554 2.836 0.336 +houston 3840000 0.344 0.708 2.226 118.960 0.118 0.128 0.520 0.744 0.242 1.230 0.238 +paper5x80 981924 0.110 0.154 0.454 0.806 0.092 0.090 0.210 0.256 0.144 0.448 0.110 +test1 2097152 0.332 2.132 1.108 8.680 0.268 0.280 0.376 1.066 1.302 2.762 0.202 +test2 2097152 0.710 0.616 1.110 8.682 0.180 0.176 0.374 1.076 3.354 2.768 0.206 +test3 2097152 0.488 213.154 1.164 1.772 0.220 0.226 0.388 1.082 0.922 3.246 0.212 +totals 67050103 34.810 246.496 66.102 564.608 11.822 11.520 19.444 48.148 24.942 83.978 11.338 + += Space (in MiBytes) = + +== Manzini's Corpus == +Files Size Archon4r0 BPR DC DS divsufsort1 divsufsort2 KA KS MSufSort3 qsufsort sais +chr22.dna 34553758 174.66 296.88 193.60 165.18 165.02 165.02 289.97 428.39 199.72 263.62 164.77 +etext99 105277340 531.13 915.48 589.85 503.23 502.25 502.25 907.34 1305.20 604.45 803.20 502.00 +gcc-3.0.tar 86630400 437.14 756.43 485.38 415.87 413.34 413.34 709.50 1074.01 497.79 660.94 413.09 +howto 39422105 199.20 367.53 220.88 188.45 188.23 188.23 331.54 488.75 227.67 300.77 187.98 +jdk13c 69728899 351.96 603.99 390.68 333.40 332.74 332.74 609.71 864.48 401.04 531.99 332.49 +linux-2.4.5.tar 116254720 586.46 1061.83 651.36 555.76 554.60 554.60 977.81 1441.30 667.39 886.95 554.35 +rctail96 114711151 578.68 987.64 642.71 548.32 547.24 547.24 1004.98 1422.16 658.43 875.18 546.99 +rfc 116421901 587.30 1005.85 652.29 556.53 555.39 555.39 956.52 1443.37 668.26 888.23 555.14 +sprot34.dat 109617186 553.01 941.95 614.17 524.03 522.95 522.95 930.06 1359.01 629.26 836.31 522.70 +w3c2 104201579 525.71 958.37 583.82 498.09 497.12 497.12 912.00 1291.87 598.82 795.00 496.87 +totals 896819039 4525.25 7895.95 5024.74 4288.86 4278.88 4278.88 7629.43 11118.54 5152.83 6842.19 4276.38 +mean - 5.29 9.23 5.88 5.01 5.00 5.00 8.92 13.00 6.02 8.00 5.00 + +== The Gauntlet == +Files Size Archon4r0 BPR DC DS divsufsort1 divsufsort2 KA KS MSufSort3 qsufsort sais +abac 200000 1.51 1.73 1.12 0.98 1.21 1.20 1.75 2.48 3.15 1.53 0.95 +abba 10500600 53.43 90.19 58.83 50.21 50.32 50.32 86.20 130.18 62.09 80.11 50.07 +book1x20 15375420 78.00 134.00 86.15 73.52 73.57 73.57 132.42 190.62 89.99 117.31 73.32 +fib_s14930352 14930352 75.75 128.15 83.65 71.71 71.44 71.44 117.16 185.10 87.43 113.91 71.19 +fss10 12078908 61.38 103.68 67.68 58.05 57.85 57.85 107.05 149.75 71.12 92.16 57.60 +fss9 2851443 14.87 24.48 15.98 13.71 13.85 13.85 25.27 35.35 18.32 21.76 13.60 +houston 3840000 19.85 36.96 21.52 18.46 18.56 18.56 28.79 47.58 23.98 29.30 18.31 +paper5x80 981924 5.45 11.40 5.50 4.72 4.93 4.93 8.59 12.17 7.63 7.49 4.68 +test1 2097152 11.07 82.00 11.75 10.10 10.25 10.25 18.34 25.99 14.01 16.00 10.00 +test2 2097152 11.07 82.00 11.75 10.10 10.25 10.25 18.34 25.99 14.01 16.00 10.00 +test3 2097152 11.07 82.00 11.75 10.05 10.25 10.25 18.34 26.00 14.63 16.00 10.12 +totals 67050103 343.45 776.59 375.68 321.61 322.48 322.47 562.25 831.21 406.36 511.57 319.84 +mean - 5.37 12.14 5.88 5.03 5.04 5.04 8.79 13.00 6.35 8.00 5.00 + + +Algorithm: +---------- + +libdivsufsort uses the following algorithms for suffix sorting. + - The improved version of Itho-Tanaka two-stage sorting algorithm. [2][6] + - A substring sorting/encoding technique. [1][3] + - Maniscalco's tandem repeat sorting algorithm. [5] + - Larsson-Sadakane sorting algorithm. [4] + + +References: +----------- + + 1. Stefan Burkhardt and Juha K"arkk"ainen. Fast lightweight suffix + array construction and checking. Proceedings of the 14th Annual + Symposium on Combinatorial Pattern Matching, LNCS 2676, + Springer, pp. 55-69, 2003. + + 2. Hideo Itoh and Hozumi Tanaka, An Efficient Method for in Memory + Construction of Suffix Arrays, Proceedings of the IEEE String + Processing and Information Retrieval Symposium, pp. 81-88, 1999. + + 3. Pang Ko and Srinivas Aluru, Space-efficient linear time + construction of suffix arrays, Proceedings of the 14th Annual + Symposium on Combinatorial Pattern Matching, pp. 200-210, 2003. + + 4. Jesper Larsson and Kunihiko Sadakane, Faster suffix sorting. + Technical report LU-CS-TR:99-214, Department of Computer + Science, Lund University, Sweden, 1999. + + 5. Michael Maniscalco, MSufSort. + http://www.michael-maniscalco.com/msufsort.htm + + 6. Yuta Mori, Short description of improved two-stage suffix sorting + algorithm, 2005. + http://homepage3.nifty.com/wpage/software/itssort.txt diff --git a/bioinformaticsProject/hmmer/libdivsufsort/VERSION b/bioinformaticsProject/hmmer/libdivsufsort/VERSION new file mode 100644 index 0000000..227cea2 --- /dev/null +++ b/bioinformaticsProject/hmmer/libdivsufsort/VERSION @@ -0,0 +1 @@ +2.0.0 diff --git a/bioinformaticsProject/hmmer/libdivsufsort/divsufsort.c b/bioinformaticsProject/hmmer/libdivsufsort/divsufsort.c new file mode 100644 index 0000000..4499b66 --- /dev/null +++ b/bioinformaticsProject/hmmer/libdivsufsort/divsufsort.c @@ -0,0 +1,1794 @@ +/* + * divsufsort.c for libdivsufsort-lite + * Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + * + * 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. + */ + +#include +#include +#include +#ifdef _OPENMP +# include +#endif +#include "divsufsort.h" + + +/*- Constants -*/ +#define INLINE __inline +#if defined(ALPHABET_SIZE) && (ALPHABET_SIZE < 1) +# undef ALPHABET_SIZE +#endif +#if !defined(ALPHABET_SIZE) +# define ALPHABET_SIZE (256) +#endif +#define BUCKET_A_SIZE (ALPHABET_SIZE) +#define BUCKET_B_SIZE (ALPHABET_SIZE * ALPHABET_SIZE) +#if defined(SS_INSERTIONSORT_THRESHOLD) +# if SS_INSERTIONSORT_THRESHOLD < 1 +# undef SS_INSERTIONSORT_THRESHOLD +# define SS_INSERTIONSORT_THRESHOLD (1) +# endif +#else +# define SS_INSERTIONSORT_THRESHOLD (8) +#endif +#if defined(SS_BLOCKSIZE) +# if SS_BLOCKSIZE < 0 +# undef SS_BLOCKSIZE +# define SS_BLOCKSIZE (0) +# elif 32768 <= SS_BLOCKSIZE +# undef SS_BLOCKSIZE +# define SS_BLOCKSIZE (32767) +# endif +#else +# define SS_BLOCKSIZE (1024) +#endif +/* minstacksize = log(SS_BLOCKSIZE) / log(3) * 2 */ +#if SS_BLOCKSIZE == 0 +# define SS_MISORT_STACKSIZE (96) +#elif SS_BLOCKSIZE <= 4096 +# define SS_MISORT_STACKSIZE (16) +#else +# define SS_MISORT_STACKSIZE (24) +#endif +#define SS_SMERGE_STACKSIZE (32) +#define TR_INSERTIONSORT_THRESHOLD (8) +#define TR_STACKSIZE (64) + + +/*- Macros -*/ +#ifndef SWAP +# define SWAP(_a, _b) do { t = (_a); (_a) = (_b); (_b) = t; } while(0) +#endif /* SWAP */ +#ifndef MIN +# define MIN(_a, _b) (((_a) < (_b)) ? (_a) : (_b)) +#endif /* MIN */ +#ifndef MAX +# define MAX(_a, _b) (((_a) > (_b)) ? (_a) : (_b)) +#endif /* MAX */ +#define STACK_PUSH(_a, _b, _c, _d)\ + do {\ + assert(ssize < STACK_SIZE);\ + stack[ssize].a = (_a), stack[ssize].b = (_b),\ + stack[ssize].c = (_c), stack[ssize++].d = (_d);\ + } while(0) +#define STACK_PUSH5(_a, _b, _c, _d, _e)\ + do {\ + assert(ssize < STACK_SIZE);\ + stack[ssize].a = (_a), stack[ssize].b = (_b),\ + stack[ssize].c = (_c), stack[ssize].d = (_d), stack[ssize++].e = (_e);\ + } while(0) +#define STACK_POP(_a, _b, _c, _d)\ + do {\ + assert(0 <= ssize);\ + if(ssize == 0) { return; }\ + (_a) = stack[--ssize].a, (_b) = stack[ssize].b,\ + (_c) = stack[ssize].c, (_d) = stack[ssize].d;\ + } while(0) +#define STACK_POP5(_a, _b, _c, _d, _e)\ + do {\ + assert(0 <= ssize);\ + if(ssize == 0) { return; }\ + (_a) = stack[--ssize].a, (_b) = stack[ssize].b,\ + (_c) = stack[ssize].c, (_d) = stack[ssize].d, (_e) = stack[ssize].e;\ + } while(0) +#define BUCKET_A(_c0) bucket_A[(_c0)] +#if ALPHABET_SIZE == 256 +#define BUCKET_B(_c0, _c1) (bucket_B[((_c1) << 8) | (_c0)]) +#define BUCKET_BSTAR(_c0, _c1) (bucket_B[((_c0) << 8) | (_c1)]) +#else +#define BUCKET_B(_c0, _c1) (bucket_B[(_c1) * ALPHABET_SIZE + (_c0)]) +#define BUCKET_BSTAR(_c0, _c1) (bucket_B[(_c0) * ALPHABET_SIZE + (_c1)]) +#endif + + +/*- Private Functions -*/ + +static const int lg_table[256]= { + -1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 +}; + +#if (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) + +static INLINE +int +ss_ilg(int n) { +#if SS_BLOCKSIZE == 0 + return (n & 0xffff0000) ? + ((n & 0xff000000) ? + 24 + lg_table[(n >> 24) & 0xff] : + 16 + lg_table[(n >> 16) & 0xff]) : + ((n & 0x0000ff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]); +#elif SS_BLOCKSIZE < 256 + return lg_table[n]; +#else + return (n & 0xff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]; +#endif +} + +#endif /* (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) */ + +#if SS_BLOCKSIZE != 0 + +static const int sqq_table[256] = { + 0, 16, 22, 27, 32, 35, 39, 42, 45, 48, 50, 53, 55, 57, 59, 61, + 64, 65, 67, 69, 71, 73, 75, 76, 78, 80, 81, 83, 84, 86, 87, 89, + 90, 91, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 106, 107, 108, 109, +110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, +128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, +143, 144, 144, 145, 146, 147, 148, 149, 150, 150, 151, 152, 153, 154, 155, 155, +156, 157, 158, 159, 160, 160, 161, 162, 163, 163, 164, 165, 166, 167, 167, 168, +169, 170, 170, 171, 172, 173, 173, 174, 175, 176, 176, 177, 178, 178, 179, 180, +181, 181, 182, 183, 183, 184, 185, 185, 186, 187, 187, 188, 189, 189, 190, 191, +192, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 201, 201, +202, 203, 203, 204, 204, 205, 206, 206, 207, 208, 208, 209, 209, 210, 211, 211, +212, 212, 213, 214, 214, 215, 215, 216, 217, 217, 218, 218, 219, 219, 220, 221, +221, 222, 222, 223, 224, 224, 225, 225, 226, 226, 227, 227, 228, 229, 229, 230, +230, 231, 231, 232, 232, 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, +239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, +247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255 +}; + +static INLINE +int +ss_isqrt(int x) { + int y, e; + + if(x >= (SS_BLOCKSIZE * SS_BLOCKSIZE)) { return SS_BLOCKSIZE; } + e = (x & 0xffff0000) ? + ((x & 0xff000000) ? + 24 + lg_table[(x >> 24) & 0xff] : + 16 + lg_table[(x >> 16) & 0xff]) : + ((x & 0x0000ff00) ? + 8 + lg_table[(x >> 8) & 0xff] : + 0 + lg_table[(x >> 0) & 0xff]); + + if(e >= 16) { + y = sqq_table[x >> ((e - 6) - (e & 1))] << ((e >> 1) - 7); + if(e >= 24) { y = (y + 1 + x / y) >> 1; } + y = (y + 1 + x / y) >> 1; + } else if(e >= 8) { + y = (sqq_table[x >> ((e - 6) - (e & 1))] >> (7 - (e >> 1))) + 1; + } else { + return sqq_table[x] >> 4; + } + + return (x < (y * y)) ? y - 1 : y; +} + +#endif /* SS_BLOCKSIZE != 0 */ + + +/*---------------------------------------------------------------------------*/ + +/* Compares two suffixes. */ +static INLINE +int +ss_compare(const unsigned char *T, + const int *p1, const int *p2, + int depth) { + const unsigned char *U1, *U2, *U1n, *U2n; + + for(U1 = T + depth + *p1, + U2 = T + depth + *p2, + U1n = T + *(p1 + 1) + 2, + U2n = T + *(p2 + 1) + 2; + (U1 < U1n) && (U2 < U2n) && (*U1 == *U2); + ++U1, ++U2) { + } + + return U1 < U1n ? + (U2 < U2n ? *U1 - *U2 : 1) : + (U2 < U2n ? -1 : 0); +} + + +/*---------------------------------------------------------------------------*/ + +#if (SS_BLOCKSIZE != 1) && (SS_INSERTIONSORT_THRESHOLD != 1) + +/* Insertionsort for small size groups */ +static +void +ss_insertionsort(const unsigned char *T, const int *PA, + int *first, int *last, int depth) { + int *i, *j; + int t; + int r; + + for(i = last - 2; first <= i; --i) { + for(t = *i, j = i + 1; 0 < (r = ss_compare(T, PA + t, PA + *j, depth));) { + do { *(j - 1) = *j; } while((++j < last) && (*j < 0)); + if(last <= j) { break; } + } + if(r == 0) { *j = ~*j; } + *(j - 1) = t; + } +} + +#endif /* (SS_BLOCKSIZE != 1) && (SS_INSERTIONSORT_THRESHOLD != 1) */ + + +/*---------------------------------------------------------------------------*/ + +#if (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) + +static INLINE +void +ss_fixdown(const unsigned char *Td, const int *PA, + int *SA, int i, int size) { + int j, k; + int v; + int c, d, e; + + for(v = SA[i], c = Td[PA[v]]; (j = 2 * i + 1) < size; SA[i] = SA[k], i = k) { + d = Td[PA[SA[k = j++]]]; + if(d < (e = Td[PA[SA[j]]])) { k = j; d = e; } + if(d <= c) { break; } + } + SA[i] = v; +} + +/* Simple top-down heapsort. */ +static +void +ss_heapsort(const unsigned char *Td, const int *PA, int *SA, int size) { + int i, m; + int t; + + m = size; + if((size % 2) == 0) { + m--; + if(Td[PA[SA[m / 2]]] < Td[PA[SA[m]]]) { SWAP(SA[m], SA[m / 2]); } + } + + for(i = m / 2 - 1; 0 <= i; --i) { ss_fixdown(Td, PA, SA, i, m); } + if((size % 2) == 0) { SWAP(SA[0], SA[m]); ss_fixdown(Td, PA, SA, 0, m); } + for(i = m - 1; 0 < i; --i) { + t = SA[0], SA[0] = SA[i]; + ss_fixdown(Td, PA, SA, 0, i); + SA[i] = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Returns the median of three elements. */ +static INLINE +int * +ss_median3(const unsigned char *Td, const int *PA, + int *v1, int *v2, int *v3) { + int *t; + if(Td[PA[*v1]] > Td[PA[*v2]]) { SWAP(v1, v2); } + if(Td[PA[*v2]] > Td[PA[*v3]]) { + if(Td[PA[*v1]] > Td[PA[*v3]]) { return v1; } + else { return v3; } + } + return v2; +} + +/* Returns the median of five elements. */ +static INLINE +int * +ss_median5(const unsigned char *Td, const int *PA, + int *v1, int *v2, int *v3, int *v4, int *v5) { + int *t; + if(Td[PA[*v2]] > Td[PA[*v3]]) { SWAP(v2, v3); } + if(Td[PA[*v4]] > Td[PA[*v5]]) { SWAP(v4, v5); } + if(Td[PA[*v2]] > Td[PA[*v4]]) { SWAP(v2, v4); SWAP(v3, v5); } + if(Td[PA[*v1]] > Td[PA[*v3]]) { SWAP(v1, v3); } + if(Td[PA[*v1]] > Td[PA[*v4]]) { SWAP(v1, v4); SWAP(v3, v5); } + if(Td[PA[*v3]] > Td[PA[*v4]]) { return v4; } + return v3; +} + +/* Returns the pivot element. */ +static INLINE +int * +ss_pivot(const unsigned char *Td, const int *PA, int *first, int *last) { + int *middle; + int t; + + t = last - first; + middle = first + t / 2; + + if(t <= 512) { + if(t <= 32) { + return ss_median3(Td, PA, first, middle, last - 1); + } else { + t >>= 2; + return ss_median5(Td, PA, first, first + t, middle, last - 1 - t, last - 1); + } + } + t >>= 3; + first = ss_median3(Td, PA, first, first + t, first + (t << 1)); + middle = ss_median3(Td, PA, middle - t, middle, middle + t); + last = ss_median3(Td, PA, last - 1 - (t << 1), last - 1 - t, last - 1); + return ss_median3(Td, PA, first, middle, last); +} + + +/*---------------------------------------------------------------------------*/ + +/* Binary partition for substrings. */ +static INLINE +int * +ss_partition(const int *PA, + int *first, int *last, int depth) { + int *a, *b; + int t; + for(a = first - 1, b = last;;) { + for(; (++a < b) && ((PA[*a] + depth) >= (PA[*a + 1] + 1));) { *a = ~*a; } + for(; (a < --b) && ((PA[*b] + depth) < (PA[*b + 1] + 1));) { } + if(b <= a) { break; } + t = ~*b; + *b = *a; + *a = t; + } + if(first < a) { *first = ~*first; } + return a; +} + +/* Multikey introsort for medium size groups. */ +static +void +ss_mintrosort(const unsigned char *T, const int *PA, + int *first, int *last, + int depth) { +#define STACK_SIZE SS_MISORT_STACKSIZE + struct { int *a, *b, c; int d; } stack[STACK_SIZE]; + const unsigned char *Td; + int *a, *b, *c, *d, *e, *f; + int s, t; + int ssize; + int limit; + int v, x = 0; + + for(ssize = 0, limit = ss_ilg(last - first);;) { + + if((last - first) <= SS_INSERTIONSORT_THRESHOLD) { +#if 1 < SS_INSERTIONSORT_THRESHOLD + if(1 < (last - first)) { ss_insertionsort(T, PA, first, last, depth); } +#endif + STACK_POP(first, last, depth, limit); + continue; + } + + Td = T + depth; + if(limit-- == 0) { ss_heapsort(Td, PA, first, last - first); } + if(limit < 0) { + for(a = first + 1, v = Td[PA[*first]]; a < last; ++a) { + if((x = Td[PA[*a]]) != v) { + if(1 < (a - first)) { break; } + v = x; + first = a; + } + } + if(Td[PA[*first] - 1] < v) { + first = ss_partition(PA, first, a, depth); + } + if((a - first) <= (last - a)) { + if(1 < (a - first)) { + STACK_PUSH(a, last, depth, -1); + last = a, depth += 1, limit = ss_ilg(a - first); + } else { + first = a, limit = -1; + } + } else { + if(1 < (last - a)) { + STACK_PUSH(first, a, depth + 1, ss_ilg(a - first)); + first = a, limit = -1; + } else { + last = a, depth += 1, limit = ss_ilg(a - first); + } + } + continue; + } + + /* choose pivot */ + a = ss_pivot(Td, PA, first, last); + v = Td[PA[*a]]; + SWAP(*first, *a); + + /* partition */ + for(b = first; (++b < last) && ((x = Td[PA[*b]]) == v);) { } + if(((a = b) < last) && (x < v)) { + for(; (++b < last) && ((x = Td[PA[*b]]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + } + for(c = last; (b < --c) && ((x = Td[PA[*c]]) == v);) { } + if((b < (d = c)) && (x > v)) { + for(; (b < --c) && ((x = Td[PA[*c]]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + for(; b < c;) { + SWAP(*b, *c); + for(; (++b < c) && ((x = Td[PA[*b]]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + for(; (b < --c) && ((x = Td[PA[*c]]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + + if(a <= d) { + c = b - 1; + + if((s = a - first) > (t = b - a)) { s = t; } + for(e = first, f = b - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + if((s = d - c) > (t = last - d - 1)) { s = t; } + for(e = b, f = last - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + + a = first + (b - a), c = last - (d - c); + b = (v <= Td[PA[*a] - 1]) ? a : ss_partition(PA, a, c, depth); + + if((a - first) <= (last - c)) { + if((last - c) <= (c - b)) { + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + STACK_PUSH(c, last, depth, limit); + last = a; + } else if((a - first) <= (c - b)) { + STACK_PUSH(c, last, depth, limit); + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + last = a; + } else { + STACK_PUSH(c, last, depth, limit); + STACK_PUSH(first, a, depth, limit); + first = b, last = c, depth += 1, limit = ss_ilg(c - b); + } + } else { + if((a - first) <= (c - b)) { + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + STACK_PUSH(first, a, depth, limit); + first = c; + } else if((last - c) <= (c - b)) { + STACK_PUSH(first, a, depth, limit); + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + first = c; + } else { + STACK_PUSH(first, a, depth, limit); + STACK_PUSH(c, last, depth, limit); + first = b, last = c, depth += 1, limit = ss_ilg(c - b); + } + } + } else { + limit += 1; + if(Td[PA[*first] - 1] < v) { + first = ss_partition(PA, first, last, depth); + limit = ss_ilg(last - first); + } + depth += 1; + } + } +#undef STACK_SIZE +} + +#endif /* (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) */ + + +/*---------------------------------------------------------------------------*/ + +#if SS_BLOCKSIZE != 0 + +static INLINE +void +ss_blockswap(int *a, int *b, int n) { + int t; + for(; 0 < n; --n, ++a, ++b) { + t = *a, *a = *b, *b = t; + } +} + +static INLINE +void +ss_rotate(int *first, int *middle, int *last) { + int *a, *b, t; + int l, r; + l = middle - first, r = last - middle; + for(; (0 < l) && (0 < r);) { + if(l == r) { ss_blockswap(first, middle, l); break; } + if(l < r) { + a = last - 1, b = middle - 1; + t = *a; + do { + *a-- = *b, *b-- = *a; + if(b < first) { + *a = t; + last = a; + if((r -= l + 1) <= l) { break; } + a -= 1, b = middle - 1; + t = *a; + } + } while(1); + } else { + a = first, b = middle; + t = *a; + do { + *a++ = *b, *b++ = *a; + if(last <= b) { + *a = t; + first = a + 1; + if((l -= r + 1) <= r) { break; } + a += 1, b = middle; + t = *a; + } + } while(1); + } + } +} + + +/*---------------------------------------------------------------------------*/ + +static +void +ss_inplacemerge(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int depth) { + const int *p; + int *a, *b; + int len, half; + int q, r; + int x; + + for(;;) { + if(*(last - 1) < 0) { x = 1; p = PA + ~*(last - 1); } + else { x = 0; p = PA + *(last - 1); } + for(a = first, len = middle - first, half = len >> 1, r = -1; + 0 < len; + len = half, half >>= 1) { + b = a + half; + q = ss_compare(T, PA + ((0 <= *b) ? *b : ~*b), p, depth); + if(q < 0) { + a = b + 1; + half -= (len & 1) ^ 1; + } else { + r = q; + } + } + if(a < middle) { + if(r == 0) { *a = ~*a; } + ss_rotate(a, middle, last); + last -= middle - a; + middle = a; + if(first == middle) { break; } + } + --last; + if(x != 0) { while(*--last < 0) { } } + if(middle == last) { break; } + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Merge-forward with internal buffer. */ +static +void +ss_mergeforward(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int depth) { + int *a, *b, *c, *bufend; + int t; + int r; + + bufend = buf + (middle - first) - 1; + ss_blockswap(buf, first, middle - first); + + for(t = *(a = first), b = buf, c = middle;;) { + r = ss_compare(T, PA + *b, PA + *c, depth); + if(r < 0) { + do { + *a++ = *b; + if(bufend <= b) { *bufend = t; return; } + *b++ = *a; + } while(*b < 0); + } else if(r > 0) { + do { + *a++ = *c, *c++ = *a; + if(last <= c) { + while(b < bufend) { *a++ = *b, *b++ = *a; } + *a = *b, *b = t; + return; + } + } while(*c < 0); + } else { + *c = ~*c; + do { + *a++ = *b; + if(bufend <= b) { *bufend = t; return; } + *b++ = *a; + } while(*b < 0); + + do { + *a++ = *c, *c++ = *a; + if(last <= c) { + while(b < bufend) { *a++ = *b, *b++ = *a; } + *a = *b, *b = t; + return; + } + } while(*c < 0); + } + } +} + +/* Merge-backward with internal buffer. */ +static +void +ss_mergebackward(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int depth) { + const int *p1, *p2; + int *a, *b, *c, *bufend; + int t; + int r; + int x; + + bufend = buf + (last - middle) - 1; + ss_blockswap(buf, middle, last - middle); + + x = 0; + if(*bufend < 0) { p1 = PA + ~*bufend; x |= 1; } + else { p1 = PA + *bufend; } + if(*(middle - 1) < 0) { p2 = PA + ~*(middle - 1); x |= 2; } + else { p2 = PA + *(middle - 1); } + for(t = *(a = last - 1), b = bufend, c = middle - 1;;) { + r = ss_compare(T, p1, p2, depth); + if(0 < r) { + if(x & 1) { do { *a-- = *b, *b-- = *a; } while(*b < 0); x ^= 1; } + *a-- = *b; + if(b <= buf) { *buf = t; break; } + *b-- = *a; + if(*b < 0) { p1 = PA + ~*b; x |= 1; } + else { p1 = PA + *b; } + } else if(r < 0) { + if(x & 2) { do { *a-- = *c, *c-- = *a; } while(*c < 0); x ^= 2; } + *a-- = *c, *c-- = *a; + if(c < first) { + while(buf < b) { *a-- = *b, *b-- = *a; } + *a = *b, *b = t; + break; + } + if(*c < 0) { p2 = PA + ~*c; x |= 2; } + else { p2 = PA + *c; } + } else { + if(x & 1) { do { *a-- = *b, *b-- = *a; } while(*b < 0); x ^= 1; } + *a-- = ~*b; + if(b <= buf) { *buf = t; break; } + *b-- = *a; + if(x & 2) { do { *a-- = *c, *c-- = *a; } while(*c < 0); x ^= 2; } + *a-- = *c, *c-- = *a; + if(c < first) { + while(buf < b) { *a-- = *b, *b-- = *a; } + *a = *b, *b = t; + break; + } + if(*b < 0) { p1 = PA + ~*b; x |= 1; } + else { p1 = PA + *b; } + if(*c < 0) { p2 = PA + ~*c; x |= 2; } + else { p2 = PA + *c; } + } + } +} + +/* D&C based merge. */ +static +void +ss_swapmerge(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int bufsize, int depth) { +#define STACK_SIZE SS_SMERGE_STACKSIZE +#define GETIDX(a) ((0 <= (a)) ? (a) : (~(a))) +#define MERGE_CHECK(a, b, c)\ + do {\ + if(((c) & 1) ||\ + (((c) & 2) && (ss_compare(T, PA + GETIDX(*((a) - 1)), PA + *(a), depth) == 0))) {\ + *(a) = ~*(a);\ + }\ + if(((c) & 4) && ((ss_compare(T, PA + GETIDX(*((b) - 1)), PA + *(b), depth) == 0))) {\ + *(b) = ~*(b);\ + }\ + } while(0) + struct { int *a, *b, *c; int d; } stack[STACK_SIZE]; + int *l, *r, *lm, *rm; + int m, len, half; + int ssize; + int check, next; + + for(check = 0, ssize = 0;;) { + if((last - middle) <= bufsize) { + if((first < middle) && (middle < last)) { + ss_mergebackward(T, PA, first, middle, last, buf, depth); + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + continue; + } + + if((middle - first) <= bufsize) { + if(first < middle) { + ss_mergeforward(T, PA, first, middle, last, buf, depth); + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + continue; + } + + for(m = 0, len = MIN(middle - first, last - middle), half = len >> 1; + 0 < len; + len = half, half >>= 1) { + if(ss_compare(T, PA + GETIDX(*(middle + m + half)), + PA + GETIDX(*(middle - m - half - 1)), depth) < 0) { + m += half + 1; + half -= (len & 1) ^ 1; + } + } + + if(0 < m) { + lm = middle - m, rm = middle + m; + ss_blockswap(lm, middle, m); + l = r = middle, next = 0; + if(rm < last) { + if(*rm < 0) { + *rm = ~*rm; + if(first < lm) { for(; *--l < 0;) { } next |= 4; } + next |= 1; + } else if(first < lm) { + for(; *r < 0; ++r) { } + next |= 2; + } + } + + if((l - first) <= (last - r)) { + STACK_PUSH(r, rm, last, (next & 3) | (check & 4)); + middle = lm, last = l, check = (check & 3) | (next & 4); + } else { + if((next & 2) && (r == middle)) { next ^= 6; } + STACK_PUSH(first, lm, l, (check & 3) | (next & 4)); + first = r, middle = rm, check = (next & 3) | (check & 4); + } + } else { + if(ss_compare(T, PA + GETIDX(*(middle - 1)), PA + *middle, depth) == 0) { + *middle = ~*middle; + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + } + } +#undef STACK_SIZE +} + +#endif /* SS_BLOCKSIZE != 0 */ + + +/*---------------------------------------------------------------------------*/ + +/* Substring sort */ +static +void +sssort(const unsigned char *T, const int *PA, + int *first, int *last, + int *buf, int bufsize, + int depth, int n, int lastsuffix) { + int *a; +#if SS_BLOCKSIZE != 0 + int *b, *middle, *curbuf; + int j, k, curbufsize, limit; +#endif + int i; + + if(lastsuffix != 0) { ++first; } + +#if SS_BLOCKSIZE == 0 + ss_mintrosort(T, PA, first, last, depth); +#else + if((bufsize < SS_BLOCKSIZE) && + (bufsize < (last - first)) && + (bufsize < (limit = ss_isqrt(last - first)))) { + if(SS_BLOCKSIZE < limit) { limit = SS_BLOCKSIZE; } + buf = middle = last - limit, bufsize = limit; + } else { + middle = last, limit = 0; + } + for(a = first, i = 0; SS_BLOCKSIZE < (middle - a); a += SS_BLOCKSIZE, ++i) { +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, a, a + SS_BLOCKSIZE, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, a, a + SS_BLOCKSIZE, depth); +#endif + curbufsize = last - (a + SS_BLOCKSIZE); + curbuf = a + SS_BLOCKSIZE; + if(curbufsize <= bufsize) { curbufsize = bufsize, curbuf = buf; } + for(b = a, k = SS_BLOCKSIZE, j = i; j & 1; b -= k, k <<= 1, j >>= 1) { + ss_swapmerge(T, PA, b - k, b, b + k, curbuf, curbufsize, depth); + } + } +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, a, middle, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, a, middle, depth); +#endif + for(k = SS_BLOCKSIZE; i != 0; k <<= 1, i >>= 1) { + if(i & 1) { + ss_swapmerge(T, PA, a - k, a, middle, buf, bufsize, depth); + a -= k; + } + } + if(limit != 0) { +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, middle, last, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, middle, last, depth); +#endif + ss_inplacemerge(T, PA, first, middle, last, depth); + } +#endif + + if(lastsuffix != 0) { + /* Insert last type B* suffix. */ + int PAi[2]; PAi[0] = PA[*(first - 1)], PAi[1] = n - 2; + for(a = first, i = *(first - 1); + (a < last) && ((*a < 0) || (0 < ss_compare(T, &(PAi[0]), PA + *a, depth))); + ++a) { + *(a - 1) = *a; + } + *(a - 1) = i; + } +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +int +tr_ilg(int n) { + return (n & 0xffff0000) ? + ((n & 0xff000000) ? + 24 + lg_table[(n >> 24) & 0xff] : + 16 + lg_table[(n >> 16) & 0xff]) : + ((n & 0x0000ff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]); +} + + +/*---------------------------------------------------------------------------*/ + +/* Simple insertionsort for small size groups. */ +static +void +tr_insertionsort(const int *ISAd, int *first, int *last) { + int *a, *b; + int t, r; + + for(a = first + 1; a < last; ++a) { + for(t = *a, b = a - 1; 0 > (r = ISAd[t] - ISAd[*b]);) { + do { *(b + 1) = *b; } while((first <= --b) && (*b < 0)); + if(b < first) { break; } + } + if(r == 0) { *b = ~*b; } + *(b + 1) = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +void +tr_fixdown(const int *ISAd, int *SA, int i, int size) { + int j, k; + int v; + int c, d, e; + + for(v = SA[i], c = ISAd[v]; (j = 2 * i + 1) < size; SA[i] = SA[k], i = k) { + d = ISAd[SA[k = j++]]; + if(d < (e = ISAd[SA[j]])) { k = j; d = e; } + if(d <= c) { break; } + } + SA[i] = v; +} + +/* Simple top-down heapsort. */ +static +void +tr_heapsort(const int *ISAd, int *SA, int size) { + int i, m; + int t; + + m = size; + if((size % 2) == 0) { + m--; + if(ISAd[SA[m / 2]] < ISAd[SA[m]]) { SWAP(SA[m], SA[m / 2]); } + } + + for(i = m / 2 - 1; 0 <= i; --i) { tr_fixdown(ISAd, SA, i, m); } + if((size % 2) == 0) { SWAP(SA[0], SA[m]); tr_fixdown(ISAd, SA, 0, m); } + for(i = m - 1; 0 < i; --i) { + t = SA[0], SA[0] = SA[i]; + tr_fixdown(ISAd, SA, 0, i); + SA[i] = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Returns the median of three elements. */ +static INLINE +int * +tr_median3(const int *ISAd, int *v1, int *v2, int *v3) { + int *t; + if(ISAd[*v1] > ISAd[*v2]) { SWAP(v1, v2); } + if(ISAd[*v2] > ISAd[*v3]) { + if(ISAd[*v1] > ISAd[*v3]) { return v1; } + else { return v3; } + } + return v2; +} + +/* Returns the median of five elements. */ +static INLINE +int * +tr_median5(const int *ISAd, + int *v1, int *v2, int *v3, int *v4, int *v5) { + int *t; + if(ISAd[*v2] > ISAd[*v3]) { SWAP(v2, v3); } + if(ISAd[*v4] > ISAd[*v5]) { SWAP(v4, v5); } + if(ISAd[*v2] > ISAd[*v4]) { SWAP(v2, v4); SWAP(v3, v5); } + if(ISAd[*v1] > ISAd[*v3]) { SWAP(v1, v3); } + if(ISAd[*v1] > ISAd[*v4]) { SWAP(v1, v4); SWAP(v3, v5); } + if(ISAd[*v3] > ISAd[*v4]) { return v4; } + return v3; +} + +/* Returns the pivot element. */ +static INLINE +int * +tr_pivot(const int *ISAd, int *first, int *last) { + int *middle; + int t; + + t = last - first; + middle = first + t / 2; + + if(t <= 512) { + if(t <= 32) { + return tr_median3(ISAd, first, middle, last - 1); + } else { + t >>= 2; + return tr_median5(ISAd, first, first + t, middle, last - 1 - t, last - 1); + } + } + t >>= 3; + first = tr_median3(ISAd, first, first + t, first + (t << 1)); + middle = tr_median3(ISAd, middle - t, middle, middle + t); + last = tr_median3(ISAd, last - 1 - (t << 1), last - 1 - t, last - 1); + return tr_median3(ISAd, first, middle, last); +} + + +/*---------------------------------------------------------------------------*/ + +typedef struct _trbudget_t trbudget_t; +struct _trbudget_t { + int chance; + int remain; + int incval; + int count; +}; + +static INLINE +void +trbudget_init(trbudget_t *budget, int chance, int incval) { + budget->chance = chance; + budget->remain = budget->incval = incval; +} + +static INLINE +int +trbudget_check(trbudget_t *budget, int size) { + if(size <= budget->remain) { budget->remain -= size; return 1; } + if(budget->chance == 0) { budget->count += size; return 0; } + budget->remain += budget->incval - size; + budget->chance -= 1; + return 1; +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +void +tr_partition(const int *ISAd, + int *first, int *middle, int *last, + int **pa, int **pb, int v) { + int *a, *b, *c, *d, *e, *f; + int t, s; + int x = 0; + + for(b = middle - 1; (++b < last) && ((x = ISAd[*b]) == v);) { } + if(((a = b) < last) && (x < v)) { + for(; (++b < last) && ((x = ISAd[*b]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + } + for(c = last; (b < --c) && ((x = ISAd[*c]) == v);) { } + if((b < (d = c)) && (x > v)) { + for(; (b < --c) && ((x = ISAd[*c]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + for(; b < c;) { + SWAP(*b, *c); + for(; (++b < c) && ((x = ISAd[*b]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + for(; (b < --c) && ((x = ISAd[*c]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + + if(a <= d) { + c = b - 1; + if((s = a - first) > (t = b - a)) { s = t; } + for(e = first, f = b - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + if((s = d - c) > (t = last - d - 1)) { s = t; } + for(e = b, f = last - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + first += (b - a), last -= (d - c); + } + *pa = first, *pb = last; +} + +static +void +tr_copy(int *ISA, const int *SA, + int *first, int *a, int *b, int *last, + int depth) { + /* sort suffixes of middle partition + by using sorted order of suffixes of left and right partition. */ + int *c, *d, *e; + int s, v; + + v = b - SA - 1; + for(c = first, d = a - 1; c <= d; ++c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *++d = s; + ISA[s] = d - SA; + } + } + for(c = last - 1, e = d + 1, d = b; e < d; --c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *--d = s; + ISA[s] = d - SA; + } + } +} + +static +void +tr_partialcopy(int *ISA, const int *SA, + int *first, int *a, int *b, int *last, + int depth) { + int *c, *d, *e; + int s, v; + int rank, lastrank, newrank = -1; + + v = b - SA - 1; + lastrank = -1; + for(c = first, d = a - 1; c <= d; ++c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *++d = s; + rank = ISA[s + depth]; + if(lastrank != rank) { lastrank = rank; newrank = d - SA; } + ISA[s] = newrank; + } + } + + lastrank = -1; + for(e = d; first <= e; --e) { + rank = ISA[*e]; + if(lastrank != rank) { lastrank = rank; newrank = e - SA; } + if(newrank != rank) { ISA[*e] = newrank; } + } + + lastrank = -1; + for(c = last - 1, e = d + 1, d = b; e < d; --c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *--d = s; + rank = ISA[s + depth]; + if(lastrank != rank) { lastrank = rank; newrank = d - SA; } + ISA[s] = newrank; + } + } +} + +static +void +tr_introsort(int *ISA, const int *ISAd, + int *SA, int *first, int *last, + trbudget_t *budget) { +#define STACK_SIZE TR_STACKSIZE + struct { const int *a; int *b, *c; int d, e; }stack[STACK_SIZE]; + int *a, *b, *c; + int t; + int v, x = 0; + int incr = ISAd - ISA; + int limit, next; + int ssize, trlink = -1; + + for(ssize = 0, limit = tr_ilg(last - first);;) { + + if(limit < 0) { + if(limit == -1) { + /* tandem repeat partition */ + tr_partition(ISAd - incr, first, first, last, &a, &b, last - SA - 1); + + /* update ranks */ + if(a < last) { + for(c = first, v = a - SA - 1; c < a; ++c) { ISA[*c] = v; } + } + if(b < last) { + for(c = a, v = b - SA - 1; c < b; ++c) { ISA[*c] = v; } + } + + /* push */ + if(1 < (b - a)) { + STACK_PUSH5(NULL, a, b, 0, 0); + STACK_PUSH5(ISAd - incr, first, last, -2, trlink); + trlink = ssize - 2; + } + if((a - first) <= (last - b)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, tr_ilg(last - b), trlink); + last = a, limit = tr_ilg(a - first); + } else if(1 < (last - b)) { + first = b, limit = tr_ilg(last - b); + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } else { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, tr_ilg(a - first), trlink); + first = b, limit = tr_ilg(last - b); + } else if(1 < (a - first)) { + last = a, limit = tr_ilg(a - first); + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } else if(limit == -2) { + /* tandem repeat copy */ + a = stack[--ssize].b, b = stack[ssize].c; + if(stack[ssize].d == 0) { + tr_copy(ISA, SA, first, a, b, last, ISAd - ISA); + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + tr_partialcopy(ISA, SA, first, a, b, last, ISAd - ISA); + } + STACK_POP5(ISAd, first, last, limit, trlink); + } else { + /* sorted partition */ + if(0 <= *first) { + a = first; + do { ISA[*a] = a - SA; } while((++a < last) && (0 <= *a)); + first = a; + } + if(first < last) { + a = first; do { *a = ~*a; } while(*++a < 0); + next = (ISA[*a] != ISAd[*a]) ? tr_ilg(a - first + 1) : -1; + if(++a < last) { for(b = first, v = a - SA - 1; b < a; ++b) { ISA[*b] = v; } } + + /* push */ + if(trbudget_check(budget, a - first)) { + if((a - first) <= (last - a)) { + STACK_PUSH5(ISAd, a, last, -3, trlink); + ISAd += incr, last = a, limit = next; + } else { + if(1 < (last - a)) { + STACK_PUSH5(ISAd + incr, first, a, next, trlink); + first = a, limit = -3; + } else { + ISAd += incr, last = a, limit = next; + } + } + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + if(1 < (last - a)) { + first = a, limit = -3; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + continue; + } + + if((last - first) <= TR_INSERTIONSORT_THRESHOLD) { + tr_insertionsort(ISAd, first, last); + limit = -3; + continue; + } + + if(limit-- == 0) { + tr_heapsort(ISAd, first, last - first); + for(a = last - 1; first < a; a = b) { + for(x = ISAd[*a], b = a - 1; (first <= b) && (ISAd[*b] == x); --b) { *b = ~*b; } + } + limit = -3; + continue; + } + + /* choose pivot */ + a = tr_pivot(ISAd, first, last); + SWAP(*first, *a); + v = ISAd[*first]; + + /* partition */ + tr_partition(ISAd, first, first + 1, last, &a, &b, v); + if((last - first) != (b - a)) { + next = (ISA[*a] != v) ? tr_ilg(b - a) : -1; + + /* update ranks */ + for(c = first, v = a - SA - 1; c < a; ++c) { ISA[*c] = v; } + if(b < last) { for(c = a, v = b - SA - 1; c < b; ++c) { ISA[*c] = v; } } + + /* push */ + if((1 < (b - a)) && (trbudget_check(budget, b - a))) { + if((a - first) <= (last - b)) { + if((last - b) <= (b - a)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + STACK_PUSH5(ISAd, b, last, limit, trlink); + last = a; + } else if(1 < (last - b)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + first = b; + } else { + ISAd += incr, first = a, last = b, limit = next; + } + } else if((a - first) <= (b - a)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, limit, trlink); + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + last = a; + } else { + STACK_PUSH5(ISAd, b, last, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + STACK_PUSH5(ISAd, b, last, limit, trlink); + STACK_PUSH5(ISAd, first, a, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + if((a - first) <= (b - a)) { + if(1 < (last - b)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + STACK_PUSH5(ISAd, first, a, limit, trlink); + first = b; + } else if(1 < (a - first)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + last = a; + } else { + ISAd += incr, first = a, last = b, limit = next; + } + } else if((last - b) <= (b - a)) { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, limit, trlink); + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + first = b; + } else { + STACK_PUSH5(ISAd, first, a, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + STACK_PUSH5(ISAd, first, a, limit, trlink); + STACK_PUSH5(ISAd, b, last, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } + } else { + if((1 < (b - a)) && (0 <= trlink)) { stack[trlink].d = -1; } + if((a - first) <= (last - b)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, limit, trlink); + last = a; + } else if(1 < (last - b)) { + first = b; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } else { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, limit, trlink); + first = b; + } else if(1 < (a - first)) { + last = a; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } + } else { + if(trbudget_check(budget, last - first)) { + limit = tr_ilg(last - first), ISAd += incr; + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } +#undef STACK_SIZE +} + + + +/*---------------------------------------------------------------------------*/ + +/* Tandem repeat sort */ +static +void +trsort(int *ISA, int *SA, int n, int depth) { + int *ISAd; + int *first, *last; + trbudget_t budget; + int t, skip, unsorted; + + trbudget_init(&budget, tr_ilg(n) * 2 / 3, n); +/* trbudget_init(&budget, tr_ilg(n) * 3 / 4, n); */ + for(ISAd = ISA + depth; -n < *SA; ISAd += ISAd - ISA) { + first = SA; + skip = 0; + unsorted = 0; + do { + if((t = *first) < 0) { first -= t; skip += t; } + else { + if(skip != 0) { *(first + skip) = skip; skip = 0; } + last = SA + ISA[t] + 1; + if(1 < (last - first)) { + budget.count = 0; + tr_introsort(ISA, ISAd, SA, first, last, &budget); + if(budget.count != 0) { unsorted += budget.count; } + else { skip = first - last; } + } else if((last - first) == 1) { + skip = -1; + } + first = last; + } + } while(first < (SA + n)); + if(skip != 0) { *(first + skip) = skip; } + if(unsorted == 0) { break; } + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Sorts suffixes of type B*. */ +static +int +sort_typeBstar(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n) { + int *PAb, *ISAb, *buf; +#ifdef _OPENMP + int *curbuf; + int l; +#endif + int i, j, k, t, m, bufsize; + int c0, c1; +#ifdef _OPENMP + int d0, d1; + int tmp; +#endif + + /* Initialize bucket arrays. */ + for(i = 0; i < BUCKET_A_SIZE; ++i) { bucket_A[i] = 0; } + for(i = 0; i < BUCKET_B_SIZE; ++i) { bucket_B[i] = 0; } + + /* Count the number of occurrences of the first one or two characters of each + type A, B and B* suffix. Moreover, store the beginning position of all + type B* suffixes into the array SA. */ + i = n - 1; + m = n; + c0 = T[n - 1]; + while ( 0 <= i) { + /* type A suffix. */ + do { + ++BUCKET_A(c1 = c0); + } while((0 <= --i) && ((c0 = T[i]) >= c1)); + if(0 <= i) { + /* type B* suffix. */ + ++BUCKET_BSTAR(c0, c1); + SA[--m] = i; + /* type B suffix. */ + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { + ++BUCKET_B(c0, c1); + } + } + } + m = n - m; +/* +note: + A type B* suffix is lexicographically smaller than a type B suffix that + begins with the same first two characters. +*/ + + /* Calculate the index of start/end point of each bucket. */ + for(c0 = 0, i = 0, j = 0; c0 < ALPHABET_SIZE; ++c0) { + t = i + BUCKET_A(c0); + BUCKET_A(c0) = i + j; /* start point */ + i = t + BUCKET_B(c0, c0); + for(c1 = c0 + 1; c1 < ALPHABET_SIZE; ++c1) { + j += BUCKET_BSTAR(c0, c1); + BUCKET_BSTAR(c0, c1) = j; /* end point */ + i += BUCKET_B(c0, c1); + } + } + + if(0 < m) { + /* Sort the type B* suffixes by their first two characters. */ + PAb = SA + n - m; ISAb = SA + m; + for(i = m - 2; 0 <= i; --i) { + t = PAb[i], c0 = T[t], c1 = T[t + 1]; + SA[--BUCKET_BSTAR(c0, c1)] = i; + } + t = PAb[m - 1], c0 = T[t], c1 = T[t + 1]; + SA[--BUCKET_BSTAR(c0, c1)] = m - 1; + + /* Sort the type B* substrings using sssort. */ +#ifdef _OPENMP + tmp = omp_get_max_threads(); + buf = SA + m, bufsize = (n - (2 * m)) / tmp; + c0 = ALPHABET_SIZE - 2, c1 = ALPHABET_SIZE - 1, j = m; +#pragma omp parallel default(shared) private(curbuf, k, l, d0, d1, tmp) + { + tmp = omp_get_thread_num(); + curbuf = buf + tmp * bufsize; + k = 0; + for(;;) { + #pragma omp critical(sssort_lock) + { + if(0 < (l = j)) { + d0 = c0, d1 = c1; + do { + k = BUCKET_BSTAR(d0, d1); + if(--d1 <= d0) { + d1 = ALPHABET_SIZE - 1; + if(--d0 < 0) { break; } + } + } while(((l - k) <= 1) && (0 < (l = k))); + c0 = d0, c1 = d1, j = k; + } + } + if(l == 0) { break; } + sssort(T, PAb, SA + k, SA + l, + curbuf, bufsize, 2, n, *(SA + k) == (m - 1)); + } + } +#else + buf = SA + m, bufsize = n - (2 * m); + for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) { + for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) { + i = BUCKET_BSTAR(c0, c1); + if(1 < (j - i)) { + sssort(T, PAb, SA + i, SA + j, + buf, bufsize, 2, n, *(SA + i) == (m - 1)); + } + } + } +#endif + + /* Compute ranks of type B* substrings. */ + for(i = m - 1; 0 <= i; --i) { + if(0 <= SA[i]) { + j = i; + do { ISAb[SA[i]] = i; } while((0 <= --i) && (0 <= SA[i])); + SA[i + 1] = i - j; + if(i <= 0) { break; } + } + j = i; + do { ISAb[SA[i] = ~SA[i]] = j; } while(SA[--i] < 0); + ISAb[SA[i]] = j; + } + + /* Construct the inverse suffix array of type B* suffixes using trsort. */ + trsort(ISAb, SA, m, 1); + + /* Set the sorted order of tyoe B* suffixes. */ + for(i = n - 1, j = m, c0 = T[n - 1]; 0 <= i;) { + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) >= c1); --i, c1 = c0) { } + if(0 <= i) { + t = i; + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { } + SA[ISAb[--j]] = ((t == 0) || (1 < (t - i))) ? t : ~t; + } + } + + /* Calculate the index of start/end point of each bucket. */ + BUCKET_B(ALPHABET_SIZE - 1, ALPHABET_SIZE - 1) = n; /* end point */ + for(c0 = ALPHABET_SIZE - 2, k = m - 1; 0 <= c0; --c0) { + i = BUCKET_A(c0 + 1) - 1; + for(c1 = ALPHABET_SIZE - 1; c0 < c1; --c1) { + t = i - BUCKET_B(c0, c1); + BUCKET_B(c0, c1) = i; /* end point */ + + /* Move all type B* suffixes to the correct position. */ + for(i = t, j = BUCKET_BSTAR(c0, c1); + j <= k; + --i, --k) { SA[i] = SA[k]; } + } + BUCKET_BSTAR(c0, c0 + 1) = i - BUCKET_B(c0, c0) + 1; /* start point */ + BUCKET_B(c0, c0) = i; /* end point */ + } + } + + return m; +} + +/* Constructs the suffix array by using the sorted order of type B* suffixes. */ +static +void +construct_SA(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m) { + int *i, *j, *k; + int s; + int c0, c1, c2; + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + *j = ~s; + c0 = T[--s]; + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); + *k-- = s; + } else { + assert(((s == 0) && (T[s] == c1)) || (s < 0)); + *j = ~s; + } + } + } + } + + /* Construct the suffix array by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + *k++ = (T[n - 2] < c2) ? ~(n - 1) : (n - 1); + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + c0 = T[--s]; + if((s == 0) || (T[s - 1] < c0)) { s = ~s; } + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + *k++ = s; + } else { + assert(s < 0); + *i = ~s; + } + } +} + +/* Constructs the burrows-wheeler transformed string directly + by using the sorted order of type B* suffixes. */ +static +int +construct_BWT(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m) { + int *i, *j, *k, *orig; + int s; + int c0, c1, c2; + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + c0 = T[--s]; + *j = ~((int)c0); + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); + *k-- = s; + } else if(s != 0) { + *j = ~s; +#ifndef NDEBUG + } else { + assert(T[s] == c1); +#endif + } + } + } + } + + /* Construct the BWTed string by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + *k++ = (T[n - 2] < c2) ? ~((int)T[n - 2]) : (n - 1); + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n, orig = SA; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + c0 = T[--s]; + *i = c0; + if((0 < s) && (T[s - 1] < c0)) { s = ~((int)T[s - 1]); } + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + *k++ = s; + } else if(s != 0) { + *i = ~s; + } else { + orig = i; + } + } + + return orig - SA; +} + + +/*---------------------------------------------------------------------------*/ + +/*- Function -*/ + +int +divsufsort(const unsigned char *T, int *SA, int n) { + int *bucket_A, *bucket_B; + int m; + int err = 0; + + /* Check arguments. */ + if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; } + else if(n == 0) { return 0; } + else if(n == 1) { SA[0] = 0; return 0; } + else if(n == 2) { m = (T[0] < T[1]); SA[m ^ 1] = 0, SA[m] = 1; return 0; } + + bucket_A = (int *)malloc(BUCKET_A_SIZE * sizeof(int)); + bucket_B = (int *)malloc(BUCKET_B_SIZE * sizeof(int)); + + /* Suffixsort. */ + if((bucket_A != NULL) && (bucket_B != NULL)) { + m = sort_typeBstar(T, SA, bucket_A, bucket_B, n); + construct_SA(T, SA, bucket_A, bucket_B, n, m); + } else { + err = -2; + } + + free(bucket_B); + free(bucket_A); + + return err; +} + +/* Constructs the burrows-wheeler transformed string of a given string. +* @param T[0..n-1] The input string. +* @param U[0..n-1] The output string. (can be T) +* @param A[0..n-1] The temporary array. (can be NULL) +* @param n The length of the given string. +* @return The primary index if no error occurred, -1 or -2 otherwise. +*/ +int +divbwt(const unsigned char *T, unsigned char *U, int *A, int n) { + int *B; + int *bucket_A, *bucket_B; + int m, pidx, i; + + /* Check arguments. */ + if((T == NULL) || (U == NULL) || (n < 0)) { return -1; } + else if(n <= 1) { if(n == 1) { U[0] = T[0]; } return n; } + + if((B = A) == NULL) { B = (int *)malloc((size_t)(n + 1) * sizeof(int)); } + bucket_A = (int *)malloc(BUCKET_A_SIZE * sizeof(int)); + bucket_B = (int *)malloc(BUCKET_B_SIZE * sizeof(int)); + + /* Burrows-Wheeler Transform. */ + if((B != NULL) && (bucket_A != NULL) && (bucket_B != NULL)) { + m = sort_typeBstar(T, B, bucket_A, bucket_B, n); + pidx = construct_BWT(T, B, bucket_A, bucket_B, n, m); + + /* Copy to output string. */ + U[0] = T[n - 1]; + for(i = 0; i < pidx; ++i) { U[i + 1] = (unsigned char)B[i]; } + for(i += 1; i < n; ++i) { U[i] = (unsigned char)B[i]; } + pidx += 1; + } else { + pidx = -2; + } + + free(bucket_B); + free(bucket_A); + if(A == NULL) { free(B); } + + return pidx; +} diff --git a/bioinformaticsProject/hmmer/libdivsufsort/divsufsort.h.in b/bioinformaticsProject/hmmer/libdivsufsort/divsufsort.h.in new file mode 100644 index 0000000..8d8952e --- /dev/null +++ b/bioinformaticsProject/hmmer/libdivsufsort/divsufsort.h.in @@ -0,0 +1,63 @@ +/* + * divsufsort.h for libdivsufsort-lite + * Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + * + * 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. + */ + +#ifndef _DIVSUFSORT_H +#define _DIVSUFSORT_H 1 + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +/*- Prototypes -*/ + +/** + * Constructs the suffix array of a given string. + * @param T[0..n-1] The input string. + * @param SA[0..n-1] The output array of suffixes. + * @param n The length of the given string. + * @return 0 if no error occurred, -1 or -2 otherwise. + */ +int +divsufsort(const unsigned char *T, int *SA, int n); + +/** + * Constructs the burrows-wheeler transformed string of a given string. + * @param T[0..n-1] The input string. + * @param U[0..n-1] The output string. (can be T) + * @param A[0..n-1] The temporary array. (can be NULL) + * @param n The length of the given string. + * @return The primary index if no error occurred, -1 or -2 otherwise. + */ +int +divbwt(const unsigned char *T, unsigned char *U, int *A, int n); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif /* __cplusplus */ + +#endif /* _DIVSUFSORT_H */ diff --git a/bioinformaticsProject/hmmer/makeTAGS.sh b/bioinformaticsProject/hmmer/makeTAGS.sh new file mode 100755 index 0000000..12e90f3 --- /dev/null +++ b/bioinformaticsProject/hmmer/makeTAGS.sh @@ -0,0 +1,42 @@ +#! /bin/sh + +# Default: index both hmmer and easel. To do easel, need `find -L` to +# follow symlinks. +# +# `-x`: only index hmmer. Higher-level ~/src/makeTAGS.sh calls us with +# that option, for indexing entire stack of lab code (easel, hmmer3, +# hmmer4, infernal) without redundancy. +# + +while [[ "$#" -gt 0 ]]; do case $1 in + -x) optx=1;; + *) echo "Unknown option: $1"; exit 1;; +esac; shift; done + +if [ $optx ]; then + opt="" + excl=" -path ./easel -prune -or" + out="-o TAGS.part" +else + opt="-L" + excl="" + out="" +fi + + +etags $out configure.ac +etags -a $out INSTALL +etags -a $out LICENSE + +find $opt . $excl -name "*.c" -print -or -name "*.h" -print | xargs etags -a $out +find $opt . $excl -name "*.pl" -print -or -name "*.pm" -print | xargs etags -a $out +find $opt . $excl -name "*.py" -print | xargs etags -a $out +find $opt . $excl -name "*.sh" -print | xargs etags -a $out +find $opt . $excl -name "*.md" -print | xargs etags -a $out +find $opt . $excl -name "*.tex" -print | xargs etags -a $out +find $opt . $excl -name "*.man" -print | xargs etags -a $out +find $opt . $excl -name "*.in" -print | xargs etags -a $out +find $opt . $excl -name "*.sqc" -print | xargs etags -a $out +find $opt . $excl -name "*README" -print | xargs etags -a $out + + diff --git a/bioinformaticsProject/hmmer/profmark/00README b/bioinformaticsProject/hmmer/profmark/00README new file mode 100644 index 0000000..4a922ca --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/00README @@ -0,0 +1,436 @@ +Benchmarking methodology used internally in HMMER testing: the +"profmark" benchmark. + + +Table of contents: + 1. Overview of files in the profmark directory. + 2. create-profmark: creating a new benchmark dataset + 3. format of {.tbl,.msa,.fa,.pos,.neg} files in a benchmark dataset + 4. finding summary statistics of a benchmark dataset + 5. pmark-master.pl: running a pmark benchmark, in parallel using SGE qsub + 6. x-: benchmark driver scripts + 7. format of benchmark results output files + 8. rocplot: displaying results as ROC graphs + + +================================================================ += 1. Overview of files +================================================================ + +create-profmark.c : Creates a new benchmark dataset. +pmark-master.pl : Master script that parallelizes the running of a benchmark. + +x-hmmsearch : H3 hmmsearch benchmark (subsidiary to pmark-master.pl) +x-phmmer-fps : phmmer family-pairwise-search benchmark +x-phmmer-consensus : phmmer consensus query benchmark + +rocplot.c : Constructs ROC plot of results, with bootstrapped + confidence intervals. + +rocplot.pl : quick and dirty ROC plot, no bootstrapping. + + + + +================================================================ += 2. create-profmark: creating a new benchmark dataset +================================================================ + +create-profmark is compiled from ANSI C source create-profmark.c; see +Makefile.in for build. + +Usage: ./create-profmark +Example: ./create-profmark pmark Pfam-A.seed uniprot-sprot.fa + +Creates five output files: + .tbl - table summarizing the benchmark + .msa - MSA queries, stockholm format + .fa - sequence targets, fasta format + .pos - table summarizing positive test set + .neg - table summarizing negative test set +The format of these files is described in the following section. + + +Briefly: each input alignment in the is split +into a query alignment and a nonredundant set of test domains by two +single-linkage clustering steps, such that no test domain has >= 25% +identity to any query sequence and no test domain is >= 50% identical +to any other test domain. Positive test sequences are constructed by +embedding two test domains in a larger sequence, with nonhomologous +segments generated by selecting a random segment of the and shuffling it. Negative test sequences are +constructed by sampling a positive test sequence at random (for its +segment length structure) and replacing all its segments with +nonhomologous shuffled segments. + +In more detail, including options that change the default benchmark +construction protocol, the procedure is as follows: + + : for each MSA in : + + : Filter out sequence "fragments". + Defined as sequences < x*average length (in residues); default + x=0.70; controlled by -F option. + + : Try to split into a training set and test set such that no test + sequence has >= x% identity to any training sequence. Uses + efficient single-linkage-clustering at x threshold; defines + largest cluster as training set, all other clusters as test + set. Pairwise % identity as defined by on the + given alignment. Default x=25% identity; controlled by -1 + option. + + : For the remaining test sequences, remove redundancy by performing + another single linkage clustering by percent identity, at another + threshold x. Default x=50%; controlled by -2 option. For each + cluster, one test sequence is chosen at random as a + representative. + + : If less than two test sequences have been identified that meet + these criteria, fail and move on to the next MSA. (For instance, + if all the sequences in the MSA are highly identical, don't + bother using this MSA for a benchmark; it's too easy.) + + : Permute the order of the training set alignment. (This allows + single-sequence-query tests to start on a random but reproducible + single query sequence, simply by taking the first seq in the + alignment.) Other than this (row) permutation, the training set + is preserved in its original alignment. + + : The training set alignment is written to .msa. + + : The test set is now considered to be "test domains", and we + construct positive test sequences by embedding these domains + in nonhomologous sequence constructed from sequences in + the as follows: + + : choose two test domains (by default; --single option makes it one) + + : select a sequence length from at random + that is sufficiently long to embed both test domains. + + : embed the domain(s) at random positions in that sequence length + + : construct the non-domain regions of the test sequence with + "nonhomologous" sequence segments. There are several ways to + construct "nonhomologous" sequence segments, all of which + (except --iid) start with selecting a random subsequence of + appropriate length from the : + + : shuffle the selected subsequence. (default; --mono) + : shuffle preserving diresidue composition. (--di) + : synthesize with same monoresidue comp (--markov0) + : synthesize with same diresidue comp (--markov1) + : reverse C-to-N direction (--reverse) + : synthesize iid sequence (--iid) + + : The embedded-domain test sequences are written in FASTA format + to the .fa file. Details of how they were + constructed (where all the sequence segments came from) are + written to the .pos file. + + : Finally a set of negative test sequences is constructed. + Default N=200000; controlled by the -N option. + For each negative: + + : choose one of the positive test seqs at random; we will use + the same set of segment lengths to construct a negative. + + : for every segment, insert a nonhomologous sequence generated + by the same method we used for nonhomologous segments in + the positive sequences. + + : The test sequences are appended in FASTA format to the to the + .fa file. Details of how they were constructed + (where all the sequence segments came from) are written to the + .neg file. + + +================================================================ += 3. Format of {.tbl,.msa,.fa,.pos,.neg} files in a benchmark dataset +================================================================ + +The .tbl file is used by pmark-master.pl as a list of MSA queries in +the benchmark. Each line has eight whitespace-delimited fields: + +For example: + 2OG-FeII_Oxy 27% 167 141 0 113 16 8 + 3-alpha 24% 48 10 0 6 4 2 + 3_5_exonuc 24% 219 28 0 21 5 2 + 4HBT 20% 99 141 0 97 37 18 + +In more detail, these eight fields are: + : name of the MSA query, as given in original + + + : average % id in the training set alignment, as + calculated by esl_dst_XAverageId(). + + : length of the training set alignment in columns. + + : number of sequences in original alignment after + fragments were removed. + + : number of sequences that were excluded from the + original alignment because they appeared to be + fragments. (+ = number of seqs + in original MSA) + + : number of sequences in the training set alignment + saved to .msa + + : number of sequences that passed criteria for use + as a possible embedded domain in the test + sequences. (+ <= ) + + : number of embedded-domain test sequences saved to + .fa + + +The .msa file is a Stockholm file containing all the query alignments. + +The .fa file is a FASTA file containing the positive and negative test +sequences. + +The .pos file is a log of where all the segments in the positive test +sequences came from. + + [ ]... + + + : name of the test sequence. These are constructed + as /<#>/-/-, where <#> + ranges from 1 to the number of test sequences, and + - and - are the coordinates in the + test sequence that correspond to homologous + domains. This naming structure is exploited by + benchmark scripts to know that the sequence is a + positive, and to know exactly where the bounds of + homologous domains are. + + In a single-domain embedded test (--single), the + names are /<#>/-. + + : length of the test sequence in residues + : length of the first nonhomologous segment + : length of the first homologous test domain + : length of the 2nd nonhomologous segment + : length of the second homologous test domain (or 0) + : length of the 3rd nonhomologous segment (or 0) + +then for each segment (5 for the default two-domain embedding; 3 for +--single): + + : name of the source sequence for the segment; + in for nonhomologous + segments, and in the original MSA for homologous + segments. + : start coord in the source + : end coord in the source + + +The .neg file is a log of where all the segments in the negative test +sequences came from. It has essentially the same format as the .pos +file, except that negative sequences are all named <#> +(example: "decoy2012"), and the benchmark scripts rely on this to +identify negative test sequences. + + + +================================================================ += 4. Finding summary statistics of a benchmark dataset +================================================================ + +Number of query alignments: wc -l .tbl +Number of positives: wc -l .pos +Number of negatives: wc -l .neg +Test sequence length dist: esl-seqstat .fa +# of training seqs: avg -f6 .tbl +# of test seqs: avg -f8 .tbl + +================================================================ += 5. pmark-master.pl: running a pmark benchmark, in parallel using SGE qsub +================================================================ + +Usage: ./pmark-master.pl +Example: ./pmark-master.pl ~/releases/hmmer-release/build-icc ~/releases/hmmer-release h3-results 100 pmark ./x-hmmsearch + +pmark-master.pl is a wrapper that coarse-grain parallelizes a +benchmark run for our SGE queue. + +This would typically be run in a notebook directory, which would have +symlinks to the pmark-master.pl script and the driver x-* scripts, and +also would have the .{tbl,msa,fa,pos,neg} files +either present or symlinked. + +For each benchmark you run that day, you'd have a different +; for example, you might run a "h3" and "h2" +benchmark. The name should be short because it is used to +construct other names, including the SGE job name. + +The pmark-master.pl creates the , splits the +.tbl file into separate tbl files called +/tbl., and issues "qsub" commands to run the on each of these subtables. + +The jobs in SGE are named .. + +The is passed 7 arguments: + +where is /tbl. (the list of queries this +parallelized instance of the benchmark driver is supposed to process), +and is a file named /tbl.out. + +When all the driver script instances are done, there will be +output files named /tbl.out. These files can be analysed +and turned into ROC graphs using rocplot and/or rocplot.pl. + +================================================================ += 6. x-: benchmark driver scripts +================================================================ + +A driver script gets the 7 arguments as described above: + + : path to top-level build directory of the + program(s) to be tested, where executables + can be found. When testing non-HMMER + programs, this is the installation directory + where those executables are found. + + : path to top-level src directory of the HMMER + program(s) to be tested, where data and + scripts may be found. When testing non-HMMER + programs, this is nonetheless still a HMMER + top-level src directory, where parser scripts + and data may be found. (For example, BLAST + output parsers: our demotic perl modules.) + + : name of the directory that temp files can + be placed in, unique to the instantiation + of pmark-master.pl that called us, so long + as we use names that don't clash with the + other -1 instances of driver scripts; + for example, we can safely create tmp files + that start with . + + : name of the tbl. file in that + lists the query alignments this instantiation + of the driver is supposed to work on. + + : the benchmark's MSA file; query alignments named + in will be esl-alifetch'ed from here. + + : the benchmark's positive and negative sequences; + this will be used as the target database for + searches the driver runs. + + As a special case (i.e. hack), iterative + search benchmarks may look for related + files, such as , a + sequence database to iterate on first before + running on . + + : a whitespace-delimited tabular output file, + one line per target sequence, described below. + +Using and allows us to easily construct +regression tests of different HMMER versions and/or configurations. + +Why the BEGIN {} clause: you'll see a BEGIN {} clause wrapping cmdline +argument parsing on many of the x- scripts. That's a trick that goes +with "use lib ${top_srcdir}/easel/demotic", where we need the demotic +library included, but we don't know where it is until we get +${top_srcdir} from the cmdline, so we defer the 'use lib'. + +Error handling: why don't these scripts call die() on errors? That's +deliberate. If a step fails, the script prints an error message and +skips to the next query, without cleaning up any tmp files from the +failed query. Thus we continue collecting data from as much of the +.tbl file of queries as possible, while saving tmp files that we'll +need for debugging later. If you have the x- script fail w/ a fatal +error, it will stop in the middle of a tbl file, which unnecessarily +compromises the completeness of a benchmark (say, if one piddly query +out of 10000 fails, there's no reason to bring down the whole +benchmark). + + +================================================================ += 7. format of benchmark results output files +================================================================ + +The output in files /tbl.out have four fields: + +for example: + 6e-41 144.1 UCH/6548/39-342/368-893 UCH + 1.5e-34 123.1 UCH/6546/168-490/816-1424 UCH + 0.17 14.4 zf-UBP/6823/3-74/209-283 UCH + 1.4 11.4 decoy31607 UCH + +These can be concatenated and sorted by E-value: + cat *.out | sort -g + +Analysis scripts can easily tell the difference between a true, +false, and "ignored" comparison: + + - if the target is named "decoy", it's a negative (nonhomologous) + comparison. + + - if the name of the query matches the first part of the name of the + target, it's a true (homologous) comparison. + + - if the name of the query doesn't match the first part of the + target name, we will ignore the comparison. This is a match + between a positive sequence and a query that doesn't correspond to + the positive test domains; it might be a false hit, but it also + might be that the two alignments (the query and the one that + generated the test sequence) are homologous. + +Thus it's easy to keep track (even during a run) of the top-scoring +false positive: + cat *.out | sort -g | grep decoy | head + +and using the rocplot.pl script, it's easy to see get a glimpse of +how the ROC plot is turning out: + + cat *.out | sort -g | ../rocplot.pl | head + + +================================================================ += 8. rocplot: displaying results as ROC graphs +================================================================ + +rocplot is compiled from ANSI C source rocplot.c; see Makefile.in for build. + +Usage: ./rocplot +Example: cat *.out | sort -g | ../rocplot pmark - > results.xy + +The output is an XMGRACE xydydy file, plotting fractional coverage of +the positives (on the Y-axis; range 0..1) versus errors per query (on +the X-axis; ranging from 1/(# of models) to 10.0 by default; see --min +and --max options). For each point, a 95% confidence interval is +denoted by the dydy points, as determined by "Bayesian" bootstrap +resampling of the query alignments. + +Output from rocplot over a set of different benchmarks are usually +concatenated into one XMGRACE input .dat file, and worked up into +a display following a procedure akin to: + + + cat bench1/*.out | sort -g | ./rocplot pmark - > bench1.dat + cat bench2/*.out | sort -g | ./rocplot pmark - > bench2.dat + + cat bench1.dat > todays.dat + cat bench2.dat >> todays.dat + + \cp todays.dat todays.agr + xmgrace -settype xydydy -param ~/src/hmmer/profmark/pmark.param todays.agr + +then manually making the lines pretty colors as in + All: symbols circle 56 opaque white fill no riser + set 0 bench1 orange + set 1 bench2 black + +and saving (as .agr) and exporting (as .eps): + Figure: todays.{dat,agr,eps} + + diff --git a/bioinformaticsProject/hmmer/profmark/Makefile.in b/bioinformaticsProject/hmmer/profmark/Makefile.in new file mode 100644 index 0000000..b608d9f --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/Makefile.in @@ -0,0 +1,64 @@ +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ + +CC = @CC@ +CFLAGS = @CFLAGS@ +SSE_CFLAGS = @SSE_CFLAGS@ +VMX_CFLAGS = @VMX_CFLAGS@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +DEFS = @DEFS@ +LIBS = -lhmmer -leasel @LIBS@ @LIBGSL@ @PTHREAD_LIBS@ -lm +IMPLDIR = impl_@IMPL_CHOICE@ + +ESLDIR = @HMMER_ESLDIR@ +ESLINC = -I../${ESLDIR} -I${top_srcdir}/easel +SRCINC = -I../src -I${top_srcdir}/src + +PROGS = create-profmark\ + rocplot + +PROGOBJS =\ + create-profmark.o\ + rocplot.o + +# beautification magic stolen from git +QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c +QUIET_SUBDIR1 = +ifndef V + QUIET_CC = @echo ' ' CC $@; + QUIET_GEN = @echo ' ' GEN $@; + QUIET_AR = @echo ' ' AR $@; + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ; echo ' ' SUBDIR $$subdir; \ + ${MAKE} -s -C $$subdir +endif + +.PHONY: all dev distclean clean + +all: ${PROGS} +dev: ${PROGS} + +${PROGS}: % : %.o ../${ESLDIR}/libeasel.a ../src/libhmmer.a + ${QUIET_GEN}${CC} ${CPPFLAGS} ${CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${PTHREAD_CFLAGS} ${DEFS} ${LDFLAGS} -L../${ESLDIR} -L../src -o $@ $@.o ${LIBS} + +${PROGOBJS}: ../src/hmmer.h ../src/p7_config.h + +.c.o: + ${QUIET_CC}${CC} ${ESLINC} ${SRCINC} ${CPPFLAGS} ${CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${PTHREAD_CFLAGS} ${DEFS} -o $@ -c $< + +clean: + -rm -f *.o *~ ${PROGS} + -rm -f *.gcno + for prog in ${PROGS}; do \ + if test -d $$prog.dSYM; then rm -rf $$prog.dSYM; fi ;\ + done +ifndef V + @echo ' ' CLEAN profmark +endif + +distclean: clean + -rm -f Makefile + diff --git a/bioinformaticsProject/hmmer/profmark/create-profmark.c b/bioinformaticsProject/hmmer/profmark/create-profmark.c new file mode 100644 index 0000000..cb92adb --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/create-profmark.c @@ -0,0 +1,750 @@ +/* Construct a training alignment/test sequences set from an MSA. + * + * Usage: + ./create-profmark + For example: + ./create-profmark pmark /misc/data0/databases/Pfam/Pfam-A.seed /misc/data0/databases/uniprot-7.0/uniprot_sprot.fasta + * + * This generates five output files: + * .tbl - table summarizing the benchmark + * .msa - MSA queries, stockholm format + * .fa - sequence targets, fasta format + * .pos - table summarizing positive test set + * .neg - table summarizing negative test set + * + */ + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_distance.h" +#include "esl_getopts.h" +#include "esl_keyhash.h" +#include "esl_msa.h" +#include "esl_msacluster.h" +#include "esl_msashuffle.h" +#include "esl_msafile.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stack.h" +#include "esl_vectorops.h" +#include "esl_composition.h" + +static char banner[] = "construct a benchmark profile training/test set"; +static char usage[] = "[options] \n"; + +#define SHUF_OPTS "--mono,--di,--markov0,--markov1,--reverse" /* toggle group, seq shuffling options */ + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgroup */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "help; show brief info on version and usage", 1 }, + { "-1", eslARG_REAL, "0.25", NULL,"0 contains protein alignments", 3 }, + { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL,"--amino,--rna", " contains DNA alignments", 3 }, + { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL,"--amino,--dna", " contains RNA alignments", 3 }, + + /* Other options */ + { "--single", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "embed one, not two domains in each positive", 4 }, + { "--minDPL", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "minimum segment length for DP shuffling", 4 }, + { "--seed", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "specify random number generator seed", 4 }, + { "--pid", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "create optional .pid file, %id's for all train/test domain pairs", 4 }, + { 0,0,0,0,0,0,0,0,0,0 }, +}; + +struct testseq_s { + int L; /* total length */ + int L1; /* length of first spacer */ + int d1n; /* length of first domain */ + int L2; /* length of second spacer */ + int d2n; /* length of second domain */ + int L3; /* length of third spacer */ +}; + +struct cfg_s { + ESL_ALPHABET *abc; /* biological alphabet */ + ESL_RANDOMNESS *r; /* random number generator */ + double fragfrac; /* seqs less than x*avg length are removed from alignment */ + double idthresh1; /* fractional identity threshold for train/test split */ + double idthresh2; /* fractional identity threshold for selecting test seqs */ + int max_ntrain; /* maximum number of test domains per input alignment; 0=unlimited */ + int max_ntest; /* maximum number of test domains per input alignment; 0=unlimited */ + + FILE *out_msafp; /* output stream: training MSAs */ + FILE *out_seqfp; /* output stream: test sequences */ + FILE *possummfp; /* output stream: summary table of the positive test set */ + FILE *negsummfp; /* output stream: summary table of the negative test set */ + FILE *tblfp; /* output stream: summary table of the training set alignments */ + FILE *pidfp; /* optional out stream: table of pairwise %id for all train x test domain pairs */ + + ESL_SQFILE *dbfp; /* source database for negatives */ + int db_nseq; /* # of sequences in the db */ + int db_maxL; /* maximum seq length in db_lens */ + + struct testseq_s *test_lens; /* array of length info about positive test seqs */ + int ntest; /* number of positive test seqs */ + + double fq[20]; /* background frequency distribution, if we're making iid negatives */ +}; + + + +static int process_dbfile (struct cfg_s *cfg, char *dbfile, int dbfmt); +static int remove_fragments (struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_filteredmsa, int *ret_nfrags); +static int separate_sets (struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_trainmsa, ESL_STACK **ret_teststack); +static int synthesize_positives(ESL_GETOPTS *go, struct cfg_s *cfg, char *testname, ESL_STACK *teststack, int *ret_ntest); +static int synthesize_negatives(ESL_GETOPTS *go, struct cfg_s *cfg, int nneg); +static int set_random_segment (ESL_GETOPTS *go, struct cfg_s *cfg, FILE *logfp, ESL_DSQ *dsq, int L); +static void msa_select_topn(ESL_MSA **msaptr, int n); +static void pstack_select_topn(ESL_STACK **stackptr, int n); +static void write_pids(FILE *pidfp, ESL_MSA *origmsa, ESL_MSA *trainmsa, ESL_STACK *teststack); + +static void +cmdline_failure(char *argv0, char *format, ...) +{ + va_list argp; + va_start(argp, format); + vfprintf(stderr, format, argp); + va_end(argp); + esl_usage(stdout, argv0, usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv0); + exit(1); +} + +static void +cmdline_help(char *argv0, ESL_GETOPTS *go) +{ + esl_banner(stdout, argv0, banner); + esl_usage (stdout, argv0, usage); + puts("\n where general options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + puts("\n options controlling segment randomization method:"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + puts("\n options declaring a particular alphabet:"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 80); + puts("\n other options:"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + exit(0); +} + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; /* command line configuration */ + struct cfg_s cfg; /* application configuration */ + char *basename= NULL; /* base of the output file names */ + char *alifile = NULL; /* alignment file name */ + char *dbfile = NULL; /* name of seq db file */ + char outfile[256]; /* name of an output file */ + int alifmt; /* format code for alifile */ + int dbfmt; /* format code for dbfile */ + ESL_MSAFILE *afp = NULL; /* open alignment file */ + ESL_MSA *origmsa = NULL; /* one multiple sequence alignment */ + ESL_MSA *msa = NULL; /* MSA after frags are removed */ + ESL_MSA *trainmsa= NULL; /* training set, aligned */ + ESL_STACK *teststack=NULL; /* test set: stack of ESL_SQ ptrs */ + int status; /* easel return code */ + int nfrags; /* # of fragments removed */ + int ntestdom; /* # of test domains */ + int ntest; /* # of test sequences created */ + int nali; /* number of alignments read */ + double avgid; + + + /* Parse command line */ + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) cmdline_failure(argv[0], "Failed to parse command line: %s\n", go->errbuf); + if (esl_opt_VerifyConfig(go) != eslOK) cmdline_failure(argv[0], "Error in app configuration: %s\n", go->errbuf); + if (esl_opt_GetBoolean(go, "-h")) cmdline_help(argv[0], go); + if (esl_opt_ArgNumber(go) != 3) cmdline_failure(argv[0], "Incorrect number of command line arguments\n"); + basename = esl_opt_GetArg(go, 1); + alifile = esl_opt_GetArg(go, 2); + dbfile = esl_opt_GetArg(go, 3); + alifmt = eslMSAFILE_STOCKHOLM; + dbfmt = eslSQFILE_FASTA; + + /* Set up the configuration structure shared amongst functions here */ + if (esl_opt_IsDefault(go, "--seed")) cfg.r = esl_randomness_CreateTimeseeded(); + else cfg.r = esl_randomness_Create(esl_opt_GetInteger(go, "--seed")); + cfg.abc = NULL; /* until we open the MSA file, below */ + cfg.fragfrac = esl_opt_GetReal(go, "-F"); + cfg.idthresh1 = esl_opt_GetReal(go, "-1"); + cfg.idthresh2 = esl_opt_GetReal(go, "-2"); + cfg.test_lens = NULL; + cfg.ntest = 0; + cfg.max_ntest = (esl_opt_IsOn(go, "--maxtest") ? esl_opt_GetInteger(go, "--maxtest") : 0); + cfg.max_ntrain = (esl_opt_IsOn(go, "--maxtrain") ? esl_opt_GetInteger(go, "--maxtrain") : 0); + + /* Open the output files */ + if (snprintf(outfile, 256, "%s.msa", basename) >= 256) esl_fatal("Failed to construct output MSA file name"); + if ((cfg.out_msafp = fopen(outfile, "w")) == NULL) esl_fatal("Failed to open MSA output file %s\n", outfile); + if (snprintf(outfile, 256, "%s.fa", basename) >= 256) esl_fatal("Failed to construct output FASTA file name"); + if ((cfg.out_seqfp = fopen(outfile, "w")) == NULL) esl_fatal("Failed to open FASTA output file %s\n", outfile); + if (snprintf(outfile, 256, "%s.pos", basename) >= 256) esl_fatal("Failed to construct pos test set summary file name"); + if ((cfg.possummfp = fopen(outfile, "w")) == NULL) esl_fatal("Failed to open pos test set summary file %s\n", outfile); + if (snprintf(outfile, 256, "%s.neg", basename) >= 256) esl_fatal("Failed to construct neg test set summary file name"); + if ((cfg.negsummfp = fopen(outfile, "w")) == NULL) esl_fatal("Failed to open neg test set summary file %s\n", outfile); + if (snprintf(outfile, 256, "%s.tbl", basename) >= 256) esl_fatal("Failed to construct benchmark table file name"); + if ((cfg.tblfp = fopen(outfile, "w")) == NULL) esl_fatal("Failed to open benchmark table file %s\n", outfile); + if (esl_opt_GetBoolean(go, "--pid")) { + if (snprintf(outfile, 256, "%s.pid", basename) >= 256) esl_fatal("Failed to construct %%id table file name"); + if ((cfg.pidfp = fopen(outfile, "w")) == NULL) esl_fatal("Failed to open %%id table file %s\n", outfile); + } else cfg.pidfp = NULL; + + /* Open the MSA file, digital mode; determine alphabet */ + if (esl_opt_GetBoolean(go, "--amino")) cfg.abc = esl_alphabet_Create(eslAMINO); + else if (esl_opt_GetBoolean(go, "--dna")) cfg.abc = esl_alphabet_Create(eslDNA); + else if (esl_opt_GetBoolean(go, "--rna")) cfg.abc = esl_alphabet_Create(eslRNA); + + status = esl_msafile_Open(&(cfg.abc), alifile, NULL, alifmt, NULL, &afp); + if (status != eslOK) esl_msafile_OpenFailure(afp, status); + + if (cfg.abc->type == eslAMINO) esl_composition_SW34(cfg.fq); + else esl_vec_DSet(cfg.fq, cfg.abc->K, 1.0 / (double) cfg.abc->K); + + /* Open and process the dbfile; make sure it's in the same alphabet */ + process_dbfile(&cfg, dbfile, dbfmt); + + /* Read and process MSAs one at a time */ + nali = 0; + while ((status = esl_msafile_Read(afp, &origmsa)) != eslEOF) + { + if (status != eslOK) esl_msafile_ReadFailure(afp, status); + esl_msa_ConvertDegen2X(origmsa); + esl_msa_Hash(origmsa); + + remove_fragments(&cfg, origmsa, &msa, &nfrags); + separate_sets (&cfg, msa, &trainmsa, &teststack); + + if ( esl_stack_ObjectCount(teststack) >= 2) + { + /* randomize test domain order, and apply size limit if any */ + esl_stack_Shuffle(cfg.r, teststack); + if (cfg.max_ntest) pstack_select_topn(&teststack, cfg.max_ntest); + ntestdom = esl_stack_ObjectCount(teststack); + + /* randomize training set alignment order, and apply size limit if any */ + esl_msashuffle_PermuteSequenceOrder(cfg.r, trainmsa); + if (cfg.max_ntrain) msa_select_topn(&trainmsa, cfg.max_ntrain); + esl_msa_MinimGaps(trainmsa, NULL, NULL, FALSE); + + if (esl_opt_GetBoolean(go, "--pid")) write_pids(cfg.pidfp, origmsa, trainmsa, teststack); + + synthesize_positives(go, &cfg, msa->name, teststack, &ntest); + + esl_msafile_Write(cfg.out_msafp, trainmsa, eslMSAFILE_STOCKHOLM); + + esl_dst_XAverageId(cfg.abc, trainmsa->ax, trainmsa->nseq, 10000, &avgid); /* 10000 is max_comparisons, before sampling kicks in */ + fprintf(cfg.tblfp, "%-20s %3.0f%% %6d %6d %6d %6d %6d %6d\n", msa->name, 100.*avgid, (int) trainmsa->alen, msa->nseq, nfrags, trainmsa->nseq, ntestdom, ntest); + nali++; + } + + esl_msa_Destroy(trainmsa); + esl_msa_Destroy(origmsa); + esl_msa_Destroy(msa); + } + if (nali == 0) esl_fatal("No alignments found in file %s\n", alifile); + + synthesize_negatives(go, &cfg, esl_opt_GetInteger(go, "-N")); + + fclose(cfg.out_msafp); + fclose(cfg.out_seqfp); + fclose(cfg.possummfp); + fclose(cfg.negsummfp); + fclose(cfg.tblfp); + if (cfg.pidfp) fclose(cfg.pidfp); + esl_randomness_Destroy(cfg.r); + esl_alphabet_Destroy(cfg.abc); + esl_msafile_Close(afp); + esl_getopts_Destroy(go); + return 0; +} + + +/* Open the source sequence database for negative subseqs; + * upon return, cfg->dbfp is open (digital, SSI indexed); + * cfg->db_maxL and cfg->db_nseq are set. + */ +static int +process_dbfile(struct cfg_s *cfg, char *dbfile, int dbfmt) +{ + ESL_SQ *sq = esl_sq_CreateDigital(cfg->abc); + int status; + + /* Open the sequence file in digital mode */ + status = esl_sqfile_OpenDigital(cfg->abc, dbfile, dbfmt, NULL, &(cfg->dbfp)); + if (status == eslENOTFOUND) esl_fatal("No such file %s", dbfile); + else if (status == eslEFORMAT) esl_fatal("Format of seqfile %s unrecognized.", dbfile); + else if (status == eslEINVAL) esl_fatal("Can't autodetect stdin or .gz."); + else if (status != eslOK) esl_fatal("Open failed, code %d.", status); + + /* Read info on each sequence */ + cfg->db_nseq = 0; + cfg->db_maxL = 0; + while ((status = esl_sqio_ReadInfo(cfg->dbfp, sq)) == eslOK) { + cfg->db_maxL = ESL_MAX(sq->L, cfg->db_maxL); + cfg->db_nseq++; + esl_sq_Reuse(sq); + } + if (status != eslEOF) esl_fatal("Something went wrong with reading the seq db"); + + /* Open SSI index */ + if (esl_sqfile_OpenSSI(cfg->dbfp, NULL) != eslOK) esl_fatal("Failed to open SSI index file"); + if (cfg->dbfp->data.ascii.ssi->nprimary != cfg->db_nseq) esl_fatal("oops, nprimary != nseq"); + + esl_sq_Destroy(sq); + return eslOK; +} + + +/* Step 1. Label all sequence fragments < fragfrac of average raw length */ +static int +remove_fragments(struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_filteredmsa, int *ret_nfrags) +{ + int *useme = NULL; + double len = 0.0; + int i; + int status; + + for (i = 0; i < msa->nseq; i++) + len += esl_abc_dsqrlen(msa->abc, msa->ax[i]); + len *= cfg->fragfrac / (double) msa->nseq; + + ESL_ALLOC(useme, sizeof(int) * msa->nseq); + for (i = 0; i < msa->nseq; i++) + useme[i] = (esl_abc_dsqrlen(msa->abc, msa->ax[i]) < len) ? 0 : 1; + + if ((status = esl_msa_SequenceSubset(msa, useme, ret_filteredmsa)) != eslOK) goto ERROR; + *ret_nfrags = msa->nseq - esl_vec_ISum(useme, msa->nseq); + + free(useme); + return eslOK; + + ERROR: + if (useme != NULL) free(useme); + *ret_filteredmsa = NULL; + return status; +} + +/* Step 2. Extract the training set and test set. + */ +static int +separate_sets(struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_trainmsa, ESL_STACK **ret_teststack) +{ + ESL_MSA *trainmsa = NULL; + ESL_MSA *test_msa = NULL; + ESL_STACK *teststack = NULL; + ESL_SQ *sq = NULL; + int *assignment = NULL; + int *nin = NULL; + int *useme = NULL; + int nc = 0; + int c; + int ctrain; /* index of the cluster that becomes the training alignment */ + int nskip; + int i; + int status; + + if ((teststack = esl_stack_PCreate()) == NULL) { status = eslEMEM; goto ERROR; } + ESL_ALLOC(useme, sizeof(int) * msa->nseq); + + if ((status = esl_msacluster_SingleLinkage(msa, cfg->idthresh1, &assignment, &nin, &nc)) != eslOK) goto ERROR; + ctrain = esl_vec_IArgMax(nin, nc); + //ntrain = esl_vec_IMax(nin, nc); // We don't need for anything, but this is how you'd get it. + + for (i = 0; i < msa->nseq; i++) useme[i] = (assignment[i] == ctrain) ? 1 : 0; + if ((status = esl_msa_SequenceSubset(msa, useme, &trainmsa)) != eslOK) goto ERROR; + + /* If all the seqs went into the training msa, none are left for testing; we're done here */ + if (trainmsa->nseq == msa->nseq) { + free(useme); + free(assignment); + free(nin); + *ret_trainmsa = trainmsa; + *ret_teststack = teststack; + return eslOK; + } + + /* Put all the other sequences into an MSA of their own; from these, we'll + * choose test sequences. + */ + for (i = 0; i < msa->nseq; i++) useme[i] = (assignment[i] != ctrain) ? 1 : 0; + if ((status = esl_msa_SequenceSubset(msa, useme, &test_msa)) != eslOK) goto ERROR; + + /* Cluster those test sequences. */ + free(nin); nin = NULL; + free(assignment); assignment = NULL; + if ((status = esl_msacluster_SingleLinkage(test_msa, cfg->idthresh2, &assignment, &nin, &nc)) != eslOK) goto ERROR; + for (c = 0; c < nc; c++) + { + nskip = esl_rnd_Roll(cfg->r, nin[c]); /* pick a random seq in this cluster to be the test. */ + for (i=0; i < test_msa->nseq; i++) + if (assignment[i] == c) { + if (nskip == 0) { + esl_sq_FetchFromMSA(test_msa, i, &sq); + esl_stack_PPush(teststack, (void *) sq); + break; + } else nskip--; + } + } + + esl_msa_Destroy(test_msa); + free(useme); + free(nin); + free(assignment); + + *ret_trainmsa = trainmsa; + *ret_teststack = teststack; + return eslOK; + + ERROR: + if (useme != NULL) free(useme); + if (assignment != NULL) free(assignment); + if (nin != NULL) free(nin); + esl_msa_Destroy(trainmsa); + esl_msa_Destroy(test_msa); + while (esl_stack_PPop(teststack, (void **) &sq) == eslOK) esl_sq_Destroy(sq); + esl_stack_Destroy(teststack); + *ret_trainmsa = NULL; + *ret_teststack = NULL; + return status; +} + + +/* Each test sequence will contain one or two domains, depending on whether --single is set. + */ +static int +synthesize_positives(ESL_GETOPTS *go, struct cfg_s *cfg, char *testname, ESL_STACK *teststack, int *ret_ntest) +{ + ESL_SQ *domain1, *domain2; + ESL_SQ *sq; + void *p; + int64_t L; /* total length of synthetic test seq */ + int d1n, d2n; /* lengths of two domains */ + int L1,L2,L3; /* lengths of three random regions */ + int i,j; + int ntest = 0; + int ndomains = ( (esl_opt_GetBoolean(go, "--single") == TRUE) ? 1 : 2); + int status; + + while (esl_stack_ObjectCount(teststack) >= ndomains) + { + ESL_RALLOC(cfg->test_lens, p, (cfg->ntest+1) * sizeof(struct testseq_s)); + + /* Pop our one or two test domains off the stack */ + esl_stack_PPop(teststack, &p); + domain1 = p; + d1n = domain1->n; + + if (ndomains == 2) + { + esl_stack_PPop(teststack, &p); + domain2 = p; + d2n = domain2->n; + } + else + { + domain2 = NULL; + d2n = 0; + } + + /* Select a random total sequence length */ + if (d1n+d2n > cfg->db_maxL) esl_fatal("can't construct test seq; no db seq >= %d residues\n", d1n+d2n); + do { + if (esl_ssi_FindNumber(cfg->dbfp->data.ascii.ssi, esl_rnd_Roll(cfg->r, cfg->db_nseq), NULL, NULL, NULL, &L, NULL) != eslOK) + esl_fatal("failed to look up a random seq"); + } while (L < d1n+d2n); + + /* Now figure out the embedding */ + if (ndomains == 2) + { + /* Select random lengths of three flanking domains; + * Imagine picking two "insert after" points i,j in sequence 1..L', for + * L' = L-d1n-d2n (the total length of nonhomologous test seq) + */ + do { + i = esl_rnd_Roll(cfg->r, L - d1n - d2n + 1 ); /* i = 0..L' */ + j = esl_rnd_Roll(cfg->r, L - d1n - d2n + 1 ); /* j = 0..L' */ + } while (i > j); + + /* now 1 .. i = random region 1 (if i==0, there's none); + * i+1 .. i+d1n = domain 1 + * i+d1n+1 .. j+d1n = random region 2 (if i==j, there's none); + * j+d1n+1 .. j+d1n+d2n = domain 2 + * j+d1n+d2n+1 .. L = random region 3 (if j == L-d1n-d2n, there's none); + */ + L1 = i; + L2 = j-i; + L3 = L - d1n - d2n - j; + } + else + { /* embedding one domain */ + i = esl_rnd_Roll(cfg->r, L - d1n + 1 ); /* i = 0..L' */ + /* now 1 .. i = random region 1 (if i==0, there's none); + * i+1 .. i+d1n = domain 1 + * i+d1n+1 .. L = random region 2 (if i==j, there's none); + */ + L1 = i; + L2 = L - d1n - L1; + L3 = 0; + } + + sq = esl_sq_CreateDigital(cfg->abc); + esl_sq_GrowTo(sq, L); + sq->n = L; + if (ndomains == 2) + { + esl_sq_FormatName(sq, "%s/%d/%d-%d/%d-%d", testname, cfg->ntest, i+1, i+d1n, j+d1n+1, j+d1n+d2n); + esl_sq_FormatDesc(sq, "domains: %s %s", domain1->name, domain2->name); + } + else + { + esl_sq_FormatName(sq, "%s/%d/%d-%d", testname, cfg->ntest, i+1, i+d1n); + esl_sq_FormatDesc(sq, "domain: %s", domain1->name); + } + + fprintf(cfg->possummfp, "%-40s %5d %5d %5d %5d %5d %5d", sq->name, (int) sq->n, L1, d1n, L2, d2n, L3); + + + sq->dsq[0] = sq->dsq[L+1] = eslDSQ_SENTINEL; + set_random_segment(go, cfg, cfg->possummfp, sq->dsq+1, L1); + memcpy(sq->dsq+i+1, domain1->dsq+1, sizeof(ESL_DSQ) * d1n); + fprintf(cfg->possummfp, " %-24s %5d %5d", domain1->name, 1, d1n); + set_random_segment(go, cfg, cfg->possummfp, sq->dsq+i+d1n+1, L2); + if (ndomains == 2) + { + memcpy(sq->dsq+j+d1n+1, domain2->dsq+1, sizeof(ESL_DSQ) * d2n); + fprintf(cfg->possummfp, " %-24s %5d %5d", domain2->name, 1, d2n); + set_random_segment(go, cfg, cfg->possummfp, sq->dsq+j+d1n+d2n+1, L3); + } + fprintf(cfg->possummfp, "\n"); + + cfg->test_lens[cfg->ntest].L = L; + cfg->test_lens[cfg->ntest].L1 = L1; + cfg->test_lens[cfg->ntest].d1n = d1n; + cfg->test_lens[cfg->ntest].L2 = L2; + cfg->test_lens[cfg->ntest].d2n = d2n; + cfg->test_lens[cfg->ntest].L3 = L3; + cfg->ntest++; + ntest++; + + esl_sqio_Write(cfg->out_seqfp, sq, eslSQFILE_FASTA, FALSE); + + esl_sq_Destroy(domain1); + if (ndomains == 2) esl_sq_Destroy(domain2); + esl_sq_Destroy(sq); + } + + *ret_ntest = ntest; + return eslOK; + + ERROR: + esl_fatal("Failure in synthesize_positives"); + return status; +} + + +static int +synthesize_negatives(ESL_GETOPTS *go, struct cfg_s *cfg, int nneg) +{ + ESL_SQ *sq = esl_sq_CreateDigital(cfg->abc); + int a; + int i; + int L1,L2,L3,d1n,d2n; + + for (i = 0; i < nneg; i++) + { + /* Select a random test seq, to use its same segments */ + a = esl_rnd_Roll(cfg->r, cfg->ntest); + + L1 = cfg->test_lens[a].L1; + L2 = cfg->test_lens[a].L2; + L3 = cfg->test_lens[a].L3; + d1n = cfg->test_lens[a].d1n; + d2n = cfg->test_lens[a].d2n; + + esl_sq_GrowTo(sq, cfg->test_lens[a].L); + + esl_sq_FormatName(sq, "decoy%d", i+1); + esl_sq_FormatDesc(sq, "L=%d in segments: %d/%d/%d/%d/%d", cfg->test_lens[a].L, L1, d1n, L2, d2n, L3); + sq->n = cfg->test_lens[a].L; + + fprintf(cfg->negsummfp, "%-15s %5d %5d %5d %5d %5d %5d", + sq->name, (int) sq->n, + L1, d1n, L2, d2n, L3); + + sq->dsq[0] = sq->dsq[cfg->test_lens[a].L+1] = eslDSQ_SENTINEL; + set_random_segment(go, cfg, cfg->negsummfp, sq->dsq+1, L1); + set_random_segment(go, cfg, cfg->negsummfp, sq->dsq+1+L1, d1n); + set_random_segment(go, cfg, cfg->negsummfp, sq->dsq+1+L1+d1n, L2); + set_random_segment(go, cfg, cfg->negsummfp, sq->dsq+1+L1+d1n+L2, d2n); + set_random_segment(go, cfg, cfg->negsummfp, sq->dsq+1+L1+d1n+L2+d2n, L3); + + fprintf(cfg->negsummfp, "\n"); + + esl_sqio_Write(cfg->out_seqfp, sq, eslSQFILE_FASTA, FALSE); + + esl_sq_Reuse(sq); + } + + esl_sq_Destroy(sq); + return eslOK; +} + +/* Fetch in a random sequence of length from the the pre-digitized + * concatenated sequence database, select a random subseq, shuffle it + * by the chosen algorithm; set dsq[1..L] to the resulting randomized + * segment. + * + * If is non-NULL, append one or more " " + * fields to current line, to record where the random segment was + * selected from. This is useful in cases where we want to track back + * the origin of a high-scoring segment, in case the randomization + * wasn't good enough to obscure the identity of a segment. + * + */ +static int +set_random_segment(ESL_GETOPTS *go, struct cfg_s *cfg, FILE *logfp, ESL_DSQ *dsq, int L) +{ + ESL_SQ *sq = esl_sq_CreateDigital(cfg->abc); + int minDPL = esl_opt_GetInteger(go, "--minDPL"); + int db_dependent = (esl_opt_GetBoolean(go, "--iid") == TRUE ? FALSE : TRUE); + char *pkey = NULL; + int start, end; + int64_t Lseq; + int status = eslOK; + + if (L==0) return eslOK; + if (L > cfg->db_maxL) esl_fatal("can't fetch a segment of length %d; database max is %d\n", L, cfg->db_maxL); + + /* fetch a random subseq from the source database */ + esl_sq_GrowTo(sq, L); + if (db_dependent) + { + do { + if (pkey != NULL) free(pkey); + if (esl_ssi_FindNumber(cfg->dbfp->data.ascii.ssi, esl_rnd_Roll(cfg->r, cfg->db_nseq), NULL, NULL, NULL, &Lseq, &pkey) != eslOK) + esl_fatal("failed to look up a random seq"); + } while (Lseq < L); + + start = 1 + esl_rnd_Roll(cfg->r, Lseq-L); + end = start + L - 1; + if (esl_sqio_FetchSubseq(cfg->dbfp, pkey, start, end, sq) != eslOK) esl_fatal("failed to fetch subseq"); + esl_sq_ConvertDegen2X(sq); + } + + /* log sequence source info: */ + if (logfp != NULL && db_dependent) + fprintf(logfp, " %-24s %5d %5d", pkey, start, end); + + /* Now apply the appropriate randomization algorithm */ + if (esl_opt_GetBoolean(go, "--mono")) status = esl_rsq_XShuffle (cfg->r, sq->dsq, L, sq->dsq); + else if (esl_opt_GetBoolean(go, "--di")) { + if (L < minDPL) status = esl_rsq_XShuffle (cfg->r, sq->dsq, L, sq->dsq); + else status = esl_rsq_XShuffleDP(cfg->r, sq->dsq, L, cfg->abc->Kp, sq->dsq); + } + else if (esl_opt_GetBoolean(go, "--markov0")) status = esl_rsq_XMarkov0 (cfg->r, sq->dsq, L, cfg->abc->Kp, sq->dsq); + else if (esl_opt_GetBoolean(go, "--markov1")) status = esl_rsq_XMarkov1 (cfg->r, sq->dsq, L, cfg->abc->Kp, sq->dsq); + else if (esl_opt_GetBoolean(go, "--reverse")) status = esl_rsq_XReverse (sq->dsq, L, sq->dsq); + else if (esl_opt_GetBoolean(go, "--iid")) status = esl_rsq_xIID (cfg->r, cfg->fq, cfg->abc->K, L, sq->dsq); + if (status != eslOK) esl_fatal("esl's shuffling failed"); + + memcpy(dsq, sq->dsq+1, sizeof(ESL_DSQ) * L); + esl_sq_Destroy(sq); + free(pkey); + return eslOK; +} + + +static void +msa_select_topn(ESL_MSA **msaptr, int n) +{ + ESL_MSA *new; + int *useme; + int i; + + if (n >= (*msaptr)->nseq) return; + + useme = malloc(sizeof(int) * (*msaptr)->nseq); + for (i = 0; i < n; i++) useme[i] = TRUE; + for ( ; i < (*msaptr)->nseq; i++) useme[i] = FALSE; + + if ( esl_msa_SequenceSubset(*msaptr, useme, &new) != eslOK) esl_fatal("esl_msa_SequenceSubset() failed"); + + free(useme); + esl_msa_Destroy(*msaptr); + *msaptr = new; + return; +} + +/* select the top n test domains, to apply the --maxtest limit. + * if n > size of stack, leave stack untouched and return. + * stack order should first be shuffled. + */ +static void +pstack_select_topn(ESL_STACK **stackptr, int n) +{ + ESL_STACK *new; + int i; + + if (n > (*stackptr)->n) return; + + new = esl_stack_PCreate(); + for (i = n-1; i >= 0; i--) + esl_stack_PPush(new, (*stackptr)->pdata[i]); + esl_stack_Destroy(*stackptr); + *stackptr = new; + return; +} + + + +static void +write_pids(FILE *pidfp, ESL_MSA *origmsa, ESL_MSA *trainmsa, ESL_STACK *teststack) +{ + int i,j; + double pid; + int iidx, jidx; + + for (i = 0; i < trainmsa->nseq; i++) + { + if ( esl_keyhash_Lookup(origmsa->index, trainmsa->sqname[i], -1, &iidx) != eslOK) + esl_fatal("failed to find training seq %s in original MSA", trainmsa->sqname[i]); + + for (j = 0; j < teststack->n; j++) /* traverse test seq stack without destroying/popping */ + { + ESL_SQ *sq = (ESL_SQ *) teststack->pdata[j]; + + if ( esl_keyhash_Lookup(origmsa->index, sq->name, -1, &jidx) != eslOK) + esl_fatal("failed to find test domain %s in original MSA", sq->name); + + esl_dst_XPairId(origmsa->abc, origmsa->ax[iidx], origmsa->ax[jidx], &pid, NULL, NULL); + + fprintf(pidfp, "%-20s %-24s %-24s %4.1f\n", origmsa->name, origmsa->sqname[iidx], origmsa->sqname[jidx], pid*100.0); + } + } +} + + + + diff --git a/bioinformaticsProject/hmmer/profmark/pmark-master.pl b/bioinformaticsProject/hmmer/profmark/pmark-master.pl new file mode 100755 index 0000000..39f2623 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/pmark-master.pl @@ -0,0 +1,113 @@ +#! /usr/bin/perl -w + +# The top level script that runs a pmark benchmark. +# +# Usage: +# ./pmark-master.pl +# +# : Top level directory for finding executables to +# be benchmarked. This is passed on to the +# without modification. How the script uses it will depend +# on where the executables are expected to be found, relative +# to this top level directory. For example, for HMMER3 benchmarks, +# we might pass ~/releases/hmmer-release/build-icc or +# ~/releases/hmmer-3.0xx/build-icc for testing a release candidate +# or an existing release. +# +# : Top level directory for finding scripts or data files. +# This too will simply be passed on to the +# without modification. For example, for HMMER benchmarks, we +# might pass ~/releases/hmmer-release/ or ~/releases/hmmer-3.0xx. +# For installed packages like BLAST, it's likely that +# would be the same as , because we will not have +# multiple build directories. +# +# : A directory for holding all temporary files +# created by the benchmark. This name should be short and unique; +# it will also be used to construct job names on the cluster, as +# . +# +# : how many processes to parallelize over in our cluster. +# +# : The script will look for files .tbl, +# .msa, and .fa, defining a PMARK benchmark set. +# +# : This script is executed on each of +# processes, on an appropriately constructed subset of the +# benchmark queries. +# +# It must take the following arguments: +# +# +# Examples of HMMER3 benchmark: +# ./pmark-master.pl ~/releases/hmmer-release/build-icc ~/releases/hmmer-release h3-results 100 pmark ./pmark-h3 +# ./pmark-master.pl ~/releases/hmmer-release/build-icc ~/releases/hmmer-release h2-results-ls 100 pmark ./pmark-h2-ls +# ./pmark-master.pl ~/releases/hmmer-release/build-icc ~/releases/hmmer-release h2-results-fs 100 pmark ./pmark-h2-fs +# + +$top_builddir = shift; +$top_srcdir = shift; +$resultdir = shift; +$ncpu = shift; +$benchmark_pfx = shift; +$pmark_script = shift; + +$tbl = "$benchmark_pfx.tbl"; +$msafile = "$benchmark_pfx.msa"; +$fafile = "$benchmark_pfx.fa"; + +if (-e $resultdir) { die("$resultdir exists");} +system("mkdir $resultdir"); + +# Suck in the master table +open(BENCHMARK_TBL, $tbl) || die; +$n = 0; +$pid = 0; +$nseq = 0; +while () +{ + ($msaname[$n], $pid, $L, $nseq) = split; + $alen{$msaname[$n]} = $L; + $n++; +} +close BENCHMARK_TBL; + +# Sort it by alen - this helps load balance. +sub by_alen { $alen{$b} <=> $alen{$a} } +@sorted_msaname = sort by_alen @msaname; + +# Create subtables. +for ($i = 0; $i < $n; $i++) +{ + $subtbl[$i % $ncpu] .= $sorted_msaname[$i]; + $subtbl[$i % $ncpu] .= "\n"; +} + +# Output the subtables +for ($i = 0; $i < $ncpu; $i++) +{ + open(SUBTBL, ">$resultdir/tbl.$i") || die ("Failed to create $resultdir/tbl.$i"); + print SUBTBL $subtbl[$i]; + close SUBTBL; +} + +# Write a slurm array script +# +open(SLURMSCRIPT, ">$resultdir.sh") || die("failed to create slurm script"); +print SLURMSCRIPT < from a profmark benchmark consists of lines: + * + * Target sequence names are either + * decoy\d+ for negatives (decoys); example: decoy75382 + * /<#>[/-]+ for positives; example: CHP02677/42/297-773/781-1257 + * + * The <.out> file (or stream) must be sorted by E-value, with best + * (lowest) E-values first. + * + * The format of these names is important - true/false + * positive/negatives are classified by matching query model name to + * the format of the target sequence name. A hit is a positive if + * matches the component of the target name - + * i.e. the embedded domains in the target are homologous to this + * query. A hit is a negative if the target name matches /decoy\d+/. + * A hit is ignored if the target contains domains (isn't a decoy) but + * doesn't match . + * + * The program also needs to find the query, positive, and negative + * tables for the benchmark that was run. It looks for these by + * appending ".tbl", ".neg", and ".pos" to the argument; + * that is: + * .tbl contains one line per query: 1st field is name of query + * .pos contains one line per positive: 1st field is name of sequence + * .neg contains one line per decoy: 1st field is name of decoy + * + * The program calculates a plot of fractional coverage of the positives + * (on the Y-axis; range 0..1) versus errors per query (on the X-axis; + * ranging from 1/(# of models) to 10.0 by default). + * + * The default output is an XMGRACE xydydy file, with points + * representing mean coverage in the bootstrap samples, and error bars + * representing a 95% confidence interval. + * + * A typical command line, after having run a benchmark on "pmark" under + * MPI with many output files: + * + * cat *.out | sort -g | ./rocplot pmark - > results.xy + * xmgrace -settype xydydy results.xy + * + * SRE, Wed Jun 18 13:37:31 2008 [Janelia] + */ +#include "esl_config.h" + +#include +#include +#include +#include + +#include "easel.h" +#include "esl_dirichlet.h" +#include "esl_getopts.h" +#include "esl_keyhash.h" +#include "esl_random.h" +#include "esl_stats.h" +#include "esl_vectorops.h" + + +static char banner[] = "construct a ROC plot of profmark results, using Bayesian bootstrapping"; +static char usage[] = "[options] <.out file>\n"; + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgroup */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "help; show brief info on version and usage", 1 }, + { "-a", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "all: plot all bootstrap samples individually", 1 }, + { "-n", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "plot original data, without any bootstrapping", 1 }, + { "-s", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "plot error bars by std. dev. not confidence interval", 1 }, + { "-N", eslARG_INT, "500", NULL, NULL, NULL,NULL, NULL, "number of bootstrap samples to take", 1 }, + { "--min", eslARG_REAL, NULL, NULL, NULL, NULL,NULL, NULL, "set minimum x-axis value (FPs/query) to plot", 1 }, + { "--max", eslARG_REAL, "10.", NULL, NULL, NULL,NULL, NULL, "set maximum x-axis value (FPs/query) to plot", 1 }, + { "--steps", eslARG_INT, "10", NULL, NULL, NULL,NULL, NULL, "set number of steps to plot per 10x on x-axis", 1 }, + { "--seed", eslARG_INT, FALSE, NULL,"n>0", NULL,NULL, NULL, "set random number generator's seed to ", 1 }, + { "--nsd", eslARG_REAL, "3.", NULL,"x>0", NULL,"-s", NULL, "how many std.dev.'s big error bars should be", 1 }, + { "--interval", eslARG_REAL,"0.95",NULL,"0<=x<=1",NULL,NULL,"-s", "confidence interval width for error bars", 1 }, + { 0,0,0,0,0,0,0,0,0,0 }, +}; + + +/* The FP/query x-axis is discretized into points, evenly spaced on a log scale. + * + * To calculate FP/query threshold for a point i: 10^{ (base+i) / nsteps } + * To convert a FP/query value x to a bin i: ceil(log10(x) * nsteps) + */ +struct oneplot_s { + double *tp; /* yaxis values, [0..nxpts-1]; # of TPs <= given FP/query on x-axis */ + int base; /* scaled integer offset of bin #0 in tp */ + int nsteps; /* resolution of logarithmic x-axis: # of evenly spaced points per 10x */ + int nxpts; /* total # of points on axis */ + double totalpos; /* total # of positives possible in this bootstrap sample */ +}; + +struct result_s { + double E; /* E-value */ + int qidx; /* index of query */ + int tidx; /* index of target seq: 0..npos-1 for positives; npos..npos+nneg-1 for negatives */ + int class; /* +1 = positive; -1 = negative; 0 = ignore */ +}; + + + +static int parse_tblfile(char *tblfile, ESL_KEYHASH *kh); +static int parse_results(char *resfile, int **pni, ESL_KEYHASH *modelkh, ESL_KEYHASH *poskh, ESL_KEYHASH *negkh, struct result_s **ret_r, int *ret_nr); +static int classify_pair_by_names(const char *query, const char *target); +static double weighted_total_positives(int **pni, double *queryp, int nq, double *seqp, int npos, int nseq); +static struct oneplot_s *create_plot(ESL_GETOPTS *go, int nq); +static void destroy_plot(struct oneplot_s *plot); +static void make_plot(struct result_s *rp, int nr, int **pni, double *queryp, int nq, double *seqp, int nseq, int npos, + struct oneplot_s *plot); +static void write_plot(FILE *fp, struct oneplot_s *plot); +static void summary_graph(ESL_GETOPTS *go, FILE *fp, struct oneplot_s *plot, double **yv); + + +static void +cmdline_failure(char *argv0, char *format, ...) +{ + va_list argp; + va_start(argp, format); + vfprintf(stderr, format, argp); + va_end(argp); + esl_usage(stdout, argv0, usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv0); + exit(1); +} + +static void +cmdline_help(char *argv0, ESL_GETOPTS *go) +{ + esl_banner(stdout, argv0, banner); + esl_usage (stdout, argv0, usage); + puts("\n where options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + exit(0); +} + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; + ESL_KEYHASH *qkh = esl_keyhash_Create(); + ESL_KEYHASH *poskh = esl_keyhash_Create(); + ESL_KEYHASH *negkh = esl_keyhash_Create(); + ESL_RANDOMNESS *r = NULL; + char *pmarkbase = NULL; + char *negfile = NULL; + char *posfile = NULL; + char *modelfile = NULL; + char *resfile = NULL; + struct oneplot_s *plot = NULL; + struct result_s *rp = NULL; + int **pni = NULL; + double **yv = NULL; /* yv[0..nxpts-1][0..nboots-1]: vector of bootstrapped samples at each xaxis point */ + int nq, npos, nneg, nseq; + int nresults = 0; + int nboots; + double *queryp; + double *seqp; + int i,j; + int xi; + + /* Parse command line */ + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) cmdline_failure(argv[0], "Failed to parse command line: %s\n", go->errbuf); + if (esl_opt_VerifyConfig(go) != eslOK) cmdline_failure(argv[0], "Error in app configuration: %s\n", go->errbuf); + if (esl_opt_GetBoolean(go, "-h")) cmdline_help(argv[0], go); + if (esl_opt_ArgNumber(go) != 2) cmdline_failure(argv[0], "Incorrect number of command line arguments\n"); + pmarkbase = esl_opt_GetArg(go, 1); + resfile = esl_opt_GetArg(go, 2); + + nboots = esl_opt_GetInteger(go, "-N"); + + /* Set up the RNG */ + if (esl_opt_IsDefault(go, "--seed")) r = esl_randomness_CreateTimeseeded(); + else r = esl_randomness_Create(esl_opt_GetInteger(go, "--seed")); + + /* Read the queries, positives, and decoys into hash tables, and count them. */ + esl_FileNewSuffix(pmarkbase, "tbl", &modelfile); parse_tblfile(modelfile, qkh); free(modelfile); + esl_FileNewSuffix(pmarkbase, "pos", &posfile); parse_tblfile(posfile, poskh); free(posfile); + esl_FileNewSuffix(pmarkbase, "neg", &negfile); parse_tblfile(negfile, negkh); free(negfile); + nq = esl_keyhash_GetNumber(qkh); + npos = esl_keyhash_GetNumber(poskh); + nneg = esl_keyhash_GetNumber(negkh); + nseq = npos+nneg; + + /* Create a [0..nq-1]x[0..pos-1] matrix preclassifying each pair as +1 (positive), -1 (negative), or 0 (ignore) */ + if ((pni = malloc(sizeof(int *) * nq)) == NULL) esl_fatal("malloc failed"); + for (i = 0; i < nq; i++) + { + if ((pni[i] = malloc(sizeof(int) * npos)) == NULL) esl_fatal("malloc failed"); + for (j = 0; j < npos; j++) + pni[i][j] = classify_pair_by_names(esl_keyhash_Get(qkh, i), esl_keyhash_Get(poskh, j)); + } + + /* Read and code the .out file; assigning positives, negatives to the results */ + parse_results(resfile, pni, qkh, poskh, negkh, &rp, &nresults); + + /* Allocate for the bootstrap weights on queries, seqs */ + if ((queryp = malloc(sizeof(double) * nq)) == NULL) esl_fatal("malloc failed"); + if ((seqp = malloc(sizeof(double) * nseq)) == NULL) esl_fatal("malloc failed"); + + /* In seqp, 0..npos-1 are the positives; npos..nseq-1 are the negatives. + * To convert a negative's key index to the nseq index, add npos to it. + */ + + /* Figure out the coordinate system for the plot's xaxis; then + * allocate for a single plot sample in , as well as for + * storing all the bootstrap results in . The + * holds the information about the x coordinate system. + */ + plot = create_plot(go, nq); + + if ((yv = malloc(sizeof(double *) * plot->nxpts)) == NULL) esl_fatal("malloc failed"); + for (xi = 0; xi < plot->nxpts; xi++) + if ((yv[xi] = malloc(sizeof(double *) * nboots)) == NULL) esl_fatal("malloc failed"); + + + /* "Bayesian" bootstraps: */ + if (! esl_opt_GetBoolean(go, "-n")) + { + for (i = 0; i < nboots; i++) + { + esl_dirichlet_DSampleUniform(r, nq, queryp); + esl_dirichlet_DSampleUniform(r, nseq, seqp); + + make_plot(rp, nresults, pni, queryp, nq, seqp, nseq, npos, plot); + + /* Plot or store this bootstrap sample. */ + if (esl_opt_GetBoolean(go, "-a")) + write_plot(stdout, plot); + else + { + for (xi = 0; xi < plot->nxpts; xi++) + yv[xi][i] = plot->tp[xi] / plot->totalpos; + } + } + } + else /* just plot the original data with no bootstraps */ + { + make_plot(rp, nresults, pni, NULL, nq, NULL, nseq, npos, plot); + write_plot(stdout, plot); + } + + /* Summarize the bootstraps */ + if (! esl_opt_GetBoolean(go, "-a") && ! esl_opt_GetBoolean(go, "-n") ) + summary_graph(go, stdout, plot, yv); + + for (i = 0; i < nq; i++) free(pni[i]); + free(pni); + for (xi = 0; xi < plot->nxpts; xi++) free(yv[xi]); + free(yv); + destroy_plot(plot); + free(queryp); + free(seqp); + free(rp); + esl_keyhash_Destroy(negkh); + esl_keyhash_Destroy(poskh); + esl_keyhash_Destroy(qkh); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} + + + +static int +parse_tblfile(char *tblfile, ESL_KEYHASH *kh) +{ + ESL_FILEPARSER *efp = NULL; + char *tok = NULL; + int toklen; + + if (esl_fileparser_Open(tblfile, NULL, &efp) != eslOK) esl_fatal("failed to open pmark table %s", tblfile); + esl_fileparser_SetCommentChar(efp, '#'); + + while (esl_fileparser_NextLine(efp) == eslOK) + { + if (esl_fileparser_GetTokenOnLine(efp, &tok, &toklen) != eslOK) esl_fatal("failed to parse line %d of %s", efp->linenumber, tblfile); + if (esl_keyhash_Store(kh, tok, toklen, NULL) != eslOK) esl_fatal("failed to add %s to seq index", tok); + } + esl_fileparser_Close(efp); + return eslOK; +} + + +static int +classify_pair_by_names(const char *query, const char *target) +{ + int qlen = strlen(query); + int tlen = strlen(target); + + if (tlen > qlen && strncmp(query, target, qlen) == 0 && target[qlen] == '/') + return 1; /* this tests for == */ + else if (strncmp(target, "decoy", 5) == 0) + return -1; /* or a decoy */ + else + return 0; /* ignore */ +} + +/* Given bootstrap sampled weights, calculate the maximum # of positives possible */ +static double +weighted_total_positives(int **pni, double *queryp, int nq, double *seqp, int npos, int nseq) +{ + int q, t; + double total_pos = 0.0; + + for (q = 0; q < nq; q++) + for (t = 0; t < npos; t++) + if (pni[q][t] == 1) + total_pos += queryp[q] * seqp[t]; + + return total_pos * nq * nseq; +} + + +/* The output files have format: + * + * + * Target sequence names are either + * decoy\d+ for negatives (decoys); example: decoy75382 + * /<#>[/-]+ for positives; example: CHP02677/42/297-773/781-1257 + * + * A hit is a positive if matches the component of the + * target name - i.e. the embedded domains in the target are homologous to this + * query. + * + * A hit is a negative if the target name matches /decoy\d+/. + * + * A hit is ignored if the target contains domains (isn't a decoy) but + * doesn't match . + * + * This information is parsed digested here, such that each pairwise comparison + * is stored as: + * qidx : index of the query model + * tidx : index of the target sequence + * E : E-value of the comparison; results are already sorted on this + */ +static int +parse_results(char *resfile, int **pni, ESL_KEYHASH *qkh, ESL_KEYHASH *poskh, ESL_KEYHASH *negkh, struct result_s **ret_r, int *ret_nr) +{ + ESL_FILEPARSER *efp = NULL; + char *tok = NULL; + char *target = NULL; + char *query = NULL; + int toklen; + int qlen, tlen; + struct result_s *rp = NULL; + int ralloc = 0; + int nr = 0; + + if (esl_fileparser_Open(resfile, NULL, &efp) != eslOK) esl_fatal("failed to open pmark results file %s", resfile); + esl_fileparser_SetCommentChar(efp, '#'); + + if ((rp = malloc(sizeof(struct result_s) * 256)) == NULL) esl_fatal("malloc failed"); + ralloc = 256; + + while (esl_fileparser_NextLine(efp) == eslOK) + { + if (nr == ralloc) { + if ((rp = realloc(rp, sizeof(struct result_s) * ralloc * 2)) == NULL) esl_fatal("realloc failed"); + ralloc *= 2; + } + + if (esl_fileparser_GetTokenOnLine(efp, &tok, &toklen) != eslOK) esl_fatal("failed to parse line %d of %s", efp->linenumber, resfile); /* E-value => rp[nr].E */ + rp[nr].E = atof(tok); + if (esl_fileparser_GetTokenOnLine(efp, &tok, &toklen) != eslOK) esl_fatal("failed to parse line %d of %s", efp->linenumber, resfile); /* bit score ignored */ + if (esl_fileparser_GetTokenOnLine(efp, &target, &tlen) != eslOK) esl_fatal("failed to parse line %d of %s", efp->linenumber, resfile); /* target name; will be converted to an index */ + if (esl_fileparser_GetTokenOnLine(efp, &query, &qlen) != eslOK) esl_fatal("failed to parse line %d of %s", efp->linenumber, resfile); /* query name; will be converted to an index */ + if (esl_keyhash_Lookup(qkh, query, qlen, &(rp[nr].qidx)) != eslOK) esl_fatal("failed to find query model %s in hash", query); /* query index */ + rp[nr].class = classify_pair_by_names(query, target); + + if (rp[nr].class == -1) /* negatives: look up in negkh, and offset the index by npos */ + { + if (esl_keyhash_Lookup(negkh, target, tlen, &(rp[nr].tidx)) != eslOK) esl_fatal("failed to find target seq %s in hash", target); /* target index */ + rp[nr].tidx += esl_keyhash_GetNumber(poskh); + } + else /* positives/ignores: look up in poskh */ + { + if (esl_keyhash_Lookup(poskh, target, tlen, &(rp[nr].tidx)) != eslOK) esl_fatal("failed to find target seq %s in hash", target); /* target index */ + } + nr++; + } + + *ret_r = rp; + *ret_nr = nr; + esl_fileparser_Close(efp); + return eslOK; +} + + +static struct oneplot_s * +create_plot(ESL_GETOPTS *go, int nq) +{ + struct oneplot_s *plot; + double minfp, maxfp; + int status; + + ESL_ALLOC(plot, sizeof(struct oneplot_s)); + + if (esl_opt_IsDefault(go, "--min")) minfp = 1.0 / (double) nq; + else minfp = esl_opt_GetReal(go, "--min"); + + maxfp = esl_opt_GetReal(go, "--max"); + plot->nsteps = esl_opt_GetInteger(go, "--steps"); + plot->base = (int) floor(log10(minfp) * plot->nsteps); + plot->nxpts = (int) ceil(log10(maxfp) * plot->nsteps) - plot->base + 1; + + ESL_ALLOC(plot->tp, sizeof(double) * plot->nxpts); + + return plot; + + ERROR: + destroy_plot(plot); + return NULL; +} + +static void +destroy_plot(struct oneplot_s *plot) +{ + if (plot == NULL) return; + if (plot->tp != NULL) free(plot->tp); + free(plot); +} + + +/* Given the results [0..nr-1], + * positive/ignore classifications pni[0..nq-1][0..npos-1] + * and bootstrap-sampled usage probabilities , , + * and a plot axis to store results in; + * calculate a new ROC plot for this bootstrap sample, + * and store it in tp>. + * + * As a special case, if and/or are NULL, calculate + * the ROC plot for the original data without bootstrapping. + */ +static void +make_plot(struct result_s *rp, int nresults, int **pni, double *queryp, int nq, double *seqp, int nseq, int npos, + struct oneplot_s *plot) +{ + double weight; + int xi, curr_xi; + double true_pos, false_pos; + int j; + + if (queryp != NULL && seqp != NULL) + plot->totalpos = weighted_total_positives(pni, queryp, nq, seqp, npos, nseq); + else + plot->totalpos = npos; + + curr_xi = 0; + true_pos = false_pos = 0.0; + + for (j = 0; j < nresults; j++) + { + if (queryp != NULL && seqp != NULL) + weight = queryp[rp[j].qidx] * seqp[rp[j].tidx] * nseq * nq; + else + weight = 1.0; + + if (rp[j].class == 1) + { + true_pos += weight; + plot->tp[curr_xi] = true_pos; + } + else if (rp[j].class == -1) + { + false_pos += weight / (double) nq; /* FP/query */ + + xi = (int) ceil(log10(false_pos) * plot->nsteps) - plot->base; + + if (xi > curr_xi) { + for (curr_xi = curr_xi+1; curr_xi < xi && curr_xi < plot->nxpts; curr_xi++) + plot->tp[curr_xi] = true_pos; + + if (curr_xi < plot->nxpts) plot->tp[curr_xi] = true_pos; + } + } + if (curr_xi >= plot->nxpts) break; + } + + /* Rarely, the plot won't have enough false positives to extend all the way to + * the left extreme of the x-axis; make sure we propagate the last true_pos */ + for (curr_xi++; curr_xi < plot->nxpts; curr_xi++) + plot->tp[curr_xi] = true_pos; +} + + +static void +write_plot(FILE *fp, struct oneplot_s *plot) +{ + int xi; + double false_pos; + + for (xi = 0; xi < plot->nxpts; xi++) + { + false_pos = exp(log(10) * ((double) plot->base + (double) xi) / (double) plot->nsteps); + fprintf(fp, "%.5f %.5f\n", false_pos, plot->tp[xi] / plot->totalpos ); + } + fprintf(fp, "&\n"); +} + + + +static void +summary_graph(ESL_GETOPTS *go, FILE *fp, struct oneplot_s *plot, double **yv) +{ + int nboots = esl_opt_GetInteger(go, "-N"); + int by_stddev = esl_opt_GetBoolean(go, "-s"); + double confidence_interval = esl_opt_GetReal (go, "--interval"); + double nsd = esl_opt_GetReal (go, "--nsd"); + int xi; + double false_pos; + double mean, var; + int ntail; + + for (xi = 0; xi < plot->nxpts; xi++) + { + false_pos = exp(log(10) * ((double) plot->base + (double) xi) / (double) plot->nsteps); + esl_stats_DMean(yv[xi], nboots, &mean, &var); + + /* the dy's in xmgrace xydydy format are dy's, and in order upper, lower */ + if (by_stddev) + { + fprintf(fp, "%.5f %.5f %.5f %.5f\n", false_pos, mean, nsd*sqrt(var), nsd*sqrt(var)); + } + else + { + esl_vec_DSortIncreasing(yv[xi], nboots); + ntail = (int) ((double) nboots * (1.0 - confidence_interval) / 2.0); + + fprintf(fp, "%.5f %.5f %.5f %.5f\n", + false_pos, mean, + yv[xi][nboots-ntail] - mean, + mean - yv[xi][ntail]); + } + } + fprintf(fp, "&\n"); +} diff --git a/bioinformaticsProject/hmmer/profmark/rocplot.pl b/bioinformaticsProject/hmmer/profmark/rocplot.pl new file mode 100755 index 0000000..8db1d76 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/rocplot.pl @@ -0,0 +1,41 @@ +#! /usr/bin/perl + +$nsearches = 2809; + +require "getopts.pl"; +&Getopts('n:X:x:'); + +if ($opt_n) { $nsearches = $opt_n; } +if ($opt_X) { + open(EXCLUDEFILE,$opt_X) || die; + while () { + if (/^\s*(\S+)/) { $nsearches--; $excluded{$1} = 1; } + } + close EXCLUDEFILE; +} +if ($opt_x) { $nsearches--; $excluded{$opt_x} = 1; } + + +$fp = 0; +$tp = 0; +while (<>) +{ + ($Eval, $bitscore, $target, $query) = split; + + if ($excluded{$query}) { next; } + + if ($target =~ /^decoy\d+$/) # a false positive + { + $fp++; + printf("%.4f %d\n", $fp / $nsearches, $tp); + } + + if ($target =~ /^$query\//) # a true positive + { + $tp++; + } + + if ($fp >= $nsearches * 10) { last; } +} + +print "&\n"; diff --git a/bioinformaticsProject/hmmer/profmark/x-fps-fasta b/bioinformaticsProject/hmmer/profmark/x-fps-fasta new file mode 100755 index 0000000..00a3466 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-fps-fasta @@ -0,0 +1,96 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for FASTA searches by FPS +# (family-pairwise-search; best E-value of all individual queries). +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-fasta-fps +# Example: ./x-fasta-fps /usr/local/fasta-36x2 ~/src/hmmer testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Tue Apr 20 10:14:39 2010 [Janelia] +# SVN $Id$ + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_fasta; + +$fasta = "${top_builddir}/bin/fasta36"; +$opts = "-q"; + +if (! -d $top_builddir) { die "didn't find BLAST build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $fasta) { die "didn't find executable $fasta"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while () +{ + ($msaname) = split; + + %seen = (); + %best_pval = (); + %best_bitscore = (); + + `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($?) { print "FAILED: esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname\n"; next MSA; } + + # Extract a list of individual sequence names from the multiple alignment. + $output = `esl-seqstat -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'`; + if ($?) { print "FAILED: esl-seqstat -a $wrkdir/$msaname.sto\n"; next MSA; } + + @qnames = split(/^/,$output); + chop (@qnames); + + # Loop over each query; blast; accumulate best pval for each target + foreach $qname (@qnames) + { + $output = `esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname`; + if ($?) { print "FAILED: esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname\n"; next MSA; } + + if (! open(FASTA, "$fasta $opts $wrkdir/$msaname.query.fa $fafile |")) { + print "FAILED: $fasta $opts $wrkdir/$msaname.query.fa $fafile |\n"; next MSA; + } + + if (! demotic_fasta::parse(\*FASTA)) { + print "FAILED: demotic parser for fasta output\n"; next MSA; + } + + for ($i = 0; $i < $demotic_fasta::nhits; $i++) + { + $target = $demotic_fasta::hit_target[$i]; + $pval = $demotic_fasta::hit_Eval[$i]; + $bitscore = $demotic_fasta::hit_bitscore[$i]; + + if (! $seen{$target} || $pval < $best_pval{$target}) + { + $seen{$target} = 1; + $best_pval{$target} = $pval; + $best_bitscore{$target} = $bitscore; + } + } + close FASTA; + } + + # Append to the outfile. + foreach $target (keys(%seen)) + { + printf OUTFILE "%g %.1f %s %s\n", $best_pval{$target}, $best_bitscore{$target}, $target, $msaname; + } + + unlink "$wrkdir/$msaname.sto"; + unlink "$wrkdir/$msaname.query.fa"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-fps-ncbiblast b/bioinformaticsProject/hmmer/profmark/x-fps-ncbiblast new file mode 100755 index 0000000..ff30141 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-fps-ncbiblast @@ -0,0 +1,96 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for NCBI BLASTP searches by FPS +# (family-pairwise-search; best E-value of all individual queries). +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-ncbiblast-fps +# Example: ./x-ncbiblast-fps /usr/local/blast-2.2.22 ~/src/hmmer/trunk testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Tue Apr 20 08:29:03 2010 [Janelia] +# SVN $Id$ + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_blast; + +$blastp = "${top_builddir}/bin/blastall"; +$blastopts = "-p blastp -a 1 -v 9999 -b 0"; + +if (! -d $top_builddir) { die "didn't find BLAST build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $blastp) { die "didn't find executable $blastp"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + %seen = (); + %best_pval = (); + %best_bitscore = (); + + `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($?) { print "FAILED: esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname\n"; next MSA; } + + # Extract a list of individual sequence names from the multiple alignment. + $output = `esl-seqstat -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'`; + if ($?) { print "FAILED: esl-seqstat -a $wrkdir/$msaname.sto\n"; next MSA; } + + @qnames = split(/^/,$output); + chop (@qnames); + + # Loop over each query; blast; accumulate best pval for each target + foreach $qname (@qnames) + { + $output = `esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname`; + if ($?) { print "FAILED: esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname\n"; next MSA; } + + if (! open(BLASTP, "$blastp -d $fafile -i $wrkdir/$msaname.query.fa $blastopts |")) { + print "FAILED: $blastp -d $fafile -i $wrkdir/$msaname.query.fa $blastopts |\n"; next MSA; + } + + if (! demotic_blast::parse(\*BLASTP)) { + print "FAILED: demotic parser for blastp output\n"; next MSA; + } + + for ($i = 0; $i < $demotic_blast::nhits; $i++) + { + $target = $demotic_blast::hit_target[$i]; + $pval = $demotic_blast::hit_Eval[$i]; + $bitscore = $demotic_blast::hit_bitscore[$i]; + + if (! $seen{$target} || $pval < $best_pval{$target}) + { + $seen{$target} = 1; + $best_pval{$target} = $pval; + $best_bitscore{$target} = $bitscore; + } + } + close BLASTP; + } + + # Append to the outfile. + foreach $target (keys(%seen)) + { + printf OUTFILE "%g %.1f %s %s\n", $best_pval{$target}, $best_bitscore{$target}, $target, $msaname; + } + + unlink "$wrkdir/$msaname.sto"; + unlink "$wrkdir/$msaname.query.fa"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-fps-ncbiblast+ b/bioinformaticsProject/hmmer/profmark/x-fps-ncbiblast+ new file mode 100755 index 0000000..b7577aa --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-fps-ncbiblast+ @@ -0,0 +1,96 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for NCBI BLASTP+ searches by FPS +# (family-pairwise-search; best E-value of all individual queries). +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-ncbiblast+-fps +# Example: ./x-ncbiblast+-fps /usr/local/ncbi-blast-2.2.21+ ~/src/hmmer/trunk testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Tue Mar 8 09:12:11 2011 +# SVN $Id$ + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_blast; + +$blastp = "${top_builddir}/bin/blastp"; +$blastopts = "-num_threads 1 -num_descriptions 9999 -num_alignments 0"; + +if (! -d $top_builddir) { die "didn't find BLAST build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $blastp) { die "didn't find executable $blastp"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + %seen = (); + %best_pval = (); + %best_bitscore = (); + + `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($?) { print "FAILED: esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname\n"; next MSA; } + + # Extract a list of individual sequence names from the multiple alignment. + $output = `esl-seqstat -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'`; + if ($?) { print "FAILED: esl-seqstat -a $wrkdir/$msaname.sto\n"; next MSA; } + + @qnames = split(/^/,$output); + chop (@qnames); + + # Loop over each query; blast; accumulate best pval for each target + foreach $qname (@qnames) + { + $output = `esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname`; + if ($?) { print "FAILED: esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname\n"; next MSA; } + + if (! open(BLASTP, "$blastp -db $fafile -query $wrkdir/$msaname.query.fa $blastopts |")) { + print "FAILED: $blastp -db $fafile -query $wrkdir/$msaname.query.fa $blastopts |\n"; next MSA; + } + + if (! demotic_blast::parse(\*BLASTP)) { + print "FAILED: demotic parser for blastp output\n"; next MSA; + } + + for ($i = 0; $i < $demotic_blast::nhits; $i++) + { + $target = $demotic_blast::hit_target[$i]; + $pval = $demotic_blast::hit_Eval[$i]; + $bitscore = $demotic_blast::hit_bitscore[$i]; + + if (! $seen{$target} || $pval < $best_pval{$target}) + { + $seen{$target} = 1; + $best_pval{$target} = $pval; + $best_bitscore{$target} = $bitscore; + } + } + close BLASTP; + } + + # Append to the outfile. + foreach $target (keys(%seen)) + { + printf OUTFILE "%g %.1f %s %s\n", $best_pval{$target}, $best_bitscore{$target}, $target, $msaname; + } + + unlink "$wrkdir/$msaname.sto"; + unlink "$wrkdir/$msaname.query.fa"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-fps-phmmer b/bioinformaticsProject/hmmer/profmark/x-fps-phmmer new file mode 100755 index 0000000..c12d5bc --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-fps-phmmer @@ -0,0 +1,92 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for phmmer searches by FPS +# (family-pairwise-search; best E-value of all individual queries). +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-phmmer-fps +# Example: ./x-phmmer-fps ~/releases/hmmer-3.0/build-icc-mpi ~/src/hmmer testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Sun Feb 7 08:54:28 2010 [Casa de Gatos] +# SVN $Id$ + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} + +$phmmer = "$top_builddir/src/phmmer"; +$opts = ""; + +if (! -d $top_builddir) { die "didn't find build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find source directory $top_srcdir"; } +if (! -x $phmmer) { die "didn't find executable $phmmer"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + %seen = (); + %best_pval = (); + %best_bitscore = (); + + `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($?) { print "FAILED: esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname\n"; next MSA; } + + # Extract a list of individual sequence names from the multiple alignment. + $output = `esl-seqstat -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'`; + if ($?) { print "FAILED: esl-seqstat\n"; next MSA; } + + @qnames = split(/^/,$output); + chop (@qnames); + + # Loop over each query; phmmer; accumulate best pval for each target + foreach $qname (@qnames) + { + $output = `esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname`; + if ($?) { print "FAILED: esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname\n"; next MSA; } + + `$phmmer --cpu 1 --tblout $wrkdir/$msaname.tmp $opts $wrkdir/$msaname.query.fa $fafile > /dev/null`; + if ($?) { print "FAILED: $phmmer --tblout $msaname.tmp $opts $wrkdir/$msaname.query.fa $fafile\n"; next MSA; } + + open(OUTPUT, "$wrkdir/$msaname.tmp") || die "FAILED: to open $wrkdir/$msaname.tmp tabular output file"; + while () + { + if (/^\#/) { next; } + @fields = split(' ', $_, 7); + $target = $fields[0]; + $pval = $fields[4]; + $bitscore = $fields[5]; + if (! $seen{$target} || $pval < $best_pval{$target}) + { + $seen{$target} = 1; + $best_pval{$target} = $pval; + $best_bitscore{$target} = $bitscore; + } + } + close OUTPUT; + } + + # Append to the outfile. + foreach $target (keys(%seen)) + { + printf OUTFILE "%g %.1f %s %s\n", $best_pval{$target}, $best_bitscore{$target}, $target, $msaname; + } + + unlink "$wrkdir/$msaname.tmp"; + unlink "$wrkdir/$msaname.query.fa"; + unlink "$wrkdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-fps-ssearch b/bioinformaticsProject/hmmer/profmark/x-fps-ssearch new file mode 100755 index 0000000..ff11d61 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-fps-ssearch @@ -0,0 +1,96 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for SSEARCH searches by FPS +# (family-pairwise-search; best E-value of all individual queries). +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-ssearch-fps +# Example: ./x-ssearch-fps /usr/local/fasta-36x2 ~/src/hmmer testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Tue Apr 20 10:18:56 2010 [Janelia] +# SVN $Id$ + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_fasta; + +$fasta = "${top_builddir}/bin/ssearch36"; +$opts = "-q"; + +if (! -d $top_builddir) { die "didn't find BLAST build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $fasta) { die "didn't find executable $fasta"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + %seen = (); + %best_pval = (); + %best_bitscore = (); + + `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($?) { print "FAILED: esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname\n"; next MSA; } + + # Extract a list of individual sequence names from the multiple alignment. + $output = `esl-seqstat -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'`; + if ($?) { print "FAILED: esl-seqstat -a $wrkdir/$msaname.sto\n"; next MSA; } + + @qnames = split(/^/,$output); + chop (@qnames); + + # Loop over each query; blast; accumulate best pval for each target + foreach $qname (@qnames) + { + $output = `esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname`; + if ($?) { print "FAILED: esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname\n"; next MSA; } + + if (! open(FASTA, "$fasta $opts $wrkdir/$msaname.query.fa $fafile |")) { + print "FAILED: $fasta $opts $wrkdir/$msaname.query.fa $fafile |\n"; next MSA; + } + + if (! demotic_fasta::parse(\*FASTA)) { + print "FAILED: demotic parser for fasta output\n"; next MSA; + } + + for ($i = 0; $i < $demotic_fasta::nhits; $i++) + { + $target = $demotic_fasta::hit_target[$i]; + $pval = $demotic_fasta::hit_Eval[$i]; + $bitscore = $demotic_fasta::hit_bitscore[$i]; + + if (! $seen{$target} || $pval < $best_pval{$target}) + { + $seen{$target} = 1; + $best_pval{$target} = $pval; + $best_bitscore{$target} = $bitscore; + } + } + close FASTA; + } + + # Append to the outfile. + foreach $target (keys(%seen)) + { + printf OUTFILE "%g %.1f %s %s\n", $best_pval{$target}, $best_bitscore{$target}, $target, $msaname; + } + + unlink "$wrkdir/$msaname.sto"; + unlink "$wrkdir/$msaname.query.fa"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-fps-wublast b/bioinformaticsProject/hmmer/profmark/x-fps-wublast new file mode 100755 index 0000000..4c7215d --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-fps-wublast @@ -0,0 +1,97 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for WU-BLAST searches by FPS +# (family-pairwise-search; best E-value of all individual queries). +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-wublast-fps +# Example: ./x-wublast-fps /usr/local/wublast ~/src/hmmer testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Sat Apr 17 11:16:23 2010 [Janelia] +# SVN $Id$ + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_blast; + +$blastp = "${top_builddir}/blastp"; +$blastopts = "cpus=1 V=9999 B=0 filter=seg filter=xnu"; + +if (! -d $top_builddir) { die "didn't find BLAST build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $blastp) { die "didn't find executable $blastp"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + %seen = (); + %best_pval = (); + %best_bitscore = (); + + `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($?) { print "FAILED: esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname\n"; next MSA; } + + # Extract a list of individual sequence names from the multiple alignment. + $output = `esl-seqstat -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'`; + if ($?) { print "FAILED: esl-seqstat -a $wrkdir/$msaname.sto\n"; next MSA; } + + @qnames = split(/^/,$output); + chop (@qnames); + + # Loop over each query; blast; accumulate best pval for each target + QUERY: + foreach $qname (@qnames) + { + $output = `esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname`; + if ($?) { print "FAILED: esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname\n"; next QUERY; } + + if (! open(BLASTP, "$blastp $fafile $wrkdir/$msaname.query.fa $blastopts |")) { + print "FAILED: $blastp $fafile $wrkdir/$msaname.query.fa $blastopts |\n"; next QUERY; + } + + if (! demotic_blast::parse(\*BLASTP)) { + print "FAILED: demotic parser for blastp output; query might be x'ed by filters; skipping this query\n"; next QUERY; + } + + for ($i = 0; $i < $demotic_blast::nhits; $i++) + { + $target = $demotic_blast::hit_target[$i]; + $pval = $demotic_blast::hit_Eval[$i]; + $bitscore = $demotic_blast::hit_bitscore[$i]; + + if (! $seen{$target} || $pval < $best_pval{$target}) + { + $seen{$target} = 1; + $best_pval{$target} = $pval; + $best_bitscore{$target} = $bitscore; + } + } + close BLASTP; + } + + # Append to the outfile. + foreach $target (keys(%seen)) + { + printf OUTFILE "%g %.1f %s %s\n", $best_pval{$target}, $best_bitscore{$target}, $target, $msaname; + } + + unlink "$wrkdir/$msaname.sto"; + unlink "$wrkdir/$msaname.query.fa"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-h2-fs b/bioinformaticsProject/hmmer/profmark/x-h2-fs new file mode 100755 index 0000000..49081df --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-h2-fs @@ -0,0 +1,82 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for H2's hmmsearch. +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# = HMMER2 build directory (hmmbuild, hmmcalibrate, hmmsearch executables) +# = HMMER3 src directory (demotic scripts in easel/demotic) + +# Usage: x-h2-fs +# Example: ./x-h2-fs ~/releases/hmmer-2.3.2 ~/src/hmmer testdir test.tbl pmark.msa test.fa test.out + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $resultdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_h2; + +$hmmbuild = "${top_builddir}/src/hmmbuild"; +$hmmcalibrate = "${top_builddir}/src/hmmcalibrate"; +$hmmsearch = "${top_builddir}/src/hmmsearch"; +$buildopts = "-f"; +$calibrateopts = "--cpu 1"; +$searchopts = "-E 1000 --cpu 1"; + +if (! -d $top_builddir) { die "didn't find H2 build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_builddir"; } +if (! -x $hmmbuild) { die "didn't find executable $hmmbuild"; } +if (! -x $hmmcalibrate) { die "didn't find executable $hmmbuild"; } +if (! -x $hmmsearch) { die "didn't find executable $hmmsearch"; } +if (! -e $resultdir) { die "$resultdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + $output = `esl-afetch -o $resultdir/$msaname.sto $msafile $msaname`; + if ($?) { print "FAILED: esl-afetch -o $resultdir/$msaname.sto $msafile $msaname\n"; next MSA; } + + $output = `$hmmbuild $buildopts $resultdir/$msaname.hmm $resultdir/$msaname.sto`; + if ($?) { print "FAILED: $hmmbuild $buildopts $resultdir/$msaname.hmm $resultdir/$msaname.sto\n"; next MSA; } + + $output = `$hmmcalibrate $calibrateopts $resultdir/$msaname.hmm`; + if ($?) { print "FAILED: $hmmcalibrate\n"; next MSA; } + + if (! open(HMMSEARCH, "$hmmsearch $searchopts $resultdir/$msaname.hmm $fafile 2> /dev/null |")) + { print "FAILED: $hmmsearch $searchopts $resultdir/$msaname.hmm $fafile\n"; next MSA; } + + if (! demotic_h2::parse(\*HMMSEARCH)) + { print "FAILED: demotic h2 parser\n"; next MSA; } + + for ($i = 0; $i < $demotic_h2::nhits; $i++) + { + printf OUTFILE ("%g\t%.1f\t%s\t%s\n", + $demotic_h2::hit_Eval[$i], + $demotic_h2::hit_bitscore[$i], + $demotic_h2::hit_target[$i], + $msaname); + } + close HMMSEARCH; + + unlink "$resultdir/$msaname.hmm"; + unlink "$resultdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; + + + + + + diff --git a/bioinformaticsProject/hmmer/profmark/x-h2-ls b/bioinformaticsProject/hmmer/profmark/x-h2-ls new file mode 100755 index 0000000..66eae2c --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-h2-ls @@ -0,0 +1,82 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for H2's hmmsearch (ls mode). +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# = HMMER2 build directory (hmmbuild, hmmcalibrate, hmmsearch executables) +# = HMMER3 src directory (demotic scripts in easel/demotic) + +# Usage: x-h2-ls +# Example: ./x-h2-ls ~/releases/hmmer-2.3.2 ~/src/hmmer testdir test.tbl pmark.msa test.fa test.out + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $resultdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_h2; + +$hmmbuild = "${top_builddir}/src/hmmbuild"; +$hmmcalibrate = "${top_builddir}/src/hmmcalibrate"; +$hmmsearch = "${top_builddir}/src/hmmsearch"; +$buildopts = ""; +$calibrateopts = "--cpu 1"; +$searchopts = "-E 1000 --cpu 1"; + +if (! -d $top_builddir) { die "didn't find H2 build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_builddir"; } +if (! -x $hmmbuild) { die "didn't find executable $hmmbuild"; } +if (! -x $hmmcalibrate) { die "didn't find executable $hmmbuild"; } +if (! -x $hmmsearch) { die "didn't find executable $hmmsearch"; } +if (! -e $resultdir) { die "$resultdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + $output = `esl-afetch -o $resultdir/$msaname.sto $msafile $msaname`; + if ($?) { print "FAILED: esl-afetch -o $resultdir/$msaname.sto $msafile $msaname\n"; next MSA; } + + $output = `$hmmbuild $buildopts $resultdir/$msaname.hmm $resultdir/$msaname.sto`; + if ($?) { print "FAILED: $hmmbuild $buildopts $resultdir/$msaname.hmm $resultdir/$msaname.sto\n"; next MSA; } + + $output = `$hmmcalibrate $calibrateopts $resultdir/$msaname.hmm`; + if ($?) { print "FAILED: $hmmcalibrate\n"; next MSA; } + + if (! open(HMMSEARCH, "$hmmsearch $searchopts $resultdir/$msaname.hmm $fafile 2> /dev/null |")) + { print "FAILED: $hmmsearch $searchopts $resultdir/$msaname.hmm $fafile\n"; next MSA; } + + if (! demotic_h2::parse(\*HMMSEARCH)) + { print "FAILED: demotic h2 parser\n"; next MSA; } + + for ($i = 0; $i < $demotic_h2::nhits; $i++) + { + printf OUTFILE ("%g\t%.1f\t%s\t%s\n", + $demotic_h2::hit_Eval[$i], + $demotic_h2::hit_bitscore[$i], + $demotic_h2::hit_target[$i], + $msaname); + } + close HMMSEARCH; + + unlink "$resultdir/$msaname.hmm"; + unlink "$resultdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; + + + + + + diff --git a/bioinformaticsProject/hmmer/profmark/x-hmmsearch b/bioinformaticsProject/hmmer/profmark/x-hmmsearch new file mode 100755 index 0000000..b65cf8c --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-hmmsearch @@ -0,0 +1,72 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for hmmsearch. +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-hmmsearch +# Example: ./x-hmmsearch ~/releases/hmmer-3.0/build-icc-mpi ~/releases/hmmer-3.0 testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Tue Apr 20 10:32:49 2010 [Janelia] +# SVN $Id$ +# +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $resultdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} + +$hmmbuild = "$top_builddir/src/hmmbuild"; +$hmmsearch = "$top_builddir/src/hmmsearch"; +$buildopts = ""; +$searchopts = "-E 200 --cpu 1"; + +if (! -d $top_builddir) { die "didn't find build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find src directory $top_srcdir"; } +if (! -x $hmmbuild) { die "didn't find executable $hmmbuild"; } +if (! -x $hmmsearch) { die "didn't find executable $hmmsearch"; } +if (! -e $resultdir) { die "$resultdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +while (
) +{ + ($msaname) = split; + + $output = `esl-afetch -o $resultdir/$msaname.sto $msafile $msaname`; + if ($? != 0) { die "FAILED: esl-afetch -o $resultdir/$msaname.sto $msafile $msaname"; } + + $output = `$hmmbuild $buildopts $resultdir/$msaname.hmm $resultdir/$msaname.sto`; + if ($? != 0) { die "FAILED: $hmmbuild $buildopts $resultdir/$msaname.hmm $resultdir/$msaname.sto"; } + + $status = system("$hmmsearch $searchopts --tblout $resultdir/$msaname.tmp $resultdir/$msaname.hmm $fafile > /dev/null"); + if ($status != 0) { die "FAILED: $hmmsearch $searchopts --tblout $resultdir/$msaname.tmp $resultdir/$msaname.hmm $fafile"; } + + open(OUTPUT, "$resultdir/$msaname.tmp") || die "FAILED: to open $resultdir/$msaname.tmp tabular output file"; + while () + { + if (/^\#/) { next; } + @fields = split(' ', $_, 7); + $target = $fields[0]; + $pval = $fields[4]; + $bitscore = $fields[5]; + printf OUTFILE "%g %.1f %s %s\n", $pval, $bitscore, $target, $msaname; + } + + unlink "$resultdir/$msaname.hmm"; + unlink "$resultdir/$msaname.sto"; + unlink "$resultdir/$msaname.tmp"; +} +close TABLE; +close OUTFILE; + + + + + + diff --git a/bioinformaticsProject/hmmer/profmark/x-hmmsearch-max b/bioinformaticsProject/hmmer/profmark/x-hmmsearch-max new file mode 100755 index 0000000..b685b60 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-hmmsearch-max @@ -0,0 +1,72 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for hmmsearch --max. +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-hmmsearch-max +# Example: ./x-hmmsearch-max ~/releases/hmmer-3.0/build-icc-mpi ~/releases/hmmer-3.0 testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Tue Apr 20 10:39:31 2010 [Janelia] +# SVN $Id$ + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $resultdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} + +$hmmbuild = "$top_builddir/src/hmmbuild"; +$hmmsearch = "$top_builddir/src/hmmsearch"; +$buildopts = ""; +$searchopts = "--max -E 200 --cpu 1"; + +if (! -d $top_builddir) { die "didn't find build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find src directory $top_srcdir"; } +if (! -x $hmmbuild) { die "didn't find executable $hmmbuild"; } +if (! -x $hmmsearch) { die "didn't find executable $hmmsearch"; } +if (! -e $resultdir) { die "$resultdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +while (
) +{ + ($msaname) = split; + + $output = `esl-afetch -o $resultdir/$msaname.sto $msafile $msaname`; + if ($? != 0) { die "FAILED: esl-afetch -o $resultdir/$msaname.sto $msafile $msaname"; } + + $output = `$hmmbuild $buildopts $resultdir/$msaname.hmm $resultdir/$msaname.sto`; + if ($? != 0) { die "FAILED: $hmmbuild $buildopts $resultdir/$msaname.hmm $resultdir/$msaname.sto"; } + + $status = system("$hmmsearch $searchopts --tblout $resultdir/$msaname.tmp $resultdir/$msaname.hmm $fafile > /dev/null"); + if ($status != 0) { die "FAILED: $hmmsearch $searchopts --tblout $resultdir/$msaname.tmp $resultdir/$msaname.hmm $fafile"; } + + open(OUTPUT, "$resultdir/$msaname.tmp") || die "FAILED: to open $resultdir/$msaname.tmp tabular output file"; + while () + { + if (/^\#/) { next; } + @fields = split(' ', $_, 7); + $target = $fields[0]; + $pval = $fields[4]; + $bitscore = $fields[5]; + printf OUTFILE "%g %.1f %s %s\n", $pval, $bitscore, $target, $msaname; + } + + unlink "$resultdir/$msaname.hmm"; + unlink "$resultdir/$msaname.sto"; + unlink "$resultdir/$msaname.tmp"; +} +close TABLE; +close OUTFILE; + + + + + + diff --git a/bioinformaticsProject/hmmer/profmark/x-iterate-jackhmmer b/bioinformaticsProject/hmmer/profmark/x-iterate-jackhmmer new file mode 100755 index 0000000..826d264 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-iterate-jackhmmer @@ -0,0 +1,67 @@ +#! /usr/bin/perl + +$n_iterations = 1; +# $n_iterations = 2; # uncomment as needed for -n2, -n3 tests... +# $n_iterations = 3; + + +$top_builddir = shift; +$top_srcdir = shift; +$wrkdir = shift; +$tblfile = shift; +$msafile = shift; +$fafile = shift; +$outfile = shift; + +$jackhmmer = "$top_builddir/src/jackhmmer"; +$hmmbuild = "$top_builddir/src/hmmbuild"; +$hmmsearch = "$top_builddir/src/hmmsearch"; +$iteropts = "-N $n_iterations --cpu 1"; +$searchopts = "-E 200 --cpu 1"; + +if (! -d $top_builddir) { die "didn't find build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find source directory $top_srcdir"; } +if (! -x $jackhmmer) { die "didn't find executable $jackhmmer"; } +if (! -x $hmmbuild) { die "didn't find executable $hmmbuild"; } +if (! -x $hmmsearch) { die "didn't find executable $hmmsearch"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } +if (! -e "$fafile.iter") { die "iteration db $fafile.iter doesn't exist"; } + + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + $cmd = "esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Fetch the query MSA from the benchmark; tmp .sto file here + $cmd = "esl-seqstat --amino -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n", next MSA; } # Extract list of indiv seq names. --amino for robustness, some msa's v. small + @qnames = split(/^/,$output); + chop (@qnames); + $qname = $qnames[0]; + $cmd = "esl-sfetch -o $wrkdir/$msaname.query $wrkdir/$msaname.sto $qname > /dev/null"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Pick a single seq (first one) to tmp file; tmp .query file here + + $cmd = "$jackhmmer $iteropts -A $wrkdir/$msaname.jck $wrkdir/$msaname.query $fafile.iter > /dev/null"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Iterate n times on the .iter intermediate database (NR, whatever); alignment to tmp .jck file + $cmd = "$hmmbuild --hand $wrkdir/$msaname.hmm $wrkdir/$msaname.jck > /dev/null`"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Build a model from .jck, using the same architecture (--hand) + $cmd = "$hmmsearch $searchopts --tblout $wrkdir/$msaname.tmp $wrkdir/$msaname.hmm $fafile > /dev/null"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Search against benchmark .fa file; results to tmp .tmp tbl file + + if (! open(OUTPUT, "$wrkdir/$msaname.tmp")) { print "FAILED: to open $wrkdir/$msaname.tmp"; next MSA; } + while () + { + if (/^\#/) { next; } + @fields = split(' ', $_, 7); + $target = $fields[0]; + $pval = $fields[4]; + $bitscore = $fields[5]; + printf OUTFILE "%g %.1f %s %s\n", $pval, $bitscore, $target, $msaname; + } + close OUTPUT; + unlink "$wrkdir/$msaname.tmp"; + unlink "$wrkdir/$msaname.hmm"; + unlink "$wrkdir/$msaname.jck"; + unlink "$wrkdir/$msaname.query"; + unlink "$wrkdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-iterate-psiblast b/bioinformaticsProject/hmmer/profmark/x-iterate-psiblast new file mode 100755 index 0000000..bc83581 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-iterate-psiblast @@ -0,0 +1,74 @@ +#! /usr/bin/perl -w + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_blast; + +$n_iterations = 1; +$n_iterations +=1; # +1 because psi-blast stores checkpoint file from the PREVIOUS iteration. + +$blastpgp = "${top_builddir}/bin/blastpgp"; +$blastopts1 = "-a 1 -v 9999 -b 0 -F T -u 1 -j $n_iterations -J TRUE"; # opts for generating checkpoint file +$blastopts2 = "-a 1 -v 9999 -b 0 -F F -q 1 -t 1"; # opts for searching the benchmark +# explanation of options +# -a 1 : run a single thread/cpu (benchmark sends independent jobs to our cluster nodes, uses all cpus that way already) +# -v 9999 : show a large hit list, deep into noise (benchmark calculates its own false positive threshold) +# -b 0 : suppresses alignment output (benchmark only needs the top hits) +# -F T : filters query seq with SEG (can't use this option on -R restored checkpoint file) +# -j : number of rounds to iterate in the iteration stage, on the iteration db. Minimum n=2, because the checkpoint file is for the *prev* round. (n=1 generates only a blastp output and no checkpoint) +# -u 1 : specifies checkpoint output file is in ASN.1 ASCII +# -q 1 : specifies checkpoint input file is in ASN.1 ASCII +# -J TRUE : "believe the query defline", but I don't recall why I needed this. +# -t 1 : blastpgp -R checkpoint restart only supports -t 1; otherwise it will bitch. +# +# also will add -i -d ; +# and -C for the iteration stage +# and -R for the benchmark search. + +if (! -d $top_builddir) { die "didn't find BLAST build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $blastpgp) { die "didn't find executable $blastpgp"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + $cmd = "esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Fetch the query MSA from the benchmark; tmp .sto file here + $cmd = "esl-seqstat --amino -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n", next MSA; } # Extract list of indiv seq names. --amino for robustness, some msa's v. small + @qnames = split(/^/,$output); + chop (@qnames); + $qname = $qnames[0]; + $cmd = "esl-sfetch -o $wrkdir/$msaname.query $wrkdir/$msaname.sto $qname > /dev/null"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Pick a single seq (first one) to tmp file; tmp .query file here + + $cmd = "$blastpgp $blastopts1 -d $fafile.iter -i $wrkdir/$msaname.query -C $wrkdir/$msaname.asnt"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Iterate on the .iter database. tmp .asnt checkpoint file here. + $cmd = "$blastpgp $blastopts2 -d $fafile -R $wrkdir/$msaname.asnt 2>/dev/null |"; if (! open(PSIBLAST, "$cmd")) { print "FAILED: $cmd\n"; next MSA; } # Search the benchmark database + + if (! demotic_blast::parse(\*PSIBLAST)) { print "FAILED: demotic psiblast parser on $msaname\n"; next MSA; } + for ($i = 0; $i < $demotic_blast::nhits; $i++) + { + printf OUTFILE ("%g\t%.1f\t%s\t%s\n", + $demotic_blast::hit_Eval[$i], + $demotic_blast::hit_bitscore[$i], + $demotic_blast::hit_target[$i], + $msaname); + } + + close PSIBLAST; + unlink "$wrkdir/$msaname.query"; + unlink "$wrkdir/$msaname.sto"; + unlink "$wrkdir/$msaname.asnt"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-phmmer-consensus b/bioinformaticsProject/hmmer/profmark/x-phmmer-consensus new file mode 100755 index 0000000..a7dae04 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-phmmer-consensus @@ -0,0 +1,64 @@ +#! /usr/bin/perl + +# Do a piece of a profmark benchmark, for phmmer searches using a +# consensus sequence query. +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-phmmer-consensus +# +# SRE, Sun Feb 7 08:58:12 2010 [Case de Gatos] +# SVN $Id$ +# + +$top_builddir = shift; +$top_srcdir = shift; +$resultdir = shift; +$tblfile = shift; +$msafile = shift; +$fafile = shift; +$outfile = shift; + +$phmmer = "$top_builddir/src/phmmer"; +$esl_afetch = "$top_builddir/easel/miniapps/esl-afetch"; +$hmmbuild = "$top_builddir/src/hmmbuild --wnone --enone --laplace"; # for building consensus seqs +$hmmemit = "$top_builddir/src/hmmemit -c"; +$opts = ""; + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +while (
) +{ + ($msaname) = split; + + # Fetch the query MSA from the benchmark (.sto file) + $output = `$esl_afetch -o $resultdir/$msaname.sto $msafile $msaname`; + if ($? != 0) { die "FAILED: $esl_afetch -o $resultdir/$msaname.sto $msafile $msaname"; } + + # Create a profile HMM from it (.hmm file; .query.fa file) + $output = `$hmmbuild $resultdir/$msaname.hmm $resultdir/$msaname.sto`; + if ($? != 0) { die "FAILED: $hmmbuild $resultdir/$msaname.hmm $resultdir/$msaname.sto"; } + + $output = `$hmmemit -o $resultdir/$msaname.query.fa $resultdir/$msaname.hmm`; + if ($? != 0) { die "FAILED: hmmemit -o $resultdir/$msaname.query.fa $resultdir/$msaname.hmm"; } + + # PHMMER it against the benchmark + $output = `$phmmer $opts --cpu 1 --tblout $resultdir/$msaname.tmp $resultdir/$msaname.query.fa $fafile > /dev/null`; + if ($? != 0) { die "FAILED: $phmmer --tblout $resultdir/$msaname.tmp $opts $resultdir/$msaname.query.fa $fafile"; } + + open(OUTPUT, "$resultdir/$msaname.tmp") || die "FAILED: to open $resultdir/$msaname.tmp tabular output file"; + while () + { + if (/^\#/) { next; } + ($target, $tacc, $query, $qacc, $pval, $bitscore, $remainder) = split(' ', $_, 7); + printf OUTFILE "%g %.1f %s %s\n", $pval, $bitscore, $target, $msaname; + } + + unlink "$resultdir/$msaname.tmp"; + unlink "$resultdir/$msaname.query.fa"; + unlink "$resultdir/$msaname.hmm"; + unlink "$resultdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-psiblast b/bioinformaticsProject/hmmer/profmark/x-psiblast new file mode 100755 index 0000000..404bebc --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-psiblast @@ -0,0 +1,105 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for PSI-BLAST +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-psiblast +# +# Example: ./x-psiblast /usr/local/blast-2.2.22 ~/src/hmmer testdir test.tbl pmark.msa test.fa test.out +# +# For best results, the target database should be masked. For example: +# seg pmark.fa -x > pmark-seg.fa +# + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_blast; + +$formatdb = "${top_builddir}/bin/formatdb"; +$blastpgp = "${top_builddir}/bin/blastpgp"; +$blastopts1 = "-a 1 -v 9999 -b 0 -F T -u 1 -j 5 -J TRUE"; # opts for generating checkpoint file +$blastopts2 = "-a 1 -v 9999 -b 0 -F F -q 1 -t 1"; # opts for searching the benchmark + +if (! -d $top_builddir) { die "didn't find H2 build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $formatdb) { die "didn't find executable $formatdb"; } +if (! -x $blastpgp) { die "didn't find executable $blastpgp"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + # Fetch the query MSA from the benchmark (.sto file) + $output = `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($? != 0) { print "FAILED: esl-afetch on $msaname\n"; next MSA; } + + # Reformat to psiblast format (.pbl file) + $output = `esl-reformat -o $wrkdir/$msaname.pbl psiblast $wrkdir/$msaname.sto`; + if ($? != 0) { print "FAILED: esl-reformat psiblast on $msaname\n"; next MSA; } + + # Select median length single sequence as the "query" (.query.fa file) + $output = `esl-seqstat -a $wrkdir/$msaname.sto | grep "^=" | sort -n -k3 | awk '{print \$2}'`; + if ($?) { print "FAILED: esl-seqstat on $msaname\n"; next MSA; } + @qnames = split(/^/,$output); + chop (@qnames); + $qname = $qnames[ int(($#qnames+1) / 2)]; + $output = `esl-sfetch -o $wrkdir/$msaname.query.fa $wrkdir/$msaname.sto $qname`; + if ($?) { print "FAILED: esl-sfetch on $msaname\n"; next MSA; } + + # Create a PSI-BLAST checkpoint file by iterative search of the query + # against the seed sequences. (Thus, we're not using the seed alignment, + # only the seed seqs) + $output = `esl-reformat -o $wrkdir/$msaname.fa fasta $wrkdir/$msaname.sto`; + if ($?) { print "FAILED: esl-reformat fasta on $msaname\n"; next MSA; } + + $output = `seg $wrkdir/$msaname.fa -x > $wrkdir/$msaname.x.fa`; + if ($?) { print "FAILED: esl-reformat fasta on $msaname\n"; next MSA; } + + $output = `$formatdb -i $wrkdir/$msaname.x.fa`; + if ($?) { print "FAILED: formatdb on $msaname\n"; next MSA; } + + $output = `$blastpgp $blastopts1 -d $wrkdir/$msaname.x.fa -i $wrkdir/$msaname.query.fa -C $wrkdir/$msaname.asnt`; + if ($?) { print "FAILED: blastpgp checkpoint file on $msaname\n"; next MSA; } + + # Run psi-blast against the benchmark + if (! open(PSIBLAST, "$blastpgp $blastopts2 -d $fafile -R $wrkdir/$msaname.asnt 2>/dev/null |")) { print "FAILED: $blastpgp on $msaname\n"; next MSA; } + if (! demotic_blast::parse(\*PSIBLAST) ) { print "FAILED: demotic psiblast parser on $msaname\n"; next MSA; } + + for ($i = 0; $i < $demotic_blast::nhits; $i++) + { + printf OUTFILE ("%g\t%.1f\t%s\t%s\n", + $demotic_blast::hit_Eval[$i], + $demotic_blast::hit_bitscore[$i], + $demotic_blast::hit_target[$i], + $msaname); + } + close PSIBLAST; + + unlink "$wrkdir/$msaname.query.fa"; + unlink "$wrkdir/$msaname.hmm"; + unlink "$wrkdir/$msaname.pbl"; + unlink "$wrkdir/$msaname.sto"; + unlink "$wrkdir/$msaname.asnt"; + unlink "$wrkdir/$msaname.fa"; + unlink "$wrkdir/$msaname.x.fa"; + unlink "$wrkdir/$msaname.x.fa.phr"; + unlink "$wrkdir/$msaname.x.fa.pin"; + unlink "$wrkdir/$msaname.x.fa.psq"; + unlink "$wrkdir/formatdb.log"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-psiblast+ b/bioinformaticsProject/hmmer/profmark/x-psiblast+ new file mode 100755 index 0000000..1bc3d8d --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-psiblast+ @@ -0,0 +1,70 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for PSI-BLAST+ +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-psiblast+ +# Example: ./x-psiblast+ /usr/local/ncbi-blast-2.2.21+ ~/src/hmmer/trunk testdir test.tbl pmark.msa test.fa test.out +# +# For best results, the target database should be masked. For example: +# seg pmark.fa -x > pmark-seg.fa +# + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_blast; + +$formatdb = "${top_builddir}/bin/makeblastdb"; +$psiblast = "${top_builddir}/bin/psiblast"; +$blastopts = "-num_threads 1 -num_descriptions 9999 -num_alignments 0"; # opts for searching the benchmark + +if (! -d $top_builddir) { die "didn't find H2 build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $formatdb) { die "didn't find executable $formatdb"; } +if (! -x $psiblast) { die "didn't find executable $psiblast"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + # Fetch the query MSA from the benchmark (.sto file) + $output = `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($? != 0) { print "FAILED: esl-afetch on $msaname\n"; next MSA; } + + # Reformat to psiblast format (.pbl file) + $output = `esl-reformat -o $wrkdir/$msaname.pbl psiblast $wrkdir/$msaname.sto`; + if ($? != 0) { print "FAILED: esl-reformat psiblast on $msaname\n"; next MSA; } + + # Run psi-blast against the benchmark + if (! open(PSIBLAST, "$psiblast $blastopts -db $fafile -in_msa $wrkdir/$msaname.pbl 2>/dev/null |")) { print "FAILED: $psiblast on $msaname\n"; next MSA; } + if (! demotic_blast::parse(\*PSIBLAST) ) { print "FAILED: demotic psiblast parser on $msaname\n"; next MSA; } + + for ($i = 0; $i < $demotic_blast::nhits; $i++) + { + printf OUTFILE ("%g\t%.1f\t%s\t%s\n", + $demotic_blast::hit_Eval[$i], + $demotic_blast::hit_bitscore[$i], + $demotic_blast::hit_target[$i], + $msaname); + } + close PSIBLAST; + + unlink "$wrkdir/$msaname.pbl"; + unlink "$wrkdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-sam b/bioinformaticsProject/hmmer/profmark/x-sam new file mode 100755 index 0000000..4b206f9 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-sam @@ -0,0 +1,87 @@ +#! /usr/bin/perl -w + +# Do a piece of a profmark benchmark, for SAM. +# +# This script is normally called by pmark_master.pl; its command line +# syntax is tied to pmark_master.pl. +# +# Usage: x-sam +# Example: ./x-sam ~/alien-src/sam-3.5/sam3.5.x86_64-linux ~/src/hmmer testdir test.tbl pmark.msa test.fa test.out +# +# SRE, Tue Apr 20 10:42:48 2010 [Janelia] +# SVN $Id$ + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} + +$w05 = "$top_builddir/bin/w0.5"; +$hmmscore = "$top_builddir/bin/hmmscore"; + +if (! -d $top_builddir) { die "didn't find directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find directory $top_srcdir"; } +if (! -x $w05) { die "didn't find executable $w05"; } +if (! -x $hmmscore) { die "didn't find executable $hmmscore"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +while (
) +{ + ($msaname) = split; + + # Fetch query MSA from benchmark's .sto file + $output = `esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname`; + if ($? != 0) { die "FAILED: esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname"; } + + # Reformat to A2M format (.a2m file) + $output = `esl-reformat -o $wrkdir/$msaname.a2m a2m $wrkdir/$msaname.sto`; + if ($? != 0) { die "FAILED: esl-reformat"; } + + # Build a model using UCSC's w0.5 script (.mod file) + `(cd $wrkdir; $w05 $msaname.a2m $msaname.mod &> /dev/null)`; + if ($? != 0) { die "FAILED: $w05"; } + + # Calibrate the model (.mlib file) + `(cd $wrkdir; $hmmscore $msaname -i $msaname.mod -calibrate 1 &> /dev/null)`; + if ($? != 0) { die "FAILED: $hmmscore -calibrate"; } + + # Run hmmscore, search the benchmark .fa file. The result (a .dist file) drops into the wd. + `(cd $wrkdir; $hmmscore $msaname -modellibrary $msaname.mlib -db ../$fafile -sw 2 &> /dev/null)`; + if ($? != 0) { die "FAILED: $hmmscore"; } + + # The output is now in the intuitively named file (wait for it): .1..mod.dist + open (SAMOUTPUT,"$wrkdir/$msaname.1.$msaname.mod.dist") || die "failed to open sam output"; + while ($line = ) + { + if ($line =~ /^%/) { next; } + @fields = split(' ', $line); + $target = $fields[0]; + $revnll = $fields[3]; + $evalue = $fields[4]; + if ($evalue > 100) { next; } + printf OUTFILE "%g %.1f %s %s\n", $evalue, $revnll, $target, $msaname; + } + close SAMOUTPUT; + + unlink "$wrkdir/$msaname.1.$msaname.mod.dist"; + unlink "$wrkdir/$msaname.dist"; + unlink "$wrkdir/$msaname.mlib"; + unlink "$wrkdir/$msaname.mod"; + unlink "$wrkdir/$msaname.a2m"; + unlink "$wrkdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; + + + + + + diff --git a/bioinformaticsProject/hmmer/profmark/x-single-ncbiblast b/bioinformaticsProject/hmmer/profmark/x-single-ncbiblast new file mode 100755 index 0000000..31a92e4 --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-single-ncbiblast @@ -0,0 +1,57 @@ +#! /usr/bin/perl -w + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_blast; + +$blastp = "${top_builddir}/bin/blastall"; +$blastopts = "-p blastp -a 1 -v 9999 -b 0"; +# -a 1 : 1 cpu +# -v 9999 : long hit list, well into noise +# -b 0 : suppress alignment output, benchmark doesn't use it + +if (! -d $top_builddir) { die "didn't find BLAST build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $blastp) { die "didn't find executable $blastp"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + $cmd = "esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Fetch the query MSA from the benchmark; tmp .sto file here + $cmd = "esl-seqstat --amino -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n", next MSA; } # Extract list of indiv seq names. --amino for robustness, some msa's v. small + @qnames = split(/^/,$output); + chop (@qnames); + $qname = $qnames[0]; + $cmd = "esl-sfetch -o $wrkdir/$msaname.query $wrkdir/$msaname.sto $qname > /dev/null"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Pick a single seq (first one) to tmp file; tmp .query file here + + $cmd = "$blastp -d $fafile -i $wrkdir/$msaname.query $blastopts |"; if (! open(BLASTP, "$cmd")) { print "FAILED: $cmd\n"; next MSA; } + + if (! demotic_blast::parse(\*BLASTP)) { print "FAILED: demotic blastp parser on $msaname\n"; next MSA; } + + for ($i = 0; $i < $demotic_blast::nhits; $i++) + { + $target = $demotic_blast::hit_target[$i]; + $pval = $demotic_blast::hit_Eval[$i]; + $bitscore = $demotic_blast::hit_bitscore[$i]; + printf OUTFILE "%g %.1f %s %s\n", $pval, $bitscore, $target, $msaname; + } + + close BLASTP; + unlink "$wrkdir/$msaname.sto"; + unlink "$wrkdir/$msaname.query"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-single-phmmer b/bioinformaticsProject/hmmer/profmark/x-single-phmmer new file mode 100755 index 0000000..415c0ee --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-single-phmmer @@ -0,0 +1,52 @@ +#! /usr/bin/perl + +$top_builddir = shift; +$top_srcdir = shift; +$wrkdir = shift; +$tblfile = shift; +$msafile = shift; +$fafile = shift; +$outfile = shift; + +$phmmer = "$top_builddir/src/phmmer"; +$searchopts = "-E 200 --cpu 1"; + +if (! -d $top_builddir) { die "didn't find build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find source directory $top_srcdir"; } +if (! -x $phmmer) { die "didn't find executable $jackhmmer"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + $cmd = "esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Fetch the query MSA from the benchmark; tmp .sto file here + $cmd = "esl-seqstat --amino -a $wrkdir/$msaname.sto | grep '^=' | awk '{print \$2}'"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n", next MSA; } # Extract list of indiv seq names. --amino for robustness, some msa's v. small + @qnames = split(/^/,$output); + chop (@qnames); + $qname = $qnames[0]; + $cmd = "esl-sfetch -o $wrkdir/$msaname.query $wrkdir/$msaname.sto $qname > /dev/null"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Pick a single seq (first one) to tmp file; tmp .query file here + + $cmd = "$phmmer $searchopts --tblout $wrkdir/$msaname.tmp $wrkdir/$msaname.query $fafile > /dev/null"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # phmmer against benchmark db; tmp .tmp output file here + + if (! open(OUTPUT, "$wrkdir/$msaname.tmp")) { print "FAILED: to open $wrkdir/$msaname.tmp"; next MSA; } + while () + { + if (/^\#/) { next; } + @fields = split(' ', $_, 7); + $target = $fields[0]; + $pval = $fields[4]; + $bitscore = $fields[5]; + printf OUTFILE "%g %.1f %s %s\n", $pval, $bitscore, $target, $msaname; + } + + close OUTPUT; + unlink "$wrkdir/$msaname.tmp"; + unlink "$wrkdir/$msaname.query"; + unlink "$wrkdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/profmark/x-single-ssearch b/bioinformaticsProject/hmmer/profmark/x-single-ssearch new file mode 100755 index 0000000..853bcaf --- /dev/null +++ b/bioinformaticsProject/hmmer/profmark/x-single-ssearch @@ -0,0 +1,57 @@ +#! /usr/bin/perl -w + +BEGIN { + $top_builddir = shift; + $top_srcdir = shift; + $wrkdir = shift; + $tblfile = shift; + $msafile = shift; + $fafile = shift; + $outfile = shift; +} +use lib "${top_srcdir}/easel/demotic"; +use demotic_fasta; + +$fasta = "${top_builddir}/bin/ssearch36"; +$opts = "-q -E 200 -d 0 -H"; +# -q = quiet (batch) mode +# -E 200 = report top hits deeper into noise, down to E=200 (default was 10) +# -d 0 = suppresses alignment output; we only need the hit list +# -H = suppresses histogram output. + +if (! -d $top_builddir) { die "didn't find FASTA/SSEARCH build directory $top_builddir"; } +if (! -d $top_srcdir) { die "didn't find H3 source directory $top_srcdir"; } +if (! -x $fasta) { die "didn't find executable $fasta"; } +if (! -e $wrkdir) { die "$wrkdir doesn't exist"; } + +open(OUTFILE,">$outfile") || die "failed to open $outfile"; +open(TABLE, "$tblfile") || die "failed to open $tblfile"; +MSA: +while (
) +{ + ($msaname) = split; + + $cmd = "esl-afetch -o $wrkdir/$msaname.sto $msafile $msaname"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Fetch the query MSA from the benchmark; tmp .sto file here + $cmd = "esl-seqstat --amino -a $wrkdir/$msaname.sto | grep "^=" | awk '{print \$2}'"; $output = `$cmd`; if ($?) { print "FAILED: $cmd\n", next MSA; } # Extract list of indiv seq names. --amino for robustness, some msa's v. small + @qnames = split(/^/,$output); + chop (@qnames); + $qname = $qnames[0]; + $cmd = "esl-sfetch -o $wrkdir/$msaname.query $wrkdir/$msaname.sto $qname > /dev/null"; `$cmd`; if ($?) { print "FAILED: $cmd\n"; next MSA; } # Pick a single seq (first one) to tmp file; tmp .query file here + + # search it against the benchmark db + $cmd = "$fasta $opts $wrkdir/$msaname.query $fafile |"; if (! open(FASTA, "$cmd")) { print "FAILED: $cmd\n", next MSA; } + + if (! demotic_fasta::parse(\*FASTA)) { print "FAILED: demotic fasta parser on $msaname\n"; next MSA; } + for ($i = 0; $i < $demotic_fasta::nhits; $i++) + { + $target = $demotic_fasta::hit_target[$i]; + $pval = $demotic_fasta::hit_Eval[$i]; + $bitscore = $demotic_fasta::hit_bitscore[$i]; + printf OUTFILE "%g %.1f %s %s\n", $pval, $bitscore, $target, $msaname; + } + close FASTA; + unlink "$wrkdir/$msaname.query"; + unlink "$wrkdir/$msaname.sto"; +} +close TABLE; +close OUTFILE; diff --git a/bioinformaticsProject/hmmer/src/Makefile.in b/bioinformaticsProject/hmmer/src/Makefile.in new file mode 100644 index 0000000..42d327b --- /dev/null +++ b/bioinformaticsProject/hmmer/src/Makefile.in @@ -0,0 +1,381 @@ +# VPATH and shell configuration +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +SHELL = /bin/sh + +# Installation targets +# +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +mandir = @mandir@ +docdir = @docdir@ +pdfdir = @pdfdir@ +mandir = @mandir@ +man1dir = ${mandir}/man1 +man1ext = .1 + +CC = @CC@ +CFLAGS = @CFLAGS@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PIC_CFLAGS = @PIC_CFLAGS@ +SSE_CFLAGS = @SSE_CFLAGS@ +VMX_CFLAGS = @VMX_CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +DEFS = @DEFS@ +LIBS = -lhmmer -leasel -ldivsufsort @LIBS@ @LIBGSL@ @PTHREAD_LIBS@ -lm + +AR = @AR@ +RANLIB = @RANLIB@ +STRIP = @STRIP@ +INSTALL = @INSTALL@ + +IMPLDIR = impl_@IMPL_CHOICE@ +ESLDIR = @HMMER_ESLDIR@ +SADIR = @HMMER_SADIR@ + +MYLIBDIRS = -L../${ESLDIR} -L./${IMPLDIR} -L../${SADIR} -L. +MYINCDIRS = -I../${ESLDIR} \ + -I../${SADIR} \ + -I${top_srcdir}/easel \ + -I. \ + -I${srcdir} + + +PROGS = alimask\ + hmmalign\ + hmmbuild\ + hmmconvert\ + hmmemit\ + hmmfetch\ + hmmlogo\ + hmmpgmd\ + hmmpgmd_shard\ + hmmpress\ + hmmscan\ + hmmsearch\ + hmmsim\ + hmmstat\ + jackhmmer\ + phmmer\ + nhmmer\ + nhmmscan\ + makehmmerdb + +# "auxprogs" are built but not installed. +AUXPROGS = \ + hmmc2 \ + hmmerfm-exactmatch + +PROGOBJS =\ + alimask.o\ + hmmalign.o\ + hmmbuild.o\ + hmmconvert.o\ + hmmemit.o\ + hmmfetch.o\ + hmmlogo.o\ + hmmpgmd.o\ + hmmpress.o\ + hmmscan.o\ + hmmsearch.o\ + hmmsim.o\ + hmmstat.o\ + jackhmmer.o\ + phmmer.o\ + nhmmer.o\ + nhmmscan.o\ + makehmmerdb.o + +AUXPROGOBJS = \ + hmmc2.o \ + hmmerfm-exactmatch.o + +HDRS = hmmer.h \ + cachedb.h \ + p7_gbands.h \ + p7_gmxb.h \ + p7_gmxchk.h \ + p7_hmmcache.h + +OBJS = build.o\ + cachedb.o\ + cachedb_shard.o\ + emit.o\ + errors.o\ + evalues.o\ + eweight.o\ + generic_decoding.o\ + generic_fwdback.o\ + generic_fwdback_chk.o\ + generic_fwdback_banded.o\ + generic_null2.o\ + generic_msv.o\ + generic_optacc.o\ + generic_stotrace.o\ + generic_viterbi.o\ + generic_vtrace.o\ + h2_io.o\ + heatmap.o\ + hmmlogo.o\ + hmmdmstr.o\ + hmmdmstr_shard.o\ + hmmd_search_status.o\ + hmmdwrkr.o\ + hmmdwrkr_shard.o\ + hmmdutils.o\ + hmmer.o\ + logsum.o\ + modelconfig.o\ + modelstats.o\ + mpisupport.o\ + seqmodel.o\ + tracealign.o\ + p7_alidisplay.o\ + p7_bg.o\ + p7_builder.o\ + p7_domain.o\ + p7_domaindef.o\ + p7_gbands.o\ + p7_gmx.o\ + p7_gmxb.o\ + p7_gmxchk.o\ + p7_hit.o\ + p7_hmm.o\ + p7_hmmcache.o\ + p7_hmmd_search_stats.o\ + p7_hmmfile.o\ + p7_hmmwindow.o\ + p7_pipeline.o\ + p7_prior.o\ + p7_profile.o\ + p7_spensemble.o\ + p7_tophits.o\ + p7_trace.o\ + p7_scoredata.o\ + hmmpgmd2msa.o\ + fm_alphabet.o\ + fm_general.o\ + fm_sse.o\ + fm_ssv.o +# island.o\ + +STATS = \ + evalues_stats + +BENCHMARKS = \ + evalues_benchmark\ + logsum_benchmark\ + generic_decoding_benchmark\ + generic_fwdback_benchmark\ + generic_fwdback_chk_benchmark\ + generic_msv_benchmark\ + generic_null2_benchmark\ + generic_optacc_benchmark\ + generic_stotrace_benchmark\ + generic_viterbi_benchmark \ + p7_hmmcache_benchmark + +UTESTS =\ + build_utest\ + generic_fwdback_utest\ + generic_fwdback_chk_utest\ + generic_msv_utest\ + generic_stotrace_utest\ + generic_viterbi_utest\ + hmmer_utest\ + logsum_utest\ + modelconfig_utest\ + seqmodel_utest\ + p7_alidisplay_utest\ + p7_bg_utest\ + p7_domain_utest\ + p7_gmx_utest\ + p7_gmxchk_utest\ + p7_hit_utest\ + p7_hmmd_search_stats_utest\ + p7_hmm_utest\ + p7_hmmfile_utest\ + p7_profile_utest\ + p7_tophits_utest\ + p7_trace_utest\ + p7_scoredata_utest\ + hmmpgmd2msa_utest\ + hmmd_search_status_utest + +ITESTS = \ + itest_brute + +EXAMPLES = \ + build_example\ + emit_example\ + generic_fwdback_example\ + generic_fwdback_chk_example\ + generic_msv_example\ + generic_decoding_example\ + generic_optacc_example\ + generic_stotrace_example\ + generic_viterbi_example\ + generic_vtrace_example\ + logsum_example\ + p7_alidisplay_example\ + p7_bg_example\ + p7_bg_example2\ + p7_domaindef_example\ + p7_hmmfile_example\ + p7_pipeline_example\ + p7_spensemble_example + +# beautification magic stolen from git +QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c +QUIET_SUBDIR1 = +ifndef V + QUIET_CC = @echo ' ' CC $@; + QUIET_GEN = @echo ' ' GEN $@; + QUIET_AR = @echo ' ' AR $@; + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ; echo ' ' SUBDIR $$subdir; \ + ${MAKE} -s -C $$subdir +endif + +.PHONY: all dev tests check install install-strip uninstall distclean clean TAGS + +all: ${PROGS} ${AUXPROGS} .FORCE + +dev: ${PROGS} ${AUXPROGS} ${UTESTS} ${ITESTS} ${STATS} ${BENCHMARKS} ${EXAMPLES} .FORCE + ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} dev + +tests: ${PROGS} ${AUXPROGS} ${UTESTS} ${ITESTS} .FORCE + ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} tests + +check: ${PROGS} ${AUXPROGS} ${UTESTS} ${ITESTS} .FORCE + ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} check + +libhmmer.a: libhmmer-src.stamp .FORCE + ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} libhmmer-impl.stamp + +libhmmer-src.stamp: ${OBJS} + ${QUIET_AR}${AR} -r libhmmer.a $? > /dev/null 2>&1 + @${RANLIB} libhmmer.a + @echo "src_lib objects compiled:\c" > $@ + @date >> $@ + +.FORCE: + +${OBJS}: ${HDRS} p7_config.h +${PROGOBJS}: ${HDRS} p7_config.h +${AUXPROGOBJS}: ${HDRS} p7_config.h + +${PROGS} ${AUXPROGS}: % : %.o libhmmer.a ../${ESLDIR}/libeasel.a + ${QUIET_GEN}${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${DEFS} ${LDFLAGS} ${MYLIBDIRS} -o $@ $@.o ${LIBS} + +.c.o: + ${QUIET_CC}${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${DEFS} ${CPPFLAGS} ${MYINCDIRS} -o $@ -c $< + +${ITESTS}: % : %.o libhmmer.a ${HDRS} p7_config.h + ${QUIET_GEN}${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${DEFS} ${LDFLAGS} ${MYLIBDIRS} -o $@ $@.o ${LIBS} + +${UTESTS}: libhmmer.a ${HDRS} p7_config.h + @BASENAME=`echo $@ | sed -e 's/_utest//' | sed -e 's/^p7_//'` ;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_TESTDRIVE ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "{CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +${BENCHMARKS}: libhmmer.a ${HDRS} p7_config.h + @BASENAME=`echo $@ | sed -e 's/_benchmark//' | sed -e 's/^p7_//'` ;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_BENCHMARK ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "{CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +${STATS}: libhmmer.a ${HDRS} p7_config.h + @BASENAME=`echo $@ | sed -e 's/_stats//' | sed -e 's/^p7_//'` ;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_STATS ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "{CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +${EXAMPLES}: libhmmer.a ${HDRS} p7_config.h + @BASENAME=`echo $@ | sed -e 's/_example[0-9]*//' | sed -e 's/^p7_//'` ;\ + DFLAG=p7`echo $@ | sed -e 's/^p7_//' | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "{CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SSE_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +install: + for file in ${PROGS}; do \ + ${INSTALL} -m 0755 $$file ${DESTDIR}${bindir}/ ;\ + done + +install-strip: + for file in ${PROGS}; do \ + ${STRIP} $$file ;\ + ${INSTALL} -m 0755 $$file ${DESTDIR}${bindir}/ ;\ + done + +uninstall: + for file in ${PROGS}; do \ + rm -f ${DESTDIR}${bindir}/$$file ;\ + done + +clean: + ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} clean + -rm -f *.o *~ Makefile.bak core ${PROGS} ${AUXPROGS} TAGS gmon.out + -rm -f libhmmer.a libhmmer-src.stamp + -rm -f ${UTESTS} + -rm -f ${ITESTS} + -rm -f ${STATS} + -rm -f ${BENCHMARKS} + -rm -f ${EXAMPLES} + -rm -f *.gcno + -rm -f cscope.out + for prog in ${PROGS} ${AUXPROGS} ${UTESTS} ${STATS} ${BENCHMARKS} ${EXAMPLES} ${ITESTS}; do \ + if test -d $$prog.dSYM; then rm -rf $$prog.dSYM; fi ;\ + done +ifndef V + @echo ' ' CLEAN src +endif + +distclean: clean + ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} distclean + -rm -f Makefile p7_config.h + + + diff --git a/bioinformaticsProject/hmmer/src/alimask.c b/bioinformaticsProject/hmmer/src/alimask.c new file mode 100644 index 0000000..b4d0682 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/alimask.c @@ -0,0 +1,461 @@ +/* Add mask line to a multiple sequence alignment + */ +#include "p7_config.h" + +#include +#include +#include + +#undef HMMER_THREADS + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_mpi.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_msaweight.h" +#include "esl_msacluster.h" +#include "esl_stopwatch.h" +#include "esl_vectorops.h" +#include "esl_regexp.h" + +#include "hmmer.h" + +typedef struct { + P7_BG *bg; + P7_BUILDER *bld; +} WORKER_INFO; + + +#define ALPHOPTS "--amino,--dna,--rna" /* Exclusive options for alphabet choice */ +#define CONOPTS "--fast,--hand" /* Exclusive options for model construction */ +#define WGTOPTS "--wgsc,--wblosum,--wpb,--wnone,--wgiven" /* Exclusive options for relative weighting */ +#define RANGEOPTS "--modelrange,--alirange,--ali2model,--model2ali" /* Exclusive options for relative weighting */ + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "-o", eslARG_OUTFILE,FALSE, NULL, NULL, NULL, NULL, NULL, "direct summary output to file , not stdout", 1 }, +/* Selecting the alphabet rather than autoguessing it */ + { "--amino", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input alignment is protein sequence data", 2 }, + { "--dna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input alignment is DNA sequence data", 2 }, + { "--rna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input alignment is RNA sequence data", 2 }, +/* Alternate model construction strategies */ + { "--fast", eslARG_NONE,"default",NULL, NULL, CONOPTS, NULL, NULL, "assign cols w/ >= symfrac residues as consensus", 3 }, + { "--hand", eslARG_NONE, FALSE, NULL, NULL, CONOPTS, NULL, NULL, "manual construction (requires reference annotation)", 3 }, + { "--symfrac", eslARG_REAL, "0.5", NULL, "0<=x<=1", NULL, "--fast", NULL, "sets sym fraction controlling --fast construction", 3 }, + { "--fragthresh",eslARG_REAL, "0.5", NULL, "0<=x<=1", NULL, NULL, NULL, "if L <= x*alen, tag sequence as a fragment", 3 }, +/* Alternate relative sequence weighting strategies */ + /* --wme not implemented in HMMER3 yet */ + { "--wpb", eslARG_NONE,"default",NULL, NULL, WGTOPTS, NULL, NULL, "Henikoff position-based weights", 4 }, + { "--wgsc", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "Gerstein/Sonnhammer/Chothia tree weights", 4 }, + { "--wblosum", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "Henikoff simple filter weights", 4 }, + { "--wnone", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "don't do any relative weighting; set all to 1", 4 }, + { "--wgiven", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "use weights as given in MSA file", 4 }, + { "--wid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--wblosum", NULL, "for --wblosum: set identity cutoff", 4 }, +/* mask ranges */ + { "--modelrange", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "range(s) for mask(s) in model coordinates", 5 }, + { "--alirange", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "range(s) for mask(s) in alignment coordinates", 5 }, + { "--apendmask", eslARG_NONE, NULL, NULL, NULL, NULL, WGTOPTS, NULL, "add to existing mask (default ignores to existing mask)", 5 }, + { "--model2ali", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "given model ranges, print corresp. input alignment ranges", 5 }, + { "--ali2model", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "given alignment ranges, print corresp. model ranges", 5 }, + +/* Other options */ + { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input alifile is in format (no autodetect)", 8 }, + { "--outformat", eslARG_STRING, "Stockholm", NULL, NULL, NULL, NULL, NULL, "output alignment in format ", 2 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 8 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + + +static char usage[] = "[-options] "; +static char banner[] = "appending modelmask line to a multiple sequence alignments"; + +static int output_header(const ESL_GETOPTS *go, FILE *ofp, char *alifile, char *postmsafile); + + +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_alifile, char **ret_postalifile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment:\n%s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line:\n%s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line:\n%s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + + if (puts("\nMask range options (format: --xxx 10-20,30-40 ) :") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + + if (puts("\nOptions for selecting alphabet rather than guessing it:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + + if (puts("\nAlternative model construction strategies:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 80); + + if (puts("\nAlternative relative sequence weighting strategies:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + + if (puts("\nOther options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 8, 2, 80); + exit(0); + } + + if (esl_opt_ArgNumber(go) > 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_alifile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_IsUsed(go, "--alirange") || esl_opt_IsUsed(go, "--modelrange") ) { + if ((*ret_postalifile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + } + + if (strcmp(*ret_alifile, "-") == 0 && ! esl_opt_IsOn(go, "--informat")) + { if (puts("Must specify --informat to read from stdin ('-')") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + puts("\nwhere basic options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + printf("\nTo see more help on other available options, do:\n %s -h\n\n", argv[0]); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +static int +output_header(const ESL_GETOPTS *go, FILE *ofp, char *alifile, char *postmsafile) +{ + p7_banner(ofp, go->argv[0], banner); + + if (fprintf(ofp, "# input alignment file: %s\n", alifile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--alirange") || esl_opt_IsUsed(go, "--modelrange") ) { + if (fprintf(ofp, "# output alignment file: %s\n", postmsafile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + + if (esl_opt_IsUsed(go, "--alirange") && fprintf(ofp, "# alignment range: %s\n", esl_opt_GetString(go, "--alirange")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--modelrange") && fprintf(ofp, "# model range: %s\n", esl_opt_GetString(go, "--modelrange"))< 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--apendmask") && fprintf(ofp, "# add to existing mask: [on]\n" )< 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--model2ali") && fprintf(ofp, "# ali ranges for model range: %s\n", esl_opt_GetString(go, "--model2ali")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--ali2model") && fprintf(ofp, "# model ranges for ali range: %s\n", esl_opt_GetString(go, "--ali2model")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + + if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--amino") && fprintf(ofp, "# input alignment is asserted as: protein\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--dna") && fprintf(ofp, "# input alignment is asserted as: DNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--rna") && fprintf(ofp, "# input alignment is asserted as: RNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--fast") && fprintf(ofp, "# model architecture construction: fast/heuristic\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--hand") && fprintf(ofp, "# model architecture construction: hand-specified by RF annotation\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--symfrac") && fprintf(ofp, "# sym fraction for model structure: %.3f\n", esl_opt_GetReal(go, "--symfrac")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--fragthresh") && fprintf(ofp, "# seq called frag if L <= x*alen: %.3f\n", esl_opt_GetReal(go, "--fragthresh")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wpb") && fprintf(ofp, "# relative weighting scheme: Henikoff PB\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wgsc") && fprintf(ofp, "# relative weighting scheme: G/S/C\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wblosum") && fprintf(ofp, "# relative weighting scheme: BLOSUM filter\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wnone") && fprintf(ofp, "# relative weighting scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wid") && fprintf(ofp, "# frac id cutoff for BLOSUM wgts: %f\n", esl_opt_GetReal(go, "--wid")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed")) { + if (esl_opt_GetInteger(go, "--seed") == 0 && fprintf(ofp,"# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if ( fprintf(ofp,"# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + + +/* Function: p7_Alimask_MakeModel2AliMap() + * Synopsis: Compute map of coordinate in the alignment corresponding to each model position. + * + * Args: msa - The alignment for which the mapped model is to be computed. We assume + * the MSA has already been manipulated to account for model building + * flags (e.g. weighting). + * do_hand - TRUE when the model is to follow a hand-build RF line (which must be + * part of the file. + * symfraq - if weighted occupancy exceeds this value, include the column in the model. + * map - int array into which the map values will be stored. Calling function + * must allocate (msa->alen+1) ints. + * + * Returns: The number of mapped model positions. + */ +int +p7_Alimask_MakeModel2AliMap(ESL_MSA *msa, int do_hand, float symfrac, int *map ) +{ + int i = 0; + int apos, idx; + float r; /* weighted residue count */ + float totwgt; /* weighted residue+gap count */ + + i = 0; + if ( do_hand ) { + if (msa->rf == NULL) p7_Fail("Model file does not contain an RF line, required for --hand.\n"); + /* Watch for off-by-one. rf is [0..alen-1]*/ + for (apos = 1; apos <= msa->alen; apos++) { + if (!esl_abc_CIsGap(msa->abc, msa->rf[apos-1]) ) { + map[i] = apos; + i++; + } + } + + } else { + + for (apos = 1; apos <= msa->alen; apos++) + { + r = totwgt = 0.; + for (idx = 0; idx < msa->nseq; idx++) + { + if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) { r += msa->wgt[idx]; totwgt += msa->wgt[idx]; } + else if (esl_abc_XIsGap(msa->abc, msa->ax[idx][apos])) { totwgt += msa->wgt[idx]; } + else if (esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos])) continue; + } + + if (r > 0. && r / totwgt >= symfrac) { + map[i] = apos; + i++; + } + } + } + return i; +} + +int +main(int argc, char **argv) +{ + + int i,j; + + ESL_GETOPTS *go = NULL; /* command line processing */ + ESL_STOPWATCH *w = esl_stopwatch_Create(); + + int status; + ESL_MSA *msa = NULL; + FILE *ofp = NULL; /* output file (default is stdout) */ + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + + char *alifile; /* name of the alignment file we're building HMMs from */ + ESL_MSAFILE *afp = NULL; /* open alifile */ + int infmt = eslMSAFILE_UNKNOWN; /* autodetect alignment format by default. */ + int outfmt = eslMSAFILE_STOCKHOLM; + + + char *postmsafile; /* optional file to resave annotated, modified MSAs to */ + FILE *postmsafp = NULL; /* open , or NULL */ + + int mask_range_cnt = 0; + uint32_t mask_starts[100]; // over-the-top allocation. + uint32_t mask_ends[100]; + int64_t pos1, pos2; // esl_regexp_ParseCoordString() works in int64_t coords now; this is a hackaround + + char *rangestr; + char *range; + + + int *map = NULL; /* map[i]=j, means model position i comes from column j of the alignment; 1..alen */ + + int keep_mm; + + /* Set processor specific flags */ + impl_Init(); + alifile = NULL; + postmsafile = NULL; + + /* Parse the command line + */ + process_commandline(argc, argv, &go, &alifile, &postmsafile); + keep_mm = esl_opt_IsUsed(go, "--apendmask"); + + /* Initialize what we can in the config structure (without knowing the alphabet yet). + * Fields controlled by masters are set up in usual_master() or mpi_master() + * Fields used by workers are set up in mpi_worker() + */ + ofp = NULL; + infmt = eslMSAFILE_UNKNOWN; + afp = NULL; + abc = NULL; + + if (esl_opt_IsOn(go, "--informat")) { + infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat")); + if (infmt == eslMSAFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--informat")); + } + + /* Determine output alignment file format */ + outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat")); + if (outfmt == eslMSAFILE_UNKNOWN) p7_Fail(argv[0], "%s is not a recognized output MSA file format\n", esl_opt_GetString(go, "--outformat")); + + + + /* Parse the ranges */ + + if (esl_opt_IsUsed(go, "--alirange")) { + esl_strdup(esl_opt_GetString(go, "--alirange"), -1, &rangestr) ; + } else if (esl_opt_IsUsed(go, "--modelrange")) { + esl_strdup(esl_opt_GetString(go, "--modelrange"), -1, &rangestr) ; + } else if (esl_opt_IsUsed(go, "--model2ali")) { + esl_strdup(esl_opt_GetString(go, "--model2ali"), -1, &rangestr) ; + } else if (esl_opt_IsUsed(go, "--ali2model")) { + esl_strdup(esl_opt_GetString(go, "--ali2model"), -1, &rangestr) ; + } else { + if (puts("Must specify mask range with --modelrange, --alirange, --model2ali, or --ali2model\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto ERROR; + } + + while ( (status = esl_strtok(&rangestr, ",", &range) ) == eslOK) { + status = esl_regexp_ParseCoordString(range, &pos1, &pos2); + if (status == eslESYNTAX) esl_fatal("range flags take coords ..; %s not recognized", range); + if (status == eslFAIL) esl_fatal("Failed to find or coord in %s", range); + mask_starts[mask_range_cnt] = (uint32_t) pos1; + mask_ends[mask_range_cnt] = (uint32_t) pos2; + mask_range_cnt++; + } + + + /* Start timing. */ + esl_stopwatch_Start(w); + + + /* Open files, set alphabet. + * afp - open alignment file for input + * abc - alphabet expected or guessed in ali file + * postmsafp - open MSA output file + * ofp - optional open output file, or stdout + */ + if (esl_opt_GetBoolean(go, "--amino")) abc = esl_alphabet_Create(eslAMINO); + else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA); + else if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA); + else abc = NULL; + + status = esl_msafile_Open(&abc, alifile, NULL, infmt, NULL, &afp); + if (status != eslOK) esl_msafile_OpenFailure(afp, status); + + if (esl_opt_IsUsed(go, "--alirange") || esl_opt_IsUsed(go, "--modelrange") ) { + postmsafp = fopen(postmsafile, "w"); + if (postmsafp == NULL) p7_Fail("Failed to MSA output file %s for writing", postmsafile); + } + + if (esl_opt_IsUsed(go, "-o")) + { + ofp = fopen(esl_opt_GetString(go, "-o"), "w"); + if (ofp == NULL) p7_Fail("Failed to open -o output file %s\n", esl_opt_GetString(go, "-o")); + } + else ofp = stdout; + + + /* Looks like the i/o is set up successfully... + * Initial output to the user + */ + output_header(go, ofp, alifile, postmsafile); /* cheery output header */ + + /* read the alignment */ + if ((status = esl_msafile_Read(afp, &msa)) != eslOK) esl_msafile_ReadFailure(afp, status); + + + if (esl_opt_IsUsed(go, "--alirange") || esl_opt_IsUsed(go, "--modelrange") ) { + /* add/modify mmline for the mask */ + if (msa->mm == NULL) { + ESL_ALLOC(msa->mm, msa->alen); + keep_mm = FALSE; + } + + if (!keep_mm) + for (i=0; ialen; i++) msa->mm[i] = '.'; + + } + + // convert model coordinates to alignment coordinates, if necessary + if (esl_opt_IsUsed(go, "--modelrange") || esl_opt_IsUsed(go, "--model2ali") || esl_opt_IsUsed(go, "--ali2model") ) { + ESL_MSAWEIGHT_CFG *cfg = esl_msaweight_cfg_Create(); + float symfrac = esl_opt_GetReal(go, "--symfrac"); + int do_hand = esl_opt_IsOn(go, "--hand"); + + cfg->ignore_rf = (do_hand ? FALSE : TRUE); // PB weights only use RF-marked consensus cols if --hand is on. [iss #180] + + //same as p7_builder relative_weights + if (esl_opt_IsOn(go, "--wnone") ) { esl_vec_DSet(msa->wgt, msa->nseq, 1.); } + else if (esl_opt_IsOn(go, "--wgiven") ) ; + else if (esl_opt_IsOn(go, "--wpb") ) status = esl_msaweight_PB_adv(cfg, msa, /*ESL_MSAWEIGHT_DAT=*/ NULL); + else if (esl_opt_IsOn(go, "--wgsc") ) status = esl_msaweight_GSC(msa); + else if (esl_opt_IsOn(go, "--wblosum")) status = esl_msaweight_BLOSUM(msa, esl_opt_GetReal(go, "--wid")); + + esl_msaweight_cfg_Destroy(cfg); + + if ((status = esl_msa_MarkFragments_old(msa, esl_opt_GetReal(go, "--fragthresh"))) != eslOK) goto ERROR; + + //build a map of model mask coordinates to alignment coords + ESL_ALLOC(map, sizeof(int) * (msa->alen+1)); + p7_Alimask_MakeModel2AliMap(msa, do_hand, symfrac, map ); // Returns , which we don't need. + + if ( esl_opt_IsUsed(go, "--model2ali") ) { + //print mapping + printf ("model coordinates alignment coordinates\n"); + for (i=0; i %8d..%-8d\n", mask_starts[i], mask_ends[i], map[mask_starts[i]-1], map[mask_ends[i]-1]); + /* If I wanted to, I could print all the map values independently: + printf("\n\n-----------\n"); + printf("Map\n"); + printf("---\n"); + for (i=0; i %d\n", i+1, map[i]); + */ + } else if ( esl_opt_IsUsed(go, "--ali2model") ) { + //print mapping (requires scanning the inverted map + int alistart = 0; + int aliend = 0; + printf ("alignment coordinates model coordinates\n"); + for (i=0; i %8d..%-8d\n", map[alistart], map[aliend], alistart+1, aliend+1); + } + } else { + //convert the mask coords based on map + for (i=0; imm[j-1] = 'm'; + + if ((status = esl_msafile_Write(postmsafp, msa, outfmt)) != eslOK) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + } + + esl_stopwatch_Stop(w); + + if (esl_opt_IsOn(go, "-o")) fclose(ofp); + if (postmsafp) fclose(postmsafp); + if (afp) esl_msafile_Close(afp); + if (abc) esl_alphabet_Destroy(abc); + + esl_getopts_Destroy(go); + esl_stopwatch_Destroy(w); + return 0; + + + ERROR: + return eslFAIL; +} + diff --git a/bioinformaticsProject/hmmer/src/build.c b/bioinformaticsProject/hmmer/src/build.c new file mode 100644 index 0000000..e9e9303 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/build.c @@ -0,0 +1,667 @@ +/* Construction of new HMMs from multiple alignments. + * + * Two versions: + * p7_Handmodelmaker() -- use #=RF annotation to indicate match columns + * p7_Fastmodelmaker() -- Krogh/Haussler heuristic + * + * The maximum likelihood model construction algorithm that was in previous + * HMMER versions has been deprecated, at least for the moment. + * + * The meat of the model construction code is in matassign2hmm(). + * The two model construction strategies simply label which columns + * are supposed to be match states, and then hand this info to + * matassign2hmm(). + * + * + * Contents: + * 1. Exported API: model construction routines. + * 2. Private functions used in constructing models. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + */ +#include "p7_config.h" + +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_msa.h" +#include "esl_msafile.h" + +#include "hmmer.h" + +static int do_modelmask( ESL_MSA *msa); +static int matassign2hmm(ESL_MSA *msa, int *matassign, P7_HMM **ret_hmm, P7_TRACE ***opt_tr); +static int annotate_model(P7_HMM *hmm, int *matassign, ESL_MSA *msa); + +/***************************************************************** + * 1. Exported API: model construction routines. + *****************************************************************/ + +/* Function: p7_Handmodelmaker() + * + * Purpose: Manual model construction. + * Construct an HMM from a digital alignment, where the + * <#=RF> line of the alignment file is used to indicate the + * columns assigned to matches vs. inserts. + * + * The must be in digital mode, and it must have + * a reference annotation line. + * + * NOTE: will slightly revise the + * alignment if necessary, if the assignment of columns + * implies DI and ID transitions. + * + * Returns both the HMM in counts form (ready for applying + * Dirichlet priors as the next step), and fake tracebacks + * for each aligned sequence. + * + * Models must have at least one node, so if the defined + * no consensus columns, a error is returned. + * + * Args: msa - multiple sequence alignment + * bld - holds information on regions requiring masking, optionally NULL -> no masking + * ret_hmm - RETURN: counts-form HMM + * opt_tr - optRETURN: array of tracebacks for aseq's + * + * Return: on success. and are allocated + * here, and must be free'd by caller. + * + * Returns if no consensus columns were annotated; + * in this case, and are returned NULL. + * + * Returns if the doesn't have a reference + * annotation line. + * + * Throws: on allocation failure. Throws if the + * isn't in digital mode. + */ +int +p7_Handmodelmaker(ESL_MSA *msa, P7_BUILDER *bld, P7_HMM **ret_hmm, P7_TRACE ***opt_tr) +{ + int status; + int *matassign = NULL; /* MAT state assignments if 1; 1..alen */ + int apos; /* counter for aligned columns */ + + if (! (msa->flags & eslMSA_DIGITAL)) ESL_XEXCEPTION(eslEINVAL, "need a digital msa"); + if (msa->rf == NULL) return eslEFORMAT; + + ESL_ALLOC(matassign, sizeof(int) * (msa->alen+1)); + + /* Watch for off-by-one. rf is [0..alen-1]; matassign is [1..alen] */ + for (apos = 1; apos <= msa->alen; apos++) + matassign[apos] = (esl_abc_CIsGap(msa->abc, msa->rf[apos-1])? FALSE : TRUE); + + /* matassign2hmm leaves ret_hmm, opt_tr in their proper state: */ + if ((status = matassign2hmm(msa, matassign, ret_hmm, opt_tr)) != eslOK) goto ERROR; + + free(matassign); + return eslOK; + + ERROR: + if (matassign != NULL) free(matassign); + return status; +} + +/* Function: p7_Fastmodelmaker() + * + * Purpose: Heuristic model construction. + * Construct an HMM from an alignment by a simple rule, + * based on the fractional occupancy of each columns w/ + * residues vs gaps. Any column w/ a fractional + * occupancy of $\geq$ is assigned as a MATCH column; + * for instance, if thresh = 0.5, columns w/ $\geq$ 50\% + * residues are assigned to match... roughly speaking. + * + * "Roughly speaking" because sequences may be weighted + * in the input , and because missing data symbols are + * ignored, in order to deal with sequence fragments. + * + * The must be in digital mode. + * + * If the caller wants to designate any sequences as + * fragments, it does so by converting all N-terminal and + * C-terminal flanking gap symbols to missing data symbols. + * + * NOTE: p7_Fastmodelmaker() will slightly revise the + * alignment if the assignment of columns implies + * DI and ID transitions. + * + * Returns the HMM in counts form (ready for applying Dirichlet + * priors as the next step). Also returns fake traceback + * for each training sequence. + * + * Models must have at least one node, so if the defined + * no consensus columns, a error is returned. + * + * Args: msa - multiple sequence alignment + * symfrac - threshold for residue occupancy; >= assigns MATCH + * bld - holds information on regions requiring masking, optionally NULL -> no masking + * ret_hmm - RETURN: counts-form HMM + * opt_tr - optRETURN: array of tracebacks for aseq's + * + * Return: on success. ret_hmm and opt_tr allocated here, + * and must be free'd by the caller (FreeTrace(tr[i]), free(tr), + * FreeHMM(hmm)). + * + * Returns if no consensus columns were annotated; + * in this case, and are returned NULL. + * + * Throws: on allocation failure; if the + * isn't in digital mode. + */ +int +p7_Fastmodelmaker(ESL_MSA *msa, float symfrac, P7_BUILDER *bld, P7_HMM **ret_hmm, P7_TRACE ***opt_tr) +{ + int status; /* return status flag */ + int *matassign = NULL; /* MAT state assignments if 1; 1..alen */ + int idx; /* counter over sequences */ + int apos; /* counter for aligned columns */ + float r; /* weighted residue count */ + float totwgt; /* weighted residue+gap count */ + + if (! (msa->flags & eslMSA_DIGITAL)) ESL_XEXCEPTION(eslEINVAL, "need digital MSA"); + + /* Allocations: matassign is 1..alen array of bit flags. + */ + ESL_ALLOC(matassign, sizeof(int) * (msa->alen+1)); + + /* Determine weighted sym freq in each column, set matassign[] accordingly. + */ + for (apos = 1; apos <= msa->alen; apos++) + { + r = totwgt = 0.; + for (idx = 0; idx < msa->nseq; idx++) + { + if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) { r += msa->wgt[idx]; totwgt += msa->wgt[idx]; } + else if (esl_abc_XIsGap(msa->abc, msa->ax[idx][apos])) { totwgt += msa->wgt[idx]; } + else if (esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos])) continue; + } + if (r > 0. && r / totwgt >= symfrac) matassign[apos] = TRUE; + else matassign[apos] = FALSE; + } + + + /* Once we have matassign calculated, modelmakers behave + * the same; matassign2hmm() does this stuff (traceback construction, + * trace counting) and sets up ret_hmm and opt_tr. + */ + if ((status = matassign2hmm(msa, matassign, ret_hmm, opt_tr)) != eslOK) { + fprintf (stderr, "hmm construction error during trace counting\n"); + goto ERROR; + } + + free(matassign); + return eslOK; + + ERROR: + if (matassign != NULL) free(matassign); + return status; +} + +/*-------------------- end, exported API -------------------------*/ + + + + +/***************************************************************** + * 2. Private functions used in constructing models. + *****************************************************************/ + + +/* Function: do_modelmask() + * + * Purpose: If the given has a MM CS line, mask (turn to + * degenerate) residues in the msa positions associated + * with the marked position in the MM (marked with 'm') + * + * Return: on success. + * if error. + */ +static int +do_modelmask( ESL_MSA *msa) +{ + int i,j; + + if (msa->mm == NULL) return eslOK; //nothing to do + + for (i = 1; i <= msa->alen; i++) { + for (j = 0; j < msa->nseq; j++) { + if (msa->mm[i-1] == 'm') { + if (msa->ax[j][i] != msa->abc->K && msa->ax[j][i] != msa->abc->Kp-1) // if not gap + msa->ax[j][i] = msa->abc->Kp-3; //that's the degenerate "any character" (N for DNA, X for protein) + } + } + } + return eslOK; +} + +/* Function: matassign2hmm() + * + * Purpose: Given an assignment of alignment columns to match vs. + * insert, finish the final part of the model construction + * calculation that is constant between model construction + * algorithms. + * + * Args: msa - multiple sequence alignment + * matassign - 1..alen bit flags for column assignments + * ret_hmm - RETURN: counts-form HMM + * opt_tr - optRETURN: array of tracebacks for aseq's + * + * Return: on success. + * if no consensus columns are identified. + * + * ret_hmm and opt_tr alloc'ed here. + */ +static int +matassign2hmm(ESL_MSA *msa, int *matassign, P7_HMM **ret_hmm, P7_TRACE ***opt_tr) +{ + int status; /* return status */ + P7_HMM *hmm = NULL; /* RETURN: new hmm */ + P7_TRACE **tr = NULL; /* RETURN: 0..nseq-1 fake traces */ + int M; /* length of new model in match states */ + int idx; /* counter over sequences */ + int apos; /* counter for aligned columns */ + char errbuf[eslERRBUFSIZE]; + + /* apply the model mask in the 'GC MM' row */ + do_modelmask(msa); + + /* How many match states in the HMM? */ + for (M = 0, apos = 1; apos <= msa->alen; apos++) + if (matassign[apos]) M++; + if (M == 0) { status = eslENORESULT; goto ERROR; } + + /* Make fake tracebacks for each seq */ + ESL_ALLOC(tr, sizeof(P7_TRACE *) * msa->nseq); + if ((status = p7_trace_FauxFromMSA(msa, matassign, p7_MSA_COORDS, tr)) != eslOK) goto ERROR; + for (idx = 0; idx < msa->nseq; idx++) + { + if ((status = p7_trace_Doctor(tr[idx], NULL, NULL)) != eslOK) goto ERROR; + if ((status = p7_trace_Validate(tr[idx], msa->abc, msa->ax[idx], errbuf)) != eslOK) + ESL_XEXCEPTION(eslFAIL, "validation failed: %s", errbuf); + } + + /* Build count model from tracebacks */ + if ((hmm = p7_hmm_Create(M, msa->abc)) == NULL) { status = eslEMEM; goto ERROR; } + if ((status = p7_hmm_Zero(hmm)) != eslOK) goto ERROR; + for (idx = 0; idx < msa->nseq; idx++) { + if (tr[idx] == NULL) continue; /* skip rare examples of empty sequences */ + if ((status = p7_trace_Count(hmm, msa->ax[idx], msa->wgt[idx], tr[idx])) != eslOK) goto ERROR; + } + + hmm->nseq = msa->nseq; + hmm->eff_nseq = msa->nseq; + + /* Transfer annotation from the MSA to the new model + */ + if ((status = annotate_model(hmm, matassign, msa)) != eslOK) goto ERROR; + + /* Reset #=RF line of alignment to reflect our assignment + * of match, delete. matassign is valid from 1..alen and is off + * by one from msa->rf. + */ + if (msa->rf == NULL) ESL_ALLOC(msa->rf, sizeof(char) * (msa->alen + 1)); + for (apos = 1; apos <= msa->alen; apos++) + msa->rf[apos-1] = matassign[apos] ? 'x' : '.'; + msa->rf[msa->alen] = '\0'; + + if (opt_tr != NULL) *opt_tr = tr; + else p7_trace_DestroyArray(tr, msa->nseq); + *ret_hmm = hmm; + return eslOK; + + ERROR: + if (tr != NULL) p7_trace_DestroyArray(tr, msa->nseq); + if (hmm != NULL) p7_hmm_Destroy(hmm); + if (opt_tr != NULL) *opt_tr = NULL; + *ret_hmm = NULL; + return status; +} + + + +/* Function: annotate_model() + * + * Purpose: Transfer rf, cs, and other optional annotation from the alignment + * to the new model. + * + * Args: hmm - [M] new model to annotate + * matassign - which alignment columns are MAT; [1..alen] + * msa - alignment, including annotation to transfer + * + * Return: on success. + * + * Throws: on allocation error. + */ +static int +annotate_model(P7_HMM *hmm, int *matassign, ESL_MSA *msa) +{ + int apos; /* position in matassign, 1.alen */ + int k; /* position in model, 1.M */ + int status; + + /* Reference coord annotation */ + if (msa->rf != NULL) { + ESL_ALLOC(hmm->rf, sizeof(char) * (hmm->M+2)); + hmm->rf[0] = ' '; + for (apos = k = 1; apos <= msa->alen; apos++) + if (matassign[apos]) hmm->rf[k++] = msa->rf[apos-1]; /* watch off-by-one in msa's rf */ + hmm->rf[k] = '\0'; + hmm->flags |= p7H_RF; + } + + /* Model mask annotation */ + if (msa->mm != NULL) { + ESL_ALLOC(hmm->mm, sizeof(char) * (hmm->M+2)); + hmm->mm[0] = ' '; + for (apos = k = 1; apos <= msa->alen; apos++) + if (matassign[apos]) hmm->mm[k++] = ( msa->mm[apos-1] == '.' ? '-' : msa->mm[apos-1]) ; + hmm->mm[k] = '\0'; + hmm->flags |= p7H_MMASK; + } + + /* Consensus structure annotation */ + if (msa->ss_cons != NULL) { + ESL_ALLOC(hmm->cs, sizeof(char) * (hmm->M+2)); + hmm->cs[0] = ' '; + for (apos = k = 1; apos <= msa->alen; apos++) + if (matassign[apos]) hmm->cs[k++] = msa->ss_cons[apos-1]; + hmm->cs[k] = '\0'; + hmm->flags |= p7H_CS; + } + + /* Surface accessibility annotation */ + if (msa->sa_cons != NULL) { + ESL_ALLOC(hmm->ca, sizeof(char) * (hmm->M+2)); + hmm->ca[0] = ' '; + for (apos = k = 1; apos <= msa->alen; apos++) + if (matassign[apos]) hmm->ca[k++] = msa->sa_cons[apos-1]; + hmm->ca[k] = '\0'; + hmm->flags |= p7H_CA; + } + + /* The alignment map (1..M in model, 1..alen in alignment) */ + ESL_ALLOC(hmm->map, sizeof(int) * (hmm->M+1)); + hmm->map[0] = 0; + for (apos = k = 1; apos <= msa->alen; apos++) + if (matassign[apos]) hmm->map[k++] = apos; + hmm->flags |= p7H_MAP; + + return eslOK; + + ERROR: + return status; +} + +/***************************************************************** + * 3. Unit tests. + *****************************************************************/ +#ifdef p7BUILD_TESTDRIVE + +/* utest_basic() + * An MSA to ex{e,o}rcise past demons. + * 1. seq2 gives an I->end transition. + * 2. seq1 contains degenerate Z,X, exercising symbol counting + * of degenerate residues. + */ +static void +utest_basic(void) +{ + char *failmsg = "failure in build.c::utest_basic() unit test"; + char msafile[16] = "p7tmpXXXXXX"; /* tmpfile name template */ + FILE *ofp = NULL; + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + ESL_MSAFILE *afp = NULL; + ESL_MSA *msa = NULL; + P7_HMM *hmm = NULL; + float symfrac = 0.5; + + if (esl_tmpfile_named(msafile, &ofp) != eslOK) esl_fatal(failmsg); + fprintf(ofp, "# STOCKHOLM 1.0\n"); + fprintf(ofp, "#=GC RF --xxxxxxxxxxxxxxxx-xxx-x--\n"); + fprintf(ofp, "seq1 --ACDEFGHIKLMNPZXS-TVW-Yyy\n"); + fprintf(ofp, "seq2 aaACDEFGHIKLMNPQRS-TVWw---\n"); + fprintf(ofp, "seq3 aaAC-EFGHIKLMNPQRS-TVW-Y--\n"); + fprintf(ofp, "seq4 aaAC-EFGHIKLMNPQRS-TVW-Y--\n"); + fprintf(ofp, "//\n"); + fclose(ofp); + + if (esl_msafile_Open(&abc, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal(failmsg); + if (esl_msafile_Read(afp, &msa) != eslOK) esl_fatal(failmsg); + if (p7_Fastmodelmaker(msa, symfrac, NULL, &hmm, NULL) != eslOK) esl_fatal(failmsg); + + p7_hmm_Destroy(hmm); + esl_msa_Destroy(msa); + esl_msafile_Close(afp); + esl_alphabet_Destroy(abc); + remove(msafile); + return; +} + +/* utest_fragments() + * This exercises the building code that deals with fragments, + * creating traces with B->X->{MDI}k and {MDI}k->X->E + * transitions, and making sure we can make MSAs correctly + * from them using p7_tracealign_MSA(). This code was initially + * buggy when first written; bugs first detected by Elena, + * Nov 2009 + */ +static void +utest_fragments(void) +{ + char *failmsg = "failure in build.c::utest_fragments() unit test"; + char msafile[16] = "p7tmpXXXXXX"; /* tmpfile name template */ + FILE *ofp = NULL; + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + ESL_MSAFILE *afp = NULL; + ESL_MSA *msa = NULL; + ESL_MSA *dmsa = NULL; + ESL_MSA *postmsa = NULL; + P7_HMM *hmm = NULL; + P7_TRACE **trarr = NULL; + int i; + + /* Write an MSA that tests fragment/missing data transitions. + * When built with Handmodelmaker (using the RF line): + * seq1 forces B->X->Mk and Mk->X->E missing data transitions; + * seq2 forces B->X->Ik and Ik->X->E missing data transitions; + * seq3 forces B->X->Dk and Dk->X->E missing data transitions. + * + * The first two cases can arise from fragment definition in + * model construction, or in an input file. + * + * The X->Dk and Dk->X cases should never happen, but we don't + * prohibit them. They can only arise in an input file, because + * esl_msa_MarkFragments_old() converts everything before/after + * first/last residue to ~, and won't leave a gap character in + * between. + * + * There's nothing being tested by seq4 and seq5; they're just there. + */ + if (esl_tmpfile_named(msafile, &ofp) != eslOK) esl_fatal(failmsg); + fprintf(ofp, "# STOCKHOLM 1.0\n"); + fprintf(ofp, "#=GC RF xxxxx.xxxxxxxxxxxx.xxx\n"); + fprintf(ofp, "seq1 ~~~~~~GHIKLMNPQRST~~~~\n"); + fprintf(ofp, "seq2 ~~~~~aGHIKLMNPQRSTa~~~\n"); + fprintf(ofp, "seq3 ~~~~~~-HIKLMNPQRS-~~~~\n"); + fprintf(ofp, "seq4 ACDEF.GHIKLMNPQRST.VWY\n"); + fprintf(ofp, "seq5 ACDEF.GHIKLMNPQRST.VWY\n"); + fprintf(ofp, "//\n"); + fclose(ofp); + + /* Read the original as text for comparison to postmsa. Make a digital copy for construction */ + if (esl_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)!= eslOK) esl_fatal(failmsg); + if (esl_msafile_Read(afp, &msa) != eslOK) esl_fatal(failmsg); + if ((dmsa = esl_msa_Clone(msa)) == NULL) esl_fatal(failmsg); + if (esl_msa_Digitize(abc, dmsa, NULL) != eslOK) esl_fatal(failmsg); + + if (p7_Handmodelmaker(dmsa, NULL, &hmm, &trarr) != eslOK) esl_fatal(failmsg); + for (i = 0; i < dmsa->nseq; i++) + if (p7_trace_Validate(trarr[i], abc, dmsa->ax[i], NULL) != eslOK) esl_fatal(failmsg); + + /* The example is contrived such that the traces should give exactly the + * same (text) alignment as the input alignment; no tracedoctoring. + * Not a trivial test; for example, sequence 2 has a B->X->I transition that + * can be problematic to handle. + */ + if (p7_tracealign_MSA(dmsa, trarr, hmm->M, p7_DEFAULT, &postmsa) != eslOK) esl_fatal(failmsg); + for (i = 0; i < msa->nseq; i++) + if (strcmp(msa->aseq[i], postmsa->aseq[i]) != 0) esl_fatal(failmsg); + + p7_trace_DestroyArray(trarr, msa->nseq); + p7_hmm_Destroy(hmm); + esl_msa_Destroy(msa); + esl_msa_Destroy(dmsa); + esl_msa_Destroy(postmsa); + esl_msafile_Close(afp); + esl_alphabet_Destroy(abc); + remove(msafile); + return; +} + +#endif /*p7BUILD_TESTDRIVE*/ +/*---------------------- end of unit tests -----------------------*/ + + + + +/***************************************************************** + * 4. Test driver. + *****************************************************************/ + +#ifdef p7BUILD_TESTDRIVE +/* gcc -g -Wall -Dp7BUILD_TESTDRIVE -I. -I../easel -L. -L../easel -o build_utest build.c -lhmmer -leasel -lm + */ +#include "easel.h" + +#include "p7_config.h" +#include "hmmer.h" + +int +main(int argc, char **argv) +{ + utest_basic(); + utest_fragments(); + + return eslOK; +} + + +#endif /*p7BUILD_TESTDRIVE*/ +/*-------------------- end of test driver ---------------------*/ + + + +/****************************************************************************** + * 5. Example. + ******************************************************************************/ +#ifdef p7BUILD_EXAMPLE + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use DNA alphabet", 0 }, + { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use RNA alphabet", 0 }, + { "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use protein alphabet", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example for the build module"; + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *msafile = esl_opt_GetArg(go, 1); + int fmt = eslMSAFILE_UNKNOWN; + ESL_ALPHABET *abc = NULL; + ESL_MSAFILE *afp = NULL; + ESL_MSA *msa = NULL; + P7_HMM *hmm = NULL; + P7_PRIOR *prior = NULL; + P7_TRACE **trarr = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + ESL_MSA *postmsa = NULL; + int i; + int status; + + /* Standard idioms for opening and reading a digital MSA. (See esl_msa.c example). */ + if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA); + else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA); + else if (esl_opt_GetBoolean(go, "--amino")) abc = esl_alphabet_Create(eslAMINO); + + if ((status = esl_msafile_Open(&abc, msafile, NULL, fmt, NULL, &afp)) != eslOK) + esl_msafile_OpenFailure(afp, status); + + bg = p7_bg_Create(abc); + + switch (abc->type) { + case eslAMINO: prior = p7_prior_CreateAmino(); break; + case eslDNA: prior = p7_prior_CreateNucleic(); break; + case eslRNA: prior = p7_prior_CreateNucleic(); break; + default: prior = p7_prior_CreateLaplace(abc); break; + } + if (prior == NULL) esl_fatal("Failed to initialize prior"); + + while ((status = esl_msafile_Read(afp, &msa)) != eslEOF) + { + if (status != eslOK) esl_msafile_ReadFailure(afp, status); + + /* The modelmakers collect counts in an HMM structure */ + status = p7_Handmodelmaker(msa, NULL, &hmm, &trarr); + if (status == eslENORESULT) esl_fatal("no consensus columns in alignment %s\n", msa->name); + else if (status != eslOK) esl_fatal("failed to build HMM from alignment %s\n", msa->name); + + printf("COUNTS:\n"); + p7_hmm_Dump(stdout, hmm); + + /* These counts, in combination with a prior, are converted to probability parameters */ + status = p7_ParameterEstimation(hmm, prior); + if (status != eslOK) esl_fatal("failed to parameterize HMM for %s", msa->name); + + printf("PROBABILITIES:\n"); + p7_hmm_Dump(stdout, hmm); + + /* Just so we can dump a more informatively annotated trace - build a profile */ + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + + /* Dump the individual traces */ + for (i = 0; i < msa->nseq; i++) + { + printf("Trace %d: %s\n", i+1, msa->sqname[i]); + p7_trace_Dump(stdout, trarr[i], gm, msa->ax[i]); + } + + /* Create an MSA from the individual traces */ + status = p7_tracealign_MSA(msa, trarr, hmm->M, p7_DEFAULT, &postmsa); + if (status != eslOK) esl_fatal("failed to create new MSA from traces\n"); + + esl_msafile_Write(stdout, postmsa, eslMSAFILE_PFAM); + + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); + p7_trace_DestroyArray(trarr, msa->nseq); + esl_msa_Destroy(postmsa); + esl_msa_Destroy(msa); + } + + esl_msafile_Close(afp); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} + +#endif /*p7BUILD_EXAMPLE*/ + + + diff --git a/bioinformaticsProject/hmmer/src/cachedb.c b/bioinformaticsProject/hmmer/src/cachedb.c new file mode 100644 index 0000000..2c0cef0 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/cachedb.c @@ -0,0 +1,652 @@ +/* Sequence and profile caches, used by the hmmpgmd daemon. + */ +#include "p7_config.h" + +#include +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "cachedb.h" +#include "hmmpgmd.h" + + +/* sort routines */ +static int +sort_seq(const void *p1, const void *p2) +{ + int cmp; + + cmp = (((HMMER_SEQ *)p1)->idx < ((HMMER_SEQ *)p2)->idx); + cmp -= (((HMMER_SEQ *)p1)->idx > ((HMMER_SEQ *)p2)->idx); + + return cmp; +} + +int +p7_seqcache_Open(char *seqfile, P7_SEQCACHE **ret_cache, char *errbuf) +{ + int i; + int inx; + int val; + int status; + + uint64_t seq_cnt; + int32_t db_cnt; + int32_t db_inx[32]; + uint32_t db_key; + + uint64_t res_cnt; + uint64_t res_size; + uint64_t hdr_size; + + char *hdr_ptr; + ESL_DSQ *res_ptr; + char *desc_ptr; + char *ptr; + char buffer[512]; + off_t offset; + + uint64_t total_mem; + + SEQ_DB *db = NULL; + P7_SEQCACHE *cache = NULL; + + ESL_RANDOMNESS *rnd = NULL; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + ESL_ALPHABET *abc = NULL; + ESL_SQASCII_DATA *ascii = NULL; + + if (errbuf) errbuf[0] = '\0'; /* CURRENTLY UNUSED. FIXME */ + + /* Open the target sequence database */ + if ((status = esl_sqfile_Open(seqfile, eslSQFILE_FASTA, NULL, &sqfp)) != eslOK) return status; + + /* This is a bit of a hack. The first line contains database information. + * + * # ... + * + * The rest of the file is a fasta format. The fasta header is just + * sequence number followed by a binary number indicating which + * database this sequence occurs in. + * + * The header line will be read in, parsed and saved. Then the + * parser will be repositioned after the line and used normally. + */ + ascii = &sqfp->data.ascii; + fseek(ascii->fp, 0L, SEEK_SET); + if (fgets(buffer, sizeof(buffer), ascii->fp) == NULL) return eslEFORMAT; + if (buffer[0] != '#') return eslEFORMAT; + + ptr = buffer + 1; + res_cnt = strtoll(ptr, &ptr, 10); + seq_cnt = strtol(ptr, &ptr, 10); + db_cnt = strtol(ptr, &ptr, 10); + + if (db_cnt > (sizeof(db_inx)/sizeof(db_inx[0]))) return eslEFORMAT; + + total_mem = sizeof(P7_SEQCACHE); + ESL_ALLOC(cache, sizeof(P7_SEQCACHE)); + memset(cache, 0, sizeof(P7_SEQCACHE)); + + if (esl_strdup(seqfile, -1, &cache->name) != eslOK) goto ERROR; + + total_mem += (sizeof(HMMER_SEQ) * seq_cnt); + ESL_ALLOC(cache->list, sizeof(HMMER_SEQ) * seq_cnt); + memset(cache->list, 0, sizeof(HMMER_SEQ) * seq_cnt); + + total_mem += (sizeof(SEQ_DB) * db_cnt); + ESL_ALLOC(db, sizeof(SEQ_DB) * db_cnt); + for (i = 0; i < db_cnt; ++i) { + db[i].count = strtol(ptr, &ptr, 10); + db[i].K = strtol(ptr, &ptr, 10); + total_mem += (sizeof(HMMER_SEQ *) * db[i].count); + ESL_ALLOC(db[i].list, sizeof(HMMER_SEQ *) * db[i].count); + memset(db[i].list, 0, sizeof(HMMER_SEQ *) * db[i].count); + } + + /* grab the unique identifier */ + while (*ptr && isspace(*ptr)) ++ptr; + i = strlen(ptr); + ESL_ALLOC(cache->id, i+1); + strcpy(cache->id, ptr); + while (--i > 0 && isspace(cache->id[i])) cache->id[i] = 0; + + res_size = res_cnt + seq_cnt + 1; + hdr_size = seq_cnt * 10; + + total_mem += res_size + hdr_size; + ESL_ALLOC(cache->residue_mem, res_size); + ESL_ALLOC(cache->header_mem, hdr_size); + + /* position the sequence file to the start of the first sequence. + * this will force any buffers associated with the file to be reset. + */ + offset = ftell(ascii->fp); + if ((status = esl_sqfile_Position(sqfp, offset)) != eslOK) goto ERROR; + + abc = esl_alphabet_Create(eslAMINO); + sq = esl_sq_CreateDigital(abc); + + cache->db_cnt = db_cnt; + cache->db = db; + cache->abc = abc; + cache->res_size = res_size; + cache->hdr_size = hdr_size; + cache->count = seq_cnt; + + hdr_ptr = cache->header_mem; + res_ptr = cache->residue_mem; + for (i = 0; i < db_cnt; ++i) db_inx[i] = 0; + + strcpy(buffer, "000000001"); + + inx = 0; + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) { + + /* sanity checks */ + if (inx >= seq_cnt) { printf("inx: %d\n", inx); return eslEFORMAT; } + if (sq->n + 1 > res_size) { printf("inx: %d size %d %d\n", inx, (int)sq->n + 1, (int)res_size); return eslEFORMAT; } + if (hdr_size <= 0) { printf("inx: %d hdr %d\n", inx, (int)hdr_size); return eslEFORMAT; } + + /* generate the database key - modified to take the first word in the desc line. + * The remaining part of the desc is then cached as the description. */ + + ptr = sq->desc;; + desc_ptr = strchr(sq->desc, ' '); + if(desc_ptr != NULL) { + *desc_ptr= '\0'; + ++desc_ptr; + } + val = 1; + db_key = 0; + while (*ptr) { + if (*ptr == '1') db_key += val; + val <<= 1; + ++ptr; + } + + + if (db_key >= (1 << (db_cnt + 1))) { printf("inx: %d db %d %s\n", inx, db_key, sq->desc); return eslEFORMAT; } + + cache->list[inx].name = hdr_ptr; + cache->list[inx].dsq = (ESL_DSQ *)res_ptr; + cache->list[inx].n = sq->n; + cache->list[inx].idx = inx; + cache->list[inx].db_key = db_key; + if(desc_ptr != NULL) esl_strdup(desc_ptr, -1, &(cache->list[inx].desc)); + + /* copy the digitized sequence */ + memcpy(res_ptr, sq->dsq, sq->n + 1); + res_ptr += (sq->n + 1); + res_size -= (sq->n + 1); + + /* copy the index to the header */ + strcpy(hdr_ptr, buffer); + hdr_ptr += 10; + hdr_size -= 10; + + /* increment the buffer string */ + ++buffer[8]; + for (i = 8; i > 0; --i) { + if (buffer[i] > '9') { + buffer[i] = '0'; + buffer[i-1]++; + } + } + + esl_sq_Reuse(sq); + ++inx; + } + if (status != eslEOF) { printf("Unexpected error %d at %d\n", status, inx); return status; } + + if (inx != seq_cnt) { printf("inx:: %d %" PRIu64 "\n", inx, seq_cnt); return eslEFORMAT; } + if (hdr_size != 0) { printf("inx:: %d hdr %d\n", inx, (int)hdr_size); return eslEFORMAT; } + if (res_size != 1) { printf("inx:: %d size %d %d\n", inx, (int)sq->n + 1, (int)res_size); return eslEFORMAT; } + + /* copy the final sentinel character */ + *res_ptr++ = eslDSQ_SENTINEL; + --res_size; + + /* sort the order of the database sequences */ + rnd = esl_randomness_CreateFast(seq_cnt); + for (i = 0 ; i < seq_cnt; ++i) { + rnd->x = rnd->x * 69069 + 1; + cache->list[i].idx = rnd->x; + } + esl_randomness_Destroy(rnd); + qsort(cache->list, seq_cnt, sizeof(HMMER_SEQ), sort_seq); + + /* fill in the different databases and fix the index */ + for (i = 0 ; i < seq_cnt; ++i) { + inx = 0; + db_key = cache->list[i].db_key; + while (db_key) { + if (db_key & 1) { + SEQ_DB *db = cache->db + inx; + if (db_inx[inx] >= db->count) { printf("sort:: %d %d\n", db_inx[inx], db->count); return eslEFORMAT; } + db->list[db_inx[inx]] = &cache->list[i]; + ++db_inx[inx]; + } + db_key >>= 1; + ++inx; + } + cache->list[i].idx = (cache->list[i].name - cache->header_mem) / 10 + 1; + } + + for (i = 0; i < cache->db_cnt; ++i) { + printf("sequence database (%d):: %d %d\n", i, cache->db[i].count, db_inx[i]); + } + + printf("\nLoaded sequence db file %s; total memory %" PRId64 "\n", seqfile, total_mem); + + esl_sqfile_Close(sqfp); + esl_sq_Destroy(sq); + + *ret_cache = cache; + + return eslOK; + + ERROR: + if (sq != NULL) esl_sq_Destroy(sq); + if (abc != NULL) esl_alphabet_Destroy(abc); + if (cache != NULL) { + if (cache->header_mem != NULL) free(cache->header_mem); + if (cache->residue_mem != NULL) free(cache->residue_mem); + if (cache->name != NULL) free(cache->name); + if (cache->id != NULL) free(cache->id); + free(cache); + } + for (i = 0; i < db_cnt; ++i) { + if (db[i].list != NULL) free(db[i].list); + } + return eslEMEM; +} + +void +p7_seqcache_Close(P7_SEQCACHE *cache) +{ + int i; + + if (cache->name) free(cache->name); + if (cache->id) free(cache->id); + if (cache->db) + { + for (i = 0; i < cache->db_cnt; ++i) { + if (cache->db[i].list != NULL) free(cache->db[i].list); + } + free(cache->db); + } + if (cache->abc) esl_alphabet_Destroy(cache->abc); + if (cache->list) free(cache->list); + if (cache->residue_mem) free(cache->residue_mem); + if (cache->header_mem) free(cache->header_mem); + free(cache); +} + + + + +/***************************************************************** + * x. Unit test + *****************************************************************/ + +#ifdef CACHEDB_UTEST1 +/* + * gcc -O3 -malign-double -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -O -pg -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -Wall -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * + * ./evalues-benchmark + * + * -malign-double is needed for gcc if the rest of HMMER was compiled w/ -malign-double + * (i.e., our default gcc optimization) + * + * 27 Dec 08 on wanderoo: 24 msec per RRM_1 calibration; 37 msec for Caudal_act + * profiling shows 75% in Forward; 12% esl_random(); <3% in MSVFilter. + */ +#include +#include +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "cachedb.h" +#include "hmmpgmd.h" + + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +typedef struct seq_info_s { + ESL_DSQ *dsq; /* digitized sequence [1..n] */ + int64_t n; /* length of dsq */ + int32_t inx; /* length of dsq */ + uint64_t db_key; /* flag for included databases */ + struct seq_info_s *next; +} SEQ_INFO; + +#define HASH_KEY 52807 +#define SUB_HASH 1531 + +int +main(int argc, char **argv) +{ + FILE *ofp = stdout; + + int i; + int cnt; + int inx; + int status; + int seq_cnt; + int db_inx; + int db_key; + int db_K[32]; + int db_cnt[32]; + + uint64_t res_cnt; + + char *seqfile; + char buffer[10]; + + ESL_GETOPTS *go = NULL; + ESL_ALPHABET *abc = NULL; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + + SEQ_INFO *info; + SEQ_INFO **hash; + + time_t timep; + + if ((go = esl_getopts_Create(options)) == NULL) { + printf("Failed to create options\n"); + return 0; + } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_getopts_Destroy(go); + return 0; + } + if (esl_opt_VerifyConfig(go) != eslOK) { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_getopts_Destroy(go); + return 0; + } + + if (esl_opt_ArgNumber(go) < 1) { + printf("Must specify at least one database\n"); + esl_getopts_Destroy(go); + return 0; + } + + if (esl_opt_IsOn(go, "-o")) { + if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) { + printf("Failed to open output database %s for writing\n", esl_opt_GetString(go, "-o")); + return 0; + } + } + + abc = esl_alphabet_Create(eslAMINO); + sq = esl_sq_CreateDigital(abc); + + ESL_ALLOC(hash, sizeof(char *) * HASH_KEY); + memset(hash, 0, sizeof(char *) * HASH_KEY); + + memset(db_K, 0, sizeof(db_K)); + memset(db_cnt, 0, sizeof(db_cnt)); + + res_cnt = 0; + seq_cnt = 0; + + cnt = 0; + + db_key = 1; + db_inx = 1; + + while (db_inx <= esl_opt_ArgNumber(go)) { + + /* the first db just build the list */ + seqfile = esl_opt_GetArg(go, db_inx); + if ((status = esl_sqfile_Open(seqfile, eslSQFILE_FASTA, NULL, &sqfp)) != eslOK) { + printf("Unable to open sequence database %s\n", seqfile); + return status; + } + printf("Database %d: %s\n", db_inx, seqfile); + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) { + int sum = 0; + + inx = 0; + for (i = 1; i <= sq->n; ++i) { + inx += (sq->dsq[i] * sq->dsq[i]); + sum = inx % SUB_HASH; + } + inx = inx % HASH_KEY; + + info = hash[inx]; + while (info != NULL) { + if (sq->n == info->n && sum == info->inx && memcmp(sq->dsq, info->dsq, sq->n+2) == 0) { + break; + } + info = info->next; + } + + if (info == NULL) { + ESL_ALLOC(info, sizeof(SEQ_INFO)); + ESL_ALLOC(info->dsq, sq->n+2); + memcpy(info->dsq, sq->dsq, sq->n+2); + info->n = sq->n; + info->db_key = db_key; + info->inx = sum; + ++db_cnt[db_inx-1]; + + info->next = hash[inx]; + hash[inx] = info; + + res_cnt += sq->n; + seq_cnt++; + } else if ((info->db_key & db_key) == 0) { + info->db_key |= db_key; + ++db_cnt[db_inx-1]; + } + + ++db_K[db_inx-1]; + + esl_sq_Reuse(sq); + } + + esl_sqfile_Close(sqfp); + + db_key <<= 1; + db_inx++; + + printf("\n"); + } + + printf("Writing cache %s\n", esl_opt_GetString(go, "-o")); + + timep = time(NULL); + fprintf(ofp, "# %" PRId64 " %d %d", res_cnt, seq_cnt, db_inx - 1); + for (i = 0; i < db_inx - 1; ++i) fprintf(ofp, " %d %d", db_cnt[i], db_K[i]); + fprintf(ofp, " %s", ctime(&timep)); + + strcpy(buffer, "000000001"); + + for (inx = 0; inx < HASH_KEY; ++inx) { + info = hash[inx]; + while (info) { + int pos; + char buf[80]; + SEQ_INFO *next = info->next; + fprintf(ofp, ">%s ", buffer); + + while (info->db_key) { + fprintf(ofp, "%c", (info->db_key & 1) ? '1' : '0'); + info->db_key >>= 1; + } + fprintf(ofp, "\n"); + + for (pos = 0; pos < info->n; pos += 60) { + esl_abc_TextizeN(abc, info->dsq+pos+1, 60, buf); + buf[60] = '\0'; + fprintf(ofp, "%s\n", buf); + } + + free(info->dsq); + free(info); + + info = next; + + /* increment the buffer string */ + ++buffer[8]; + for (i = 8; i > 0; --i) { + if (buffer[i] > '9') { + buffer[i] = '0'; + buffer[i-1]++; + } + } + } + } + + free(hash); + + esl_alphabet_Destroy(abc); + esl_sq_Destroy(sq); + + if (ofp != stdout) fclose(ofp); + + if (esl_opt_IsOn(go, "-o")) { + P7_CACHEDB_SEQS *cache = NULL; + printf("Reading cache %s\n", esl_opt_GetString(go, "-o")); + if ((status = cache_SeqDb(esl_opt_GetString(go, "-o"), &cache)) != eslOK) { + printf("ERROR %d\n", status); + return 0; + } + cache_SeqDestroy(cache); + } + + esl_getopts_Destroy(go); + + return 0; + + ERROR: + return status; +} + +#endif /*CACHEDB_UTEST1*/ + + +#ifdef CACHEDB_UTEST2 +/* + * gcc -O3 -malign-double -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -O -pg -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -Wall -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * + * ./evalues-benchmark + * + * -malign-double is needed for gcc if the rest of HMMER was compiled w/ -malign-double + * (i.e., our default gcc optimization) + * + * 27 Dec 08 on wanderoo: 24 msec per RRM_1 calibration; 37 msec for Caudal_act + * profiling shows 75% in Forward; 12% esl_random(); <3% in MSVFilter. + */ +#include +#include +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "cachedb.h" +#include "hmmpgmd.h" + + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] db1 [db2 ...]"; +static char banner[] = "unit test for cached databases"; + +typedef struct seq_info_s { + ESL_DSQ *dsq; /* digitized sequence [1..n] */ + int64_t n; /* length of dsq */ + uint64_t db_key; /* flag for included databases */ + struct seq_info_s *next; +} SEQ_INFO; + +int +main(int argc, char **argv) +{ + int status; + + ESL_GETOPTS *go = NULL; + P7_CACHEDB_SEQS *cache = NULL; + + + if ((go = esl_getopts_Create(options)) == NULL) { + printf("Failed to create options\n"); + return 0; + } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_getopts_Destroy(go); + return 0; + } + if (esl_opt_VerifyConfig(go) != eslOK) { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_getopts_Destroy(go); + return 0; + } + + if (esl_opt_ArgNumber(go) < 1) { + printf("Must specify at least one database\n"); + esl_getopts_Destroy(go); + return 0; + } + + printf("Reading cache %s\n", esl_opt_GetArg(go, 1)); + if ((status = cache_SeqDb(esl_opt_GetArg(go, 1), &cache)) != eslOK) { + printf("ERROR %d\n", status); + return 0; + } + cache_SeqDestroy(cache); + + esl_getopts_Destroy(go); + + return 0; +} + +#endif /*CACHEDB_UTEST2*/ + + diff --git a/bioinformaticsProject/hmmer/src/cachedb.h b/bioinformaticsProject/hmmer/src/cachedb.h new file mode 100644 index 0000000..098dd26 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/cachedb.h @@ -0,0 +1,42 @@ +#ifndef P7_CACHEDB_INCLUDED +#define P7_CACHEDB_INCLUDED + +typedef struct { + char *name; /* name; ("\0" if no name) */ + ESL_DSQ *dsq; /* digitized sequence [1..n] */ + int64_t n; /* length of dsq */ + int64_t idx; /* ctr for this seq */ + uint64_t db_key; /* flag for included databases */ + char *desc; /* description */ +} HMMER_SEQ; + +typedef struct { + uint32_t count; /* number of entries */ + uint32_t K; /* original number of entries */ + HMMER_SEQ **list; /* list of sequences [0 .. count-1] */ +} SEQ_DB; + +typedef struct { + char *name; /* name of the seq database */ + char *id; /* unique identifier string */ + uint32_t db_cnt; /* number of sub databases */ + SEQ_DB *db; /* list of databases [0 .. db_cnt-1] */ + + ESL_ALPHABET *abc; /* alphabet for database */ + + uint32_t count; /* total number of sequences */ + HMMER_SEQ *list; /* complete list of sequences (count) */ + void *residue_mem; /* memory holding the residues */ + char *header_mem; /* memory holding the header strings */ + + uint64_t res_size; /* size of residue memory allocation */ + uint64_t hdr_size; /* size of header memory allocation */ +} P7_SEQCACHE; + + + +extern int p7_seqcache_Open(char *seqfile, P7_SEQCACHE **ret_cache, char *errbuf); +extern void p7_seqcache_Close(P7_SEQCACHE *cache); + +#endif /*P7_CACHEDB_INCLUDED*/ + diff --git a/bioinformaticsProject/hmmer/src/cachedb_shard.c b/bioinformaticsProject/hmmer/src/cachedb_shard.c new file mode 100644 index 0000000..d131029 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/cachedb_shard.c @@ -0,0 +1,996 @@ +/* Sequence and profile caches, used by the hmmpgmd daemon. + */ +#include "p7_config.h" + +#include +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "cachedb.h" +#include "cachedb_shard.h" +#include "hmmpgmd.h" + + +/* sort routines */ +static int +sort_seq(const void *p1, const void *p2) +{ + int cmp; + + cmp = (((HMMER_SEQ *)p1)->idx < ((HMMER_SEQ *)p2)->idx); + cmp -= (((HMMER_SEQ *)p1)->idx > ((HMMER_SEQ *)p2)->idx); + + return cmp; +} + + +/* Modified version of p7_seqcache_Open that doesn't actually cache the sequences and their descriptions, + just records the index of each sequence, as that's all the master node really needs. + We could save a bit more memory by modifying some of the data structures to not include pointers to + fields that the master doesn't need, but just removing the residues and descriptions should reduce the memory + footprint enough to meet our goal of keeping EBI working until H4 ships */ +int +p7_seqcache_Open_master(char *seqfile, P7_SEQCACHE **ret_cache, char *errbuf) +{ + int i; + int inx; + int val; + int status; + + uint64_t seq_cnt; + uint32_t db_cnt; + uint32_t db_inx[32]; + uint32_t db_key; + + //uint64_t res_cnt; + //uint64_t res_size; + uint64_t hdr_size; + + char *hdr_ptr; + //ESL_DSQ *res_ptr; + char *desc_ptr; + char *ptr; + char buffer[512]; + off_t offset; + + uint64_t total_mem; + + SEQ_DB *db = NULL; + P7_SEQCACHE *cache = NULL; + + ESL_RANDOMNESS *rnd = NULL; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + ESL_ALPHABET *abc = NULL; + ESL_SQASCII_DATA *ascii = NULL; + + if (errbuf) errbuf[0] = '\0'; /* CURRENTLY UNUSED. FIXME */ + + /* Open the target sequence database */ + if ((status = esl_sqfile_Open(seqfile, eslSQFILE_FASTA, NULL, &sqfp)) != eslOK) return status; + + /* This is a bit of a hack. The first line contains database information. + * + * # ... + * + * The rest of the file is a fasta format. The fasta header is just + * sequence number followed by a binary number indicating which + * database this sequence occurs in. + * + * The header line will be read in, parsed and saved. Then the + * parser will be repositioned after the line and used normally. + */ + ascii = &sqfp->data.ascii; + fseek(ascii->fp, 0L, SEEK_SET); + if (fgets(buffer, sizeof(buffer), ascii->fp) == NULL) return eslEFORMAT; + if (buffer[0] != '#') return eslEFORMAT; + + ptr = buffer + 1; + //res_cnt = strtoll(ptr, &ptr, 10); + strtoll(ptr, &ptr, 10); // SRE: res_cnt unused, but parsing still needs to be advanced + seq_cnt = strtol(ptr, &ptr, 10); + db_cnt = strtol(ptr, &ptr, 10); + + if (db_cnt > (sizeof(db_inx)/sizeof(db_inx[0]))) return eslEFORMAT; + + total_mem = sizeof(P7_SEQCACHE); + ESL_ALLOC(cache, sizeof(P7_SEQCACHE)); + memset(cache, 0, sizeof(P7_SEQCACHE)); + + if (esl_strdup(seqfile, -1, &cache->name) != eslOK) goto ERROR; + + total_mem += (sizeof(HMMER_SEQ) * seq_cnt); + ESL_ALLOC(cache->list, sizeof(HMMER_SEQ) * seq_cnt); + memset(cache->list, 0, sizeof(HMMER_SEQ) * seq_cnt); + + total_mem += (sizeof(SEQ_DB) * db_cnt); + ESL_ALLOC(db, sizeof(SEQ_DB) * db_cnt); + for (i = 0; i < db_cnt; ++i) { + db[i].count = strtol(ptr, &ptr, 10); + db[i].K = strtol(ptr, &ptr, 10); + total_mem += (sizeof(HMMER_SEQ *) * db[i].count); + ESL_ALLOC(db[i].list, sizeof(HMMER_SEQ *) * db[i].count); + memset(db[i].list, 0, sizeof(HMMER_SEQ *) * db[i].count); + } + + /* grab the unique identifier */ + while (*ptr && isspace(*ptr)) ++ptr; + i = strlen(ptr); + ESL_ALLOC(cache->id, i+1); + strcpy(cache->id, ptr); + while (--i > 0 && isspace(cache->id[i])) cache->id[i] = 0; + + //res_size = res_cnt + seq_cnt + 1; + hdr_size = seq_cnt * 10; + + //total_mem += res_size + hdr_size; + total_mem += hdr_size; +// ESL_ALLOC(cache->residue_mem, res_size); + ESL_ALLOC(cache->header_mem, hdr_size); + + /* position the sequence file to the start of the first sequence. + * this will force any buffers associated with the file to be reset. + */ + offset = ftell(ascii->fp); + if ((status = esl_sqfile_Position(sqfp, offset)) != eslOK) goto ERROR; + + abc = esl_alphabet_Create(eslAMINO); + sq = esl_sq_CreateDigital(abc); + + cache->db_cnt = db_cnt; + cache->db = db; + cache->abc = abc; +// cache->res_size = res_size; + cache->res_size = 0; + cache->hdr_size = hdr_size; + cache->count = seq_cnt; + + hdr_ptr = cache->header_mem; + //res_ptr = cache->residue_mem; + for (i = 0; i < db_cnt; ++i) db_inx[i] = 0; + + strcpy(buffer, "000000001"); + + inx = 0; + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) { + + /* sanity checks */ + if (inx >= seq_cnt) { printf("inx: %d\n", inx); return eslEFORMAT; } +// if (sq->n + 1 > res_size) { printf("inx: %d size %d %d\n", inx, (int)sq->n + 1, (int)res_size); return eslEFORMAT; } +// This check no longer needed since we aren't caching the sequences themselves + + if (hdr_size <= 0) { printf("inx: %d hdr %d\n", inx, (int)hdr_size); return eslEFORMAT; } + + /* generate the database key - modified to take the first word in the desc line. + * The remaining part of the desc is then cached as the description. */ + + ptr = sq->desc;; + desc_ptr = strchr(sq->desc, ' '); + if(desc_ptr != NULL) { + *desc_ptr= '\0'; + ++desc_ptr; + } // need this to keep the db_key computation from running off the rails + val = 1; + db_key = 0; + while (*ptr) { + if (*ptr == '1') db_key += val; + val <<= 1; + ++ptr; + } + + + if (db_key >= (1 << (db_cnt + 1))) { printf("inx: %d db_cnt %d db %d %s\n", inx, db_cnt, db_key, sq->desc); return eslEFORMAT; } + + cache->list[inx].name = hdr_ptr; + cache->list[inx].dsq = NULL; + //cache->list[inx].dsq = (ESL_DSQ *)res_ptr; + cache->list[inx].n = sq->n; + cache->list[inx].idx = inx; + cache->list[inx].db_key = db_key; + //if(desc_ptr != NULL) esl_strdup(desc_ptr, -1, &(cache->list[inx].desc)); + + /* copy the digitized sequence */ + //memcpy(res_ptr, sq->dsq, sq->n + 1); + //res_ptr += (sq->n + 1); + //res_size -= (sq->n + 1); + + /* copy the index to the header */ + strcpy(hdr_ptr, buffer); + hdr_ptr += 10; + hdr_size -= 10; + + /* increment the buffer string */ + ++buffer[8]; + for (i = 8; i > 0; --i) { + if (buffer[i] > '9') { + buffer[i] = '0'; + buffer[i-1]++; + } + } + + esl_sq_Reuse(sq); + ++inx; + } + if (status != eslEOF) { printf("Unexpected error %d at %d\n", status, inx); return status; } + + if (inx != seq_cnt) { printf("inx:: %d %" PRIu64 "\n", inx, seq_cnt); return eslEFORMAT; } + if (hdr_size != 0) { printf("inx:: %d hdr %d\n", inx, (int)hdr_size); return eslEFORMAT; } + //if (res_size != 1) { printf("inx:: %d size %d %d\n", inx, (int)sq->n + 1, (int)res_size); return eslEFORMAT; } + + /* copy the final sentinel character */ + //*res_ptr++ = eslDSQ_SENTINEL; + //--res_size; + + /* sort the order of the database sequences */ + rnd = esl_randomness_CreateFast(seq_cnt); + for (i = 0 ; i < seq_cnt; ++i) { + rnd->x = rnd->x * 69069 + 1; + cache->list[i].idx = rnd->x; + } + esl_randomness_Destroy(rnd); + qsort(cache->list, seq_cnt, sizeof(HMMER_SEQ), sort_seq); + + /* fill in the different databases and fix the index */ + for (i = 0 ; i < seq_cnt; ++i) { + inx = 0; + db_key = cache->list[i].db_key; + while (db_key) { + if (db_key & 1) { + SEQ_DB *db = cache->db + inx; + if (db_inx[inx] >= db->count) { printf("sort:: %d %d\n", db_inx[inx], db->count); return eslEFORMAT; } + db->list[db_inx[inx]] = &cache->list[i]; + ++db_inx[inx]; + } + db_key >>= 1; + ++inx; + } + cache->list[i].idx = (cache->list[i].name - cache->header_mem) / 10 + 1; + } + + for (i = 0; i < cache->db_cnt; ++i) { + printf("sequence database (%d):: %d %d\n", i, cache->db[i].count, db_inx[i]); + } + + printf("\nLoaded sequence db file %s; total memory %" PRId64 "\n", seqfile, total_mem); + + esl_sqfile_Close(sqfp); + esl_sq_Destroy(sq); + + *ret_cache = cache; + + return eslOK; + + ERROR: + if (sq != NULL) esl_sq_Destroy(sq); + if (abc != NULL) esl_alphabet_Destroy(abc); + if (cache != NULL) { + if (cache->header_mem != NULL) free(cache->header_mem); + if (cache->residue_mem != NULL) free(cache->residue_mem); + if (cache->name != NULL) free(cache->name); + if (cache->id != NULL) free(cache->id); + free(cache); + } + for (i = 0; i < db_cnt; ++i) { + if (db[i].list != NULL) free(db[i].list); + } + return eslEMEM; +} + +void +p7_seqcache_Close_master(P7_SEQCACHE *cache) +{ + int i; + + if (cache->name) free(cache->name); + if (cache->id) free(cache->id); + if (cache->db) + { + for (i = 0; i < cache->db_cnt; ++i) { + if (cache->db[i].list != NULL) free(cache->db[i].list); + } + free(cache->db); + } + if (cache->abc) esl_alphabet_Destroy(cache->abc); + if (cache->list) free(cache->list); + //if (cache->residue_mem) free(cache->residue_mem); + if (cache->header_mem) free(cache->header_mem); + free(cache); +} + +int +p7_seqcache_Open_shard(char *seqfile, P7_SEQCACHE **ret_cache, char *errbuf, int my_shard, uint64_t num_shards) +{ + + //note: num_shards is declared here to be 64-bit because it's used in computations with other 64-bit values, + // not because we anticipate needing anywhere near that many shards + int i; + int inx; + int val; + int status; + uint32_t sequence_number; // Count the total number of sequences seen so that we get the correct sequence IDs + uint64_t seq_cnt; + uint32_t db_cnt; + uint32_t db_inx[32]; + uint32_t db_key; + + uint64_t res_cnt; + uint64_t res_size; + uint64_t hdr_size; + + char *hdr_ptr; + ESL_DSQ *res_ptr; + char *desc_ptr; + char *ptr; + char buffer[512]; + off_t offset; + + uint64_t total_mem; + uint64_t res_mem_used, hdr_mem_used; + + SEQ_DB *db = NULL; + P7_SEQCACHE *cache = NULL; + + ESL_RANDOMNESS *rnd = NULL; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + ESL_ALPHABET *abc = NULL; + ESL_SQASCII_DATA *ascii = NULL; + uint64_t *db_seq_count, *seq_in_db; + if (errbuf) errbuf[0] = '\0'; /* CURRENTLY UNUSED. FIXME */ + + /* Open the target sequence database */ + if ((status = esl_sqfile_Open(seqfile, eslSQFILE_FASTA, NULL, &sqfp)) != eslOK) return status; + + /* This is a bit of a hack. The first line contains database information. + * + * # ... + * + * The rest of the file is a fasta format. The fasta header is just + * sequence number followed by a binary number indicating which + * database this sequence occurs in. + * + * The header line will be read in, parsed and saved. Then the + * parser will be repositioned after the line and used normally. + */ + ascii = &sqfp->data.ascii; + fseek(ascii->fp, 0L, SEEK_SET); + if (fgets(buffer, sizeof(buffer), ascii->fp) == NULL) return eslEFORMAT; + if (buffer[0] != '#') return eslEFORMAT; + + ptr = buffer + 1; + res_cnt = strtoll(ptr, &ptr, 10); + seq_cnt = strtol(ptr, &ptr, 10); + db_cnt = strtol(ptr, &ptr, 10); + + if (db_cnt > (sizeof(db_inx)/sizeof(db_inx[0]))) return eslEFORMAT; + + total_mem = sizeof(P7_SEQCACHE); + ESL_ALLOC(cache, sizeof(P7_SEQCACHE)); + memset(cache, 0, sizeof(P7_SEQCACHE)); + + if (esl_strdup(seqfile, -1, &cache->name) != eslOK) goto ERROR; + + total_mem += (sizeof(HMMER_SEQ) * seq_cnt); + ESL_ALLOC(cache->list, sizeof(HMMER_SEQ) * seq_cnt); + memset(cache->list, 0, sizeof(HMMER_SEQ) * seq_cnt); + + total_mem += (sizeof(SEQ_DB) * db_cnt); + ESL_ALLOC(db, sizeof(SEQ_DB) * db_cnt); + for (i = 0; i < db_cnt; ++i) { + db[i].count = strtol(ptr, &ptr, 10); // this will get overwritten later + db[i].K = strtol(ptr, &ptr, 10); + total_mem += (sizeof(HMMER_SEQ *) * db[i].count); + ESL_ALLOC(db[i].list, sizeof(HMMER_SEQ *) * db[i].count); + memset(db[i].list, 0, sizeof(HMMER_SEQ *) * db[i].count); + } + + ESL_ALLOC(db_seq_count, db_cnt *sizeof(uint64_t)); + ESL_ALLOC(seq_in_db, db_cnt *sizeof(uint64_t)); + for (i = 0; i < db_cnt; i++){ + db_seq_count[i] = 0; + seq_in_db[i] = 0; + } + /* grab the unique identifier */ + while (*ptr && isspace(*ptr)) ++ptr; + i = strlen(ptr); + ESL_ALLOC(cache->id, i+1); + strcpy(cache->id, ptr); + while (--i > 0 && isspace(cache->id[i])) cache->id[i] = 0; + + res_size = (res_cnt + seq_cnt + 1)/num_shards; // starting guesses about how much memory we'll need + hdr_size = (seq_cnt * 10) / num_shards; // starting guesses about how much memory we'll need + + // total_mem += res_size + hdr_size; (we'll update this later, once we know how much memory we're really using) + ESL_ALLOC(cache->residue_mem, res_size); + ESL_ALLOC(cache->header_mem, hdr_size); + + /* position the sequence file to the start of the first sequence. + * this will force any buffers associated with the file to be reset. + */ + offset = ftell(ascii->fp); + if ((status = esl_sqfile_Position(sqfp, offset)) != eslOK) goto ERROR; + + abc = esl_alphabet_Create(eslAMINO); + sq = esl_sq_CreateDigital(abc); + + cache->db_cnt = db_cnt; + cache->db = db; + cache->abc = abc; + cache->res_size = res_size; + cache->hdr_size = hdr_size; + cache->count = seq_cnt; + + hdr_ptr = cache->header_mem; + res_ptr = cache->residue_mem; + for (i = 0; i < db_cnt; ++i) db_inx[i] = 0; + + strcpy(buffer, "000000001"); +//printf("Worker starting to read DB\n"); + inx = 0; + sequence_number = 1; + res_mem_used = 0; + hdr_mem_used = 0; + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) { + + /* sanity checks */ + if (inx >= seq_cnt) { printf("inx: %d\n", inx); return eslEFORMAT; } + if (sq->n + 1 > res_size) { printf("inx: %d size %d %d\n", inx, (int)sq->n + 1, (int)res_size); return eslEFORMAT; } + if (hdr_size <= 0) { printf("inx: %d hdr %d\n", inx, (int)hdr_size); return eslEFORMAT; } + + /* generate the database key - modified to take the first word in the desc line. + * The remaining part of the desc is then cached as the description. */ + + ptr = sq->desc;; + desc_ptr = strchr(sq->desc, ' '); + if(desc_ptr != NULL) { + *desc_ptr= '\0'; + ++desc_ptr; + } + val = 1; + db_key = 0; + i = 0; + while (*ptr) { + if (*ptr == '1'){ + if(db_seq_count[i] % num_shards == my_shard){ //this sequence is part of database i and belongs to this node's shard + db_key += val; + seq_in_db[i]++; + } + db_seq_count[i]++; // increase the number of sequences we've seen that belong to database i + } + val <<= 1; + i++; + ++ptr; + } + + + if (db_key >= (1 << (db_cnt + 1))) { printf("inx: %d db %d %s\n", inx, db_key, sq->desc); return eslEFORMAT; } + + if(db_key != 0){ // This sequence appears in the appropriate shard of at least one database, so put it in the cache + cache->list[inx].name = hdr_ptr; + cache->list[inx].dsq = (ESL_DSQ *)res_ptr; + cache->list[inx].n = sq->n; + cache->list[inx].idx = sequence_number; + cache->list[inx].db_key = db_key; + if(desc_ptr != NULL) esl_strdup(desc_ptr, -1, &(cache->list[inx].desc)); + ++inx; + + /* copy the digitized sequence */ + if(res_size < res_mem_used + sq->n +1){ + // fprintf(stderr, "Reallocing residue_mem to size %llu\n", res_mem_used+ sq->n + 1); + ESL_REALLOC(cache->residue_mem, res_mem_used + (1024 * 1024)); // add a megabyte of space at a time to reduce + // the number of reallocations we do + res_ptr = cache->residue_mem + res_mem_used; + res_size = res_mem_used + (1024 * 1024); + } + // printf("Copying %llu bytes into residue array of size %llu with %llu bytes already used\n", (sq->n +1), res_size, res_mem_used); + memcpy(res_ptr, sq->dsq, sq->n + 1); + res_ptr += (sq->n + 1); + res_mem_used += (sq->n +1); + + /* copy the index to the header */ + if(hdr_size < hdr_mem_used + 10){ +// fprintf(stderr, "Reallocing hdr_mem to size %llu\n", hdr_mem_used +10); + ESL_REALLOC(cache->header_mem, hdr_mem_used + (100 * 1024)); // add 100k at a time to reduces the number of reallocs + hdr_ptr = cache->header_mem + hdr_mem_used; + hdr_size = hdr_mem_used + (100 * 1024); + } + strcpy(hdr_ptr, buffer); + hdr_ptr += 10; + hdr_mem_used += 10; + } + /* increment the buffer string */ + ++buffer[8]; + for (i = 8; i > 0; --i) { + if (buffer[i] > '9') { + buffer[i] = '0'; + buffer[i-1]++; + } + } + + esl_sq_Reuse(sq); + sequence_number++; + /* if(strtol(buffer, NULL, 10) != (long)sequence_number){ + printf("Miss-match between sequence name of %s and number of %d\n", buffer, sequence_number); + } */ + } +//printf("Starting final reallocs\n"); + ESL_REALLOC(cache->header_mem, hdr_mem_used); // trim any unused memory in this array + ESL_REALLOC(cache->residue_mem, res_mem_used+1); // ditto + +//printf("Worker done reading DB\n"); + + // Need to patch all of the header and sequence pointers in the cache list because they may have gotten mangled by reallocs + hdr_ptr = cache->header_mem; // reset to base + res_ptr = cache->residue_mem; // ditto + + for(i = 0; i < inx; i++){ + cache->list[i].name = hdr_ptr; + hdr_ptr+= 10; + cache->list[i].dsq = (ESL_DSQ *) res_ptr; + res_ptr += cache->list[i].n + 1; + } + + if (status != eslEOF) { printf("Unexpected error %d at %d\n", status, inx); return status; } + + for(i = 0; i < db_cnt; i++){ + // reset database sequence counts based on number of sequences in shard + db[i].count = seq_in_db[i]; + + } + //if (inx != seq_cnt) { printf("inx:: %d %d\n", inx, seq_cnt); return eslEFORMAT; } + //if (hdr_size != 0) { printf("inx:: %d hdr %d\n", inx, (int)hdr_size); return eslEFORMAT; } + //if (res_size != 1) { printf("inx:: %d size %d %d\n", inx, (int)sq->n + 1, (int)res_size); return eslEFORMAT; } + + /* copy the final sentinel character */ + *res_ptr++ = eslDSQ_SENTINEL; + --res_size; + + seq_cnt = inx; //Record number of sequences actually loaded into memory with sharding + /* sort the order of the database sequences */ + rnd = esl_randomness_CreateFast(seq_cnt); + for (i = 0 ; i < seq_cnt; ++i) { + rnd->x = rnd->x * 69069 + 1; + cache->list[i].idx = rnd->x; + } + esl_randomness_Destroy(rnd); + qsort(cache->list, seq_cnt, sizeof(HMMER_SEQ), sort_seq); + + /* fill in the different databases and fix the index */ + for (i = 0 ; i < seq_cnt; ++i) { + inx = 0; + db_key = cache->list[i].db_key; + while (db_key) { + if (db_key & 1) { + SEQ_DB *db = cache->db + inx; + if (db_inx[inx] >= db->count) { printf("sort:: %d %d\n", db_inx[inx], db->count); return eslEFORMAT; } + db->list[db_inx[inx]] = &cache->list[i]; + ++db_inx[inx]; + } + db_key >>= 1; + ++inx; + } + //cache->list[i].idx = (cache->list[i].name - cache->header_mem) / 10 + 1; + cache->list[i].idx = strtol(cache->list[i].name, NULL, 10); + } + + for (i = 0; i < cache->db_cnt; ++i) { + printf("sequence database (%d):: %d %d\n", i, cache->db[i].count, db_inx[i]); + } + // re-update these with the computed values + cache->res_size = res_mem_used; + cache->hdr_size = hdr_mem_used; + //cache->count = inx; + + total_mem += (res_mem_used + hdr_mem_used); + printf("\nLoaded sequence db file %s; total memory %" PRId64 "\n", seqfile, total_mem); + + esl_sqfile_Close(sqfp); + esl_sq_Destroy(sq); + + + *ret_cache = cache; + free(db_seq_count); + free(seq_in_db); + return eslOK; + + ERROR: + if (sq != NULL) esl_sq_Destroy(sq); + if (abc != NULL) esl_alphabet_Destroy(abc); + if (cache != NULL) { + if (cache->header_mem != NULL) free(cache->header_mem); + if (cache->residue_mem != NULL) free(cache->residue_mem); + if (cache->name != NULL) free(cache->name); + if (cache->id != NULL) free(cache->id); + free(cache); + } + for (i = 0; i < db_cnt; ++i) { + if (db[i].list != NULL) free(db[i].list); + } + return eslEMEM; +} +/* +void +p7_seqcache_Close(P7_SEQCACHE *cache) +{ + int i; + + if (cache->name) free(cache->name); + if (cache->id) free(cache->id); + if (cache->db) + { + for (i = 0; i < cache->db_cnt; ++i) { + if (cache->db[i].list != NULL) free(cache->db[i].list); + } + free(cache->db); + } + if (cache->abc) esl_alphabet_Destroy(cache->abc); + if (cache->list) free(cache->list); + if (cache->residue_mem) free(cache->residue_mem); + if (cache->header_mem) free(cache->header_mem); + free(cache); +} +*/ + +/***************************************************************** + * x. Unit test + *****************************************************************/ + +#ifdef CACHEDB_UTEST1 +/* + * gcc -O3 -malign-double -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -O -pg -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -Wall -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * + * ./evalues-benchmark + * + * -malign-double is needed for gcc if the rest of HMMER was compiled w/ -malign-double + * (i.e., our default gcc optimization) + * + * 27 Dec 08 on wanderoo: 24 msec per RRM_1 calibration; 37 msec for Caudal_act + * profiling shows 75% in Forward; 12% esl_random(); <3% in MSVFilter. + */ +#include +#include +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "cachedb.h" +#include "hmmpgmd.h" + + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +typedef struct seq_info_s { + ESL_DSQ *dsq; /* digitized sequence [1..n] */ + int64_t n; /* length of dsq */ + int32_t inx; /* length of dsq */ + uint64_t db_key; /* flag for included databases */ + struct seq_info_s *next; +} SEQ_INFO; + +#define HASH_KEY 52807 +#define SUB_HASH 1531 + +int +main(int argc, char **argv) +{ + FILE *ofp = stdout; + + int i; + int cnt; + int inx; + int status; + int seq_cnt; + int db_inx; + int db_key; + int db_K[32]; + int db_cnt[32]; + + uint64_t res_cnt; + + char *seqfile; + char buffer[10]; + + ESL_GETOPTS *go = NULL; + ESL_ALPHABET *abc = NULL; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + + SEQ_INFO *info; + SEQ_INFO **hash; + + time_t timep; + + if ((go = esl_getopts_Create(options)) == NULL) { + printf("Failed to create options\n"); + return 0; + } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_getopts_Destroy(go); + return 0; + } + if (esl_opt_VerifyConfig(go) != eslOK) { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_getopts_Destroy(go); + return 0; + } + + if (esl_opt_ArgNumber(go) < 1) { + printf("Must specify at least one database\n"); + esl_getopts_Destroy(go); + return 0; + } + + if (esl_opt_IsOn(go, "-o")) { + if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) { + printf("Failed to open output database %s for writing\n", esl_opt_GetString(go, "-o")); + return 0; + } + } + + abc = esl_alphabet_Create(eslAMINO); + sq = esl_sq_CreateDigital(abc); + + ESL_ALLOC(hash, sizeof(char *) * HASH_KEY); + memset(hash, 0, sizeof(char *) * HASH_KEY); + + memset(db_K, 0, sizeof(db_K)); + memset(db_cnt, 0, sizeof(db_cnt)); + + res_cnt = 0; + seq_cnt = 0; + + cnt = 0; + + db_key = 1; + db_inx = 1; + + while (db_inx <= esl_opt_ArgNumber(go)) { + + /* the first db just build the list */ + seqfile = esl_opt_GetArg(go, db_inx); + if ((status = esl_sqfile_Open(seqfile, eslSQFILE_FASTA, NULL, &sqfp)) != eslOK) { + printf("Unable to open sequence database %s\n", seqfile); + return status; + } + printf("Database %d: %s\n", db_inx, seqfile); + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) { + int sum = 0; + + inx = 0; + for (i = 1; i <= sq->n; ++i) { + inx += (sq->dsq[i] * sq->dsq[i]); + sum = inx % SUB_HASH; + } + inx = inx % HASH_KEY; + + info = hash[inx]; + while (info != NULL) { + if (sq->n == info->n && sum == info->inx && memcmp(sq->dsq, info->dsq, sq->n+2) == 0) { + break; + } + info = info->next; + } + + if (info == NULL) { + ESL_ALLOC(info, sizeof(SEQ_INFO)); + ESL_ALLOC(info->dsq, sq->n+2); + memcpy(info->dsq, sq->dsq, sq->n+2); + info->n = sq->n; + info->db_key = db_key; + info->inx = sum; + ++db_cnt[db_inx-1]; + + info->next = hash[inx]; + hash[inx] = info; + + res_cnt += sq->n; + seq_cnt++; + } else if ((info->db_key & db_key) == 0) { + info->db_key |= db_key; + ++db_cnt[db_inx-1]; + } + + ++db_K[db_inx-1]; + + esl_sq_Reuse(sq); + } + + esl_sqfile_Close(sqfp); + + db_key <<= 1; + db_inx++; + + printf("\n"); + } + + printf("Writing cache %s\n", esl_opt_GetString(go, "-o")); + + timep = time(NULL); + fprintf(ofp, "# %" PRId64 " %d %d", res_cnt, seq_cnt, db_inx - 1); + for (i = 0; i < db_inx - 1; ++i) fprintf(ofp, " %d %d", db_cnt[i], db_K[i]); + fprintf(ofp, " %s", ctime(&timep)); + + strcpy(buffer, "000000001"); + + for (inx = 0; inx < HASH_KEY; ++inx) { + info = hash[inx]; + while (info) { + int pos; + char buf[80]; + SEQ_INFO *next = info->next; + fprintf(ofp, ">%s ", buffer); + + while (info->db_key) { + fprintf(ofp, "%c", (info->db_key & 1) ? '1' : '0'); + info->db_key >>= 1; + } + fprintf(ofp, "\n"); + + for (pos = 0; pos < info->n; pos += 60) { + esl_abc_TextizeN(abc, info->dsq+pos+1, 60, buf); + buf[60] = '\0'; + fprintf(ofp, "%s\n", buf); + } + + free(info->dsq); + free(info); + + info = next; + + /* increment the buffer string */ + ++buffer[8]; + for (i = 8; i > 0; --i) { + if (buffer[i] > '9') { + buffer[i] = '0'; + buffer[i-1]++; + } + } + } + } + + free(hash); + + esl_alphabet_Destroy(abc); + esl_sq_Destroy(sq); + + if (ofp != stdout) fclose(ofp); + + if (esl_opt_IsOn(go, "-o")) { + P7_CACHEDB_SEQS *cache = NULL; + printf("Reading cache %s\n", esl_opt_GetString(go, "-o")); + if ((status = cache_SeqDb(esl_opt_GetString(go, "-o"), &cache)) != eslOK) { + printf("ERROR %d\n", status); + return 0; + } + cache_SeqDestroy(cache); + } + + esl_getopts_Destroy(go); + + return 0; + + ERROR: + return status; +} + +#endif /*CACHEDB_UTEST1*/ + + +#ifdef CACHEDB_UTEST2 +/* + * gcc -O3 -malign-double -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -O -pg -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -Wall -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * + * ./evalues-benchmark + * + * -malign-double is needed for gcc if the rest of HMMER was compiled w/ -malign-double + * (i.e., our default gcc optimization) + * + * 27 Dec 08 on wanderoo: 24 msec per RRM_1 calibration; 37 msec for Caudal_act + * profiling shows 75% in Forward; 12% esl_random(); <3% in MSVFilter. + */ +#include +#include +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "cachedb.h" +#include "hmmpgmd.h" + + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] db1 [db2 ...]"; +static char banner[] = "unit test for cached databases"; + +typedef struct seq_info_s { + ESL_DSQ *dsq; /* digitized sequence [1..n] */ + int64_t n; /* length of dsq */ + uint64_t db_key; /* flag for included databases */ + struct seq_info_s *next; +} SEQ_INFO; + +int +main(int argc, char **argv) +{ + int status; + + ESL_GETOPTS *go = NULL; + P7_CACHEDB_SEQS *cache = NULL; + + + if ((go = esl_getopts_Create(options)) == NULL) { + printf("Failed to create options\n"); + return 0; + } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_getopts_Destroy(go); + return 0; + } + if (esl_opt_VerifyConfig(go) != eslOK) { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_getopts_Destroy(go); + return 0; + } + + if (esl_opt_ArgNumber(go) < 1) { + printf("Must specify at least one database\n"); + esl_getopts_Destroy(go); + return 0; + } + + printf("Reading cache %s\n", esl_opt_GetArg(go, 1)); + if ((status = cache_SeqDb(esl_opt_GetArg(go, 1), &cache)) != eslOK) { + printf("ERROR %d\n", status); + return 0; + } + cache_SeqDestroy(cache); + + esl_getopts_Destroy(go); + + return 0; +} + +#endif /*CACHEDB_UTEST2*/ + + diff --git a/bioinformaticsProject/hmmer/src/cachedb_shard.h b/bioinformaticsProject/hmmer/src/cachedb_shard.h new file mode 100644 index 0000000..dff526d --- /dev/null +++ b/bioinformaticsProject/hmmer/src/cachedb_shard.h @@ -0,0 +1,12 @@ +#ifndef P7_CACHEDB_SHARD_INCLUDED +#define P7_CACHEDB_SHARD_INCLUDED + + + + + +extern int p7_seqcache_Open_master(char *seqfile, P7_SEQCACHE **ret_cache, char *errbuf); +int p7_seqcache_Open_shard(char *seqfile, P7_SEQCACHE **ret_cache, char *errbuf, int my_shard, uint64_t num_shards); + +#endif /*P7_CACHEDB_SHARD_INCLUDED*/ + diff --git a/bioinformaticsProject/hmmer/src/emit.c b/bioinformaticsProject/hmmer/src/emit.c new file mode 100644 index 0000000..4b20885 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/emit.c @@ -0,0 +1,604 @@ +/* Emitting (sampling) sequences from an HMM, in either core or + * profile form. + * + * 1. Exported API: sequence emission routines. + * 2. Private functions. + * 3. Stats driver. + * + * SRE, Tue Jan 9 08:55:53 2007 [Janelia] [The Crystal Method, Vegas] + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_random.h" +#include "esl_sq.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +static int sample_endpoints(ESL_RANDOMNESS *r, const P7_PROFILE *gm, int *ret_kstart, int *ret_kend); + + +/***************************************************************** + * 1. Exported API: sequence emission routines. + *****************************************************************/ + +/* Function: p7_CoreEmit() + * Incept: SRE, Tue Jan 9 10:20:51 2007 [Janelia] + * + * Purpose: Generate (sample) a sequence from a core HMM . + * + * Optionally return the sequence and/or its trace in + * and , respectively, which the caller has + * allocated. Having the caller provide these reusable + * objects allows re-use of both and in repeated + * calls, saving malloc/free wastage. Either can be passed + * as if it isn't needed. + * + * This does not set any fields in the except for the + * sequence itself. Caller must set the name, and any other + * annotation it wants to add. + * + * Trace is relative to the core model: it may include + * I_0 and I_M states, B->DD->M entry is explicit, and a + * 0 length generated sequence is possible. + * + * Args: r - source of randomness + * hmm - core HMM to generate from + * sq - opt: digital sequence sampled (or NULL) + * tr - opt: trace sampled (or NULL) + * + * Returns: on success; + * optionally return the digital sequence through , + * and optionally return its trace in . + * + * Throws: if emission gets us into an illegal state, + * probably indicating that a probability that should have + * been zero wasn't. + * + * Throws on a reallocation error. + * + * In these cases, the contents of and may be + * corrupted. Caller should not trust their data, but may + * safely reuse them. + * + * Xref: STL11/124. + */ +int +p7_CoreEmit(ESL_RANDOMNESS *r, const P7_HMM *hmm, ESL_SQ *sq, P7_TRACE *tr) +{ + int k = 0; /* position in model nodes 1..M */ + int i = 0; /* position in sequence 1..L */ + char st = p7T_B; /* state type */ + int x; /* sampled residue */ + int status; + + if (sq != NULL) esl_sq_Reuse(sq); + if (tr != NULL) { + if ((status = p7_trace_Reuse(tr)) != eslOK) goto ERROR; + if ((status = p7_trace_Append(tr, st, k, i)) != eslOK) goto ERROR; + } + while (st != p7T_E) + { + /* Sample next state type, given current state type (and current k) */ + switch (st) { + case p7T_B: + case p7T_M: + switch (esl_rnd_FChoose(r, hmm->t[k], 3)) { + case 0: st = p7T_M; break; + case 1: st = p7T_I; break; + case 2: st = p7T_D; break; + default: ESL_XEXCEPTION(eslEINCONCEIVABLE, "impossible."); + } + break; + + case p7T_I: + switch (esl_rnd_FChoose(r, hmm->t[k]+3, 2)) { + case 0: st = p7T_M; break; + case 1: st = p7T_I; break; + default: ESL_XEXCEPTION(eslEINCONCEIVABLE, "impossible."); + } + break; + + case p7T_D: + switch (esl_rnd_FChoose(r, hmm->t[k]+5, 2)) { + case 0: st = p7T_M; break; + case 1: st = p7T_D; break; + default: ESL_XEXCEPTION(eslEINCONCEIVABLE, "impossible."); + } + break; + + default: ESL_XEXCEPTION(eslECORRUPT, "impossible state reached during emission"); + } + + /* Bump k,i if needed, depending on new state type */ + if (st == p7T_M || st == p7T_D) k++; + if (st == p7T_M || st == p7T_I) i++; + + /* a transit to M_M+1 is a transit to the E state */ + if (k == hmm->M+1) { + if (st == p7T_M) { st = p7T_E; k = 0; } + else ESL_XEXCEPTION(eslECORRUPT, "failed to reach E state properly"); + } + + /* Sample new residue x if in match or insert */ + if (st == p7T_M) x = esl_rnd_FChoose(r, hmm->mat[k], hmm->abc->K); + else if (st == p7T_I) x = esl_rnd_FChoose(r, hmm->ins[k], hmm->abc->K); + else x = eslDSQ_SENTINEL; + + /* Add state to trace */ + if (tr != NULL) { + if ((status = p7_trace_Append(tr, st, k, i)) != eslOK) goto ERROR; + } + /* Add x to sequence */ + if (sq != NULL && x != eslDSQ_SENTINEL) + if ((status = esl_sq_XAddResidue(sq, x)) != eslOK) goto ERROR; + } + + /* Terminate the trace and sequence (both are optional, remember) */ + if (tr != NULL) { tr->M = hmm->M; tr->L = i; } + if (sq != NULL && (status = esl_sq_XAddResidue(sq, eslDSQ_SENTINEL)) != eslOK) goto ERROR; + return eslOK; + +ERROR: + return status; +} + + +/* Function: p7_ProfileEmit() + * Synopsis: Sample a sequence from the search form of the model. + * Incept: SRE, Mon Jan 22 10:23:28 2007 [Janelia] + * + * Purpose: Sample a sequence from the implicit + * probabilistic model of a Plan7 profile . This + * requires also having the core probabilities of + * the accompanying , and the background + * frequencies of null1 model . + * + * Optionally return the sequence and/or its trace in + * and , respectively. Caller has allocated space for + * both of these, though they may get reallocated/grown + * here. Either can be passed as if unneeded. + * + * Only the sequence field is set in the . Caller must + * set the name, plus any other fields it wants to set. If + * the was created in digital mode, this is the dsq>; + * if the was created in text mode, this is seq>. + * + * deliberately uses an object + * instead of a plain or string, to + * take advantage of the object's support for dynamic + * reallocation of seq length, and to allow both digital and + * text mode generation. + * + * Args: r - source of randomness + * hmm - core probabilities of the profile + * gm - configured search profile + * sq - optRETURN: sampled sequence + * tr - optRETURN: sampled trace + * + * Throws: (no abnormal error conditions) + */ +int +p7_ProfileEmit(ESL_RANDOMNESS *r, const P7_HMM *hmm, const P7_PROFILE *gm, const P7_BG *bg, ESL_SQ *sq, P7_TRACE *tr) +{ + char prv, st; /* prev, current state type */ + int k = 0; /* position in model nodes 1..M */ + int i = 0; /* position in sequence 1..L */ + int x; /* sampled residue */ + int kend = hmm->M; /* predestined end node */ + int status; + float xt[p7P_NXSTATES][p7P_NXTRANS]; + + /* Backcalculate the probabilities in the special states (loop and length model) */ + for (i = 0; i < p7P_NXSTATES; i++) + for (x = 0; x < p7P_NXTRANS; x++) + xt[i][x] = exp(gm->xsc[i][x]); + + if (sq != NULL) esl_sq_Reuse(sq); + if (tr != NULL) { + if ((status = p7_trace_Reuse(tr)) != eslOK) goto ERROR; + if ((status = p7_trace_Append(tr, p7T_S, k, i)) != eslOK) goto ERROR; + if ((status = p7_trace_Append(tr, p7T_N, k, i)) != eslOK) goto ERROR; + } + st = p7T_N; + i = 0; + while (st != p7T_T) + { + /* Sample a state transition. After this section, prv and st (prev->current state) are set; + * k also gets set if we make a B->Mk entry transition. + */ + prv = st; + switch (st) { + case p7T_B: + if (p7_profile_IsLocal(gm)) + { /* local mode: enter the implicit profile: choose our entry and our predestined exit */ + if ((status = sample_endpoints(r, gm, &k, &kend)) != eslOK) goto ERROR; + st = p7T_M; /* must be, because left wing is retracted */ + } + else + { /* glocal mode: treat B as M_0, use its transitions to MID. */ + /* FIXME: this is wrong. It should sample from B->Mk distribution! */ + switch (esl_rnd_FChoose(r, P7H_TMAT(hmm, 0), p7H_NTMAT)) { + case 0: st = p7T_M; k = 1; break; + case 1: st = p7T_I; k = 0; break; + case 2: st = p7T_D; k = 1; break; + default: ESL_XEXCEPTION(eslEINCONCEIVABLE, "impossible."); + } + } + break; + + case p7T_M: + if (k == kend) st = p7T_E; /* check our preordained fate */ + else { + switch (esl_rnd_FChoose(r, P7H_TMAT(hmm, k), p7H_NTMAT)) { + case 0: st = p7T_M; break; + case 1: st = p7T_I; break; + case 2: st = p7T_D; break; + default: ESL_XEXCEPTION(eslEINCONCEIVABLE, "impossible."); + } + } + break; + + case p7T_D: + if (k == kend) st = p7T_E; + else st = (esl_rnd_FChoose(r, P7H_TDEL(hmm, k), p7H_NTDEL) == 0) ? p7T_M : p7T_D; + break; + + case p7T_I: st = (esl_rnd_FChoose(r, P7H_TINS(hmm, k), p7H_NTINS) == 0) ? p7T_M : p7T_I; break; + case p7T_N: st = (esl_rnd_FChoose(r, xt[p7P_N], p7P_NXTRANS) == p7P_MOVE) ? p7T_B : p7T_N; break; + case p7T_E: st = (esl_rnd_FChoose(r, xt[p7P_E], p7P_NXTRANS) == p7P_MOVE) ? p7T_C : p7T_J; break; + case p7T_C: st = (esl_rnd_FChoose(r, xt[p7P_C], p7P_NXTRANS) == p7P_MOVE) ? p7T_T : p7T_C; break; + case p7T_J: st = (esl_rnd_FChoose(r, xt[p7P_J], p7P_NXTRANS) == p7P_MOVE) ? p7T_B : p7T_J; break; + default: ESL_XEXCEPTION(eslECORRUPT, "impossible state reached during emission"); + } + + /* Based on the transition we just sampled, update k. */ + if (st == p7T_E) k = 0; + else if (st == p7T_M && prv != p7T_B) k++; /* be careful about B->Mk, where we already set k */ + else if (st == p7T_D) k++; + + /* Based on the transition we just sampled, generate a residue. */ + if (st == p7T_M) x = esl_rnd_FChoose(r, hmm->mat[k], hmm->abc->K); + else if (st == p7T_I) x = esl_rnd_FChoose(r, hmm->ins[k], hmm->abc->K); + else if ((st == p7T_N || st == p7T_C || st == p7T_J) && prv==st) x = esl_rnd_FChoose(r, bg->f, hmm->abc->K); + else x = eslDSQ_SENTINEL; + + if (x != eslDSQ_SENTINEL) i++; + + /* Add residue (if any) to sequence */ + if (sq != NULL && x != eslDSQ_SENTINEL && (status = esl_sq_XAddResidue(sq, x)) != eslOK) goto ERROR; + + /* Add state to trace. */ + if (tr != NULL) { + if ((status = p7_trace_Append(tr, st, k, i)) != eslOK) goto ERROR; + } + } + /* Terminate the trace and sequence (both are optional, remember) */ + if (tr != NULL) { tr->M = hmm->M; tr->L = i; } + if (sq != NULL && (status = esl_sq_XAddResidue(sq, eslDSQ_SENTINEL)) != eslOK) goto ERROR; + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_emit_SimpleConsensus() + * Synopsis: Generate simple consensus: ML residue in each match state + * Incept: SRE, Mon Sep 1 09:10:47 2008 [Janelia] + * + * Purpose: Generate a simple consensus sequence for model + * consisting of the maximum probability residue in each + * match state; store this consensus in digital . + * + * Returns: on success. + * + * Throws: if the isn't in digital mode. + */ +int +p7_emit_SimpleConsensus(const P7_HMM *hmm, ESL_SQ *sq) +{ + int k; + int x; + int status; + + if (! esl_sq_IsDigital(sq)) ESL_EXCEPTION(eslEINVAL, "p7_emit_SimpleConsensus() expects a digital-mode "); + if ((status = esl_sq_GrowTo(sq, hmm->M)) != eslOK) return status; + + for (k = 1; k <= hmm->M; k++) + { + if (hmm->mm && hmm->mm[k] == 'm') { //masked position, spit out the degenerate code + if ((status = esl_sq_XAddResidue(sq, hmm->abc->Kp-3)) != eslOK) return status; + } else { + x = esl_vec_FArgMax(hmm->mat[k], hmm->abc->K); + if ((status = esl_sq_XAddResidue(sq, x)) != eslOK) return status; + } + } + if ((status = esl_sq_XAddResidue(sq, eslDSQ_SENTINEL)) != eslOK) return status; + return eslOK; +} + + +/* Function: p7_emit_FancyConsensus() + * Synopsis: Emit a fancier consensus with upper/lower case and N/X's. + * Incept: SRE, Fri May 14 09:33:10 2010 [Janelia] + * + * Purpose: Generate a consensus sequence for model , consisting + * of the maximum probability residue in each match state; + * store this sequence in text-mode provided by the caller. + * + * If the probability of the consensus residue is less than + * , show an ``any'' residue (N or X) instead. + * If the probability of the consensus residue is $\geq$ + * and less than , show the residue + * as lower case; if it is $\geq$ , show it as + * upper case. + * + * Returns: on success. + * + * Throws: if the isn't in text mode. + * + * Xref: SRE:J6/59. + */ +int +p7_emit_FancyConsensus(const P7_HMM *hmm, float min_lower, float min_upper, ESL_SQ *sq) +{ + int k, x; + float p; + char c; + int status; + + if (! esl_sq_IsText(sq)) ESL_EXCEPTION(eslEINVAL, "p7_emit_FancyConsensus() expects a text-mode "); + + if ((status = esl_sq_GrowTo(sq, hmm->M)) != eslOK) return status; + + for (k = 1; k <= hmm->M; k++) + { + + if (hmm->mm && hmm->mm[k] == 'm') { //masked position, spit out the degenerate code + if ((status = esl_sq_CAddResidue(sq, tolower(esl_abc_CGetUnknown(hmm->abc))) ) != eslOK) return status; + } else { + p = esl_vec_FMax( hmm->mat[k], hmm->abc->K); + x = esl_vec_FArgMax(hmm->mat[k], hmm->abc->K); + + if (p < min_lower) c = tolower(esl_abc_CGetUnknown(hmm->abc)); + else if (p >= min_upper) c = toupper(hmm->abc->sym[x]); + else c = tolower(hmm->abc->sym[x]); + + if ((status = esl_sq_CAddResidue(sq, c)) != eslOK) return status; + } + } + if ((status = esl_sq_CAddResidue(sq, '\0')) != eslOK) return status; + return eslOK; +} + + + +/***************************************************************** + * 2. Private functions. + *****************************************************************/ + +/* sample_endpoints() + * Incept: SRE, Mon Jan 22 10:43:20 2007 [Janelia] + * + * Purpose: Given a profile and random number source , sample + * a begin transition from the implicit probabilistic profile + * model, yielding a sampled start and end node; return these + * via and . + * + * By construction, the entry at node is into a + * match state, but the exit from node might turn + * out to be from either a match or delete state. + * + * We assume that exits j are uniformly distributed for a + * particular entry point i: $a_{ij} =$ constant $\forall + * j$. + * + * Returns: on success. + * + * Throws: on allocation error. + * + * Xref: STL11/138 + */ +static int +sample_endpoints(ESL_RANDOMNESS *r, const P7_PROFILE *gm, int *ret_kstart, int *ret_kend) +{ + float *pstart = NULL; + int k; + int kstart, kend; + int status; + + /* We have to backcalculate a probability distribution from the + * lod B->Mk scores in a local model; this is a little time consuming, + * but we don't have to do it often. + */ + ESL_ALLOC(pstart, sizeof(float) * (gm->M+1)); + pstart[0] = 0.0f; + for (k = 1; k <= gm->M; k++) + pstart[k] = exp(p7P_TSC(gm, k-1, p7P_BM)) * (gm->M - k + 1); /* multiply p_ij by the number of exits j */ + kstart = esl_rnd_FChoose(r, pstart, gm->M+1); /* sample the starting position from that distribution */ + kend = kstart + esl_rnd_Roll(r, gm->M-kstart+1); /* and the exit uniformly from possible exits for it */ + + free(pstart); + *ret_kstart = kstart; + *ret_kend = kend; + return eslOK; + + ERROR: + if (pstart != NULL) free(pstart); + *ret_kstart = 0; + *ret_kend = 0; + return status; +} + + +/***************************************************************** + * 3. Stats driver + *****************************************************************/ + +/* A small driver providing a testbed for sequence-emission related development testing. + * + * gcc -g -Wall -o stats -L. -I. -L../easel -I../easel -Dp7EMIT_STATS emit.c -lhmmer -leasel -lm + */ +#ifdef p7EMIT_STATS +#include "p7_config.h" + +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_random.h" +#include "esl_sq.h" +#include "hmmer.h" + +int +main(int argc, char **argv) +{ + char *hmmfile = argv[1]; /* name of HMM file to read one HMM from */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + ESL_RANDOMNESS *r = NULL; /* source of randomness */ + P7_HMMFILE *hfp = NULL; /* open hmmfile */ + P7_HMM *hmm = NULL; /* HMM to emit from */ + P7_PROFILE *gm = NULL; /* profile HMM (scores) */ + P7_BG *bg = NULL; /* null model */ + P7_TRACE *tr = NULL; /* sampled trace */ + ESL_SQ *sq = NULL; /* sampled digital sequence */ + int n = 1000; + int counts[p7T_NSTATETYPES]; + int i; + float sc; + float nullsc; + double bitscore; + + r = esl_randomness_CreateFast(0); + tr = p7_trace_Create(); + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("failed to open %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("failed to read HMM"); + sq = esl_sq_CreateDigital(abc); + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + + for (i = 0; i < n; i++) + { + p7_ProfileEmit(r, hmm, gm, bg, sq, tr); + p7_trace_GetStateUseCounts(tr, counts); + + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_trace_Score(tr, sq->dsq, gm, &sc); + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + bitscore = (sc - nullsc)/ eslCONST_LOG2; + + printf("%d %8.4f\n", + counts[p7T_M] + (counts[p7T_I] + counts[p7T_D])/2, + bitscore); + } + + p7_profile_Destroy(gm); + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + p7_hmmfile_Close(hfp); + p7_hmm_Destroy(hmm); + return eslOK; +} +#endif /*p7EMIT_STATS*/ +/*-------------------- end, stats driver ------------------------*/ + + +/***************************************************************** + * x. Example + *****************************************************************/ +#ifdef p7EMIT_EXAMPLE +/* + gcc -g -Wall -o emit_example -Dp7EMIT_EXAMPLE -I. -I../easel -L. -L../easel emit.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "configured mean seq length for profile", 0 }, + { "-N", eslARG_INT, "10", NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of emitting sequences from profile"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_RANDOMNESS *rng = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + char *hmmfile = esl_opt_GetArg(go, 1); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_TRACE *tr = p7_trace_Create(); + ESL_SQ *sq = NULL; + char errbuf[eslERRBUFSIZE]; + int i; + int status; + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + if (status == eslEFORMAT) p7_Fail("Bad file format in HMM file %s:\n%s\n", hfp->fname, hfp->errbuf); + else if (status == eslEINCOMPAT) p7_Fail("HMM in %s is not in the expected %s alphabet\n", hfp->fname, esl_abc_DecodeType(abc->type)); + else if (status == eslEOF) p7_Fail("Empty HMM file %s? No HMM data found.\n", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s\n", hfp->fname); + + p7_hmmfile_Close(hfp); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + sq = esl_sq_CreateDigital(abc); + + for (i = 0; i < N; i++) + { + p7_ProfileEmit(rng, hmm, gm, bg, sq, tr); + esl_sq_FormatName(sq, "%s-sample%d", hmm->name, i); + esl_sqio_Write(stdout, sq, eslSQFILE_FASTA, FALSE); + + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) esl_fatal(errbuf); + + esl_sq_Reuse(sq); + p7_trace_Reuse(tr); + } + + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(rng); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7EMIT_EXAMPLE*/ +/*---------------------- end, example ---------------------------*/ + + + + diff --git a/bioinformaticsProject/hmmer/src/errors.c b/bioinformaticsProject/hmmer/src/errors.c new file mode 100644 index 0000000..d1208eb --- /dev/null +++ b/bioinformaticsProject/hmmer/src/errors.c @@ -0,0 +1,58 @@ +/* error handling. + * + * HMMER's fatal error messages distinguish between user errors + * ("failure", with p7_Fail()) and internal faults ("death", with + * p7_Die()). For now, though, there is no difference between the two + * functions. Someday we might have p7_Die() print a comforting + * apology, or provide some help on how to report bugs to us; + * p7_Fail() might provide some pointers on where to read more + * documentation. + * + * SRE, Fri Jan 12 08:46:02 2007 + */ + +#include "p7_config.h" + +#include +#include + +#include "hmmer.h" + +/* Function: p7_Die() + * Synopsis: Handle a fatal exception (something that's our fault) + * Incept: SRE, Fri Jan 12 08:54:45 2007 [Janelia] + */ +void +p7_Die(char *format, ...) +{ + va_list argp; + /* format the error mesg */ + fprintf(stderr, "\nFATAL: "); + va_start(argp, format); + vfprintf(stderr, format, argp); + va_end(argp); + fprintf(stderr, "\n"); + fflush(stderr); + exit(1); +} + +/* Function: p7_Fail() + * Synopsis: Handle a user error (something that's the user's fault). + * Incept: SRE, Fri Jan 12 08:54:45 2007 [Janelia] + */ +void +p7_Fail(char *format, ...) +{ + va_list argp; + /* format the error mesg */ + fprintf(stderr, "\nError: "); + va_start(argp, format); + vfprintf(stderr, format, argp); + va_end(argp); + fprintf(stderr, "\n"); + fflush(stderr); + exit(1); +} + + + diff --git a/bioinformaticsProject/hmmer/src/evalues.c b/bioinformaticsProject/hmmer/src/evalues.c new file mode 100644 index 0000000..c6feaae --- /dev/null +++ b/bioinformaticsProject/hmmer/src/evalues.c @@ -0,0 +1,641 @@ +/* Calculations and simulations relevant to E-value calculations. + * + * Contents: + * 1. p7_Calibrate(): model calibration wrapper + * 2. Determination of individual E-value parameters + * 3. Statistics and specific experiment drivers + * 4. Benchmark driver + * + * SRE, Mon Aug 6 13:00:06 2007 + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_gumbel.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. p7_Calibrate(): model calibration wrapper + *****************************************************************/ + +/* Function: p7_Calibrate() + * Synopsis: Calibrate the E-value parameters of a model. + * Incept: SRE, Thu Dec 25 09:29:31 2008 [Magallon] + * + * Purpose: Calibrate the E-value parameters of a model with + * one calculation ($\lambda$) and two brief simulations + * (Viterbi $\mu$, Forward $\tau$). + * + * Args: hmm - HMM to be calibrated + * cfg_b - OPTCFG: ptr to optional build configuration; + * if , use default parameters. + * byp_rng - BYPASS optimization: pass ptr to generator + * if already known; + * <*byp_rng> == NULL> if return is desired; + * pass to use and discard internal default. + * byp_bg - BYPASS optimization: pass ptr to if already known; + * <*byp_bg == NULL> if return is desired; + * pass to use and discard internal default. + * byp_gm - BYPASS optimization: pass ptr to profile if already known; + * pass <*byp_gm == NULL> if return desired; + * pass to use and discard internal default. + * byp_om - BYPASS optimization: pass ptr to profile if already known; + * pass <*byp_om == NULL> if return desired; + * pass to use and discard internal default. + * + * Returns: on success. + * + * Throws: on allocation failure. + * if , , aren't compatible somehow. + * + * Xref: J4/41 + */ +int +p7_Calibrate(P7_HMM *hmm, P7_BUILDER *cfg_b, ESL_RANDOMNESS **byp_rng, P7_BG **byp_bg, P7_PROFILE **byp_gm, P7_OPROFILE **byp_om) +{ + P7_BG *bg = (esl_byp_IsProvided(byp_bg) ? *byp_bg : NULL); + P7_PROFILE *gm = (esl_byp_IsProvided(byp_gm) ? *byp_gm : NULL); + P7_OPROFILE *om = (esl_byp_IsProvided(byp_om) ? *byp_om : NULL); + ESL_RANDOMNESS *r = (esl_byp_IsProvided(byp_rng) ? *byp_rng : NULL); + char *errbuf = ((cfg_b != NULL) ? cfg_b->errbuf : NULL); + int EmL = ((cfg_b != NULL) ? cfg_b->EmL : 200); + int EmN = ((cfg_b != NULL) ? cfg_b->EmN : 200); + int EvL = ((cfg_b != NULL) ? cfg_b->EvL : 200); + int EvN = ((cfg_b != NULL) ? cfg_b->EvN : 200); + int EfL = ((cfg_b != NULL) ? cfg_b->EfL : 100); + int EfN = ((cfg_b != NULL) ? cfg_b->EfN : 200); + double Eft = ((cfg_b != NULL) ? cfg_b->Eft : 0.04); + double lambda, mmu, vmu, tau; + int status; + + /* Configure any objects we need + * that weren't already passed to us as a bypass optimization + */ + if (r == NULL) { + if ((r = esl_randomness_CreateFast(42)) == NULL) ESL_XFAIL(eslEMEM, errbuf, "failed to create RNG"); + } else if (cfg_b != NULL && cfg_b->do_reseeding) { + esl_randomness_Init(r, esl_randomness_GetSeed(r)); + } + + if (bg == NULL) { + if ((bg = p7_bg_Create(hmm->abc)) == NULL) ESL_XFAIL(eslEMEM, errbuf, "failed to allocate background"); + } + + /* there's an odd case where the is provided and a isn't going to be returned + * where we don't need a at all, and stays after the next block. + * Note that the length in the ProfileConfig doesn't matter; the individual + * calibration routines MSVMu(), etc. contain their own length reconfig calls. + */ + if ((esl_byp_IsInternal(byp_gm) && ! esl_byp_IsProvided(byp_om)) || esl_byp_IsReturned(byp_gm)) { + if ( (gm = p7_profile_Create(hmm->M, hmm->abc)) == NULL) ESL_XFAIL(eslEMEM, errbuf, "failed to allocate profile"); + if ( (status = p7_ProfileConfig(hmm, bg, gm, EvL, p7_LOCAL)) != eslOK) ESL_XFAIL(status, errbuf, "failed to configure profile"); + } + + if (om == NULL) { + if ((om = p7_oprofile_Create(hmm->M, hmm->abc)) == NULL) ESL_XFAIL(eslEMEM, errbuf, "failed to create optimized profile"); + if ((status = p7_oprofile_Convert(gm, om)) != eslOK) ESL_XFAIL(status, errbuf, "failed to convert to optimized profile"); + } + + /* The calibration steps themselves */ + if ((status = p7_Lambda(hmm, bg, &lambda)) != eslOK) ESL_XFAIL(status, errbuf, "failed to determine lambda"); + if ((status = p7_MSVMu (r, om, bg, EmL, EmN, lambda, &mmu)) != eslOK) ESL_XFAIL(status, errbuf, "failed to determine msv mu"); + if ((status = p7_ViterbiMu(r, om, bg, EvL, EvN, lambda, &vmu)) != eslOK) ESL_XFAIL(status, errbuf, "failed to determine vit mu"); + if ((status = p7_Tau (r, om, bg, EfL, EfN, lambda, Eft, &tau)) != eslOK) ESL_XFAIL(status, errbuf, "failed to determine fwd tau"); + + /* Store results */ + hmm->evparam[p7_MLAMBDA] = om->evparam[p7_MLAMBDA] = lambda; + hmm->evparam[p7_VLAMBDA] = om->evparam[p7_VLAMBDA] = lambda; + hmm->evparam[p7_FLAMBDA] = om->evparam[p7_FLAMBDA] = lambda; + hmm->evparam[p7_MMU] = om->evparam[p7_MMU] = mmu; + hmm->evparam[p7_VMU] = om->evparam[p7_VMU] = vmu; + hmm->evparam[p7_FTAU] = om->evparam[p7_FTAU] = tau; + hmm->flags |= p7H_STATS; + + if (gm != NULL) { + gm->evparam[p7_MLAMBDA] = lambda; + gm->evparam[p7_VLAMBDA] = lambda; + gm->evparam[p7_FLAMBDA] = lambda; + gm->evparam[p7_MMU] = mmu; + gm->evparam[p7_VMU] = vmu; + gm->evparam[p7_FTAU] = tau; + } + + if (byp_rng != NULL) *byp_rng = r; else esl_randomness_Destroy(r); /* bypass convention: no-op if rng was provided.*/ + if (byp_bg != NULL) *byp_bg = bg; else p7_bg_Destroy(bg); /* bypass convention: no-op if bg was provided. */ + if (byp_gm != NULL) *byp_gm = gm; else p7_profile_Destroy(gm); /* bypass convention: no-op if gm was provided. */ + if (byp_om != NULL) *byp_om = om; else p7_oprofile_Destroy(om); /* bypass convention: no-op if om was provided. */ + return eslOK; + + ERROR: + if (! esl_byp_IsProvided(byp_rng)) esl_randomness_Destroy(r); + if (! esl_byp_IsProvided(byp_bg)) p7_bg_Destroy(bg); + if (! esl_byp_IsProvided(byp_gm)) p7_profile_Destroy(gm); + if (! esl_byp_IsProvided(byp_om)) p7_oprofile_Destroy(om); + return status; +} +/*---------------------- end, wrapper API -----------------------*/ + + + + + +/***************************************************************** + * 2. Determination of individual E-value parameters + *****************************************************************/ + +/* Function: p7_Lambda() + * Synopsis: Determines length-corrected local lambda parameter. + * Incept: SRE, Wed Aug 8 17:54:55 2007 [Janelia] + * + * Purpose: Determine the effective scale parameter $\hat{\lambda}$ to + * use for model . This will be applied both to + * Viterbi Gumbel distributions and Forward exponential + * tails. + * + * The 'true' $\lambda$ is always $\log 2 = 0.693$. The effective + * lambda is corrected for edge effect, using the equation + * + * \[ + * \hat{\lambda} = \lambda + \frac{1.44}{MH} + * \] + * + * where $M$ is the model length and $H$ is the model + * relative entropy. The model relative entropy is + * approximated by the average relative entropy of match + * emission distributions. The 1.44 is an empirically + * determined fudge factor [J1/125]. This edge-effect + * correction is based largely on \citep{Altschul01}, + * except for the fudge factor, which we don't understand + * and can't theoretically justify. + * + * Args: hmm : model to calculate corrected lambda for + * bg : null model (source of background frequencies) + * ret_lambda : RETURN: edge-corrected lambda + * + * Returns: on success, and <*ret_lambda> is the result. + * + * Throws: (no abnormal error conditions) + */ +int +p7_Lambda(P7_HMM *hmm, P7_BG *bg, double *ret_lambda) +{ + double H = p7_MeanMatchRelativeEntropy(hmm, bg); + + *ret_lambda = eslCONST_LOG2 + 1.44 / ((double) hmm->M * H); + return eslOK; +} + + +/* Function: p7_MSVMu() + * Synopsis: Determines the local MSV Gumbel mu parameter for a model. + * Incept: SRE, Mon Aug 6 13:00:57 2007 [Janelia] + * + * Purpose: Given model configured for local alignment (typically + * multihit, but may be unihit), determine the Gumbel + * location parameter $\mu$ for MSV scores by brief simulation. The + * simulation generates random sequences of length + * using background frequencies in the null model and + * the random number generator ; scores them with + * and with the MSV algorithm; and fits the + * resulting distribution to a Gumbel of assumed . + * + * Typical default choices are L=100, N=200, which gives + * $\hat{\mu}$ estimates with precision (standard + * deviation) of $\pm$ 0.1 bits, corresponding to an error + * of $\pm$ 8\% in E-value estimates. [J1/135]. (Default L + * was later increased to 200 to improve length dependence + * slightly.) + * + * This function changes the length configuration of both + * and . The caller must remember to reconfigure + * both of their length models appropriately for any + * subsequent alignments. + * + * Args: r : source of random numbers + * om : score profile (length config is changed upon return!) + * bg : null model (length config is changed upon return!) + * L : length of sequences to simulate + * N : number of sequences to simulate + * lambda : known Gumbel lambda parameter + * ret_mmu : RETURN: ML estimate of location param mu + * + * Returns: on success, and contains the ML estimate + * of $\mu$. + * + * Throws: (no abnormal error conditions) + * + * Note: The FitCompleteLoc() function is simple, and it's tempting + * to inline it here and save the working memory. However, + * the FitCompleteLoc() function is vulnerable + * to under/overflow error, and we'll probably fix it + * eventually - need to be sure that fix applies here too. + */ +int +p7_MSVMu(ESL_RANDOMNESS *r, P7_OPROFILE *om, P7_BG *bg, int L, int N, double lambda, double *ret_mmu) +{ + P7_OMX *ox = p7_omx_Create(om->M, 0, 0); /* DP matrix: 1 row version */ + ESL_DSQ *dsq = NULL; + double *xv = NULL; + int i; + float sc, nullsc; + float maxsc = (255 - om->base_b) / om->scale_b; /* if score overflows, use this */ + int status; + + if (ox == NULL) { status = eslEMEM; goto ERROR; } + ESL_ALLOC(xv, sizeof(double) * N); + ESL_ALLOC(dsq, sizeof(ESL_DSQ) * (L+2)); + + p7_oprofile_ReconfigLength(om, L); + p7_bg_SetLength(bg, L); + + for (i = 0; i < N; i++) + { + if ((status = esl_rsq_xfIID(r, bg->f, om->abc->K, L, dsq)) != eslOK) goto ERROR; + if ((status = p7_bg_NullOne(bg, dsq, L, &nullsc)) != eslOK) goto ERROR; + + status = p7_MSVFilter(dsq, L, om, ox, &sc); + if (status == eslERANGE) { sc = maxsc; status = eslOK; } + if (status != eslOK) goto ERROR; + + xv[i] = (sc - nullsc) / eslCONST_LOG2; + } + + if ((status = esl_gumbel_FitCompleteLoc(xv, N, lambda, ret_mmu)) != eslOK) goto ERROR; + p7_omx_Destroy(ox); + free(xv); + free(dsq); + return eslOK; + + ERROR: + *ret_mmu = 0.0; + if (ox != NULL) p7_omx_Destroy(ox); + if (xv != NULL) free(xv); + if (dsq != NULL) free(dsq); + return status; + +} + +/* Function: p7_ViterbiMu() + * Synopsis: Determines the local Viterbi Gumbel mu parameter for a model. + * Incept: SRE, Tue May 19 10:26:19 2009 [Janelia] + * + * Purpose: Identical to p7_MSVMu(), above, except that it fits + * Viterbi scores instead of MSV scores. + * + * The difference between the two mus is small, but can be + * up to ~1 bit or so for large, low-info models [J4/126] so + * decided to calibrate the two mus separately [J5/8]. + * + * Args: r : source of random numbers + * om : score profile (length config is changed upon return!) + * bg : null model (length config is changed upon return!) + * L : length of sequences to simulate + * N : number of sequences to simulate + * lambda : known Gumbel lambda parameter + * ret_vmu : RETURN: ML estimate of location param mu + * + * Returns: on success, and contains the ML estimate + * of $\mu$. + * + * Throws: (no abnormal error conditions) + */ +int +p7_ViterbiMu(ESL_RANDOMNESS *r, P7_OPROFILE *om, P7_BG *bg, int L, int N, double lambda, double *ret_vmu) +{ + P7_OMX *ox = p7_omx_Create(om->M, 0, 0); /* DP matrix: 1 row version */ + ESL_DSQ *dsq = NULL; + double *xv = NULL; + int i; + float sc, nullsc; + float maxsc = (32767.0 - om->base_w) / om->scale_w; /* if score overflows, use this [J4/139] */ + int status; + + if (ox == NULL) { status = eslEMEM; goto ERROR; } + ESL_ALLOC(xv, sizeof(double) * N); + ESL_ALLOC(dsq, sizeof(ESL_DSQ) * (L+2)); + + p7_oprofile_ReconfigLength(om, L); + p7_bg_SetLength(bg, L); + + for (i = 0; i < N; i++) + { + if ((status = esl_rsq_xfIID(r, bg->f, om->abc->K, L, dsq)) != eslOK) goto ERROR; + if ((status = p7_bg_NullOne(bg, dsq, L, &nullsc)) != eslOK) goto ERROR; + + status = p7_ViterbiFilter(dsq, L, om, ox, &sc); + if (status == eslERANGE) { sc = maxsc; status = eslOK; } + if (status != eslOK) goto ERROR; + + xv[i] = (sc - nullsc) / eslCONST_LOG2; + } + + if ((status = esl_gumbel_FitCompleteLoc(xv, N, lambda, ret_vmu)) != eslOK) goto ERROR; + p7_omx_Destroy(ox); + free(xv); + free(dsq); + return eslOK; + + ERROR: + *ret_vmu = 0.0; + if (ox != NULL) p7_omx_Destroy(ox); + if (xv != NULL) free(xv); + if (dsq != NULL) free(dsq); + return status; + +} + + +/* Function: p7_Tau() + * Synopsis: Determine Forward tau by brief simulation. + * Incept: SRE, Thu Aug 9 15:08:39 2007 [Janelia] + * + * Purpose: Determine the parameter for an exponential tail fit + * to the Forward score distribution for model , on + * random sequences with the composition of the background + * model . This parameter is for an exponential + * distribution anchored from $P=1.0$, so it's not really a + * tail per se; but it's only an accurate fit in the tail + * of the Forward score distribution, from about $P=0.001$ + * or so. + * + * The determination of is done by a brief simulation + * in which we fit a Gumbel distribution to a small number + * of Forward scores of random sequences, and use that to + * predict the location of the tail at probability . + * + * The Gumbel is of course inaccurate, but we can use it + * here solely as an empirical distribution to determine + * the location of a reasonable more accurately on a + * smaller number of samples than we could do with raw + * order statistics. + * + * Typical choices are L=100, N=200, tailp=0.04, which + * typically yield estimates $\hat{\mu}$ with a precision + * (standard deviation) of $\pm$ 0.2 bits, corresponding to + * a $\pm$ 15\% error in E-values. See [J1/135]. + * + * The use of Gumbel fitting to a small number of $N$ + * samples and the extrapolation of $\hat{\mu}$ from the + * estimated location of the 0.04 tail mass are both + * empirical and carefully optimized against several + * tradeoffs. Most importantly, around this choice of tail + * probability, a systematic error introduced by the use of + * the Gumbel fit is being cancelled by systematic error + * introduced by the use of a higher tail probability than + * the regime in which the exponential tail is a valid + * approximation. See [J1/135] for discussion. + * + * This function changes the length configuration of both + * and . The caller must remember to reconfigure + * both of their length models appropriately for any + * subsequent alignments. + * + * Args: r : source of randomness + * om : configured profile to sample sequences from + * bg : null model (for background residue frequencies) + * L : mean length model for seq emission from profile + * N : number of sequences to generate + * lambda : expected slope of the exponential tail (from p7_Lambda()) + * tailp : tail mass from which we will extrapolate mu + * ret_mu : RETURN: estimate for the Forward mu (base of exponential tail) + * + * Returns: on success, and <*ret_fv> is the score difference + * in bits. + * + * Throws: on allocation error, and <*ret_fv> is 0. + */ +int +p7_Tau(ESL_RANDOMNESS *r, P7_OPROFILE *om, P7_BG *bg, int L, int N, double lambda, double tailp, double *ret_tau) +{ + P7_OMX *ox = p7_omx_Create(om->M, 0, L); /* DP matrix: for ForwardParser, L rows */ + ESL_DSQ *dsq = NULL; + double *xv = NULL; + float fsc, nullsc; + double gmu, glam; + int status; + int i; + + ESL_ALLOC(xv, sizeof(double) * N); + ESL_ALLOC(dsq, sizeof(ESL_DSQ) * (L+2)); + if (ox == NULL) { status = eslEMEM; goto ERROR; } + + p7_oprofile_ReconfigLength(om, L); + p7_bg_SetLength(bg, L); + + for (i = 0; i < N; i++) + { + if ((status = esl_rsq_xfIID(r, bg->f, om->abc->K, L, dsq)) != eslOK) goto ERROR; + if ((status = p7_ForwardParser(dsq, L, om, ox, &fsc)) != eslOK) goto ERROR; + if ((status = p7_bg_NullOne(bg, dsq, L, &nullsc)) != eslOK) goto ERROR; + xv[i] = (fsc - nullsc) / eslCONST_LOG2; + } + if ((status = esl_gumbel_FitComplete(xv, N, &gmu, &glam)) != eslOK) goto ERROR; + + /* Explanation of the eqn below: first find the x at which the Gumbel tail + * mass is predicted to be equal to tailp. Then back up from that x + * by log(tailp)/lambda to set the origin of the exponential tail to 1.0 + * instead of tailp. + */ + *ret_tau = esl_gumbel_invcdf(1.0-tailp, gmu, glam) + (log(tailp) / lambda); + + free(xv); + free(dsq); + p7_omx_Destroy(ox); + return eslOK; + + ERROR: + *ret_tau = 0.; + if (xv != NULL) free(xv); + if (dsq != NULL) free(dsq); + if (ox != NULL) p7_omx_Destroy(ox); + return status; +} +/*-------------- end, determining individual parameters ---------*/ + + + + +/***************************************************************** + * 3. Statistics and specific experiment drivers + *****************************************************************/ +#ifdef p7EVALUES_STATS +/* gcc -o evalues_stats -g -O2 -msse2 -I. -L. -I../easel -L../easel -Dp7EVALUES_STATS evalues.c -lhmmer -leasel -lm + * ./evalues_stats + */ +/* The J1/135 experiment determining precision of mu, tau estimates can be done with this driver by setting Z=1000 or so. + * There used to be a separate script, tagged p7EXP_J1_135, to specifically run that experiment. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_alphabet.h" + +#include "hmmer.h" + +#define BMARKS "--msvonly,--vitonly,--fwdonly" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number generator seed to ", 0 }, + { "--EmL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for MSV Gumbel mu fit", 0 }, + { "--EmN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for MSV Gumbel mu fit", 0 }, + { "--EvL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Viterbi Gumbel mu fit", 0 }, + { "--EvN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Viterbi Gumbel mu fit", 0 }, + { "--EfL", eslARG_INT, "100", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Forward exp tail tau fit",0 }, + { "--EfN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Forward exp tail tau fit",0 }, + { "--Eft", eslARG_REAL, "0.04", NULL,"0", 0 }, + { "--lambda", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "set lambda param to ", 0 }, + { "--msvonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,BMARKS, "only run MSV mu calibration (for benchmarking)", 0 }, + { "--vitonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,BMARKS, "only run Vit mu calibration (for benchmarking)", 0 }, + { "--fwdonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,BMARKS, "only run Fwd tau calibration (for benchmarking)", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "collect test statistics for E-value calculations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + double lambda = 0.0; + double mmu = 0.0; + double vmu = 0.0; + double ftau = 0.0; + int Z = esl_opt_GetInteger(go, "-Z"); + int EmL = esl_opt_GetInteger(go, "--EmL"); + int EmN = esl_opt_GetInteger(go, "--EmN"); + int EvL = esl_opt_GetInteger(go, "--EvL"); + int EvN = esl_opt_GetInteger(go, "--EvN"); + int EfL = esl_opt_GetInteger(go, "--EfL"); + int EfN = esl_opt_GetInteger(go, "--EfN"); + int Eft = esl_opt_GetReal (go, "--Eft"); + int iteration; + int do_msv, do_vit, do_fwd; + int status; + + if (esl_opt_GetBoolean(go, "--msvonly") == TRUE) { do_msv = TRUE; do_vit = FALSE; do_fwd = FALSE; } + else if (esl_opt_GetBoolean(go, "--vitonly") == TRUE) { do_msv = FALSE; do_vit = TRUE; do_fwd = FALSE; } + else if (esl_opt_GetBoolean(go, "--fwdonly") == TRUE) { do_msv = FALSE; do_vit = FALSE; do_fwd = TRUE; } + else { do_msv = TRUE; do_vit = TRUE; do_fwd = TRUE; } + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslEOF) + { + if (bg == NULL) bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, EvL, p7_LOCAL); /* the EvL doesn't matter */ + om = p7_oprofile_Create(hmm->M, abc); + p7_oprofile_Convert(gm, om); + + if (esl_opt_IsOn(go, "--lambda")) lambda = esl_opt_GetReal(go, "--lambda"); + else p7_Lambda(hmm, bg, &lambda); + + for (iteration = 0; iteration < Z; iteration++) + { + if (do_msv) p7_MSVMu (r, om, bg, EmL, EmN, lambda, &mmu); + if (do_vit) p7_ViterbiMu (r, om, bg, EvL, EvN, lambda, &vmu); + if (do_fwd) p7_Tau (r, om, bg, EfL, EfN, lambda, Eft, &ftau); + + printf("%s %.4f %.4f %.4f %.4f\n", hmm->name, lambda, mmu, vmu, ftau); + } + + p7_hmm_Destroy(hmm); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + } + + p7_hmmfile_Close(hfp); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} +#endif /*p7EVALUES_STATS*/ +/*----------------- end, stats/experiment drivers ---------------*/ + + +/***************************************************************** + * 4. Benchmark driver + *****************************************************************/ + +#ifdef p7EVALUES_BENCHMARK +/* + * gcc -O3 -malign-double -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -O -pg -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * gcc -g -Wall -msse2 -o evalues-benchmark -I. -L. -I../easel -L../easel -Dp7EVALUES_BENCHMARK evalues.c -lhmmer -leasel -lm + * + * ./evalues-benchmark + * + * -malign-double is needed for gcc if the rest of HMMER was compiled w/ -malign-double + * (i.e., our default gcc optimization) + * + * 27 Dec 08 on wanderoo: 24 msec per RRM_1 calibration; 37 msec for Caudal_act + * profiling shows 75% in Forward; 12% esl_random(); <3% in MSVFilter. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-N", eslARG_INT, "100", NULL, "n>0", NULL, NULL, NULL, "number of calibrations to do", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for E-value calibration"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + int N = esl_opt_GetInteger(go, "-N"); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + esl_stopwatch_Start(w); + while (N--) + { /* cfg rng bg gm om */ + p7_Calibrate(hmm, NULL, NULL, NULL, NULL, NULL); + } + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7EVALUES_BENCHMARK*/ + + diff --git a/bioinformaticsProject/hmmer/src/eweight.c b/bioinformaticsProject/hmmer/src/eweight.c new file mode 100644 index 0000000..3aa09b8 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/eweight.c @@ -0,0 +1,182 @@ +/* "Entropy weighting" to determine absolute sequence number to use in hmmbuild. + * + * Reference: + * L. Steven Johnson, "Remote Protein Homology Detection Using Hidden Markov Models", + * Ph.D. thesis, Washington University School of Medicine, 2006. + * + * SRE, Fri May 4 14:01:54 2007 [Janelia] [Tom Waits, Orphans] + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_rootfinder.h" + +#include "hmmer.h" + +struct ew_param_s { + const P7_HMM *hmm; /* ptr to the original count-based HMM, which remains unchanged */ + const P7_BG *bg; /* ptr to the null model */ + const P7_PRIOR *pri; /* Dirichlet prior used to parameterize from counts */ + P7_HMM *h2; /* our working space: a copy of that we can muck with */ + double etarget; /* information content target, in bits */ +}; + +/* Evaluate fx = rel entropy - etarget, which we want to be = 0, + * for effective sequence number . + */ +static int +eweight_target_f(double Neff, void *params, double *ret_fx) +{ + struct ew_param_s *p = (struct ew_param_s *) params; + + p7_hmm_CopyParameters(p->hmm, p->h2); + p7_hmm_Scale(p->h2, Neff / (double) p->h2->nseq); + p7_ParameterEstimation(p->h2, p->pri); + *ret_fx = p7_MeanMatchRelativeEntropy(p->h2, p->bg) - p->etarget; + return eslOK; +} + +/* Function: p7_EntropyWeight() + * Incept: SRE, Fri May 4 15:32:59 2007 [Janelia] + * + * Purpose: Use the "entropy weighting" algorithm to determine + * what effective sequence number we should use, and + * return it in . + * + * Caller provides a count-based , and the + * Dirichlet prior that's to be used to parameterize + * models; neither of these will be modified. + * Caller also provides the relative entropy + * target in bits in . + * + * will range from 0 to the true number of + * sequences counted into the model, nseq>. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_EntropyWeight(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double etarget, double *ret_Neff) +{ + int status; + ESL_ROOTFINDER *R = NULL; + struct ew_param_s p; + double Neff; + double fx; + + /* Store parameters in the structure we'll pass to the rootfinder + */ + p.hmm = hmm; + p.bg = bg; + p.pri = pri; + if ((p.h2 = p7_hmm_Clone(hmm)) == NULL) return eslEMEM; + p.etarget = etarget; + + Neff = (double) hmm->nseq; + if ((status = eweight_target_f(Neff, &p, &fx)) != eslOK) goto ERROR; + if (fx > 0.) + { + if ((R = esl_rootfinder_Create(eweight_target_f, &p)) == NULL) {status = eslEMEM; goto ERROR;} + esl_rootfinder_SetAbsoluteTolerance(R, 0.01); /* getting Neff to ~2 sig digits is fine */ + if ((status = esl_root_Bisection(R, 0., (double) hmm->nseq, &Neff)) != eslOK) goto ERROR; + + esl_rootfinder_Destroy(R); + } + + p7_hmm_Destroy(p.h2); + *ret_Neff = Neff; + return eslOK; + + ERROR: + if (p.h2 != NULL) p7_hmm_Destroy(p.h2); + if (R != NULL) esl_rootfinder_Destroy(R); + *ret_Neff = (double) hmm->nseq; + return status; +} + + +/* Evaluate fx = rel entropy - etarget, which we want to be = 0, + * for effective sequence number . + */ +static int +eweight_target_exp_f(double exp, void *params, double *ret_fx) +{ + struct ew_param_s *p = (struct ew_param_s *) params; + + p7_hmm_CopyParameters(p->hmm, p->h2); + p7_hmm_ScaleExponential(p->h2, exp); + p7_ParameterEstimation(p->h2, p->pri); + *ret_fx = p7_MeanMatchRelativeEntropy(p->h2, p->bg) - p->etarget; + return eslOK; +} + + + +/* Function: p7_EntropyWeight_exp() + * + * Purpose: Use an alternative "entropy weighting" algorithm to + * determine the effective observed counts we should + * use, and return it in . + * + * Caller provides a count-based , and the + * Dirichlet prior that's to be used to parameterize + * models; neither of these will be modified. + * Caller also provides the relative entropy + * target in bits in . + * + * will range from 0 to 1. This value will be used + * for each column to exponentially scale the observed counts. + * If a column has K (possibly weighted) observed letters, the + * scaled count will be K^ret_exp. This ensures that all scaled + * counts are at least 1. + * + * See p7_hmm_ScaleExponential() for more details. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_EntropyWeight_exp(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double etarget, double *ret_exp) +{ + + int status; + ESL_ROOTFINDER *R = NULL; + struct ew_param_s p; + double exp = 1.; + double fx; + + /* Store parameters in the structure we'll pass to the rootfinder + */ + p.hmm = hmm; + p.bg = bg; + p.pri = pri; + if ((p.h2 = p7_hmm_Clone(hmm)) == NULL) return eslEMEM; + p.etarget = etarget; + + //Neff = (double) hmm->nseq; + if ((status = eweight_target_exp_f(1.0, &p, &fx)) != eslOK) goto ERROR; + if (fx > 0.) + { + if ((R = esl_rootfinder_Create(eweight_target_exp_f, &p)) == NULL) {status = eslEMEM; goto ERROR;} + esl_rootfinder_SetAbsoluteTolerance(R, 0.001); /* getting exp to ~3 sig digits is fine */ + if ((status = esl_root_Bisection(R, 0., 1.0, &exp)) != eslOK) goto ERROR; + + esl_rootfinder_Destroy(R); + } + + + p7_hmm_Destroy(p.h2); + + *ret_exp = exp; + return eslOK; + + ERROR: + if (p.h2 != NULL) p7_hmm_Destroy(p.h2); + if (R != NULL) esl_rootfinder_Destroy(R); + + return status; +} + diff --git a/bioinformaticsProject/hmmer/src/fm_alphabet.c b/bioinformaticsProject/hmmer/src/fm_alphabet.c new file mode 100644 index 0000000..bb78882 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/fm_alphabet.c @@ -0,0 +1,178 @@ +#include "p7_config.h" + +#include + +#include "easel.h" +#include "esl_mem.h" +#include "hmmer.h" + + +/* Function: fm_alphabetCreate() + * + * Synopsis: Produce an alphabet for FMindex. + * + * Purpose: Produce an alphabet for FMindex. This may end up being + * replaced with easel alphabet functions, but the easel + * requirement of having a gap-character between + * cannonical and degenerate symbols poses a problem + * from a bit-packing perspective + * + * Args: meta - metadata object already initialized with the alphabet type. + * This will hold the alphabet (and corresponding reverse alphabet) + * created here. + * alph_bits - pointer to an int that this function sets equal to the + * number of bits required to store the alphabet (log of alph size) + * + * Returns: on success. + */ +int +fm_alphabetCreate (FM_METADATA *meta, uint8_t *alph_bits) { + + int i = 0; + int status; + + + if ( meta->alph_type == fm_DNA) { + meta->alph_size = 4; + if (alph_bits) *alph_bits = 2; +/* + } else if ( meta->alph_type == fm_DNA_full) { + meta->alph_size = 15; + if (alph_bits) *alph_bits = 4; +*/ + } else if ( meta->alph_type == fm_AMINO) { + meta->alph_size = 26; + if (alph_bits) *alph_bits = 5; + } else { + esl_fatal("Unknown alphabet type\n%s", ""); + } + + ESL_ALLOC(meta->alph, (1+meta->alph_size)*sizeof(char)); + ESL_ALLOC(meta->inv_alph, 256*sizeof(char)); + + if ( meta->alph_type == fm_DNA /*|| meta->alph_type == fm_DNA_full*/) + ESL_ALLOC(meta->compl_alph, (1+meta->alph_size)*sizeof(int)); + else + meta->compl_alph = NULL; + + + if ( meta->alph_type == fm_DNA) { + esl_memstrcpy("ACGT", 4, meta->alph); + for (i=0; i<4; i++) + meta->compl_alph[i] = 3-i; + +/* TODO: fm_DNA_full has currently been disabled because of problems with how the + * FM index handles very long runs of the same character (in this case, Ns). + * See wheelert/notebook/2013/12-11-FM-alphabet-speed notes on 12/12. + * + } else if ( meta->alph_type == fm_DNA_full) { + esl_memstrcpy("ACGTRYMKSWHBVDN", 15, meta->alph); + meta->compl_alph[0] = 3; // A->T + meta->compl_alph[1] = 2; // C->G + meta->compl_alph[2] = 1; // G->C + meta->compl_alph[3] = 0; // T->A + meta->compl_alph[4] = 5; // R->Y + meta->compl_alph[5] = 4; // Y->R + meta->compl_alph[6] = 7; // M->K + meta->compl_alph[7] = 6; // K->M + meta->compl_alph[8] = 8; // S S + meta->compl_alph[9] = 9; // W W + meta->compl_alph[10]= 13; // H->D + meta->compl_alph[11]= 12; // B->V + meta->compl_alph[12]= 11; // V->B + meta->compl_alph[13]= 10; // D->H + meta->compl_alph[14]= 14; // N N +*/ + } else if ( meta->alph_type == fm_AMINO) { + esl_memstrcpy("ACDEFGHIKLMNPQRSTVWYBJZOUX", meta->alph_size, meta->alph); + } + + for (i=0; i<256; i++) + meta->inv_alph[i] = -1; + + for (i=0; ialph_size; i++) { + meta->inv_alph[tolower(meta->alph[i])] = meta->inv_alph[toupper(meta->alph[i])] = i; + + //special case for RNA, equate U to T: + if ( (meta->alph_type == fm_DNA /*|| meta->alph_type == fm_DNA_full*/) && toupper(meta->alph[i]) == 'T') + meta->inv_alph['u'] = meta->inv_alph['U'] = i; + } + + + + return eslOK; + +ERROR: + esl_fatal("error allocating space for alphabet\n"); + return eslFAIL; +} + +/* Function: fm_alphabetDestroy() + * + * Synopsis: Free the alphabet for an FMindex metadata object + * + * Purpose: Free both the alphabet and corresponding inverse alphabet + * (inv_alph) held within . + * + * Returns: on success. + */ +int +fm_alphabetDestroy (FM_METADATA *meta) { + if (meta != NULL){ + if (meta->alph != NULL) free (meta->alph); + if (meta->inv_alph != NULL) free (meta->inv_alph); + if (meta->compl_alph != NULL) free (meta->compl_alph); + } + + return eslOK; +} + + +/* Function: fm_reverseString() + * + * Synopsis: Take as input a string and its length, and reverse the + * string in place. + * + * Returns: on success. + */ +int +fm_reverseString (char* str, int N) +{ + int end = N-1; + int start = 0; + + while( start on success. + */ +int +fm_getComplement (char c, uint8_t alph_type) +{ + if ( alph_type == fm_DNA ) { + return 3-c; +/* + } else if ( alph_type == fm_DNA_full) { + esl_fatal("complement for DNA_full not yet implemented\n"); +*/ + } else if ( alph_type == fm_AMINO) { + esl_fatal("complement for amino acids is undefined\n"); + } else { + esl_fatal("Unknown alphabet type\n%s", ""); + } + return -1; +} diff --git a/bioinformaticsProject/hmmer/src/fm_general.c b/bioinformaticsProject/hmmer/src/fm_general.c new file mode 100644 index 0000000..652981c --- /dev/null +++ b/bioinformaticsProject/hmmer/src/fm_general.c @@ -0,0 +1,749 @@ +/* Architecture-independent functions used in FM-index range compuations + * and list management. + * + * Contents: + * 1. List management + * 2. Interval / range computation + * 3. Functions related to the original sequence + * 4. FM data initialization, configuration, and reading from file + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "hmmer.h" + +/* Function: fm_initSeeds() + * + * Synopsis: initialize the object used to store a list of seed diagonals + * + * Returns: eslEMEM in event of allocation failure, otherwise eslOK + */ +int +fm_initSeeds (FM_DIAGLIST *list) { + int status; + list->size = 1000; + ESL_ALLOC(list->diags, list->size * sizeof(FM_DIAG)); + list->count = 0; + + return eslOK; + +ERROR: + return eslEMEM; + +} + +/* Function: fm_newSeed() + * + * Synopsis: return a pointer to the next seed element on the list, + * increasing the size of the list, if necessary. + * + * Returns: NULL in event of allocation failure, otherwise pointer to + * the next seed diagonal + */ +FM_DIAG * +fm_newSeed (FM_DIAGLIST *list) { + int status; + + if (list->count == list->size) { + list->size *= 4; + ESL_REALLOC(list->diags, list->size * sizeof(FM_DIAG)); + } + list->count++; + return list->diags + (list->count - 1); + +ERROR: + return NULL; +} + + + +/* Function: fm_initAmbiguityList() + * + * Synopsis: initialize the object used to store a list of ambiguity ranges + * + * Returns: eslEMEM in event of allocation failure, otherwise eslOK + */ +int +fm_initAmbiguityList (FM_AMBIGLIST *list) { + + int status; + + list->size = 1000; + + ESL_ALLOC(list->ranges, list->size * sizeof(FM_INTERVAL)); + if (list->ranges == NULL ) + esl_fatal("unable to allocate memory to store FM ambiguity data\n"); + + list->count = 0; + + return eslOK; + +ERROR: + return eslEMEM; + +} + +/* Function: fm_addAmbiguityRange() + * + * Synopsis: return a pointer to the next seed element on the list, + * increasing the size of the list, if necessary. + * + * Returns: NULL in event of allocation failure, otherwise pointer to + * the next seed diagonal + */ +int +fm_addAmbiguityRange (FM_AMBIGLIST *list, uint32_t start, uint32_t stop) { + int status; + + if (list->count == list->size) { + list->size *= 4; + ESL_REALLOC(list->ranges, list->size * sizeof(FM_INTERVAL)); + } + + list->ranges[list->count].lower = start; + list->ranges[list->count].upper = stop; + + list->count++; + + return eslOK; + +ERROR: + return eslFAIL; +} + + + + + +/********************************************************************* + *# 2. Interval / range computation + *********************************************************************/ + +/* Function: fm_updateIntervalForward() + * + * Synopsis: Implement Algorithm 4 (i371) of Simpson (Bioinformatics 2010) + * + * Purpose: + * + * Returns: eslOK + */ +int +fm_updateIntervalForward( const FM_DATA *fm, const FM_CFG *cfg, char c, FM_INTERVAL *interval_bk, FM_INTERVAL *interval_f) { + uint32_t occLT_l, occLT_u, occ_l, occ_u; + + fm_getOccCountLT (fm, cfg, interval_bk->lower - 1, c, &occ_l, &occLT_l); + fm_getOccCountLT (fm, cfg, interval_bk->upper, c, &occ_u, &occLT_u); + + interval_f->lower += (occLT_u - occLT_l); + interval_f->upper = interval_f->lower + (occ_u - occ_l) - 1; + + interval_bk->lower = abs((int)(fm->C[(int)c])) + occ_l; + interval_bk->upper = abs((int)(fm->C[(int)c])) + occ_u - 1; + + return eslOK; +} + +/* Function: getSARangeForward() + * Synopsis: For a given query sequence, find its interval in the FM-index, using forward search + * Purpose: Implement Algorithm 4 (i371) of Simpson (Bioinformatics 2010). It's the forward + * search on a bi-directional BWT, as described by Lam 2009. + * All the meat is in the method of counting characters - bwt_getOccCount, which + * depends on compilation choices. + * + * Note: it seems odd, but is correct, that the fm-index passed in to this function + * is the backward index corresponding to the forward index into which I want to + * do a forward search + */ +int +fm_getSARangeForward( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alph, FM_INTERVAL *interval) +{ + + int i=0; + FM_INTERVAL interval_bk; + + uint8_t c = inv_alph[(int)query[0]]; + interval->lower = interval_bk.lower = abs((int)(fm->C[c])); + interval->upper = interval_bk.upper = abs((int)(fm->C[c+1]))-1; + + + while (interval_bk.lower>=0 && interval_bk.lower <= interval_bk.upper) { + c = query[++i]; + if (c == '\0') // end of query - the current range defines the hits + break; + + c = inv_alph[c]; + fm_updateIntervalForward( fm, cfg, c, &interval_bk, interval); + cfg->occCallCnt+=2; + } + + return eslOK; +} + + +int +fm_updateIntervalReverse( const FM_DATA *fm, const FM_CFG *cfg, char c, FM_INTERVAL *interval) { + int count1, count2; + //TODO: counting in these calls will often overlap + // - might get acceleration by merging to a single redundancy-avoiding call + count1 = fm_getOccCount (fm, cfg, interval->lower-1, c); + count2 = fm_getOccCount (fm, cfg, interval->upper, c); + + interval->lower = abs((int)(fm->C[(int)c])) + count1; + interval->upper = abs((int)(fm->C[(int)c])) + count2 - 1; + + return eslOK; +} + + + +/* Function: getSARangeReverse() + * Synopsis: For a given query sequence, find its interval in the FM-index, using backward search + * Purpose: Implement Algorithm 3.6 (p17) of Firth paper (A Comparison of BWT Approaches + * to String Pattern Matching). This is what Simpson and Lam call "Reverse Search". + * All the meat is in the method of counting characters - bwt_getOccCount, which + * depends on compilation choices. + */ +int +fm_getSARangeReverse( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alph, FM_INTERVAL *interval) +{ + + + int i=0; + + char c = inv_alph[(int)query[0]]; + interval->lower = abs((int)(fm->C[(int)c])); + interval->upper = abs((int)(fm->C[(int)c+1]))-1; + + while (interval->lower>=0 && interval->lower <= interval->upper) { + c = query[++i]; + if (c == '\0') // end of query - the current range defines the hits + break; + + c = inv_alph[(int)c]; + + fm_updateIntervalReverse(fm, cfg, c, interval); + + cfg->occCallCnt+=2; + } + + return eslOK; +} + + + +/********************************************************************* + *# 3. Functions related to the original sequence + *********************************************************************/ + + +/* Function: getChar() + * Synopsis: Find the character c residing at a given position in the BWT. + * Purpose: This method must account for possible string compression, either + * 4 characters in one byte for a 4-letter DNA/RNA alphabet, 2 chars + * per byte for a 15-letter alphabet of DNA/RNA with ambiguity codes, + * or one char per byte for amino acids. + */ +uint8_t +fm_getChar(uint8_t alph_type, int j, const uint8_t *B ) +{ + uint8_t c = -1; + + if (alph_type == fm_DNA /* || alph_type == fm_RNA */) { + /* + * B[j/4] is the byte of B in which j is found + * + * Let j' be the final two bits of j (j&0x2) + * The char bits are the two starting at position 2*j'. + * Without branching, grab them by shifting B[j/4] right 6-2*j' bits, + * then masking to keep the final two bits + */ + c = (B[j/4] >> ( 0x6 - ((j&0x3)*2) ) & 0x3); +/* + } else if (alph_type == fm_DNA_full ) { + c = (B[j/2] >> (((j&0x1)^0x1)*4) ) & 0xf; //unpack the char: shift 4 bits right if it's odd, then mask off left bits in any case +*/ + } else { // amino + c = B[j]; + } + + return c; +} + + + +/* Function: fm_findOverlappingAmbiguityBlock() + * Synopsis: Search in the meta->ambig_list array for the first + * ambiguity range starting after . If that index + * comes before , return it. Otherwise, return -1. + */ +int32_t +fm_findOverlappingAmbiguityBlock (const FM_DATA *fm, const FM_METADATA *meta, uint32_t start, uint32_t end) +{ + + int lo = fm->ambig_offset; + int hi = lo + fm->ambig_cnt - 1; + int mid; + FM_INTERVAL *ranges = meta->ambig_list->ranges; + + // (1) Search in the meta->ambig_list array for the last ambiguity range + // ending before , using binary search, first handling edge cases: + if (hi <= lo) return hi; // either 0 or -1 + if (ranges[lo].lower > end) return -1; + if (ranges[hi].upper < start) return -1; + + while (lo < hi) { + mid = (lo + hi) / 2; // round down + if (ranges[mid].lower < start) lo = mid + 1; // too far left + else hi = mid; // might be too far right + } + + //the range test above may have pushed the target one too far to the right + if (lo>0 && ranges[lo-1].upper >= start && ranges[lo-1].lower <= end) return lo-1; + else if ( ranges[lo].upper >= start && ranges[lo].lower <= end) return lo; + else return -1; + +} + + +/* Function: fm_convertRange2DSQ() + * Synopsis: Convert the BWT range into a DSQ. + * + * Purpose: The input value of is the 0-based position at which + * the requested range starts on either FM->T or revcomp(FM->T), + * depending on . Since only FM->T is stored, + * the necessary work is done to correct positions in the case + * that the positions are relative to the revcomp. + */ +int +fm_convertRange2DSQ(const FM_DATA *fm, const FM_METADATA *meta, uint64_t first, int length, int complementarity, ESL_SQ *sq, int fix_ambiguities) +{ + uint64_t i, j; + + if (complementarity == p7_COMPLEMENT) + first = fm->N-(first+length)-1; + + //All the "+1" dsq offsets below are because the dsq characters are 1-based. + esl_sq_GrowTo(sq, length); + sq->n = length; + + if (meta->alph_type == fm_DNA ) { + /* + * B[j>>2] is the byte of B in which j is found (j/4) + * + * Let j' be the final two bits of j (j&0x2) + * The char bits are the two starting at position 2*j'. + * Without branching, grab them by shifting B[j/4] right 6-2*j' bits, + * then masking to keep the final two bits + */ + for (i = first; i <= first+length-1; i++) + sq->dsq[i-first+1] = (fm->T[i/4] >> ( 0x6 - ((i&0x3)*2) ) & 0x3); + sq->dsq[length+1] = eslDSQ_SENTINEL; + + if (fix_ambiguities) { + /* Account for the fact that in the DNA alphabet without ambiguity codes, + * makehmmerdb turns ambiguity codes into one of the nucleotides. Need + * to replace with an N. + */ + int32_t pos = fm_findOverlappingAmbiguityBlock (fm, meta, first, first+length-1 ); + if (pos != -1) { + while (pos <= fm->ambig_offset + fm->ambig_cnt -1 && meta->ambig_list->ranges[pos].lower <= first+length-1) { + int start = ESL_MAX(first, meta->ambig_list->ranges[pos].lower); + int end = ESL_MIN(first+length-1, meta->ambig_list->ranges[pos].upper); + for (j= start; j<=end; j++) + sq->dsq[j-first+1] = sq->abc->Kp-3; //'N' + pos++; + } + } + } + +/* + } else if (meta->alph_type == fm_DNA_full) { + for (i = first; i<= first+length-1; i++) { + c = (fm->T[i/2] >> (((i&0x1)^0x1)*4) ) & 0xf; //unpack the char: shift 4 bits right if it's odd, then mask off left bits in any case + sq->dsq[i-first+1] = c + (c < 4 ? 0 : 1); //increment by one for ambiguity codes + } + sq->dsq[length+1] = eslDSQ_SENTINEL; +*/ + } else { // amino + for (i = first; i<= first+length-1; i++) + sq->dsq[i-first+1] = fm->T[i] + (fm->T[i] < 20 ? 0 : 1); //increment by one for ambiguity codes + + sq->dsq[length+1] = eslDSQ_SENTINEL; + } + + if (complementarity == p7_COMPLEMENT) + esl_sq_ReverseComplement(sq); + + return eslOK; +} + + + +/* Function: fm_computeSequenceOffset() + * Synopsis: Search in the meta->seq_data array for the sequence id corresponding to the + * requested position. The matching entry is the one with the largest index i + * such that seq_data[i].offset < pos + */ +uint64_t +fm_computeSequenceOffset (const FM_DATA *fms, const FM_METADATA *meta, int block, uint64_t pos) +{ + + uint64_t lo = fms[block].seq_offset; + uint64_t hi = lo + fms[block].seq_cnt - 1; + uint64_t mid; + + //binary search, first handling edge cases + if (lo==hi) return lo; + if (meta->seq_data[hi].fm_start <= pos) return hi; + + while (1) { + mid = (lo + hi + 1) / 2; /* round up */ + if (meta->seq_data[mid].fm_start <= pos) lo = mid; /* too far left */ + else if (meta->seq_data[mid-1].fm_start > pos) hi = mid; /* too far right */ + else return mid-1; /* found it */ + } + +} + + +/* Function: fm_getOriginalPosition() + * Synopsis: Find the id of the sequence in the original input corresponding + * to a given hit, and the position of that hit in the original + * Purpose: Given: + * fms - an array of FM-indexes + * meta - the fm metadata + * fm_id - index of the fm-index in which a hit is sought + * length - length of the hit in question + * direction - direction of the hit in question + * fm_pos - position in the fm-index + * + * Returns + * *segment_id - index of the sequence segment captured in the FM-index + * *seg_pos - position in the original sequence, as compressed in the FM binary data structure (zero based) + * int - eslERANGE if the range in question crosses the boundary between two target sequences. Otherwise eslOK. + */ +int +fm_getOriginalPosition (const FM_DATA *fms, const FM_METADATA *meta, int fm_id, int length, int complementarity, + uint64_t fm_pos, uint32_t *segment_id, uint64_t *seg_pos +) { + + // if complementarity == p7_NOCOMPLEMENT, the end positions are in context of FM->T + // otherwise, they're in context of revcomp(FM->T). + if (complementarity == p7_COMPLEMENT) // need location in forward context: + fm_pos = fms->N - fm_pos - 1; + + *segment_id = fm_computeSequenceOffset( fms, meta, fm_id, fm_pos); + *seg_pos = ( fm_pos - meta->seq_data[ *segment_id ].fm_start) + 1; + + if (complementarity == p7_COMPLEMENT) // now reverse orientation + *seg_pos = meta->seq_data[ *segment_id ].length - *seg_pos + 1; + + + //verify that the hit doesn't extend beyond the bounds of the target sequence + if (*seg_pos + length - 1 > meta->seq_data[ *segment_id ].length ) + return eslERANGE; + + return eslOK; +} + +/********************************************************************* + *# 4. FM data initialization, configuration, and reading from file + *********************************************************************/ + +int +fm_initConfigGeneric( FM_CFG *cfg, ESL_GETOPTS *go ) { + + cfg->ssv_length = (go ? esl_opt_GetInteger(go, "--seed_ssv_length") : -1); + cfg->max_depth = (go ? esl_opt_GetInteger(go, "--seed_max_depth") : -1); + cfg->drop_max_len = (go ? esl_opt_GetInteger(go, "--seed_drop_max_len") : -1); + cfg->consec_pos_req = (go ? esl_opt_GetInteger(go, "--seed_req_pos") : -1); + cfg->consensus_match_req = (go ? esl_opt_GetInteger(go, "--seed_consens_match") : 10); + cfg->drop_lim = eslCONST_LOG2 * (go ? esl_opt_GetReal(go, "--seed_drop_lim") : -1.0); // convert from bits to nats + cfg->score_density_req = eslCONST_LOG2 * (go ? esl_opt_GetReal(go, "--seed_sc_density") : -1.0);// convert from bits to nats + cfg->scthreshFM = eslCONST_LOG2 * (go ? esl_opt_GetReal(go, "--seed_sc_thresh") : -1.0); // convert from bits to nats + + return eslOK; +} + +/* Function: fm_FM_free() + * Synopsis: release the memory required to store an individual FM-index + */ +void +fm_FM_destroy ( FM_DATA *fm, int isMainFM) +{ + + free (fm->BWT_mem); + free (fm->C); + free (fm->occCnts_b); + free (fm->occCnts_sb); + + if (isMainFM) { + free (fm->T); + free (fm->SA); + } +} + +/* Function: fm_FM_read() + * Synopsis: Read the FM index off disk + * Purpose: Read the FM-index as written by fmbuild. + * First read the metadata header, then allocate space for the full index, + * then read it in. + */ +int +fm_FM_read( FM_DATA *fm, FM_METADATA *meta, int getAll ) +{ + //shortcut variables + int64_t *C = NULL; + + int i; + uint32_t *occCnts_sb = NULL; + int32_t compressed_bytes; + int num_freq_cnts_b; + int num_freq_cnts_sb; + int num_SA_samples; + int64_t prevC; + int cnt; + int chars_per_byte = 8/meta->charBits; + int status; + + + if(fread(&(fm->N), sizeof(uint64_t), 1, meta->fp) != 1 || + fread(&(fm->term_loc), sizeof(uint32_t), 1, meta->fp) != 1 || + fread(&(fm->seq_offset), sizeof(uint32_t), 1, meta->fp) != 1 || + fread(&(fm->ambig_offset), sizeof(uint32_t), 1, meta->fp) != 1 || + fread(&(fm->overlap), sizeof(uint32_t), 1, meta->fp) != 1 || + fread(&(fm->seq_cnt), sizeof(uint32_t), 1, meta->fp) != 1 || + fread(&(fm->ambig_cnt), sizeof(uint32_t), 1, meta->fp) != 1 + ) + {status=eslEFORMAT; goto ERROR;} + + compressed_bytes = ((chars_per_byte-1+fm->N)/chars_per_byte); + num_freq_cnts_b = 1+ceil((double)fm->N/meta->freq_cnt_b); + num_freq_cnts_sb = 1+ceil((double)fm->N/meta->freq_cnt_sb); + num_SA_samples = floor((double)fm->N/meta->freq_SA); + + // allocate space, then read the data + if (getAll) ESL_ALLOC (fm->T, sizeof(uint8_t) * compressed_bytes ); + ESL_ALLOC (fm->BWT_mem, sizeof(uint8_t) * (compressed_bytes + 31) ); // +31 for manual 16-byte alignment ( typically only need +15, but this allows offset in memory, plus offset in case of <16 bytes of characters at the end) + fm->BWT = (uint8_t *) (((unsigned long int)fm->BWT_mem + 15) & (~0xf)); // align vector memory on 16-byte boundaries + if (getAll) ESL_ALLOC (fm->SA, num_SA_samples * sizeof(uint32_t)); + ESL_ALLOC (fm->C, (1+meta->alph_size) * sizeof(int64_t)); + ESL_ALLOC (fm->occCnts_b, num_freq_cnts_b * (meta->alph_size ) * sizeof(uint16_t)); // every freq_cnt positions, store an array of ints + ESL_ALLOC (fm->occCnts_sb, num_freq_cnts_sb * (meta->alph_size ) * sizeof(uint32_t)); // every freq_cnt positions, store an array of ints + + + if( + (getAll && fread(fm->T, sizeof(uint8_t), compressed_bytes, meta->fp) != compressed_bytes) || + (fread(fm->BWT, sizeof(uint8_t), compressed_bytes, meta->fp) != compressed_bytes) || + (getAll && fread(fm->SA, sizeof(uint32_t), (size_t)num_SA_samples, meta->fp) != (size_t)num_SA_samples) || + (fread(fm->occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, meta->fp) != (size_t)num_freq_cnts_b) || + (fread(fm->occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, meta->fp) != (size_t)num_freq_cnts_sb) + ) + {status=eslEFORMAT; goto ERROR;} + + //shortcut variables + C = fm->C; + occCnts_sb = fm->occCnts_sb; + + /*compute the first position of each letter in the alphabet in a sorted list + * (with an extra value to simplify lookup of the last position for the last letter). + * Negative values indicate that there are zero of that character in T, can be + * used to establish the end of the prior range*/ + C[0] = 0; + for (i=0; ialph_size; i++) { + prevC = abs((int)(C[i])); + + cnt = FM_OCC_CNT( sb, num_freq_cnts_sb-1, i); + + if (cnt==0) {// none of this character + C[i+1] = prevC; + C[i] *= -1; // use negative to indicate that there's no character of this type, the number gives the end point of the previous + } else { + C[i+1] = prevC + cnt; + } + } + C[meta->alph_size] *= -1; + C[0] = 1; + + return eslOK; + +ERROR: + fm_FM_destroy(fm, getAll); + return status; +} + + +/* Function: readFMmeta() + * Synopsis: Read metadata from disk for the set of FM-indexes stored in a HMMER binary file + * + * Input: file pointer to binary file + * Output: return filled meta struct + */ +int +fm_readFMmeta( FM_METADATA *meta) +{ + int status; + int i; + + + fm_initAmbiguityList(meta->ambig_list); + + if( fread(&(meta->fwd_only), sizeof(meta->fwd_only), 1, meta->fp) != 1 || + fread(&(meta->alph_type), sizeof(meta->alph_type), 1, meta->fp) != 1 || + fread(&(meta->alph_size), sizeof(meta->alph_size), 1, meta->fp) != 1 || + fread(&(meta->charBits), sizeof(meta->charBits), 1, meta->fp) != 1 || + fread(&(meta->freq_SA), sizeof(meta->freq_SA), 1, meta->fp) != 1 || + fread(&(meta->freq_cnt_sb), sizeof(meta->freq_cnt_sb), 1, meta->fp) != 1 || + fread(&(meta->freq_cnt_b), sizeof(meta->freq_cnt_b), 1, meta->fp) != 1 || + fread(&(meta->block_count), sizeof(meta->block_count), 1, meta->fp) != 1 || + fread(&(meta->seq_count), sizeof(meta->seq_count), 1, meta->fp) != 1 || + fread(&(meta->ambig_list->count), sizeof(meta->ambig_list->count), 1, meta->fp) != 1 || + fread(&(meta->char_count), sizeof(meta->char_count), 1, meta->fp) != 1 + ) + {status=eslEFORMAT; goto ERROR;} + + /* sanity check - are these metadata for a real FM index? + * TODO: in an upcoming renovation of FM, capture FM validation & version as part of metadata header + */ + if ( meta->alph_type != fm_DNA || /* this is the only legal value for nhmmer */ + meta->fwd_only > 1 || /* must be 0 (false) or 1 (true) */ + meta->charBits > 8 || /* should really be 2 ... but allowing for future growth */ + meta->freq_SA > 10000 /* a suffix array sampling of this scale is insane */ + ) + {status=eslEFORMAT; return status;} + + + ESL_ALLOC (meta->seq_data, meta->seq_count * sizeof(FM_SEQDATA)); + + + for (i=0; iseq_count; i++) { + if( fread(&(meta->seq_data[i].target_id), sizeof(meta->seq_data[i].target_id), 1, meta->fp) != 1 || + fread(&(meta->seq_data[i].target_start), sizeof(meta->seq_data[i].target_start), 1, meta->fp) != 1 || + fread(&(meta->seq_data[i].fm_start), sizeof(meta->seq_data[i].fm_start), 1, meta->fp) != 1 || + fread(&(meta->seq_data[i].length), sizeof(meta->seq_data[i].length), 1, meta->fp) != 1 || + fread(&(meta->seq_data[i].name_length), sizeof(meta->seq_data[i].name_length), 1, meta->fp) != 1 || + fread(&(meta->seq_data[i].acc_length), sizeof(meta->seq_data[i].acc_length), 1, meta->fp) != 1 || + fread(&(meta->seq_data[i].source_length),sizeof(meta->seq_data[i].source_length),1, meta->fp) != 1 || + fread(&(meta->seq_data[i].desc_length), sizeof(meta->seq_data[i].desc_length), 1, meta->fp) != 1 + ) + {status=eslEFORMAT; goto ERROR;} + + ESL_ALLOC (meta->seq_data[i].name, (1+meta->seq_data[i].name_length) * sizeof(char)); + ESL_ALLOC (meta->seq_data[i].acc, (1+meta->seq_data[i].acc_length) * sizeof(char)); + ESL_ALLOC (meta->seq_data[i].source,(1+meta->seq_data[i].source_length) * sizeof(char)); + ESL_ALLOC (meta->seq_data[i].desc, (1+meta->seq_data[i].desc_length) * sizeof(char)); + + if( + fread(meta->seq_data[i].name, sizeof(char), meta->seq_data[i].name_length+1 , meta->fp) != meta->seq_data[i].name_length+1 || + fread(meta->seq_data[i].acc, sizeof(char), meta->seq_data[i].acc_length+1 , meta->fp) != meta->seq_data[i].acc_length+1 || + fread(meta->seq_data[i].source, sizeof(char), meta->seq_data[i].source_length+1 , meta->fp) != meta->seq_data[i].source_length+1 || + fread(meta->seq_data[i].desc, sizeof(char), meta->seq_data[i].desc_length+1 , meta->fp) != meta->seq_data[i].desc_length+1 + ) + {status=eslEFORMAT; goto ERROR;} + } + + if (meta->ambig_list->count > meta->ambig_list->size) { + ESL_REALLOC(meta->ambig_list->ranges, meta->ambig_list->count * sizeof(FM_INTERVAL)); + meta->ambig_list->size = meta->ambig_list->count; + } + + for (i=0; iambig_list->count; i++) { + if( fread(&(meta->ambig_list->ranges[i].lower), sizeof(meta->ambig_list->ranges[i].lower), 1, meta->fp) != 1 || + fread(&(meta->ambig_list->ranges[i].upper), sizeof(meta->ambig_list->ranges[i].upper), 1, meta->fp) != 1 + ) + {status=eslEAMBIGUOUS; goto ERROR;} + } + + return eslOK; + +ERROR: + + if (meta->seq_data) { + for (i=0; iseq_count; i++) + free(meta->seq_data[i].name); + free(meta->seq_data); + } + free(meta); + + return status; +} + + +/* Function: fm_configAlloc() + * Synopsis: Allocate a model object, and its FM_METADATA + */ +int +fm_configAlloc(FM_CFG **cfg) +{ + int status; + + if (cfg == NULL) {status=eslERANGE; goto ERROR;} + *cfg = NULL; + + ESL_ALLOC(*cfg, sizeof(FM_CFG) ); + ESL_ALLOC((*cfg)->meta, sizeof(FM_METADATA)); + ESL_ALLOC ((*cfg)->meta->ambig_list, sizeof(FM_AMBIGLIST)); + + return eslOK; + +ERROR: + if (*cfg != NULL) { + if ((*cfg)->meta != NULL) free ((*cfg)->meta); + free (*cfg); + } + return status; +} + + + +/* Function: fm_configDestroy() + * Synopsis: Destroy various memory items used for the FMindex implementation + * + * Purpose: Destroy the masks used by the FM index, the metadata for + * the FM index, and the config itself. + */ +int +fm_configDestroy(FM_CFG *cfg ) { + if (cfg) { +#if defined (eslENABLE_SSE) + if (cfg->fm_chars_mem) free(cfg->fm_chars_mem); + if (cfg->fm_masks_mem) free(cfg->fm_masks_mem); + if (cfg->fm_reverse_masks_mem) free(cfg->fm_reverse_masks_mem); +#endif + fm_metaDestroy(cfg->meta); + free(cfg); + } + return eslOK; +} + +/* Function: fm_metaDestroy() + * Synopsis: Destroy various metadata for the FMindex implementation + */ +int +fm_metaDestroy(FM_METADATA *meta ) { + int i; + if (meta != NULL) { + for (i=0; iseq_count; i++) { + if(meta->seq_data[i].name) free(meta->seq_data[i].name); + if(meta->seq_data[i].acc) free(meta->seq_data[i].acc); + if(meta->seq_data[i].source) free(meta->seq_data[i].source); + if(meta->seq_data[i].desc) free(meta->seq_data[i].desc); + + } + free(meta->seq_data); + + if (meta->ambig_list) { + if (meta->ambig_list->ranges) free(meta->ambig_list->ranges); + free(meta->ambig_list); + } + + fm_alphabetDestroy(meta); + free (meta); + } + + return eslOK; +} + + + diff --git a/bioinformaticsProject/hmmer/src/fm_sse.c b/bioinformaticsProject/hmmer/src/fm_sse.c new file mode 100644 index 0000000..6da2ae6 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/fm_sse.c @@ -0,0 +1,622 @@ +#include "p7_config.h" + +#include + +#if defined eslENABLE_SSE +#include /* SSE */ +#include /* SSE2 */ +#endif + +#include "easel.h" +#include "esl_getopts.h" +#include "hmmer.h" + +#if defined eslENABLE_SSE +int +fm_getbits_m128 (__m128i in, char *buf, int reverse) +{ + byte_m128 new; + new.m128 = in; + int i,j; + + for (i=0; i<16;i++) { + + for (j=0; j<8; j++) { + if (reverse) + buf[9*i+j] = (new.bytes[i]>>j)&0x1 ? '1' : '0'; + else + buf[9*i+(7-j)] = (new.bytes[i]>>j)&0x1 ? '1' : '0'; + } + buf[9*i + 8] = ' '; + } + buf[143] = '\0'; + + return eslOK; +} + +int +fm_print_m128 (__m128i in) +{ + char str[144]; + fm_getbits_m128(in, str, 0); + fprintf (stderr, "%s\n", str); + return eslOK; +} + + +int +fm_print_m128_rev (__m128i in) +{ + char str[144]; + fm_getbits_m128(in, str, 1); + fprintf (stderr, "%s\n", str); + return eslOK; +} +#endif //#if defined (eslENABLE_SSE) + + +/* Function: fm_initConfig() + * Purpose: Initialize vector masks used in SSE FMindex implementation + */ +int +fm_configInit( FM_CFG *cfg, ESL_GETOPTS *go ) +{ + fm_initConfigGeneric(cfg, go); + +#if defined (eslENABLE_SSE) + int i,j; + int trim_chunk_count; + int status; + + cfg->fm_allones_v = _mm_set1_epi8(0xff); + cfg->fm_neg128_v = _mm_set1_epi8((int8_t) -128); + cfg->fm_zeros_v = _mm_set1_epi8((int8_t) 0x00); //00 00 00 00 + cfg->fm_m0f = _mm_set1_epi8((int8_t) 0x0f); //00 00 11 11 + + if (cfg->meta->alph_type == fm_DNA) { + cfg->fm_m01 = _mm_set1_epi8((int8_t) 0x55); //01 01 01 01 + cfg->fm_m11 = _mm_set1_epi8((int8_t) 0x03); //00 00 00 11 + } + //set up an array of vectors, one for each character in the alphabet + cfg->fm_chars_v = NULL; + ESL_ALLOC (cfg->fm_chars_mem, cfg->meta->alph_size * sizeof(__m128) + 15 ); // +15 for manual 16-byte alignment, which matters for SIMD stuff + cfg->fm_chars_v = (__m128i *) (((unsigned long int)(cfg->fm_chars_mem) + 15) & (~0xf)); /* align vector memory on 16-byte boundaries */ + + + for (i=0; imeta->alph_size; i++) { + int8_t c = i; + if (cfg->meta->alph_type == fm_DNA) { + // need 4 copies per byte + c |= i<<2; + c |= i<<4; + c |= i<<6; + } //else, just leave it on the right-most bits + + cfg->fm_chars_v[i] = _mm_set1_epi8(c); + } + + /* this is a collection of masks used to clear off the left- or right- part + * of a register when we shouldn't be counting the whole thing + * Incrementally chew off the 1s in chunks of 2 (for DNA) or 4 (for DNA_full) + * from the right side, and stick each result into an element of a __m128 array + */ + if (cfg->meta->alph_type == fm_DNA) + trim_chunk_count = 64; //2-bit steps + else // then cfg->meta->alph_type == fm_AMINO, we suppose + trim_chunk_count = 16; //8-bit steps + + //chars_per_vector = 128/meta->charBits; + cfg->fm_masks_v = NULL; + cfg->fm_reverse_masks_v = NULL; + ESL_ALLOC (cfg->fm_masks_mem, (1+trim_chunk_count) *sizeof(__m128) + 15 ); // +15 for manual 16-byte alignment, which matters for SIMD stuff + cfg->fm_masks_v = (__m128i *) (((unsigned long int)(cfg->fm_masks_mem) + 15) & (~0xf)); /* align vector memory on 16-byte boundaries */ + + ESL_ALLOC (cfg->fm_reverse_masks_mem, (1+trim_chunk_count) *sizeof(__m128) + 15 ); // +15 for manual 16-byte alignment, which matters for SIMD stuff + cfg->fm_reverse_masks_v = (__m128i *) (((unsigned long int)(cfg->fm_reverse_masks_mem) + 15) & (~0xf)); /* align vector memory on 16-byte boundaries */ + + { + byte_m128 arr; + arr.m128 = cfg->fm_allones_v; + + for (i=trim_chunk_count-1; i>0; i--) { + int byte_mask=0xff; //11 11 11 11 + int byte_i = (i-1)/(trim_chunk_count/16); + if (cfg->meta->alph_type == fm_DNA) { + switch (i&0x03) { + case 1: + byte_mask = 0xc0; //11 00 00 00 + break; + case 2: + byte_mask = 0xf0; //11 11 00 00 + break; + case 3: + byte_mask = 0xfc; //11 11 11 00 + break; + default: + break; + } + } + + arr.bytes[byte_i] = byte_mask; //chew off the appropriate number of bits + for (j=byte_i+1; j<16; j++) { + arr.bytes[j] = 0x0; + } + cfg->fm_masks_v[i] = *(__m128i*)(&(arr.m128)); + cfg->fm_reverse_masks_v[trim_chunk_count-i] = _mm_andnot_si128(cfg->fm_masks_v[i], cfg->fm_allones_v ); + + } + } +#endif // eslENABLE_SSE + +/* + if (cfg->meta->alph_type == fm_DNA_full) { + cfg->fm_masks_v[16] = cfg->fm_allones_v; + cfg->fm_reverse_masks_v[16] = cfg->fm_allones_v; + } +*/ + return eslOK; + +#if defined (eslENABLE_SSE) +ERROR: + if (cfg->fm_chars_mem) free(cfg->fm_chars_mem); + if (cfg->fm_masks_mem) free(cfg->fm_masks_mem); + if (cfg->fm_reverse_masks_mem) free(cfg->fm_reverse_masks_mem); + + esl_fatal("Error allocating memory in initGlobals\n"); + return eslFAIL; +#endif +} + + + +/* Function: fm_getOccCount() + * Synopsis: Compute number of occurrences of c in BWT[1..pos] + * + * Purpose: Scan through the BWT to compute number of occurrence of c in BWT[0..pos], + * using SSE to scan 16 bytes-at-a-time. + * + * First, use checkpointed occurrence counts in the arrays occCnts_sb and occCnts_b. + * The checkpoint used is the one closest to pos, possibly requiring that counts be + * subtracted from the checkpointed total + * + * The counting method is SIMD, loading 16 bytes (32 or 64 chars, depending on + * alphabet) at a time into the vector co-processors, then counting occurrences. One + * constraint of this approach is that occCnts_b checkpoints must be spaced at least + * every 32 or 64 chars (16 bytes, in pressed format), and in multiples of 64/32, so + * that _mm_load_si128 calls appropriately meet 16-byte-alignment requirements. That's + * a reasonable expectation, as spacings of 256 or more seem to give the best speed, + * and certainly better space-utilization. + */ +int +fm_getOccCount (const FM_DATA *fm, const FM_CFG *cfg, int pos, uint8_t c) +{ + FM_METADATA *meta = cfg->meta; + int cnt = 0; + const int b_pos = (pos+1) / meta->freq_cnt_b ; //floor(pos/b_size) : the b count element preceding pos + const int cnt_mod_mask_b = meta->freq_cnt_b - 1; //used to compute the mod function + const int b_rel_pos = (pos+1) & cnt_mod_mask_b; // pos % b_size : how close is pos to the boundary corresponding to b_pos + int up_b = 2*b_rel_pos/meta->freq_cnt_b; //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise + int landmark = ((b_pos+up_b)*meta->freq_cnt_b) - 1 ; + + if (landmark >= fm->N) { // special case: for a count in the final block, just count from the bottom + up_b = 0; + landmark = (b_pos*(meta->freq_cnt_b)) - 1 ; + } + +#if defined (eslENABLE_SSE) + int i; + const uint16_t * occCnts_b = fm->occCnts_b; + const uint32_t * occCnts_sb = fm->occCnts_sb; + const int sb_pos = (pos+1) / meta->freq_cnt_sb; //floor(pos/sb_size) : the sb count element preceding pos + + + // get the cnt stored at the nearest checkpoint + cnt = FM_OCC_CNT(sb, sb_pos, c ); + + if (up_b) + cnt += FM_OCC_CNT(b, b_pos + 1, c ) ; + else if ( b_pos != sb_pos * (meta->freq_cnt_sb / meta->freq_cnt_b) ) + cnt += FM_OCC_CNT(b, b_pos, c ) ;// b_pos has cumulative counts since the prior sb_pos - if sb_pos references the same count as b_pos, it'll doublecount + + if ( landmark < fm->N || landmark == -1 ) { + + const uint8_t * BWT = fm->BWT; + + + register __m128i c_v = *(cfg->fm_chars_v + c); + register __m128i BWT_v; + register __m128i tmp_v; + register __m128i tmp2_v; + register __m128i counts_v = cfg->fm_neg128_v; // set to -128, offset to allow each 8-bit int to hold up to 255. + // so effectively, can guarantee holding 128*16 = 2048. + // Since I count from left or right, whichever is closer, this means + // we can support an occ_b interval of up to 4096 with guarantee of + // correctness. + if (meta->alph_type == fm_DNA ) { + + if (!up_b) { // count forward, adding + for (i=1+floor(landmark/4.0) ; i+15<( (pos+1)/4); i+=16) { // keep running until i begins a run that shouldn't all be counted + BWT_v = *(__m128i*)(BWT+i); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v); + } + + int remaining_cnt = pos + 1 - i*4 ; + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v); + } + + } else { // count backwards, subtracting + for (i=(landmark/4)-15 ; i>(pos/4); i-=16) { + BWT_v = *(__m128i*)(BWT+i); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v); + } + + int remaining_cnt = 64 - (pos + 1 - i*4); + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v); + } + } +/* + } else if ( meta->alph_type == fm_DNA_full ) { + + if (!up_b) { // count forward, adding + for (i=1+floor(landmark/2.0) ; i+15<( (pos+1)/2); i+=16) { // keep running until i begins a run that shouldn't all be counted + BWT_v = *(__m128i*)(BWT+i); + FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v); + } + int remaining_cnt = pos + 1 - i*2 ; + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + (remaining_cnt+1)/2)); // mask characters we don't want to count + tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_masks_v + remaining_cnt/2)); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v); + } + + } else { // count backwards, subtracting + for (i=(landmark/2)-15 ; i>(pos/2); i-=16) { + BWT_v = *(__m128i*)(BWT+i); + FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v); + } + + int remaining_cnt = 32 - (pos + 1 - i*2); + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/2)); // mask characters we don't want to count + tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2)); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v); + } + } +*/ + } else { //amino + + if (!up_b) { // count forward, adding + for (i=1+landmark ; i+15<(pos+1); i+=16) { // keep running until i begins a run that shouldn't all be counted + BWT_v = *(__m128i*)(BWT+i); + BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); // each byte is all 1s if matching, all zeros otherwise + counts_v = _mm_subs_epi8(counts_v, BWT_v); // adds 1 for each matching byte (subtracting negative 1) + } + int remaining_cnt = pos + 1 - i ; + + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); + BWT_v = _mm_and_si128(BWT_v, *(cfg->fm_masks_v + remaining_cnt));// mask characters we don't want to count + counts_v = _mm_subs_epi8(counts_v, BWT_v); + } + } else { // count backwards, subtracting + + for (i=landmark-15 ; i>pos; i-=16) { + BWT_v = *(__m128i*)(BWT+i); + BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); // each byte is all 1s if matching, all zeros otherwise + counts_v = _mm_subs_epi8(counts_v, BWT_v); // adds 1 for each matching byte (subtracting negative 1) + } + int remaining_cnt = 16 - (pos + 1 - i); + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); + BWT_v = _mm_and_si128(BWT_v, *(cfg->fm_reverse_masks_v + remaining_cnt));// mask characters we don't want to count + //tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2)); + counts_v = _mm_subs_epi8(counts_v, BWT_v); + } + } + } + + counts_v = _mm_xor_si128(counts_v, cfg->fm_neg128_v); //counts are stored in signed bytes, base -128. Move them to unsigned bytes + FM_GATHER_8BIT_COUNTS(counts_v,counts_v,counts_v); + + cnt += ( up_b == 1 ? -1 : 1) * ( _mm_extract_epi16(counts_v, 0) ); + } + + if (c==0 && pos >= fm->term_loc) { // I overcounted 'A' by one, because '$' was replaced with an 'A' + cnt--; + } + +#endif //#if defined (eslENABLE_SSE) + + + return cnt ; + +} + + + +/* Function: fm_getOccCountLT() + * Synopsis: Compute number of occurrences of characters with value meta; + int i; + const uint16_t * occCnts_b = fm->occCnts_b; + const uint32_t * occCnts_sb = fm->occCnts_sb; + const int b_pos = (pos+1) / meta->freq_cnt_b; //floor(pos/b_size) : the b count element preceding pos + const int sb_pos = (pos+1) / meta->freq_cnt_sb; //floor(pos/sb_size) : the sb count element preceding pos + + const int b_rel_pos = (pos+1) % meta->freq_cnt_b; // how close is pos to the boundary corresponding to b_pos + int up_b = 2*b_rel_pos/meta->freq_cnt_b; //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise + int landmark = ((b_pos+up_b)*(meta->freq_cnt_b)) - 1 ; + + + if (landmark >= fm->N) { // special case: for a count in the final block, just count from the bottom + up_b = 0; + landmark = (b_pos*(meta->freq_cnt_b)) - 1 ; + } + + // get the cnt stored at the nearest checkpoint + *cntlt = 0; + *cnteq = FM_OCC_CNT(sb, sb_pos, c ); + for (i=0; ifreq_cnt_sb / meta->freq_cnt_b)) { + *cnteq += FM_OCC_CNT(b, b_pos, c ) ;// b_pos has cumulative counts since the prior sb_pos - if sb_pos references the same count as b_pos, it'll doublecount + for (i=0; iN - 1 || landmark == -1 ) { + + const uint8_t * BWT = fm->BWT; + + + register __m128i c_v = cfg->fm_zeros_v; + register __m128i BWT_v; + register __m128i tmp_v; + register __m128i tmp2_v; + register __m128i counts_v_lt = cfg->fm_neg128_v; + register __m128i counts_v_eq = cfg->fm_neg128_v; // set to -128, offset to allow each 8-bit int to hold up to 255. + // so effectively, can guarantee holding 128*16 = 2048. + // Since I count from left or right, whichever is closer, this means + // we can support an occ_b interval of up to 4096 with guarantee of + // correctness. + if (meta->alph_type == fm_DNA ) { + + /* TODO: For 4-bit characters, it's easy to develop an alternative SSE function that will count + * instances fm_chars_v + j); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_lt); + } + c_v = *(cfg->fm_chars_v + c); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_eq); + + } + + int remaining_cnt = pos + 1 - i*4 ; + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + for (j=0; jfm_chars_v + j); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_lt); + } + c_v = *(cfg->fm_chars_v + c); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_eq); + + } + + } else { // count backwards, subtracting + for (i=(landmark/4)-15 ; i>(pos/4); i-=16) { + BWT_v = *(__m128i*)(BWT+i); + for (j=0; jfm_chars_v + j); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_lt); + } + c_v = *(cfg->fm_chars_v + c); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_eq); + + } + + int remaining_cnt = 64 - (pos + 1 - i*4); + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + for (j=0; jfm_chars_v + j); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_lt); + } + c_v = *(cfg->fm_chars_v + c); + FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array + FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_eq); + } + } +/* + } else if ( meta->alph_type == fm_DNA_full) { + c_v = *(cfg->fm_chars_v + c); + + if (!up_b) { // count forward, adding + for (i=1+floor(landmark/2.0) ; i+15<( (pos+1)/2); i+=16) { // keep running until i begins a run that shouldn't all be counted + BWT_v = *(__m128i*)(BWT+i); + FM_LT_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v_lt); + FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v_eq); + + } + int remaining_cnt = pos + 1 - i*2 ; + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + FM_LT_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + (remaining_cnt+1)/2)); // mask characters we don't want to count + tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_masks_v + remaining_cnt/2)); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v_lt); + + FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + (remaining_cnt+1)/2)); // mask characters we don't want to count + tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_masks_v + remaining_cnt/2)); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v_eq); + + } + + } else { // count backwards, subtracting + for (i=(landmark/2)-15 ; i>(pos/2); i-=16) { + BWT_v = *(__m128i*)(BWT+i); + FM_LT_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v_lt); + FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v_eq); + } + + int remaining_cnt = 32 - (pos + 1 - i*2); + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + FM_LT_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/2)); // mask characters we don't want to count + tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2)); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v_lt); + + FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v); + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/2)); // mask characters we don't want to count + tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2)); + FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v_eq); + + } + } +*/ + } else { //amino + if (!up_b) { // count forward, adding + for (i=1+landmark ; i+15<(pos+1); i+=16) { // keep running until i begins a run that shouldn't all be counted + BWT_v = *(__m128i*)(BWT+i); + tmp_v = _mm_cmplt_epi8(BWT_v, c_v); // each byte is all 1s if leq, all zeros otherwise + counts_v_lt = _mm_subs_epi8(counts_v_lt, tmp_v); // adds 1 for each matching byte (subtracting negative 1) + BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); // each byte is all 1s if eq, all zeros otherwise + counts_v_eq = _mm_subs_epi8(counts_v_eq, BWT_v); + } + int remaining_cnt = pos + 1 - i ; + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + tmp_v = _mm_cmplt_epi8(BWT_v, c_v); // each byte is all 1s if leq, all zeros otherwise + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + remaining_cnt/4)); + counts_v_lt = _mm_subs_epi8(counts_v_lt, tmp_v); // adds 1 for each matching byte (subtracting negative 1) + + BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); + BWT_v = _mm_and_si128(BWT_v, *(cfg->fm_masks_v + remaining_cnt/4));// mask characters we don't want to count + counts_v_eq = _mm_subs_epi8(counts_v_eq, BWT_v); + } + + } else { // count backwards, subtracting + for (i=landmark-15 ; i>pos; i-=16) { + BWT_v = *(__m128i*)(BWT+i); + tmp_v = _mm_cmplt_epi8(BWT_v, c_v); // each byte is all 1s if leq, all zeros otherwise + counts_v_lt = _mm_subs_epi8(counts_v_lt, tmp_v); // adds 1 for each matching byte (subtracting negative 1) + BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); // each byte is all 1s if eq, all zeros otherwise + counts_v_eq = _mm_subs_epi8(counts_v_eq, BWT_v); + } + + int remaining_cnt = 16 - (pos + 1 - i); + if (remaining_cnt > 0) { + BWT_v = *(__m128i*)(BWT+i); + tmp_v = _mm_cmplt_epi8(BWT_v, c_v); // each byte is all 1s if leq, all zeros otherwise + tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/4)); + counts_v_lt = _mm_subs_epi8(counts_v_lt, tmp_v); // adds 1 for each matching byte (subtracting negative 1) + + BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); + BWT_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/4));// mask characters we don't want to count + //tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2)); + counts_v_eq = _mm_subs_epi8(counts_v_eq, BWT_v); + } + } + + } + + if (c>0) { + counts_v_lt = _mm_xor_si128(counts_v_lt, cfg->fm_neg128_v); //counts are stored in signed bytes, base -128. Move them to unsigned bytes + FM_GATHER_8BIT_COUNTS(counts_v_lt,counts_v_lt,counts_v_lt); + (*cntlt) += ( up_b == 1 ? -1 : 1) * ( _mm_extract_epi16(counts_v_lt, 0) ); + } + + counts_v_eq = _mm_xor_si128(counts_v_eq, cfg->fm_neg128_v); + FM_GATHER_8BIT_COUNTS(counts_v_eq,counts_v_eq,counts_v_eq); + (*cnteq) += ( up_b == 1 ? -1 : 1) * ( _mm_extract_epi16(counts_v_eq, 0) ); + } + + + if ( pos >= fm->term_loc) { + if (c == 0) { // deal with the fact that '$' was replaced with an 'A' + (*cnteq)--; // I overcounted 'A' by one + (*cntlt) = 1; // '$' is lexicographically lower than 'A', but I didn't count it in the method above + } + } + +#endif //#if defined (eslENABLE_SSE) + + return eslOK ; + +} + diff --git a/bioinformaticsProject/hmmer/src/fm_ssv.c b/bioinformaticsProject/hmmer/src/fm_ssv.c new file mode 100644 index 0000000..6bb8066 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/fm_ssv.c @@ -0,0 +1,828 @@ +#include "p7_config.h" + +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_gumbel.h" +#include "esl_sq.h" + +#include "hmmer.h" + + +/* hit_sorter(): qsort's pawn, below */ +static int +FM_hit_sorter(const void *a, const void *b) +{ +// return 2 * (((FM_DIAG*)a)->sortkey > ((FM_DIAG*)b)->sortkey) - 1; // same as the test below + if ( ((FM_DIAG*)a)->sortkey > ((FM_DIAG*)b)->sortkey) return 1; + else if( ((FM_DIAG*)a)->sortkey < ((FM_DIAG*)b)->sortkey) return -1; + else return 0; +} + + + +/* Function: FM_mergeSeeds() + * + * Synopsis: Given collection of seeds, sort and merge overlapping ones + * + * Returns: on success. + */ +static int +FM_mergeSeeds(FM_DIAGLIST *seeds, int N, int ssv_length) { + int i; + int j = 0; + + FM_DIAG next; + int tmp; + int next_is_complement; + int curr_is_complement; + int curr_n; + int curr_k; + int curr_len; + int curr_end; + int curr_diagval; + + FM_DIAG *diags = seeds->diags; + + + if (seeds->count == 0) + return eslOK; + + //sort, first by direction, then N (position on database sequence), then K (model position) + qsort(diags, seeds->count, sizeof(FM_DIAG), FM_hit_sorter); + + next = diags[0]; + + curr_is_complement = (next.complementarity == p7_COMPLEMENT); + curr_n = next.n; + curr_k = next.k; + curr_len = next.length; + curr_end = curr_n + curr_len - 1; + curr_diagval = next.n - next.k; + + for( i=1; icount; i++) { + + next = diags[i]; + next_is_complement = (next.complementarity == p7_COMPLEMENT); + + if ( next_is_complement == curr_is_complement //same direction + && ( next.n - next.k) == curr_diagval //overlapping diagonals will share the same value of (n - k) + && next.n + next.length < curr_n + curr_len + ssv_length //overlapping, or close to it + ) { + + + //overlapping diags; extend, if appropriate + tmp = next.n + next.length - 1; + if (tmp > curr_end) { + curr_end = tmp; + curr_len = curr_end - curr_n + 1; + } + } else { + //doesn't overlap current diagonal, so store current... + diags[j].n = curr_n; + diags[j].k = curr_k; + diags[j].length = curr_end - curr_n + 1; + diags[j].complementarity = curr_is_complement; + diags[j].score = 0.0; + + // ... then start up a new one + curr_n = next.n; + curr_k = next.k; + curr_len = next.length; + curr_end = curr_n + curr_len - 1; + curr_diagval = next.n - next.k; + curr_is_complement = next_is_complement; + + j++; + } + } + // store final entry + diags[j].n = curr_n; + diags[j].k = curr_k; + diags[j].length = curr_end - curr_n + 1; + diags[j].score = 0.0; + diags[j].complementarity = curr_is_complement; + + seeds->count = j+1; + + return eslOK; + +} + + + /* Function: FM_backtrackSeed() + * + * Synopsis: Find position(s) in the FM index for a diagonal that meets score threshold + * + * Details: Follows the BWT/FM-index until finding an entry of the implicit + * suffix array that is found in the sampled SA. + + * + * Args: fmf - FM index for finding matches to the input sequence + * fm_cfg - FM-index meta data + * i - Single position in the BWT + * + * Returns: on success. + */ +static uint32_t +FM_backtrackSeed(const FM_DATA *fmf, const FM_CFG *fm_cfg, int i) { + int j = i; + int len = 0; + int c; + + while ( j != fmf->term_loc && (j % fm_cfg->meta->freq_SA)) { //go until we hit a position in the full SA that was sampled during FM index construction + c = fm_getChar( fm_cfg->meta->alph_type, j, fmf->BWT); + j = fm_getOccCount (fmf, fm_cfg, j-1, c); + j += abs((int)(fmf->C[c])); + len++; + } + + return len + (j==fmf->term_loc ? 0 : fmf->SA[ j / fm_cfg->meta->freq_SA ]) ; // len is how many backward steps we had to take to find a sampled SA position +} + +/* Function: FM_getPassingDiags() + * + * Synopsis: Find position(s) in the FM index for a seed that meets score threshold, keep list + * + * Details: This step determines the location of each instance of the seed + * and creates a diagonal for that instance + * + * Args: fmf - FM index for finding matches to the input sequence + * fmb - FM index for finding matches to the reverse of the input sequence + * fm_cfg - FM-index meta data + * k - Position of the diagonal in the model + * M - Length of the model + * depth - Length of the diagonal + * fm_direction - which FM is in use for this diag + * model_direction - forward or reverse path over the model + * complementarity - top or bottom strand + * interval - FM-index interval + * seeds - RETURN: collection of threshold-passing windows + * + * Returns: on success. + */ +static int +FM_getPassingDiags(const FM_DATA *fmf, const FM_CFG *fm_cfg, + int k, int M, float sc, int depth, int fm_direction, + int model_direction, int complementarity, + FM_INTERVAL *interval, + FM_DIAGLIST *seeds + ) +{ + int i; + FM_DIAG *seed; + + //iterate over the forward interval, for each entry backtrack until hitting a sampled suffix array entry + for (i = interval->lower; i<= interval->upper; i++) { + + seed = fm_newSeed(seeds); + seed->k = k; + seed->length = depth; + + if (complementarity == p7_NOCOMPLEMENT ) + seed->n = fmf->N - FM_backtrackSeed(fmf, fm_cfg, i) - depth - 1; + else + seed->n = FM_backtrackSeed(fmf, fm_cfg, i) ; + + seed->complementarity = complementarity; + + /* seed->n corresponds to the start of the seed in terms of the + * target sequence, in a forward direction. seed->k holds the + * model position at the beginning of that seed. If model_direction + * is fm_reverse, the ->n value is from the beginning of the revcomp, + */ + if (model_direction == fm_forward) + seed->k -= (depth - 1) ; + + + seed->sortkey = (int)( complementarity == p7_COMPLEMENT ? fmf->N + 1 : 0) // makes complement seeds cover a different score range than non-complements + + ((int)(seed->n) - (int)(seed->k) ) // unique diagonal within the complement/non-complement score range + + ((double)(seed->k)/(double)(M+1)) ; // fractional part, used to sort seeds sharing a diagonal + + + } + + return eslOK; +} + +/* Function: FM_Recurse() + * + * Synopsis: Recursively traverse/prune a string trie, testing all strings vs the model + * + * Details: This is the heart of the FM SSV method. Given a path P on the + * trie, we keep track of a compact list of all not-yet-pruned + * diagonals in the DP table of the string S corresponding to + * P against the model. The preserved diagonals might be for + * either a forward or backwards pass over the model and a pass + * over either the top or bottom (reverse complemented) strand + * of the target sequences. + * + * Args: depth - how long is the current path + * Kp - alphabet size (including ambiguity) + * fmf - FM index for finding matches to the input sequence + * fmb - FM index for finding matches to the reverse of the input sequence + * fm_cfg - FM-index meta data + * ssvdata - compact data required for computing SSV scores + * sc_threshFM - Score that a short diagonal must pass to warrant extension to a full diagonal + * dp_pairs - Compact representation of the surviving diagonals in the DP table + * first - The index of the first entry in dp_pairs for the current column of the DP table + * last - The index of the last entry in dp_pairs for the current column of the DP table + * interval_1 - FM-index interval - used for the standard backwards pass along the BWT (fmf) + * interval_2 - FM-index interval - used for the forward pass along the BWT (fmb) + * seeds - RETURN: collection of threshold-passing windows + * seq - preallocated char* used to capture and print the string for the current path - for debugging only + * + * Returns: on success. + */ +static int +FM_Recurse( int depth, int Kp, int fm_direction, + const FM_DATA *fmf, const FM_DATA *fmb, + const FM_CFG *fm_cfg, + const P7_SCOREDATA *ssvdata, uint8_t *consensus, + float sc_threshFM, + FM_DP_PAIR *dp_pairs, int first, int last, + FM_INTERVAL *interval_1, FM_INTERVAL *interval_2, + FM_DIAGLIST *seeds +// , char *seq + ) +{ + + + float sc, next_score; + + int c, i, k; + FM_INTERVAL interval_1_new, interval_2_new; + uint8_t positive_run = 0; + uint8_t consec_consensus = 0; + uint8_t cons_c = 0; + + for (c=0; c< fm_cfg->meta->alph_size; c++) {//acgt + int dppos = last; + //seq[depth-1] = fm_cfg->meta->alph[c]; + //seq[depth] = '\0'; + + for (i=first; i<=last; i++) { // for each surviving diagonal from the previous round + + if (dp_pairs[i].model_direction == fm_forward) + k = dp_pairs[i].pos + 1; + else //fm_backward + k = dp_pairs[i].pos - 1; + + if (dp_pairs[i].complementarity == p7_COMPLEMENT) { + next_score = ssvdata->ssv_scores_f[k*Kp + fm_cfg->meta->compl_alph[c]]; + cons_c = fm_cfg->meta->compl_alph[consensus[k]]; + } else { + next_score = ssvdata->ssv_scores_f[k*Kp + c]; + cons_c = consensus[k]; + } + + sc = dp_pairs[i].score + next_score; + positive_run = (next_score > 0 ? dp_pairs[i].consec_pos + 1 : 0); + consec_consensus = (c == cons_c ? dp_pairs[i].consec_consensus+1 : 0); + + if ( sc >= sc_threshFM + || (fm_cfg->consensus_match_req > 0 && consec_consensus == fm_cfg->consensus_match_req) + ) { // this is a seed I want to extend + + interval_1_new.lower = interval_1->lower; + interval_1_new.upper = interval_1->upper; + + if (fm_direction == fm_forward) { + if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string + fm_updateIntervalReverse( fmf, fm_cfg, c, &interval_1_new); + + if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) { //no use passing a non-existent string + FM_getPassingDiags(fmf, fm_cfg, k, ssvdata->M, sc, depth, fm_forward, + dp_pairs[i].model_direction, dp_pairs[i].complementarity, + &interval_1_new, seeds); + } + } else { // fm_direction == fm_reverse + //searching for forward matches on the FM-index + interval_2_new.lower = interval_2->lower; + interval_2_new.upper = interval_2->upper; + + //searching for reverse matches on the FM-index + if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string + fm_updateIntervalForward( fmb, fm_cfg, c, &interval_1_new, &interval_2_new); + + if ( interval_2_new.lower >= 0 && interval_2_new.lower <= interval_2_new.upper ) { //no use passing a non-existent string + FM_getPassingDiags(fmf, fm_cfg, k, ssvdata->M, sc, depth, fm_backward, + dp_pairs[i].model_direction, dp_pairs[i].complementarity, + &interval_2_new, seeds); + } + } + + } else if ( sc <= 0 //some other path in the string enumeration tree will do the job + || depth == fm_cfg->max_depth //can't extend anymore, 'cause we've reached the pruning length + || ( dp_pairs[i].model_direction == fm_forward && k == ssvdata->M) //can't extend anymore, 'cause we're at the end of the model, going forward + || ( dp_pairs[i].model_direction == fm_backward && k == 1 ) //can't extend anymore, 'cause we're at the beginning of the model, going backwards + || (depth == dp_pairs[i].score_peak_len + fm_cfg->drop_max_len) //too many consecutive positions with a negative total score contribution (sort of like Xdrop) + || (depth > 4 && depth > consec_consensus && (float)sc/(float)depth < fm_cfg->score_density_req) //score density is too low (don't bother checking in the first couple slots + || (depth >= 0.7*fm_cfg->max_depth && depth > consec_consensus && (float)sc/(float)depth < sc_threshFM/(float)(fm_cfg->max_depth)) // if we're most of the way across the sequence, and score density is too low, abort -- if the density on the other side is high enough, I'll find it on the reverse sweep + || (dp_pairs[i].max_consec_pos < fm_cfg->consec_pos_req && //a seed is expected to have at least one run of positive-scoring matches at least length consec_pos_req; if it hasn't, (see Tue Nov 23 09:39:54 EST 2010) + (fm_cfg->consec_pos_req - positive_run) == (fm_cfg->max_depth - depth + 1) // if we're close to the end of the sequence, abort -- if that end does have sufficiently long all-positive run, I'll find it on the reverse sweep + ) + || (dp_pairs[i].model_direction == fm_forward && + ( (depth > (fm_cfg->max_depth - 10)) && sc + ssvdata->opt_ext_fwd[k][fm_cfg->max_depth-depth-1] < sc_threshFM) //can't hit threshold, even with best possible forward extension up to length ssv_req + ) + || (dp_pairs[i].model_direction == fm_backward && + ( (depth > (fm_cfg->max_depth - 10)) && sc + ssvdata->opt_ext_rev[k-1][fm_cfg->max_depth-depth-1] < sc_threshFM ) //can't hit threshold, even with best possible extension up to length ssv_req + ) + + ) + { + + //do nothing - it's been pruned + + } else { // it's possible to extend this diagonal and reach the threshold score + + dppos++; + + dp_pairs[dppos].pos = k; + dp_pairs[dppos].score = sc; + dp_pairs[dppos].model_direction = dp_pairs[i].model_direction; + dp_pairs[dppos].complementarity = dp_pairs[i].complementarity; + + if (sc > dp_pairs[i].max_score) { + dp_pairs[dppos].max_score = sc; + dp_pairs[dppos].score_peak_len = depth; + } else { + dp_pairs[dppos].max_score = dp_pairs[i].max_score; + if (sc >= dp_pairs[i].max_score - fm_cfg->drop_lim) + dp_pairs[dppos].score_peak_len = depth; // close enough to call it a new peak + else + dp_pairs[dppos].score_peak_len = dp_pairs[i].score_peak_len; + } + + dp_pairs[dppos].consec_pos = positive_run; + dp_pairs[dppos].max_consec_pos = ESL_MAX( positive_run, dp_pairs[i].max_consec_pos); + dp_pairs[dppos].consec_consensus = consec_consensus; + } + } + + if ( dppos > last ){ // at least one diagonal that might reach threshold score, but hasn't yet, so extend + + interval_1_new.lower = interval_1->lower; + interval_1_new.upper = interval_1->upper; + + if (fm_direction == fm_forward) { + + if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string + fm_updateIntervalReverse( fmf, fm_cfg, c, &interval_1_new); + + if ( interval_1_new.lower < 0 || interval_1_new.lower > interval_1_new.upper ) { //that string doesn't exist in fwd index + continue; + } + FM_Recurse(depth+1, Kp, fm_direction, + fmf, fmb, fm_cfg, ssvdata, consensus, + sc_threshFM, dp_pairs, last+1, dppos, + &interval_1_new, NULL, + seeds + //, seq + ); + + + } else { // fm_direction == fm_reverse + + interval_2_new.lower = interval_2->lower; + interval_2_new.upper = interval_2->upper; + + if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string + fm_updateIntervalForward( fmb, fm_cfg, c, &interval_1_new, &interval_2_new); + + + if ( interval_1_new.lower < 0 || interval_1_new.lower > interval_1_new.upper ) { //that string doesn't exist in reverse index + continue; + } + FM_Recurse(depth+1, Kp, fm_direction, + fmf, fmb, fm_cfg, ssvdata, consensus, + sc_threshFM, dp_pairs, last+1, dppos, + &interval_1_new, &interval_2_new, + seeds + //, seq + ); + + } + + } + + } + + return eslOK; +} + +/* Function: FM_getSeeds() + * + * Synopsis: Find short diagonal seeds with score above a modest threshold. + * + * Details: Given FM configuration , model scoring data , + * both forward and backward FM indexes (, ), and + * a score threshold , find all seeds in the FMs + * that meet the threshold, and place them in the container + * . + * + * This involves building diagonals in both forward and reverse + * orientation relative to the model, because the pruning method + * includes a score density calculation - sometimes that density + * is only found on one end of the hit. This function merely + * kickstarts the task of traversing over a trie of all strings + * up to some fixed length looking for threshold-passing + * diagonals - FM_Recurse() does the hard work. + * + * Args: fmf - FM index for finding matches to the input sequence + * fmb - FM index for finding matches to the reverse of the input sequence + * fm_cfg - FM-index meta data + * ssvdata - compact data required for computing SSV scores + * Kp - Alphabet size (including ambiguity chars) + * sc_threshFM - Score that a short diagonal must pass to warrant extension to a full diagonal + * strands - p7_STRAND_TOPONLY | p7_STRAND_BOTTOMONLY | p7_STRAND_BOTH + * seeds - RETURN: collection of threshold-passing windows + * + * Returns: on success. + */ +static int FM_getSeeds ( const FM_DATA *fmf, const FM_DATA *fmb, + const FM_CFG *fm_cfg, const P7_SCOREDATA *ssvdata, + uint8_t *consensus, int Kp, float sc_threshFM, + int strands, FM_DIAGLIST *seeds + ) +{ + FM_INTERVAL interval_f1, interval_f2, interval_bk; + int i, k; + int status; + float sc; + //char *seq; + + FM_DP_PAIR *dp_pairs_fwd; + FM_DP_PAIR *dp_pairs_rev; + + ESL_ALLOC(dp_pairs_fwd, ssvdata->M * fm_cfg->max_depth * sizeof(FM_DP_PAIR)); // guaranteed to be enough to hold all diagonals + ESL_ALLOC(dp_pairs_rev, ssvdata->M * fm_cfg->max_depth * sizeof(FM_DP_PAIR)); + + //ESL_ALLOC(seq, 50*sizeof(char)); + + for (i=0; imeta->alph_size; i++) { + int fwd_cnt=0; + int rev_cnt=0; + interval_f1.lower = interval_f2.lower = interval_bk.lower = fmf->C[i]; + interval_f1.upper = interval_f2.upper = interval_bk.upper = abs((int)(fmf->C[i+1]))-1; + + if (interval_f1.lower<0 ) //none of that character found + continue; + + // This is here for debugging purposes only. Feel free to comment out. + //seq[0] = fm_cfg->meta->alph[i]; + //seq[1] = '\0'; + + // Fill in a DP column for the character c, (compressed so that only positive-scoring entries are kept) + // There will be 4 DP columns for each character, (1) fwd-std, (2) fwd-complement, (3) rev-std, (4) rev-complement + for (k = 1; k <= ssvdata->M; k++) // there's no need to bother keeping an entry starting at the last position (gm->M) + { + + if (strands != p7_STRAND_BOTTOMONLY) { + sc = ssvdata->ssv_scores_f[k*Kp + i]; + if (sc>0) { // we'll extend any positive-scoring diagonal + /* fwd on model, fwd on FM (really, reverse on FM, but the FM is on a reversed string, so its fwd*/ + if (k < ssvdata->M-3) { // don't bother starting a forward diagonal so close to the end of the model + //Forward pass on the FM-index + dp_pairs_fwd[fwd_cnt].pos = k; + dp_pairs_fwd[fwd_cnt].score = sc; + dp_pairs_fwd[fwd_cnt].max_score = sc; + dp_pairs_fwd[fwd_cnt].score_peak_len = 1; + dp_pairs_fwd[fwd_cnt].consec_pos = 1; + dp_pairs_fwd[fwd_cnt].max_consec_pos = 1; + dp_pairs_fwd[fwd_cnt].consec_consensus = (i==consensus[k] ? 1 : 0); + dp_pairs_fwd[fwd_cnt].complementarity = p7_NOCOMPLEMENT; + dp_pairs_fwd[fwd_cnt].model_direction = fm_forward; + fwd_cnt++; + } + + /* rev on model, rev on FM (the FM is on the unreversed string)*/ + if (k > 4) { // don't bother starting a reverse diagonal so close to the start of the model + dp_pairs_rev[rev_cnt].pos = k; + dp_pairs_rev[rev_cnt].score = sc; + dp_pairs_rev[rev_cnt].max_score = sc; + dp_pairs_rev[rev_cnt].score_peak_len = 1; + dp_pairs_rev[rev_cnt].consec_pos = 1; + dp_pairs_rev[rev_cnt].max_consec_pos = 1; + dp_pairs_rev[rev_cnt].consec_consensus = (i==consensus[k] ? 1: 0); + dp_pairs_rev[rev_cnt].complementarity = p7_NOCOMPLEMENT; + dp_pairs_rev[rev_cnt].model_direction = fm_backward; + rev_cnt++; + } + } + } + + + // Now do the reverse complement + if (strands != p7_STRAND_TOPONLY) { + sc = ssvdata->ssv_scores_f[k*Kp + fm_cfg->meta->compl_alph[i]]; + if (sc>0) { // we'll extend any positive-scoring diagonal + /* rev on model, fwd on FM (really, reverse on FM, but the FM is on a reversed string, so its fwd*/ + if (k > 4) { // don't bother starting a reverse diagonal so close to the start of the model + dp_pairs_fwd[fwd_cnt].pos = k; + dp_pairs_fwd[fwd_cnt].score = sc; + dp_pairs_fwd[fwd_cnt].max_score = sc; + dp_pairs_fwd[fwd_cnt].score_peak_len = 1; + dp_pairs_fwd[fwd_cnt].consec_pos = 1; + dp_pairs_fwd[fwd_cnt].max_consec_pos = 1; + dp_pairs_fwd[fwd_cnt].consec_consensus = (i==consensus[k] ? 1: 0); + dp_pairs_fwd[fwd_cnt].complementarity = p7_COMPLEMENT; + dp_pairs_fwd[fwd_cnt].model_direction = fm_backward; + fwd_cnt++; + } + + /* fwd on model, rev on FM (the FM is on the unreversed string - complemented)*/ + if (k < ssvdata->M-3) { // don't bother starting a forward diagonal so close to the end of the model + dp_pairs_rev[rev_cnt].pos = k; + dp_pairs_rev[rev_cnt].score = sc; + dp_pairs_rev[rev_cnt].max_score = sc; + dp_pairs_rev[rev_cnt].score_peak_len = 1; + dp_pairs_rev[rev_cnt].consec_pos = 1; + dp_pairs_rev[rev_cnt].max_consec_pos = 1; + dp_pairs_rev[rev_cnt].consec_consensus = (i==consensus[k] ? 1: 0); + dp_pairs_rev[rev_cnt].complementarity = p7_COMPLEMENT; + dp_pairs_rev[rev_cnt].model_direction = fm_forward; + rev_cnt++; + } + + } + } + } + + + FM_Recurse ( 2, Kp, fm_forward, + fmf, fmb, fm_cfg, ssvdata, consensus, + sc_threshFM, dp_pairs_fwd, 0, fwd_cnt-1, + &interval_f1, NULL, + seeds + //, seq + ); + + FM_Recurse ( 2, Kp, fm_backward, + fmf, fmb, fm_cfg, ssvdata, consensus, + sc_threshFM, dp_pairs_rev, 0, rev_cnt-1, + &interval_bk, &interval_f2, + seeds + //, seq + ); + } + + + //merge duplicates + FM_mergeSeeds(seeds, fmf->N, fm_cfg->ssv_length); + + free (dp_pairs_fwd); + free (dp_pairs_rev); + //if (seq) free(seq); + return eslOK; + +ERROR: + return eslEMEM; +} + + +/* Function: FM_window_from_diag() + * + * Synopsis: Create a hit window, with sequence-based coordinates, from a diagonal + * holding FM-based coordinates + * + * Details: The submitted diagonal is in FM-based coordinates. Since a single + * FM index might be the concatenation of many sequences in the + * original, this needs to be converted to coordinates in the + * original sequence space (get sequence ID and positions). A diag + * might span multiple input strings, so it is broken up as + * necessary (usually, only one of these will pan out as a legit + * diagonal, but we'll let the next stage sort that out). + * + * Args: diag - The FM-based diagonal + * fm - Data for the FM-index. + * meta - FM metadata from the config + * windowlist - RETURN: collection of SSV-passing windows, with meta data required for downstream stages. + * + * Returns: on success. + */ +static int +FM_window_from_diag (FM_DIAG *diag, const FM_DATA *fm, const FM_METADATA *meta, P7_HMM_WINDOWLIST *windowlist) +{ + uint32_t seg_id; + uint64_t seg_pos; + // if diag->complementarity == p7_NOCOMPLEMENT, these positions are in context of FM->T + // otherwise, they're in context of revcomp(FM->T). + + fm_getOriginalPosition (fm, meta, 0, diag->length, diag->complementarity, diag->n, &seg_id, &seg_pos); + + p7_hmmwindow_new(windowlist, seg_id, seg_pos, diag->n, diag->k+diag->length-1, diag->length, diag->score, diag->complementarity, + meta->seq_data[seg_id].length); + + return eslOK; +} + + +/* Function: FM_extendSeed() + * Synopsis: Extend seed in both diagonal directions, capturing the score + * + * Details: Given a diagonal seed found using FM-index traversal (typically + * around length 16, with a modest score, but not necessarily enough + * to pass the SSV threshold), establish a window around that seed, + * and extend it to maximize score (with the constraint of not going + * through a long negative scoring stretch). Capture the score of + * this extended diagonal. + * + * Args: diag - The initial seed + * fm - Data for the FM-index (only need the forward FM from the + * calling function). + * ssvdata - Compact data required for computing MSV (SSV) scores + * cfg - FM-index meta data + * tmp_sq - Sequence object that this function uses for calculations. + * Must be pre-allocated. + * + * Returns: on success. + */ +static int +FM_extendSeed(FM_DIAG *diag, const FM_DATA *fm, const P7_SCOREDATA *ssvdata, FM_CFG *cfg, ESL_SQ *tmp_sq) +{ + uint64_t k,n; + int32_t model_start, model_end; + int64_t target_start, target_end; + int64_t hit_start, max_hit_start, max_hit_end; + float sc; + float max_sc = 0.0; + int c; + // this will allow a diagonal to be extended at least 10 bases in each direction, an up to as much as required to allow a diag of length cfg->ssv_length + int extend = ESL_MAX(10, cfg->ssv_length - diag->length); + + //this determines the start and end of the window that we think it's possible we'll extend to the window to (which determines the sequence we'll extract) + model_start = ESL_MAX ( 1, diag->k - extend + 1) ; + model_end = ESL_MIN( ssvdata->M, diag->k + diag->length + extend - 1 ); + target_start = diag->n - (diag->k - model_start); + target_end = diag->n + (model_end - diag->k); + + if (target_start < 0) { + model_start -= target_start; + target_start = 0; + } + if (target_end > fm->N-2) { + model_end -= target_end - (fm->N-2); + target_end = fm->N-2; + } + + fm_convertRange2DSQ(fm, cfg->meta, target_start, target_end-target_start+1, diag->complementarity, tmp_sq, FALSE ); + + + //This finds the highest-scoring sub-diag in the just-determined potential diagonal range. + k = model_start; + n = 1; + sc = 0.0; + + hit_start = n; + for ( ; k <= model_end; k++, n++) { + c = tmp_sq->dsq[n]; + + sc += ssvdata->ssv_scores_f[k*tmp_sq->abc->Kp + c]; + + if (sc < 0) { + sc = 0; + hit_start = n+1; + } else if (sc > max_sc) { + max_sc = sc; + max_hit_start = hit_start; + max_hit_end = n; + } + } + + + diag->n = target_start + max_hit_start - 1; + diag->k = model_start + max_hit_start - 1; + diag->length = max_hit_end - max_hit_start + 1; + diag->score = max_sc; + + return eslOK; +} + + +/* Function: p7_SSVFM_longlarget() + * Synopsis: Finds windows with SSV scores above given threshold, using FM-index + * + * Details: Uses FM-index to find high-scoring diagonals (seeds), then extends those + * seeds to maximal scoring diagonals (no gaps). Windows meeting the SSV + * scoring threshold (usually score s.t. p=0.02) are captured, and passed + * on to the Viterbi and Forward stages of the pipeline. + * + * Args: om - optimized profile + * nu - configuration: expected number of hits (use 2.0 as a default) + * bg - the background model, required for translating a P-value threshold into a score threshold + * F1 - p-value below which a window is captured as being above threshold + * fmf - data for forward traversal of the FM-index + * fmb - data for backward traversal of the FM-index + * fm_cfg - FM-index meta data + * ssvdata - compact data required for computing SSV scores + * strands - p7_STRAND_TOPONLY | p7_STRAND_BOTTOMONLY | p7_STRAND_BOTH + * windowlist - RETURN: collection of SSV-passing windows, with meta data required for downstream stages. + * + * Returns: on success. + * + * Throws: if trouble allocating memory for seeds + */ +int +p7_SSVFM_longlarget( P7_OPROFILE *om, float nu, P7_BG *bg, double F1, + const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg, const P7_SCOREDATA *ssvdata, + int strands, P7_HMM_WINDOWLIST *windowlist) +{ + float sc_thresh, sc_threshFM; + float invP; + //, invP_FM; + float nullsc; + + int i; + + float tloop = logf((float) om->max_length / (float) (om->max_length+3)); + float tloop_total = tloop * om->max_length; + float tmove = logf( 3.0f / (float) (om->max_length+3)); + float tbmk = logf( 2.0f / ((float) om->M * (float) (om->M+1))); + float tec = logf(1.0f / nu); + FM_DIAG *diag; + + ESL_SQ *tmp_sq; + uint8_t *consensus; + + + FM_DIAGLIST seeds; + int status; + status = fm_initSeeds(&seeds); + if (status != eslOK) + ESL_EXCEPTION(eslEMEM, "Error allocating memory for seed list\n"); + + /* convert the consensus to a collection of ints, so I can test for runs of identity to the consensus */ + ESL_ALLOC(consensus, (om->M+1)*sizeof(uint8_t) ); + for (i=1; i<=om->M; i++) + consensus[i] = om->abc->inmap[(int)(om->consensus[i])]; + + + /* Set false target length. This is a conservative estimate of the length of window that'll + * soon be passed on to later phases of the pipeline; used to recover some bits of the score + * that we would miss if we left length parameters set to the full target length */ + p7_oprofile_ReconfigMSVLength(om, om->max_length); + p7_bg_SetLength(bg, om->max_length); + p7_bg_NullOne (bg, NULL, om->max_length, &nullsc); + + tmp_sq = esl_sq_CreateDigital(om->abc); + + /* + * Computing the score required to let P meet the F1 prob threshold + * In original code, converting from an SSV score S (the score getting + * to state C) to a probability goes like this: + * S = XMX(L,p7G_C) + * usc = S + tmove + tloop_total + * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda) + * and XMX(C) was the diagonal score + tmove + tbmk + tec + * and we're computing the threshold score S, so reverse it: + * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda) + * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda) + * S = usc - tmove - tloop_total - tmove - tbmk - tec + * + * + * Here, I compute threshold with length model based on max_length. Usually, the + * length of a window returned by this scan will be 2*max_length-1 or longer. Doesn't + * really matter - in any case, both the bg and om models will change with roughly + * 1 bit for each doubling of the length model, so they offset. + */ + + invP = esl_gumbel_invsurv(F1, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + sc_thresh = (invP * eslCONST_LOG2) + nullsc - (tmove + tloop_total + tmove + tbmk + tec); + + +// invP_FM = esl_gumbel_invsurv(0.5, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); +// sc_threshFM = ESL_MAX(fm_cfg->scthreshFM, (invP_FM * eslCONST_LOG2) + nullsc - (tmove + tloop_total + tmove + tbmk + tec) ) ; + sc_threshFM = fm_cfg->scthreshFM * fm_cfg->sc_thresh_ratio; + + //get diagonals that score above sc_threshFM + status = FM_getSeeds(fmf, fmb, fm_cfg, ssvdata, consensus, om->abc->Kp, sc_threshFM, strands, &seeds ); + if (status != eslOK) + ESL_EXCEPTION(eslEMEM, "Error allocating memory for seed computation\n"); + + //now extend those diagonals to find ones scoring above sc_thresh + for(i=0; iscore >= sc_thresh) + FM_window_from_diag(diag, fmf, fm_cfg->meta, windowlist ); + + } + + esl_sq_Destroy(tmp_sq); + + free(seeds.diags); + free(consensus); + return eslEOF; + +ERROR: + ESL_EXCEPTION(eslEMEM, "Error allocating memory for SSVFM longtarget\n"); + +} +/*------------------ end, FM_MSV() ------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/generic_decoding.c b/bioinformaticsProject/hmmer/src/generic_decoding.c new file mode 100644 index 0000000..7679c70 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_decoding.c @@ -0,0 +1,481 @@ +/* Posterior decoding algorithms; generic versions. + * + * Contents: + * 1. Posterior decoding algorithms. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + */ +#include "p7_config.h" + +#include +#include "easel.h" +#include "hmmer.h" + +/***************************************************************** + * 1. Posterior decoding algorithms. + *****************************************************************/ + +/* Function: p7_GDecoding() + * Synopsis: Posterior decoding of residue assignments. + * + * Purpose: Calculates a posterior decoding of the residues in a + * target sequence, given profile and filled Forward + * and Backward matrices , for the profile + * aligned to that target sequence. The resulting posterior + * decoding is stored in a DP matrix , provided by the + * caller. + * + * Each residue must have been emitted by match state + * <1..M>, insert state <1..M-1>, or an NN, CC, or JJ loop + * transition. For dp>, xmx>, + * is the probability that match emitted + * residue ; is the probability that insert + * emitted residue ; ,, + * are the probabilities that residue was + * emitted on an NN, CC, or JJ transition. The sum over all + * these possibilities for a given residue is 1.0. + * + * Thus the only nonzero entries in a posterior decoding matrix + * are , , (residue L + * can't be emitted by N), (residue 1 can't be + * emitted by C), and (residues 1,L can't be + * emitted by J). + * + * In particular, row i=0 is unused (all zeros) in a pp + * matrix; the null2 calculation will take advantage of + * this by using the zero row for workspace. + * + * The caller may pass the Backward matrix as , + * in which case will be overwritten with + * . However, the caller may \emph{not} overwrite + * this way; an <(i-1)> dependency in the calculation of + * NN, CC, JJ transitions prevents this. + * + * Args: gm - profile (must be the same that was used to fill , ). + * fwd - filled Forward matrix + * bck - filled Backward matrix + * pp - RESULT: posterior decoding matrix. + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + * + * Note: Burns time renormalizing each row. If you don't do this, + * probabilities will have an error of +/- 0.001 or so, creeping + * in from error in FLogsum()'s table approximation and even + * in log() and exp() themselves; including "probabilities" + * up to ~1.001. Though this isn't going to break anything + * in normal use, it does drive the unit tests wild; the SSE + * implementation is more accurate, and unit tests that try + * to compare SSE and generic results will see differences, + * some sufficient to alter the choice of OA traceback. + * + */ +int +p7_GDecoding(const P7_PROFILE *gm, const P7_GMX *fwd, P7_GMX *bck, P7_GMX *pp) +{ + float **dp = pp->dp; + float *xmx = pp->xmx; + int L = fwd->L; + int M = gm->M; + int i,k; + float overall_sc = fwd->xmx[p7G_NXCELLS*L + p7G_C] + gm->xsc[p7P_C][p7P_MOVE]; + float denom; + + pp->M = M; + pp->L = L; + + XMX(0, p7G_E) = 0.0; + XMX(0, p7G_N) = 0.0; + XMX(0, p7G_J) = 0.0; + XMX(0, p7G_B) = 0.0; + XMX(0, p7G_C) = 0.0; + for (k = 0; k <= M; k++) + MMX(0,k) = IMX(0,k) = DMX(0,k) = 0.0; + + for (i = 1; i <= L; i++) + { + denom = 0.0; + MMX(i,0) = IMX(i,0) = DMX(i,0) = 0.0; + for (k = 1; k < M; k++) + { + MMX(i,k) = expf(fwd->dp[i][k*p7G_NSCELLS + p7G_M] + bck->dp[i][k*p7G_NSCELLS + p7G_M] - overall_sc); denom += MMX(i,k); + IMX(i,k) = expf(fwd->dp[i][k*p7G_NSCELLS + p7G_I] + bck->dp[i][k*p7G_NSCELLS + p7G_I] - overall_sc); denom += IMX(i,k); + DMX(i,k) = 0.; + } + MMX(i,M) = expf(fwd->dp[i][M*p7G_NSCELLS + p7G_M] + bck->dp[i][M*p7G_NSCELLS + p7G_M] - overall_sc); denom += MMX(i,M); + IMX(i,M) = 0.; + DMX(i,M) = 0.; + + /* order doesn't matter. note that this whole function is trivially simd parallel */ + XMX(i,p7G_E) = 0.; + XMX(i,p7G_N) = expf(fwd->xmx[p7G_NXCELLS*(i-1) + p7G_N] + bck->xmx[p7G_NXCELLS*i + p7G_N] + gm->xsc[p7P_N][p7P_LOOP] - overall_sc); + XMX(i,p7G_J) = expf(fwd->xmx[p7G_NXCELLS*(i-1) + p7G_J] + bck->xmx[p7G_NXCELLS*i + p7G_J] + gm->xsc[p7P_J][p7P_LOOP] - overall_sc); + XMX(i,p7G_B) = 0.; + XMX(i,p7G_C) = expf(fwd->xmx[p7G_NXCELLS*(i-1) + p7G_C] + bck->xmx[p7G_NXCELLS*i + p7G_C] + gm->xsc[p7P_C][p7P_LOOP] - overall_sc); + denom += XMX(i,p7G_N) + XMX(i,p7G_J) + XMX(i,p7G_C); + + denom = 1.0 / denom; + for (k = 1; k < M; k++) { MMX(i,k) *= denom; IMX(i,k) *= denom; } + MMX(i,M) *= denom; + XMX(i,p7G_N) *= denom; + XMX(i,p7G_J) *= denom; + XMX(i,p7G_C) *= denom; + } + return eslOK; +} + +/* Function: p7_GDomainDecoding() + * Synopsis: Posterior decoding of domain location. + * + * Purpose: The caller has calculated Forward and Backward matrices + * and for model aligned to a target + * sequence. (The target sequence doesn't need to be + * provided, because all we need to know is its length + * , and that's available in either of the two DP + * matrices.) + * + * We use this information to calculate the posterior + * probabilities that we're in a begin state B, end state + * E, or any core model state {M,D,I} at each target + * sequence position . + * + * This information is stored in three arrays in + * . This routine expects that this storage has + * already been (re)allocated appropriately for a target + * seq of length . + * + * btot[i]> stores the cumulative expectation + * $\sum_1^i$ of the number of i's that were emitted (by an + * Mk state) immediately after a B : i.e., the expected + * number of times domains have started at or before + * position i. + * + * etot[i]> stores the cumulative expectation + * $\sum_1^i$ of the number of i's that were emitted (by + * an Mk or Dk state) and immediately followed by an end + * transition to E : i.e., the expected number of times + * domains have ended at or before position i. + * + * mocc[i]> stores the probability that residue i is + * emitted by the core model, as opposed to the flanking + * N,C,J states : i.e., the probability that i is in a + * domain. + * + * Upon return, each of these arrays has been made, and + * L> has * been set. + * + * Args: gm - profile + * fwd - filled Forward matrix + * bck - filled Backward matrix + * ddef - container for the results. + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + * + * Notes: Ideas for future optimization: + * + * - The calculations only need to access the xmx[CNJBE][i] special + * states in the fwd, bck matrices, so we could use + * streamlined (checkpointed?) matrices that only maintain + * this info over all i. This would be a step in letting + * us do domain parses in linear memory. + * + * - indeed, the , , and arrays could be made + * sparse; on long target sequences, we expect long + * stretches of negligible posterior probability that + * we're in the model or using a begin or end + * transition. + * + * - indeed indeed, we don't really need to store the , , + * and arrays at all. We can define regions in a + * single pass in O(1) extra memory, straight from the + * , matrices, if we have to (xref + * J2/101). is + * already implemented in a way to make this easy. We're + * not doing that for now, partly for clarity in the code, + * and partly because I think we'll want to output the + * , , and arrays -- this view of the + * posterior decoding of the domain structure of a target + * sequence will be useful. Also, it's a lot easier to + * implement the trigger if + * these arrays are available. + */ +int +p7_GDomainDecoding(const P7_PROFILE *gm, const P7_GMX *fwd, const P7_GMX *bck, P7_DOMAINDEF *ddef) +{ + int L = fwd->L; + float overall_logp = fwd->xmx[p7G_NXCELLS*L + p7G_C] + gm->xsc[p7P_C][p7P_MOVE]; + float njcp; + int i; + + for (i = 1; i <= L; i++) + { + ddef->btot[i] = ddef->btot[i-1] + exp(fwd->xmx[(i-1)*p7G_NXCELLS+p7G_B] + bck->xmx[(i-1)*p7G_NXCELLS+p7G_B] - overall_logp); + ddef->etot[i] = ddef->etot[i-1] + exp(fwd->xmx[i *p7G_NXCELLS+p7G_E] + bck->xmx[i *p7G_NXCELLS+p7G_E] - overall_logp); + + njcp = expf(fwd->xmx[p7G_NXCELLS*(i-1) + p7G_N] + bck->xmx[p7G_NXCELLS*i + p7G_N] + gm->xsc[p7P_N][p7P_LOOP] - overall_logp); + njcp += expf(fwd->xmx[p7G_NXCELLS*(i-1) + p7G_J] + bck->xmx[p7G_NXCELLS*i + p7G_J] + gm->xsc[p7P_J][p7P_LOOP] - overall_logp); + njcp += expf(fwd->xmx[p7G_NXCELLS*(i-1) + p7G_C] + bck->xmx[p7G_NXCELLS*i + p7G_C] + gm->xsc[p7P_C][p7P_LOOP] - overall_logp); + ddef->mocc[i] = 1. - njcp; + } + ddef->L = gm->L; + return eslOK; +} +/*------------------ end, decoding algorithms -------------------*/ + + + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7GENERIC_DECODING_BENCHMARK +/* + icc -O3 -static -o generic_decoding_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_DECODING_BENCHMARK generic_decoding.c -lhmmer -leasel -lm + ./benchmark-generic-decoding + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ ------------------- + 21 Aug 08 6.62u (21.8 Mc/s) 12.52u (21.7 Mc/s) 106.27u (21.7 Mc/s) + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "5000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for posterior residue decoding, generic version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + P7_GMX *pp = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float fsc, bsc; + double Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + fwd = p7_gmx_Create(gm->M, L); + bck = p7_gmx_Create(gm->M, L); + pp = p7_gmx_Create(gm->M, L); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_GForward (dsq, L, gm, fwd, &fsc); + p7_GBackward(dsq, L, gm, bck, &bsc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_GDecoding(gm, fwd, bck, pp); + esl_stopwatch_Stop(w); + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_gmx_Destroy(pp); + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(bck); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_DECODING_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7GENERIC_DECODING_TESTDRIVE + +#endif /*p7GENERIC_DECODING_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7GENERIC_DECODING_TESTDRIVE + +#endif /*p7GENERIC_DECODING_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + + + +/***************************************************************** + * 5. Example + *****************************************************************/ +#ifdef p7GENERIC_DECODING_EXAMPLE + +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +#define STYLES "--fs,--sw,--ls,--s" /* Exclusive choice for alignment mode */ + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "--fs", eslARG_NONE,"default",NULL, NULL, STYLES, NULL, NULL, "multihit local alignment", 0 }, + { "--sw", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit local alignment", 0 }, + { "--ls", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "multihit glocal alignment", 0 }, + { "--s", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit glocal alignment", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of posterior decoding, generic implementation"; + +static void dump_matrix_csv(FILE *fp, P7_GMX *pp, int istart, int iend, int kstart, int kend); + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float fsc, bsc; + + /* Read in one query profile */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one target sequence */ + sq = esl_sq_CreateDigital(abc); + if (esl_sqfile_Open(seqfile, format, NULL, &sqfp) != eslOK) p7_Fail("Failed to open sequence file %s", seqfile); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + + /* Now reconfig the model however we were asked to */ + if (esl_opt_GetBoolean(go, "--fs")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + else if (esl_opt_GetBoolean(go, "--sw")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_UNILOCAL); + else if (esl_opt_GetBoolean(go, "--ls")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_GLOCAL); + else if (esl_opt_GetBoolean(go, "--s")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_UNIGLOCAL); + + /* Allocate matrices */ + fwd = p7_gmx_Create(gm->M, sq->n); + bck = p7_gmx_Create(gm->M, sq->n); + + /* Set the profile and null model's target length models */ + p7_bg_SetLength(bg, sq->n); + p7_ReconfigLength(gm, sq->n); + + /* Run Forward, Backward */ + p7_GForward (sq->dsq, sq->n, gm, fwd, &fsc); + p7_GBackward(sq->dsq, sq->n, gm, bck, &bsc); + + /* Decoding: becomes the posterior probability mx */ + p7_GDecoding(gm, fwd, bck, bck); + + //p7_gmx_Dump(stdout, bck, p7_DEFAULT); + dump_matrix_csv(stdout, bck, 1, sq->n, 1, gm->M); + + /* Cleanup */ + esl_sq_Destroy(sq); + p7_profile_Destroy(gm); + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(bck); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} + +static void +dump_matrix_csv(FILE *fp, P7_GMX *pp, int istart, int iend, int kstart, int kend) +{ + int width = 7; + int precision = 5; + int i, k; + float val; + + printf("i,"); + for (k = kstart; k <= kend; k++) + printf("%-d%s", k, k==kend ? "\n" : ","); + + for (i = istart; i <= iend; i++) + { + printf("%-d,", i); + for (k = kstart; k <= kend; k++) + { + val = pp->dp[i][k * p7G_NSCELLS + p7G_M] + + pp->dp[i][k * p7G_NSCELLS + p7G_I] + + pp->dp[i][k * p7G_NSCELLS + p7G_D]; + + fprintf(fp, "%*.*f%s", width, precision, val, k==kend ? "\n" : ", "); + } + } +} +#endif /*p7GENERIC_DECODING_EXAMPLE*/ +/*------------------------ example ------------------------------*/ + + + diff --git a/bioinformaticsProject/hmmer/src/generic_fwdback.c b/bioinformaticsProject/hmmer/src/generic_fwdback.c new file mode 100644 index 0000000..4673ff0 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_fwdback.c @@ -0,0 +1,826 @@ +/* Forward/Backward algorithms; generic (non-SIMD) versions. + * + * Contents: + * 1. Forward, Backward, Hybrid implementations. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Forward, Backward, Hybrid implementations. + *****************************************************************/ + +/* Function: p7_GForward() + * Synopsis: The Forward algorithm. + * + * Purpose: The Forward dynamic programming algorithm. + * + * Given a digital sequence of length , a profile + * , and DP matrix allocated for at least M> + * by cells; calculate the probability of the sequence + * given the model using the Forward algorithm; return the + * Forward matrix in , and the Forward score in . + * + * The Forward score is in lod score form. To convert to a + * bitscore, the caller needs to subtract a null model lod + * score, then convert to bits. + * + * Caller must have initialized the log-sum calculation + * with a call to . + * + * Args: dsq - sequence in digitized form, 1..L + * L - length of dsq + * gm - profile. + * gx - DP matrix with room for an MxL alignment + * opt_sc - optRETURN: Forward lod score in nats + * + * Return: on success. + */ +int +p7_GForward(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *opt_sc) +{ + float const *tsc = gm->tsc; + float **dp = gx->dp; + float *xmx = gx->xmx; + int M = gm->M; + int i, k; + float esc = p7_profile_IsLocal(gm) ? 0 : -eslINFINITY; + + p7_FLogsumInit(); /* Would like to get rid of this -- have main()'s all initialize instead, more efficient */ + + /* Initialization of the zero row. */ + XMX(0,p7G_N) = 0; /* S->N, p=1 */ + XMX(0,p7G_B) = gm->xsc[p7P_N][p7P_MOVE]; /* S->N->B, no N-tail */ + XMX(0,p7G_E) = XMX(0,p7G_C) = XMX(0,p7G_J) = -eslINFINITY; /* need seq to get here */ + for (k = 0; k <= M; k++) + MMX(0,k) = IMX(0,k) = DMX(0,k) = -eslINFINITY; /* need seq to get here */ + + /* Recursion. Done as a pull. + * Note some slightly wasteful boundary conditions: + * tsc[0] = impossible for all eight transitions (no node 0) + * D_1 is wastefully calculated (doesn't exist) + */ + for (i = 1; i <= L; i++) + { + float const *rsc = gm->rsc[dsq[i]]; + float sc; + + MMX(i,0) = IMX(i,0) = DMX(i,0) = -eslINFINITY; + XMX(i, p7G_E) = -eslINFINITY; + + for (k = 1; k < M; k++) + { + /* match state */ + sc = p7_FLogsum(p7_FLogsum(MMX(i-1,k-1) + TSC(p7P_MM,k-1), + IMX(i-1,k-1) + TSC(p7P_IM,k-1)), + p7_FLogsum(XMX(i-1,p7G_B) + TSC(p7P_BM,k-1), + DMX(i-1,k-1) + TSC(p7P_DM,k-1))); + MMX(i,k) = sc + MSC(k); + + /* insert state */ + sc = p7_FLogsum(MMX(i-1,k) + TSC(p7P_MI,k), + IMX(i-1,k) + TSC(p7P_II,k)); + IMX(i,k) = sc + ISC(k); + + /* delete state */ + DMX(i,k) = p7_FLogsum(MMX(i,k-1) + TSC(p7P_MD,k-1), + DMX(i,k-1) + TSC(p7P_DD,k-1)); + + /* E state update */ + XMX(i,p7G_E) = p7_FLogsum(p7_FLogsum(MMX(i,k) + esc, + DMX(i,k) + esc), + XMX(i,p7G_E)); + } + /* unrolled match state M_M */ + sc = p7_FLogsum(p7_FLogsum(MMX(i-1,M-1) + TSC(p7P_MM,M-1), + IMX(i-1,M-1) + TSC(p7P_IM,M-1)), + p7_FLogsum(XMX(i-1,p7G_B) + TSC(p7P_BM,M-1), + DMX(i-1,M-1) + TSC(p7P_DM,M-1))); + MMX(i,M) = sc + MSC(M); + IMX(i,M) = -eslINFINITY; + + /* unrolled delete state D_M */ + DMX(i,M) = p7_FLogsum(MMX(i,M-1) + TSC(p7P_MD,M-1), + DMX(i,M-1) + TSC(p7P_DD,M-1)); + + /* unrolled E state update */ + XMX(i,p7G_E) = p7_FLogsum(p7_FLogsum(MMX(i,M), + DMX(i,M)), + XMX(i,p7G_E)); + + /* J state */ + XMX(i,p7G_J) = p7_FLogsum(XMX(i-1,p7G_J) + gm->xsc[p7P_J][p7P_LOOP], + XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_LOOP]); + /* C state */ + XMX(i,p7G_C) = p7_FLogsum(XMX(i-1,p7G_C) + gm->xsc[p7P_C][p7P_LOOP], + XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_MOVE]); + /* N state */ + XMX(i,p7G_N) = XMX(i-1,p7G_N) + gm->xsc[p7P_N][p7P_LOOP]; + + /* B state */ + XMX(i,p7G_B) = p7_FLogsum(XMX(i, p7G_N) + gm->xsc[p7P_N][p7P_MOVE], + XMX(i, p7G_J) + gm->xsc[p7P_J][p7P_MOVE]); + } + + if (opt_sc != NULL) *opt_sc = XMX(L,p7G_C) + gm->xsc[p7P_C][p7P_MOVE]; + gx->M = M; + gx->L = L; + return eslOK; +} + + +/* Function: p7_GBackward() + * Synopsis: The Backward algorithm. + * + * Purpose: The Backward dynamic programming algorithm. + * + * Given a digital sequence of length , a profile + * , and DP matrix allocated for at least M> + * by cells; calculate the probability of the sequence + * given the model using the Backward algorithm; return the + * Backward matrix in , and the Backward score in . + * + * The Backward score is in lod score form. To convert to a + * bitscore, the caller needs to subtract a null model lod + * score, then convert to bits. + * + * Args: dsq - sequence in digitized form, 1..L + * L - length of dsq + * gm - profile + * gx - DP matrix with room for an MxL alignment + * opt_sc - optRETURN: Backward lod score in nats + * + * Return: on success. + */ +int +p7_GBackward(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *opt_sc) +{ + float const *tsc = gm->tsc; + float const *rsc = NULL; + float **dp = gx->dp; + float *xmx = gx->xmx; + int M = gm->M; + int i, k; + float esc = p7_profile_IsLocal(gm) ? 0 : -eslINFINITY; + + /* Note: backward calculates the probability we can get *out* of + * cell i,k; exclusive of emitting residue x_i. + */ + p7_FLogsumInit(); + + /* Initialize the L row. */ + XMX(L,p7G_J) = XMX(L,p7G_B) = XMX(L,p7G_N) = -eslINFINITY; + XMX(L,p7G_C) = gm->xsc[p7P_C][p7P_MOVE]; /* C<-T */ + XMX(L,p7G_E) = XMX(L,p7G_C) + gm->xsc[p7P_E][p7P_MOVE]; /* E<-C, no tail */ + + MMX(L,M) = DMX(L,M) = XMX(L,p7G_E); /* {MD}_M <- E (prob 1.0) */ + IMX(L,M) = -eslINFINITY; /* no I_M state */ + for (k = M-1; k >= 1; k--) { + MMX(L,k) = p7_FLogsum( XMX(L,p7G_E) + esc, + DMX(L, k+1) + TSC(p7P_MD,k)); + DMX(L,k) = p7_FLogsum( XMX(L,p7G_E) + esc, + DMX(L, k+1) + TSC(p7P_DD,k)); + IMX(L,k) = -eslINFINITY; + } + + /* Main recursion */ + for (i = L-1; i >= 1; i--) + { + rsc = gm->rsc[dsq[i+1]]; + + XMX(i,p7G_B) = MMX(i+1,1) + TSC(p7P_BM,0) + MSC(1); /* t_BM index is 0 because it's stored off-by-one. */ + for (k = 2; k <= M; k++) + XMX(i,p7G_B) = p7_FLogsum(XMX(i, p7G_B), MMX(i+1,k) + TSC(p7P_BM,k-1) + MSC(k)); + + XMX(i,p7G_J) = p7_FLogsum( XMX(i+1,p7G_J) + gm->xsc[p7P_J][p7P_LOOP], + XMX(i, p7G_B) + gm->xsc[p7P_J][p7P_MOVE]); + + XMX(i,p7G_C) = XMX(i+1,p7G_C) + gm->xsc[p7P_C][p7P_LOOP]; + + XMX(i,p7G_E) = p7_FLogsum( XMX(i, p7G_J) + gm->xsc[p7P_E][p7P_LOOP], + XMX(i, p7G_C) + gm->xsc[p7P_E][p7P_MOVE]); + + XMX(i,p7G_N) = p7_FLogsum( XMX(i+1,p7G_N) + gm->xsc[p7P_N][p7P_LOOP], + XMX(i, p7G_B) + gm->xsc[p7P_N][p7P_MOVE]); + + + MMX(i,M) = DMX(i,M) = XMX(i,p7G_E); + IMX(i,M) = -eslINFINITY; + for (k = M-1; k >= 1; k--) + { + MMX(i,k) = p7_FLogsum( p7_FLogsum(MMX(i+1,k+1) + TSC(p7P_MM,k) + MSC(k+1), + IMX(i+1,k) + TSC(p7P_MI,k) + ISC(k)), + p7_FLogsum(XMX(i,p7G_E) + esc, + DMX(i, k+1) + TSC(p7P_MD,k))); + + IMX(i,k) = p7_FLogsum( MMX(i+1,k+1) + TSC(p7P_IM,k) + MSC(k+1), + IMX(i+1,k) + TSC(p7P_II,k) + ISC(k)); + + DMX(i,k) = p7_FLogsum( MMX(i+1,k+1) + TSC(p7P_DM,k) + MSC(k+1), + p7_FLogsum( DMX(i, k+1) + TSC(p7P_DD,k), + XMX(i, p7G_E) + esc)); + } + } + + /* At i=0, only N,B states are reachable. */ + rsc = gm->rsc[dsq[1]]; + XMX(0,p7G_B) = MMX(1,1) + TSC(p7P_BM,0) + MSC(1); /* t_BM index is 0 because it's stored off-by-one. */ + for (k = 2; k <= M; k++) + XMX(0,p7G_B) = p7_FLogsum(XMX(0, p7G_B), MMX(1,k) + TSC(p7P_BM,k-1) + MSC(k)); + XMX(i,p7G_J) = -eslINFINITY; + XMX(i,p7G_C) = -eslINFINITY; + XMX(i,p7G_E) = -eslINFINITY; + XMX(i,p7G_N) = p7_FLogsum( XMX(1, p7G_N) + gm->xsc[p7P_N][p7P_LOOP], + XMX(0, p7G_B) + gm->xsc[p7P_N][p7P_MOVE]); + for (k = M; k >= 1; k--) + MMX(i,k) = IMX(i,k) = DMX(i,k) = -eslINFINITY; + + + if (opt_sc != NULL) *opt_sc = XMX(0,p7G_N); + gx->M = M; + gx->L = L; + return eslOK; +} + + + +/* Function: p7_GHybrid() + * Synopsis: The "hybrid" algorithm. + * + * Purpose: The profile HMM version of the Hwa "hybrid" alignment + * algorithm \citep{YuHwa02}. The "hybrid" score is the + * maximum score in the Forward matrix. + * + * Given a digital sequence of length , a profile + * , and DP matrix allocated for at least M> + * by cells; calculate the probability of the sequence + * given the model using the Forward algorithm; return + * the calculated Forward matrix in , and optionally + * return the Forward score in and/or the + * Hybrid score in . + * + * This is implemented as a wrapper around . + * The Forward matrix and the Forward score obtained from + * this routine are identical to what would + * return. + * + * The scores are returned in lod form. To convert to a + * bitscore, the caller needs to subtract a null model lod + * score, then convert to bits. + * + * Args: dsq - sequence in digitized form, 1..L + * L - length of dsq + * gm - profile. + * gx - DP matrix with room for an MxL alignment + * opt_fwdscore - optRETURN: Forward lod score in nats. + * opt_hybscore - optRETURN: Hybrid lod score in nats. + * + * Returns: on success, and results are in , , + * and . + */ +int +p7_GHybrid(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *opt_fwdscore, float *opt_hybscore) +{ + float F = -eslINFINITY; + float H = -eslINFINITY; + float **dp = gx->dp; + int i,k; + int status; + + if ((status = p7_GForward(dsq, L, gm, gx, &F)) != eslOK) goto ERROR; + for (i = 1; i <= L; i++) + for (k = 1 ; k <= gm->M; k++) + H = ESL_MAX(H, MMX(i,k)); + + gx->M = gm->M; + gx->L = L; + if (opt_fwdscore != NULL) *opt_fwdscore = F; + if (opt_hybscore != NULL) *opt_hybscore = H; + return eslOK; + + ERROR: + if (opt_fwdscore != NULL) *opt_fwdscore = 0; + if (opt_hybscore != NULL) *opt_hybscore = 0; + return status; +} +/*------------- end: forward, backward, hybrid ------------------*/ + + + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +#ifdef p7GENERIC_FWDBACK_BENCHMARK +/* + gcc -g -O2 -o generic_fwdback_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_FWDBACK_BENCHMARK generic_fwdback.c -lhmmer -leasel -lm + icc -O3 -static -o generic_fwdback_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_FWDBACK_BENCHMARK generic_fwdback.c -lhmmer -leasel -lm + ./generic_fwdback_benchmark + */ +/* As of Fri Dec 28 14:48:39 2007 + * Viterbi = 61.8 Mc/s + * Forward = 8.6 Mc/s + * Backward = 7.1 Mc/s + * MSV = 55.9 Mc/s + * (gcc -g -O2, 3.2GHz Xeon, N=50K, L=400, M=72 RRM_1 model) + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "2000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { "-B", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only benchmark GBackward()", 0 }, + { "-F", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only benchmark GForward()", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for generic Forward/Backward"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + fwd = p7_gmx_Create(gm->M, L); + bck = p7_gmx_Create(gm->M, L); + + /* Baseline time. */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Benchmark time. */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + if (! esl_opt_GetBoolean(go, "-B")) p7_GForward (dsq, L, gm, fwd, &sc); + if (! esl_opt_GetBoolean(go, "-F")) p7_GBackward(dsq, L, gm, bck, NULL); + + p7_gmx_Reuse(fwd); + p7_gmx_Reuse(bck); + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_gmx_Destroy(bck); + p7_gmx_Destroy(fwd); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_FWDBACK_BENCHMARK*/ +/*----------------- end, benchmark ------------------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7GENERIC_FWDBACK_TESTDRIVE +#include +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +/* Forward is hard to validate. + * We do know that the Forward score is >= Viterbi. + * We also know that the expected score on random seqs is <= 0 (not + * exactly - we'd have to sample the random length from the background + * model too, not just use a fixed L - but it's close enough to + * being true to be a useful test.) + */ +static void +utest_forward(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, P7_PROFILE *gm, int nseq, int L) +{ + float avg_sc; + ESL_DSQ *dsq = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + int idx; + float fsc, bsc; + float vsc, nullsc; + + if ((dsq = malloc(sizeof(ESL_DSQ) *(L+2))) == NULL) esl_fatal("malloc failed"); + if ((fwd = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("matrix creation failed"); + if ((bck = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("matrix creation failed"); + + avg_sc = 0.; + for (idx = 0; idx < nseq; idx++) + { + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal("seq generation failed"); + if (p7_GViterbi(dsq, L, gm, fwd, &vsc) != eslOK) esl_fatal("viterbi failed"); + if (p7_GForward(dsq, L, gm, fwd, &fsc) != eslOK) esl_fatal("forward failed"); + if (p7_GBackward(dsq, L, gm, bck, &bsc) != eslOK) esl_fatal("backward failed"); + + if (fsc < vsc) esl_fatal("Forward score can't be less than Viterbi score"); + if (fabs(fsc-bsc) > 0.001) esl_fatal("Forward/Backward failed: %f %f\n", fsc, bsc); + + if (p7_bg_NullOne(bg, dsq, L, &nullsc) != eslOK) esl_fatal("null score failed"); + + avg_sc += fsc - nullsc; + + if (esl_opt_GetBoolean(go, "--vv")) + printf("utest_forward: Forward score: %.4f (total so far: %.4f)\n", fsc, avg_sc); + } + + avg_sc /= (float) nseq; + if (avg_sc > 0.) esl_fatal("Forward scores have positive expectation (%f nats)", avg_sc); + + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(bck); + free(dsq); + return; +} + +/* The "generation" test scores sequences generated by the same profile. + * Each Viterbi and Forward score should be >= the trace score of the emitted seq. + * The expectation of Forward scores should be positive. + */ +static void +utest_generation(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, + P7_PROFILE *gm, P7_HMM *hmm, P7_BG *bg, int nseq) +{ + ESL_SQ *sq = esl_sq_CreateDigital(abc); + P7_GMX *gx = p7_gmx_Create(gm->M, 100); + P7_TRACE *tr = p7_trace_Create(); + float vsc, fsc, nullsc, tracesc; + float avg_fsc; + int idx; + + avg_fsc = 0.0; + for (idx = 0; idx < nseq; idx++) + { + if (p7_ProfileEmit(r, hmm, gm, bg, sq, tr) != eslOK) esl_fatal("profile emission failed"); + + if (p7_gmx_GrowTo(gx, gm->M, sq->n) != eslOK) esl_fatal("failed to reallocate gmx"); + if (p7_GViterbi(sq->dsq, sq->n, gm, gx, &vsc) != eslOK) esl_fatal("viterbi failed"); + if (p7_GForward(sq->dsq, sq->n, gm, gx, &fsc) != eslOK) esl_fatal("forward failed"); + if (p7_trace_Score(tr, sq->dsq, gm, &tracesc) != eslOK) esl_fatal("trace score failed"); + if (p7_bg_NullOne(bg, sq->dsq, sq->n, &nullsc) != eslOK) esl_fatal("null score failed"); + + if (vsc < tracesc) esl_fatal("viterbi score is less than trace"); + if (fsc < tracesc) esl_fatal("forward score is less than trace"); + if (vsc > fsc) esl_fatal("viterbi score is greater than forward"); + + if (esl_opt_GetBoolean(go, "--vv")) + printf("generated: len=%d v=%8.4f f=%8.4f t=%8.4f\n", (int) sq->n, vsc, fsc, tracesc); + + avg_fsc += (fsc - nullsc); + } + + avg_fsc /= (float) nseq; + if (avg_fsc < 0.) esl_fatal("generation: Forward scores have negative expectation (%f nats)", avg_fsc); + + p7_gmx_Destroy(gx); + p7_trace_Destroy(tr); + esl_sq_Destroy(sq); +} + + +/* The "enumeration" test samples a random enumerable HMM (transitions to insert are 0, + * so the generated seq space only includes seqs of L<=M). + * + * The test scores all seqs of length <=M by both Viterbi and Forward, verifies that + * the two scores are identical, and verifies that the sum of all the probabilities is + * 1.0. It also verifies that the score of a sequence of length M+1 is indeed -infinity. + * + * Because this function is going to work in unscaled probabilities, adding them up, + * all P(seq) terms must be >> DBL_EPSILON. That means M must be small; on the order + * of <= 10. + */ +static void +utest_enumeration(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, int M) +{ + char errbuf[eslERRBUFSIZE]; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_BG *bg = NULL; + ESL_DSQ *dsq = NULL; + P7_GMX *gx = NULL; + float vsc, fsc; + float bg_ll; /* log P(seq | bg) */ + double fp; /* P(seq | model) */ + int L; + int i; + double total_p; + char *seq; + + /* Sample an enumerable HMM & profile of length M. */ + if (p7_hmm_SampleEnumerable(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an enumerable HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile"); + if (p7_ProfileConfig(hmm, bg, gm, 0, p7_UNILOCAL) != eslOK) esl_fatal("failed to config profile"); + if (p7_hmm_Validate (hmm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, HMM is bad!: %s", errbuf); + if (p7_profile_Validate(gm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!: %s", errbuf); + + if ( (dsq = malloc(sizeof(ESL_DSQ) * (M+3))) == NULL) esl_fatal("allocation failed"); + if ( (seq = malloc(sizeof(char) * (M+2))) == NULL) esl_fatal("allocation failed"); + if ((gx = p7_gmx_Create(hmm->M, M+3)) == NULL) esl_fatal("matrix creation failed"); + + /* Enumerate all sequences of length L <= M + */ + total_p = 0; + for (L = 0; L <= M; L++) + { + /* Initialize dsq of length L at 0000... */ + dsq[0] = dsq[L+1] = eslDSQ_SENTINEL; + for (i = 1; i <= L; i++) dsq[i] = 0; + + while (1) /* enumeration of seqs of length L*/ + { + if (p7_GViterbi(dsq, L, gm, gx, &vsc) != eslOK) esl_fatal("viterbi failed"); + if (p7_GForward(dsq, L, gm, gx, &fsc) != eslOK) esl_fatal("forward failed"); + + /* calculate bg log likelihood component of the scores */ + for (bg_ll = 0., i = 1; i <= L; i++) bg_ll += log(bg->f[dsq[i]]); + + /* convert to probability, adding the bg LL back to the LLR */ + fp = exp(fsc + bg_ll); + + if (esl_opt_GetBoolean(go, "--vv")) { + esl_abc_Textize(abc, dsq, L, seq); + printf("probability of sequence: %10s %16g (lod v=%8.4f f=%8.4f)\n", seq, fp, vsc, fsc); + } + total_p += fp; + + /* Increment dsq like a reversed odometer */ + for (i = 1; i <= L; i++) + if (dsq[i] < abc->K-1) { dsq[i]++; break; } else { dsq[i] = 0; } + if (i > L) break; /* we're done enumerating sequences */ + } + } + + /* That sum is subject to significant numerical error because of + * discretization error in FLogsum(); don't expect it to be too close. + */ + if (total_p < 0.999 || total_p > 1.001) esl_fatal("Enumeration unit test failed: total Forward p isn't near 1.0 (%g)", total_p); + if (esl_opt_GetBoolean(go, "-v")) { + printf("enumeration test: total p is %g\n", total_p); + } + + p7_gmx_Destroy(gx); + p7_bg_Destroy(bg); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); + free(dsq); + free(seq); +} +#endif /*p7GENERIC_FWDBACK_TESTDRIVE*/ +/*------------------------- end, unit tests ---------------------*/ + +/***************************************************************** + * 4. Test driver. + *****************************************************************/ + +/* gcc -g -Wall -Dp7GENERIC_FWDBACK_TESTDRIVE -I. -I../easel -L. -L../easel -o generic_fwdback_utest generic_fwdback.c -lhmmer -leasel -lm + */ +#ifdef p7GENERIC_FWDBACK_TESTDRIVE +#include "easel.h" +#include "esl_getopts.h" +#include "esl_msa.h" + +#include "p7_config.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for the generic Forward/Backward implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_BG *bg = NULL; + int M = 100; + int L = 200; + int nseq = 20; + char errbuf[eslERRBUFSIZE]; + + p7_FLogsumInit(); + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile"); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal("failed to config profile"); + if (p7_hmm_Validate (hmm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, HMM is bad!: %s", errbuf); + if (p7_profile_Validate(gm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!: %s", errbuf); + + utest_forward (go, r, abc, bg, gm, nseq, L); + utest_generation (go, r, abc, gm, hmm, bg, nseq); + utest_enumeration(go, r, abc, 4); /* can't go much higher than 5; enumeration test is cpu-intensive. */ + + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_FWDBACK_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + +/***************************************************************** + * 5. Example + *****************************************************************/ +#ifdef p7GENERIC_FWDBACK_EXAMPLE +/* + gcc -g -O2 -o generic_fwdback_example -Dp7GENERIC_FWDBACK_EXAMPLE -I. -I../easel -L. -L../easel generic_fwdback.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +#define STYLES "--fs,--sw,--ls,--s" /* Exclusive choice for alignment mode */ + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "--fs", eslARG_NONE,"default",NULL, NULL, STYLES, NULL, NULL, "multihit local alignment", 0 }, + { "--sw", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit local alignment", 0 }, + { "--ls", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "multihit glocal alignment", 0 }, + { "--s", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit glocal alignment", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of Forward/Backward, generic implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float fsc, bsc; + float nullsc; + int status; + + /* Initialize log-sum calculator */ + p7_FLogsumInit(); + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + + /* Now reconfig the models however we were asked to */ + if (esl_opt_GetBoolean(go, "--fs")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + else if (esl_opt_GetBoolean(go, "--sw")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_UNILOCAL); + else if (esl_opt_GetBoolean(go, "--ls")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_GLOCAL); + else if (esl_opt_GetBoolean(go, "--s")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_UNIGLOCAL); + + /* Allocate matrices */ + fwd = p7_gmx_Create(gm->M, sq->n); + bck = p7_gmx_Create(gm->M, sq->n); + + printf("%-30s %-10s %-10s %-10s %-10s\n", "# seq name", "fwd (raw)", "bck (raw) ", "fwd (bits)", "bck (bits)"); + printf("%-30s %10s %10s %10s %10s\n", "#--------------", "----------", "----------", "----------", "----------"); + + while ( (status = esl_sqio_Read(sqfp, sq)) != eslEOF) + { + if (status == eslEFORMAT) p7_Fail("Parse failed (sequence file %s)\n%s\n", sqfp->filename, sqfp->get_error(sqfp)); + else if (status != eslOK) p7_Fail("Unexpected error %d reading sequence file %s", status, sqfp->filename); + + /* Resize the DP matrices if necessary */ + p7_gmx_GrowTo(fwd, gm->M, sq->n); + p7_gmx_GrowTo(bck, gm->M, sq->n); + + /* Set the profile and null model's target length models */ + p7_bg_SetLength(bg, sq->n); + p7_ReconfigLength(gm, sq->n); + + /* Run Forward, Backward */ + p7_GForward (sq->dsq, sq->n, gm, fwd, &fsc); + p7_GBackward(sq->dsq, sq->n, gm, bck, &bsc); + + p7_gmx_Dump(stdout, fwd, p7_DEFAULT); + + /* Those scores are partial log-odds likelihoods in nats. + * Subtract off the rest of the null model, convert to bits. + */ + p7_bg_NullOne(bg, sq->dsq, sq->n, &nullsc); + + printf("%-30s %10.4f %10.4f %10.4f %10.4f\n", + sq->name, + fsc, bsc, + (fsc - nullsc) / eslCONST_LOG2, (bsc - nullsc) / eslCONST_LOG2); + + p7_gmx_Reuse(fwd); + p7_gmx_Reuse(bck); + esl_sq_Reuse(sq); + } + + /* Cleanup */ + esl_sqfile_Close(sqfp); + esl_sq_Destroy(sq); + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(bck); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_FWDBACK_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/generic_fwdback_banded.c b/bioinformaticsProject/hmmer/src/generic_fwdback_banded.c new file mode 100644 index 0000000..f337539 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_fwdback_banded.c @@ -0,0 +1,230 @@ +/* Forward/Backward, generic, with bands. + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_sq.h" + +#include "hmmer.h" +#include "p7_gbands.h" +#include "p7_gmxb.h" + +int +p7_GForwardBanded(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMXB *gxb, float *opt_sc) +{ + int *bnd_ip = gxb->bnd->imem; /* ptr to current ia, ib segment band in gxb->bnd */ + int *bnd_kp = gxb->bnd->kmem; /* ptr to current ka, kb row band in gxb->bnd */ + float *dpc = gxb->dp; /* ptr to current DP matrix cell */ + float *xpc = gxb->xmx; /* ptr to current special cell */ + float const *tsc = gm->tsc; /* sets up TSC() macro, access to profile's transitions */ + float const *rsc; /* will be set up for MSC(), ISC() macros for residue scores */ + float *dpp; /* ptr to previous DP matrix cell */ + float *last_dpc; /* used to reinitialize dpp after each row */ + int ia, ib; /* current segment band is rows ia..ib */ + int last_ib; /* intersegment interval is last_ib+1..ia-1 */ + int kac, kbc; /* current row band is kac..kbc */ + int kap, kbp; /* previous row band is kap..kbp */ + int kbc2; /* if kbc==M, kbc2=M-1, main loop goes kac..kbc2 and M is unrolled */ + float xE, xN, xJ, xB, xC; /* tmp scores on special states. only stored when in row bands */ + float mvp, ivp, dvp; /* M,I,D cell values from previous row i-1 */ + float dc; /* precalculated D(i,k+1) value on current row */ + float sc; /* temporary score calculation M(i,k) */ + int g, i, k; /* indices running over segments, residues (rows) x_i, model positions (cols) k */ + //float esc = p7_profile_IsLocal(gm) ? 0 : -eslINFINITY; + + xN = 0.0f; + xJ = -eslINFINITY; + xC = -eslINFINITY; + last_ib = 0; + + for (g = 0; g < gxb->bnd->nseg; g++) + { + ia = *bnd_ip++; + ib = *bnd_ip++; + + /* kap,kbp initialization for i=ia: + * left overhang dpp advance must always eval to 0, + * {m,i,d}vp initialization must always eval to -eslINFINITY. + */ + kap = kbp = gm->M+1; + dpp = dpc; /* re-initialize dpp */ + + /* re-initialization: specials for previous row ia-1 just outside banded segment: */ + xE = -eslINFINITY; + xN = xN + (ia - last_ib - 1) * gm->xsc[p7P_N][p7P_LOOP]; + xJ = xJ + (ia - last_ib - 1) * gm->xsc[p7P_J][p7P_LOOP]; + xB = p7_FLogsum( xN + gm->xsc[p7P_N][p7P_MOVE], xJ + gm->xsc[p7P_J][p7P_MOVE]); + xC = xC + (ia - last_ib - 1) * gm->xsc[p7P_C][p7P_LOOP]; + + for (i = ia; i <= ib; i++) + { + rsc = gm->rsc[dsq[i]]; /* sets up MSC(k), ISC(k) residue scores for this row i */ + dc = -eslINFINITY; + xE = -eslINFINITY; + last_dpc = dpc; + + kac = *bnd_kp++; /* current row's band is cells k=kac..kbc */ + kbc = *bnd_kp++; + kbc2 = (kbc == gm->M ? kbc-1 : kbc); /* a "do_M" flag works too, but this way we avoid an if statement */ + + /* dpp must advance by any left overhang of previous row; but no more than the entire row */ + dpp += (kac-1 > kap ? ESL_MIN(kac-kap-1, kbp-kap+1) : 0); + + if (kac > kap && kac-1 <= kbp) { mvp = *dpp++; ivp = *dpp++; dvp = *dpp++; } + else { mvp = -eslINFINITY; ivp = -eslINFINITY; dvp = -eslINFINITY; } + + for (k = kac; k <= kbc2; k++) + { + *dpc++ = sc = MSC(k) + p7_FLogsum( p7_FLogsum(mvp + TSC(p7P_MM, k-1), ivp + TSC(p7P_IM, k-1)), + dvp + TSC(p7P_DM, k-1)); + //p7_FLogsum(dvp + TSC(p7P_DM, k-1), xB + TSC(p7P_BM, k-1))); + + + if (k >= kap && k <= kbp) { mvp = *dpp++; ivp = *dpp++; dvp = *dpp++; } // an if seems unavoidable. alternatively, might unroll + else { mvp = -eslINFINITY; ivp = -eslINFINITY; dvp = -eslINFINITY; } // all possible (kap,kac)..(kbp,kbc) orderings, but this + // seems too complex + + *dpc++ = ISC(k) + p7_FLogsum( mvp + TSC(p7P_MI, k), ivp + TSC(p7P_II, k)); + + //xE = p7_FLogsum( p7_FLogsum(sc + esc, dc + esc), xE);/* Mk->E accumulation */ + + /* next D_k+1 */ + *dpc++ = dc; + dc = p7_FLogsum( sc + TSC(p7P_MD, k), dc + TSC(p7P_DD, k)); + } + + if (kbc2 < kbc) /* i.e., if kbc==M and we need to do the final M column: */ + { + *dpc++ = sc = MSC(k) + p7_FLogsum( p7_FLogsum(mvp + TSC(p7P_MM, k-1), ivp + TSC(p7P_IM, k-1)), + p7_FLogsum(dvp + TSC(p7P_DM, k-1), xB + TSC(p7P_BM, k-1))); + *dpc++ = -eslINFINITY; + *dpc++ = dc; + xE = p7_FLogsum( p7_FLogsum(sc, dc), xE); + } + + *xpc++ = xE; + *xpc++ = xN = xN + gm->xsc[p7P_N][p7P_LOOP]; + *xpc++ = xJ = p7_FLogsum( xJ + gm->xsc[p7P_J][p7P_LOOP], xE + gm->xsc[p7P_E][p7P_MOVE]); + *xpc++ = xB = p7_FLogsum( xJ + gm->xsc[p7P_J][p7P_MOVE], xN + gm->xsc[p7P_N][p7P_MOVE]); + *xpc++ = xC = p7_FLogsum( xE + gm->xsc[p7P_E][p7P_MOVE], xC + gm->xsc[p7P_C][p7P_LOOP]); + + dpp = last_dpc; /* this skips any right overhang on the previous row, so dpp advances (if necessary) to start of curr row */ + kap = kac; + kbp = kbc; + } + last_ib = ib; + } + + /* last_ib+1..L is outside any band segment, so it can only run through xC. */ + if (opt_sc != NULL) *opt_sc = xC + (L-last_ib) * gm->xsc[p7P_C][p7P_LOOP] + gm->xsc[p7P_C][p7P_MOVE]; + return eslOK; +} + +/***************************************************************** + * x. Benchmark driver + *****************************************************************/ +#ifdef p7GENERIC_FWDBACK_BANDED_BENCHMARK +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +#include "hmmer.h" +#include "p7_gbands.h" +#include "p7_gmxb.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "2000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { "-W", eslARG_INT, "3", NULL,"n>=0", NULL, NULL, NULL, "band halfwidth", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for banded Forward/Backward"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GBANDS *bnd = NULL; + P7_GMXB *fwd = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + int W = esl_opt_GetInteger(go, "-W"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int idx, k, base; + float sc; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_GLOCAL); + + /* Contrive bands: one length M band of width W */ + bnd = p7_gbands_Create(L, gm->M); + if (L < gm->M) p7_Fail("for now, L must be >=M, because we make a single band"); + base = (L-gm->M) / 2; + for (k = 1; k <= gm->M; k++) + p7_gbands_Append(bnd, k+base, ESL_MAX(1,k-W), ESL_MIN(gm->M,k+W)); + + fwd = p7_gmxb_Create(bnd); + + /* Baseline time. */ + esl_stopwatch_Start(w); + for (idx = 0; idx < N; idx++) esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Benchmark time. */ + esl_stopwatch_Start(w); + for (idx = 0; idx < N; idx++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_gmxb_Reinit(fwd, bnd); + + p7_GForwardBanded(dsq, L, gm, fwd, &sc); + + p7_gmxb_Reuse(fwd); + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_gmxb_Destroy(fwd); + p7_gbands_Destroy(bnd); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_FWDBACK_BANDED_BENCHMARK*/ +/************** end, benchmark driver*****************************/ diff --git a/bioinformaticsProject/hmmer/src/generic_fwdback_chk.c b/bioinformaticsProject/hmmer/src/generic_fwdback_chk.c new file mode 100644 index 0000000..6503578 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_fwdback_chk.c @@ -0,0 +1,841 @@ +/* Forward/Backward, checkpointed: generic (non-SIMD) demonstration version. + * + * Contents: + * 1. Forwards: checkpointed fill, Forwards nat score. + * 2. Backwards: linear-memory back pass, recovering posterior-decoded bands. + * 3. Benchmark driver. + * 4. Example main(). + * 5. References. + */ +#include "p7_config.h" + +#include "easel.h" + +#include "hmmer.h" +#include "p7_gmxchk.h" +#include "p7_gbands.h" + +static inline void posterior_decode_row(int rowi, float *fwd, float *bck, int M, float overall_sc, P7_GBANDS *bnd); + +/***************************************************************** + *= 1. Forwards: checkpointed fill, Forwards nat score + *****************************************************************/ + +/* forward_row() + * + * inlined function, because we have to call the row calculation in + * several places in a checkpointed calculation, including in the Backwards() + * routine. + * + */ +static inline void +forward_row(const ESL_DSQ *dsq, const P7_PROFILE *gm, P7_GMXCHK *gxc, const float *dpp, float *dpc, int i) +{ + const float *tsc = gm->tsc; + const float *rsc = gm->rsc[dsq[i]] + p7P_NR; /* +NR skips _0, ahead to _1 */ + int M = gm->M; + float esc = p7_profile_IsLocal(gm) ? 0. : -eslINFINITY; + int k; + float sc, dc; + float xB = *(dpp + (M+1)*p7G_NSCELLS + p7GC_B); + float xE = -eslINFINITY; + float mvp, ivp, dvp; + + *dpc++ = -eslINFINITY; /* M_0 */ + *dpc++ = -eslINFINITY; /* I_0 */ + *dpc++ = -eslINFINITY; /* D_0 */ + dc = -eslINFINITY; + + mvp = *dpp++; ivp = *dpp++; dvp = *dpp++; + + for (k = 1; k < M; k++) + { + /* match state */ + *dpc++ = sc = *rsc++ /* emission(M_k, x_i) */ + + p7_FLogsum(p7_FLogsum( mvp + *(tsc+p7P_MM), /* M(i-1,k-1) * t_M(k-1)->M(k) */ + ivp + *(tsc+p7P_IM)), /* I(i-1,k-1) * t_I(k-1)->M(k) */ + p7_FLogsum( dvp + *(tsc+p7P_DM), /* D(i-1,k-1) * t_D(k-1)->M(k) */ + xB + *(tsc+p7P_BM))); /* B(i-1) * t_B->M_k */ + tsc += p7P_NTRANS; /* advance to the t_X(k) transitions now */ + + /* pick up values from prev row, (k)... at next loop iteration they're magically the k-1 values we need for M calc */ + mvp = *dpp++; ivp = *dpp++; dvp = *dpp++; + + /* insert state */ + *dpc++ = *rsc++ /* emission(I_k, x_i) */ + + p7_FLogsum( mvp + *(tsc+p7P_MI), /* M(i-1,k) * t_M(k)->I(k) */ + ivp + *(tsc+p7P_II)); /* I(i-1,k) * t_I(k)->I(k) */ + + /* E state accumulation */ + xE = p7_FLogsum( p7_FLogsum(sc + esc, dc + esc), xE); + + /* delayed store of delete state; then calculate/push NEXT D_k+1 */ + *dpc++ = dc; + dc = p7_FLogsum( sc + *(tsc+p7P_MD), /* M(i,k) * t_M(k)->D(k+1) */ + dc + *(tsc+p7P_DD)); /* D(i,k) * t_D(k)->D(k+1) */ + } + + /* unrolled match state M_M */ + *dpc++ = sc = *rsc++ /* emission(M_M, x_i) */ + + p7_FLogsum(p7_FLogsum( mvp + *(tsc + p7P_MM), /* M(i-1,M-1) * t_MM */ + ivp + *(tsc + p7P_IM)), /* I(i-1,M-1) * t_IM */ + p7_FLogsum( dvp + *(tsc + p7P_DM), /* D(i-1,M-1) * t_DM */ + xB + *(tsc + p7P_BM))); /* B(i-1) * t_BM_M */ + *dpc++ = -eslINFINITY; /* I_M: no such state */ + *dpc++ = dc; /* delayed store of D_M */ + dpp += 3; + + /* now dpc and dpp are sitting on [ENJBC] special state arrays for current, prev row. */ + dpc[p7GC_E] = p7_FLogsum( p7_FLogsum(sc, dc), xE); /* E state update += D_M + M_M */ + dpc[p7GC_N] = dpp[p7GC_N] + gm->xsc[p7P_N][p7P_LOOP]; /* N state = N(i-1)->N(i) */ + dpc[p7GC_JJ] = dpp[p7GC_J] + gm->xsc[p7P_J][p7P_LOOP]; /* J->J emission partial path */ + dpc[p7GC_J] = p7_FLogsum( dpc[p7GC_JJ], dpc[p7GC_E] + gm->xsc[p7P_E][p7P_LOOP]); /* J state = JJ + E->J */ + dpc[p7GC_B] = p7_FLogsum( dpc[p7GC_N] + gm->xsc[p7P_N][p7P_MOVE], dpc[p7GC_J] + gm->xsc[p7P_J][p7P_MOVE]); /* B state = N->B + J->B */ + dpc[p7GC_CC] = dpp[p7GC_C] + gm->xsc[p7P_C][p7P_LOOP]; /* C->C emission partial path */ + dpc[p7GC_C] = p7_FLogsum( dpc[p7GC_CC], dpc[p7GC_E] + gm->xsc[p7P_E][p7P_MOVE]); /* C state = CC + E->C */ +} + + +/* Function: p7_GForwardCheckpointed() + * Synopsis: Forward pass in a checkpointed generic DP matrix + * + * Purpose: Compute the Forward pass of a comparison of model + * against digital sequence of length , resulting + * in a filled DP matrix and (optionally) + * a Forward score in nats. + * + * The caller has already allocated and laid out + * appropriately for the M> by comparison, either + * with or . + * + * The caller has also already configured the length model + * in for the target sequence length , for example + * by calling . + * + * Args: dsq : digital sequence target + * L : length of in residues + * gm : query profile + * gxc : checkpointed DP matrix to fill + * opt_sc : optRETURN: Forward raw lod score, in nats + * + * Returns: on success. contains checkpointed DP + * Forward matrix, ready for backwards pass. + * is the raw lod score in nats. + * + * Throws: (no abnormal error conditions) + */ +int +p7_GForwardCheckpointed(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMXCHK *gxc, float *opt_sc) +{ + float *dpc; /* ptr to current row */ + float *dpp; /* ptr to previous row */ + int M = gm->M; + int w; /* size of a segment of DP rows ended w/ one checkpointed row, inclusive */ + int b; /* counts down over segment number (Rb+Rc..1); each segment has r+1 rows */ + int i,k; + + /* Initialization of the zero row, fwd[0], inc. ENJBC */ + dpc = dpp = gxc->dp[gxc->R0-1]; /* i.e., dp[2], the reserved fwd[0] row; 0,1 are reserved for tmp space and backwards calculation */ + for (k = 0; k < (M+1)*p7G_NSCELLS; k++) /* MID[0..M] are all impossible */ + *dpc++ = -eslINFINITY; + *dpc++ = -eslINFINITY; /* E; need seq to get here */ + *dpc++ = 0; /* N */ + *dpc++ = -eslINFINITY; /* JJ; need seq to get here */ + *dpc++ = -eslINFINITY; /* J; need seq to get here */ + *dpc++ = gm->xsc[p7P_N][p7P_MOVE]; /* B; from N->B only */ + *dpc++ = -eslINFINITY; /* CC; need seq to get here */ + *dpc = -eslINFINITY; /* C; need seq to get here */ + + /* Phase one: "a" region: uncheckpointed rows of matrix */ + for (i = 1; i <= gxc->La; i++) + { + dpc = gxc->dp[gxc->R0+gxc->R]; gxc->R++; /* idiomatic for "get next saved row" */ + forward_row(dsq, gm, gxc, dpp, dpc, i); + dpp = dpc; + } + + /* Phase two: "b" and "c" regions: partially and fully checkpointed */ + /* i= gxc->La+1, from previous loop's end */ + for (b = gxc->Rb + gxc->Rc, w = (gxc->Rb ? gxc->Lb : gxc->Rc+1); i <= L; i++) + { + if (! (--w)) + { /* we're on the last row in segment: this row is saved */ + dpc = gxc->dp[gxc->R0+gxc->R]; gxc->R++; /* idiomatic for "get next saved row" */ + w=b; /* next segment has this many rows, ending in a saved row */ + b--; /* decrement segment number counter; last segment is r=1 */ + } + else + dpc = gxc->dp[i%2]; /* idiomatic for "get next temp row", 0 or 1; i%2 is to make sure dpp != dpc */ + + forward_row(dsq, gm, gxc, dpp, dpc, i); + dpp = dpc; + } + + gxc->M = M; + gxc->L = L; + gxc->R = gxc->Ra + gxc->Rb + gxc->Rc; + if (opt_sc) *opt_sc = gxc->dp[gxc->R0+gxc->R-1][(M+1)*p7G_NSCELLS + p7GC_C] + gm->xsc[p7P_C][p7P_MOVE]; + return eslOK; +} +/*-------------------- end, forwards ----------------------------*/ + + +/***************************************************************** + *= 2. Backwards: linear-memory back pass, recovering posterior-decoded bands + *****************************************************************/ + +static inline void +backward_row(const ESL_DSQ *dsq, const P7_PROFILE *gm, P7_GMXCHK *gxc, const float *dpp, float *dpc, int i) +{ + const float * const tsc = gm->tsc; /* both the parameters and the pointer itself are constant */ + const float * const rsc = gm->rsc[dsq[i+1]]; + int M = gm->M; + float esc = p7_profile_IsLocal(gm) ? 0 : -eslINFINITY; + int k; + + XMR(dpc,p7GC_C) = XMR(dpc,p7GC_CC) = XMR(dpp,p7GC_C) + gm->xsc[p7P_C][p7P_LOOP]; + + XMR(dpc,p7GC_B) = MMR(dpp,1) + TSC(p7P_BM,0) + MSC(1); /* t_BM index = 0 because it's stored off by one */ + for (k = 2; k <= M; k++) + XMR(dpc,p7GC_B) = p7_FLogsum( XMR(dpc,p7GC_B), MMR(dpp,k) + TSC(p7P_BM,k-1) + MSC(k)); + + XMR(dpc,p7GC_J) = XMR(dpc,p7GC_JJ) = p7_FLogsum( XMR(dpp,p7GC_J) + gm->xsc[p7P_J][p7P_LOOP], XMR(dpc,p7GC_B) + gm->xsc[p7P_J][p7P_MOVE]); + + XMR(dpc,p7GC_N) = p7_FLogsum( XMR(dpp,p7GC_N) + gm->xsc[p7P_N][p7P_LOOP], XMR(dpc,p7GC_B) + gm->xsc[p7P_N][p7P_MOVE]); + XMR(dpc,p7GC_E) = p7_FLogsum( XMR(dpc,p7GC_J) + gm->xsc[p7P_E][p7P_LOOP], XMR(dpc,p7GC_C) + gm->xsc[p7P_E][p7P_MOVE]); + + DMR(dpc,M) = XMR(dpc,p7GC_E); + IMR(dpc,M) = -eslINFINITY; + MMR(dpc,M) = XMR(dpc,p7GC_E); + + for (k = M-1; k >= 1; k--) + { + DMR(dpc,k) = p7_FLogsum( p7_FLogsum( DMR(dpc, k+1) + TSC(p7P_DD,k), + XMR(dpc, p7GC_E) + esc), + MMR(dpp,k+1) + TSC(p7P_DM,k) + MSC(k+1)); + + IMR(dpc,k) = p7_FLogsum( MMR(dpp,k+1) + TSC(p7P_IM,k) + MSC(k+1), + IMR(dpp,k) + TSC(p7P_II,k) + ISC(k)); + + MMR(dpc,k) = p7_FLogsum( p7_FLogsum(MMR(dpp,k+1) + TSC(p7P_MM,k) + MSC(k+1), + IMR(dpp,k) + TSC(p7P_MI,k) + ISC(k)), + p7_FLogsum(XMR(dpc,p7GC_E) + esc, + DMR(dpc,k+1) + TSC(p7P_MD,k))); + } +} + +/* worry about small seq cases: L=0..2 */ +int +p7_GBackwardCheckpointed(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMXCHK *gxc, P7_GBANDS *bnd, float *opt_sc) +{ + float const *tsc = gm->tsc; + float const *rsc = NULL; + int M = gm->M; + float esc = p7_profile_IsLocal(gm) ? 0 : -eslINFINITY; + float *fwd; + float *bck; + float *dpp; /* "previous" row (i-1 for forward, i+1 for backward) */ + int i,i2,k,b,w,s; + float overall_sc = gxc->dp[gxc->R0+gxc->R-1][(M+1)*p7G_NSCELLS + p7GC_C] + gm->xsc[p7P_C][p7P_MOVE]; + +#if eslDEBUGLEVEL > 0 + if (gxc->do_debugging) p7_gmxchk_DumpHeader(gxc->dfp, gxc, 0, gxc->M, gxc->dbg_flags); +#endif + + /* this initialization could be in gmxchk: nothing else touches these boundary cells */ + for (s = 0; s < p7G_NSCELLS; s++) gxc->dp[0][s] = gxc->dp[1][s] = -eslINFINITY; + + /* We have to handle the first block b=1 as a special case (rows L-1, L) + * because row L is a special case. + */ + + /* Initialize backwards row L */ + i = L; + gxc->R--; + fwd = gxc->dp[gxc->R0+gxc->R]; /* pop row for fwd[L] off "stack" */ + bck = gxc->dp[L%2]; /* get tmp space for bck[L] */ + XMR(bck, p7GC_C) = gm->xsc[p7P_C][p7P_MOVE]; /* C<-T */ + XMR(bck, p7GC_CC) = gm->xsc[p7P_C][p7P_MOVE]; /* CC<-T */ + XMR(bck, p7GC_B) = -eslINFINITY; /* B<-T not possible */ + XMR(bck, p7GC_J) = -eslINFINITY; /* J<-T not possible */ + XMR(bck, p7GC_JJ) = -eslINFINITY; /* JJ<-T not possible*/ + XMR(bck, p7GC_N) = -eslINFINITY; /* N<-T not possible */ + XMR(bck, p7GC_E) = XMR(bck, p7GC_C) + gm->xsc[p7P_E][p7P_MOVE]; /* E<-C, no tail */ + + DMR(bck, M) = XMR(bck, p7GC_E); /* D_M <- E (t = 1.0) */ + IMR(bck, M) = -eslINFINITY; /* I_M nonexistent */ + MMR(bck, M) = XMR(bck, p7GC_E); /* M_M <- E */ + + for (k = M-1; k >= 1; k--) + { + DMR(bck, k) = p7_FLogsum( XMR(bck, p7GC_E) + esc, + DMR(bck, k+1) + TSC(p7P_DD, k)); + IMR(bck, k) = -eslINFINITY; + MMR(bck, k) = p7_FLogsum( XMR(bck, p7GC_E) + esc, + DMR(bck, k+1) + TSC(p7P_MD, k)); + } +#if eslDEBUGLEVEL > 0 + if (gxc->do_debugging) p7_gmxchk_DumpRow(gxc->dfp, gxc, bck, i, 0, gxc->M, gxc->dbg_flags); +#endif + posterior_decode_row(i, fwd, bck, M, overall_sc, bnd); + i--; /* i is now L-1 */ + dpp = bck; + + /* If there's any checkpointing at all, there's an L-1 row to fill in */ + if (gxc->Rb+gxc->Rc > 0) + { /* i=L-1 as we enter */ + /* Compute forwards from last checkpoint (which we know is L-2) */ + dpp = gxc->dp[gxc->R0+gxc->R-1]; + fwd = gxc->dp[gxc->R0+gxc->R]; /* new row, from top of stack */ + forward_row(dsq, gm, gxc, dpp, fwd, i); + + /* Compute backwards: L-1 row from L row */ + dpp = bck; + bck = gxc->dp[(L-1)%2]; + backward_row(dsq, gm, gxc, dpp, bck, i); +#if eslDEBUGLEVEL > 0 + if (gxc->do_debugging) p7_gmxchk_DumpRow(gxc->dfp, gxc, bck, i, 0, gxc->M, gxc->dbg_flags); +#endif + + posterior_decode_row(i, fwd, bck, M, overall_sc, bnd); + dpp = bck; + i--; /* i is now L-2 if there was any checkpointing; L-1 if not. */ + } + + /* Checkpointed regions (b,c) */ + for (b = 2; b <= gxc->Rb+gxc->Rc; b++) + { /* i=L-2 as we enter here. */ + w = (b <= gxc->Rc ? b+1 : gxc->Lb); + + /* current row i (r=R0+R-1) ends a block and is checkpointed. */ + gxc->R--; + fwd = gxc->dp[gxc->R0+gxc->R]; /* pop last forward row off "stack" */ + bck = gxc->dp[i%2]; + backward_row(dsq, gm, gxc, dpp, bck, i); +#if eslDEBUGLEVEL > 0 + if (gxc->do_debugging) p7_gmxchk_DumpRow(gxc->dfp, gxc, bck, i, 0, gxc->M, gxc->dbg_flags); +#endif + posterior_decode_row(i, fwd, bck, M, overall_sc, bnd); + + /* compute Forwards from last checkpoint */ + dpp = gxc->dp[gxc->R0+gxc->R-1]; + for (i2 = i-w+1; i2 <= i-1; i2++) + { + fwd = gxc->dp[gxc->R0+gxc->R]; gxc->R++; /* push new forward row on "stack" */ + forward_row(dsq, gm, gxc, dpp, fwd, i2); + dpp = fwd; + } + + /* now compute Backwards over the block we just calculated */ + dpp = bck; + for (i2 = i-1; i2 >= i-w+1; i2--) + { + gxc->R--; + fwd = gxc->dp[gxc->R0+gxc->R]; /* pop last forward row off "stack" */ + bck = gxc->dp[i2%2]; + + backward_row(dsq, gm, gxc, dpp, bck, i2); +#if eslDEBUGLEVEL > 0 + if (gxc->do_debugging) p7_gmxchk_DumpRow(gxc->dfp, gxc, bck, i2, 0, gxc->M, gxc->dbg_flags); +#endif + + posterior_decode_row(i2, fwd, bck, M, overall_sc, bnd); + dpp = bck; + } + + i -= w; + } + /* now i=La as we leave the checkpointed regions; or i=L-1 if there was no checkpointing */ + + + /* The uncheckpointed "a" region */ + for (; i >= 1; i--) + { + gxc->R--; + fwd = gxc->dp[gxc->R0+gxc->R]; + bck = gxc->dp[i%2]; + + backward_row(dsq, gm, gxc, dpp, bck, i); +#if eslDEBUGLEVEL > 0 + if (gxc->do_debugging) p7_gmxchk_DumpRow(gxc->dfp, gxc, bck, i, 0, gxc->M, gxc->dbg_flags); +#endif + posterior_decode_row(i, fwd, bck, M, overall_sc, bnd); + + dpp = bck; + } + + /* now i=0. At i=0, only N,B states are reachable. */ + bck = gxc->dp[0]; + rsc = gm->rsc[dsq[1]]; + XMR(bck,p7GC_B) = MMR(dpp,1) + TSC(p7P_BM,0) + MSC(1); /* t_BM index is 0 because it's stored off-by-one. */ + for (k = 2; k <= M; k++) + XMR(bck,p7GC_B) = p7_FLogsum(XMR(bck,p7GC_B), MMR(dpp,k) + TSC(p7P_BM,k-1) + MSC(k)); + XMR(bck,p7GC_J) = -eslINFINITY; + XMR(bck,p7GC_C) = -eslINFINITY; + XMR(bck,p7GC_N) = p7_FLogsum( XMR(dpp, p7GC_N) + gm->xsc[p7P_N][p7P_LOOP], + XMR(bck, p7GC_B) + gm->xsc[p7P_N][p7P_MOVE]); + XMR(bck,p7GC_E) = -eslINFINITY; + + for (k = M; k >= 1; k--) + MMR(bck,k) = IMR(bck,k) = DMR(bck,k) = -eslINFINITY; +#if eslDEBUGLEVEL > 0 + if (gxc->do_debugging) p7_gmxchk_DumpRow(gxc->dfp, gxc, bck, i, 0, gxc->M, gxc->dbg_flags); +#endif + + bnd->L = L; + bnd->M = M; + p7_gbands_Reverse(bnd); + if (opt_sc != NULL) *opt_sc = XMR(bck,p7GC_N); + return eslOK; +} +/*--------------------- end, backwards --------------------------*/ + + +/***************************************************************** + * x. Posterior decoding in linear memory + *****************************************************************/ + +/* remember, the row layout is (see note 2 in p7_gmxchk.h): + * dpc: [M I D] [M I D] [M I D] ... [M I D] [E N JJ J B CC C] + * k: |-- 0 --| |-- 1 --| |-- 2 --| ... |-- M --| + * |------------- (M+1)*p7G_NSCELLS -----------| |---- p7GC_NXCELLS ---| + */ + +static inline void +posterior_decode_row(int rowi, float *fwd, float *bck, int M, float overall_sc, P7_GBANDS *bnd) +{ + int k; + int ka, kb; + + XMR(fwd, p7GC_N) = expf(XMR(fwd, p7GC_N) + XMR(bck, p7GC_N) - overall_sc); + XMR(fwd, p7GC_JJ) = expf(XMR(fwd, p7GC_JJ) + XMR(bck, p7GC_JJ) - overall_sc); + XMR(fwd, p7GC_CC) = expf(XMR(fwd, p7GC_CC) + XMR(bck, p7GC_CC) - overall_sc); + + if (XMR(fwd, p7GC_N) + XMR(fwd, p7GC_JJ) + XMR(fwd, p7GC_CC) >= 0.9) return; + + for (k = 1; k < M; k++) + { + MMR(fwd, k) = expf(MMR(fwd,k) + MMR(bck,k) - overall_sc); + IMR(fwd, k) = expf(IMR(fwd,k) + IMR(bck,k) - overall_sc); + } + MMR(fwd, M) = expf(MMR(fwd, M) + MMR(bck,M) - overall_sc); + IMR(fwd, M) = 0.0f; + + for (ka = 1; ka <= M; ka++) if (MMR(fwd, ka) + IMR(fwd, ka) >= 0.02) break; + if (ka == M+1) return; + for (kb = M; kb >= 1; kb--) if (MMR(fwd, kb) + IMR(fwd, kb) >= 0.02) break; + + p7_gbands_Prepend(bnd, rowi, ka, kb); + //printf("%4d %.4f %.4f %.4f %4d %4d\n", rowi, 1-outp, outp, denom, ka, kb); +} + + +/***************************************************************** + * 3. Benchmark driver. + *****************************************************************/ +#ifdef p7GENERIC_FWDBACK_CHK_BENCHMARK +/* + gcc -g -O2 -o generic_fwdback_chk_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_FWDBACK_CHK_BENCHMARK generic_fwdback_chk.c -lhmmer -leasel -lm + icc -O3 -static -o generic_fwdback_chk_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_FWDBACK_CHK_BENCHMARK generic_fwdback_chk.c -lhmmer -leasel -lm + ./generic_fwdback_chk_benchmark + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "p7_gmxchk.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "2000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { "-F", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only benchmark GForwardCheckpointed()", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for checkpointed generic Forward/Backward"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMXCHK *gxc = NULL; + P7_GBANDS *bnd = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + + gxc = p7_gmxchk_Create(gm->M, L, ESL_MBYTES(32)); + bnd = p7_gbands_Create(); + + /* Baseline time. */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Benchmark time. */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_GForwardCheckpointed (dsq, L, gm, gxc, &sc); + if (! esl_opt_GetBoolean(go, "-F")) + p7_GBackwardCheckpointed(dsq, L, gm, gxc, bnd, &sc); + + p7_gmxchk_Reuse(gxc); + p7_gbands_Reuse(bnd); + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_gmxchk_Destroy(gxc); + p7_gbands_Destroy(bnd); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_FWDBACK_CHK_BENCHMARK*/ +/*----------------- end, benchmark ------------------------------*/ + + + +/***************************************************************** + * x. Unit tests. + *****************************************************************/ +#ifdef p7GENERIC_FWDBACK_CHK_TESTDRIVE +#include "esl_sq.h" +#include "esl_randomseq.h" + +static void +scoring_comparison(ESL_DSQ *dsq, int L, P7_PROFILE *gm, P7_GMX *gx, P7_GMXCHK *gxc, P7_GBANDS *bnd) +{ + char msg[] = "generic_fwdback_chk: score comparison test failure"; + float tolerance = 0.01; /* nats (absolute score difference) */ + float fsc1, fsc2; + float bsc1, bsc2; + + if ( p7_gmx_GrowTo(gx, gm->M, L) != eslOK) esl_fatal(msg); + if ( p7_gmxchk_GrowTo(gxc, gm->M, L) != eslOK) esl_fatal(msg); + + if ( p7_GForward(dsq, L, gm, gx, &fsc1) != eslOK) esl_fatal(msg); + if ( p7_gmx_Reuse(gx) != eslOK) esl_fatal(msg); + if ( p7_GBackward(dsq, L, gm, gx, &bsc1) != eslOK) esl_fatal(msg); + if ( p7_GForwardCheckpointed (dsq, L, gm, gxc, &fsc2) != eslOK) esl_fatal(msg); + if ( p7_GBackwardCheckpointed(dsq, L, gm, gxc, bnd, &bsc2) != eslOK) esl_fatal(msg); + + if ( fabs(fsc1-bsc1) > tolerance) esl_fatal(msg); + if ( fabs(fsc1-fsc2) > tolerance) esl_fatal(msg); + if ( fabs(bsc1-bsc2) > tolerance) esl_fatal(msg); + + if ( p7_gmx_Reuse(gx) != eslOK) esl_fatal(msg); + if ( p7_gmxchk_Reuse(gxc) != eslOK) esl_fatal(msg); + if ( p7_gbands_Reuse(bnd) != eslOK) esl_fatal(msg); +} + +static void +utest_randomseq(ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, + P7_PROFILE *gm, P7_BG *bg, int nseq, int L) +{ + char msg[] = "generic_fwdback_chk: random seq test failure"; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_GMX *gx = p7_gmx_Create(gm->M, 100); + P7_GMXCHK *gxc = p7_gmxchk_Create(gm->M, 100, ESL_MBYTES(32)); + P7_GBANDS *bnd = p7_gbands_Create(); + int idx; + + for (idx = 0; idx < nseq; idx++) + { + if (esl_rsq_xfIID(rng, bg->f, abc->K, L, dsq) != eslOK) esl_fatal(msg); + scoring_comparison(dsq, L, gm, gx, gxc, bnd); + } + + p7_gmxchk_Destroy(gxc); + p7_gmx_Destroy(gx); + p7_gbands_Destroy(bnd); + free(dsq); +} + +static void +utest_emitseq(ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, + P7_HMM *hmm, P7_PROFILE *gm, P7_BG *bg, int nseq) +{ + char msg[] = "generic_fwdback_chk: emitted seq test failure"; + ESL_SQ *sq = esl_sq_CreateDigital(abc); + P7_GMX *gx = p7_gmx_Create(gm->M, 100); + P7_GMXCHK *gxc = p7_gmxchk_Create(gm->M, 100, ESL_MBYTES(32)); + P7_GBANDS *bnd = p7_gbands_Create(); + int idx; + + for (idx = 0; idx < nseq; idx++) + { + if ( p7_ProfileEmit(rng, hmm, gm, bg, sq, NULL) != eslOK) esl_fatal(msg); + + scoring_comparison(sq->dsq, sq->n, gm, gx, gxc, bnd); + } + + p7_gmxchk_Destroy(gxc); + p7_gmx_Destroy(gx); + p7_gbands_Destroy(bnd); + esl_sq_Destroy(sq); +} + + +#endif /*p7GENERIC_FWDBACK_CHK_TESTDRIVE*/ +/*----------------- end, unit tests -----------------------------*/ + + + +/***************************************************************** + * x. Test driver. + *****************************************************************/ +#ifdef p7GENERIC_FWDBACK_CHK_TESTDRIVE + +#include "p7_config.h" +#include "easel.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "p7_gmxchk.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "tests for generic checkpointed Forward/Backward implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *rng = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_BG *bg = NULL; + int M = 100; + int L = 200; + int nseq = 20; + char errbuf[eslERRBUFSIZE]; + + p7_FLogsumInit(); + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if (p7_hmm_Sample(rng, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile"); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal("failed to config profile"); + if (p7_hmm_Validate (hmm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, HMM is bad!: %s", errbuf); + if (p7_profile_Validate(gm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!: %s", errbuf); + + utest_randomseq(rng, abc, gm, bg, nseq, L); + utest_emitseq (rng, abc, hmm, gm, bg, nseq); + + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(rng); + esl_getopts_Destroy(go); + return 0; +} + +#endif /*p7GENERIC_FWDBACK_CHK_TESTDRIVE*/ +/*------------------ end, test driver ---------------------------*/ + + + +/***************************************************************** + * 4. Example main() + *****************************************************************/ +#ifdef p7GENERIC_FWDBACK_CHK_EXAMPLE +/* + gcc -g -O2 -o generic_fwdback_chk_example -Dp7GENERIC_FWDBACK_CHK_EXAMPLE -I. -I../easel -L. -L../easel generic_fwdback_chk.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "p7_gmxchk.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of checkpointed Forward/Backward, generic implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + P7_GMXCHK *gxc = NULL; + P7_GBANDS *bnd = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float fsc, fsc2; + float bsc, bsc2; + float nullsc; + int status; + + /* Initialize log-sum calculator */ + p7_FLogsumInit(); + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file, or file open failed"); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + + /* Allocate matrices */ + fwd = p7_gmx_Create(gm->M, 400); + bck = p7_gmx_Create(gm->M, 400); + gxc = p7_gmxchk_Create(gm->M, 400, ESL_MBYTES(32)); + bnd = p7_gbands_Create(); + + while ( (status = esl_sqio_Read(sqfp, sq)) != eslEOF) + { + if (status == eslEFORMAT) p7_Fail("Parse failed (sequence file %s)\n%s\n", sqfp->filename, sqfp->get_error(sqfp)); + else if (status != eslOK) p7_Fail("Unexpected error %d reading sequence file %s", status, sqfp->filename); + + /* Resize the DP matrices if necessary */ + p7_gmx_GrowTo (fwd, gm->M, sq->n); + p7_gmx_GrowTo (bck, gm->M, sq->n); + p7_gmxchk_GrowTo(gxc, gm->M, sq->n); + + //printf("Allocation: %ld\n", p7_gmxchk_Sizeof(fwdc)); + + /* Set the profile and null model's target length models */ + p7_bg_SetLength(bg, sq->n); + p7_ReconfigLength(gm, sq->n); + + /* Run Forward in both modes */ + p7_GForward (sq->dsq, sq->n, gm, fwd, &fsc); + p7_GForwardCheckpointed(sq->dsq, sq->n, gm, gxc, &fsc2); + + /* Dump the DP matrices. (Voluminous; only small examples are reasonable) */ + //p7_gmx_Dump(stdout, fwd, p7_DEFAULT); + //p7_gmxchk_Dump(stdout, gxc, p7_DEFAULT); + + /* Run Backward in both modes */ + p7_GBackward (sq->dsq, sq->n, gm, bck, &bsc); + //p7_gmx_Dump(stdout, bck, p7_DEFAULT); + + //p7_gmxchk_SetDumpMode(gxc, stdout, p7_DEFAULT); + p7_GBackwardCheckpointed(sq->dsq, sq->n, gm, gxc, bnd, &bsc2); + //p7_gmxchk_SetDumpMode(gxc, NULL, 0); + + p7_gbands_Dump(stdout, bnd); + + /* Those scores are partial log-odds likelihoods in nats. + * Subtract off the rest of the null model, convert to bits. + */ + p7_bg_NullOne(bg, sq->dsq, sq->n, &nullsc); + + printf("%-30s %10.4f %10.4f %10.4f %10.4f %10.4f %10.4f %10.4f %10.4f\n", + sq->name, + fsc, fsc2, + (fsc - nullsc) / eslCONST_LOG2, (fsc2 - nullsc) / eslCONST_LOG2, + bsc, bsc2, + (bsc - nullsc) / eslCONST_LOG2, (bsc2 - nullsc) / eslCONST_LOG2); + + p7_gmx_Reuse(fwd); + p7_gmx_Reuse(bck); + p7_gmxchk_Reuse(gxc); + p7_gbands_Reuse(bnd); + esl_sq_Reuse(sq); + } + + /* Cleanup */ + esl_sqfile_Close(sqfp); + esl_sq_Destroy(sq); + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(bck); + p7_gmxchk_Destroy(gxc); + p7_gbands_Destroy(bnd); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_FWDBACK_CHK_EXAMPLE*/ +/*------------------- end, example main() -----------------------*/ + + +/* References: + * SRE J8/109-112, Oct 2011: implementation plan. + */ + + diff --git a/bioinformaticsProject/hmmer/src/generic_fwdback_rescaled.c b/bioinformaticsProject/hmmer/src/generic_fwdback_rescaled.c new file mode 100644 index 0000000..7377988 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_fwdback_rescaled.c @@ -0,0 +1,642 @@ +/* + * gcc -o generic_fwdback_rescaled_example -mssse3 -I. -I../easel -L../easel -L. generic_fwdback_rescaled.c -lhmmer -leasel + */ + +#include "p7_config.h" + +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +extern int p7_GForwardOdds(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *opt_sc); +extern int p7_profile_CopyInfoFromHMM(P7_PROFILE *gm, const P7_HMM *hmm); +extern int p7_profile_ReconfigLengthInOdds(P7_PROFILE *gm, int L); +extern int p7_profile_ConfigInOdds (const P7_HMM *hmm, const P7_BG *bg, P7_PROFILE *gm, int L, int mode); +extern int p7_profile_ConfigInOdds_DDScaled(const P7_HMM *hmm, const P7_BG *bg, P7_PROFILE *gm, int L, float *ret_ddscale); +extern float p7_gmx_Max(P7_GMX *gx); +extern float p7_gmx_Min(P7_GMX *gx); + + +#define STYLES "--dd,--fs,--sw,--ls,--s" /* Exclusive choice for alignment mode */ + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "--dd", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "DD-scaled unihit glocal alignment", 0 }, + { "--fs", eslARG_NONE,"default",NULL, NULL, STYLES, NULL, NULL, "multihit local alignment", 0 }, + { "--sw", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit local alignment", 0 }, + { "--ls", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "multihit glocal alignment", 0 }, + { "--s", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit glocal alignment", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "testbed for Farrar DD-scaled Forward, generic implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_PROFILE *gmref = NULL; + P7_GMX *fwd = NULL; + P7_GMX *fwdref = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float fsc, fscref; + float nullsc; + float ddscale = 0.0; + float min, max; + int status; + + printf("%-30s %-30s %-10s %-10s\n", "# profile name", "# seq name", "fwd (test)", "fwd (ref) "); + printf("%-30s %-30s %10s %10s\n", "#--------------", "#--------------", "----------", "----------"); + + + /* Open the HMM file */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + + while ( (status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslEOF) + { + if (status == eslEOD) p7_Fail("read failed, HMM file %s may be truncated?", hmmfile); + else if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", hmmfile); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", hmmfile); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", hmmfile); + + /* Open the sqfile */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + bg = p7_bg_Create(abc); + + /* Config the test model however we were asked to */ + gm = p7_profile_Create(hmm->M, abc); + if (esl_opt_GetBoolean(go, "--dd")) status = p7_profile_ConfigInOdds_DDScaled(hmm, bg, gm, sq->n, &ddscale); + else if (esl_opt_GetBoolean(go, "--fs")) status = p7_profile_ConfigInOdds (hmm, bg, gm, sq->n, p7_LOCAL); + else if (esl_opt_GetBoolean(go, "--sw")) status = p7_profile_ConfigInOdds (hmm, bg, gm, sq->n, p7_UNILOCAL); + else if (esl_opt_GetBoolean(go, "--ls")) status = p7_profile_ConfigInOdds (hmm, bg, gm, sq->n, p7_GLOCAL); + else if (esl_opt_GetBoolean(go, "--s")) status = p7_profile_ConfigInOdds (hmm, bg, gm, sq->n, p7_UNIGLOCAL); + if (status == eslERANGE) printf("# MODEL ENTRY UNDERFLOW: %s\n", hmm->name); + + /* Config the reference model the same way */ + gmref = p7_profile_Create(hmm->M, abc); + if (esl_opt_GetBoolean(go, "--dd")) status = p7_ProfileConfig(hmm, bg, gmref, sq->n, p7_UNIGLOCAL); + else if (esl_opt_GetBoolean(go, "--fs")) status = p7_ProfileConfig(hmm, bg, gmref, sq->n, p7_LOCAL); + else if (esl_opt_GetBoolean(go, "--sw")) status = p7_ProfileConfig(hmm, bg, gmref, sq->n, p7_UNILOCAL); + else if (esl_opt_GetBoolean(go, "--ls")) status = p7_ProfileConfig(hmm, bg, gmref, sq->n, p7_GLOCAL); + else if (esl_opt_GetBoolean(go, "--s")) status = p7_ProfileConfig(hmm, bg, gmref, sq->n, p7_UNIGLOCAL); + + fwd = p7_gmx_Create(gm->M, 400); + fwdref = p7_gmx_Create(gmref->M, 400); + + while ( (status = esl_sqio_Read(sqfp, sq)) != eslEOF) + { + if (status == eslEFORMAT) p7_Fail("Parse failed (sequence file %s)\n%s\n", sqfp->filename, sqfp->get_error(sqfp)); + else if (status != eslOK) p7_Fail("Unexpected error %d reading sequence file %s", status, sqfp->filename); + + /* Resize DP matrix if necessary */ + p7_gmx_GrowTo(fwd, gm->M, sq->n); + p7_gmx_GrowTo(fwdref, gmref->M, sq->n); + + /* Set the profile and null model's target length models */ + p7_bg_SetLength(bg, sq->n); + p7_profile_ReconfigLengthInOdds(gm, sq->n); + p7_ReconfigLength (gmref, sq->n); + + /* Run Forward test version*/ + p7_GForwardOdds (sq->dsq, sq->n, gm, fwd, &fsc); + fsc += ddscale; + + /* Run Forward reference version */ + p7_GForward( sq->dsq, sq->n, gmref, fwdref, &fscref); + + //p7_gmx_Dump(stdout, fwd, p7_SHOW_LOG); + + /* Those scores are partial log-odds likelihoods in nats. + * Subtract off the rest of the null model, convert to bits. + */ + p7_bg_NullOne(bg, sq->dsq, sq->n, &nullsc); + + min = p7_gmx_Min(fwd); + max = p7_gmx_Max(fwd); + fsc = (fsc - nullsc) / eslCONST_LOG2; + fscref = (fscref - nullsc) / eslCONST_LOG2; + printf("%-30s %-30s %10.4f %10.4f %10.4g %10.4g %4s %9s %9s\n", + gm->name, sq->name, fsc, fscref, + min, max, + (fabs(fsc - fscref) >= 0.5 ? "FAIL" : "pass"), + (min == 0.0 ? "UNDERFLOW" : "ok"), + ((max > 1e37 || isinf(max))? "OVERFLOW" : "ok")); + + + p7_gmx_Reuse(fwd); + p7_gmx_Reuse(fwdref); + esl_sq_Reuse(sq); + } + + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(fwdref); + p7_profile_Destroy(gm); + p7_profile_Destroy(gmref); + p7_hmm_Destroy(hmm); + p7_bg_Destroy(bg); + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + } + + /* Cleanup */ + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} + +int +p7_GForwardOdds(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *opt_sc) +{ + float const *tsc = gm->tsc; + float **dp = gx->dp; + float *xmx = gx->xmx; + int M = gm->M; + int i,k; + float esc = p7_profile_IsLocal(gm) ? 1.0f : 0.0f; + float totscale = 0.0f; + float rescale; + + /* Initialization of the zero row */ + XMX(0,p7G_N) = 1.0f; /* S->N, p=1 */ + XMX(0,p7G_B) = gm->xsc[p7P_N][p7P_MOVE]; /* S->N->B, 1*t_NB */ + XMX(0,p7G_E) = XMX(0,p7G_C) = XMX(0,p7G_J) = 0.0f; /* need seq to get here */ + for (k = 0; k <= M; k++) + MMX(0,k) = IMX(0,k) = DMX(0,k) = 0.0f; + + /* Recursion + * boundary conditions: tsc[0][] = impossible for all eight transitions (no node 0) + * D_1 wastefully calculated (doesn't exist) + */ + for (i = 1; i <= L; i++) + { + float const *rsc = gm->rsc[dsq[i]]; + float sc; + + MMX(i,0) = IMX(i,0) = DMX(i,0) = 0.0f; + XMX(i, p7G_E) = 0.0f; + + for (k = 1; k < M; k++) + { + /* match state */ + sc = MMX(i-1,k-1) * TSC(p7P_MM,k-1) + + IMX(i-1,k-1) * TSC(p7P_IM,k-1) + + XMX(i-1,p7G_B) * TSC(p7P_BM,k-1) + + DMX(i-1,k-1) * TSC(p7P_DM,k-1); + MMX(i,k) = sc * MSC(k); + + /* insert state */ + sc = MMX(i-1,k) * TSC(p7P_MI,k) + + IMX(i-1,k) * TSC(p7P_II,k); + IMX(i,k) = sc * ISC(k); + + /* delete state */ + DMX(i,k) = MMX(i,k-1) * TSC(p7P_MD,k-1) + + DMX(i,k-1) * TSC(p7P_DD,k-1); + + /* E state update */ + XMX(i,p7G_E) += MMX(i,k) * esc + + DMX(i,k) * esc; + } + /* unrolled match state M_M */ + sc = MMX(i-1,M-1) * TSC(p7P_MM,M-1) + + IMX(i-1,M-1) * TSC(p7P_IM,M-1) + + XMX(i-1,p7G_B) * TSC(p7P_BM,M-1) + + DMX(i-1,M-1) * TSC(p7P_DM,M-1); + MMX(i,M) = sc * MSC(M); + IMX(i,M) = 0.0f; + + /* unrolled delete state D_M */ + DMX(i,M) = MMX(i,M-1) * TSC(p7P_MD,M-1) + + DMX(i,M-1) * TSC(p7P_DD,M-1); + + /* unrolled E state update */ + XMX(i,p7G_E) += MMX(i,M) + DMX(i,M); + + /* J state */ + XMX(i,p7G_J) = XMX(i-1,p7G_J) * gm->xsc[p7P_J][p7P_LOOP] + + XMX(i, p7G_E) * gm->xsc[p7P_E][p7P_LOOP]; + /* C state */ + XMX(i,p7G_C) = XMX(i-1,p7G_C) * gm->xsc[p7P_C][p7P_LOOP] + + XMX(i, p7G_E) * gm->xsc[p7P_E][p7P_MOVE]; + /* N state */ + XMX(i,p7G_N) = XMX(i-1,p7G_N) * gm->xsc[p7P_N][p7P_LOOP]; + + /* B state */ + XMX(i,p7G_B) = XMX(i, p7G_N) * gm->xsc[p7P_N][p7P_MOVE] + + XMX(i, p7G_J) * gm->xsc[p7P_J][p7P_MOVE]; + + /* sparse rescaling */ + if (XMX(i,p7G_E) > 1.0e4) + { + rescale = 1.0 / XMX(i,p7G_E); + totscale += log(XMX(i,p7G_E)); + + XMX(i,p7G_N) *= rescale; + XMX(i,p7G_B) *= rescale; + XMX(i,p7G_E) = 1.0; + XMX(i,p7G_J) *= rescale; + XMX(i,p7G_C) *= rescale; + for (k = 1; k <= M; k++) + { + MMX(i,k) *= rescale; + DMX(i,k) *= rescale; + IMX(i,k) *= rescale; + } + } + } + + if (opt_sc != NULL) *opt_sc = log(XMX(L,p7G_C) * gm->xsc[p7P_C][p7P_MOVE]) + totscale; + gx->M = M; + gx->L = L; + return eslOK; +} + + +/* this is a copy of a block of modelconfig.c::p7_ProfileConfig() + * ...and could replace it + */ +int +p7_profile_CopyInfoFromHMM(P7_PROFILE *gm, const P7_HMM *hmm) +{ + int z; + int status; + + /* Contract checks */ + if (gm->abc->type != hmm->abc->type) ESL_XEXCEPTION(eslEINVAL, "HMM and profile alphabet don't match"); + if (hmm->M > gm->allocM) ESL_XEXCEPTION(eslEINVAL, "profile too small to hold HMM"); + if (! (hmm->flags & p7H_CONS)) ESL_XEXCEPTION(eslEINVAL, "HMM must have a consensus to transfer to the profile"); + + /* Copy some pointer references and other info across from HMM */ + gm->M = hmm->M; + gm->max_length = hmm->max_length; + gm->mode = p7_NO_MODE; + gm->roff = -1; + gm->eoff = -1; + gm->offs[p7_MOFFSET] = -1; + gm->offs[p7_FOFFSET] = -1; + gm->offs[p7_POFFSET] = -1; + if (gm->name != NULL) free(gm->name); + if (gm->acc != NULL) free(gm->acc); + if (gm->desc != NULL) free(gm->desc); + if ((status = esl_strdup(hmm->name, -1, &(gm->name))) != eslOK) goto ERROR; + if ((status = esl_strdup(hmm->acc, -1, &(gm->acc))) != eslOK) goto ERROR; + if ((status = esl_strdup(hmm->desc, -1, &(gm->desc))) != eslOK) goto ERROR; + if (hmm->flags & p7H_RF) strcpy(gm->rf, hmm->rf); + if (hmm->flags & p7H_MMASK) strcpy(gm->mm, hmm->mm); + if (hmm->flags & p7H_CONS) strcpy(gm->consensus, hmm->consensus); /* must be present, actually, so the flag test is just for symmetry w/ other optional HMM fields */ + if (hmm->flags & p7H_CS) strcpy(gm->cs, hmm->cs); + for (z = 0; z < p7_NEVPARAM; z++) gm->evparam[z] = hmm->evparam[z]; + for (z = 0; z < p7_NCUTOFFS; z++) gm->cutoff[z] = hmm->cutoff[z]; + for (z = 0; z < p7_MAXABET; z++) gm->compo[z] = hmm->compo[z]; + + return eslOK; + + ERROR: + return status; +} + + +int +p7_profile_ReconfigLengthInOdds(P7_PROFILE *gm, int L) +{ + float ploop, pmove; + + /* Configure N,J,C transitions so they bear L/(2+nj) of the total + * unannotated sequence length L. + */ + pmove = (2.0f + gm->nj) / ((float) L + 2.0f + gm->nj); /* 2/(L+2) for sw; 3/(L+3) for fs */ + ploop = 1.0f - pmove; + gm->xsc[p7P_N][p7P_LOOP] = gm->xsc[p7P_C][p7P_LOOP] = gm->xsc[p7P_J][p7P_LOOP] = ploop; + gm->xsc[p7P_N][p7P_MOVE] = gm->xsc[p7P_C][p7P_MOVE] = gm->xsc[p7P_J][p7P_MOVE] = pmove; + gm->L = L; + return eslOK; +} + +/* like p7_ProfileConfig(), but in odds ratios rather than log. + * This is the "normal" odds ratio version. + * See _DDScaled for an experimental version for glocal/global. + * + * In glocal, because we left-wing-retract the BMk transition, + * that transition can underflow. If it does, return . + */ +int +p7_profile_ConfigInOdds(const P7_HMM *hmm, const P7_BG *bg, P7_PROFILE *gm, int L, int mode) +{ + int k,x; + float *occ = NULL; + float *tp, *rp; + float sc[p7_MAXCODE]; + float Z; + int status; + int did_underflow = FALSE; + + if ( (status = p7_profile_CopyInfoFromHMM(gm, hmm)) != eslOK) return status; + gm->mode = mode; + + /* Some initializations assumed log space. Change them to probspace. */ + esl_vec_FSet(gm->tsc, p7P_NTRANS, 0.0f); /* node 0 nonexistent, has no transitions */ + if (gm->M > 1) { + p7P_TSC(gm, 1, p7P_DM) = 0.0f; /* delete state D_1 is wing-retracted */ + p7P_TSC(gm, 1, p7P_DD) = 0.0f; + } + for (x = 0; x < gm->abc->Kp; x++) { + p7P_MSC(gm, 0, x) = 0.0f; /* no emissions from nonexistent M_0... */ + p7P_ISC(gm, 0, x) = 0.0f; /* or I_0... */ + /* I_M is initialized in profile config, when we know actual M, not just allocated max M */ + } + x = esl_abc_XGetGap(gm->abc); /* no emission can emit/score gap characters */ + esl_vec_FSet(gm->rsc[x], (gm->M+1)*p7P_NR, 0.0f); + x = esl_abc_XGetMissing(gm->abc); /* no emission can emit/score missing data characters */ + esl_vec_FSet(gm->rsc[x], (gm->M+1)*p7P_NR, 0.0f); + + + /* Entry scores. Recall k-1,k off-by-one storage issue here. + * p7P_TSC(gm, k-1, p7P_BM) is the t_BMk transition + */ + if (p7_profile_IsLocal(gm)) + { + /* Local mode entry: occ[k] /( \sum_i occ[i] * (M-i+1)) + * (Reduces to uniform 2/(M(M+1)) for occupancies of 1.0) */ + Z = 0.; + ESL_ALLOC(occ, sizeof(float) * (hmm->M+1)); + + if ((status = p7_hmm_CalculateOccupancy(hmm, occ, NULL)) != eslOK) goto ERROR; + for (k = 1; k <= hmm->M; k++) + Z += occ[k] * (float) (hmm->M-k+1); + for (k = 1; k <= hmm->M; k++) + p7P_TSC(gm, k-1, p7P_BM) = occ[k] / Z; /* note off-by-one: entry at Mk stored as [k-1][BM] */ + free(occ); + } + else /* glocal modes: left wing retraction. Check for underflow. */ + { + Z = hmm->t[0][p7H_MD]; + p7P_TSC(gm, 0, p7P_BM) = 1.0 - Z; + for (k = 1; k < hmm->M; k++) + { + p7P_TSC(gm, k, p7P_BM) = Z * hmm->t[k][p7H_DM]; + Z *= hmm->t[k][p7H_DD]; + } + if (p7P_TSC(gm, hmm->M-1, p7P_BM) == 0.0f) did_underflow = TRUE; + } + + /* E state loop/move probabilities: nonzero for MOVE allows loops/multihits + * N,C,J transitions are set later by target length model config + */ + if (p7_profile_IsMultihit(gm)) { + gm->xsc[p7P_E][p7P_MOVE] = 0.5f; + gm->xsc[p7P_E][p7P_LOOP] = 0.5f; + gm->nj = 1.0f; + } else { + gm->xsc[p7P_E][p7P_MOVE] = 1.0f; + gm->xsc[p7P_E][p7P_LOOP] = 0.0f; + gm->nj = 0.0f; + } + + /* main profile transition scores */ + for (k = 1; k < gm->M; k++) + { + tp = gm->tsc + k * p7P_NTRANS; + tp[p7P_MM] = hmm->t[k][p7H_MM]; + tp[p7P_MI] = hmm->t[k][p7H_MI]; + tp[p7P_MD] = hmm->t[k][p7H_MD]; + tp[p7P_IM] = hmm->t[k][p7H_IM]; + tp[p7P_II] = hmm->t[k][p7H_II]; + tp[p7P_DM] = hmm->t[k][p7H_DM]; + tp[p7P_DD] = hmm->t[k][p7H_DD]; + } + + /* match residue scores */ + /* we still compute this in log space, then exp() it back, + * because degenerate residue scores are avg log odds. + */ + sc[hmm->abc->K] = -eslINFINITY; /* gap character */ + sc[hmm->abc->Kp-2] = -eslINFINITY; /* nonresidue character */ + sc[hmm->abc->Kp-1] = -eslINFINITY; /* missing data character */ + for (k = 1; k <= hmm->M; k++) { + for (x = 0; x < hmm->abc->K; x++) + sc[x] = log(hmm->mat[k][x] / bg->f[x]); + esl_abc_FExpectScVec(hmm->abc, sc, bg->f); + for (x = 0; x < hmm->abc->Kp; x++) { + rp = gm->rsc[x] + k * p7P_NR; + rp[p7P_MSC] = exp(sc[x]); + } + } + + /* insert residue scores, hardwired to odds ratio of 1.0 */ + for (x = 0; x < gm->abc->Kp; x++) + { + for (k = 1; k < hmm->M; k++) p7P_ISC(gm, k, x) = 1.0f; + p7P_ISC(gm, hmm->M, x) = 0.0f; /* init I_M to impossible. */ + } + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->K) = 0.0f; /* gap symbol */ + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->Kp-2) = 0.0f; /* nonresidue symbol */ + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->Kp-1) = 0.0f; /* missing data symbol */ + + + /* Remaining specials, [NCJ][MOVE | LOOP] are set by ReconfigLengthInOdds() */ + gm->L = 0; /* force ReconfigLengthInOdds to reconfig */ + if ((status = p7_profile_ReconfigLengthInOdds(gm, L)) != eslOK) goto ERROR; + + return (did_underflow ? eslERANGE : eslOK); + + ERROR: + if (occ) free(occ); + return status; +} + + +/* Experimental version that scales by DD transitions + * Model must be unihit glocal (p7_UNILOCAL) + */ +int +p7_profile_ConfigInOdds_DDScaled(const P7_HMM *hmm, const P7_BG *bg, P7_PROFILE *gm, int L, float *ret_ddscale) +{ + int k,x; + float *occ = NULL; + float ddscale; + float *tp, *rp; + float sc[p7_MAXCODE]; + int status; + + if ( (status = p7_profile_CopyInfoFromHMM(gm, hmm)) != eslOK) return status; + gm->mode = p7_UNIGLOCAL; + + /* Some initializations assumed log space. + * Change them + */ + esl_vec_FSet(gm->tsc, p7P_NTRANS, 0.0f); /* node 0 nonexistent, has no transitions */ + if (gm->M > 1) { + p7P_TSC(gm, 1, p7P_DM) = 0.0f; /* delete state D_1 is wing-retracted */ + p7P_TSC(gm, 1, p7P_DD) = 0.0f; + } + for (x = 0; x < gm->abc->Kp; x++) { + p7P_MSC(gm, 0, x) = 0.0f; /* no emissions from nonexistent M_0... */ + p7P_ISC(gm, 0, x) = 0.0f; /* or I_0... */ + /* I_M is initialized in profile config, when we know actual M, not just allocated max M */ + } + x = esl_abc_XGetGap(gm->abc); /* no emission can emit/score gap characters */ + esl_vec_FSet(gm->rsc[x], (gm->M+1)*p7P_NR, 0.0f); + x = esl_abc_XGetMissing(gm->abc); /* no emission can emit/score missing data characters */ + esl_vec_FSet(gm->rsc[x], (gm->M+1)*p7P_NR, 0.0f); + + + /* glocal mode BMk entries, DD-scaled */ + p7P_TSC(gm, 0, p7P_BM) = 1.0 - hmm->t[0][p7H_MD]; + for (k = 1; k < hmm->M; k++) + p7P_TSC(gm, k, p7P_BM) = hmm->t[0][p7H_MD] * hmm->t[k][p7H_DM] / hmm->t[k][p7H_DD]; + + /* unihit E state loop/move probabilities */ + gm->xsc[p7P_E][p7P_MOVE] = 1.0f; + gm->xsc[p7P_E][p7P_LOOP] = 0.0f; + gm->nj = 0.0f; + + /* main profile transition scores, DD-scaled */ + for (k = 1; k < gm->M; k++) + { + tp = gm->tsc + k * p7P_NTRANS; + ddscale = 1.0f/hmm->t[k][p7H_DD]; + + tp[p7P_MM] = hmm->t[k][p7H_MM] * ddscale; + tp[p7P_MI] = hmm->t[k][p7H_MI]; + tp[p7P_MD] = hmm->t[k][p7H_MD] * ddscale; + tp[p7P_IM] = hmm->t[k][p7H_IM] * ddscale; + tp[p7P_II] = hmm->t[k][p7H_II]; + tp[p7P_DM] = hmm->t[k][p7H_DM] * ddscale; + tp[p7P_DD] = 1.0; + } + + /* compute log(\prod_k=1..M-1 t_k(DD), total rescale factor */ + ddscale = 0.0f; + if (! p7_profile_IsLocal(gm)) /* glocal mode: nonzero ddscale */ + { + for (k = 1; k < gm->M; k++) + ddscale += log(hmm->t[k][p7H_DD]); + } + + /* match residue scores */ + /* we still compute this in log space, then exp() it back, + * because degenerate residue scores are avg log odds. + */ + sc[hmm->abc->K] = -eslINFINITY; /* gap character */ + sc[hmm->abc->Kp-2] = -eslINFINITY; /* nonresidue character */ + sc[hmm->abc->Kp-1] = -eslINFINITY; /* missing data character */ + for (k = 1; k <= hmm->M; k++) { + for (x = 0; x < hmm->abc->K; x++) + sc[x] = log(hmm->mat[k][x] / bg->f[x]); + esl_abc_FExpectScVec(hmm->abc, sc, bg->f); + for (x = 0; x < hmm->abc->Kp; x++) { + rp = gm->rsc[x] + k * p7P_NR; + rp[p7P_MSC] = exp(sc[x]); + } + } + + /* insert residue scores, hardwired to odds ratio of 1.0 */ + for (x = 0; x < gm->abc->Kp; x++) + { + for (k = 1; k < hmm->M; k++) p7P_ISC(gm, k, x) = 1.0f; + p7P_ISC(gm, hmm->M, x) = 0.0f; /* init I_M to impossible. */ + } + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->K) = 0.0f; /* gap symbol */ + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->Kp-2) = 0.0f; /* nonresidue symbol */ + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->Kp-1) = 0.0f; /* missing data symbol */ + + + /* Remaining specials, [NCJ][MOVE | LOOP] are set by ReconfigLengthInOdds() */ + gm->L = 0; /* force ReconfigLengthInOdds to reconfig */ + if ((status = p7_profile_ReconfigLengthInOdds(gm, L)) != eslOK) goto ERROR; + + *ret_ddscale = ddscale; + return eslOK; + + ERROR: + if (occ) free(occ); + return status; +} + + + + +float +p7_gmx_Max(P7_GMX *gx) +{ + float **dp = gx->dp; + float *xmx = gx->xmx; + float max; + int i,k; + + /* all k=0 are invalid (-inf or 0 as boundary condition) */ + /* all D_1 and I_M are invalid (don't exist in search profile) */ + /* on i=0 row, only B, N are valid */ + /* on i=1 row, all I_k are invalid */ + /* in unihit mode, all J are invalid */ + max = ESL_MAX( XMX(0, p7G_N), XMX(0, p7G_B)); + for (i = 1; i <= gx->L; i++) + { + for (k = 1; k <= gx->M; k++) max = ESL_MAX( max, MMX(i,k)); + for (k = 2; k <= gx->M; k++) max = ESL_MAX( max, DMX(i,k)); + if (i > 1) + for (k = 1; k < gx->M; k++) max = ESL_MAX( max, IMX(i,k)); + + /* we don't have to check J; it's equal to C in multihit mode, for our current multihit parameterization of EJ=EC=0.5 */ + max = ESL_MAX(max, XMX(i, p7G_E)); + max = ESL_MAX(max, XMX(i, p7G_N)); + max = ESL_MAX(max, XMX(i, p7G_B)); + max = ESL_MAX(max, XMX(i, p7G_C)); + } + return max; +} + +float +p7_gmx_Min(P7_GMX *gx) +{ + float **dp = gx->dp; + float *xmx = gx->xmx; + float min; + int i,k; + + /* all k=0 are invalid (-inf or 0 as boundary condition) */ + /* all D_1 and I_M are invalid (don't exist in search profile) */ + /* on i=0 row, only B, N are valid */ + /* on i=1 row, all I_k are invalid */ + /* in unihit mode, all J are invalid */ + min = ESL_MIN( XMX(0, p7G_N), XMX(0, p7G_B)); + for (i = 1; i <= gx->L; i++) + { + for (k = 1; k <= gx->M; k++) min = ESL_MIN( min, MMX(i,k)); + for (k = 2; k <= gx->M; k++) min = ESL_MIN( min, DMX(i,k)); + if (i > 1) + for (k = 1; k < gx->M; k++) min = ESL_MIN( min, IMX(i,k)); + + /* we don't have to check J; it's equal to C in multihit mode, for our current multihit parameterization of EJ=EC=0.5 */ + min = ESL_MIN(min, XMX(i, p7G_E)); + min = ESL_MIN(min, XMX(i, p7G_N)); + min = ESL_MIN(min, XMX(i, p7G_B)); + min = ESL_MIN(min, XMX(i, p7G_C)); + } + return min; +} + diff --git a/bioinformaticsProject/hmmer/src/generic_msv.c b/bioinformaticsProject/hmmer/src/generic_msv.c new file mode 100644 index 0000000..3cfc18b --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_msv.c @@ -0,0 +1,573 @@ +/* MSV algorithm; generic (non-SIMD) version. + * + * Contents: + * 1. MSV implementation. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + * + * SRE, Fri Aug 15 10:38:21 2008 [Janelia] + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_gumbel.h" + + +#include "hmmer.h" + +/***************************************************************** + * 1. MSV implementation. + *****************************************************************/ + +/* Function: p7_GMSV() + * Synopsis: The MSV score algorithm (slow, correct version) + * Incept: SRE, Thu Dec 27 08:33:39 2007 [Janelia] + * + * Purpose: Calculates the maximal score of ungapped local segment + * pair alignments, taking advantage of the fact that this + * is simply equivalent to setting all MM transitions to 1.0 + * in a multihit local profile. + * + * Args: dsq - sequence in digitized form, 1..L + * L - length of dsq + * gm - profile (can be in any mode) + * gx - DP matrix with room for an MxL alignment + * nu - configuration: expected number of hits (use 2.0 as a default) + * opt_sc - optRETURN: MSV lod score in nats. + * + * Returns: on success. + * + * Note: This is written deliberately as a modified p7_GViterbi + * routine. It could be faster -- we don't need the + * interleaved dp matrix or residue scores, since we aren't + * calculating D or I states, for example, and we could do + * without some of the special states -- but speed is the + * job of the optimized implementations. Rather, the goal + * here is to establish a stable, probabilistically correct + * reference calculation. (Thus, the CC, NN, JJ transitions + * are real scores here, not fixed to 0 as in the optimized + * versions.) + */ +int +p7_GMSV(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float nu, float *opt_sc) +{ + float **dp = gx->dp; + float *xmx = gx->xmx; + float tloop = logf((float) L / (float) (L+3)); + float tmove = logf( 3.0f / (float) (L+3)); + float tbmk = logf( 2.0f / ((float) gm->M * (float) (gm->M+1))); + float tej = logf((nu - 1.0f) / nu); + float tec = logf(1.0f / nu); + int i,k; + + + XMX(0,p7G_N) = 0; + XMX(0,p7G_B) = tmove; /* S->N->B, no N-tail */ + XMX(0,p7G_E) = XMX(0,p7G_C) = XMX(0,p7G_J) =-eslINFINITY; /* need seq to get here */ + for (k = 0; k <= gm->M; k++) + MMX(0,k) = -eslINFINITY; /* need seq to get here */ + + + for (i = 1; i <= L; i++) + { + + float const *rsc = gm->rsc[dsq[i]]; + MMX(i,0) = -eslINFINITY; + XMX(i,p7G_E) = -eslINFINITY; + for (k = 1; k <= gm->M; k++) + { + MMX(i,k) = MSC(k) + ESL_MAX(MMX(i-1,k-1), XMX(i-1,p7G_B) + tbmk); + XMX(i,p7G_E) = ESL_MAX(XMX(i,p7G_E), MMX(i,k)); + } + + + XMX(i,p7G_J) = ESL_MAX( XMX(i-1,p7G_J) + tloop, XMX(i, p7G_E) + tej); + XMX(i,p7G_C) = ESL_MAX( XMX(i-1,p7G_C) + tloop, XMX(i, p7G_E) + tec); + XMX(i,p7G_N) = XMX(i-1,p7G_N) + tloop; + XMX(i,p7G_B) = ESL_MAX( XMX(i, p7G_N) + tmove, XMX(i, p7G_J) + tmove); + + } + + + gx->M = gm->M; + gx->L = L; + if (opt_sc != NULL) *opt_sc = XMX(L,p7G_C) + tmove; + return eslOK; +} +/*---------------------- end, msv -------------------------------*/ + + + + +/* Function: p7_GMSV_longtarget() + * Synopsis: Finds windows with MSV scores above some threshold (slow, correct version) + * Incept: TJW, Thu Jun 17 14:32:08 EDT 2010 [Janelia] + * + * + * Purpose: Calculates the MSV score for regions of sequence of length + * residues, and captures the positions at which such regions exceed the + * score required to be significant in the eyes of the calling function + * (usually p=0.02). Note that this variant performs MSV computations, + * while the optimized versions typically perform SSV (never passing + * through the J state). See comments in impl_sse/p7_MSVFilter_longtarget() + * for details + * + * Rather than simply capturing positions at which a score threshold + * is reached, this function establishes windows around those + * high-scoring positions, then merges overlapping windows. + * + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * gm - profile (can be in any mode) + * gx - DP matrix + * nu - configuration: expected number of hits (use 2.0 as a default) + * bg - the background model, required for translating a P-value threshold into a score threshold + * P - p-value below which a region is captured as being above threshold + * windowlist - RETURN: array of hit windows (start and end of diagonal) for the above-threshold areas + * * + * + * Note: Not worried about speed here. Based on p7_GMSV + * + * Returns: on success. + * + * Throws: if allocation is too small. + */ +int +p7_GMSV_longtarget(const ESL_DSQ *dsq, int L, P7_PROFILE *gm, P7_GMX *gx, float nu, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist) +{ + + /* A couple differences between this MSV and the standard one: + * + * - the transitions are parameterized based on window length (gm->max_length), not target length. + * - because we're scanning along a sequence with the implicit assumption that each + * point we're inspecting is part of a window, but we don't know where that window starts/ends, + * we don't use the tloop cost in its proper form. Instead of incuring the tloop cost for + * each pass through the N/C states, we simply build the whole chunk of loop cost into the + * threshold (treating it as though it would've been added at the end of computation) + * + */ + + float **dp = gx->dp; + float *xmx = gx->xmx; + float tloop = logf((float) gm->max_length / (float) (gm->max_length+3)); + float tmove = logf( 3.0f / (float) (gm->max_length+3)); + float tbmk = logf( 2.0f / ((float) gm->M * (float) (gm->M+1))); + float tej = logf((nu - 1.0f) / nu); + float tec = logf(1.0f / nu); + int i,k; + + float tloop_total = tloop * gm->max_length; + + //int target_end; + int target_start; + + + float sc_thresh; + float nullsc; + + + /* + * Computing the score required to let P meet the F1 prob threshold + * In original code, converting from an MSV score S (the score getting + * to state C) to a probability goes like this: + * S = XMX(L,p7G_C) + * usc = S + tmove + tloop_total + * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda) + * and we're computing the threshold score S, so reverse it: + * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda) + * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda) + * S = usc - tmove - tloop_total + * + * Here, I compute threshold with length model based on max_length. Usually, the + * length of a window returned by this scan will be longer than max_length. Doesn't + * really matter - in any case, both the bg and om models will change with roughly + * 1 bit for each doubling of the length model, so they offset. + */ + float invP = esl_gumbel_invsurv(P, gm->evparam[p7_MMU], gm->evparam[p7_MLAMBDA]); + p7_bg_SetLength(bg, gm->max_length); + p7_ReconfigLength(gm, gm->max_length); + p7_bg_NullOne (bg, dsq, gm->max_length, &nullsc); + + sc_thresh = nullsc + (invP * eslCONST_LOG2) - tmove - tloop_total; + + + XMX(0,p7G_N) = 0; + XMX(0,p7G_B) = tmove; /* S->N->B, no N-tail */ + XMX(0,p7G_E) = XMX(0,p7G_C) = XMX(0,p7G_J) =-eslINFINITY; /* need seq to get here */ + for (k = 0; k <= gm->M; k++) + MMX(0,k) = -eslINFINITY; /* need seq to get here */ + + for (i = 1; i <= L; i++) + { + float const *rsc = gm->rsc[dsq[i]]; + + MMX(i,0) = -eslINFINITY; + XMX(i,p7G_E) = -eslINFINITY; + + for (k = 1; k <= gm->M; k++) + { + MMX(i,k) = MSC(k) + ESL_MAX(MMX(i-1,k-1), XMX(i-1,p7G_B) + tbmk); + XMX(i,p7G_E) = ESL_MAX(XMX(i,p7G_E), MMX(i,k)); + } + + XMX(i,p7G_J) = ESL_MAX( XMX(i-1,p7G_J) /*+ tloop*/, XMX(i, p7G_E) + tej); + XMX(i,p7G_C) = ESL_MAX( XMX(i-1,p7G_C) /*+ tloop*/, XMX(i, p7G_E) + tec); + XMX(i,p7G_N) = XMX(i-1,p7G_N) /*+ tloop*/; + XMX(i,p7G_B) = ESL_MAX( XMX(i, p7G_N) + tmove, XMX(i, p7G_J) + tmove); + + + if (XMX(i,p7G_C) > sc_thresh) + { + target_start = ESL_MAX(1, i - gm->max_length + 1); + //target_end = ESL_MIN(L, i + gm->max_length - 1); + + //TODO: this is wrong - it just pretends the hit was to the middle of the model, to get dummy to + // quit crashing. Results are definitely wrong. + // Need to get diagonal backtracking implemented in dummy + p7_hmmwindow_new(windowlist, 0, target_start, 0, gm->M/2, 1, XMX(i,p7G_C), p7_NOCOMPLEMENT, L); + + + //start the search all over again + XMX(i,p7G_N) = 0; + XMX(i,p7G_B) = tmove; /* S->N->B, no N-tail */ + XMX(i,p7G_E) = XMX(i,p7G_C) = XMX(i,p7G_J) =-eslINFINITY; /* need seq to get here */ + for (k = 0; k <= gm->M; k++) + MMX(i,k) = -eslINFINITY; + + } + + } + + + return eslOK; + +} +/*------------------ end, p7_GMSV_longtarget() ------------------------*/ + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +#ifdef p7GENERIC_MSV_BENCHMARK +/* + gcc -g -O2 -o generic_msv_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_MSV_BENCHMARK generic_msv.c -lhmmer -leasel -lm + icc -O3 -static -o generic_msv_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_MSV_BENCHMARK generic_msv.c -lhmmer -leasel -lm + ./benchmark-generic-msv + */ +/* As of Fri Dec 28 14:48:39 2007 + * Viterbi = 61.8 Mc/s + * Forward = 8.6 Mc/s + * Backward = 7.1 Mc/s + * GMSV = 55.9 Mc/s + * (gcc -g -O2, 3.2GHz Xeon, N=50K, L=400, M=72 RRM_1 model) + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "20000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for generic MSV"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *gx = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + gx = p7_gmx_Create(gm->M, L); + + /* Baseline time. */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Benchmark time. */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_GMSV (dsq, L, gm, gx, 2.0, &sc); + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_MSV_BENCHMARK*/ +/*----------------- end, benchmark ------------------------------*/ + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7GENERIC_MSV_TESTDRIVE +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_vectorops.h" +/* The MSV score can be validated against Viterbi (provided we trust + * Viterbi), by creating a multihit local profile in which: + * 1. All t_MM scores = 0 + * 2. All other core transitions = -inf + * 3. All t_BMk entries uniformly log 2/(M(M+1)) + */ +static void +utest_msv(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, P7_PROFILE *gm, int nseq, int L) +{ + P7_PROFILE *g2 = NULL; + ESL_DSQ *dsq = NULL; + P7_GMX *gx = NULL; + float sc1, sc2; + int k, idx; + + if ((dsq = malloc(sizeof(ESL_DSQ) *(L+2))) == NULL) esl_fatal("malloc failed"); + if ((gx = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("matrix creation failed"); + if ((g2 = p7_profile_Clone(gm)) == NULL) esl_fatal("profile clone failed"); + + /* Make g2's scores appropriate for simulating the MSV algorithm in Viterbi */ + esl_vec_FSet(g2->tsc, p7P_NTRANS * g2->M, -eslINFINITY); + for (k = 1; k < g2->M; k++) p7P_TSC(g2, k, p7P_MM) = 0.0f; + for (k = 0; k < g2->M; k++) p7P_TSC(g2, k, p7P_BM) = log(2.0f / ((float) g2->M * (float) (g2->M+1))); + + for (idx = 0; idx < nseq; idx++) + { + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal("seq generation failed"); + + if (p7_GMSV (dsq, L, gm, gx, 2.0, &sc1) != eslOK) esl_fatal("MSV failed"); + if (p7_GViterbi(dsq, L, g2, gx, &sc2) != eslOK) esl_fatal("viterbi failed"); + if (fabs(sc1-sc2) > 0.0001) esl_fatal("MSV score not equal to Viterbi score"); + } + + p7_gmx_Destroy(gx); + p7_profile_Destroy(g2); + free(dsq); + return; +} +#endif /*p7GENERIC_MSV_TESTDRIVE*/ +/*----------------- end, unit tests -----------------------------*/ + + +/***************************************************************** + * 4. Test driver. + *****************************************************************/ +/* gcc -g -Wall -Dp7GENERIC_MSV_TESTDRIVE -I. -I../easel -L. -L../easel -o generic_msv_utest generic_msv.c -lhmmer -leasel -lm + */ +#ifdef p7GENERIC_MSV_TESTDRIVE +#include "easel.h" +#include "esl_getopts.h" +#include "esl_msa.h" + +#include "p7_config.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for the generic Msv implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_BG *bg = NULL; + int M = 100; + int L = 200; + int nseq = 20; + char errbuf[eslERRBUFSIZE]; + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile"); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal("failed to config profile"); + if (p7_hmm_Validate (hmm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, HMM is bad!: %s", errbuf); + if (p7_profile_Validate(gm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!: %s", errbuf); + + utest_msv(go, r, abc, bg, gm, nseq, L); + + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_MSV_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + +/***************************************************************** + * 5. Example + *****************************************************************/ +#ifdef p7GENERIC_MSV_EXAMPLE +/* + gcc -g -O2 -Dp7GENERIC_MSV_EXAMPLE -I. -I../easel -L. -L../easel -o generic_msv_example generic_msv.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_gumbel.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "--nu", eslARG_REAL, "2.0", NULL, NULL, NULL, NULL, NULL, "set nu param to : expected # MSV diagonals", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of generic MSV algorithm"; + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + float nu = esl_opt_GetReal(go, "--nu"); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + P7_TRACE *tr = NULL; + int format = eslSQFILE_UNKNOWN; + float sc, nullsc, seqscore, lnP; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Open sequence file */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + + /* Allocate matrix */ + fwd = p7_gmx_Create(gm->M, sq->n); + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) + { + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_gmx_GrowTo(fwd, gm->M, sq->n); + + /* Run MSV */ + p7_GMSV(sq->dsq, sq->n, gm, fwd, nu, &sc); + + /* Calculate bit score and P-value using standard null1 model*/ + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + seqscore = (sc - nullsc) / eslCONST_LOG2; + lnP = esl_gumbel_logsurv(seqscore, gm->evparam[p7_MMU], gm->evparam[p7_MLAMBDA]); + + /* output suitable for direct use in profmark benchmark postprocessors: + * + */ + printf("%g\t%.2f\t%s\t%s\n", exp(lnP), seqscore, sq->name, hmm->name); + + esl_sq_Reuse(sq); + } + if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n", sqfp->filename, esl_sqfile_GetErrorBuf(sqfp)); + else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", status, sqfp->filename); + + /* Cleanup */ + esl_sqfile_Close(sqfp); + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + p7_gmx_Destroy(fwd); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_MSV_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/generic_null2.c b/bioinformaticsProject/hmmer/src/generic_null2.c new file mode 100644 index 0000000..1e21a0b --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_null2.c @@ -0,0 +1,438 @@ +/* "null2" model: biased composition correction + * + * Contents: + * 1. Null2 estimation algorithms. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + * + * See p7_domaindef.c -- null2 correction of per-seq and per-domain + * scores is embedded within p7_domaindef's logic; we split it out + * to a separate file because it's so important. + * + * SRE, Thu Feb 28 09:51:27 2008 [Janelia] + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +#define MMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_M]) +#define IMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_I]) +#define DMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_D]) +#define XMX(i,s) (xmx[(i) * p7G_NXCELLS + (s)]) + + +/***************************************************************** + * 1. Null2 estimation algorithms. + *****************************************************************/ + +/* Function: p7_GNull2_ByExpectation() + * Synopsis: Calculate null2 model from posterior probabilities. + * Incept: SRE, Thu Feb 28 09:52:28 2008 [Janelia] + * + * Purpose: Calculate the "null2" model for the envelope encompassed + * by a posterior probability calculation for model + * . Return the null2 odds emission probabilities + * $\frac{f'{x}}{f{x}}$ in , which caller + * provides as space for at least Kp> residues. + * + * The expectation method is applied to envelopes in + * simple, well resolved regions (regions containing just a + * single envelope, where no stochastic traceback + * clustering was required). + * + * Make sure that the posterior probability matrix has + * been calculated by the caller for only the envelope; thus + * its rows are numbered <1..Ld>, for envelope + * of length . + * + * Args: gm - profile, in any mode, target length model set to + * pp - posterior prob matrix, for against domain envelope (offset) + * null2 - RETURN: null2 odds ratios per residue; <0..Kp-1>; caller allocated space + * + * Returns: on success; contains the null2 scores. The 0 + * row of has been used as temp space, and happens to contain + * the expected frequency that each M,I,N,C,J state is used in this + * matrix to generate residues. + * + * Throws: (no abnormal error conditions) + */ +int +p7_GNull2_ByExpectation(const P7_PROFILE *gm, P7_GMX *pp, float *null2) +{ + int M = gm->M; + int Ld = pp->L; + float **dp = pp->dp; + float *xmx = pp->xmx; + float xfactor; + int x; /* over symbols 0..K-1 */ + int i; /* over offset envelope dsq positions 1..Ld */ + int k; /* over model M states 1..M, I states 1..M-1 */ + + /* Calculate expected # of times that each emitting state was used + * in generating the Ld residues in this domain. + * The 0 row in is used to hold these numbers. + */ + esl_vec_FCopy(pp->dp[1], (M+1)*p7G_NSCELLS, pp->dp[0]); + esl_vec_FCopy(pp->xmx+p7G_NXCELLS, p7G_NXCELLS, pp->xmx); + for (i = 2; i <= Ld; i++) + { + esl_vec_FAdd(pp->dp[0], pp->dp[i], (M+1)*p7G_NSCELLS); + esl_vec_FAdd(pp->xmx, pp->xmx+i*p7G_NXCELLS, p7G_NXCELLS); + } + + /* Convert those expected #'s to log frequencies; these we'll use as + * the log posterior weights. + */ + esl_vec_FLog(pp->dp[0], (M+1)*p7G_NSCELLS); + esl_vec_FLog(pp->xmx, p7G_NXCELLS); + + esl_vec_FIncrement(pp->dp[0], (M+1)*p7G_NSCELLS, -log((float)Ld)); + esl_vec_FIncrement(pp->xmx, p7G_NXCELLS, -log((float)Ld)); + + /* Calculate null2's log odds emission probabilities, by taking + * posterior weighted sum over all emission vectors used in paths + * explaining the domain. + * This is dog-slow; a point for future optimization. + */ + xfactor = XMX(0,p7G_N); + xfactor = p7_FLogsum(xfactor, XMX(0,p7G_C)); + xfactor = p7_FLogsum(xfactor, XMX(0,p7G_J)); + esl_vec_FSet(null2, gm->abc->K, -eslINFINITY); + for (x = 0; x < gm->abc->K; x++) + { + for (k = 1; k < M; k++) + { + null2[x] = p7_FLogsum(null2[x], MMX(0,k) + p7P_MSC(gm, k, x)); + null2[x] = p7_FLogsum(null2[x], IMX(0,k) + p7P_ISC(gm, k, x)); + } + null2[x] = p7_FLogsum(null2[x], MMX(0,M) + p7P_MSC(gm, k, x)); + null2[x] = p7_FLogsum(null2[x], xfactor); + } + + esl_vec_FExp (null2, gm->abc->K); + /* now null2[x] = \frac{f_d(x)}{f_0(x)} for all x in alphabet, + * 0..K-1, where f_d(x) are the ad hoc "null2" residue frequencies + * for this envelope. + */ + + /* make valid scores for all degeneracies, by averaging the odds ratios. */ + esl_abc_FAvgScVec(gm->abc, null2); /* does not set gap, nonres, missing */ + null2[gm->abc->K] = 1.0; /* gap character */ + null2[gm->abc->Kp-2] = 1.0; /* nonresidue "*" */ + null2[gm->abc->Kp-1] = 1.0; /* missing data "~" */ + + return eslOK; +} + + +/* Function: p7_GNull2_ByTrace() + * Synopsis: Assign null2 scores to an envelope by the sampling method. + * Incept: SRE, Thu May 1 10:00:43 2008 [Janelia] + * + * Purpose: Given a traceback for an alignment of model to + * some target sequence; calculate null2 odds ratios $\frac{f'{x}}{f{x}}$ + * as the state-usage-weighted emission probabilities, + * with state usages calculated by counting emissions used + * at positions in the trace. + * + * Because we only need to collect state usages from the + * trace , the target sequence is irrelevant. Because + * we are only averaging emission odds ratios from model + * , the configuration of is irrelevant (uni + * vs. multihit, or length config). + * + * Args: gm - model, in any configuration; only emission odds are used + * tr - traceback for any region (or all) of a target sequence + * zstart - first elem in to collect from; use 0 for complete + * zend - last elem in to collect from; use tr->N-1 for complete + * wrk - DP matrix w/ at least one row, for workspace + * null2 - RESULT: odds ratios f'(x)/f(x) for all Kp residues + * + * Returns: on success, and the n2sc> scores are set + * for region . + * + * Throws: on allocation error. + */ +int +p7_GNull2_ByTrace(const P7_PROFILE *gm, const P7_TRACE *tr, int zstart, int zend, P7_GMX *wrk, float *null2) +{ + float **dp = wrk->dp; /* so that {MDI}MX() macros work */ + float *xmx = wrk->xmx; /* so that XMX() macro works */ + int Ld = 0; + int M = gm->M; + int k; /* index over model position */ + int x; /* index over residues */ + int z; /* index over trace position */ + float xfactor; + + /* We'll use the i=0 row in wrk for working space: dp[0][] and xmx[0..4]. */ + esl_vec_FSet(wrk->dp[0], (M+1)*p7G_NSCELLS, 0.0); + esl_vec_FSet(wrk->xmx, p7G_NXCELLS, 0.0); + + /* Calculate emitting state usage in this particular trace segment: */ + for (z = zstart; z <= zend; z++) + { + switch (tr->st[z]) { + case p7T_M: Ld++; MMX(0,tr->k[z]) += 1.0; break; + case p7T_I: Ld++; IMX(0,tr->k[z]) += 1.0; break; + case p7T_N: if (tr->st[z-1] == p7T_N) { Ld++; XMX(0,p7G_N) += 1.0; } break; + case p7T_C: if (tr->st[z-1] == p7T_C) { Ld++; XMX(0,p7G_C) += 1.0; } break; + case p7T_J: if (tr->st[z-1] == p7T_J) { Ld++; XMX(0,p7G_J) += 1.0; } break; + } + } + esl_vec_FScale(wrk->dp[0], (M+1)*p7G_NSCELLS, (1.0 / (float) Ld)); + esl_vec_FScale(wrk->xmx, p7G_NXCELLS, (1.0 / (float) Ld)); + + /* Calculate null2's odds ratio emission probabilities, by taking + * posterior weighted sum over all emission vectors used in paths + * explaining the domain. + */ + esl_vec_FSet(null2, gm->abc->K, 0.0); + xfactor = XMX(0,p7G_N) + XMX(0,p7G_C) + XMX(0,p7G_J); + for (x = 0; x < gm->abc->K; x++) + { + for (k = 1; k < M; k++) + { + null2[x] += MMX(0,k) * expf(p7P_MSC(gm, k, x)); + null2[x] += IMX(0,k) * expf(p7P_ISC(gm, k, x)); + } + null2[x] += MMX(0,M) * expf(p7P_MSC(gm, M, x)); + null2[x] += xfactor; + } + /* now null2[x] = \frac{f_d(x)}{f_0(x)} odds ratios for all x in alphabet, + * 0..K-1, where f_d(x) are the ad hoc "null2" residue frequencies + * for this envelope. + */ + + /* make valid scores for all degeneracies, by averaging the odds ratios. */ + esl_abc_FAvgScVec(gm->abc, null2); + null2[gm->abc->K] = 1.0; /* gap character */ + null2[gm->abc->Kp-2] = 1.0; /* nonresidue "*" */ + null2[gm->abc->Kp-1] = 1.0; /* missing data "~" */ + + return eslOK; +} + + + + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7GENERIC_NULL2_BENCHMARK +/* + icc -O3 -static -o generic_null2_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_NULL2_BENCHMARK generic_null2.c -lhmmer -leasel -lm + ./benchmark-generic-null2 + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ ------------------- + 21 Aug 2008 7.77u (185 Mc/s) 14.13u (192 Mc/s) 139.03u (165.6 Mc/s) + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for posterior residue null2, generic version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *gx1 = NULL; + P7_GMX *gx2 = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + float null2[p7_MAXCODE]; + int i; + float fsc, bsc; + double Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + gx1 = p7_gmx_Create(gm->M, L); + gx2 = p7_gmx_Create(gm->M, L); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_GForward (dsq, L, gm, gx1, &fsc); + p7_GBackward(dsq, L, gm, gx2, &bsc); + p7_GDecoding(gm, gx1, gx2, gx2); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_GNull2_ByExpectation(gm, gx2, null2); + esl_stopwatch_Stop(w); + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_gmx_Destroy(gx1); + p7_gmx_Destroy(gx2); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_NULL2_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7GENERIC_NULL2_TESTDRIVE + +static void +utest_correct_normalization(ESL_RANDOMNESS *r, P7_PROFILE *gm, P7_BG *bg, ESL_DSQ *dsq, int L, P7_GMX *fwd, P7_GMX *bck) +{ + char *msg = "normalization unit test failed"; + float null2[p7_MAXABET]; + float sum; + int x; + + esl_rsq_xfIID(r, bg->f, gm->abc->K, L, dsq); /* sample a random digital seq of length L */ + + p7_GForward (dsq, L, gm, fwd, NULL); + p7_GBackward(dsq, L, gm, bck, NULL); + p7_PosteriorNull2(L, gm, fwd, bck, bck); /* now contains posterior probs */ + p7_Null2Corrections(gm, dsq, L, 0, bck, fwd, null2, NULL, NULL); /* use as workspace */ + + /* Convert null2 from lod score to frequencies f_d */ + for (x = 0; x < gm->abc->K; x++) + null2[x] = exp(null2[x]) * bg->f[x]; + + sum = esl_vec_FSum(null2, gm->abc->K); + if (sum < 0.99 || sum > 1.01) esl_fatal(msg); +} + + +#endif /*p7GENERIC_NULL2_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7GENERIC_NULL2_TESTDRIVE +/* gcc -o null2_utest -g -Wall -I../easel -L../easel -I. -L. -Dp7NULL2_TESTDRIVE null2.c -lhmmer -leasel -lm + * ./null2_utest + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_alphabet.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "length of sampled sequences", 0 }, + { "-M", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "length of sampled HMM", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for the null2 correction calculation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + ESL_DSQ *dsq = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + + /* Sample a random HMM */ + p7_hmm_Sample(r, M, abc, &hmm); + + /* Configure a profile from the sampled HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + + /* Other initial allocations */ + dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + fwd = p7_gmx_Create(gm->M, L); + bck = p7_gmx_Create(gm->M, L); + p7_FLogsumInit(); + + utest_correct_normalization(r, gm, bg, dsq, L, fwd, bck); + + free(dsq); + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(bck); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_NULL2_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + + + + + + + diff --git a/bioinformaticsProject/hmmer/src/generic_optacc.c b/bioinformaticsProject/hmmer/src/generic_optacc.c new file mode 100644 index 0000000..a03b8e5 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_optacc.c @@ -0,0 +1,623 @@ +/* Optimal accuracy alignment; generic version. + * + * Contents: + * 1. Optimal alignment accuracy fill. + * 2. Optimal alignment accuracy traceback. + * 3. Benchmark driver + * 4. Unit tests + * 5. Test driver + * 6. Example + * + * SRE, Fri Feb 29 12:48:46 2008 [Janelia] + */ +#include "p7_config.h" + +#include + +#include "easel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Optimal alignment fill and traceback. + *****************************************************************/ + +#define MMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_M]) +#define IMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_I]) +#define DMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_D]) +#define XMX(i,s) (xmx[(i) * p7G_NXCELLS + (s)]) +#define TSCDELTA(s,k) ( (tsc[(k) * p7P_NTRANS + (s)] == -eslINFINITY) ? FLT_MIN : 1.0) + +/* The TSCDELTA is used to make impossible paths impossible in the + * optimal accuracy decoding algorithm; see Kall et al (2005). What we + * want to do is multiply by a Kronecker delta that's 1 when the + * transition probability is finite, and 0 when it's zero (when the + * log prob is -eslINFINITY). But we can't do that easily, when we're + * in log space, because 0 * -eslINFINITY = NaN. Instead, we use a + * tiny number (FLT_MIN, ~1e-37). + * + * A side concern is that we don't want to put a bunch of if-else + * branches in the code; compilers should be able to generate more + * efficient code from the TSCDELTA() construction. + */ + + +/* Function: p7_GOptimalAccuracy() + * Synopsis: Optimal accuracy decoding: fill. + * Incept: SRE, Fri Feb 29 11:56:49 2008 [Janelia] + * + * Purpose: Calculates the fill step of the optimal accuracy decoding + * algorithm \citep{Kall05}. + * + * Caller provides the posterior decoding matrix , + * which was calculated by Forward/Backward on a target sequence + * of length using the query model . + * + * Caller also provides a DP matrix , allocated for the + * M> by L> comparison. The routine fills this in + * with OA scores. + * + * Args: gm - query profile + * pp - posterior decoding matrix created by + * gx - RESULT: caller provided DP matrix for M> by + * ret_e - RETURN: expected number of correctly decoded positions + * + * Returns: on success, and <*ret_e> contains the final OA + * score, which is the expected number of correctly decoded + * positions in the target sequence (up to ). + * + * Throws: (no abnormal error conditions) + */ +int +p7_GOptimalAccuracy(const P7_PROFILE *gm, const P7_GMX *pp, P7_GMX *gx, float *ret_e) +{ + int L = pp->L; + float **dp = gx->dp; + float *xmx = gx->xmx; + float const *tsc = gm->tsc; + int i,k; + int M = gm->M; + float esc = p7_profile_IsLocal(gm) ? 1.0 : 0.0; + float t1, t2; + + /* Initialization of the zero row (i=0; no residues to account for. */ + XMX(0,p7G_N) = 0.; /* S->N, p=1 */ + XMX(0,p7G_B) = 0.; /* S->N->B, no N-tail */ + XMX(0,p7G_E) = XMX(0,p7G_C) = XMX(0,p7G_J) = -eslINFINITY; /* need seq to get here */ + for (k = 0; k <= M; k++) + MMX(0,k) = IMX(0,k) = DMX(0,k) = -eslINFINITY; /* need seq to get here */ + + for (i = 1; i <= L; i++) + { + MMX(i,0) = IMX(i,0) = DMX(i,0) = XMX(i,p7G_E) = -eslINFINITY; + + for (k = 1; k < M; k++) + { + MMX(i,k) = ESL_MAX(ESL_MAX(TSCDELTA(p7P_MM, k-1) * (MMX(i-1,k-1) + pp->dp[i][k*p7G_NSCELLS + p7G_M]), + TSCDELTA(p7P_IM, k-1) * (IMX(i-1,k-1) + pp->dp[i][k*p7G_NSCELLS + p7G_M])), + ESL_MAX(TSCDELTA(p7P_DM, k-1) * (DMX(i-1,k-1) + pp->dp[i][k*p7G_NSCELLS + p7G_M]), + TSCDELTA(p7P_BM, k-1) * (XMX(i-1,p7G_B)+ pp->dp[i][k*p7G_NSCELLS + p7G_M]))); + + XMX(i,p7G_E) = ESL_MAX(XMX(i,p7G_E), + esc * MMX(i,k)); + + IMX(i,k) = ESL_MAX(TSCDELTA(p7P_MI, k) * (MMX(i-1,k) + pp->dp[i][k*p7G_NSCELLS + p7G_I]), + TSCDELTA(p7P_II, k) * (IMX(i-1,k) + pp->dp[i][k*p7G_NSCELLS + p7G_I])); + + DMX(i,k) = ESL_MAX(TSCDELTA(p7P_MD, k-1) * MMX(i,k-1), + TSCDELTA(p7P_DD, k-1) * DMX(i,k-1)); + } + + /* last node (k=M) is unrolled; it has no I state, and it has a p=1.0 {MD}->E transition even in local mode */ + MMX(i,M) = ESL_MAX(ESL_MAX(TSCDELTA(p7P_MM, M-1) * (MMX(i-1,M-1) + pp->dp[i][M*p7G_NSCELLS + p7G_M]), + TSCDELTA(p7P_IM, M-1) * (IMX(i-1,M-1) + pp->dp[i][M*p7G_NSCELLS + p7G_M])), + ESL_MAX(TSCDELTA(p7P_DM, M-1) * (DMX(i-1,M-1) + pp->dp[i][M*p7G_NSCELLS + p7G_M]), + TSCDELTA(p7P_BM, M-1) * (XMX(i-1,p7G_B)+ pp->dp[i][M*p7G_NSCELLS + p7G_M]))); + + DMX(i,M) = ESL_MAX(TSCDELTA(p7P_MD, M-1) * MMX(i,M-1), + TSCDELTA(p7P_DD, M-1) * DMX(i,M-1)); + + /* note: we calculated XMX before DMX in the loop, because we probably had MMX(i,k) in a register. + * but now we can't do that, because XMX depends on DMX + */ + XMX(i,p7G_E) = ESL_MAX(XMX(i,p7G_E), ESL_MAX(MMX(i,M), DMX(i, M))); + + /* now the special states; it's important that E is already done, and B is done after N,J */ + t1 = ( (gm->xsc[p7P_J][p7P_LOOP] == -eslINFINITY) ? FLT_MIN : 1.0); + t2 = ( (gm->xsc[p7P_E][p7P_LOOP] == -eslINFINITY) ? FLT_MIN : 1.0); + XMX(i, p7G_J) = ESL_MAX( t1 * (XMX(i-1,p7G_J) + pp->xmx[i*p7G_NXCELLS + p7G_J]), + t2 * XMX(i, p7G_E)); + + t1 = ( (gm->xsc[p7P_C][p7P_LOOP] == -eslINFINITY) ? FLT_MIN : 1.0); + t2 = ( (gm->xsc[p7P_E][p7P_MOVE] == -eslINFINITY) ? FLT_MIN : 1.0); + XMX(i,p7G_C) = ESL_MAX( t1 * (XMX(i-1,p7G_C) + pp->xmx[i*p7G_NXCELLS + p7G_C]), + t2 * XMX(i, p7G_E)); + + t1 = ( (gm->xsc[p7P_N][p7P_LOOP] == -eslINFINITY) ? FLT_MIN : 1.0); + XMX(i,p7G_N) = t1 * (XMX(i-1,p7G_N) + pp->xmx[i*p7G_NXCELLS + p7G_N]); + + t1 = ( (gm->xsc[p7P_N][p7P_MOVE] == -eslINFINITY) ? FLT_MIN : 1.0); + t2 = ( (gm->xsc[p7P_J][p7P_MOVE] == -eslINFINITY) ? FLT_MIN : 1.0); + XMX(i,p7G_B) = ESL_MAX( t1 * XMX(i, p7G_N), + t2 * XMX(i, p7G_J)); + } + + *ret_e = XMX(L,p7G_C); + return eslOK; +} +/*---------------------- end, oa fill ---------------------------*/ + +/***************************************************************** + * 2. Optimal alignment accuracy, traceback + *****************************************************************/ + +static inline float get_postprob(const P7_GMX *pp, int scur, int sprv, int k, int i); + +static inline int select_m(const P7_PROFILE *gm, const P7_GMX *gx, int i, int k); +static inline int select_d(const P7_PROFILE *gm, const P7_GMX *gx, int i, int k); +static inline int select_i(const P7_PROFILE *gm, const P7_GMX *gx, int i, int k); +static inline int select_n(int i); +static inline int select_c(const P7_PROFILE *gm, const P7_GMX *pp, const P7_GMX *gx, int i); +static inline int select_j(const P7_PROFILE *gm, const P7_GMX *pp, const P7_GMX *gx, int i); +static inline int select_e(const P7_PROFILE *gm, const P7_GMX *gx, int i, int *ret_k); +static inline int select_b(const P7_PROFILE *gm, const P7_GMX *gx, int i); + + +/* Function: p7_GOATrace() + * Synopsis: Optimal accuracy decoding: traceback. + * Incept: SRE, Fri Feb 29 12:59:11 2008 [Janelia] + * + * Purpose: The traceback stage of the optimal accuracy decoding algorithm + * \citep{Kall05}. + * + * Caller provides the OA DP matrix that was just + * calculated by , as well as the + * posterior decoding matrix , which was calculated by + * Forward/Backward on a target sequence of length + * using the query model . + * + * Caller provides an empty traceback structure to + * hold the result, allocated to hold optional posterior + * probability annotation on residues (with + * , generally). This will be + * internally reallocated as needed for larger traces. + * + * Args: gm - query profile + * pp - posterior decoding matrix created by + * gx - OA DP matrix calculated by + * tr - RESULT: OA traceback, allocated with posterior probs + * + * Returns: on success, and contains the OA traceback. + * + * Throws: on allocation error. + */ +int +p7_GOATrace(const P7_PROFILE *gm, const P7_GMX *pp, const P7_GMX *gx, P7_TRACE *tr) +{ + int i = gx->L; /* position in seq (1..L) */ + int k = 0; /* position in model (1..M) */ + float postprob; + int sprv, scur; + int status; + +#if eslDEBUGLEVEL > 0 + if (tr->N != 0) ESL_EXCEPTION(eslEINVAL, "trace isn't empty: forgot to Reuse()?"); +#endif + + if ((status = p7_trace_AppendWithPP(tr, p7T_T, k, i, 0.0)) != eslOK) return status; + if ((status = p7_trace_AppendWithPP(tr, p7T_C, k, i, 0.0)) != eslOK) return status; + + sprv = p7T_C; + while (sprv != p7T_S) + { + switch (sprv) { + case p7T_M: scur = select_m(gm, gx, i, k); k--; i--; break; + case p7T_D: scur = select_d(gm, gx, i, k); k--; break; + case p7T_I: scur = select_i(gm, gx, i, k); i--; break; + case p7T_N: scur = select_n(i); break; + case p7T_C: scur = select_c(gm, pp, gx, i); break; + case p7T_J: scur = select_j(gm, pp, gx, i); break; + case p7T_E: scur = select_e(gm, gx, i, &k); break; + case p7T_B: scur = select_b(gm, gx, i); break; + default: ESL_EXCEPTION(eslEINVAL, "bogus state in traceback"); + } + if (scur == -1) ESL_EXCEPTION(eslEINVAL, "OA traceback choice failed"); + + postprob = get_postprob(pp, scur, sprv, k, i); + if ((status = p7_trace_AppendWithPP(tr, scur, k, i, postprob)) != eslOK) return status; + + /* For NCJ, we had to defer i decrement. */ + if ( (scur == p7T_N || scur == p7T_J || scur == p7T_C) && scur == sprv) i--; + sprv = scur; + } + tr->M = gm->M; + tr->L = gx->L; + return p7_trace_Reverse(tr); +} + +static inline float +get_postprob(const P7_GMX *pp, int scur, int sprv, int k, int i) +{ + float **dp = pp->dp; + float *xmx = pp->xmx; + + switch (scur) { + case p7T_M: return MMX(i,k); + case p7T_I: return IMX(i,k); + case p7T_N: if (sprv == scur) return XMX(i,p7G_N); + case p7T_C: if (sprv == scur) return XMX(i,p7G_C); + case p7T_J: if (sprv == scur) return XMX(i,p7G_J); + default: return 0.0; + } +} + +static inline int +select_m(const P7_PROFILE *gm, const P7_GMX *gx, int i, int k) +{ + float **dp = gx->dp; /* so {MDI}MX() macros work */ + float *xmx = gx->xmx; /* so XMX() macro works */ + float const *tsc = gm->tsc; /* so TSCDELTA() macro works */ + float path[4]; + int state[4] = { p7T_M, p7T_I, p7T_D, p7T_B }; + + path[0] = TSCDELTA(p7P_MM, k-1) * MMX(i-1,k-1); + path[1] = TSCDELTA(p7P_IM, k-1) * IMX(i-1,k-1); + path[2] = TSCDELTA(p7P_DM, k-1) * DMX(i-1,k-1); + path[3] = TSCDELTA(p7P_BM, k-1) * XMX(i-1,p7G_B); + return state[esl_vec_FArgMax(path, 4)]; +} + +static inline int +select_d(const P7_PROFILE *gm, const P7_GMX *gx, int i, int k) +{ + float **dp = gx->dp; /* so {MDI}MX() macros work */ + float const *tsc = gm->tsc; /* so TSCDELTA() macro works */ + float path[2]; + + path[0] = TSCDELTA(p7P_MD, k-1) * MMX(i, k-1); + path[1] = TSCDELTA(p7P_DD, k-1) * DMX(i, k-1); + return ((path[0] >= path[1]) ? p7T_M : p7T_D); +} + +static inline int +select_i(const P7_PROFILE *gm, const P7_GMX *gx, int i, int k) +{ + float **dp = gx->dp; /* so {MDI}MX() macros work */ + float const *tsc = gm->tsc; /* so TSCDELTA() macro works */ + float path[2]; + + path[0] = TSCDELTA(p7P_MI, k) * MMX(i-1,k); + path[1] = TSCDELTA(p7P_II, k) * IMX(i-1,k); + return ((path[0] >= path[1]) ? p7T_M : p7T_I); +} + +static inline int +select_n(int i) +{ + return ((i==0) ? p7T_S : p7T_N); +} + +static inline int +select_c(const P7_PROFILE *gm, const P7_GMX *pp, const P7_GMX *gx, int i) +{ + float t1 = ( (gm->xsc[p7P_C][p7P_LOOP] == -eslINFINITY) ? FLT_MIN : 1.0); + float t2 = ( (gm->xsc[p7P_E][p7P_MOVE] == -eslINFINITY) ? FLT_MIN : 1.0); + float *xmx = gx->xmx; /* so XMX() macro works */ + float path[2]; + + path[0] = t1 * (XMX(i-1, p7G_C) + pp->xmx[i*p7G_NXCELLS + p7G_C]); + path[1] = t2 * XMX(i,p7G_E); + return ((path[0] > path[1]) ? p7T_C : p7T_E); +} + +static inline int +select_j(const P7_PROFILE *gm, const P7_GMX *pp, const P7_GMX *gx, int i) +{ + float t1 = ( (gm->xsc[p7P_J][p7P_LOOP] == -eslINFINITY) ? FLT_MIN : 1.0); + float t2 = ( (gm->xsc[p7P_E][p7P_LOOP] == -eslINFINITY) ? FLT_MIN : 1.0); + float *xmx = gx->xmx; /* so XMX() macro works */ + float path[2]; + + path[0] = t1 * (XMX(i-1,p7G_J) + pp->xmx[i*p7G_NXCELLS + p7G_J]); + path[1] = t2 * XMX(i,p7G_E); + return ((path[0] > path[1]) ? p7T_J : p7T_E); +} + +static inline int +select_e(const P7_PROFILE *gm, const P7_GMX *gx, int i, int *ret_k) +{ + float **dp = gx->dp; /* so {MDI}MX() macros work */ + float max = -eslINFINITY; + int smax = -1; /* will be returned as "error code" if no max found */ + int kmax = -1; + int k; + + if (! p7_profile_IsLocal(gm)) /* glocal/global is easier */ + { + *ret_k = gm->M; + return ((MMX(i,gm->M) >= DMX(i,gm->M)) ? p7T_M : p7T_D); + } + + for (k = 1; k <= gm->M; k++) + { + if (MMX(i,k) >= max) { max = MMX(i,k); smax = p7T_M; kmax = k; } + if (DMX(i,k) > max) { max = DMX(i,k); smax = p7T_D; kmax = k; } + } + *ret_k = kmax; + return smax; +} + +static inline int +select_b(const P7_PROFILE *gm, const P7_GMX *gx, int i) +{ + float t1 = ( (gm->xsc[p7P_N][p7P_MOVE] == -eslINFINITY) ? FLT_MIN : 1.0); + float t2 = ( (gm->xsc[p7P_J][p7P_MOVE] == -eslINFINITY) ? FLT_MIN : 1.0); + float *xmx = gx->xmx; /* so XMX() macro works */ + float path[2]; + + path[0] = t1 * XMX(i, p7G_N); + path[1] = t2 * XMX(i, p7G_J); + return ((path[0] > path[1]) ? p7T_N : p7T_J); +} + + + +/*------------------------ end, oa traceback --------------------*/ + + + + +/***************************************************************** + * 3. Benchmark driver + *****************************************************************/ +#ifdef p7GENERIC_OPTACC_BENCHMARK +/* + icc -O3 -static -o generic_optacc_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_OPTACC_BENCHMARK generic_optacc.c -lhmmer -leasel -lm + ./benchmark-generic-optacc + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ ------------------- + 20 Aug 08: 67.96u (21.2 Mc/s) 128.14u (21.2 Mc/s) 1091.90u (21.1 Mc/s) + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "5000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { "--notrace", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only benchmark the DP fill stage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for optimal accuracy alignment, generic version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *gx1 = NULL; + P7_GMX *gx2 = NULL; + P7_TRACE *tr = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float fsc, bsc, accscore; + double Mcs; + + p7_FLogsumInit(); + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + gx1 = p7_gmx_Create(gm->M, L); + gx2 = p7_gmx_Create(gm->M, L); + tr = p7_trace_CreateWithPP(); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_GForward (dsq, L, gm, gx1, &fsc); + p7_GBackward(dsq, L, gm, gx2, &bsc); + p7_GDecoding(gm, gx1, gx2, gx2); /* is now the posterior decoding matrix */ + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + p7_GOptimalAccuracy(gm, gx2, gx1, &accscore); /* is now the OA matrix */ + + if (! esl_opt_GetBoolean(go, "--notrace")) + { + p7_GOATrace(gm, gx2, gx1, tr); + p7_trace_Reuse(tr); + } + } + esl_stopwatch_Stop(w); + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_trace_Destroy(tr); + p7_gmx_Destroy(gx1); + p7_gmx_Destroy(gx2); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_OPTACC_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + +/***************************************************************** + * 4. Unit tests + *****************************************************************/ +#ifdef p7GENERIC_OPTACC_TESTDRIVE + +#endif /*p7GENERIC_OPTACC_TESTDRIVE*/ +/*------------------- end, unit tests ---------------------------*/ + + +/***************************************************************** + * 5. Test driver + *****************************************************************/ +#ifdef p7GENERIC_OPTACC_TESTDRIVE + +#endif /*p7GENERIC_OPTACC_TESTDRIVE*/ +/*------------------ end, test driver ---------------------------*/ + + + + +/***************************************************************** + * 6. Example + *****************************************************************/ +#ifdef p7GENERIC_OPTACC_EXAMPLE +/* + gcc -g -Wall -o generic_optacc_example -Dp7GENERIC_OPTACC_EXAMPLE -I. -I../easel -L. -L../easel generic_optacc.c -lhmmer -leasel -lm + ./generic_optacc_example +*/ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-d", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump posterior residue decoding matrix", 0 }, + { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump OA matrix", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of optimal accuracy alignment, generic implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *gx1 = NULL; + P7_GMX *gx2 = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + P7_TRACE *tr = NULL; + int format = eslSQFILE_UNKNOWN; + char errbuf[eslERRBUFSIZE]; + float fsc, bsc, vsc; + float accscore; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_OpenDigital(abc, seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); /* multihit local: H3 default */ + + /* Allocations */ + gx1 = p7_gmx_Create(gm->M, sq->n); + gx2 = p7_gmx_Create(gm->M, sq->n); + tr = p7_trace_CreateWithPP(); + p7_FLogsumInit(); + + /* Run Forward, Backward; do OA fill and trace */ + p7_GForward (sq->dsq, sq->n, gm, gx1, &fsc); + p7_GBackward(sq->dsq, sq->n, gm, gx2, &bsc); + p7_GDecoding(gm, gx1, gx2, gx2); /* is now the posterior decoding matrix */ + p7_GOptimalAccuracy(gm, gx2, gx1, &accscore); /* is now the OA matrix */ + p7_GOATrace(gm, gx2, gx1, tr); + + if (esl_opt_GetBoolean(go, "-d")) p7_gmx_Dump(stdout, gx2, p7_DEFAULT); + if (esl_opt_GetBoolean(go, "-m")) p7_gmx_Dump(stdout, gx1, p7_DEFAULT); + + p7_trace_Dump(stdout, tr, gm, sq->dsq); + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) p7_Die("trace fails validation:\n%s\n", errbuf); + + printf("fwd = %.4f nats\n", fsc); + printf("bck = %.4f nats\n", bsc); + printf("acc = %.4f (%.2f%%)\n", accscore, accscore * 100. / (float) sq->n); + + p7_trace_Reuse(tr); + + p7_GViterbi(sq->dsq, sq->n, gm, gx1, &vsc); + p7_GTrace (sq->dsq, sq->n, gm, gx1, tr); + p7_trace_SetPP(tr, gx2); + p7_trace_Dump(stdout, tr, gm, sq->dsq); + + printf("vit = %.4f nats\n", vsc); + printf("acc = %.4f\n", p7_trace_GetExpectedAccuracy(tr)); + + /* Cleanup */ + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + p7_gmx_Destroy(gx1); + p7_gmx_Destroy(gx2); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_OPTACC_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + + + + + diff --git a/bioinformaticsProject/hmmer/src/generic_stotrace.c b/bioinformaticsProject/hmmer/src/generic_stotrace.c new file mode 100644 index 0000000..0839b63 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_stotrace.c @@ -0,0 +1,521 @@ +/* Stochastic traceback of a Forward matrix; generic (non-SIMD) version. + * + * Contents: + * 1. Stochastic traceback implementation. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + * + * SRE, Fri Aug 15 10:50:55 2008 [Janelia] + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_random.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Stochastic traceback implementation. + *****************************************************************/ + +/* Function: p7_GStochasticTrace() + * Synopsis: Stochastic traceback of a Forward matrix. + * Incept: SRE, Thu Jan 3 15:39:20 2008 [Janelia] + * + * Purpose: Stochastic traceback of Forward matrix to + * sample an alignment of digital sequence + * (of length ) to the profile . + * + * The sampled traceback is returned in , which the + * caller must have at least made an initial allocation of + * (the will be grown as needed here). + * + * Args: r - source of random numbers + * dsq - digital sequence aligned to, 1..L + * L - length of dsq + * gm - profile + * mx - Forward matrix to trace, L x M + * tr - storage for the recovered traceback. + * + * Returns: on success. + */ +int +p7_GStochasticTrace(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, const P7_GMX *gx, P7_TRACE *tr) +{ + int status; + int i; /* position in seq (1..L) */ + int k; /* position in model (1..M) */ + int M = gm->M; + float **dp = gx->dp; + float *xmx = gx->xmx; + float const *tsc = gm->tsc; + float *sc; /* scores of possible choices: up to 2M-1, in the case of exits to E */ + int scur, sprv; + + /* we'll index M states as 1..M, and D states as 2..M = M+2..2M: M0, D1 are impossibles. */ + ESL_ALLOC(sc, sizeof(float) * (2*M+1)); + + k = 0; + i = L; + if ((status = p7_trace_Append(tr, p7T_T, k, i)) != eslOK) goto ERROR; + if ((status = p7_trace_Append(tr, p7T_C, k, i)) != eslOK) goto ERROR; + sprv = p7T_C; + while (sprv != p7T_S) + { + switch (tr->st[tr->N-1]) { + /* C(i) comes from C(i-1) or E(i) */ + case p7T_C: + if (XMX(i,p7G_C) == -eslINFINITY) ESL_XEXCEPTION(eslFAIL, "impossible C reached at i=%d", i); + + sc[0] = XMX(i-1, p7G_C) + gm->xsc[p7P_C][p7P_LOOP]; + sc[1] = XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_MOVE]; + esl_vec_FLogNorm(sc, 2); + scur = (esl_rnd_FChoose(r, sc, 2) == 0) ? p7T_C : p7T_E; + break; + + /* E connects from any M or D state. k set here */ + case p7T_E: + if (XMX(i, p7G_E) == -eslINFINITY) ESL_XEXCEPTION(eslFAIL, "impossible E reached at i=%d", i); + + if (p7_profile_IsLocal(gm)) { /* local models come from any M, D */ + sc[0] = sc[M+1] = -eslINFINITY; + for (k = 1; k <= M; k++) sc[k] = MMX(i,k); + for (k = 2; k <= M; k++) sc[k+M] = DMX(i,k); + esl_vec_FLogNorm(sc, 2*M+1); /* now sc is a prob vector */ + k = esl_rnd_FChoose(r, sc, 2*M+1); + if (k <= M) scur = p7T_M; + else { k -= M; scur = p7T_D; } + } else { /* glocal models come from M_M or D_M */ + k = M; + sc[0] = MMX(i,M); + sc[1] = DMX(i,M); + esl_vec_FLogNorm(sc, 2); /* now sc is a prob vector */ + scur = (esl_rnd_FChoose(r, sc, 2) == 0) ? p7T_M : p7T_D; + } + break; + + /* M connects from {MDI} i-1,k-1, or B */ + case p7T_M: + if (MMX(i,k) == -eslINFINITY) ESL_XEXCEPTION(eslFAIL, "impossible M reached at k=%d,i=%d", k,i); + + sc[0] = XMX(i-1,p7G_B) + TSC(p7P_BM, k-1); + sc[1] = MMX(i-1,k-1) + TSC(p7P_MM, k-1); + sc[2] = IMX(i-1,k-1) + TSC(p7P_IM, k-1); + sc[3] = DMX(i-1,k-1) + TSC(p7P_DM, k-1); + esl_vec_FLogNorm(sc, 4); + switch (esl_rnd_FChoose(r, sc, 4)) { + case 0: scur = p7T_B; break; + case 1: scur = p7T_M; break; + case 2: scur = p7T_I; break; + case 3: scur = p7T_D; break; + } + k--; + i--; + break; + + /* D connects from M,D at i,k-1 */ + case p7T_D: + if (DMX(i, k) == -eslINFINITY) ESL_XEXCEPTION(eslFAIL, "impossible D reached at k=%d,i=%d", k,i); + + sc[0] = MMX(i, k-1) + TSC(p7P_MD, k-1); + sc[1] = DMX(i, k-1) + TSC(p7P_DD, k-1); + esl_vec_FLogNorm(sc, 2); + scur = (esl_rnd_FChoose(r, sc, 2) == 0) ? p7T_M : p7T_D; + k--; + break; + + /* I connects from M,I at i-1,k */ + case p7T_I: + if (IMX(i,k) == -eslINFINITY) ESL_XEXCEPTION(eslFAIL, "impossible I reached at k=%d,i=%d", k,i); + + sc[0] = MMX(i-1,k) + TSC(p7P_MI, k); + sc[1] = IMX(i-1,k) + TSC(p7P_II, k); + esl_vec_FLogNorm(sc, 2); + scur = (esl_rnd_FChoose(r, sc, 2) == 0) ? p7T_M : p7T_I; + i--; + break; + + /* N connects from S, N */ + case p7T_N: + if (XMX(i, p7G_N) == -eslINFINITY) ESL_XEXCEPTION(eslFAIL, "impossible N reached at i=%d", i); + scur = (i == 0) ? p7T_S : p7T_N; + break; + + /* B connects from N, J */ + case p7T_B: + if (XMX(i,p7G_B) == -eslINFINITY) ESL_XEXCEPTION(eslFAIL, "impossible B reached at i=%d", i); + + sc[0] = XMX(i, p7G_N) + gm->xsc[p7P_N][p7P_MOVE]; + sc[1] = XMX(i, p7G_J) + gm->xsc[p7P_J][p7P_MOVE]; + esl_vec_FLogNorm(sc, 2); + scur = (esl_rnd_FChoose(r, sc, 2) == 0) ? p7T_N : p7T_J; + break; + + /* J connects from E(i) or J(i-1) */ + case p7T_J: + if (XMX(i,p7G_J) == -eslINFINITY) ESL_XEXCEPTION(eslFAIL, "impossible J reached at i=%d", i); + + sc[0] = XMX(i-1,p7G_J) + gm->xsc[p7P_J][p7P_LOOP]; + sc[1] = XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_LOOP]; + esl_vec_FLogNorm(sc, 2); + scur = (esl_rnd_FChoose(r, sc, 2) == 0) ? p7T_J : p7T_E; + break; + + default: ESL_XEXCEPTION(eslFAIL, "bogus state in traceback"); + } /* end switch over statetype[tpos-1] */ + + /* Append this state and the current i,k to be explained to the growing trace */ + if ((status = p7_trace_Append(tr, scur, k, i)) != eslOK) goto ERROR; + + /* For NCJ, we had to defer i decrement. */ + if ( (scur == p7T_N || scur == p7T_J || scur == p7T_C) && scur == sprv) i--; + + sprv = scur; + } /* end traceback, at S state */ + + if ((status = p7_trace_Reverse(tr)) != eslOK) goto ERROR; + tr->M = gm->M; + tr->L = L; + free(sc); + return eslOK; + + ERROR: + if (sc != NULL) free(sc); + return status; +} +/*------------------- end, stochastic trace ---------------------*/ + + + + + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7GENERIC_STOTRACE_BENCHMARK +/* + gcc -g -O2 -o generic_stotrace_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_STOTRACE_BENCHMARK generic_stotrace.c -lhmmer -leasel -lm + icc -O3 -static -o generic_stotrace_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_STOTRACE_BENCHMARK generic_stotrace.c -lhmmer -leasel -lm + ./generic_stotrace_benchmark + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seq" , 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of sampled tracebacks", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for generic stochastic trace"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_TRACE *tr = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc, fsc, vsc; + float bestsc = -eslINFINITY; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + fwd = p7_gmx_Create(gm->M, L); + tr = p7_trace_Create(); + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_GViterbi(dsq, L, gm, fwd, &vsc); + p7_GForward(dsq, L, gm, fwd, &fsc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + p7_GStochasticTrace(r, dsq, L, gm, fwd, tr); + p7_trace_Score(tr, dsq, gm, &sc); /* this doesn't add significantly to benchmark time */ + bestsc = ESL_MAX(bestsc, sc); + p7_trace_Reuse(tr); + } + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + + printf("forward sc = %.4f nats\n", fsc); + printf("viterbi sc = %.4f nats\n", vsc); + printf("max trace sc = %.4f nats\n", bestsc); + + free(dsq); + p7_trace_Destroy(tr); + p7_gmx_Destroy(fwd); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_STOTRACE_BENCHMARK*/ +/*---------------------- end, benchmark -------------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7GENERIC_STOTRACE_TESTDRIVE +#include "esl_getopts.h" +/* fairly weak tests: each sampled trace must be <= viterbi trace score, and must pass validation */ +static void +utest_stotrace(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_PROFILE *gm, ESL_DSQ *dsq, int L, int ntrace) +{ + P7_GMX *gx = NULL; + P7_TRACE *tr = NULL; + char errbuf[eslERRBUFSIZE]; + int idx; + float maxsc = -eslINFINITY; + float vsc, sc; + + if ((gx = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("matrix creation failed"); + if ((tr = p7_trace_Create()) == NULL) esl_fatal("trace creation failed"); + + if (p7_GViterbi(dsq, L, gm, gx, &vsc) != eslOK) esl_fatal("viterbi failed"); + if (p7_GForward(dsq, L, gm, gx, NULL) != eslOK) esl_fatal("forward failed"); + + for (idx = 0; idx < ntrace; idx++) + { + if (p7_GStochasticTrace(r, dsq, L, gm, gx, tr) != eslOK) esl_fatal("stochastic trace failed"); + if (p7_trace_Validate(tr, abc, dsq, errbuf) != eslOK) esl_fatal("trace invalid:\n%s", errbuf); + if (p7_trace_Score(tr, dsq, gm, &sc) != eslOK) esl_fatal("trace scoring failed"); + + maxsc = ESL_MAX(sc, maxsc); + if (sc > vsc) esl_fatal("sampled trace has score > optimal Viterbi path; not possible"); + p7_trace_Reuse(tr); + } + if (esl_FCompare(maxsc, vsc, 0.001) != eslOK) esl_fatal("stochastic trace failed to sample the Viterbi path"); + + p7_trace_Destroy(tr); + p7_gmx_Destroy(gx); +} +#endif /*p7GENERIC_STOTRACE_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7GENERIC_STOTRACE_TESTDRIVE +/* gcc -g -Wall -Dp7GENERIC_STOTRACE_TESTDRIVE -I. -I../easel -L. -L../easel -o generic_stotrace_utest generic_stotrace.c -lhmmer -leasel -lm + */ +#include "easel.h" +#include "esl_getopts.h" +#include "esl_randomseq.h" + +#include "p7_config.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for stochastic Viterbi traceback (generic version)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_BG *bg = NULL; + ESL_DSQ *dsq = NULL; + ESL_SQ *sq = NULL; + int M = 5; + int L = 10; + int ntrace = 1000; + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile"); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal("failed to config profile"); + + /* Test with randomly generated (iid) sequence */ + if ((dsq = malloc(sizeof(ESL_DSQ) *(L+2))) == NULL) esl_fatal("malloc failed"); + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal("seq generation failed"); + utest_stotrace(go, r, abc, gm, dsq, L, ntrace); + + /* Test with seq sampled from profile */ + if ((sq = esl_sq_CreateDigital(abc)) == NULL) esl_fatal("sequence allocation failed"); + if (p7_ProfileEmit(r, hmm, gm, bg, sq, NULL) != eslOK) esl_fatal("profile emission failed"); + utest_stotrace(go, r, abc, gm, sq->dsq, sq->n, ntrace); + + esl_sq_Destroy(sq); + free(dsq); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_STOTRACE_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + + + + +/***************************************************************** + * 5. Example + *****************************************************************/ +#ifdef p7GENERIC_STOTRACE_EXAMPLE +/* + gcc -g -Dp7GENERIC_STOTRACE_EXAMPLE -I. -I../easel -L. -L../easel -o generic_stotrace_example generic_stotrace.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump the DP matrix to stdout", 0 }, + { "-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-t", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump the sampled trace to stdout", 0 }, + { "-N", eslARG_INT, "1", NULL, NULL, NULL, NULL, NULL, "number of traces to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of stochastic backtrace"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_TRACE *tr = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + char errbuf[eslERRBUFSIZE]; + int N = esl_opt_GetInteger(go, "-N"); + int i; + float vsc, fsc, tsc; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + + fwd = p7_gmx_Create(gm->M, sq->n); + tr = p7_trace_Create(); + + p7_GViterbi(sq->dsq, sq->n, gm, fwd, &vsc); + p7_GForward(sq->dsq, sq->n, gm, fwd, &fsc); + if (esl_opt_GetBoolean(go, "-m") == TRUE) p7_gmx_Dump(stdout, fwd, p7_DEFAULT); + + for (i = 0; i < N; i++) + { + p7_GStochasticTrace(r, sq->dsq, sq->n, gm, fwd, tr); + p7_trace_Score(tr, sq->dsq, gm, &tsc); + + if (esl_opt_GetBoolean(go, "-t") == TRUE) p7_trace_Dump(stdout, tr, gm, sq->dsq); + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) esl_fatal("trace failed validation: %s\n", errbuf); + + printf("Sampled trace: %.4f nats\n", tsc); + p7_trace_Reuse(tr); + } + printf("Forward score: %.4f nats\n", fsc); + printf("Viterbi score: %.4f nats\n", vsc); + + + /* Cleanup */ + p7_gmx_Destroy(fwd); + p7_trace_Destroy(tr); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_STOTRACE_EXAMPLE*/ +/*----------------------- end, example --------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/generic_viterbi.c b/bioinformaticsProject/hmmer/src/generic_viterbi.c new file mode 100644 index 0000000..fd5003d --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_viterbi.c @@ -0,0 +1,712 @@ +/* Viterbi algorithm; generic (non-SIMD) version. + * + * This implementation is modified from an optimized implementation + * contributed by Jeremy D. Buhler (Washington University in + * St. Louis). + * + * Relative to the implementation in HMMER2, Jeremy rearranged data + * structures to reduce the number of registers needed in the inner + * loop; eliminated branches from the inner loop by unrolling the Mth + * iteration in Viterbi and by replacing a bunch of "if" tests with + * MAX; and exposed opportunities for hoisting and strength reduction + * to the compiler. (The preceding sentence is nearly verbatim from + * Jeremy's notes.) I then uplifted the JB code to H3, most notably + * involving conversion from H2's scaled integers to H3's floating + * point calculations. + * + * Contents: + * 1. Viterbi implementation. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_gumbel.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Viterbi implementation. + *****************************************************************/ + +/* Function: p7_GViterbi() + * Synopsis: The Viterbi algorithm. + * Incept: SRE, Tue Jan 30 10:50:53 2007 [Einstein's, St. Louis] + * + * Purpose: The standard Viterbi dynamic programming algorithm. + * + * Given a digital sequence of length , a profile + * , and DP matrix allocated for at least + * by M> cells; calculate the maximum scoring path by + * Viterbi; return the Viterbi score in , and the + * Viterbi matrix is in . + * + * The caller may then retrieve the Viterbi path by calling + * . + * + * The Viterbi lod score is returned in nats. The caller + * needs to subtract a null model lod score, then convert + * to bits. + * + * Args: dsq - sequence in digitized form, 1..L + * L - length of dsq + * gm - profile. + * gx - DP matrix with room for an MxL alignment + * opt_sc - optRETURN: Viterbi lod score in nats + * + * Return: on success. + */ +int +p7_GViterbi(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *opt_sc) +{ + float const *tsc = gm->tsc; + float **dp = gx->dp; + float *xmx = gx->xmx; + int M = gm->M; + int i,k; + float esc = p7_profile_IsLocal(gm) ? 0 : -eslINFINITY; + + /* Initialization of the zero row. */ + XMX(0,p7G_N) = 0; /* S->N, p=1 */ + XMX(0,p7G_B) = gm->xsc[p7P_N][p7P_MOVE]; /* S->N->B, no N-tail */ + XMX(0,p7G_E) = XMX(0,p7G_C) = XMX(0,p7G_J) = -eslINFINITY; /* need seq to get here */ + for (k = 0; k <= gm->M; k++) + MMX(0,k) = IMX(0,k) = DMX(0,k) = -eslINFINITY; /* need seq to get here */ + + /* DP recursion */ + for (i = 1; i <= L; i++) + { + float const *rsc = gm->rsc[dsq[i]]; + float sc; + + MMX(i,0) = IMX(i,0) = DMX(i,0) = -eslINFINITY; + XMX(i,p7G_E) = -eslINFINITY; + + for (k = 1; k < gm->M; k++) + { + /* match state */ + sc = ESL_MAX( MMX(i-1,k-1) + TSC(p7P_MM,k-1), + IMX(i-1,k-1) + TSC(p7P_IM,k-1)); + sc = ESL_MAX(sc, DMX(i-1,k-1) + TSC(p7P_DM,k-1)); + sc = ESL_MAX(sc, XMX(i-1,p7G_B) + TSC(p7P_BM,k-1)); + MMX(i,k) = sc + MSC(k); + + /* E state update */ + XMX(i,p7G_E) = ESL_MAX(XMX(i,p7G_E), MMX(i,k) + esc); + /* in Viterbi alignments, Dk->E can't win in local mode (and + * isn't possible in glocal mode), so don't bother + * looking. */ + + /* insert state */ + sc = ESL_MAX(MMX(i-1,k) + TSC(p7P_MI,k), + IMX(i-1,k) + TSC(p7P_II,k)); + IMX(i,k) = sc + ISC(k); + + /* delete state */ + DMX(i,k) = ESL_MAX(MMX(i,k-1) + TSC(p7P_MD,k-1), + DMX(i,k-1) + TSC(p7P_DD,k-1)); + } + + /* Unrolled match state M. */ + sc = ESL_MAX( MMX(i-1,M-1) + TSC(p7P_MM,M-1), + IMX(i-1,M-1) + TSC(p7P_IM,M-1)); + sc = ESL_MAX(sc, DMX(i-1,M-1 ) + TSC(p7P_DM,M-1)); + sc = ESL_MAX(sc, XMX(i-1,p7G_B) + TSC(p7P_BM,M-1)); + MMX(i,M) = sc + MSC(M); + + /* Unrolled delete state D_M + * (Unlike internal Dk->E transitions that can never appear in + * Viterbi alignments, D_M->E is possible in glocal mode.) + */ + DMX(i,M) = ESL_MAX(MMX(i,M-1) + TSC(p7P_MD,M-1), + DMX(i,M-1) + TSC(p7P_DD,M-1)); + + /* E state update; transition from M_M scores 0 by def'n */ + sc = ESL_MAX(XMX(i,p7G_E), MMX(i,M)); + XMX(i,p7G_E) = ESL_MAX(sc, DMX(i,M)); + + /* Now the special states. E must already be done, and B must follow N,J. + * remember, N, C and J emissions are zero score by definition. + */ + /* J state */ + sc = XMX(i-1,p7G_J) + gm->xsc[p7P_J][p7P_LOOP]; /* J->J */ + XMX(i,p7G_J) = ESL_MAX(sc, XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_LOOP]); /* E->J is E's "loop" */ + + /* C state */ + sc = XMX(i-1,p7G_C) + gm->xsc[p7P_C][p7P_LOOP]; + XMX(i,p7G_C) = ESL_MAX(sc, XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_MOVE]); + + /* N state */ + XMX(i,p7G_N) = XMX(i-1,p7G_N) + gm->xsc[p7P_N][p7P_LOOP]; + + /* B state */ + sc = XMX(i,p7G_N) + gm->xsc[p7P_N][p7P_MOVE]; /* N->B is N's move */ + XMX(i,p7G_B) = ESL_MAX(sc, XMX(i,p7G_J) + gm->xsc[p7P_J][p7P_MOVE]); /* J->B is J's move */ + } + + /* T state (not stored) */ + if (opt_sc != NULL) *opt_sc = XMX(L,p7G_C) + gm->xsc[p7P_C][p7P_MOVE]; + gx->M = gm->M; + gx->L = L; + return eslOK; +} + + +/*-------------------- end, viterbi -----------------------------*/ + + + +/* Function: p7_GViterbi_longtarget() + * Synopsis: The Viterbi algorithm. + * Incept: SRE, Tue Jan 30 10:50:53 2007 [Einstein's, St. Louis] + * + * Purpose: Given a digital sequence of length , a profile + * , and DP matrix allocated for at least + * by M> cells; calculates the Viterbi score for + * regions of , and captures the positions at which + * such regions exceed the score required to be + * significant in the eyes of the calling function + * (usually p=0.001). + * + * Args: dsq - sequence in digitized form, 1..L + * L - length of dsq + * gm - profile. + * gx - DP matrix with room for an MxL alignment + * filtersc - null or bias correction, required for translating a P-value threshold into a score threshold + * P - p-value below which a region is captured as being above threshold + * windowlist - RETURN: array of hit windows (start and end of diagonal) for the above-threshold areas + * + * Return: on success. + */ +int +p7_GViterbi_longtarget(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, + float filtersc, double P, P7_HMM_WINDOWLIST *windowlist) +{ + float const *tsc = gm->tsc; + float **dp = gx->dp; + float *xmx = gx->xmx; + int M = gm->M; + int i,k; + float esc = p7_profile_IsLocal(gm) ? 0 : -eslINFINITY; + + int16_t sc_thresh; + float invP; + + /* Initialization of the zero row. */ + XMX(0,p7G_N) = 0; /* S->N, p=1 */ + XMX(0,p7G_B) = gm->xsc[p7P_N][p7P_MOVE]; /* S->N->B, no N-tail */ + XMX(0,p7G_E) = XMX(0,p7G_C) = XMX(0,p7G_J) = -eslINFINITY; /* need seq to get here */ + for (k = 0; k <= gm->M; k++) + MMX(0,k) = IMX(0,k) = DMX(0,k) = -eslINFINITY; /* need seq to get here */ + + + /* + * In p7_ViterbiFilter, converting from a scaled int Viterbi score + * S (aka xE the score getting to state E) to a probability + * goes like this: + * S = XMX(i,p7G_E) + * vsc = S + gm->xsc[p7P_E][p7P_MOVE] + gm->xsc[p7P_C][p7P_MOVE]; + * P = esl_gumbel_surv((vfsc - filtersc) / eslCONST_LOG2 , gm->evparam[p7_VMU], gm->evparam[p7_VLAMBDA]); + * and we're computing the threshold vsc, so invert it: + * (vsc - filtersc) / eslCONST_LOG2 = esl_gumbel_invsurv( P, gm->evparam[p7_VMU], gm->evparam[p7_VLAMBDA]) + * vsc = filtersc + eslCONST_LOG2 * esl_gumbel_invsurv( P, gm->evparam[p7_VMU], gm->evparam[p7_VLAMBDA]) + * S = vsc - gm->xsc[p7P_E][p7P_MOVE] - gm->xsc[p7P_C][p7P_MOVE] + */ + invP = esl_gumbel_invsurv(P, gm->evparam[p7_VMU], gm->evparam[p7_VLAMBDA]); + sc_thresh = (int) ceil (filtersc + (eslCONST_LOG2 * invP) + - gm->xsc[p7P_E][p7P_MOVE] - gm->xsc[p7P_C][p7P_MOVE] ); + + + /* DP recursion */ + for (i = 1; i <= L; i++) + { + float const *rsc = gm->rsc[dsq[i]]; + float sc; + + MMX(i,0) = IMX(i,0) = DMX(i,0) = -eslINFINITY; + XMX(i,p7G_E) = -eslINFINITY; + + for (k = 1; k < gm->M; k++) + { + /* match state */ + sc = ESL_MAX( MMX(i-1,k-1) + TSC(p7P_MM,k-1), + IMX(i-1,k-1) + TSC(p7P_IM,k-1)); + sc = ESL_MAX(sc, DMX(i-1,k-1) + TSC(p7P_DM,k-1)); + sc = ESL_MAX(sc, XMX(i-1,p7G_B) + TSC(p7P_BM,k-1)); + MMX(i,k) = sc + MSC(k); + + /* E state update */ + XMX(i,p7G_E) = ESL_MAX(XMX(i,p7G_E), MMX(i,k) + esc); + /* in Viterbi alignments, Dk->E can't win in local mode (and + * isn't possible in glocal mode), so don't bother + * looking. */ + + /* insert state */ + sc = ESL_MAX(MMX(i-1,k) + TSC(p7P_MI,k), + IMX(i-1,k) + TSC(p7P_II,k)); + IMX(i,k) = sc + ISC(k); + + /* delete state */ + DMX(i,k) = ESL_MAX(MMX(i,k-1) + TSC(p7P_MD,k-1), + DMX(i,k-1) + TSC(p7P_DD,k-1)); + } + + /* Unrolled match state M. */ + sc = ESL_MAX( MMX(i-1,M-1) + TSC(p7P_MM,M-1), + IMX(i-1,M-1) + TSC(p7P_IM,M-1)); + sc = ESL_MAX(sc, DMX(i-1,M-1 ) + TSC(p7P_DM,M-1)); + sc = ESL_MAX(sc, XMX(i-1,p7G_B) + TSC(p7P_BM,M-1)); + MMX(i,M) = sc + MSC(M); + + /* Unrolled delete state D_M + * (Unlike internal Dk->E transitions that can never appear in + * Viterbi alignments, D_M->E is possible in glocal mode.) + */ + DMX(i,M) = ESL_MAX(MMX(i,M-1) + TSC(p7P_MD,M-1), + DMX(i,M-1) + TSC(p7P_DD,M-1)); + + /* E state update; transition from M_M scores 0 by def'n */ + sc = ESL_MAX(XMX(i,p7G_E), MMX(i,M)); + XMX(i,p7G_E) = ESL_MAX(sc, DMX(i,M)); + + + if (XMX(i,p7G_E) >= sc_thresh) { + //hit score threshold. Add a window to the list, then reset scores. + + for (k = 1; k <= gm->M; k++) { + if (MMX(i,k) == XMX(i,p7G_E)) { + p7_hmmwindow_new(windowlist, 0, i, 0, k, 1, 0.0, p7_NOCOMPLEMENT, L); + } + MMX(i,0) = IMX(i,0) = DMX(i,0) = -eslINFINITY; + } + } else { + + /* Now the special states. E must already be done, and B must follow N,J. + * remember, N, C and J emissions are zero score by definition. + */ + /* J state */ + sc = XMX(i-1,p7G_J) + gm->xsc[p7P_J][p7P_LOOP]; /* J->J */ + XMX(i,p7G_J) = ESL_MAX(sc, XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_LOOP]); /* E->J is E's "loop" */ + + /* C state */ + sc = XMX(i-1,p7G_C) + gm->xsc[p7P_C][p7P_LOOP]; + XMX(i,p7G_C) = ESL_MAX(sc, XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_MOVE]); + + /* N state */ + XMX(i,p7G_N) = XMX(i-1,p7G_N) + gm->xsc[p7P_N][p7P_LOOP]; + + /* B state */ + sc = XMX(i,p7G_N) + gm->xsc[p7P_N][p7P_MOVE]; /* N->B is N's move */ + XMX(i,p7G_B) = ESL_MAX(sc, XMX(i,p7G_J) + gm->xsc[p7P_J][p7P_MOVE]); /* J->B is J's move */ + + } + } + + /* T state (not stored) */ + gx->M = gm->M; + gx->L = L; + return eslOK; +} + +/*-------------------- end, p7_GViterbi_longtarget -----------------------------*/ + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +#ifdef p7GENERIC_VITERBI_BENCHMARK +/* + gcc -g -O2 -o generic_viterbi_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_VITERBI_BENCHMARK generic_viterbi.c -lhmmer -leasel -lm + icc -O3 -static -o generic_viterbi_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_VITERBI_BENCHMARK generic_viterbi.c -lhmmer -leasel -lm + ./benchmark-generic-viterbi + */ +/* As of Fri Dec 28 14:48:39 2007 + * Viterbi = 61.8 Mc/s + * Forward = 8.6 Mc/s + * Backward = 7.1 Mc/s + * MSV = 55.9 Mc/s + * (gcc -g -O2, 3.2GHz Xeon, N=50K, L=400, M=72 RRM_1 model) + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "20000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for generic Viterbi"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *gx = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + gx = p7_gmx_Create(gm->M, L); + + /* Baseline time. */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Benchmark time. */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_GViterbi (dsq, L, gm, gx, &sc); + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + + free(dsq); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_VITERBI_BENCHMARK*/ +/*----------------- end, benchmark ------------------------------*/ + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7GENERIC_VITERBI_TESTDRIVE +#include +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +/* The "basic" utest is a minimal driver for making a small DNA profile and a small DNA sequence, + * then running Viterbi and Forward. It's useful for dumping DP matrices and profiles for debugging. + */ +static void +utest_basic(ESL_GETOPTS *go) +{ + char *query= "# STOCKHOLM 1.0\n\nseq1 GAATTC\nseq2 GAATTC\n//\n"; + int fmt = eslMSAFILE_STOCKHOLM; + char *targ = "GAATTC"; + ESL_ALPHABET *abc = NULL; + ESL_MSA *msa = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_BG *bg = NULL; + P7_PRIOR *pri = NULL; + ESL_DSQ *dsq = NULL; + P7_GMX *gx = NULL; + P7_TRACE *tr = NULL; + int L = strlen(targ); + float vsc, vsc2, fsc; + + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((pri = p7_prior_CreateNucleic()) == NULL) esl_fatal("failed to create prior"); + if ((msa = esl_msa_CreateFromString(query, fmt)) == NULL) esl_fatal("failed to create MSA"); + if (esl_msa_Digitize(abc, msa, NULL) != eslOK) esl_fatal("failed to digitize MSA"); + if (p7_Fastmodelmaker(msa, 0.5, NULL, &hmm, NULL) != eslOK) esl_fatal("failed to create GAATTC model"); + if (p7_ParameterEstimation(hmm, pri) != eslOK) esl_fatal("failed to parameterize GAATTC model"); + if (p7_hmm_SetConsensus(hmm, NULL) != eslOK) esl_fatal("failed to make consensus"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create DNA null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create GAATTC profile"); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL)!= eslOK) esl_fatal("failed to config profile"); + if (p7_profile_Validate(gm, NULL, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!"); + if (esl_abc_CreateDsq(abc, targ, &dsq) != eslOK) esl_fatal("failed to create GAATTC digital sequence"); + if ((gx = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("failed to create DP matrix"); + if ((tr = p7_trace_Create()) == NULL) esl_fatal("trace creation failed"); + + p7_GViterbi (dsq, L, gm, gx, &vsc); + if (esl_opt_GetBoolean(go, "-v")) printf("Viterbi score: %.4f\n", vsc); + if (esl_opt_GetBoolean(go, "-v")) p7_gmx_Dump(stdout, gx, p7_DEFAULT); + + p7_GTrace (dsq, L, gm, gx, tr); + p7_trace_Score(tr, dsq, gm, &vsc2); + if (esl_opt_GetBoolean(go, "-v")) p7_trace_Dump(stdout, tr, gm, dsq); + + if (esl_FCompare(vsc, vsc2, 1e-5) != eslOK) esl_fatal("trace score and Viterbi score don't agree."); + + p7_GForward (dsq, L, gm, gx, &fsc); + if (esl_opt_GetBoolean(go, "-v")) printf("Forward score: %.4f\n", fsc); + if (esl_opt_GetBoolean(go, "-v")) p7_gmx_Dump(stdout, gx, p7_DEFAULT); + + p7_trace_Destroy(tr); + p7_gmx_Destroy(gx); + free(dsq); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_msa_Destroy(msa); + p7_prior_Destroy(pri); + esl_alphabet_Destroy(abc); + return; +} + +/* Viterbi validation is done by comparing the returned score + * to the score of the optimal trace. Not foolproof, but catches + * many kinds of errors. + * + * Another check is that the average score should be <= 0, + * since the random sequences are drawn from the null model. + */ +static void +utest_viterbi(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, P7_PROFILE *gm, int nseq, int L) +{ + float avg_sc = 0.; + char errbuf[eslERRBUFSIZE]; + ESL_DSQ *dsq = NULL; + P7_GMX *gx = NULL; + P7_TRACE *tr = NULL; + int idx; + float sc1, sc2; + + if ((dsq = malloc(sizeof(ESL_DSQ) *(L+2))) == NULL) esl_fatal("malloc failed"); + if ((tr = p7_trace_Create()) == NULL) esl_fatal("trace creation failed"); + if ((gx = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("matrix creation failed"); + + for (idx = 0; idx < nseq; idx++) + { + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal("seq generation failed"); + if (p7_GViterbi(dsq, L, gm, gx, &sc1) != eslOK) esl_fatal("viterbi failed"); + if (p7_GTrace (dsq, L, gm, gx, tr) != eslOK) esl_fatal("trace failed"); + if (p7_trace_Validate(tr, abc, dsq, errbuf) != eslOK) esl_fatal("trace invalid:\n%s", errbuf); + if (p7_trace_Score(tr, dsq, gm, &sc2) != eslOK) esl_fatal("trace score failed"); + if (esl_FCompare(sc1, sc2, 1e-6) != eslOK) esl_fatal("Trace score != Viterbi score"); + if (p7_bg_NullOne(bg, dsq, L, &sc2) != eslOK) esl_fatal("null score failed"); + + avg_sc += (sc1 - sc2); + + if (esl_opt_GetBoolean(go, "--vv")) + printf("utest_viterbi: Viterbi score: %.4f (null %.4f) (total so far: %.4f)\n", sc1, sc2, avg_sc); + + p7_trace_Reuse(tr); + } + + avg_sc /= (float) nseq; + if (avg_sc > 0.) esl_fatal("Viterbi scores have positive expectation (%f nats)", avg_sc); + + p7_gmx_Destroy(gx); + p7_trace_Destroy(tr); + free(dsq); + return; +} + +#endif /*p7GENERIC_VITERBI_TESTDRIVE*/ +/*----------------- end, unit tests -----------------------------*/ + + +/***************************************************************** + * 4. Test driver. + *****************************************************************/ +/* gcc -g -Wall -Dp7GENERIC_VITERBI_TESTDRIVE -I. -I../easel -L. -L../easel -o generic_viterbi_utest generic_viterbi.c -lhmmer -leasel -lm + */ +#ifdef p7GENERIC_VITERBI_TESTDRIVE +#include "easel.h" +#include "esl_getopts.h" +#include "esl_msa.h" + +#include "p7_config.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for the generic Viterbi implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_BG *bg = NULL; + int M = 100; + int L = 200; + int nseq = 20; + char errbuf[eslERRBUFSIZE]; + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile"); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal("failed to config profile"); + if (p7_hmm_Validate (hmm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, HMM is bad!: %s", errbuf); + if (p7_profile_Validate(gm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!: %s", errbuf); + + utest_basic (go); + utest_viterbi(go, r, abc, bg, gm, nseq, L); + + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_VITERBI_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + + + +/***************************************************************** + * 5. Example + *****************************************************************/ +/* This is essentially identical to the vtrace example. */ +#ifdef p7GENERIC_VITERBI_EXAMPLE +/* + gcc -g -O2 -Dp7GENERIC_VITERBI_EXAMPLE -I. -I../easel -L. -L../easel -o generic_viterbi_example generic_viterbi.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of generic Viterbi"; + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + P7_TRACE *tr = NULL; + int format = eslSQFILE_UNKNOWN; + char errbuf[eslERRBUFSIZE]; + float sc; + int d; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + + /* Allocate matrix and a trace */ + fwd = p7_gmx_Create(gm->M, sq->n); + tr = p7_trace_Create(); + + /* Run Viterbi; do traceback */ + p7_GViterbi (sq->dsq, sq->n, gm, fwd, &sc); + p7_GTrace (sq->dsq, sq->n, gm, fwd, tr); + + /* Dump and validate the trace. */ + p7_trace_Dump(stdout, tr, gm, sq->dsq); + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) p7_Die("trace fails validation:\n%s\n", errbuf); + + /* Domain info in the trace. */ + p7_trace_Index(tr); + printf("# Viterbi: %d domains : ", tr->ndom); + for (d = 0; d < tr->ndom; d++) printf("%6d %6d %6d %6d ", tr->sqfrom[d], tr->sqto[d], tr->hmmfrom[d], tr->hmmto[d]); + printf("\n"); + + /* Cleanup */ + p7_trace_Destroy(tr); + p7_gmx_Destroy(fwd); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_sq_Destroy(sq); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_VITERBI_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/generic_vtrace.c b/bioinformaticsProject/hmmer/src/generic_vtrace.c new file mode 100644 index 0000000..1fa718c --- /dev/null +++ b/bioinformaticsProject/hmmer/src/generic_vtrace.c @@ -0,0 +1,269 @@ +/* Viterbi traceback; generic (non-SIMD) version. + * + * Contents: + * 1. Viterbi traceback + * 2. Example. + * + * SRE, Fri Aug 15 09:17:11 2008 [Janelia] + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Viterbi traceback, generic version + *****************************************************************/ + +/* Function: p7_GTrace() + * Incept: SRE, Thu Feb 1 10:25:56 2007 [UA 8018 St. Louis to Dulles] + * + * Purpose: Traceback of a Viterbi matrix: retrieval + * of optimum alignment. + * + * This function is currently implemented as a + * reconstruction traceback, rather than using a shadow + * matrix. Because H3 uses floating point scores, and we + * can't compare floats for equality, we have to compare + * floats for near-equality and therefore, formally, we can + * only guarantee a near-optimal traceback. However, even in + * the unlikely event that a suboptimal is returned, the + * score difference from true optimal will be negligible. + * + * Args: dsq - digital sequence aligned to, 1..L + * L - length of + * gm - profile + * mx - Viterbi matrix to trace, L x M + * tr - storage for the recovered traceback. + * + * Return: on success. + * if even the optimal path has zero probability; + * in this case, the trace is set blank (N = 0>). + * + * Note: Care is taken to evaluate the prev+tsc+emission + * calculations in exactly the same order that Viterbi did + * them, lest you get numerical problems with + * a+b+c = d; d-c != a+b because d,c are nearly equal. + * (This bug appeared in dev: xref J1/121.) + */ +int +p7_GTrace(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, const P7_GMX *gx, P7_TRACE *tr) +{ + int i = L; /* position in seq (1..L) */ + int k = 0; /* position in model (1..M) */ + int M = gm->M; + float **dp = gx->dp; /* so {MDI}MX() macros work */ + float *xmx = gx->xmx; /* so XMX() macro works */ + float tol = 1e-5; /* floating point "equality" test */ + float const *tsc = gm->tsc; + int sprv, scur; /* previous, current state in trace */ + int status; + +#if eslDEBUGLEVEL > 0 + if (tr->N != 0) ESL_EXCEPTION(eslEINVAL, "trace isn't empty: forgot to Reuse()?"); +#endif + + if ((status = p7_trace_Append(tr, p7T_T, k, i)) != eslOK) return status; + if ((status = p7_trace_Append(tr, p7T_C, k, i)) != eslOK) return status; + sprv = p7T_C; + while (sprv != p7T_S) { + float const *rsc = (i>0 ? gm->rsc[dsq[i]] : NULL); + + switch (sprv) { + case p7T_C: /* C(i) comes from C(i-1) or E(i) */ + if (XMX(i,p7G_C) == -eslINFINITY) ESL_EXCEPTION(eslFAIL, "impossible C reached at i=%d", i); + + if (esl_FCompare(XMX(i, p7G_C), XMX(i-1, p7G_C) + gm->xsc[p7P_C][p7P_LOOP], tol) == eslOK) scur = p7T_C; + else if (esl_FCompare(XMX(i, p7G_C), XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_MOVE], tol) == eslOK) scur = p7T_E; + else ESL_EXCEPTION(eslFAIL, "C at i=%d couldn't be traced", i); + break; + + case p7T_E: /* E connects from any M state. k set here */ + if (XMX(i, p7G_E) == -eslINFINITY) ESL_EXCEPTION(eslFAIL, "impossible E reached at i=%d", i); + + if (p7_profile_IsLocal(gm)) + { + scur = p7T_M; /* can't come from D, in a *local* Viterbi trace. */ + for (k = M; k >= 1; k--) if (esl_FCompare(XMX(i, p7G_E), MMX(i,k), tol) == eslOK) break; + if (k == 0) ESL_EXCEPTION(eslFAIL, "E at i=%d couldn't be traced", i); + } + else /* glocal mode: we either come from D_M or M_M */ + { + if (esl_FCompare(XMX(i, p7G_E), MMX(i,M), tol) == eslOK) { scur = p7T_M; k = M; } + else if (esl_FCompare(XMX(i, p7G_E), DMX(i,M), tol) == eslOK) { scur = p7T_D; k = M; } + else ESL_EXCEPTION(eslFAIL, "E at i=%d couldn't be traced", i); + } + break; + + case p7T_M: /* M connects from i-1,k-1, or B */ + if (MMX(i,k) == -eslINFINITY) ESL_EXCEPTION(eslFAIL, "impossible M reached at k=%d,i=%d", k,i); + + if (esl_FCompare(MMX(i,k), XMX(i-1,p7G_B) + TSC(p7P_BM, k-1) + MSC(k), tol) == eslOK) scur = p7T_B; + else if (esl_FCompare(MMX(i,k), MMX(i-1,k-1) + TSC(p7P_MM, k-1) + MSC(k), tol) == eslOK) scur = p7T_M; + else if (esl_FCompare(MMX(i,k), IMX(i-1,k-1) + TSC(p7P_IM, k-1) + MSC(k), tol) == eslOK) scur = p7T_I; + else if (esl_FCompare(MMX(i,k), DMX(i-1,k-1) + TSC(p7P_DM, k-1) + MSC(k), tol) == eslOK) scur = p7T_D; + else ESL_EXCEPTION(eslFAIL, "M at k=%d,i=%d couldn't be traced", k,i); + k--; i--; + break; + + case p7T_D: /* D connects from M,D at i,k-1 */ + if (DMX(i, k) == -eslINFINITY) ESL_EXCEPTION(eslFAIL, "impossible D reached at k=%d,i=%d", k,i); + + if (esl_FCompare(DMX(i,k), MMX(i, k-1) + TSC(p7P_MD, k-1), tol) == eslOK) scur = p7T_M; + else if (esl_FCompare(DMX(i,k), DMX(i, k-1) + TSC(p7P_DD, k-1), tol) == eslOK) scur = p7T_D; + else ESL_EXCEPTION(eslFAIL, "D at k=%d,i=%d couldn't be traced", k,i); + k--; + break; + + case p7T_I: /* I connects from M,I at i-1,k*/ + if (IMX(i,k) == -eslINFINITY) ESL_EXCEPTION(eslFAIL, "impossible I reached at k=%d,i=%d", k,i); + + if (esl_FCompare(IMX(i,k), MMX(i-1,k) + TSC(p7P_MI, k) + ISC(k), tol) == eslOK) scur = p7T_M; + else if (esl_FCompare(IMX(i,k), IMX(i-1,k) + TSC(p7P_II, k) + ISC(k), tol) == eslOK) scur = p7T_I; + else ESL_EXCEPTION(eslFAIL, "I at k=%d,i=%d couldn't be traced", k,i); + i--; + break; + + case p7T_N: /* N connects from S, N */ + if (XMX(i, p7G_N) == -eslINFINITY) ESL_EXCEPTION(eslFAIL, "impossible N reached at i=%d", i); + scur = ( (i == 0) ? p7T_S : p7T_N); + break; + + case p7T_B: /* B connects from N, J */ + if (XMX(i,p7G_B) == -eslINFINITY) ESL_EXCEPTION(eslFAIL, "impossible B reached at i=%d", i); + + if (esl_FCompare(XMX(i,p7G_B), XMX(i, p7G_N) + gm->xsc[p7P_N][p7P_MOVE], tol) == eslOK) scur = p7T_N; + else if (esl_FCompare(XMX(i,p7G_B), XMX(i, p7G_J) + gm->xsc[p7P_J][p7P_MOVE], tol) == eslOK) scur = p7T_J; + else ESL_EXCEPTION(eslFAIL, "B at i=%d couldn't be traced", i); + break; + + case p7T_J: /* J connects from E(i) or J(i-1) */ + if (XMX(i,p7G_J) == -eslINFINITY) ESL_EXCEPTION(eslFAIL, "impossible J reached at i=%d", i); + + if (esl_FCompare(XMX(i,p7G_J), XMX(i-1,p7G_J) + gm->xsc[p7P_J][p7P_LOOP], tol) == eslOK) scur = p7T_J; + else if (esl_FCompare(XMX(i,p7G_J), XMX(i, p7G_E) + gm->xsc[p7P_E][p7P_LOOP], tol) == eslOK) scur = p7T_E; + else ESL_EXCEPTION(eslFAIL, "J at i=%d couldn't be traced", i); + break; + + default: ESL_EXCEPTION(eslFAIL, "bogus state in traceback"); + } /* end switch over statetype[tpos-1] */ + + /* Append this state and the current i,k to be explained to the growing trace */ + if ((status = p7_trace_Append(tr, scur, k, i)) != eslOK) return status; + + /* For NCJ, we had to defer i decrement. */ + if ( (scur == p7T_N || scur == p7T_J || scur == p7T_C) && scur == sprv) i--; + + sprv = scur; + } /* end traceback, at S state */ + + tr->M = gm->M; + tr->L = L; + return p7_trace_Reverse(tr); +} + +/***************************************************************** + * 2. Example + *****************************************************************/ +#ifdef p7GENERIC_VTRACE_EXAMPLE +/* + gcc -g -O2 -Dp7GENERIC_VTRACE_EXAMPLE -I. -I../easel -L. -L../easel -o generic_vtrace_example generic_vtrace.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of generic Viterbi tracebacks"; + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + P7_TRACE *tr = NULL; + int format = eslSQFILE_UNKNOWN; + char errbuf[eslERRBUFSIZE]; + float sc; + int d; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + + /* Allocate matrix and a trace */ + fwd = p7_gmx_Create(gm->M, sq->n); + tr = p7_trace_Create(); + + /* Run Viterbi; do traceback */ + p7_GViterbi (sq->dsq, sq->n, gm, fwd, &sc); + p7_GTrace (sq->dsq, sq->n, gm, fwd, tr); + + /* Dump and validate the trace. */ + p7_trace_Dump(stdout, tr, gm, sq->dsq); + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) + p7_Die("trace fails validation:\n%s\n", errbuf); + + /* Domain info in the trace. */ + p7_trace_Index(tr); + printf("# Viterbi: %d domains :\n", tr->ndom); + for (d = 0; d < tr->ndom; d++) + printf("%6d %6d %6d %6d\n", tr->sqfrom[d], tr->sqto[d], tr->hmmfrom[d], tr->hmmto[d]); + + /* Cleanup */ + p7_trace_Destroy(tr); + p7_gmx_Destroy(fwd); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7GENERIC_VTRACE_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + + + diff --git a/bioinformaticsProject/hmmer/src/h2_io.c b/bioinformaticsProject/hmmer/src/h2_io.c new file mode 100644 index 0000000..d96ad31 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/h2_io.c @@ -0,0 +1,243 @@ +/* Input/output of HMMER3 HMMs in HMMER2 save file formats: + * for backwards compatibility. + * + * Contents: + * 1. Writing profiles in HMMER2 format. + */ +#include "p7_config.h" + +#include +#include +#include + +#include "hmmer.h" +#include "easel.h" + +static int h2_multiline(FILE *fp, const char *pfx, char *s); +static int printprob(FILE *fp, int fieldwidth, float p, float null); + +/***************************************************************** + *= 1. Writing profiles in HMMER2 format + *****************************************************************/ + +/* Function: p7_h2io_WriteASCII() + * Synopsis: Write an H3 HMM in HMMER2 compatible format + * + * Purpose: Write HMM to stream in HMMER2 ASCII save + * file format. + * + * HMMER2 saved the null model and the search configuration + * (local vs. glocal, for example) as part of its HMM file; + * H3 only saves the core HMM. The HMMER2 file is created + * for HMMER2's default ``ls mode'' (glocal) with default + * null model transitions and default special state + * transitions (NECJ). + * + * Optional statistical calibration and alignment checksum + * are not written, because for these H3 and H2 differ too + * much. + * + * Args: fp - stream to write save file format to + * hmm - HMM to save + * + * Returns: on success. + * + * Throws: on allocation error. + * + * if can't be converted; for example, if + * it is not in a protein or nucleic acid alphabet (H2 + * requires biosequence in its save files). + * + * if any write fails; for example, if the + * disk fills up. + */ +int +p7_h2io_WriteASCII(FILE *fp, P7_HMM *hmm) +{ + P7_BG *bg; /* H2 saves null model in HMM file */ + int k; /* counter for nodes */ + int x; /* counter for symbols */ + int ts; /* counter for state transitions */ + float pmove,ploop; /* default H2 null model transitions */ + int status; + + if ((bg = p7_bg_Create(hmm->abc)) == NULL) { status = eslEMEM; goto ERROR; } + + /* magic header */ + if (fprintf(fp, "HMMER2.0 [converted from %s]\n", HMMER_VERSION) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if (fprintf(fp, "NAME %s\n", hmm->name) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if (hmm->acc && fprintf(fp, "ACC %s\n", hmm->acc) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if (hmm->desc && fprintf(fp, "DESC %s\n", hmm->desc) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if (fprintf(fp, "LENG %d\n", hmm->M) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + + if (hmm->abc->type == eslAMINO) { if (fprintf(fp, "ALPH Amino\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + else if (hmm->abc->type == eslDNA) { if (fprintf(fp, "ALPH Nucleic\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + else if (hmm->abc->type == eslRNA) { if (fprintf(fp, "ALPH Nucleic\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + else ESL_XEXCEPTION(eslEINVAL, "Only protein, DNA, RNA HMMs can be saved in H2 format"); + + if (fprintf(fp, "RF %s\n", (hmm->flags & p7H_RF) ? "yes" : "no") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if (fprintf(fp, "CS %s\n", (hmm->flags & p7H_CS) ? "yes" : "no") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if (fprintf(fp, "MAP %s\n", (hmm->flags & p7H_MAP) ? "yes" : "no") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + /* H3 consensus line has no counterpart in H2 */ + + if (hmm->comlog != NULL) { if ( (status = h2_multiline(fp, "COM ", hmm->comlog)) != eslOK) goto ERROR; } + if (hmm->nseq != -1) { if ( fprintf (fp, "NSEQ %d\n", hmm->nseq) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + if (hmm->ctime != NULL) { if ( fprintf (fp, "DATE %s\n", hmm->ctime) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + + /* Checksum is not written; H2 and H3 use different checksum algorithms */ + + if (hmm->flags & p7H_GA) { if (fprintf(fp, "GA %.1f %.1f\n", hmm->cutoff[p7_GA1], hmm->cutoff[p7_GA2]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + if (hmm->flags & p7H_TC) { if (fprintf(fp, "TC %.1f %.1f\n", hmm->cutoff[p7_TC1], hmm->cutoff[p7_TC2]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + if (hmm->flags & p7H_NC) { if (fprintf(fp, "NC %.1f %.1f\n", hmm->cutoff[p7_NC1], hmm->cutoff[p7_NC2]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + + /* in H3, the HMM does not include NECJ; these are part of the profile. + * for emulating H2 output, assume default LS config */ + if (fputs("XT ", fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + pmove = ( (hmm->abc->type == eslAMINO) ? 1./351. : 1./1001.); + ploop = ( (hmm->abc->type == eslAMINO) ? 350./351. : 1000./1001.); + if ( (status = printprob(fp, 6, pmove, 1.0)) != eslOK) goto ERROR; /* NB */ + if ( (status = printprob(fp, 6, ploop, 1.0)) != eslOK) goto ERROR; /* NN */ + if ( (status = printprob(fp, 6, 0.5, 1.0)) != eslOK) goto ERROR; /* EC */ + if ( (status = printprob(fp, 6, 0.5, 1.0)) != eslOK) goto ERROR; /* EJ */ + if ( (status = printprob(fp, 6, pmove, 1.0)) != eslOK) goto ERROR; /* CT */ + if ( (status = printprob(fp, 6, ploop, 1.0)) != eslOK) goto ERROR; /* CC */ + if ( (status = printprob(fp, 6, pmove, 1.0)) != eslOK) goto ERROR; /* JB */ + if ( (status = printprob(fp, 6, ploop, 1.0)) != eslOK) goto ERROR; /* JJ */ + if (fputc('\n', fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + + /* Save the default H2 null model transitions, not H3's null model transitions */ + if (fprintf(fp, "NULT ") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if ( (status = printprob(fp, 6, ploop, 1.0)) != eslOK) goto ERROR; /* 1-p1 */ + if ( (status = printprob(fp, 6, pmove, 1.0)) != eslOK) goto ERROR; /* p1 */ + if (fputc('\n', fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + + /* but null emissions really are the H3 null model emissions */ + if (fputs("NULE ", fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + for (x = 0; x < hmm->abc->K; x++) + { if ( (status = printprob(fp, 6, bg->f[x], 1./(float)hmm->abc->K)) != eslOK) goto ERROR; } + if (fputc('\n', fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + + /* Don't save stats; H3 local alignment stats are different from H2 calibration */ + + /* The main model section */ + if (fprintf(fp, "HMM ") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + for (x = 0; x < hmm->abc->K; x++) + { if (fprintf(fp, " %c ", hmm->abc->sym[x]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + if (fprintf(fp, "\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if (fprintf(fp, " %6s %6s %6s %6s %6s %6s %6s %6s %6s\n", + "m->m", "m->i", "m->d", "i->m", "i->i", "d->m", "d->d", "b->m", "m->e") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + + /* Print HMM parameters (main section of the save file) */ + if (fprintf(fp, " ") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if ( (status = printprob(fp, 6, 1.-hmm->t[0][p7H_MD], 1.0)) != eslOK) goto ERROR; + if (fprintf(fp, " %6s", "*") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if ( (status = printprob(fp, 6, hmm->t[0][p7H_MD], 1.0)) != eslOK) goto ERROR; + if (fputc('\n', fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + + for (k = 1; k <= hmm->M; k++) + { + /* Line 1: k, match emissions, map */ + if (fprintf(fp, " %5d ", k) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + for (x = 0; x < hmm->abc->K; x++) + if ( (status = printprob(fp, 6, hmm->mat[k][x], bg->f[x])) != eslOK) goto ERROR; + if (hmm->flags & p7H_MAP) + { if (fprintf(fp, " %5d", hmm->map[k]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + if (fputc('\n', fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + /* Line 2: RF and insert emissions */ + if (fprintf(fp, " %5c ", hmm->flags & p7H_RF ? hmm->rf[k] : '-') < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + for (x = 0; x < hmm->abc->K; x++) + if ( (status = printprob(fp, 6, ((k < hmm->M) ? hmm->ins[k][x] : 0.0), bg->f[x])) != eslOK) goto ERROR; + if (fputc('\n', fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + /* Line 3: CS and transition probs */ + if (fprintf(fp, " %5c ", hmm->flags & p7H_CS ? hmm->cs[k] : '-') < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + for (ts = 0; ts < 7; ts++) + if ( (status = printprob(fp, 6, ((k < hmm->M) ? hmm->t[k][ts] : 0.0), 1.0)) != eslOK) goto ERROR; + if ( (status = printprob(fp, 6, ((k==1) ? hmm->t[0][p7H_MM] : 0.0), 1.0)) != eslOK) goto ERROR; + if ( (status = printprob(fp, 6, ((kM) ? 0.0: 1.0), 1.0)) != eslOK) goto ERROR; + if (fputc('\n', fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + + } + if (fputs("//\n", fp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + + p7_bg_Destroy(bg); + return eslOK; + + ERROR: + p7_bg_Destroy(bg); + return status; +} + +/* h2_multiline() + * + * Used to print the command log to HMMER2 ASCII save files. + * H3 records command numbers in brackets, as in "COM [1] hmmbuild ..." + * H2 just records commands, as in "COM hmmbuild ...". + * Compare p7_hmmfile.c::multiline(). + * + * Given a record (like the comlog) that contains + * multiple lines, print it as multiple lines with + * a given prefix. e.g.: + * + * given: "COM ", "foo\nbar\nbaz" + * print: COM foo + * COM bar + * COM baz + * + * If is NULL, no-op. Otherwise must be a -terminated + * string. It does not matter if it ends in <\n> or not. + * must be a valid -terminated string; it may be empty. + * + * Args: fp: FILE to print to + * pfx: prefix for each line + * s: line to break up and print; tolerates a NULL + * + * Returns: on success. + * + * Throws: on any write error. + */ +static int +h2_multiline(FILE *fp, const char *pfx, char *s) +{ + char *sptr = s; + char *end = NULL; + int n = 0; + + do { + end = strchr(sptr, '\n'); + + if (end != NULL) /* if there's no \n left, end == NULL */ + { + n = end - sptr; /* n chars exclusive of \n */ + if (fprintf(fp, "%s ", pfx) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); + if (fwrite(sptr, sizeof(char), n, fp) != n) ESL_EXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); /* using fwrite lets us write fixed # of chars */ + if (fprintf(fp, "\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); /* while writing \n w/ printf allows newline conversion */ + sptr += n + 1; /* +1 to get past \n */ + } + else + { + if (fprintf(fp, "%s %s\n", pfx, sptr) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); /* last line */ + } + } while (end != NULL && *sptr != '\0'); /* *sptr == 0 if terminates with a \n */ + return eslOK; +} + + +/* printprob() + * Print a probability (with a leading space), formatted + * for an H2 ASCII save file. + * + * Returns: on success. + * + * Throws: on any write failure. + */ +static int +printprob(FILE *fp, int fieldwidth, float p, float null) +{ + if (p == 0.0) { if (fprintf(fp, " %*s", fieldwidth, "*") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + else if (null == 1.0 && p == 1.0) { if (fprintf(fp, " %*d", fieldwidth, 0) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + else { if (fprintf(fp, " %*d", fieldwidth, (int) floor(0.5 + 1442.695 * log(p/null))) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "h2 profile write failed"); } + return eslOK; +} + + diff --git a/bioinformaticsProject/hmmer/src/heatmap.c b/bioinformaticsProject/hmmer/src/heatmap.c new file mode 100644 index 0000000..d3f4ba4 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/heatmap.c @@ -0,0 +1,106 @@ +/* working version of heat map displays in PostScript + * evolving toward eventual inclusion in Easel + * + * SRE, Thu Jan 25 09:51:18 2007 [Janelia] [Elgar, Enigma Variations] + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_dmatrix.h" + + +/* dmx_Visualize() + * Incept: SRE, Wed Jan 24 11:58:21 2007 [Janelia] + * + * Purpose: + * + * Color scheme roughly follows Tufte, Envisioning + * Information, p.91, where he shows a beautiful + * bathymetric chart. The CMYK values conjoin two + * recommendations from ColorBrewer (Cindy Brewer + * and Mark Harrower) + * [http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer.html], + * specifically the 9-class sequential2 Blues and + * 9-class sequential YlOrBr. + * + * Might eventually become part of Easel, once mature? + * + * Note: Binning rules basically follow same convention as + * esl_histogram. nb = xmax-xmin/w, so w = xmax-xmin/nb; + * picking bin is (int) ceil((x - xmin)/w) - 1. (xref + * esl_histogram_Score2Bin()). This makes bin b contain + * values bw+min < x <= (b+1)w+min. (Which means that + * min itself falls in bin -1, whoops - but we catch + * all bin<0 and bin>=nshades and put them in the extremes. + * + * Args: + * + * Returns: + * + * Throws: (no abnormal error conditions) + * + * Xref: + */ +int +dmx_Visualize(FILE *fp, ESL_DMATRIX *D, double min, double max) +{ + int nshades = 18; + double cyan[] = { 1.00, 1.00, 0.90, 0.75, 0.57, 0.38, 0.24, 0.13, 0.03, + 0.00, 0.00, 0.00, 0.00, 0.00, 0.07, 0.20, 0.40, 0.60}; + double magenta[] = { 0.55, 0.45, 0.34, 0.22, 0.14, 0.08, 0.06, 0.03, 0.01, + 0.00, 0.03, 0.11, 0.23, 0.40, 0.55, 0.67, 0.75, 0.80}; + double yellow[] = { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, + 0.10, 0.25, 0.40, 0.65, 0.80, 0.90, 1.00, 1.00, 1.00}; + double black[] = { 0.30, 0.07, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, + 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00}; + double w; + int i,j; + int bin; + int boxsize; /* box size in points */ + int xcoord, ycoord; /* postscript coords in points */ + int leftmargin; + int bottommargin; + + /* Set some defaults that might become arguments later. + */ + leftmargin = 20; + bottommargin = 20; + + /* Determine some working parameters + */ + w = (max-min) / (double) nshades; /* w = bin size for assigning values->colors*/ + boxsize = ESL_MIN( (792 - bottommargin) / D->n, + (612 - leftmargin) / D->m); + + /* or start from j=i, to do diagonals */ + + for (i = 0; i < D->n; i++) + for (j = 0; j < D->m; j++) + { + xcoord = j * boxsize + leftmargin; + ycoord = (D->n-i+1) * boxsize + bottommargin; + + if (D->mx[i][j] == -eslINFINITY) bin = 0; + else if (D->mx[i][j] == eslINFINITY) bin = nshades-1; + else { + bin = (int) ceil((D->mx[i][j] - min) / w) - 1; + if (bin < 0) bin = 0; + if (bin >= nshades) bin = nshades-1; + } + + fprintf(fp, "newpath\n"); + fprintf(fp, " %d %d moveto\n", xcoord, ycoord); + fprintf(fp, " 0 %d rlineto\n", boxsize); + fprintf(fp, " %d 0 rlineto\n", boxsize); + fprintf(fp, " 0 -%d rlineto\n", boxsize); + fprintf(fp, " closepath\n"); + fprintf(fp, " %.2f %.2f %.2f %.2f setcmykcolor\n", + cyan[bin], magenta[bin], yellow[bin], black[bin]); + fprintf(fp, " fill\n"); + } + fprintf(fp, "showpage\n"); + return eslOK; +} diff --git a/bioinformaticsProject/hmmer/src/hmmalign.c b/bioinformaticsProject/hmmer/src/hmmalign.c new file mode 100644 index 0000000..33abde8 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmalign.c @@ -0,0 +1,288 @@ +/* hmmalign: align sequences to a profile HMM + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +static int map_alignment(const char *msafile, const P7_HMM *hmm, ESL_SQ ***ret_sq, P7_TRACE ***ret_tr, int *ret_ntot); + + +#define ALPHOPTS "--amino,--dna,--rna" /* Exclusive options for alphabet choice */ + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output alignment to file , not stdout", 1 }, + + { "--mapali", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "include alignment in file (same ali that HMM came from)", 2 }, + { "--trim", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "trim terminal tails of nonaligned residues from alignment", 2 }, + { "--amino", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "assert , both protein: no autodetection", 2 }, + { "--dna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "assert , both DNA: no autodetection", 2 }, + { "--rna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "assert , both RNA: no autodetection", 2 }, + { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert is in format : no autodetection", 2 }, + { "--outformat", eslARG_STRING, "Stockholm", NULL, NULL, NULL, NULL, NULL, "output alignment in format ", 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options] "; +static char banner[] = "align sequences to a profile HMM"; + + + + +static void +cmdline_failure(char *argv0, char *format, ...) +{ + va_list argp; + printf("\nERROR: "); + va_start(argp, format); + vfprintf(stdout, format, argp); + va_end(argp); + esl_usage(stdout, argv0, usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv0); + exit(1); +} + +static void +cmdline_help(char *argv0, ESL_GETOPTS *go) +{ + p7_banner (stdout, argv0, banner); + esl_usage (stdout, argv0, usage); + puts("\nBasic options:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + puts("\nLess common options:"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + puts("\nSequence input formats include: FASTA, EMBL, GenBank, UniProt"); + puts("Alignment output formats include: Stockholm, Pfam, A2M, PSIBLAST\n"); + exit(0); +} + + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; /* application configuration */ + char *hmmfile = NULL; /* HMM file name */ + char *seqfile = NULL; /* sequence file name */ + char *mapfile = NULL; /* optional mapped MSA file name */ + int infmt = eslSQFILE_UNKNOWN; + int outfmt = eslMSAFILE_STOCKHOLM; + P7_HMMFILE *hfp = NULL; /* open HMM file */ + ESL_SQFILE *sqfp = NULL; /* open sequence file */ + char *outfile = NULL; /* output filename */ + FILE *ofp = stdout; /* output stream */ + ESL_SQ **sq = NULL; /* array of sequences */ + void *p = NULL; /* tmp ptr for reallocation */ + int nseq = 0; /* # of sequences in */ + int mapseq = 0; /* # of sequences in mapped MSA */ + int totseq = 0; /* # of seqs in all sources */ + ESL_ALPHABET *abc = NULL; /* alphabet (set from the HMM file)*/ + P7_HMM *hmm = NULL; + P7_TRACE **tr = NULL; /* array of tracebacks */ + ESL_MSA *msa = NULL; /* resulting multiple alignment */ + int msaopts = 0; /* flags to p7_tracealign_Seqs() */ + int idx; /* counter over seqs, traces */ + int status; /* easel/hmmer return code */ + char errbuf[eslERRBUFSIZE]; + + /* Parse the command line + */ + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) cmdline_failure(argv[0], "Failed to parse command line: %s\n", go->errbuf); + if (esl_opt_VerifyConfig(go) != eslOK) cmdline_failure(argv[0], "Error in configuration: %s\n", go->errbuf); + if (esl_opt_GetBoolean(go, "-h") ) cmdline_help (argv[0], go); + if (esl_opt_ArgNumber(go) != 2) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n"); + + hmmfile = esl_opt_GetArg(go, 1); + seqfile = esl_opt_GetArg(go, 2); + + if (strcmp(hmmfile, "-") == 0 && strcmp(seqfile, "-") == 0) + cmdline_failure(argv[0], "Either or may be '-' (to read from stdin), but not both.\n"); + + msaopts |= p7_ALL_CONSENSUS_COLS; /* default as of 3.1 */ + if (esl_opt_GetBoolean(go, "--trim")) msaopts |= p7_TRIM; + + /* If caller declared an input format, decode it + */ + if (esl_opt_IsOn(go, "--informat")) { + infmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--informat")); + if (infmt == eslSQFILE_UNKNOWN) cmdline_failure(argv[0], "%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--informat")); + } + + /* Determine output alignment file format */ + outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat")); + if (outfmt == eslMSAFILE_UNKNOWN) cmdline_failure(argv[0], "%s is not a recognized output MSA file format\n", esl_opt_GetString(go, "--outformat")); + + /* Open output stream */ + if ( (outfile = esl_opt_GetString(go, "-o")) != NULL) + { + if ((ofp = fopen(outfile, "w")) == NULL) + cmdline_failure(argv[0], "failed to open -o output file %s for writing\n", outfile); + } + + + /* If caller forced an alphabet on us, create the one the caller wants + */ + if (esl_opt_GetBoolean(go, "--amino")) abc = esl_alphabet_Create(eslAMINO); + else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA); + else if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA); + + /* Read one HMM, and make sure there's only one. + */ + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + if (status == eslEFORMAT) p7_Fail("Bad file format in HMM file %s:\n%s\n", hfp->fname, hfp->errbuf); + else if (status == eslEINCOMPAT) p7_Fail("HMM in %s is not in the expected %s alphabet\n", hfp->fname, esl_abc_DecodeType(abc->type)); + else if (status == eslEOF) p7_Fail("Empty HMM file %s? No HMM data found.\n", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s\n", hfp->fname); + + status = p7_hmmfile_Read(hfp, &abc, NULL); + if (status != eslEOF) p7_Fail("HMM file %s does not contain just one HMM\n", hfp->fname); + p7_hmmfile_Close(hfp); + + + /* We're going to build up two arrays: sequences and traces. + * If --mapali option is chosen, the first set of sequences/traces is from the provided alignment + */ + if ( (mapfile = esl_opt_GetString(go, "--mapali")) != NULL) + { + map_alignment(mapfile, hmm, &sq, &tr, &mapseq); + } + totseq = mapseq; + + /* Read digital sequences into an array (possibly concat'ed onto mapped seqs) + */ + status = esl_sqfile_OpenDigital(abc, seqfile, infmt, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", seqfile); + else if (status == eslEFORMAT) p7_Fail("Sequence file %s is empty or misformatted\n", seqfile); + else if (status != eslOK) p7_Fail("Unexpected error %d opening sequence file %s\n", status, seqfile); + + ESL_RALLOC(sq, p, sizeof(ESL_SQ *) * (totseq + 1)); + sq[totseq] = esl_sq_CreateDigital(abc); + nseq = 0; + while ((status = esl_sqio_Read(sqfp, sq[totseq+nseq])) == eslOK) + { + nseq++; + ESL_RALLOC(sq, p, sizeof(ESL_SQ *) * (totseq+nseq+1)); + sq[totseq+nseq] = esl_sq_CreateDigital(abc); + } + if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n", + sqfp->filename, esl_sqfile_GetErrorBuf(sqfp)); + else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", status, sqfp->filename); + esl_sqfile_Close(sqfp); + totseq += nseq; + + + /* Remaining initializations, including trace array allocation + */ + ESL_RALLOC(tr, p, sizeof(P7_TRACE *) * totseq); + for (idx = mapseq; idx < totseq; idx++) + tr[idx] = p7_trace_CreateWithPP(); + + p7_tracealign_computeTraces(hmm, sq, mapseq, totseq - mapseq, tr); + + p7_tracealign_Seqs(sq, tr, totseq, hmm->M, msaopts, hmm, &msa); + + esl_msafile_Write(ofp, msa, outfmt); + + for (idx = 0; idx <= totseq; idx++) esl_sq_Destroy(sq[idx]); /* including sq[nseq] because we overallocated */ + for (idx = 0; idx < totseq; idx++) p7_trace_Destroy(tr[idx]); + free(sq); + free(tr); + esl_msa_Destroy(msa); + p7_hmm_Destroy(hmm); + if (ofp != stdout) fclose(ofp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return eslOK; + + ERROR: + return status; +} + + + +/***************************************************************** + * Internal functions used by main and API + *****************************************************************/ + +static int +map_alignment(const char *msafile, const P7_HMM *hmm, ESL_SQ ***ret_sq, P7_TRACE ***ret_tr, int *ret_ntot) +{ + ESL_SQ **sq = NULL; + P7_TRACE **tr = NULL; + ESL_MSAFILE *afp = NULL; + ESL_MSA *msa = NULL; + ESL_ALPHABET *abc = (ESL_ALPHABET *) hmm->abc; /* removing const'ness to make compiler happy. Safe. */ + int *matassign = NULL; + uint32_t chksum = 0; + int i,k; + int status; + + status = esl_msafile_Open(&abc, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp); + if (status != eslOK) esl_msafile_OpenFailure(afp, status); + + status = esl_msafile_Read(afp, &msa); + if (status != eslOK) esl_msafile_ReadFailure(afp, status); + + if (! (hmm->flags & p7H_CHKSUM) ) esl_fatal("HMM has no checksum. --mapali unreliable without it."); + if (! (hmm->flags & p7H_MAP) ) esl_fatal("HMM has no map. --mapali can't work without it."); + esl_msa_Checksum(msa, &chksum); + if (hmm->checksum != chksum) esl_fatal("--mapali MSA %s isn't same as the one HMM came from (checksum mismatch)", msafile); + + ESL_ALLOC(sq, sizeof(ESL_SQ *) * msa->nseq); + ESL_ALLOC(tr, sizeof(P7_TRACE *) * msa->nseq); + ESL_ALLOC(matassign, sizeof(int) * (msa->alen + 1)); + + esl_vec_ISet(matassign, msa->alen+1, 0); + for (k = 1; k <= hmm->M; k++) matassign[hmm->map[k]] = 1; + + p7_trace_FauxFromMSA(msa, matassign, p7_DEFAULT, tr); + + /* The 'faux' core traces constructed by FauxFromMSA() may contain + * D->I and I->D transitions. They may *only* now be passed to + * p7_tracealign_Seqs(), which can deal with these 'illegal' + * transitions, in order to exactly reproduce the input --mapali + * alignment. + */ + + for (i = 0; i < msa->nseq; i++) + esl_sq_FetchFromMSA(msa, i, &(sq[i])); + + *ret_ntot = msa->nseq; + *ret_tr = tr; + *ret_sq = sq; + + esl_msafile_Close(afp); + esl_msa_Destroy(msa); + free(matassign); + return eslOK; + + ERROR: + *ret_ntot = 0; + *ret_tr = NULL; + *ret_sq = NULL; + if (afp != NULL) esl_msafile_Close(afp); + if (msa != NULL) esl_msa_Destroy(msa); + if (matassign != NULL) free(matassign); + return status; +} + diff --git a/bioinformaticsProject/hmmer/src/hmmbuild.c b/bioinformaticsProject/hmmer/src/hmmbuild.c new file mode 100644 index 0000000..709a56d --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmbuild.c @@ -0,0 +1,1390 @@ +/* Profile HMM construction from a multiple sequence alignment + */ +#include "p7_config.h" + +#include +#include +#include + +#ifdef HMMER_MPI +#include "mpi.h" +#endif + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_mpi.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_msaweight.h" +#include "esl_msacluster.h" +#include "esl_stopwatch.h" +#include "esl_vectorops.h" + +#ifdef HMMER_THREADS +#include +#include "esl_threads.h" +#include "esl_workqueue.h" +#endif /*HMMER_THREADS*/ + +#include "hmmer.h" + +typedef struct { +#ifdef HMMER_THREADS + ESL_WORK_QUEUE *queue; +#endif /*HMMER_THREADS*/ + P7_BG *bg; + P7_BUILDER *bld; +} WORKER_INFO; + +#ifdef HMMER_THREADS +typedef struct { + int nali; + int processed; + ESL_MSA *postmsa; + ESL_MSA *msa; + P7_HMM *hmm; + double entropy; + int force_single; /* FALSE by default, TRUE if esl_opt_IsUsed(go, "--singlemx") ; only matters for single sequences */ +} WORK_ITEM; + +typedef struct _pending_s { + int nali; + ESL_MSA *postmsa; + ESL_MSA *msa; + P7_HMM *hmm; + double entropy; + struct _pending_s *next; +} PENDING_ITEM; +#endif /*HMMER_THREADS*/ + +#define ALPHOPTS "--amino,--dna,--rna" /* Exclusive options for alphabet choice */ +#define CONOPTS "--fast,--hand" /* Exclusive options for model construction */ +#define EFFOPTS "--eent,--eentexp,--eclust,--eset,--enone" /* Exclusive options for effective sequence number calculation */ +#define WGTOPTS "--wgsc,--wblosum,--wpb,--wnone,--wgiven" /* Exclusive options for relative weighting */ + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "-n", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "name the HMM ", 1 }, + { "-o", eslARG_OUTFILE,FALSE, NULL, NULL, NULL, NULL, NULL, "direct summary output to file , not stdout", 1 }, + { "-O", eslARG_OUTFILE,FALSE, NULL, NULL, NULL, NULL, NULL, "resave annotated, possibly modified MSA to file ", 1 }, + + /* Selecting the alphabet rather than autoguessing it */ + { "--amino", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input alignment is protein sequence data", 2 }, + { "--dna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input alignment is DNA sequence data", 2 }, + { "--rna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input alignment is RNA sequence data", 2 }, + + /* Alternate model construction strategies */ + { "--fast", eslARG_NONE,"default",NULL, NULL, CONOPTS, NULL, NULL, "assign cols w/ >= symfrac residues as consensus", 3 }, + { "--hand", eslARG_NONE, FALSE, NULL, NULL, CONOPTS, NULL, NULL, "manual construction (requires reference annotation)", 3 }, + { "--symfrac", eslARG_REAL, "0.5", NULL, "0<=x<=1", NULL, "--fast", NULL, "sets sym fraction controlling --fast construction", 3 }, + { "--fragthresh",eslARG_REAL, "0.5", NULL, "0<=x<=1", NULL, NULL, NULL, "if L <= x*alen, tag sequence as a fragment", 3 }, + + /* Alternate relative sequence weighting strategies */ + /* --wme not implemented in HMMER3 yet */ + { "--wpb", eslARG_NONE,"default",NULL, NULL, WGTOPTS, NULL, NULL, "Henikoff position-based weights", 4 }, + { "--wgsc", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "Gerstein/Sonnhammer/Chothia tree weights", 4 }, + { "--wblosum", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "Henikoff simple filter weights", 4 }, + { "--wnone", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "don't do any relative weighting; set all to 1", 4 }, + { "--wgiven", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "use weights as given in MSA file", 4 }, + { "--wid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--wblosum", NULL, "for --wblosum: set identity cutoff", 4 }, + + /* Alternative effective sequence weighting strategies */ + { "--eent", eslARG_NONE,"default",NULL, NULL, EFFOPTS, NULL, NULL, "adjust eff seq # to achieve relative entropy target", 5 }, + { "--eclust", eslARG_NONE, FALSE, NULL, NULL, EFFOPTS, NULL, NULL, "eff seq # is # of single linkage clusters", 5 }, + { "--enone", eslARG_NONE, FALSE, NULL, NULL, EFFOPTS, NULL, NULL, "no effective seq # weighting: just use nseq", 5 }, + { "--eset", eslARG_REAL, NULL, NULL, NULL, EFFOPTS, NULL, NULL, "set eff seq # for all models to ", 5 }, + { "--ere", eslARG_REAL, NULL, NULL,"x>0", NULL, NULL, NULL, "for --eent: set minimum rel entropy/position to ", 5 }, + { "--esigma", eslARG_REAL, "45.0", NULL,"x>0", NULL, NULL, NULL, "for --eent: set sigma param to ", 5 }, + { "--eid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--eclust", NULL, "for --eclust: set fractional identity cutoff to ", 5 }, + + /* Alternative prior strategies */ + { "--pnone", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--plaplace", "don't use any prior; parameters are frequencies", 9 }, + { "--plaplace",eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--pnone", "use a Laplace +1 prior", 9 }, + + /* Single sequence methods */ + { "--singlemx", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "", "use substitution score matrix for single-sequence inputs", 10 }, + { "--mx", eslARG_STRING, "BLOSUM62", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix (built-in matrices, with --singlemx)", 10 }, + { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file (with --singlemx)", 10 }, + { "--popen", eslARG_REAL, NULL, NULL,"0<=x<0.5",NULL, NULL, "", "force gap open prob. (w/ --singlemx, aa default 0.02, nt 0.031)", 10 }, + { "--pextend", eslARG_REAL, NULL, NULL, "0<=x<1", NULL, NULL, "", "force gap extend prob. (w/ --singlemx, aa default 0.4, nt 0.75)", 10 }, + + /* Control of E-value calibration */ + { "--EmL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for MSV Gumbel mu fit", 6 }, + { "--EmN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for MSV Gumbel mu fit", 6 }, + { "--EvL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Viterbi Gumbel mu fit", 6 }, + { "--EvN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Viterbi Gumbel mu fit", 6 }, + { "--EfL", eslARG_INT, "100", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Forward exp tail tau fit", 6 }, + { "--EfN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Forward exp tail tau fit", 6 }, + { "--Eft", eslARG_REAL, "0.04", NULL,"0=0",NULL, NULL, NULL, "number of parallel CPU workers for multithreads", 8 }, +#endif +#ifdef HMMER_MPI + { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "run as an MPI parallel program", 8 }, +#endif + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for attaching debugger to process", 8 }, + { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input alifile is in format (no autodetect)", 8 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 8 }, + { "--w_beta", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "tail mass at which window length is determined", 8 }, + { "--w_length", eslARG_INT, NULL, NULL, NULL, NULL, NULL, NULL, "window length ", 8 }, + { "--maxinsertlen", eslARG_INT, NULL, NULL, "n>=5", NULL, NULL, NULL, "pretend all inserts are length <= ", 8 }, + + /*Expert-only option, hidden from view. Likely to be removed in the future. + This is an experimental alternative method for weighting sequence counts. + It produces non-uniform scaling across columns -- columns with higher + counts are reduced to a greater extent than columns with low counts. It + has proven useful in reducing alignment overextension with Dfam models - + these are often based on MSAs reconstructed from heavily-fragmented + sequences, and thus may have wildly different per-column coverage levels. + Uniform scaling causes low-coverage regions to be scaled down to + essentially no (weighted) observations, leading to low local relative + entropy, which produces high overextension. + + However, we don't recommend using this method in general, as it + may show odd behavior (or fail to even work) in the case of low + overall observed counts (e.g. an alignemnt of 2 or 4 sequences) + */ + { "--eentexp", eslARG_NONE,"default",NULL, NULL, EFFOPTS, NULL, NULL, "adjust eff seq # to reach rel. ent. target using exp scaling", 99 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + + +/* struct cfg_s : "Global" application configuration shared by all threads/processes + * + * This structure is passed to routines within main.c, as a means of semi-encapsulation + * of shared data amongst different parallel processes (threads or MPI processes). + */ +struct cfg_s { + FILE *ofp; /* output file (default is stdout) */ + + char *alifile; /* name of the alignment file we're building HMMs from */ + int fmt; /* format code for alifile */ + ESL_MSAFILE *afp; /* open alifile */ + ESL_ALPHABET *abc; /* digital alphabet */ + + char *hmmName; /* hmm file name supplied from -n */ + char *hmmfile; /* file to write HMM to */ + FILE *hmmfp; /* HMM output file handle */ + + char *postmsafile; /* optional file to resave annotated, modified MSAs to */ + FILE *postmsafp; /* open , or NULL */ + + int nali; /* which # alignment this is in file (only valid in serial mode) */ + int nnamed; /* number of alignments that had their own names */ + + int do_mpi; /* TRUE if we're doing MPI parallelization */ + int nproc; /* how many MPI processes, total */ + int my_rank; /* who am I, in 0..nproc-1 */ + int do_stall; /* TRUE to stall the program until gdb attaches */ +}; + + +static char usage[] = "[-options] "; +static char banner[] = "profile HMM construction from multiple sequence alignments"; + +static int usual_master(const ESL_GETOPTS *go, struct cfg_s *cfg); +static void serial_loop (WORKER_INFO *info, struct cfg_s *cfg, const ESL_GETOPTS *go); +#ifdef HMMER_THREADS +static void thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, struct cfg_s *cfg, const ESL_GETOPTS *go); +static void pipeline_thread(void *arg); +#endif /*HMMER_THREADS*/ + +#ifdef HMMER_MPI +static void mpi_master (const ESL_GETOPTS *go, struct cfg_s *cfg); +static void mpi_worker (const ESL_GETOPTS *go, struct cfg_s *cfg); +static void mpi_init_open_failure(ESL_MSAFILE *afp, int status); +static void mpi_init_other_failure(char *format, ...); +#endif + +static int output_header(const ESL_GETOPTS *go, const struct cfg_s *cfg); +static int output_result(const struct cfg_s *cfg, char *errbuf, int msaidx, ESL_MSA *msa, P7_HMM *hmm, ESL_MSA *postmsa, double entropy); +static int set_msa_name ( struct cfg_s *cfg, char *errbuf, ESL_MSA *msa); + + +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmfile, char **ret_alifile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment:\n%s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line:\n%s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line:\n%s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + + if (puts("\nOptions for selecting alphabet rather than guessing it:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + + if (puts("\nAlternative model construction strategies:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 80); + + if (puts("\nAlternative relative sequence weighting strategies:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + + if (puts("\nAlternative effective sequence weighting strategies:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + + if (puts("\nAlternative prior strategies:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 9, 2, 80); + + if (puts("\nHandling single sequence inputs:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 10, 2, 80); + + + if (puts("\nControl of E-value calibration:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 6, 2, 80); + + if (puts("\nOther options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 8, 2, 80); + exit(0); + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_hmmfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_alifile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + if (strcmp(*ret_hmmfile, "-") == 0) + { if (puts("Can't write to stdout: don't use '-'") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (strcmp(*ret_alifile, "-") == 0 && ! esl_opt_IsOn(go, "--informat")) + { if (puts("Must specify --informat to read from stdin ('-')") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + +#ifdef HMMER_MPI + if (esl_opt_IsOn(go, "--mpi") && esl_opt_IsOn(go, "--cpu")) + { + int mpisetby = esl_opt_GetSetter(go, "--mpi"); + int cpusetby = esl_opt_GetSetter(go, "--cpu"); + + if (mpisetby == cpusetby) { + if (puts("Options --cpu and --mpi are incompatible. The MPI implementation is not multithreaded.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + goto FAILURE; + } + } +#endif + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + puts("\nwhere basic options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + printf("\nTo see more help on other available options, do:\n %s -h\n\n", argv[0]); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +static int +output_header(const ESL_GETOPTS *go, const struct cfg_s *cfg) +{ + if (cfg->my_rank > 0) return eslOK; + + p7_banner(cfg->ofp, go->argv[0], banner); + + if (fprintf(cfg->ofp, "# input alignment file: %s\n", cfg->alifile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(cfg->ofp, "# output HMM file: %s\n", cfg->hmmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "-n") && fprintf(cfg->ofp, "# name (the single) HMM: %s\n", esl_opt_GetString(go, "-n")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-o") && fprintf(cfg->ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-O") && fprintf(cfg->ofp, "# processed alignment resaved to: %s\n", esl_opt_GetString(go, "-O")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--amino") && fprintf(cfg->ofp, "# input alignment is asserted as: protein\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--dna") && fprintf(cfg->ofp, "# input alignment is asserted as: DNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--rna") && fprintf(cfg->ofp, "# input alignment is asserted as: RNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--fast") && fprintf(cfg->ofp, "# model architecture construction: fast/heuristic\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--hand") && fprintf(cfg->ofp, "# model architecture construction: hand-specified by RF annotation\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--symfrac") && fprintf(cfg->ofp, "# sym fraction for model structure: %.3f\n", esl_opt_GetReal(go, "--symfrac")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--fragthresh") && fprintf(cfg->ofp, "# seq called frag if L <= x*alen: %.3f\n", esl_opt_GetReal(go, "--fragthresh")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wpb") && fprintf(cfg->ofp, "# relative weighting scheme: Henikoff PB\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wgsc") && fprintf(cfg->ofp, "# relative weighting scheme: G/S/C\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wblosum") && fprintf(cfg->ofp, "# relative weighting scheme: BLOSUM filter\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wnone") && fprintf(cfg->ofp, "# relative weighting scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wid") && fprintf(cfg->ofp, "# frac id cutoff for BLOSUM wgts: %f\n", esl_opt_GetReal(go, "--wid")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eent") && fprintf(cfg->ofp, "# effective seq number scheme: entropy weighting\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eentexp") && fprintf(cfg->ofp, "# effective seq number scheme: entropy weighting using exponent-based scaling\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eclust") && fprintf(cfg->ofp, "# effective seq number scheme: single linkage clusters\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--enone") && fprintf(cfg->ofp, "# effective seq number scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eset") && fprintf(cfg->ofp, "# effective seq number: set to %f\n", esl_opt_GetReal(go, "--eset")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--ere") && fprintf(cfg->ofp, "# minimum rel entropy target: %f bits\n", esl_opt_GetReal(go, "--ere")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--esigma") && fprintf(cfg->ofp, "# entropy target sigma parameter: %f bits\n", esl_opt_GetReal(go, "--esigma")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eid") && fprintf(cfg->ofp, "# frac id cutoff for --eclust: %f\n", esl_opt_GetReal(go, "--eid")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pnone") && fprintf(cfg->ofp, "# prior scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--plaplace") && fprintf(cfg->ofp, "# prior scheme: Laplace +1\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EmL") && fprintf(cfg->ofp, "# seq length for MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EmL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EmN") && fprintf(cfg->ofp, "# seq number for MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EmN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EvL") && fprintf(cfg->ofp, "# seq length for Vit Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EvL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EvN") && fprintf(cfg->ofp, "# seq number for Vit Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EvN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EfL") && fprintf(cfg->ofp, "# seq length for Fwd exp tau fit: %d\n", esl_opt_GetInteger(go, "--EfL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EfN") && fprintf(cfg->ofp, "# seq number for Fwd exp tau fit: %d\n", esl_opt_GetInteger(go, "--EfN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--Eft") && fprintf(cfg->ofp, "# tail mass for Fwd exp tau fit: %f\n", esl_opt_GetReal(go, "--Eft")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--singlemx") && fprintf(cfg->ofp, "# use score matrix for 1-seq MSAs: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--popen") && fprintf(cfg->ofp, "# gap open probability: %f\n", esl_opt_GetReal (go, "--popen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pextend") && fprintf(cfg->ofp, "# gap extend probability: %f\n", esl_opt_GetReal (go, "--pextend")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--mx") && fprintf(cfg->ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString (go, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--mxfile") && fprintf(cfg->ofp, "# subst score matrix (file): %s\n", esl_opt_GetString (go, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--maxinsertlen") && fprintf(cfg->ofp, "# max insert length: %d\n", esl_opt_GetInteger (go, "--maxinsertlen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + +#ifdef HMMER_THREADS + if (esl_opt_IsUsed(go, "--cpu") && fprintf(cfg->ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif +#ifdef HMMER_MPI + if (esl_opt_IsUsed(go, "--mpi") && fprintf(cfg->ofp, "# parallelization mode: MPI\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif + if (esl_opt_IsUsed(go, "--seed")) { + if (esl_opt_GetInteger(go, "--seed") == 0 && fprintf(cfg->ofp,"# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if ( fprintf(cfg->ofp,"# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (esl_opt_IsUsed(go, "--w_beta") && fprintf(cfg->ofp, "# window length tail mass: %g bits\n", esl_opt_GetReal(go, "--w_beta")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--w_length") && fprintf(cfg->ofp, "# window length : %d\n", esl_opt_GetInteger(go, "--w_length"))< 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + + if (fprintf(cfg->ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + +void +apply_fixed_gap_params(P7_HMM *hmm, double popen, double pextend){ + int k; + for (k = 0; k <= hmm->M; k++) + { + if (popen != -1) { + hmm->t[k][p7H_MM] = 1.0 - 2 * popen; + hmm->t[k][p7H_MI] = popen; + hmm->t[k][p7H_MD] = popen; + } + if (pextend != -1) { + hmm->t[k][p7H_IM] = 1.0 - pextend; + hmm->t[k][p7H_II] = pextend; + hmm->t[k][p7H_DM] = 1.0 - pextend; + hmm->t[k][p7H_DD] = pextend; + } + } + + /* Deal w/ special stuff at node M, overwriting a little of what we + * just did. + */ + if (popen != -1) { + hmm->t[hmm->M][p7H_MM] = 1.0 - popen; + } + hmm->t[hmm->M][p7H_MD] = 0.; + hmm->t[hmm->M][p7H_DM] = 1.0; + hmm->t[hmm->M][p7H_DD] = 0.; + +} + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; /* command line processing */ + ESL_STOPWATCH *w = esl_stopwatch_Create(); + struct cfg_s cfg; + + /* Set processor specific flags */ + impl_Init(); + + cfg.alifile = NULL; + cfg.hmmfile = NULL; + + /* Parse the command line + */ + process_commandline(argc, argv, &go, &cfg.hmmfile, &cfg.alifile); + + /* Initialize what we can in the config structure (without knowing the alphabet yet). + * Fields controlled by masters are set up in usual_master() or mpi_master() + * Fields used by workers are set up in mpi_worker() + */ + cfg.ofp = NULL; + cfg.fmt = eslMSAFILE_UNKNOWN; /* autodetect alignment format by default. */ + cfg.afp = NULL; + cfg.abc = NULL; + cfg.hmmfp = NULL; + cfg.postmsafile = esl_opt_GetString(go, "-O"); /* NULL by default */ + cfg.postmsafp = NULL; + + cfg.nali = 0; /* this counter is incremented in masters */ + cfg.nnamed = 0; /* 0 or 1 if a single MSA; == nali if multiple MSAs */ + cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */ + cfg.nproc = 0; /* this gets reset below, if we init MPI */ + cfg.my_rank = 0; /* this gets reset below, if we init MPI */ + cfg.do_stall = esl_opt_GetBoolean(go, "--stall"); + cfg.hmmName = esl_opt_GetString(go, "-n"); /* NULL by default */ + + if (esl_opt_IsOn(go, "--informat")) { + cfg.fmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat")); + if (cfg.fmt == eslMSAFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--informat")); + } + + + /* This is our stall point, if we need to wait until we get a + * debugger attached to this process for debugging (especially + * useful for MPI): + */ + while (cfg.do_stall); + + /* Start timing. */ + esl_stopwatch_Start(w); + + /* Figure out who we are, and send control there: + * we might be an MPI master, an MPI worker, or a serial program. + */ +#ifdef HMMER_MPI + if (esl_opt_GetBoolean(go, "--mpi")) + { + cfg.do_mpi = TRUE; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &(cfg.my_rank)); + MPI_Comm_size(MPI_COMM_WORLD, &(cfg.nproc)); + + if (cfg.my_rank > 0) mpi_worker(go, &cfg); + else mpi_master(go, &cfg); + + esl_stopwatch_Stop(w); + esl_stopwatch_MPIReduce(w, 0, MPI_COMM_WORLD); + MPI_Finalize(); + } + else +#endif /*HMMER_MPI*/ + { + usual_master(go, &cfg); + esl_stopwatch_Stop(w); + } + + if (cfg.my_rank == 0) { + fputc('\n', cfg.ofp); + esl_stopwatch_Display(cfg.ofp, w, "# CPU time: "); + } + + /* Clean up the shared cfg. + */ + if (cfg.my_rank == 0) { + if (esl_opt_IsOn(go, "-o")) { fclose(cfg.ofp); } + if (cfg.afp) esl_msafile_Close(cfg.afp); + if (cfg.abc) esl_alphabet_Destroy(cfg.abc); + if (cfg.hmmfp) fclose(cfg.hmmfp); + } + esl_getopts_Destroy(go); + esl_stopwatch_Destroy(w); + return 0; +} + + +/* usual_master() + * The usual version of hmmbuild, serial or threaded + * For each MSA, build an HMM and save it. + * + * A master can only return if it's successful. + * All errors are handled immediately and fatally with p7_Fail() or equiv. + */ +static int +usual_master(const ESL_GETOPTS *go, struct cfg_s *cfg) +{ + int ncpus = 0; + int infocnt = 0; + WORKER_INFO *info = NULL; +#ifdef HMMER_THREADS + WORK_ITEM *item = NULL; + ESL_THREADS *threadObj= NULL; + ESL_WORK_QUEUE *queue = NULL; +#endif + double popen; + double pextend; + int i; + int status; + + /* Open files, set alphabet. + * cfg->afp - open alignment file for input + * cfg->abc - alphabet expected or guessed in ali file + * cfg->hmmfp - open HMM file for output + * cfg->postmsafp - optional open MSA resave file, or NULL + * cfp->ofp - optional open output file, or stdout + * The mpi_master's version of this is in init_master_cfg(), with + * different error handling (necessitated by our MPI design). + */ + if (esl_opt_GetBoolean(go, "--amino")) cfg->abc = esl_alphabet_Create(eslAMINO); + else if (esl_opt_GetBoolean(go, "--dna")) cfg->abc = esl_alphabet_Create(eslDNA); + else if (esl_opt_GetBoolean(go, "--rna")) cfg->abc = esl_alphabet_Create(eslRNA); + else cfg->abc = NULL; + + status = esl_msafile_Open(&(cfg->abc), cfg->alifile, NULL, cfg->fmt, NULL, &(cfg->afp)); + if (status != eslOK) esl_msafile_OpenFailure(cfg->afp, status); + + cfg->hmmfp = fopen(cfg->hmmfile, "w"); + if (cfg->hmmfp == NULL) p7_Fail("Failed to open HMM file %s for writing", cfg->hmmfile); + + if (esl_opt_IsUsed(go, "-o")) + { + cfg->ofp = fopen(esl_opt_GetString(go, "-o"), "w"); + if (cfg->ofp == NULL) p7_Fail("Failed to open -o output file %s\n", esl_opt_GetString(go, "-o")); + } + else cfg->ofp = stdout; + + if (cfg->postmsafile) + { + cfg->postmsafp = fopen(cfg->postmsafile, "w"); + if (cfg->postmsafp == NULL) p7_Fail("Failed to resave MSA file %s", cfg->postmsafile); + } + else cfg->postmsafp = NULL; + + + /* Looks like the i/o is set up successfully... + * Initial output to the user + */ + output_header(go, cfg); /* cheery output header */ + output_result(cfg, NULL, 0, NULL, NULL, NULL, 0.0); /* tabular results header (with no args, special-case) */ + +#ifdef HMMER_THREADS + /* initialize thread data */ + ncpus = ESL_MIN(esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + if (ncpus > 0) + { + threadObj = esl_threads_Create(&pipeline_thread); + queue = esl_workqueue_Create(ncpus * 2); + } +#endif + + infocnt = (ncpus == 0) ? 1 : ncpus; + ESL_ALLOC(info, sizeof(*info) * infocnt); + + for (i = 0; i < infocnt; ++i) + { + info[i].bg = p7_bg_Create(cfg->abc); + info[i].bld = p7_builder_Create(go, cfg->abc); + + if (info[i].bld == NULL) p7_Fail("p7_builder_Create failed"); + + //do this here instead of in p7_builder_Create(), because it's an hmmbuild-specific option + + if ( esl_opt_IsOn(go, "--maxinsertlen") ) + info[i].bld->max_insert_len = esl_opt_GetInteger(go, "--maxinsertlen"); + + if ( cfg->abc->type == eslDNA || cfg->abc->type == eslRNA ) { + //If user hasn't overridden defaults, assign the nucleotide defaults + popen = esl_opt_IsUsed(go, "--popen") ? esl_opt_GetReal(go, "--popen") : 0.03125; + pextend = esl_opt_IsUsed(go, "--pextend") ? esl_opt_GetReal(go, "--pextend") : 0.75; + } else { + //protein defaults + popen = esl_opt_IsUsed(go, "--popen") ? esl_opt_GetReal(go, "--popen") : 0.02; + pextend = esl_opt_IsUsed(go, "--pextend") ? esl_opt_GetReal(go, "--pextend") : 0.4; + } + + /* Default matrix is stored in the --mx option, so it's always IsOn(). + * Check --mxfile first; then go to the --mx option and the default. + */ + if ( esl_opt_IsUsed(go, "--singlemx") ) { + char *mx = esl_opt_GetString(go, "--mx"); + + if ( cfg->abc->type == eslDNA || cfg->abc->type == eslRNA ) { + //If user hasn't overridden defaults, assign the nucleotide defaults + if ( !esl_opt_IsUsed(go, "--mx") ) mx = "DNA1"; + } + if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (info[i].bld, esl_opt_GetString(go, "--mxfile"), NULL, popen, pextend, info[i].bg); + else status = p7_builder_LoadScoreSystem(info[i].bld, mx, popen, pextend, info[i].bg); + if (status != eslOK) p7_Fail("Failed to set single query seq score system:\n%s\n", info[i].bld->errbuf); + } else { + if (esl_opt_IsUsed(go, "--popen") ) info[i].bld->popen = popen; + if (esl_opt_IsUsed(go, "--pextend")) info[i].bld->pextend = pextend; + } + + /* special arguments for hmmbuild */ + info[i].bld->w_len = (go != NULL && esl_opt_IsOn (go, "--w_length")) ? esl_opt_GetInteger(go, "--w_length"): -1; + info[i].bld->w_beta = (go != NULL && esl_opt_IsOn (go, "--w_beta")) ? esl_opt_GetReal (go, "--w_beta") : p7_DEFAULT_WINDOW_BETA; + if ( info[i].bld->w_beta < 0 || info[i].bld->w_beta > 1 ) esl_fatal("Invalid window-length beta value\n"); + +#ifdef HMMER_THREADS + info[i].queue = queue; + if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]); +#endif + } + +#ifdef HMMER_THREADS + for (i = 0; i < ncpus * 2; ++i) + { + ESL_ALLOC(item, sizeof(*item)); + + item->nali = 0; + item->processed = FALSE; + item->postmsa = NULL; + item->msa = NULL; + item->hmm = NULL; + item->entropy = 0.0; + + status = esl_workqueue_Init(queue, item); + if (status != eslOK) esl_fatal("Failed to add block to work queue"); + } +#endif + +#ifdef HMMER_THREADS + if (ncpus > 0) thread_loop(threadObj, queue, cfg, go); + else serial_loop(info, cfg, go); +#else + serial_loop(info, cfg, go); +#endif + + for (i = 0; i < infocnt; ++i) + { + p7_bg_Destroy(info[i].bg); + p7_builder_Destroy(info[i].bld); + } + +#ifdef HMMER_THREADS + if (ncpus > 0) + { + esl_workqueue_Reset(queue); + while (esl_workqueue_Remove(queue, (void **) &item) == eslOK) + { + free(item); + } + esl_workqueue_Destroy(queue); + esl_threads_Destroy(threadObj); + } +#endif + + free(info); + return eslOK; + + ERROR: + return eslFAIL; +} + +#ifdef HMMER_MPI +/* mpi_master() + * The MPI version of hmmbuild. + * Follows standard pattern for a master/worker load-balanced MPI program (J1/78-79). + * + * A master can only return if it's successful. + * Errors in an MPI master come in two classes: recoverable and nonrecoverable. + * + * Recoverable errors include all worker-side errors, and any + * master-side error that do not affect MPI communication. Error + * messages from recoverable messages are delayed until we've cleanly + * shut down the workers. + * + * Unrecoverable errors are master-side errors that may affect MPI + * communication, meaning we cannot count on being able to reach the + * workers and shut them down. Unrecoverable errors result in immediate + * p7_Fail()'s, which will cause MPI to shut down the worker processes + * uncleanly. + */ +static void +mpi_master(const ESL_GETOPTS *go, struct cfg_s *cfg) +{ + int have_work = TRUE; /* TRUE while alignments remain */ + int nproc_working = 0; /* number of worker processes working, up to nproc-1 */ + int wi; /* rank of next worker to get an alignment to work on */ + char *buf = NULL; /* input/output buffer, for packed MPI messages */ + int bn = 0; + ESL_MSA *msa = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + ESL_MSA **msalist = NULL; + ESL_MSA *postmsa = NULL; + int *msaidx = NULL; + char errmsg[eslERRBUFSIZE]; + int n; + int pos; + double entropy; + int status; + int xstatus = eslOK; /* changes from OK on recoverable error */ + int rstatus; /* status specifically from msa read */ + MPI_Status mpistatus; + + /* Open files, set alphabet. + * cfg->abc - alphabet expected or guessed in ali file + * cfg->afp - open alignment file for input + * cfg->hmmfp - open HMM file for output + * cfp->ofp - optional open output file, or stdout + * cfg->postmsafp - optional open MSA resave file, or NULL + * Error handling requires first broadcasting a non-OK status to workers + * to get them to shut down cleanly. + */ + if (esl_opt_GetBoolean(go, "--amino")) cfg->abc = esl_alphabet_Create(eslAMINO); + else if (esl_opt_GetBoolean(go, "--dna")) cfg->abc = esl_alphabet_Create(eslDNA); + else if (esl_opt_GetBoolean(go, "--rna")) cfg->abc = esl_alphabet_Create(eslRNA); + else cfg->abc = NULL; + + status = esl_msafile_Open(&(cfg->abc), cfg->alifile, NULL, cfg->fmt, NULL, &(cfg->afp)); + if (status != eslOK) mpi_init_open_failure(cfg->afp, status); + + cfg->hmmfp = fopen(cfg->hmmfile, "w"); + if (cfg->hmmfp == NULL) mpi_init_other_failure("Failed to open HMM file %s for writing", cfg->hmmfile); + + if (esl_opt_IsUsed(go, "-o")) + { + cfg->ofp = fopen(esl_opt_GetString(go, "-o"), "w"); + if (cfg->ofp == NULL) mpi_init_other_failure("Failed to open -o output file %s\n", esl_opt_GetString(go, "-o")); + } + else cfg->ofp = stdout; + + if (cfg->postmsafile) + { + cfg->postmsafp = fopen(cfg->postmsafile, "w"); + if (cfg->postmsafp == NULL) mpi_init_other_failure("Failed to MSA resave file %s for writing", cfg->postmsafile); + } + else cfg->postmsafp = NULL; + + /* Other initialization in the master + */ + bn = 4096; + if ((buf = malloc(sizeof(char) * bn)) == NULL) mpi_init_other_failure("allocation failed"); + if ((msalist = malloc(sizeof(ESL_MSA *) * cfg->nproc)) == NULL) mpi_init_other_failure("allocation failed"); + if ((msaidx = malloc(sizeof(int) * cfg->nproc)) == NULL) mpi_init_other_failure("allocation failed"); + if ((bg = p7_bg_Create(cfg->abc)) == NULL) mpi_init_other_failure("allocation failed"); + + for (wi = 0; wi < cfg->nproc; wi++) { msalist[wi] = NULL; msaidx[wi] = 0; } + + /* Looks like the master is initialized successfully... + * Tell the workers we're fine; send initial output to the user + */ + xstatus = eslOK; + MPI_Bcast(&xstatus, 1, MPI_INT, 0, MPI_COMM_WORLD); + output_header(go, cfg); /* cheery output header */ + output_result(cfg, NULL, 0, NULL, NULL, NULL, 0.0); /* tabular results header (with no args, special-case) */ + ESL_DPRINTF1(("MPI master is initialized\n")); + + /* Worker initialization: + * Because we've already successfully initialized the master before we start + * initializing the workers, we don't expect worker initialization to fail; + * so we just receive a quick OK/error code reply from each worker to be sure, + * and don't worry about an informative message. + */ + MPI_Bcast(&(cfg->abc->type), 1, MPI_INT, 0, MPI_COMM_WORLD); + MPI_Reduce(&xstatus, &status, 1, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD); + if (status != eslOK) { MPI_Finalize(); p7_Fail("One or more MPI worker processes failed to initialize."); } + ESL_DPRINTF1(("%d workers are initialized\n", cfg->nproc-1)); + + + /* Main loop: combining load workers, send/receive, clear workers loops; + * also, catch error states and die later, after clean shutdown of workers. + * + * When a recoverable error occurs, have_work = FALSE, xstatus != + * eslOK, and errmsg is set to an informative message. No more + * errmsg's can be received after the first one. We wait for all the + * workers to clear their work units, then send them shutdown signals, + * then finally print our errmsg and exit. + * + * Unrecoverable errors just crash us out with p7_Fail(). + */ + wi = 1; + while (have_work || nproc_working) + { + if (have_work) + { + rstatus = esl_msafile_Read(cfg->afp, &msa); + if (rstatus == eslOK) { cfg->nali++; ESL_DPRINTF1(("MPI master read MSA %s\n", msa->name == NULL? "" : msa->name)); } + else if (rstatus == eslEOF) { have_work = FALSE; rstatus = eslOK; ESL_DPRINTF1(("MPI master has run out of MSAs (having read %d)\n", cfg->nali)); } + else { have_work = FALSE; xstatus = rstatus; ESL_DPRINTF1(("MPI master msa read has failed... start to shut down\n")); } + } + + if ((have_work && nproc_working == cfg->nproc-1) || (!have_work && nproc_working > 0)) + { + if (MPI_Probe(MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &mpistatus) != 0) { MPI_Finalize(); p7_Fail("mpi probe failed"); } + if (MPI_Get_count(&mpistatus, MPI_PACKED, &n) != 0) { MPI_Finalize(); p7_Fail("mpi get count failed"); } + wi = mpistatus.MPI_SOURCE; + ESL_DPRINTF1(("MPI master sees a result of %d bytes from worker %d\n", n, wi)); + + if (n > bn) { + if ((buf = realloc(buf, sizeof(char) * n)) == NULL) p7_Fail("reallocation failed"); + bn = n; + } + if (MPI_Recv(buf, bn, MPI_PACKED, wi, 0, MPI_COMM_WORLD, &mpistatus) != 0) { MPI_Finalize(); p7_Fail("mpi recv failed"); } + ESL_DPRINTF1(("MPI master has received the buffer\n")); + + /* If we're in a recoverable error state, we're only clearing worker results; + * just receive them, don't unpack them or print them. + * But if our xstatus is OK, go ahead and process the result buffer. + */ + if (xstatus == eslOK) + { + pos = 0; + if (MPI_Unpack(buf, bn, &pos, &xstatus, 1, MPI_INT, MPI_COMM_WORLD) != 0) { MPI_Finalize(); p7_Fail("mpi unpack failed");} + if (xstatus == eslOK) /* worker reported success. Get the HMM. */ + { + ESL_DPRINTF1(("MPI master sees that the result buffer contains an HMM\n")); + if (p7_hmm_MPIUnpack(buf, bn, &pos, MPI_COMM_WORLD, &(cfg->abc), &hmm) != eslOK) { MPI_Finalize(); p7_Fail("HMM unpack failed"); } + ESL_DPRINTF1(("MPI master has unpacked the HMM\n")); + + if (cfg->postmsafile != NULL) { + if (esl_msa_MPIUnpack(cfg->abc, buf, bn, &pos, MPI_COMM_WORLD, &postmsa) != eslOK) { MPI_Finalize(); p7_Fail("postmsa unpack failed");} + } + + entropy = p7_MeanMatchRelativeEntropy(hmm, bg); + if ((status = output_result(cfg, errmsg, msaidx[wi], msalist[wi], hmm, postmsa, entropy)) != eslOK) xstatus = status; + + esl_msa_Destroy(postmsa); postmsa = NULL; + p7_hmm_Destroy(hmm); hmm = NULL; + } + else /* worker reported an error. Get the errmsg. */ + { + if (MPI_Unpack(buf, bn, &pos, errmsg, eslERRBUFSIZE, MPI_CHAR, MPI_COMM_WORLD) != 0) { MPI_Finalize(); p7_Fail("mpi unpack of errmsg failed"); } + ESL_DPRINTF1(("MPI master sees that the result buffer contains an error message\n")); + } + } + esl_msa_Destroy(msalist[wi]); + msalist[wi] = NULL; + msaidx[wi] = 0; + nproc_working--; + } + + if (have_work) + { + ESL_DPRINTF1(("MPI master is sending MSA %s to worker %d\n", msa->name == NULL ? "":msa->name, wi)); + if (esl_msa_MPISend(msa, wi, 0, MPI_COMM_WORLD, &buf, &bn) != eslOK) p7_Fail("MPI msa send failed"); + msalist[wi] = msa; + msaidx[wi] = cfg->nali; /* 1..N for N alignments in the MSA database */ + msa = NULL; + wi++; + nproc_working++; + } + } + + /* On success or recoverable errors: + * Shut down workers cleanly. + */ + ESL_DPRINTF1(("MPI master is done. Shutting down all the workers cleanly\n")); + for (wi = 1; wi < cfg->nproc; wi++) + if (esl_msa_MPISend(NULL, wi, 0, MPI_COMM_WORLD, &buf, &bn) != eslOK) p7_Fail("MPI msa send failed"); + + free(buf); + free(msaidx); + free(msalist); + p7_bg_Destroy(bg); + + if (rstatus != eslOK) { MPI_Finalize(); esl_msafile_ReadFailure(cfg->afp, rstatus); } + else if (xstatus != eslOK) { MPI_Finalize(); p7_Fail(errmsg); } + else return; +} + +static void +mpi_init_open_failure(ESL_MSAFILE *afp, int status) +{ + MPI_Bcast(&status, 1, MPI_INT, 0, MPI_COMM_WORLD); + MPI_Finalize(); + esl_msafile_OpenFailure(afp, status); +} + +static void +mpi_init_other_failure(char *format, ...) +{ + va_list argp; + int status = eslFAIL; + + MPI_Bcast(&status, 1, MPI_INT, 0, MPI_COMM_WORLD); + MPI_Finalize(); + if (fprintf(stderr, "\nError: ") < 0) exit(eslEWRITE); + + va_start(argp, format); + if (vfprintf(stderr, format, argp) < 0) exit(eslEWRITE); + va_end(argp); + + if (fprintf(stderr, "\n") < 0) exit(eslEWRITE); + fflush(stderr); + exit(1); +} + +static void +mpi_worker(const ESL_GETOPTS *go, struct cfg_s *cfg) +{ + int xstatus = eslOK; + int status; + int type; + P7_BUILDER *bld = NULL; + ESL_MSA *msa = NULL; + ESL_MSA *postmsa = NULL; + ESL_MSA **postmsa_ptr = (cfg->postmsafile != NULL) ? &postmsa : NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + char *wbuf = NULL; /* packed send/recv buffer */ + void *tmp; /* for reallocation of wbuf */ + int wn = 0; /* allocation size for wbuf */ + int sz, n; /* size of a packed message */ + int pos; + char errmsg[eslERRBUFSIZE]; + ESL_SQ *sq = NULL; + + /* After master initialization: master broadcasts its status. + */ + MPI_Bcast(&xstatus, 1, MPI_INT, 0, MPI_COMM_WORLD); + if (xstatus != eslOK) return; /* master saw an error code; workers do an immediate normal shutdown. */ + ESL_DPRINTF2(("worker %d: sees that master has initialized\n", cfg->my_rank)); + + /* Master now broadcasts worker initialization information (alphabet type) + * Workers returns their status post-initialization. + * Initial allocation of wbuf must be large enough to guarantee that + * we can pack an error result into it, because after initialization, + * errors will be returned as packed (code, errmsg) messages. + */ + MPI_Bcast(&type, 1, MPI_INT, 0, MPI_COMM_WORLD); + if (xstatus == eslOK) { if ((cfg->abc = esl_alphabet_Create(type)) == NULL) xstatus = eslEMEM; } + if (xstatus == eslOK) { wn = 4096; if ((wbuf = malloc(wn * sizeof(char))) == NULL) xstatus = eslEMEM; } + if (xstatus == eslOK) { if ((bld = p7_builder_Create(go, cfg->abc)) == NULL) xstatus = eslEMEM; } + + //special arguments for hmmbuild + bld->w_len = (go != NULL && esl_opt_IsOn (go, "--w_length")) ? esl_opt_GetInteger(go, "--w_length"): -1; + bld->w_beta = (go != NULL && esl_opt_IsOn (go, "--w_beta")) ? esl_opt_GetReal (go, "--w_beta") : p7_DEFAULT_WINDOW_BETA; + if ( bld->w_beta < 0 || bld->w_beta > 1 ) goto ERROR; + + + MPI_Reduce(&xstatus, &status, 1, MPI_INT, MPI_MAX, 0, MPI_COMM_WORLD); /* everyone sends xstatus back to master */ + if (xstatus != eslOK) { + if (wbuf != NULL) free(wbuf); + if (bld != NULL) p7_builder_Destroy(bld); + return; /* shutdown; we passed the error back for the master to deal with. */ + } + + bg = p7_bg_Create(cfg->abc); + + ESL_DPRINTF2(("worker %d: initialized\n", cfg->my_rank)); + + /* source = 0 (master); tag = 0 */ + while (esl_msa_MPIRecv(0, 0, MPI_COMM_WORLD, cfg->abc, &wbuf, &wn, &msa) == eslOK) + { + /* Build the HMM */ + ESL_DPRINTF2(("worker %d: has received MSA %s (%d columns, %d seqs)\n", cfg->my_rank, msa->name, msa->alen, msa->nseq)); + + if ( msa->nseq == 1 && esl_opt_IsUsed(go, "--singlemx")) { + //for, single sequence, use blosum matrix: + sq = esl_sq_CreateDigital(cfg->abc); + if ((status = esl_sq_FetchFromMSA(msa, 0, &sq)) != eslOK) { strcpy(errmsg, bld->errbuf); goto ERROR; } + if ((status = p7_SingleBuilder(bld, sq, bg, &hmm, NULL, NULL, NULL)) != eslOK) { strcpy(errmsg, bld->errbuf); goto ERROR; } + esl_sq_Destroy(sq); + sq = NULL; + hmm->eff_nseq = 1; + } else { + if ((status = p7_Builder(bld, msa, bg, &hmm, NULL, NULL, NULL, postmsa_ptr)) != eslOK) { strcpy(errmsg, bld->errbuf); goto ERROR; } + } + + + ESL_DPRINTF2(("worker %d: has produced an HMM %s\n", cfg->my_rank, hmm->name)); + + /* Calculate upper bound on size of sending status, HMM, and optional postmsa; make sure wbuf can hold it. */ + n = 0; + if (MPI_Pack_size(1, MPI_INT, MPI_COMM_WORLD, &sz) != 0) goto ERROR; else n += sz; + if (p7_hmm_MPIPackSize( hmm, MPI_COMM_WORLD, &sz) != eslOK) goto ERROR; else n += sz; + if (esl_msa_MPIPackSize(postmsa, MPI_COMM_WORLD, &sz) != eslOK) goto ERROR; else n += sz; + if (n > wn) { ESL_RALLOC(wbuf, tmp, sizeof(char) * n); wn = n; } + ESL_DPRINTF2(("worker %d: has calculated that HMM will pack into %d bytes\n", cfg->my_rank, n)); + + /* Send status, HMM, and optional postmsa back to the master */ + pos = 0; + if (MPI_Pack (&status, 1, MPI_INT, wbuf, wn, &pos, MPI_COMM_WORLD) != 0) goto ERROR; + if (p7_hmm_MPIPack (hmm, wbuf, wn, &pos, MPI_COMM_WORLD) != eslOK) goto ERROR; + if (esl_msa_MPIPack(postmsa, wbuf, wn, &pos, MPI_COMM_WORLD) != eslOK) goto ERROR; + MPI_Send(wbuf, pos, MPI_PACKED, 0, 0, MPI_COMM_WORLD); + ESL_DPRINTF2(("worker %d: has sent HMM to master in message of %d bytes\n", cfg->my_rank, pos)); + + esl_msa_Destroy(msa); msa = NULL; + esl_msa_Destroy(postmsa); postmsa = NULL; + p7_hmm_Destroy(hmm); hmm = NULL; + } + + if (wbuf != NULL) free(wbuf); + p7_builder_Destroy(bld); + return; + + ERROR: + ESL_DPRINTF2(("worker %d: fails, is sending an error message, as follows:\n%s\n", cfg->my_rank, errmsg)); + pos = 0; + MPI_Pack(&status, 1, MPI_INT, wbuf, wn, &pos, MPI_COMM_WORLD); + MPI_Pack(errmsg, eslERRBUFSIZE, MPI_CHAR, wbuf, wn, &pos, MPI_COMM_WORLD); + MPI_Send(wbuf, pos, MPI_PACKED, 0, 0, MPI_COMM_WORLD); + if (wbuf != NULL) free(wbuf); + if (msa != NULL) esl_msa_Destroy(msa); + if (hmm != NULL) p7_hmm_Destroy(hmm); + if (bld != NULL) p7_builder_Destroy(bld); + return; +} +#endif /*HMMER_MPI*/ + + +static void +serial_loop(WORKER_INFO *info, struct cfg_s *cfg, const ESL_GETOPTS *go) +{ + P7_BUILDER *bld = NULL; + ESL_MSA *msa = NULL; + ESL_SQ *sq = NULL; + ESL_MSA *postmsa = NULL; + ESL_MSA **postmsa_ptr = (cfg->postmsafile != NULL) ? &postmsa : NULL; + P7_HMM *hmm = NULL; + char errmsg[eslERRBUFSIZE]; + int status; + + double entropy; + + cfg->nali = 0; + while ((status = esl_msafile_Read(cfg->afp, &msa)) != eslEOF) + { + if (status != eslOK) esl_msafile_ReadFailure(cfg->afp, status); + cfg->nali++; + + if ((status = set_msa_name(cfg, errmsg, msa)) != eslOK) p7_Fail("%s\n", errmsg); /* cfg->nnamed gets incremented in this call */ + + + /* bg new-HMM trarr gm om */ + if ( msa->nseq == 1 && esl_opt_IsUsed(go, "--singlemx")) { + if ((status = esl_sq_FetchFromMSA(msa, 0, &sq)) != eslOK) p7_Fail("build failed: %s", bld->errbuf); + if ((status = p7_SingleBuilder(info->bld, sq, info->bg, &hmm, NULL, NULL, NULL)) != eslOK) p7_Fail("build failed: %s", bld->errbuf); + esl_sq_Destroy(sq); + sq = NULL; + hmm->eff_nseq = 1; + } else { + if ((status = p7_Builder(info->bld, msa, info->bg, &hmm, NULL, NULL, NULL, postmsa_ptr )) != eslOK) p7_Fail("build failed: %s", bld->errbuf); + + //if not --singlemx, but the user set the popen/pextend flags, override the computed gap params now: + if (info->bld->popen != -1 || info->bld->pextend != -1) { + apply_fixed_gap_params(hmm, info->bld->popen, info->bld->pextend); + } + } + entropy = p7_MeanMatchRelativeEntropy(hmm, info->bg); + if ((status = output_result(cfg, errmsg, cfg->nali, msa, hmm, postmsa, entropy)) != eslOK) p7_Fail(errmsg); + + + + p7_hmm_Destroy(hmm); + esl_msa_Destroy(msa); + esl_msa_Destroy(postmsa); + } +} + +#ifdef HMMER_THREADS +static void +thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, struct cfg_s *cfg, const ESL_GETOPTS *go) +{ + int status = eslOK; + int sstatus = eslOK; + int processed = 0; + WORK_ITEM *item; + void *newItem; + + int next = 1; + PENDING_ITEM *top = NULL; + PENDING_ITEM *empty = NULL; + PENDING_ITEM *tmp = NULL; + + char errmsg[eslERRBUFSIZE]; + + esl_workqueue_Reset(queue); + esl_threads_WaitForStart(obj); + + status = esl_workqueue_ReaderUpdate(queue, NULL, &newItem); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + /* Main loop: */ + item = (WORK_ITEM *) newItem; + while (sstatus == eslOK) { + sstatus = esl_msafile_Read(cfg->afp, &item->msa); + if (sstatus == eslOK) { + item->nali = ++cfg->nali; + if (set_msa_name(cfg, errmsg, item->msa) != eslOK) p7_Fail("%s\n", errmsg); + } + else if (sstatus == eslEOF && processed < cfg->nali) sstatus = eslOK; + else if (sstatus != eslEOF) + esl_msafile_ReadFailure(cfg->afp, sstatus); + + if (sstatus == eslOK) { + item->force_single = esl_opt_IsUsed(go, "--singlemx"); + status = esl_workqueue_ReaderUpdate(queue, item, &newItem); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + /* process any results */ + item = (WORK_ITEM *) newItem; + if (item->processed == TRUE) { + ++processed; + + /* try to keep the input output order the same */ + if (item->nali == next) { + sstatus = output_result(cfg, errmsg, item->nali, item->msa, item->hmm, item->postmsa, item->entropy); + if (sstatus != eslOK) p7_Fail(errmsg); + + p7_hmm_Destroy(item->hmm); + esl_msa_Destroy(item->msa); + esl_msa_Destroy(item->postmsa); + + ++next; + + /* output any pending msa as long as the order + * remains the same as read in. + */ + while (top != NULL && top->nali == next) { + sstatus = output_result(cfg, errmsg, top->nali, top->msa, top->hmm, top->postmsa, top->entropy); + if (sstatus != eslOK) p7_Fail(errmsg); + + p7_hmm_Destroy(top->hmm); + esl_msa_Destroy(top->msa); + esl_msa_Destroy(top->postmsa); + + tmp = top; + top = tmp->next; + + tmp->next = empty; + empty = tmp; + + ++next; + } + } else { + /* queue up the msa so the sequence order is the same in + * the .sto and .hmm + */ + if (empty != NULL) { + tmp = empty; + empty = tmp->next; + } else { + ESL_ALLOC(tmp, sizeof(PENDING_ITEM)); + } + + tmp->nali = item->nali; + tmp->hmm = item->hmm; + tmp->msa = item->msa; + tmp->postmsa = item->postmsa; + tmp->entropy = item->entropy; + + /* add the msa to the pending list */ + if (top == NULL || tmp->nali < top->nali) { + tmp->next = top; + top = tmp; + } else { + PENDING_ITEM *ptr = top; + while (ptr->next != NULL && tmp->nali > ptr->next->nali) { + ptr = ptr->next; + } + tmp->next = ptr->next; + ptr->next = tmp; + } + } + + item->nali = 0; + item->processed = FALSE; + item->hmm = NULL; + item->msa = NULL; + item->postmsa = NULL; + item->entropy = 0.0; + } + } + } + + if (top != NULL) esl_fatal("Top is not empty\n"); + + while (empty != NULL) { + tmp = empty; + empty = tmp->next; + free(tmp); + } + + status = esl_workqueue_ReaderUpdate(queue, item, NULL); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + if (sstatus == eslEOF) + { + /* wait for all the threads to complete */ + esl_threads_WaitForFinish(obj); + esl_workqueue_Complete(queue); + } + return; + + ERROR: + p7_Fail("thread_loop failed: memory allocation problem"); +} + +static void +pipeline_thread(void *arg) +{ + int workeridx; + int status; + + WORK_ITEM *item; + void *newItem; + + WORKER_INFO *info; + ESL_THREADS *obj; + ESL_SQ *sq = NULL; + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newItem); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + /* loop until all blocks have been processed */ + item = (WORK_ITEM *) newItem; + while (item->msa != NULL) + { + + if ( item->msa->nseq == 1 && item->force_single) { + status = esl_sq_FetchFromMSA(item->msa, 0, &sq); + if (status != eslOK) p7_Fail("build failed: %s", info->bld->errbuf); + + status = p7_SingleBuilder(info->bld, sq, info->bg, &item->hmm, NULL, NULL, NULL); + if (status != eslOK) p7_Fail("build failed: %s", info->bld->errbuf); + + esl_sq_Destroy(sq); + sq = NULL; + item->hmm->eff_nseq = 1; + } else { + status = p7_Builder(info->bld, item->msa, info->bg, &item->hmm, NULL, NULL, NULL, &item->postmsa); + if (status != eslOK) p7_Fail("build failed: %s", info->bld->errbuf); + + //if not --singlemx, but the user set the popen/pextend flags, override the computed gap params now: + if (info->bld->popen != -1 || info->bld->pextend != -1) { + apply_fixed_gap_params(item->hmm, info->bld->popen, info->bld->pextend); + } + } + + item->entropy = p7_MeanMatchRelativeEntropy(item->hmm, info->bg); + item->processed = TRUE; + + status = esl_workqueue_WorkerUpdate(info->queue, item, &newItem); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + item = (WORK_ITEM *) newItem; + } + + status = esl_workqueue_WorkerUpdate(info->queue, item, NULL); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + esl_threads_Finished(obj, workeridx); + return; +} +#endif /* HMMER_THREADS */ + + + + +static int +output_result(const struct cfg_s *cfg, char *errbuf, int msaidx, ESL_MSA *msa, P7_HMM *hmm, ESL_MSA *postmsa, double entropy) +{ + int status; + + /* Special case: output the tabular results header. + * Arranged this way to keep the two fprintf()'s close together in the code, + * so we can keep the data and labels properly sync'ed. + */ + if (msa == NULL) + { + if (cfg->abc->type == eslAMINO) { + if (fprintf(cfg->ofp, "#%4s %-20s %5s %5s %5s %8s %6s %s\n", " idx", "name", "nseq", "alen", "mlen", "eff_nseq", "re/pos", "description") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed"); + if (fprintf(cfg->ofp, "#%4s %-20s %5s %5s %5s %8s %6s %s\n", "----", "--------------------", "-----", "-----", "-----", "--------", "------", "-----------") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed"); + } else { + if (fprintf(cfg->ofp, "#%4s %-20s %5s %5s %5s %5s %8s %6s %s\n", " idx", "name", "nseq", "alen", "mlen", "W", "eff_nseq", "re/pos", "description") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed"); + if (fprintf(cfg->ofp, "#%4s %-20s %5s %5s %5s %5s %8s %6s %s\n", "----", "--------------------", "-----", "-----", "-----", "-----", "--------", "------", "-----------") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed"); + } + return eslOK; + } +// if ((status = p7_hmm_Validate(hmm, errbuf, 0.0001)) != eslOK) return status; + if ((status = p7_hmmfile_WriteASCII(cfg->hmmfp, -1, hmm)) != eslOK) ESL_FAIL(status, errbuf, "HMM save failed"); + + /* # name nseq alen M max_length eff_nseq re/pos description */ + if (cfg->abc->type == eslAMINO) { + if (fprintf(cfg->ofp, "%-5d %-20s %5d %5" PRId64 " %5d %8.2f %6.3f %s\n", + msaidx, + (msa->name != NULL) ? msa->name : "", + msa->nseq, + msa->alen, + hmm->M, + hmm->eff_nseq, + entropy, + (msa->desc != NULL) ? msa->desc : "") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed"); + } else { + if (fprintf(cfg->ofp, "%-5d %-20s %5d %5" PRId64 " %5d %5d %8.2f %6.3f %s\n", + msaidx, + (msa->name != NULL) ? msa->name : "", + msa->nseq, + msa->alen, + hmm->M, + hmm->max_length, + hmm->eff_nseq, + entropy, + (msa->desc != NULL) ? msa->desc : "") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed"); + } + + if (cfg->postmsafp != NULL && postmsa != NULL) { + esl_msafile_Write(cfg->postmsafp, postmsa, eslMSAFILE_STOCKHOLM); + } + + return eslOK; +} + + + +/* set_msa_name() + * Make sure the alignment has a name; this name will + * then be transferred to the model. + * + * We can only do this for a single alignment in a file. For multi-MSA + * files, each MSA is required to have a name already. + * + * Priority is: + * 1. Use -n if set, overriding any name the alignment might already have. + * 2. Use alignment's existing name, if non-NULL. + * 3. Make a name, from alignment file name without path and without filename extension + * (e.g. "/usr/foo/globins.slx" gets named "globins") + * If none of these succeeds, return . + * + * If a multiple MSA database (e.g. Stockholm/Pfam), and we encounter + * an MSA that doesn't already have a name, return if nali > 1. + * (We don't know we're in a multiple MSA database until we're on the second + * alignment.) + * + * If we're in MPI mode, we assume we're in a multiple MSA database, + * even on the first alignment. + * + * Because we can't tell whether we've got more than one + * alignment 'til we're on the second one, these fatal errors + * only happen after the first HMM has already been built. + * Oh well. + */ +static int +set_msa_name(struct cfg_s *cfg, char *errbuf, ESL_MSA *msa) +{ + char *name = NULL; + int status; + + if (cfg->do_mpi == FALSE && cfg->nali == 1) /* first (only?) HMM in file: */ + { + if (cfg->hmmName != NULL) + { + if ((status = esl_msa_SetName(msa, cfg->hmmName, -1)) != eslOK) return status; + } + else if (msa->name != NULL) + { + cfg->nnamed++; + } + else if (cfg->afp->bf->filename) + { + if ((status = esl_FileTail(cfg->afp->bf->filename, TRUE, &name)) != eslOK) return status; /* TRUE=nosuffix */ + if ((status = esl_msa_SetName(msa, name, -1)) != eslOK) return status; + free(name); + } + else ESL_FAIL(eslEINVAL, errbuf, "Failed to set model name: msa has no name, no msa filename, and no -n"); + } + else + { + if (cfg->hmmName != NULL) ESL_FAIL(eslEINVAL, errbuf, "Oops. Wait. You can't use -n with an alignment database."); + else if (msa->name != NULL) cfg->nnamed++; + else ESL_FAIL(eslEINVAL, errbuf, "Oops. Wait. I need name annotation on each alignment in a multi MSA file; failed on #%d", cfg->nali+1); + + /* special kind of failure: the *first* alignment didn't have a name, and we used the filename to + * construct one; now that we see a second alignment, we realize this was a boo-boo*/ + if (cfg->nnamed != cfg->nali) ESL_FAIL(eslEINVAL, errbuf, "Oops. Wait. I need name annotation on each alignment in a multi MSA file; first MSA didn't have one"); + } + return eslOK; +} + + diff --git a/bioinformaticsProject/hmmer/src/hmmc2.c b/bioinformaticsProject/hmmer/src/hmmc2.c new file mode 100644 index 0000000..75d88e3 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmc2.c @@ -0,0 +1,575 @@ +/* daemon client. + */ +#include "p7_config.h" + +#ifdef HMMER_THREADS + +#include +#include +#include +#include +#include +#include +#include + +#include +#ifdef HAVE_NETINET_IN_H +#include /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */ +#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */ +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "hmmpgmd.h" + +#define SERVER_PORT 51371 +#define MAX_READ_LEN 4096 + +#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc" +#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc" +#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc" +#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" + +static ESL_OPTIONS searchOpts[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + /* Control of output */ + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 }, + { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 }, + { "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 }, + { "--textw", eslARG_INT, "120", NULL, "n>=120",NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 }, + /* Control of scoring system */ + { "--popen", eslARG_REAL, "0.02", NULL, "0<=x<0.5",NULL, NULL, NULL, "gap open probability", 3 }, + { "--pextend", eslARG_REAL, "0.4", NULL, "0<=x<1", NULL, NULL, NULL, "gap extend probability", 3 }, + { "--mx", eslARG_STRING, "BLOSUM62", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix choice (of some built-in matrices)", 3 }, + { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file ", 3 }, + /* Control of reporting thresholds */ + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report sequences <= this E-value threshold in output", 4 }, + { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report sequences >= this score threshold in output", 4 }, + { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "report domains <= this E-value threshold in output", 4 }, + { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "report domains >= this score cutoff in output", 4 }, + /* Control of inclusion (significance) thresholds */ + { "--incE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCOPTS, "consider sequences <= this E-value threshold as significant", 5 }, + { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider sequences >= this score threshold as significant", 5 }, + { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "consider domains <= this E-value threshold as significant", 5 }, + { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "consider domains >= this score threshold as significant", 5 }, + /* Model-specific thresholding for both reporting and inclusion */ + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 6 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 6 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 6 }, + /* Control of acceleration pipeline */ + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "Stage 1 (MSV) threshold: promote hits w/ P <= F1", 7 }, + { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 }, + { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 }, + /* Control of E-value calibration */ + { "--EmL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for MSV Gumbel mu fit", 11 }, + { "--EmN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for MSV Gumbel mu fit", 11 }, + { "--EvL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Viterbi Gumbel mu fit", 11 }, + { "--EvN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Viterbi Gumbel mu fit", 11 }, + { "--EfL", eslARG_INT, "100", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Forward exp tail tau fit", 11 }, + { "--EfN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Forward exp tail tau fit", 11 }, + { "--Eft", eslARG_REAL, "0.04", NULL,"0=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 12 }, + { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 }, + { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 12 }, + { "--hmmdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--seqdb", "hmm database to search", 12 }, + { "--seqdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--hmmdb", "protein database to search", 12 }, + { "--seqdb_ranges",eslARG_STRING, NULL, NULL, NULL, NULL, "--seqdb", NULL, "range(s) of sequences within --seqdb that will be searched", 12 }, + + /* name type default env range toggles reqs incomp help docgroup*/ + { "-c", eslARG_INT, "1", NULL, NULL, NULL, NULL, "--seqdb", "use alt genetic code of NCBI transl table ", 15 }, + { "-l", eslARG_INT, "20", NULL, NULL, NULL, NULL, "--seqdb", "minimum ORF length", 15 }, + { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-M,--seqdb", "ORFs must initiate with AUG only", 15 }, + { "-M", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-m,--seqdb", "ORFs must start with allowed initiation codon", 15 }, + { "--informat", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, "--seqdb", "specify that input file is in format ", 15 }, + { "--watson", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqdb", "only translate top strand", 15 }, + { "--crick", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqdb", "only translate bottom strand", 15 }, + + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +//static char banner_seq[] = "search a protein sequence against a sequence database"; +//static char banner_hmm[] = "search profile(s) against a sequence database"; + +static void +sig_int(int signo) +{ + fprintf(stderr, "Exiting due to ctrl-c\n"); + exit(1); +} + +#if 0 +static int +output_header(FILE *ofp, const ESL_GETOPTS *sopt, char *seqfile, char *banner) +{ + int status; + + p7_banner(ofp, "hmmpgmd client", banner); + + if (fprintf(ofp, "# target sequence database: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(sopt, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(sopt, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--popen") && fprintf(ofp, "# gap open probability: %f\n", esl_opt_GetReal (sopt, "--popen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--pextend") && fprintf(ofp, "# gap extend probability: %f\n", esl_opt_GetReal (sopt, "--pextend")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--mx") && fprintf(ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString (sopt, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--mxfile") && fprintf(ofp, "# subst score matrix (file): %s\n", esl_opt_GetString (sopt, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "-E") && fprintf(ofp, "# sequence reporting threshold: E-value <= %g\n", esl_opt_GetReal (sopt, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "-T") && fprintf(ofp, "# sequence reporting threshold: score >= %g\n", esl_opt_GetReal (sopt, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--domE") && fprintf(ofp, "# domain reporting threshold: E-value <= %g\n", esl_opt_GetReal (sopt, "--domE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--domT") && fprintf(ofp, "# domain reporting threshold: score >= %g\n", esl_opt_GetReal (sopt, "--domT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--incE") && fprintf(ofp, "# sequence inclusion threshold: E-value <= %g\n", esl_opt_GetReal (sopt, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--incT") && fprintf(ofp, "# sequence inclusion threshold: score >= %g\n", esl_opt_GetReal (sopt, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--incdomE") && fprintf(ofp, "# domain inclusion threshold: E-value <= %g\n", esl_opt_GetReal (sopt, "--incdomE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--incdomT") && fprintf(ofp, "# domain inclusion threshold: score >= %g\n", esl_opt_GetReal (sopt, "--incdomT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--F1") && fprintf(ofp, "# MSV filter P threshold: <= %g\n", esl_opt_GetReal(sopt, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(sopt, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(sopt, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--EmL") && fprintf(ofp, "# seq length, MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(sopt, "--EmL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--EmN") && fprintf(ofp, "# seq number, MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(sopt, "--EmN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--EvL") && fprintf(ofp, "# seq length, Vit Gumbel mu fit: %d\n", esl_opt_GetInteger(sopt, "--EvL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--EvN") && fprintf(ofp, "# seq number, Vit Gumbel mu fit: %d\n", esl_opt_GetInteger(sopt, "--EvN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--EfL") && fprintf(ofp, "# seq length, Fwd exp tau fit: %d\n", esl_opt_GetInteger(sopt, "--EfL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--EfN") && fprintf(ofp, "# seq number, Fwd exp tau fit: %d\n", esl_opt_GetInteger(sopt, "--EfN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--Eft") && fprintf(ofp, "# tail mass for Fwd exp tau fit: %f\n", esl_opt_GetReal (sopt, "--Eft")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "-Z") && fprintf(ofp, "# sequence search space set to: %.0f\n", esl_opt_GetReal (sopt, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--domZ") && fprintf(ofp, "# domain search space set to: %.0f\n", esl_opt_GetReal (sopt, "--domZ")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(sopt, "--seed")) { + if (esl_opt_GetInteger(sopt, "--seed") == 0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if ( fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(sopt, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} +#endif /*0; SRE removed to silence compiler warning, looks like MSF wasn't using it*/ + +static int +usage(char *pgm) +{ + if (fprintf(stderr, "Usage: %s [-i addr] [-p port] [-A] [-S]\n", pgm) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(stderr, " -S : print sequence scores\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(stderr, " -A : print sequence alignments\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(stderr, " -i addr : ip address running daemon (default: 127.0.0.1)\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(stderr, " -p port : port daemon listens to clients on (default: 51371)\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + exit(1); +} + +int main(int argc, char *argv[]) +{ + int i; + uint64_t n; + int eod; + int size; + + char *seq; + char opts[MAX_READ_LEN]; + int seqlen; + + int ali; + int scores; + + char buffer[MAX_READ_LEN]; + + int status = eslOK; + + ESL_GETOPTS *go = NULL; + ESL_STOPWATCH *w = NULL; + P7_PIPELINE *pli = NULL; + P7_TOPHITS *th = NULL; + + HMMD_SEARCH_STATS *stats; + HMMD_SEARCH_STATUS sstatus; + uint8_t *buf; + uint32_t buf_offset, hits_start; + char *ptr; + int sock; + char serv_ip[64]; + unsigned short serv_port; + + struct sockaddr_in serv_addr; + + buf = NULL; + buf_offset = 0; + + /* set up defaults */ + strcpy(serv_ip, "127.0.0.1"); + serv_port = SERVER_PORT; + scores = 0; + ali = 0; + + i = 1; + while (i < argc) { + if (argv[i][0] != '-') usage(argv[0]); + if (argv[i][1] == 0 || argv[i][2] != 0) usage(argv[0]); + switch (argv[i][1]) { + case 'p': + if (i + 1 >= argc) { + printf("Missing port number\n"); + usage(argv[0]); + } + serv_port = atoi(argv[i+1]); + ++i; + break; + case 'i': + if (i + 1 >= argc) { + printf("Missing ip address\n"); + usage(argv[0]); + } + strcpy(serv_ip, argv[i+1]); + ++i; + break; + case 'A': + ali = 1; + scores = 1; + break; + case 'S': + scores = 1; + break; + default: + usage(argv[0]); + } + ++i; + } + + seqlen = MAX_READ_LEN; + if ((seq = malloc(seqlen)) == NULL) { + fprintf(stderr, "[%s:%d] malloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + + /* set up a signal handler for broken pipes */ + if (signal(SIGINT, sig_int) == SIG_ERR) { + fprintf(stderr, "[%s:%d] signal error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + + /* Create a reliable, stream socket using TCP */ + if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + fprintf(stderr, "[%s:%d] socket error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + + /* Construct the server address structure */ + memset(&serv_addr, 0, sizeof(serv_addr)); + serv_addr.sin_family = AF_INET; + serv_addr.sin_addr.s_addr = inet_addr(serv_ip); + serv_addr.sin_port = htons(serv_port); + if ((inet_pton(AF_INET, serv_ip, &serv_addr.sin_addr)) < 0) { + fprintf(stderr, "[%s:%d] inet_pton error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + + /* Establish the connection to the echo server */ + if (connect(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) { + fprintf(stderr, "[%s:%d] connect error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + + w = esl_stopwatch_Create(); + go = esl_getopts_Create(searchOpts); + + seq[0] = 0; + while (strncmp(seq, "//", 2) != 0) { + int rem; + int total = 0; + + eod = 0; + seq[0] = 0; + rem = seqlen - 1; + fprintf(stdout, "\n\nEnter next sequence:\n"); + while (!eod) { + if (fgets(buffer, MAX_READ_LEN, stdin) != NULL) { + int n = strlen(buffer); + if (n >= rem) { + if ((seq = realloc(seq, seqlen * 2)) == NULL) { + fprintf(stderr, "[%s:%d] realloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + rem += seqlen; + seqlen *= 2; + } + strcat(seq, buffer); + rem -= n; + + eod = (strncmp(buffer, "//", 2) == 0); + } else { + eod = 1; + } + } + + /* skip all leading white spaces */ + ptr = seq; + while (*ptr && isspace(*ptr)) ++ptr; + + /* process server commands */ + if (*ptr == '!') { + + /* Send the string to the server */ + n = strlen(seq); + printf ("Sending data %" PRIu64 ":\n", n); + if (writen(sock, seq, n) != n) { + fprintf(stderr, "[%s:%d] write (size %" PRIu64 ") error %d - %s\n", __FILE__, __LINE__, n, errno, strerror(errno)); + exit(1); + } + + n = sizeof(sstatus); + total += n; + if ((size = readn(sock, &sstatus, n)) == -1) { + printf("MY ERRNO IS %d\n", errno); + if(errno == ECONNRESET || errno == ESRCH || errno == 0) { + // when daemon is shut down normally, the readn() is expected to fail - but w/ various errors, depending on OS, etc. + // our design for this should be rethought - I added the ESRCH test to hack around a unit test failure. [SRE 7/25/20] + fprintf(stderr, "Daemon exited, shutting down\n"); + exit(0); + } + fprintf(stderr, "[%s:%d] read error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + + if (sstatus.status != eslOK) { + char *ebuf; + n = sstatus.msg_size; + total += n; + ebuf = malloc(n); + if ((size = readn(sock, ebuf, n)) == -1) { + fprintf(stderr, "[%s:%d] read error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + fprintf(stderr, "ERROR (%d): %s\n", sstatus.status, ebuf); + free(ebuf); + } + + continue; + } + + /* process search specific options */ + if (*ptr == '@') { + char t; + char *s = ++ptr; + + /* skip to the end of the line */ + while (*ptr && (*ptr != '\n' && *ptr != '\r')) ++ptr; + t = *ptr; + *ptr = 0; + + /* create a commandline string with dummy program name for + * the esl_opt_ProcessSpoof() function to parse. + */ + snprintf(opts, sizeof(opts), "X %s\n", s); + + if (esl_getopts_Reuse(go) != eslOK) p7_Die("Internal failure reusing options object"); + if (esl_opt_ProcessSpoof(go, opts) != eslOK) { + printf("Failed to parse options string: %s\n", go->errbuf); + continue; + } + if (esl_opt_VerifyConfig(go) != eslOK) { + printf("Failed to parse options string: %s\n", go->errbuf); + continue; + } + + /* the options string can handle an optional database */ + if (esl_opt_ArgNumber(go) != 0) { + printf("Incorrect number of command line arguments."); + continue; + } + + /* skip remaining white spaces */ + *ptr = t; + while (*ptr && isspace(*ptr)) ++ptr; + } + + + if (*ptr && strncmp(ptr, "//", 2) != 0) { + P7_HMM *hmm = NULL; /* query HMM */ + // P7_HMMFILE *hfp = NULL; /* open input HMM file */ + ESL_SQ *sq = NULL; /* one target sequence (digital) */ + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + + status = eslOK; + abc = esl_alphabet_Create(eslAMINO); + + if (status == eslOK) { + total = 0; + + /* Send the string to the server */ + n = strlen(seq); + printf ("Sending data %" PRIu64 ":\n", n); + if (writen(sock, seq, n) != n) { + fprintf(stderr, "[%s:%d] write (size %" PRIu64 ") error %d - %s\n", __FILE__, __LINE__, n, errno, strerror(errno)); + exit(1); + } + + // Get the status structure back from the server + buf = malloc(HMMD_SEARCH_STATUS_SERIAL_SIZE); + buf_offset = 0; + n = HMMD_SEARCH_STATUS_SERIAL_SIZE; + if(buf == NULL){ + printf("Unable to allocate memory for search status structure\n"); + exit(1); + } + + if ((size = readn(sock, buf, n)) == -1) { + fprintf(stderr, "[%s:%d] read error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + + if(hmmd_search_status_Deserialize(buf, &buf_offset, &sstatus) != eslOK){ + printf("Unable to deserialize search status object \n"); + exit(1); + } + + if (sstatus.status != eslOK) { + char *ebuf; + n = sstatus.msg_size; + total += n; + ebuf = malloc(n); + if ((size = readn(sock, ebuf, n)) == -1) { + fprintf(stderr, "[%s:%d] read error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + fprintf(stderr, "ERROR (%d): %s\n", sstatus.status, ebuf); + free(ebuf); + goto COMPLETE; + } + + free(buf); // clear this out + buf_offset = 0; // reset to beginning for next serialized object + n = sstatus.msg_size; + + if ((buf = malloc(n)) == NULL) { + fprintf(stderr, "[%s:%d] malloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + // Grab the serialized search results + if ((size = readn(sock, buf, n)) == -1) { + fprintf(stderr, "[%s:%d] read error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + + if ((stats = malloc(sizeof(HMMD_SEARCH_STATS))) == NULL) { + fprintf(stderr, "[%s:%d] malloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + stats->hit_offsets = NULL; // force allocation of memory for this in _Deserialize + if(p7_hmmd_search_stats_Deserialize(buf, &buf_offset, stats) != eslOK){ + printf("Unable to deserialize search stats object \n"); + exit(1); + } + + // Create the structures we'll deserialize the hits into + pli = p7_pipeline_Create(go, 100, 100, FALSE, (esl_opt_IsUsed(go, "--seqdb")) ? p7_SEARCH_SEQS : p7_SCAN_MODELS); + + /* copy the search stats */ + w->elapsed = stats->elapsed; + w->user = stats->user; + w->sys = stats->sys; + + pli->nmodels = stats->nmodels; + pli->nseqs = stats->nseqs; + pli->n_past_msv = stats->n_past_msv; + pli->n_past_bias = stats->n_past_bias; + pli->n_past_vit = stats->n_past_vit; + pli->n_past_fwd = stats->n_past_fwd; + + pli->Z = stats->Z; + pli->domZ = stats->domZ; + pli->Z_setby = stats->Z_setby; + pli->domZ_setby = stats->domZ_setby; + + th = p7_tophits_Create(); + + free(th->unsrt); + free(th->hit); + + th->N = stats->nhits; + if ((th->unsrt = malloc(stats-> nhits *sizeof(P7_HIT))) == NULL) { + fprintf(stderr, "[%s:%d] malloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + th->nreported = stats->nreported; + th->nincluded = stats->nincluded; + th->is_sorted_by_seqidx = FALSE; + th->is_sorted_by_sortkey = TRUE; + + if ((th->hit = malloc(sizeof(void *) * stats->nhits)) == NULL) { + fprintf(stderr, "[%s:%d] malloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + exit(1); + } + hits_start = buf_offset; + // deserialize the hits + for (i = 0; i < stats->nhits; ++i) { + // set all internal pointers of the hit to NULL before deserializing into it + th->unsrt[i].name = NULL; + th->unsrt[i].acc = NULL; + th->unsrt[i].desc = NULL; + th->unsrt[i].dcl = NULL; + if((buf_offset -hits_start) != stats->hit_offsets[i]){ + printf("Hit offset %d did not match expected. Found %d, expected %" PRIu64 "\n", i, (buf_offset-hits_start), stats->hit_offsets[i]); + } + if(p7_hit_Deserialize(buf, &buf_offset, &(th->unsrt[i])) != eslOK){ + printf("Unable to deserialize hit %d\n", i); + exit(0); + } + th->hit[i] = &(th->unsrt[i]); + } + + /* adjust the reported and included hits */ + //th->is_sorted = FALSE; + //p7_tophits_Sort(th); + + /* Print the results. */ + if (scores) { p7_tophits_Targets(stdout, th, pli, 120); fprintf(stdout, "\n\n"); } + if (ali) { p7_tophits_Domains(stdout, th, pli, 120); fprintf(stdout, "\n\n"); } + p7_pli_Statistics(stdout, pli, w); + + p7_pipeline_Destroy(pli); + p7_tophits_Destroy(th); + free(buf); + + fprintf(stdout, "//\n"); fflush(stdout); + + fprintf(stdout, "Total bytes received %" PRId64 "\n", sstatus.msg_size); + } else { + printf("Error parsing input query\n"); + } + + COMPLETE: + if (abc) esl_alphabet_Destroy(abc); + if (hmm) p7_hmm_Destroy(hmm); + if (sq) esl_sq_Destroy(sq); + + } + } + + free(seq); + esl_getopts_Destroy(go); + esl_stopwatch_Destroy(w); + + close(sock); + return 0; +} + +#endif /*HMMER_THREADS*/ + + + + diff --git a/bioinformaticsProject/hmmer/src/hmmconvert.c b/bioinformaticsProject/hmmer/src/hmmconvert.c new file mode 100644 index 0000000..bb238a2 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmconvert.c @@ -0,0 +1,77 @@ +/* hmmconvert: converting profile HMM files to HMMER3 HMM format. + * + * SRE, Thu Oct 16 08:57:43 2008 [janelia] [Enigma MCMXC a.D.] + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-a", eslARG_NONE,"default",NULL, NULL, "-a,-b,-2", NULL, NULL, "ascii: output models in HMMER3 ASCII format", 0 }, + { "-b", eslARG_NONE, FALSE, NULL, NULL, "-a,-b,-2", NULL, NULL, "binary: output models in HMMER3 binary format", 0 }, + { "-2", eslARG_NONE, FALSE, NULL, NULL, "-a,-b,-2", NULL, NULL, "HMMER2: output backward compatible HMMER2 ASCII format (ls mode)", 0 }, + { "--outfmt", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, "-2", "choose output legacy 3.x file formats by name, such as '3/a'", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "convert profile file to a HMMER format"; + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_ALPHABET *abc = NULL; + char *hmmfile = esl_opt_GetArg(go, 1); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + FILE *ofp = stdout; + char *outfmt = esl_opt_GetString(go, "--outfmt"); + int fmtcode = -1; /* -1 = write the current default format */ + int status; + char errbuf[eslERRBUFSIZE]; + + if (outfmt != NULL) { + if (strcmp(outfmt, "3/a") == 0) fmtcode = p7_HMMFILE_3a; + else if (strcmp(outfmt, "3/b") == 0) fmtcode = p7_HMMFILE_3b; + else if (strcmp(outfmt, "3/c") == 0) fmtcode = p7_HMMFILE_3c; + else if (strcmp(outfmt, "3/d") == 0) fmtcode = p7_HMMFILE_3d; + else if (strcmp(outfmt, "3/e") == 0) fmtcode = p7_HMMFILE_3e; + else if (strcmp(outfmt, "3/f") == 0) fmtcode = p7_HMMFILE_3f; + else p7_Fail("No such 3.x output format code %s.\n", outfmt); + } + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) == eslOK) + { + if (esl_opt_GetBoolean(go, "-a") == TRUE) p7_hmmfile_WriteASCII (ofp, fmtcode, hmm); + else if (esl_opt_GetBoolean(go, "-b") == TRUE) p7_hmmfile_WriteBinary(ofp, fmtcode, hmm); + else if (esl_opt_GetBoolean(go, "-2") == TRUE) p7_h2io_WriteASCII (ofp, hmm); + + p7_hmm_Destroy(hmm); + } + if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", hmmfile); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", hmmfile); + else if (status != eslEOF) p7_Fail("Unexpected error in reading HMMs from %s", hmmfile); + + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} + + diff --git a/bioinformaticsProject/hmmer/src/hmmd_search_status.c b/bioinformaticsProject/hmmer/src/hmmd_search_status.c new file mode 100644 index 0000000..1879542 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmd_search_status.c @@ -0,0 +1,427 @@ +/* Functions to manipulate HMMD_SEARCH_STATUS objects. + * Contents: 1) Serialization and Deserialization routines + * 2) Debugging/Utility Functions + * 3) Unit Tests + * 4) Test Driver + * NPC 2/20/19 [Sparta] + */ +#include "p7_config.h" + +#include +#include +#include +#include +#include + +#include "easel.h" + +#include "hmmer.h" +#include "hmmpgmd.h" + + +/***************************************************************** + * 1. Functions to manipulate HMMD_SEARCH_STATUS objects + *****************************************************************/ + +/* Function: hmmd_search_status_Serialize + * Synopsis: Serializes a HMMD_SEARCH_STATUS object into a stream of bytes + *. that can be reliably transmitted over internet sockets + * + * Purpose: Converts an architecture-dependent HMMD_SEARCH_STATUS object into a contiguous stream + * of bytes with each field of the data structure in network byte order for transmission + * over sockets. The serialized byte stream may be part of a larger allocated buffer. + * If the provided buffer is NULL, allocates a new buffer large enough for the serialized object + * If the provided buffer is not large enough to hold the serialized object and its existing data, re-allocates + * a larger buffer + * + * Inputs: obj: A pointer to the HMMD_SEARCH_STATUS object to be serialized + * buf: Handle to the buffer that the object should be serialized into. If *buf is NULL, + * a new buffer will be allocated. buf == NULL is not allowed. + * n: Offset (in bytes) from the start of the buffer to where the serialized object should start. + * nalloc: size (in bytes) of the buffer passed in buf + * + *Returns: On success: returns eslOK, sets *buf to the base of the buffer containing the object + * if allocation or re-allocation was requried, sets *n to the offset from the start of the buffer + * to the first position after the serialized object and sets *nalloc to the new size of the buffer + * if allocation or re-allocation was required. + * + * Throws: Returns eslEMEM if unable to allocate or re-allocate memory. Returns eslEINVAL if obj == NULL, n == NULL, buf == NULL, + *. or if *buf = NULL and either *n != 0 or *nalloc != 0 + */ + +extern int hmmd_search_status_Serialize(const HMMD_SEARCH_STATUS *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc){ + int status; // error variable used by ESL_ALLOC + uint8_t *ptr; // current position within the buffer + uint32_t network_32bit; // hold 32-bit fields after conversion to network order + uint64_t network_64bit; // hold 64-bit fields after conversion to network order + + // check to make sure we were passed a valid pointer + if(obj == NULL || buf == NULL || n == NULL || ((*buf == NULL) && ((*n != 0) || (*nalloc != 0)))) { + // no object to serialize, nowhere to put a buffer pointer, or NULL buffer and non-zero offset or buffer size + return(eslEINVAL); + } + + int ser_size = HMMD_SEARCH_STATUS_SERIAL_SIZE; // No variable-length fields to worry about + if(*buf == NULL){ // have no buffer, so allocate one + ESL_ALLOC(*buf, ser_size); + *nalloc = ser_size; + } + + if((*n + ser_size) > *nalloc){ //have a buffer, but it's not big enough + ESL_REALLOC(*buf, (*n + ser_size)); + *nalloc = *n + ser_size; + } + + ptr = *buf + *n; // pointer to start of region we'll serialize to + + // Field 1: status field + network_32bit = esl_hton32(obj->status); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 2: msg_size + network_64bit = esl_hton64(obj->msg_size); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + *n = ptr - *buf; // update n to point to end of serialized region + return eslOK; + +ERROR: + return eslEMEM; +} + +/* Function: hmmd_search_status_Deserialize + * Synopsis: Derializes a HMMD_SEARCH_STATUS object from a stream of bytes in network order into + * a valid data structure + * + * Purpose: Deserializes a serialized HMMD_SEARCH_STATUS object from + *. buf starting at position *n. + * + * Inputs: buf: the buffer that the object should be de-serialized from + * pos: a pointer to the offset from the start of buf to the beginning of the object + * ret_obj: a HMMD_SEARCH_STATUS structure to deserialize the object into. May not be NULL. + * + * Returns: On success: returns eslOK, deserializes the HMMD_SEARCH_STATUS object into ret_object, and updates + *. n to point to the position after the end of the HMMD_SEARCH_STATUS object. + * + * Throws: Returns eslEINVAL if ret_obj == NULL, buf == NULL, or n == NULL. + */ +extern int hmmd_search_status_Deserialize(const uint8_t *buf, uint32_t *n, HMMD_SEARCH_STATUS *ret_obj){ + uint8_t *ptr; + uint64_t network_64bit; // holds 64-bit values in network order + uint32_t network_32bit; // holds 64-bit values in network order + + if(ret_obj == NULL || buf == NULL || n == NULL){ + return eslEINVAL; + } + + ptr = (uint8_t *) buf + *n; + + //First field: status + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->status = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 2: msg_size + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->msg_size = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + *n = ptr - buf; + return eslOK; +} + +/***************************************************************** + * 2. Debugging Functions + *****************************************************************/ + +/* Function: hmmd_search_status_TestSample + * Synopsis: Creates a HMMD_SEARCH_STATUS object that contains random data. + * + * Purpose: Creates a HMMD_SEARCH_STATUS object that contains random data. This data will be syntactically correct, + * but is not intended to be in any way a "reasonable" hit. For example, the number of P7_DOMAIN + * objects in the HMMD_SEARCH_STATUS objects will match the value of the object's ndom field, but the vales of the + * object's score, pre_score, and sum_score fields may not be consistent with each other. + * + * Inputs: rng: the random-number generator to use in creating this object. + * ret_obj: pointer that is used to return the created object + * + * Returns: eslOK, and the created object in ret_obj + * + * Throws: Returns eslEMEM if unable to allocate or re-allocate memory. Returns eslEINVAL if ret_obj == NULL + */ +extern int hmmd_search_status_TestSample(ESL_RAND64 *rng, HMMD_SEARCH_STATUS **ret_obj){ + int status; + + if(ret_obj == NULL){ + return eslEINVAL; + } + + if(*ret_obj == NULL){ + ESL_ALLOC(*ret_obj, sizeof(HMMD_SEARCH_STATUS)); + } + + (*ret_obj)->status = (uint32_t) esl_rand64(rng); + (*ret_obj)->msg_size = esl_rand64(rng); + return eslOK; + +ERROR: + return eslEMEM; +} + +/* Function: hmmd_search_status_Compare + * Synopsis: Compares two HMMD_SEARCH_STATUS objects for equality + * + * Purpose: Compares two HMMD_SEARCH_STATUS objects for equality + * + * Inputs: first: The first object to be compared + * second: The second object to be compared + + * + * Returns: eslOK if the HMMD_SEARCH_STATUS inputs match, eslFAIL otherwise + * + * Throws: Nothing + */ +extern int hmmd_search_status_Compare(HMMD_SEARCH_STATUS *first, HMMD_SEARCH_STATUS *second){ + + if((first->status == second->status) && (first->msg_size == second->msg_size)){ + return eslOK; + } + else{ + return eslFAIL; + } +} + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7HMMD_SEARCH_STATUS_TESTDRIVE + +// Test that the _Serialize() function generates the correct errors when passed invalid arguments +static void utest_Serialize_error_conditions(){ + int status; // Easel error code variable + HMMD_SEARCH_STATUS *foo=NULL; + uint8_t **buf; + uint32_t n; + uint32_t nalloc; + ESL_RAND64 *rng; + + char msg[] = "utest_Serialize_error_conditions failed"; + rng = esl_rand64_Create(0); + n = 0; + nalloc = 0; + hmmd_search_status_TestSample(rng, &foo); + // Test 1: _Serialize returns error if passed NULL buffer + buf = NULL; + + if(hmmd_search_status_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + // printf("null buffer check passed\n"); + } + + ESL_ALLOC(buf, sizeof(uint8_t *)); // set buf to valid value + *buf = NULL; + + // Test 2: error on NULL n ptr + if(hmmd_search_status_Serialize(foo, buf, NULL, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("invalid n check passed\n"); + } + + // Test 3: error on NULL object ptr + if(hmmd_search_status_Serialize(NULL, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("invalid object check passed\n"); + } + + // Test 4: n != 0 and *buf == NULL + n = 3; + if(hmmd_search_status_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + // printf("Non-zero n with NULL buffer check passed\n"); + } + + // Test 5: Nalloc != 0 and *buf == NULL + n = 0; + nalloc = 10; + if(hmmd_search_status_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + // printf("Non-zero nalloc with NULL buffer check passed\n"); + } + + if(buf !=NULL && *buf != NULL){ + free(*buf); + } + if(buf != NULL){ + free(buf); + } + + free(foo); + esl_rand64_Destroy(rng); + return; + + ERROR: + if(foo != NULL){ + free(foo); + } + + if(buf !=NULL && *buf != NULL){ + free(*buf); + } + if(buf != NULL){ + free(buf); + } + esl_fatal(msg); +} + +static void utest_Deserialize_error_conditions(){ + HMMD_SEARCH_STATUS *sampled = NULL; // sampled alidisplay that we'll serialze + HMMD_SEARCH_STATUS *deserial = NULL; // alidisplay to hold the deserialized object + char msg[]="utest_Deserialize_error_conditions failed"; + uint8_t *buf = NULL; + uint32_t n = 0, nalloc = 0; + ESL_RAND64 *rng = esl_rand64_Create(0); + hmmd_search_status_TestSample(rng, &deserial); + if(deserial == NULL){ + esl_fatal(msg); + } + + hmmd_search_status_TestSample(rng, &sampled); + if(sampled == NULL){ + esl_fatal(msg); + } + + if(hmmd_search_status_Serialize(sampled, &buf, &n, &nalloc) != eslOK){ // serialize an object to deserialize + esl_fatal(msg); + } + + // Test 1: error on buf == NULL; + if(hmmd_search_status_Deserialize(NULL, &n, deserial) != eslEINVAL){ + esl_fatal(msg); + } + //printf("Test 1 passed\n"); + + // Test 2: error on n == NULL + if(hmmd_search_status_Deserialize(buf, NULL, deserial) != eslEINVAL){ + esl_fatal(msg); + } + // printf("Test 2 passed\n"); + + // Test 3: error on serialized object == NULL + if(hmmd_search_status_Deserialize(buf, &n, NULL) != eslEINVAL){ + esl_fatal(msg); + } + //printf("Test 3 passed\n"); + + free(deserial); + free(sampled); + esl_rand64_Destroy(rng); + return; +} + +static void utest_Serialize(int ntrials){ + int i; + uint8_t **buf=NULL; + uint32_t n; + uint32_t nalloc; + HMMD_SEARCH_STATUS **serial=NULL, *deserial=NULL; + int status; + char msg[] = "utest_Serialize failed"; + + ESL_ALLOC(buf, sizeof(uint8_t *)); + *buf = NULL; + n = 0; + nalloc = 0; + + ESL_ALLOC(serial, ntrials * sizeof(HMMD_SEARCH_STATUS *)); + for(i = 0; i< ntrials; i++){ + serial[i] = NULL; + } + + ESL_RAND64 *rng = esl_rand64_Create(0); + + for(i = 0; i < ntrials; i++){ + if(hmmd_search_status_TestSample(rng, &(serial[i])) != eslOK){ + esl_fatal(msg); + } + if(hmmd_search_status_Serialize(serial[i], buf, &n, &nalloc) != eslOK){ + esl_fatal(msg); + } + } + + n = 0; // reset to start of buffer + + ESL_ALLOC(deserial, sizeof(HMMD_SEARCH_STATUS)); + + for(i = 0; i < ntrials; i++){ + if(hmmd_search_status_Deserialize(*buf, &n, deserial) != eslOK){ + esl_fatal(msg); + } + if(hmmd_search_status_Compare(serial[i], deserial) != eslOK){ // deserialized structure didn't match serialized + esl_fatal(msg); + } + + } + // haven't failed yet, so we've succeeded. Clean up and exit + free(*buf); + free(buf); + for(i = 0; i < ntrials; i++){ + free(serial[i]); + } + free(serial); + free(deserial); + + return; + + ERROR: + if(buf != NULL){ + if(*buf != NULL){ + free(*buf); + } + free(buf); + } + + if(serial != NULL){ + for(i = 0; i < ntrials; i++){ + if(serial[i] != NULL){ + free(serial[i]); + } + } + free(serial); + } + + if(deserial == NULL){ + free(deserial); + } + + esl_fatal(msg); + +} +#endif +/***************************************************************** + * 3. Test Driver + *****************************************************************/ +#ifdef p7HMMD_SEARCH_STATUS_TESTDRIVE + +int +main(int argc, char **argv) +{ + utest_Serialize_error_conditions(); + utest_Deserialize_error_conditions(); + utest_Serialize(100); + return eslOK; // If we get here, test passed +} + +#endif \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/src/hmmdmstr.c b/bioinformaticsProject/hmmer/src/hmmdmstr.c new file mode 100644 index 0000000..cee11ed --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmdmstr.c @@ -0,0 +1,1906 @@ +/* master side of the hmmpgmd daemon + * MSF, Thu Aug 12, 2010 [Janelia] + */ +#include "p7_config.h" + +#ifdef HMMER_THREADS + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_NETINET_IN_H +#include /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */ +#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */ +#include +#include +#include +#include + +#ifndef HMMER_THREADS +#error "Program requires pthreads be enabled." +#endif /*HMMER_THREADS*/ + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stack.h" +#include "esl_stopwatch.h" +#include "esl_threads.h" + +#include "hmmer.h" +#include "hmmpgmd.h" +#include "cachedb.h" +#include "p7_hmmcache.h" + +#define MAX_WORKERS 64 +#define MAX_BUFFER 4096 + +#define CONF_FILE "/etc/hmmpgmd.conf" + +typedef struct { + HMMD_SEARCH_STATS stats; + HMMD_SEARCH_STATUS status; + P7_HIT **hits; + int nhits; + int db_inx; + int db_cnt; + int errors; +} SEARCH_RESULTS; + +typedef struct { + int sock_fd; + char ip_addr[64]; + + ESL_STACK *cmdstack; /* stack of commands that clients want done */ +} CLIENTSIDE_ARGS; + +typedef struct { + int sock_fd; + + pthread_mutex_t work_mutex; + pthread_cond_t start_cond; + pthread_cond_t complete_cond; + + int db_version; + P7_SEQCACHE *seq_db; + P7_HMMCACHE *hmm_db; + + int ready; + int failed; + struct worker_s *head; + struct worker_s *tail; + + int pend_cnt; + struct worker_s *pending; + + int idle_cnt; + struct worker_s *idling; + + RANGE_LIST *range_list; /* (optional) list of ranges searched within the seqdb */ + + int completed; +} WORKERSIDE_ARGS; + +typedef struct worker_s { + int sock_fd; + char ip_addr[64]; + + int completed; + int terminated; + HMMD_COMMAND *cmd; + + uint32_t srch_inx; + uint32_t srch_cnt; + + HMMD_SEARCH_STATS stats; + HMMD_SEARCH_STATUS status; + char *err_buf; + P7_HIT **hits; + uint32_t allocated_hits; + int total; + + WORKERSIDE_ARGS *parent; + + struct worker_s *next; + struct worker_s *prev; +} WORKER_DATA; + + +static void setup_clientside_comm(ESL_GETOPTS *opts, CLIENTSIDE_ARGS *args); +static void setup_workerside_comm(ESL_GETOPTS *opts, WORKERSIDE_ARGS *args); + +static void destroy_worker(WORKER_DATA *worker); + +static void init_results(SEARCH_RESULTS *results); +static void clear_results(WORKERSIDE_ARGS *comm, SEARCH_RESULTS *results); +static void gather_results(QUEUE_DATA *query, WORKERSIDE_ARGS *comm, SEARCH_RESULTS *results); +static void forward_results(QUEUE_DATA *query, SEARCH_RESULTS *results); + +static void +print_client_msg(int fd, int status, char *format, va_list ap) +{ + uint32_t nalloc =0; + uint32_t buf_offset = 0; + uint8_t *buf = NULL; + char ebuf[512]; + + HMMD_SEARCH_STATUS s; + + memset(&s, 0, sizeof(HMMD_SEARCH_STATUS)); + + s.status = status; + s.msg_size = vsnprintf(ebuf, sizeof(ebuf), format, ap) +1; /* +1 because we send the \0 */ + + p7_syslog(LOG_ERR, ebuf); + + if(hmmd_search_status_Serialize(&s, &buf, &buf_offset, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATUS failed", errno); + } + /* send back an unsuccessful status message */ + + if (writen(fd, buf, buf_offset) != buf_offset) { + p7_syslog(LOG_ERR,"[%s:%d] - writing (%d) error %d - %s\n", __FILE__, __LINE__, fd, errno, strerror(errno)); + return; + } + if (writen(fd, ebuf, s.msg_size) != s.msg_size) { + p7_syslog(LOG_ERR,"[%s:%d] - writing (%d) error %d - %s\n", __FILE__, __LINE__, fd, errno, strerror(errno)); + return; + } + + free(buf); +} + +static void +client_msg(int fd, int status, char *format, ...) +{ + va_list ap; + + va_start(ap, format); + print_client_msg(fd, status, format, ap); + va_end(ap); +} + +static void +client_msg_longjmp(int fd, int status, jmp_buf *env, char *format, ...) +{ + va_list ap; + + va_start(ap, format); + print_client_msg(fd, status, format, ap); + va_end(ap); + + longjmp(*env, 1); +} + +static int +validate_workers(WORKERSIDE_ARGS *args) +{ + int ready = 0; + int failed = 0; + int pending = 0; + int idling = 0; + + WORKER_DATA *worker = NULL; + WORKER_DATA *tail = NULL; + + /* count the idling workers */ + worker = args->idling; + while (worker != NULL) { + ++idling; + if (worker->terminated) ++failed; + worker = worker->next; + } + assert(idling == args->idle_cnt); + + /* count the pending workers */ + worker = args->pending; + while (worker != NULL) { + ++pending; + if (worker->terminated) ++failed; + worker = worker->next; + } + assert(pending == args->pend_cnt); + + if (args->head == NULL && args->tail == NULL) { + assert(failed == args->failed); + assert(ready == 0); + return 1; + } + + assert(args->head != NULL && args->tail != NULL); + assert(args->head->prev == NULL); + assert(args->tail->next == NULL); + + /* count the ready workers */ + worker = args->head; + while (worker != NULL) { + ++ready; + assert(worker->prev == tail); + assert(ready <= args->ready); + tail = worker; + if (worker->terminated) ++failed; + worker = worker->next; + } + assert(ready == args->ready); + assert(failed == args->failed); + assert(tail == args->tail); + + return 1; +} + +static void +update_workers(WORKERSIDE_ARGS *args) +{ + WORKER_DATA *worker = NULL; + + assert(validate_workers(args)); + + /* if there are any workers waiting to join, add them */ + while (args->pending != NULL) { + worker = args->pending; + args->pending = worker->next; + + worker->next = NULL; + if (args->head == NULL) { + args->head = worker; + worker->prev = NULL; + } else { + args->tail->next = worker; + worker->prev = args->tail; + } + args->tail = worker; + + args->pend_cnt--; + args->ready++; + } + + /* remove any workers who have failed */ + worker = args->head; + while (args->failed > 0 && worker != NULL) { + WORKER_DATA *next = worker->next; + if (worker->terminated) { + --args->failed; + --args->ready; + if (args->head == worker && args->tail == worker) { + args->head = NULL; + args->tail = NULL; + } else if (args->head == worker) { + args->head = worker->next; + worker->next->prev = NULL; + } else if (args->tail == worker) { + args->tail = worker->prev; + worker->prev->next = NULL; + } else { + worker->next->prev = worker->prev; + worker->prev->next = worker->next; + } + destroy_worker(worker); + } + worker = next; + } + + assert(validate_workers(args)); +} + +static void +process_search(WORKERSIDE_ARGS *args, QUEUE_DATA *query) +{ + ESL_STOPWATCH *w = NULL; /* timer used for profiling statistics */ + WORKER_DATA *worker = NULL; + SEARCH_RESULTS results; + int n; + int cnt; + int inx; + int ready_workers; /* counter variable used to track the number of workers currently available to receive work; short for "remaining", I imagine */ + int tries; + int i; + + + memset(&results, 0, sizeof(SEARCH_RESULTS)); /* avoid valgrind bitching about uninit bytes; remove, if we ever serialize structs properly */ + + /* figure out the size of the database we are searching */ + if (query->cmd_type == HMMD_CMD_SEARCH) { + if((args->seq_db == NULL)||(args->seq_db->db == NULL)|| (query->dbx >= args->seq_db->db_cnt) || (query->dbx < 0)){ + // Client is attempting to search a database that does not exist, complain and abort search + client_msg(query->sock, eslFAIL, "Specified sequence database has not been loaded into the daemon. \n"); + return; + } + else{ + cnt = args->seq_db->db[query->dbx].count; + } + } else { + if(args->hmm_db == NULL){ + // Client is attempting to search a database that does not exist, complain and abort search + client_msg(query->sock, eslFAIL, "No HMM database has been loaded into the daemon. \n"); + return; + } + else{ + cnt = args->hmm_db->n; + } + } + + // start timer after we make sure the relevant database exists to make cleanup easier on error + w = esl_stopwatch_Create(); + esl_stopwatch_Start(w); + init_results(&results); + + //if range(s) are given, count how many of the seqdb's sequences are within supplied range(s) + if (args->range_list) { // can only happen in HMMD_CMD_SEARCH case + int range_cnt = 0; // this will now count how many of the seqs in the db are within the range + for (i=0; iseq_db->list[i].idx, args->range_list ) ) + range_cnt++; + } + cnt = range_cnt; + } + + + inx = 0; + tries = 0; + do { + /* process any changes to the available workers */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* build a list of the currently available workers */ + update_workers(args); + + /* if there are no workers, report an error */ + if (args->ready > 0) { + ready_workers = args->ready; + + /* update the workers search information */ + worker = args->head; + + while (worker != NULL) { + worker->cmd = query->cmd; + worker->completed = 0; + worker->total = 0; + + /* assign each worker a portion of the database */ + worker->srch_inx = inx; + if (args->range_list) { + // if ranges are given, need to split the db list based on which elements in the list are within the given range(s) + int goal = cnt / ready_workers; //how many within-range sequences do I want to ask this worker to handle + int curr = 0; //how many within-range sequences have I seen since the start of this full-db range + worker->srch_cnt = 0; + while (curr < goal) { + if ( hmmpgmd_IsWithinRanges (args->seq_db->list[inx].idx, args->range_list ) ) + curr++; + worker->srch_cnt++; + inx++; + } + cnt -= curr; + } else { + // default - split evenly among workers + worker->srch_cnt = cnt / ready_workers; + inx += worker->srch_cnt; + cnt -= worker->srch_cnt; + } + + --ready_workers; + worker = worker->next; + } + + args->completed = 0; + + /* notify all the worker threads of the new query */ + if ((n = pthread_cond_broadcast(&args->start_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n); + } + + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + if (args->ready > 0) { + /* Wait for all the workers to complete */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + while (args->completed < args->ready) { + if ((n = pthread_cond_wait (&args->complete_cond, &args->work_mutex)) != 0) LOG_FATAL_MSG("cond wait", n); + } + + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + } + + /* gather up the results from all the workers */ + gather_results(query, args, &results); + + /* we can recover from one worker crashing. get the block that worker ran on + * and redistribute its load to all the remaining workers. + */ + inx = results.db_inx; + cnt = results.db_cnt; + ++tries; + + } while (args->ready > 0 && results.errors == 1 && tries < 2); + + + esl_stopwatch_Stop(w); + + /* copy the search stats */ + results.stats.elapsed = w->elapsed; + results.stats.user = w->user; + results.stats.sys = w->sys; + results.stats.hit_offsets = NULL; // set this to make sure we allocate memory later + /* TODO: check for errors */ + if (args->ready == 0) { + client_msg(query->sock, eslFAIL, "No compute nodes available\n"); + } else if (args->failed > 0) { + client_msg(query->sock, eslFAIL, "Errors running search\n"); + clear_results(args, &results); + } else { + forward_results(query, &results); + } + + esl_stopwatch_Destroy(w); +} + +static void +process_shutdown(WORKERSIDE_ARGS *args, QUEUE_DATA *query) +{ + int n; + int cnt; + + HMMD_COMMAND cmd; + + WORKER_DATA *worker = NULL; + + /* process any changes to the available workers */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* build a list of the currently available workers */ + update_workers(args); + + /* reset all the idle and active workers */ + cnt = 0; + + /* build a reset command */ + cmd.hdr.length = 0; + cmd.hdr.command = HMMD_CMD_SHUTDOWN; + + /* look for the active workers to shutdown */ + worker = args->head; + while (worker != NULL) { + worker->cmd = &cmd; + worker->completed = 0; + worker->total = 0; + + worker = worker->next; + ++cnt; + } + + /* look for the idle workers to shutdown */ + worker = args->idling; + while (worker != NULL) { + worker->cmd = &cmd; + worker->completed = 0; + worker->total = 0; + + worker = worker->next; + ++cnt; + } + + /* check if there are any workers to shutdown */ + if (cnt > 0) { + args->completed = 0; + + /* notify all the worker threads of the new query */ + if ((n = pthread_cond_broadcast(&args->start_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n); + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + /* Wait for all the workers to complete */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + while (args->completed < cnt) { + if ((n = pthread_cond_wait (&args->complete_cond, &args->work_mutex)) != 0) LOG_FATAL_MSG("cond wait", n); + } + } + + /* build a list of the currently available workers */ + update_workers(args); + + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); +} + + +void +master_process(ESL_GETOPTS *go) +{ + P7_SEQCACHE *seq_db = NULL; + P7_HMMCACHE *hmm_db = NULL; + ESL_STACK *cmdstack = NULL; /* stack of commands that clients want done */ + QUEUE_DATA *query = NULL; + CLIENTSIDE_ARGS client_comm; + WORKERSIDE_ARGS worker_comm; + int n; + int shutdown; + char errbuf[eslERRBUFSIZE]; + int status = eslOK; + + impl_Init(); + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + + if (esl_opt_IsUsed(go, "--seqdb")) { + char *name = esl_opt_GetString(go, "--seqdb"); + if ((status = p7_seqcache_Open(name, &seq_db, errbuf)) != eslOK) + p7_Fail("Failed to cache %s (%d)", name, status); + + } + + if (esl_opt_IsUsed(go, "--hmmdb")) { + char *name = esl_opt_GetString(go, "--hmmdb"); + + status = p7_hmmcache_Open(name, &hmm_db, errbuf); + if (status == eslENOTFOUND) p7_Fail("Failed to open profile database %s\n %s\n", name, errbuf); + else if (status == eslEFORMAT) p7_Fail("Failed to parse profile database %s\n %s\n", name, errbuf); + else if (status == eslEINCOMPAT) p7_Fail("Mismatched alphabets in profile db %s\n %s\n", name, errbuf); + else if (status != eslOK) p7_Fail("Failed to load profile db %s : code %d\n", name, status); + + p7_hmmcache_SetNumericNames(hmm_db); + + printf("Loaded profile db %s; models: %d memory: %" PRId64 "\n", + name, hmm_db->n, (uint64_t) p7_hmmcache_Sizeof(hmm_db)); + } + + /* if stdout is redirected at the commandline, it causes printf's to be buffered, + * which means status logging isn't printed. This line strongly requests unbuffering, + * which should be ok, given the low stdout load of hmmpgmd + */ + setvbuf (stdout, NULL, _IONBF, BUFSIZ); + printf("Data loaded into memory. Master is ready.\n"); + setvbuf (stdout, NULL, _IOFBF, BUFSIZ); + + /* initialize the search stack, set it up for interthread communication */ + cmdstack = esl_stack_PCreate(); + esl_stack_UseMutex(cmdstack); + esl_stack_UseCond(cmdstack); + + /* start the communications with the web clients */ + client_comm.cmdstack = cmdstack; + setup_clientside_comm(go, &client_comm); + + /* initialize the worker structure */ + if ((n = pthread_mutex_init(&worker_comm.work_mutex, NULL)) != 0) LOG_FATAL_MSG("mutex init", n); + if ((n = pthread_cond_init(&worker_comm.start_cond, NULL)) != 0) LOG_FATAL_MSG("cond init", n); + if ((n = pthread_cond_init(&worker_comm.complete_cond, NULL)) != 0) LOG_FATAL_MSG("cond init", n); + + worker_comm.sock_fd = -1; + worker_comm.head = NULL; + worker_comm.tail = NULL; + worker_comm.pending = NULL; + worker_comm.idling = NULL; + worker_comm.seq_db = seq_db; + worker_comm.hmm_db = hmm_db; + worker_comm.db_version = 1; + + worker_comm.ready = 0; + worker_comm.failed = 0; + worker_comm.pend_cnt = 0; + worker_comm.idle_cnt = 0; + + setup_workerside_comm(go, &worker_comm); + + /* read query hmm/sequence + * the PPop() will wait until a client pushes a command to the queue + */ + shutdown = 0; + while (!shutdown && esl_stack_PPop(cmdstack, (void **) &query) == eslOK) { + printf("Processing command %d from %s\n", query->cmd_type, query->ip_addr); + fflush(stdout); + + worker_comm.range_list = NULL; + + switch(query->cmd_type) { + case HMMD_CMD_SEARCH: + if (esl_opt_IsUsed(query->opts, "--seqdb_ranges")) { + ESL_ALLOC(worker_comm.range_list, sizeof(RANGE_LIST)); + hmmpgmd_GetRanges(worker_comm.range_list, esl_opt_GetString(query->opts, "--seqdb_ranges")); + } + process_search(&worker_comm, query); + break; + case HMMD_CMD_SCAN: process_search(&worker_comm, query); break; + case HMMD_CMD_SHUTDOWN: + process_shutdown(&worker_comm, query); + p7_syslog(LOG_ERR,"[%s:%d] - shutting down...\n", __FILE__, __LINE__); + shutdown = 1; + break; + default: + p7_syslog(LOG_ERR,"[%s:%d] - unknown command %d from %s\n", __FILE__, __LINE__, query->cmd_type, query->ip_addr); + break; + } + + free_QueueData(query); + } + + esl_stack_ReleaseCond(cmdstack); + + if (hmm_db) p7_hmmcache_Close(hmm_db); + if (seq_db) p7_seqcache_Close(seq_db); + + esl_stack_Destroy(cmdstack); + + pthread_mutex_destroy(&worker_comm.work_mutex); + pthread_cond_destroy(&worker_comm.start_cond); + pthread_cond_destroy(&worker_comm.complete_cond); + + + if (worker_comm.range_list) { + if (worker_comm.range_list->starts) free(worker_comm.range_list->starts); + if (worker_comm.range_list->ends) free(worker_comm.range_list->ends); + free (worker_comm.range_list); + } + + return; + + +ERROR: + p7_Fail("Memory allocation error. Code: %d\n", status); + +} + + +// Qsort comparison function to sort a list of pointers to P7_HITs +static int +hit_sorter2(const void *p1, const void *p2) +{ + int cmp; + + const P7_HIT *h1 = *((P7_HIT **) p1); + const P7_HIT *h2 = *((P7_HIT **) p2); + + cmp = (h1->sortkey < h2->sortkey); + cmp -= (h1->sortkey > h2->sortkey); + + return cmp; +} + +static void +init_results(SEARCH_RESULTS *results) +{ + results->status.status = eslOK; + results->status.msg_size = 0; + + results->stats.nhits = 0; + results->stats.nreported = 0; + results->stats.nincluded = 0; + + results->stats.nmodels = 0; + results->stats.nseqs = 0; + results->stats.n_past_msv = 0; + results->stats.n_past_bias = 0; + results->stats.n_past_vit = 0; + results->stats.n_past_fwd = 0; + results->stats.Z = 0; + + results->hits = NULL; + results->stats.hit_offsets = NULL; + results->nhits = 0; + results->db_inx = 0; + results->db_cnt = 0; + results->errors = 0; +} + +static void +gather_results(QUEUE_DATA *query, WORKERSIDE_ARGS *comm, SEARCH_RESULTS *results) +{ + int cnt; + int n; + + WORKER_DATA *worker; + + /* allocate spaces to hold all the hits */ + cnt = results->nhits + MAX_WORKERS; + if ((results->hits = realloc(results->hits, sizeof(P7_HIT *) * cnt)) == NULL) LOG_FATAL_MSG("malloc", errno); + + /* lock the workers until we have merged the results */ + if ((n = pthread_mutex_lock (&comm->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* count the number of hits */ + cnt = results->nhits; + worker = comm->head; + while (worker != NULL) { + if (worker->completed) { + uint32_t previous_hits = results->stats.nhits; + + results->stats.nhits += worker->stats.nhits; + results->stats.nreported += worker->stats.nreported; + results->stats.nincluded += worker->stats.nincluded; + + results->stats.n_past_msv += worker->stats.n_past_msv; + results->stats.n_past_bias += worker->stats.n_past_bias; + results->stats.n_past_vit += worker->stats.n_past_vit; + results->stats.n_past_fwd += worker->stats.n_past_fwd; + + results->stats.Z_setby = worker->stats.Z_setby; + results->stats.domZ_setby = worker->stats.domZ_setby; + results->stats.domZ = worker->stats.domZ; + results->stats.Z = worker->stats.Z; + + results->status.msg_size += worker->status.msg_size - sizeof(HMMD_SEARCH_STATS); + + if((results->stats.nhits- previous_hits) >0){ // There are new hits to deal with + // Add enough space to the list of hits for all the hits from this worker + results->hits = realloc(results->hits, results->stats.nhits * sizeof (P7_HIT *)); + if(results->hits == NULL){ + LOG_FATAL_MSG("malloc", n); + } + + // copy this worker's hits into the global list + for(int i0 = 0, i1 = previous_hits; i1 < results->stats.nhits; i0++, i1++){ + results->hits[i1] = worker->hits[i0]; + } + + free(worker->hits); // Free the worker's array of pointers to hits. The hits themselves + // will be freed by forward_results() + + worker->hits = NULL; + } + worker->completed = 0; + ++cnt; + } else { + results->errors++; + results->db_inx = worker->srch_inx; + results->db_cnt = worker->srch_cnt; + } + + worker = worker->next; + } + + if ((n = pthread_mutex_unlock (&comm->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + if (query->cmd_type == HMMD_CMD_SEARCH) { + results->stats.nmodels = 1; + results->stats.nseqs = comm->seq_db->db[query->dbx].K; + } else { + results->stats.nseqs = 1; + results->stats.nmodels = comm->hmm_db->n; + } + + if (results->stats.Z_setby == p7_ZSETBY_NTARGETS) { + results->stats.Z = (query->cmd_type == HMMD_CMD_SEARCH) ? results->stats.nseqs : results->stats.nmodels; + } + + results->nhits = cnt; +} + +static void +forward_results(QUEUE_DATA *query, SEARCH_RESULTS *results) +{ + P7_TOPHITS th; + P7_PIPELINE *pli = NULL; + P7_DOMAIN **dcl = NULL; + P7_HIT *hits = NULL; + int fd, n; + uint8_t **buf, **buf2, **buf3, *buf_ptr, *buf2_ptr, *buf3_ptr; + uint32_t nalloc, nalloc2, nalloc3, buf_offset, buf_offset2, buf_offset3; + enum p7_pipemodes_e mode; + + // Initialize these pointers-to-pointers that we'll use for sending data + buf_ptr = NULL; + buf = &(buf_ptr); + buf2_ptr = NULL; + buf2 = &(buf2_ptr); + buf3_ptr = NULL; + buf3 = &(buf3_ptr); + + fd = query->sock; + + if (query->cmd_type == HMMD_CMD_SEARCH) mode = p7_SEARCH_SEQS; + else mode = p7_SCAN_MODELS; + + /* sort the hits and apply score and E-value thresholds */ + if (results->nhits > 0) { + if(results->stats.hit_offsets != NULL){ + if ((results->stats.hit_offsets = realloc(results->stats.hit_offsets, results->stats.nhits * sizeof(uint64_t))) == NULL) LOG_FATAL_MSG("malloc", errno); + } + else{ + if ((results->stats.hit_offsets = malloc(results->stats.nhits * sizeof(uint64_t))) == NULL) LOG_FATAL_MSG("malloc", errno); + } + + // sort the hits + qsort(results->hits, results->stats.nhits, sizeof(P7_HIT *), hit_sorter2); + + th.unsrt = NULL; + th.N = results->stats.nhits; + th.nreported = 0; + th.nincluded = 0; + th.is_sorted_by_sortkey = 0; + th.is_sorted_by_seqidx = 0; + + pli = p7_pipeline_Create(query->opts, 100, 100, FALSE, mode); + pli->nmodels = results->stats.nmodels; + pli->nseqs = results->stats.nseqs; + pli->n_past_msv = results->stats.n_past_msv; + pli->n_past_bias = results->stats.n_past_bias; + pli->n_past_vit = results->stats.n_past_vit; + pli->n_past_fwd = results->stats.n_past_fwd; + + pli->Z = results->stats.Z; + pli->domZ = results->stats.domZ; + pli->Z_setby = results->stats.Z_setby; + pli->domZ_setby = results->stats.domZ_setby; + + + th.hit = results->hits; + + p7_tophits_Threshold(&th, pli); + + /* after the top hits thresholds are checked, the number of sequences + * and domains to be reported can change. */ + results->stats.nreported = th.nreported; + results->stats.nincluded = th.nincluded; + results->stats.domZ = pli->domZ; + results->stats.Z = pli->Z; + } + + /* Build the buffers of serialized results we'll send back to the client. + Use three buffers, one for each object, because we need to build them in reverse order. + We need to serialize the hits to build the hits_offset array in HMMD_SEARCH_STATS. + We need the length of the serialized hits and HMMD_SEARCH_STATS objects to fill out the msg_size + field in status, but we want to send status, then stats, then hits */ + + nalloc = 0; + buf_offset = 0; + + // First, the buffer of hits + for(int i =0; i< results->stats.nhits; i++){ + + results->stats.hit_offsets[i] = buf_offset; + if(p7_hit_Serialize(results->hits[i], buf, &buf_offset, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing P7_HIT failed", errno); + } + + } + if(results->stats.nhits == 0){ + results->stats.hit_offsets = NULL; + } + + // Second, the buffer with the HMMD_SEARCH_STATS object + + buf_offset2 = 0; + nalloc2 = 0; + if(p7_hmmd_search_stats_Serialize(&(results->stats), buf2, &buf_offset2, &nalloc2) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATS failed", errno); + } + + results->status.msg_size = buf_offset + buf_offset2; // set size of second message + + // Third, the buffer with the HMMD_SEARCH_STATUS object + buf_offset3 = 0; + nalloc3 = 0; + if(hmmd_search_status_Serialize(&(results->status), buf3, &buf_offset3, &nalloc3) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATUS failed", errno); + } + + // Now, send the buffers in the reverse of the order they were built + /* send back a successful status message */ + n = buf_offset3; + + if (writen(fd, buf3_ptr, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, query->ip_addr, errno, strerror(errno)); + goto CLEAR; + } + + // and the stats object + n=buf_offset2; + + if (writen(fd, buf2_ptr, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, query->ip_addr, errno, strerror(errno)); + goto CLEAR; + } + printf("%p\n", results->hits[1]); + // and finally the hits + n=buf_offset; + + if (writen(fd, buf_ptr, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, query->ip_addr, errno, strerror(errno)); + goto CLEAR; + } + printf("Results for %s (%d) sent %" PRId64 " bytes\n", query->ip_addr, fd, results->status.msg_size); + printf("Hits:%"PRId64 " reported:%" PRId64 " included:%"PRId64 "\n", results->stats.nhits, results->stats.nreported, results->stats.nincluded); + fflush(stdout); + + CLEAR: + /* free all the data */ + for(int i = 0; i < results->stats.nhits; i++){ + p7_hit_Destroy(results->hits[i]); + } + + free(results->hits); + results->hits = NULL; + + if (pli) p7_pipeline_Destroy(pli); + if (hits) free(hits); + if (dcl) free(dcl); + if(buf_ptr != NULL){ + free(buf_ptr); + } + if(buf2_ptr != NULL){ + free(buf2_ptr); + } + if(buf3_ptr != NULL){ + free(buf3_ptr); + } + if(results->stats.hit_offsets != NULL){ + free(results->stats.hit_offsets); + } + init_results(results); + return; +} + +static void +destroy_worker(WORKER_DATA *worker) +{ + if (worker == NULL) { + if (worker->err_buf != NULL) free(worker->err_buf); + if (worker->hits != NULL){ + for(int i = 0; i < worker->allocated_hits; i++){ + p7_hit_Destroy(worker->hits[i]); + } + free(worker->hits); + } + memset(worker, 0, sizeof(WORKER_DATA)); + free(worker); + } +} + +static void +clear_results(WORKERSIDE_ARGS *args, SEARCH_RESULTS *results) +{ + int i; + int n; + WORKER_DATA *worker; + + /* lock the workers until we have freed the results */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + assert(validate_workers(args)); + + /* free all the results */ + worker = args->head; + while (worker != NULL) { + if (worker->err_buf != NULL) free(worker->err_buf); + if(worker->hits != NULL){ + for(int i =0; i < worker->allocated_hits; i++){ + p7_hit_Destroy(worker->hits[i]); + } + free(worker->hits); + worker->hits = NULL; + } + worker->err_buf = NULL; + + worker->completed = 0; + worker = worker->next; + } + + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + for (i = 0; i < results->nhits; ++i) { + if (results->hits[i] != NULL) p7_hit_Destroy(results->hits[i]); + results->hits[i] = NULL; + } + + if (results->hits != NULL) free(results->hits); + init_results(results); +} + +static void +process_ServerCmd(char *ptr, CLIENTSIDE_ARGS *data) +{ + QUEUE_DATA *parms = NULL; /* cmd to queue */ + HMMD_COMMAND *cmd = NULL; /* parsed cmd to process */ + int fd = data->sock_fd; + ESL_STACK *cmdstack = data->cmdstack; + char *s; + time_t date; + char timestamp[32]; + + /* skip leading white spaces */ + ++ptr; + while (*ptr == ' ' || *ptr == '\t') ++ptr; + + /* skip to the end of the line */ + s = ptr; + while (*s && (*s != '\n' && *s != '\r')) ++s; + *s = 0; + + /* process the different commands */ + s = strsep(&ptr, " \t"); + if (strcmp(s, "shutdown") == 0) + { + if ((cmd = malloc(sizeof(HMMD_HEADER))) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(cmd, 0, sizeof(HMMD_HEADER)); /* avoid uninit bytes & valgrind bitching. Remove, if we ever serialize structs correctly. */ + cmd->hdr.length = 0; + cmd->hdr.command = HMMD_CMD_SHUTDOWN; + } + else + { + client_msg(fd, eslEINVAL, "Unknown command %s\n", s); + return; + } + + if ((parms = malloc(sizeof(QUEUE_DATA))) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(parms, 0, sizeof(QUEUE_DATA)); /* avoid valgrind bitches about uninit bytes; remove if structs are serialized properly */ + + parms->hmm = NULL; + parms->seq = NULL; + parms->abc = NULL; + parms->opts = NULL; + parms->dbx = -1; + parms->cmd = cmd; + + strcpy(parms->ip_addr, data->ip_addr); + parms->sock = fd; + parms->cmd_type = cmd->hdr.command; + parms->query_type = 0; + + date = time(NULL); + ctime_r(&date, timestamp); + printf("\n%s", timestamp); /* note ctime_r() leaves \n on end of timestamp */ + printf("Queuing command %d from %s (%d)\n", cmd->hdr.command, parms->ip_addr, parms->sock); + fflush(stdout); + + esl_stack_PPush(cmdstack, parms); +} + +static int +clientside_loop(CLIENTSIDE_ARGS *data) +{ + int status; + + char *ptr; + char *buffer; + char opt_str[MAX_BUFFER]; + + int dbx; + int buf_size; + int remaining; + int amount; + int eod; + int n; + + P7_HMM *hmm = NULL; /* query HMM */ + ESL_SQ *seq = NULL; /* query sequence */ + ESL_SCOREMATRIX *sco = NULL; /* scoring matrix */ + P7_HMMFILE *hfp = NULL; + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + ESL_GETOPTS *opts = NULL; /* search specific options */ + HMMD_COMMAND *cmd = NULL; /* search cmd to send to workers */ + + ESL_STACK *cmdstack = data->cmdstack; + QUEUE_DATA *parms; + jmp_buf jmp_env; + time_t date; + char timestamp[32]; + + buf_size = MAX_BUFFER; + if ((buffer = malloc(buf_size)) == NULL) LOG_FATAL_MSG("malloc", errno); + ptr = buffer; + remaining = buf_size; + amount = 0; + + eod = 0; + while (!eod) { + int l; + char *s; + + /* Receive message from client */ + if ((n = read(data->sock_fd, ptr, remaining)) < 0) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, data->ip_addr, errno, strerror(errno)); + return 1; + } + + if (n == 0) return 1; + + ptr += n; + amount += n; + remaining -= n; + + /* scan backwards till we hit the start of the line */ + l = amount; + s = ptr - 1; + while (l-- > 0 && (*s == '\n' || *s == '\r')) --s; + while (l-- > 0 && (*s != '\n' && *s != '\r')) --s; + eod = (amount > 1 && *(s + 1) == '/' && *(s + 2) == '/' ); + + /* if the buffer is full, make it larger */ + if (!eod && remaining == 0) { + if ((buffer = realloc(buffer, buf_size * 2)) == NULL) LOG_FATAL_MSG("realloc", errno); + ptr = buffer + buf_size; + remaining = buf_size; + buf_size *= 2; + } + } + + /* zero terminate the buffer */ + if (remaining == 0) { + if ((buffer = realloc(buffer, buf_size + 1)) == NULL) LOG_FATAL_MSG("realloc", errno); + ptr = buffer + buf_size; + } + *ptr = 0; + + /* skip all leading white spaces */ + ptr = buffer; + while (*ptr && isspace(*ptr)) ++ptr; + + opt_str[0] = 0; + if (*ptr == '!') { + process_ServerCmd(ptr, data); + free(buffer); + return 0; + } else if (*ptr == '@') { + char *s = ++ptr; + + /* skip to the end of the line */ + while (*ptr && (*ptr != '\n' && *ptr != '\r')) ++ptr; + *ptr++ = 0; + + /* create a commandline string with dummy program name for + * the esl_opt_ProcessSpoof() function to parse. + */ + snprintf(opt_str, sizeof(opt_str), "hmmpgmd %s\n", s); + + /* skip remaining white spaces */ + while (*ptr && isspace(*ptr)) ++ptr; + } else { + client_msg(data->sock_fd, eslEFORMAT, "Missing options string"); + free(buffer); + return 0; + } + + if (strncmp(ptr, "//", 2) == 0) { + client_msg(data->sock_fd, eslEFORMAT, "Missing search sequence/hmm"); + free(buffer); + return 0; + } + + if (!setjmp(jmp_env)) { + dbx = 0; + + status = process_searchopts(data->sock_fd, opt_str, &opts); + if (status != eslOK) { + client_msg_longjmp(data->sock_fd, status, &jmp_env, "Failed to parse options string: %s", opts->errbuf); + } + + /* the options string can handle an optional database */ + if (esl_opt_ArgNumber(opts) > 0) { + client_msg_longjmp(data->sock_fd, status, &jmp_env, "Incorrect number of command line arguments."); + } + + if (esl_opt_IsUsed(opts, "--seqdb")) { + dbx = esl_opt_GetInteger(opts, "--seqdb"); + } else if (esl_opt_IsUsed(opts, "--hmmdb")) { + dbx = esl_opt_GetInteger(opts, "--hmmdb"); + } else { + client_msg_longjmp(data->sock_fd, eslEINVAL, &jmp_env, "No search database specified, --seqdb or --hmmdb."); + } + + + abc = esl_alphabet_Create(eslAMINO); + seq = NULL; + hmm = NULL; + + if (*ptr == '>') { + /* try to parse the input buffer as a FASTA sequence */ + seq = esl_sq_CreateDigital(abc); + /* try to parse the input buffer as a FASTA sequence */ + status = esl_sqio_Parse(ptr, strlen(ptr), seq, eslSQFILE_DAEMON); + if (status != eslOK) client_msg_longjmp(data->sock_fd, status, &jmp_env, "Error parsing FASTA sequence"); + if (seq->n < 1) client_msg_longjmp(data->sock_fd, eslEFORMAT, &jmp_env, "Error zero length FASTA sequence"); + + } else if (strncmp(ptr, "HMM", 3) == 0) { + if (esl_opt_IsUsed(opts, "--hmmdb")) { + client_msg_longjmp(data->sock_fd, status, &jmp_env, "A HMM cannot be used to search a hmm database"); + } + + /* try to parse the buffer as an hmm */ + status = p7_hmmfile_OpenBuffer(ptr, strlen(ptr), &hfp); + if (status != eslOK) client_msg_longjmp(data->sock_fd, status, &jmp_env, "Failed to open query hmm buffer"); + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + if (status != eslOK) client_msg_longjmp(data->sock_fd, status, &jmp_env, "Error reading query hmm: %s", hfp->errbuf); + + p7_hmmfile_Close(hfp); + + } else { + /* no idea what we are trying to parse */ + client_msg_longjmp(data->sock_fd, eslEFORMAT, &jmp_env, "Unknown query sequence/hmm format"); + } + } else { + /* an error occured some where, so try to clean up */ + if (opts != NULL) esl_getopts_Destroy(opts); + if (abc != NULL) esl_alphabet_Destroy(abc); + if (hmm != NULL) p7_hmm_Destroy(hmm); + if (seq != NULL) esl_sq_Destroy(seq); + if (sco != NULL) esl_scorematrix_Destroy(sco); + + free(buffer); + return 0; + } + + if ((parms = malloc(sizeof(QUEUE_DATA))) == NULL) LOG_FATAL_MSG("malloc", errno); + + /* build the search structure that will be sent to all the workers */ + n = sizeof(HMMD_COMMAND); + n = n + strlen(opt_str) + 1; + + if (seq != NULL) { + n = n + strlen(seq->name) + 1; + n = n + strlen(seq->desc) + 1; + n = n + seq->n + 2; + } else { + n = n + sizeof(P7_HMM); + n = n + sizeof(float) * (hmm->M + 1) * p7H_NTRANSITIONS; + n = n + sizeof(float) * (hmm->M + 1) * abc->K; + n = n + sizeof(float) * (hmm->M + 1) * abc->K; + if (hmm->name != NULL) n = n + strlen(hmm->name) + 1; + if (hmm->acc != NULL) n = n + strlen(hmm->acc) + 1; + if (hmm->desc != NULL) n = n + strlen(hmm->desc) + 1; + if (hmm->flags & p7H_RF) n = n + hmm->M + 2; + if (hmm->flags & p7H_MMASK) n = n + hmm->M + 2; + if (hmm->flags & p7H_CONS) n = n + hmm->M + 2; + if (hmm->flags & p7H_CS) n = n + hmm->M + 2; + if (hmm->flags & p7H_CA) n = n + hmm->M + 2; + if (hmm->flags & p7H_MAP) n = n + sizeof(int) * (hmm->M + 1); + } + + if ((cmd = malloc(n)) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(cmd, 0, n); /* silence valgrind bitching about uninit bytes; remove if we ever serialize structs properly */ + cmd->hdr.length = n - sizeof(HMMD_HEADER); + cmd->hdr.command = (esl_opt_IsUsed(opts, "--seqdb")) ? HMMD_CMD_SEARCH : HMMD_CMD_SCAN; + cmd->srch.db_inx = dbx - 1; /* the program indexes databases 0 .. n-1 */ + cmd->srch.opts_length = strlen(opt_str) + 1; + + ptr = cmd->srch.data; + + memcpy(ptr, opt_str, cmd->srch.opts_length); + ptr += cmd->srch.opts_length; + + if (seq != NULL) { + cmd->srch.query_type = HMMD_SEQUENCE; + cmd->srch.query_length = seq->n + 2; + + n = strlen(seq->name) + 1; + memcpy(ptr, seq->name, n); + ptr += n; + + n = strlen(seq->desc) + 1; + memcpy(ptr, seq->desc, n); + ptr += n; + + n = seq->n + 2; + memcpy(ptr, seq->dsq, n); + ptr += n; + } else { + cmd->srch.query_type = HMMD_HMM; + cmd->srch.query_length = hmm->M; + + n = sizeof(P7_HMM); + memcpy(ptr, hmm, n); + ptr += n; + + n = sizeof(float) * (hmm->M + 1) * p7H_NTRANSITIONS; + memcpy(ptr, *hmm->t, n); + ptr += n; + + n = sizeof(float) * (hmm->M + 1) * abc->K; + memcpy(ptr, *hmm->mat, n); + ptr += n; + memcpy(ptr, *hmm->ins, n); + ptr += n; + + if (hmm->name) { n = strlen(hmm->name) + 1; memcpy(ptr, hmm->name, n); ptr += n; } + if (hmm->acc) { n = strlen(hmm->acc) + 1; memcpy(ptr, hmm->acc, n); ptr += n; } + if (hmm->desc) { n = strlen(hmm->desc) + 1; memcpy(ptr, hmm->desc, n); ptr += n; } + + n = hmm->M + 2; + if (hmm->flags & p7H_RF) { memcpy(ptr, hmm->rf, n); ptr += n; } + if (hmm->flags & p7H_MMASK) { memcpy(ptr, hmm->mm, n); ptr += n; } + if (hmm->flags & p7H_CONS) { memcpy(ptr, hmm->consensus, n); ptr += n; } + if (hmm->flags & p7H_CS) { memcpy(ptr, hmm->cs, n); ptr += n; } + if (hmm->flags & p7H_CA) { memcpy(ptr, hmm->ca, n); ptr += n; } + + if (hmm->flags & p7H_MAP) { + n = sizeof(int) * (hmm->M + 1); + memcpy(ptr, hmm->map, n); + ptr += n; + } + } + + parms->hmm = hmm; + parms->seq = seq; + parms->abc = abc; + parms->opts = opts; + parms->dbx = dbx - 1; + parms->cmd = cmd; + + strcpy(parms->ip_addr, data->ip_addr); + parms->sock = data->sock_fd; + parms->cmd_type = cmd->hdr.command; + parms->query_type = (seq != NULL) ? HMMD_SEQUENCE : HMMD_HMM; + + date = time(NULL); + ctime_r(&date, timestamp); + printf("\n%s", timestamp); /* note ctime_r() leaves \n on end of timestamp */ + + if (parms->seq != NULL) { + printf("Queuing %s %s from %s (%d)\n", (cmd->hdr.command == HMMD_CMD_SEARCH) ? "search" : "scan", parms->seq->name, parms->ip_addr, parms->sock); + } else { + printf("Queuing hmm %s from %s (%d)\n", parms->hmm->name, parms->ip_addr, parms->sock); + } + printf("%s", opt_str); /* note opt_str already has trailing \n */ + fflush(stdout); + + esl_stack_PPush(cmdstack, parms); + + free(buffer); + return 0; +} + + +/* discard_function() + * function handed to esl_stack_DiscardSelected() to remove + * all commands in the stack that are associated with a + * particular client socket, because we're closing that + * client down. Prototype to this is dictate by the generalized + * interface to esl_stack_DiscardSelected(). + */ +static int +discard_function(void *elemp, void *args) +{ + QUEUE_DATA *elem = (QUEUE_DATA *) elemp; + int fd = * (int *) args; + + if (elem->sock == fd) + { + free_QueueData(elem); + return TRUE; + } + return FALSE; +} + +static void * +clientside_thread(void *arg) +{ + int eof; + CLIENTSIDE_ARGS *data = (CLIENTSIDE_ARGS *)arg; + + /* Guarantees that thread resources are deallocated upon return */ + pthread_detach(pthread_self()); + + eof = 0; + while (!eof) { + eof = clientside_loop(data); + } + + /* remove any commands in stack associated with this client's socket */ + esl_stack_DiscardSelected(data->cmdstack, discard_function, &(data->sock_fd)); + + printf("Closing %s (%d)\n", data->ip_addr, data->sock_fd); + fflush(stdout); + + close(data->sock_fd); + free(data); + + pthread_exit(NULL); +} + +static void * +client_comm_thread(void *arg) +{ + int n; + int fd; + int addrlen; + pthread_t thread_id; + + struct sockaddr_in addr; + + CLIENTSIDE_ARGS *targs = NULL; + CLIENTSIDE_ARGS *data = (CLIENTSIDE_ARGS *)arg; + + for ( ;; ) { + + /* Wait for a client to connect */ + n = sizeof(addr); + if ((fd = accept(data->sock_fd, (struct sockaddr *)&addr, (unsigned int *)&n)) < 0) LOG_FATAL_MSG("accept", errno); + + if ((targs = malloc(sizeof(CLIENTSIDE_ARGS))) == NULL) LOG_FATAL_MSG("malloc", errno); + targs->cmdstack = data->cmdstack; + targs->sock_fd = fd; + + addrlen = sizeof(targs->ip_addr); + strncpy(targs->ip_addr, inet_ntoa(addr.sin_addr), addrlen); + targs->ip_addr[addrlen-1] = 0; + + if ((n = pthread_create(&thread_id, NULL, clientside_thread, targs)) != 0) LOG_FATAL_MSG("thread create", n); + } + + pthread_exit(NULL); +} + +static void +setup_clientside_comm(ESL_GETOPTS *opts, CLIENTSIDE_ARGS *args) +{ + int n; + int reuse; + int sock_fd; + pthread_t thread_id; + + struct linger linger; + struct sockaddr_in addr; + + /* Create socket for incoming connections */ + if ((sock_fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) LOG_FATAL_MSG("socket", errno); + + /* incase the server went down in an ungraceful way, allow the port to be + * reused avoiding the timeout. + */ + reuse = 1; + if (setsockopt(sock_fd, SOL_SOCKET, SO_REUSEADDR, (void *)&reuse, sizeof(reuse)) < 0) LOG_FATAL_MSG("setsockopt", errno); + + /* the sockets are never closed, so if the server exits, force the kernel to + * close the socket and clear it so the server can be restarted immediately. + */ + linger.l_onoff = 1; + linger.l_linger = 0; + if (setsockopt(sock_fd, SOL_SOCKET, SO_LINGER, (void *)&linger, sizeof(linger)) < 0) LOG_FATAL_MSG("setsockopt", errno); + + /* Construct local address structure */ + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_ANY); + addr.sin_port = htons(esl_opt_GetInteger(opts, "--cport")); + + /* Bind to the local address */ + if (bind(sock_fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) LOG_FATAL_MSG("bind", errno); + + /* Mark the socket so it will listen for incoming connections */ + if (listen(sock_fd, esl_opt_GetInteger(opts, "--ccncts")) < 0) LOG_FATAL_MSG("listen", errno); + args->sock_fd = sock_fd; + + if ((n = pthread_create(&thread_id, NULL, client_comm_thread, (void *)args)) != 0) LOG_FATAL_MSG("socket", n); +} + +static void +workerside_loop(WORKERSIDE_ARGS *data, WORKER_DATA *worker) +{ + ESL_STOPWATCH *w = NULL; + HMMD_SEARCH_STATS *stats = NULL; + HMMD_COMMAND cmd; + int n; + int size; + int total; + char *ptr; + uint8_t *buf; // Buffer to receive bytes into over sockets + uint32_t buf_position; //Index into buffer for deserialize + memset(&cmd, 0, sizeof(HMMD_COMMAND)); /* silence valgrind. if we ever serialize structs properly, remove */ + w = esl_stopwatch_Create(); + + for ( ; ; ) { + + /* wait for the next search object */ + if ((n = pthread_mutex_lock (&data->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* wait for the master's signal to start the calculations */ + while (worker->cmd == NULL) { + if ((n = pthread_cond_wait(&data->start_cond, &data->work_mutex)) != 0) LOG_FATAL_MSG("cond wait", n); + } + + if ((n = pthread_mutex_unlock (&data->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + if (worker->cmd->hdr.command == HMMD_CMD_SHUTDOWN) { + fd_set rset; + struct timeval tv; + + n = MSG_SIZE(worker->cmd); + if (writen(worker->sock_fd, worker->cmd, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + FD_ZERO(&rset); + FD_SET(worker->sock_fd, &rset); + + tv.tv_sec = 2; + tv.tv_usec = 0; + + if ((n = select(worker->sock_fd + 1, &rset, NULL, NULL, &tv)) < 0) { + p7_syslog(LOG_ERR,"[%s:%d] - select %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + } else { + if (n == 0) { + p7_syslog(LOG_ERR,"[%s:%d] - shutdown %s is not responding\n", __FILE__, __LINE__, worker->ip_addr); + } else { + n = sizeof(HMMD_HEADER); + if ((size = readn(worker->sock_fd, &cmd, n)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + } + if (cmd.hdr.command == HMMD_CMD_SHUTDOWN) { + p7_syslog(LOG_ERR,"[%s:%d] - shutting down %s\n", __FILE__, __LINE__, worker->ip_addr); + } else { + p7_syslog(LOG_ERR,"[%s:%d] - error shutting down %s - received %d\n", __FILE__, __LINE__, worker->ip_addr, cmd.hdr.command); + } + } + } + break; + } + + //printf ("Writing %d bytes to %s [MSG = %d/%d]\n", (int)MSG_SIZE(worker->cmd), worker->ip_addr, worker->cmd->hdr.command, worker->cmd->hdr.length); + + esl_stopwatch_Start(w); + + /* write search message in two parts */ + n = sizeof(HMMD_HEADER) + sizeof(HMMD_SEARCH_CMD); + memcpy(&cmd, worker->cmd, n); + cmd.srch.inx = worker->srch_inx; + cmd.srch.cnt = worker->srch_cnt; + if (writen(worker->sock_fd, &cmd, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + /* write remaining data, i.e. sequence, options etc. */ + ptr = (char *)worker->cmd; + ptr += n; + n = MSG_SIZE(worker->cmd) - n; + if (writen(worker->sock_fd, ptr, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + total = 0; + worker->total = 0; + + n = HMMD_SEARCH_STATUS_SERIAL_SIZE; + buf = malloc(n); + if (buf == NULL){ + LOG_FATAL_MSG("malloc", errno); + } + + total += n; + if ((size = readn(worker->sock_fd, buf, n)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + buf_position = 0; + if(hmmd_search_status_Deserialize(buf, &buf_position, &(worker->status)) != eslOK){ + LOG_FATAL_MSG("Couldn't deserialize HMMD_SEARCH_STATUS", errno); + } + + if (worker->status.status != eslOK) { + n = worker->status.msg_size; + total += n; + if ((worker->err_buf = malloc(n)) == NULL) LOG_FATAL_MSG("malloc", errno); + worker->err_buf[0] = 0; + if ((size = readn(worker->sock_fd, worker->err_buf, n)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + } else { + + // receive the results from the worker + buf = realloc(buf, worker->status.msg_size); + if(buf == NULL){ + LOG_FATAL_MSG("malloc", errno); + } + + total += worker->status.msg_size; + if ((size = readn(worker->sock_fd, buf, worker->status.msg_size)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + buf_position = 0; // start at beginning of new buffer of data + // Now, serialize the data structures out of it + if(p7_hmmd_search_stats_Deserialize(buf, &buf_position, &(worker->stats)) != eslOK){ + LOG_FATAL_MSG("Couldn't deserialize HMMD_SEARCH_STATS", errno); + } + stats = &worker->stats; + if(stats->nhits > 0){ + worker->hits = malloc(stats->nhits * sizeof(P7_HIT *)); + if(worker->hits == NULL){ + LOG_FATAL_MSG("malloc", errno); + } + worker->allocated_hits = stats->nhits; // Need this if we have to destroy the worker because of an error + /* read in the hits */ + for(int i = 0; i < stats->nhits; i++){ + worker->hits[i] = p7_hit_Create_empty(); + if(worker->hits[i] == NULL){ + LOG_FATAL_MSG("malloc", errno); + } + if(p7_hit_Deserialize(buf, &buf_position, worker->hits[i]) != eslOK){ + LOG_FATAL_MSG("Couldn't deserialize P7_HIT", errno); + } + } + } + free(buf); + } + + /* We've just allocated an array of pointers to P7_HIT objects and a bunch of P7_HIT + objects that we don't free in this function. Here's what happens to them. gather_results() assembles + all of the P7_HIT objects from the different workers into one big list, which it passes to forward_results(). + gather_results() frees each worker's array of pointers to P7_HIT objects, and forward_results is responsible for + freeing all of the P7_HIT objects when it's done with them */ + + esl_stopwatch_Stop(w); + + if ((n = pthread_mutex_lock (&data->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* set the state of the worker to completed */ + worker->cmd = NULL; + worker->completed = 1; + worker->total = total; + ++data->completed; + + /* notify the master that a worker has completed */ + if ((n = pthread_cond_broadcast(&data->complete_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n); + if ((n = pthread_mutex_unlock (&data->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + printf ("WORKER %s COMPLETED: %.2f sec received %d bytes\n", worker->ip_addr, w->elapsed, total); + fflush(stdout); + } + + esl_stopwatch_Destroy(w); + + return; +} + +static void * +workerside_thread(void *arg) +{ + HMMD_COMMAND *cmd = NULL; + WORKER_DATA *worker = (WORKER_DATA *)arg; + WORKERSIDE_ARGS *parent = (WORKERSIDE_ARGS *)worker->parent; + HMMD_HEADER hdr; + int n; + int fd = 0; + int version; + int updated; + int status = eslOK; + char *p; + + memset(&hdr, 0, sizeof(HMMD_HEADER)); /* silence valgrind; remove if/when we serialize structs properly */ + + /* Guarantees that thread resources are deallocated upon return */ + pthread_detach(pthread_self()); + + printf("Handling worker %s (%d)\n", worker->ip_addr, worker->sock_fd); + fflush(stdout); + + updated = 0; + while (!updated) { + /* get the database version to load */ + if ((n = pthread_mutex_lock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + version = parent->db_version; + if ((n = pthread_mutex_unlock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + n = sizeof(HMMD_COMMAND); + if (parent->seq_db != NULL) n += strlen(parent->seq_db->name) + 1; + if (parent->hmm_db != NULL) n += strlen(parent->hmm_db->name) + 1; + + cmd = malloc(n); + if (cmd == NULL) { + p7_syslog(LOG_ERR,"[%s:%d] - malloc %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + goto EXIT; + } + memset(cmd, 0, n); + + cmd->hdr.length = n - sizeof(HMMD_HEADER); + cmd->hdr.command = HMMD_CMD_INIT; + + p = cmd->init.data; + + if (parent->seq_db != NULL) { + cmd->init.db_cnt = parent->seq_db->db_cnt; + cmd->init.seq_cnt = parent->seq_db->count; + cmd->init.seqdb_off = p - cmd->init.data; + + strncpy(cmd->init.sid, parent->seq_db->id, sizeof(cmd->init.sid)); + cmd->init.sid[sizeof(cmd->init.sid)-1] = 0; + + strcpy(p, parent->seq_db->name); + p += strlen(parent->seq_db->name) + 1; + } + + if (parent->hmm_db != NULL) { + cmd->init.hmm_cnt = 1; + cmd->init.model_cnt = parent->hmm_db->n; + cmd->init.hmmdb_off = p - cmd->init.data; + + //strncpy(cmd->init.hid, parent->hmm_db->id, sizeof(cmd->init.hid)); + //cmd->init.hid[sizeof(cmd->init.hid)-1] = 0; + + strcpy(p, parent->hmm_db->name); + p += strlen(parent->hmm_db->name) + 1; + } + + if (writen(worker->sock_fd, cmd, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing (%d) error %d - %s\n", __FILE__, __LINE__, worker->sock_fd, errno, strerror(errno)); + status = eslFAIL; + } + + /* process the init command first */ + if (readn(worker->sock_fd, &hdr, sizeof(hdr)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading (%d) error %d - %s\n", __FILE__, __LINE__, worker->sock_fd, errno, strerror(errno)); + status = eslFAIL; + } + + /* cmd is a HMMD_COMMAND. + * consists of HMMD_HEADER: length, command, status + * and a union of HMMD_INIT_CMD, HMMD_SEARCH_COMMAND, HMMD_INIT_RESET. + * we know which is valid, from hdr.command + * the total malloc size for an HMMD_COMMAND is calculated from the header, using MSG_SIZE(cmd) + */ + n = MSG_SIZE(&hdr); + if ((cmd = realloc(cmd, n)) == NULL) { + p7_syslog(LOG_ERR,"[%s:%d] - realloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + status = eslFAIL; + } + if (readn(worker->sock_fd, &(cmd->init), hdr.length) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading (%d) error %d - %s\n", __FILE__, __LINE__, worker->sock_fd, errno, strerror(errno)); + status = eslFAIL; + } + + /* validate the database of the worker before adding him to the list */ + if (hdr.command != HMMD_CMD_INIT) { + p7_syslog(LOG_ERR,"[%s:%d] - expecting HMMD_CMD_INIT %d\n", __FILE__, __LINE__, hdr.command); + status = eslFAIL; + } + if (cmd->hdr.status != eslOK) { + p7_syslog(LOG_ERR,"[%s:%d] - workers init status failed %d\n", __FILE__, __LINE__, cmd->hdr.status); + status = eslFAIL; + } + + worker->next = NULL; + worker->prev = NULL; + + /* add the worker to the pending list */ + if ((n = pthread_mutex_lock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + assert(validate_workers(parent)); + + /* make sure the master has not loaded a new database while we were waiting + * for the worker to load and verify the database we started out this. If + * the version has changed, force the worker to reload and verify. + */ + if (version == parent->db_version) { + if (status == eslOK) { + worker->next = parent->pending; + parent->pending = worker; + ++parent->pend_cnt; + } else { + worker->next = parent->idling; + parent->idling = worker; + ++parent->idle_cnt; + } + updated = 1; + } + + assert(validate_workers(parent)); + + if ((n = pthread_mutex_unlock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + } + + printf("Pending worker %s (%d)\n", worker->ip_addr, worker->sock_fd); + fflush(stdout); + + workerside_loop(parent, worker); + + if ((n = pthread_mutex_lock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + fd = worker->sock_fd; + + ++parent->failed; + ++parent->completed; + + worker->terminated = 1; + worker->total = 0; + worker->sock_fd = -1; + + assert(validate_workers(parent)); + + /* notify the master that a worker has completed */ + if ((n = pthread_cond_broadcast(&parent->complete_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n); + if ((n = pthread_mutex_unlock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + EXIT: + printf("Closing worker %s (%d)\n", worker->ip_addr, fd); + fflush(stdout); + + if (cmd != NULL) free(cmd); + close(fd); + + pthread_exit(NULL); +} + +static void * +worker_comm_thread(void *arg) +{ + int n; + int fd; + int addrlen; + pthread_t thread_id; + + struct sockaddr_in addr; + + WORKERSIDE_ARGS *data = (WORKERSIDE_ARGS *)arg; + WORKER_DATA *worker; + + for ( ;; ) { + + /* Wait for a worker to connect */ + n = sizeof(addr); + if ((fd = accept(data->sock_fd, (struct sockaddr *)&addr, (unsigned int *)&n)) < 0) LOG_FATAL_MSG("accept", errno); + + if ((worker = malloc(sizeof(WORKER_DATA))) == NULL) LOG_FATAL_MSG("thread create", errno); + memset(worker, 0, sizeof(WORKER_DATA)); + + worker->parent = data; + worker->sock_fd = fd; + worker->allocated_hits = 0; // These may be redundant because of the memset earlier, but better safe than sorry + worker->hits = NULL; + + addrlen = sizeof(worker->ip_addr); + strncpy(worker->ip_addr, inet_ntoa(addr.sin_addr), addrlen); + worker->ip_addr[addrlen-1] = 0; + + if ((n = pthread_create(&thread_id, NULL, workerside_thread, worker)) != 0) LOG_FATAL_MSG("thread create", n); + } + + pthread_exit(NULL); +} + +static void +setup_workerside_comm(ESL_GETOPTS *opts, WORKERSIDE_ARGS *args) +{ + int n; + int reuse; + int sock_fd; + pthread_t thread_id; + + struct linger linger; + struct sockaddr_in addr; + + /* Create socket for incoming connections */ + if ((sock_fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) LOG_FATAL_MSG("socket", errno); + + /* incase the server went down in an ungraceful way, allow the port to be + * reused avoiding the timeout. + */ + reuse = 1; + if (setsockopt(sock_fd, SOL_SOCKET, SO_REUSEADDR, (void *)&reuse, sizeof(reuse)) < 0) LOG_FATAL_MSG("setsockopt", errno); + + /* the sockets are never closed, so if the server exits, force the kernel to + * close the socket and clear it so the server can be restarted immediately. + */ + linger.l_onoff = 1; + linger.l_linger = 0; + if (setsockopt(sock_fd, SOL_SOCKET, SO_LINGER, (void *)&linger, sizeof(linger)) < 0) LOG_FATAL_MSG("setsockopt", errno); + + /* Construct local address structure */ + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_ANY); + addr.sin_port = htons(esl_opt_GetInteger(opts, "--wport")); + + /* Bind to the local address */ + if (bind(sock_fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) LOG_FATAL_MSG("bind", errno); + + /* Mark the socket so it will listen for incoming connections */ + if (listen(sock_fd, esl_opt_GetInteger(opts, "--wcncts")) < 0) LOG_FATAL_MSG("listen", errno); + + args->sock_fd = sock_fd; + + if ((n = pthread_create(&thread_id, NULL, worker_comm_thread, (void *)args)) != 0) LOG_FATAL_MSG("thread create", n); +} + +#endif /*HMMER_THREADS*/ + + + diff --git a/bioinformaticsProject/hmmer/src/hmmdmstr_shard.c b/bioinformaticsProject/hmmer/src/hmmdmstr_shard.c new file mode 100644 index 0000000..38ffe26 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmdmstr_shard.c @@ -0,0 +1,1966 @@ +/* master side of the hmmpgmd daemon + * MSF, Thu Aug 12, 2010 [Janelia] + */ +#include "p7_config.h" + +#ifdef HMMER_THREADS + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_NETINET_IN_H +#include /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */ +#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */ +#include +#include +#include +#include + +#ifndef HMMER_THREADS +#error "Program requires pthreads be enabled." +#endif /*HMMER_THREADS*/ +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stack.h" +#include "esl_stopwatch.h" +#include "esl_threads.h" + +#include "hmmer.h" +#include "hmmpgmd.h" +#include "hmmpgmd_shard.h" +#include "cachedb.h" +#include "cachedb_shard.h" +#include "p7_hmmcache.h" + +#define MAX_WORKERS 64 +#define MAX_BUFFER 4096 + +#define CONF_FILE "/etc/hmmpgmd.conf" +#define INVALID_IP 0xfefefefe // 254.254.254.254 is supposed to be in the "reserved for future use" range of IPs, so we + // should never see one + +typedef struct { + HMMD_SEARCH_STATS stats; + HMMD_SEARCH_STATUS status; + P7_HIT **hits; + int nhits; + int db_inx; + int db_cnt; + int errors; +} SEARCH_RESULTS; + +typedef struct { + int sock_fd; + char ip_addr[64]; + + ESL_STACK *cmdstack; /* stack of commands that clients want done */ +} CLIENTSIDE_ARGS; + +typedef struct { + int sock_fd; + + pthread_mutex_t work_mutex; + pthread_cond_t start_cond; + pthread_cond_t complete_cond; + + int db_version; + P7_SEQCACHE *seq_db; + P7_HMMCACHE *hmm_db; + + int ready; + int failed; + struct worker_s *head; + struct worker_s *tail; + + int pend_cnt; + struct worker_s *pending; + + int idle_cnt; + struct worker_s *idling; + + RANGE_LIST *range_list; /* (optional) list of ranges searched within the seqdb */ + + int completed; + uint32_t num_shards; // new for sharding + uint32_t *worker_ips; // IP addresses of the workers we've connected to + +} WORKERSIDE_ARGS; + +typedef struct worker_s { + int sock_fd; + char ip_addr[64]; + + int completed; + int terminated; + HMMD_COMMAND_SHARD *cmd; + + uint32_t srch_inx; + uint32_t srch_cnt; + + HMMD_SEARCH_STATS stats; + HMMD_SEARCH_STATUS status; + char *err_buf; + P7_HIT **hits; + uint32_t allocated_hits; + int total; + + WORKERSIDE_ARGS *parent; + + struct worker_s *next; + struct worker_s *prev; + uint32_t num_shards; // New for sharding + uint32_t my_shard; // New for sharding +} WORKER_DATA; + +static void +free_QueueData_shard(QUEUE_DATA_SHARD *data) +{ + /* free the query data */ + esl_getopts_Destroy(data->opts); + + if (data->abc != NULL) esl_alphabet_Destroy(data->abc); + if (data->hmm != NULL) p7_hmm_Destroy(data->hmm); + if (data->seq != NULL) esl_sq_Destroy(data->seq); + if (data->cmd != NULL) free(data->cmd); + memset(data, 0, sizeof(*data)); + free(data); +} + +static void setup_clientside_comm(ESL_GETOPTS *opts, CLIENTSIDE_ARGS *args); +static void setup_workerside_comm(ESL_GETOPTS *opts, WORKERSIDE_ARGS *args); + +static void destroy_worker(WORKER_DATA *worker); + +static void init_results(SEARCH_RESULTS *results); +static void clear_results(WORKERSIDE_ARGS *comm, SEARCH_RESULTS *results); +static void gather_results(QUEUE_DATA_SHARD *query, WORKERSIDE_ARGS *comm, SEARCH_RESULTS *results); +static void forward_results(QUEUE_DATA_SHARD *query, SEARCH_RESULTS *results); + +static void print_client_msg(int fd, int status, char *format, va_list ap) +{ + uint32_t nalloc =0; + uint32_t buf_offset = 0; + uint8_t *buf = NULL; + char ebuf[512]; + + HMMD_SEARCH_STATUS s; + + memset(&s, 0, sizeof(HMMD_SEARCH_STATUS)); + + s.status = status; + s.msg_size = vsnprintf(ebuf, sizeof(ebuf), format, ap) +1; /* +1 because we send the \0 */ + + p7_syslog(LOG_ERR, ebuf); + + if(hmmd_search_status_Serialize(&s, &buf, &buf_offset, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATUS failed", errno); + } + /* send back an unsuccessful status message */ + + if (writen(fd, buf, buf_offset) != buf_offset) { + p7_syslog(LOG_ERR,"[%s:%d] - writing (%d) error %d - %s\n", __FILE__, __LINE__, fd, errno, strerror(errno)); + return; + } + if (writen(fd, ebuf, s.msg_size) != s.msg_size) { + p7_syslog(LOG_ERR,"[%s:%d] - writing (%d) error %d - %s\n", __FILE__, __LINE__, fd, errno, strerror(errno)); + return; + } + + free(buf); +} + +static void +client_msg(int fd, int status, char *format, ...) +{ + va_list ap; + + va_start(ap, format); + print_client_msg(fd, status, format, ap); + va_end(ap); +} + +static void +client_msg_longjmp(int fd, int status, jmp_buf *env, char *format, ...) +{ + va_list ap; + + va_start(ap, format); + print_client_msg(fd, status, format, ap); + va_end(ap); + + longjmp(*env, 1); +} + +static int +validate_workers(WORKERSIDE_ARGS *args) +{ + int ready = 0; + int failed = 0; + int pending = 0; + int idling = 0; + + WORKER_DATA *worker = NULL; + WORKER_DATA *tail = NULL; + + /* count the idling workers */ + worker = args->idling; + while (worker != NULL) { + ++idling; + if (worker->terminated) ++failed; + worker = worker->next; + } + assert(idling == args->idle_cnt); + + /* count the pending workers */ + worker = args->pending; + while (worker != NULL) { + ++pending; + if (worker->terminated) ++failed; + worker = worker->next; + } + assert(pending == args->pend_cnt); + + if (args->head == NULL && args->tail == NULL) { + assert(failed == args->failed); + assert(ready == 0); + return 1; + } + + assert(args->head != NULL && args->tail != NULL); + assert(args->head->prev == NULL); + assert(args->tail->next == NULL); + + /* count the ready workers */ + worker = args->head; + while (worker != NULL) { + ++ready; + assert(worker->prev == tail); + assert(ready <= args->ready); + tail = worker; + if (worker->terminated) ++failed; + worker = worker->next; + } + assert(ready == args->ready); + assert(failed == args->failed); + assert(tail == args->tail); + + return 1; +} + +static void +update_workers(WORKERSIDE_ARGS *args) +{ + WORKER_DATA *worker = NULL; + + assert(validate_workers(args)); + + /* if there are any workers waiting to join, add them */ + while (args->pending != NULL) { + worker = args->pending; + args->pending = worker->next; + + worker->next = NULL; + if (args->head == NULL) { + args->head = worker; + worker->prev = NULL; + } else { + args->tail->next = worker; + worker->prev = args->tail; + } + args->tail = worker; + + args->pend_cnt--; + args->ready++; + } + + /* remove any workers who have failed */ + worker = args->head; + while (args->failed > 0 && worker != NULL) { + WORKER_DATA *next = worker->next; + if (worker->terminated) { + --args->failed; + --args->ready; + args->worker_ips[worker->my_shard] = INVALID_IP; // This worker is no longer responsible for a shard + if (args->head == worker && args->tail == worker) { + args->head = NULL; + args->tail = NULL; + } else if (args->head == worker) { + args->head = worker->next; + worker->next->prev = NULL; + } else if (args->tail == worker) { + args->tail = worker->prev; + worker->prev->next = NULL; + } else { + worker->next->prev = worker->prev; + worker->prev->next = worker->next; + } + destroy_worker(worker); + } + worker = next; + } + + assert(validate_workers(args)); +} + +static void +process_search(WORKERSIDE_ARGS *args, QUEUE_DATA_SHARD *query) +{ + ESL_STOPWATCH *w = NULL; /* timer used for profiling statistics */ + WORKER_DATA *worker = NULL; + SEARCH_RESULTS results; + int n; + int cnt; + int inx; + int ready_workers; /* counter variable used to track the number of workers currently available to receive work; short for "remaining", I imagine */ + int tries; + + memset(&results, 0, sizeof(SEARCH_RESULTS)); /* avoid valgrind bitching about uninit bytes; remove, if we ever serialize structs properly */ + + /* figure out the size of the database we are searching */ + if (query->cmd_type == HMMD_CMD_SEARCH) { + if((args->seq_db == NULL)||(args->seq_db->db == NULL)|| (query->dbx >= args->seq_db->db_cnt) || (query->dbx < 0)){ + // Client is attempting to search a database that does not exist, complain and abort search + client_msg(query->sock, eslFAIL, "Specified sequence database has not been loaded into the daemon. \n"); + return; + } + else{ + cnt = args->seq_db->db[query->dbx].count; + } + } else { + if(args->hmm_db == NULL){ + // Client is attempting to search a database that does not exist, complain and abort search + client_msg(query->sock, eslFAIL, "No HMM database has been loaded into the daemon. \n"); + return; + } + else{ + cnt = args->hmm_db->n; + } + } + + // Start stopwatch after we've determined that the search can proceed to simplify cleanup when it can't + w = esl_stopwatch_Create(); + esl_stopwatch_Start(w); + + init_results(&results); + + //if range(s) are given, count how many of the seqdb's sequences are within supplied range(s) + /* if (args->range_list) { // can only happen in HMMD_CMD_SEARCH case + int range_cnt = 0; // this will now count how many of the seqs in the db are within the range + for (i=0; iseq_db->list[i].idx, args->range_list ) ) + range_cnt++; + } + cnt = range_cnt; + } + */ + + + inx = 0; + tries = 0; + do { + /* process any changes to the available workers */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* build a list of the currently available workers */ + update_workers(args); + + /* if there aren't enough workers ready, report an error */ + if (args->ready == args->num_shards) { + ready_workers = args->ready; + + /* update the workers search information */ + worker = args->head; + + while (worker != NULL) { + worker->cmd = query->cmd; + worker->completed = 0; + worker->total = 0; + + /* assign each worker a portion of the database */ + worker->srch_inx = inx; + if (args->range_list) { + /* old code for non-sharded database. For sharded database, each worker should be told to search the entire range of the + search, because a worker only has 1/nth of the database + // if ranges are given, need to split the db list based on which elements in the list are within the given range(s) + int goal = cnt / ready_workers; //how many within-range sequences do I want to ask this worker to handle + int curr = 0; //how many within-range sequences have I seen since the start of this full-db range + worker->srch_cnt = 0; + while (curr < goal) { + if ( hmmpgmd_IsWithinRanges (args->seq_db->list[inx].idx, args->range_list ) ) + curr++; + worker->srch_cnt++; + inx++; + } + cnt -= curr; + */ + worker->srch_cnt = cnt; + } else { + if(query->cmd_type == HMMD_CMD_SEARCH){ + // This is a sharded hmmsearch, so each worker should be told to search the entire db range, which + // will cause them to search their entire shard + worker->srch_cnt = cnt; + } + else{ + // This is a hmmscan, so the database is not sharded and each worker should be told to search a fraction of it + worker->srch_cnt = cnt / ready_workers; + inx += worker->srch_cnt; + cnt -= worker->srch_cnt; + } + } + + --ready_workers; + worker = worker->next; + } + + args->completed = 0; + + /* notify all the worker threads of the new query */ + if ((n = pthread_cond_broadcast(&args->start_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n); + } + + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + if (args->ready > 0) { + /* Wait for all the workers to complete */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + while (args->completed < args->ready) { + if ((n = pthread_cond_wait (&args->complete_cond, &args->work_mutex)) != 0) LOG_FATAL_MSG("cond wait", n); + } + + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + } + + /* gather up the results from all the workers */ + gather_results(query, args, &results); + + /* we can recover from one worker crashing. get the block that worker ran on + * and redistribute its load to all the remaining workers. + */ + inx = results.db_inx; + cnt = results.db_cnt; + ++tries; + + } while (args->ready > 0 && results.errors == 1 && tries < 2); + + + esl_stopwatch_Stop(w); + + /* copy the search stats */ + results.stats.elapsed = w->elapsed; + results.stats.user = w->user; + results.stats.sys = w->sys; + results.stats.hit_offsets = NULL; // set this to make sure we allocate memory later + /* TODO: check for errors */ + if (args->ready != args->num_shards) { + client_msg(query->sock, eslFAIL, "Not enough compute nodes available for the number of shards specified. %d nodes available, %d required\n", args->ready, args->num_shards); + } else if (args->failed > 0) { + client_msg(query->sock, eslFAIL, "Errors running search\n"); + clear_results(args, &results); + } else { + forward_results(query, &results); + } + + esl_stopwatch_Destroy(w); +} + + +static void +process_shutdown(WORKERSIDE_ARGS *args, QUEUE_DATA_SHARD *query) +{ + int n; + int cnt; + + HMMD_COMMAND_SHARD cmd; + + WORKER_DATA *worker = NULL; + + /* process any changes to the available workers */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* build a list of the currently available workers */ + update_workers(args); + + /* reset all the idle and active workers */ + cnt = 0; + + /* build a reset command */ + cmd.hdr.length = 0; + cmd.hdr.command = HMMD_CMD_SHUTDOWN; + + /* look for the active workers to shutdown */ + worker = args->head; + while (worker != NULL) { + worker->cmd = &cmd; + worker->completed = 0; + worker->total = 0; + + worker = worker->next; + ++cnt; + } + + /* look for the idle workers to shutdown */ + worker = args->idling; + while (worker != NULL) { + worker->cmd = &cmd; + worker->completed = 0; + worker->total = 0; + + worker = worker->next; + ++cnt; + } + + /* check if there are any workers to shutdown */ + if (cnt > 0) { + args->completed = 0; + + /* notify all the worker threads of the new query */ + if ((n = pthread_cond_broadcast(&args->start_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n); + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + /* Wait for all the workers to complete */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + while (args->completed < cnt) { + if ((n = pthread_cond_wait (&args->complete_cond, &args->work_mutex)) != 0) LOG_FATAL_MSG("cond wait", n); + } + } + + /* build a list of the currently available workers */ + update_workers(args); + + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); +} + + +void +master_process_shard(ESL_GETOPTS *go) +{ + P7_SEQCACHE *seq_db = NULL; + P7_HMMCACHE *hmm_db = NULL; + ESL_STACK *cmdstack = NULL; /* stack of commands that clients want done */ + QUEUE_DATA_SHARD *query = NULL; + CLIENTSIDE_ARGS client_comm; + WORKERSIDE_ARGS worker_comm; + int n, i; + int shutdown; + char errbuf[eslERRBUFSIZE]; + int status = eslOK; + + impl_Init(); + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + + if (esl_opt_IsUsed(go, "--seqdb")) { + char *name = esl_opt_GetString(go, "--seqdb"); + if ((status = p7_seqcache_Open_master(name, &seq_db, errbuf)) != eslOK) + p7_Fail("Failed to cache %s (%d)", name, status); + + } + + if (esl_opt_IsUsed(go, "--hmmdb")) { + char *name = esl_opt_GetString(go, "--hmmdb"); + + status = p7_hmmcache_Open(name, &hmm_db, errbuf); + if (status == eslENOTFOUND) p7_Fail("Failed to open profile database %s\n %s\n", name, errbuf); + else if (status == eslEFORMAT) p7_Fail("Failed to parse profile database %s\n %s\n", name, errbuf); + else if (status == eslEINCOMPAT) p7_Fail("Mismatched alphabets in profile db %s\n %s\n", name, errbuf); + else if (status != eslOK) p7_Fail("Failed to load profile db %s : code %d\n", name, status); + + p7_hmmcache_SetNumericNames(hmm_db); + + printf("Loaded profile db %s; models: %d memory: %" PRId64 "\n", + name, hmm_db->n, (uint64_t) p7_hmmcache_Sizeof(hmm_db)); + } + + /* if stdout is redirected at the commandline, it causes printf's to be buffered, + * which means status logging isn't printed. This line strongly requests unbuffering, + * which should be ok, given the low stdout load of hmmpgmd + */ + setvbuf (stdout, NULL, _IONBF, BUFSIZ); + printf("Data loaded into memory. Master is ready.\n"); + setvbuf (stdout, NULL, _IOFBF, BUFSIZ); + + /* initialize the search stack, set it up for interthread communication */ + cmdstack = esl_stack_PCreate(); + esl_stack_UseMutex(cmdstack); + esl_stack_UseCond(cmdstack); + + /* start the communications with the web clients */ + client_comm.cmdstack = cmdstack; + setup_clientside_comm(go, &client_comm); + + /* initialize the worker structure */ + if ((n = pthread_mutex_init(&worker_comm.work_mutex, NULL)) != 0) LOG_FATAL_MSG("mutex init", n); + if ((n = pthread_cond_init(&worker_comm.start_cond, NULL)) != 0) LOG_FATAL_MSG("cond init", n); + if ((n = pthread_cond_init(&worker_comm.complete_cond, NULL)) != 0) LOG_FATAL_MSG("cond init", n); + + worker_comm.sock_fd = -1; + worker_comm.head = NULL; + worker_comm.tail = NULL; + worker_comm.pending = NULL; + worker_comm.idling = NULL; + worker_comm.seq_db = seq_db; + worker_comm.hmm_db = hmm_db; + worker_comm.db_version = 1; + worker_comm.num_shards = esl_opt_GetInteger(go, "--num_shards"); + ESL_ALLOC(worker_comm.worker_ips, worker_comm.num_shards * sizeof(uint32_t)); + for(i = 0; i < worker_comm.num_shards; i++){ + worker_comm.worker_ips[i] = INVALID_IP; + } + + worker_comm.ready = 0; + worker_comm.failed = 0; + worker_comm.pend_cnt = 0; + worker_comm.idle_cnt = 0; + + setup_workerside_comm(go, &worker_comm); + + /* read query hmm/sequence + * the PPop() will wait until a client pushes a command to the queue + */ + shutdown = 0; + while (!shutdown && esl_stack_PPop(cmdstack, (void **) &query) == eslOK) { + printf("Processing command %d from %s\n", query->cmd_type, query->ip_addr); + fflush(stdout); + + worker_comm.range_list = NULL; + + switch(query->cmd_type) { + case HMMD_CMD_SEARCH: + if (esl_opt_IsUsed(query->opts, "--seqdb_ranges")) { + ESL_ALLOC(worker_comm.range_list, sizeof(RANGE_LIST)); + hmmpgmd_GetRanges(worker_comm.range_list, esl_opt_GetString(query->opts, "--seqdb_ranges")); + } + process_search(&worker_comm, query); + break; + case HMMD_CMD_SCAN: process_search(&worker_comm, query); break; + case HMMD_CMD_SHUTDOWN: + process_shutdown(&worker_comm, query); + p7_syslog(LOG_ERR,"[%s:%d] - shutting down...\n", __FILE__, __LINE__); + shutdown = 1; + break; + default: + p7_syslog(LOG_ERR,"[%s:%d] - unknown command %d from %s\n", __FILE__, __LINE__, query->cmd_type, query->ip_addr); + break; + } + + free_QueueData_shard(query); + } + + esl_stack_ReleaseCond(cmdstack); + + if (hmm_db) p7_hmmcache_Close(hmm_db); + if (seq_db) p7_seqcache_Close(seq_db); + + esl_stack_Destroy(cmdstack); + + pthread_mutex_destroy(&worker_comm.work_mutex); + pthread_cond_destroy(&worker_comm.start_cond); + pthread_cond_destroy(&worker_comm.complete_cond); + + + if (worker_comm.range_list) { + if (worker_comm.range_list->starts) free(worker_comm.range_list->starts); + if (worker_comm.range_list->ends) free(worker_comm.range_list->ends); + free (worker_comm.range_list); + } + free(worker_comm.worker_ips); + return; + + +ERROR: + p7_Fail("Memory allocation error. Code: %d\n", status); + +} + +// Qsort comparison function to sort a list of pointers to P7_HITs +static int +hit_sorter2(const void *p1, const void *p2) +{ + int cmp; + + const P7_HIT *h1 = *((P7_HIT **) p1); + const P7_HIT *h2 = *((P7_HIT **) p2); + + cmp = (h1->sortkey < h2->sortkey); + cmp -= (h1->sortkey > h2->sortkey); + + return cmp; +} + + +static void +init_results(SEARCH_RESULTS *results) +{ + results->status.status = eslOK; + results->status.msg_size = 0; + + results->stats.nhits = 0; + results->stats.nreported = 0; + results->stats.nincluded = 0; + + results->stats.nmodels = 0; + results->stats.nseqs = 0; + results->stats.n_past_msv = 0; + results->stats.n_past_bias = 0; + results->stats.n_past_vit = 0; + results->stats.n_past_fwd = 0; + results->stats.Z = 0; + + results->hits = NULL; + results->nhits = 0; + results->db_inx = 0; + results->db_cnt = 0; + results->errors = 0; +} + + +static void +gather_results(QUEUE_DATA_SHARD *query, WORKERSIDE_ARGS *comm, SEARCH_RESULTS *results) +{ + int cnt; + int n; + + WORKER_DATA *worker; + + /* allocate spaces to hold all the hits */ + cnt = results->nhits + MAX_WORKERS; + if ((results->hits = realloc(results->hits, sizeof(P7_HIT *) * cnt)) == NULL) LOG_FATAL_MSG("malloc", errno); + + /* lock the workers until we have merged the results */ + if ((n = pthread_mutex_lock (&comm->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* count the number of hits */ + cnt = results->nhits; + worker = comm->head; + while (worker != NULL) { + if (worker->completed) { + uint32_t previous_hits = results->stats.nhits; + + results->stats.nhits += worker->stats.nhits; + results->stats.nreported += worker->stats.nreported; + results->stats.nincluded += worker->stats.nincluded; + + results->stats.n_past_msv += worker->stats.n_past_msv; + results->stats.n_past_bias += worker->stats.n_past_bias; + results->stats.n_past_vit += worker->stats.n_past_vit; + results->stats.n_past_fwd += worker->stats.n_past_fwd; + + results->stats.Z_setby = worker->stats.Z_setby; + results->stats.domZ_setby = worker->stats.domZ_setby; + results->stats.domZ = worker->stats.domZ; + results->stats.Z = worker->stats.Z; + + results->status.msg_size += worker->status.msg_size - sizeof(HMMD_SEARCH_STATS); + if((results->stats.nhits- previous_hits) >0){ // There are new hits to deal with + // Add enough space to the list of hits for all the hits from this worker + results->hits = realloc(results->hits, results->stats.nhits * sizeof (P7_HIT *)); + if(results->hits == NULL){ + LOG_FATAL_MSG("malloc", n); + } + + // copy this worker's hits into the global list + for(int i0 = 0, i1 = previous_hits; i1 < results->stats.nhits; i0++, i1++){ + results->hits[i1] = worker->hits[i0]; + } + + free(worker->hits); // Free the worker's array of pointers to hits. The hits themselves + // will be freed by forward_results() + + worker->hits = NULL; + } + worker->completed = 0; + ++cnt; + } else { + results->errors++; + results->db_inx = worker->srch_inx; + results->db_cnt = worker->srch_cnt; + } + + worker = worker->next; + } + + if ((n = pthread_mutex_unlock (&comm->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + if (query->cmd_type == HMMD_CMD_SEARCH) { + results->stats.nmodels = 1; + results->stats.nseqs = comm->seq_db->db[query->dbx].K; + } else { + results->stats.nseqs = 1; + results->stats.nmodels = comm->hmm_db->n; + } + + if (results->stats.Z_setby == p7_ZSETBY_NTARGETS) { + results->stats.Z = (query->cmd_type == HMMD_CMD_SEARCH) ? results->stats.nseqs : results->stats.nmodels; + } + + results->nhits = cnt; + +} + +static void +forward_results(QUEUE_DATA_SHARD *query, SEARCH_RESULTS *results) +{ + P7_TOPHITS th; + P7_PIPELINE *pli = NULL; + P7_DOMAIN **dcl = NULL; + P7_HIT *hits = NULL; + int fd; + int n; + uint8_t **buf, **buf2, **buf3, *buf_ptr, *buf2_ptr, *buf3_ptr; + uint32_t nalloc, nalloc2, nalloc3, buf_offset, buf_offset2, buf_offset3; + enum p7_pipemodes_e mode; + + // Initialize these pointers-to-pointers that we'll use for sending data + buf_ptr = NULL; + buf = &(buf_ptr); + buf2_ptr = NULL; + buf2 = &(buf2_ptr); + buf3_ptr = NULL; + buf3 = &(buf3_ptr); + + fd = query->sock; + + if (query->cmd_type == HMMD_CMD_SEARCH) mode = p7_SEARCH_SEQS; + else mode = p7_SCAN_MODELS; + + /* sort the hits and apply score and E-value thresholds */ + if (results->nhits > 0) { + if(results->stats.hit_offsets != NULL){ + if ((results->stats.hit_offsets = realloc(results->stats.hit_offsets, results->stats.nhits * sizeof(uint64_t))) == NULL) LOG_FATAL_MSG("malloc", errno); + } + else{ + if ((results->stats.hit_offsets = malloc(results->stats.nhits * sizeof(uint64_t))) == NULL) LOG_FATAL_MSG("malloc", errno); + } + + // sort the hits + qsort(results->hits, results->stats.nhits, sizeof(P7_HIT *), hit_sorter2); + + th.unsrt = NULL; + th.N = results->stats.nhits; + th.nreported = 0; + th.nincluded = 0; + th.is_sorted_by_sortkey = 0; + th.is_sorted_by_seqidx = 0; + + pli = p7_pipeline_Create(query->opts, 100, 100, FALSE, mode); + pli->nmodels = results->stats.nmodels; + pli->nseqs = results->stats.nseqs; + pli->n_past_msv = results->stats.n_past_msv; + pli->n_past_bias = results->stats.n_past_bias; + pli->n_past_vit = results->stats.n_past_vit; + pli->n_past_fwd = results->stats.n_past_fwd; + + pli->Z = results->stats.Z; + pli->domZ = results->stats.domZ; + pli->Z_setby = results->stats.Z_setby; + pli->domZ_setby = results->stats.domZ_setby; + + + th.hit = results->hits; + + p7_tophits_Threshold(&th, pli); + + /* after the top hits thresholds are checked, the number of sequences + * and domains to be reported can change. */ + results->stats.nreported = th.nreported; + results->stats.nincluded = th.nincluded; + results->stats.domZ = pli->domZ; + results->stats.Z = pli->Z; + } + + /* Build the buffers of serialized results we'll send back to the client. + Use three buffers, one for each object, because we need to build them in reverse order. + We need to serialize the hits to build the hits_offset array in HMMD_SEARCH_STATS. + We need the length of the serialized hits and HMMD_SEARCH_STATS objects to fill out the msg_size + field in status, but we want to send status, then stats, then hits */ + + nalloc = 0; + buf_offset = 0; + + // First, the buffer of hits + for(int i =0; i< results->stats.nhits; i++){ + + results->stats.hit_offsets[i] = buf_offset; + if(p7_hit_Serialize(results->hits[i], buf, &buf_offset, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing P7_HIT failed", errno); + } + + } + if(results->stats.nhits == 0){ + results->stats.hit_offsets = NULL; + } + + // Second, the buffer with the HMMD_SEARCH_STATS object + + buf_offset2 = 0; + nalloc2 = 0; + if(p7_hmmd_search_stats_Serialize(&(results->stats), buf2, &buf_offset2, &nalloc2) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATS failed", errno); + } + + results->status.msg_size = buf_offset + buf_offset2; // set size of second message + + // Third, the buffer with the HMMD_SEARCH_STATUS object + buf_offset3 = 0; + nalloc3 = 0; + if(hmmd_search_status_Serialize(&(results->status), buf3, &buf_offset3, &nalloc3) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATUS failed", errno); + } + + // Now, send the buffers in the reverse of the order they were built + /* send back a successful status message */ + n = buf_offset3; + + if (writen(fd, buf3_ptr, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, query->ip_addr, errno, strerror(errno)); + goto CLEAR; + } + + // and the stats object + n=buf_offset2; + + if (writen(fd, buf2_ptr, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, query->ip_addr, errno, strerror(errno)); + goto CLEAR; + } + printf("%p\n", results->hits[1]); + // and finally the hits + n=buf_offset; + + if (writen(fd, buf_ptr, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, query->ip_addr, errno, strerror(errno)); + goto CLEAR; + } + printf("Results for %s (%d) sent %" PRId64 " bytes\n", query->ip_addr, fd, results->status.msg_size); + printf("Hits:%"PRId64 " reported:%" PRId64 " included:%"PRId64 "\n", results->stats.nhits, results->stats.nreported, results->stats.nincluded); + fflush(stdout); + + CLEAR: + /* free all the data */ + for(int i = 0; i < results->stats.nhits; i++){ + p7_hit_Destroy(results->hits[i]); + } + + free(results->hits); + results->hits = NULL; + + if (pli) p7_pipeline_Destroy(pli); + if (hits) free(hits); + if (dcl) free(dcl); + if(buf_ptr != NULL){ + free(buf_ptr); + } + if(buf2_ptr != NULL){ + free(buf2_ptr); + } + if(buf3_ptr != NULL){ + free(buf3_ptr); + } + if(results->stats.hit_offsets != NULL){ + free(results->stats.hit_offsets); + } + init_results(results); + return; +} + +static void +destroy_worker(WORKER_DATA *worker) +{ + if (worker == NULL) { + if (worker->err_buf != NULL) free(worker->err_buf); + if (worker->hits != NULL){ + for(int i = 0; i < worker->allocated_hits; i++){ + p7_hit_Destroy(worker->hits[i]); + } + free(worker->hits); + } + memset(worker, 0, sizeof(WORKER_DATA)); + free(worker); + } +} + +static void +clear_results(WORKERSIDE_ARGS *args, SEARCH_RESULTS *results) +{ + int i; + int n; + WORKER_DATA *worker; + + /* lock the workers until we have freed the results */ + if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + assert(validate_workers(args)); + + /* free all the results */ + worker = args->head; + while (worker != NULL) { + if (worker->err_buf != NULL) free(worker->err_buf); + if(worker->hits != NULL){ + for(int i =0; i < worker->allocated_hits; i++){ + p7_hit_Destroy(worker->hits[i]); + } + free(worker->hits); + worker->hits = NULL; + } + worker->err_buf = NULL; + + worker->completed = 0; + worker = worker->next; + } + + if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + for (i = 0; i < results->nhits; ++i) { + if (results->hits[i] != NULL) p7_hit_Destroy(results->hits[i]); + results->hits[i] = NULL; + } + + if (results->hits != NULL) free(results->hits); + init_results(results); +} + +static void +process_ServerCmd(char *ptr, CLIENTSIDE_ARGS *data) +{ + QUEUE_DATA_SHARD *parms = NULL; /* cmd to queue */ + HMMD_COMMAND_SHARD *cmd = NULL; /* parsed cmd to process */ + int fd = data->sock_fd; + ESL_STACK *cmdstack = data->cmdstack; + char *s; + time_t date; + char timestamp[32]; + + /* skip leading white spaces */ + ++ptr; + while (*ptr == ' ' || *ptr == '\t') ++ptr; + + /* skip to the end of the line */ + s = ptr; + while (*s && (*s != '\n' && *s != '\r')) ++s; + *s = 0; + + /* process the different commands */ + s = strsep(&ptr, " \t"); + if (strcmp(s, "shutdown") == 0) + { + if ((cmd = malloc(sizeof(HMMD_HEADER))) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(cmd, 0, sizeof(HMMD_HEADER)); /* avoid uninit bytes & valgrind bitching. Remove, if we ever serialize structs correctly. */ + cmd->hdr.length = 0; + cmd->hdr.command = HMMD_CMD_SHUTDOWN; + } + else + { + client_msg(fd, eslEINVAL, "Unknown command %s\n", s); + return; + } + + if ((parms = malloc(sizeof(QUEUE_DATA_SHARD))) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(parms, 0, sizeof(QUEUE_DATA_SHARD)); /* avoid valgrind bitches about uninit bytes; remove if structs are serialized properly */ + + parms->hmm = NULL; + parms->seq = NULL; + parms->abc = NULL; + parms->opts = NULL; + parms->dbx = -1; + parms->cmd = cmd; + + strcpy(parms->ip_addr, data->ip_addr); + parms->sock = fd; + parms->cmd_type = cmd->hdr.command; + parms->query_type = 0; + + date = time(NULL); + ctime_r(&date, timestamp); + printf("\n%s", timestamp); /* note ctime_r() leaves \n on end of timestamp */ + printf("Queuing command %d from %s (%d)\n", cmd->hdr.command, parms->ip_addr, parms->sock); + fflush(stdout); + + esl_stack_PPush(cmdstack, parms); +} + +static int +clientside_loop(CLIENTSIDE_ARGS *data) +{ + int status; + + char *ptr; + char *buffer; + char opt_str[MAX_BUFFER]; + + int dbx; + int buf_size; + int remaining; + int amount; + int eod; + int n; + + P7_HMM *hmm = NULL; /* query HMM */ + ESL_SQ *seq = NULL; /* query sequence */ + ESL_SCOREMATRIX *sco = NULL; /* scoring matrix */ + P7_HMMFILE *hfp = NULL; + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + ESL_GETOPTS *opts = NULL; /* search specific options */ + HMMD_COMMAND_SHARD *cmd = NULL; /* search cmd to send to workers */ + + ESL_STACK *cmdstack = data->cmdstack; + QUEUE_DATA_SHARD *parms; + jmp_buf jmp_env; + time_t date; + char timestamp[32]; + + buf_size = MAX_BUFFER; + if ((buffer = malloc(buf_size)) == NULL) LOG_FATAL_MSG("malloc", errno); + ptr = buffer; + remaining = buf_size; + amount = 0; + + eod = 0; + while (!eod) { + int l; + char *s; + + /* Receive message from client */ + if ((n = read(data->sock_fd, ptr, remaining)) < 0) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, data->ip_addr, errno, strerror(errno)); + return 1; + } + + if (n == 0) return 1; + + ptr += n; + amount += n; + remaining -= n; + + /* scan backwards till we hit the start of the line */ + l = amount; + s = ptr - 1; + while (l-- > 0 && (*s == '\n' || *s == '\r')) --s; + while (l-- > 0 && (*s != '\n' && *s != '\r')) --s; + eod = (amount > 1 && *(s + 1) == '/' && *(s + 2) == '/' ); + + /* if the buffer is full, make it larger */ + if (!eod && remaining == 0) { + if ((buffer = realloc(buffer, buf_size * 2)) == NULL) LOG_FATAL_MSG("realloc", errno); + ptr = buffer + buf_size; + remaining = buf_size; + buf_size *= 2; + } + } + + /* zero terminate the buffer */ + if (remaining == 0) { + if ((buffer = realloc(buffer, buf_size + 1)) == NULL) LOG_FATAL_MSG("realloc", errno); + ptr = buffer + buf_size; + } + *ptr = 0; + + /* skip all leading white spaces */ + ptr = buffer; + while (*ptr && isspace(*ptr)) ++ptr; + + opt_str[0] = 0; + if (*ptr == '!') { + process_ServerCmd(ptr, data); + free(buffer); + return 0; + } else if (*ptr == '@') { + char *s = ++ptr; + + /* skip to the end of the line */ + while (*ptr && (*ptr != '\n' && *ptr != '\r')) ++ptr; + *ptr++ = 0; + + /* create a commandline string with dummy program name for + * the esl_opt_ProcessSpoof() function to parse. + */ + snprintf(opt_str, sizeof(opt_str), "hmmpgmd %s\n", s); + + /* skip remaining white spaces */ + while (*ptr && isspace(*ptr)) ++ptr; + } else { + client_msg(data->sock_fd, eslEFORMAT, "Missing options string"); + free(buffer); + return 0; + } + + if (strncmp(ptr, "//", 2) == 0) { + client_msg(data->sock_fd, eslEFORMAT, "Missing search sequence/hmm"); + free(buffer); + return 0; + } + + if (!setjmp(jmp_env)) { + dbx = 0; + + status = process_searchopts(data->sock_fd, opt_str, &opts); + if (status != eslOK) { + client_msg_longjmp(data->sock_fd, status, &jmp_env, "Failed to parse options string: %s", opts->errbuf); + } + + /* the options string can handle an optional database */ + if (esl_opt_ArgNumber(opts) > 0) { + client_msg_longjmp(data->sock_fd, status, &jmp_env, "Incorrect number of command line arguments."); + } + + if (esl_opt_IsUsed(opts, "--seqdb")) { + dbx = esl_opt_GetInteger(opts, "--seqdb"); + } else if (esl_opt_IsUsed(opts, "--hmmdb")) { + dbx = esl_opt_GetInteger(opts, "--hmmdb"); + } else { + client_msg_longjmp(data->sock_fd, eslEINVAL, &jmp_env, "No search database specified, --seqdb or --hmmdb."); + } + + + abc = esl_alphabet_Create(eslAMINO); + seq = NULL; + hmm = NULL; + + if (*ptr == '>') { + /* try to parse the input buffer as a FASTA sequence */ + seq = esl_sq_CreateDigital(abc); + /* try to parse the input buffer as a FASTA sequence */ + status = esl_sqio_Parse(ptr, strlen(ptr), seq, eslSQFILE_DAEMON); + if (status != eslOK) client_msg_longjmp(data->sock_fd, status, &jmp_env, "Error parsing FASTA sequence"); + if (seq->n < 1) client_msg_longjmp(data->sock_fd, eslEFORMAT, &jmp_env, "Error zero length FASTA sequence"); + + } else if (strncmp(ptr, "HMM", 3) == 0) { + if (esl_opt_IsUsed(opts, "--hmmdb")) { + client_msg_longjmp(data->sock_fd, status, &jmp_env, "A HMM cannot be used to search a hmm database"); + } + + /* try to parse the buffer as an hmm */ + status = p7_hmmfile_OpenBuffer(ptr, strlen(ptr), &hfp); + if (status != eslOK) client_msg_longjmp(data->sock_fd, status, &jmp_env, "Failed to open query hmm buffer"); + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + if (status != eslOK) client_msg_longjmp(data->sock_fd, status, &jmp_env, "Error reading query hmm: %s", hfp->errbuf); + + p7_hmmfile_Close(hfp); + + } else { + /* no idea what we are trying to parse */ + client_msg_longjmp(data->sock_fd, eslEFORMAT, &jmp_env, "Unknown query sequence/hmm format"); + } + } else { + /* an error occured some where, so try to clean up */ + if (opts != NULL) esl_getopts_Destroy(opts); + if (abc != NULL) esl_alphabet_Destroy(abc); + if (hmm != NULL) p7_hmm_Destroy(hmm); + if (seq != NULL) esl_sq_Destroy(seq); + if (sco != NULL) esl_scorematrix_Destroy(sco); + + free(buffer); + return 0; + } + + if ((parms = malloc(sizeof(QUEUE_DATA_SHARD))) == NULL) LOG_FATAL_MSG("malloc", errno); + + /* build the search structure that will be sent to all the workers */ + n = sizeof(HMMD_COMMAND_SHARD); + n = n + strlen(opt_str) + 1; + + if (seq != NULL) { + n = n + strlen(seq->name) + 1; + n = n + strlen(seq->desc) + 1; + n = n + seq->n + 2; + } else { + n = n + sizeof(P7_HMM); + n = n + sizeof(float) * (hmm->M + 1) * p7H_NTRANSITIONS; + n = n + sizeof(float) * (hmm->M + 1) * abc->K; + n = n + sizeof(float) * (hmm->M + 1) * abc->K; + if (hmm->name != NULL) n = n + strlen(hmm->name) + 1; + if (hmm->acc != NULL) n = n + strlen(hmm->acc) + 1; + if (hmm->desc != NULL) n = n + strlen(hmm->desc) + 1; + if (hmm->flags & p7H_RF) n = n + hmm->M + 2; + if (hmm->flags & p7H_MMASK) n = n + hmm->M + 2; + if (hmm->flags & p7H_CONS) n = n + hmm->M + 2; + if (hmm->flags & p7H_CS) n = n + hmm->M + 2; + if (hmm->flags & p7H_CA) n = n + hmm->M + 2; + if (hmm->flags & p7H_MAP) n = n + sizeof(int) * (hmm->M + 1); + } + + if ((cmd = malloc(n)) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(cmd, 0, n); /* silence valgrind bitching about uninit bytes; remove if we ever serialize structs properly */ + cmd->hdr.length = n - sizeof(HMMD_HEADER); + cmd->hdr.command = (esl_opt_IsUsed(opts, "--seqdb")) ? HMMD_CMD_SEARCH : HMMD_CMD_SCAN; + cmd->srch.db_inx = dbx - 1; /* the program indexes databases 0 .. n-1 */ + cmd->srch.opts_length = strlen(opt_str) + 1; + + ptr = cmd->srch.data; + + memcpy(ptr, opt_str, cmd->srch.opts_length); + ptr += cmd->srch.opts_length; + + if (seq != NULL) { + cmd->srch.query_type = HMMD_SEQUENCE; + cmd->srch.query_length = seq->n + 2; + + n = strlen(seq->name) + 1; + memcpy(ptr, seq->name, n); + ptr += n; + + n = strlen(seq->desc) + 1; + memcpy(ptr, seq->desc, n); + ptr += n; + + n = seq->n + 2; + memcpy(ptr, seq->dsq, n); + ptr += n; + } else { + cmd->srch.query_type = HMMD_HMM; + cmd->srch.query_length = hmm->M; + + n = sizeof(P7_HMM); + memcpy(ptr, hmm, n); + ptr += n; + + n = sizeof(float) * (hmm->M + 1) * p7H_NTRANSITIONS; + memcpy(ptr, *hmm->t, n); + ptr += n; + + n = sizeof(float) * (hmm->M + 1) * abc->K; + memcpy(ptr, *hmm->mat, n); + ptr += n; + memcpy(ptr, *hmm->ins, n); + ptr += n; + + if (hmm->name) { n = strlen(hmm->name) + 1; memcpy(ptr, hmm->name, n); ptr += n; } + if (hmm->acc) { n = strlen(hmm->acc) + 1; memcpy(ptr, hmm->acc, n); ptr += n; } + if (hmm->desc) { n = strlen(hmm->desc) + 1; memcpy(ptr, hmm->desc, n); ptr += n; } + + n = hmm->M + 2; + if (hmm->flags & p7H_RF) { memcpy(ptr, hmm->rf, n); ptr += n; } + if (hmm->flags & p7H_MMASK) { memcpy(ptr, hmm->mm, n); ptr += n; } + if (hmm->flags & p7H_CONS) { memcpy(ptr, hmm->consensus, n); ptr += n; } + if (hmm->flags & p7H_CS) { memcpy(ptr, hmm->cs, n); ptr += n; } + if (hmm->flags & p7H_CA) { memcpy(ptr, hmm->ca, n); ptr += n; } + + if (hmm->flags & p7H_MAP) { + n = sizeof(int) * (hmm->M + 1); + memcpy(ptr, hmm->map, n); + ptr += n; + } + } + + parms->hmm = hmm; + parms->seq = seq; + parms->abc = abc; + parms->opts = opts; + parms->dbx = dbx - 1; + parms->cmd = cmd; + + strcpy(parms->ip_addr, data->ip_addr); + parms->sock = data->sock_fd; + parms->cmd_type = cmd->hdr.command; + parms->query_type = (seq != NULL) ? HMMD_SEQUENCE : HMMD_HMM; + + date = time(NULL); + ctime_r(&date, timestamp); + printf("\n%s", timestamp); /* note ctime_r() leaves \n on end of timestamp */ + + if (parms->seq != NULL) { + printf("Queuing %s %s from %s (%d)\n", (cmd->hdr.command == HMMD_CMD_SEARCH) ? "search" : "scan", parms->seq->name, parms->ip_addr, parms->sock); + } else { + printf("Queuing hmm %s from %s (%d)\n", parms->hmm->name, parms->ip_addr, parms->sock); + } + printf("%s", opt_str); /* note opt_str already has trailing \n */ + fflush(stdout); + + esl_stack_PPush(cmdstack, parms); + + free(buffer); + return 0; +} + + +/* discard_function() + * function handed to esl_stack_DiscardSelected() to remove + * all commands in the stack that are associated with a + * particular client socket, because we're closing that + * client down. Prototype to this is dictate by the generalized + * interface to esl_stack_DiscardSelected(). + */ +static int +discard_function(void *elemp, void *args) +{ + QUEUE_DATA_SHARD *elem = (QUEUE_DATA_SHARD *) elemp; + int fd = * (int *) args; + + if (elem->sock == fd) + { + free_QueueData_shard(elem); + return TRUE; + } + return FALSE; +} + +static void * +clientside_thread(void *arg) +{ + int eof; + CLIENTSIDE_ARGS *data = (CLIENTSIDE_ARGS *)arg; + + /* Guarantees that thread resources are deallocated upon return */ + pthread_detach(pthread_self()); + + eof = 0; + while (!eof) { + eof = clientside_loop(data); + } + + /* remove any commands in stack associated with this client's socket */ + esl_stack_DiscardSelected(data->cmdstack, discard_function, &(data->sock_fd)); + + printf("Closing %s (%d)\n", data->ip_addr, data->sock_fd); + fflush(stdout); + + close(data->sock_fd); + free(data); + + pthread_exit(NULL); +} + +static void * +client_comm_thread(void *arg) +{ + int n; + int fd; + int addrlen; + pthread_t thread_id; + + struct sockaddr_in addr; + + CLIENTSIDE_ARGS *targs = NULL; + CLIENTSIDE_ARGS *data = (CLIENTSIDE_ARGS *)arg; + + for ( ;; ) { + + /* Wait for a client to connect */ + n = sizeof(addr); + if ((fd = accept(data->sock_fd, (struct sockaddr *)&addr, (unsigned int *)&n)) < 0) LOG_FATAL_MSG("accept", errno); + + if ((targs = malloc(sizeof(CLIENTSIDE_ARGS))) == NULL) LOG_FATAL_MSG("malloc", errno); + targs->cmdstack = data->cmdstack; + targs->sock_fd = fd; + + addrlen = sizeof(targs->ip_addr); + strncpy(targs->ip_addr, inet_ntoa(addr.sin_addr), addrlen); + targs->ip_addr[addrlen-1] = 0; + + if ((n = pthread_create(&thread_id, NULL, clientside_thread, targs)) != 0) LOG_FATAL_MSG("thread create", n); + } + + pthread_exit(NULL); +} + +static void +setup_clientside_comm(ESL_GETOPTS *opts, CLIENTSIDE_ARGS *args) +{ + int n; + int reuse; + int sock_fd; + pthread_t thread_id; + + struct linger linger; + struct sockaddr_in addr; + + /* Create socket for incoming connections */ + if ((sock_fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) LOG_FATAL_MSG("socket", errno); + + /* incase the server went down in an ungraceful way, allow the port to be + * reused avoiding the timeout. + */ + reuse = 1; + if (setsockopt(sock_fd, SOL_SOCKET, SO_REUSEADDR, (void *)&reuse, sizeof(reuse)) < 0) LOG_FATAL_MSG("setsockopt", errno); + + /* the sockets are never closed, so if the server exits, force the kernel to + * close the socket and clear it so the server can be restarted immediately. + */ + linger.l_onoff = 1; + linger.l_linger = 0; + if (setsockopt(sock_fd, SOL_SOCKET, SO_LINGER, (void *)&linger, sizeof(linger)) < 0) LOG_FATAL_MSG("setsockopt", errno); + + /* Construct local address structure */ + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_ANY); + addr.sin_port = htons(esl_opt_GetInteger(opts, "--cport")); + + /* Bind to the local address */ + if (bind(sock_fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) LOG_FATAL_MSG("bind", errno); + + /* Mark the socket so it will listen for incoming connections */ + if (listen(sock_fd, esl_opt_GetInteger(opts, "--ccncts")) < 0) LOG_FATAL_MSG("listen", errno); + args->sock_fd = sock_fd; + + if ((n = pthread_create(&thread_id, NULL, client_comm_thread, (void *)args)) != 0) LOG_FATAL_MSG("socket", n); +} + +static void +workerside_loop(WORKERSIDE_ARGS *data, WORKER_DATA *worker) +{ + ESL_STOPWATCH *w = NULL; + HMMD_SEARCH_STATS *stats = NULL; + HMMD_COMMAND_SHARD cmd; + int n; + int size; + int total; + char *ptr; + uint8_t *buf; // Buffer to receive bytes into over sockets + uint32_t buf_position; //Index into buffer for deserialize + memset(&cmd, 0, sizeof(HMMD_COMMAND_SHARD)); /* silence valgrind. if we ever serialize structs properly, remove */ + w = esl_stopwatch_Create(); + + for ( ; ; ) { + + /* wait for the next search object */ + if ((n = pthread_mutex_lock (&data->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* wait for the master's signal to start the calculations */ + while (worker->cmd == NULL) { + if ((n = pthread_cond_wait(&data->start_cond, &data->work_mutex)) != 0) LOG_FATAL_MSG("cond wait", n); + } + + if ((n = pthread_mutex_unlock (&data->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + /* terminate the connection */ + if (worker->cmd->hdr.command == HMMD_CMD_SHUTDOWN) { + fd_set rset; + struct timeval tv; + + n = MSG_SIZE(worker->cmd); + if (writen(worker->sock_fd, worker->cmd, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + FD_ZERO(&rset); + FD_SET(worker->sock_fd, &rset); + + tv.tv_sec = 2; + tv.tv_usec = 0; + + if ((n = select(worker->sock_fd + 1, &rset, NULL, NULL, &tv)) < 0) { + p7_syslog(LOG_ERR,"[%s:%d] - select %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + } else { + if (n == 0) { + p7_syslog(LOG_ERR,"[%s:%d] - shutdown %s is not responding\n", __FILE__, __LINE__, worker->ip_addr); + } else { + n = sizeof(HMMD_HEADER); + if ((size = readn(worker->sock_fd, &cmd, n)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + } + if (cmd.hdr.command == HMMD_CMD_SHUTDOWN) { + p7_syslog(LOG_ERR,"[%s:%d] - shutting down %s\n", __FILE__, __LINE__, worker->ip_addr); + } else { + p7_syslog(LOG_ERR,"[%s:%d] - error shutting down %s - received %d\n", __FILE__, __LINE__, worker->ip_addr, cmd.hdr.command); + } + } + } + break; + } + + //printf ("Writing %d bytes to %s [MSG = %d/%d]\n", (int)MSG_SIZE(worker->cmd), worker->ip_addr, worker->cmd->hdr.command, worker->cmd->hdr.length); + + esl_stopwatch_Start(w); + + /* write search message in two parts */ + n = sizeof(HMMD_HEADER) + sizeof(HMMD_SEARCH_CMD); + memcpy(&cmd, worker->cmd, n); + cmd.srch.inx = worker->srch_inx; + cmd.srch.cnt = worker->srch_cnt; + if (writen(worker->sock_fd, &cmd, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + /* write remaining data, i.e. sequence, options etc. */ + ptr = (char *)worker->cmd; + ptr += n; + n = MSG_SIZE(worker->cmd) - n; + if (writen(worker->sock_fd, ptr, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + total = 0; + worker->total = 0; + + n = HMMD_SEARCH_STATUS_SERIAL_SIZE; + buf = malloc(n); + if (buf == NULL){ + LOG_FATAL_MSG("malloc", errno); + } + + total += n; + if ((size = readn(worker->sock_fd, buf, n)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + buf_position = 0; + if(hmmd_search_status_Deserialize(buf, &buf_position, &(worker->status)) != eslOK){ + LOG_FATAL_MSG("Couldn't deserialize HMMD_SEARCH_STATUS", errno); + } + + if (worker->status.status != eslOK) { + n = worker->status.msg_size; + total += n; + if ((worker->err_buf = malloc(n)) == NULL) LOG_FATAL_MSG("malloc", errno); + worker->err_buf[0] = 0; + if ((size = readn(worker->sock_fd, worker->err_buf, n)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + } else { + + // receive the results from the worker + buf = realloc(buf, worker->status.msg_size); + if(buf == NULL){ + LOG_FATAL_MSG("malloc", errno); + } + + total += worker->status.msg_size; + if ((size = readn(worker->sock_fd, buf, worker->status.msg_size)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading %s error %d - %s\n", __FILE__, __LINE__, worker->ip_addr, errno, strerror(errno)); + break; + } + + buf_position = 0; // start at beginning of new buffer of data + // Now, serialize the data structures out of it + if(p7_hmmd_search_stats_Deserialize(buf, &buf_position, &(worker->stats)) != eslOK){ + LOG_FATAL_MSG("Couldn't deserialize HMMD_SEARCH_STATS", errno); + } + stats = &worker->stats; + if(stats->nhits > 0){ + worker->hits = malloc(stats->nhits * sizeof(P7_HIT *)); + if(worker->hits == NULL){ + LOG_FATAL_MSG("malloc", errno); + } + worker->allocated_hits = stats->nhits; // Need this if we have to destroy the worker because of an error + /* read in the hits */ + for(int i = 0; i < stats->nhits; i++){ + worker->hits[i] = p7_hit_Create_empty(); + if(worker->hits[i] == NULL){ + LOG_FATAL_MSG("malloc", errno); + } + if(p7_hit_Deserialize(buf, &buf_position, worker->hits[i]) != eslOK){ + LOG_FATAL_MSG("Couldn't deserialize P7_HIT", errno); + } + } + } + free(buf); + } + + /* We've just allocated an array of pointers to P7_HIT objects and a bunch of P7_HIT + objects that we don't free in this function. Here's what happens to them. gather_results() assembles + all of the P7_HIT objects from the different workers into one big list, which it passes to forward_results(). + gather_results() frees each worker's array of pointers to P7_HIT objects, and forward_results is responsible for + freeing all of the P7_HIT objects when it's done with them */ + + esl_stopwatch_Stop(w); + + if ((n = pthread_mutex_lock (&data->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + /* set the state of the worker to completed */ + worker->cmd = NULL; + worker->completed = 1; + worker->total = total; + ++data->completed; + + /* notify the master that a worker has completed */ + if ((n = pthread_cond_broadcast(&data->complete_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n); + if ((n = pthread_mutex_unlock (&data->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + printf ("WORKER %s COMPLETED: %.2f sec received %d bytes\n", worker->ip_addr, w->elapsed, total); + fflush(stdout); + } + + esl_stopwatch_Destroy(w); + + return; +} + +static void * +workerside_thread(void *arg) +{ + HMMD_COMMAND_SHARD *cmd = NULL; + WORKER_DATA *worker = (WORKER_DATA *)arg; + WORKERSIDE_ARGS *parent = (WORKERSIDE_ARGS *)worker->parent; + HMMD_HEADER hdr; + int n; + int fd = 0; + int version; + int updated; + int status = eslOK; + char *p; + + memset(&hdr, 0, sizeof(HMMD_HEADER)); /* silence valgrind; remove if/when we serialize structs properly */ + + /* Guarantees that thread resources are deallocated upon return */ + pthread_detach(pthread_self()); + + + fflush(stdout); + + updated = 0; + while (!updated) { + /* get the database version to load */ + if ((n = pthread_mutex_lock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + version = parent->db_version; + if ((n = pthread_mutex_unlock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + n = sizeof(HMMD_COMMAND_SHARD); + if (parent->seq_db != NULL) n += strlen(parent->seq_db->name) + 1; + if (parent->hmm_db != NULL) n += strlen(parent->hmm_db->name) + 1; + + cmd = malloc(n); + if (cmd == NULL) { + p7_syslog(LOG_ERR,"[%s:%d] - malloc %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + goto EXIT; + } + memset(cmd, 0, n); + + cmd->hdr.length = n - sizeof(HMMD_HEADER); + cmd->hdr.command = HMMD_CMD_INIT; + + p = cmd->init.data; + + if (parent->seq_db != NULL) { + cmd->init.db_cnt = parent->seq_db->db_cnt; + cmd->init.seq_cnt = parent->seq_db->count; + cmd->init.seqdb_off = p - cmd->init.data; + + strncpy(cmd->init.sid, parent->seq_db->id, sizeof(cmd->init.sid)); + cmd->init.sid[sizeof(cmd->init.sid)-1] = 0; + + strcpy(p, parent->seq_db->name); + p += strlen(parent->seq_db->name) + 1; + cmd->init.num_shards = worker->num_shards; + cmd->init.my_shard = worker->my_shard; + } + + if (parent->hmm_db != NULL) { + cmd->init.hmm_cnt = 1; + cmd->init.model_cnt = parent->hmm_db->n; + cmd->init.hmmdb_off = p - cmd->init.data; + + //strncpy(cmd->init.hid, parent->hmm_db->id, sizeof(cmd->init.hid)); + //cmd->init.hid[sizeof(cmd->init.hid)-1] = 0; + + strcpy(p, parent->hmm_db->name); + p += strlen(parent->hmm_db->name) + 1; + } + + if (writen(worker->sock_fd, cmd, n) != n) { + p7_syslog(LOG_ERR,"[%s:%d] - writing (%d) error %d - %s\n", __FILE__, __LINE__, worker->sock_fd, errno, strerror(errno)); + status = eslFAIL; + } + + /* process the init command first */ + if (readn(worker->sock_fd, &hdr, sizeof(hdr)) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading (%d) error %d - %s\n", __FILE__, __LINE__, worker->sock_fd, errno, strerror(errno)); + status = eslFAIL; + } + + /* cmd is a HMMD_COMMAND_SHARD. + * consists of HMMD_HEADER: length, command, status + * and a union of HMMD_INIT_CMD, HMMD_SEARCH_COMMAND, HMMD_INIT_RESET. + * we know which is valid, from hdr.command + * the total malloc size for an HMMD_COMMAND_SHARD is calculated from the header, using MSG_SIZE(cmd) + */ + n = MSG_SIZE(&hdr); + if ((cmd = realloc(cmd, n)) == NULL) { + p7_syslog(LOG_ERR,"[%s:%d] - realloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno)); + status = eslFAIL; + } + if (readn(worker->sock_fd, &(cmd->init), hdr.length) == -1) { + p7_syslog(LOG_ERR,"[%s:%d] - reading (%d) error %d - %s\n", __FILE__, __LINE__, worker->sock_fd, errno, strerror(errno)); + status = eslFAIL; + } + + /* validate the database of the worker before adding him to the list */ + if (hdr.command != HMMD_CMD_INIT) { + p7_syslog(LOG_ERR,"[%s:%d] - expecting HMMD_CMD_INIT %d\n", __FILE__, __LINE__, hdr.command); + status = eslFAIL; + } + if (cmd->hdr.status != eslOK) { + p7_syslog(LOG_ERR,"[%s:%d] - workers init status failed %d\n", __FILE__, __LINE__, cmd->hdr.status); + status = eslFAIL; + } + + worker->next = NULL; + worker->prev = NULL; + + /* add the worker to the pending list */ + if ((n = pthread_mutex_lock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + assert(validate_workers(parent)); + + /* make sure the master has not loaded a new database while we were waiting + * for the worker to load and verify the database we started out this. If + * the version has changed, force the worker to reload and verify. + */ + if (version == parent->db_version) { + if (status == eslOK) { + worker->next = parent->pending; + parent->pending = worker; + ++parent->pend_cnt; + } else { + worker->next = parent->idling; + parent->idling = worker; + ++parent->idle_cnt; + } + updated = 1; + } + + assert(validate_workers(parent)); + + if ((n = pthread_mutex_unlock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + } + + printf("Pending worker %s (%d)\n", worker->ip_addr, worker->sock_fd); + fflush(stdout); + + workerside_loop(parent, worker); + + if ((n = pthread_mutex_lock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n); + + fd = worker->sock_fd; + + ++parent->failed; + ++parent->completed; + + worker->terminated = 1; + worker->total = 0; + worker->sock_fd = -1; + + assert(validate_workers(parent)); + + /* notify the master that a worker has completed */ + if ((n = pthread_cond_broadcast(&parent->complete_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n); + if ((n = pthread_mutex_unlock (&parent->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n); + + EXIT: + printf("Closing worker %s (%d)\n", worker->ip_addr, fd); + fflush(stdout); + + if (cmd != NULL) free(cmd); + close(fd); + + pthread_exit(NULL); +} + +static void * +worker_comm_thread(void *arg) +{ + WORKERSIDE_ARGS *data = (WORKERSIDE_ARGS *)arg; + WORKER_DATA *worker; + int n, i; + int fd; + int addrlen; + pthread_t thread_id; + struct sockaddr_in addr; + int new_worker_shard; + + for ( ;; ) { + /* Wait for a worker to connect */ + n = sizeof(addr); + if ((fd = accept(data->sock_fd, (struct sockaddr *)&addr, (unsigned int *)&n)) < 0) LOG_FATAL_MSG("accept", errno); + + if ((worker = malloc(sizeof(WORKER_DATA))) == NULL) LOG_FATAL_MSG("thread create", errno); + memset(worker, 0, sizeof(WORKER_DATA)); + + worker->parent = data; + worker->sock_fd = fd; + + addrlen = sizeof(worker->ip_addr); + strncpy(worker->ip_addr, inet_ntoa(addr.sin_addr), addrlen); + worker->ip_addr[addrlen-1] = 0; + new_worker_shard = -1; + update_workers(data); // Check the status of the existing workers to remove any that have died + // Figure out which shard to assign to the new worker + for(i = 0; i < data->num_shards; i++){ + if (data->worker_ips[i] == addr.sin_addr.s_addr){ // This IP has connected to this server in the past, + // so re-use its old shard + printf("Found a shard assigned to the same worker as one that just tried to join. This shouldn't happen\n"); + } + if(data->worker_ips[i] == INVALID_IP){ + // There is no worker node assigned to this shard, so assign it to the new worker + new_worker_shard = i; + break; + } + } + + if(new_worker_shard == -1){ // We're unable to find a shard for this worker because all of the shards are taken + LOG_FATAL_MSG("Attempt to add a new worker node when there were already as many workers as shards", 1); + } + else{ + worker->num_shards = data->num_shards; + worker->my_shard = new_worker_shard; + data->worker_ips[new_worker_shard] = addr.sin_addr.s_addr; // record the IP of the new warker + if ((n = pthread_create(&thread_id, NULL, workerside_thread, worker)) != 0) LOG_FATAL_MSG("thread create", n); + } + } + + pthread_exit(NULL); +} + +static void +setup_workerside_comm(ESL_GETOPTS *opts, WORKERSIDE_ARGS *args) +{ + int n; + int reuse; + int sock_fd; + pthread_t thread_id; + + struct linger linger; + struct sockaddr_in addr; + + /* Create socket for incoming connections */ + if ((sock_fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) LOG_FATAL_MSG("socket", errno); + + /* incase the server went down in an ungraceful way, allow the port to be + * reused avoiding the timeout. + */ + reuse = 1; + if (setsockopt(sock_fd, SOL_SOCKET, SO_REUSEADDR, (void *)&reuse, sizeof(reuse)) < 0) LOG_FATAL_MSG("setsockopt", errno); + + /* the sockets are never closed, so if the server exits, force the kernel to + * close the socket and clear it so the server can be restarted immediately. + */ + linger.l_onoff = 1; + linger.l_linger = 0; + if (setsockopt(sock_fd, SOL_SOCKET, SO_LINGER, (void *)&linger, sizeof(linger)) < 0) LOG_FATAL_MSG("setsockopt", errno); + + /* Construct local address structure */ + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = htonl(INADDR_ANY); + addr.sin_port = htons(esl_opt_GetInteger(opts, "--wport")); + + /* Bind to the local address */ + if (bind(sock_fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) LOG_FATAL_MSG("bind", errno); + + /* Mark the socket so it will listen for incoming connections */ + if (listen(sock_fd, esl_opt_GetInteger(opts, "--wcncts")) < 0) LOG_FATAL_MSG("listen", errno); + + args->sock_fd = sock_fd; + + if ((n = pthread_create(&thread_id, NULL, worker_comm_thread, (void *)args)) != 0) LOG_FATAL_MSG("thread create", n); +} + +#endif /*HMMER_THREADS*/ + + + diff --git a/bioinformaticsProject/hmmer/src/hmmdutils.c b/bioinformaticsProject/hmmer/src/hmmdutils.c new file mode 100644 index 0000000..00bb7e3 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmdutils.c @@ -0,0 +1,292 @@ +/* hmmpgmd: hmmer deamon searchs against a sequence database. + * + * MSF, Thu Aug 12, 2010 [Janelia] + */ +#include "p7_config.h" + +#ifdef HMMER_THREADS + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef HMMER_THREADS +#error "Program requires pthreads be enabled." +#endif /*HMMER_THREADS*/ + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" +#include "esl_threads.h" +#include "esl_regexp.h" + +#include "hmmer.h" +#include "hmmpgmd.h" +#include "cachedb.h" + +#define MAX_WORKERS 64 +#define MAX_BUFFER 4096 + +#define CONF_FILE "/etc/hmmpgmd.conf" + +#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc" +#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc" +#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc" +#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define STAGEOPTS "--F1,--F2,--F3" + +static ESL_OPTIONS searchOpts[] = { + /* Control of output */ + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 }, + { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 }, + /* Control of scoring system */ + { "--popen", eslARG_REAL, "0.02", NULL, "0<=x<0.5",NULL, NULL, NULL, "gap open probability", 3 }, + { "--pextend", eslARG_REAL, "0.4", NULL, "0<=x<1", NULL, NULL, NULL, "gap extend probability", 3 }, + { "--mx", eslARG_STRING, "BLOSUM62", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix choice (of some built-in matrices)", 3 }, + { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file ", 3 }, + /* Control of reporting thresholds */ + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report sequences <= this E-value threshold in output", 4 }, + { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report sequences >= this score threshold in output", 4 }, + { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "report domains <= this E-value threshold in output", 4 }, + { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "report domains >= this score cutoff in output", 4 }, + /* Control of inclusion (significance) thresholds */ + { "--incE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCOPTS, "consider sequences <= this E-value threshold as significant", 5 }, + { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider sequences >= this score threshold as significant", 5 }, + { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "consider domains <= this E-value threshold as significant", 5 }, + { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "consider domains >= this score threshold as significant", 5 }, + /* Model-specific thresholding for both reporting and inclusion */ + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 6 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 6 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 6 }, + /* Control of acceleration pipeline */ + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, STAGEOPTS, "Turn all heuristic filters off (less speed, more power)", 7 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "Stage 1 (MSV) threshold: promote hits w/ P <= F1", 7 }, + { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 }, + { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 }, + /* Control of E-value calibration */ + { "--EmL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for MSV Gumbel mu fit", 11 }, + { "--EmN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for MSV Gumbel mu fit", 11 }, + { "--EvL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Viterbi Gumbel mu fit", 11 }, + { "--EvN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Viterbi Gumbel mu fit", 11 }, + { "--EfL", eslARG_INT, "100", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Forward exp tail tau fit", 11 }, + { "--EfN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Forward exp tail tau fit", 11 }, + { "--Eft", eslARG_REAL, "0.04", NULL,"0=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 12 }, + { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 }, + { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 12 }, + { "--hmmdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--seqdb", "hmm database to search", 12 }, + { "--seqdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--hmmdb", "protein database to search", 12 }, + { "--seqdb_ranges",eslARG_STRING, NULL, NULL, NULL, NULL, "--seqdb", NULL, "range(s) of sequences within --seqdb that will be searched", 12 }, + + + /* name type default env range toggles reqs incomp help docgroup*/ + { "-c", eslARG_INT, "1", NULL, NULL, NULL, NULL, NULL, "use alt genetic code of NCBI transl table ", 99 }, + { "-l", eslARG_INT, "20", NULL, NULL, NULL, NULL, NULL, "minimum ORF length", 99 }, + { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-M", "ORFs must initiate with AUG only", 99 }, + { "-M", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-m", "ORFs must start with allowed initiation codon", 99 }, +// { "-W", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use windowed, memory-efficient seq reading", 99 }, + { "--informat", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "specify that input file is in format ", 99 }, + { "--watson", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only translate top strand", 99 }, + { "--crick", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only translate bottom strand", 99 }, + + + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +size_t +writen(int fd, const void *vptr, size_t n) +{ + ssize_t remaining; + ssize_t outn; + const char *ptr; + + ptr = vptr; + remaining = n; + while (remaining > 0) { + if ((outn = write(fd, ptr, remaining)) <= 0) { + if (outn < 0 && errno == EINTR) { + outn = 0; + } else { + return -1; + } + } + + remaining -= outn; + ptr += outn; + } + + return n; +} + +size_t +readn(int fd, void *vptr, size_t n) +{ + size_t remaining; + size_t bytes; + char *ptr; + + ptr = vptr; + remaining = n; + while (remaining > 0) { + if ((bytes = read(fd, ptr, remaining)) <= 0) { + if (errno == EINTR) { + bytes = 0; + } else { + return -1; + } + } + + remaining -= bytes; + ptr += bytes; + } + + return n - remaining; +} + +#define LOG_TO_STDOUT +#ifdef LOG_TO_STDOUT +void p7_openlog(const char *ident, int option, int facility) +{ + /* do nothing */ + return; +} + +void p7_syslog(int priority, const char *format, ...) +{ + va_list ap; + + printf("\n*** ERROR ***\n"); + + va_start(ap, format); + vprintf(format, ap); + va_end(ap); + + printf("\n"); + fflush(stdout); + + return; +} +void p7_closelog(void) +{ + /* do nothing */ + return; +} +#endif + +int +process_searchopts(int fd, char *cmdstr, ESL_GETOPTS **ret_opts) +{ + int status; + + ESL_GETOPTS *go = NULL; + + if ((go = esl_getopts_Create(searchOpts)) == NULL) return eslEMEM; + if ((status = esl_opt_ProcessSpoof(go, cmdstr)) != eslOK) return status; + if ((status = esl_opt_VerifyConfig(go)) != eslOK) return status; + + *ret_opts = go; + return eslOK; +} + +void +free_QueueData(QUEUE_DATA *data) +{ + /* free the query data */ + esl_getopts_Destroy(data->opts); + + if (data->abc != NULL) esl_alphabet_Destroy(data->abc); + if (data->hmm != NULL) p7_hmm_Destroy(data->hmm); + if (data->seq != NULL) esl_sq_Destroy(data->seq); + if (data->cmd != NULL) free(data->cmd); + memset(data, 0, sizeof(*data)); + free(data); +} + +/* Function: hmmpgmd_IsWithinRanges() + * Synopsis: Test if the given id falls within one of a collection of ranges + * + * Purpose: Given an index and a number of ranges stored in two + * parallel arrays of start () and end () + * positions, return TRUE if sq_idx falls in one of the ranges. + * Otherwise return FALSE; + * + * Returns: if within range(s), otherwise + */ +int +hmmpgmd_IsWithinRanges (int64_t sq_idx, RANGE_LIST *list ) { + int i; + for (i=0; iN; i++) { + if (sq_idx >= list->starts[i] && sq_idx <= list->ends[i] ) + return TRUE; + } + return FALSE; +} + + +/* Function: hmmpgmd_GetRanges() + * Synopsis: Parse command flag into range(s) + * + * Purpose: Given a command flag string of the form + * ..,..... + * parse the string into a RANGE_LIST + * + * Returns: on success , on memory allocation failure, + * otherwise or on parsing errors. + */ +int +hmmpgmd_GetRanges (RANGE_LIST *list, char *rangestr) { + char *range; + char *rangestr_cpy; + char *rangestr_cpy_ptr; + int64_t pos1, pos2; // esl_regexp_ParseCoordString() works in int64_t coords now; this is a hackaround + int status; + + list->N = 0; + list->starts = NULL; + list->ends = NULL; + + //first pass to figure out how much to allocate + esl_strdup(rangestr, -1, &rangestr_cpy); // do this because esl_strtok modifies the string, and we shouldn't change the opts value + rangestr_cpy_ptr = rangestr_cpy; // do this because esl_strtok advances the pointer on the target string, but we need to free it + while ( (status = esl_strtok(&rangestr_cpy, ",", &range) ) == eslOK) list->N++; + ESL_ALLOC(list->starts, list->N * sizeof(int)); + ESL_ALLOC(list->ends, list->N * sizeof(int)); + free(rangestr_cpy_ptr); + + //2nd pass to get the values + list->N = 0; + esl_strdup(rangestr, -1, &rangestr_cpy); + rangestr_cpy_ptr = rangestr_cpy; + while ( (status = esl_strtok(&rangestr_cpy, ",", &range) ) == eslOK) { + status = esl_regexp_ParseCoordString(range, &pos1, &pos2); + if (status == eslESYNTAX) esl_fatal("--seqdb_ranges takes coords ..; %s not recognized", range); + if (status == eslFAIL) esl_fatal("Failed to find or coord in %s", range); + list->starts[list->N] = (uint32_t) pos1; + list->ends[list->N] = (uint32_t) pos2; + list->N++; + } + free(rangestr_cpy_ptr); + + return eslOK; + +ERROR: + return eslEMEM; +} + +#endif /*HMMER_THREADS*/ diff --git a/bioinformaticsProject/hmmer/src/hmmdwrkr.c b/bioinformaticsProject/hmmer/src/hmmdwrkr.c new file mode 100644 index 0000000..b864b7b --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmdwrkr.c @@ -0,0 +1,886 @@ +/* worker side of the hmmer daemon + */ +#include "p7_config.h" + +#ifdef HMMER_THREADS + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_NETINET_IN_H +#include /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */ +#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */ +#include +#include +#include + +#ifndef HMMER_THREADS +#error "Program requires pthreads be enabled." +#endif /*HMMER_THREADS*/ + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" +#include "esl_threads.h" + +#include "hmmer.h" +#include "hmmpgmd.h" +#include "cachedb.h" +#include "p7_hmmcache.h" + +#define MAX_WORKERS 64 +#define MAX_BUFFER 4096 + +#define CONF_FILE "/etc/hmmpgmd.conf" + +typedef struct { + HMMER_SEQ **sq_list; /* list of sequences to process */ + int sq_cnt; /* number of sequences */ + int db_Z; /* true number of sequences */ + + P7_OPROFILE **om_list; /* list of profiles to process */ + int om_cnt; /* number of profiles */ + + pthread_mutex_t *inx_mutex; /* protect data */ + int *blk_size; /* sequences per block */ + int *limit; /* point to decrease block size */ + int *inx; /* next index to process */ + + P7_HMM *hmm; /* query HMM */ + ESL_SQ *seq; /* query sequence */ + ESL_ALPHABET *abc; /* digital alphabet */ + ESL_GETOPTS *opts; /* search specific options */ + + RANGE_LIST *range_list; /* (optional) list of ranges searched within the seqdb */ + + double elapsed; /* elapsed search time */ + + /* Structure created and populated by the individual threads. + * The main thread is responsible for freeing up the memory. + */ + P7_PIPELINE *pli; /* work pipeline */ + P7_TOPHITS *th; /* top hit results */ +} WORKER_INFO; + +typedef struct { + int fd; /* socket connection to server */ + int ncpus; /* number of cpus to use */ + + P7_SEQCACHE *seq_db; /* cached sequence database */ + P7_HMMCACHE *hmm_db; /* cached hmm database */ +} WORKER_ENV; + +static void process_InitCmd(HMMD_COMMAND *cmd, WORKER_ENV *env); +static void process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env, QUEUE_DATA *query); +static void process_Shutdown(HMMD_COMMAND *cmd, WORKER_ENV *env); + +static QUEUE_DATA *process_QueryCmd(HMMD_COMMAND *cmd, WORKER_ENV *env); + +static int setup_masterside_comm(ESL_GETOPTS *opts); + +static void send_results(int fd, ESL_STOPWATCH *w, P7_TOPHITS *th, P7_PIPELINE *pli); + +#define BLOCK_SIZE 1000 +static void search_thread(void *arg); +static void scan_thread(void *arg); + +static void +print_timings(int i, double elapsed, P7_PIPELINE *pli) +{ + char buf1[16]; + int h, m, s, hs; + + h = (int) (elapsed / 3600.); + m = (int) (elapsed / 60.) - h * 60; + s = (int) (elapsed) - h * 3600 - m * 60; + hs = (int) (elapsed * 100.) - h * 360000 - m * 6000 - s * 100; + sprintf(buf1, "%02d:%02d.%02d", m,s,hs); + + fprintf (stdout, "%2d %9" PRId64 " %9" PRId64 " %7" PRId64 " %7" PRId64 " %6" PRId64 " %5" PRId64 " %s\n", + i, pli->nseqs, pli->nres, pli->n_past_msv, pli->n_past_bias, pli->n_past_vit, pli->n_past_fwd, buf1); +} + +static int +read_Command(HMMD_COMMAND **ret_cmd, WORKER_ENV *env) +{ + HMMD_HEADER hdr; + HMMD_COMMAND *cmd = NULL; + int n; + + /* read the command header */ + if (readn(env->fd, &hdr, sizeof(hdr)) == -1) { + if (errno && errno != ECONNREFUSED) LOG_FATAL_MSG("read", errno); + return eslEOD; + } + + /* read the command data */ + n = MSG_SIZE(&hdr); + if ((cmd = malloc(n)) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(cmd, 0, n); /* avoid uninitialized bytes. remove this, if we ever serialize/deserialize structures properly */ + cmd->hdr.command = hdr.command; + cmd->hdr.length = hdr.length; + if (hdr.length > 0) { + if (readn(env->fd, &cmd->init, hdr.length) == -1) { + if (errno && errno != ECONNREFUSED) LOG_FATAL_MSG("read", errno); + return eslEOD; + } + } + + *ret_cmd = cmd; + return eslOK; +} + +void +worker_process(ESL_GETOPTS *go) +{ + HMMD_COMMAND *cmd = NULL; /* see hmmpgmd.h */ + int shutdown = 0; + WORKER_ENV env; + int status; + + QUEUE_DATA *query = NULL; + + /* Initializations */ + impl_Init(); + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + + env.ncpus = ESL_MIN(esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + + env.hmm_db = NULL; + env.seq_db = NULL; + env.fd = setup_masterside_comm(go); + + while (!shutdown) + { + if ((status = read_Command(&cmd, &env)) != eslOK) break; + + switch (cmd->hdr.command) { + case HMMD_CMD_INIT: process_InitCmd (cmd, &env); break; + case HMMD_CMD_SCAN: + { + query = process_QueryCmd(cmd, &env); + process_SearchCmd(cmd, &env, query); + free_QueueData(query); + } + break; + case HMMD_CMD_SEARCH: + query = process_QueryCmd(cmd, &env); + process_SearchCmd(cmd, &env, query); + free_QueueData(query); + break; + case HMMD_CMD_SHUTDOWN: process_Shutdown (cmd, &env); shutdown = 1; break; + default: p7_syslog(LOG_ERR,"[%s:%d] - unknown command %d (%d)\n", __FILE__, __LINE__, cmd->hdr.command, cmd->hdr.length); + } + + free(cmd); + cmd = NULL; + } + + if (env.hmm_db) p7_hmmcache_Close(env.hmm_db); + if (env.seq_db) p7_seqcache_Close(env.seq_db); + if (env.fd != -1) close(env.fd); + return; +} + + +static void +process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env, QUEUE_DATA *query) +{ + int i; + int cnt; + int limit; + int status; + int blk_size; + WORKER_INFO *info = NULL; + ESL_ALPHABET *abc; + ESL_STOPWATCH *w; + ESL_THREADS *threadObj = NULL; + pthread_mutex_t inx_mutex; + int current_index; + time_t date; + char timestamp[32]; + + w = esl_stopwatch_Create(); + abc = esl_alphabet_Create(eslAMINO); + + if (pthread_mutex_init(&inx_mutex, NULL) != 0) p7_Fail("mutex init failed"); + ESL_ALLOC(info, sizeof(*info) * env->ncpus); + + /* Log the current time (at search start) */ + date = time(NULL); + ctime_r(&date, timestamp); + printf("\n%s", timestamp); /* note that ctime_r() leaves \n on end of timestamp */ + + /* initialize thread data */ + esl_stopwatch_Start(w); + + info->range_list = NULL; + if (esl_opt_IsUsed(query->opts, "--seqdb_ranges")) { + ESL_ALLOC(info->range_list, sizeof(RANGE_LIST)); + hmmpgmd_GetRanges(info->range_list, esl_opt_GetString(query->opts, "--seqdb_ranges")); + } + + + if (query->cmd_type == HMMD_CMD_SEARCH) threadObj = esl_threads_Create(&search_thread); + else threadObj = esl_threads_Create(&scan_thread); + + if (query->query_type == HMMD_SEQUENCE) { + fprintf(stdout, "Search seq %s [L=%ld]", query->seq->name, (long) query->seq->n); + } else { + fprintf(stdout, "Search hmm %s [M=%d]", query->hmm->name, query->hmm->M); + } + fprintf(stdout, " vs %s DB %d [%d - %d]", + (query->cmd_type == HMMD_CMD_SEARCH) ? "SEQ" : "HMM", + query->dbx, query->inx, query->inx + query->cnt - 1); + + if (info->range_list) + fprintf(stdout, " in range(s) %s", esl_opt_GetString(query->opts, "--seqdb_ranges")); + + fprintf(stdout, "\n"); + + /* Create processing pipeline and hit list */ + for (i = 0; i < env->ncpus; ++i) { + info[i].abc = query->abc; + info[i].hmm = query->hmm; + info[i].seq = query->seq; + info[i].opts = query->opts; + + info[i].range_list = info[0].range_list; + + info[i].th = NULL; + info[i].pli = NULL; + + info[i].inx_mutex = &inx_mutex; + info[i].inx = ¤t_index;/* this is confusing trickery - to share a single variable across all threads */ + info[i].blk_size = &blk_size; /* ditto */ + info[i].limit = &limit; /* ditto. TODO: come back and clean this up. */ + + if (query->cmd_type == HMMD_CMD_SEARCH) { + HMMER_SEQ **list = env->seq_db->db[query->dbx].list; + info[i].sq_list = &list[query->inx]; + info[i].sq_cnt = query->cnt; + info[i].db_Z = env->seq_db->db[query->dbx].K; + info[i].om_list = NULL; + info[i].om_cnt = 0; + } else { + info[i].sq_list = NULL; + info[i].sq_cnt = 0; + info[i].db_Z = 0; + info[i].om_list = &env->hmm_db->list[query->inx]; + info[i].om_cnt = query->cnt; + } + + esl_threads_AddThread(threadObj, &info[i]); + } + + /* try block size of 5000. we will need enough sequences for four + * blocks per thread or better. + */ + blk_size = 5000; + cnt = query->cnt / env->ncpus / blk_size; + limit = query->cnt * 2 / 3; + if (cnt < 4) { + /* try block size of 1000 */ + blk_size /= 5; + cnt = query->cnt / env->ncpus / blk_size; + if (cnt < 4) { + /* still not enough. just divide it up into one block per thread */ + blk_size = query->cnt / env->ncpus + 1; + limit = query->cnt * 2; + } + } + current_index = 0; + + esl_threads_WaitForStart(threadObj); + esl_threads_WaitForFinish(threadObj); + + esl_stopwatch_Stop(w); +#if 1 + fprintf (stdout, " Sequences Residues Elapsed\n"); + for (i = 0; i < env->ncpus; ++i) { + print_timings(i, info[i].elapsed, info[i].pli); + } +#endif + /* merge the results of the search results */ + for (i = 1; i < env->ncpus; ++i) { + p7_tophits_Merge(info[0].th, info[i].th); + p7_pipeline_Merge(info[0].pli, info[i].pli); + p7_pipeline_Destroy(info[i].pli); + p7_tophits_Destroy(info[i].th); + } + + print_timings(99, w->elapsed, info[0].pli); + send_results(env->fd, w, info[0].th, info[0].pli); + + /* free the last of the pipeline data */ + p7_pipeline_Destroy(info->pli); + p7_tophits_Destroy(info->th); + + esl_threads_Destroy(threadObj); + + pthread_mutex_destroy(&inx_mutex); + + if (info->range_list) { + if (info->range_list->starts) free(info->range_list->starts); + if (info->range_list->ends) free(info->range_list->ends); + free (info->range_list); + } + + free(info); + + esl_stopwatch_Destroy(w); + esl_alphabet_Destroy(abc); + + return; + + ERROR: + LOG_FATAL_MSG("malloc", errno); +} + +static QUEUE_DATA * +process_QueryCmd(HMMD_COMMAND *cmd, WORKER_ENV *env) +{ + int i; + int n; + int status; + + char *p; + char *name; + char *desc; + ESL_DSQ *dsq; + + QUEUE_DATA *query = NULL; + + if ((query = malloc(sizeof(QUEUE_DATA))) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(query, 0, sizeof(QUEUE_DATA)); /* avoid uninitialized bytes. remove this, if we ever serialize/deserialize structures properly */ + + printf("CMD: %d %d\n", cmd->hdr.command, cmd->srch.query_type); + + query->cmd_type = cmd->hdr.command; + query->query_type = cmd->srch.query_type; + query->dbx = cmd->srch.db_inx; + query->inx = cmd->srch.inx; + query->cnt = cmd->srch.cnt; + query->sock = env->fd; + query->cmd = NULL; + + p = cmd->srch.data; + + /* process search specific options */ + status = process_searchopts(env->fd, p, &query->opts); + if (status != eslOK) LOG_FATAL_MSG("esl_getopts_Create", status); + + query->hmm = NULL; + query->seq = NULL; + + query->abc = esl_alphabet_Create(eslAMINO); + + /* check if we are processing a sequence or hmm */ + if (cmd->srch.query_type == HMMD_SEQUENCE) { + n = cmd->srch.query_length - 2; + name = p + cmd->srch.opts_length; + desc = name + strlen(name) + 1; + dsq = (ESL_DSQ *) (desc + strlen(desc) + 1); + query->seq = esl_sq_CreateDigitalFrom(query->abc, name, dsq, n, desc, NULL, NULL); + } else { + P7_HMM thmm; + P7_HMM *hmm = p7_hmm_CreateShell(); + + /* allocate memory for the hmm and initialize */ + p += cmd->srch.opts_length; + memcpy(&thmm, p, sizeof(P7_HMM)); + + hmm->flags = thmm.flags; + p7_hmm_CreateBody(hmm, cmd->srch.query_length, query->abc); + p += sizeof(P7_HMM); + + /* initialize fields */ + hmm->nseq = thmm.nseq; + hmm->eff_nseq = thmm.eff_nseq; + hmm->max_length = thmm.max_length; + hmm->checksum = thmm.checksum; + hmm->ctime = NULL; + hmm->comlog = NULL; + + for (i = 0; i < p7_NCUTOFFS; i++) hmm->cutoff[i] = thmm.cutoff[i]; + for (i = 0; i < p7_NEVPARAM; i++) hmm->evparam[i] = thmm.evparam[i]; + for (i = 0; i < p7_MAXABET; i++) hmm->compo[i] = thmm.compo[i]; + + /* fill in the hmm pointers */ + n = sizeof(float) * (hmm->M + 1) * p7H_NTRANSITIONS; + memcpy(*hmm->t, p, n); p += n; + + n = sizeof(float) * (hmm->M + 1) * query->abc->K; + memcpy(*hmm->mat, p, n); p += n; + memcpy(*hmm->ins, p, n); p += n; + + if (thmm.name) { hmm->name = strdup(p); p += strlen(hmm->name) + 1; } + if (thmm.acc) { hmm->acc = strdup(p); p += strlen(hmm->acc) + 1; } + if (thmm.desc) { hmm->desc = strdup(p); p += strlen(hmm->desc) + 1; } + + n = hmm->M + 2; + if (hmm->flags & p7H_RF) { memcpy(hmm->rf, p, n); p += n; } + if (hmm->flags & p7H_MMASK) { memcpy(hmm->mm, p, n); p += n; } + if (hmm->flags & p7H_CONS) { memcpy(hmm->consensus, p, n); p += n; } + if (hmm->flags & p7H_CS) { memcpy(hmm->cs, p, n); p += n; } + if (hmm->flags & p7H_CA) { memcpy(hmm->ca, p, n); p += n; } + + n = sizeof(int) * (hmm->M + 1); + if (hmm->flags & p7H_MAP) { memcpy(hmm->map, p, n); p += n; } + + query->hmm = hmm; + } + + return query; +} + +static void +process_Shutdown(HMMD_COMMAND *cmd, WORKER_ENV *env) +{ + int n; + + n = MSG_SIZE(cmd); + cmd->hdr.status = eslOK; + if (writen(env->fd, cmd, n) != n) { + LOG_FATAL_MSG("write error", errno); + } +} + +static void +process_InitCmd(HMMD_COMMAND *cmd, WORKER_ENV *env) +{ + char *p; + int n; + int status; + + if (env->hmm_db != NULL) p7_hmmcache_Close(env->hmm_db); + if (env->seq_db != NULL) p7_seqcache_Close(env->seq_db); + + env->hmm_db = NULL; + env->seq_db = NULL; + + /* load the sequence database */ + if (cmd->init.db_cnt != 0) { + P7_SEQCACHE *sdb = NULL; + + p = cmd->init.data + cmd->init.seqdb_off; + status = p7_seqcache_Open(p, &sdb, NULL); + if (status != eslOK) { + p7_syslog(LOG_ERR,"[%s:%d] - p7_seqcache_Open %s error %d\n", __FILE__, __LINE__, p, status); + LOG_FATAL_MSG("cache seqdb error", status); + } + + /* validate the sequence database */ + cmd->init.sid[MAX_INIT_DESC-1] = 0; + if (strcmp (cmd->init.sid, sdb->id) != 0 || cmd->init.db_cnt != sdb->db_cnt || cmd->init.seq_cnt != sdb->count) { + p7_syslog(LOG_ERR,"[%s:%d] - seq db %s: integrity error %s - %s\n", __FILE__, __LINE__, p, cmd->init.sid, sdb->id); + LOG_FATAL_MSG("database integrity error", 0); + } + + env->seq_db = sdb; + } + + /* load the hmm database */ + if (cmd->init.hmm_cnt != 0) { + P7_HMMCACHE *hcache = NULL; + + p = cmd->init.data + cmd->init.hmmdb_off; + + status = p7_hmmcache_Open(p, &hcache, NULL); + if (status != eslOK) { + p7_syslog(LOG_ERR,"[%s:%d] - p7_hmmcache_Open %s error %d\n", __FILE__, __LINE__, p, status); + LOG_FATAL_MSG("cache hmmdb error", status); + } + + if ( (status = p7_hmmcache_SetNumericNames(hcache)) != eslOK){ + p7_syslog(LOG_ERR,"[%s:%d] - p7_hmmcache_SetNumericNames %s error %d\n", __FILE__, __LINE__, p, status); + LOG_FATAL_MSG("cache hmmdb error", status); + } + + /* validate the hmm database */ + cmd->init.hid[MAX_INIT_DESC-1] = 0; + /* TODO: come up with a new pressed format with an id to compare - strcmp (cmd->init.hid, hdb->id) != 0 */ + if (cmd->init.hmm_cnt != 1 || cmd->init.model_cnt != hcache->n) { + p7_syslog(LOG_ERR,"[%s:%d] - hmm db %s: integrity error\n", __FILE__, __LINE__, p); + LOG_FATAL_MSG("database integrity error", 0); + } + + env->hmm_db = hcache; + + printf("Loaded profile db %s; models: %d memory: %" PRId64 "\n", + p, hcache->n, (uint64_t) p7_hmmcache_Sizeof(hcache)); + + } + + /* if stdout is redirected at the commandline, it causes printf's to be buffered, + * which means status logging isn't printed. This line strongly requests unbuffering, + * which should be ok, given the low stdout load of hmmpgmd + */ + setvbuf (stdout, NULL, _IONBF, BUFSIZ); + printf("Data loaded into memory. Worker is ready.\n"); + setvbuf (stdout, NULL, _IOFBF, BUFSIZ); + + + /* write back to the master that we are on line */ + n = MSG_SIZE(cmd); + cmd->hdr.status = eslOK; + if (writen(env->fd, cmd, n) != n) { + LOG_FATAL_MSG("write error", errno); + } +} + + +static void +search_thread(void *arg) +{ + int i; + int count; + int seed; + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + ESL_SQ dbsq; + ESL_STOPWATCH *w = NULL; /* timing stopwatch */ + P7_BUILDER *bld = NULL; /* HMM construction configuration */ + P7_BG *bg = NULL; /* null model */ + P7_PIPELINE *pli = NULL; /* work pipeline */ + P7_TOPHITS *th = NULL; /* top hit results */ + P7_PROFILE *gm = NULL; /* generic model */ + P7_OPROFILE *om = NULL; /* optimized query profile */ + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + w = esl_stopwatch_Create(); + bg = p7_bg_Create(info->abc); + esl_stopwatch_Start(w); + + /* set up the dummy description and accession fields */ + dbsq.desc = ""; + dbsq.acc = ""; + + /* process a query sequence or hmm */ + if (info->seq != NULL) { + bld = p7_builder_Create(NULL, info->abc); + if ((seed = esl_opt_GetInteger(info->opts, "--seed")) > 0) { + esl_randomness_Init(bld->r, seed); + bld->do_reseeding = TRUE; + } + bld->EmL = esl_opt_GetInteger(info->opts, "--EmL"); + bld->EmN = esl_opt_GetInteger(info->opts, "--EmN"); + bld->EvL = esl_opt_GetInteger(info->opts, "--EvL"); + bld->EvN = esl_opt_GetInteger(info->opts, "--EvN"); + bld->EfL = esl_opt_GetInteger(info->opts, "--EfL"); + bld->EfN = esl_opt_GetInteger(info->opts, "--EfN"); + bld->Eft = esl_opt_GetReal (info->opts, "--Eft"); + + if (esl_opt_IsOn(info->opts, "--mxfile")) status = p7_builder_SetScoreSystem (bld, esl_opt_GetString(info->opts, "--mxfile"), NULL, esl_opt_GetReal(info->opts, "--popen"), esl_opt_GetReal(info->opts, "--pextend"), bg); + else status = p7_builder_LoadScoreSystem(bld, esl_opt_GetString(info->opts, "--mx"), esl_opt_GetReal(info->opts, "--popen"), esl_opt_GetReal(info->opts, "--pextend"), bg); + if (status != eslOK) { + //client_error(info->sock, status, "hmmgpmd: failed to set single query sequence score system: %s", bld->errbuf); + fprintf(stderr, "hmmpgmd: failed to set single query sequence score system: %s", bld->errbuf); + pthread_exit(NULL); + return; + } + p7_SingleBuilder(bld, info->seq, bg, NULL, NULL, NULL, &om); /* bypass HMM - only need model */ + p7_builder_Destroy(bld); + } else { + gm = p7_profile_Create (info->hmm->M, info->abc); + om = p7_oprofile_Create(info->hmm->M, info->abc); + p7_ProfileConfig(info->hmm, bg, gm, 100, p7_LOCAL); + p7_oprofile_Convert(gm, om); + } + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(info->opts, om->M, 100, FALSE, p7_SEARCH_SEQS); + p7_pli_NewModel(pli, om, bg); + + if (pli->Z_setby == p7_ZSETBY_NTARGETS) pli->Z = info->db_Z; + + /* loop until all sequences have been processed */ + count = 1; + while (count > 0) { + int inx; + int blksz; + HMMER_SEQ **sq; + + /* grab the next block of sequences */ + if (pthread_mutex_lock(info->inx_mutex) != 0) p7_Fail("mutex lock failed"); + inx = *info->inx; + blksz = *info->blk_size; + if (inx > *info->limit) { + blksz /= 5; + if (blksz < 1000) { + *info->limit = info->sq_cnt * 2; + } else { + *info->limit = inx + (info->sq_cnt - inx) * 2 / 3; + } + } + *info->blk_size = blksz; + *info->inx += blksz; + if (pthread_mutex_unlock(info->inx_mutex) != 0) p7_Fail("mutex unlock failed"); + + sq = info->sq_list + inx; + + count = info->sq_cnt - inx; + if (count > blksz) count = blksz; + + /* Main loop: */ + for (i = 0; i < count; ++i, ++sq) { + if ( !(info->range_list) || hmmpgmd_IsWithinRanges ((*sq)->idx, info->range_list)) { + dbsq.name = (*sq)->name; + dbsq.dsq = (*sq)->dsq; + dbsq.n = (*sq)->n; + dbsq.idx = (*sq)->idx; + if((*sq)->desc != NULL) dbsq.desc = (*sq)->desc; + + p7_bg_SetLength(bg, dbsq.n); + p7_oprofile_ReconfigLength(om, dbsq.n); + + p7_Pipeline(pli, om, bg, &dbsq, NULL, th); + + p7_pipeline_Reuse(pli); + } + } + } + + /* make available the pipeline objects to the main thread */ + info->th = th; + info->pli = pli; + + /* clean up */ + p7_bg_Destroy(bg); + p7_oprofile_Destroy(om); + + if (gm != NULL) p7_profile_Destroy(gm); + + esl_stopwatch_Stop(w); + info->elapsed = w->elapsed; + + esl_stopwatch_Destroy(w); + + esl_threads_Finished(obj, workeridx); + + pthread_exit(NULL); + return; +} + +static void +scan_thread(void *arg) +{ + int i; + int count; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + + ESL_STOPWATCH *w; + + P7_BG *bg = NULL; /* null model */ + P7_PIPELINE *pli = NULL; /* work pipeline */ + P7_TOPHITS *th = NULL; /* top hit results */ + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + w = esl_stopwatch_Create(); + esl_stopwatch_Start(w); + + /* Convert to an optimized model */ + bg = p7_bg_Create(info->abc); + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(info->opts, 100, 100, FALSE, p7_SCAN_MODELS); + + p7_pli_NewSeq(pli, info->seq); + + /* loop until all sequences have been processed */ + count = 1; + while (count > 0) { + int inx; + int blksz; + P7_OPROFILE **om; + + /* grab the next block of sequences */ + if (pthread_mutex_lock(info->inx_mutex) != 0) p7_Fail("mutex lock failed"); + inx = *info->inx; + blksz = *info->blk_size; + if (inx > *info->limit) { + blksz /= 5; + if (blksz < 1000) { + *info->limit = info->om_cnt * 2; + } else { + *info->limit = inx + (info->om_cnt - inx) * 2 / 3; + } + } + *info->blk_size = blksz; + *info->inx += blksz; + if (pthread_mutex_unlock(info->inx_mutex) != 0) p7_Fail("mutex unlock failed"); + + om = info->om_list + inx; + count = info->om_cnt - inx; + if (count > blksz) count = blksz; + + /* Main loop: */ + for (i = 0; i < count; ++i, ++om) { + p7_pli_NewModel(pli, *om, bg); + p7_bg_SetLength(bg, info->seq->n); + p7_oprofile_ReconfigLength(*om, info->seq->n); + + p7_Pipeline(pli, *om, bg, info->seq, NULL, th); + p7_pipeline_Reuse(pli); + } + } + + /* make available the pipeline objects to the main thread */ + info->th = th; + info->pli = pli; + + /* clean up */ + p7_bg_Destroy(bg); + + esl_stopwatch_Stop(w); + info->elapsed = w->elapsed; + + esl_stopwatch_Destroy(w); + + esl_threads_Finished(obj, workeridx); + + pthread_exit(NULL); + return; +} + + +static void +send_results(int fd, ESL_STOPWATCH *w, P7_TOPHITS *th, P7_PIPELINE *pli){ + HMMD_SEARCH_STATS stats; + HMMD_SEARCH_STATUS status; + uint8_t **buf = NULL; // Buffer for the main results message + uint8_t **buf2 = NULL; // Buffer for the initial HMMD_SEARCH_STATUS message + uint8_t *buf_ptr = NULL; + uint8_t *buf2_ptr = NULL; + uint32_t n = 0; // index within buffer of serialized data + uint32_t nalloc = 0; // Size of serialized buffer + + // set up handles to buffers + buf = &buf_ptr; + buf2 = &buf2_ptr; + + + /* Start filling out the fixed-length structures to be sent */ + memset(&status, 0, sizeof(HMMD_SEARCH_STATUS)); /* silence valgrind errors - zero out entire structure including its padding */ + status.status = eslOK; + status.msg_size = sizeof(stats); + + /* copy the search stats */ + stats.elapsed = w->elapsed; + stats.user = w->user; + stats.sys = w->sys; + + stats.nmodels = pli->nmodels; + stats.nseqs = pli->nseqs; + stats.n_past_msv = pli->n_past_msv; + stats.n_past_bias = pli->n_past_bias; + stats.n_past_vit = pli->n_past_vit; + stats.n_past_fwd = pli->n_past_fwd; + + stats.Z = pli->Z; + stats.domZ = pli->domZ; + stats.Z_setby = pli->Z_setby; + stats.domZ_setby = pli->domZ_setby; + + stats.nhits = th->N; + stats.nreported = th->nreported; + stats.nincluded = th->nincluded; + stats.hit_offsets = NULL; // This field is only used when sending results back to the client + if(p7_hmmd_search_stats_Serialize(&stats, buf, &n, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATS failed", errno); + } + + // and then the hits + for(int i =0; i< stats.nhits; i++){ + if(p7_hit_Serialize(&(th->unsrt[i]), buf, &n, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing P7_HIT failed", errno); + } + } + + status.msg_size = n; // n will have the number of bytes used to serialize the main data block + n = 0; + nalloc = 0; // reset these to serialize status object + + // Serialize the search_status object + if(hmmd_search_status_Serialize(&status, buf2, &n, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATUS failed", errno); + } + + // Send the status object + if (writen(fd, buf2_ptr, n) != n) LOG_FATAL_MSG("write", errno); + + // And the serialized data + if (writen(fd, buf_ptr, status.msg_size) != status.msg_size) LOG_FATAL_MSG("write", errno); + free(buf_ptr); + free(buf2_ptr); + printf("Bytes: %" PRId64 " hits: %" PRId64 " sent on socket %d\n", status.msg_size, stats.nhits, fd); + fflush(stdout); +} + + +static int +setup_masterside_comm(ESL_GETOPTS *opts) +{ + int fd = -1; + int cnt; + int sec; + int connected; + + struct sockaddr_in addr; + + /* create a reliable, stream socket using TCP */ + if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) LOG_FATAL_MSG("socket", errno); + + /* construct the server address structure */ + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(esl_opt_GetInteger(opts, "--wport")); + if ((inet_pton(AF_INET, esl_opt_GetString(opts, "--worker"), &addr.sin_addr)) < 0) LOG_FATAL_MSG("inet pton", errno); + + /* try to connect to the master server */ + cnt = 0; + sec = 1; + connected = -1; + while (connected < 0) { + /* establish the connection to the master server */ + if ((connected = connect(fd, (struct sockaddr *) &addr, sizeof(addr))) < 0) { + if (errno != ECONNREFUSED) LOG_FATAL_MSG("connect", errno); + + /* the master server is not listening. sleep and try again */ + sleep(sec); + if (++cnt > 10) { + cnt = 0; + if (sec < 64) sec *= 2; + } + } + } + + return fd; +} + +#endif /*HMMER_THREADS*/ + + + diff --git a/bioinformaticsProject/hmmer/src/hmmdwrkr_shard.c b/bioinformaticsProject/hmmer/src/hmmdwrkr_shard.c new file mode 100644 index 0000000..566e55f --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmdwrkr_shard.c @@ -0,0 +1,921 @@ +/* worker side of the hmmer daemon + */ +#include "p7_config.h" + +#ifdef HMMER_THREADS + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_NETINET_IN_H +#include /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */ +#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */ +#include +#include +#include + +#ifndef HMMER_THREADS +#error "Program requires pthreads be enabled." +#endif /*HMMER_THREADS*/ + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" +#include "esl_threads.h" + +#include "hmmer.h" +#include "hmmpgmd.h" +#include "hmmpgmd_shard.h" +#include "cachedb.h" +#include "cachedb_shard.h" +#include "p7_hmmcache.h" + +#define MAX_WORKERS 64 +#define MAX_BUFFER 4096 + +#define CONF_FILE "/etc/hmmpgmd.conf" + +typedef struct { + HMMER_SEQ **sq_list; /* list of sequences to process */ + int sq_cnt; /* number of sequences */ + int db_Z; /* true number of sequences */ + + P7_OPROFILE **om_list; /* list of profiles to process */ + int om_cnt; /* number of profiles */ + + pthread_mutex_t *inx_mutex; /* protect data */ + int *blk_size; /* sequences per block */ + int *limit; /* point to decrease block size */ + int *inx; /* next index to process */ + + P7_HMM *hmm; /* query HMM */ + ESL_SQ *seq; /* query sequence */ + ESL_ALPHABET *abc; /* digital alphabet */ + ESL_GETOPTS *opts; /* search specific options */ + + RANGE_LIST *range_list; /* (optional) list of ranges searched within the seqdb */ + + double elapsed; /* elapsed search time */ + + /* Structure created and populated by the individual threads. + * The main thread is responsible for freeing up the memory. + */ + P7_PIPELINE *pli; /* work pipeline */ + P7_TOPHITS *th; /* top hit results */ +} WORKER_INFO; + +typedef struct { + int fd; /* socket connection to server */ + int ncpus; /* number of cpus to use */ + + P7_SEQCACHE *seq_db; /* cached sequence database */ + P7_HMMCACHE *hmm_db; /* cached hmm database */ +} WORKER_ENV; + + +static void +free_QueueData_shard(QUEUE_DATA_SHARD *data) +{ + /* free the query data */ + esl_getopts_Destroy(data->opts); + + if (data->abc != NULL) esl_alphabet_Destroy(data->abc); + if (data->hmm != NULL) p7_hmm_Destroy(data->hmm); + if (data->seq != NULL) esl_sq_Destroy(data->seq); + if (data->cmd != NULL) free(data->cmd); + memset(data, 0, sizeof(*data)); + free(data); +} + +static void process_InitCmd(HMMD_COMMAND_SHARD *cmd, WORKER_ENV *env); +static void process_SearchCmd(HMMD_COMMAND_SHARD *cmd, WORKER_ENV *env, QUEUE_DATA_SHARD *query); +static void process_Shutdown(HMMD_COMMAND_SHARD *cmd, WORKER_ENV *env); + +static QUEUE_DATA_SHARD *process_QueryCmd(HMMD_COMMAND_SHARD *cmd, WORKER_ENV *env); + +static int setup_masterside_comm(ESL_GETOPTS *opts); + +static void send_results(int fd, ESL_STOPWATCH *w, P7_TOPHITS *th, P7_PIPELINE *pli); + +#define BLOCK_SIZE 1000 +static void search_thread(void *arg); +static void scan_thread(void *arg); + +static void +print_timings(int i, double elapsed, P7_PIPELINE *pli) +{ + char buf1[16]; + int h, m, s, hs; + + h = (int) (elapsed / 3600.); + m = (int) (elapsed / 60.) - h * 60; + s = (int) (elapsed) - h * 3600 - m * 60; + hs = (int) (elapsed * 100.) - h * 360000 - m * 6000 - s * 100; + sprintf(buf1, "%02d:%02d.%02d", m,s,hs); + + fprintf (stdout, "%2d %9" PRId64 " %9" PRId64 " %7" PRId64 " %7" PRId64 " %6" PRId64 " %5" PRId64 " %s\n", + i, pli->nseqs, pli->nres, pli->n_past_msv, pli->n_past_bias, pli->n_past_vit, pli->n_past_fwd, buf1); +} + +static int +read_Command(HMMD_COMMAND_SHARD **ret_cmd, WORKER_ENV *env) +{ + HMMD_HEADER hdr; + HMMD_COMMAND_SHARD *cmd = NULL; + int n; + + /* read the command header */ + if (readn(env->fd, &hdr, sizeof(hdr)) == -1) { + if (errno && errno != ECONNREFUSED) LOG_FATAL_MSG("read", errno); + return eslEOD; + } + + /* read the command data */ + n = MSG_SIZE(&hdr); + if ((cmd = malloc(n)) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(cmd, 0, n); /* avoid uninitialized bytes. remove this, if we ever serialize/deserialize structures properly */ + cmd->hdr.command = hdr.command; + cmd->hdr.length = hdr.length; + if (hdr.length > 0) { + if (readn(env->fd, &cmd->init, hdr.length) == -1) { + if (errno && errno != ECONNREFUSED) LOG_FATAL_MSG("read", errno); + return eslEOD; + } + } + + *ret_cmd = cmd; + return eslOK; +} + +void +worker_process_shard(ESL_GETOPTS *go) +{ + HMMD_COMMAND_SHARD *cmd = NULL; /* see hmmpgmd.h */ + int shutdown = 0; + WORKER_ENV env; + int status; + + QUEUE_DATA_SHARD *query = NULL; + + /* Initializations */ + impl_Init(); + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + + env.ncpus = ESL_MIN(esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + + env.hmm_db = NULL; + env.seq_db = NULL; + env.fd = setup_masterside_comm(go); + + while (!shutdown) + { + if ((status = read_Command(&cmd, &env)) != eslOK) break; + + + switch (cmd->hdr.command) { + case HMMD_CMD_INIT: /* printf("Worker received init command\n"); */ process_InitCmd (cmd, &env); break; + case HMMD_CMD_SCAN: + { + query = process_QueryCmd(cmd, &env); + process_SearchCmd(cmd, &env, query); + free_QueueData_shard(query); + } + break; + case HMMD_CMD_SEARCH: + query = process_QueryCmd(cmd, &env); + process_SearchCmd(cmd, &env, query); + free_QueueData_shard(query); + break; + case HMMD_CMD_SHUTDOWN: process_Shutdown (cmd, &env); shutdown = 1; break; + default: p7_syslog(LOG_ERR,"[%s:%d] - unknown command %d (%d)\n", __FILE__, __LINE__, cmd->hdr.command, cmd->hdr.length); + } + + free(cmd); + cmd = NULL; + } + + if (env.hmm_db) p7_hmmcache_Close(env.hmm_db); + if (env.seq_db) p7_seqcache_Close(env.seq_db); + if (env.fd != -1) close(env.fd); + return; +} + + +static void +process_SearchCmd(HMMD_COMMAND_SHARD *cmd, WORKER_ENV *env, QUEUE_DATA_SHARD *query) +{ + int i; + int cnt; + int limit; + int status; + int blk_size; + WORKER_INFO *info = NULL; + ESL_ALPHABET *abc; + ESL_STOPWATCH *w; + ESL_THREADS *threadObj = NULL; + pthread_mutex_t inx_mutex; + int current_index; + time_t date; + char timestamp[32]; + + w = esl_stopwatch_Create(); + abc = esl_alphabet_Create(eslAMINO); + + if (pthread_mutex_init(&inx_mutex, NULL) != 0) p7_Fail("mutex init failed"); + ESL_ALLOC(info, sizeof(*info) * env->ncpus); + + /* Log the current time (at search start) */ + date = time(NULL); + ctime_r(&date, timestamp); + printf("\n%s", timestamp); /* note that ctime_r() leaves \n on end of timestamp */ + + /* initialize thread data */ + esl_stopwatch_Start(w); + + info->range_list = NULL; + if (esl_opt_IsUsed(query->opts, "--seqdb_ranges")) { + ESL_ALLOC(info->range_list, sizeof(RANGE_LIST)); + hmmpgmd_GetRanges(info->range_list, esl_opt_GetString(query->opts, "--seqdb_ranges")); + /* printf("Range-list query detected, with ranges: "); + for(int temp = 0; temp < info->range_list->N; temp++){ + if(temp > 0){ + printf(", "); + } + printf("%d..%d", info->range_list->starts[temp], info->range_list->ends[temp]); + } + printf("\n"); */ + } + + + if (query->cmd_type == HMMD_CMD_SEARCH) threadObj = esl_threads_Create(&search_thread); + else threadObj = esl_threads_Create(&scan_thread); + + if (query->query_type == HMMD_SEQUENCE) { + fprintf(stdout, "Search seq %s [L=%ld]", query->seq->name, (long) query->seq->n); + } else { + fprintf(stdout, "Search hmm %s [M=%d]", query->hmm->name, query->hmm->M); + } + fprintf(stdout, " vs %s DB %d [%d - %d]", + (query->cmd_type == HMMD_CMD_SEARCH) ? "SEQ" : "HMM", + query->dbx, query->inx, query->inx + query->cnt - 1); + + if (info->range_list) + fprintf(stdout, " in range(s) %s", esl_opt_GetString(query->opts, "--seqdb_ranges")); + + fprintf(stdout, "\n"); + + /* Create processing pipeline and hit list */ + for (i = 0; i < env->ncpus; ++i) { + info[i].abc = query->abc; + info[i].hmm = query->hmm; + info[i].seq = query->seq; + info[i].opts = query->opts; + + info[i].range_list = info[0].range_list; + + info[i].th = NULL; + info[i].pli = NULL; + + info[i].inx_mutex = &inx_mutex; + info[i].inx = ¤t_index;/* this is confusing trickery - to share a single variable across all threads */ + info[i].blk_size = &blk_size; /* ditto */ + info[i].limit = &limit; /* ditto. TODO: come back and clean this up. */ + + if (query->cmd_type == HMMD_CMD_SEARCH) { + HMMER_SEQ **list = env->seq_db->db[query->dbx].list; + info[i].sq_list = &list[0]; // Always search the whole DB in sharded mode + //info[i].sq_cnt = query->cnt; + info[i].sq_cnt = env->seq_db->db[query->dbx].count; + info[i].db_Z = env->seq_db->db[query->dbx].K; + info[i].om_list = NULL; + info[i].om_cnt = 0; + } else { + info[i].sq_list = NULL; + info[i].sq_cnt = 0; + info[i].db_Z = 0; + info[i].om_list = &env->hmm_db->list[query->inx]; + info[i].om_cnt = query->cnt; + } + + esl_threads_AddThread(threadObj, &info[i]); + } + + /* try block size of 5000. we will need enough sequences for four + * blocks per thread or better. + */ + blk_size = 5000; + cnt = query->cnt / env->ncpus / blk_size; + limit = query->cnt * 2 / 3; + if (cnt < 4) { + /* try block size of 1000 */ + blk_size /= 5; + cnt = query->cnt / env->ncpus / blk_size; + if (cnt < 4) { + /* still not enough. just divide it up into one block per thread */ + blk_size = query->cnt / env->ncpus + 1; + limit = query->cnt * 2; + } + } + current_index = 0; + + esl_threads_WaitForStart(threadObj); + esl_threads_WaitForFinish(threadObj); + + esl_stopwatch_Stop(w); +#if 1 + fprintf (stdout, " Sequences Residues Elapsed\n"); + for (i = 0; i < env->ncpus; ++i) { + print_timings(i, info[i].elapsed, info[i].pli); + } +#endif + /* merge the results of the search results */ + for (i = 1; i < env->ncpus; ++i) { + p7_tophits_Merge(info[0].th, info[i].th); + p7_pipeline_Merge(info[0].pli, info[i].pli); + p7_pipeline_Destroy(info[i].pli); + p7_tophits_Destroy(info[i].th); + } + + print_timings(99, w->elapsed, info[0].pli); + send_results(env->fd, w, info[0].th, info[0].pli); + + /* free the last of the pipeline data */ + p7_pipeline_Destroy(info->pli); + p7_tophits_Destroy(info->th); + + esl_threads_Destroy(threadObj); + + pthread_mutex_destroy(&inx_mutex); + + if (info->range_list) { + if (info->range_list->starts) free(info->range_list->starts); + if (info->range_list->ends) free(info->range_list->ends); + free (info->range_list); + } + + free(info); + + esl_stopwatch_Destroy(w); + esl_alphabet_Destroy(abc); + + return; + + ERROR: + LOG_FATAL_MSG("malloc", errno); +} + +static QUEUE_DATA_SHARD * +process_QueryCmd(HMMD_COMMAND_SHARD *cmd, WORKER_ENV *env) +{ + int i; + int n; + int status; + + char *p; + char *name; + char *desc; + ESL_DSQ *dsq; + + QUEUE_DATA_SHARD *query = NULL; + + if ((query = malloc(sizeof(QUEUE_DATA_SHARD))) == NULL) LOG_FATAL_MSG("malloc", errno); + memset(query, 0, sizeof(QUEUE_DATA_SHARD)); /* avoid uninitialized bytes. remove this, if we ever serialize/deserialize structures properly */ + + printf("CMD: %d %d\n", cmd->hdr.command, cmd->srch.query_type); + + query->cmd_type = cmd->hdr.command; + query->query_type = cmd->srch.query_type; + query->dbx = cmd->srch.db_inx; + query->inx = cmd->srch.inx; + query->cnt = cmd->srch.cnt; + query->sock = env->fd; + query->cmd = NULL; + + p = cmd->srch.data; + + /* process search specific options */ + status = process_searchopts(env->fd, p, &query->opts); + if (status != eslOK) LOG_FATAL_MSG("esl_getopts_Create", status); + + query->hmm = NULL; + query->seq = NULL; + + query->abc = esl_alphabet_Create(eslAMINO); + + /* check if we are processing a sequence or hmm */ + if (cmd->srch.query_type == HMMD_SEQUENCE) { + n = cmd->srch.query_length - 2; + name = p + cmd->srch.opts_length; + desc = name + strlen(name) + 1; + dsq = (ESL_DSQ *) (desc + strlen(desc) + 1); + query->seq = esl_sq_CreateDigitalFrom(query->abc, name, dsq, n, desc, NULL, NULL); + } else { + P7_HMM thmm; + P7_HMM *hmm = p7_hmm_CreateShell(); + + /* allocate memory for the hmm and initialize */ + p += cmd->srch.opts_length; + memcpy(&thmm, p, sizeof(P7_HMM)); + + hmm->flags = thmm.flags; + p7_hmm_CreateBody(hmm, cmd->srch.query_length, query->abc); + p += sizeof(P7_HMM); + + /* initialize fields */ + hmm->nseq = thmm.nseq; + hmm->eff_nseq = thmm.eff_nseq; + hmm->max_length = thmm.max_length; + hmm->checksum = thmm.checksum; + hmm->ctime = NULL; + hmm->comlog = NULL; + + for (i = 0; i < p7_NCUTOFFS; i++) hmm->cutoff[i] = thmm.cutoff[i]; + for (i = 0; i < p7_NEVPARAM; i++) hmm->evparam[i] = thmm.evparam[i]; + for (i = 0; i < p7_MAXABET; i++) hmm->compo[i] = thmm.compo[i]; + + /* fill in the hmm pointers */ + n = sizeof(float) * (hmm->M + 1) * p7H_NTRANSITIONS; + memcpy(*hmm->t, p, n); p += n; + + n = sizeof(float) * (hmm->M + 1) * query->abc->K; + memcpy(*hmm->mat, p, n); p += n; + memcpy(*hmm->ins, p, n); p += n; + + if (thmm.name) { hmm->name = strdup(p); p += strlen(hmm->name) + 1; } + if (thmm.acc) { hmm->acc = strdup(p); p += strlen(hmm->acc) + 1; } + if (thmm.desc) { hmm->desc = strdup(p); p += strlen(hmm->desc) + 1; } + + n = hmm->M + 2; + if (hmm->flags & p7H_RF) { memcpy(hmm->rf, p, n); p += n; } + if (hmm->flags & p7H_MMASK) { memcpy(hmm->mm, p, n); p += n; } + if (hmm->flags & p7H_CONS) { memcpy(hmm->consensus, p, n); p += n; } + if (hmm->flags & p7H_CS) { memcpy(hmm->cs, p, n); p += n; } + if (hmm->flags & p7H_CA) { memcpy(hmm->ca, p, n); p += n; } + + n = sizeof(int) * (hmm->M + 1); + if (hmm->flags & p7H_MAP) { memcpy(hmm->map, p, n); p += n; } + + query->hmm = hmm; + } + + return query; +} + +static void +process_Shutdown(HMMD_COMMAND_SHARD *cmd, WORKER_ENV *env) +{ + int n; + + n = MSG_SIZE(cmd); + cmd->hdr.status = eslOK; + if (writen(env->fd, cmd, n) != n) { + LOG_FATAL_MSG("write error", errno); + } +} + +static void +process_InitCmd(HMMD_COMMAND_SHARD *cmd, WORKER_ENV *env) +{ + char *p; + int n; + int status; + + if (env->hmm_db != NULL) p7_hmmcache_Close(env->hmm_db); + if (env->seq_db != NULL) p7_seqcache_Close(env->seq_db); + + env->hmm_db = NULL; + env->seq_db = NULL; + + /* load the sequence database */ + if (cmd->init.db_cnt != 0) { + P7_SEQCACHE *sdb = NULL; + //printf("This worker assigned shard %d out of %d\n", cmd->init.my_shard, cmd->init.num_shards); + + p = cmd->init.data + cmd->init.seqdb_off; +// printf("Opening database file %s\n", p); + status = p7_seqcache_Open_shard(p, &sdb, NULL, cmd->init.my_shard, cmd->init.num_shards); + if (status != eslOK) { + p7_syslog(LOG_ERR,"[%s:%d] - p7_seqcache_Open %s error %d\n", __FILE__, __LINE__, p, status); + LOG_FATAL_MSG("cache seqdb error", status); + } +// printf("Database opened\n"); + /* validate the sequence database */ + cmd->init.sid[MAX_INIT_DESC-1] = 0; + if (strcmp (cmd->init.sid, sdb->id) != 0 || cmd->init.db_cnt != sdb->db_cnt /*|| cmd->init.seq_cnt != sdb->count*/) { + p7_syslog(LOG_ERR,"[%s:%d] - seq db %s: integrity error %s - %s\n", __FILE__, __LINE__, p, cmd->init.sid, sdb->id); + LOG_FATAL_MSG("database integrity error", 0); + } +// printf("Database validated\n"); + env->seq_db = sdb; + } + + /* load the hmm database */ + if (cmd->init.hmm_cnt != 0) { + P7_HMMCACHE *hcache = NULL; + // printf("Opening HMM database %s\n", p); + p = cmd->init.data + cmd->init.hmmdb_off; + + status = p7_hmmcache_Open(p, &hcache, NULL); + if (status != eslOK) { + p7_syslog(LOG_ERR,"[%s:%d] - p7_hmmcache_Open %s error %d\n", __FILE__, __LINE__, p, status); + LOG_FATAL_MSG("cache hmmdb error", status); + } + + if ( (status = p7_hmmcache_SetNumericNames(hcache)) != eslOK){ + p7_syslog(LOG_ERR,"[%s:%d] - p7_hmmcache_SetNumericNames %s error %d\n", __FILE__, __LINE__, p, status); + LOG_FATAL_MSG("cache hmmdb error", status); + } + + /* validate the hmm database */ + cmd->init.hid[MAX_INIT_DESC-1] = 0; + /* TODO: come up with a new pressed format with an id to compare - strcmp (cmd->init.hid, hdb->id) != 0 */ + if (cmd->init.hmm_cnt != 1 || cmd->init.model_cnt != hcache->n) { + p7_syslog(LOG_ERR,"[%s:%d] - hmm db %s: integrity error\n", __FILE__, __LINE__, p); + LOG_FATAL_MSG("database integrity error", 0); + } + + env->hmm_db = hcache; + + printf("Loaded profile db %s; models: %d memory: %" PRId64 "\n", + p, hcache->n, (uint64_t) p7_hmmcache_Sizeof(hcache)); + + } + + /* if stdout is redirected at the commandline, it causes printf's to be buffered, + * which means status logging isn't printed. This line strongly requests unbuffering, + * which should be ok, given the low stdout load of hmmpgmd + */ + setvbuf (stdout, NULL, _IONBF, BUFSIZ); + printf("Data loaded into memory. Worker is ready.\n"); + setvbuf (stdout, NULL, _IOFBF, BUFSIZ); + + + /* write back to the master that we are on line */ + n = MSG_SIZE(cmd); + cmd->hdr.status = eslOK; + if (writen(env->fd, cmd, n) != n) { + LOG_FATAL_MSG("write error", errno); + } +} + + +static void +search_thread(void *arg) +{ + int i; + int count; + int seed; + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + ESL_SQ dbsq; + ESL_STOPWATCH *w = NULL; /* timing stopwatch */ + P7_BUILDER *bld = NULL; /* HMM construction configuration */ + P7_BG *bg = NULL; /* null model */ + P7_PIPELINE *pli = NULL; /* work pipeline */ + P7_TOPHITS *th = NULL; /* top hit results */ + P7_PROFILE *gm = NULL; /* generic model */ + P7_OPROFILE *om = NULL; /* optimized query profile */ + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + w = esl_stopwatch_Create(); + bg = p7_bg_Create(info->abc); + esl_stopwatch_Start(w); + + /* set up the dummy description and accession fields */ + dbsq.desc = ""; + dbsq.acc = ""; + + /* process a query sequence or hmm */ + if (info->seq != NULL) { + bld = p7_builder_Create(NULL, info->abc); + if ((seed = esl_opt_GetInteger(info->opts, "--seed")) > 0) { + esl_randomness_Init(bld->r, seed); + bld->do_reseeding = TRUE; + } + bld->EmL = esl_opt_GetInteger(info->opts, "--EmL"); + bld->EmN = esl_opt_GetInteger(info->opts, "--EmN"); + bld->EvL = esl_opt_GetInteger(info->opts, "--EvL"); + bld->EvN = esl_opt_GetInteger(info->opts, "--EvN"); + bld->EfL = esl_opt_GetInteger(info->opts, "--EfL"); + bld->EfN = esl_opt_GetInteger(info->opts, "--EfN"); + bld->Eft = esl_opt_GetReal (info->opts, "--Eft"); + + if (esl_opt_IsOn(info->opts, "--mxfile")) status = p7_builder_SetScoreSystem (bld, esl_opt_GetString(info->opts, "--mxfile"), NULL, esl_opt_GetReal(info->opts, "--popen"), esl_opt_GetReal(info->opts, "--pextend"), bg); + else status = p7_builder_LoadScoreSystem(bld, esl_opt_GetString(info->opts, "--mx"), esl_opt_GetReal(info->opts, "--popen"), esl_opt_GetReal(info->opts, "--pextend"), bg); + if (status != eslOK) { + //client_error(info->sock, status, "hmmgpmd: failed to set single query sequence score system: %s", bld->errbuf); + fprintf(stderr, "hmmpgmd: failed to set single query sequence score system: %s", bld->errbuf); + pthread_exit(NULL); + return; + } + p7_SingleBuilder(bld, info->seq, bg, NULL, NULL, NULL, &om); /* bypass HMM - only need model */ + p7_builder_Destroy(bld); + } else { + gm = p7_profile_Create (info->hmm->M, info->abc); + om = p7_oprofile_Create(info->hmm->M, info->abc); + p7_ProfileConfig(info->hmm, bg, gm, 100, p7_LOCAL); + p7_oprofile_Convert(gm, om); + } + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(info->opts, om->M, 100, FALSE, p7_SEARCH_SEQS); + p7_pli_NewModel(pli, om, bg); + + if (pli->Z_setby == p7_ZSETBY_NTARGETS) pli->Z = info->db_Z; + if (info->range_list){ + // printf("Worker thread starting range-list search\n"); + } + /* loop until all sequences have been processed */ + count = 1; + while (count > 0) { + int inx; + int blksz; + HMMER_SEQ **sq; + + /* grab the next block of sequences */ + if (pthread_mutex_lock(info->inx_mutex) != 0) p7_Fail("mutex lock failed"); + inx = *info->inx; + blksz = *info->blk_size; + if (inx > *info->limit) { + blksz /= 5; + if (blksz < 1000) { + *info->limit = info->sq_cnt * 2; + } else { + *info->limit = inx + (info->sq_cnt - inx) * 2 / 3; + } + } + *info->blk_size = blksz; + *info->inx += blksz; + if (pthread_mutex_unlock(info->inx_mutex) != 0) p7_Fail("mutex unlock failed"); + + sq = info->sq_list + inx; + + count = info->sq_cnt - inx; + if (count > blksz) count = blksz; + + /* Main loop: */ + for (i = 0; i < count; ++i, ++sq) { + /* if( strtol((*sq)->name, NULL, 10) != (*sq)->idx){ + printf("Sequence with index %d had name %s\n", (*sq)->idx, (*sq)->name); + } */ + if ( !(info->range_list) || hmmpgmd_IsWithinRanges ((*sq)->idx, info->range_list)) { + dbsq.name = (*sq)->name; + dbsq.dsq = (*sq)->dsq; + dbsq.n = (*sq)->n; + dbsq.idx = (*sq)->idx; + if((*sq)->desc != NULL) dbsq.desc = (*sq)->desc; + + p7_bg_SetLength(bg, dbsq.n); + p7_oprofile_ReconfigLength(om, dbsq.n); + + p7_Pipeline(pli, om, bg, &dbsq, NULL, th); + + p7_pipeline_Reuse(pli); + } + } + } + + /* make available the pipeline objects to the main thread */ + info->th = th; + info->pli = pli; + + /* clean up */ + p7_bg_Destroy(bg); + p7_oprofile_Destroy(om); + + if (gm != NULL) p7_profile_Destroy(gm); + + esl_stopwatch_Stop(w); + info->elapsed = w->elapsed; + + esl_stopwatch_Destroy(w); + + esl_threads_Finished(obj, workeridx); + + pthread_exit(NULL); + return; +} + +static void +scan_thread(void *arg) +{ + int i; + int count; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + + ESL_STOPWATCH *w; + + P7_BG *bg = NULL; /* null model */ + P7_PIPELINE *pli = NULL; /* work pipeline */ + P7_TOPHITS *th = NULL; /* top hit results */ + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + w = esl_stopwatch_Create(); + esl_stopwatch_Start(w); + + /* Convert to an optimized model */ + bg = p7_bg_Create(info->abc); + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(info->opts, 100, 100, FALSE, p7_SCAN_MODELS); + + p7_pli_NewSeq(pli, info->seq); + + /* loop until all sequences have been processed */ + count = 1; + while (count > 0) { + int inx; + int blksz; + P7_OPROFILE **om; + + /* grab the next block of sequences */ + if (pthread_mutex_lock(info->inx_mutex) != 0) p7_Fail("mutex lock failed"); + inx = *info->inx; + blksz = *info->blk_size; + if (inx > *info->limit) { + blksz /= 5; + if (blksz < 1000) { + *info->limit = info->om_cnt * 2; + } else { + *info->limit = inx + (info->om_cnt - inx) * 2 / 3; + } + } + *info->blk_size = blksz; + *info->inx += blksz; + if (pthread_mutex_unlock(info->inx_mutex) != 0) p7_Fail("mutex unlock failed"); + + om = info->om_list + inx; + count = info->om_cnt - inx; + if (count > blksz) count = blksz; + + /* Main loop: */ + for (i = 0; i < count; ++i, ++om) { + p7_pli_NewModel(pli, *om, bg); + p7_bg_SetLength(bg, info->seq->n); + p7_oprofile_ReconfigLength(*om, info->seq->n); + + p7_Pipeline(pli, *om, bg, info->seq, NULL, th); + p7_pipeline_Reuse(pli); + } + } + + /* make available the pipeline objects to the main thread */ + info->th = th; + info->pli = pli; + + /* clean up */ + p7_bg_Destroy(bg); + + esl_stopwatch_Stop(w); + info->elapsed = w->elapsed; + + esl_stopwatch_Destroy(w); + + esl_threads_Finished(obj, workeridx); + + pthread_exit(NULL); + return; +} + + +static void +send_results(int fd, ESL_STOPWATCH *w, P7_TOPHITS *th, P7_PIPELINE *pli){ + HMMD_SEARCH_STATS stats; + HMMD_SEARCH_STATUS status; + uint8_t **buf = NULL; // Buffer for the main results message + uint8_t **buf2 = NULL; // Buffer for the initial HMMD_SEARCH_STATUS message + uint8_t *buf_ptr = NULL; + uint8_t *buf2_ptr = NULL; + uint32_t n = 0; // index within buffer of serialized data + uint32_t nalloc = 0; // Size of serialized buffer + + // set up handles to buffers + buf = &buf_ptr; + buf2 = &buf2_ptr; + + + /* Start filling out the fixed-length structures to be sent */ + memset(&status, 0, sizeof(HMMD_SEARCH_STATUS)); /* silence valgrind errors - zero out entire structure including its padding */ + status.status = eslOK; + status.msg_size = sizeof(stats); + + /* copy the search stats */ + stats.elapsed = w->elapsed; + stats.user = w->user; + stats.sys = w->sys; + + stats.nmodels = pli->nmodels; + stats.nseqs = pli->nseqs; + stats.n_past_msv = pli->n_past_msv; + stats.n_past_bias = pli->n_past_bias; + stats.n_past_vit = pli->n_past_vit; + stats.n_past_fwd = pli->n_past_fwd; + + stats.Z = pli->Z; + stats.domZ = pli->domZ; + stats.Z_setby = pli->Z_setby; + stats.domZ_setby = pli->domZ_setby; + + stats.nhits = th->N; + stats.nreported = th->nreported; + stats.nincluded = th->nincluded; + stats.hit_offsets = NULL; // This field is only used when sending results back to the client + + // Build the main buffer of result data, starting with the stats object + if(p7_hmmd_search_stats_Serialize(&stats, buf, &n, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATS failed", errno); + } + + // and then the hits + for(int i =0; i< stats.nhits; i++){ + if(p7_hit_Serialize(&(th->unsrt[i]), buf, &n, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing P7_HIT failed", errno); + } + } + + status.msg_size = n; // n will have the number of bytes used to serialize the main data block + n = 0; + nalloc = 0; // reset these to serialize status object + + // Serialize the search_status object + if(hmmd_search_status_Serialize(&status, buf2, &n, &nalloc) != eslOK){ + LOG_FATAL_MSG("Serializing HMMD_SEARCH_STATUS failed", errno); + } + + // Send the status object + if (writen(fd, buf2_ptr, n) != n) LOG_FATAL_MSG("write", errno); + + // And the serialized data + if (writen(fd, buf_ptr, status.msg_size) != status.msg_size) LOG_FATAL_MSG("write", errno); + free(buf_ptr); + free(buf2_ptr); + printf("Bytes: %" PRId64 " hits: %" PRId64 " sent on socket %d\n", status.msg_size, stats.nhits, fd); + fflush(stdout); +} + +static int +setup_masterside_comm(ESL_GETOPTS *opts) +{ + int fd = -1; + int cnt; + int sec; + int connected; + + struct sockaddr_in addr; + + /* create a reliable, stream socket using TCP */ + if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) LOG_FATAL_MSG("socket", errno); + + /* construct the server address structure */ + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_port = htons(esl_opt_GetInteger(opts, "--wport")); + if ((inet_pton(AF_INET, esl_opt_GetString(opts, "--worker"), &addr.sin_addr)) < 0) LOG_FATAL_MSG("inet pton", errno); + + /* try to connect to the master server */ + cnt = 0; + sec = 1; + connected = -1; + while (connected < 0) { + /* establish the connection to the master server */ + if ((connected = connect(fd, (struct sockaddr *) &addr, sizeof(addr))) < 0) { + if (errno != ECONNREFUSED) LOG_FATAL_MSG("connect", errno); + + /* the master server is not listening. sleep and try again */ + sleep(sec); + if (++cnt > 10) { + cnt = 0; + if (sec < 64) sec *= 2; + } + } + } + + return fd; +} + +#endif /*HMMER_THREADS*/ + + + diff --git a/bioinformaticsProject/hmmer/src/hmmemit.c b/bioinformaticsProject/hmmer/src/hmmemit.c new file mode 100644 index 0000000..2a0f9b6 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmemit.c @@ -0,0 +1,273 @@ +/* hmmemit: sample sequence(s) from a profile HMM. + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_dmatrix.h" +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_random.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +#define EMITOPTS "-a,-c,-C,-p" +#define MODEOPTS "--local,--unilocal,--glocal,--uniglocal" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "-o", eslARG_OUTFILE,FALSE, NULL, NULL, NULL, NULL, NULL, "send sequence output to file , not stdout", 1 }, + { "-N", eslARG_INT, "1", NULL, "n>0", NULL, NULL, "-c,-C", "number of seqs to sample", 1 }, +/* options controlling what to emit */ + { "-a", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, EMITOPTS, "emit alignment", 2 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, EMITOPTS, "emit simple majority-rule consensus sequence", 2 }, + { "-C", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, EMITOPTS, "emit fancier consensus sequence (req's --minl, --minu)", 2 }, + { "-p", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, EMITOPTS, "sample sequences from profile, not core model", 2 }, +/* options controlling emission from profiles with -p */ + { "-L", eslARG_INT, "400", NULL, NULL, NULL, "-p", NULL, "set expected length from profile to ", 3 }, + { "--local", eslARG_NONE,"default",NULL, NULL, MODEOPTS, "-p", NULL, "configure profile in multihit local mode", 3 }, + { "--unilocal", eslARG_NONE, FALSE, NULL, NULL, MODEOPTS, "-p", NULL, "configure profile in unilocal mode", 3 }, + { "--glocal", eslARG_NONE, FALSE, NULL, NULL, MODEOPTS, "-p", NULL, "configure profile in multihit glocal mode", 3 }, + { "--uniglocal", eslARG_NONE, FALSE, NULL, NULL, MODEOPTS, "-p", NULL, "configure profile in unihit glocal mode", 3 }, +/* options controlling fancy consensus emission with -C */ + { "--minl", eslARG_REAL, "0.0", NULL, "0<=x<=1", NULL, "-C", NULL, "show consensus as 'any' (X/N) unless >= this fraction", 4 }, + { "--minu", eslARG_REAL, "0.0", NULL, "0<=x<=1", NULL, "-C", NULL, "show consensus as upper case if >= this fraction", 4 }, +/* other options */ + { "--seed", eslARG_INT, "0", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to ", 5 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options] "; +static char banner[] = "sample sequence(s) from a profile HMM"; + +static void cmdline_failure(char *argv0, char *format, ...); +static void cmdline_help(char *argv0, ESL_GETOPTS *go); + +static void emit_consensus(ESL_GETOPTS *go, FILE *ofp, int outfmt, P7_HMM *hmm); +static void emit_fancycons(ESL_GETOPTS *go, FILE *ofp, int outfmt, P7_HMM *hmm); +static void emit_alignment(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM *hmm); +static void emit_sequences(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM *hmm); + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; /* command line processing */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + ESL_RANDOMNESS *r = NULL; /* source of randomness */ + char *hmmfile = NULL; /* file to read HMM(s) from */ + P7_HMMFILE *hfp = NULL; /* open hmmfile */ + P7_HMM *hmm = NULL; /* HMM to emit from */ + FILE *ofp = NULL; /* output stream */ + int outfmt = 0; + int nhmms = 0; + int status; + char errbuf[eslERRBUFSIZE]; + + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) cmdline_failure(argv[0], "Failed to parse command line: %s\n", go->errbuf); + if (esl_opt_VerifyConfig(go) != eslOK) cmdline_failure(argv[0], "Error in configuration: %s\n", go->errbuf); + if (esl_opt_GetBoolean(go, "-h")) cmdline_help (argv[0], go); + if (esl_opt_ArgNumber(go) != 1) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n"); + + if ((hmmfile = esl_opt_GetArg(go, 1)) == NULL) cmdline_failure(argv[0], "Failed to get on cmdline: %s\n", go->errbuf); + + if ( esl_opt_IsOn(go, "-o") ) { + if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) esl_fatal("Failed to open output file %s", esl_opt_GetString(go, "-o")); + } else ofp = stdout; + + if (esl_opt_GetBoolean(go, "-a")) outfmt = eslMSAFILE_STOCKHOLM; + else outfmt = eslSQFILE_FASTA; + + r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "--seed")); + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslEOF) + { + if (status == eslEFORMAT) esl_fatal("Bad file format in HMM file %s:\n%s\n", hfp->fname, hfp->errbuf); + else if (status == eslEINCOMPAT) esl_fatal("HMM in %s is not in the expected %s alphabet\n", hfp->fname, esl_abc_DecodeType(abc->type)); + else if (status != eslOK) esl_fatal("Unexpected error in reading HMMs from %s\n", hfp->fname); + nhmms++; + + if (esl_opt_GetBoolean(go, "-c")) emit_consensus(go, ofp, outfmt, hmm); + else if (esl_opt_GetBoolean(go, "-C")) emit_fancycons(go, ofp, outfmt, hmm); + else if (esl_opt_GetBoolean(go, "-a")) emit_alignment(go, ofp, outfmt, r, hmm); + else emit_sequences(go, ofp, outfmt, r, hmm); + + + + p7_hmm_Destroy(hmm); + } + if (nhmms == 0) esl_fatal("Empty HMM file %s? No HMM data found.\n"); + + if (esl_opt_IsOn(go, "-o")) { fclose(ofp); } + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + p7_hmmfile_Close(hfp); + return eslOK; +} + + +static void +cmdline_failure(char *argv0, char *format, ...) +{ + va_list argp; + printf("\nERROR: "); + va_start(argp, format); + vfprintf(stdout, format, argp); + va_end(argp); + esl_usage(stdout, argv0, usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv0); + exit(1); +} + +static void +cmdline_help(char *argv0, ESL_GETOPTS *go) +{ + p7_banner (stdout, argv0, banner); + esl_usage (stdout, argv0, usage); + puts("\nCommon options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + puts("\nOptions controlling what to emit:"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + puts("\nOptions controlling emission from profiles with -p:"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 80); + puts("\nOptions controlling fancy consensus emission with -C:"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + puts("\nOther options::"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + exit(0); +} + +static void +emit_consensus(ESL_GETOPTS *go, FILE *ofp, int outfmt, P7_HMM *hmm) +{ + ESL_SQ *sq = NULL; + + if ((sq = esl_sq_CreateDigital(hmm->abc)) == NULL) esl_fatal("failed to allocate sequence"); + + if (p7_emit_SimpleConsensus(hmm, sq) != eslOK) esl_fatal("failed to create simple consensus seq"); + if (esl_sq_FormatName(sq, "%s-consensus", hmm->name) != eslOK) esl_fatal("failed to set sequence name"); + if (esl_sqio_Write(ofp, sq, outfmt, FALSE) != eslOK) esl_fatal("failed to write sequence"); + + esl_sq_Destroy(sq); + return; +} + +static void +emit_fancycons(ESL_GETOPTS *go, FILE *ofp, int outfmt, P7_HMM *hmm) +{ + ESL_SQ *sq = NULL; + float minl = esl_opt_GetReal(go, "--minl"); + float minu = esl_opt_GetReal(go, "--minu"); + + if ((sq = esl_sq_Create()) == NULL) esl_fatal("failed to allocate sequence"); + + if (p7_emit_FancyConsensus(hmm, minl, minu, sq) != eslOK) esl_fatal("failed to create consensus seq"); + if (esl_sq_FormatName(sq, "%s-consensus", hmm->name) != eslOK) esl_fatal("failed to set sequence name"); + if (esl_sqio_Write(ofp, sq, outfmt, FALSE) != eslOK) esl_fatal("failed to write sequence"); + + esl_sq_Destroy(sq); + return; +} + +static void +emit_alignment(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM *hmm) +{ + ESL_MSA *msa = NULL; + ESL_SQ **sq = NULL; + P7_TRACE **tr = NULL; + int N = esl_opt_GetInteger(go, "-N"); + int optflags = p7_ALL_CONSENSUS_COLS; + int i; + + if ((tr = malloc(sizeof(P7_TRACE *) * N)) == NULL) esl_fatal("failed to allocate trace array"); + if ((sq = malloc(sizeof(ESL_SQ *) * N)) == NULL) esl_fatal("failed to allocate seq array"); + for (i = 0; i < N; i++) + { + if ((sq[i] = esl_sq_CreateDigital(hmm->abc)) == NULL) esl_fatal("failed to allocate seq"); + if ((tr[i] = p7_trace_Create()) == NULL) esl_fatal("failed to allocate trace"); + } + + for (i = 0; i < N; i++) + { + if (p7_CoreEmit(r, hmm, sq[i], tr[i]) != eslOK) esl_fatal("Failed to emit sequence"); + if (esl_sq_FormatName(sq[i], "%s-sample%d", hmm->name, i+1) != eslOK) esl_fatal("Failed to set sequence name\n"); + } + + p7_tracealign_Seqs(sq, tr, N, hmm->M, optflags, hmm, &msa); + esl_msafile_Write(ofp, msa, outfmt); + + for (i = 0; i < N; i++) { p7_trace_Destroy(tr[i]); } free(tr); + for (i = 0; i < N; i++) { esl_sq_Destroy(sq[i]); } free(sq); + esl_msa_Destroy(msa); + return; +} + +static void +emit_sequences(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM *hmm) +{ + ESL_SQ *sq = NULL; + P7_TRACE *tr = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + int do_profile = esl_opt_GetBoolean(go, "-p"); + int N = esl_opt_GetInteger(go, "-N"); + int L = esl_opt_GetInteger(go, "-L"); + int mode = p7_LOCAL; + int nseq; + int status; + + if (esl_opt_GetBoolean(go, "--local")) mode = p7_LOCAL; + else if (esl_opt_GetBoolean(go, "--unilocal")) mode = p7_UNILOCAL; + else if (esl_opt_GetBoolean(go, "--glocal")) mode = p7_GLOCAL; + else if (esl_opt_GetBoolean(go, "--uniglocal")) mode = p7_UNIGLOCAL; + + if ((sq = esl_sq_CreateDigital(hmm->abc)) == NULL) esl_fatal("failed to allocate sequence"); + if ((tr = p7_trace_Create()) == NULL) esl_fatal("failed to allocate trace"); + if ((bg = p7_bg_Create(hmm->abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, hmm->abc)) == NULL) esl_fatal("failed to create profile"); + + if (p7_ProfileConfig(hmm, bg, gm, L, mode) != eslOK) esl_fatal("failed to configure profile"); + if (p7_bg_SetLength(bg, L) != eslOK) esl_fatal("failed to reconfig null model length"); + if (p7_hmm_Validate (hmm, NULL, 0.0001) != eslOK) esl_fatal("whoops, HMM is bad!"); + if (p7_profile_Validate(gm, NULL, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!"); + + for (nseq = 1; nseq <= N; nseq++) + { + if (do_profile) status = p7_ProfileEmit(r, hmm, gm, bg, sq, tr); + else status = p7_CoreEmit (r, hmm, sq, tr); + if (status) esl_fatal("Failed to emit sequence\n"); + + status = esl_sq_FormatName(sq, "%s-sample%d", hmm->name, nseq); + if (status) esl_fatal("Failed to set sequence name\n"); + + status = esl_sqio_Write(ofp, sq, outfmt, FALSE); + if (status != eslOK) esl_fatal("Failed to write sequence\n"); + + p7_trace_Reuse(tr); + esl_sq_Reuse(sq); + } + + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + p7_bg_Destroy(bg); + p7_profile_Destroy(gm); + return; +} + + diff --git a/bioinformaticsProject/hmmer/src/hmmer.c b/bioinformaticsProject/hmmer/src/hmmer.c new file mode 100644 index 0000000..eb1e750 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmer.c @@ -0,0 +1,242 @@ +/* General routines used throughout HMMER. + * + * Contents: + * 1. Miscellaneous functions for H3 + * 2. Unit tests + * 3. Test driver + * + * SRE, Fri Jan 12 13:19:38 2007 [Janelia] [Franz Ferdinand, eponymous] + */ + +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "hmmer.h" + +/***************************************************************** + * 1. Miscellaneous functions for H3 + *****************************************************************/ + +/* Function: p7_banner() + * Synopsis: print standard HMMER application output header + * Incept: SRE, Wed May 23 10:45:53 2007 [Janelia] + * + * Purpose: Print the standard HMMER command line application banner + * to , constructing it from (the name of the + * program) and a short one-line description . + * For example, + * + * might result in: + * + * \begin{cchunk} + * # hmmsim :: collect profile HMM score distributions + * # HMMER 3.0 (May 2007) + * # Copyright (C) 2004-2007 HHMI Janelia Farm Research Campus + * # Freely licensed under the Janelia Software License. + * # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + * \end{cchunk} + * + * would typically be an application's + * , rather than a fixed string. This allows the + * program to be renamed, or called under different names + * via symlinks. Any path in the is discarded; + * for instance, if is "/usr/local/bin/hmmsim", + * "hmmsim" is used as the program name. + * + * Note: + * Needs to pick up preprocessor #define's from p7_config.h, + * as set by ./configure: + * + * symbol example + * ------ ---------------- + * HMMER_VERSION "3.0" + * HMMER_DATE "May 2007" + * HMMER_COPYRIGHT "Copyright (C) 2004-2007 HHMI Janelia Farm Research Campus" + * HMMER_LICENSE "Freely licensed under the Janelia Software License." + * + * Returns: (void) + */ +void +p7_banner(FILE *fp, const char *progname, char *banner) +{ + char *appname = NULL; + + if (esl_FileTail(progname, FALSE, &appname) != eslOK) esl_strdup(progname, -1, &appname); + + fprintf(fp, "# %s :: %s\n", appname, banner); + fprintf(fp, "# HMMER %s (%s); %s\n", HMMER_VERSION, HMMER_DATE, HMMER_URL); + fprintf(fp, "# %s\n", HMMER_COPYRIGHT); + fprintf(fp, "# %s\n", HMMER_LICENSE); + fprintf(fp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"); + + if (appname) free(appname); + return; +} + + +/* Function: p7_CreateDefaultApp() + * Synopsis: Initialize a small/simple/standard HMMER application + * Incept: SRE, Thu Oct 28 15:03:21 2010 [Janelia] + * + * Purpose: Identical to , but + * specialized for HMMER. See documentation in + * . + * + * Args: options - array of structures for getopts + * nargs - number of cmd line arguments expected (excl. of cmdname) + * argc - from main() + * argv - from main() + * banner - optional one-line description of program (or NULL) + * usage - optional one-line usage hint (or NULL) + * + * Returns: ptr to new object. + * + * On command line errors, this routine prints an error + * message to then calls to halt + * execution with abnormal (1) status. + * + * If the standard <-h> option is seen, the routine prints + * the help page (using the data in the structure), + * then calls to exit with normal (0) status. + * + * Xref: J7/3 + * + * Note: The only difference between this and esl_getopts_CreateDefaultApp() + * is to call p7_banner() instead of esl_banner(), to get HMMER + * versioning info into the header. There ought to be a better way + * (perhaps using PACKAGE_* define's instead of HMMER_* vs. EASEL_* + * define's in esl_banner(), thus removing the need for p7_banner). + */ +ESL_GETOPTS * +p7_CreateDefaultApp(ESL_OPTIONS *options, int nargs, int argc, char **argv, char *banner, char *usage) +{ + ESL_GETOPTS *go = NULL; + + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK || + esl_opt_VerifyConfig(go) != eslOK) + { + printf("Failed to parse command line: %s\n", go->errbuf); + if (usage != NULL) esl_usage(stdout, argv[0], usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + exit(1); + } + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + if (banner != NULL) p7_banner(stdout, argv[0], banner); + if (usage != NULL) esl_usage (stdout, argv[0], usage); + puts("\nOptions:"); + esl_opt_DisplayHelp(stdout, go, 0, 2, 80); + exit(0); + } + if (esl_opt_ArgNumber(go) != nargs) + { + puts("Incorrect number of command line arguments."); + esl_usage(stdout, argv[0], usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + exit(1); + } + return go; +} + + +/* Function: p7_AminoFrequencies() + * Incept: SRE, Fri Jan 12 13:46:41 2007 [Janelia] + * + * Purpose: Fills a vector with amino acid background frequencies, + * in [A..Y] alphabetic order, same order that Easel digital + * alphabet uses. Caller must provide allocated for at + * least 20 floats. + * + * These were updated 4 Sept 2007, from Swiss-Prot 50.8, + * (Oct 2006), counting over 85956127 (86.0M) residues. + * + * Returns: on success. + */ +int +p7_AminoFrequencies(float *f) +{ + f[0] = 0.0787945; /* A */ + f[1] = 0.0151600; /* C */ + f[2] = 0.0535222; /* D */ + f[3] = 0.0668298; /* E */ + f[4] = 0.0397062; /* F */ + f[5] = 0.0695071; /* G */ + f[6] = 0.0229198; /* H */ + f[7] = 0.0590092; /* I */ + f[8] = 0.0594422; /* K */ + f[9] = 0.0963728; /* L */ + f[10]= 0.0237718; /* M */ + f[11]= 0.0414386; /* N */ + f[12]= 0.0482904; /* P */ + f[13]= 0.0395639; /* Q */ + f[14]= 0.0540978; /* R */ + f[15]= 0.0683364; /* S */ + f[16]= 0.0540687; /* T */ + f[17]= 0.0673417; /* V */ + f[18]= 0.0114135; /* W */ + f[19]= 0.0304133; /* Y */ + return eslOK; +} + +/***************************************************************** + * 2. Unit tests + *****************************************************************/ +#ifdef p7HMMER_TESTDRIVE + +static void +utest_alphabet_config(int alphatype) +{ + char *msg = "HMMER alphabet config unit test failed"; + ESL_ALPHABET *abc = NULL; + + if ((abc = esl_alphabet_Create(alphatype)) == NULL) esl_fatal(msg); + if (abc->K > p7_MAXABET) esl_fatal(msg); + if (abc->Kp > p7_MAXCODE) esl_fatal(msg); + esl_alphabet_Destroy(abc); +} +#endif /*p7HMMER_TESTDRIVE*/ + + + +/***************************************************************** + * 3. Test driver + *****************************************************************/ +#ifdef p7HMMER_TESTDRIVE + +/* gcc -o hmmer_utest -g -Wall -I../easel -L../easel -I. -L. -Dp7HMMER_TESTDRIVE hmmer.c -lhmmer -leasel -lm + * ./hmmer_utest + */ +#include "esl_getopts.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for hmmer.c"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + + utest_alphabet_config(eslAMINO); + utest_alphabet_config(eslDNA); + utest_alphabet_config(eslRNA); + utest_alphabet_config(eslCOINS); + utest_alphabet_config(eslDICE); + + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7HMMER_TESTDRIVE*/ + + + + diff --git a/bioinformaticsProject/hmmer/src/hmmer.h b/bioinformaticsProject/hmmer/src/hmmer.h new file mode 100644 index 0000000..1146d34 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmer.h @@ -0,0 +1,1815 @@ +/* The all-encompassing include file for HMMER. + * All-encompassing because there's a lot of crossdependency. + * There's some opportunity for modularity, but not a lot. + * + * 1. P7_HMM: a core model. + * 2. P7_PROFILE: a scoring profile, and its implicit model. + * 3. P7_BG: a null (background) model. + * 4. P7_TRACE: a traceback path (alignment of seq to profile). + * 5. P7_HMMFILE: an HMM save file or database, open for reading. + * 6. P7_GMX: a "generic" dynamic programming matrix + * 7. P7_PRIOR: mixture Dirichlet prior for profile HMMs + * 8. P7_SPENSEMBLE: segment pair ensembles for domain locations + * 9. P7_ALIDISPLAY: an alignment formatted for printing + * 10. P7_DOMAINDEF: reusably managing workflow in annotating domains + * 11. P7_TOPHITS: ranking lists of top-scoring hits + * 12. P7_SCOREDATA: data used in diagonal recovery and extension + * 13. P7_HMM_WINDOW: data used to track lists of sequence windows + * 14. Inclusion of the architecture-specific optimized implementation. + * 16. P7_PIPELINE: H3's accelerated seq/profile comparison pipeline + * 17. P7_BUILDER: configuration options for new HMM construction. + * 18. Declaration of functions in HMMER's exposed API. + * + * Also, see impl_{sse,vmx}/impl_{sse,vmx}.h for additional API + * specific to the acceleration layer; in particular, the P7_OPROFILE + * structure for an optimized profile. + */ +#ifndef P7_HMMERH_INCLUDED +#define P7_HMMERH_INCLUDED +#include "p7_config.h" + +#include +#include // ptrdiff_t + +#ifdef HMMER_MPI +#include "mpi.h" +#endif + +#ifdef HMMER_THREADS +#include +#endif + +#include "easel.h" +#include "esl_alphabet.h" /* ESL_DSQ, ESL_ALPHABET */ +#include "esl_dmatrix.h" /* ESL_DMATRIX */ +#include "esl_getopts.h" /* ESL_GETOPTS */ +#include "esl_histogram.h" /* ESL_HISTOGRAM */ +#include "esl_hmm.h" /* ESL_HMM */ +#include "esl_keyhash.h" /* ESL_KEYHASH */ +#include "esl_mixdchlet.h" /* ESL_MIXDCHLET */ +#include "esl_msa.h" /* ESL_MSA */ +#include "esl_random.h" /* ESL_RANDOMNESS */ +#include "esl_rand64.h" /* ESL_RAND64 */ +#include "esl_sq.h" /* ESL_SQ */ +#include "esl_scorematrix.h" /* ESL_SCOREMATRIX */ +#include "esl_stopwatch.h" /* ESL_STOPWATCH */ + + + +/* Search modes. */ +#define p7_NO_MODE 0 +#define p7_LOCAL 1 /* multihit local: "fs" mode */ +#define p7_GLOCAL 2 /* multihit glocal: "ls" mode */ +#define p7_UNILOCAL 3 /* unihit local: "sw" mode */ +#define p7_UNIGLOCAL 4 /* unihit glocal: "s" mode */ + +#define p7_IsLocal(mode) (mode == p7_LOCAL || mode == p7_UNILOCAL) +#define p7_IsMulti(mode) (mode == p7_LOCAL || mode == p7_GLOCAL) + +#define p7_NEVPARAM 6 /* number of statistical parameters stored in models */ +#define p7_NCUTOFFS 6 /* number of Pfam score cutoffs stored in models */ +#define p7_NOFFSETS 3 /* number of disk offsets stored in models for hmmscan's fast model input */ +enum p7_evparams_e { p7_MMU = 0, p7_MLAMBDA = 1, p7_VMU = 2, p7_VLAMBDA = 3, p7_FTAU = 4, p7_FLAMBDA = 5 }; +enum p7_cutoffs_e { p7_GA1 = 0, p7_GA2 = 1, p7_TC1 = 2, p7_TC2 = 3, p7_NC1 = 4, p7_NC2 = 5 }; +enum p7_offsets_e { p7_MOFFSET = 0, p7_FOFFSET = 1, p7_POFFSET = 2 }; + +#define p7_EVPARAM_UNSET -99999.0f /* if evparam[0] is unset, then all unset */ +#define p7_CUTOFF_UNSET -99999.0f /* if cutoff[XX1] is unset, then cutoff[XX2] unset, XX={GA,TC,NC} */ +#define p7_COMPO_UNSET -1.0f /* if compo[0] is unset, then all unset */ + +/* Option flags when creating multiple alignments with p7_tracealign_*() */ +#define p7_DEFAULT 0 +#define p7_DIGITIZE (1<<0) +#define p7_ALL_CONSENSUS_COLS (1<<1) +#define p7_TRIM (1<<2) + +/* Option flags when creating faux traces with p7_trace_FauxFromMSA() */ +#define p7_MSA_COORDS (1<<0) /* default: i = unaligned seq residue coords */ + +/* Which strand(s) should be searched */ +enum p7_strands_e { p7_STRAND_TOPONLY = 0, p7_STRAND_BOTTOMONLY = 1, p7_STRAND_BOTH = 2}; + +/***************************************************************** + * 1. P7_HMM: a core model. + *****************************************************************/ + +/* Bit flags used in flags>: optional annotation in an HMM + * + * Flags marked with ! may not be changed nor used for other meanings, + * because they're codes used by HMMER2 (and earlier) that must be + * preserved for reverse compatibility with old HMMER files. + * + * Why use flags? (So I don't ask this question of myself again:) + * 1. The way we allocate an HMM, we need to know if we're allocating + * M-width annotation fields (RF, CS, CA, MAP) before we read the + * annotation from the file. + * 2. Historically, H2 used flags, so we still need to read H2 flags + * for backwards compatibility; so we may as well keep using them. + */ +#define p7H_HASBITS (1<<0) /* obsolete (was: model has log-odds scores) !*/ +#define p7H_DESC (1<<1) /* description exists (legacy; xref SRE:J5/114) !*/ +#define p7H_RF (1<<2) /* #RF annotation available !*/ +#define p7H_CS (1<<3) /* #CS annotation available !*/ +#define p7H_XRAY (1<<4) /* obsolete (was: structural data available) !*/ +#define p7H_HASPROB (1<<5) /* obsolete (was: model in probability form) !*/ +#define p7H_HASDNA (1<<6) /* obsolete (was: protein HMM->DNA seq params set) !*/ +#define p7H_STATS (1<<7) /* model has E-value statistics calibrated !*/ +#define p7H_MAP (1<<8) /* alignment map is available !*/ +#define p7H_ACC (1<<9) /* accession is available (legacy; xref SRE:J5/114)!*/ +#define p7H_GA (1<<10) /* gathering thresholds available !*/ +#define p7H_TC (1<<11) /* trusted cutoffs available !*/ +#define p7H_NC (1<<12) /* noise cutoffs available !*/ +#define p7H_CA (1<<13) /* surface accessibilities available !*/ +#define p7H_COMPO (1<<14) /* model-specific residue composition available */ +#define p7H_CHKSUM (1<<15) /* model has an alignment checksum */ +#define p7H_CONS (1<<16) /* consensus residue line available */ +#define p7H_MMASK (1<<17) /* #MM annotation available !*/ + +/* Indices of Plan7 main model state transitions, hmm->t[k][] */ +enum p7h_transitions_e { + p7H_MM = 0, + p7H_MI = 1, + p7H_MD = 2, + p7H_IM = 3, + p7H_II = 4, + p7H_DM = 5, + p7H_DD = 6 +}; +#define p7H_NTRANSITIONS 7 + +/* How the hmm->t[k] vector is interpreted as separate probability vectors. */ +#define P7H_TMAT(hmm, k) ((hmm)->t[k]) +#define P7H_TINS(hmm, k) ((hmm)->t[k]+3) +#define P7H_TDEL(hmm, k) ((hmm)->t[k]+5) +#define p7H_NTMAT 3 +#define p7H_NTDEL 2 +#define p7H_NTINS 2 + +/* Some notes: + * 0. The model might be either in counts or probability form. + * 1. t[0] is special: t[0][TMM,TMI,TMD] are the begin->M_1,I_0,D_1 entry probabilities, + * t[0][TIM,TII] are the I_0 transitions, and delete state 0 doesn't + * exist. Therefore D[0] transitions and mat[0] emissions are unused. + * To simplify some normalization code, we adopt a convention that these are set + * to valid probability distributions: 1.0 for t[0][TDM] and mat[0][0], + * and 0 for the rest. + * 2. t[M] is also special: TMD and TDD are 0 because there is no next delete state; + * TDM is therefore 1.0 by definition. TMM and TDM are interpreted as the + * M->E and D->E end transitions. t[M][TDM] must be 1.0, therefore. + */ +typedef struct p7_hmm_s { + /*::cexcerpt::plan7_core::begin::*/ + int M; /* length of the model (# nodes) */ + float **t; /* transition prob's. t[(0),1..M][0..p7H_NTRANSITIONS-1] */ + float **mat; /* match emissions. mat[1..M][0..K-1] */ + float **ins; /* insert emissions. ins[1..M][0..K-1] */ + /*::cexcerpt::plan7_core::end::*/ + + /* Annotation. Everything but is optional. Flags are set when + * optional values are set. All the char *'s are proper nul-terminated + * strings, not just arrays. (hmm->map is an int array). + */ + char *name; /* name of the model (mandatory) */ /* String, \0-terminated */ + char *acc; /* accession number of model (Pfam) (optional: NULL) */ /* String, \0-terminated */ + char *desc; /* brief (1-line) description of model (optional: NULL) */ /* String, \0-terminated */ + char *rf; /* reference line from alignment 1..M (p7H_RF) */ /* String; 0=' ', M+1='\0' */ + char *mm; /* model mask line from alignment 1..M (p7H_MM) */ /* String; 0=' ', M+1='\0' */ + char *consensus; /* consensus residue line 1..M (p7H_CONS) */ /* String; 0=' ', M+1='\0' */ + char *cs; /* consensus structure line 1..M (p7H_CS) */ /* String; 0=' ', M+1='\0' */ + char *ca; /* consensus accessibility line 1..M (p7H_CA) */ /* String; 0=' ', M+1='\0' */ + + char *comlog; /* command line(s) that built model (optional: NULL) */ /* String, \0-terminated */ + int nseq; /* number of training sequences (optional: -1) */ + float eff_nseq; /* effective number of seqs (<= nseq) (optional: -1) */ + int max_length; /* upper bound length, all but 1e-7 prob (optional: -1) */ + char *ctime; /* creation date (optional: NULL) */ + int *map; /* map of alignment cols onto model 1..M (p7H_MAP) */ /* Array; map[0]=0 */ + uint32_t checksum; /* checksum of training sequences (p7H_CHKSUM) */ + float evparam[p7_NEVPARAM]; /* E-value params (p7H_STATS) */ + float cutoff[p7_NCUTOFFS]; /* Pfam score cutoffs (p7H_{GA,TC,NC}) */ + float compo[p7_MAXABET]; /* model bg residue comp (p7H_COMPO) */ + + off_t offset; /* HMM record offset on disk */ + const ESL_ALPHABET *abc; /* ptr to alphabet info (hmm->abc->K is alphabet size) */ + int flags; /* status flags */ +} P7_HMM; + + +/***************************************************************** + * 2. P7_PROFILE: a scoring profile, and its implicit model. + *****************************************************************/ + +/* Indices for special state types in the length model, gm->xsc[x][] + */ +enum p7p_xstates_e { + p7P_E = 0, + p7P_N = 1, + p7P_J = 2, + p7P_C = 3 +}; +#define p7P_NXSTATES 4 + +/* Indices for transitions from the length modeling scores gm->xsc[][x] + */ +enum p7p_xtransitions_e { + p7P_LOOP = 0, + p7P_MOVE = 1 +}; +#define p7P_NXTRANS 2 + +/* Indices for transition scores gm->tsc[k][] */ +/* order is optimized for dynamic programming */ +enum p7p_tsc_e { + p7P_MM = 0, + p7P_IM = 1, + p7P_DM = 2, + p7P_BM = 3, + p7P_MD = 4, + p7P_DD = 5, + p7P_MI = 6, + p7P_II = 7, +}; +#define p7P_NTRANS 8 + +/* Indices for residue emission score vectors + */ +enum p7p_rsc_e { + p7P_MSC = 0, + p7P_ISC = 1 +}; +#define p7P_NR 2 + +/* Accessing transition, emission scores */ +/* _BM is specially stored off-by-one: [k-1][p7P_BM] is score for entering at Mk */ +#define p7P_TSC(gm, k, s) ((gm)->tsc[(k) * p7P_NTRANS + (s)]) +#define p7P_MSC(gm, k, x) ((gm)->rsc[x][(k) * p7P_NR + p7P_MSC]) +#define p7P_ISC(gm, k, x) ((gm)->rsc[x][(k) * p7P_NR + p7P_ISC]) + + +typedef struct p7_profile_s { + float *tsc; /* transitions [0.1..M-1][0..p7P_NTRANS-1], hand-indexed */ + float **rsc; /* emissions [0..Kp-1][0.1..M][p7P_NR], hand-indexed */ + float xsc[p7P_NXSTATES][p7P_NXTRANS]; /* special transitions [NECJ][LOOP,MOVE] */ + + int mode; /* configured algorithm mode (e.g. p7_LOCAL) */ + int L; /* current configured target seq length */ + int allocM; /* max # of nodes allocated in this structure */ + int M; /* number of nodes in the model */ + int max_length; /* calculated upper bound on emitted seq length */ + float nj; /* expected # of uses of J; precalculated from loop config */ + + /* Info, most of which is a copy from parent HMM: */ + char *name; /* unique name of model */ + char *acc; /* unique accession of model, or NULL */ + char *desc; /* brief (1-line) description of model, or NULL */ + char *rf; /* reference line from alignment 1..M; *rf=0 means unused */ + char *mm; /* modelmask line 1..M; *ref=0: unused */ + char *cs; /* consensus structure line 1..M, *cs=0 means unused */ + char *consensus; /* consensus residues to display in alignments, 1..M */ + float evparam[p7_NEVPARAM]; /* parameters for determining E-values, or UNSET */ + float cutoff[p7_NCUTOFFS]; /* per-seq/per-domain bit score cutoffs, or UNSET */ + float compo[p7_MAXABET]; /* per-model HMM filter composition, or UNSET */ + + /* Disk offset information for hmmpfam's fast model retrieval */ + off_t offs[p7_NOFFSETS]; /* p7_{MFP}OFFSET, or -1 */ + + off_t roff; /* record offset (start of record); -1 if none */ + off_t eoff; /* offset to last byte of record; -1 if unknown */ + + const ESL_ALPHABET *abc; /* copy of pointer to appropriate alphabet */ +} P7_PROFILE; + + + +/***************************************************************** + * 3. P7_BG: a null (background) model. + *****************************************************************/ + +/* This really contains three different things: + * + * - the "null1" model, a one-state HMM consisting of background + * frequencies and a parameter for a target-length + * dependent geometric; + * + * - the "bias filter" a two-state HMM composed from null1's + * background and the model's mean composition . This + * model is constructed dynamically, every time a new profile is + * considered; + * + * - a single term that's needed by the "null2" model to set + * a balance between the null1 and null2 scoring terms. The null2 + * model is otherwise defined by construction, in p7_domaindef.c. + * + * Someday we might pull this apart into two or three separate + * objects. + */ +typedef struct p7_bg_s { + float *f; /* null1 background residue frequencies [0..K-1]: set at initialization */ + float p1; /* null1's transition prob: p7_bg_SetLength() sets this from target seq L */ + + ESL_HMM *fhmm; /* bias filter: p7_bg_SetFilter() sets this, from model's mean composition */ + + float omega; /* the "prior" on null2/null3: set at initialization (one omega for both null types) */ + + const ESL_ALPHABET *abc; /* reference to alphabet in use: set at initialization */ +} P7_BG; + +/***************************************************************** + * 4. P7_TRACE: a traceback (alignment of seq to profile). + *****************************************************************/ + +/* Traceback structure for alignment of a model to a sequence. + * + * A traceback only makes sense in a triplet (tr, gm, dsq), for a + * given profile or HMM (with nodes 1..M) and a given digital sequence + * (with positions 1..L). + * + * A traceback may be relative to a profile (usually) or to a core + * model (as a special case in model construction; see build.c). You + * can tell the difference by looking at the first statetype, + * tr->st[0]; if it's a p7T_S, it's for a profile, and if it's p7T_B, + * it's for a core model. + * + * A "profile" trace uniquely has S,N,C,T,J states and their + * transitions; it also can have B->Mk and Mk->E internal entry/exit + * transitions for local alignments. It may not contain X states. + * + * A "core" trace may contain I0, IM, and D1 states and their + * transitions. A "core" trace can also have B->X->{MDI}k and + * {MDI}k->X->E transitions as a special hack in a build procedure, to + * deal with the case of a local alignment fragment implied by an + * input alignment, which is "impossible" for a core model. + * X "states" only appear in core traces, and only at these + * entry/exit places; some code depends on this. + * + * A profile's N,C,J states emit on transition, not on state, so a + * path of N emits 0 residues, NN emits 1 residue, NNN emits 2 + * residues, and so on. By convention, the trace always associates an + * emission-on-transition with the trailing (destination) state, so + * the first N, C, or J is stored in a trace as a nonemitter (i=0). + * + * A i coords in a traceback are usually 1..L with respect to an + * unaligned digital target sequence, but in the special case of + * traces faked from existing MSAs (as in hmmbuild), the coords may + * be 1..alen relative to an MSA's columns. + */ + +/* State types */ +enum p7t_statetype_e { + p7T_BOGUS = 0, + p7T_M = 1, + p7T_D = 2, + p7T_I = 3, + p7T_S = 4, + p7T_N = 5, + p7T_B = 6, + p7T_E = 7, + p7T_C = 8, + p7T_T = 9, + p7T_J = 10, + p7T_X = 11, /* missing data: used esp. for local entry/exits */ +}; +#define p7T_NSTATETYPES 12 + +typedef struct p7_trace_s { + int N; /* length of traceback */ + int nalloc; /* allocated length of traceback */ + char *st; /* state type code [0..N-1]*/ + int *k; /* node index; 1..M if M,D,I; else 0 [0..N-1]*/ + int *i; /* pos emitted in dsq, 1..L; else 0 [0..N-1]*/ + float *pp; /* posterior prob of x_i; else 0 [0..N-1]*/ + int M; /* model length M (maximum k) */ + int L; /* sequence length L (maximum i) */ + + /* The following section is data generated by "indexing" a trace's domains */ + int ndom; /* number of domains in trace (= # of B or E states) */ + int *tfrom, *tto; /* locations of B/E states in trace (0..tr->N-1) */ + int *sqfrom, *sqto; /* first/last M-emitted residue on sequence (1..L) */ + int *hmmfrom, *hmmto;/* first/last M state on model (1..M) */ + int ndomalloc; /* current allocated size of these stacks */ + +} P7_TRACE; + + + +/***************************************************************** + * 5. P7_HMMFILE: an HMM save file or database, open for reading. + *****************************************************************/ + +/* These tags need to be in temporal order, so we can do tests + * like "if (format >= p7_HMMFILE_3b) ..." + */ +enum p7_hmmfile_formats_e { + p7_HMMFILE_20 = 0, + p7_HMMFILE_3a = 1, + p7_HMMFILE_3b = 2, + p7_HMMFILE_3c = 3, + p7_HMMFILE_3d = 4, + p7_HMMFILE_3e = 5, + p7_HMMFILE_3f = 6, +}; + +typedef struct p7_hmmfile_s { + FILE *f; /* pointer to stream for reading models */ + char *fname; /* (fully qualified) name of the HMM file; [STDIN] if - */ + ESL_SSI *ssi; /* open SSI index for model file ; NULL if none. */ + + int do_gzip; /* TRUE if f is "gzip -dc |" (will pclose(f)) */ + int do_stdin; /* TRUE if f is stdin (won't close f) */ + int newly_opened; /* TRUE if we just opened the stream (and parsed magic) */ + int is_pressed; /* TRUE if a pressed HMM database file (Pfam or equiv) */ + + int format; /* HMM file format code */ + int (*parser)(struct p7_hmmfile_s *, ESL_ALPHABET **, P7_HMM **); + ESL_FILEPARSER *efp; + + /* If , we can read optimized profiles directly, via: */ + FILE *ffp; /* MSV part of the optimized profile */ + FILE *pfp; /* rest of the optimized profile */ + +#ifdef HMMER_THREADS + int syncRead; + pthread_mutex_t readMutex; +#endif + + char errbuf[eslERRBUFSIZE]; +} P7_HMMFILE; + +/* note on , above: + * this is the actual name of the HMM file being read. + * + * The way p7_hmmfile_Open() works, it will preferentially look for + * hmmpress'ed binary files. If you open "foo", it will first try to + * open "foo.h3m" and will be "foo.h3m". "foo" does not even + * have to exist. If a parsing error occurs, you want to + * be "foo.h3m", so error messages report blame correctly. + * In the special case of reading from stdin, is "[STDIN]". + */ + + +/***************************************************************** + * 6. P7_GMX: a "generic" dynamic programming matrix + *****************************************************************/ + +enum p7g_scells_e { + p7G_M = 0, + p7G_I = 1, + p7G_D = 2, +}; +#define p7G_NSCELLS 3 + +enum p7g_xcells_e { + p7G_E = 0, + p7G_N = 1, + p7G_J = 2, + p7G_B = 3, + p7G_C = 4 +}; +#define p7G_NXCELLS 5 + + +typedef struct p7_gmx_s { + int M; /* actual model dimension (model 1..M) */ + int L; /* actual sequence dimension (seq 1..L) */ + + int allocR; /* current allocated # of rows : L+1 <= validR <= allocR */ + int validR; /* # of rows actually pointing at DP memory */ + int allocW; /* current set row width : M+1 <= allocW */ + uint64_t ncells; /* total # of allocated cells in 2D matrix : ncells >= (validR)(allocW) */ + + float **dp; /* logically [0.1..L][0.1..M][0..p7G_NSCELLS-1]; indexed [i][k*p7G_NSCELLS+s] */ + float *xmx; /* logically [0.1..L][0..p7G_NXCELLS-1]; indexed [i*p7G_NXCELLS+s] */ + + float *dp_mem; +} P7_GMX; + +/* Macros below implement indexing idioms for generic DP routines. + * They require the following setup, for profile and matrix : + * float const *tsc = gm->tsc; + * float **dp = gx->dp; + * float *xmx = gx->xmx; + * and for each row i (target residue x_i in digital seq ): + * float const *rsc = gm->rsc[dsq[i]]; + */ +#define MMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_M]) +#define IMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_I]) +#define DMX(i,k) (dp[(i)][(k) * p7G_NSCELLS + p7G_D]) +#define XMX(i,s) (xmx[(i) * p7G_NXCELLS + (s)]) + +#define TSC(s,k) (tsc[(k) * p7P_NTRANS + (s)]) +#define MSC(k) (rsc[(k) * p7P_NR + p7P_MSC]) +#define ISC(k) (rsc[(k) * p7P_NR + p7P_ISC]) + +/* Flags that control P7_GMX debugging dumps */ +#define p7_HIDE_SPECIALS (1<<0) +#define p7_SHOW_LOG (1<<1) + + +/***************************************************************** + * 7. P7_PRIOR: mixture Dirichlet prior for profile HMMs + *****************************************************************/ + +typedef struct p7_prior_s { + ESL_MIXDCHLET *tm; /* match transitions */ + ESL_MIXDCHLET *ti; /* insert transitions */ + ESL_MIXDCHLET *td; /* delete transitions */ + ESL_MIXDCHLET *em; /* match emissions */ + ESL_MIXDCHLET *ei; /* insert emissions */ +} P7_PRIOR; + + + + +/***************************************************************** + * 8. P7_SPENSEMBLE: segment pair ensembles for domain locations + *****************************************************************/ + +/* struct p7_spcoord_s: + * a coord quad defining a segment pair. + */ +struct p7_spcoord_s { + int idx; /* backreference index: which trace a seg came from, or which cluster a domain came from */ + int i, j; /* start,end in a target sequence (1..L) */ + int k, m; /* start,end in a query model (1..M) */ + float prob; /* posterior probability of segment */ +}; + +/* Structure: P7_SPENSEMBLE + * + * Collection and clustering of an ensemble of sampled segment pairs, + * in order to define domain locations using their posterior + * probability distribution (as opposed to Viterbi MAP tracebacks). + */ +typedef struct p7_spensemble_s { + /* Section 1: a collected ensemble of segment pairs */ + int nsamples; /* number of sampled traces */ + struct p7_spcoord_s *sp; /* array of sampled seg pairs; [0..n-1] */ + int nalloc; /* allocated size of */ + int n; /* number of seg pairs in */ + + /* Section 2: then the ensemble is clustered by single-linkage clustering */ + int *workspace; /* temp space for Easel SLC algorithm: 2*n */ + int *assignment; /* each seg pair's cluster index: [0..n-1] = (0..nc-1) */ + int nc; /* number of different clusters */ + + /* Section 3: then endpoint distribution is examined within each large cluster */ + int *epc; /* array counting frequency of each endpoint */ + int epc_alloc; /* allocated width of */ + + /* Section 4: finally each large cluster is resolved into domain coords */ + struct p7_spcoord_s *sigc; /* array of coords for each domain, [0..nsigc-1] */ + int nsigc; /* number of "significant" clusters, domains */ + int nsigc_alloc; /* current allocated max for nsigc */ +} P7_SPENSEMBLE; + + + +/***************************************************************** + * 9. P7_ALIDISPLAY: an alignment formatted for printing + *****************************************************************/ + +/* Structure: P7_ALIDISPLAY + * + * Alignment of a sequence domain to an HMM, formatted for printing. + * + * For an alignment of L residues and names C chars long, requires + * 6L + 2C + 30 bytes; for typical case of L=100,C=10, that's + * <0.7 Kb. + */ +typedef struct p7_alidisplay_s { + char *rfline; /* reference coord info; or NULL */ + char *mmline; /* modelmask coord info; or NULL */ + char *csline; /* consensus structure info; or NULL */ + char *model; /* aligned query consensus sequence */ + char *mline; /* "identities", conservation +'s, etc. */ + char *aseq; /* aligned target sequence */ + char *ntseq; /* nucleotide target sequence if nhmmscant */ + char *ppline; /* posterior prob annotation; or NULL */ + int N; /* length of strings */ + + char *hmmname; /* name of HMM */ + char *hmmacc; /* accession of HMM; or [0]='\0' */ + char *hmmdesc; /* description of HMM; or [0]='\0' */ + int hmmfrom; /* start position on HMM (1..M, or -1) */ + int hmmto; /* end position on HMM (1..M, or -1) */ + int M; /* length of model */ + + char *sqname; /* name of target sequence */ + char *sqacc; /* accession of target seq; or [0]='\0' */ + char *sqdesc; /* description of targ seq; or [0]='\0' */ + int64_t sqfrom; /* start position on sequence (1..L) */ + int64_t sqto; /* end position on sequence (1..L) */ + int64_t L; /* length of sequence */ + + int memsize; /* size of allocated block of memory */ + char *mem; /* memory used for the char data above */ +} P7_ALIDISPLAY; + + +/***************************************************************** + * 10. P7_DOMAINDEF: reusably managing workflow in defining domains + *****************************************************************/ + +typedef struct p7_dom_s { + int64_t ienv, jenv; + int64_t iali, jali; + int64_t iorf, jorf; /* Used in translated search to capture the range in the DNA sequence of the ORF containing the match to a protein query */ + float envsc; /* Forward score in envelope ienv..jenv; NATS; without null2 correction */ + float domcorrection; /* null2 score when calculating a per-domain score; NATS */ + float dombias; /* FLogsum(0, log(bg->omega) + domcorrection): null2 score contribution; NATS */ + float oasc; /* optimal accuracy score (units: expected # residues correctly aligned) */ + float bitscore; /* overall score in BITS, null corrected, if this were the only domain in seq */ + double lnP; /* log(P-value) of the bitscore */ + int is_reported; /* TRUE if domain meets reporting thresholds */ + int is_included; /* TRUE if domain meets inclusion thresholds */ + float *scores_per_pos; /* only used by `nhmmer --aliscoresout`; score in BITS that each pos in ali contributes to viterbi score */ + P7_ALIDISPLAY *ad; +} P7_DOMAIN; + +/* Structure: P7_DOMAINDEF + * + * This is a container for all the necessary information for domain + * definition procedures in , including a bunch of + * heuristic thresholds. The structure is reusable to minimize the + * number of allocation/free cycles that need to be done when + * processing a large number of sequences. You create the structure + * with ; after you're done with defining + * domains on a sequence, you call before using + * it on the next sequence; and when you're completely done, you free + * it with . All memory management is handled + * internally; you don't need to reallocate anything yourself. + */ +typedef struct p7_domaindef_s { + /* for posteriors of being in a domain, B, E */ + float *mocc; /* mocc[i=1..L] = prob that i is emitted by core model (is in a domain) */ + float *btot; /* btot[i=1..L] = cumulative expected times that domain starts at or before i */ + float *etot; /* etot[i=1..L] = cumulative expected times that domain ends at or before i */ + int L; + int Lalloc; + + /* the ad hoc null2 model: 1..L nat scores for each residue, log f'(x_i) / f(x_i) */ + float *n2sc; + + /* rng and reusable memory for stochastic tracebacks */ + ESL_RANDOMNESS *r; /* random number generator */ + int do_reseeding; /* TRUE to reset the RNG, make results reproducible */ + P7_SPENSEMBLE *sp; /* an ensemble of sampled segment pairs (domain endpoints) */ + P7_TRACE *tr; /* reusable space for a trace of a domain */ + P7_TRACE *gtr; /* reusable space for a traceback of the entire target seq */ + + /* Heuristic thresholds that control the region definition process */ + /* "rt" = "region threshold", for lack of better term */ + float rt1; /* controls when regions are called. mocc[i] post prob >= dt1 : triggers a region around i */ + float rt2; /* controls extent of regions. regions extended until mocc[i]-{b,e}occ[i] < dt2 */ + float rt3; /* controls when regions are flagged for split: if expected # of E preceding B is >= dt3 */ + + /* Heuristic thresholds that control the stochastic traceback/clustering process */ + int nsamples; /* collect ensemble of this many stochastic traces */ + float min_overlap; /* 0.8 means >= 80% overlap of (smaller/larger) segment to link, both in seq and hmm */ + int of_smaller; /* see above; TRUE means overlap denom is calc'ed wrt smaller segment; FALSE means larger */ + int max_diagdiff; /* 4 means either start or endpoints of two segments must be within <=4 diagonals of each other */ + float min_posterior; /* 0.25 means a cluster must have >= 25% posterior prob in the sample to be reported */ + float min_endpointp; /* 0.02 means choose widest endpoint with post prob of at least 2% */ + + /* storage of the results; domain locations, scores, alignments */ + P7_DOMAIN *dcl; + int ndom; /* number of domains defined, in the end. */ + int nalloc; /* number of domain structures allocated in */ + + /* Additional results storage */ + float nexpected; /* posterior expected number of domains in the sequence (from posterior arrays) */ + int nregions; /* number of regions evaluated */ + int nclustered; /* number of regions evaluated by clustering ensemble of tracebacks */ + int noverlaps; /* number of envelopes defined in ensemble clustering that overlap w/ prev envelope */ + int nenvelopes; /* number of envelopes handed over for domain definition, null2, alignment, and scoring. */ + +} P7_DOMAINDEF; + + +/***************************************************************** + * 11. P7_TOPHITS: ranking lists of top-scoring hits + *****************************************************************/ + +#define p7_HITFLAGS_DEFAULT 0 +#define p7_IS_INCLUDED (1<<0) +#define p7_IS_REPORTED (1<<1) +#define p7_IS_NEW (1<<2) +#define p7_IS_DROPPED (1<<3) +#define p7_IS_DUPLICATE (1<<4) + + +/* Structure: P7_HIT + * + * Info about a high-scoring database hit, kept so we can output a + * sorted list of high hits at the end. + * + * sqfrom and sqto are the coordinates that will be shown + * in the results, not coords in arrays... therefore, reverse + * complements have sqfrom > sqto + */ +typedef struct p7_hit_s { + char *name; /* name of the target (mandatory) */ + char *acc; /* accession of the target (optional; else NULL) */ + char *desc; /* description of the target (optional; else NULL) */ + int window_length; /* for later use in e-value computation, when splitting long sequences */ + double sortkey; /* number to sort by; big is better */ + + float score; /* bit score of the sequence (all domains, w/ correction) */ + float pre_score; /* bit score of sequence before null2 correction */ + float sum_score; /* bit score reconstructed from sum of domain envelopes */ + + double lnP; /* log(P-value) of the score */ + double pre_lnP; /* log(P-value) of the pre_score */ + double sum_lnP; /* log(P-value) of the sum_score */ + + float nexpected; /* posterior expected number of domains in the sequence (from posterior arrays) */ + int nregions; /* number of regions evaluated */ + int nclustered; /* number of regions evaluated by clustering ensemble of tracebacks */ + int noverlaps; /* number of envelopes defined in ensemble clustering that overlap w/ prev envelope */ + int nenvelopes; /* number of envelopes handed over for domain definition, null2, alignment, and scoring. */ + int ndom; /* total # of domains identified in this seq */ + + uint32_t flags; /* p7_IS_REPORTED | p7_IS_INCLUDED | p7_IS_NEW | p7_IS_DROPPED */ + int nreported; /* # of domains satisfying reporting thresholding */ + int nincluded; /* # of domains satisfying inclusion thresholding */ + int best_domain; /* index of best-scoring domain in dcl */ + + int64_t seqidx; /*unique identifier to track the database sequence from which this hit came*/ + int64_t subseq_start; /*used to track which subsequence of a full_length target this hit came from, for purposes of removing duplicates */ + + P7_DOMAIN *dcl; /* domain coordinate list and alignment display */ + esl_pos_t offset; /* used in socket communications, in serialized communication: offset of P7_DOMAIN msg for this P7_HIT */ +} P7_HIT; + + +/* Structure: P7_TOPHITS + * merging when we prepare to output results. "hit" list is NULL and + * unavailable until after we do a sort. + */ +typedef struct p7_tophits_s { + P7_HIT **hit; /* sorted pointer array */ + P7_HIT *unsrt; /* unsorted data storage */ + uint64_t Nalloc; /* current allocation size */ + uint64_t N; /* number of hits in list now */ + uint64_t nreported; /* number of hits that are reportable */ + uint64_t nincluded; /* number of hits that are includable */ + int is_sorted_by_sortkey; /* TRUE when hits sorted by sortkey and th->hit valid for all N hits */ + int is_sorted_by_seqidx; /* TRUE when hits sorted by seq_idx, position, and th->hit valid for all N hits */ +} P7_TOPHITS; + + + + + +/***************************************************************** + * 12. P7_SCOREDATA: data used in diagonal recovery and extension + *****************************************************************/ + +enum p7_scoredatatype_e { + p7_sd_std = 0, + p7_sd_fm = 1, +}; + + +/* This contains a compact representation of 8-bit bias-shifted scores for use in + * diagonal recovery (standard SSV) and extension (standard and FM-SSV), + * along with MAXL-associated prefix- and suffix-lengths, and optimal extensions + * for FM-SSV. + */ +typedef struct p7_scoredata_s { + int type; + int M; + union {//implicit (M+1)*K matrix, where M = # states, and K = # characters in alphabet + uint8_t *ssv_scores; // this 2D array is used in the default nhmmer pipeline + float *ssv_scores_f; // this 2D array is used in the FM-index based pipeline + }; + float *prefix_lengths; + float *suffix_lengths; + float *fwd_scores; + float **fwd_transitions; + float **opt_ext_fwd; // Used only for FM-index based pipeline + float **opt_ext_rev; // Used only for FM-index based pipeline +} P7_SCOREDATA; + + +/***************************************************************** + * 13. P7_HMM_WINDOW: data used to track lists of sequence windows + *****************************************************************/ + + +typedef struct p7_hmm_window_s { + float score; + float null_sc; + int32_t id; //sequence id of the database sequence hit + int64_t n; //position in database sequence at which the diagonal/window starts + int64_t fm_n; //position in the concatenated fm-index sequence at which the diagonal starts + int32_t length; // length of the diagonal/window + int16_t k; //position of the model at which the diagonal ends + int64_t target_len; //length of the target sequence + int8_t complementarity; + int8_t used_to_extend; +} P7_HMM_WINDOW; + +typedef struct p7_hmm_window_list_s { + P7_HMM_WINDOW *windows; + int count; + int size; +} P7_HMM_WINDOWLIST; + + + +/***************************************************************** + * 14. Choice of vector implementation. + *****************************************************************/ +#if defined (eslENABLE_SSE) +#include "impl_sse/impl_sse.h" +#elif defined (eslENABLE_VMX) +#include "impl_vmx/impl_vmx.h" +#else +#error "No vector implementation enabled" +#endif + + +/***************************************************************** + * 15. The FM-index acceleration to the SSV filter. Only works for SSE + *****************************************************************/ +#define FM_MAX_LINE 256 + +/* Structure the 2D occ array into a single array. "type" is either b or sb. + * Note that one extra count value is required by RLE, one 4-byte int for + * each superblock count vector, and one 2-byte short for each block count + * vector. This is small overhead, even for a small alphabet like dna. + */ +#define FM_OCC_CNT( type, i, c) ( occCnts_##type[(meta->alph_size)*(i) + (c)]) + +enum fm_alphabettypes_e { + fm_DNA = 0, //acgt, 2 bit + //fm_DNA_full = 1, //includes ambiguity codes, 4 bit. + fm_AMINO = 4, // 5 bit +}; +/*TODO: fm_DNA_full has currently been disabled because of problems with how the + * FM index handles very long runs of the same character (in this case, Ns). + * See wheelert/notebook/2013/12-11-FM-alphabet-speed notes on 12/12. + */ + +enum fm_direction_e { + fm_forward = 0, + fm_backward = 1, +}; + + +typedef struct fm_interval_s { + int lower; + int upper; +} FM_INTERVAL; + +typedef struct fm_hit_s { + uint64_t start; + uint32_t block; + int direction; + int length; + int sortkey; +} FM_HIT; + + + +typedef struct fm_ambiglist_s { + FM_INTERVAL *ranges; + uint32_t count; + uint32_t size; +} FM_AMBIGLIST; + + +typedef struct fm_seqdata_s { + + uint32_t target_id; // Which sequence in the target database did this segment come from (can be multiple segment per sequence, if a sequence has Ns) + uint64_t target_start; // The position in sequence {id} in the target database at which this sequence-block starts (usually 1, unless its a long sequence split out over multiple FMs) + uint32_t fm_start; // The position in the FM block at which this sequence begins + uint32_t length; // Length of this sequence segment (usually the length of the target sequence, unless its a long sequence split out over multiple FMs) + + + //meta data taken from the sequence this segment was taken from + uint16_t name_length; + uint16_t source_length; + uint16_t acc_length; + uint16_t desc_length; + char *name; + char *source; + char *acc; + char *desc; +} FM_SEQDATA; + + +typedef struct fm_metadata_s { + uint8_t fwd_only; + uint8_t alph_type; + uint8_t alph_size; + uint8_t charBits; + uint32_t freq_SA; //frequency with which SA is sampled + uint32_t freq_cnt_sb; //frequency with which full cumulative counts are captured + uint32_t freq_cnt_b; //frequency with which intermittent counts are captured + uint16_t block_count; + uint32_t seq_count; + uint64_t char_count; //total count of characters including those in and out of the alphabet + char *alph; + char *inv_alph; + int *compl_alph; + FILE *fp; + FM_SEQDATA *seq_data; + FM_AMBIGLIST *ambig_list; +} FM_METADATA; + + +typedef struct fm_data_s { + uint64_t N; //length of text + uint32_t term_loc; // location in the BWT at which the '$' char is found (replaced in the sequence with 'a') + uint32_t seq_offset; + uint32_t ambig_offset; + uint32_t seq_cnt; + uint32_t ambig_cnt; + uint32_t overlap; // number of bases at the beginning that overlap the FM-index for the preceding block + uint8_t *T; //text corresponding to the BWT + uint8_t *BWT_mem; + uint8_t *BWT; + uint32_t *SA; // sampled suffix array + int64_t *C; //the first position of each letter of the alphabet if all of T is sorted. (signed, as I use that to keep tract of presence/absence) + uint32_t *occCnts_sb; + uint16_t *occCnts_b; +} FM_DATA; + +typedef struct fm_dp_pair_s { + uint16_t pos; // position of the diagonal in the model. + float score; + float max_score; + uint8_t score_peak_len; // how long was the diagonal when the most recent peak (within fm_drop_lim of the max score) was seen? + uint8_t consec_pos; + uint8_t max_consec_pos; + uint8_t consec_consensus; + uint8_t model_direction; + uint8_t complementarity; +} FM_DP_PAIR; + + +typedef struct fm_diag_s { + uint64_t n; //position of the database sequence at which the diagonal starts + union { + double sortkey; + double score; + }; + uint16_t k; //position of the model at which the diagonal starts + uint16_t length; + uint8_t complementarity; +} FM_DIAG; + +typedef struct fm_diaglist_s { + FM_DIAG *diags; + int count; + int size; +} FM_DIAGLIST; + +/* Effectively global variables, to be initialized once in fm_initConfig(), + * then passed around among threads to avoid recomputing them + * + * When allocated, must be 16-byte aligned, and all _m128i elements + * must precede other types + */ +typedef struct { +#if defined (eslENABLE_SSE) + /* mask arrays, and 16-byte-offsets into them */ + __m128i *fm_masks_mem; + __m128i *fm_masks_v; + __m128i *fm_reverse_masks_mem; + __m128i *fm_reverse_masks_v; + __m128i *fm_chars_mem; + __m128i *fm_chars_v; + + /*various precomputed vectors*/ + __m128i fm_allones_v; + __m128i fm_zeros_v; + __m128i fm_neg128_v; + __m128i fm_m0f; //00 00 11 11 + __m128i fm_m01; //01 01 01 01 + __m128i fm_m11; //00 00 00 11 + + /* no non-__m128i- elements above this line */ +#endif //#if defined (eslENABLE_SSE) + + /*counter, to compute FM-index speed*/ + int occCallCnt; + + /*bounding cutoffs*/ + int max_depth; + float drop_lim; // 0.2 ; in seed, max drop in a run of length [fm_drop_max_len] + int drop_max_len; // 4 ; maximum run length with score under (max - [fm_drop_lim]) + int consec_pos_req; //5 + int consensus_match_req; //10 + float score_density_req; //.5 + int ssv_length; + float scthreshFM; + float sc_thresh_ratio; //information content deficit, actual_relent/target_relent + + /*pointer to FM-index metadata*/ + FM_METADATA *meta; + +} FM_CFG; + + +#if defined (eslENABLE_SSE) +//used to convert from a byte array to an __m128i +typedef union { + uint8_t bytes[16]; + __m128i m128; + } byte_m128; + + +/* Gather the sum of all counts in a 16x8-bit element into a single 16-bit + * element of the register (the 0th element) + * + * the _mm_sad_epu8 accumulates 8-bit counts into 16-bit counts: + * left 8 counts (64-bits) accumulate in counts_v[0], + * right 8 counts in counts_v[4] (the other 6 16-bit ints are 0) + * the _mm_shuffle_epi32 flips the 4th int into the 0th slot + */ +#define FM_GATHER_8BIT_COUNTS( in_v, mid_v, out_v ) do {\ + mid_v = _mm_sad_epu8 (in_v, cfg->fm_zeros_v);\ + tmp_v = _mm_shuffle_epi32(mid_v, _MM_SHUFFLE(1, 1, 1, 2));\ + out_v = _mm_add_epi16(mid_v, tmp_v);\ + } while (0) + + +/* Macro for SSE operations to turn 2-bit character values into 2-bit binary + * (00 or 01) match/mismatch values representing occurrences of a character in a + * 4-char-per-byte packed BWT. + * + * Typically followed by a call to FM_COUNT_SSE_4PACKED, possibly with a + * mask in between to handle the case where we don't want to add over all + * positions in the vector + * + * tmp_v and tmp2_v are used as temporary vectors throughout, and hold meaningless values + * at the end + * + * xor(in_v, c_v) : each 2-bit value will be 00 if a match, and non-0 if a mismatch + * and(in_v, 01010101) : look at the right bit of each 2-bit value, + * srli(1)+and() : look at the left bit of each 2-bit value, + * or() : if either left bit or right bit is non-0, 01, else 00 (match is 00) + * + * subs() : invert, so match is 01, mismatch is 00 + * + */ +#define FM_MATCH_2BIT(in_v, c_v, a_v, b_v, out_v) do {\ + a_v = _mm_xor_si128(in_v, c_v);\ + \ + b_v = _mm_srli_epi16(a_v, 1);\ + a_v = _mm_or_si128(a_v, b_v);\ + b_v = _mm_and_si128(a_v, cfg->fm_m01);\ + \ + out_v = _mm_subs_epi8(cfg->fm_m01,b_v);\ + } while (0) + + +/*Macro for SSE operations to count bits produced by FM_MATCH_SSE_4PACKED + * + * tmp_v and tmp2_v are used as temporary vectors throughout, and hold meaningless values + * at the end + * + * then add up the 2-bit values: + * srli(4)+add() : left 4 bits shifted right, added to right 4 bits + * + * srli(2)+and(00000011) : left 2 bits (value 0..2) shifted right, masked, so no other bits active + * and(00000011) : right 2 bits (value 0..2) masked so no other bits active + * + * final 2 add()s : tack current counts on to already-tabulated counts. + */ +#define FM_COUNT_2BIT(a_v, b_v, cnts_v) do {\ + b_v = _mm_srli_epi16(a_v, 4);\ + a_v = _mm_add_epi16(a_v, b_v);\ + \ + b_v = _mm_srli_epi16(a_v, 2);\ + a_v = _mm_and_si128(a_v,cfg->fm_m11);\ + b_v = _mm_and_si128(b_v,cfg->fm_m11);\ + \ + cnts_v = _mm_add_epi16(cnts_v, a_v);\ + cnts_v = _mm_add_epi16(cnts_v, b_v);\ + } while (0) + + + +/* Macro for SSE operations that turns a vector of 4-bit character values into + * 2 vectors representing matches. Each byte in the input vector consists of + * a left half (4 bits) and a right half (4 bits). The 16 left-halves produce + * one vector, which contains all-1s for bytes in which the left half matches + * the c_v character (and 0s if it doesn't), while the 16 right-halves produce + * the other vector, again with each byte either all-1s or all-0s. + * + * The expectation is that FM_COUNT_4BIT will be called after this, to + * turn these binary values into sums over a series of vectors. The macros + * are split up to allow one end or other to be trimmed in the case that + * counting is not expected to include the full vector. + * + * srli(4)+and() : capture the left 4-bit value (need the mask because 16-bit shift leaves garbage in left-4-bit chunks) + * and() : capture the right 4-bit value + * + * cmpeq()x2 : test if both left and right == c. For each, if ==c , value = 11111111 (-1) + */ +#define FM_MATCH_4BIT(in_v, c_v, out1_v, out2_v) do {\ + out1_v = _mm_srli_epi16(in_v, 4);\ + out2_v = _mm_and_si128(in_v, cfg->fm_m0f);\ + out1_v = _mm_and_si128(out1_v, cfg->fm_m0f);\ + \ + out1_v = _mm_cmpeq_epi8(out1_v, c_v);\ + out2_v = _mm_cmpeq_epi8(out2_v, c_v);\ + } while (0) + + +/* Macro for SSE operations that turns a vector of 4-bit character values into + * 2 vectors representing matches. Each byte in the input vector consists of + * a left half (4 bits) and a right half (4 bits). The 16 left-halves produce + * one vector, which contains all-1s for bytes in which the left half is less than + * the c_v character (and 0s if it doesn't), while the 16 right-halves produce + * the other vector, again with each byte either all-1s or all-0s. + * + * The expectation is that FM_COUNT_4BIT will be called after this, to + * turn these binary values into sums over a series of vectors. The macros + * are split up to allow one end or other to be trimmed in the case that + * counting is not expected to include the full vector. + * + * srli(4)+and() : capture the left 4-bit value (need the mask because 16-bit shift leaves garbage in left-4-bit chunks) + * and() : capture the right 4-bit value + * + * cmplt()x2 : test if both left and right < c. For each, if fm_m0f);\ + out1_v = _mm_and_si128(out1_v, cfg->fm_m0f);\ + \ + out1_v = _mm_cmplt_epi8(out1_v, c_v);\ + out2_v = _mm_cmplt_epi8(out2_v, c_v);\ + } while (0) + + + +/* Macro for SSE operations to add occurrence counts to the tally vector counts_v, + * in the 4-bits-per-character case + * + * The expectation is that in[12]_v will contain bytes that are either + * 00000000 = 0 + * or + * 11111111 = -1 + * so subtracting the value of the byte is the same as adding 0 or 1. + */ +#define FM_COUNT_4BIT(in1_v, in2_v, cnts_v) do {\ + cnts_v = _mm_subs_epi8(cnts_v, in1_v);\ + cnts_v = _mm_subs_epi8(cnts_v, in2_v);\ + } while (0) + + +#endif // if defined (eslENABLE_SSE) + +/***************************************************************** + * 16. P7_PIPELINE: H3's accelerated seq/profile comparison pipeline + *****************************************************************/ + +enum p7_pipemodes_e { p7_SEARCH_SEQS = 0, p7_SCAN_MODELS = 1 }; +enum p7_zsetby_e { p7_ZSETBY_NTARGETS = 0, p7_ZSETBY_OPTION = 1, p7_ZSETBY_FILEINFO = 2 }; +enum p7_complementarity_e { p7_NOCOMPLEMENT = 0, p7_COMPLEMENT = 1 }; + +typedef struct p7_pipeline_s { + /* Dynamic programming matrices */ + P7_OMX *oxf; /* one-row Forward matrix, accel pipe */ + P7_OMX *oxb; /* one-row Backward matrix, accel pipe */ + P7_OMX *fwd; /* full Fwd matrix for domain envelopes */ + P7_OMX *bck; /* full Bck matrix for domain envelopes */ + + /* Domain postprocessing */ + ESL_RANDOMNESS *r; /* random number generator */ + int do_reseeding; /* TRUE: reseed for reproducible results */ + int do_alignment_score_calc; /* used only by nhmmer --aliscoresout */ + P7_DOMAINDEF *ddef; /* domain definition workflow */ + + /* Reporting threshold settings */ + int by_E; /* TRUE to cut per-target report off by E */ + double E; /* per-target E-value threshold */ + double T; /* per-target bit score threshold */ + int dom_by_E; /* TRUE to cut domain reporting off by E */ + double domE; /* domain E-value threshold */ + double domT; /* domain bit score threshold */ + int use_bit_cutoffs; /* (FALSE | p7H_GA | p7H_TC | p7H_NC) */ + + /* Inclusion threshold settings */ + int inc_by_E; /* TRUE to threshold inclusion by E-values */ + double incE; /* per-target inclusion E-value threshold */ + double incT; /* per-target inclusion score threshold */ + int incdom_by_E; /* TRUE to threshold domain inclusion by E */ + double incdomE; /* per-domain inclusion E-value threshold */ + double incdomT; /* per-domain inclusion E-value threshold */ + + /* Tracking search space sizes for E value calculations */ + double Z; /* eff # targs searched (per-target E-val) */ + double domZ; /* eff # signific targs (per-domain E-val) */ + enum p7_zsetby_e Z_setby; /* how Z was set */ + enum p7_zsetby_e domZ_setby; /* how domZ was set */ + + /* Threshold settings for pipeline */ + int do_max; /* TRUE to run in slow/max mode */ + double F1; /* MSV filter threshold */ + double F2; /* Viterbi filter threshold */ + double F3; /* uncorrected Forward filter threshold */ + int B1; /* window length for biased-composition modifier - MSV*/ + int B2; /* window length for biased-composition modifier - Viterbi*/ + int B3; /* window length for biased-composition modifier - Forward*/ + int do_biasfilter; /* TRUE to use biased comp HMM filter */ + int do_null2; /* TRUE to use null2 score corrections */ + + /* Accounting. (reduceable in threaded/MPI parallel version) */ + uint64_t nmodels; /* # of HMMs searched */ + uint64_t nseqs; /* # of sequences searched */ + uint64_t nres; /* # of residues searched */ + uint64_t nnodes; /* # of model nodes searched */ + uint64_t n_past_msv; /* # comparisons that pass MSVFilter() */ + uint64_t n_past_bias; /* # comparisons that pass bias filter */ + uint64_t n_past_vit; /* # comparisons that pass ViterbiFilter() */ + uint64_t n_past_fwd; /* # comparisons that pass ForwardFilter() */ + uint64_t n_output; /* # alignments that make it to the final output (used for nhmmer) */ + uint64_t pos_past_msv; /* # positions that pass MSVFilter() (used for nhmmer) */ + uint64_t pos_past_bias; /* # positions that pass bias filter (used for nhmmer) */ + uint64_t pos_past_vit; /* # positions that pass ViterbiFilter() (used for nhmmer) */ + uint64_t pos_past_fwd; /* # positions that pass ForwardFilter() (used for nhmmer) */ + uint64_t pos_output; /* # positions that make it to the final output (used for nhmmer) */ + + enum p7_pipemodes_e mode; /* p7_SCAN_MODELS | p7_SEARCH_SEQS */ + int long_targets; /* TRUE if the target sequences are expected to be very long (e.g. dna chromosome search in nhmmer) */ + int strands; /* p7_STRAND_TOPONLY | p7_STRAND_BOTTOMONLY | p7_STRAND_BOTH */ + int W; /* window length for nhmmer scan - essentially maximum length of model that we expect to find*/ + int block_length; /* length of overlapping blocks read in the multi-threaded variant (default MAX_RESIDUE_COUNT) */ + + int show_accessions;/* TRUE to output accessions not names */ + int show_alignments;/* TRUE to output alignments (default) */ + + P7_HMMFILE *hfp; /* COPY of open HMM database (if scan mode) */ + char errbuf[eslERRBUFSIZE]; +} P7_PIPELINE; + + + +/***************************************************************** + * 17. P7_BUILDER: pipeline for new HMM construction + *****************************************************************/ + +#define p7_DEFAULT_WINDOW_BETA 1e-7 + +enum p7_archchoice_e { p7_ARCH_FAST = 0, p7_ARCH_HAND = 1 }; +enum p7_wgtchoice_e { p7_WGT_NONE = 0, p7_WGT_GIVEN = 1, p7_WGT_GSC = 2, p7_WGT_PB = 3, p7_WGT_BLOSUM = 4 }; +enum p7_effnchoice_e { p7_EFFN_NONE = 0, p7_EFFN_SET = 1, p7_EFFN_CLUST = 2, p7_EFFN_ENTROPY = 3, p7_EFFN_ENTROPY_EXP = 4 }; + +typedef struct p7_builder_s { + /* Model architecture */ + enum p7_archchoice_e arch_strategy; /* choice of model architecture determination algorithm */ + float symfrac; /* residue occ thresh for fast architecture determination */ + float fragthresh; /* if L <= fragthresh*alen, seq is called a fragment */ + + /* Relative sequence weights */ + enum p7_wgtchoice_e wgt_strategy; /* choice of relative sequence weighting algorithm */ + double wid; /* %id threshold for BLOSUM relative weighting */ + + /* Effective sequence number */ + enum p7_effnchoice_e effn_strategy; /* choice of effective seq # determination algorithm */ + double re_target; /* rel entropy target for effn eweighting, if set; or -1.0*/ + double esigma; /* min total rel ent parameter for effn entropy weights */ + double eid; /* %id threshold for effn clustering */ + double eset; /* effective sequence number, if --eset; or -1.0 */ + + /* Run-to-run variation due to random number generation */ + ESL_RANDOMNESS *r; /* RNG for E-value calibration simulations */ + int do_reseeding; /* TRUE to reseed, making results reproducible */ + + /* E-value parameter calibration */ + int EmL; /* length of sequences generated for MSV fitting */ + int EmN; /* # of sequences generated for MSV fitting */ + int EvL; /* length of sequences generated for Viterbi fitting */ + int EvN; /* # of sequences generated for Viterbi fitting */ + int EfL; /* length of sequences generated for Forward fitting */ + int EfN; /* # of sequences generated for Forward fitting */ + double Eft; /* tail mass used for Forward fitting */ + + /* Choice of prior */ + P7_PRIOR *prior; /* choice of prior when parameterizing from counts */ + int max_insert_len; + + /* Optional: information used for parameterizing single sequence queries */ + ESL_SCOREMATRIX *S; /* residue score matrix */ + ESL_DMATRIX *Q; /* Q->mx[a][b] = P(b|a) residue probabilities */ + double popen; /* gap open probability */ + double pextend; /* gap extend probability */ + + double w_beta; /*beta value used to compute W (window length) */ + int w_len; /*W (window length) explicitly set */ + + const ESL_ALPHABET *abc; /* COPY of alphabet */ + char errbuf[eslERRBUFSIZE]; /* informative message on model construction failure */ +} P7_BUILDER; + + + +/***************************************************************** + * 18. Routines in HMMER's exposed API. + *****************************************************************/ + +/* build.c */ +extern int p7_Handmodelmaker(ESL_MSA *msa, P7_BUILDER *bld, P7_HMM **ret_hmm, P7_TRACE ***ret_tr); +extern int p7_Fastmodelmaker(ESL_MSA *msa, float symfrac, P7_BUILDER *bld, P7_HMM **ret_hmm, P7_TRACE ***ret_tr); + +/* emit.c */ +extern int p7_CoreEmit (ESL_RANDOMNESS *r, const P7_HMM *hmm, ESL_SQ *sq, P7_TRACE *tr); +extern int p7_ProfileEmit(ESL_RANDOMNESS *r, const P7_HMM *hmm, const P7_PROFILE *gm, const P7_BG *bg, ESL_SQ *sq, P7_TRACE *tr); +extern int p7_emit_SimpleConsensus(const P7_HMM *hmm, ESL_SQ *sq); +extern int p7_emit_FancyConsensus (const P7_HMM *hmm, float min_lower, float min_upper, ESL_SQ *sq); + +/* errors.c */ +extern void p7_Die (char *format, ...); +extern void p7_Fail(char *format, ...); + +/* evalues.c */ +extern int p7_Calibrate(P7_HMM *hmm, P7_BUILDER *cfg_b, ESL_RANDOMNESS **byp_rng, P7_BG **byp_bg, P7_PROFILE **byp_gm, P7_OPROFILE **byp_om); +extern int p7_Lambda(P7_HMM *hmm, P7_BG *bg, double *ret_lambda); +extern int p7_MSVMu (ESL_RANDOMNESS *r, P7_OPROFILE *om, P7_BG *bg, int L, int N, double lambda, double *ret_mmu); +extern int p7_ViterbiMu (ESL_RANDOMNESS *r, P7_OPROFILE *om, P7_BG *bg, int L, int N, double lambda, double *ret_vmu); +extern int p7_Tau (ESL_RANDOMNESS *r, P7_OPROFILE *om, P7_BG *bg, int L, int N, double lambda, double tailp, double *ret_tau); + +/* eweight.c */ +extern int p7_EntropyWeight(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double infotarget, double *ret_Neff); + +extern int p7_EntropyWeight_exp(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double etarget, double *ret_exp); +/* generic_decoding.c */ +extern int p7_GDecoding (const P7_PROFILE *gm, const P7_GMX *fwd, P7_GMX *bck, P7_GMX *pp); +extern int p7_GDomainDecoding(const P7_PROFILE *gm, const P7_GMX *fwd, const P7_GMX *bck, P7_DOMAINDEF *ddef); + +/* generic_fwdback.c */ +extern int p7_GForward (const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *ret_sc); +extern int p7_GBackward (const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *ret_sc); +extern int p7_GHybrid (const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *opt_fwdscore, float *opt_hybscore); + +/* generic_msv.c */ +extern int p7_GMSV (const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float nu, float *ret_sc); +extern int p7_GMSV_longtarget(const ESL_DSQ *dsq, int L, P7_PROFILE *gm, P7_GMX *gx, float nu, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist); + +/* generic_null2.c */ +extern int p7_GNull2_ByExpectation(const P7_PROFILE *gm, P7_GMX *pp, float *null2); +extern int p7_GNull2_ByTrace (const P7_PROFILE *gm, const P7_TRACE *tr, int zstart, int zend, P7_GMX *wrk, float *null2); + +/* generic_optacc.c */ +extern int p7_GOptimalAccuracy(const P7_PROFILE *gm, const P7_GMX *pp, P7_GMX *gx, float *ret_e); +extern int p7_GOATrace (const P7_PROFILE *gm, const P7_GMX *pp, const P7_GMX *gx, P7_TRACE *tr); + +/* generic_stotrace.c */ +extern int p7_GStochasticTrace(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, const P7_GMX *gx, P7_TRACE *tr); + +/* generic_viterbi.c */ +extern int p7_GViterbi (const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, float *ret_sc); + +/* generic_vtrace.c */ +extern int p7_GTrace (const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, const P7_GMX *gx, P7_TRACE *tr); +extern int p7_GViterbi_longtarget(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *gx, + float filtersc, double P, P7_HMM_WINDOWLIST *windowlist); + + +/* heatmap.c (evolving now, intend to move this to Easel in the future) */ +extern double dmx_upper_max(ESL_DMATRIX *D); +extern double dmx_upper_min(ESL_DMATRIX *D); +extern double dmx_upper_element_sum(ESL_DMATRIX *D); +extern double dmx_upper_norm(ESL_DMATRIX *D); +extern int dmx_Visualize(FILE *fp, ESL_DMATRIX *D, double min, double max); + +/* hmmdutils.c */ +extern void p7_openlog(const char *ident, int option, int facility); +extern void p7_syslog(int priority, const char *format, ...); +extern void p7_closelog(void); + +/* hmmlogo.c */ +extern float hmmlogo_maxHeight (P7_BG *bg); +extern int hmmlogo_RelativeEntropy_all (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **probs, float **heights ); +extern int hmmlogo_RelativeEntropy_above_bg (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **probs, float **heights ); +extern int hmmlogo_ScoreHeights (P7_HMM *hmm, P7_BG *bg, float **heights ); +extern int hmmlogo_IndelValues (P7_HMM *hmm, float *insert_P, float *insert_expL, float *delete_P ); + + + +/* hmmpgmd2msa.c */ +extern int hmmpgmd2msa(void *data, P7_HMM *hmm, ESL_SQ *qsq, int *incl, int incl_size, int *excl, int excl_size, int excl_all, ESL_MSA **ret_msa); + + + +/* island.c */ +extern int p7_island_Viterbi(ESL_DSQ *dsq, int L, P7_PROFILE *gm, P7_GMX *mx, ESL_HISTOGRAM *h); + +/* h2_io.c */ +extern int p7_h2io_WriteASCII(FILE *fp, P7_HMM *hmm); + +/* hmmer.c */ +extern void p7_banner(FILE *fp, const char *progname, char *banner); +extern ESL_GETOPTS *p7_CreateDefaultApp(ESL_OPTIONS *options, int nargs, int argc, char **argv, char *banner, char *usage); +extern int p7_AminoFrequencies(float *f); + +/* logsum.c */ +extern int p7_FLogsumInit(void); +extern float p7_FLogsum(float a, float b); +extern float p7_FLogsumError(float a, float b); +extern int p7_ILogsumInit(void); +extern int p7_ILogsum(int s1, int s2); + + +/* modelconfig.c */ +extern int p7_ProfileConfig(const P7_HMM *hmm, const P7_BG *bg, P7_PROFILE *gm, int L, int mode); +extern int p7_ReconfigLength (P7_PROFILE *gm, int L); +extern int p7_ReconfigMultihit(P7_PROFILE *gm, int L); +extern int p7_ReconfigUnihit (P7_PROFILE *gm, int L); + +/* modelstats.c */ +extern double p7_MeanMatchInfo (const P7_HMM *hmm, const P7_BG *bg); +extern double p7_MeanMatchEntropy (const P7_HMM *hmm); +extern double p7_MeanMatchRelativeEntropy(const P7_HMM *hmm, const P7_BG *bg); +extern double p7_MeanForwardScore (const P7_HMM *hmm, const P7_BG *bg); +extern int p7_MeanPositionRelativeEntropy(const P7_HMM *hmm, const P7_BG *bg, double *ret_entropy); +extern int p7_hmm_CompositionKLD(const P7_HMM *hmm, const P7_BG *bg, float *ret_KL, float **opt_avp); + + +/* mpisupport.c */ +#ifdef HMMER_MPI +extern int p7_hmm_MPISend(P7_HMM *hmm, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc); +extern int p7_hmm_MPIPackSize(P7_HMM *hmm, MPI_Comm comm, int *ret_n); +extern int p7_hmm_MPIPack(P7_HMM *hmm, char *buf, int n, int *position, MPI_Comm comm); +extern int p7_hmm_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, ESL_ALPHABET **abc, P7_HMM **ret_hmm); +extern int p7_hmm_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, ESL_ALPHABET **abc, P7_HMM **ret_hmm); + +extern int p7_profile_MPISend(P7_PROFILE *gm, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc); +extern int p7_profile_MPIRecv(int source, int tag, MPI_Comm comm, const ESL_ALPHABET *abc, const P7_BG *bg, + char **buf, int *nalloc, P7_PROFILE **ret_gm); + +extern int p7_pipeline_MPISend(P7_PIPELINE *pli, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc); +extern int p7_pipeline_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, ESL_GETOPTS *go, P7_PIPELINE **ret_pli); + +extern int p7_tophits_MPISend(P7_TOPHITS *th, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc); +extern int p7_tophits_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, P7_TOPHITS **ret_th); + +extern int p7_oprofile_MPISend(P7_OPROFILE *om, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc); +extern int p7_oprofile_MPIPackSize(P7_OPROFILE *om, MPI_Comm comm, int *ret_n); +extern int p7_oprofile_MPIPack(P7_OPROFILE *om, char *buf, int n, int *pos, MPI_Comm comm); +extern int p7_oprofile_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, ESL_ALPHABET **abc, P7_OPROFILE **ret_om); +extern int p7_oprofile_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, ESL_ALPHABET **abc, P7_OPROFILE **ret_om); +#endif /*HMMER_MPI*/ + +/* tracealign.c */ +extern int p7_tracealign_Seqs(ESL_SQ **sq, P7_TRACE **tr, int nseq, int M, int optflags, P7_HMM *hmm, ESL_MSA **ret_msa); +extern int p7_tracealign_MSA (const ESL_MSA *premsa, P7_TRACE **tr, int M, int optflags, ESL_MSA **ret_postmsa); +extern int p7_tracealign_computeTraces(P7_HMM *hmm, ESL_SQ **sq, int offset, int N, P7_TRACE **tr); +extern int p7_tracealign_getMSAandStats(P7_HMM *hmm, ESL_SQ **sq, int N, ESL_MSA **ret_msa, float **ret_pp, float **ret_relent, float **ret_scores ); + +/* p7_alidisplay.c */ +extern P7_ALIDISPLAY *p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const ESL_SQ *sq, const ESL_SQ *ntsq); +extern P7_ALIDISPLAY *p7_alidisplay_Create_empty(); +extern P7_ALIDISPLAY *p7_alidisplay_Clone(const P7_ALIDISPLAY *ad); +extern size_t p7_alidisplay_Sizeof(const P7_ALIDISPLAY *ad); +extern int p7_alidisplay_Serialize(const P7_ALIDISPLAY *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc); +extern int p7_alidisplay_Deserialize(const uint8_t *buf, uint32_t *n, P7_ALIDISPLAY *ret_obj); +extern int p7_alidisplay_Serialize_old(P7_ALIDISPLAY *ad); +extern int p7_alidisplay_Deserialize_old(P7_ALIDISPLAY *ad); +extern void p7_alidisplay_Destroy(P7_ALIDISPLAY *ad); +extern char p7_alidisplay_EncodePostProb(float p); +extern float p7_alidisplay_DecodePostProb(char pc); +extern char p7_alidisplay_EncodeAliPostProb(float p, float hi, float med, float lo); + +extern int p7_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, P7_PIPELINE *pli); +extern int p7_translated_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, P7_PIPELINE *pli); +extern int p7_nontranslated_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, int show_accessions); + +extern int p7_alidisplay_Backconvert(const P7_ALIDISPLAY *ad, const ESL_ALPHABET *abc, ESL_SQ **ret_sq, P7_TRACE **ret_tr); +extern int p7_alidisplay_Sample(ESL_RANDOMNESS *rng, int N, P7_ALIDISPLAY **ret_ad); +extern int p7_alidisplay_Dump(FILE *fp, const P7_ALIDISPLAY *ad); +extern int p7_alidisplay_Compare(const P7_ALIDISPLAY *ad1, const P7_ALIDISPLAY *ad2); + +/* p7_bg.c */ +extern P7_BG *p7_bg_Create(const ESL_ALPHABET *abc); +extern P7_BG *p7_bg_CreateUniform(const ESL_ALPHABET *abc); +extern P7_BG *p7_bg_Clone(const P7_BG *bg); +extern int p7_bg_Dump(FILE *ofp, const P7_BG *bg); +extern void p7_bg_Destroy(P7_BG *bg); +extern int p7_bg_SetLength(P7_BG *bg, int L); +extern int p7_bg_NullOne(const P7_BG *bg, const ESL_DSQ *dsq, int L, float *ret_sc); + +extern int p7_bg_Read(char *bgfile, P7_BG *bg, char *errbuf); +extern int p7_bg_Write(FILE *fp, P7_BG *bg); + +extern int p7_bg_SetFilter (P7_BG *bg, int M, const float *compo); +extern int p7_bg_FilterScore(P7_BG *bg, const ESL_DSQ *dsq, int L, float *ret_sc); + +/* p7_builder.c */ +extern P7_BUILDER *p7_builder_Create(const ESL_GETOPTS *go, const ESL_ALPHABET *abc); +extern int p7_builder_LoadScoreSystem(P7_BUILDER *bld, const char *matrix, double popen, double pextend, P7_BG *bg); +extern int p7_builder_SetScoreSystem (P7_BUILDER *bld, const char *mxfile, const char *env, double popen, double pextend, P7_BG *bg); +extern void p7_builder_Destroy(P7_BUILDER *bld); + +extern int p7_Builder (P7_BUILDER *bld, ESL_MSA *msa, P7_BG *bg, P7_HMM **opt_hmm, P7_TRACE ***opt_trarr, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om, ESL_MSA **opt_postmsa); +extern int p7_SingleBuilder(P7_BUILDER *bld, ESL_SQ *sq, P7_BG *bg, P7_HMM **opt_hmm, P7_TRACE **opt_tr, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om); +extern int p7_Builder_MaxLength (P7_HMM *hmm, double emit_thresh); + +/* p7_domain.c */ +extern P7_DOMAIN *p7_domain_Create_empty(); +extern void p7_domain_Destroy(P7_DOMAIN *obj); +extern int p7_domain_Serialize(const P7_DOMAIN *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc); +extern int p7_domain_Deserialize(const uint8_t *buf, uint32_t *n, P7_DOMAIN *ret_obj); +extern int p7_domain_TestSample(ESL_RAND64 *rng, P7_DOMAIN **ret_obj); +extern int p7_domain_Compare(P7_DOMAIN *first, P7_DOMAIN *second, double atol, double rtol); + +/* p7_domaindef.c */ +extern P7_DOMAINDEF *p7_domaindef_Create (ESL_RANDOMNESS *r); +extern int p7_domaindef_Fetch (P7_DOMAINDEF *ddef, int which, int *opt_i, int *opt_j, float *opt_sc, P7_ALIDISPLAY **opt_ad); +extern int p7_domaindef_GrowTo (P7_DOMAINDEF *ddef, int L); +extern int p7_domaindef_Reuse (P7_DOMAINDEF *ddef); +extern int p7_domaindef_DumpPosteriors(FILE *ofp, P7_DOMAINDEF *ddef); +extern void p7_domaindef_Destroy(P7_DOMAINDEF *ddef); + +extern int p7_domaindef_ByViterbi (P7_PROFILE *gm, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_GMX *gx1, P7_GMX *gx2, P7_DOMAINDEF *ddef); +extern int p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, const ESL_SQ *ntsq, P7_OPROFILE *om, P7_OMX *oxf, P7_OMX *oxb, P7_OMX *fwd, P7_OMX *bck, + P7_DOMAINDEF *ddef, P7_BG *bg, int long_target, + P7_BG *bg_tmp, float *scores_arr, float *fwd_emissions_arr); + + +/* p7_gmx.c */ +extern P7_GMX *p7_gmx_Create (int allocM, int allocL); +extern int p7_gmx_GrowTo (P7_GMX *gx, int allocM, int allocL); +extern size_t p7_gmx_Sizeof (P7_GMX *gx); +extern int p7_gmx_Reuse (P7_GMX *gx); +extern void p7_gmx_Destroy(P7_GMX *gx); +extern int p7_gmx_Compare(P7_GMX *gx1, P7_GMX *gx2, float tolerance); +extern int p7_gmx_Dump(FILE *fp, P7_GMX *gx, int flags); +extern int p7_gmx_DumpWindow(FILE *fp, P7_GMX *gx, int istart, int iend, int kstart, int kend, int show_specials); + +/* p7_hit.c */ +extern P7_HIT *p7_hit_Create_empty(); +extern void p7_hit_Destroy(P7_HIT *the_hit); +extern int p7_hit_Serialize(const P7_HIT *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc); +extern int p7_hit_Deserialize(const uint8_t *buf, uint32_t *n, P7_HIT *ret_obj); +extern int p7_hit_TestSample(ESL_RAND64 *rng, P7_HIT **ret_obj); +extern int p7_hit_Compare(P7_HIT *first, P7_HIT *second, double atol, double rtol); + +/* p7_hmm.c */ +/* 1. The P7_HMM object: allocation, initialization, destruction. */ +extern P7_HMM *p7_hmm_Create(int M, const ESL_ALPHABET *abc); +extern P7_HMM *p7_hmm_CreateShell(void); +extern int p7_hmm_CreateBody(P7_HMM *hmm, int M, const ESL_ALPHABET *abc); +extern void p7_hmm_Destroy(P7_HMM *hmm); +extern int p7_hmm_CopyParameters(const P7_HMM *src, P7_HMM *dest); +extern P7_HMM *p7_hmm_Clone(const P7_HMM *hmm); +extern int p7_hmm_Zero(P7_HMM *hmm); +extern char p7_hmm_EncodeStatetype(char *typestring); +extern char *p7_hmm_DecodeStatetype(char st); +/* 2. Convenience routines for setting fields in an HMM. */ +extern int p7_hmm_SetName (P7_HMM *hmm, char *name); +extern int p7_hmm_SetAccession (P7_HMM *hmm, char *acc); +extern int p7_hmm_SetDescription(P7_HMM *hmm, char *desc); +extern int p7_hmm_AppendComlog (P7_HMM *hmm, int argc, char **argv); +extern int p7_hmm_SetCtime (P7_HMM *hmm); +extern int p7_hmm_SetComposition(P7_HMM *hmm); +extern int p7_hmm_SetConsensus (P7_HMM *hmm, ESL_SQ *sq); +/* 3. Renormalization and rescaling counts in core HMMs. */ +extern int p7_hmm_Scale (P7_HMM *hmm, double scale); +extern int p7_hmm_ScaleExponential(P7_HMM *hmm, double exp); +extern int p7_hmm_Renormalize(P7_HMM *hmm); +/* 4. Debugging and development code. */ +extern int p7_hmm_Dump(FILE *fp, P7_HMM *hmm); +extern int p7_hmm_Sample (ESL_RANDOMNESS *r, int M, const ESL_ALPHABET *abc, P7_HMM **ret_hmm); +extern int p7_hmm_SampleUngapped (ESL_RANDOMNESS *r, int M, const ESL_ALPHABET *abc, P7_HMM **ret_hmm); +extern int p7_hmm_SampleEnumerable(ESL_RANDOMNESS *r, int M, const ESL_ALPHABET *abc, P7_HMM **ret_hmm); +extern int p7_hmm_SampleUniform (ESL_RANDOMNESS *r, int M, const ESL_ALPHABET *abc, + float tmi, float tii, float tmd, float tdd, P7_HMM **ret_hmm); +extern int p7_hmm_Compare(P7_HMM *h1, P7_HMM *h2, float tol); +extern int p7_hmm_Validate(P7_HMM *hmm, char *errbuf, float tol); +/* 5. Other routines in the API */ +extern int p7_hmm_CalculateOccupancy(const P7_HMM *hmm, float *mocc, float *iocc); + + + +/* p7_hmmfile.c */ +extern int p7_hmmfile_OpenE (const char *filename, char *env, P7_HMMFILE **ret_hfp, char *errbuf); +extern int p7_hmmfile_OpenENoDB(const char *filename, char *env, P7_HMMFILE **ret_hfp, char *errbuf); +extern int p7_hmmfile_Open (const char *filename, char *env, P7_HMMFILE **ret_hfp); /* deprecated */ +extern int p7_hmmfile_OpenNoDB (const char *filename, char *env, P7_HMMFILE **ret_hfp); /* deprecated */ +extern int p7_hmmfile_OpenBuffer(const char *buffer, int size, P7_HMMFILE **ret_hfp); +extern void p7_hmmfile_Close(P7_HMMFILE *hfp); +#ifdef HMMER_THREADS +extern int p7_hmmfile_CreateLock(P7_HMMFILE *hfp); +#endif +extern int p7_hmmfile_WriteBinary(FILE *fp, int format, P7_HMM *hmm); +extern int p7_hmmfile_WriteASCII (FILE *fp, int format, P7_HMM *hmm); +extern int p7_hmmfile_WriteToString (char **s, int format, P7_HMM *hmm); +extern int p7_hmmfile_Read(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm); +extern int p7_hmmfile_PositionByKey(P7_HMMFILE *hfp, const char *key); +extern int p7_hmmfile_Position(P7_HMMFILE *hfp, const off_t offset); + + +/* p7_hmmwindow.c */ +int p7_hmmwindow_init (P7_HMM_WINDOWLIST *list); +P7_HMM_WINDOW *p7_hmmwindow_new (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t fm_pos, uint16_t k, uint32_t length, float score, uint8_t complementarity, uint32_t target_len); + + + +/* p7_msvdata.c */ +extern P7_SCOREDATA *p7_hmm_ScoreDataCreate(P7_OPROFILE *om, P7_PROFILE *gm ); +extern P7_SCOREDATA *p7_hmm_ScoreDataClone(P7_SCOREDATA *src, int K); +extern int p7_hmm_ScoreDataComputeRest(P7_OPROFILE *om, P7_SCOREDATA *data ); +extern void p7_hmm_ScoreDataDestroy( P7_SCOREDATA *data ); +extern int p7_hmm_initWindows (P7_HMM_WINDOWLIST *list); +extern P7_HMM_WINDOW *p7_hmm_newWindow (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t fm_pos, uint16_t k, uint32_t length, float score, uint8_t complementarity); + + + +/* p7_null3.c */ +extern void p7_null3_score(const ESL_ALPHABET *abc, const ESL_DSQ *dsq, P7_TRACE *tr, int start, int stop, P7_BG *bg, float *ret_sc); +extern void p7_null3_windowed_score(const ESL_ALPHABET *abc, const ESL_DSQ *dsq, int start, int stop, P7_BG *bg, float *ret_sc); + +/* p7_pipeline.c */ +extern P7_PIPELINE *p7_pipeline_Create(const ESL_GETOPTS *go, int M_hint, int L_hint, int long_targets, enum p7_pipemodes_e mode); +extern int p7_pipeline_Reuse (P7_PIPELINE *pli); +extern void p7_pipeline_Destroy(P7_PIPELINE *pli); +extern int p7_pipeline_Merge (P7_PIPELINE *p1, P7_PIPELINE *p2); + +extern int p7_pli_ExtendAndMergeWindows (P7_OPROFILE *om, const P7_SCOREDATA *msvdata, P7_HMM_WINDOWLIST *windowlist, float pct_overlap); +extern int p7_pli_TargetReportable (P7_PIPELINE *pli, float score, double lnP); +extern int p7_pli_DomainReportable (P7_PIPELINE *pli, float dom_score, double lnP); + +extern int p7_pli_TargetIncludable (P7_PIPELINE *pli, float score, double lnP); +extern int p7_pli_DomainIncludable (P7_PIPELINE *pli, float dom_score, double lnP); +extern int p7_pli_NewModel (P7_PIPELINE *pli, const P7_OPROFILE *om, P7_BG *bg); +extern int p7_pli_NewModelThresholds(P7_PIPELINE *pli, const P7_OPROFILE *om); +extern int p7_pli_NewSeq (P7_PIPELINE *pli, const ESL_SQ *sq); +extern int p7_Pipeline (P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_TOPHITS *th); +extern int p7_Pipeline_LongTarget (P7_PIPELINE *pli, P7_OPROFILE *om, P7_SCOREDATA *data, + P7_BG *bg, P7_TOPHITS *hitlist, int64_t seqidx, + const ESL_SQ *sq, int complementarity, + const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg + ); + + + +extern int p7_pli_Statistics(FILE *ofp, P7_PIPELINE *pli, ESL_STOPWATCH *w); + + +/* p7_prior.c */ +extern P7_PRIOR *p7_prior_CreateAmino(void); +extern P7_PRIOR *p7_prior_CreateNucleic(void); +extern P7_PRIOR *p7_prior_CreateLaplace(const ESL_ALPHABET *abc); +extern void p7_prior_Destroy(P7_PRIOR *pri); + +extern int p7_ParameterEstimation(P7_HMM *hmm, const P7_PRIOR *pri); + +/* p7_profile.c */ +extern P7_PROFILE *p7_profile_Create(int M, const ESL_ALPHABET *abc); +extern P7_PROFILE *p7_profile_Clone(const P7_PROFILE *gm); +extern int p7_profile_Copy(const P7_PROFILE *src, P7_PROFILE *dst); +extern int p7_profile_SetNullEmissions(P7_PROFILE *gm); +extern int p7_profile_Reuse(P7_PROFILE *gm); +extern size_t p7_profile_Sizeof(P7_PROFILE *gm); +extern void p7_profile_Destroy(P7_PROFILE *gm); +extern int p7_profile_IsLocal(const P7_PROFILE *gm); +extern int p7_profile_IsMultihit(const P7_PROFILE *gm); +extern int p7_profile_GetT(const P7_PROFILE *gm, char st1, int k1, + char st2, int k2, float *ret_tsc); +extern int p7_profile_Validate(const P7_PROFILE *gm, char *errbuf, float tol); +extern int p7_profile_Compare(P7_PROFILE *gm1, P7_PROFILE *gm2, float tol); + +/* p7_spensemble.c */ +P7_SPENSEMBLE *p7_spensemble_Create(int init_n, int init_epc, int init_sigc); +extern int p7_spensemble_Reuse(P7_SPENSEMBLE *sp); +extern int p7_spensemble_Add(P7_SPENSEMBLE *sp, int sampleidx, int i, int j, int k, int m); +extern int p7_spensemble_Cluster(P7_SPENSEMBLE *sp, + float min_overlap, int of_smaller, int max_diagdiff, + float min_posterior, float min_endpointp, + int *ret_nclusters); +extern int p7_spensemble_GetClusterCoords(P7_SPENSEMBLE *sp, int which, + int *ret_i, int *ret_j, int *ret_k, int *ret_m, float *ret_p); +extern void p7_spensemble_Destroy(P7_SPENSEMBLE *sp); + +/* p7_tophits.c */ +extern P7_TOPHITS *p7_tophits_Create(void); +extern int p7_tophits_Grow(P7_TOPHITS *h); +extern int p7_tophits_CreateNextHit(P7_TOPHITS *h, P7_HIT **ret_hit); +extern int p7_tophits_Add(P7_TOPHITS *h, + char *name, char *acc, char *desc, + double sortkey, + float score, double lnP, + float mothersc, double mother_lnP, + int sqfrom, int sqto, int sqlen, + int hmmfrom, int hmmto, int hmmlen, + int domidx, int ndom, + P7_ALIDISPLAY *ali); +extern int p7_tophits_SortBySortkey(P7_TOPHITS *h); +extern int p7_tophits_SortBySeqidxAndAlipos(P7_TOPHITS *h); +extern int p7_tophits_SortByModelnameAndAlipos(P7_TOPHITS *h); + +extern int p7_tophits_Merge(P7_TOPHITS *h1, P7_TOPHITS *h2); +extern int p7_tophits_GetMaxPositionLength(P7_TOPHITS *h); +extern int p7_tophits_GetMaxNameLength(P7_TOPHITS *h); +extern int p7_tophits_GetMaxAccessionLength(P7_TOPHITS *h); +extern int p7_tophits_GetMaxShownLength(P7_TOPHITS *h); +extern void p7_tophits_Destroy(P7_TOPHITS *h); + +extern int p7_tophits_ComputeNhmmerEvalues(P7_TOPHITS *th, double N, int W); +extern int p7_tophits_RemoveDuplicates(P7_TOPHITS *th, int using_bit_cutoffs); +extern int p7_tophits_Threshold(P7_TOPHITS *th, P7_PIPELINE *pli); +extern int p7_tophits_CompareRanking(P7_TOPHITS *th, ESL_KEYHASH *kh, int *opt_nnew); +extern int p7_tophits_Targets(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw); +extern int p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw); + + +extern int p7_tophits_Alignment(const P7_TOPHITS *th, const ESL_ALPHABET *abc, + ESL_SQ **inc_sqarr, P7_TRACE **inc_trarr, int inc_n, int optflags, + ESL_MSA **ret_msa); +extern int p7_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli, int show_header); +extern int p7_tophits_TabularDomains(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli, int show_header); +extern int p7_tophits_TabularXfam(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli); +extern int p7_tophits_TabularTail(FILE *ofp, const char *progname, enum p7_pipemodes_e pipemode, + const char *qfile, const char *tfile, const ESL_GETOPTS *go); +extern int p7_tophits_AliScores(FILE *ofp, char *qname, P7_TOPHITS *th ); + +/* p7_trace.c */ +extern P7_TRACE *p7_trace_Create(void); +extern P7_TRACE *p7_trace_CreateWithPP(void); +extern int p7_trace_Reuse(P7_TRACE *tr); +extern int p7_trace_Grow(P7_TRACE *tr); +extern int p7_trace_GrowIndex(P7_TRACE *tr); +extern int p7_trace_GrowTo(P7_TRACE *tr, int N); +extern int p7_trace_GrowIndexTo(P7_TRACE *tr, int ndom); +extern void p7_trace_Destroy(P7_TRACE *tr); +extern void p7_trace_DestroyArray(P7_TRACE **tr, int N); + +extern int p7_trace_GetDomainCount (const P7_TRACE *tr, int *ret_ndom); +extern int p7_trace_GetStateUseCounts(const P7_TRACE *tr, int *counts); +extern int p7_trace_GetDomainCoords (const P7_TRACE *tr, int which, int *ret_i1, int *ret_i2, + int *ret_k1, int *ret_k2); + +extern int p7_trace_Validate(const P7_TRACE *tr, const ESL_ALPHABET *abc, const ESL_DSQ *dsq, char *errbuf); +extern int p7_trace_Dump(FILE *fp, const P7_TRACE *tr, const P7_PROFILE *gm, const ESL_DSQ *dsq); +extern int p7_trace_Compare(P7_TRACE *tr1, P7_TRACE *tr2, float pptol); +extern int p7_trace_Score(P7_TRACE *tr, ESL_DSQ *dsq, P7_PROFILE *gm, float *ret_sc); +extern int p7_trace_SetPP(P7_TRACE *tr, const P7_GMX *pp); +extern float p7_trace_GetExpectedAccuracy(const P7_TRACE *tr); + +extern int p7_trace_Append(P7_TRACE *tr, char st, int k, int i); +extern int p7_trace_AppendWithPP(P7_TRACE *tr, char st, int k, int i, float pp); +extern int p7_trace_Reverse(P7_TRACE *tr); +extern int p7_trace_Index(P7_TRACE *tr); + +extern int p7_trace_FauxFromMSA(ESL_MSA *msa, int *matassign, int optflags, P7_TRACE **tr); +extern int p7_trace_Doctor(P7_TRACE *tr, int *opt_ndi, int *opt_nid); + +extern int p7_trace_Count(P7_HMM *hmm, ESL_DSQ *dsq, float wt, P7_TRACE *tr); + + +/* seqmodel.c */ +extern int p7_Seqmodel(const ESL_ALPHABET *abc, ESL_DSQ *dsq, int M, char *name, + ESL_DMATRIX *P, float *f, double popen, double pextend, + P7_HMM **ret_hmm); + +/* fm_alphabet.c */ +extern int fm_alphabetCreate (FM_METADATA *meta, uint8_t *alph_bits); +extern int fm_alphabetDestroy (FM_METADATA *meta); +extern int fm_reverseString (char *str, int N); +extern int fm_getComplement (char c, uint8_t alph_type); + + +/* fm_general.c */ +extern uint64_t fm_computeSequenceOffset (const FM_DATA *fms, const FM_METADATA *meta, int block, uint64_t pos); +extern int fm_getOriginalPosition (const FM_DATA *fms, const FM_METADATA *meta, int fm_id, int length, int direction, uint64_t fm_pos, + uint32_t *segment_id, uint64_t *seg_pos); +extern int fm_readFMmeta( FM_METADATA *meta); +extern int fm_FM_read( FM_DATA *fm, FM_METADATA *meta, int getAll ); +extern void fm_FM_destroy ( FM_DATA *fm, int isMainFM); +extern uint8_t fm_getChar(uint8_t alph_type, int j, const uint8_t *B ); +extern int fm_getSARangeReverse( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alph, FM_INTERVAL *interval); +extern int fm_getSARangeForward( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alph, FM_INTERVAL *interval); +extern int fm_configAlloc(FM_CFG **cfg); +extern int fm_configDestroy(FM_CFG *cfg); +extern int fm_metaDestroy(FM_METADATA *meta ); +extern int fm_updateIntervalForward( const FM_DATA *fm, const FM_CFG *cfg, char c, FM_INTERVAL *interval_f, FM_INTERVAL *interval_bk); +extern int fm_updateIntervalReverse( const FM_DATA *fm, const FM_CFG *cfg, char c, FM_INTERVAL *interval); +extern int fm_initSeeds (FM_DIAGLIST *list) ; +extern FM_DIAG * fm_newSeed (FM_DIAGLIST *list); +extern int fm_initAmbiguityList (FM_AMBIGLIST *list); +extern int fm_addAmbiguityRange (FM_AMBIGLIST *list, uint32_t start, uint32_t stop); +extern int fm_convertRange2DSQ(const FM_DATA *fm, const FM_METADATA *meta, uint64_t first, int length, int complementarity, ESL_SQ *sq, int fix_ambiguities ); +extern int fm_initConfigGeneric( FM_CFG *cfg, ESL_GETOPTS *go); + +/* fm_ssv.c */ +extern int p7_SSVFM_longlarget( P7_OPROFILE *om, float nu, P7_BG *bg, double F1, + const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg, const P7_SCOREDATA *ssvdata, + int strands, P7_HMM_WINDOWLIST *windowlist); + + +/* fm_sse.c */ +extern int fm_configInit (FM_CFG *cfg, ESL_GETOPTS *go); +extern int fm_getOccCount (const FM_DATA *fm, const FM_CFG *cfg, int pos, uint8_t c); +extern int fm_getOccCountLT (const FM_DATA *fm, const FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt); + +#endif /*P7_HMMERH_INCLUDED*/ + + diff --git a/bioinformaticsProject/hmmer/src/hmmerfm-exactmatch.c b/bioinformaticsProject/hmmer/src/hmmerfm-exactmatch.c new file mode 100644 index 0000000..2ccce91 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmerfm-exactmatch.c @@ -0,0 +1,516 @@ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "--out", eslARG_STRING, "none", NULL, NULL, NULL, NULL, NULL, "save list of hits to file ('-' writes to stdout)", 2 }, + { "--count_only", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "compute just counts, not locations", 2 }, + { "--fwd_only", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't compute matches to the reversed sequence", 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[options] "; +static char banner[] = "Find all instances of each sequence in the database represented by "; + + +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_fmfile, char **ret_qfile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + esl_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 120=textwidth*/ + + if (puts("\nSpecial options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); /* 2= group; 2 = indentation; 120=textwidth*/ + + exit(0); + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_qfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_fmfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* Validate any attempted use of stdin streams */ + if (esl_strcmp(*ret_fmfile, "-") == 0 && esl_strcmp(*ret_qfile, "-") == 0) + { if (puts("Either or may be '-' (to read from stdin), but not both.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + puts("\nwhere basic options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +//see: http://c-faq.com/stdio/commaprint.html +char * +commaprint(unsigned long n) +{ + static int comma = ','; + static char retbuf[30]; + char *p = &retbuf[sizeof(retbuf)-1]; + int i = 0; + *p = '\0'; + + do { + if(i%3 == 0 && i != 0) + *--p = comma; + *--p = '0' + n % 10; + n /= 10; + i++; + } while(n != 0); + + return p; +} + +static int +output_header(FM_METADATA *meta, FILE *ofp, const ESL_GETOPTS *go, char *fmfile, char *qfile) +{ + char *alph; + char *appname = NULL; + int status; + + if (meta->alph_type == fm_DNA) alph = "dna"; + else if (meta->alph_type == fm_AMINO) alph = "amino"; + + if ((status = esl_FileTail(go->argv[0], FALSE, &appname)) != eslOK) return status; + + + + if (fprintf(ofp, "# %s :: %s\n", appname, banner) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# %s\n", EASEL_COPYRIGHT) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# %s\n", EASEL_LICENSE) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + + + if (fprintf(ofp, "# input binary-formatted HMMER database: %s\n", fmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# input file of query sequences: %s\n", qfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--out")) { + char *outfile = esl_opt_GetString(go, "--out"); + if (fprintf(ofp, "# output file containing list of hits: %s\n", (esl_strcmp(outfile, "-") == 0 ? "stdout" : outfile)) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + + if (esl_opt_IsUsed(go, "--count_only") && fprintf(ofp, "# output only counts, not hit locations\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--fwd_only") && fprintf(ofp, "# don't compute matches to the reversed sequence\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + + if (fprintf(ofp, "# alphabet : %s\n", alph) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# bin_length : %d\n", meta->freq_cnt_b) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# suffix array sample rate: %d\n", meta->freq_SA) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + + if (appname) free(appname); + return eslOK; + +ERROR: +if (appname) free(appname); +return status; + +} + + + +/* Function: getFMHits() + * Synopsis: For a given interval, identify the position in original text for each element + * of interval + * Purpose: Implement Algorithm 3.7 (p17) of Firth paper (A Comparison of BWT Approaches + * to String Pattern Matching). Most of the meat is in the method of counting + * characters - bwt_getOccCount, which depends on compilation choices. + */ +int +getFMHits( FM_DATA *fm, FM_CFG *cfg, FM_INTERVAL *interval, int block_id, int hit_offset, int hit_length, FM_HIT *hits_ptr, int fm_direction) { + + int i, j, len = 0; + int dist_from_end; + + for (i = interval->lower; i<= interval->upper; i++) { + j = i; + len = 0; + + while ( j != fm->term_loc && (j % cfg->meta->freq_SA)) { //go until we hit a position in the full SA that was sampled during FM index construction + uint8_t c = fm_getChar( cfg->meta->alph_type, j, fm->BWT); + j = fm_getOccCount (fm, cfg, j-1, c); + j += abs((int)(fm->C[c])); + len++; + } + + + hits_ptr[hit_offset + i - interval->lower].block = block_id; + hits_ptr[hit_offset + i - interval->lower].direction = fm_direction; + hits_ptr[hit_offset + i - interval->lower].length = hit_length; + + dist_from_end = 1 + len + (j==fm->term_loc ? 0 : fm->SA[ j / cfg->meta->freq_SA ]) ; // len is how many backward steps we had to take to find a sampled SA position + + if (fm_direction == fm_forward) + dist_from_end += hit_length; + else + dist_from_end += 1; + + //the SA is on the reversed string. What would be the position in the unreversed string? + hits_ptr[hit_offset + i - interval->lower].start = fm->N - dist_from_end; + + //printf ("SA: %d\n", hits_ptr[hit_offset + i - interval->lower].start); + + } + + return eslOK; + +} + +/* hit_sorter(): qsort's pawn, below */ +static int +hit_sorter(const void *a, const void *b) +{ + FM_HIT *h1 = (FM_HIT*)a; + FM_HIT *h2 = (FM_HIT*)b; + + if (h1->sortkey > h2->sortkey) return 1; + else if (h1->sortkey < h2->sortkey) return -1; + else { + if (h1->direction > h2->direction) return 1; + else if (h1->direction < h2->direction) return -1; + else { + if (h1->start > h2->start) return 1; + else if(h1->start < h2->start) return -1; + else return 0; + } + } +} + +/* Function: main() + * Synopsis: Run set of queries against an FM + * Purpose: Read in a FM and a file of query sequences. + * For each query, find matching FM interval, then collect positions in + * the original text T for the corresponding occurrences. These positions + * are 0-based (so first character is position 0). + */ +int +main(int argc, char *argv[]) +{ + void* tmp; // used for RALLOC calls + clock_t t1, t2; + struct tms ts1, ts2; + char *fname_fm = NULL; + char *fname_queries = NULL; + FM_HIT *hits = NULL; + char *line = NULL; + int status = eslOK; + int hit_cnt = 0; + int hit_indiv_cnt = 0; + int miss_cnt = 0; + int hit_num = 0; + int hit_num2 = 0; + int hits_size = 0; + int i,j; + int count_only = 0; + + FM_INTERVAL interval; + FM_DATA *fmsf = NULL; + FM_DATA *fmsb = NULL; + FILE* fp_fm = NULL; + FILE* fp = NULL; + FILE* out = NULL; + char *outname = NULL; + + ESL_GETOPTS *go = NULL; /* command line processing */ + FM_CFG *cfg; + FM_METADATA *meta; + + ESL_SQ *tmpseq; // used for sequence validation + ESL_ALPHABET *abc = NULL; + + //start timer + t1 = times(&ts1); + + process_commandline(argc, argv, &go, &fname_fm, &fname_queries); + + + if (esl_opt_IsOn(go, "--out")) { + outname = esl_opt_GetString(go, "--out"); + if ( esl_strcmp ("-", outname) == 0 ) { + out = stdout; + outname = "stdout"; + } else { + out = fopen(outname,"w"); + } + } + + if (esl_opt_IsOn(go, "--count_only")) + count_only = 1; + + + if((fp_fm = fopen(fname_fm, "rb")) == NULL) + esl_fatal("Cannot open file `%s': ", fname_fm); + + + fm_configAlloc(&cfg); + cfg->occCallCnt = 0; + meta = cfg->meta; + meta->fp = fp_fm; + + + fm_readFMmeta( meta); + + if (meta->alph_type == fm_DNA) abc = esl_alphabet_Create(eslDNA); + else if (meta->alph_type == fm_AMINO) abc = esl_alphabet_Create(eslAMINO); + tmpseq = esl_sq_CreateDigital(abc); + + + + //read in FM-index blocks + ESL_ALLOC(fmsf, meta->block_count * sizeof(FM_DATA) ); + if (!meta->fwd_only ) + ESL_ALLOC(fmsb, meta->block_count * sizeof(FM_DATA) ); + + for (i=0; iblock_count; i++) { + fm_FM_read( fmsf+i,meta, TRUE ); + + if (!meta->fwd_only) { // whether or not we're going to search forward, need to read it in + fm_FM_read(fmsb+i, meta, FALSE ); + fmsb[i].SA = fmsf[i].SA; + fmsb[i].T = fmsf[i].T; + } + } + fclose(fp_fm); + + output_header(meta, stdout, go, fname_fm, fname_queries); + + + /* initialize a few global variables, then call initGlobals + * to do architecture-specific initialization + */ + fm_configInit(cfg, NULL); + + fm_alphabetCreate(meta, NULL); // don't override charBits + + fp = fopen(fname_queries,"r"); + if (fp == NULL) + esl_fatal("Unable to open file %s\n", fname_queries); + + ESL_ALLOC(line, FM_MAX_LINE * sizeof(char)); + + hits_size = 200; + ESL_ALLOC(hits, hits_size * sizeof(FM_HIT)); + + while(fgets(line, FM_MAX_LINE, fp) ) { + int qlen=0; + while (line[qlen] != '\0' && line[qlen] != '\n') qlen++; + if (line[qlen] == '\n') line[qlen] = '\0'; + + hit_num = 0; + + for (i=0; iblock_count; i++) { + + fm_getSARangeReverse(fmsf+i, cfg, line, meta->inv_alph, &interval); + if (interval.lower>=0 && interval.lower <= interval.upper) { + int new_hit_num = interval.upper - interval.lower + 1; + hit_num += new_hit_num; + if (!count_only) { + if (hit_num > hits_size) { + hits_size = 2*hit_num; + ESL_RALLOC(hits, tmp, hits_size * sizeof(FM_HIT)); + } + getFMHits(fmsf+i, cfg, &interval, i, hit_num-new_hit_num, qlen, hits, fm_forward); + } + + } + + + /* find reverse hits, using backward search on the forward FM*/ + if (!meta->fwd_only && !(esl_opt_IsOn(go, "--fwd_only")) ) { + fm_getSARangeForward(fmsb+i, cfg, line, meta->inv_alph, &interval);// yes, use the backward fm to produce the equivalent of a forward search on the forward fm + if (interval.lower>=0 && interval.lower <= interval.upper) { + int new_hit_num = interval.upper - interval.lower + 1; + hit_num += new_hit_num; + if (!count_only) { + if (hit_num > hits_size) { + hits_size = 2*hit_num; + ESL_RALLOC(hits, tmp, hits_size * sizeof(FM_HIT)); + } + //even though I used fmsb above, use fmsf here, since we'll now do a backward trace + //in the FM-index to find the next sampled SA position + getFMHits(fmsf+i, cfg, &interval, i, hit_num-new_hit_num, qlen, hits, fm_backward); + } + } + + } + + } + + + if (hit_num > 0) { + if (count_only) { + hit_cnt++; + hit_indiv_cnt += hit_num; + } else { + hit_num2 = 0; + + //for each hit, identify the sequence id and position within that sequence + for (i = 0; i< hit_num; i++) { + + hits[i].sortkey = 0; + + // validate match - if any characters in orig sequence were ambiguities, reject. + // This step gets the letters in the hit range, with ambiguity characters returned. + // (if direction is fm_backwards, then the string is reversed ... doesn't matter for our purposes + uint64_t range2DSQ_start = (hits[i].direction == fm_forward ? hits[i].start : hits[i].start-hits[i].length+1); + fm_convertRange2DSQ( fmsf + hits[i].block, meta, range2DSQ_start, hits[i].length, + p7_NOCOMPLEMENT, tmpseq, TRUE ); + + // Compare to ambig-base corrected hit to filter out made up sequence hits + for (j=1; j<=hits[i].length; j++) { + if (tmpseq->dsq[j] >= abc->K) { + hits[i].sortkey = -1; //reject + j = hits[i].length+1; //quit looking + } + } + + + if (hits[i].sortkey != -1 ) { // no ambiguity characters + + uint32_t segment_id = fm_computeSequenceOffset( fmsf, meta, hits[i].block, hits[i].start); + + // Make sure that this hit doesn't span two target sequences + if ( ( hits[i].start - meta->seq_data[segment_id].fm_start ) + hits[i].length - 1 > meta->seq_data[ segment_id ].length ) + hits[i].sortkey = -1; + else + hits[i].sortkey = meta->seq_data[ segment_id ].target_id; + + // hits[].start: Absolute position of hit within block ( containing possibly multiple + // concatenated sequences and/or sequence segments. + // fm_seq[].target_id: The index into the sequence records for this sequence segment. + // fm_seq[].fm_start: Position in block where this sequence segment begins + // target_start: The absolute position within sequence ("target_id") where this segment + // start. + // Therefore: + // What is the absolute position of this hit against sequence "target_id"? + hits[i].start = ( hits[i].start - meta->seq_data[segment_id].fm_start) + + meta->seq_data[segment_id].target_start; + + + // This approach reuses the .block memory to get the segment_id back. + // Unfortunately we have lost the information on the actual block the hit + // was found in, confusing anyone who assumes that .block is actually + // the block number. Sorry. + // TODO: move away from this approach. + hits[i].block = segment_id; + } + + + if (hits[i].sortkey != -1) + hit_num2++; // legitimate hit + + } + + + if (hit_num2 > 0) + hit_cnt++; + + //now sort according the the sequence_id corresponding to that seq_offset + qsort(hits, hit_num, sizeof(FM_HIT), hit_sorter); + + //skim past the skipped entries + i = 0; + while ( i < hit_num ) { + if (hits[i].sortkey != -1 ) + break; // + i++; + } + + + if (i < hit_num) { + if (out != NULL) { + fprintf (out, "%s\n",line); + //fprintf (out, "\t%10s (%8d %s)\n",meta->seq_data[ hits[i].block ].name, hits[i].start, (hits[i].direction==fm_forward?"+":"-")); + fprintf (out, " %8ld %s %10s\n", (long)(hits[i].start), (hits[i].direction==fm_forward?"f":"r"), meta->seq_data[ hits[i].block ].name); + } + hit_indiv_cnt++; + i++; // skip the first one, since I'll be comparing each to the previous + + for ( ; i< hit_num; i++) { + if ( //meta->seq_data[ hits[i].block ].id != meta->seq_data[ hits[i-1].block ].id || + hits[i].sortkey != hits[i-1].sortkey || //sortkey is seq_data[].id + hits[i].direction != hits[i-1].direction || + hits[i].start != hits[i-1].start ) + { + if (out != NULL) + //fprintf (out, "\t%10s (%8d %s)\n",meta->seq_data[ hits[i].block ].name, hits[i].start, (hits[i].direction==fm_forward?"+":"-")); + fprintf (out, " %8ld %s %10s\n", (long)(hits[i].start), (hits[i].direction==fm_forward?"f":"r"), meta->seq_data[ hits[i].block ].name); + hit_indiv_cnt++; + } + } + if (out != NULL) + fprintf (out, "\n"); + } + } + } else { + miss_cnt++; + } + + + } + + for (i=0; iblock_count; i++) { + fm_FM_destroy( fmsf+i, 1 ); + if (!meta->fwd_only) + fm_FM_destroy( fmsb+i, 0 ); + } + + + free (hits); + free (line); + fclose(fp); + + fm_configDestroy(cfg); + + + // compute and print the elapsed time in millisec + t2 = times(&ts2); + { + double clk_ticks = sysconf(_SC_CLK_TCK); + double elapsedTime = (t2-t1)/clk_ticks; + double throughput = cfg->occCallCnt/elapsedTime; + + fprintf (stderr, "hit: %-10d (%d)\n", hit_cnt, hit_indiv_cnt); + fprintf (stderr, "miss:%-10d\n", miss_cnt); + fprintf (stderr, "run time: %.2f seconds\n", elapsedTime); + fprintf (stderr, "occ calls: %12s\n", commaprint(cfg->occCallCnt)); + fprintf (stderr, "occ/sec: %12s\n", commaprint(throughput)); + } + + exit(eslOK); + + +ERROR: + printf ("failure allocating memory for hits\n"); + exit(status); +} + + diff --git a/bioinformaticsProject/hmmer/src/hmmfetch.c b/bioinformaticsProject/hmmer/src/hmmfetch.c new file mode 100644 index 0000000..a770e44 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmfetch.c @@ -0,0 +1,329 @@ +/* Fetch an HMM from an HMM database (such as Pfam) + * + * SRE, Mon Jun 18 09:30:06 2007 [Janelia] + */ +#include "esl_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_fileparser.h" +#include "esl_getopts.h" +#include "esl_keyhash.h" +#include "esl_ssi.h" + +#include "hmmer.h" + +static char banner[] = "retrieve profile HMM(s) from a file"; +static char usage1[] = "[options] (retrieves HMM named )"; +static char usage2[] = "[options] -f (retrieves all HMMs in )"; +static char usage3[] = "[options] --index (indexes )"; + +static void +cmdline_failure(char *argv0, char *format, ...) +{ + va_list argp; + + va_start(argp, format); + vfprintf(stderr, format, argp); + va_end(argp); + esl_usage(stdout, argv0, usage1); + esl_usage(stdout, argv0, usage2); + esl_usage(stdout, argv0, usage3); + printf("\nTo see more help on available options, do %s -h\n\n", argv0); + exit(1); +} + +static void +cmdline_help(char *argv0, ESL_GETOPTS *go) +{ + esl_banner(stdout, argv0, banner); + esl_usage (stdout, argv0, usage1); + esl_usage (stdout, argv0, usage2); + esl_usage (stdout, argv0, usage3); + puts("\nOptions:"); + esl_opt_DisplayHelp(stdout, go, 0, 2, 80); + exit(0); +} + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgroup */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "help; show brief info on version and usage", 0 }, + { "-f", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--index", "second cmdline arg is a file of names to retrieve", 0 }, + { "-o", eslARG_OUTFILE,FALSE,NULL, NULL, NULL, NULL,"-O,--index", "output HMM to file instead of stdout", 0 }, + { "-O", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"-o,-f,--index","output HMM to file named ", 0 }, + { "--index", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "index the , creating .ssi", 0 }, + { 0,0,0,0,0,0,0,0,0,0 }, +}; + +static void create_ssi_index(ESL_GETOPTS *go, P7_HMMFILE *hfp); +static void multifetch(ESL_GETOPTS *go, FILE *ofp, char *keyfile, P7_HMMFILE *hfp); +static void onefetch(ESL_GETOPTS *go, FILE *ofp, char *key, P7_HMMFILE *hfp); + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; /* application configuration */ + char *hmmfile = NULL; /* HMM file name */ + char *keyfile = NULL; /* keyfile name */ + char *keyname = NULL; /* key name */ + P7_HMMFILE *hfp = NULL; /* open HMM file */ + FILE *ofp = NULL; /* output stream for HMMs */ + int status; /* easel/hmmer return code */ + char errbuf[eslERRBUFSIZE]; + + /*********************************************** + * Parse command line + ***********************************************/ + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) cmdline_failure(argv[0], "Failed to parse command line: %s\n", go->errbuf); + if (esl_opt_VerifyConfig(go) != eslOK) cmdline_failure(argv[0], "Error in configuration: %s\n", go->errbuf); + if (esl_opt_GetBoolean(go, "-h") ) cmdline_help (argv[0], go); + if (esl_opt_ArgNumber(go) < 1) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n"); + + /* Check arguments. Consider three modes separately. + */ + if (esl_opt_GetBoolean(go, "--index")) + { + if (esl_opt_ArgNumber(go) != 1) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n"); + + hmmfile = esl_opt_GetArg(go, 1); + keyfile = NULL; + keyname = NULL; + + if (strcmp(hmmfile, "-") == 0) cmdline_failure(argv[0], "Can't use - with --index, can't index .\n"); + } + + else if (esl_opt_GetBoolean(go, "-f")) + { + if (esl_opt_ArgNumber(go) != 2) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n"); + + hmmfile = esl_opt_GetArg(go, 1); + keyfile = esl_opt_GetArg(go, 2); + keyname = NULL; + + if (strcmp(hmmfile, "-") == 0 && strcmp(keyfile, "-") == 0) + cmdline_failure(argv[0], "Either or can be - but not both.\n"); + } + else + { + if (esl_opt_ArgNumber(go) != 2) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n"); + + hmmfile = esl_opt_GetArg(go, 1); + keyfile = NULL; + keyname = esl_opt_GetArg(go, 2); + } + + /* Open the HMM file. */ + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + /* Open the output file, if any */ + if (esl_opt_GetBoolean(go, "-O")) + { + if (! keyname) p7_Fail("No key name? Can't use -O\n"); + if ((ofp = fopen(keyname, "w")) == NULL) p7_Fail("Failed to open output file %s\n", keyname); + } + else if (esl_opt_GetString(go, "-o") != NULL) + { + if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) + esl_fatal("Failed to open output file %s\n", esl_opt_GetString(go, "-o")); + } + else ofp = stdout; + + + /* Hand off to the appropriate routine */ + if (esl_opt_GetBoolean(go, "--index")) create_ssi_index(go, hfp); + else if (esl_opt_GetBoolean(go, "-f")) multifetch(go, ofp, keyfile, hfp); + else + { + onefetch(go, ofp, keyname, hfp); + if (ofp != stdout) printf("\n\nRetrieved HMM %s.\n", keyname); + } + + if (esl_opt_GetBoolean(go, "-O") || esl_opt_GetString(go, "-o") != NULL) fclose(ofp); + p7_hmmfile_Close(hfp); + esl_getopts_Destroy(go); + exit(0); +} + + +/* Create an SSI index file for open HMM file . + * Both name and accession of HMMs are stored as keys. + */ +static void +create_ssi_index(ESL_GETOPTS *go, P7_HMMFILE *hfp) +{ + ESL_NEWSSI *ns = NULL; + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + int nhmm = 0; + char *ssifile = NULL; + uint16_t fh; + int status; + + if (esl_sprintf(&ssifile, "%s.ssi", hfp->fname) != eslOK) p7_Die("esl_sprintf() failed"); + + status = esl_newssi_Open(ssifile, FALSE, &ns); + if (status == eslENOTFOUND) esl_fatal("failed to open SSI index %s", ssifile); + else if (status == eslEOVERWRITE) esl_fatal("SSI index %s already exists; delete or rename it", ssifile); + else if (status != eslOK) esl_fatal("failed to create a new SSI index"); + + if (esl_newssi_AddFile(ns, hfp->fname, 0, &fh) != eslOK) /* 0 = format code (HMMs don't have any yet) */ + esl_fatal("Failed to add HMM file %s to new SSI index\n", hfp->fname); + + printf("Working... "); + fflush(stdout); + + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslEOF) + { + if (status == eslEOD) p7_Fail("read failed, HMM file %s may be truncated?", hfp->fname); + else if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", hfp->fname); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", hfp->fname); + nhmm++; + + if (hmm->name == NULL) p7_Fail("Every HMM must have a name to be indexed. Failed to find name of HMM #%d\n", nhmm); + + if (esl_newssi_AddKey(ns, hmm->name, fh, hmm->offset, 0, 0) != eslOK) + p7_Fail("Failed to add key %s to SSI index", hmm->name); + + if (hmm->acc) { + if (esl_newssi_AddAlias(ns, hmm->acc, hmm->name) != eslOK) + p7_Fail("Failed to add secondary key %s to SSI index", hmm->acc); + } + p7_hmm_Destroy(hmm); + } + + if (esl_newssi_Write(ns) != eslOK) + p7_Fail("Failed to write keys to ssi file %s\n", ssifile); + + printf("done.\n"); + if (ns->nsecondary > 0) + printf("Indexed %d HMMs (%ld names and %ld accessions).\n", nhmm, (long) ns->nprimary, (long) ns->nsecondary); + else + printf("Indexed %d HMMs (%ld names).\n", nhmm, (long) ns->nprimary); + printf("SSI index written to file %s\n", ssifile); + + free(ssifile); + esl_alphabet_Destroy(abc); + esl_newssi_Close(ns); + return; +} + + +/* multifetch: + * given a file containing lines with one name or key per line; + * parse the file line-by-line; + * if we have an SSI index available, retrieve the HMMs by key + * as we see each line; + * else, without an SSI index, store the keys in a hash, then + * read the entire HMM file in a single pass, outputting HMMs + * that are in our keylist. + * + * Note that with an SSI index, you get the HMMs in the order they + * appear in the , but without an SSI index, you get HMMs in + * the order they occur in the HMM file. + */ +static void +multifetch(ESL_GETOPTS *go, FILE *ofp, char *keyfile, P7_HMMFILE *hfp) +{ + ESL_KEYHASH *keys = esl_keyhash_Create(); + ESL_FILEPARSER *efp = NULL; + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + int nhmm = 0; + char *key; + int keylen; + int keyidx; + int status; + + if (esl_fileparser_Open(keyfile, NULL, &efp) != eslOK) p7_Fail("Failed to open key file %s\n", keyfile); + esl_fileparser_SetCommentChar(efp, '#'); + + while (esl_fileparser_NextLine(efp) == eslOK) + { + if (esl_fileparser_GetTokenOnLine(efp, &key, &keylen) != eslOK) + p7_Fail("Failed to read HMM name on line %d of file %s\n", efp->linenumber, keyfile); + + status = esl_keyhash_Store(keys, key, -1, &keyidx); + if (status == eslEDUP) p7_Fail("HMM key %s occurs more than once in file %s\n", key, keyfile); + + if (hfp->ssi != NULL) { onefetch(go, ofp, key, hfp); nhmm++; } + } + + if (hfp->ssi == NULL) + { + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslEOF) + { + if (status == eslEOD) p7_Fail("read failed, HMM file %s may be truncated?", hfp->fname); + else if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", hfp->fname); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", hfp->fname); + + if (esl_keyhash_Lookup(keys, hmm->name, -1, &keyidx) == eslOK || + ((hmm->acc) && esl_keyhash_Lookup(keys, hmm->acc, -1, &keyidx) == eslOK)) + { + p7_hmmfile_WriteASCII(ofp, -1, hmm); + nhmm++; + } + + p7_hmm_Destroy(hmm); + } + } + + if (ofp != stdout) printf("\nRetrieved %d HMMs.\n", nhmm); + if (abc != NULL) esl_alphabet_Destroy(abc); + esl_keyhash_Destroy(keys); + esl_fileparser_Close(efp); + return; +} + + +/* onefetch(): + * Given one (an HMM name or accession), retrieve the corresponding HMM. + * In SSI mode, we can do this quickly by positioning the file, then reading + * and writing the HMM that's at that position. + * Without an SSI index, we have to parse the HMMs sequentially 'til we find + * the one we're after. + */ +static void +onefetch(ESL_GETOPTS *go, FILE *ofp, char *key, P7_HMMFILE *hfp) +{ + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + int status; + + if (hfp->ssi != NULL) + { + status = p7_hmmfile_PositionByKey(hfp, key); + if (status == eslENOTFOUND) p7_Fail("HMM %s not found in SSI index for file %s\n", key, hfp->fname); + else if (status == eslEFORMAT) p7_Fail("Failed to parse SSI index for %s\n", hfp->fname); + else if (status != eslOK) p7_Fail("Failed to look up location of HMM %s in SSI index of file %s\n", key, hfp->fname); + } + + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslEOF) + { + if (status == eslEOD) p7_Fail("read failed, HMM file %s may be truncated?", hfp->fname); + else if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", hfp->fname); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", hfp->fname); + + if (strcmp(key, hmm->name) == 0 || (hmm->acc && strcmp(key, hmm->acc) == 0)) break; + p7_hmm_Destroy(hmm); + hmm = NULL; + } + + if (status == eslOK) + { + p7_hmmfile_WriteASCII(ofp, -1, hmm); + p7_hmm_Destroy(hmm); + } + else p7_Fail("HMM %s not found in file %s\n", key, hfp->fname); + + esl_alphabet_Destroy(abc); +} diff --git a/bioinformaticsProject/hmmer/src/hmmlogo.c b/bioinformaticsProject/hmmer/src/hmmlogo.c new file mode 100644 index 0000000..8709455 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmlogo.c @@ -0,0 +1,328 @@ +/* HMMLOGO, code to print values for building logos, or functions to inline + * + * Contents: + * 1. logo value functions + * 2. hmmlogo application + */ +#include "hmmer.h" + +/***************************************************************** + * 1. logo value functions + *****************************************************************/ + +float +hmmlogo_maxHeight (P7_BG *bg) +{ + float min_p = 1; + int i; + for (i=0; iabc->K; i++) + min_p = ESL_MIN(min_p,bg->f[i]); + + return eslCONST_LOG2R * log(1.0/min_p); //bits +} + + +/* assumes rel_ents is allocated with abc->K floats, and heights with hmm->M*abc->K floats*/ +int +hmmlogo_RelativeEntropy_all (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **probs, float **heights ) { + + int K = hmm->abc->K; + int M = hmm->M; + int i, j; + + float logodds; + + for (i = 1; i <= M; i++) { + // height of column, to be split among the residues + rel_ents[i] = 0; + for (j=0; jmat[i][j]; + + if ( probs[i][j] > 0 ) { + logodds = eslCONST_LOG2R * log(probs[i][j] / bg->f[j]); //bits + rel_ents[i] += probs[i][j] * logodds ; + } + } + + // height of residues + for (j=0; jK floats, and heights with hmm->M*abc->K floats*/ +int +hmmlogo_RelativeEntropy_above_bg (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **probs, float **heights ) { + + int K = hmm->abc->K; + int M = hmm->M; + int i, j; + + float logodds; + float abovebg_prob_sum; + + for (i = 1; i <= M; i++) { + + // height of column, to be split among the residues; also sum of of positive scores + rel_ents[i] = 0; + abovebg_prob_sum = 0.0; + for (j=0; jmat[i][j]; + + if ( probs[i][j] > 0 ) { + logodds = eslCONST_LOG2R * log(probs[i][j] / bg->f[j]); //bits + rel_ents[i] += probs[i][j] * logodds ; + + if (logodds > 0) + abovebg_prob_sum += probs[i][j]; + } + } + + //height of residues + for (j=0; j 0 ) { + logodds = eslCONST_LOG2R * log(probs[i][j] / bg->f[j]); //bits + heights[i][j] = logodds<=0 ? 0.0 : (rel_ents[i] * probs[i][j] / abovebg_prob_sum) ; + } + } + } + return eslOK; +} + +/* assumes heights is allocated with hmm->M floats*/ +int +hmmlogo_ScoreHeights (P7_HMM *hmm, P7_BG *bg, float **heights ) { + + int K = hmm->abc->K; + int M = hmm->M; + int i, j; + + float p; + float logodds; + + for (i = 1; i <= M; i++) { + + // height of column, to be split among the residues; also sum of of positive scores + for (j=0; jmat[i][j]; + logodds = eslCONST_LOG2R * log(p / bg->f[j]); //bits + heights[i][j] = logodds; + } + } + return eslOK; +} + + +/* assumes heights is allocated with hmm->M floats*/ +int +hmmlogo_IndelValues (P7_HMM *hmm, float *insert_P, float *insert_expL, float *occupancy ) { + + int i; + + if (insert_P != NULL) insert_P[1] = hmm->t[1][p7H_MI]; //probability of inserting after this match + if (insert_expL != NULL) insert_expL[1] = 1 / (1 - hmm->t[1][p7H_II]) ; //expected length of the insert, if it happens +// if (delete_P != NULL) delete_P[1] = 0.0; //1st match state never deleted + + for (i = 2; i < hmm->M; i++) { + if (insert_P != NULL) insert_P[i] = hmm->t[i][p7H_MI]; //probability of inserting after this match + if (insert_expL != NULL) insert_expL[i] = 1 / (1 - hmm->t[i][p7H_II]) ; //expected length of the insert, if it happens +// if (delete_P != NULL) delete_P[i] = ( (1.0-delete_P[i-1]) * hmm->t[i-1][p7H_MD] ) + ( delete_P[i-1] * hmm->t[i-1][p7H_DD]) ; //probability of missing this state, either due to DD or MD from previous position + } + + if (insert_P != NULL) insert_P[hmm->M] = 0.0; //no inserts after final position + if (insert_expL != NULL) insert_expL[hmm->M] = 0.0; //no inserts after final position +// if (delete_P != NULL) delete_P[hmm->M] = ( (1.0-delete_P[hmm->M-1]) * hmm->t[hmm->M-1][p7H_MD] ) + ( delete_P[hmm->M-1] * hmm->t[hmm->M-1][p7H_DD]) ; //probability of missing this state, either due to DD or MD from previous position + + if (occupancy != NULL) p7_hmm_CalculateOccupancy(hmm, occupancy, NULL); + + return eslOK; +} + + + +/*---------------- end, logo value functions ----------------------*/ + + +/***************************************************************** + * 2. hmmlogo application + *****************************************************************/ + +#define HMMLOGO_OPTS "--height_relent_all,--height_relent_abovebg,--height_score" +#define HMMLOGO_RELENT_ALL 1 +#define HMMLOGO_RELENT_ABOVEBG 2 +#define HMMLOGO_SCORE 3 + + +static ESL_OPTIONS options[] = { + /* name type defaul env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + /* Control of output */ + { "--height_relent_all", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = relative entropy ; all letters shown (default)", 1 }, + { "--height_relent_abovebg", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = relative entropy ; only letters >bg shown", 1 }, + { "--height_score", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = sums of (pos|neg) scores; residue height = score", 1 }, + { "--no_indel", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "don't provide indel rate values", 1 }, + + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + + +static char usage[] = "[options] "; +static char banner[] = "given an hmm, produce data required to build an hmm logo"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; + int i, j; + int status = eslOK; + P7_HMMFILE *hfp = NULL; /* open input HMM file */ + P7_HMM *hmm = NULL; /* one HMM query */ + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + P7_BG *bg = NULL; + + char errbuf[eslERRBUFSIZE]; + char* hmmfile; + + float *rel_ents = NULL; + float **heights = NULL; + float **probs = NULL; + float *ins_P = NULL; + float *ins_expL = NULL; + float *occupancy = NULL; + + + int mode = HMMLOGO_RELENT_ALL; //default + + + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) esl_fatal(argv[0], "Failed to parse command line: %s\n", go->errbuf); + if (esl_opt_VerifyConfig(go) != eslOK) esl_fatal(argv[0], "Error in configuration: %s\n", go->errbuf); + + if (esl_opt_GetBoolean(go, "-h") ) { + p7_banner (stdout, argv[0], banner); + esl_usage (stdout, argv[0], usage); + puts("\nOptions:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 100); + exit(0); + } + + if (esl_opt_ArgNumber(go) != 1) esl_fatal(argv[0], "Incorrect number of command line arguments.\n"); + + hmmfile = esl_opt_GetArg(go, 1); + + if (esl_opt_IsOn(go, "--height_relent_all")) + mode = HMMLOGO_RELENT_ALL; + else if (esl_opt_IsOn(go, "--height_relent_abovebg")) + mode = HMMLOGO_RELENT_ABOVEBG; + else if (esl_opt_IsOn(go, "--height_score")) + mode = HMMLOGO_SCORE; + else + mode = HMMLOGO_RELENT_ALL; //default + + /* Open the query profile HMM file */ + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + + bg = p7_bg_Create(abc); + + ESL_ALLOC(rel_ents, (hmm->M+1) * sizeof(float)); + ESL_ALLOC(heights, (hmm->M+1) * sizeof(float*)); + ESL_ALLOC(probs, (hmm->M+1) * sizeof(float*)); + + for (i = 1; i <= hmm->M; i++) { + ESL_ALLOC(heights[i], abc->K * sizeof(float)); + ESL_ALLOC(probs[i], abc->K * sizeof(float)); + } + + /* residue heights */ + if (mode == HMMLOGO_RELENT_ALL) { + printf ("max expected height = %.2f\n", hmmlogo_maxHeight(bg) ); + hmmlogo_RelativeEntropy_all(hmm, bg, rel_ents, probs, heights); + } else if (mode == HMMLOGO_RELENT_ABOVEBG) { + printf ("max expected height = %.2f\n", hmmlogo_maxHeight(bg) ); + hmmlogo_RelativeEntropy_above_bg(hmm, bg, rel_ents, probs, heights); + } else if (mode == HMMLOGO_SCORE) { + hmmlogo_ScoreHeights(hmm, bg, heights ); + } + + printf ("Residue heights\n"); + for (i = 1; i <= hmm->M; i++) { + printf("%d: ", i); + for (j=0; jK; j++) + printf("%6.3f ", heights[i][j] ); + + if (mode != HMMLOGO_SCORE) + printf(" (%6.3f)", rel_ents[i]); + + printf("\n"); + + } + + if (rel_ents != NULL) free(rel_ents); + if (heights != NULL) { + for (i = 1; i <= hmm->M; i++) + if (heights[i] != NULL) free(heights[i]); + free(heights); + } + + + /* indel values */ + if (! esl_opt_IsOn(go, "--no_indel")) { + + ESL_ALLOC(ins_P, (hmm->M+1) * sizeof(float)); + ESL_ALLOC(ins_expL, (hmm->M+1) * sizeof(float)); + ESL_ALLOC(occupancy, (hmm->M+1) * sizeof(float)); + + hmmlogo_IndelValues(hmm, ins_P, ins_expL, occupancy); + + printf ("Indel values\n"); + for (i = 1; i <= hmm->M; i++) + printf("%d: %6.3f %6.3f %6.3f\n", i, ins_P[i], ins_expL[i], occupancy[i] ); + + free(ins_P); + free(ins_expL); + free(occupancy); + + } + + + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + + exit(0); + + + ERROR: + if (rel_ents != NULL) free(rel_ents); + if (heights != NULL) { + for (i = 1; i <= hmm->M; i++) + if (heights[i] != NULL) free(heights[i]); + free(heights); + } + if (hfp != NULL) p7_hmmfile_Close(hfp); + if (abc != NULL) esl_alphabet_Destroy(abc); + + + if (ins_P != NULL) free(ins_P); + if (ins_expL != NULL) free(ins_expL); + if (occupancy != NULL) free(occupancy); + + +} + +/*---------------- end, hmmlogo application ----------------------*/ + + + diff --git a/bioinformaticsProject/hmmer/src/hmmpgmd.c b/bioinformaticsProject/hmmer/src/hmmpgmd.c new file mode 100644 index 0000000..08a085b --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmpgmd.c @@ -0,0 +1,221 @@ +/* HMMER search daemon + */ +#include "p7_config.h" + +#ifdef HMMER_THREADS + +#include +#include +#include +#include + +#ifndef HMMER_THREADS +#error "Program requires pthreads be enabled." +#endif /*HMMER_THREADS*/ + +#include "easel.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "hmmpgmd.h" + +#define CONF_FILE "/etc/hmmpgmd.conf" + +static ESL_OPTIONS cmdlineOpts[] = { + /* name type default env range toggles reqs incomp help docgroup */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "--master", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--worker", "run program as the master server", 12 }, + { "--worker", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, "--master", "run program as a worker with server at ", 12 }, + { "--cport", eslARG_INT, "51371", NULL, "491510", NULL, NULL, "--worker", "maximum number of client side connections to accept", 12 }, + { "--wcncts", eslARG_INT, "32", NULL, "n>0", NULL, NULL, "--worker", "maximum number of worker side connections to accept", 12 }, + { "--pid", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "file to write process id to", 12 }, + { "--seqdb", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--worker", "protein database to cache for searches", 12 }, + { "--hmmdb", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--worker", "hmm database to cache for searches", 12 }, + { "--cpu", eslARG_INT, p7_NCPU,"HMMER_NCPU","n>0", NULL, NULL, "--master", "number of parallel CPU workers to use for multithreads", 12 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + + }; + +static char usage[] = "[options]"; +static char banner[] = "search a query against a database"; + + +typedef void sig_func(int); + +/* MSF called this . That conflicts with system's . + * Unclear what he was doing. This appears to duplicated functionality + * of the system's . Revisit later. For now, silence compiler + * warning by renaming the function. + */ +sig_func * +our_signal(int signo, sig_func *fn) +{ + struct sigaction act; + struct sigaction oact; + + act.sa_handler = fn; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + if (signo == SIGALRM) { +#ifdef SA_INTERRUPT + act.sa_flags |= SA_INTERRUPT; /* SunOS 4.x */ +#endif + } else { +#ifdef SA_RESTART + act.sa_flags |= SA_RESTART; /* SVR4, 4.4BSD */ +#endif + } + if (sigaction(signo, &act, &oact) < 0) { + return SIG_ERR; + } + + return oact.sa_handler; +} + +/* write_pid() + * Log the process id to a file. + */ +static void +write_pid(ESL_GETOPTS *go) +{ + char *pid_file = esl_opt_GetString(go, "--pid"); + FILE *fp = fopen(pid_file, "w"); + + if (!fp) p7_Fail("Unable to open PID file %s for writing.", pid_file); + fprintf(fp,"%ld\n", (long)getpid()); + fclose(fp); +} + +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go) +{ + ESL_GETOPTS *go = esl_getopts_Create(cmdlineOpts); + int status; + + /* if there are no command line arguments, let's try to read /etc/hmmpgmd.conf + * for any configuration data. + */ + if (argc == 1) + { + FILE *fp = NULL; + + if ((fp = fopen(CONF_FILE, "r")) == NULL) + { if (puts("Options --master or --worker must be specified.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + if ((status = esl_opt_ProcessConfigfile(go, CONF_FILE, fp) ) != eslOK) + { if (printf("Failed to parse configuration file %s: %s\n", CONF_FILE, go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + fclose(fp); + } + else + { + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) + { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + } + + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + + if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 12, 2, 80); + exit(0); + } + + + if (esl_opt_ArgNumber(go) != 0) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + if (esl_opt_IsUsed(go, "--master") && !(esl_opt_IsUsed(go, "--seqdb") || esl_opt_IsUsed(go, "--hmmdb"))) + { if (puts("At least one --seqdb or --hmmdb must be specified.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + puts("\nwhere most common options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + esl_getopts_Destroy(go); + exit(0); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; /* command line processing */ + + process_commandline(argc, argv, &go); + + /* if we write to a broken socket, ignore the signal and handle the error. */ + our_signal(SIGPIPE, SIG_IGN); + + /* check if we need to write out our pid */ + if (esl_opt_IsOn(go, "--pid")) write_pid(go); + + if (esl_opt_IsUsed(go, "--master")) master_process(go); + else if (esl_opt_IsUsed(go, "--worker")) worker_process(go); + else + { puts("Options --master or --worker must be specified."); } + + esl_getopts_Destroy(go); + + return eslOK; +} + + +/***************************************************************** + * Notes on testing and debugging + *****************************************************************/ + + +/* How to run a test: + * Need a test sequence database: mine is ~eddys/data/hmmpgmd/hmmpgmd.fa + * Need a test profile database: mine is ~eddys/data/hmmpgmd/hmmpgmd.hmm + * + * src/hmmpgmd --master --seqdb ~/data/hmmpgmd/hmmpgmd.fa --hmmdb ~/data/hmmpgmd/hmmpgmd.hmm & + * src/hmmpgmd --worker 127.0.0.1 --cpu 1 & + * src/hmmc2 -S + * @--seqdb 1 + * >foo + * ACDEFGH... + * // + * !shutdown + * // + * + * Or, for hmmscan against the hmm db, replace @--seqdb 1 with @--hmmdb 1. + * + * For debugging, start two of the three processes on cmdline, and the + * one to be debugged under gdb. + * in worker: break process_SearchCmd + * + * + * Valgrind debugging + * generate a small test seq database: + * esl-shuffle -G --amino -N 10 -L 400 > foo.fa + * fasta2daemon.pl foo.fa > foo.d + * + * in three separate terminal windows + * valgrind --dsymutil=yes --leak-check=yes --show-reachable=yes src/hmmpgmd --master --seqdb foo.d + * valgrind --leak-check=yes --show-reachable=yes src/hmmpgmd --worker 127.0.0.1 --cpu 1 + * valgrind --dsymutil=yes --leak-check=yes --show-reachable=yes src/hmmc2 -S + * + * copy/paste tutorial/M1.hmm as an example hmmsearch + * or any HMM. On Mac OS/X, to "copy" a file my.hmm to the clipboard: + * cat my.hmm | pbcopy + */ + +#endif /*HMMER_THREADS*/ + diff --git a/bioinformaticsProject/hmmer/src/hmmpgmd.h b/bioinformaticsProject/hmmer/src/hmmpgmd.h new file mode 100644 index 0000000..41c9ad9 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmpgmd.h @@ -0,0 +1,151 @@ +#ifndef P7_HMMPGMD_INCLUDED +#define P7_HMMPGMD_INCLUDED + + +typedef struct { + uint32_t status; /* error status */ + uint64_t msg_size; /* size of the next packet. if status not */ + /* zero, the length is for the error string */ + /* otherwise it is the length of the data */ + /* to follow. */ +} HMMD_SEARCH_STATUS; + +typedef struct { + double elapsed; /* elapsed time, seconds */ + double user; /* CPU time, seconds */ + double sys; /* system time, seconds */ + + double Z; /* eff # targs searched (per-target E-val) */ + double domZ; /* eff # signific targs (per-domain E-val) */ + enum p7_zsetby_e Z_setby; /* how Z was set */ + enum p7_zsetby_e domZ_setby; /* how domZ was set */ + + uint64_t nmodels; /* # of HMMs searched */ + uint64_t nseqs; /* # of sequences searched */ + uint64_t n_past_msv; /* # comparisons that pass MSVFilter() */ + uint64_t n_past_bias; /* # comparisons that pass bias filter */ + uint64_t n_past_vit; /* # comparisons that pass ViterbiFilter() */ + uint64_t n_past_fwd; /* # comparisons that pass ForwardFilter() */ + + uint64_t nhits; /* number of hits in list now */ + uint64_t nreported; /* number of hits that are reportable */ + uint64_t nincluded; /* number of hits that are includable */ + uint64_t *hit_offsets; /* either NULL or an array of nhits values that define the offset from the start of this + search's array of serialized hits to each hit in the array. I.e. hit_offsets[0] will always be 0 + if the array exists, hit_offsets[1] will be the number of bytes between the start of the + array of serialized hits to the start of the second hit, and so on */ +} HMMD_SEARCH_STATS; + +#define HMMD_SEQUENCE 101 +#define HMMD_HMM 102 + +/* commands between master and worker */ +#define HMMD_CMD_SEARCH 10001 +#define HMMD_CMD_SCAN 10002 +#define HMMD_CMD_INIT 10003 +#define HMMD_CMD_SHUTDOWN 10004 + +#define MAX_INIT_DESC 32 + +/* HMMD_CMD_SEARCH or HMMD_CMD_SCAN */ +typedef struct { + uint32_t db_inx; /* database index to search */ + uint32_t db_type; /* database type to search */ + uint32_t inx; /* index to begin search */ + uint32_t cnt; /* number of sequences to search */ + uint32_t query_type; /* sequence / hmm */ + uint32_t query_length; /* length of the query data */ + uint32_t opts_length; /* length of the options string */ + char data[1]; /* search data */ +} HMMD_SEARCH_CMD; + +/* HMMD_CMD_INIT */ +typedef struct { + char sid[MAX_INIT_DESC]; /* unique id for sequence database */ + char hid[MAX_INIT_DESC]; /* unique id for hmm database */ + uint32_t seqdb_off; /* offset to seq database name, 0 if none */ + uint32_t hmmdb_off; /* offset to hmm database name, 0 if none */ + uint32_t db_cnt; /* total number of sequence databases */ + uint32_t seq_cnt; /* sequences in database */ + uint32_t hmm_cnt; /* total number hmm databases */ + uint32_t model_cnt; /* models in hmm database */ + char data[1]; /* string data */ +} HMMD_INIT_CMD; + +/* HMMD_CMD_RESET */ +typedef struct { + char ip_addr[1]; /* ip address */ +} HMMD_INIT_RESET; + +/* HMMD_HEADER */ +typedef struct { + uint32_t length; /* message length */ + uint32_t command; /* message type */ + uint32_t status; /* 0 - success */ +} HMMD_HEADER; + +typedef struct { + HMMD_HEADER hdr; /* length and type of message */ + union { + HMMD_INIT_CMD init; + HMMD_SEARCH_CMD srch; + HMMD_INIT_RESET reset; + }; +} HMMD_COMMAND; + +#define HMMD_SEARCH_STATUS_SERIAL_SIZE sizeof(uint32_t) + sizeof(uint64_t) +#define HMMD_SEARCH_STATS_SERIAL_BASE (5 * sizeof(double)) + (9 * sizeof(uint64_t)) + 2 +// The 2 is two enums at one byte/enum as we serialize them +#define MSG_SIZE(x) (sizeof(HMMD_HEADER) + ((HMMD_HEADER *)(x))->length) + +size_t writen(int fd, const void *vptr, size_t n); +size_t readn(int fd, void *vptr, size_t n); + +typedef struct queue_data_s { + uint32_t cmd_type; /* type of command to perform */ + uint32_t query_type; /* type of the query */ + P7_HMM *hmm; /* query HMM */ + ESL_SQ *seq; /* query sequence */ + ESL_ALPHABET *abc; /* digital alphabet */ + ESL_GETOPTS *opts; /* search specific options */ + HMMD_COMMAND *cmd; /* workers search command */ + + int sock; /* socket descriptor of client */ + char ip_addr[64]; + + int dbx; /* database index to search */ + int inx; /* sequence index to start search */ + int cnt; /* number of sequences to search */ + +} QUEUE_DATA; + + +typedef struct { + int N; /* number of ranges */ + uint32_t *starts; /* 0..N-1 start positions */ + uint32_t *ends; /* 0..N-1 start positions */ +} RANGE_LIST; + +extern void free_QueueData(QUEUE_DATA *data); +extern int hmmpgmd_IsWithinRanges (int64_t sq_idx, RANGE_LIST *list ); +extern int hmmpgmd_GetRanges (RANGE_LIST *list, char *rangestr); + +extern int process_searchopts(int fd, char *cmdstr, ESL_GETOPTS **ret_opts); + +extern void worker_process(ESL_GETOPTS *go); +extern void master_process(ESL_GETOPTS *go); + +extern int p7_hmmd_search_stats_Serialize(const HMMD_SEARCH_STATS *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc); +extern int p7_hmmd_search_stats_Deserialize(const uint8_t *buf, uint32_t *pos, HMMD_SEARCH_STATS *ret_obj); + +#define LOG_FATAL_MSG(str, err) { \ + p7_syslog(LOG_CRIT,"[%s:%d] - %s error %d - %s\n", __FILE__, __LINE__, str, err, strerror(err)); \ + exit(0); \ + } + +/* hmmd_search_status.c */ +extern int hmmd_search_status_Serialize(const HMMD_SEARCH_STATUS *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc); +extern int hmmd_search_status_Deserialize(const uint8_t *buf, uint32_t *n, HMMD_SEARCH_STATUS *ret_obj); +extern int hmmd_search_status_TestSample(ESL_RAND64 *rng, HMMD_SEARCH_STATUS **ret_obj); +extern int hmmd_search_status_Compare(HMMD_SEARCH_STATUS *first, HMMD_SEARCH_STATUS *second); +#endif /*P7_HMMPGMD_INCLUDED*/ diff --git a/bioinformaticsProject/hmmer/src/hmmpgmd2msa.c b/bioinformaticsProject/hmmer/src/hmmpgmd2msa.c new file mode 100644 index 0000000..655a2d1 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmpgmd2msa.c @@ -0,0 +1,672 @@ +/* Function for conversion of binary data to MSA. + * + * Contents: + * 1. The function + * 2. Test driver + */ +#include "p7_config.h" + +#include +#include +#include + +#include "hmmer.h" +#include "hmmpgmd.h" + +#include "esl_sqio.h" + + +/****************************************************************************** + *# 1. The function + *****************************************************************************/ + + + +/* Function: hmmpgmd2msa() + * Synopsis: Convert an HMMPGMD-derived data stream to an MSA, based + * on the corresponding hmm + * + * Purpose: Given a data stream from HMMPGMD of the form shown + * here, produce an MSA: + * HMMD_SEARCH_STATS + * P7_HITS array of size (nhits) from above? + * then repeats of P7_DOMAIN and P7_ALIDISPLAY data + * for the hits, where each hit with d domains + * produces + * d P7_DOMAINs + * then + * d P7_ALIDISPLAYs + * ... optionally adding a sequence with length matching + * that of the hmm, which will be included in the alignment. + * + * A further extension has been the ability to include or exclude + * sequences form the list of hits. + * + * This function's expected use is as a helper function for + * the hmmer website, which gets the above data stream from + * hmmpgmd. + * + * Args : data: a pointer to binary data in the format given above + * hmm: the HMM against which the alidisplay traces and + * additional sequences/traces are threaded to reach + * the returned msa. + * qsq : optional sequence to be included in the output msa; + * must have the same number of residues as the hmm + * has states, as each residue i will be aligned to + * state i. + * incl: optional array of sequence names, in the case of + * hmmpgmd a list of ints, which are are excluded due + * to the sequence threshold, but have been selected + * to be included in the alignment. This ties in + * with the way jackhmmer is implemented on the + * HMMER website. + * incl_size: required size of the incl array. zero if incl is null. + * excl: optional array of sequence names, in the case of + * hmmpgmd a list of ints, which are are included as they + * score above threshold, but have been selected + * to be excluded from the alignment. + * excl_size: required size of the excl array. zero if excl is null. + * + * + * Returns: Pointer to completed MSA object. NULL on error + * + */ +int +hmmpgmd2msa(void *data, P7_HMM *hmm, ESL_SQ *qsq, int *incl, int incl_size, int *excl, int excl_size, int excl_all, ESL_MSA **ret_msa) { + int i, j; + int c; + int status; + uint32_t n = 0; + /* trace of the query sequence with N residues onto model with N match states */ + P7_TRACE *qtr = NULL; + int extra_sqcnt = 0; + + /* vars used to read from the binary data */ + HMMD_SEARCH_STATS *stats = NULL; /* pointer to a single stats object, at the beginning of data */ + + /* vars used in msa construction */ + P7_TOPHITS th; + ESL_MSA *msa = NULL; + + char *p = (char*)data; /*pointer used to walk along data, must be char* to allow pointer arithmetic */ + + th.N = 0; + th.unsrt = NULL; + th.hit = NULL; + ESL_ALLOC(stats, sizeof(HMMD_SEARCH_STATS)); + stats->hit_offsets = NULL; // we don't use hit_offsets for this test + /* optionally build a faux trace for the query sequence: relative to core model (B->M_1..M_L->E) */ + if (qsq != NULL) { + if (qsq->n != hmm->M) { + status = eslFAIL; + goto ERROR; + } + + if ((qtr = p7_trace_Create()) == NULL) {status = eslFAIL; goto ERROR; } + if ((status = p7_trace_Append(qtr, p7T_B, 0, 0)) != eslOK) goto ERROR; + for (i = 1; i <= qsq->n; i++) + if ((status = p7_trace_Append(qtr, p7T_M, i, i)) != eslOK) goto ERROR; + if ((status = p7_trace_Append(qtr, p7T_E, 0, 0)) != eslOK) goto ERROR; + qtr->M = qsq->n; + qtr->L = qsq->n; + extra_sqcnt = 1; + } + + /* get search stats + hit info */ + if(p7_hmmd_search_stats_Deserialize((uint8_t *) p, &n, stats) != eslOK){ + status = eslFAIL; + goto ERROR; + } + + /* sanity check */ + if ( ( stats->Z_setby != p7_ZSETBY_NTARGETS && stats->Z_setby != p7_ZSETBY_OPTION && stats->Z_setby != p7_ZSETBY_FILEINFO ) + || ( stats->domZ_setby != p7_ZSETBY_NTARGETS && stats->domZ_setby != p7_ZSETBY_OPTION && stats->domZ_setby != p7_ZSETBY_FILEINFO ) + || stats->nhits > 10000000 + || stats->elapsed > 1000000 + ) { + status = eslFAIL; + goto ERROR; + } + + /* ok, it looks legitimate */ + /* create a tophits object, to be passed to p7_tophits_Alignment() */ + ESL_ALLOC( th.unsrt, sizeof(P7_HIT) * stats->nhits); + // deserialize all the hits + for (i = 0; i < stats->nhits; ++i) { + // set all internal pointers of the hit to NULL before deserializing into it + th.unsrt[i].name = NULL; + th.unsrt[i].acc = NULL; + th.unsrt[i].desc = NULL; + th.unsrt[i].dcl = NULL; + + if(p7_hit_Deserialize((uint8_t *) p, &n, &(th.unsrt[i])) != eslOK){ + printf("Unable to deserialize hit %d\n", i); + exit(0); + } + } + + ESL_ALLOC( th.hit, sizeof(P7_HIT*) * stats->nhits); + for (i=0; inhits; i++) { + th.hit[i] = &(th.unsrt[i]); + if ( th.hit[i]->ndom > 10000 + || th.hit[i]->flags > p7_IS_INCLUDED + p7_IS_REPORTED + p7_IS_NEW + p7_IS_DROPPED + p7_IS_DUPLICATE + ) { + status = eslFAIL; + goto ERROR; + } + } + +// th.unsrt = NULL; + th.N = stats->nhits; + th.nreported = 0; + th.nincluded = 0; + th.is_sorted_by_sortkey = 0; + th.is_sorted_by_seqidx = 0; + + /* jackhmmer (hmmer web) - allow all hits to be unchecked */ + if(excl_all){ + for (i = 0; i < th.N; i++) { + /* Go through the hits and set all to be excluded */ + if(th.hit[i]->flags & p7_IS_INCLUDED){ + th.hit[i]->flags = p7_IS_DROPPED; + th.hit[i]->nincluded = 0; + } + } + } + + for (i = 0; i < th.N; i++) { + /* Go through the hits and set to be excluded or included as necessary */ + if(th.hit[i]->flags & p7_IS_INCLUDED){ + if(excl_size > 0){ + for( c = 0; c < excl_size; c++){ + if(excl[c] == (long)(th.hit[i]->name) ){ + th.hit[i]->flags = p7_IS_DROPPED; + th.hit[i]->nincluded = 0; + break; + } + } + } + }else{ + if(incl_size > 0){ + for( c = 0; c < incl_size; c++){ + if(incl[c] == (long)th.hit[i]->name ){ + th.hit[i]->flags = p7_IS_INCLUDED; + } + } + } + } + } + + + /* use the tophits and trace info above to produce an alignment */ + if ( (status = p7_tophits_Alignment(&th, hmm->abc, &qsq, &qtr, extra_sqcnt, p7_ALL_CONSENSUS_COLS, &msa)) != eslOK) goto ERROR; + esl_msa_SetName (msa, hmm->name, -1); + esl_msa_SetAccession(msa, hmm->acc, -1); + esl_msa_SetDesc (msa, hmm->desc, -1); + esl_msa_FormatAuthor(msa, "hmmpgmd (HMMER %s)", HMMER_VERSION); + + /* free memory */ + if (qtr != NULL) free(qtr); + for (i = 0; i < th.N; i++) { + for (j=0; j < th.hit[i]->ndom; j++) + p7_alidisplay_Destroy(th.hit[i]->dcl[j].ad); + + if (th.hit[i]->dcl != NULL) free (th.hit[i]->dcl); + } + if (th.unsrt != NULL) free (th.unsrt); + if (th.hit != NULL) free (th.hit); + free(stats); + *ret_msa = msa; + return eslOK; + +ERROR: + /* free memory */ + if (qtr != NULL) free(qtr); + + for (i = 0; i < th.N; i++) { + for (j=0; j < th.hit[i]->ndom; j++) + p7_alidisplay_Destroy(th.hit[i]->dcl[j].ad); + + if (th.hit[i]->dcl != NULL) free (th.hit[i]->dcl); + } + if (th.unsrt != NULL) free (th.unsrt); + if (th.hit != NULL) free (th.hit); + if(stats != NULL) free(stats); + return status; +} + +/****************************************************************************** + *# 2. The function + *****************************************************************************/ + + +// This function is believed to be defunct. Name has been changed by adding _old so that EBI can verify +/* Function: hmmpgmd2stats() + * Synopsis: Use a HMMPGMD-derived data stream to extract some simple + * statistics regarding its alignment. + * Purpose: Given a data stream from HMMPGMD of the form shown + * here, produce a vector of floats: + * positions 0 to hmm->M-1 are: + * Fraction of alignments which cover model at that position + * positions hmm->M to hmm->M*2-1 + * Fraction of alignments which cover model at that position (mod hmm->M) + * with a similar residue + * positions hmm->M*2 to hmm->M*3-1 + * Fraction of alignments which cover model at that position (mod hmm->M) + * with the consensus residue + * + * Args : data: a pointer to binary data in the format given above + * hmm: the HMM against which the alidisplay traces and + * additional sequences/traces are threaded to reach + * the returned msa. + * + * Returns: the location where the output vector will be placed. + * caller is responsible for freeing it later + * + */ +int hmmpgmd2stats_old(void *data, P7_HMM *hmm, float** statsOut) +{ + int i, j, k; + int status; + + /* trace of the query sequence with N residues onto model with N match states */ + P7_TRACE *qtr = NULL; + + /* vars used to read from the binary data */ + HMMD_SEARCH_STATS *stats = NULL; /* pointer to a single stats object, at the beginning of data */ + P7_HIT *hits = NULL; /* an array of hits, at the appropriate offset in data */ + + P7_TOPHITS th; + P7_DOMAIN *dom; + P7_ALIDISPLAY *ad, *ad2; + + int *cover, *id, *similar; //store statistics result per hit + int readPos, writePos; //for converting alignment contents into model indexing + + char *p = (char*)data; /*pointer used to walk along data, must be char* to allow pointer arithmetic */ + + th.N = 0; + th.unsrt = NULL; + th.hit = NULL; + + //storage for output + ESL_ALLOC( *statsOut, sizeof(float) * hmm->M * 3); + + //storage for accumulation per hit + ESL_ALLOC( cover, sizeof(int) * hmm->M); + ESL_ALLOC( id, sizeof(int) * hmm->M); + ESL_ALLOC( similar, sizeof(int) * hmm->M); + for(k = 0; k < hmm->M; k++) + { + cover[k] = 0; + id[k] = 0; + similar[k] = 0; + + (*statsOut)[k ] = 0; + (*statsOut)[k+hmm->M ] = 0; + (*statsOut)[k+hmm->M*2] = 0; + } + + /* get search stats + hit info */ + stats = (HMMD_SEARCH_STATS*)p; + + /* sanity check */ + if ( ( stats->Z_setby != p7_ZSETBY_NTARGETS && stats->Z_setby != p7_ZSETBY_OPTION && stats->Z_setby != p7_ZSETBY_FILEINFO ) + || ( stats->domZ_setby != p7_ZSETBY_NTARGETS && stats->domZ_setby != p7_ZSETBY_OPTION && stats->domZ_setby != p7_ZSETBY_FILEINFO ) + || stats->nhits > 10000000 + || stats->elapsed > 1000000 + ) { + status = eslFAIL; + goto ERROR; + } + + /* ok, it looks legitimate */ + p += sizeof(HMMD_SEARCH_STATS); + hits = (P7_HIT*)p; + p += sizeof(P7_HIT) * stats->nhits; + + /* create a tophits object, use it to step through the alignments */ + ESL_ALLOC( th.unsrt, sizeof(P7_HIT) * stats->nhits); + memcpy( th.unsrt, hits, sizeof(P7_HIT) * stats->nhits); + ESL_ALLOC( th.hit, sizeof(P7_HIT*) * stats->nhits); + for (i=0; inhits; i++) { + th.hit[i] = &(th.unsrt[i]); + if ( th.hit[i]->ndom > 10000 + || th.hit[i]->flags > p7_IS_INCLUDED + p7_IS_REPORTED + p7_IS_NEW + p7_IS_DROPPED + p7_IS_DUPLICATE + ) { + status = eslFAIL; + goto ERROR; + } + } + + th.N = stats->nhits; + th.nreported = 0; + th.nincluded = 0; + th.is_sorted_by_sortkey = 0; + th.is_sorted_by_seqidx = 0; + + for (i = 0; i < th.N; i++) + { + ESL_ALLOC( th.hit[i]->dcl, sizeof(P7_DOMAIN) * th.hit[i]->ndom); + + if(th.hit[i]->flags & p7_IS_INCLUDED) th.nincluded++; + + /* first grab all the P7_DOMAINs for the hit */ + for (j=0; j < th.hit[i]->ndom; j++) + { + dom = (P7_DOMAIN*)p; + th.hit[i]->dcl[j].is_included = dom->is_included; + p += sizeof(P7_DOMAIN); + } + + /* then grab the P7_ALIDISPLAYs for the hit */ + for (j=0; j < th.hit[i]->ndom; j++) + { + ad = (P7_ALIDISPLAY*)p; + ESL_ALLOC(th.hit[i]->dcl[j].ad, sizeof(P7_ALIDISPLAY)); + ad2 = th.hit[i]->dcl[j].ad; + + ad2->memsize = ad->memsize; + ad2->rfline = ad->rfline; + ad2->mmline = ad->mmline; + + ad2->csline = ad->csline ; + ad2->model = ad->model ; + ad2->mline = ad->mline ; + ad2->aseq = ad->aseq ; + ad2->ppline = ad->ppline; + ad2->N = ad->N; + + ad2->hmmname = ad->hmmname; + ad2->hmmacc = ad->hmmacc ; + ad2->hmmdesc = ad->hmmdesc; + ad2->hmmfrom = ad->hmmfrom; + ad2->hmmto = ad->hmmto; + ad2->M = ad->M; + + ad2->sqname = ad->sqname; + ad2->sqacc = ad->sqacc ; + ad2->sqdesc = ad->sqdesc; + ad2->sqfrom = ad->sqfrom; + ad2->sqto = ad->sqto; + ad2->L = ad->L; + + p += sizeof(P7_ALIDISPLAY); + + ESL_ALLOC(ad2->mem, ad2->memsize); + + memcpy(ad2->mem, p, ad->memsize); + + p += ad2->memsize; + + p7_alidisplay_Deserialize_old(ad2); + + if(th.hit[i]->flags & p7_IS_INCLUDED && th.hit[i]->dcl[j].is_included) + { + writePos = ad2->hmmfrom-1; + readPos = 0; + while(readPos < ad2->N) + { + //check if model covers residue + if(isupper(ad2->aseq[readPos]) || ad2->aseq[readPos] == '-') + { + cover[writePos]++; + + //check mline for id + if(isalpha(ad2->mline[readPos])) + { + id[writePos]++; + similar[writePos]++; + } + //check mline for not-a-space + else if(ad2->mline[readPos] == '+') + { + similar[writePos]++; + } + writePos++; + } + readPos++; + } + } + } + + //increment output, adjusting for overlaps + for(k = 0; k < hmm->M; k++) + { + if(cover[k]) (*statsOut)[k]+=1.0; + + if(id[k]) (*statsOut)[k+hmm->M]+=(id[k]/cover[k]); + id[k] = 0; + + if(similar[k]) (*statsOut)[k+hmm->M*2]+=(similar[k]/cover[k]); + similar[k] = 0; + + cover[k] = 0; + } + + } + + for(i = 0; i < hmm->M*3; i++) + { + (*statsOut)[i] = (*statsOut)[i]/(th.nincluded); + } + + for(i = hmm->M; i < hmm->M*3; i++) + { + if((*statsOut)[i%hmm->M]) + { + (*statsOut)[i] = (*statsOut)[i]/(*statsOut)[i%hmm->M]; + } + else + { + (*statsOut)[i] = 0.0; + } + } + + + /* free memory */ + if (qtr != NULL) free(qtr); + qtr = NULL; + + for (i = 0; i < th.N; i++) { + for (j=0; j < th.hit[i]->ndom; j++) + if(th.hit[i]->dcl[j].ad) + { + p7_alidisplay_Destroy(th.hit[i]->dcl[j].ad); + th.hit[i]->dcl[j].ad = NULL; + } + + if (th.hit[i]->dcl != NULL) free (th.hit[i]->dcl); + th.hit[i]->dcl = NULL; + } + if (th.unsrt != NULL) free (th.unsrt); + th.unsrt = NULL; + if (th.hit != NULL) free (th.hit); + th.hit = NULL; + + return eslOK; + +ERROR: + /* free memory */ + if (qtr != NULL) free(qtr); + qtr = NULL; + + for (i = 0; i < th.N; i++) { + for (j=0; j < th.hit[i]->ndom; j++) + if(th.hit[i]->dcl[j].ad) + { + p7_alidisplay_Destroy(th.hit[i]->dcl[j].ad); + th.hit[i]->dcl[j].ad = NULL; + } + + if (th.hit[i]->dcl != NULL) free (th.hit[i]->dcl); + th.hit[i]->dcl = NULL; + } + if (th.unsrt != NULL) free (th.unsrt); + th.unsrt = NULL; + if (th.hit != NULL) free (th.hit); + th.hit = NULL; + + + return status; +} + + + + +/***************************************************************** + * 3. Test driver + *****************************************************************/ + +//#define hmmpgmd2msa_TESTDRIVE +#ifdef p7HMMPGMD2MSA_TESTDRIVE +#define NUM_TEST_SEQUENCES 20 + +void hmmpgmd2msa_utest(int ntrials, char *hmmfile){ + char msg[] = "hmmpgmd2msa_utest failed"; + ESL_RANDOMNESS *rng = esl_randomness_Create(0); + P7_HMM *hmm; + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_OPROFILE *oprofile; + P7_TOPHITS *hitlist; + P7_HMMFILE *hfp = NULL; + P7_BG *bg = p7_bg_Create(abc); + ESL_MSA *msa, *deser_msa; + ESL_SQ * sequences[NUM_TEST_SEQUENCES]; + uint8_t **buf, *buf_data; + HMMD_SEARCH_STATS stats; + uint32_t n = 0; + uint32_t nalloc = 0; + + buf_data = NULL; + buf = &(buf_data); + + // Grab the HMM from the input file + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + P7_PROFILE *profile = p7_profile_Create(hmm->M, abc); + oprofile = p7_oprofile_Create(hmm->M, abc); + + if(p7_ProfileConfig(hmm, bg, profile, 400, p7_LOCAL) != eslOK){ + p7_Fail(msg); + } + if(p7_oprofile_Convert(profile, oprofile) != eslOK){ + p7_Fail(msg); + } + + // build a pipeline to search them with + P7_PIPELINE *pli=p7_pipeline_Create(NULL, hmm->M, 400, FALSE, p7_SEARCH_SEQS); + p7_pli_NewModel(pli, oprofile, bg); + + for(int j = 0; j < ntrials; j++){ + + // sample sequences from the HMM + for(int i = 0; i < NUM_TEST_SEQUENCES; i++){ + sequences[i] = esl_sq_CreateDigital(abc); + p7_ProfileEmit(rng, hmm, profile, bg, sequences[i], NULL); + } + + hitlist = p7_tophits_Create(); + + // Search all of the sampled sequences against the HMM to generate a set of hits + for(int i = 0; i < NUM_TEST_SEQUENCES; i++){ + p7_pli_NewSeq(pli, sequences[i]); + p7_bg_SetLength(bg, sequences[i]->n); + p7_oprofile_ReconfigLength(oprofile, sequences[i]->n); + + p7_Pipeline(pli, oprofile, bg, sequences[i], NULL, hitlist); + p7_pipeline_Reuse(pli); + } + + + // Replicate the process hmmpgmd2msa uses to create an MSA so we have something to compare to + p7_tophits_SortBySortkey(hitlist); + p7_tophits_Threshold(hitlist, pli); + if (p7_tophits_Alignment(hitlist, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) != eslOK){ + p7_Fail(msg); + } + + esl_msa_SetName (msa, hmm->name, -1); + esl_msa_SetAccession(msa, hmm->acc, -1); + esl_msa_SetDesc (msa, hmm->desc, -1); + esl_msa_FormatAuthor(msa, "hmmpgmd (HMMER %s)", HMMER_VERSION); + + + // ok, we have an MSA generated directly from the hits. Now, fake up a blob of serialized data as hmmpgmd would have sent + stats.elapsed = esl_random(rng); + stats.user = esl_random(rng); + stats.sys = esl_random(rng); + stats.Z = pli->Z; + stats.domZ = pli->domZ; + stats.Z_setby = pli->Z_setby; + stats.domZ_setby = pli->domZ_setby; + stats.nmodels = pli->nmodels; + stats.nseqs = pli->nseqs; + stats.n_past_msv = pli->n_past_msv; + stats.n_past_bias = pli->n_past_bias; + stats.n_past_vit = pli->n_past_vit; + stats.n_past_fwd = pli->n_past_fwd; + stats.nhits = hitlist->N; + stats.nreported = hitlist->nreported; + stats.nincluded = hitlist->nreported; + stats.hit_offsets = NULL; // don't need this for hmmpgmd2msa + + if(p7_hmmd_search_stats_Serialize(&stats, buf, &n, &nalloc) !=eslOK){ + p7_Fail(msg); + } + + for(int k = 0; k < hitlist->N; k++){ + if(p7_hit_Serialize(hitlist->hit[k], buf, &n, &nalloc) !=eslOK){ + p7_Fail(msg); + } + } + + if(hmmpgmd2msa(buf_data, hmm, NULL, NULL, 0, NULL, 0, 0, &deser_msa) != eslOK){ + p7_Fail(msg); + } + + // compare the MSAs + if(esl_msa_Compare (msa, deser_msa) != eslOK){ + p7_Fail(msg); + } + + // clean up after ourselves + p7_tophits_Destroy(hitlist); + for(int k = 0; k < NUM_TEST_SEQUENCES; k++){ + esl_sq_Destroy(sequences[k]); + sequences[k] = NULL; + } + esl_msa_Destroy(msa); + esl_msa_Destroy(deser_msa); + n = 0; // reset this to the start of the buffer for next time + } + + + + // final cleanup + p7_pipeline_Destroy(pli); + p7_profile_Destroy(profile); + p7_oprofile_Destroy(oprofile); + p7_hmm_Destroy(hmm); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(rng); + free(buf_data); +} + + +int +main(int argc, char **argv) { + if(argc != 2){ + printf("Usage: hmmpgmd2msa_utest \n"); + return eslFAIL; + } + hmmpgmd2msa_utest(10, argv[1]); + return eslOK; // hmmpgmd2msa_utest fails if anything goes wrong, so getting here = pass +} +#endif + + + diff --git a/bioinformaticsProject/hmmer/src/hmmpgmd_client_example.pl b/bioinformaticsProject/hmmer/src/hmmpgmd_client_example.pl new file mode 100755 index 0000000..e4d42fd --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmpgmd_client_example.pl @@ -0,0 +1,648 @@ +#!/usr/bin/env perl + +=head1 SYNOPSIS + + This script is a very basic version of what is performed by the HMMER website + searches. The script will connet to a hmmpgmd client and take the input fasta file + (containing one or more sequences) and push each sequence down the socket + to be searched by the master. When the results come back, the status is + read. If successful, the whole message is read from the socket and written + to file in /tmp, as well as being stored in a scalar. The scalar is then + unpacked, just to the level of the stats. The sequence is searched against + the first database in the hmmpgmd list of databases (whether sequence of HMM). + + NOTE: The socket call is wrapped up in a sig alarm that will die terminate when + it does not response. Under normal website operation, this is set to 30 secs. + + +=cut + +use strict; +use warnings; +use Carp; +use IO::Socket::INET; +use Getopt::Long; + +#------------------------------------------------------------------------------ +#Process the options; +#------------------------------------------------------------------------------ + +my ( $map, $file, $nocleanup, $peerAddr, $peerPort, $proto, $verbose, $help, $timeout ); + +$timeout = 30; +GetOptions( + "map=s" => \$map, + "file=s" => \$file, + "PeerAddr=s" => \$peerAddr, + "PeerPort=s" => \$peerPort, + "Proto=s" => \$proto, + "timeout=i" => \$timeout, + "verbose" => \$verbose, + "nocleanup" => \$nocleanup, + "h|help" => \$help +) or die "Failed to parse options, run -h :[$@]\n"; + +if ( !defined($map) ) { + warn("No accessions will be reported, just hmmpgmd index.\n"); +} +elsif ( !-s $map ) { + warn +"A map file [$map] was specified, but it either has no size or does not exist.\n"; + $help = 1; +} + +if ( defined($file) ) { + unless ( -s $file ) { + warn "\n$file either does not exist, or has no size\n\n"; + $help = 1; + } +} +else { + warn "\nPlease specify a query fasta filename!\n\n"; + $help = 1; +} + +help() if ($help); + +#------------------------------------------------------------------------------ +#Now get the socket connection. +#------------------------------------------------------------------------------ + +my $connection; +$connection = { + PeerAddr => defined($peerAddr) ? $peerAddr : '127.0.0.1', + PeerPort => defined($peerPort) ? $peerPort : '51371', + Proto => defined($proto) ? $proto : 'tcp' +}; + +$verbose && print STDERR "Getting socket connection"; +my $sock = IO::Socket::INET->new(%$connection) + or die "Could not connect to socket: [$!] \n"; +$sock->autoflush(1); + +#------------------------------------------------------------------------------ +# Read in the mapping file +#------------------------------------------------------------------------------ +# In this example, the mappings are read into memory. If you have a large +#database, you may want to consider a NoSQL alternative such as Redis or +#MongoDB + +my $mappings; +if ($map) { + $mappings = readMapFile($map); +} + +#------------------------------------------------------------------------------ +main(); + +sub main { + + #Build up the connection string + my ($optStr); + + #If you are using a hmm database, you would change this to be --hmmdb + $optStr = '@--seqdb 1'; + + #open the input fasta file. + my $c = 1; + local $/ = "\n>"; + open( my $fh, '<', $file ) or die "Could not open $file:[$!]\n"; + my @fasta = <$fh>; + close($fh); + + foreach (@fasta) { + $verbose && print STDERR "Working on sequence #: $c\n"; + + my $seq = $_; + $seq =~ s/>$//mx; + $seq =~ s/^([^>])/>$1/x; + my ($query_name) = $seq =~ /^>([^\s]*)/mx; + $seq .= "\n//"; #add on the file delimiter required by hmmer; That's all there is ... + + $verbose && print STDERR "sending |$optStr\n$seq| to the socket\n"; + + #Print the query to the socket + print $sock "$optStr\n$seq"; + my ( $stats, $hits ); + + #Wrap this whole call in a sig alarm. + local $SIG{ALRM} = sub { croak "Failed to get response from hmmpgmd" }; + alarm $timeout; + eval { + #open the file where we store the binary data. + open( my $outFH, '>', "/tmp/hmmer.$$.$c.out" ) + or die "Could not open /tmp/hmmer.$$.c.out:[$!]\n"; + ( $stats, $hits ) = &unpackResults( $sock, $outFH, $verbose ); + close($outFH) or croak "Could not close tmp file"; + }; + if ($@) { + die "Timeout on the socket:$@\n"; + } + alarm 0; + + $verbose && print STDERR "Got " . $stats->{nincluded} . " hits\n"; + printHits($hits); + $c++; + } + + #------------------------------------------------------------------------------ + # Normally we will want to clean up /tmp, but occasionally it will be useful. + #------------------------------------------------------------------------------ + + unless ($nocleanup) { + $verbose && print STDERR "Cleaning up /tmp\n"; + my @files = glob("/tmp/hmmer.$$.*"); + foreach my $f (@files) { + unlink($f) if ( -e $f ); + } + } + exit; +} + +#------------------------------------------------------------------------------ +#Subroutines +#------------------------------------------------------------------------------ +#------------------------------------------------------------------------------ + +=head1 SUBROUTINES + + +=cut + + +=head2 printHits + + Title : printHits + Incept : finnr, Apr 22, 2013 5:16:13 PM + Usage : printHits( $hitArrayRef ); + Function : Prints out elements form the unpacked data sturcture so that + : alignments can be viewed. + Args : The array reference containing the unpacked data + Returns : 1 + +=cut + +sub printHits { + my ($hits) = @_; + + my $ruler = '-' x 80; + + #Use a flush buffer, so results are written in the entirity. + local $/ = 1; + foreach my $seq (@$hits) { + next if ( !$seq->{nincluded} ); + my $str = join( "\t", + "Seq hit", $seq->{name}, $seq->{desc}, $seq->{score}, $seq->{evalue} ); + print "$str\n\n"; + foreach my $dom ( @{ $seq->{domains} } ) { + if ( $dom->{is_included} ) { + print "Domain hit " + . $seq->{name} . "/" + . $dom->{ienv} . "-" + . $dom->{jenv} + . ": score " + . sprintf( '%.2f', $dom->{bitscore} ) + . ", E-value (individual) " + . $dom->{ievalue} + . " E-value (conditional) " + . $dom->{cevalue} . "\n\n"; + print sprintf( "\t%-30s %6d %s %-6d\n", + $seq->{name}, $dom->{alisqfrom}, $dom->{aliaseq}, $dom->{alisqto} ); + print sprintf( "\t%37s %s\n", '', $dom->{alimline} ); + print sprintf( + "\t%-30s %6d %s %-6d\n", + $dom->{alihmmname}, $dom->{alihmmfrom}, + $dom->{alimodel}, $dom->{alihmmto} + ); + print sprintf( "\t%37s %s\n\n", '', $dom->{alippline} ); + } + } + print "$ruler\n"; + } + return 1; +} + +#------------------------------------------------------------------------------ +=head2 unpackResults + + Title : unpackResu;ts + Incept : finnr, Apr 22, 2013 5:18:15 PM + Usage : unpackResults( $socket, $fh) + Function : Takes the sockect connection to hmmpgmd and reads the response. If + : successful it will unpack the binary data structure and build a + : Perl data structure. + Args : An IO::Socket::INET to hmmpgmd, filehandle to temp file. + Returns : Perl data sturcture of results. + Note : Include a data export module such as Data::Priner to reveal + : the entirity of the HMMER result data structure. Everything that + : is available in the commandline version is present. + +=cut + +sub unpackResults { + my ( $socket, $fh ) = @_; + + #Ths is the unpacking template and length. + my $statusTemplate = "I x4 Q"; + my $STATUS = 16; + my $rl = read( $sock, my $statusB, $STATUS ); + + #Read the status from the socket. + unless ( $rl == $STATUS ) { + die "Error reading STATUS from socket. Requested " . $STATUS + . "bytes, but only read $rl bytes\n"; + } + + #Unpack the status. + my ( $status, $messLen ) = unpack( $statusTemplate, $statusB ); + if ( $status == 0 ) #Everything was successful + { + #read the entire results from the socket. We will store this + #in a temporary file. This is not entirely necessary. + my $binaryData = readAndStore( $socket, $messLen, $fh ); + + #We now process the binary data structure returned by + #hmmpgmd. To make the code more readable, we will + #unpack section by section, cutting off the front + #of the binary and processing just that bit. + + my $bit = substr( $binaryData, 0, 120, '' ); + + #Get a hash reference back containing all the search + #stats, such as time, number of hits + my $stats = unpackStats($bit); + + my $hits = []; + + if ( $stats->{nreported} ) { + + #We have at least some hits to unpack.... + #The first hit section contains all of the sequence matches + #but not domain mataches. + for ( my $n = 1 ; $n <= $stats->{nreported} ; $n++ ) { + $bit = substr( $binaryData, 0, 152, '' ); + unpackHit( $bit, $hits, $stats->{Z} ); + } + + #Now, unpack the domain hits for the sequences + for ( my $h = 0 ; $h < $stats->{nreported} ; $h++ ) { + if ( $hits->[$h]->{ndom} ) { + my $dombit = substr( $binaryData, 0, 72 * $hits->[$h]->{ndom}, '' ); + + #This gets the fixed size fields + unpackDomain( $dombit, $hits, $h, $stats ); + for ( my $a = 1 ; $a <= $hits->[$h]->{ndom} ; $a++ ) { + + #Now unpack the variable sized fields. + unpackAli( \$binaryData, $hits, $h, $a ); + } + } + } + } + return ( $stats, $hits ); + } + else #There was an error, read the message + { + $rl = read( $sock, my $errorLine, $messLen ); + my $errorMessage = unpack( "a$messLen", $errorLine ); + die "There was an error reported by HMMER: $errorMessage\n"; + } +} + +#------------------------------------------------------------------------------ +=head2 unpackAli + + Title : unpackAli + Incept : finnr, Apr 22, 2013 7:53:39 PM + Usage : unpackAli( $binaryData, $hits, $hitCount, $domCount); + Function : Takes the binary data, gets the alignment data, which in this case + : are dynamic fields. This uses the data found within the hit/domain + : information to locate and read the appropriate amount of bytes. + Args : The binary data stream, the hit data structure and the hit and domain + : positions. + Returns : 1 + +=cut + +sub unpackAli { + my ( $binary, $hits, $h, $a ) = @_; + + my $bit = substr( $$binary, 0, 168, '' ); + my @aliKeys = + qw(rfline mmline csline model mline aseq ppline N hmmname hmmacc hmmdesc + hmmfrom hmmto M sqname sqacc sqdesc sqfrom sqto L memsize mem); + my @ali = unpack( "Q7 I x4 Q3 I3 x4 Q6 I x4 Q", $bit ); + my %ali = map { $aliKeys[$_] => $ali[$_] } 0 .. $#aliKeys; + + $bit = substr( $$binary, 0, $ali{memsize}, '' ); + my @unpackElements = qw(0 1 2 3 4 5 6 8 9 10 14 15 16 20); + + my $offset = 0; + for ( my $i = 0 ; $i < $#unpackElements ; $i++ ) { + my $e = $unpackElements[$i]; + next if ( $ali[$e] == 0 ); #Then this element is not defined in the binary + my $ne; #Store the next defined element. + for ( my $j = $i + 1 ; $j <= $#unpackElements ; $j++ ) { + if ( $ali[ $unpackElements[$j] ] > 0 ) { + $ne = $unpackElements[$j]; + $j = $#unpackElements + 1; #break the loop + } + } + + #The number of bytes that we need to unpack is: + my $l = ( $ali[$ne] - $ali[$e] ); + + #Define the unpack template: + my $template = $offset > 0 ? "x$offset a$l" : "a$l"; + my $s = $ali[$e] == 0 ? '' : unpack( $template, $bit ); + chop($s); #This removes the \0 - C string terminator + $ali{ $aliKeys[$e] } = $s; + + #keep a note of what has aready been unpacked. + $offset += $l; + } + + foreach my $k (@aliKeys) { + next if $k =~ /memsize/; + $hits->[$h]->{domains}->[ $a - 1 ]->{ 'ali' . $k } = $ali{$k}; + } + return 1; +} + +#------------------------------------------------------------------------------ +=head2 unpackDomain + + Title : unpackDomain + Incept : finnr, Apr 22, 2013 7:59:59 PM + Usage : unpackDomain( $binary, $hits, $h, $stats ); + Function : unpack the domain hit from the binary string. + Args : binary string, the hit array reference, the sequence position, + : stats hash ref. + Returns : 1 + +=cut + +sub unpackDomain { + my ( $binary, $hits, $h, $stats ) = @_; + + my @dom = unpack( "i4 f5 x4 d i2 Q x8" x $hits->[$h]->{ndom}, $binary ); + my $noDomKeys = 13; + + #*** If the P7_DOMAIN struc changes, modify these numbers + for ( my $d = 0 ; $d < $hits->[$h]->{ndom} ; $d++ ) { + my $off = ( $d * $noDomKeys ); + my $ievalue = sprintf( "%.1e", exp( $dom[ $off + 9 ] ) * $stats->{Z} ); + $ievalue = $ievalue < 0.0001 ? $ievalue : sprintf( "%.6g", $ievalue ); + my $cevalue = sprintf( "%.1e", exp( $dom[ $off + 9 ] ) * $stats->{domZ} ); + $cevalue = $cevalue < 0.0001 ? $cevalue : sprintf( "%.6g", $cevalue ); + $hits->[$h]->{domains}->[$d] = { + ienv => $dom[$off], + jenv => $dom[ $off + 1 ], + iali => $dom[ $off + 2 ], + jali => $dom[ $off + 3 ], + bitscore => $dom[ $off + 8 ], + ievalue => $ievalue, + cevalue => $cevalue, + oasc => sprintf( "%4.2f", + ( $dom[ $off + 9 ] / ( 1.0 + abs( $dom[ $off + 1 ] - $dom[$off] ) ) ) ), + bias => sprintf( "%.2f", abs( $dom[ $off + 9 ] * 1.442695041 ) ), + is_reported => $dom[ $off + 10 ], + is_included => $dom[ $off + 11 ], + }; + + } + return 1; +} + +#------------------------------------------------------------------------------ +=head2 unpackHit + + Title : unpackHit + Incept : finnr, Apr 22, 2013 8:22:55 PM + Usage : unpackHit($binary, $hitArray, $dbsize); + Function : unpack a single sequence match, pushing the data into the hitArray + : reference. The database size is also passed in to correctly set + : the e-value. + Args : Binary data, hit array, int of the database size + Returns : 1 + +=cut + +sub unpackHit { + my ( $binary, $hits, $z ) = @_; + + my @hitKeys = + qw(name acc desc window_length sort_key score pre_score sum_score + pvalue pre_pvalue sum_pvalue nexpected nregions nclustered noverlaps + nenvelopes ndom flags nreported nincluded best_domain seqidx subseq_start dcl offset); + my $noHitsKeys = scalar(@hitKeys); + my $raw_hits = []; + @{$raw_hits} = unpack( "Q3 I x4 d f3 x4 d3 f I9 Q4", $binary ); + + my $evalue = sprintf( "%.1e", exp( $raw_hits->[8] ) * $z ); + $evalue = $evalue < 0.0001 ? $evalue : sprintf( "%.6g", $evalue ); + + my $acc = $raw_hits->[0]; + my $desc = $raw_hits->[2]; + + if ($mappings) { + ( $acc, $desc ) = split( /\s+/xm, $mappings->[ $raw_hits->[0] ], 2 ); + } + + push @$hits, + { + name => $acc, + acc => $raw_hits->[1], + desc => $desc, + score => sprintf( "%.1f", $raw_hits->[5] ), + bias => sprintf( "%.1f", abs( $raw_hits->[6] - $raw_hits->[5] ) ), + pvalue => $raw_hits->[8], + nregions => $raw_hits->[12], + ndom => $raw_hits->[16], + flags => $raw_hits->[17], + nreported => $raw_hits->[18], + nincluded => $raw_hits->[19], + evalue => $evalue, + dcl => $raw_hits->[23] + }; + return 1; +} + +#------------------------------------------------------------------------------ +=head2 readAndStore + + Title : readAndStore + Incept : finnr, Apr 22, 2013 8:13:49 PM + Usage : readAndStore($socket, $messageLength, $filehandle) + Function : Reads the message (length in bytes) from the socket and + : writes the binary response to the temporary file, returning the + : binary data in scalar context. + Args : IO::Socket::INET, message length, filehandle. + Returns : binary data in scalar + +=cut + +sub readAndStore { + my ( $socket, $messLen, $fh ) = @_; + + #Read the number of bytes in the messlen, from the socket, into the results + #scalar (binary format) + my $rl = read( $socket, my $resultsB, $messLen ); + + #Check that the read length is correct. + unless ( $rl == $messLen ) { + die "Error reading STATS from socket. Requested " . $messLen + . " bytes, but only read $rl bytes\n"; + } + + #Print the results to the file + print $fh $resultsB; + + #return the binary string + return $resultsB; +} + +#------------------------------------------------------------------------------ +=head2 unpackStats + + Title : unpackStats + Incept : finnr, Apr 22, 2013 8:09:15 PM + Usage : unpackStats($binaryData) + Function : Unpacks the search stats binary data. + Args : The binary data + Returns : hashRef containing the search statistics. + +=cut + +sub unpackStats { + my ($bit) = @_; + + #The binary template + my $statsTemplate = "d5 I2 q9"; + + #Store how far we have read through the file + my @stats = unpack( $statsTemplate, $bit ); + + #This is the literal mean of each values. Store in a more informative + #hash. + my @statsKeys = qw(elapsed user sys Z domZ Z_setby domZ_setby nmodels nseqs + n_past_msv n_past_bias n_past_vit n_past_fwd nhits nreported nincluded ); + + unless ( $#stats == $#statsKeys ) { + die "Missmatch between the number of stats data elements recieved [" + . $#stats + . "] and expected [$#statsKeys]\n"; + } + + my %stats = map { $statsKeys[$_] => $stats[$_] } 0 .. $#statsKeys; + + #Return the hashref containing the stats. + return \%stats; +} + +#------------------------------------------------------------------------------ +=head2 readMapFile + + Title : readMapFile + Incept : finnr, Apr 22, 2013 8:00:16 PM + Usage : readMapFile('/path/to/file'); + Function : Reads the map file produced by esl-reformat into an array so that + : sequence 'meta' data can be reapplied. + Args : Path to file. + Returns : ArrayRef containing sequence meta data. The sequence index is + : used as the index into the array. + +=cut + +sub readMapFile { + my ($mapfile) = @_; + +#Read the file produced by hmmpgmd, using the sequence index/name as the array +#index. This will produce an array where the first zeroth element is uninitalized. + + my @mappings; + + $verbose && print STDERR "Reading map file, $mapfile\n"; + + my $M; + open( $M, '<', $mapfile ) or die "Could not open map file:[$!]\n"; + while (<$M>) { + chomp; + my ( $idx, $header ) = split( /\s+/xm, $_, 2 ); + next if ( !defined($header) ); + $mappings[$idx] = $header; + } + close($M); + + #Return the array reference to the + return ( \@mappings ); +} + +#------------------------------------------------------------------------------ +=head2 help + + Title : help + Incept : finnr, Apr 22, 2013 8:03:50 PM + Usage : help + Function : prints some help + Args : none + Returns : nothing + +=cut + +sub help { + + print <<'EOF'; + +Summary: Sample hmmpgmd client + +Usage: hmmpgmd_client_example.pl [options] -file seq.fa + + file : The name of the fasta file. The file is not being validated; give it + : rubbish and bad things will happen. + map : The map file produced by esl-reformat when using hmmpgmd format option. + : If this is not provided, then it will just report the index numbers. + h|help : Prints this help statement + verbose : Prints debug statements/progress reports. + nocleanup : When this flag is set, leaves the hmmpgmd binary output files in + : /tmp. The files has the format hmmer.#PID.#sequence.out. + timeout : Change the default timeout, 30 secs. Time in seconds. + + #The following options control which hmmpgmd master is linked by the client. They are used + #by IO::Socket::INET, see CPAN for more information. + + PeerAddr : The IP address of the machine where the master is running, default 127.0.0.1 + PeerPort : The port number that the master is listening on, default 51371 + Proto : The socket protocol - should not change this unless the master + : changes its communications protocol, which is tcp + + Also, you can run: + + perldoc hmmpgmd_client_example.pl + + for more information. + +Details: This example script shows how to search sequences in a FASTA file against an +hmmpgmd format database file, using HMMER's hmmpgmd. Steps include: + +(1) Generate an hmmpgmd format file, including map file, from a FASTA format + file, for example using the HMMER/Easel tool esl-reformat: + + prompt% esl-reformat --id_map my.hmmpgmd.map hmmpgmd my.fasta > my.hmmpgmd + +(2) Start the hmmpgmd master/worker, run the following commands: + + prompt% hmmpgmd --master --seqdb my.hmmpgmd + prompt% hmmpgmd --worker 127.0.0.1 --cpu 4 + +(3) Run this client to connect to the master + +(4) Submit one query to hmmpgmd for each sequence in the query file, retrieve results + from the master, then unpack the custom (and undocumented) binary. Examples of + unpacking the binary are seen in the unpackXXX() functions. + +EOF + + exit 0; + +} diff --git a/bioinformaticsProject/hmmer/src/hmmpgmd_shard.c b/bioinformaticsProject/hmmer/src/hmmpgmd_shard.c new file mode 100644 index 0000000..17fc6b3 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmpgmd_shard.c @@ -0,0 +1,222 @@ +/* HMMER search daemon + */ +#include "p7_config.h" + +#ifdef HMMER_THREADS + +#include +#include +#include +#include + +#ifndef HMMER_THREADS +#error "Program requires pthreads be enabled." +#endif /*HMMER_THREADS*/ + +#include "easel.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "hmmpgmd.h" +#include "hmmpgmd_shard.h" + +#define CONF_FILE "/etc/hmmpgmd.conf" + +static ESL_OPTIONS cmdlineOpts[] = { + /* name type default env range toggles reqs incomp help docgroup */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "--master", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--worker", "run program as the master server", 12 }, + { "--worker", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, "--master", "run program as a worker with server at ", 12 }, + { "--cport", eslARG_INT, "51371", NULL, "491510", NULL, NULL, "--worker", "maximum number of client side connections to accept", 12 }, + { "--wcncts", eslARG_INT, "32", NULL, "n>0", NULL, NULL, "--worker", "maximum number of worker side connections to accept", 12 }, + { "--pid", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "file to write process id to", 12 }, + { "--seqdb", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--worker", "protein database to cache for searches", 12 }, + { "--hmmdb", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--worker", "hmm database to cache for searches", 12 }, + { "--cpu", eslARG_INT, p7_NCPU,"HMMER_NCPU","n>0", NULL, NULL, "--master", "number of parallel CPU workers to use for multithreads", 12 }, + { "--num_shards", eslARG_INT, "1", NULL, "1<=n<512", NULL, NULL, "--worker", "number of worker nodes that will connect to the master", 12 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }; + +static char usage[] = "[options]"; +static char banner[] = "search a query against a database"; + + +typedef void sig_func(int); + +/* MSF called this . That conflicts with system's . + * Unclear what he was doing. This appears to duplicated functionality + * of the system's . Revisit later. For now, silence compiler + * warning by renaming the function. + */ +sig_func * +our_signal(int signo, sig_func *fn) +{ + struct sigaction act; + struct sigaction oact; + + act.sa_handler = fn; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + if (signo == SIGALRM) { +#ifdef SA_INTERRUPT + act.sa_flags |= SA_INTERRUPT; /* SunOS 4.x */ +#endif + } else { +#ifdef SA_RESTART + act.sa_flags |= SA_RESTART; /* SVR4, 4.4BSD */ +#endif + } + if (sigaction(signo, &act, &oact) < 0) { + return SIG_ERR; + } + + return oact.sa_handler; +} + +/* write_pid() + * Log the process id to a file. + */ +static void +write_pid(ESL_GETOPTS *go) +{ + char *pid_file = esl_opt_GetString(go, "--pid"); + FILE *fp = fopen(pid_file, "w"); + + if (!fp) p7_Fail("Unable to open PID file %s for writing.", pid_file); + fprintf(fp,"%ld\n", (long)getpid()); + fclose(fp); +} + +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go) +{ + ESL_GETOPTS *go = esl_getopts_Create(cmdlineOpts); + int status; + + /* if there are no command line arguments, let's try to read /etc/hmmpgmd.conf + * for any configuration data. + */ + if (argc == 1) + { + FILE *fp = NULL; + + if ((fp = fopen(CONF_FILE, "r")) == NULL) + { if (puts("Options --master or --worker must be specified.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + if ((status = esl_opt_ProcessConfigfile(go, CONF_FILE, fp) ) != eslOK) + { if (printf("Failed to parse configuration file %s: %s\n", CONF_FILE, go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + fclose(fp); + } + else + { + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) + { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + } + + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + + if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 12, 2, 80); + exit(0); + } + + + if (esl_opt_ArgNumber(go) != 0) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + if (esl_opt_IsUsed(go, "--master") && !(esl_opt_IsUsed(go, "--seqdb") || esl_opt_IsUsed(go, "--hmmdb"))) + { if (puts("At least one --seqdb or --hmmdb must be specified.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + puts("\nwhere most common options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + esl_getopts_Destroy(go); + exit(0); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; /* command line processing */ + + process_commandline(argc, argv, &go); + + /* if we write to a broken socket, ignore the signal and handle the error. */ + our_signal(SIGPIPE, SIG_IGN); + + /* check if we need to write out our pid */ + if (esl_opt_IsOn(go, "--pid")) write_pid(go); + + if (esl_opt_IsUsed(go, "--master")) master_process_shard(go); + else if (esl_opt_IsUsed(go, "--worker")) worker_process_shard(go); + else + { puts("Options --master or --worker must be specified."); } + + esl_getopts_Destroy(go); + + return eslOK; +} + + +/***************************************************************** + * Notes on testing and debugging + *****************************************************************/ + + +/* How to run a test: + * Need a test sequence database: mine is ~eddys/data/hmmpgmd/hmmpgmd.fa + * Need a test profile database: mine is ~eddys/data/hmmpgmd/hmmpgmd.hmm + * + * src/hmmpgmd --master --seqdb ~/data/hmmpgmd/hmmpgmd.fa --hmmdb ~/data/hmmpgmd/hmmpgmd.hmm & + * src/hmmpgmd --worker 127.0.0.1 --cpu 1 & + * src/hmmc2 -S + * @--seqdb 1 + * >foo + * ACDEFGH... + * // + * !shutdown + * // + * + * Or, for hmmscan against the hmm db, replace @--seqdb 1 with @--hmmdb 1. + * + * For debugging, start two of the three processes on cmdline, and the + * one to be debugged under gdb. + * in worker: break process_SearchCmd + * + * + * Valgrind debugging + * generate a small test seq database: + * esl-shuffle -G --amino -N 10 -L 400 > foo.fa + * fasta2daemon.pl foo.fa > foo.d + * + * in three separate terminal windows + * valgrind --dsymutil=yes --leak-check=yes --show-reachable=yes src/hmmpgmd --master --seqdb foo.d + * valgrind --leak-check=yes --show-reachable=yes src/hmmpgmd --worker 127.0.0.1 --cpu 1 + * valgrind --dsymutil=yes --leak-check=yes --show-reachable=yes src/hmmc2 -S + * + * copy/paste tutorial/M1.hmm as an example hmmsearch + * or any HMM. On Mac OS/X, to "copy" a file my.hmm to the clipboard: + * cat my.hmm | pbcopy + */ + +#endif /*HMMER_THREADS*/ + diff --git a/bioinformaticsProject/hmmer/src/hmmpgmd_shard.h b/bioinformaticsProject/hmmer/src/hmmpgmd_shard.h new file mode 100644 index 0000000..403e624 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmpgmd_shard.h @@ -0,0 +1,49 @@ +#ifndef P7_HMMPGMD_SHARD_INCLUDED +#define P7_HMMPGMD_SHARD_INCLUDED + +extern void worker_process_shard(ESL_GETOPTS *go); +extern void master_process_shard(ESL_GETOPTS *go); + +/* HMMD_CMD_INIT */ +typedef struct { + char sid[MAX_INIT_DESC]; /* unique id for sequence database */ + char hid[MAX_INIT_DESC]; /* unique id for hmm database */ + uint32_t seqdb_off; /* offset to seq database name, 0 if none */ + uint32_t hmmdb_off; /* offset to hmm database name, 0 if none */ + uint32_t db_cnt; /* total number of sequence databases */ + uint32_t seq_cnt; /* sequences in database */ + uint32_t hmm_cnt; /* total number hmm databases */ + uint32_t model_cnt; /* models in hmm database */ + uint32_t num_shards; /* Number of shards the DB will be divided into */ + uint32_t my_shard; /* which shard is this thread responsible for? */ + char data[1]; /* string data */ +} HMMD_INIT_CMD_SHARD; + +typedef struct { + HMMD_HEADER hdr; /* length and type of message */ + union { + HMMD_INIT_CMD_SHARD init; + HMMD_SEARCH_CMD srch; + HMMD_INIT_RESET reset; + }; +} HMMD_COMMAND_SHARD; + +typedef struct queue_data_shard_s { + uint32_t cmd_type; /* type of command to perform */ + uint32_t query_type; /* type of the query */ + P7_HMM *hmm; /* query HMM */ + ESL_SQ *seq; /* query sequence */ + ESL_ALPHABET *abc; /* digital alphabet */ + ESL_GETOPTS *opts; /* search specific options */ + HMMD_COMMAND_SHARD *cmd; /* workers search command */ + + int sock; /* socket descriptor of client */ + char ip_addr[64]; + + int dbx; /* database index to search */ + int inx; /* sequence index to start search */ + int cnt; /* number of sequences to search */ + +} QUEUE_DATA_SHARD; + +#endif /*P7_HMMPGMD_SHARD_INCLUDED*/ diff --git a/bioinformaticsProject/hmmer/src/hmmpress.c b/bioinformaticsProject/hmmer/src/hmmpress.c new file mode 100644 index 0000000..fdd74e2 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmpress.c @@ -0,0 +1,224 @@ +/* hmmpress: prepare an HMM database for faster hmmscan searches. + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-f", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "force: overwrite any previous pressed files", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "prepare an HMM database for faster hmmscan searches"; + +/* hmmpress creates four output files. + * Bundling their info into a structure streamlines creation and cleanup. + */ +struct dbfiles { + char *mfile; // .h3m file: binary core HMMs + char *ffile; // .h3f file: binary vectorized profiles, MSV filter part only + char *pfile; // .h3p file: binary vectorized profiles, remainder (excluding MSV filter part) + char *ssifile; // .h3i file: SSI index for retrieval from .h3m + + FILE *mfp; + FILE *ffp; + FILE *pfp; + ESL_NEWSSI *nssi; +}; + +static struct dbfiles *open_dbfiles (ESL_GETOPTS *go, char *basename); +static void close_dbfiles(struct dbfiles *dbf, int status); + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_ALPHABET *abc = NULL; + char *hmmfile = esl_opt_GetArg(go, 1); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + struct dbfiles *dbf = NULL; + uint16_t fh = 0; + int nmodel = 0; + uint64_t totM = 0; + int status; + char errbuf[eslERRBUFSIZE]; + + if (strcmp(hmmfile, "-") == 0) p7_Fail("Can't use - for argument: can't index standard input\n"); + + status = p7_hmmfile_OpenENoDB(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + if (hfp->do_stdin || hfp->do_gzip) p7_Fail("HMM file %s must be a normal file, not gzipped or a stdin pipe", hmmfile); + + dbf = open_dbfiles(go, hmmfile); // After this, we have to close_dbfiles() before exiting with any error. Don't leave partial/corrupt files. + + if (( status = esl_newssi_AddFile(dbf->nssi, hfp->fname, 0, &fh)) != eslOK) /* 0 = format code (HMMs don't have any yet) */ + ESL_XFAIL(status, errbuf, "Failed to add HMM file %s to new SSI index\n", hfp->fname); + + printf("Working... "); + fflush(stdout); + + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) == eslOK) + { + if (hmm->name == NULL) ESL_XFAIL(eslEINVAL, errbuf, "Every HMM must have a name to be indexed. Failed to find name of HMM #%d\n", nmodel+1); + + if (nmodel == 0) { /* first time initialization, now that alphabet known */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, 400); + } + + nmodel++; + totM += hmm->M; + + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + if ((om->offs[p7_MOFFSET] = ftello(dbf->mfp)) == -1) ESL_XFAIL(eslESYS, errbuf, "Failed to ftello() current disk position of HMM db file"); + if ((om->offs[p7_FOFFSET] = ftello(dbf->ffp)) == -1) ESL_XFAIL(eslESYS, errbuf, "Failed to ftello() current disk position of MSV db file"); + if ((om->offs[p7_POFFSET] = ftello(dbf->pfp)) == -1) ESL_XFAIL(eslESYS, errbuf, "Failed to ftello() current disk position of profile db file"); + + if ((status = esl_newssi_AddKey(dbf->nssi, hmm->name, fh, om->offs[p7_MOFFSET], 0, 0)) != eslOK) ESL_XFAIL(status, errbuf, "Failed to add key %s to SSI index", hmm->name); + if (hmm->acc) { + if ((status = esl_newssi_AddAlias(dbf->nssi, hmm->acc, hmm->name)) != eslOK) ESL_XFAIL(status, errbuf, "Failed to add secondary key %s to SSI index", hmm->acc); + } + + p7_hmmfile_WriteBinary(dbf->mfp, -1, hmm); + p7_oprofile_Write(dbf->ffp, dbf->pfp, om); + + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + p7_hmm_Destroy(hmm); + } + if (status == eslEFORMAT) ESL_XFAIL(status, errbuf, "bad file format in HMM file %s", hmmfile); + else if (status == eslEINCOMPAT) ESL_XFAIL(status, errbuf, "HMM file %s contains different alphabets", hmmfile); + else if (status != eslEOF) ESL_XFAIL(status, errbuf, "Unexpected error in reading HMMs from %s", hmmfile); + + status = esl_newssi_Write(dbf->nssi); + if (status == eslEDUP) ESL_XFAIL(status, errbuf, "SSI index construction failed:\n %s", dbf->nssi->errbuf); + else if (status == eslERANGE) ESL_XFAIL(status, errbuf, "SSI index file size exceeds maximum allowed by your filesystem"); + else if (status == eslESYS) ESL_XFAIL(status, errbuf, "SSI index sort failed:\n %s", dbf->nssi->errbuf); + else if (status != eslOK) ESL_XFAIL(status, errbuf, "SSI indexing failed:\n %s", dbf->nssi->errbuf); + + printf("done.\n"); + if (dbf->nssi->nsecondary > 0) + printf("Pressed and indexed %d HMMs (%ld names and %ld accessions).\n", nmodel, (long) dbf->nssi->nprimary, (long) dbf->nssi->nsecondary); + else + printf("Pressed and indexed %d HMMs (%ld names).\n", nmodel, (long) dbf->nssi->nprimary); + printf("Models pressed into binary file: %s\n", dbf->mfile); + printf("SSI index for binary model file: %s\n", dbf->ssifile); + printf("Profiles (MSV part) pressed into: %s\n", dbf->ffile); + printf("Profiles (remainder) pressed into: %s\n", dbf->pfile); + + close_dbfiles(dbf, eslOK); + p7_bg_Destroy(bg); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + exit(0); + + ERROR: + fprintf(stderr, "%s\n", errbuf); + close_dbfiles(dbf, status); + p7_bg_Destroy(bg); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + exit(1); +} + + +static struct dbfiles * +open_dbfiles(ESL_GETOPTS *go, char *basename) +{ + struct dbfiles *dbf = NULL; + int allow_overwrite = esl_opt_GetBoolean(go, "-f"); + char errbuf[eslERRBUFSIZE]; + int status; + + if ( ( dbf = malloc(sizeof(struct dbfiles))) == NULL) p7_Die("malloc() failed"); + dbf->mfile = NULL; + dbf->ffile = NULL; + dbf->pfile = NULL; + dbf->ssifile = NULL; + dbf->mfp = NULL; + dbf->ffp = NULL; + dbf->pfp = NULL; + dbf->nssi = NULL; + + if ( (status = esl_sprintf(&(dbf->ssifile), "%s.h3i", basename)) != eslOK) ESL_XFAIL(status, errbuf, "esl_sprintf() failed"); + if ( (status = esl_sprintf(&(dbf->mfile), "%s.h3m", basename)) != eslOK) ESL_XFAIL(status, errbuf, "esl_sprintf() failed"); + if ( (status = esl_sprintf(&(dbf->ffile), "%s.h3f", basename)) != eslOK) ESL_XFAIL(status, errbuf, "esl_sprintf() failed"); + if ( (status = esl_sprintf(&(dbf->pfile), "%s.h3p", basename)) != eslOK) ESL_XFAIL(status, errbuf, "esl_sprintf() failed"); + + if (! allow_overwrite && esl_FileExists(dbf->ssifile)) ESL_XFAIL(eslEOVERWRITE, errbuf, "SSI index file %s already exists;\nDelete old hmmpress indices first", dbf->ssifile); + if (! allow_overwrite && esl_FileExists(dbf->mfile)) ESL_XFAIL(eslEOVERWRITE, errbuf, "Binary HMM file %s already exists;\nDelete old hmmpress indices first", dbf->mfile); + if (! allow_overwrite && esl_FileExists(dbf->ffile)) ESL_XFAIL(eslEOVERWRITE, errbuf, "Binary MSV filter file %s already exists\nDelete old hmmpress indices first", dbf->ffile); + if (! allow_overwrite && esl_FileExists(dbf->pfile)) ESL_XFAIL(eslEOVERWRITE, errbuf, "Binary profile file %s already exists\nDelete old hmmpress indices first", dbf->pfile); + + status = esl_newssi_Open(dbf->ssifile, allow_overwrite, &(dbf->nssi)); + if (status == eslENOTFOUND) ESL_XFAIL(status, errbuf, "failed to open SSI index %s", dbf->ssifile); + else if (status == eslEOVERWRITE) ESL_XFAIL(status, errbuf, "SSI index file %s already exists;\nDelete old hmmpress indices first", basename); + else if (status != eslOK) ESL_XFAIL(status, errbuf, "failed to create a new SSI index"); + + if ((dbf->mfp = fopen(dbf->mfile, "wb")) == NULL) ESL_XFAIL(eslEWRITE, errbuf, "Failed to open binary HMM file %s for writing", dbf->mfile); + if ((dbf->ffp = fopen(dbf->ffile, "wb")) == NULL) ESL_XFAIL(eslEWRITE, errbuf, "Failed to open binary MSV filter file %s for writing", dbf->ffile); + if ((dbf->pfp = fopen(dbf->pfile, "wb")) == NULL) ESL_XFAIL(eslEWRITE, errbuf, "Failed to open binary profile file %s for writing", dbf->pfile); + + return dbf; + + ERROR: + fprintf(stderr, "%s\n", errbuf); + close_dbfiles(dbf, status); + exit(1); +} + +/* If status != eslOK, then in addition to free'ing memory, also + * remove the four output files. + */ +static void +close_dbfiles(struct dbfiles *dbf, int status) +{ + if (dbf) + { + /* Close the output files first */ + if (dbf->mfp) fclose(dbf->mfp); + if (dbf->ffp) fclose(dbf->ffp); + if (dbf->pfp) fclose(dbf->pfp); + if (dbf->nssi) esl_newssi_Close(dbf->nssi); + + /* Then remove them, if status isn't OK. esl_newssi_Write() takes care of the ssifile. */ + if (status != eslOK) + { + if (esl_FileExists(dbf->mfile)) remove(dbf->mfile); + if (esl_FileExists(dbf->ffile)) remove(dbf->ffile); + if (esl_FileExists(dbf->pfile)) remove(dbf->pfile); + } + + /* Finally free their names, and the structure. */ + if (dbf->mfile) free(dbf->mfile); + if (dbf->ffile) free(dbf->ffile); + if (dbf->pfile) free(dbf->pfile); + if (dbf->ssifile) free(dbf->ssifile); + free(dbf); + } + +} + diff --git a/bioinformaticsProject/hmmer/src/hmmpress.itest.pl b/bioinformaticsProject/hmmer/src/hmmpress.itest.pl new file mode 100755 index 0000000..86d292d --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmpress.itest.pl @@ -0,0 +1,58 @@ +#! /usr/bin/perl + +# Integrated test of hmmpress +# +# Usage: ./hmmpress.itest.pl +# Example: ./hmmpress.itest.pl ./hmmpress ../testsuite/minifam.hmm foo +# +# The testsuite creates and presses minifam.hmm. +# If you need to do it yourself: +# cd testsuite +# ../src/hmmbuild minifam.hmm minifam +# ../src/hmmpress minifam.hmm +# +# SRE, Thu Nov 12 08:47:56 2009 [Janelia] + + +$hmmpress = shift; # The hmmpress executable. example: "./hmmpress" +$minifam = shift; # An HMM database. example: "../testsuite/minifam.hmm" +$tmppfx = shift; # A tmpfile prefix to use. example: "foo" + +if (! -x "$hmmpress") { die "FAIL: didn't find hmmpress binary $hmmpress"; } +if (! -r "$minifam") { die "FAIL: didn't find hmm file $minifam"; } + +# Make a copy of minifam, so we can whack on it. +system("cp $minifam $tmppfx.hmm 2>&1"); +if ($? != 0) { die "failed to copy $minifam"; } + +# Get the model names from it. We at least need to know how many there are. +@output = `grep "^NAME " $tmppfx.hmm 2>&1`; +if ($? != 0) { die "failed to grep $minifam for names"; } +$nmodels = 0; +foreach $line (@output) { $hmmname[$nmodels++] = ($line =~ /^NAME (\S+)/); } + +# Press it. Creates .h3{mifp} files. +# +$output = `$hmmpress $tmppfx.hmm 2>&1`; +if ($? != 0) { die "failed to press $minifam"; } +if ($output !~ /Pressed and indexed (\d+) HMMs/) { die "unexpected hmmpress output"; } +if ($1 != $nmodels) { die "unexpected number of models pressed"; } + +# Try to press it again. +# This should issue a normal warning that the files already exist. +$output = `$hmmpress $tmppfx.hmm 2>&1`; +if ( ($? >> 8) != 1) { die "expected exit code 1 from hmmpress"; } +if ($output !~ /SSI index.+already exists/) { die "second press should have failed"; } + +# Press it again with -f +# Bug #h65 was here. +$output = `$hmmpress -f $tmppfx.hmm 2>&1`; +if ($? != 0) { die "hmmpress -f failed to press $minifam"; } +if ($output !~ /Pressed and indexed (\d+) HMMs/) { die "unexpected hmmpress -f output"; } +if ($1 != $nmodels) { die "unexpected number of models after hmmpress -f"; } + +print "ok\n"; +unlink <$tmppfx.hmm*>; +exit 0; + + diff --git a/bioinformaticsProject/hmmer/src/hmmscan.c b/bioinformaticsProject/hmmer/src/hmmscan.c new file mode 100644 index 0000000..e681a93 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmscan.c @@ -0,0 +1,1288 @@ +/* hmmscan: search sequence(s) against a profile HMM database + * + * To do: + * - in MPI mode, add a check to make sure ncpus >= 2. If 1, then we + * only have a master, no workers. See Infernal commit r3972 on the + * same point; and same note in hmmsearch.c's to do list. + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#ifdef HMMER_MPI +#include "mpi.h" +#include "esl_mpi.h" +#endif + +#ifdef HMMER_THREADS +#include +#include "esl_threads.h" +#include "esl_workqueue.h" +#endif + +#include "hmmer.h" + +typedef struct { +#ifdef HMMER_THREADS + ESL_WORK_QUEUE *queue; +#endif + ESL_SQ *qsq; + P7_BG *bg; /* null model */ + P7_PIPELINE *pli; /* work pipeline */ + P7_TOPHITS *th; /* top hit results */ +} WORKER_INFO; + +#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc" +#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc" +#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc" +#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" + +#if defined (HMMER_THREADS) && defined (HMMER_MPI) +#define CPUOPTS "--mpi" +#define MPIOPTS "--cpu" +#else +#define CPUOPTS NULL +#define MPIOPTS NULL +#endif + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + /* Control of output */ + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file ", 2 }, + { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file ", 2 }, + { "--pfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits and domains to file, in Pfam format ", 2 }, + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 }, + { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 }, + { "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 }, + { "--textw", eslARG_INT, "120", NULL, "n>=120",NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 }, + /* Control of reporting thresholds */ + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report models <= this E-value threshold in output", 4 }, + { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report models >= this score threshold in output", 4 }, + { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "report domains <= this E-value threshold in output", 4 }, + { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "report domains >= this score cutoff in output", 4 }, + /* Control of inclusion (significance) thresholds: */ + { "--incE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCOPTS, "consider models <= this E-value threshold as significant", 5 }, + { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider models >= this score threshold as significant", 5 }, + { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "consider domains <= this E-value threshold as significant", 5 }, + { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "consider domains >= this score threshold as significant", 5 }, + /* Model-specific thresholding for both reporting and inclusion */ + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 6 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 6 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 6 }, + /* Control of acceleration pipeline */ + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "MSV threshold: promote hits w/ P <= F1", 7 }, + { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Vit threshold: promote hits w/ P <= F2", 7 }, + { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Fwd threshold: promote hits w/ P <= F3", 7 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 }, + /* Other options */ + { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 }, + { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 12 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 12 }, + { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input is in format : no autodetection", 12 }, +#ifdef HMMER_THREADS + { "--cpu", eslARG_INT, p7_NCPU,"HMMER_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 12 }, +#endif +#ifdef HMMER_MPI + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 12 }, + { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 12 }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + + +/* struct cfg_s : "Global" application configuration shared by all threads/processes + * + * This structure is passed to routines within main.c, as a means of semi-encapsulation + * of shared data amongst different parallel processes (threads or MPI processes). + */ +struct cfg_s { + char *seqfile; /* query sequence file */ + char *hmmfile; /* database HMM file */ + + int do_mpi; /* TRUE if we're doing MPI parallelization */ + int nproc; /* how many MPI processes, total */ + int my_rank; /* who am I, in 0..nproc-1 */ +}; + +static char usage[] = "[-options] "; +static char banner[] = "search sequence(s) against a profile database"; + +static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg); +static int serial_loop (WORKER_INFO *info, P7_HMMFILE *hfp); + +#ifdef HMMER_THREADS +#define BLOCK_SIZE 1000 + +static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, P7_HMMFILE *hfp); +static void pipeline_thread(void *arg); +#endif + +#ifdef HMMER_MPI +static int mpi_master (ESL_GETOPTS *go, struct cfg_s *cfg); +static int mpi_worker (ESL_GETOPTS *go, struct cfg_s *cfg); +#endif + +/* process_commandline() + * + * Processes the commandline, filling in fields in and creating and returning + * an options structure. The help page (hmmsearch -h) is formatted + * here. + */ +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmfile, char **ret_seqfile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + + if (puts("\nOptions controlling output:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + + if (puts("\nOptions controlling reporting thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + + if (puts("\nOptions controlling inclusion (significance) thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + + if (puts("\nOptions for model-specific thresholding:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 6, 2, 80); + + if (puts("\nOptions controlling acceleration heuristics:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 7, 2, 80); + + if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 12, 2, 80); + exit(0); + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_hmmfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_seqfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* Validate any attempted use of stdin streams */ + if (strcmp(*ret_hmmfile, "-") == 0) + { if (puts("hmmscan cannot read from stdin stream, because it must have hmmpress'ed auxfiles") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + if (puts("\nwhere most common options are:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + if (printf("\nTo see more help on available options, do %s -h\n\n", argv[0]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + + +static int +output_header(FILE *ofp, ESL_GETOPTS *go, char *hmmfile, char *seqfile) +{ + p7_banner(ofp, go->argv[0], banner); + + if (fprintf(ofp, "# query sequence file: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# target HMM database: %s\n", hmmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# per-seq hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domtblout") && fprintf(ofp, "# per-dom hits tabular output: %s\n", esl_opt_GetString(go, "--domtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pfamtblout")&& fprintf(ofp, "# pfam-style tabular hit output: %s\n", esl_opt_GetString(go, "--pfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(go, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-E") && fprintf(ofp, "# profile reporting threshold: E-value <= %g\n", esl_opt_GetReal(go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-T") && fprintf(ofp, "# profile reporting threshold: score >= %g\n", esl_opt_GetReal(go, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domE") && fprintf(ofp, "# domain reporting threshold: E-value <= %g\n", esl_opt_GetReal(go, "--domE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domT") && fprintf(ofp, "# domain reporting threshold: score >= %g\n", esl_opt_GetReal(go, "--domT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incE") && fprintf(ofp, "# profile inclusion threshold: E-value <= %g\n", esl_opt_GetReal(go, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incT") && fprintf(ofp, "# profile inclusion threshold: score >= %g\n", esl_opt_GetReal(go, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incdomE") && fprintf(ofp, "# domain inclusion threshold: E-value <= %g\n", esl_opt_GetReal(go, "--incdomE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incdomT") && fprintf(ofp, "# domain inclusion threshold: score >= %g\n", esl_opt_GetReal(go, "--incdomT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# MSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# sequence search space set to: %.0f\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domZ") && fprintf(ofp, "# domain search space set to: %.0f\n", esl_opt_GetReal(go, "--domZ")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed")) { + if (esl_opt_GetInteger(go, "--seed")==0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if ( fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (esl_opt_IsUsed(go, "--qformat") && fprintf(ofp, "# input seqfile format asserted: %s\n", esl_opt_GetString(go, "--qformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#ifdef HMMER_THREADS + if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif +#ifdef HMMER_MPI + if (esl_opt_IsUsed(go, "--mpi") && fprintf(ofp, "# MPI: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; + struct cfg_s cfg; + int status = eslOK; + + impl_Init(); /* processor-specific initialization */ + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + + /* Initialize what we can in the config structure (without knowing the alphabet yet) */ + cfg.hmmfile = NULL; + cfg.seqfile = NULL; + cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */ + cfg.nproc = 0; /* this gets reset below, if we init MPI */ + cfg.my_rank = 0; /* this gets reset below, if we init MPI */ + + process_commandline(argc, argv, &go, &cfg.hmmfile, &cfg.seqfile); + + /* Figure out who we are, and send control there: + * we might be an MPI master, an MPI worker, or a serial program. + */ +#ifdef HMMER_MPI + /* pause the execution of the programs execution until the user has a + * chance to attach with a debugger and send a signal to resume execution + * i.e. (gdb) signal SIGCONT + */ + if (esl_opt_GetBoolean(go, "--stall")) pause(); + + if (esl_opt_GetBoolean(go, "--mpi")) + { + cfg.do_mpi = TRUE; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &(cfg.my_rank)); + MPI_Comm_size(MPI_COMM_WORLD, &(cfg.nproc)); + + if (cfg.my_rank > 0) status = mpi_worker(go, &cfg); + else status = mpi_master(go, &cfg); + + MPI_Finalize(); + } + else +#endif /*HMMER_MPI*/ + { + status = serial_master(go, &cfg); + } + + esl_getopts_Destroy(go); + return status; +} + + +/* serial_master() + * The serial version of hmmsearch. + * For each query HMM in search the database for hits. + * + * A master can only return if it's successful. All errors are handled + * immediately and fatally with p7_Fail(). + */ +static int +serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* output file for results (default stdout) */ + FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */ + FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */ + FILE *pfamtblfp= NULL; /* output stream for pfam tabular output (--pfamtblout) */ + int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */ + ESL_SQFILE *sqfp = NULL; /* open seqfile */ + P7_HMMFILE *hfp = NULL; /* open HMM database file */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_OPROFILE *om = NULL; /* target profile */ + ESL_STOPWATCH *w = NULL; /* timing */ + ESL_SQ *qsq = NULL; /* query sequence */ + int nquery = 0; + int textw; + int status = eslOK; + int hstatus = eslOK; + int sstatus = eslOK; + int i; + + int ncpus = 0; + + int infocnt = 0; + WORKER_INFO *info = NULL; +#ifdef HMMER_THREADS + P7_OM_BLOCK *block = NULL; + ESL_THREADS *threadObj= NULL; + ESL_WORK_QUEUE *queue = NULL; +#endif + char errbuf[eslERRBUFSIZE]; + + w = esl_stopwatch_Create(); + + if (esl_opt_GetBoolean(go, "--notextw")) textw = 0; + else textw = esl_opt_GetInteger(go, "--textw"); + + /* If caller declared an input format, decode it */ + if (esl_opt_IsOn(go, "--qformat")) { + seqfmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (seqfmt == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + + /* Open the target profile database to get the sequence alphabet */ + status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem, trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf); + if (! hfp->is_pressed) p7_Fail("Failed to open binary auxfiles for %s: use hmmpress first\n", hfp->fname); + + hstatus = p7_oprofile_ReadMSV(hfp, &abc, &om); + if (hstatus == eslEFORMAT) p7_Fail("bad format, binary auxfiles, %s:\n%s", cfg->hmmfile, hfp->errbuf); + else if (hstatus == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile); + else if (hstatus != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", cfg->hmmfile); + + p7_oprofile_Destroy(om); + p7_hmmfile_Close(hfp); + + /* Open the query sequence database */ + status = esl_sqfile_OpenDigital(abc, cfg->seqfile, seqfmt, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", cfg->seqfile); + else if (status == eslEFORMAT) p7_Fail("Sequence file %s is empty or misformatted\n", cfg->seqfile); + else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) p7_Fail("Unexpected error %d opening sequence file %s\n", status, cfg->seqfile); + qsq = esl_sq_CreateDigital(abc); + + /* Open the results output files */ + if (esl_opt_IsOn(go, "-o")) { if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) esl_fatal("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); } + if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblout")); } + if (esl_opt_IsOn(go, "--domtblout")) { if ((domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblout")); } + if (esl_opt_IsOn(go, "--pfamtblout")){ if ((pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL) esl_fatal("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout")); } + + output_header(ofp, go, cfg->hmmfile, cfg->seqfile); + +#ifdef HMMER_THREADS + /* initialize thread data */ + ncpus = ESL_MIN( esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + if (ncpus > 0) + { + threadObj = esl_threads_Create(&pipeline_thread); + queue = esl_workqueue_Create(ncpus * 2); + } +#endif + + infocnt = (ncpus == 0) ? 1 : ncpus; + ESL_ALLOC(info, sizeof(*info) * infocnt); + + for (i = 0; i < infocnt; ++i) + { + info[i].bg = p7_bg_Create(abc); +#ifdef HMMER_THREADS + info[i].queue = queue; +#endif + } + +#ifdef HMMER_THREADS + for (i = 0; i < ncpus * 2; ++i) + { + block = p7_oprofile_CreateBlock(BLOCK_SIZE); + if (block == NULL) esl_fatal("Failed to allocate sequence block"); + + status = esl_workqueue_Init(queue, block); + if (status != eslOK) esl_fatal("Failed to add block to work queue"); + } +#endif + + /* Outside loop: over each query sequence in . */ + while ((sstatus = esl_sqio_Read(sqfp, qsq)) == eslOK) + { + nquery++; + esl_stopwatch_Start(w); + + /* Open the target profile database */ + status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, NULL); + if (status != eslOK) p7_Fail("Unexpected error %d in opening hmm file %s.\n", status, cfg->hmmfile); + +#ifdef HMMER_THREADS + /* if we are threaded, create a lock to prevent multiple readers */ + if (ncpus > 0) + { + status = p7_hmmfile_CreateLock(hfp); + if (status != eslOK) p7_Fail("Unexpected error %d creating lock\n", status); + } +#endif + + if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->acc[0] != 0 && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->desc[0] != 0 && fprintf(ofp, "Description: %s\n", qsq->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + for (i = 0; i < infocnt; ++i) + { + /* Create processing pipeline and hit list */ + info[i].th = p7_tophits_Create(); + info[i].pli = p7_pipeline_Create(go, 100, 100, FALSE, p7_SCAN_MODELS); /* M_hint = 100, L_hint = 100 are just dummies for now */ + info[i].pli->hfp = hfp; /* for two-stage input, pipeline needs */ + + p7_pli_NewSeq(info[i].pli, qsq); + info[i].qsq = qsq; + +#ifdef HMMER_THREADS + if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]); +#endif + } + +#ifdef HMMER_THREADS + if (ncpus > 0) hstatus = thread_loop(threadObj, queue, hfp); + else hstatus = serial_loop(info, hfp); +#else + hstatus = serial_loop(info, hfp); +#endif + switch(hstatus) + { + case eslEFORMAT: p7_Fail("bad file format in HMM file %s", cfg->hmmfile); break; + case eslEINCOMPAT: p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile); break; + case eslEOF: /* do nothing */ break; + default: p7_Fail("Unexpected error in reading HMMs from %s", cfg->hmmfile); + } + + /* merge the results of the search results */ + for (i = 1; i < infocnt; ++i) + { + p7_tophits_Merge(info[0].th, info[i].th); + p7_pipeline_Merge(info[0].pli, info[i].pli); + + p7_pipeline_Destroy(info[i].pli); + p7_tophits_Destroy(info[i].th); + } + + /* Print results */ + p7_tophits_SortBySortkey(info->th); + p7_tophits_Threshold(info->th, info->pli); + + p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1)); + if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1)); + if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, qsq->name, qsq->acc, info->th, info->pli); + + esl_stopwatch_Stop(w); + p7_pli_Statistics(ofp, info->pli, w); + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + fflush(ofp); + + p7_hmmfile_Close(hfp); + p7_pipeline_Destroy(info->pli); + p7_tophits_Destroy(info->th); + esl_sq_Reuse(qsq); + } + if (sstatus == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n", + sqfp->filename, esl_sqfile_GetErrorBuf(sqfp)); + else if (sstatus != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", + sstatus, sqfp->filename); + + /* Terminate outputs - any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go); + if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go); + if (pfamtblfp)p7_tophits_TabularTail(pfamtblfp,"hmmscan", p7_SEARCH_SEQS, cfg->seqfile, cfg->hmmfile, go); + if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Cleanup - prepare for successful exit + */ + for (i = 0; i < infocnt; ++i) + p7_bg_Destroy(info[i].bg); + +#ifdef HMMER_THREADS + if (ncpus > 0) + { + esl_workqueue_Reset(queue); + while (esl_workqueue_Remove(queue, (void **) &block) == eslOK) + p7_oprofile_DestroyBlock(block); + esl_workqueue_Destroy(queue); + esl_threads_Destroy(threadObj); + } +#endif + + free(info); + + esl_sq_Destroy(qsq); + esl_stopwatch_Destroy(w); + esl_alphabet_Destroy(abc); + esl_sqfile_Close(sqfp); + + if (ofp != stdout) fclose(ofp); + if (tblfp) fclose(tblfp); + if (domtblfp) fclose(domtblfp); + if (pfamtblfp) fclose(pfamtblfp); + return eslOK; + + ERROR: + return status; +} + +#ifdef HMMER_MPI + +/* Define common tags used by the MPI master/slave processes */ +#define HMMER_ERROR_TAG 1 +#define HMMER_HMM_TAG 2 +#define HMMER_SEQUENCE_TAG 3 +#define HMMER_BLOCK_TAG 4 +#define HMMER_PIPELINE_TAG 5 +#define HMMER_TOPHITS_TAG 6 +#define HMMER_HIT_TAG 7 +#define HMMER_TERMINATING_TAG 8 +#define HMMER_READY_TAG 9 + +/* mpi_failure() + * Generate an error message. If the clients rank is not 0, a + * message is created with the error message and sent to the + * master process for handling. + */ +static void +mpi_failure(char *format, ...) +{ + va_list argp; + int status = eslFAIL; + int len; + int rank; + char str[512]; + + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + /* format the error mesg */ + va_start(argp, format); + len = vsnprintf(str, sizeof(str), format, argp); + va_end(argp); + + /* make sure the error string is terminated */ + str[sizeof(str)-1] = '\0'; + + /* if the caller is the master, print the results and abort */ + if (rank == 0) + { + if (fprintf(stderr, "\nError: ") < 0) exit(eslEWRITE); + if (fprintf(stderr, "%s", str) < 0) exit(eslEWRITE); + if (fprintf(stderr, "\n") < 0) exit(eslEWRITE); + fflush(stderr); + + MPI_Abort(MPI_COMM_WORLD, status); + exit(1); + } + else + { + MPI_Send(str, len, MPI_CHAR, 0, HMMER_ERROR_TAG, MPI_COMM_WORLD); + pause(); + } +} + +#define MAX_BLOCK_SIZE (512*1024) + +typedef struct { + uint64_t offset; + uint64_t length; + uint64_t count; +} MSV_BLOCK; + +typedef struct { + int complete; + int size; + int current; + int last; + MSV_BLOCK *blocks; +} BLOCK_LIST; + +/* this routine parses the database keeping track of the blocks + * offset within the file, number of sequences and the length + * of the block. These blocks are passed as work units to the + * MPI workers. If multiple hmm's are in the query file, the + * blocks are reused without parsing the database a second time. + */ +int next_block(P7_HMMFILE *hfp, BLOCK_LIST *list, MSV_BLOCK *block) +{ + P7_OPROFILE *om = NULL; + ESL_ALPHABET *abc = NULL; + int status = eslOK; + + /* if the list has been calculated, use it instead of parsing the database */ + if (list->complete) + { + if (list->current == list->last) + { + block->offset = 0; + block->length = 0; + block->count = 0; + + status = eslEOF; + } + else + { + int inx = list->current++; + + block->offset = list->blocks[inx].offset; + block->length = list->blocks[inx].length; + block->count = list->blocks[inx].count; + + status = eslOK; + } + + return status; + } + + block->offset = 0; + block->length = 0; + block->count = 0; + + while (block->length < MAX_BLOCK_SIZE && (status = p7_oprofile_ReadInfoMSV(hfp, &abc, &om)) == eslOK) + { + if (block->count == 0) block->offset = om->roff; + block->length = om->eoff - block->offset + 1; + block->count++; + p7_oprofile_Destroy(om); + } + + if (status == eslEOF && block->count > 0) status = eslOK; + if (status == eslEOF) list->complete = 1; + + /* add the block to the list of known blocks */ + if (status == eslOK) + { + int inx; + + if (list->last >= list->size) + { + void *tmp; + list->size += 500; + ESL_RALLOC(list->blocks, tmp, sizeof(MSV_BLOCK) * list->size); + } + + inx = list->last++; + list->blocks[inx].offset = block->offset; + list->blocks[inx].length = block->length; + list->blocks[inx].count = block->count; + } + + return status; + + ERROR: + return eslEMEM; +} + +/* mpi_master() + * The MPI version of hmmscan + * Follows standard pattern for a master/worker load-balanced MPI program (J1/78-79). + * + * A master can only return if it's successful. + * Errors in an MPI master come in two classes: recoverable and nonrecoverable. + * + * Recoverable errors include all worker-side errors, and any + * master-side error that do not affect MPI communication. Error + * messages from recoverable messages are delayed until we've cleanly + * shut down the workers. + * + * Unrecoverable errors are master-side errors that may affect MPI + * communication, meaning we cannot count on being able to reach the + * workers and shut them down. Unrecoverable errors result in immediate + * p7_Fail()'s, which will cause MPI to shut down the worker processes + * uncleanly. + */ +static int +mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* output file for results (default stdout) */ + FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */ + FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */ + FILE *pfamtblfp= NULL; /* output stream for pfam-style tabular output (--pfamtblout) */ + int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */ + P7_BG *bg = NULL; /* null model */ + ESL_SQFILE *sqfp = NULL; /* open seqfile */ + P7_HMMFILE *hfp = NULL; /* open HMM database file */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_OPROFILE *om = NULL; /* target profile */ + ESL_STOPWATCH *w = NULL; /* timing */ + ESL_SQ *qsq = NULL; /* query sequence */ + int nquery = 0; + int textw; + int status = eslOK; + int hstatus = eslOK; + int sstatus = eslOK; + int dest; + + char *mpi_buf = NULL; /* buffer used to pack/unpack structures */ + int mpi_size = 0; /* size of the allocated buffer */ + BLOCK_LIST *list = NULL; + MSV_BLOCK block; + + int i; + int size; + MPI_Status mpistatus; + char errbuf[eslERRBUFSIZE]; + + w = esl_stopwatch_Create(); + + if (esl_opt_GetBoolean(go, "--notextw")) textw = 0; + else textw = esl_opt_GetInteger(go, "--textw"); + + /* If caller declared an input format, decode it */ + if (esl_opt_IsOn(go, "--qformat")) { + seqfmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (seqfmt == eslSQFILE_UNKNOWN) mpi_failure("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + + /* Open the target profile database to get the sequence alphabet */ + status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, errbuf); + if (status == eslENOTFOUND) mpi_failure("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status == eslEFORMAT) mpi_failure("File format problem, trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status != eslOK) mpi_failure("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf); + if (! hfp->is_pressed) mpi_failure("Failed to open binary auxfiles for %s: use hmmpress first\n", hfp->fname); + + hstatus = p7_oprofile_ReadMSV(hfp, &abc, &om); + if (hstatus == eslEFORMAT) mpi_failure("bad format, binary auxfiles, %s", cfg->hmmfile); + else if (hstatus == eslEINCOMPAT) mpi_failure("HMM file %s contains different alphabets", cfg->hmmfile); + else if (hstatus != eslOK) mpi_failure("Unexpected error in reading HMMs from %s", cfg->hmmfile); + + p7_oprofile_Destroy(om); + p7_hmmfile_Close(hfp); + + /* Open the query sequence database */ + status = esl_sqfile_OpenDigital(abc, cfg->seqfile, seqfmt, NULL, &sqfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->seqfile); + else if (status == eslEFORMAT) mpi_failure("Sequence file %s is empty or misformatted\n", cfg->seqfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure("Unexpected error %d opening sequence file %s\n", status, cfg->seqfile); + + /* Open the results output files */ + if (esl_opt_IsOn(go, "-o") && (ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) + mpi_failure("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); + if (esl_opt_IsOn(go, "--tblout") && (tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) + mpi_failure("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp")); + if (esl_opt_IsOn(go, "--domtblout") && (domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) + mpi_failure("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp")); + if (esl_opt_IsOn(go, "--pfamtblout") && (pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL) + mpi_failure("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout")); + + ESL_ALLOC(list, sizeof(MSV_BLOCK)); + list->complete = 0; + list->size = 0; + list->current = 0; + list->last = 0; + list->blocks = NULL; + + output_header(ofp, go, cfg->hmmfile, cfg->seqfile); + qsq = esl_sq_CreateDigital(abc); + bg = p7_bg_Create(abc); + + /* Outside loop: over each query sequence in . */ + while ((sstatus = esl_sqio_Read(sqfp, qsq)) == eslOK) + { + P7_PIPELINE *pli = NULL; /* processing pipeline */ + P7_TOPHITS *th = NULL; /* top-scoring sequence hits */ + + nquery++; + + esl_stopwatch_Start(w); + + /* seqfile may need to be rewound (multiquery mode) */ + if (nquery > 1) list->current = 0; + + /* Open the target profile database */ + status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, NULL); + if (status != eslOK) mpi_failure("Unexpected error %d in opening hmm file %s.\n", status, cfg->hmmfile); + + if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->acc[0] != 0 && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->desc[0] != 0 && fprintf(ofp, "Description: %s\n", qsq->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(go, 100, 100, FALSE, p7_SCAN_MODELS); /* M_hint = 100, L_hint = 100 are just dummies for now */ + pli->hfp = hfp; /* for two-stage input, pipeline needs */ + + p7_pli_NewSeq(pli, qsq); + + /* Main loop: */ + while ((hstatus = next_block(hfp, list, &block)) == eslOK) + { + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_READY_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + + MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD); + } + switch(hstatus) + { + case eslEFORMAT: + mpi_failure("bad file format in HMM file %s", cfg->hmmfile); + break; + case eslEINCOMPAT: + mpi_failure("HMM file %s contains different alphabets", cfg->hmmfile); + break; + case eslEOF: + /* do nothing */ + break; + default: + mpi_failure("Unexpected error %d in reading HMMs from %s", hstatus, cfg->hmmfile); + } + + block.offset = 0; + block.length = 0; + block.count = 0; + + /* wait for all workers to finish up their work blocks */ + for (i = 1; i < cfg->nproc; ++i) + { + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_READY_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + } + + /* merge the results of the search results */ + for (dest = 1; dest < cfg->nproc; ++dest) + { + P7_PIPELINE *mpi_pli = NULL; + P7_TOPHITS *mpi_th = NULL; + + /* send an empty block to signal the worker they are done */ + MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD); + + /* wait for the results */ + if ((status = p7_tophits_MPIRecv(dest, HMMER_TOPHITS_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, &mpi_th)) != eslOK) + mpi_failure("Unexpected error %d receiving tophits from %d", status, dest); + + if ((status = p7_pipeline_MPIRecv(dest, HMMER_PIPELINE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, go, &mpi_pli)) != eslOK) + mpi_failure("Unexpected error %d receiving pipeline from %d", status, dest); + + p7_tophits_Merge(th, mpi_th); + p7_pipeline_Merge(pli, mpi_pli); + + p7_pipeline_Destroy(mpi_pli); + p7_tophits_Destroy(mpi_th); + } + + /* Print the results. */ + p7_tophits_SortBySortkey(th); + p7_tophits_Threshold(th, pli); + p7_tophits_Targets(ofp, th, pli, textw); fprintf(ofp, "\n\n"); + p7_tophits_Domains(ofp, th, pli, textw); fprintf(ofp, "\n\n"); + + if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, th, pli, (nquery == 1)); + if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, th, pli, (nquery == 1)); + if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, qsq->name, qsq->acc, th, pli); + + esl_stopwatch_Stop(w); + p7_pli_Statistics(ofp, pli, w); + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + p7_hmmfile_Close(hfp); + p7_pipeline_Destroy(pli); + p7_tophits_Destroy(th); + esl_sq_Reuse(qsq); + } + if (sstatus == eslEFORMAT) + mpi_failure("Parse failed (sequence file %s):\n%s\n", sqfp->filename, esl_sqfile_GetErrorBuf(sqfp)); + else if (sstatus != eslEOF) + mpi_failure("Unexpected error %d reading sequence file %s", sstatus, sqfp->filename); + + /* monitor all the workers to make sure they have ended */ + for (i = 1; i < cfg->nproc; ++i) + { + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_TERMINATING_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + } + + /* Terminate outputs - any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go); + if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go); + if (pfamtblfp)p7_tophits_TabularTail(pfamtblfp, "hmmscan", p7_SEARCH_SEQS, cfg->seqfile, cfg->hmmfile, go); + if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Cleanup - prepare for successful exit + */ + free(list); + if (mpi_buf != NULL) free(mpi_buf); + + p7_bg_Destroy(bg); + esl_sq_Destroy(qsq); + esl_stopwatch_Destroy(w); + esl_alphabet_Destroy(abc); + esl_sqfile_Close(sqfp); + + if (ofp != stdout) fclose(ofp); + if (tblfp) fclose(tblfp); + if (domtblfp) fclose(domtblfp); + if (pfamtblfp) fclose(pfamtblfp); + + return eslOK; + + ERROR: + return status; +} + + +static int +mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */ + P7_BG *bg = NULL; /* null model */ + ESL_SQFILE *sqfp = NULL; /* open seqfile */ + P7_HMMFILE *hfp = NULL; /* open HMM database file */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_OPROFILE *om = NULL; /* target profile */ + ESL_STOPWATCH *w = NULL; /* timing */ + ESL_SQ *qsq = NULL; /* query sequence */ + int status = eslOK; + int hstatus = eslOK; + int sstatus = eslOK; + + char *mpi_buf = NULL; /* buffer used to pack/unpack structures */ + int mpi_size = 0; /* size of the allocated buffer */ + + MPI_Status mpistatus; + char errbuf[eslERRBUFSIZE]; + + w = esl_stopwatch_Create(); + + /* Open the target profile database to get the sequence alphabet */ + status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, errbuf); + if (status == eslENOTFOUND) mpi_failure("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status == eslEFORMAT) mpi_failure("File format problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status != eslOK) mpi_failure("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf); + if (! hfp->is_pressed) mpi_failure("Failed to open binary dbs for HMM file %s: use hmmpress first\n", hfp->fname); + + hstatus = p7_oprofile_ReadMSV(hfp, &abc, &om); + if (hstatus == eslEFORMAT) mpi_failure("bad file format in HMM file %s", cfg->hmmfile); + else if (hstatus == eslEINCOMPAT) mpi_failure("HMM file %s contains different alphabets", cfg->hmmfile); + else if (hstatus != eslOK) mpi_failure("Unexpected error in reading HMMs from %s", cfg->hmmfile); + + p7_oprofile_Destroy(om); + p7_hmmfile_Close(hfp); + + /* Open the query sequence database */ + status = esl_sqfile_OpenDigital(abc, cfg->seqfile, seqfmt, NULL, &sqfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->seqfile); + else if (status == eslEFORMAT) mpi_failure("Sequence file %s is empty or misformatted\n", cfg->seqfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure("Unexpected error %d opening sequence file %s\n", status, cfg->seqfile); + + qsq = esl_sq_CreateDigital(abc); + bg = p7_bg_Create(abc); + + /* Outside loop: over each query sequence in . */ + while ((sstatus = esl_sqio_Read(sqfp, qsq)) == eslOK) + { + P7_PIPELINE *pli = NULL; /* processing pipeline */ + P7_TOPHITS *th = NULL; /* top-scoring sequence hits */ + + MSV_BLOCK block; + + esl_stopwatch_Start(w); + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_READY_TAG, MPI_COMM_WORLD); + + /* Open the target profile database */ + status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, NULL); + if (status != eslOK) mpi_failure("Unexpected error %d in opening hmm file %s.\n", status, cfg->hmmfile); + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(go, 100, 100, FALSE, p7_SCAN_MODELS); /* M_hint = 100, L_hint = 100 are just dummies for now */ + pli->hfp = hfp; /* for two-stage input, pipeline needs */ + + p7_pli_NewSeq(pli, qsq); + + /* receive a sequence block from the master */ + MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, HMMER_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus); + while (block.count > 0) + { + uint64_t length = 0; + uint64_t count = block.count; + + hstatus = p7_oprofile_Position(hfp, block.offset); + if (hstatus != eslOK) mpi_failure("Cannot position optimized model to %ld\n", block.offset); + + while (count > 0 && (hstatus = p7_oprofile_ReadMSV(hfp, &abc, &om)) == eslOK) + { + length = om->eoff - block.offset + 1; + + p7_pli_NewModel(pli, om, bg); + p7_bg_SetLength(bg, qsq->n); + p7_oprofile_ReconfigLength(om, qsq->n); + + p7_Pipeline(pli, om, bg, qsq, NULL, th); + + p7_oprofile_Destroy(om); + p7_pipeline_Reuse(pli); + + --count; + } + + /* check the status of reading the hmm */ + + /* lets do a little bit of sanity checking here to make sure the blocks are the same */ + if (count > 0) + { + switch(hstatus) + { + case eslEFORMAT: + mpi_failure("bad file format in HMM file %s", cfg->hmmfile); + break; + case eslEINCOMPAT: + mpi_failure("HMM file %s contains different alphabets", cfg->hmmfile); + break; + case eslOK: + case eslEOF: + mpi_failure("Block count mismatch - expected %ld found %ld at offset %ld\n", block.count, block.count-count, block.offset); + break; + default: + mpi_failure("Unexpected error %d in reading HMMs from %s", hstatus, cfg->hmmfile); + } + } + if (block.length != length) + mpi_failure("Block length mismatch - expected %ld found %ld at offset %ld\n", block.length, length, block.offset); + + /* inform the master we need another block of sequences */ + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_READY_TAG, MPI_COMM_WORLD); + + /* wait for the next block of sequences */ + MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, HMMER_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus); + } + + esl_stopwatch_Stop(w); + + /* Send the top hits back to the master. */ + p7_tophits_MPISend(th, 0, HMMER_TOPHITS_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + p7_pipeline_MPISend(pli, 0, HMMER_PIPELINE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + + p7_hmmfile_Close(hfp); + p7_pipeline_Destroy(pli); + p7_tophits_Destroy(th); + esl_sq_Reuse(qsq); + } /* end outer loop over query HMMs */ + if (sstatus == eslEFORMAT) + mpi_failure("Parse failed (sequence file %s):\n%s\n", sqfp->filename, esl_sqfile_GetErrorBuf(sqfp)); + else if (sstatus != eslEOF) + mpi_failure("Unexpected error %d reading sequence file %s", sstatus, sqfp->filename); + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_TERMINATING_TAG, MPI_COMM_WORLD); + + if (mpi_buf != NULL) free(mpi_buf); + + p7_bg_Destroy(bg); + + esl_sq_Destroy(qsq); + esl_stopwatch_Destroy(w); + esl_alphabet_Destroy(abc); + esl_sqfile_Close(sqfp); + + return eslOK; +} +#endif /*HMMER_MPI*/ + +static int +serial_loop(WORKER_INFO *info, P7_HMMFILE *hfp) +{ + int status; + + P7_OPROFILE *om; + ESL_ALPHABET *abc = NULL; + /* Main loop: */ + while ((status = p7_oprofile_ReadMSV(hfp, &abc, &om)) == eslOK) + { + p7_pli_NewModel(info->pli, om, info->bg); + p7_bg_SetLength(info->bg, info->qsq->n); + p7_oprofile_ReconfigLength(om, info->qsq->n); + + status = p7_Pipeline(info->pli, om, info->bg, info->qsq, NULL, info->th); + if (status == eslEINVAL) p7_Fail(info->pli->errbuf); + + p7_oprofile_Destroy(om); + p7_pipeline_Reuse(info->pli); + } + + esl_alphabet_Destroy(abc); + + return status; +} + +#ifdef HMMER_THREADS +static int +thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, P7_HMMFILE *hfp) +{ + int status = eslOK; + int sstatus = eslOK; + int eofCount = 0; + P7_OM_BLOCK *block; + ESL_ALPHABET *abc = NULL; + void *newBlock; + + esl_workqueue_Reset(queue); + esl_threads_WaitForStart(obj); + + status = esl_workqueue_ReaderUpdate(queue, NULL, &newBlock); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + /* Main loop: */ + while (sstatus == eslOK) + { + block = (P7_OM_BLOCK *) newBlock; + sstatus = p7_oprofile_ReadBlockMSV(hfp, &abc, block); + if (sstatus == eslEOF) + { + if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK; + ++eofCount; + } + + if (sstatus == eslOK) + { + status = esl_workqueue_ReaderUpdate(queue, block, &newBlock); + if (status != eslOK) esl_fatal("Work queue reader failed"); + } + } + + status = esl_workqueue_ReaderUpdate(queue, block, NULL); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + if (sstatus == eslEOF) + { + /* wait for all the threads to complete */ + esl_threads_WaitForFinish(obj); + esl_workqueue_Complete(queue); + } + + esl_alphabet_Destroy(abc); + return sstatus; +} + +static void +pipeline_thread(void *arg) +{ + int i; + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + P7_OM_BLOCK *block; + void *newBlock; + + impl_Init(); + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + /* loop until all blocks have been processed */ + block = (P7_OM_BLOCK *) newBlock; + while (block->count > 0) + { + /* Main loop: */ + for (i = 0; i < block->count; ++i) + { + P7_OPROFILE *om = block->list[i]; + + p7_pli_NewModel(info->pli, om, info->bg); + p7_bg_SetLength(info->bg, info->qsq->n); + p7_oprofile_ReconfigLength(om, info->qsq->n); + + status = p7_Pipeline(info->pli, om, info->bg, info->qsq, NULL, info->th); + if (status == eslEINVAL) p7_Fail(info->pli->errbuf); + + p7_oprofile_Destroy(om); + p7_pipeline_Reuse(info->pli); + + block->list[i] = NULL; + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, &newBlock); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + block = (P7_OM_BLOCK *) newBlock; + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, NULL); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + esl_threads_Finished(obj, workeridx); + return; +} +#endif /* HMMER_THREADS */ + + + diff --git a/bioinformaticsProject/hmmer/src/hmmsearch.c b/bioinformaticsProject/hmmer/src/hmmsearch.c new file mode 100644 index 0000000..37be536 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmsearch.c @@ -0,0 +1,1431 @@ +/* hmmsearch: search profile HMM(s) against a sequence database. + * + * To do: + * - in MPI mode, add a check to make sure ncpus >= 2. If 1, then we + * only have a master, no workers. See Infernal commit r3972 on the + * same point; and same note in hmmscan.c's to do list. + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#ifdef HMMER_MPI +#include "mpi.h" +#include "esl_mpi.h" +#endif + +#ifdef HMMER_THREADS +#include +#include "esl_threads.h" +#include "esl_workqueue.h" +#endif + +#include "hmmer.h" + +typedef struct { +#ifdef HMMER_THREADS + ESL_WORK_QUEUE *queue; +#endif + P7_BG *bg; /* null model */ + P7_PIPELINE *pli; /* work pipeline */ + P7_TOPHITS *th; /* top hit results */ + P7_OPROFILE *om; /* optimized query profile */ +} WORKER_INFO; + +#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc" +#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc" +#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc" +#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" + +#if defined (HMMER_THREADS) && defined (HMMER_MPI) +#define CPUOPTS "--mpi" +#define MPIOPTS "--cpu" +#else +#define CPUOPTS NULL +#define MPIOPTS NULL +#endif + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + /* Control of output */ + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of all hits to file ", 2 }, + { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file ", 2 }, + { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file ", 2 }, + { "--pfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits and domains to file, in Pfam format ", 2 }, + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 }, + { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 }, + { "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 }, + { "--textw", eslARG_INT, "120", NULL, "n>=120",NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 }, + /* Control of reporting thresholds */ + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report sequences <= this E-value threshold in output", 4 }, + { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report sequences >= this score threshold in output", 4 }, + { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "report domains <= this E-value threshold in output", 4 }, + { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "report domains >= this score cutoff in output", 4 }, + /* Control of inclusion (significance) thresholds */ + { "--incE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCOPTS, "consider sequences <= this E-value threshold as significant", 5 }, + { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider sequences >= this score threshold as significant", 5 }, + { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "consider domains <= this E-value threshold as significant", 5 }, + { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "consider domains >= this score threshold as significant", 5 }, + /* Model-specific thresholding for both reporting and inclusion */ + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 6 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 6 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 6 }, + /* Control of acceleration pipeline */ + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "Stage 1 (MSV) threshold: promote hits w/ P <= F1", 7 }, + { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 }, + { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 }, + +/* Other options */ + { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 }, + { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 12 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 12 }, + { "--tformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert target is in format : no autodetection", 12 }, + +#ifdef HMMER_THREADS + { "--cpu", eslARG_INT, p7_NCPU,"HMMER_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 12 }, +#endif +#ifdef HMMER_MPI + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 12 }, + { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 12 }, +#endif + + /* Restrict search to subset of database - hidden because these flags are + * (a) currently for internal use + * (b) probably going to change + * Doesn't work with MPI + */ + { "--restrictdb_stkey", eslARG_STRING, "0", NULL, NULL, NULL, NULL, NULL, "Search starts at the sequence with name (not with MPI)", 99 }, + { "--restrictdb_n",eslARG_INT, "-1", NULL, NULL, NULL, NULL, NULL, "Search target sequences (starting at --restrictdb_stkey)", 99 }, + { "--ssifile", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "restrictdb_x values require ssi file. Override default to ", 99 }, + + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[options] "; +static char banner[] = "search profile(s) against a sequence database"; + +/* struct cfg_s : "Global" application configuration shared by all threads/processes + * + * This structure is passed to routines within main.c, as a means of semi-encapsulation + * of shared data amongst different parallel processes (threads or MPI processes). + */ +struct cfg_s { + char *dbfile; /* target sequence database file */ + char *hmmfile; /* query HMM file */ + + int do_mpi; /* TRUE if we're doing MPI parallelization */ + int nproc; /* how many MPI processes, total */ + int my_rank; /* who am I, in 0..nproc-1 */ + + char *firstseq_key; /* name of the first sequence in the restricted db range */ + int n_targetseq; /* number of sequences in the restricted range */ +}; + +static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg); +static int serial_loop (WORKER_INFO *info, ESL_SQFILE *dbfp, int n_targetseqs); + +#ifdef HMMER_THREADS +#define BLOCK_SIZE 1000 + +static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, int n_targetseqs); +static void pipeline_thread(void *arg); +#endif + +#ifdef HMMER_MPI +static int mpi_master (ESL_GETOPTS *go, struct cfg_s *cfg); +static int mpi_worker (ESL_GETOPTS *go, struct cfg_s *cfg); +#endif + + +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmfile, char **ret_seqfile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + + if (puts("\nOptions directing output:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + + if (puts("\nOptions controlling reporting thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + + if (puts("\nOptions controlling inclusion (significance) thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + + if (puts("\nOptions controlling model-specific thresholding:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 6, 2, 80); + + if (puts("\nOptions controlling acceleration heuristics:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 7, 2, 80); + + if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 12, 2, 80); + exit(0); + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_hmmfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_seqfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* Validate any attempted use of stdin streams */ + if (strcmp(*ret_hmmfile, "-") == 0 && strcmp(*ret_seqfile, "-") == 0) + { if (puts("Either or may be '-' (to read from stdin), but not both.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + if (puts("\nwhere most common options are:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + if (printf("\nTo see more help on available options, do %s -h\n\n", argv[0]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +static int +output_header(FILE *ofp, const ESL_GETOPTS *go, char *hmmfile, char *seqfile) +{ + p7_banner(ofp, go->argv[0], banner); + + if (fprintf(ofp, "# query HMM file: %s\n", hmmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# target sequence database: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-A") && fprintf(ofp, "# MSA of all hits saved to file: %s\n", esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# per-seq hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domtblout") && fprintf(ofp, "# per-dom hits tabular output: %s\n", esl_opt_GetString(go, "--domtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pfamtblout") && fprintf(ofp, "# pfam-style tabular hit output: %s\n", esl_opt_GetString(go, "--pfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(go, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-E") && fprintf(ofp, "# sequence reporting threshold: E-value <= %g\n", esl_opt_GetReal(go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-T") && fprintf(ofp, "# sequence reporting threshold: score >= %g\n", esl_opt_GetReal(go, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domE") && fprintf(ofp, "# domain reporting threshold: E-value <= %g\n", esl_opt_GetReal(go, "--domE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domT") && fprintf(ofp, "# domain reporting threshold: score >= %g\n", esl_opt_GetReal(go, "--domT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incE") && fprintf(ofp, "# sequence inclusion threshold: E-value <= %g\n", esl_opt_GetReal(go, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incT") && fprintf(ofp, "# sequence inclusion threshold: score >= %g\n", esl_opt_GetReal(go, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incdomE") && fprintf(ofp, "# domain inclusion threshold: E-value <= %g\n", esl_opt_GetReal(go, "--incdomE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incdomT") && fprintf(ofp, "# domain inclusion threshold: score >= %g\n", esl_opt_GetReal(go, "--incdomT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# MSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--restrictdb_stkey") && fprintf(ofp, "# Restrict db to start at seq key: %s\n", esl_opt_GetString(go, "--restrictdb_stkey")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--restrictdb_n") && fprintf(ofp, "# Restrict db to # target seqs: %d\n", esl_opt_GetInteger(go, "--restrictdb_n")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--ssifile") && fprintf(ofp, "# Override ssi file to: %s\n", esl_opt_GetString(go, "--ssifile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# sequence search space set to: %.0f\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domZ") && fprintf(ofp, "# domain search space set to: %.0f\n", esl_opt_GetReal(go, "--domZ")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed")) { + if (esl_opt_GetInteger(go, "--seed") == 0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if ( fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (esl_opt_IsUsed(go, "--tformat") && fprintf(ofp, "# targ format asserted: %s\n", esl_opt_GetString(go, "--tformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#ifdef HMMER_THREADS + if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif +#ifdef HMMER_MPI + if (esl_opt_IsUsed(go, "--mpi") && fprintf(ofp, "# MPI: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; + struct cfg_s cfg; + int status = eslOK; + + impl_Init(); /* processor specific initialization */ + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + + /* Initialize what we can in the config structure (without knowing the alphabet yet) + */ + cfg.hmmfile = NULL; + cfg.dbfile = NULL; + cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */ + cfg.nproc = 0; /* this gets reset below, if we init MPI */ + cfg.my_rank = 0; /* this gets reset below, if we init MPI */ + cfg.firstseq_key = NULL; + cfg.n_targetseq = -1; + + process_commandline(argc, argv, &go, &cfg.hmmfile, &cfg.dbfile); + +/* is the range restricted? */ + if (esl_opt_IsUsed(go, "--restrictdb_stkey") ) + if ((cfg.firstseq_key = esl_opt_GetString(go, "--restrictdb_stkey")) == NULL) p7_Fail("Failure capturing --restrictdb_stkey\n"); + + if (esl_opt_IsUsed(go, "--restrictdb_n") ) + cfg.n_targetseq = esl_opt_GetInteger(go, "--restrictdb_n"); + + if ( cfg.n_targetseq != -1 && cfg.n_targetseq < 1 ) + p7_Fail("--restrictdb_n must be >= 1\n"); + + + /* Figure out who we are, and send control there: + * we might be an MPI master, an MPI worker, or a serial program. + */ +#ifdef HMMER_MPI + /* pause the execution of the programs execution until the user has a + * chance to attach with a debugger and send a signal to resume execution + * i.e. (gdb) signal SIGCONT + */ + if (esl_opt_GetBoolean(go, "--stall")) pause(); + + if (esl_opt_GetBoolean(go, "--mpi")) + { + cfg.do_mpi = TRUE; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &(cfg.my_rank)); + MPI_Comm_size(MPI_COMM_WORLD, &(cfg.nproc)); + + if (cfg.my_rank > 0) status = mpi_worker(go, &cfg); + else status = mpi_master(go, &cfg); + + MPI_Finalize(); + } + else +#endif /*HMMER_MPI*/ + { + status = serial_master(go, &cfg); + } + + esl_getopts_Destroy(go); + + return status; +} + + +/* serial_master() + * The serial version of hmmsearch. + * For each query HMM in search the database for hits. + * + * A master can only return if it's successful. All errors are handled + * immediately and fatally with p7_Fail(). We also use the + * ESL_EXCEPTION and ERROR: mechanisms, but only because we know we're + * using a fatal exception handler. + */ +static int +serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* results output file (-o) */ + FILE *afp = NULL; /* alignment output file (-A) */ + FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */ + FILE *domtblfp = NULL; /* output stream for tabular per-dom (--domtblout) */ + FILE *pfamtblfp= NULL; /* output stream for pfam tabular output (--pfamtblout) */ + P7_HMMFILE *hfp = NULL; /* open input HMM file */ + ESL_SQFILE *dbfp = NULL; /* open input sequence file */ + P7_HMM *hmm = NULL; /* one HMM query */ + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + int dbfmt = eslSQFILE_UNKNOWN; /* format code for sequence database file */ + ESL_STOPWATCH *w; + int textw = 0; + int nquery = 0; + int status = eslOK; + int hstatus = eslOK; + int sstatus = eslOK; + int i; + + int ncpus = 0; + + int infocnt = 0; + WORKER_INFO *info = NULL; +#ifdef HMMER_THREADS + ESL_SQ_BLOCK *block = NULL; + ESL_THREADS *threadObj= NULL; + ESL_WORK_QUEUE *queue = NULL; +#endif + char errbuf[eslERRBUFSIZE]; + + w = esl_stopwatch_Create(); + + if (esl_opt_GetBoolean(go, "--notextw")) textw = 0; + else textw = esl_opt_GetInteger(go, "--textw"); + + if (esl_opt_IsOn(go, "--tformat")) { + dbfmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbfmt == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + /* Open the target sequence database */ + status = esl_sqfile_Open(cfg->dbfile, dbfmt, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) p7_Fail("Sequence file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) p7_Fail("Unexpected error %d opening sequence file %s\n", status, cfg->dbfile); + + + if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) { + if (esl_opt_IsUsed(go, "--ssifile")) + esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile")); + else + esl_sqfile_OpenSSI(dbfp, NULL); + } + + + + /* Open the query profile HMM file */ + status = p7_hmmfile_OpenE(cfg->hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf); + + /* Open the results output files */ + if (esl_opt_IsOn(go, "-o")) { if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) p7_Fail("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); } + if (esl_opt_IsOn(go, "-A")) { if ((afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) p7_Fail("Failed to open alignment file %s for writing\n", esl_opt_GetString(go, "-A")); } + if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblout")); } + if (esl_opt_IsOn(go, "--domtblout")) { if ((domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblout")); } + if (esl_opt_IsOn(go, "--pfamtblout")){ if ((pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL) esl_fatal("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout")); } + +#ifdef HMMER_THREADS + /* initialize thread data */ + ncpus = ESL_MIN( esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + if (ncpus > 0) + { + threadObj = esl_threads_Create(&pipeline_thread); + queue = esl_workqueue_Create(ncpus * 2); + } +#endif + + infocnt = (ncpus == 0) ? 1 : ncpus; + ESL_ALLOC(info, sizeof(*info) * infocnt); + + /* is not known 'til first HMM is read. */ + hstatus = p7_hmmfile_Read(hfp, &abc, &hmm); + if (hstatus == eslOK) + { + /* One-time initializations after alphabet becomes known */ + output_header(ofp, go, cfg->hmmfile, cfg->dbfile); + esl_sqfile_SetDigital(dbfp, abc); //ReadBlock requires knowledge of the alphabet to decide how best to read blocks + + for (i = 0; i < infocnt; ++i) + { + info[i].bg = p7_bg_Create(abc); +#ifdef HMMER_THREADS + info[i].queue = queue; +#endif + } + +#ifdef HMMER_THREADS + for (i = 0; i < ncpus * 2; ++i) + { + block = esl_sq_CreateDigitalBlock(BLOCK_SIZE, abc); + if (block == NULL) esl_fatal("Failed to allocate sequence block"); + + status = esl_workqueue_Init(queue, block); + if (status != eslOK) esl_fatal("Failed to add block to work queue"); + } +#endif + } + + /* Outer loop: over each query HMM in . */ + while (hstatus == eslOK) + { + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; /* optimized query profile */ + + nquery++; + esl_stopwatch_Start(w); + + /* seqfile may need to be rewound (multiquery mode) */ + if (nquery > 1) + { + if (! esl_sqfile_IsRewindable(dbfp)) + esl_fatal("Target sequence file %s isn't rewindable; can't search it with multiple queries", cfg->dbfile); + + if (! esl_opt_IsUsed(go, "--restrictdb_stkey") ) + esl_sqfile_Position(dbfp, 0); //only re-set current position to 0 if we're not planning to set it in a moment + } + + if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general + sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key); + if (sstatus != eslOK) + p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key); + } + + if (fprintf(ofp, "Query: %s [M=%d]\n", hmm->name, hmm->M) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (hmm->acc) { if (fprintf(ofp, "Accession: %s\n", hmm->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + if (hmm->desc) { if (fprintf(ofp, "Description: %s\n", hmm->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Convert to an optimized model */ + gm = p7_profile_Create (hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, info->bg, gm, 100, p7_LOCAL); /* 100 is a dummy length for now; and MSVFilter requires local mode */ + p7_oprofile_Convert(gm, om); /* is now p7_LOCAL, multihit */ + + for (i = 0; i < infocnt; ++i) + { + /* Create processing pipeline and hit list */ + info[i].th = p7_tophits_Create(); + info[i].om = p7_oprofile_Clone(om); + info[i].pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */ + status = p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg); + if (status == eslEINVAL) p7_Fail(info->pli->errbuf); + +#ifdef HMMER_THREADS + if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]); +#endif + } + +#ifdef HMMER_THREADS + if (ncpus > 0) sstatus = thread_loop(threadObj, queue, dbfp, cfg->n_targetseq); + else sstatus = serial_loop(info, dbfp, cfg->n_targetseq); +#else + sstatus = serial_loop(info, dbfp, cfg->n_targetseq); +#endif + switch(sstatus) + { + case eslEFORMAT: + esl_fatal("Parse failed (sequence file %s):\n%s\n", + dbfp->filename, esl_sqfile_GetErrorBuf(dbfp)); + break; + case eslEOF: + /* do nothing */ + break; + default: + esl_fatal("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename); + } + + /* merge the results of the search results */ + for (i = 1; i < infocnt; ++i) + { + p7_tophits_Merge(info[0].th, info[i].th); + p7_pipeline_Merge(info[0].pli, info[i].pli); + + p7_pipeline_Destroy(info[i].pli); + p7_tophits_Destroy(info[i].th); + p7_oprofile_Destroy(info[i].om); + } + + /* Print the results. */ + p7_tophits_SortBySortkey(info->th); + p7_tophits_Threshold(info->th, info->pli); + p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (tblfp) p7_tophits_TabularTargets(tblfp, hmm->name, hmm->acc, info->th, info->pli, (nquery == 1)); + if (domtblfp) p7_tophits_TabularDomains(domtblfp, hmm->name, hmm->acc, info->th, info->pli, (nquery == 1)); + if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, hmm->name, hmm->acc, info->th, info->pli); + + esl_stopwatch_Stop(w); + p7_pli_Statistics(ofp, info->pli, w); + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Output the results in an MSA (-A option) */ + if (afp) { + ESL_MSA *msa = NULL; + + if (p7_tophits_Alignment(info->th, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) == eslOK) + { + esl_msa_SetName (msa, hmm->name, -1); + esl_msa_SetAccession(msa, hmm->acc, -1); + esl_msa_SetDesc (msa, hmm->desc, -1); + esl_msa_FormatAuthor(msa, "hmmsearch (HMMER %s)", HMMER_VERSION); + + if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM); + else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM); + + if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + else { if (fprintf(ofp, "# No hits satisfy inclusion thresholds; no alignment saved\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + esl_msa_Destroy(msa); + } + + p7_pipeline_Destroy(info->pli); + p7_tophits_Destroy(info->th); + p7_oprofile_Destroy(info->om); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); + + hstatus = p7_hmmfile_Read(hfp, &abc, &hmm); + } /* end outer loop over query HMMs */ + + switch(hstatus) { + case eslEOD: p7_Fail("read failed, HMM file %s may be truncated?", cfg->hmmfile); break; + case eslEFORMAT: p7_Fail("bad file format in HMM file %s", cfg->hmmfile); break; + case eslEINCOMPAT: p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile); break; + case eslEOF: /* do nothing. EOF is what we want. */ break; + default: p7_Fail("Unexpected error (%d) in reading HMMs from %s", hstatus, cfg->hmmfile); + } + + + /* Terminate outputs... any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go); + if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go); + if (pfamtblfp) p7_tophits_TabularTail(pfamtblfp,"hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go); + if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Cleanup - prepare for exit + */ + for (i = 0; i < infocnt; ++i) + p7_bg_Destroy(info[i].bg); + +#ifdef HMMER_THREADS + if (ncpus > 0) + { + esl_workqueue_Reset(queue); + while (esl_workqueue_Remove(queue, (void **) &block) == eslOK) + esl_sq_DestroyBlock(block); + esl_workqueue_Destroy(queue); + esl_threads_Destroy(threadObj); + } +#endif + + free(info); + p7_hmmfile_Close(hfp); + esl_sqfile_Close(dbfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + + if (ofp != stdout) fclose(ofp); + if (afp) fclose(afp); + if (tblfp) fclose(tblfp); + if (domtblfp) fclose(domtblfp); + if (pfamtblfp) fclose(pfamtblfp); + + return eslOK; + + ERROR: + return eslFAIL; +} + +#ifdef HMMER_MPI + +/* Define common tags used by the MPI master/slave processes */ +#define HMMER_ERROR_TAG 1 +#define HMMER_HMM_TAG 2 +#define HMMER_SEQUENCE_TAG 3 +#define HMMER_BLOCK_TAG 4 +#define HMMER_PIPELINE_TAG 5 +#define HMMER_TOPHITS_TAG 6 +#define HMMER_HIT_TAG 7 +#define HMMER_TERMINATING_TAG 8 +#define HMMER_READY_TAG 9 + +/* mpi_failure() + * Generate an error message. If the clients rank is not 0, a + * message is created with the error message and sent to the + * master process for handling. + */ +static void +mpi_failure(char *format, ...) +{ + va_list argp; + int status = eslFAIL; + int len; + int rank; + char str[512]; + + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + /* format the error mesg */ + va_start(argp, format); + len = vsnprintf(str, sizeof(str), format, argp); + va_end(argp); + + /* make sure the error string is terminated */ + str[sizeof(str)-1] = '\0'; + + /* if the caller is the master, print the results and abort */ + if (rank == 0) + { + if (fprintf(stderr, "\nError: ") < 0) exit(eslEWRITE); + if (fprintf(stderr, "%s", str) < 0) exit(eslEWRITE); + if (fprintf(stderr, "\n") < 0) exit(eslEWRITE); + fflush(stderr); + + MPI_Abort(MPI_COMM_WORLD, status); + exit(1); + } + else + { + MPI_Send(str, len, MPI_CHAR, 0, HMMER_ERROR_TAG, MPI_COMM_WORLD); + pause(); + } +} + +#define MAX_BLOCK_SIZE (512*1024) + +typedef struct { + uint64_t offset; + uint64_t length; + uint64_t count; +} SEQ_BLOCK; + +typedef struct { + int complete; + int size; + int current; + int last; + SEQ_BLOCK *blocks; +} BLOCK_LIST; + +/* this routine parses the database keeping track of the blocks + * offset within the file, number of sequences and the length + * of the block. These blocks are passed as work units to the + * MPI workers. If multiple hmm's are in the query file, the + * blocks are reused without parsing the database a second time. + */ +int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block, int n_targetseqs) +{ + int status = eslOK; + + /* if the list has been calculated, use it instead of parsing the database */ + if (list->complete) + { + if (list->current == list->last) + { + block->offset = 0; + block->length = 0; + block->count = 0; + + status = eslEOF; + } + else + { + int inx = list->current++; + + block->offset = list->blocks[inx].offset; + block->length = list->blocks[inx].length; + block->count = list->blocks[inx].count; + + status = eslOK; + } + + return status; + } + + block->offset = 0; + block->length = 0; + block->count = 0; + + esl_sq_Reuse(sq); + if (n_targetseqs == 0) status = eslEOF; //this is to handle the end-case of a restrictdb scenario, where no more targets are required, and we want to mark the list as complete + while (block->length < MAX_BLOCK_SIZE && (n_targetseqs <0 || block->count < n_targetseqs) && (status = esl_sqio_ReadInfo(sqfp, sq)) == eslOK) + { + if (block->count == 0) block->offset = sq->roff; + block->length = sq->eoff - block->offset + 1; + block->count++; + esl_sq_Reuse(sq); + } + + if (block->count > 0) + if (status == eslEOF || block->count == n_targetseqs) + status = eslOK; + if (status == eslEOF) list->complete = 1; + + /* add the block to the list of known blocks */ + if (status == eslOK) + { + int inx; + + if (list->last >= list->size) + { + void *tmp; + list->size += 500; + ESL_RALLOC(list->blocks, tmp, sizeof(SEQ_BLOCK) * list->size); + } + + inx = list->last++; + list->blocks[inx].offset = block->offset; + list->blocks[inx].length = block->length; + list->blocks[inx].count = block->count; + } + + return status; + + ERROR: + return eslEMEM; +} + +/* mpi_master() + * The MPI version of hmmbuild. + * Follows standard pattern for a master/worker load-balanced MPI program (J1/78-79). + * + * A master can only return if it's successful. + * Errors in an MPI master come in two classes: recoverable and nonrecoverable. + * + * Recoverable errors include all worker-side errors, and any + * master-side error that do not affect MPI communication. Error + * messages from recoverable messages are delayed until we've cleanly + * shut down the workers. + * + * Unrecoverable errors are master-side errors that may affect MPI + * communication, meaning we cannot count on being able to reach the + * workers and shut them down. Unrecoverable errors result in immediate + * p7_Fail()'s, which will cause MPI to shut down the worker processes + * uncleanly. + */ +static int +mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* results output file (-o) */ + FILE *afp = NULL; /* alignment output file (-A) */ + FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */ + FILE *domtblfp = NULL; /* output stream for tabular per-dom (--domtblout) */ + FILE *pfamtblfp= NULL; /* output stream for pfam-style tabular output (--pfamtblout) */ + P7_BG *bg = NULL; /* null model */ + P7_HMMFILE *hfp = NULL; /* open input HMM file */ + ESL_SQFILE *dbfp = NULL; /* open input sequence file */ + P7_HMM *hmm = NULL; /* one HMM query */ + ESL_SQ *dbsq = NULL; /* one target sequence (digital) */ + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + int dbfmt = eslSQFILE_UNKNOWN; /* format code for sequence database file */ + ESL_STOPWATCH *w; + int textw = 0; + int nquery = 0; + int status = eslOK; + int hstatus = eslOK; + int sstatus = eslOK; + int dest; + + char *mpi_buf = NULL; /* buffer used to pack/unpack structures */ + int mpi_size = 0; /* size of the allocated buffer */ + BLOCK_LIST *list = NULL; + SEQ_BLOCK block; + + int i; + int size; + MPI_Status mpistatus; + char errbuf[eslERRBUFSIZE]; + + int n_targets; + + w = esl_stopwatch_Create(); + + if (esl_opt_GetBoolean(go, "--notextw")) textw = 0; + else textw = esl_opt_GetInteger(go, "--textw"); + + if (esl_opt_IsOn(go, "--tformat")) { + dbfmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbfmt == eslSQFILE_UNKNOWN) mpi_failure("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + /* Open the target sequence database */ + status = esl_sqfile_Open(cfg->dbfile, dbfmt, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) mpi_failure("Sequence file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure("Unexpected error %d opening sequence file %s\n", status, cfg->dbfile); + + if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) { + if (esl_opt_IsUsed(go, "--ssifile")) + esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile")); + else + esl_sqfile_OpenSSI(dbfp, NULL); + } + + + /* Open the query profile HMM file */ + status = p7_hmmfile_OpenE(cfg->hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) mpi_failure("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status == eslEFORMAT) mpi_failure("File format problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status != eslOK) mpi_failure("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf); + + /* Open the results output files */ + if (esl_opt_IsOn(go, "-o") && (ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) + mpi_failure("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); + + if (esl_opt_IsOn(go, "-A") && (afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) + mpi_failure("Failed to open alignment file %s for writing\n", esl_opt_GetString(go, "-A")); + + if (esl_opt_IsOn(go, "--tblout") && (tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) + mpi_failure("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblout")); + + if (esl_opt_IsOn(go, "--domtblout") && (domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) + mpi_failure("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblout")); + + if (esl_opt_IsOn(go, "--pfamtblout") && (pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL) + mpi_failure("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout")); + + ESL_ALLOC(list, sizeof(BLOCK_LIST)); + list->complete = 0; + list->size = 0; + list->current = 0; + list->last = 0; + list->blocks = NULL; + + /* is not known 'til first HMM is read. */ + hstatus = p7_hmmfile_Read(hfp, &abc, &hmm); + if (hstatus == eslOK) + { + /* One-time initializations after alphabet becomes known */ + output_header(ofp, go, cfg->hmmfile, cfg->dbfile); + dbsq = esl_sq_CreateDigital(abc); + bg = p7_bg_Create(abc); + } + + + if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general + sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key); + if (sstatus != eslOK) + p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key); + } + + /* Outer loop: over each query HMM in . */ + while (hstatus == eslOK) + { + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; /* optimized query profile */ + P7_PIPELINE *pli = NULL; + P7_TOPHITS *th = NULL; + int seq_cnt = 0; + nquery++; + esl_stopwatch_Start(w); + + n_targets = cfg->n_targetseq; + + /* seqfile may need to be rewound (multiquery mode) */ + if (nquery > 1) list->current = 0; + + if (fprintf(ofp, "Query: %s [M=%d]\n", hmm->name, hmm->M) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (hmm->acc) { if (fprintf(ofp, "Accession: %s\n", hmm->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + if (hmm->desc) { if (fprintf(ofp, "Description: %s\n", hmm->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Convert to an optimized model */ + gm = p7_profile_Create (hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 100, p7_LOCAL); + p7_oprofile_Convert(gm, om); + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(go, hmm->M, 100, FALSE, p7_SEARCH_SEQS); + p7_pli_NewModel(pli, om, bg); + + /* Main loop: */ + while ((n_targets==-1 || seq_cnt<=n_targets) && (sstatus = next_block(dbfp, dbsq, list, &block, n_targets-seq_cnt)) == eslOK ) + { + seq_cnt += block.count; + + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_READY_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + + MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD); + } + + if (n_targets!=-1 && seq_cnt==n_targets) + sstatus = eslEOF; + + switch(sstatus) + { + case eslEFORMAT: + mpi_failure("Parse failed (sequence file %s):\n%s\n", dbfp->filename, esl_sqfile_GetErrorBuf(dbfp)); + break; + case eslEOF: + break; + default: + mpi_failure("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename); + } + + block.offset = 0; + block.length = 0; + block.count = 0; + + /* wait for all workers to finish up their work blocks */ + for (i = 1; i < cfg->nproc; ++i) + { + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_READY_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + } + + /* merge the results of the search results */ + for (dest = 1; dest < cfg->nproc; ++dest) + { + P7_PIPELINE *mpi_pli = NULL; + P7_TOPHITS *mpi_th = NULL; + + /* send an empty block to signal the worker they are done */ + MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD); + + /* wait for the results */ + if ((status = p7_tophits_MPIRecv(dest, HMMER_TOPHITS_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, &mpi_th)) != eslOK) + mpi_failure("Unexpected error %d receiving tophits from %d", status, dest); + + if ((status = p7_pipeline_MPIRecv(dest, HMMER_PIPELINE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, go, &mpi_pli)) != eslOK) + mpi_failure("Unexpected error %d receiving pipeline from %d", status, dest); + + p7_tophits_Merge(th, mpi_th); + p7_pipeline_Merge(pli, mpi_pli); + + p7_pipeline_Destroy(mpi_pli); + p7_tophits_Destroy(mpi_th); + } + + /* Print the results. */ + p7_tophits_SortBySortkey(th); + p7_tophits_Threshold(th, pli); + p7_tophits_Targets(ofp, th, pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, th, pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (tblfp) p7_tophits_TabularTargets(tblfp, hmm->name, hmm->acc, th, pli, (nquery == 1)); + if (domtblfp) p7_tophits_TabularDomains(domtblfp, hmm->name, hmm->acc, th, pli, (nquery == 1)); + if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, hmm->name, hmm->acc, th, pli); + + esl_stopwatch_Stop(w); + p7_pli_Statistics(ofp, pli, w); + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Output the results in an MSA (-A option) */ + if (afp) { + ESL_MSA *msa = NULL; + + if (p7_tophits_Alignment(th, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) == eslOK) + { + esl_msa_SetName (msa, hmm->name, -1); + esl_msa_SetAccession(msa, hmm->acc, -1); + esl_msa_SetDesc (msa, hmm->desc, -1); + esl_msa_FormatAuthor(msa, "hmmsearch (HMMER %s)", HMMER_VERSION); + + if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM); + else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM); + + if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + else { if (fprintf(ofp, "# No hits satisfy inclusion thresholds; no alignment saved\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + esl_msa_Destroy(msa); + } + + p7_pipeline_Destroy(pli); + p7_tophits_Destroy(th); + p7_hmm_Destroy(hmm); + + hstatus = p7_hmmfile_Read(hfp, &abc, &hmm); + } /* end outer loop over query HMMs */ + + switch(hstatus) { + case eslEOD: mpi_failure("read failed, HMM file %s may be truncated?", cfg->hmmfile); break; + case eslEFORMAT: mpi_failure("bad file format in HMM file %s", cfg->hmmfile); break; + case eslEINCOMPAT: mpi_failure("HMM file %s contains different alphabets", cfg->hmmfile); break; + case eslEOF: /* EOF is good, that's what we expect here */ break; + default: mpi_failure("Unexpected error (%d) in reading HMMs from %s", hstatus, cfg->hmmfile); + } + + /* monitor all the workers to make sure they have ended */ + for (i = 1; i < cfg->nproc; ++i) + { + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_TERMINATING_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + } + + /* Terminate outputs... any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go); + if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go); + if (pfamtblfp)p7_tophits_TabularTail(pfamtblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go); + if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Cleanup - prepare for exit + */ + free(list); + if (mpi_buf != NULL) free(mpi_buf); + + p7_hmmfile_Close(hfp); + esl_sqfile_Close(dbfp); + + p7_bg_Destroy(bg); + esl_sq_Destroy(dbsq); + esl_stopwatch_Destroy(w); + + if (ofp != stdout) fclose(ofp); + if (afp) fclose(afp); + if (tblfp) fclose(tblfp); + if (domtblfp) fclose(domtblfp); + if (pfamtblfp) fclose(pfamtblfp); + + return eslOK; + + ERROR: + return eslEMEM; +} + + +static int +mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + P7_HMM *hmm = NULL; /* one HMM query */ + ESL_SQ *dbsq = NULL; /* one target sequence (digital) */ + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + P7_BG *bg = NULL; /* null model */ + P7_HMMFILE *hfp = NULL; /* open input HMM file */ + ESL_SQFILE *dbfp = NULL; /* open input sequence file */ + int dbfmt = eslSQFILE_UNKNOWN; /* format code for sequence database file */ + ESL_STOPWATCH *w; + int status = eslOK; + int hstatus = eslOK; + int sstatus = eslOK; + + char *mpi_buf = NULL; /* buffer used to pack/unpack structures */ + int mpi_size = 0; /* size of the allocated buffer */ + + MPI_Status mpistatus; + char errbuf[eslERRBUFSIZE]; + + w = esl_stopwatch_Create(); + + /* Open the target sequence database */ + status = esl_sqfile_Open(cfg->dbfile, dbfmt, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) mpi_failure("Sequence file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure("Unexpected error %d opening sequence file %s\n", status, cfg->dbfile); + + /* Open the query profile HMM file */ + status = p7_hmmfile_OpenE(cfg->hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) mpi_failure("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status == eslEFORMAT) mpi_failure("File format problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status != eslOK) mpi_failure("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf); + + /* is not known 'til first HMM is read. */ + hstatus = p7_hmmfile_Read(hfp, &abc, &hmm); + if (hstatus == eslOK) + { + /* One-time initializations after alphabet becomes known */ + dbsq = esl_sq_CreateDigital(abc); + bg = p7_bg_Create(abc); + esl_sqfile_SetDigital(dbfp, abc); + } + + /* Outer loop: over each query HMM in . */ + while (hstatus == eslOK) + { + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; /* optimized query profile */ + P7_PIPELINE *pli = NULL; + P7_TOPHITS *th = NULL; + + SEQ_BLOCK block; + + esl_stopwatch_Start(w); + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_READY_TAG, MPI_COMM_WORLD); + + /* Convert to an optimized model */ + gm = p7_profile_Create (hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 100, p7_LOCAL); + p7_oprofile_Convert(gm, om); + + th = p7_tophits_Create(); + pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */ + p7_pli_NewModel(pli, om, bg); + + /* receive a sequence block from the master */ + MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, HMMER_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus); + while (block.count > 0) + { + uint64_t length = 0; + uint64_t count = block.count; + + status = esl_sqfile_Position(dbfp, block.offset); + if (status != eslOK) mpi_failure("Cannot position sequence database to %ld\n", block.offset); + + while (count > 0 && (sstatus = esl_sqio_Read(dbfp, dbsq)) == eslOK) + { + length = dbsq->eoff - block.offset + 1; + + p7_pli_NewSeq(pli, dbsq); + p7_bg_SetLength(bg, dbsq->n); + p7_oprofile_ReconfigLength(om, dbsq->n); + + p7_Pipeline(pli, om, bg, dbsq, NULL, th); + + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(pli); + + --count; + } + + /* lets do a little bit of sanity checking here to make sure the blocks are the same */ + if (count > 0) mpi_failure("Block count mismatch - expected %ld found %ld at offset %ld\n", block.count, block.count - count, block.offset); + if (block.length != length) mpi_failure("Block length mismatch - expected %ld found %ld at offset %ld\n", block.length, length, block.offset); + + /* inform the master we need another block of sequences */ + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_READY_TAG, MPI_COMM_WORLD); + + /* wait for the next block of sequences */ + MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, HMMER_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus); + } + + esl_stopwatch_Stop(w); + + /* Send the top hits back to the master. */ + p7_tophits_MPISend(th, 0, HMMER_TOPHITS_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + p7_pipeline_MPISend(pli, 0, HMMER_PIPELINE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + + p7_pipeline_Destroy(pli); + p7_tophits_Destroy(th); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); + + hstatus = p7_hmmfile_Read(hfp, &abc, &hmm); + } /* end outer loop over query HMMs */ + + switch(hstatus) + { + case eslEOF: + /* do nothing */ + break; + case eslEFORMAT: + mpi_failure("bad file format in HMM file %s", cfg->hmmfile); + break; + case eslEINCOMPAT: + mpi_failure("HMM file %s contains different alphabets", cfg->hmmfile); + break; + default: + mpi_failure("Unexpected error (%d) in reading HMMs from %s", hstatus, cfg->hmmfile); + } + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_TERMINATING_TAG, MPI_COMM_WORLD); + + if (mpi_buf != NULL) free(mpi_buf); + + p7_hmmfile_Close(hfp); + esl_sqfile_Close(dbfp); + + p7_bg_Destroy(bg); + esl_sq_Destroy(dbsq); + esl_stopwatch_Destroy(w); + + return eslOK; +} +#endif /*HMMER_MPI*/ + +static int +serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int n_targetseqs) +{ + int sstatus; + ESL_SQ *dbsq = NULL; /* one target sequence (digital) */ + int seq_cnt = 0; + + dbsq = esl_sq_CreateDigital(info->om->abc); + + /* Main loop: */ + while ( (n_targetseqs==-1 || seq_cntpli, dbsq); + p7_bg_SetLength(info->bg, dbsq->n); + p7_oprofile_ReconfigLength(info->om, dbsq->n); + + p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th); + + seq_cnt++; + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(info->pli); + } + + if (n_targetseqs!=-1 && seq_cnt==n_targetseqs) + sstatus = eslEOF; + + esl_sq_Destroy(dbsq); + + return sstatus; +} + +#ifdef HMMER_THREADS +static int +thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, int n_targetseqs) +{ + int status = eslOK; + int sstatus = eslOK; + int eofCount = 0; + ESL_SQ_BLOCK *block; + void *newBlock; + + esl_workqueue_Reset(queue); + esl_threads_WaitForStart(obj); + + status = esl_workqueue_ReaderUpdate(queue, NULL, &newBlock); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + /* Main loop: */ + while (sstatus == eslOK ) + { + block = (ESL_SQ_BLOCK *) newBlock; + + if (n_targetseqs == 0) + { + block->count = 0; + sstatus = eslEOF; + } else { + sstatus = esl_sqio_ReadBlock(dbfp, block, -1, n_targetseqs, /*max_init_window=*/FALSE, FALSE); + n_targetseqs -= block->count; + } + + if (sstatus == eslEOF) + { + if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK; + ++eofCount; + } + + if (sstatus == eslOK) + { + status = esl_workqueue_ReaderUpdate(queue, block, &newBlock); + if (status != eslOK) esl_fatal("Work queue reader failed"); + } + } + + status = esl_workqueue_ReaderUpdate(queue, block, NULL); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + if (sstatus == eslEOF) + { + /* wait for all the threads to complete */ + esl_threads_WaitForFinish(obj); + esl_workqueue_Complete(queue); + } + + return sstatus; +} + +static void +pipeline_thread(void *arg) +{ + int i; + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + + ESL_SQ_BLOCK *block = NULL; + void *newBlock; + + impl_Init(); + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + /* loop until all blocks have been processed */ + block = (ESL_SQ_BLOCK *) newBlock; + while (block->count > 0) + { + /* Main loop: */ + for (i = 0; i < block->count; ++i) + { + ESL_SQ *dbsq = block->list + i; + + p7_pli_NewSeq(info->pli, dbsq); + p7_bg_SetLength(info->bg, dbsq->n); + p7_oprofile_ReconfigLength(info->om, dbsq->n); + + p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th); + + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(info->pli); + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, &newBlock); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + block = (ESL_SQ_BLOCK *) newBlock; + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, NULL); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + esl_threads_Finished(obj, workeridx); + return; +} +#endif /* HMMER_THREADS */ + + + diff --git a/bioinformaticsProject/hmmer/src/hmmsim.c b/bioinformaticsProject/hmmer/src/hmmsim.c new file mode 100644 index 0000000..fa1be79 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmsim.c @@ -0,0 +1,966 @@ +/* hmmsim: scoring profile HMMs against simulated sequences. + * + * Main testbed for exploring the statistical behavior of HMMER3 + * scores on random sequences. + */ +#include "p7_config.h" + +#include +#include +#include +#include + +#ifdef HMMER_MPI +#include "mpi.h" +#endif + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_stats.h" +#include "esl_exponential.h" +#include "esl_dmatrix.h" +#include "esl_getopts.h" +#include "esl_gumbel.h" +#include "esl_histogram.h" +#include "esl_mpi.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_ratematrix.h" +#include "esl_stopwatch.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +#define ALGORITHMS "--fwd,--vit,--hyb,--msv" /* Exclusive choice for scoring algorithms */ +#define STYLES "--fs,--sw,--ls,--s" /* Exclusive choice for alignment mode */ + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "-a", eslARG_NONE, FALSE, NULL, NULL, NULL,"--vit",NULL, "obtain alignment length statistics too", 1 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "verbose: print scores", 1 }, + { "-L", eslARG_INT, "100", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 1 }, + { "-N", eslARG_INT, "1000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 1 }, +#ifdef HMMER_MPI + { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "run as an MPI parallel program", 1 }, +#endif + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { "--afile", eslARG_OUTFILE, NULL, NULL, NULL, NULL, "-a", NULL, "output alignment lengths to file ", 2 }, + { "--efile", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output E vs. E plots to in xy format", 2 }, + { "--ffile", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output filter fraction: # seqs passing P thresh", 2 }, + { "--pfile", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output P(S>x) plots to in xy format", 2 }, + { "--xfile", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output bitscores as binary double vector to ", 2 }, + + { "--fs", eslARG_NONE,"default",NULL, NULL, STYLES, NULL, NULL, "multihit local alignment", 3 }, + { "--sw", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit local alignment", 3 }, + { "--ls", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "multihit glocal alignment", 3 }, + { "--s", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit glocal alignment", 3 }, + + { "--vit", eslARG_NONE,"default",NULL, NULL, ALGORITHMS, NULL, NULL, "score seqs with the Viterbi algorithm", 4 }, + { "--fwd", eslARG_NONE, FALSE, NULL, NULL, ALGORITHMS, NULL, NULL, "score seqs with the Forward algorithm", 4 }, + { "--hyb", eslARG_NONE, FALSE, NULL, NULL, ALGORITHMS, NULL, NULL, "score seqs with the Hybrid algorithm", 4 }, + { "--msv", eslARG_NONE, FALSE, NULL, NULL, ALGORITHMS, NULL, NULL, "score seqs with the MSV algorithm", 4 }, + { "--fast", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use the optimized versions of the above", 4 }, + + { "--tmin", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, NULL, "set lower bound tail mass for fwd,island", 5 }, + { "--tmax", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, NULL, "set lower bound tail mass for fwd,island", 5 }, + { "--tpoints", eslARG_INT, "1", NULL, NULL, NULL, NULL, NULL, "set number of tail probs to try", 5 }, + { "--tlinear", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use linear not log spacing of tail probs", 5 }, + + { "--EmL", eslARG_INT, "200", NULL, "n>0", NULL, NULL, NULL, "length of sequences for MSV Gumbel mu fit", 6 }, + { "--EmN", eslARG_INT, "200", NULL, "n>0", NULL, NULL, NULL, "number of sequences for MSV Gumbel mu fit", 6 }, + { "--EvL", eslARG_INT, "200", NULL, "n>0", NULL, NULL, NULL, "length of sequences for Viterbi Gumbel mu fit", 6 }, + { "--EvN", eslARG_INT, "200", NULL, "n>0", NULL, NULL, NULL, "number of sequences for Viterbi Gumbel mu fit", 6 }, + { "--EfL", eslARG_INT, "100", NULL, "n>0", NULL, NULL, NULL, "length of sequences for Forward exp tail tau fit", 6 }, + { "--EfN", eslARG_INT, "200", NULL, "n>0", NULL, NULL, NULL, "number of sequences for Forward exp tail tau fit", 6 }, + { "--Eft", eslARG_REAL, "0.04", NULL, "0", 7 }, + + { "--bgflat", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "set uniform background frequencies", 8 }, + { "--bgcomp", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "set bg frequencies to model's average composition", 8 }, + { "--x-no-lengthmodel", eslARG_NONE, FALSE,NULL,NULL, NULL, NULL, NULL, "turn the H3 length model off", 8 }, + { "--nu", eslARG_REAL, "2.0", NULL, NULL, NULL,"--msv","--fast", "set nu parameter (# expected HSPs) for GMSV", 8 }, + { "--pthresh", eslARG_REAL, "0.02",NULL, NULL, NULL,"--ffile", NULL, "set P-value threshold for --ffile", 8 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options] "; +static char banner[] = "collect profile HMM score distributions on random sequences"; + + + +/* struct cfg_s : "Global" application configuration shared by all threads/processes. + * + * This structure is passed to routines within main.c, as a means of semi-encapsulation + * of shared data amongst different parallel processes (threads or MPI processes). + */ +struct cfg_s { + /* Shared configuration in masters & workers */ + char *hmmfile; /* name of input HMM file */ + ESL_RANDOMNESS *r; /* randomness source */ + ESL_ALPHABET *abc; /* alphabet type, eslAMINO */ + P7_BG *bg; /* background model */ + int my_rank; /* 0 in masters, >0 in workers */ + int nproc; /* 1 in serial mode, >1 in MPI */ + int do_mpi; /* TRUE if we're --mpi */ + int do_stall; /* TRUE to stall for MPI debugging */ + int N; /* number of simulated seqs per HMM */ + int L; /* length of simulated seqs */ + + /* Masters only (i/o streams) */ + P7_HMMFILE *hfp; /* open input HMM file stream */ + FILE *ofp; /* output file for results (default is stdout) */ + FILE *survfp; /* optional output for survival plots */ + FILE *efp; /* optional output for E vs. E plots */ + FILE *ffp; /* optional output for filter power data */ + FILE *xfp; /* optional output for binary score vectors */ + FILE *alfp; /* optional output for alignment lengths */ +}; + + +static int init_master_cfg(ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf); + +static void serial_master (ESL_GETOPTS *go, struct cfg_s *cfg); +#ifdef HMMER_MPI +static void mpi_master (ESL_GETOPTS *go, struct cfg_s *cfg); +static void mpi_worker (ESL_GETOPTS *go, struct cfg_s *cfg); +static int minimum_mpi_working_buffer(ESL_GETOPTS *go, int N, int *ret_wn); +#endif +static int process_workunit (ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf, P7_HMM *hmm, double *scores, int *alilens, double *ret_mu, double *ret_lambda); +static int output_result (ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf, P7_HMM *hmm, double *scores, int *alilens, double mu, double lambda); +static int output_filter_power(ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf, P7_HMM *hmm, double *scores, double mu, double lambda); + +static int elide_length_model(P7_PROFILE *gm, P7_BG *bg); + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; + ESL_STOPWATCH *w = esl_stopwatch_Create(); + struct cfg_s cfg; + + + /* Process command line options. + */ + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK || + esl_opt_VerifyConfig(go) != eslOK) + { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_usage(stdout, argv[0], usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + exit(1); + } + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + puts("\nCommon options:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1=docgroup, 2 = indentation; 80=textwidth*/ + puts("\nOutput options (only in serial mode, for single HMM input):"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + puts("\nAlternative alignment styles :"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 80); + puts("\nAlternative scoring algorithms :"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + puts("\nControlling range of fitted tail masses :"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + puts("\nControlling E-value calibration :"); + esl_opt_DisplayHelp(stdout, go, 6, 2, 80); + puts("\nDebugging :"); + esl_opt_DisplayHelp(stdout, go, 7, 2, 80); + puts("\nExperiments :"); + esl_opt_DisplayHelp(stdout, go, 8, 2, 80); + exit(0); + } + if (esl_opt_ArgNumber(go) != 1) + { + puts("Incorrect number of command line arguments."); + esl_usage(stdout, argv[0], usage); + puts("\nwhere general options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1=docgroup, 2 = indentation; 80=textwidth*/ + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + exit(1); + } + + + /* Initialize configuration shared across all kinds of masters + * and workers in this .c file. + */ + cfg.hmmfile = esl_opt_GetArg(go, 1); + cfg.r = esl_randomness_Create(esl_opt_GetInteger(go, "--seed")); + cfg.abc = NULL; + + cfg.my_rank = 0; /* MPI init will change this soon, if --mpi was set */ + cfg.nproc = 0; /* MPI init will change this soon, if --mpi was set */ + cfg.do_mpi = FALSE; /* --mpi will change this soon (below) if necessary */ + cfg.do_stall = esl_opt_GetBoolean(go, "--stall"); + cfg.N = esl_opt_GetInteger(go, "-N"); + cfg.L = esl_opt_GetInteger(go, "-L"); + cfg.hfp = NULL; + cfg.ofp = NULL; + cfg.survfp = NULL; + cfg.efp = NULL; + cfg.ffp = NULL; + cfg.xfp = NULL; + cfg.alfp = NULL; + cfg.bg = NULL; + + /* This is our stall point, if we need to wait until we get a + * debugger attached to this process for debugging (especially + * useful for MPI): + */ + while (cfg.do_stall); + + + /* Start timing. */ + esl_stopwatch_Start(w); + + + /* Main body: + * Handed off to serial version or MPI masters and workers as appropriate. + */ +#ifdef HMMER_MPI + if (esl_opt_GetBoolean(go, "--mpi")) + { + /* Initialize MPI, figure out who we are, and whether we're running + * this show (proc 0) or working in it (procs >0). + */ + cfg.do_mpi = TRUE; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &(cfg.my_rank)); + MPI_Comm_size(MPI_COMM_WORLD, &(cfg.nproc)); + if (cfg.my_rank == 0 && cfg.nproc < 2) p7_Fail("Need at least 2 MPI processes to run --mpi mode."); + + if (cfg.my_rank > 0) mpi_worker(go, &cfg); + else mpi_master(go, &cfg); + + esl_stopwatch_Stop(w); + esl_stopwatch_MPIReduce(w, 0, MPI_COMM_WORLD); + MPI_Finalize(); /* both workers and masters reach this line */ + } + else +#endif /*HMMER_MPI*/ + { + /* No MPI? Then we're just the serial master. */ + serial_master(go, &cfg); + esl_stopwatch_Stop(w); + } + + /* Stop timing. */ + if (cfg.my_rank == 0) esl_stopwatch_Display(stdout, w, "# CPU time: "); + + /* Clean up and exit. */ + if (cfg.my_rank == 0) { + if (cfg.hfp != NULL) p7_hmmfile_Close(cfg.hfp); + if (esl_opt_IsOn(go, "-o")) fclose(cfg.ofp); + if (cfg.survfp != NULL) fclose(cfg.survfp); + if (cfg.efp != NULL) fclose(cfg.efp); + if (cfg.ffp != NULL) fclose(cfg.ffp); + if (cfg.xfp != NULL) fclose(cfg.xfp); + if (cfg.alfp != NULL) fclose(cfg.alfp); + } + p7_bg_Destroy(cfg.bg); + esl_alphabet_Destroy(cfg.abc); + esl_randomness_Destroy(cfg.r); + esl_getopts_Destroy(go); + esl_stopwatch_Destroy(w); + return eslOK; +} + +/* init_master_cfg() + * Called by either master version, mpi or serial. + * Already set: + * cfg->hmmfile - command line arg + * Sets: + * cfg->hfp - open HMM stream + * cfg->ofp - open output steam + * cfg->survfp - open xmgrace survival plot file + * cfg->efp - open E vs. E plot file + * cfg->ffp - open filter power data file + * cfg->xfp - open binary score file + * cfg->alfp - open alignment length file + * + * Error handling relies on the result pointers being initialized to + * NULL by the caller. + * + * Errors in the MPI master here are considered to be "recoverable", + * in the sense that we'll try to delay output of the error message + * until we've cleanly shut down the worker processes. Therefore + * errors return (code, errmsg) by the ESL_FAIL mech. + */ +static int +init_master_cfg(ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf) +{ + char *filename; + int status; + + status = p7_hmmfile_OpenE(cfg->hmmfile, NULL, &(cfg->hfp), NULL); + if (status == eslENOTFOUND) ESL_FAIL(eslFAIL, errbuf, "Failed to open HMM file %s for reading.\n", cfg->hmmfile); + else if (status == eslEFORMAT) ESL_FAIL(eslFAIL, errbuf, "File %s does not appear to be in a recognized HMM format.\n", cfg->hmmfile); + else if (status != eslOK) ESL_FAIL(eslFAIL, errbuf, "Unexpected error %d in opening HMM file %s.\n", status, cfg->hmmfile); + + filename = esl_opt_GetString(go, "-o"); + if (filename != NULL) + { + if ((cfg->ofp = fopen(filename, "w")) == NULL) + ESL_FAIL(eslFAIL, errbuf, "Failed to open -o output file %s\n", filename); + } + else cfg->ofp = stdout; + + filename = esl_opt_GetString(go, "--pfile"); + if (filename != NULL) + { + if ((cfg->survfp = fopen(filename, "w")) == NULL) + ESL_FAIL(eslFAIL, errbuf, "Failed to open --pfile output file %s\n", filename); + } + + filename = esl_opt_GetString(go, "--efile"); + if (filename != NULL) + { + if ((cfg->efp = fopen(filename, "w")) == NULL) + ESL_FAIL(eslFAIL, errbuf, "Failed to open --efile output file %s\n", filename); + } + + filename = esl_opt_GetString(go, "--ffile"); + if (filename != NULL) + { + if ((cfg->ffp = fopen(filename, "w")) == NULL) + ESL_FAIL(eslFAIL, errbuf, "Failed to open --ffile output file %s\n", filename); + } + + filename = esl_opt_GetString(go, "--xfile"); + if (filename != NULL) + { + if ((cfg->xfp = fopen(filename, "w")) == NULL) + ESL_FAIL(eslFAIL, errbuf, "Failed to open --xfile output file %s\n", filename); + } + + filename = esl_opt_GetString(go, "--afile"); + if (filename != NULL) + { + if ((cfg->alfp = fopen(filename, "w")) == NULL) + ESL_FAIL(eslFAIL, errbuf, "Failed to open --afile output file %s\n", filename); + } + + return eslOK; +} + + + + +static void +serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + P7_HMM *hmm = NULL; + double *xv = NULL; /* results: array of N scores */ + int *av = NULL; /* optional results: array of N alignment lengths */ + double mu, lambda; + char errbuf[eslERRBUFSIZE]; + int status; + + + if ((status = init_master_cfg(go, cfg, errbuf)) != eslOK) p7_Fail(errbuf); + if ((xv = malloc(sizeof(double) * cfg->N)) == NULL) p7_Fail("allocation failed"); + if (esl_opt_GetBoolean(go, "-a") && + (av = malloc(sizeof(int) * cfg->N)) == NULL) p7_Fail("allocation failed"); + + while ((status = p7_hmmfile_Read(cfg->hfp, &(cfg->abc), &hmm)) != eslEOF) + { + if (status == eslEOD) p7_Fail("read failed, HMM file %s may be truncated?", cfg->hmmfile); + else if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", cfg->hmmfile); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", cfg->hmmfile); + + if (cfg->bg == NULL) { + if (esl_opt_GetBoolean(go, "--bgflat")) cfg->bg = p7_bg_CreateUniform(cfg->abc); + else cfg->bg = p7_bg_Create(cfg->abc); + p7_bg_SetLength(cfg->bg, esl_opt_GetInteger(go, "-L")); /* set the null model background length in both master and workers. */ + } + + if (process_workunit(go, cfg, errbuf, hmm, xv, av, &mu, &lambda) != eslOK) p7_Fail(errbuf); + if (output_result (go, cfg, errbuf, hmm, xv, av, mu, lambda) != eslOK) p7_Fail(errbuf); + + p7_hmm_Destroy(hmm); + } + free(xv); + if (av != NULL) free(av); +} + + +#ifdef HMMER_MPI +/* mpi_master() + * The MPI version of hmmsim. + * Follows standard pattern for a master/worker load-balanced MPI program (J1/78-79). + * + * A master can only return if it's successful. + * Errors in an MPI master come in two classes: recoverable and nonrecoverable. + * + * Recoverable errors include all worker-side errors, and any + * master-side error that do not affect MPI communication. Error + * messages from recoverable messages are delayed until we've cleanly + * shut down the workers. + * + * Unrecoverable errors are master-side errors that may affect MPI + * communication, meaning we cannot count on being able to reach the + * workers and shut them down. Unrecoverable errors result in immediate + * p7_Fail()'s, which will cause MPI to shut down the worker processes + * uncleanly. + */ +static void +mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + int xstatus = eslOK; /* changes in the event of a recoverable error */ + P7_HMM *hmm = NULL; /* query HMM */ + P7_HMM **hmmlist = NULL; /* queue of HMMs being worked on, 1..nproc-1 */ + char *wbuf = NULL; /* working buffer for sending packed profiles and receiving packed results. */ + int wn = 0; + double *xv = NULL; /* results: array of N scores */ + int *av = NULL; /* optional results: array of N alignment lengths */ + int have_work = TRUE; + int nproc_working = 0; + int wi; + int pos; + double mu, lambda; + char errbuf[eslERRBUFSIZE]; + int status; + MPI_Status mpistatus; + + + /* Master initialization. */ + if (init_master_cfg(go, cfg, errbuf) != eslOK) p7_Fail(errbuf); + if (minimum_mpi_working_buffer(go, cfg->N, &wn) != eslOK) p7_Fail("mpi pack sizes must have failed"); + ESL_ALLOC(wbuf, sizeof(char) * wn); + ESL_ALLOC(xv, sizeof(double) * cfg->N); + if (esl_opt_GetBoolean(go, "-a")) + ESL_ALLOC(av, sizeof(int) * cfg->N); + ESL_ALLOC(hmmlist, sizeof(P7_HMM *) * cfg->nproc); + for (wi = 0; wi < cfg->nproc; wi++) hmmlist[wi] = NULL; + + /* Standard design pattern for data parallelization in a master/worker model. (J1/78-79). */ + wi = 1; + while (have_work || nproc_working) + { + /* Get next work unit: one HMM, */ + if (have_work) + { + if ((status = p7_hmmfile_Read(cfg->hfp, &(cfg->abc), &hmm)) != eslOK) + { + have_work = FALSE; + if (status == eslEOD) { xstatus = status; sprintf(errbuf, "read failed, HMM file %s may be truncated?", cfg->hmmfile); } + else if (status == eslEFORMAT) { xstatus = status; sprintf(errbuf, "bad file format in HMM file %s", cfg->hmmfile); } + else if (status == eslEINCOMPAT) { xstatus = status; sprintf(errbuf, "HMM file %s contains different alphabets", cfg->hmmfile); } + else if (status != eslEOF) { xstatus = status; sprintf(errbuf, "Unexpected error in reading HMMs from %s", cfg->hmmfile); } + + if (cfg->bg == NULL) { // first time only + if (esl_opt_GetBoolean(go, "--bgflat")) cfg->bg = p7_bg_CreateUniform(cfg->abc); + else cfg->bg = p7_bg_Create(cfg->abc); + } + //this next step is redundant, but it avoids a race condition above. + p7_bg_SetLength(cfg->bg, esl_opt_GetInteger(go, "-L")); /* set the null model background length in both master and workers. */ + } + } + + /* If we have work but no free workers, or we have no work but workers + * are still working, then wait for a result to return from any worker. + */ + if ( (have_work && nproc_working == cfg->nproc-1) || (! have_work && nproc_working > 0)) + { + if (MPI_Recv(wbuf, wn, MPI_PACKED, MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &mpistatus) != 0) p7_Fail("mpi recv failed"); + wi = mpistatus.MPI_SOURCE; + + /* Check the xstatus before printing results. + * If we're in a recoverable error state, we're only clearing worker results, prior to a clean failure + */ + if (xstatus == eslOK) + { + pos = 0; + if (MPI_Unpack(wbuf, wn, &pos, &xstatus, 1, MPI_INT, MPI_COMM_WORLD) != 0) p7_Fail("mpi unpack failed"); + if (xstatus == eslOK) /* worker reported success. Get the results. */ + { + if (MPI_Unpack(wbuf, wn, &pos, xv, cfg->N, MPI_DOUBLE, MPI_COMM_WORLD) != 0) p7_Fail("score vector unpack failed"); + if (esl_opt_GetBoolean(go, "-a") && + MPI_Unpack(wbuf, wn, &pos, av, cfg->N, MPI_INT, MPI_COMM_WORLD) != 0) p7_Fail("alilen vector unpack failed"); + if (MPI_Unpack(wbuf, wn, &pos, &mu, 1, MPI_DOUBLE, MPI_COMM_WORLD) != 0) p7_Fail("mu param unpack failed"); + if (MPI_Unpack(wbuf, wn, &pos, &lambda, 1, MPI_DOUBLE, MPI_COMM_WORLD) != 0) p7_Fail("lambda param unpack failed"); + if ((status = output_result(go, cfg, errbuf, hmmlist[wi], xv, av, mu, lambda)) != eslOK) xstatus = status; + } + else /* worker reported a user error. Get the errbuf. */ + { + if (MPI_Unpack(wbuf, wn, &pos, errbuf, eslERRBUFSIZE, MPI_CHAR, MPI_COMM_WORLD) != 0) p7_Fail("mpi unpack of errbuf failed"); + have_work = FALSE; + p7_hmm_Destroy(hmm); + } + } + p7_hmm_Destroy(hmmlist[wi]); + hmmlist[wi] = NULL; + nproc_working--; + } + + /* If we have work, assign it to a free worker; else, terminate the free worker. */ + if (have_work) + { + p7_hmm_MPISend(hmm, wi, 0, MPI_COMM_WORLD, &wbuf, &wn); + hmmlist[wi] = hmm; + wi++; + nproc_working++; + } + } + + /* Tell all the workers (1..nproc-1) to shut down by sending them a NULL workunit. */ + for (wi = 1; wi < cfg->nproc; wi++) + if (p7_hmm_MPISend(NULL, wi, 0, MPI_COMM_WORLD, &wbuf, &wn) != eslOK) p7_Fail("MPI HMM send failed"); + + + free(hmmlist); + free(wbuf); + free(xv); + if (av != NULL) free(av); + if (xstatus != eslOK) p7_Fail(errbuf); + else return; + + ERROR: + if (hmmlist != NULL) free(hmmlist); + if (wbuf != NULL) free(wbuf); + if (xv != NULL) free(xv); + if (av != NULL) free(av); + p7_Fail("Fatal error in mpi_master"); +} + + +/* mpi_worker() + * The main control for an MPI worker process. + */ +static void +mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + int status; + P7_HMM *hmm = NULL; + char *wbuf = NULL; + double *xv = NULL; /* result: array of N scores */ + int *av = NULL; /* optional result: array of N alignment lengths */ + int wn = 0; + char errbuf[eslERRBUFSIZE]; + int pos; + double mu, lambda; + + /* Worker initializes */ + if ((status = minimum_mpi_working_buffer(go, cfg->N, &wn)) != eslOK) goto ERROR; + ESL_ALLOC(wbuf, wn * sizeof(char)); + ESL_ALLOC(xv, cfg->N * sizeof(double) + 2); + if (esl_opt_GetBoolean(go, "-a")) + ESL_ALLOC(av, cfg->N * sizeof(int)); + + /* Main worker loop */ + while (p7_hmm_MPIRecv(0, 0, MPI_COMM_WORLD, &wbuf, &wn, &(cfg->abc), &hmm) == eslOK) + { + if (cfg->bg == NULL) { // first time only + if (esl_opt_GetBoolean(go, "--bgflat")) cfg->bg = p7_bg_CreateUniform(cfg->abc); + else cfg->bg = p7_bg_Create(cfg->abc); + } + if ((status = process_workunit(go, cfg, errbuf, hmm, xv, av, &mu, &lambda)) != eslOK) goto CLEANERROR; + + pos = 0; + MPI_Pack(&status, 1, MPI_INT, wbuf, wn, &pos, MPI_COMM_WORLD); + MPI_Pack(xv, cfg->N, MPI_DOUBLE, wbuf, wn, &pos, MPI_COMM_WORLD); + if (esl_opt_GetBoolean(go, "-a")) + MPI_Pack(av, cfg->N, MPI_INT, wbuf, wn, &pos, MPI_COMM_WORLD); + MPI_Pack(&mu, 1, MPI_DOUBLE, wbuf, wn, &pos, MPI_COMM_WORLD); + MPI_Pack(&lambda, 1, MPI_DOUBLE, wbuf, wn, &pos, MPI_COMM_WORLD); + MPI_Send(wbuf, pos, MPI_PACKED, 0, 0, MPI_COMM_WORLD); + + p7_hmm_Destroy(hmm); + } + + free(wbuf); + free(xv); + if (av != NULL) free(av); + return; + + CLEANERROR: + pos = 0; + MPI_Pack(&status, 1, MPI_INT, wbuf, wn, &pos, MPI_COMM_WORLD); + MPI_Pack(errbuf, eslERRBUFSIZE, MPI_CHAR, wbuf, wn, &pos, MPI_COMM_WORLD); + MPI_Send(wbuf, pos, MPI_PACKED, 0, 0, MPI_COMM_WORLD); + if (wbuf != NULL) free(wbuf); + if (hmm != NULL) p7_hmm_Destroy(hmm); + if (xv != NULL) free(xv); + if (av != NULL) free(av); + return; + + ERROR: + p7_Fail("Allocation error in mpi_worker"); +} +#endif /*HMMER_MPI*/ + + +/* process_workunit() + * + * This is the routine that actually does the work. + * + * A work unit consists of one HMM, . + * The result is the array, which contains an array of N scores; + * caller provides this memory. + * How those scores are generated is controlled by the application configuration in . + */ +static int +process_workunit(ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf, P7_HMM *hmm, double *scores, int *alilens, double *ret_mu, double *ret_lambda) +{ + int L = esl_opt_GetInteger(go, "-L"); + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *ox = NULL; + P7_TRACE *tr = NULL; + ESL_DSQ *dsq = NULL; + int i; + int status; + int scounts[p7T_NSTATETYPES]; /* state usage counts from a trace */ + float sc; + float nullsc; + double mu, lambda; + int EmL = esl_opt_GetInteger(go, "--EmL"); + int EmN = esl_opt_GetInteger(go, "--EmN"); + int EvL = esl_opt_GetInteger(go, "--EvL"); + int EvN = esl_opt_GetInteger(go, "--EvN"); + int EfL = esl_opt_GetInteger(go, "--EfL"); + int EfN = esl_opt_GetInteger(go, "--EfN"); + double Eft = esl_opt_GetReal (go, "--Eft"); + float nu = esl_opt_GetReal (go, "--nu"); + + + // reseed the RNG to its initial value, to allow reproduction of results + esl_randomness_Init(cfg->r, esl_opt_GetInteger(go, "--seed")); + /* Optionally set a custom background, determined by model composition; + * an experimental hack. + */ + if (esl_opt_GetBoolean(go, "--bgcomp")) + { + float *p = NULL; + float KL; + + p7_hmm_CompositionKLD(hmm, cfg->bg, &KL, &p); + esl_vec_FCopy(p, cfg->abc->K, cfg->bg->f); + } + + /* First pass: configure gm, om for local until after we've determined mu, lambda, tau params */ + gm = p7_profile_Create(hmm->M, cfg->abc); + p7_ProfileConfig(hmm, cfg->bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, cfg->abc); + p7_oprofile_Convert(gm, om); + + /* Determine E-value parameters (in addition to any that are already in the HMM structure) */ + p7_Lambda(hmm, cfg->bg, &lambda); + if (esl_opt_GetBoolean(go, "--vit")) p7_ViterbiMu(cfg->r, om, cfg->bg, EvL, EvN, lambda, &mu); + else if (esl_opt_GetBoolean(go, "--msv")) p7_MSVMu (cfg->r, om, cfg->bg, EmL, EmN, lambda, &mu); + else if (esl_opt_GetBoolean(go, "--fwd")) p7_Tau (cfg->r, om, cfg->bg, EfL, EfN, lambda, Eft, &mu); + else mu = 0.0; /* undetermined, for Hybrid, at least for now. */ + + /* Now reconfig the models however we were asked to */ + if (esl_opt_GetBoolean(go, "--fs")) p7_ProfileConfig(hmm, cfg->bg, gm, L, p7_LOCAL); + else if (esl_opt_GetBoolean(go, "--sw")) p7_ProfileConfig(hmm, cfg->bg, gm, L, p7_UNILOCAL); + else if (esl_opt_GetBoolean(go, "--ls")) p7_ProfileConfig(hmm, cfg->bg, gm, L, p7_GLOCAL); + else if (esl_opt_GetBoolean(go, "--s")) p7_ProfileConfig(hmm, cfg->bg, gm, L, p7_UNIGLOCAL); + + if (esl_opt_GetBoolean(go, "--x-no-lengthmodel")) elide_length_model(gm, cfg->bg); + + p7_oprofile_Convert(gm, om); + p7_bg_SetLength (cfg->bg, L); + + /* Remaining allocations */ + gx = p7_gmx_Create(gm->M, L); + ox = p7_omx_Create(gm->M, 0, L); + ESL_ALLOC(dsq, sizeof(ESL_DSQ) * (L+2)); + tr = p7_trace_Create(); + + /* Collect scores from N random sequences of length L */ + for (i = 0; i < cfg->N; i++) + { + esl_rsq_xfIID(cfg->r, cfg->bg->f, cfg->abc->K, L, dsq); + + if (esl_opt_GetBoolean(go, "--fast")) + { + if (esl_opt_GetBoolean(go, "--vit")) p7_ViterbiFilter(dsq, L, om, ox, &sc); + else if (esl_opt_GetBoolean(go, "--fwd")) p7_ForwardParser(dsq, L, om, ox, &sc); + else if (esl_opt_GetBoolean(go, "--msv")) p7_MSVFilter (dsq, L, om, ox, &sc); + } + + if (! esl_opt_GetBoolean(go, "--fast") || sc == eslINFINITY) /* note, if a filter overflows, failover to slow versions */ + { + if (esl_opt_GetBoolean(go, "--vit")) p7_GViterbi(dsq, L, gm, gx, &sc); + else if (esl_opt_GetBoolean(go, "--fwd")) p7_GForward(dsq, L, gm, gx, &sc); + else if (esl_opt_GetBoolean(go, "--hyb")) p7_GHybrid (dsq, L, gm, gx, NULL, &sc); + else if (esl_opt_GetBoolean(go, "--msv")) p7_GMSV (dsq, L, gm, gx, nu, &sc); + } + + /* Optional: get Viterbi alignment length too. */ + if (esl_opt_GetBoolean(go, "-a")) /* -a only works with Viterbi; getopts has checked this already */ + { + p7_GTrace(dsq, L, gm, gx, tr); + p7_trace_GetStateUseCounts(tr, scounts); + + /* there's various ways we could counts "alignment length". + * Here we'll use the total length of model used, in nodes: M+D states. + * score vs al would gives us relative entropy / model position. + */ + /* alilens[i] = scounts[p7T_D] + scounts[p7T_I]; SRE: temporarily testing this instead */ + alilens[i] = scounts[p7T_M] + scounts[p7T_D] + scounts[p7T_I]; + + p7_trace_Reuse(tr); + } + + p7_bg_NullOne(cfg->bg, dsq, L, &nullsc); + scores[i] = (sc - nullsc) / eslCONST_LOG2; + } + + *ret_mu = mu; + *ret_lambda = lambda; + status = eslOK; + + ERROR: + if (dsq != NULL) free(dsq); + p7_omx_Destroy(ox); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_gmx_Destroy(gx); + p7_trace_Destroy(tr); + if (status == eslEMEM) sprintf(errbuf, "allocation failure"); + return status; +} + + +static int +output_result(ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf, P7_HMM *hmm, double *scores, int *alilens, double pmu, double plambda) +{ + ESL_HISTOGRAM *h = NULL; + int i; + double tailp; + double x10; + double mu, lambda, E10; + double mufix, E10fix; + double mufix2, E10fix2; + double E10p; + double almean, alvar; /* alignment length mean and variance (optional output) */ + int status; + + + /* Optional output of scores/alignment lengths: + */ + if (cfg->xfp) fwrite(scores, sizeof(double), cfg->N, cfg->xfp); + if (cfg->alfp) for (i = 0; i < cfg->N; i++) fprintf(cfg->alfp, "%d %.3f\n", alilens[i], scores[i]); + if (esl_opt_GetBoolean(go, "-v")) for (i = 0; i < cfg->N; i++) printf("%.3f\n", scores[i]); + + /* optional "filter power" data file: <# seqs <= P threshold> */ + if (cfg->ffp) output_filter_power(go, cfg, errbuf, hmm, scores, pmu, plambda); + + /* Count the scores into a histogram object. */ + if ((h = esl_histogram_CreateFull(-50., 50., 0.2)) == NULL) ESL_XFAIL(eslEMEM, errbuf, "allocation failed"); + for (i = 0; i < cfg->N; i++) esl_histogram_Add(h, scores[i]); + + /* For viterbi, MSV, and hybrid, fit data to a Gumbel, either with known lambda or estimated lambda. */ + if (esl_opt_GetBoolean(go, "--vit") || esl_opt_GetBoolean(go, "--hyb") || esl_opt_GetBoolean(go, "--msv")) + { + esl_histogram_GetRank(h, 10, &x10); + tailp = 1.0; + + /* mu, lambda, E10 fields: ML Gumbel fit to the observed data */ + esl_gumbel_FitComplete(scores, cfg->N, &mu, &lambda); + E10 = cfg->N * esl_gumbel_surv(x10, mu, lambda); + + /* mufix, E10fix fields: assume lambda = log2; fit an ML mu to the data */ + esl_gumbel_FitCompleteLoc(scores, cfg->N, 0.693147, &mufix); + E10fix = cfg->N * esl_gumbel_surv(x10, mufix, 0.693147); + + /* mufix2, E10fix2 fields: assume edge-corrected H3 lambda estimate; fit ML mu */ + esl_gumbel_FitCompleteLoc(scores, cfg->N, plambda, &mufix2); + E10fix2 = cfg->N * esl_gumbel_surv(x10, mufix2, plambda); + + /* pmu, plambda, E10p: use H3 estimates (pmu, plambda) */ + E10p = cfg->N * esl_gumbel_surv(x10, pmu, plambda); + + fprintf(cfg->ofp, "%-20s %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f", + hmm->name, tailp, mu, lambda, E10, mufix, E10fix, mufix2, E10fix2, pmu, plambda, E10p); + + if (esl_opt_GetBoolean(go, "-a")) { + esl_stats_IMean(alilens, cfg->N, &almean, &alvar); + fprintf(cfg->ofp, " %8.4f %8.4f\n", almean, sqrt(alvar)); + } else + fprintf(cfg->ofp, "\n"); + + if (cfg->survfp != NULL) { + esl_histogram_PlotSurvival(cfg->survfp, h); + esl_gumbel_Plot(cfg->survfp, mu, lambda, esl_gumbel_surv, h->xmin - 5., h->xmax + 5., 0.1); + esl_gumbel_Plot(cfg->survfp, mufix, 0.693147, esl_gumbel_surv, h->xmin - 5., h->xmax + 5., 0.1); + } + + if (cfg->efp != NULL) { + double x; + + fprintf(cfg->efp, "# %s\n", hmm->name); + for (i = 1; i <= 1000 && i <= cfg->N; i++) { + esl_histogram_GetRank(h, i, &x); + fprintf(cfg->efp, "%d %g\n", i, cfg->N * esl_gumbel_surv(x, pmu, plambda)); + } + fprintf(cfg->efp, "&\n"); + } + } + + /* For Forward, fit tail to exponential tails, for a range of tail mass choices. */ + else if (esl_opt_GetBoolean(go, "--fwd")) + { + double tmin = esl_opt_GetReal(go, "--tmin"); + double tmax = esl_opt_GetReal(go, "--tmax"); + double tpoints = (double) esl_opt_GetInteger(go, "--tpoints"); + int do_linear = esl_opt_GetBoolean(go, "--tlinear"); + double *xv; + int n; + + esl_histogram_GetRank(h, 10, &x10); + + tailp = tmin; + do { + if (tailp > 1.0) tailp = 1.0; + esl_histogram_GetTailByMass(h, tailp, &xv, &n, NULL); + + esl_exp_FitComplete(xv, n, &mu, &lambda); + E10 = cfg->N * tailp * esl_exp_surv(x10, mu, lambda); + mufix = mu; + E10fix = cfg->N * tailp * esl_exp_surv(x10, mu, 0.693147); + E10p = cfg->N * esl_exp_surv(x10, pmu, plambda); /* the pmu is relative to a P=1.0 tail origin. */ + + fprintf(cfg->ofp, "%-20s %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f\n", + hmm->name, tailp, mu, lambda, E10, mufix, E10fix, pmu, plambda, E10p); + + if (tpoints == 1) break; + else if (do_linear) tailp += (tmax-tmin) / (tpoints-1); + else tailp *= exp(log(tmax/tmin) / (tpoints-1)); + } while (tailp <= tmax+1e-7); + + if (cfg->survfp) + { + esl_histogram_PlotSurvival(cfg->survfp, h); + esl_exp_Plot(cfg->survfp, mu, lambda, esl_exp_surv, mu, h->xmax + 5., 0.1); + esl_exp_Plot(cfg->survfp, mu, 0.693147, esl_exp_surv, mu, h->xmax + 5., 0.1); + } + + if (cfg->efp != NULL) { + double x; + + fprintf(cfg->efp, "# %s\n", hmm->name); + for (i = 1; i <= 1000 && i <= cfg->N; i++) { + esl_histogram_GetRank(h, i, &x); + fprintf(cfg->efp, "%d %g\n", i, cfg->N * esl_exp_surv(x, pmu, plambda)); + } + fprintf(cfg->efp, "&\n"); + } + + } + + + /* fallthrough: both normal, error cases execute same cleanup code */ + status = eslOK; + ERROR: + esl_histogram_Destroy(h); + return status; +} + + +/* output_filter_power() + * + * Used for testing whether the filters (MSV scores, Viterbi scores) + * have the power they're supposed to have: for example, if MSV filter + * is set at a P-value threshold of 0.02, ~2% of sequences should get + * through, regardless of things like model and target sequence + * length. + * + * Output a file suitable for constructing histograms over many HMMs, + * for a particular choice of hmmsim'ed L and N targets: + * <# of seqs passing threshold> + * + * SRE, Thu Apr 9 08:57:32 2009 [Janelia] xref J4/133 + */ +static int +output_filter_power(ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf, P7_HMM *hmm, double *scores, double pmu, double plambda) +{ + double pthresh = esl_opt_GetReal(go, "--pthresh"); /* P-value threshold set for the filter score */ + double P; /* calculated P-value (using HMM's own calibration) */ + int npass = 0; /* number of scores that pass the P threshold */ + double fpass; /* fraction of scores that pass the P threshold */ + int i; /* counter over scores */ + int do_gumbel; /* flag for how to determine P values */ + + if (esl_opt_GetBoolean(go, "--vit")) do_gumbel = TRUE; + else if (esl_opt_GetBoolean(go, "--msv")) do_gumbel = TRUE; + else if (esl_opt_GetBoolean(go, "--hyb")) do_gumbel = FALSE; + else ESL_FAIL(eslEINVAL, errbuf, "can only use --ffile with viterbi, msv, or fwd scores"); + + for (i = 0; i < cfg->N; i++) + { + P = (do_gumbel ? esl_gumbel_surv(scores[i], pmu, plambda) : + esl_exp_surv (scores[i], pmu, plambda)); + if (P <= pthresh) npass++; + } + fpass = (double) npass / (double) cfg->N; + + fprintf(cfg->ffp, "%s\t%d\t%.4f\n", hmm->name, npass, fpass); + return eslOK; +} + + + +#ifdef HMMER_MPI +/* the pack send/recv buffer must be big enough to hold either an error message or a result vector. + * it may even grow larger than that, to hold largest HMM we send. + */ +static int +minimum_mpi_working_buffer(ESL_GETOPTS *go, int N, int *ret_wn) +{ + int n; + int nerr = 0; + int nresult = 0; + + /* error packet */ + if (MPI_Pack_size(eslERRBUFSIZE, MPI_CHAR, MPI_COMM_WORLD, &nerr)!= 0) return eslESYS; + + /* results packet */ + if (MPI_Pack_size(N, MPI_DOUBLE, MPI_COMM_WORLD, &n) != 0) return eslESYS; else nresult += n; /* scores */ + if (esl_opt_GetBoolean(go, "-a")) { + if (MPI_Pack_size(N, MPI_INT, MPI_COMM_WORLD, &n) != 0) return eslESYS; else nresult += n; /* alignment lengths */ + } + if (MPI_Pack_size(1, MPI_DOUBLE, MPI_COMM_WORLD, &n) != 0) return eslESYS; else nresult += n*2; /* mu, lambda */ + + /* add the shared status code to the max of the two possible kinds of packets */ + *ret_wn = ESL_MAX(nresult, nerr); + if (MPI_Pack_size(1, MPI_INT, MPI_COMM_WORLD, &n) != 0) return eslESYS; else *ret_wn += n; + return eslOK; +} +#endif + + +/* elide_length_model() + * + * Fix bg->p1 to 350/351, + * then make the N, C, J transition probabilities p1; + * this removes H3's length model, and emulates H2 instead. + * + * This makes the NN, CC, JJ transitions score 0, and + * makes the NB, CE, and JB transitions a fixed penalty + * of log(1/351). + * + * In general this isn't a good idea. This code is only for + * experimental purposes, demonstrating the difference between + * H3's improved statistics and the old way. + */ +static int +elide_length_model(P7_PROFILE *gm, P7_BG *bg) +{ + bg->p1 = 350./351.; + + gm->xsc[p7P_N][p7P_LOOP] = gm->xsc[p7P_C][p7P_LOOP] = gm->xsc[p7P_J][p7P_LOOP] = log(bg->p1); + gm->xsc[p7P_N][p7P_MOVE] = gm->xsc[p7P_C][p7P_MOVE] = gm->xsc[p7P_J][p7P_MOVE] = log(1.0 - bg->p1); + return eslOK; +} + + diff --git a/bioinformaticsProject/hmmer/src/hmmstat.c b/bioinformaticsProject/hmmer/src/hmmstat.c new file mode 100644 index 0000000..a56e348 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/hmmstat.c @@ -0,0 +1,129 @@ +/* hmmstat: display summary statistics for an HMM database. + */ +#include "p7_config.h" + +#include +#include +#include +#include + +#include "easel.h" +#include "esl_getopts.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options] "; +static char banner[] = "display summary statistics for a profile file"; + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; + ESL_ALPHABET *abc = NULL; + char *hmmfile = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + int nhmm; + double x; + float KL; + char errbuf[eslERRBUFSIZE]; + int status; + + /* Process command line + */ + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK || + esl_opt_VerifyConfig(go) != eslOK) + { + printf("Failed to parse command line: %s\n", go->errbuf); + esl_usage(stdout, argv[0], usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + exit(1); + } + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + puts("\nOptions:"); + esl_opt_DisplayHelp(stdout, go, 0, 2, 80); /* 0=docgroup, 2 = indentation; 80=textwidth*/ + exit(0); + } + if (esl_opt_ArgNumber(go) != 1) + { + puts("Incorrect number of command line arguments."); + esl_usage(stdout, argv[0], usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + exit(1); + } + if ((hmmfile = esl_opt_GetArg(go, 1)) == NULL) + { + puts("Failed to read argument from command line."); + esl_usage(stdout, argv[0], usage); + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + exit(1); + } + + p7_banner(stdout, go->argv[0], banner); + + + + /* Initializations: open the HMM file + */ + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + + /* Output header + */ + printf("#\n"); + printf("# %-4s %-20s %-12s %8s %8s %6s %6s %6s %6s %6s\n", "idx", "name", "accession", "nseq", "eff_nseq", "M", "relent", "info", "p relE", "compKL"); + printf("# %-4s %-20s %-12s %8s %8s %6s %6s %6s %6s %6s\n", "----", "--------------------", "------------", "--------", "--------", "------", "------", "------", "------", "------"); + + + /* Main body: read HMMs one at a time, print one line of stats per profile + */ + nhmm = 0; + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslEOF) + { + if (status == eslEOD) esl_fatal("read failed, HMM file %s may be truncated?", hmmfile); + else if (status == eslEFORMAT) esl_fatal("bad file format in HMM file %s", hmmfile); + else if (status == eslEINCOMPAT) esl_fatal("HMM file %s contains different alphabets", hmmfile); + else if (status != eslOK) esl_fatal("Unexpected error in reading HMMs from %s", hmmfile); + nhmm++; + + if (bg == NULL) bg = p7_bg_Create(abc); + + p7_MeanPositionRelativeEntropy(hmm, bg, &x); + p7_hmm_CompositionKLD(hmm, bg, &KL, NULL); + + printf("%-6d %-20s %-12s %8d %8.2f %6d %6.2f %6.2f %6.2f %6.2f\n", + nhmm, + hmm->name, + hmm->acc == NULL ? "-" : hmm->acc, + hmm->nseq, + hmm->eff_nseq, + hmm->M, + p7_MeanMatchRelativeEntropy(hmm, bg), + p7_MeanMatchInfo(hmm, bg), + x, + KL); + + p7_hmm_Destroy(hmm); + } + + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + p7_hmmfile_Close(hfp); + esl_getopts_Destroy(go); + exit(0); +} diff --git a/bioinformaticsProject/hmmer/src/impl_sse/00MANIFEST b/bioinformaticsProject/hmmer/src/impl_sse/00MANIFEST new file mode 100644 index 0000000..0be925c --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/00MANIFEST @@ -0,0 +1,34 @@ + + +================================================================ += Overall structure (P7_OPROFILE, P7_OMX) +================================================================ + +impl_sse.h : declarations, including P7_OPROFILE, P7_OMX, macros, functions +p7_oprofile.c : vectorized profile structure +p7_omx.c : vectorized DP matrix +io.c : i/o of vectorized profiles + + +================================================================ += Dynamic programming routines for scoring target sequences +================================================================ + +msvfilter.c : p7_MSVFilter() - main acceleration routine +vitfilter.c : p7_ViterbiFilter() - secondary acceleration routine +fwdback.c : p7_Forward() - Forward algorithm + p7_Backward() - Backward algorithm + p7_ForwardParser() - streamlined Forward used for first pass domain definition + p7_BackwardParser() - streamlined Backward used for first pass domain definition + + +================================================================ += Postprocessing domains, alignments, and null2 model +================================================================ + +decoding.c : posterior decoding of Forward/Backward matrices +stotrace.c : stochastic traceback, sampling paths from Forward matrices +optacc.c : "optimal accuracy" alignment algorithm, using posterior decoding +null2.c : null2 model for biased composition corrections + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/Makefile.in b/bioinformaticsProject/hmmer/src/impl_sse/Makefile.in new file mode 100644 index 0000000..46cd270 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/Makefile.in @@ -0,0 +1,177 @@ +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +SHELL = /bin/sh + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ + +CC = @CC@ +CFLAGS = @CFLAGS@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PIC_CFLAGS = @PIC_CFLAGS@ +SSE_CFLAGS = @SSE_CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +DEFS = @DEFS@ +LIBS = -lhmmer -leasel @LIBS@ -lm + +AR = @AR@ +RANLIB = @RANLIB@ + +ESLDIR = @HMMER_ESLDIR@ +MYLIBDIRS = -L../../${ESLDIR} -L.. +MYINCDIRS = -I../../${ESLDIR} \ + -I${top_srcdir}/easel \ + -I. \ + -I.. \ + -I${srcdir} \ + -I${top_srcdir}/src \ + -I${srcdir}/.. + +OBJS = decoding.o\ + fwdback.o\ + io.o\ + ssvfilter.o\ + msvfilter.o\ + null2.o\ + optacc.o\ + stotrace.o\ + vitfilter.o\ + p7_omx.o\ + p7_oprofile.o\ + mpi.o + +HDRS = impl_sse.h + +UTESTS = @MPI_UTESTS@\ + decoding_utest\ + fwdback_utest\ + io_utest\ + msvfilter_utest\ + null2_utest\ + optacc_utest\ + stotrace_utest\ + vitfilter_utest + +BENCHMARKS = @MPI_BENCHMARKS@\ + decoding_benchmark\ + fwdback_benchmark\ + msvfilter_benchmark\ + null2_benchmark\ + optacc_benchmark\ + stotrace_benchmark\ + vitfilter_benchmark + +EXAMPLES =\ + fwdback_example\ + io_example\ + msvfilter_example\ + optacc_example\ + p7_oprofile_example\ + stotrace_example\ + vitfilter_example + +# beautification magic stolen from git +QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c +QUIET_SUBDIR1 = +ifndef V + QUIET_CC = @echo ' ' CC $@; + QUIET_GEN = @echo ' ' GEN $@; + QUIET_AR = @echo ' ' AR $@; + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ; echo ' ' SUBDIR $$subdir; \ + ${MAKE} -s -C $$subdir +endif + +.PHONY: all dev check tests distclean clean + + +all: libhmmer-impl.stamp +dev: ${UTESTS} ${BENCHMARKS} ${EXAMPLES} +check: ${UTESTS} +tests: ${UTESTS} + +libhmmer-impl.stamp: ${OBJS} + ${QUIET_AR}${AR} -r ../libhmmer.a $? > /dev/null 2>&1 + @${RANLIB} ../libhmmer.a + @echo "impl_lib objects compiled:\c" > $@ + @date >> $@ + +.FORCE: + +${OBJS}: ${HDRS} ../hmmer.h + +.c.o: + ${QUIET_CC}${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${SSE_CFLAGS} ${CPPFLAGS} ${DEFS} ${MYINCDIRS} -o $@ -c $< + +${UTESTS}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h + @BASENAME=`echo $@ | sed -e 's/_utest//'| sed -e 's/^p7_//'` ;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_TESTDRIVE ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${SSE_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${SSE_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +${BENCHMARKS}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h + @BASENAME=`echo $@ | sed -e 's/_benchmark//' | sed -e 's/^p7_//'`;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_BENCHMARK ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${SSE_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${SSE_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +${EXAMPLES}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h + @BASENAME=`echo $@ | sed -e 's/_example//'| sed -e 's/^p7_//'` ;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_EXAMPLE ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${SSE_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${SSE_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + + +clean: + -rm -f libhmmer-impl.stamp + -rm -f ${UTESTS} + -rm -f ${BENCHMARKS} + -rm -f ${EXAMPLES} + -rm -f *.o *~ Makefile.bak core TAGS gmon.out cscope.out + -rm -f *.gcno + for prog in ${UTESTS} ${BENCHMARKS} ${EXAMPLES}; do\ + if test -d $$prog.dSYM; then rm -rf $$prog.dSYM; fi;\ + done +ifndef V + @echo ' ' CLEAN impl_sse +endif + +distclean: clean + -rm -f Makefile + + + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/decoding.c b/bioinformaticsProject/hmmer/src/impl_sse/decoding.c new file mode 100644 index 0000000..76f411c --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/decoding.c @@ -0,0 +1,425 @@ +/* Posterior decoding algorithms; SSE versions. + * + * Contents: + * 1. Posterior decoding algorithms. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + */ + +#include "p7_config.h" + +#include +#include + +#include + +#include "easel.h" +#include "esl_sse.h" + +#include "hmmer.h" +#include "impl_sse.h" + +/***************************************************************** + * 1. Posterior decoding algorithms. + *****************************************************************/ + +/* Function: p7_Decoding() + * Synopsis: Posterior decoding of residue assignment. + * Incept: SRE, Fri Aug 8 14:29:42 2008 [UA217 to SFO] + * + * Purpose: Identical to except that , , + * are SSE optimized versions. See + * documentation for more info. + * + * Args: om - profile (must be the same that was used to fill , ). + * oxf - filled Forward matrix + * oxb - filled Backward matrix + * pp - RESULT: posterior decoding matrix. + * + * Returns: on success. + * + * Returns if numeric range of floating-point + * values is exceeded during posterior probability + * calculations. In this case, the matrix must not be + * used by the caller; it will contain values. To be + * safe, the caller should recalculate a generic posterior + * decoding matrix instead -- generic calculations are done + * in log probability space and are robust. + * + * However, I currently believe that this overflow only + * occurs on an unusual and ignorable situation: when a + * model is used on a region that contains + * two or more high scoring distinct alignments to the + * model. And that only happens if domain definition fails, + * after stochastic clustering, and an envelope that we + * pass to p7_domaindef.c::rescore_isolated_domain() + * erroneously contains 2+ distinct domains. (Note that + * this is different from having 2+ expected B states: that + * can happen normally, if a single consistent domain is + * better described by 2+ passes through the model). And I + * strongly believe all this only can happen on repetitive + * or biased-composition junk that we want to ignore anyway. + * Therefore the caller should be safe in ignoring any domain + * for which returns . + * + * Exception (bug #h68): see hmmalign.c, where the model is + * in unilocal mode, and it is entirely possible for the + * user to give us a multidomain protein. + * + * Throws: (no abnormal error conditions) + * + * Xref: [J3/119-121]: for analysis of numeric range issues when + * overflows. + */ +int +p7_Decoding(const P7_OPROFILE *om, const P7_OMX *oxf, P7_OMX *oxb, P7_OMX *pp) +{ + __m128 *ppv; + __m128 *fv; + __m128 *bv; + __m128 totrv; + int L = oxf->L; + int M = om->M; + int Q = p7O_NQF(M); + int i,q; + float scaleproduct = 1.0 / oxb->xmx[p7X_N]; + + pp->M = M; + pp->L = L; + + ppv = pp->dpf[0]; + for (q = 0; q < Q; q++) { + *ppv = _mm_setzero_ps(); ppv++; + *ppv = _mm_setzero_ps(); ppv++; + *ppv = _mm_setzero_ps(); ppv++; + } + pp->xmx[p7X_E] = 0.0; + pp->xmx[p7X_N] = 0.0; + pp->xmx[p7X_J] = 0.0; + pp->xmx[p7X_C] = 0.0; + pp->xmx[p7X_B] = 0.0; + + for (i = 1; i <= L; i++) + { + ppv = pp->dpf[i]; + fv = oxf->dpf[i]; + bv = oxb->dpf[i]; + totrv = _mm_set1_ps(scaleproduct * oxf->xmx[i*p7X_NXCELLS+p7X_SCALE]); + + for (q = 0; q < Q; q++) + { + /* M */ + *ppv = _mm_mul_ps(*fv, *bv); + *ppv = _mm_mul_ps(*ppv, totrv); + ppv++; fv++; bv++; + + /* D */ + *ppv = _mm_setzero_ps(); + ppv++; fv++; bv++; + + /* I */ + *ppv = _mm_mul_ps(*fv, *bv); + *ppv = _mm_mul_ps(*ppv, totrv); + ppv++; fv++; bv++; + } + pp->xmx[i*p7X_NXCELLS+p7X_E] = 0.0; + pp->xmx[i*p7X_NXCELLS+p7X_N] = oxf->xmx[(i-1)*p7X_NXCELLS+p7X_N] * oxb->xmx[i*p7X_NXCELLS+p7X_N] * om->xf[p7O_N][p7O_LOOP] * scaleproduct; + pp->xmx[i*p7X_NXCELLS+p7X_J] = oxf->xmx[(i-1)*p7X_NXCELLS+p7X_J] * oxb->xmx[i*p7X_NXCELLS+p7X_J] * om->xf[p7O_J][p7O_LOOP] * scaleproduct; + pp->xmx[i*p7X_NXCELLS+p7X_C] = oxf->xmx[(i-1)*p7X_NXCELLS+p7X_C] * oxb->xmx[i*p7X_NXCELLS+p7X_C] * om->xf[p7O_C][p7O_LOOP] * scaleproduct; + pp->xmx[i*p7X_NXCELLS+p7X_B] = 0.0; + + if (oxb->has_own_scales) scaleproduct *= oxf->xmx[i*p7X_NXCELLS+p7X_SCALE] / oxb->xmx[i*p7X_NXCELLS+p7X_SCALE]; + } + + if (isinf(scaleproduct)) return eslERANGE; + else return eslOK; +} + +/* Function: p7_DomainDecoding() + * Synopsis: Posterior decoding of domain location. + * Incept: SRE, Tue Aug 5 08:39:07 2008 [Janelia] + * + * Purpose: Identical to except that , , + * are SSE optimized versions. See + * documentation for more info. + * + * Args: gm - profile + * oxf - filled Forward matrix + * oxb - filled Backward matrix + * ddef - container for the results. + * + * Returns: on success. + * + * on numeric overflow. See commentary in + * . + * + * Throws: (no abnormal error conditions) + */ +int +p7_DomainDecoding(const P7_OPROFILE *om, const P7_OMX *oxf, const P7_OMX *oxb, P7_DOMAINDEF *ddef) +{ + int L = oxf->L; + float scaleproduct = 1.0 / oxb->xmx[p7X_N]; + float njcp; + int i; + + ddef->btot[0] = 0.0; + ddef->etot[0] = 0.0; + ddef->mocc[0] = 0.0; + for (i = 1; i <= L; i++) + { + /* scaleproduct is prod_j=0^i-2 now */ + ddef->btot[i] = ddef->btot[i-1] + + (oxf->xmx[(i-1)*p7X_NXCELLS+p7X_B] * oxb->xmx[(i-1)*p7X_NXCELLS+p7X_B] * oxf->xmx[(i-1)*p7X_NXCELLS+p7X_SCALE] * scaleproduct); + + if (oxb->has_own_scales) scaleproduct *= oxf->xmx[(i-1)*p7X_NXCELLS+p7X_SCALE] / oxb->xmx[(i-1)*p7X_NXCELLS+p7X_SCALE]; + /* scaleproduct is prod_j=0^i-1 now */ + + ddef->etot[i] = ddef->etot[i-1] + + (oxf->xmx[i*p7X_NXCELLS+p7X_E] * oxb->xmx[i*p7X_NXCELLS+p7X_E] * oxf->xmx[i*p7X_NXCELLS+p7X_SCALE] * scaleproduct); + + njcp = oxf->xmx[(i-1)*p7X_NXCELLS+p7X_N] * oxb->xmx[i*p7X_NXCELLS+p7X_N] * om->xf[p7O_N][p7O_LOOP] * scaleproduct; + njcp += oxf->xmx[(i-1)*p7X_NXCELLS+p7X_J] * oxb->xmx[i*p7X_NXCELLS+p7X_J] * om->xf[p7O_J][p7O_LOOP] * scaleproduct; + njcp += oxf->xmx[(i-1)*p7X_NXCELLS+p7X_C] * oxb->xmx[i*p7X_NXCELLS+p7X_C] * om->xf[p7O_C][p7O_LOOP] * scaleproduct; + ddef->mocc[i] = 1. - njcp; + } + ddef->L = oxf->L; + + if (isinf(scaleproduct)) return eslERANGE; + else return eslOK; +} +/*------------------ end, posterior decoding --------------------*/ + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7DECODING_BENCHMARK +/* + icc -O3 -static -o decoding_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7DECODING_BENCHMARK decoding.c -lhmmer -leasel -lm + ./decoding_benchmark + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ --------------- + 21 Aug 08 3.52u (409 Mc/s) 15.36u (177 Mc/s) 318.78u (72.2 Mc/s) + + The length dependency probably indicates L1 cache missing; because we're + manipulating 3 matrices at the same time, we can't fit the calculation + in cache. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for posterior residue decoding, SSE version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *fwd = NULL; + P7_OMX *bck = NULL; + P7_OMX *pp = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float fsc, bsc; + double Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + fwd = p7_omx_Create(gm->M, L, L); + bck = p7_omx_Create(gm->M, L, L); + pp = p7_omx_Create(gm->M, L, L); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_Forward (dsq, L, om, fwd, &fsc); + p7_Backward(dsq, L, om, fwd, bck, &bsc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_Decoding(om, fwd, bck, pp); + esl_stopwatch_Stop(w); + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(fwd); + p7_omx_Destroy(bck); + p7_omx_Destroy(pp); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} +#endif /*p7DECODING_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7DECODING_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* compare results to GDecoding(). */ +static void +utest_decoding(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N, float tolerance) +{ + char *msg = "decoding unit test failed"; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *fwd = p7_omx_Create(M, L, L); + P7_OMX *bck = p7_omx_Create(M, L, L); + P7_OMX *pp = p7_omx_Create(M, L, L); + P7_GMX *gxf = p7_gmx_Create(M, L); + P7_GMX *gxb = p7_gmx_Create(M, L); + P7_GMX *gxp1 = p7_gmx_Create(M, L); + P7_GMX *gxp2 = p7_gmx_Create(M, L); + float fsc1, fsc2; + float bsc1, bsc2; + + if (p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om) != eslOK) esl_fatal(msg); + while (N--) + { + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal(msg); + if (p7_Forward (dsq, L, om, fwd, &fsc1) != eslOK) esl_fatal(msg); + if (p7_Backward (dsq, L, om, fwd, bck, &bsc1) != eslOK) esl_fatal(msg); + if (p7_Decoding(om, fwd, bck, pp) != eslOK) esl_fatal(msg); + if (p7_omx_FDeconvert(pp, gxp1) != eslOK) esl_fatal(msg); + + if (p7_GForward (dsq, L, gm, gxf, &fsc2) != eslOK) esl_fatal(msg); + if (p7_GBackward(dsq, L, gm, gxb, &bsc2) != eslOK) esl_fatal(msg); + if (p7_GDecoding(gm, gxf, gxb, gxp2) != eslOK) esl_fatal(msg); + + // p7_gmx_Dump(stdout, gxp1, p7_DEFAULT); + // p7_gmx_Dump(stdout, gxp2, p7_DEFAULT); + + if (p7_gmx_Compare(gxp1, gxp2, tolerance) != eslOK) esl_fatal(msg); + } + + p7_gmx_Destroy(gxp1); + p7_gmx_Destroy(gxp2); + p7_gmx_Destroy(gxf); + p7_gmx_Destroy(gxb); + p7_omx_Destroy(fwd); + p7_omx_Destroy(bck); + p7_omx_Destroy(pp); + free(dsq); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); +} +#endif /*p7DECODING_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7DECODING_TESTDRIVE + +/* + gcc -o decoding_utest -msse2 -g -Wall -I.. -L.. -I../../easel -L../../easel -Dp7DECODING_TESTDRIVE decoding.c -lhmmer -leasel -lm + ./decoding_utest + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgrp */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0}, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-t", eslARG_REAL, "0.01", NULL, NULL, NULL, NULL, NULL, "floating point comparison tolerance", 0 }, + { "-L", eslARG_INT, "40", NULL, NULL, NULL, NULL, NULL, "length of sampled sequences", 0 }, + { "-M", eslARG_INT, "40", NULL, NULL, NULL, NULL, NULL, "length of sampled test profile", 0 }, + { "-N", eslARG_INT, "10", NULL, NULL, NULL, NULL, NULL, "number of sampled test sequences", 0 }, + { 0,0,0,0,0,0,0,0,0,0}, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for SSE posterior decoding"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + float tol = esl_opt_GetReal (go, "-t"); + + p7_FLogsumInit(); + + utest_decoding(r, abc, bg, M, L, N, tol); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + return eslOK; +} +#endif /*p7DECODING_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/fbparsers.tex b/bioinformaticsProject/hmmer/src/impl_sse/fbparsers.tex new file mode 100644 index 0000000..f8c601a --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/fbparsers.tex @@ -0,0 +1,32 @@ +\documentclass[11pt]{article} +\usepackage{times} +\usepackage{fullpage} +\begin{document} + +\subsection{The Backward algorithm for Plan7 profiles: serial version} + +\begin{tabbing} + +Initialization on row $L$:\\ +\> $F^\mathrm{J}(L) = F^\mathrm{B}(L) = F^\mathrm{N}(L) = 0; $\\ +\> $F^\mathrm{C}(L) = t_{\mathrm{CT}}; $\\ +\> $F^\mathrm{E}(L) = F^\mathrm{C}(L) * t_{\mathrm{EC}}; $\\ +\> $F^\mathrm{M}(L,M) = F^\mathrm{E}(L); $\\ +\> $F^\mathrm{D}(L,M) = F^\mathrm{E}(L); $\\ +\> for $k = M-1$ down to $1$: \\ + \>\> $F^\mathrm{M}(L,k) = F^\mathrm{D}(L,k+1) * t_{\mathrm{M}_k\mathrm{D}_{k+1}} * F^\mathrm{E}(L); $\\ + \>\> $F^\mathrm{D}(L,k) = F^\mathrm{D}(L,k+1) * t_{\mathrm{D}_k\mathrm{D}_{k+1}} * F^\mathrm{E}(L); $\\ + \>\> $F^\mathrm{I}(L,k) = 0. + + + + + +\> $V_k^\mathrm{M}(0) = -\infty \quad \forall k.$\\ +\\ + + + +\end{tabbing} + +\end{document} diff --git a/bioinformaticsProject/hmmer/src/impl_sse/fwdback.c b/bioinformaticsProject/hmmer/src/impl_sse/fwdback.c new file mode 100644 index 0000000..d1eac46 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/fwdback.c @@ -0,0 +1,1196 @@ +/* SSE implementation of Forward and Backward algorithms. + * + * Both profile and DP matrix are striped and interleaved, for fast + * SIMD vector operations. Calculations are in probability space + * (scaled odds ratios, actually) rather than log probabilities, + * allowing fast multiply/add operations rather than slow Logsum() + * calculations. Sparse rescaling is used to achieve full dynamic + * range of scores. + * + * The Forward and Backward implementations may be used either in a + * full O(ML) mode that keeps an entire DP matrix, or in a O(M+L) + * linear memory "parsing" mode that only keeps one row of memory for + * the main MDI states and one column 0..L for the special states + * B,E,N,C,J. Keeping a full matrix allows subsequent stochastic + * traceback or posterior decoding of any state. In parsing mode, we + * can do posterior decoding on the special states and determine + * regions of the target sequence that are generated by the + * nonhomology states (NCJ) versus not -- thus, identifying where + * high-probability "regions" are, the first step of identifying the + * domain structure of a target sequence. + * + * Contents: + * 1. Forward/Backward wrapper API + * 2. Forward and Backward engine implementations + * 4. Benchmark driver. + * 5. Unit tests. + * 6. Test driver. + * 7. Example. + * + * SRE, Thu Jul 31 08:43:20 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_sse.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static int forward_engine (int do_full, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *fwd, float *opt_sc); +static int backward_engine(int do_full, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc); + + +/***************************************************************** + * 1. Forward/Backward API. + *****************************************************************/ + +/* Function: p7_Forward() + * Synopsis: The Forward algorithm, full matrix fill version. + * Incept: SRE, Fri Aug 15 18:59:43 2008 [Casa de Gatos] + * + * Purpose: Calculates the Forward algorithm for sequence of + * length residues, using optimized profile , and a + * preallocated DP matrix . Upon successful return, + * contains the filled Forward matrix, and <*opt_sc> + * optionally contains the raw Forward score in nats. + * + * This calculation requires $O(ML)$ memory and time. + * The caller must provide a suitably allocated full + * by calling or + * . + * + * The model must be configured in local alignment + * mode. The sparse rescaling method used to keep + * probability values within single-precision floating + * point dynamic range cannot be safely applied to models in + * glocal or global mode. + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - RETURN: Forward DP matrix + * opt_sc - RETURN: Forward score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small, or if the profile + * isn't in local alignment mode. + * if the score exceeds the limited range of + * a probability-space odds ratio. + * In either case, <*opt_sc> is undefined. + */ +int +p7_Forward(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *opt_sc) +{ +#if eslDEBUGLEVEL > 0 + if (om->M > ox->allocQ4*4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few columns)"); + if (L >= ox->validR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few MDI rows)"); + if (L >= ox->allocXR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few X rows)"); + if (! p7_oprofile_IsLocal(om)) ESL_EXCEPTION(eslEINVAL, "Forward implementation makes assumptions that only work for local alignment"); +#endif + + return forward_engine(TRUE, dsq, L, om, ox, opt_sc); +} + +/* Function: p7_ForwardParser() + * Synopsis: The Forward algorithm, linear memory parsing version. + * Incept: SRE, Fri Aug 15 19:05:26 2008 [Casa de Gatos] + * + * Purpose: Same as by calling or + * . + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - RETURN: Forward DP matrix + * ret_sc - RETURN: Forward score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small, or if the profile + * isn't in local alignment mode. + * if the score exceeds the limited range of + * a probability-space odds ratio. + * In either case, <*opt_sc> is undefined. + */ +int +p7_ForwardParser(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *opt_sc) +{ +#if eslDEBUGLEVEL > 0 + if (om->M > ox->allocQ4*4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few columns)"); + if (ox->validR < 1) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few MDI rows)"); + if (L >= ox->allocXR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few X rows)"); + if (! p7_oprofile_IsLocal(om)) ESL_EXCEPTION(eslEINVAL, "Forward implementation makes assumptions that only work for local alignment"); +#endif + + return forward_engine(FALSE, dsq, L, om, ox, opt_sc); +} + + + +/* Function: p7_Backward() + * Synopsis: The Backward algorithm; full matrix fill version. + * Incept: SRE, Sat Aug 16 08:34:22 2008 [Janelia] + * + * Purpose: Calculates the Backward algorithm for sequence of + * length residues, using optimized profile , and a + * preallocated DP matrix . A filled Forward matrix + * must also be provided in , because we need to use + * the same sparse scaling factors that Forward used. The + * matrix is filled in, and the Backward score (in + * nats) is optionally returned in . + * + * This calculation requires $O(ML)$ memory and time. The + * caller must provide a suitably allocated full by + * calling or + * . + * + * Because only the sparse scaling factors are needed from + * the matrix, the caller may have this matrix + * calculated either in full or parsing mode. + * + * The model must be configured in local alignment + * mode. The sparse rescaling method used to keep + * probability values within single-precision floating + * point dynamic range cannot be safely applied to models in + * glocal or global mode. + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * fwd - filled Forward DP matrix, for scale factors + * do_full - TRUE=full matrix; FALSE=linear memory parse mode + * bck - RETURN: filled Backward matrix + * opt_sc - optRETURN: Backward score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small, or if the profile + * isn't in local alignment mode. + * if the score exceeds the limited range of + * a probability-space odds ratio. + * In either case, <*opt_sc> is undefined. + */ +int +p7_Backward(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc) +{ +#if eslDEBUGLEVEL > 0 + if (om->M > bck->allocQ4*4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few columns)"); + if (L >= bck->validR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few MDI rows)"); + if (L >= bck->allocXR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few X rows)"); + if (L != fwd->L) ESL_EXCEPTION(eslEINVAL, "fwd matrix size doesn't agree with length L"); + if (! p7_oprofile_IsLocal(om)) ESL_EXCEPTION(eslEINVAL, "Forward implementation makes assumptions that only work for local alignment"); +#endif + + return backward_engine(TRUE, dsq, L, om, fwd, bck, opt_sc); +} + + + +/* Function: p7_BackwardParser() + * Synopsis: The Backward algorithm, linear memory parsing version. + * Incept: SRE, Sat Aug 16 08:34:13 2008 [Janelia] + * + * Purpose: Same as except that the full matrix isn't + * kept. Instead, a linear $O(M+L)$ memory algorithm is + * used, keeping only the DP matrix values for the special + * (BENCJ) states. These are sufficient to do posterior + * decoding to identify high-probability regions where + * domains are. + * + * The caller must provide a suitably allocated "parsing" + * by calling or + * . + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * fwd - filled Forward DP matrix, for scale factors + * bck - RETURN: filled Backward matrix + * opt_sc - optRETURN: Backward score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small, or if the profile + * isn't in local alignment mode. + * if the score exceeds the limited range of + * a probability-space odds ratio. + * In either case, <*opt_sc> is undefined. + */ +int +p7_BackwardParser(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc) +{ +#if eslDEBUGLEVEL > 0 + if (om->M > bck->allocQ4*4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few columns)"); + if (bck->validR < 1) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few MDI rows)"); + if (L >= bck->allocXR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few X rows)"); + if (L != fwd->L) ESL_EXCEPTION(eslEINVAL, "fwd matrix size doesn't agree with length L"); + if (! p7_oprofile_IsLocal(om)) ESL_EXCEPTION(eslEINVAL, "Forward implementation makes assumptions that only work for local alignment"); +#endif + + return backward_engine(FALSE, dsq, L, om, fwd, bck, opt_sc); +} + + + +/***************************************************************** + * 2. Forward/Backward engine implementations (called thru API) + *****************************************************************/ + +static int +forward_engine(int do_full, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *opt_sc) +{ + register __m128 mpv, dpv, ipv; /* previous row values */ + register __m128 sv; /* temp storage of 1 curr row value in progress */ + register __m128 dcv; /* delayed storage of D(i,q+1) */ + register __m128 xEv; /* E state: keeps max for Mk->E as we go */ + register __m128 xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + __m128 zerov; /* splatted 0.0's in a vector */ + float xN, xE, xB, xC, xJ; /* special states' scores */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over quads 0..nq-1 */ + int j; /* counter over DD iterations (4 is full serialization) */ + int Q = p7O_NQF(om->M); /* segment length: # of vectors */ + __m128 *dpc = ox->dpf[0]; /* current row, for use in {MDI}MO(dpp,q) access macro */ + __m128 *dpp; /* previous row, for use in {MDI}MO(dpp,q) access macro */ + __m128 *rp; /* will point at om->rfv[x] for residue x[i] */ + __m128 *tp; /* will point into (and step thru) om->tfv */ + + /* Initialization. */ + ox->M = om->M; + ox->L = L; + ox->has_own_scales = TRUE; /* all forward matrices control their own scalefactors */ + zerov = _mm_setzero_ps(); + for (q = 0; q < Q; q++) + MMO(dpc,q) = IMO(dpc,q) = DMO(dpc,q) = zerov; + xE = ox->xmx[p7X_E] = 0.; + xN = ox->xmx[p7X_N] = 1.; + xJ = ox->xmx[p7X_J] = 0.; + xB = ox->xmx[p7X_B] = om->xf[p7O_N][p7O_MOVE]; + xC = ox->xmx[p7X_C] = 0.; + + ox->xmx[p7X_SCALE] = 1.0; + ox->totscale = 0.0; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpFBRow(ox, TRUE, 0, 9, 5, xE, xN, xJ, xB, xC); /* logify=TRUE, =0, width=8, precision=5*/ +#endif + + for (i = 1; i <= L; i++) + { + dpp = dpc; + dpc = ox->dpf[do_full * i]; /* avoid conditional, use do_full as kronecker delta */ + rp = om->rfv[dsq[i]]; + tp = om->tfv; + dcv = _mm_setzero_ps(); + xEv = _mm_setzero_ps(); + xBv = _mm_set1_ps(xB); + + /* Right shifts by 4 bytes. 4,8,12,x becomes x,4,8,12. Shift zeros on. */ + mpv = esl_sse_rightshift_ps(MMO(dpp,Q-1), zerov); + dpv = esl_sse_rightshift_ps(DMO(dpp,Q-1), zerov); + ipv = esl_sse_rightshift_ps(IMO(dpp,Q-1), zerov); + + for (q = 0; q < Q; q++) + { + /* Calculate new MMO(i,q); don't store it yet, hold it in sv. */ + sv = _mm_mul_ps(xBv, *tp); tp++; + sv = _mm_add_ps(sv, _mm_mul_ps(mpv, *tp)); tp++; + sv = _mm_add_ps(sv, _mm_mul_ps(ipv, *tp)); tp++; + sv = _mm_add_ps(sv, _mm_mul_ps(dpv, *tp)); tp++; + sv = _mm_mul_ps(sv, *rp); rp++; + xEv = _mm_add_ps(xEv, sv); + + /* Load {MDI}(i-1,q) into mpv, dpv, ipv; + * {MDI}MX(q) is then the current, not the prev row + */ + mpv = MMO(dpp,q); + dpv = DMO(dpp,q); + ipv = IMO(dpp,q); + + /* Do the delayed stores of {MD}(i,q) now that memory is usable */ + MMO(dpc,q) = sv; + DMO(dpc,q) = dcv; + + /* Calculate the next D(i,q+1) partially: M->D only; + * delay storage, holding it in dcv + */ + dcv = _mm_mul_ps(sv, *tp); tp++; + + /* Calculate and store I(i,q); assumes odds ratio for emission is 1.0 */ + sv = _mm_mul_ps(mpv, *tp); tp++; + IMO(dpc,q) = _mm_add_ps(sv, _mm_mul_ps(ipv, *tp)); tp++; + } + + /* Now the DD paths. We would rather not serialize them but + * in an accurate Forward calculation, we have few options. + */ + /* dcv has carried through from end of q loop above; store it + * in first pass, we add M->D and D->D path into DMX + */ + /* We're almost certainly're obligated to do at least one complete + * DD path to be sure: + */ + dcv = esl_sse_rightshift_ps(dcv, zerov); + DMO(dpc,0) = zerov; + tp = om->tfv + 7*Q; /* set tp to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMO(dpc,q) = _mm_add_ps(dcv, DMO(dpc,q)); + dcv = _mm_mul_ps(DMO(dpc,q), *tp); tp++; /* extend DMO(q), so we include M->D and D->D paths */ + } + + /* now. on small models, it seems best (empirically) to just go + * ahead and serialize. on large models, we can do a bit better, + * by testing for when dcv (DD path) accrued to DMO(q) is below + * machine epsilon for all q, in which case we know DMO(q) are all + * at their final values. The tradeoff point is (empirically) somewhere around M=100, + * at least on my desktop. We don't worry about the conditional here; + * it's outside any inner loops. + */ + if (om->M < 100) + { /* Fully serialized version */ + for (j = 1; j < 4; j++) + { + dcv = esl_sse_rightshift_ps(dcv, zerov); + tp = om->tfv + 7*Q; /* set tp to start of the DD's */ + for (q = 0; q < Q; q++) + { /* note, extend dcv, not DMO(q); only adding DD paths now */ + DMO(dpc,q) = _mm_add_ps(dcv, DMO(dpc,q)); + dcv = _mm_mul_ps(dcv, *tp); tp++; + } + } + } + else + { /* Slightly parallelized version, but which incurs some overhead */ + for (j = 1; j < 4; j++) + { + register __m128 cv; /* keeps track of whether any DD's change DMO(q) */ + + dcv = esl_sse_rightshift_ps(dcv, zerov); + tp = om->tfv + 7*Q; /* set tp to start of the DD's */ + cv = zerov; + for (q = 0; q < Q; q++) + { /* using cmpgt below tests if DD changed any DMO(q) *without* conditional branch */ + sv = _mm_add_ps(dcv, DMO(dpc,q)); + cv = _mm_or_ps(cv, _mm_cmpgt_ps(sv, DMO(dpc,q))); + DMO(dpc,q) = sv; /* store new DMO(q) */ + dcv = _mm_mul_ps(dcv, *tp); tp++; /* note, extend dcv, not DMO(q) */ + } + if (! _mm_movemask_ps(cv)) break; /* DD's didn't change any DMO(q)? Then done, break out. */ + } + } + + /* Add D's to xEv */ + for (q = 0; q < Q; q++) xEv = _mm_add_ps(DMO(dpc,q), xEv); + + /* Finally the "special" states, which start from Mk->E (->C, ->J->B) */ + /* The following incantation is a horizontal sum of xEv's elements */ + /* These must follow DD calculations, because D's contribute to E in Forward + * (as opposed to Viterbi) + */ + xEv = _mm_add_ps(xEv, _mm_shuffle_ps(xEv, xEv, _MM_SHUFFLE(0, 3, 2, 1))); + xEv = _mm_add_ps(xEv, _mm_shuffle_ps(xEv, xEv, _MM_SHUFFLE(1, 0, 3, 2))); + _mm_store_ss(&xE, xEv); + + xN = xN * om->xf[p7O_N][p7O_LOOP]; + xC = (xC * om->xf[p7O_C][p7O_LOOP]) + (xE * om->xf[p7O_E][p7O_MOVE]); + xJ = (xJ * om->xf[p7O_J][p7O_LOOP]) + (xE * om->xf[p7O_E][p7O_LOOP]); + xB = (xJ * om->xf[p7O_J][p7O_MOVE]) + (xN * om->xf[p7O_N][p7O_MOVE]); + /* and now xB will carry over into next i, and xC carries over after i=L */ + + /* Sparse rescaling. xE above threshold? trigger a rescaling event. */ + if (xE > 1.0e4) /* that's a little less than e^10, ~10% of our dynamic range */ + { + xN = xN / xE; + xC = xC / xE; + xJ = xJ / xE; + xB = xB / xE; + xEv = _mm_set1_ps(1.0 / xE); + for (q = 0; q < Q; q++) + { + MMO(dpc,q) = _mm_mul_ps(MMO(dpc,q), xEv); + DMO(dpc,q) = _mm_mul_ps(DMO(dpc,q), xEv); + IMO(dpc,q) = _mm_mul_ps(IMO(dpc,q), xEv); + } + ox->xmx[i*p7X_NXCELLS+p7X_SCALE] = xE; + ox->totscale += log(xE); + xE = 1.0; + } + else ox->xmx[i*p7X_NXCELLS+p7X_SCALE] = 1.0; + + /* Storage of the specials. We could've stored these already + * but using xE, etc. variables makes it easy to convert this + * code to O(M) memory versions just by deleting storage steps. + */ + ox->xmx[i*p7X_NXCELLS+p7X_E] = xE; + ox->xmx[i*p7X_NXCELLS+p7X_N] = xN; + ox->xmx[i*p7X_NXCELLS+p7X_J] = xJ; + ox->xmx[i*p7X_NXCELLS+p7X_B] = xB; + ox->xmx[i*p7X_NXCELLS+p7X_C] = xC; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpFBRow(ox, TRUE, i, 9, 5, xE, xN, xJ, xB, xC); /* logify=TRUE, =i, width=8, precision=5*/ +#endif + } /* end loop over sequence residues 1..L */ + + /* finally C->T, and flip total score back to log space (nats) */ + /* On overflow, xC is inf or nan (nan arises because inf*0 = nan). */ + /* On an underflow (which shouldn't happen), we counterintuitively return infinity: + * the effect of this is to force the caller to rescore us with full range. + */ + if (isnan(xC)) ESL_EXCEPTION(eslERANGE, "forward score is NaN"); + else if (L>0 && xC == 0.0) ESL_EXCEPTION(eslERANGE, "forward score underflow (is 0.0)"); /* if L==0, xC *should* be 0.0; J5/118 */ + else if (isinf(xC) == 1) ESL_EXCEPTION(eslERANGE, "forward score overflow (is infinity)"); + + if (opt_sc != NULL) *opt_sc = ox->totscale + log(xC * om->xf[p7O_C][p7O_MOVE]); + return eslOK; +} + + + +static int +backward_engine(int do_full, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc) +{ + register __m128 mpv, ipv, dpv; /* previous row values */ + register __m128 mcv, dcv; /* current row values */ + register __m128 tmmv, timv, tdmv; /* tmp vars for accessing rotated transition scores */ + register __m128 xBv; /* collects B->Mk components of B(i) */ + register __m128 xEv; /* splatted E(i) */ + __m128 zerov; /* splatted 0.0's in a vector */ + float xN, xE, xB, xC, xJ; /* special states' scores */ + int i; /* counter over sequence positions 0,1..L */ + int q; /* counter over quads 0..Q-1 */ + int Q = p7O_NQF(om->M); /* segment length: # of vectors */ + int j; /* DD segment iteration counter (4 = full serialization) */ + __m128 *dpc; /* current DP row */ + __m128 *dpp; /* next ("previous") DP row */ + __m128 *rp; /* will point into om->rfv[x] for residue x[i+1] */ + __m128 *tp; /* will point into (and step thru) om->tfv transition scores */ + + /* initialize the L row. */ + bck->M = om->M; + bck->L = L; + bck->has_own_scales = FALSE; /* backwards scale factors are *usually* given by */ + dpc = bck->dpf[L * do_full]; + xJ = 0.0; + xB = 0.0; + xN = 0.0; + xC = om->xf[p7O_C][p7O_MOVE]; /* C<-T */ + xE = xC * om->xf[p7O_E][p7O_MOVE]; /* E<-C, no tail */ + xEv = _mm_set1_ps(xE); + zerov = _mm_setzero_ps(); + dcv = zerov; /* solely to silence a compiler warning */ + for (q = 0; q < Q; q++) MMO(dpc,q) = DMO(dpc,q) = xEv; + for (q = 0; q < Q; q++) IMO(dpc,q) = zerov; + + /* init row L's DD paths, 1) first segment includes xE, from DMO(q) */ + tp = om->tfv + 8*Q - 1; /* <*tp> now the [4 8 12 x] TDD quad */ + dpv = _mm_move_ss(DMO(dpc,Q-1), zerov); /* start leftshift: [1 5 9 13] -> [x 5 9 13] */ + dpv = _mm_shuffle_ps(dpv, dpv, _MM_SHUFFLE(0,3,2,1)); /* finish leftshift:[x 5 9 13] -> [5 9 13 x] */ + for (q = Q-1; q >= 0; q--) + { + dcv = _mm_mul_ps(dpv, *tp); tp--; + DMO(dpc,q) = _mm_add_ps(DMO(dpc,q), dcv); + dpv = DMO(dpc,q); + } + /* 2) three more passes, only extending DD component (dcv only; no xE contrib from DMO(q)) */ + for (j = 1; j < 4; j++) + { + tp = om->tfv + 8*Q - 1; /* <*tp> now the [4 8 12 x] TDD quad */ + dcv = _mm_move_ss(dcv, zerov); /* start leftshift: [1 5 9 13] -> [x 5 9 13] */ + dcv = _mm_shuffle_ps(dcv, dcv, _MM_SHUFFLE(0,3,2,1)); /* finish leftshift:[x 5 9 13] -> [5 9 13 x] */ + for (q = Q-1; q >= 0; q--) + { + dcv = _mm_mul_ps(dcv, *tp); tp--; + DMO(dpc,q) = _mm_add_ps(DMO(dpc,q), dcv); + } + } + /* now MD init */ + tp = om->tfv + 7*Q - 3; /* <*tp> now the [4 8 12 x] Mk->Dk+1 quad */ + dcv = _mm_move_ss(DMO(dpc,0), zerov); /* start leftshift: [1 5 9 13] -> [x 5 9 13] */ + dcv = _mm_shuffle_ps(dcv, dcv, _MM_SHUFFLE(0,3,2,1)); /* finish leftshift:[x 5 9 13] -> [5 9 13 x] */ + for (q = Q-1; q >= 0; q--) + { + MMO(dpc,q) = _mm_add_ps(MMO(dpc,q), _mm_mul_ps(dcv, *tp)); tp -= 7; + dcv = DMO(dpc,q); + } + + /* Sparse rescaling: same scale factors as fwd matrix */ + if (fwd->xmx[L*p7X_NXCELLS+p7X_SCALE] > 1.0) + { + xE = xE / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xN = xN / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xC = xC / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xJ = xJ / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xB = xB / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xEv = _mm_set1_ps(1.0 / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]); + for (q = 0; q < Q; q++) { + MMO(dpc,q) = _mm_mul_ps(MMO(dpc,q), xEv); + DMO(dpc,q) = _mm_mul_ps(DMO(dpc,q), xEv); + IMO(dpc,q) = _mm_mul_ps(IMO(dpc,q), xEv); + } + } + bck->xmx[L*p7X_NXCELLS+p7X_SCALE] = fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + bck->totscale = log(bck->xmx[L*p7X_NXCELLS+p7X_SCALE]); + + /* Stores */ + bck->xmx[L*p7X_NXCELLS+p7X_E] = xE; + bck->xmx[L*p7X_NXCELLS+p7X_N] = xN; + bck->xmx[L*p7X_NXCELLS+p7X_J] = xJ; + bck->xmx[L*p7X_NXCELLS+p7X_B] = xB; + bck->xmx[L*p7X_NXCELLS+p7X_C] = xC; + +#if eslDEBUGLEVEL > 0 + if (bck->debugging) p7_omx_DumpFBRow(bck, TRUE, L, 9, 4, xE, xN, xJ, xB, xC); /* logify=TRUE, =L, width=9, precision=4*/ +#endif + + /* main recursion */ + for (i = L-1; i >= 1; i--) /* backwards stride */ + { + /* phase 1. B(i) collected. Old row destroyed, new row contains + * complete I(i,k), partial {MD}(i,k) w/ no {MD}->{DE} paths yet. + */ + dpc = bck->dpf[i * do_full]; + dpp = bck->dpf[(i+1) * do_full]; + rp = om->rfv[dsq[i+1]] + Q-1; /* <*rp> is now the [4 8 12 x] match emission quad */ + tp = om->tfv + 7*Q - 1; /* <*tp> is now the [4 8 12 x] TII transition quad */ + + /* leftshift the first transition quads */ + tmmv = _mm_move_ss(om->tfv[1], zerov); tmmv = _mm_shuffle_ps(tmmv, tmmv, _MM_SHUFFLE(0,3,2,1)); + timv = _mm_move_ss(om->tfv[2], zerov); timv = _mm_shuffle_ps(timv, timv, _MM_SHUFFLE(0,3,2,1)); + tdmv = _mm_move_ss(om->tfv[3], zerov); tdmv = _mm_shuffle_ps(tdmv, tdmv, _MM_SHUFFLE(0,3,2,1)); + + mpv = _mm_mul_ps(MMO(dpp,0), om->rfv[dsq[i+1]][0]); /* precalc M(i+1,k+1) * e(M_k+1, x_{i+1}) */ + mpv = _mm_move_ss(mpv, zerov); + mpv = _mm_shuffle_ps(mpv, mpv, _MM_SHUFFLE(0,3,2,1)); + + xBv = zerov; + for (q = Q-1; q >= 0; q--) /* backwards stride */ + { + ipv = IMO(dpp,q); /* assumes emission odds ratio of 1.0; i+1's IMO(q) now free */ + IMO(dpc,q) = _mm_add_ps(_mm_mul_ps(ipv, *tp), _mm_mul_ps(mpv, timv)); tp--; + DMO(dpc,q) = _mm_mul_ps(mpv, tdmv); + mcv = _mm_add_ps(_mm_mul_ps(ipv, *tp), _mm_mul_ps(mpv, tmmv)); tp-= 2; + + mpv = _mm_mul_ps(MMO(dpp,q), *rp); rp--; /* obtain mpv for next q. i+1's MMO(q) is freed */ + MMO(dpc,q) = mcv; + + tdmv = *tp; tp--; + timv = *tp; tp--; + tmmv = *tp; tp--; + + xBv = _mm_add_ps(xBv, _mm_mul_ps(mpv, *tp)); tp--; + } + + /* phase 2: now that we have accumulated the B->Mk transitions in xBv, we can do the specials */ + /* this incantation is a horiz sum of xBv elements: (_mm_hadd_ps() would require SSE3) */ + xBv = _mm_add_ps(xBv, _mm_shuffle_ps(xBv, xBv, _MM_SHUFFLE(0, 3, 2, 1))); + xBv = _mm_add_ps(xBv, _mm_shuffle_ps(xBv, xBv, _MM_SHUFFLE(1, 0, 3, 2))); + _mm_store_ss(&xB, xBv); + + xC = xC * om->xf[p7O_C][p7O_LOOP]; + xJ = (xB * om->xf[p7O_J][p7O_MOVE]) + (xJ * om->xf[p7O_J][p7O_LOOP]); /* must come after xB */ + xN = (xB * om->xf[p7O_N][p7O_MOVE]) + (xN * om->xf[p7O_N][p7O_LOOP]); /* must come after xB */ + xE = (xC * om->xf[p7O_E][p7O_MOVE]) + (xJ * om->xf[p7O_E][p7O_LOOP]); /* must come after xJ, xC */ + xEv = _mm_set1_ps(xE); /* splat */ + + + /* phase 3: {MD}->E paths and one step of the D->D paths */ + tp = om->tfv + 8*Q - 1; /* <*tp> now the [4 8 12 x] TDD quad */ + dpv = _mm_add_ps(DMO(dpc,0), xEv); + dpv = _mm_move_ss(dpv, zerov); + dpv = _mm_shuffle_ps(dpv, dpv, _MM_SHUFFLE(0,3,2,1)); + for (q = Q-1; q >= 0; q--) + { + dcv = _mm_mul_ps(dpv, *tp); tp--; + DMO(dpc,q) = _mm_add_ps(DMO(dpc,q), _mm_add_ps(dcv, xEv)); + dpv = DMO(dpc,q); + MMO(dpc,q) = _mm_add_ps(MMO(dpc,q), xEv); + } + + /* phase 4: finish extending the DD paths */ + /* fully serialized for now */ + for (j = 1; j < 4; j++) /* three passes: we've already done 1 segment, we need 4 total */ + { + dcv = _mm_move_ss(dcv, zerov); + dcv = _mm_shuffle_ps(dcv, dcv, _MM_SHUFFLE(0,3,2,1)); + tp = om->tfv + 8*Q - 1; /* <*tp> now the [4 8 12 x] TDD quad */ + for (q = Q-1; q >= 0; q--) + { + dcv = _mm_mul_ps(dcv, *tp); tp--; + DMO(dpc,q) = _mm_add_ps(DMO(dpc,q), dcv); + } + } + + /* phase 5: add M->D paths */ + dcv = _mm_move_ss(DMO(dpc,0), zerov); + dcv = _mm_shuffle_ps(dcv, dcv, _MM_SHUFFLE(0,3,2,1)); + tp = om->tfv + 7*Q - 3; /* <*tp> is now the [4 8 12 x] Mk->Dk+1 quad */ + for (q = Q-1; q >= 0; q--) + { + MMO(dpc,q) = _mm_add_ps(MMO(dpc,q), _mm_mul_ps(dcv, *tp)); tp -= 7; + dcv = DMO(dpc,q); + } + + /* Sparse rescaling */ + + /* In rare cases [J3/119] scale factors from are + * insufficient and backwards will overflow. In this case, we + * switch on the fly to using our own scale factors, different + * from those in . This will complicate subsequent + * posterior decoding routines. + */ + if (xB > 1.0e16) bck->has_own_scales = TRUE; + + if (bck->has_own_scales) bck->xmx[i*p7X_NXCELLS+p7X_SCALE] = (xB > 1.0e4) ? xB : 1.0; + else bck->xmx[i*p7X_NXCELLS+p7X_SCALE] = fwd->xmx[i*p7X_NXCELLS+p7X_SCALE]; + + if (bck->xmx[i*p7X_NXCELLS+p7X_SCALE] > 1.0) + { + xE /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xN /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xJ /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xB /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xC /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xBv = _mm_set1_ps(1.0 / bck->xmx[i*p7X_NXCELLS+p7X_SCALE]); + for (q = 0; q < Q; q++) { + MMO(dpc,q) = _mm_mul_ps(MMO(dpc,q), xBv); + DMO(dpc,q) = _mm_mul_ps(DMO(dpc,q), xBv); + IMO(dpc,q) = _mm_mul_ps(IMO(dpc,q), xBv); + } + bck->totscale += log(bck->xmx[i*p7X_NXCELLS+p7X_SCALE]); + } + + /* Stores are separate only for pedagogical reasons: easy to + * turn this into a more memory efficient version just by + * deleting the stores. + */ + bck->xmx[i*p7X_NXCELLS+p7X_E] = xE; + bck->xmx[i*p7X_NXCELLS+p7X_N] = xN; + bck->xmx[i*p7X_NXCELLS+p7X_J] = xJ; + bck->xmx[i*p7X_NXCELLS+p7X_B] = xB; + bck->xmx[i*p7X_NXCELLS+p7X_C] = xC; + +#if eslDEBUGLEVEL > 0 + if (bck->debugging) p7_omx_DumpFBRow(bck, TRUE, i, 9, 4, xE, xN, xJ, xB, xC); /* logify=TRUE, =i, width=9, precision=4*/ +#endif + } /* thus ends the loop over sequence positions i */ + + /* Termination at i=0, where we can only reach N,B states. */ + dpp = bck->dpf[1 * do_full]; + tp = om->tfv; /* <*tp> is now the [1 5 9 13] TBMk transition quad */ + rp = om->rfv[dsq[1]]; /* <*rp> is now the [1 5 9 13] match emission quad */ + xBv = zerov; + for (q = 0; q < Q; q++) + { + mpv = _mm_mul_ps(MMO(dpp,q), *rp); rp++; + mpv = _mm_mul_ps(mpv, *tp); tp += 7; + xBv = _mm_add_ps(xBv, mpv); + } + /* horizontal sum of xBv */ + xBv = _mm_add_ps(xBv, _mm_shuffle_ps(xBv, xBv, _MM_SHUFFLE(0, 3, 2, 1))); + xBv = _mm_add_ps(xBv, _mm_shuffle_ps(xBv, xBv, _MM_SHUFFLE(1, 0, 3, 2))); + _mm_store_ss(&xB, xBv); + + xN = (xB * om->xf[p7O_N][p7O_MOVE]) + (xN * om->xf[p7O_N][p7O_LOOP]); + + bck->xmx[p7X_B] = xB; + bck->xmx[p7X_C] = 0.0; + bck->xmx[p7X_J] = 0.0; + bck->xmx[p7X_N] = xN; + bck->xmx[p7X_E] = 0.0; + bck->xmx[p7X_SCALE] = 1.0; + +#if eslDEBUGLEVEL > 0 + dpc = bck->dpf[0]; + for (q = 0; q < Q; q++) /* Not strictly necessary, but if someone's looking at DP matrices, this is nice to do: */ + MMO(dpc,q) = DMO(dpc,q) = IMO(dpc,q) = zerov; + if (bck->debugging) p7_omx_DumpFBRow(bck, TRUE, 0, 9, 4, bck->xmx[p7X_E], bck->xmx[p7X_N], bck->xmx[p7X_J], bck->xmx[p7X_B], bck->xmx[p7X_C]); /* logify=TRUE, =0, width=9, precision=4*/ +#endif + + if (isnan(xN)) ESL_EXCEPTION(eslERANGE, "backward score is NaN"); + else if (L>0 && xN == 0.0) ESL_EXCEPTION(eslERANGE, "backward score underflow (is 0.0)"); /* if L==0, xN *should* be 0.0 [J5/118]*/ + else if (isinf(xN) == 1) ESL_EXCEPTION(eslERANGE, "backward score overflow (is infinity)"); + + if (opt_sc != NULL) *opt_sc = bck->totscale + log(xN); + return eslOK; +} +/*-------------- end, forward/backward engines -----------------*/ + + + + + +/***************************************************************** + * 4. Benchmark driver. + *****************************************************************/ +#ifdef p7FWDBACK_BENCHMARK +/* -c, -x options are for debugging and testing: see fwdfilter.c for explanation */ +/* + icc -O3 -static -o fwdback_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7FWDBACK_BENCHMARK fwdback.c -lhmmer -leasel -lm + + ./fwdback_benchmark runs benchmark on both Forward and Backward parser + ./fwdback_benchmark -c -N100 compare scores of SSE to generic impl + ./fwdback_benchmark -x -N100 test that scores match trusted implementation. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { "-F", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-B", "only benchmark Forward", 0 }, + { "-B", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-F", "only benchmark Backward", 0 }, + { "-P", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "benchmark parsing version, not full version", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for Forward, Backward implementations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *fwd = NULL; + P7_OMX *bck = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float fsc, bsc; + float fsc2, bsc2; + double base_time, bench_time, Mcs; + + p7_FLogsumInit(); + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + if (esl_opt_GetBoolean(go, "-x") && p7_FLogsumError(-0.4, -0.5) > 0.0001) + p7_Fail("-x here requires p7_Logsum() recompiled in slow exact mode"); + + if (esl_opt_GetBoolean(go, "-P")) { + fwd = p7_omx_Create(gm->M, 0, L); + bck = p7_omx_Create(gm->M, 0, L); + } else { + fwd = p7_omx_Create(gm->M, L, L); + bck = p7_omx_Create(gm->M, L, L); + } + gx = p7_gmx_Create(gm->M, L); + + /* Get a baseline time: how long it takes just to generate the sequences */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + if (esl_opt_GetBoolean(go, "-P")) { + if (! esl_opt_GetBoolean(go, "-B")) p7_ForwardParser (dsq, L, om, fwd, &fsc); + if (! esl_opt_GetBoolean(go, "-F")) p7_BackwardParser(dsq, L, om, fwd, bck, &bsc); + } else { + if (! esl_opt_GetBoolean(go, "-B")) p7_Forward (dsq, L, om, fwd, &fsc); + if (! esl_opt_GetBoolean(go, "-F")) p7_Backward(dsq, L, om, fwd, bck, &bsc); + } + + if (esl_opt_GetBoolean(go, "-c") || esl_opt_GetBoolean(go, "-x")) + { + p7_GForward (dsq, L, gm, gx, &fsc2); + p7_GBackward(dsq, L, gm, gx, &bsc2); + printf("%.4f %.4f %.4f %.4f\n", fsc, bsc, fsc2, bsc2); + } + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(bck); + p7_omx_Destroy(fwd); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7FWDBACK_BENCHMARK*/ +/*------------------- end, benchmark driver ---------------------*/ + + + + + +/***************************************************************** + * 5. Unit tests. + *****************************************************************/ +#ifdef p7FWDBACK_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* + * compare to GForward() scores. + */ +static void +utest_fwdback(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + char *msg = "forward/backward unit test failed"; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *fwd = p7_omx_Create(M, 0, L); + P7_OMX *bck = p7_omx_Create(M, 0, L); + P7_OMX *oxf = p7_omx_Create(M, L, L); + P7_OMX *oxb = p7_omx_Create(M, L, L); + P7_GMX *gx = p7_gmx_Create(M, L); + float tolerance; + float fsc1, fsc2; + float bsc1, bsc2; + float generic_sc; + + p7_FLogsumInit(); + if (p7_FLogsumError(-0.4, -0.5) > 0.0001) tolerance = 1.0; /* weaker test against GForward() */ + else tolerance = 0.0001; /* stronger test: FLogsum() is in slow exact mode. */ + + p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om); + while (N--) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_Forward (dsq, L, om, oxf, &fsc1); + p7_Backward (dsq, L, om, oxf, oxb, &bsc1); + p7_ForwardParser (dsq, L, om, fwd, &fsc2); + p7_BackwardParser(dsq, L, om, fwd, bck, &bsc2); + p7_GForward (dsq, L, gm, gx, &generic_sc); + + /* Forward and Backward scores should agree with high tolerance */ + if (fabs(fsc1-bsc1) > 0.0001) esl_fatal(msg); + if (fabs(fsc2-bsc2) > 0.0001) esl_fatal(msg); + if (fabs(fsc1-fsc2) > 0.0001) esl_fatal(msg); + + /* GForward scores should approximate Forward scores, + * with tolerance that depends on how logsum.c was compiled + */ + if (fabs(fsc1-generic_sc) > tolerance) esl_fatal(msg); + } + + free(dsq); + p7_hmm_Destroy(hmm); + p7_omx_Destroy(oxb); + p7_omx_Destroy(oxf); + p7_omx_Destroy(bck); + p7_omx_Destroy(fwd); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); +} +#endif /*p7FWDBACK_TESTDRIVE*/ +/*---------------------- end, unit tests ------------------------*/ + + + + +/***************************************************************** + * 6. Test driver + *****************************************************************/ +#ifdef p7FWDBACK_TESTDRIVE +/* + gcc -g -Wall -msse2 -std=gnu99 -o fwdback_utest -I.. -L.. -I../../easel -L../../easel -Dp7FWDBACK_TESTDRIVE fwdback.c -lhmmer -leasel -lm + ./fwdback_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "145", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for SSE Forward, Backward implementations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* First round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_fwdback(r, abc, bg, M, L, N); /* normal sized models */ + utest_fwdback(r, abc, bg, 1, L, 10); /* size 1 models */ + utest_fwdback(r, abc, bg, M, 1, 10); /* size 1 sequences */ + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + /* Second round of tests for amino alphabets. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_fwdback(r, abc, bg, M, L, N); + utest_fwdback(r, abc, bg, 1, L, 10); + utest_fwdback(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*p7FWDBACK_TESTDRIVE*/ +/*--------------------- end, test driver ------------------------*/ + + + +/***************************************************************** + * 7. Example + *****************************************************************/ +#ifdef p7FWDBACK_EXAMPLE +/* Useful for debugging on small HMMs and sequences. + * + * Compares to GForward(). + * + gcc -g -Wall -msse2 -std=gnu99 -o fwdback_example -I.. -L.. -I../../easel -L../../easel -Dp7FWDBACK_EXAMPLE fwdback.c -lhmmer -leasel -lm + ./fwdback_example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_exponential.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_sse.h" + +#define STYLES "--fs,--sw,--ls,--s" /* Exclusive choice for alignment mode */ + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in one line awkable format", 0 }, + { "-P", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in profmark format", 0 }, + { "--fs", eslARG_NONE,"default",NULL, NULL, STYLES, NULL, NULL, "multihit local alignment", 0 }, + { "--sw", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit local alignment", 0 }, + { "--ls", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "multihit glocal alignment", 0 }, + { "--s", eslARG_NONE, FALSE, NULL, NULL, STYLES, NULL, NULL, "unihit glocal alignment", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of Forward/Backward (SSE versions)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *fwd = NULL; + P7_OMX *bck = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float fraw, braw, nullsc, fsc; + float gfraw, gbraw, gfsc; + double P, gP; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Open sequence file for reading */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + + /* Now reconfig the models however we were asked to */ + if (esl_opt_GetBoolean(go, "--fs")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + else if (esl_opt_GetBoolean(go, "--sw")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_UNILOCAL); + else if (esl_opt_GetBoolean(go, "--ls")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_GLOCAL); + else if (esl_opt_GetBoolean(go, "--s")) p7_ProfileConfig(hmm, bg, gm, sq->n, p7_UNIGLOCAL); + + /* now the optimized profile */ + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + /* p7_oprofile_Dump(stdout, om); */ + + /* allocate DP matrices for O(M+L) parsers */ + fwd = p7_omx_Create(gm->M, 0, sq->n); + bck = p7_omx_Create(gm->M, 0, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + + /* allocate DP matrices for O(ML) fills */ + /* fwd = p7_omx_Create(gm->M, sq->n, sq->n); */ + /* bck = p7_omx_Create(gm->M, sq->n, sq->n); */ + + /* p7_omx_SetDumpMode(stdout, fwd, TRUE); */ /* makes the fast DP algorithms dump their matrices */ + /* p7_omx_SetDumpMode(stdout, bck, TRUE); */ + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) + { + p7_oprofile_ReconfigLength(om, sq->n); + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_omx_GrowTo(fwd, om->M, 0, sq->n); + p7_omx_GrowTo(bck, om->M, 0, sq->n); + p7_gmx_GrowTo(gx, gm->M, sq->n); + + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + + p7_ForwardParser (sq->dsq, sq->n, om, fwd, &fraw); + p7_BackwardParser(sq->dsq, sq->n, om, fwd, bck, &braw); + + /* p7_Forward (sq->dsq, sq->n, om, fwd, &fsc); printf("forward: %.2f nats\n", fsc); */ + /* p7_Backward(sq->dsq, sq->n, om, fwd, bck, &bsc); printf("backward: %.2f nats\n", bsc); */ + + /* Comparison to other F/B implementations */ + p7_GForward (sq->dsq, sq->n, gm, gx, &gfraw); + p7_GBackward (sq->dsq, sq->n, gm, gx, &gbraw); + + /* p7_gmx_Dump(stdout, gx, p7_DEFAULT); */ + + fsc = (fraw-nullsc) / eslCONST_LOG2; + gfsc = (gfraw-nullsc) / eslCONST_LOG2; + P = esl_exp_surv(fsc, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + gP = esl_exp_surv(gfsc, gm->evparam[p7_FTAU], gm->evparam[p7_FLAMBDA]); + + if (esl_opt_GetBoolean(go, "-1")) + { + printf("%-30s\t%-20s\t%9.2g\t%6.1f\t%9.2g\t%6.1f\n", sq->name, hmm->name, P, fsc, gP, gfsc); + } + else if (esl_opt_GetBoolean(go, "-P")) + { /* output suitable for direct use in profmark benchmark postprocessors: */ + printf("%g\t%.2f\t%s\t%s\n", P, fsc, sq->name, hmm->name); + } + else + { + printf("target sequence: %s\n", sq->name); + printf("fwd filter raw score: %.2f nats\n", fraw); + printf("bck filter raw score: %.2f nats\n", braw); + printf("null score: %.2f nats\n", nullsc); + printf("per-seq score: %.2f bits\n", fsc); + printf("P-value: %g\n", P); + printf("GForward raw score: %.2f nats\n", gfraw); + printf("GBackward raw score: %.2f nats\n", gbraw); + printf("GForward seq score: %.2f bits\n", gfsc); + printf("GForward P-value: %g\n", gP); + } + + esl_sq_Reuse(sq); + } + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_omx_Destroy(bck); + p7_omx_Destroy(fwd); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7FWDBACK_EXAMPLE*/ + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/impl_sse.h b/bioinformaticsProject/hmmer/src/impl_sse/impl_sse.h new file mode 100644 index 0000000..0dcfb0c --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/impl_sse.h @@ -0,0 +1,434 @@ +/* SSE optimized implementation of various MSV, Viterbi, and Forward + * routines: structures, declarations, and macros. + * + * SRE, Sun Nov 25 11:23:02 2007 + */ +#ifndef P7_IMPL_SSE_INCLUDED +#define P7_IMPL_SSE_INCLUDED + +#include "p7_config.h" + +#include "esl_alphabet.h" +#include "esl_random.h" + +#include /* SSE */ +#include /* SSE2 */ +#ifdef __SSE3__ +#include /* DENORMAL_MODE */ +#endif +#include "hmmer.h" + +/* In calculating Q, the number of vectors we need in a row, we have + * to make sure there's at least 2, or a striped implementation fails. + */ +#define p7O_NQB(M) ( ESL_MAX(2, ((((M)-1) / 16) + 1))) /* 16 uchars */ +#define p7O_NQW(M) ( ESL_MAX(2, ((((M)-1) / 8) + 1))) /* 8 words */ +#define p7O_NQF(M) ( ESL_MAX(2, ((((M)-1) / 4) + 1))) /* 4 floats */ + +#define p7O_EXTRA_SB 17 /* see ssvfilter.c for explanation */ + + +/***************************************************************** + * 1. P7_OPROFILE: an optimized score profile + *****************************************************************/ +/* The OPROFILE is striped [Farrar07] and interleaved, as is the DP matrix. + * For example, the layout of a profile for an M=14 model (xref J2/46): + * + * rsc[x] : striped blocks of M emissions, starting with q=0 + * 1 11 1 1 + * 1593 2604 371x 482x + * + * tsc: grouped in order of accession in DP for 7 transition scores; + * starting at q=0 for all but the three transitions to M, which + * are rotated by -1 and rightshifted. DD's follow separately, + * starting at q=0. + * + * { 1 1 1 1 1 1 1 } + * { 1593 x482 x482 x482 1593 1593 1593 } + * { [tBMk] [tMM] [tIM] [tDM] [tMD] [tMI] [tII] } + * + * { 11 1 1 1 11 11 11 } + * { 2604 1593 1593 1593 2604 2604 2604 } + * { [tBMk] [tMM] [tIM] [tDM] [tMD] [tMI] [tII] } + * + * { 1 11 11 11 1 1 1 } + * { 371x 2604 2604 2604 371x 371x 371x } + * { [tBMk] [tMM] [tIM] [tDM] [tMD] [tMI] [tII] } + * + * { 1 1 1 1 1 1 1 } + * { 482x 371x 371x 371x 482x 482x 482x } + * { [tBMk] [tMM] [tIM] [tDM] [tMD] [tMI] [tII] } + * + * { 1 11 1 1 } + * { 1593 2604 371x 482x } + * { [TDD] [TDD] [TDD] [TDD] } + * + */ + +#define p7O_NXSTATES 4 /* special states stored: ENJC */ +#define p7O_NXTRANS 2 /* special states all have 2 transitions: move, loop */ +#define p7O_NTRANS 8 /* 7 core transitions + BMk entry */ +enum p7o_xstates_e { p7O_E = 0, p7O_N = 1, p7O_J = 2, p7O_C = 3 }; +enum p7o_xtransitions_e { p7O_MOVE = 0, p7O_LOOP = 1 }; +enum p7o_tsc_e { p7O_BM = 0, p7O_MM = 1, p7O_IM = 2, p7O_DM = 3, p7O_MD = 4, p7O_MI = 5, p7O_II = 6, p7O_DD = 7 }; + +typedef struct p7_oprofile_s { + /* MSVFilter uses scaled, biased uchars: 16x unsigned byte vectors */ + __m128i **rbv; /* match scores [x][q]: rm, rm[0] are allocated */ + __m128i **sbv; /* match scores for ssvfilter */ + uint8_t tbm_b; /* constant B->Mk cost: scaled log 2/M(M+1) */ + uint8_t tec_b; /* constant E->C cost: scaled log 0.5 */ + uint8_t tjb_b; /* constant NCJ move cost: scaled log 3/(L+3) */ + float scale_b; /* typically 3 / log2: scores scale to 1/3 bits */ + uint8_t base_b; /* typically +190: offset of uchar scores */ + uint8_t bias_b; /* positive bias to emission scores, make them >=0 */ + + /* ViterbiFilter uses scaled swords: 8x signed 16-bit integer vectors */ + __m128i **rwv; /* [x][q]: rw, rw[0] are allocated [Kp][Q8] */ + __m128i *twv; /* transition score blocks [8*Q8] */ + int16_t xw[p7O_NXSTATES][p7O_NXTRANS]; /* NECJ state transition costs */ + float scale_w; /* score units: typically 500 / log(2), 1/500 bits */ + int16_t base_w; /* offset of sword scores: typically +12000 */ + int16_t ddbound_w; /* threshold precalculated for lazy DD evaluation */ + float ncj_roundoff; /* missing precision on NN,CC,JJ after rounding */ + + /* Forward, Backward use IEEE754 single-precision floats: 4x vectors */ + __m128 **rfv; /* [x][q]: rf, rf[0] are allocated [Kp][Q4] */ + __m128 *tfv; /* transition probability blocks [8*Q4] */ + float xf[p7O_NXSTATES][p7O_NXTRANS]; /* NECJ transition costs */ + + /* Our actual vector mallocs, before we align the memory */ + __m128i *rbv_mem; + __m128i *sbv_mem; + __m128i *rwv_mem; + __m128i *twv_mem; + __m128 *tfv_mem; + __m128 *rfv_mem; + + /* Disk offset information for hmmpfam's fast model retrieval */ + off_t offs[p7_NOFFSETS]; /* p7_{MFP}OFFSET, or -1 */ + + /* Disk offset bookkeeping for h3f: */ + off_t roff; /* record offset (start of record); -1 if none */ + off_t eoff; /* offset to last byte of record; -1 if unknown */ + + /* Information, annotation copied from parent profile: */ + char *name; /* unique name of model */ + char *acc; /* unique accession of model, or NULL */ + char *desc; /* brief (1-line) description of model, or NULL */ + char *rf; /* reference line 1..M; *ref=0: unused */ + char *mm; /* modelmask line 1..M; *ref=0: unused */ + char *cs; /* consensus structure line 1..M, *cs=0: unused */ + char *consensus; /* consensus residues for ali display, 1..M */ + float evparam[p7_NEVPARAM]; /* parameters for determining E-values, or UNSET */ + float cutoff[p7_NCUTOFFS]; /* per-seq/per-dom bit cutoffs, or UNSET */ + float compo[p7_MAXABET]; /* per-model HMM filter composition, or UNSET */ + const ESL_ALPHABET *abc; /* copy of ptr to alphabet information */ + + /* Information about current configuration, size, allocation */ + int L; /* current configured target seq length */ + int M; /* model length */ + int max_length; /* upper bound on emitted sequence length */ + int allocM; /* maximum model length currently allocated for */ + int allocQ4; /* p7_NQF(allocM): alloc size for tf, rf */ + int allocQ8; /* p7_NQW(allocM): alloc size for tw, rw */ + int allocQ16; /* p7_NQB(allocM): alloc size for rb */ + int mode; /* currently must be p7_LOCAL */ + float nj; /* expected # of J's: 0 or 1, uni vs. multihit */ + + int clone; /* this optimized profile structure is just a copy */ + /* of another profile structre. all pointers of */ + /* this structure should not be freed. */ +} P7_OPROFILE; + +typedef struct { + int count; /* number of objects in the block */ + int listSize; /* maximum number elements in the list */ + P7_OPROFILE **list; /* array of objects */ +} P7_OM_BLOCK; + +/* retrieve match odds ratio [k][x] + * this gets used in p7_alidisplay.c, when we're deciding if a residue is conserved or not */ +static inline float +p7_oprofile_FGetEmission(const P7_OPROFILE *om, int k, int x) +{ + union { __m128 v; float p[4]; } u; + int Q = p7O_NQF(om->M); + int q = ((k-1) % Q); + int r = (k-1)/Q; + u.v = om->rfv[x][q]; + return u.p[r]; +} + +/***************************************************************** + * 2. P7_OMX: a one-row dynamic programming matrix + *****************************************************************/ + +enum p7x_scells_e { p7X_M = 0, p7X_D = 1, p7X_I = 2 }; +#define p7X_NSCELLS 3 + +/* Besides ENJBC states, we may also store a rescaling factor on each row */ +enum p7x_xcells_e { p7X_E = 0, p7X_N = 1, p7X_J = 2, p7X_B = 3, p7X_C = 4, p7X_SCALE = 5 }; +#define p7X_NXCELLS 6 + +/* + * + * dpf[][] + * to access M(i,k) for i=0,1..L; k=1..M: dpf[i][(k-1)/4 + p7X_M].element[(k-1)%4] + * + * xmx[] arrays for individual special states: + * xmx[ENJBC] = [0 1 2 3][4 5 6 7]..[L-2 L-1 L x] XRQ >= (L/4)+1 + * to access B[i] for example, for i=0..L: xmx[B][i/4].x[i%4] (quad i/4; element i%4). + */ +typedef struct p7_omx_s { + int M; /* current actual model dimension */ + int L; /* current actual sequence dimension */ + + /* The main dynamic programming matrix for M,D,I states */ + __m128 **dpf; /* striped DP matrix for [0,1..L][0..Q-1][MDI], float vectors */ + __m128i **dpw; /* striped DP matrix for [0,1..L][0..Q-1][MDI], sword vectors */ + __m128i **dpb; /* striped DP matrix for [0,1..L][0..Q-1] uchar vectors */ + void *dp_mem; /* DP memory shared by , , */ + int allocR; /* current allocated # rows in dp{uf}. allocR >= validR >= L+1 */ + int validR; /* current # of rows actually pointing at DP memory */ + int allocQ4; /* current set row width in quads: allocQ4*4 >= M */ + int allocQ8; /* current set row width in octets: allocQ8*8 >= M */ + int allocQ16; /* current set row width in 16-mers: allocQ16*16 >= M */ + size_t ncells; /* current allocation size of , in accessible cells */ + + /* The X states (for full,parser; or NULL, for scorer) */ + float *xmx; /* logically [0.1..L][ENJBCS]; indexed [i*p7X_NXCELLS+s] */ + void *x_mem; /* X memory before 16-byte alignment */ + int allocXR; /* # of rows allocated in each xmx[] array; allocXR >= L+1 */ + float totscale; /* log of the product of all scale factors (0.0 if unscaled) */ + int has_own_scales; /* TRUE to use own scale factors; FALSE if scales provided */ + + /* Parsers,scorers only hold a row at a time, so to get them to dump full matrix, it + * must be done during a DP calculation, after each row is calculated + */ + int debugging; /* TRUE if we're in debugging mode */ + FILE *dfp; /* output stream for diagnostics */ +} P7_OMX; + +/* ?MXo(q) access macros work for either uchar or float, so long as you + * init your "dp" to point to the appropriate array. + */ +#define MMXo(q) (dp[(q) * p7X_NSCELLS + p7X_M]) +#define DMXo(q) (dp[(q) * p7X_NSCELLS + p7X_D]) +#define IMXo(q) (dp[(q) * p7X_NSCELLS + p7X_I]) +#define XMXo(i,s) (xmx[(i) * p7X_NXCELLS + s]) + +/* and this version works with a ptr to the approp DP row. */ +#define MMO(dp,q) ((dp)[(q) * p7X_NSCELLS + p7X_M]) +#define DMO(dp,q) ((dp)[(q) * p7X_NSCELLS + p7X_D]) +#define IMO(dp,q) ((dp)[(q) * p7X_NSCELLS + p7X_I]) + +static inline float +p7_omx_FGetMDI(const P7_OMX *ox, int s, int i, int k) +{ + union { __m128 v; float p[4]; } u; + int Q = p7O_NQF(ox->M); + int q = p7X_NSCELLS * ((k-1) % Q) + s; + int r = (k-1)/Q; + u.v = ox->dpf[i][q]; + return u.p[r]; +} + +static inline void +p7_omx_FSetMDI(const P7_OMX *ox, int s, int i, int k, float val) +{ + union { __m128 v; float p[4]; } u; + int Q = p7O_NQF(ox->M); + int q = p7X_NSCELLS * ((k-1) % Q) + s; + int r = (k-1)/Q; + + u.v = ox->dpf[i][q]; + u.p[r] = val; + ox->dpf[i][q] = u.v; +} + + + + +/***************************************************************** + * 3. Declarations of the external API. + *****************************************************************/ + +/* p7_omx.c */ +extern P7_OMX *p7_omx_Create(int allocM, int allocL, int allocXL); +extern int p7_omx_GrowTo(P7_OMX *ox, int allocM, int allocL, int allocXL); +extern int p7_omx_FDeconvert(P7_OMX *ox, P7_GMX *gx); +extern int p7_omx_Reuse (P7_OMX *ox); +extern void p7_omx_Destroy(P7_OMX *ox); + +extern int p7_omx_SetDumpMode(FILE *fp, P7_OMX *ox, int truefalse); +extern int p7_omx_DumpMFRow(P7_OMX *ox, int rowi, uint8_t xE, uint8_t xN, uint8_t xJ, uint8_t xB, uint8_t xC); +extern int p7_omx_DumpVFRow(P7_OMX *ox, int rowi, int16_t xE, int16_t xN, int16_t xJ, int16_t xB, int16_t xC); +extern int p7_omx_DumpFBRow(P7_OMX *ox, int logify, int rowi, int width, int precision, float xE, float xN, float xJ, float xB, float xC); + + + +/* p7_oprofile.c */ +extern P7_OPROFILE *p7_oprofile_Create(int M, const ESL_ALPHABET *abc); +extern int p7_oprofile_IsLocal(const P7_OPROFILE *om); +extern void p7_oprofile_Destroy(P7_OPROFILE *om); +extern size_t p7_oprofile_Sizeof(P7_OPROFILE *om); +extern P7_OPROFILE *p7_oprofile_Copy(P7_OPROFILE *om); +extern P7_OPROFILE *p7_oprofile_Clone(const P7_OPROFILE *om); +extern int p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr); +extern int p7_oprofile_UpdateVitEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr); +extern int p7_oprofile_UpdateMSVEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr); + + +extern int p7_oprofile_Convert(const P7_PROFILE *gm, P7_OPROFILE *om); +extern int p7_oprofile_ReconfigLength (P7_OPROFILE *om, int L); +extern int p7_oprofile_ReconfigMSVLength (P7_OPROFILE *om, int L); +extern int p7_oprofile_ReconfigRestLength(P7_OPROFILE *om, int L); +extern int p7_oprofile_ReconfigMultihit (P7_OPROFILE *om, int L); +extern int p7_oprofile_ReconfigUnihit (P7_OPROFILE *om, int L); + +extern int p7_oprofile_Dump(FILE *fp, const P7_OPROFILE *om); +extern int p7_oprofile_Sample(ESL_RANDOMNESS *r, const ESL_ALPHABET *abc, const P7_BG *bg, int M, int L, + P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_OPROFILE **ret_om); +extern int p7_oprofile_Compare(const P7_OPROFILE *om1, const P7_OPROFILE *om2, float tol, char *errmsg); +extern int p7_profile_SameAsMF(const P7_OPROFILE *om, P7_PROFILE *gm); +extern int p7_profile_SameAsVF(const P7_OPROFILE *om, P7_PROFILE *gm); + +extern int p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr ); +extern int p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr ); +extern int p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr ); +extern int p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr ); + +/* decoding.c */ +extern int p7_Decoding (const P7_OPROFILE *om, const P7_OMX *oxf, P7_OMX *oxb, P7_OMX *pp); +extern int p7_DomainDecoding(const P7_OPROFILE *om, const P7_OMX *oxf, const P7_OMX *oxb, P7_DOMAINDEF *ddef); + +/* fwdback.c */ +extern int p7_Forward (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *fwd, float *opt_sc); +extern int p7_ForwardParser (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *fwd, float *opt_sc); +extern int p7_Backward (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc); +extern int p7_BackwardParser(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc); + +/* io.c */ +extern int p7_oprofile_Write(FILE *ffp, FILE *pfp, P7_OPROFILE *om); +extern int p7_oprofile_ReadMSV (P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OPROFILE **ret_om); +extern int p7_oprofile_ReadInfoMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OPROFILE **ret_om); +extern int p7_oprofile_ReadBlockMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OM_BLOCK *hmmBlock); +extern int p7_oprofile_ReadRest(P7_HMMFILE *hfp, P7_OPROFILE *om); +extern int p7_oprofile_Position(P7_HMMFILE *hfp, off_t offset); + +extern P7_OM_BLOCK *p7_oprofile_CreateBlock(int size); +extern void p7_oprofile_DestroyBlock(P7_OM_BLOCK *block); + +/* ssvfilter.c */ +extern int p7_SSVFilter (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, float *ret_sc); + +/* msvfilter.c */ +extern int p7_MSVFilter (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc); +extern int p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist); + + +/* null2.c */ +extern int p7_Null2_ByExpectation(const P7_OPROFILE *om, const P7_OMX *pp, float *null2); +extern int p7_Null2_ByTrace (const P7_OPROFILE *om, const P7_TRACE *tr, int zstart, int zend, P7_OMX *wrk, float *null2); + +/* optacc.c */ +extern int p7_OptimalAccuracy(const P7_OPROFILE *om, const P7_OMX *pp, P7_OMX *ox, float *ret_e); +extern int p7_OATrace (const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, P7_TRACE *tr); + +/* stotrace.c */ +extern int p7_StochasticTrace(ESL_RANDOMNESS *rng, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *ox, P7_TRACE *tr); + +/* vitfilter.c */ +extern int p7_ViterbiFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc); +extern int p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, + float filtersc, double P, P7_HMM_WINDOWLIST *windowlist); + + +/* vitscore.c */ +extern int p7_ViterbiScore (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc); + + +/***************************************************************** + * 4. Implementation specific initialization + *****************************************************************/ +static inline void +impl_Init(void) +{ +#ifdef HAVE_FLUSH_ZERO_MODE + /* In order to avoid the performance penalty dealing with sub-normal + * values in the floating point calculations, set the processor flag + * so sub-normals are "flushed" immediately to zero. + */ + _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); +#endif + +#ifdef _PMMINTRIN_H_INCLUDED + /* + * FLUSH_ZERO doesn't necessarily work in non-SIMD calculations + * (yes on 64-bit, maybe not of 32-bit). This ensures that those + * scalar calculations will agree across architectures. + * (See TW notes 2012/0106_printf_underflow_bug/00NOTES for details) + */ + _MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON); +#endif +} +#endif /* P7_IMPL_SSE_INCLUDED */ + + +/* + * Currently (and this remains in flux as of 14 Dec 07) an optimized + * implementation is required to provide an MSVFilter(), + * ViterbiFilter() and a ForwardFilter() implementation. A call to + * p7_oprofile_Convert() makes an optimized profile that works for + * all filters. + * + * Any "Filter" returns a score may be an approximation (with + * characterized or at least characterizable error), and which may + * have limited upper range, such that high scores are returned as + * eslINFINITY. Additionally, Filters might only work on local + * alignment modes, because they are allowed to make assumptions about + * the range of scores. + * + * Here, MSVFilter() and ViterbiFilter() are 8-bit lspace + * implementations with limited precision and limited range (max 20 + * bits); ForwardFilter() is a pspace float implementation with + * correct precision and limited range (max ~127 bits). Both require + * local mode models. + * + * An optimized implementation may also provide other optimized + * routines. It provides specialized Convert*() functions for these, + * which may no-op (if the OPROFILE already suffices), or may + * overwrite parts of the OPROFILE that Filters or other routines + * might need. Therefore, after using a "bonus" function, a fresh + * Convert() will be needed before a Filter() is called again. This + * API is tentative. + * + * For example, here, ViterbiScore() is a 32-bit lspace float SSE + * implementation of the Viterbi algorithm. + * + * A "Score" function might be an additional target for optimization, + * for example. A "Score" function returns a correct score with full + * floating-point precision and range, and works for any mode model. + * + * In the generic implementation, profile scores are 32-bit floating + * point log-odds scores. In an optimized implementation, internally, + * profile scores can be of any type, and may be in log space (lspace) + * or probability space (pspace). (Calculations in probability space + * are useful in the Forward algorithm, but always limit range.) A + * shorthand of "lspace uchar" means log-odds scores stored as + * unsigned chars, for example; "pspace float" means odds ratios + * stored as floats. + * + * A note on memory alignment: malloc() is required to return a + * pointer "suitably aligned so that it may be aligned to a pointer of + * any type of object" (C99 7.20.3). __m128 vectors are 128-bits wide, + * so malloc() ought to return a pointer aligned on a 16-byte + * boundary. However, this is not the case for glibc, and apparently + * other system libraries. Google turns up threads of arguments + * between glibc and gcc developers over whose problem this is; this + * argument has apparently not been resolved, and is of no help. + * Here, we manually align the relevant pointers by overallocating in + * *_mem with malloc, then arithmetically manipulating the address to + * mask off (~0xf). + */ diff --git a/bioinformaticsProject/hmmer/src/impl_sse/io.c b/bioinformaticsProject/hmmer/src/impl_sse/io.c new file mode 100644 index 0000000..3ff8568 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/io.c @@ -0,0 +1,1021 @@ +/* Saving optimized profiles in two pieces: MSV part and the rest. + * + * To accelerate hmmscan, which is limited by speed of HMM input, + * hmmpress saves an optimized profile in two pieces. One file gets + * a bare minimum of information needed to run the MSV filter. + * The other file gets the rest of the profile. Both files are binary, + * stored exactly as the has the information internally. + * + * By convention, hmmpress calls the two files .h3f and + * .h3p, which nominally stand for "H3 filter" and "H3 + * profile". + * + * Contents: + * 1. Writing optimized profiles to two files. + * 2. Reading optimized profiles in two stages. + * 3. Utility routines. + * 4. Benchmark driver. + * 5. Unit tests. + * 6. Test driver. + * 7. Example. + * + * TODO: + * - crossplatform binary compatibility (endedness and off_t) + * - Write() could save a tag (model #) instead of name for verifying + * that MSV and Rest parts match, saving a malloc for var-lengthed name + * in ReadRest(). + */ +#include "p7_config.h" + +#include +#include +#include + +#ifdef HMMER_THREADS +#include +#endif + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static uint32_t v3f_fmagic = 0xb3e6e6f3; /* 3/f binary MSV file, SSE: "3ffs" = 0x 33 66 66 73 + 0x80808080 */ +static uint32_t v3f_pmagic = 0xb3e6f0f3; /* 3/f binary profile file, SSE: "3fps" = 0x 33 66 70 73 + 0x80808080 */ + +static uint32_t v3e_fmagic = 0xb3e5e6f3; /* 3/e binary MSV file, SSE: "3efs" = 0x 33 65 66 73 + 0x80808080 */ +static uint32_t v3e_pmagic = 0xb3e5f0f3; /* 3/e binary profile file, SSE: "3eps" = 0x 33 65 70 73 + 0x80808080 */ + +static uint32_t v3d_fmagic = 0xb3e4e6f3; /* 3/d binary MSV file, SSE: "3dfs" = 0x 33 64 66 73 + 0x80808080 */ +static uint32_t v3d_pmagic = 0xb3e4f0f3; /* 3/d binary profile file, SSE: "3dps" = 0x 33 64 70 73 + 0x80808080 */ + +static uint32_t v3c_fmagic = 0xb3e3e6f3; /* 3/c binary MSV file, SSE: "3cfs" = 0x 33 63 66 73 + 0x80808080 */ +static uint32_t v3c_pmagic = 0xb3e3f0f3; /* 3/c binary profile file, SSE: "3cps" = 0x 33 63 70 73 + 0x80808080 */ + +static uint32_t v3b_fmagic = 0xb3e2e6f3; /* 3/b binary MSV file, SSE: "3bfs" = 0x 33 62 66 73 + 0x80808080 */ +static uint32_t v3b_pmagic = 0xb3e2f0f3; /* 3/b binary profile file, SSE: "3bps" = 0x 33 62 70 73 + 0x80808080 */ + +static uint32_t v3a_fmagic = 0xe8b3e6f3; /* 3/a binary MSV file, SSE: "h3fs" = 0x 68 33 66 73 + 0x80808080 */ +static uint32_t v3a_pmagic = 0xe8b3f0f3; /* 3/a binary profile file, SSE: "h3ps" = 0x 68 33 70 73 + 0x80808080 */ + + +/***************************************************************** + *# 1. Writing optimized profiles to two files. + *****************************************************************/ + +/* Function: p7_oprofile_Write() + * Synopsis: Write an optimized profile in two files. + * + * Purpose: Write the MSV filter part of to open binary stream + * , and the rest of the model to . These two + * streams will typically be <.h3f> and <.h3p> files + * being created by hmmpress. + * + * Args: ffp - open binary stream for saving MSV filter part + * pfp - open binary stream for saving rest of profile + * om - optimized profile to save + * + * Returns: on success. + * + * Throws: on any write failure, such as filling + * the disk. + */ +int +p7_oprofile_Write(FILE *ffp, FILE *pfp, P7_OPROFILE *om) +{ + int Q4 = p7O_NQF(om->M); + int Q8 = p7O_NQW(om->M); + int Q16 = p7O_NQB(om->M); + int Q16x = p7O_NQB(om->M) + p7O_EXTRA_SB; + int n = strlen(om->name); + int x; + + /* is the part of the oprofile that MSVFilter() needs */ + if (fwrite((char *) &(v3f_fmagic), sizeof(uint32_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->M), sizeof(int), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->abc->type), sizeof(int), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &n, sizeof(int), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->name, sizeof(char), n+1, ffp) != n+1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->max_length),sizeof(int), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->tbm_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->tec_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->tjb_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->scale_b), sizeof(float), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->base_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->bias_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + for (x = 0; x < om->abc->Kp; x++) + if (fwrite( (char *) om->sbv[x], sizeof(__m128i), Q16x, ffp) != Q16x) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + for (x = 0; x < om->abc->Kp; x++) + if (fwrite( (char *) om->rbv[x], sizeof(__m128i), Q16, ffp) != Q16) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + if (fwrite((char *) om->evparam, sizeof(float), p7_NEVPARAM, ffp) != p7_NEVPARAM) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->offs, sizeof(off_t), p7_NOFFSETS, ffp) != p7_NOFFSETS) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->compo, sizeof(float), p7_MAXABET, ffp) != p7_MAXABET) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(v3f_fmagic), sizeof(uint32_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); /* sentinel */ + + /* gets the rest of the oprofile */ + if (fwrite((char *) &(v3f_pmagic), sizeof(uint32_t), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->M), sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->abc->type), sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->name, sizeof(char), n+1, pfp) != n+1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + if (om->acc == NULL) { + n = 0; + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + } else { + n = strlen(om->acc); + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->acc, sizeof(char), n+1, pfp) != n+1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + } + + if (om->desc == NULL) { + n = 0; + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + } else { + n = strlen(om->desc); + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->desc, sizeof(char), n+1, pfp) != n+1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + } + + if (fwrite((char *) om->rf, sizeof(char), om->M+2, pfp) != om->M+2) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->mm, sizeof(char), om->M+2, pfp) != om->M+2) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->cs, sizeof(char), om->M+2, pfp) != om->M+2) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->consensus, sizeof(char), om->M+2, pfp) != om->M+2) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + /* ViterbiFilter part */ + if (fwrite((char *) om->twv, sizeof(__m128i), 8*Q8, pfp) != 8*Q8) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + for (x = 0; x < om->abc->Kp; x++) + if (fwrite( (char *) om->rwv[x], sizeof(__m128i), Q8, pfp) != Q8) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (fwrite( (char *) om->xw[x], sizeof(int16_t), p7O_NXTRANS, pfp) != p7O_NXTRANS) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->scale_w), sizeof(float), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->base_w), sizeof(int16_t), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->ddbound_w), sizeof(int16_t), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->ncj_roundoff), sizeof(float), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + /* Forward/Backward part */ + if (fwrite((char *) om->tfv, sizeof(__m128), 8*Q4, pfp) != 8*Q4) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + for (x = 0; x < om->abc->Kp; x++) + if (fwrite( (char *) om->rfv[x], sizeof(__m128), Q4, pfp) != Q4) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (fwrite( (char *) om->xf[x], sizeof(float), p7O_NXTRANS, pfp) != p7O_NXTRANS) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + if (fwrite((char *) om->cutoff, sizeof(float), p7_NCUTOFFS, pfp) != p7_NCUTOFFS) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->nj), sizeof(float), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->mode), sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->L) , sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(v3f_pmagic), sizeof(uint32_t), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); /* sentinel */ + return eslOK; +} +/*---------------- end, writing oprofile ------------------------*/ + + + + +/***************************************************************** + * 2. Reading optimized profiles in two stages. + *****************************************************************/ + +/* Function: p7_oprofile_ReadMSV() + * Synopsis: Read MSV filter part of an optimized profile. + * + * Purpose: Read the MSV filter part of a profile from the + * <.h3f> file associated with an open HMM file . + * Allocate a new model, populate it with this minimal + * MSV filter information, and return a pointer to it + * in <*ret_om>. + * + * Our alphabet may get set by the first HMM we read. If + * <*byp_abc> is at start, create a new alphabet and + * return a pointer to it in <*byp_abc>. If <*byp_abc> is + * non-, it is assumed to be a pointer to an existing + * alphabet; we verify that the HMM's alphabet matches it + * and <*ret_abc> isn't changed. This is the same + * convention used by . + * + * The <.h3f> file was opened automatically, if it existed, + * when the HMM file was opened with . + * + * When no more HMMs remain in the file, return . + * + * Args: hfp - open HMM file, with associated .h3p file + * byp_abc - BYPASS: <*byp_abc == ESL_ALPHABET *> if known; + * <*byp_abc == NULL> if desired; + * if unwanted. + * ret_om - RETURN: newly allocated with MSV filter + * data filled in. + * + * Returns: on success. <*ret_om> is allocated here; + * caller free's with . + * <*byp_abc> is allocated here if it was requested; + * caller free's with . + * + * Returns if has no <.h3f> file open, + * or on any parsing error. + * + * Returns if the HMM we read is incompatible + * with the existing alphabet <*byp_abc> led us to expect. + * + * On any returned error, errbuf> contains an + * informative error message. + * + * Throws: on allocation error. + */ +int +p7_oprofile_ReadMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OPROFILE **ret_om) +{ + P7_OPROFILE *om = NULL; + ESL_ALPHABET *abc = NULL; + uint32_t magic; + off_t roff; + int M, Q16, Q16x; + int x,n; + int alphatype; + int status; + + hfp->errbuf[0] = '\0'; + if (hfp->ffp == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no MSV profile file; hmmpress probably wasn't run"); + if (feof(hfp->ffp)) { status = eslEOF; goto ERROR; } /* normal EOF: no more profiles */ + + /* keep track of the starting offset of the MSV model */ + roff = ftello(hfp->ffp); + + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->ffp)) { status = eslEOF; goto ERROR; } + if (magic == v3a_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/a); please hmmpress your HMM file again"); + if (magic == v3b_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/b); please hmmpress your HMM file again"); + if (magic == v3c_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/c); please hmmpress your HMM file again"); + if (magic == v3d_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/d); please hmmpress your HMM file again"); + if (magic == v3e_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/e); please hmmpress your HMM file again"); + if (magic != v3f_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic; not an HMM database?"); + + if (! fread( (char *) &M, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model size M"); + if (! fread( (char *) &alphatype, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read alphabet type"); + Q16 = p7O_NQB(M); + Q16x = p7O_NQB(M) + p7O_EXTRA_SB; + + /* Set or verify alphabet. */ + if (byp_abc == NULL || *byp_abc == NULL) { /* alphabet unknown: whether wanted or unwanted, make a new one */ + if ((abc = esl_alphabet_Create(alphatype)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed: alphabet"); + } else { /* alphabet already known: verify it against what we see in the HMM */ + abc = *byp_abc; + if (abc->type != alphatype) + ESL_XFAIL(eslEINCOMPAT, hfp->errbuf, "Alphabet type mismatch: was %s, but current profile says %s", + esl_abc_DecodeType(abc->type), esl_abc_DecodeType(alphatype)); + } + /* Now we know the sizes of things, so we can allocate. */ + if ((om = p7_oprofile_Create(M, abc)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed: oprofile"); + om->M = M; + om->roff = roff; + + if (! fread((char *) &n, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name length"); + ESL_ALLOC(om->name, sizeof(char) * (n+1)); + if (! fread((char *) om->name, sizeof(char), n+1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name"); + + if (! fread((char *) &(om->max_length),sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read max_length"); + if (! fread((char *) &(om->tbm_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read tbm"); + if (! fread((char *) &(om->tec_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read tec"); + if (! fread((char *) &(om->tjb_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read tjb"); + if (! fread((char *) &(om->scale_b), sizeof(float), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read scale"); + if (! fread((char *) &(om->base_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read base"); + if (! fread((char *) &(om->bias_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read bias"); + for (x = 0; x < abc->Kp; x++) + if (! fread((char *) om->sbv[x], sizeof(__m128i), Q16x, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read ssv scores at %d [residue %c]", x, abc->sym[x]); + for (x = 0; x < abc->Kp; x++) + if (! fread((char *) om->rbv[x], sizeof(__m128i), Q16, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read msv scores at %d [residue %c]", x, abc->sym[x]); + if (! fread((char *) om->evparam, sizeof(float), p7_NEVPARAM, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read stat params"); + if (! fread((char *) om->offs, sizeof(off_t), p7_NOFFSETS, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read hmmpfam offsets"); + if (! fread((char *) om->compo, sizeof(float), p7_MAXABET, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model composition"); + + /* record ends with magic sentinel, for detecting binary file corruption */ + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no sentinel magic: .h3f file corrupted?"); + if (magic != v3f_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad sentinel magic; .h3f file corrupted?"); + + /* keep track of the ending offset of the MSV model */ + om->eoff = ftello(hfp->ffp) - 1;; + + if (byp_abc != NULL) *byp_abc = abc; /* pass alphabet (whether new or not) back to caller, if caller wanted it */ + *ret_om = om; + return eslOK; + + ERROR: + if (abc != NULL && (byp_abc == NULL || *byp_abc == NULL)) esl_alphabet_Destroy(abc); /* destroy alphabet if we created it here */ + if (om != NULL) p7_oprofile_Destroy(om); + *ret_om = NULL; + return status; +} + + +/* Function: p7_oprofile_ReadInfoMSV() + * Synopsis: Read MSV filter info, but not the scores. + * + * Purpose: Read just enough of the MSV filter header from the + * <.h3f> file associated with an open HMM file + * to skip ahead to the next MSV filter. Allocate a new + * model, populate it with just the file offsets of this + * model and return a pointer to it in <*ret_om>. + * + * The <.h3f> file was opened automatically, if it existed, + * when the HMM file was opened with . + * + * When no more HMMs remain in the file, return . + * + * Args: hfp - open HMM file, with associated .h3p file + * byp_abc - BYPASS: <*byp_abc == ESL_ALPHABET *> if known; + * <*byp_abc == NULL> if desired; + * if unwanted. + * ret_om - RETURN: newly allocated with partial MSV + * filter data filled in. + * + * Returns: on success. <*ret_om> is allocated here; + * caller free's with . + * <*byp_abc> is allocated here if it was requested; + * caller free's with . + * + * Returns if has no <.h3f> file open, + * or on any parsing error. + * + * Returns if the HMM we read is incompatible + * with the existing alphabet <*byp_abc> led us to expect. + * + * On any returned error, errbuf> contains an + * informative error message. + * + * Throws: on allocation error. + */ +int +p7_oprofile_ReadInfoMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OPROFILE **ret_om) +{ + P7_OPROFILE *om = NULL; + ESL_ALPHABET *abc = NULL; + uint32_t magic; + off_t roff; + int M, Q16, Q16x; + int n; + int alphatype; + int status; + + hfp->errbuf[0] = '\0'; + if (hfp->ffp == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no MSV profile file; hmmpress probably wasn't run"); + if (feof(hfp->ffp)) { status = eslEOF; goto ERROR; } /* normal EOF: no more profiles */ + + /* keep track of the starting offset of the MSV model */ + roff = ftello(hfp->ffp); + + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->ffp)) { status = eslEOF; goto ERROR; } + if (magic == v3a_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/a); please hmmpress your HMM file again"); + if (magic == v3b_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/b); please hmmpress your HMM file again"); + if (magic == v3c_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/c); please hmmpress your HMM file again"); + if (magic == v3d_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/d); please hmmpress your HMM file again"); + if (magic == v3e_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/e); please hmmpress your HMM file again"); + if (magic != v3f_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic; not an HMM database?"); + + if (! fread( (char *) &M, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model size M"); + if (! fread( (char *) &alphatype, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read alphabet type"); + Q16 = p7O_NQB(M); + Q16x = p7O_NQB(M) + p7O_EXTRA_SB; + + /* Set or verify alphabet. */ + if (byp_abc == NULL || *byp_abc == NULL) { /* alphabet unknown: whether wanted or unwanted, make a new one */ + if ((abc = esl_alphabet_Create(alphatype)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed: alphabet"); + } else { /* alphabet already known: verify it against what we see in the HMM */ + abc = *byp_abc; + if (abc->type != alphatype) + ESL_XFAIL(eslEINCOMPAT, hfp->errbuf, "Alphabet type mismatch: was %s, but current profile says %s", + esl_abc_DecodeType(abc->type), esl_abc_DecodeType(alphatype)); + } + /* Now we know the sizes of things, so we can allocate. */ + if ((om = p7_oprofile_Create(M, abc)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed: oprofile"); + om->M = M; + om->roff = roff; + + /* calculate the remaining length of the msv model */ + om->name = NULL; + if (!fread((char *) &n, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name length"); + roff += (sizeof(int) * 5); /* magic, model size, alphabet type, max length, name length */ + roff += (sizeof(char) * (n + 1)); /* name string and terminator '\0' */ + roff += (sizeof(float) + sizeof(uint8_t) * 5); /* transition costs, bias, scale and base */ + roff += (sizeof(__m128i) * abc->Kp * Q16x); /* ssv scores */ + roff += (sizeof(__m128i) * abc->Kp * Q16); /* msv scores */ + roff += (sizeof(float) * p7_NEVPARAM); /* stat params */ + roff += (sizeof(off_t) * p7_NOFFSETS); /* hmmscan offsets */ + roff += (sizeof(float) * p7_MAXABET); /* model composition */ + roff += sizeof(uint32_t); /* sentinel magic */ + + /* keep track of the ending offset of the MSV model */ + p7_oprofile_Position(hfp, roff); + om->eoff = ftello(hfp->ffp) - 1; + + if (byp_abc != NULL) *byp_abc = abc; /* pass alphabet (whether new or not) back to caller, if caller wanted it */ + *ret_om = om; + return eslOK; + + ERROR: + if (abc != NULL && (byp_abc == NULL || *byp_abc == NULL)) esl_alphabet_Destroy(abc); /* destroy alphabet if we created it here */ + if (om != NULL) p7_oprofile_Destroy(om); + *ret_om = NULL; + return status; +} + + +/* Function: p7_oprofile_ReadBlockMSV() + * Synopsis: Read the next block of optimized profiles from a hmm file. + * + * Purpose: Reads a block of optimized profiles from open hmm file into + * . + * + * Returns: on success; the new sequence is stored in . + * + * Returns when there is no profiles left in the + * file (including first attempt to read an empty file). + * + * Otherwise return the status of the p7_oprofile_ReadMSV function. + */ +int +p7_oprofile_ReadBlockMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OM_BLOCK *hmmBlock) +{ + int i; + int size = 0; + int status = eslOK; + + hmmBlock->count = 0; + for (i = 0; i < hmmBlock->listSize; ++i) + { + status = p7_oprofile_ReadMSV(hfp, byp_abc, &hmmBlock->list[i]); + if (status != eslOK) break; + size += hmmBlock->list[i]->M; + ++hmmBlock->count; + } + + /* EOF will be returned only in the case were no profiles were read */ + if (status == eslEOF && i > 0) status = eslOK; + + return status; +} + +/* Function: p7_oprofile_ReadRest() + * Synopsis: Read the rest of an optimized profile. + * + * Purpose: Read the rest of an optimized profile from + * the <.h3p> file associated with an open HMM + * file . + * + * This is the second part of a two-part calling sequence. + * The here must be the result of a previous + * successful call on the same + * open . + * + * Args: hfp - open HMM file, from which we've previously + * called . + * om - optimized profile that was successfully + * returned by . + * + * Returns: on success, and is now a complete + * optimized profile. + * + * Returns if has no <.h3p> file open, + * or on any parsing error, and set errbuf> to + * an informative error message. + * + * Throws: if an fails to reposition the + * binary <.h3p> file. + * + * on allocation error. + */ +int +p7_oprofile_ReadRest(P7_HMMFILE *hfp, P7_OPROFILE *om) +{ + uint32_t magic; + int M, Q4, Q8; + int x,n; + char *name = NULL; + int alphatype; + int status; + +#ifdef HMMER_THREADS + /* lock the mutex to prevent other threads from reading from the optimized + * profile at the same time. + */ + if (hfp->syncRead) + { + if (pthread_mutex_lock (&hfp->readMutex) != 0) ESL_EXCEPTION(eslESYS, "mutex lock failed"); + } +#endif + + hfp->errbuf[0] = '\0'; + if (hfp->pfp == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no MSV profile file; hmmpress probably wasn't run"); + + /* Position the pfp> using offset stored in */ + if (fseeko(hfp->pfp, om->offs[p7_POFFSET], SEEK_SET) != 0) ESL_EXCEPTION(eslESYS, "fseeko() failed"); + + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read magic"); + if (magic == v3a_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/a); please hmmpress your HMM file again"); + if (magic == v3b_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/b); please hmmpress your HMM file again"); + if (magic == v3c_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/c); please hmmpress your HMM file again"); + if (magic == v3d_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/d); please hmmpress your HMM file again"); + if (magic == v3e_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "binary auxfiles are in an outdated HMMER format (3/e); please hmmpress your HMM file again"); + if (magic != v3f_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic; not an HMM database file?"); + + if (! fread( (char *) &M, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model size M"); + if (! fread( (char *) &alphatype, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read alphabet type"); + if (! fread( (char *) &n, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name length"); + if (M != om->M) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "p/f model length mismatch"); + if (alphatype != om->abc->type) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "p/f alphabet type mismatch"); + + ESL_ALLOC(name, sizeof(char) * (n+1)); + if (! fread( (char *) name, sizeof(char), n+1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name"); + if (strcmp(name, om->name) != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "p/f name mismatch"); + + if (! fread((char *) &n, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read accession length"); + if (n > 0) { + ESL_ALLOC(om->acc, sizeof(char) * (n+1)); + if (! fread( (char *) om->acc, sizeof(char), n+1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read accession"); + } + if (! fread((char *) &n, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read description length"); + if (n > 0) { + ESL_ALLOC(om->desc, sizeof(char) * (n+1)); + if (! fread( (char *) om->desc, sizeof(char), n+1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read description"); + } + + if (! fread((char *) om->rf, sizeof(char), M+2, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read rf annotation"); + if (! fread((char *) om->mm, sizeof(char), M+2, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read mm annotation"); + if (! fread((char *) om->cs, sizeof(char), M+2, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read cs annotation"); + if (! fread((char *) om->consensus, sizeof(char), M+2, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read consensus annotation"); + + Q4 = p7O_NQF(om->M); + Q8 = p7O_NQW(om->M); + + if (! fread((char *) om->twv, sizeof(__m128i), 8*Q8, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read , vitfilter transitions"); + for (x = 0; x < om->abc->Kp; x++) + if (! fread( (char *) om->rwv[x], sizeof(__m128i), Q8, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read [%d], vitfilter emissions for sym %c", x, om->abc->sym[x]); + for (x = 0; x < p7O_NXSTATES; x++) + if (! fread( (char *) om->xw[x], sizeof(int16_t), p7O_NXTRANS, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read [%d], vitfilter special transitions", x); + if (! fread((char *) &(om->scale_w), sizeof(float), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read scale_w"); + if (! fread((char *) &(om->base_w), sizeof(int16_t), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read base_w"); + if (! fread((char *) &(om->ddbound_w), sizeof(int16_t), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read ddbound_w"); + if (! fread((char *) &(om->ncj_roundoff), sizeof(float), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read ddbound_w"); + + if (! fread((char *) om->tfv, sizeof(__m128), 8*Q4, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read transitions"); + for (x = 0; x < om->abc->Kp; x++) + if (! fread( (char *) om->rfv[x], sizeof(__m128), Q4, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read [%d] emissions for sym %c", x, om->abc->sym[x]); + for (x = 0; x < p7O_NXSTATES; x++) + if (! fread( (char *) om->xf[x], sizeof(float), p7O_NXTRANS, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read [%d] special transitions", x); + + if (! fread((char *) om->cutoff, sizeof(float), p7_NCUTOFFS, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read Pfam score cutoffs"); + if (! fread((char *) &(om->nj), sizeof(float), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read nj"); + if (! fread((char *) &(om->mode), sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read mode"); + if (! fread((char *) &(om->L) , sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read L"); + + /* record ends with magic sentinel, for detecting binary file corruption */ + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no sentinel magic: .h3p file corrupted?"); + if (magic != v3f_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad sentinel magic; .h3p file corrupted?"); + +#ifdef HMMER_THREADS + if (hfp->syncRead) + { + if (pthread_mutex_unlock (&hfp->readMutex) != 0) ESL_EXCEPTION(eslESYS, "mutex unlock failed"); + } +#endif + + free(name); + return eslOK; + + ERROR: + +#ifdef HMMER_THREADS + if (hfp->syncRead) + { + if (pthread_mutex_unlock (&hfp->readMutex) != 0) ESL_EXCEPTION(eslESYS, "mutex unlock failed"); + } +#endif + + if (name != NULL) free(name); + return status; +} +/*----------- end, reading optimized profiles -------------------*/ + + +/***************************************************************** + * 3. Utility routines + *****************************************************************/ +/* Function: p7_oprofile_CreateBlock() + * Synopsis: Create a new block of empty . + * + * Purpose: Creates a block of empty profile objects. + * + * Returns: a pointer to the new . Caller frees this + * with . + * + * Throws: if allocation fails. + */ +P7_OM_BLOCK * +p7_oprofile_CreateBlock(int count) +{ + int i = 0; + + P7_OM_BLOCK *block = NULL; + int status = eslOK; + + ESL_ALLOC(block, sizeof(*block)); + + block->count = 0; + block->listSize = 0; + block->list = NULL; + + ESL_ALLOC(block->list, sizeof(P7_OPROFILE *) * count); + block->listSize = count; + + for (i = 0; i < count; ++i) + { + block->list[i] = NULL; + } + + return block; + + ERROR: + if (block != NULL) + { + if (block->list != NULL) free(block->list); + free(block); + } + + return NULL; +} + +/* Function: p7_oprofile_DestroyBlock() + * Synopsis: Frees an . + * + * Purpose: Free a Create()'d block of profiles. + */ +void +p7_oprofile_DestroyBlock(P7_OM_BLOCK *block) +{ + int i; + + if (block == NULL) return; + + if (block->list != NULL) + { + for (i = 0; i < block->listSize; ++i) + { + if (block->list[i] != NULL) p7_oprofile_Destroy(block->list[i]); + } + free(block->list); + } + + free(block); + return; +} + +/* Function: p7_oprofile_Position() + * Synopsis: Reposition an open hmm file to an offset. + * + * Purpose: Reposition an open to offset . + * would usually be the first byte of a + * desired hmm record. + * + * Returns: on success; + * if no data can be read from this position. + * + * Throws: if the is not positionable. + * if no msv profile opened. + * if the fseeko() call fails. + */ +int +p7_oprofile_Position(P7_HMMFILE *hfp, off_t offset) +{ + if (hfp->ffp == NULL) ESL_EXCEPTION(eslEFORMAT, hfp->errbuf, "no MSV profile file; hmmpress probably wasn't run"); + if (hfp->do_stdin) ESL_EXCEPTION(eslEINVAL, "can't Position() in standard input"); + if (hfp->do_gzip) ESL_EXCEPTION(eslEINVAL, "can't Position() in a gzipped file"); + if (offset < 0) ESL_EXCEPTION(eslEINVAL, "bad offset"); + + if (fseeko(hfp->ffp, offset, SEEK_SET) != 0) ESL_EXCEPTION(eslESYS, "fseeko() failed"); + + return eslOK; +} + +/*-------------------- end, utility routines ---------------------*/ + + +/***************************************************************** + * 4. Benchmark driver. + *****************************************************************/ +#ifdef p7IO_BENCHMARK +/* + gcc -g -Wall -o benchmark-io -I.. -L.. -I../../easel -L../../easel -Dp7IO_BENCHMARK io.c -lhmmer -leasel -lm + icc -O3 -static -o benchmark-io -I.. -L.. -I../../easel -L../../easel -Dp7IO_BENCHMARK io.c -lhmmer -leasel -lm + + ./benchmark-io Pfam.msv + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for profile input"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_ALPHABET *abc = NULL; + char *msvfile = esl_opt_GetArg(go, 1); + FILE *msvfp = NULL; + P7_OPROFILE *om = NULL; + int nmodel = 0; + uint64_t totM = 0; + int status; + + esl_stopwatch_Start(w); + + if ((msvfp = fopen(msvfile, "r")) == NULL) p7_Fail("Failed to open MSV file %s for reading.\n", msvfile); + + while ((status = p7_oprofile_ReadMSV(msvfp, &abc, NULL, &om)) == eslOK) + { + nmodel++; + totM += om->M; + + p7_oprofile_Destroy(om); + } + if (status == eslEFORMAT) p7_Fail("bad file format in profile file %s", msvfile); + else if (status == eslEINCOMPAT) p7_Fail("profile file %s contains different alphabets", msvfile); + else if (status != eslEOF) p7_Fail("Unexpected error in reading profiles from %s", msvfile); + + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# number of models: %d\n", nmodel); + printf("# total M: %" PRId64 "\n", totM); + + fclose(msvfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_getopts_Destroy(go); + return 0; +} +#endif /*IO_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + +/***************************************************************** + * 5. Unit tests. + *****************************************************************/ +#ifdef p7IO_TESTDRIVE + +static void +utest_ReadWrite(P7_HMM *hmm, P7_OPROFILE *om) +{ + char *msg = "oprofile read/write unit test failure"; + ESL_ALPHABET *abc = NULL; + P7_OPROFILE *om2 = NULL; + char tmpfile[16] = "esltmpXXXXXX"; + char *mfile = NULL; + char *ffile = NULL; + char *pfile = NULL; + char *ssifile = NULL; + FILE *fp = NULL; + FILE *mfp = NULL; + FILE *ffp = NULL; + FILE *pfp = NULL; + ESL_NEWSSI *nssi = NULL; + P7_HMMFILE *hfp = NULL; + uint16_t fh = 0; + float tolerance = 0.001; + char errbuf[eslERRBUFSIZE]; + + + /* 1. A mini version of hmmpress: save the test HMM to a file along with its associated .h3{mfpi} files + */ + if ( esl_tmpfile_named(tmpfile, &fp) != eslOK) esl_fatal(msg); + if ( esl_sprintf(&mfile, "%s.h3m", tmpfile) != eslOK) esl_fatal(msg); + if ( esl_sprintf(&ffile, "%s.h3f", tmpfile) != eslOK) esl_fatal(msg); + if ( esl_sprintf(&pfile, "%s.h3p", tmpfile) != eslOK) esl_fatal(msg); + if ( esl_sprintf(&ssifile, "%s.h3i", tmpfile) != eslOK) esl_fatal(msg); + + if ( esl_newssi_Open(ssifile, TRUE, &nssi) != eslOK) esl_fatal(msg); + if (( mfp = fopen(mfile, "wb")) == NULL) esl_fatal(msg); + if (( ffp = fopen(ffile, "wb")) == NULL) esl_fatal(msg); + if (( pfp = fopen(pfile, "wb")) == NULL) esl_fatal(msg); + + /* the disk offsets are all 0 by construction, if there's only one + * HMM in the file - but don't want to forget them, if we change the + * unit test in the future to be multi HMM + */ + if ((om->offs[p7_MOFFSET] = ftello(mfp)) == -1) esl_fatal(msg); + if ((om->offs[p7_FOFFSET] = ftello(ffp)) == -1) esl_fatal(msg); + if ((om->offs[p7_POFFSET] = ftello(pfp)) == -1) esl_fatal(msg); + + if ( p7_hmmfile_WriteASCII(fp, -1, hmm) != eslOK) esl_fatal(msg); + if ( p7_hmmfile_WriteBinary(mfp, -1, hmm) != eslOK) esl_fatal(msg); + if ( p7_oprofile_Write(ffp, pfp, om) != eslOK) esl_fatal(msg); + + if ( esl_newssi_AddFile(nssi, tmpfile, 0, &fh) != eslOK) esl_fatal(msg); + if ( esl_newssi_AddKey (nssi, hmm->name, fh, om->offs[p7_MOFFSET], 0, 0) != eslOK) esl_fatal(msg); + if ( esl_newssi_Write(nssi) != eslOK) esl_fatal(msg); + + fclose(fp); + fclose(mfp); + fclose(ffp); + fclose(pfp); + esl_newssi_Close(nssi); + + /* 2. read the optimized profile back in */ + if ( p7_hmmfile_OpenE(tmpfile, NULL, &hfp, NULL) != eslOK) esl_fatal(msg); + if ( p7_oprofile_ReadMSV(hfp, &abc, &om2) != eslOK) esl_fatal(msg); + if ( p7_oprofile_ReadRest(hfp, om2) != eslOK) esl_fatal(msg); + + /* 3. it should be identical to the original */ + if ( p7_oprofile_Compare(om, om2, tolerance, errbuf) != eslOK) esl_fatal("%s\n%s", msg, errbuf); + + p7_oprofile_Destroy(om2); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + remove(ssifile); + remove(ffile); + remove(pfile); + remove(mfile); + remove(tmpfile); + + free(ssifile); + free(mfile); + free(ffile); + free(pfile); +} + +#endif /*p7IO_TESTDRIVE*/ +/*------------------ end, unit tests ----------------------------*/ + + +/***************************************************************** + * 6. Test driver + *****************************************************************/ +#ifdef p7IO_TESTDRIVE +/* + gcc -g -Wall -msse2 -std=gnu99 -o io_utest -I.. -L.. -I../../easel -L../../easel -Dp7IO_TESTDRIVE io.c -lhmmer -leasel -lm + ./io_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-M", eslARG_INT, "45", NULL, NULL, NULL, NULL, NULL, "size of random model to sample", 0 }, + { "-L", eslARG_INT, "45", NULL, NULL, NULL, NULL, NULL, "configure model for length ", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for SSE Forward, Backward implementations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + P7_HMM *hmm = NULL; + P7_OPROFILE *om = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + + /* Sample a random HMM and optimized profile, in amino acid alphabet. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if (( p7_oprofile_Sample(r, abc, bg, M, L, &hmm, NULL, &om)) != eslOK) esl_fatal("failed to sample HMM and profile"); + + /* unit test(s) */ + utest_ReadWrite(hmm, om); + + p7_oprofile_Destroy(om); + p7_hmm_Destroy(hmm); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} + +#endif /*p7IO_TESTDRIVE*/ +/*------------------- end, test driver --------------------------*/ + + + +/***************************************************************** + * 7. Example. + *****************************************************************/ +#ifdef p7IO_EXAMPLE +/* gcc -g -Wall -Dp7IO_EXAMPLE -I.. -I../../easel -L.. -L../../easel -o io_example io.c -lhmmer -leasel -lm + * ./io_example + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "verbose: print model info as they're read", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of writing MSV profile part"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_ALPHABET *abc = NULL; + char *hmmfile = esl_opt_GetArg(go, 1); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + char *fname = NULL; + char *pname = NULL; + FILE *ffp = NULL; + FILE *pfp = NULL; + int nmodel = 0; + uint64_t totM = 0; + int status; + char errbuf[eslERRBUFSIZE]; + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + esl_sprintf(&fname, "%s.h3f", hmmfile); + esl_sprintf(&pname, "%s.h3f", hmmfile); + if ((ffp = fopen(fname, "wb")) == NULL) p7_Fail("failed to open %s\n", fname); + if ((pfp = fopen(pname, "wb")) == NULL) p7_Fail("failed to open %s\n", pname); + free(fname); + free(pname); + + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) == eslOK) + { + if (nmodel == 0) { /* first time initialization, now that alphabet known */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, 400); + } + + if (esl_opt_GetBoolean(go, "-v")) printf("%s\n", hmm->name); + nmodel++; + totM += hmm->M; + + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + p7_oprofile_Write(ffp, pfp, om); + + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + p7_hmm_Destroy(hmm); + } + if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", hmmfile); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", hmmfile); + else if (status != eslEOF) p7_Fail("Unexpected error in reading HMMs from %s", hmmfile); + + fclose(ffp); + fclose(pfp); + p7_bg_Destroy(bg); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*IO_EXAMPLE*/ + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/mpi.c b/bioinformaticsProject/hmmer/src/impl_sse/mpi.c new file mode 100644 index 0000000..3146321 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/mpi.c @@ -0,0 +1,785 @@ +/* Optional support for MPI parallelization. + * + * Contents: + * 1. Communicating P7_OPROFILE, a score profile. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * + * SRE, Thu Jun 14 09:59:20 2007 [Janelia] [Tom Waits, Orphans] + */ +#include "p7_config.h" + +#ifdef HMMER_MPI +#include +#include +#include + +#include "mpi.h" + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_mpi.h" +#include "esl_getopts.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Communicating P7_OPROFILE, an optimized model. + *****************************************************************/ + +/* Function: p7_oprofile_MPISend() + * Synopsis: Send an OPROFILE as an MPI work unit. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Sends an OPROFILE as a work unit to MPI process + * (where ranges from 0..), tagged + * with MPI tag , for MPI communicator , as + * the sole workunit or result. + * + * Work units are prefixed by a status code. If is + * , the work unit is an code followed by + * the packed HMM. If is NULL, the work unit is an + * code, which knows how to + * interpret; this is typically used for an end-of-data + * signal to cleanly shut down worker processes. + * + * In order to minimize alloc/free cycles in this routine, + * caller passes a pointer to a working buffer <*buf> of + * size <*nalloc> characters. If necessary (i.e. if is + * too big to fit), <*buf> will be reallocated and <*nalloc> + * increased to the new size. As a special case, if <*buf> + * is and <*nalloc> is 0, the buffer will be + * allocated appropriately, but the caller is still + * responsible for free'ing it. + * + * Returns: on success; <*buf> may have been reallocated and + * <*nalloc> may have been increased. + * + * Throws: if an MPI call fails; if a malloc/realloc + * fails. In either case, <*buf> and <*nalloc> remain valid and useful + * memory (though the contents of <*buf> are undefined). + * + * Note: Compare to p7_hmmfile_WriteBinary(). The two operations (sending + * an HMM via MPI, or saving it as a binary file to disk) are + * similar. + */ +int +p7_oprofile_MPISend(P7_OPROFILE *om, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc) +{ + int status; + int code; + int sz, n, pos; + + /* Figure out size */ + if (MPI_Pack_size(1, MPI_INT, comm, &n) != 0) ESL_XEXCEPTION(eslESYS, "mpi pack size failed"); + if (om != NULL) { + if ((status = p7_oprofile_MPIPackSize(om, comm, &sz)) != eslOK) return status; + n += sz; + } + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Pack the status code and OPROFILE into the buffer */ + pos = 0; + code = (om == NULL) ? eslEOD : eslOK; + if (MPI_Pack(&code, 1, MPI_INT, *buf, n, &pos, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi pack failed"); + if (om != NULL) { + if ((status = p7_oprofile_MPIPack(om, *buf, n, &pos, comm)) != eslOK) return status; + } + + /* Send the packed OPROFILE to the destination. */ + if (MPI_Send(*buf, n, MPI_PACKED, dest, tag, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi send failed"); + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_oprofile_MPIPackSize() + * Synopsis: Calculates size needed to pack an OPROFILE. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Calculate an upper bound on the number of bytes + * that will need to pack an + * OPROFILE in a packed MPI message for MPI + * communicator ; return that number of bytes + * in <*ret_n>. + * + * Returns: on success, and <*ret_n> contains the answer. + * + * Throws: if an MPI call fails, and <*ret_n> is 0. + */ +int +p7_oprofile_MPIPackSize(P7_OPROFILE *om, MPI_Comm comm, int *ret_n) +{ + int status; + int n = 0; + int K = om->abc->Kp; + int len = 0; + int cnt; + int sz; + + int Q4 = p7O_NQF(om->M); + int Q8 = p7O_NQW(om->M); + int Q16 = p7O_NQB(om->M); + int vsz = sizeof(__m128i); + + /* MSV Filter information */ + if (MPI_Pack_size(5, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(vsz*Q16, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += (K*sz); + + /* Viterbi Filter information */ + if (MPI_Pack_size(1, MPI_SHORT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += ((p7O_NXSTATES*p7O_NXTRANS+2)*sz); + if (MPI_Pack_size(2, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(K*vsz*Q8, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(8*vsz*Q8, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + /* Forward/Backward information */ + if (MPI_Pack_size(1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += (p7O_NXSTATES*p7O_NXTRANS*sz); + if (MPI_Pack_size(K*vsz*Q4, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(8*vsz*Q4, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + /* disk offsets */ + if (MPI_Pack_size(1, MPI_LONG_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += ((p7_NOFFSETS+2)*sz); + + /* annotation info */ + if (om->name != NULL) len += strlen(om->name) + 1; + if (om->acc != NULL) len += strlen(om->acc) + 1; + if (om->desc != NULL) len += strlen(om->desc) + 1; + if (om->rf != NULL) len += strlen(om->rf) + 1; + if (om->mm != NULL) len += strlen(om->mm) + 1; + if (om->cs != NULL) len += strlen(om->cs) + 1; + if (om->consensus != NULL) len += strlen(om->consensus) + 1; + if (MPI_Pack_size(7, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(len, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + cnt = p7_NEVPARAM + p7_NCUTOFFS + p7_MAXABET; + if (MPI_Pack_size(cnt, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + /* current model size */ + if (MPI_Pack_size(4, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + *ret_n = n; + return eslOK; + + ERROR: + *ret_n = 0; + return status; + +} + +/* Function: p7_oprofile_MPIPack() + * Synopsis: Packs an OPROFILE into MPI buffer. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Packs OPROFILE into an MPI packed message buffer + * of length bytes, starting at byte position <*position>, + * for MPI communicator . + * + * The caller must know that 's allocation of + * bytes is large enough to append the packed OPROFILE at + * position <*pos>. This typically requires a call to + * first, and reallocation if + * needed. + * + * Returns: on success; now contains the + * packed , and <*position> is set to the byte + * immediately following the last byte of the OPROFILE + * in . + * + * Throws: if an MPI call fails; or if the + * buffer's length was overflowed in trying to pack + * into . In either case, the state of + * and <*position> is undefined, and both should + * be considered to be corrupted. + */ +int +p7_oprofile_MPIPack(P7_OPROFILE *om, char *buf, int n, int *pos, MPI_Comm comm) +{ + int K = om->abc->Kp; + int atype = om->abc->type; + int len; + int x; + + int Q4 = p7O_NQF(om->M); + int Q8 = p7O_NQW(om->M); + int Q16 = p7O_NQB(om->M); + int vsz = sizeof(__m128i); + + /* model configuration */ + if (MPI_Pack(&om->M, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&atype, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->L, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->mode, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->nj, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* MSV Filter information */ + if (MPI_Pack(&om->tbm_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->tec_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->tjb_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->scale_b, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->base_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->bias_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < K; x++) + if (MPI_Pack( om->rbv[x], vsz*Q16, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* Viterbi Filter information */ + if (MPI_Pack(&om->scale_w, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->base_w, 1, MPI_SHORT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->ddbound_w, 1, MPI_SHORT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->ncj_roundoff, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( om->twv, 8*vsz*Q8, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (MPI_Pack( om->xw[x], p7O_NXTRANS, MPI_SHORT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < K; x++) + if (MPI_Pack( om->rwv[x], vsz*Q8, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* Forward/Backward information */ + if (MPI_Pack( om->tfv, 8*vsz*Q4, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (MPI_Pack( om->xf[x], p7O_NXTRANS, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < K; x++) + if (MPI_Pack( om->rfv[x], vsz*Q4, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* Forward/Backward information */ + if (MPI_Pack( om->offs, p7_NOFFSETS, MPI_LONG_LONG_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->roff, 1, MPI_LONG_LONG_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->eoff, 1, MPI_LONG_LONG_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* Annotation information */ + len = (om->name != NULL) ? strlen(om->name)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->name, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->acc != NULL) ? strlen(om->acc)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->acc, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->desc != NULL) ? strlen(om->desc)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->desc, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->rf != NULL) ? strlen(om->rf)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->rf, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->mm != NULL) ? strlen(om->mm)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->mm, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->cs != NULL) ? strlen(om->cs)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->cs, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->consensus != NULL) ? strlen(om->consensus)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->consensus, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + if (MPI_Pack( om->evparam, p7_NEVPARAM, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( om->cutoff, p7_NCUTOFFS, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( om->compo, p7_MAXABET, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + if (*pos > n) ESL_EXCEPTION(eslEMEM, "buffer overflow"); + return eslOK; +} + + +/* Function: p7_oprofile_MPIUnpack() + * Synopsis: Unpacks an OPROFILE from an MPI buffer. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Unpack a newly allocated OPROFILE from MPI packed buffer + * , starting from position <*pos>, where the total length + * of the buffer in bytes is . + * + * Caller may or may not already know what alphabet the OPROFILE + * is expected to be in. A reference to the current + * alphabet is passed in . If the alphabet is unknown, + * pass <*abc = NULL>, and when the OPROFILE is received, an + * appropriate new alphabet object is allocated and passed + * back to the caller via <*abc>. If the alphabet is + * already known, <*abc> is that alphabet, and the new + * OPROFILE's alphabet type is verified to agree with it. This + * mechanism allows an application to let the first OPROFILE + * determine the alphabet type for the application, while + * still keeping the alphabet under the application's scope + * of control. + * + * Returns: on success. <*pos> is updated to the position of + * the next element in to unpack (if any). <*ret_om> + * contains a newly allocated OPROFILE, which the caller is + * responsible for free'ing. If <*abc> was passed as + * , it now points to an object that + * was allocated here; caller is responsible for free'ing + * this. + * + * Returns if the OPROFILE is in a different + * alphabet than <*abc> said to expect. In this case, + * <*abc> is unchanged, <*buf> and <*nalloc> may have been + * changed, and <*ret_om> is . + * + * Throws: on an MPI call failure. on allocation failure. + * In either case, <*ret_om> is , and the state of + * and <*pos> is undefined and should be considered to be corrupted. + */ +int +p7_oprofile_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, ESL_ALPHABET **abc, P7_OPROFILE **ret_om) +{ + int status; + int M, K, atype; + int len; + int x; + + int Q4, Q8, Q16; + int vsz = sizeof(__m128i); + + P7_OPROFILE *om = NULL; + + if (MPI_Unpack(buf, n, pos, &M, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &atype, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + + /* Set or verify the alphabet */ + if (*abc == NULL) { /* still unknown: set it, pass control of it back to caller */ + if ((*abc = esl_alphabet_Create(atype)) == NULL) { status = eslEMEM; goto ERROR; } + } else { /* already known: check it */ + if ((*abc)->type != atype) { status = eslEINCOMPAT; goto ERROR; } + } + + Q4 = p7O_NQF(M); + Q8 = p7O_NQW(M); + Q16 = p7O_NQB(M); + + if ((om = p7_oprofile_Create(M, *abc)) == NULL) { status = eslEMEM; goto ERROR; } + om->M = M; + + K = (*abc)->Kp; + + /* model configuration */ + if (MPI_Unpack(buf, n, pos, &om->L, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->mode, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->nj, 1, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* MSV Filter information */ + if (MPI_Unpack(buf, n, pos, &om->tbm_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->tec_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->tjb_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->scale_b, 1, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->base_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->bias_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < K; x++) + if (MPI_Unpack(buf, n, pos, om->rbv[x], vsz*Q16, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* Viterbi Filter information */ + if (MPI_Unpack(buf, n, pos, &om->scale_w, 1, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->base_w, 1, MPI_SHORT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->ddbound_w, 1, MPI_SHORT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->ncj_roundoff, 1, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, om->twv, 8*vsz*Q8, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (MPI_Unpack(buf, n, pos, om->xw[x], p7O_NXTRANS, MPI_SHORT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < K; x++) + if (MPI_Unpack(buf, n, pos, om->rwv[x], vsz*Q8, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* Forward/Backward information */ + if (MPI_Unpack(buf, n, pos, om->tfv, 8*vsz*Q4, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (MPI_Unpack(buf, n, pos, om->xf[x], p7O_NXTRANS, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < K; x++) + if (MPI_Unpack(buf, n, pos, om->rfv[x], vsz*Q4, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* Forward/Backward information */ + if (MPI_Unpack(buf, n, pos, om->offs, p7_NOFFSETS, MPI_LONG_LONG_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->roff, 1, MPI_LONG_LONG_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->eoff, 1, MPI_LONG_LONG_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* Annotation information */ + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->name, len); + if (MPI_Unpack(buf, n, pos, om->name, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->name[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->acc, len); + if (MPI_Unpack(buf, n, pos, om->acc, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->acc[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->desc, len); + if (MPI_Unpack(buf, n, pos, om->desc, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->desc[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->rf, len); + if (MPI_Unpack(buf, n, pos, om->rf, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->rf[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->mm, len); + if (MPI_Unpack(buf, n, pos, om->mm, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->mm[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->cs, len); + if (MPI_Unpack(buf, n, pos, om->cs, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->cs[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->consensus, len); + if (MPI_Unpack(buf, n, pos, om->consensus, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->consensus[len-1] = '\0'; + } + + if (MPI_Unpack(buf, n, pos, om->evparam, p7_NEVPARAM, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, om->cutoff, p7_NCUTOFFS, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, om->compo, p7_MAXABET, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + *ret_om = om; + return eslOK; + + ERROR: + if (om != NULL) p7_oprofile_Destroy(om); + return status; +} + + +/* Function: p7_oprofile_MPIRecv() + * Synopsis: Receives an OPROFILE as a work unit from an MPI sender. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Receive a work unit that consists of a single OPROFILE + * sent by MPI (<0..nproc-1>, or + * ) tagged as for MPI communicator . + * + * Work units are prefixed by a status code. If the unit's + * code is and no errors are encountered, this + * routine will return and a non- <*ret_om>. + * If the unit's code is (a shutdown signal), + * this routine returns and <*ret_om> is . + * + * Caller provides a working buffer <*buf> of size + * <*nalloc> characters. These are passed by reference, so + * that <*buf> can be reallocated and <*nalloc> increased + * if necessary. As a special case, if <*buf> is and + * <*nalloc> is 0, the buffer will be allocated + * appropriately, but the caller is still responsible for + * free'ing it. + * + * Caller may or may not already know what alphabet the OPROFILE + * is expected to be in. A reference to the current + * alphabet is passed in . If the alphabet is unknown, + * pass <*abc = NULL>, and when the OPROFILE is received, an + * appropriate new alphabet object is allocated and passed + * back to the caller via <*abc>. If the alphabet is + * already known, <*ret_abc> is that alphabet, and the new + * OPROFILE's alphabet type is verified to agree with it. This + * mechanism allows an application to let the first OPROFILE + * determine the alphabet type for the application, while + * still keeping the alphabet under the application's scope + * of control. + * + * Returns: on success. <*ret_om> contains the received OPROFILE; + * it is allocated here, and the caller is responsible for + * free'ing it. <*buf> may have been reallocated to a + * larger size, and <*nalloc> may have been increased. If + * <*abc> was passed as , it now points to an + * object that was allocated here; caller is + * responsible for free'ing this. + * + * Returns if an end-of-data signal was received. + * In this case, <*buf>, <*nalloc>, and <*abc> are left unchanged, + * and <*ret_om> is . + * + * Returns if the OPROFILE is in a different alphabet + * than <*abc> said to expect. In this case, <*abc> is unchanged, + * <*buf> and <*nalloc> may have been changed, and <*ret_om> is + * . + * + * Throws: on allocation error, in which case <*ret_om> is + * . + */ +int +p7_oprofile_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, ESL_ALPHABET **abc, P7_OPROFILE **ret_om) +{ + int status; + int code; + P7_OPROFILE *om = NULL; + int n; + int pos; + MPI_Status mpistatus; + + /* Probe first, because we need to know if our buffer is big enough. */ + MPI_Probe(source, tag, comm, &mpistatus); + MPI_Get_count(&mpistatus, MPI_PACKED, &n); + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Receive the packed work unit */ + MPI_Recv(*buf, n, MPI_PACKED, source, tag, comm, &mpistatus); + + /* Unpack it, looking at the status code prefix for EOD/EOK */ + pos = 0; + if (MPI_Unpack(*buf, n, &pos, &code, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (code == eslEOD) { *ret_om = NULL; return eslEOD; } + + return p7_oprofile_MPIUnpack(*buf, *nalloc, &pos, comm, abc, ret_om); + + ERROR: + if (om != NULL) p7_oprofile_Destroy(om); + return status; +} + +/*----------------- end, P7_OPROFILE communication -------------------*/ + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ + +#ifdef p7MPI_BENCHMARK +/* + mpicc -g -Wall -L. -I. -L ../easel -I ../easel -D p7MPI_BENCHMARK -o benchmark-mpi mpi.c -lhmmer -leasel -lm + qsub -N benchmark-mpi -j y -R y -b y -cwd -V -pe lam-mpi-tight 2 'mpirun C ./benchmark-mpi ~/notebook/1227-msp-statistics/Pfam.hmm > bench.out' + qsub -N benchmark-mpi -j y -R y -b y -cwd -V -pe lam-mpi-tight 2 'mpirun C ./benchmark-mpi -b ~/notebook/1227-msp-statistics/Pfam.hmm > bench.out' + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_alphabet.h" +#include "esl_random.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-b", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "baseline timing: don't send any HMMs", 0 }, + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for debugging MPI under gdb", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for MPI communication"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + int my_rank; + int nproc; + char *buf = NULL; + int nbuf = 0; + int subtotalM = 0; + int allM = 0; + int stalling = esl_opt_GetBoolean(go, "--stall"); + + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Comm_size(MPI_COMM_WORLD, &nproc); + + while (stalling); + + /* Master MPI process: */ + if (my_rank == 0) + { + ESL_STOPWATCH *w = esl_stopwatch_Create(); + P7_HMMFILE *hfp = NULL; + P7_OPROFILE *om = NULL; + P7_HMM *hmm = NULL; + + /* Read HMMs from a file. */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + + esl_stopwatch_Start(w); + while (p7_oprofile_ReadMSV(hfp, &abc, &om) == eslOK && + p7_oprofile_ReadRest(hfp, om) == eslOK) + { + if (!esl_opt_GetBoolean(go, "-b")) + p7_oprofile_MPISend(om, 1, 0, MPI_COMM_WORLD, &buf, &nbuf); /* 1 = dest; 0 = tag */ + + p7_hmm_Destroy(hmm); + p7_oprofile_Destroy(om); + } + p7_oprofile_MPISend(NULL, 1, 0, MPI_COMM_WORLD, &buf, &nbuf); /* send the "no more HMMs" sign */ + MPI_Reduce(&subtotalM, &allM, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + + printf("total: %d\n", allM); + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "CPU Time: "); + esl_stopwatch_Destroy(w); + } + /* Worker MPI process: */ + else + { + P7_OPROFILE *om_recd = NULL; + + while (p7_oprofile_MPIRecv(0, 0, MPI_COMM_WORLD, &buf, &nbuf, &abc, &om_recd) == eslOK) + { + subtotalM += om_recd->M; + p7_oprofile_Destroy(om_recd); + } + MPI_Reduce(&subtotalM, &allM, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + } + + free(buf); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + MPI_Finalize(); + exit(0); +} + +#endif /*p7MPI_BENCHMARK*/ +/*---------------------- end, benchmark -------------------------*/ + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7MPI_TESTDRIVE + +static void +utest_oprofileSendRecv(int my_rank, int nproc) +{ + ESL_RANDOMNESS *r = esl_randomness_CreateFast(42); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OPROFILE *om2 = NULL; + int M = 200; + int L = 400; + char *wbuf = NULL; + int wn = 0; + int i; + char errbuf[eslERRBUFSIZE]; + + p7_hmm_Sample(r, M, abc, &hmm); /* master and worker's sampled profiles are identical */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + p7_oprofile_Convert(gm, om); + p7_bg_SetLength (bg, L); + + if (my_rank == 0) + { + for (i = 1; i < nproc; i++) + { + ESL_DPRINTF1(("Master: receiving test profile\n")); + p7_oprofile_MPIRecv(MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &wbuf, &wn, &abc, &om2); + ESL_DPRINTF1(("Master: test profile received\n")); + + if (p7_oprofile_Compare(om, om2, 0.001, errbuf) != eslOK) + p7_Die("Received profile not identical to what was sent\n%s", errbuf); + + p7_oprofile_Destroy(om2); + } + } + else + { + ESL_DPRINTF1(("Worker %d: sending test profile\n", my_rank)); + p7_oprofile_MPISend(om, 0, 0, MPI_COMM_WORLD, &wbuf, &wn); + ESL_DPRINTF1(("Worker %d: test profile sent\n", my_rank)); + } + + free(wbuf); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + return; +} +#endif /*p7MPI_TESTDRIVE*/ +/*---------------------- end, unit tests ------------------------*/ + + +/***************************************************************** + * 4. Test driver. + *****************************************************************/ +#ifdef p7MPI_TESTDRIVE + +/* mpicc -o mpi_utest -g -Wall -I../easel -L../easel -I. -L. -Dp7MPI_TESTDRIVE mpi.c -lhmmer -leasel -lm + * In an MPI environment: (qlogin -pe lam-mpi-tight 2; setenv JOB_ID ; setenv TMPDIR /tmp/.... + * mpirun C ./mpi_utest + */ +#include "esl_getopts.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for debugging MPI under gdb", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for mpi.c"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + int my_rank; + int nproc; + + /* For debugging: stall until GDB can be attached */ + if (esl_opt_GetBoolean(go, "--stall")) pause(); + + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Comm_size(MPI_COMM_WORLD, &nproc); + + utest_oprofileSendRecv(my_rank, nproc); + + MPI_Finalize(); + return 0; +} + +#endif /*p7MPI_TESTDRIVE*/ +/*---------------------- end, test driver -----------------------*/ + + +#else /*!HMMER_MPI*/ +/* If we don't have MPI compiled in, provide some nothingness to: + * a. prevent Mac OS/X ranlib from bitching about .o file that "has no symbols" + * b. prevent compiler from bitching about "empty compilation unit" + * c. automatically pass the automated tests. + */ +void p7_mpi_DoAbsolutelyNothing(void) { return; } + +#if defined p7MPI_TESTDRIVE || p7MPI_BENCHMARK || p7MPI_EXAMPLE +int main(void) { return 0; } +#endif +#endif /*HMMER_MPI*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/msvfilter.c b/bioinformaticsProject/hmmer/src/impl_sse/msvfilter.c new file mode 100644 index 0000000..4487af4 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/msvfilter.c @@ -0,0 +1,877 @@ +/* The MSV filter implementation; SSE version. + * + * A "filter" is a one-row, O(M), DP implementation that calculates an + * approximated nat score (i.e. in limited precision - here, uchar) + * and may have limited numeric range. It will return if + * its numeric range is exceeded, in which case the caller will have + * to obtain the score by another (probably slower) method. + * + * Contents: + * 1. p7_MSVFilter() implementation + * 2. Benchmark driver + * 3. Unit tests + * 4. Test driver + * 5. Example + * + * SRE, Sun Nov 25 11:26:48 2007 [Casa de Gatos] + */ +#include "p7_config.h" + +#include +#include + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_sse.h" +#include "esl_gumbel.h" + +#include "hmmer.h" +#include "impl_sse.h" + +/***************************************************************** + * 1. The p7_MSVFilter() DP implementation. + *****************************************************************/ + +/* Function: p7_MSVFilter() + * Synopsis: Calculates MSV score, vewy vewy fast, in limited precision. + * Incept: SRE, Wed Dec 26 15:12:25 2007 [Janelia] + * + * Purpose: Calculates an approximation of the MSV score for sequence + * of length residues, using optimized profile , + * and a preallocated one-row DP matrix . Return the + * estimated MSV score (in nats) in . + * + * Score may overflow (and will, on high-scoring + * sequences), but will not underflow. + * + * The model may be in any mode, because only its match + * emission scores will be used. The MSV filter inherently + * assumes a multihit local mode, and uses its own special + * state transition scores, not the scores in the profile. + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * ret_sc - RETURN: MSV score (in nats) + * + * Note: We misuse the matrix here, using only a third of the + * first dp row, accessing it as rather than + * in triplets via <{MDI}MX(q)> macros, since we only need + * to store M state values. We know that if was big + * enough for normal DP calculations, it must be big enough + * to hold the MSVFilter calculation. + * + * Returns: on success. + * if the score overflows the limited range; in + * this case, this is a high-scoring hit. + * + * Throws: if allocation is too small. + */ +int +p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc) +{ + register __m128i mpv; /* previous row values */ + register __m128i xEv; /* E state: keeps max for Mk->E as we go */ + register __m128i xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + register __m128i sv; /* temp storage of 1 curr row value in progress */ + register __m128i biasv; /* emission bias in a vector */ + uint8_t xJ; /* special states' scores */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQB(om->M); /* segment length: # of vectors */ + __m128i *dp = ox->dpb[0]; /* we're going to use dp[0][0..q..Q-1], not {MDI}MX(q) macros*/ + __m128i *rsc; /* will point at om->rbv[x] for residue x[i] */ + + __m128i xJv; /* vector for states score */ + __m128i tjbmv; /* vector for cost of moving from either J or N through B to an M state */ + __m128i tecv; /* vector for E->C cost */ + __m128i basev; /* offset for scores */ + __m128i ceilingv; /* saturateed simd value used to test for overflow */ + __m128i tempv; /* work vector */ + + int cmp; + int status = eslOK; + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ16) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + ox->M = om->M; + + /* Try highly optimized ssv filter first */ + status = p7_SSVFilter(dsq, L, om, ret_sc); + if (status != eslENORESULT) return status; + + /* Initialization. In offset unsigned arithmetic, -infinity is 0, and 0 is om->base. + */ + biasv = _mm_set1_epi8((int8_t) om->bias_b); /* yes, you can set1() an unsigned char vector this way */ + for (q = 0; q < Q; q++) dp[q] = _mm_setzero_si128(); + xJ = 0; + + /* saturate simd register for overflow test */ + ceilingv = _mm_cmpeq_epi8(biasv, biasv); + basev = _mm_set1_epi8((int8_t) om->base_b); + + tjbmv = _mm_set1_epi8((int8_t) om->tjb_b + (int8_t) om->tbm_b); + tecv = _mm_set1_epi8((int8_t) om->tec_b); + + xJv = _mm_subs_epu8(biasv, biasv); + xBv = _mm_subs_epu8(basev, tjbmv); + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) + { + uint8_t xB; + xB = _mm_extract_epi16(xBv, 0); + xJ = _mm_extract_epi16(xJv, 0); + p7_omx_DumpMFRow(ox, 0, 0, 0, xJ, xB, xJ); + } +#endif + + for (i = 1; i <= L; i++) + { + rsc = om->rbv[dsq[i]]; + xEv = _mm_setzero_si128(); + + /* Right shifts by 1 byte. 4,8,12,x becomes x,4,8,12. + * Because ia32 is littlendian, this means a left bit shift. + * Zeros shift on automatically, which is our -infinity. + */ + mpv = _mm_slli_si128(dp[Q-1], 1); + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = _mm_max_epu8(mpv, xBv); + sv = _mm_adds_epu8(sv, biasv); + sv = _mm_subs_epu8(sv, *rsc); rsc++; + xEv = _mm_max_epu8(xEv, sv); + + mpv = dp[q]; /* Load {MDI}(i-1,q) into mpv */ + dp[q] = sv; /* Do delayed store of M(i,q) now that memory is usable */ + } + + /* test for the overflow condition */ + tempv = _mm_adds_epu8(xEv, biasv); + tempv = _mm_cmpeq_epi8(tempv, ceilingv); + cmp = _mm_movemask_epi8(tempv); + + /* Now the "special" states, which start from Mk->E (->C, ->J->B) + * Use shuffles instead of shifts so when the last max has completed, + * the last four elements of the simd register will contain the + * max value. Then the last shuffle will broadcast the max value + * to all simd elements. + */ + tempv = _mm_shuffle_epi32(xEv, _MM_SHUFFLE(2, 3, 0, 1)); + xEv = _mm_max_epu8(xEv, tempv); + tempv = _mm_shuffle_epi32(xEv, _MM_SHUFFLE(0, 1, 2, 3)); + xEv = _mm_max_epu8(xEv, tempv); + tempv = _mm_shufflelo_epi16(xEv, _MM_SHUFFLE(2, 3, 0, 1)); + xEv = _mm_max_epu8(xEv, tempv); + tempv = _mm_srli_si128(xEv, 1); + xEv = _mm_max_epu8(xEv, tempv); + xEv = _mm_shuffle_epi32(xEv, _MM_SHUFFLE(0, 0, 0, 0)); + + /* immediately detect overflow */ + if (cmp != 0x0000) + { + *ret_sc = eslINFINITY; + return eslERANGE; + } + + xEv = _mm_subs_epu8(xEv, tecv); + xJv = _mm_max_epu8(xJv,xEv); + + xBv = _mm_max_epu8(basev, xJv); + xBv = _mm_subs_epu8(xBv, tjbmv); + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) + { + uint8_t xB, xE; + xB = _mm_extract_epi16(xBv, 0); + xE = _mm_extract_epi16(xEv, 0); + xJ = _mm_extract_epi16(xJv, 0); + p7_omx_DumpMFRow(ox, i, xE, 0, xJ, xB, xJ); + } +#endif + } /* end loop over sequence residues 1..L */ + + xJ = (uint8_t) _mm_extract_epi16(xJv, 0); + + /* finally C->T, and add our missing precision on the NN,CC,JJ back */ + *ret_sc = ((float) (xJ - om->tjb_b) - (float) om->base_b); + *ret_sc /= om->scale_b; + *ret_sc -= 3.0; /* that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ */ + + return eslOK; +} +/*------------------ end, p7_MSVFilter() ------------------------*/ + + + +/* Function: p7_SSVFilter_longtarget() + * Synopsis: Finds windows with SSV scores above some threshold (vewy vewy fast, in limited precision) + * + * Purpose: Calculates an approximation of the SSV (single ungapped diagonal) + * score for regions of sequence of length residues, using + * optimized profile , and a preallocated one-row DP matrix , + * and captures the positions at which such regions exceed the score + * required to be significant in the eyes of the calling function, + * which depends on the and

(usually p=0.02 for nhmmer). + * Note that this variant performs only SSV computations, never + * passing through the J state - the score required to pass SSV at + * the default threshold (or less restrictive) is sufficient to + * pass MSV in essentially all DNA models we've tested. + * + * Above-threshold diagonals are captured into a preallocated list + * . Rather than simply capturing positions at which a + * score threshold is reached, this function establishes windows + * around those high-scoring positions, using scores in . + * These windows can be merged by the calling function. + * + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * msvdata - compact representation of substitution scores, for backtracking diagonals + * bg - the background model, required for translating a P-value threshold into a score threshold + * P - p-value below which a region is captured as being above threshold + * windowlist - preallocated container for all hits (resized if necessary) + * + * + * Note: We misuse the matrix here, using only a third of the + * first dp row, accessing it as rather than + * in triplets via <{MDI}MX(q)> macros, since we only need + * to store M state values. We know that if was big + * enough for normal DP calculations, it must be big enough + * to hold the MSVFilter calculation. + * + * Returns: on success. + * + * Throws: if allocation is too small. + */ +int +p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *ssvdata, + P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist) +{ + + register __m128i mpv; /* previous row values */ + register __m128i xEv; /* E state: keeps max for Mk->E for a single iteration */ + register __m128i xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + register __m128i sv; /* temp storage of 1 curr row value in progress */ + register __m128i biasv; /* emission bias in a vector */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQB(om->M); /* segment length: # of vectors */ + __m128i *dp = ox->dpb[0]; /* we're going to use dp[0][0..q..Q-1], not {MDI}MX(q) macros*/ + __m128i *rsc; /* will point at om->rbv[x] for residue x[i] */ + __m128i tjbmv; /* vector for J->B move cost + B->M move costs */ + __m128i basev; /* offset for scores */ + __m128i ceilingv; /* saturated simd value used to test for overflow */ + __m128i tempv; /* work vector */ + int cmp; + int k; + int n; + int end; + int rem_sc; + int start; + int target_end; + int target_start; + int max_end; + int max_sc; + int sc; + int pos_since_max; + float ret_sc; + + union { __m128i v; uint8_t b[16]; } u; + + /* + * Computing the score required to let P meet the F1 prob threshold + * In original code, converting from a scaled int MSV + * score S (the score getting to state E) to a probability goes like this: + * usc = S - om->tec_b - om->tjb_b - om->base_b; + * usc /= om->scale_b; + * usc -= 3.0; + * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda) + * and we're computing the threshold usc, so reverse it: + * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda) + * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda) + * usc += 3 + * usc *= om->scale_b + * S = usc + om->tec_b + om->tjb_b + om->base_b + * + * Here, I compute threshold with length model based on max_length. Doesn't + * matter much - in any case, both the bg and om models will change with roughly + * 1 bit for each doubling of the length model, so they offset. + */ + float nullsc; + __m128i sc_threshv; + uint8_t sc_thresh; + float invP = esl_gumbel_invsurv(P, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ16) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + ox->M = om->M; + + + p7_bg_SetLength(bg, om->max_length); + p7_oprofile_ReconfigMSVLength(om, om->max_length); + p7_bg_NullOne (bg, dsq, om->max_length, &nullsc); + + sc_thresh = (int) ceil( ( ( nullsc + (invP * eslCONST_LOG2) + 3.0 ) * om->scale_b ) + om->base_b + om->tec_b + om->tjb_b ); + sc_threshv = _mm_set1_epi8((int8_t) 255 - sc_thresh); + + /* Initialization. In offset unsigned arithmetic, -infinity is 0, and 0 is om->base. + */ + biasv = _mm_set1_epi8((int8_t) om->bias_b); /* yes, you can set1() an unsigned char vector this way */ + ceilingv = _mm_cmpeq_epi8(biasv, biasv); + for (q = 0; q < Q; q++) dp[q] = _mm_setzero_si128(); + + basev = _mm_set1_epi8((int8_t) om->base_b); + tjbmv = _mm_set1_epi8((int8_t) om->tjb_b + (int8_t) om->tbm_b); + + xBv = _mm_subs_epu8(basev, tjbmv); + + for (i = 1; i <= L; i++) + { + rsc = om->rbv[dsq[i]]; + xEv = _mm_setzero_si128(); + + /* Right shifts by 1 byte. 4,8,12,x becomes x,4,8,12. + * Because ia32 is littlendian, this means a left bit shift. + * Zeros shift on automatically, which is our -infinity. + */ + mpv = _mm_slli_si128(dp[Q-1], 1); + for (q = 0; q < Q; q++) { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = _mm_max_epu8(mpv, xBv); + sv = _mm_adds_epu8(sv, biasv); + sv = _mm_subs_epu8(sv, *rsc); rsc++; + xEv = _mm_max_epu8(xEv, sv); + + mpv = dp[q]; /* Load {MDI}(i-1,q) into mpv */ + dp[q] = sv; /* Do delayed store of M(i,q) now that memory is usable */ + } + + /* test if the pthresh significance threshold has been reached; + * note: don't use _mm_cmpgt_epi8, because it's a signed comparison, which won't work on uint8s */ + tempv = _mm_adds_epu8(xEv, sc_threshv); + tempv = _mm_cmpeq_epi8(tempv, ceilingv); + cmp = _mm_movemask_epi8(tempv); + + if (cmp != 0) { //hit pthresh, so add position to list and reset values + //figure out which model state hit threshold + end = -1; + rem_sc = -1; + for (q = 0; q < Q; q++) { /// Unpack and unstripe, so we can find the state that exceeded pthresh + u.v = dp[q]; + for (k = 0; k < 16; k++) { // unstripe + //(q+Q*k+1) is the model position k at which the xE score is found + if (u.b[k] >= sc_thresh && u.b[k] > rem_sc && (q+Q*k+1) <= om->M) { + end = (q+Q*k+1); + rem_sc = u.b[k]; + } + } + dp[q] = _mm_set1_epi8(0); // while we're here ... this will cause values to get reset to xB in next dp iteration + } + + //recover the diagonal that hit threshold + start = end; // model position + target_end = target_start = i; // target position + sc = rem_sc; + while (rem_sc > om->base_b - om->tjb_b - om->tbm_b) { + rem_sc -= om->bias_b - ssvdata->ssv_scores[start*om->abc->Kp + dsq[target_start]]; + --start; + --target_start; + } + start++; + target_start++; + + + //extend diagonal further with single diagonal extension + k = end+1; + n = target_end+1; + max_end = target_end; + max_sc = sc; + pos_since_max = 0; + while (kM && n<=L) { + sc += om->bias_b - ssvdata->ssv_scores[k*om->abc->Kp + dsq[n]]; + + if (sc >= max_sc) { + max_sc = sc; + max_end = n; + pos_since_max=0; + } else { + pos_since_max++; + if (pos_since_max == 5) + break; + } + k++; + n++; + } + + end += (max_end - target_end); + //k += (max_end - target_end); + target_end = max_end; + + ret_sc = ((float) (max_sc - om->tjb_b) - (float) om->base_b); + ret_sc /= om->scale_b; + ret_sc -= 3.0; // that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ + + p7_hmmwindow_new( windowlist, + 0, // sequence_id; used in the FM-based filter, but not here + target_start, // position in the target at which the diagonal starts + 0, // position in the target fm_index at which diagonal starts; not used here, just in FM-based filter + end, // position in the model at which the diagonal ends + end-start+1 , // length of diagonal + ret_sc, // score of diagonal + p7_NOCOMPLEMENT, // always p7_NOCOMPLEMENT here; varies in FM-based filter + L + ); + + i = target_end; // skip forward + } + } /* end loop over sequence residues 1..L */ + return eslOK; +} +/*------------------ end, p7_SSVFilter_longtarget() ------------------------*/ + + + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +/* The benchmark driver has some additional non-benchmarking options + * to facilitate small-scale (by-eye) comparison of MSV scores against + * other implementations, for debugging purposes. + * + * The -c option compares against p7_GMSV() scores. This allows + * measuring the error inherent in the SSE implementation's reduced + * precision (p7_MSVFilter() runs in uint8_t; p7_GMSV() uses floats). + * + * The -x option compares against an emulation that should give + * exactly the same scores. The emulation is achieved by jiggering the + * fp scores in a generic profile to disallow gaps, have the same + * rounding and precision as the uint8_t's MSVFilter() is using, and + * to make the same post-hoc corrections for the NN, CC, JJ + * contributions to the final nat score; under these contrived + * circumstances, p7_GViterbi() gives the same scores as + * p7_MSVFilter(). + * + * For using either -c or -x, you probably also want to limit the + * number of generated target sequences, using -N10 or -N100 for + * example. + */ +#ifdef p7MSVFILTER_BENCHMARK +/* + gcc -o msvfilter-benchmark -std=gnu99 -g -Wall -msse2 -I.. -L.. -I../../easel -L../../easel -Dp7MSVFILTER_BENCHMARK msvfilter.c -lhmmer -leasel -lm + icc -o msvfilter-benchmark -O3 -static -I.. -L.. -I../../easel -L../../easel -Dp7MSVFILTER_BENCHMARK msvfilter.c -lhmmer -leasel -lm + + ./benchmark-msvfilter runs benchmark + ./benchmark-msvfilter -N100 -c compare scores to generic impl + ./benchmark-msvfilter -N100 -x compare scores to exact emulation + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for MSVFilter() implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc1, sc2; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + if (esl_opt_GetBoolean(go, "-x")) p7_profile_SameAsMF(om, gm); + + ox = p7_omx_Create(gm->M, 0, 0); + gx = p7_gmx_Create(gm->M, L); + + /* Get a baseline time: how long it takes just to generate the sequences */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_MSVFilter (dsq, L, om, ox, &sc1); + + /* -c option: compare generic to fast score */ + if (esl_opt_GetBoolean(go, "-c")) + { + p7_GMSV (dsq, L, gm, gx, 2.0, &sc2); + printf("%.4f %.4f\n", sc1, sc2); + } + + /* -x option: compare generic to fast score in a way that should give exactly the same result */ + if (esl_opt_GetBoolean(go, "-x")) + { + p7_GViterbi(dsq, L, gm, gx, &sc2); + sc2 /= om->scale_b; + if (om->mode == p7_UNILOCAL) sc2 -= 2.0; /* that's ~ L \log \frac{L}{L+2}, for our NN,CC,JJ */ + else if (om->mode == p7_LOCAL) sc2 -= 3.0; /* that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ */ + printf("%.4f %.4f\n", sc1, sc2); + } + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7MSVFILTER_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7MSVFILTER_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* + * We can check that scores are identical (within machine error) to + * scores of generic DP with scores rounded the same way. Do this for + * a random model of length , for test sequences of length . + * + * We assume that we don't accidentally generate a high-scoring random + * sequence that overflows MSVFilter()'s limited range. + * + */ +static void +utest_msv_filter(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *ox = p7_omx_Create(M, 0, 0); + P7_GMX *gx = p7_gmx_Create(M, L); + float sc1, sc2; + + p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om); + p7_profile_SameAsMF(om, gm); +#if 0 + p7_oprofile_Dump(stdout, om); /* dumps the optimized profile */ + p7_omx_SetDumpMode(stdout, ox, TRUE); /* makes the fast DP algorithms dump their matrices */ +#endif + + while (N--) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_MSVFilter(dsq, L, om, ox, &sc1); + p7_GViterbi (dsq, L, gm, gx, &sc2); +#if 0 + p7_gmx_Dump(stdout, gx, p7_DEFAULT); /* dumps a generic DP matrix */ +#endif + + sc2 = sc2 / om->scale_b - 3.0f; + if (fabs(sc1-sc2) > 0.001) esl_fatal("msv filter unit test failed: scores differ (%.2f, %.2f)", sc1, sc2); + } + + free(dsq); + p7_hmm_Destroy(hmm); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); +} +#endif /*p7MSVFILTER_TESTDRIVE*/ +/*-------------------- end, unit tests --------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7MSVFILTER_TESTDRIVE +/* + gcc -g -Wall -msse2 -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o msvfilter_utest -Dp7MSVFILTER_TESTDRIVE msvfilter.c -lhmmer -leasel -lm + ./msvfilter_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "145", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for the SSE MSVFilter() implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* First round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + if (esl_opt_GetBoolean(go, "-v")) printf("MSVFilter() tests, DNA\n"); + utest_msv_filter(r, abc, bg, M, L, N); /* normal sized models */ + utest_msv_filter(r, abc, bg, 1, L, 10); /* size 1 models */ + utest_msv_filter(r, abc, bg, M, 1, 10); /* size 1 sequences */ + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + if (esl_opt_GetBoolean(go, "-v")) printf("MSVFilter() tests, protein\n"); + utest_msv_filter(r, abc, bg, M, L, N); + utest_msv_filter(r, abc, bg, 1, L, 10); + utest_msv_filter(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*VITFILTER_TESTDRIVE*/ + + + +/***************************************************************** + * 5. Example + *****************************************************************/ + +#ifdef p7MSVFILTER_EXAMPLE +/* A minimal example. + Also useful for debugging on small HMMs and sequences. + + gcc -g -Wall -msse2 -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o msvfilter_example -Dp7MSVFILTER_EXAMPLE msvfilter.c -lhmmer -leasel -lm + ./msvfilter_example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_gumbel.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in one line awkable format", 0 }, + { "-P", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in profmark format", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of MSV filter algorithm"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float msvraw, nullsc, msvscore; + float graw, gscore; + double P, gP; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Open sequence file for reading */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + /* allocate DP matrices, both a generic and an optimized one */ + ox = p7_omx_Create(gm->M, 0, 0); /* one row version */ + gx = p7_gmx_Create(gm->M, sq->n); + + /* Useful to place and compile in for debugging: + p7_oprofile_Dump(stdout, om); dumps the optimized profile + p7_omx_SetDumpMode(stdout, ox, TRUE); makes the fast DP algorithms dump their matrices + p7_gmx_Dump(stdout, gx, p7_DEFAULT); dumps a generic DP matrix + p7_oprofile_SameMSV(om, gm); + */ + //p7_oprofile_Dump(stdout, om); + //p7_omx_SetDumpMode(stdout, ox, TRUE); + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) + { + p7_oprofile_ReconfigLength(om, sq->n); + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_omx_GrowTo(ox, om->M, 0, sq->n); + p7_gmx_GrowTo(gx, gm->M, sq->n); + + p7_MSVFilter (sq->dsq, sq->n, om, ox, &msvraw); + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + msvscore = (msvraw - nullsc) / eslCONST_LOG2; + P = esl_gumbel_surv(msvscore, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + + p7_GMSV(sq->dsq, sq->n, gm, gx, 2.0, &graw); + gscore = (graw - nullsc) / eslCONST_LOG2; + gP = esl_gumbel_surv(gscore, gm->evparam[p7_MMU], gm->evparam[p7_MLAMBDA]); + + if (esl_opt_GetBoolean(go, "-1")) + { + printf("%-30s %-20s %9.2g %7.2f %9.2g %7.2f\n", sq->name, hmm->name, P, msvscore, gP, gscore); + } + else if (esl_opt_GetBoolean(go, "-P")) + { /* output suitable for direct use in profmark benchmark postprocessors: */ + printf("%g %.2f %s %s\n", P, msvscore, sq->name, hmm->name); + } + else + { + printf("target sequence: %s\n", sq->name); + printf("msv filter raw score: %.2f nats\n", msvraw); + printf("null score: %.2f nats\n", nullsc); + printf("per-seq score: %.2f bits\n", msvscore); + printf("P-value: %g\n", P); + printf("GMSV raw score: %.2f nats\n", graw); + printf("GSMV per-seq score: %.2f bits\n", gscore); + printf("GSMV P-value: %g\n", gP); + } + + esl_sq_Reuse(sq); + } + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7MSVFILTER_EXAMPLE*/ +/*---------------------- end, example ---------------------------*/ + + + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/null2.c b/bioinformaticsProject/hmmer/src/impl_sse/null2.c new file mode 100644 index 0000000..6f34e60 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/null2.c @@ -0,0 +1,495 @@ +/* "null2" model, biased composition correction; SSE implementations. + * + * Contents: + * 1. Null2 estimation algorithms. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * + * SRE, Mon Aug 18 08:31:11 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_sse.h" +#include "esl_vectorops.h" + +#include "hmmer.h" +#include "impl_sse.h" + +/***************************************************************** + * 1. Null2 estimation algorithms. + *****************************************************************/ + +/* Function: p7_Null2_ByExpectation() + * Synopsis: Calculate null2 model from posterior probabilities. + * Incept: SRE, Mon Aug 18 08:32:55 2008 [Janelia] + * + * Purpose: Identical to except that + * , are SSE optimized versions of the profile + * and the residue posterior probability matrix. See + * documentation. + * + * Args: om - profile, in any mode, target length model set to + * pp - posterior prob matrix, for against domain envelope (offset) + * null2 - RETURN: null2 log odds scores per residue; <0..Kp-1>; caller allocated space + */ +int +p7_Null2_ByExpectation(const P7_OPROFILE *om, const P7_OMX *pp, float *null2) +{ + int M = om->M; + int Ld = pp->L; + int Q = p7O_NQF(M); + float *xmx = pp->xmx; /* enables use of XMXo(i,s) macro */ + float norm; + __m128 *rp; + __m128 sv; + float xfactor; + int i,q,x; + + /* Calculate expected # of times that each emitting state was used + * in generating the Ld residues in this domain. + * The 0 row in is used to hold these numbers. + */ + memcpy(pp->dpf[0], pp->dpf[1], sizeof(__m128) * 3 * Q); + XMXo(0,p7X_N) = XMXo(1,p7X_N); + XMXo(0,p7X_C) = XMXo(1,p7X_C); /* 0.0 */ + XMXo(0,p7X_J) = XMXo(1,p7X_J); /* 0.0 */ + + for (i = 2; i <= Ld; i++) + { + for (q = 0; q < Q; q++) + { + pp->dpf[0][q*3 + p7X_M] = _mm_add_ps(pp->dpf[i][q*3 + p7X_M], pp->dpf[0][q*3 + p7X_M]); + pp->dpf[0][q*3 + p7X_I] = _mm_add_ps(pp->dpf[i][q*3 + p7X_I], pp->dpf[0][q*3 + p7X_I]); + } + XMXo(0,p7X_N) += XMXo(i,p7X_N); + XMXo(0,p7X_C) += XMXo(i,p7X_C); + XMXo(0,p7X_J) += XMXo(i,p7X_J); + } + + /* Convert those expected #'s to frequencies, to use as posterior weights. */ + norm = 1.0 / (float) Ld; + sv = _mm_set1_ps(norm); + for (q = 0; q < Q; q++) + { + pp->dpf[0][q*3 + p7X_M] = _mm_mul_ps(pp->dpf[0][q*3 + p7X_M], sv); + pp->dpf[0][q*3 + p7X_I] = _mm_mul_ps(pp->dpf[0][q*3 + p7X_I], sv); + } + XMXo(0,p7X_N) *= norm; + XMXo(0,p7X_C) *= norm; + XMXo(0,p7X_J) *= norm; + + /* Calculate null2's emission odds, by taking posterior weighted sum + * over all emission vectors used in paths explaining the domain. + */ + xfactor = XMXo(0, p7X_N) + XMXo(0, p7X_C) + XMXo(0, p7X_J); + for (x = 0; x < om->abc->K; x++) + { + sv = _mm_setzero_ps(); + rp = om->rfv[x]; + for (q = 0; q < Q; q++) + { + sv = _mm_add_ps(sv, _mm_mul_ps(pp->dpf[0][q*3 + p7X_M], *rp)); rp++; + sv = _mm_add_ps(sv, pp->dpf[0][q*3 + p7X_I]); /* insert odds implicitly 1.0 */ + // sv = _mm_add_ps(sv, _mm_mul_ps(pp->dpf[0][q*3 + p7X_I], *rp)); rp++; + } + esl_sse_hsum_ps(sv, &(null2[x])); + null2[x] += xfactor; + } + /* now null2[x] = \frac{f_d(x)}{f_0(x)} for all x in alphabet, + * 0..K-1, where f_d(x) are the ad hoc "null2" residue frequencies + * for this envelope. + */ + + /* make valid scores for all degeneracies, by averaging the odds ratios. */ + esl_abc_FAvgScVec(om->abc, null2); + null2[om->abc->K] = 1.0; /* gap character */ + null2[om->abc->Kp-2] = 1.0; /* nonresidue "*" */ + null2[om->abc->Kp-1] = 1.0; /* missing data "~" */ + + return eslOK; +} + + +/* Function: p7_Null2_ByTrace() + * Synopsis: Assign null2 scores to an envelope by the sampling method. + * Incept: SRE, Mon Aug 18 10:22:49 2008 [Janelia] + * + * Purpose: Identical to except that + * , are SSE optimized versions of the profile + * and the residue posterior probability matrix. See + * documentation. + */ +int +p7_Null2_ByTrace(const P7_OPROFILE *om, const P7_TRACE *tr, int zstart, int zend, P7_OMX *wrk, float *null2) +{ + union { __m128 v; float p[4]; } u; + int Q = p7O_NQF(om->M); + int Ld = 0; + float *xmx = wrk->xmx; /* enables use of XMXo macro */ + float norm; + float xfactor; + __m128 sv; + __m128 *rp; + int q, r; + int x; + int z; + + /* We'll use the i=0 row in wrk for working space: dp[0][] and xmx[][0]. */ + for (q = 0; q < Q; q++) + { + wrk->dpf[0][q*3 + p7X_M] = _mm_setzero_ps(); + wrk->dpf[0][q*3 + p7X_I] = _mm_setzero_ps(); + } + XMXo(0,p7X_N) = 0.0; + XMXo(0,p7X_C) = 0.0; + XMXo(0,p7X_J) = 0.0; + + /* Calculate emitting state usage in this particular trace segment */ + for (z = zstart; z <= zend; z++) + { + if (tr->i[z] == 0) continue; /* quick test for whether this trace elem emitted or not */ + Ld++; + if (tr->k[z] > 0) /* must be an M or I */ + { /* surely there's an easier way? but our workspace is striped, interleaved quads... */ + // s = ( (tr->st[z] == p7T_M) ? p7X_M : p7X_I); // We don't need the state type , but this is how you'd get it. + q = p7X_NSCELLS * ( (tr->k[z] - 1) % Q) + p7X_M; + r = (tr->k[z] - 1) / Q; + u.v = wrk->dpf[0][q]; + u.p[r] += 1.0; /* all this to increment a count by one! */ + wrk->dpf[0][q] = u.v; + + } + else /* emitted an x_i with no k; must be an N,C,J */ + { + switch (tr->st[z]) { + case p7T_N: XMXo(0,p7X_N) += 1.0; break; + case p7T_C: XMXo(0,p7X_C) += 1.0; break; + case p7T_J: XMXo(0,p7X_J) += 1.0; break; + } + } + } + norm = 1.0 / (float) Ld; + sv = _mm_set1_ps(norm); + for (q = 0; q < Q; q++) + { + wrk->dpf[0][q*3 + p7X_M] = _mm_mul_ps(wrk->dpf[0][q*3 + p7X_M], sv); + wrk->dpf[0][q*3 + p7X_I] = _mm_mul_ps(wrk->dpf[0][q*3 + p7X_I], sv); + } + XMXo(0,p7X_N) *= norm; + XMXo(0,p7X_C) *= norm; + XMXo(0,p7X_J) *= norm; + + /* Calculate null2's emission odds, by taking posterior weighted sum + * over all emission vectors used in paths explaining the domain. + */ + xfactor = XMXo(0,p7X_N) + XMXo(0,p7X_C) + XMXo(0,p7X_J); + for (x = 0; x < om->abc->K; x++) + { + sv = _mm_setzero_ps(); + rp = om->rfv[x]; + for (q = 0; q < Q; q++) + { + sv = _mm_add_ps(sv, _mm_mul_ps(wrk->dpf[0][q*3 + p7X_M], *rp)); rp++; + sv = _mm_add_ps(sv, wrk->dpf[0][q*3 + p7X_I]); /* insert emission odds implicitly 1.0 */ + // sv = _mm_add_ps(sv, _mm_mul_ps(wrk->dpf[0][q*3 + p7X_I], *rp)); rp++; + } + esl_sse_hsum_ps(sv, &(null2[x])); + null2[x] += xfactor; + } + /* now null2[x] = \frac{f_d(x)}{f_0(x)} for all x in alphabet, + * 0..K-1, where f_d(x) are the ad hoc "null2" residue frequencies + * for this envelope. + */ + + /* make valid scores for all degeneracies, by averaging the odds ratios. */ + esl_abc_FAvgScVec(om->abc, null2); + null2[om->abc->K] = 1.0; /* gap character */ + null2[om->abc->Kp-2] = 1.0; /* nonresidue "*" */ + null2[om->abc->Kp-1] = 1.0; /* missing data "~" */ + + return eslOK; +} + + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7NULL2_BENCHMARK +/* + icc -O3 -static -o null2_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7NULL2_BENCHMARK null2.c -lhmmer -leasel -lm + ./null2_benchmark Does the expectation version. + ./null2_benchmark -t Does the stochastic-traceback-dependent version. + (This version isn't really dependent on M, so Mc/s may not be an appropriate measure.) + + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ --------------- + 21 Aug 2008 3.00u (480 Mc/s) 5.45u (499 Mc/s) 77.56u (297 Mc/s) + -t 21 Aug 2008 30.50u (47 Mc/s) 44.96u (61 Mc/s) 32.03u*10 ( 72 Mc/s) + + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-t", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "benchmark the trace-dependent version of null2", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for null2 estimation, SSE version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox1 = NULL; + P7_OMX *ox2 = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + float null2[p7_MAXCODE]; + int i,j,d,pos; + int nsamples = 200; + float fsc, bsc; + double Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + ox1 = p7_omx_Create(gm->M, L, L); + ox2 = p7_omx_Create(gm->M, L, L); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_Forward (dsq, L, om, ox1, &fsc); + + if (esl_opt_GetBoolean(go, "-t")) + { + P7_TRACE *tr = p7_trace_Create(); + float *n2sc = malloc(sizeof(float) * (L+1)); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { /* This is approximately what p7_domaindef.c::region_trace_ensemble() is doing: */ + for (j = 0; j < nsamples; j++) + { + p7_StochasticTrace(r, dsq, L, om, ox1, tr); + p7_trace_Index(tr); + pos = 1; + for (d = 0; d < tr->ndom; d++) + { + p7_Null2_ByTrace(om, tr, tr->tfrom[d], tr->tto[d], ox2, null2); + for (; pos <= tr->sqfrom[d]; pos++) n2sc[pos] += 1.0; + for (; pos < tr->sqto[d]; pos++) n2sc[pos] += null2[dsq[pos]]; + } + for (; pos <= L; pos++) n2sc[pos] += 1.0; + p7_trace_Reuse(tr); + } + + for (pos = 1; pos <= L; pos++) + n2sc[pos] = logf(n2sc[pos] / nsamples); + } + esl_stopwatch_Stop(w); + + free(n2sc); + p7_trace_Destroy(tr); + } + else + { + p7_Backward(dsq, L, om, ox1, ox2, &bsc); + p7_Decoding(om, ox1, ox2, ox2); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_Null2_ByExpectation(om, ox2, null2); + esl_stopwatch_Stop(w); + } + + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(ox1); + p7_omx_Destroy(ox2); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7NULL2_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7NULL2_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_vectorops.h" + +/* compare results to GDecoding(). */ +static void +utest_null2_expectation(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N, float tolerance) +{ + char *msg = "decoding unit test failed"; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *fwd = p7_omx_Create(M, L, L); + P7_OMX *bck = p7_omx_Create(M, L, L); + P7_OMX *pp = p7_omx_Create(M, L, L); + P7_GMX *gxf = p7_gmx_Create(M, L); + P7_GMX *gxb = p7_gmx_Create(M, L); + P7_GMX *gpp = p7_gmx_Create(M, L); + float *on2 = malloc(sizeof(float) * abc->Kp); + float *gn2 = malloc(sizeof(float) * abc->Kp); + float fsc1, fsc2; + float bsc1, bsc2; + + if (!gn2 || !on2) esl_fatal(msg); + + if (p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om) != eslOK) esl_fatal(msg); + while (N--) + { + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal(msg); + if (p7_Forward (dsq, L, om, fwd, &fsc1) != eslOK) esl_fatal(msg); + if (p7_Backward (dsq, L, om, fwd, bck, &bsc1) != eslOK) esl_fatal(msg); + if (p7_Decoding(om, fwd, bck, pp) != eslOK) esl_fatal(msg); + if (p7_Null2_ByExpectation(om, pp, on2) != eslOK) esl_fatal(msg); + + if (p7_GForward (dsq, L, gm, gxf, &fsc2) != eslOK) esl_fatal(msg); + if (p7_GBackward(dsq, L, gm, gxb, &bsc2) != eslOK) esl_fatal(msg); + if (p7_GDecoding(gm, gxf, gxb, gpp) != eslOK) esl_fatal(msg); + if (p7_GNull2_ByExpectation(gm, gpp, gn2) != eslOK) esl_fatal(msg); + + if (esl_vec_FCompare(gn2, on2, abc->Kp, tolerance) != eslOK) esl_fatal(msg); + } + + p7_gmx_Destroy(gpp); + p7_gmx_Destroy(gxf); + p7_gmx_Destroy(gxb); + p7_omx_Destroy(pp); + p7_omx_Destroy(fwd); + p7_omx_Destroy(bck); + free(on2); + free(gn2); + free(dsq); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); +} +#endif /*p7NULL2_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7NULL2_TESTDRIVE +/* + gcc -g -Wall -msse2 -std=gnu99 -o null2_utest -I.. -L.. -I../../easel -L../../easel -Dp7NULL2_TESTDRIVE null2.c -lhmmer -leasel -lm + ./null2_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-t", eslARG_REAL, "0.01", NULL, NULL, NULL, NULL, NULL, "floating point comparison tolerance", 0 }, + { "-L", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "72", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "10", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for SSE implementation of null2 model"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + float tol = esl_opt_GetReal (go, "-t"); + + p7_FLogsumInit(); + + utest_null2_expectation(r, abc, bg, M, L, N, tol); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + return eslOK; +} +#endif /*p7NULL2_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + + + + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/optacc.c b/bioinformaticsProject/hmmer/src/impl_sse/optacc.c new file mode 100644 index 0000000..cd92d35 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/optacc.c @@ -0,0 +1,944 @@ +/* Optimal accuracy alignment; SSE version. + * + * Contents: + * 1. Optimal accuracy alignment, DP fill + * 2. OA traceback + * 3. Benchmark driver + * 4. Unit tests + * 5. Test driver + * 6. Example + * + * SRE, Mon Aug 18 20:01:01 2008 [Casa de Gatos] + */ +#include "p7_config.h" + +#include + +#include +#include + +#include "easel.h" +#include "esl_sse.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + + +/***************************************************************** + * 1. Optimal accuracy alignment, DP fill + *****************************************************************/ + +/* Function: p7_OptimalAccuracy() + * Synopsis: DP fill of an optimal accuracy alignment calculation. + * Incept: SRE, Mon Aug 18 11:04:48 2008 [Janelia] + * + * Purpose: Calculates the fill step of the optimal accuracy decoding + * algorithm \citep{Kall05}. + * + * Caller provides the posterior decoding matrix , + * which was calculated by Forward/Backward on a target sequence + * of length L> using the query model . + * + * Caller also provides a DP matrix , allocated for a full + * M> by comparison. The routine fills this in + * with OA scores. + * + * Args: gm - query profile + * pp - posterior decoding matrix created by + * gx - RESULT: caller provided DP matrix for M> by + * ret_e - RETURN: expected number of correctly decoded positions + * + * Returns: on success, and <*ret_e> contains the final OA + * score, which is the expected number of correctly decoded + * positions in the target sequence (up to ). + * + * Throws: (no abnormal error conditions) + */ +int +p7_OptimalAccuracy(const P7_OPROFILE *om, const P7_OMX *pp, P7_OMX *ox, float *ret_e) +{ + register __m128 mpv, dpv, ipv; /* previous row values */ + register __m128 sv; /* temp storage of 1 curr row value in progress */ + register __m128 xEv; /* E state: keeps max for Mk->E as we go */ + register __m128 xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + register __m128 dcv; + float *xmx = ox->xmx; + __m128 *dpc = ox->dpf[0]; /* current row, for use in {MDI}MO(dpp,q) access macro */ + __m128 *dpp; /* previous row, for use in {MDI}MO(dpp,q) access macro */ + __m128 *ppp; /* quads in the posterior probability matrix */ + __m128 *tp; /* quads in the tfv> transition scores */ + __m128 zerov = _mm_setzero_ps(); + __m128 infv = _mm_set1_ps(-eslINFINITY); + int M = om->M; + int Q = p7O_NQF(M); + int q; + int j; + int i; + float t1, t2; + + ox->M = om->M; + ox->L = pp->L; + for (q = 0; q < Q; q++) MMO(dpc, q) = IMO(dpc,q) = DMO(dpc,q) = infv; + XMXo(0, p7X_E) = -eslINFINITY; + XMXo(0, p7X_N) = 0.; + XMXo(0, p7X_J) = -eslINFINITY; + XMXo(0, p7X_B) = 0.; + XMXo(0, p7X_C) = -eslINFINITY; + + for (i = 1; i <= pp->L; i++) + { + dpp = dpc; /* previous DP row in OA matrix */ + dpc = ox->dpf[i]; /* current DP row in OA matrix */ + ppp = pp->dpf[i]; /* current row in the posterior probabilities per position */ + tp = om->tfv; /* transition probabilities */ + dcv = infv; + xEv = infv; + xBv = _mm_set1_ps(XMXo(i-1, p7X_B)); + + mpv = esl_sse_rightshift_ps(MMO(dpp,Q-1), infv); /* Right shifts by 4 bytes. 4,8,12,x becomes x,4,8,12. */ + dpv = esl_sse_rightshift_ps(DMO(dpp,Q-1), infv); + ipv = esl_sse_rightshift_ps(IMO(dpp,Q-1), infv); + for (q = 0; q < Q; q++) + { + sv = _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), xBv); tp++; + sv = _mm_max_ps(sv, _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), mpv)); tp++; + sv = _mm_max_ps(sv, _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), ipv)); tp++; + sv = _mm_max_ps(sv, _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), dpv)); tp++; + sv = _mm_add_ps(sv, *ppp); ppp += 2; + xEv = _mm_max_ps(xEv, sv); + + mpv = MMO(dpp,q); + dpv = DMO(dpp,q); + ipv = IMO(dpp,q); + + MMO(dpc,q) = sv; + DMO(dpc,q) = dcv; + + dcv = _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), sv); tp++; + + sv = _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), mpv); tp++; + sv = _mm_max_ps(sv, _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), ipv)); tp++; + IMO(dpc,q) = _mm_add_ps(sv, *ppp); ppp++; + } + + /* dcv has carried through from end of q loop above; store it + * in first pass, we add M->D and D->D path into DMX + */ + dcv = esl_sse_rightshift_ps(dcv, infv); + tp = om->tfv + 7*Q; /* set tp to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMO(dpc, q) = _mm_max_ps(dcv, DMO(dpc, q)); + dcv = _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), DMO(dpc,q)); tp++; + } + + /* fully serialized D->D; can optimize later */ + for (j = 1; j < 4; j++) + { + dcv = esl_sse_rightshift_ps(dcv, infv); + tp = om->tfv + 7*Q; + for (q = 0; q < Q; q++) + { + DMO(dpc, q) = _mm_max_ps(dcv, DMO(dpc, q)); + dcv = _mm_and_ps(_mm_cmpgt_ps(*tp, zerov), dcv); tp++; + } + } + + /* D->E paths */ + for (q = 0; q < Q; q++) xEv = _mm_max_ps(xEv, DMO(dpc,q)); + + /* Specials */ + esl_sse_hmax_ps(xEv, &(XMXo(i,p7X_E))); + + t1 = ( (om->xf[p7O_J][p7O_LOOP] == 0.0) ? 0.0 : ox->xmx[(i-1)*p7X_NXCELLS+p7X_J] + pp->xmx[i*p7X_NXCELLS+p7X_J]); + t2 = ( (om->xf[p7O_E][p7O_LOOP] == 0.0) ? 0.0 : ox->xmx[ i *p7X_NXCELLS+p7X_E]); + ox->xmx[i*p7X_NXCELLS+p7X_J] = ESL_MAX(t1, t2); + + t1 = ( (om->xf[p7O_C][p7O_LOOP] == 0.0) ? 0.0 : ox->xmx[(i-1)*p7X_NXCELLS+p7X_C] + pp->xmx[i*p7X_NXCELLS+p7X_C]); + t2 = ( (om->xf[p7O_E][p7O_MOVE] == 0.0) ? 0.0 : ox->xmx[ i *p7X_NXCELLS+p7X_E]); + ox->xmx[i*p7X_NXCELLS+p7X_C] = ESL_MAX(t1, t2); + + ox->xmx[i*p7X_NXCELLS+p7X_N] = ((om->xf[p7O_N][p7O_LOOP] == 0.0) ? 0.0 : ox->xmx[(i-1)*p7X_NXCELLS+p7X_N] + pp->xmx[i*p7X_NXCELLS+p7X_N]); + + t1 = ( (om->xf[p7O_N][p7O_MOVE] == 0.0) ? 0.0 : ox->xmx[i*p7X_NXCELLS+p7X_N]); + t2 = ( (om->xf[p7O_J][p7O_MOVE] == 0.0) ? 0.0 : ox->xmx[i*p7X_NXCELLS+p7X_J]); + ox->xmx[i*p7X_NXCELLS+p7X_B] = ESL_MAX(t1, t2); + } + + *ret_e = ox->xmx[pp->L*p7X_NXCELLS+p7X_C]; + return eslOK; +} +/*------------------- end, OA DP fill ---------------------------*/ + + + + + +/***************************************************************** + * 2. OA traceback + *****************************************************************/ + +static inline float get_postprob(const P7_OMX *pp, int scur, int sprv, int k, int i); + +static inline int select_m(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_d(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_i(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_n(int i); +static inline int select_c(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, int i); +static inline int select_j(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, int i); +static inline int select_e(const P7_OPROFILE *om, const P7_OMX *ox, int i, int *ret_k); +static inline int select_b(const P7_OPROFILE *om, const P7_OMX *ox, int i); + + +/* Function: p7_OATrace() + * Synopsis: Optimal accuracy decoding: traceback. + * Incept: SRE, Mon Aug 18 13:53:33 2008 [Janelia] + * + * Purpose: The traceback stage of the optimal accuracy decoding algorithm + * \citep{Kall05}. + * + * Caller provides the OA DP matrix that was just + * calculated by , as well as the + * posterior decoding matrix , which was calculated by + * Forward/Backward on a target sequence using the query + * model . Because the calculation depends only on + * , the target sequence itself need not be provided. + * + * The resulting optimal accuracy decoding traceback is put + * in a caller-provided traceback structure

, which the + * caller has allocated for optional posterior probability + * annotation on residues (with , + * generally). This structure will be reallocated + * internally if necessary. + * + * Args: om - profile + * pp - posterior probability matrix + * ox - OA matrix to trace, LxM + * tr - storage for the recovered traceback + * + * Returns: on success. + * + * Throws: on allocation error. + * if the trace isn't empty (needs to be Reuse()'d). + */ +int +p7_OATrace(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, P7_TRACE *tr) +{ + int i = ox->L; /* position in sequence 1..L */ + int k = 0; /* position in model 1..M */ + int s0, s1; /* choice of a state */ + float postprob; + int status; + + if (tr->N != 0) ESL_EXCEPTION(eslEINVAL, "trace not empty; needs to be Reuse()'d?"); + + if ((status = p7_trace_AppendWithPP(tr, p7T_T, k, i, 0.0)) != eslOK) return status; + if ((status = p7_trace_AppendWithPP(tr, p7T_C, k, i, 0.0)) != eslOK) return status; + + s0 = tr->st[tr->N-1]; + while (s0 != p7T_S) + { + switch (s0) { + case p7T_M: s1 = select_m(om, ox, i, k); k--; i--; break; + case p7T_D: s1 = select_d(om, ox, i, k); k--; break; + case p7T_I: s1 = select_i(om, ox, i, k); i--; break; + case p7T_N: s1 = select_n(i); break; + case p7T_C: s1 = select_c(om, pp, ox, i); break; + case p7T_J: s1 = select_j(om, pp, ox, i); break; + case p7T_E: s1 = select_e(om, ox, i, &k); break; + case p7T_B: s1 = select_b(om, ox, i); break; + default: ESL_EXCEPTION(eslEINVAL, "bogus state in traceback"); + } + if (s1 == -1) ESL_EXCEPTION(eslEINVAL, "OA traceback choice failed"); + + postprob = get_postprob(pp, s1, s0, k, i); + if ((status = p7_trace_AppendWithPP(tr, s1, k, i, postprob)) != eslOK) return status; + + if ( (s1 == p7T_N || s1 == p7T_J || s1 == p7T_C) && s1 == s0) i--; + s0 = s1; + } /* end traceback, at S state */ + tr->M = om->M; + tr->L = ox->L; + return p7_trace_Reverse(tr); +} + +static inline float +get_postprob(const P7_OMX *pp, int scur, int sprv, int k, int i) +{ + int Q = p7O_NQF(pp->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell M(i,k) */ + int r = (k-1) / Q; + union { __m128 v; float p[4]; } u; + + switch (scur) { + case p7T_M: u.v = MMO(pp->dpf[i], q); return u.p[r]; + case p7T_I: u.v = IMO(pp->dpf[i], q); return u.p[r]; + case p7T_N: if (sprv == scur) return pp->xmx[i*p7X_NXCELLS+p7X_N]; + case p7T_C: if (sprv == scur) return pp->xmx[i*p7X_NXCELLS+p7X_C]; + case p7T_J: if (sprv == scur) return pp->xmx[i*p7X_NXCELLS+p7X_J]; + default: return 0.0; + } +} + +/* M(i,k) is reached from B(i-1), M(i-1,k-1), D(i-1,k-1), or I(i-1,k-1). */ +static inline int +select_m(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell M(i,k) */ + int r = (k-1) / Q; + __m128 *tp = om->tfv + 7*q; /* *tp now at start of transitions to cur cell M(i,k) */ + __m128 xBv = _mm_set1_ps(ox->xmx[(i-1)*p7X_NXCELLS+p7X_B]); + __m128 zerov = _mm_setzero_ps(); + __m128 mpv, dpv, ipv; + union { __m128 v; float p[4]; } u, tv; + float path[4]; + int state[4] = { p7T_M, p7T_I, p7T_D, p7T_B }; + + if (q > 0) { + mpv = ox->dpf[i-1][(q-1)*3 + p7X_M]; + dpv = ox->dpf[i-1][(q-1)*3 + p7X_D]; + ipv = ox->dpf[i-1][(q-1)*3 + p7X_I]; + } else { + mpv = esl_sse_rightshift_ps(ox->dpf[i-1][(Q-1)*3 + p7X_M], zerov); + dpv = esl_sse_rightshift_ps(ox->dpf[i-1][(Q-1)*3 + p7X_D], zerov); + ipv = esl_sse_rightshift_ps(ox->dpf[i-1][(Q-1)*3 + p7X_I], zerov); + } + + /* paths are numbered so that most desirable choice in case of tie is first. */ + u.v = xBv; tv.v = *tp; path[3] = ((tv.p[r] == 0.0) ? -eslINFINITY : u.p[r]); tp++; + u.v = mpv; tv.v = *tp; path[0] = ((tv.p[r] == 0.0) ? -eslINFINITY : u.p[r]); tp++; + u.v = ipv; tv.v = *tp; path[1] = ((tv.p[r] == 0.0) ? -eslINFINITY : u.p[r]); tp++; + u.v = dpv; tv.v = *tp; path[2] = ((tv.p[r] == 0.0) ? -eslINFINITY : u.p[r]); + return state[esl_vec_FArgMax(path, 4)]; +} + + +/* D(i,k) is reached from M(i, k-1) or D(i,k-1). */ +static inline int +select_d(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell D(i,k) */ + int r = (k-1) / Q; + __m128 zerov = _mm_setzero_ps(); + union { __m128 v; float p[4]; } mpv, dpv, tmdv, tddv; + float path[2]; + + if (q > 0) { + mpv.v = ox->dpf[i][(q-1)*3 + p7X_M]; + dpv.v = ox->dpf[i][(q-1)*3 + p7X_D]; + tmdv.v = om->tfv[7*(q-1) + p7O_MD]; + tddv.v = om->tfv[7*Q + (q-1)]; + } else { + mpv.v = esl_sse_rightshift_ps(ox->dpf[i][(Q-1)*3 + p7X_M], zerov); + dpv.v = esl_sse_rightshift_ps(ox->dpf[i][(Q-1)*3 + p7X_D], zerov); + tmdv.v = esl_sse_rightshift_ps(om->tfv[7*(Q-1) + p7O_MD], zerov); + tddv.v = esl_sse_rightshift_ps(om->tfv[8*Q-1], zerov); + } + + path[0] = ((tmdv.p[r] == 0.0) ? -eslINFINITY : mpv.p[r]); + path[1] = ((tddv.p[r] == 0.0) ? -eslINFINITY : dpv.p[r]); + return ((path[0] >= path[1]) ? p7T_M : p7T_D); +} + +/* I(i,k) is reached from M(i-1, k) or I(i-1,k). */ +static inline int +select_i(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell D(i,k) */ + int r = (k-1) / Q; + __m128 *tp = om->tfv + 7*q + p7O_MI; + union { __m128 v; float p[4]; } tv, mpv, ipv; + float path[2]; + + mpv.v = ox->dpf[i-1][q*3 + p7X_M]; tv.v = *tp; path[0] = ((tv.p[r] == 0.0) ? -eslINFINITY : mpv.p[r]); tp++; + ipv.v = ox->dpf[i-1][q*3 + p7X_I]; tv.v = *tp; path[1] = ((tv.p[r] == 0.0) ? -eslINFINITY : ipv.p[r]); + return ((path[0] >= path[1]) ? p7T_M : p7T_I); +} + +/* N(i) must come from N(i-1) for i>0; else it comes from S */ +static inline int +select_n(int i) +{ + return ((i==0) ? p7T_S : p7T_N); +} + +/* C(i) is reached from E(i) or C(i-1). */ +static inline int +select_c(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, int i) +{ + float path[2]; + path[0] = ( (om->xf[p7O_C][p7O_LOOP] == 0.0) ? -eslINFINITY : ox->xmx[(i-1)*p7X_NXCELLS+p7X_C] + pp->xmx[i*p7X_NXCELLS+p7X_C]); + path[1] = ( (om->xf[p7O_E][p7O_MOVE] == 0.0) ? -eslINFINITY : ox->xmx[ i *p7X_NXCELLS+p7X_E]); + return ((path[0] > path[1]) ? p7T_C : p7T_E); +} + +/* J(i) is reached from E(i) or J(i-1). */ +static inline int +select_j(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, int i) +{ + float path[2]; + + path[0] = ( (om->xf[p7O_J][p7O_LOOP] == 0.0) ? -eslINFINITY : ox->xmx[(i-1)*p7X_NXCELLS+p7X_J] + pp->xmx[i*p7X_NXCELLS+p7X_J]); + path[1] = ( (om->xf[p7O_E][p7O_LOOP] == 0.0) ? -eslINFINITY : ox->xmx[ i *p7X_NXCELLS+p7X_E]); + return ((path[0] > path[1]) ? p7T_J : p7T_E); +} + +/* E(i) is reached from any M(i, k=1..M) or D(i, k=2..M). */ +/* This assumes all M_k->E, D_k->E are 1.0 */ +static inline int +select_e(const P7_OPROFILE *om, const P7_OMX *ox, int i, int *ret_k) +{ + int Q = p7O_NQF(ox->M); + __m128 *dp = ox->dpf[i]; + union { __m128 v; float p[4]; } u; + float max = -eslINFINITY; + int smax, kmax; + int q,r; + + /* precedence rules in case of ties here are a little tricky: M beats D: note the >= max! */ + for (q = 0; q < Q; q++) + { + u.v = *dp; dp++; for (r = 0; r < 4; r++) if (u.p[r] >= max) { max = u.p[r]; smax = p7T_M; kmax = r*Q + q + 1; } + u.v = *dp; dp+=2; for (r = 0; r < 4; r++) if (u.p[r] > max) { max = u.p[r]; smax = p7T_D; kmax = r*Q + q + 1; } + } + *ret_k = kmax; + return smax; +} + + +/* B(i) is reached from N(i) or J(i). */ +static inline int +select_b(const P7_OPROFILE *om, const P7_OMX *ox, int i) +{ + float path[2]; + + path[0] = ( (om->xf[p7O_N][p7O_MOVE] == 0.0) ? -eslINFINITY : ox->xmx[i*p7X_NXCELLS+p7X_N]); + path[1] = ( (om->xf[p7O_J][p7O_MOVE] == 0.0) ? -eslINFINITY : ox->xmx[i*p7X_NXCELLS+p7X_J]); + return ((path[0] > path[1]) ? p7T_N : p7T_J); +} +/*---------------------- end, OA traceback ----------------------*/ + + + + +/***************************************************************** + * 3. Benchmark driver + *****************************************************************/ +#ifdef p7OPTACC_BENCHMARK +/* + icc -O3 -static -o optacc_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7OPTACC_BENCHMARK optacc.c -lhmmer -leasel -lm + + ./optacc_benchmark runs benchmark on optimal accuracy fill and trace + ./optacc_benchmark -c -N1 compare scores of SSE version to generic impl + ./optacc_benchmark -x -N1 test that scores match trusted implementation. + + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ --------------- + 20 Aug 08: 13.11u (110 Mc/s) 23.39u (116 Mc/s) 332.62u (69 Mc/s) + + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { "--notrace", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only benchmark the DP fill stage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for optimal accuracy alignment, SSE version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx1 = NULL; + P7_GMX *gx2 = NULL; + P7_OMX *ox1 = NULL; + P7_OMX *ox2 = NULL; + P7_TRACE *tr = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float fsc, bsc, accscore; + float fsc_g, bsc_g, accscore_g; + double Mcs; + + p7_FLogsumInit(); + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + if (esl_opt_GetBoolean(go, "-x") && p7_FLogsumError(-0.4, -0.5) > 0.0001) + p7_Fail("-x here requires p7_Logsum() recompiled in slow exact mode"); + + ox1 = p7_omx_Create(gm->M, L, L); + ox2 = p7_omx_Create(gm->M, L, L); + tr = p7_trace_CreateWithPP(); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_Forward (dsq, L, om, ox1, &fsc); + p7_Backward(dsq, L, om, ox1, ox2, &bsc); + p7_Decoding(om, ox1, ox2, ox2); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + p7_OptimalAccuracy(om, ox2, ox1, &accscore); + + if (! esl_opt_GetBoolean(go, "--notrace")) + { + p7_OATrace(om, ox2, ox1, tr); + p7_trace_Reuse(tr); + } + } + esl_stopwatch_Stop(w); + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + if (esl_opt_GetBoolean(go, "-c") || esl_opt_GetBoolean(go, "-x") ) + { + gx1 = p7_gmx_Create(gm->M, L); + gx2 = p7_gmx_Create(gm->M, L); + + p7_GForward (dsq, L, gm, gx1, &fsc_g); + p7_GBackward(dsq, L, gm, gx2, &bsc_g); + p7_GDecoding(gm, gx1, gx2, gx2); + p7_GOptimalAccuracy(gm, gx2, gx1, &accscore_g); + + printf("generic: fwd=%8.4f bck=%8.4f acc=%8.4f\n", fsc_g, bsc_g, accscore_g); + printf("SSE: fwd=%8.4f bck=%8.4f acc=%8.4f\n", fsc, bsc, accscore); + + p7_gmx_Destroy(gx1); + p7_gmx_Destroy(gx2); + } + + free(dsq); + p7_omx_Destroy(ox1); + p7_omx_Destroy(ox2); + p7_trace_Destroy(tr); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7OPTACC_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + + + +/***************************************************************** + * 4. Unit tests + *****************************************************************/ +#ifdef p7OPTACC_TESTDRIVE +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +/* + * 1. Compare accscore to GOptimalAccuracy(). + * 2. Compare trace to GOATrace(). + * + * Note: This test is subject to some expected noise and can fail + * for entirely innocent reasons. Generic Forward/Backward calculations with + * p7_GForward(), p7_GBackward() use coarse-grain table lookups to sum + * log probabilities, and sufficient roundoff error can accumulate to + * change the optimal accuracy traceback, causing this test to fail. + * So, if optacc_utest fails, before you go looking for bugs, first + * go to ../logsum.c, change the #ifdef to activate the slow/accurate + * version, recompile and rerun optacc_utest. If the failure goes away, + * you can ignore it. - SRE, Wed Dec 17 09:45:31 2008 + */ +static void +utest_optacc(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + char *msg = "optimal accuracy unit test failed"; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_SQ *sq = esl_sq_CreateDigital(abc); + P7_OMX *ox1 = p7_omx_Create(M, L, L); + P7_OMX *ox2 = p7_omx_Create(M, L, L); + P7_GMX *gx1 = p7_gmx_Create(M, L); + P7_GMX *gx2 = p7_gmx_Create(M, L); + P7_TRACE *tr = p7_trace_CreateWithPP(); + P7_TRACE *trg = p7_trace_CreateWithPP(); + P7_TRACE *tro = p7_trace_CreateWithPP(); + float accscore_o; + float fsc, bsc, accscore; + float fsc_g, bsc_g, accscore_g, accscore_g2; + float pptol = 0.01; + float sctol = 0.001; + float gtol; + + p7_FLogsumInit(); + gtol = ( (p7_FLogsumError(-0.4, -0.5) > 0.0001) ? 0.1 : 0.001); + + if (p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om)!= eslOK) esl_fatal(msg); + while (N--) + { + if (p7_ProfileEmit(r, hmm, gm, bg, sq, tro) != eslOK) esl_fatal(msg); + + if (p7_omx_GrowTo(ox1, M, sq->n, sq->n) != eslOK) esl_fatal(msg); + if (p7_omx_GrowTo(ox2, M, sq->n, sq->n) != eslOK) esl_fatal(msg); + if (p7_gmx_GrowTo(gx1, M, sq->n) != eslOK) esl_fatal(msg); + if (p7_gmx_GrowTo(gx2, M, sq->n) != eslOK) esl_fatal(msg); + + if (p7_Forward (sq->dsq, sq->n, om, ox1, &fsc) != eslOK) esl_fatal(msg); + if (p7_Backward(sq->dsq, sq->n, om, ox1, ox2, &bsc) != eslOK) esl_fatal(msg); + if (p7_Decoding(om, ox1, ox2, ox2) != eslOK) esl_fatal(msg); + if (p7_OptimalAccuracy(om, ox2, ox1, &accscore) != eslOK) esl_fatal(msg); + +#if 0 + p7_omx_FDeconvert(ox1, gx1); + p7_gmx_Dump(stdout, gx1, p7_DEFAULT); + p7_omx_FDeconvert(ox2, gx1); + p7_gmx_Dump(stdout, gx1, p7_DEFAULT); +#endif + if (p7_OATrace(om, ox2, ox1, tr) != eslOK) esl_fatal(msg); + + if (p7_GForward (sq->dsq, sq->n, gm, gx1, &fsc_g) != eslOK) esl_fatal(msg); + if (p7_GBackward(sq->dsq, sq->n, gm, gx2, &bsc_g) != eslOK) esl_fatal(msg); + +#if 0 + p7_gmx_Dump(stdout, gx1, p7_DEFAULT); /* fwd */ + p7_gmx_Dump(stdout, gx2, p7_DEFAULT); /* bck */ +#endif + + if (p7_GDecoding(gm, gx1, gx2, gx2) != eslOK) esl_fatal(msg); + if (p7_GOptimalAccuracy(gm, gx2, gx1, &accscore_g) != eslOK) esl_fatal(msg); + +#if 0 + p7_gmx_Dump(stdout, gx1, p7_DEFAULT); /* oa */ + p7_gmx_Dump(stdout, gx2, p7_DEFAULT); /* pp */ +#endif + if (p7_GOATrace(gm, gx2, gx1, trg) != eslOK) esl_fatal(msg); + + if (p7_trace_SetPP(tro, gx2) != eslOK) esl_fatal(msg); + + if (esl_opt_GetBoolean(go, "--traces")) + { + p7_trace_Dump(stdout, tro, gm, sq->dsq); + p7_trace_Dump(stdout, tr, gm, sq->dsq); + p7_trace_Dump(stdout, trg, gm, sq->dsq); + } + + if (p7_trace_Validate(tr, abc, sq->dsq, NULL) != eslOK) esl_fatal(msg); + if (p7_trace_Validate(trg, abc, sq->dsq, NULL) != eslOK) esl_fatal(msg); + if (p7_trace_Compare(tr, trg, pptol) != eslOK) esl_fatal(msg); + + accscore_o = p7_trace_GetExpectedAccuracy(tro); /* according to gx2; see p7_trace_SetPP() call above */ + accscore_g2 = p7_trace_GetExpectedAccuracy(trg); + +#if 0 + printf("%f %f %f %f\n", accscore, accscore_g, accscore_g2, accscore_o); +#endif + + if (esl_FCompare(fsc, bsc, sctol) != eslOK) esl_fatal(msg); + if (esl_FCompare(fsc_g, bsc_g, gtol) != eslOK) esl_fatal(msg); + if (esl_FCompare(fsc, fsc_g, gtol) != eslOK) esl_fatal(msg); + if (esl_FCompare(accscore, accscore_g, gtol) != eslOK) esl_fatal(msg); + if (esl_FCompare(accscore_g, accscore_g2, gtol) != eslOK) esl_fatal(msg); + if (accscore_g2 < accscore_o) esl_fatal(msg); + /* the above deserves explanation: + * - accscore_o is the accuracy of the originally emitted trace, according + * to the generic posterior decoding matrix . This is a lower bound + * on the expected # of accurately aligned residues found by a DP + * optimization. + * - accscore is the accuracy found by the fast (vector) code DP implementation. + * - accscore_g is the accuracy found by the generic DP implementation. + * accscore and accscore_g should be nearly identical, + * within tolerance of roundoff error accumulation and + * the imprecision of Logsum() tables. + * - accscore_g2 is the accuracy of the traceback identified by the generic + * DP implementation. It should be identical (within order-of-evaluation + * roundoff error) to accscore_g. + * + * the "accscore_g2 < accscore_o" test is carefully contrived. + * accscore_o is a theoretical lower bound but because of fp error, + * accscore and (much more rarely) even accscore_g can exceed accscore_o. + * accscore_g2, however, is calculated with identical order of evaluation + * as accscore_o if the optimal trace does turn out to be identical to + * the originally emitted trace. It should be extremely unlikely (though + * not impossible) for accscore_o to exceed accscore_g2. (The DP algorithm + * would have to identify a trace that was different than the original trace, + * which the DP algorithm, by order-of-evaluation, assigned higher accuracy, + * but order-of-evaluation in traceback dependent code assigned lower accuracy. + * [xref J5/29] + */ + + esl_sq_Reuse(sq); + p7_trace_Reuse(tr); + p7_trace_Reuse(trg); + p7_trace_Reuse(tro); + } + + p7_trace_Destroy(tro); + p7_trace_Destroy(trg); + p7_trace_Destroy(tr); + p7_gmx_Destroy(gx2); + p7_gmx_Destroy(gx1); + p7_omx_Destroy(ox2); + p7_omx_Destroy(ox1); + esl_sq_Destroy(sq); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); +} + +#endif /*p7OPTACC_TESTDRIVE*/ +/*------------------- end, unit tests ---------------------------*/ + + + + +/***************************************************************** + * 5. Test driver + *****************************************************************/ +#ifdef p7OPTACC_TESTDRIVE + +/* Failures in this test are to be expected, if you change the defaults. + * The default RNG seed of 41 is very carefully chosen! Most seeds will + * cause this test to fail. (Only 13 and 41 work for seeds 1..50.) + * + * The generic fwd/bck algorithms work in log space and suffer from a + * small amount of imprecision, not only from the use of FLogsum()'s + * table-driven approximation, but even (apparently) inherent in log() + * and exp(). To minimize this, the generic decoding algorithm burns + * time renormalizing each row. Still, it's a problem. See notes at + * the header of utest_optacc() for more info. + * + * Another expected failure mode is when a fwd, bck nat score are close to + * 0.0; FCompare() can evaluate two close-to-zero numbers as "different" + * even if their absolute diff is negligible. (I suppose I could fix this.) + */ + +/* + gcc -g -Wall -msse2 -std=gnu99 -o optacc_utest -I.. -L.. -I../../easel -L../../easel -Dp7OPTACC_TESTDRIVE optacc.c -lhmmer -leasel -lm + ./optacc_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "41", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "50", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "45", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "20", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { "--traces", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump all tracebacks", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for SSE Forward, Backward implementations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* first round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_optacc(go, r, abc, bg, M, L, N); /* normal sized models */ + utest_optacc(go, r, abc, bg, 1, L, 10); /* size 1 models */ + utest_optacc(go, r, abc, bg, M, 1, 10); /* size 1 sequences */ + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + /* Second round of tests for amino alphabets. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_optacc(go, r, abc, bg, M, L, N); + utest_optacc(go, r, abc, bg, 1, L, 10); + utest_optacc(go, r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*p7OPTACC_TESTDRIVE*/ +/*------------------ end, test driver ---------------------------*/ + + + + +/***************************************************************** + * 6. Example + *****************************************************************/ +#ifdef p7OPTACC_EXAMPLE +/* + gcc -g -Wall -o optacc_example -Dp7OPTACC_EXAMPLE -I.. -I../../easel -L.. -L../../easel optacc.c -lhmmer -leasel -lm + ./optacc_example +*/ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-d", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump posterior residue decoding matrix", 0 }, + { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump OA matrix", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of optimal accuracy alignment, SSE implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox1 = NULL; + P7_OMX *ox2 = NULL; + P7_GMX *gx = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + P7_TRACE *tr = NULL; + int format = eslSQFILE_UNKNOWN; + char errbuf[eslERRBUFSIZE]; + float fsc, bsc; + float accscore; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_OpenDigital(abc, seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); /* multihit local: H3 default */ + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + + /* Allocations */ + ox1 = p7_omx_Create(gm->M, sq->n, sq->n); + ox2 = p7_omx_Create(gm->M, sq->n, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + tr = p7_trace_CreateWithPP(); + p7_FLogsumInit(); + + /* Run Forward, Backward; do OA fill and trace */ + p7_Forward (sq->dsq, sq->n, om, ox1, &fsc); + p7_Backward(sq->dsq, sq->n, om, ox1, ox2, &bsc); + p7_Decoding(om, ox1, ox2, ox2); /* is now the posterior decoding matrix */ + p7_OptimalAccuracy(om, ox2, ox1, &accscore); /* is now the OA matrix */ + p7_OATrace(om, ox2, ox1, tr); + + if (esl_opt_GetBoolean(go, "-d")) { p7_omx_FDeconvert(ox2, gx); p7_gmx_Dump(stdout, gx, p7_DEFAULT); } + if (esl_opt_GetBoolean(go, "-m")) { p7_omx_FDeconvert(ox1, gx); p7_gmx_Dump(stdout, gx, p7_DEFAULT); } + + p7_trace_Dump(stdout, tr, gm, sq->dsq); + + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) p7_Die("trace fails validation:\n%s\n", errbuf); + + printf("fwd = %.4f nats\n", fsc); + printf("bck = %.4f nats\n", bsc); + printf("acc = %.4f (%.2f%%)\n", accscore, accscore * 100. / (float) sq->n); + + /* Cleanup */ + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + p7_omx_Destroy(ox1); + p7_omx_Destroy(ox2); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7OPTACC_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/p7_omx.ai b/bioinformaticsProject/hmmer/src/impl_sse/p7_omx.ai new file mode 100644 index 0000000..79e3e3f --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/p7_omx.ai @@ -0,0 +1,4744 @@ +%PDF-1.4 %âãÏÓ +1 0 obj<> endobj 2 0 obj<> endobj 5 0 obj<>/ArtBox[12.3447 106.627 786.406 515.052]/MediaBox[0.0 0.0 792.0 612.0]/Thumb 121 0 R/TrimBox[0.0 0.0 792.0 612.0]/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>/MC1<>>>/ExtGState<>>>/Type/Page/LastModified(D:20080819105919-04'00')>> endobj 72 0 obj<> endobj 73 0 obj<> endobj 74 0 obj<>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 12.0 +%%AI8_CreatorVersion: 12.0.1 +%%For: (.) () +%%Title: (p7_omx.ai) +%%CreationDate: 8/19/2008 10:59 AM +%%BoundingBox: 12 106 787 516 +%%HiResBoundingBox: 12.3447 106.627 786.4063 515.0522 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 8.0 +%AI12_BuildNumber: 205 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%CMYKCustomColor: 1 1 1 1 ([Registration]) +%%CMYKProcessColor: 1 1 0 0 (Global Deep Sea Blue) +%%+ 0.8 0 1 0 (Global Green) +%%+ 1 0 0 0 (Global Pure Cyan) +%%+ 0 0 1 0 (Global Pure Yellow) +%%+ 0 1 1 0 (Global Red) +%%+ 0 0.5 1 0 (Global Squash) +%AI3_TemplateBox: 396.5 305.5 396.5 305.5 +%AI3_TileBox: 8.1001 7.99988 784.0001 603.8999 +%AI3_DocumentPreview: None +%AI5_ArtSize: 792 612 +%AI5_RulerUnits: 2 +%AI9_ColorModel: 2 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 2 +%AI9_OpenToView: -97 561 2 1836 1235 18 0 0 6 111 0 0 1 1 1 0 1 +%AI5_OpenViewLayers: 77 +%%PageOrigin:0 0 +%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 75 0 obj<>stream +%%BoundingBox: 12 106 787 516 +%%HiResBoundingBox: 12.3447 106.627 786.4063 515.0522 +%AI7_Thumbnail: 128 68 8 +%%BeginData: 11054 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C457D53FFA87D5253A8FFFFFF527DA8FD057DA8FFA8FD047DA87DA87D +%A87D7DA8A8527DFFFD047DA87D7DFD53FF59A8A8A8537D52FFA8FFA8FD04 +%7D52527D53A8FFA852FD047D52FD047D52FF7E7D7DFF5252FD047D52FD55 +%FFA9A8FDFCFFFDE4FFA8FFA8FFA8FD1AFFA8FD5FFFA87EA8FF7DA8FD17FF +%5252527D53FD0DFFAFFFA8FD15FFA8FD15FFA8FD17FFA8FD0BFFA8FFA8FF +%A8FD05FF3C853C3D606160613C3D14613C3D143D60FFFFA8FFA8A9FD0CFF +%84A87DA8FD15FFA8FD16FFA8FD16FFAFA8FD09FFFD05A8FD06FF851B8B85 +%8B3D8B618B858B618B3D61618B85FD0AFFA8FFA8FFA8FFA8A8A8FFA8FFA8 +%FFA8FFA8FFA8FD05FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FFA8 +%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FFA8FFA8FFA8FFA8FFA8 +%FFA8FFA8FFA8FFA8FFFFFFA8FFA8A8A8FFA8A8FFFF3D1B143D141B141B14 +%1B608561613C858561FD63FFA87D7DA87DA8A8A87DFFFFAF8561618B6161 +%618561FD0AFF52FD07FFA8CFCFFD05FFA7CFFD06FFA8FD07FFA8FD06FFCF +%A7FD07FFA8FD06FFCFA8FD05FFCFA8A8FD05FFA9CBFD06FFA8CFA8FD05FF +%A8CAFD06FFA8FFFFFFA8FFA8FFA8FD0DFFA8FFA8FFA8FD07FFA9FD07FFCF +%82FD06FFA7A7FD06FFA9FD06FFAEACAEFD05FFA8A7FD06FFA8FD07FF82AD +%FD06FFA0FD07FFA2FD06FFAE82FD06FFA7A7FD06FFA9FD0CFF52847D7D7D +%FFA87DA8A884A87DA8A8FD06FFA8FD04FFCFA8A8A7A8A8A8A7A8A7A87DFD +%07A87EFD07A883FD07A87DFD07A87EA87EA8A7A8A8A883A8A8A8A7A8A7A7 +%7DA8A7A87EA87EFD07A8A7A8A7FD05A87DA8A1FD05A87EA87EA8A8FFA8FF +%A8FFA8FFA8A87DA87DA8A8FFFD06A87DA8FD05FFA87DA8FF7DA77DA8FD06 +%7D52FD057D527D7DA87D7D52A8527D7DA852A8527D7DA7527D597D527D7D +%7EFD047D5252527D7DA8FD077DA87E52527D7D7D7E7E7D7D52FD077D527D +%7DA8FD047D527E7D7E527E527D52A8A8A87DA884A87EFD07A87EA8A8A884 +%FD04A8FD05FFA87DAFFFFFA8A77D837D7D7D837C7D527D7D7D7C7D7CFD0D +%7D7C837D7D7C7D7C7D7C7D7D7D537E7D7D527D7D837D837D837D7D7C7D7C +%7D7C7D527D7D7E537E7D7D53837D7D7D837C7D587D7D7D767D527D52FD05 +%7D537D7DA87DA87DA87DA87EA87DA87DA87DA87EA87DA87DA87DA8FD05FF +%A8A8A8FF7EA883A8FD067D7CA8FD047D527D7DA87D7E53A853847DA87DA8 +%527D7DA87DA87D7D527D7DA87D7D7DA8527D537D7DA87D7D7DA8A17D7DA8 +%A859FD047DA8A87D7E527D83FD087DA8FD047D52A27DA853A8537D53FD18 +%A8FD05FFA97DAFFFFFA8A77D837D7D7D837D7D527D7D7D7CFD0C7D837D7D +%7DA7FD067D7CFD047D7E7D7D527D7D837D837D837DA77D7D7DA17D7D527D +%7D7E7D7E7D7D53837D7D7D837C7D587D7D7D7C7D527D767EFD047D537D7D +%A884A87DA87EA8A8A884A87DA87EA8A8A884A87DA87DA8FD05FFA87DA8FF +%7DA883A8FD097D7E7D7D527D7DA87D7E59A852A87DA852A8527D7DA87D7E +%527D527D7DA87D7D7DA85252527D84A87D7D83FD047DA8FD067DA87E7D84 +%53FD0A7DA8FD047D597E7DA8597E527D7DFD05A87EA8A8A87DA8A8A87EA8 +%A8A87DA8A8A87EA8A8FD05FFA87DFFFFFFA8A77D7D7D837D7D7C7D767D7C +%7D7C7D7CFD087D83FD057D837C7D7D7D7C7D7CFD077D527D7CA77D7D7D83 +%7D7D7C7D7D7D767D527D7D7EFD047D537D7D837D7D587D7C7D7D7D7C7D52 +%7D76FD057D527D7DA87DA87DA87DA8A8A87DA87DA87DA8A8A87DA87DA87D +%A8FD05FFA87DA8FF7DA8A7A87D84FD057D7E7DA87D7D52A17DA87D847DA8 +%52A87DA852A8527D7DA87DA87D7D527D7DA87D7D7DA85252537DA8A87D7D +%83847D7D7DA8FD067DA8847DA8537D7DA8FD077DA8FD057D7E7DA87D8452 +%7D7DFD18A8FD05FFA87DFFFFFFA8A87D837D837D7D7C7D7CFD067D7EFD07 +%7D83FD057D83FD097D7EFD047D537D7DA77D7D7DA77D7D7C7D7D7D7C7D76 +%7D7D7EFD047D53837D837D7D587D7CFD057D52FD077D537D7DA87EA8A8A8 +%7EA8A8A87EA8A8A87EA8A8A87EA8A8A87DA8FD05FFA87DA8FF7DA883A8FD +%067D7C7EFD047D527D7DA87D7D52A8537D7DA859A8527D7DA77DA87D7D52 +%7D7D7E7D7D7D7E5253537D7DA87D7D7DA87D7D7DA8A852FD047DA8A87D7E +%527D83FD087DA8FD047D52A27DA852A8527D53A8A8A87EFD07A87EFD07A8 +%7EFD04A8FD05FFA87DA9FFFFA8A77D837D7D7D837C7D527D7D7D7CFD0F7D +%7C83FD067D7CFD047D7E7D7D527D7D837D837D83FD067D7C7D527D7D7E7D +%7E7D7D53837D7D7D837C7D587D7D7D767D527D52FD057D537D7DA884A87D +%A884A8A8A884A87DA884A8A8A884A87DA87EA8FD05FFA87DA8FF7DA883A8 +%FD067D7CA8FD047D527D7DA87D7E53A853847DA87DA8527D7DA87DA87D7D +%527D7DA87D7D7DA8527D537D7DA87D7D7DA8A17D7DA8A8FD057DA8A87D7E +%527D83FD087DA8FD047D52A87DA853A8537D53FD18A8FD05FFA87DFFFFFF +%A8A77DA77D7D7D837D7D52FD107D837D7D7DA7FD067D7CFD047D7E7D7D52 +%7D7D837D837D837DA77D7D7DA17D7D527D7D7E7D7E7D7D53A77D7D7D837D +%7D7C7D7D7D7C7D767D767EFD047D537D7DA8A8A87EFD07A87EFD07A87EA8 +%A8A8FD05FFA87DA8FF7DA883A8FD097D7E7D7D527D7DA87D7E59A852A87D +%A852A8527D7DA87D84537D527D7DA87D7D7DA85252537D84A87D7D83FD04 +%7DA8FD067DA87E7D8453FD0A7DA8FD047D597E7DA8597E527D7DFD05A87E +%A8A8A87EA8A8A87EA8A8A87EA8A8A87EA8A8FD05FFA87DFFFFFFA8A87D7D +%7D837D7D7C7D767D7C7D7D7D7CFD087D83FD057D837C7D7D7D7CFD097D52 +%7D7DA77D7D7DA77D7D7C7D7D7D767D767D7D7EFD047D53837D837D7D587D +%7C7D7D7D7C7D527D77FD057D527D7DA87DA884A87DA8A8A87DA884A87DA8 +%A8A87DA884A87DA8FD05FFA8A8A8FF7DA8A7A87D83FD077DA87D7D527D7D +%A87D7E59A852A87DA852A8527D7DA87DA8527D527D7DA87D7D7DA8525353 +%7D83A87D7D83837D7D7DA8FD067DA87E7D84537D7D83FD077DA8FD057D7E +%7DA8537E527D7DFD09A884FD07A884FD06A8FD05FFA87DFFFFFFA8A87D83 +%7D837D7D7C7D7CFD067D7EFD077D83FD057D83FD097D7EFD047D537D7DA7 +%7D7D7DA77D7D7CA17D7D7C7D767D7D7EFD047D53837D837D7D587D7CFD05 +%7D52FD077D537D7DA87EA8A8A87EA8A8A87EA8A8A87EA8A8A87EA8A8A87D +%A8FD05FFA87DA8FF7DA883A8FD067D52FD057D527D7DA87D7D52A8527D7D +%A852A8527D7DA77DA87D7D527D7D7E7D7D7D7E5252537D7DA87D7D7D847D +%7D7DA8A852527D7D7DA87E7D7D52FD077D597D7DA8FD047D527E7DA8527E +%527D52A8A8A884FD07A884FD07A884FD04A8FD05FFA859A8FFFFA8A87DA8 +%7D837DA8FD097D7E7D7E7D7D7D7E7D837D837D7D7DA7FD077DA17D7D7D7E +%7D7D7D7E7DA77DA87DA77DA77D7D7DA87D7D7CA87D7E7DA87D7D7DA87D83 +%7DA77D7D7DA77D7D7DA17D7D7D7E7D7D7D7E7D7D7DA87DA87DA87DA87EA8 +%7DA87DA87DA87EA87DA87DA87DA8FD05FF7D52A8FF7D84FD48A87EA8A8A8 +%7EA8A8A87EA8A8A884A8A8A87EA8A8A87EA8A8A87DA884A884A884A87DA8 +%84A884A884A87DA884A8A8FD05FFA852A8FFFFFFA87DA884A87DA884A87D +%A884A87DA8A8A87DA884A87DA8A8A87DA884A87DA8A8A87DA884A87DA8A8 +%A87DA884A87DA884A87DA884A87DA8A8A87DA884A87DA884A87DA884A87D +%FFA8AFA8FFA8A9A8FFA8AFA8FFA8A9A8FFA8AFA8FFA8A9A8FFA8AFA8FFA8 +%FFA8FFA8AFA8AFA8A9A8FFA8AFA8FFA8FD06FFA8A8A8FFFFFFA8A87DA87E +%A87DA8A8A87DA87EA87DA8A8A87DA87EA87DA8A8A87DA87EA87DA87EA87D +%A87EA87DA87EA87DA87EA87EA87EA87DA87EA87EA87EA87DA87EA8A8A87E +%A87DA87EA8A8FD0EFF853D8B3D613D856161613D618561613D3D618B6185 +%858B1B3D858B6161613D3DFD05FFA87DA8FD04FFA8A8A8FFA8A8A8FFA8A8 +%A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8AFA8FFA8A8A8FFA8A9A8FF +%A8A8A8AFA8A9A8FFA8A8A8FFA8AFA8FFA8A8A8FFA8FFA8FFA8A8A8FFA8FD +%0FFF856160616085363D6061608585856061606160858561608585856061 +%606160AFAFFD04FFA884A8FD06FF611B613D3D613D61613D851B1B611B3D +%3D613D3D3DFD04611B853D3D3D613D61613D6161613D1B61613D618BFD25 +%FF8B616161858567618B618B618B6161618B3D8B858B618B618B61613D8B +%618BFD07FFA8FD07FFA9AFA9AFA9AFA9AFA9AFA9AF85AFA9AFA9AF85AFA9 +%FFA9AFA9AFA9AF85AFA9AFA9AFA9AFA9AFA9AFA9AFA9FFA9FD25FF856160 +%613D6160613D853C8BFD19FFFD05A8FFA8FD15FF7DA87DFFA8A8A8FFFD05 +%A8FF7DA8A8A87DA8A8FFA8A87EA8A8A87EA87DFD04A8AF7DFD0AA8FD11FF +%AFFFA9AFAFAF85AFAFAFA9FD1AFFA8A8A8FFA8A8A8FD13FFFD06A87DFD05 +%A87DA8A8A87EFD07A87DA87DA87DA87EA87DFFA8FF84A8A8A87DFF7EA8A8 +%FFA8A8A8FD38FFA8FD17FF7DFFA8A9A8A8A8FFA8FFA8AFA8A8A8FFAFFFFD +%06A87DA8A8FFA8A8FFFFFFA8A8FFA8A8FFFFA8AFA8FFA8FFA8A8A8FFA8A8 +%A8FFA8FFA8FFA8A8A8FFA8FFA8A8A8FFA8FFA8FD1DFFA859A87DA8A8A87D +%FD14FFA8A8A87DA87DA884FD05A87DA87DAFA8A87DFFA8A87DFD06A8FFFD +%07A8FFA8A87DA884A8A8A87DFFA8A87DA9FD06A87DFD05A87DFD06A8FD1C +%FFA8FFA8A8A8FFFFA8A8FD3DFFAF8B85AFA98B858B858B61AF85AF85AF85 +%AF85AF85AF85AF858BA9FD1FFFA87DA87DA87DA97DA8FD3DFFAF3C613C85 +%3C85363D603D6085603D60853C3D366160613C613CAFFD1FFFA8FFA8A8FD +%7CFFA884A87DFDA2FFA8FF7DA8FFFF7DFD06A8A9AFAF85AF85AF85AF85AF +%858B85AF618B85AF85AF856185AF858B85AF858B85AF85AF85AF85AFA98B +%85AF85AF858B858BA9FD38FFAFFFA9FFFFFFA9FFAF7D525352FFFD04A87D +%A87D847EAF60613661616160613C61363D603D146160853C613C6184853C +%1B60613C616061601B3C856085608560853C613C3D3685AFFD2CFFA8A87E +%A87D7EA8FF7DA8A87DA8A8A8847D8484A87D847DA87DA87DA87D847D847D +%84FD5FFF597D7D7D59A8FFA8A8A953847D84597D5984597E597D7D7E7E7E +%597E5984597D59FD5FFFA884A87D7DA8FFA8A8847D847E7D847D845A847D +%7E7D847D8459847D7D7D7E7D84AFFFFD04A87D7EA8AFA8A8FD53FFFD057D +%A8FFA8A8A853847D84597E5984597E597D59847E7D5984597E597E59FFA8 +%A87EA8A8FFA8A8A8FFA8FD09FFA8FD49FFFD06A8FFA8A8847D84847E847D +%845A847D847DA87D8459847E7E7D847D84FFFFA8AFA8A8A8FFA8FFA8FFFD +%09A8FFA8A8A8FFA8A8A8FFA8A8A8A9FD3DFF7D7D7D847DA8FFA9A8A953A8 +%7D847D7E7D8459847D7D7D847E7D7D847D7E597E7EFFA87D7DA87DFD04A8 +%FD047DA87DA87DA87DA8A8A87D7D7DA87D847DA87D84A8FD07FFA8FFFFFF +%A8FD30FFFD04A87D7DA8FF7DA8847D7E84847E7D847E7E7D847D847D847D +%7E7D7E7D7E7D84FFFF7DAFA8A87DA87DA87EA8A8A87DA87DFFA8A87EA87D +%A87DA87DA87DA8A8A87DFFA8FFA9A87DA8A8A87EA884A8FD31FF537D7D7D +%52A8FFA8A8A953847D847D7D59847D7D597D7D7E7E7D7D7E59847D7D7DFF +%FFFFA8FFA8FFA8FFA8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFA8FF +%FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FD30FFFD04A87DA8A8FF84A8847D7E +%8484847D845A7E7D847D847D847D7E7D7E7D7E7D84FD5FFF52FD047DA8FF +%A8A8A953A87DA87D7E7D847D7E7D7E7D847E7E7D847DA87D847EFD6CFFA8 +%FD07FFA8FD07FFA8FD6DFFA87DA87DFD05FFA8A8FD06FFA8A8FD73FF85AF +%A9AF85AF85AF85AF85AF85AFA9AF61AFA9AF85AFA9AFA9AF85AF85AFAFAF +%85AFA9AF85AFA98B85AFAFAF858B85AF85AF85AF85AF858BA9FD47FF6160 +%85616160613D613C613D613C61613D6061613D6085618560618585608B61 +%6160853D3D3C613D61608B613D3661613D60853D8560613D85FD47FF8561 +%85618585618B85853D613D61858B6185613DA985613D618B856185853D85 +%858B3D616161858B3DAFFD56FFAF60616085608560858585608560858485 +%6061368560856085608560853C85603D6061608560858485608584AF8585 +%84AF858584858585A9FD48FF8585618B6185618B618B6161858B85673D61 +%858B8561618B613D618B85AF858B618B6161858B858B85FD05613D8B6161 +%618B3D613DFD49FF613D616085616114853D3D3C85613D84616161363D3D +%61608B3D3D3C613D613C613D61AFFD5CFFA9AFAFFFA9FFAFAFAFFFAFFFA9 +%FFAFFFA9AFAFAFA9AFAFFFFD04AFA9AFAFFFA9AFA9FDB7FFFF +%%EndData + +endstream endobj 76 0 obj<>stream +%AI12_CompressedDataxœì½{e7Ž'ø¿üwÿh <;ytô®],‘žšv• eWO÷6F83lçTF¦']íýôË%R«xÜÈìißîʸ¼:$EQIQ:÷üé›ßž¿|ûýÕoíÙvxôÅßýÝ“wW—Þ¾ûÝÁ‡ß¿~ýñý‡wýæÏ_Ì~¶¡ÕùïÓwµå?^½{ÿêí›ßñog¿>Çó¿9ûòð›/ñõÛW^_àçøÝÛë;»|õ¥¢Ÿ^~ Óc“ïÛ–fûχó? ÍÅÛo^¾zóãÅÛ~ú-bŠo~þ/¯þ|õ~jsf‹hxöHÙۂ¥'üÙæ÷=}ûâãõÕ›z÷öÅÕû÷OÞ¾~ûîýïO~¹|søÃåôËå៯^¿~û·ÃÅëËíŸyþöÍj{þîÕåë?|‹_þÏòå·¿ÿpùúÕ =yûñÝ««w¼úÛŸ¾YÁ~{ñöõËòƒ þãÕÕË«—ŸŸÀùïýwÏ_½¾¢Q¹¾üpH<‚ç¿7ûw_½~ùÇ×ß_Ñxí›g¸ýŽò—÷$  +þfxüî÷×úæêÃ’6±ÈŠðäÿüOHCÞ^sKúùÍ¿üùêÇW¬:4ÈÿýKiÜ ½´Þèó›¿ýöûËׇ§WW?¾¹º$Á¼ú²ôj;KÔÂt­þþÝÕÕ›úky¾ýö§ï®x(åééYþ½Œ®¶0C‹?_½lÏžùá·oþçÇË÷?}YõíÕõϯI}YõlÔØnÿÛþ–¦4Ü,™m3‡x–sN‰Ôm„Íž%‚ÕöMG¯þõÕÕß~wøãÛ7Wu0Ïß}øæÕÿGƒó~f¯à?|}õî/o^A} +,—¡üÃÛ—W¯Æ?}É#¨Ò©ÿ[[|{ùîÇ«4·Þ¾þøçvÚä7R—¯.¹z×ùúç«7ß¾ýGfó·™fg0š«Éš–˜˜}3B«HÜTœ@€ÇqŒÿŸHÛ¾~÷êÇWo~'¬ÅïþþÝ«—Mã~Hå1Eÿ?ËÿW.©Ï>\ÁN‰ú?ùC§ÌÛÙ¾Õgo^>y{ Ñ¿g DJü†töõÛë¯í ÿF(>þüè‹yô…ÍÿçÇ·®ÞÆ×W‡ÿøîò_¯Héñ³ïތݺß_¾¿zü Ï«7úòû#Ý|õóûWDþñË˼zWÿ¡ß¿xõŽôâ‡×Wÿöøç«w~zûñýå›—¿yqùîí›Ç?Ò|fܯ¯~øðøëgã|Á áã¿I¤?}P’ÜT¾”Ÿ¾ÿHЯ޼$]|uÍÿ| Sqõ˜¦óË«ëËwd¿Ÿˆ–‡ß^=~ù–ìýû÷¯ÆçÇÿü’,õøýáñûŸ/_8‚{üâã»wWo^üB_Âãïß½ýëÕ›ï/É̘KûÇ/ÞþüKÅùîåWׯ޼zCÇý1ÉÿÕ‹Ë×oÞ~xüÓ/?ÿtõæñ;¶5ôàËÇ×—/À‰•éñÏ´|Ñ“ß?þð··ï?’Ð^½}÷øÃOdAôÛå‹®_„Ê>fØË4þŒíÅÕËW¯__&šú1t}ùþÅÇ×ÌQJø‘,Ã;zþtùú‡B£ßLÞŸ³>ªóBñ¼Íó"ßsíý9:ðøüÙã'•…ÇÏøñÇÏøaÂò¬{ü™>÷ûÒê÷…Äï»6¿×6Ï>üôøLÐ|]øº<ðu÷À×…§¯õ¹ë¯?¼úùõ/¿~ÿ:ñéÐ_ÊÃéþ‹>õÏåÇozûŽ´åŠ¡7¤jï_—ҟËîéËBúR‘\²8.¯¿q\•ǯ +ö«ö0¡ºÒç^•V¯J«W‰WÚæŠÄñ¦|[š¿žÞv¼­Mô¹—¯þõEË£ ¥?õ™_ÊÏX¿øÑß>+¶Ðÿ×ï¾}O–¿3øö;64ÏÞ¼x ?çw‡ïªsМ„y,°Çò[±íßþ¿Ù-yþðí»WßþòóÕ©Õ9òG„¼‚O|VfFÏçÈ"fFÐãé7fªËµvÃ&¶*üñêùû2X˜ùޏûÍŽlðþø3ÿ–¾ûÓëôãß¿{ûñçß¿ùáí£/~Sú?]~ø‰¼+2îïÉ?/°òõP!èW¯þU€ä­ÿüå(¿}GS—¸ûúûÿqõâ=_í¯o>¾úpuTÂýîÍ×o +›ï>¾ÿéðíÛ·¯•ÕÚ þ¤“OSžùÕÑÆ+ôã¯ù“Kr@ȘýüÓ«+ü‹ß•Ð ÏÞ‡,ù0úŠâø“;~â×A‚þáÕ›—ô+~“ÜÛ럭¾ùéòg€Ñòy×ò>ü?½ú¹nlúìÍ¿^½~ûóUƒ+„–Ûû|÷ó½„óËõ÷o_¿zÝdÒAôïû "û]Ç¥À¿÷š¥¯/ß\¾;ðÊ [¦?]’µ›¬ÃZ³Ù[Æßþöv›oúÿ¾Ç›¿;ü† áÕË߉Ä÷5È\ÇÃÅKþïG_<þüžÒç }.èsNŸLŸDŸHŸ@OGKŸ>†>>ü8þ{JŸ'¾xöäÙÎé“é“èùèãéãøcé³ÓÇðg{¶=e&€æ)þ{Ÿ‹G_<½ Ï9}2}"<},vþþlO·'Ü­'ÏøÃ(}Aÿ[þ»àÏ9rý$þÄú õãëÇÕ­ŸˆM÷ÙúÏÅóòyôÅÿÃRO[2i§M.ùRL)åtž.ˆôSØó¼eòóÍ.ûr̸Ïó1!<ËÏÏ·ss¾ŸÛswN‘ûy8ç„à<ŸŸŸ_Pwž’øŸ_lô1û…½pþ"Ð'^¤‹|q~ÿž`Ÿ]#mzBZ}N³‹x$È92I;™¦FûéÜÒýsšƒ‰lB sæÈ¬ídÞ6Òˆg¤—Oh~œÓWëÜÛçb¡Å>šuÁVz´Ñb¥ÕF³…~:Yè¥}Æ`vöY¬s±ÍOŠ]®VÙªENÕK,V˜$Ùçõó¬~Š$Þ ›2Ë&ÑfþÀ@Gþþxþ [d/¬e•€RàÃÃSÀr*~ÕV“ V•s–%*¥ ¬8P(aÜËjÄŠô¼x{U çÞÿ‡µüßÑZZð/ìÀ¿ ‹Ù¯ú÷†¾Æ|F¤FǦ—&›@¬¿˜³˜;Ohýky=ÞCù…œ$š?®{nõk}.%šåïÎH¾nñku½<&Hù…\:O¾Uïy-~-ϹLúãË/{`ƺçV¿–ç6GãX1’Es¿÷ôV¿v’ßf™ŸìHýåÍ›Ëë«—‡+è-¼©˜»Î¥âHö®Ïñvø¸ö!Œ^?¡~¢~J¨ë‡ƒ }—}‡“?+y NÚ‘r³ñ5œÓØ9¢w5³á9âlŒ‡Cçl’%ý”3ÏÙ8óÌùŽG_87d¦T0Ö]ì1C-†;×H5Ý´\mË~ø„îˇ0Æ.Ëú9×ÏEý´]¤§õó¬äÂÊG¥éajn¬|lÍ‘9^Ä}Í••|Yä%=ñ²ž9ÿrΙ˜‹º{Å4ˆLMI—\šhwÓ㦷¢¯MWEOEGiÜ¡£¥{ü÷ïŽñvM¹×‡0>ìÉý¦Ï‘nžò9ÖcúFþß2J5_÷©Ÿçò!ŒÏÇÏ ÌÝmW«=%­:²«U3gËÚÛÖØ%còhc £ØÙfkÅÚŠ½ílný˜ÎîŠí­Ö—¬²«¹Ö VX,qª¹ÙsµÇ5ûT­ò³’ç­†¦4YeêdÉ5'ö.gê4WJu åc[.vÌö,lËÁŽXÍ¿êü?uÜ1W VÍUgªÓ©–<5gª5K=å©gùÞéß™]br—opе?Ò{äÛoîGË·Swúœ{j9w—Þ<ܶÜd¡kX(Þ±g‘ë,‰‹ _½«{;žÝFÝÃà]Œa<9WêM&õ̤€¼&Ž;g +É/7GÀ}×ì)”Lç™1>ÒÏäào9O8úäM7¤w·-8÷ˆ3[ŠÿlÞ2'[(´wœr½»¿öÕ‘Oè¹Z–ûE>=O‚—~…èLïÚß«ý'»åní–»Ù-¯.ÌêsÑ}ZyN-—§¶ð°£¿/\äê,-û0â‚× Ô\Hœïêx«ÛmJAd:æ IRG»ÏÜ#¹‡v?Wdr„ ãÊ žàÎý]ßÑí%‡—0ŠÓûlpz{‡·¹»½³;:ºY4‚4¦stEÔíh#ß»¸Ý¨ÿJ\ØO‡óÆ1ÿ$‡“Ÿ¯NE¼×g±O¦ŸÜ¸ …37Ù€Þ +ô–`´¬ÍU]º¥«ðþØùÏZ ¶ +ëÏou6Ëöüß×ÝÛ7î±æÎî_ïÎ.ཷâ«U—îÁîàŽá8—îáìÎŽaïNõÎÔPºÀk.Ìãó©ùÙ9;‹Œ~ÍÏ>(;{ìˆÒ*rGvV´Þ5[“t¥$3v\HRå?¹¶+=Ô9t›{ÛÆäiµê‹¢’ÙÅm©še|êgrš?ƒÛ¼´²“e/}a±ï­%Ë<¦ç<®¹V(på'ûœ³Cž¬Jñ©w¶)ølZjÔŠŒš³~syQÕö}nÕ‰c·Üí‰ýÕ`{¯9¿{_¹å÷h\Ýòêgo™~ ‰œcOÞ¶=£¹Ð{η6»3îö3c‡ê…ûµ/¸ƒw†ýiÇÝ1üÍîÞÝäßóÝñÿöÓ«Wÿ¹Ü+?|øNòÙÿ£Ôàóͳ{”œ²¥öé;½ŠþLàË׳æ +…8ÿ¡Àÿ¡À÷PàÛÕónõ¾EO<úÕÎõÖsŸ¤ó¸fâðöÍÿBÙ‡ï°ý9¥ò­aûVÿAáï¾û(µi¥,ïŸ~)ßÿ+ýý?ú·ƒ;üáð/ÿ};¼|ø?ý™û? ½î@óá+ÀFj¬6ÿêƒÞ.¾®ûÁ{tžnò‡qyÃFö_K»?‹ÐÑ‘¨kâáo· g%Ž=«Îœ%k*[ÆŸÑDð#pG™àÖœÙ8ù_*›ùÖŒÀ‰6þÇÿ0‘͘¨­\1p¤ÀO¢h±ƒ1z†):3+oåipmGØLyâiUaƒL\<Ãd>–Ìè (2ñûÙžGÐD¹±Äªb'1-ô'ijã(&%Þ‹iàHDö³Hž×›)7ž* &éÃͪ/ú4…“œÌ\˜ôiN´õ cãã-ƒ' +u¬åÔI MJ3°g jÔ›iiÔ ª +¤"5e¨Q p` hÔ1OûBP2®ƒ ªF 2•Zjù ¨%OU§ØL»q%:*šp}ã”^N~Qµ;Lª€ÐÚõjÖQnvleÛ–heE{}º¿˜žDŸîë <­ Ö÷ÕªÅxg†þÙ}ÿǶÅälqÂÌîÖÒȬ¬Ñ¶l2èý…§m§h"³h gTb/⮜™…eY ½¦}ÉÉ=¥3Íaf(Ù3ŠŽÇ$–”dcrØp©ÍâàÀžsTX™çýõŽÁ`¶nv”g[òÃjF_ß¹ºÔnõ6©!ÍV_õálUáÑ0£ D5¬¼ííæ¥v¹& 7‰¨#ÓëôôÌ”?þºZD!­¼Úíæuv¹ Wv,ÍÇʪªAŠáX:~Ë©Îä…‹»4í«5`»Ûe=mlÜìë LÜè§îKNî'–ÉlöSøØÏ›¤r£?¸ÍiJÌLØI‰ãŽy »9Bép~‚2l-§å2vk4pÌÖ_}Qn£ãËÇjRäÑ2Oò͇Ëwï~9|ó×_ÊÉ9ý†›x +ãwKd Ìo@%­ „±mûÐDÉ„ùº +v‰è_­ð2pLšdÞo2;VbR,U\¯³Ù¼ïu¶Ïø¯oÄÿø®ª”i¾m˜ò+Ti(O*¶ oÐÑÍBmÏ6seŽÙ£!»çÝ™‰[>¼.¶†´#ÚD`ú}O¾‚É¥D¸ ©–W(¶vlB·i^˜:È4»ü?³Ñ´ÙD#­‰¤‘w“©R$ƒš]°èXŠõq¤Ê c{r²ÐÄpUi¨ß‡v¨a4!iWÍÜ!QÃmo21¤s$úÝíœûÓi4!NЋɠMê†T®A9¢Wm¤NeUÂx8Q7ZÒ<õÑV‚™ZîéíFk¾‘¶ä®ð8ñ ØseƒÜ‚”\bæé‘Ý3]²F6ÉBo gVR’lÐnºXÞ-€i'§µ'ÐMšÎÚûMäG–gÛCc‘œiË ù®Ca7 yó®u?°ÞÀ ²®‰Š—ð±Û&Ö±½!'³¹`Lá+^‹ÏÆË{®Š\ Ò`Ä7<ìÔí£¹LFû Ê“„&VŒ{‚×샧žÓ¸g„’êˆ?Im›Ý³™¤Ÿ¡Mª +d³ÙS‚˜LjMQ‘{Èðé6m;u­ï5"’ +ܵ<1à„Æéô`­Ã€g_v¨´™‚YøcÝúµ#z¦…†úç¬,¤ÉrÃ-4Á4ö†›}­ÜuÕ h}s­É§Á&Yld.›ØØY%YôÉÔµÎIÁBI+,2)kÍ#˜àn•k™ÇÊÔ‰¤–<ÎdÆÈ¯¨=†1Ä0cI˲`Ã_pÙ! B®ªQO‹™Z²j‰;’I´´r°æ3ÌmeˆÛ%mÈ#°’‹6Ì꺚ŠÈ³cs]›#‘I—_Z(2Žñ#2‹Éh¯xp©ÿ»}"¡ðØR¯8š¡°¤ÈÁ£ð<Ùiß/éÔRñmI†ÛaDÀl’ð–xça%â6¯À¡C­«äUÙ”[ÂÏÛjdááqD˜qm@í,Å˯*2Cu«Âÿ1Ô kdYñ®,–ˆpã.³¨Ñ"8.MF\øUŒÚlÖõÎÛ}g¼N­¼-pF1«ð@òóð@ ʼ^ö­ëv.“ÚÀï²[]¤é\&ñf ¨…“hKÃiµƒÅT‚O?ž/Ë©¡6NÔÛ*8¸Â¶±gxÅ#Fìõ$x_´¤z ËhDÀ¡_ôoT/ï¨gc§=ñOÚ(Ò£Láü`žŠÒ¹ìh²’~²Ç(¬9xà[" xå¤*¸¬*PH«<°ÛA:…¸:!sÃæ:b’b4 ¥ Qbp[¢âÈíÀ²-! Æ,t*€©Cãi8A³&Áw»®­Ù„¯edbÈ9 €ŸÛ©Ó}c‹´†xâ>±¼¤a‘ÓÞå xvØr—CAüÃ͇뽉sl Úع„dI)”äF§êÔÖOI=#åKó ¸’û­éq(›à,dÎ:èÖ”È+*õZBÜX’€¶%.àŠO°%Ó làkE'2²XÚmñ*¢¬4IP­y_bö4’ÚCòòÈÞ0Q—‹|¦%V7磞 RA"¼92·Húh±Ð°;ìé!vmYq8¾zÈU&¤ÊÛVân³c‹—H‹Í®òc“Ë©,kHÖdâ C£¸=ˆ|‚)âã _:굆\©ÑéSĉ¨ˆ8iqòq{ ÝsG8cÉ3Jdvq–€‘nrÑ¢Œ´;­ÍgIÈ5H꬧P +0pŸ¯‘­"Ì–=³wÔ]9”dìcªÇ“}!DV•F@¬ ,HaiÛtpeíÆ}Lj"Á[Y‡j®kkŽÐ8O.±vù6|7Ý" +éšÓ‘!f]Àæ±nÛ¦\ê‘=%I†e$)lèkE†WWðíÉF N, ÈXQQ!*‚£ ûÜ£ÖW¸·ØsÅRj$§ÝV󎤅•<o”%Sí˜$ðá2$Íb»oƒÍ•oI(N ñ¾ý.XISK$â\IèÆ[¼}.ÓŸ[î}±%â˳Ú²Gýj]v°îˆH +5+§ØB²Z×@+7 +04Ò@¢Ø¬ª{ÙÊ-n‚JYÑZ«@+ƒÄ/È{¥Rï ©$”›1Ì*1p¿±ù(/£M<œ)AvY¼£žµNcæ#o@‹ +!ßÄÊ¡ä ±Ã0?Åà#3ÈÕ äšdÝÕ’Í>È”â#1\n—TB\u»cMÕÃGÝ3êC ê¥ŠB +í)ªKÔCF( +Øë6\.Ù+€ƒË©L]ìzø‰—;lÚëf° 5`ÆæN²]Ä`pé¦ $rcºîs(„²;MF#9ˆ °)›mÊ#\ ÎOakz³Ç²ŸÓêÂær <Ø›ö²YF%õ…TMÛ€´xŸ% a¦«÷Üɾÿ4G(®G¼„hG¼è€œ0O+ñ@°qC£†øN’ä‹à dJh…Ð`ƒ&RO}ê†näêÒkiÐîÊÁ¦`µ±¸Gê&qG¬ œvƸæM“xãƒ- Ò¦¾´^î¶ÔÈrr]›³y!Ù‰5Žì°ðVwËá¨6’²5]XÀþΡ¹>z„oÀ[â]”‡ q©õ®u*¦zŸH»m®™QÎÅ#'ŸdÕƒD°èLÌ:ÁH‰¦*Gˆ¥¸lâEˆ5¹È‚(ïci^Ë +0 ŒèÀÓRdæ‹sï‰;ÄïØ9‘­m«"–@±t Æ Ì1•} ÇÕ+@EÖzm¸3Mß×ö̽9ÅÁK¾xC ŒëŠ(„ÊjàbM!¬«dDô‹ò[[þÄÖ ²©åpC@¯S© Æ9U÷CjÈpõ"Š [õPÉÔ ))躑͹C§D6…°Æ$Ôü´StpU°ÞGÌ{ñÙ“¬×(Bðͤ¢/0Õ{–µÜŽ-!ùæp·™±QÌàòâ¬^*yÑ c‘^ýx„Ô pM^›l®˜»®¶õ6l›µ;î ƒŸßOU8ÀâÄ +”ÐZÝvvEýLÄŒ—lÇÎ-(ÑØ\‹ë6W +2ɰ´ÈšÓlØvÙ¤^‹¼· +rFKDˆR 61˲LyÔ®°OÌI Ûʲ\Q‹²ÞïMŒœÒ"wË[W¿2öí!zƒp ©µQm`Û›ÎV­Ù{OW•&uûÔ¢3;o¹YeP»ý¤2;´ªª1ùlkûÜU_`g} V«ºì¹7äs¿N1,*QxK¶e쪲Xä5~©ÊB6ßën\Õ²òº©¦Ø®.²j +l@˜ôd›Ä•"ÕY?ÎF¡±~ ²Ü[ÁêÔ™S´#  +"cƒ¼«¶¥ô(™®NØqHõ ]•ð^J!ë¬J@‹) ]pÝ3X½ˆ Ї´Få ØðCÑŽnM£ ãÚßXÞu `6m]yðN +¹•ÉôµÁSwNÑ ì]ëŸbW8ʾFÚ»²aZ#¸j)§®h˜VXšÆ1u%à +±†ÊZÍÓ’*8Ò÷hº¹’YÖiƒZ%la×¹ÈïÀ¡š€­TYÄ1^÷¦—Ã}«È±ÇäXyÊÛÇ¥§ä£¡øt¬=åMÛ£âS|Pû5ŸÂ!^TŸ¡—ŸòjwT +ûXN ¨XãŽÖXzÔÃÎë&²«T,oÇE¨pß·Rþ6T¡z¿*CE-óTˆêÓ²/z:*EÅÚ°¨E5˜ÇŨ&î«jÔãþb4ìð[ÕHËÿrÖéxÕ“Ç[ `ÖqŽ{ [)=˜6A¦>>ÄÈø¼Šn‘CÎoo9õDôÆY.ÄÓC„ËJB’™"\Z=`¸û“é8ÆåœŒnä> 0F¹èù*ÌÍ7Źp.ÙM. ³O‘.ô¢B]úI(÷±.|w®#ƒ]èðëæU° ̓Ó2D»ìµc†p—…SO—vú7wì$'d+5í£‚ãkèöà†@ 8·:ú!¨[™ïVž.‡¦uðD°@pW-¤z_1 [¹Á‘À ¦É™úušI¼tþÈV«{‡&“5bôH…¹$F¢ýÁ'A ƒ¬É)ÙÊy±Þ+)SÝMn‰áò~›F¿*ÁyüÁ1™úu‚š8.ãT•¯8ånb$¦bÁÊÆ#&îV×…hd{ƒ4–†Á—Œ®ºŽïù+o›dö9äTP_Ž™¥ç,¹RÈÁ[‘X™·fŠm©,{œý%ÆÜ®,x¶„ M[hÄÆ®¢)Èf>݆|³ˆ…-`æS}Fu®Åâ2ÄMl8Õ$‚=ås5|âAÄêê‰.Þ®“²S"Uª#í¢SrÛàû Qàd=B†GôYÓÞËó°\ék:ôëU HcajŠé^¸ò…¾žËÃâ¶…’I&ûÞ”ãI@Eý± Å•‹Øš°Z¡çk¡êI£t*pò¼¤ÜE}B-oÖôLÆ&©bšªAö³B­ºã\€wÖØ³S4…=G8é¸)Ÿlk;‚êoÒ‘F¹$´?âÈ„)‘‘\®#•€¢T¯U±:æ‚¡ºú°}…þ¾ ¿Ïà†Ý¡E„CBâ†ãÓ䯻dýÅÇ=êÖC<‘ºÁ™uDd¼V“õ²Å²o½Ï¡[,(l;âÎöéÏn‡å¬KŸè‹¬»ì¯¤¾Ê_¶W|vI©ÕÝl«7wdêZçȶ‘s”º·‚³ÝÊQ·V(lº©;+¨Õ×óŒÝÆJï¹´}•r2@¹+Û*[²µ]•>Ô6Uh¢5ÿ¹î© ®i뜧¡k°¨qŒn2ØI¦ØÝ‘eO,ciùƒŽXêG»ŠM3›¡Ì»Ú ><› &Ò¬µX dˆZµíÔ¡‡Ø .Ia4œ¯“:j2PV,rFâb1{?âb/özœg²%RÌÅÞ—ô‹¹3¬ƒ¹€"Çî\ÜС& òªø¼. +%*¥N¢ìbcmw^V̈L67±ŒµÂ"¢])Õ µoÐÁ¼<𮍀7¸EXK8zô/RÈzP-Ùªô˜Ç{h;5ìô1ÝæO¨ÞÊFvصŽpê× S纓/e…{?¥i¼ù +Çé.1¼±Ms—(i÷ËÙ9T¼êkL¥”ݧˆXÚòªZJtpOªByRÙ£æªm©áÂ͸7©°Ú›r|³`4ÌB4Z_7wí”Y‘MI +cpeÅ1%š†Ø©ÓãºØ‚wJÀÝJ–çµ’Á w=äŠj7ÌM> ©|¦8ÑuZ‚’X/+‰âîçºÇC_VŠ(Þ–$}”qcŽr+2»s‚‚Ý`È÷ØoWI˜Rä‰Ð#J„˜r™ŒxÕgV…Í5 å qÆRÄ]·ó颯4õMÑwNr‰ã„„=t çôµF;»R…Qc›$ öýbì‚™¹G§¨’W®¹ÒHZ4ÓCð¦[·Ž‹$ÃÖíabvâ€ί$±ðˆ‘Bô¾Tˆ¿®dxMC„¬™3äà ã£K ’AŽ·EuÆY#¿s“×êG®E!2ȑ葊¹7'¨¢ ö®Nþ v‚­L”JÅr›M;‚‚$=ù.n&LZ,÷µg­/‡ã’ GȃÿÞw¹-¤„`pqbLýTo¡èÓ÷{[¾R`™Ú$Ñ4wè­ÀIOœnp¦Ó +Ôòed©Ó +Nfóž¦ ÒC”`©Zà˜ b#T{©Z 0Wíã4„ª…l¨ vSÕg'"oi©ZÀ‹@²IJ™ +ДxÞ¦N-æîœ ¸¨ÜÖ©Ü6$™r§²gè¶N-P´Šz0”S¶Cø5É€ã‹[×’k‘Tµ¨î¡µ}Ñw½%dm»É•Ä+ +ÑT+ 2ìW"0V­˜ûsŠV˜Z5‹ ®¨¹®çzó\«ª3Ë;3R_ê!§"..ÑÖDV¹iÆÎhÂ*—ërp¹JVUÁQ4²‘ØÇÕcƒ¼£†Ó²±8ÚE$ŸQ±Ø×Ê#"͹;ÌxÔŸSô”Ä7o ¥­MìåårÉ‚Ž6ç_p‹ Êg7rêeê!$ßB[ü VØŠL•)·ºw¸–1ó³¹uwYxÇ' µ8”e–xlšÈºsŠ^¸½V=(ê‘€=yÜ|.¯ãMÅhÛÐí£ŽÖ Yß$eÀ…RFœºÍ-ººoˆÓ†êGÃóB%ŽÄ‰–ã2 Tƒ[ßyÌ'p7æÈ˜®âÑà@«í«Ýç «56äsÙ“Œ/жój°ƒ‡“¨(Õ¨‰&òÍùõÖƒGŒQøÞÕ^9±2kœÉA-@;aÉT™ŸÎ:—ÜŸÝÕ@Cf´¢Ÿºs’¹põ´?þàh®ë¶îâLCh5Œ57°/°0‚SQ¶îP žMåRÐ×µƒöüùVg»üBi[I vÈ·Îïâm¼â‘ïå0c‡rJ »9G}jb]ª·dlp%%Éê|W>!cõèZ,eÐ|Wˆ°Æ¨[è® +qjpqjÊ6láIU2á–¯¡Çý½·‡¢{àÕ£¯^îéØbW'ëë– kZ%6víGÕȱŸÌ5:ׂÈá„O”­M„ߨãß° Û6ù¹µOm-Ô‰ƒ»Ë\çÁ倒•lТEŠ©|óûËæïÆyôæ÷—uÅ—·5ùaÒ ­ tîX/ƒÛnù…”&ËÍEyÊ„‚«Ã7ìÐ*FÓBŠƒbYCqr&Y=$DÚ^²À(œ5Z4å!¸z0ºí7ÚÊ*Ê7ºsv|AÞ&s¹Ÿ m[q=OºÈ™ÕÔUk±aãù[ÓÙ†ÏģğÀÙµjœ©‹§Ø8¬›/Õ2*>P„ì–Xê/ç‹PÕ;âÊê®— ±$1çù°ÐzPoóDU›€­ÔÜá í$YN?°ËÓIækÊht‚t¶ ¨wzÖé¨{§kÍ­Ð'È À‹œ7ùu)êÆuÜ^õ‘ggϪ­ÊØ×ÃÍ@¹?ºg«ŠJE½È î¼5lõ±/œº[Îx…$]CºÏ„E ™xŸšyœûsŠ'S+Ôù^"k“ÊÂ> ‘v×ÊÁÝÐë-X< …Ë®]ʱ»• +Ë œŒÜ‹¬ûL&²ß›´â +]„k‚;˜¬héñi”:Ö?$ã1:’>;êÐÔ#²8cY¼ªDbÑlziüƒ€ÚjéK‡ÇpN£x/ÐŽà;[ƒùí½³‡v„zÅ™ŠÚêLѱÜCâk³¤!+¶²5žzs‚n€.Dr)ÊA°j ]”™r¹Bl. B B'00Já¿0ÈšÂx‘k¶šž×Ú~ì²éx˜eÐ –xlrdÍ©iåÔ›Óõ¹ü½Ü0|–²ÿ­{·{¿Išª›€ckNñ Íç.MwF•ð¸ç„¨ú¶‡ù† ‹zINïuëu§êæã8\ò ¬|Û³´¸5•ÙÚõ`†©uTwˆQžûu‚ŠD¹7Ù‹]œÛX +‚ŒU‘d>—ÆgQå"@.Mgâ!¼r +ûÞDÂʨ 2ݱلDŸ^Ýä.ô“w1%5é•m€"ý&<¼îœÇ)vWÎŽ½z€“oŒVp½„Sv-@öQTßÔ»À)p¸(8úÚB¢-÷¥µ{:¶Xœ·o¥O8tj)öǦQòŒ •B¹,OÛ²‚ oÛ1hìcÍOðûÕ= ¶ìà ½r»vŠoO‹7_|–R \ÜǻǮ§pM°)áÚa†TÙL]íäÇ÷´ØqKõ–ñXÎåhØ-ÁY§;Ñè'< ·?C&ðJ¦ÈÅ-I%?ózÙ¯A&rÁúÆ‘ýA‹4N¿i€X/qµ¹ì¾·=þ­Üš´·êO®Ÿ!󋵸»;Å•m6Îíðbݺ䃫·F9ǪA /9\¸ƒ-Y‰Úi.¾ë¯á}q~Fê¶wѶfˆ÷¨ÜܱN*õÞuM!ðÆ;V¿] +?ÍL¥þ>W©²©ü«”ÊSˆDû¶œÊŽíB£r÷Læ|iW<çjñ"Ù]ž÷‰Ð¶>¸ XÛ‰7–6’Á€Ï®“kß±SÔ‚S¾Í›2Wx—˜¯žˆzÑ&J¹v‹¯_–b^‚\)»K É°–(Ñî +‚øÞh´lëÇVö*вP·©^ú‡õ… OÏ4´õŽhAl«ÀØ«tôùæjÇ'è®åiäàN» ÷pœàËYeò…¤®«Q†…Zc¾ d³m¹a³¨º‘¡^„þ{ °Vsµ7èÙmœU´zŸËÊTbjkíØ¯“,E*=žmI\S\$ÊWiÀ +´ +¡\°^Ž}ikå?n-ƒ\I*w`ìí,XªwÈïÝá|‹*•v¸æJ,àv1Þɶýéá\î¼äÙ©µü¦Úež‰›mð±k7Ù +$RùÚ œï ^w'J¥–ë*µÂÇz >…¶•¥ÇáðJU•ßÌuC›Z5\€JÝ­N¡œv†6-€Ã _« êpá6qÅ«Þ!‹«Þ’’o‚»vŠjà€§`NìrSš-õV¨ë³šÁ]ïƒïÝhÉÀâ0‚#‚›â¸ ,`›R‚mìÙñí(·$ZwÀùüJóÄ]½— ¸n/œ/F«‡H vm[npô8ŸÓ.ß{vƒf€|©Ö e—›O·=B혜­uÁ|†"¦N[•V»ƒÚÖs||F_ïÐÇ•¨|%MèuÛÚ’;€LÐЗÌ2*uÃÞÅL oÔ±qí~V[~Ô·“¬²W¸‡µÕÍjØj6âÖ¬Ûj6`½´ÎV«ro4lµlæÛŠÕ©\¹XÕj`ý±›iMQßrWg«Í€Ì}2‰mFðÌýºÉdðæ Qä½9é~½€5öÕZœú‚Í@XÑü[mâ·vã zŸz»í…Óa°X@R/A¾ð•_mߘ«ÁɽåÖ#•€¢mþ•­&,´»ƒ¦žd0êÅF²á!7–äPÎ{´âD÷He "Lg*’Dõ÷°ßÇ—ÑÛîÌ +t¯•råz½ÃиëewW ïòÂZk­>{y4Qï¶Y˜– +Z:0÷ç&+‘ê1ûP.•œF9=?ägB©¡dwOËσˆi§Tøêòà±ë½[¶ÞànZ:‘–ò Pç\´‡–z`ã]qêä°µLÄ[ºiêÐ):€ƒ<œ£…àå|dè¹¾;S’æå>_¿óK²^×–$ŒÒÒè­&žßhbyÃ-ë¹}oØqERsÓ+{w9á°u~¯;Rnï.ËÇ©³ŠãA}HÚÖ àe'%ê~Äܯ”ôý^Öì ‰r¯¯êoÜF-¯Í¥)ïx ¡²6a·°-!I°•ݺ»M¦â¦ª—~ãtÈnËÆgw;0Šè·rûWl÷ÝÚ†·Mˆk“KÍQÏ];)ò¨×Pc5Û´´–K}q ®Ó{Á‘±Û‹í].; C„jºÍdö¼Q¤»¸Ž7RB8Ö®2§ç2ïo·;ÝB}) ïþo-ì p¥°¤åx°š›ð{×rîÐ ê€lœµð@ú]®9&jy ¿ñ#Å_¤ÛEa¨Ç%ÃZÌŒD'¶ásÒÒ§P½UNDí- +±qãëˆ[^‹ŽíòKZÄSÊå +N£ÖÂŽ Ýû·_L:Ék0õ®±àû—¿l¹\0P“ gº¶TbÂóS§…wø2—¦µ„+€ìEÓÕ«sªŠo~ÇÝåí}U8¡”ù.w×½>°õü—®Ñ¸’ßóR¯5S¼¼lÿVš©g7ù \ɵ]ëÓœ×îk-8ÇŽëÊpg%núóÚ›r°[€Ëè÷þÄ0RP$ý°÷çÿká’pÀ +m›ëbL)œ ý½œÃ‚§Ëþ{î²}CÏNs'q)0Ì‚[äD.¶¼!‡M·¨Jjùlɶï¸ðy‘Ø"#—’Øîöxë¨ÇçCÁNWp²—»ëƒ¦”Ѻžoã‰[cžVÌ^{éÜxŽCPÚØ˜{x£géê-¾b)n¤'øøgèeËû`ùËܨñäæ m\óŽ·R…Ík}sùö’¿bðÞÜνœç#Æ-„·ÕÑàÖ±ùãNî sÝ~+¬c½t-ìíºä¹§( N>á:ùÔ_ Š| ,d +£‰ç¢Fܸ§fâyC÷©§‡œÊKÝÊM¹±?¹nщ{Ù.¢†QÏES§ÉŸér÷RåM 5Óëe1©ËžÎݹA/@‡]R,ʵ<‹³G ¯1 ­×0¦®âY(r-¤®XÂ’ë^䆫)ƒÞ•);"©7úx‘òønIÏð¡ØŠR1H•ùÉw‹swNQ€½^kÅYÀ$‡–ÊKn2g̺J­\oB"2Ë=œœá}¼6Ìég[½Ã”LY»\g›Liê4úD…ìÆå ¸”Al P+™Ìm“'”Rn’ÉÓðÕÆ¦fý’†ŸG=»ApFϾ×Ý…§ù:KàÌ­«Åy%e¸5h-™°]r+×R(\¹§5_Á s†¬eJM*Æ›z¹‡Û‡ã̹\.ijbixCjráÍcf!éÌ=ã®ó[®Z&¸W×3Ðì$dWQåÓ4™ÝúöÏòý?eë&^k4a±#-yJ$_{hhÂD+t´”¡ÚÈÍXÜ‚V¹6×$Že£{=Ü·\ÂÊÀΕÃ^~§¯Œ,§{¶&G(z:òL…q&‰ŸªHüHÇ÷t*+¥IžQäc:åXQXDËrýkc.±‹Ë·!cwʲ»/¿ üÞñeØž'= ¶g*,.’8Ò‰J§±"MFSZGH•ßâ#%ѵÏÕcüÖ›Ìï’.²®ß—+b!Ù”Š¥ª:Žb3+w·v@‡úW'J¨Wð¸:›ä{1uÊi#7!q#%y¨ë¡(E'J±§$ì´F#¿ ôC5,»±U`r¸ Âôõ þ^¯½–ïÅvØB»k4#(ÉCäaQ$q¢GJ…iä&$nA©¼/¬ +×õcÛyX|5 ®›¯¶Ãõcë«ÑFvBbGJòPÖaQ$q¢Ô­²ÓHÜ‚’¼„Y’g­·EÙרÔYe·"qù.Ë~ù±5𑠔䡬ïP$ûDi)vv¥8"1 Jel}Éõí©ÓdÆ¢„Ht`Ëc¯ªÃo$,¿7ýÂAQd¨»F#7R’‡ÈJ¨HÒD)õ”„iä'$~A©¾£Õsír7¸=”†O/@ž.Wog«a¿^”ç\5]³#D=}Ž¡¾u)"¿Mô Ï•)¬ÍüŒÈ/èéëi%Ê»®7¨rÌÕWqŸú÷[°´fvFdGzú\ZáXÙ™žEÍlÙIB ‘[Ð+]7õ§|BS=lŠŠòQv\ñ.œòf¢P_ï(ÂŽ ÂF×ðÙHUUpI´5dûÕ}¢ZÙÓ†ñÙÜ×ÎÛ¬WoøÞŽw@·Pßå+SüÞ„ò{¼?Ó´k4"1#%y¨« V$q¢ÔÛqeGí’}Ai°lü¾=;6~a8"<1%ü¦B«æ¦~ìZk2¡pÁ¬•ø{hHö‘ÎÞè(+¥‰ŸQøc:?ˆÃÄ?fðz„aãÞò6o9vh¸`Ù ƒå«øPå¦ÑÚÄÎ(ì@§<ÓÁ)kœÔò’)k0%$ÝwÛ?$@¾›O‘ä‰Rî();رËHæ>uÃ,çuw߇%´D¨d„Üw1µüÁÒ¢ P¹WS°µYœÅ‘ž>W ¡FŠ(ÌôÂ@OØêšMˆÒ‚^½„²æcŸë§ÆM %)WÙ|³·èÓÝF‚оÙ¢ž>'ÐZ–&ˆüLÏOô +[Ò¬c¼îýo zurË)ímë³ZY®òÍYx©ÃóÀK­Ö,aŠ#E}P¡u Šânu•Jâ=v;ÊXßlÆ”5}/®gh½ÂiïË Å7§½ïFp³ÚûÚÌΈìHOŸkB*ØÖyËŠkï< ×:/ÍfLnA±Fã›D¨ß‹û½e v‹ƒ¾e‰‰;/~ÓÌ‹6:FÓSÓÇ +PÝoETt¥Ö{ñÊRm¤L+š©oÝ.ŽmÿúãpßlÚÂ{’øÑåk1Ïâmk“#=y¦Âr9Å×ä‘NîéTVJ3£0ÇtJؽËýžVƒÖ¼¶7‚¿nXy#LôÛZÞ§­Ù¢‘ž<§Ð’TDq¦Gz•-i¶Ïˆæþ »yåV7‹®gè^÷óÊ ‹·ºgjæ]²95!V·ô&Dv¢'Ï)4Õ]½¨Ù‘žïé)[­Ù„hîßl©`H¶(L’-e|35Ãaä÷.ÙR6Ó7I¶L(Ü@Gž©°–l©Hö‘Îl©¬H“ …?¦Sv~RÍ7õYÔÈN.œæ¤UMŽî±f¶ú*çÉïHâHI*ÀšõT$v¢Ô'O•i”&$iA©ht­ÃFñ&W'u@>kênIB£PÞ³©ß_Ô‡øµ;Ú(MHÒH©<Ô€üÊ4Eâ&Jn¤TØif$Ç”¤ö „0E´ö@á_Ž˜Æ—£€»äåê÷õ©úÖžÚÈÍXÜH«<¥@VY{hhüDË´*CÚèË1­º׳©ßìê¡ÅiF9/G=jEM™S©ßïâbhŽL[L'DÛHOŸ+к]Õí3½aBÙêšMˆÌ‚^Ùæ“n:´r,lÕN”œ…õ-•¨¢´joj#7cq#-yJì0*³´Lçx*C­Ñ„Å/hé¥÷\<Ï÷í;}‘f£63—?ÊmpX/oÊÎÒ†!/$V‰¸•qh8#Û&ªú¨‚ý¾:\ûÑ} ªÜiC3ãš{Ú«|./lö²Sß»ƒò]FnõÄ™˜ržºž·@UÁz1^k–fDi¤§Ï ´a+"7Ós=a«k6!Ê z?ѽԇ›aLÁ›l]E>œ €î3EiÒoHÅr^shxŒk$ª*Xw®*2sDÕLT wÚ.áš{ÚYyÉdí©/1ë |½ç¾ËvŒdŒìÙľöËÈÆNk6!2=yN¡|»sC”fz}N§±%ÍöÑÜ¿ÖõXkQ´¤Ã/À$ÕD¹XNüP#\[^ocS±UÚ(MHÒHI`©&ªHò6RÊ½Ž ;]£I^PªI†ºgïû »KhìÊÝ®æ(ŒlØ9xÐÆµFvBbGJòP)­HÂD) Ù˜ÊNk4"q J|”#¦¦?[Ö€œOíqu} uûN¾kMìHìHI`©™$f¢dzJÂŽ4r· T49,’¤aL’F¿H’âá}’4ú ‰_¤.; 3ªHòD©Ï~(;Ò(LHÂIRÎ)í|Š£¯ÝhÐZr±UH +ŽÙ³J²¶, Y¢M÷=ö`ÝwW$q&ÕïÞ7Žºfž£®u]Ù0œ–l@QFŽZyƒ¡èÙV¯«ïô¬6ÚhŸì#%yH€r® ±%;ÎÂNk4"± JRÓ>xÔ×[ðŽÏnòNS}Ù‹¨Ž|/Kïù¾ÑŒäØwï€Ì "1%3R*ìT`ׇR£¶-(ÉüÝË{d{2:È›#1”—çðõÏÅ( ð]æb¹ ®5š°ø‘–<¥@¾` ¡1-ÓÑR†j£0c ZR\r¦õ»œÙR(Wp9ÕîËÁ¾€V8/% Pø¨¯Gé›xÌDMS¨s)ž8“‹=9åJší3¢¹w‹m~ÉÙÑ6Ö€a›C¦Žn; Lw'úfGˆzã6‡”§7Dó¶J˜·U +[Ò¬c|ÜæèÕÍ­Ð*[×;háØÖ•Á Ü ]Ë!{‡¢®2}³ ‘éés­ÇL‘ŸéŒ°¥ÍÂŒ(,èÕ®W÷ÆÚa_¯Aëv\- +°RC`«Ûd‡ò?ùÖ7;B4ÐÓç +ÔÉvœ r3=7Ñ+li37#r zg—ŠêÔw½ƒŽq¹EuOjùÄVFA(‹ƒ¢Í&DÛHOŸ+P¹ÎXå™ÞPÔªli33#2 z?ˆªUͨ׺_ù=@ŠÁà›ëp~[Óy!S•Oº#dn¢ª*˜ïèå#ªy ªìu gds_»ÝùiO]¹F,…’ËáØ‘Ïã^ê÷²#Y!iäf,n¤%O)°Z(š4ÑꊂCÚhÂâ´ÊÈ×r2 ”\@MDK,gj¶zøLMiwF$q¤$ °$‰™( ‰aG¥ IZP*ã[ïv‚¨Uó +Üë!¤ú6¯P_Z…ÛCëï­–=Õ·tf$%yH€å$“ ±%;R*ìH£4!I Jes§Ö<Æ>aÒyíáÒßòJ1žb¾F¬±Ï–ðJBZ¨ü„Ä”ä!ò¿Š$M”ú°NÙiF$aA©ôVKcÛÊê`eJ¶Gw>Ñéµâ±úÔ"}mr„¢§#ÏTXªûPŠ$tRO§²Rš˜…9¦ÃýË£/žÑ¿ç¿·ß={óòO—>\½{SW?¾zSA¿;üæ/oÞ\^_½û?Sù+Éàø»ÿÄ´Ìái!ñ5ÿC›”ñâÛÍ"ŒGIÃùÌ8.0õÆ.ÄS5Þ‚ŸWðò6“þI ¾jm¿Rn…$åàmRzÍ™|ç—Þ)ů̞î`gq]ÿtÕ"mÝ_ kÒ«Ò¹`X÷âä{®ËÔþïÌv’?Š$›0%‹üäA‘f™å[u}®D’?êÞJ!(og~v¹sBùuBy»þ•ðv’,o39áZW(Eý#È{Ôë•4m&¡^Р€3„íÏ…ùèµoOîµA¿×ঽ®nº€X¼“¹µƒÐåkŽ|­²“g«h s/x¡+¿†QðÛ³R4¯U,ž&ÙO7iSåHÍ<¨ûS4"mKå€åê•C¿×.D?t!îCz‹I0±¶õÙf|Kc?H^žm†¼—¼Ð•_Ó(ùŽíY9‹×¿*O“ì§»ÅFˆÿiw]1º?ödåºmô?Y¯;/ z_¼¤ú×àVXußäYùº ÎLGy¶ÎV¼zÖ;w&lÉÃÛ ÿ³²sý«bñ4É~ºå(6BüOÑ—ú?ödåŠrèw;zI•qš}zÚœ;y¶YãÞ¹á©íVËÞK^èV˜°Õ/7(GcñúWÅâi’ýtŸ£Øñ?éÿª×ÙþZX“•ÿ)ÛQú=Ž>´ž}¦úGïVPñãôA™j§s¸úk±úxõÁÇ«0åg}¼aƒIüÏÊÈõ¯„·“dùYüOÑ~€®ÝŸ ó±ò?Eô{½¤Ê8i}ß…Þb6çNžmÆ·wîÔ4‡A¼Ð•_Ã(øŽí…ÿÙků†ÅÓ$ûéÊ‘6UŽÔÌî°mŠF¤m©âéÎu» ^Reœ¼¤¾ }:§9wòlË õÎæÒ y¿u’ºòk%ß±½ð?{åøÕ°xšd?KþSÞÿKnº`´¿Ödå}¦Ñùdƒ×¹HƉ‹TÿœÏ +ãjÏ. Ž+w£ë“¥pxË_ƒ_Waê·Õ{Õ•å…ãYY¹þÕ°wšD?KÒS4‚þÜtÑh-LÈÊåL£Ç)ü‹_T¹FeIÇŸÐiîœ<«©¡Þ›«bÓ'‹P·¹R-0uÖʳ具ÙkႽÓ$úæAk†Ø¼ëÞù©0qnÔð¹1«ße‡À ™Ø4$bݸ·0n-Œ; CîX’Œ¾Š¼Ïÿ0™ÀÛ£,$|ºÎj:È«¹Ò cgõ»WsɇoCoÅ‘¨°êfȳòU¶;ìÐc <¼8!‹>ßs|ã>ôY³~X¤„²|Æô»©Ú«¸}î±´µUž•¯û°¶j>( }nl}¾ŸaCxž[Ÿ5xÏCì¯1¡|£–Än]íb†ûÄú{¿rh6:ŽYð8ä³ÔoÌâuôù¬Y·o_Þuv}Ö˜4!­fÒö±Ïú=†¦ö +û5û±é–ôY_;˜¤Þ€ö}Öïv4IµWqúÜóf’äÙf`{“¤æ7 }nl?Ì$ÕÉ?˜$Éanc¬ ßÝh’$VÐlæ&&©z,Í$i‚"މ‘8„8êÎj«>Ä9Ù$õ}Vç%&©7 }Ÿõ{MRí•CŸ{cÞL’Þyè³|ÝF“ÔŒõ¢Ï÷v§ªc7Ø.#E烳'_Óh¹4ê‡]µ\½¯çšõSË¥ÑJïšÊS…48¦'»R}G51R`j—*Ù0tT¾ª3m‡Žµ;¶Z&Ë€¬VŒ–„WaèncùanTß_õ LmR!,_Óh±„g}؉ÅêûÛûÚÍbɳê÷K‚‡4ô·±Üúû Å`vU f¿<ø³Ýeþ_>ÍoæcÅ•‡õ8¯ ¢­ ¬‘Ö,~5ãj¥d&Mï6_â—C3Ý笯r‘ÆüîpqñDÅ$÷Ü£:þEpÿR‘IƒcdÇ¿äø²Ù.¢¼o@%‡Í %(|™ûEáidR¢òO=‰V^T»ÛI÷ÒÉ»ò |_Ók©†áéë"YŠ*„éë­ô§@Ù;¼ oKª?È;ˆ0ÎV‹§×©®¯«Áñf‹Û|Z"ŒBÙëÉ‹–`j†GW‚9fÑÇ™¹&¿±ñõBd¢$Ó×Û Ž"4äyHÎ8~ë.V¸lDsØRuryy\¯Tü¦¾0J†_™âÑX?*È²× f]Ò©Û?:ñׄ8š•ë;pVA¢ÒšiþÚwJð®`7ë«,Ì®h'^øi𸹅:ãâ(ìU¯=Yð°b5Æú +öžý‘lŸ3LÛv/3"|5bXHe·'òðz(8â‡ßÿ¼ŸïÌZ{½=‘)ÚO:žÊ>ŠOi»*ȱëÇý[Ó‘¹Ntg&aÐ1æb¬¼@`»É±l”ôe˜îCgÄp ½Ë5°.¸F`aq”ÅBf+ÙÖgû^®ÌãÊŒ +×ý³sŸ{±íòV¹];y˜)s毽 TŒÐ8ŽÕ + _ +xÉ–<Þó¿2vK£XSÿ¬L݈väéñ¹ßǯ÷l–¬Â òðØ?ý ,Fzr}cŸ—Ò‘Ç{1.íØ-¦yè˜<<övb²I¶X‚Á1ÛôëÊÌÝhM†‡&QB囥p85¤ïXì}]V>½˜³:šÐ +?š$QŸÁt ,xZp¾´—B£Nޝü=`R«ÐwQ]æ¾bU†NŠùz$š4‹&"ZˆrÕ%y¶ïúÒà.M³2Þ?>÷»•Ô”þh¦™Äž´å¯+!]߈V , çÒԈȆÇÕé i@Ó Tï%/„FM¬,@a¾|© ƒI‰µý«Àš<¾Þæ×Ü9•ÅÖH?®oØR´úx?k£v›]ú%øœm¢ò½-‚{A¼ãµÁM°{Z¦ùƒ|ìj¹¸g~´¢"‚¯nêÍ‚‡§K[;‘m‚íD©À^F+Y®¸œ1®du¿ø¹šºAVK{º´¼bê†> sƒ¬—ߢNÃÓM²ÂÌ YöR\Š{ÉÔŒs!Û{Ö³ ®{û6tfi ×6³NÓáqi1mÙe—öÃJ”×7"¾5ï7œ¥®Àax–9Ùáû¥ÍÄÈ j¾6‡·-wëÉr$fêýÚ¿I|Æf 2Þbäúªíðg™ÖEávq®²ZÀÒüJ;øÛ££@ïº3S½§}KÔ{Wl‘.»%«6]¡ß×ùE^ÐX(u¢EùcsˆGªPÈ"ÅÝÃéäAßûm‘½àÿÐO¯>nZ}ËèpÝÞß™ +[åÌVáæ÷ãˆ{øÐ}õv¯xŒ_ÌÞÜî,©2û‡Þ¨ ¢X$Ø–9©Ué¶lÓAñ2z^DÙ" +‰1\ÙϼaM»Ï¬ú‡^Sçqåü¯‚„e|tK ugVf•½YF2K|³Nè¤t{+A»ª†L§êdy²×Œ9@fÉݱÌ2ê¹5>º;[³Ìë,™ï§qWI˜dze“¬Æ.¿‡I7ÖÙ§e¾f•åX¦nMJÜn­³U'â(Î_XŒG.ÿªd[ÙÉ©Z›êOÓdH¬|²•ï¶òŠosŸï ØWýÒcU`ÇbQ—†TucR 1%êÝÉÒZ¤0;ÀÃNÓÝÑê2®½5¾Û©^ºßKG}žwx÷4s8{=èsßÑ[CÏ»}Ùµ×{›ÄTú•© +«¸ú•©ü„AÉ«AÉ«AI«AI«A™q.¬¥_Z˰2ŒK _ZËc9ˆmK+kYø-ã +–VÖ2}‚µL+k9PV?mL+k¹âçDkVÖ2® ãVÖ2Üh-ÓÊZýµ«1±«A™q>ÄZ¦•µHûÕ øÕ Ì8?ÁZ†•µŒ+ø†•µ<”¸”¸”°”°”çC¬eZYËtZ JZ ÊŒó¬eXY˸2ŒK`XYËãAQ»––Ör4UKûµ4`3ÖFPM?7—å¹9º\BÁW+¬^XÑ Kz~IϯèÍX½¼¢——ôÒ’^ZÑ›±öz¥5žFv³ì5õ'QdƒŽÓ9Fvá,賓‹"]÷rƒ†Ò`[ùÜ=Œ³YËÑ7…¯¯OêŽ_°¼Œ¾—ùU¸Uè<3í>ÓiÁô2@]¦ ‚étÓñ³1mÌ‚kÞWçÛ3ÎNCæàßsfƒZû… +¯`wgáÅvŸM±íJ³ïb—ÙÃe®jÐíOç{ξ Ê}wœ·Ì±-3:ƒz:ߪŠv©ßwCË\ÔÖ…†:ïsÂcÐð´ÐæìîÊ áñ³ixXiøÝÇ2õ³Ì2 þé|ÏAó áwûæËìÈ24üÓùV] K ¿Û]¦ް.4üÓyŸƒÔAÃ+ “²ÞøŽî‰ìI}º’Œû%ãêŒ,¡w‡‡£“òé¬ÏáΠç#“aÉú2²]Q£«ò鬫R¼7oc`3/™_F€GxWËmìßYûTØ/5q|-òIÃ.B^ì,HŒ¶H'ݘ&é ¹!»¢d¤ÜM¤â‚T\‘ ++RaA*ÞDª¯«ˆvÖR‚+n7R“]˜Õh¹ÅȬ`v5\7oØÕ€¹ÕØ,v5b7g·íjÌÜjx–@»´[Ò¶v9ln5BK ]ŽÛ‚ $„Wƒ´‚…ÕÀÝœ «‹«1ZÃjànN´…ÕÀÅÕ-a5p·dÂràâjŒ–À°¸A™Š}†EíãK‘齩”çÂFöÔÜ’š]’³+z3Ö…¡ìéÅ%½°¤Vôf¬+k9ˆs[Ës-Ð¥Dg¼ä'”4ÅUISüoÏÞ\æ·ho¾¾£Í¥PþÍ¿PdÆ{Ý+ruzŠ#Pÿj…“óÑ9´QÏm%¹0i¸*`jð[köœú«?p¢±¦–wÉ‚{9ÛŠÁŸÉ{êë~†B6‹W¾–÷&1R—Û÷'¬ãS#Á(ÂÑ¿ò]„ó¤'¤/y1‘Ó@in4q;öçIÓòiÈzQµ’\-1•»¹ziÏì ª|©ˆ4xŸÜÞ:ºìøÜH™‹g&Óp«‚lîÌmäì>ºP[ų}kÚFãG\®$ûÃ)ªçwb"íKÕ»ç¹.AÑ©žb-ƒé±©$B9å6ð<¶ÇE¡äû ™¹YbëÃú=7šºrº4…æR;EšV" ¨§Û(† Œ»sgd‰›@–š)sUïäû¨G­ì™ÝÂan4ó»‹“$+O.M$”…ÅVJ‰µìºÌÿC§¦Š´Œ¾h’€Åè\ÏäßåÃ:‹çF Ì­Sbn31;vçtV’Ÿ ©Ó×LÆ=š³-uÖz-œ©‘pV°~µtjã3ýF*pë|˜M¼®Æà$‰ÎŽÃ–¦Yã®{ 0ÊÞš‘dlNnìíÜJ¹«"SfëÜJiÞ6€s£#†Wóè$ÑŠÑáqÍ{'Zù…ß½¹Ñóakº>ò¸˜#ù>¸>TšXšÌÊ!™[TFÈâøÓyWÃ<0>7RÞŠò-ü޹Eu\n›s›™Ó¹;öoÊYJ´º2®1– ˆî…l#×½w#ã.ŽK¡±ÌÐ@Œªt+cj"„nÔý±ÁÄÞJîrh¼âÌú5¸3êŽUG¥š}qfº^Ž-Ô›¨BZzs£ÞÉ[ÕØàˆÇÕDyCÿrŠí)(†–â­~…x1BGl“|\ªÓ¸½Á 9jT) +Y Js£™Ý¹O§ VȆïaŽÑ06Š·š~ñ{„ÎRFs#AÂkÔ~ƒK87*^ ØF +ãGL®ÆàANÒRO従]îDòíFã|Р§ŠWü_v„J5UÛc uWªö-Ý—¹‘ø@·N†¹Ñ§Swî(­Tô~¹‹™ñÁS’ÁGHÈ,E47$¢|ëÐhnT)Þ:æF3»ËÁx×t?›[™AwW—¢V]U¼Uºä·”ðj0p>7R¦êâÒ£9jTÝ¢ÛæÅÜfævîÒƒ]§¥EÔê©~Q×cßiAZG_\#!²ÏÔ(è…’¬†+gjÒ»è7Ή¹ÑÄêjäG}Â5«ÜàIiöµúIº:ˆ/5ôvn%XDdK_gnÔ'vo¾¹Ñ¿«y4ä:†iùG–˜î¬¶Ù³«:–ѶÉ#d–ÞÈÜHyëàGkîܨ,Û‚b)Œ?N,*ÿ_w)>l7b—œÂ›¬%‚¹RΔ©ÎU:vPçFsã@ÍFf[Ol?AŽÃ6ØÂ˜9Á¾´ßs#á¨KÆÍ&jjÒçÑn¬¹ÑÀ¨öááp)ÁÓRãÛhû +kbÓt‰åz7·R®úmÜÙÍú­×‡kn4q«]$©7j5×…UëónðŸšúìñ°/qúþrÇ? L{¢)Uø¤J ½âÊO"Þ\^p“¬neö¦ò‚{íþß®MŸcÏþÔdÕd1Œ³Þè©çÕPŸ¾kÿ€¤ð}Ÿzê©MxøVãíãv’xneñ¦ê€»gÂgÚH?9EwÚ4\äé[ê'gpºÖPáÀ'm­Þ®J§èöâ†õþýÊþ·n’Ÿ¸—9Zî™>h÷A©Áaõ·ÉNÞ­þ„=¬Ûé$ÝÌßÚ9¸×öïý,ÂgÚ¼}H†á4ã>òAû¸Êòõ àÀÂÉÛÕÝ•ºß8ž$¦›¹\»Ÿa>|¾­Øe]îe×VÃü =Ù¤è†%rààô­çOض»×êx/ݲ3¾rîœ Ÿq£ï!y”‡…;CfòAÛ~J´ +ä¸=òMÎOÚ´¸ß2y/AÝÊäM®ÄÝ»€Ÿikî!©¥“¢¿AFÚ {PÚ±_²ùðM…ûy ÷’Ñ­,Þä%Ü­ìŸoÛìAéµÇéA{cÈ­KØÀÁƒ¶¾QrŠn߉\¯ãwªëÍGÀ<ßýñí›?½{õæÃ«7?þö·ÎGÃú_}ñÇŸù·T~»x÷ñýOŠK‰1‡Å¾|´Î}±þéo¾øˆ?úÃ`ë£`å ØocÌö,`½M.û3W^ŒJàÍ"¨· üÕNxI9M¡¯&,7Áš7àékúŸ3}׸ÑÍhäRæ÷WÆbp:y „Ën¾2iðâ\cÎp¼³@C*s²+Q€Î¥Ú’Øã1+ð=ûÚ˜(Èó¡cO¯PÊÙÖçñ>y/H õù@ZY‡¼W CŠ{ÙÂÀ:óøü݇§¯^|xõöÍå»_¿ì7¸(>ž<<þæéŇß\\œ¿xññúÏo?\¢í—‡ÿŒ–ÿþ§ð²Ÿí Éî£Ýd( n2J '¡VX–NšÝVX'£}3Òǽ¼3 À]rµq뎉Q°úä]íã;ɧ£¶–†¸½¬S>»ìY +¢2¶¼X©€çnÏ…Eší&W¾m޾·°UiðuÿOCc}.ÔÆžÄ$@#hGþ!õªJiJÌUàq“Aw!¦*ò註i£[§9&Öá…<ßA«ZcÈ£;†-Õ :#³ÕïµiÊYæ_ÎéV£ñd<ö ü»­Š˜ÔWTy’ÀÿB{#†":± ¢ê©©¿qUìÙÇ&b«òH–„ 0Ö~Ó·ü¿¨‹ul¼ìô×Þ¦Š Ö°Ù²«CfvV­lŠ—T€Îm¹m°VÆ‘œ‚„—gNà"$w– P ®L6xFAÍ®§Æ¬uc/ºD¤„VWƒp”1gþ(cBpZÖŠ 3éeL-ìÂèÁc ©£ U(sˆá1›Ê¯Â—·媠´Þù¦ÎÁÛTX õNV/WA”•c';Tev±Ë[æwˆT8ýp(ÀjqÌŬpß©’ç§fÓ¥nËž1ТçuñJÖK¾-Ÿ1ÄÕÞê ‘h“!ŒÊô¹µuƒ”Å8$£>ÂæÎ¶=U#ŽmŠ³Î²!#ÿ +øÏ¥­§h#È*€h¹c +ÓìÃ%œÕg¬¸õ´J””Âx_1;jc»%S€4§SR¨— +Ð…MÇ„ÈÅâ<Ô©‹œ™ábB6Ý4{Š Ã^-")ƒ)‹޵í±ɸÆhyÊ!Ö–p¼žˆ,Cu¡HsœÝkã`ÅŠ±ç¼”ú¿Ã¸²fyì.5u¦Jšüt6 +0)7õÒg[GÀ[c¥q]»0“’Ê)œ±Üuœ±·Yxؽ2VHç7gxY{ÃP'à6ûƒtÙ +»‡ÃRŸÝÞG²š[¥ÀV¢ü\‚žÏ,¦Ý³[5$rÏw @”ß;±÷·>Tu²nKµ± » +:† + AT×9ßa¨‹ÈÅdkã¬L,7t'S{ÛÅØîNÞL¡]”Æ!úÚx‹E˜½«ÝÝ`Ó*2Þ$i\ÌÉwÍBn ¸{+Œíª. ÷ +OYÇ$S{kÀ¬jOuÍ!8yP"· 6î•a›QõÊ­<˜ *síZƱxfCå*EbUج«snMÌb[Bë× ¸Í‹Ý£ª½µõ÷$%unr ´0–Q ݬ³¾b…rÕ\u$Ñx5#—W$ÖÆ½ÞăW‰íðq¥k9N +y‹2lª9 ¹ê[õ +é;•Ff]DQœÚÙÒ‘M)S2ÒxIT’7uÁÎ]lkGÚÝGÁP‡&»ÔVº‚!oFúe*«‰ ÷«Xl`¨s„Ðhe­$x ÂC >ÔÆ49¥±/îsöFœê&‚Ç}ï0W —€€ƒó +Üsìüꆡúi«†‰„¼K@C1ÉzYü8Þ¨ÏC·E¾q+"³[} 7»æ> ºê¯Á@ð¤BvmËaä‚«]›k‚ò€›X³©ä’+îcVr‰Öû”ÆÙYÅkÀfwÄûbòR‰:hmvÇäöÒ¤-emÒÆ±F¿`̤Êpn.ŽEÒe«Þ$¦«òiÁ] Yf2wX{_¨ÌŽÚ.‘ÞÌÁ‚ÝeÇn–‚È—ìMñÌÎwm °yH!«ö[[²ù¦(2'?C‚ºXÒ·°°µåø)Ãíš3©Ù?Kã…N.µ÷&U'Ì>Õ™%Ñõ™,>·ßš$£$% Ex­­,u‘¬C ñÙb*0…²|yLŸ*´ArÞㆶ +'ß%ì©C[±æì}±Di³ÒµP¬rÁ€{ÈJx“.Xîr¤?c±x d‹DZ¶¹šÍ›ö"‘/’Šãi —æò†D’ŸÁ@ÄÇuµ®iÕ"É\ÉïÆ0ù e’ ¡j#Áڲ჆„“¢ +ž(¶0]¨s R"ÁâqúÿY{³V˶&;ì] ÿp_ ¶ ?fßy‹?ÿkÎÓßxJþßüÃß½&äÿé‰ú?êÿ¿Tý4›e›íÇ]Ï&²›ÃÄ_Äb5ëÐM³ñ]ÌܼwSú¦ï1׋Ū—¥|>!o§»Õ[f—¥ B¯™)¼ô&aÝÕ…ƒ]Wv󄿦ñ$K8?Ϲ]øœ2n÷ž§BäšSQ¹'5Eè¶Í#¼«CmßfL¯Ë‘ÙB”HÒJ}b·V*Wkг{¤˜Î€Ûí—Ý»¦ä”ûÇëwYO¿xOw 5BóíxG5;8’ç ‚Í?ð6s˜“%1HõVu’nÁО³-&i-Û\ñ»õèWá1gjXìÞÕzôc<‹¢CÁ[b‹÷ʳ§b"ÎÓ¿ôî}`MÌ4Ô#Ÿ›KÆÞ\Õ 6Èñ>‡ Ýáå/·Â]²m UÒ嘋r?2õ±T¦Á¤§Iÿ Zû¬zt›Žà3¡»pï=—ª]dñ[ì‡×ÛñMåÖ^ؽb ð›^ã+W…ƒÁMtQÌÆEqV(x¼°äwMxÚöíïΜ +wƒð €§ò[ý³©Ûõ—+ý¸Üïbê…e ¥UÕÎ3a?74#4 @óÁ_ôÕöønÃÏ–Ëñ¸cxk1#@Q§ì˜xßIZ”ëŸhÙ[ ÷w«=öÁÛtò<Æ (ò½¸!/6žyC¿Û¥ß?œÔ†ðí“þ=b,¾ŒÅànا"ï6jˆ›ù8'2¦b²{ÈX„ýÌd…»ëþÌc»@<Þ¿ïh‘Â< óøù†D©,*2ŃÕpÓ#\Ô4•6‡¡"Jìái¶æ#Ô;Éó㫆MËÙòá> ?¿’·ž¶'ç$^¢0M/ONÄi@ÍçÜùÁ96—E GÑøƒÏùÕŠûžÏžÙþƒ!‰Q Ìò—ïÄO¨~ú0{ñÅ7lô +Ž…ûÄ7¤³¡‘<‰`ê}®FDŸšùô&?vHÂ#wóÝc__‡ëkYŽ(PŸ»©(~¿P8O³—âŸqÙš#\-Œ÷®9~´KdÙf¾ÄIšØOƒ»}²{ü sDhº äš¾{ùÞ×ãé#ä}%9„]ù*¬YškƒæjéiÝÇ5ÌõÛËñµ×€=pók‹Ø Z—ç +}! ác1P5ñÚúðÚ› /¹כ†×!ppCrZvÕ‹þØèÆ5 Æ#¯–‚ÿ€öFí‘ÙéGŠ O³X-÷ +Ιþ°_гX®Oeü$¢ÐZx€É¯õâr]óþ± ­ØÊm¡Jìºz–è´€à,–©Rá–¼ÁOjXѹÍMilíy#Ãyʆ™?-ã!äå–¡b2=«?¬i^zÐ@„FÙ-4”Õü-4ôññ‹ïôO(s6‹_#U|õOÊGu³GCƒ!¿xÞskª¤B(Qôo5ÿÌ?Z–€büÕßÔ­]uÍ †ò&EV÷þñâ|fæMSÇ<³ž‰3üNœM­ݼüölúÍ- fRóÃý1ÙšëP4ÂQïCË7ù\ÛÏ`½±?#q³KÎAq^æÛC¥×Oó«à Ó¾ÿbEÝŒu=9À³È¯ÍG>qht| ‰°ûM%i‚‰“¤"¦–W)X(Üwß#ôD½÷þÕQä#+Ç£ækMœ{æñ^ϣ؃î´ižâÖP° 9smfëÑÐÝT™š3¡Ã]arÖ4Ó^'á940†n;ZóBm“d»M£ŽœwÅ9bzzã”ÞžÕ o–˜6ËÃìÓ?¦2~Xç"ØØ#ܵc´1Û…¦ØQ¤ks‡L†Òá8Ëßì0X´¶ÝûÒ˜Ëýòcmx¾¸Ðµ8V ~¸‚eé{ }‰ãe éï´ð +˳`9¢!òꦨûk/_‹FÈò ‡MŽÃ0ži¼_MNo|zMØæó¤‘+Bßµ +ò÷nîÉëÂȦíYµÈ²¤ÙʸXg[Bá=¦9®E‘s‚<ç,ËÉ·ÏŠõ?p›Hêíì´Ý–·8\êÅ ä¦l Ì@?B}sû)X}XÜg:Ž9šÜ>‡k¡2ãç¾ë}Ìç¡°yÝê‹_R4÷°Þå.´KYÔÆjzî~;&e«]VPw¾ýZ5Sü¶…Xܬ‹k(p!¯ ~hºÚ´‹ô5vÈ20o†_ÙÃÛ¬=ÛÛ-–%8‡uóˆ^ÏY2<”€7s›‰q2| +|ˆ)¤³pkÝ6óC +ÝR9"°.äè`lLÉô#6VüýlÇßMoŽuý&ÃJ–bE ã‰ÏÕR‘8‘¢ƒå¾Š!èô$G GÖ™“r2Þ8sùªHùú²'.ä ‰ûR,ŠåÄ…[kó+FCž®¡o"{©`„ƒj²¤$£yÆwTüšZä&ÃIÓ͸µ«o¿\]¯—*M³UÐ_ñYŸ”_$wk˜8Í&Úšº¾Ô‹À°ÐÄ.ãªn³]¬5³×DXïÆZ3@ÌûÂhä·×\‹Ü/©?ØØ÷­m<ìÚ×'k´M[<¹Üצ|²+4œùW>Kzx|Øæ YüÇ·ï Æé_±6ƒ£‡ø4Wa0¢š¡°B¬Èƒœ–0ðXè)­si]^ÄE_ßZÕÓTz>QÌ "¸œ°m$ûå!··È/èsåÔ/Ø62°S¢<µÂ(ž˜L©Ðj(¾5h]¾rñ­9ý*´Q¬Å™{Z¬ºC/þár…ŠÝ*^ðŸ÷ G"&¶j‚Øõ›ñMoüädhJLÙR“Þh↭1)Ý0Éh„É'™¯Ý…CT/0^e#Wg7<µß »ÂËD˜LÁf#5Íå\‚,Xþ°¢ñ~· +/u/º5!blâäú)Õ>,Ä ÍÒ*R¼—‹-©dámâ¹õßœS:¶‡‹¹ÏSbÕסƒ¥E«ÃM¿2ÿ>Oe˜»%ÂÅ›ΆDóžSÓ™³3¬šÉã/l14 ]ÙU-FŒåjR“sÎöÍp=Ù¡SŸ‘þF5¯_…kg3螸ª/.™ÚÕÞZnž‹¬vV\2—ªÄ”ë—o1aß­ “¥ÈÜq¥¶ƒyd1”%æäL¢»ÚËLŠõ ¤Ðó:Ëî£ùÏi”û-L;|Ù†¼)Řá†ÖøIùj?Öªa7R +…ݲß"l8&frîw:–“õ¼jø2;@þÅ?š" \Ø-¹ >!Ÿ»8èl¸{&Âz »¾¦€Hç}3bfCèêvn³G¸,¡!~㾈€z™Œ!ÅÞåCÁw]µöˆ€vßiÆF*NÔó‡†p4”Ö¼òXè³'•h £p'sJ-Ðp›I7%C¨uŽ—6câïÜ0º–W +<Â6påk®€/ç).9ßöB¼µÑ¦ÕDŒÿ–{ˆM|æx /¤gw™_ží–3öip—T;àñtÌ»&Ô˜(pÀ³xáž“Ä`üÐq¨¤+qƒ}¼äi&øYˆô<&R‹°˜íV-Úfˆûý{§«Õ€pº«·k…q1øÃþÌMŒë¼Æá­F +Þ5CÓ½«“ƒâ9´êëp¾tóAü-Áô Ìý?±žÜÑëöáö…%ÒéE‹§ÅÏ16½œÂ9ߌ’Ë 9²¥ò±g#u4Ó#L_äÇ}P‡ð¨ŸµýPâ BËu_‡5ðJA¨Å©ÔY¼î¯—°ÅàV>Ëfô!¼zC"a†a7…øò´KÚÌ, ²œ<¾ €Û‚lÙôçdé¸ô—u…D*Äâî:† +ZQ!ªŽ"#aÙYqHù,Ò¸¯ÚDziÙ!ùøÓVõ8âªá?l‰õŒÖt¾¨+áJ„j^}{€Ûù^ÿø×ŸÆåßåà8Œ/þ²ny_<Äë÷º0Þ4ûÍò7‚²_/à †‘ùeõ-àöÃ6™ §cóãr¡WÔaÍf5ë Î%Æ)ÂÛ<5_ñ} 4¡ûf èKèø‘÷S]ùˆ8v—@Â<éyWâµoq$½kŽmاfŠ€Þ`gR|@>-0¤Ù3ˆz#l¦Z˜ñ[ÍüѲT—ôb¹ì&bNä…„.¨Èý.¡Se&ýþáBêQöŸ¿øEÚE­7âµ¶Ÿ”w@(<^ޚݻ*Û½PèÌn+ÅAÍj[L_Íà&t¸èûò÷Τ¶ŒßÇo:‘ûÆV!t¬éjLþJ±ãÊÖâ y¡Ù"µ"ô’Ùªfå¯>ä·CãœJ LëþOz=}RNU× £Gxjý’VáBi×à£nÌã‹pâU®GßßÇð3 oÔëëL‘ž[ +"_vôËÊa1hÚ©,;ªq½k朌ç:2ÉÓ ðëy`ÁÍžÊ?ßä~ٞƺ¿GÉuý‚Ç·;í]s$Ÿ ý²6Ňú„Üc£§›1êB n‰ÐQË£ØuèˆZÔ£-™§éÏ@ù¢õËâhÌÛncžù„ЄMFú2Ùä®Q¡mHþ¤†fgï¶ôÒÇ/~ñ# Æ"H r0¥‡Š¹mR<l)Ôm“"õzFv2•-ŇR &ãbò5Kz¼*xgJðë§øºÝŸûDMV×Õ€ANFÉBož¥È½G> +Åg!bÛ¿ÿønñJê%„/..ïÕˆ‹Â(nÐô‡y«üV¶§U ,:‘‡éi#¶!?7øs~Û¼!ï‹r’3ÀäkL¹‰°³ÚÇÑTB aø=œ¬D­ À{xá^ŒáŸo_ÐïŸÂ2žj|.Ÿ”Ï‚Ò Ï3ˆp[¦)ú¡ Â]R±Ë-€²á`U zgoyCÌ^%ºTˆäïjÏ”CZnã{Ъ¶ôÆY±1ºDïê (6ô:Pa¤æ”ÉÒ“eà +1ƒ§¡j·«Zµ”Se-ª»:këKë‹_;ö"…1.Ѿw ØÅ°ŒƒËÅQ,ðkÅ*¿å% ÝL`Æ1º<ŽT +­ÉnŒo€˜íà?¥¡Äè8hÊϾ¹`¤¶•ÎÊfDy_¯K”Ïîc–5as8¥˜÷%}I z§UX~ðè³$±šh‹c»ËaÉÅÓߥ™ib¨b”a8,xD‰škë~lñËW$ËðlA“_ŸÊÛ­G‚ïõ×& ·÷ºÅþ¶òýÕ;² GU^½!z¦‡&od\äy?ΔNB¬ÁF\G1+ëç/~ñž(Hž)YÔ'å¡/=>(÷XI7»Ã„ˆŸuÄßç ¸ ¤yj&|†|d9' ÀÃH• +ûz¾j›F`}¬W•ør„›àÆ©o)ÿ/„{âÄÒg÷x6„YëËbtÝ–“¨â†ütX¹æOªðîW{X„›Fò‹k˜QàV®YE",¦¯/Ù÷1¼N"}Ù +Ír×ðÉNXÍ·oþö÷éaG(vèofygý¡ÃÌ>)¿¸Çëº>‘tãoñ°’l˜Ü——‡W³œûûÏÅH&n¡ë,Ÿ¿Pnp{‘{IœûòÄäñìCŸÄùûóךÝö»ˆÛ)’Þr½¤¼lJ[j²é%þÍfÅ„n•‡¦1/)Z—žzÂË‚zÙK±ž *§‹ÇŒÆ 2Þ"Z…Fµ+¸[ôá8·Ü ôn +øo¶³Ç‚ •ÒѦïÅ¡&wV»u)‡;T„,¹ø^%‘xܽÒò|aŸµ‚.'fÿ}l’¸æ›ã¢Bé„•¨ƒÏƒ´DÂ/DÎ-Tq_«9FlTR=½›·ÊòÖQÌG¬)f¯S´™ª“‡IÅI£ò ¡+dK–œÚZMŽþÄ[„f‰ÂQÓÀ4‚`í#\›d¯aoÈœDîOOô·á<“»³@9ã„~›)ß¼Oü&Æ3Æ&\ABõ!ðýfá\_¬,mÆ1'owÁÊžÊ%j¡/‘ט7g$k„ìèd6ÿ­~Ò˜—1 ë¡ŸÝØ~h4asæ5æO eBŽ¤ä˜ z’WvÈÍdv·«ˆn¾Qy!†ôJýNëeLÖtƒRƒ‚Íí¹¯?fŠP./,U D …ŸV‰lÞÄZœC©þ +c-;—ú·á;—OÔsÀYQ˜—†;Žì;o‡$°¯Ã !lé8[ñ`ë™ô8þš]Ä64·#‡"Ý_UC“xÝäL?‚Q0žáW’ýš§jGÐ ¾TªŒ†P +N/{œ|^^ïBGÝ9Þ‘yõ30g +ký€\‘¯&¿€&Ü…:ž~YÃç(dswÁ2°9ô¸dû_œ!z°,\LT®—XÅègÑ/›=˜QÅhʼnV˜Íík¹¹¼çré1eA©¾SX¿¶™úí/Ѹ膞̴xDN:v\_¬œi†[1!êøš…© É_w¢‰´ôÙ#»AÍUsÏõc#µkÝìy9Ÿ‰jã5!°ÅÒW®`@ \€t-Æ‘+˽Ehaí«Q’”DJªØÃÓ‹tŒÅü8F†*…»¢‚¥ØÍǸwo‘»2ó¤K´üàÖùa$£–œK<–ÄÈ=ΤÝ'ü‘ë¹ÜßÈ8j–Y<”»@Ñ/|-Î3Ð+j¹åлZé¢{×§8.ß>Š]pÏ ËÐj +u7Pñ4V¤tk‰ÖRAW‰Å>ÍAÒ'õBáôTRÉ,ˆ† +kwº'Ik7jV±‡¯eÃL¾ºï"B¬Á(âz5Oï@Õ¸~ Nª®ÕÓ9i9ßPwªØ—;NÒ/´®•¡-†ìÀáöÇ]JþÆëoª¡&}r»ææÉzO¥  ½†kÜvòžC¢%Á¶‡'Ç‹¡ä€™vhÙ. A;‹j$¤tpï¥ÊàD\Û¥76­ðT',´ƒØæ¥Ù¡ˆ¸îf=f³XéOhÛm»å%„¶N…ðúnPõêîs ù¸Ý^ªLŽÜGD,oR'Ä58âãåa‡K j–ån©$£'bàŠŠR8éøq°~Œj-—;Ú å‹ +joÑ•Zìb'8»QðÚ¯ÚF¤Gk¤‚m¹ÌF¶T/€E®¹Z-ž™¼»&yT…¼¸J¶ä{c€ïWm5GœùÁ;Qaˆ5Qá-8W/‹[.îÖ #ø=€²µ^.P‘(©ü9¡kZ¢îÚwX¬†DåÇ·&aìÂŒ‡Ý‘kÌô Z*xÀ^27f+•d6HÃ+€wðÙj¦Æª›EÜžŽÿaœ­äSDò¥\DriPÝ5š +_$é;ÆIC˜Q„^ëX3õ†Æe±(ùù9¸L”ðòs(”’rø%¨”0ðÅkÞ"CÂð Y¸™ü‹‘Á,'ÁýÕéît¨=•ÈjÅ\T$‘ç9x¸O¸æ¨ô«ù48<Í›tAœ¬*èyŠ`ìÙ$‹è»êAèUBájT¹WD¨•ëÄ!‚¿„ÜXÍþG5ÈymÀß±rÂ3€9°V3âü«¨MùýÆÊÕZ­¬ÌþÜÁÒU´"xƒ–Zµ¢Õˆ<ÙƒºÈÙéÕÊUíå¹>*¿Á& †î„Ýàþ&Œ"Jd¨k±,½ £³[AÔë=µ\8á‚©mýïð°t¨«cqŒšOŒÕ’zèåíà+IõN?¸îÄÈúûŽ<)ðµÄñÆ#Vï¢d!-›rxà +›`4ó:´mº¥œ>  J°ÊêQ÷šÃSs-…9ºäõ2ŠïrPèå¯eƒÚÒÇxÄ6uPSí¨ëŸ 3ÉË8 Ï:6p!ŸjpËâQÒr¼´ãM5¬j T,èE<«‹h„’KTÑû3ÏÞ„o?Å!ìàˆ8ô‹¤óÞÀU­ÁNƘ«ò Ùƒ¨¢ª†tÅ“™Ê†¡Öä€e àÅuŠYûRPâëxx7˜I- ™–‹ò¤EߦAç;Qº.ÝЊƒÕæ-…ÊÕšz*ÓŸ)ë΢ó<××›ž»‚‘L l¢\ eè.¬l•yfÒ€°| Èå@C˜ÛˆÐì4á5ÄT°ÈF蘢Íqõ¡Ûùyª9„®¡Ó¯VéÂÁð§ÓöügŽËØÙ&~(BÌ +Œ+¶vÁ +Ê0Ú_RÇ.aqÃFÁo#›Vgœÿ½å×n1÷ÑF[X@³^øº“R2+“Ô<$ÝÐJK°åŽ<ødž¹ÑtYÊôŸÎÐ1NÏ6!¥@ Ü\A+/Ñ‘²[4Ø¥Ebèçæâœ@ÿ4÷p°­sñ–ÜCÖI)dÛÀÚq8™Ę̂)=E]4Dþ3F†ÞDwwXÕÂÍQctÂÓ.äÔ€ë¥Xžü‹=Z¨¢p]N’ >Õîì]Ò׳V²Î–th€d¢˜wYzÇ„<øH#{¢ß¬è=hý‡¦3rV2ºzÑ—/y)WUf‚¸yA¾üÚELܻ˂Úö\ØÚ"g'N–mnœ…yvÒºÊ<3WºV.æì¥‘b%š~•%ŽØ$Ô° ÿvv9¤+Œ’ê_ð`:µ`…m늤ր?Zδ'–ƒÚ%J×|oC DŒ„ýîèRy‡‹ÄûÉæèï_!oÆN’ÈÃ?x“:¸qÛŽö›©Ÿ¾`& Sç@¢ÊƒnŠ*ÿ¢¼6þ°"8]Ã" „<ßéÌPÔÅž<4€ªB× 9©ýsl³ŽyÊý’O`è +ä´6® +…, +½Ï×¶¹äØ€çܤr–3Ê,kœ7d¨Õ¦Ý†i6¡SÐi©Þükõ~~÷Js4±aâ‚sŒÙ2ðƒß’>ŒEà™„x™•KêãJUNwFWJK¯Üä WßYD±~[Ögr'ôf°·@^F ëB/X¹;V!W‰RÞOX}³ +¦Ð²p¥3 <ëÊ+¨f@u.ÂÁô†hðVšNéÖÍDñDÜÉ5ª\†9W&tæm!äûìÒ:,=ÊЖ5´›5xQ{ÞtÄ(»7Ož–^b4ÐÝ¥¨Û[È9ÆUxQr»fŒ&@šJÒ[HwFúEØq¤&vz0Š0ºÍŒÉ‰Èr¹Áù{‰ZøötV•ËXBÄþÙˆ¹€#ÉïÃÍ¿¤ïi§ Í”·%›ÝËœ±#«ì ¿,€¾*QšÑíËD„ÒËœƒ²K&¼t‚ß¶â&¿E6Á*°áŽÙí—œõŽÛħ)>±©.ª†!Ö¡y„0u;£…ÃööÝB‹ ß­.É„ ù OílˆÕ^ò-L Ë[xÐG2~u–D×I„q·C™Y +øÝâäþ°Û dÑ"³Ä«’wÄ9‰(¦æk­±ù_0Ê$Þ̺@C)Û$вëâ™!¹OSlsÖÈL¶&náÑãošÏÓú0ýÐÜŠù'Ûåý’tâÒ+›ì6#YȆs@dI,:é„ß Ô]½Ôûø@²Î)×µŽ|¯$/(ôO]¶$Ȇd¶(gŒ’6æ%^-¼V¹T»XŠ`IjÕ 3‡ý“¨fm'ÓT$9O'+ vó +_MfÒƒ µ¿ÒLÖÝ·Ì£=«[p!4&šdÛ¢dMb©h<Zѽ[$‹C¨9žÊd2ÌaÝÚ¨†œlÁòqbqSî;LÒünC7‹âÐ}‹4ËÏ™°¨ +ö½ f};«¤1/zôÚàØtps*„`0—_\0ÔPû*c» ÝRÀGŒ™7’0$®/ÃД;CtÇItô‘ [B¥E(A O h|ÝØèÓŒxðNN2dŠxâjUÄäΞz¤6’Ú +d(òɤb8$Å„žr¥F\²,ð&“e6XÂF¦ì|-úw/©ä¶ØAµ³ÀL4lt‚R»Ü…îK6Ãûýn ~Œc<ðctÐum–ÿç4Ì +k©Ñ&KsƸÚòÙ/ù²íÔ8AøÞ£)Á‡ÞËk» & A–Öp*ùµ ›nxåâ·|mþp‡ß].ê…3ÉÝ2Q`ëÇY†b™vœU +ióÂvLz)Øäž…©I•MÒ_–G`‹Œd[iÞaUɲ(ñ‰Ü–´­=à‹ Ã®­D % TŒvUÍB^D™á²Ñ@ìØ…qÆë‹Öl3ç‚#i<ýÑSȃîbÃyèvÜðïÑÁ®GñM룓¨óÂön¹|\ºÒ[ºç8©9ßùò€mÎL)p»o½¶y×õœ¨k'­ ÔÝ©6«±Ÿõ¤žhˆßi9öÅÖu—¥]€^äøHííoŠ×¤ªwÜn#PÝIOqÆ"BÕ‹ánÍ2ò2ž^hnw’(5Êð\·è†ÐXhuS.2ÚpÚw/¯Üá¢àо`>ä*-<é–šú{ÀZ«µ°æ¾wÎ>Ôá·eëØ/YÁÞɪ¶Ä­véûËZ ÝqO'>„‡‹*këd\—=Pñ^cÃk 3ì¶z8 Ü“íÙØÛë‘í%aرus¯‹rpõE?ùŽDðÍf¸~6!Z;B÷ݰR;R,î›ôÎïæœÔüžzv™éd7¶ kñYßøÃ‚2þ +¹bÇ1­úlÁ·ó2S k¡bgÒ¤ŸYâ¤9G–f‡вàãM–)ë´#h—¨òéÝŽVs`D“ƒ-¿Þ¹É]ÃFU«úŸ%}ŽNN”ê"  Íëzª(¾^ rF‡¡ŽaÁ*@ßwÇšÐ;kc¼>„7ztÓ <ˆ·ª`½âÙ¸{t¢\þù³ÉV}a¥²3é–{?)˜˜º*>"§Ï‹<®ƒ]èšC®qÌŒ’H>ñAFIQ?G$ =íFÄò:£Ê½¾ß2>Û€éL5áŒk¸ºÌî-y £XA·âž¹ýðò8û¨¼pľep@_l½DOíQ¹Ö0-Ìá‘lSvð骚Jü¼ËÚ¤ë}1Á>îÍENeúø[Jr“—0 ÖÇ¡óá½Ð¥®vÀÜ}]¨šò‹å¨Ç•J*©Qõ½â ÖT°­™²­/Ô{ÖiAÓO ÑF±J.ûsÒñ%ÖÉF«¸ êZ‘i(’g{§Ó³  vÎNà™–xH€s %Á +TÁ øjæ¾ÛO핆€¥4Ì °‡M ê·UsVÊL ‘¡R0‚kpÏzÒ[Ýíf¬h“ز%Tìêîû¥IX$t“†N´`Ö`êÐHX“fîKK쵈`™¬»_›(.¹Ê,¶³‘¿3·fZ;UáéÕh íyí–aŠ)ßÒ +Õð*'™£!|X çà×½©É‘u@u(µø˜/RúhiX¨µEnž-þVd^_2Ðk³‹ð4æ^¢ewdBçI”ù¬]Ȥ?XZ·$;Šhöĵƶ"á±.‹Ã|“(x`°ºKêí}°v›R·YÅÊ»Â:èºíFìÞ0T‘k¨„Œ Fvc|ÒéµEx½g `M9ˆßð“ Ö­Üˆ(‰‰œ–<¼°|ýðÝÈŒÁÊÃÝRiuÚV[6lÔyîh7ÖˆÕ5\+,½™)Hv“•ÿÌ\ÜÁ0ÈÞ$B¯)»;[IN^^{$ÐèñzÁ=ÀI/Z#8¿'1ªRØÒãéo ·  ¼ƒí¥Ê“¢G@ ¥÷ay”C¦]Ã?«ü\c‡¦žìËʺ‰ï#C¶nf·x_[ܶ¯6O–56Ó*¤¡¸²e³žËÓ“•—5 Tê Ïž~Ñ5Ò)‹ŠÓΜc.è@ç‚q‹ókÎkZƒÚJBg!8EȳÌC³âv׿¬ãSÛ;ܯÜT^ÍëqÑ:¶–]¿˜„â´ h¨±£é ²~¢Åê"U£†<6¸|Ÿ +~v[€¬¸üU,sClÛ &ÄѰ3(Bÿ~²óH‚ú^×É&À‰¾$Ël¬È‘Ÿ¤=Ô‰` òõ%˜3ÇÕÙ­¢@'`lš-7¸3¬Ì¿¤v!f²øå(ÇÊ€0Ïéšµue[ÇNÁi·Óè0n8áêL»¾2…¨EìX“Ú·Êgg1Ô2 ¢OãgßbPFMôg²UþÄnuˆ¬râÙ÷Â%/B=Ìâê¥vª,e-ôþ¿›s)êÍ"8d2dãVðq¥ò‡£TX ¿sàŠvÏF;A8c"ÜdÏ«qF¾~Íÿ2!2š—˜v=ò±j¥ŠØi¡*M*ƒY9?…Ÿü)]C'?h±¼«ß-)™ÐKÜl© –‚‘qÍý [mÑáSj`ûb´ÁÚ!w^Ž›+ +Ä0rczß›’‰ŸÔÞâÛy¢GíC¬=Ô‘oqŰ)´“ÅW»SÉÙl9%3÷’zO„fQ\Çoº†wYå–JÞBJBáî™|‹?=ÂÈ{åV²ËUù-7:o¦Ÿ[ì@èÀž¼rc‘왺°žhé$ÃĦÐ÷AyC>¿ö ‰Öa3šM"OtOÏtÚÝÙ´6;Ôœ“!ª=ß¶§°¶VÀ`Ç»«ÚYÃtÍh¢‚ íà>ÆI >üÁžÃ\Ê£ü¦²‰]™Ä¸å2a m85 <ÉS'qªïbvš Á!F»0©zß…¸Îknj@¸ç²TM„ž½¼„‡IÔÁCH~Ìþ‰(E÷°õ%†f]s%_æf±½œÌz¥_ ò‹d÷£ŠÚÄ 34…nƒ×n +þ}_q1]† 6óô|—óîFÏ9¯…Ö§¯ìkòÓîsñ4? Çi]±þÖ„÷'Ï6;5Ö4Scœ ÊeyØ, +ùAûB‹ø6•]h•Œ³‹uÏéˆZu_j’º‚e‘ÓÚZ +‚’í2½'¿ÆEâµok{ìšC€‹%ä²f¢®‘rú_ìOë/Ë & FÂ: /ò +ÞáDâªF¡_‡Áw‰ù.ÒpºÇ.ÑáKkÂíùUé«\ÑF€ºàbQsör.^òKè» ¡Ú&œÔ²)é½ +zÎËBØ ûhΩŠ£zgRƒ31ëÉ)Nç +õËѦ|ÞÌ +‡‹äHŠrÌy€GÖnG™^ouœ’‰¹ p¤—W\¶tñB{ò°áôN‰ A¯åG? WM“œžŽ´¿wØL9^6<”LŽ÷C+‰>’,¶è¡&û³¹Sõ +”vPÀ¦ý.ÏlWÜÛ3ØÍIÃüÈÐ÷§d²;MKWZfˆ±qÁ/tTF›l/;èňœ×À‡s¦CDÎóeÞ¤ Öz¬tqôâ%ÙœtÚn&¡PÅè0̇‹hãÑ»úÚÍȬީl ìˆϪ¸-¥¨Ýz±òåÙë_‹p™nœ'Œw&×'OgG—<±çúî œesw£EïH¦?ûwÃÿ.*™®YRßÎ\"ôÚõøv7øqn6—D^0<˜}7²cêˆ|;‚?upõ­z¤a ÁÛn OÈ6ÙŒ7 –u†0mÝH·±sèt4to|ä¨-ÒTc×CwäÞܯð6Üh 9&ÙªÑcv2ãûâz:Üãã×^âƒ/]±žA†¨Peô*'Üu2¸3éš Í‡"ùËy§øM_itâ¥6'U:|™÷,šÑ’3W×ÿâ½£ 4Ë3ÂîFökýíÍ5GÒ™Ñã÷—ØÒÑЙç\69–BŽ34X´p~(˜GKö8ú¢¿½ƒm‰‚UטA:æ;ó§CŽOtü”ä »AšÜLçK ËÍ/ë}*E?b?ò=¼gyAkH‘O@=4á) sú +Ñ´Õp–xØ6…ä‡m€E«yǬ7*Bà0»"ÃåÝŽJ¦÷wà3 ³ºÎßÍ×CÏ÷Àø¸æw˜ÐÓã¢á’zGmÏM„$ÄÈ–]ýu®×NË0øŽ/”÷±qØ +ôF[8-îü„Üa½f'P÷€è_´>צ»¸9_+R¢=ËW6SK×ä&L&W}‰œ;Œml7kh¯Åì\H[°Dæb]xÚ¢ËJE¿¼Ãszä NÞ™$ÙgR¼À‹Ó Ñ´ añâl©Sq¿0‚P²Ø¿®–ÃßuÂèKŒåò 3eV›‰ø¥"Bó_¿â뮯 F“¬pq›?! ‚û8µYë[ãîñJ§¶÷Ô‚ F,ôXŸÿ#¸Á„4µáJÑIq A²zHú)ÍŽ.Ž;Ø Bë¤ ×âĦAHJ\ËD ¡î“›ªÑ×HVJ úX‚Ÿl\ËÐ*†ƒ,Í™HöîXÐ÷éýùrôÕÉ”Ë6—ér÷ 4ÈMÚ:¥äÄa¬Aaƒöˆ?¬™£·>ôA‚‹M>péfrÒŒ¬!e³ƒÎ¹F òdÖ‚ÊX¥„ܬ”wç/ b 2²“‹»¥™Ý}”U‰ôT× +̇½Üå˜?ø'4ÀÅ;de¨Nå÷®6u {½|ÿ¨{¨¼78^;¹¯.iÜk'{íÍ¥¤2‘ M/RŠR~‘(Àv.ÂŠØ öXgBTR>™QäQ]$d¥%»/’H›¶Aî¿k ¤?¹½¼Ce°±tFs‹~OìpõõYp,òÈ¡ ìqôL-Að?›Ñ QLÎdwôè»'§Î°óÄרXI‘ÙhA rÙ+.q/»æcpvškжÃDzž‚·ˆ@%)‘þ–Èä’»$ë<Ø›¸W¯r'Þ»…Þœ¼ÇBBĈ"ìhø˜yÍÛ“ãX¢f/¨ŠpðÎjcB?çc§7¯Õ›r7ˆï¶ÃŽÞÅn&{Ò©ä—‚ÝNxrÍ=O¶°íZŽ_¾¾ïÍñeá#RÃ5‚0Ñ0-œÉ"GŸTBT·»S…~/Ì K=AKšs“¿aÓéªétƒ³¦£ÌP¡Æ€þ¤éä Ç%–ÛËZPçC3ö 4fæËy‰„ôv3ËÓ˜¦À‹º•›M‘*Sø‰Ù»XCÀ>éÍ„aU¶‹8—üTøA2¿ׇk|!ó3oÐËÔ,tÌM0‘»sÔ ¾þA¹OegÙžX¡žHnÁ¤%·Póvá‰À@HN;Ú\£Ô¶—$DmW/©ÓqÎ.bº)½>|Ó·&È~ÔɳvŠK“_Ð{VÔ-ˆ“…%½¢Ù¡¬“²è(\<ŒÊÂëðŽš»W¨ pÖ Ý/…ànÆ1åiàÊuÝpÎèiP1¯^’ó:˜Æž°)Â-rFP`WÈTZ‹µ[€–VÚñ滢odA˜}KùåçÀ=@>fIGøö†·U€¼ÕèÉI¤·ý#¥Îõ‚&è—\ÁqnÐ_F“-?™bÒ= ~˜pê¾Kìô¿q¤&o¦ JŨ#jT–#Uú`ÙØ!ŸJg§n±wf§;Ífk¡.eO ï®nxÁ›ìS q/X0×Àkª%Hé˜ÂÓY <²Õ€» +»ÞF‚¹Oaž%¼%¹TBƒÇØó\%¸ü"~@ºØß8…Z•‚“aïõƒJº†FDZ))ÕªL‰€­œFÊK×ÔBØ"Í U3g$Ìy€NñÍ0‚°åR鍯å0!"ÎGA'd¡<\Ñèö#Ȩˆnèphø[[k~22²3R®µ´ýmÎ%á/¼R–Ý#Jò"7X¥Z²=P§2‚1<%¾j2‹4xÿ'Þî0›´¼.xT.åK×f´¼L–LEeˆ;ZÁм#Ž‹^î"t§é°û€/p¬ziS3€çáÆŒŠÌçéF¾ÑÖ?/ŠÊXéåžTT¼]qtö(ĉÝ\t6 +«‹/»y¾hÀ9¢<èæøšp>¤ÑÊF8ÑÙG…œU×–Wh€Ê0­+qðJT~…ZtÃ9æ€SÃØ8k¢âY¶ZF‹$Ù^Ô ^«ïÏK§û°ïDÏèlÄ\„ó„ÏôÉ7¥Èô²mïØj888#ˆñ$­0o>ì“–(VO؆7%¡S1„¼}`TÁË9å8³péúa§æc “C7¬}Z~ý¤OÞS—À]ÖÍË£%g‘>ê^¹âÎ}‡Vô:¹lN‰^òpÑ®R¹^£ÁB¡C½‘óóˆ 5ƒñsÇéN5>N«)쯇1‘zê@°mÊèUcA6ûzû}ÁŽÈv3L>)^v7XT„w!d3³ôôa°Û÷Þ© Rë±]p1¤¢Á÷¡øä_üþsqry›4òÒØßxGkçw4¡Ó)Jkì‰ƈê”FŽÕÍâiñ]Xo††ôoC Õ!J †wE¿Û(š1Žîq«áYàRÙ”hg¾Qy=§›õ&´ßÿ P…ær]Šÿõ ¹¯{d¼Å§- äWv©Lö”ü6^pk¦Ù-Å@Ðæ4xLÔN4JngB¯í€s@ Þ WÆæå,%.¯k‰ìoçágš"¯|§Q"þœ" _¿e?(7¯:Fäe)•®cµÓûãúãëÐÛ Ô'å´«07.QÀS}¯'_:µ¤b#y¸¡ï*[­ùÚ±~'Fé˜ÐxBgÏF—Ê[­—¨×•"ÝšÕÍ› ^¹ñ­bþf½ld; LãÈ +€>d;mF=‰×l)’`IMfª‡êõåQ_Z5îéÕ·Å£[5:½ò¿í# pNgùâ°£Åz¾kK0HVÊI’³£“…öûà–F¶ÈË\+jœ{Ní‚ܹ[Âëç/ÆÞF(f…€¬ +^ÅŽQ K0UP'šwßö—pöÞÕð$ÄÌák àr ±¼›V´[l`7OL÷ïzòO^ÜlŸþÕŸø•ü‹ž†˜)¹'(Q*I83^ +¹ oÄ ÐÀv’©öšÇp:ú0_ùŠÖb,°*¾áŸ2ºÅò†4:0ÈF¥ã{r$‚ý…9­ÁìÄÚ@Ù ºü»ám²Ž]cµø„´À^eñÏî‡N›""Œâ bI4_Ô°hY^° ^ ,»pðSfÌq[^#n‰´ô`ï½Y­u;|ÏU‡¦„$Пc6Ð+¸zª)k„}”d·Mr*0{C~™àŒúX$¤×|Q%xc-}„ÈDÈT'8ÙQîut"¢™EgSè½Ô:Í”×v ÞðþXW:oÑÉUÍ¢¾÷wˆ×{Óý 9\ÑÊžN£ÁDc+«jùUÝ5ÜÎ@hðê~ûzÜ—€Äu«¥ŠSá×=7-“Lž‡î»m_èá¹Ùg"šL[ÿ‘#ºX‰ ëA}[aîõ™ú½¤¯;ÉŒV¸|{ÔAVÒоàÏôuzEÔHýr~´ƒY|I„'÷ÝÒ.»D)Á DÍ-ßßîï¼ô3ï¦jP:‹°8ŠÙøu¸…VQR/ƒÄúÅnyÂÏt¦àÅÝGá™âX˜]ì·ã©ŽÈVö´ÃVÍ1vò²zùˆÁÓ‹ˆÙÕ¾³{´<ëu¤òS^ÊÝ_rCoC~)ùj »Õ„ë¡¢%Þ’”Òý&ÒáÚő¤fo³‹ç3ß;‚©®ØCŸ¿ÿI9= +ñLô.‰.<€Ç¿kޝyìª:–Rxi­„è¶{Ê¡¤Ý ‚ O’ˆf3©Ä8ɘ1œcá=þúíbF‚P¯YüònIáãY÷>¿Aï›oïzâû/rA¼ÜZ©Ä) §F +rØh)Qij/tИâÇ/ô¤·süë¼²,uláÈ®Kë—‰gGeG gÜžèz‡w¯PqOÝN„žµúæŽ1 +'åáÂ>3î ]/×øù‹ó]VÐ76+|ü„<š!Q't­lóZŠáBvÂkæ^•dTpÃÕY Mh¼˜¥åv€«víh7gRÝÆL‰*A\Å'_I Ð=µ±^•í­»µ15abŸ‰@Œõš#ÿ‰!.Ú,ÇcBTÎ9ÜÅÔ"­Órù”È£+4L SlͲå?Œmx¢Í} +ý ã;€’b:yÇñF¸×…AeþÊnlcEG½yS¥ZÑÀ¨Z´œ +-gD¸fPKVX󲵎ح+) ²£æfô“Àm`V94‹JéÖn nÞ‡ljz+³SÑœyâUˆî/ô„d9ùB-Ö›@»SƒÐ¹Â$8…a‡DBìíÖ~b¡]ºÍÄ÷]/)=1;v¢Ö¸Ä–“N x `ñ÷FÁàA^ù¶‰ÒjÀ<ÊâÂÞc¶Tˆìå}šK_ƒ¶F5òI.8›‰‘j bP«‘m»­GÈ22ɨ–W4 »0µh. {ŸeêCîžõ’?ÉÑ~‰J¸Z`–zÁÕˆVY—1°Ê®£ÂÆÓ°=SÕ½ò°ÕÀôèïº Ó6Z»°×J³ûˆc€_ÚØ-O44Ú5³èB? ^:U¬KJ…n5?”¼Ç!ÇÇ&Œ>ƒxA/¶gðÂazvª'ô7!Ž´nE†Ô¦·âH„McƒA¡†®AÈ¿A TŽº•â+êºí+hPÇ{W‹…£-ÖrNkrT¢ˆ¼¡‹ºæ¹Þ¥o,VGøK„®q±»W;)¾ÓárfžN¶ûîÔ×àGmÞT±qq÷Ș¡·s¤/ÒS«)0oÈÈ6M9îjô1š1¦—çvtnâ6u^p¹»÷n3Ðð{¿/?y–² blrÛ± ŠeVI}ÏN‡q_ìfèpÕÚò¯ýêÊþ{ì2TgY¤èó¯,‹G@s~Ø]RÏ[мéå/ÎÃ6éÕî©OÈq•U–îwO¥)Ú:€S±ÚræÍ ÚgFáÍY ºu*³ïB,ÄÞ 3ì +TÀÕÔŸü}È4S㛢 +Ÿ»UÝ\çå’¬D,ýÆ øåË\¶,õj>·Û……SoCû™íçšdŸC¥2@»´¯[°az°ŽVOþ_è #º¢Méõ¦OŸ4Að£Nf!v&jN!-TY ðµ0^16&ªŠ7ŒZön“ù‚/ø™ÆæÛýú9c»V»ãå°®Œ™xHêãzøú{ØÂ<‡|RÎ<)ëGêÈJéåì=yuF·×5\hø2†¼ëç¼Ø·}E(C/Çn½è]耳0ÐÐ7*vô‰ó¦À<8ÌWDĕɘj' åàinLáïJâÖÆÌï®l¾æœÚ>–2¿ •.‹}O=Ý"-sO¼©B¶¿a©ê% ã½x•ÔæOž?ç—Ì $MnðÏ÷Ô¸ ¡¼FZá9(þ×o2²7ãL±‡Ñž¥·Ÿ S¦¸qÓi({R°œŽÔ+kTçÕÄ~µÚÑÁžá܉óÎåŠvÄ‹€ž +‹`±6`ä!wÑ ÒP¶ ×RÊÑ(¯æÂçžÍàÁ~-¼˜4ÞÔ@çÄ×–FfúËWº°±P¥;++U@îA.–F€èfHãtæK¾Ýk>`g0êÌKîÊʱÎN†ï[2ƒQ}ví5ðIùDÓËt‘f/C~φßh”/šó‡è9ß$_cc…Ì™)í­À–›ó‹A‚>þ(cÊ?4´-ÃwßGÈãΰ- ¹o8øÁ¾Å~”¡™«oàâíKÏÈ/y{Çôtvj  bÑØO-tuJ9ÑpDSuzÑl +•,|Åm‚|¹¸v6iP›•°|BŽ(•ûR–“ÐÚúär¸Gœm_’o6»PMjfÙÏ_hÎ?Ššï–§}’=¯ÉÃ_«29µFžGˆN L ï¿ø3}/³ÎÁ ò°E£—“n(8ò‹7y8¿|›ï>óßýC)ž0æÐÏ€|iæj'rU…)Ôœòf¸~ØFˆó«úøá…¶‚ÙJöÜ"NƯ"?ÖÃq-fý¼@í'5Œã™´¿–Ÿ³Læ+ä} an:ÒóOÓ0BŸ{ÌëN¦v…CØz0ÝIFF‰CXpëÎD³Ëéÿ¥o–—Õ¥6jÛ˜"T˜#®¼×Û-¹¯ÅHQ-ö¨»ƒ¯‡áN—§WÎ*vG„×¶u³¶!$2æ•›ôók£÷ó/?Ò†ÓvãL–¹±~77®n!t¾¨.LíZ—’Ÿ]êQ$zdT»W[wRf°ÝeG/¿^bY¸Ú¿»/že_úÛÅë$¨¢—ùAŸ|¿fYæE<í-Ö&¾Óv\˜y‡™{—áQ'DA|ú/Cˆ“¦2­Øü“†6AV¸²¥UIœÆØ-ñš×¨ëÝ•47׈™´IÅë _)!/òÇ·cËÃfùÒÞáæüêa#]»îšªÚPáðEíË,±€&€ù‹‰›áЀ &Ñö÷.._`ɉ¡ +A¿4£±Ú—1üLvQ c[Ø‹>)gÎh-í/ÕüÚA,[ò G*ã6AÅ…#ý¥­ìðð6†ÞM]JÕËý„¨ @y3¦Ç”xk¥7ÅüÍÛ…xç¹$)½…-»nË„Ï^É£À ôƒ‰óõagJQµdUó ×Ûþ̃{Õí£s7΢ îƒhÛœÃß¹¤}ÙOhX_©Ä3ßžYêH=ipøJ ØD«A§¢Êoçãy¿ùçÿì¿ù—ÿýùßÿÍ?üÝ¿úOÿøÿüŸÿó¿ÿÏÿù?ü§pé¿úÿÇÿõ¯òÿöoþáþýçø»?TüÇ#ÿ£ýwÿ¼üñ/¥Šçßþ—þÏþQþ£þQôþíÿ+ÿßÿðü×ÿýÈþËãÿñÿõ+üÝóÿö±wÐáû^òFæ¨^7n’HÐ…‚wúˆ?üFdøòÃÿ“üùŸúÇ„®SHTWò¯NT?{±ÒÒfD Ûð(gŸ[ì»-ËVãQ›èß_T´hÔë»`ɯ»Ö•0ߟ´ÊYÖ‘ ‘?V'ª8$úñ =ü ©Y¥Ÿ¾ð'ä}^-zµ® =+ˆvЉ°÷âž \1ZØå<—ú€¼ìåJ˜5ñ¤Ø·¬ŒâqÜ=y,\öÍcÂ.åæ*‹o#µÂÕíg Š§lÔÿvÃïʓޢŸSùÄGò²#²«™¨*Ü`Oe;/¯†sÊ gTH„¼Õ ~óùõ^UóízÇ!£p¨—Wֻϧî—c{Gñ„dA¢Ã'äŒ"j}}@>ÈÑY×TXRQ8(Šlmùþ +îÄ­ê_\Ë»ØGP¨û>4^¥"ƒ*ÛL®qÔq¨'0«–A?êj‹–ë‚×ÁÙ©z.JT;l¢û~ó£ûàf ©°û.1›¼éFQ}â ¨wNçd/Î,NÕ—¡åQ7ÿA‹ÈsÐˇ[d”†•É ÅSòäE*‚..©ƒKÕ‘âºÜ7;{x,ôm?ÓÙô]aÔ{’g +ñ›!'? o¼(šQùˆ³ &~Á‹pWгÒ㛌yj r¦~ë%wÅÔ>›õ’“”¬ NáÂÒ™•…ÄR/Ù°ùsÎzI&(iO‡’ /èà}lyØ_~”ÃF•O1ëœ?úœú5­o’¿aí»ù:±ý&ºàÌË­„ÜH)IbšÅ‡uƒÀGù>~¡'Î¥‘HJÏzHáú7ÁŒcIúX±ýÆîIþEMþ…ǾƤJêòMòWt".“}TÅ€µÐ¤h8hš£‰ð)–- +ö-4^¤o° @å%'Ðòl‹Žcï¥MåÐOëýâMüÒ'ägßÅC1e&ô®úÍðž Æœú +¼†økò—!Äè¤h#ˆS ùàYŠ3YδÊ=ÑVÄÒ H[QÛ±UÍLмNœöNÊ)š”,÷•ÞÇ–‡½&Î^5?ÿÚ>W=T9¸µHs¿¦6ÿ‹5Ëkm'íÐgÁ‹þ#ÑÚHõZ¿ -:n FpÔ FЦ•òö%n³ýë)Áà Œ©õáiëÛ1äÓÄÛzZ_Ê8Á€ V& ŸÉIh±EI_Ä{ŵ]ZÕ~ýxN¾$QkGq~ŸiîzE–\é8_û ¹PDîk¾Fé¾€>ñ›€ûÉ“eùšQOïç/~ñ#È;@[µNúïâÏ ‚ãË點tl´ »OÃ#<6à‹*㉟l¡È/h¢R¯\=LèÍ8K“ÏåYTÏ¥p' u¢ÍÚ^c(ÜÀj×û?Ó¡ïmZd +ƒýé_H›ûá:[ÿº÷{…Ë|E2©(¯©/éxÆ<Ë´ù©ÿ6„ÝÎÝ´"Ó'òÒ¡üXê¦ìWÓ§_÷Ê8A¨"òfpùá Âù}ÝUn‘ûþ߯–×L fWÞNê½ð&x„N¿süØ…|A…[sVoƒÝ®uýþÍI®~§¿Y5^)§?w°> +šþ9ÃÚû;ÄW‘¾¢-ÛoŸ”ÝÏÀTY©ïªGšË²Î£& ¦A‘ßAY\J´.°Í!©ý>„¼¢ç‰Îe-M~Øçàéá¦)îÈA®`í1÷«b{+’ ‚Jð» ü2„ÊèÖF»giëÃßCüú7+ãù_l-l {8ÿÌïvì0ÀÒ2’£¼J›íýŽ""=aÁr@R,™©Ú±ß¼©gmŒ2.Gp¿9ºHÃxÓŸ‹‡ŽáÿÝ–¿ <ÆíEXÊ[؇YnÚ š(ÎUlf»ú—-î Þ +¥(#iF³Ç¿ñY3Ö.WjxÆD¥Y$¶üÖLÀyø¢ì ü0Âó¹Y$µ;½ Eo´Ÿ¿ø”[ZätäÎŽ,%*/Þ¿p>® ‹âFy0Ü/ø)Q¿ ‡ÛžÛ’ÏLfGpeÉwž¦Òùz\ôÃk D8ÉEñ×§xaôë4’B¼¿ÊG:þZ‡ªÐM˜ØŽA„Î}+ñ4zx‘©µ²Õ#/„±€Ý>Âz\ÂÉ[þÖ°Wm/Róz|Žð:žÀwâgy‰†n'ç +°(x Ÿª\ú-k¹øï çVËÿh(ϧ%úÍ5PpúE•±%¬“ÑÉÜ\ö޽w…‚Ê c„K^åËÉ+Uˆ3r9#ú!{ÅŠ|!µbluVšò|¹z6ý—’>QÜËkMþ.ε6_˜¿´HÁ¥rfM`B­´iö©XfyÖ´ÌÆ¼çwÁ¡A7™ßŒáñÁ0Þ±ã%"¤ÈeöËyŒ‡ó¤ÏþÍçùþ{¦H/ ¼m!-ƒåfnç›éIy7 ¡jV«èâÀ‚F¢ê‚Ì«CUzeý/çe“‡qú­ƒlø0êõeyt·±K3º\‰Ü/¢(J‘`Ý› +¬/q£Žœ7Kc°êE’q-|×_¿ß¬ÅÖX† 6•†(Â…Åß!Á‰ÞŽ +nåµ²ñ>ÅùӓߺA8´Z÷zH ÄÁß;LUc§Œc~™ÜWËmzÌN_šŽ ã¦¯Ãui;§âeä²¹õ¸Í°”O£œ“ñàntï»Ø½äÅa:œ+ý‡©bX,]™MíMÏG²ð{M/fœTnÌrGW"ĸå5lññ =Q¹ Ð;ÛÛÓJμ€äwZÖâògÞ]ŽvH"ôÄÅ#œ^Òð¦™S7+ÍÓj1?)÷ôò4üä°=¦Eç]è×ê$êá]3TÛÒLÝ#)üõi׿;©8=ñô4ÂÛ‰c° +šõ'<†>àaŒ]m­þ Û™M§¯G-$°Æ$Æâ Vc(¡ ŒHô‡­F…a–¨W£‹pÃÈbìÀÆ.°nü[›’ÖbcÜ™˜Œïî^÷PÆE.¢êQ„õþùõߪâë!™#4öF^^7nk‘…—÷ n)QÖ·šcùI˜+çF2M*cÏràÔȵ6à±Á +Ú~^¿^¿ÕËŸ¬ š¯Ñi‹Õ jV]S…ßt3°ÄÞk¥‹'Kô[¹y¦ß•­x’ú>†Ÿéö销š-¹ç(•˜~x%e  ‚£5šÎ‰fR࣠Ž;{8ÔCáëbövÊ–Î2ÉÒ§`a†¼7 ðÇ2øàÒÒ,W¯dÙÒpÝ$"à šÑüÝüËÃ鸋Ÿ[´<›‡Šßß" Oå×rÚÖMDÖD“R=mÍ¿ábTƒ.tVðiȧŸÔàÑ›‰`‡Èžußú}/Ø(K{i„—ô‚J/‡þê]˜p͈AWgGË­ $8 +»9"×i]x‰¹z£äUKŒ+b² +|†3pPµ&4Œºêß)øù½Þô‹Ï¹î6ŽòÝñ'”[ëõ¥«ˆÇ…*».«BüœÈ×u®yX[„c!™¼}‡¿!&Äa„vÜFi¥È7h4P¡Y/ikz¬Ôȯ»ð'5tjðÀ—ñvâáÝIæù:†ŸiöÂCÐ2Šø`Ûëü«Ð¾(5=$B‚4ÓÏÙÛsðჇc+‚Ùà} yx«°@aªjÉ!l«Æõô\—ì\s¡üù\8>‚í·j·à„ö¹|˜p=Ÿ¼·!Äèï×’kªâB¿ +eo¢'—Þ¯&ï4òlº%ÂTäŠþÕ~Ù®çr’q 8¥`®| ®]ÁäzŒpØ(ˆœušZ‘Üë³ÉüÞÇKo­š[.d 9…Ã.O÷(we8odèí—!pö{cñÁ´ Ÿ!/ò +¯¶–cøAjÙY­$Âίo<Ü~NÔÚûMñ÷F@ËÌØó÷¡eâ3o=/Öó& §‹¿Y}Jngïx¦ÙTæý+?: xÑGï¿hƒùÿ¤§Øç æ»lw79îƒ,pÕêf½·…ìžjgÔ2lŒÚcÝí¾ãGüóðp €|šlq‹" ×p¤Ö˧}v¯6âôá@ùæôË“TQjÞœJ‡Këu,h‘§Sª¶/\–íç§·pÀ+ªÕ=>f‡N©ÝÉ»õ"Ä,œ›¨q¯³Îi„=WToHÔ½ùô¦’(©¼®×mdt¾]Äè‹á‹Ù\ËW¤Ò:¹©é+^]s£„ +x3ÄfDè!ôÉî["¬×',Ñ ,1V··æáº¥T¾žY~ä|ó/Á²(#›ØÆè+ +Ö²²ø“{ûž÷¥†Îj¦iM½Ém1cA ¸]êT&&è:9Špb@¨IOjž¾-&»~.Au_Š<2aj/o‘×eíf£”Sy\x’Ôl ÆS§A÷9çòÖ/Ê·ØžH”I#í¢oó…UD«ºpxó + Ê6—h<>rLWXt®y¨#ø`†$³±“k!…Žƒj§·¹9×pR>† ¸Q‚Ú[ñ‡S à$Qˆ +8©Íu~ÑÈ#à¡´·”#38¬ +–-Þ€DêP¼3Å5óõив¹ÀâÏDä¨òR@yeЧã •RŸÉ•^­Í~q²g‚âiƒˆTƒ7Îò³h„§m¾YZ°”^,¸™1é–®H©MºfÐûWêeAn¶uh„N‚¦”Iç`ÅûA.¥jkøÇ»Ñ3H¨Š<´hð.ïn«sÓ׺¤‰#jÕRC´u†“OZmÅ -R9¾gÈÎr™29É#ÜJŽô_ÆWbÊ\XA²Û%yjA<% 0šFdD.…¾&«AîwêãC/âš3wÓÒRsøž_¹<2< ­Ùü$b)ÕJó©â<ÐÌŸÐཀྵ%xã.ÏΧ6ÒR»1?> Ëêc“R£ îZ*DÁÃÆblC™hí1¬QÞ–…ÒLüÊÚów˜Ëä`È[‡?œ½b{$Ä¢þVg{;½‘ÝÐdTíX'lhŒûA ˆ wØMÜ­b­5Tð6Öý ¢wøÒÓRÍ®¹ÓS< ¶öŸqµÎȸ;˜}Õ¬œ‰Ù´,Ò®Uâ`Ä’ì²§aOf@„Øj½ü}ËÑŽŠZ¯_Qv ¿zêR³Ý=ÆmŠ­ûfâójdO F"õ’g'«f½¦WF'²÷³“\¼Ajk½5D RKw,…c£Z¾Ê¥ñ{ñ®ý\ƒ´”_pjÌÔš÷Lƒ*[ÎyÐŦ$ÐÖšWw½ïõ¯ Møk,¢(þœ6aðì\œØ…¶€'ªŽ8– +ü½XÏ»Q”ŽXà̤kû7ƒkäé8ˆ‰ÜÒ­iÃ1«¼¶Ð½ãaô Þ—îÓ° ¥ ÇÀfOÜÀ"÷Ìý°¬¹× ÊɉÏq½s„Ô#¬œJXy TæxÝrV“J6 ¤Þ'x^”w¬~ñ Ï`PÂãn®x$/n ¬´a)¸8@\[°LסõŸ?~Æ3yŸp%áþž™î,ªÎdoæå"ßúYŠÚÊÈ»[G~ËZó¤Ô€ú6·5> ?uCI#-Åy.í1áŸ:ñïÑm…™sØÅY< ¼‰óOhèëºï%®ÝÌz¶ÒD(Ôâ _’Qº†µÎgÇŒ6nÇÃÃ냥k­îL²¥„gâæÏ•Îè¡Íà³JC˜è¯Õª^,Ô†\íÓ­fV~ÃèP=úZiÇ î™.ÞàKâwàê›óBˆd±ì$.cí¡{i(¨CëÂq Ja\;hJ ò_»P=Ú¯íeðS=°—ZL‰Ë‘9ùe‚ÂÀ(çìD/ÛWŒÇÓzè~@®A½cà£ÊÛ +¸÷ñØžüò@3æ„BòãuXúðå¹å#-bìÜÙPǪLKi®7ÜÕ’(/ƒÀVPݨRN«ª}úÐ…wÚ h©Df/Û¿ãí]>3Íõ"ÜD¾ß›ŠÆÄ­7Æ-µ`g Û±ÆÅxtáfô=ÏÑæ¥šÞ=ÇnhO†½¸Hr®_*Ç’ºJ#aç~=Cìî æ¨gÉXðfTÞ²å >ܦ$zËlÿ%À#J86]3Ê´¶°ŸG¹¼œ^jÄ;JòpEôgÖÀ ãL`·²k¥\ÙûäÃû=(ðÁ_$Æ@A)B¬Gh¹ü§Nû/’ãÕØÌÄ¢þ´åÜvèB§Ç—2Jq¤ÊtI*ƒ®bÖ 4÷V‡ýOØ {!79ÀÕ&Qc”9¸|C(^°nâR܃vU1”Yà»Æk×Êçêt +ªjB¬¿^“áÝ/™A§„¨Ä(0”=W×ÁZgœ^ˆÒ‚®ÑóöÊž¶ój5ác™!#ÛKÒ€“QP¿3û%=ŒI& |¼pȰ^Ò©l„l±%þ´ØKÃÓ8?P£ˆ„Š×VQçÝ¡'A¹x º…s—AJ)Ô\l¤¾'dŠ,9Í0ÉÚWün¿“£ñ‡±Ñ8Æ/Ê„\¨Lƒ°=‘·ƒEë­(—¸õHƒX¿&Hš®'Û#NÕØ¾"|‰SõËçÁà; +"ùºELv™nF*vŠBÅ’Û©œ×¸8Э|Å¡]ÍÔfÑåjá¥`wræ7)4,¶Fî×!›qî@'.$a&àÑ8g¢QÌåmŒÓ%TeeòùŽJ=ÔH(½b÷£VE)âq°ÍÂË]XR ¬+lØ0TöqÞ!ÿ=ŸËÖ[¯âZpÖˆ|®;§˜—8Â6³§c¥ÚIÉV·XïÜɼ^OÒ%«3/O»NäüœJ¡û\Ρّpv"÷{&@ŠS|óKÀ„E²gg¢Q˜oØ3k +á¾Ócf¡2µÿŠ\ç‰o Ö×z-B‡àWk C šP;Ùr´Jeu%ò} +±;Ï©AŒÈ,„ÉWR»ÎÂ|ið¾O±P$£\*Ô0Ø)”qSá°50Š€ï9¤Ÿöe&×ö¸hì.¼ûù0 +£Õ¦Drbo‰‹¼ku¸5l9Ö)Üæ+lQ@¤ BÛCÛ;ˆìøæ¡üw„Jf N{£$kìܶȣ>pt¥ÜÞØ©†SqS—ƒÍ<ôX Œ_1#¼Òö—Ôû|¥*ÅŠ»âÉRRˆ¸TòÁ–S˹qãÃ=ò ˜¬†³? Ç/Æá:¼ ÚužO†ù\•É›g»$¹ý€:éL*+…¤[ËÙ|x « +ÂOB Âd¶4繬}uöºÑ¬@ÈfØ]º‘!Dòs A¡JƽQ“C6=¦4Ø +EoD&:G¬þœ7à®É5a¡Jòº–Ó‰‚Z\0Q‹ŸBc3? ”QµL‹ÿqIg-úŒH¾FËéžy/Ú©‰ü¥ñ5üe A¹Ñ\zâ;‹¹·bÚàÑ6‹²òkƒÅÔÀ\¦ð1Ç!èJöm8Ñ\+ õë‘–®¬¶7ù šò]föìêþ¡“g)9ëÙÃÏQ¼ÜIJ©nµ‹Á­Ô"r’×x I߬oäV”æNÆ+ QZaÒÄŽöÝñnB}0q'¡4rtÔO5œŸkèŒ ¤k¢Õ |57ekVükÿ5À@šNAk\ZÐíã†F­mo czCÂ7¬$“¬G8ž{eHËvu½#ñ²)yä Æ¬zDœÒkË=ˆnâÈEôB$xµêlÿÁ|“>¦^ÇÃw±×Ùvö(x­Ëï%ñ;ýì½[oeÇ‘%ünÀÿ¡^p7šå÷ÌÖ“EÛ ÏÐXîþ< ªŠ²Ø&‹ê*–%õ¯ÿ2.+2Ï9›*V‘¶6KñH¡Í<™{gFÆeÅ +ÔÈû6cZ†š$¾™9°Ì¥cžZOg|»(Iw_Í$Yle]8<­8Üo_'„#î„.L n.¶%A·«ßæ’ÕxUzÓ°…>Q)ŒiO4ã~”ÒeìNÍŠMõ†>„·Û~ÔxæÑô¸ÚùÖöö'ŒpG ˜4‚ÄYÜcRG.½FUš&!ƒ¹ +MVóú°º_ƒ3ÀèÂàDâV²¦ÎP†äš«ªIBc@?:cµ1(~ï­i:Ì—‰ˆo½XOq‘Ùß§ž#"Œæà O­w½ àí|ûÑÇ`“iÚ²–U/7N5°>@n–wYüÑé‰Zc‡ 1õç£ac`õƒ”ÎÅSuŽ<'ßt„`KÞaòÜ@;X½iï ›±X×LOY»q5ù)Fp|b <Ñ‘½y¥(%á‚("Öqâ~¹6í¿)oàšIƒG„(ƒX¬$™zÖ;#ÌH`Š›‹©+eœ.WÅ_‘/¢%G³É¶»CÁ:ä=Û7u¨kv#¢$`$ì¦k"4Ê “VKTujq"¦âà•ɵï1[ röÅû­êF ’]œB¶D¸› j˜nT„ƒ# + )Gw¥•£zãöu~*Tç ×FÖ~ØmÔàÒÃf"²ÓnpqièÅF ×0×TžAîÍ·GkhçÑ^œ ­Ëàö¸¸÷£)ç'óÌÐÎ]ÖøzÎ2Ñ‹pÓêDˆ²á:Ž @0êxTèK¶!m¥çÇ€Ð\¶l²Ah0 @§]uvìMâ Àc[…dãád/ö°}{­jà5Š· +ZÇa5l‰jíŠZ<”f}n{Ô§§h÷sf••H¨.Bå¯#ì°ñe­2Y&â³ tn±àmh#d+†Fh±Vlm´\êÂ~ÁÌ,¢2=lCEè#ªÍx\ˆÞÚ2-y°'R¸þ;@ŒK›Ì^´œte‡IÇιР+¼rG>àVçkš8pL ³0%|7m‚Ò¸„º:Žß*¼°¨f1l‘WúK–yØþa‡x1(4…}‡¶uÓK§À´§‡I@wÕgÞ¸…õa«ô0`¾ŸøOcpÖ† uôýÀ¸%åw6µ² TÏt"EYšŸj30ØcàI;Œ¢Mò×õ­v(k$Š.¢QC Äôz4|õ®H¯eZÁ‘^Oˆ OúµŒ@2:G‰oW»‹V3hMè(V>¼.Ì/÷+ e¿ilm£n6hnv%òœuuB J_3 ؜֪›Ý¸s’¡ÃéÓKB/OäoÀŸæ:U°·c†0Uì9¼7”¦R!š^,Ö¯œe€$,‹ è®OøDèõà²E‰¨cŠÖÔ ‚ˆ 9i^P´ST&l.w|¡(Wºƒu€bA •:ª@iH“ÕÈM!ŒF¯lÝ\—Ðß·B™à¨3Õ‡=Z >Ô•©J1 +T¶Ð;8Y«²¹rÖ·€<h5å½·¸Vö$r§HtYØ–Ô ¨$¦Þ˜ôÄú\ØÊüb(‰µé¹Ò—‡ðd}–P £<ûú¸#ÎüÛ( 6Bn€Y5Õôž”>F@É £]‡ç ßê ôöÎX¢U[Г PpÚàÔöh"°[ñý…ÆR2Lþ%;4i™‰@Âä;„ôä|9oÄ žn@‰Gç³Y ÉÒ¬>fÞ¹eTÛ ý ; +Z‚E €› DZöc„dGñDŸ&rtÍö„:†ûÎ'ÎÞ[i8Ëh +æÓ”l-øç³¬ÈÕA4ä8Ñ,RŠz$Ÿ§Ív扖˜¥0K8ÍZ3=i´_âƒ\ó$\€€ÆÂ· i^G‹$Šü-$º8Â`m:MhîèÑÈÎFÓv’¢_ 4ÖSU…– ë]EOz”àNt +v ´—æñA‚ÖˆÊÈEŒRzx"zÑ®ÞÁÚÓÒå;,7ŠÃšíWõ½…ÅRXQHùõIéàÇPïˆ1âˆüFàl3´ ¯é~@ã¨V-›fà>è'7fÃÕ fÚ í;s’ÙÊ*¯|¢û΢MgpÂhQF¡!ÿ]GñóRqŸ¦Ü€·Ú)çÌ"¹ž[º(=rÎ~mQ¼ + l¦f £\¶ÛÇòy¢ñ²EÃ(¾YìI‹º…dˆcmyy¿ï#,·ƒÔj†—×ý” H¢?7[H¾àТ`,d‹` )$ó©¢4pI3 µE![!{2âê@hújŠc¬.þ„Î¡Üøa6u5®A²chød![Åe´ì?å ‘ 9ÒPlG¦hŠÐ—èÑÌÈl-ÅtÞc5}ç¶”]Þ²Õ±9‹‹jo…kÅp$Œ¦KrµEq½Àƒcx4š…ºQxE‹ð8nex†$w¦J4íV1%(‡½°„^nSuJ´("7˜óš%؉'S" ”ŒôJÖI\ì&ŠbA˜IÖ“7eψRÈkt3Ë({ªH"4A§>Å•t­â‘„uÙˆóàÄT–_k ÎqU¡…)Íp×#Šàvò6Â(©€ DOZÁüD­—ÎJe/ ”űP¡:ô;$1G’¶!{P‘ ÒNpgî’†FbšHÉ–dzŽðE jF “•«-YkóXúÉE]ùT¥ØåM ¹d‘‰>%ÙêSú“Z£ËØ,ûs”€&3Ø"e…>1¥5j¦›˜Yµ)8ªö)²£DˆXóTÆ1H“òA>n1-2ØÌŠ›´©%cØÌz×clSesT7² DÔw]ˆRÀ$¥ž2BZ¦-…A‚×ÕªìŒM!^Cž}¹‚9l—*-æ]fÁˆ9 ÄÔÆ6@‹ËìžajÕt=>\b˜~÷¬ÞäŒz“nÈ0Ö†n²V•iOöé‚Ù]ç {rƇ¡F‚Qõáb‰†:â_CPUS;99zjnå10ÖÑjb„6‘7²ÚÙ¨ Ã2X)dk‡È•!K´s¬°Ø™¼E AéïÍØ˜z9ÚÀ#|4ƒÁ£ +AóŒhVC :r ÝöÞ[°XA¶Ë?iÑ"0ùi)šM–E!áž:$ð –ŒºÂ:­‘[‰+#¶w€ ò˜[¶ÔQ2«€]51‰cC+Rð»§lyŠ,䆃ÿ4Ïu‡¿4 ǹ@Ÿh¬ ‹©¨ hN™¤fAÍ‚¦7¬£’{©á=iT&6!‘VMnH\ ¨“0 ŒCmüm¸¿H+”Á6åÿ>˜Â©ñ&.¦È¢•^C>¿>‚¿qX‹Æ +¹f$ +/JAßß°óiÔ†ÉÁõ<œ‚ÍŽr*†h¡Êöëý¤ŒòéCäúڲКs,†Êq·ŠÔÉ„Èxr”pm +29°¹`l3 +î²)z±,U@ù1˯ƒå+Xƒ÷H«Y˜ÅYˆ”9ôµ¬¸Ê‚h# „ê,åÂ|žáí-awÿRå}–£À×#<*ýfFÉRDb +õ¬¢~œ,?ü/ÿa±Åî›f”ž¨ã!n"rÀ~ÓÉ÷z2@Å'!\4ÔÎát&ÿ´+uâf9H9§Âû +Õ~ëÌJi>ÕšJIÛŒ„z•%tubÆàE¹UåFwOùgГ(¦Ž`íb`§}O6d‰fÌ«§ï97 +bu´g0;ÕÚçF‡'·Lp +"Œd‚ •ö$4Ú¸¸³eëè‚–£º¡+ÜØ‡S³Y§¹:A(XFÿ‡p#ú&fBZ!{W¬ÙJwñÀt;õM$²¬Þ(¦.±hÖp@êÀ %ñÁ’6‡S³n‚§¯‚•½'›ù"Üê™ÈÙóV¡Ï(»ٹʋ!v›AIPŽ´È@¾îý±ÕxZ3šfád'ÝÏVç?/m _¸VÕ–«ÀY +AT¢• ¡?L5ðƒvÏÖéURÚVб6.𗇵ÿp§ñb0«u"Wí"èˆIØPÏÉP ñ˜uê#h„‰ÚI0ˆn«#{Æþ æ7’Þ°Óm¨‡’F2r­šÙ¥xñC¼7ÌLxšò²ùÑ“žà1†ëàé€Í¨OÆ©J€£œi~)†¥ÙÔ2r„¤22}„Öy`GÕʃéÎ4­»c›bêúÙÊXB =[¡Š—=ºeáa¤†«¥Q­ÈÞâêò†ÚtHÞs`Âf‡²Ý ÕÛ¦6Qqæ<Óá8ã³%s´Ë€‘Nƒ!ÎKíÿ™É•Æ[æ•€!ê M0!Šá#m¶Œ/úņ¢¤¦¯£î%x]…^Ûx3ÑàšÙ¹†5HÁE’°!ÛÇ7D)L®¥‹–}SdÃÙ?8¿B 4xzmò¦ @øÝè”ͳwsƒ{U#gb$Óƒï9ìÁìMyªßEd–oÍkÈCE<´‘“$¬ª!•Š…¹Ç¦Gí{TeìXêOpè_½P¢×ÉÛW"åcÓ ’«3ÂÞxɘõFFp?çcHi‘%[&‰ææ-ƒç$JÊÌýμ+«‚Ø[Åé´À½Ám°òoµÍLM¤MéE˜;!и4¾{Óà2 «EXÿ][žRoÇ zʸÄkÈ£Çy¤¤¨q“Œ0uPŽs6ýDq¸59Œi?QÚhÐgýtq{‡‹hq*°î–;†À¢€™wøcã­IÉr[]›\Ã3YŠhF€P‹—²¤¿DW0 £È ûÛœûa™C{¿8ºbiäÎÿ‰I›¬+, ÌØ;kŠ|B’ÜÔÙÃŒ_(òɇ¿†µZÙÀ¥)[P##/NµØÆ%Ë•^§ß3@1œï`!<œ‚|ŒîÆýÓ/~S?ÿÕ«—Ÿ¾~ûæ«?œßÞ^¼~¥ÒO/þrùjWþ³ÿxõêüúâå3?ëògñŸº<û9£þæ§?yKÿàž-üþŽþíõú¯.ûæY|öÛgÿ÷ÿ-Ï^ö¿øó±¡@ˆ—wÚ#áRò³}¹^&gûãÜ%ã¼¢iýžþ‡þÏ=û+Íh$®2¸žŽA´2N:‘F¿XØô;ÑZ~«<à–^ªÎPºÃŸf³»! ‡ÁœŒÏ(£;u+)G…!/EÈ|DE úbê|·4$‹a]c\ˆÖÞ¨Š%"wÛÔrªMÑH§­Ùþ´`Zà'®)>+f3¸IÖ-¦JU†Â1Š}²AíEkB +X:¹2EWPe{°¦^q¸ŸdO9°›ãu!ûÔ 1¢‘qŽ‹Ž`iRú8;d ˆ„ ‚KÂñ&=࢔È7A¯ƒ7æÀÁ é†ÒU7] +›5Q.KS”*ÉÄ4á}¾¡R²a"’†a#[s›—ÅsÒ{O-÷*©™:g]ß%»dÃÝ\Hö©ÝØfذ‚R!Ñöu5¢ãB§ò­6ÈÙêu…ÏZˆµ qƒŽ6Üø1«¥íIîìC8ãÂñNxš«dZ Ê ’uÅœ¸ QÀYŒSŒ2X:™`ÔFæ£uÎwQ,'`S³Ñ{¹‹ê>È‘Iaž°a5í¯!ÙüÔ™•ÙžüLË£÷Bø:~P†#×—w¢Õ‘ÚJ·¢L+Í]>©6ÐbifOy  ×9ÅBðØ8>išê“}§a +Ïh$˜iiA™f¬ œ²¸\Ò À$?6gId„lÐFt·ŸPçs¬vÀŽH¼£±jÂF†üÅ´º€W3h'Â"û^Æm¨Æ¡>YSžhÉ9µ©:(›!¢ ’Ea»‹´¡#}Þ@3É„€t:q1P4€_S¾¶à¬$ >W~T’ ­> ç¶lð j‡A‰vx¼õ—àø˜•Žà…ŸYω¡%ƒÇáaTöÿÁÃÌ–ª×ŽLñÔh›·ª,Y797J»äJêéÃJh1®¦0_± d²š1¦â¢”ê^Pþ®0@šÖ¼BKàˆ¶e ôcóûï‘x¶Äóƒ_3¥áø8ž„de[#½Í`ËÛÍFÈ \yh Læp[A«Aèçà|èó¸W ›Ñ^9$)óݱ „iyµ£®Yuœhä„™`™‚&<ä‰âÕ)gJ(\U@âQc6×î+¡HC_}?Ê‘R¬Ù]”èœá ÷ 8g3 +Cä€r³¯µCŠ›]AÌ\e#·bp"€T S @`Ô#\"®÷®·7\§& +€²1âý$ýnÕ I)l€ÑTcQla3íöwš`Õ¸nͪ#…²·hƒÔX“Ð!nmišÄÃThÑi]â-£»/ñº€º—h0Þ…éUŠÕ=”Á¶”AhSY‰}!*~²& ƒo&*{`oËFଂ¼JPÃô ø“µF0ŽšÚNdbÓ±fàõ"¡V‚&Ã7•N…eĶ¿£’Ô.f$L?X"0â­3ÃRš^±G™bþ@˜"`A\ªÍÚ8käñ”V£ËÜ´<Ž vÀ^JÎe„ àæ%þXgÈ=¼€®–# NÅDKHÃŒÐÉ„„ÉúI@y\/S8ɰ<†Ö +f†ºLÀ+?Ôº`mBbXCæl“¹i­Kœ)íÑCš†m8. hGox4O”Z¦ÄÙßá0Œ&Ê`’[áˆVôE%ç/ ¶V‚ Dopž“ØîÓ:â¶1/}hÝ$¥ë”p&™ANÊhç³yœ†· x‰(óIâûòÇÃ¬Š£ën²bùHWPÓ€~š„Æu^†6¥i™êµù÷¿s#¨íN4j –÷ ÎÖš3Yð€F°~ ˆÚYIg&‚¶ìðml;R‰UÆV€¾ÈSÇŸ‰‡‰p•ŠºTc;"yhåCË,BlÆ2¿ +.n #í©2ÇJ„à*Ëæ˜­]ƒžî?<9£Ä1Í´và›Hƒ6°È×ÝýeÒÞ¬!yݪô ÑýjûlpźÍÑŠKFh M¯!2eŒèب’®'‚@~-SK¯X§ ø c›BšðÑôi°L¡Þ6y H¾hKé1²¼+²ÌšÓ“¨ÎOâ­‰p1˘ŨfÓÜ€0/èð²sj\‚6l:¶¤Ñ·@[C(µd˜•º[Â"¸¼Ú‘Œ‚3 ¹<:ôتA¶/ƒ3ñdЋD„UvëF9ÍÌFåB¤™ÞáÂËvé&oð¨4Ã;™ÑIÕ´r•ñåúSn 0º³Á·`h&„ Ø üeú†m„Ül›¹Ê„:z‹léCÀæU^dêm±¤:XÒ ¨O–?%S³€YNT^žô•MŒl¬1ïN!H'ÏMJæñïÜ£it;IÂ_,Âb†0ˬ̦Q§üépë)æäL;c5¹Ís€1Ëè iÎN€Ä3hØ^øñ‰ñ²8l£MxÁþEô„Ñ´¤j"Z…Й)BGФ¤Z:aÊZ íŠô¦¥Ö‚É3íÉ—`§0a„ ¦ñ ÊÄX0§jG&F+@óÜ­>7©CêT+)Sd¹ + Íüæ›ÕFŽæLTÀ¹YàäÁ\*r‹“çD +‡ý=zn0wðÁI¬SÀU]謥<‡òØÚ²ahЪÖýÏLšá©Nv*î š†•— žÑoY$ð?̯ˆ[Ùéì2Ce8ÏÁhœˆÖi †.Q;/°Ìa*wá'n u{tˆK­G!aˆvñ-`v5À>Jã&j“ci ¾& ^«Á¤E<íóÆlVcŒÛP"ÞÜÔT ¡Ù¬WÇÎêʘp³fÕÊ“DóÐâS°¯ËG‡|¶f&¼Öˆˆ°,f&†K'ÏÒÙE]1…l·4_úS&ü0ÖÓ²*œº½›IȺgÈÇ­l®æL/rxGÚï¡•ÂP¬™h—üìŠÇ,#šw`.àüçe +)€_%+Ÿ¢nt3aób­ì“dü”w}(Ç®ÌNºÊÜ +z…¢¿ù«©b9.`Þ=60ò{TaÔtŒÉœS—jj!Êe×O}Ô`!îödµ5¢¥'hKU%Ú8¯ˆheoQÀágo®‹šÛö÷Í"özƒ¥²!êó(ÖØ1™H®vL¶@$ô† ðÖŒ~@–䦎À¨ ¼tô„TCŸ…QcÂDí_ +àv:m||õˆV-#®Â  2¤Ñò2KSbݦֹ`tŠŠšgËÄ#„È8l$¶À }óñl6ú™Ì·0üžÁ#”GÑw6.$jtéQ`5 ‡Ç=WÔ3E'ô°÷*ôM19á&Ÿw¤ÞèY»L§¶š€Ó'+ î—ÍÂ:Cwç".ýšõ뜶È`'¤~™iX -0Qx¹¡È¸ØPÆtç$¯xÖša15ë´ßo•àÚ¸‚l„”FÖK7WS/£‰ºmÚëåì´Ž@is­„ZkFÔÙ±hÖo+[+z2§²;0ìõ,lr'Òœ3˜îÔ¸?õÐÌ·ª£ U6ósÞ’y´ºôóŠwšžýtk0OÐqúiDÐÊl+L!ž¿GäJ=_õƒX7[‚`gOY +’GÜÙxcJL{d[¨¥Û¨ÉM¶²l¿6¥¸,`•èOBëmT …;Ó¨ œ ¾\šô¤’“„CSå*×-  Àºcê­°x´§>vJ¦ZläÅ#¸4øI?gÛl—¡Y.‡ ÌEÔz¶Ø¢³Í Ýv³rlÐdësZ(½9.Ĥ2òœ¡Ío˜È­In> ¢ÿükaÏ$,£P1[¡Ü‰44› êŸ[ñù5§Æý¢ygôì&h@@[ÂpïÀ+«‹á¾äDÛc"1Xw«RÊh—˜LOLÛF°Íƒè§tð…a¡h¥:Ê™òÌGT—ÙõÏÖ(•ÚgsÉ ´Ã;¯ÀˆÛœ ɪ„)íò¡‡ bò^ãLu0¦%Qj"ŒÁ cÃWn€ AËæª³~\Ùrÿ•³¦:>§à-Ì4}9?ÙBÏ!âu»›gå³1æW/ÝxT¡hG]oi¸Ò`ó ‡-0a +~®XÔGÐ5JUÎÃÀÏ×h!¢lèÚªÓÝó§“3¡f¨“¯¹›q´÷E&@M‚mŒ7›GPŽ» kI{‘“f/²bTPhfÉ´ÚÅÕ}õŸ¦|MtÖ‡$K…¶°4ÄÖQëW£±¥fQ©ÐÒS +¦ª×'rå¶âw†¬“šæ$«V‹6i&Âú¤]P5™=xÔ»=àû‘ÎàžîÆ‘4º2O¨ + ,’0U1k¦dL¢Éú;Ô4!Ú¤©y²´%¡#Ð.2,òeÐÁ;‡×QÓD<÷¶ÏBÙ§ŸB¬Ãš%Ò¹»§»3ðv§«®L÷¸µ–.sz@Y„k™.¤)¾ÚåH…*Ù½³û¯:Œ0âliÄÙh„ЉL=¬ÆM^6 þŒÔ–¾Ž¸•` hµíëø2ÅÚ§–s4‡„p˜òñÖÉ:€âè8K}íÇ¥¦ñ“Z ñ:€´ô¤Š©&¯V#îlÊuø†š¬ÍÐCš¨Ô(XˆÍÒ¥¶ÈÑݱ½¨rÒø3§X775Áµˆ'ÑT(Ù±¦ªÈ(Îè@K\,V%‚À7(¡„Ï\28:aXóm¶6YgiÑš›l/T»rÿ$C·k°HzXÊF4ç`žjR¸ëŒ±OUŒ;ØH•£›£ÌÌY$ŒäïB'Óæ¦²å¦¶0ÈÎ|*6B3˜rÖtQYEcìEˆÔ·Báuoe]:á3ÈJŽ©fHk)‹OJ•ÏÑLî¡#IP9Ǫ3ÈǦä0̲¥NLžle +¹¢*ö‚-Ú¦ší€77Uos— Ta¡.3¤¢îL»0É&*Rê(ª£ ãD1ê[¬ anH€jðtàÅa»Ãaz›£Ð„I +Œbz1î„ ¾›æ ¹(‚®‹gÃLŸ(.dÇÚ¾4 ¢¡&²0Zïm^ÙÙƒVÞÈ\Ø„è´Gû$·ÎG!@!ÎóÅÆÕÍÕ¤À냤œv¦ L­¼]Q¤9U!’ýܨ’C½ úÌê½ðs€{P©µGEW‚¨¢Ñ1j²ÐÙjl2z£áÌZ±@jáÎdÜÒÃVÉ^± +32x;¤áõƒ07t«“ŸÓ;ºiKy™X +4¡br"ydÍ ªâ‰·—{ŠepÙCWÎBìtêÏæÁ)5WÍîéh +°V«7Øò*ÂÉ4ªÂj o¸áÓÕ§XÜ0ü×"4xú•ÌgªdêÞPóü6¢7S·¢Ï +(rkÒay’œx3SCm Hä´8¡ ]¹Kw¨åÉUMP‹>o';»86²—#Ÿ)Lî2ªMÂ@œÖù$"­Wýô’õŽªÞˆ˜µØÇBˆÇGKVgù!ê"£Âeê¡4u¸£‘b•´Žv¸Z›å +p)ƒÒ?B±ÂÔæ7i:o¿Ì +E”ä¡6Ÿâ• ês*ÈàЫõÈQ¨pr›mê‘¡°ñÂLø, ++;°ÿ FQr-½ Æ«GyŸðÊâÈšîå78‘TP›s.ͲeÌ©I5vƒ˜÷°ô†† ’Æ%¡ö´«ÒÏAÑ͈4ÂÄË^‹b@‰%›áÌÇRbZ›¶Ð›ð¸kc <"rÙÓR²„r{p©aHó'fêúÚåΘjR’«š„Ö›K¯t ä¬omÒøŒk«MP2:B@8L! dFmˆª›P¨ +’9=ƒ<++-Z1$¬ ýV"k¾_„#וG{•`˜9MÇ-¿s²Â¼0eT²ÖõÊêŠæhb?°ÔP¹è~# +endstream endobj 77 0 obj<>stream +ûõ¨V#N!S´ë¯I¬!‰É³™Ñl´'–¡d`P—Ž ³7‡"žÊ¼x§NãMÚÁèðÙ.Õœ‘7É*ß9,Á®ñ1¥§#,V¬?¸Ò»p\:Ø&ŒâÃ1ô3ƒH±O#")®D_¤ ɺę¦EU0J«0cºü‚…¤ƒPHˆÛëTPÃëÀÁÜá0X€ùC@;ñ¤Ef0¼KB„Gð²"½`?¡ÛGk²6šÂ“¼á¤€ +‡ŠÄPa)àåÌf²>‚ë„ûmÊDÑÉŽ¶ÕŒQ%A ⼣½õR@f:-Ó¡J­G#'ŒÌ]MO”¬ÚøßP Ó$E)#Ô©ž‚¼ªx nŠcK_6òÇÚ‘PG¨VuF9·&†·nšç5.²'=­þ eÙA:tȃÈýIÇØà … / =úàÁ.žê½Âï .{bH°€Åhµ‘ÑÈûbœ¾D¾T^–Ð0Î +±¢Á—èJ"[ê˜sî:B˜»]yÔÈM]{4nƒ±ºÌ¤h$Ö¬E˜ÉàâHPÉ÷p±!\§`1°f˜C P©jÁQAÃÑ0·ˆb3ï„ËÅGwœ¹ÈbE_~nïÜ£·ä¡…Ý^jXd?«(%á‚7éµñC´¨˜9Æ‚qeñ’lìHÅázmø'£S›û²¡×§¢h‰£a“ÁðÞ°o~®*áîtÆÊ§éa¿jÅ[!uT?Ëϰw×Ì öV9AŠžQ°µh„jv™ûY£7·— Æ™É#89Ûbr¿XkPõ5c¦¢Ê‡i QágÜ) å0vˆþYIç‚Õ|¯PA›Í©ˆ„ûëbc£‹3qbFtE¨—‰Cmg÷ ±g”,TuÅU@¯4¨Tkèajr7ÿ¸é?'26?E!üDÆÆü‰ò‘Š‹¨ÌÊÙÊ.ø2&ûá‚l”S¾‚kgüp§˜^%”Š¡¼I½^›|Ð$+잣̳Öé‘0·³L™Þb •²ˆì‰挄Èe`Gê¨äÏܪŒ•¾ÁÕÞ[ÄX_6ÿ# ­åµÉ ’@6‘<Á6ÐY¤f iä¹ÝÓáÈÆÇy CXQìóòbÈä’ + %¸hëDST>ChwKff«<«Ñª²Aó§p:Í~glv°y ÄIQC&m0Vio"s<Õ"JZ ¹ ¤RG«øÌ5«3“£6Þ'óǸ6¹Ãä”`¿R>R·–`t†ÁÌÏË„UCŒ8©i©‚AŠÀNìMÀæ¶©©$ }ANz±B[L¨ö6a}Ò€X›ÉAáÔ$ਗ਼ԎȄB\Yz³œ®Ml0ú©aÊD‰ŸüÜ$¦føÔ$7* +Ž:œÝ1Žý5H Ðhƒ¯”Hš• :ãQø9E¡ÆÅ"¤»‹˜_ª´8¥¼È,NÁ¾XS!Ûö×&oƹAeÖ¥¯V„9¤tvÇ8gÆ«˜Æ«µ™A†œkž÷,?Û“eT±R…v‡húë]"EŠÈ(—bUÖÔsž;pš•fžÐ)D‘Àz> +™šÐî;ç™w˜äÒ¦/gk˜8PT_¡éWªua "×pfë»»¥JV/óU¦ú²ˆ})G^óÂ…<9‹ŠQÔQßäf¦fµª¢L•øp‹½×ðB7åSÐÿöÙ,ƒ„Ò%¾²ˆ°À®¥fuTŒ­5â¹þTâçIþ”«ò\Ë<_bÐr´fÀm*'pø@À(Kâ ½×€)oPX¢E´¯»ó?ÕN{„r†ÂÈš‰]#œ¯t‡ÙsKú™jèÔ@¤˜»øó"“Åâ«tOÍÚ¼Ò*¬v…5„¬¨z7Ö)Ѱ²ƒj“µæ€2Å’\OQªe ZNJEÞ£;­-CŽ2{ra«êÉ£ˆY–ã×–3ÒG?WrF«Bý4,¹*/¾g„|vJ‚z/r–%ëMÝz´WeäÂLÅN%eÒÅüKYðFŽI „T°¬\:œÕe’ÞºÓÌ2ù\¦bZoñ\vnX Q¬ŠráúÒš¼´f×3-Y:à Ôe#,ÒvÄHd³«ÁB¯A{pˆÞÓᦴû¬0àŠþAáª1Ì— ÿ»Žˆáã«S!¨K I/ Þ +o½K¥†Q*TÄbëÂh ýfÎæQ3ÿÅùåÕvGÏwaœJ!*¦²pÐ5ß©„Û÷U¨.ä?  œI…ëêUÜŒüWS†aCŠ›#U;'RW!•Qò­¸ZÂëܪåŸcg‹aÙA2ß!•ÀÕ#y,:BUÖNþnl’P; p±;$$'æ…ÍAâ”Sk’k;Xwpæ2>S,c˜ƒåK²ôèÀF„ +æQs@-Šúä4…2•²,Q^YA§LªŒªY'P|BE¦’ê~UeôAM£ŽËüÖh×à ýbWSWÕԙʭðºé\Cì—i¡¬UÕ@Å©V:Txžb„îŸèÞ(g”ÂÙ[áå"ÕМ£4O7g¡é+8¨âqï— ¾®¼èý>u|¤Ý(i²G²Ô<¤_8¾iŠàë,œ.¶7SÀ£b…ª5B3W%Xóx‚àJ¯ÊIŒ>A§¥™D=’½-ƱVä5—†'½mZ·‹¢·qÂ/ú,o8×ɉ\*ÛջÇ5žÆÃ¦ô}Spf~E«Ý£W#5´a%iÆ—„ÆÒ2Ä™HI+ÒÚ*GÁ|«0³þÈI¾Ø¡Šî´bôsRTH *eI·œ¦èhå¾±YìŸh%[E´8CçS9Š”fÒÉš*Ù*Ú¤ëZŒ¯µ ð()rÉP“èzä6£¾ÊÇŽr>¥'¤áQpdÐO*…¯±0ÙLyC…гóçŒ)ŸR­žQô´[óH­5X$ŒŸ¶Ìc–s„Fl–7Õuݽ~UðE;ä¬k‹”ˆ¾ÇlDêu§ Œ‚´k§XŠæiÉSϘˆ„awuÓ®µÙ/²¿î¹8ÝèÈt©KTÀwF] 6ûs³î;D“&ᘾ§å¢èBEßYØ/ ò¨Ë¥æB’¾% +»E»Æ$p,P¼}p¸(“üs€1:úe><±ZwEWä‹ôÙRÀ§)Ø*á{JY9ågvBMÞhHâE´l%I!a×ø„SM޾׿–¼Mµr3›P¡«:B‹FÌ?­$NáÈŸ—˜AüM]? +ûIk¤t„ t>ñK‹Ô+«š$òô]£ŠWö”°%5ÇÓ+‹^G`ä¢<Ù浪˜œ=ýEÐ}¢ÆT™;fŠÕ‡Ù <^øØT“N]<—‚@aÖŽÒ'µVÆ6R,D[ù{ѦT:BîŸêÍu7PÔZ¾p¥[*j³J˜á‘KD8½8s4–M"1íiíAÏ÷\RužØ¿¨:w‚²ÎøªJ›èøÜ¬ð"+Ÿá©Œ°&Xî 1æèjD‡8Hw)[9™{GX­">•¤t 2¶Fl +¾%z`Ÿ0Ýl–È87ÌŽƒ—Õ`tsÑÑÐJ!µ)­ªÄýºÙ ÏM]0¥mb¨;í‡lbâqÕOF\¢‰™ÕTn?êõíd +ËÄ|ašþÉR“ÐÒl% uø, ERjß‹¥X×2­,-ÞZå‘zõºAÀsâJz ãÆ™¨HŠ'ùK9‚ªŠM˜sW²™ŠMNäY(8i÷«o陯-Ëõ W§mÓ>3ºëX†? 7žpP/@º†šzèIÑæYÛûŠfX8S;®oŸ$ÕÉ#ÔÕðdÛ|R´RD ‰Q&Ê™žà’•ŸD-^`hæ¤ÁÑÞÙ2HÈ=v41›¸Dð Œaê8±$˜Yœ7/Ñס SC/vº'jÀkh°–©—¸Öu½«6åô54â#:As[Úù¢Ð˜ õòNź"UÄŒt§úŒã¸SB/]¦ÜÙ=™–—{‚¶µVISÓ‚s=:FøŒ‚æè…çüd¦B§„<ø—êJˆÖ,&g{,dJ°Îb4ª¥ïÔ«ÊeU ­×;Îöš¸K]­Ìª%.Ö?8ZÝ ¹ˆ¨Øä1ô(2›ÀÁ„&ä¥,Ä5Å™}>±Î±‚"HGú¬BÞ-á‚4 HïÃÉ¥ìw˜ŒÌ›•R^|ž4#DÔÚ·ÎÄ6Ê|¤•m$0y$œ97„:"ò(*§!hsu 2ˆÕµÎ*Ú"Pò#æ s ¿ËÕÜj:¥Mñh6Ùž"¦_×—µØÍ¥¬ÅYí5sÑÓh£V²mÄ3ðÂ{½”%Y\œàçô×ä=’Ë¡{¯5]¥|bßîâxDùè”É‘&§Hw °àÝLõÛ#ßéwÅr”„‚®>*G¯ êñºÈÆÔ¬œ›Ü-@ªTê°3Ô”®Ée$œˆÕÔ÷ ØÐ¸æŠñ„QS©g*ƒ£À9 5ðË™ìxêN$Ű,÷6Ââñ°2Á^µ{ L–CÏZi®Øƒ«–ãfæºMºj½Þmê®ÚŇô]æöºm¾jÅßeò¯ú«žÄ]nǪ²êÍÜåú¬¸I«þÔ]¾×ªŸv‡G·îþ0Ò݃–™FnHwŒ_¼•YEmÜ«k0À. õè¬I }€Ùµz©®^À«Wõ]÷úš °j,ÜeY¬š!«˺q³j­›LwÙW«ÆØšÙv—·n®šŽwÙ™«FéÃmÝUú.{{Í6_5âï²øW¼ƒU7âNŸcÕAYódÖTñz{UÃßu,rKˆO™b¹Ï5ƒ”˜ K†½Ó _õÙW½ûµPÀt¡xDâoàk3Нë;.öu+`ÕdX5.î²DÖ¬–;Ì›U[hÕpZ7±î²ÇV·U3ï.›pÕ€\55ï°K×lØucwÕ,^5 ×Lí»ìòU#~ÕÜ¿Ó7Xu$V]Ž;Ü“„‹ÜîF{k´i”Øž_ò$Œ+„Á–§ßÕvöü°ÜGdy(çµµ.‰a.7dÈ9#q ÇWoŒØß˜ƒ„}ð¼“v#’@ˆ€I®G× 5 ª%£6¨’O9è7¸õû”dÕŒn"U¨/r2â±ÂgN?ýåç˜W3ª¤PRÚèrB+‹x°L{¡›¿8¿Z‚F}lôLF £ÓnÚdңѴ`°T)› —Ð!H•zèa×P"_–f†¢îÛTvÊŠrDZYq§s°êI¬úkʬGU2û§•HQ>Ä{ªÞÉðлž¬Óè›ñÿP:"’ÐØN(k#/ê·†4­Ú¸a>—xŽ8.–ÿ±äX$“Ú§W;ÐãáI +Ù m¿2ç^Ü’£è™œA“@JŒ@»GX¸Eˆý½Cî”:'D#‚nKT:j0&$'èÕ‚{ y´ß&tú…Tx× &Ùt‚e%L*Á‡ôè°3|w±’ˆ~ùÛ6S \¢ XH7“žS[&¥ÕtsË*å[ZŒÜ–4•‹‰KbÔïE+þ$R ¥Â#5.DZró •)/-UÔN‡Ÿl̦—/ºøE#ë$ |ð 8醫Ö]:mÈfÚâŒv!)'MB'”fÑõR´Âq{©&ô2Y²6“°FÐä¯m·Ð5&ÄB+4ŠÊ€!»A™æI½;–y¶ù=„½>©Í ûàNAÉ>ëâlŒ‰u0å6€ÆtÉì\EUóÁ2eÕ4ˆl'5Ǫ´æ‘[KG•~Π3dnZ!¼cI˜ùPPhª4Ê]Îþ:ù‘`yKà ¬WO2B’ +Q$ÌçÔÍâ¶îb?jí u1«Æ‹®ŸI­NýâQ³4 y®K¤ƒ©°“nq)#™Y2ºy¤ò4N,ŠgIpk÷+„NúeÑæFSˆ„‹¼8#Y¡î☒• e–¤ÎR¶‘‘Bmás[¦úÁ Ó§%ÖêÚ¢ÐÀ|:4Q¶ÆŠen±™¯½n®Ú«–æ]féš »jíÞe¯ÚÑë÷Öùª%¿fòßíú«^Ç.ʪ?sè÷Üá! ™ªži"4c¡×Î1‡ +kO³Á›;ÜpŠO½cw®ìã»6ýê Y;Kw¼õSºzžï8ü«šb]§Ü¥€VµÕª^»K #©ïô 7T¦Ê âF§XbŽt½¦2ÝAʤèÂÒê (ÅÝ aµ.ÔªvÐÈF9óK£c_*|ºÍ¡õ/@¨ÓÒªÀy¨d`p Q¬P Þe€\ ªbÉÒYªYÕ¢æŠqTÜ€i±Î8$lxMÉèŽ‹Ž„.M¼¤ÿHŽ÷…Zgý(lI`·?†Í¯¹j€4y£ª-0S°RE‘G °<ã}i p +ÖŠ,ýû6‚›DÕ©ËŠÆ©A³D(†k`ÅåP¢£SlƬõ.I~V„KáòóÁt«,DQ2Sõêû«Ö\£{©Mê¼D¨Ñͼ̄F„ÂVm–‰·ìÆbÕêDT­ÎØ2WØW?”(ºœÅÈ6ƒ+;dvù Eè³×,­òRÎZ“´£_ávîü`ÆÑSh`Moå18aŸZ«`ËèNF}~ÔŒt²jÕkÔY–=4¦¯{J°*ÅŒ¨Ë ¤Ò2»G¢´ž$Ý­‘²ÌZ²‚ª'zÒKéÁÔâ +\Œ|$Ü®t&¼:;”ÆYÔ Ÿ»;K…´»Y¬þŽ^§­Ð Ÿ´ÃƒƒàG$¹PÑP˜&,)åeµÍxÔI¡+ ¹^n jÕ)Ò ÿ]¬á-× €2ØÙ"E)ƒ‰¸[ô·4‡I~Å^7Á­ëß{à#ÈüE‡*Í‹A…^c¼˜ Å5³ ¼¾V£ 2†ÈFJm¢¿oJV#oÁ;|JXÐi²ÐöÕ‰¾°U¨EBÅbÊš@Î`žâ4Ë {¾hÞfúîY{'\­ÒÚ-ÉÄ4ÄðÔ;?gVjרaY…b¨Ïïr”q¸-Ãv%ÇüYauÍ‹˜8øÚW³ëHçW* †bÙ}ÙAê’¯?ãîvX–Ðw÷Á8gÓ¯;ùu·ûÛ{T~ðEô×û,T~‹õ  žNN7–FVòLg½¸‰›4‚Ϭ_¿¸HˆVÖFëE05«_ôÅÄ£o4kËDûØÅó2Ù‚’7%+Š' Q¸ú¬(±e˜”…œªoÁøA*…+eãÔ={ˆÂG£€±!† bk.¥Í²æ—LÞJD§vm å‘Y"ìíéÉJp·ò¼Ó4õÚ’ ‹I@«{¶úêNïq²¹3+–3aöÂ_ÓÑD¨u~»¿ËDU,œ(ýÆWft­ÆÓV¿ãü[9x©èCúR°°ìåAú<­"NLÿÓ¯Eóüèå‰KLÞG=ÉôãÆ¹ PP’;=¼òú^äé¾jÛŸ(39×íŠVUÃeâ¦saÞ+»/ko©CÌ °nv`m¸[>mOæU+b|ËÝÝy°èó}%®­ÔïqÆ‘¤.tWiPøCXŠäwU¨-‡T³Ÿb„”c›”û‰dÆCÜÓ~Eûwè`ª£…XÜ’iÎY‚±p¸0Îa<¬«8³‘£Óç­{' tÂ^³”…HbšÎaêî>ÍmD_˜tÁ«RóáJ5‚"ŸˆB(4~ y,‚ô[¤oÀÙÞG¡ìDÉe][‹št»ñ¼è Ö”#áàŸ­ÐvFÞýEýˆäGN½)$VÓÞàöhzF*²HÿLÙ~°¸—2Ëy‚+á<ÛÛ¿”O®Ö储b­‡r›#ÉÑr$ºsõã˜ï)”]5@ÃA8…´H›ù|”ú“èk¼Fm‚rê«-›˜ž§‡«7æb<sÐ'm<\-¢´3ì(—cFðñ @Œ<“ô Ã* ™,¡ZÐQΕpýR +Á‘çuÐ#OM;ua³ v“#û­iÈq""r òàÈ49ƒ\]n~då&ê%ã é“­éÜ ÊFVç›x®´“˜K,”À£R6PÁŠÀ)¸šÛ"Ø“|\]ŽÞ”^;J2í²õlÐ;Ç>Pp¢aªœãã.Ú¶“vÔ92ï95ã»s‡! ¢» ÍM®C„±TRV•hWÑNÑ"Óæ~±>¡A:/œb§#n„é '<¦^P'&W³’’´+M®hxŒ£?º ( +´u¢ÓŸ›_O#¨w$gÙE§k +ÕkˆÇª‹6e0žå/{9V‡÷ÖÄ`zI£óæÎ[ +Œl‰¤õ0¦¨`œ @¥ì5­‹›ÊM‡–ݽ¹?±Ã Æljé îÒŽ#ÖåU鿆M¾#dÛwW¸ãˆ*·¸kÕR:fÉ~2$O8ÓªƒøIËÑÔ[—G>ÃÈ}‰nšóÁÈê/P¡Žòäìø,¹‚Æé¤´µž!ê wІÄf?˳Z*B2Õ*Ó\g3~çå(Ç14J€”Œï&´(Õ.íöÞ.ñÃI‰Ût‰PÁÁZýÂfxí£Ÿ.IáÞ5BñE²dœCŸ×å]@³j¶feU³X¾W¡"=ûD¨Md)ù–0€ÉL¯3P{ ¼:¹ú*Ñ'öJf‰×Dž›”«4©L±„„F©wІ³µîJ¸r°Šµ2ãdfwO"çæ¿gg‰'r‡k*BýE+o¬õ†3Ï4 JmõµÏ_D£Ñ”â¬˧4k¶%•ŸA®‘v*¼BL)=Y˜=0“‹ ŠR÷Ûkr²K0ä  Yé•`×ãÎ/1ÀátÆ2ÀÊÄ4<¶ÕÎoa^~Æ[LóòBr¶·1Š·r*&QdG‰j¬4oK9óšæ2õÕM£ük‘.9'œSRs‡ +¯´Ôêi5Ëìvн3ä)Á9µ+!kµ¤k 1í$êõʨ)™ä„R2w%Y‹Ó2:ÖMÓ¤^‰’äE“Ý-åidõàK6€clØF#ÿSË/ © å"”~’ +¤0rE:V§ˆh2J4\?Í«1gŒ½5®(ÄZ„ô%eØöú¬Èªô¦à×h=DL¤Â&Eu-î;Çë—mç¢t¢Ù9ö4ËS‹ŽX]4o@¢ió¨\Gû§Év¡VE“P=ŒIXB¹¯ð ·íê¤ÓÐü6+œÆ]¡ê1 +¶Œ\Â4gò”üᔫ5ýšÆ(xÚ}EªG Œ˜åj+Ï>F-ƶ=MW6Šý}·¨õï'×z# lrîß&§ZíwN¸­¨€¥¨æí7"·œ\Ò¸“uñÜYÑ•i‡Y«p¯¥j=½±$3£-[Ô/p®ôlN ”R½Ä69z]¨žwÅ +ÑHµ£âî¨ê7»¨¦æ.J@?ÁÓS˽öQœ(èÕ…Û®å­aÛ¼MÇZíðÚýâÐó}[û© ÒãÔàŒ3ºl®ÃtŸüt<õ\Ê9ˆd󇲹[ÎãœÝ1þ»³nÔ¶ÉîŽ1^ÊÑv&Q9 +`uhRR‚äçNWF@Ÿ) u2-ʧ%;¶Iò’úœí…Q¦walj¨ºõ6RéríTB©¡>ƒ\gŸpñP6¸^F$;BêëÃ\¾¬Ö|å#º©!¹|±ÃÜ$×ïÎZä +4*ÚÕþD0ÝÒµkž—Ct³h—z9ÑÑ™ÊOv¢ K*^´­ü–Ö)S„s°pRŸ&óín1’KüšÂÛÚE‡qåEõuRºZªyË#Ûûé»eþEYƒóœÒŠóœICd7=©#g0ùí^1#å6UD¿àz€Q5m +5ËN±)@œΚ-“\ƒÑ6‡V`̇îU +Û ,Î6€‚Ûk@ÁØŽ =Kw„©­QQHúkÞÙuÔ5N{2ÏØ~ÒŠÞ/Å>­_¶+ ʸa[P¹œ!:4ìù#b„è£ÊÃPêt””O›6é³ÝÉ9ëP~xïs­:\E‰¹¹¥òµ’TÝ´ïìð,B°çÏîçñú¨ÔGé£Â¼Bܘ–ÈMò³=yUE3A WDÓ_3ÄðÃ\ùßôßüôDQ ì.£<…}û$>ë/àóŸÿâõí//_Ü^Þ¼:ýݳ#ÙÏN$¥WÜ??ûùg·¯/_ýåÙÏ>ýô/^¼½þãÍí9=üÏÏþ•ý„þǼAñ2Ÿ¾|ÄGü‰}𤓕Q²M@ +JÎfí×:…˜¡ºnÖ°GÓ0²Mж¤c +º‰Ò9rÿRäZ¢¯ÕÒ„SG]:W¢ñØü·J-B"!œ­f/Á¬u¨%¤‹@åYȨuùû¨x€¦ÈMÄó @HðVòèÉã$“f¨äeÌLÁô\`a®MZpç¢Á\±Â£‘s£~Hú$Q H$ƒºA)ÆžÊí¥v«5ªµ•ÅÅ•;&‰òÊTkè5uPî7I,"÷]+¦mu– ÿA5I-ïó””(È®|ºX^¯u´z§$œ!Èëâ&F1<œ… j†»9VÔ>z„4¢¨¡'B™2­ ¢¼µ7G¶~ÉÈ Pö–üLy‡Ô?Ð- +°Gל% E)W Ö{ ÈøP¢vtö L—~ñÑ4&h÷zIj$7VIaò‰p¯/àŸNéPàÐu‰Ž3¥"¤ÅPR—aáv”E„!tp•QÄA½f³•Áªèž Z_³Ààþý’”M½jšLdA MX}'ʤɆ¢ª14%Ò ëâ’5/ +ØK¤Z´ØúR$×ÁËOg0º~µ’¨µ@ô½y)ŒdaQÄ2÷?M¨Ê´³¤Ê$ýñ9a·höwÑÆ¸œAͺi¦¤2Á¥ú€ÖÓËÝäv4Í:QUm‰D„JhÂæ(³NÍ75ø© {™ZË 4›me4£oîé¨EyÍLÎ*ûô#Àp©Öá•ùY¢¦®¡U‘C–<^È0ª(‰èQ1ƒ¼ дBm"B‹(H†j¸Z± :&<-ÝVM„<'¿í¨Iî)>Gÿ‘½´Nƒe ›”!ŒÒîÍ„äêVnÔŒEóÔÈÒK-NvŠÿ `¹Á8rŠ ² W +ÍÍ›eºÑ4_7RLmÁk§û ex N =¬E(Õ²\ôFFØPàH¬+§ ­_/ˆ!øÃ͈s>ÌF €c Ø;mc­Ò´J’O„£76³. c|4}O:¨U„ÒƒþMý>H¼À¤hãÇôâô–FdaÖikñ×jƒ­CüäÆ:…òp{n+ßÀíEd ö M„TT §=Y1à#Nñ8–IÉ0i¦–÷,(u#UžùK­˜à{lk™ÜÖd0÷juŽ‚B H ~- ðêl¶;ŸïóI?ÿÝÍ«?ônûX''*g¿iþ/?ýÉï¾æÿæùŸýç¿ÿúòªõÓŸüÜþ™&ùó?ÿöìw7//èŸö%‹§¹~{}õªÿÇúrÃx²ëÿùoçWoå¿»g?ÿÍ«ÛÝÿzûÝ×òûkz}þÝá/_üéíë/Þ^]¼zqñúýOÆ/¾º¼zùúB¾ÅÏw¿âÎ4e˜ŸÿÇ«Ë]ô½³üÙí¼ ïù‹1qÿ¨Ÿë›èõåoo/Þðƒý¿Œaçå}qþæâׯ/þûmŸõw÷]'96\áÞZö—úêíõï_Üžÿþà~ëô\伊ý¾¹½¼}ñÕŸ.¯î¿ÄW7Ÿñmp¥;«Ù_êë‹7o¯nßç`np…XÄ¿~ÿsûkÿòâôæúë›7—·[Vœ7__¼>¿½y}ßotùjƒ_h,bÿ#\¾z‡vØüîã.뾫úìæíëÿþúüë¯._lry÷9X²³Åfêë½½·š½ùâ¿.^Ü~zóöÕËþÔ§7ßnð…í,ë`_¼|—ªùÙ/~óù/®¾þêüs·ÁÅÑü÷×ôŽ0Ù;ÿ´Á}{¸ ûp[\ЊÉöÕÅå_¾º÷-ï–M® ‹Ø_Ü7—/oßawm~mº†wèÙŸÿòâËgŸýДúåëóî"\ýîæòÍGï‰nñ²ytG4np‘GGôèˆÑ£#ztDŽèFÑ-^›GGtó ::¢Oom…#úïçoß¼¹<õéÕÛÔ >äÚysûò—»Ô\öÓõ`v×ñ0Ãþ ùd[[âdØ?Ⱥâûtƒë»ŸmµwÌ~ÿå—o.n7|ÀÞoëÝðr>ýX7àFOÖåŠÊxyo»g‹êðåŠÝóòÞ¦é&Wôíh‡Ï¾¾xñöêüõK}?Œ)ð‡›ËW·gjtnUOÝ{sœ¤eY6¸A⺜tKx“‹Z9ÆÿsïEù.êþ^1”7o_yþââ³çW÷ίlü¶»Ž‡³oº +üýÛw<~4'þÞæÄ›Ûïî¿'¯ôº:yqsuóúß¾ùJ‚ò[[§®é`©zéþêÛ¯o^]¼zHË×x°˜»–{zóêÍíù{,wëkyo“ë˜EúÁ³Hÿqï,ÙÖ#J–m÷Ë}P(çcÔç¯/o¿º¾¸Ýd2ó±4ÈÕåíÎ/ßuó=U²åSöcȵï¬î¯ïMMÙÈ ®ˆf°¢wØ_‘[YQxÊ&0Íþ`E÷V›\‘ÿ€Ëø·¯ÿòºˆ×~šþ}ÃvÀýµì¦3:d§}\ßgÃÆË£‚ÍþáÖûÁ·>½øÛÅÕg_¿¼ùæã«&:ñ›DÐ<(²Í%=È7¹®Çrmsmë·7¯¿þêæêæ/ßmø¾{߸ÄËË«óMæ+&±ÅpßÁˆ—OyUk÷çGIÛ݇ç//ßÞ£ïžo‘xkxÛÿ¨ Ÿ 2Üb¡ÐÕáWõ0exTO@~dˆã/¶è“?‚rØâ²¦6©ï„œ>Ù$Ðø»P +GÚ‰ìGzTÚ‰-^ON;±Eœë‘vâC.ì-n×G¸°·¸¬^Ø›´A>$å÷ËË7__¿¸¸¾xuûÛó¯7|ǽçYzTᩞ¥-.ký,ÝY±Mýð0Ö–Äîeü>5[Ü|oÖKi¾;ýêüÕ«‹«Ï.®.^¼GÄð\âáZöWûí®ö\íáZÞûR;¥âšßž÷ç¾Ýð…ö>NÛ5³µ¯µî®½ç]½Å`Á#ÜÕ[\ÖíÞ-Þk×OäÞî%Z/.Ïžü£ÛùÇ .K}o-ùðØìÌàüÕåõù¦kB¾¼¼ººXíââ¶P“E|þ×7×Oú,óß_ÕíÍSšÑì÷Wôò]èâiIïÐw?LÌý특jýŽ'Ïj{óYý Ý[Óþ’¿ fO÷¾¶ø%uû ëî׋ßÞ¼¼÷g¼º|uq¾EÄüXÈÁv¥¶`oß$™ãÕ¯¶xÌ 9XäË——·—»÷__pÜp‹«´•¬¸%·ç¯ï4¼úæü»-E[Ç»m¾1{>„9p‹6£2nÑ`xu‹Ëz ºI·ûÈ€ø³[Ô?B›\Ö´»¢“ºÁ%ñHÿú#Ã#ý8²n’îëˆHú+{‹©ùG¸²·¸¬‡]ÙÛ´BŽˆ¤é m1wögi‹Ëz "i›úáaˆ¤-+ˆG$mѬ?"’Žˆ¤#"éûZHz±Åâ#ÜÕ[\ÖíÞMšHrGDÒfÔä1?¶r·Ùz¹Åe=PcnòøHÁ‘Éò‘˜·¹Ë?xK|4ße›ÙùãwÙ0›ËãÀþ ¢cìõèÎo>?½¹¹út«èñ‡q¨¦Úà’D¡ºM:Î#…ê÷­ÍmrmG +ÕÔÅþ#` ü¸{ƒ¼+Ý#‚÷ç¤û Ëõ^vÆ/y[¾Å×£VÆQáQ>š"Ì\Õ†á_ÏQnR^¼¾yW…ãQnVnÑâÙ‚üíê£=xTƒG5øcPƒ[´w¶£·øvž¾üˆ=[„Q z~°C5øÏ·øªŽgkÃg«lpÃlôlmñU=õ³õq1Ó½¾¸¾y¯Ï†˜éÞ(íž¹OüòÌ¥þ¿Ë³þÿ>éÿÜÿÿOúx¶Á5OØèåys›¤{<¢79÷|×8²¼ý=øH,oo¾&ž· ®ïÈòvdyÛ]â“`yÛ[à×ç·¿¼ÿqùêåÅ——¯.7™ËVón£úèmÊz¡ÞÕ»öï-ÚèÂ~ÍœßOwœÞ\}óærÓnÞû&hÞõA7–yÏC|°ß¿}ÇßlKsÜŸwdû9¨‡5EÚ¨fL˳´ÅkoZÈ;ÎÎ19LÎ?FržO¥çýòÉVOÅ1!ÿÎõòO?!l»öîÑcBþ˜¿ÙÍÓòÇ„üÃ?Õ1!ÿtvLÈ4þøòË·o.Έò©/ãè[}ËïYÜwWW7ß|ò—ׯ>éGüâ“~©^þåæ“¿]Þ\]Ü~òúâå'7¯Ï_ýe‹/à1œÎ¼Ý÷•ª“Ô:aƒK=zžGÏóèynb•GÏóèyþò²¿¢W·gÊzºUûíâªÿÎû¸y‹Aóijå.¯ß¾9kÝâúlïÞ†~xûúË®J?{ŸNg[¤‚ß]ÇÃÂ/ÅûÛà*ØîÚØ'|£‘•µô>îľ“¹Á%î/gýì½—‚Ù"cgβœªÓ›W|ó?åu,å½ÍŸÏ¾¾xÑ ý×ÇèÙ1zv?7€be=ÓPюѳcôì=;Fώѳcôì=;F϶e¿Ýßå¾zw÷£Í8ÜǘàžqvŒ Þ׊Ýà{zÌ àõj·Yëyw©îG@çøÕ·_wkí=Â-›Ü£‹¹k¹ï]Ú¢ê:\Ìþr?,<úúâ÷ñVb£ïg }ŒÜ53ÌS½&ŽŒÛÿzGv¸÷?v˜«ËÛ?œ_¾ëºªjdÃy臩íg®îÇÌ +³ÅìÃXa6ùÄ +³É}+Ìñ2~â—ñµÅ#ÜÆ[·{t#oØ:^ÆO`EGжí¯èHÑöèvÀû+Ø-îŒ#=ÛÓ§g{‡jÚLòüH϶-z¶šd‹‡âÇÌòc¦Ëøý—_¾¹Ø2Xëý¶Þ /‡tÆë‹—[ýP?*ÄÇËï-ö÷¥Ù¬èVÛÆWôíÑßzluÿƒû$ôÓ]$×wz"©À£oüä|ãϾ:yóÍ–yËNãƼÁ stNã&ØÑi|:'ìaNcÝàŠæ4nrEG§ñè4Æ£ÓxtH§q‹‰£µlê½ïº—þiƒkúöpI÷6H6º¤“ä«‹wW·OØ¡°lq]XÄþâ¾¹|ù¥âq“kÓ5<íÌŸÞ¾þâíÕÅ«?ˆ)x$ûG]q+db_¾¾¹¾7|ôù+¼eû뺽¹ÿª¶Øï…æàŸÞŸ¾æ#'=ûâüÍů__ü÷Û®³Þqëo‘óìH ¶²È#5عÊ#5ØìCl!™÷ýÞÔ—¯Ï_Üž_ýîær“¥ÈcØBÊûß-[7ö–²¿ÒWo¯ß¿Ïßî¨Þ$çͼŒý%¾¹½¼}ñÕŸ.¯î¿ÆW7Ÿñmp¥;«YQÔï‘O{±Å8ÕÃù÷7¹¬‡Qï¿Ø$ åÈ•c`ƒ_çî²ì#Ñ–õÄcæ~ŽY›ûemnÏ·I­ðô~ÿð¨òßÛ¹´µýò¨ÎÌò£ðf¶ˆâ9:3àÌÐÁÜà +'wæh( å'i(oôhM弩<ì¹ÏßÁϳ™(˽AN›Ä–<â´É=à´lr]pÚæÚŽ§”Eu̬­;£[¬Ðt_t‹‹<ú¢G_ôè‹}Ñ£/zôE·ë‹n1T}ôE7¿ £/úôÖöQø¢1ÿɘ3ÿɽas]ØÃ€sG©÷‘ÖåÿP?_7øj[[ÚÃNØVÕÆƒØj¶x‰)NYùýúêææîá“Ñ}÷hÀûDÕÝVW¶¦íÞÜ~wÿ6ì_Ò”nÃÿöÅÕù‹¿~òLD7_Ÿ¿¸¼ýîß¶™­Ð5¾÷y;Æ~ðØïÑœZYæ¦Ú9}BZæ=BøOâ>´üb«ŸîC\²_J¯Ý3mFÿÃD•~yùæöüÕí™F0·ª­ïƯh%›¬ÒY9ÞW}.ïżÅBÚiû <ÿŸËë·ï?[ÌÊØ"Þ}Ä?(búöõ—ç/.>{q~ƒr‹¯iw3H¶Û‡üáVÈv×ö£‰ê\é{rƒb,𛯶Éݱ¿šõ£÷^úe‹µã;ËØ_£ªÓ›WlÏ<åu,å½-ËÏ´oôÑ´||ÓrƒæhY-Ë£eyßêÆß¿ÝâQþQu‚À§øÕ·_ß¼ºxK{‹ªêp1w-÷c°Q×ò£3±)‘:%òTï‰#äû_ïÈ‚¦ŸéüõåíW×ÛdRz,Mruyû‡óËwÝ÷OUl8šù0òD` ;«ûë;P$SmÅWD³?XÑ;¬ßm›É4ûƒ½ƒcãß(¬¬èÞÊb“+òÇËøxo`‰poÝì}Ð…¼áOw¼‹ŸÀŠtoÒºxÐ]¼É}È]|ìEûýùÍ{+Ø'‚ ýÐ-òÑ|§í_„“Ë|¿o|äêúÇ~êGäêú‘ðFo2oy$ëú/òO[ft8†`ë©¡ +Ø\ݼþíyîÛäz¸Æb¶ö}Ö/†÷;`ÿÞçóæÝ°¥'z¾6­>Öb<‘ûßsÏý¿µ2É׎u¾·z9’óBªöIèüfl·ìÅ}Ýñ›ùn“ÈÓПuÊ "n`m\k~8ì™ +jþôúüÕ›/(öÝ_¿}õâ>òï9¼=ÿb“*y=pȳýÏ÷ +@ùg[Ì´ì,ä½ÏmÀ?nÀ§±Ÿ—g˳-.ðÁ[ðÓã|"[Ð} Jðï{#ûâÏݬøõåë-…v æ<Á`Ž$!žÜ!{ÏjÚ-W‹=(’³q-ùá Ð#nøáxÔÍŸï¿_§µ÷S„üÙquµÁWtÿ>òšŽ éV×ø‹ß|þÿÝܼüËëóMÞÿêFwâ6Ù +ì!ýè6º¤‡w¤K›\×ãt¤ÛæÚÞ¯#Ý?ýâ7nùüW¯^Zg:–%}þ»›Wè«bv¢•zñ—ËWóùéO~÷5ÆáÿøÙw×_Ü\‘z}þÅÅ›ÿ~{ñìäY^_ô9toñŸº<ûÅO²<ûó7?ýÉÛŸþä_Þ’±ñK’ü¾ÿÏóšwùÙòÜJèÿPûÿ[JLîÙ_é)þþüýÛÿêÿô_]öͳøì·Ïþïÿ[ž½ì?ðç?þô''¥,áy+Î?«iqÏSöéÙµÈãs²ÊI,²à}žat-Š0öi½¿oÏ—¥ôgc£OϺü|qK蚟×>ó.óíyŠ•ìëX–ªÿœ†$¹{^R«ôpH}¹þs‰,¬Ïó’£þTë?u*#äç­ÊÈåy­KÓúðüs×ÿQ…Ñ•DÂô<¥ŠEìÊuÁ4‡YXž'ïÒ³ÿƒ‡Uî½ù¹ò<7z ÉÕç1Wþ¹èž·¶ôUô¿~^bŸ°ü\¤—Â#øþÃY&œú/»ÆÂüÜÅÈsÈ¡¿Hþj><ï»!ë’YgùªP&œû„sáiøç‰>V×wU 4áö¼ÅÄߨôéøB#¸Ôç`?Wýó°$Á•ç®fž[mσ“÷Чùþer‹üùÞ²ä.ï[ÐAîžAÆ+&Ù 8À÷žÚžßÄÞþ¦ƒQC:˜AßqÏËÓu´àÚ¿¬ó)í,¬ºØ·´ûo¡ö/ëZÿXó+«¾?œå[ÚË­ý ö’¦/!sýöÓ¶ókì—øŽÝPc¡ÓŸ°uúÒd{r>n+Bþð}žýUø¶³)kênòmûNBìuù9’»à§ƒq&òÐ?³k;§«ÿúóCÜ9‡ýçÕ÷¯µwhid·Ð›ŸNxMùyª1í肚ZÌ(Ž®Vúôéã%Ó´o`š×¤jM8D³æ"±[rÛÑr$ì{.Íêd1µ4=hdÙ<$×'‹ÏN$!à×»îÌ"s)ë†æQ³(Î~b?]gC¾4‘ûZ¦—¨Â~!\š¡«ÁÖg¾4¡ï¾ZË3y[>§Lo+>ï‰?N¦Û„?N-Ïm!¡‡–Hqõãó¼ºÆï¶óþE²|—«ìÓþqúǒϸЩÒ}êõdÆRíCô³âR£a3íØùöºJ$a²?ƒóžwSEÞšnº<ý\×_K­n*#–(#¨Ê ­WòîÃôÑ’ß¶ô»)·?Òœ¾¸´3aÒÞeñygi%ôú>ßtYôSŸv^]y±´´ózé~ ‰¶ãî· »Ôå°ûáJ?¥Õ/uçÓ ½x™Ã¼øêçkhÚ<ض ³Óž<Ūg±‡ÏLn{[ö;Éê’ü8+¦GŸ×—d±ü’¿t×…òH…úÚßݵÈû}–P¿à€;úh¬ºÂnª½ºš®Î±tÕAÇôW—–EîÇûþnaÕÕõ_ê“SeÙUgÍï~m/KTE®WÔRŸ9ýëתèÄþñ°a» Ð4}IýÕÜ×PåûWÒ,,ëCÕÌg†næ€3ÓU%OžŸÍz;$~±:j-rêé¦Âª+öwqC±¼ÆI~v‡üjE^übYD‰õæËDÄ®¿€$/³ÿþTϱäÌ/-’%“œ|7·4¼ ¸¨v§[±ÒJåJŒžï{Oæ€*Šƒ!;†Ì¤~ßÄÂÇdéŸ)èf)]•ùVU ,• ÆÒÕÏ.ö +ÅÉYï·¸«^„}·7=%ýtÉ&"mѯâ¨6Nt|KuýY½ç“ÚO¸ÞR%“:JCßtáD1ôsá`%ÅȪԑ`Yíg6³ÚíG£¿OLT¿‹¢Dbÿ~¸t=˜ùÓ ýÔ÷¯È߈T—ÇAíòn3U‘÷õ'}88þÊŽ^HÀKmj&±ZÑ9ô©'¯g¦ûòèÅ »4°º)Ýb +b©ùþ"æÐߪX–Ëó¬–wÿX!ÉŽ­°Ôú é¹ÉAŠ¡@ãuy¿Û‚¬8ô—¤·PpúVÛö‹ŸT„ òØúMæôçh¿$Õ™U‡í“­%«ÅÑ5,4ÿ²Þñ…[«röéø ×%ߦ$ìÒ·(˜ú÷×èÎa³¥Ë³k<‡ÜTŸÐ°E ÿLú7ã^-ý=êåSÕ¼àÝÐäžé/U¼¥>j¶$¶ïɾ!ÛAgÐåÕìž®Üôá~qÀhYÄÝ"aàcLÂat÷£”«Ïò%¼_ÔF!yU^¿¾œD†pSÙ⪠+]m*ì:Á^o‚ï°Àñ‹/bOQ´üÇ™}†.ÌqÉãÍö ¦÷\~˜ûmàåëš“Ó?¹ßþus(eŒà"|Î~5õˆÈòÁwx3Ñ9'Â¥xì°¾ú±ã­Ðí—¶d°'£U†UÔõb­Qoê8¦@š…-™¾Ey£ˆ°ŸIµý¢oeGHÇÉ$õ¢EØ=Ñ*ú¼{;þ~ Îí<ƒ¾¿Ø£#链±¢V))˜&üµšžô@‹µí!fÉÓ9ô­`ßKÐ}ƒEz·$잆é +Ú˜¢)ØÜ—íÕ­¼ÈMÚ Ï#ä®tu{õÛ^=ÞTHEéK`G–Fr_Ü$'a7v»²ÈÑÜcºvÕDë¦Aó^¼˜EYtÝÔ²Sž\,ù–Îã”D²Ë‚êŠ,fFé>Yw£øø'1W//Ükd=ô‹®ìßkdH{Çw؇nØîåø_$/°kØýÙÑm%µ›«nÙ[s7Sú,/Ÿ™ ¿„ùmž™Ý–›Ã'á3ÀfTß.ÁäJìöòwNª DÎñ|ö_ÃV©u![®› ÛÊõÔ»ïÐv6`e[±[+™u™­AÚÚr—WúáâÛÎ! ¡RvN ¹*¹¥ÝãEÂ\Ù9ˆ³pœÙ!Ž·ü{)CTšyÈÐäë‹¢™& ÃÖ¯8PCÑ[ì£è-’çÜŽ’#£Ú×–wÔ! ÅŠÝáv»&fÁ¬hiØîŸ¶•L“õ™­¸ýÍ‹ð%î({:qðï>ˆvšoŽÊ~*;× S…$÷ÉŠlÜ]§x|Ÿ»î ò¾'ÜÎÅÈÂ×_¯P˜äã¾íYÿTãnS\—…m½q‹“ÐM_W>½Û⽟Íú!´];‚¦–¥îtJúÞ;J7Ÿ'm¡¶ m»”ÝIlëæ¨lÝÉÁÚ“Ë’I¸,j­-dfXJNå}“4Óö]î9CÙFA]ú<”l©øÀÉô}„CI>*úÕŬè¦n·¡Å§mÈ®õ¶ žÏrŽ›|Uh)¹$Dž/”o‘­Î×%o˜šº^­q„ÕQàÚ~­zÚ²º£±!+gJ8òÒgÅíéÆgïÕž¶ìË‹SƒzIâ§±P.T·3Bµ¢eäH\óá³ gx5ˆÚ™ßÈ5:Ì76µr“”­Œ ¼Üêþk ã¨ë×0¿2Ê2ä ŸÒÞ-ù*} ´éChЖ2n÷SÐÖyägu3PÔvYø¸ñÎév¯úW»rI¬ +5ˆJ‰Ô%ììIJ…õ+=íìÞIˆ­ny³ÔwÉt.Î ÷‰£nãpQÊfqù·cÈåÆù‹3Ë¿X\Û9à•ôwÃÞT¥ØvÙÓ”cjj°˜’¡”œ„'uD©+=D;º‹Sj]…î(:öŸD*_TbßxýÛæ8=©#tÃM¶ÉÕôë‘ի1™ÐÌx6×O1¿oöejêüÌ侕“õ­ÂY<ÎÓÊ„[s™yØ®>‘ÓÒËŠrSdÙ…#*¶´¾±Th À^¢JÔ¶Ÿr‰TÒ¹îÊž¢èþ*ФÉâ4^ êáC‹ôK¨¨Eœ6Ã/v³tµ(þ +‡X’@EE˜ždÝòî.¢ðQ²'’µTƒ¢_©^4a!ÃÉ;1(8©uŠœA·ÊÕb3WßÜ^¶l3‹RpÐ9CéI jB¨6IqT>EœÍLBGpª1€ˆ)F}Á¯uîÄD:*¥-¢obd´†/Qºæ-|árˆ¬¨ÛÇqO¶;,{ÔÍ –5DÖFn€îœdѰà‘(òºß{M9º¸X-ÑOr×`(!6Ô…ì4³>ážÌ¡kb)²!i™¹¢aEç +"ýâˆ*ìÞ»†B†ÙÍI&ùýÐGdäÁèða¢3Ž4h"µº„<]÷ÊU˜mwu± ¬HliÒ‚âw¸ùô÷|õI`6†±&MQØIÝB)q±„âìçD9»Íï$ aP5[—²„× + ‚Y7Â&š¶päçòQÎ5ÍàEäÄa 4Žm +¨;ÉrÁÙÙ"š L‘´„sVïEù:&¤¯ãs€÷=ÉÙ‹ÖgƒBbÔ7ÑŸªQ##»S@îªZ±¨À:a$\õ¶sšx° L£'˜ˆž¢N m°‚Ò½Eõ³sShe‰E}8¾Y4-G{Ñ +ÇóÅÃuºÇ2å×$Ôaƒ3ÒžŠåÐpÉǦô0¸Èòrµá†î/©©‘·NÁS¶DÓ×Ñ+4™¾fÂØõd•(y“삌À<Ä%q:/¯9/§·ùZc|[ålŒBi¹"™üñ{ä +:U óäÈIû+¡¼\.‚ó³5S^.µj/š€Ì"<Þæ̶¨¨ˆŒcÀVÔbO(ÊñxÄ|6üç~ø±Äf+0HÝ™¹îA7ì­„¤TŒ|«Ø&$'>ÈÆ†¥(~’¼#onY4E¤#_lãpÒBÂ);g†äýî0N¬µææ“8ËæS;äÓ—_“Tˆ)ƒ*S‡æ /ÙòR}û5C¯&ÆXwRe{L†”'áq2 «€‡J$K˜2Ê'WKuGB PCÙÒÝ;j™ó¦!èpþB 9 o‰¹Ñ‹XŠÛ»DHÜBp;mdyìj"ap˜ßcæt“qºô,9×­8¸/Þ6dà ·(ÿ{@…¸m)ÛÖ4œYyÂyêPÎÔKœž,ã hŸ_ æC—²kHðr¢Ö¬Ú ¹Äºc¢Pbú¶ í{…§”æ5rbÍWØH²=(4”c‚5•êŽpÇòšÅf¥qÎy|±¼H¨PûãÓß1¸K‘æ+!¦É¦¬ì‡°ƒ¸c€R^®È9ÖªäŠÛµk)ϸ´C#˜Nbµ2XÌÙÇɶÎÝNr†x¥ƒÏ9ÖÉj¯ì ·cßsp{·-“»žCkÙ\| ú*N\šÙ!¡€ 4ï¥.ÀJM~½ÞZ9À¾ãÑYìäAQbަ³¯uxÄ\“л˜ÓHÌU‡£aˆ‚/G=Ú áÀw"à …3Ä¼Ž OàÊy«ÇŸ<ùèððõéçç×Óž¼Z;>iêçœBžØ+”€N‘ͯžZß@ºx +EòMΦ)z¼ƒºIUL2CèŠlã‘V:Rk0 Ý,Ÿ¯ïz +)ÿ¬5$¥E¹[ÐCVP=‡×»±_"¯Œ@;ØlžÝ dT·5 ßòDÓNœç]B~.i§Kj _TÀD6^cH)Y6²È'Ë¡œŠxTºñ$«‘ÀI9<ä&FÐ’)Qvæá'wœØWcUg¹ +ê‚´¶†, *Ñ«d}£ +°au4qœQPrV¨Ï|t#³ÈU}k¾ÕI¦ V!ïÙ0µzJ*žMvòæÓж$Ú†ôió Åh6½…"µ žv žÀ ЋD0Ƭ®Z«š|´çª8i®DbèÑülLÞ$uÞO¿crÍ) šÕyÒ_MyNv„<0‰ð06ƒŽÊçkTñ +ä \@Sã'Ækº&§“Êç£,…©Ðuäì|S¿ø&‰ß\Q*§›ŠW9G¼¬½m9 2FE§´ødée§åfòù<"Ÿú$Oâ j„ó¥ô×ÚySÑ£œ-²{¦¦>ßa6I^î<Ó0Ëó!ñ®ådó0÷„ÚÿÔÛkt† &Í Ok±¦N¾ÍµíV]Ð +O¾ÑM|¢X±,õÙ|¡_£37P0þk[²Õ«ï ñ‚om +8šôLöBÊ:ÁšJÈ* ùUèG—g ¿¾"|&ÊA)ù®|ORß^¬`ƒ œ'Çë«óÃÛa=w,äŠL)vì€V Y“JxŹ‚ÆSš‚h:Ìu,£ˆNp ’gBï¼4 +4ÈWõdš§)5àl²Åò½Ó˜0½SÛS”ÐýµX<„‹ñ-ïx @«‚d–J—Ù¯á_¨ /.»BOÍïP]N]õ³dä­çŒÞkCJO÷vÀ“©´­†6h±÷tlEã0äEé~-ËCÃ}Õ{Åßñ©ŸK061¥èH'»ÛîŠAÏmºÙOð^è@˜& oO÷ü(îûjÙDöºvÈR<…A4Ài‘³9ß§|uºÔp9kvm§ë~³ÁÉH :Ùàé+Bf>Äå¾EBöH˜ %LUß@ܯ +l¹qh¥ ƒV´‚Íi1*¤“㧪¡å®ªl6 u8a¦[2Ê1‰\½8ÂáÁhó(¢èa¶l +2@£Â›¦ÕN”¼Å±EÂQ)µÁÖCøîßKÂK émNd‡žB^áÁÔDžÌ ô§¦ÌÃuÅ!¸Zö?҅ـ¹J§›^RLᩪ“ŽÞ¿JkÌCå$N~j“lÇtÐ+Þa~¨š¼?eÞdæ)6ú¡¢Ô½^Gá¯Ôu+;lÈ_NÃ÷ô^ÒûÀN‡ùô g±Oã°àÛXÆ%B^#ÂÖéD"šs·¨¦Ä^|€|€H‚š¯¶Ö=êlÒs³Ó&J‰p<È@iBJœk ÙH2'&:GabæÆ?G¸7ƒZ,¤–$;gá{8±ÞÔ fd¶= ŸàZ€—‹*Ûcô$42ª&!)É:´³P⊞Ð;9Ì—qÖZK/ÂXøâí ‰?¹þ0…¤¦§"E‡ÁA&2ÁƒO½ :» >ìqAk†`ü´Ædë£ ü  :[Óðm? +Ü’¢zk"=x1‘s*êâaœd¨ðR¢v’]¸JbÔ –«D`¬ý‰ÎògÐã9ÞH÷vÄž &‹”ÄEûíþ<h×£*—<Ê;ò)òºÍ…fËåkh–.k üé†<Ív!e Xˆfž«r‹zlD!ðFG# +¸ríø]í¹Z÷”Ã]i« +‘³´v,'Ž´¯wô‡2{ºÓ†}["­ßMTο[úIi£NYfó Àµ w;KvKdPT½çruñ*góâÎ_¹^GB*SÝî•â5'ùðÖ°eÌÈ‚A“ËæÄÜhœÚKú94}?¦-P?cïÏÖ¸ä":°É_æ‘õê‘UL Cׂû§¢(cËALéü„uQùlK°)y£|©¦ê^m¿ú ™WPÞjnâ¥vâqà{üò…Bc똿Z-¹tÙÜÄKí”?ZÃmò…f¦pÛ¿J/bÚîdohoj]Ý(ÕpH®¹°ù«ìfÌ)l57ñB{¿:Ü(_ª©ÀnüjÓMg£¹‰—ÚÙ„-·Éjœ‘y«[þ*¸«^671½-­ÞÔ~“<{ñ +mõþùROŸ³›äzú3¹A¾Ð3¬„›ä =ãJ»A¾¡ÇÖ÷Mò¥žáý¹A¾ÔÓßÚ›äK=îpƒ|©§ïE7É7ôô½îùRÏ|.J ôFùrSÛØwŸ-°êâ£ì•ÐO{ˆÉß„S}\‹7ÉEÍÖ’6ñËÍÅ8þî ^êïkô&ùø»[ÚŸÁ{]¤ÃïŽâQÿ¸vo’¿»­½ÿn_¼‹ßíâ…þaMß$_üî¦vûÝaQ¿;ˆú‡µ~“|üÝ-íö»Ãbw/õ÷wà&ùø»[ÚŸYDÚ}{w6~ÈW‰cQ2ÃçN±¾›Úu—/F×úFùrÔ[úû™Å˜“qO7壪ñÝ»I>vi‡þþÓýõ'|øÊbÂGù ÛÁòÍ ï/ËbÇå‹g=ì 7ÉÏz[ÿ;næ²äÌgœ;`°s8qB$äjŸÌæCʺsšö•r§|Þ–oé¶p²Ü;NCmv1TÂŽxßû)ÆÙ!ö‡´jš &Wž+!QÍ%² A +NV&b-SlÊ+>€` اónù‘$oIø«¤™ˆÏ]/é¡–,4R&š“%b¤(ŸÄiÚ%ý„>4øý‰×Eè|…r¯%U7ÎÄŠ"'” +%œÈ0SBT(€±*‘5 Ém¶›&I±&Ï¢WP#ÞHæÇ<¥Ö@Hµ´Â+‚¬ëqÖðÉ}c4UÉGèç]sq84LæšÔ…ïI$<@û˜Š.Œœ1kx£ÔãKox:-AáäÍ1¸èÜ#p~1 ((©®›JT;-kª½§If¢ŒYéDS4;Ë{a"‹AG’ šUU¨Ïˆ²ÎÇDO߃:4Ñiþ“æ%Mv*U²팦\h9™ £Lþ0 ³URÁP'Ü„¼i v‚W|6SÅ¢1¥×‰ãº+Ú5K½vËHjB¤=)êN„eÒˆÌë‚jCÅ…dk=©q3î„W¹eE²FÙ™SG·Y+(@GH`ªãTžnmA{|Ô=-VZ/±‰Ì‹µhëHÓµj4’²³™æŠùÒÉí®GÆä!.ã‚ìc?WPÛHU^ÑŽaá„ßbð„-$e'FÝ4‰|F¸jQÄ!çX¹IÖ T-™~ÇPfN³Ò!µ”´-L¥/£¨&z0¦e&¯† .Báº0“WÒ¿>è³ à¹OøXýÃDç ˆÓl\å4xÞ¼×EÒ#Íâ1ÃAÈruÒ;XÏQù¹H˜qš3%ª]"BÄ=L3Iè9gD¶#_·„ìÓ4Ì]—+LŸÎ7ì9!@ƒºë!4 E,¶eãîAã@…B…AË"í³c ¡ñ,T¾“A-áL]n[}|I·Õ8—æ—C[‡yXȑ䘩 +Ó‹¼çIùxYÆQ¤†SÀh‚'å\as&ÌmZa°lÜr…UÒ–Ì §)€<ó5iõU/Åü:cdöx#Ôæi¨z™éYO T¡›Âôµiò¨dуZBîD¿ÑöíÒáÝ÷¡Aíö<îŒòÜ÷"Ìä“î;|”[,b*± r:ïuP +t*¼¤Ëa¤ +¦œyxq@ËÖæµÃÙ{¼ÿj%ÀA¨ö™yqº<(;\kÊ¿¹zŒ¤öRÂ\áqì5nÈÃ4Mi«ñl«u¨±°ÀÀaÎpEq8ö†ÆJ”ÔÕ2ù´ßìI•æoÙTò?†-…}6äÊ??±Gó"„ÎÚÅBzj}h84Q›5LD-NDB7¹Ah}Ð{é²q.Æ ¨Pá…0 t£ÜØ&Ôà3ËÙä$ðC:ºÔ=íó€õ¤9ö$ŒÓ¤ËwŠaCä®i]èrÛ;é`©8²œLRLØÌQmÌ‹A…mê¼lÔGäj±µœ­‹X{®«à4£Š w?Z$…n£±ä‰°Úžæß…Q0 ]Þª9h%¥‚'²xê¹ÍUSK…‹xåØ/ +¿ð §à]ëÛËd):ì õØ^¬1q`{ñiKĬöý.ç›ÿ¦ÒaÏÚØàÞñ g^M±Óm¹â´ùñy¬wÍiæmû' í‰Ì?U¶ Ýõ†Ú.ìfâR®e2—jÁϹè MCïðиmP»1ûžAìÈ«x‰së›nS jQC– Õ#׌‚Ïëb¯›ƒë™—Ù„Æ +Åak +[ÂÐCJ£Øª°õ½Ý Z‚ ¾š…GŽxŒb‰[…Õ…ÕVhE$" +S ¡äì6Û6ÛöL©§‹jÛîï~½1®sÃÀFá0 £‰Æ$ ˜Å<™0à¤Ê‘ܼašÙ„ÃF«Šƒ@νȻá34î†^“‹ÐRX(À4tyS·W^f¾™ X…\j‹åtGÇEHI鸬®6óC ÛBÚ0‘&‡¿…O5çLš02¸ïUh«IEy§|w`8‹ƒx±´¶–“ÇÕ×£ÖiòˆóÊä¤BëCÐ+é¢1@Þ‚ƒP*4™‚.öê&aÅ5hpãøˆkStÛ ”‘’äÊ:H€kP@í¾·¨Pû0!Ú66ž¬Z]À%f)ä|TÓÐåàtÔ.¶¬ýí >õd„ØwÊ.× ûÀìæ¯~Ò× Ú3ÑLõ±1E-CÙP; +¹¶¸»µjA,û BëCì.ŒÞ¸mP»1{ADsf1]&v:……úÜçÅ)4Êí*æn§PN€á¢õbÇ…5®v° jGáp +-äv\tµ¥,½eq +õ/÷¡™Ú­yØó"@¨·¸ñÓŸš¼˜78eTà' +—¬ +tÊ¥o;®Kqsµ“Ñ–¦¬¬ìsRöÕ…ùæ¡¡Ë9U[-êXëåA¨ó:iµåÆ!t]Ç` Ö«æD¼ßn,Å 6ÔvÞ²ÍcÖØ €M m!æa!ç<,F\Ÿ«¿Õ<‚–†ya1ž±z`4œñ}g¹É!Lä‡>z\‡ÆÊ1>x?¡Ò¡›†.ÏY79â—Âf>-l`xgÊϧ} !¢N…3s •îRØñ¿ ¹Ómkž ±{ QÒ£Œnô¦Ù£Ì¡ù­Æ)Âñ‚R…œ¨›zYÏa51c¦ÃÒ›¢j­Zz’Д9äAhïDËЀƥ)çÿœËB.lº\qòVuGQVY³Z¤Èš½ØU!G†ïà·]8-HLö–0ð!‘­{?6¦„¬jéywŠrÂ…ñŸ³hŒ\‚…Z¼—›}ÀI±hŒ<´>²Q6ÎÂ(WX4 õpvÊOÏ9Y U/|kcÀÚr– @B5"]¯Ë˜í†®BíB±3{hLlŸH(Ôtߥ°Cå“óI­föN@ÕñÈÒà¹ÏÓ> ²š¦^hoêö2YÔv)tnÈ÷êræ¥×!«·x9¥6 U¸øÁ·š¶ÃNšúUŸ¼)^ÕöŠâãz" :Ù®;´ÿU'ïÛ ì'©wu£1Y9HDÌ`!ä®Á$‚u–ø½Bòlž<Žø’'å¦t{f*xDý͆—sº†{‹ +ûa® j‹ÆÞ'uø(ÂŽpåN¸—j[ÖÆþöÎGPŸz'ÛÓíGb×RŽ<5,n,WWm„ãèØ4) ³ µ¦ Ëᣴ:«¾3ô@…ÝÀ¬xo­ñ8^S»5 ßÂù#¶ õ8õ;PÒÚ%&×U&¾Òý•œk4?;ô|+Ò °l’+XˆíK)¤•{Öç(Ìq´ý»|«ô*å“¢N%¸! Â~ ,{lLHˆ¨«}Gv‰² @ì[†àh—µšõR-ǶzP$šµlZ%š5l޳0Ê'ãï%í–e¤Óa×ôñD7ŽA#!ÇÖ ÁÙÉX– a?‚4]xh\”œ„–ªÛESê— .O€u³ReÓ–æ,¸ +(›÷Ä~ ÊÈh%9Ü¿n"ÞflraÇ3/äAéfijÄò ûI¿Úi±xû$¨ìecÈÓ¦ØÙ¼ ²IXú%¨¯¦ÔýDtCtJ[<ß§8íИܲq 5ý\°rÄ]È\º]gr.¨€·*«p84›Š OŸÓRPÙ|ìDºÑ³®h»¿î.iŒòˆe«±¨uÑ/›ÂÖòp†AÎ)ÆèÔ.6­nsŸ9µötû‘TuSo=V|Ñü`¦²°úþH(æÊVã(HëQmJúÊ4±vüQkHû² yĹý6µ›³p¨Gß›XôfqVK£âôº…Üh–úº³ç±+úò-ý»IèîŸ&›-ƒlDD°\q–[äZTš^eˆª{rDD°õY"‚„€J"b)ôCšì(Giú9ˆ‚¾B«å@r¤É.#MÖ@,Ô4ÙÁE/4«qh\,MvP[,MvÙ‡bi²‹ÆÈ|†6 +Çy劉`¡æf–^·£Xšìˆ‰6£¹j˜ð1ŠŽ‰`’$„.#õ˜ˆ¥¬c"–r½ƒ³VM“5L„Œ <;&B¦¡ŽðM6í±vLÄ(7LϦÉ̦Ñ$tLÉ‘&»hŒ4YÃDðÂÑ4Ù1.(ÃDÐêƒëÏ`¼x¨ò&› ©¿hŒÌWÃDŒÂ±”;¤ÉfK“5L 5MvÄD°\cx†‰`µš&k0‡åã‡4Ùl¹'Cãd™¯†‰X +ó&;Ê+ÒdGµÃ¾µ±É½ãQ8Îýˆ‰XÊÒd¦Ãx£±=´c"xù)o4.–ù:¨…±”7ä³vµsû0b"Æ/÷¡™Ú­yØï>Æ¥k2ÀF=M–äóà Wa¡.O2ÈzÒd¥(ŽÃ&ª*&£bI+¼Hå–MJ.X1,ï4iÍš†Ùlv[Á²—;ï\ÒäüjZš,ËSÛnÜìí4µä×™òvoŽQ “ïÜSÝŽó°#Q–L0#D¢,í%HÊeI^Ò Ç^þ=Ë}ÍÆ/’‰²Ù‡Ec¤¤ž(; +ÇDÙQn‰²ÙØvRO”¥Í`Ù1Q–çA5X¢,yC@f‡DÙ.‹‹DÙQ^†ÝÓà0–(›ÇL87NN—¡q2†ËØÙè©ßÝeÇ‘(ËK2"_ØÊ©'óKÆábÉ/\ƒ†¡ñl{£â—\ +{¢ìR®A,y±@7¢‰²ü[úܸâðÖDY*!!÷u¹ÁôDY®×–±ÁXã'ÃÆ·Dý±”k¢ìRé°kmlqï| +õ™OC¢ìRŽ‚FS2¤dÅéAÛÚeyµH!‡±1© ›1µ£pàSYÈ5£u©Vs_—}色Ëûеó°ï)TŽ9¢zùkFó˜Xe¥ÂÆDñ?*èìI¶L©ÚJÙ4¸ˆ²-®4Ä-aO[Êgó. æ³R1rÉXåÅ΋’ÅÄsËÆˆ½g¡Ž!FÉY™ZÅläo6¦úSØPÛàUÜèC§=_4V·Ó8´Q8ÎÃ(·Ý›òf’2RE#ø~™¯ç)4ÄP*Ë!„-iW,bÀ(Xh}gò¢1¨Ù( -å !½ò㵟öy€†y ™‚Ö‰]} ÃDšX™Õ„?¼LZ¨ÓXÜ:“¡ÔN÷a«ñ4Ù‘—ÊI‚Ö!ÉåqkAÅ‘מØ9zçÅëpÞ±Ð5Ò1} +ºÛL¶¦»ŒK‰˜‚AÞª)hf"T+Û:' 6d~$²Í«å=ÊÞíŠ{" ûÕ¸ZC¿è~¸)ìÃK¹3wµã®µÜàÞùªC6&‡VO·åÙTÞk³'R +úÌB{"­n4%:Œà6”ŽÂžÁ=ʳTJ•N‚þûyÈ!;»hÜÓ~¥s°gPªŽ6$;5¹²0'ç%¡T—õÀ Þƒ$pžš† £**\¨Ž¦{Ö”ÿ…ÚChìüèìç4­=ƒ ›„567UC÷| Éw‚#\‹Ç²°_ÙÂNìò¢mÈHF´Â§³Ù0 /wç‹lŽÓ0ʹ<¶ +ódïj6 2eøþa£Ø¸—@ho»ÆIhô›,Ô>Pº æÁÓ›«Õ^Ô…L ` ï,Q¤Öˆ4ÀîÂCC¦AiCºÛ< ¸Á(o ¥ûÛ¥ágÂ!£e”×k¥‡™À‰Zµ"Ÿ÷¨²Õ·ÜˆýœN34?]·øp˜£r³³!$³7÷÷±iv`"Ò{!Lv/åYóâˆØ©R¥’ç_rÀ³•bÁA1Ã?­`ÅÔ¼‹ §·ø û¦°ÕØ©Ÿ•‰SÞ&áÞ7 ]îÆ ­‹íjco{×pÔ0ïI̯Óíç +dzv u~Åðjº`#t†´á¤®·§ lSÛ…i0 —rã@îjÓ# ]H#«qïno:Ž×tnM¾€ˆlÈOzÆÄ<ÖÑ r„±Aq·Þ%Ÿó€¡Â*M=û!£lVM¨¾¦ÕÅ¥Ã7\©£A³…ÍTØãðSkç·?½8\ü \ü)ÉÞ(Ó…Òì[ÜÕƒê1†¡qkƒ l¦ ×ņa,Æ¥œ:ÂöæŠõÇ1Pµ˜A®BKoG¢ 1jæcÃղј.¡8ü8at)ŒrT›†.¯€µSýã%:  ™6ë£h@°§ŠÚ¸ƒš'j)dúkëB—s½3ãôû=KµnTITQ ZEÞ8­µ¥>Pž©;Y-šq9ű,‚7&åÄd°ˆ¥>L Xa?—­ñH bì…0Œ°.ŽrQ“—*T•7Œu'x‡×Øam%²…Ø_îñZboQá,‰n«±/gž£° ².7âQíbËÚØßÞѧ> Òÿtû‘NŸ¢¥Xð\‰FŸtÀ!ÏB[XÁ-§b®A-„Ú‡¾4MzöAm²Œ½¡i$æ:<4‡ì;PccdFwS±t-ÞV>\}ñ‡ù?>ú•›¾üøìèùÛÓç'…\àr$Çä·¬)8$4¢Ü¤amÊ’n”,•ÝFã0[ü´‰“Ã9…?Ž©Iʧš§ô$Sý— ®Ѭ–æÂH|uä9„\«$‰0Ê™ÞÈ_T Ao}óÈç'`¤@ó¼z6 ©¦Ád•‚\G[AI2.[(Ζ`¨ܤ<}½°åyJa?rn(‘0eyfÔï¬JM§Â ŶáF‰žlZ4ŠÞDù30‹ö©+…âL¤J~ɶ*_)µ£ ¹æZÑ/¢T…F¥>}î•q`ó“t»h6 +€ñL³¡@Å–@¡BË«J†EK¿Ó ûûèôhod”+»Q©EJµQ‹DÏ4éc¢oR¾“ +çá‰(>‰J®MX˜¹q8”˜UÁ6 +C· +ò"™h-hm.Z—n²Ê +’qFÂè;W-Æ@òQŒƒ#w,kÎaÆ‚ª× +xm~HpS>¦ Jªüé!—mœ/c +5>wº²½_&󼘣ÆLžK øøIÜò\åx¾Í²Öq¥ ­FÞl‰“œKHñ ÞcGØØp̳£ÐºÏBGQÝ2ôaªª¡äIG¹ÇÍÂj5ChhQ`ÜÄej @GÔ™]«ïü¤s35Å^P¶•E‰×° $å%²NÜy¶oÍú[`Rç Ýù[wØk镚‚R^{B-ðÁˆH7"þ"Ÿƒ¾¢ ÌÂÙžpXìŸå´=hh÷ß=ƒÀjrã•ïˆtIÞ2ßp<Íjƒ¾ežhH« +k¶Èú©º­x­äK#åt±MyGf9W†%’#Gt%ÒèhÊÞ˜f/ÒHƒà!m*Tm‰¤çnÏ88I¾’'$7VRËÉ´ü8ZB³«õér*©Ï³a±\ M2г¶Å#¦AûPtôM˜Äí+o…ÄœI+¿àòVžÓs”“_ÔÜ;àT/ÕºÕuz1ÞÙ°L›àb(¬þ¨–Ø0ý‹5a˜dæM›ì,œ"QPúäû*e o(M3EŠ6.pìÈ‘Í-»wjrVVÝI,S„^ÞŠÒ-÷‰j-ñâ+äË®U9âË$Ü›"·©u²’ 11ø³Lâh5óúNPlÏ8iœÝ[jÕ‰£•ƒï¹J uÀV¡ï˜å O‚ËX‰-@jsB 1¦Q“áÆ±\Ydu*óTPËP°¢·1ý)q»uR˜† +47co0?Jž1qõ6¡v-^|Ó‡ˆ3q*/`™©ÂÕà-PO¡–È9†Pk8Ï™åêQ`ÏòÄóXbwçyªR]¾ÖAC‘£,†ËŸ#ôW VpL‹>hL‚|«Š‘l'&¥®Ã™^`$1¿FÄ‚ê•`}æÌ r•ñSôYPEAЈ@o.|h©PߪjL¡"磀÷2ÝÅEV´´6«rÛðÛn«¡y0UéÙÊALL³2aSч3ÆeœÍbÄbb“É«k75+)¯µ6X.Ôž°Dªä  +* ’AZ'‚ÑT ™ž4³¶:HH~R!Ç ;bAåp¼þN–¨jˆHò¥·'kµyM©’þ&åŽrñ“¯XA¯ªv½,~ęÇ0ùé«'0“c±Ð—Ž·åZr*W*i`[E^Ù3©eê{fîTÎHÕâlg)EP¼Ýn¤ÀHÊM°ADRæuCòÉ1¬é¬“ï:zkg3+˜²î»ÑêOy!ç®ù2––…„]Ò︱¡,:‡RÑMÛhU¬´Ü¨©387{yhž40B»¯‡P÷\Ú [1¢ŒI]Æ,ÏJ]âìžìùÒé›ÎÌT‚e8!œ–GéDCn°#2ݤd•f½hroçólÖ ©J,8É5Q—“R¸LÖ1'~ÆÞ[$9 uýœ˜›4x/Lhô r-+t…ÄDÒrÉYÅ-(ŽÅ[[sr‘P¼Y²HSʈ]B_Žî%ÈíEŸ„šT%¯#tœu!ôš–“î-‘а‚S¯´XšUñ" +MË4#,ª††y$Ó d:CÔ˜œ5ÃêÇŽ“mk KÐg=$úå!Eò:*TLfúXÝôVf±-Ê#«NJÈ:I…dHážcÞÖY˜Â²p,;rývܱCäU™Êª=´ÇJá?JË&ŽÕ@qp§T*x%˜LU®¬äp‘ÌLpÌu:ï¥ L“X ´¦Iy߬ô‡ ùÚŸÃ,×µPé¶ášîÆàyTcX7y£àç\50ÔZoJ^Œh>;*nJóü xû3Y8°ËÖ¦Q ¾…ú B›¢†&Õ·CmŽR´1!…Š5«O`ÂÁè$·/½”iÙ2;ó…Ø‚ÖgI® +`:ƒÆØ]#Wiz+«¤Š“(ö-ÖãªE(#µ‹rš³/J³ËøNµŸR誺ŒB§Ôš`õ´õ–ü¬Œã"ôÆdà½yo)aÒÆ5'l jŸ¬Eî3ÜRÜ Œ´0\)íN>«¼j9n:3$XÞ¢ìè*K“°)ÅìÇ\¤P";ð`Ãf.¹¥6iöú ¼§Ÿ·t–ˆ/§%#ÍÙWÙp¿ŽONq5ó­of¶¸8Û¨r.å,ë^ 2J[•“= "4Õ42Ç(¥¹ÎQC¼¤AÝóP"’PÞ!³\7¸Æ.BUD²\r°'Üäí +L>ßçyídºI VƒŽg¾T•<©×)qp»ÑäIº{"á+Ò } !úEÎü¬Ø2×Çš\æ’¢¬·©"RNa¹Ù°—5ÿÉ‹ZÌÙ‹ó„…0o¤k^À¥¢¹Y[‰‘W[Ù í@y5"$§ÍŽ8H>éÍΞcçôe¡Gì8êA.ðlÈßœeÛg¹§æu#aKÚ7¾OîH+Óšó£ Ø=½•å"kU™š +» ž¯õ¶Ì«zü°"ˆÐkèÕÃÇ,-1³Ý¨#CÂhìDÐóÖ!€N0ŽšaIø0éOåž‹F·Ï)©Ã?;Û/JÊ:ãQwc¾ÐF.›eqÝE»Ãë±&2ؾi+¡†Á®”­Œç1™¦b`زŠò†³Ð,:6:ªv` èì€%û­Õ™èÞI'ºSIµcK‘Ìæ°Æ³d tûÑ6/BŽ' Æ}So‡R¼ffMúòÊ/YZ¢:aQt ¥høT]‹=‹G –“´•@ñZî°Za^¯‡&‘¾ÅµNùš›9Õù¦Š=²yݽAß$,á ++\XpCÞÄbR:H³‘ªFë2†l8Iì”"h0äB/„àX{0£Ÿ)q›ÆàQw„n€D#)A¼Éú x âÓ*Ù}ðBþà­Zº‚– ãU%0=TB¨äQàTy@Ùd“(ëd°P²ÙéK-Ù‚U áyçž/œ3)ÒƒŒfÁæPø·—¶&X½l¯.ö%YõÒ+h“ˆÄEâ¢A’r–7µÉH­"[ˆ·&Ã䎓`kò˜¯AÕ är¿(ì™QŸÚl³“°ôÒzEºIT¢òK®ÝìÏá}Ì‘E†«4¿Ð û‰¸yìšäãï‰/@Ôñú”ÉrݱÃìÀ¼L)˜¦õÕ„”… ¯í.ìG"¹†°x‘£Ò/nóâXe4Tt3-S…úi2&^ÕÇ¥f©<2 +uçÝ¿‚àÊf39Ya ¹û3.¬saË ^S8<³çó×Ó›:lÇ1‚-hê!ÝÓØKÂÜkû•Û‚ÄꎣnUhðZ5œœƒrR³†¾óG@—ðsœŘ=Nýx‹þŠ‹Šày¼‰Ê4Ï›¬Ïlʼ± ]`†>/Èm夨|O@&w¡ûaK±gA_ –‘&q +}{‡¼±à“ +ƒá‰ûFâ»Lï%Ûš<àK¯Â/ÃBù؆!L=¬!ë€qxey¨ëNµyœhoH4Ÿ`NÑ‚*½±þ\ìy±€²ò ÷¯“-SºŒ»]jǼ9åi‹u2»êë´Û¥š„[ +Ñöé"s¦ÆS€p00è´¼ˆ7TŸJ²ËÒ›‰ýX+rð˜r¯³5öIr|Pœüfê~Ì rŒYñTù¬ nL†ªuUà© ?T?h’Ä0Þr:×Ja6CÁ0U‰h‹0èîOøÄlyÚ…/Ú´²­Èj0N +LNVPbé¼í顼zÙs5awCª4: Z±}>×þ̺qFEÎseáªÈÈÖŠiha,ÝÜ„…•ϦÖÝ¡¨Mâ1;E<$ +[«ê¢-‡¦EïÔ/EÍÙILUQ(¾ƒ3QO®™ááÒ€i Ä/÷ —ì¨hˆœùU`# îÁ³^†R4ôdšìNÏÙQñ{ð2¬%(¨È‘ÑC,‚2#æ. 46œÉãq«¢kiÉjP¨uJq15&¢\3dã£+a*:“RMÚRðZÈv$< ¹£ž"¨ØJ:Àwv™wðɱ±ðþë}× ¡ZÞ¼‡†Z‹n¥ñ¶:1FžZ4sªº½=“S_mP€|ÊI¬i$úžüFûDÐó¦8ŘRð´évÊF²¯; ª+H >à-¹ö¶‰_aŸQ…‰[ +Ól,×®Ao·4ÌÖXßҠȦ Î\>–¬t É1Z,p†UÐŒj›ÄCMä£hǤë”Üe}ƒ†…ì$!ÇMÃ\_òB Mèþ²"ÓÜ’çr“+¤¸”(*z +y˜ 9Š4ÈA† +§J#|ÔR¼œ”S4Ø“À¹«Qoèâ-‹vÇ”r8Ü0በ·¡|¢G>9ìpϵ֠¸/®œ`‚pãÓvÌÜ<%; '+_ÕoÉeS‡[HPŠIòB7¤ Ь8"–E ÈÇ9¹!ÏJ0Ž$×—€¶ß¢>jAª¨ MüÒµÀ·W{[…å+$®^9…x2TÂT’ñ ‹ó ÉÐu¬†CõµWDUo§¹G]Þ7dft§;]˜ÄcH°‘^Â¥¯Gâj‘´[6?-˜òò1Û;JŠ?©ûE|ÕLˆ(‹êÌwÅÚ! aŠË âDѸ!&áö$ŒïŨ&›„lè8rH‹´>ÕpеÓ\¶z޵ôlPö)%#—Á´È <;ÅøB"±h„ùia}–°{›ž]òÌò4é9ÄY¥üô=!¶éÙV4£C-SOjìÈr¾jîaÖ“¦,‘–Õ‡&µKªɳauzmRË…@€2Fád»` q8‹Æk2‡XèPñ"v „8IyÊ‹ÒF›Â“¢ùñ>=G¬ºÌ¹Æ]G+{Dð1Æð"r¼ 0Q¥Ð"­‘< .˜üNÖ“@Í8ɰD05>FOXQ=N'‡06Á†âTíÚuV*™'¸ Z:+℈…H?›à |Hw VëóU²ulQT¼™Þ†„X¿ëkš {asîH¨ ¡Öd+CW¤¶<´ƒÛáÕv`yó +‹æ0j*0(ä^° ²"L qÄŸÉ5ˆ_Ì FMPÿk0ŸÅœ8ˆÚjË µKrÉ04øŽâ(¦A¼Å¼ü]GáYãÜÁ}bÚYÕ@…TE)†ò‡ƒ¢g4—db—‚ÆPûy+Ø>©¼Ó:ѾâfJRX_ÀFWÊâ‡g€ hÆÂ—Á:ÀOü“œÎ?5fm*™ƒró…ØR’ +Š‚3rY~޲AXYã.šÎ—D§„y­zOQY³ÓFI¾!nD& @màÿpjc’œ©ï$‚ªYQ® 2Ŭ›¦VœWB—gîè˜Ù5ž¹Ó¼‰:òR–Rç…œkmùah[‡IG¥ Bá3«·û%AvV¥»BÓÞÿšQä!©Í½•gð +¹¢h)I ‚L_$Á KyC=廉û1­š&ê ‡7^ŠLck=;%E`Ë%ÎZeƒg¸,HoKÒÐW¯W˜¬¢Ó+ú«P2‘ñá5ƒ…¼dDµ@€MßF¦Ëû‡‹d€i¿‘\—zXæ€B]Û$ÙF"Tä4¥¤Å³””i¾[»¤^_ +êƒ/“¶AtT+Ý5£Ï·{[zzSJÃ;'¹}E FŸ qÉ:¥WM ½Ö˜ܱœÂáí8q^®^|@}ÊPR£ßK¬N“C°Pdf#½šq¯7.ô/KôqkR.]ŽÞÛú®K‰‚©c¦.g+d# pÀÇÇ$Ù•þ žHIi¥èGßäÉ·Ó¢Ê'Åè;TåH]þ.©E– ÞÆ}O³(¨ˆœZ‰¡AwvE{÷<$²€CWŸ8dâëä8 rE{a)l¢Q:B’ ++0 ÅÈ,ÇeHTïrµßèçêä5mÑÖdD4'!)o†‰?G–ªº±)±/èä’½,áž±..ÉߢQ•Šßâ´Piœ‹Iâ7m sŒƒ}Wl³˜ +(˜o9 N’ú¨± vµ"»é®ÇiÌ š¯b9KÆ2Í‹^Þ¢`GbŽÐ€‹W‹âõÕ|< ®`ÇÏd>Îb/Ñà™,ý³Ž@ë¢iÏfíèkñ‘Ÿjð äû‘O ØÚªÉFì#ï®9À$KŒÃø¹lXòÍz[\½æÌ íÀ|" !Žê)l£!ˆÕæDFuÀJeÞ‰Mºdð"î6'g¯SÊÙVxÐ7 +§Xiš +µŽ oƒY… ¹3 \ˆZæMŒ"Òä:uÊd3!™Ùi=9»éÃùY˜èC.ú-@Æaê7ðM3wË“äa°ƒ½&](–Ç—÷ iô„H¶ë°œ„Ü u¿V¤®ð+ƒl§ ãâûvñj ߧ뿦ü;¹!¿ESuºÉˆ(éV©o‘“»ñ +)”sÍHq2w5&'­ÃkLñä^Í tºÈ:ájóÊF=™8„^ôG=’^Ke8´(<õAh!ˆ5B/q–ÇÕ‡° +ô£|I}.¥jߨ‰£0snÂgÈÙ`ð‚¤°‰æuÅ´Í%¥:]Ód‰@nt]M„ä—XCν ÁÛñ\y­L€]D7¾´Ê0 cˆ¬ŠNð#C$…Êô±âj +µdÀu@žÅ®ž¬eo‡i׈<· ISqe³.^"Y“b Œ e 4¸]•ö†  +¿Ac`‹†îrè*µË&YsàE¯Õ„Ù ¿‹„ž„#×Ad­ÖnîÉP* ›V‡›ù]|ФF¤WOœ£<6=Ó{¢ß8Üp¯FŠiÏŸ{ yŠ 9h“ åráz‚QSîN¶Dm‡ôöÈi¦˜:"§[8KXsA&¹/æXΙLòk!Gš—2M5qæÖ¸˜jÓÆNÆä)äPg×0¡h§D3Ð:_!#ÃÅrÚ„] +M«[¼z¥Ò`wÐH#ù€‘ÿÃ*ónj"!ScF$žv„·!#ôçïÝ„¾cèCC‹‚Ã礚?L>¦8c7:š êª7xo¸´–Í1 \ÇQÔž*@ûZ0Öq„‘&¼µô¤8|8Å^[/õG÷Æ y¿±'âò¹½c¥qi½¾õûñÁÿÍ>øß !åG?ýI6bµ/_Ó?˜&mþ×îuñ³/oZødµA*ö]¬cÏõÑûñî+Dtì·FDÇ~«D˽×ÉϾ|IÿøÑåí<îO—G-i•¹aË‘]‡Ðyó¿(´KG6_0¶¯ô`ÌMàü°õhFáI´875¯Yëæ÷O꓉ÁÒªGR/eHÕ ˆI‡\*štJx_ ?0)k/JmkSÌýV'ëØo}ŠŠýV¨ e¿5гÿÝW©hØkŠŠ½V*TÜs­nû7ŸÏûþŠéФ¼ [/³È}z^œLùrŠ÷ ÙtnÔ)g!õÖÌ0ϰæ¹2a‡„ŽœpåªÁ%¨2ß¼˜Ç{’Éj–s²×£"=ý½ÐùÌœSç#Pû„ûQXm gåÖ¦I +gˆ=V.+”ÒRš”§È/ÍÈ[ìÉ +dw}­V_xø«¹XBF'ˆzÙ«¤‘h¿7-m,±ï{ÑçÖ@èÅé°š,™ÄI½óI*¿4;&rU —Í9íp ;¥m½z¢iÿaÊ7vHkŽ'¥ÙTÀ$oB®Y™Ëƒã&‰‚ü±j.ŠÁ‚-0 tàèß;!Ö‡zÀÁ¸j“ð‹Si’|_`F“À]9š÷¼äI +¼1P…’[dÇó8BUºI+42!‰E<•äÜcà•ˆ&¡ï¢M%÷Òv0eJ.•Š( àkzhºöB[o¡i@ȺX\xûÑ¿µUáAZ]µ'¶*Z,pCr5hAÐ5×ï2Hn`”guC„`$²„8‰_‚¢ðç&ɳ}ÈthA=©yd»òÉb„Õˆ‘}ß &_I&!Ф–)ÍÌC¥>“ÒÄHr‹í*i4¯1ã¸UPŸ®•N•w…á¥{ù²¬2Ø4yãÜÆv ö÷@@9d"ÐŽ(ªJ²J:Ó·×h¢½¢Èv>ÎñI‹kÚ|±æ¸•׌åŠ[D^]ž`åN¢i°WD/qÌ·àŒi¯S6á&àS‡Dl’7[áøÌ;易¡ôpi”¢6"#€Ý†Ï|ãAL ´å±Dà1Ç÷ñÉ–kEPƒ‹jôº?¤Š E„C4 #í1ã\D²×™ IØ—IÁ/q"¡m0Q)B§lD + Ô—sÂÚÉÞw÷šÚzîã’ØÐÓ_~5·Š…÷ Ñ'¹°¹¥æo( +ÔMSl; ^¸vY2¿‰âÅzÑê¤y·\>FÙÌ<Û4Ýõd c°¡.LÙ5ƒ†¤š­. t¿Íq µ pì Œ ¬Öv/”á‹Ó+!S;™¿éŽ;›Û>`OÚxf;Ý» ž|ñÿêím›,C¯ü÷¥Ëøco~O ùݽ(3DÅ~¤¢cÚ hxwâ Ѱu†¨ÐœK%ϰõ, >æÃ!z.Ç¡ä…Vp­(Ÿú¤(Uê컞åë­V•»5Ì“Y¥Èn%\}Bq3”%ÞIÀ!:ö¢à@7fSM¡ ÆNÀDkŸM¬¾¡ +†¡èí˜¬Š–ñ‹Íº¡Uì5á\j¢¸®ƒ,š‚AzÛüÄÞdaðwm’@Ã>t ¢œàòÉ„´.çÀ«r6Ú-&!ÕNžv ÇÒ5A +=~µ‘…F… ØCBÖ¥é‚nÄ@$Å +hCÀ(#¶ˆI bjñÛíGN":š&ÉGðˆª3Olxó券Ÿ âjDÖþÓîû›*ªÌñŸäOLgÜ yÂXv ¤vb©¶aW¢a'Fk'škôKtL¶%£2 æIJ‘ ¡(æ e2øiï‡p,Ò''¬þ)*â‡bŸ9)²ØAÇ|ÓEóÖð“`P‰Ñ°qÛ08›-ÔÜN|ÝN0ž,QâˆDu+"KÍ‹¢ÿ¦l´&ÙEæa®’K(xR0340FPšv1Xaáè±üZÌ]åV­^€f±š”N 퇻 ‰£Ž†æ ½#Ýæóþ÷½¹–[p¾Ž%£Mxiè¹vRÂà߇ÆžÀ»Ó ûÃ@Ç>Ô0Øv÷ ‡Š}èaDÇ~1ýygŠtc’¨Øƒ&FTìG÷¡ŠùcïõýÈb0ÓûÐÅØâ}w¼†ûPÆ`GÙ‡4ÇÓ>´1бq bŸûPÇ@Ç>ä1-íC{È ~º…ŒèØDFtìG#{p"؃9 %Ã#M|’³Jb|Ê^ÊEq‚²¥p–Ù”´ogÍÓ©RH@ðY-´¤»Ô¤BN`tà\M‚2aç¹©Š‹ÛÉH#:öã¤û±ÒˆÊO—+QFч¦õY¯¨`™$JÓ¹6¶¦0 À³uâšXvg!>¾•L´3íhGŽ’aëÈGë•Ëõ´˜Ë&é{8rÙ¸I÷¾:Dî%Ǹl¢ &ÌÕ„ >¡į̈3èxgNÓ±«Î ã]yuï̬3èxgnÓ±»Î c~èØfØÁ'û”ÄûÅ…Ž=Ê⊊} +ãBÃ>¥qEÇ~Åq¡cŸò¸¢cŸ¹Ð°O‰\ÑÑdsE‘\*P™Á0šŸM‡íYŠ©°x˰g6?d~$ ®àCE2kЛx3yÐë1®84/Zº²Èù,Âíj½¬cÏz½Ð±OÅ^ѱOÍ^ôbŸª½èÅ>u{±ê¢H3+ wx]i:™/& J|Îjx²S@ ©i}IGœ ðh²·åá Ië2–d.ú$ù]"̱(t$ð#™=I¦úA4ÉiaOõJsF}Ä$IÙ…ÝÅ‚EGuŠ|âQ Žn›NýuCQ(éZú´ë`?‡|¢#¡]ÎÁ( ¸Ý$Ö }*Å̯; kÈât”ƒàO‚ƒŽê­Èqˆ CÙ¨|l:ö«}Ì:Þ¹ú±|{¯úÇ¢b¯ +È¢b¿È¢c¯*È¢b¯:È¢b¿JÈ¢c¿ZȬãžÕÿˆæ÷®‡lÚ÷¨ˆŒŸÜ§&2fjªÈÊ»×EF'ö¨Œ {ÔFÆÚݧ:2tìS¯ò>’¡cŸÉØØö©’,Û3e£ Î>&ÄÂèÑo2Ç£Y6U?ªHµF|"ô%Ž£ª—o2w±æ :| øfKAz_¢òiV¶ÎEP~6ÑA¶˜>Â#xJÈ6oO…!áYS-xã¶ÃJ™#cȽ8e…è„ÉAqT|Š"€Ñ,køI†·Iß¼’€ÔwT˜6{՘ƹ»G•iÿ­ Î´2AUS…Ô”@%E,¬)ݘPu(냔ë*TfX Ó`nSÍ`#¨ÂmÕÓ¯ƒÛ‰—‰·ê]CÅ>¯MÇ;×¼V;fŸª×P±OÝkX3ûT¾÷«}ýÇÞüžÕ¯ÑÃ}ê_CǰÍrÜ£6˜«ÔuÅXê\ªà¹ÃP¼Æô…ä®Â?‘ž+i7X°S«PœÑßmèa,%Y¢w3ê·dtˆêj¡÷° 4³ö¦ü¼õªr;÷&¡«Â/XŒ p«7t©GSèDXÁ<¨Å†xçN8ºå•¢‚ÒŒ•,M!Ø«vQB…fÑØ+J}÷ëÒT{gkë]°RfD X¥¶9…N´ ^–swap»ä9Çt’[ÄɬCêÈØC4Üϰr“àY¶„SÅ¥m›_Ò €m:ÊÄ•»X.EÇNRÌ]ì™»˜6á@CIt¢PjO媓W ®býOºîS_äm+‚ë4D»¹TeR…Zw’;Â0¨Zjexù˜gƒ‘Ïò["5¥½¤¨ KKÜÙ›¯$^&ÏN„I¥% ³“1ý´JBl‚sÐJ×Q<5]ß%ãúâðPÜÀ [fê(io†<—5¯çÔØœ*’¯¼à; +¿c—ß³ô»éØ£ø;tìSþÝð{€‡Ôææ6˜¸à.„1¡s\5P„¥.¡€5çÚ÷ Æ‚5xÔàA1¬\ôçðYqü± ±’ ¿Åß°øÄ•OÔÚâ‘v7ŠÙCÅ>åì¡c>¼|¢NS +`%Ð@§¡‚Ö]8Œdž%}N=,cË6æ ˜C78V7ÄÿÔê.®g#:e"ca±:¤K8qÚ ±;és-^æ>AÛXBœ +·® œï)/ÿ$Ž=ŠÝÓksNu::Utä±L²zU¨ktêѸ]äÜÐQJÔnµa9‡QýT60äÒÌ›’yS”rè†køEKôh¿å"ÔÌw*=ÄÝ(Àœ" +Qsž¬4gï+vŠ“!!§ærõñ)/‚ÔÍMZ`@P¾x;]b|eá_ú £$”wæ³X…Q¨çò1Eè=„µ.‚å Øò¸Þ®M$b¡ Eƒ>Ã|p>ªh×2¡MÓUäåòZ‡ð^ P¶ÆÐiBñuÔ5¥Ô Ýh̸“нmßÓ Ó¨Ðd„ +¨ŒB¯O»Šd‡\Ö¢­ÄYœmÎXy"*Ûï +sô§ DøU䔣[c0ðc’î‚•û!Î%óÐ1ŸRØI;;Ð6Ÿÿ0–Múÿ +lW€ŽEv—+تm`:N¾”z)„â ÔÒõ<§àf÷R™ÓIT`0i,â à#UëIGç4¶@š1½zU)ë&BIfà³¾•Œ=)Œ‚?QÞâ4ÆÆýФҫÜP¹ó4¦8ø—éÁ*“*™rÿ 1äCªç{¼ {ËUÞ1þ…uhÉ%¾›`ÜcíœÒ Œý°eº=úI«Xâ5Ñ–~#À²HÚŸP†UÛB´|³€=BÃDœšúÂMãSQV"Î Š¨ø¬.º2d9åáåtß0 s©WÚÐÓ>"¸yJA Õ‹V4­Õt$8»h«‚Ž IRûDg4Hî.ï­apï0¼ÉA,5‰˜Õ× "y˜D°ÚU;W‰r ŸToÍ«L¹XÁF=©A‡RÑ'Í^YWªþ¤Ú>E¹ÜY6`‹nÌv=UÔÏ͈õ6iª|‚°Ð¥Â²@ +Åy‚ëb⦀ƒG7•(Ö¢ +é­í_“à© +|BB3 {ícg¿ÆvÅÓ®ÃG+æU"’¡‚P¬&>ÑìH¡4:‹Ç¼J‚Ǧ\“òâ$Ÿ••¥èœâÀ…fä%ÿdŽìb›,•°zóÝQdd%GGoÇ>úáPI%è'àŠâ“FQ)vJäPíVžƒÕÛQßé’Œ%‚Lg‚©,L 9 Tj(­k*ì“¢®„Œz.$l+yÒ}€ ìv6Ò½°Ÿ%÷-@~š¬o[4 +¬‚ùîvñ/L«Ç¿:»^=øèWnZžŸ^œ¿>;Z]½:¸X¯NÏÖ®þ™šý+ýƒþÿÅÿCÿäöëëõåÙ§¯¯OŽÏÖŸœ_>¿¸"н/þ̼zÿôÔ}LÍ÷ ize›&§Ù™L£pº” Q•ò.´›ºtDzbʶX$]Ëf¬5éšòá<5 ¡(ý}ªF¥ìاó#Iª0á@ÔOÕ$ùï)¸@ƒøˆÆÆÅvùNö¶¶»@ n€ø”àäà3MF¦uF‰èŽrñeRƒˆmÒžÝ0™RÑv÷Š{ð¼ÊÓ< WŸ__Ÿ}µzðäÉG‡‡¯O??¿> ÆËôO¿»…@äVÙóyM®žžœ¿>ºÚ\[º®ˆÑ‘Xˆ¿‘+M„XLÄæ¸úÍÕææÕæn\m\a’  &éˆÆjSöÌÿ‚tÔùæ¡l`¡¬äœ§ÿ,AóóQW…]NT Y÷, W3a©xXZ"jK¯æ<ÈODÎ…$tóÔn\ÏY‰›Ï7 'ˆ`ÞùD³÷ªÓ—µ±À©utM…Ûó3kxò‚¹4wvvpº>Z}uypt¼ž·ª?äyoôœ¾ÿôÏ'_Í?;?%úŸ[Q‚ ]KéÜ¡ÌQý€#F!ÛØtÌ_œöïúU¤Ä w×wÓ$®œ'‡´ä&îú½$‘Œ'§ý;ñöï0 o~å+ä¨l³‰zûWýMî'ß|Xœé@üg4¬ùøÕ“'½ÌFTˆŸX§Æ’p±Qæ¡VD!ŒEÛhL}sp²l*:v|ÁOèκEG˜6a~¸ŸžÍVì«EëÙú<ùzõüðòøÅ‹“5ÚŠŽ¿qyx~p2›¬Ÿ¬ç×—»AtìøÖo_ŸÝÞ©O^IWDÇí~u6wý‚ ó›ŠjþëƒË¯ç5óÖÁW¯nïÂf¥‡ç'çÔþ·:–ãïW?\=Ò<¯úåú}ï ™–¼,;^püŸ´ùoùßO§Û»ü®?okX=Ñßi¢¿3ÿ­ûú{ùõþBȯÏÿíeÌó8ÿ­c/¿6ç}•lÖëü/êË{œøþjÛÐ#¾LúÜ{|ßå×gsAÞCøÃ{þÛ~Sv½ÇÔÅåÇkgÞÒaHÛùk+÷x…¿hñ<^ñ4ºoã-º¥k[éÍÝóßk÷hϾ¹oñ»ï7v¨w‡®°„Ì(žož‘5ö‡Çzî¿ÿî'ÕÍÓX¾ûi\‰7w­~÷][žÀ|öÞÜ¿4öK•ˆ;¾i7ßeKjòÙ<Šç×oOÖW?ýÉãÿ8;ÿóÿÙÐ>:#ÏãßÌ]&OÏãçǧ'kûœ]0ð¯¼SŽÇŸÌZͦúêñÏ×/é»ú°J.ÝÕùáùšø¾{’ïì ×äï^Êݽ T/%’g¬°—ì}w©ÞÝ%X9ï«'O__­OÖGcO>š¯‡ozO?U/ú'Ç'óëª_›5¯¤‰ˆåžÿXÛüóî¯=¿>˜_ñÛ¿öäàêøpü©ó³£×Ç×7µçÁ}Fîõ]_žÿxrÇï·áyί?_žÏWÎ#útnúdÞ«V~wµþøÍúìÓ£#vå’‚¡Õ7y0RAJžÆjîúSÄzÿuÅýY-GõŽ`s2d/þôåË«õ5í¨¯>äŽ_y0|øèàøb^²ÎMÖXÿöøúd}÷LzËü×Ùõ5®¾ž §'ǧ,yX :yu}Ë|lìùõåù×ëÛgÃóœ|z©ïìðciØ2;ÐSsíàx›Èž]0aÛ…Žuàw¬·½†_û#—GúÉë¿üåí|õ½úzû‰òg¿|9Ÿ7?QX¦÷~šnÞ˜ôY}~ptLž€›úüwº”…þbvI-©ù_7®_:ƒþWðë÷¶õø«·J3Ô)Òä=ª·­aÿm.â—Ä_É’ˆ;BÛfŸ}«ûÚKâº$˜ÝÑxAr ݸ$ÂßäA÷(ÜÛVÛêô““õÙÑ>¨Ç¬¡?Bêßó²4ÌxWòãøW÷VAy‚ +LN'ð÷ͯáߤ½éßõÆô=¹4>6Ï)êöÉyÑïæŠúFû<Ÿ_ž_¬ž¿:8:ÿóö3>¼ù.4Ü÷9Γâñ __þåÃÅeâüâà™å‹ƒcÁNhóâäµH’‰Ž.¿Æ×ø•qr&Oeü¹7ëËk¨âV‡W—‡7>»Z*½oêäLR߇ó±ßÕíÛàÕáÉå÷{†”÷v„Ìßùø¿×‡¯©7·:N‡Å³z~þòú‡ë@ýn¶ú=\ ï¶‘ÿ5ø…Å…?ñçLŸˆôôÇtþ4lí¢óžuŸ4¾ÓF¶vQw]tµOÈcÞ·ëïq¿üøôÅùÕtOŽÏ~@á¦oé¢ðÚÓ„ö$ž5ýÇ÷yøíåÁÙÕËóËÓíÃ>Z}|pxËÕhPqo {Â5¾«™;WKKë’²/Ö_þ|ýÕåz}µ0Î^Ÿ>=¿8VéCÛwNÏ߬ùåg×ÖZ~èêðàdýìøl½!Ÿÿèüôø/ë ñúåÉ|}øãÒ8$Ý¿ßÖ­¿ÀæÆý»8>ûìüøìzç€èq ƒ5íÜÅ_~ùÉçñGÓ´øpþíõåáZ•n~úËå§ßÔ~w·ïïô¥ŠtJ“ì¼üãû|¯¾§3Ùí8“KºÇ™<ÄíT÷8•Ý;ÊTb.¬˜Šþ¥^_æ“¿'õ_¿Eú~‘ +fÍ/.OÏÏÞ®žžŸœ|µþáØ5?ÞßÛ±ôÝ]-¡J훕“Ÿr6Ñô׉UZ]¼ÿ[åwáâñé½½ÜS+"üݬˆðジςÈ? âÇ-â^+¢üݬˆú,ˆ¿?W3>ú?¯V¿Y/óþm\öx*‰>ql4ÇÕ'4ˆãø}ú ¾Ã1G*ùÃc®·ÙýíŒ9Ù¹Ôn³¿0ÙïpÈ™ê4óí#ß.¨ò{‰µ9ó¿qÌñÛð_Ÿ—ôÞóô^ÆßùÝâ»Üýˆ"Ew?wÛóÎeÏû¯Ê»ð]ñTšøVÃm¼üµ=ðïâyÿø1 ðŸ³üàõÉõŸî™†-«Ïñß· Ów ÄÝœéËyëŸ Yëw§¿vp²¾¾^Ko>{!?@=øÏÏçϯ®/™ÎðOôœ¾¸¢á.Å?ýÉg‡‹¡=øÃ«ãëõBÎä–ó¼Ï÷»e{ +5~ýÓÎI±ñ)ü‚K6TRå.þô£«W–??·!|ÂQ^O‘C +òçÏÈUÒ?Ï œ¤Ô·ª ž\¼><<>;·F»’ÅüúüðÕÁ²]¤J^¼Bíí¬‰W:úzpyµú|}´Õ€?ýüõ‹·6ÈAÜÛËTâƒÏ^Ÿ^|ÍÔø°ö|¾ÔS&¿¤Ÿ½>»zu|6ÎtWy¹^ýq}rrþç±CƒõåñÑùµ}8~öìøš‚ÑÏ/.Ï__¯~q¹^Ÿm¶ÃDüûÁQ*eãÃ_ÓŠÿ÷×'ë mâ¬ÿhòñéúòàähù9ÿ +Z<_,º`mx8òä‰Uf}p¶zròzݛ٠+çÉxúö`S…~ü˃?o}ýQoñÛ?Ï«ëÍ&Ü!—óø›ífÎÚü|½¾XÑ€†Ï·(|r¹¾zµzv0 «fÍÜ8¤‹“õðTúG®¯_½½º^®M|úùÁÕ‹õÜÑa}.¦é×_­Ï®±òŸ07lÿ¼’a…MbðO2[àÄ$vËÆ] ¶œ'¯¶T®.sò4ã;‹~>¿^¯Oæ'M6U·èÛh¾PŧÎ|†}>oÛ/¡q‡®Íö¢ «âù×oïåâÛ«†_Ìïéj>Òèß÷Ó±øÆrzð‹“ó'¼uÉñÅ;vnnAøL·¡­ïlnO‹/›ÐÖ7wíPuC¼÷[_ÝØø¯…Z~×wÿâbp‹¯.ßέ¯ïzy?{ÒÏl;™¿Wͳùp^X%;0 ;\¼Û€Í]÷Ÿü!Û‡üô;Rî,ŽIÕÿE›ÏåÁ‹õÕÿy½^=\ÍŸÌ[Ñåñ¡p¤ýòüõÕZh˜^ÒáûàÙúà%ýû&îMÒäMÚKýÍ[ú¯SýóóÃ×§ó®öóƒë¦Ø„@Ø5, ¾øõ³ßœ­•=ú´ùÀýß§'gs‹‡ôŠå(}ôîoxAq‹¦è©ñóë·øøñG——»»1ÏåÁÑ<‚o£î{ñf>l^̦òšP’?žü0:ò]ÏÇ¿öV‡¯ŽOŽ.×`1ßZÑCÓÙŽžÍ¥×× +”¥Ïþy× þåꀮDôÎ|ÏúŒm£ãôµ«yswü³«/çgwõ¯7´»î¿‡ÇÒ‡²ëñ‡÷åáë«ëóÓö8—ÿyÛJ}÷µqr~ø53iÝ5igçgëêla;ßÚƒËùeý äÎA¾˜­†¹û¡tÌû_ßä}úáï÷Ÿ±i¸zùçï÷4½:9>üÛ:JyDÏÏ__®ŸP°á<¸Íwâîž:®ñm¼p?¬7a÷&ùö£šò#æ.ýŽêíîQ½Z“çéî¡E*=àSøAŽ ƒØ5À?17Çã£j’\ ò‡8>îá½8¿žm´gë—ן^Ï—Ö{,RÄ~PCÜÇë잸¿•£ûÛ=µ¾½a “åB¥n«Ï.×WëË7ëÕo×ÿ}½úøèøúàÅñÉñ5öµœ¨ô"jĵÕÁåõ‹óƒË£•ÐP»Õ¥Y¿w6ýJˆÜ8yªÔwcc?è½³é¨÷ÎN¼è«êNÅ/¶W µã4Ú‹ƒù‘¾üøhu…”V.¨7L/æ~u|u~rp½žU®Ùο½õ×góµ‚Â=_]ž¿¾èmQªÏ­Ìi6å¯/VÏξz}ðÕzõÙù…}!ô”Uêö§¯¯/f•Ÿ\]¯/ÿÂ!ÈÕçë¹c¯‡šk.-¾ôkŠ~Üõ•çp{”muqp±¾œgìôõÉXëmkYã)Ί §à)]?Ú\ÎWç×›¿wpr|µ);e#™ Œ¡^õWæ£_­>z}}nã¶-ë?½>:~}:LÁŸ†Ýk׃¡²×ë³yÄü¦]¯†Té ÕM«—Öò’öáö¼®^œœn3ß9<9¾àú'ëÿžß¯æ®]m,ݯ?úÕg—óÏÏʯþðêøðÕg—ç/OÖÿ±~»©}Ñ–p9s篶Ÿø¢Ùǧ/ÖG÷TùÙÏ?!­óXì67î\JL®®ƒÅaÝé<Ósø_¯HåêÙúÍúdÇ{¶Kñõ¼û™µi/À¢ËÏ_¿˜Ÿß'çg×WŸÓÂÝ1Ä åØ[Ï߬//ÈÞ·åÇ#.ccõoá6îþ{Ãã~<><}„œ ùÖâÙÝÐôðô-^¾²Ç¶—G—WćÕ5Ê|m5Ã\\]}xs?¹ål¼8±-WÿûâÑáù%>Ë*¸Eco:>×tCÓùøØØÐxãÜÕôr«éα_ÈÈï÷Üj^P ‡={³í«ƒ£õåú'îß«Û[n½Ñ74<[u@) ·´zyvýèèäâòåy_ßyç¾:ýúÑéÁå×Wç/_>º>¿¸ã“õËaD7´ž×Ïúh©ú—ª·ç€óYöâàòÖ¹§†—ºç®¶óq}LÁ7mGÈ€›z{´~IÛÔxay0<¿;;>œÍ¾]o)í¿Î_\“Á7øŠ¼Ø´…ßÕÿå»s¦/ÑÞwrpñèÍ}¾ÚÞ‡7›2Ɇi¼³!4¦];ßÜêâüêøŽ'FÍæGpaDó±Znjx~IÅïZ‡'—ì`x!`Ž[c÷›íœÛâüб΃«Ç×§›æãζçwýì¸zãï™gã+zƒ 7l¿ãy°Íupvv~ÛºîõÙáíן[~f6™†Ç}ƒQu~qôú®Wwê8<¿enÈ <9ÆûXvs“åMëFÓiÞ-Ïîhôâ˜,u˜t7XjËëÉN»êj¾s\ß2.±½†Ç~ƒg±ÎïÑ~\Â7[H—ç·3]ã'‡œX[Vö:¯ ‰~ó¹}=ß0Íá²óÍaKáðìê¶aJ£‹“÷·Mÿ_ÝÃÚ™½ºíçæÿþ¯3MÝ/Žì¹ºû¨ÍÌgk®Ðw»å8itú7Óy·8³»±ÝØ…›ŽÄÅô_ÍŸI0çÐrE÷æ]¦{Þ¡ibé@™÷ë;Vîåü:_^­Ï¹úòÍkš^}}|1|g·ß³Ù䢊Îg_­wŽòßÏ_zoãèRr«?{®>¬Ç¿gÒ“IÒúSõ‡<_8Z¶Û=%wÓSu7}¾p7ÝÇIF*îëó«~uïQpã»ÁÍök¸mnôyžwÐêøŒuté°Æ£ÓUçç( +pv¤nØ~ +ûw‰H©~$‹}úw|K~ì_[ö‘ì]œn\b¿\3›‹öÓM‡™ÛX[ ¦›Áð3)—ë¨Éœµê¶\=ïÎÞÇOޱU|ôüé¯~UÓÏ×´ò§|pöOçéú~öèƒ?þÏÿ>þç‹ÿñoù÷¿ûÓïÛ§¿ò¿þñÙÇ¿øÝÿøâÕ¿}ð³;û§û—Oÿí:½þ—'Ÿþ…¿ò—ù|ðáÿ÷ó>ø§ÿû>øàÁ¿ÿìÒ>Òÿ}0ÿïÿ§êº¶”…ºä³(ŠEPPÁ’s‚@cÎùæúÁofÍš¹ènÑnª8ì³wÕæ@CÔ`µ¿/€wñ­<Ÿ¿L-^U'¿OžžoùlJÕãïÕó¸xÖ‹¯ôóÛLþÿæªxµýïÍþpq(~¹¥›x{ûÛ,>G—ÿÝ,þÖ9Dÿ6 ÃÃbg‡¯Tü9´øÇíÍјªö@ˆÖZ4_Ô\n±ý6Û¯ » ÿ®Š‚OÒþŸ£*vóŽñ?Üb·šü§¿ì?lî enÌN®ˆÄyCj˜?öÝ4Ã]üÚí ¢VŸÅl5¡íZ רb0jK¶ ƒ ]¸ÿ” û…þ×Cø~þÆiáRýÆ¿Œ*\ 5r?¬]åC¸ŒñÊrèTË3 ‘Xg½\×·q(dŸÕfàÕñX›&¼¿ÕÒêDHÒ …Þ3|wjd×&ÿ¸Q_ÌïÍͽjÛ_w/¸WÀ¬7û…·¡ ÖÞ¼ ^ßêÛ‰°kõÚ³ÝJ¹ôö„#û“]Ú8A°eì89Z×NõO'áiµ°ó OÎÛ¥j\¦ëV|¹ðBre¤yp}ݺÀM¥S¡€¹×ðÃßÝ5ìçž–Êh‹–Ÿ½Å6&*¿º„ü}Ã{×üMЬÜY, QÂ_À©«}*Æ©}ªöf¿™Íß d5—ýZ6LFõ™É­ ˜ú›½È ïË]šÃçãÙ¼=7;HWçn«“§³Ö¶ÕiµÙ8}Á ÄïàXeÉ–ZuÞvÃ(âaÇ øÀ¡ç¹Öï*›å°ëÀ¼·­á3Œ£GS¼Ø‹_jJ¾u½O 6Ùøó¿ƒÈ\ †­K ?v®ÞGÿ# KÈ'­MG“®Æ£ Œo®Õ™›ÞdÚ}Õéiê%3%]<ç…ç;·BQÂŒ¦é†0ÿòKºóueJbüK`‡ùîÆÞBgÍi·7ÏÃÌàó{ìôXn‹%··Ýë•ðºKÇ‚ÈB+òÐ<Ü•P Úê€âgê‰è[šPûl +½úÙ”õàŒAIS$nLa*7,p6'¬`aí>#Úö±×Ý:‘o~žÂc;ÝÓ'“¼åû¯­ïFÛ œä" ëÖ¶®·æ Ùˆü2Ù¶'<±Ýiìu'$}ßé»Ýý!LÏÌAEÆí¬ã±~›žäÍÕ=ÃDv8oM¸ˆSxu…åµr=àvSütG2˜»“ï÷¡"ÒüÙ™A|7^󵍸ã×çœ9²^ÆKë€Tîf¼ºÇu%$²muü¢:Õ÷v‹ƒî´Ü«õËa©vJC«.®r£>ãÆ_ šôÇ €oœ¡`ˆÈ­Áº +¶.`n·å™ ÁM½íÁÉþ w¦e5è¼Íß]"ˆ9üóQD`ÚèFûúÝÅ>Az¦$=_ÅØ Õ9aç#¢àòz‚ö¡»{ïÿÑÐj@e†4,[ä0h;ÑXÕ‰ûh’Fz¬ºR·5:–™ÎX +b¬€™´haߪcÓm c–kl•Ú±¹@ÿMÏæwV-CÚ.µ:öme§ñ·=ÙÊ¥öý˜‚° +5áN3ŽGAy:{ÈÕж¨<–»A­ß©²Ú#`ß»UЦˆS‡ÊæOò'ÙŸh£¤€é?å=20ĉ?ìpÇæp­²6A¯ê ²´mÒ}ë#¼r5áYóùš™€lm;YÖ(d:t}z©þ]f’tïÍëû’:öç?ŠH—ê¢1-MÚT³¨—·úbéÐ13¬Ýv̉ŸÝYÞ _\Eß¿ +9u¼ó½ÒùÂoÒëA úë?ᕇKQGDS‚l‚—â+0’‡g£!ÿJ'…UiO-ÑÇ…jupXƒ+ÑïF3-¹·¼.UýüN ¡vFÌ +傦»a^V—™ß¬M›¾Øê=ì·P®8f{‰¹X—Ý\òÕ/ ¼ïØZûÎC]Ø;ƒ‚‡ßC¹yY/[½]ZÀ,ó?`1;û×F|/N¹Ä]-J”Ôhšd‰ ¦ìºLfðd; ý©­˜c½è/<‹R„EÝ™Ççê¶1ü ·{¹¶Ø™x6ÜÔ|p§íé/uîÄT9šm}¢Êõs¯þÜ\ª±ì^®OѺþ=žéÍOÑ»Ú*‡š<žøµ~Á¶ö:ƒúzÍMEjÝVc©ÆŠtîïKÌ@Q•JÓÅË*×ÜŸí)ªJ`Ûfæ®.Äå¦Ù–H¶j@uç]•:7ù-ú®|;‘³Õ\íçd(ÚaÞßMRÈ ˆa“Xˆ¸ÉÁÇrÅÜ­÷5Æ«Ê}›íJlw>ûÍ£#ä¦Þ°)±{“ ¿•öéÌ÷“À j¬M8"r'z:û3†sµ;Ñ)1MþÎÍÒb=RR‚} —B¨áÙäê÷J(ÜÐK×”6Sgó«ž"xT:ÆÏzúe÷Šc7“ðÍškóu­-fpgó ×(Ö@×\ý¸Ì–µ!꾈y*$ä„4~²û ä,¼G_uö®¶ñù“-q¸Ä7&;ýy íñMž É¡ €¯å³ÓÆ®¶Æ‚殟ú´°¨ ÞGyákw‰M¬…Góáèäv±JµQ*Bï̾KXÍÖô‘ð“§›è1‰ò’&Áøº‘ÓPÀ¼¸^A5_L²w¡m>î×W·ÎÎwm^×s¡ý©­ösBxæ•# +™j>FŸVYgÂXôî1&ä°,U!Ç-,k÷½ohŒà7ò¶Ìá@Ä+¡l¸nÚ +ó}~RYT¨ ÖöYîÇ«ûUí +ÔðÚŸV_ãË~ŠO!…£ÚÓɮڡe7Ôj>Ùoãˆô^ë*´ßl{Öþ•5Ÿ]«òM?sœŽ'qz˜q²1¶»;q €¥·k—5÷ÈÕŠç÷”!¢«û<ó”æxA˩ۯiý+¾—E¯z–§­1ñ*p&7uµ$Oí'9ꔿ„eV‘ ¥›ÍõÍ}³z¶I²»mÌÝTmmZÅ[rÜ0Ù¬ˆ •äWm¹j\[XÙ,)ŠyÔÙÊæ9Ü@®S$Ùnå\ü¸ÏÇæýP%~ÆštÚ*[éÅ´>³Ò¥ª¿ÆÏškK²AJ¶,ÕäEVU¨Êþ¨rXß’þÚëÃ&×q}ãì¡vǽ"e,ÚcKOübÊ*¡JN„z=¶.g¿xKéý W§Ä9à1¹õì|ãJ²[û>KÑ3@•`ÿÒœo1 EM¾Fã™ë–a>"‰ÛµwྴÚR äad”ÖµºŸÊ’Ô— §.Z—°;ù~¤ÅB©2Ì,jz%¯µ‘!u_H²/k». Êaz*í\(ÿ«0®t$m$š}U/ioÅ»DósV©e4»ìÔ†s©;!6£{0¹ùü¨0Rûzà,1Êêßw]•+Y'ÉÕªŽ¬ŸÉ{#I}·Õü9M«©ý•à?]|°Ê5jŽ´žTeNN×µ€­W »¢.ø›CãqꈕÃ먳_’ +¿ËëéÐçB­jÓ âÉÄSm +O +âTåÇ#9:"ÞKæjíš™ º#žRcøPô°1éf~Ê囹Œ4ñ{-úË2Æ#ÕT•Êß–;Ò«D …‰5~Y ‹|jªt]µ®ªNT´Ý{–Ïô¾Úò­j!®ÚP)›j°vtɘ¸ÚOލro}]r+¨E •¢—ƒ°ºë©B®°öVñqš¶u«¾~9M=DJfšLùcàÎMTKÈk@kµ•¬)ø¢0­@@í1Ò€Œ¦•¿ÂwµNw[³çCk«5&g±iß”Sáã|-®×Á-—û°*óYût§ß;ϧ£>lˆ¼£ñ˜üKæ LNJÚ½R†kR6Ò;¥çžò +‡=ak7ûÂ"˜ ”ÅÉH3ôñð³ËGߦ.gêb^Á¥Û$7~ضƒ*ïÞnŒ”b‹Po¶ßc†îzy“Ü;_ÒX2>WàrP‘›+G²ø ÚŠ´ºi8CªÆŸ8¯iÃÕ³®vg\Y_”2z^䮢4µ‰6—#·³ÄŒ2|X[ث͟”Ë ˆÍ_—Ã$ +Ùïx·ÒÖI=DÏSã¥m¤½4‘Ð,vû7¬Øå\ý¶j‰ú€¡:°!ÐŽ¯yÃ>›åz8ÌœF«ƒæy¥ªpcjáð¡ÝäÕqF“uài܇ÁÕûbÿîô¨|¤ÔF¦®®[2û›Ö«¤á°q^|ûö¶&î¶/½õùmr̶|àT ùÀ=æApU;ñ@ [ˆ|þÓ"Ÿ[[¶^x¼ìt«°þ²r7µV×WÍÞïé-ëhNN_ʪ5üÖáËËl0?\UŒèŽ2¤Í×S„í Gp›îßΑʅ½q®ìnÙëÔKµ~ÓóBŸAéô=ö²ÊU|ùžSdˉ™Ìip¿„1‚Йõˆ;úJÆ5Eb¯NµGŽFm;ÌÔ\ݘð&ë®JÍ¢úÖžÛϹrÍžÓÕü' „Y!%\t{M±;fr,v;àVŒ~EA4ë²ÉžORôn-„“7¸ú© ”eq9”âøç~EàìÏ9‡“>ÂŽm”êSºæ /i›WÓ¼¯Ö¿z3YD>.Ñ{3Ä/´jù!9^³£ßãFü¼¶Å"ÒTÄ1üÏx0·¡Ú/‘¥ºëSî? +×ïÄÆéo6Á·!)äÌèu <ž¹ +O6ÊeîòÙ[–Ú‰A¿ø«Ý'?iPN¦:P·Ys”?ããÓYhÕ«UÒ¿ºß¨>%¬«·qˆÇÙéà`çFÇ©òŠ'/Íê›hÕûh{A;çi^ës0-À§Wïª[ÑÕÕÙ=,cñ•ÞÚuî|ÿº¯19²^õóÖa4C +Iû,Ù»Q3¾óïx¶q/x”ºÕ}[—wÃ1±Òö«™³ä×¹²|Î/ù¨ÙY;¹êé^ò}³FuÌ”ì‚ôÃ(+n‡{{F@| =û2û’:œ^þÊmÉ\IEJ¬;Y×Å\¿sò¢GNÏ-3z­DÌM”àø‘¢ßÑdÌ_e +Å‹Â] “7ªÕŠÇÀɪ–»5­“±—ht8/þʽ¯d+Ïð®Ïîãòª·{%¦¢NDÚN¯ã%–4iýÒcql[Uc_=Ôþ´'µrÊõ Ûûé³?Þ‡ÆëÛ(ª>´)ïùM<“¡˜€t‚¶ã’Õ*ïMPÅjm™Æšø¹ |ÖÆ„ëýf ÝJé)·³’Šv§®Ääžä2`gWÀP€ $äžlrö ‰ß$ì †Ö츘nzÀH­KØKÕèi…·&£v7Ó†7~×|îsO8…2„¹S–·9¸¦|·á……éÕ*Ÿ+î¿î A]*†ÿQuÅÐìyß§voXñ/¶¬Ci`8g™/ÍU|€hñ·Ö÷ðЫ‚jŒ¹…;Õ‚ Ú*˜8Ã@k3 Ú*Åè‰ê^án±úüÁl“¤j­¶JìC²§R3ÿŽ­ksÓÜfúb½õõ/ûò¤‹y?мooÈ(°Ô: ~è;R†·çàî´Ÿ;X³f¬vóÇ›2Ñ!Ì pþÍ›ð¬Œ%x»Ÿè”!ÌTY@þéº.»Z¯¯p“*¹b‡Û]«B +^ÛØÇø\7çÅÁ7=ÜÐ{ë#ßÜùµH¿Å:Þªû>È{ÏeÃrü5ˆT(-fùhz—ñT²Æ=éZ tqgÙ‘1¾%ï\åè-!ʽêŽr`2®þYùý”tIXר¿sÐ_ªâcl}¶­€ =êø² ™Î`ÛÔZÎoÐ,Ëuôø®8cã  þŽè²Õ9œ|óÏwWøtNN¾™p`|b¸÷;¢•\ +Ú‡òÜîÙ}'¨'Ç‘X˵d%ªBÍBs¥ÿÔ"†œµT¦w¦·ùŸw;âG/Nœ£ƒº‹Øi&±Î¬,ÙÎåp¤’¢c/·{›ñw Ì;ß?„äpâüFÞ~û¾;:\P$«r°¼,G¿~š#€Ñ¡ Ó¨dÚV MÿîÚIŽzŸ¼vB€z ¢< 5ÿŒ=ü®B¢(ª0’ß´iàu¥gª¹©ÅzeX»Û £1¶¼yr\NÆ[ˆ˜ËOÙ¯&ù³Í’ {SOPº_x ï…Èß:¤Oµ]oR0©~ +&ÍJ”gP}Têí¸ûgJß©‡fIÄ©ãîÞ-bP®§gsºU ;øþ›7uÎÈ7zG«„Úß'lð¼8¤Žá;W6ÂݬÝtÎ?ý¸ùLJþÙ~«Ç¦Ã>2}/T¹7wö4UÆ`S0©u#.ݰj,œPŨßcz×êtÒàf~õ0C]©ÊïúDZE¹7¤Ø£ft®3>ïépR4³ÂHV>mÖ’Ê¢Ç+kÑ0±¤,ÿtC.ÂøXŸ$ql‡àÄéd'!Ôüß¹QÉ®Üh£ SžH­sVË8A¥Ý!wùÝZÄ;ÇçÔgùÓâÂü›sس,àBçÁê¾ü-I-á»o|EÔýáÎÒ`½pÀÞ¨´‰úãthoÏ ¶ì†O;qhªË7¼Ò€y›×Ki8 ÏcåXÀijw`>‰ûý¡Ñµ†Ô#{~ƹYcÞ÷lpYƒk÷H´>stE²¼,˜¼~'È[&‘½u¥J{>ˆ*ßr%ª– }çû$°xâ¯ñ2ƒq'ògq½#ÞÜ1¸ƒ³çm¢æ¥½¤¾ùËMèæ—?÷ëH¼>]Bj'>*®f"êþ ‘ƒ0ÊQ„xÕ²µf.4af¼ßÖ­`rÑ &ƒÞ:²æïšóæ¡TŧFaé…ñUbÑB.&šˆŒ~vØR´S$/D“bwÑ’šímO¥ -«5Q|haÿq` +S§?î §Ûl´ +;j`AsG&ƒÇÏ,ib}‚Ü\žÈ ž B²‚™k‘oÏý˺š;.ÑЦ6]N´´S€ñ¯I¦RÛé³o }¼@$C˹[)"Pél{–ʱ•§,†Ì/Ò¨še›RbR»8‚ôëe±‰ß’¢´{ÇÖK‚„Ë~:‡ô{Ò›i×fÏåàÇ$ü1Yä + µ¸øšÖ¿lŠã­øÚ˜ ´W]ÞÄø÷Uô{^sƇí¥ÁHD¶•áv *³¡H¨¬Îdæ]å<âð2²ÆÆÔQ$©4Ęuôdàöˆ‘]EéMØüè$‚ Sêæi•è‚É­T0Á-Õ¼y.úÃ%_P/|Ò¼—ãKwޏ&¼{/ym†t›RƒtV× íoÛæ¬"ßè?EA•ú»˜$O[Òy#Lÿ¶¡¥^Ts$uä<»ïo_‘PuÈm|E”ohÙyIÌ…[,½õV™ºüëCK¸ÚžÉQ®µ³Ö%tm·GÑ¥ +Q·¥Ñ½OÚÙWe“õ$tö4ÿ:e¬nÂcx*¾a€´6-ê¢ëö/¯^ÈfÍ׆s~,>1!íN½}ý£Ué%³ Û+-åîš¾G‹9I¡§,öÓÑã»Oé Z+Ÿo1ˆ¤û„ G·ÎS\Ϙ¸Hpž«ò~™CîÕÊ»0õ#(ˆ\ˆþºæS=cÎ=ø›ŠôŠ èíŠ, ¨¥¢$÷Fè>ô6f)$1¸Ÿ]rÒÓø¯Ú°ÄY=Zg ݆£‰]éÓ’G̼ŽRqÅ~À˜¤.Ú5ۨ߹ç}‹¬òý¦ ¶íˆ§­`‘ú_÷’,Ä9!6^Å1ï÷R®p Xœ&îæ#J»'Âoþˆò¥çÍј°*bÈÃÚa¹Ýt‘0›ûÒ7˜•ßÔ©ž®Â½#|Ü€#ÖŸ‡Öe²sñÚpöM±Þ:0նߘ+ÏQIÕ˜àœ¬Þþæï‡€¬šõl,¨¹Ì[é\µù…Ú4?¡âw=…›‹¿f +ÚúT‡‚Í¿"µf‰÷õ}Ó÷$º5VUú†ÞÓüޤšÞ;);éi —[k%Þ÷h 3 F¸õ¡)>&«µÒ0ÌNeŸ…-©¯ Õl(æªÝÆ*¶Ø_²ÉËÄLG£,$Pa¨FÖ£äý-yÉUš ŠëŽee†”¦Çìו³Šš•Z@+ÛÞFðjÉ›Ñ |=S XÅ„¦V›j#äå}ö~HógØUj°IdÅÝU*Óp²RÈ)e)žÖŒûe¡jÏ@U:PÖ¶ëÑä­kYvç_nÎDQM?™9!….@JôÍÓž%¾.S3αÄ;û9uz(ä[,ýz6ÃãcââØ––ýg­Ê/Îa½F«LîaŠ8ä·@ÝìüIÅd_åàk޾§¹¢›Yd¼Ï0T®o9¯ãšÖF6/oUË<KÎÆìq qÆoz^núºãjõŽe]·¢túˆŸ¿àØU’º +å¯âN|fQ«äÑq—j6ñÏ/È•n‹«;]ÉM‰•â*w²“1•¿Oæ«Ô*š“ÑÏâf7%dåu««°ßƃ}™–^Qg4ÿü^ØÞçÉ¿Byg‚ÞïöžK‡’z„µt¶\̸\xUŒôí]l ú|s[²tYÛ¬Ùç9xýÞ`5yÿ–Á ÛùGhŒëw­QŽ ]²VbuXÊÍÊ­‡ÀB‹ÅìÖ}è«v(tO¸ˆN}pÓÜrš:Ô*½ƒüUwX ƒu·M‰ÛÓ ¬n¯·¨Ð8z¤|¤ýïhô/üÊ-ɯrˆuµM{8`GŸk"/«_™Ð?´«…Žó 3Á³~ùp?Uäöm¬ã3…ø>ëâHt@k\å¥Ü¾hÃÛ‰V?Ìc:ùœ¿Ô©ÒåoEŃ€ÁWk¨–ÊOYùÌ sµ¿á_{Tútj„)f¢iSS/M­{„^ŒG<^FIà u¼Tú£WRÑ.šn)7y£•½Ê /ãêJ?Dké§lŒ÷ããRh•ÐŒúu"½=¶bcQ¸SUÑyO˜ì™ÜŽ•õþ±lGI21|8(ó¤­z‹E®ËüŸ^r/³¹Ö`¿:V‡êþ „L]1DÇî}håéÌ{ø|»4uIݲ`“e¹UÿÜt½®M}Ž”Hn˜;­?\’à^æ}OöjO^'eð¹ŸÁT„§sh³£½ni/€‘_ˆøŒwíåÏ{fzúá´üköå»qŽ/¸Q-ù–.–$Š„¡„¿•ø†npoù>®–‚k£<óF'lfªcÕ“s¨g(GßÈÊh >ñå.45Vþ]÷½ ¾Ä{ç¥wÐhQ=¤+ÀÝÓV§‹ ºl'XÄ®f{ÆLÛXƒ—HŠ~Ý´*_^Ô/C‘\35-¯ x㛉ü…Žõ0å×%ª6t¤<›0öé&qNyï*Ue¾¶ªà¦!p4”È’Õg U9¯F|¦ä utj¿.AïÆ¡&#µ¯ñ§Yж¡O{Ó™åmkW­Å}sãCµuçÿªçtQÿêÎÞ°â ëÊZð½jàƒÒ( ¦ÒôžTíáßÕ²„ÍMÍǶ¦\†[ü†õy<£ý%+òñ(í¿5í_._)KL.jvqâ_ûáÖ©B.}¥ÏVûáÜ‹~«ØT kRiÂQåO5}á›ê-º»î­´Ö×°[ÐXÓF§4¸VFÒxö:X·Õ×·›K5öqlj›PÓÚóÄ‹ï;×½ò[2¢;èíT¿`CÕÕøÉã¢' Ò„¿T¬öGÔ_ odä1$lž“X…Ø['ÈâÝÜ@Üj{~ªœß1ò_Ú±°=6PÎ ô% ©Mš%Ãà_ê$õdhEäÏú‹¼Ñ +×Ô©q±û7̲ž'e}Vãwdïù¸51IµQ9@Ý^ô1+ÍÎ@¹¾ä&0ãf-Ã÷‚;’KLýËÅëo\ÈA RÀÌf£%Âw¢úÆZÕùF·ÝG–|÷3k4¨õ UòªæRQ;O¢(öþ¾SGÞ%e4‘M{S{^~Ã2.˜l¹ð;»ª²Ö=4 +0lJ'ªâÝÚ½™µœ=æœpYfÇzÈM»~¼ýʸ‹¨ŽêC.¡0¹K$»ãm~¾‹ƒÅævç°y[27w»änHBçcÉЦÀÜ6½Ö ¾:EÌ næÌ†FJ1±ªyT0É…Ðm·Ë2VÏQ^™¿Bàå`žñ(gO¼ê°¨BáD¥Ý¶Æûùòü¨nò +¡U?® ;5ɪ…¥ë; Ð6æJ›-áùÝ6ê²³¡9¿ïÜ™ÁÊîuΓñoÐl~¼-·~nd²ó¯sÛ éëò.Wê-t©?û°çvb®o¡mÐÜä%§™ÊcŠ7ÏÙ»5‹T +¸áÖ­šã½¢¼º©rªœãÔª®´j1­TRnâš‹e»ŠbÃýGsyúšù!íñ­%ižyÞÅ~PJÿ~L’‚ -$´ô&h!_Ñ\aQ¿³&§Ø, ÜŒ£ÆŸ=ô—øÁß" ÏÁªƒ +ƒ áSª¹òû¢ô”p— åÚÜ8Æ|ZÒÈmp—Ôzë²F s§JDïïà]B&oÙДÆ.óõ”7'L’}Ád~^­BdÊ_rFüEè"—¥™£öä#ÚÊdU^ùIw~î>âùE)ÃÅ‘îAóT1Ÿ•Õ½*oš¡Ù,0*G½ò"µÜüu ÷#ØÖUx¨×PE‚ÍÈëÎ/Zj'>kµG¹îºókh¯è‚ÌtµÂ`¬Í‡çÃÊÜgx –£á${j†TÓR¿c^§ÝÖ‡õ#ågn·us*ËW«­xìî ‡ÇþTÁ{ó·‹Û¿–jÄWûRîמÍJN0Óêû!•’g :‘›WoxKªÙ„É`‡Ày ÓuÁ$žLÆßøzˆ¼ò×lx¿3aìVÚ¯jMs{y›YÙïÆYå÷¬§¹Þ/œôÓùTÖ G+Ñ™ådkˆ)JM ¥“9r?ö9ä]2€t] J‹ŽtØó²Y¤¸Trþ¶¤GseÞ† áÃ/íG±Ô:=ûù¨ þŽ1X‡Ò9Ààä´gïäñ4¸ 2å¢üÒU”ힸäË>—èKðË33æsT–Ûá[Â…±(›dxÍ‚…œ +ðÀã3Ü­à»ÊPÀFÚ¯µl0¥‘ ­0©lÒàct~‰ÅþÈ^ ˜Þ«Ó“7¬”´Û_ŸÜÞŒŽTv@gy÷c éÚ—…øî£° ‘ò(tWA.r{úÇ ËAåð‹´êiç¤2ªÔgÆžÞ)èߤ×+Дü#gþ½ök‹AãÚÆRù&»´¿ßúáÉíÇÈÔæËÀ®j›8\±\×'WÛ­ž_Ñ`Ù!ùü·ò¾ko!Õœ¯í ·ÎÃrÎú_y¢¼¹ è Á¡ë—B¢—ÒäšèêLe@Ë`AŠ8…Åñðæºù@c½&€ËšN6ú¦÷“Í“KÁäñó7™ø>C ÄP=»¯øê¾ßd8óC9»ÐmùÒû%3ª™Œ¯NC( “¶,½.]¹uiAÅG‰—2o#‘#¹7SŸsÕÙÖÊîò½³æx,¿kköåšB˜çÓf{ËÍŒñjÚöÆÙVù‘)RÜé®eè¤þdš|| ÚýË;Ö +ÃDæàîé1 颲ô@&ÛæÖQèS˯žd@Æ>*» g,·v‹_KõôŠó5ûü´ˆ±ßNÛ‹þDpŽJ_%“‡Ž·µ0Wàþ¤Õ?|>5á¶»cõÁîôn\æx~®§°¹µÖúÊ×nYÙY¦úIdEú·¢‹ÇÂV—ÌE0pôRïd©,ªMj,ø8‡㩼PIÄ#9b0ìD.ÿ)L“¹Gö®*ºÎ™r>Äî¼ùÚïÆtUäþJ0„–16k3ýehi“(+¯C1G&Ä蔩;×í],;*‘ZÊSèr ¦¿…ªMh^ßÛýî7®µ׺Å|“ôÁ!Ò¥ãžÐˆ•—g~©MÉ”ú‰ëþ ÏßÂ1Å…†A½)îÁÁÌ(éKwíù‰^|pÐOÛ®Ú”÷sŠÜárï†À8kæ­–•«Áé¯Û}Ž ÎÒB6Ò¼=½+_òèz—9¼Q¤É_£‹¯çka¿Us3úRÓ[ê‰Z˜•d"…~ÀÆ:gK÷ð1v-þ9æøuü7jKPËz= +þö l=’ê’Í#m,sFÀa•[ÏvÈd5yRÀ„lo±—3•Ñ/à {=ipîdsè–Ãë”V †ó—²¿cssÍ_÷g&9f»°çVÔ´Ü»_ÙùpâJóÝá³<–UƒŸ!oÜðS âsNõýó7Õ­~ªt‘'ÅCEj¥ã +°—ìŠGßõLSY 8}ê­Ä{’HtâRݲ­TógzŸþ:9%R^®ËÛ‘½3Årç5ÇÈ& zf;Kì§:EfŸÅûb³ëãÛD4K™d¹+âì%DD­Z¼Gˆ“ûW6QÄ'ôªµSÚ‡$Ü+"k¤e¬*ßÑX¬–úœâ½Ü>M+âXÁ´Á?Õ)íç²øçoË›7Ìõza˜ø>º5zZ,„à6õº¦úVõ¼ã^8OñgvOJvS±Eøåj)êFrVCv°ã§«Zá,epòxþê¾Ý;ãOØ!c®Yª,zŸ@maõ$$>TfÜÅ ±DR£5{Èsï‘uR~ÿÒºÞDº +ŽÙ®õ…òëÒ +mÞ·fä7FûVJ VÄ÷ï_ †ºzV¬G¡×7ñzúÝÅËýËçmÀÇÍóAo 5Ýky‹N~ÊMÔvà¡#ô¥TE†eË5¿¾Ñ¯^ÍìçTÁ"ª…»i5ÿWoìͺ»²¿äÓ:ÔñÇײÎ?vÌ{˜åøÎ9¯ÉPhõ«B…$ª'eÎ2[žÀNÇsßtºú<2žN’@3—º¥›A±cDç=z_ +¸’6.ve® +˜Î,wÜ›BsôÁ²ŸÄlG-—^{þ9NXUÙÛR8+¥¿/ÂýΓsU;‘c7ƒ‡s ¤øY¥ß—SDÙÇzJ7'V0Ή–òvùÙbþ-ÍF¢A÷@ðÙQfèóe€S8iãÂCïw˜–‹Jy.û„°ÈÊb^ì7½ê²öFrûjµ<ÿª2¬ú`‘DÅ¥t@KºÝ_Aæ6Ë®¥Ò3Îo§´ë’HOßò¬VCo‘óš\Ué‘)šr”Ê‚ªROZBL6}ÍQYIÇ–dÔã.|ú¯"~ç””W!m™•²Eö†š´¹U}hëõ&a#/Y¡$¤½>»$ \Ÿü­ùz&¤zÒ5,ñóbó´Z³´+[Š”þd\öLJ踊$ÍZ¸®ÔïðDzÔ!5{êtºº†Æö¾ÿݽ*•³*󵚥?íÊNj…Í¿Dìùlðe…¦49I‹TöºÇ}ݵøMm¶6Œ'N¹úÞŠGhÙêg­)dõ¸º/nWýWùvåP™F–DŸ£0 ÛoÕÐò¶Hñ–qYK_ÿ€õ41Y£Êä,¡{w˜Èû u¸åH‘õ!÷†{†–Ô×M:½M©ÞhQæžîŠ15Þ­Äå³ñdœAë–Gy^äáð×UïÓëSÍKih–so É“X{ë+S‚<&à –/¸¶²–»íh®ì‘†z²õ¤-i-.÷Uù¦Ùž?«¿Xù_Ñ#Grþ«¿›ÇµäFm ¢c"lõ°v‹°L©ó~q*ì5"ÜÒ&ŽP® éTºƒÚŸ8j7bm×Q ÷ícÒ•Ó(õø +gEu\ɦ. µá|kc÷IK,x2ë]m·.½%ýÖ+* Ï–7¸ÛÕ·½UU€Ö•Ee¥Žeê«Ö±Éžþ¬Æ¬âp ‰ˆã ~›)õÓPÈîî[úCû¨ô<^«¯Ä_Êù6V¨ácé]íØFGØ-¥O÷'_á'ûÆè5žŒ5¢‰•äÏH-qܤÕxÊËø´]ö|îôq®Îƒ§í n-™]¨è@FÏø·l–ÈoÁ¥üˆÁsÈ +¬ïv÷HN&{¶ä=iD2é +®úÏ–æÐ‡©åé%ÌWÒJÿXäïÒÚ!eç«”»«ÙHR®™Åq3JV«î³Õ¡Nk³>xCrû‹áaöwùeèåÕ“º* »‘6þÐP€/+¥óÁ&Ô„î¨e»õ:bñ*9½ãF“ oµ-¥l.)ÖŽW©Soë”åË2. +øB˜K*”Ìö5Ôñ/&¯ð×îAíšæmä,cʇîdbªÉÚ“¶¬gø(2˜1Ñ(=™ß †)v2*±Äÿ±yH­ ?1íw²1[æ֪ÌÉèç;öºSe­{Ú'ô ™j|åÇÄêip[,7Gçµ.ŸÉQ®´k·ßÍå^åhSõ=b†q-y&3uÏSÇ[úÌÝWÏZo@ZwÄÇÝşϨ¦õŒÔ‡5§~®ù·¤“®šÛÅ Ëß#–½YÝÝdvö°3³ztþFc=mITzuEßí­ŽêÔ£O³’Ì{z»ÆÐ²j5¿®¾]fÞâVC Hb7Ò™)¢aÕ™¶m¦ßY».,û»'Õ¿SíÛ­Ý §¹z ¤ºø{’“ð÷<é‚Ì´oÄâ7à €d͉t"M,æçî–U­öž¿‡Ë*}v0z³V{ïÓ¶q”MØ€ÔÄ–J¯ìâ<¢Åú¥çë’üÀÃðÜX_5µÇï ˜éZK>³ ª8žšèŽîü¹wºPÁÑb_ñê“ +á~V›™šmV,s…”“þUß¹¥*×t{-˜¢(’sÎ æ³÷¤ûíý|ççc·L—kUÍš5W‘£Q¶ó‘[|P¥>÷ìzÃôÈ…œ³GãÖ®RzE!rÌj¥U[ØaN~N\7/°·IÜ O¢q:•œ#–š£þTôÄÓC5ljÅ6šlnoIÍ ÉÙ²ÖégJ‚ý­ß?‚ßÍ5QŸÏgòÝ.¾‹¾ù´ietpa/{‚Ôê轋ò𤗖ý™ʧ¹ÄÊ2謁½¯Ú¡´Ôv¸Öu¯€É‰·N¡ªÁÁzê@“–„ïêj¨ÎaiMnâ¼Yâ6‰*O6Œž×Ưrå¾`îkÏ~#ÙÖYLÍ´2s¦ÄÂePLëÕrµnG§j…›ÎMò%óž¶ïåøãõª^¤”[þ9´åãºë0 Ôt)󃈴ô¬ÏÑÍ*ÛE¬N7=ÑÜ §®5̼Î'sÀ½÷æc™ +_$î·~ORЫ­Ü­ÆÅfÓ#³§Ó«º}Š›='Ԝ媶‰vP°¥ÁbcrþpX6·Pæ4ì!˜S¬–vµëÖŠêS§ãÇ«‡Xíxîêµl„ H¼PD^›º6ÍuÆ`{Wù¸àèC™b)óÜíúÉ9tÓ[åùå.r|?ŸH –™š6ÛÞ,üÆŠš5àe²ûØ‘Ý<´p|¶ÌGh(”Š*Ãé=2ZT¥Á‘µÚ.ªN×nË 8¾¸v8ÿqx³ƒn’Žùµì<Ø?öë[ ü8ü¹·ÍÊólßæ¿`Œ8ú®v"«—ýGÊ7`õí7i×f HkyÐs¿[AÃ^]\"ù²;‚ÂEe«¤x°ÕD™uê„~Eó9ÙoÐlÈ<•ÓèAv[fOÎoÝŠ:öü•Lï»¶ËJïºûè^eÑâÞ®žÜ3YÃÎ4du¡–`ÉÕéÒRÓkú7¯É’Í]k¬r4â¸g·>ë<“u¨ÂV¥çXûyf-¢wâ¤Bne©à–úá~D»á ÖF}•óòAOíµï™Æ®‰¹7ÕÛ#Ìv«ƒTg^7[Ï;7ÕñÞAû‹Äø2°DÂÃyûy”–g´c BÆl|Æ>Êĵ fL‚´; +fgšÖbã1ŠKö°b•[zn~ѾŸQÍéÝ 'xuX¢îÌØ•uÙ9ŽoÚ(æ¯Ø°qîØx,µdµŽëýG;{?¹uŒç¤°•É>HBZ3 É8ôÊþCsj~~qK ËÜ^] +ÎÅ)ä:Ê«}qI¨Ø°%k:(öÁ—¬ç{]ûI¡<'Ç‹b ÀZ·œ)·NÅB‹[vÝ5ý¸a`BA%ûr*Sõz›ÑœìœÚì«ÜøCR!¦T_ð4¢8÷714.?ðNµ±á,ɇ+õµò[xœyó¹ãaÿÀAþ€‘/¹ ¦iå3SI£Ø i;YDʶzab"ÒÃì€-èÍêÅLa‘7vPnUKHJ·)%/>[~¶ÓŠ£56¦NÝ#^8éi¨Ëà^­ƒå‚u\ù>¡²ùr]~É4ºa~‘̘S¢zs|‰Q –¢ª•övκƒn.DÙyï©ïJ:«§šA(»xé#rÿÀ.®1žðml«–¼ÅGOn¼¯ÝÎ…mÐzmî­ZWßiÎÍV½ÝÃöóÈ”˜«á[ûßšÈfÈZöÌ¢Àx•Jk–˜µá*ÊKód«–§½'Hu­‰µìÞ®.ƸÏ?$€ϧ…ìwOð¯ŠÓ0Il|(_Æ?©ô>ÖjÖ›we˜xlÉîÌVy‘rªê6¾~ðçªh³x•›ßv2»Åg•umZu ŸÎ¶¸kñ UʸÀøY­²/å5sUÚjÚÙ­‰Ëæ}—ÀkésZ´X>K ¦ŒžŒÆ)y¢Òð¦)V<’~‘L­è@ù =MŸå¨I?§VêƒéøÐ×ÓΛgn; îÇAHß+R¥5*§&Ùwïå1`Êó¼\ÐÆÖSÜ}kÚŸ@­í»ù"娏rŽ€ÿF˜¸WqF.|;ÒöË$V&ïÃìIv ìLa‰î¸SË«½F­õ±æ ý™6fì‰ß™ß+OŸÀëà–èŸ +–«&f‰,ž=vnÿ‡äеxùø„–#òAr|nƒ +Ã\ÿ²ßÑ™§.ÛLåK`íÊ’w° ¯Õ™¸fÚí¶†i†æ‰9ì´¼y K>×Äö¦6ÞË‹Žëà¼v¯?m)Õ¹AôÀ,I9¶Ì$—D|ÿò`郮T UzNY¤­¾WYè´}ÈÎ`Æ%nÛY:kÿZk®X Î!Áç°›¹qï4ã¤gX—.Nå`;±åðbË-`3­Y4w¯$ +â²]¼J/ö.2½GÏÝCzQ ß‘ìt•ŒÍi™Ë~Ÿ$’›åÁÝüô÷N’.|Þ;­£æþLŒm䵞òïAlü :Ï ÇýÈû& zèh¼ûØ0û&Æ®Ô{ÁFàU!™{ßKÖ½^p/¿ô7¼Ö3ͦð>ûv¸Æ$3út/ÓGN+ÏÏaqÏõl6ùiüšÂOnÂ#jÕ£Ðçeïå^S‚nO­VŸ| öûëB4Y;ëÒÈO¾¸lô ÛDÖ¿‘ÆMŠŸóÁªaÉÀXcÅR­$8ì’…j}\ð™,|½&«2ñ¨9&vòÌU|ÝÔð[Oø›1@“-N1ã\(Âr_ZX°Y9{¹•˜¾¢ÉÌ®úZU0žSx$Å2jy£•–=΋‘ôáED½J±ÿ¢¤*è,û,èmäç‘%• éD Cy ª;A‰®tl®‰ÎiMx ,Bëñ´±ÔÂÑ%{Ú'#¥TÒ€$¿Pç8¬ë2©*áÇ–ÔÙ \V{ƒƒÜ“0úLwsn‚f"º‘pH…@`÷¡ex¹vOüÊMo;Xý[dq¦DŸü +³"õÞärüªÖqÆ“ ÝE™ …žµ ´£våíc—H„­BiÄ{F.¬z£w‡GÀÅ{ƒ1«AÙ×JeÁªÁ.‚ŠèŠ_­/'·Læ~|So2zµiȯð]×%koN8ôȨ7¤€‰-7:¨‚Ä*¯¶Îeõ€Ë~ˆ&ظV(Gqcì1ü®EÈZ÷>bÃæðËÍGÕ]D(ÝF⹟ÁJ8ÚYQؘ÷žcœJs‘qcm\ðú¤E„êØÄq¯02ÏæG>™îr|OÍ¿£‘¬>±î|Ð{Þ°ƒ"ABTåyÜ©•Ô™ºZ(¯Až §*¸fÏCüÇݽ^µºªSª?¹ë¡{P&·õ(ÍJ%þjZÊbÍ㦅: – u´n§‰í­ñˆ”áuÖ¶ùOÕóçn¢ XâB›í‹ºÍQJ—U÷ßâó‘IªÐöUE\ÍМ7Ë’Ìœ|,<¬/Y»åùÚkÊ›¼Ï+bÿ–Çú|#¯g,8òôYŽÑ1(Ÿg³F=Fø›qX]Á‰!7-ÊuG{Ãt]&:¦åg 5ú²äÑÚ³—se¨-;ù Ýé8P¹Bt–å@瘭*ócM^`˜…c,›qßIÏÚÅ‘ßaÛ3l"å\®ãkûr×½Þ+³ÁɰÖ;%¦¥Få§l¡CxÒ?Ú Wæk)ÂaÌÜw‚®}™Ï)ÎC8ÛYÉ…Ï%iKíÝ‘Ÿ¯™Up5—’vÏAâx¥¤Ä¤*±Ç䳜™Ù®ýׯ$v 2’ª€-É. áèþX¶×Öb#yé¢W;Ï’ºåùåœ Ü½Z¼Iå¸â®‚ÞfÊçCßm¥[A˜éäzðsÏx+‘—êõûä©Lh—¯<‰è„Ð>Ê^‡Š¨ Þ>°CVS DB©4«qR2?£´¬ÅèÌááIÊ>¥;RwiC5gzeì—wO¥h8¨EæSâÙܾš Óµ™êêZqðj‹i7qð¡¯Ûâ™o¾ô£¦Y˜† ÈP²e´iw•ùFvU;£Sì[nݼ![m>åfâ®äÞ„»Z÷À`ÃBpÈn}‹JÐÔ÷ãA®fâ^Ý®Ô;äÂ{rˆeè ‘š‰¼þ­J ¹Ué´Üüñ¡1`8‘{Ta®FÑî,[¶!SíN¤.šÓŒðǨ<~×,.PYÿÆ¡ [Q_ŸKN=TZgÔ Uÿ0úýyàV2ÞjËó*¼SX¨SzæÕ\e;Un$L„íngcv Å£:+^ͪ Oƒ 5WEA…õDÓ噜UÒÊísc:ý›ÄkßXzR®Ì!sk8™!MSÔ) +endstream endobj 78 0 obj<>stream +Rö¼3ÈÛ“hBª§ý¸Ëzf ÉRV×s€=—À¬ò¡­˜–ûªžïvÁpM§§41Š Âj/Ó|‘nj«-Õçí©»±tÍ+Ó4ùP ã{vju…YÑzûv/Ö®xë*}–ÑÿÇ.ÒHŪ5ÒFàšÛM¤,OiÈß8ûéwC9UðOšµ"0£.]övœ( ¹*WƒumnE¢jþ¹`˜¶&“Sˬ+éúF©f Ç¿zVˆ›M“‡î‘Üj*…îøÖöë ÇK{±.ü‡¤•ž´n«¨g"E²ü•x™«Ö&å¼k+Ëpfœ«Ò£/ß÷&/ ¹½1š×1°- ÿð”®Zƒ·¢»Ú ¿Êé„y +<\>NÞw-ã4¡†„òѳJZ¸^†Q)ÞÙ–à6—"7éažkz™îÄɆU}›°54ÆÅÁLšøÄÖ¸HÇå÷Ö[Ú ‰‘«4ÌÞç¤6¤×4Št9(<+Iƒ9KŸÒf¡ ²œ=Æ…eþ­ÊËüÄx¼èkª`??ãÞš#{hؠÞäÕ“Žë`ªÓí&=bëÔ,‚¶÷­FNs’ïæ ®Õ™jž$à?H~•Û\×ð 5ù¦ýúÍÕ»t_÷Þ›I­€±ï9ÃÖ¾ÅGÒƒäbÅ·£¢5Ë^»Â`µ»Y‹jÄ/’ö±“ QJô‡p9K0„ >î05íyÁ>ßÇàïù€wå)ähÝÀH›Œó):¦šßjy,üÕªoÝÀ/‡³Þ:ìÐ1‚nq}Ø­_ݤfÁ)zÒ³²Ghö†RŸº£wu/N…J[ñï&pþü8ˆ30¦U€—Lü©L\$„B×àöì&?&íÃt×ê¾%rëNkb-ÌÆ¼qóGÞ¬wR[±ýÞY€Ê”6B@IÚÃ/ )逸¢Î=#Py¦µÏØ.u/4„´Å‚V¹ò¸•:µ»,\k:ò‹¤~¦Rc»Jvòå'Û–HÃÆ9°>ü«Üþ,Kà;Ë;%)¸4* «ù¶{“¸K‘äl§hH‡4?ò=@ÞÃ8¯ÐÆúbv×Óc©‚~ëâéþ*`FH|ƒ½õ)ðv8kú|ç}1´gxËÄ ÓÜ`\‰%‰¾ÙXt~Ø´:Y×Í!n¾þ8°ŽGù”ãæé1å­pü]œó²428ǘw© ‘T›Ðk»1Lak?±œ‘[½ÓØà¿`ºÇnÑ…ŽLÞ®/Wî8j5ííž>˜sSZz[ýh™þ¦cxõ𨍦 hÁÎS4´õ“ùCb6ì¹9^ÉFRôüúéXè—‚fînS«® wãzmd„—Žˆu £4i±Åë1Yèö ‰?rÜgßoD§Ú¸j%C Í~Õ.»c2p“À^ûûÚ‡G¹Ï±¹¬§m8§ç óCëïg÷ø‡£ç³"`pgóü˜ðy¤ýÙÝχËÛ糧½Eã¶Ó?µ¸l4½ N¥$?ƾP«M¨ÐºjóÐj¤ûï¦á38uÉFñÓʈóê×ɣ߮;=¡¿«´œÅ =Coµj ¡v9ÏÓ¶þ‡¤µ ŒL +0 +ŵ{¸{Þ*œzÃyC|A“¢s&P›Ä‘Ôž~l§Š³Ëù5E?%n¾dÀ(=D¿|‘ÔüZºétѬ*…'ï¸ÃÅSë&¯žü˜o>všêh·FùvùÄö¬@†Hm58ì„‘¨š‘²Y"pOÇu?ŠIM+6·¿‘ªtLRuò»cD~‹•*ÇÀ/öœL¶Zf<57´Þ4æ†=&‡Î„)Þ{:×(êÇ3Ò¶;!>„Æð!‹Ðúv󯬉РþÀ@­¬ÞücÓþVíçoÆ%S×nvÇ"¾ÁNW¬u&:²9{¾9Ëzþ´(DZéAx¿HàÜüâMœ'àÕ"&£êô€-¬Ý>×/;ˆ¹ÝöúÞ°ï”ÚÓÀZr52iË`Ù¼ùõ‡”¼·L5¿¡À<Qã(ºùög€õÏÊ{¼›±`ê¨5–?'÷İZq¹ž?‹ð`ÄúÕ»0=!:ŒÃ:Q"¥ûí®¯`hµ ¢ù;WwÇ~p7´òÔ&§xdËïŸ`ôOêY=cÐ÷,P 2iˆÏŸZëƒΠÔZìx7Ü¿ƒú´íÁ†}„ÊǶ|÷Ô,¡²4„ù¸§ÿ îï¨,vøH‰’Þq@Øþí!RH¢’Ä!ïj;ƒŠ:ö>—](sPu.ÆÈÒp×÷˜Åuìõ›fú’¬ÛN8°Ä+¶‡gm™›"¿W5˜”@Y€¯wψ7p.¦{yvZüÒar –—fÙ,Õ¨ô.7ÔªkôZþñ½ö‘å­©XÑ<,ö*ïD÷T¢¡zŽ-ï?$3+zØ;‹‘Õ´lÔNP5;î3›Ô%>·ð¬fË€{È;ëâêߨ©ç€U›Vö«Wú F:]GÖ«´eBËÜQDIkÏ-`qøXÓDó\Ì^β]ƒ»á•÷[ŒåFZÛcý!™¼"ó dÕƒïø½sYíà õfG±öžԽr°1àêi~´I +Ý’oçsµpÄ(Wèô+Ç £×˜ JÕ­"·+“ñév¹×°ï_±×»¿áø ¥à&4ÅÿAÂNAöŽunzâé0·è-¹¤Ü\Ƥöå=ªñtGÓªW.ÎOJ™Çzõ¼;õà Þ˜Í"^!+Š kMªF +¢ŽZ…'^C£3Ïlp5~VXˆõ6ñˆŒ®Ýù‚1E)…Íóæ©D+éäž“Ç ’½ÕË~ÌX¤ÞZ‹[V:œú\è¯ùvñq¼¥]øqÎPøC2l~3=ºÇñdJ}µ¸*ãnñµB<•8OÃóÖRjB¾>UÆk†té +}‘È¥¶·S3s¼t +º 4ú“öº( ¶Gë ½“Ñ!òýò»5Cº™˜¢ÙajKÕWKUf{ÖTgéíÇ¿e Ó6&‰ëyŒ™Æ]ŒÝ¥`£ÌÕ:ëƒA‡-xW­IEöfÌ#­HÊþ”J÷’l§­6ë`ø¾/Cü‚QOöðÞïEÅÝi݊DzkmƒC-¨Ïèf©“7}œŠ®ýh/ÿrЋ'ŸIG!îR|ôZú9×ÏåK#ÊmÎ>Y›(˜(ŸNM†J°VAÆOFNvñŠJþ³~?‘+}>·SŽë®¤`Фû,ŠX}^šd®A‡3àVM ¥¤‚Y»³Ì/®j*Öf6ZäùYæLZÍÞ‹-ÜÞä­ZM~͵Ö\Ñ›fÃ'Ë‚H€ŸÛ•"@¬õN¤Ðg«z3ê.=1&Z=±\|žVë/Û“^gV`ó9ò‰Ùµ-½é”CjÛlÑÄåæ&È¥yxà‡ïÓOë-[nVÈ Çt!e–S9ç)&½¤zÖ•¥ì[É/ËF ²lÕ5×›ÌçT-ïÕÆ~÷àqÿé4ËÍ)«Î4ëÞì´/»¾ùiª7ú¾Ÿ^o~ÛÍåÅ"G%’(ëÓý +â¬ïõ{(mk[<êñErº)¨v×RõÛºNíÃÃ¥·ï„Ð)bÚï!¤c˜™Eh+ Â+¯,šäun ;欓À®­n\òJti”³Â\Ì­éÎæºšÛ5½ÅJ £eâ¼¼ZŽvý`ÃÞÒ£ +nvæ¦@Ùh–BGl…ÚpþzR(›”ÆŽ^ưt‚éŸ-µ±$=‚a¡Øe®aëD\\7p7æYÙÃ]­Ú·_Ø«Àç®ÅoiÖQÎó’Ø9R{À»ÉËųC##PLiö:ðãφR×Ù¡½o)É›ò냪ÌÎ4 RÈ›ÁMk>âOæm%#/Ü|¢y0ÄÒ]kÃbÒggp%F$Æñ‡«p¯C1•+_o*PfNâ?Ò•ÛhjÍÛB•{—¡âqŽƒ 3ßKJX>ŽW~äÀ]Ao¥W‘ùïø~*¶ß5DLaÎÉw«#Ytåm•/ƒΞ•¦yäÇQvÙOUÏæVò‡ã`Öp€ÈúM:%¶ô³iÛ£tïfRC¦âéaa”ÔxŽÎ¹T,Xv¿J *v¬Q|Œ…MN½#åQÿ˜bd”Æìœ2†ÈL—››{X/DiC΀}íi0—¨¡aw˜h¤âΆ}=8õI>qv4¼ Cm_7‡ÂèÔoÖ÷ð³«uÂWS¤b‚™¼ÚSס°Ïåg§‘Å7½, +X÷Á^âNwdÀ®½ãÌTƒE¯¦|÷d?Æ(õKü³µ{æa¾¯c¸Éö¸\7Èw =oÛÝ­¸ÚlÉב)9›)ãs/c½ÁW³[ÎúÌ(ÏÕlFW]DHÏ| j‘8Jµþ„çô¸:~(¬2X'æiØ‚±è/9ìúš±Ó%=¤²¼ó5½vÅ“9òbõâ±åZ͹䭣voÁ$9ÿãûãòtRþÀ™Q™ LDæ PZ=ŽÓà¶Vù¯}v ¾C\¸z½ü""èœE#òèñ¬œhr(|äöçIoiG0§ýT‘)«²a–ø7O6ìIOöXzƒ<Â^ö>~ ïJ~ë €`ш v8IFò·4ŸÛuÒ›R¼šnø?g¥Û†„‡º" ôþȈgÎk#òZ!wÏ)¨€EÏ`3—;Ûß';»a /W”ÊUN”zÀgJW¬!‘Fë#ÙŽ[@øÚ—"t¤Ó.ºòŒ“¥gÊÅboF\¬t¥•ƒ4BEwœbò‰ Å#P¼ï§a]éE +ßO²$-auׄRœ)ÝÏ”“…ŽåGI£Œ²qö„7Ìõu¾íuPLŸßVôÈIÚ¤±QÅù˜à:—FkЈ‰çrRÈͱ¡ÐSf!p½ÂÓÑ êè§Ã^Êw„Íñd‹µæ2•Ïr)ÂXç4°÷÷ŽAŸRLÔw„ éam¯§Ëp%{ƒ;Š—{ÙSÀY, 5m®MJŸÀ9 !ΛojUú¨6<¶¯b…ØfîîŽò̉æë(êbé¹>ý:UFò—ܳ?ÛQLÇE\@U6/x¨TöÔº”Á}¼@šRwÂûá,¼™B +õâc%Èë)ÏsdVª?O“Ì×ÉßL|ª¡v±$æ È„Ô)5Q?{!Œe§QK +^?'vå-ݤ‡”l{©Ù!-ðúÙ†kª¿Y¤ü¼†Èì¨Î~TaŒ0vg’*g‹+Y•¬.X…VG䇉)È»þöî¾Âp­]NS[ÍéZyÀò€¯1®¥¼åâ‹t‹Õj–’V{Q»/ì/B< fjwœò?$Af³š² Ìgc.šÍ¼Èó‘b(ÕŸ›Ì+ânäβÍþ) l ¾¶Š°«,À¥A ¤žWxfvØCB/Qš‡AWk! Àø¼«Ô›ó²ü’¬æ8¼^j|Ó×eCèb}\!õ¾Z•d§¿xƒ<ßÓÔÕäñK³]“J³YC’#|y0µ Y¨+s`7¿§Û- $8ưv»Ëm祴øÁþ |–az×ýCRÝË¥åL3x-Z:ÕêJÏËdÏ®Lckè*]µ0‹i½K׳Í{ø¦¤kkÍJž3®û«;¹à-w FÞØ•vkú)ç—¶éYÊh'MÚÍÒhSTgé&Ò´7/·ªƒóÄ>.4Z“;÷‡¤œQirê&FiÓ½E\È.${OR,abï Z¼Ä’LžQ0[ž¸·’êJå1Jæ¦&¶O?H¬ƒeæi í m56DÓ·Œä?'úñÓ|â1ùÈd;v1Ãó:k¨EøŽCnõVæF Yæ~w ¶Aµ{¥D·ޏ.Žz¨¬OL-•ùnWôò¤©£ŒSÙ ®jçµ-#öIšy’þ"Égó¬aãS&zUû½ŠðDË5vÞ´v¬ÌU¼Ñ4o¢WJsÝYØjÍÖâ-µó+Æÿê÷åRï}¿*à>-›å"¤SþEó×;,Ûšší4 šÜ…îc’œe¯÷dÔ´xãË9cu’ÕýÆúÇœ»Öp«?Õ”çúþ¦¡~züU½ë­á˜˜?UçÂŽ³»#Ýnt•€‹¬:»–Øÿ”Ûd‚hë´•‹,¿Œ3>¿ªçYº¢Î¨;1 +GMUI¯ËtÍ—p×É|ÓSAÍ|—àj¤m,ûE;;Æ)5TMû<¿óZeë·ê0)e¶„!¬Ý}sý¡ËÊuPh5ž~3ñÜã®ìgçÃß²„¶ú6¡«"7¾2¶Rg*}¢HŠ_güΥʉ)ç» Õmí?ƒ·¥‰ôÊéïIÛüSnÄï`á#(¶Tó.y! +[”Û‡Jú߃ýsÐ÷°ÇžUäÞgÒ˜¼_ßEªlß +Òe‰?$”å{‹lÛ¡íåqh$®@œØK6t޹ÄéÈ|´‰Rg†WY.çAu3î!qÁ{…8׬­2aØi#Ý?°VÊ-­ÛùKÉsJµÃšI´?bDêòøTš7ê…±rã/Ó€2ƒTÿ?Ê-.YïîÇÏó)(á*o&B²'ض Ï3¶6²+tè:¾¢FNØ\l«­ˆ,&&¿Âàñˤäþ¬š·¦—gaÌKŸ“’ù¡³Ùìr?Ã%,.*FSY˜µusÿë•ÝÐ@Vö_#&éQVÁXrâ@™Å*ioŒOGgGß„xRáüói”Ãò°ˆÈPy$~[áYÐŒe&©*+CûUnÕѤÕ7ÐBsaÂ.PeÔ‡¶×Ç•ÂÁ€q.ìKo°ªç¬¤³¹ò¢f:Eí¸¥ ½±°þ ƒÕäÉ•/\+šb™ò6|øóÞ(‘[!¦þZCºˆ5„ötQí½´Ðî|iZ¨ £ÉGYüE°ÌÞƒtÁ˜3(Á4AwäQwªqvÚÿÒ»»Ý bF»P~¯6\·Iˬ¬ðÐØ}ü§—‚få»ðB0{ÏýCQr<ÜnŒê}ÚöËÙ^Ïm%¼ÍÇ›ÀíϦ¤&µfi­“}MÀë¥$3ú–!Úþx2ÔéQ¥Û9sÛÑï°À»UHfP\ß,\WöÓQµ±2nì.ÄNqJ¶~‘”—êÈ;àÉ!©Ê³qÿ[¾†öÂz3ãèäšµr3X½kü·~!ì-e˜¾hÞ»_0ùrQâ—[XtÍC‘‹ê8PtÄ:ÕC>D‹cþ*,xéeWEµ]-­À­p‡„¥<–ä_ý~BÜ]½}`×Gõ",ß8xTTçß‘vkÙÅVjRvC‘‚±ïYÓîèãg[ZzD:ù+Qzæ^YM˜–âï‰våDñV§–\…îÔfFŠ8Ø6,¤úÀôd¬Sa`mö#?÷f§¸Å‘Œ²´I:8ݶ;êâIXÉšgìóf­wÍÚìºÐ°/·2wÅ›S{dE­ìÏ/’Þa˜3„ø8E†ËF×g\7¡;OYþq½îÒ[5¸!Ä›†aºàñ%nŒvÝ{£ÒH6€ããÛ8ß>NN‰svµ.<vP·Ò}ò1åU¾boÂÒl:Íš×^嬒˜ùÈ×ÿ[–RUùöÊ^ó7^Kä|wÓn¾e5aÕmu­¶sª!³8¾µÀ Ç)V.ïÕôM­ù×…9KIc‡RÃ0»‘OÍ£¤‡î©÷¸îfL§QÚùÆ,órä°L?†Ìˆ«Š{N%1Û'š‹/c×u¹> •^·– &\q`”rÿC¢Á)fyò½6ò­\¾û¹oBïI`'ïÓµË|–a½‡Y{UÞåj=wjöL[üOwbÒÏkÔ7´øn8;çJ5ÔòëIàn}Tm#=§ÎL pLþL”^ô|«F `nž¸«ù‡„z½¶’¹íÈÙlFÜz ×õPô=Õ¯ƒ´è,ó]Çä€Ö×H0vèõû"©õÿ!¿ØÙˆÃ•üê¦öšgªo I¿ç¢aÞª³’y ©¬½j¿.µSék¶Ñª-sT³þÈí™tü«Idh$O—˜Žû¨´ÊNÿƒö°7¨·WUÞV•tj/»>C΂Rk¿íŠ­ÊY›ˆÊ÷®þÿ³~ÆåhX†c%zá)]ç˜úΜFéÐÉO„oôéöÙ"‡Iô‡$×™|’Q„ÛœÌ0Ëyr_¹.Âé«ç›“¨av²j­:ðŒ}`7&ÂN³oâ(Á‘ž0¿2ª>n6¸h@˱ØQ}§o|¼m¼xÞ$^?˰’!^ÛVš¦õ¶þúA§OÆâ74êà”„'~Ö¢3‡æ,˜¬Å†ŠUÃB»T‰u‹¨K[Á·¤ì]¿wùxÊ­~ïM2’«`<–:µmŸ6Ûr9¯R!­)Ú³ë%þA{ÿH +Í+ÅÊm#·6’{WüónÆÕ9£`#U±[½<.# ÆÕ|¹Ù>W©žš*oCüøá׳™ä£ÿO¹%OT·¦OÕú'Úô;Ûþå½·¾7‚ †°CÀ5í¾Ã]Ÿ`ZÈ?+Z·{h´TYÿ!y5DZô ñÎÉWÍÕìtÙº!µ²Y3k]1+q}éõ´ªD¢ Œ„˜KÞfV„²ùÛÊ`ÈõóYt¨ÔH¢‘·²ú_íÉ£ë ¢&° ã»A]o©‘V9– M¨ý3¥ÿ‘Û”˜´£Æ­"(Ps=¼°Òj«ÂdưØÑãÆÎkJBÈvɾÖY»J#˜…éßœ+»¡ˆsž*uÙQ³ÐÏÁ÷ÿÇÃò“cÄŽzÅÌ¥ÊÏÏ—„ð¢Î99TéñªF +ôyîð¥òææ-,vñœ"“O7‚’F]ÌçÄ}¿žoêeþ@EÑÜ六‚=CñÊK;N-§`ãHš†Ôy=3iˆ¿&¯t†R¾§ ûÆŠRjõ™íÜRJ±“‡ßAvp$?–•Ë-̺UÝ…|¾œQös(#ùy«s“ÇŸÍvòòJ"L‘šå^Gå:ÝfIZsÚiÀ ¤ïâòÍSŸ=,ÏJ½rÚ ‡H¨Å/ÓÏxÚ_/vuB IÆ×WÖ¬U\˜oy§s·BÊU<²h8A)eÔJrF»gç£[ 3éû–-Z^I$F=€oƒ(Ç#ÀxDt£OaB~  ´+ºeï.&Ms¡ @ÚZp™.3ã&ݬ¿ sÐì4fžPFÚIŒhdø®¼šÄäì-¨›D~0D2Ï-…»ÕÓ±àŽªü„>bT»{Äܓ팚2SšUrù‘±ê¼ö±Gæj5ñÏÓ¿Æ!ƒK"/J÷KX¨Ý‹ÔiAÊx¼N§ž£6òL¥Í õ¸óãåp°{ 0ªCÆîg{ ýûĩÍûÛô7 Ló;+àQýÄJ™-ìîka Qå®Ònö9uËÃ"é>9bŒ·x"o^ÙusXðRm\bmˆð¸õ{4’‡ø¾ÏÅ#áÀÇûÑE•;?A©Î¸:PCr¿½IR~WÒÆ“ä„Þ¦ª±¦Ï,Œ­èo„Ãgwál¤ L‘Bè¯÷‚&òý¥9ñ¸r~œ÷·GxË5FR^ˆå<Ó[;®{Pà¥ü¥ÿËOë±Äœðlº×#§Œ,g@ Ûêá ³¼­i¾u’µ‹·‘†û>ù·2¦í€Í Ñwi5Í¢ ‚hÁò.q¢w^®¡®'Ê€S¢Ï¡›¾¯’ùö™›TŽi.W"žJP~:4¬)‘ó®©éž?_æÄÑÙI¥orL_¬ÙºGÃÜnIëö ‚83gJ znÇzé³HºQ¿‡×EeäRО¡…ÚºªC ¹bŸ†-ƒñ¡ó€n&ï‡5´á;;ÃD¶ó\›f-QpvRö+ʪ‰N(¹y;¼×"ý8u^å²à—ž˜?õ×±Á“œAa`¦»½•Ïv•'Ðù[qX|÷ìIc·¶ Æ}o{¦LÝ<§§Å§Á5äɔʈI-ñ¼ç=iÂ6Ö ÔñR¦ª»¢À‚Ì­´€ct,+3Dž‰}D*ÚdºSì±¥‹h[”3óa@²IºBÊveý›IãF½YMû÷”ó]g“]×xûçPc¼>6f8ôóf¿¥M²ìqòREä¶/P:ç ׳޽}cn6ñMj|k¹Ÿx+¢æ*ÇO«Ô²Å«"€R˜ƒëñkÕ9 ‹nN.=Æ´UG‡ :{‡Èµúª^䆢“ë¨Ù¢®÷¤Œt §‹ï^>Ê%-öå¼Q\ðŸÛ‚ …1X–ë¶Bë©´¹[T—»!8V%ûu^M ÕäØV%+ÊûÙhu¿:&|=±Ü£´‰UIÐjü¡ÝÁû—ÙTk(› +t:Vk˜¥*·ApüÉA^£êféH¬¹®~Ñ÷‡1,v{|QºãÄΪ‰ºTEëüBdzNaë”iíð`SÞ^ÁíÂ`ÄšÇýÖ,{9Ûß7êÄ7â$Ó”½_œô¿aàû]ÌZ-xðvõç|ž7xþ¥+î,Áþ¨[Ḭ̈lÌ•²ç g7tÖÇt[cbx`·öµ2›ñ þ!Z‘ßL¬Ûá qËj\þCR'ØbKŒ¨É-C©*”Ù½Ü/²©ˆ~»ú„9M©›ýâ—˜g;Mbc•ûÄCôP}i>4÷Æ~–‰‡H$?•ÃF²ŽhH×Ê{Pɱ½ÇÈ‚k3¹Y‰ÒZûRs¶=ì§öì+gàõÛÞ ÈíÍáçÍ~Pûê0ÏBÑ—NMeîÀåj9¥Z—ïÁºððgÚ•ÌŠ­Ô±Ê›Ÿ¶ñÝ*׆Ýa,ß-Ö`ÉžMñ´ÂfD¢´*zþl´4!Öòô1Ѩ9hT(±5±T¹çš¿ûV–Oóº¸GÒ³68ngÒ— <¥âÁt÷ý§G@¸4ìd4–…½´›÷¦’Ý ˆrìºÒâ¾ù5;Yš0Ï +Â}\d­.&VÖ ¨ýÓLŒËµ'%RÖmN|ãÚNÑLñ«‹ø>þ)`ë¹°;¿ŽjجÑúq#6ÄêTi;ªOõÖt}Y‘ÊÆ¢püžj^ØUÅ@¸‚e·¥(Z_x¿rܧv©ÕP?RcA³YÊ*ö%!]Sõáát¬š9€šŠíNÂ@< î`˜b¥Fü±¸d.ý4‹÷5U…')ä2Ä}&ÈׇHW{oÒN FÖqËî®C²`MA5/Ü´UæPõbÈì¹þ‹Ä}!Ÿ0ïóy¡Àž•êEe*;žÆÉP*Nߘ¶žÁB,> ¸ï‰k‡X쇂ÖËÿ]ãJÔ±v>Y/RC +L;=o^òÑ}Íè…Ÿ+iíÃÅEÆ``ëÕS Q¥Í®¨5VVžRàw«\²- ‹³êš + +£>žì‰‹ð2Ìöúš¡N – 6ÆQÓóYu¨9ðM2ËÃoy¢5ìÑï=;ˆÊ_ø›t™œû|»1ªÍ³‹ä"—òÏ’ž%5'A‚Ü'ÁЉZ9sl‘.!}ÁQÛÍŸeÑv' +ZSfíKž}ÔŠ”ø¨VmE×u [z GBkõT‘îšUw›‡ŠÄ7Ô2W¶ÚÿQnÉ—‚Ûc©ö…@¯/$¶ ±Dª°Òw‹Wùφ“lJ+¬•åϬp.ö3O©¢É¯È¯µ.%Z¯Á¬'¯1¥Ê2ôËÕVõ:%û½]–=1,ÇÄz~²yïLêÃ=2Ôrö•—#tòÏH9l|‘Šsd13½›u–‰×ðEô$À7'ª,#ƒú¶#V'žQ$Š\;ÀR±~BŸZJç©?åVÝVîgu fF9æ5üÜì¿ÓÒGÄâ~"p9KJ›/éÖÈ%õâ\ƒ¬œCRºZþ“(ûˆœkÜž"C#¤÷\~ÄÓ½QѶ—(ÈWÚílü‡½Fñ¯0¨†±¬®T¯×:wª]²!§š>hXòfrp8~´ÖúWt‘—ý¥K©×ýçwJ =žn\Ï’p­Ôí­4ÁÍe*Ç¢Q]8© ¦SëÚ*j¹‹*é#G]̱E¾*8µxèW‘ý+oì{Lã.ð›ÜÛÉÁ@»9ZݹÂí®Å³îä^¼Jë +U|–]ÌŸÙvaÜù§R¾¿ODöÑäìª0-ª§W¸æf*m•÷öJííTsòžk¦Ñ—,å]ÛAé>{Ô”7 ÜWe`3ŒwÝüÝóô&Óöç×1Èq27Q;ܲc&µFf†ÅÝpRSÁ>˜7.——ÜQpFR.îÈ+-•S‘•«3z9=þ;AâÞÊ>ËoÙ½Dt )hf1wÛö »öI/>óžQäójú]ï}îš™úô§ç=|Zë)¤òøÝÀUÏ4k¡ïUÙ +å!N|¿—éQ¯­ÑëœÒò†#ݳݼ%ò†»jFkÞ:i£ïºý!á]Ó5¨U²´æ(Øêb8QêÙ hóKî¤ÛOñV¿¥²uŸ 8km:eø…iÌ~½‹´³0pB:bœ¿ ¯Ñ ˆ\Šä›ó+ž±¾¬¿§ïAÒ}R=h½Í¨Â‰Œš´ò6UCÝ ÿÝõ®mýWŽö»C !yÖt(t¿AhÄd‚¹€ãÛ®9l×àøÿÈú®-Å•eÛo‘@ !á„@È{ï Þ{ïáå|ýE]»zïµîKõ¨1*¤ŒŒœ1cFd©žÑòÏD» îüÇ’z ²Jƒd§gÚ¯-jE¬-– GptíÚ"ꤶÔãÙü^†@¢?UGùºä¹µè/µŽxéKXN ¼­¶VÔK"7÷dSîé²NîI0&=}ˆšÝO–IëÞÆ·bo×È6àá`nÍÄ"î1Ì1Ž×Í5 _[Š’†Ð,©cÜ +?óZ?®&YÜ×¢ðX(ŸwLRºÜݾÒùkIAHö˜’mO9Î ›Ä‘kl3L± ¦ß<ºƒJƒ?Q”k0–¾ &jÁa—ãÿ2`b öÞn×¼VâCþŽRåíõæJÇ8²E«©ÓÇÞ…›ì½Àø\Q bsÜvpêîü“¯$­=‰±DüÝapˆÎ +§úøí<¸ û®£ØŠoøß%0CêœÏ2—Éó,.|¶=#sn鱬òTnTn†ÇéêXö‡w¥éj(ž>r˜ç`BÈÇɽrËé¬Ã_’ÿ0} ‘.ÐÈ”mñsµ8îwO¦ŽÉB„ìÙ«—VŒ¬„W¼cLìòG¢L¶¬Ö˘?ÆpìôDŽ>Múgv_kµ!‰ýØê‰ûµZNÇ5N&›ïµ&¥Hèʼnìm57©î~ÇYFê”JVƒÚ{ö]¾úåžJ/y8W¥ÒZ·º —ï#å8ÎèÉg®²X›¶ý€®&õ 꼓¸½3œµ€â{¦Ön×Åf^X¶ßi¦„Ô:„aw6ƒ{44+ÖžÍ+ãì”Úïx8½'‰Œ©4·Îˆíºüi×ÏR±d0JÒë@~ׄáüT4hö cJr”éuGÔ?˜[ö9©æ­FW›v§ëÒ¦¹ÇGy«wK,v–ey™W­&Óë§zQÓ[žw;ãß0‡Þ¤Wo”5ÜŽaîçß#jõu¼¥&sÎ*…i•©áR-8íZç¹–Šþk »Y ·p«AžXsÕ‰pÏ—ùT=ޝe®„¯=ª•4“Më{ÒŽOêÊ¡Vco'ú¿àöÐvgÇhE}÷¼¼Õ}ún‰ëú2TôÀÖ *ñÊðF±X÷SšìGkœU‡“Ü-5¶ì˜Ûé{H*^£Eðn%áæÇ9"ýL;¨ ÛtÊ<åYŸæ£µœ(}B¾©]é5ÏUÆ_M«†P¾÷|‘Ԥϣ¤Šg)7³‚LåÔ:Ëz²ÅØáÕGʤPí–£ü€ÐÒ3KØõ!ØDïSV‡‘ ¥#Ð1GjNŽ~ŠÇaK’Ϥ;×i•0e È‹Mv¾¹¹íc#Ýþ>Uí`¤/¾Éµˆé -éú |Vh¼ï¬Ù[,3æÖT +ôP|W÷(óÀÕ ¶‚ÌìjrñÙÍ}\é/Ï‚û{k3r”A\à$”| $é¼pLÁ„‡/îq¾Öõ#·ólaf ÛtfXO-»S³=jÀÁFïfÉ%mgeÔqDìƒ"~Qrpdµ0zxÔMÜ„3ÏÆæð:w%];¤tƒ "ŽÎ;,\Ÿ#‹y±2yp\ÅÖêôiB±ÏkVê¡ÂÕJlä`GÄñŸQU¤‚È„·y®'òSÒÅ4Ë‚à¢5?_êS½Ð“Þýùº3sØ6Ý#þ¢»¤²¼ss©Iy¹¡%¯¹Ò¼iµN€¨³Žþm$ÐJ5vs#ÐiVø¼<ކ“è]¼ÔùuáQUö5ëúÖ_Ýœ-®/gN½}&¬Å“Ü.míX$+h œ(å…ßbKûì +]wÎ’â‹#Ÿ2ãà9—~0ÙÖ{Å_˜±ÿd¦Êq[\ªý}çÖ0SÖ`ø’¡NõóÎE€ÔÞA:þ.5ÅÁæ<‰ ÿVGk$#BpÖëüm®Åcµ«ˆBãHÝÓnIWÓ•Êo:Z‘yýz†B+Ìm:#j†êYM1Ù3E‡Ú²mlƒCCè\8èó¹YEPi’~ÞÍ»¦ ¿‰õ7ì7¯5ßì ©Åa~?lÛqéPûþ,Ö˜£Ò·Õ× ¿`™¢è"/Ù”o+Åê'›×YZå Ü®^û©Õ›V¾ŽÐÅ·ÞÎi.ío9»y f+‰»ø¥ +µædîÏŠ WCÃuµ2r¡ó¸+}v}h㻹ÍF_º<ð4‡ÎøOF ¤¯®«ŽŠ}>`7¥ìr2oÓÞ Ö'ŸNî’\_µ’,·ÞŒ¬Ie$ïêç‘¥ Ä«ÉNµîyx§Ç!$|ðºÆß3.­·$Ž®,ŽlKÙ^ÁGÿ¦×eñÍ>ö°é…Øäˆ£S÷ïÔVëŠäýÄßMDR[kï‘â….#ª×Û6ÊN-vN£Í‘[Q©ÕÝçCy„0Ö|„nãs³yâkhÑ~˜=E_Ò£0™”h¹Žm_¤g)¾²– l¨.nû¥ÝV†s¼ýÀlmè&˜ŠãÉÈ;-ë}É:V­8Æ|% /ù1Ÿ´ËxD“«ëú­’];k]Ô“Z4‚ß%ßV'ö’IZ18¡e~í€Êš9öÍÆ*êÊ Quê +»å±6êË7-ò)µöŠ]'îmmd\Î?"=&o²6L÷ l3¨nÀèt¯x•ÃXÞNá—†\¢ÚýèBâòn`¼‚ +¢U¥“ ÷YðfÅo䇨îN+Öj™2Ó©ŠFwQ¬+ˆФ <{N^ ëÔøØ*‡ì²Û|j&zÈY‡‰ +«Â2þ’ »±TJÎM·r®SîÔæ£ï·K¾ƒ¬Ûœ”çŠXž­Ñóf9pG¨@Ù^íßqqô“†Z­6 ¾•¹{t ° Cì}¬ìžb–åüaɯ€ªˆmYÃÚmÆ‹Äd¡h×ñï|§Ór/WuúâÆ¸œKÖ²àJÉ}‡ÏÙÙ—ÃÃãÙj—ŠÙÓ»V§¨ Ëî®5«K?UÊ?º‘²‘g¤Zg±ÓœŠßs+y§änY‘f%Ybá¼{ …ÊciTw<`F}%:Èû~DüZÒé‡'ži l—Ÿ‰|Ì#³Ú+ Ä­ò…mÓÌÄ)Ž›ú¥zÄ·t Ôý‰Ó›˜u ¾º¸õEe÷Î¥ÏÕÜYÓ—Þ¥VÙˆ¯Íë…ª"\ál&¤Yô÷ÊXÍõTíºÜ›c“ÿÑ;™­6¼Ö>ɲfò¾¦å©Gdk(–‘@QOÓÂÜ@îÝñLz¾¶ +# L¡ÐОvõY&é,yÕ(ËÖôÚ”¨i>ð¹«Óí,§o·yRǖ‡¶‡ðÀàÞHC¯›ƒŠÐÆØšœŒÆÑøË€éÕúó‰.\ oM*¾!7‚>‹½öoÚžüÓMD×FÅR¦‡™ŽúF!¢gKœjÜwÎ=Uçuæ>*›çž*D[sg1k—5`†»ÔµRÞ:˜¿j‰‰µÊ/wrrˆ0zé•kcúk‰”ÑvŠ~r{¦ C®ŸŒmæ‹+â¾Þ4ï°›Dꥉp¼×T‡/ ›~CÃiv)¹>@\,QÄ-ÊZq¢óQ‰ Óy8`]Åu=¥,ÐÈ®r :G7R×UúY—ÑYÐZK=Míú¿í‡'î(¯e±o| +u$zmAI èÊ»$>Š 7%U"ÎKéå~45ñTIxhÂQÕïü/¸µg˜…sJ¾ØQTVd!碂Zw¶vÇ}ùm)=m¤êÚ¬Ù»AÕÃêxn.«Ìòát{íÍ­™»zCkÚ¨ºZ.â}~x[kwšpLdVäo†ðGdq_Ü!ª;¥sʤjÅ8wPoårâáLÒ ÙÒòÑX æs™kHS¬³WÞÞ³°B' Ï9GSæcb ×ã½ ÄQ ÌÊÙzï_Äÿ0·ÐÊDøÖúÑ ´nò³ciZ׉ÌÊÖ/(»T˜¹¹¾4W¹urz$*ÿüù“~6##¶Ñ÷XôÍ.ÔØûØËiR!yÄܶ¶¼‰ ku´×ŒEóüœÜÍ™±~ÓÃw_?1-Hƒ¾oÏ)ÐÐÔÀÇPÊ–^ξг’a +r¹>Æ–g{öHeÃ'ÚHnëº=ké/sk®îžïmF5YïèÆ +å‰óéL¿Â ݺQŽ»ûžÔºè©¨TÞrîôµj{qú;oäx÷õ‚MœÔN‰Ï…¸³<èߘq@eíØ%> }h8hío×þèL`zø¬îrã*;ÏA=þ±Ä 4-¡sŽ\ôT¬$f5®ûí‘N†ƒr+-¼zDO]/âK»RX—/ƒ,BƒÿjnÓG#Q¾âE†'øMÁ«=;+º­}T“/ç^ŠÕ%·=InâšÞ sH®Ç.dLéduÌ7¬Ë:Ï +ÛZucµãñþn—¸•Ÿ5”¹Ü½ÞobGš‘û·iêò秈`fAVè…ÿq¿1ég6¦õu­žs»çq™mm|ùÕg +´Ôšç–j.ßÚ;ÑCÖ«VùUPws§èÜW§˜£[–{Jëõ§­„þC}6k9§44Iî:2·ÚD˜/í§¾$‰!´¬éìœígÿù€¯AëÎû;¥óæï´Ã„±"á¤1 Æ|…q¶¶W3QÕ¸À=³¸›Nm6¤ºÕ’çÍLêiò¶Y¼W•õÌå¤óÓã á6fÚ¨Xá¬7ò¾rÒ±çØuàõ²ŽEÎ'¨»P·Qô}ÿBQ…Wå>a—ZÏl{ÚÐTüK ú+bñ³DRwÛí54Ér»…G{ßä ·¬K4^@å„]î.˜4-B~ݘØãnkõÃÅmú]ó ùø­EÜUülRŸ¿¤s«x}<ÑÙöK×2n>›û%}Ï-o'S‹!ø¿;ÈY™OS-‰»|ñå2¯tønû]Ú ÓC55'U:•Ö)l®¸‡)tvÞ;h[°Çõ×ì§w~L]öuh¾çè3-³8å·r©¬kÔ ¯Øº(ÏÀw°‰øtkëŽxœµºîT\/~\eqÈÁ‹cü=WWÄjï‘ÿX»tm­ëéN +Ãà_¬õ+íªìŸI0».³šìü­Zó™õc Ì>ÒA{¾ÿ¹JÒÛR•”Ÿ¯¹ìóçþ³~™]å"ˆß”uºŸ¨ìXSú:Auö·¯ûfagób©=R‡¬›]}~Û¶¸sa ÉfAõÜÉô€É Óö¥èÝM5Θ„¹±w~ŠSÒð‘ô±ñA¼-eÙMZhݨ +!íÁ}À©{¸Ù6ÀÝë=C{”¾Ú.Û¡Ûùèz,'s¸‡Üeå,ò¶ݽZž5/s޳¾ïŠse?Åphz·$’ɪ¸îwgýi‘Øý—LZÁFw’çw‡ýv‹:Mä»ÑÓ–[oÃz-U(§ížŠÎáð^@çöuæÔù«ô糿–”(7Xr!×ÙaÉ‚x=X»%„û&µgì}ãé„åŠ~ÈÀPÂqè+xüÏÇÿÒq¯cž +“KZrK̲B ŸØ"ÌéØñâ)YÏ]®å@¶T§¸éÿ™¨¼<'¢'Ö”Åÿs8)ŒíYFoÝ{œ](~’rÛ6ºÛ²( Œ*Å};ì!FYWD¸¥Þb„gTÞÀTÑ`úC–òq~–ð·Õæ}{!2j-Ë"{<}bh„•›:´%˱ã¸ÞÏ19|¹ƒ¥¹¶8Úüù+æ?lÆñ€§xœi…~öÑR„лœAò:äî;¢(«Œ„Th”šE0ÞÉŽ2Úpîgè._©m抳n‘ãÃ…¨µJ-ÑN8J¬C¥»¬ñê…Æ©°;"‹9曨iyƒŸepýv“ˆþüi’¥£ÝÛЋj~ZF/Æo³\EwýY>Øú.񯄡ÞÛ}´€3ÔÚÏ<)ÓÿƒóÉž6±çr*äBk-˜ fÊ;mD{¤Z4íIše·Ürlü̵·½þc¦b(ñÓÝz0Û7‰Kð õÞ¢³­ƒSÆß?¨)ê¯o ¾´ŸÉè¿\…3zX&Tvw½7 mzÔrÚÙí~J„¿é±V£¶¸+;ˆoR'=GŸÆ˜3nñ¥X2®+Ã]ÐÅK®TsÐÐ_&9ÜAÚOø³è#0ãÓUzúõýò°I­ý/cèMæY$·?õj»^‹( )7¼ªp—yî¨Í þ4žÝ{8Ѓ 0x‹Àþ‘|(þ¥Ör&êëÕ—"ÕlñÏ`7ì ú¸Ã´Xy¯íŽ×7Ð|©¢ó97“¤{ü¾­_—úÇsÇ¢eöèÎ…÷üÆÔñPÉ^çée×P†Ö32Enä¼C‡ŸÌ¾ÉiÁÖ”üé•Ï +˜¿R䃰ìLÝS‹,”í¡’«ŸŒ´owéê ÙT”‰]Rp[‚¡ù Š*‹I{Yµá«8EÊú·tåÁìÕ­]}¤¡íJ iÔ64’€;ÏÖZ—ºô“YT€Â´ ëvÞþDZßÏJý~kõ]ƒ 0q¥ñ´ªW×/CÓÞYˆ—È2†–qÛ3„w{zunú¯¢Îç»`µŸýEÒE„e£Q î–< q”¬QP&¿Îc³}úîî}çb-*·ÿqÚæ–Þ'«EßiuÙÓÁ‰ªŸB<ÏH•S¯ GŠýèdh2¸ +NëÒA‹îÿ¶d ß—OÄ ÐÞ¯hbÂÞ¨~ÚE§f%K,QÆ–8áϳ˜–¯µ‚é¡À–rQÐü‚ìjÙ"«ã<óQ =ÍŸÓZG-¾|è÷¨.VÖô'DÇ€ê$ß¶ü¶/™Mx¿J{{pî:éâMçêQÅîõv‚[¢êdU»¥Æö¢9½J÷Å«c0ÁëÓÈaÏ£<–"Dž‘`ïKM>C'кмA÷ùBW½ñ ìs…÷Š}à%›ª”ÎwÏéÜ^<{…P´ªÁÙŸñãVdÒ½Þ0y8a+?¨ÐÞG~ÉFôâúëH[œó„ÿ¼ó EŒSûHÖÇQP“§(7jƒo°X›Eö1Êo[¯óZ÷ßÄÆïTœI-b=»›H ú¶T1éÁ"“F©} FdÔ9æ@NåŠjé9i×Âæ²;0y©tOºî0ÏìkWX"Ç{ÍÚX2Ç·ÆoTîÏX˜ÍäµhºårsßÓú}V„e¥<È&êõ¡}úã·*§CM˜* _σoáÍMxñ¸\ªji¿IóuÓ95ü´ÙxüP„ +¾Ud[MMï:Reû6üƨ»,SJeÁS9Ö|‚ØŸùÎ{ˆýyµËe!UGÒ½/#B8ªëì¨Û”$Sbsü£ÓS>í1û´À¥Ç¡ÁI[åÉU‹J£_ºéÖ*Äx 3dïКXùI]ƒÏ1å& K´ƒìxFºs~ŸÛ¬sÅiud¼Õzb.uŒä_lOá(æx7ŸóÑS ¢X{¡ÄÂ>-O¼œf?Y³µ·s=¦¾°«®iGŒlÙ¬‹ãy ‘ }övÈQµ)Tï¡G¢Æðè€4+“„ cœ°ß½ê œˆƒ¿J<3ª;ƒÃṪÚA‰›æ§1;u!É£¹»*ðËdRëIJ–x¸[ Ù +³ñ[T=­Ô»UK4úîiì²Í|•^ùšæxÆç+TÚkMxÚ @ ¢…¼'÷à‡´|êžê?–]ýœÞ]¤W…Ný:Þ}"ÿ¼±‡Y¿ËŠðŽ:¯àÁ;øc[,“O&'p7ú/ï4mÉÏSKvèá1äÀÍh£‚p/”Ìw„öiw×òö†j•°âU¢#2CÚPÒ¢¨\DY(~Âï¥^ÐÀ¡€ß 6;™Ïs½ŽmºâàÚy+>°R˜IMe^X/Õh4½TeftV&ƒö@£Tè?êßRÅ`ù&lU_d•BÙZ%éé~S½5ät•uq•Z®±k&›j^½éäV¹!躈åê;ëå3€|ƒ|¢Qî©Ûz¡(2Åo^ÇE[ñ•­4‘ÖW&7@u]Û{ù„ЙP¹òÜÒ{ LÙú?ÒŠ·Ì’§eM§¡ î€ØWáu±-SÐò)YÓ&(· ³{¦x™øôg…'¸æ°pþÁÉžxöZXfä=?j¨Ø{öÚ"iìDZ—ûK;ÞÝIÉÒ ~%éÛ ýÍ-ò,.þm%ÖT®‚¾es{Ç^pÃü7yÃ|ÚîsÎC¢*‘Â?‰‡U2ñ¸Îã…Q„%nùôè¸]ã‡3´Es±Ê€*Ô˜`¥Í[B£…GÔû]¼ùkí|µ×1¬0Ï>á+‹YKúLÿfd'©Ïã^Öòkjpa”€ºçðЂ„`º^DAžIU‰¶/¡«<7ÂîX?\úÙõŽz6ä)émb¯Æ,øDÖvòò­´M Ïgå=,^DªñYµÅ2f]ic÷2\ýDÒ¬ÂåMã¨ü´ê‡Â:Pi|ÌQ¿ þ¼j•ýPç1¡9—¨ºx×^©6Ú×WQ^sB÷%¢”Ÿ¤2¢´d+“tÆöͰ2®SR=¥«L’êRöS –7‡½¯ö=jßîæTÍ -^ÓKA‚Í”¼£^äÅT_ÁÏÜE‹‹Nù‹Mªºú~Ô9ÃTº¤œŒ·ZçüÍ£Zâ#c9ðÝ-Ùê\Ò‰Ô6ç»§¥«»ðóÈÙ\à ˜ë#ÒíPC¥Ùô93Ò{ã¥äм×.._‰ñ‰ÆoåH·LÚ·zf³¼¹kn·ý+ì9AÚã|ù™×&¤··×½(mÍÄ®ÔÉÇonI>8‰‹ —[ÑfF¢ð#—wrÞ.ÌüÕº¥<Ÿ”»°P[L¯QMªø Í5z¹–´~9.”,B»y·Ó–ÓkÂ0éd9·rs¬vŸ_­ø @Ùp­qxAy)ÞÄ…[±XNÓ +¾¡¼Si»º–ëïVE÷NŽ'͘G)¯sÒ5þ·VNýÂGAõ4aNñ¤¸pÛˆ^b5ñAï’P×Õ°®Z¤4X=‚m8Ÿ­¼jm¼ú_‘ÞŬƒiMÍ7«7v;í¾MŸ$d†ÞÕþQ(e.`¾‡×Zm…q²›Ö­î<àACe’^^ßï82†…X9ž›Gƒn­|!Ø3¾X)£úúA2­b4P¤ùr´3i¯×,Uí‡.OÏÄÝ +Rà¯,ÁBŠ·X{#=C¡ºë§4=åæz‡™†ô“rJ>Éß*´/Ô„By®"­Nÿ˜€ÖkßWãí'Ñ_–ëž0èm”Œ¿£óò(³t4z®ùúæ6†¥[yH]nÖçÒYÏ_p@³ã1Ø cGq¢‘Se6Ä+P +—P¡‹`T¿ÉAŒázfŸ8d\æ;y‘°Ê~Þâ%8kWpª—:Ø ç³Žà«aÙ‰î·nÞÝ¢°Û^œüð¥æáZõ¬wȉùÜ9áïÚÐ.§f…Ü+¸/¦X+þîÏFXo©t\Ss¡*ÙÕ?Qvz*u²šu{ +q7Å ×üX¥Vcv¥X“îëbÎÚØ?hèP)½Å«5xÜâÂ+¾s¿¾oÂû;“É™ »^ ¿q•„ëM©ŒgÂ1² ½ójÀò/s +J™i¯E­~¹~·Ê¡ùs᎞"äOõPVMJ‹übh‰eÊõ¢“ûûÇX¦lW;ÕWßýg§õ»°ì𾩯®Cü†ë¿t\³¨Û¥Û‡ŸpûºÉÉSLžÞ£ÖôPß›q=Œæù–¡Ú{hN6Ÿ‹aÍÿ£P²\ì“üX”k{ÔN`½~© é±}É”)ö¤ö^èùÀqÀ)+v<ù€ú@bº…¡sÇìîBÄþAÇÕnšr;<Óï¶æÇÚs_ª·Ä•s'·®­×G6½fnœœ]"ó¿žö—ì[Z,ãB¬‰Â£E Ÿ[? >R›©PŸnøÈï¹ÖPÞÍ|Á¦`ÇëwRãùû'ñ1/³}"òØ6dw–7]bSÑ|âRïÁ´ŒRßš'‚×üe÷öS:‘O£0 ,#L:Ä¥8ã{ÿ†ÛC«SØ"6vŸì¤U}_K{q.u§‡Ý<¢™™ NÂ"¹ü}õkÌÍvË“F…zû¡8r¦¬‹ +Lð¸v–^!¹¥Ž>)é‹ÕSžWIµg ÿÇU`žü)N %ûy—.;-/ŸÅ´6¬µŠâ‹¬ÓħYúH%Ôê˜o=ÌÔPEÁýbããîókÉ×­s#Ã[u4l#ñ¶SÎ[)„µUÃÓl—w%ôµŸépÓ˨!{®ìª?ÞR¸0?$É7ã”—F5&[Ö®£Ädtn*FÚ^€ÖÕÚ¶70òxo·q#xû•Y¼ö‰,І²*xbÓoÍik¸.o-f‘H eó=§ÓýËjó\¹¿ŠCkŽ„¡¥³ü¿\…/—ŠO(1¤¹?È"IzÕ¹4Ó©¹û¬·•gºVœÁu±3{g4ËÖrŸa¥ãHÑ úc–¤IkMzŠÔ^¾kžéWbŸ!–w¸%¬)eÙ %Û RÂŒKé_–°¸q£è5¤g¥ˆ¨N®£¦ºäÙ_¹‡ç%¼ÀvÝÈ·Å“=Éo\²[!Æ»E6­!÷k‰Ï‡á5²Úc¥•rgÆ™…˜ëM™ŠßˆB¤äJEè`fWî‰ùGA:|ô#¿×ºŽ×úc “žê¸@Í*ÐNM“¸_$Fì^Ža€A$ŠùÁm/u;×m°YEÐçe™ØãZ¦9‰-±,*2ÙKk—Å» ·s„¯Oª¶»ž’siÊgK±p×m… UÛëŒ*ÏL»TåÇäu”­ÿ¾z›8#Ôô਱Z<Ÿ[XX­Hì²òªwícg`ì‘6bõ/v:¨o¯ùžØähR2tywëx9Õ,ÕP õU<»{÷1+Ì“Þ^_î­[=Xÿ&ùé¡XýÓ|¡¾DÙíÌF3¢H¶s8ýœ]Îí3èí/ÌÙC‰]¡±€Uo§YTYqþá*RäÖùMDòÑèi/–³È…¦ˆ[CÙ0¶¯áØY¶/Y„.xö>µÇàí ½aï߯H²zH%Ýýºhœ¨GÛ}„Fä8è +B/ÇéÎË絃ݦàÚëö‚éXò‡~èàóG»‰÷ 'Sº”â4„¯ò‹ÅOìlxé¹Ïx¹XiqÊÞ"‚u±ùs„iå™ó“”‘WªÑb™[¡“Ó P0§ÆÔ¥› Wí:‚*嬼Êïen”¶@:N[ %šsYQ÷wÖú¡XI,{s#†…áX(å¶ŸøÉ ne;–bc5)'P|ä3“5„øÅ=ó#Å1‘ÎJý·¤‹Iš™=$f†é±=KŠ”²’5_˜ð†zå’Ý;Gn%{gBu-{Ðþµ$çD‹ÝìB4ÍfCAëg5bÉÛ¶Œ¬K=eêYèŒèOi››"Š¢ÜK;ÎíÚþ_ D"K=U¯c¦^ºN¥6[M¯ƒ«ÐÆ¡ÜÍkZL|’àõÖ2Öw¾4Á¸Ôûs»ÿ¡Ýu›K¸,$VÃr ¼ÝÜ/68/Ï;›ÙØÊXlFM§_Î;ÿ²¤µ:9=Kh¹Xp ˆcÍ/×–Í#¥À°ùl.lébiøèìwºJ—úÂ?þŸoÛ?7A:zÑ7<:³òcðŒóÀÇÉÓ NϳÿªãçÜlCN£Zú¦‚#þ×’_p›"¸EÓ Ïì«;Öì2ì˜òüC®î„¾›Óçkâ4ôp‡m3Rç}­I@g –ÓÒõ08ÐMdÝñ†¤òÒõ­²öüB—”ž¢µJ|ß/bía„em4Åüi’/ùóïŠsÆ¢cJŽ—Š@ŠÑmNP˜ñ¬JñQË^Õe˜7xÊ‚L¥« ¯®éIý +Eõ1lHü;E2µànôšUÇÙ2ä—g›Ã׿EƒD‰Q4S[hœ #¬Æ•oäÚ:É·ì|ÒRÅ«úühVs(U£ •£¢½_“®.&z¾<et7ݪ @.,{]è½ë¬ÑêêMŒ?\Ðí˜@@B‹×«yb뿾¡Õi¡v[¶Aòã] òp>6qøtO¼9¤-Oi»ñAæ” ä|Ég1ÍæçîÈÂ!âÆ”Åx*)ͤ0-æ1ÝqÝ´»ÏfÈå‹eÁUÙÖŒ¾çl Žžµ‰["]‡¦…![Gû —F ì4œSC›…E<¯µ\ùœµÊËÍN rÔÛ¡¸;N’X=Üøl hu›¯!³ûðnŸŠlU¿9}ðÉX2⊠‚ £0Ù’1¸mvI——bvù–.áhö©ciÀ×ní.æJp†˜{Ç¿q+·´ýêÑà«Àpvi9aäNy#8p%ݯeƒ{Ï/˜d8A¥•Þ +QhÙÍ£M˜Âá“t¶õl,,jÏ;WA''΃V”>(ï³¹ƒ}]¹ Ó,Þ8u%jªŸÄÇ­ïÔ@ÃýÈoðI—­üSÊÔŽõΕþœ¡®½_w®\Ý»óR{ŽåÞIh Ãb-£Î*d3¦©šýН.…©Ô»gs³ +~<ŠpWú°3}­Û ªI7c®àÊŒ®CÍ<Îçüº€ãU[U^:ÎCQéh? Ážøm[ˆ {kÞÛú†³MßÁ«/Ò hõÍgC®˜¾‡MíÆÎŒÝ•Zpûö¥T—ãØD¾éÅw/^tKEË/MvíÑ‹PÕQ~Z=i_aj–jÑ›€X“fPd?ç%_EÏÏLÎcíÌ&pã`ûW§7m±Û&m`tp»¼¥ê„³ú7š¬ÚgÜ>»iæë›–3¾2. ?Þó¢oß(´þœ­î5.‚´6j’%:ÎÚ|T抉þ¬ÑRëÁþHË>ðîA¯ÎtGµRåô÷^ZæGBm-ü½NBFˆG¿‰˜QSžD§cÀwhŠƒRa0³%ZaɘX +ôøGýÏKË®Eé‚Õ}ymýCîܹi7×Rù»%”»˜ìàVÀe‡jN©Ã +˜Å +¡)­¾,ïD”ré Ò¨=ôsimÚüéaÆ›a²„/ꋳè#‘ŸºÀ@D+›PºÍT qaȵtÏY[9é´WP<@ y.¾Pù¸DðxÍ L´xaß´·hHñæáŠHŠ©få (Ų‹H|é´·¬_†žJÀ'K £ÕOДÖò†…žùœþD›%ŧ _DÓ=÷8µžjü4a¦ŠõÏ_!íжb !HÙ¡/í¢O3aO^±=·Àh›ë>“ó0ﰂ˵mjëîÒ/r~9iǘw1P%] LΙ–ÁG1±¯È›Åá÷~¥²¤Öèi¢£bÉ0Ïy9ba•K¸f ¬âÙ=s×Éá—hð‡"stÌ×<5€Ú÷ëö¿¹ªµj\®NŸ_è2‡'RôÌ'ޱ>TX†)yíBµQp4æs}{éa+bŒ:õ|—ÓÊoçÔ)ßh£ûSvù‰[ÞÖo:8Jw†õ »®X´Œj Ö§¯+ÜãËœS‡:{®M +Ík®±Åˆÿ(w<âNx¥}v?ºT#ÂAÈ ‚)§µ*9ÃC,`ämíO /F˜÷qÞÜõ•2ÉŽþ*§òy›i€o~q%• ]X´64¹¥ŒMÕ'8zÔ£ÈG…S¿ßоA£–c¦ !îÛ]!»¦Ã4u¨’ÑìöAd¾DîÙºð—cÒTˆš´¶Þ­$®›³—Z‰©3 +Õ^’\ºžVz x?˜ß,!!<@-R ­á@ÔÔ«#©õhÏhB’"<É?Ìîñ¨Ã㚬°ëKCÞÏ&G–塌æ|Z„ÏeQé/›ÂÊ‚Ãû³o–x‰Ï•¶k5ƒªök¹›tåï^i€u-ӉΆ¹¸Eæiœá¥vBgZج„Æ{ÈÓ“eÖ)t8ã&F×:+§©Ÿ*‰"na®‘ktŠ¡æÏ? ¤ÇO7îåóŽSÙbž_W´™É-[(N¶ns¨þÑ@™Ñ©ì/hU)©S4—5·©køêökÌpÏøÃ@ü¡ÃÚžÐ÷ˆs=¡«FųS½àð÷%ú©µÜ˜³Ã +pDËœäp0OÙ ,~Á­žoðOøˆ9ÝðÏlýØ“¯£Þˆ´Ù:)7 –Wü\ªO…‡Û+Ú¦®ìÚ¯%Ý'Ÿ¥¥\v°‰òs–þðµIпi­Œåà¦k–­>µÍÓ7Ïn•×ïÛsî{ö-~&ûidahÒ¹Ét§íŠâ“Ó®·«áCNOßo„hÌ9>]úCƒÃ&˜ÜŽaáô\ÖjYú;çÖØÇESÂRW‚¢î•ëê'U}\¯½¨‘íA[N Z%­s'©ÜHIú¸5€ÌC{¹,¶ÒÌñ=µ±95Ú¢J£_vØ ±äĽÚ^¨DØÊÊDQ²ÌÉm ,©'e^(~Þ”$?òÕxƒÿLù€Ò$•D챫¨ÊÊÀrç°ÅÛˆøá”.3{+ß/*5¿TÝg§ªVƒÖ ß_só ò n¡0³T=ñá RæjvΗã¸ÓUDØœ+Á[R\un5¸÷+Vˆíþ¶³¡ÁKyÁ¼·Á{œ8bZ,iÃhÖJbÌûçª4è{³ò¦÷=bò +„Ê~cðÔ¡mîIúg «<n—ÖÄ\IBõ®¢Œ\VÖn³„Ekséà³Õ³öŠËO²-FÖüe=¤)fydóæÜÉ*—.Ôÿzܪn+‡÷w`Zß,çM5±¶¨²þÍ‹µå°RDˆ Ù¯¼-o°û%ô¼Öõϯp·EÌ1à•ÈûÒ¢–7B[4ç¸<NÞ¦Ÿ'-"{1ëÌVxü}-eÁ$^À®|“É«£9^ö£æqu®É÷b« t-è÷"Ö6w¯_~=Mê?·™LèY/ï Ç¶;Û®Q%ÛSjNÕM¾·%c¹ù¢kì…§ÝØ™Ü} @0¬ÎÅh1>e÷ä¤?Ö†„9Í»n\qr"…p%uú™ËÔvM¦R>H°¯ãúùÒž¢8ËeÈ®¯¨8ù¬¢ÃωEÝýH8YGÔŒ)@£ò²Iµßà|iÔÌœ+NwYÓŽNl毟#¦Ì“þs;ùóž5¥6ˆX–µ A-ßÎuµ +\sÄ îTÕ7ßÃÔåI°Qèî]4;ÌAzãzûϨöR¬þÜô$éË×kã…+¯ðÜ®-µ™JUŸOæc¥§¤r-¿:FYƒŽÊ €ðü>10ƒjm–Y³Æ¯ùp–%¶+.™¥;ÛšûÚÊ’íAîEäÞ3ßàd¡ä©g¡´îú¢U¸ÌÊê­|[ýÿÌ-ÌE;§ZrR;z.É7ø¾8¥À.É8p›W‡=ÿh?ëi[.Ÿ^~ÒÞcö=¶Þÿ 5ösáCo¶ŒÒ¼ +|"\š*‚NpÔd";xƒAÞÙ¥=?™¯å}hºîê:Ιì¶FìmñA\y)Ÿ6aÄ}=,®sM¡£¿:Žö~ÿ£9±Rô‡œUb‘/ï®y>÷².¼Vþ +æ…¹ñ¶,:¯“åo>$ +dk ª  Í¿[QZã_Kú9ä4ŒvÀQÕú(‘°dp5>cƒ®ïrÐ[¦éZÑîI–7N'·–!Å-A:|¯ŒÉ¥GNÞÃ+MŸ ðzO#eEÀ£vBärõ…•UÓꩆZ< + |¯¬Õgg›½“7ók‰{×Ä\k–ŸÕ¤µT·:,³»z»º¾éðpÝ×…`Ší ©õvÞx­æ-c칎 Ÿ™úB$8¨\Ó¸Iz]sáó +[N˄îÌb–°ƒæèë®Ãì¢ØÿõSUýiÒFë,gC•¾ªìþªöLs–õ §Ku…ÃRÑ5— § +cc™N©[Rܾ$WŒYŠ«LR:%Âþšw¡ÞT©õ Ãî»àšŽÔ°ûy‚ÒK œ¢¯ü“Ž£¾W¸>ZýÁeGcdê[oD®JdAaah]ŠËû;›gÃ>†îÕÃàgL®r»Œ~šñ)j@t˜F_Á<–\=ðËÕrZ[{n²VJnwñR0­ø|s”1E GÄ”GÆ!'î¯%øÃ- ×ìJŠæmÙ ùFüì»­ðV–²n +iJÎÜþdºÌo/X[„?#ÉÁWÚJ72ú3Ÿ¹Ý“¸¼Ð¹o'·Ÿx ñTËÕ2ŽíR^¾î¥¡‰gpÐé‚ ¢„®ÂÛ÷c&;™üS®YëGŽhÒôS’…ƒàÛX¿"VØVjˆÈÛ’ <òéáf)Ò&ÃÕÇð‡¢´fÆzúc ÿÇÐ ¶µŠ¢[®OÔÍXݸ!gq­Â¢Ï‘†5//*Øþ("ŒÜØ“ÿ±@pËxU“X+œ®÷´¶bš³ZÞåCýöM'5²ŠGÞ:£P)g ç}ý/o!“M#1Ë}݈z,_g*ÝÜ_7㘞?NqóV6&¿Áî°^ôãŸ:äüŸ{£BUF‚ØNAR ¥ºµr:4öÉËFáPçòVã +ÛkOÿ÷ã¿–4›|µ-ã4.¼òJu°¿iÎ56qÛÜ)…ûȺ¾>bég%¿q_˜€»yÖíñ+bÙo.šž¸Ù|A 8AT<¥cTjƒ+vÉ<&14JHàõn–¹r^Ûùïü§Ž©Zò/¸mKÞbÍ»4 ž¤0ª^G†»ÝÖXX÷ïxoR%>íçA5P¼n¤ý¯%§ßü}?÷ýõ R¯ã,"Ôoó¥…\ª´ü¢0±,Uþ4b—ë8쉅x^$‡¬ÊöCDXTËúy-„Õ­Éâh‚ܽM4q*¤Œ<¥4yŽýb]GË î¤íäÔ°„%¸ùëyœàô0:™ìEï¬ïY¦Õn‹,×R7À6­];Üì̶•„h¹ƒ‡µÛÿ9º½|”õÚsÛ‡c˜æG{'Ý”N§úmtÛ«›#TvÌw¦XºH#$¹"`£\]¨sS‚î/AÇ2„¿Ÿ–ßïCÅäñe!á/t¼ækZö¯Ožö0Y/vÿìq +ßÍÒ«}Ú”C*ÛU/­¼w»nÕ‰Z¯jç4´êR‚uVŠ«ö«j4'‚JB#‡‚>Zä¦Rm]ªk,€¦{Èò#訨è«Ñ„1³¿òqLœÁøVûúíéa‰¥Ž²$|µKvÈzîä'Lé‚ÍïAw÷wß]o5’Ë ¹_´è~Ð8¡ÕHêÔIª´‘žjL[n·˜Sq†ä î [ +4nDWÍ5Ìfkñ~õ¢Â}<~–*\q+ \˜=û&á¹ÉË8ÿÙÔa}Ö«˜Îì²8ys­p·y´yRù]3™ óë¼/V­ZCŒaÿ* ”Z =W<'›Û° +p%ŒÀrúÊÜOj¥DNÕp^yiýýIÑ®DPÕ•¥ò+:­×1²#s0ÇÆ@4¿²„Xnz¸Ù=fšÚ—6î;ªJú.Jº©»ç{wO‚{]¿ÅÙ‘¿Ch"ÌÙ-D”k¿©éÍo²è®Ëâù²°84¿óO ·äëË&Þ —Ç:ˤf]+d4}\®J^GZ­+‹ÎpÕצ#3þæÅÍÈmtêlw“MÜÞ7©ì÷#8(ýKtÄßgûx)͆'\ÎuÎgù¥´s ¡Èê¡Éeiõ^WF=®»½™-¾cåó¾†_ùcÈ}çK·>§Ç%ó¼–kí×Ð)’¯t0ÕÞ ¹1üÁ¤Y„ â¹TÊ~ielÏåY\ûÝ +S)«°QñgÏMµKDê¼=jÓ¿mSû„=«n L·æ|c§ÔNÍ)ž~š_¶R„,.´ÐRçÛÊ΃/<Ü|?¥UD…šÚŒcM(JÄèsþkÜÃÛ/¶d­×޹¢JÐNé@ÜÊ8ÚQ¤‘Ò…Šæ¥»\?éÞPc–½'8`¤! ý>ÊŸšý:·©IRoÐ…MhÓî{Pgºå«ù‹ÍÂ@Xo~éŸau^Û £‡ú®£.•Õ…•å;1® +êxqÈW•Fî¢Í°‰<„¹i½¸Ó§‘3‰gýÚm?; ì}.8á‹/ë‡ïõOw(äa›^"×Ûü™øZ‡‘¤c’)C6%ÈñµÄ€~n4ÀiU8+suâ©…ÉiªZhÑòâ¡-ïðR§¯‘ªçßþÈk9f–9·jºæÜjÏÆ7k O.6‡{û-:Ù1á¨ã¢ˆܵì=®W ½ïÀÚøÎCwg¾{Aó²‰ZÄ>Ö«Òf1ÛÛϸÆDœòK7™(hYkàé2[ŠR:ßé ¿d¶—±ÿЩ¶¶ÒºC,VëÇóJƒðwÆq^Ù5ú«pwµéÞìfý£®ÉcuŽ{)UNæCÛœ¹âªžõçöR‰{ù3oÖuõx¦·Ÿ­º«­bø˜ÐäÏ_>»+nóª»Ú+¯vð×kü¦·–kš.lj«ÚBZµHK.äë¶<$YòŠHS®FÏ|Ú­`´”Ƈ§Lòµ 1è¸SQ­·HUü¬ÔQEééoÑ$ÉÌhiŽbn-i!„…€Ž%ùbˆµ³lWh8w +µ;â&=ßLut ,™éÑR­˜s÷Ai¥/ÚéßbÝ!½=˜0‘2îeQÔ²Ïqzn?£Î‡DÀ \ðj[Œ'Ö¼¸tXâf=ʺ¿ÿOJ”O[§nÒÎÕ¡ z•¢„¿ÝMÃÒËL EZ0ªÙàpz-°s©-ζwØ875Ú;Ÿê;q•¸mnú¥K˜þqY×ÂVíÂd¢«]çåˆí’·9ý¯Õ-[VĈËGy!¾¡Hä]¨&^ Ö›ï¢TÌ™§ÌÖðw-²ãKrßÜîIw}ÀˆÎK¬m.Ýtq,¯³ß~Ñ‹mƒN£}V/BÔÿ§&sÕC;nþ­R~Å·0UV¯§Š¡|¶½'ïõ‚4ó·…±ùЗ/ÆMêlŸÊMÔKPš—¶}0Õ§2åèMÚVS žz¹Z†ò†ØŸTÚé½»T9ÝUJ İq·t ¿/ö©Ê+°ãÅ«šË/m¾¥æâŸÅŒ“ãƒ÷Q±0ÜQåéP7È™Œïåâ-dø©5(ÐÛ¡+ìsÿÿá—§ÕkÊ·ä;ù{‹ Žú ’·½‡˜§»½!kO ÓØ)±JÄÙ4Xê j(›hg}ê®8áåÝŠ!Ƹ)ê®4˃C¸í!ÈÖ ØßݶLG„þx˜ óu÷På1»Ð¿¥è¶ +ˆÖS )'Yëoß}goWÕ´8Éx·ó}Z­G¬@³?ØÇÉ}¹ó›¥½*‡öç¢Á¨gïOد]æû‡ëuÏ©¡öƒ£ÌêŸ;N§OýO`U ЃVå?¤‡åÅÝ-‰rÜïŠ.”Öæþ ?É2·#Ǽ‡!ž}͇Ü=^Ò~ŸpLÝhLÞ2U–§çNÿøk=Xɺ‘’ÇUí[Š;~—¹>·QÝÞeéçÄø ã[·Â’Óéßk²ª ÃUÄ‚øPG­ЉßY¿èNãÏáŠ,¾K Ƕ[T,×N¼Œ$¥ÿ# ;_¸æz-WãFØ/=á­ñMü‡ÜµœãxýÁ¥Ú4Yè䨅£UIƒÅûökÐÖA•‹Ä©tìTäÉñ£›šŸ$n¦ +ÙTlõ³ 1ÌÖt[£+˜ñJàÔíŒ4:Ýllõ2…¡C¹:¨õßs Dù\`Š «=2…zŒò× ðøòá@¾—G]¼M}æÃ¨nB­6X‰ª8ZØ +a뿃ò1WwÅÝ´Ñp®Ju8Ã#Ûc'?茔µÃÔ3Ò-gf˜]Úê¢%/­L1ún£ÊFQéÙÓ¹*ZÛyt”¢ÚÇHæz>+æq}½ýz?-¾{E7†VˆP$D&àaGOXùBÚ€áU6>_f§´ÛÏÊð<[Þ´øŒîÛoÌ9|y¥öµYmVæç©˜§¾²D#•b‚ŽUœ¶.Ž uú”É›ûθ[woÊßò,ZY™,‹°Æäv TÖ_yî83Á^¨ï6ë²XéOsÆç@~îKŠso&mp½þP¦§¾ §÷¿(m6NØüZýA§²÷Ë­Uî¶–¹•1É ™ZDòŠ)á2<ÅA[a8ý.‰¯c=¨:ÀGëmŠÓª¾½5 9?"‡\_ÎÖ”ƒU)/ýï¹&ž{çþ~ýihY«2f`X$ÕÈvf×îOý¨dŒ1çéXe=ºlØe#þ„æCô Ôl܇•?·¦”ÅHŠºÖËÓþíK…¾'iåÁïM›2/Ùéÿë VÔõ*Ç»`aÍ–¦ãÜIõ)Tz¥±þ.±I%·¹ù!«)]ª50©WQV'ÒA­ô«wô‹ìv•?…ŠÕ˜øúºVqŸƒ_ؤ¶×ÎÿHƒo/íUÔ¢I¶"Ç + +®jDEÐ+# +à1Qáj¼zZ73á´ËŸ~­]?>Nôû2Èô ©TÄKÜ-h³`LhÅ#^4»ES-¾ÿÈ8eLWtã*žÂLo-shèè’[ý°”v$Ýw H›¼Á †ãPÃ/§1· æ‘EORÉé“ÚÕ¶›_ñD ö8õø›ÅM#J6EdoŒúVÃy'\ΦWmm(‰p™¹›"ØCå‡%‘‘½ºhê~£ÀËŠÆå¿o|Ù;˜Ùì·¥HŒ-|9{]ªú9þŽÃ«_9õÃ$ Õ/&W8Qç=6I%i†pwÒõã+™áw–óÉçÍmSpÞgkɰkÐê»Êz¦øÉ·´ zÁ>HTËh•š¹A1_z!+›Ñ‡À, +ˆ‡¦-ÞDžbδôžÝÔg½])¾¨Ížüõnê7V;”4B­ÝEáÝÕa‹‚ìÙöÆŽzŸëÞª;jUþBYâýú_j9ÓÙQ¸šX‡¬0ÑšíÝ!š¸¦í» +©@•Ó4.‚ñpùŸª]Ç¿ò¶ñè6Ò=‹2ž MÌ Þß&i÷•·^„³7åºÇåïn»³ZM­n»¤r©Ž[Á{çL>ð®"qw/ÞL1ih—âˆ$6ð‡ö¨çÎ2qu$m¬s”t/úzª&ãî:dã6,ߦ^Ý'7™¥ù_¦#O«ÉÔQ]t2õLî!c2Æ›9”ìû>÷ôä¶3kë•°¸CÄr£ kÔÅfƒdcoÂã:ÕâæÚr­-¶ŸØ^U¶xµÓt8¼2}˜“eÍ ›% zÍ#€À;R‡-øk`ÁKÏ@ÕZŸ¿Ç‰Ã7â†]bŠ-:UUþ&s"Õ~#sûìŽ\+Ó¯­j>ä+ˆ¼»ä€¥;KÿÕŸFvzìÌíáysÅíˆÜ¹Ãš0U|fbQŽm])6чûŸ lÖ<ã>é8»ö×ëSÙÑ&íZHY˜ û»É/yoœÂùŸøx8€¨i´¯³õKÉf¨à¿»Æ) +»{Þ«~7•˘߂³ž=ŒäÏDÃÇ©J]ÕX!^Ö/LÊŠA¬‘?`í1¢A¥»ê4äÏjò·oqÐZÀÄØrLk– Çê ôkF£b> ;oØtÞU»¼^×õá7wˆÒXuµšUkw”9‘غ4•H´œ#Àz%Bäcàc^Æq…w“çtõivqïIXe©xV4£/õà¸ÒDäò·F,r=µ!þÙ ðå]½Ì?Æ—Kâv»í3›»ý’‹“òÇ<^ˆ´]n¡Ü½~1­4ƶΡõù±§ÚܲQxÛ'9‰Eù&œgÿáú8éj@{òc›i, +½¬Ü*è…úºO®àã'åëgº\0O.׿ü7,iù…óæ.¥_Uûõ$E~þ†QþÐGqÞ„mŽžÛ.ƒÆÄãÃGõ²/çH[élÛN8°¾,çrÅÀWÇȃ6qÌ%±¥9çáÆ:I¬Û³lt®6µûUC› ~‚n8m÷7F"z(sBYÁ¦’`á[[i8§1½kB®vs2h1´­ôj¬OŒ—¾¤Û…Çx¨ÎxÑ[K£!“„ÕÜèÁ©¥HÉÍ2÷úÞ¨¯u‚¦$¤ø(…¨±u9jòâWäþDd +wƒ Å14*—†ûm¹k#· +ÍI·éwÓR{Ýίè¥Qëˆ]šºZXúªÓs1ƒ‘% Kš(‘Ÿ+3j>ľ¼æ”‚ +dáìúR%ë~Àp8ÛÎ2'¿qu–ÜEÿN'ríln”àðÛÑùð+¯JϸPJ‹ð9dŸæ@zf HGo…My —qîvUÅ’°¼^þ ¾¼ZÝÒà áæîû›(Êù€¯·]髜œvó7V8@ÿ§¿Ö¾8­f·÷V×ELk°€•§®ÍÔ)ã:hÑÍòÄ[öÊVÅâ‰?SÍ^¡êš4WpYÖ‹‡5¤+XÂ{€w‚¹ [ BÅ^2 ‹L~Ž@<¡òÓÕ–\$ï‚u{Ð*߇æLÌL.*z¹ª²’ufS… åÅbŸÅ%+"àso¬×†ºPД/¨üšôŸràäÒ“µ»Õêîeª£¯×ÞoüŠÊS—qÎT׬«,w™„ÚÎs-¹J™5vÇ8c#­é¯ÏW¯»à§l$²Øiøg#rê}ü•âýÃS+£Ú·;àý³ôè\ŽG+…Ÿ—rþzU=ƒ‹¬íöæe¥žL$M\Öž_Ds LØ¥:ò ƒ|֨̉ªÒ³þÎFÈ“äàmóF“)Çam3”t\9ÙÚ"Tµk2±zw‹Õ9[ŠMy†ÕÍŠÌl¬v¤Hϳ¦à=ÔìlߟäPGûªº=¼œÿ<ÏŸ3LËÚÑ:ÖâîŸÂo«†y1ù!ó™[Ç ’)·Îhqßôt‹ÅÀ.!,Ú»î'JoBpú¨Ó~ûÏgz ¿Û!®ç•Ï/ !›šzlŠ}•+Ÿ0c4ÿ~­èaWÀƒ<,;þ¤ÚÔâv®ƒ2€Ï‰m÷Ëx¸ÚŸÒÍÌ?èD2Þ(¨|ïÌ_Çzêµ”ÍFaî‡Ýíˆ_Óïa¿n0]£ Úž&ÊʱY#†{¸ß§ü™ÅV7aúòê^a„!+U a0ÎXZ©üâá}-„ªSò ²øØ‹[%óŠóèL`º$ïó¾uté…ãØÿil5ÍB?ºÏל—&WÄÒI)+Q<»&%OyÜT‰¾sHÜf!¹ùö3[¶Ê7—ÂÎ7ðÔ-×4Ý·ýÇ™W Œ!{¢ËÛ(îòGˆ×t͇_ˆíå¼’ãæôª0ïEd›¾êuhŸZÄö4ÑÕ£¨7^ßSnR›1Ó©Ü*Ë¡–~ÌŒj |€XVË(¨#á\ÂA)oŸ­€ÎNÔ¤žféÕøenÍ2:R¥Du}:¯Nu¦™è#þ°jþ®Õ(Þ= wf*£mðŽ”~˜˜#Ò‰ÙÊÔ\Jí»’»–¬²¾þ¢¬hzx‰®1 +‹ÆØ¶k¯…¿ +»†ÁpCY¸ÕâO=°©”š–Q·ÖN{úìx³¯Ñp*KD^mvóLošü½b¸ýïXe +MÈÍòH íŒË÷¹R“aµÿŒ…)i¥_±X³,õn–1Ñ£êó4•Îrb›Õ £U\¹ÚwÙîɨ«…GÄ+"„2$z kè=¯öù^®,Š‚2„•‰¹j”ý’cÕµô" Ãs#‹¬¯[ýe9T¤zÇ¡–Ö—-`6’Ü‹æ+˜Wæê~·â®Êþñ²W¶ã´úô;m +šúš›]ýµ'cãÛÙt iK›œÃ·ƒàIÖc˜{wâ{6•Ãõg<¤æÂ‚þÜèü(ô7ß«Ô,«yœi߬Kƒ¸ÃêË̴ͶkH™öÀÕÆ²Øñð.çƒý' \¶ü9(Ýã^ÁÖ;9¹Ýҹȇ÷–6‚ó+á‘ü˜peë´öS­ÁÎe ,$ZÃM³(f{5ï°}®–~¯\¿ÊŬD¦oÙÁ¤ ”º¸½éÄÉ"ÛÂ¤Š‚+ÊâQÑÜd«BfñòX¦s€Ò>XÓµ.[µ¥%Ö7¡k¨V·j }©’@ø¾’¾J_uW1ZHé\,ƒA}íÿmã÷žr`¹ÓÝÜž§Ès\wkøƒ>m6¨EuPϘŸ¸ÕJð´Ý Ç´Ç­öM‰‰ÚF™uÌìÝ—G,†UGЙ‹³‹½H+«Ö~Ö¸êj˜øø2ÖwävJ–O÷¾æÓï¦*W¶¤z|}Á½¡\Ã,ÿBÀ WüËïBå܆¬Ä×B´ê ÃYhìšÌ‹9gq׬ަœ¦/õ63ø¾Ô}í¥*˜Ü2JR R”2§[·F ¾ŽaßGJ=óX~Rãƒ=iÛÏCïçot‹S´Þ;`®Ú˜J‘RÏ)O>¿¯h4ôÞj¶k-y{9qýI ¯Ïúƒ!4œ5á§2OÛúp+œf…½ÉJ–ŠäÂBÌ·’z½Á«íþO}908¼.>•Q]<2èÑuîxƈ¿ýfÅ…å.W“îîd“×·x}²À®0eá‚\þdƒ0Ý?ªT ' ¾2GÞjôYÏ +¤W’ƒG³iïOö=éñùò‘Å—klðAWìÊs¹ßT§|co^Ѭ¨”AÕ2hU´ÛxA9äxÍùz˜-bìQ©ÕÛ=«’d7¬”÷`¾"Díšx~ê/å¼þÄmˆi®ÚD¶¹®ì׈Gl;èÔŸC¦†-2ʦ¨å†¡UUùNŽA ñ§ýÑìø¢–´rÛÔŒo…bÐñ¿ÀÅ^Ò[[¡9ú¹ŒÒÝþz9²qÓ>§«®Í*½²Oš’ßhXKš PŸvÇ,VåõÒ>oŸœ{ŒØ÷”ãÛ4©Ás×õé)†è~9º Nm²@yv^¾²º5~ocÒrUô¹½÷ÇóÉ+¯æÎÑÌ2ã´gMydtÄŠ¹TÌ·IÕ‰cWœ< +Z~¶Ö ÞUØÙBCðÅZR`ï™¶0Ÿ{Px |׊q|Ú¾ŸL¹øñå>ßêL‡fçkjzxÂXœŠ‚¥º;¯iÅ:£7mx:”ùAi×Xl¹:×.‹€a+ÃÁ®ÐÂè ÿÉ_g;ø³¤ˆäÔªÎÇð[¦ùihÉ`ÓgÒ“¶ô¾­ Ñe2.̈oÎå¸(FWÅCq•êOê*Wajþ*ÖÞ~CÉ‘v ó˜†ì6 Py¸@Ãä3×`ø!KbÕô}iùËr ºgȽõ·?õa³ƒ4f%¹»ÃÇFa(»­ÃŒÈó¬ƶբ¥Õg)›F‡ ò³·ê |hšúsòk¢O"˜wЃ¹J믯¤üZ¿J¡l(\}ß°±®ö°gdy…êœâǨ†¯"ʯkkÞÝ‘ZûÜ{^š\:Mñ¹Tj“AS×o.ªW´jƒv µöÉØ± ã| +63´ƒñ®§üN¨êD} +¹¥ú¦ßGTd¨FݵiÒ⺌ Å×]á­jƒT]­›wûÅ5~N[sè;½˜kñ9ó¼k|p4Äê‰P˜ÛÅ8vêA«!·åuÔ:ý†ÌÂð‘}ƒ€ ÀbÇê¦4{ICgõm¶’I­ñâÜ«XÏè•Õûõ7Ÿèn0ñ×§Ì`\{:S+)¨u}©nÒ <{nÃ{²ÍçÕâlîýÏÖ<¦¢ÓƒwÌG0y[ñèÙê4ðªÝ¾B¨=f¦ wº¢ÖBœ­Î芶ç3?M*Y¼¹«Gó<ësYà¼+‡Þø[›Ë£t +þÎBkCüÿEtGÎÒµój’Ê≪iKy‚Y“yxVÅéndEJÚÓï_ªüþ#îÑ í+ìŸéÈ÷´ åF ?NÒçem³æ-ñ‚d]dN¸îã¦íýÚyFÃ/ÊÈåÙz럳aKe].µêU›ÂúJ—;™€¾®F…¯Ž,탭²¡æd“ÕÆ“?…€ËA“ÃpYxÐÍÁ°ð)¸twujÇÏk[~µÿß9`è:ª¶ä¤w—ÓoÑI…üå'›)¬µëåÓ‚_2Ë9N(µ®ÊO¿=bã¿'™Å +®Ñ+ú6:}‡`2ä êÙ$y6þ6{Þ'Äc§MUö¤Q÷V)¬3¶B÷‹¥žÍãÓIßa¡½jIÑ Ì2F“kÅ~CÌ[ê§Å³„òì•æµG΢נsõ!x¥?éÉÞ[^÷›ÞÌí4ÌC«÷=üªžô³2¶L՜ɔ<<ûs1zýø¸¿Q“†ÖtMƒð2µiº|Xõѻ錓V±}8ûê¡wõôMÈ¡­ã®å‚e ˆËô]y¶|]j§üÄ‘;@#úò\ZÓRÖö¸.G÷¤6…éÑ:¸˜ŸFóˆºÄt¬–)ªŽsÃÊá»6äë§wY˜/Z\B~L…ïWø šˆvTÖsaP»R¢ž;ãþŒüŒ+J½Ù£‰?Ž•ÐÕçõÏ'ݬ)éÇ/+´­=ï.ÔBMŽ‹h(àÏ^KR¿ÎUÔ×àÝ_/Ü‘´hï’ƒüt7º®Ú–ÌÏzÿÛàbú^s&9BÓÚ,´ +…Àßë]áÄs6,J¨:l(.1ÌÁ5rMÉónÄ̽o5^{:³Ö²*ðcu¸w²ZÑÔž¯ pÙ¥y¹y6T¬Pø¡€ð½ÿá •y°?¾Të#ðñôjΜÞ.ôç!ÿê-ȵղJîÆÏÏ5FmwýUÅ?-1[ÿÚõY"ÝO¼SÜ€N¨åyqßÓW‰ïþ´€Gû5w¾A¬ÈÎW¿{ßV×#ïìÒ|·;,åŸêÌwO$oÈ–V7ª­‰YV\ëÍY¼hK•`ŽNÍHavª-Nßùë…ÒŠÌ|ܺüåþ&çÈÕ3ÑpÑ=+|ô MGyê8 ë¾½j6fãØ ÆÜ|²Œi»ç6þÈÌ\ønövçƒ)[u꽦-ôÍX"]œ¨ëb*Û¢ry5Îg{_½;_…}vw¢bT8zpÒ¸I—ypŸ3JyžU¨T|ò.ãFý~³ÞÈà)¬Þ/; ú%iBé¸ùNÒsT½ò¥oKçý¬geneΧ"@¥'‘çPgð»DCÐæåµ\wÊ©Yõ?L«9yfÄÆ. ©ü<]¤Q¸°â÷NRµ$±œWð{:>¾$ﬠ£Òdõ’&Ú’’²Ä²(•¤S¨‰G¢øsÒËñú#©ŽË‹ïc€™¯þ° ¤™´’°â‡š‰O%<Â%É»Ad}œte§9hJï2 ¶‹|sÖ³˜…DE¼£Aí@š°®9bB\8ù8›ë*ÍN~ßF*as(× {÷÷¿Aq˜<¾áòM“2±auŒeñú-XÍ™‰ÔŸU7ë'ûitANŠ&×.Ní~E92¿9Nô’Íò¤èÇVGr˜òcsôŽ?‹ëÆT¸g^×'KoÄ>ËÑ]Dbó(Ãõ +lŽ ýo~Çø°ho íˆ:ºÔxâ4F¹ë)8Ÿè¦à}—…d𷛃æãööfÌóÚwxÙa&ýu?L¡£˜é6SE_dÄÞ|ú¹?o¤áæ7ýC3‰or<̤y DcB¸ù* Ûb­/¹–òp»§$v¾ûÍ *£¦IPš!_[CͲ■ßñ8ÕªñãäU‰z‚¶Eý!2åÇkáÔU…Éi ŵ5§ÓÞª×þ2”¢ÔVBoEmu>ð·„Âj¡äºÆ§È7Á\˜z[jàà‡iüõݨÀOÒÁ¸IW…3i«{¿?èãDŠïa-}ÑØ[Ñ´¿ ÙÖ\o–+u1½üY|zÜ}Næƒ •JÓw’'èžÏ]JX¡*Ÿbî7¥?Ó>=D˰¤ç)tž ì °Ü©€zîDá#'ò¾ßË»waÄ䲟ÉúlMÈÁsd¡Y£:”é|; ï¢)<¤5ªü/×báÆéÉMíþÿЇ›É=îÁGe%ž,*îŸC8nDY€,*]¤ÔÝ|Œïº¼¸©Samƒ‰Ù?ü÷°"öš–ÔENî?”33HmýA¹ÜMÛOÔ¦´_ï  V´ §æ5}išÛï/SG¨ªÞ<˜i|Âäæ9FÈ4¨âB®Ô§^—l×jãÚ‘äÖº¦•YL?åa³7³ùúsÇoñϺE«_JU †¬gIA®H—ì 1õíÈÖÁtéJ»ZGÿþ¢¡ÔÖ!$OŠ_1lõ–Ïвš¶ôŽJjœ +^Ù”¤õ”ŒoíÂÅâ×/­!îV×ÚßX¿#¿ÒÿÔ—‹žq[’ÇX“ëLõe}ÛñŸü´uWJߎå‡û(’ªä ÜŒ>ô'oSÍ)Å#•Æ+%8=#húÅæ=k¢E¦Í ÉHi|©ßALž>9œ*“„6¦lp:ò\T줷î8¾/N0Û+¢øŽi ´Äš1ˆ4%¤#SËË?‚™ðª‘okóçz–ŠN©ÿVâ¯êÐm!:J•fƒËóðKÛ!JËž€jž+^”¾ò¹«T¿ÖzéøéÉ^Ì•ÍIÙm‡EeZW~õÐ΀jrv€Rë…‡ûCõ›,Q5£±¯Ž ëúýMæUNò·õÏÎS¡qþ¦4ŒM‹Ú#F èVÙ³?Á†\^t §ÓPˆÐu?´œ¼©+ë +É»ù¹¨ímWþŒ§ÇRAMRñ1êÕ;ubýcOð]¯wò}cV£wuü¶ó¶ÇÉË@_Bż;KE!ŸîlÓ°~Ï&ð]êFI­~Q½pT–;»j¨‚ðúqgö!q ¡@(fåüë¶“ûØ±Þ íi\]#¬k 9bPTΈ›S~©2¤tåp¼å#µ†øá_Tv”üÁzB6,ÏJÛ¥Ðëíg¹AíYkÑà°¥ˆ+òÑ«á¯â!oÇÙ6Æz•çjo8é¸ÕšÕˆÒæè¥0J½ õ½w2b¨rÇÙé»då–ÌÉO +kë7³Öit–eb5üÙšÝfêÊ´¶•Tk”¼ßt¤?:nF}ƒ)ûxÞC¶=Í×§µ>hªO!FŸu™>,[˜oó·U¬ 륧áô)†ÅˆhVKˆ¨·^ á‚+ ¢×»ÝU{•ýJDÝ>‡Rï>Þ+-ž—}c]=ÉÊ•GZ+©Vuú–{W=չ鄟\’N*Câ× +9üî#íHnøó­â¾ +mûø¾ŒWÁ$¥CÁ* +«ä‡ã¯ÉB_1Û»X`G%mƒXã6òmØG¼*0ô†¢Vëé¥}û@ªüòú[?Ù¹÷1'QôpÂÀöôKyÚ·¶¶™0mÝéÕ&ÓéÖQ•˜ª¢±Þ¶ù^¦Œ-*R° Žg¨HËHæ]ÕÜ0o«iCï8!%HšE-¿î©ù†½®QÒÔØºB*ªàíM—±¼<.&ž¢ï8­0úÆ„Y$+ÜîXwRcy7â¾Ó?Ÿqö,[­CæÁ U›¥qÎÀ-"8½ @ªŽc2È+æ¼\½y»#„h·å  ÔKCÕ¾L˜¹jlöÒÀq*¦q +?¾Q†mj/ kW]à«@ޝ²GXÝc´;p]„[±f±/ôlKk”‘3=>‘}°´r¸dWRjőѼuS\«¿'Y½]wÚ.Ìu´/ÿêžó6òŽlÆ›:sc×Zóçú5™ô&0ÚÙ Ug?Ö;q<Æéq/«Å›ò¯&¶zm÷aJˆö×*ñrÿX€„ŒMšæ{ïÆÓFg#bhAÔ_öîGk=ÅyÅmqÐQ‘¿‚Åc[“‚ëËs"5©hë°ÅKÏÕÌ´Ü©{œ£~(íµëÃðyêÆt1ì+èp¨yä)dzTŠäB•ió¸Ø ·&(~w8ÿõÒ½NEÚ£&ø4jºIGëˆý>µ*àÝsECaµG-9Wþ|:EuxÞ°Q7em¦NY“ZI~þ`·d[E¼µÅ¶¨oPFµtõéû>ü%ïíÒò5èV¬âQ§™€Ï0¥î”îV8ÍUPÖ†rJÒèítÿŒèënl7™Åú>÷Ôþ´GE; +qjøKµP¶)å‘~ØLL@½JuÛ-Ÿ~¹Î?ÐõÎv_ËΦ­¿ƒ[:²&‚Á/Ý‹½h^.z±ÀMÔ´¶}á®úú*+ˆÀî6m[£íx+S-‰½­¥Š™Îœ65I !ØïX–é´L€Ÿþ—"ŒåÙì¾—SI[æ·¢¤xžë=80•Í¥öJ¨&í'ax4G¾¶šÕÂåiÕÖÇBBÐ2ì:f+j–Uen"e &gq¼NÅÓ­ ñ›Ã5‹>ÛªTcƒ]ÅátÝqÁý6Ì“içÍ—f¾vBÞ9W¿+Á©öz}îwZ)}KÐ{EDoAw,N„!¬>]ƒ¯Ñ–Ý…e“ÖK[þ_P)Ê"ÝÞF§¹`ž­.5ÿì­ÚóÔ©Îä/°{i‘|" º$#Œlß^'qè¯ì‡È¤öŸZ'ƒG´ÄÃ&k5¶uoô¾r½&ýJ> Š|©Ò*HïùÃ9kâmRRztäFbÑî÷EŠ´/çñä¤û“R sêǺ촿]eƒíkÚ§w´ùt Ü3y¥xæq­ªóuÛˆ1޾^ñ¤µG#í$tÇ+˜X¤IW+âò®<«‚|.Á¶w‡Ö˜¬o€oÔ­£î°óÁ‘‹y;ТvM4·u1êï >¬Rrèè81‡~à ÕÊÜ£Û¿ˆĶ[döt´áóe–ÐLRÔ4+?`é*.:Ûú :]{£å½Õ™ø’T?Y‘0BêàßÄÓ³Ñl"³#sëP¼àëÔ€“—{Ì<¾OÓ_‚xúÿ¶v£,èÓzËÒ]3Àœ)WGñ|ts5°ì.ü;¾ÝöµÏó¸%;‡f£k™ ì5x¡ÐØÜ}8Û(äàO†¶ m_ÒuF}˜HZ¿R8e¯ÑÂ2PRX,þqt][ªAð[Ô5‚Š ¨ä Ó˜sÎéÿ¯ÞÇݳ«„žîªÕ'L}Lrfæ’rC€W9Õvr´Kx»:Ätýæ¹à¸!ˆ¦V—fO¦ûw,üÁðîAýY`XwƒÚ{ù4>ò¿…Á ]-(ÆúŽu¢.¡• ¢kf€|Ãefx_øb"GW®×ácðjþØ>ýYõwcn,H$éƒ:§ŸãXãNí¡•8×AsDñM&ÏÁ2¨þ‚´c5ËoB«h±ƒ?!I?dÖÓ«ì’3¶+2ÈV&óaÌ}(¢ebU ¼,ß+‹ÍjW+´¥9ÁfØy´ Á5¡á´#à÷›Ã¤$Ôaå·v–§ñ$zn†ûNŽûp¼;~—þ×1mô0qÞÏ/¬ +‰ãë‚™žp‰?±†]­…æ'a÷n¿›ÆU‡æy]OÆ¢ùn‹ú~±0Áy–%˜Èuϳ¥h>Ùæ1ö¥³ØZ\×y u»ÿ{n?]ЦTÁg¼N'óþÉRëYðgnÄlˆ>ü:ûe:‹G³OJùþ–$ºjÇ¢ÚýWXfjjc45‹îŽ·Nzx~‘ègJ8¹IQõÅö^äÑÿ­—-¤úêŸ'Ïswo»Ðw×Tt¾O”Öî<<ò~ ¼ØFkhkÖÇ­q`Ú“ú¹ío%È`KÏTã‚?ºZºMû»Ù…ÉÊ`íËý ™óÛM4•­[µ7’aÎTiœÃf«Géf›S^ÓŠö9ÌzUÂrõ™®ž'-?âzÿ€múQéÀ¯o³¼ÍC‰™o§VvCÔ TÂk¶Z§{ô‹‘ƒJêÕÉÆvC‡Ðí¨p~+ÂÌcã´ººØî.®¬„Üð +X,…é¬eý4 4ÞjÄA0A/Ïh2um2é-U®ªíœSîÞÑŸg+êTŠbcõÆÍ4¾ïk+T’¨Éì¤ÌjIÿ—rQiw¹«ûתf µÕÛŸc†«—®Ê¯RÈéK¯í*üg¶—ÇÒœáÂÁªÔ–¯¬L>ï¯!süARÿþœ®ÿ^5»1m;¦†ß¤»²ìÉ ‹{oÝg޵†¯Ž›«ì9³>#öëüY®ŒkÉú硚ÖÎýÞ¸KfvvU…áX«¦\×ñb¹žjã\Šs¥£øyþ0°!rÇ€SßÙÖÇûÈqR!¿NмLzZ*cŸˆ|pSÙÁ¸¹êq¤™ +ï¾~ãq1è±ÞYåç…¹gµ5ÔxpKgi'š²‚ìûösZ5¸ªz–¾Èg1º]ÁëRÚ볃 Áp=öÊLòvˆ„/X_D ”¼9užs#åÈÏÿA)¬:«˜¥ú¸é½–f,Ë4aÂ21VÊðoaöÞ™ +^£õù0üÛ«s]ù’åmÎRÁðapk®—¬´aÕj Ã?cW•@cÿ ŽÅÛø LiÝsX™·Öàs~A%{N°ÒCÁÁó0õdAÑ£nJ¢Ngκ¹–¼jÌþ–WnÆtÀd²ÖOzp&ISýøyß½"ëÝv'€Ï5›óTlÍ¿Ïïuîž¹x/»;ÏVšG£,½î¦:¸’n©ŒåŽð˜ëÈêÚc½Lš)$’æ¥æœáß#ži×K Íbñ/²E¤[dõ첺¼ jïwÏ@mû'.–³÷·ÚÏŒ'íÚd?#KöÖ,¹ W©³Ç–÷ú½hiÏùß;n¶/‚Í]÷khÅØ%£f˜‹uƒM)q…ÜÓÃZßçß I­¹ÔÕ¼¹ï_ÑK³fùÚàžÊÙk{î독~_»Ÿ„Ÿ•¬Ï:펤I9+D–ºo¤¾B“šR“]ÑôjæÂòª³œ“4=|´l¢bÑäC´‹]¬éø©]7¤}ü“Kâ¨Nùá0d³7 +˜i7‹{¦Úõ‚@¼oÝÓžù°Õš÷õ³AÓsêËeO£jíªÕGú”Tzµ ]y+æ2Ní 4öÇ{ßš‘Ü/«>±×ÙTïw”²Åti+L¦§Øh=ºÕæ'}'¸CcºVé]×LLÃYYGvÍÞgí.º§à 7ý-®`.®3°~œO¶qL0Nó?Ÿ¶ùè.º½“ædíî vÞ^0ì3£lµät<õ?Mû°M" 9Ó ØÎ§g›´'C  “£Þ ö7[xXÿIËèê+®Í5ûÙÚóןféÓ6 ò :Mß¾½õ„R¿ +zþ‡×½êÖ·1Ð; ¯qÇù-.¥½[·íxÒÃÓ›{±—ŒÞê¾; lN§ü&¨voõ SäHs ^?KÓüQõ´öºò‚§óÙéÏñ‚”7¯7+Í Åb¹eZ…â$¯í^|y²Ð´×}V{*´Zã?sX@‚û>óÞ{;’AN\ÚŒÖÜ®²öÿ7YüQþÈAœ}ÜÎÁdC¶ëG¥¶ŸÖn·’)Y$¢UÓª¾¹×ÊŒÕÞÌ=ˆÞÔ0bšù='Û¥ë$1±C^J¾‡¼0ì0¥…‰sÉÑŒâŸ\êÜÌ–ÉË-VÀ»;5dƒ²9ר|»î—×ýF Ä3çãHéíºÃ-Ó™'ïVµÃÊÖAÄS›7´²ŸÚHƒØ÷j§y}6‚ñ×~ú.æôA=‚yê1Ynzp=œmÛÕÀ¨ -Uágc½x—VãÖBh—o)ÉÅÄ\¶æˆ†N¶º~­¾¹]7m­ŒÝE‘\Ê­HÿùM?Å•÷9±M¡,&jwo ç €óçU«¡¿ªÞ{ÍîÊi;²e¢ “óNqþ¶aÊà¯ɳKð•½=µ>oZçKBÒYþV¬Hkˆ •¬R?’îÓðó0 /K·8Ù7ÜÜñs‚(Æ/”[¥ì÷¹aY«ÝºÑµK¾¡Z·¾„ôÓPN9ÝÚÚ +&W+ž”Ð#ÃÊ€£~ZKo[Ï÷²Ž5ª —•Ô±s?‘eK›]CW«ä—A¸ªÅU^Ͼ'šZ<üWˆ–_EÇÆF88++c&¢¼Mf‘o0°ø±t)Èn#«5þ’ÄaCšùGE‚mûE„Á Ò#Ö$ßâŒ7k]"Xåº}$÷-OÛ~KW«¦ Q>”dÇCWs«rîú¤Ç\†d÷Î[‡û— ÕÏo”¤_W¡ÅÕ*kÙTGTú£œUÜ÷jÝBr»y´Žƒ·; ‘O\iî3?OußÓ=eM¤5[ò}“·ºê+-]²ç,Xc¾ôáÖwCå÷Ðp‘lÖŒåçHØì3Œ·¥|Q{îÁ7òô°ôîø'¹¬íÊ8Y´[µm°“òØa{%ºCˆ4±F®jwæ;©þeÇSÐÓÚC/d´ŸW¦²¹¢Ó#på”×{ .oÞÁÍ3cËägpCòm c¿tª ˆs„ïü8¦Vaî~u‡9p°nçç–/ãš“€êI|ÐÚÅZ>eÙ40•ºŸ'¿úåLÈ œÙPŸ}ä¾Õ+R¦{ôÀ“×KÍ™Ö6¸³v¸‡6%aÝ>ŬaožÇ%3iñ#»(Ž.ðö(.ðJ¦Z{ްÚ*ñÑ4×´üM¿—¹Å„þUq-½ˆžƒf[§0ž"Ü{º[ƒ]ÙF®°C"²G³;d±Õ ¾ä®É×F‡sWúûI´·—0>Ñ7‡µiSëšÊ÷ÕŽË‚-¼ÿžŒôîôÝÑüÆ # +÷Ö'—‘¶?RÖ†ˆ°ˆß7- ÖW££•gt,ZÖÏ9;S½•XŽÇAkœ÷àº:ä(»'L]Oe°P£åújw²áhhlÜj°?»Y²ýµóô{ÛÜÀùƒ{Y}`i·™jíΠóFì¿9Vƒ_ˆÝj]çž“±o|4½‚°˜‘Rr÷R˜”§³³„Uµ‹Yÿ5±&üe{š]ó=„¿œ égŒ~[ðWÇ“¦ô¡//æT~½¢j©&Ú>?ú_{KŠ[<+–ò‡ès:žxËÎ~L3"‚bÝJ³š´ +›bj¦üìfó T÷Èf÷>øenƒ]÷õu¢Óß Ì~ÑÇ+ŠÁGµÜŸ¹tÛE7jޤ0wA«qŒì{•ZÔËÄaz7©Â½?2=²FpFøiÑX*Éuo™¥ýÅ+zO¶7¿‹­ÿ3l©æõb¯Ïænµ½<#òÂ~±»‡Ð‚©¼ÞA+j«^êµ’V.²ŸJ:aäTäîO’pàÅ]èËÇ}2ýßÝ8ÎEKÉâv„;M-Û¥`ׯ·ßvn¿åœ%a »hœfרí N$³Ÿ÷Xá9·j‰^·„Q^Óhí~Õ°KduìÅo²„Ú“¯õßÔw¿Ì_·¾ð.ñúLØÎc§tÛ¸Ó‰1æ²›° ’מuÚ÷lßè¼æŽ«ïÜÑP¯w§Âœµ*njÁ·f>©ŒT¼»–‹Ai‰ýk—T—¹ ÖÊêï¡us1¿Ó‘óz³æâÑ<J²1ÏêW§%?i{&x+ÍHòùä¯î²êòOqutÑÃý™³ík0ÕŸY~èû“àNlúÑÔx‡ÔE½â UÐêuç— N¦ªÄ˜ƒ ¯OzäMðz>So–&±WK=i\£Éè~¯$nÙëð Ó… ƒÊyëÈ;*nem¹KýšUVsdÁN¼‹òùííéóPcú¹8Œ:«N®¦¶¾Ÿhž'¶yó ÅÖ9aÕÀj.:šXÌÍÞ £Ô›-Unz­uºµ-FãráA>"H½:ð“GEoìÊÈ´™×¯°âM˜ÿ†&¿ªöíΧ#ÁpáS7kdzWyÜ›ï¤ÙÒ)*Ø o.Þ5”µ¹ßb±;¬qeä3è>À°|2õ9‘µÚÖ@¤‹^2Ïɾ³›üöïÚ*‡7ïÖ#\áyPòîŸK±ñÈ–Opið —±m©Â +î©ö5 SI\ßXnòÜ¢ñs¡sauÞÛE³÷øuÍò–è!ç÷ÈÍï”8Éq¡:Úùa zÆ¡VÏ+ãv¸JŸ++”º©üúVèºcUX*žÒÆñªïÎŽÔ^Çñ%쵓b}v>î)  ‹{M¹·ú’âð$ +9Þžì3-Y×}·RètÀº9ÔÒ0¢L°-Ï•ŒEüüc{Ûc"²g•@‹Æ´q~\ÜHŽXíÏv¹¼B¿øeD¬G$½-â·K8W2»ú"4Z®¿ž•?Pg¦U8?յõ¡òøÂ‚WrÌr€¿ËI‡)·èèàì¢å™ÑÄO8¥|1½†²#£e[±+ZWª.í²9´núý”åãâ”><ý5´mìÜ•A»¤ÊŠ¥E³™¿•¨_±¸QÿKÆ/ûS^µ¶ÖEPæcÇ4÷j÷î°Vú…ïŸÅÿÂJ÷ñ–ìf¢DFΞ.0 +çk«Ni©ù¨†×%…Öø-wãSwæÑŸ~tDkH¹í?G®ÁhP;*! ß+áhƒc}`ìÔ‚=ׂ}.ïÄOKõëDƒC*V#ºÅÛ­‚,_yOƒ$¾¨\]L–s²*œ»xk‚žö‚V;oëp!y±ÿ5Š¡ ¯© ®P®uÞmðé:¾‚1PÆ™¦KËió?†Îúç®fM¾îwD+µÔrç¼ÀVãEݽH|%ǨÚ!…OÉ“lóÕªŸ”Ž©*N¥ÈyÛrBÈéÂé¤c|ܵá êzL>S­v¨ÉéC˜ä™sœ€Z¹gãŠ,))ÆšvÜ€ðCÂâ«`t«Y†Ñ Nu¤¬hõë‚Ó»÷iù9­}~ÿ›¯‡kÃ¥Š¾w¸_gб‰$é}O¥±:vóæªEò;ߙ™¯|e¥uʹJw¡i¯}S¯þ7N%gÙæ4.õ;A=¤Bžº‚<òù—ñ«D6†å=ó ·9˜€Îø'lë¬jþ\ +Íñ @âÈoõ?=éãKëd¾eÜw•ÞVeÍrdjâZ½Ð„¸XM㌩íÕ¡ÛOÙuY£ßКqV°É:,,z]U¢ ¢6?žlþœG :’Ìö Yˆ™ +sò*¼ÇýdåOùEªüdœ†›¥¯¶×¬Æ£³^¤»ª»< U]«‘wZyŒ—NMoèÆ²Uš²K~iïðù›#Püñø’¾Šo2.ÞúsÕÂLêa.جƨÕmGx~y´SMѯÕÎ|eçäkS™Ìœ1²ÈöY}»‘”=´Á=-ï©Ûjå­ù&üu?„fg³Öó„Ñ¥kÜèKU+uÌ0"i²|M†¯Æû‹ðÛ6™†•Jmà5âŠZϪ;Øl¥ä¥ÿa.c¶Ï¥fH—¿ÚÇýÞd抂V5[«Û¯ql<Ñ”«ª +:EÞgó%Y!;zu›jè´3P's‚ÑÛâzÓ‹ël‹Xå>Ë7vɈ6Ù"¹3=o·JðÂß^£Ž£µ¹²¿æ;u­7Ýÿ ÊE—êplÔó Ìs)mç`ýhv¦ý¦UéÞ…ÁbûÞž7Ìê¹{É0ùÚþ:›.ŠªWhÓ—ç{sÿ¬{ÜÖ¹™ŸYo´u«Ú˜¯«Æœ†cCÉ©XxlïÖº#¶Œåí} –®[þ®ÇšDwšçïZâÕ9˜ë‘¾#a»iµž qkçe·çu朂yÙh¸ÁÉ]Pqê¾U5"òÿúã/qì"6íŽÙÌè>Rsöå(gÞs…¨1òË¥â\œÚ!JSmãw´pa޳<(‹Û–ûåšá´Ï×Ýnâë¢mvwý%á÷¦ xíß¹ùÒ)¡±Ï¿r´]ÀºîîÚ·ùD°àS¬7ŒÜ#^(ÒSëyG›7†ò:í*õÓ‰y]ÓgZïFÿ^¡v H½²7_Q}Ñ›%¡X|ê^pš™Q<ÿ¥»Ã÷ µ1xp«ŽmøÝúÀ2nL¦j{tsÌ·”SúŸ³ ¼¨&ëœeD_R¿« zÚbJîÑìF„R~|¾ó誒|ú‚ºèÏdÊ#h$Êöß »ÁËȸ£Å“ò²ƒ¶ ÆzÞ™(ÇxMùƵ^¤¬iüÀ…•ÚqŒoÎÍhZoXDk^r/h¨j|ŽkˆÌ‘“üíwšij?m]Xá wxÝÖ /W·æi‰è¬ù@4üã×»Œ‡!Zÿ´•·yosØ÷Gð òƒÙÖ{HdÁ›æÍfv1 €ÙX¥ÌÙEå/1Ý`îZBî=ÀÓþê7ÐóødYt¨¡ca m[U~•ƒV¬:ö´Áûé‘ÒÌé¬rëØùò;š³þö8a!ÝÂá{%oåûp f÷;æswñh/umúvï—¶ÓÝ-ÎÛa>ɵ²‚2凧¯Ag6”ÇÉ:ɪU¼{^œT +„·Sˆrb@òÌNÝÕÍî¦=«KD¡¼q‚û—+Æ_ÐÁnfsÅëÿ5;Ûñ»æl]é¨Åsímê/&8n¢”4*Ðÿ¸æ×-g +ªô«Ä¼¾á²Uc nbáB©ˆÛü1y9¨<¾´ÐÚ&lÉü3/ÿ´6ýèGØ#âÁÌÖ9ˆÛG­âoƒµòΦ>Å/ã`Þ‡уð½’€aÌåjxôLýòLg‡×Òœpß?Äh'Ú¦bÁœ™Ç3~mþ\ª [ý04N.{Þ“p*{ÔYÒ¶Ï%¨- ¸½+¹éjèhŸ*|©»ªºáʷǃ{›ÂÍopj„ü\ÝB(  É±XÅEsDìdC¨“ößOkÈáüt§Ú#ë¤MüÄN“½+y©¾/okð)ûX—ê&šÖ~r<(øo­Ÿ›%èlñb^wFÎP§Ží8uI0öi¼+q/V‰$Ÿžòk€1ûÌQ†¼ú8Ö{ëâ6N:e`nü— p3'lEêsÊ;ó"ÐïŽP¸÷]ÚªÓ˜î‡5Ø£ûVKúì–àhêªuú:ÿÙ+c²Í¢•_ʤÝ17/NÂsUø{0dÇ8‰\‚’K6jXç<9¶¶Û ^ç¿DË’‰×ÑfI@Ûö°¸rµ$-Àñ> ðÂ|Çlç°§{s©×÷4Z¿»±§Ý¢g¯ UòóªɇM% +”ÃM„‹c/6Næ¬î—“³¿åÉ÷;È…£êËšÊÌ™ ™{Ã>/䥥—rF]ÖÆ)DjO +½d£ˆþ3è¨؉5N©5‹§àïó´¬éö€ôμã¹'1^[rÎæ[ä4Aí¸š­öÉ›ûÄútL5L ž-Xó׸²z>¬§<¯Â€s'K®m¤Tkïz´;°°²Ÿ««gú +ûØu¸öºðýÝ«(×™ÎÇoµñ4/%¤2”œ¼{WÂEwËÆ¦FÔßÛFޏëÞΦ‹s^(ÏÖ[_t íœ;OÕN9Zœù\] +*ze\™8G+µUÌa ~×ÙQ/7A£‚×3/ˆò}-4ó†ÌêË7êx½ølJ½a ñk¿nÙé—»Á#÷›[3Kï:cñ ëU¦óz~±p4'ŽÜ¹OÍ—ƒ-=7€&Rßs‹0‹‚Ûa;;v9yлY˜ƒàw¤M9².Ô:mO31RåÆyÌ\=4:Í×Úœ®š+{HÌq«c—´ƒ$Ÿ|e§gŽÑ—± •nkט™îÊ¿úäd7l‰ +Ž€Jrΰøþé ³ `Áb.–“q¯µ”Sºn9,sâ2<_ÀyZÛµÖh§Y€»w}¹Ùο4¾‡¶Šë*e7‹²vÓ–»ú.1½»œ…jíÖ‚#Âÿ¥íœÎß»Ró Em{1v—["öI­íÙ±Æë}R¶Ì$Ÿ&_ð}–-òM8Û+„7™3£¾ì[m´òý¤øhûüvjç#*të½3Úн¿_> 6º¥ܾó†6¿}qZ3­âÑá€ùgñä{9d«ÕùÎåé N‚¨ ¯y­ +-A7b»s/¯ìu=ˆÐ?9v­×.ÃâsZÈêU‘ƒ/òì‡^»óKÞ32žkyÑ>iù(GYm[ixÎìBÌœµJ|iÐÉÃwS‰aÄ¿Äb¿ÅÇM†¢g<Ù{íd=L¹TÞÞ ªhdCµÞœ‡Q­½]5¤#ëÕZõ‡Ó<Ù!µýX{š\ËŒ†-¦6ŒÞPúÛy³oÔÛHÛ=*ꮲ1Ë¶Êø•—sz'-°þµYì×;ú£cÜ‹‹£bª#;Û»öEjF¦Ô‹#Öu‘Ÿ~šv]PqbŒê>UwE}/ŒB¼|?cyYò&¸‹‹F#-Pé:,2²ÖBºž¤†ò¼–R⥩P²q¨l[‘ºY +øLÖ3ÊGBäÇÖêæÃŒ@/ÜIöFÃ_òŸÞù΢¾µÂެøþ{‚îáðŒÃ½Û¥òæ«›Ê!ÐÛ#VM0Éûß×=n"†·¬rÕ¤2О¸‚+þ¹°ZR~ÃåÉ,‚^›ªÖªóÄÃ1Úxã6ò²üδãÁEÏ®'ÚðniR®l‹XÜ”c¹Ñsê:›¦§æäÊrƒUf;²yž]îL¾åÜ <Ö?ˆ‚‹5¯¯_ +¶ŠÕº3úR $ M«\.³o,Û[ÝÀÀð„ÀUª‡ˆfÇÑåí1ÄÆiþûXB`³ˆ÷JsWŸNÖ"ü:Ÿµ]:ŸÏ²»×©êý³_;˧âÄ3LOˆìžö _-8{ö­øûaxCumÞ“ŽÔšûÈ|NsðOŲ>6ƒ·´D¤R>#•£Ü÷\R¶ +ò~~>jdkÒ+„ªšM£†Öç¼GÂèêÃ33×®ÎrƒUIùBKZÚ÷A´.݇êÇ/Ê©¡±‘¶Û…²¦/0‘I©òÇ(ŸýØhïjK¬À^f,íâ’? Ù«aüLÀh´s¨l,Ÿ˜£«=Ûè—W¨Z¹“_\·«tMÜö}íÌÒ^{¤y?S3¯ª¥ÉÉ>,JzíÄwLKáŠUfçUy¢Ç £ !1x>ªºPøit1(ŽVÁ½kê‘Í/š§DZ‚ë«EÜû·õ‚pêµ–8Kþ³Ý+Ûâ6‘”f/hŠ3Á?ÀA¥ìh¸„gdëý‡X7¶32‚Zƒ?úÕÿz‰Ÿ¥ oR\÷y*øÒ¾y)ëœrËÜ|O+û¦²¢'<Ú‰ÌnõšÆÉÍe)Ãüõ(ð)îk}³®Ñ_©ê‹¾ÞBàéDiþG]”d»±©ŠäþýÃÐîí…¯Ôq„\Ú/Aí©¿í{¤Œ…¸ƒôQÉ+ œœíi‚9±åY²ymwŸì‚í~©*=ðhù½Ú{yÍu´%ûÍÑd¹„g„Kx´«ÿÊÒ-ùd‰¢Ä2¥Í Q\rÑ*ÉÅþ@.e|ì:*§ +ü§Õ^½s·¹…S#7}ÔGQ| ¯É¸ª‰h«æ_¯*.ÓúQg¢i^KÛÀVZãWX1¸ÕøD£¢E5å'j1Ÿ7[çÞÞ¸ÕöUµ¸bÉ]ÉÊÁHR­Ž¾°Ôr–Zq…:±9IBÜW›:Ó0EÃØ&|[®'GcvyE ÿ§† + +~¥]]\å†ó¿^JU£ýÙZy ê‡ë#F¶Êº÷íÞD!qS´þpã@<¶Íê`årÌsrÿ|’âÓÕòA81¬ïG b«ÍéˆNyA#¼Í¯F ä­²¶Û×Ç!·i×Ð> –ŸáÉ„p|èrco‘KW^l—]¯]ÜLì:öXªšbTâ,ôOÅD Øi®ÇüÉ(Ìs…‘A/›fAôû–̽~ÝÝR2Yžâ²üºydP•Üþ‘KLB·tÚhª¾Íö¼½žtíãþÓÑ9Oç!¿±˜©f­ÿ—ËïüòK¸ÝDzj´>ŽãÝÐwEÒ‹Se‰é¿ãé1Lq¨~üYÐËåʉ£›@?Gä±ñ:ûeÈ,Ïñ¥o:‘ïîÛñdFDzRÅló=ê(!]ÞŽ•kXx'O«P¸t“ðkùšžŸúÍÄ,‡!hVm‹„á¬ù²| J®_ƒ¶IÒQ½Kµ*º~Ig€ÞÜyƒí]þ 4EŽÜ×.·ò3ر§³ÈZƒ10ö#yjÜJÅàY±Îõˆ¡b¬“Òͤ:MäwÑÁý} ³î$yÇÚ¼VŒ–6 Ʊm¿ã;¨Oö7zýk€‘©.‚®WzbPzu.?…7m|5h1è‚ån5U§Ø ÷_å*'™¨µ3ªtwYiçê èmØU_ô­[Æ_ŒÈ˜ðíKØ[N×ýÕÖÌ÷I’öTÝ%uÕõ,Â-qE6nh)‰i<—û–Gó_›ïW;‘ø8ÂË`Çš…Ÿ6ºïXóùSn¯bû¼çúªûLèÞÛþ•¾=ã2k>‡°Š“Ÿ;{„[Õ´Ãâ#}¸´«5gfûQ/Þ]lbD]E©ÉrÆ®ÚqÒJìÙ•ºŸ4õ{G\Ô©’ÒïéöáæüiŒ>ÉÏÙ4ºùûZ7;¯˜‘¿òsýÏ#Íõ×kU.tÖz³6ä"ªÜ¾jê³½fkž¦ûRN†úªÚ.áþÀÎ;|´¹˜z‰‘¢)\„uvõÀË–TwVÒ´ÐüÉX… ÅôžzŠ·Ú6)Ì©©ËšûqËÜQIÝé7[ÆÓÁw Þ+7t™“"LÉO‚¯Ñc‡Q‡¯ÐÎî­\þÓKÛ§B,µNtõ猌¯,és_…ÀðÍ‚64Gòæfô_ s•gɼÞö}Ù>Fý„R€:T¯”>”Y:®û`Ñõ œ|@SfúÆS~“ήlBæÏ¤@ÿ§§Nrß{^«3þ\XæOå4P-•}€°™ÒZ„Q XùÇ:ÌOi–ª,a$Wþšó¡u#MÆx³ÎUHÉT³çŽýõ‡+ŸÂX/±tßøÕo.j¯zô?V‹ÚæŒBîE9xÈŽ[}Ï å=?«Õóþd/çôÍ8­ÿFt–}Ïþ³Ó¾˜~åδҫùE}ÂgLò…øò}ñí÷¤«_x˜ö—ºÿ,Md?ŠÁ¦”€}N™óôÐxpÛ'ùÚ^Jv€Ô–是z=«ÖÇ/xºVÛNìU™Í‡ÒO¿ø ÊÊX½|ûXu ©VíÓ|B¦®3þ´ÌF1üÍ­µ|Klõ‘ð;ù%ÿ‚³ódòIŽºÙgC³A½Ž‘ÃÝÊúÙÚ:ü©/ìý§ã¾Œ`Q+øG¹lÚL‡¥šõþûЀA_íï°!åVfâäõ¿eÄn½ÛKyTí¬ä X‘àïzvÖ«ó…~®ÖøÒ˜tñº5(þ_â ã¬V1Ùj¿p€ë_Ìg*–dÆûölb¤ Ô·–óyô‘§BÐW$Å"•°ŠvZì Ö³ªÃ\[ÊKÏ¢ÎÜÛÊñ@ïÞze×ÂÄòÿâbBsXR̯-dPë[ÜvîL³ÒÅ> +°)õ6Ú$nlm'ÜÀhU–¹*Ë[pÿÖ`²áçí`†¤KQ\†_ÏãŒiÁønžYxßú¿§0mZ@÷:‰ìcçú4 œÄJ7eÌÄžZðÍÁ¼[È@¸[¡àV™E¯fùàtB €z‘¼Æ… +åµA³´£ÙepÙ¸‹eðÝBø[ÜV·Žìä„á ø«Õª^5Ö gTÕŒÎð‘Ú­„_BoÄûqt ÈÃ2?'€v•C«êÞ'ùhOE ƒm³ýµ¢Ñ¹ô&ú(/ ó¤Ý×D@”½µhH޴踵ÞEe…Ë+Ú°¾uÚMÖ!d÷/Ñà¡ÈØáKhÕ)ôw™º‡ÕãiX¥._“žì|ÖÓ§LŽS•‰¨’Ól”²— ¿ùm× 6¢…¦OÏÿ ÿ9§a2b«Ö~Þþ¨ã‘Ùw¸ßST<ªj™P–œ2õx1Ìšüè}÷õ°YÄ_½aùj,ÿ¾°5Ñ)Úý$¨¼IÁ0íßž~wŸÃ/bølìÇé­ùM7î+sgSýi§š}ƒ¯ÝÿÔ`\éÁfÐar ö˰H²=‹õ÷ðù«dï*“¯NË#ÏjØM–™Üá…ƒ¹~,ýoí Ju¢UèfàXüëNmTMŽW+wÚ*öÊÆNºµØá>hqvÝ«ü†L!ÔíeÚ-æJ=æMæÖáÖú}±²OΊÙo¥ãÃëk}é/A첞:±±íÖƒ[“r"MC'Ôô„¼ ìt(ÊÖ{t»5ûZ„㫸´bŠUQ{†»ÖdnÜlr&hßÓâ~õÅ`ºX-x{LŸÝñÑ/Â\"ÿ’Ô„r_N;ÙVØFØfpIÏpîê‹ïLO [W‚pßc¸®Þt™>î¯A{­j°Ö`r´5 ¦Þný¾:Ó‰\{²wð¹±éqFÃÒäñKã×ÔÒ“M¬vqõ"ÚucèßË“Wø¸P'ӛ眮GÒÜUçªä×37çi^ÃüŒ÷úpw¶Óza†ÖüËKo÷ŽÕ&FŠQ…ŠÔZí¼Ùõñî5ÿG£Ô“ÜI\Z¹ó­S…éþÆ_Øû´²ùm7gzƒæ%h1§\vv¢nñæ]„OÂ.f9^Û>ŠëÕf9Rpýukm†}KÁÁ˜ÌòSûzü{7F!ßÕô(ž~ΣbÃ݃њìwnKA÷š&Æ¡µÉ9F©ShíÐ~ÉLäîÌnœ?dïªp¨ÓŸj£ºò¹Žùº«7÷q­4YÙÄtÐ ¿t·3¶#‘ÄÆw¨ëWÕÁ,i¤œüОÜ0=•/kX•¥›×º·ÏÂŽ[Ö=±zÎ;SÝl`Ö¾5ì¥Î[Ë6s²ût`r‘÷ùÝÕ ªgtÓŽÒÈÿáÎßeÔq™±/²5¹Ú‚Šžœª]©‘Åm6‡}ê8„=·i žó…õ ‘ÄzUÆy]0ú„§ZÆM Œ”¡äš*:lüjk]@ã'‡ ‹‘M3O³5yê=û®x°æhUÙç¬C£/xEc°“?è¦à_”éÞ¹¢yžyü†ÑÚÁó¨Õ~äª'ÇFF6FŸR0ä—´¦²¦ÖŽï® ­ï‹˜!¯7- +¦Ô±äWø…É3êq¸‰ +ÙÞ½|öXÖ1µ¥XšA­ ·2¦Gµ×(½Ÿ(Ƴ§Üiù%˹R5¼åM îO I9(å_ö!KD= Õüì™É«l(ŰÈfl§™W–3_QÎÎõÑïÃÁý¬ÞÐN¨×Ó˜:¸tY¯f')y³"ïa˜·âôvÖ/ti· +ÌD Û¢ƒ–'ºP3ÔàÄ]²»£,°cïÙµ2Âq‚®qçóeçYZõ©ì æÝ:§v¾•ÒŠÙØ-LT/CFlIÖYŸMsRûÍxø0blj”s׿*nÔ]¥4þDÀ´Š=X[t©ŽÍÌ —¹ÜT¤àÇ³ÈØtƒr}0èíô3°o±éáo',TùÌvû¤³Àv]‡¡èXʆ†NÊxËÌùÿöýdÅ–¥}dIÞûUwûØlYÃ}šd`ÖBŽkÙ¨þ©I9 •ƒË¾tLŽ Þg¢ñ¸hâ!Š Åi„‡·éßÉ’¤Ö…†Ñ¦éûÖÝkÓ2Nhµq³ݱ.H“üj ø±MÖÜH•xŠ”®”âaXí$<‡®Ž\‹<@õ¦°U¶hV*Î"E:þ-c"w.]‘)ž”-1éJ•ÐŽÕëDY4íáÑ5}‡Äüö+ê .âÀ‡–˜¿ôï.YRÐb+/7­£uh¦—§ïœ]Nn£¼˜v;Šñ–ˆuïdZtL®R£_ÔàôêjÎd"ó(žËZ”ÞºY•þ쾤„¿Búk]4¶ƒÒ±Ke8G/²gny©‹gFé5ÄàQ +;F÷U‹ÝfB6§6µ‘ùøp¢ÈÉÉ?˜Ï8›w?çôÄŽ©ƒgÕDoKñ&Ž\pv’ùýx½èw½ +ïÒÙ  KÖ gý·£‰/hnÛ qìõëý½Op°ùéà1:§Ç»ì6éi!õZƒc´«¨’Tÿ®Q¯ T¹íY÷¾Ò§˜Š'«Í²ævw§_ú¡óùóGld1eP3”Yþ­O1¥¦IýÿÝüœ‰íÙöp¢›ÂRƒÙþÒS½©Ò]^›`\uÜópÿÙV.#˜î]'¸×i¸J2x“ròß+‡ÂzÁþ¡ Ñ¥ïCÈIë…w´!3kçà ¾Òáy—dÝwúñÏ·ø ÌuLœ ›ä÷WÏUŒ"2@ ÎòÁ¦…ë’:× +oFu²;î’÷S‚ª}¬0¾pr¶†ú1ÝîØƒ`ër¯„îVXLGnÏ7{J8oµTH ¯3¿7¯½wßÈ´´²cßä÷í.5X§ÝQ"µ´!RÞ]ÈÄ)E´žWÔ­î;B*ë€ÎDDNîW"T¨þc¤·¹©“± ¯kæ¼&˜­Ë†±_Á]0RbѶ‹HO¼™ÉZ{9*»e£\þž•ºåÆL#QGC4éË/zò[éÉ÷l¶@Ìã{ù0ÍÏw/oN²í5ñ¶Á¥]¡ÿlÂrÉ䥻7IÆ ”œZç7ÖVWutêŸÚŸ½¤É·¾”í¾Ír‘ꌗřy +ù_œP,|vît5¶ÈËXpWà5´|è¤×а)RÕ*‡å»öŸ’¢¿0¨`¤«Ü:»€«¨ÂV—­›´SÏ)O^–cWËÐhØPϲt~1Šìàô÷g,$(5^˜–JRnÅ·yߟõ‰Üx•Åßî­'¾ûö%7˜mæ3Ÿ\¯R{ü‚»” ÆqÝ(\•Ç +L¼ñ oGÈðsÑ…YRTV%ÿ÷ðfH]:kó9Š š¼dÀ‘¥ŠóÊ…çð„_õlÔØ?d™×zñÇ©…ω:]Î 3¯v¥¸Á˜ÁsåϱÌWן–MNCÓv·O@¥nGü«ìÉûÎp±Éß {¡v¦?ûéÊ»+…×ûëáŒGßÀ`£<9¦'Í®-2VJÞ±{õ¾«Øxæ_4ÛåyýÇú~°Øðeâ¶I û¶®+¿É7x$ܬC‚בgAå&“•%GUÜs•ÓSçhöÕT•ª9ØICÆ+9Õ‰ÓÄ>xËÇÀŽ¿&Y]ø’±«#ÚW_žñ ®¾Eän +· °BØû³W5¬È ØMÕ!÷ôÝmëZÕ3àœ¦ãèÞfVîŸõ޹£±¼×€.º_Ãïž\K]Q?ûÊôänסƒó‹¥Æ.(w3j2)õ­ÃóÏM„eEg,/ Ìº›ÃŒ;KÕŒ®zƒ€yKÖ +¦­e2¸]§UçJ‹/t4ÀB/é7~å<ê´ù•êâœyùÉÊŸèþ£òåÕËþíQçmJOû$71iä³õëØv ,£ÐÖ}à£Üs/Òï¥ õõ´©¥ÕVF7¹RøÔŽ%ýÁ—öFñUý)é÷þfÖkì b`¿Ó¢£³:º_­Ü£«]eD §txGI~Ór­ÓIÎ)™^â‘Z$ŒNoI³søNܵ.ºûGÞ ,8œÆMjç_›O¯x<•:Þ³«‚)ƒþ l~y4<ê­ép¯wFÏv2VÀ^òbÇ$~†tàÉwíSûa`·ó‘Rfg\Ê¡zÜk~&-­0µ Ço"õvm eFmµ¯IvR¬'ˆVÔ|É‹0 #œz®è<’N^vîJãöw°¯ì*g}©)3Äv–£­äà`3¹éÎÿê!‹‰HníÚ ÎÈv±ŒvÇþ%ãçƒCË“1Ú…D”›;TO¼æ-ʉ•TŠÕ§c“ùÑ~L‹¬s=Yg:v^ÎÌ.•ÚH,¸³¾t|¡E +®ÿåù¢ûÏÒšm¡]ùêÙ~mÝzéÌŸ§ØÌãVìÀ^—‹ÁptËsHÍ™–_[^}Î^Ç.Úî‘®(øs°Ùy[èJ{Œ]Çê€Y|õórdàsì6õïÑv…hÚëki+w%o`j«è\—§€~·ê†¿Ö@ðHoðŒøê‡”Ì·_ÚùDKçbø˜«ÖC&úºìÅQ+G;7Ö|uxû*£6ùr…møø¥Q+ÜŠÀÕêÑíMºYÉÒx6ìs¦Ûɺð·µágá*34¸ÄÌ +b# Dz[îÃYW¤Ý›» R:@‚Zås2õÄ÷½ã@½µ§çæ¯Æ2\ÚÒ÷.M§t-°CrKq{ß?Å&):O#YãÛÉ& ­g;£¯l 5cE*õÓñcäݲ6_Òø wò§Ò—t쎠»?ùýi3¢îéèß ÍýI:ø‡ƒeÃúü3t‡luì-­ŒV®ô¨ˆÞ¡Œ5Û)¬LÞLPïcÅûls »Æ°cŸ^^|ìñ¢X·±Ùþ$Øöƒ£Á¦Ìw¯6ùÿ3ôEYmiozüßâOü¸ÎÈÞϬ™×9SjÙ—2¿ø\ͦ-8v¤8ÄÍ`OÌÌ?–Ž#bi +2Oª«·l{sëMmîHuÄ–Û½Ž;ÿz +-¡áb·Ù0}ðñ—²Ôe´\(^ºGꑘ‹Q[qÚtj\ÄnB4¼ºµž‚Åa=¢zõòlº{n .áÁ#ƒ¼C¥ê¸èÂÎ]b^üWÚûzï·“7)Õ®gÿëñw Î»kÔ{u?é‹`]7qì¼9_y_*Þ˜;Oüv<õ"W—u·ÐûD&wÓðJR}×ئHGW(DÐë@·Ïï +òƪ6ñ +õŠÿ ?¾ßÍœ«c¿‹KgK͓ĻÀyÖ¼·Z âeŒ_ÁÍ ûÏÂ1û¯øm¤5¹ÃNÃS´•¯ìÖlÍç ‘o£%ì·hއIã”S»tL®}ï¶rK|«‹>”æÞ½>\šÞ|h$]üÜOa”|>}ÿ\½¾LÍýaÄüǼî3¥E‘A‚M =zmlð­¨÷ÌLö½¿dàÍù túÕM3t>•ã$­ƒ‡§,kOLl9:[¼'è5œË™×0ÜwÏ\ာUài°…3oVÙ÷áÖúq÷—Zòk+õê%~n¦ý˜ +¯¬o¢YG +¢ïÔ‘ì5Y°k©Ç¤1wXõÔZ}Ž~ñwü…µ¢·; aåH~=…A’RùwK‰©5I5‹‹KÌÎ!ÿg†²¾£Àøu:‰­=5š‡ƒåj¡ì¹æŽïåU¢„_êÛþñ ×õØïs[ÊïwãQ!QÖ[[4¾T­SL¶ÂóÓêºkS öµÝÕ­‘Q?íÓè³ý=¢(øÛ1ï{/‰Ü)o±Q8تÆÃîj=Äoníâ¼¢Ã+Ø-S²²l ÖÆs½?#A—ú÷–-ÕˆBÄã›°v¨ò7¶xÿFëGO™¥ËÕæÞÕ¶l›@>ìq:—ç$ B«g‘…cîV{ïnÔdªùò‰rwØ‚?¡mn–,{¤M@1XU#?znã÷;ÀåÁê5½ÿ㩇„O®ˆi¨ <#ÛlCuˆt·"Œ½Ø¼[Á Õ'Ô£Q_yS?«ÜVÑò=©y¨0õçnïÏÜ7z~`Âr(ú‘Ü–·€Þó`jU~—ÅlY"þå\W(î½ð‹Õ¡ý>¬÷ý©Úë@‹AðÕÁa²…“¦M%1â1,ÚE\`þ¬Z ‹UÐôªµã¢i0[Õæþ¨h£×]ûù_õ·¾µ.fÛ8°I¤0ß5O©D¶ÇøKãï¢ÝOÌclcõP4t£øùk„EmYúú!¶ ¨êÐ?Ù©}žÖåT §Êq{K³ êܲ¿úõ­é•¯MÞt’’>V‚MŸ‘f1¯@øŠ—!‡¼Ëp8ÍMH® ­rþ™uoLœ;r[_¾Ô}Šk½[+ Õœ¾&ÜÁZ%¬”öÞ¯÷£ÂÎùÅ›æ.=®SN¦Y[µÞJ8}TCßaRQ+4¸øH–Ð{ŽâCh-Ià®öCa‚HêbK¤¡Jw•§óày*tDǾÆ)ͱT¾ïO¢ž[lÜ·¸IÏ-m·ø + Œe£ÞúÚÄÆÉ ê.g/&d˜ Õƒ÷ÈõDLUòø§ ²p¦0($$ücž'®‘û…èìÊR;`@ÁÓb˜†ô¡îÌoæ½™A` _"ÛÜcXÉM´÷c&6–Ñ,/Ý(FŒQ±E>ìÕ” í»‰MðÏÎ æUŒýþâûÄ{ÍŠQe>%_Ò è,!c·°ýÝ{r•÷5÷•4®G¸l夸•>—½ãà‰"·uŸ+Ã+?OxDK6î*ÔtŠÄd-Üšö÷OË<%|=hU3¢ØÍ+Êá]ÁÆŽCøï +ø7e„Åd²já‡ÅÉ:ΩcC^ðÂ'ú졺¤›c‰RÚ‹ØUÂ01½Ë|ù'sûÇ1ïY»]Mƒ²)k×ún½l/ÕLæ$cTH÷"oÛÂg¥à³ÞpP˜†Z˜lE®SCÞˆÁ­(â +2X^ –†¯ÕYz«ýñ9ò#›þ» +߬٩¿Åjâç˹ûÃŽG•÷ï6*©V|ã ¤Dè§·[›ýhwöU†~ëRž¶ùpNaŒ1˜”zTçA'ª?‹QKÝœm£½L}´ ÖoýΡª( û~ Ÿvw))…ÿ*ïµþ÷Ô°ŸU’FüX’Ú•±Ê£ÜŒYmÂq±“ŠkjÞ­oî¤èRÁÒYV3[SiALq\Z·DâM¯¸A«‡)Å€Æ(*U‡´ƒ½ós÷+[#é»×A¿­L,ïgUyœV´¿Ù‹Þ»²îHàbËëý˜Mõe5†fݵ¯DåhÙek¯«z[=‚d;6ß_:ž¸ú…ËŽê0¡a[óÄü¢ï¯1F’©¡`Yrçc¯pÆ GdÃq†ÛC„WÜíô÷“ц'ªz¾$žŒÛæë¯³ÔO¡üÑ‹(q³•†X¶ªž™³T6„œc¹Š:°ñBE¡Á¨:û-š|Td=^cäækÐV¦•WŸ™f¹s¡Àš_Ü ¥;5BÊÚ_ò F•?0?»¯Ä=fí~k¥ƒÎc}û%<ŠÞ!wêàÂ\çZp@šÙ½ÕþEOíX1«…戹ì1ÕsÕyÙ~ßMT +6sï†¤Ä 4+z«ÀYD޲ ™šuÞÏ@W¶CÝ;=Q?a}W>o,¨+öHù+(ühº/»âþ%S²kº c÷½HŸ_}Ó{ÐÑK852„\}pµNøÇœMCù„#ý`›š Û[L}TV%ßß3½³HÖÅSä²ÍnÚ=‡ª¼'‘åÊö"z»_jHK ÁQ¬«Ÿ¨—<(³¯$&ÙZÙ«°¼7·xý:6ßÕÓÎkºˆ%rLOÁ9HY¾o_&Ó+jÕd’kk}Ô÷M’b|©E«5Õ·ÑÅó‰Ê—¡ø ÒÑ­®˜î®yýêíÅXžuÏokXOV™>h)áö»ô‰„.çÆ’ù=‡qSŽD|kÔíÞ×@=xði ¢LU¶aÁ¦ ¨­tÓé[.=ûM²P륱`J<3p*!“¶Ž“RÙv=­è>‡Â‰úßÍùEOgyè~¹u`ä#ëmœÎ»¹iõ6žå ½c½«@™éÓ~¬ÉÀqÓÚŒp*0ë&ÊooÀW{’^Il²/:µB®½žSN­ÐHŒ÷¢PP¢¤rsr©X³¯‡Ój[Á«éÃ%¯:Ò~»#Þwæjp™ï*Ú„Ÿ Öº9.쌙½üÝx€6yi™:U?ñkö0y£lÚC ÕqË!ž¯àíïäýx×vWþ"²¦êÛTeE®øã8:ë‡í)TÊ­ìëÄ6›žU7±rK¹øM_k»¨3œŸ~œ†ô讀Ïl1FiÌ›ßfŸˆz™GMá»%ƒÂ·0ú#›F‚¨KléR°ÙµJv…‰B¢õGT‚j]¸§Úß8™¾”Âor¡\jÙÓæ‡vRA¿òQ½ü,ytšæÑ켸›C‘-œŸC‹ ×Ko»Èh²o¥Áª ;j»ê3*”f_Ôú +’ãHÔÏ ™¦õkc­¿1Úæéþ–Š©Ñ°a %úI ùô—¹ ̋ܞ‘º%ÉÛŧeV»;7%‡‹C·±Ë{r…µ Ý«_ ñ™}h‡Tß +7COiLÛð\WnûEkuš˜^+ÍßwgöêÎý-mƒ–ïˆs¢Ç#.¬º{Kø»|"M\Y4ÎàÕT¿rTÂÄþ<õÇôz·´ž¦Z/Ø>˜à"2vª +}©cŨ•Ûô˹.… +Mß6‘3ÜUŠ„ðùŸjñ +ôš’eœ>¹ +ì9Ѳ±íJ²H‰šhé±øpˆÏ°iwÎ7ƒÃ_Z×eÁ_Í¥C ã«||Ôóàœ 8î¹"mÈÆ¾]9Y Ûýù4÷‘M‹{œM ^oe`²üÌ~]zäB÷ôÝßv~áǽ7I+ݾîúµ‰·-läšsÄØ¦€ÁÏšã0ÖÑ=—^Krº±;Ÿ”W?Ý—0?WOBk• +¤õ8ö–ÿªíÅ/Ìv<á™;‘¡³³ãÛ9Cßœ2ÐnˆjT<Ƹî¤ëa +²õÂý¥É´î¡õÏÊš^œŽk¸g.’—½OJü®|Y{©ƒœÜ2¯þÂÙFý·Z§   !l:÷Ž_òzo³7ýÈÖWiA¹µ©l,wD= ¶7Ý)6þú­œ þIlµ]o5Œï/?eʼnwû·[—‘è:±/bšûƼ«mÞ;bËöÉ.–2Ú‡qh{Òdmúe +R»êæ‹Sa¿Ê™þtáÆI=Ô-´‚œ¿ÀSF,¨{¹rMʱj^×6(ïÑÖ6Âÿ=R÷)ÊŒ[ÃÒkÕÙQÐ+lQpaã›C­‡¶‡cÿžÍ÷­U4â.tí,U™ðu„FÈÝ)ºº+$-ú¶…e â¸Ð•¾ß™­nºÏ'k7ÙZÞ… *ßðw/€Fá½ôîÏÒ/sÛúkçOÐm^f~A‘«x‘QÖ 5w>Mß«tÙÛß¿îWho»Š_’aoÙGŠ^ ß\çuÿ +ùqö:«È'ÿN_£} ]oËÁH|{ôüzŽÿPÝ'2ÑasX ¦BàÕ¶mâk ÍYàuÓG^/›V[ÜHAÕ\=KÐ%¼ð¨ü%Ô+x›ù±Å~®ø¶ à ½| vܨE®ÀUö6œÛþ.$î=xåÀÙà ÜVkÑý¿ÑÒ–ÑuPÈ/ï~ ×jÀ2M‰ýHVò<4æB½Ð˜+SÆr’B‡0h¾7¼êRÕD÷YE—ÍéÊ¢òÔOoðƒÛ¦¦&3×Va!é,XVêGÙ]uâa¯og†­õÿzz_¤Ñž/š„iêæ'dÈðP÷³¯G?N¯+ÜôÔÕB.jQt¥bgÜù?mXúBN÷gÑ04D¾ uís¸’FzðÀÞaä­¼x„lNƙ•ìF9JÄ¡oö¦^È`zEf½jL­>AÂãc„´ + G¾×–ÁÕ{ÜàþðúË@zÄ1¥½N-k¼x©QmCò¼ü¹ößBÙ‡^¹˜P~4tÝ졃žºÔÇö9`¢ hÞç‚g€Í;ü먌¸ +[»<³Pèw~s9˜°;èºKBÞ³ +²$Ø7]v²lŠ›ðWå+žÚJÊþÎÀç +ݶk`&¼Za³¾9ñµ§Üöʶô&úžZó'µA)hô¨zSˆµ7+þëXñç-ÀBõ:ò+wÜö-¦»šã÷N'H[ž‘î˜èûõb)¨Ö?2ÅÙÌ7 öçA>\/M_íÁ¾çÕ6rNª¡·’î'Æ*÷Ȫ¿aaíhå.lP«ÂD œîšð³Í´„¾ókÃÏk˳¯ž–gˆlR…aG¬å;þîK¦g7)»ÜûýFªWuµÍ@Úšæv}¯rcX}´cwÿjn¡öŠ¢ì]}¿ O§L +Ü0Uªåå.{ižåáaM#JØ-õFô“”ö-ÆHù/OD¦cÿæþGMõ›p´Ý\k²Uö¸ò‘¹µ)üÊyÒôÞèÓãΨj™ý1)`J»ÊtÅʉû92ÔÛ :ò¥£+1;.,¿U NôáFÿ¼JZ +:ã óª^¾¬·¡ÃË!‰C“ÌÆ2ÅŠFs³ŒlOà§ÖÜbü<~ ¢õj:ïã<+ÅS*²Í“B¿g>‡%lù½¦]lÙóã4ºzÃÛÐ…ú(Œ·E .ÙùèÍÊÀ¡‘¨u–;û°f7‰€ ¿W~™?{i8SzuŠ¡«G“õ÷aãv;©nÉk¹hS or'ª¨Ð½†7Þ´+ EÎŽÜ ‹07gžh¬\ñ.-á¼¢ÛÁß»°ÒÕ«Ì_Ñ¿êîùDQªv÷¦ìbË­®­Ïu/:/­8¨š-&›³EoªŸ+‘5;ÝÉù|yÛ“†›³È}}=û¥á_ZíÓÜ­-Ÿ|xrìeˆÛ–é¿«¤1Š—É•fD‰õoWZ“á5Ã.šÂùc¢ò@Éïí+¬ùAV²ý9ìV{°’kB×(ò§i=ƒ}PŸÈžÌ¦š´®®õçûEjŠv«×à§=Ùg6pM½6 ¿"Ì[¢‹ñšp؈üW”§Åí›PžûûQ¾vSÄiSR¬ÓµG_FIêA”n¦ +s1ÿÎ_V/7²ƒ…ãRCiß9÷Ÿ-î¯{UTœ]êß¡”6ÆÅÛPa[tOg^ƒ›¥uGñW"6-Ê¡wnå«ú]é ØÇ|Éõ…ó$¾Û»™5þL q}+FöBE){ަj¹'Rå0ÿݰ;¯f2†â#'­íˆjÙs9=jÿ)ñÜmyÌÓägí}Ìpë.“³Ô­¢ŠÖ¿Ë3 <‰•ÆÌše–¬IxðéФ»®Gýµ7·Ðú/5—üè³C¢# K³kh=ö©ëÔ”wÌǵ›å“Ƥ¦]¦JN÷xÓoM^3‡ê¶¦ÙNàê{ÛõÙÞ:zº‘–ÂAâ½E£®K‘GX¼·{£ +c ÍX¨ð47ƒ}Šnút௅ϕ~ï{dCõ8‰SÀ½GáÓš–&N,Ií¹ôBç ÑH:‚öâ^ø–AöÅœû±ï GÏXèü«~hŸ +ƒ ÛçåÓ8+ž)CHÓŠ¤~ +u6á9=Uvýý™9¡¥$ò]øÏtÿv3tËöù ©¡Z2úênB‚Ëó·ö:¯‹–my¸òÊà©YOö¿Ê!‡ó·~ºWL;4;câq°¦v㦫@~šÝ¬œe™<_¬[Ê£J`ð>W´ÒôW©ûR¸;6d"ÃMßÍØÖz{ì8†Ý›#ÏÛíÏým~ù4‰`…/ö‘¾Þoñ/å¯G™æßiS2Õ]3е2’ ±‰Õm ¼ K¶ú8±mÄO—Ú÷÷î¸K퓇s£Í9)F’î;CwÖ.QÖ}=ýzÂh§ì7ÿæ:°½(ÄÕh¶n7$u•Rv·Ÿehám¼ªTøk½# y±Ü‚IÀÒÕ½õ*•Ü¡û§«Ÿå~"ÔŸ ÷ä›¶vxããXõ0˜ˆ]Œd¿[Ü‚Æ ¼lÐê~µz9ù´½ÉðÍÈËó¡¥È¯î­‡ÂU'ïÕqk¢Cuïñ¡S»èÅ(Zu›>–hCCö[=Ç!qþbœõ$#D5˜sñ/(>#ùÍPÜÖ¿â­×&ºçQÁ?Bï³…BlÔ€À~öÇó#ÝsâIÔ‰‘nÍVžd(…Ò§5“•§EN7oE„F‡³:OÄAëñ;žAä<[X‘k_wŽhúa +¡DÒ ÆW¢so[á»…)ßÉ>n´m‘C*oR"Iê\ˆzËIIqÓ¯*àÒÃ(K3‡Èj+¹w¯\ÍY{ÿÓ7rºyùš3-¼íЈ&8%E÷ÀÜV,ßu·\îÕÃf5öy§§ìþ^¾>ïu_zøžëPÁ%Ì¥4êqÏ'×3ƒãËqªà1Âë éMsõ/s»ã¤žü…Z8Y.ÔîlÏŸ†ðÚ|ô­¾>ËU*ŬfØß[Äå´¡‡JYrªŸÚì«aPµL>kÊúâ0·Î\6ßí*£®öí¦öî8h3}ûl0piaXu:S²+¥ûWžû€¦q;ÄQçî4‹ƒ<¢—Ek°zÎ%{ºƒum)æûswDĂٱ9m6Nsí¼§Ãµšä{{i~ÅEPy©Íš¿™Ú—Éj7M3“§×¢7o½~Qï}m—¼`~È,®·á½rzñŽÝóÜï<ð/ÃR©G [û”Õ$^DÀ?Á®6¨ÆV‚0ñ?-{gpò YäLúƒÙK¨É!Æ .úÞŒ…Z6ê»c¶³Ž–‡¸'CjSóZ‘ï4)jìºÕcßU ëÀ ¾G–xûÖ˜þ‹ž«Èu5€ƒz´Ø§É»‹xeß6—6KD‘.+b=¿ˆ'sq‰®Ê‘Ñg÷Ç…nž'ó0.>;¶5·ûˆSYý*c&K3ÌElC£’µÓ¿œjsuX­ùôÛ¡¦ôöCH"Õ=6…Ÿ ߦ̰åm§–ÏJXQîÚ¥ñAmÒ,IsW½v¡ºo;Žˆl±‡ÑêÁ¹Ã3-Ÿ¬ÊËZsÌ¿ênÉ•°?]$îRÚ{Zî¬6ŽÈ™smcÙñåXã|³˜'«{yÌûSnY¯Á¾ãüu9îŸg‰…£×0¹½§XœjÜ‘‹§-ÿa’ý«~°øÒålg¸(ÌŠŸº=šWZvE-K‚ã·RÄ6“Ü_Ž+àµê÷” ×vÜTFv®wºzµIÒ +« gçŒ+STÊCfTo4Ý횟ڇ[ñ‡ƒXÿÖ%¿Z•ä@Ú¯VAÛúJQ¨Sþ¨ä¬¾×'é›É’ô$¼JÂ׃xàþ^~¬&E·Èwj*ž‘¶Rç§1<7•©÷lnž²Ð½ÖëL]ýAâü +.ÕuEGä{ÇýðÝ Ũ>Kç)ß¼ìË6>z_°~å#úZ¹óØ; @=l£/¿Õ”Bû:Ó¹ÏC “Xïjç¥À¿ú‹{pÁiÍtäÍ”<nÿò<:i9a9<Ã[3üñ”%º²[½çs¿$«ÜÈã\Žt +‹6]v¬Ã±ÍP– û£ûÀZHfе_—]üM`÷N"'Wä†X6·cˆà×S¨Å|ÂÊóz{᪕g›' +׫kS؇ú“xˆÂý×y „Z@s]¨6­iÞ=šCæ)#?Ùfø‘Æ*ZÑ>›dáVàFÒR¥ÒÐtÙî¿GQÝ$z¢ýw\v(e¡úõ*9®3L´bŒ ­/îYêÜÕõËüö±Ûºã¶ð³oîŽ×™[?îÄ®j¨ö#årph¨_zmU Õþ`˜Ï8GÄ¿aô”t)Z¥Ê­+¡ÕÞÃ]‹ºÝﺭÚÓÜ;”j,\A%t˜¯7î«]0<·V(ÛãéI·^£3 þÊM§`Û¯Ú²šGµÊ¹lÁr>¥^Ã)UÞ?‰KüUr4õõÀi ƒu§í™©h“çpm°ËÙÌ /o£½6âèŒû€R׎-¦/ú´å+`3œ—œ©³èx{=oÚ9‚÷ÁaíFxËþñ‡ƒz‘+m”]l½ sfÉñ!®ác’wßnF6]'<¢Np¿2QŠn¯SWaRK®>yðÕTcL?6_§à(5=!‹’(ûì<ð3Ø4碘ÑÃâò7}4¨AÏÐAúÊFÓŸé9 †$1´_•“{ת;´¨„W¹y»‘óõ®zΞ;íZJ,oÝpKDªôk‹ŽË¹×2̹iÓ_ ÀNü%ïµ[Ô¬IzÅ>ƒ¯ÙNo6U›êè⥥b—šŽ+œQá:œO/{g¤ &®-'u-h2zÍŒØ;#Ø.w3ê"{ELR§"m7X2·Åíf4÷ÝŸ’öpYzá³e­eŽï¿”ýì@,”ÝÜUç)9XlH½îYÚÄÄQ·< |>·Bc PjgŽäë¥7¹×\ßdFé ·¶úzc¥"4ŒÍæùóÐFUÍ{vƒ^ÒÙvU³Í.ΖòÚLJÇ=S;’›ß«:î,tѹü±§¼Byíùœ† mµÄÊ@í¬Eëžî¤/»îr>\6þœò‘?:¶þûJ8hŠË±ZØCVòtzw÷Vxáiàøeä M§baÎ×…k/dà*Ï–mg…&Áp‹ã”Ÿã·[=ÜÜ<éKp">>˜+Û4(uÚÞ|7øwµä‹AË+o®Œ%Iç û¼ñØË%±OJ‘Bs»í¥M‘u³cF {xO{·'=ðÔ ù]¢¶¿ Š-Ì3ËNGªüÂÆUx6¬q‹2eýW=ÜN§Ž¥ê®DëÜªŠ øñk-™ãëîNü†Ë{¤ìÛØ$<ëÃÐ 2Íà^~b=ýcÓB<§Jêˆó¸qa~¿BdPó¯ÝÉØ«;—ߌ.md¨{!OÛaP'¬X-›òðò<Ä.¬¶Êñh …#üjPÇZÂ:1GøMB~!4;¥ÃÌÅn¥‘÷>stream +d7…\¤Öt7>5¢wÞt”ôe”‚Çù½±[h³Ä;îÕzŸlàØGwM#( ˜`ÝÞ”ibTG¬ùÛöùc)“ö½ÕYÉ—KJ¥-¡íÞ8RË«këXákÊ“½v¾\9%pê$F ¾nBފйŸ m»™oBÌF<¹q*Ý¥›‰ÎÃÞ_,s-hk¨‚ý>*—у*öö@?ÓÝ}X4ë$Ú <ßší[³`­4¯MsBw uñ`rÒŠH˜?­åx0\Åy Ô˜‘][Hà™Ý&nɶ|Y ä¬8…ë##ú—Ok«@iŒšR;½Ì c×vuìtŒ%sòüc…{’k¸Ñ±zxûâ¢ðlª;CŽqýû¸¹m¶ €uåÞéé|NÊsõ)Ê¿ãÙj>6í{>K\h;çdSß¹ÕÚ0Ý£/À0˜ÿ·k,¥æ§|¶› <ð”Ag§0tš¥Š7\Fv’áÓÅ£ÉË»­ð5ŠÎ_З…ߘ6Ÿgðis}¹^p*•ïÕnŒk À+ü5'ôyÔº€’o=­ÄÑx /`ÙªCÞªzgaÙ+ϼx¶|>_WÄ¥;>ƒw ö=~³ü†gyô¤'€.×I§1 +‚}æœsV É ‚ (I@ýóýW^kÎùvÏðç¡xõ¸©*`Œ¢€Š‹ú Æ( zõ`Ó-Í·hu¶=4••§Ûã6ˆFk®ƒ^Ñn¦–°ý…wyc‘\¦dÙBµ½^¨äZnüÁš[2"šJߊÅ\ß– ™‚1©¾\÷à”Æ/¦«Íë.)ªUMÃʲwîfQò蕪w¢×Ñ`€ß^5eSÚÖC¶õãv5¸øƒE§Yfö}*¥Qü–øN8Ëë3#£ýcòQ¿‡ÀpMœÙÂöØ+6+•{Gç«ãqÛ«e[Åi":¥VN[M?¼D¯à<ð•3F‰m ¯æ ].79™¶ÛvýV½OZ&BdœÚæÛ•Y‰çŒ$ä f¹š§p<¹MHè[ˆܶkõž›°ï&·}þ‘ª[ç¦ ^‹s¹•M½ÒÉûyÈM<ˆt8æ‹Ø¥gÁ磗Et4‡vÍ\6h¨±)©ÛD}ë5u Bû}‚ANUn\õË)n Á°ƒ]Ò„å ¾h©1‚º#¾¯—Ò:,«B!Ñ>Ò¹<¬«ô +aŽF³~ÆF|Ý$¬çqÙu¥·Y5œ±©"eÐ(òÕBéèè6ìã¹Ä_²ªŠîúÿ! Á‰D1—ü¿ÿû¿,£-+Ѭúòê¥hÔÓ×–¸ÏVo¸™9 ™W'f1Î¥±ÐåÝF×*~…{Ô6R©#ädÒÐ{u¬• SÇöL¸z~®ä»÷Ýï·õ54À~üjœ¡Ñ(Yã‚ûLMÆlMÅáa9{&0fÑ;Îu€\µÂ¥]ÊU×eã6"KÃA¹½“áDùÈp?.l™im€º™$Œ×TG ðh“§*•¦ÓΪÍL¨^DN÷h º–¢)¸/zj¯jüzæø„pµc³qO¦râ­Ê…]\zúnd*©qX!,eê9²Rþ®ô'¥ªJ¥ÂéÉV \¯LH1¶’}ɽî #Ó§+f’lõ#SKë‘Xà6óðùÈ^¨~måC×­÷Єk¶Ũï PmÓyMnù&²‰ÍGRæïÓœwº¿Ò€óà\ãñ#†ŒïÔ~Á–?Ûñ¥ë ¶üÙ†Œºù’-?jȰ–¹´Â*÷dÑÿð|aá$®å†_2û°ÝÕ•“œjÅIœU£I©¬tV„}|T6¡ô|63¢„ìÓ¥UL ›šâ«Ég–k‘úwJi_ÛöQÔpFÝü0ê8£n~õœß2ÚGQ?Àuó‹½ÿ­½ù‰Þs~¿Ñ>eÒøBðk½ÿý!ðy“FÝübïeo~¶÷ð¸ù”I£n~±÷¿ko¾Ó¤Q7¿ØûÿÝ›_âý__区ùÅÞÿìÞüˆI£n~±÷ÿ±7¿Îû?7¾Íuó‹½ÿ‰½ùa“FÝübïÿ±7¿Øû?-þà¼3Ôõ=ÿi$"Îå³höE·­«¹0~Bõ„¨¡â ù¨P=ï*÷]1”^è*#“¯üa…¯ó|õºLíüÖæE‹ìèñy‰Kv¾ùƒUk†U5™ôMrŸþëu-£Ï¼ÉN +­sV®ÌNr&TÛI¯ÔºÊ»l;!Í–Hæ°zs<²;%Þ“ÂìùÎyÁ!7âÞüÙÖªV\zðªõ_©Ôó +eªyóætšç£¾i•i;¡JV‰£ë?¬Ú“7æõ$ç–»ËÑ=›Î;:Qåºò—$®¥ùÚ¶È5¬*Q”ZëŒ{‘ÍçU§'y«Ë"KZ1¦ÚyÅeïZõÞWáÝ3§’uås'Øãùã}×ߟ&•¿è¤¶¿ñ†›¾Sâ à×¶E¨—æï¨ûÒõ6š·Ø"ò–§]Fr³šêš½À¦>Dy—W…ʺcìqÔp¹Îmì2/xy¡³S&N?O=`$ì~¶„µÞ52©‰¿<ò°Ôêõ¶‚¡»¶O9›¸OšæèЛk5ê…HR¡A p$îqSÕ¸ngm±50™W:Qv%5ø°Ç:PšýªÄ¥ÕßüÁWåÔdôWèÜ&óðr·bÖÁð e “Ý¥ÒG‚å¡4éÇ!°'º{ntºÇݨ_˜MëtöúTÈò©)àxfÏ¡·YŽþ‰o7|¡9¬Íýõ‘‰P‘¹ -ð”<ž½‚Þ>OJWZ ÏñÞyáà.ê i‰M´>*…*¦‘ØNÊ{Ìå(æ]]ß-R?["ÎkówNiîÁ¾øÒ¹–±î¹uI¥ÓÛŠpqj½]+v’•IFlÉ“žïdJuó"Y©#{ܾ¤XŒZQ4ÊBêÛòÞ›ÿù«IXƒýfXËf˜°^Bõ{AÝëVüs¹ÛHHr±æü׬É&ûÄ‚–ávœ9§s\›¥NÍÞ<—ï±=ŽKYëŽXÌÆÄK¼7ÿl kô=BEªdX?‰GqNʆDëªÂ8‡wê™;%ä +½ôÚj³JBä¼’$œòw„9v¸3Y±˜×OQhÐnäIdyïXJY @‚‰F]#ðvi…cô¢†£wÃÐ{@·|wû‰ï|ð§o ëÉ|3läèåÕxvºšÍ:€TÔV7k;êÌŒuß]xçÈÔ°[Žb̆Œ¿r‹>°šöl;q"U¨9’YŽg°’,~ŽÄ7¶þ\ ë“RÝ—^dá jÑ¥]öòËýà•@éòöFâþ,TÐÝx蘳Û3­!Çuª«ÝC. PÒ@*ƒõ&h¤r-9&Úo‰o:þ¹òÃrgÁÓȘ†¤$ìL–gœæ‚Ù,JqÕÑÍR8:EQÚÉ×zwîJÍ/žgÚ|mZl"±öúajMÙNjÝ]ŸÒ« (f>*q©Ûj&vÝ:¸¤UÁ-Osì*¨ ˆ¨X]o‘BȳÑ_*`³kik_C.«;[¾¬†ö#¾½½Z¶½œˆ{™œG#Þ·0ç ÷'J\/£K>“«# «…çùN˜ÂÃOîOYé(5³g£sf‚'˜2*Š … z–L/“þ‘õW®ôP\[¶Ž(ìŠÎAj‹×ÜáüéœëßË–osÆ3éEý€|lo~ؤq2åGQ?¶7¿Øû?->Àuó‹½ÿ±½ù9&Cà×zÿÍù_êýŸ5i<øµÞÿŸ{ó¨8Ÿök½ÿæ|‡À/õþ†À§LßüµÞÿÖÞüìÓiœOûµÞsFÝübïüµ•ÔïD ~R=eœ‹æ×Ì~õ6<ÏŸÅÍéRÜÐ*jÍß7$ }hÊ´ÜŽ» w“övʳõõ 9ŽsÈ\è›ÇW ÎÊ“îwJœèúgËï¨+ +«Í§v'ÓRàOk^„ú|VMFÊÎÒn¼ÖJ¶H©X>*daiÊLz‡í.å›8ƒpÿå_(ÔàðÝ *ÝYŸ­9?GþÎ9Nj÷+dÅÏBûÓE˜¹–W¥ªy›ŒçcZi ⑪uæ%åj‰–Ì@p„úÌ¿¤ ² +òŒ½ ê³þâ+5+Ç2F? _EÝþªÄSÜoþà_¡’¹õy‰P©kà F1âäU«bƒËô¥¯4½S!Nµ}(©M)×9É·•ó8r–’¦m7}PÆ­4“ÃÔŽÎT_ô/ß) CY?"Q7­„U‹ËÿšTï׃¡ÞŠ©+TW,ŠU—ƒš]éktOŒ$«Nýà*^[LÃb&'ÁBV(ÏI®mŸCf*w*ç×â*aâ\€œŸ#çÄ3§îûþ ÇÉû«.ËëÜûF‚Y¬Î¹s™ÖÎJGÓªÜå©ô&AZJ/ɤPöFO޼µnŒÀeR›d-Ü©7¼Ñ]»ß–wòþê-¿£b×(P÷yõÑle"TH¹Åñ¹j·^í¾ñl$ÁKFzrç€:*9ƒc2‘ŽßY#œk—`/Ý€Ý'“RŒÕ ·°ñeꦊ2îóÃOØãe„ÊDŠY‘UÕ’òh®Kþmœß&Ýu˜¨Ø×ª80﮸~Ôj´> +µÖå°é$ͽS-8»›1»2),¯‘ Ÿ1 ¹í¨´Ü#Ï ŸÓÞË–°zb“ÆÇ¾]’˜Ýóo{YM¹'¶¿ÑÚÁ&õ‘uó)ô’[‚ÒßêâAËç%¾î5O\—¤.ìxì\è¬æ+âÙìÅÆ¿…³GÒ[ +ûʹٻ7\P''!ÒbÅÓ<ªö9®û¤$v¦ã‡Æ˜tf£R…› â6¬ïP6RÈkBPHª?¤޼Pw.ò>j­Ö–šO»ÁnÜOø‹^¿z­SÓñ%…Ky<Ö2a®·Ü’,äxfv–t®ÙâÄ$·2*ƒF¾ ‘ÁHŠ©·ÄFûså;%¬e¤È¤\¥µEïÖ'²sï1ZÂ+ÜEóÉëñ•S{ ö:Us¾n¬Ù  ´ à Æ|œ˜<õI‡¹wƒFÝ.¼GRúÃòÞ›oý ¬U•Uñ#“J“}Xw<ã–j-]›fýP¯íˆÒ1m{¥=Õ϶Ùi'=£—â¢6£*Až§ÏYa/q¤á¸ßa°.¦SèZÛD>!³ó“$¬õ´üo7$Ÿë°ÞFÙ{/ +ÇëV»Ï ~täW÷òK&ÙòU¥ ÅÍ€¼ŒòK²Úñ· +h$î…yHDƒ•AlÃÙߎå1†žÅ¿Il´¶|JÂÚ\Ë…5¦„õPÆ=µk!F6£J¸0ÍC­70v }'QºŠæ ;ï7ñëQãdNXa~Ð{­mŸÜNf,ˆˆ»ÙI_+X&‹Ð§$NB~m[X£­\dÍö0Õªó¹¶[jÐvðƒ9¨‰;á|—(ÁM¢…>Øí(U°>OvÑ2m§£Ç‘(uŒdL<þ`0¼ÊÆ6Í¡N ãý$ kg?÷pB8~ŸÓºXÏ“ëˆuñ²JbÜØ0) +q;¼''”ßþVLNÓÈQ-”`•Ò+Žn«PYTAcZ¯5&¬mìšSß`ö¹±i®Åæ¿äÿÅ_Àþoó$¬é§W0ó¦^3X[ÒºÏ÷¼«kºâZ>(BôV2xY%—ñÈ.370Þ7ÙlZFṦ³îsÝÝë¯U0>%W¬Ç§Vz—Y†Uô;$Îu~¡ùöTæÒgèQvÏ×ýcSnÐFRžâ÷òh³• -†&ôªá eCÊš¾î—GçÕ(—5–ÂØ5—O·–Iø`R†rÞ¹NwÌhí.ä×Ìû9r>-àš|8”`þ¼¿Ëèƒ G°ÕÒÍœ ø ¶ Q£©õ`gÑ˃1e€#_à€¬wã*l‹‹‚rçúˆ’"aå9ø¢”y™‚Ô™Ñ]k_’¨›¯nûªD¾ù=¬¼ÈaXÑ/ѵµ˜qZ['¼¹H*À´Ì^Ó˜ŸÅiÑNÅ]ü²LÕxUµÞ- +^×,Ù--L¹“y™Gt4´NÙÇ^e}•‚ˆ!X¹‹ãKpû”ÄY޶|õœq‰â¢~€3¾!ù£¨àü¯Ñ>úÎ8~­÷ÿ»7¿ÄûoÎ8¥úk½ÿæŒWøµÞÿlüˆIãdʯõþ?öæ×yÿÍwók½ÿæŒÇ¿ÖûŸ6iœLùµÞÿco~C­¸Q„ªqaµ•P¯«§7?ÓE¾i-“V³³HV`í4æYÕ,”$µ5 ¥•‹LJú}ãè[®qd +{KºWf¶´C[®4x¶î‡Ùcny¼¼þˆDœ“7ç8¬¸—ˆsœ·ɼ%¡F‡Ö «Þåî¶Oÿ¥QywÍ[¶ƒñS307qE—‘,…Kf»»žL¹ÉƒUàÔhí-²~Þõà†Æ$n ? +x! —²ñí2¡âõ\ |Tâ,ÇšÿZËÏwwÜoã¡^pOƒYÛA™âÜbZ9ÂÍÇêY žJ˜Í«$VK¨$Ê®ƒ'FXÞãH£–NS%ª#ü„]Ó¸ƒz“³‚µç‡$¬r›(JGR¥Ø“y'Sj“ó£©N·½ùÈ{¹Û¾VO,`SI—1ÃÜÈÔ¡œy•ï¼k‰¹gï²ÇM[cÇÅB©)F"Ø–0r¨h?ØÛdjÛÀwNI\ÑõÏ–H„ºŒL:Fqí9Öúí÷ÑÇ-„›yO~¥:n¹ÛY;-TâÍ„ÃÄgèŽÌc*»Ö…êÂ:ívµL­¡H–Ã…€¹+–ßrÏÄ™2ŽŠLûá™fýSòN©þ£åï¨j2BE–§‡íŸÁ°¸ÊùÌõ\håCvOiô³>;Êa“Z`ÊœßëHl┩S¡!¾‹%Qv֥ߨ6OÃY|ÎAjKT!uì]~Dª?~ç|äɰ&Áq¤…u"¼ß{l²à©=­í´»÷åEÁ_„ÚË\ qÝJS{gXVHmwô²ÇïÉs7)à­ù‹A݉ÌJ<gÕ9 ­[´‘ƒåBÊ1­ÅÞE¤¸>H¡—¢ˆ“çC‰&L@Û½ë%·aÀ‘Ã)À``±Ã¡õš #áwŸ—xoþ\ «¡bJ„º¨nÃúFï=élD>º¦°y¤4¼¶sCmñ-âÒe jBò’„Ý*L ì•ÀÛÉ)Ž˜mCˆÂ1_Aßi»¤‡A§ì)2­*S?"¿s*Ú ¬]†pX=Î_ˆ½¸Vݺü“^3í‡<½/²üµRʲ‡€-SúXì’µfcŠ_·—Þ&½g Ж?ÀmÂ\CHZ+BpN2!h“=m#1±/Il´¯mû—„µ qÄê†õÉfpý%âe ÖÙQÅux0‹rYÑU +²å,ªu¼³Uúqy¿LÑQ¶6ß&©Ã ™›ñ§ÀµúÒ’á*õÏ Æùe$âú;%.¸Œ—a­JG¨R2.AåÇ.´d:gí…O”I6gÓ9íR‹ê‰ª"ª…ÓÍÄR'WíT-tììØ… YÁJ*§Ò=é›ýµ—‡q²á£HèñHX›ïnQl6Š·Tó’72÷ÅK qrÀfÉ8µ›9gŽª e»s9 MæPw›–¦IX}¹YH7©íGQ?Àù_êýÿi´Ÿãý7gÔÍ/öþ·öæ'zÿ͇À¯õþ›ó·³À¯ôþ÷‡ÀçMuó‹½ÿ•½ «…’.bT +îõV‹¥àvO Ò^&³©8ð@ê™Þê\öW=§áN[gPéT¦ªšŠl/gÅÚ€½tŒ˜3~ÆCv¸‡#דq÷÷Å"Ÿª{ß)ç¤8®ë<¾“)ãÆ-è‘ë”7ùŠsIÝ{V»Ö.!Š#çô Íjë9-žÊz[Sk[ë¢`“UdM¦fÈf˜rë¥:Go¶÷ŽTp ÅÄÂs¹EXÉ;¥ú–oKÄ–¼ï‚õ°ràà¸XR +«xϘ<›ò¤±S¹–Õ®E\VscØÕ‘óìÖŠóÚZÅS¥0<©µ£¡ˆ!“™—qô^ëHÏ(÷Ø5©‡˜@?ÍÛæþ¼¼ëŸ’wJõ•ˆ­YÕUà¸^2šî{^À I?é¤ËWp4ïZWB˜\"ŸE¢µÓ:8œ =©õJÉTšfÊíû#Μ³Ž˜ïφ‹¡Ð #Ê’É™$§íœãJýNù;§+Áq±dÄiÏã´]à›vÒŸn•«v§;vsàÏÌ~v…\’¨NëËíàp:ÃgMÝê“Õ¬£ÿH9Ò:ú"ÿßÙ>œ)0ç]»ÞTØÞ$uü—¼Sªÿmþ’üõ¥@q¢Íüç×{gžMù‡Tq ´ÙµíÙpn2¾¶½b‡Õð¿¢]+mZºŠ6aC¦xÎ’FúÑ<,À„)ämþº¿Ìç>ëçÊ3¤õ#ýìÅÏKœR—j) +ÔêKã"D!šù/#T8›ð¼ä®ÛÅžS/ìV7ßF//UáÎ kªj °7”ö¬­K|¶ €aWãAÖ8+xê;TÞAÂ…NbHÍ_Àá;åN°ZÊ»‘kµs§ýøM}þKSË®êÌzÎÖ +–7;F8ÝÎméª]êjG.g)™:È<$ÉGŸgd–-ƒ +3â›gj1ZËäjÖÉBºÂI¢n¾ºí/ «£†ñ;j3®éVóû°Ö‡í»‹ƒÉÛxx+{¹-Û»V“ÐÚ&Ô5c±¢¢9RU:–Gš”ô1I( »G´z{–½2}Ø¿PUBïv¢ „näþ;å·<ô_¨Ê:®—äÂBXæƒIÞö÷fÅ“©ìðz©¿@›\ج‘Ô‹ò ÕÄãÃ¥‡Õ¾Ìï±R°cïé;K‹@mGžzû=逄ׇ•8Ñ…á“óÃÛgþ;åïœ#mKFœ m>Z5! <2þ@½?ç°ñYv@ë¶ípçÕVÔ6p¤™Üãx2سG)&)0©% +7݃Ë4öÊ í2²ˆv»ýW%.†ýæ"Àê%ŠQ¤ ¯¢íE¨Þx8åd2Øí¯U?c)#ÇFIÐ ë §í9'ý-{Ø´¯4ç塸3GÌKœTaÐÁpKÁqÔß%È-W’YdbŸd„ßïD$TwÂwJD×6~»£bV„Úï±a=)_ºÖK\®Tõ +˜5pZV2Ò—,}je3´$©-ŠG Á†F£s«›Ãú¥°ÇåpÆa¨bb#ŽP&ƒaÞ4ëenð6ÖaN(¨{s¬Ta~c(â ôøm‰3P_Û¡6"ï7±ÕòñüdXç5àjžëî—¤ÍdòÍËjSžªþf·––íÛ†o‘ˆ^]ˆ*gv ~hñëóÑwƒqÙá#ƒP§Q°ÃÔfkñ‡µÓ•ï”Èáí7ço/š©%ça½D‚%!ºÓ®ÐÑèãñ*œÈ›Ó>f‚~Ÿ'vÄ€¡·!%¼)Ѭ$çSW[ÞU—È|9^Áùd¸Š¶‚pKÆÀŠr´jÆ'›÷òóù|yEV#ÇçÇaà‘`ø èëV¯îÅBºœ\-L—%ðäŒ.°óî«LUÆ^w¡|cNÂdû´ Sdl§qNrm¤`Â{q¹1=z³iôvÛHLêòÎþ·9¬*“UáJaÍoôŽcn¼uµ´6§%l«µòêé(WÏwÞåvQ,=HSõR8¥ç‹èãÄ5¶‡l­ƒ,(µòã8¥ +•n‰ˆÔÌá+£õu¾™®ÛÊXù£åú;%ŠÍÉå·êã:±‰?¥söÕŽµs¦ ÍÞáœ)¥O¼Çô/,]^H¬ÿ°±à• бÃe¶éZç÷âN(?«‚È-ý.éü­šsMŠh{åßçÝU4.ïnoô–¸òÏ•JX½Ï#Ôó5ñho–EÇéTú6Ý-Ëóñ ÚáE`å‰w ñNGÄ8®ûþÄüD8HîQ}@癚·×YjƒÓéµûp²ënK̯X-¬™Mi¹õÊÀëШ‡n©ñQ‰ .ÿÙtyŽöJàäª~.ƒ·³,⛲@OUP'‰¡BaãÎ!jŽ—`p17@kv±7m°ï¬{ý‡»ÚáÆmž÷Ár’âze‚ž€8Z&4ÕN-äJ#»Ìjî;%¬y;åöT6ÂeµTa%¡ã »à–/µ]–:NÉëyb“MENÝ m”ßPë°î“ ¼µÓr:¾ExZ7€ŒÅš eµµË×Ú™k³±;ߘw^BëÁì’ÏýMâ$ä?[¾-G=Ó—eR®)|ÏCÍ)lí.ž%Ý5ÚÆ¦,·@´•C(™Æ7]¯G®S$~/ptÊ4K<¸ÅºgðsÛæPsœ—uRãi§éÎ& tœOú•ãr|—÷«1·d7ãáÚŒžÂ=I õv4¹Ø¿$êæKÍ_’°2Ù°Ò¹?ÃrЇH ¢éôýò@Ó×ç-êo†ÍŽÎ #Ë^×6fU‰ äâ3ôy"Œ.*C^OëQnÖQË’rR&š¾Nó©à#Ö©pa÷¾å¥_7iBÎç%¬€ØîwÎÙ*2©®q©¬ö0½Ò#èM¡¬'Òb<“¾n*™¾]GV€Ù­Èed´¨sªxâôŒ2µüô~jgý‰S©¹Ñ$¹o›¡¿0½ý¹„=yžÕ+¼¦fÐ5N÷_rœ¦˜RßP¶ÚU©¯;¡Ä^!?B ¾ÈUãc8´”ÏKX„ý5 +Pì],‰Åõ§Ñ”ÕÞ÷N&•ñ…í¬ê®ª§Þ»º[®Î­ö‚AŒAàçà ØëYQ–NšÛެŨ‚"MãèQª-Köv˜Ù¦Ã•ªÎ¡EÙ&}[âê‡/4ÿ‰šŠP‘Q\,¡ªm9¬e‰ÛûYÿUf«®âçúÎÅ¥Ö•L"ƽµ¢/ Måõ\Ñ“Täv•dr‘}çÓ¸ôZ'“ðtHÛ²ÁoªCƒ«ßH…õœé‘ ü¬ðyùóÐIGÇ6ü­ºÛ߯uR4§&¼;é-²·‘fW½E¸^ËJØÍŠšýþ}§+)v§š£ 'w“NQ[þ°(x^k Å=¬$®1½èloR˜!|hþnĨ÷òSV4…ÿÕ%‡Ñôÿ¾ë:Ű¶Ø¹wwMfn«_÷ŽGcxÕ}(þ\ˆågìr_­ä hÙ3|Zc:uÈžš/ ‡-n×¾¶ç¬Nô„£xJ*à{*C­w¸àòŸ-G}1ø‰¬9PÙ}à ? `²áÉ•ìÐ1jeuï9\W•®b´‡‡‚–éÆWú0Æ5M-ž°}¶FÒ¯¢»£S["W•ÖžÌ]ŽÐv-öóòg3?yÐ+‘w2¥?ÂÚå|}Ø·|öÂ\Ý=ÉÙ¾Ó`ô¥ñl&P Ò [ù6BQZÔ`>šÜB\뜙°ÜGèYQEIu4# ½;àpääíp„ØHBæ-q1ìŸ+°r½DѪ÷Óqíy?~µ(ÖXëIÇ~´ØLú–¸“·´köl’Í®.–ˆŸ^UíqsWAsÕ5w]Ð+v8d–tzooȵµ†£éjˆb8ï1¨{9s¨ËÈ,ê"2ýQ‰]®üµÉõâ÷`‚‘ãá}Xo‡ö$þ\aŠ×ÚpÔ±ØAg¥ƒ“êRéMÖKñ^¾&¯»þx² ç·Îœ,Íqo”øp ¥'Ñlv×G $Äwûí'Ø-»§™ÏËœTtzâºñK0×‘× î]œDÍ`§¡·Z yG•®™(Þæ'»z…Zq&œdÊu§¹ 3 žÜ?&xãUŸ¢=‡_ Bv¸†çç +)ÕÍž÷&,’ —Ì_ÏÖþÙòU +ÏëáwԕЉ´ºë%qÖ¯ó&Œ½› .Û³ÚÝói Õ΋‹ÊAŽs6ûk«9b'ÙóZ ÒÇç‡Ú7Â’ZL&ÐJL ¸{ÂDo° ØrÐR™ï>%q¢+^†Õ|4t¨¸£ÈûœÒŽb´„õÉÜýTZõ¢ã\ëçLÒ| +Ï–fš‰®ãwB®qá­(³Ä¬ñîœß ‡ ÷yùƒ³™ÔÒšq]ç<¬ŸòöTOñ¨Ó­ŒDÍâ–Þã¬ùÙ’Ê´ù¦”óõÖž22-(o›„ÝìµÐ»ßl!yÐ/}¾»iÐÃáÊ/dæË{ê¹Y—UŸ°¸ê¢sþ_õ}¡ù_VO1:ì§É°V½Ö£ÃžÞý’‰xëÌ’°{2-žõ¢æœ:¬™”y”ãÉ´Ydçói‰47Åø…X´©ºM©…:\X®[`­vn¯¯â¦·ò±öhÕs{‹%WBË¡¹£‰FŸ—ßîFe¤(F—¯øÅ²å°Îéx2uÚé p)ŒW´z»©I…æ.O¾»ÀwOËuذ’ImgÒ"¯gÇ"h€õÊ{˜Ñ +Ž«#•ywy ã‹ôrÔíÍ€g€B€°“ÉÏK„ßzŽkºëÉR!²&Ú¼W¡|QìrÿÔRñõF:5Ñ#O©µ3›Ëž,²¹í[ØÐm¹ÛL ~ÀEÝM€fHop6[w‹|aÅΉÊrßlW'+íZ¶'‹c~¾ü’DÝ|uÛ[¢ }>ºpöh/²æ$å/rhH°œ(aÐ=æ«2ÆÓÌŠcó©â‘lM}­f*¢;º´’3>n¼c!®ë4žËpŽ&–cn™n/¤+¥Ââ(—*‹\¾Ôœ«Bµ÷y‰¬YßWOïlw8°­ÝÛŸ\'š?åçh—g&ÄæµI¶GÉ–è©{¤pQ{Ú†D…óºw똫áÞµ—úà¢ù@ú5Ën=\ä‚Fb¾iäã—Í‹Z>?ƒË™òç%:Œz|Xwrʵ>! àìq)v<*]¶°Ûd§·ŒÇX²]â\§¡ú‚Þ¯o²Æ¯öå…¸œî_G@ò\m¡(”¶È¿Ö—¹FÖ¼ œÙm¹³ª–ó§Ö4÷˜¢·ôë«'!¿¶-¬ Ò[¹…^Uw­ã’:íx6·yD”³Ù9Ã}ô˜ã–HI?@à5`ëݼ„-g·|\¬i—ëÊ1uÎË/J˜ÔVœÕà8µÑ±2ÅóÝÓ´© .wÚµ&Tª{ý¼Ü&3ÐÌ +§»åÔQhF”y>¢ÌZeý…X )«…1è6ðõzÔÚ­–R[.6§Ñz3)p†b:”êcêÛuó¥æã+`E¡áTÔˆê’T_a)æNE” ì8ëj–è Ü…3›h&¦Tï•°#»8ÞÏ•ÑKfë£Ã’mRÚ6¾M4<‚Po”¡Á0k¬G‘l'¦ƒuX +üø¼„å; ˃²–sÛwuw9a¥ÂD“®e>¶Kéu»ñ‰‚÷Í›n&¼ŒœÍ£¿°«uc:`6[Û4nPø™º°½%ué+“ÝùÑlógNoKgî09GݹqUOO>çqqÒiÅ&ÝOÉ¿P?ÀϤõ`ÿݛϣ~€3Ϊÿ(ê8ßÉ”_êý¯íg{ÿÍuó‹½ÿß½ùh*ï>Q‚«ˆ’‹f­³k„º3A7WŒP±MÃÍÖ¯#¬-––•Ž9…bxý¿‰yaç0{~`Ãý™{5âÏŸGP騿ÒUMC+:вª¯–׌ý) ËÈa–·}5µ!‚‘I)m÷[>Í¿<Ì^*Bê9ïe¡u7»½A"Ô™ š9Þt-À/¬·£Ïû|w½J¼þ‚òG]’ª>Eó†>]ö¼1SŒâÝåíò–8¥úçÊ·%,3ê"F=…壡Bçz£)«—‰8áLd‡óǰXsJ¾ï€>XÖùý“¸®·F¯’—Á™fÎ{eÈé/=Ч·»¬§€ûYO «Ñˆ@h?cŒ¹Gªaâã8Ó>*qÁe¼ü•FÝ^¥ÈØ<~ŒŸ +«Å¼I/ <Íù|+ŒP©v×ÚÂܲ‹eÈ$‡{ürÏÄ9 æœ5öú¬ãô{=iÇœgn#Ê| BYåvtw[Üo»Ú!8+Ÿ’°,Ñéÿ¸ÒÃJ:qÈy4Uñ#Îñ;×-'{{hçüЩ×\¹¹ì8ºcMíš:Mr§b—;&Ï)oÎw¼Q£RüÌù0òy~Ö„Ö$Ï n"–ôÓ©[ñZ鵓Gçc¦3>ÁÞy"Óud"¾^ÐTPKÄlÑ}`w%§k–~¼`fç=Hš·Ü8ÑE‰¯=Ce Š&• +D~JÂJ*µŽ8±Èûú´¨2 kÙÖ˜]4e½%Ü[X]Æ/örì-ç }¨n4º¯4»¯«ù@â¥lÿCÓý¡6Æ;ò93¬;§§½íŠZ€-¹ª@ ¡-[6Zd$Ý/JÔÍW·ý†ZI1qEÿ¢!ãbI8¬]äãÕwì[ëÝÜRý–¶‰Ç¾~™ª­Óv µŽò³-f0µÃW“t<†Þy]¥Çì™GŸ:ÎYÃQ¼ ^Û„f'³|$øœüÅù¾z¾…hZmõ#Ç¡°ž4wêq¾øóÕÜ¿"ùlÊbðCU×—šâMê i + ¡œ×¹6^­3áuÚ¤äÛ!¢k}¯×ù1êJ`{SÑíö¶íØ2RÙþ) +ål„ZâºÎU>¬ZV7rü ëmoª©{KwruìÆ"þf±9¡’†d°²<ÌœËõ2­ì±g®Êr_¥3È«Fœ­V#¾³ Fá‹™’€ ,f&8²7òðЯKœRýBóßQ›`.¬eîêÞ„u2·¿ñ/»š‹Z¶——ì5ȨW·SDÎ µPܱŒ\¤ ®H–[Çrœ ;fyË•& $9ºw 9¸ŒÁÓõ²7Tƒ–…* +§±Þç$¬tÊ›H3:–°ìo·"’°^Ú­Ä4Çø¼®ÆA6¬Ýuˆ¥ò0RbÞìe÷홞eÄñ&Kê·is¹qn»Ïí +ð‚{–AÍäDúklK.ÖÍúßTÙ{|YKÝÌöSV¦M0¬€–Kd:®ël…õÍiyï1橽ÓÎiWB͘;%ÿD´[q^à˜N‚OÞn_ìó +¥(-SMâÄ&•ÚòÝ\ +¤y„(«°¶¯dmEmWÝ%K 3 LZèò¶yâ««sG¿-qJõŸ-eŠÎPI;~ýq2r|£Ö`~›Žw«k‚Qóù”úÅâœhHçø‡óºpì¾Ó*P‰æôü@GUë /C÷Vñ^ÐëöRË-wG¤ð'¬»/Ìl1GîÛ…ä)`/=ñOIX!§ñQU;¬UÅWtÍãù‘A‰Ž J}ó©U—ç2Íp*²š´Z¶-žLÛ.›¾W=².êæø¬„;XóÝpÝ9/SË‘öÌ)àR«%¥;/ ×ÙL¯÷Ðh”¹ãçKçý=‚÷ò£V„ò[Mw >?Âú‰(ø ꙳îu¥!Ö¦ê`€SÒº2øeHl¶ø~aÙ;:*TŠ|z4l°1ļU ÚÁ’¯BO`vh¤š,ÌU-YŸË¥þL7æ‹H|jœÌý$Χý¹V®$WËêa=zÁ}Q "5tΠ®¦Ô;KE¨ íƒÂƒ`sÙ3G¶R̾ /¨6+—óºgÔÌ%ïœ8'y[ÈT7¾¬ÍOËLr^’ùœÊTg¶Ú™šƒåtº yðSVóÖz9ŠÍ®éêhãp)4ûñàV0AJ*†½}`—æÄ„á ÑŽÍ3î.ƒxüÆ¥îº/`ÊR8¥´ˆýxY¬¢#i®uÞì’Oßf°{MMÿ™š6ÉÂÄqJõ A {o‰Kÿ\ù¶„UôNFÖäù›€-)#cº€Êú”,•¸^zÏõ›MF›FÿÛçz ºHNqF$ØRá8ÒV{¤—³z²¢}X¬¬ƒ<õ­63Ò€1« ö#ëî´Y®È…“vXM}¾Wü¨Dݼ—‘A«Û±·Fšp*jP*.ÅËÒT÷œß{1àuV#Ø*:BŽ´‚‘ÙÛŒƒ¬x%‰òv±]¬½>‡,ž/v7«Gcè)ŽÎĉ«½?¼9¡¦-mÒMuñí:ã¾S÷G¢ûø”„õÖp~YXÎCõžH"B\nö£ó]fÊü+~<.¢lgÐ,¿ªÁÛÂc´¹M‹Õt>Ÿ«²,JÄh5³ª¯ÍÔy¡i»Km'4ºÆ&½<@wÓ.3¦ûQÈv#~08ŽÆÎà4Jlºç¿$N©þ³åKb$±¹¥Rv‘òJÓ‹ß4°Ž(;‚­z„X½Á5ÍlØN±ºJ‰ps¡ƒ÷μƃ½YiÆ÷o¦Õk2éÏÔÙ˜Û±‹ñ¨A­F¬GÓò%³íPŒñá<“à 1fJ{ÆJâã¦Ó< +âi:÷çF”ƒqD¹Û¢ÙýuQŽôMß?^—@:ôegx»–œvî·ìøq8Æãô¾::,©Æ(¥A­8wÚåíp nñ`]¦Q7ƒÂi<ïë›ñ²%›~YßQExrßS† SÞ‡9¢o–"6…lÐ…×û~%ÜêrÃηµ»0¥zØ1lª£—\0F©ÓÍ%Û¨ˆ~ìý¯ã‡gj‰‰~ÙÓ=ƒæ³½mÏ÷jw¾Ôµ9±ÚÅGbã_uó¥æ¿$,5ùbXju¡°T<^ÂrŽ-‡e´Íw+.ú‹1 ƒëXNû›)z|]hº3¤Ó¿wâ¬L*þ€ ­=• ‚cØ.ݺ˜u꤇õU%Z«º™)¦•„ŒHTÿÒ£‹W]hœìÊ›3@ý(ê8ãÁí¢~€3êæ‡Q?À×Üþ(ê8ãøµÞKã1ü±a„åÁ±–åÎ*,›X„* ÆÃÈ3Ïàºw2þ½Ù(y“œÐrÓ‹Îàš}¹Sg>,m=v¹3@¬ [Á¬ª“¦¬*_äL«]‘LôÒ:Eòþ +–q­±÷¨wÑÒ©‰ñQ K#¹£"aiÿ2ÃòÖ¨„•ô*š¯T¸]X¤ÈÌò帹\<#ðïØ0B´Ušõu›Ùúì²0-äXÜZµ\‚0->ÁšX)!˜ )§×~ËŒ·wý¹;_O«zò¢–ÜéKŸ:¿Ð–VçrXZ۰䬰l¼jqºwVfÒ;ƒÍ®Ó~xoÙ[¿GW¼‰á·ÜL:§æ#â4Ù•e€]ȪmÓñPÝÄp“4› “3®°)d&Ô â1ðÏÃÀôN +[2µãõù8~TÂæT¡Q€6í÷L:]¨ýžî¥46ú명•y&¼·R@æÖOO m73!‡Î¦ùšÙL­¬í´™v?ÄÌæøL$,óFû~R.þʳÎw:ñÿIûï.U•-Þ~-f ŠÉ„bEIÒ÷ÿ½÷=çž3Î^¿ÏýçË¢ÆêæÓ³Š +“Y³¢K.¬:Öl3I6-›Û4ÚŠhüVþFÕÄ%l ¬ mXKÒ Èƒ$ îÊç J‡rü/z>TÆ©$–#ØhÕ³QE„sJ&´j¥YŸ>DH÷Õu'ß^Oi“©ÝåÖò£×¥Ïv=ë,oÇ•çŸÔ¹®ëlvÿ(Ihï–lüÔùă6¤ ª-÷@éë­’dgPNµ¢·»saT锂¯%ÕüþüÝu/m¶ç”³GþY™tfw_»Š·ö¶•|÷´¿¥´f§w¼ô›é‡uO-ïÇæê)Ýúa?Èí¶;¾6T~+ ‰ÛØI~\ù‰c²ü—3eÏ2õ‘@™oÀÿÂ÷ûÆs¡:àñ€Ûn*_ðZÎL$˜‡ôáûWplnuáÏ'©)œìÖwiÍü»b:¥ðh„¬vÒu&kìóÏÍN8,™Ünçsoý[ùÕÑ ê]ö’¼¥d7“¤Hâe‡Vüä§AÔºÜ>¯4SÊ{g½‡%]çü&×ÍèÔºÂElçRd·ÝÓ´‘aM·6×jiltÒ×ÙŠ¯K¹‡Oõ´í=ü(ªxÞ¯• ±\ýY’€ËÝ@Ê,ñj)cIf„R²;:ñ¡–!j<=¾½`è†TÓxû–œJ»e³Q|ñ²rå”lålW_UkÉdÇßiÀùÐÕ9§Áþø¡×Ÿá­>§š°.ªª[0d%`–kY%jÒ,¿‹ßÊßœñQ¥æ3É72ÃAyû¢>EÄ­ Úª…­Æý•™¯|oòŽ?NmØ+Þ˜‡S¼ŒQ³Äù?¶—|ùÀÌê~xÊ5´«¹lmxV¥1R6éÚÒáÒf7ŠÅMÊw–ë©%!#?×_¤D+£²^låÅ’£dºI^ÑYì´‡0¶ÊvP(¬\w®eâ‡Â–³¶µ“#)N‹m9TSqáÀ•²èi—q­ÍʪôŠkò]“ð˜M껞¬{œ¶\™ù|5Tç³U±ËÿF’{rý ÏÛ+ø:¥_ð5Z"Кiˆ:[ÌãZ¬jaªø1}t·z8M¼oºs|€Í×ä™6RO-»çwj^#üKQmN2ˆLÕ…ÒÚ ²É¬seáAKºTS} [•¦â…2Ë„D&¿ˆX©œp’&9ȹÜ"I\gÆ&™ ¼Izª¼8?}ð¦ÒþúÜ\‘×µ°a¢“Xwâ#U½ÈÕ>Ú‚(}UrH¥7ßÓ:·î?QTº„»’8ËålÁ,<ç,@¹B9™<”ó_’¸Tÿuóò7jÛ‡¨~¢n÷Å$®¢¾B¤¦Æë`(¤wî²q³ïÕv/ÓîÇ7÷ð:ÓØÏ9…³Š©Á÷ËLúýYz•”TÂÕÜRlT‘EÓIWæíkº=ÓZ=~O§ãy{3AYð¿•ŸOYƒ~F†h¢Zû<¬ø *Ç8ÜM™…?ɦÇgsç[>Ó¹ž«¬ñ<ÒvÉÝÛÛ‹·õ1%?êôµj«P*}°¬»Lz®¼½ü,En—ê4[Ý6„ÁÊë Gã§\­1šê£Öð·­I×®ä7ðµ¯ú ü¾@Î[¯×å]ÿux7’cD½™‰­ŸÊìv´'nêlÉ•Ñí`£Ç®"ÌžJ|긛<[õ¤Y¯í/÷u8û´‚xÚV™Éy_+Œ¯J— Kz<íx£ 'çlúÿ’Ä¥úŸ%ÿ%£Þ ¾K-ågTÒãÚ»•—èÀÚv‡®MÅûigg£Çý-Úߋ˶U­Ýäì4•ì÷\•ò¯Çr]ü>gßFÅæ‘C8Á>UÀ?•|näIùò¨ñ¢:P¬_e¬ÿ8ß~-ïsõŸÑgø:1 ¦Ÿ ¨ŒÕJøáǤ/ ]Úiu§³ëxø•­¨ÖÝN££¡yqËR˜Wx^]=õ¼ 6²=§§Û´@dŸã»9tùz{•ú=5ÐZ~2¬õ¿Nö¿§ËxçÑPîÃß +Àg|㯠Rekø„_øÆîÎÄ^ýM«äÖ£Fãn(¹dáq©Þ5ÉLÝßòþQöª&¼„׎âjÞ;Î÷ÔÈšÇëóøñn£À;Ãn¥öÓ0Õ3G!ÒÖ)²WLyãž™ºM ,þ¿$ùkþGñÜX“ äY* r‹|*Q´Í×?Þ|ý>Ò/ ·‰m³¶·Òì0Á¶+­ÅfeyðÙn%Ñêh ºÑЧ|öÇ;8vÚss$GÑeðÅ¥G¿?n=„h¦9¼Naìl³l²D?dz3›sXë3ý­ü¦µ@¹ûþ ‰'¦» ¨¸/EêíÁ¦±ÛÅêy‹ÆRíƒÝy ´°¤M”|j¼\UÝÚzñ! òôì`Ú¤Zdõ‘J+ÇÁª\úÅ}rWæ±óx›f\ú†3õ–dK y'ÐáÊLÍYˆ¿PJÛXñ˜*èÃ?ÛÝþ9{Ñ&̦mÑZ”?ÇWMSÖÇÄ%ŸÄEOòç,¿`}z:Åg½Åxõ0ÖÃo%£ ò-ýЛ¬¹GT+¶†£!³êSôKŠtëÕ­B90Ô[©/©÷@Üý/Iüiÿ£”Æ_ +=f»Z$'!¨{+¥‰ö¡œy¦´Î÷„Ëãü¡)‹YpïûpZÚE“1y-φÜ÷Ï©xÝ–zR7Üœ›¬X휟­ßé°SðhÙ­*n´²ÔöÖÃ(jv )jžâ~+°â' ´æxâã ’¤f¹b³kRfgú“5íígty˘ì%I×9ïNË& s âkÜ?»”Л¶Â9W±“N“W˜µGïè'tgP¹P1 ŸݨÝï‹N¼]}6Íw9bƒýVA¾ÿ’Òp»Tš†5±}9/·ìÒ8mîØ7”ÚÛFa‘—–ÁîIKãce†Æ»Ëô'ƒÛ+¿šÖù<ó"• ÓZˆ Z½+ê“áŠétvTÊ¥ÝV?u³yë˜ýßăè%ñþgI¤xq¹¹ÆÕÜÕ©›^‰ |›Yö§›yú¨‹ñ"zÌOL @J%Çkí+2äZå>~·ªœˆ±M¶¹ý¶˜öúNÑÛÇ‘£¾E%o(–ø®¡pB·_ákLJF+¢ÁíÛ—öÀlcþò[±1×ß­éåyÇTU?9ÖmCä@ÔªÒjΧœ—¨Ì…¯v8×èœæt»ÃW8ºmK®-`a¿Ñ“Ö½OÏZĉN"ï[„Æm~+ÇÏî°Ü?О¤²ë†¶vz&"R^± W¼P»;Ë‘N«ré*œ#ÞöL¸í'{ +! q¡¸BxëǾÛ9ÍŽ~q´0qŸ‚6¨©ÄsškÍ[„t¶*FŠÔΆ¾‡zÓ×Ïíæš»Rø˜ßìgÑv¤2óþd½¬š÷åW’>sä€à“u…¬2z·ÑÇorÚgèx@:~Ü`ô¼Ã©-ÔS›Ö}©-"rw¤£º²ö9'AÓß_OÍ5{µ›dæqo„G×m(7¨ÇçG%úüVrßx‰Z5€fK€¥ŽO€IþãOÛé¼q$€aΠòé—Pþ‰ÅO&\ ì%G•à-SdÐÕ®ÿA3¬¿;d†>SŠÇ~Êüν•Yy‡Zsçqþèäeùé ʽ7P%™ÙÜZ­Áíò¨¿àLüiÿ¯¨¿@ü?Íÿ ê/8“Éíÿ+êߜ᷈L d$¬~wv §ks?Mà¯Æ„@oÎóýHÁŽM¤Š¹p^ ª4©Û~“ô?|¦ëïü˜õ.ú©(¼Ã"^z=$#{Ü·yð²ë‘íÔ‘ûxȱsU·¨mï.?'_ü\ÿ,͘@KÃ@7(d¿^â–.¼óí¼J¬vÁM€5óîûAÏ!ç¶š ›á µ¥YÒ§“þžÎÐ~š»÷¼C䌽Þð>÷²ž-¹æÄߺ&‡[PVÞ³œÉ{×w޼_¡t:› qü…$FCñëëoÔk¢º„ð]¸JÀ™ö‚ZC^ÖؾéÆå¼G⻕ Iü‰ñxRó¿y„ôY$¤=ƒ¼¼žz»¦§/Ü!«¯Ýa3Lö߸…~}^÷¸wÛO;ÝÜœO—úçxÂ6–þ hó9Éq6P2ÚÀ1ñW´4þ˜ý&Œ««À‹?.Ïâ8’Z½ì+ŸXïf5ç[~ú²^?{ºVq=q‡«õÒ-âÇ­sVî¦sVÛþ]Ò4ßföæõ\”Ò¦ùQ;³êÚ$[Iþuó¿äoTnѰƒ”¡5'/PÊâ•¿£K2Äö4î>ˆË!"é°€œ“7h»YÕ×Ûµ$w·gø>ëåúÈzâ̹d„•3ž¯÷V¸_›Ø»Ïùv.îÒ–ù\R{ãu<)F»¢È¿€²ÁÏÑa¨°!a…%¸²‚¨\¢ +3Š!AèËòÞ¼˜X;Q#P3¯è‹a}^Õ|®]k{yáĸH‘:ؽ>}–E >ªS°½½À¼vÕà'ËHQ{[æ’jê†<×T}oV:;ËþF:@×»6À[xhE ´f“Ô²[Èi?!§þ“µ7®,.NDVðEméo Œ¼WÌg0Gˆæµ‡c<š÷æé\·±÷óíàb0³éÙjÏÖñGMÃhwDUg§`½;!›å†‹KâåøÏ’ ¤Ì¾ª›€ç}®Qoa’®¹œ¤le“ÜÂ"(£ÕcìW××½»þQG#wr£RÏeiž»oä3r¥M/.Ç#[9#‡{ý„ÖóѬY«ò±‰Ï7‡í™Ûî¹Çz‡¬‡âv^xO·„ûúü›óç½i·p™úVý.Ëpùï±I²‰ÅÛ#?»P ûVË­oîuð𞢘~ß¶/ؽè•:xÖš¿ù‚Y'S¸îvÕƒFôH]OuY=Ó[»SMJ<·þ(/Ugw›)ëÙl¢Dü ”h PÿÑøœz1嚌'é_ok½LO}±" Tö.£ùÙYœ¯Ï{ç±tíA{na72½ÞòcDá5u _­œž­=‘ÝÉ\•5{5inïʪ·%Às¡¬å‰ +§æd£~C¯ÃáI2ëüŵKõëÂÚ?Ö4Pò?§ÞàI +T:~ž˜Y¸½ÈRgò[wfóÇÇë¦^¯9<?—†×‡¹F-רî¿/ÝÀêI>›ÝÙ–€6­Ö2ªÛ¶‹J€je9*ŸÚrGÌC6ÝçרÀÖYU®Ìîºÿ ù‹«§(ø.QÚ_Ÿ"!4¨&Ѳݷ–ù—Þ\Î}ä•Ù8¢ nû }¼ŒããÙ’šÓ«¡Yì]ï»üs7™þvY̽”W~Ëê´’Þ0HY÷²…ÚÊrܪàñ‰Ñ¤ó~0°L½…üÀН€ñ( JVƒÏ@Në†$¡²í(Üäú¯lf)x%Y=I•NþškÞ4ôÓóÀê9g²«ïy'ô€½]F­‡"˲³Ù÷2Áº;·U±3ÍJXcŠ‹SÃíŠåA¶¿|æAo¹8ì?JpùŸ%£Š% +”š³$»lïÊo¯yÜãÈ£ƒ‚²¹ÕvmyßMRòE˜°[«¹ÌêFzcûñ@7·nmg)Šä]6z½ùãO³>º+á…úkù”Sß…'¦‘E#è6ç¯ÃŽ›¿6ŠšÈî7hç° M:‘“”­ÃàÇ™Rþbg6l„´úìøXeÙwVD{vË;é\Qpù¨±æVF;mñ"÷Jôè›±´V§‡sïJ羬\o.û‹h¶äÜôÛõªÓý·AO¿µnòÅcFz4”áo`÷XÌ1 ´‡Ó€òvꢟ˽}§A¼zÕ[Ó+Ÿ—ô³MgÆö8hͬ mÿì“ÎVÆòîN"ŠúrR[™¹äö«ó×ÅÇdn.&eÏ2¾Ouµƒ&öœ”>>áoZÈ?r´Ðr]áH–©ø˜ßü…ŠDõžõ çÕ„QÍF]DƒáåRq—î¥sgëÞùi~&ÇOY˜ëã4&iõгV(û,¯G³ËV|.m±q ûÙÎú+ÏmöQ¶'cÌsÆ¥ÓåÍ/°L‘¯Ü–-þѰºca÷ìŽm×ëüBV§Þ_3 \ü‘SPIw“ãwÃðLû8n É+ÏVèSse >B +»ÇÛ›«—"n‹ÅJš×g›EØ\˳ýÁÝ +Öºw߯žÅWµÕmÔØ¬^ÃÖö˜¼ùfc¸qdj$õ÷‰£käÊFç0j +QÛh¢öÎX¼Õ£Wïa¾]çhe Á–.sçLšt¡Íê“c0ܾôm²7JîiôlUÎTKÒ"Ä™îÒ+§Ty<¯b»‘ß·Œaû0³Ôvæ÷Y]K÷3S¢Ög7+z@¥–ÝÁ¶¾êüY’¨ä +°‘”¥´Îmuˆkp"˽ûvqótZ•kt½Nñ´™ŽkÆàúíîÄñ®§èÅæp—Süò%z“9£gfÂùVYŒœ´mš9e°«ïõÏísyé ì¥Çñ=Å¡[¢åÒëåŸ2Ýë¿WÔ/`ÛC¾öxV<³•:0ô¾1ܺò³ ï6âÓϳvÒfZÏ•õ2u$U 5ºÞø²¢9÷çzË +vÅ™Œ—:µ»’8ØÏËr?wõöÜedÙYÉp™ç"N1KjB05´Ê3ÿƱ¥ï%Y­ý\ÿ,{>ò ô“fb:ÞÄT°õq÷=¿YÛ‘töWµ›É>9pÀÇ3Tkw;Uy”ý’‡žº ¦³IŽ¢ö’Ki{8êê€[½o8Ané°uW/L½× èµµLÓ¤˜®R}èæu:¡W×Þøò3êgó ¬ÞF ‚næaÚ/éõ—:û»£hfsèIŸ[Á66;9`ˆ´™ò‚]êS¼]mWê’~»7ȽùIoB¢Kö)]7Œ'? Z¦Ï?‘ï[*¤(¢•ï~b³ÑýÄi÷ÓàWT7qý (5æpàìï öoƒY/ ÑöÑ$‹½;Î%>›-ý¨9›k½ó‘H…Ê/² ´Tá£Ò­1äæH«ÏoŽ wÿ +#V4é9CN*k +T +{*Õ@Ï]ΠýŽ™_¤:ƒÓï´Ý)L¹3`3›ùqBþŸ›ÿ% \1Ø<«Ô-LýsýÒCAêî¥Ók¦"d¿™žø‡ønnÞs+wÏ Ïj çßtæ&rµIµÄAÌU·v—yqJÞyžÚãƒe×(t6Ý\£¾ë gä©S$øgû|ZGí1ÿȶ±4Zi] ’ü…¢ÔO`n9üC¾v:æÊÄ}÷rŒ¶ÚçòÂúépš¸½œoó‘Q …e$fy-. NÕÒ›f8ëÏj5¦íû$M=NÅîçl·¯pÃŽåÒBÁ:b{Ò'“XŽ6 õÖM›Ÿ[³úúÑ*_OùœÚàrO5GûSÃæU£€g·»ƒZp–k7×µS‰_~W’ÛR캅p4Y÷©Ìy0€•EÛ³Rë¾v7-"zlI±{Þ“µÏÃLܦI«7o epuB8ïëÚØýÔiì©}ïE´¦ÏsØ/Dó1Ÿ’‡å%‘äš_ôßÏÛ”¸àO^kuüÁi°‰8gé}˜ö§“䤸¼›ëœ¦´-Ô†DkN¶ê k5ý}®Û$Ó¦¡ô_½z|zëïMjßëmZÓ§žXãʯM-óül«ƒÚ[¯æƒÜ +vù/ù_Å.ÄMP”àâ©èzM€Dî Sá Ð Ð §FE"@RYu7>¿Kà}Ý¿2ïÒý†DÎ…ˆæî-ÙU«:¯ гÛ0¬ç_Ó°°õËß 47ï¯n¡(Ÿ +nýBþ‹3þ_QÁ™,qÿÿA…K¢TRL·š çF„œ×¨P¹@´]‚œZvz)é@ñZwâñßW?{—Â'- +U¤}#t1£ІŅu½üÓmöòϘòZ3ã“;Ý›—Í>me'—»»”²ÿ%I”ê–€âé ­ºk½2,·¡ ³k€¥N.À0´°t–É ùú |ÉJ»ñ$Wïéþ•÷UÜm%t™-ÖåU2Uù%÷òccüZ‹OñEbi-Pf½›§ëŸ»ÃïgöÝ¥ï¦ V`÷ Eçízfb€¨­@?'-ÁeµQÇ$0F€Ãô|пȉ„¨4çÄXRûå•—‹Š……îy[ áê®õ +ú3úµvfýÉËÓ J]6Aø*>MÎé3»>…|òÞ\;_ôpɺCõŠñ¢ºÃl c8 L Ô¿ÜÒ˜+ ;ë°l|úÒ€ü¶!‰ Žñ2´jùòÊEÕ¹‡’´ª½cÒ~mˆ Dt(Ál(K :ýòÕ=F°É=ÈõªR%ãÒ«LµWCÿ(IàØ¿nRHŸ@L¿--º£Eˆ +šÀ+Ҩn8…ƽCTC7áû%:1¾¡Aô¼¼²¡7Øãac¼¬¿6³~'ˆ4Š T”MæiAg3‘|P¶žî¿žÏi¦y¿ª£ŠuÉ‚Þ>ÿ¦˜U¡-½!þYþâD + È)àBU;jïôVÒ¸â@T¡>¬Íæ![€±™óΈn‘8Œ^aSY¥^íF»tŸß²Ï¬O ï *]/{Y÷ÝaFœsç´qÐ}ízk•—K®ÐÛ[×·¡=’Hüi‡÷X™ÿBRÉAÔŠœ¨í2p9í@Ôã6LÜÒe(,ðh¹øb¶WcÍ7&8`>LFO_?|"¯ï‹)w4¬ìöÀŸeQ­=ª½qëø æ=ãk·ºQ/¹Êаʣ™rlcéÐ} æ{cMþ,IÀerH;d~É M±Ð ™(eªðsŽœÌ‚g-Þâ¤&‡í§ûÉÎðÌà}qQužséÞ}¾®qQNÙŸ;[¸õ/v¶rNõÇMÅÝÓøÐœXååL5äÊIÒ÷ýÊlŸû^'ÚdÁ !T/9z“¯p°Âkû$ò;IÙúWh¯mÐqå! aÔ¥@·*Š7ŒæÌF[ó!ï—+X»wÖ€s>Ñûà4±(`8H›Up-¯kÕ;)úðÞÍŽ±f;¤4ool¨._^’æçúg¨ehÒð QµNàáèJz5Nò âI² * +>ýá‹¡uÁ/\€è<ÒeùÑ|ÔvWI +½K±‰™§)º´Mçãßdwñ¬ê_êÒ3¥gqŸ/zÕÝHhô4|Ø«Nã5TÖùUOVê,û ù=ç |ísY€9Jø2I‡ØMc·°xá?Ûá'˜ ·‡îô~å‰WÝ×d8U¬§(¢oÀ®rÒõ·iï ÙÖs‡xX¸½÷’Ño‰]UÅ4ÛRÖIJ/wÐ6·Ñ68³ÖUŸú…DéÚåÊY€b”ؽÊH/q Þ÷ŠÜ'ñi¯½’ïx—ç€u–J4¹í"jr§ + Ë1>ÒQ~"òaß¡µ½ùÞé;4ÂÌíü%ŸÕ:O=²U åN­žÞhk±²IeCf­©Õ`¿î® +ì¼ý#‰wð_7ÿKþF]·’5ª>¥Õ¢Rã(?ßÅH6WDÐw†{_òÝGÈ,ú×Ü%3:=gÁ$Åýü ³Z²#?Ú<ÖÚ¬TTT[í”V9n€zº¬¸è¬Ì‚ø^ÆDâCº+¡Gº+^d[,¹¥Ö/¾KŒýó5Êîå>;öAÉû˜Ð R¢XµbõyúN8nmÞº}"}™ÈÇ¾ÕØyc×c½P¡gÚ}4]ª«³±’ß'BÙ0ã~e†äQ³ÉRÙàÇsËW3ËjýA.ÜàG\r!m®Í_È*@¿SÈi8ÃäLFÈi©~\=S/}ÕÎyB`';½žÎÕ¯ƒµÑ:šÀßÇrÿ«eF»Ò!«A›É±Ü_l2œ½Z!™’,ÞÄ@_V-ÉZ4té9o™ægö5(Ó&”jZÿ·$.Õÿ,ù·ä>¼¬¶)$)<†Éygõ}pßM{fûº«“t©²ª“†µž–º+>™ý$sìm¥ín¨tÜK;¸É־ +ùðK‘8¹ëÅê9Tçm®jL?ŸâuʲL$G f²ÕÆ4•ëS¶Ô¨ýBþæŠÅu"£d#·ˆÖÉ:¥±ïŸçéÐñ¦aúf4T优Õ#¨^IýÔ[uµ'å½ö6½Ù¨¿BÚH¬(YaAö¦‹™¶Æäiæ|Û yãrž ÚÓKBŒÊí±WŸ ’W›XàSý…Àžtll{-&{øyPÞ¶t@l¢{˜êVoÞ-ÿvžòÓx_‹që'$¾1óqãÀnjûE‘Ûæ­Ò•ÙE™Y]ÄvO\xÂ`Ñ¢ÏüŒAªSÁì<¥ :›©üíGnr€šøü¦Gð«ò•ö¾Êße£ò_’Žýb€fЪïIöÆaÅ÷qí}°^Y¯hºKñeß¿vß¿ÌìèkniÑÏ Eh‰4zÀUbÃëˆù¥íA)é¡glYÃð3Oo³ùÈKëað&ôAôm_]ÁƒîtRD×IuÐËÊ/ øæð6Š‚rq?ùùÑšªQTïüIú©:dým\ùÝévZw¥È0Þdv_~¥1U÷ÊfHª5iËÍ…rÑÛ3®Q¢7Ø1!ƒÑêÄ +ƒ8‡Hýýþ«õ3ÙšÝëWÉ·µ^¾Ö$úikRïïÞ£ê/ ìáp¹ƒòð6Äa³S÷÷ÂuÚÛÅ#õžl.ÐV'S «žnïã$‘æ6¤¶9¹ßçÑUù”—­M¿6;Ŧ€>ä¸b–©)ï{-`Çýl Yr§ûWåÐjóÌ +«Õ‹-qÍk¯—MÎúÎêÿKG×–ôâ>@ Sʰâs“XÜLgAÑ•ÏHë®Ø=\žZ‡”n yﱓ +J¤èîw]JUòËpPDçªV&c®2®~ÍÆð½*&ãÍ€q.lÏ*OFÜØ¦lyXS˜Åer¢½æóE¯²ËíF^—™GÛ&3¬øÚWPÚ9e@LËÃx·ÄsûTt¸â¸Ð9ɧ‚pìOÛýÓZ]ÔÏŒö6X3÷7]75ç/'\³yd\ïs¥a™ÕA&l‘=¾þ¦9üy1ÎÚXÐþÂP©pÿ:S +ÇDT§œNæiTû¹èQ¯-FýBž›{ ÜÅ PA«ô}odc[ø~R§öû@'¶8Üמ£µú+ÇÍÄÜܤ&œÙ%›/Òá·å%5nxHaøál¥*½ñqG²Ïtf¤SkDo®]‘RŸ=­û©©v—9¤ânzz¨tÓ}AèÒþ£$QªÿºxG€(MˆûnÛ}\fîín©òçe ŒUÛ­ŸD_夹´)‘¦.*ÚÍžØÐæ}ôÅ+Ãî{˜qŽ©>_æ +Ü}–Ùpthüäî¦â“9ê~¯çe7óv·]¸t +èæçjóSnyü`Œ ãúgºíN’íû^z¶îåK:[)÷ã¹Õx#4§µ†2Üu¢;¬Çvv^ׄº\§K¢ù 1;¯ô`S)Nü`}{ú©}Þ‹~»pìºÕÐ{S™ó|;b[¨g×­9¨¤Ø½î›köpl„ǃÝèϺ66_u{¥júìS¬qŒ¨eÜV³z”¦É°ösý³èX'î¨Í·×S=ÛY~zÔv>ú¡vûz£ï¶øÂîË9b>Ë(Ýu‘Ò%¼sššD[¨-ê?ÄQ‹$k¬ó—û´“&îÓ_§QïoÏiæéÉÕ£˜þËiZ9mª÷ +ònø„½~~!É¢0N¡õµJµÅ—¨6fB6³‡bA2غwŸÊ[¶etêk¬­nþZ±ÛBÕ}Ž"¹Í5üJ¿ú®k|Ô¾ö7]ãJ!4ÑÂGªyïŽWN+?YIWÐo¶ò¥à¢õÛ+ß÷ȸ\É ³’slo~! °ÁUPÈGP8¼? ¸{ÂõJu!dÙ©¡àÇ i—1PämPÌŽ'  .àOvwGÿ˜7¿¸/×s)°Ès­È“Ã:È—6ÝØ2ÍAŒÝùû¢×wÑͬ›a­˜ì¨¦§çŠºÛÿ<“%îÏõåÿF½~ ªûî@Ju€¨£:,û¶pPZ³4ƒ‚)É 0<˜ P¼>@Þû+Ú.¯§!êº\„¼ y§ÍØŠ6t»éçR»ð "+ÛêÉÓ[˜éðÍ•~w®wõ~Éõ$.ÕÝü—@Ôæz¬Ûè(­Ù£Ú+ÈÝÌïš)Èk–²h;ÓdÁîæ?–ù¨ÐñÞdjs61fyâߟٟS,D=ÌNéXIªÉ å€ñ±“¸ÏsÃh8‹•ÉŸèn$F§¡³Êû¦žÍèÙ\Ü£j… Âú ¯M>Ÿ{‘"‚Ê!Sóãw¾ëÓ5bèéëÕÆtÑ×í]&R΃WC´¦È~jV"8ÖýK’ÐÞÿ,ùPDG;È»=Dñò‰¢Šú` íC Û)M€5Ö½¸¤¡“È1U)\…Ý«]÷¬ û”ï>#P¾wXIÒ9/»G³na!NU”©SOÁ§w·~ÚÙôý¡œÎý´h.¸ÑÔÜ?¨ÆzðgÅúlŠôåk½XøëSÚXî>XI`wà˜ŒË/…‹BÀ¿T¼< R©ýÚ;Öš;w4w,g‚Á‘¸Ì—œG•á-¸˜ßk¤ÈyH«’M¿žÝ ZËúö×ÐÑ}Ô¦‡7¦tF«÷ö=°H¹„¨Ú ¢r h>@:BøÝ‚œ‚Äój¦55šzQÕMÒüžv¹ç%µtJ}ó¨9©í­=dtûsûX£¾½ž­ÜÄ=kýè„•¸Œ5ŠeóagúÆ«Oõ]Löp±Àj—á‚Ö° Cý—$³Îÿ,ù¯Õ{EhÍõR&>Ôæç•¸¥Ñ(ÀîÕ—v(‘þ ÃtÝÉTî=«ŠÍÉ)غ—[^ò§Éúdç2[k6Ñ“xsÙ™Ÿ+Œ~r¾¶)&£z‡šžÑá®hJìö¶oÑêröî(žcµþ, È¯ö©”!çWBàrúÄÿåL‘ P‚ÓÈxAö ¡Ú×° «º÷ +‡ˆ§HõéÕÎ2«XœQg4¶*Ããìè;’Ѿ>”µ”vz&Û5÷¹Oã¾5{‘v™o‹öé²êR~'FSš¼Ü–Û¶¹Ù¾‰ÆŸÅ-D´nåÄÁåp J“Û”¾ÃðÝèæ¾/Fä¼óU¹Ê Tôdeç×Rët3ö´)=ìž¡à›êIÂþhWÅ_yÊ.Ï´-!Ž,µ6=”•µÿÈajlâ^“\—89üøõÕ‘=Vÿ—$.ÕÝüzß“¬(8¬ø D½|Ž L-üð=~FAîÚüº³¦š}È9³ÍY½|.U« sà-ƒÂ;]½wذ»³žh'ª›Ç“ re½vÖ²2<í7{º¬õÎÝ_sE] šZ]:ÅšÄøŠ„8âÏß%CH¸¸'ù;pXëµI’¶1ùŠ/¾cçõ¹m]i!¡SSæŸ[Êg.XíXuÃ*ñéë}Í%w“ÖÙ>++Fm´‘¡¬rÚdC_:‹u¶SW…Fö ñ2ýíØL‹Â™¬.X!¤—óWH¤üg¨û=@qõߥB ”XV€ÖlïY¶_™öòîáϼûÏdd[àò==¹]á9«d}sȲ<±³§‹êÖÁŸ¤òºÕº› 2ëƒW¬Šù‡ ^7qù-´…+ì. ©\Šõ÷•˜ÛC Š™ÈùŸ>æç +Чdë k>NÔË ´š@ÔeWdåcùSÿäV†ßÛž>Ü‹^ÆV³Êd æÐ,îÏó:®UF-B w£êæKšëþ°Ó•.³'–7?Çì,<›Í7fz3S/åã¬;Ù½¦²Wš~J ¥‡ÍºÜøÿC@ѹº‚ÓL¼O°® §ÕÛ…[`%ñÐ>ZoêÏ`·®fmz?WòÍ×1n¾º5t2»2ÕMóÉ´Lë9¯IB: —:¦MªØŸmçÖdºgö’`ôoº;—‰%}0!wÉ¡Bïƒ%în¡ç‘? (ÆOˆz  IežH2LNâ§ÕS_6Û¸iF~¨¡¸·Çdãbõ¼opùó{?ÙŸÒÛUy“³#*Fqm.C\¼Ry)jRm>ËíŒpÄúÃÉèÔœ'Jåï¹½Íß ¹0Æûd<™]Šã‹ñüÿŸ)ñ6`gšuþR* <ô„÷ÊN‹Á@nϯôoƸ ŸŸ…—iv³§Ç¡Pß¼4g>JŒôÒ›>6ÉI·Òº¸”d›«½1K­ž ¡ÀPí±íä“aŸ ±0—ùÍÐ÷Gçáú@¤Fut…Œqð„¶/þY`Oš6FU\Pjœ §•¢vhL¼ëÒï?eõž|ú¾ÂÎ@<5^òÞ8xÂu_z6Ü-9&B9ó(€ÕÄ©¥—Þ‡ËÍß§3:5jilrb\&òÍ‘k‡ÌpÓ=ñ•u¤>0‰c·ðÞ}°e‹åÝ/ ÉÞÏ‚ýçú{ã{(>%)¬"WäÃT¥Ï¹‹¯Þ½s™:}!ôîÔ¤øšª_樥Ivú¡0åÐ_ónôEý“,qçñ½”š[ãÜÄÎÜŠüóE•FM$¬ ¶C½Óg3ëA¯”g¿:gMŒgqÚ;ø,ÒOùíŸvO½Ÿ¼¬‡°õx}zA!pO¥Ô!l;š'²óƒ¬#íœúCW·ÊÍÞuå!Uûª¿èV÷á,«…ñäZë¦y·pÉø‰h2®öŽ…äN%É;ÈÚãÓ‚Åïù=sW Ÿ™Wû%v¢²WŒXäÏнzø!|ƒò¢]:,U¿nÙøzÎw³g©׬‡6›DÞë¥ ?Ý*Û±"°™)9ÕÎe§zY¿)û“[Ïy)Bã¡úÚ§i´]ì ‡q™Ã2w’yœmŽv gF7 +„FîÍ¥Ï(ÓõýªL;Þ ÿø˜ßü—¬]@‰i@ËÊ<{O{¢¦Ÿçº×Ì}a†0Á'µÍ¹0Rzduµzðøn©„¨9;ZÕËä¾cüš²“SI†ZµõÄùÛC¦“<{GÚefiâMzu©õ(ùNͺqe»ën?-¯»ýV‰îVÀàz‹}×þ,{wî \Ð’0¸G§z1mŒiOÍb׉«ß|=§…º®Ö¡¿ž_ ±…ò<'¥t¡Ì-~#³ö!ígß\ñau vÑz智¿/QpÁÝì‚ýžë2™W2è†}§WuýÎaT;ÙCŠépÜ¡ógxp÷ž«ÅHµùÀV-™ì(ÆñBëûçñx߯F”UòO©¾rv¯¤¥-µ"ÌNn5‘±2ŠÇ·Ã0óç>²ˆÜì®,ìû?tØfò”–j”ºz®ÕêfFã~§ï›Ëö©•ÒÛ|níµù¼@´ñδ.Þû·$Ž®ÿ,ù‘ ×èê×*JÖf~^y¢·Ø¹Ó¡¼MÉÇPF-&·ª»^}Imn6Îh¤þ|ˆ£]·* +ÚlÛ+Yù+á÷ Cº?q…•ÒÆ©nöº@;…ç¢Ö×vTkÊ]ÇäÃÊnÈÅr~"«tæ %l6ÝÂüYnl½4>ÕçÓñÁBŒäР]í³+Fa¹\?«‘/µÎ—¨÷ÓÛÄáÆr;;¥Íá´™½$nÙ›ÈÌËÆwôv›Û8ÙÝ|^s:ºÛxYJµJEÉ¥~n4ý`›Íe)ٮп¹ÑÖO§z<¥Þu­–32}#ëÍOû´’Ý(ÜJDâ…Hí6ÑüTg‹‚3¹×øXF[ü9NzÞ}öê³þf9¦c™QúÀ—ºLW:ˆ#ìÚxÀ[Ä›<“µoýÙ\s°¡ »éz|¢u—ê5}~ k\%×2^gS=®ó¿äÇ¥ú%§#-ÍëòQ’×1ÛËLykÎp³Ÿ4»?Ò© g+Ë9ba”î©D}IŽ mvgÐmÝ×–tT©ßô÷ãdXk’™á¬Ñ)0R]÷¶5}ƵŒ3¾VóÁÔ¯œ6»Oy_ +„­¥«„@WÛ–]•(U”ÌðP‘$#æ}ݪüø¡ ÷=¯ƒíà4À¶½yÙ0X¸<=ÓtÚtèÜkÛËJØšÃάóÛ$ÓÛ\£“Ÿê?Ákú”"j™g»^Ô¨N…'›,a«OàŸþ¢\Éô“ØÁ’s”’8¸\Kõ‚çüY¶:Æ%õ°y¿§޲ʌ¾jkÚÐöˆõWúÒFÝr˜´…*3'%—ìj®é§ÜPzÖ®N#3½Æ•àR縠Εӊ¸VyB'ï•ï»|X®¤óŸ’Ø/dñ5ŸEq­×0eÚi£ñ“ãPm)Œþ—ÀÇüûäó%È}Dþëk‚Â4LbzE‚b3=ÅLC…cÏ…œy`T@~çÑ ÏæÏ”× wïîAî8=ƒœ²{‚Üü‚Ü0lZ¹n¹ê¢rµÂäå¨ÅERÙGSÞ¿Vù«âo{ÌÆ§ÊÝ–ÿ›ÓB,P¸åÓ ÈXíÚªºE¶w…p Q•m*ˆzNP' j³±¹Ñ!ïây.äuß ·(f!/S‚°j r–&PÄMlúúþ-„CX½g“ìæç +ò¦Q»º + +-ö JeAñ“î¤:]¤hš÷êƒ"~ËÀvðª€B7Q½òäW]ÈÉ.L»»CØsaÁäÌjÂŽ«?M@}0±U#—ï I«Ñ­K^Íüuï}s Õ±B8“˜ßåÝiÙóè"´ë} +›ÙZs’ýË-¨æêgE°'€Ô +/PÔs°E”ŠUP0äeà¦*´ï¢NÌ„Ž¢ØºGßx4Ìãâ§ZyOšÝvtSBøÜ=6/Ïp÷>5e4gtœ­Ä!Lüi×v”ØZçÁÿ£üÅ(¦Œ+@ +[H÷˜²-§6Í‘—ÄÓ„ê l·Šä¸ +iŸ‹‹äl¢·}ïo´®Ñ}Ür#Âh½C‡ Òa§Š/•ë¯fïÆù1òYxßVYuF÷™|¯=•¥­ \á<èwGçB¾:üGùiiÑQ„ì@‘¾Ù™{p~M8€nH%‰A¿´§Çyîh\©cf‹y—ÙÜ$ªæ=)¬dõµ~®ŽAø]ƒN©ïøÚ°ùÔGÌxzSI¶Ê{Åo¹ù}sò´ÍÕmMñâEßí¦§“S™ì²gV}î²¶+¾¹ÅsúÐlN®¯©ÀÐ$¹îßâÓ‚t +爕l·úØ­õ’ùY?èZ¸à3¬#z½‚¦ºfcm¸…þüâð"ÿ| +S.|Ü­qúQALâ¶^ìµÓŒ„K –`[ãø!¸C4Ó“’µ­uÿQ@¡t‡¨A?qø5î†x’{0 6^ìL<&QßÈýîò¯Hz¡MSUïX½wÜÑ\è;“4š¸»ŸåÑU¼»ñæ¶i·W®xí]êv±S-ϽpZñ{6SrýÄ?o=sù²}ÇÓ}ä>—þY@ôÞ›b}©ÃŠï=joJ;‰<À+H0=y¼kíLôz›ô7H·åœWxĸS굇X6;7ÙLÓöÇXö/JLÎfô]žÎ{c]mg•\ýd.°»û㇞—2F°Ó[‡.!2ûÚ»bUmno™Vu;½·jÿ( À…+P÷€„j’¬ûZ8a“óîvñ¼²¼‡ +uOÇö‚F‚2Ÿç“Õ +÷Vn›IÅ*_D³y²KÇ®5›tXsYÉŽŽÃyj´–é Úª¦ïLÕÒÓÅ(Ø÷©´+ÂÑ`; uu™ÿT•UýB(`ŸD¦ü\ÿ—€‚ð]ÿíšj^=€-ðY˜œÑ´ÚEÖ>¿Räúæñ²ë:Ä ïmúû±{÷wöqˆuû¥úÒÚÚŸºÊjó8‰û5=•.ËÝdrŸ}7šb6¶ß¼’µzj16¶^ÐÅÍܨW#³ ¨½ÿ ©ãñÿþ$™¡¤D*!nAa;yRó\ß‹ìà±¾®ú·*–ïŸi«9ðå&2Þ*䬳‡·»íx?»ÍГÓÑ W‹©K¡Áƒà59#LOÓê¥R쾑S·nm”W:2,¼4<¦„›ç—¯4<}2Ò6g¤Í3óýÉôd$k»¤ï@öÞ ¤Çé­V¯H©Ð!ÿeÚ×GïB7Ô5q:ȳäÍ{{sµ}móëÄó¦¤tô-wt?ûR=˜œ#硆næ­´ï³ìh *ˆÌÚ¹Š„ãgB,B#ŒùŠÆ_C?½£K¨4–aLO?Âiâ~ÄBpùþ €Å³Dª¿Ùƒâ ˆAéŽÔž³yHÞKEP¹P¬X>rcrkáÊpÍŒumYô%'Íë$ÂÊ^rúÖÄø¥?¹Üžgõ1§oc0ÜD#Æé}¤æD¹ë„ÊeRçë¾I‰óaÄ=§üš{Îzß¡ ‹_¾>Ò?|}0ÿƒä5ÿ’ÊO,ìqE÷ @¹V¬Fý£R nÊ9Á²ìÕ=^÷À«Ú_íéæh>ñê¦3ïVg"ÖúXï´f´;Œ?è<ÓP{Ùtx +mùåõ’‚ [KºÊަXz1ØŒTY°¹³ó°÷å:õà:8ÿ €ÛQb†hù(ꟸ¶ÿCaøHƒ÷çÏèö:>ýìÖìÊëÁíE-ËdVœ¾æ_ÍÚä–Qª–šIµ=¥»›ìFHírŠ(u4ò#ys3ŒÙž×*à^•d†k™g0.7KðIÉ2Cµž@›0¯ÚçO$ÃK¤¾é (-ä̳+”2gúþ>|ç}Ù…ÿå-ú’Æ1‹–³“x#ãxÛ¤þöXeQD–#”l­¥RÑÝ lù8tº§ûU¥×À+v² ¿¯’i®AôÆ;ëUôœ“àõ*}"Û/øµo¿°Ljå¤âô òÆ` Š£ùíEv½è<ïKî¡EÜ}%vº\ \¡sË.êZÕùr]ÊôCŽŸìp¬|¦Kc4ÜS©Ü­.„fÇõ†T¥¼g]ùz K)ÍRMLÒî·§f;yzÓîƒv]«@Ø]«X‹º-GC»¡×ÏÑõ'û7@¡¶YƒRþ^l ·‚åØ;ýÀ8ÞWýù’+ÕÞù [ìO$ Ÿß*÷ՎȨ¥îôâMõúÙ‘²’ÕZ4­›7]–öw˯¶³º~˜”ÕÅúØígÙT½µÓÿÒvçb¨Á¢ìfÆÈÇѦ_å›úÁ·®³ÿj~F0*SíF·¹Ô¯9í =ÚÞe„µ¿±Òæ°QõO¤S§IXËSï‘öÕâTò²p4\ž¡µ8{I[Ía7=Ï**µ›Nhë¯Ú_– +#Éb˜»ÒülÝr,³ ü¥`0´4ëÝÝÇš¶ùý±;“÷!Õ¯¹i®zgmÜ íí4ÛjóÃ‘ÐÆëÐŒôÃàIún % WºÞ:iÆŸ¸Xí<ç%‘óè­Ñ[ž¨boÖA‘¡dñ)5 &mvW¼{#+_2VAlÉÙúpñmV0ƒ£,åaïVÇ´s‚Ìîü +Ô*|í:Þëumï>¯W;/×P²¤’Õ–ò±z­ê(ÄMv6Ämĉ¦{ÒÄ­ü¬þ‰æ“=/¾²åqﵦqƒ&-á›ïêÄT´?öÇû{1”îyç+P&† áÞ¬28å‹DÿN(úÍqé^wYhˆÔºRR;[ºä´ýº"O<´o]e(hÕOˆh~zX3òÝf3 ±6Þ/NoÌ6Ïm£Ûgà?±qàvz“Å*¯ µé{õ¨ZùœXk’P¶‡ÊrTé{Ñ>r>×OöPÐ2Ì$SÄzNí\î~¥Ay"G¥·µöÛr#/ +™µ&ÔcB„K0k>½×:½d5½e¤AóQ}¥Ùzî&kž¾o×8åkÈÓ™&8»b%ˆ­òŒ”E w +íµµócœê–äúIžóß©;ã´¼üɇ¾úÛ>ñâÏ4Cî”'Þü*ÚÅpµ‚iKo(­\ov¨Õ˜ o:Í’eÓ«F5$ü˜U,»•ÃŒ:Vä®UŠßS¶|v å²2(¤ãæçùf3Â-¼rEµW·‹Œ|=@Ä($¹¡×‹¤ÁyTû&±“i:ÛQ(MÚua‘ +1Z´ê€òˆV¶¼K„Á§ŸJãk)ù÷š§úiÜÂÿVñç +ªÈ]¡|^œë¥`}î”ÈwX ÷„V4EÞ)¶ +ËMáyZîþ„µe}X{†¹sÐ/˜Y¡ýz~9ÁIfR“I:ž Êã©Vû DíV`kaÒý~#Þæõ¯ÿäkž²ª;}"WñHQ+r[ÖË +M[¥ÀíLK ¸³*š|'Qr`ÒÿM¡SÂü\|ðïÝEq†Ø—ñÜ+C&@©?`ñ!8ûRìËS€PÏ-@Þë/@+•@b–ÈܶBû»Ÿ°ÝãØ® n÷kŠÇ]k@»HÐs¤“.€DõàòÉÔ %Ø4Ä ýŒ˜ÀÑ$ïôwÞo)O•½ÇPøAê°ÿ·ð/¬¿š†{©3|вŸHeÛM€¶ó‰·v¢7Ú¤ ':£6šˆ7±³€_H’WßÊi< @ûÞ:­Ü"µ\‚# ³Ä$垣Óx^Îúˆ2#9œ^ ŸøN)¯&µéý¤ö"×ÊþŸ:ºæ €Ú[1Ñ{w@R‹€¤W< MðIK¤ÚÛ>€ÙHpÓŒ6g F÷œ($:ïT¢Ý¿$: 6–èt7ê½W¹ÉkÔ¯N¢¦°PBj†I·uqÆÿ /3bÒð-í?1T’õÿª°l¬˜Ôƒ§í”`ðþùßèžè]Iý^{ÉoÁNÓ0×[$¢Õm‚ýÀµÌ ÀÇCÉm¾EåØo@z^¢—é»ý$¤¶åñ vÆÂU*丑ºþߟ$*! ÷Ÿ*ê€õX`‹7°%¥¬?\ô<<”Ó@Ñm ‹k ½Ï ÅòÀOÊŠ·Ê`cûAšsûö{âù-Fúã]°¯ÙWyŸ5»FEÍ9É=ÈcO¾´‚ðU^ºTàwŒ^hïOøž—2œèIm"óħö>ÂÝÒ´Z“N k»».ÀÒ˜3úLÌ T¹bA¿¶ÞÛgÞÅùR|¶ú `Û~j³å*º‡Ë]dÈþåm®Ï‡ÍWàp&kĽ_Óz7–0RËæê/ùd¬îÐÕÝÞÞCš?‘ £R"u3O¤ºíER‘ØàÜ;ðÚOp™\ËxÇ¡ Ï›÷»ÜÔR;íU ºÕgÃ*v¢õdŽˆaìÔ°»÷¬û*»ZÜûöa{[ÇÏë éU@À¯ç•kQ𨳶•Çö4Ãú¹ñ ·ÃµQ(©õ?H.ÿ[H¾!ÿîÅòÒà(uø«YyæÂ€ü ¤ƒ|™Þ¼ÏÒëòª÷ÈîÆ™5uð0ólUîÐmß8÷Õm?¼VîøZ|¹iù¥r·fçIq±9™¨{9:E8wè²ê3ÙµÛ po£ ¥ö:Œ¾„ëìæõ?Z+Ñ)ÇÆÒ+yY-ÿ‡Î³ QÌ÷Ek¸Oè»Ç\»ŸÃÜn<ûÊ×Â/—o­rÖ¹;qJͳcgÞíh«Îû«mq¼÷Vˆ¹G¡öz·Û,ƒ­,çÐM²>Ô½FO?¿ëv&“ÆÒ-—ª‹MíRüQ¹dtq3q§ïëÄ«:>@>Ü”ÓOó±ñ8ãϨfʼnrïCHÛ²^.Áè'4tjs£øðYãï~½ü~¨&«•ØoÛ£Rên.4`7U;#{9j­ÍGËs_d¯€PÊ/]²T_ ¾[žçŸbaVFkøoHöô™ôQy”4˜Ùs3ØÎ.«o÷óŒÎ‹ÚçOüŒ‘‰ÔØN￞@A›Äi µò|%¦f¸éL;ÊèŸç_ä]źë^´ÉMÝEÜX-7Sk»È;ðqvÉ,ƒé„ï>â+î¹ùmOÓ(3×°šRžöu^{):Þð“C¶û™ÇÄG;W*@ÈûOt*¯,Æ&Ñyõ(žÌr´Lý.êÃ4úÚ4—Íã€Vºû’£ò“7÷Û[™+8óEAjº³ZÞÞ:V?ØgX™‚ü4¼yõ£ïF029ðÙŠvfàŽVÙ $u‚gÖj=œGjýÄJ¸:¤‹´b2ÞëO4Œ©¬ŸH½ßŽ ˜X!qµÂ®±(ÜÊk¬xž Ûe߇Käö¶hÖ Õ–WÞXÖÒfaÏêÈ=ÍRul¸ëZŸb°7Mæh óÌmr,m^š²gÔ‰#åS7ÆÏèÄŽ;ž3î ÷¨q¯d¤0ÏÑŸHÆ<¢þìâ®ßi œ@qðü¼“ns#ôz¿náãútÀöãÚ«¹±NÙžëa™§KÊ,0z†c? ÛúÜ¿ ^p®.nÛI¹5=«7ðP¬NŒ;oU-*Åšì6º=™y$k-´Þ_åA®ô”™'úHÿ£‹*ÀŸØøÒ×¹ÏóµºåîRµ¹8øøàŸOîÕ ·¶þhËÎj¨Üü"¿¤iKÁ4›.ó¦ÉžwS]²KKíºZxjóNúã7û¹Žÿ%´yNÊó¢¸ß„±Pç±ÐèEq²EQØÜÅýüøs[Búü ÉÒD¨ _¬-@aÛ¹€R¶ò‰ù}«Ð›è´R®¡_|´²›ggXr×+©µ8±&3kR ÞóûÈô¾¸¦Ë"—®žZ =f*±¹ãÙ9»å2³“´I¡(•ÚaŒu0þ*™-¾vÉI >{^+«!èw¡lMÿÀvÝD§4XýlEÀ”zíÏcp/…W“$ÏG´)]v“i{tÃVü…¨Ïµ ÓufĵÖR2 +¹§¢ÝÆ ]m™gLKµ…ìMÖkI€¥ƒpf*¯Ýâ×Ð8gÒ.À=«×Ö½!×6–g‡TÈE_ê>$ê½ÛŸ8"i ï««¤ƒšÁ˪›áÅ^²Ë„Ö]¿4{î7/i¹ÞÛOgèÅÙÏU§ÏQž´sÕZߺìpRÛ¯d•œ@ê¸G‰†¼Q²S)ïÚ+A ëÛá Ïœ³ÞEì|~̱™,Z0¬20œä˜!||/å;Û}•o?H^óoá_$ÃÞž€Bmïâqw»ê>nŸr‚gûDz3Ý5KòÚKü”ë*ªßÙƒ]œ ¶¯›B3ÛL} Ú'E÷™ËHæ‹M-íi'úd 5 ­ ⱟìîÀfb/d6ÖüË ïW¹/Òt¯/öÚóQÐß÷>w†óá¿ðÓI…)؆Þû”ºQ§%ͨþA+Mvz+£{ŸÞkîb–{XÔÔÂÓùä9ÄBŸzYW᩾ª_zÌ-Vj QTPlćƒ­1l›]‡]Þ¾«Ë|Ï̃~Þ}{åï-MK ¯.Ó¥µq{FkìýJ_•BÔ++ÙðO$ëfÅcl.$Ò¼z“wŽ(y‹uYtyºg.4[OßÑöfmÕŸ+&ô«ØÄ5ÒׯîiGÊâ ß«ÏQ²T²"·À …e6}‹ÙEñ¼/O›žbݨâ®i¡êù–)ê³6åL¢3åˆä»K,jÏ‘ºþߟ€üg8 ”^ƒ=6SnpäÐ[”OìÊoIƒEÝ·ÇÓxoÏm.O ¥¸zjüÆëO½(K³!Ö±W›o££>×{¿¹Á¶e§¾'#Þû“~Y©Ìè{Ùt£ +r¡ÞJÜùL¾³xT§·[ÛžN;Ù‚þîdNêçO¼µbÁ8YìîOÖ÷â·ö“½ßä:sÃ>ÐÓL#ZûîY3ª¾ãjÓBõ:Þ”ôX.±!,<`¦4¹ÁAÙ5è žúboBh +mv´i·±kªK—“1â¶7òmé§¹mäV³ÛÈþv!w“üËþ‰k0ºÐ¾Ÿ½·7Ü%Wûêª97†púï|ÛµÐþ$2ò’úÙWgcß參D¦ùЂ?g†½Cc‡û[…9!*ÑW]ª×kò¾ûÎEcêƒFvÇ=V¸š½´±fáMŠëqž,°ŸnëT½ØdRέ‘a>[墛ý$¯ù·pdnQk{?ö —ë(Õ¹®½ÊN®6­tØÔf•¥xôCÉõÍ\ —ÔŽŸÓ×€ãpþ=k(ÔìK±×ÊX º«õ]‘ •Ûü|³ƒÜ)³-¢KÊѱu^¸ÏVµ˜E‰à,¶ˆÉ%ˆ}bÂ÷£f¸êÿÄîJ³ÍuÎQ*ó¿/8Ùe-ôÏ6TðUÆùÇQ–«¡® Ó~a:4®[VìjFVž=k|þvÁC‡»YX/w6‡A£½¿PT»Ppd¹?·jÜÐ"ô½î6£æñÒ$Lܘ¡½|ƒÚÓ.PÿœZÿ˜õC} ±áŸX/ÏBiQíZ˜Ó[b¨QqǰJ?cH>‚¼h3ƒß/f'\b¦9ÌõÐ^ö ªèÓ]öð“k¬ží[ù¶¥Ã!ǪÐÒîÍö©vóÉ‘ýF¬Sb£‰z}Õž®ê¹ÝíTã +諆D*^ÝÙ²*t±Šƒxùþ¿ôàò\œgêôš§œQ!ë•vÖ_¹_ÒÛ$·c—Â@)rŸxžUšÎÊ:å §ƒ_À’<Çm+p6'"\Lƒæs­Fx7ŒtžÏÕ™rûÉ ÖØrug²DiýŠL­Gåó2rÊ +SÛ”«Ð((›ý§4á …?áý”5Æ$öQéÎ8–®xð~ áÅe3µ¡û¡A“ôœ¾´)uÛµÐ'+Ñ#ÂùRh:ƒñ¨1çY­¾’ £æ©E»†Üñy¾nEn·åó"w*W³xXj 8(šB -(<Ö +ìNß]±1Ê•:SlÕj\µDü´ÍãѪßûN¹òvKÆêÃÎ[˜*IåçŠ8Á¿·‘3MËÅ<{sÀø¢Bú&àh>«WÿÄO¬“¥ú F<€³1€%ÚðrµpX'pÊ^=û$†, ÷WÚgñÛ7€º_@ùÄ‚ò<  ŒÝ¹‡/€\”Õ@îDNX?gØs^þ™@E\* ·É“ w¡»±§6¨ù Ô«Ô¶Èç9µ~€Æ½D§­':› ѹäŸó u÷~î@2`·=IôJ«Dïò’è½Æš (€„v@ô¸  Æ’ID_E° €²Ô,Áb \ã rO MðH~êP17lõÞ»{¾û:D?³@tkPdÔ°0â7$*‡ÉÜDª‘Wþ“…L}÷™Ù_€hÏ@èÊ Ë&:]{ˆõ¯‰Ø7PPÁ´ãë?m3·©D¹Ï&Êß2€Äš Þp‘`¾¸xÌ9·ú[X\È—|ºt_¥q²Ò&ÛáKMfç³lþ­ÅŸùpaŸH½·T€ ½)@®í#@Ëa H½ ]ŸÈdf$ï{>¾o¾i¤¿`DKþP¼¦å÷!€öð8eh¡®âMoˆÑ5ˆÒj~Q†_¥S¯ò¬="ÒÃîãaÕ¨p:¼¶oƒN¥qƒ’Öü :©ƒ"è%h¹„é5I?D×8Ö(»ü'K5ö©óOÒ3zå;@²ý,€×ãb¼­DŒ F÷ígfÜ[´Öòëx]j¯‘v¾ÊøÇ{^Žä%º]íÌÃ2gùpºÙÖïàãS÷^ßèÃÉ—¸”5.MT>«aµò’†×©wTü'[T}\€5y4O,ûêÀ@«µ],4Ë÷·g?¯Ó7Æ^•Ò³òÔ†Ï4ÖÝs72Š!÷ˆ¸@zØXNß}dÎrìþþáNïÛº#Á¶W®~#&/§²CœšçGÕÿ¬›y¿_Áðß #7iWªõsMZ:¤—NH.ÀDì°›ìŽuÒºý.·Ëç­>>Dá«ÿx<—•o+v™ò}ùÍ{~P·õboH’žD'öæ–W©{ÒJ»nΟQÜ`‡÷Þªº…aeÏòQa+Mûèæô)¿!iøc2Z¦LRif¬LØzGÅÀU¬`HÅÒr(½4áž:QÔí;ªó\‡™õê|Ûä¹G°»V?þ- ×âù]¼ŒÁ½~Ö¢-y2‚}´wˆË[õÐd—~ßï{vfgwüj™¨Ûðo’}¢îs"ç\§Á¤ÔÏóàÛ‹(4‘–©éÝÂŽ¥<,ć˔z5ªÙAÔ~¥°¯Ú¯ÐÓ  ï¢JêñôбÛÑyoŸ‡ùÁH=5å`?wg +{®ÈÔw;Ž£vø~2ÜÊYo²QÐÊÞ›4¥çÚl›ûœOÐM– %„3 N2?¿ 5(ÑɬäŸÀäO0…kî÷ÿ•8¦^xÝ ²uËN19&8¬9ñ0ýÔnìÃ’¯ü‰ïö(Øwù“nKs.Þ(AΛlkø:ü6«ëV‹ê¸ÎTåWñ畦Z­2%Ẅjf¼àŒEnžç:ßé¥ñЧ—^æWD­r]©íü,¦÷ æ_ñH¶ð'éÀ•ÄcÁñ6o_ôF&=·v¤Ù;ï³oBÝùϽ7éŦ6›uTrîë£ÞVàÜ{­hÐü.™¨‚.6¢º@'Rw.’¡Ò–8 !$nŽ™·Ûì’ÝŽ ?8ü’×ü<“a¿K¤ÚÛDêg±Ųp‰2…Áözû´çGxFÏv×Þeç½Ëå› ÝúŸ…Zè4Œü²='s ÓË mÏ¿ú“q]äÔû0+)Öi¦Œ)AJÏŽ2ïúRÚ˜È^Ü«È]Ìû¬0*®j¨”tI­Xá8Zü €uŸÀOW¨£÷´Á`}±*œrê[éêé'擵5XÝ[÷>÷ËÒÏVâÙmCAδ2+ZŒÖ ¡ÓiMØíªa©Æ(ížÏ–“¾,³0®KX²¤Šå¼å¯ïÂרçg¨ïéòP¿wG >iäv¨‡”?¼}©=_ëýß ûœ˜Œ¥¬ +êÍ Î stZÈ7ñÀc®´¯pÓ‰7šK).‹ò5xL­O9kg3]ÔØKót{uriB 5üŠä8¾EôhÅÚœŒXQ<`¡*Œ¹Í×›“õ¨LN\;ï¼ØÙ8“OðäÙ™2›³ïKÁçÈW²ú&Øý†Ÿü ’H•Êvô>.Íó ß³‡Í}ÈíOç¿%N…Ѻÿ:9K ôw3ãàÜìOô&W`½¬ÈõñÞWÆàÒ$FL´íHû|·/–¨pÈgg44E!=Ãu΂¥3ôaÐsÆë1Æ£WÆëñÓ÷ý ïgýAñÞÿ€WºÈß{Î5(oè£[köü‚‡1[ã±í¯¿_;=ï¹ ɘOFáÒ‰7ÌÙB&z¤Ÿ±oV#šUTéâ‹Òhp‡k’¸ÓZÂåP¼n,÷ÚË"»`;“ó@§ ÷®îúBغ÷óæéI¡Û;¶ÛvïXY¦¹ƒ}ÁŽü¾0¾îC2–Æò3jHã³Ã¿¾RÛûQ£<¯wVûÂ,ªÁs<ÖÍ© IÐÞ( z7ÍTì·B'çˆ}ÒËL$é•ÍeÃèóms3Åë³ý‚"0[º4îûdÞî¾ù }muº6u¡î½K·»wš0»÷ÆÌ£kôõ@×¾ÿ@¾°'¯ ÆÓ,ÙLù¼xÒd‰Ò„ë³¥ºÔŠ¡Ÿ]M©w.¶ŠÇo±UÊ"?H^óoá6³+¼&÷~?{ƒÝMlpæXA?÷Bg¼é~å(G!þmËU)ß +ìz™0i¤Ñˆ7¢þõWš§ÈÝêNg˜*Ñ\¥7ÄŸ bº1.nC/&Þª]láUÁ‘é}~®r7ü{w>øÊEœiuÒÙÉó¦çq‚xòtÕçC%7òQ¯e‰ô(u£zf‡õ(¸Rܶ‹ÁìÖšÒ³éô¿QƒFÏq=w𫻉˜­Èd3ÑÔÅÐR#wÅŠ&w*qYÎǧY-OWì&Î4Æ$æYZCÞöÅ¿³1rXÝS)ÁØ>o‡A‚=€!‹&(~ÈñÛÈm?]µ,€lWNð0ät<y‡@*ŠˆbHû8<ÈùÁϑߜ‰» '³gcìäZ‡L‚/ +råJ9ŸüÝò²rð[9dè$xø ‡¶Âæäª,^ߎhŒ4-8òæíü/Òèà ÿ‘ct"PåtÚËÎå­Ê6Áó W§ ©ÒÐð ûZ &>Lî0¾€ÜjýJd‡ÙÄ@ðÝÈ ~r“ç–9–Œ¦ ÇA§Ü3öÐEî½+$Úp{„¼êè«8ÁàßrÚ‰Lj³–è<é,€›¯€%Æù ©À2þ0# ­(]â¤ÎµŠ .¿n ÷=½AI+ùz‚%ruyœ@ŸÆß;1½ãÒçUŒ{iÂåS¡Ëè³~(0ïÈ#œÐoHþžHµ©n¢rÃx™øãÌ‚çŽ ¤/€C¯ `óI˜Lœmfgi¤ÿ‡Öü;€øÏ@tP£_J`±w\vcntâb´’¿…IÙzÉ–¸žßnMV‹øñ€|øÑÎðù‘ÐYö‘;=þæþ©ï™>TÛÎŽ‹Ç Xg 5\dÖ='ð2ៀä‹=?'¶ìE"Ú?ÄCÞßû•Þb+„_G5È¿Fسú¼HOâ©B¹t³øYÝÔ‡Ñm8žD ÿä†/å}¹ƒeáuÏ8HîÆ!tƒ&(àfîräñïoиœèìYt"âÒ|Ù @Ëu ä,ø ©²P„¨dÇöã]~¬¼%HV¦â=5ô{Œîý\5ÇqüˆPz"šßÙR5¤ÚùæÄtïÞ£ñžÍV° *þu$—‘VüœU)L£ƒ']1ÁÑÒ[oÿS¾E¿!éžd"u¿ï%Ùþœå¨+y}D7€eY '»ñ–EêÜÃÈì˜êÃÉrÓptÒ/ûÝ—néxÏ^ó÷‹£ï`Ë`Ù`ø*cWŸª•¯£I\FÏ!s¾V­ñÉÈ‚õá-ÜŽþgp{øYÞ}í‡Q´Û¶zѶ°¿ß~ÃϸiŠ€T_}€B²ÐcÅJ/Âݦßf ¶X"ïrb•Fϼùè€F÷îÂ7þÆÉS-jâô*ç¨õe|+øgÍ}_ODwmsÞ—UîÐÅViú¨¿”Îu?{Aú{¶f;<ço¶pºn*ÙõÝÓØñm}úk¯¾çß`]OtªP òJL$JS€ÝÒXo5ñä*,•¶Mô„4\*âmK[×ã‹ì]ªÑ‰?µ,b”xâ±áŸç¹ŸÛϽ=—u»]E¹îpAyn‹#ù»ouÜ ð}ÓÓŽáڸΧnÛôö«Ùë|]~‡«Kòšeß—O öÙ8üßÜDê«‘Té7%Žêz–^ÙêÇrÕ +Ÿ-<ŠÂ•Áo¸».T(ÚÛ<ô¦^LJs»Û‹hºG°•ßGm£¦¶¼ôÕ:¼·ëVqxvnøXÅ‹qfEg—…媑 Oi ätqçx ޳Ãüqœ•òûôZw¿!iõcçgÜ´è>À„Šðö}ž^…zxMNåóƒ¾h—›?ÃË­Î|ŽóqòÙͼ°ó½Rc[vï^²kk +‹îT¼ª«E{i-Ýüx±„ÒfvÙÓ\0ùô„äìðr²³R-¨L••&87(rœ†ÖÜÙfXØ[¯þgkMs÷ÍowëÔ”™rÑpžƒ|qˆ^Ûëþ>”ÝUu'©q{·éÝçW°+«È¦îêŵ}À«ÏmI­²6?Xló¸0ß¿žÊìè{ƬôœÏ§Õ›¹q'åd[•ÕËz Ôêœ¸Ž¹èä&f»ffolA“O‡§E]÷7$óR†h8gÓ\4äsµÅû¢ 6žÉ¯‚Óx·:½—7×ß"ðq7J‘÷V_7þÂèŠAíòb‡ ¹dÒ}ÏÙ˜R˜iíÜàæÛ¤õ2-ŠßÏÍÅê²3ÜÍ-0 /úÕ‡ŒZÕ±2-Oöï`>gßõ¤ÀÇ®vƒÕoH:(J¬~æ~¶"ØÙ$©PjñÒØê¾åbûZ§[æ1WçûÂ÷´ß9ü¶¦H潂œev!ØElv^­ÊÓ F7ÂÉPVœwóóV3{è)¼!m3 +ËIÁ©¥a;mtDêµyÊ«ZÎåÕÚ¥a%˜¬”{Ò'ƒâ¿ ¥j`üsðõÉù¥¸|’îvz“tG;Åêtäólmµ‹”Þd±~»Ój]ÏG QìÙE çQkåmǾU,:¯fnÖ¤ D†ø‚vŠÖšz –3å~œm>c[¨Cãv³ÀŒÛ½£1Šsè"Åüitð¿…P¦•HM&€Gwã}ñ +Ó-†êÅÄ÷ÃcîYà÷¥d Ù÷ÊÂ]e&þ2±nóòºöž63kS€˜nc”7¸–î°ëù≘ÝU›*¡@ŒÆÏAÝÅݺ;ꮤ‹¼|2r»ìʹ ©$pg 6?˜þ†d,1‰Î¸.‚<‘M£Å=]ŒÕ€>ÑX²ìâ+»xe=_Î +ÙV7ósÕºL íþ°g5˜n¼È\F'GãZÔTT«©‰ÒVZÒ(åïý0‘sçÃ\BnÏ´ ˆ;ƒEü…¢À¼G¢0: FÓ?ЃLÿDÑâÒØŸ\5¼IžæhÔ>x§mg_r¥Þ¦u)J.³3ÅáÒ;Sf“Þàè´WË›•+|_ßP¾“S7 k5ÅÎ+Q¶]Oµ/1êA^WfîæPBAó¢àòiµç/HñÊíPã•»!òJ˜µþRoþƒÔaÿoáÉ|oö>–ä¨ó1Ù ‘‹šÇÜzÜôó¶µÕyœZ/ôÝp…>˜É\ÍíΫï¬Õ”¿»öá19—[±V'ü¬b‹}tLŹôFey]rjÒæ#wDÑé „‘X•ù‚šC] =îáš7Î3EÎRêCîq>™ Þΰ™ûØ¿!öNR¥'{Œ4¸vêŠãt‡Ý„bmW}…5ï]ôZî`=a£-4ž>n¢m/º×µÉùõ£^¢›ÖÀ3OÅéXßÑ—Å!™]íò^*ÂÉ+üuö†Fù!p6þÐÙôZ >|']=Kü… –ù€|DIK°´Xj±6À´]ï}þr'Öåƒ×®Wv—VPÙXËIyÕµ¥Ô@»³»±êT3,˜Y¦ánýxÎí5dÎÊ´x{Œ3½a,sÚ7+6&*(D«È×oPƒ{Ž;û.¸ÁòåªÌú¾™1¬Y=÷·/7Ç ä®Ï •º’@2–ÿ_H]ÿ-ìýì‡L`5N3±ž÷ñoPÜ6>ra½D!|…—/¥¹¶™¶¦mEä¬õ6RŒÂ§;Õî“§ÌðÒaä‚ÅMÆ*µ§8bü3hhUóùŸ8´{©²™î‚@%éïîú¸Ÿ/nf=Y…޽Rm‘í•’Ví•òø¸WÊtÍžLó¿"™ì‘~PÆN¥C2Sb»ª*㥠iâØŠ'G¹ù*ÀÓN«Ú¹ã›6òLšÔϸ©ÄƒÉr´~¾¶’Ïbùû¹ó5{É3a—y€Û}‰šS¢_¨z½rQ•èZuawuì»MÂL’t›%…ê6¡Xî6á®Ùm¼ ã7¼Éïm´›Ø1¦‰n,©…¹°«ç9óu@AÖ&¯åc× '“Á*€Þ)#/l¤ÃS:ÜŽk!ØQ>ß‚¢+7'ƶ#Àg þ?zãÍ´NkK«Û%:*OÙ‹½ÙIfòmgæ­âÎl³êtºµ¯Øéâ]ó7¤ —éó–ßDI…^èvr¯Âë,½È-N!ú:¢[Ã|ö¥«ËÒ¢j\Sñ®;ÎAM3º õùp:Â<.ãoƒ 71K¼ú¥Ù÷KßZÇÔ÷ì>¨Kržn§3G¾“i£Í8Mê„ï6D…$é…m‘ôVšArŒdþ†KSaóûâ‹=ª}ƒ–R·ô7+¶6‰ašŽÕ—j·W‰Çë …Éþ»Ú(ÃðϬ;â¾ÊdYê³`|g¶é{Ò©W‹ëwºùÀã.ùFáÎÇx;YíÁ§:$ù­·|n¾nIXýÙòù~z<®%†k±Uïq‚ü_q`µ²±Šh5|·¾³°³ˆmFûDúåÎÞÕn#¸ÉSÅɲ„–¢‡óÓ°ÅA Š3,Ý#蟟'«7Y,Wt‹ï»º¡èA÷ÙaøN¶Í1­<) ;ÍÖÁŸ Z¥âA#w‰*µˆj×'ˆj¾)4w¨7'dÏü éQ’j­ +¹ëŒžkÎâm¯fï‡QÆøDe޻ȹqZ§ý•¸jȯÛì °zWû×á›êň§ÉÛI£>öÒ¡²óÙº[ڡͤ)~ ÐCNÚˆ«4šw#î7V_mD›­Û°yêѰªÙ°®Aº¥þ&oÆoX/æ‹ì¢’Û¼É>ŒQ½©3z—Hd ƒÐZëé"ÍnaìÈTÂá«_0ý\åî\±IŠijL‰Y¡ÏKRi³–¢Ik"µ#Ñ`–fkèeŽê U$ëô”Ö3Ôɪ1‡¦Ÿà©A£MêxÔ v^¬AZû Ë‚ÿˆxŒ=Œ#ÕÔ÷äðJþÅö¶,6\®{ƾîÑTút{} £`”¯¶÷K’£y»×ª*©qK4µ¢Ü´¾„Þx3íiý3¬¯ê½{߯­ éVƒ½å·Ê£A¾âKx«RxJ|ùäEvy<Êìõ-]Ã}»tu3ìo˜ÚQ9õoL!ñ‚Õ7=?Éø?*~Ívégþ<£ãñ¥ƒwð y. hK»Æ%Âø~ÍöåÙI¼ê Wgrg®Æ¡;±ºÓÏj«RŒ³²B^)pãÔ¿)†»Ü£h + TxçÕ‚3úö + +;ÎÇÁi‘ŸëÍsžn^¡ß`¡-ã¦YÁá<ÂåL"±Mn>µ\ÓöÑ›¶wÎM'+£bzY#avëQ³åÞ ¿õÜé×`W–^(ŸgÃr)XQµR¢ˆ¢9¤:Gªõòñ¹Éåé*%ãL³g`ž­.1$ÞÑÝ"ÿF…žš&È^šÈÁ+¥áî䩌~äÙÎ#Þ{þU©yÿ¨l'–R;n&Ds<5s.ïÖsÇ×®ºÓÜ}Ene…œK“>[hö^èäïiÛäéòö‰¯´uŒçB/ƒ!/3‡ +”ƒ#‡å¼ŒÈý3+\@ÃU¬(B‰5¡Fq»É…8È™jäZ5 þ kUÃÇ?é£?ÊÜìCƒÜ¼É'°tþ]÷Ù¬*Ò-ø·€ˆ9aBÅŒ( ‚$ˆ +¢"( ­ÿÿ…=sçTí:÷ËÃöÌX,ZB÷bÑxÈ ;È”xÀÁ½`³8°´X˜Õ· ¡àyá”0¸¸Ï¼ !NÖ0À“o ”€‰VzNK–²œÈðGägkF2å^²ù‰pø|G„ÁÀÇ¥› …–Ý/€•B>aZO8õ¼² Ö>žB¯Ó›¬F×Èæ¼{´Ä¬{Tºì’óòŠN÷´Ÿå/üÕ@æd·þÉNþS2ÍÈKœ%€Ìˆ@zú 9€‚ŒßI6IÛL@fyf@fœ‘“,ÍMWH'A{þl rA&›É$à¥!ùR6Æh±D¿I: ˆ£ÍÙÒ—À¨{ÀÉÃ{€õ[÷—ïgodL Y?‰“)u2·×dÈ™-¥ÓeBÙÌÞÈ-Í ËÍ@æ«6@çÈ|bd.5%ay]sãi$>cT>Åïsã¿I?,¼ ÛB=ºtF½¨,‹dðÙ?£µçÌן!ÿ±ŸøÕ¿ù1cßý}M»ûƒ‡pK¹ÿ"iM­‘D ·@â KYµ{Èú¦²Zè€ì +‹A¶Ã–@9ÿLÜŒÃyœ’³ïâÊ‘“ ¨2 íð|ݰŽ_ÁÃKFJ¾‰ÍÖ¬ôÚŠ›æ«ƒ?FÏÞÛøPm zH??fìêžß«»˜?¯÷‹­_~HVóçÃIƒžÒªÞF*EwAöƒÌ:—„tl $~(Æø´Ý—ÞË<ÛŽªlg6†•EЪ!ë×n‘“ž‘‘3žr·bù€+¦{š¯b—%ý;ϨÌo|W+c?Â]kLÐw:?¯Þ¬b8/*g9Ç;_äìμôNô_ÔA¶Õm‚¬§âi½ìÏ{£rÈs rÕ rYÁ OæÕ4$§ò»|Ûÿ\†„Ë-ÒK.ëÇ)Óù^Cs)¾z¼;×’s¯Öþm½h¼¯<ÁÎË%+N &ö'[J«†,C‡e+‹äÍs>g'ËÒôE Ú©TZª¿HvK8 UM_îÈ‚ÈU¤eúbFäá]ñò¹Ø{IöíëJñÐÛ5{º—–о3ûöàÆÑ…ÙµWN74¹‹R×wö‡75{x5OÖÕ+»¸½Î§R1sÎ3‹Æ©´¦Û y³±/h‡–~QŒ`uÞbe¯ü!­üïCÒ @s»@£úäô òMRŠíâéòá÷øüà Û;_×aé÷Íë~G:.Š¢\¬Û£àÖÔqFgR‘É“ýÜ1§r…Oï­™9¯˜®½3M,#;aæF`çQ/}Phm4*Jêá$u:õDE­ÝßY¾ŸÄ93Z ·J“Íòg%Ï&rOøþ5®錄4·NÎ×®"Ü/pîZs”‡ÎEº•?Uùºù¸]Û&ƒC;g†TVz¼x}`²¦½ES=|•«:5`°?g…†r)iÏF)ïZ™y7¶rMÉ ÒƒÌòd­a ·Wäžúä“(Ôl)G7ÁGOÑÆ­ù“­OD՞Ξ§ó»G·Òùf«-@F¤b90™ª nM é˜}u6—Æû³&QÊEb×JH²Ì¶Ì£ôcOÂÀ ·Ãï`Þ¦ôNb9~×ë1›m ¦\Êúi*]&?<ÝHvO¤ó“›ùxļYh´yêj}ùH†–‹ko£Ðölôݞˇ™vÄVÑ倗‡]k¡6Q„¯:_Ír{ª_¯(tjÊkÔëI᥅Êâ«kQb‡s6»ÞÊÙo÷.do Ž‚þª·d"Íùcö±ægîMaøgÒ¿H~xK~ø&ò\œVLrlø¼Ç´Ÿ£´gs{ñ‡Áe’­‘çÖÇ&ÉFlS¦žY¸õärþ¾eB¥jy°äã<*ÅIe½«Ø<³øvXÉO…I^ñÇQ~ËçÌ¡¹¡’Sç,'UŽnƒt5\%êÑ\Óëû±³JYþ Ò1 õ2ëƒü£@FU¸x"„E¸ë¶ßvÔs¹mQ‚9:z×ÎêЋdAKyM]L„“r[•ÓœŒñ{_ âÞ{÷vòðVëÛ¨phkþ”cš&›¾œsÕ&É®×;Me½NÚo-²-Š"˜ dQLÐz­R–ãçQ’Û½ r_v +h|މuçÎ×G•kŸÉTìSEªÜÙ¸ov•ˆÔ »¿V­…-+ì³lHO [bmÞ¶ßíë)˜ùÝ›?…Sxc[Xž» +µµËÅé=iÖ_=GL0.™î¥ ÒJ…´è¾[ˬ>J€¯>ûÉ|õ9óÔ,~r™Wä{"âî Âeo£âµß½ä/“ç¶`•üN:“ű]C[íÆÚ<ÌÓûê„ÛÉ­L¨Š½ëØÜêOÏfsÞå aëÅÝo°~tÏö‰íKLXÙ6é÷gÕ_}3,¹‚Áv³<¨_s‰f¸÷­0­„Ï4Ír Õ¹D»¿rm„Ê™Äó»ÖïM+“sàÁµl¹ž=¹(âªÑÔ§ë>¡–QŸ’}nÀ‹²'I;(®è¼rL .7N»åpì9x¬›]1`ÂçôKÇÇ&ºúj•Ú*#åºK”ÏM(òÚY/.µ­¾(óèsQÖÐF‚8^,?þ"YòEÏNs?ßЗÇ|Ü«ó ‹ Ülþ¸)?L‘\’rØ›Y·>ýf# «œ‹ ãsºùöt?£çlúìžeìŽÜÉŽÆ»/{Y +§¸²Ù\ïªÄ5ªƊÉé+¤CÕÂcy´!e‰úwA7×yr]¥s¾@÷g;„_L£ù}7• ‹ÛT.ÎJ qQ£ôB.§)“_$ÇR³ùRâVù¶+ê=¿ŸÓ£¤Ì^±þÖMߊՕwÈ)Í=‡‰ûgf°Q’_5!–Ûä×;6éò«ô·*~òÐzÛ^’õðN•Ò“t‰Y<÷»CtZÕéiá“O~BN†£0‘Š=6NHngÏøFÑÉd8­ý•äX"š^ÁÆÓ‡£rm`•À9>¶ÄÛÐ#/Њæ8r‡ÙÈ·Ý)*¹`|> #½5†˜cö‰öIšöãÕjÕû®g|/³ìÈøôF˜]2ëu–Á,jßp9×®í_­Ön¦§Îv0ÅæsÆø-L&kMÁ^v›í3ü?GfiòKv®»Cå²³inÆ'f"¨å2DSe¼:ëÒУÍðÒ:bGŒ¡A?KúÃÂëM*ã>~\Ϧ]KÓG"„NÌÔv^X-žÑ_Í×ã•iv[õ&‹ìë÷2Bã“»Þ±~ãPl;h7Ô1<üCšRýïƒ~œ;"?YÁ¯¯¶µ÷”ë|ösˆãÕc+]²¾ë6 '5=è^2/¤[^«ÆovÚ\X'ZÏA¶ÚÖŒM+ˆ¥+a1#°Aü¸7ô! +™Ã¸T7™Ç Žz]GÁçX;k>R;õ ñ„ùàû†ZòÄÑvtåëSÉb‡ó—¹¬µ~æ¹¥<¦Q‰¼/?Yk®»ò‰S‡ Ç·¶7“¢Ö‹Ráf$…f½×1uñê6ŒÝkØ@Þ`^Ÿ/ŠlÍrê»Z©:6ª´"ݪÕÁ÷SY;ãr¥AßÒú´²O¹2Îå–å"å–Ш—[ËFãâ·ÀÜø[p¶Yõ— ßÕÿ ±òØòƒ¾í0];È.Ú<:Zâ¬c7ªãbšH¤.6ûÞ§)´^èÎKµò`X«2ª]yT¨~“wÓ²ðQ—%©|ä‹1ûR‹ƒOÓ)|mƨ”ÈÒ:X:?,µüŒè¿¨ï’Õü,…õ¼°à—W«ÿo”Õä´Ñÿhw¶[¦?‹fxÇ'Ø¨ÛØ6fUëT/àÒËÚ«%’â3ÀÀO4 •$¡ºbÒ¤ož¦¥q•I ãÕO £®|¡,dÚPdÊDd2Ûy<ímÓ·ÇÅY` +o²¥Ëï|pÑ#[|ž£e/s‹J ö ™!Â, ñW»„Îüw\`ýA³,zŸWFôF•óÖun¢ß÷Û_€Ì ýóæŒËÒ=Ur¨¶ÈÓ°È­£DÚØé_É#Ù÷ùUß…GÔ‰ÊÎk²ÙÖöl ˆ°]N~ É®÷j+Íó3ŒoO\_¥7VüxìdüÁ©Ùô2ÛÙø®g+· ,¶÷å­"Ünµˆ¿Õ6GîúhÊ¿I~éQ> QIâ4Ü2ÈidùWZ-Ml@V4m_Òñ›¢6^T‰g ðèúz JÕgÔÉwž½uièïíü̇2ù•§›—Uñaª}푃''÷|H.ÕEÔzßWT£r}<º=g»ë’—Þ ÊÚ{!`l¢}Mo¬Xº$®þ@²Lªq*$QVk ëûmÔI€ö·|ò×C‹ªs̱žïùÎóÕp<ÃdÇ^u­M¹årZÔw¯¿ãûù.®|æI;¯ÞcãtÔP¾È™Œy陸ÍVsâÇ2Úì<µÑiÔ–G§û]+ÊeaÞú_ÈDÈlÑÿÙ²Þ¼Ð54h²én|ÄΈÝ+T޲¯çº‡âoÛ]Òšws·xtmYÉYã=µr—þƨڪc´l8«ö­ iLÎG]¥ÎyäȨþQ<¿PZ y¤Ç‡y¿¿Š~‹t\™êÑ'Gê² +æzèÍ´lM甄Êç‹iµ rHgrãýâ]ÑÌ+¢ ÚGfoƽÄBzÇã¶!3ªƒƒÍÉÖÑÊÍšn_¯39·>'[³ÑãURJǪ§`&Wñƒ?†‡Ö^ RXý=±%]޳gíC¬ßLjjvSìç¯ÆdŸ7ªÅždÓ|ÚÏòIƒºI¨^£øou5KB}ÞÁ+¾OýÉò=rif4½vóûåR뼕#ÊiµõLþjbÀ?´ÓÛßçtˆ«+O© }‘MMÍ·õ m 5Jäžì9ÅVcUYŽHWN†4yÉõG k3#ѧCQpBÌÑð »øäÚ£* ×)þÜÊ=·£wuÞ=µj¾ã^©2æ¼åEמ<ÀøL)üò¸žçùÃK´UC†–GàjŽ6}}uÖ{Dû3eAÊeªæ”ò^­ÊÌKmKîq(aœ³…”fÕwaw|Úá{Úî‹«úvàÜá»»‚ÞÕûd­R ¦Z¹m³ûv¢N?èÆtÛ#GÓò5øvrö!x5Îå*Õ3ý#œvÕ7#0úpWÞjÈç¦î-vsTœ!q‘ïxÓ—¼"JÍ ‹¾ŸÛIBPÛÆ·wWøZÁX—ó4o²”ÊÏõpsÖŽåÍbœënŠ•b/OIígùÈeœzÒšD÷©u´‚[k2ß›ðn/z݀ΗU>b—lˈ‡ÊPÏk •lœ×ʵGìäõR%^¹ŸÄne}ÙÉs:lÕv?Œ: …øÜ´\ß,öXs ’ä*“ÓnÍž»×uÏæX¯E5Yo¨vYæÛ õngû^ }xXv¯çe:íUÊ?ÂË÷¶¬ó¡Ñ=ôzbMÏfIŸÂ›µEv¶-†õ”Ú/Ò‚Ët r#£è‘°9±¶}XnG^Ÿ_Œïž4²9:íkXÛ•‚ï>±—Nܤº¹Î‚6×`‚Ý蔓ZìŒ]‡õ-µxGûÅêyOŸÈ'Ù»uKްc8Ûš'd¿6íµóƒÉ^¢ÙÉ^^Ý'{¥’™Äo½–Rý §½*2º /º9vÏÕ¬•´æ½eë‡Ãσÿûë²>qp=‡Û©³†ùå¥Uæ8Õn²âfУ?ÇçhuhoÉåÜ#ª4…xòþµä¹wß³—½¾L#“ò'@e  $r¥ñ8¾âcDíӣ㨒öÓÆˆà1²WÆã'[M©ü"ô®Yôþ(¶;G!·£ÉWCS?–VئüXYÜó«óÖ<¯|þrê|¹ÍÌͱNVéﮜž¡WSÛ$(ô& FD–$GÞ×ó6²ÛͺZŸ|¤îyó­Ç8Ë´âÑüL‡6¤t†¥)L%D§aif~‡”Ü,'ô*#YÍžgÁÿèÞÙÙ½n&ŽL}zu­}=‹"¨7¥íìxg‚Ü8o½ÙˆÒ"Ú¥U®è•ÄöÉ8w4ž"r& fºoÐÂdtkÉã©Uý™”<”îÃå¾ÌCî›i 8åC0âh °¸%TH¨TRÊ¿ðòÁá}K³Ç©Áo†æ—.êŠ`NrG0µí‘¾§‡'_­¬÷oï,VöhŸ6­Ï*_ùæ¨jYª’ž5ëÌ»(BLî̦К§ÆÇr=²r qèÀ%ƒ`•Ïe°1²Aÿùngû‡õ$=˜õ$ã¨õ$q›>ŽÝ“PèI³\¹'õ Ò/îæ ´¨VÑ5ñ +uÕÑv”Í;ŠÃúBåéçz»‡Ÿ-£mF³ŸÛr¹ +¢…k›²[”fÊ´˜ÖªO‡ß>ÉÊòpœhrx­·hÂm5¶¿VÒúA1o÷ÞÙ¼ +í >\quFÞã®árר³AרD¹®AåÊÃ!FÛô"}j(ÎÝÐÃÛþ^,)9„ÌmžANX·zúÂVˆKT-ɧÍxó^§:SÌNf…Wy\8ÍQÙ–ÚIOÏa‹ê‡ÓƦyÿvóé.€”®×ê$Ô9EZµC*¥Q§0pvBÓ|µí+’mÛ‡f¹m‹•Ò/,‹o>q…¿k ¾Ê;²vÚeù…¾á¶²Ä|Å놺çéíÕyÄo¸8˜û©±¸]&óêí9¦°ÇwT‰¬<á |uð’è¤_¢Î“a«Øõ }‹Á‘]uÛ½ûFgñÞÚNg·+rPn±ßþ µ†¡Å¾b¿Ugˆ´sÛôÐE©ùˆÇ¿9úÜÝÕM­W¼g‹CóbòÌRÙý²º[éÑšìöXj2ÿZä¸t÷6£ê·¨¹ñøF´óD0À˸?¨Ó+=Ÿ7ðƒ8ìvOûî°[€†‹NéÝåÚÌ€R[ܘ¿4ý£6Û…R .r采ÁëÆ[ë>n¥Æ{±/þâ0ˆäÇþ¾°Ó‚K©¯ÎÂR$Œµ4§å•E2(?˜iÖæCî3œõc/Kõ¾AiÓÓ»C©yw<×|…Ý…ÃKœ/t*DµÞ®OJÝÖæÔ5_Øœnv¶ü“"'¯³ˆß ôy¶½vݨn™º +·úxãêHñ›«#зð ­(•îÒk[ÛBiuà:K¥sg·hén:e:ËácMMûÄæ”Þ#èRØ`Ün¬Ëó–ßXnZüÇÕ[­KãÚ;ó ‰#'Sæ×"6(À͆¶­öpÔŸ×G•¯£yO¯‘«Ê­jG;¨ºTzµLšdµ¼8Y•k*ÌKïxT|ÿ…d™ËÍ]NÜótú8ËK ¡€óSf™áã®’}h¡ç‰öšj&ç¿6¶jèÒ€odÀr_7-ÛªçZïGíVÓÎm­8dªNŽ)U+¼‚Uî-·_©›Y²Ì'=ûrÓ;J»vÎ/u32Z”çP»Øo˜L±)Nèïwìj™_ìRxÞlˆ¢Á ·nZœ´ð¹åvj¶ö롇8TÏXØ£NuãM|ÈvêÓ/hÕìÎÕJ¾­VÅ‘ZYÇä±ì/8§Üz)^)ØÙQ φpQ!¿ùÂçU®F“ž?œ˜iÅ®i:w†ú‡i8Ï\æÑK펣K°bÑå·Á/øÚ£s`ŒÑ|O5\a7˨·ÍÐëD«äÊèOÚî¶<À"Ñ®-:ÇFeíæz?ÄbyS +Ï…]©W,(E¢òÕ +ãÆó7…ç9†O'·è…\჆èjTødofͲ³U yXzi–B2ó¼M¥Ì–õ8ô[1, J–¶%îuæéhígù–øÈåÒ¶4Õ:Û›¨ð¬ÍmÛÆŽêjÍ×K/³Q+ÆÛܰ ³`’7ù™Gƒ;•+Äê]2“½;.ËNÔ4/€Š +jí¯È$¿Îp mpÙD’a @Q» #7ÐúÊhWT˜œãï×ð¶B¾ñ÷Õ/$ì ÷^ü qB“LX° ûmÂS¿!f%~œ䃿ը˜C;a¥U&‚[Pìî›@‡ã ^½~HVóçCóðÒ„,œSI¨z» +à­ÐKúŒ. àji wšA?©í¡@›~&Í W” UD!ƒ„Þ,6J³U<¾²éq#Œ´{kgõ={„§Èj¡÷¨(® àNlË/6Û¯¦û=w…ýèÙ¹lÆ~´ZŒ|¹BüÀ#1‰Ó¶“&ý~ 4¡û‡d5?Ë£T`ˆC¡íR:GB7!MK‹çÎ.ª`%ØÌKæ«“'žþ¾O¯Æˆ—!ãâÃ,t‚¶Ýs¶6p $–õÝ——6u»!8w«Í—Ê•³–Ó–ó;ÕJÖw†µ¬‘UîžÍbØ9O[çŒ&»Å/þ ±ÚúÄ-e+ Kñiµ´7ûÉCŸe*ðü÷òY"çñHònºV½ÜÌ×»Ý@]7¢ùuž#ëtšÇÒE¢º»ÇŽ½ç¼¡õMÆŸÖ¸ +±VÆ«çÙ ôOÅl9V +ÍtìiÖ+Åæáq‡š‡ ûÂÍºÓøȼKI¨»ùd›~.­ð¬,8âoûªaíý…§Áƒ¼_,sõsEÁévåÒǬ´Ëa+êÕšäyÿ|­ßçœÄ@'«§äOE^¬WÖ2ï5­o²€±oþd¯ÊñZS Ó-r¶Ù˜pîW˜Àx}¹Ñí°Y]–·iµü-¦©ÂРðK©“þHÚµ·§XwQJ ¦*Ó^‘«íZéo$¿ùü²ÄJB–*©õwÖŸ{ ͹—”ÎA|í´&¨­ùúù,Øø©l1“‹ËÔA¸|7Þ7E]LCÓØíYƒ­íM›çþ„³ñ>¿Ygê%—åkUmÊ´ Æ’Û쬥†_D‚]ô?Ó”j÷µ-þ°}ïV…_€,Ä'­y2IC΋áÃ=¡OhxÞ쌿¯»âÛã¯ñ952¬«µÆ¡Cš]=ŽØ‰¦/;Kuƒ´ævnF¢r©Þ5¥L:'¹6V‰“U_ô}5Ûå²Ùkeûö>Ý­"Ì)á¾TaÔ_=ùƒíeùéò•ç§ÈóhÛËý"Ù7w?¯Cëy$º×ÌÃÂ.·{ýÓq®Ýšc_ ÷Ä9—úÕÀäÏØ•mI‡î½¦: ¼Þ¾¸'Je²^Igƒ•š•êNlƒ÷~'µÞÇm̼¯Âw<…‘óNWÛh&YñÃ6¤ÃŒ7¸el¹\YmAë5Ï­ÙR?û7@v±‹“Ö¬fžP wï÷ãìâô÷òÉ>T[æÙngÓµt¢CéNßÚ¡SÉîmØ(+Õæ¤)y§Ò@ܵ¯“\?,·*̬·¾Ü Hs ò3zpÚ,ȤŸwÑÛ/®‚Ìàuí³(³íÒc›F3O7a¶Ü.f:ùI©&Ë”Ì/’ÞˆãE½”´æàì\ww´“–q¶µ«vt-æ`ÄPù¢üïko[úW©Æó¼$TóõÝ{têlUÆKËGù#÷¥6ÖêÁrÎü¼ã*š©­ëÒþÌn<Ýe¶ù¦£š—£{|±¹­ýbEH#sE³áЏ3È +ZOáô¯ß€llÅÁó™O«\z%9  «ÐxkÇGT!Žªúè~9©ië*5qü–Ú«Of§hJq;ªO1!{(à»ܵ"M×÷ÏŒb½°Ç1/¯"2ÝRÝ ûhñ²R½ôžôÒ˜ôá%rÚÕ¨ã"7¡’ƒC§æ-åIÍÛ(DÍGå¿ÐÚëãpÛ½ùžmO'-ýtköf;ÈìŒÁw/ªgma(7k|ûÉCŸ‹Á.–ßm† üF«›2¶Ç¸²ÀY_«™@Bæô{q_Ñ}ã.¬†ÊQYNtëL#Ï[X¾¥N2~r"• ie%“ô¹ýHÐ> ‡t‡N—àe!wçÍ8G‹<•ô㦷” }l5óNûÊ ÙËM²ÄÞÖñ¶ãåüÍŸÕ²)»faý/j¬ð©·œ¹§)Uz°0F«Ñd·XNK‘‰¸°×”I^—óY½ÉñœË¹…™¿là3UÜÍümxŸù»iœ°óÆKøM|žU3jð¸]´Í.½Sx.Ûfv¨¬‰W‹ü‹•½ÅQ#åxÜAGþ.ä¤F°©Ðöw½¹¬P¶Ó¯—éøê5Vúb×YšÝÉ€:c­éâR)­È[>+µQIŸc³†3Ô~º§MCXÌMqÜoOâÜq3‰ógŠ“…(Sñ4øM¸áúo·:Þ_íénr8>nÕLAÒæ¯¬§üRêvçÂn¸šèÂ\h9?yèÍû¹öN +`;Q'C«­¨¸ŸåÚ27™´¨"V•ògDÖsþbÞ„¯›Ù÷÷S©é[“}÷ó7µÌXo*Øx WãQØ´Æzû$Äïñw‹¦ù´Ÿåž{ ø7!O\¬‚R5Ì­ÇìuC‰%µ4'x)hv»¡ýY §~v¿¹NƒóÚŸˆw¶«BZõ¾ßU¶f ”eLJ GiaäºýNKâç|ýJÌv¥9•Qe=Q!Qš@ÝÃiŒ`§Çh¶ýB£\uZžã5<{Ð)}ŽrõË;%ú…Úg€{çÓíy¸L'ÕÖæ—›¤píÜFdaR8™'fs ”‡ŠÉâ$y¥5¹ð\eƒ –Í5²¨ºÝ"ÙгõYг[ÓwKéO>5n:‹äjœÍN·£Üwj ©Žp'ù +Òj»Ê·VÜõ딨¼î&Q Æ>Q¹²!A—¤ß<(îëÚfQ>7¡o0Ž«j)Ò%)DïÜ)³ ·ëm³Ì1ñ©¦ÒãJ!½³ð•!>¸ìT|Õ¸òš…¸âÁ/œ Ù§º^=Ã+g¨e:£IÒ¬’æ¡·¹A—åšWlFr§¿¤ØÜŒª›é×u¾s’þù˹ãæã£e}GÖõÒ ²L¬'86ðN£~ÿ¥·§½HÆm ‡¤Ñ©;ZÐE„L:ÃeçØÖúcÇØwŽÙâ­c¾gaÇt‰à6ú2,³;{µS̘òÓÞïwämùJøaØ>÷Q ná¤@ïFs| .§ßг›f¯´$~|ºY—Ñ’W½!#îÞ·a’áâŽ,ôE¯õÞÏAÿÜÛ#¶±e7{÷2·4Û6eûíÒ­œm]ÙÞº®-©u4ÖÛ„-ú2~¥?¤Uªéò´. ÏÆ¨u=íÙnÁÁl¬É kV«Óq?%Ÿ„Ú›fÂk{|¶‚ñèrË3£Jo"ëCêH4§ô}Ð!&¯~oÒ=‚ij¸~”»æKÇžÝ\ïwŠåÁ¼½š-7-–õæã¸Í ;Í4›õw»ÙÌG;ì©Ï.Øsµa[„ýÍá=ÏžµÂY8Éí¢o8]J𦉥yhªö&3‚ëã£J€×¯W¡;è&ÇK_>‰ëÞó÷=¸œð‰ß»Ço>èæÇ¥O§4/ mÚ®UZnï4ýú`ÜlQKÛ]Jã]‡†ìÑ Ñòé€=éeB\ýSÙ[uU>?êêúòLyýAŸ­4¹Ìag¨½ýÆÝ®wÌwª­©›½'g`çŒÆtÁ"SÇÑr¯Ú¹äfÝÎÒÒ§í[+NûÐm&l+íš)œ[›œro>©SÐl_¯_Lª=sîêýpЫÜ¢>F¯ÛšIUÏ5ôº«g¶T©ž×EºzžßŽUÒïÕÂ2ôRü?¤]õ:=:‰ª$éü•»Ëì¾ôæ——wžËTe6¶;}‚h×È6næ7Õ6»L.ðÕ†ÚÙµC$7 S“®ÜF¬O°³QÏB§v4ÚÏZ¾J~ª–û3S_µ4xb•+ÔUªŽ-»µ¬Qnlh¿äK…’?‚f%þ¶WK¼_J­~Áÿ…Ôoß‚ÍTÔµ”ïþ_V¶]NòOyB´ÅCš„ÄÍõ k×Q ë&ùÚ)Ÿ-Vjµk¥ü¨W;eΛ˘j¬JO +lKÛr]+µÃ•] %Ó/J³ï§ØkŒ‹…Ø×Û…½^ž „Ùåu7ïäÇÊÊ#D?}Ì'w,õ¶¹™¨Ÿs³iøøÅ–,u®}¤¥•U6äîv¦'$é͉vøl¶Z_LÚð2ÌWmþš-c›)RŒÔj»ØO·TÚ‡. ñõ2oœe.Ù u—;¾^zn~¨Ø¨v(õØ´´ +Ùëèd™Òm‘­†äqðáæBÁ°VÁšÉÉËw¶ö/¸çØHóÐôìánÉ ²“S\¤ˆ­Ðšà9¥ÐmµZÅZÖéRåÛh©ýÂàqB3ù)“ïäÎhw˜+lúSt ÙÛdHgÙêšÏÖ\YB6ƒ£žy^<+Ó©ü¼’îaH*’ bÑíÌžrZ {‡ˆ^NÐ’ÿÐ.&Ô„ÍŠ þYæ¦è´·"^yzŽÏ»ä  {X}º•«•ÚÕMëÓŠ½I-“;¶Åj_ð"Zþj,;>u‘ÇQëežö²—é$—R¸WLjhÆ 8™À± W"ÚU3w“8¡o_Kâ,&ÿ_÷¼M‚^þ)íu“­é +¿ˆ¿ñó ôùL_ñ÷|K Îaü-!Hü ˆjü9ìûñ‡ Éø3ÃùøÓÔ„ÀŽ?ý–Ÿ@Ç §t´–,ƒBü”j ýVÂ:ùæÀšÆZ%Œw ·S<<`Á{r&àhîùÐîŽË!õîüÿ¨'qN¿?Ӥ˟‰¿ â¯5ÎÅ_~߈¿ÃxËíeü !þÜ®zü¹Wú•pü$|Ðøã6Ê “F®›à ãÏ"cmSgãQs‘Μôžv7fDžÏp9Nš‚áŠù—ûÌ•_œþk{¿›I¢3Qï_¤Búq“fÕÏ%õ3m哸ë‹iÁeüÕ\1þ®ò‡4ƒ~O°¢øKg3±^mâ Y*¿ÍB«ñž^úí7ºš÷#òN£ÂZ¦ÂKÿŇe½¨µãêñ|.ÙØ%5çK=«âÅ*_ööC*­UO—å_(¬ù.c^Bíà6xtC<ÆêF¦8€îÚ@ò›ÙPâ±Þ?½gr÷ý¾Û“wx 98¬ô¸tvž¤Ëª”V=5^lw^›ƒ?x5gÙÙskUég‡ZË~yÝYûÑ<ø¸l[PZ•,á?€Lžó@fžN}B€tGiZ:indòn„÷<ÖxušÛ¦O`=ü1k c·pð·qd¯˜B N[§ö1šì¸OÙö@˜§¥VÖ·Í¿¬‘´çƒ'dÎSþT<;zðàxÉ­YóV†NÎËùƳÕùmùèa7úèâû~‘„¨$qÞO$ºÖ /%óSÚ ¹ùðn~³OyÑDÑ’(¯>@Æ?‰Ž KØ™7å’ðó=-¹Vô®~5}1Ʊ [‡L¡xÎ7oé1Ž«'ý;:xò‚4^Áp,èrP4@õ M--l š.\u|fÃý±(Ãû™óª(V­ÞWÛF¦aÜ’Öèò)ÕÏL$z‹i(òE<ùæ(íCÿ,HÅ÷âTŸ?Y¿@èM>ü[^ö^´®Â80lÍ<ÝÎ$Ã…G†îAÿ’KzÜ=¯®+-§«i¨°(X5ÑFazeëŠ}:òU; äjx˜J O D¡%r»€Å]÷,ê[¥¨YÂgrzÃSðà^æ'Ž–\nNø\ÜÌã×…³©œŸâqË"xü zrúËnèÀ;|›ÆíqèK—ý‘ám¤ŒrçbQçÍæ˜PŒž@ØÚ˜Ï=ög×{+«ñÏëBäšO$ì†×ĶZhïð]Üß*n8¾…'%ŒV!ÇOçqsҞƦù:Ür^ ÖW{‘]3˰úweÃrJãÈbƒõ#Åežú‡ûiJ5]&QÖ ±2ss/¬§9½íI°Ž£wrmzƒ +côÀk«!ÇØSUÕ‘ïã¹/5µ*ØEµgf›\Ò +Â÷½­ ™ç¢Å£÷^³Èw&ÜeôórÇõ­WáÖ5µ£°\@™'Î>˜öþü¥Ãa³Nã‡pµŠYA_Åkø¶Ú÷á{ÊíÉßõýowº×‡²js†?93mòJ.}i!KêB›0ÔzOÔ^^ë“øúÀ÷]¿vxm!ƒüqÐD6V'W䜜Wå*Ã{{]Ç>»Ù¨f»SWtèÝ+XÚj¿Šœå×­GË1Æ—™‘Þô¢ÌCfŸÀ9”yÕn)×_üóÛƒÅщyÉš/ñÍqýÚ¬Œ÷Òšê0ÕŸî©ïg)sÏN Xߨõ¯ÚE8@£?WÊi–cS*?>ë»%#¬'Î ló1©3§Õ¦{nu°R r[ë%2ï+ÔL›ŸVF}.ÇRnQLúR¤ƒIé4ËVBûòöҞͲš÷‹qÓ¼¨+_<—X”3ÛÙÙJ×$yª’UŸÝ£8ƒPàvƒ!·ûÁ‘Ïß“}Ž)›Þº¡."¶%ö!¦»)¡tWùÛXš‹SGé”>G&×Õ¢$ýuºö9Ìï|ë1_·´Ì¼ö»3O®óò8'|/)ö/‚v¯í¸•9t°'kmwt÷!gÄ…úR›ªó‰rýriæVüét·ÏXÁ¬ÕD¾°ú£éÖë±.\ëOZ!£÷J_áåÄ_"Ô©ÍUv}Ú\”(’ «Ó)9_Ÿ9~æCš>ký­û\VØF}-¨¨˜$K’((É€ + +f1ƒÞÿA÷þÞ¹kÕùó sÕ*†ÐÐÝ£›†»x'DÞ<&]`“ßÇãxg£¼s 7_¢¸Î€Çæ`V—‹¨±œÀZÆbQKeÚcܤ³jvÄýôìüî!›•ØC\ÌôëXZ ÆÕúV£ÖÏoËFÍ£“›Rlk© Õ¨¼T+u*b3Wlõ‡|“,º&ðw§£óØKœqÓŽ»eßö+aç˜Õb縡³ï1¼ÌÂùý—wøÝóÌyaõÁØþó`üT¦‡¤Ê¹K¾k³R@™ÒÔ†ÇúØ0`EÆQk¡à-T{rCC»Jj y‰z ÊõG@R®Ø£Á?¨Æ%èù;û£ŒDcç[hÌæëLÄð†ÿdмÎaRcøQ:gx¹µfüˆø—¸éá¶ç€ÓÕ)­YË™¨ž픉 ½9à°)½ˆïûШWzúm^W¡ekß•záãre"鷺EÆý¸>„[åþPîZâ *¬q4º@X¶=¦˜@ d¦xx8=©\[Ó[E¹Ñj=_¡Õ¨dxßÕ®é-¬¿¬z_YÿqÚ¡l¸'§I`W>Ö‚µYc¦!‘:ÆÐg•¡34¬¸£;ÑŠn,ª>ð½}O—i_Ж¢1Ç¢¾9®~ïЂ3zßx²±N8O +ì’µ+ÌŠT[½¨+½Jv…ÓusfRúþ¼¤Z:“që\&ãöE$cHžP-ñ¶¦ZÔ1ø‡ƒ)ß‚PQÜoÿÆ'°³5/‰¬Æ,5g^vÙ‘ö‚;ºÛ’ëSD¼qYër­ ¤*;b§ŒyÂ=Wü”>í¸9æÇ¬O¹f*¦l¨å^Ua›tC 1ª- ü/së†Ä½xXX¯xÄ_¹ˆ¿òsžÀPnL`õeðÿÇöM÷櫳 Ž—ÀpkÏöex4viYµ‹y‘5,ëÙÖòؽ¬@öý›¶“ý7%ŽÐ²Ôï¾Á!Ÿ¸÷1÷™]–\ÞÙl˜°3<0mÝ{5C|ÓM…(P®‘VDw ×§Yü•è:NÑ[›ûÐcðqcˆ)‹1mÄÆ˜²óÍub½·éÿæVçþ³ÚÏûö™vò…‘35³æÕ˜ÁŒXµeUµJâh#Ö…'Á |*[, æWù6a®×Ûu+úˆŠßºeð1[Ô“Du8GŒc¢‚Ïö(Œ-B”Æ +]C.˜tÃ0¿íJ’ûéJ²Kw¥nÛìJ5sÙ•ò¦ÿk½æÏ–½&4™í'ö÷yÏ1>‹†Vh]dãzêªêtú· ^â½ðPä@lÛ`Ëâ‡`ä.ö´3¤3¦ÌgwNÞI*"^L7«ùÇÞóšoÌÏ¡%t•ÀM´L d·Š©Ò/s; ø@l,§ løS6tl‚·€[©ãíØXþ ž2›÷?Étr펓qúHâÀ³íž¼/ˆ0í2F¢}.Àß´um³ª;ŸõÈqþ¬³Òy„äd‚3‡¼­â ‘ü…Ü⣫œ+9ä£5øŒÑ]¸“Ýì:Öõ`¶XsÕv_þ£í&.ÜvcÙhg¿nÖÆ‘Õw]õßößXɬiSw6Km«²hèÆwEµ¼i±Ë!ǧÝ=R[y‚v /H&„ »ÆJn…A¥„PÐJh[]­2›!G-øŽ"­Óv›ó¥s³“´ƒ¾*¥ö„"Ú­ta3-úyÐ[ÀšY6—âåÖä*ÓF“½kZ³0ˆ&Í[6‚d5ÿÃÛÍÅx<&ÆvimšCDžªß|ni˜ÄÏ2'¸wÄ’‘F·<*/Òžo9œÊû¤ w°7G·_OjO•xئê¥Iëý¤ƒCJûVî=»5yfûi¬W@µ!ö¼¾¹l¿ÍÁºbã³Úþékƒ©X® FœXБSkÜâù?L®—Às +ËØµœ1`¤®òß|ù”#­§tÈÉS­`åÐÈÁ—÷êÕZ ¿öF8½§J¥Ö·7¾YW)^¯c'®v,VµšöìZk4YTc8ÞVÍ\ëV…}³Pqš·vYzšW"óü¶œ® |9Vùr:œØå”Šfñ·ü¶?\ B§fÃî[ƒOs8øOÊÜÖ=f_:aäkqnb—`»|{·òhT†þµjö©DгÜK¡w9 år.ÞvJ¾ù!K<ƒß*Ÿm]£T¬½fÅõ“ÜÃÂîQ×íRQ<Ÿ¥Üʵ5¨V× X;XháÐï™`m²šƒ5cçÿaU‡+WOûHQ‡Ò'«ž­®ßþ ™Tj0õ*ŒR|«`rI½ùYeIvã2ƒoOŰ\‹R¤Á]U…@õ¾hu÷ŒŽÄŒ£Z±kåÍÞ~ž»¹mθG+ `¢`ßt7@æw:@Ô@6ð7@6‹ÝŒ‹DÃýÃp/U+;¹Aâ"« }†ÂÏCÝèFç)öŠÍ•g~jÆçô„^oæVâÏÛ3¸]޾™[°4ÓÂP>ÔòÖ`VÏÝÏv3‡Ã6 P ¡›1£3  šø ðõ ˆÆ!cù(’lg¤"@Q  $þ’‘Êt±Œ;÷ãûk¾[5¼‰ÿMìCP$PãÁ‰Æ*Vwž§I¥Yö6…êßåÅ?Šaø¸‚umçÍõì–sèÌF(Ð0 eè €®ŒZ $ûšP¿Ì-Ò2ƒŒÓ »È:cyh+eÄ8@c¶Ðxg•±¾4Ñ,dð•?’Ín3ˆ(ùTZaò¶oAò®ÇÙ'þ¬$éÉÌ%éúVOÒQ KRi$d\$•»ÓŒá*c³OR%wÍ@’$e c˜ý_f]Íxµ“”mãŸx…ž"¼|TvÿˆÚô7sû¨XRzß1Bz×òDF}ÿCò™©Y¨3! uD‡É(­’÷Þ%oG½%on—OÞÍR#y%"IÏ‹,θ8Ìà³8cýû5ñ뤗ö-£Ÿf¸ùŒ=”xÖ¥žKûµœäÐG"Ìs5ï+(XMï»è¹¹ƒÛùÇ…äjz@rEèÛëŠHir¹Wâ׿Ìm2ÚdHëäsfWYÐlïlqÎŽôù•|ªõbòÞ³­äíþ2èÉ/ƒ>Êpgɼ´_'9ù²qþþôù×ý¹.å’gYÎg]‰j­ø÷ÝoæöQðí»và÷Æh#ÜÚ.h]îÄ/­ŒÉ×äyžSýÇ™¸ÿ’Ûb÷?RG)ÀV)Ðd—Ù×Ù&„o–º…’O¬–¿ÆÛÂÉG)2 3†¤WNOÑ…œ‡2ÊÏîûÜNw{;½ºÇÛpÊ\¯—ó¼Z åsytðâ®fÕ Þ?Ãñt›§ÏŸ:?8ùoq k÷ÃA‰Oß"°×sîeßôñîÌóñnTÄϤ€f¡îY¨¾í§¹ÜgŸæòÔ=c‘OàZKØ8AžR8&uLb²“Eô¯×#ª]Ô¼]zòKwÙELzx^˜êîÌ"öù¸öí$àAz Ãoš«’Öê Žîõ‘ÐßÁ\8Þ<¡í*JÑÇ)¢'Á1Èñ1\¼õÃ?dm׿<4rX¥9ù¥¹ sÊpin~Í¿úñ¸t?U +Ðõö^5.dKCbàÞ'Ï…3ÇJ7N>VNØàP¿"ÖÞ@±É.ž‹ü&×[‡!·[,/Ÿ7ÁøVkQ9ŸÈ“/Õ84°#vƺ\M«j«²´Ñsïo«í0œÉÿE—„iÎKVi¾LíÒƒ»)pT:´¶»í}\D6¯Ñ‡Ø÷"ÍqHŠr£â än‚Nwºî¿º‹uyÊG+ù£ƒ=k݃A!knD¨é·¯kq‰¼rã–µ æS¶üí{zïàþ‡¹°Yÿ‘¾b˜EY ÒüÊ=¤ùçé’mÿz»NéMÌìÉÕQyfÍ"»5ˆ7‰+¦sƒóaqZ¯¬!»ÔZ)ÇÚ•ï’FAS)ñþðPQ–×VÝXZì,Ub¾p÷Òzž4GÇ95Z<½R(yŒ«ã3>ʧâ¾3ŸB&œ(Ig=©Í Õ?¤ùvsæ'øê7µ·>ßÝcX_^Rf92>èFq´%Fá,*ˆãp-í88v¥—?ŠÉÜÒÞ·K‹g±Ý˜§@žÓ\•ð>¯6ë±"Í»=˜eTgNä,’·ù]zr¢v³îe½|Æz¿ßtÏÛ’â\Ÿìı'㕃’z`?Þ‚ÿiÞhúYˆVt»9ðôÜ—^úáxÅÕÝ-š‰YC®.…e0ƒc''ùÜ,&ËÉiîM§Ç¡ýÏleðÅi¤àÕi%è¶'Z ÇÆÇ^—9¾ïÆ8?p¿oërÀšÛOn½µ'Eðn¥’X¶è}™5—¸c›lrËšZ³Ý·5ZIÑâ²sŽ¯Ê¼³Ž¹qß: ;¢º¥ª:ùTVÅlÚ´cRYâEÒ™3ê·àfº.§É¾·ŒO¸ÿq/°]pmô›Aì¬õ–ýü¨]›duÊò&º`ïñÀä˜À­‚«?*—¡ã0ÚØ¹¡¬R„±{^ £AUgí¹~‚Þ?¤… ¼>_•é©zÏ}SCÛi|Ãz«C¹‡üM.¦§9ç…¹>ƒ²þöd‰Ëq‡ïFn—nž+ÞmªýH­¹r+˜¾A&è­#1u‡<¢†ÕY,Úíiè'¼òM?èí½\èð9°ªzG»ë¬¹„;Éðg–ºÓ/“?Ò‚ºÙ]rJ4Þ_!K‚Á¨¿:¬<Ê¿úïî"q]O¨7©©ÊÔ¤ñ9*~ksŸ©,BßúL[+oNfQ ¯#HF“¡â#ycŸ´!ýtzk kØf´ûµ§j8ªÙêÔð|•¢êWe¾ð …áTAaE[É7k“/¿Ód[÷çÎê†çõx2Þ&“ŽVhBà¹F-RzÏ P¾5U½Î ÎybcÕž]G¶UhS³TkÃm˜nŒÃòx4š¯ÝMï\½ïÜÁ]ŸæµqÛ‚ÔD±Z*¸¸²(múJ^~ eþÐ𤰥$ñ$Ⱥõ$ha2¶ã/îçÛЧZt6l窱Ž\é›åX>=jÎ5Äά2UÆñ€í8Ï%AÙ=Í•Q7Frîé ë³ÈÓcÌð·· jï¤ýöMÍ©² ‚’O¡ª,ôº])t)FÜÎxUTéõ·Zë|pÛ×ù)Ðo•4²ßj×õ Éùb÷ucäüq‚Äü0ßV$ìÏj`öcnáÅUÒ+SxgbÈpÉÅ:iÃîõo˜¹zܸQYý’÷dz3ÒM­?`P{®‘p¥Òée£°÷õQ^5ý»\­?RE[”Dõ´m÷Ð5 G+JÂèD9ü­3 yûÖxñö½gì4Þ~Tì/Ö—ïðêoûã2[óÝc;…•óLñË‘ŸûHŽœîÕZçûvО–5sÝ5áQ5rzưÈõud‰ ´U¶Tïq+ËØ_È«½µ–¢ßJÕŠòmÜŠ zõ Š-ñB­ ðÓÆy‡ î9ÿ˜Y 6]]lº¾ lJFl}Éþµ˜Zļ’zÛÙQ®Ž7I^N»+Þ¹ËwI£ÉP´òã,ðÂA£jZmÃAÜo §M»œ]fkC£¡-—}~*UCÊËæ¦o¼ £`^>7þŽ–3ênr¡»ì»¦rlO†Ì2þ|ßéÅp–ue8Û‚ÎA¤Œ‰É,o«9Cz4Û°—®\0Z^0„Á͔ӉwÍ eù«^nTÃOy££Í¡ÁƒÚ#µòi5¯Ì¿+rXhÒ6Ç›â`VsûCû3.¯|Èß/×=×ÎWŽjRv.ßÊl.: _‚™Þº'h½²¿È*l¡{¦7ýn+ãÕï•ךùeôÇwÂåw{Ô{Æ4*=òºŸÂòœ4~ªwÖ”“ý¦ YeÀU´÷`L1EõsdšJ`1˜,+Õs]El&µa¿sý8B÷ùðxü² ¸Y-ܱ‹Öâû ;›—/¦È{`O wMz ¤]ãa•ÌÔ Õ¤?ªÙKjT“ñ9j°À†ÔÀF~ìQñí¬÷Å«¾œnK²'!²0Y—²Y m|óЭæî3¯Á‡Êޝ9¥$'UiGäñ؃zýÑ+é öç1àÇσÅÍÞá”]<ÆK¶Ð²#¦„è§ž4д*ÉuØMêT Œpr$$âº$Âæßì geÂ,–°‰—N\'Õ!q5@ã-ýœZ«öm6X0§<«ó¤àNÚ iJÏ[Mw*“Êå§WYF©x<ëÅ~|›µ„;¸%ùô{#&ç•]nì! æG.S.©ó^5G¯hg÷”AW2vè ¿Œ*^Í.>ANœZæuÆæÁj󪥽}V#õî–"§Á߯íê¢Xþ£aëóR+V&ñ é;¹Œ¦Í÷‘º6ßk +iÎ;S¡9‡Nƒ¦÷ÙhÌûêØžXn:² +TFºÇ  YÛþTãßÍsQÊÉ÷Üî21þXÝvkûWŒèDùŸ=„G½a†«{¬s=äØÚ*KY°7l½þ¸•æ&~‹æ£}s>ïÍB)6‚½‡4J- _ãѸ.YÍS]R;ß)#uèi±uèxÒêÐj£þ1=]Çù,MÃÜåOŠ>¬²©Þð¾Ûß7Ù8”¨ëøðÆY1¾"Gä¾k?—xÔêQø¹¹ÌîMŽç›`ýú}¦°±:AH£?eèF™²ÄzôÙuyNjûF;¨i'ãTk ãOÕ¸!jÛY1«›$Í;1S¤?t +hòan÷ùòo˦ám0âS?´ºÚ+¶gc3iT†óK)}e/‘6E+„…Cy·Î]Çr½ê dy æ*ïùˆMë£ ï¸ J$µU +endstream endobj 80 0 obj<>stream +rÄLyèÙ}‘›È ‚äÐòøP7€ª\KUe?µ–)sfoT)rVév»‡¨¶½Ú=Wß­ïŠ[îÄ%ÿ¼8‚[ŽÞg»ÉŸ7· 0޹@¤fÂqÿ_ŒB ú+Èç1Û!Xi6ÂjÊ·l€Îc€®ÅÉÿ›Õ ÿo +òàqO~ b/ý‘¼ÇEò¶—³ä]ï»IºBœ$%Û“$y÷WI2÷NIÂÜ’$a{PÆ +I®ÄdJÆÂÌxL“„oÌ&Ãúl»¾%Tè?_‹Šÿ~åµ°ðäO‡Ê#ì$ä4éû[îJR^Üt;ºé¶ÿÍec÷ÉûóÌâ¼FÓ,XÓMÞÌúen𗤓U”¤bᚤúI’«YI’mœ…ºƒ³P—ªœ±ÍBõóY¨~×O¨¤¹~-èæö•_ÖO¬ÅP¬ÝТøº«…zîvè•[s3ú>æsÕóʵsdœ‹MNƒ ÚÞoâÇ{³‰ŸåÓö’•zɧsœ$ï­aý7^v9ÏŽðs“¼Aúž¤§I>I§¿ô9ŒeØßNaBßêk‰mÍWaºOáºõºõÒó=*“dWßÉùvì^¯·ÖøñºŽÞ@îâä Pü$&¢ƒröºÍñi)PÁ‰k‰Ñqåááè÷šßÔÐoû#ùÌ +³ä3<:Y¼Î(‹ü6M>p}•¼oÄ>y;úý?t/)Ô_ zì<¢Ë +T»GöÞ vâÍðâÁõ’»™W„¿¹—{ ð.NTùÞ:ãW®ÆYu8¿‹ðåÜ“ˆ×9W1Á§ÛÇ2 ÷÷Ú‰íŒ4ÛZt¾EŽð|s7*ÞpÛÀìGòIJ“äóJ³8O7;ûZŸýé¿ùú"û4['Ëbxx¨óçþzÝ÷Žq²¯g¶|INÅùpØÊ¿7_ìõ¦]ßè1¼½.ÄYKU ú:¨ÑL=#ºþqÃÅ0ï…,…‡ë`!žÖ¥Â<]…'¼¨‹©àë«ýh9Ú¬%lùÎâÖu…ýØ?²Ýü¶Yltà¾e¥9Äž¥¹ÞÖOsÕíêÑ(Of— 6Ÿ 4;ìðójg6fûÍÓÖ/Qº§µ«y•õJðšëR´DVru‰¯*û#hÍøÛ) ê10ð ¤`.c·>[š¼-náâ²pä:8Ÿ¸åy³DõrÕš=ã´‡5ó²˜7ÍÉ’æ¢`ú¬~Rçv±áer¿cÒÇ(&„bµ ¹Ù¹¡OìüuÙ÷6«j¸ŒƒÆnùôÛ§9°´ )¸D¶›ê­ïÛó—qBçÓö›öÞÊ‹÷æõj‰Ñ6gÜ»ïÍÀùj; ¥d²1vßcÆ{»Ô7žÄÈ=­Ð‘;ìׇn§\0þøo”évz»¶Ií`Eæ¨<rºe2޶±Ð丕r{ ü3uw—vá²\ŒË÷Í|–?}oÞ¢´¹zùÞ&™ñþ!?+òòTœ]ë“-ðèL"LJb“7%\uÏ•¡ãv´µï\›‹Óík6î·{Ö¬¨iu6tó3êþá7ÍÆÏÚ¬åĬ4•úæ·ÄÚ„£Epo†Åý ´°.¾DÕŽ0OÛ¸á-Ýñ,;Û‹©äBáD&»ñá–¿Œ[õäᎌÏÇ…¡èØj¥j?Ž­ï<›h¤•l¤ïT4[7úvb²dw7 +æÛܨTWˆ¡dläa¥½×¾¨Æöâ+¤ùÖû ¦wÃNKf ˆ°?[+Ç!?V¯ßA¯Å„Yt¼¥9¦fåâLšì–öplˆúØ5YÁs’ìçœÞÙă8[^ ½[€‰¦&»Ç +£U³W gF°G+ÎN2Ô°ô#Mºœƒx0û.r:0[0€ãŽ2€Sü_^Rn1‹—DYß݉Û ¶jæÖMÙ^‹ Òb‹Ø+T§ÕY¡;‚ã"[@±_B<´Þ½È±rüê›U7¹Ù2­nÞf½ÌðÚ1®Æîê¥F£îƒºalêƒørGH=ÇjŽ ÔçÛñÔÉ¢rVI6m(ïÆˆU¼S ýâw½}ï§è¶lÞ{šY×ú=ÔïΔÆüÓ¶A<>“ýÔÝËQk:8£áÖ§¤ñV>'+£õ 7NÕV_™Ñ¸æ–ú°öŽý} Ñû¦¹5ð­¾èûŒ‡JFÝ–2¯Š¤’Le™;ß4å´f¸Š$æo¤$о$ÖiñKÿë³Ù‡Å+?+õ‚³ÕFÉŽjxBM§5Ž~¸W´ñ]eÄN°b1çwÇ,:or¸í\xã€fšs{=\k®­=JÊDÃee©N}1T>Eå¨0ôà!ûËqN_‹ª$R箸Yy±2£þ~}Y÷£S1»rŒïôÑl{þþ‹§˜Öî~ÌK!´ˆißvßÝùâÕlLÕQšw.Ï«x^båÏÃÂ(\NÃ:4ì­ºË ®^Ю¨‰Wû>!©|œ¥0¯ÏT:ÉR.:ù­$žò±¸íÔR±f¥þà(u„s{Ö:ÖcÀ_QÅçmÏñv±ÜÍ0ù/Ü?üFK~Cßçǽ$ÂS×ëCùƤµ<æœñx[…&rIËÆÇ8vš>z6ÛÔ*â1.²*ŸûYÏ#PdAœ’¤Ú¶¸]fb½l¯ú:cï…s°¸ p).ü2· ÐàLrca¬rD¹¶`“Í+e“ëa“ÆeGÀýÿá\öÚæ†¹ûAܞЋ^eÝUk‡ºëˆúDz¢4’>÷‹a”§ßqO~„íé…5ÕãDá€!÷A•¤Ûw(­ö$<ì·¬–+Œè’¿µÐ šì…ßM€M›Ë*Kž8 ´Ì°n0eرû`؉ØÊ¸ÿ:‹W™ýÂüqÜ/ߣ¨˜‚³ zÎiÓîäTUR%Þf¿ ãjpÜÔU›DüGí $Ha¶%—DWÜ][Tÿx,pýv»$çu"ÕÛ€wO‹{†ÏGV5ëñ…# „p’]:2Ô[q“n¯_ú½R¨éHî^èH©5z¥ÍšÎ81_züv~£%Ëç£ÿÍÙxý—‹Ž­*]±sF)jöt§#idø9+~ãüûŸ´ )`¡& Ü柸`•n ïæ¢>÷âwGÎV#¶·\N˜åké3 µÛ÷ú‹ôIG¯ê÷árºJqj÷‰xJ[¢6Õà’#ÕÀÏ5J+d†Û£vÿØáÇ®ö0Yxi›š)Ôuñf2E$zé—>¿Õ¨â"PxÌÞËdç ˆûãøÓ?½#H¸æ£O—(—ä<𣸥À2´©0þÒ4ðeº=‘š,i57Ô~²ºQË%OÑj“l?M–¸L³òcQ‹-aÁcˆ¸˜8‘!~ÙŽúÍÂû¨i<ù¹/7èiSePûÓ¹•G5Ü|p¦³Ux‡^Jʶ‰ÍIå(\øÅ?ÆÈãÙm£s̲E™`ºÏôB®÷½<{КÐʧgQ¶ï‘g²·&;s#&¬‡÷Áī޻’Âqkg` *…X‚©e±Œ.ã|“ü#* BÅÇæ;ÞÝ=¾µoÿÆ +^ÉUȇÊ$¤v +‹þHßü3·Üri3¾q@/°¬ß®0Âëô¢ +‚Ñ»F»GׇHŸÒ·m•ŒëˆIÂ}dB  +àã wÄÒ’™btoóM? ‹ Œ£¬àhh¡ (K`ƹ‹²pžDRñX7*ªü{À`V;½zNšÛ£í¦ÆëÜ]oáF¸KÝö”å`dͬ–ÚwJ|/:M’^•º”hmñnR'ì’(G‘óæg•“ñW4p’Ì Kté5v(˜ë?»}|Zî–RCä^_Bd¦¾@d´žCäú¢ƒÈ…+ñã›RÐñ#°@Bžóé¤?‰;/ÖfÏ£Ž `A¬ÍMª¿f[î]ÕæÌºóšôªÇW@æ÷-Õ©·ï¤e0Ù%çU¯;x’ßã8%œlÝ¿EËç.Êó/«»ŽÊ‹.”klZ‘¼ÁÉ-ÂMà…t†|¯ß +%¯3$‹ŸÎ°=kw†å+Ù1ÞâåôZWf»œ!þæ™›2×jé}ùÞ¡•þx~ïgÃËó†OŽ›)Ù=ð3<‰”5N#óö¹¿ŒšE¬P⨠+H7ÜÈ®4˜óÈöì+HÞ`ݹO;çsnÝaìÒ¶+ký~Ó®[ãQoðsÜ"OÒ"ò£f œ‰~Øâ_~Ÿˆy°Ôi»©ÉN.«‡ÃrÚÒp^šUñÎOŸêÎΚ´7¾‡-áÄAKIÑïVüw•d·ã¯H£1Háãk[‚é§Ù¹ÅnÇ\vé‰bÛY­4uZ¤º÷›Þ)whö†ò§±¼î Îéq {ºõÕùp¯¯²öF}eX}%øoJõ»i½£æ¾œ†dA­fOwQKl±ÐG‹Ì“æì‰nÝœ îüewÃç§ËQ·q†^´’ühÓšÎ׿§•¤Íù¥6™¹Poæ™q·ä·ß›Mƒ>b£ØïëâFœÖ!e³­)Çò³V3Üjuð)ÓÕ¦í +gL=UÎM´R9%£¬û{ãLÄØAù. ÏÎ™ÖØžÑãväÝoŒ ×Ðé ñZ›{tnÖpg{˜µfVËi”èݸ¶kD‹šzº…Õ#\8U €x~W’ÊUbnY©˜g§Ÿ[tI"äÀÁÂrM¿üôݸL–ò`)¬ï²9%Oih¥^í–z…¸T¢O0\¢×,ñ‡³hš©ê®¨O:‹ž¼ ɶ0­á£ˆÍùÙ&°Ú i¹þ¦•N¶‹z>ݪqê›å—þú¦†Jsù>)15pYʰmÑ—Œ]ZäÉ\±È÷å6¸ÞLHp½$PT„ÐkTؼĤ  üþƳù Žóƒqé•ß?vÙߎ%,£NüøÞ:¥¨_Ôþ%«À`æŠQ§FÝê­^[/İsëuÂúF`çÕNc5.OŸe³ôü!XiúnþXÓ¼¾œ/ó-î´ÉÅÅÜ97:c¯<~×Rnð¦ >Hd2€…IÆì GÐÕе¯h(‡ËÅŒœ‘v My(k`VG‹WØÁ¹ ˜¶i³³¨àœëåöFû¾›¨5w†ûº,V»ñôÊ@KòË.hÍ©™3—Œ `C|œ¡Ìlê¯lý>ع÷°ÄÏx«Ýp£܀µŒÐð)ðY±ôIø›¥Š{òÀ7õ(c›øÖF2üÇ ·}ôÿ›2_€('Å&î3…2œ<Ós;ŵCpÝ@OJ\Ý›ƒ²…LóÃâe àÜÀð¥?ùífw™ø½D®ˆêäHüÂòš±­Sñ 4€„™yÆå=· +G¤Z23!@jGFPÎ8×~ÈzþNí€aŸì{&˜þ¨Žœµ~¡ÅÊíGíÈR'ˆÄ¥¨¸FŸ«Âþâ¹®—ó¸gÈm ¢þ b-üoÖ·tÌöOÖ³}Ò '§Bã7ƒÔ €â! \ +PîPO°Ð…hPt³¹ÊðoÝ‚òMðÇ/_š¤GÐHRa£&‰Ü’¤§h÷i’0½MÆîñËܲH1cÒÎx’I¡ýŒ‘žÌÀ…ýúˆ‹Ékm¯¼Ï ~ˆžüñqxOü;ÐãÙÍÏ}‹²¥»ò\tnªÖ¿ >–}k..þõÌÛ_JµðÚ\;«SôÉ›å¬ä]¯êIœ”$I•lÿžõ uãdQ"ë ï’EWÎehõŒ#–P«[ïÅlbáÉŽÊ#l¿ÃD1~Z÷-rsïÊ=Ýkã’¤…õ­éµö×s¾\;¾ðºØÅIñÒJÝx\Õ¥ߟís¢ççYó3?Sç«÷ÉÛæFY°eõ—‡~ìÅÿÄ›¹Q’¶ÛÙQÝôVI¢8ÿÍ Ï +íR`µþ,ê¹Î} _ÐÛÛ“·æôÄ^‡ŸSÿÚY¼Ô‹]¸ë—î:gű<Žñmu~NTì›ëï[á^{ßÕ‘ÞZU¹\¯P=~<‹˜ !ì<›CÔ¨5¹ÓâÐO…VW= +f×8„wÜ>Tpf¶¯Ó”¿Ó—ƒý6n\Ò-<§r磧Ù,ÏM˜žÞƒÿà /ÚäÓ‘Éûƒd¡^Û_zƒÿ¦ÑUoöZ^dÿQ…_ë[r·§/žã‰¢<Ͻó9q û8Q9È4ÜØkÜﵻ㺎îÚPÜÆY©Ü"uBÜÜžº¾ÁHÛŽ&ó…‘Ìgz+ê¹^¾“öj]ï2Á†dä@~w¥ :¯‰þžÉÿÉgê ’Õà³OƯ|¦ËaòWÖs})›·!V3â—>6Ϲ=>–ÊbߘÇëíEˆv[$~^7Ø=~FSü„ï(W çr£æöÖÚèLúôj=3…LÔ@Ñvßj-¨5+K0’NËs®-¬3Íô¬?Çwºà%šÀÿ‡Yƒà~$Ÿ—£dÈýÀVjRèÚS"^òõʽ33Ze0Û+ò’6xœûް‡ç=]â;X…êk³‚N¹S RÕ»X4R_gñüò¼¢ÊËQ_i,®›¼°•)9<öBÖfÏ ²ë£íz´âDP'sÓàít¦%&f&ÒaÇN*úòû¼ço;ÞµœÞ,@ON'ÖîGoÊÄÞ„îœV¼×8†K°²éÍ’¼^5Šôª²(JþÑ€†Ëت·qm±@Óæz>éu÷^êwcÏãùï«‘= äß³¥4g…ݸ:]i[xZ:‰‰L…I`Œ±ÆM½q£ˆ\Ü6¼¯9¦ß ì{±Ú³0GÿL¼S?~!>öDŠçê•<Öšñ·¤m￸™Äy \NG¹Uµ/Týö˜Fn•eæä™–<†3îÅ:Ó5%xÓòB +&JAÝŒ÷}õ8ÖÞ£«{bì—;ÌGyç"+=Ûö]ie»~HßÇã¬×øàXä»»1çʧhæŽ 2âI…üà›!þHsUxtÍú‡üqËHø–è4êa`v «-D=ƒféš,Ü™™ó>˜WŸñ[B†÷;75k)›ã¥ácÏr®ÈrâtÝÕÒvÏ˵•ÀË5½cóƒÝ^&3ËåÍ<ÔFü’C†!h2CqýÔm…^Êô>kézñAèÍð€ÿø¦TÏR€ýx ê}5Î/»ÜξÅÝp%ìkÁQÜæ–·Òù6OBô: ŒÛsZÉ¿À±n¾›îh bJ¿{6Á½Ek6}käL“årî(˜¼½Qñ“ûN»J,¸5¶ðl¨$òÒs¾ ·òÃú`$¬ñ\.Kšm™ E…‡:^ݪêxMc*!ÂݸY›ªrªˆynÓëhðJóÅÊÒ9ªß5Sæ@"\fÂÑÛOÔ‡vuÍ*÷¶Ÿ3¾l¥ËAÛ\Š"6Z±LoTZ‰ýaeŽ+†–Ç ý(P¶ÞòðéÀÌQþö•­f'ƒX}ÒÓT%–‡²âó°BŸ•o“C^Â'KfïÞY.½²´VÈÿÿqIü—²7 •ûÇvǿ̺•ù\i~¦ 8OµêÚ¹Ý.›OwsùÌ«wRÊÁõ[  Í;`ºáoéAœ„ü¡·Šæ8®>_¡¥’ÔvªxöÖW€çu/sTþ.­p^*¤†­¶”(‹¸.Vá꾿»í }Ím·úšßƒ¿t~|Sªßm¼8ï•íd_!×Õ7ØYâêòŠøã=>m¼£s§ç¾5‡˜È'øi¸QøÄ´Ø‚>D¤ÚÀÂ%Xsáì|M1”VÞçô®°,ûõ–.ƒüMwKý ቛ®ŠU]=õµx–öfZŒŠ í`«ð—þ`Å[öá­Î¥™ñnÿù´´äMï•’Á9wj/¨gR™ªÀ8q»zï;o½OÔb´_ýa­zØê§äzXËë[s×iInÓ†2?>aÙßì0¹˜_Q’(D¼¸‰vŠXËEFÀ]á>—B§ZÚóÖ€xòÝ¢YäÜÑ áp„ýæØ×#?Ïx¿Ù×sXϘ·¾4ÿ8îÖŒŸˆðí¦ßžçß!4iÂËN¼öÞä­7¬É#OïÌØ•öàØƒ:ëHe99 vûu ˰X3I´?¸“”pÆ{¼Ð‘ +oݸ÷À´)ç¾¢ ›P饜jžù`F›aÖOŽaÂÅ”ÉËÖ“a6Ýj†Øü??¾ãž—ÚCXo &¾ܶWbf{ýTË]¶Ã-±˜ê#¼5ÖÆ°Té°QòO –Kåz*Uòå¼X/P¿Uy7„÷êð×õçÑJŽáÆì»Ï&kðÛä`i¨áfu½¼fغ÷‚þ è P»A‡¶ÇҡútèòŒ¢Ãq³Ù+:?vX<æV‡¾Œ/f·A{º#Ø’3ÉßîfIœoŒVUúv<´Ç'2U íÍd!0Iмƒ¨îW÷¾~^½…Ñm]äí×¼Â=;Ó&GØó.;{ú kžY¼ïSè¾ì^V3ùtøîé +㼩íã^£Ô•LSu±ðm Pu©x¥êô¸H©³¤ñ¥þÇæ“S¹`¤ Ø|‰ñí‰Ñ«í^iyîT%ØçïëŒþP.ØXÜÉyßÀÛ‘`ÒØ™¿í´„{ž”ïB3 )eÖS 8†k[do¥ Ù^éàÊ´ÜòMjg^æTýÛ‘G{‘­x±U%³»2ÝÆDìèŬ£Ô~­Ý¡þ# +Šèwùß>T1oµf:c‹ XÕ®†atC5Ý>]¹Ï4 QÝ-án&ü:Ü }8rZ½³½EõÍø…N‘ûÝZ¯¿ÁÛô¦FatUgz”1}òTUŒ_ævàN3\‡"W︳‹86¸ Ø«e °W{tÄ1ÎgŒj8F©Ü™ÚÕ!t˜%‘¼±ÙêvœååGò¹îÈc¥€¤c‹Úù÷^\ÁÅ÷²›}¯”9›»¸†gö—Þ:¸'=¨ô)Њ’‡¨ý¡Ø¤š-¨Keˆ".ûOt›] w%ÆÁ^;k…Mµ×}‡:—æÊT1ejÄwj/Êäo:gÙ*:G‰Ê+}õ¹Ê ›P¨c3…0l\_ç_Ê\Rº}[è6D•›n‹2›'ó£^XýŒ{и»¢Õ’r¤²û šûùw–*yœËdç|­6ü€ñ‡“8žä9lôãt,”y)~7èLO]þVÌ!!¦´‘¯Šˆ˜–"$l>HX®Wõ»u‹d«òã7Z⭹͖f‰Â–¹¾”>ºµòOŠ“üþ¹…Øuí¨ŒÐ +Dz»_è”>\9/HØ-n ;é\4TR|RpbÔ0¯¶1@ ЬɿíuWõ«Ø- O¬ Ò¶3‡wõÁV÷Oçuw¾£ïâUç˜'Ã=-wûçÿ°$ÇýÞLYoHgÖ¤ëÿJµY—9ÈÐ õ[n8Lð„4ºî«ß;4‰u ¾à!NŠÂó®³5Ö³ÏGÔó”[à +ŠB¹ÛßJ dS×D>.hx_¸¡œõŽq„fíK›ß¶k´îõZ­å}¦åœVË–J߯mËEÅŒc¹åHQéÇÜ÷HfrÞÎ)+X¤U†µD-´šQß–|.€n¯Z.ꤙè +ö^ÅÊ37½+ê7 Ù¼+s$+²¤¦Ì.ð¡vøfá¦~ËwÎíR¥3¼À­öµKãmë1âZ"ÐZ¸÷7gùnÔ¤ÿÕ˜§¨ÁÌ-ªÁ,´IƒÑÐ[ƒá–Ń­Ê̶.¹OC¡F;rù#§öK–+ŸƒàŒŸ Šï 5d >½IZœïDX7ûRæûFÛ>›níüÖN·­I½6SžNš^QË7épYm£'ÜX"-ºQpY©¾Âß¶@½4û¬jQop¯UÜC©º#x¢ª¾«Vu×iem¿…\¨ª¶Yþc‚½< Óeuy-'¢ñ:¹¹¼[õjì}F<‚Žƒ +SZ‡zô}0¦áU¡áör4^ÃzÿšsëeYÖ6¬¶­)/®UWÇWu/æòÕ„T««Ù­œì#[i¿Jè2Õ=È¢>§ò})åË.÷é–ñ¢¯—±tu.c›ê·ÕYÆæ=¨ì¼åÊwZ¸ fõ6ï«ÈŠpJ|ž³@‘·öe-ÍæѶ‚Ùv{«A3_)K5å¢p•NÜ•!»Géå‡ÏXå1oye¢¹ÿN+%ç÷±43÷ˆ¹Ý;ÕK@¾Šew­_d…› :Êø¼AAµÛ`©Ñ‘ÀR±½‹É.û[« eµ6oÍ…ag*a*ÿº×7ü­àÏŒàJ·áÝŸwßë®2èÌ;Ý•ä6ógǨ©ëœ +ÝJ(yÚ-‚P(}û0ËèÃ,D¯Ú¬ O©U¡J öùÝg}Ïk»b>ßÐøFÎ8¹ÿ]çÙ®*³¬ëßÒ¢(ŠE¢ ˜PÄœE1¡þÿƒÎ÷Ýsíuí3?Ü8c^”Ø¡êéêj6ƒu3ßåUp!Úc@^G@ƒ šdî¦xŸ©§á(©÷³?üê„Ûþ£ÌGkSR‚hÕmjþàÆÏ]D#¯÷¿ø¼*CômµÚ=dpß|¯ÏKÊÈ-Ç‘šEs#ƒ÷ PÝJaõ5ßú€ZÀËÊ PÇý PO¶˜bF*Át@Ãç1 óÎ Ð"Ÿ"æ »€ÌЙÌ7û!½òÅÚô3‘­‚ 8mؾÔH<ðüöÃä·ç~Mf»ª¼YÍÐÊõ:BØF¥ÏK;‡D¸Õè­ñOT@oB;EÜtŒŒR°áï6Ÿá0Èí ‚Æ8¡iЮñ)®Vjf‹¦¿ïEÀ\Ç`nL°™×°¨ûl¹XþÁZòúŸäí|^¯ +W×*0š/~›AÞÉKFàu)"‰°à[MV{·~ÖJì¸ï-ÀŒ>`žx°9¶Xf8¬|™Öέ;“O€ÝwÀA…,à¨^pV±¸pÞÜ”ýVçÜîyÜmVܽ©>[§˜ïŸCŸ)¬Üî¯yy~ßb¯—ÙÜì˜#ú“Ñ£ª<;ÇR·×]~O˜äÖlµ£å°)ýÔƒ±÷»ÍOî%sá? È=f¸@þ +¿‹#à Ùà1úxmÞp ª€º"XÜ‚ršÁi߀0"ÑËù+v„hùLñ~qzM^ÎÆL^y]IñÎ'Iª§š)öÃ$‘˜UŠiœ$”¢]ù#Ÿ&r1õÞ—5ã"„ý”¶bï1/sƒ‡rlŒpÛšÞWXwù“T/ÞöŽôWÑͼoo×½¯ö»ŒÄéøBÅÝ,ܺĚà]ÜÂp‘b¼ü¿¼—ÔNÕ–“Ä8Щ±1—šHi)~µTS+K³½¯|úz'¢RxJ›Jå¡JÄ}Uø;Ò#¥Û–¬k7tÈ7¯Vs®vÒêÅ‘ØÆ]Ðó/±Ü›^ÜÜt}¾ëëã™Ý>QÒâó‘p:—"N!Q6OÒÕpS¸£4°¼Žs¦1ü!yC§¯¸Ûo$É JU÷ΦV"éuÛNñôSåíSZ3é]¢Ìýf^3Ÿ«ý„à8ào~ZŒ‡HíâfòB-pîìðú™Ý°J䣬 Å>…5¥{‚zúð•4`H:«½&ç#ù]uÕ§·‘qQ¶Ý⻹Åwc·6ú_|ÚÝ(飵ÅäåI|ÚLéŸÆÐ3ÍÔÔ¥û€[¸w=P÷0ƃÕòBͶ‡3»Ú¦–îæSXY}NPg—;*ñ9¬è5ºßòAuNbç@ÁH „-¾^(·´3×wûÑ[³çòdå“Þy%ÜkùeÈøRzyÜZ»ÜbÞëþ’·y’Óçª0)l>Ť‘š½ÔÒ±oÝWÛ¨ù[#P‹f”,Gé³±Fƒ£Ê‚ýv.Ïv‡u}½öÌ~K¤]~ãúò}ýòkíMmhõÊÙù•¿¢+€Œ±eÚ1‹ô£I‹<ÿnÎWŸú`^t¯»ÙN}—¾§Çñ ŸbÅ<ž·/濼7{1µ×¤’÷d–šjn¤ô1/åÛ.T™Ë€1§ÆåÂîw;´=ûº±È’³é’» +\Å_‡ù͇^ʼ½Y,&öa¡IÃË|}˜<æMçf»sÏZ½:=Þa|ÚöX>¼ä;zH67½ÉÒ6ÁS}güwŸ©úõ;‰û™9†gjû‹äS¸?{ŠO˜è¸ïMÓ©£rçÑò–;¬gû϶wr +k~!ÖV™¾Ê-ô¼(Ï͒؜٬ڙž|c0Å凗©; ©œ·žÜNÛã„ÅqðLG@`²ßÁÆÿ丒/é1žÅ¾8VÜ5Z>õ`„t±‡‡ÌÂÐÉ kÃêÒ®þ0ˆt¥òCòÑ ÒÃà:üÅ;–+§¼‘Ëîk¥ÓuÛ¿¢Ñúyñ£¥t¿§’ÌͤŸF­v-t…;ñƒFàk=ÝÿlF¶ß }ºGc•;‡cøõZŽ ìFE¨|ö,‡{zåZ;;tz:ˆn;jЪ{Í{®K÷•sEßåÕÞKý”{A>F{âz[ú‹Ÿn„}*(Óòv1Ÿu†a/Ëü\ÜÌ·×ëvÚÝNÏ“QaúÄû¦àgƒMmœßŸ˜Q1:Õ½qÓ†ÇÁó»F0¬=ŸíÁÙϹÆîuJÎ]&ÇlúeëÜç‘Á³¸û\¯ÎªÝé˜ç»²~v:‹]wÓIݾw»é‹ÅvI$ÿ½•ŸIç̨û]aßQÚY)»Ó{nÏWÑ´_™ÎC¦A΃ ùÜŒµÕ;•†žD¸0¸ÈHÕ½uª´Ë¤>}\ÆåÞ»ë½ú…²{™¾ÔëÊwÅë¦ÑÙ´£½Æ›ö¦¾üæÙ´M(órö‹8•s‡´O½·fw¤Ý´uYˆ·…-ò)Öëv òq%‡¦t4çErz㢌w^¡g‡@:bÓñrfŽFé<7vÆÒWOP–yï'˜zÊAzçT»ió ;«ŒËuÅk´Í•§¥=É5{:ïÚQn5´q= +[ým²iQ-*¶†O'c&ªlú¯›Âî9l~ìÅ¥)½JßQ ½’ðá"ˆ”´s[l¹&¥üŒx¯ _÷£ím3ñªÛ¸7p [¿ï«á¢×(Í]•C¼fÚ–|-8Ž~.ÛÑöJØDöü:[®vZ4T˳²é˜|Ì·M«yÍÏÅX4”w4æÞöi¨|¹ ¯6.«VÕÑ‹•Ì^/2 mŸËì!š—?õM€ðµE¥ZýæÜNÞ¥è1.š›aP|×»X>¨Ñƒ®:+¢Q^9G†ˆì³@?Z×Zô¢ž·F¹l¾L 7ŹL7§yYhf›šl¤Ã²iäí «ÑÎ×v$ø–fѬ›xSì «:/@¨µuh*g³¿QÎV%Qze6ó??·›¹¸Î>rÕYïs‡9ñî^ûŽ­ÝÑõ¦jÑé¬[ëN»öy|Ë´æhc¼õÅ|½Î‰™Éœ2M™Ýç…B8Õô¦|¡µÝøÄk-1£ªÇi¡¥b9r œ—½…B"ë“Éw´s•Y§ÿjŒÏ$}H‘&·mU‚؈®Ï^p£×qKÔgúPD”ÍJ0×¹«€6;þ€xþP.ú)¶‘€¶Ø·€Êøw¾ù^“Ö3dDÏú‘] à—R÷QÔƒÃêÔ‰”lßJò{­9KкXU³ß‘©vÑO_q1È—= +^4Ý5„~–Â:õ û©Ïã› [‡W*® Ÿ‘ÝJ¬Jlh„»¼C˜s¾z½Ä\—ų).,‡¿v×å½×Å’ä¢ü+½¬QSP*ãí9¹ÉK;u¶óä­Ù®~ì™Ò­¯È6µê»[WâCW—½že7^™pØð<”ÝxSŸ_“S=Ï|®â*AßbQ¬e…KBYV1Þ,_B•ë†q‡½æÐ ë.›ýXÚ€ æQì“Ì£4p™*˜4²´tH¾ø½z.Q #C‘©–GÎnúá­th;ëÕ¤ÅY£®±Z ŠæŒ|Aq5®ñªå°k¦”í¿Ú0|q-wbñî…]'Š…r'üq…øÚ3p=¡\刘cØmÈÌcä; ÷Ž}ú¦sxÐØ|èzNÀé:Ìwiñ•ݦptPsÿà+©~¯óHÊ‘“Æ­xÄÉýôÔçmïûn`N1¾­—°¬ PŽkÆŽ’²Ïu½^@v𨀶Ðg‡BEg|{«nxÌr#®wônÙ^}ØÁe÷u9˜'uFÞ{ô›'êt}bXÔôî{”<‚·TŽï$äâWI-¼Xäâº[‘‹w£r%õñ3×¾‘Aþò© FV-éìÂá¶õˆDÿ§—›óñ£4‚4 ®/smR,…M^¨[2]ZM®/M{…¾vØÎ/Y£ÌxÒˆArz2diI]—¨Y°Ã)8óàI]-$’ï ³­ ¢¾)#ø~¾-áûãÒÀ÷ËÑßûÙ˜(Eµû_„/cIŽ÷PTq3ÜãÙÆ4vmÕ§ù±¾¯Þ…Ù”ú²µcÛÂ.Î?IÖƒ2"“¨•Îüwý†þnd¦Sš7ÔÜ)ž)µF?ÈU¯Hƒl#Äv8ªh²æp‡¸ªxõÆõ±.ë¥ó ¹ÕâÀ/Ö\IQj±«Ík±u¾ÔâÆ#ý}¾þð=¿Ùûޥ砽¬}³‡´j.ÛÇ‘Ö7Nã­TÑ<íx.U(Æökt£;á(u:‘Èuåb’FTè;‘- Í‰ò.ØãÇÖ1ÆÛUðÂkömXàÑÚuФjf-W~¾[‰Î¬òΕ€mÀ•€«Ö+V +AaUü÷úVñ/Óëþ¦Ó¡ãUéT‰Jl}ªÑÊ@¥§Ü™¡#©y_û‰÷ŸµÈr›Cg£!A잉··xÚhIÁúÙ‰ƒ‘‹Ó 6,Ü‚WVÕ§[?VÇtûVåÓOå=z"•‰€á•L¨‰e%»°Ë¹em‚.õ0Bõ"ñý4hawÐÂì §žŽ±jÖõ‡q5´Ù¾òÀu¼\Lxê,´Èkd€˜mqGz7°Ž zUx²´ëPX¿תãש„¥ƒX‘îð7Ä-ϹªSV^Ò  ¯û4ýbV¨QzžPäŽ=J[ÏÌ–,nV.¡ïWt¤ºQ¬AÇ-„(ì@!UªOmÁ÷…=‚Ïä;‚ùÛCo}èn™Â²-Ñž]ÎY)£3’ò!"«]“™hk…Lg‹;z•Ͳœ·U¬TÞÑL±Íˆb±öt4ä¼\¥.«~ d™®Wi] úQaö_U=ÿH|~äëxžO2ÌÈ\WÖ+¸®¯ÜtðÜtòéÁ Þìàz±rƒë{üàf#Ÿt®þ2Ž}Ñz.½jÌ`Ì«ÅeÑs¨Õäú¤ñî­$WËÊZïÎO"‡†Úƒ?ÐŽ%ç,ÂR»¨ÁÆÙ¹Ù»;HqsJmrpCˆ³«¬²úâŽf]à s;³ TÆ&{œATüíñÈTÅW=S­ßƒL•v)†ñ¿:á­·< »$ÄŠÀ—7u Sîé#ZËy=㎭Uô²®ÙbTø‚Lj4N®D.Ÿz™u|÷âfj~]g±¥€,@L=@ì‰I +w›"¹â æRÄÄ·ÖˆˆSaˆå∕b]|<@LƇÏûí~psù±¿F%콑—è£@æê+F^벊̽šŸ9vÊ«AÅ*žQ[+p×H‚eÁ²ëG–Íœê Q[H4Ru@¾ŠN +u¨ü| +¨´fç@ñŸ ›”˜1R> êj ()_5¯ªa%ó ˜éçäw„Qéyy:e_b'O_ØI¬íÉì¿Ä¸QTòÉkX<~KßùwS0rËÎVÉ¢´Õqý!êv åe@£ 3…ãšš÷-}|@[ÂÐîäè]é0C“©p€)ílÀ ê0eäž"ª¦ÒùLµâ¥XìSÓ2?˜Ía@©cI/IæÉÊò\Ó}ÑÅÇ(ÆžEsS)xê¤Ø×›n^ê íœST+Ïu@÷9Ðo× 67Ão-Àhwçw›>ÌÒsšÍ[-ì«´n€Þ ÀÞÛàÊEptúi8YÙNÉ}gŸ(À9píÚ4…i ùùá—¼ÝXTY µß$]0¸7Î$·S¡Ë"u:úùl!çæŠö¸›!³I 0í»ýÝê»ÛŒÿà?U_r¸^o¸õ9Ü%ÿ<–vj^Ï~`¿ À'‚ ø½Bm€À·h è´“"ž¡«œSl>?$I I"néñ“OY=ŬŸ$Režb%I¤Ü‹R{§D",ÖÜ3,ì¤'dµÇ}Xع:÷úwý’÷n[*ëßÌ{yvC=z}µ_Üᚎ׸›ñ>1>å‹›w• µúç»)MÏ*ÌÎìÿFk¿ë_$¯<þ5ÕÇÿÅ×Þ:*§è·S¼ƒÔÔæ>ñ¡Åý)­gà¡ìgù»MÐÛ–˜a7t°ü¦Êž„ku¼—âÎg¯þ‘T/Í‹›=µ.ÔâÙ={…çàÌn Aä—+‹Ó§ÍNÒ¥÷<Îé\åZÒA/Zû­´èüp@&ÇnúÞ£÷CòR…ÔNõ5Ñ©¤‰ßC“ôíºb>?ŠÝ(;=¸ë'{u3ãþéZ™×ŸèÉÅ…èìåU8Jšj1òKNõô±-ü$E}œwT®ÝÔˆ§¡ìÍOÃØ†³«.~¥õ·ø&œmÜ2”z5ÇyqíazÍÆTãÿBòò„ôëNVÕ$évË©‰ní÷\Ÿ9’næ¥Øˆ#.k^âz¹öàü8J=ùïŠÇI:¾ÖGårÝoqÚ£Áè²s2£û6RÉ_ ÁÆ-sj7K¨Ì*«¤³!WB|JÛ(ýT–иd/”OÓŸ¯äüunäÚðYîj)Îøl«¯¿‰c¿ëÉ뀓ɋ ‹)¢ÔÞ$JŸ¯â7´W/ïY96ãô3×úõý–e•]uŠ4·øv6Ôê¯ÙCâ­üZ¬„ <_†©/¶„<è›ý°˜sh´€ƒêmndªÉ™5²3 6ŠÓƒáâÓên%„Ý*lMâîd>qëØuBg:Ppßó7þ’7Tý U“×,©<ò£|ÛÞÛßQ òkãËQ…•çÎ@f㪻š#ÏØò“ì˜eìê‹|e§ÎÎÑœmãs{V¦Ïýéáñð¦5þ„ÝmvVy;qD4¡GÖ3ðÞ½Œÿ’¦E_<¼¾»ð|0²ô±Œ á8o®#MF²£B…½õ ÊýA³}Ï&o”“ û©ÅNÑáã£ÖTvû>_o‰~q½ +ˆk´Xt®¯y³ñÎÏ*…[yŠ¡·oƒIîÉM“L#xB-ÍK–ÿΗÚ~°f~¦ÄŒÇÓ[k>N‡´íh‘¬/£‚ñxyÍ}öJ¶† [ÉQœêŽ?ÀPäö9¸T¾ú·5õùá›7l¢ïäÝïÐWÜÊ#hù».kžÖã71]eÒ y™Ž¯ãÙžz.¾=ù8²ÏG ?/U>ÈXÁ?ÕÑrŠP#$‡òÞfI5<¡´aÚ{­aµ¬t¾êàé1ô8? ÝËû²q)«pé̻ώ&¥Þøýf{ÂvÝëJOnÛ™ëá³£"~òð¶ûüán^ïÄY v¥Ýy¼Öà Ÿæ-0šL»fÿ{›0ÎS½ a!χÐb´Ò‘£·u©Çð0â2ƒô+ÍH,»®cýûÙ`ú^¯+ö’[WîùðÙð¡Ó W¯›-!ÓŽjSÛN>¬Ú†€ÚŦðœ]éÖ´Ü`a· Å›]Û”Ÿ­³™}üE|Å}âØôµâz"nžs»¦î&ÏFf€äŒˆaŽŒE£;—8÷^ ºß簾ܕsÓRgÑY×:ùxM¶×î•oWÉÙó†Sþ”»Ýà<+{‹V¯½=¶H[ƒÐ)YŒŒHæèt LÞoEÍ·8¸ýÁ´®Íàª}÷➃…Jlo—%¼D:ú#ôr“}oTŠ}{Ø>•ÉN­þh7èöêãÀïÊÛ㺣ϧvór¾9{êúr*Þ²;…bc›J¥ÕG+x‹<ð¬5¬ÉßÄ1óÙk昜v›ïáqÜL½¦u3³¶n†RZçŒÜ]eõåˆêºvÙë’‹ÿ §¥Y#ÖaMÊÎk4þÞÊ;t«©£þ&¬þ3Ѿ·éI•‚ÚÍÅ«mªï¾c÷K»ãUV­Ë‹9¶¨zýj grb&°ž1C‡›ŸbmJ­>fÌž3ÖPÆ—†¾S×§ü@ÛæÚ3 íOê j_wßî©Vg«ž©Â:Åäü_8Ø«¶Ê—ªÙ)½Žncã‚-×rìöEöØì*›ØÞ¢¶èØ/[³ñ™i[÷®=°Øë84ÅÜlÝ õÍ÷Р&´ÝdžZ>= øøÉèöµ­ ¡šEWqõ0b9Õá;šMfm…€n¾ë;Ùm¯™ÆùJãñ­×åM£yÛ±ÑÿàôÃŽzÖ¿y‹ e'ݽãð2ë¿&Ý^Wݵô¶Õ v´†è]¹×Íäs×›á1i7³8ây uc„¯µí›:hÖD‰Õ#¤<Ôšª”sÞÍ+DÓCåkéð-Í"Ó$5¼n6¸ ïIAf¿”Ä—€s*I }4ëSÜš¦¸ÿ [(ÏÛzœ rq’b?ìMçb·½“š}æÎz0Þ·{šâÖå›Ù¶ÕÐ×’cj;µÛÕÊk¤¶Kó©rF…Hâ£|íÞ/2}MǬ5x˜(H¯•Iõ¢ËI`u¹ŠôêÙÈž‹ ÿ‹Z½S üõlÄB¶6IáïS„‡¿X7tFZ!ôËßvŸ²4éjëbÇÁ¤›ÒbÀ‡1Á–®_¦õx­R+k*FÖl…dk}yàÓãÆp_?­1šZé³R]w.RŸ¿êÓøš«ç€Š‹'M‹Á…õgÛš;jÊï+ý¿¯â9¾½%¾u>ùÖ¥±Kaìÿ`u«üyRš2ÿFllqì¿ÇÕ SšÖMÉfÎã†6UmŸY`j;š2 +9Õef¹0c䨖ÞÖu Õ¯ >ÃÁ¼žsÁZ\Ò壨gÕ‡XX 2‚Y +BióøöÞ.ë|åhµ¸S;¸Ž 9ìs‡ØËt̳—ÙÀãpˆØqØý?±,‘ýR(ðݬ×1{‡Þl’øÎi9²­qÓn4sVƒÐöõiYÅ"¹ümiC™!cᤉ++RæÑ²ê +ŸŽõËÉÈ(˜›Ãy%˜mpà÷—ü•·ûô›¯RM˜ëx£‡sWžíOj&KI—á3<?Ìð¤3Ì0Ò¾î 3\×)^[æžÏï~˜Ÿ½4(:3¤Tf×Õ½pd÷·ZË”lVÒM,‹©xµ‰ÊÃð]>Ø“ êFÕa-SõMI¶(é¨'ø×þšá«AoÎEõé–ë–6v@º5,ËRçf…ñÈ€eØ{¶Iûœ8 …×vC}&lB}B„¤>Ó’K}ƒ-\Û°[of—•PòSßôã&Íßf¿X^‹]”Ì&Ü…ëjT:c²°’bãôgh\‘s,rÂñ޲”ùü´¸n¯Ðã’±ñM›±4Û\3881Þêø _Åg†ö÷X‰N›ÑW³¡Âh­RY2ß'ç·î’T=ø™"ÂIµ½ïjGž“óå`óÓáµZ£WÿÕ[§ kó³¾5õ­‰ŠË.0)lŸz5aÁ +¨oJ<_³ñ*×XнŠf¥wcƒy´öm†;]ôË/Lè@$—thj*·b*j?äB?H­X"ˆuKkÍʱC#nŽïº‡[:¥9鼆š6¾³*_Wß5ø5Q µ QtëëPÌA%¯;Ÿ½A¸w¬¾°^Ö⛫n}SW®¦ÊKSYÄ–j#\oúÉý¢z:3² +Tnc•Iò)²p?ˆ„©~t- 6¾¿(Üîw¼JÍ–Øé~;bQé^»¼ÙL­?é—«wèôÝŽ].x«Êj» ’ Ü©2Þ¾ +•ñôÓ¬Œ‡¿òÜ_Vá7©-š+ƒØéÕ·SSÆ´®vÜ º<òh¾®ë8­íó\Æ05;62Ä–*~Ç4ÜÉç‹XÔ«Õ°.©²‘º³5W™7k4µ«÷3âU½;­r¤¹©$·Ù¥âŸïŠÈ±ÅrôérCÊè|®PU}PU›Â¨*ÌuT%Øô½âð›j…ª ³øÁ»”ˆBw”¢Ö³Ú T騽gUoÔÏ5A,}ê$;Ü+(-ÅQDÞb;ÃÛOõÑJ#“×xVáŒWêŲPž¶jrY®4Ìröé}S­ÐÅx;F5!™£€Jë©y/5åm®TªRD±Õ*ÅJ)ç"Çý`ƒ´ í¶(#m> ÇŽ´@Žº°üáWϼ}rO'+³£'z%ywäçåó+f²¼åÅt %)FdÍ*¹.Ç%¼v§áê,2å.gÐÂ±Ž”L^.—JïY´¥_¬¢g9…tÚµ‚cª_¸¼çëB’œ TCù{v^É—Õou8A†x¼«,áñôø‚eÊÂc§Û‡Çj<…Ÿ t?Gð²·|W€=Ü(û¦¾ÌOÔ˜¸u·Õ…ÃòQg½w…¡~ŸÀOX\©1/)ÏNÓ\iK3ßÅb¤[fó÷d_ÈsÆ¥ ¿J"/Àþ¾¥Ââpaâ—€£§¹ðÕÝçAüÌe%É. ›U‚ ­Þ“ d„L î…Œ!hA†mŒ¡ÕlõÝ·–^£u§š/+tª{ý0¹NäWnÓ«{ó&w½…ž¡¤@Ø­]ó «@7®\Ú~ÖÒÃx8ÏWg 7½NòÙee†f IÚà{ +jÆo* *ß5‚LëÉØ™Ê¸='ý¼Ø.J1›åk)æ*ÀæÊ`Þû°Ñ2°N¾×¥‡)ÜÀ oa?äzbæ{ðAÔ‚‰´Hã]›mmf²x}›iå™FëýÔ|ÅTi‰B.Öeø} ‘Üìœ)d‘Á¥”©nûe€•JŠ>ðÇEø³¤¦Ðl@äv àÚ2…wD¾˜Má€(°ß’éõ=Ä€|™¼ ð[üÎnSèÇV½Ã¿õS%uÖ¤Ìh&Ú‹Ùˆõm—*ºÙv½ÕõÊ,õ•Jû}Â#ÔT¥áÏæŒçT§Wƒ¬[©ü»Ígˆ¹a€,è$H¢%§˜6Y]@6Õ½Ã}üÈɶÈP`RܾøhÈYê‘‘ól^¨r¤Œ9.œSßC¸M¤\úüÉß.‹5O_.SZ›A#üräúU)jÙh¹0Ó:€ð´cý£Cw2mP0OŠmRÿ@Yˆ€²_* ¼š ¨¹ÚÔ!þtèûg +謲4}K-Û( í‚˜bÚ´ÓXº|RD ÇýtØöK »£cŠë]ïn`HÎïwá"¾NÌì˜YÑŠšÕÄ1Fw»Ñw"@obÁJå£eMו¿¢÷-•ÿh¾?l ÐÏô;ê¯z€¤0Ù +0v,{ÊÖk€]ä5ÀW#Àžôïš4H½$Å[ì+pû./S¸éz¯ÊÛóõRœ?ãT‹×Î?Öè¾Wô I6×…•›mC‡í½ù9GÿG‚^ÂíŸàû»Í/Ï÷Wtb0öþ~3¹àHm¸æô ¸ H=îw¯x¡L~™€_u&€?“1à_ïàß ˆ3BÚ¥Ðï)ú¯$çäòÿ’O‡$‘raŠÖ!Åùù§xƒŸmVžaA#žÙdÊ¡)ÞWµ¦|×Ï=ã¶%ÛÖͼ Ú7tô¯vxת¿ž|%ÕH¼.c|úÚ_\¸x=ß :{¥,%¶eE~5ýÿë!$¢‡¥èVÿʧ)>â¿u&.£Ä‡Èoužg˜ç£‡²'ïw="?7óZÍ^ ŽÄ‘€–có-§»«®1ë‡mÔ,˜ñ¯b +µô¯|z`žaîÐx(ÛÈJGˆÄ½¡ýdr­zŸÕ%®Çû³¯¢È/†×Ó§>OÒ)üŠ)Ç9@GØ òý1*îÍw»¼;HmlW·©m7ßã7qs$o¨ýÂ\{Õk•ôˆùJ¸ÅïåÇkT–!rÿ¤ÊûçÕIâ[_ó™?M€Î§°ÊOHèÍ<jq'Å/ÔTkD‰.7Oa™o• æîÍä4Ü9 m»¹Ùtë³å†ÚN6k¯<9¬Ùãò¼ò±åm%\N¯4‹¡%äݿǺ-”×§2_I5Gæ¬4³ò}{z0K‹©ƒNaä<á0j—Jÿ…$Y‰_³à_Ðù8bZ³—Í%'i¿ÊUØUÃßÉ›X«‘ë»YãW~-ßX~zE} ¹PàÌW"èÍ ζrÞŸY¹ÚlzÐk«iuKìÃn™>‡øÑJ&.6È÷þº°Àú>oXãOÍSô¿ +Ô8l,_ÐÈŽ“ÒVú #¾YÕõåÒ—‘°F–{óQžmbeº\%­Ö~â­ëBy4ßsýmÃ3 ²Ñ©“×kaÔ4©ß›ÜÄ­þªÁM¨¨£Ñ1ö:¶}Ÿw}á¹ñÆ¡p +ÇPø\Ô\!òV:ùô dXnnhÉÁ°ÌZëÁ!Y]Îjþj†wN^ʪtkI=pæuþ›ÑuXïáå–8úkÙw–Ò÷°£Võ¦‡Yuv»ø~âN¥[à”·ïǬVqÜXX•qVs‰‘ºq™Q¾¿ª{Æ}¥xE/6‡ÖëÞMÄ´Qáx¸g¯³w‰×ìÖ¿nªù>ƒ™ÞãÑì÷xíºê¾ñZÔ âüéêý×ñQ`8äü܃÷þPžVŸÒÙ_Žc{Öš­äéÑpÉuܰž6zO±fôø)×î¾[Þ¸[?m—žœ: +0@{)Çx»ÍÚÎ&`æZÒ¾k¿«½ßóÛ®¸ôBŽ«0x¯_2t˜—Ò›ÜW‰éø—èKPçzrÃ3«ÍÖ° +Úƒž„.…ëþÐ]ŸzÏÇîÚøcÒln™.„Þ¾Kßt¶+u`,Sm//ªH¼èl¡žá ÎºkÛç‡oW'â¶ÕM;Z ?¨QÓ¢‘Éä»bczÖ~ýg?˜"ÛëìùX4½Æf2òÆß}kã…nžµnòCG>ƒN<áú÷öXîùÒ¬Õ Ó  ßa¾=—mC-œíºtqRúnöäÛ®U)¨E +Ò"D»j]Á„¶hyS7Õ’er]þ{›fFó¦8ç&°°1­YŠ‘@ž¾¤åhµøá”ê…uý:¼O/ÓÇÊÏÍðÞðÄÍŒßlŸÏJXOœ d7«|¸öš„U§#ßM²öÑ víª‡-â)-¬´ïì,úÓ‰ÌQ£s5ù´·6-Ì4ëXŒÓ~R5dºÊè‹…®èš¶lkëÍÛךnó •è'P÷¹³¨V £¯VºŸ¥r"⯭œŠ‡ù{l´Ï-õ±rŸ®<óöŸCç{¸“Ò“²¦£í•v³ëTœJ¥A´ÎŸoÝÊŽf>±®mò“ù 9¶A3£憼>¬\39êÚ>ùUp§Ö|­¨ˆjgº˜ZÙÇ¢Ò©!¦‚͡ܯïW2ñ™*“dãvÊvÃŽ¦pf±yÞuhîÐÈÍW ™pºížt%¿:t‘XÊ© ´u]óÖ:WM!¿#›Ré, +ûÒõewt$Sv5S©5gªÝU×j•è•Π{QpfžÈýñ’)£Xn wÓ`[ž*%,üõÓ$!mQõq»Ö?Í4² +ÑA«–‹A]:Ã?ËÄt-­«™iüÚÆ¿¤h—“»³Z¼%§š|ȵ,—ÌñAƒšRO.°ÂWuĨÓÚ’¿Ñšj?{† #GÁÓÀXŽ»±L-ŽÓÆ]{¬lœ=H‰K\%ŸVßõÏb„ÔCíJÔ¡mYç®ëˆ*ý EøiŸ…ÕŠ* «5i¦ØS;¦`qK뻼ÚÌÖÚy½XÙ}T'ì…ÐtX¦ûv¹ÁyRò_C^õ‰\oÌ–ÍzV¹´E5zºb¾Wð…5É,„f¦µçwÊ æ[ð ðå3†rÇ^åj·³Áž=î›sËöÔÃŽíi^úJ«lÏ ‡lO”ƒ/ü~õYü…{=¸ãÇë4åv³u=KÂO‡Ö×$ŸööOï-_Û¥gcD¡Y)ààB}ÚD«õìžúÊv¢VDaÝUT¡xÕM¾Åèß’7_ÉÝBîU6éˆ/ŸÙóµýb{Ó Â’ +I178ÐÆx¹ Óó·ô“â2ô“–dúY¾ôég¥ä3L‹ ¾ø‡8;oÃ̸9šîûÁe;lWôÔ[íaÎX³U­|ºAòuA& žÜܤ |âbçgÅs@…’°ÅøV1|E†$®}Buë°6{ÁM—í}&K†§¯fÃÜäÜ‘Vä'ýìôazŒßpš¿Öeê=Øõ© Ë­( NÞ”T€êTý=ìRþíSì6þbô+%3ªôµmo†z KºY?E¬Þ<+JÏ~·ü6øÞûYŸÁ«¨]ÍD(-Õ o#Vë”­ +{yT:ônEæ69(ÌЂ,†-W»ôó(èñh8§~¿§ÞŸÌ•š„R–‚²Ã*9[fꤢ·Ú$Ld¿C'±¼† ñuIÕ;)–#†&©H›Q8æÌðâ”Ö]=/ö[7ï¤6$d´ÊmTn<Û:¨Ï”åC,\Ù˜ß/‘×qátNXä³Ì½P+1¬I4PG ^W¢>ÜÜ Âü½MIx@A&5!çTgC*÷Í…Xqï¡¿¥2L6¾m6ne!Ž.7] nåq7_¶‡›g}ˆoko’¹Cßm¥–Ø/;h©Ø³ÆÁX1²E+—DC¥É„"BØwÞ>!1KéWíÕæOÚ¯‡ê3Ûå©ÐɦSç¹H‘ó@Iµîhd>ã·ˆÕìÐ' ˆbýî“Æ­žrÄËä,Áw¸ˆ9^‡«E¯‹YëNd¿Ö ‹q­;­Qµîà`Õ¢›àÕ¢=5üÁGDïÙÿ0Ã…Ó9í:¦4Óeí€ÑÔO/¯+w<Ã;á›s˺æáB'¯Æ‘ +o+¹€Õ™7ša\G%¢8XcøNÞ‚Ë ¼¼›ØÑp:X›XjçA4«õXd_#å^½úÛ|•É då1•‘Z¥Ø}·ùTøÂ¯Œ„n³2Âc·òèBÃÊCO#'ÇÝ)ñ­»ÛrŒ•H*²!Vr%±˜‡3\w)=n¾Š)9CŸˆµ"¼•zœØñ™}c˜Nækä·°Rëm{dt×BõF?ÔêàYlU™1ׯŒ+¨ðÛùºünAqyRQ¡rÚðr¦+©èŒ¸ QùÖ: 9O+£ò‘ÖQyáõÓhe>øaH£ëK§œ_}W<,Q#mÝrI~À;BÊò·?KØ„¯ðJlàr„¬Å¡F¦×*KÏÊØ›Š >‘ò§P¨–'†.KýV½ QŽÎîç6ªŒò +kê·ß”ôw*!fò.nËF¥h“FíØ}äPÌl{w‚‘Cf'QJìQ´ÑÿÁuþäCuÜ\”n–zÖæõF@„¸67%®7¸géI¶ú"õ’ÿK»®ÅKMOåÏœ?¡j¼•V3ìY2l3[*V‡Åâ6ZÖŠ–ÿf‹åz¥3õ&âÌ=¤¦ƒB÷\܈žóÈ_ÉW1ïÞ!O;‰?°þöbé;ØÀ¢&Áptò4™íÿÐ]wNû_Ìzún56•Aß­Krk@ +g‚²ÌóS0†~ðë=k®œ¿VÄþèŒæƒÂ¡˜ìçB/ÜÜ +dã”äo9諪ç'ª”g::?ñ> â ®%æ§M/÷–×ËÜ.ǹújç2Í2“e|++Ïñ0›ãö·¬)îù켌T²Ê‘¥²pÛ¡63 ¤éf¶4öu92棷þúö§YÕ)P@uà AÕf ê°PUO PÕ*VŠz§5¶£¥aJ­J1vKRzœÄGV:Éù³1F¨„õ<:_™TTo¿cZ±Ú<òw¿t…ÅÆþ’ËjûTôÌ'8ÖñÔö4HáR¬ª vGغ’bßµ,»>,WOÿîyÆ@-q P;Wý— ¨mÆßcÝ@-l¥o‡WÔ¦ù±9'ü¥^·¼ÆgKµÄ2[“ÙÆs”Ö’8v‰«U¡Ç•PŸæ‘s¡åGÕÁW&Éj£ç#cCãÀÎö `¯U6Eü•^@+)$àØ¬p!×L¡õ®_ç7ç×,À›]à&Þ¸tIÑ<Î05€³5;Å|ðj¼l™îJy¤W_·Q‡»ÄW‡¦J“ˆêtÃW_Y˜B×J£†\²k4?¦x$7ó/p‘ûYY™ ÊMÁ)Lq Ö‰D+ÃbÀ+€˜6 öY·î:Åç«Üò@fq>Å¥ÈÜhˆ„€Ìçi@¼B os‘bsÔÎqcݘU™@èô©>ʪM–À¨Æ7¹¬½q¡ˆ‹.G,§ª­*dísè_ZØ£€ì<+€ô3U@®*x +ù›Š<¨2Ù©€ÊP5±(u5ÔˆÚj±yj)”uz7\@½¬ ÞD!Å]Ô§óÍ4ÈÍR .Êø¨îë!Ï9î`ûTsì»Ø°wnWàiÉ,vç‚’_Ìi.ÍC•`Aÿ£C+íôÕ~Çÿ#øf" QP4•—mþ +›ºïÙ€žz*O0ˆ½Œ‘9f5ÉæÌ€-¤„Åæ!`ûXQÀÛ,4ScÀšù `ûVÜPßîE [£ç— ÿ$“jã^û:·¥ö²ÞÍ¿ÓÌéúAÍtÞåú?™„üÜûK;Ö¢Ö?ø +¿Ì íü§ê;½¤Fܰ5àJíàš¯p›^ð8÷+uÌ Iðâxø¦ö|Ÿ¤S¼À‡é”ÂO¡Ôýž +ÿ%Ÿþð•Oë°ôo‘¿ez׷ćÞàæßùǼtûî)|Àö3íÖÑ›ºm‰'{3o¹ú –”«ôkÕÇZq`Ÿòƒ‹›«ûç»®ÍÏ2ÚG‰u~D‰/>ݬz + «ÿ·Â|k#üÒGÓë¿òéO9ýi¨?ùô—€,‰Ÿ™¸ÏÞ„yñ´¹ë§Í醺ãøZ ŸqçíƒK,ù¹ 5÷‘³—N™QÒt«‘_ +ÉÓÇö™ßm"_8¦CLãBý ?WöÞülÝ“&ÛHÇ[|#›¸¥pêÔWÿ/¤6‰HŠr6ÿÑN?²?”-÷-7uÛbµÆõ@qVÜyѽ 5«Îìª6=}ZÙå j¿¶G¸>ôûù¼7_‹xçd·?©²]x6±1ùŸTÙeu•töÔJˆoâ2d +ÆËîORý¼ x:ÈÎWò ›¹ñ_ø_Êi³ »t +Q?*g‰; CAÞ9Ñ·øânn¨MôM‰_{hÜ_ùµÕ`%œ#’‡p ·óÅœ7 ØsÜ/³­œ‰»HgB]7»à>$_)ì\à±Jö/þèÐÿš*„‡÷Õ¾2‡(QíÃîö»ê„>nÜ|ù¶f÷ÅÏJˆ*ù¥tÅ* åY!æú§À̶‚0C…ÆÔ)äÔ023FØEKö$v +‰[#¿«QÁ½ÇGj ?¶÷¾Œâq(®ßch–)ŽT8nàuÍõVÍpí¥ä’âÿÅÏÄlæ¯1>Ú¯OcåïÜ ¿öSo)]ôïw3_qB0³2ìrêÀÒ1Œ ó6‰[æ;¸wT(`c5ïû´Zò…‡U‡¼EŒ¥w—Í¥®0R¿;=WjhxF>j·Íd8DÈtàÔ¨­õ웋ß_u°{C©ïò•~Ÿz·¦)FËz÷I{ñ„«OLìñqÑ£VzO¶— õ.Íõ„«OìUšÄæZîιãûäчìy:š‹ÇÔš^ž‘»~nõëmˆn¯IX¼ÁÀ©`7êŠnǪýØe¨>õ¨ ½ûb¤÷¸ÂºÝõ]0î|ôº.VNV°°ö¢HYí±·5p›¶óÓ}øÃõxP¿+'ùþŒþY﹨¨ÒvíKPrÎD0€bsÎYÏÿC»×»Ö~öŸË9±g[–XÜ55jñ\z“ò‰ñ’ÆQ÷¥B÷_T†ï%­¡Ð-0C£ƒ×Jïeâ•dúq'¦ÍK^5…½kt ñÜP²ú=8ú;Ò ~.•«phqãõi{#Ö]9oÕ ¥ZCÑJ»ZiïæUB–o•Ý;GWhâ'ì;Ö š9¦ÿÃOŒ^3i;YYÅx(­#§gw,¡³l5ñöÎÂíJS?¹ûõš­ñÇhtp9z§ýel©ZsuXŸ!Æ´î®ýUmIø»ZùÑ»T7jïQ%’Töæ¶P¡§7"8…¼pgßñÛ°îKy4)÷J•}YeÅïâ ï“A\ϨÖâqû²dÐÚ̓ús>*v–I+Ûnô +ÆËlS≋…\m<9!ÓèÙT!2æW‡aV«a¸àV«]¯V%•8®„ÃÎ×Μ³$àÎÔ¿Q«µ/5Vûò“»]Ëjûóö>Ž\ôŒ…G•&ÜD-Ù7ÈwçN©ãzÔcí§vÖY% Ó *¹(Õrp¢ÿ°fÇûëd½ßùÍ “ëízú6¼ÄDæ5†ëóÏÔá]ð©aC+_9Ô,,8*\ dºš/“§ü<ì*e=F^2º·=3WJ“yaRrlz3V“ÜÍkÿC™R&Ë=V âm}èñžn vMÏ\š±6nÍ”?ÍÔÙ¼¸SKQù»BR…Ù ¬øcBP0»U’·…\[ÞRÛƒ\=­h¹zöÝËú_¬Æµ 99œz^¦×k>Û;¯`†ÜzV6Žt¦TêéWgs›íí°¡n,^’¾w +MIcîFoíåôQCt#Œ)m|îðšl5už;ØjiúñU¸וct,.%òÖœ­åZ>s•ɽI‡pÏJ‘¦; vmñtq¨Ôm$ýn©FQ˜à÷‡/Ôƒ.oàb z±™AikÞ¬ÏÒèÃσžÏ«6Qn/ J'½ª—CPeåâ”Ц(o›Îoö92yKé097¤È…ûK—âù4>‰q‚eEÁ )áN|½ÓûzS#d%ÈäÆÁä¦Tû Ÿ©&¶¼kÖŽœ–îT.ÈákK('·5⮋}˜\ÏæmÌl ™/ôì½³QçËè¨"Xç®àTü‘k$SÜ“¢ñ…/Ð]/Êã£ã‰B#® wýкYx*È[ÿÀ¿j›ïדÐ<Ákï™Îƒ„‹¸‘¹žs#kWäFv¬s#'[åAúƒ!P_›V|?Ä!ÒCíà^™sžójÁthA†>×Ú4W›«ÞRX(x‡Ýý:í%œ¥F†}ˆ—ª•[dîQƒºìˆp׸׏àð[¨ð:µxp˜'Üh€m9K¯>¹|憲ӭ¯²níZcÝzkÊ™zžu#Gc]oõ J·•úSa´Šåw¿YÇOË”¦TæÜ¢Ý0ËoãUµÚTè/Uä$ÌÒþ¿L¤†wY‹­Êz'Ü÷« hàÍ¿ ñzEÁø Qf¸Ñ¾õ-n9«·³¸¼|v¨ˆu×µ[¬¬–Ì’$oLù™À :À$z£÷zc(#ºš£½±™Þˆ5/Eì3h¥ã÷Ê´»h‚›U·™Y­LÆ%$ú4c‰ +ñÔG}þ ¢Eg!×'`*qÑ`$<ÄÖ‚—^?ÎÜXX<9ë~Ͳ³RfK0M±Å•.0˸¡3¾0-1èý^§73¡GWKÑœ&áó™Ú¯µï,*¬lyŠ‘ì2yz>äéu|’§ÓT Fó(ÖÊTXòüÎîVœEÓVZG_÷Üi²Oê2Þú㡹kø ‡Yv!¦³ô‰ æ•!o0℃rô7φ-Õ•=³ fÌ º:Ù`4YϰԦ*ÉóBÍqÙ/’BZ;·ëþ{c…èt2zZ+qþ*4x±âšÏnq€õßX²ÃI̬'–cø–c‹G,Ç¡ f–fê‹– Ž^¬æ¤–ê•ò¸wSœýf@˜½é0¯ÍãÇ÷{s(n¢´@V¼ñhLYÏDGtmÐëSl»7!î^¸ ºHo‹¿ZË >¯/\{B9ôyy>ƒYÈPÁr듃¦êJ•Zxî–Èb ?²¾þªšÕtxgpEinàuoLÀëˆÖd^vøEš§b±ìÁf:_áû.nK?­jAó!›«£2¹5WPsïæÇäeðwÚØèA~+,_b–è 6öh1®Þ¥Ðû åû +BÐî‡7%†‡«pI‡‰Õ°\Üï¸ú¤Hï×çÂ)R +…&{” ÜÕ«A×¶€®u)pÓ¥Rh<ŠÎÿXâýDŸ•ÜZ:p›ÏµˆëÐMÍ)µJø;Ûɉ›Š¯ S1Ë ª±ÌL e^b6þé!~s›Àdm5+¨ÃªÈ ž‡ÂÙ€o…8+ƒQ±ÀOæßâºÕ³2Ô¡%’Ní0ÿl>†ù¾àîóêý‘^>]1÷‰ —°óq.Aç¹ÜÇðż:¼:yµyu«çg¡åͶc_²ˆ`$×GÊK—’ñÀ±ó½z²åynOêîŠèµO3lü1oƒbT«u¡;Wç_Õh‘MŠÃ9¯³¯Âl«+çD}Z* +ByQ‰Õ÷O2§Ãäu$ž¾¾Á&ýÓI+¬Y±ÁÆÐý•$y}O\¾_[f––°Ê 3v 6%ó ªpí ˆÕ4ˆ B¦ägW£•â´Ä­’þ“;Mb·v1óz€˜ó@ HªžbV*»>÷ÕÓœF÷i›ºwÕ v"¤¶”-ü2¦FöŸdgúºà¹Ž{@ÖëÇ¶ØøTWPÏ…æy£|˜eçd²Ûгä^Û¤¨ù˜ßù@A’â·g1 (ÈHáWR\{€¢Ë@1ybÁŠ Ò'Px ¨Ìæ¨ìFä],§hD¥*• mñtvô’¸äsaC &üAXܗ󔈌n%à; + ›AýZäÃÇÒrí}>W´wY¤ú\ê- @£ð-ó4çe­'E@—? ›ª”bè:A£­ GÈ1ÅôØ‘=Á¾!@€îl–€î6Ó?EÐQ!ý÷‘7pï™Æv[RÉÏ@™=Ç¡ù,A]kò³n#Ûz…jëé€{äÜúé–©Üü3` +j +Ù¿ÆiþBgöI?ˆ˜.‰fj“€ÙõxÀÜ:` ˬ¸kV’瀵ÏwÀ: +X3RœÒ'Jƒ`5¥X¨)V1`y~fËÖ©©#ƒÕ7Zͣŗ¨ŒBŸU‰'ÌrD¡øù‚ŦR„ èå`±šv}ÿÕ¡Óñ°+¿ðç°ØÏ›a§‰2à¼rúþ¢‘ ¸òSn¹W<|Þž~ÏHtŠ« xm:¼ÝÏSDŠƒ xÁn¦x/ŒéyÖRNãs]̆¹2K•E›Ôͪ†nªs±ØÞçÈÄT)‹Ä¿:té„n^¤OZÜ_Í÷‡jK|{ ý•€o¹b'ø¸ÿÜBbL𹞀ȶ @Ô9 ˆå{ ˆ~Ä8úE‹-ILq­±jõS¬WZ-wHýÖæÖg3¢zíF‡§›!õ"-‡vsòß6ýñ¯çø—wü|ÿ¨¾Åþ/ú?êï7jøoÊp¯¤v~¤kydîõþ»\¢Ù@^g;@¾,÷@ɤ=¡`e (8ÒŠÐ_¤øœþÑN=ì‡?zÚOøý2ðOL/=ýå7<’BývŸ •÷ª6ó78ªÂWÿRůX«Í\ª&>¨¡t?mít6ÛÖ)νãÍWŽÒrúØæ+wÔ]~²Ohq·Ï6»Ÿ¶[ÿ üÉCø"ëµäS*ÿ~-_ Ï~¶Æ +îöšŒo¥=?¼b1ùu?\È.¶>3Cøpâ'ÙËQšßî‡>r{ï?•Kfoìù}6¼Ã»ôƒoçÂÞøï)»ÞkyMNvÆ**¼Ê˳7–ü6/:4öZH§9=Ƙ1ï Ù¯kè÷øßÃÿ#Ÿþ´éû¤xA¯þ±Až’ËŸÎZE?Þ¬†wèÕÚ>[Û9¶7þóÑ[×À~¸:X›ñŠ™mæË^~×­-nÁl»èà›ãüYßüŸ[ö–›e;dj¿az27$eOBo¼r‹ý1¶ÜÝGÛ@AF5\Çÿÿ£Þàêý{÷tVéëA]ô®;û`¿6þƒÊ­ÉAV̧7?'ÌŸ5 Î>ÑÝœ—»;ˆw +õ.ÕIés 'prÇAîÞmÝûpTƒ ³ä ë„Ù±§aLkÏŸ¤Ú¬ä~G÷Ÿ]Öê«ïç°÷IªÇÿ¸dÿÏ*û§•½Ïísõý±“•Æ[8Æ˳­wçÏJ1™§ëljßÞ»I鹎Wú­¶œOå,œ0›,>~ܘa¿ M‡³ŽWÜìÚ« ÿlxmmCÂiÕ˜u¯E^¨U|há__çïñ‡__^±¨¼;¨óÃ`Mˆ`ÞÇ1{2—jöhkánÁHuãTkСÙaÿÙÔæ½OGÞôŒ—vìNtóÖu2Þ«3·Ë™ŽÕ¡öÊ«|ûµ¤·¶•Óª#1>„ =fÎÇRóÜBÂ&ÿ{ŽZ›GÏduŽ´¼ ‡Ÿ9섉6ÓŸNƒqƒÇ—ó¡¿õÓókƒV§Ž)£­é~‡ÎáÙÏSýg4fz‰Ø»uhv¼\Ûk¯Üq½-7íV ÛâCí4‰™ãiÑ<7›&½î·NæÒžï{ô?‘–Áòab3hhB>WŸxm­­—ß…1µyµØ¬ÁwR ØÝ¥Š]GL» NeÛ©ÕþÅ©eÕÏ«SŽêO‹Šä /÷…ÐÏÖuv‡´ƒø(߯,ª8Ö5LmQëÊ5äµ°ª}íU‰Ì½V©Û÷F…¦ + Ñ( Ž£¾Fe¿Õf—¾(™ûrw^»•o‘õëîeHV*ž}¯”מ-w–in\wÛÄÝb5œ¥¢xÿbuöàõ¸FÏ¢~vy×[‡°J6že'Ž?µoÉQŸu.‡º{\œj‹ëàV­Ì‡ R¿,á ñX’þU= ¾¸zkåGuÊÊ-{ï«yú™kx™Xï”ìœ;,å§­¹[*Žvβy¹;¾ÀAö¦[¡íª{ùnëfíÏZh…ñyf…£OÑbì¦bžÉ½û/ X›;G¬ÚÁ®ÒxÉO,,¨÷Lu{Ê]+‘äî‚3s]<~Úû½¿”Uãññ ç •Æ'økç)ÙM‰sg7UvK’ᬠ+U×ñíÀÞ¢½Ð®nf-ë †Vø*.̳ÎÌí~Œ[ûÙR ¹p¬èÏ¥7Òû±—Õ5 STñ½·V.€Iß"æA‹ƒòR8mÇHu×>A‹œË/ó½)ƒ¢?ó̬´,9~çz(qVíÒÇÁžQÁ®i1fÒ‘ÒŠ*[É<ï·š‡7ÛXÈ7:#ò[@²¥¶õþ¾:Òµp¹ÑF ×Ì‘_Ôr•« NIËS端ç—ZXN8µ°"í¿H`k\o FÝrâ”›J<êhä Á5-²ÊzE<–¦Ãö÷zã–¡çØY#“±½Ë÷Ö‘Iv¯®f+wû÷€Œ.Œcú+ h} ˜¢ºŽ¦”š­™ï¾¯NýU¤ºØ§§îÆB)+Í“‚ÂÙœ¼>‡¬\‰ßßN“ «Õ‘ ;¾Kû‚L§X™2ᜭ’Ö‡´÷n¡]Ÿ¯†b¡è+Ïû³4S3u¤…]%#ë8“ûf+¦F·N-õ×IØëºáݵÑ$ø^4ËéBêt1@U·qd”Åõ((åÐTÆySpªreÑiI{î0–ê7r÷»£/žê$%6éž)r.y€ŸD>“#SÄFŠNúÄ52ïÉõ{Ç£Õ,ÝÆ06¸¾7^®olövÈeçæµd‡ñêêÃÂ1ÑÆèzªå«ÇµêîGeÉ»‚ŽQ ol± W! “öžKK!Ò%ú²0ÄSëþ:Ŧ-4DžŒ‡B;Ú®IW_ü33Çø'fë|oûhðj}´åÕp€ñ½ƒ¬¥0úãA¯KÕSÇì'ã?T*ÍÜ›} š;‹·3£à_šž9vÛZþZï©Åge¤`ÀÉÕJc+í÷ݳÄ0ƒG:[±_ ÂõþÀ„öŒ`©¤+ü“i9|ï¼®òêïrŸJ¼äâsçŒg á²ýÂe½o,(;1¬;1­ôð¤‡GˆþCï˜Ûøx–U=xsºœÈVÎ `åfËöÖx–’™ž¥v=už©´N´d²’ïKá>?›ŸâBäq/trÊ7H“ºÊƒïý ¯ž†0÷inH.1ó"gæD“Ëî;©ïZ¬£ +3ú$f¾f‹)VãU*ƒPù9ãÕi8Å4=æ®Uf>½h]¬ÅÑÄ*~Ç´Jl¤7ˆ9§Ð7³S%7zSuÎu» +6'béo"1Vfá¶Ü ùçv6á5j³â>ÇÇ3¹÷•Ëeé;™ëÔš8[ f3?>4ÆrßS€AŒzƒ^c÷1ìÌ#<D㽚@í´¬Ÿb?¥vú ¢vFY ñæ@ý¡}HnÍŸ%>èôd¢äµÞ›u®£€6šS& +Y)Н_ç½(¸Íñ~ÌÙîræ ”°S4œ³Îf¸eäøÄxÏë“AP–^ëJí.Ã;UomE‹Ïy‚’lÌK"ÉyC‹¸r™Ѻê=Bl/ÖøCÞx¯p¤qeé8¸²"¸2">xœüÁòÍ—¡Õ«GÇVʹÉñ;r¨sëc*™ÞYsñd¥à×ûXsï6¯Õ—§°:³« +½!Î1µW]ŠNCòT$·Ç¶Ä5Em¦ô$ÄO?‡?’-Š÷¬,‹«„¡cï}ï;adžá»¬»À2—Ëë:žàj;Û.j+û:î5),³?I?4¬¨VZeR.--Äæ„ÊÇÈ@¥“Z®Ç+é­Çü[¹v8kë7™¥öù~=iâÑ©§s·\Ü&$7êá½SŒ«ÍÕûð·=6¼Ã7̘j˺µ":)N(Ô^>eŠÕ2†M¤ô(N¸×ºÂ+ EàŒ4›1ŒMüoÉûw ‡WxUHŸl‹a¹Òòý7qÝÊØ‚͇"¾µÂ¢i.Å«7ó™å©Ë–äRLW[·<3Qv© +–¤S6,{£Ú¨#S}´PðfÈ|}KuÄ+ON‚ðê†äà £a0.Ç|qû:˜ÅÚRªŽX{Xˆvè1ŦX`K¢]à{]Ðì¹Àês¤5Iþ‡ZýL”ÊÖ9âíS„¡‘ÿew/+ðQf²ß¼Ë`ÂÙÍGŸÁF‹b·! ^ KÞHYHÇ:\a×Í⮵hëâeX¤!d^8Î…m¡á9ç‡tÞÐe½+@­6N§ˆ4H”Îßû7ùûKí廃ý.¯¥\^1‹bîuTs¯G›O ×B^¶L¾ëd…JÛÙ8%ߥX«غ]½¾”j÷y”øš¼æ¢5eáíi@Em¾Mt>Û&6roɳ  +^7(pûJµÕF ?Ý^þ‘,Æù^ðZåU9¤ðž¹÷~Ï Ã ‘3XJÊe.Q)k‹‡8›‹Ì¬}eJ\‰ËöÕηëa¦„o¿öÑL)O!)<Ú7Ú†é¸;c|Ü!¤ÁÑø)GÅÛIè—‘5W`*3ºöÚ'Ä}Îtñ ¾j¡Å¦Ù€‰ç½^à­z%ÿ,Õ£\ÔÛÙIÝêfº<ÌÌ›•¯¤šñøî:ßÖ'°ê‚ÀÞ”¢A쌵:À·|“ î€i)`ÚÀI‘tÿø·#\„ä`“,þî#d¹ä±R,˜ÍtŸÐ ·Ü´»¿þW‡vÂ`&³?/s;½›}üãB6É,`»ظGvuå{AeÀ!pÚ½þOâÄg¸f'¸D7ʤçh·ܸ•ÜDNu¶eÀuÕ¯:¨á¶`K +íªœšN0ô®e <„Ìòr…}­Ðpæ¯ý¯àûóÿp hÀ=9æ¯Öú‹¨.¾¶Àwr.à·fت „À˜!¾Þ€0j¢@؈FŠW ·í÷~z졦ǧO%‘¯‘ç ?pÖ:é„å’2²ï×ø‚º\PùU&¿ƒ µß£›õmÌŸ&Œ§ò_³ñOóý7lâ_õ÷ߨa÷\âÌè‰ØOÔ¶÷‘æiQfÖ¾ò+üÈíü+Å)=<T<¥†@îÖVÿxcÆÓßÊýŸ«w+>Ÿ:ã¤èEϧ‘>Õ ½|dËèþ6'ÞçëŠy<®Xüø\ª÷ç×py>(Ïâ™ÞÐÓÙÌR'~òa7–ŽÒÖOŸ±êVò÷ e„» g|÷kN¶psÜ™&±Þ:s]+(•ÿ$"|7[ÜBßþO¾ÀO›,d~FÙŸùaÌ"ù5ë×ãàŠ5ûÍóAŽ{§8ã%ÇäÌ}D^¦j³Ï†ÔagŸñóv. ·ÍJÏ 6x}ÖµÌ;·:8™¯ž¶byb£¿è„:FziÞg§ñìÓ–73ãгì §Ýù '# ShLñÿë’5¦‹ìÕ?3çð±Ìof=ô‹íoRßþãÏ”}lšÿÉ;kry+fú©,ùå¹þÇ*û¬Úó>uëÏ>s23®çé,Ûþ¬¦öó³›Ìuè2ÇØk@24Úz1ª!+%9TùZÂ3›Ÿl×h‚aÌ CþÚ†þàûë¿­¼ÛKêzfº§ÕA]Hë-‹ÕÁ(¬—q!wZtÐÂsÞ'ÑÜ̸dà©}“ÒûDWƉc““üGR}è#rqµ’Cù]J˜Í;øã–åÅxÐáˆþ@ºZ³~_ªl{ŸþàÖ3Á)רÓu +…zg^îÏ;s¾üÇ%ûýõß&~uèoÂv΀撟mª³„æ«“¹t®°mjùÃ09”>‹„YÃû!¿‡.éô¼÷Ÿ1úê½ë%J®Ð3ÞÚË)2-€(¶ Md©ãd­½*›_ù¡m‚Jk[´Zäáć³™kõÙŒå,Õä_×Zã6´’Ÿ7ö:†;ùµòÄ«ÓõV¶ªó>öÑ'pïÂ%QÑò-ôû\Fï%Rþ»Ž ;ÑŠµ®ÄVÇËsýöª$ŽÛØJY´j¸¸n‘;}G´rŠ™“{ož›•w“¿U³[§]lH¯!='!Ò²#LÚÍB£]Ÿ”w³:´nµyúš,j”k“mÖàÓ­ñÃù fV¿V¦çr$'·ˆ¤Ÿí÷C®ãeƒ|;(xH«†t‘Øk`–LÂI«Ö'³-å +0ìNŽ¡b¬þ°âœWw´O˸žu8‘­ú-Ê4ºÚ%m§›0wtWu§]\§ŸÄl] „Ù×]©¹›Gp8}r+@ˆO1Ò\‰/wNª\–›%Ã{ñ¡ëijÙΰ^2㸔+Ÿ®s+.ÜBÇ:9åÂ8ã '”´+|Y³ñÛ¥fí¦“•µÛ÷¨zN ྤü0G\sÐë¾Ôvµg` µò|×KÎñP­JÅE…Nü$8åŒqpìs¿e0ër·&¼ACzx™Œ—-Æ1\ÊCÂÎ'¬ëFçï(à,.Í)·ž¶ƒJ°oWúXÝÚ#éÅ©¾Ç托mÍÆ¡ø4®šmä!â¦RÕ5a©÷¼¢Ã¥H„ÆÕSXëA“†Üì8[¸>£oÉñÓwýÞ›•ÕÆgàRÐòôC­_#µ±;#‚…³d‚ƒ&«½1W›˜îòÖÞ½#VçHó#œÙXÙ¸vÃh+NI,ãºÞó·]í}‡¾w +µa×?kÙâ6§ŽW«Úñ¾¤Bbk¤Bv7£BŤ¸Â*í]†£äªµ~÷åVfãåxfâÎûqÏYY¹¦ƒ¹‹†½Y®»Öþ¶þª#_fsðÚ·,8í-ûÒŸ”˜Õ{G«¨«ƒ¡%™£㑤N …¡ÚGPV¡†ÐP¼L”(ðæ³—W5/½ö¿¶¤´–´]q©VA^)Fßû7é㎑¶ë;;ÐF+?¾”f\}á!ù e¯¯žU®\d~Ù;QîZÑrÚ0Ï[¥jò/=6¤+ÝÑû¶>Ò>sw‘– å­–]·Îꤵ~©Ðc“Qæ½ë÷LS<-Ë«5ÁÊAE‘e\l9R­7­J”‡ôÄ#R[‰Ñåó.¶‡ 2„VaÖZôî!´˜2ž¢Ë-¸A÷\Ø,5¡ÊÖá˜+§ãs©È‡_Ú®·:‰yYÞÛFW¶B}€\ˆ›šf¦—~ÕI6]e‘;ĽÎå5ƒîäà,^¤ >¤Ú½”‘¨nXéÉ"²Ë '\â¢.´ËÄÜ¢ÍwCä»NšW˜èʽ‚¤˜¨Ü`l7¹Á¶žNÆv(Ê ¦"ŽsÝEqÜF'˜ªœ”AÖâ×_Ì,,®ç îmÝÖuH‡À}»¬Î%_AvF]®ÐÆw¶&í†~O¢³áXͽ©™Â Žo—Ó‡VƒËë ;Æå3kíÖ6ß3%f¦eCf¦Ol~°‡Ùü°ø5'ýÛõÅ +Ýë™ Ú¼J³8Ù¡/ŒGB týÕj©³ü¾ª,>~Y®L³ŽT_ÂU±±ù„•üĂ؀úüƒ#ǼÒfÜÛ.í¹!^8}>üª\&ºA옃qÖÎØ›ßÌlfVË×™’Ü1Å78ÒËe#OûAA 1|^£1bs ýj³bOÒËq:~r›†Y÷¥é«2þq}ÿt°š­Û\ÿä +_Zƒ2V¬øÌ¸*S¬$ž+[¸¶çeþÑïWxôCnhMÚ\f6é³6³°ùómÉÌZО)Yêóµ ”^ –öû%ƒÆ´Y…Ú¦-UÝŒ¾ž[ŠìˆYò ¯92|{~ª[ò IéQø¡ù˜‹zdkxÙˆ^o§º]L©7™éYùÒWa[ŒeR¨VÄfãì +’Y¼ê9gTLŸµ{ò7h†…T¯É”’ K¯rÁö§Õ·[jK?ÏTõüSDEŠ\miòPU2«>É<®]âÜ·ÖDìÝ?„€Vhü¶E<ü¶cÖ„€²DlÙøéË4>¡W΋zözý²£B{o¨çhªAƒu_Þªï†xvŠ ç.—°²ÉNÄœÁÌKˆG¯ü—OcÛWÚv©E¾Ù>yš2òã5Éb“#qÞž¿3i"îâ¹5‚܃Œßa²„wVí.·Ð%ö/¬ÿ¤ILëï\LœXÿ=Ø‹Á°"{ºT‚[ˆ %xßzZ±^Úé¦àMUøÚíI‡äôͶnK¾’VW5‡u,Üdz­Ñ8¿°)Ê™zdt\WI¶qiñõÞ!„N!ÁÀ»o‡Ë‹Î{5.lÀ#¦g“­Ž\&B­âxŠæÎÊož;?pdÚjÙÈ´ÝŸ¡¹méb‹ VöŒ†ð²)ÿ¢YœíJ¹›rzªý$syût»â%·lðým6` –`ÓkúbPu¬«‘ ¹a­r£„w«î×΃+R7ÄýnŒéÚ¢eÀe‚Ž6ȵªò Í“µ2};@¤¨{:¼ÌjpybŒ`´ö¸Àh½7 g+k$)nçFu¯—¤V«ñß5¿hûˆÓwC›ÃÛ?’ùQSº?ÉœIŸ +S&4—Ú-ïÉÉ ï^QB´ŽY´„Ú@¬ 3K‰R¾ÜAгV/Ãõö™×F/Ô·ÓŠ›V9W¬Z ¢HBˆRØÏ£ –³ƒƒ6Ði‹A)N*Ô¬¯ûÐiÖ¿ˆ‚ +¡¤Á• {ãÑ,–p<]õÜê¼ù£—_Ft—-› vÚ?W~:´J¹dã¶¶ðGÃÕ1ƒÌ(Èlµ×áUîê·ôÆ+VO×j‘ŒóÍÂA {…ð® Ì´µ†Îîú Åpî“¢ŒBüj-æo-ÁËwÄy7Ÿ–ÃÛ·ï7÷l„bîÙt›yiåœR\rù@`ÿ5‹Y—€òyãu^ÔÅ.YË´´ |±Ëgø°É”/Û*EŸY¨© ¯®‰BQFƒ¼'¢fhBñÄÿN< ¡ÖöSlÂüz´óšä妲HÑ=æ^üñ•ë߉bNëVØlò^˜Y3Ùœ¹]d¦yû•qf:ãôg~fòÚ­3“·üÈæèA¾œÇqÊæ‚Þw&ýKeQ6t¼–¸þtÌ¿Ã|9v“&‰y¸ ¬}ÓïT׆ƒämŽJ;­}²U3÷.TK9½\*ç2hµšmzͬU]ö2ÓÃ~œqùu¦È‰_Ï-(·« Ò¨¬()ŽU€*Ñ  yOq&Ê=€¢ƒ%@1<=†•³¿4s³§Ø@+!êY o-JÈh—ï>ƒ•¥˜<‡óïwÙï)€:ã‘WÑ)w ›=#¯Ü†NvÜË™â. Éú)˜z +¿ 0v9—_¥p/)6Y€ñ™bªLÃÏ9ÀÄá`¤ñs©bZX±°è{¾¯÷ ùÍ’ÅЊ‰äY:g½ ÿ±ºÿ‘ÌñW4Ði¯Á•ù((4 у$&_Ê}ø½›µ_½$£ °§ýÓlp¨¦Ç'Ó×Áeež¢±Kq¼\!€» à*e¥˜7®•V×ÉlŠ«ð´z8îmNh0Àó1mIkÕæÒû£Ôòüw&-ÊmûG2§›„èöù–¯'-x3a…æeQÏ?{åj.I¸J¶P{¿6=@döõï& 0º ÞÂhMá7€ˆ© ’Hqÿ-ü'F¦”âPĸÔÄ$¿O±)bÚ5ѓۀˆ # Y +e[5’éÕ +ËJñ¾ýRYB¨,Iq³™`v…Â[Ò+Ä¡—ï"Ù\î3hfкâDG€,êM@*õvŠÑõ×=| È™¶ä>>òqxŠ +€’P2l¤h×¥ãë+ Ô ¨tB(ýbts¶•ãJúTÍà + >9a°Ë>XtŽÉ]ßb“h³@ðž=+´:çq~ÈuFÙÙ\²;êþÕ¡-*}™–6ÔÈ™ý•~Ádós#Ï ¹ô;B—K@7úé±e–ô»*¦øð—Û€AÀ*EÿÔ“eÂïôXn–ôÃýDj?óö/"œ+-¡u¾hߣ3RÙä÷…vnòÆ›Ygi»ü¯=ÈîýâO€¡ìË_r­}LgøÌvóÌ=›,n ÿÄNœÀ®u p`WÿY{3Z’âv\6..§ê€Ë£¯3`Ÿ]pÓìk[—›¯=ÍO’òËÝþ删˜synñ–Y™[5Âóß6ýZr;½ÖÞŸðœØÐ_Çñ±OÏŒ{O™N”ky +%î`âåÙמ-È7 +ûgë°ÿ5Ê~-¨·ÒÜÎáú¥Éé¶OÐÙggh[ºLðõV˜3•ùÅÍÇåù³–Óæê1gÍ.÷OªìãUÌÕû×*{ùN +Ç+ tÇØ,—Œj02OµM˜vžëÝì?‰AGô`’þ³·¿öûþÿŸnsèCÏáÆ¿Ý{?—ìרü ÞýÙ'ÌLgÙ8¿™Úwú2‡ùÇhk_?#rþÌ'Ìz[ÆÄòû39è0f oBÿ”¾zÿ½O+õŒYéNL©Ùurá°3wÇ˼||}6íU`Cml÷V[ÛðØkÕXsûäEØüðëÈ_+÷Æ:ê.ùYè̲¾>@AOîÚžý]yp«íêýgc×ê÷ù\ÒKd0ëN´ûWø60·Á©Ï^×öÊË=Û‚‚Ö¶R̵j LJÆãˆ±¸æ9®¨ÍX˜–·î%lH|õMoiù\&üÌ>f˜xÍ84‘aïoùMêûyywöžm¥Ýã•:¥‡1:,ô>-îN”'Úñ²[²¶|k[¾i­†•âC©ÆÌ‘‰š1Ç··6Ókt$)‰ž}~õ5u~FÒ:L,ûëL Í|x«OJÍwÝW…Ú<¸‘5xÉÕUè—ªØyW¶-qQ©It±B>wZ…|É•ñË”øéÐ#rJcý>›]hH^[[¯snžÓýwRx‹ÓâYº‹ÙH}sÅ01t24³¾>qêJZ4ÌÚ¼Üukð¦ëWWÕQ­‹FeM[•»ëWÈË}DXÌ“=ú±f>Ë·Q«PîXw¶,CÚ×sëõ½$ò4Ô^—>[N±”R\µ–çM&m?;®7L¾µƒ—¦ WQ_Î'¡ ®Ó:4›-j¼ÜV|vªlëûç׃’ 1ÌúNqýs—d|þñåÛ‘ËC5¼çD²½¾c—=­P­•’r3.™èrèNª×…ëPÜÙ™7¬ãqWÊo–i¯º mÊùjj§˜Ó?L§uæ»AÿuË“­Ý­ô‰Þ0~¨QtV­¨þ R»[ÁaÐéøç¶×óùg0*w´xé=Gý½§å“K))%’ ¯; Öy×Á° í^„3sŒã1¸h¯bê{CÒÓµ¶Ý jÕÜUÇ<¬²33Š«“Îy#ž©œÏ3!4ÀÆ`Ë–ÁG´§i¥h ž8¹×–åò:8é»”'mïMR¡7辋–2:vHiSÃ<©Jç)F/©ªæ éOo¨É"ßx6‚ï’ßv¼ŸËÏ]o^‚ž½­¯#+ÊrÙœ“GJ¦É­CÏgv ÷˜j¤½ãfGÓïí¡–éÎfêXÙ§=1<”Y¿)%œx+Åš—}Ú@dôÝûvšT5fŠDâhY ëV,2Êq.œ>ÚMh®.¨ÀW"SàÛéÀwôGŠaþ‡¶¾²QB²Ön=shÏœ`íõ,ÖïFF§ÿðõ¾U²µûùžišá¯t-›=»*TX••tP ˜‡Ú²ß2&3ió2VRuÄ^Äp3|‰Lû Íçø…*ð·rÏæ¥ë#䞓ʄë;÷3§Ñõ"û9ãß—a?&áxߨÏUÊrgçZQoÈÔ½Õø]DÜ» šXÇé]J©ë 2.«“3dª…ìDU<Ê“åU¹fÉØØq$òàøâ!Š#‘¹Ä-áÜš|ÕA!¶ÎSAÈV|:ïy™åoÜóâ¥5àh‚pšõdÙäÀ謵«lNGfŠŽŒ³¥!¦P[ËL¡~è3…°ybœœý!b›ªá»øSÖ‰üWt*Þal¶š—¶®sÅš: «žRÎÞL98ŠT^ñ×/@/Ì•L— Þ§‘DzO­û⎪hË U)7DŠÀ‚6U ŒcŠm†Z'‡Lc @D帔_žUì~~h£»¶4«õ®)åX*ɵ2%ê*ÈÂ%\|ËAþw^¾4n  L G%ÖÊŽfêLCÆ-ìZLá”Ò‹&5£ËFÚYh¶s¥ÖÛKÚ’:ŽR„‰ä¾øñÈúÊïtðX'1,6ž(K4^ø·²!N +´O~HºÞ‘Å­°àšEž¥¢?ÜXÍ|<Ò‡T·¥{˪\¹“¥oÖŒ!´zw‘WÌ:Ëé®È°–/JÌtË©L‘âLºÜà\å¬ +Ui[_EØ­ET/crOVé$P;‘ô ~§ò&šËÜ-qðk‹ñ¶2\â̽°ÇjOcõ.Ä%tµÅ%ŒámÃø„n;Áüty¸è¤º6Ûªó½£ËåXAÏíŠDÏŽÐ&eWVk‘ËÔ-–™qé a)=xí_%ªŠ<4r_yÛdHËÄ)BkDSSâ­!Á#»~Ý€=ÞnË\’Zö„^_¿Ö[˜&¦–·úáKstx{<Ðá}H¡F¯ Ãgm~ÈÏýPðûçÞ/µéÝ!^êÊèÅìPŦLâ¥@乕Ã÷"Jã2÷È” ”¡}ûÿ‘õ–ëªÛÖ¨¸»+ Üàîzÿ'dεçúöþó`N€¤ª¥UëÛß7M(×W2_kOuîü웜š›zì<äØÎúYb^:ÚH`õ™þ³3ö|¹£¿¹÷Ë.B{×!OÃÄ¡â U¥BœŒ)lÙ¿‘‹¢Ê‹ˆÎSØFøÅPS!µ~P!8¾Ë‡¶@æƒLõž¹@äÊ=¨‘µÆ¸¦QÛçJšQîÊèŠ;ÒüSЄù£Óç¹K&àØ{-yá×80˜_tè﬘¡ÇÕQ‘öÅÕoîIÃçg‡Š[Ĉ +ý̊‘ö‰\ì_2_Ói’J†±ÄúÊFD4YŒ‰hš»lð¥ð=¾ + ÖÚ̈¨^‰õ¡û*©âË‘¶rõïú}é§ý½ü'¦´5R|7”cííˆkÏÕøãà q­R™gM›a'â%Úï15#“J¦>…ƒ¹T›e2Ÿ·Hª{Ñû3#Ø•uÀ÷ÅÆ¯27¯²i÷8\x< +Ø©_b ;%X“˜Õ2XCmÇØ©%\°Sä<‹/µ†;ºx;™Sä•Ù •̵n‘‰R½\ZôNްÛY:w¥¶2Û}´Ò5«Üy²àîdb³=êD©|·ñýë›Á«C¦€‹®QMÐìbgh5Å;t‹)÷ž`‹£í3!'f“"÷\ÈSP¤÷âmäiêCT¯\ƒ[T¯ÊÉw‘ ™.ž]̭߯¨œ UþIæñ5 Åõgéð'S7ØG{¥0®ˆ4Ê’I‰Ë˜ÁAWÄ΃®Š5±‰©`í¡·Í+‡vÊi‚?jðF+AgŒ<‡5ÒoÄVrü¹myxÔÕ=Ø3÷Mh:2—Pà]>P uhÚž¶ iG_ÂÐvxÎåK7à?èòÑÁ³æÌênO{Xº2ÁŽ?Ûµ´ÔÍPØg.×.Ð3`¤{0YLÞ®¦Þéfp›f(®4® >`F% 0c$¤]°˜IpL‡$œ=ÀT†=ÀTã7`råÆêiñD¼7T,T˜$†©ÅœW¿Ý*3>#UÀÚyBÔéÓW« òÙ5}8ڈЋ ˜ç=uB²<$°ó€5jeÀ–“í<;€Å`w¥`ï›àùý2k$ûR‡€Ã¡+`ß[°çj°gØ'¸È™ï§Ñ,µóú¨Ù›ÍB&ïÏ‘ —.ë²ã&µ‚©*!^ 3jzûPZœFÉ MsYÀAýà”U¸Â­ ¸&ZÜHonUüñ!óÄc x;MN|­ûü$·‘˜àå~˜«~„Î,߀o5TÀ·ý*àËä*Á+yr8µíÈY}ôû}|RÂùl%гŸ¼=¤I"îÒIhaf)Õl Ùk€Í­$uÐÉ‹‹Ù૽.àgË>à×ÿ¸ÁBÆY¡ÝÝa²;áF>Hça ºGˆMÏL°-±•é1zìXb©@ä] V¼änós¢µe€(5BSžßêdغHÜx¹ã^0º¤íòŒhÀÇ1fê#=ÊCPÞÏzË)iñߌÿÇxœnfIÿ*­ÿâ'*«/f$¤GÀ™ÿR†õ Á¬äròjrùrr¥Ë¹Z,9§Ï€ì€O‚‰d×ÌêÖ¥ÉÅN÷§Có÷ÙéÌ„oqOеþ³³ü +Án÷ÕeüOY¿JþHЩðœzŽS“ï?§ïÿH¿ÿ¥úÖ>¿œaWO­½Ø2ÔP(5Þ :óö ¾PçS¨ƒB¨CsÔ&Nu´¶:¶Ë*öài ì”Þi˜5ö¦ˆ’µæ×¿…¥~èÿèБŠü?fãîÒœ‰Âï?Ïo*ø~e Ûjè‡Ãè¯Â8ÇCxä€a-~£N`äú/`ä‹ +0b” ×ý¿òiêïMÃîÖkI¹ç7jO8Ÿëþ'Œ¯|^^¤ák{V§ÇÃÉXħ´‰XêR- ïÐ}ïc©í±VÛ%ßqjËŒªü†KʺŽÝU‹žå—÷ +Ò^§Á~1PóÌŸôû~wR¤.ÙTCý_uþtè ÐG°šà·µ%¯å›Ë_j¯¬~¾8_ë0%+uYBRIµœ!çcYdf±N 3¬OüO°,jM™äN*ø'3áWhn\gПU­ŽÔÝve4xu2ËýjŸûßÁêû+öáX«õâ,¼Mûýnz!aßÿ[I·q²§»Ä;²¹©¯Ôù<š«Fi†u.å˜Ü[Ó‚‡“]ÀÌÇÇ<³µØ×aØ/—Á«yy ìûñÝ›{Ð÷Þ§´;vìîñ^=˜î"¸òÝ<ލu·:m†í]9ª´“Án·U—/ó–tónÍKæš- ª6ÕO#þ—%›"uÉžŒ˜Ÿ¬.ZœÃÈHÄ~I©Û§8xÕçr2ЇûS¯|·ù6þT»äìÙê0«s¯½+~Æm~÷Œ[uá¶hI§Ï¦yiBû¦z‡Î{—¸7Œ7ý©¿†Zw €©}§}5•T±ƒ_ D¹ÒÕaeQ~+‹*¥Tòâ"úã’ý¤™«Kfž‹sχœT×ÄúÞ£óꬃï³]¡vŸ–tèfKJް÷Ö†ktµ÷o3 ãÉ:uû‹gjß±¯ùUã,U©†„Шb+­SÉ3r¿BîÌq9œy™9EÛREi]Jüm÷ê&BEÒ;ÔŠ-7Î5Xêîñç\¸Ï>Rá>¯þº¹B"Ý—1ÙßKÉîc .9=ž[u¬ÆÝÕÆ.½ªÆ™Ï¦Š- c%OÑòºÄ}Ëçá¥]Í£Kü%¢c«¨Du­f/½²]lYÍ_C§¢úég ÷Ñ<*˜ð¼šÅ·NÞÁ?£Üw¥¬r>S¸äàÝɆ"-d±s/“Å.~/\´½w‚.:¼šb+¾ž:;ÉÄíÔ0™ì,),÷»~S!W—FiW·¢ºRùɧѠ¨¾êqá>ˆ7,Žù×ärÏ;èåû.œçq<o*—(.r‚”Ŧæ%ÓÉK‘Væ±nev}ò×=.Ãï€_Ï‚/£ç¬/c¥/ãÝwY^ÉãÛ–ºùOçÛ°Hd_)è«ItêÛEmJ• f®Ë;ˆUȳV9¯¬z6dÜN¸¨d~ +T˜ª³< 7A¤ôös›]2»Îæ‘©§œa¿î|_†Ö»LÙÓ0×rï‹vÖ5©MÍym…±3(wŽ#àý= û{î7íqKߨßËæwLKþ>¾×8°-Ź<ªÙealëçG˜\ÏÎ…B¸\~‚ÚŽü`ý*så3™Š.åýc_-ûÒ×hx—qÐõZ~yäÞgåØíf›K×$F;çuÞþÖ­9ƒæóé8>Ùã™DØ~µ,Úˆ8·¬p å-Ü/tÌ%ûX™ùCø4©Ú›36κ`l +ó…±)r—™Ww…JD}$9—RÍ^ÍòŸm·“Š»w{þTuÿœ\_iæwC^¶wí½|÷áu=×ÜÅ9g(,JŽsº4ì‰réØÙHÌÄÖ,TWVVÈ,üT»š¥ù2ih‡›f N0t}êgõêˆø]ÔÎpa®5âÇ]SªmVSjQASêÞ<Áö’àùh×Ôšš¢‹}nš]Pr+sTõÈ»ËÍÀíϾ¶3*Fªu)ÑLA³''Ù²Ñäs´²í÷nÌåˌ̠¬™´Si[Ð¥I<ÕÜn¥W÷½.ÖÉ›v–¯¦L*¤z+U?’¾ò¬×jJßEcù3-\äOLSò(|dåQöË£Zp–?óòï$Ý4 +&T.ߪûüwÄOBæñnú]µ3vìÅ–µÀÅ"å½`õ*gÑ¡blí†fpë¡£×ØI ‹ûMA;W¯M9_ê­…ôÔŽ/OTñšÒÏæ÷Š-Žïòçü€eÏXFê¦4=À‘ÔjCqþýÄabnZðÄ\ŽÄüMîCÈs}̽¾Ñe nsapeŽŸeÃ}SÛ?â®EááïD`ì&WÙàç%N¯]hJ—|šÓš=BRoTU °”,úJ?vóòwKòèTmÈ^cØ“ae3‘bYKXHÅ…‹¹÷oMàˆU…ˆiåfý6ü®×ßò[‚øŠƒZ|ÅEúün8Þ%Øj¡´ø»ãÏ&KåC¿ 7ê΄ëä­üní{ZÐõú|"i­–ª÷î–PSŸPÊœ—¿å¾({ÇÎOR•bgjI!Øú6¹åÄE€–Å<¯4…uÝê ‘Ó˜ ,X&[Ýâ¾RΠ¼`l$î„;!W_îÚœ\ôÖìUý¶õ˜êlë9ë²WÃßpr¹u¬Rlô³ÄœÙj²“hú¡íY.—3KÂØÕOe\×´uITÍÄ(ƒåˆÇS‘â…AI8¥²b¾$ Âú &;¨æY+}~÷øÊxUá…ÔáNœøurõgiÍÉýÙ…½æi˜Õ6Žy´¯Ó3Â:c¾îsú½l¾è÷*Pè÷:Ûb’uÅôçPÞ‹Ú3ï:«Ì©/ôÜaC¬Z˵3ª…Š£µk'MµØÌï +»†[ZFÊ&áu©Ö¢Ç‹æ÷Ö…å…ÑEäðEåäøk±×ª°mÑ+²Ú§Yg«Ã€éE蜱´Ì‘~?&z8§Ú͵m¢¨*5¹Æ¿%¿Ôä<©L©LnP“ÇfAC¾/5è÷=—UsKÿúÅ{Îd UÌ-ÂdõÆ6tÔ'¹Ñ7+ +ÒlÚ¡Äå@„’¿†øj¶q§sL²×{‹fÛÝîÏyŸü»Ó. Æ*Ü=úÃ`9zx·«´Û-wh(ÜÆÔ”@wTæ\xQhsK’sM7Èr*“Ä<œ«ÜëJ¬òkžX5’b2ûÙï"›\³´)ý¼êÞS½ví9w«ójL¶•ßSåÌŠÄV¦„ÒÃRƒ§Œ‚/«Ç>ÊX'‡¤? ?ÙA7_ ¡N¤RÓ`ìP¶ ©Ÿ?€œ7Ô™SŠ¿¦A$ m7Ä*¦ïD1,c#B¾=7Šx¹E¬/8¯G ε2^î*S|»koS÷~˜|js÷S™u¬Un^Nõrõ9`mšUU)Ýxa›~aô¼¸?¢l§AL¿Â|èчh˜ +ãA²ƒ^,Gæ¦B’NhkP÷‰âf]$˜Ò«Žïxi€—_µ%ÎìèªV§W +Vg²LÚ½‡˜´ÿ,ŠhKÒhô’÷J˜´D' ²ÛüO™si§Q'ævÜ,é*Êçò¶dôã*©Z.ðT@sªµÃ˜þ·èÑ›üRÁõò%óè%"iOà»Öæ×ü¯øoP\ÃŽsÙIPÉaõÚ¢ŠÉÒ·‡Ér°@[íÎ mMÕ‚Ž„;œ›L… +H +¿ñÝ·a'mˆcòlH%Øóh›8)h›¤lT[kòˆ¢R‚uééÌ/n +1Ÿ¹=<´§oØ ƒÉÈ…&Ò€2Ø~!CÿùŸ¼ Ml£•`4MÓÌ=»åL¬5¯´ô‹eDª½Ègä`¿±Äµª«T}õ©2ŒÃŒKI¨øä£d~ +’ñÑ|°Óx£í^GžD›B¬bƒ…?ÌP‚‡»»•‡C"•‡&g§¡^½æðq ˆ,yI0À‘3ŒŸ* œÞ®ŸNØ OÖá“M@h¹qšfîÂ=jlVd¨©u=¬¨ø”“‘Õ-캜Ê]6y“$CûqL’ÚÄvúÎ ´ƒ Q¤o IØc +˜nê„̹"HÈ’4¬û0[IPé’y-Éï ¾$ ¹NòL¯ë3Ÿºˆo¹—à¶L#dì|á42dmÛPÓ×O‡–ãˆëóÄæO8­±=´&2`-ñÇ4Á•M;×qíD›¤Êý†€½Õ„ 3Crh±€\–D@žfz‚·ȳœOPO*9_†€¼Ø›T‡¾¬ž€¼ÚÉ?]o oà wÎ{“š»5ÐÇ 蓲ôö§òeÞ4Á! oXkÏoæøs?áÜ%ÿÀ¢{õV<ÇÍ+ßíöÎ7?<Ýgr2Îüho„åÁ; ë},Ýn¡^Ûâ{xÚìÜáß&bÒb¯Ô͈\v¹ƒ´H7kþmëÑÜ{n~_èYìÌñ"À•É.*pcét#ÿoBýu'+ì÷Ê·WàÜü6ÑSé0'c¶Uc¦oîr7ÞÚ”¿k{-ͺÞJ]U~G襱ó³‹àæß†Yš{7¹2‹ ¹1 ^N7^8þ(&'ál¡õ]2n]ÇÇh¥Î%‡Çº?¼·Ë³á½c}‡ÆË€Ó^aûûüþË’ýÿþFLÜÖüð˜j¨¸4žlÊïå`u ªãå=ßX.Íð°°ÃÛ,Ö²Ï8÷Ñ¿ÓæáÉ.äñ ¿d¨q&©²˜0jñŒ2¼×I}h\1k0ÐÉŸž6°ŸF¡?¶ƒZ×z½™Ï»‹tî’ëÚI&kn'âåi‡9¶É­ñ1½•ºdŸ_?~ÿqÉÂ¥|wÕBûÙy2;µ¦k‡ýµâzøciµùÉ£s-Ô=õË”†ûŽLûÞëñÇ-ûŸ¾\§cgÛ_:yºw˜õãÝ®°O¨ÍP¼U—h¶yi)JS}dœF×jÆçÝ©|gYw×/E±ö]`AmœŸöþWœlª–ïrçkcaï.Nš$ûŸ Ú]x-¬KÆ]ºá±ÔÞÖF»B¿üV¿d›—ú=jª×{µÑÕ/?’ê+Ù°}ï×íïkTû÷iÍGáe ž3»jHòçÊ"2^•<[ÇÊëêB(3Ø)íZÅr‰Ü&ѱÿD£ã`ïEÇ¡ýC(ñzt)¬ˆ^l³¨š-qóÓP'‡ºýnœjc·}¯ÁÓá7Á“¨†Ø‡­, +T!·V^— «ÌQ·´«ÓA‰¿¢ÙèØ¦‹Q]WªÅK_i[væ—–P¸Kq¡ëÏvù×ìñÈ;¤ˆå¾ëž’—Ø|Îç.Óœ/`D‚‘™`j¥˜+k;Õ¡»yèuIª›,jßÁaXÅæR»1¯^©"‡Ñ±qüiQ]ù®Š—.¼/¶LþZTßö»Ðu¨`B!–>™w°<›û.*bnœo©9xS7²qiìeCn— µK9ÌËL'X·½8ˆôù)³`P¦âÔÄŒq¿!G2Lò÷Á±›"Í”H«ltÕLœ˜Ôæ—‹—ö>_èÚÕŸ|š‰rã¬[ÉÁ+·‘‹¥^6dz“ûe¸¨ì·a^xœ‚uãzMͰÊû0wä›Ùui$ÿ Ü?Ö¯»Ù»L ¦× +&¡{_œ*n·  ]“Ž÷Îk'gPYÈΠºj:ƒÚðè ꔢÿŸ¿ÍÖÙV–\'íÀ,óµüà[ýõŸœ;á¢#i!yä­€¹bnf×&3þÉüäS£â×í éKɰܻŒ›#OCš±{Ÿõ—n7;ݺ&±::¯Õùæ ŠŸ·ã° b«êopkûbQ¶âæÈµB -[Ø£44½÷ÁÌÛUÄÌ;ŽmæÝ`”à–Üç×N 6^µI¥ºŠN¬—‡ÈM),4žA¦ZW-¿á¯Uïj9‚×*²’{‘ŸåšÉ¹Ãy-)Ç´Ðqh¿hËNÙöù|Æ•Ž×[+”ÇS »®—æ¢}Ù™äóu1ÖæmDNˆë»IWÔ+™—« X®ª·©V/d/Z½(þ\CZ=Ò* Öc­^b6Íë5¾UèÌsV°¦ùf¸²ÜB*îºÏìXs†wJp ~ÏÚ“ú0Õl„ËVh‹¢…}-ÍÌû–eRHÖ7ÖûFΈªÃßò8ƒg5}÷¹vtÁ»´‚ÄZ}¯m4¹]ÔÖgüUµ1 •dÖj*=ö)æ³<’ßè$)ÝIAzZ_‹úð+œRSt.ñz¦V>ÿîó Ûtwk^ßóæ*“¡L:ûDMÚ&(c3ú0F‰¹qú¾ruátÓ´S²5ùöñÔkÌåÔv¨DªŽ»5åqjt•^c2V,å´”‡1r”ÝÐù-•—!aFI™&¢K¨Z)ˆsˆÙYç &sUB$òz.Á©'y^‡Ë}ÑÉa¸z,«¾Z…Ž7ŠM+·ÄecûÌ2úậ‰Û@kœ‚ŸQYS +9Rmo=ZÕËEAé˪bÕ›¦ü‘Gžì¶G¡ eÎ%iŠ~êRfÁõ$4ïNÅìµ±‰öþ.¬èECæ·$Ë—•AçîüŽ;twèÝ~y6Ü¡_êòÜó:«0ta›CÇAÀ +ew {‹+†ÉlN’žœMíN1ÕhØò¼~ÞŠ®Þò§¿ƒä‘tÄd¨µ#¥©vç$tö•ÅyŽ4Ä)ý¦Q"±¶C¡ÈzE~tü¶·ðå±àkýÈÕZSÀI:ͳçgÏg› ¹ÅªùÅŠ¹Óyˆ¹3å sgé6«Fi©v¤×¹àÕêù—X)9㾚1“ÀÏ/ CQÓX”V^Ë&&õÏW†sý§4½7 c½—8Ÿ…@$ ŠE&ÏðåJ^àys s‡÷ÂájÃKÈIE¦Ì^¯Í6ï£)«Î =Ó%ôŸrËçC¿ZºC´M¶Ÿþœúö¿oê;ÄÚ~o´ýÇ‘º>,“Ù¯ßõîo4J%scQšv%K‚òÆWä_]·þŠ‹Vù)’=ì"ßi£g~§¼^<ß¹¹ÚëqÒà³-ð¦Yuˊ̽lêLרûŒñŠ ôkñmЃ‚:¤¥³¦ =¨q\$)ÿwqÛU2¾P1¶Ö/2lï,2,ç~†K2Þ>GE-BV:î[>­%sñ ¡ƒhê÷xF¤4ÃxDÌG!ê¾Rعã¶{d/ÇÖÕäÖ‹¹_»_ÆÔÛ0=è·ñ{ŽvòàwL£%ØÔøšÏR~{P¡Ì«GÎxoI†Çé•Ä F,ݹA`½DPñ~‚o²Ñßäê¾q˜2A Fƒ4w;j ZÌÍM»ºü|hÊ»Gÿ”[9uHqia!z”ß¼0ÂîœÜŸYmà˜ð/ô;ã?hgn¾¨ ©})ÿRÀÈ™V LD2‹\ ŸSbY KDA´‰dwÎðÍ$8á¥Ò%í*Ïñ9Û?E¬ÚhŒ°jÓ¼a¢&«X5z•°ý¦ÜÏ#ž1ËÈ«}+1öú£éÒRU\夬‘#„MkñU+xsòí’ìÃWëL¿7òð[AelêFÎÆÈƒ$XäM,÷LªIÐb–Ã7Ÿ¡†—F{ç~±6±ê>ž`Õ§zÄÄþBÏŽ$£M°Ê£M¨0D•9'x ¨2[ÑÆÓø]XÉ.ïÔ{ĆM¹¼!*‘£öÖUÎά¸<€Ç+è[ÅÐXlýÆ·ÆŽF sú +Ä<@p…ò!/nU1Óúƒ+õ4êDÓ‚-O-WWÁ”¸ ‰sçìfõó¦?ƒõƒ +ôðJ’uÆwðò€ÍÉ/n +½4fwä¾¼“ï}à×q +Ãú„ùÃCß§A¾¡$•¼Jy/N-€ÓÔ4A÷pFül€#:ÀQkpŒFŽS€½£Šß!µßÊΡϪ!¾_YÕ–q[FϺ,Ò¯>Ë×2$Á©Äaú]éKÃÔâIææþ ßyï3vìnNèå4» zö€‡Xï MäÒBÚ9ð¾l«ß¤l–x€褘E£à‘”º g .€¯ê$Àת ðñ-y`ÒÛ¼“ÁÞ ³ .-÷³{ô-FÚVµ;´/ºZ©r²P®7Yîü„ Ö(¶~?OÚ[b_r‘¿ækÞ±‚ßЫy½"Æþ˳”É·?€à” ô"ˆÌOpãpj‚’ˆò)DÅì&ˆ€¨ª÷G¹rºä79Û'9 Ü%u<_³N0œôŒ£Ö©¨¯`þ‘Ì‹;Bær“cïÙ/Iã +J…&¢ùøƒ"ÿ…^gÂyøAû„zi^'±©&¥^§0 Á$M0€T\ îÐJðé™U@ªÝ> }f“ ÿ¤Î³ Î ùÞBxÉq„$iÔñÝάu¹ÐÕ[Vð³]+ã|>ø+™W%5Â3ƒÕ—¦fx'6eÁEi ¡7­¾å|aOEÞ`þš=Yß|9„P@.E§L²éwC¾Ô%". ¬0mDYqP63IÐÜÊA¿€’; +(•J`ŽO@!Ïi¯ÌÖ±£™Eµ¬ T>LƒcøúRYóPiäþbIÚ­S¸¸ ~G¿jùc‰A±ªCÉk<’͘ ¨POŠè6’3R<ãµ{(€zà: YÇ´Ö +½*€.ÝÿXé  ƒ&è0ùnÐá>´Õ§±A€–%Ð4—<WýZB;ª³cÊòLîæÿXÌu…0èÉ·(“Eá+àRPgÑ.%Óˆ£ã4ކDRNÿ+F{'Ð-ÀzL‰éfÖf²áoËþkE¶¿9ÀÔ2``ŽŸ `Nî6Áò ˜•B%ØX€YG5ÀL¤5`¦$þ÷ñl˜lüÑO¨«‚»]“h.ÿ›r7³í¥,ä)j¸ ½d´{Œ%x’ñ°¼.©’JLù¯æÛÍTøM]È¥ßÀøi­å"`§«`ïhpjv ¸âr•*·ièD«‡®ÍÊ€+ BÀFp!zœyæ'ó€û]Kâ@„j½'Ý—³o©.H¤_d¾n; ÈïÇÅDÓF{±aÁ¸µñùÚú§C§tªùþó7>•ÿ£þf‡}ÀÏ‘àŸþz|ù›.Üp@è2N‚y Uw„ò‚}J]ª‚r¿L ¢<ÐI¬ ôZrÐóÜ-ÁºÛ€®š ³ä=ˆ;h‡\ø•Þ4¿!Ï<¿‡Â9_{ëŠw'«ùܵ|—£óÅyWN÷Ì£y³öaÌözûX, v Õm‹ob¼Ù¹èï*îú˜¹Í×Òü¶^%S‹ýÒØo/‹øüÌÇŒÏb‹fبèÆyjM×9ðœFäP˜2ë?º4¶Dš/öãú/…wŒt_© õÊ·3¿ +gu ]|þ EXƒƒ·ý’»…¼ã6üXãV-ü-,íRZØÇ¡:÷®U}ë%k†õ nœûf3ÓµŸÉN#¤MvÙjm¯í±´kF-a¹Þïß…ü¡q×áýîÉý±×j÷}$wéóÚ35Ȧj{WöiBZà¥ö¸­cjÐßðC½²¼çµ…½¯Õçc±ß›Åj2úÓå4‚ÊÛIËý-ë”wµ8é>¼×¤÷и0ßÁ«%#û!àý±ÅR}ï£ñ½ØÓþ'X6ô;ëB+ê0Û]§]ÈyëØ(ßZÒš—žÛi¶¬Ù"¹µ_6LØúÉvõAHŒïdyyJuè´aØÜ;µÌ)3®òi+®a—?˃¼ÕûßöÙí;b¡ï½ôj›.9û´;ñé·wÅç¨ÍïnÓV]8Ï[Òé¶j¶”ó/h¦©Þ>§F×øÜÆ›ûÖ®ŠÕ¾Ó_ó±¾Yó·|ÛZÝÊ¢ü8Tò"«WÈó±ö/K¶©q-õò¦i iBªð¦!f‘š,ZÇRýÑ’•w³%µ‘¦zYÒ{ëšüÀz'­nNVmì¼ïƒj^“­.OQeQ¸V*yúÝ(¯ËïN9ðai× âRE17ѱ]#é5Š-çý›­5(ïºÁ¥^0ñí)ÿZ”‚Iº™H«œT‹Mm¼í +åì÷fiVóA¿_Åæåq…\q9bƒe‚þ¡Ìì·÷Ò®úü–øsšvÕÕI˜)¶Ì/_T?˜\èº_µ`˜™ż—wp>Ì}—v”óé žƒ·ýA6äËpÑ ¯a^éà!y'ô`Ý=5‚Èú>ƒuÿ(¥Éçë7¿I?éT‡n^ª›eZ`9bƵèØ`£Â½?,Œï¬šøÃzÞA–Üwvå¾sv‘óIv“ƒ×Ú1²ò%‹íÍG¸¨úŸ0/ài »@¼¹hÑŠ™×DÃ$–k¬{™Àˆ¬BÞ`>Õ’¾µkzÅ›´uÞ Rå6<ÅšL õ²Ò.j«Ø†”ûnÏ*ݪé(¦¸®*¦”›)¦,~ä×Mt\[òënNkÈR™ÛV3KXJÎol0Óù¨²h£N›6—5ibþ 36ÅÒ׈b2˜7 ôŠ Ãº‘¸vœJŒV A“1OQ/‹œ¡jTÎQî›rFé–:yÅäæùu8·äAÊŽl-¥ïµw‘|ý IðËÅx°ÿ])ãaÔCÛ‰¡± Î91ÌXÍòæ0äÝR ¸Î<ãöÅf£ƒ gÒsŽÐÞÖ΂øÖ”üí¡^¯‡—z-­>ªÖ¯½•™û(¦ïCòÉÿ–`Ƀ}‹–êX¸P¤ñygHþö%Ägr⌠ªb¸ït…¥µ…ü—>Ôºñå7%ˆçK\#óG¼Åíëƒ5·oT0nß üÛJIl£ì\Kån¿éä¼T‡6‹™£×Š,N(ÏÉá©X‡òU~ù“<¼7yØ2ž2Ø3/)ƒß²Â!qÖÔ¿Ë´°ìš¼P0CE ñ®Ío–‹€/1<§JI1÷ò„ÃÕŽ=Ü›m¬ú,«´Ÿ¹iË&Ó~úkFàH‚—ËèàTìß~X´ +‘gd$ׯLY1øœNkjØD”þúÈ^®v—¦­Ôd!¡ñn/f߃ËñI$ÜñU(L»÷d¼;~ó¥Åð\~‰qêDsÕÍ[àÄŽ ³gÃqÙÆ«žgnθÆt’i £ßrºoL´õ–hê3œ;Ôȳ~ë=)¾.)h¶Ä(¸”‡ÁQj5x•+8_ën›kù!éÒ˜ TcYDä1zxK˜¯^EÒ<…b£µã·SyÅ—yjÍs vÏò‰7Ô…=—äŸóžUò—¹Õ\”éHŠÑ¿C‘~Ž÷ÝÏ Úæœ5ªUÚ”gßç ì dbŒÄxÏ$æÇs™È5J1‘+š_"É1_/ŠyË·ý‹ñÌ;psa¥~èÒRÔ4øC)dÀÉ ¢ÿÉs˜áâÈóËÕ`Éž/“«²½%sÛO¶Œ!ööôó<9Ó¶:¼QŸûæCâO²w²4MÁbF&§ç¶M£ëo¶Fb¾Ð lwJÕû_Û¬á̤a»@œ`;ãýÂvæUÇ™^¥Zâ½{}•³±ûÀÒó¶ šæ–”}ƒ„ÄŸù˜÷ëÂ%gê={©ã¿€&V]oL©ÆôËÊÌh{”YQcØÚPp¨ìÈ`)I¬‘}$èbážI"£Aî’cñºÒñÈ|ÔpæcްÝj}À*QrÚØ£Š \-BGúgK@ëõý­&*z\™¹4zÛ}m:Y‹"S—íª  Ns2]¹'¬Á“¯4.NæÃ=s¿¼×ŒÉN´CXSÊg 1W ‰½‰5‘w>‚‚П¤Š¯§ÜÊ™Îò5Û½V,V|T¬²,˜P˜UГÊÑú½µCåüMËÈÕ6òHë{ mо m¨!!W• +‚е¬»Í…f´ MMk¹¿Py•ñt¥¡ÀVí'W߯gVËË;ÆŒ®kÚÉVç”_“IypK¾Òùù6«¶×ç+¬òÜî°*F\1a!¾ÐSރцÜgÜT¾q.r6~¤œºˆŽkKø±\<á^Ñá`‹¹d`‹mv ÷A9@ï—܇-ÝL½Ù®9ˆ­F’ µÇ꼌tr¸H×€Ṽ½ƒ3ÓìŽ"û55!ª?£2îˆ)A-¶cœ½Ž&X53£§Ã|6ú‡=ªØ·3rèiOx€è€Ÿ\_„{‡³[u.—UJ hÞ3Èæ¯ +Lñ® 2#¦Po›Z3ã2íŒåkÝLÕÆÇL 7 DW†Y‚“ðß7†}t¾\CùÞÿªåm|GƒÞrMΊÙ±ìr3¼”ß&%Næ1zæVKäVÛný2ßÃ}mô›ÀÖcuƒ>½ÛÙ +Aëdê<Š*عÐQIÞËp ЗvèñDô””Šží@WŸ-@7(— ç¹ïQ67Ý£ŸºáåÉðÆŠ…<¥:tµöe¯ÛûéÕ+gzØTÆZnH‚É.ñ-Nϱ8$U–¶sTEÏkøù]í /ÛÙA°˜Ûƒ`T<Ìë<a€ù  ¨,z+¥™)Éßë`åè°Š™¢ÿ¢ØÊ·û†dñåKQŽ”kêÊ?Éœy1LÃùׇ$çÑXäŠÉ•ÇO*Ÿ]àa§z†P™>¤›‰žû¤.©òš}´?€¤V0 ]ˆdAd9,I€\n,@®¨l‚J=Á} ȱ·Op‡9騀ì¸@VØ5 à +HëÒ>ÿT­Kßó +ÜÆÝÔe.ðõÏv‰ A+JæÛ€W¾•7¦ æëZîn—w0¯®€” 7>‡Ì^€<> ß4 +(Üú™‘\êCNuèbêfŒ#@=±N‚òP‡ÛPÇ2¨%a&¸6Ar>ªU¡UÊåÖªÃÇ9{¼]1R3ú‹¹Ó|Ñ>ÌãøþðþÍ=1e<ƒ‘~6  éùü-ëŸÝÍ`€ÚU @ÝÛ$ ™ý׊ * Ç‘ èKœ ù-&_l&ØŽãÒ›½`<å7“ŒºñÃVº€A½+ _|ò'¨èuTƯuAZV¬cš~ðsBþz…¥jg]^ŸþK>ý­àO]²iêYu–ië°}̽¶»ÜåxÚ®µ×sSþœÀª…7Å€çйwyâ³àq âÜgÊL×ÞˆO…®¸/M*xGðË‘9®Ó}gt)‚‘zœÿÚÞsaUã{ÿ>‚ç Fбì½"HG±7ë›ÿÑ?÷½³“ü’|wÍ‹ËÈM2ÖŒ0s±Xè…˂״üUUßZb©"Vý2kbRq;ËžÒ¡×»N:Nã›ðU\ÂÃa­Ð; _ru|4ñàÑÅðeWËÂ:U[ âºá¸©åšÒ·ûÀ­]}=3R3Œì~äè…sÓÕ´ls£¾•Ú^­>¹ÓÌ©aÓâS!ÝRD^wZQ9¶ħ£Ä4ÈL‘„”ÎM<éÒ›dïIYTÊÊZ,‚&hÉHààÔ&¬$;rù˜4\OvBøÂ°0—7,Ôú~º?ìaê[z *2ó Å­:”«tP&8 (ä¼\›îz±¦tá])u‡Ù²þô= w*<Ô÷gªìÛB¾†á«±Ó&÷ã&Y¸ŽÜ~?2"÷N|ØgßÅÁNjô?³dá0éõ°¤Q˜¾ˆ«ë/Äævµøð þ0uÖxü)³Io'Ùót!<”ÁF(?»{Þ¬tÏ|-2{@9õ^ãJŽÜÎ66"7Ûäp=8g†±Ã!?Øñ×àÁ(õªõÒ½Ùò‘n?u§G=©œ˜t}3£v•Ú`ÑyÌç§Žm³ßJ¶kñg³¼yËÉ8”a¡ÕÌ4ò_‹ „u¦»NgÁÁ¢04(‡±4îÅ⸟ºÖ¦=©ÀÍ ”õª—}xû®Âyç/•Žö{qíyAÛÈúI´œk5T²…ÒÙf'•+5I¯ÓhôsÒ ´ToG¹>*3nðB´kM¨“t-šµt4}¬¥áÕ9”°È@è–‡1 ÞÁnÔõ²÷Y ®ÿ_•6²œ[ø–¯6Ý¡Újv£Û$«Qh©ž"S(½ÑϰV}''æõQ!³ª3Ò®vÔê§šÀu¯µ4?ªž¥Fª9̈VüÅ!Q)’¯÷Øäë—˜òå÷µË¦ ]ʵL:VFü†XFn-/ÌRÍÍŸ¡È}\;ò&·ÐB :„X±l#æ)ÉÚq–ŒÕR¯8S•ªñt5‡$sPjåŠïtjP´NE»s¥ÃsZw-q}œ•ß[/L1‡»\KâË’#âÛR3“:—ðkãQte /’SXëL¹Ð¯£BaíüÎÙøùÝ|™ÍÚ¾žß¹“C(bÁÏÛa¦qû휹ƚߥj©ç38§U”Fã´)›ýý»\‹¿ð’3¾“öi3E'K¸Çf ´JEWT‹œØ,¬gƒv¡_û…Øk6Î”U÷j>‰<íÜq_ç„VÓËz+)H‰ÏJ½[,›‹7Ëï3 +Ï/2ŠÐˆdqÖÉ(“š™ñÏÊ"‘]Eµ›m¯T½´jIŽs»ÑÒ<~;Få^XÛW¯Ð/œ¯ùv~äGÜõO?X|±O:'4²L.—ÓYÏmä³R§WÎæ(¾–ñ7j;£ ƒôã°ÒŸ¥¹4;O½/ƒCÊœî_©Z¡”H!}uô¦Ä:FlÇ:f5Í:Œ´ +tu0Ú­'mtÎ6k§õ#Ïéö3Q‚ë ¼ˆµ^¹“{õséË䜕îÌ>›c߇Œ¿zœ2Jïáeб·Ÿ~ìñ'”’ÖÆ\4ͱ5*eN¸xª–íÓÁâr¬£hÛ,®›,þ|“®‘š&;Õ¡¤ÃYÏ˦ß:¤™8Ùê0qŠ‚Óyy2ñÉA‘‡½|„ã›4½ªUî¬)-À€* à%/'žˆà.næžzi¸@9¤+ÕÝ6 væ6eEûÛT­ËíRh$·g9y`›…œÇâî–tµæ+ÙáH’b”Y[zŒé×—,Çn…ÄÎ×£N­ŸHRÚ4~Ü"A.G\ùk<]Ä©˜wš”cÞ9#ÄR=s¥"•ú‹´#œ¬o· bÁÜsDë”o„®óÑU5£ôndÛáÛ1ŠãCV)àÃTa„'ÖçžØ0|Hw3!ýjq¯³–/Æòãx.;R±´q_=XyÉXEØ%xõæÆ'’hÇäqB§ï§»J—é•J Y¥*>¸CE´‰IÚé¡Eb¿ uuC´±Å‘ g?º‚—Áh/]¥¢ôENã[ë^ŇügpKÙ$wÀxqƒbü¤“ÃRÙwKÅU =x€¥6UçÛàÝDëç +ÃC7Zæ)'%ß“ëâãZÐq/urcò¾nÑêÓ©7½šQÞ“É—’Ø%6%Úyr]ÍÞj´WFŒhŒL-ðíººÅ‡ýáJÛ %gòޱ‹ñ £ŒñGº‡¥„±‚ztƒJéf8 Z ªPvS€&m¸mÓ•ò©c—[àrdý[„NÃ1IöÇ)?!ÈÒ1tËim<˜Sæ$a‘Îp¥®ÐSòR£±Û[ÂG-Š ÆQA/±£†æ”(O׊<»ëED§½M„Û!'`™ÐO«=›(@u3ÐUŠƒb ºÎ›Pn€n¬8@m®PŸT¹ûF*ÉÕRxµÌïÓ™gò@…K9fOÄüø…ÿl•WÃ{d³±Õ Šj(Ñx>6ÅG \Æ„³'cé5¢¡yämFž'LjT2Š ,[q†+K(ÇÀ’©;ƒâ'ÆV9€•®#€•ÀÒÔÊ)4S°ŒÒX¬¬,ž ‹dÊÑì±’Oóz*̆g)É~‡Ùåab9ý¬Ý6”ùê.HÇÇ,b‰ohÓ˜ác,¥`'rfHREóÙ‡y%wA]ŽH¤bš“%غí. ø€9ÌJ¶º;Û§RPŒÀ–NÀŸ÷a騼lIÁcXú=€ª 0SE6…3 MR*goR—M£ö€Í$qõ&˜ÇféâÖã— U;\2ª`vtÓ± |?íiØéPP±L;)MR*¾lqm<âX§½À«äà½êÊć²ïLJËñ>ŸýâLwE€Üh>Þì¤ÞÊ^z¹O½€§OÂ8S+ežû|’]º…èŸüòÅi0ßoÈùd°$èhÄÁ`a…IäSÃÂ2‡¡‰Ȳy£8¤|zÀE߸AÂÎå À_½=ˆ²‹ ”ëDS) Ê0å\Ñt© e3ÑLm¢Yä ¢±uDÑIèªG±ÖàVà§b/wÅ©bÚ:cLr ÈOË<ß8úô ÔNT}|Ù+¤»Š&tl§À}eó«9òH 툙+X ™| J6ˆ–ªKmñá{£¢³Õ DçWHyO<‘è!Pl +Ê+¦^²ì"™Su·€ :ˆ¾™"ˆz/ D7ˈÚsD£V1Oµ®‡ÄGŠyà4O¬Ü ÞŽ ¸3I¬öûè°ÙÝà©nfýá–küv©õùÄÊ:§ç‚èM^"¾Ý¢Ž1Èø€°Aò"¨Dò"™É0PÆy(§°(™-ò€Œ9& ãÙ# Ñ#HÌ€ÇðÌq*^±Êea6fa!s¶WX$ÂóЫ ýrrqà.Ñ]ör +­r,WOìÀ¼¿ø°»ƒâ"Ÿf4q„D™3$ª_ɉ7@væÍú‚”§<¨è˜Tó”Ô8YT«Ó…rœª\X@Ù^•nÓ€Ê$ꀊPÈ1Ì$÷f‡»™ÆKbþ³*K>F†–9Õ¸ìžÙå½¢7}sA*CÑÄ4rød +ÍhA¿òxzA’øt}G¥›5ô¡w3ÐÈ…t-W´)UíyÀ€è+¶ôV|ÚI¤ œº€ks@·G@sÕ2 é®"WãBrø8°q_Ñt­9‰Mâ \ì÷_è½”~"‘íéþ鑇XI"òIøÐt˜€fú®ãì§ÍšêdAŒ7‹ ¶x×AoôA¼±AÜIèPİoâÊÍñÙ˜q>Zñ¶#€87Ü‚x¦J‚8B7@Ìš)Š˜—°H…5ÌÉnwDâçÀÑ:Ç"Nµ‚|†*d +}è'ðŸC:ô|ëˆcï +ˆbµ?¿*5üáùV¦€)í¯·¸ÌÝñs¤pÀ¸R0z¬˜îÊLu ÿ«¤ƒQÃ0Qù~t“Éݸ{a‹,dޱ©ÛEŠ‹GšçÍ—\í°8ÇWúk~oè«þœi,Ê_« ‡©½¡ç¼YîÃ×ä¼ µvø©BBi¤AŠ=4@ŠlMA +Dw€Ý,qÀûAMáò °­È)‘?«4žÚ£GƒÉb3ÆÏFXÿ£ç …Ú_íÞ¯iÇa9‡",1z¾ÆsP]",˜Ú¬_½Þ¯yµ¡Ã*” + óØ·ÂÔÞSn2˵ 2“Ædjxdr‡!HßÅ%H»Éw ÙŠŸuD‚W?" 1ûÙ‡yz½atˆ’„®3„íî¿åÿ‘äû§Âá‹ãÂÔÞ tïGVïªßy-¯.\ò7çqÏL[ ç'5sü+ÈÍ”à!Ùðáý0ûôÃ>íŃOo¾ßÞ•"×u²½ÆÄnâÂÈÝÌY™ÂQ#Î¥Cu·¨îÜL»¶id}Øæ:5ßµWÙ•Ù]*1màjÉÑhñGÁ£ò DîÈs\kêNŒvSÖˆt¦@iÃ㥪‘½Ø«°Ämèð†¯â +óP?ìÓöötíÓóä%/>,Ê Uvç¦8c3|îƒ)ÇZˆ,µ€Dw+)Šž]-a]æN®tuÚ/ún÷‘ÈËÚ5Þ‘—ˆ ”OÞàHÙÃ1¡+©«=¤cN+ß|N5ËHKEÌÔx†ÏšÒ!ìÜ™2ÝïÜ”¹  )u»­Buì zJ˜‡~a“¥B–ëóÆ5—³c¦ž¶˜¹^4bÆ^ÏjRì4Еä^ÐÊW]R«élæpbð»™á–h+l¼×íîRŽ­[›é®?8L™ýÀ“vp›x“ñ{’õÕ¨¨·IáaœÀ!­o6÷¬F·±Ó?¶Æø!;ì”Ñþ^žÝÐ@ é`3ådƒB­&/2ÞÃj­rÌ=Þ§ÌÆ}AybSf›‹KÇa3=‘Ò霨ä©"¤ÿ6ž5Þ¬¡-™ƒîØiE‡c|…ò#·GI#rG¯u®G9k;ÕVƒQftêe÷ÝO=©DOªŒ*½ÂL»þ¼‡„Åc;ZŸ®†õB#5|§YøÂ°.t'C5̹íìlÔ!ÛvØL¿±€"o¡¼al¾FìùÝ?N<´ŸòÑž§øt/ûô]_÷Ù0U¶ó°ßÅŽÖ$«í÷2Öj›Ýò°l{Ó\>8-üDŸ› 5IŸŠ24Ö3TiôËÍh#öÖ’a}ÚqžŽý©È@àúA6R0§ÜàÃC óPßóD»m¶ò(-ÊL†r2ÛÈê4ÿZiàÿ K¶žMòtóë ¸5úÙ諾S°H}TLDë̳ThejéÈŒ«J}·š‹æ”ŠÒÕÖ•b,õæ»w{ÆkîqÌ#a}°@«âVñKø&³ÀîLÞ®Rn5ZN·Whv$z¨uæÖakÇ™”¯ %¥Å­By´kB™V=“ªR-;­æÐ²ZQZY½R$Ê6÷X5\Në ·“Oes¤ú¡s›Ü2rFÈ’3©fJ¸¯Ö‹îŒž;%kU$ßõHamiýÂÚ¶wPÎçPÂ|èÐ%ïh5¢Ú$~:Ì­ø¶ˆs7ƒp…EÊæÃÃf4%Ÿ€ÒJA™ÊÈÁâJÍ”^+áÞ¼Ut¥M¯ØÉFEòv kÈ…~™Ò ±wnžÕ¸M>‰J—Üq~Šä„vŽÉ¥I·–õ6…IVÜ·¡¥:|ų96'g¥ñnJØÝÝ»T)«ž~"!\Û6Ùú­ØÉb—ÂZ>œ ±ÇêòaŸî´×û#õtTa¢Pª±|2ÒNæŽö0&Ã6&…\—ËYϵëÙe´2þfÕÏ(ƒ«)2´š~+ó´&Ìi.ý|¥Þד2´‘ª5%U+ñ—T­|¯§jÜ\…²üðË[Mºš¯¥Y*¨ÇŠFŠî¹~Ïï‹sN0Û¬7÷VÙá,3þj·Ë(½ãñ‹}ú¸fŠñØJ1’ÖÆ9,ͱ™zŸ›ñ”9鳩ZVȦß,³Ž²k°Íâ;ÈëdñWVJºo%;Õó>I¡UÀ¬ç×4Óo»L¿S´™~W‰1ýޤǬWW±óXçëxû‘åžÃ9U\¶ ?f^~vš¯Óω»Nƒfqž2O¨•ª¥OVèÜ^.sÖ™Þ–¬#£(ñ=Û,$O,þÈ]“®Æ=’®öNR ‹2kK$™~Ýb˜8¶Ï&v.à£N®“HR‚?n<+. á<(Íxx<”K1ïœ.k1ÏËcÞ¥“§3x¯6_µZú¦¤Ëun@ÙÁ;;µÔKZ7ü]ªÞ­X8u’Ý„n0›r]cÖï’Îôk´ÎÄQÚ„’q»yf‘µò«D’¨î`ü¸ªãB¯{‰§câ#æíl$&d,Çb,íŸóE(V‡V$T¢‹¹þ‚zÜÞ7êqwJÓª-JÓ36¥]’z¼ãåf—6*•™Qd‹Ë;ÿáC—Ôê9Uwœmr¡Ì`aY‰±YÒâ§[D‰‹Íë,ž^. ˆ¶»Ðª“äž +E6iÿÁÛ´¢É.­ö†.¦·Gêq¹^)͆ë®Ñ )€««Nšî•#kÝ|ÊF#Ñw ç„Î\*΢1!w|ƒÃŽMÔ÷Çj™«(€) Î[4+S×{:"áG–Ð;kfpß; VªèñÌ,2‹åEU¢ïôd:·Æ”.1U™zj)™ÒÓ$*6£À×H+³ÈÚ!µ€ÒÞ’(ÏŸˆyʾÍ÷#¢V6Å(E—C¢í2ãY”:¡;|#ê(¾éårø¦êsh|“;ÃÍ SÍËXGåydÉ”î“k˜_œ¤·Ée‚Oév<³Ohô]\ÈtiÛ›P7&PɺéCé{Cw1Ÿ¹S¢Urd"úZ–jti­h·úp£Ý~á¥ã=ßì;¹Çø@íñDûÚÃTe†7§6ÞN1ŒmFsPÜÆ–xcË ¤:½íò%¸Ø¥Ãj_¡_ÎO-ô¡¸ñI­eÆòÏëŒzÙC‰Šh$OÖßžXäÜ1AŒ¥qtÅ +|´»êðQºÊñøáD(}8’ŽvÇž#;ìÀ¦.Øø%!kãkfƒ«'zît’ d4s˜mx‹@¹d™nv9–rüîþª”ÎB¶H2dhí§l3ë%{ÝÑ6‘J-ç±ë­bÒªx˜QU¦:!i„'Úqg]•0É‚^Á%â¶WãC$= +5ÂÆçã£É Æžj*ÉFÏ¢³‚ò>¡“já‰f‰@®Ž—Fäq¹ŽØ•¹{%7¢J—g¤œ³àuD[PŽá›/ Q}pU¤˜. Û 2óˆ`¯žcDœÔ Ÿa%>ÂØÇsˆž—(Nº¨ˆféh0 ‘ë5§CÁÉ´lîBãáGÔe‰”Eï \ý~uªÊÕH .öržHêÒHÚ5BËÏr£H¥ò¼ñ"ÒïüùÉ’Mÿ”82ÉuÌωA~Ú‡[Žx™ÄáÙ† ãëq´×RÆøvÕ‡¬ÖÆØÁ‰1~¡ç':B³]À#òå)FùÓ$¢ÞŸ³HÙ[àÝáVÀL+gP½xo€ØÅ”§W§<€ò‚¨óù j—ˆ–ìNø"úH©-ÜØÜÄßFÓÕÃö™ì=§DÊ¥Ö±Â~à„V9éàC9xÍ”]ÝÖ|4V2|8éŒq&Ëw +1ÞIP/IAJ#…ËpØ’&¿œ€Zj#Ä»¹%éåñ(ÝCy”ãG³s(·'@1= P¼ÙŸ…@ÎaQ†bo³Lf•¤Š‡ÙðÌ(cãÙ÷mEk¥Šýá–ãZ[&Ú—Ø$ÚÛE|G(<ÎLúcŒ÷sCÔAÎì3>FŠ”l9hYçÚÞKPžÁ BΆ"l ì<€Šé@u‡¨‘ª@YÁýÍ® ÐiÃô™èÐÛšò -9V1ÏhÝÆvj½{Xà$¦H§ͱu‡B¶ç`áA¸†LVLŠÆæ;ʲ5H¹ãFh®˜!E‘GÀàÿç*Œ&zxJÓ3(œEXŒ9î–Œù_lé 0¶]X*"†>tJ_ŒjÁ£¥s%€EÞ€úwx\ûk:ç­áUµ6Ì¢aA–øïbÅÚ~E™FÆ&ù ‡®~´_'C-`ÂDcéžÄ£9§9Ž<Åhp†Ž€- »ð+PrXS& åÖCñ×Û1'(½À|Ø­œ²mìP‚ÿÅáw9.!ñRªÌ¨*“*w€ ꥬ²Ç‚ Tªéâ3:“Ÿ–¹v[®¨Ú$ïÍáÙ ¨to†ï1rŠJ¾„¥Wë šG1ò|r<°®è2QÄá¦*ÀiÇxå±ø„YÜh„Yª¸!_¡xàf–†bänÑm(–p¹¸¸|ä×ÞZè/Ïß¡#áNš¥ÖÇH˜bþá—sûÍšB{¥9Ñ9®Œh|3ÔB+«X¦›!÷ìQŽIILm±šÄd€‹¤\>,€¿˜ˆ²íÍg*òìJ<¡4p(‹äge m6Q1ªAqO¡AÜëS Z+·@4Ÿ°A”IÕ;j½°y2w#·Ì£~~ñ‘ÏÖyË,Úr_§ôˆáø§«À è.ü·çÀLdXäôÃøµ]Ý«@ × ò ƒÖ ›åû’…¬×¡Dy(Š ˆ1sDË‹¢¼è"=]‚žFìFas†kÁÍâ0ËüÃ2ÇØÍ– G¥%Χ__Üòòĉ ó˜ ¢b~aj,¾˜Ñÿäún€ä`÷‘bËN„Îís–†rãyÎu¡82 ½ì +ëíÖ0H¹4ä(¹d €L•…ä*ŸUYüAG¦M/¬ƒ£Ýí§U®žW`çÝ0h{~ùg¬Àjýô¡áµå3ùoÆo%H÷'¥†; %· è))z04]]˜`€N²á iLuÞÍ8 ¦êð£ù¤µÆè×ãýü(ÈÂø—3&-õ¢JÐ’®»P}0…†¯»y~âÅÊA¦oØLh²ön_J<„–fèùª^Äåˆ7Vob:ˆ»O^ ÎŽ öŽÖAÌ;j f©>ˆ {ik–ÆÌ‘Æcž‰‡íSŽÑºvǦ­èí#kûƒ-ÕVèC‡¹Ç¡¯¸Ï9Ç-6ñYg"°Y¿¾µ*Ó0µ·tr³¨í£šwÀq +0œV å¹.Abg£ 1p Á§§‰\¾Ç„ÕÁÃÂàØµo!ˆq®)$Eÿɇþb©†ôu&>8¾z¾¡‘ùõr¡ÍvøêõŠxPµ×E@ª‹1,ö »žY€¤C¯“Í?YÀ2n$Ÿ½y¬Rî¥HZwƒTr4ò¾=©O£:ïãñ?R{?Òž¿Ú½_ K„$_篵‚2Y½²^mÞ ™01'¯2PÀpMìÒ' ä3ùÈ]OÈ9ÂäZIäÿÁ§õ‘ÛŠo¢âeªÂ™œ{&ÈÁŽ&å\£¹Å-¸q»‘CbÈh’‰%Êìº^œ¤›£ê& Ô6’»G§…Â$¥ñ%¦b/Ëëþò]iʧl ÌýA}v|9Í,\d¶Ž™$Ûéײ^sÛ2àÖ÷‡*.$ÆYVr7ø#gib¿çž¥ètGM­Ý½¦”@žù¾×ŽB6jôgE7µ‰mùíͼŒñèÂON K¡¬×qqµÜ,Íý{Wß^2‡rý&=? |òq‰ë¹ /®Ëuµ{«_[æýö¯Ï‚ß%ÿ¸àêø±ûÕƒÍüSì~uà`3ÿ»_8ø¿þ–A÷3ƒM|ë û™ÀÁf¾uÐýLà`3á'¼NÄ£‘âöG¦ãC=§- .…}´§6#„[ɦ(%šAø¦±Yw½Š_ãpÕÁ‡ñäpR©°ë|’OãOÄÉÔŒó%«×ÄG 3ëN`ÃùaA/íXúÀ‘Þ ݧ«VÉlÕ^€—y§¾nNÚégëHGØÎ¯v;üJèÍ3³y×ë°¤qäH®2ű‡Eãž \ç8Y&$tŠžÚÁÈ’+R¾­¨J™]Ÿ–2·/}Ô0cCŒkA¤E»>J-#…ùóûåJ¹YeY‚±V†«}¤gn¨yé´muØÎŽìþµ?vŽÁž¤¬¸=ïÍà~Løäµ[#ëþ»Oî‘åÆ}”ûÚ­°¼ÎÿÏæj‚ pðcþóçŸÝZCQq3±Ãˆ[Gc)æI´¯H‚l&WìCú)×Ìx¾”:ÁñŠcÌÁ¾f“Û—ØH‘VSJ7›ÙeÆ"‰{ö¹¹Çòùц Fî¸x¸m8•®x\‡cƒõbeŽ y8‚½^½ÔYh 96Ý7χn¤ÍˆÅT§Ÿ‹5»îý5í£ú~5¨ÔÌG0ã£ëªQáSƒ /Œ’QG\Ÿý ÍkbZ/ªYúÊÝæt5Ûb‚Å‚&P¢ï¶×¬Ù¹ÝzÖ\[kN¤ªîáÐFò²’r½~²¹J2ÈtÝ?WÛèûvu{Ãî–Ö8<¨¡tÊî*Ë`„ß½}]á¹ö5а™0Ö0–´‡šCr/¾†\ö÷> iWÂXíbâ‰]goWþ%È€ho|šÄ—í …ø¯Zá­3”#e.>œ‘Ž€á9È[ +†6ÇööÏAÊvFÍÇ,wŸàÁÐ.ÂH›Bi¸¼ï¸N§DW­ÖnÐÈïÆÇ6£wн¨j°ão'Dã«é—š9ê÷Y~“÷•ÒüìÉ‘jû$Íý¤;•vß*°™oÝuëØ•òÎ*Å7;«•Éo\—\,ÙS"6/å##ÛB^+ ¿.îÆ:ÝÁt¦¤½Õó}ÌdnôRº½Îrå,¦Ø(¶¬(s-ÅÕ/ØLø¹mKåªßV;ôLä6ä{í¸™ÍvôÙad£ÍÕÒteõfĦiM£óT³ÌÞWÔ{’Öv?m Õ­DhÇ¥¸ÍwÂ!EÍ¿ +læo[~P¶Q&SÚλ—å¶•9g×ýš`/ò5怳d,XÍ¥º4ÖZÕ×GòV½Xî6+pâI~ݱýÔžL6R;‰»“åÌÅÄ"gñçÞíû$¸ó¿÷Ú¸¶¸^—‹M—é¥W£qÑž—ÖÕ¸ú¡Ù± }g!gíØÚ=g~áé)åiý #Äj--œBð`ë¤ÇílqX,}Gu>ã/µ_-°™ ÕÁò›nA\¬éXÚõl˲í¨·¢'r¨ïɵ¥÷ë£êM„«òèÌruA¬%Î'=ím‰Ã©f¼ZÓù‰fcyd)ØÌ?mþ.Y÷½kv=àØù*ysRódz¬–­%õ=ßìj¾¤à¨’ÑÙÌ”Qú(›õÖzŠùL™âðrÔþПñ/)åÝi:z$­ØÌï°ÚçŒìŠEWswZM¦ì†“µŒDî™P/Ê©5›EN²òdž …ãN›i³LÏ'keb‰£ ® B™ñRª43öûqiô&£òRµ,E¢Ü®v§“ò|®wDÖŒÕGÍ7YZynëu-^¶ÀÌ”ÑüÔ•¨ìÙw§¤ø +/ñÚtì¯k“q1žGZó)ßËðO䤃§!*}vÊD +±#Cþma©÷Ë$PáetÙôKßT.o=>œ¾´‘Vêñ’ÂfÞŒ*JvòúV \ŽÿÜÁX Jëy+ÝíDMïV½ ìý#…AT•…!³žý:Ç §¬DÌ…cy›ƒ&ò=~=“[m̨¨zx"´e•‰27ê½øwqý×}ð‚¨FßëʹÝ*6]$ j¤Q6DMœí×+±ì¡†š .‰«øÕ7¯¦,Ú¼³Ë¦UŠ/'"ë“9­=;à«¶Ý_·|—ø‘×Uð µòð_ ¹çuí"ä´V°÷Óä\°3ǯø°ßQí5n¶ÓiÜè¡K\OL2˜zÆmdvÕˆ2›_2ð«i®ÇžÒü$aß%ÁjíßþvmTí±o,Zõ v½î– Pq÷Èõ‡½ßÏŸíw©€XöÕ'Ív§FèCvŒj¬}³kºõR²»\éõ.ÒÜõÏ“î@;OèúãñkäÒµû~•¯ÍÀ¡0lCÔâvÛ,bî±C¨k^0+u\Ž:eô(®&¥ˆšq§wå^'®²þRÏÓº;LVÀ܉•Û +²yü›„~ÚÿÝü âõt¦ë#)Ö÷«åvËë^‹›U?}€œBrÞóóÝ:Ùï} ®ž¡‡:[@=;à9Ë_Jù5Þ§v¶±—ZG#nÍ¥0ö¢.ÎÕ÷Kè§ýßÍg¦î4®ö;áûYmz=ºQ;Wˆª%: )Q2çÊB?ÙÈ9Fó%¼g×ãüª”ÄQެ䭴hÆÖ“Ð?ML,Š®^ìñµiý"9N¼4wm¬‰ËµafëÁ2ª—©­W}áL.“L©³¸Ñp´w}ov +òCßå£ 4&•èžäjé°b~u9Yiþ\æû–À§(#pçô±\Ô’ÐOû—¿ý«ìµè,{q«/ïâæÈª·:I›Õ&!–ÉF¥åf˜“f9ÏÅÆˆƒ”¯ „Ì:gòãt–ßùÌvÚ˜¨K‰LÆq»1Máphüyªãën£Žî'qöƒ¸ݲ/Ÿ¦Yo­,Þz´+z뤶^mFt9®LX­$£ïâ®vœ¯Ïª”í\-m¦qv¥ö®çLb‡!2uERmNå³Õ§ÍÙÈ£GTÿE²3+ÝôÁ Öy$ +ÙóNï#mM÷ò`1}DŠ&µñMØlUštv³b’:È5¬´”ܪmOúѲ)ŽŒ¶€)3Þ+×ä±_‹NÇe?©OKúW ‚öŸ;üM¶Nƒfvæó¢ì+h—ÜYDd²Ž±ÜÝ\>´œ&ÆãÃÙ-‹êÊ3‰.–ëi³œ}èµ21oRŽÓ#¤äG2Ÿõ¸éX‰Gwò2•Osñg$8š?¾l\õß6¯³Évn`è†b#»­^´LVÏ*O¹ÛQ@g<•-`ÙÆd§wµ>ŒÉ㈠Mâsd_+ý¢4.¢Ô‡;ùiBŠ¿FÖëµMn(7?^¸p§1´«yh'HçQÀ}›’Ñõ½1×3â´y¨hÒ’ÌX“¾³ÒÅd¥ éúcÊKª#ᚌ‹µÚd¤Í¢üˆ+¡ÂÐÔOÿCBòîÊjwëá«qnË/3D˜ƒÝ¤  …<%I5"uÇrI¢Î«ÁdÓ»N'›aˆ£§<Òr,°Tyéþ˜Žo)S¥‘0zæ:∛å„`)~hžÑŸ—ðhàç2=ApwÚK vë¾Îj“‘¶eSÑúBð&=D˜(|V˜$Õ¦åŸo¤ãRÙŒtIë*ñQöÁÐjÃ:‘ ÑU|8˜WA¨~þ´,fŒBÌ#TŸWŸ¯ÜS¦½”èms5¾\ê}3Ž$3«QíÊ>G(“¥®´Ž÷×­>ÓMÒÉÞp‡¦ºG|Ÿêòî2ÝMqz¦ãi¦s¾LsÉtü-›ù†½žÉÇRz&ŸÔë™óÝ›ÒÍA— tÒrYb;[ˆ}l=¿ì×yîy¸:ʵáÙƒ²ËëQ` Yïxî`³èѪ<÷+ÒµN¦uϦµùf½¡?¹ÖºÿŒÏqü,ê7p‹ÂŸEýÎ`%ý³¨ß´ŸFýÎ`üÞÞ9Ã!ð[{ÿÛ‚ökB¬¤oïÿÏ£ù…?¨`üÞÞ9Ã!ð[{ÿ'‡Àw…4¿·÷ÿëh~õé4¿³÷£ÏgR/ù܉‡¨®‹-q¢²‡5²šOçôŹ-·¾SÜ6.¶¶ðÏÖÛ¬ê<~´èåhÚâüd֯㳉5Z+Œ‘Î?ôî”ð¿J`BþuË7È“Å7Ò“RuY!•`H³Y&rêN)à„!ufú6¼õ´áj–Sý‹eJý³…̨³ÙЗ'ˆgc1l]ŒÖ£r3ZÇ!жñûM=°†÷]d?üuËÿA5aH³‚†~¢–ÎuM¯çÓ[ââÌN÷ǧ×ËûW«& WÓS—ÞßïFåŸÚv€½Tv5¹Ìν¡÷3òd™=äLÆ!ç©p÷°ˆDµf¨e‘‘"Ëy~N\>ìÞJ£z·¬öãnÎãߌàjthýjÃÖUïi™Ðæ¨|kñ˜e‘ª§ÈÍÔéoLÕÿaó¿Ê¨ˆZéÜŠýöîÕ´€Sm~ršäÜÃQú‡×ünêåÇÃl¡ý»±$¢wƒ¢çw½ÏÔïÚŽcß3Má³l¿Ëhì,—;Ã÷K`týñåq:Zâ“-&!ê³Õ…¨-DU"Un¸lë Qטûáôz½¼Þ·½õŸµBŸzk½´Ý£´$UÀgÞ ÒGåǨ|Ÿš”žV­õágäqz,'Ó3 +ÏÏ: ©ÔÛíýŽ8·ËD߀QŸåEÆÃóBP3Óõ!ŠlãV\÷ ª švÃåÄd1¹WæóÂ{àÙïý óeõí~ƒ¨gù,ÔÝc'#[\¸¹épfåðá¡o·:ÙÅoŠjUŽr䵨JíbÌ·SÉþbŸnŒqþ93GjeæŒÔî~ùßúiÿµÃ=oU÷üF?AèWõV"‡«½¢µŸËáâPZ&‡ƒÞ"ŸžiV´"oôE^50ﳂ¶<ÉÆÞJ ¿úi±ôÑ +ìSýOö©*fÃ×µ« ¹kþŒøFéÁ¸©ùîòÞ¹[©²g|$•XùÕv;ímÞ9ÈãÈ~QÀJOc0­Ôiò6œ훦hÇçR6-}%¹ÆÝžô›¼!&#ÈLHÝÍÀ‡æ³ïæt¬Ô’“ÑCyŠ£òs#ÍŠ.k‘éOɾ,VHoÝ”ƒDå‹›CâW¼FÎ6”[PMzáùj¾8Î+¼Þ•­ôX–ÑúÀœ6Õº3Yû+]é U¦o90&§cßëˆcEª‰£Ç-)ޏø4kkJ´?¾|—lìŒîÞÏMït¢›èΚÕKó5¨…Iz'×ËvzÚŠšÒ²õ +ÜA©ó&‰’hSÜ'UU8eÊ2I<$>ǯ';9 ÜIqôŒ×„7N†î$ä=þ[åÄü?›7nÙÛh£ÞØÎÅçq¡"\LÏfÚ59ÚÙëðL4~‰‡É0-Žw“º8#q¯|$wÊBÚNIüG¤ñ­}œ„žÁÉæY™ž!Èð䇑„Q]EùŸ‘u?× +endstream endobj 81 0 obj<>stream +z®ûïWŽ“ Ä„!¬g´ìÎü’8I zümUrùb3ÿ?Äj|üÈ ‹£×ƒ,ª)¿2l 7ÄfÊ õÊUàõ,^í¯²ÑZ¿»½UûôðTëmñe ›ÆWÍümË7Èò¸¼ûKx­˜[/:S¾˜˜ˆ£w\ÐöÈöëÒp‘aWÃV#sPk/˜rôãcí%«i¼+(h´ã÷DGêÌÉN̨¶oMcm%ߥۅ{+Þz𥔠+ó]›ùÛ77”o6ÁƒìÌ^ KIÀ#¨ å̸>•ÃŽÿäû;{ õRÒ}Þ‘Þ²­6cÛ–ÁùÇVd`žšoÝÄÊKcîq×FK*‹ÂOÞêË=œõv[Ñêý3òL¦[(›ã“¹å'Ó`ƒÛ«—ú%v73™Yöç[Þ­ÎæâT#¶‹ôœðæ’®çÙkùèÈwïÊÎÁ¾›ý½­¢é=Û'v©=Ú%=[ϸZpað°€¼¹}•`}ó×-ÿ-ÿ„ú œ™ò³¨ß 9šDýÎÀøYÔoà„ÍüæÞÿÞ!ð3!…ÍüæÞÿËÑü¾Þ9ƒf~oÁJú÷öþw Ÿi0~oï9HYï?“Ü>@…ó<¦‘X^0+ùÞÍúTfoÙõu‡¨}b³HߨË\:-ÎŽ¿-ÂÁ?ØRˆýÚÞ.íãëUGK_žN–.î=«Bï?Í´ÖÝhQ%ï"vaH¹ÍᙌsÈBÎM@ÎhÆÝ³j0³q“«­¶³¯Ðî½ÌsË…ç(ÛêÙ~,ü“­¾%xKî-£ø½ŒßÃO[Ú£Wse!ç+ò´u{ø°¬²ç[h®s5ñÓ%|0¦½_ôÕ1Ó{\9¢ò%û>Ëøå³|×Þ;¹ Žëˆ8BzÚ‡C DÝæÿ@ݤ— t1øðPÅ7½œËq6HíÅÞÝû´ê)ïn6o͛ឞ7}=Üô˜kLDgÙlÛ—ïOò4}]vÛi5oó´ðóûåU»À![I„œKÈ}~rÆýÀ@.&$¬>¦Ë±+[ |¤öF÷xºoO=^¿´$H¡3‰Ý!ò£Y¸MMà%û®l¤?Z~ƒ«µØüTºQƒÞß!ݨ¹E/ðP¥Å¤Ìºa¾¬Sfðg¯÷6èƒjÑÆŒøÐ¡Ó+?³:­Up_j&œãÄ-÷7“¶W[þ @ÄñÎ.[ †sÍAõ7©e¢fw\>Á¨ò™Å¼PË@ÔV6b#/j.:9Üèެʳ˥ŒÈzÿÿ´i»¢8»¶‹ó,Îó<3 ‚ˆÈ ÈŒ8Dÿÿ¬ªîݽ«ë]õô~¾\,bÕÁéÉ•;‘•d-ÃdØç}»Ü}Ú0–½iµÎ‰LÈ?N¾*ßQµ{„Zî|ç¼–^¦˜¸TÏåÍi®‘“ÔVݪQ¾ìqu9ä¾2Gjþ˜Ë·2‡²?OîõG+ø¿eÉÊÇë¶ÐI¿èRÀø”Ý[®Tô¯J”¥ú×’ÿ‰J7ºðMÕÓ‚{šbÓF¾{¨lŠT™Ôð¤p Ö—­]"ÚÆ!y¨ñÈC}rûr*`'VÓþx§Ñe#Ù§K?r?o¤gÏ\’®–.ÿ¡@Drº ⬶á³Ý7ÁBJS\_Š‘79ÖÜA›Pƒ+{Tîø>—Å8ø¬åÿ,çwîFÙ“ÅdµÛwût›°eb—9kDÈ="œÏ<‚Õ+ÖŸYª-ùµü@½Ã¿µ§‹Kòi¾k±ÂÙJLJçJ‡À4ψ'©T¶Ž¹çú3…÷Y ßÄ“!×G{›N,ÎÛbL>EkÍE"ä”þ8Ð"Þ/H*¾[.¾_·œß’¥úãR²+PyTÎ|¦ö”`qM>­þ#“Ò‹a¶;Þ\w\š‹óGPó…{´êÜÝ%z¡Î亵´©ïkÍ;v÷ÉlÌ9LÜMl4ålÄ%­ÿP "¿ÕL rzmȹš(AÎQwÐËÅ[¿È«’ºK7†Ç3PÜ0ä}àã“»þgÕ9£5÷ò¶H§ßœ7™<- g°we±ÑöUNÏÉj´ô7‰òÓ~Rü3Õô¢VbÈ;„¨‡•rÍLgÓ~ngçÖKHóÝ­{¨Kbϼº"ÏÉ¥3' ji쬖R¶Žiä|Ëëü±àü +QW,L”Aed΢iaµÿ}‰¾Mt|6«Å³±·íQÛÌ~%wbd{Šl^K 8x|Ø¢Öxì¾Yc1Xc“jk*ÛÌ: +Ú¼ÖhƼnþC1§${·á¤mÝÁ(‰Ù:øûµËnFÖ˜ +Cdw¯DC!^û†Ã~w:–6¬2ºL +•Íú5¨lŠÛVmY±ê™^?ižõ)(oižþ•n.·èªõòÉëüÕ?0ŒRÕ¿äk~EyͫîÞ|jn¬!1ž_7ØÌw¨nNô¹,xkBÙ+zÛ¿-Ùéû¾l=oф䂯k¯E÷rˆÍÁ„ŽÍ)"1ìçÉy¬?IÏŽA;3oªÙÿPtäìD/•ïÓb=™œíŒîÒ£o§@œÎ‰.¦ç–K´ä]©5¥Mø%7? ‹¾Õ9ÎGÂ[ž®>K§}ªîsš fÖDgfîd]êz“‚Ýò'¥ucÙRôZ£~þñŠÖJ÷ÍcY<¸ÅmŒo›-“£[õç¤7‚"Œh‚|3Ý/ÚA Œ Y  ÍÒ'­R|ª+¿µvÞÛJï[Êvš6•†jE¹êJƒ4lùúæ Œ#³cÜ“ÙÒÆ—Ù$u“™»N]±{ÿ}ù“óÓ‡þ—¨_àŒ,Õ‹úΙò/Q¿Àôßæÿ°ö?œÑˆà¿[ûΨ üwkÿWAû?¬ýgôLûïÖþ?|HŸþ@UK ¬¾v»™µš·™#¡„†¯Í£ViÅaHí8äôDÈYAN,g) '°ä°&X2{Ä?M€Ýl>¨¾Ü²ÇÜR6÷Ó½·|JƒÓýúû6 CÊ¢³­CN7uÕÞâd¶:|vof}#Sâ.:¢VÙd •²³žZÏè®ÂÄG¶Òì$ åÞ€”oÆ–Û›¥sºÛu(J78݉nxâ³Ý‡40ï·c’¢½D–ê'_H™‚!eW +@&¬}çÅ>óõÝ?N“÷ôs¬Šj¸î´ +“ÒU:Y²†”¨gÚ‘oå·-ï²}zlfväHCá+Þ©—ͧî«QzwQ¬üÃ*•µ¿*Ÿ,Õ'‘²UBeˆj¨>ã Šë¾évôs>BõͽêšZ‡!liOižÌ¥ÞÎéPöiß8§Ÿw%Àg*â°º†Òa”rVå”#”^úå÷år¢Î‡s÷hX”¨ì¯ŠÛœug êòšÝhøËäU‰kj#Yö6ãò=¾ð#Ý=í Ü9õ“uG:€«+ ‡ç@Š…—Ç1©­n‡U;åÁ ž¬}µHJd ýµäå;ê…øŽŠ¤S»{XÝüÕh9­–¾Š¥ÖQu8Õ;ÆUµQ*{Q¶tdBF Ó‘ƒ¸§þw%‘HFéÜŠ¥G‡ÇÉTzV“x ”³¢Í{·©Á…™æù·$²T£#¤,ü@eý5Î~G]ï³Ö=´ô¼ñXjDÏÙ©^”1y½§¥ÝKÝ£léà$¨Ï rÐýo‰Ò“(;ÕAŠ:P{ûµ÷x?1µ8ÖËé»Gý©ü¾üàDOß9‘, io +9·ûÌgBòÝmèù÷k¡‘7é½SŠ– +®ü¨¦r¯°½}Ë–—Q¢ô%Ê‘^…bV˜¿÷Nuðô­ïpmámìzKcÅòQþ›DCÜŸÿM ev+…Ô)BÔ i/ +©¸O[Ú ®r™FðÎVõkYY ÇeG~ÌËàô*ˆŸ.Glÿ¾e»ˆÚP‰éÞC(ß}ð§;$MgG)AeN üôûòé@]Ë?P¥°ôu¾¸ûzÕÌX~·ªú¯©æ”^uQ8)!Ó€¨|õy êûÛŽ³ûì!æ—§`-û ¾¹Ý‚]ysÙÑD¸DÎíI¥ÎL:·T¶ª1;ý¾üà$à_’CÚÉFœ°öõž™²ä ÚhF_¹ˆ:~‘ª¯VJôlyÏ7ÀiÔ¸%¥Uì^>q(…~òcó²oP{F¯9¼æ6ÇtÏ´QªÈôZÉK?“ÈRý§Ï>) cP‰±Q;xÀvRÌ}—m^}p’ÖC—õuº0Ò)EhµÉä¨Üú+[’È)Ö²GÕ¥¢ Ï£mR|˜Ÿ¼Y‰kÞ™l¼£/5ƧKãIYJþLY|I¥ðjòôû«“ÏTÄ7ÔFuZ`ï»jFU vg‚uýÔœ‘e×jWâ ¶Ê’%?ßÒS’×HV,N2©ývz}îĪêmWs¡càB‘o¤§tmÒ›W¢G'IJRôUú}ˆeÒ<9¯/Òi†´×ƒ\;³¹¼\0r«y䪟ñÎj­yû^eW%딬fCÑXnb©ã€{\'£âÈ™r•h¹ýY!v½ŠCìªc`żI°Cp&ظ'ÿ£|,Õø R6&jÔd0¤X¹‡öú,®•·}sÝŒ¡ÉRC/í¹æ7뻓4Î*¢ñœºäþ~ò·Y2؈G´ízœ¢”Nœi{™Ä ï2Þ/V¼wÎï<õ÷"VaHë‡Ó·&ð*dWfî·éš0Ûl&/ŠÓEtÓ˜å!'ÅË/i\ö.\¹þ•µØôZT¢¼N1ZÏáû±ÃFÓ%B«%*Éhì‰ ŸÞù÷R6 ê@‚M¶‡œ§2ó`rº{…ÆÃõ7˜u±¼Ò{;‘Ë!^.îZ “KnßZwU¾Û­|’;µ­1[?yŸ”N¼`·ŸLLTNÏy4MG4-x:š^Þ/¿– ù¿‹!e¢.ˆÚˆçbV™g½S°ÃSrqõ+÷ûLm-p,PTMh”ò ž/\NxzËÛ:£q™¶Íý¼N‚k•¶ß²9Çqv‹NŸÃ-šÖPn³Ì‡MîzÖ~_ brRÊTV©Ü§ ÄÛ'½Zƒèk]?\N²±ò÷áú‚p‡Ý|²“sr—DW{VIÑÊö’pÄȘÜËëì¶Z4>¨ÜÉ(“DåK¡é'±ÝhËmòy)Úbâsü-aQµ D=² Bñ[¢v"­” 0µ?º J›^¸Q£aã1ˆÞ7gÂ_3«\ŠaòLJø–ÜI…M.Êëd¢M;£lÎÒ÷tÌdáB¢3L¢6šËo7KáÌ}A¢oó×PqQˆú´ âÒ¶ïÛ¯A·¤uw)숴æ'5q‰1úØbóS•všûmßtŒ&f:Cy4É’W ‰ò:-šèÇÏ6¦tŽõ<‰*@¡Ì£7gÄÛþ¾Üâ¢ñ¤‰{z ð¼%øŸ™C£$•Ï%?ºLW zŠíè:OÛT+±N;°¨»Ã¶Oì±Îï vjq#,EÌÆèܯ7z16Þ¬N×ñ¦0õ¦kTS¦ëò€Ÿ­‰^|^æÏ“/ˆýX‚ÛýÁNè«ÖôÌÏÉ$ÖåýP÷†Œu{Ï©q% ±¸’ñɰáãÉ]'Zæƒe–é,šoi¹M);˯ñQ½°r¹XqUsíÒ2X*åeó–· Š,¸Ôªºèì'µùþÝn|U¢¼Î?N¬QŠõí= hS„æi »úûcy–a¤Ü¦ø]0!’ý Žå<šC‹Ó¡ºvŒ×eµííìeÛBìÿ|ºóWÝðçC” æñÎ&‹YÔ‡ž%߃ÇT9vÁtÞª€iÆÎ¿'g¢œü}¹,ÆYÛ(%ç@N±³¢Ð—:2‹Ç?¾õ$ô +‘.$†¨Ù¯6ÕÆZµ®ííb ï·ód¥ÆÎfÃÄ~ª±8Í9Úib,ŽÊ¤xÄÕ±ÕšicÌèc„è^Fn¶nH±äŒj£Jð§ÀËü­äEÇ;]ß-Kàh4ËZÃ$ ':‘>¤c¨µ°ª›š­M—{מÎOda6Õ»ëÙÄ,Ô¢õžcûqCÇÕšAŒè1CŽI†^y|7d«K~ØÒÇÂྋ>Ñ•]¹«ôA·uþ-—ùåã| ×ɵçݱ³3"-ˆ¤\˜ë€h¾—ý§”™§Õrqbáûʘ*L[£æþÝî‚`0Ø+ÜhÐï1Ó¾¸]Îû£ærÕ[ãMï4ëF[èÁãŒêMÀ`ÛKÆ\WmŒ¿/ <¯Õ@yŸâAy±ŽƒÒ[œƒÒÆ4î\‰6hº&Ž)ĵ¦Í¡u›SØe¤Ýy]KÑò¹ØŠŸ5$#^Tgµ¸¨DØ1UâT3Õ*’¶ÔÊ3á¨õí*^ÿæ)^íyU¼|â®x1ä%3¶õøS¢!î_K~&¿Fýgä§ý[Ô/ÈÇ„ü—¨_àŒ¬¡‹úNx™ÿrí­ üß„4jÿÝÚe¢Sÿ45¡.bu?ƒ¨º~¬zòš²ˆ‹wjC‹«.ÑK‚ºpzn¿R5«•55¤«[ªC¯/*ïCÄi.âLXŠ·lÅ[Î@ñê‰û§ äs@¾–‚ç©»_K>¨3Å2¹Žrî´%†”áò‰@6âe·’Nôáȩ^_³ü;orUEC¬—¥ºQTÉÕž‹â(›­Ð}ÃQèœá)õ£vUêã­qJ±YÌÿ™|R{ÿá3PæG Pv²êü Q£Ú?ú—;c•â쿊n¥“î›Â6³2ÒWbw.¾ËªVIfmÕBZkLMÅß!ÑÀC¡ÀThÒ°”úûèÈ× çË×–BJ#òÍ7)6½ûâìJX¿% ¬,šÎoSŒjí¡:õVŠJ.^t¼ò»k +br©kÒ„ÕðõCÑ*¥¬¥RÝVk+ÌVüSÍV{Ë’¯oÁ–¯GÆ•ÙÈ̹Ÿ¸×ì½(h¢R§Ã*Õ6K"TÒG†t¿‚!íë°ö R¶X‡œý,älßÚæ€óÈLY²=F÷áI«ŒË¶JÍ|G Óof¿.´o>¿ÜNŽ]¹e/ÃÓ}Ž¿¤v alæbÕJ¾¯ÿ£ÀËü¬”m¬ùUE#Tuþµ‰¼…,}¶ÌÁÌô¥ÔÞj¸JªWJ™j½ë»J°ÂœÈé·å]MˆšÀ7ŸŸŸ—¼_íÂXb—PœÇæÞ!¯ÆÍ½½=yO&Õß’oœHªüóÓ:D Bóή›uŸÍ9žôl˜&zž­Rî‡b”ˆ~Që|ÜW˜é~súÛoæcò;ðcte€˜‘ª®p!BkOŒv:OãŸõžK#§ßP¾o[µÀÂÖJ¼¿s¾SìCN§qüx¢f«18ȸT£´È>ªÇ¾'¢·V;_æ„{Ú3ËOæ¹' öMœçÛWíéö¾ZÄ ¾Ñík\{˜–wüå-ýZàeþVä¾ ru÷Ö~9÷‚µ¯÷ŸšªfÜ*@T"9Ô ±*¦‹¸ zFAW®v!ï«}´ßT¿K]WŠÓ—¨×yœ`Ê[(WE—§åþ…cÏ9mÇ_o +ûj;Teñ·äg†ôACNÒ\|š@íeÜÃÞúyM±Ã´[õjˆ)–ê}% QÍ~öªŸ«ž•°ÔdžVo'ᙾJ#»9Òh( ¶yãÂnÎÜícZÙ¡#œ˜SŸ92“7e }Ž_•ÿ +k¿Üé÷p¾¾_S×UÊ%ñiÙ7­®®wЕæLÑ3MõÉ¡¦„Ìä*ﳩ×)æÇQ¹ÖÚðÅíp$`ET0˜¹T˜T0¶êq|Ü.Æq›Kv…/HdtýqÒ©v•…­•…¨{g›ÀK{4îûûuºd“®[Ü•ÍwmÓ6reyFòF«MXU¹å_Þ+£˜tš2 qʼn}ý‚UÕ¢&°]¼Çm”J +½¶K'z­”Žtqž?ÐÅ^^ø-ùßœ& ©Šò:Í’x»ÊéKÒC|¾¥[ÛÐæùùGZs½Œ¢2fåªt…jú¸xÊ™}ã©Ü·çëѦË9!¤ð{ˤ*½ŒFºçû‰tiO$Ý•'PÈì?Öþ8ùµ¤¥w2iï`à!ªêúõ±5ü0Lœ@ÜÃ÷©¼Íg¦Í‹Ò—':Ú[RzYmFOh8Wç¸Ü©ágÏÝhš™Ë‰¶w½ì«åì𙦶L0æùH¡-i _•È芎?PìTgtY~ƒø5¯ë1­óg—Ë6¬DÅœêV¾FËbŠæy“T/ysx®›q™…<=}R:1q70ÑŠE™)ØKN𨠹hx9Ë8(GüÞ9~K2vzA{0¤íät|ÈÙ©JÏzº½¤oƒ»øÖ‰nÁ«VÛœÝc¥? gâ%D¡nSÏYõóîȲƶx®‰Ä­c°ÑnÈ S =¢S˜èI»Xœ:«ØpɱÒ=ü)Ñ·ùkÉÏ ?Bmöù|„óh‰Œ*´âÝ{BñÌÙ¯UÑZĸz\ÏFýýõÞZs`w6kŒ2'e6S«ÊŸ5çO…¦…!9‘â&wµõÍâr9£©«¤ “ {ü-ùÌFmXû°ß›`xÍA¥0çž«‡i6å8<è„:ÙXÇ$Íö3B³¶iqCŒí’— õmOÌüè!RÔ)½‹9,GAc!ÇRìÝÓ !1 )ü¸!ØôTÑ…ÍÔ6k±^_c»{}å¸ç檖çÛË-Jt¡:ì-v‹Épþ0†“ù~ƒ®~&ò>•eµ *í1cŸ­T¶¾Tsޤ¸kðÓV~Ê%lMuócšHù¦'&–íôît¬?×½Ÿ r&Zò»d\/±¸ç¥Ô¢;¡3sa?ÉÎÞïv~vd¥Ù¸T­Le¢P›ÎªÎoÉíÐÌ•@åùÙûÁ”O“²Öö÷=HÙóx¹6Î3¤ÖëR=®8Õ~GáPs·Á‘ùi”u¹1}ѯä.óQÌ0g§¶àÌR䯛ÎA0ÍŽ[ádÅçï“B5ù_ülì“×¹Î&G6ŒÉo‰ýÈKŽ%Jw µLçq´­ *C¥ë/ªï«5\ s#+m¢–¶öã€Zòh•šKM’šÍÎÅ-ìĸìÄp´ý¤”ãcëHIcä>“G.1PGTulŒjz×£º=lÊopëV”O^çÿ.6'FÜК.¢I…-çòrVž1TÊÛ‘ïmÏÆ—±wE ­¾ºmǃÅ1ÎÛp8-€õhR›³qU½ÍGôÛXÖý.î°MàØàQÅɯ/éAo4fú¯ÄŒë¸Á¾-±'Ñ-ù·Dó÷ÚAÊïî{þX›GãHI4É7®ðœD6T©f/Ÿ»ãm>K%ŸÓMqS $5b:éÂëß*al4úoEn÷½c¿ŸØâƒž\ÜŒ{Sy6í¥gËeW³MwA°Žv£ 3:k¬Ëþ–H‹çç_[“€ˆ¥ylLÓ˜1~·65ë¸\öŸ1b¦ÍçìG‡ìGßfØy.­èöç÷µ7+<Ÿ] »Ç»9×Ku êšëlê×bÛbm¤·½zy\Û-wﵨ>µê±Ìâ×/ó·P¼Üî ÔxŽ@©) ”Ì! È÷IPìaÖÃM áã–‚iÅéz­9sEXÛb…0ïÂe{“9{UþËƸéGSxFÂrd#Á™ª.Wt]—3¾­OÏ¡§OÅÔí¼0­(ì®_•ŸqF/‚‹úÎhˆûoQ¿À /ó¯Q¿@÷—oó_©ýç§ üÖþõý¥QrŽÔ (•*(*Sê[yë&Âýƒ(éŠßsM­³°ý9‡Y¬U¢Í^]b/ÃÔ„7¤ZY4’£ð¨Ë–)ë³™ªéio¯ŸµÕΆç¯Jtß”Vý7(ù#ˆdac`¦u¼ƒ¨ŒQ_Ø;HlÞ_ÊfÓ¡È÷Ä|êì’øLEr‹çžÇ±{ö«TãcãŸ÷•›¨ðÌZâØUGüª€Òaÿ˜Ylʹ2Œêq +ï©@%A¹×~R†‡ç=ãŸßÙŠã…ýÕK2«K[=ßF¾)\T*£ÚÊvšûÌG8rËÞÜŽry5e=yz¶–9–îH»Gw½É[øª|PA¹º]BÎ ©±†!}«8(/³çgUŠƒðÅ•¢ÔÞ «+nõ€u-ÞÐæ—ä-Iêy‰>h¸Q>«ºJsš³OÒØ•€X‡¼ý²yO^h®xÚñÒSd_eW`‡{C`ã}™ÿ›D©½?)þ(©ÄwÔZ†ÔˆfRj&D +ꓬ—·~sœ(_qI\mÛtmq9U7¤¾¢.{ÍÞ¯Î*]jŸìn$íJb6æV­—Ï7º5}Ç_Ü{xÈ"_æT&ÅàüVm-w_•ýê›]†Q ¢™”¾‰‚²[UžŽ;yÜö>• ´º‡xˆÑèØ·Õiaޤi,ÖÔáŒ52†ê×ø@¡¨cn—I[ìðÁ(Ì4·‘¶êf l¥n´mÖnq´NTX(õ/ (y\òƒ +é0¤¬ý2éo’nËÁØû½s¿¥®³Y7êú%Ôë:×ñ|am•5“B¨«”ªM¢^,îÞ3/[mA™ôÚΜèâ<)RV6)Pæ+ÉCÉp”égvPòìÏ$r9~Rüu~ZCÔ* é‹fQk€tz@L)¼ßcd8~• Ð^5¤PçÖ NVb/øš?ž:ÒÌ/ûæ|öëÔëO‰lÌ6Á„ʉ³HÖã¶@ÖB›'k¦Í‘Tüº#ÉÐc¾* ÈIèP^´ÝoM` Q¯%@vsTvð`;zò6”¶Õ«úЧž—Ôi§7N麹êò1nœUj«°Jj"’L°ÄÔÓ°¡ ß®À•$¼«±‡“<~{>¿ÃÞJK;‚éœÙ¯ +(gdHÇ;°Y.”] H|݃Ê8ö–ЇSÉ,ù•£ÍI;{2Nåck§ ì'"ÛǽÖÇ=“7ªÑmué¶2kƒ½è•eeTºÒ"6¬óìP§y Xï.Yö%ʶûk (WŒôwT² Q÷ûr”Õ;•!¿{6†Wý–¨H‰ÅmqÛ©Y+C¦9+½öŒ{Wµ5›e2ÚÀqmÒøYŽAxjm\¥ÃÊrÎçµþ`åÍ"…Šhª½Ú£‹rXŒ³_•ïœ +¼ƒÊû¡ k]-},Õ°1àÑ7Q@ªšÕ«Nõ@^‘£²X-õ*|,iµØÜà2¢MjE†ñ“ ™Wr“§ìÝÊn_ŽK/'i+«OHëõb~Ød÷“h*b£<æÜW”g·,(Û!DU‡N´–+mŠÐy´Mb”ªþ"Nwz=ËÙJ²-ÆE’d>?U ‚$c¸—M©ÕÌœ&DOḴTµ»Ø¬¦öj|eKÞnéí/â‚mÔ%µA¥¬Äu17ÙÿZ"ÏæPÆß9P¾? ª3q¢4ù$¨fØúUk©5{O´ å€VRù»-RìÛáãϔ͠˜{§ëd9MrÝS•èïF]lÚz}]¬Ë‚4ŠLÈ*ŠN—´Co– òL/ÚŒÂÏ{Äá4ç«sqÁ½ýWV|±r +¶ÒÇÄ‚ÑÌ€›Hž£9i§G©¡NÍó Hy EúLÊ|2Nœ¤ñV)Ö)¹Ä¡Ë¾ð£9Ícé (oÖ¯qå³Ì|Äøæ"t&ù#è çûÍd6ï·øLäáËà´æÓSbÍß|Ž_ÍN Öy +>?%Z{6Àòê'ò »¸ìCÄISÜÂ^*ŸêåWö<Õ‘–G"n£6ßµ¯h>ðÁÍâ«ú$—­º”YtËDa>Èõʳã¸Q›%øj{:}5PˆÅ4­Ûä$ÇI»/¼Ìç†-¬£œîÃ5'«˜Ýf„2Yæ¯âö¦6ù4#/âZŨ®û¦q™ÉìQ£€Ê$Ÿ2WÛêÖY¶¹¢?ÅŽÁ<öÀï³In¦ód9ê§MνTj’§_¹ñ¥Y¨Œ7·Fk\âV£‘Ý=,¿*aDøü¼T—·¸xh½S&5ž‚ˆóÈ„”³/*)óo]?)†”ˆª^`“Õ6k×›)Ç(x7üšú4×dž¨!ÏÄË4ÄZþLË ½|é8u‹þ`éà‰j»ˆ6²IáÊXþEÚY>{­mù¢X Õ3¬†V¹^`§í¦ŸÖWÓÓT1t­A@a_‚°Ž 9]jóiÂÛ…3UÅjÅÞâü4õ5¸7®‡tØ;*ÁdHv¼ó21‚}SyáàëúÚv¹$nׄ em/®PL1È¢Š¹ŠD‡E~g<­ªø¾7^öú:–«‘™’Zí{Þj™ž¸%…[:•u µëÈ´˜ºÄ˜»Çdgv½Ãåñž(Øá3 (¡­nšþt<ÅMÕ.rs«i§ŽŒ+?“Èük hËÅÈ‚"¢á j>(΂&(Þ1:²¥!êüôº7»¾sú¯®ö}¯@!s‡˜Sk›N”p‹Ñì­É¡({y’íè}sé ’ñ.•ÏÆ; ›ò¨·zhFÚôòQ´N·õQ—ú^I>Žc×ãFs`CÄd;¬ëL'øLE(‰&(•¶4UZŠîMÌ^¹vÅW=sàšj•àPë*gH“±Û ˆf&ÞFV4ŽÅ—bŒø”i$ªðœÃ›RSÞö©s[êÇ÷9ùâ¬}Ú~uø‚ÀhÎH™ÏƒâÔ%@±2 +A)YkG^/ Jçü´“>¸·ºùôõHÎ+þ|FÒÑäÄÒöy·X«)%‚½Äúå½1n†’.wõ³>=;Îy­Bµ‹žô´Æ—ãxpUÅL™•#(„Ò8%ü£|R{œ€byãBÊDÅn°eÎÖ7H9í€ÒñD€’ñÐ@éRw61N‡±2‹øv\< Ÿ1AÒ%ÌWÚ^Íã .|›âI{§ÏÃf7oŠ+5¯Òó6¶Dù"i‡|¿! ¥Mü¸¯p¦ÀS`ÇA 熫@q÷¦@‘ÛBNfÑþ¸êŠr>®@i<îWK‡Ã˜‡øçRªåZ&9³ƒÍ›0Ÿ‰{^ø½‘ RÇó9³×Îù8éhÅçH 1°Å™ÄŸ…K­ªì‰„säéÊþÀ±Qä§qíøˆû‚€b‡!Ýu‹ (§átS0X ”s‘4H@yÙ»=„› +^ æýUË+ô¨gc×4j>·8{‰_¥½>ß¾¤sþ@êÚÃÂÓ=+âìÂBI|)<Ý݉;ìïww³ÆïzÇ‚gb÷k‰,ÕèŠÆûŽj· TôŸ‘1ÙåEäå#(»høØ¶‹©[?Á Ú¶Ûª”ÇÝ!Q«KXÌ%AÝ={L´RØ7¢Ôý‘Ž…{¢¨ËÜõ¼wü.·g_©7ÏÖŽ× –‘™ù‚|çÍÒõŠà»Xm7Î5Ê£‹5l¼âëëâÝï/ÙÇ—n²Ê­WFy qçý…Ž +=>†K 1lОE@ñê^A©q¬‚ÒšÜÃ;~„}d@…æ»öé¼¼.SDÔ Ýëý Ù‰"H ÖáámæE{츷ý.l1uXÄ_ªQ\›]Y°zØ›ü81Û¶°zYfU¾èua\ ×çc™ØÌÞUl£ÔÚÿC>–ê_JþPŠÝà‹~¨ATQ`ÅÏ£=ú É'MjáTjt¼F²<µÒˆ¹Ó©ZÇVÞdx4Oâ{ß“³q6cR$ŸÌFskèr|Ì­j‚‚Ìïj{6ªfçÓÓ–ßÏbV•›sëìv±=¿È%Yyá«2Ç`£×_PÊ¿áÛ“vkß&$} Ö‚mÛË-§<:±M›ªÛlŸߥ•ñä.‘pkðïuÅaÌ—ûþæ†Í§=°¶«›ä²•?äæý Q™%æ…ÞTÎòèd!+‡iªÛ‹nÏYl–¢gÏÓƒ˜ß +!ºhœõV|†ôün|[qˆ\¤ó#Œg\ßòSUÅðÌl YA½è×ãDo¸çøãkpd¬GY#Ÿ¬e`*l›òXõ—W9÷Œ¶¾ŒÏÆ›rv:ëe+“å¨ÑŸä6.ï0Ö(7™¯²ät¬½°éQ0דÈèúI1(­;(½ŠŸÕ<Ûhþc˜—wVÊÉÑgæp å9{hŠ´§.ø “Œ}¥÷$X!LãcÒÓÚúªñÂÌEO¢i¢™¤nnÓy©ôšäõxfŒ& +•‘Ým÷FD悽Qr?BÌÃndîÚäxu*à_Í|Î÷ú€H½¨Aß“9jIʲyfèñVÎN*7±YQ«ütlŒ’²1ò…ï)<Pì?ñûåMÑ‹¾Ü‘g§‹¥O5Üž”z0.o3ÏQ'‡ô9[6VóÎ ,\²8ã×Y’Ö‘ ó%° ¬ìú " Ss–NÅÎÛT¼pÒ“öÀeˆ;Ÿf´"SÓìùf +Ñeðì3±ÙzžXµóz.×Ô,Sï&Æ^ÆÖf#Üù@Õ¶-wØÄKá`w®Æá0×ߟÐ*”ë°ßŸÍˆþwÅŸIäþµ”gr Æ£cNsCW»÷¤5Ò™CG{±ÜâŽ\¶Árù"Mµ€ÓZgCÞåùòážçóS?¾˜ê™ÅzR.ßÐqå}$Gu{™Ã–>ØGëàO0u½?XUì~¬0¾õÆÓy¬—L³¹^âyotåCeøe+ˆ[2uÖš W:e|&ßÒ±Äå8Ý2ù˜HŽnÛ¤œ÷¦fãÅeÿy©ÎÓj»9±º»Ö˜4;ýQ³ ;pø?ègñe_lŽÑ~P½É¹ËuÕxKìÎwµ›íl¬ÎÙe¢4¸ÎŠºÄ:…¼—þ‚8­’)jt0`¥e‡ß +í*ìàmV¦o›Õ€;ŽZ‹þaÝôÜËb+9³œ~ˆ\õ â5ž#¦}‹;o9Ý+x¡?ÎâÕÞ¬8nt5|Üëæ¼ñ¸³)tçدÄÚØs@·j̵Ü:.µÈ §·jèÑúG‰ò:ÿ89µBƒÇ¶HñE§_ ¼Ìçr·‚r\Ï9ÜIƒÜ|¾€â) ç  (—Èíïdà¿ËwÝgÁÉ<e1Lß«ø©x£Ûjx5§ÍN{×»Ð]ùzgvåcýh|síJ "mrÀž¯ZÜò“cÇu.ÍŽiÑuM7ÙöRýµüš3ê ü[Ô/pF뾎ÚÖAN~å@ŽXAT5yùò!òXäÓä„Êä–Kÿa:¥÷lš™Û6³-F–jØX×Ãö´Ó¾ÞŸÁµ—Ï Á¡]DƒC¹¿ êB{QõÇGÝq—¯µkW\÷réÕ2ªqØzò¯% +Z>Q…òFÕNåAŽ'V Ÿªè ^2 ¿ƒÝüt@AÞ™ü4³à9娽Ötr·Ø"aÛìׯüé¯|b¤Ä,–ž« ¦¼q_êç¢a”/ÕúG_ÊíM÷Ü[¸6Ñy:žÌŸõÉluÒS•ùÿG@¾Ø€œÖür÷Bäv ò“ñûö‰>߯¤ÈËhOCÀ¯Ä©ÆoAÑ̇;z\÷ÓZ3xQé^ Æ“ ^rç¾Ä[R è(ƒ÷“ð ç)-ÌuJ·„w¹?ê]²EÓcQ[IN´<îsüGùf¢ÞVÈ'Ëõ®  álPhÀiaÈLá_É]ã¹Ñ˜ðî:ä­i©…°C¯«×~‰¬¡`”{üSI›ø^^yŠ/àÞ|$l½9|–z;­»yñMVš9F¼Éëçì*~RËûµ ï&ÿkùÑDú­Èš ßê•@¾dc ×P8,K à¹ PÐÓ(Œæ³ä +·;õh'ÃÛÍ,]…Æ´ˆÏ\×?­‘ŸR„¹7÷ñ—á”{¶(Þ]ÍdÅ]õrÑ.#-0¾Ѻ¦×}YqàËOnÜ\îrÚî×òë¹ãÊCÎñ¤ òl’êÙÒнô +«ÍÃÇU÷ûγŒ=a·"5L…|Â/_Ãu3H‰žŸnÇÞ¢G­\}½$ÜÞÚ:088(Í6±ÓBc¨ó¦¦U!ûÍã)´Œ½ÔØã;^ß~^æÏ“¿ ÈoQØZG’ò›ò×:ÙÒ(r·*(Ú£ (*䉽÷Dµ×½Áé°W ËרŠlù²z‹;7ýÌFm»+ÇäJ¤S>$w¶S¨È6q¢|ãEØž¦S¾®Ôr9éÔéRû£hfXqº?Óbº ~- /s­XŸ&À ( "h¶Žì^¤J-rJp,ŠwÝ}b/!~oÖílØ;f‘@¢·m?³x]¾Õ«ÙB¤’ÙÚdþ.X~'c˜m)ž³Ï‡)ûþ3zßH{o,ˆrêÂJ ›dƒŠJùÿ# ¯³2ŒëÅyƒ¯‚‚À1 h‰·o è%f¿Šöàiõžø\}ß™L>öûC$8eôŽŸq‘±»á©…ƒXyÌ® .ŒµmŸOf¸Lg•Ë:r}«Ç÷0/ˆé=¿ŒMo»Ç»‚§†"Ê× ÿS"—ã¯%yÿ ÀÐÚ5j ð4XP*:÷(_¬ƒhk”÷kJׂ JR3~¿&6¹Ph §üj{zº9úÌ Ø®Uúü$Åörà.ûM[6FÙÕU©-ç㱑ËÜd··”ø–§èÉ1' ßÝÓýÍŽÓj«_ È¿$È©_Ÿ?Í;·(­_÷(å¾?åe´WÆrb=«íÂóv·ðôUJIE_Ã_ £Š}+lV&†T}ÌÎË!²V­š±Uj„!ä$ÇÇ»@ÝrŒ¹ˆVáí¸g cÁ ±fÆsÍÆ6îò×òÕ.(äì¼r\äö= ârî_SPv‡Ó¥/÷]/Œ:PaüÐ|û+c•v+¡X6qV×d¼©:ùgGnÙ±4˜¢ QfçŒPj¥xîÚÀ¶;>ì¡öÄØØÑE™Iò¸Ú*sj±UîïYª-…ìY…Mz Póš°Ö ê»zeòí,]¤CïÛKO ß#Õfñîº%:eý?ÆÎ´[UÖ¿E¥±§GDAÅTìE°ÃŒþÿÖ9Uu«ÆYûÞ/ ·c3MBx3ó&H"á7©)½+‚Jv-sHnј}J?3·ª4à•¦u*ñJ†½Q[v†Ûí¨=$ˆzs°÷5sÐl‰ åÿ@Î,MX¨´™â`ÕgåuòÀ^’½…¾ +rëí0ÙÂâQïÎüë9—»_í‹Qjw+¢ÈZÙÙè‚<ªä¬X²ÎŒêG«{I6¦fwàZg@·ò-ûÈP¦m~”Á#eØl¯ÿà_RqX¤.Ńlµ3¬Q{€ú¤’üS%¾‡½î+e ÎÆwÛpðî$Ï›#âmŸ^è¾_YìÅ>¾³Òh‘½64ÚÎÑJïîÛ‡Vïæš½›»7 Îö¡qýþOH²Tÿ}hé +¥³°TÃ<,ÕÅ,1üš7ÓÓȧÇR4¥TãÑÆýëeÿ\žeîø‡¸pÙNâîuéÕ>·˜¶_ÎÜgã!µË|û%µ¼=®¿˜³–}BïÈqÍì¸hÃè¼y«Ñ¬1Dm wñüµ?Ðhh¹I9MÙÏq–ìßqýÉë\ÓèûJϹ—jñÕ;“EÛá¨E¸¯RßxÃê1X×4ê4ïN8qKøuè{‹[˜q£Žjl¿müV¥›–8TZf”6Úõ6Q·2÷‚nU¿åšµ,JIœf}eµúÿ@÷S>  ñ˜NW€w|zžìàpNÞ–Žù\#ûØÍhî–çó\¿Œý®¹[y^M‚Û%½ßî§Ñ'ŒñÞöh—PùÜYÒùk«Õ“"³ˆ}±Æó( Æ>æy©7â³Ö2'­åm>Õv=K¨ôïH,Õäè@½ +”zt¡Ô>1¹ñþòóîçµ(±ÈùÒÙK,5”C3.v=.Œ×8úž»#¬¶vt!Øz'u×0¿MÍÀÉx0ì£î®Âd|£kf®¢/Í]³!äÖu£ì¬kf†÷ý¹yT›íýEnðúgzGA»6|z–CÞî¬ò©«×ùĶ{Óíí2½î¿GRq¸ýíµ46k®l/zÚÄ™¦¸x6<Íyï­Ò+‹ÄÃ9ä®AýÓUïµ–Ik͇QÑh=Ý©mGSÿ* ½{ ­1~ÏTcàøÉ^ªÆ ³–ÿ @_ò@Ç“dýœ r¼4„¥‰,Ÿë`°ù<±<´–þsÏeìÂ6Ó«ËκӚÍZ¥þ¸éïÊæÉ’Ó©¿ÓnÓ>ž– wGíkÞ¼w­ž¼VF 7N-åV£jc-­‰µ:?ÓôêjV­Ë¥…R—S}ñÏøyz¢â0ì&ñ&[ +È=¬nó½n’‚Ú80ZfèMNØsƒyrunú]dÕ13¶0Ú£9î¶ŠÈzÔøx¯¹N,¹]õÒJÝÔò•@þXK&VþÕv”QxªE…oWYãcT†_Ó¼ÝB­a—™òg†7Ï€¿`#_ywlœü@˜j[ôD§ŒÖÖ͸̓™j·,;:óÞŒÚñ¢l½UR +-#Åè]ݴ‰Öå̵z¯fÊ+Ÿå7­²¬¯Yîz9Úsc…K-åöà µÄšz¾?“DåŸã¯Œeé©¥@î–NŸñù韑^´üAX «ñœ_§S´!|F½CêÄN©ã“¹5x>tCÝ¡ÉóFß_å¶vžúÕÒÖt”ˆÉ¯ä7Èe¥¬ÄÒ²3 ¤LñRæúr¤Ï|3–Å'Õ“'µ±)¿¬ñgæütlý„œ§µÚÑÏ•[û-pû—•å§yw¶òcZñ‡wªõ/ï¹\¡u—ºb²@^Ñý×N©±Ïb­:$æÌŽüÉ(c9Ä¥T£•@ÜêíÄqwŽ{5[šé°#Ö+äXª¦7}I]Û½?d•ïý2Êú ߇îæÛSÜ¥u2½Ù×Ò§¼Î°rÈ&yýêkœx¨ñ»5*ˆ¨¡¥š„´Ž´ZÅj%$9ÅE6²¼¸Ù5i½©·ÄÝ\±Eâ¨L…fîø£Ò=óÖ#<ëäî"xUÞêVü¡+Ø?HÜÁŸüëüjPc{¸Y”{ÝEwUèO?_ÕŸT*7˜dǵÞFLb £³lNÊË]c£EΜ¤³V|<ïêD^ù»­']§œñJÂN\^$¯yN`žù*ßÄ&ÚŠÍõYån¹^e„†×JÅ˧*×+–_ÊWþ3³ÛÛ€çy¿ÈõZõi/š£~a¶ÝüézŠ^´rþ«jºBª^÷|³– Ýj%†Š’¹OåÌ~³½Nw'výÀŸÆÊ•ÏÅZÌ¿Rª2Òjdùµµ +e‘‹?yþ¡QrÛ©^IÉrÓâ÷<ñ!¼ÓŸ±¦žÚ‚ÝßÅÉòÇ6E.¯ö«ÏtÐ ´Ù½5ÊÝßFõK¤ô6­£ð2Õû( ·ª°P ^=ë! íâJãs‘ÕøË>Ukvùµ©9e¯ÍÿåœZ§¢–?LÓB½t# Ø-ä=GU šÚ/ó?Ÿü`qØ/+“%”7qÎu·Î£fåöîÌøNƒ:éíFš]ÌM•÷|²”3ž¸M9ó§áþÎÙâ8®ŒÔNª<Ñ«Hâ&;‘ÿË>- ›~Ž+`÷¢’8§õ\0Ú¹¶Ô±§ÅpÎv«;ÍgâÍ#èýϘ|‘C~p°¹.Ö^ç|hko™¹¯×r祬 +ï+/m ^Úù£Ä…ŽS«Œ”V³,¢B·¤¹aQËb“B=ÿróÞà¾Ê“Ïp—k §€=¹Á™í*÷G6\ÝßÙúH3wO~ ÃQTŽ~8ŽÙºÑÖÿ @˜Â©ª pËð^{£®5@T%­Õ •'„~nü¼RŸNá÷¥íàÄõ°o +, €-ËôÛãøÂÛ8ó•7ÙPeˆ©ûŸ}/f¸Ô<ÊIÈî9dždÜî>óq¹è´H+Q·Bԣ܉ï¾Âº5…}ïÜ¿¿ÝÚáZ—v»ó «#××fAª¾ý’ìîŸÂ3 TsKõ1 ¡¶(@J w©€ÿ¿æ¨w[Ä÷ ›Ê*µ_ßûâCë‰ÆÙÉ‘ŽÎø±åÕÿ +»$TÙúÍ|Ù";xÞêò1‡[&ºø—l½¸=D2ç©îv²Ç×ìàÏDØbíl‘”Ä~Ár;ý¹o(^ôU[¥á_2 /QꆀLQÔË=Þ´œúÆV+&¢^~òóuùeñUÒµç=ܵŸ#óã<^kÉ¿-WéÓ%™‰ KÞÐÍÑMÚ€rìÔkîߥ=ã§¢Âɧ^åf§ðwªü_S<âAhÝßJZÚ°OïŠ7†—#jž€Ú|gÍfãÍàŒõW±êZËENlþ€ÖPgèCƒôPˆT4%BûÌùgD€Û 'ÁOî]@—Os¨wsx·ó…2šyÝÇß¡õâ#Î ÒçsÝ{ÊÝ›¯§²<ø(®.w¬ÑqÖô—G±k3•Ì­ÍìXÿ3©û°x_V°Ò! Ú½ ÝÑ0¢|ÌäDfJ±A£Øô§¸üËîo¿]¨s÷³ ì5|ùôS õÒCòù®j¯ÆmÕxÛ7dTÜ\²/ìú3M²½õéš¿ºö2"Ö|·Ü6ÝV¯Ñ˜u†„ögüLáuްíåâ5l£ê P÷m0X0Ìɹ‚l–a@–kU“Í™Âû™!YÅóî`¡ËËõ£fsÖñ鯴MLÏ{T‡çíñ$n¡¥àl¯WÈáÝóñ ƒç²ûõæ½æ÷®ïØ]ÑYÍæh·ÝÙ©À6§vúXŸTÂ~Í™”ªÕñ{UIFÒ?Ç_Hç6­õ‹ô4‡R]œKŒIª£v4`É‹ò.dwÖkÚÅF-Öæ7*?Ø^BÙ?gB7ñäÓ{z‡Ôì½ G©Ì¦2˜Ò«™×(/«msn,­î,76'#aØpDª¢>£Ž–Ó»<Òÿ/rýüÙ횬£@1‡' ß ´•x¨ü=Ù°—¬KÈ‘SÏ´voÍ{~|¹>Ë£2xo|ã¼ßï.æú´á+Ám¥¬ñhQ׆)7hÉô¬‹·¤É}í$÷#–rú8•}i#mzR‡›ÏRâÕ®8Ø3öÿ€<~¦°â ¨³"Àu¨s8›VnÜ’}P‰ø\’÷x<¿Œ Þ•× Ãl¶’¾ÇßÛš»³'ôjý.fvK=ÜÙ=O¯ÙÓ‰x1=v%7ZÂñÌp[pµÁ¾j*j#Jö¡^m ÏòvvOq?H\ŽŸüþ–:a·€Z"/ØFmdo—Ä˜ì… ‡~ÐȉfìcÓÍñ×S¼©aßv¡ïõ¢h¼³ÙZ§¹ ±™<Î~<Âóp»iGƒf¹GØVWl6O)ýž‰ýÞ %ö ¥ˆï¨ˆë]×òŸÈWêÜ”^¿K}K1`ްŴ ØËøüshê¥ZÄݼ’…ðz¹+G-äõýÉyY[¡bõW¨\¹çZäL^×›;®2›¿)íûë|핃cºËÇM¡ë°?Ã(xœ‹] Ýq<å æ•îø2/ÿ€Êð¡³)lám/F Kß%Ø6éȱ«c<’ÑJßÛÌ%½À9Ù\Ðl?Õ݃êëÌ Ýž7Ao:zö¸†é£Að±Ý~)uÞvÞmõdU席Ÿ.E+ñ¼Umó¼µIœõ jë³TKéÞü¿ÄÿýÉàmĺð¶çw€î›1ȶ06ÏòäÆgÿ8ërß¿ +¯ðž® Çõ-•Û÷>}a37ê’âwÆlD×[NUb;CzŒ%ö~9;ó¢:oãªï5Ûîînvצ™-ùy¹–WH—ÛXƒ(·õ]j¯·…âŸñ·Î—êú2yÿt>ìºr¨4z‡«ë湚J»[.Oœ.¢Ž~‚6Ö#wÎ$WZ혽ä^—Um¢Ø©úˆ<^šý;±±: kÕkÓ´cö¼ÖªñDK=&ïxcl9Ã~“B3»ÎºÔ̦/¥fÐŒ‹-rçÿ @U +.ÔÛôß>€-$nŸÕèG‘¬Žî~óé„£9º96!ÜÛ+6Yò»ÑR»è j•鬑ÆDv_µTGï*]Ól›ÅžeÚéÝ !Œå¹¾¸Ë§Ú Q=ƒvøº´êW<Õ/%oQ4lÏÉ›ùÜî‘üšÿþvNêPÃé0ḛ̈Ӆš“Ö+Í<›×ЙµÏêã6ñ/åð°þü½¢Œ:áršwô5ìà/~OêIYmïŸYͼn¥ÄåhˆïuOGúòL3Ï‚_mÂLµ8’æ[œž¾tÊú‡ïëÓq¿ÐàÃÜŸ%Ö€&®È–•4ÈeoI¨þ.­$ýà ªd” 'ÞíÝ;¥íÖ.=æƒ HOVÚšž©z®/æËeËÓH¾Ù)¹1óku]Wnþ'j_úÊ-(f”aÕÕ·“ªÁÒIºNÍ#‡åš^lô´¡³ üÞ +лü1ÙJ >ÂY:<^ÓN}}/ ;ùþ°ÖäD]ÎïÅþyºX’4¸Ñqh ýX¦ÈNÃú°­<ø– ñ‘ô-3дö‘m«ö*ܬ|ÅÀG$P‹Úò‹mèÊ`{Õ²ãªY¤_¬Y#ÿOH<›Ÿê3]Æ…€¼±ó”•ŽAKôá@·š¾oµ6_Ze…›á¾¾•Édã˜ûQWšÞûïñtŒk/Ý*ޤ!wî9}w+ZgiêЙ'Kåwj>“¾¹ÔYÊ(=LÊ4_=I¸¶ôÞÍuÙé—%ùYxrÊ °(þ€–`ã˪™Ç¥²],:õžïœÀM²T7Hœ9,óo=7‹P›àÇúhxíM7ýyéx÷«Uò²_#Õª¤uó±$µüR,¨c‚’dÐM™’ö#÷òž@=Foþ°I‚9aú¢žs[âÊÄëð2’R\©Ò,àù?Ð1åÝ uxi3Þñ“h°ÆŽggQØç·³tËÎ:´“Õ†åí|ÐOÏÓ«è§Vù¹Læ¤ôöé­|á£bUÄdäE‹«H(ÈkB«“ïðpýñäÄsT¦r»æ î|•» ÑÛ‚a.Âö¯þŠ$K59¾O¶w¬ºfg7Î[­ŸäN÷!]º“ÍråsV”Ûqµ§Ã'ƒu2‰‡zÚ665<ñP›§ê}ß”÷rÉ¿”½.E +Ì#Êÿlú“¢¸Â›Uœòkçe‘*~Ëbº¨–c§]¹ÑF‹;ÓÅÆŸqvÒ˳'j}ÕU·r|Wíãe ‡þ#Y\ÞÿŽh×LµÊm› UÓ²d+ÔV-{êk& åïæ>•êôd)¶æñ]¾‹ïK=*¦Ê"Q¦KnËJ +s0ŠË>*j…IPÔŠ]¢˜y`Ò;è9ÆŸ±?UújËex·’ksÞÇyû…_åÞ†Ö©aÜš/ûŒÌ’Eô6íPÕûèË*ïŤ,göù$£K4Ù‡’¤ Ö¸âG2*ð?ë–E¼<.)tyY\vjAac7ì±Èä½ñ'—7UÍ“ïm7O‚ú6,²©?#Ik­wÅ-»Taì y›?Š_¤šíâÑœKÉrôÀ¼Ì4»¨¯U¼}YÃFg¨.çOÃGÄÁôS~­LÉ5‹xqi1Ùbæ’+°;#ýئIúh0­vrÌg8ûÛ4EÒ·l¸•SY»1Ëfm£Pý3Üë°cá™~tYÐVëãˆWÚl`k§®…½ÍÏ4‘pUÎì¦5!èÑu>÷¼µ*#eÖ+‹hkTü•iaÓË,òÞàµÉ“Ï—Ÿk ¯3{rßÿrN±ÊŒL*K¿"ÿc‡Rï‹×£Þ!6£\»šloøsüŽ^¡I››¸Å”CÜ”®Å¢^¡Zy²²†´tu‚ Ço²üZN˜’B(¹bæ”-å=;ârÁøœDìi¶R²árPÍ–Aƒ5zMúå÷:´Èô”ÛLÈïuº"µò6 6ÎõNÔEê‹{ó21-ÿÏÚ?k +±©ÝèÇžt±ÜlæfŽUD€ç}ø×ÇØ•6ïÓS×ÀèØè‹ô$ͺ±<€Næ€vá` ­ƒ/@¥ЂUhIÞæP²nClÜxuç;,ÍŸ0œ€c>VߪÅôðWüHØvÒ1™A±§Àâx§£@\àWêôÏÖ“x¾ Þ õÞ€UÓ-€1…1Ô«.¡Þžõ®®Pïõ Њ´Á3s r¾ õvwcé.£cAY>‡¹Ãì>³j“ëzq†»Óðg Vrü'œA©ç¥ °‚;˜ôÝœc?ΪŸÀ'àÝÁŠõóPl¬lHXP,ï@±Í À2ÓŸl;ôux@ÑIn“6 Pô^¨!ö!–ó¸µW¯>ƒ,ïñÚÝ2Äs|ñ`ŸOt¦÷+®¹°`¢ÍÏ +ILÚ¸Û€¯s$ h_D¥à"Ó8ü´HA½·À ¨°[¹õªðÇU{°mT¶!Ô{Ž%¥y.ÓPl¯Å^u€Îº“71ê&é£{˯Ž=^Ü2Ògz òÕÑ©¸›t¯v¾õ+Þ^B Á` Ï8« Ä*ˆlk„o¹€ÎÏPññgëIi¨ îjm«d +[ðt»0¶¾þkž§@ü=ų­‰oRš7&v^ÅæuwûZìæÒ…ä2È{__K]û¾37׆ oJ>¦ý +€¡[ë P-·Ä½B‰4 h× ÆÚPÖä(vKr¶úY*O|§Pêè[0rõ ^pKæOÒoSC©8襸õ)W£SÅê&&ÛûÛnì/ÁÉX€CÆÞ>‡v¶½lË\Õ{m%ål¦ÛŠü$YCÿý Àïw(uœt¨.‰K7@q5a?² K8j-g žY8@ède@†H ¥”«mtÉX—×uÎG¯Òºˆ<93C'y6“1V¹¿/‚~û‹Ih¶úÛh©‰×D?½ |4˜«©3Ñ—i*«Ì·ÑAœÒ”ÿÿ¾;_‘c@”†°š»ÖÏ"Y*˜Ã Û¶û€¾’„þôÜÎCÑ#->›x+*þóU§çÙx·¿«A5¼¡ø÷uÅçtH¹æ’µÜ9oçÛ‡)Yš{°Yõ×ëÝ\ÎC1Yø?ß!{ÅmÞ¬“)pÓ‹þ)ý +@_(õÀ@©öz ¨Ìþ èâ#ñzO6`º­#`&a0õw1.æêò‹ß®’ã¡æâömëÃ+yº/.GÙníÃñW¤[0Ÿ£o¿Æ¾ñ}£Tá¼&¬Çû°½XS©šë7êŒ}´ˆÝ¸I…rŠÎóá”þ‰;øïX–”ú(&úíÇð{Ú+ñP`²–?³ƒCA®ˆÄö ̽ÄTždª õê[ÃúåüºwŽ‘|°ƒeóãø˜b,¼"íØÍ&™#ØÜÊ£hýÌíÉU\®×èòZŸ¼:-æ.¢óJõ+ã7+ÇrŸ)Œ¾2™ÿ€PÈ R•¿mi*ÈÆ€É™m1‘ÑG ;BÏï^VH¿¦‚M<Þ!GÜ4w)9åð¹D5X>qÓ³R•ÞÖnuGë ¹+¹¿Ú-ÖSõ4ß -àú“¤ŸÅyQ-~ì¢ÅÊhYø&kqG™á)?Ô_nvXÏx¹_3×ý[jbLÒ¤¥v&ȶœ`Iõ=ñøõL+JúÖ\̉Ëõ穲™Xª>9•¤ÝÅÕk¾e+å±í,ê#zàƒõl–sõíäÎëWç%øømU„Qõs*ëŒ[x;?0Å6ks‘Pþ‰¥šaó¬ô`¡Ô—´´Ñ~æJ‰‡:~_H5xIOç|7jd^^ãôiV4Hߨ]ø<–7Â6”—kó Î›K´1ë©-k2ú¾†°å’ÍLFËI×næ÷ÏÀ;uËJ¬íöœË÷Ït–íw8ÓÏ×à ‚úPg©Ý™Ši$ø¸-%À>ɤW<äÐõ3“Ó½³}_. Ä ÒÞ%;¦6SEϯŒV™·.5qzÛwT'–Ccœúˆ!î]G¶…nWý^*uë]­k¾7`l¯tÙg!L÷Ñß'}Z÷alIˆýï„+À"õ†x/ <À ”:d ÔYaôzã‹Éݳ+ËðZxù§» }fm€íÓ/c«UœIêf~0£ü¬T‰ËŽ›ÃÄ‘ÞÕnÍ~/®õ»ÏlÁíL}õØ‘F ‚h7™Ž¤5éŽÄ5H "Û$~ÅÏóÆ«öám?ƒRýÕ05‚/ˆïËŒí?—e½wkßÑ…¯º‹¾Tžm3¯õW¿¥þp‰Ïnè˜qÀ|˜ÕGnyÀ<#©wç¥Zç¹´¬ôs˜ÔM}ßö-£y$Z»Á‡n×>ծݲ½&XÂJK—ë•ožÙû˜¾ž™Ïx“¿%áààxýò Ïv`Ÿžoø7Ïv¦j”ίN=jgæu1:Fõˆ7¨ÆýÐ!ŒÐ\ÀžÇ^`æñí£æ1Ü!¿ÖºÑÿ™z¡°T/âdíÄ›Ü OD +ám$掛NÄíCmne³8]úuÜsË­ø:IíNÑðžú£Æ$ÓY–Vx›¬Ühór¬–w’ôÏpÓ¬­ÅW’y_CŒG¾:­Ï ¬OâÞàøÖ¸ûˆQ<8¿XÇþËëej‰Û‡oxD¹³dmÇ^HÙŸìv½›ÌÚ;ö¼ÿد&Ÿë0ù\÷fÜÆ««2:h›q/c^qŸhLì«k…€×¼ºÛ¨¶éÓX=Mœ[•™êŒfd«T­6’q=¨ ÑAQþITNŽÿØF >0"fáýù' }üÀ×ßíñÏô± â1üâ\©·g¢Ñ˜Ž½Ž¼‡ÙC÷‹ÒW‹¸V’—×7 ùiLŸ‹Œ^W­ÙºWÔóþ¤+ƒÎw¨”ÅÛU~,5Ot˜*#ÉDÕï ˜¶Cd¤†fÿ@vv#@O£dDZøÊ/ÃÓ»’›ÍÔÝõn»ûj ù¸AW·ï’ݺ…Y¬D5§QûÃüý;ïͱÇÖ2‡ÏCÓîׯ{[éá’ÒZ±Aª!'T”ÊB¨ËÂf8’Ü‚š]’¼lR\¹äåGÕa»ejçfàêñ&£¿PéO²’¸¿ ®¯~àÍWæÁ¦:ΪYiïÅf³7`“Èf÷mªÃ¾3k÷åB0î‡ë²yo;C²s'}ë·oÚaOõz¹ +ŸÝ•$p»èRá'b­Ÿº‹(E‰¢¦­Dñ‹”K¼+Y™{­)yôâ?H âŸü€ºÕ¦m¼Ö+¤é•ºVs½ÆÒæâ4&zî8̧HJŒÆí6JFÎPê-§¯¦ÕVñ~s¤I“ÆR.tÍxZ—ñ’œ[uTn¿å·ÍcÒ²V+‹u²Y¼Ñc,Pè$ä×ãù ÔÒSNaºÕw•tcÍN˜Ú©mÔ—s-@ðÎ$OëŸ{Vá°BÁ*¥÷6ŠËÖD)Ôóu-O>óõóÆM6÷V¶„\{?ɰÄaDOZåv¹€ØL²_Í,îÍÏ2nVómw +ñÞýŠ‘o¶Ò=¥;û´ú +ùi Lû]½«ó$¯S‘¿ÑW46æÂñ0.¿–d\üî—q¡ž«òä£bOÓ’-efÃá}‚i¢ÜN5K.íJÌ<*¢Î îͪ:N~ÖÖ†,‹\–h× ’}Ñ<Ùˆ .8š§Ðì¯èõ\¨z6âì»yQ@+Ý @—Ì Á¤ÐCÆèXž”OvD/o€„$•D6ˆ+—b÷«1wM€(O ezG½ +’)Ãïeæyd"^ i·ÂM:±ù[¯^nÛxŒ­ríŸ Ø“ãÿ-u}èB•T4t·ýÊ€‘^`)J=èS¨w}‚zŸ XކzuŠjP¬/mÆC€4Ë €¨–Åî\¤R#Âì+ÉfkPeÝJTöÞõ³Ý‹²¯TûY¦šÆíC\´_Pp…:›W¨óùèA‰u(çz3ìë¿+3åÀ¨¾ ÐÇñ P'ý¨P5‚uD¨wшwƒ52'&HkˆéŠŽb€T{,P :΄°ûÆÑa!öŸeeœL¯Þ¥~Ú¸¢õªö+†GPï 2ai"Pê­;…*1`—M`o†XØjÌ^ÌVz^údÒPl5PÝ‘|èÜVü;†e]€ì½ºdA¤2\ÁÒ¦êíTé91õ©ŸesÞ»} ´îD½qî°õWüZ@©s¥.J}ŸÕ3€Åòáït§%\_wŽÝ–ÛÓ7€©ü élÁë5¬‘ÎÓ¨HŒšW×ÅÇ'€€,ÍOÄ(?M`©tl&ñ~;qŸƒð<º-d¢ñÅæ©HšZ0ÛoÅ_…¥ ÎÞQ·v~%¹òý# ÒåŸuk€È¤ûß°k€‹Ò`F6Ø`]}-ý”†•1)ÏÚµöPt2)‘Oœ~¢I5 FÃ7‘uÏ›ð˜ÜªÄgpah¬}pÎxÍ_¦I¡y^ñ#ü +€5px­O¶ÃÞh𷇚òÏ€˜; n´a‘ ±‰Ìô ðÉ‘x>ææÀZüð§n*Ö +`™9ìN×'@·,òn|$6neæZÄÎ÷Ýç­sÞªrztî¬^@Þoõ=æ±êŽI²|íV®ò+6Íë?—!òɼ„7øAžC•DÈú'›ì7R‡¸N)§`I©7 8”xÄKï}AjÅÁ‰ÄÌ5=º©÷ +4|M4~WEìñŒ[¥ûlyI&½n™Âs|Îï}©Ž»`y¬nìEQ\E9¯¼œ§ê…_°mIX¡ÔúË–&”ábó(DÍJ‹š€ª‰?®:Ŷ/€œ™ß7“¥©è¢ú•×ÀíhÏ1/´“/9¼»§ïâ¶»[æ^®uìû=U¤/ml£lÖíú™gÃØž¢~uÍ9'a9§´ò™>rsÜ_%±ÀÏñŸ[¦X‡¯µai’#8¦>®yÚ>µLöHq-@SË% á5θ÷kÔ\£7EfïÕ‚ÇßЮY ÷G<él.Vñ08w£©{|0Òúáê9éæ;Háéò¾ÞaÛ|¯ +þ°Ë/sTr÷‹qnfuyLÌQêWÀ +W Îs÷g·k¢$Œþö&µTè"H²'m@_±u\ØMŽÏ8ž÷•É‚«÷á!sÅóç¢añ‡x¾S‚ù»Z÷k5¬³ÇoáÈ£6Ár—ßÛü†K­ƒS2½ºT)N˜ļ4cë,;¹•.ô¤<†Ñ¿ká¿àH½ð¬kÂ6ư4¥ ‚Rœx½ådo+KßÅó­)Éâ‹ûú8?_[Ùøy)ˆùÔT?hyV³{#J»£¯HÛBø¨­Ÿü´µŠÉÁpùA¦«eês½.Ðì4çÒÕZiZpo¬ã°-j<“+Äè0ø¨Ê¼‘$îà¿Oþ(U«¼íA©a ¨ÊÀ´ÜPe÷gÏëõŠ—ãRÀ×¶YóÎ÷jç|XâÃ'ʵÏî¬ÙȶTI1káÑHœÛå·˜º8«Î‰c«åÒnk4cWkoZð Ôy®œÜX.æèQµú&†zׯX~‰ ŒA7ý+`išPgpïÀaÿî'µ—®@Ï&PêzYŽmïe<•o»wk–¯Îå:.,Ž)*ô|²»?ïúòåµá›ïÏJM©Ø¢¾Ø1n0¯f¹](LîÙIÍqmk<ÛlÜÑ—hÅ£L%L"›‡Ûø€˜¨ÝzŠ›qJéþI`¾¿à\Öþ÷Ûý+±›º]€AO¥Ãrħ<í¾²FxÑçÝÓô¶HÉø®½òòtã°¦Õp•í×Ü'ößÙyN¢ÓÒlB;“m©8ú¯âp£lPÑuhfûd3ÏÞïêÚ w Ó³G +"JõŠßüÉÀã¿?“Ý€Óý+µ—–ñ`¬ï÷}.¿JÏùEnðyZ½TLµ~Ðq¦·g9d¶å¼ôn¥U3§yÀâ·Y¿ÎG}Çó-ž·#ä8Ï̇TîŸITí]‘r·û VÛîè¾BºÜhšîDÜ8Õ‰²öbòéLÎ6øëLléŸäNzVúkUÄ1›ŠºË>t’*†ayP>~§kÑo7­]ùº¯Um±\˜ï¥? ýÕi2¡âû¸ª1ÑР§)Û: xïúñó]>?-ptLKÍÓ +õ)§­Ô­œ$ÀX)¿ôµ”ø±”÷†P~¼—& <¡û—‹FÇõK’‰˜zÅ¥q 2+ê ,uÀ¡ì…ývc3[×wp¹“ ×=?Ìí”;õãåι M<|Ø9»zi‡tfu±ÒSi5X­éóΤÙÂöŸ¦Ÿ;Z„p~·èÝÚnRqk;IEÿƒÄRý÷ ÀG®H¬ÕO2—€áí0yáaê¹ÐNßkd?§Ôr˜òÛïwnÇiYmqÙÎüøÂÆÓg_:ê ì ÷m!°óN÷Òã¸ÇÓún¤ä-Xmlü›­`™7s’«E-Ó7Š–—Çôc²ñÛ<šûw“¶÷Q³é]À—ºcº°]fµ¹¾¢»„êלÙ<ž@¿|öûøå ,›Ú(×­¸¤¸£9»Û›¾ó­f#ƒ×öE¼¯””?[ûRü2Ïä(c”$©¿^š ¿×Ñ]?¾×'FãÓ¨ÌjIÂeãŽZ‘Qd{‘Ñç{Ï_ð{¥C@OÁ.ºß³‡ó³…9G ϸÁ~.o÷¡sÝN¿8²jtjåyþÓ×'€7“EKc À,Ìæ=çè­;éì[~]:™þòhŒ·Ð?™,Y[Íóm»µ´F}}©![è©,ëï@ŠêBP~Ö_EõñO€—ù9B~à ¤’ÁÎ)ë]®ƒeç˜Ii}?ˆÍñ¾`LÜÀ…ÁZ¯»`ÁÞãìŒße%Kæàìðý^$ £ŽfvÝV0\­L›¦ý†ó]„úâ&$-­†á8Zmuð¢z G¦Ú,ŽêqXøV÷7ú­m…¸¦MÙWí±÷_ï¥\6PÞyº¥Ûøø!á…«å•6ÛdŸÛ­tÝÛëz¦´Yœ:ø}öj8¸³~•a§~ÕúNñÓì¬3d¿M³ÊØÔÇnc*Ð[];ÃZÙ3ú«šmrˆrÅÄ‚ü – yô¼äQWÏ(ýMá£v6I"¯ÒU:ªî‡èãWÀG“aºÑ›\J¤„¥{%¼Üب쳱"ÉO{‘¯Õ&³ˆk&ˆð£lQcú¯µÅw3Óu2Äm·¼W˼}KýÆl¾šèz‰^j­ÂÎW/Ýá])Í´Û£¼$=±†øÙ”¢º?’xígdW?ò=_ˆ•~~ýŠŸ§gz×½¯o'ã˜:«²b±ºQú†¼lnsŠ{oÉÆTÍ·zÎö¹^ØZçjóâ#Ó­•Êù¶Å´óQ ô†²Í¶ôº3·µöXrU{™Þ)œ_%w}OºNq¹gò"BÏÂæu> +8Ñ$}ÈRbZõq®S’ج½|z¦»çûe«øôú&n\™á–Ô~Tr+XW˜h53ߌ¬¯ÛÜÙܲ?;½/]L}Û9éIšÎ¼ZjTåPщfhì;êªC~5‘ãeo#-ƒ«¨3³´`äoÞ_4M¾Õyú’Å9krJ’/ >ð”¢LSNW}qÍ“s÷þÀ€˜; +TåZ+•AÖœVJ³vªü ƒ\ùÞÖ˜JŸ‰ðʹÛHýŠã;"’\u¯ðË+lÏegå˜r° Aì•O÷Ô»_ì4çʨ]0‘…9½M÷Úœ¿étÿùÑ +Ó®ò›+/(P‘ÐÙY|mÛäý€ëWËÊPŒNe§•O¥ø4È•d)kAå\\´ï°CˆB²Î#¬4ÙŠ™_±·\½´Úàã–F ÜA#:(Æ2Ò­ÕïH;_íTšÂhž8· ÃOôÖã¶Ðlrá«“‚~“¿›"°Ã‚þ–æ»Ü ÏÁî@¨p™f­,â–•ì/à3áÜ+ÔKà•÷œ•'AJÏ X¦íª—þAÞXÌ’_ósü'¬qÃ@EZg–¶ïÒçÛÙ6[Ÿæ=E~js¨êYmhváÕTеä¥.D¯9B»pXrád°«ŒÔFbÛ•'ºz+)T!.jl.“lÏJ'‰²å\[Òkl·êô³áæ¹Î–õÁÜ"ÏŒ¬ìáØ‰±ôżKªˆ³êô’·.ŠÒ têG&jV²^\¯oêo-ì)u"\‹²†ÖJ¢™Msüip”¹â»_-OjB½¤d³˜9Ý­v=Ùyòé99潜³ù”»É–Ðå‰aDO,ÿI†í‹ò{w r9&'¤ÆûW2ó^‰Í\mýЉrì}}É;õñ÷i>§Ý§n–¶WÕ)Î_²†ÌHž„Ÿ{œ’ΦRùšé’ÛÈ¢ÅÌŽö<{EçڼŲ¹/ŸÏ–¶ÌpÊÓ"K”’»iäÒŽMb3þôqÏE§8•R}¬][EXc)ôäM%ô´ÏZh·y÷~Xªÿ>ùiñêlÆ÷»ù”ÄÛJvÉ{Ѥ?w(°r,¿®_üîÅC»`Ó⬛ûð'æ¾ACzb¯”Âo¤V4’uÒD"Ü”r ù4–Í”´[Y$Ü×+H‰žh.çuÒbé5M½ŸÕ å:‹gʉ_‡æ‚Ñ +ÈÀÿctåm€‡!@D| ѽ$ÅBpÈøÝ&È OSá0d²ÕÈ “4HG' +¤c¦Ò½ +Ò»E ¤=ô¤Ýé¤çH ÑÀ@z`%³Q?G¾®É?Ø÷ò1¹°JÌ? kö_Rß¼} +u:Ñ “Ò + ›Í Sœˆ¤ˆP¬ûã düû dFÅÈh­ŠÞÀϲodØ +ü5hG‡¢=~KKW¨©œé}†˜²‰D6‘X€)ª“ÇiáÕ5˹§Ý~2?€—ùÏÉr,ó° Yd£O@3Ô¢¾(sáh€l»2@^ El2wù2K@Å!2ì3µª 2üÌüù5ìs2¹Æ*‚ñzWágø*q.%*Ë 3Íó±©^ùW¾T(>¸Þ𽋋óOÈ“‡:…Ô¹7J?~ö@[¢ó·ƒ¾$#€ŽÚY€jA h¦°ˆÑBî¾Ie`>„ +È:UˆcdÖ´2ŽGŸê 1¦ ¢uò’©oÏGäçµ$ñ÷)1+^Wu† ¥€þ'4 ;I¤£B锺Èvúé:+¼½óX1È,…é]ÉC€Ö†?ë=QÔ‡-c÷Eâ +9€˜p‹(kX-jþš2?=õÂpˆüJ6/AØFì}òµç€RåÛ¼Õç†ù*œY™cŽƒÓøàeþs‹±¥:ª +ÐÁÀµÀ¦Á`—Jpöþ“+_˜gÀ5gð7P· G"hG†ÿÐ/ÛUû¼kÞŒûæòçöÜ_ÏYˆŸ7¾™ç£Cs%¾Îεþ(–~K3}ù|d'僃Oi¡Óø~m‘@Ë –fêüà&À¶£ÀyÒýɇÏN +8ÀŽpçÒxîãìZ8¬©€Ñ}X-OŸ˜_‹ýÒ®7—AtDŸóÈòXÿuIÕÏÁnM=øÑ»KÓOíZÛ´´SŸT’Ã_8<ëí‚5¹=~d›S_é@› bUX£dœ úK@¨èó™$v+€¨–»I €w›—8x–—#êÊ_üjïÂó^Åg¥zÒÎ$´îñõ>ºËôwy[Ôs‡[úzBCC¸.ô#TŽ•,%îõþ'¿=j}×7èjRÒÒË÷ª”ú$öäë| ¥^¯À¢và‡Œ Ûߨ7@6P¢YdanÇÇ®4ÝÐõî9nwnñVùÞS¹ˆ¸!©sáZgbh|WµKÀmÛç1O\õs®z^ïDöq& Ò_¦keϸßÊ»‚±+‘ª‹å4ÊÌë­ÑÇõ^&ø't>•þš<ùIë'aH<½ädþø *¨ìA‹óL³ó|YþèþÍ0ì;BŸªß/–O×ú ;rŽ=ˆf®(|FñµÂ÷ÿÐõžm +êl¸öo¡Ø 6PQŠ""EP ˆÑÿ¿aÖzŸõî9fχ30Ã1¹RIîÜ £=WAf»Ýö¶ÁüóÙ`ŸlyM`AmåœsÅeNtSÓ•ÌWźƒEÍ=¼ÿÈìÝ^Ò‚*,Èò—¹ +ë'³UðÅ`S}×óz÷±àa”ôS“+/Í3v¨­CÃl§{<‚^|V£_ûÜ'‡ìŠá«´9QnÝ»¶—]¯9ڌքôÒ\R™Ê…²Kîv(Yã\+c^ÝlÜ·úÇh7„X_h­×_øél®›Dê‹dA¾ð“  o‚bYM¤Fä;‡ò³}l5#ö~'pšžTžœ(³nø\uîîDïéoΡ|ñæÅâsÝ^Ü`·K¯ tÔVh8éþïw–` ¥ªc;W°¨CßÎa½«µ>Zß|¿5˜{¿æëÜùùþÑ™#øAR7 (¬?(®PÍâ×|Ȧûî´ý®\Å ×=¿·é9z^ÿÈ’÷ŸuÏ\`s €‰SPÓ­ÇJ%|+s¿3ÅýrÕãã¢5CýÝgŠí°û¶çÇ'ò]V·+—•½hZeÏ0=ï S%îª!v-VwÕLn&pzÜ”rDÙ‚)Ôfª|£×´árRùﲆz7ߨ—ΟY$Yúõcúµ¯t&ÂçÓ|nûfëxnÑÛô\Ž;Ë~ö•g»¼!”AÛu„»*0®d›b>Ú¸atñÝJcáævžÝ3i¡ß•ZyÉÑ~Tž<×VwBÖôå„ìJqüá¢q|ãnc{N]ƶH¦–Û$¤N!y+å’n½R+ššüÒM™<>ìý2¸V+~òæXb{_xi­º{ç×K&ÛXíâbÏ–»ÃÑŸYýs‹ÒI¡–YR U°N®r:ýió™?OÅó{Lm9‰9 Àº¸é¼®*£ 8ô"¡$t’P „ZƒŽ!ió•D§ÿì[+–ÞsPÖ÷¯þ°Ï͇3;¾'ãÍØîîì7/Þ[·7C±e%º¶Ú3ÃT»'hYS“Õrû5WèÐ’ <ã?Ô:”XetóJy3­üXLø±>>ñ‡Ãò,ïË£ ÷  M(ì©ëñ/$Ížì'm©Ì'´¤'£2Ø¡ù×56ÒhNZaHîíC9Ãl#5Ãy SŸºÜ6ã,ååü²0¥+d fµS*}…þ”ßͨVÆsº¯ 8‘` Ad¿á´É~ñ‘î$!cø m£~ëvôÏ©û8<Â^ëúîÜ(”š~qV¨nÚ7³âìZPÑž}õ‚¹Ê÷KIЯ«WX ”Wq,ËNPOOKaë \\ì9"æèG©ÈŽ¢u>ÖGÝ~C.zÏVAéZ—ì’¤uìØXâ·“¥0¢“íÝv!ëÞÛËpí —Ö©ã\àCçûþÿ!5©þï&B/.~``ººU7»Š;P¡‚}‰†Ys¹üd4‘·²3¢'–d÷¤4'ÃäÕ-UûÊŒ@d~ø‰NƒÍ’{2†é:–)VZ½nNLw}w¡õ`ÜÙð£E{?¶‚v1Ήä%@‡UÑÁOqÃk3pÃÔâD”¡n@÷Òþ/œëßLc_q.å5CóK,h!æ²õóA'­th}•çê‹L†%3#^ÈBSÐ`œÙÅ„óòG“¯Ò†¾t¨kw‹ à\×)¿äàzëu +Æ™o—íNÈpwϰeŒ7À°‰7>ŽÝÒoú’n ¸7 ¿6ï‡û¡Õt7þ_²q¶ìYQX -Ø-ý£•Æp¬t<ñ5Þw²oaN¼ Ñ²µ¹ á1ì–E¦våÿùÞZ\qzKæåwQs%sÏç}X®sÄi½­ã×]RïîxÜ|Åu«ÙåÇÆòQÍ4ú^qЀëȶÝðs-ŧ:³vŽug­…¿Dón[u¹¸òÏCdaª:ÐéñR:rï1æ·»ˆ7òÄK~¾l8åúæt¿SÊz+å.w³è^ïˆs}ÕÆÈñŽhêÇ'Ów«c™fϵR_õ½Ý’õAôk;–µj…íáŒIÍa«À¶R=rå]õXÂjx‰·)vÁÙŽ§È⩎ßÚ^»=•‰ERqçÑ»uOG6ƒÛ>Ðs¬ŽP6µ¨÷í ùJ‹jçð€˜unN@[¹oçjã(‹rš¸õìMÜ×’)Ä+%®Ö`'u•ýåh?ËD)\–žÇé³dNÝ´B—È1/Æ¡ÿ?aÍúÖsšW ®|“‚€:á&dËÃ÷ž"Üëryt¹ƒý‚àZoWhƹÒpD*íÓê\­Òªñ­\+¿ïTûžØJÝóe"¿™”Lñ¤mù•LWæ¹cyŽ¡# ½ø:“†o´YyWè,ômV1a¦ —1_ ‰±ÿD¨z\Óþ^kÆ^-í¡LqiÕøF^¯&³ÒEeÖ7¬2‘¥íb|(;g¹y7ÝOJ^VêSÛÌqM™Z–:£3ž{ Ú˜0Ùè¢E°å×.Dµy¢:È:‘.}CYÎ&±¿‘Xp0jøkuÒ{ôBå‡)¶&> Më›=€è Àذ xßÐ>'&à -Ÿ#[¡å÷ Uç  ù IU¤õ’GµÛ@zÛJ°Ø%8ÿ‡@îý`¸xp‹¸Ç™I.ú QìÇ@‰ÍDå6‘jgè­@f M}è8lÆ6ôJ"úE¸FŒ˜ ç.[ç± €>ƒw/  /RK RŠ> +€îÃÕOjîû@ô–j‹R$W¥Zr%pï8³n¾_bïôø ±æX’›“D§uKtÆU Ù!Ÿ\é‰ÎÝÉÈòÏDP!€´®5€ MÀÇ™`ï²ð¢$dJ'N­o‚gÀ#¬‘`N˜¯ª –›DzIÀÄ©°ªR|Þ[ƒø>ÃhŸº%<Söù²µ’¨G«V"0CtÂ25BruP*§tÎL-ý¯,@>M +‰ˆÌB ëƒ3@*Öû'5èH¦œdü{@$Ø·©ñÕ0 î pj–ÎÆëý&ûlæ‰i>=çÕ÷õ{Y=þ@ΫDçùŒÿØ:'õDêcÊ€Lé € ^Óh)?}€n´ä‘áQh£`ä;Ø$²n n_€¸…B‚A ºÕKðIÊÆê©Yú{¤ÿØ¡ûjæ%aÃü«¼kå×*s³÷÷Âéôë$Ý.Ñ_È{[hûƒƒ  «|k KuX…5Þ²†ç•Õñ]bæ×xa#Ï“¯¥æîg½ìÔW/è<šàÂÞï+lzo#“Õm©ú׫kÄÐe3‹ +çýXÎî€>ÜP£]~š9o&°ü…$7oõ¤¬»I–‚}÷ǵwQ€\%5÷ê7Áö rF¹Á¨óü€}•ìø©Eo¾n]‡oý³^¸®nýš‘öäe›tþ—¼Âé§ñË CõùóÙƒC{)ÀAw]‚vùMýá 弯›åÐy¿¼Ý_(ûH¤ +Cd¹{÷_wÄ;¦|så¼P½%˜gÞc»S{ªÃ÷Ñû¢ÆqeÔ”ò}Y—ÝÐÝž\?Ž9áq+gV ÞçN'è&#ŸnçÝ}æÛ¾lýM÷³ ÷ŸØ}±ÛêÛ5Ã¥W&|{GBÛ$Ñüwó€†ùÈ\u")î\ï_*?J~o@¡6ÞX§õy‹]!ZqDýº­^©óáÄò§ZøPBB%…Sh¬}GŽü½'Óíqû¬¼w…ÙÙŠ‡Se3¹@¤wiÊÓõüí\*?»?–\™9[}?,އåÞ¼œûÞ_HšQµ²5—9‚ ’‰j,þ¸öÆ– +r{÷>ªýóã„÷yâßKÀn +'eSm,¾× àáe¸Ê’¼+>*ÆæÔ»:Þµ²Ù¯ïùÅÙ}>§/—¬¨C•VÕ•#癥·<,íWL?ëfWôj^3ãÐТÒ^ÑŸ­Nzþú/€L¿H5¯ms¤>Èïðq2ý¿¥¶Þéþyo¿ýÈíÒáå0‹îÇ;S‡ƒoL§;½ö»ºÝچ׵©¿—£õƒa§î‡u§ßñW+¶hí—Ü[9Û|4y[ÒIË.Nõ˜XÔ´õÜlnë¾AD­³¼[ AWk7g[#OÝ ç?¤ ùÿ»™å° ²/¨r_“N “rºïxW<Ö»ƒ¯²¾ +a´9©o.<À%õµÐÝÖ¸JÕÃßSÂíyŸ¾ƒÀ¿ÜÎhÅÞˆaUÅ fQ'ßlµì›ÑÆœ¯Þ-^+Úrb +:îœæ¡:4zû™ŸÅ¶³Ò(^+aá²ú I7“fTì€üè2ø×0I·RËí«Õ<[QÆüçd‚gVÞÆÛû|溭‹´~¹Ë‚ 1ùÆ*OH[*"ÌâR7sn’SÃ*¦Þ}¿Ö¬óÌôôP‡A)7ó+›þ¬di–òÙÔ5=K»íT!6NöÌ_í Ø€NesF÷ÃW4vwmªûóœUžofª– A&ìÁl ª$® ¼½Mç.æòÇ’° Îcaw_zÂ.™Ç&Ñ;W_‰Ùû³uñ@öxÇ“ÎIN¤½áeܽUÃ÷^Äo@7‰=|W{÷úÞbŠO]ÔVK)¨Q8|6¤;½´™+¨";Å”³”!¦­åŠš,v87î'ïPq#îtAÈ9k~ /£GeGÓº(Œ¦–3:X—¯(ý%/mY‹—¬®ù~–"HULòÕ¬ÈÝs¶Ê¤ú-íƒ ªîj§cmÓ#Ò]ÃGiUjs¦¥r‡½Iîª7­+5éµ³ÊeÔ-ËÏÚ¶>é 莴–ž´˜_™<’rjUMCn5TwrÈé‡;̵'ñ€ÓŸï%÷@óΰUÉØC•É/†W)cücŠÈŸ=ò–cáJøV±‚?úz…]ma–7mšK,Ö} áNþ" m¥QÑÌw_õtVºæÅ'þR®ì–_8?`¥*qÅlKº^Çd†Î×E™ëPèbÐk×|veÙ–¦v K÷ûÙßV+wKÛÍà];›\›»!iKDªQïR¹­Jø½ËîŽ'>·ÑEª¸î_@Þ)Tï˜}©za÷²dÛ«¹?]fu;¾É:'Q)wé•éu©®e©=$„&3°­—È2Ä]g¸º£y‚{Ñ…·Ô£yldÐ»Žµd†e±ðÃ2X6´¿tödÚnžÑ´FœZ\/ÉÐHËn›«J’‘³ ê2bÏ*íüÂ…¶Á”Ú¼VÞÆLyv¼ig¼;M´ò”ò$Tå쨵²ËÜâJ6pô˜såi¡{Jפû•çuMM»Ôƒª}“|®ÝqšBʲ/ÍæV?˜‰=ºˆÚ_Hú{®uݽΥñ2;yØD½nçŠ:ùmók+ÏëÇ­UjO3ÐÙ¹¦­3»vçÓ)9ûÚ´ íÅ`y=ó—û>‡Äõ<-Ï®MŒ)4@§ž®JOJÏÝ®!2Q·Cðx·“é¨Ýö{¾ìÞß´ÙSÛtÚ§QµqGý  9vÏSZ)ú‰C7DxGœm•üÚäÌøÁþcRÏ…B~ÖšâmùƒÅÃñ欩âx˜sxuàÃE»ž .î¿Ùœ*!´t©•úµ1ÚêÝó€éšÞ+y‘ù•% •í[Çyy­ÓÍ:HdØÕW4É^¡§‘ï®þ…ˆ)æË‡U{—®ân/·²†‹Sh9¡Oñ¢óh?Ì@³Þ‹ä/Œ}&ë _‘ü7Óί¢0z<:÷¹ ëA&‚F¬­¯ýódSó"‘íµÏ5ŒüHÅ. OI©“™ÏÒvÓ>¿—¤6}ë„_g„ =lB Ö‹vŽ™ëm®Ò›ý…KÅ7Šû B"^7»W%ÿ/L¸õÐsŒu›ÝòE^¹ÞEª dz’…0[1_ž—µ¡êýwï‹l±QÒiÙ|¬ûÍÖöÐ3íIÔ¥Úô—dz|©“Cy¢]Ì›#Bc?žÄ.[J—yaÖºŒY«ÕØæ-ezÖ[纒oøþ¡ÿ¶Ñͽt‡á¶,\è>t/Xßf×ð{’é*wòý0Z`êq°­²·AÞ +3lÉÍ´h%ÿ¡û­ãGî½ÕÇ¢»ê„éñ${·Ž¼5¶KŽ!ª› ×£ì 5'FóžÉ‡ÍÇ¥Tm>ø«Ôx·¯fc±]uðíë 3ʨa'×s°ë¸¯Ý¨Sïnƒiø7µŽ ‰Ê ˆrÍÝ Á¬ºeý¼¿§›hõÑ׆b†"ˬû½NHÒ[O¸Ï&mi,šD’_|æÌO-mcÅÍW=.5Qî4¨ÅD¬»ùO:¬3Ñ!®3!ÄÖQŒ›×¸ä}\ËQÛií/¬ÁnÙgS}No{U§¥ïQî¿ _”s‹ípÙø¬™°Ü°©¤?Zöúb)uçéfj… ™oaÕv˜ÅbzÇh¼e%T;(ÈÍî©`4VÝκ¾¦é°¶•“ÁYþä1‘nÕÐ3ÆU¬^ßTÎßv¡r>Ô’wi•˜V¦ïâ¤R· ùI4ÿÝü`Ò›—ig·yeU>É«*鋨~ºBšï0U¯l÷z£wöŽçµÍmLÌ2‚ã‘Wlu^^½ñõN9šTm§J,0øt[)VŽg³j š-*ÍŒ¶.ïT2Ç9¨DVµFÑV¾\‘j®ìÂ÷ñÈsA'8 + ¹þ…Egü¹Í%¿p”?,õÄÔrÎ.­Y»KÅ9q »Ÿ3ëfì™§†#ð×:‡‘ß$V~çá*ö…³åÈ ó¥çÞ¯–ÈRØ,R˜ß)0ÍÍsí›”ã)XÏ¡i Öhê•ËF¶’£¤Ìѯ™c€—Ì[A+ֱ㴫3¾8ê†s™­C7rˆMz8Pñk¶4n|Æð´ÎUûF­U­êÑü¤f»Ê¬¿uÊÚ`µ)‘EqWøžq¿€D…0Ÿ}!—\<£¬ÔÿÆ™£—C2µ\³„6Kd !0‰ÍY¤¦²;È61D‘ ¢º]¢zÜñ?ü˜Tÿ¿›¤vÈx¬é›3Òì8$WæxÓÎŒë,]æ°òÓ˜&²bé¹qE[â„‚3%¤<×IVuN“¬D-åÌÑ]ÌÐËv:™e~>„ðÃÔ‚¾YFC‡ °á&é’QÀØ4ÕÑÀõB’š:}J`½Ä7u7áa‚©–ྎÙu1|·ÿï-Ò…ü4<<«‹ÒîÞzX^ÔÉÜ_HŠ;µÍöè@ÎV Õ[ | ƒé(¹:Íš+º¹ò€,÷0@D4IÎôRv~•äiÅ=¿Äc‚õÀ§ÇÀg¼˜ÀÂãAã1xÚmí%ŽÆë'FLeÚ><ùüá>nÁ­7£w—Á&pÏ£Ûlõ ?K_,‘zž—Êž1€†¥&ÈÀBdZ/ dÊ„Ðçl PïtZÉ´Ë·š÷¹ÅJìIe;Ξðí{7¤Oïd,þx´ò}•=;÷ä$óãÚ›ñŸ>ÈHåÈ0³bœ¯Ëøëà1Ìó¤’Ò³¶&çY̬îwŠßß ?E¯¶ùŒHe ÝìèP¸Qz­}MºêÉ%'íÓ!$ÂŽR6y° Ì÷O»Ù£f¸Ø +%ZÛ&eõ’J9*Ô=—•ÕD*Ðq69ÝØJ‚Ô,mõqAê<_Xë +?n»}õn´¨ƒ[ÑO«ÀÕ½ õËæØ_]ò¹þî,ÃÓé°§J<‡S*¬†­lu,ôþÜï7ºîž%JÞnH†îæÒöúV¸n{ÁÍœw—T~!©–ÆÏy6™â'‘zek +Ÿ«È#“¾jj–vÞR„íŸMÁ9ÝÉ&ùº1ùOö²#·µ³¸Û'¬ÙaÃÛ}™o3²üdj½öûáñ°_g£hŸŠ©]`7 åÆVÉ;Ê‹õ­÷]­[ÁeéX]Î\Ááknom}j¨±ü ¯‹ #äK KªµDb­›î”|Ÿ¿ï†õxäÌ´BG}¾¸½æ>îùtêq¨Ev&ˆ?dÕw8ßî{j7:»üVtÔé&|©Æ«ë®×('ªçòþá>nùœó~ºôêóf+¤\Y.“—eÐX[LÎ¥t³©|n³±òÇ¿ÐC˜H½v+ ëmê §q©¹÷Ƀ¼=RŸsÚQ#ºƒj±+,Ž·Ù{|üìgà]¼Šlf[±ª˜w-?R'òu|Ú}†ÆÈ‰wÊtõÕúŠ>‹îÒkXG{Wñc» ŒšV9)¨vn-Ì‹R2 öUÝ”•©f« )…ø I©? + [V~Œ)eÐù‚Mƒü®,¼':2޾<]i(5,T:Àì}¡dúÛê½y­Õòã¾stÎY,™·ø’{9}›÷g#ë€hÊâx•Lóò˜mÌ&¤óCSÉ‚n®¿ƒd?Ò4û:Òæ.Œ)ê&s«¹‘-ü…¤àÓ#1dKr³‚'sêýžh÷Ä}npÝm»ÝSS°zó.§[IöÅš§ofTq½6>úÑYí“yþ À¶O0ɬ%_«-¦FÒðUþ@:»ôEc1Ó–•…­AÓûaÎD,¤rï\OÍmwÊl¯Uå ÉeLpÒô´¨¥Ñ¤áè@fYM꨷¨‚\Dï Á·Áë\9×ÈFñÔ\6*‡~!jîÜf7×Isº6_›¥ÃpÕý’ÏëXÁÞ eyGM<«§Vuý­wëÚgT%5˜ÉÔÍõ&ÍöáCŸ•rùR- éé9nOë]HšÖ‡„"«>:–[ÂK˜Ú—Ídæë[XV·žÕœ‰ý ¥L°ÁhZ?t¦ò<3YMŒB˜ºóŒßãUmü6Tal örŠñ¸ë¼ô±ÇÃÜ/€l®_9|SŽ…ˆh^ÄÇã¾Úƒô‹^ߟ缛”¡¢g°§¶K£úÏ÷¤ór~nÞŠcÞÍØ×Á€;kŒŽ¾æÙÏ +šò(¯Èp›6”'!ãRÄŽãüq,}‘È”èaç ®ƒrI\ßóÃÉ8л¢8·F‭r)ÒÓy~ÂÿtNÃDª¸/=ëné\Ëúß´Šß{?çÅ»êc6s[ϺߞÚZmomÖžðgeÑŠ:¶ÑUÆòÍ£ºŸîﳊ٧×’îÅ•5+(MHÂlJ_Ÿë‰Gñ®ÏkBÁØíx)gfy)?gx©K|0Ê|ÐýŒø þ¤`!iKãD§ª·l‡Ä˜NÍvþæ¼v“Ö콙µ]­ÂW©×–åðÓ_DmelX'ÄÔÎU“Ñ\ œËÃË´E}“×yý/)/17¢&æ8´Í 0cT^!j=œ­ËéFÌáÌkP VâðŠøÂ¨VÞG5dÅþ=êå¤gªÕ/Ž@êö|îK*ßÜâÚcm‡ÈñV°”–Û¢5³W¤GåÔRGöÁ\ š[9Û)^k'FcX¢ßâ6_Ë‚ñ*óÕâ^·.ÃÝýdðZ€å [pžƒnñH‚( ^Ë Ï{‘ã´ëˆùI4ÿÝ$ÍiQzMÁ¢òSðA žÛóš¼{àzsÑüôº<ý§u ²æ¢ÝiéÌ1bçÅ7™Õ`N dèNz÷Ç^ò +ÊY,tË> /i¦šãÖ°6xKl—]åY…ŽŰ'æÆ°g­Í¬1<ù]§1dûlÀ.'eškì7@Žv‹ü!᫊¿÷ÂuöØà34õ³q{[ÍÒÉRÇ듹"Hwo6T­7«‹Â”ø¸ó u­'sÀíz#¯^È×JÑuÙvÌuÞ,Ê~¥z…ñò¥6½CZ#ºÀ-̾è7/}ÑaÒƒ4“ðË÷ý æèQ!f™Ì ¡™Ì(îÿÂO½Ž| \ñòOn®mé­öxÿb]«ƒñÑÊ{=së½æ"ÉfJ‡ ¦í×5mž“þQ¥<{Ó…±&®FW?»¶³»ÓèÒe¢Ää¦ùBÿZÔ)Wô®0«öfÇÊ©7ÛÞlñõfÓ GÉhÄRG4è÷ËÄñÿ‡45iø®rî?Ÿ4víá=)(©™ŸéÕžò·£i:¾6Zz[³í‹_¨K{l‚ˆã®”2¼€õÖʯ7 ΚDî€.Ú>³1WZxSÏ”~ug{7ìSï>ZUºÛžŒgäTäâFÕÈÅê9$ó G¾æ;¶«ùN¿Ýlꢕfe@)¿·çy¬!ô-Çdé¼h[£ÔKUpÑnv™U\Ô_þÄE+ÏqN¬çDiŸiò³í¶?47‘ƒìŒå¨Ý‚)¼g^ÿ¨1!5«×î=ü˜‡ÉXÈT:ßI›êЗ崃¨Œßö’ÆÖ˜Ï´lÚ9´×rÀtúž×ï,õ —@ĤƒwžžÙDï«==¼Z­ñ*4à²WeŒñdÐ],%AÍ/Åê ò·âŒÚŠXä–§NZÓ¼À0Âì(ÒÕª©R×H²{ú”LÆ åÊ™ìך Ã–ú¥öSIBhž$¢ø˜m‰âóXÁ]œÅ¥[a€Wú" +ªÓû…$špQ¥ÁV1¨‡Ëlw»N=NÆJÂüyy-o¦æëäŒó¹ü‚o}G·ºá‡ÐÖyå"ˆàDc³AEU“é‘,u­7'é9µê L&hT&Ý·Fˆ†šÅ'ö¾ÕºÀ5¾¥„ñº¥l¥æíf0MéЇYè7[Æ—j¶—Þ/ì}ÒK:vz,ÇrûjZ½Ñaô½ÝôE¼Üq¾VMפùyo¤qˆz™Ó²KÎûM‹[Q÷ÑóÒ{+P(D¹ 9 ÑÙ I¦½I‰8È”ŽŸTÆÅkíÜjÆ»oSïk×z6h,dzÕX |ÌÝ:å­Sÿ:D*T͹ÒT°î/lð ñ\ ¸p[´ÏóP]/{E;äÖã¡Ü¶ùùh¢sÈò8£åCEî‚§.wòVmûáiÝeâÚ.“›ôíI`ýCWŽh§Õjƒæ³OÊÍΚ7½¶«;Í糎d¡Æeƒ^-»5l7w¿Ø®ÒƱ°EUýO†ªŠBØ«–Këî/8›î&-«å†'}°@|åž @Ç›#»äçÊÜxêEí_YhÜísõa»œ9óø,^Ø­;µß¶ˆ½6X4–T?×€Ü1VGÏj»6ìíØÞ¹«‡sάV?ç§U¦ÎîU©³d¥¬ž/l¹eorKýJ÷c‹(ݽ*QÒ¹L»DÄ7â캚¹H f3›ÚL2åñŠŸ[–9à„hÞWÛè„\ç꣟Lë)l“¬gé]Võµ¥ïj[gqª*‡'VîÞ *FŸsåø©–çŸ ^zÒUªË]¡ØºVpú¯]9òï¼·ÈaùìÇævŽåçvú¶’ã3·´yæFçm#7Ú®ê¿`¬œÞA­aÒvŠºÃG™Ðpj¬Q÷7*w¶j•ÇÍÔ¿»[Ë{åV~¾“™8¯*MØ÷ÊDvë—Èâ*µu©ªq-0 å‘÷4ã“Û-´L®ðñ*Y‰ŽˆÌqƒq™Z^™£—  3i £Íê°DÞB4uôIp,þõ¸6w2œ?ü¬°7؇=àVˆN=ª5¥3RÛb áLÍ‹y²r:vYcw£’9Òø"UáǦNÊy¯(9ž„Ôl°„ŒÌѽ[y€®ÑíMGØT ;DÐ÷ÇrKL1ˆjÙG3õ‘MÆW$]„¨nƒ¨å'°o¿ //OPô·=ð>夫sóNAèJMs³Øž¢È²:W›ÅÞóšöi䪓ùì£MdëCd+ÜËÈ̃B›y£‡å“µ Q-l` &X© >KˆÂû©­wÿHÄvó îd"Öž%béädjM‘Vý×Þw÷Tÿ")@æ <Ë$¿“óñw/—ãoIjğУ♕â7Z$3üpºõ(ÁJp+ÅŸ^)y®7LS“„K.Á}¨¦xg„Î+—‹?b!yTõRtÿE2ÌIÑOo“«Õœù…Db'Ñ饮ÂOý±u>S\oWLô:•ø»ôZñWD˜ø‹¦ñYÛñçû „g‚?çR5‹'XÒ î|ü¹T”’â(I˜Ä âbüù ˆŸÔ|Öɿ̟¹ÿa˜b”üÁÅßúCøq½/€‘ô8 ÜCL_².G‰N/ªhŠ‘ª’ÿòÙªq2zý15ö˜àâ¯^-$7ì{ñ×€R3:1I k Žnü5±0ÇßEK°NžÛVÅØUÇ1SÈŒcÄ'XÝ~®äÏÍÓ“,~Âÿ £ %½Dêê’HõSÛ¬“-X£›fŒ>€+ä¹sÕ5Þh´¿ˆ*%õ…šVœÚêÙLò\ßTʦu´„’çéÉ%A ˆ±ð†ì;7K¯¢ÊϹž>¥«"§˜>NýÁôÞWËùГ!ßϺK'õXs9µÏkRn}´“-/‹• caOj`âîi¬Ç =uÓèa}9àðNÍï¶ÇYɵJU™|å[…ÉOy¦>iÓ³þ¸Ëí&ÒÒïm¥¾ÔËJ}íÓNK0qk¤¨Ip%¬þÈìnÿ|(àØÏÜ2°ñ<úµßï*öv3;¾7ë¼ ò_K¡°+XµÕ4‰ uÛR 9Õgê®ÿXÌÄ‹µV0–öåÛ·|™<Žß×ø½¨ôñ t –/QRÌ5^Æ;GÈïˆ÷•–¿Íôò+±ò I}@ WVó?‹ßÖ³vØ3ÂvsÅ?ëõki¹.Oö?þÐïÉÝ:£RÆÔÍ\M_ŽÝ®†jÝ¡Êïß²rŒçÚt6ÆmÿÄ›qlGé+ØwÑËÊ_aM‹¼ÿÖ ¾Ü8 “ù.c°Îà3¸F3ÞM<:C&fMäFù@»ž³·þ=OŠÈ5@ì«¿=5º[¯ÛºnÒ[®òãdPZ Ê—EëV„ôÏìTÑ2#¡­ +Ó «L†8mÞ;é¢×d‘Œ1ešŽÄ¨²/æ²ÄE(B­jnxÑZ .š² §ÕÎáwäÍÐ¥ÆiýlƒÓš_Œ‹¤ÊET\þ…Ÿ +-¹sêÑuœ/œó~ç.÷•ÈoÜOËpW[*kÛÕf/pÒ9½É.Öcµ ŠL½©œÕ[_~P=nÒ>Çc¸ìiâfÉ/«løJŽ£Úæõäîxˆ ^µ[ZX€ç)–2u•¥»'KY³*k¿ƒ: ªGŒßNy@V½Ò/€¬×Fo™–ñ8Øî¤ótïµ¹÷Æ`#wY&¢D¢YÑÞƒL'ìšÇKO5µ3Ê…|`ò›´'=¶ÌJëùNóW^áÃAÑM¿wgØš.÷\[\Fì'§~Y¶Ê ‡$=ì·ezHK=dÈ2½ÑäƒF&Æ0_-]Âcܬô ñî(ä.b–¾È:l®N{ç®úþfU :®Õðg ý{wgZ®qpUióJFÈõ#¿`£8 NKâêϾp³!/ÃdzöÃ0jÜçœqríA6,MÏLæÑéüe”ï—AM°ŒDMjÄ…šäÑ"Œ +»d¥/l˜r¢Š¿pI¥÷IѾ·}q¼I^{‘ß9c½µ±××1IŽ0çûFw:›vÛ–Ò*y¡N_cw†g¤Ü&Æ„1âtF×>à ðPÙȬãO †#ÛÍ·Ú‡~ùRPØ¡“é5ÎJj~èjßÕZ•cW+|WCjÕn„7+½^,ö:Wø…¨Ï½ßçNÛéH Ü•úØ-¥æh³ D{©£îUŸÕÉÛD¶²†:éßýt5Îl?QDÏþLÛ…QkÉ5¸Eœ#}í:`3õ¥Dï‚Ú m›šZû^ ªÞºÄ»“äW©w€[â;ËAÒ1/±W¶³ÌÕª+Ë•H2 ÒsÂÿpñ'ÊÓÏQ ôŒJ?p²ë›oͶٵí K=|Çói^M¤Ñ"àŲøÕlAïGÒ»;{8Y´Äœk“)t—½~øÒS)Em{s£¥w;ÍÒšìU«§ÝèÚƒŠRigÞuŽØÚͱР1|TÊÄ0Ì%XC¥6zåáˆo.·íé¼ ÝÕ§~°OÐ$m7fqœ¹Ÿ¹š +žÏÌÆ^—ø&Yc‡¤Q›pˬ¶¸Å d¹sðdŠ’‹ôOu½LÍŽl³§]YªKNªC’šÕ•3®ZmNé/ /\š®‹x¥Ç¦Ö bÖ­cH -¹Ã”[Ø®Xla6Zha£{îüMŽ8{Š®ŠYß_Ÿ¯§máš=kT}BÇÆT8~î•a„M›¡Ç·iêpÙ?Ó/‡º saï!Ö^Ý·ÜBÉÚ*“ð¤ÚêdfÕ~;¯×E¢dµu¼ªõ½ÖôµŒšêç‘i¶œ)ÙxŒµeãÑ™|m~V¨¿îd¾¾sõ‹þƒÔ¤ú¿›m]Ù]äÖ?Yj•Þ0iº*Ö8Y“ïú¦ŠjsÈø Û§ðÁªK:m‘%é·/w<¾ºêpÅiØæÛË'X!а„×Ðw:äh5óº©IõIãyìz|sÃ:Eä¾uÝã5gëé5g¶kˆä0¯:Ëbƒ-“Á²½ú ëÞf|²OÔ:0>øs£†t)Ûb5rˆ‡v/™I\yÍÝ…k’DÞY?‘3¢yÈTS7.R³ÍuwÎÚ7×OTÿÐ8\_!“R–·D½¾Ø–îªXþ¸ßUý)ù®–>×Z% ŽéW°*á8¼UÆ—l¦RíÑò)²‘òT’à_XåÌÑ\ÙíÜ_“I™äYS*æêðÍ9c¶Ð»(üñ :Üâ‹ãÿ‡±;QRÙü, ‚û¾‚ˆ +²ˆ€l¢‚⊊úþ“TwßêùçÞˆ‰¨øÐ*-ŽˆyòÖ“A½‰—zÍ}ÿôjL®;­®æ¢Êá«Z)vüÊùÈ?*‚zƒËR(—Ý/=[.]RÂÆªøž8§¢^g É +‰{óC…¡øÈ†Ô9“ÿ~Lø°šŸ¥®º“ƒBÂF|íTƒ›µ\…ŠVgô›ogòd5 +½¶l QsW­úv©Òh¢£²ìf¥°ËH¥ž¾XüvSø,ÇÂ([xæ7T'MBæsw®€Ò#¿ƒ²M9\NÂó)3íRî\*Îrç2ÿÌñÂÉñƒu6Ç×W™?P' G+=ÖO{ŽÞ"N'Ú!}eq=Óø&šÑµAKk[õÉÚ©U„\,uo×Rß¾ÉÙ¨sùí²" Þ +•ÑBR\gÅÎ7-7'L˜Köæ)¯l«¸ÏdºÕw^-C(~ú ÈÔXjÙŸ$$Ö˜@C|q†Cúo,­ìzNÕs+Zãjò¸y\Qt÷„ãÃf\⺵ÂE®•[“{±0Œš¹<Ò»ÖÑBµn§ÉæÎLäêÙp”måãL·lS𠾜Aö$®+hØiìz »¥´Jv߆=‡†}|ŸÎƒ~‡åG Ø® xD¶Ó@ëÂd:…‰2f&‚ˆë¶ÎvO®6nâá¢_åt½Q|/Üb>W@r«tйóZªeo»f9óØ? +ðŠ_— akš²¨Ì&Àï¾CgŸþÙhí¥ˆL/u$¯žVõ’à%õk[ÀOò2­BÏþ þ×ÏøëÝÂø{{½âï·ŠëWü™+qœDjºCljû®ÅÉ¢‹ÅÉp5‹"£è-àp‰“Qþ Á­8“¹.€ xÆÕÛSœLÊ@ÿ”÷Ëÿ¡ò³°üíVû“¯y‰õ 5ŽÓxoïøóÜÆ ÞK6þÔÐZüA„aœÜÎlœ°ÖÀvãäßXô³š»–\KqòÈ5X Ž'ÏÁ +ð:ÇI8Içbœ¼Æ_|2åÖhÇŸr³ó ÄïÏœ÷С®j¯jïB3ooœÄ_pðŽ¿ð<}ãâPHç­cW€«¨ö &€è\€Ó28NãS‚ñ“‡ž.ñGÞ±ÝAªÑf€´£œ÷j¥´ß.sþ¡óßø;Äs3LàLÿ™@¯tÚU+Y°™·•øûÉ ~òÐvgÙ¥;W+þv{Çø[‘ÁÎS¹Cñ·šæ¦«T`õão/Çß~—,–€—gˆÂ9B&üò[«rxî­;!)°fpçfÒ#tºì=o8Ù}Jßnç—¿£ìàf')ô`$€o!»f½y"t—M V¨‰m¨`]¨ÅñúØÎÅä|–Ζm¯óV4•,ìí=œñ›Q.³—ÿ~K/ΨᥰðŸ‹Ëíó计â]϶ºA2HºÁpéÐl ¬ÎÍåöÜÌþq;ð?ß샃6@º§‰_0)'™¦›vGãvÚBçF´ûR»÷þM^Ç;õ|U;â7Wú ’MõÙ&G‡ø£7ùLîZåîØŒPƒOi—^‘s’Jt¥6½h íÓµ¶N Êhå]?¶Y¼æ«çBÅï­‘À6ûH2  º€]øJ²¹I6MKW“L ÷“Œ‡M#:Ê¥c/þì.ÂæÌ6/DÛÝchy +¾9- F¸ñ¹mÖzC²çꕦn­ËÁ¾ .åL<9óT™?I,n—«kà÷G™ìþ‹"õ}¦x®{“ùªæº×iÕuÝazØhiÇ.“Â/I&¯õà}$Ù9–$Ùã|ªIöDôß•=ŸƒÎèžT_L@r¾tõÊêÂM¹ÍY ˜ã©… ïÇ.ÔMþjLd±øw\߯ÉyOfwSoK%’‡øŒ»óõ[²:ïÒf1ØWœ‡%—…˜•œ.LÖƒZµãëù%ÉP]6z‚ó?óÜæ 9ÍR†h’›U+¯k—­<ô›YÆÒ y-a(~’òØ_ÇüÁâÚêÞ¡ko7*\иºE+ÿÚqaÞ^úͶ¾èÔ7A‹Ç6-uÃ8JœK¯ñXëÅÝÃ^CÄršŸŠ•U%sú^æ0˜O'kíræ—$s Ã$;† D,Lr‹”ä‚<•s6ò0x<¾Ñ %>K3 ñ %L;ìûÍÒî{ù€ŸîN“>¿½›êæÞ+¯°™ñœ‡\×úyÙŸ|¶‰Q½`9ÛaËÊ&aRÄY0ögí¤ƒ/´º¼âª1yåµ;rFS5, +éùFUSè°? Ôcéžäêù>]«á}óü}©x7¯ÂœO +4?Ö$yL¹†î„bÜÜ“&ï'V­$zߎtò·¸(aÓ±°ì 8^«×å9v‚ Ž0ž;v¬—Ù.*~˜ý£]dJ] §ÑÊ¢çÒ'äôMIR"ðN»¯_Ò”jºÇ¥yø0‰òé ÝÞ¥NúN +jŠ ÑÞ +ÁÌäú㙾Pgªö.¨ž +å©ûr:m|¾úÈK5QÔ°Çk¯,17nOгGÝVÚÅÑ]qͰ ñHóe9¤®Â¥÷^zWZ«é]-Ül’Qçpä_)á/ 8 Gwrü:£šêxìÒÖ·g¼\¯ýiÚŵŠ3g¦…ÏDÓóI…ô’³¤2¥Ëâ8Œ"©.™9AÙ Êü`„¶¹ïm?`·sy<óèËø]L¦ÏžEÝʽÃôbÉ«ÄgÁ18ìŒãúe9Ž~zÕ÷8nÖ’I_êÇ“>Ý|M4£þAL/œ8@%ÿèÏžíÖVìÊIrç¥=}wEã¢É3í½Ózó%%ƒîò1¾úR£· •›¦Gèyr(9§i°Ó§Ú›iŒ /ÙæÚ¯ÅEnFåú‰`öÛ(åEx‰ŽÐºÿLyüò ôõÜf!×cïwk£Ãݦ¸•bHð[ÔŒq)½\A>˜/L’ o"v¸—ÄÇxÙ™Vßë†ÞsÆ.t˜¾^±u_çkSmpïN°Ð&ÆÄMcÈÜœGyšµˆ)ùùî¾qq”ðyšâÞs‹š’¶lp‘Bü²Y<‡•PyüÁÝ;WÿãéÛÝí¼±èú]Y¥ÝB]…ñ^T6Ÿ+-5]¡/ ²ƒá|½$Yn»]l±´ò˜³'ÜèèÙ¥eׯu.;1×ÒxÝÞ4ÉÉ ìºô‘žeº?ÖȾ†7±‰‡-—Ús¾3…A³ÉA¿ytüÚ SÀ_™ák{Ìã—Û ¿¥Cx{/×v¶Ý½dÙnók’MªêW ²¿5haåOÜô$·fGf7f.ZvAfË¡ºt˜$öû1vû¹kÛȈ¹Ñe‚;âí¡pÅ ¼ÅÕ¬K5—?™ÛQÓ7·Æ½å3hdm¢G’—]¬ÃèÍ>{ëÞàÑ[W[÷?8/óCß=ûð_Ã9?+Ð¥\*h³ÁK2ܙν›Î8Æ4¸OÒ +yljTzÌä£ëÚx3²¶¤;ÐÏ#CbSßaÃé£xÛ¨Õ°žRè 0½<é˚ЯFv—’¥Kg¾àÎle:3ñ²îÌh.ì­´ãÑ)ú•{‡ùÖÿÄÏ -w«ŽíšýµþX +ºJªŽ¼¸'NÀ¤ï”eá÷`}ÜÚ™õdAcñ‡ÜÓRî’1¼ñ ,鼃Øk^ +±T†û_¥PìgÄL£‡, ÃnA(³²Œ¯Ú|hû­Û ÿiIɵےÕj’£y]©æ}WèÅÛx¼·sˆPKOk¦Pͬ53©¯–Åïx!ö6,ËÑGÒ +$÷ÇÛÕ²>\<8{‹JÜÏÄ Ywø‘åõ¾C»Þ޵Ï=ô|xu‹wæíG©-öãN+°j“æs3I‹“šÝØÞ6ôYãÝÀJQ³e+z=Í[Ýü0·úpÙ½Ö‡lýO~Fžì‚ÉïVïÎÊR¨ÞQ•Úû«0Ÿ(_†Y ÐÑdýÈw‰‹VKÛÐFµÐîQ‘ÎIÝ×;|¿8ìÔż-1[µÝl#ÛÖRk‚înŒ‡Í>£€ÚѫֿÕ/V-p®¶yn¬Ò¯UùTªî§µ¬Ò£õ©š)—Êa:Lç¹­ÝÓ¬'›ƒg´¨ØQÇí¢¾*Ä’Ï ûs;'SȘã£*±lcFeUî]®õ óp}½×2õlûPªm_ùnmºOkèô˜HÖP±kW÷˜âW‹¶ÿ¬¹J¦2¯,勸 Ë"Ϋ¥`ý9–äù -ÉÓ¢Tjæ¾ø$”cñÙŽEå4ôÿÀ¬ûàTg,™/XZÚüNlq&ØkfJôŽäˆG£†“·zׯ=ó-….ÁurOÅ•£ñ‰Kí¢û -D_Ðg2ÖQ0޹yW©UþÛÛ¹ùï¤û̯kN.?JZ|ÆòÓÙàÐ-ËoÐi·— h¢ˆ7ݡȼ"^‘;#îsxú-9›ëeÉ tÁ,Eeõ§Ö);ñTuˆáÇr»ËM+åæïåj;yžVt•¯Íû»ØÇØ0Ÿjot×-TPtWk"{‘Å‘YærGû.æŽ>fææŠãg/ïw˜ÝY>ÛXd±Ì}èÉ™eI:áÐ)ÀZ^V ˆk]¡¨[¹Â=²˜~<–¿(ùMÝû‡ªò“ÕŸ~ˆ3âwcrð}â½Î¥Þª6’†Vm .ÝŸ¤€ßù7Š¢™'Rš®à¿5³·Æ¤›mÚ,žQ2|ú’ðª.Í ³Í tU=€Bø»W„†¹, á‘þOOì„+.à–@ÃÂëóRg7_qE•–(lϱ£sWO½°¡¹vÄ)×l±T9ÃÐì~¾ùl™ŽrÇÖã™ÃBœyÈ +¿Nëd.¸ÿ¤O×-À­ Ûå1€ævÚî?U²Té'¥Ú«OÒ™oí2§áâ­ NþÈHÏQó¤P‘àñdÙl‡dG|{LóR¯Ô°P0¯ÙOGq®Ú.DpH›áÏjZYèÿ¥…ü_9ߟ `ýíæôï\o'·Ngp¸ƒx‰BZ‚L¾öúÁjuhˆÉà©ÿ•Uê?ÄŸçà¡®hâšÝÇŸl°ñxŠcÛºÅñè™Ä19.‚A À”_;-Ê=`yBÀçÇÓNÚ)K¾8tâ˜*‘kÇtk0À<”A¡ÿ¾­)ˆ“aŽñw8<€`ë Nòíýdn/'úŒ“æ8ǬuýîDZ: k°VõkƱ†{€åp¡òQÇB3  ‹€M3ŽÅÜ ÎAtE €×EÇé 0ÑW9¢ïúñ¾~Eßg6CP1û'_S9Çß›Bõ8êb +¶ë³èÅŸ1zŒ?Uò'W „íeq²Hw f=‹“¢ü¼ší\ÐÇ}îq¶cŸlŠ€<‰kòHq2_ï#§é?ÞÓ·—¼öÔ1óÚ‹Aö5Ã.?äþ MÛ¥Ëø›§ª­eîrˆ—·†Ê ld?Ž?›l>þLÍøÓ7‰øƒ¼Øøƒâ*ÀÞ>§ø“ï=âp@âO®Ä—K+ºb¸ÒèGc‘G9l'¾YhΕëS¯;ƒ?¯r©– y­_ +k}¶õ”L 6‡áìÑá °‡¶äãmsÞ· í¤ck×ÉCþ^eö½x]âóô»ü’@§Ç1K=àìþM§vMà2ýNàŒŸV¡k Du°hºÊŒßÅV̆çëMzÞôãùlu¿›‡büûë[»Ýd3 Ì]ÿ )&w[„Ò\ž;×í;C^QŒ_ž¹³»?.Bã᫈ÞÌä}k¯}2GÂ}B~Ÿð“‡nƒ^"‡¶3^ß›à8ý Qɹüª.¦õ§ìÖ{÷( µO˜›sÎJ×—¨×| ]_J5Ô;ÏÅóITÑû1ˆ*ѱ·Ó¼€¯®‰â!Êʃ~E™=±V/Gmonž]¿v³3nOõîs;*í|Þ·U& ~!¦ÓUš‡$“/ì’Œ(“ÌîúL2z½ý:v<ž‚—Üq–ÈÜ&³Rñr¸åZ'IwÇÎÈûý6;Öf±ÿÂ'c?šÜ·ÞƼ< +o.=ßnédw,CW·§£‹oký¹æ< Ç_¿rÇÐŽ óôRyÛðÇwçzõ­T¯¢ì“ Öñ@€#7ÉV—$ÛƒŸcg'Aæ$ú—J®•U”ÌÍ9¿'¿î¡9³ç ëñO1¹žmÊ”67{½Ú´2žã<¶/ßé$¯Ûz5Bb;ÞvQ{ˆ.ÚÖ÷ÐáÍíÊÞž>Œ"¼¹ëþF»éÜ„¿êdrI9ÿBù?%ñ»þ6ÉvÃëÂß6wèL-oTñ#ÙYcu’óMí`Í×Ûyå‡[ª"ß­È>óyÔìôÖzGÚÖЙÙêHíW殹wLT |c_ý¹zÕ(JmHçóÊêÒMH- MKk‘«ªVâ›ò½KÊYÑæñÀ›L’l–÷¢â}´6U½œæWñ +ñìØ“·³<$Ó(—-L­­„MN¸%Ã5W!›ˆKE+§Du3/ÞûÆìp'õS9bWWô*­Äu¥É›h«>ø¤öˆÆKÑ7<ª`Sx°$fŽ*;¯ÖQÎ Z—Å.)¦mèty\Pä§~I2o>-e<zÔ²®åRuyìëö™L'žûHH·Ü82›eà,×fí¸³3sçbzM+2Ø‹”Õk£~iÕÔÒC§¶”kU㑱ÝÊœ‚kËå(W0ä ÝñäÜz,èì +’t¦!•ü«(ò½™'V#ý,\ ñ(\]ÕOoíÿì–Ë}Œ¾ÝôÕ›å4W +¶tÈ„[Æå¸÷h{³Çئ“TIû—xk:ïY†ÿhôz#wק𣾼3¢˜c³ºü«ö2£¸ŒˆÓÉ‚>0¼äg8U<£‚#Ö3] mÿ@e¾Ã"³¹öry_‡)‡”}Š—âþ’dɶ™õæê£ªî±&ï ½•óáèHÔ]C=³Pe“&SŒÊý¤®äÁi§uÃÍE±Zü{éä†<]ó F‡j’‡zâù …›w¤…tùnîiÌWCÈãÌqýÁ~yŽ]3$É’¥¦ÅfBÃO9¤¤MŽté¦ì~I²ëðüˆÔÅæR ‰Õ~WŠç;q\§œ(3'Ö0tèZè£ßÕ/÷æxÕžŽ$UéµB,FGyw-Ü{ûKóÁ.+Šm=mu +rmÞàÕâ¸?×sؘKp‚ã .¡°¤öûéR¿2Þë3Œ¾0EÚÓéc±vHñ˜"ÓwSv)Û_’TºÝGôÀ9¾¾§4ËáÍúçù¶-e©µ]'‹Š´®QñU{sªð +ì!†Lg»EÉö.âu ¼9C¼zk£sýXªr– wXLJlöõafh-˜âécÑóz/ÍÙP—™œPõW£= ô–8{TýýrSv)Û”Í/Q 3N¡kߪØK·:\qNd?){B4ãä:«<-«xkÚ[n®«Ÿ|½öUéôY9¢´â|¡ÓÜçÑ ¹Ï:̲Ì.°9ÛmÎò+cJ²6¡«¼&P ÆÐ§²s=LB¤MzÌ¡>éÍžò¤Ç*^Ên¢ÖÛ”4ý._Âû ã]}!°Ùûh±½Ï9nmŸ÷”Uàs„ÞÔ m_@…åäŠvä‚?œJBc(‰Íiñ/¹µŸã×÷•­÷!‹`òwVèÐiš)×ñ +]+5ÛT©ÓN±ÃM´1ø1pÞ%?ëkHÚc¾BŽY$GhާSÀ`èŸó'ÏÐ|y—:¡[ÞþU–6aĤSÙÛÁŽ6Îîg¤­f·ÖrË] + n¤×¥ú „g9Ëó«ÕçP5ز[ß9Îj~g¸Ó “¥íriªÔ2Íɪcc3Óàè‘‘ÉL·³!Ÿæ¡ ÷[.´Ó˜œÝn˜kWœÑDîfõõ/ãè{?ÃO.|%Ç, æ3Si}ñ¸ŽÔáÆo/8{Œˆ‹¤Wºá¬?O<+Ý8gî,Yª Ú³âŽòè˨q¡‚A>œ*Ïûw²ºzÈØôÍ +¹Þ­º£ía=¡™³H’Ør#üŠŸ·7?»9?»õ°½7Ãò5X¹jÈ=­´à2]þlqf÷3ü´k¶nÒšìVæfe#2«^å@.©Óåiá±ñ)?‡›Q‹us%rvhŽEf~éétƒÍo¦aísœDÅk0þäÜx }.]$³ïEi„Þ¹Q¶Y¤“Îõ>ScÒû`c£‰ªÓÇ(ÑîëºlýÁé©É¶Ë¯Fª5•…y¼£âª÷ìÍ–îªCˆ÷CÒà6WajÖ!¡”þ-?]ÍÖ$>MÒÔxm²<¹Uiuäôšð|?<ëý~[ÖÞØC@¡ÁK.–ú1_ìôqo0鎂ÜÝVnwr“’."dz)SvÉVw2š:c󰚟åÏHÙV!ʪMu9Ùh„‰¤Ú×ülqnÅC>ö™¿ÖÐéÀœÄcòZø’T,öܺ?*¾cЍ|3â°‘Et\Æ ¦Ž2þ@Ÿ|ƒ¾5|¥Û>´AÑ^ÖD]ÔéŽ:L$ˆí#þØ€ýjW6ưu©÷´Ö9[­s€™­ó¾müÁÏð“cU¿šy¢E‹[ª°ôØ#>"/½ðŸÛÁbƒ–#tìG¢ºš>ðe[„ñvT1mZÇÑ~JðÒBêÛ¼©÷á›·íåžÛc—éÛ'*·®F}Ðj|¶¹$_V³“[>¡g÷ÓbØp6^64xn5Ôa4ÔMïO¶„5lÊ?¯ô幸T3ÑXXOó' gÕa»1ÅεüˆÅ L ‹~f½õËîzR;-çé¾â ã¯/t‡›Wíóµk´ëMr×Z(ܹùx›ïf Æ€Ì6ëæn:©Cù³Z[ûì¥FÎ¥Fì¥ZÆ›ëÕm«­U·ÅꟀÕ8Ĥcš5ÊÔµ!h)ÊÇÎg.D`Ÿa£,Fi.Ü$½V\Àçê“&¶/lîÜTá³ñs߆¾aË lâvëŸz~R·‚¯–µªÃÄs[oÑ4mWuÑa\¥‚c¹rè´†•ÒÊ”Ê'¬¿/ÏAo·ÍÂÿ¤Ì'ã mÒêoìn±}«6 ÆÅ^Õb“½–Z{ßÏ[fËEÜî{—+7Þ~æÖy_3Íô„Të + ¹½ì} Zqt•t°ŒkÀá øe¬f 4Ð[hà2àxæ]ehÌÜÿ†|jê*ÿíkÂO¾|â¸ÖˆhÂv¯¿Í/ªéi®¾NféÁ¦Ry,ïÅž_ÐÍ‚;æü\ñ­Ýƒ=ôF©øoÎðAÜÑ|¨,„åUÄI7Â<Þ‚° @XrÏCØÇAxaeAxkC8qH¯÷„p=„ð„¸.Ø +sS¸z’õÁ™÷·Ýn©N¡žMl¨,~¯ïÎ6ˆ74¯¹Jnx†•×þ yá•á³ÝûÏj*BØÁÞ}£Þ+–!|®ô |ƒPÚêßU²ÝôOUïJJ§½=§“7þ.‹Åðüöþ…=æjüÔ†ëiÍ-qk´GRÅûív)[­¹T-=Š¥ož,ã¯Üòî™@šÞ l°?BØ*¹€×ºxý„opÀªñO®·CýUÚë*鄽ûªzãeO Þò÷l ˜*þÈãàØñ§"›q²#ô8þäVqL„FˆàòŽcËÿdnÉ}'ŽÇ•1@à7ðÐIy˜øí¸‚ÇOÐGRpíÅ1Õ£oðé)x0}~ý·”îÏjþK¦÷³~‚P×G*§ñ'K­â„ªj TWQ6vçB¬fjD ä °]¦ii D×qüùg5“ xü$ŒA€5ð¤)]lZ±™‡G1~Ѻl¢Ñ¥u2"ó~oÃ×üüá—ø[D·ñ·ðq>öÕÜ’35N.mÄ‹œ—÷qlïoò¡ÎÊ€ Ø@ãÖ°þÙ®0:ü³]O¯ØDÂOôeâl4:!¥÷äVn½¼ÖÏÄf¯‚*¡ßÇv!«×°lÎ/Ïóp|þåçw¿ÄßE}ÈZñ¿¬â/.ÿ +öS±Ö§Ïz'´˜“æ¥ö“‡.VqqÀã.è±¹éobÁ÷ÉŒÎïíq¼Ñêäõb$úú!V*«Ê³Þðû…2ïϬ»ÞØçèMø >Ÿ.?¤é‡ÿÜù!þÞZk@V¿îS¿à4 ‚~›`sWÜøãtÏñg,¼ãOõ‚Ĥވ¡g¥e£:ùF¿­ÙkF¥ð¸›ja5ÏÙO‘ҙȟòÊÈ‚y}´ëç×]•ßPe*Å@ß‚¶#1‹…knP³Î‡Rçp:õ¾Þ©êÞÜã•öÜ£T0wÎäCÐ2¨–UÔŸ<4Ò´øâ¯¹¾Åßá#Ž‚ ¿Xjœ^·êã¾ïuïá #‚è†QÞÏo¶:“op$ê×a9×Ü×ñ.4¹?Ÿ—äu:=`èT#©šÿhéÁæ°ÊV´½Ùî¼ur¼Œv\»Û¾cÿ7Hc›¡n¡r…œ 07àwÞ>&½íåÅ-“ËãqšA|lG·µÔI;×i·YºóÍæé|.÷· 0ò!BùÊod´< ÚØ›G~³ª‡³·ŽÂÐË›9wz¼ã»¢Ù·g¶ÞÔݪíÈùÈtZ‡ë/éçægùCëu—¦Z·‡Ë–×&à±Ç›í.Ù™qÇróº£ú›ó¼ŽíêëqxãÏÞÚ½Ñ=\ÈV½\í¸”^ÁwûOkº+i¡òö”áämuº06âÞÜn³ÇőϵÄi¯üº:3ë#h†Ë´eŽÃ¦aæ´‚næøÌê˜0-˜ &pâï2žÈþd“¾7w¼8¡ÂÍÐçS©EûZ7Yìm%»ö|Öß^Åç–·²ŸÍ ®"Î)•ΰÔ\kNc`Ç¹ÞØ6Ük} ²l8Ë´2•çÞœH•‡á>dÔ(ŒÉôú›Õ¹°RV5Î45éÂè)+­)µ?HàýÖø;J³®kÓf.þç6:µŠïÞqy·ø®¹Þ´Älϧžºi ±íúÃÒ´{OÊö>Is:ê” o‹· fÊãºoñ½kó•0Ù(ÚÍ»;ÚbÖ¸¨“©Ý:)ƒöN\‚ÍXBÈ~•¢ÉkÏR~Is6éò'Ê$C!ëÇ`II×b4aüwˆöŽÒkx;ôPݾµ‘sìh­“KÁ&Óʾlר[ÚY?jÒsu1ùϪþršÜS*êSRZj÷a¦s )ze=]&âYXï_CvºÍ½L¾í÷b‡šÒž¼³RñÚ^‰G©¤¦(â¼ /Sä_’Ìàk¿êªÙ$/5Ôï'…]wšÒCç¶±(U?Wlëuë[¹e†1XYêÕbkwúå©!÷ºª½Ýë¥`öù»´3º„AUÎAgAiOBÚ'Ù™TjWÀú5Ò.ñú&ˆYàïåNšåàÛ‚¡Íú¤¤È)‹?H2zsóT³‰v9õ6üÁÞ¤[©Þf/kë8{Fmx;È›xÐÔy“#µGUàUí!hŠqÒD×Ò¾s¾¼9“ÁÂÝwß‹܆¤2ÒÈ‹ü°]®1àï6áÛß¹0׺–ÁEzrä \ϰŸãbÌÚ|AaGµŒœ²H‘RÄ_~†"Þ´{·–ºrZrÖó†èh»U»ëø9©YÛ“3üâ%³ºáû²Öy¿Jìg˵X”åi'k.˜Z²“¸bp…Üþ.,ÀY•›,ßÑ7¥yßÞ¤3ÀpÆëD°vpš±™NNMVco† ’„¡íg +ÜB˜rÊÏ-‘¡×ká—×9Ì`¼+`g}0n¥r!œwÿÓµÉk³føI%=t®nî4Q_ïq^.åÎ2;ÝMûÒN¸›¥‰ÂQ] -zìñÊz|¯v8(Ûû}5Q6”«³i0OS´¿X.èòñäPgž +©ZBõ©Ú§’^½ +–)EL(›þ‹0NÍëAn/dÉc¶AC®-æÚµÐ/RÓëÏ$«¾;ïP–pN¦êÕÆ¢„xñVÇm™Wévšå˜ëdiÇYƒÏ:í{Àfùë{†.Φ8÷Š4çÞÚ”àÇä4È•…i‹fí‰â‡Á¤;Ú“.¿ŸÞbŠ0QÎY>eþËóé ÒÕ\j½páy7†Ú”H ù©L +é¤ “§¾ÂÇoÛçÆƒwF']»n4Hk8›!…'p^K™ÿòЯóÔñ—¢{l )G?Ï‹ÎÙ=½¬*ʇ£ 9?ÁÒŽ‡TU«±p—Fy^#¥öÜÝ17*k,› $y–?ÑSòð ]=v|JÊ5ƒ©ü-GõfÇÖª’ŸN·OÇŒœÀ×F¹NçHìÞý*±‹Jô(×ÓÏÍ(WÍGã¹ü÷˸¿ ß;üÏ(ÄOjßd%£¯½`®²œ`•¯T}D7¡Ó8„ó¸üÊp_¬Ó`·™>>óÐͰ§Ž@ó^-ÍrP’“±¦ËÝ×›höí<Ž^·'ù ü/ ‡Aq4©C‚.'ÃÏÈC¶ö= KÁ·4,ÝCjXò«ó![è͇³oƒpì_ÜÜ­£²Ä7ÍCÿŒBü•Ýç¿Ú@ŽJiá—ž¡#Ú×9~ÝØíŒNfž¶-1¾ùèÑg'S7÷;Ÿ>ÖyòÚÝŒqlo7äwµ:K F“p•ôMG‡ìs—Ž­áçê›Äk‹®„IÏ­‹5µ5‚5…%‰IÛÏ<…îo˜M™ýr-˳•7«yBXtØ&õV…,·Ê³(Ց݇ûžûg-úéWR0œ¿èKk€PÁxÑœ>is8ys&=NDSCìB%³Ó©9šî9`6äyÈ™ƒœq»Ebmðøî†ƒn7™÷WãôÃ!Ô_Éô¨¿š¸þkO[6ý—uš :Iø/NÝæu¹»nm¿.´Y©UÇÚêÓìËEÊ*Êsž°Ó v¡/Æâ@µ+‹û´‡m¿Œ}—ÆÖ»Õ#Ï`À†üâ9ůÏdŽÝ£÷ë4ßæ ß}îú†˜\z u7béæîTz©|‡îìéöAomϼÚlé·YHšµ­% È3íDS¿x³mArp¿Î™àsÈ®zjŽZæ™uWXË)ù„n"™€ÜÂàʉmšO«Eó+¾ ÷ öð?yLQÇíÁ+‰ÁWé¾¹vÄÞzg©½ÌDZ»ÓÑñÐa¦Á£íÛ¹Lë¼íÕ[uÔ7o‡–Ö\°ß{s1®õ›Í+Ï4›Æˆn6¥~šhJ.Nýò3 +aï²-ÁhðÎ\5ÓE­Êuç_8_`Îè5™ÄŠŒŠµã{Òð¦oM]¯úD·Þ¸Óøôr™e±»Û^ÛÝ|#Gtö÷vÚäè”:8”­f«Ö%Q·Í;l]ší~4T«Q®G°:¬cÓ¬Tû 7вþfZµÄ—˜šÕíOkV¥ È–'¿8¦¤HæñS‘´è9æ–ôk™õ‰G·ËzÒµ@)ûCî«û°QÜûvæºíø‚Ùº¯ÕìõoÍ{´LšK÷Uhv˜Z³ñ*ÒxC{ºL=î]¥ºçÚwˆyµ‘£>«Û\„VfœNlVñŠo¾BŸ¶û +½•Bƒ¦*ùOZ>, ãòÍü‹ŸÔ¾¾äA{r‹çØ…`¦s}v˜úÛ(Nà"û%ª[î90$ñÔ¥÷®Ûj>é0Q}8êêÕmÒK8WÑÙ-ªìËÅ\…y1µJqµî—ƒ×¤<Ï÷Årå`X¥ ŸJõ õ)Ü,¶¾ =N’›ÂSSÊ…ç´3-(Af\P¼`>Ò¼ÀÏò³–gTõëÈ¢|Ì\YA—c¶¤í{SƒåË#ÖÂØª=|õÐÊìÚZļW'ò¦]™-žZñŽÏ´|¤÷¬¼ÍܼAA/ô󘧓™ ¶²o¡£qq„frøÚÈæ¶ ‰\Ë#&s^ÆÒs^.‹"HîF"¹è5E&¹ÇŸüTÃ/÷…¶ ªZŸæòpJÕ¢j: Éå2®f[¹Õʾ[Á ¾Ô q+¥ e—†ª¡_–$<(Ù#ÚÙ +í2—RõœNÔ pÊeê«F2Ëù¬·‚=¹B©?#€ºWž†º±z€ºÁ¥uïà Þ=L§òaþ…²«ê²$[67Ͻ×Zi9ØM\U”bò¦ßÖ²C<ê™ÜäXæa[x¹…’úÏ—¢æfð]É\n ¤F´õ Þ†zîiõn;ÔGlê×óe¨?up¨/¶æP_¿­¡¾«…PߛԠ~Ðc¡þ½âA} +î>¥àdü’¾št¹w9‘ÏË3¦…fGc*uñk=zrAZ¥Õ¦UûVº%Û}>Yd7EÍ­ì©Ó6áåâªC}gxÞ-h·÷Р4¿@âB¶ +ÿä¡m½   +Þ†ôÂf¥'àZ†°åž°õÖ…0ÇÌBØ lµó l]~ámoôw¾<ûÀ°a;î·z^gPn¾îŸ4;XÝWïÏRýžó03Øç»§›‘^³ 4(~lh ÷¶Ð ˜{å|±ºãC&c°=aT†ð*׃pa üt0 aF¼Aà +–VÉVÆ?)ÕUõ^{Ї,ÀöñËLX®èŸ”ùðnú}ä³n´ºî ­îOXR԰јæ%WŽº'¸+¨Þ_ýÓ*I]ö®?IiïNŸeñõ:‚†P%­ïªÿ”öþÌäÀÎÿ™°÷§ªw\ñ¶¦ ΂óO°Fb3î—Ÿ´Ý{¼ú; )|¤8¶$.Ž žœ´8µ]ÀîÇd#Móêÿ‘>mîì `ß÷(ާ0*üUÚk€gR0x&%òÿTõ®ïåpÍB:Ãný7>J‹?Ù¶'Û'¨Á‚û4ÀX€ó?óÜÆ#õ¢ÌA€y%-@îÿ_éÓ3xId ÀÓ*dépÁ‹›DIl¢…lŒïû¥è;“ÚѺtGÒÞÛúÑ{OîÅûYÓJÈ—×ÿ“ø£È T[€xs<Ø®D‰ŒþÙ®‘ ⤎€ úÉ œˆ.Küµ]Íœ²ø© ¦WZ4òM+ÊpÞö½­ÜïÉ%¾¼¼Æ÷ñ¢µ$ô»ƒ\È¾ÍÆóŒ—©'h«ÏÚúã>Ùèðhî®ûÿIüyèêOzM¤ÿ'çÍÄëÎÀö=‰q,ßÿ³ üdÐK€X¾”ÜyoË3ìåÕgãÐoé EþyîËò“­Õã6tìÇ:îîqŽ­Ý;nr^ ý£S¿™µuÃo«åuÝZ׌ʭþ'ñ·©Ëñ·0@°y&þtN“øÓÍq`÷m€=B§¬8Á¬ÃÏ.ðy>¢õÔ‰ÞSXƒCŸ¡Ñ§PUÍG³qï¼kÝ൛Á OOo&˲·aY“®ëÕF»f’ƒ}™wï̹àätæx?}?Pœß +Tù ³ô½9ôJÔâo`Bú%þÇeü•dÄ[šÆŸoÄû xù| ‚VÍhÌ›W ŠöO?\îO]{úhù¹YS%w·¥ ÕÒáÕóÞTº§£#`§jnAEzÅøÁc+ø²òÒÏq=¼ÚG…äÙ9¶ïŽ6³£³Æ|{ hnËæqö_”ÍÙñ7 +À&½Šé´ñ×Å&àŽÌ‚ð-1þâúâ]€âã.¾„À@ËëçC¯²=^ÙÄ÷ï:z?„‡J|è—Û™½±½O2«{£™Üõ2¥áN´€Þ¹`ÚˆbÚ)Üú%ÁÝ–ùÛsS³õƒ÷Éu'Ž9{5ôfö2+vô$Ðø-%PÏš[;6Ú5Áî&œúxXGj£»öiõ¯“9Ñ=Õ„O:Rxxñ!·?ªGö«-Vý£÷-g`ïÍ¥ÀÂÁ× +NP±kNKt;ë'ö!ÖÝuž¶ß$±°;Ù²¬Fr± Å*˜Y·84P¿Åè³ +DéÅó3mC¯ŽÂqò ä¼ùRƒù»Ôí1wÌ ®n)©ŸÇFñt¾³Y¿;+<§…tv{©0ÞV+MaÓÀF+§Í²›uO`}[¤›õ!ì7XEl<ØÜ >j޽oÍpKH×Èó5B?ÔhV/- e5F»UUs¾Zcßëªí“H+ZL)½¸7]F‹<ù W¤näG¿¿LÄ×Â’ë;n£¼ÿÖ;𞉛'»ÐæÊ*ëpOlcÞ‘Ñb%™ÕÔ 7ò6úá»=èeÒ¿®øÝ9\ÕhÒ$EÕG¥^S—;²¯¼òÂXé³Û4µ4Þˆ½ÄõÍS­'ŶrŸ.q3‘¼†6N!%ú@¿$0A.ÃëŽànÛys|TžAgŸ¥Ý1÷€·µsüt–§Ud›-5·Ò>MÛ ù霄r«z’µ…^4UÅF·Ê;Sô•Á x[šV嵄à,¯7³‚œ‰ÅÆb:tpÉsž3©ˆÔ5Ñ÷¼“p•²Pdþ– $¿0ãQJ:koºþ’À{sõx±%îR±oäúÎZ»ù†.:Ï7ýµž ¬õ}ÌáýÑ+»vE –㾪N產ÏD~iñ¢"; eÈÙãl» ªó´ìZÚÓó›Tôå·8¯ØYáB¹ ¢CØååJi2ŠÔb®6{+”Ãr Æ&îbÄZ43ü8ká$öûÜ|.îP-äŽ=¢‹»ª”f96Ëa¹`ìæ×¤ô¦íùyÕ¨Ï_ªz²Q3¯­%< 9'EÌ"¯D¢4»Dª8¿ßMáÚ‰\¡!„G^@Ó?,Ãɼ'Ôò&w¬u¢‡,\Û¤9›™´×³\'1n&è1Ô.K¤ SðŒ¡VÉà‡WM9.n¨³œìh¥ÕÚ÷Æ:îÆÓω^ý8MŽCW1ªa°ýSÐÄÏMÒ¦ú¢PàûâéÂŽ…ëe…fGZðúD›k2msщöØÏmraGE:œmæJf–»z†.¼ôaޜѥ«aP§…SðwÔì¤/6å?í·|¤—é’ýöPzuC»²óg„µ6FuÓÄ ú摘»Œ<«6xmÃÕ%kSsÔÚIJu3lZËI¿knæíÐD?í¹á)áAoóý‡v~¼Öç%UG³t’¬*îA•`·šà%¨a-˧àÔù0ÿà"=„Öfè÷µ¹'4øÉtˆ°8kfR|v`ö¾mmfñÄ;göK·{ºž|}êÒ‰I?£Þ$ÒÖ_ªhY_I7· ïiؘèíiÝ3¹©=)õVãÝ&¤JíQE™lo’¢ºzSž½ yv©¢ "^ñݬçô©¤š¾ž³¹Jk­zmF*,7ž6Zäà°’òÝ‘w~´Wæzë©þ¨ñl«Óú¨fmépù²ç›wÎZaÌÜ^sœqØ¿eÇaK§¨·§õÜw¯ö<ÃéÊåê{û^©2Ÿ“Ñtù+ÏkrIÎ-F¼dá†TÜn–Rq÷(JÅ}+ùÔáR0’õpiiEp´o÷æ + 15bö?šM²ïNÍÝ:4ÓÚ4ž')¬gàóÀžs+k]æ¯æNhfŒ£3-ø~KëÔj.jAi«×†ÈÈQ?ÖÜW3µ^_©-¦3yþݤ5|~I%1_ƒŽI§&4íTèšËY^hŽ8.+Î"ýP?ìÃÀ]l¶°:y¿ó|èª÷jm³~>°o^'Ï­ëõ=°óãF×Üõ§3㸺õË£øÖiÝHgXm¸krêxi(*TlX +’•]Ù4ž´žØq7olÄÊgph—å;B–ä©opZqAMÍrûe¸{PHàBOíÐBþìæ7mcŽ ¶Ê$cg…¡Ûéîx2ʶ\ ¿6^heò«YÕÙ®Þ¹Sc­_µ7µPÝÕïô©*’A•™U¢äe#/È…cE“ê…’#zå|K85ñtÀ.kvÁÓ{ãÂõsA†íΊ{Yc¾M8d&…b†ùŠW†ù{Š[æ‰ü¿;Ñí2WG‹éGì_ „ê Mö®ÌëRW–›tº‚éA½Öoý(D +3ÇHÑ•£¼"ì·\ìsRý¹¨ŠáÈŠØø" íÇÅà»ïcƒ{ʯÇ÷³+*fr¯½˜[Th}T’éœ|¨§Óãè\yBÒ9xBÑȳOÐ:3#i½?,­SÛš +A-t^w)à©=Ù®+ÈåñõÅ^NûKý–k UõÚj˶€6¥ +JÅf¿µqý~üu!Õø;-ùÞÃ%¸ßá9ÁTvt;Ì4·™¬tÑFﳡì°ò w U Q-ŒŒ:ÄὉúއ±G‡Ž…“åäí?˜ã,ù[ª2z7µ!f~Ô®º¬ãÍv|ÉÔ§hp±Ê o¥ ¥Z(ÛsÍ.îÒå¹â¬Ë‰ì~Ì~"éOÚ΃…ÈÄD·G‰A´E/N¤ ’¨SÎÔtÉ}6H¥!âTˆæÑÈ\ñÎÑÌá´ya±àÖlbÁnöÀ‚¾Ža®XÀK8` ö¦¯õÛ Ó¨Ý~¯ûÒ|»†aîóeœ<æ^ ªÎ¯ÔZL¥"¤x¼(].¶&M¹‚:µ9”{Tç'äþîHo|½“X„ˆsÙ*íCHâ7a/âÝ/baO•ncüÜTÃÏâP* +*S8"+°ÉÖ+°Õ¾”gw,i+Ï"/Ï‚2Vž¹¹ê?˜@û·3Ä#©Û?ÃZ«•c ù@æ1¨^jß|q-;·Ê„ì¹€™g½yèê8«ÙnõCêè6Wåé;- ª¼V¢ª*µÓªPÉú€(/dI*›™Ð)ç£o€:9e–V—wÉE•j©rȘÅc ;@‹Çb/Œ›[õ„[ÿÜ^½J*wwÌ™Yóè·7e:£÷%ä¦Xîmó“ÌÙéˆR•®êã\fШD›‰¢q½TEíâI¿‹mœZ‰‹},\;ÓW¡«f Xþ1ˆù~+—Pyžhrñ­pÎ…½e!'i®š¹Æ ù®¹œø99q=ÇþÂxTýaÐáV^w–¿[mÏ&j Õîá&9.À5øðxH¸õ

æÅãáLoV¯ ÁL‘¨2÷Ò….B+Ÿ|¿$Ò #[(l ¨jôëàŠêéd?Ðy„=@÷O@Ïém‚áÐG4—`H:¦¬çÐïðèUô—³zÀdz ïá_èX“l£Ùs‰?æí´äšBÙLEa»e˜<½¬ÕÙTŒ‡7)ÙQ½{ Ñî® ×%ÄÉ; ˜uÒTf}òs- ó5g {À’ø °Ò8X_à’Að-•í;öƀ݈ÀnQ<Á§ØØö©³€}¼ÕÖ?hù~àÔMO5 ƒU­•‰ ϧšgì[ù¿–—c¥ \—Ånå9ÊMx* e­Ý‡°‘ü5ã”ìáE´WQ:€cƒ!à¯9à| ¸]óøÌó xÚF_à'ð[mø]öøû‹üãмÜ!{Â@ra÷~Z'6HÙÑú‡†Ælt³+­DuÅI‘,ËŒÓîÁx¬ ÷òfBì +OŽœåàƒ?‚wP~îS· ¸Þ°xp^.MoãàGòü'®þv“;Ÿ€ / 4›™d4ñD˜m @ÔˆÁ=âlúâÜÆx´š@<‰; ¾¹"?¬ ¤¿NÐ>ý`µõ²Z3˜<'‚³…~.­:ñ74ÿ”ëßÖ¹0ˆúÄ,¿Ð mDµí׬•±øKîõnÉÁ˜ÃÇ¿ߟY­ßØ “–lá,ŠõÊ_©½¢ÎO‡þ-ÍÆä3¯Ê¶€ÄEW ñnù¯ ä?!¾¿½W3~çûo%²ª%PÒ·c?Ž•R”`pŽc5Ÿùi| n¿ÈÖÿ¿|Ê-nÙÿk•uп¨ä¿™`” }ˆÃÂõ‹›Óç_x}ëË_ZÂ?FÙ?ún*BÆ+"iª‹I+ÑZ‚VÒù“üI¥±Os&â4g¢˜`N%­Ë)ËÒa;Áuð·ùg•íÓO"ãÛëkEñkRׇÍ`¶"ˇYqzHÏMTŽnÚ´0~š”£üä|ƒ¹!þ%-þ\|üY¹ø3ØW”«2¯š +·&v&NoõŽržCo'oÈm­ž ®µ|_•´ê\ÊŒ3]Ô wµÈ懇yºšzrÀvï™Ýÿf£]E£ŠCÓ#êˆS¼YÿýéN¨ñ`7z ¨\øYût¨Ð6=Œúù–%þÁO‡Rµø+fä—ö +×n.¾Z#Uxküç¹=l‰çší–‘¥|ÁðùBÇ„™#óF人7=žêÝÉxᤳ].ÆÊf;æ†Ë(– +ñHÜ2©Û.ü6êh¨ûÔp&ž”¡ho°l¬gýMèf‚ýt‡XeMöNÇ1Ñk·:x¯mºX,hÕâïË6âﱦ_oæ†>Á÷9ºÃ>µÏúIrÇUlLR3ì°ýlÑñôÔcó“nË&ǼÚGáaj†“ÏÊ açÖêû÷h°ÂÁl`]Ê›þVá/ý佃ƒ>ÈÍܹÒ;wÊ||$·Å[ÿ1ì<×Ñ+ùr!hj†•÷ÁÂÚSÿTù~’ùýàwäsfÐf¶æ+¿R¤Ë{¾V–‡Ylgf6–ãgÓ>d4a6·F«û‘îï—ܯø¿ÜÁ yǽޅc{=*ÂîÝjλ춷ë +ÓkG8>¿þ˜ÌüLO Ûµ—¯´³aÎo™ÅÇ¥éTÕ¼·k׫žKªå?¨Üô¼ææïQÄ5¨jÊ~_}“«‰×ÉÍë¢O»%i?ÖññHí¦ÃwÜJ·Ï38žˆ\¯3å°î£âò˜pÕŽØíØþøx>$ »mm…mD¹,Zæì³onòùTåh¢—ñܽ[vOØ‚s[ªÑ¸ª¹mƒžÏ³õ~þVþn½-ý…ñ¼øÃcû¬˜g¥‡È›g¶‰/쌘›ÞD<š|ÏÛáÒÞÎRLìAëEÌ{ôÕ¹tâyçë?û’CW²Ë]…–eǵæf÷µ›e ò<Ï/ôÜÓ½:vIŽ^4®±{j0Òø]ï÷öy'Ž ”#IŽá€’Ùª—6Œ5Òa”5;×J)Ša%~¸·ð¼u´„“¼šªÉ8£BÈxtß?‡¶áoúX脽ësÓ鼡ɨŸ¼OÛ¶þ@ž-;Ç#Í¥W¼&§Óî9¬‹?1hëë9õç°Ýªóß~ß©³ÈƒÍÖV?ñÝš«d%§ 3WÆ£f7­±m4^FƒË¢Fùõ*åã%ÿä~¸ÑNÆÞy5í¡—yþUÞ»'d”]výæ_u_YtØ‘L³=·™A«„H‹f…ì^<¼¶üºTëVhôn¯žoÖùˆ@räIΰ#¸Ø°³BÑ·Œ164×´0K|=\n4’ó¥3ﲎ뒨]rߎæo2êŽKU +)ò)r¥&5{ŠKÈ­­Ís¸¹[Š*“á|† Q–¼õë¸èd:›~Ûh¿½fc±M½ê>¹M÷¼k°_õUËͬ£àMÔŽ:=ÒÎ>F¼eòSÕ\æ–YºÏ=Ãå¶~lŸ§Ú¥÷ÞiTL¾jÔ,Ô8ðæÕ¡Ön©b®sQÅÑ¡“Š÷#]iç‚®²½ø3Q›5÷²¸‰\¯ߟ4Í-ß³µ·0³¬Róhn‚¤Ë݇»¬KIO:B».>œÆ3J­_˘j¼(µ”ï¦ÔWT˜]È3£™zned}„% .Ra¾²Å¹ß‰«ŸM0C¤B¸Ìþð‡òÑë¹LOù¢Y ‹<“íñzïܶÔjäµµr¯bÛvCÓ²¤qú°Ø¬÷îcã€P;ý\n:Ùke´î+Èמâ¸Zã»cZ Ÿ‘¨a­+jg]—õþ®+-?™H*ÒøQ¬÷“aÓþ}ÁoÜ4Lín¬¦Ã‚×ë")ÒŒ.Ákx°°ßöÿ`{Çúê| ÌDêiØ  žPصS«Ü„¢Æ“¸u¸´³­¢Dk†÷=Ý/8}íÖ],46›9×f%Vß.«ÊeU¦M ÿÉ݇“ ÚU%3-qëwÚby7 ÍêkÇŸ}öÍ“÷a™»õYë êšëÅdtV aîfJ DJ‘ùa#fÔ?Öý1¼ ±>•§®!îVŽÞÙßOë#uյСcØ3®i½Îé æ¯~peªÊãá^‰ õ]ÉêW «8'­Q¨"•<„gTŽÉ¸IÀ]Îåý“;äzÛ`ž*÷4 +Œœ´"ó!ï2ó¡‹ æƒ^¿Ì†á+0¹Ì?Xim EŒ—aFy‚À{¯B´KÄqï²ZwâdñfÇÀÙªQ{Ñ]Ecž®h™vZÜÊ w?óïÂRZ¯Ì³„–Z/ÑuCX8ž& —ßéíYîþz¨G|vØ«ö˜ÏËY0 +±¸ÑQÍÓ»él¼ÐÙs?¦³«D×ÞçÌ©¤Z;oÁ‹Mýðǽ?ÜÕQ¢+?™o³»ú˜”Æ–±¾ˆˆ©D#F–Ídè(¡mÌ= w„S­?’µá¯mäÊ3€þp©•ãø¬—ÞoØÐìRÌwÒ^šô̈}ÙÐeÁî‰ÜW˜D7&K¢[H¢‘õ$Ñ` +‘¨;¤Ýï³sÞǵéšü÷kðqï%µŒ8Z ÇwÞ¯‰Ä– QYN›ÀwçSë_V ö­Â}vó3V:ôÌŸÝõ’œC¸[,Ðú«R+g©âØRɺÄA„¶¸ S'ç…ÝZB»Iä»m€Ý€úÅ®7þƒ“¤þýaú|R¸>.ø€Ûµ«­=7Š⾺µ6"ëôíî+³þÕ±6P¹ç !25íÅÓ†ŸO]ªÔ:#x”õTɽ-ÈV<·þ$+£D´2ÓGOïär"v·y cwý :¬Æëªpvß•1 áùqoVäùóR‘[ä·"›åOEsïR\ú:ɬXyXýFb.–ËÞõV{9³åwkbôa\“†‘/W§:ß›¼5&B)‘BÁ˜%³#ãt70°slbÁ+?À¸…±¨ÆæàP ‰Û³*ÞJiL[e²¥Šòòé +4<×Ê:ÀÚè²Ö¡‚>ÐÂrS)mü¨QÚ(ÛsÉ9dAÉéß>%Ç +endstream endobj 82 0 obj<>stream +;¼KëýóóèájÿÖ=ª~q~F]þˆ¿ìât¿Õž«^*B*FwØ.Ú¤ÁŽ7ƒrÎ%¿]®*yª¬ïNºâbµÞU-®Ü~ikGQ©QºoKåu/ún¦Øäwå"ö)qßñUÎò·CxÎ÷ZüÏ¥ú¼AzžÍû<³[ƒ<M¿y&|òŒë¿bK\ïÉkWiáέO¯ùظˆáN4c"U…VÀ…Å®G[ÎÙ&È(_«ŽêŽXÎS{¦Ø*ò©Ö™Ü¯s|nØ-+ êNNdfäó|Œñ‚^'ÞÅŒ!*ŠÕltÛ)Y-ý¬ÖÏm³?‡`³#ñðâº^fd²9†²Z1Ý-ðCZu¾y³SÀª²ÇñͲb»X áöA®“µßßk&wìúÄ%©w«ŸvÖ@×kN.íËÅÃ"…ÀІ­ÕV„êÑ@†ÊÚÁÊrp+ãÕœ©öOOkßO@öÉL‚%Èfr˜œo€ §U@ŽN@v.w@v9u¤Šf~èjã…ÑÆ2RŸTùy;7®Ÿ…Û«¶b³#'}îI¶ºÝwÛV¹˜Í8EÒã´Üˆ ¥ì|BòpI¿±ÀmPaSÔrkj•kê\&Ø/õᮀÎï³€.(T‚—èâh è’õ4ʧcO@—é +ƒ  +OÀÿÀ¯{éñßP¶+dKzõ¤ hyíu=…qîáýQ¹FÂÝ5r™1²ùoXË?°èÝVøíæþ”ñvË :ë†Æ€QÍ `º÷`¶n0÷<—`TÌCš&Þ€Í"éÂ3w°9þ Ø·^fûÙœ´#¼!–—º[¼WVƇZq§¬° I\_|{Fs¡¼V“ùLªÇsdz(Í–ZŽšYÙ7ùCêRýÏ›âj²ñ{Uã·¶,ÅïdÐÇËIõ9ËŸ‹—«8ÌžbÃ-•½Iï—”(m÷¢mÚð×YÓëksÕGÝeˆ]‡‹¯,”û#]Ðiõ‘Ý\{γ¥Œ>fVFÑF³òºìbS¯¸&'­OˆÓn1¾ŽŒ×˜)-ò£Ç=ÊúÑøßˆ?ŽCÿ£ßvßvzi-p%§ÍËå:¤®GÈEö;tÐ=¯¯ž¯øŒ,¾'»2Ÿõ z¶\4¤Y‘Q½;ªOðª=ÅŒm09`2!»ðb|SùØ™ë÷ÑïðÝ™‘ZN—Ü ÁÜ3‡5‚› æ›W<ȳD®o¾Ù~I¸ÂÿÂ_:´¢Q·ã.œÅÚós0±õqۜԧ›öû=Yñ¡?[ÀC{?³ÿ5=¬[©r;9?ÆåñíQcÖ¿K£Áý£‡>ã„òªÔ +36 k»dD˜u›ËOýµtxöŽ;ׯƒÊi«öŽ£Ù¤Ûé÷Îý­g:ÁJÍt8›IʈšŽü8ƒ|~ˆ¿ù‹øpnt½Uqç]ð×êÍÄ»…†óüóèÏJJ«7¹ØÎtÌ!}ø¹ŸÃ(ù`CDü–õKöcö"] ܯf÷Nu7‹Ûk—ÇA÷Ú\Œ»]1»é<&ø¥Ã—í¯v¨/Ám¸^Z9âšËëìÛ´ºýÏïýÃ_zù·OJ’PX}Ú»×¼äé©ûaJ~3ýq…4FqmÓ ¡É$XÂ~Ñ/Óßs€è»Gv¤Ûƒ¬Jç©{T‡?÷ÿí/k¾œ9Ùí©öh¶k9´ßšÛtÔ2¨àÐ\ëg³ø†¯!ké,¯‚–\ÇÛ†?æ? JÁÞõÛ¼þ…ÇæÝÏA"7Á8B…–ùœ<*·Õ(³ +‚a^ì×ÅyÎ +N±Ý£rä¸óÊè[ÿSm§“/üLR µkÛC¾µ¨Ü*­|ÓMä„fiJjž›å÷hª-·ELÂÆ¥{Z5¨t®"÷­³ßeÕÖ8Ýþœð…=noc;s¼þÂÖþ.Ó×;ž1¥ÃzŸ#WЊƒ£3\}ŽT¦± !Ú ¼lwï®­t^ÖÀõ•ì(hg¿‡y«PÇ&*Ÿž»‘“qÙ(ºDÓ®6:—Ý ;±Þ‡Vé Ð‰ùUÝ~@×þ*ØÔVfúΚa³—…tr%sIO³0èLˆß ç‹?S< t’¿h7sûáÊ. i{m4ª kWÍNÔì6,vò³Þ Þ§‹;qt³}eš—Ûˆ˜µš¦Òö¼<;rÛJsÓ¸îW·úã¼z×yùžuÂèƒ:’^"ìɪÂÚp —-ÝL+Wm¶LË ŒÍö¼2ÊÕâU÷Ú DÇärZrhí2ÒH=º$¸‡#F@·¯ +í¬¼#÷®¼óú/¤–ø%>VêãUŽüë)7òÒ»“ÁÔ¯y|»¹R†‡Í\±Ñ+U¥:¦¶bÛ®ÕÆË0ksu}]Ì›ya2*"]Л®ª]`…Ö(ÃLSk½uËT_袭 +Þk¬ŒÖ•";ƒ<}V¹6Ä:r-„r–D¯¡ˆœåšU½üp(C¿Ìçvå)ϲƒÝàvê +/nÜZËpËûÙtºBƒ¥PÞ-–¬]ë^u+o<\Ó¾&¾ +s£rõ¾¸k—Îî«QS¶ð×’úŸ:TP^ùÌ8]‘ßš'Gòp(g£ûF2sl,åWǪ¸véR.¢Sw â›èÀ×Kгh?÷'qÍ<Î;Òϱó5.OD£Ÿí·:ƒC'óEFM·vh6~¡9£×žµŒDšNÞ’ W ½åí»ÚåühtR_¤-˜‰ççµbuxîCÊ— + Šâ†9:Íh!OŠdP]\Ç\ :í`)ìn¯‡PåÌ|×êüñ£nÌ®üñžªùÉé‡ ÿ¥}Ú¬Å9èrtøçßn/¡SèæÀ«‹v Y‹n›1v˜Ð[³œ uΘ^{ÈõVÛÍB5¬žÊw5S¸)PDd‘²ÒÒRKRa['ÅzÖKMÂÞœ™Buwøv…›óÄqqçº$Qäè{Öäè=¼LP¿pôL?q]È;s‡uüa)4©¨³4ËáÒàn<Âw­z.6uÃu W«û<–~ˆ¶x­Oh5llåçŠ*1=y¶­Oe½1ÙHË×þ,YÃo,nœ˵bAð†å*ú2,Oª–Æuç³6ûøÄS–WÅó†¯×5&\Òʆ Gä™ ýò‘‰Ï̉‰WØá‡å‚©QSîÆ•‡eò :“égÛÄJÖ Xײ$TծѬñRSAEÀåÙ·&ȹúÀ”¬ç¹-nÍ\(6 +|º±|m„&Ó¿ñçÁäÃûÂ!Ë%÷Þ2Ç<ÍLaÞcËedh9¢§z¤kùY–†7-…š×š ð‰†ïcŠ ×n{ZÀaæKädÑTëìŸÙðëë‹õƽU“;9,¿êf¹þUk|8'õEU¥•³.‰ ýŇKEpÅhðhÔãýýsÊÝqxÍõ.ä‰}Ñüƒ<&inž‘GSœŽ2çôÙÕËe¬êrÙlH{¦²Ô$²dʲ$Nd‰XÈRaº'mqþ³væEŽæ"R ˜¯ônmëΪÁßµrwuÝ–Š +n#J²;¯ÊÏv}vŠ<µk\Àyöµ¼¬XÊzÌç^0ãÀE;ìèhy»Ðš‹©ÅÏR¦kWÈõiÀ‘(y3 ×-wñã©»Â[>úÆ.÷=]ö¯!v™7Ó» ì=Ž æÆî‡é9R¡ÝùV»rR°4qX:ÓügV¤Ž£±‰*/*=Z8öU.ˆÄ“ÆÉÓ³ +BÒÈ“¨¥Ø²(«°k“›ú=ÕÈ:‹ÏIôUÛûaïFxâö‹Ÿ&¯Nf+$v]4UŒ)œÛÕ~ƒŸWâãòQ Ûm¢ÚQ¿*ò¡¢ø®B¥m%V¨Ýô샣·¯úffŽ=]vwšÛƧ×Ó/ ÓQǺ¥HN«Çòôh1«P¢¬f7)ÐÐv?ó] +÷sW'×»u4ëÑAˆ1õ¼úìöU!?*ïµUFκR‡lz÷,×pÛ-×÷5ëŠæ^dÍÌše÷h®ýÙ¡9ëž@:nQ=|í~ÑëA°³Ê-7”ïõñr27w£§ ¥® ¶¤ +§nƒc%7À©§~¢éx…ê‹|"ùø¬”# ¦ÊàårvêYè¢6i¢f% ù1/­Ûæ¾äHëW ÍrÅ]Ô¢‹UänŽ«äžÖrr§üe?/æ/󸿴†›¾X¤#é>ï +x+Øþ0t¯­¤çÚ<‹^—ÍÞdêÍ6&ªÊêRYc4n€ …%8ó?nÙ\õ€ôŠÔ¾0„¹:~K[Λv>×X_>XÓûpµêãzvÅ]Ì2d ùg•ý³wQåÄo-ÆÍ*&gU‚A,½",ôaî›ùÛž²±+Ö¸s?˪§° ;G¨‰·öK:ßÛ¡áq°­Nw“ ±ˆfëna±^=ê‹ýŠ;,ÎË_?–âåþ]Lè/ò“T:×>5[*šmô ÕóµÕtïÜ>ÓêB§^Y.ÿÙú_ÄïàZŽã¥”ýÓÎá÷ñ}"ö¼t¾Ùëñkwîû%É¥½¶Õñ ^_õsiõ°Ÿä2¬žùÅ„<(ó»ÒçÈpëÌÌï¡mÔC'ªÃïáto‚é´º—“v¹¸Ÿé>îâ 0ztFÅ÷x2a(èÎð;A—ɤUçP…‡ñ@óÖëÄï(®$—@;ÿ°ÖÞçJöìs2,¥g¤¥Ž6팮¸->](×ÌzŽ 2çYaœ§{‚&'*¤(ªãnM…£GåFÜ­*‡qÓCñ¥Ô‡ß¡Û*ß`0˜©Q4Ðá×®¿4K÷~áê"A½‘çƒ2zÞ©»ïaáòÚ=[³k×/ö/ÿà'F?†”>a¿%ð>,ôÝqC5áárÔº» U ë33é¾v&da6=áÓ6|ãñ5õÂg¨°ì`.ð¥An­ã}µ˜~ñÊAƒŸèAù}jôšÔíá(—>,îúž³éÜÞ‹{§7Fÿ 9_húƒö¸P<´3uplEèíð_¨í·ûW„ÄØPÞ…#r~Öýn¼[@¦Ç=dMü&NÈWQ ßg:ÿf8]ýÑ/Gý’mƒÆ]½öš±w/VJ +šf¾sïÍ«öµ¢ü×ð&øb1§·?[Þm+¬´¢á$jitl.¶Ú·Y¨\ Ï w¾»/ÕÖn5¨¥âƉc·¡Šo~x¬o{ü,٣¦§óÕLZMzè¸NŽ–1Dú n°ð+\ß©f•Þq[it; !èW;òCØß¶¿Íùµ­|qk¦\R×P ÙòÍe³Ti>,ímƶä•Ñéî÷·¶‹áÅQ£=Ö7 RÙ¿êÝ9_vží9ü丰ßêkkàãÆ–ãÕ?¸Éun[l~•™vÒ zÚaWó°¶«¶û ï©õÎn‰ë^¿.ÞyÌ]Á—Wo«^Ôjåìݰi=2 oË—ö^yÅÞÜ&U{7Î 5|®S¨ß–VïYÖyn?Š3ä†ýŽýô1‘-KÛ…5ŠW«æÎ æüܷͱÿ$må‚)–I޹ôº]³pžŒŒº¼_åÌw¯{^áªckm_‚k×»^¬uƒ>¡>â¨ò2ä(aÄ¥ÊI[¬äɪô’UûEË0úìI³ƒ´ø sföX´#µò|[‰¡±Œ¨çÀ'µÐWãgÃ;ÐC©ÑÝ.I'¾‚’­bFÖÒ©f«£_öC=|ú¡„µt,PZ;¶¦¹œlj½âìXc¶×‡:¨<¾Ê» eD’ôtNV_¡!ÍŇ/å¦ôL\ÕÖwÑF:¸X\õ:ÂÖçÂV~Ï~H…®bD?lúb †8œoáce«ÃÖj:p\_w%ç=ô[íO æªD%­‹…ŠŽmYJóY_­Ý«z-Ü:ê —©KΕO¶¾WdÓû™a§›n,×ê+XšÎ%)OÀ´hwùšX*÷[B£OùÃ×¼ðÍiµÌãÕâqn;û ÕyÄ7µÕ¬z)Eþd íÃáÐùñ ÙXöO‡¶9ÑžNxÜ´KrN? /æ×…ZoðÂÕÁ&/(F0”1M¡:¢úüI6¦|;Ó[sWmÊv\9<Ù‡õʰܮTbÂj¥¿í©I+w8 ¡ »¥f<Ÿ¥´iSÚ5?¡´MvBEßü߸fÆóJà”Æ"A½à\Ú´P™éÖcìbZf7L¿7z+šVU19s²6KZYhG±ˆN¯9¡z|”ù¶Tey²èjI×Ô9&9/ì#΄l?Äç̰[&œÚd{z²8æi¸˜§(½aëäò¸íE’L»Nbs{bó¨šÄf›ÙeBlú»dË[ŒÈÂþ8Ž.K±Z9:ßÞnå4¸ãL¨±a¢sÓè“_•uˆƒÄº´þX2øán…:Ä>¯ÀöŸËÔ8ƼXdF…ªÁHWÓc@7èÑês<¢áyr÷Ÿ›¥#•Û°OrUï dñ°Ã‰QRðC·ÙÆ›,¼ÀÎÃðƒÛ{ ;Û;ËÁ;S­ŽùÃÉÏÒ»gÐè`¿||]t.Cl}‰M?­yV}£*y°^ôå˜+ñbF^ÓÓq.KgQ¦LÍ÷ušÊó¡L®Þ'‹´ÇP“,9\ŸØ¡nD4öQjNÂØî‚7/ù/v¡µ2Fõ#¡zp·ÊŽGÓÊK•ž•aÖS*ƒ˜TK.¬¬¼à¼q‚Vξêglr¿ª 4àŸµðoÉDa4þ)·Åò!Á¢$‘€@ @@»9 à1øëfü´_üŒž’¿†hR¹lÖ™{îE¿ÍnÑó6ujׄnÖˆveÈÿ|Û¨]•Rï`ÁŸJȧŸÏe5i…P“Nv¸ß½ #P±Èr« +HfM²–•Ù°m@ö@FÒ,ÁþÈ™šMðe9_49ô·€ k GVúŒãõù/òßp‡T&g¹%ñZSäÃÿ£ë<·UU,üý%Š¢ArAQÅ„bÎ9¾#k¯Þçžqûχ²‹¡Â¬É¬™tû=.­R³8¬oj_F-‘öZcàÏhMf²ÅñG‡þt@WO [Ðnª˜èБôÜS}XWýÊ6St{€žsÀ4Û7À´Ð|Œ¥ ˜çfh3’qÀ„Œ ˜ñø˜n…ŒÑãØp“3—º)kâò­¡QÝOèMkŸôñÇø/´ [¶”^bEœºµ_ º;äs=J€MÝeÀ¢@ù#ýªr°í° Øå³ØŽÚlçÖ¾(À- +dŒEp'wx¤ñ|Þâ_(û€gìàÙH<Ç|ZÉ3Éô¤PÎÔÕÄ(Å3(×? ¹b¾—§W…<™0µ4jzRœD‡V1 °#Í\nPû£«6o?&ß ï¾Üèü¸jùM*B¡¶Bíx²–"Uä( Êý9kÛuˆ¾9âØJŒÊâÄ’€)AŒÞÄÚ#BqZ~–7ìw養'|6:ÏòL܃ zÒ‚œ5dƒ¤êÿ)Ó_Ïq¢õÒ™ð×nü ^TfÉaþ¥ùîŠ' Å72êXH—­dºÛ2ÃÍ—»Çû¸[ÈüþþϘ^éžð£&Ši‚9ókïßnþ›Ñúÿȧæ~ŒçàùÔ‰(Fu£|àÍã)Í?ÐãS㱇ºé~ç~ãoïë»~*]“øÛ‰[6Ñwâ3ú#Ÿþˆ»‰|š ‘#¿Åÿ øÓûë>N¸ìµ7 E˜²Oe-?Ôåºü€¬{í®oï;ÜL{·9‰7¤]]WŒ<»¢¹½4^þõB _ðÙ…áLM™öé\™Ì’‚ý$"$ +ï7A6q©B½æšXö¯´k~§‰|š¸z²Uÿ]èN\<Ô¾»ÃÜ冸¹×ÕºéKãäÎ ÅέCÎÞ˜)ó=iÇ[E/ù¥^= P«±ÿ8­ö^=ކ»ˆ>-wpÀ=¶ÈðÁlЈ«&jî_¬¨õÉ\”ZNÔÔßÒaé_í4yå|ûOÙ¡ïúÊnHÓ¨\¶Œáœ‚Ý=ù)ctäçÂô ­ÙÕ^Ýw;ýœ=nçlþ¶±^—Çz«\>kbòȬ\ø_žk)bÉl +ì" heþtkÖ\º,¾'mòöy A~j¤öð¤È$ø1Ï"³#õ[Àâ[ÚçÒ¸ìÁ‰ ­ôAZ2ù=ä0ÔvNSÂz+=Õ•›>|ÍIKfÖüvàÌÅ7ûxƒîL½Óˆ'Sý¹ZDsù°‹ñí2±3Ÿ×³Ù1±–‰ÐÅitváæÈ/=v#æÚ€†¯§pë62 ­3Þ>Ÿnú)¥nß×1<œÚïîl¯®Ÿ‹õVÌÏ–>¼^/øõâ4û´¯äo2Ñ\œä'+uDLÐhBìLµ™R›™>ò‰emÄNßÓaPzøCþZ<=ëå]_Þ½•7pž“L0¯åýÙøË:þ7Ä÷‡}„éàyqÌλ±næ’™Íìä·‰GÑœ¿µ&èx„‡êv2:Û‡ÕðÖ<‡üéyH·Û§ +÷t¾^¤fñe©`n”øY°JwU³Í.ºñ›‡ˆÿàÞ¦>uE÷íswð}ҫͼtÙ»2¾¨•È q’À}Fä8A|›»È‡ÌÏAñ3‡m¼z³2Û¨Ey]Æ[mÁÎVEòGQﺜ݇J»Ç]™™•¿*G×Fj«ÎÖ®ï;ÄÝ»ø®Øyú¥ÜjûÖ&×fÙLÑ zÖ*µ²;Xöê.`.AKëa³ïRô·¦ñqéfv­67 Bfòoć¹çðRîøØ€÷ºõd6Ó¸ ã‡mÓ-Åe“€ç íkã6ÙËRݵwªÒ).–_ºu½vÇX¼ûñ1óDú½v‡Qî覲¹kk¼ ß­LO7§×Ö×dÑÌñý’³xžd§ äjú¦ì7ðînVo¾J×:9›ޮšVW„ú÷ºõþ…Ë~ôÊíLÍ{Í÷»/hÛ@Ÿ¬ØàQêìÏðWUïŸñ¯ksÝqßæ\ôg«•‰ï¡f5÷œe‡š8…³h4ªê®A Ö¹Þò»¯:ÅÎÓv»w(X7a¬îªZ®=ÙY³&õSCóSíÌ0_þ~›jÄcVÕ€ƒ^ž;A˜Ý¿8 Ù²ºL÷¨î¾¦ÃT +ivwÎⳡEz²âf]õqû¸r›³ûs¬sšk8éb¹î’‚mŸGö×¥j³Û·nÛyd Åù¢ö|=÷5Yù\j"Þ¦æhY3]Ucx“+ ˆ°*fÔíqßlcا%¬ïØaEofJw³»z±ŸîüAóåÒÚ73e¡¬[×ðÚ÷&= >7‡eïC4k2;öÝ}7¶'ÔÝ€ËÚþ±IY½ÔPª ‰E¥wÇ,ƒWÛLoJÃj…`£jöi¯+5Ù9T + ¼ëõëëU7p"êMWãtRŽÏ­7A|í +7æZg4®-êjï¶è¨½íØÿ'¢^{[ï¤àÙl_½ G»Ü¨Ûêɶ§j'±Yx†xƒì-Òö-~Öý°¸×^ë}ÚÇ £™)ál5WæÔJm_«U +­^˨¦]#½…½f:¹Ç¶åSK¾”éóѺÚ0§ñéWIíWYMy¯ü–2ªÃ‘¢r›—<,¿r·¬+_Öérû +¢—`um· hk£×<Üý ðªµª§ß :fóLªÌõÜpʹZù”? ³²Æ¦7!õýr#èóÖ˧;ùͶ+3ÑÓn¹ZO랆õÉL—jÿv9(Ü•0§dÈêe}{Td¸)8Rõ†â«7qÅUEÑz漸/Z‡\ûæ)o)9*4)·_koÏÖ[}ïóœšÎ6â9;¨bhM=’©ê<Ó¼W–çÌÉhL3O½uBÓeâ1íæ4X?võ9<ÕT9uu”϶ÐQBG)ÐQ™ÊѰ³•³©ñEšOÞ©D¹Í’˜h×ꂈî¶à8ò@(Ÿ'þp†9Þõ—-Þµ7Þh3—?„{o )( ®Î±{ÌS;ÍjÃ]À¬%[÷‚™MeRtE^õƒ³ü&Y”}etÕ‚Æ +¨ƒÁQA +"•p#‰JšorôìÛrÖ\zÒ"íIæ&7‘ò n%ÚÏÚIØÉ—ÐÔiŽ/Í;&w©e{» öì݉hö^i|›µxÛ÷âÞjÛMÀ±Í®;›o`h$?…C§ƒ}º­ZF¬ÔÙõ!îå;Ó|ÅÞo€î‹vOU÷êàÉ•1PŸJºîfdãßy‹ê•jyT×þûl”X窎ˆ=ºa7ÛŒ9Íøãº°çiœ»s—}?ÇqÔ•f{Î`EnÝe†yË(ŠA2ŠÊÔ…Ñ]FA¥3´ª.3TÕÖÔÞRƒ©Ùú"¹úÎ4q$gX¯ý€®.†¼QÚ]éŸTùÉì•ô꼑³ä. ˆu_Ë‹8ëSBs:²rÓùEÔyï,y<í7ú\çÞžp\o¹fûHêÊŠ+õÛå`F؈bR­T™.Ÿkm:ÓÉ®K3#J3âi•fY´Uš¾à&ˆ)"ͨø‰RýZo¼i§P§Ý8A›²•¢\ºRŸ”‘ò5]û¨qú(OWŸT›Fß™BoGg¡^ü©`ž>qîÚ6X®«Tއ¶&Û7Î+‘H‡yŸ¤µ[K&u›œh]¸~èÌ[%JUu¢PËi¡EY•Å"õïP +¡ãùuwS…Ë9®ó·Lh;„zø¨¾vgEÁ«w³]-±n-˜C´~Ž~Ë•5r7•h+´mÅ· mÏu=óÆ>S½+5ÖyæS3z±"£ͯ3…”À¦õMäÒpãÖ/͋贄xÒŽZÑý'…vŸy²ñRE’žœ¢ U¦EjZË©¾V)R­À)¶fƒ_ôýFøè¹P·-ä-‹Îº¶Tп T-1OéL>“SU&÷–Ð t(ÕÝrÝcvÉJëËŠQŸàDG&ö¤|9ßV2¹)]B‰Zͱ +e›rƒÂòn‡têƒYä>ë¢;`nÅ’~ÛŸÀ!,?š “q{Y˜íÛ»Bµ5¹êúɯ‘Ë[c5nâËmÙf–Ò8äêáV‚\ë2œå¨nö’m?›ßK Ë ó|Sæ@Ýܽïyø–)[Y†«üWj!Z_œ£ŽjÓÂÕ6Ü·+iòºNÊæ­•Jî‡UŒÃ­T;ä$yïlð'”Y Q¾õíCçW-tœsƒç"{ÉAÛ¬¿$ÎYÖÒßðdáàv ààNð°Ð³ŒÌK\¶2ƒOa”‘Co—åB:=ÎL¹´6×h +ž‹tZUÉ´æãV: I;ýùˆßK ý9Ó¶7ˆÇ$'Ü,À3[ç[V3™ +%6‡R.yL›®ÒÑl­Ó'üÙ®lÑhpZæí}u–ó˜Ïî £(£LVëô^íÓåùíšÎÔ0Í +ò÷¤A¹†]L-‰¹˜ªalh© ê×Ùàwx/EÄXTÞrÇ7Wy€×º:À• pzf%hááfgM8Я´@Û.‹[G• +’â»q_ø[ÙèS¢ˆgð$„æý‚Nò!_¯ï79:Ô—°”}Î2Pa;‡7Ü€ÆCÞ¢o1‹€˜ƒ4 c%âH™1F@œÈEŒÝ ç$ç­ˆ 2DD €èÑvŒaˆf§› qË5¶5„Üõöx䨰ª"5-Ь&£h kk0q_û,c½ù†R¹doÔþËéî>-ù¯í:eæKP\‡[P¼íÇ, üE‚oW= ˜mu;ºŒÊ2Uu¤Œ•¹¡šáèB™!‹]Ã,`z˜É;bdƒgí™×s÷tŽ\^Aó…••΀*ê@ £wŒsPM¢¨ž·½ŸèÐûœ¨‡çꙞ€<8ƒRV@b|@½g]@}zñ>à‘€ºÞF€Úö¯1–ÏÄ…lU²ÒÁèÓPYìTWàÖX•AŠ™d><‹MSöW¹Í7µE!Û‡ðlfân25SS YW¬Ä")Pò¥ (…: J++ Jç +è|Št‰-×5@›»øz +]@ÏK@Ÿª@ŸaП0 øê¼}3y@ß»#@?–ñ¾C¡˜ º×¡ƒ6éz‰U»l4”§Tªøk«‰):ûl¥KÃñŠ©]ù‚šþHÐOšJßïa½É¦Ñáþ¨¿›˜[Þ,dÔË„`}"ìy¹Ð!À2 àè]pL0œÀ€ãZ:àxo +8ãN®âÇo+[ÛòÐwnMÁÜñ’FýÆ?ƒ.ñiŒ›…í{fæÄü§œ™!Ž᯻ð§$›µøG}þj½ìÉ©þWÿ†Mô>Ι•kt_?MñFÜ>>€ÐöP „¬„Õ§ „ËþÄÔ†"zlÛâ·ü5~+TBm†3oñ–ÊžXSÌ­ãú‰°Ú1ßGx6çfæe¥\QKLä?.èo±’ÂüCxþ¯¿‹Éý¾ÆnÄié$lRÇ tE+ % Œ.n@fÇI- sÈ|÷dÁB,Ò¥üøW>MDÓÉÛ¿!“öoL¯·q%ò鯫7Yç,¯% ?Ö^¿cÕùYŸm£Ó§4gV0/êºq¿Gx˜¾ë˜¼ÃîÆ¾Íéæ4Éhøq›Øxƒì¶ú¾{?­Ä]ýÑ¡ ÕDÿ”÷'[8‰éM ÈÊò7û6—ú E ñdq¥»¾ùÛ¼(Ê·ê±¢_Wtż¢ÝÚw±NûB z½óAÞ}›µŸP„³.ÜOÌ|ƒ‚[;ò[xpx:HøW‚NÄÝ$_`ÁŸíW×M §ÙÔ﫤ø‰[Z2ŸÒ¤å=Bxò÷¼ëëÑ솴º›Ë–mϱz=S#ëub"#u¼NöÈ/œÂaPpˆý§áÒ{õà »¨¨;¸™›•4p6h¸ ÖÄ ^¬\䯨uCü >`öÉj¥É6±Ì&jêOÈÀSÎCÿÖP¥q)×—Gôj{ä…èö„35eõÃé¸{¨©øÛ9Cö6Ö+5\;à:^Ê×owpEÍ®«¥<ö‹›ý8/øÝû1Ppjöñ d¦Þùâ4â-k‘™G“U5ÿžØH˜ +ïã­]ÃC—LåG>=Éþ«ˆÉAŸ_—Êñ@Ëã^Ýè—mõ‚>×÷%µr¡¸¯Æ,.Åù³±ffw!ΠÎXê±U?3BÂqcb§Çîx[™vÇÄr1 ÖýëLoG>‰}+›sªCCþÖÃϦ¤÷'ì‡Zãüß\²½¨R½ÿ-åm^xÏTo³Ø«k··:(Á¯öþL=uûS8hG2ì‡Q;µ¼Œ‰ùèRëŒ|<ÌÊÏùsH lXêz!×ŕ܇F[½©»OÑv`æøa€,ÛË®n.m“€;Äé¤ú.ëõ|ê~_&øºT].½ú‹¿¥<1Ëölƒug RyÑŽ4AÇ@ ÝÜ¢~¥¡Žƒ½!ÿÐJå|—ÂñöÙ§é¶ÏÖdïÖë™ÿ^»î@KZŸ©¶m…UiA«ƒÞŒêz'†ü tzN—ŽwÞàˆ=šíÖ·²ïä47ò• 2xºV¡¯>¬‡H©»ªÀbgk¡†pPÛ§Ž”Ûöi>ðn]iäñO)r²´peP_¶N--Ó}4£j˜jÈ9ïÌëpÉ1ñd´ÖXµúõz~ôëWÛ׋p“²Ç|Õv‡BÃvšó׺꽞Nç*\öÓëh%*ÁbÃݵe½;ÛEø.>mæ<ÌyBzý¸2yZšú*7£]¶ÖÌŠ¥–³È]'oƒø"¦ ,–õq8Ö‹‹ÛÝ>ZÅ´]º™¸ÕBÁârH­Ö³¬À|ÝS;3 +fŠ›1võêø<ýŠ÷É6Á©«`ŸÕÙ%6'7j ÔÓEî6ö ¼}=j)O|7÷°gw¨±qû*¤š9HDB±B7pº"Ö›O·Opϲ½y<½ÆC=«›J'òk=;­õáÒÚ|›òÉT.îÛLuâ³V~æ™ÊL6ôJ5óeÃZ–Ð&ôͨPÑ㱪ùj®š`I‹w"F‚åö¢&¶ƒ)ômZQÿšH/qPº¹mlte_ßËâÕ>Õ­”uÐÚc5¢j»ÍÑôQ6Õj®VœÉfU÷•Nev/*Õigj¬rãaÁMß²tZ'zu¢|¨¼¾—@™ZÉMíl?çóxæÕÛ|¦«¹¬ª<©üEÓ­`:H?"Û¿R¼›¾†›:ïz©1_ͦ +Ÿ(¼b2¦®Ý²åÂrÉàš¬Õ;=~«Á-‡*/£.*Ãì½®ËËcÖÏÊÚCRåt¿Z‘Ó-ÕHð•T¿Ûåý¹¼½‡7î|ÓòÞöŒs6%IôÝÚë¢Íqe¹®NQfZÍ +Ò¶’¯éû&‰4á)ÍQöhˆÓ.BÕ:ºTUïsµ®öÜöWUWÅÒ¤¯ ;›HQôÂNÏ•‡œÉ÷sÒôZà¤߬‰‹W~$ÖF$Ô›$lÒˆñƒõÒÅ‹ åÒ½%Ì]*—5ÝÌ[gT&«½ç—ï£$f¦•9Tj‘¾4êî-Òwëçª|ÜßöÚÀ«³iµ÷0QUì%e„D‚¢¬š’ê –\~ M9Ó—ºÒLj„Rn5[‹Ëzæ&ö*,4¤-ñpòkQl•Ç=ž‚£7OeC‘;-ÎwnuîäÍËLâ7ïÏéQ¿-<Ã!æÊ’n¸ŠôkqçLèïËLù¼ŒD»áõgЙðîz¸â.ÜúÈuà$H“½›xšíå•+\:%æÕ™ +Ì»”0O[ôØd=ºœw†¥i=Z–²èF-\¡ +à#’ëI»IâYnMbïJ‘ÄNG•¬“/¬ç.*¹ïêèŠ߇ý:þýà7íÓ^µ†”\¬¬õLºÜÉ^¯ñOLìälS›‰Xw:âf¹Ïu8rÈÞgå9+RÍ3ô{WFÑN€Ie29º\-àt†R˜ÒôÜ”K\)åÊ Qnk3¬Gªöœ¬¯æçâÇàbsrÄ©DÔ ïòXÞ$o;V‰4U‰ãm¨$jŸ×ÖÞƒ¶S¼õ•ZKãFSZ¦´^msUÒççV\J³Äv/ØG&×cÞä)`RZ*¢Ë»Âª4#éc©ò®?K¹Ñ(MYÐ,O¶’Ü4 <Ù •2‰Ÿ<»ØR~‘Jg'D»b&wIã][¦±Çn[Ãú­î÷™B¬ïîQ¬_«(ØcX‹á•eœ[Täþb:\{ãHvë—WU6sŦ{á(¥*îEα‡­ÐÜfgì£,å}íÑ™m»C-‡­!…úS²Ñ]nH‚|§‰Š‡,ù.¶:\¤jmŒ8f4ÁtO~ +U¼û*·°§Ò`lÐa¼Ñ0û"QȲ+…cÆ}¯ç +\QˆÇc9 U¤ìQzáæjàûL¡-N±²QÆX™ÛµRJùÙ¾&’9ßÒsfÔ‡4Œ.{ZãýâAG»„_BF ¤9”õ-.àý+öÜo>Ø õ„1¹Dà‡†ã‘†¦3ûo—£Íñn!›¯ÏóóõëžÏ5YÓ‚ÑQÁ˜O±í„¬Â} )æ‘ÕFì\§Y ‰ÏÜhéuT}Ÿ$ #@½ûS¸ãxó2§õUîÛå ìl·W +Éb­;Àïñ;ß+äÖCêÇb/·WJ£\+e|Mä9râï²'}~Ͷ‹d㋯žMÁ]z¥ÀÜ ­gA«Ÿé‹™]F|2éwÈñiå¾n¦•'|Oˆ~Œ˜þ® =G¶ôzÔ*©}ånmPÎ乃¦DâÁߨçKÛÑF¸ w•Ô„à}€)þ3(äFf!² •eê ægÇ~f@]ÂŒtÉ.ÒŸ»á?Ò!·N§Õgƒ"™å _Ÿ ?í” ë3°2O€NT n´WZ´Ï¢ÀÚGC¬âÜî¥Ú³x,¶+µ56z.gdOsGh>„ï5¹—QølM?‹؈^àËNcš<\ŽŸÁàù#ø"Ÿ.Ä0Ùç + +Õ ÐÔ*Æ,Ì‘<€?‰À–ðS¡ÿ·Ü¬òtÑ5N8UՆǸGWß.“PíG›¡«ÞíU<×Óg@q½i^6«Üñ,ÍáÞk5ɤ6îBäâÓE0ŽQZ€bÆÞ">8"w{‚¢Îf@±1 @1GÆhÛ ¾°¿ÏÄÛñû•,(X ÝO½ë mÑÅrzÿl˜À´,¯«_÷’¥TëQ`¼ÁX˜%ÄàÃö(ÔŽµs®ÝÚïaiªoÒQ]':ô<Œ‹uq€,Í×€”·@šŸ ½ïz°ÃÆÇ È7„*§3€O: $ÅTõ>”éÞUcq@)Ÿ* Ôk¼@á/PEh•ÄYþ” ê Ã¾Ú¨-¥£Âî’¦vï9JH-¬X.w½',_ð{ºÒ<Ýâ{ˆ:þÑ¡îýÇxü£úB(a%MG±Ý'@)|° ´&e@ƒ¡hºĈ¿ͨŸß°‰SÄ ÞÐú"haŽÊ\ô‘úÝ« ”Bvø>v7h˽ŠEƒ¾Ïâ¢æ³ˆç®¹«ðN#åvúOal&ý£>ÿCó¤âNñDùl–Âêd§ج¢+ȹärp8º”Òùa%>¾´AJò“}ÑMû#÷&þÞ$g"~“œ‰¿Âob­ímÀãË à»Ü©7Ú£€ÀÊT„ï h ½Ò­b +®ž¸»…Á;w¥Î‚WœnXÚ¯‚.¡Á½f¡8šÕ²Jý\N/}[ýÃ\ÐIq­÷¯µ7I—H߿鿂or˜¿Á‰¿·'?€”>fT@êê- EôH»B¼ïU€ 3 g‘tŒ‡ äÜkôùI6kòöOÈ@"©þC>Mâo×çS+@1*…ãRŒ»ø|–±òo`oÐzJ³À|ªQÿ¡®æãdß–w}nsŠxܪg7wC:ˆxµIrÒÔ¶“o!u‹ŒvîõÖ²ô_q7ÉH”ÓÄŒš¸dÿº“ðrú#K õãf—àÕö_kïn, ·êaIÜ÷D_­Ë‰¿l¹«ri­wz±'$ª¾'èd¥Î¾zÚxkôé1±èó¡[èË¿nÙ™9¼¹ËÆ0¾ÏÚƒ÷ô?ƒÜ¬ÊåC÷Þ=NáÁÜÜÕ³Ÿ`ds>%¶ØŸW6:[×ÞýŸýÑ¢×¥q¡7û9¬JÆšK;¢:…»‘9±SÇõB †# ¦Ã€ ÖƒãúŸ ¸ö¡¡óè)çÓƒ't`Â\€ÌÇX×ÎO©Î¶¾æI•eÿàb¶O]´Nû܉¦mæ Ÿ½@òžê×l±#þß}?EÜ–”íNßÇÕÕWáæ|:>;SÞ'r ]ºßi¢>Ôo =8l—3þýºvnâvtÔõÎdèSÇɤÿhó6sÝl¼€_î=þy½ºùútå’n…:UhAsnÆß^kÂëGÙ7ÊC9ì ›^|;P ôfÔêÛÀqâWAó/n&.`èóùKÕÆ;ä ‚ûê½û Lˆzu¶æ ø‡únŸ[/Ì»ù¯’ûì½WúdË­PË›-hšXFšFs›ð²ÔqL´Ôw­æÚ'ë¢ÎÞ»=õ^ñ‰š¯R2‡*Å›`Ë+Õ±S­TÓ¯†]™G^%—šõŒÅ655 +Ez¯¯·Ž+´ÜŒD±L;G;åæ;öý¯r«^Ù3÷/lˆ®µKÄèÞÜi +í[pˆëÌÐy4׿În‡£©ÕáÕyáũðÌ|¡™¢ás\…3ïÊŒ0àJεQcY +¾WšQG¼¾)oŸŒòÞ…ëeòB´µSGjô£»T»ÕëUåójVé×'Œü~Ò–<f²jåó2„šÌ?iôâ•Þ®’`㮳)|‡Q®61³ g™½Y÷<¾5?')ªF|دê®àW3kyXÉ=´©"öVoøƒkyÞeªr„µ3Pñó”zcKœ¤MUyVœª2È…ŽüiŸ9d‰ïˆ@†zÖQ2rH‚W%šØ²""{o,¬ã¬`+Yú«a‘V^žžMm>—W¶Ï~Ftâ4¶;úúšˆ»•ÿ™öXëéÛé½­Ëõ7ɢ좗Pó…×B½-±ƒ*0Â]yÞê)E6:9d§¸¦_¢Ý0]Ê‚-.²®/ækQ(¬Qd'`AãÃ;¯3ÁGÕ2wÔÈ!çáå WÚï¾½N®4[”8/s¤9÷±.Euóõg³æ wÕRc]2µwÉ»TsLk¥ï.ѸìIÙxp‡ö<õ.Twz$³yZ+©4Ñ«~ib ߥI¥\úQ¤„Ü™uNÃK¥¹œ/ÖF/[ôtÔnÜm¡Œîù‘ ÓÍ®¸ìŸšBÃnÕùV³ÚäNïnÀ1Ö$d»ÛÍ‚å{™Ó箌´Tý±ßž ¢}ŒVo'¦ o¹¤¿i“š«52¡õ˜\5Ù‰ž†™âÖ/qEâ~h‰gî^$›bÑOäÏMq g}ï#‹ZƒÛ¸)ðë‡Nth9ÁH\ñbG ì¾ÃEÞfoZgžã3rVПEkJkôhCC×ý¹ußÏ’aPéR6«(³f‘T¾0ÈÕõ]!1oamX,*÷¯rK¸Q"JÆÁý¥ÛÀY{tÆýq Ñ-âçK¿H”ò£boÅ«Ýø³9Õ¾ÍX¬jr‹wù¼è”Ïy0Otha;纜/ê V`›‘õCÖÜÏ7 +¬]>ÝRVGCjK Ê<´äºÔ½’öeö&±ñ'[Üé^lÂ:KÍ–Jx¥k¿tÉ>Î>½5v&¦:úŠV¬:”(}ÅŸÅ„™þ}"?ÙEù-³rR¬Á*V0É{iÁFßËÑÝœ‰öd<äÝu¦Ã +mÉ¡µù¼V2.N•ªáC®[ƒ6‰}æýâ.¼EE‡VÄqO ¯¥Þ Z +’u£.ŸUï„ +{d ëí[5ôMm:¨Ò!hŠ[¼ +åM2òÝÌOoЮa>…BƒñBYCðÂØGñŽ?§|EH:sëwÉFçÖ"˜Ð¨cröU+D“NYçñröØ|WáŽuµaKµbpA¦×T½eF$wÇôëœ}¥‡~9—VØq)•¼4¨,Ù^jÞæ©\ÆúNÅ-Å0Õ‹Qéë5;R•Ü¥šVÚhÛdÍDÒSîú׬ó‡H«=w}¥ Dá#Ê:Z]âÜߺØ`*4 +ÓÂÑBÖn­š=>R:Ì6ßÉâô;:Õ¡‰7q Ìuä¦fÝMªòï1XsK`)Ê  ©Þ Pá‰McNŒí'(<%ޤ +';~»XŒ|Â4aKÃÙW ®£¸AûTFp’Ê"P£ù•.ÇEÉd3aÑHö²C¯0•šH}>¶³mœ3ažÊTÓæT…àá¬ЃúE£cÒè+5Ž!Ƈ̎/‰r›ËA1¼"À´#p–ç+À)€¥ö@oã@i ûˆèl.$¨e᪡ûcI…Þ“œ„Ñ‹ ÿ@³é’,Oc¼7—¾Z'ši†¤aäÝlû²hf’ROkZÁN™Çe `›Q=ÆÉØ-Ó8$ŽŽvæg.{€kÂ3Æ0 ðržŽ׉NŒÓàÆ(þƒX×XÒ†/Ey€:ÀS]`×VµŠQ]{™ã’’mÏòBißz3cÏ9Q¸Ý[ãÉ~Šê>D4èeYëd†øÅ‡¦¡çMî+Ÿâß ‹íÄAœóú€ ×@H`ˆ–°Dß¿bvOâ a\È/½ˆãiˆ“wĹÿáÂÖ~ÝÇ*ˆ^¹ù×}lx3ÈÐóòíCK¸Ðʳo[ý”PX»·ÊpFóÇ +i"Ì4ˇIF¹:!„äÓƒøŒ{ ˜~@±\œ€bGžþÁz°ÅËùÈñ$m@Öæ Ûhâ„$Gý2 Wt;Æzȱñä¤D2@\@öR{@¶RE@ºÆæaHyµÖ»UÔTr!Çw7:JÏ›v¦è_Ì'–Æd_~ïá'fm2Ð’ø·HÐ ä?½ÇqïòGý &O@íà (¥u”°>Jõœ J㎠J“l?F¸û61%â?ôS=P€$ê¸4L  ÔÖç dç>ÉBwš=k¢ëwDV{¶)Š´‚žz Óy§øúd…òÈd2©{ +ªç?%‰fÏ?Âsâ9þ±·r€FFùÄAœ¨¿IòD¢þD0ðPŒLÀ¶˜<1ºæa€y’UÀf±)`sX°ª6¯¬s/ æºåõð\çÞÍi¹´Ëïz„,¬â¦¨ß®}”Îet÷šMúS¬$þâ¯í8±O¦Âþ‘3‘H¿}µI¾Cõ7k'~h^WŽ€R0ࣅø]àþÑŠ÷=[$²=¹àä&4š"!mfþÉ×IŽ/Xî-)¹[Çä2SôH§vW…ŒÏ Nþ)Ó5‰ÖÿSŽDsþë3Nb…“o"ü&é_§ï?L¾_ÁWÌ®w@lo e0HøÁ?Éè<€Ôìp@êGIÔ±4Å{¼ ¤vÓÿµÅþÍø¿¥¸ä§ô»ÊYÞdßv¿®Þ$«·‰ÿY—M{I?‹ 2B-ºªBã"fûÙvï®ïÜñmN–7¤½:^W,.[Ñ.^ˆwÎí:KÂn$j¢ðþè”_ õWÜý«I–àI5‘O¿Ù +eÄè¶~³o+ë§5O¨V¾ÝõMís«ôôuUÒsW´££—ÆC/ž’NŸ©°*œü´¥ž˜iß<ò˾s Ëîþ㼿ÖÞ=Ô¦;8¸âÛêÛ«þd4|}ƉKv þGCýúPÿ›|ú£RKc³ø€ª{‡m[»Uwûж}÷|œoŒÁÉOiÃ#?/M~×K¯v¶Û9s9l¬×ø´vR½Ûê ß˳ÙO/™õ¬°à÷Kj> ÒìÓáìÔ—CÿH?ø"<4 …ÿù“/0xˆÔ¿JùP§Îãº"v×3ÕoÇ yî?µ´‡ÏüN?¢¥õV +è55øÅÍ*Ió§ƒi³—6fê˜Óˆõ)uj¾Úçvj3· âÝ‚+éñïŒàT®ÒúDž× +WÔÒrÁ£Ù¾Ô4pÊkÂ{¦¿R» ¾ZçwÏ=Ê ñ ñ“å¹<«&"oèfßùÁ žþ¤$²³mM.tˆ]ò]ÂÛgwPönÀôøÇ á¤Ûú„ƒNKK½4¦‘‹¦Éa–Û•c¢çƒƒìGÃ&Ùt}Û¶ñºÃ$ûÐ#lÛ'#›úLR–_®ˆ1ÕáBt +ë5q²ÑCþ)¥{ðˆ¸v¶¦ùutùÔ>»ófwt¥×ðÒ +•Å»éËøøó}Á1óW²±ª?غˆu‡z¨u⒩؇nÛÔoZç>ç[ÌGÔ­Õ„ôxg*—‡)#"R íÞwõ¸ª†çkUhˆ*‘{ÎV Zçþ…ýX¨.fåxô<¼/E²» Íe´£ eÖŒ:í¾3¯VÆ1Q}Ûä—ö¡Íïmê¦^-_¨~C€j·¡“© )1Ÿ“7e8 ªŸyÄUµ|$U¡õA¯DõUˆk˜%¦o —îR·¹ÓUGŸR¶¼l¸r1Uij‡È-§f'Dš¸¹¢”¹à¬8ëT4É ë‚U½š——|£Þ¹ý³ˆr­ÁÙà(5µæ(ëǸfã·{8Aë‹Ç)Ë|þ—®÷\T•i»t ¢$çœÅœPÌ9ç„zþ™ÏÛÏÛ_÷þ3ÖrªpK¬º5ʽ+‘»%);r|­äA+—‘ãs•ãUIed´ Jx³’~9>dJ&0OùUž{ç9ÏZ¾‘‚cé‡»Ç +gC—8kÍÊ\ÑBbÍ$>JhlF…¡Áй¾ßOwz-º\´ÓûþÔšk:£I%‹PÃ}ŽSÕZ_W¢÷ÅWŒ‘Ü”‡Pg*ÿ}‘Üu•àùE‰sMŸ‹s‰èˆW­?L´Y©ÝsKbµ^ï€bÁ>+í§ngô޲Ù,[·ác·ha!ê™Á~“5ÊçYN?Èû²ÎwO íì=MJš?_ç­•[«ê=·WžÓîMéåÖÅDˆÆPAÇ;u ÙFèRãÕ·I¹¥Æ‚œ2/Ú±Ük$Fޝ¤ŸÅÀŸÌZ$h[æ¤áۅ«õò”·ÍB=rlÒÉštñШ©úýÈI·É‰Kç×)(«ñ<Ïjœ”•6Ü™yV­+ÌS¶c0éÑoû<¥‡°¦íz¦AµSPpóÉ“ùŒj«\T%Š7Å·ÅÑgö"òH gö/á/¿6_|Ëîÿ¤9c^vY¿Üˆ<}Õ®Á¡Û?dΓH¨©B¡¦Øú&|qÆi™ÜÙÐtV½]ÆDî=l|<\?jÒ¡ª”çy¿ø +AêCr¾˜,HœXíˆÕ ¾ÅŽ™Á·¯:Wú7;µ„ Þlˆ^Pë‚¶–1‰ÊÅKM¶Ëm…µz¾F_L ßñ™Z%­ˆÔgîñôó§™ÛÌv¤KåWø2Œ18’ÏïëÛ)R:ýA +5ù¶U2ÿìf‰u¾Ÿ#¨u?Àw¥u ¯Ò¯Î¨vìy+¬aöΘð9¿Ñ¶‹ã¨W~ä>n¡ÖGt’8Á¯í‡-®”tüÉ~õü/¢‚?©ñ¾®þªˆ¥>s{®ÖÆ!7iêá*öC¬IyrP˜ÏÛcïXÑfÌ)ò;¨©5RIü©K8ç&F\½Jm¿"ª  ä‘FH”¹L}Fm}ßyÂ~ ÃÖ… o»çAÎþÝÊÌ„Ú:ƒ†Ð,Õ“‘A«Ô4‘t®ïÌ Â>¤ŸŠz{¨ùŠŽ#Îû>ºYÅ|m­ŸOñګ;²çsu‘ÒjEî¢ÜrL?ëe©iÿb$­²¶†W?œŒ^§±‚D˯n± Û](côGÕ!w ´ Ø.ô3s0Zd0owÁ2ódP yé€,öj€,¹K@ºè7‘ؤ.̹%ŸãJšÏ’»G8;E7³²ö×Ú]jý(‡2üìºÞ‚ê|C´‹¬nl}ÊiIlŽÎ㎆†{HAŒÓU…Áíagò…APŒû“0(õZ”Æu©N¹¥›ïDÖ  3Љ2Þ @™³5 Ä2(ɱ%Ï7€¢+0  ‘JaOŽi%?\ÊÝÒTõ•ôþx9§íëlrš•i—æIR¢\œŸ¯³h§TúÁÄô9š’' ¬c Pß™›ÈÞ4 •-YM@Û£A"¯ ³Ùs"khGfÙ:€vƒ6 =qèJZ¿ä-ð@‹$ hÂNé õUEÿDgt)@ViâÜõ+ì§ŸˆôªqaãԢDzB¹a4ÊGµõÚƒ?û¶ ¡2mz±1}Œ“µÆb0h© +®ßL&Ouv€™½€™çQÀô`ú~0¨—Èî˜á”L»ULy|Œ·W’ep.`tÂñËŸõi6÷•ÂSWÒN +BmÆ'wÇ_ߓɪË,î±:v™Ô˨ÞÏ–a—þ3A«¬¦ëø€Íô‹€•׿èŠK °%¡Øv~ØõdØËm 8¸Ng3t"pY± +8yZ9¥õœZQÇÚ-À¡¹;`ß /ù:ÛH½ÇîÔ{U1=ürOy^%‚`² fd;#rýYö°ë ‘ÁkÕ‚áM½ *ëLRΚjNȇéjê½èòá0Éñ?<«.ï…ÀW6WÀO‰7àï5 4$'ÒðÀàDæ[ Eð±‘ü[þbe¿™T?qç©ü,ñ0WÌzKÁÔìÅjÀ\Ø-o)R«.°[´#£Lylì?š…ÇôYÑúãqpÝ¡þЯðV.@ä«O úûLê îÑUHðË[¬‰K$qã+ø2$\@ÒWÙ ˜$î5Í™°×Š¢ëUJq-÷Ô¤'óÅ Þ.¬ÈXP~ +ºÍ?e¥¥uøÇ?yÇ)óMÃ&R§o6ñðû¿v È@>u²@áA(µ° ”:·Mä”J¡ñëI%È·Àß Ç—€â¶# hG(œ)š’Z1”¹íð‚\3p+!Q“7šò *^Ö8tZ“ËAÿxŽÿõ÷¢fzzþù|SÈú1ñ¿Óþ‹ù†E ‰Dh‹é$°;ÐÞHÒyÅÎy  Ë Ð­=t;¹èÅÛ èežz ´‘Ðû=X‘¸J_ç¶Ézù@£Ÿ½LÀ¸àú†§e¥QÇ)}þßqÂÀ÷ßLáÿJ—øoà›Z{Sæ›f:¼o`Ö;00û†–t‰¸&0ßÈX8B‹ «À’¸°d"y©°ÕÿdSÿ©„þ‡ú¦.Ùtг4¼¡ßL‘ªƒŒ)îþãêE@"Yâ?![õ/°×Zï5&@á•áÊ3wÀšÿ ÀU'w:²7iöíµ™9c—«¿ .ÊÚž¥Â©¦¡·)CMçàú øg´¦™i½?,ýÞfߣK'­ly÷œQøéQ8¾n÷Òõø¼UŸ‹ßsÏëÉ\f®âh‰^BhIžþ†;ëI'é4 ®æqÌ=r‡™—÷K we ζ5dýÞ4Ɇ±¾VÖ…4!ÍA˜n ++!e¨ÿ#dàCÿ[¯Š½ ü“|,é-û joí^º0Þ‹°âBZ㘩„‡ÜÅŒöD„÷wôà3Úr“ãdÓDŽ‹uH¬7«Gyw\é‡Ë}i].?4´p16Ÿ™œ0[:Ž=#fÇæ´ŒîSzSaRúœÚxÓLÙÔ Ûóqëñ?6é_Ò@ãùÚœõY÷ptvâq¿¿×íÞœý¦ÙÙr£3´± ¾Òw-zñmæùùLÄÙÒ•1ÆiFìÉ>xnÆÍ¤1:ºÖØÖH9kýa$ƒÞ:ö¿ƒÃ§ïfd¶ͤzÏÇâ]ZSÊ:×â=uËvj’»ÿ7d õò¦Ôã˜ôÿ\²qÙ Pë[šâeuZËödï]‡nñ]ŒBf¹FÂì0ˆÛ³ËŸUÖyG¿þMo– ¿=?3IX¹ Ë9Û-“+©KoßV§Æ1…ðÔt›¡xŒÛ¡ö=¶ƒoEÙiådÉ6¾Ë˰ᒣ~ê’½ž´Ì&ÙràG ’ gº±æÂèZ<’ƒ¸ÙfûcÍá{3ËQ£¥ëØQ7òÝM¾_íìKífxªU;¡x®öÛ¡\·ÝÒ¬¥Ç¥U34vM´Ï±×}4 Å Ô“ŸM¦HuËɵ€-yÕMò¡jYʯªô½Îüë’ý/©~55Eï —[káœC#%¼ýo¸ûDA&¾v¸mùÚ¾6ŒGëJï–þÌþ—7fžjZŸŽØp¡–V÷±ŠU[+n- :…ê¦Ú*UËܰ^Ù7{­JMZõʧÎv\_çeé:`Î%¸Ÿbä ©¢bF0j•`P,l›np…ïþþƒ)é¿©6“Éž¬åi¸øÖ6Ö(Lº)ä ›,Ø´"Å›5ÆönTGÝYØT—Õ2ÓØUöõþµÂ]¦qùÔ>A¥k´ÁJ¡q¥‹á•/™ë¯ïÄÓX>š-|Wh®0.*å´³šyŸ+õóèi½ò¹ùĽпÊú]Í•y#Gö÷ý Yo?nr©$/ü¦Ù2k“Úf+÷üÃ)Óî êÏjÕ€‹™iu³þ†•ïVËMYm””˜ ‹‘EÁÀƒGH˸`ì ÐÆ¾ägåà™GÁÇ_Ö[°O\êXnÓîѹ²²½}´Õ¼šñvÜÓˆ,ºM'øµlœël6sÂa®,#oßŧãK÷4vnÓ6ÏÎubÞÐË¿iÃÙÇbJf b'Øñ1m›Õ +Ö¸Ñj[®t«=ÌY—dLß&& {3ë¿ÓÓÄòwúbÊæn´NºÍ‘åß*ÇÆn^´2ƒn~áΫ>ÕFò¹Êtêz‡e.ë$'çñç»’…p#65,DÙÜgya…éÖ¶/ÇŸÛ.9›^kârÀ‚ç"jÎëUÎÄ.}ÍXµ?yƒ‚³m½’ŸÌu–Úas`´zeSÕ}ºÓ_ˆÿ•QWìŽHoÐz¡.¥î³:+ ¶úÛ7¹ê([vÛƒ~Îéz„•}Õ—Zö%,Íìósrí´ÉÛYÿT±&çoÛòÚtßœ?è±™Ÿ9+÷K{cu¯UÅúŽ:Á:A´v4tE† OmS÷ßMZ¹×Ì™Òå·7ùÕÎRr_õkrßËí™>ä¾Ö¿Ë¯Îâ1pÚ£}¸Z£†§`\¢'>ý|·ÝÐ@JÙæx¶³Þ˜Ötï*VއË{«†¹y;ÅÝS;o”P¿¢ïšµ–^•½¤¥³ŸhÇI¼ÒDä»W/Kúª¶›…¯r¿51Eׯœ£„-[A¡"¶»¡qòQœž.˜ˆÊ«‚ˆ:§µ˜[·T~tpzun½Â[S›.‡eÊáÀ<0ý:öšëy+û–.%&×\Î"ÓØ1Ù(Ý‚AksI¯ö·†v"n®&–ŸõªñuUéómåaÙ}%"š3Eߌ”C0³£l=¿/il‘ä|}Fœ•Ǻˆ¾ˆ…ž@\_{¾¬UažŽ=—g°pÉÓïÇ…/›Ð5•nÍ;Jõå÷JÆßû[{];R¡/Ö*pô-‚ùe—«{å¡còù¦5ï·‹FÅX:Ú¹Ëèê­±’U5ÌrŠÑËÐòàCI2pØßó›äÆ,g%¸–/ˆþ»^±a¯%¬Š‡¾P¤ÞSÜ3¾Â«gžy7ß\=;ÇØóô-²-ß÷˜Ûjßf4Z_ѽÚúM›B_§Mñ0¦{Íò™~.k’¬¦Ýc,¾Êìwa¾m½ÖÂf3²Ð0‹c'ÐëãÞbXWzaK’‡u–“&Å5%λ NLÚаZ~,¢2¿½Ë%¾Òõ<«×»\}ÙqB°ýŠ`/äûÀÊUòÁÜõ +Âhƒ9O÷3p–6§a3¹å@ *SlÇä”Ωä”é’J'*;±ÏÔðæž[YàÊwˆŒók¨ºq;_~`#ÕLݨ<¹‚ÖÎ4 0)‚–³ó¼$!Ù;+â¹.%PÍÍWnm‰;z]k ‹,',.y¶-~*¬|£Z̽£õ˜®WŸ1:2ßÑýÂùF[$›¡F +Ke^[‹ÌÙRDÁæ×†& +9뉯W„¯“¾žGbÑÀN©4ùÊ–úèí•úÌ z÷-üx¯ë -¨Ý\àÈŸñA—r¸) ëêšå«’Cr ÀÙËÑØäŠðë­1ݱc0º[u阙éþáX§­ú§C¾ÔˆrÆÙ¹3™›¯ÞÄ’ÈDáÚ2ðú®àt¿<Áª×ëã:3㺟«>VGlOo8í$Ë*Æé¢z\£È­³Ž±í™´¸«kía\Pú5+Cð\ %Aâw§Ë^YŽdæ§ãÒ•¦­ÇW¤ÆF¬P.ÎÙ´¶|rV*•I_µˆe´èñJ7ñöx¹TyaûýÃjuVAO—^m†Ò•ÔÓ 5 ›ë.*ñ“*a½#Ú4†Ç\*@‘üÝS*ñÊÎ '½”—«ùZÇ€ÉJh¾÷;o„Ò—’nYƒe}š¢íA¹~ˆ“~kÀ«ÌXJºi3 ßr§,^>}ó8ÓâªØ![è`õLŒžsë5ÚÂð*­J0r+Þ%¤C ð³öìÃ=¡ùãа‘Ü,`c[jÀ=ÊÛÁÏl넨­Î©¢äŸx¾teo©ÏÜ"¦•(EæJÜÝdhÂ8"±®ë|ûHlX©rô› hÊÍ^ÑUK.k¿ÇDèùfHh«ãë‰ \Tö®%䎢M¤³´ˆ´—ð‹<žáÞNЇk°P¶ùr ŒÜ +3^ lÀü<„3ˆð-gq=Ïxu€@¬Ke‚ùÜ#M²ÈŽÃæÂdP/J‘¹üÇ C`G(—ê×¼d&z•xjâB ‰½$^éª&41¹wHÑF„_ I…û׆>›À‡Få¨9Ì>ÌLëñÏs›É‰Ê,ÂêàÏ= +ðWIxÌÖy®~žÃ¿|Ë¿—ßR§T‚Ù*‹xájz±ý¹¿ÐÏ’ý7/_À.ÏGž‘Rý߬˜È|³xå^&1!V ä~ƒ ¸ÿÂ8ÈYŸù  @ [r"[ #,Ÿˆ_OdÙĘ^b3zb+€˜¬M@Lë-@ÌŒ æL:Nšè[U@ ²@4{ÏTò[í9ïnél‘k~®Ý:T¤ «.åAÌåæ²Vr¾Ö*¹Pu¯f—,zE‰H‰‚FA0þæit~Î{@ú[9‘›È:ï²×,%²o²Ïéî9@âDÚ ‡B6‘gíÙ aH²Ò¯²z¾'K Tr­° ²^ žŒÃþñ4MÓ¨ž’rÍ?dÞzl=ú3e-r±ékø^eôÚÝH4yØNt™<þ¤mY@1° (U5åY@•Çy@…qP«›Èh¨)’N^OMë_@Í.‘IP󠨾xÔ€ÕbÛ€*ÉGJ7PÎvû‚ùµÖtÒ/>X¨}DHù·ØäEÂ-1ýóܧОÅ÷ó¶ÞQK94«Ðd;ÁZ”@]%Є¯ZŒL@['ÐTô Ù‡ô²ÝtüËþ\Èó; ?’È$ùÆ×(&òúv|ú¾Ö½ß¦hˆ^ð ûc=¢©¯¹;|ϺÂc+yºþ „ên³lT(¿Û+à‡ +â¡Q7 jŽ ¡à›”S5@O`8ÔLNüEVè9ÀLÛ¥”Cïv ÀBx°JvX§·lŸ;.Iö;©Ù€íBõDÖ+ÀF#°õŽØB8lÿ =¦FE{é£ÀäôMµÁs-nf÷ßéÉ©¨Cû¥V í6ØÓ—B†¤r¹ÿæÐÙc°#$Y×Gk϶gV:€Ë÷z€ë=§€;ªÀ#Íà½8|7À¹¦´|T(¾‡ô_ŸŸßè0€·ËeÀg«;À«ðð6Jä9´ƒÈBÒ0[¶¼œ=Né©õ ®f„hÔ9·`÷Zi€í©ýù¡•¤:¥Ï)ó­¨3ÀOüÅ?N_r¼ùÇîû~•ÞÝ//ÄzNâüîqQiqI.8X¾Ø +U –Ú] –;O j+'ÄÜwFL˜‚L£Ê;=…FùpdÆÜ}EúeŽài5ÿ7‡þ•ó‡ SÏqj7þs^ÿÖ4ÚA%RýoÄß¿ÖÆe êY `X%‘h\9ùóHÞ½N= o‡S w'(£eÈ}ùžÈ…Òú‹/.•©øË¾óï;Eµ3–´2~ —ðl$î@]úå9ÿ¶Í_Y©í8¥Ï)îM™sêïM%5Ô¦éÿßtF¹t¹?Ö;®ÍÒû@ë_~¸hƒÚPSÖ†@ ¡Ð:„´*ÞZÍŽVl›Ð,7Tœ.Œ³<ÜM>ˆWâ õÿÃÆSÖ›Öôó<ÿ¡çéÜø_ÿ;b"-áøŒS曚|Y§ýßþÞtâ¶a}LœySØ2À´B˜AuÌVñ ÌvÝæ8šs¥ûÆÜMsÿëK-³©«7ÍoH]²„›HµšÈ¥÷Ÿ)ÙRWïùÇ. 'â%ßp{BlÍ{ÊkŒ÷ŒTêeŸ3zõ|ñDkÛòƒh­÷ÒýÖ»Uã÷ìÚ̇Kˆúßó£h;§¸zꦉ·‡ÜKíüë’–‰!Ÿ2Ôÿ—ì?Sœý¯gÓ ‰ŒZ±5=_P°˜=–lwu߈íý­útŽ×ÆG¹\®Žò8?|:>ë+œƒÇF¡&Ïï—¦ìJ_ØÞrs,؈k#\+ûýÏ׹Є½"èò¦:-0e¨©õÿUêk ?O´ÔBŒÞ¸®À\OzQ½\íJöXïÕŽù}áÞþM²ÝÛJqsò¸êúZ€êkeµWýí.üc°ø¶âéÂy@ëyî gA†xN79샦0ávP~,ž^›Ñµµ@Gʽ‹õX‡ÒÙ( ¾×.} +ÿ‡þ›’ë—4úP36šl÷Æs¼if¶óµ²œoWQ²Ï–öðZ@aï;[š%hºqrØdïëä„[)ÌXÜÑü(äiøhÚP¿Ñ?.0h¢ßÿö­JßùV;=îN¢eþ~Œˆ•é–YÄJ*b¦iöAZÛŸKVùô)Hý×%{QFÕyR˜W]èov¶ÔmJ߿Ռ›ø0;º–V…‘²?׆:ÖX÷C¿ïÄ«qÏ“y´ô&ëˆX wÝäÐ:uöåÞµScæ¯ðTŸCñ²CÛ¡rgZ¢´ôé5N§ÞøÎÞ“†‹7ºm–NÛ€¶í^ê‘­-tXÝ´÷ÍQ]O±Ž×!ÒÏÏ +¯§”ÒÉþX¾£¥ã|»߀;û¢„w¸Í…§jM ÅSh·•[3׊´f"U+(7¾ã Þ»µvš×¢º—µe©6­ô`]ÝÔfÇ*}¾¾*5…D˧ÈËâ{é•®#§[ +]/.©ˆgý—AVE†ùbT(æÎ'÷ë߬•EßìÝ<›BÞî&·<‡âá¶nÆ‘¹hŒ³ì¦>Ë!ûº +×Ú2ÐâZ@–àê¦R%*ûF©pׂP>… µ,>«FéÚkgKʧ+>F£bÑ€¿4¸`àï:#“¸¤í +оõÊÏê*^Š–¿ ¥®hAÆ_v9åHjŠNvrëC½ê+%¼M+i÷ÔÑ…Ø©–éq£|j?ª^ºvínI‰íAñ1¨Í‹hn‚x2;62»Æ…Y\p‰C&?+мÏÜÈ.kÍŽ·fζÙNÃúžà©åJå«Ý1Ò‚\Å‚žÚ1‘^ü'®:§0:"GÕßc¢f–žo+õ²ØÞÇw5?¯³¾ÜV®ÜxÈÞ>\ª÷\šnÓLßëh“wBçQqTjf£<ÔÉ8=°%zbÛ´²´¾{ggkIo:Wæ¬5þ=ô2}ùAˈŒÀ¨zúfxlêeÇ[è ô|iûùJÑö‹ïP«¥ƒ¶_¶© MçÚw°yÔ¨jfQìgša>¨”¼#×v\¹ëŽfÖ¤ìs¤¦“ŸD{L²ãåJ´mr¥ZãÊÖ²\ö™³ \4} ®šèiˉÝ3/ë›cs©—ã½Îˆ§›V›`@ã=ŸV›‹¦J]RÂm£¯¨Uü(?¹ËoT„}à†Ü×K¹'<¶ò³í’æmƒjŽDûZ¾„ÕI!'aÍÔ¼›Â]{äø²55o!v‡2çÛ:cÎ+-Áô_ÉXYÍ 7=G¯0=_gžé Yíл5´ºwÕ󆪭²:We&Ø)^xU4sÿ•{c˜”M7ФááZ’2¢5'×ËID´)"ú¼."~m•H¸½(Út«ø«Œí±ãô¯ íoàCÃUš#ß}ö¦¹x“’±ÞY}×½Š¿P½²þ:ë"œVŸgDõ‚#šÚºhŽ*·ó¥óÈ—-j5å—¿êÉ}ì6‘>mx-õ,e"ÿïEï=Ä…Eö) øÌÎókÿñÔÚÙsU¹ª–­sU,¸]—\òÔŽY†íZW÷Të8÷ë0Ç]:õìÀ+ä,tF™|KÚ©à1êU¹ãj;êþ&©KšpH¹Û¤Ò•ÛŒüšŽ$ÙB§ºô9%gѨ•)H™;R§]¡%ærù¾°XV¦B!˜lùõö|ãK] ævqGà8ûí±©ßf®èuÍ´Wc„QJ»_ÿ†io†3æJ¬æ¬X8/ZƒŒ”©ˆ'yW@ãñÀ½>¼Zj26I¾lè<»Õ°ÌÒJä¯q9nà´å'}u‘œ&AH­sbnbÉ"ZiXBáØøù¢1 +øu©óeép{q56¿fOÖ™mŠwÀ\;Ã(¯^–Žl¬IÅ“p™\Kì ec¥5Èg'T<¯Ìèä¾3oº(iR´¿å¾½Ùj²Ëßž~U]½‰-áíÚ­>.¹É1,A‹ãGD¯K ,ØˆçƒæËù¯À3­qûbsµ°”gOÏj™möF-VÊßL¸AŒZ6tthýž°SoáHRv¨™PuÒíÛsbö?Ä<£ä‰9”‘îÈœ‘ãKvÖÀˆÍ·8xî6¹Ú‹²CéS1‹ô×K9´ò ‹‚lŸ”w ˜ˆ5!HÆ£ß5/Ïs1wB„ãÛ!Áž•ö “ÌÜü«Át°¯Ã¨1 Ÿí\6Õ.õž­§Ô0ì)°Öž¤Gwqb^Ïèv©Tð¢ +¦8ùœÅضõp2Þ¥³Ê¹×„Àö쬶…kïÀ½4ViŽˆ=é\*FÅß»jÒûÖä÷3+Hž¼ D,¶0~î3Ü¡^x³ç÷beHL§fcôóltoXæi3©Ô'³üµl¨á.ÎSÙ]%'g±Mz­ÒˆXd¦ÏÝoøsPœ*®U¬²×Êè‘_Ñú¥öBë›™‹Ö“KÆ—)VܧU~Í¿ +y¥°r;í[ך§e½¾šýŽ4U+Ü49#°¼˜ïö)’h”;ÆÂ*z¯Ú¸qsTì4ÎHûµˆ2°øaß °>Í÷¡~ü<¿k–(®¡A+"ˆ¶ âCAÒ>&–Hù—¾nŒÕ/ƒžzymš2‘¹€Jøóˆ‘ë†t‘°l—• ÛðãpJšì qÅ×j Ùê•ÎŒû9'}ï!ðµüøÉÌ¢A=¸qf\ÎM‹™Nñæµ½ÍÜF3^¨7êbQyÅ®#åòõ¼Ö»ÀsdŽb/‡£cº QÎàû!–Þ8ÆË–ÿÄx•¢R]ˆ:`øéh8܃<6f-zûs b7m²–™(~/GÑøïÇ`£à—™°1m,<¶ÖéíÖp«-›«ë³TÒ('&ÊSsƒ²m­}!Šò×V?w9» \c›£™îgQß(€I_†¾9ÞXíüî7¨tbDõ ôXÊð–A¤;æw„¸ŽË‰ä³‰Ì‹7È0‘pp½&2Ænål€ÛBàÒópˆg¸(‘é&•ßݳú8ž³ÎSš5)ÓV#-ýƒÌGE¯¡w‘U^ +MÛÊ'ggÁ·ì`üµùAeÆ}#ZÝø@#šÊdå=ùÛi"·¤N"#ð‰µ”Üfæ. ¬’H9úyåW€`J@À_È"ymõþ¶oÿø*À¯ýq² ᜊ«Gñ‰Þ ïme0Kó²SÔ9IZÿ_Ðo‘c(8Z’yWQL°*çüê4I_°D?@´2h"TRåÐd±jI€xß,@|ø|"µz"× ¾Î6‘c HPb™aýC` ˆÇ>Äaoâ$$¿f¹ŠSq†¨x0Ë÷ÃXSçIOäⲸB/EæLOI”çÒA# +N<ŽÜ¯o î?W(Š0 âç7]!ÿ`t…dmÂ2:Ë€œÃ: Ÿ® (x\‹†‰”¦€Bv@¡Hä% +ù f€üº@Þ»Õ³<šŠ=?~\ÀÐÉXíåסì¡qåÏe®e“šŠ]…(™¨€‰¹&ƒD’Aö†Q¬ÔÓe1@ACPÊ–Tð€ +%P›š¨ëÌ4€¶­FJnƒQÐÅÌ2‘Ê Ð¥ –HO´«Öí@k_ÐÜ'ù^~¦žãdA¼`QõñN—ó©òŽ]qMžªœü¸ù´“cmb£vuL¢ÓÈV$Š74©H³’¨1–”õ5$@[5Ðþ ùõ°Ã)yÀè¥2`ª‹&`f™°PeXú|,c oYÀ"¾ ˜ê$r<¥€ø¼ã³^Õ“»Ÿ”I¾NgS²É᳃v_Þ2 +M#¾±×ë} HÒ\^îÏ^cÀs6‘H²HË•÷ÉLwY½·™ë€›Ìz€ëÆ0àòr5Y@14NÂõœ†oÿ.ûa£ÇãY‹\Mo•4B±J—|fÙ*ý‡CSÓÒ?•¤:ßêþyŽÿÂ&þ_Ô7e­Eô„U#= Eì1_’yù@´ê] J̈ä "uÍáqLj‡„ßBó±×¢ýì"ßÖŠëLûcjQßD¸¸"Û©):³šËõüÐIM)îN+ú×vœú{ÿËlü¿Áï³þÏiå®} +È¥yÐó€¼bš‰,@åb ‡´d÷“вŽÝ€l0*>eòͬx«åƒ¿z{¬—øÙ‰'H²ÏÆ!Ñ[i[^þÕô{ñ£Ïÿ1ñ3ÿgkG§«ù1ßý½itîçÑZ¡1Z€_f/H ÉõÐ { Ô§µŸìCuÙÚuuÅ}wÿaíËáFVîÔï€FI_ZAÄîŸÚÒ­”âÞÿýÿÃÚûo°DZÄ¿IÂÿ²ÞÔÚûËï5À}˜Z{‹Âïç˜xr©3¾˜–HR¾ .¿Ùã.08& Ý€Éqúÿ#kàÿ CHþö²oÓ)ÙðÉŸµ7¿MdrMäýù q°æò?ó9kS|Îè¬öDkYëo¾³Ò=_ºíõzóz²;ýËÕ›/Ï~œâÊY;Ž%¿™¦5¤.ÙÿäÜN¸ƒLÿ¥µþêÿéMýÈÿɾ³´—bé×-´Ÿ¹­Ó q|Û«èüz2âÕ%Ì,7çìOq0øYFŽßJíz„Áó€†îg·1eh[ƒXbÓÄdaRžµÒOõÒÒºƒÉÂ‰ßØ|–õµ”ð¦Õõ¿ãã'…+Møï9ÍÆûO†ðÃÝ¿Qòwº¹z^OZïsi«ÐE/ès_䣳/©»vU·Üx`¬¯ùÀZ=J¶³Ò÷¶¿´Î|a1–“ÎËLÇjst@¶gàûÓ2ÂO'û‚¿ŸÊÍŸçvt­¯°á#$µ¡þǃõz§¦|·ÃÝÔÝ¿I„÷7§Ù}à O)CMÓZ·ÜЬ¯…Ks—wÅ·¾.œË}‘&"$«™Ãõi²ÏõoãSÐxŽ®•Â{øhØ`¨_ x0P ¼ÿí©Tßù|χT%Zú®«fÐ-S›v§Æ}§á©•»„âƒæÚ×^¶û—~ð³Ê6ÆÁú7tño6®4dàØeÓiÍþâd u|ÊãÔHÙÝùAÜœŠë¶ÐúßÎËíuªØCÇ—JDÌÍ.½^„½è…§ÚbôoªìÏ5¤Ü×ÛV¤ïNÍxp¼7mðú6Æ9o@KGªûäÈ«-«H«Fœz›4NößðØòiÈ—ËÍ,V*]'çàr5§Ë=ÑÞ6P«¬®Å5žÆÈ&«é–ÑÁ)l²ü±ŠÌ­•ì¥gK + ÷<¼90[\cìT¤4«ëu«ÛVYbWô«e®X¬ì›Åj¥&µZåS§•Å×p\ +­íºø˜€k1òŠHêR]äÀ&íbá»SÖ…q­*&²³þ:wü¬UÕhƒ ç¹»ªõ“¥„·­\:‹ÆwpÖ–"¬nÊÄ ²¯}Ç•š@,*ÜEÙ•OíÂÏdQ¥WIy;Ÿb”u¡¢‘)ãÁ P6ùÂ8¨I—Œôü¬2Èæ}69J—¸î7®ŸÛtÚ›ýzÅ^Í.°Ÿa÷4«Ý<¶™å70æ—3&_ #ÎÓ¬†òÖˆõ5Ù-¦\R^½|0pµ|á;7Ë×jùYIk%Rïç}z8õ—µÉÊ'ÎÃmnÓZrô}uóöÝÃË«é/®fðBÜf§œë”œ0çÙDz“ÏFÁ»mÇ;{nª×§mó!o}/ëÈú^·¯Dž_Û–ʤ›LDLO—´ÄdË•kÅÈÊç +.6ú[ó—UZÉm'ÉÛ‡{ÝãžË=õN®Û4ã‚+~‰ªs‹-G…Ånö1·†Y×'v¼Î-íA©º³mº{¶ÆµþÃrù=°  D˜¾"Š&úèºF`¼~wϤ Y™ë›1ëe6ôrΙ'²>ÿÉfz¹¤0º.à]u+ê½¢q<—óØpçxñ¡¸R^e53IJQ®GÚñrÈÙƒ`"ZßíP±Æ•Õï×X.{ó,èsÖÄ*&zÃƲÄF ©}ƒxùS}Óo®uúµýxÿÔj‰¨§…Ë«ÍÂÞU®[½­„•ãZ «kLQùwMQ…ÙR ëûU*Éj¢àÒø4<>¿*ÝÞÉ.™¼ÀlÑ̾ð²dgõ-myd3çÌ=cúùb¢—fÊ”4ˆÇšÕ7Ñ]ÖËÆG×öíÕ<§ñ¨§™VU%ÌüEO*×U±§„ÅÞT~ìV[9ª›lðyD´V’d+FAü>N}qÜk_E×Z[¢k·ÂDVƒäJ{†ç3ôªQÚeŒP©™«fî¾£Nº5åžœ‰wò?ç½¾Ãpú˜V;̲_íàç`/zºCˆ*é(©\cŽSÂ¥%ËOÒÒåèVud£ÓÍKomQ‘†È«-ÙKv(NHm!ºÛÖI˜kw `ãWöö7†/fÜOvã=·5Q‘Ûæ?5®"š=nÛÈ÷[½WíVÆ¥q~QÞÖÜvPumG “Vg?L½DÕŒr/fb¥s[?”ÎöþQ:•GF~.6l›_‡]z_cFʪ± ªŠ“…b‹^!ç‹Q- ùr»!àê±Ï{Ÿ9OYÚ‘«Œ[öß¶¾¨¸Ì…x¶™Ö6ÚÑw.âé»Ñ¨0rô‰˜Öï¥qÑ¿ç7: |Z¨T½¢;êŠ^]x´ÚÞ/PEϲ_ÙÒÖ/iT(ܤìW¿JÙMî%eÜÜGœÂeHDòeLXà#à¥Hà×Ê^ç‹G–§æ\ÀUqåçUçØu©Ë6èÔv;F¾à/º«T)Z{"Yªo¶ZägLn’‚Ê“£*]&?ÓR›²’3©ŽŸ{ûàKíûÞIÑÊö·fS“±&nXJ‰ø>*}«™_S]‚ +ý—ˆªÜUXÌ'¡ÀïÏ~ŽŸüº }xê2\Õ€1ŽÃ$†=®\‰mksÙ5¦ÝÝEÿ6éîPq&·¢¬êâN~y… ÖÔ$¦á÷l@Õ_|n ¾øîK*M"×[ÕÝ=¿+̸¨—ú·­YûdëûÉMRU¡d[. ⬱ûËráÉoòЕ§‡Ë·Ï;Ž«†Wö„FOVl~H•¹J+˜ Á›¢Þ›££ä¦õ¥jQq³Y ¬Û F޵}D:1½ fAõJ Û+Šœ£a›æ±‚•©ÊÝ׊8Fj¬Ì<𨯛q€oòäÿF¯:ÑàU2—¥­‘­¤µ%¹U–×é‡ß¬'W+î/ìiÚ<²b¬î˜Ð–Žôc¢Þè¨âÇT|t¿Ô QG)ÛšÐä÷{Éñ$Ì21;ú¿øv›!„›)NjÜ +/0zŒÖ&£2Êç²3¤¹ÒPäŒû”77M´ÖKnDÊ÷³ñ–ìd·uÑØò¡¥Þ¬ž(Û«5)ú'ÈrÿÃñ×Nc›»Ù… Oþ‘޶`K½Õ玲ûàBNøAºòMÂe"æj‘$°^‘ÅWfOÁƒÏ!‹mË À*ŒÑBõÚ­ Ê_ƒ ÒR¯"½ªEø6 ~ñáN|ᎂ¹ð­=k!ÒzÙ*ÆÏé*Ç7@Çž°ÝÀ`V5+EæÒ$;%…U€Â<3/½Ùs z0·êìJ÷$ãHÙÏó–ôðÞš˜·çG‡¶7¼èϾq +;|°íA±J[ 1VÉŠèáÑ2Ñúì\@…<ÓDZkwˆÈ¥å.9óŬÕÇ<ôõÜÊ‚L?h@½YØJsdÜ[iÞ¶æêïÑ·.P¾¥˜jQçÝÁoÇWˆ«çKVÎÄú¹l^¨÷V:’^þ°#p¥²Æ©Zq‡UÞ­ z,vhƒêŨ°[C¨°ÏH›G8¤m D~sp7{ø=ñ€uˆéA}?Xe>«Í#ãÐ*¦µµd#_²- —Áª`š5šlÆÍç¾×6‹e1¯É9É”³uMq½Aò¬º‡Øó'÷a:Ýëƒ6íò%åÐ,y$øa— ÖcßÙ-*ÊÞ iOó7DÉU^ðm}áîrŠÂzpa þ=#CVW¶3£8d »×¹ÉmМ{¨ã‰ì€ší Vý·o*Ml€Êv3‘ Lç«Ìf[fÓ¨ˆ¼ò +€ñ‡Ì©¦Cpõçfå¶õ¡_úõIe·Á•DúØ /)“=Æñù¤Ä¢¹CÂLþ ¨w‡lRHc Æꕎ³†…ôšcú]k¬ŸH§ ° 6MdpäR}¢^"—@Û gÒOdÓèjÓ÷.Z4±‘)ÛÔ…wœ—?›ÛÏõ‡ÌsöR_ÂLW±¾Ôg°y’9Í¿áë+8cÕýüˆŠ«â ³ùläòWH Ìá× `õ×`}$RÂYð F"ÅB"ç4}ºóDw€"`ãRò^Gž¬+gV«•’‰É˼8uu›ëÅ«¡>2K_†˜­‘òrî¸ÕIVÁÇ0ÝÄ/9½Í^ѰïX~^RÍÏψZl`cê3“@¾ìùº¡žgÍÀµ poG¼ÊʉT²‰J¯©ÝD–+€×­H:+<À ë"ÀƒÉàÙ +p%Na +®.þ tÖé¡Á…Ӻ羔;lM®~Ä?d®f(åœ@ÚìÕBéJ=pGÔ÷í½ï½kƘg€w¨ À'Ù¤Ä[ì”C“YD±£%róQR«‰Ì€(‹»DÖ_@x999yà ·€`D5J`^’¥ikÙ: µë¼]—¿§(/.ë[‹ß×ð„L‘95Žš(±Êv(Œ¿)-‡_CÙûá Íâ Rñžü’΃KRå +IJ|g)@bõŸy%²Nڀ앃äË& É.%ÓB’MdpQYœ'ï9Ñj˜|“CÆ€DoïDÞ_“Éujt)Ôe·DRØÚœÜezHˆ,‰C;Ä0‚Ê›- ÷ë•Lfú€?IMó8Ýhñó›ÃB€¬™Èø%C +PЙ”Êk€*6 Æ3Ѐ®%Ríêv\êž½'ò"µo%9¸]@-ôäo]T19(gžÎéE)+JoÙùòU›Ò\оN÷lÆÔÖ +¹€i;&=sT $¶žg<ƒÑù¤œÈC“r:Ä?: 6ŒðõÐ…è羦öQú$€áÚuÀTï]À̼9`¢É0½ä¼aê+0·˜€þ s@¾€Q,``~èW”,ò¸7µÎÖ*ÃuÒK§¼°Äv±–C嬵ž¦œüÎU߈0¨Ø(–ÿ”E®üyÿlÇ…ü?à7Ŭv_¶ØOk8ó¹\ß=n±yniЀìíÔsÛ*4çàÀ)p,(6F÷€=÷d™šÖµç3i5:Ü•(Wh7óÿÑö‹Šë²Op¢•sD€DÎYd9 D øsŸþ¶zÍx¼½½÷±gü£<¬Å¢K_7Rw©TÝË3Gb›¤bBÚ"°6n~«ℬЇzñ[öÅ–G_Ï/Ç1Ò|QØÄ§/JFÖZ¤µ¦¨+P7]4• ÷‘«ÇÆ’U ^{Çÿ-S8/tZˆ<€Ê.áoªFúT[¨ +–è‹Ée¾Éî=§Bõ‹L‘À“ü·¯!¹ Déª?œÆ~ú7Á×= ˆð/¹ù{¯+ D’1DÆûˆ´Íˆ”¯.ˆ¤Ç4ˆDëY!Ë  {5èθôÎÝ×ö™ÔJzRE‡ÛNì61K8í/öo:4*’ÂDL HsFq?ö‘û]°D˜$ü#Éi½ÈÚ;±+ß\½ x¶ŒÁU²öòLDïgDîD›nD‹—>ˆò*¥ja/ä¹ÑŠÑýë %Eƒ†øp¾uò£ˆ ÄéGŒÃko½‡náýNóýC¦ +ñEIh»6äêE½›áXŒó½—ù”y«¬€9ÏQÀlà…ÝÊèÊš/€\½Èo@Ù·&„ûè{Voûaç'ÿ$žéÍ“y,ø;ÿ êOÅ/zÏÈ}Á¬›ǵçMKÕ«6‹tÎ~Ñšz¯êÐ;M5U8æAý°K/[HCjç;ûµ WhAEòÿa+.ô€<„#xA2´ûŽ5”)MbΞx ¯ùÅ£g߅΢wõÌîèrMU'g?—™{cN\ž¦XêmçýÙá 8ÍÓÎËnÛk©üÞøµ³~µæÚj=¥—‹Dª·Xg3¤ð†’j(ò"}÷Ë‚F¶v®ÃãæGØ­_<œ/èy$¤^µáÛ½“÷ÕÓó»—ØøÀƒ§/Þ-ÂyùÎËÐüÖØìÅMü°T× ožÓVé[3¶Ì=³æbȦì4››W‰ByÖ`²©W©õ&×Foæøíåaüê?ž£“G<ßæù‚"n1´ÒP‘)¼(áÂýÖ&õåW‚ žå <‘fVxÛÍ/sw/ EØ5ìøÓŸW1v:õŠÞbr­º[Ço.`«Áiô4.£tP½óXò1Xç’ï»Îý*W`{n­>éÕ“O3³«]ÏÅN7¦tÛþh°i› IØã\§a'©÷éºHC­ÉYCB*ÊhE{šíeGª"uòG–ì(ýØaCj2¦ëôšGÒîkvÉš=·üJu½ú5×¹Ún©cÜÜZ{Û5í×h×±Ç oÐúL=§•!¼ysQð·Mjû95J¢ü¬ïšyª.\Ö‘Z#*ªÞpåTµÏA’n(?„öØÒ¸Ê§¿’B!õ„×Jƒ/—l¨ú!/Rx;]u¶¶Ç&» ÅlZøœ949Ƀ¤Fx£Äuèú®Öákn«"!«l(©ÚÑ¢Q¹sñJת§Êþ¤ž+Ò£J鵘·JIú2*N+̺ˆ»…[aѸ3êR°òënfœ/ÅÖ|ž}¾ô\5±VQ¾JØøÅb©ä°hÔ ÉݡȋÏZÃú®²³«v„¨Tº±[­ì6Êh…‹Ñ)½fæ²4ÎæwÅϪt*fØÒµ°¨æýu̼òk8•É—Ô^˜4ÐãsUc©~K°@Iª½–ÑñÆ0}]ân:Ê4°”¿‹‡!³=Jø‚ß’æ•ÏPAi í¸›#…·ríK¥$þNñMÇ̯ër4·³…D®ªka39á/dÝ^® +aÔÎÊÏQ?ãVNFûÌgénf¾JG‰í.å//§”É\®É׃瑪F$>ÇŸ˜6GÑ~¹ä¬E7ÛµòÑ`oQO‡0×ãkÍ\OÈð6ü¿zÿh<¢žF5D"o!ϧc9á:P2ÞPÒWç̦üù’O™ÔFI¾Ö{=9.cÉq™N%“¼’OLëJ9‘‘£õî%md†Õ“=‹º•ÆæºgÏÍRlºïFëS¼šx=â"ˆ’±F¶¡Äò“zëN/j—U7ª ¼ÕE{Õ%|µkÂRõQ_Wº½G¥@GZ¡r›U2]5õÀ6l2©3X"#ÎkÑluéãæº3¢Ì’1a¿Ë§'-^5Ÿ±¸ðÆ1wÂgc +΢ÞB­Fí¼ÕŠêt¹o\7éå—›ˆï‚ 2Ã6²˜þ:/} ûNOþHû<æwíó’ò‚‰ž4é)‚Îõöu± ç$³L¡˜m&ÙxÊ289AÜ,Ú,3ÃO¼êK˜ûZ]bäèõfýPL‰ÚÙQÕá¬Ü¸®Ö$„oDY_Šø{\ jlLØ„>niY=©¥ËÚçÚjiÓîj¨ebØJ]Œbg5ŸX* b†²žÝjJ)7X)íÉ +ÇB]@áX¬£”Š|׃ڦÒkw;ùrû™K÷Žëh";ž &_x’15 Œ;Xݘ”;G#Í‹ ®ø9b׋þrÝ«>n\zRy½µÏ…&´ŒAÐî‹á=iu1Ð5of¢*4’ÊÚ™sònA äj¾¸–ÜÍö.5* NR„{Jô޽žh·l_´íEB´ÛrA“ÁÈeÉñèföe’#©›Ûl6Ô¡cªÛÂŒ>wF¬Uñª§¦øI›ù냖Í]-K=hÛguÉ7®*Ëß•lJÉsp…³7Œ¼O>$¹†ºtÌÁL“2³’â êb[ßõEýΆb +½xå*D_†8ýoúd‹7àÄ-Bç‚Ñ¢Ä+·R—i‘ìnê™ÈÍH¢ ¤C÷M䣿O}_›WÙ³ºÊ/\•qJ;¥ )å¹¾Grw=zTx*z–k%å*Kzò)5{ɤÆÊ¤x!‡¼Ø^mT1R|ąޞȱšYå‡O»Ç[£ë’›ÀÁÃaÙÃfךŒ¥“ͬ°ö),† +S8š¡9‰Y¥RµCN~Û¬USÏ'ž°Xý¨Ä´ô…ŽŒØ[ÇÙâ]-6®žR)7r=Çm¤Ó踔Zìl)5?û­¤v÷ñ=žÄÈpîEðú, ±]$TÕùQ4+ñÖ£mpËIr©÷­ÄÎ3\›%—ùSdÖ½­ê$]=“:´rMª®G\ªɪԡCä!Ð…J,xrõŠZN~TÏ2…š#GÅ–Ö§Ò=TnÕµ¨Ý”Êfq’庹—´âm-v¦Ã…hDksá¾LÍ…8“ÝðÏmaÏ*µŸz7n2p^\Ú<àÑ~‡înâc ¸Jg6ì‚æln£z,U¶îÌ:Òü0l¿CÒ»øV¤+¯·A¹åH†jðí:%cÒVÌ©€¸vJÂð_ÜoN–¸ß:q¸o7S„±^†C 8Uûc}(ZëF5ÓÙ¬ô%™SŸI ˆ ~“ì\é(ŸÇV0‰áŠ[©97McŸÆlΘµ}Y3¸ìèÝìy¤«9òJ‹” +—^1ôªS »ÏSŠ~Švï$õ\¶Jܨ倈–‰ þàn68o Æ.¯[ –̪6žµó…âMé¦Mn^4w3fTQŸÒ¤ÊEë/¹á¼nH¼eŽÂ`úØñãa{ÅM'‘9GàØ±É˜Þƒú˜kýuŒ­¶”2šì!\Τý¹ûd›30RßYâV©Dô´5ñ‡Íqó–jcNÌ™c`Ì¡-²Àá1Ïä1@ + Z¤ÁÊ¡(™ ‹ùø‘WbÆàÁ‹ÚR6H¥z,¾$û¾»ŠQÛ<òAô¼ãZ[q„!ÍY:wŸ2œ=q¨c­JyÖçd»Õß·kkGôºý#‹®nøãqzáÃN`oV°T5Á0q’Ùæ½H-;¤N\!E@òÝ …ÊÄœ$YÎâÙ+e½÷&¼S˜$Љ|ìœшca"’Ìåc!ýú¦–sú‘wÄÛž›1Í5›÷¥S¦î3Z¼uJ•*²½ê,‰Þ§µÁGbn‹½›é–º$N`n¤o ‡÷ÑÚ“\¸ —²!¬ÏŠl@ι6ï€ÜÐ2 ¯ ÈÉv È©@8—µG=ÓÃÛ¶µ©²¹èmu‹ê³öIP¹Ï‡Î[ã%ƨñU€ ßða?,{vY)¬™²I.èš}™SÍý|FvÈþœè':+<­l±t!±ÿÙÊÐŽà–2æ@eXB%á’T6Õ‚p[*×}ÊLªH‡¶´: 4~†^‹ÂÒ›2Tp¶Z("Üîf†¶¼¯EÊ\ )’–_Âã5½ñNO9q$³Ü3?»¡kgfEµ¸û’ìdW ¢?ê/ðD·î…‡áÍÄÀ9$d¹M»€º´Î€zž€ú°„œa4§æ!Ì:€æ£k@cÞ Ðøãé?k'@y·$ 6Ó>R¤“ÙÞ»ñ="<2{†º$™‹wC „¡·¸ssRôX¦3;ÐuÅÚR­2¿!ìiEÄW+XÈOg ÃÄ +Ðjz h«åº¹½zøô}Š| ÔiéОdAh—}&úºð.|וŠz÷ìzv¾zGÓ”§È#mm[‡ò™ë95Qù×H”Õ£GŠ}Áxóiн³Å}¦þ순÷çÂ4îêî[lzoà%–€>v`ƒ• ñ}L6öL­üÌlNæŽ ¬' Ÿ®ÆmŒsÄá_`V 0ë2Ê`œü 0k0ÕÃ0™Ó!‘°Í´Vœ¤ ¥nwD©Óô(!‘—?•í>a +ÖÎo¾¤rÜ‘#GŒ¸ÞÓj?êy„t0·ÈåK‡n>›ÜÀ–Þ`Ø §޾Y€côÐ… 'q쇚Cè_{Óï4`· `7ø·£x °ví +?¥íÇŒ‹Vý>A¶kE¶'²ßîh¤Ù2Õ–ý¢ìçÍùާêíëZßÄhÛļó2ÁÀ7Õ7o…–aGœD/ê&ૃ„k )·µÄÂv øœõ|ü"ÞtŠ€W»+À}ðÏo«:ü ~î E ÔôÅ>™Sw“¶)u{…Ÿúk–Ù×i‚jwíñ,˜o»?^H GEC´û¦C»MðÂ’è†Àï…ßd‰icª„W±ÄøeDE]Bp.@d¤0lbµÔÂ>qÂ<-!¸Q°`4´|ä+;¿/äs>e +N«®±åÍB .c‘!^Ñ3å,‡ÿK‡FtB&¿|CϱH~R‰€6©û~‘ÒŠ$Í +Fׯ@Vk 3g Ãóõ¨dÎÍé^ɵî@Z1 µ2ðeò¥ ˆ #•®·ÕÚÈ,ŠÏr*É3•ТHkW%®$côåö/:ôha~cô#g¢ /5ߜơÉ)¬a‚Âï_´™Ü­j½Â¨ç5º±¢^X¨[x P§R¨Õý¨±TÊ.å\_erÒR#Æ:s6àä)£”Äè }V[ʱƘç ú­THëEœ¤Ê¤¾¶ÜCŽãßñø-]â7“ï—«öG’/²ö†ù½ ziƒ&ˆ¤s„Ð}_úòÔzñxGqòa]Èío®õ„™m0'P(‘£É½€­Öw›6Ò¡CE\‰q³ßY{ÿ¨õ¢` $ø"&ßwû‘ã‹”Ö0ÉáËPŠ«18“±Öh bIæbú®­ïµˆÌˆ’4ˆ²ñ0nÎ]²ìø˜„|—Ôö6^È”íߊöå‡F¥B +kóÅ‘ù‘Ú‹üÅð÷"­7´öÆÔEå+µ÷ËÕûCæ Ú¡ +X…èXÖŒ––I C`îß>0˜ Ì|߯~þ2ðüdÖïç^“_cPúÍ%‹²oÑ–l«.rõBÈ½ÃókŒoÏ)íO¼<ÁT½CúE¯ÃÞwz_º ½‘~“G#óªM'Ù‹±ÜÖÎñíspú4¥í1ç÷ñC· +¿UÉ¡Ù/ÿi¨N¢€Öÿ wZz<¶?òÐüèyðe<ÓðÜöJÌÆsJ®SÜnZ¸ïÔjå&ôúåš¢í³Ÿ ºÞ˜ÝôOéc{xÌ]ÊÎag2ξî¡Qù{îa¿ˆ§Ëz¬>ß«ôg—¹w<º`¸ÊÙnî_,Ü[DmÀ…$ʯŒV´Y(î^µáaƒTçøB›#qY€~rwGÊÆ/ÇœWùìåÉâ½ñËÑÏz,3ø*}½SËÜãÀ.Šï¹0ߥ'ò\XLôYƒžÄ¦6ßOL®õIÎñíIʼnß.ÝqâEÎG`yÃ<9'‘ÖÉ Ký]}ì"‘é»_ùHC 3Z‘È‹B¹óGRç•Ï1:s3·äÔ+ì3S¯ÈU§6k¶¿IôƯv^¤GÓø~2\$góÁ:Û^ØU{Û¯²ÍCÏ­6½ž|lß»¶Ú ÷›“ÿHß·+TZŸÅqÜ·U¿¹¨^‹ˆÒuËþª/½v‘ RQQÑJëñW$oHi¨ãÄõþA*e¿JMÏ=yßõ»^mú†p#»¶L ®N¨íA40ì×X­Ïä–jeðs¶¹ÈŸ‹Í<ý¨6ÖåG³Áá׳^UÀ¨.œ•E­ɸU¯ß}T®ã#S‰b¦Yä¼VéµeÞ_ânF™[_ù¿ ©(­aIõEcü²ìKáEjŒFÈ%6³«¼úuáˆOjn“šCHìàËy˜)Û÷«šß +*FPåA*O|mÊ5ÎU…âg] ­²]£ˆïVaQÛå +ÔɯåKº<ø¶W{å„×$œCg©f+«€@¶Ø¯|(?£Sþ¡G¡×P QRýP‚, +(½¦j¦8Í’E|sÉåg¹°:„H§@¹ÙQ¾¤dC×Pn×Î.sÕHm—uûe7Ûˆ7Ïoܼgìä0H_g<ÝÍž¸”¿zk©AÉJ%_û^-9®‹³dR^ßÓvIIdŒç¥ +X‹aóiå­Â2ò†g¯ÆíQV"ˆ<²yöä‡Þ؆üMCRº›õt×còIƒ|Ê_,*)“žÖ“ãòÔN|ãnbZ‡3ëŒìN¸ç¯¬¼þ +¥!‹º sÝϽMöÕeâ»ñˈWS•R\ÄI'æ.ö~¬Q¤³±F)½)\ÚýÈËûM>…aÑ*ñl#šÿòÆ&Ç%KL«ûPLIàGçmåÕ áÄXÔåÂ[Ô•TÌuW2ÌR4bÆwC5¯ZV..¼³¥˜;©Õc +^³£Þb8ˆÚùý,ª3`gt+ÊÕˆ +="â =2hŽËSK‡'ýuKúë~îè/ßœ#ˆ˜F~%ênTȬü0Å”I¥H¬÷2Ky‹Wã«sÌ·N1Ô/H>ÚÙþ Â@ð©¨Náá£[üHF”£´ˆ¿¢‘œ£ë¯“‘ÑÇ­\IOj¦ö¹nÚ´G.5üiyêb´ÅÕ|2UiŒh(ë¹·WÖËœ¥¬W‘žJ“©¾šÏ–¨šeÿ¹ o¬äö”K ù‡`-£oé»QûVñŒîò³ø—ñ:b +Õµþrí½>n N=©¬ïü@›¶o@ËDRÃ}‚UQRófTW© o*¥T5ƒ”[lZ‘wóWW®æ Y¤WÉݦY©Qy§$EÜ %þTR£ !W—z£^í¼ºÅÌ#’Ï´3;#1÷8teŽFôí=2lÉ'=%LwZ–6õ§F”‚™ºØŸj>¶YªÔs¿QÖ£ýÂ㨔’à¢p€öåÝL d‘”0É]Åh©Q,ˆ’Âö"¢·;¦D»ÆUD]*õ„nk½¢zâÉû·—Âú(– –{~0â¢ì<ï?Ç…j[™vòåò%‹LÑ\¨11µa½#Ãgåªc†çª'¹QʽÇBÞŸœ©\K4§rõS›Ëb5»ÜGd!5šÒRRÔÈ6”†¼‹åŠvÅòD](Ü…«Û „ncBQó)òþ[2øÁ¤œáÜ©qã%=æcŸØé”£ØLf—`3ÙÕˆÍäš%è™ÿµO”‡ýh+'åúédjA+Èm½)¤Cë©«|V ½Wø>±’¥–3“ÔnÊÛGf$¶—ÒDl7Õ¹¨¿É¹pk¿B®øGý¾å‡ +väÍ@ºrc½8'UÁ¹6â8px†·W٬§Xâ\«1…È~ÄÐ~òHog‚.«¶Is;­Mí³©µÏñ:+^Jµ‚F¦´D‚ï¥X˘‘QvõÐrÂÇS*‘ÌN:µ6 ñÒ-O…{“ ¯žBì|ðÏÔjÈï“?<¬&¼•›L¹75_p©ÒdÍaúáÀÎn÷3›í“–Œ³|Y†)4zË=S4_W«ÔAŽ(©MÉSdF’M?i’jãÞ&"Õ–ô€pWHÕŽYE²:«¥ûâË´˜ÛPŒv-\ŸŒ:¾ÊÒ‹£\¯+[ñ²ëÍ…û16៛ËO`ý7ÉÕû6Ž÷8ÌNÀsž³Ù}bÂ’=´»Sx7 3êémq{§+ìóCjMÕ¥´JI§I’li÷ +©Þ¬qéí÷D'^ÀðûøaàýÔ¸Çñí -=N±üÖJ•S u7©,ýM:LÓæ×Ü]©8ã£ÔZƒhdšsþÅ0÷Áæ./vÙ\Rî°äê0Ũßa˜Ç«Oo‡Ÿ]Iàê0ÅT½ªí TΔ,N^d«¹#H-A‰Äå“ìDg:/à>‰uðx±°Â^`‰ÚPʬ‚É&çtgÁdÒ2ruƒ,&Óð´—‹196^.×ïUW¼&!>LÍøÄs¸t4`s¶ÑA÷nl‡a£¯]îڔˬ»T}ë)¹suÈ–ïÍÈÖƒÚÚP;W+}#ºÌà~eÇâq÷¥acUKa‰Ë¨¦QrÒåà­” p[©¼]A*^1DýXV‹Ÿ +‰Ü"EVsô|#’Ì%¯žw¿»Yóc56ã¦üeÌ.ä΀Ys2¤XÃ!Å£)Z»%o]ÒNï†Äu±Ýü9ˆ£´»Äm›uÆÆù‰%Í<¦Î@ï[€*5@ˆÌ ÄþÒÑþª6l!óKGƒpI «èF4Š¿9?Ý?H/M}:•tSœ­¹ÏV} åÔ¸Øgà¬GW‰W‡r›dù^wH»³ë7|7ÂÊxŒ©†ƒ9XwŽ\w 2ÞÔ„íÝÑÖ1íŽMtFu@tcs@ôèµ³ˆú® ˆù„u"!eR¯^%gŠˆ¦y`5¸Ðÿ É\쎣.ÿz8k$•³‹þÉaÖve@ïàéšr—×6Ò¡U²Üº=â'ø£±aNª:38_ÄËœ@h¬I¹G@Ò¬¡J@ðd@2‰$„Kls H.ù$&Ɖ³}@<*ð(NrÛ§f1™Id‰$9‹\æÒ9r½ ]qùd³·æ2uÎæs‡áôÊcBRš/ØÝo·CÜ:n6Æ}ÌÙ F€Œë'Î@öÇ ¤Cϯ;@.„3„â šú.Kà +¹’lÇ ×H§éwrðƒªµ}Ùs-AW>™è­8Óub^gñØzéåæžs‘]n8"Y0¥õÜ¡Å^zH)'y@¶xŸèu<ÈÒv±ÔÆîCNÈòÞuÅ» @E>@UâGõ„íPU–…P@xçUk¢ ¨º²TîF*…+cë0”gD_Š4f¶Íš2M–˜U5†Ê1Èb.örëÌÄ#7³œ-<¯ò º¦O&T³VwÈö*1&za„[¾>®€aÁ¸iÙ@•×¥ó,/ÆÐLýhur´u:¡Z"8úèd¶á1tª ßg$@‹ZФº‚ËxÍy=@Štx÷‚•’ÌŠ¨*_Š3Ò…©|~Hæìr;ÜÑû€\RÍÛ.פþŒˆk¹)öYäλü w ¨à5t´0b£).çÇo>d)‚\ªL¶ŽAX±€É‘„rŽq¬ÆÌ8€±ð `Ô5vR pv€¾@3øiÅU4æ) ܪš"íeø©“ÜG¾v>—]'d€G:tŠ\#µGK,#&æ°Tlè³6 ·ee iõ·€‰ß…_²¼Õ^€å¶8`SØ6*_y xÅ„yfN¿…‰Ê¡²O!3Aê€MÒ€ß&}Àwxr)UpUCôOqE ß6Ù[šžÆnO$£¢­÷Á7Z¡÷ø+ãwd~Ó|C…õ+g".d~Ÿîz‡ZoÓð î#—¹éº!4‹@ª}©êR}¾’Ò§Ä8e î>>ü ¸¾¡³Ñœ¬;dT;Mfj‡MÝ*i“H?ßÂ9PÏ} ô(êrúaíý3¹E÷"qõÖ^ã€\½õ^웸Šd^Ëo‚ت3±<[Äô:¢w í!íßz ªì|`lq`LOè5F­ÅŠÄÇ8@užÈ}Æ‘=Y¡¿ñ³|þâô%£ÝëŠñ÷Yß­½(=ø7WïW`ï¥÷víÆfÑÃ-€Ëà;°† ¬¢–æ·€¶G`Î'0óÃ&ˆ¿«§?h§°™/ù´èø“&ñL¯8ñ{ö-Ú•­ßúîêU—jîó“/œŸéMáþȬ§¿–­ÏÚ â^¹%˜[ý¯^"­_®™bâ<`Šaj¯—p[ö o¯æn1Pƒ}ƒzgQ$/Êh@»p!q÷Ç>W_ò)²Å†ï£äÀ—êé¾SèÏcÁ<„Gn'Füµh†ç´»Ð¡³×Öë\<ûÙ^Ù³…Ú o2u·x_Õ÷n²ØØyÙ„½½µîƯʣMühÌ׉K|·Jû¹ë’rª`¾ËMå™[– S¯ayŽß¯“ýª<õ»ÿù–/Ð`/~i¨wÁ.Ï<>G!HCEyÇ…”ì»Å«8ÚËŽÂm±¯¿“Ç­±¾yëÄ©}Y.¢Ö}±¶Ôç|—æ?37÷ÁfòúCÁf¦ÚþÊNºÒUtüÖUuâ×Wlœx|Ò£iB«™\°.L6ý]•|õÜæ;Õ“oâ•…Ç¢|¤¡–M6•õÆÔk‚Ä]dîD[†ÁfPR']~ÎLŒÃ¶å"Î@Q“jÅѧ© I²>(—V¿Êl;=·²ôdw5îÚÊjÖ¹¶W«Žq_í¾'"Ü­Ï샷2T\FE+MÒMêÀ‡y›#$hfÈ‹ôݯ|êæKq*‚LÆ( +™;‘ô‡6 Câ2P¶Fo׎ûKÂín¿†J[ª5MK\s‘g¤&µa´F‰'ú®NšuÁÃ’µ†Že«^,Uµ'S¯tj·ìOS“²Iôö¥qáñ*%Ù¶RœÖÄR÷*w|€t]$ †.UR‘È‹Á¶ß©-ç’ “ªÚ-¨Tºp=‹öã‚ÿ*9ð_ö¢l‚ê¦4ÎVÅϪê3lõöµ)W^´C/Ç×¾\%Õas»ÎLÊ þÞȺC"•ßÑjÆNw‡OéëÒcÒÝ⩜ŽòùwòåÅp2€„TÔŠRƒÿ2&Ȇæ¤Pú+P#šÛµ\-WÕ<ØL÷jeÝ•`!TêYùY±3v¢ÒK_§Åaº›iMSþ²¾H +ýmòµí»Éqe{K&…ç;1mRT"£æTkÑ™§‘K5i[Ôã¶7×£ k–R‰±Éaï+Êø‘ÑŠ¼¼ˆ%*b9-ÔŒ\j+“É×:‚'“‰%>{‰NLk1B!”†àOfÑDFrÌ~Ú¤­¼¶ÌYÔu_2KÑ}Íd7;g°ýx5!NbîT_Å™ê)ê-ÇϨ]¤¹¨Îv-ãº7ÚF·öv¨bÅQ¾@Ä¿ V‘A§ZÑ 4Q-‹Óü6$hDðK>]w¤{|×?]âÂkäÅÜñä +áòŠ5’÷O¬‘Âñ˜ë$ؘ‚%Ĩ7Ï©QJGŒëº7º¥V +5³oå"ƒÚ¤1¥K[·Þ#=©ÇÖÚçæÜ´i_b´L|ŸÔðÀîkø{ôR3µ¡=D× Î¨¹È¨»Q!‘ÂkåÕìû2ò{#ÊLבA¥ºŒ˜Bia°×_îôaZP¯w}Üx½ô¤JmÚ¡•f4ÜWDu1055o–âÊÚi¤•Rj]Q8ïÊ»En!Wó§0þC™:/‹lª ¹{e!¹/&¹n¿‰@…y UIæéëæÁ%bùŽ‹ñÓ‰»z€ç—ÚÔ>:ê¢×ªùXa RÏša8‡€Â³8¾¶Î¥”xx +ÀM®f‚‡,’ôGrW*)5Š)^Rئ&z»¥%Ú5Pu)Ó®'w%tíâKˆF]ˆd‹÷5 )¦B4¶. +Ýž‡ þa„H®:úI‡j3&7)QýÖ¹èNz±Ó‡[(¥gs,W¯|_Ó—Žä.&m©‘Ÿ÷$…^ !œÏ™èmÞKÑ®`Q˜ƒpuÕ³ÐmXáC²BT)xÿ<¢ùAû¢ð¦!YÜ˯•¸ñàÖç’VõÀ~> +ÅN§¯4;ó+vºèénI UÑH.ÓÇ:2EÇš õŽ O#éüF)×ÎáeM:îb#ñ¼¸ô„›S·…^$g Ѿ!'·yÿÅvxßzüÀ¼©Ëcîu3fܸ—XqÉXqÏ~žý ;m_l&ñ!YÄef1%˜|ެ14Õ ¥!z½1ôzËit©ŠÛt©Ö!èR]2èõ!-äƒ{&SKš¹9ad4Rº?ôTçuT¶·’¥bo*¶äPˆ•;~xHÛÜ›b›œ3¦l.Åú6—¼"1…Õ]›·ËÎoÀ…ÝÂgÎ,YjÍäwÆ‘¡«Å;½Ç€.}žæŠZ”Ú³£"UÝKCJÌ.O”or¤{ŽæI÷2¿îµ/S¢¶Ró<†ÎiÉ· *ñÚv…GžÙÑ]#Óƒ|ˆ=–â%c9B/8ôykžks©5Õdg·Î’™EƒY>ÆMfy·˜‚Õ¡Ûfè÷ Go&ã!]N/&4»Kj¿@w£¨ýÒ¸RµBýCIÌŽ#;!J6«"©JÌ8¯œÑ.eY"‚B÷-¡šÐ—99{|“‰Ùk/ÆZxÓߣÊMe6=Ò¡‘Í"£p».õÒl6{uëÌ*:®1L³Z£·jµA—·™ÍW’MšO'[ÔO¶©Ú"Ó£¤|ia<'O´»#›êBªÄ›¸cŽhû/¿[ñ<Þ{o{Ø3c…9P؈Ä(Ì9 ðN0Á8>.eÚ{Ê´VúPˆvë£c; Ž÷{t+^¦Í™§ß#n’ËuØy‰j1«êºNo ¥*]aJuêP1ëTWê”´àBç=% ¸Ù| ²E+RÝDÄ¥]šB˜nˆÈ}}ÄïýÏï›&‰=[ÁF©W¼9¤éû`Û °iÙX¯1X_p9Ý'®qs[+£›^ý2ÿÖráò%™ÑòŒµOC{%:,yõ› óÔèŠZªQ‡N²4Ì%¹ +$¦€:©¾‚:q?D§L´ ƒ§{øý Žð~ÝœcÏWi‡Š6ž^Áx0™ëÀ)Û8-7 ¸(œq ðZòa¼®ðÖ €7r-€˜-„7…tèÄ9 ð”|¸!‹r%kMÞŒ>yn_Jå¼ódŽ Û_j9•ÔB•ÜmÒ‚j7¨Ã¶Ú¤dÁl'WMR\? Eý.رWmÓŸ•Ó¶ )ì†]€_oÀo +¤zkx®o€ßó" °O +à~Çø#µø3ÆÜSŠß´.Ÿ´t€w&ñ¥ˆz´ãhm¡õØ6Ù-/<Ѹž7|â"M¨åôŽp[´`Mmª>)5H×k¤Ö «DçTq߆ו×lSÓQ»/§½& ŠÇ.„Ç%q +¡´„í^‘rû¥LOe@tŒ *x ®ö\@dk< rÕ + ÌËêÝ‹¥ÌþÐ%^]wëO”r" ªû 7­0S6Oõ‡Lñ&„‚¾kS®:‡%OJ°–®R%º&]Åö£ŠgË +˜>‡U@À¹- Vç6 ^Ü”é@¨. ¬€T‚MBøh€d*Y@²LÂÍ$ØK€¸¯ëèhŽê~d”ÍÇr¦F’©:¥ì¹'²˜ó±Üpƒœ²”×2ì^îRnsÝ¢ä÷ IêB¦Ntz œ‰*–ÜoÊ K:°ÏMR`#:§‡Â¯=ä}·„àoéËŒ_A€_ò‘6 \Š€<•‡€ôô 7¢ +ȉ`²[ûüP¤£7¶¦èD.N¢T1:Î ?trèl8B`fÌzÝÑ՚ܣËm“övj=¼ÑÂÍ@o`àö¨An›*ü´d9a ÷LPü` ¨òk ¨‰¶Ô¶x‚0ºCð vqéлUPûXP³£¨ù¾a`GU¨w•8`€ŠD¿<Ò†ùˆÈÈg.;ìã+%ÔËÙ%—z\©?¦O¡O¶ÕWˆ ÓöVªáÕÌy¥ȃb +Kv•²û€jO‡€:_@3ÂÐVn èáÊô óýŒ¼!´BòI´KAØ7½ÉÀ7Oð' ;~ÐÕ÷Ðq GFeÅíšþLôÙæ-)µ®OHƒ} +—ôx0Üìà…ŠYPÇYë›Z›âCl’_@:|py0ø1ZžCN¹Õ7q•˜ìyžÓ‹Üsë}«?iÀFT °|-áV,žéƇcƒ9«³ª'3nNSv(ÀDÓŠÂÐ +÷“ôeÞî¹ø¥²°ËË,¼H#ƒ9Ù‰MæDd—:(²Xþ£–å}Ên/(à,§—oùïth€è Ðcä9þ3ÁwµC²Ý—«ù{‘¤™&Û@º83ÁHÓäHÕ=¤X& $YèÑ{ßè¼c@̈3øÓˆâæ1]4™ÇѧÎÝR@ /ĬÆÍ/:”ì¿thD 1BqHWý÷Xáo‚/R3ÕB÷ßwH{êØ¨í+ + U¸TüÒʰ¶J+E…‹|7¶@œRÒ-ù4ø¬ðéS<ÊñÌ‘ëôØ´^$†#:ˆÉ;†Î_Áx¹üòÒþð÷þ{Q’ÃÀ\$®Úªñ-«7´@«.¾` +khïyh»ÙhÙs(?©Ó!ÆÞ”FJ%éÛ–ŠaHô—:ì´¯*!1ÕÑALPZÂñ´^¤°~Oíý‘•‹ÄÕp74”‹mg vºï@¬d½à×í¢‚h¿]Q:¹ÆÖ€1M78öóNQ=#aâ9pý–YbB¾rX,¤C#¹-# ÕæG`/J’@rïWïÚPxCÓ¯ÿ^æuRK`™›=°Ê$ˆ ¬½'EVË­KffyHàÀÌGr ~!ÿþ’㪄=¶­<ѾõFp:·¾0lÍåÙÅà’á“«G_x\ð“Ô,­È‚ÞêVwY³£çé½FE<ú¤{ñxG·,95ß$vÕÍ'•ïŸáäcéײCï½È,÷*xE-U3F©’?¦5ð¨úõeKMCíç[^r6nW+ëK—ͺ7sŸ™¬uè3ÔqìÙ=©N¬äŒÞg:ó™_Ü/d‹XùJ/¾±ãæNlo7ûÍôøq³‡[䔈Q5ÏÏóË‹ÝR^7щª÷Í.]~dï…éóCTïc‹àoÁÿ^8t­ÿ÷ÚýìÂ…’éŸÔîg6ógµû§… - qÐý“ÂÁfþê û'…ƒÍüÕA÷÷ /ª"™‡OxÛï5Oâ¢ÏÆ”äÛGº2ÊcÌ:ehA0ù°|=aXÞmÅ»8zɪW•z'•Rw1¥¥S¾ˆd&—›ádWÌW!#»RÕlÕãŽåªü)É^ßá¼ ô¨§gÖ´yƒV?[dwùNQ +OK%ÁõÓåRkkW–‘á2¬ë½n“l£Ÿ–Íæ•Äj¶¼>O`q^g#u‰q.Fú©n¬8ŹÁð Õb¬Mo§‘›È“=ÓÌ„•nϳ mµ˜h¤¿|ÞîÜÚl,XîA}{Ä*Ó=·´Î‡BI"Ý9<éßG¯äÅíùðÜ5Ú‡‹÷̪+÷r†Íú+òZ§žØf¿~%ªãGQš]Kÿùm „–pLþþÿ?jýg…]X?¹ÖVèP×ÿɵþ³BÃf~v­’#Áøe‡aËaA£xôÝÊà·ã³J´÷å.©ŽoSJrK;¸F÷oa}SÜûâù¿7µ¤áøµ½ÿ¿¤°™_Üûÿáh~vïÿÃïÍß*i8~mïÿŸŽæÿXRØÌ/îý?š_Òû¿`üGžhüÒÞÿ»GóOJzÊ~mïÿËÑüºÞÿ¹Cà¿ó„ÍüâÞÿG 2ÕoT¥Û#PÒR-|f&¹ì˰ñÊ}aDçg­s:¹ØN¿okž¿êt‘­p5£êÅÀ‘ÞŠ?Œõ˜{/kÊŸ _¨ê³0 äX©Vh+PGÂ<в/þ¿^+wZÈ,Ϻ¹lõµ9µïE° +n3:2?;ò²tÆ“±m/‡k›vmý#ÀfþìÇ ~ϳνe¢'õ_¾º¤Ï?’7\ÜJ~fåu?_Ê$_«~ºÌ–ÃØÞiì¼Õpsf½Ów®;jEÜÞàïlæ¿¿ö¹TûFµ¯²5!Õgzõw¬Ÿ9®ËךÛÝ†ÓØcÛh//‹t<³Ôú£ù(z1ÇýL Ÿ™éì¸Ýºªzc䨟 ˆçרÍù|Ê;Ÿz]žÅÕc¼›²÷BaQ¾´ÓƒK¶'çu´„mglt9GºŸÞxÃf·téTmïÖ-7ã~/_dz‡ÜŸlæ?þî/›‘:äÛžò=óTÕN?}ÍXø³Ì”½:ãÊÙ¡f¶«³×íг‰ÜQ»Cëm7zLL*¶›&›m>t²>ÝĬêz4Iü6󩪵ê,PøÆ'P›ëìcÅçwƪÒmP-?Ï`±¾oÅÉl“ÛõFþö}.Oç;µ÷)Õêí×ñ†Sy„×òwF¯TwõŸœAž±áÍ¡ËKìuiz9?“¿N¯’/âÞÀ1‹Î’†ËɺÝ4³buH-×­Ü– »Ó¨Më9Ðêd~)WËu^*73uñ?læ¿¿á?B ×R°÷³Î~FtŸ öD;Zˆ‡²]ß³ï:[IU9é<Ë—SäUºO.Aq¤_… Æÿ£ùןоo?û|wwŽàËîÓ˜UªÉVfòx1'Üá~ÀW·öÝÖ¯Ílý}­s'ùZUkùÆ×Ò`å\‹ã®u-L›Ø­€o.áýÿ'B 8D÷ºÖz{¡[Ÿ¬œÁ4Ü­b&ÛùÜhªð•¾0ÕÚã¿õ¹‹³ªn‡M¥“¡6åØyº+¾sú¶˜Ó‡B¶»?ä—Çá1Ï0åÓ_€P¼ÿ‹oEðHH›æ¡XðR+'çNgõ1ÍŒ>õ§ÔkàSÍkN¬IM¤\MÞêe¿«uJ‰à^¤‹ø|<.ä^i~­'gy¶&Îs•±Ê E°ý9ð?aö÷‡ü¼F®Íƒ’šÕ[ælœ8lîeún'®Ê£^¥"ŸÊµ¹ Kc3¯Bvº•_—@:·«žó9á¸)fÝæ¾šm¨ûFÆëÌšÛ˜µ„LüöâC YõT 1«V iê6ã6P IªÊÖ;Ê'£>oM®z[Š÷‘çÕÌ©;*]–»‚™œoª-k ÿ6·\Òz5fÄÍ,6î †÷ ]=ÿ;Àfþ»üGª'læSýGóO¨þž£hÿ¤¤hüÒÞÿGóKŠ)¿¶÷¿Í/îýŸ6þÏðÞÚ¯íý¿v4?§¤°™_Üûˆ'¿´÷Æø«% WÒ¿¶÷ÿ×£ù‰_¨ðFþ¯í}Ä _Úûÿpü­’Âf~qïÿ·£ù=ÕDlÈõ(³¨,îjÂÖŸ½a´q+Ä0dz{ùÅarÛ®·[:¹^7>ÒzÙ-›ù+ÑØÎ&Gxomš=Ô.“Â8û·¹ÓÏo<ÕƒHEk‹Ä”~”N¦YÊ—@mgŸhØ7&+Í<}?Øðýi·åƒÌnÕî2»Å“³Ï.ïNsÎÌ›0/ë1j¾+÷Á=þ9þÀfþãïþ#R¡“þFµ•…%× Ïmµ)ƯzrcÏ~fÚ½1·òêÔë!1e¿¸=›ú&ã.ïUÞ;}ö4#ªùËdýߎHm©A¡ù½Él|ü?Bèfüןüžê¨¼äC[”‹ ©®Š÷@#_æ3žY÷®;ÐÛžúÜõ´/ðüeím—e¼»ÎÓ|ç9#ÇQÜ©u,|Ø#¥píÙ›:³K­§ŸßxZ8¥^5|Šhõ4õÙò_W +·cqÝ¿îì³{ЧØ+ìù˜¿nÓëÇ"`÷ïÙ¢üÁ&B`£ˆ·ú©ÊêÙ¥ïò»-VÍÓ„PRý¯oøRs”ùFõÔsáÊ)ªº¶Mš<ž~ñjúŸã¢KÁéørÒ]¥Ý _ÅÊÓÇlÉ0W§ÝyC?¾?öÓÖåØÙ¦ð£ÝüŒï­ö2yù'Jª¿½øFµðì29ƒT#{)P-×~]¥ÕóñÚ­ã>QX .Íq>&z°iyØ}%Gç˜d×ÃA}ʼqGЧ£V'}7F‘Z¸"hŒ*àøsà÷<¥ <–J 6ýpµö2V£Çˆƒèm3 ÎŒ¾è•[Å—‰Ãt«F£žUýRz;UÙo}ɼ‰S¯å´‰]]M/£ÿ¡ù¿¿ A 'ߩƎj@ª+ªó4Ù–ïËAìZC/ž#®ÛãP?,2Øné´ä~˜ 2pú·V—ëÔ«¶Ý«¯A-W[HÛ\e÷ÿi;ïvE‘­os1爂‰  ( Á""¥ßÿ-œ>3gæéžw÷ô™n6ž®ú±*®Å“-jrzaÓ_FŒŽß¤.^€'œ¡òå§ÒBKÖ½»š·Š(Jg=Ù9˜«õJWó1TÚ´š‰Åj¤ö£0/…yóß¼ã.ß™Ìˉî˜-xQòñçøËŽÃé)Mªeà’”íUŸ-Úá|Ò £GxVgêΰâažl÷ñÆMTœ·[âgå×'ÒÛœ÷ë÷ú4£¥*4*ÐÕ1k½k” š_@åøÿÿ(^Nœ¡ +(ÅÛpI±µÇ®-̽©v¾:+_¹Æ´†`>ö² ôÜlÓvžä*çæ»,Ö¢O®Ï_W¹<5J{”>¥SȤÜX"ÔŠN #‰8—þ7øl ‚”z-¯àpü§¿ej÷±Ö õªmŸõw9\^…‰®›*¥Ô›äp½7ˆç6/Õ…ÌÍÐá y†Vޙɒ-¦Çõ¤–mê• ¹ÅÂìQê÷“€%Ÿ$K”€<V¬èr‡;yNŸ9ÝæfŸ/íš{¥»+mí–”˜K¡$ŠKé åçIm™fŽè.I—ùÄX`1ªÊÆÈ7¿“‰9•ø*¢»ùÛ€*S#€Ý/rX³O¥¦™3!¦ºvÕ°•½6Z>5¤”A7ŠV(Qβ­“˜˜£ilZp”7½x¦¢…`R£×/*ãáEªÔøMì‡èÿp¸—©Ïê©´UŸ¸÷®—AómÖ º{ü–wlL<Ë2ry® —JÈ,’,L^ôi¶ø“úuêS!“õGï¶ý%j³€$f@&ò_ˆÂv.ù)ìˆOžÍSU¹áK°Ù…æíqEom=m\JXÓo:Zo¸–9>,Ò‰þi:}Rgº6×ÏãÀo\(ey¿R±ÃÞáIîF’·ò°êŸÈÏžŸBt7?ºJæ}~;»'ÒvÄÇ|sioWQcUI¯n›™wX¹rÍÍAgÉ8SCšˆ(¶¥ÞýÝŽJ´}”Σ{’‚È"s©Ø ;—#~â•>«+×ÿ ª88LC%zGsŸª6»ÊNð¡J+ý^‚TrƤ©í-Þõ±Ü–TBŽHsŒÒdL1ÆâçE àór âØ-‡lÝÝAÚ_ð[Hõÿöyß¹ï‡È5·Êr“` {¡bêúBoO÷Sì°¶'-?¼R UŒž°“ãÜ4E —~Êê—‡߬ +rsà‰åÎ@h—ûƒ:(û¥6ê‹ý2õóˆ^IøN1@•°Ð6h}&B…{@·oÒØ£*RB~ìì6‚VžÜ‰øƒsÑ·ºÓ–xêÎÛòAk.¶öˆ¾í¬¼Õ>îo2§´aÌ—º½wvâU÷FCO[ûÖùWðŸ…à¥~AgøU©_Ð¥öþªÔ/àÿÞÍÿºõ?:#àßmýÎ'ý¯¶þ?êÿФ°š¹õÿïÝü+­ÿÑÍÐÿnët~ºÀ¿Úú?Û~Ť°š¹õÿt7ÿ^ëtF)ŠÿËÖ§ëp­¢7ÐQ]JÀf\”Þæ³¬›!(¡ÉV b5úžFÒkg±Šç Ù’7£ØT·¼³ +äR5‹ñôÞ(mds_öŽº°hÜÔ®ƒŸv»^óðCDÑÁ¿ý‡þ#µB”ßB©ÆÚPSÛ DÏèS?Þ $´{A›˜,¼1R‘¯7žSNÊQ™Ø%Z=-dpUe!­ï¹`è ck"¸_ÕÁyй‡[ò|ycþ +"£¡vJå[°õm[ŧÌ¿tAi+nAÉËÇ!ƃ˜q¬—êµN¯ÔS¼›ÛÛù©¢™˜¾ùs˜÷xQcÚÊWò£ÙiS??2+¹í´þ+øo·« °T êB7SåJ;ùIíí²V…Û!ô˃WcÊK˜Ö´)™{ЖÞÚˆõ W5nÇ;)§%wý>ˆÍ¼®¯ƒ£¬þ=`5ÿP`®ÐívÔ—¯¬ Ôz¬=Gejœo]“|lãwñ6å׿¥M[öÁx#Gsq]ö ‹ŠBªš|}ßÔaC~n)?xÊçØâ½~öÌ㪿éi«8ÕSŸ.I-f_[€ù( 2}Pî¼uP6ÄlÈwÏÔc€$å[Ѷg°—CΫ\ÌJñâì›—r ª2âoótÆ“Kyü&ÕoW5h²ÞòO5’QÚõçøñ_&-VâPç¬G 5z”Õ›{úïC´¹} øöνÞüóYñP×>æÏð´^ m•›·µ“âU.…ÒY :§èƒ(-‡7©ù™CÈ‹ +qß}‘·ö£kߤÚÔ»Y(uÝŒÁ±Ô€R7˜Þ®fîÙÚ™”¯zªëPe÷÷Ú¾]¬lû6x;£¯ò•/E]@jNËö:ö íèmÀ‡2äeÉNöÚ’íïÕ_ì›Xã£ó·=tqg¨>ìvo¾n„õ¥ž zI™ò3HOsÙ ~?¥‡¥»É-OSÒu‹Æã¦> ¬õvô4…,—3¸b—µ–·$ë.š¢/kIý Jµúýä§ð©lýMGØ ‡&½‘8lxÂz¶ÉÉÛ۲Ĝ’ǃuãŒîì(ìŠùñš#ùsjÔ]6ïú e¦z'‹½'M­ +6jËl…ì©B‡ŒábÿWŠA ŠÝÒp,ÅlP.7¢¤¾Ç.Óîß.f[º†Sæy&x˺³Ý©–“ü±ÜÜZøÊªÚ¬Àd+óq@Û²r“+›ÊŽkûYfô¬çr¤âœŸÊe"•b+AúNñŠ#ª Š‹+;hãðôùjöžo­ë3øS¾ÄÝì6Àö8MÏJ·Åt<ýž_î“¥…RòsSÓ;§éó6“{ì(A‰Ég‚|×é™È`iÜP9œÂ½ÂÏVóÇ (JË6ܘç äÊçGb¼9«Ë¤| +zö´£”Ç(XIz-¥®ÎCúÂnV±ËÜ€›Âi±’‹¬ÐUÀ¸c©¸To·¸v¿“™øõAäÂu€3ÕÙ GîÔ?Et7Ñ`«ì0Ø4ËK\­àVƒG4=«µsŠ˜]µD³9‹¥X¹šäçã®0NÓÐ'ký½§^þÜ âfÕ¥và@Ž‚Ë‰°ËÊ…(Ð ŸêxôÜsxµ;Dóñ+%gO“ý}ÖjLzÍÆÙ=”؉‰9éí¡ùú1È.ôN1éuƒö–bŠC%4f>J›CÌ«"ÁQ…@®¥èÓ™=ŽbæE‚ð¢—Gº?¬æïÿáƒs¢xy˜w»htR*-KÚB•‹‹C{nöû'†EyªK<©„zI“&eaƒ®êø¼/-¬aÅŸ8¡µxöò,Ö{ËT/Té _èÉ8öz)¾Ô}|µ»£ÖÑ;ð¸iþ +â“y€h»6@o +ª›7v`in°RlÿÙ‚f¹~3X )¸©u†Óu±Î,Oq÷¶[W¥ÒæÔž*ʱWiî»avHÌ}ÛÖ€µÓ…[`œ˜ó釈¢ƒû_ú°š_–ú‘Ñ~Uêtþö¿1é§ ü«­ÿÿíÿ›ÖÿèŒâiÿnët~ºÀ¿Úú_7ÿ“ÂjþåÖÿ»»ù¶þGg”Ÿö¯´>g +ßt®ß³O0å?@7ÕÏŒØ6/™k èNÛ'JQ÷¤<\¸L½Æ_—Ó:Tù Å#8îåcŒjnÉÄU³ÉÒÖ´Ì}´rÄÀ50twÕy¾jù7¿Ÿ|-°@N:”zÎÍú.@N<Ýþ;ôÎ=BÍ„NFé?6Ì6ʳñFò\pæçÂúü…Òñe%•¾ln팾U­|¿¾7ÑÔÃ6æ9ý¼‡~÷] 1ÉÚíb¸þU|Bª*ù&Õ?tš¨ÌA±Ò< «!{Ä PN „¸ùm_pÿ=47º:¯\ë%d^WÄJÙZvýô ójFi)DO£öÕFû¨ £êm÷îìmzÓ•ÜÍØýC´&üGg}°„tôy+#ú˜Ÿ‚o^@IÈ£!{AÇþNðù2•ËÊyn*"ª6õœhfÑíª{÷¹3ôš·µ`„º*$e\ž›ó¹µÛ”ÈÁöÀjþRò÷øM*wºPêrrØl„‚Ò 1û–Õëµ±ç}‘ûÃcVtçU! +tŸæK;ìEF·Ð\Q7*}ÌÐ}Ã9ëMïüP•Wï¹ÝË’¿)¡&Þ{ÞVlÍO!Jûýä¿¥Ò4ô©ÕöQƒÖ$ œK» \aÊAðŠMüä½¼qKcsÞ€¢uÈ’Œe.rýÃ^P6W­{Ð/;ÍÎ_·YG‰öÐò Ç}±“µ¸2›U¿ËˆÿíËè7ü šôª8Ð^?Á”íxñÉê 9o\: +˜Üüh縬cžv\á`ÓpÔܮԔtÎÞ‘†­ÐÎÔÞ\ƒ×Aâiãºê/;ßUe!5¬®ÿXÍ÷Š¿‡oR ”ºå¡IŸ{(ÕW IoÂò“ÕÖãòcKÇè{ö>RÎJŸŽúÝ& › m}“¹jÒ; +£íõ ‹§ö¢ˆÐƺ«TŽBÊkhœ=6]ëŸGRŽ¿K…cÊÞpжP*K ô’ÙOVïsÍåG¢Áûêµy4íC~ÆP{-îÏÔm¡ÓØn¸jSÅÛz»ÚÉï@þ–àÏÑ—ŒÎb}E„8®ÿ!:Ñ‹°«†Ð¤7-Ê뼸 TsË \>D_J•Ôú„qÅ'|ÀÜ0£¸;o—CúìZš¾•ÝŽ’syY$ñ™|Š+•Ä$ÞjÊ2ÇHmé¸`¿ZSi!`Üú{ˆBª?ºö Ôò›Ôbö¥âàJPå‘LJuŠöƒn@Vîã˜:ž}“Æã¾3kóPцûf4<•3s¥µ¹Z­ãÛµÀÛ±³À^¼özÉ’Ê¢‰Ą̈v¤È÷WÿŸÕó©å›g¨¤ÇR¾ +Ê›„ðlºÞc8ꕽi)6½Š­t@”…´ßÔDq7éû«Í=Ëðë·Úç„ÙeÙ«Á² _ŠñóÎIZÏúá%êSoÊS¼X[ÿC”3a/$zpÒ¯áô„B·F-ä» !è¡•h²ñ3v£t+³Áô¬rƒ•UÅ +‚¦9 ^¹¶4^çÒr•¡² ®THÌ¡·˜½'GvJ˜‹5C%¦»e…¶»µÍE9þö¾I¥ÓPê¦(ÂaßöA9;¬=[ƒëë®sñf‰FÙi5Õɱ°q–Fû`/w‡UŒÝ¬Õî|’A´³á.›YÆž©å$ÍXéÅ”F›p%)ÁjÆŽ7ݦ³ý‡¨rþL(ôádÚápb!´_ã±+±s︖O®×.a—SÄ­[0fôTg6UؗĬõHrWûÕ[t ±9Ý[JƒžVnõ±;¢TCÏuFm%M`²Œ"·£`¿Ðÿ!jyœI+8ì'()æóÙJ´«wÓo3._[×^q9…‡ó‰jïßë#±›ÍJR”øP@kÉæ²eÑåY:‰"ô,]Ìk ";’4/Gö{"B$Ÿã2>êŠ]"… è¿Ç'¤úƒkuÜ¡ºPêj¯€ræ>ãsÝÃ…¼ lK;\ +ý—0fEËãµ¶Ü2z­•Ý¥jìÝ8bóO癃4ÌDyÑw> ߉n’ÐØ0Ósah/Ï•!óšÿï(Ž6Ägõ,$ÕgÓ?J-²—Á Ö=ÌWþÆì4Ö¾>š¹å~æ11“‘¾²HçÛ¡š™Z 9>^¥ƒè#£¹³_1‚$· |\£ÒCkgöó3yŸãÏÎLHƒ'J.£ûÄ}è\^œæø²m(¶ÒèÖù¼åË÷(9I¯f\(9…ØRÖì÷Œz±!ƒõÔ礞‹‡Ô¦= GÛH|cb$p1|²è'‡ÓA63¸è©ÂÝÍwŠAqÑ­ì8a‚ç Uœ»ÞÜæèõn(s¯¥žÌùRim­­D_¶powùZ(·y6¿¾1 dw›~Ò£@náÞA-ºRŸØ>™Ö6‘“‰GVØ{8»f'¤þ!@qO×AÉ æšyŽ?㦑žC•ƒ‡:£5YFðáúÐm…еã–ïUL™çæÍ=³\RædÝ>XÔkÖ;ŒÔwp"÷z!³eÎ!&ôÈÃzÓÇQP†¥»îÔ‹}í÷“¯`»gû1èlj÷¦ý4³T±Š|—»§WzlÏN,º¥…Þ)6gˆ©Ešö–ƒÙXn{•Єõ(m2[2§64‚~æ÷ø¹ L|f‡¡“8ž†Kýâ n`ï xN}|ÑÝü¹ä¹šfÛ49ò÷ïCÙ-·vóžqÇÕy@\X¹Ruæ9­sgXÔxMZa†Æóe¨.Ö&̱Ÿ +c7i}d`6¬<¤å'r+Jü@h+â T¥/ö­ßŽ«Æ?Ä¡ÖÖ¾w„›à²¶Å6ƒ«6Õ¬æqg»·=?cRÚŠ®»™ÆÚ™³/~ž_¼![Ûƒ·6’ƒz¨eûÙFûbïTî·c§Z/„{ÞŒ_;½^ê6è¾'ÙÝQÏñø-¤úß%ýÝAÅí5“ÜJzÙC¡D¦»|óµÎôLå:“–_íÒûɪ‹B“Ÿö[o:ÚöäáRéîF´ÞfùC7a¯/ÞÜ:$²¹CÏNúl€¶9?ÄÛãÒ9ñÈþ`5œ¤èÆAÁÉ` 0®ö"V Ë¤<èNßàüUí@Ç:/ªq€¦´Zà•¼žÿ4«Ô=^ž0·}ë4wÇ«ë0e‡¿žë¢xÅH&ò=/K®­_*…ÞáÌÃÛi]m„¶ê¿N?êü!QêtÂj~YêtÂj~YêðŸ»ù÷Zÿ£3êÿnët~ºÀ¿Úú?Ñ~Ù¤°š¹õÿs7ߤ†h Ø”ª×¡T¡pÿ&µ×‡R« +”z<%Ú<5!ãõý [{ê ŸÞFicáæ›ë 7S¸b:#]–VU¹Tú ãÌÏÐ(9é䛨wì–o§ˆÓñçféÌC“:ã!@ôW¼ÎåB‰ýtÙ=ƒb?• Åkëñâ>8Ʀ7 +),œã±Ë]K[‘¿TÛUéôPÊ©e¬ôãÆ›Ø‡w²9l¥EhNî¹ÃþºpŒï!ŠþèÚ!b €¤K%J¬ehÍiŠa§ 0ìëꀢÛGÂò,;ðNªûØZé€R”!ô ¬–ÔJÐNׯwÂî®Ü¢änÎÁ”RŽÃLUµ³^êóbÌÔ¢Mc1«_öUÏ»é½ì÷Ž-3ì s’%V!V?€¬óÉHçç Iäô A1—Ò–o€ŽÝÿ$ {áSjõÑc ã{ú5ƒnÿ"Ø^©zÈTfžë/}Ïi]{6CíböÇ.%¿xÙ+‡Q¸¿×ŸdX"!ü<¾I%†e8ìÓQ^gVÐ;‹RüÞ%{· ]>Ô碅ÀÇcññíˆÔÅ+ÿ:¾±ÐÍd³úƒÖæÊŽ(XŠbW;ª<5R榌l­uÛ ×+¥Ë +«˜'²h×ùbØæè¤"9(•ªé°–ã°Í“}Pzvamð~=^…Uõ>ZÅ'nÉ<§·ü\Ù·½2jÈKÐz˃°K[A4 (H¯¼Þ,GÆFª=èØt)KÀ‡™5¿¿ ?’ÚìÏã›ÎÙ¸Ð:ö[^ç²³‡}´¥Ò¥!(—Ús_¾¿ªztÒŸ\ïG†=fRôÒ\®îK½£ðËÝ(9\(hkºÜT.6'¶DŒ_½óž´J¤›¸ªÀ—å +v>2ÚçøSøTštP‰ò:q¨Sà´m£¬^-xêàÄ¢z›-NÑÝ\:ËÌÌ>æ*óýƒZÍTÀ¦Êñc6Õcjº†ý~¶æÍov‡[ô[óu÷ýº-òÓê¥Ç%ú6¶ŽGoäë¯Yu¸=®—ƒMƒ†kð xõyZûl%×.š®B̶éÎxŠË Æ€« “yÇ9f”+.¾ +XÍ'Pj#õ›Ôbv;ØÔµAIÙ°fËäcW’åû¤à…nm:ªœ2Û2JëjéœÛ•oÕJGìcnGÈÓÛËNÍÎ<ƒî,Aô£ï@1”šÑ´‘šMf‡²8)>^ÂdÄ—?€Æ{Ф'êìœfp,ÅpfB£¼Îàù`†~¦ÀH·E¨×n¥ˆŠL£¾ïí[Ííy1mHaòÝZî«WnÓE'7oΒܱÍäÇÍîd¾ã*í3”p)®©F6+Rü+Åÿ(KõÏ%?@ dÚU®¢ôšÃÚ8…·l;÷HL2Û…ÍóÎúÈx'ÊåLߺ”´lÁ«È«D¹­7:¿«rN·SYl4¬2K]zUúDì›ã[³Ü¦šü­?êÌOÙŸœædŸÆ·¤RoŠ?…(ÐZg Îp3ú„¡ÄÍÏp^Š¥½ÃóÒpZÉûâd’“ƒÍRflŸ`›ùí’•‹RßJ•„))––R²Xœ¥==7qZ\šZïíù:·2„6I ŸôÑÔ¹4´©°5´Ç³ nèÊîçÐþ< ‡}¢;è”åÌùêwáí¬.£(Öy¢œ×Ø®.µ½Ñ³Bw¾Mß™*eV‡æaý“Ÿ«·l†™¢çø¤*&#jÆÉ!¢Å‰´E¥†‡V.;8÷ÒŶÂLÝŽþ‚(4ôâ¿ œ˜Åò  J1Kžëy”‚zwNF¸ÉY÷\w´W­÷VNcYß¼µE^|UÐ’‹]¯…í¦ö#èò³ ÆM} FÊ1|‘É7ó"2A31 ‡I“ƒcF1“—ÞPr”ÅoÄ$Qôq&ôÃKõ†¥©T)!Ývóü÷«ùáµàˆ¯cQ +êè¼AÞ®fÆ}Ô]…±R›«!«yB¯p­«ÛZè>1CÌÛœö–³õXn¿e*1c£´„Qº×ÖÉ\3cHöhã³z^Å•3\¶pã¸ç vš¾ûë4‘øyìp’Èω”å[\gê£Ýe¸’]Ò«MGpÈÊ}ùÐçì@ b ‹zÙIë!T¨]ŸìŽÒfž sÇØ„@.÷9>/ßù¡Ã_ÄaåqTžèêƒ:8šý‡âF{¿wÝ^¨ŸÇù•êŸL!]15£X¿(b&;”Ï„Š)KËÁc%OÏÔ62ÚäÁ½ jÉqõ ¶B ÇnÙì­g‹PVª +eÅ›}±÷êBMñ!¬!;êÉDîõÒåE÷mvVÝa¾)ýQHõG×Ì%n´L=³‘Üø(RC÷Æèp¡·^CÆ¡C|,·J£Qz/1øy^\ „¦!ôÅ®±ë…»«Ýë%¯×î{ïß?‘ÛÑ+ìsñw7qH';:“ËvH)tÒ k›‹V­=.w[?-ÝÂçòjñŠökºÇ>x!·Ê/Ò2‘c*ç^–Úu'yâ0±Ñaå^)õ[/¯Ñ}ëf¯›°vd'}éö휳ZV[LÕTZÈý 6Ï«³Ñœ7ÏDxnba"ú¶]ÑÓþϺmäßÓÈ3\äù óÁ Éø uþuãbd§°Rx®R +‹í°pØ»`ì‹nz—µ¥÷N¿xoP=‰^\µ·7üºÝßR”qr³ Þ½‘œw ¤»ýCDÙvß)þ)©_Ðå§ýªÔ/茌ö«R¿ óFû)©_Ðù¹›µõÐþ×­ÿÑu±õw +Ô鈟¯]#: ¥6°8@­P<7²©Ú Ën¼Vå¹pϽÇݬ¾¨“»Ì÷çÞó—^¢ª­nD“–\ƒênÝÑ›°»A\¨{?Ýïmç ð\ôã'ŸãW +TN9. õ^jÁS€&6&@wD ïW Ç([eµp¡X>ž+ô'µ—ït¸S÷Þ ŸzIìºtÍi—ssTbí ˆ._gmQ¿]ýtYÌûiuGï6>[¦Ûª_@èúý–ä*«4DP‡ž8ƒžÿɆ*ù(ŽËCPì-dPŒ©Ô{BžÎê<Ö¾HÞ·Ã sÛkϹ;>8y>éÍ¥2)EÕœùuþpZSÀ=n—ÀÚ‡ëƒ1}"Ú¾|{o + °aØ” (°ùlõôZ3þ™:‹]î\Mœ€°vPôýŠ…lùɾù/ÏØ±G,¤¹;17Ëëeñ.U²E¤/ÛcØîÝaÿtØ.úw+;®÷ב¹×ë v«>ÁPúVóÇÉßã¿¥šÕ&lø P¯pÅå- 0l5Xú®‚¢›ÃòêY +V 5ôc­ùçQõš²Nñ=ºZ}¾>I±K”ÎÝÑ Ò6lb²½XÙºé7º´×Z¥Øn·=¥­ž²V_¬æsc¥R*”öZ­,(æšgPtRy€Í¬(Q݇WP}¾a`ξ…ßñ–̺ Ý.^ +OÈoj·¶µÉ¹¡[9Ÿ°LÄDozí—ã¨Ýêd·ÕžByå•Ì Eî§ð_:l uÒK¶:~†,>qhÍ…RCóéMÐ×#ìj廦¼‡·ÉÃ-ë“?É#R›oJ˵±Hy’~G™­öxEQýGû¬˜å(ÐÖ›RfËI,§-ÿ@”2òç’ï®ÂŽ*+ ¥ò<~q£ ”ÈD‰Ò¬ñüËß |É£|w–å}R:NÔlsµbÌ™¸™ïk†>×$)³Tcš"l÷U|£XE|£%©Zñ1«,×Rº5ÿ)|Ö›?¤Î8ËÛšŠ†äl=…Rë%&äÂ!hŸÐ÷}Ÿ¤KîY÷.ëÙ‹<Œæm2z$Nîë§}·a²K­§Œ2ž3¹˜ÕøM9±•?ħ„´”Ì®zïÃ|;¥‹ü^BühAÎøl™¡ÿ‚(:øâ?¥ŠÐ¤›#ì¨'³ŠÙÛ +`E÷Jq«Jö|›åžÄ¿½u˜öðÕ 8 DŽœóʬÙSÁš±§A~ÊÎ%ú§ðÑù醛hÜëÁáayQ¶l ”³ú2èÆŠ\dà.‘4zŽ'FUëükû–P¨«©¥YWŠñU]º7ŒæZ^‡-AÇÉ.Ÿ£ÁCÈ€f1:í7s2]Üœ= qŸü’Ú…ßtÂ>K¨sÞaÃgªam0Ÿ=¶Ê8 +©z‡jòíÔ[rY)̬*’¶k¥-=$KÎi–×à6¨ûªXçïd‹-•”ÞÂÓ&äüa.æ³pZžBLèy븟|°š^û&õäàš†Ræöц¾T}®ó™¯Hè7ÃâŽw9û4ÝöÒ4@ÔLmY”—¯$"n˜[Z¥foŒ;^«¥%G*õy0+·fJ>5œªÅÍè·3R5z:ìö©Ÿ@Š&€3~,ÿ[^g®ñO|J¨«œ%kÁóÌÎîæº·wÙÀ}žôM)iUºDVw•Ü5s9I\«Ù•^Þäy¤ª–|ý‚Ì7…~yª¾ouf$i]ÚºF“ãùe©Ò“F–¡­amüSHó’NæáôÔ±÷"¥‰„5¾W} ”ÆØcœª +›v=<óe´‚DBͤ\cÎéµÚ›¤ùc‚Ê.=ƒÌλÖ";%6/„¶/›òdFÏZãåœ'¨x²ã²ûœŽ¯åì䇀Õ|¯ø›ÔZ€Ã~Ilª* dŸÁ†Lb÷1‘$]î˜W.q}äY®5ô!·}m±m*&uËl\°‹µ8Ëqéø\id¢Ï‚NÉÓ$C£ÃSnÌòt‘j´‰Æ¨ÝŸá$ˆß£–ÿZŒÖ8óSî@ë6Ô9ÒFŸÕóìBNy<}=,¸® u¯ÝÑE:"¸}26­¼§æÃîc`ûpeα«Ðn8=O¯)• ßt‘m&ƵÅ5;’ÎÅ=¾t<{°¿(þÔ>stream +8$Þ*SüGG]ø­Á”¿oȦ轸²êõµâá†/ŸÇ’f׳;ŽÀïU[%§ÊWòüñ×&÷ó#Üùa?ÿ-«—Ì­ò°€)  {E?e€,³7€äê¹ðÔÀšÏrAÆ«Xrì·Ë æÞ=Þ€½®nÚj³¹¥63Íf'g" ng×ÜOš^Ö¨÷’ÍBÑ¿ +ß^ Ôzð„tRø-«Ñ[@ëÏ@  »ÜráÅÝ'ªþlúP/…„Xé<üIøä~rÕËó›>Þr®™j­{*Náì×)x8—òÌ|úõ²ee«ÆÎ(R„¤ß9þ{ˆ²†¾SüMê0Lj·B‚‰8@3ù[¢tîTÅ|™è}²è” ŸÎ)¼k¶ý§Ùˆrº§Óéh 7÷üTs=×eéru{»óM«Î5§÷°Õ“4'ê@ß_»9EóçæJÝôçìWòöý +òLzÒ9ù0IhеP¯ÿEêUEv4Åžb=]ƒ†è|y6lß kt=Rsç¸jq×Ò@ÏBþ¾9nvåía+-[ãË®qj& GæŠú´ÚÑæv7 2ì– îó¯Ju¡I™d +Ý# +}?'ú®½ÅÊâ Šf±°´º —Õ½¬Þµ07 +'¼}´ÜÃîA—Íu’Æ*uØÝnc;í¦VnpÆ9牆' Í?·ÕÝv¥¬·Ä’ã”3™Ët0™þQjïŸK@þ@« +yhÕ (Âa” z{i ¸T?‰Ò €ÍîYŸ®¬G·‘zÞSk²àxõâ©éÖq+ï;öhktÍi-1Ø»¹qô¦—.,2cMì UnânpÜo¡À8/#ûøRrŸ‘ªòU€ü;æ|Ó½y€"ßò:sY-J@P媲­€ ZÏ©é'æþóF“Ù+§ÙØq÷@Kvn¯W©ë~®×T¥vvjº9Ø’«8¥Œ¯¹|ðj²Äö QX³u€-£9mÝf)ê«ø&uWzý–&ZPì–5hÍÌ'û¸ý¼§÷è-'¦gº×§ã4Ôt4C¿VHÞ¶ÆjÁpÎKT__YLdöåíhóªÊÇý²¹Y •žÄe0J¼÷»pÙ¨èÓUïàЫØ*1T¡þ°š?NàHʸ ¨¾>¹Ò°R4(nFF”ÕûI@îÁø²ôñÜļMã›Çµ‘ÅÇÔKNš—g3­ýtV¢Éü6×*"r1˜%Σ=´ØìÉÍxΫ˜ÇÒü~T¥ùQ‡™ðÙ¬<⬛I~PgÒù¦ó“}l/Øê ã·GxÐI¥>ËKØð½ãÓß¾v?Voóƒ:¹(­“dÏÇ÷þ®UŒ]ÁÚ6ÍNë´N2àÄ£Øëº¬ßÂëìÝoÜã°òé«ö/[aò“ [}ÃÓºª¿©[=NŒËtyøU€Â² wq)ê´‘&ì 8 J +{ :¡üò.ò¤ÕE"OY¼Ë™«ÔJÖÒWg§Tˆ‘!âo“?¾TkyW7ö¼w>Ÿ3Œ]&çË£<=õ‰½G‚”ñ7B¼Íz‹x;>CnÂ'I†™øðDɰ.ù àÚ»E/H%áX":SW\ÈqòÑOO{¾[K6³gMOõì%íÌö}¦,l/CA–Â{v·ÊɦÎòâ$z§p¾¥f&c×Xk²8ÜÔj;‚;Pxê:‘À÷l¢€gcƒæÐ:>œôS\÷SäW[ô~{1¦ +—PiÓ¥^ <^rF»•hëxÖÖ«·í,+M#ì7(Õ¶n¬¼zõÖëQÙ9öIʋޤ¿›æ‚–:a1vO‰©˜Mî’C¤ûýÇÐëñÁ9Öý¼‘?;í¶îÏ3b2œZ8ýU€Âs~hŸÍ¬ñ„®’î¹ýD¸ÄOÙvöÓÝy”¢¨å“ž"T±‰¨…î‚¿ž7Ââµ®§vº¹™¸/bKI¬©“x¥jãÖü~Nk—`P +OÉ>×{{w­Ùí­ÖÁ²w'ÑuÏsÜå_ÅÓ¾Sü@ТЙ¥Xl)|rí°ÝT‰‰FÔŸêQàP¥áP5)I“]anŒ¨%ˆ³y&) ¥ñÃèG¾çè­û6IÆ×Wü0&Ãy±,ßùLŸ’ÅÞú«wÃzïnκÛ͘›¯ «sŠ—n”ºò +?'ã èã’ÃŽ3EQzó‡ülñ q´e B_•Ùyë̳ù4ÁÀUg:YÁÙŠR6–ž_Z‡eÞmž…ä£Á¶/ î)×x½?¥k"açkíôµX•Çv¹ÚË_ë•÷ÑïTvÓ× 2ÄRd%áè²Î6£©³LVûÂWrí¸²ná²\ó r‹ +ò#ò*)‚B,„Á©—ùõ®ò­9Pùˆs +q¹>›¹‚ŽìÉl€ìÚéƒì<1Ù6¶ãŸÇ©.ó7¹~T¥ÆÖoÐ1Õ“MI» ›MÝÕ7퇀Õüqò¥~Agt7¿*õ :?ñ´_”ú2ÚפfÏ kõ¡ÔK yÆ…&½Ï%Pè#Ð#(Ì P¬9ùÙ›ùRË9wöɳÉq"ÔÓ?T@.ît Þ²bb +²$&„…êC .fýp™†ì7”@õ&é·Ý±³wLû¤;yd³û{D»Îèrd +J…+*€óy‡Rïù(ôt¬Á³E¿ `k©È·7ohÜsŠ=7@®æ C[óè°`ê‹ç©ª¯žE\ަÎÇ俎ª§` ë–ij¶“¯ÓÆÙ͇ÛÓ½¸Û| 7/ì¡ÄÚ*V^К‹”8ƒÂÿ#í½»TU¶>ÜÏb"0# +¢ ( (ŠJ0` ”~ÿ[ô>÷ì{öØk½kŒûÏCÃèîú1©8k2ÙÅëŸé : + bxùP„ò»Ý%Ô;º@½»,ÔBkÞãN< ü~4ÒÅáûj³ú»¼-™áäIÙA£µ÷ž«^c{÷êÁñ*»Å=,Z\û+*eú©ñ%ÙÈÿ9þ7 Pj©¥º—/\ùÛI ´>d‰v9ÞF€TÉ2 Ë= ŠÕÖPìúÅž‘øØz&_ó‰©êŽ‹Š7QzÓ +: +kåã$˜×VËW$, ÊsxdŸÓUÉÏÇw;åø)s±Ü£§òd·ô?ÀOMs«[X[;7€‡¯/ ð ”»rÓí2Œ ²ƒ ½¥HæàB½§WtEuä}wØÊ»¢£lX§ŽbÐ<(ãW[ ¦Ïµ”^=œÂuûȵÉžôõ¸®=Ž­‡½=d÷k'5N†§#Õ+×£?Àÿ«“¹Â¥¡£PS/C‰ó- ¸ò÷'8I^6U´ø¬ÛHsµW̳٠½ÒkÅ0Ì“ëm¹GïÕ•î-£Þ†¤;»*w}s)÷Äãq¡zÇ}Ÿ=m¶ŠÖ›»“KF³£ÎN¶—éôƒ$´÷¿'ÿ€ŸPªÀ'¿j’j¤ž “* º×= ü!\ +~ƒ Ž…IT™:^hJÅÇëK/2Oþ‘÷½N'¨ÅèÍ‹ŽÜ;'8Ÿëú×éûéÉ|tàƒÓbß¿;O=„ gŽšÓÍgÞRÖŽ˜×¹W¶ÿ€¼ó×x3– Ôg? H„KÛZ+íƒíÀõ•^f£G›„ï³æ)%~<Ïůï4Ò©ýÞ­å¶—†Žyº‘§œpµ*ÛqOjl¾¬Äm2ül´UÕ^ʲ¸Ææsñ¦Q º#ñrüï•¿ò™þÖÖÉíEòÊñ.ÉÖºž‚Â@:ƒBŒ¡Ñ3_m‡íõA}!Õšs/,ò§Kýùxú®.{²Ö¶e{™Th·Q{¥möTÎn²ô_íZÁò§£úò<žò‹Ûd­˜Og.ÎÃÛT˜”ÖYöˆý€<)AáO:]¸òß#€ ’¸Ã4‰ê½€b³½ÃY ¸Úvüsáú:•ö‡#?${Ù{]½§xº;Ëõ7Ø8D%Zíý °ŒL/Kó'n¾ò›âüs›sóVKüÐ3Öøö ;—áŒìa§žaþIÍ“û' ®¯$®óÛ…rd€bîr‹oMã(Ý|¡æ:‰L¹—hwy^Ƽw84Ïûí¤«úÈ Ï·¤ßVÃ÷\jX.0D‹ç ¥’™±€|¥§^_ìMуÌOöS«;ɇ±û'`1ÿväkêä»÷lK)(µ‹C©lŠ÷-zî,Lõ£Æ“@çòõÅéæ®4Öûb~ìºQ©¼³³Óï~å;èq©½?þ´ù|~›­ùÌËàaï;ÅZJvBTUJWœW[»¢YN»–Ø®¦î¹–V–¸æ Ñ M:|=YDñÿÄuv“Ô$Z6êb ²GíQ˜hÃËBe ?_ž/·Ó¨´vº©‡³–„»¼·=¸æž<³M¥vžn?›û„D+v§¾êCOãã`V­ÛKÚ <¾Ùqà”˜ñ¼‰6þК(u“‚&í•ò°‚ø$þô'êýÝz•s/¬{ªÜéôH<9éw2ëÜ«™æÌ×—Åf{®¬k•ÛÀ)ãÌ좶î.·ƒ~6[g¶ïñü9‰FË÷QÖŸSYYVù¶måKïÊ?Öÿ ‰Kõ¯üGê…RLâ:yøà'‹øža‡'2O"<•¯a±)±ÝDÞUÑŒîpcÕX“›š¹n©å¼sH¯¦û#¹Ñ/ÓŸ„çê,õ:À!P¹(CuFid–_Ï÷—¿–æüŽS¦²:ÖêWZmîìDö\—‰ä­ˆQt!æ~ï;½zÙÊðnƒ®ô6ù¨Ûû¦¢¦Ð&Ò?ì}@ÜP¤ Ÿ:#F¯S6‰ë| .{çú¾Kþ Oá©]P±)Çëë+}åuÌ Óíd#;ЂÝg8NcY–æÔX*SêdÐȤMaÅní^v ç(¨¡=8){ËtƒÍIH®Çí¶QÃ#רùùÇåHûûµ[¥ÊL +×í™v¯8í„㎳Öz±×tð…ô’)ö›31Ä“Èýù¹óãríË~ë)I´N)ýS5¡+”çüÖŽlnØ>ºÅìéÙÑH¦CÓËJGÓ•açšoðË«Ðù=`1?G@`ﬣ­(RËZq½½äH¼Rœj\é5\t+ÑÐí4ðé…]ÈNÔ^©g¤ÝiתŒíŸd†ÏåL¶šÿ~FÏUí}­gÎáDö¶ù =gëÞWõè,Óþ|:5ýõ¤‰½·j. NJ1;xHke‚ösÏN±7ìühHp]üˆÝZ%Ò:óynÉÆH5Úß|ãÚîΔ¸iœp¦g Á´µ#ÐÅà~ZF–/¾Ü¹·l½§v¾w_Xo›»:ηž›L ôöã¨qû3>Õ¢%¶cÓí ¹ú±çËè‹—>)Ž®h· +“½ÖÙØ:íïö1hsøGmgŽå#A®“KK¤½¨…¿…¦?›µ~‹ùûäßp*²ê-V’¼úÁpùþDú|¸éésð®hÝk(çA±%…“qwÙ\„ž?ì ¹›þQ»µè0ï4¿‡ÄÑŲ٭ßÞô÷væpz3î0N3È%ƒ·Ä2^náf«)×z|®$•ÆÙ<ÍÅOÚ…¨ú€m}E$!#›a¶Ç-[½˜› ùXš˜äû­öânJ¾ åŒh5VYa'|0~\Ô(()³Vׯ·9Ôb0…–XÔ妯z“|óÆyænÅh·«ß–ÏKþÆ,¦ö´ÉoÍàY¬nÅbÕXMŸýlö^¦µlîÆMãøD[¸øêx×vNC£hìÝÏñГ âôã¼7¦W(y´3»ó»%ôOS¦•\c\ïçë:ÃjÏuƒ®Õ3zÕíj å{KâÅ +K¨*½Íf4WôÖtæöÚ•…jê +A=ÿÆKõ®üå\,UŒ#9£µv¯Z‘în.™ôkÖGœ@ãn®vš@Ÿ@u謅_ìEc\“6uTÝjè¤áBt+,þHæÐôF¾>èÌå–…ò!.#[º$Öι†DÑ_dJE™!k…óšd +ãn»1üVé-j÷œ_§í\6饎~Êï«p•½ÌZãÀÛ àù + °£<ØÌ߬—¹¬ÙŒ†ˆðÄ&Ð_¨²c UdP¢kDþò›x Þãº;õòxÔΔùŒÅËŸào© óÇ/ðÿSêèL¢T-õ8tú:@©ûQà F|±üš‡R£Í àVŠ8Ûê<¥«PìÍØ¿lÔ…Kºæƒb­Ÿ,Šh|kA½1Pý;hÅù&>‹(üf†7ÏXF·n½šñÛz|mûO0vu¾4`ùG4è2p©‚|ö"|ƒÛ€< A¡H€ïDà¢;…Æ · ŠO€9BêÕIhahM¬v +2"@÷ø8_ßiD ÎËP_VP¯å“¹ÀÓWëWè¯ïÈ·ºúL-¡Ô‘ 0)}¸pÊB‰œ¶*¨ò¶á€ü ‰@~Ä• Xý'ƒ?¾ógPïwðj-„z…Ôk” ^·õÆ}€•H5ÞO2PåÖœ…÷º˜øÍ³ö“eUû‘‰ªîmç§7—3˜/þ °˜\˜®-–šB«î˰>ºQ’l†KÁ«"ï{€¨ÖÈ: õº}/†&ÀïÅÀ%XAñê8Å(ÖíÄÒm“lzÅ»Ó"Eqáݨ,ƒúêUê’ww¯Øî*ë³nÇÖFŸüþ£3?OÜÒ'ÈS…ŸøüóÍ‚Õ5@èß öz +’_D:„5ÂÄW _ª]c_ª}£s1‹GEú]~_ó./ö|89xrX­]fAÝC‰7~GûWÿ2¶bûø¦9óÇ­¦¦û~ÚÿfÍam­¬Ǥò‚ÖdP(±ÄbçO‰¶áŠ ågñÉ41-ŽbeŒ'{‘š:ŸßúÒŒCƒb`¾ÿP¯èt­½˜›Ã>W¯ùàa/ãGÖ-ï¨w¸œ^…–ã³çýbïu¤é.ÃFž*_¥_ó÷ Àvˤa9Pª»€RŸªºP ’ÄtÏÏ€¼  Ýv\¬Çï‡è¯ÂF»u|ñ+|~ƒQúáâ_ì¾]˜Å›–ªWE¿'kÏ‹ÊïûçIû¢9Ô9p jíòÑa‹ŽÜ*S“ìÅ)äÿ»9°UY¸âÏ“¤HÄø N"ݶ ¨Ì δ¹.Cöm4C%ˆ ¢õJ›ûý£ßÌÝnþ»û¾ÜzÆ÷¼™ã²«ap‚MSÞ!«{/®u÷Xe4ÞèöÌ ÐóèÇüéÜädÁ¾ÎÙ­Î`ñJ½EPj÷ ¥j/£sP¤¶H¥ï¹Äûµ®1`]ùé©ÅÎe“M¯«ê‘þiQA/þfÍ܈uv‡¨oO~)ëi-wÓlÅ ÆT׎&c}“¶RÒj+_zÖ°ïu—#8_ަ+æ—€Åüÿ’Š£¹Ä僾“hÙ Oߟd PßÎ#zd‡x¸Ì[/žK÷#ªN¯ôf`?»Òæà=:ÛÝ‘úÛR;sqÖøá4êm·õtú'Zþä×½A®ºÚúRß"Ëþ²Ø-s zŒ1fm•küŽœÖ°-U}XAKQ’¦ù'ª7É)­~B{³×;X Р+ Ç¡]\ï¡XÉ7ofî +7gíU™ÐqZ µÛl¢ýq-pýÛ +?ä‹t3©eq…äzzÐ2⚟›•);‹íykÆ–µ—*<þ/^¡T“ñaåâ$±lPÃî ‰êÝĽx†ËC-÷B¬°v/ÖS½sÔ>(>jÕÇ»q·üyè¹½n±Ëµw­Wù7á-/Uç°ÐwÛYoÐá¼E×33Ë0ʳTöËœ†3S÷‰Ô§‚AÒS´ŽüøoŠWøôÏý# 2HòuþDËJIbÙM4ÝLÁ¦VÌ<ü㎾>… wtÔZ¯ÈoÙ3nÛ‘ý]ïôõöõžY'¹¼X<ˆéÊlTpw»ƒa“z2HO=T¦¨tÏOö]£=É»FC? +›š® »òàÍš4” I—ÆPé]0g +ÑÄ~›Ùþ5q¦¸g2u¿46¥K«ª¶}¼óÛÉGí;+¥7Ü %vdж˜îé<ÚÍYdzVS/¬»IÊ&ŸÊ¾4U¬f5u•oiåj©®Þƒ:­Næ\ñ‰wð¿'ÿ†¿¤æÉ 4éÕý&qIêCņm‡–ÊœŸûVîs› ÆÔ‰Ûaõý1Ú^“dx;×Fú+…È&=ôâ•Åäy<侀 çO§x†šë£Êq­•·“­ZÝÌîㆷÿŽ"§Çë½6Š/z‰h1Aá÷x/úÙÅýyñˆÌ]RI\g Ñ0¦·‹M°ùTã=]F ÷÷ò–Þ>_­¦³Ž?ìzHúüòy‚ÙºÄY–þÊSü#jzqw7`!-ÇM®ì(Ÿvú †Í4Þ²ãžH%CI¥ËÙ´Ò­_Š +¿ÇTŸz§¿²ÉS2‰?%䨎KË—7-ïïZ>HVkçµr‡3(x‹Z³‘£Ó²®@fÍÈà»3~4èMók —̬¬ÖyEY1W2ûÓz¸ë9û!n=ž’Lô°!þ¨V‡ƒ_ù7`1ÿ¸ò7>NÃùçãuNòtg`m6@‘ï(ï–Ñ™?¥sνÕfûqÀ©Ê4ƒànêq¤×òvX_Ö‚JkÞU ìô ×’aM/O¹žÚ`÷⨃—Y[]:{¦xÉ÷ÜÁ½0½ *V&+–\¬&–„\I«ÔvO¹ ìž²?Þ$ƒì?ûÃ&('£0u)LÅb°ºXKÍ?œÅ|èEñ±±±DYޤMvù®bõÑÔo|†U›Õ¥¯ROÆÜH’”ÓhÜÆˆë¤Ú2î3]©¸:ƒšÞ–…å™ôÖ>¾æKíÈ#å%àÝܵуuŸî­ Qá€ÅüÛeØCU@D P{EîÚz3xNxŒ‚Qï²NM¿P5–XKg;ߦc«G×¹Xùiá#QZÔFüX®ÈDî’dï*Áôß½%'°vWâÝ/®q¢ù]výOÓïRC'îÊÏkƒËãŸ:7x¥?ló}Šû…Vü³Uʘ 玗ÔE,û£±)ìšyÔp¶%b¿º»çç"%O€AUZY-4ËØ83¨‘2ÙJâãéUúË!ÑÒ»S—ïGÃA÷Ä5ÕΕi/;åõÜg§T:y]6Ò öQ(·:j¨&¨ü ÿñ¶€"7(fÛ作‘Áq‡/ÂÃ5UE¶ñàØuvdG_kÛ©³ø㤦ͤO'Ôg‹/óùOFV²$&¾šÑ·.ûRÏ=35>O¤;ݱvt*”£±õòiÕ6ܱÝâ_&L»•»ðíùvÁ´çËÙ?‘xÿ÷ + ¶èP÷áçú´Ëû#&,÷{:˜Ÿ¶LØù8y"bVÏë`´øÞÏ«™Lí·z(n/c7säSœúH5¦›ë¯­M¾·ÕJ%žßIèjÕU·S'R;²Õ)óÙ.l¦‹¿®Lú¥d[ŽÃu˜´sV˜" +@Îôó;IÞQ¸ã«Ý”6“wsq=›j"Yë½D =+ÆE¾OõEñc…'îÊ—ª~–êÆ;¤ºÊWö5Œ?æÂ7öýz·¢nºlÒ/´°™¶ÙýmÃp§ï™ÉšÃOËë“IØuKø”j£?@TÙ²‡S7v'»IhŽsšéë‹~´–ÕEMlÂÕŒòæ%hëRZÚíÉð!™æú•µûüÃ>ö-åÉœ*àÊ·6Ö fÅb§Õ,ó­qí.ÕUGÍ™Ücí¶ÝϽ…gÙæáZe›Ã§AìõCâRýïÉ¥X£}©k~yí¯n g¸X“éìœç¦5c_SÝbÔRFßbW2«†8ÈØ©‘€S¾xg¬îs^ÞuB«|cc»ðn·xªÍáŤy2®Ü,3ȥǴIJÖoúÓµÚ”k‘Õ8/ +‡Æ˜™½Åo¿!ÕƒŒÙÇh•6ù²¦]ÙqF1®%w£Çã÷w¼cÛ9Y'uLlG{BØõË%~\ÜÖºF£Ë°ñçÛ_¶3‡ŒÎ §ï¢%–§éOp¿)W›ÆyÞÿJ- ³V±^IÝšµ§ƒ÷jF¯—d†­Õ‘‡ûpY­ÛZ©^3¹Z›j™wKëζÞHÎNÃÚmsdÖ¯[O&:/Ž~>¢Nó£C£¡T.1rù~}—šäóRM2 0uÙsI’±ftZ ½ì¼ÚÂò›J|`ý +KÊOú{Þ|èÍø…Ñ\¹DCT*¿DâëLŽ«Ë¼R2» ¯4-Nyìâ­ŒÑ%ÆÆq.ì„ôœ»i]³c¶ž«6‡ˆvk§PÛ&ù¸ûõ›i_kÏÕìY å]m!Ê·b‰Ã ý=¡ˆÂJ<·®6¢ËÈsÚ*‰õ%WÂßW¹(3^$¿„U8oúû?€ùñfÔ´ÄÄØ1¦Ôð±,³ƒ “{äOr,~ t ö­9ÒȈî¤×UÒj1^¡õ÷éêáõ±ÑCº¦ÿø)æ/©; Qq Pûð€*Û9€u5€ Ë"Äj°zþ Ðwƒz½@µDê€5Ú6](vw‚bã@Sõ4@^: ÅžëqðŸ˜[dÞB½½q<Ø5õˆäbý]dÜIHwõiPZÚïкuzç@ µ-ÀRÁ`ÒØþÓØãçc[ðxßlÓ +ÆÍòо—@¯ù!@·"üKÍ‚w8¸]Ê"@+pîˆæ"}cE¨·­Æƒ˜žD¤NÃ[Ù4‚iÈÍ^sPš=ãNjò㇆Ç_ ÜMÈ幄¾¥VÓ/€Ý×(ÀËå&ÄLø ï—#€ù{ +`JŠX¡2XN_AÅ;ÿçÙ,Ÿ°zèø " Ï4}ë4MâݼmD2ÏÂ[ߘ5·45÷)óñgn´˜ü?:žÍå–xЧ{€­ªÀK' à*ÏÜ»k¿²[€k8ý.ìUâ6t€5 hëÂíÐèûèŽÊÔâ((V‡u™='Nþæ4’a²ï™øÍA-¤–O«â-\n²¸ ´dÞD®<ý=*?¡IßaâCu|ðEŽùìªòTùÆxÿ³(ÌݾßQ4ÀYVHœýÀl>þ|ƒz¿ŸxoeÑXÊ£…èÈ£õH¾–¸ˆŒµðö–­W¦ÖïQÝÜÝeg}ËSéåe¼rfçJ¯©þ Y­ý÷ä¨CÓ6 `âÕ¸0 AžêP o¼9·9ä>ìßRä›\ à·±pÑ2c2'zÑçnï+UIr?¼ËL!Nºi<¬œ1:˜¡D;¨OéÕÍ¬ÇÆî¸7qx²/¥NÓ<¾éãÑÁ.³òïÐÍêœÑÖO»ÙE€Ÿ÷I‡IùŠÄt/!á@tdä«S¢ ½oˬ>kG'î“Ó+U/FÇÀ³S¿e6ãìЭÞÓçnâ43¹R¥1(Ìý”ŠNöýô~´ËßTi[Huú¿¬›¬¯î +ÖÍ´\=•dF¸Ó€Ðå n_  wƒðñ?t,4Â×åÝZ&¯=¿ÇÈzfÚóÝ}«’ç›äX«"rÑE-2犟Οê^®rl¼ŸÔéuÚVaÓŠW¦N¢óúLy;ÊtÙ¿‘D©þï•@•$¬n•Ñ.§(uÓH%È@"; Bs HsûŠô´†ó#U­k +ÿ̾N£{¾ž1®ã4g§†í£u#ycÅ_#Áù`¿¶Ï½·ƒÝ~c"»üÛ/o©oSr'‹šlGD,l>Í·vò&³ÎÍŒæïuâSXA§PçYúù€ +ɇùؘ2œÚq©ä<ÃwQȽ6}¯üè{+™Áù5§FG¶_Öno=ßã|qµ#±Ðó®cãà>:âÍ šBä4ô b/‚TcÓÙÕÿã‡.qÖAŒE<^õå¨{¯þ°«/B“î¶'gg@ VÉ—¹ŒŸôÇ + †Wçý’¦· [êcOJ‰£ë6.hÍs³Êv|ÞkôöRQn/ÙPõ*a꘩»i/¯öfÓå¤ÝºWî\WÛ¡[‡ñ–°ˆßYk}fA·ª5sºoTæaµZþ`1ÿ¸;'Z5>A©Ã=l7ÛKÕëB©ÃÑ(V»‘.N£Ë+§ ß{-—ºAV}—ö{2}`½õä·[ج½R6™o5é¡W"z˜YÃ`¹^Žv£ÝB³µ›ùÌÝÒfMŸ·æÍãº>³ +szÖŽ¶%cÓ^R¿Ç_:ñb`ƒüá}KâOv£¨ô³ ¨ÇVªãí:èÄÍãcØ?G×i*@¶4¦ö²Ú ½g…®;Ë¡ÐÞ8)›[£O¬oÉ`>\ÜR5 ùlÌÍþn=³jîÁøšßÐà0«hd¾?˨©Àá¥)JÕŠ“Ý¥Fþ°-5 €÷>Pê7{$\Ù')Pá2·üPß °\¾ +¹»×np^.§™Ã>þ‰RÝÞ;QÑmQqeãÄïúê U™åµ4í,ªÅŒ0_Ô iÆXÍȶÐù­¢ÎDµ®º_rú±d–uù¾)èÔdGh—ªŸÿ7Àbþ>Û†RMÌMÝ“<˜xòÉx&¾¶ÓjØ–´ù?âÞõyßnû‚¿Ïyâ’€VÖøqA/oäµn'š™3¾Õ5ìG)i7S4Þõãl6Ñ.ÕRï²í«“Bå£Nzù"D‹R«—‡ã¿ÇtžË 4ö È@ÎêÓK¢í¢ÇúªÝ`h<(±/&h]|ü~·÷,ã¬Smt½—òViÐ(˜ájPž}Û;¸:귘ɰèuõŒ﫼0ϼÜ|´8”=åC.ÂÑâ{,@€Ä 9Z¼P|ÄÌòèï{¨Þ 6ûŽ Û’ø¡çAÑØwHn‡/´ØÔn÷Ehlå~ØŸíé5õ»|“$§«œ¼.fµˆ˜³óbÁêcz"§_uí–—Új­õFËñAVºé©.;½“-çöÕ‡ÜcxJvÔqÄe§A~ XÌÏ`úJíJ sf(É%AÁÛÂeqkÔÙŒ|}üÙ£wWÙÑWç¢ÑzxðSËic•JjxZHNäGžÒtkBÃk¡©|ÍåϧÃ\¢×Âé³* íîR<NgIÎ(i6ò’Ÿé£C¼6Éý°'Õæ ¿žmÉûo@ío$(f¯lÀItv}W7·þùŠêAy+ï ÇO[Øí_ÖÍFfL ßY¯ªå&§º…i“ù%?^ð¢b×¶í´[’l!¼X¢žò Bgæ}Ãèíq‹ôU.?¸íËIg#AçÿÀ‘µù—´ã¶ø =™eë…ž2Ì­Vw;Ç]þ.îû“é¦ûæv­ðýë²¾js®^I»Ƶ”öøpÙñR\ ŠC§‰áÕJR¡Yl &ò™í7°$0Ò[©µ]oµ¤3ÂB á=ÏaýºCä~ŸÝ¨Þ N–˜×ÖQ¸P+,h*ŒC²ü(,õÒùû)чóR⽸7œØƒ.g[vùdvøïÝuý˜ãøL¥—WrÃáù€Š·t¯ÐžaEXª?ïôºäfÀçö–Æm§Et£ߣ¯$ïàW¬—¦ä÷¸˜°-QÇä…óO|½´©‡R~eΙf +ó:Ÿt;#ŒZŽ»ù*ëâ,Ëóc7Ðçˤ<÷*Ó?ЧÇñPþV¾¢~wr}sGãB*–y¡f68½®\õµÎÙ¥ÎxÅ]*û(týzDpx=J¢†~Ž¿È×Ê âJ›ô%ô‚íÑ OþáÜÇîû*³Íxéô ²QÊVùn,&s¡£­§Å‹¾WãŠr!äm×絸)šd½) +Ó~SDGÂïqSÑÍÐÇûv’ÆÀkÙ~sà´žU¯uE“óɬÐF£Élÿ T~F–•B«U—f[¯3H— }k^U^±—&Whn' z'6*wŸíO­ûm§gr’L·ú'«Ó<4Ã$±Y“X“´½4FäoΟV£°(ó¿Ç‘/x/<®ÛI›Ë°h1ó~A禕Ûz¥·¥ãõ8+Ó›ôb{éûH¿QãÏÅS»ûl øNsCÙö¥i´»ÚŠqkÝ}k'ôn-|?Œš2aæçù­Ü(Æ_&É Õ+éé¬ötÓûš!25£_.ýÄ¥ú¿W~°£­S{³/Y•e`U*³ÝÁ¦'Õûª©ö¢ÃA9÷{7)ÔwÏAfƒ†=™˜|8ú…g;&sÆÛA.0®$ÖZ»×nú:›L šä‹“ňÕëz[´êôׂóοUC/ÕžG+±/”+–¼a+lC¼ßã¼ ð{a¶«u_§>›E…Ñnó©É:¡[bû½_ +"J¬¹›6µ¡@|ÛÞôvG9ŽoM_cƒÆ¸NºÎäÒµçê¡ó!«-4MW,)פ¿§OsÅF’Z ?- ;ÉpYÚÍ.~IlfŸRº„Ç6ñ{ÀÙ„G̶ç®×·#l„—‹ùaíê ™ÕgÈŸrЭ…ú ýuò2ƒøÞøÇh~R¿™åyÍ褭j+wÚTXÜñhŽšÊ®:=—‘Çô^kÓ°è›óo‘¤0îøêæ„uª‚"ùÜ7‡¤!iY'œÕ?‹ùÇ•y/ýAucÙÎ)Éω­•Ä\\áèG½Ê²)µÌ ‡¨Ô$ïóJŽéZÕäBhªƒÕ¦3g+í&­^ÑŸ—…³•J©T«NéÐɧ÷†:°÷’0‡ïM>¾¤vy¶Œ^ðÍ´à™°þÁ\SÅ1L +¿@0J¹)¥‚ÜG_d‰ü¤iC"í Ð\Šé +@nË@ö„‰rˆ¤R+\,µ’ñ  äÞ•È]d¿‚Ü–ü@XDܹ]±rVS€$A §å›‘bD,ν÷‰qù_ åÒ¤"ÌJ½Âm¬_‘(@{Ã:@›'  hu`?rHgîfÊ”2\tÒ½RG§¡Zð·(cìù\%rѦrq†¹݃èÁw£qtPŠ£÷©ïKáuª ¡V{ÿ@âüïɤ®KPªê/Zhï:;=51ˆu óhбd´u„¶Æ >´õÁƒ÷:})‘©9„`„3Pöíõs7J þjç‚´%ˆ‘ì¢ú1çq¨uÇÃ`:®÷ƒZ‰êýШóÑÒr -€*Ã@_ÑÏÇ뱪F@<€‘å@Ã… PÀ{èWá=”UhnìÒÈ3 ÿܯú±=€¬ òó ¥o‰wkéáï5Pâ‹ÔßŲ«PL^]|…hIyÆù{ÿ¹<î…_ ý|r§Ak"+¨r}X§lµ¥v(t¶V4€ /[€Õ+1@ß + ÐŪõã‡î¿`Í ó@q6Ù”Ð}(zëÈæùˆ]Ïdf6bNb"Ò¸iá­lAm\7¸þø*ûÑ#£Iƒ»Kw„C²ðHŽð™³Pj¬CƒWp­z…Rïx9]8“¼áͧÇó€ùÂ`²]uïôš…¶^Ö—ñoy±h°çÈ¿°¯Hf¸OD>Tì'$ž\Ñá­Ÿê™R_&æïÌ›ßÝ2¹íŒêè* Á•BÂ/… Ãï&ŽÉÞ`ûô à‚÷¸×(ÿ¬.¶ðkv!Ÿ>°3ûÞ+ñ0{ç#e½PÞw2{—îÊ&ÔƒÎ>x!k`Xüû»™W+7*<­ö©ó辯Ê]ÀÓ³›Èæe¨›ßzÙ_ ž¬”:Oþã˜,U¡œw:òÜ¢ +òJV„–»kìo﹨è)¥7ìVÙ ÐI1¯®cžàÙ[<ÙwÍyl>¸wOáíŽÄÏè&æßÈÕÕ«—â‘NÏ«9:šOWóSª(ï½ZŠßIÈŠÙåw“æ/ñ×VÄX¨Of96À]õ– 'Ò¯: òÜ+³ðþžÔ•tð&Ó…Wû5¨?3x†¿o[Æð&Í)ýªÐóRòà¬ôUc¶Ç7¼kÕ$ÔÊgGràÄ ¹œF·ï͆[êÕÜ»±ÎëáÔÙt^ù%þ£óˆp8É ç$ú„Xjb÷ónT|Ò¿›÷´mœfŠŸ|¾‹ÞÅ©Uºž;ÙÖùñä»Çhrèû«x¨ìcs²÷–øb·Æöö(„þ–Z#/OÍ„;)}çõõìŹÉnV€l­Ô-‰„\óö®ôKä­ËË×`=ÒPª‘zbpÁË ›ßqDÏΫÀʶüg¯g‡wB}f.p‘˜+ù§—„#>2ï]Ç%É}TÞc'(\föûë­m¦~÷7«e%^Û}Û«~ÄÖ­!^©,OF©´ÕÑÂ/Ь©üt?Þ)·¥>©·l£];·ðQh.Mó•-S»»œç—©ÙÇŽ_ÍÐSÛQœUðôn¾â„âªi/¯Lw³6rýu=)«mõ0µÅC;hì²,̗貘™ÔtI¡ÍéJ*ÌÃ4O@ô Ø–,VÐá ä3m!‚†¬“€ b6ªè±¤ .ÙÅ}HÕ·sÕ¯¹Ëqû¯Žz`{¥ŸYw6D1° +µá˜¨¼FÜyÃò«mv9Zƽ…f„Š9UÃÙ<ðIoÞ¤ÖѼ9;”gVîT˜µ·ÒØÐ"H¦ê?Ç@¹Ý`·éä»êKJ $ ºÅNø¶w8ªk·kÑ[r~8ìž­ë®8oî\í}쎥¦×Þâ“t«¼9$—c;.-*¸Y›‡ ŽÅÃJßø +ÕÈtZËiït¾N]§¦B½MN‘wŸˆL3Ñþ5`›÷G°--Þ̯í "@ƒT¬’E6XEÿ–óÊu*ÎG~Ut÷” Ž^îö&ëA#’§÷Wˆ˜õ¯LÌ@?_66§c}*ˆ‹îDl¨¢.·íä£AÚÙF÷:ÕP’|\»7TŸàˆ<>…™_ ›Ûè/Oþq<²àÇ€ªº…¨Ú ›¯α÷¢ôœ—‘lÃõÊm½LV;g•Ÿ7Èͼ[gì.{Ì£Á8=ë¨)dêÍ'ÄDÊ3´N-sM­däµ¢bã±ñPìñK»dÔJ,`ã—%#fÂú °˜¿Oþ€ Þ1ÀçØË¤µ +‹ï†åVŸƒM½u«/þèv—ʾHM7êñ®}´ý•|ä®ËJfòœÇü!œe²ø?m@¬2ú©RÆ4Õ +jµæÔFïû´£€ÓRV:¥´¥túùHùP¯œò) Yå“#¿Å_vO¨óôYÀž ýÙ"OøPŸL1øåÒƒ|g«—2kû¢Ð“¶O®e8k½°^KÎw»¼/Ñ“iÞ«×GŸÓ¸½õ3Â}4š +²ãywJŒ˜{»¬¤G4#çĦ8ìjÚ›Ožrî0Ëʹµ–ùÇó þ°{"UØìs‹ÿ¼MÔ¾ñå“¡^n®NÝî¥cñd+éÊþRE¯UN%û76Â=–«B|sée?O?§éž¢oú90_êÓNEãæc™V6h“‘FXâø­.ž<Ÿ‹8©®Ïè$‘“•ÈV?% ÇÆÂüÿó+Óé1löU 9J•ºß¨z²°§X¾ç®j'çﵫævÇNÛÊZ.OgËéQ_Í×ã™g`šsÐ/÷ð¤¾,ö>}/=Îì|†»c Å|-bp[Œéþsjtúµ0T…p1ÝõŸA.;¨¤ ©N´ûkÀî© Mºî¯É7@Ýäå‹p¹keî—®þ99íUt(¸4î-žbËFoüÀº“mÝŒ¯Âr†Lúöddh[­–>G%Qr5õ1”$ì-^–»Ô r1á=l•z@àÚ½”d y»ÖL^Äìí##´né”`ÆÔG0oyðK¼8Ò`[ZÙ€<úàS—ægíž²áöàU⹫UvYÇé§*kåHð‹÷=“ k󬑟M©&±ÔŒ~Û·oæNA˜×qH–ø«Hç®Ïþ¼>ŠæPÏöÒB©Àm‰R“ÃFºÔ=”È5·åÖiž÷?Þ>¦¾¼½à€Åü}›ýv +õîFúV¾\æC|~ôØ:(NÆÞ={ÓûÕj`3<ÍH«VÞ2fÚ>‹ÓzÔ´—2Æ b)¨Â9Ò%ãÁq"(û-ü¼ÑÛ0ƒï…­ ‡OJdçܬÔ;EËÙ[§¸êŒ1åÓ%—i¤;T?éîáJd~ '>ìDK»ë}ïnJÔ÷—v+é¡·sª2w7žåÚ¢¹y®*•b~Ý^Õðé1§OÉp¼V—š‚Yç™t¥KÖ @WŽðAÊû_?]¸ýT ºJIHuJG°•›XkÏ*þ ÝHÖíYw‘´¶òläYÝ/#ìíÛø5@þИ±õ™>"%ÈÇEñÞ{Eqz½¾º‘okU-¼ýÅJõ>3)õ¥&•E©¥¦òÕ$J»š,Ýf¾>0©’)loÝCXÆã†‹Ï©sËžìtµþ¶çs—`–Ö­Þú¦i±µ>›Öúüþ2mnA1KÎ&™H^ÿ†ÄAœáƒWç׊S|›Ûº„ NŽ^÷ÖÅÅz¸|>†é,:ÛÙPh„“iÛÅÔNð¢i›c¤;è †ÞÈ_®Lx©x\t/Šdw&tÇgë—B«Î€)ñeRfhq@k6½ÎcØì“ ·ÙÏNÒMÏS­,_/µ²Rá—x B³äýÎö)žX'kÐÌê:‰Ù…eÝ¿À›“ãéÍ:íus°~Ýa*-Ÿ•!ÕÎÛJÿ;jvÄEžœŽÕ®êóNÍÉÛí¸ý>0_<™Ì j!F™jÞR«á3G¹!ã²ÓSBº1|“øÆð„Tó»mwöÅâ•q¸a\[©s®²hÛ¥ú,ïçÙIÝ®™ZžFR5|ï36™Ì)'x£&É0 ¸äJ—í¼\Sd’¬¶W#yÁغ贼™|na¹MÔ$ð}®¡()º~‰8¾®nC£^Ïz¹ÓÌÕî'­T»;Zù—H¦ÒéÚt¾Ó3½ºôЂù¹¬ +†lò%-5êã­AÚJ1í¤¹ÒºÒáþÕöª€ÓŒ8×™¯M¢ýE¹r;C°-i +B g9¥9´E£qÎv£¨ùÉ ]§[X{6¨\­¶•éj8¸ñÕæ«kT›AáZ‰GË Äù%ܸÒkªñ"ÌOŸÏä-ÊkL[Ë+þ;jb+É7ø.ŽkAD/^~'\ .,›)¾W AK,ì3Mò¹ÀÅ÷¤P×™Y­ö\¯Øjè®úÕºW,é½ ¿çü–ÞŒÅÍ•öé²;MQ:[êݤxÔì_bíÏ^ùS&ƒ׈ºªg²òé´É‰1Lj}!ýùq–»µÐ³lZœ0B7}õ²jŒk+·NeÿAœæÏÕÂ<*lÞþF©~é̵ ˧{TI¬÷ªE1íÉÏA)œ7˜Ysü¶PÊ.®Ôm›KAT‘_bñV6$!;ʨÖyû•GE.5`¯¥\OÆÏµîsÚj°ljUc¿ÜhÊ%¸HÓ›s®VO ú•xKK°ågFewüTK»‰?-á¿(’ñfU³—ºÙî|n7×Ï-~ŽSÙ||-ó–&·ò,í +ø÷ùÕðï ™üÆ¡Â|Õø¼raGýMWxs׉’fc«flm’w2ûSÓ"7W59¥¿*_Š¢$V¼b‘ŒTšºmª’­ÖÉ:†µs˜cóñ9Çãß[4À¹J$cî<=Á˜X¢"ÛðßNöïùÕ‘{éB!édOúçøo9bÖÙùL¹.ª‚ÜC_{î‚ÓOûê9óŸ5›5á¯(Îäzpùœ+öß ‡8È¡éÈ‚ê—# dï64Û#e@pDøÙg+ a7d_™Æÿ¢÷ëçÊ/ñ§ÕàÇAüãîÅL(u€ z@Ú. +E¡ÔWâ =^-sªgM}ÅA®…Ñ|äJâ29 5!"@ç²›ÂO1x\¹|‘ýAì‘v´¿ìQÖ«¿ÈUWÈ¥ï÷µ¿³²-B×ùþâñ@Øù_ÉG+€¤;;­¾PtD€œY†7b*]Ûðn„»rý¼¥þxrL‚\[Ä |xK,o‰m q߯ùHò|ö­äFx%ëÕ$³Îÿžü ëØPjç.þåCE¼§Pø?Ú8ÅmÒ$@â^ ·Ó «²I½¤zJ„$ŠÉð- gКp†úc4 çÕ7 ·ÐaEYÄÈi2 q®Ç˜qîDÒûÙ+³^‡r7xŒÿºÎsKU¥[Ã×¢ (æœJR’ +Š  ˆ((A)½ÿ½öøö8{ôúó 6£ëµrÍšÌ*÷Ö÷jÿÿèT3@¸øc¹ý1÷n×W€:¹OºPé4è<Ç´¶0Œ05ö#Yw¡¹1@ڇ䷖@`x—`t¹—ìÅgîÞ— V~9\¹¹ëZê2>åò"l£(HÂkâïÇÁó›[vþ +£ŒDê§Läe¦~¨m5Yºw§ˆl‚Kä'yäK³5@o‡×^”}½:¨cùÌ:±I/gqA_2o»Æ‰ïµÜ½nÙ­þZI†¹Þ=Š­¶«ã¶ÿã$éÅ⩾¹Å"fÓ²)<" +;ÿ"õüÿ߀œhM2èÐíxb¢r¥ü¡èKê&Éô¥Ô‹þc‡î/}PØ%XÁ º ®4(ð™ýÛ‰î×W=\FaجÂÁëW|°6»~¦/Lžp¶O<æÕ&癣²ä–¨ê–ø²}_ùdtkpÇâU†Œ†ØàǤºè ìÌ ß³Œì£f’&…ý g=f…7Ì?žˆÈÇH½#€uÆ€M­Àf(ófÕ»m(Ê ößgêËágŸøçq®Áyšm«nÙîvnds6Îy~••5m+Û•pùºëýeÚ¸X–¾¬“lų,ÏËL·kܗņþØ=K§@]£ÿA’Ì¿7I‹ÏàêËd9§î}]+=Bî0{‡"V¾ï.LGÝÚrdø§öDóCÇ+ rxo4r™ë[œäìƒ/³©V·y²cRÐ(õè:3¤Þ‹MÖ¨­È½.˜š}ê¬ÐÌñµ2ËÇW„·ƒy»ª…oA=6üW$ýgyPí–èŒ% `Ðò’#õ"¼H¼J±CN‡Q¨^Á$Ûâ˜ß»\ïf9}úèØÓlηÎþ*6‹8k¸ø1¯?1ª| +ÞÝæñåׇ0’uß8ßâÔã„RƇÅÂ@‹ó<ÝÈW.ÃiI)jed¿‚¢ï_]3‘úW ÐK¤ ‡lzn|³ònÌÐNð/ÇOÂ}Ó.¿®nÁU/†XIc›Œ6t ï`?õ¶ÒcøÑTZBÔSŸ(N©®\ê`ïdªó}¥‹ ;nïš»º`|vuÀå§µ+ÈíÖ’Âpúù éÂ#½ä>Jö¨H•Â]zÚ]"õ¬A ŸW’¥Ë£éÏ©nßc7ê܉… {9ëKÉ\ºªf4mœúJÍÑ´Ýá¡"z=RlÌýì·†ìxfž®Öäõ S—Âõt´}³$µ®«lóì艭»eÞÆEÑh—«»ã§7Ò4øu4dTqö÷ŒêíbÉí[üÙÆã#¼ùVÅâÂÄÖ_^qñl¢‚HW4…¬hrt:ëÉúì›âýW$(3y³Ç¬ÝU“ºY¾ƒÒ +μ‚Lõ vPð8÷YuNÔ»`êu~nV.«Óx-ç¿Ò @‡"ÝÒöy2å€o\¥¾lzÛL‘‰ÖºRûˆæ2‡ +6‘«ñ·i~ÀWd©å}‹gW+Àß!âY=ûákxý?ã ³Y$Á%ut¦%ßO¤:åL´+Г²r°Û.ì ö¹I6LŽ]Ntù»¢#ðÚØm÷<þ9ÈRnxÜ~J7s3kM¯kTÉ<„kÙxñ¬Ê§†.NWEv#òíU>«~_ÔØŽ¿Øm“ÿ²[L)¿"iöJ¢³ÇóIIÁ“îa2Hð¨f®i…¾ ¹BöBÏšÕsK¬÷O™{u¡’fµ÷Ô™(GMUÞ~ž_e“;Ì"uÎB¥³»%=Å,`·ý"Xõƒ/²yH96ñ)3 ó»eæIúËù–‡}#íl’k;ü+ê›(¬ö(æ ”fò#®Iäh4pý.å_çYXÉŨïg϶f€xªÜ7€ÚmnNUˆÔ4´ÁoæN¤¥²Ê»ÚAçZÏîeõžg½å!¸¼˜¯@ô‚ÑÊ”åB#ªØX‹tžEô¹mÇ ¢7“£¿Á_òïçÔł㈠8¸&Rú#ziäóy9ݽ[ü ¯Ûì…ÉjZDNþÔT‹Ž6Ú‹†5—€2£PD†šoxö\ÛXWû[Ö\B™½CŸ÷«€¢Ë½´lÈU~„|Ièõ{iE¸×ítÌ›*¡JDâÿ O|©?V´âœ_RpqÅgUv¾½ï>>4¬ã§£§ƒVF3§xEñ¡/¿Uq¶OÔºE+þ±j +쫳“V#º~`tá¬Ó…óäBÞ¦ÕÁ?¾ñb}ƒÑ¹ôè´æ=ñFÍ#¢e/|©ó&ù"Ò45 ý\CÒì«LÒ–ŠÛ¤Ž–MïÞx磰Â9 +ÛË2§Îy=MÔò TÜEÇZKšè³ñúræBÝR(®«`©÷Ãj¼à6Ì¢÷ÙQ×ÙJ%k›ÒyÔâû\v¼>"¯ðL;Áõ\Ý,fZšø¡^ó¾ÐL@&=÷ß´ùa¢ó9N_Ç•Ìes{™eÊ>¯¥u»¼8³Õ)oõñ +œ5Š¥Ú9y´{Õ6$•ï Óžp=‰\¬&L°dˆö€§VØeK<‡“ý¢Ë~Oø§x»ÎަL³cÚ L¬3¨NŠ9›P¢ªO×5šå*è{6ë¢Á_‘´¥Õ2© KÙõtvíDܺµ“öÛ[¤>vÆËcþJõ{1 ˜±(ôw» E‘ë>[ÜýVS¡?e°ü¤ª ¸"6•“8§= Ÿ¾ÇéÙÓ¬Éåª=Ç+^ûŽÜ SñÛÍlÄŸNI¨‡`Rj``BÑðé¯ùßÍ¿Xö´ +‡•å†^èvkzîdÜééHHSîH‹Cc}Ùì”ìÞ’J!]kœã»¾TYÍNf›)v±!ù¸-gD7›K} æ£¯ÄÎŒzc=%¯2)“ÉlõQñà௠+VÈ®>ÈÞå4ì°;”Ë`Ôì`Ñ_°Ãséz3kh/¨wº`?ûØ~pÒìRO½¿¯´WÞd—)BK mÔu­´¹ñý\¯ôAe’©_•ô ™ÎboQ£y6Îâ3¢sb&ÎÆ|­±µÂÒyØõJÞ`ô¾}µ«¤/-õ³JaÖÏ*z_dÂþ‡›~cÿÁgaâΈËv¬Š·ïž¾jÔR¯ãy}*£Ž ¹µÁ¦R®á¢¨N×ü`\6Òv³èˆOú¾ +?ä¶Bæ£Û«ŽÏewzÅ*“Imá£ÚsCÙâårâ¾f~½|{hµPéš±³èšàaöÐ:õмþéÍ&ø©ïàÿÿÆå“Ùæ…Â×-=Î{u k5+û­m•%\åjk,;ü^:Î8¨ˆËË÷x¤“ŠMĘûšŸì9<»X 8­"‡æx½\ F½BýÇúsϯÙgQî確Ñ˃ץÇëLÇq>õÎJ>'›Õpšü'ÿŽ++òn)ÃNü‡æG…ñ9ð£9‰ìéYÕm³“v¯G£¬²èäüØ/¸e³{ÛdnO~ùmÿðx·¢“›mõ‘gZ6Íö¬¥qõW™×çÍ…P3·;µFö2·Z!žª¶T«ÌX£«Ì¤ºû+U»É™“øy.,Üj¼¨'c¦ïâ. ['š±e¥3Ù´û½Ñ(s ænÒ³¹Ñ­FYºí+O®%ÏNë¦BHrCcxµ®s„^Gž´]+D¸[eú«¨ÂŽ…lÙ;é¥r‰»%ߥ µ_ÿq†ýœŠÑmæ%¡¿B( ºœóf§ãjD=ËB0Çãà9ÏÇ0QWAó¼“ï15¼ÐzP©ivµ©,ä?±Jd·Ž<šýZ!ÄÆÕÒL+ÕïcQnÂUÚ,®\1ºÜ7X|»*بö:¦íŒ›×åÈÏû;,€ šjmš€e~C’ÌÏu½¼;/V#õ¸sÜ»?Æ›Ûù2ÀÕì³ÇTU¯Óx÷üVò‚†F±AñšQÕÞfâ +;¸~ÊMHü–:(ûÅ!‚ªÕ|AJż¾…Ò®3¼¡&J‘bk¥)R†{tŽ]Ðë\-Ö`~;°À "¸Yæ³€sŸ.€‘zjë —}± WjÊ 1Æåö¦?l”“OÛðÀ›¸ÑÛ¸°×ô ]gZo”àTJðn(ìŽäp$€n°œ€1Ø€îHòðkÿ‹4™ä +¥Èþp5×p¯›H ȵ3‰Tzº¹‰|Nn#äà> +à»ÒðîK˜Ç·&.&€G¹ÇϯÍ>n®‘nÀÅlòhq0N°£\Bå² \îd°É¿, ùБó±þb‘¿â'™©«ñäŠñÃô…݃ÜÓ¿€œVŠ@Žaò ×¹uA.W¥ü^ï솀ÍV’´²J’V.€…wÀÉòÀÔb–ÀX˜Æv?ÉÐúÀL!N0On“Ù<¿ å·5˜ßä§_xcj ý+’ÜÌ':åä¨G¢ó3âR×€ ×+ðc¹ýj»B}Û+[:ëå«ÎRcÿpì– Š?ÒÜ|lÉàKMM`'uÈnfcôÞI4=›•W9ÊT¢û ”"¤¯•Fõê=ÿW/öþûsO˜È‚IÍÒÑ oâžà–Èþ[9¤©rÉ|4sº.ȶ“ÜŸàY96×¹ywr} +O`°±ñ¸o“©>vzSlß{-Eæq’˜EE¬!&VƒîvQòßÝæïsݼ¿¯Œ ¿!)õúñ?6Ô&—.tÖ>t{ö*• €âx Èzï-äÐ2R ºŸC5µø¦Gjã] .ƒ×ªrž½*g—ޏ¯ËGõcþ>»³ô5Ÿ`ûÝ}üÁn<ǵü8M.Õ^:—¼³,‰NcN%kÿHùŒd€|+—,²ZDä‹çÖ]À q€Ê])ÆÆãu;¿ÝÈÛ<ã¨axHØ^ëå@Ò•VÐëëC/êóçç¤0Ï boŸÙb<’éDä^H¾;G³xsßvÉñ ê´7søM§é¯×ˆ!³¿äZé‹xв@%*\ä³ä“ùg¾ÓPqñr1WŒZú¼¸¶í+aì?5Åþ>ôÙ6µu>ž«x…é åÒ»Áðî<Çó›{,烒¯ax¿Ù{¼/jØ‚.“p›·ô[óÞ2c¡ù1Msÿ†¤Ôw‰Î]ù' ºÑéDåJ…ZÝöø£ŽÅô§Û}5„ó$ì '+ <ùax££‡Ýç~ooý›`Á5z!;¶o{ÛÕËä©´-½mŽ-„õh“x6Ò^àLߤ»qãŠÀ¨ÕW°þÈó]x.ÞT©èLÆáoH +Þž&åúõñi +:uX9lº,¾š«g=Hº×´B?ç5s‘¤ZæïõO’KïÑE³ÇÄĺÀwȵЃšØJûœË#.g°[®¤ <Õ<ù¶8:uÊ÷åQæIC‹¿IY2ôGgö@c§—zÜ®ýéJúçú½:ep' Ëdø9¬}¼Ì}Þõ| #©ô\L¢¦W>M'Nô¶ÖÜóÖùoÍâCP ·×4uQ{¤ù§-wô» ÷Ö}Ò2Ž©0>iæ¦4Q¬bNT0ɰ,bB¥ØöÞJq…ûe2„¥p@æ¯!@5yòÞý1¦Du `êãŠCáIÅ0ëã•!â­jZÅy—·m6OÓ~ú„á‰}Voó×íñý¢š:ÉêÌsìÃâ¸÷Ч£ý’™gvwƒÁvµÒ‘Å)”Úl¤À8¥°²õä–S‹ävvHá©éJŽ9¿!©£™Dª¯Íÿ8xaíŠøþv™þ+øVwïý ?÷¶ÔÉÛ'º˜š»­âlØ7Ä>3;Éî•Ò4®Âªxèl…­ì·ªïÜudËëšîIRvmß½´ù4Êf,¡ãõ16åMVw®›É” 6ª}|l&›Ã-…óƒÔÐõ¿›äŽA¾q[$¯ +Inri„ÉæýÕž¿žþë>]/ڇׯ}ÌX6r.OÕkv!:Ôfå~°ŠZ)cmn' ¼­¼6i©'öOÛ!^¾n²_ðXçîX$ù‚paÆm¡èfx–ª–X >O‘ø´<±p©;)ìß´¥Úä‰(Ñé¸k€}Ž?»QÅ÷Ü cñp{\áçõö«wtÞf5 P½Ç +5íDº‡K>7ÙßMb! “’äۜێÆèv¹×ÃÑv†`×+ÍBÎCñ,×ï«ìúÖM·¾¹†&œ8O¡]¾V½üÀæ0~È»ñ,¾¶NIOÁÚWx|n[KSêQnØ;i¨«‘—*©<°XJVCss;¯Z¾x«>|{ÜL7½V[\æŸMyë6éæJC¢Õ6góHRøi +3øˆî§è¹y™`Ú(_§÷Âx™3‰ U|*Sô¹½L îzžÁÆÝø ?£g™úGN2”uÌ›4έw¡uÒJzCèy]y˜›éndz¼_Ðãš ¨¿Ñ÷!;ê¡Ù%r§Pº$¹%²±Å éwçþ6ž¤ébJ4›i`³IÑÅvãŠ]>ê÷‘?|rüpݰ#¾ú<Œ+ÑÖ;ë«5vhãü’ +:ĽʹմõÓ¤jÖ—Hýô-mª–EKJReâ |¸ 'åäµvzÆŽ¹3;ãÞõíu§ëY" ÏùE?¬àZ·fhqÓŸØæ³³ær$ ;ò°wŒ¼ØøýØÎ  ¾‹A{î‘Å¥.#ÃMÿh¦8ÿ†ðµ ‡·{ªYK ªèouSÖÈ ÀÁçòòáÓÅ66Z¯¯«ÒlÊGÝ +ÇNXõÀ\¼Â…â›'!õÑ48ð\íî!<·éaÓK©O*+³7zbÂdæf°³Ùmÿ`lô~6ï={3f„öf[‚èºÒÏf—þx|5ûã–aüÏɵÒ7½l$FJç§—H3È+ž¿@äÃá“zûIˆÐià7Ú­•ñ †9µ×Tsêš^çpø3rxøLn»an,´ ¥Q;Ž[ƒx{õ¿{êC?í:{ÈÒ»Äwòììo¡c/ßT·p:ªÝ‚ _ºÄ 5»„ž9ÿgoe“ëØ¥Sö‘ɪþ–­SfCc“ ­cheŒµÔ.@»ä¦D=—þˆx3:½È® ÏSØiºt_·ñ³¼ FÛËâ;°=t0{õþlÕôBoÑ¥¶Äº³<ïO +™÷Û\°Of4¡Á´9½¦´9™5Û˦£g››“çßpÁ~QÜš…í1€v}ñøÝP×"ࣶô^ÍOÕ˜zNA–ˆÏl}1-³#œlÈ);F…±~ìG2s5‡£ú1õ„@Éü®€5ÔòëR—ÁÕv‡%ÏÓ¶w}³íf¯«¶6ÊöÞêPu¸ù*ƒ¦¬kRSfãSS^ Ö_al/$¦Òü Ý&ÚÉâl¬köÍKú$\šoÛ§ZÜ%èé¿A#ºKhß~lã-ê^|xKó¬<Èívñs°p¦|ñ€£Þ+}§pø‡Ü^Îú…EwY¨ÅwVnÓn‡ùC«gæË9 m™Öu>׿‘«^Ãj•¬‡ÕÒ'd*ì´.WjðᚺÀfÊžY–RaØéÌæçúìýþ!ÞÎýgȇrõ¹4÷ì¶®Nl×ñFW­dœCÈÅÁz¥]îxÒ¤Ñîd +flÄÃÆ÷âOë:«%KAQNg6U[Øj)Þl*µ »/ ³Í©´!äk1²oQ±_Á,vÙ¦ð>Žš=¡ð NzA“fq‚ò$xø…5ÔN$dº…Gv‹Æ/tëöH¦JÇ>ô.Ý›°÷Ûþ~µúÐ÷ÕøZ·O]_¡Ù\"ÕÒ{P¨T¿•b¹ 窥únûE·)«ç   δ!•GÞo%G•4(b©+ÂÌî1Âà )#»vîf¾f¹›…‘¿Ax–ÂÏod7{°g—wþ2ê· +ÇîuKíM]97•9ª5 ëè‘ .Öª¥×À,{jÞ.mððVìcû6ª¬Ü´1yäçF€š»Æ±ÕÂa&ɸé},WC§5¸Yœ÷ ÍJžgeAg³IZ‡Lâ—Œ"‚îûI2ÿÞü@º âÔPœ¸:ƈLrkld‚€ÄÑ@ã# œ< ‘ìÈÞ9Áä”`á*x§õ¼ø’N’ oìõï;€±J˜€È8#å<Nƒ³•~.vÃ×&Öå¹ù6-!IÚ¢èæÍßQ­Y ÂG¦ì‡Â~¦xü¹—&€Oõî“_îð˜ÿ˜¥ü¡ó¦r_äröärŒ\¹N4¹\;©oéôÊÀÊ XØhžËñüê4ctù¾I¯¸xc%¾ÊË£>†Ö=’$è÷´ÝøÉT:òûÏmRTñù‘{ɸ¾KÏž[œíïÿA’ÌÏÀËO"•ZvR ©÷9 ÐN¼MCx$ëÁ¥ã´‡À‰Ûõ˜ÄðÙëÖ@˜Èƒ!)|>¢Sžn× ëÙO™ñó3³àçxoGßH«ÀcÆ}Ïp1ÒË7„Ýýš¾qÛuZúÍ¿J5ͳßÁ±÷{µ‡Å¹õ’ÆSIt>v‰Î<èT£ôÒ#42,È·’ +˜ÏÈ{Ù,U#ácöƒJ.|eUãžÿµ{àÆU÷z{uéùòywËøæJxÖy +½ü5Ük×®Kôí}ãL_ÔnEµNÄâb徆g›Cz$…Y˜îì³]ÞZgú¾4~CR=»M€ô¯ièóþ ~”ú˦çÈ=ŠWÜë]‰P.ä¼x`‡±?ŽSè\Uîe½=l5ûù%µªkÉr¦Î”6uÈ—cVÁ>öf¿lÛêŽC•³,5W +ð[,u¬rq»Ëšøv7Ùo·;mpÚîìÙaûî~°û ™í?[£Áƒ_áä¬SçN5 +‚P{žÑ¯âòMF»Ž-Ê´¨©ú4xô9ÉûzNûÊ犊Ÿz-åbßú{g'Ow|iDÊ"(³Òö +6ÛÝ9P7í‘®=7™x®gÃ,ZÐÀã×9J:¬sGYãõÜ~ŠòoH*è5ÉRŸ%u³M,ûÞì)jáàLKRV8o¥G¼^ˆ^öxæ>½ÛéÙ¼´cÛḬ́WJ_»ºòý¦Ü^½úRodÍ6—"6Y{Æ­s»–$æ×M n‡_>–o¾²Î×øŠ][ò«a,óŽ7Ù %üçàM¡´R¥ß[ÐùÂ&‘Š À&¹M¸;W¹çY6Y·±”­÷ëœykœzAöqìv|5_ÁþÎ{ð®É +’,=Òüí[h߬&7.À¡y'< œkJ;öy=™l;+‰œäW’¸˜³mŽÜ°Ø—Y‰l¹FÐÞü€Â™Èåá1E¢é¨s÷I—/t{·¨Ü:Ê¢5¹`‡>7^é44õ³zVƒ»²Ê¶¢]kÊ¥¢ÛŒ°-®çû|UÄJN[(iÈy±`}²·ZE³¶´Œ‡í´³a¾ÉQ_>ÌLÎÏ ó=½„¥²äeüÑ·«þÂßü†¤-a]ß›I–†ó fãÖ-¼…í«ÖR;¶î\IÎÒ ]¾@éúFÓ·óã¡$®»§>¥÷Ûlς֋Y7/\×n‰çP¾Î5¥víÈ$™”ùó}ÚÝny|ŠlãŠìCmr,m 5‰™Þ˜-sl+©gÊÏõ?(SK¤º·QÀòØå.ÏÚõ[Äk6›ÖµÙkÁ™ž2’Ϊä¹vØ{Öò"÷lÕÝNh$ZMö+8Ãlޝ³RjReÃl¯ºÚñßör ëCV…²$Ka³#Ë+Ù"Øô&jbÔ!Ëçâ’¼nï[Šckʲúâo¨Öé‚B%?æ,}Iö²|ÙÖ«¥ŠÅhqíüØÙ5}ÐWša²Kå¾~È»ŽTÑ·ß}]›øÍn•NÌ7Ú—,+Qt5ˆ¡2s*Ëuz¡N{%÷gd¥ˆÒDÁ¶‹ÖIw<æÛ¥Ì»U¡™Ö®äoüaKpïûšp»/á7$ýý¼ +«ÂÄ[Üòõ°Káë•ÎŦ¤¿KÓÒñTìwÔâ¶Lì[s. 1!øPÛÌ?Ãdy;Ú$}XX¹¿ý,¿«jŽÁ5³@êd•tôZ‡àÇ™ñ¢å^‰y×¾‹øàŽ3µ1}ÌÆA³ŠQžÂß÷îz.mDqÑnXÂR¨ÿÝü iNL÷Õ„Éþý ñE?ßò&k°£Ûîc§¬ð@UzhÕ•Fþ8•÷ã.»Í1ûx ƒgs‡Ýµy,ÎbmøÊ66?ÁkP³´ð…Wc.W®C|ÿ=.f“ÝŽ›âªu˜"ÓŽ71spqŠ;íÅ ZgÅ™Vï +³ïŽâCÒ–„ÎeËξ…ä-{󓌬›èi¬\sêå<Î*]·´ëéƒÁVϽ©5ÍÑ[þiÞŽì¾Q»,OèÑ£­¸R•ò•„G¦€ƒåµ:;½©þgRÙ±Yʸ<ÀÒ ÔèöyäÇešO0Ü&V©.NQzÀÿPÈÝ^ù©&¹ÉkˆY[ŒÓ¹ÃZÞd>z|ä8¼ Œ¹íµmïq¡ Ò oee©—3:mg¹+éúŸÑί£ù[eðqðBf9Þ(O.åm{ìäÅɈӹåð‰^•a‹.;ƒ°ô@†-拟؉qVV¹h‘ÿé¯ùßM(·¬Æ-¬õ +SžçŒ.ç´sw–Q<蕳÷ÆZf?ëò·QšŸÒŠM-FM3–u ¥{^D¯ð6•VÏ™N•ÞS2÷JãÙLJšUyƒmcè··£AÔ7–ý¸u—ûC¹yí í÷дw/ü · ùäd¹ßð §hŸöJî,\0øxʈÙÊRwž]?;~mÑÍ%žíIÀ½EfÇñ¦¹Ìï;º"ƒö8i1X5üxq¬Y¥ï“ë©޹á÷3j¾îè°óyÔû@¶ýÌ! zÓ“ºÆ|cwùQºGÐ5†“YæC® Y¾75sÜo¸‹:Y¥{Ö½¬Ÿì"jñÚε³/Ö'í«n5±§ì‹¾-®ªq»w‰ž#¦vùäÚbgfþ-MKìé8öŠ+{´6{aoYz†šëO¬ÚÃX¯KÐ}²s¹m¤N©öµ;¥A„vJ…ˬSÊ´øN1øî?H’ù¹Ú8!çŒm)“ÔLûõcù’àÆ3¹uïÁ~®òaÊå;ñZÞâ@>À|VÍ•p4(&èú{1~Èn´mIò°Ó§Á8C8ýé{è÷æß˜.ϱÎ2/tÚwÚ^´k÷¶%ÖùKKòù–ˆgÉÜq»j5·¾Õ\n¹ßpöž(tœm§_¥Ñ_’¶â=™6ÿHL‡µÒ-¸/|iã‹sΙ®´n4á2nÓ|}÷÷ãÁw¬R}‘ÒPuÒ¡kWÖfçÖX»êF}·;i­?ßf3b†x³wß‹˜¯˜ ef +öH_’m OåeýÛ« õoãÃ頲Ыï^Òwï>×åg/Qyœ?û^ݘ]ò{}¼Ay{´Ë·>ÃQ4) àð޳ðvê«Þ]6³×mÐmqXZ=9$Uth4uÚmT5®u­ÏÕvÍx®‰Z¾JÕ ,Þª—Ü®Z¥xZ¥FÓU•jŽ–¿!IæàÐ×·¬äÂçšù´]nl•úÝZ!¯ÏŠ*­¤«¾Ì'èção¦ë\¿ùŽëAµözuZ½…7léÞ˜È7º~¾P3‹‘\+¬¾ÇjéPH=º*l¶–=|ƒ”^Ô,ù"¾(mÆ¡Tê@ܽÝ—•b´ã¢Ü(“¿a×[~žl1t¹}F¸þ+qêЄ6Ü¿™ô]ÜiÀÛŽ·%üöfØ{µúpõÛø^`¸Ý2XÍî媽µ•ÛþØ){Ú¶_n»i©“ßE™>²˜ÂRáûxé…i»ùÈ벘ÍÏ™Fù08jªñæÇV;ßQr6„ÃÆ¼ã.÷nn® =þQ¹jãÚàKŒ¶Ýrkɵ¤ÞQj|­Ì©®/«F6Žvµôân•ê‡z”›Ð8u».FVñ…Å×O\øºÏoaÚˆrùyÇÃPsçW[õÛ3-Mr7cÂäjyu{v1u,,s%¸YYô ßµˆßÀo%-ƆîæÙÓt5¡m8•:ìiÌ6 "™¹­m•iŸø²w ÄÒoo‹2‰Hبìí +ÐSÞ瑈TÐè«3î¹Û©cåX|zƒ²ÿ€üë4u»ÎFî,“Q643êš™Q·Œ'PÖ™Q¯d$X?„Ÿß²í¸²v£  ßÐðÔI>¹#õß ÝV-·gsÖ dÒ O“+‚Œòè‚Ì¡‰'`— Ì Èˆ‘2몑€pœCÙ ÑÎM9' –Lk @æ +ä‘&óçë_e "€ +“ +€ˆujóu»â?cŠ€0j²×ã d¥Œ²ø,²ÕcdkØdÑyòkPKÿ$“Í7Ž +ÁÉ™OøÙÂIðlƒ,6ž'8&Ï3»55>†e5žIðá,Áþ7€¬VÀ‰«êåöÇ@™zMCq1‘ê-h™– *c¨5ò”=À ë€Èê£$ãe™J‰ »kÐgå¤k÷ ²|1)4~UHðÀý„:Î*`ŸÆMí}Æ1ý?Ç×…¸ª/ºp<üAÑÞ*ÿÈ~‰Ô³TpÅmxUùÇ–®,€ç¨àÚÔÐCþyß:¼PÑÔ‚.ÏR ú +@FòkÊÄ1šØrƶÕV¾ +^äæûÉ‚|‚ÞD}ٜןÓ'ÍÓ…‡gdJŠk媺‹ñÈñÎ|"õvŸè»ÉÒoHrS-\6—H=¤¡¡S·I„›Òé)‚@ö%# ‰òHa“y?Ô:rçh3\gÀ8غéï4‹{‚×U~Žë×ããH[æÖ­»·@>—‚*ÅûuNõn5çÀ\庱_××áÞÆîr8¥K¶°­£O ?H}ÿwóƒ$CD*•ÆGÅDªÚÑ—i ä@gô9&“ Ö«–‡^aÛÛAþð<(=¡r®íîØ½¬ÎäÝIÜÍí®¶Žè÷R§¾kXnë×.7¼Ú»Ëäyù”VŸË˜5‹Ölݘ˜ ™^©ÇY2œñik¬ŠªhTÂ=¯»ϦXýÂD§5Ht²F SrúcO³cä1z[Wõ‰lt úñôþ„9ðö°þ:w¯ÆPÉißå†O¦ý‹úÀf( SVîýâL¢lÏ— ÐÎE7c«êé.Óÿèõû±zjùåtr{”™ÓbØ^kû»Ékû×Õ†;ù ×Ê–Rãjì>¨4è<ÙHt*ûý«î#Šÿ9MÕGR'ÏwMÃ/›ø œIº&k®l &V×Î¥o¥kToŸ±Þ°žÄi:«£äÖZܼ(Úp險êåž*„ ¡¾|÷YR +¼Rð^¬R™e +ê_$Éü{“´ J"•Ý%R™f/YSû‹4&"û¾eˆM÷…õƒ°õ¿Õ•ë°11¬sK¹L-2êùKæ°tþ¸ËV+šâ~[ªfûCzÝÒ½µòÔ…,éâÞf½Ã¾dÅ—[ê½dêrãCOåf#¿’›Dw)%Ãñ@î1(äfÕê3C7"}ë<]D>ç-ŸúöAºµz…¾Žº„`@SÎÕjêíüÎ;îÑb¤e»vö`h$ªX\³¼¿ÒXkwï½ú»šðÂåæòÁH›s°ÞÊZ n@®vÛ(ç+¼É4…þIUì‘›èÍU‰MR<óß4£Y ¥ òÍ*ñjÜõEŒ¦sñëC§ïáã ºŽ–çZ¯¶9EÆá¨}çÅtf£"9ÞSèNéµ_‚ ³«¯¶ˆÜ"—©Û´¶ƒF}°Ã9|}ä—¢1©H"*ÏÎ ®/»-"”¹@ñ!\’¤SÌ„Kµÿ‹Ô¤š^2«¥Aäym­?å¾g?Õò]D‡å[`u;Wö{fezÇ¿óÇL»µ?˜Ç½¡”´’³ã-í!·{ó÷ö}Íg6Ÿ]˜ßd×—Ê:7—Ò×Äü˜ ÅÞŠà+ÍÏqKUe^ÞcÅC¶Â>k¯ W7˜Ç—œã;ú”ã§öy—èÔàz|áµÁƒ¬¯Ð» +ù+xëipàkv¨aVQ%›Fë„N‡»¸TÕ·¤”ùžºköMS’ñþm;´_þìÞâ9³ÂÅjäyG‚ªœËÇöÉDÓU¸ˆ˜U×®î–ûòÚa>ü¤°Üã‹ô Éå;ÊÌW½Im¶’.ÓÉoHꨑ´%­EëƒQsoQ v¶gÚ¾äïäÌÏáêiO$³ÖœÚ"'³w"í¥]‘L-·ÛL\Öó…x Q+HÛÎëšë7”â*‚ÙÆòýa†É8Ä’LÈkÏ4y0}ò?="83ñîSFëgÆÌWÆ&ÿÁO× YÕ¤ŽvOü¾FîMå–µ~'c]88kV[VF—‚-v„:ãÎ^…ø¾îYéÝ×¥m©©ëEÙ8 ×vëʳfèqÍ®®"ÿ.c£‰0_µœÎÓHÆz4"b8UXÕ8’ö6'²$N>¤½X·©Â{0£ÌãvJ£˜5þ mß<Óölº +9ý÷\Ñ÷“HÔ>Æ:ž§Æ”ãw_GTsQl*UEÈ’Ð[•bÅõÂì'¿Ôùzõc±ÁQ½­v‰¿Ћ™L£½k‘šV›,W¬ Q+Ü— aYK†îJ-¼¨Ô X;›Ž7Ľњ̛§ýI[º—_|ÿ^sÙUœ½f U`~ŒO +"mN?¡C¹u©î6ËÉ@F±Að'–ʆÄ7 V:Oc%ìl¬{âºÌ– mX^DQ=ùK.›bà*\c!¸Ñ| oiüµxíñ¾Í>ð—p«Í·óÓxÑ‚>ã…ÈT†¿ jžãO¹Íý÷r.ÅñÙ˲/½aÑü`ß4Soo¢ÐÝè™QfÉ uqÃJñg¿üVÖ'椵-š¨EwªèháŽæñB|w‘ùÖo¥UßÝ[ýÙá2 fÙÒAšï#w–í +•™šÅ‡øàpá{ô9ÄßóÏÐ/V{˜õ |ç^’›åe´½NtÔ^÷@Ån]o/.?éZÞt;›Üšk,œùÇôN±¯öLXe2ŽÄ̸JÙt&Ù¬~%ÂÜ›G•Ú Eh¦ÊïÒô$¾Û“³\œOò€Z/*zä¿âäl–S_¥g¯NOŽ:ø 1e×^*@v®½Ï¼Ã¼NÊ1ª½|*õQx—öê±}„ÌšdE¨+h}×·óUä– ê®EjYnïìÐ‡è´Øx¬5ï/;w|D”Ã߉):…±½r[ãÒ#ªáXz°GÕWÝ6q\ +Úñ­ð?üÁ°á¢·`¤§†.‹®™o=RšI™ïî¡rEO~óôus~ø¶xC¢Hh¬à—æ +‚Æc&„U± ŽXç‘íüÝSüÌõÙŒ¯]§ õ'¸Ç£»tF†ÅM§êÃf˜›¶½?而5è|°Â`;¸u‡Íw{4»“Áox"»f¾…øOnŽŽØëp½Íž;©¢Þ¶8[‚göu.zR?v4]d–óI«D3£w—ôøýlq z>t|‡HEžš¹ùqBo0s¼Ú¡Þ¨Ñz½‡íj˜ô°O½?¬V&=Uà¸Þ¤…™½I©ŒöTÚïö>ZiØ|Ûé@^ûÿ[ÿu™Ûo]:/ }‚ý:ºÒ„é]Å›$œ¹¾qÕ–‹þö³FHÝM!‚³T[ àI?Nù UÌåäÚeÓ½µ1ë÷÷#á^Ó‡uúŽ › û#*›íMW•jw.Œ‡]´ye;fHž;$;E;¦u»(<u‘W¯ÿ®ãaœù:N_¯´Ý(Ü£ò>_ÂY3-Óâ^³Ìi¹`» +¹îBbÂëbØÈÇóì«”Ÿ­¸1-ÆÞpìnµÅÿ1vïm²íÂÀ?K; +نȮ²‰’)!J"m¾ÿ[sßkÍZs<ë8Þ~ifLgu]gg—žD‰<Õ:ën7n©þ§j‘£¨ñl³ïVÒš†l©i÷ŽÙFk–õüœphà ÆE §Fµu‰GL“ÿ‰ôÔi|uÅǃÃ\î{ò×QëI>¹.7@Ã\ Í•6­#§£uë»Q¡fÉ”!·"~»ˆûõZ£u£aÕ`†íÀè'ó¥¡Ü.T‡F '˜{“_ˆ_BM¬ñzÃíÆZ—çCšV—Ê×?Þ©Uÿ¨v·.7÷äYJõ¿g~0[9æ«ZêÎß½ow“Û•nbC™œ#épœ.çÞžÑXl=ÄEqMI~ÓUñ†ÖwŠÛÅŸ„< ñRûÂV‰vÑö[åÏ0{ ¬¹ìp"!õy¥ñÖµKý{¾úuŠÀsµø-·j2™Ö üI¯±«êÚ¨ê­6U™ ùŸÐLáùÙK…ØÝ8i‹¢Ëý<æ3RM}ºÜ|FÛ5·ƒÇ„YR;ï)ãé\ls3ÜlÝïC§Uí(Q³Ñ7óDkq+7d×oÕ#Ô:?­ ÏU±j†‡j~£Ü*“ïç[)œ'¥ò¼pÏNeܦEü!÷Ÿøƒ-âø£6mãü¥Oþ'”Ú¡øÜÖ{U¥e‹kOcºÔÁ£™”‡ãvV«ÂXyúË׸"“?¤[Ó€"ð"„UЪSÅLè4Ô—NE O#pD¬#™ëàÜœ8ãQ(B!Ä[ãgmV…~Êpœ"ó)î&$LMœST7ÖHœ¢V#`Sì‡ð¾6þæ¯Ä"˜âÈ<(Ü¿ÜçÆ;³ÿ“Ÿ±ú‚ÓK¹ZRi¨ûY1E­G‚ô#hÒŸGPa#G ïŸ#p[xFàB#¼áØÁÉŽŽÀjÚ;Ó^cÖJûÚHÉJ¼kß,5_Mèk‹j`Å:õ™ß/ã·ð´yß#ö õ^Î}b;æ^o’šþ'"0NÒ8÷d.‚‘%öOЦ‘fÊ4+@?þ<' …‘A‡Æ%‚¦â'‚ˆGº^%<«Açzaz`²é>Ñßqß¾hºãƒy?Å0¹|ìCÅýTÀAøvtó¥IH¾H2ÇxT¯´xªZ²x†¯lhWœgS—”É"h\‚Ó(Çi¨ó=Á·7!Åi'å6ލ°Š`£§E0/ß#¸ê†ß³n"ÁU1ËŸûÆl}*Ž•=ì÷ë±ÿâ ¿ùxJ¯OÚQz‘W@÷B®zó¨ÇÐ&‚‰¸F n9ã¸0zp¥wç«ðÌ{·ñíuÜ0·õh>Êþ!‚êç˜á¹„Dà 2%ªb™T„x…I„\&R„H†þµ"îòyœóî{5‚c¿åy9/âOe¯gÙíçP×{®꬛oèsçì;’S(;û·üšw~g—¶û%¾·µ&á׫w.=Éc¬#ä±̨£³YÝÎÌsÙ;çWcêÜž¥›Ô×Ó8'1šåzëQNÈ÷£ÜŽãÒWçMpÏ·²3ô[ZšÚkϲ”ËO—½y¡S¤Ò«Ê#KöjÖ©Ý6Lµ} ¬ÖðÚãË!=..€ÒY[#€QÏæH±Ïl‹O…W3ñ¯AÂØéÏ—Ñ×Wš–•ÁéÄpÝÉ ÿÁ ŽÞ;!Q»˜•#QneiimöÅŒà¾ÁÖ@ÉÅÎ{õQYÖ­Û'o8WŠd>ð†'²ÿWý̾Àòiz¦]ývÍô|C‚þé^YéÄ´­ßÅ£«}óeTë-U-ÜÞº*¨?;¶Z}ñøKº5Õ4N EJâùU9Êãp++í„S\¿Û…íÁwqæ9š³[ª&^"¾·r¯£yº²ó»¹ø¾±´H—Ž!rÜîÝ¢ö}Ýk…ßIUeÝ¡šž¹ 粋´rb¦‚^¾Ñ~ÖZVvöãÛÙÙ_´³[œÖná›»Êlü!Bvb¾–îøYICl´#Ó†¯øìz:j7ò©*xmÝÝÕ£<³%O+nà5QÒoy5&ÓÏÛ¬0Ëža_.Á]^•¿z`ñbsóó/„׸8ßésý©Ìs`‰²8°E\ÿ†V8µÑ-s±2Ç3ŠHÐ2å¥Gé‰êÒÇ–Q%K?\Œ´csæ¾GÛ|®G7}7+{ì' r[ŸñÝ +j4·òͬµ51–r–³¯ärµ\Üê²°Ü%/I/k±å¯Î|?5N%wÐLïñ²yS6¬fMŽ)ªÜõ)jyÉtÜÕñéÉüâ³\¹XšÑs¢ø‡ô­AA DsŽ}¼o½Òı&¾oŸj˜p3Úø|+—ÇazRã}e°màúµŸ<ô~Ú•ò|L‹Üv9]V uí^ë…ÜTös%?Ñ9 ì]gzØò¦'¿O±ò¨8)als¼àLv\)•q…œ…ã{i\š”$ŸÌ<»8™ÅéÕ1#Ktý÷L”»÷‘×ÁDÂÇòVò¯pµñ8ãßãÍØ<ÊÖQ-ª†Š×½³¦>ò¶™G6*p,KìºÖo‡Ë`Yué1¿Ãù¢#)âÈ÷¶ V³”ê,æ­)æî¤ôˆÂqå +¢lÝDê̘æ%Ú2Mû0/%ÁX‘™•X÷¾/f`ˆò¥ê,çkË5ãiYp7=l•ݿѻQ|Ö>*‹eÎÚ5™ÐÛRô\#ßiqU|€Ä²¶]RüæV¢çQlL¹#Ïð3sÚÚL'ß {âaŽù‡ugÅ‹ùaÖÆIû=veAÅþ¨Çì²zèQÕ^£¨­åiùé O˜ÖÆþågVñ‰¾õï5ù0Îy>zÞ-Þ¿¡¢s>Ìn%m·.iÆV!äÇÚè­ãÕìUÎ/—Ö¥ú“‡›­yl¾ ‰ãºj̧EX‰µcŸÁAg6ÒüJïøékt˜.Àá‘^–†ðÙéÌéT˜3þ9Õ¹Üð¸¼FÀ7ÁF}CÉÖ&›~ž›7ì,ús1ó-Çôê;ûÇèE‡ÛÓ^d]u«ªÊÚp×Õõ[ý,ÝOŒðŸ´›8ì’ ’—gÝê”3Drì¾ }v½|²Œ<<Ìi*žJ#H&öÃܪl°EñÑ/MÊa¯2§0jy’ZT}Rœw_ÅŸÒ^jy!ÊE9¬Wa×ùÞÂÔþâ!Ö7º%ñyœÇã˜t»öázV­Ý:N[¶ÇUc/:8! +[¨xà»Vû6×+í`v?ð´<в3ôxuLàD]úÀ™£ÑO‡,Ô“ˆûøÕ{U±©Æ º­%‰vä×¶ÕélÊUà[G¾`'(q…nkÀ£¹?¤‹qçY`YSÜ1¶ëÝCcµûþ9¢ÏÛƒ,kÒÔyÈIØÂ\÷—n¼ßÓ;¼w&õ™±Ÿüe(2_¦Á׳5< »Þ`Öœ³ýEµ¿èÕì¢Dg4;ºí#rétOµÙ×H¸­Ã{¢=:Õ¦íѹum”OÒ>>‡ V94#ÿ»Ó}ù'áë;G­Ë>¸xºÊA‚Öì»qXz›=³€”?å¥ë|ìç]™ J˜Å(ÏŠOy`x¾ÞÐÇîª}~¶"{|@µ@bÒíäjËN(ïÉ!BXm:i{­óP‚[˜ùn4¯ãù¤É¸ksöÎecw7¯EË@›Wp’ûÃ%ÿì= ’;8êÄ@ï;ßX›Q$뢓Üö‹ÄþJ3Î)-Ø.Q`h¤ð#vÓ; §{Ñ”‡â»_c7Y–ƒz—æÅî7?ªwâb¿ÛsĈD +5®"åuk:Í9'¸ÄãaƒD­^®6ž/kÜXmÎVcEâÆŠÔ°Æª"竜˜ûéæÙÕó£swÿÇ Î5än„RE›Y•¬£f#È>áîå¡—3ïBk±³…Ö+,ëß@-‚Žÿ°ª„=c1jNï´ÝÒyÐ{¾éÏÉ1ðfˆ&óêVIžÀyµ›~\øv­ÐÃ>6¬,ÊÏIþ¼}p¹«bò98f…c?:n`÷d*p³t¨…[°S³²Ìé#z­.šòh½67Ï +dõûô:ãb–æí§ì–àËFÖ]¦™þ=»éÕó¿0Ob 8n|˜¤WÍòÍÒ +ª•±Ãf‰¡9½Hä±ï·‘ã(»Ü5‡„]Sí@¯Ë¬Ê|‰1é=¦P“IHqäÿÊõîž?™Û +fU½õ4ÞÎ8å³Ï2½”8ËMSè" S #@¦¢0è8}5" ßÃdÕʇI‘©„±­Qa¼M¦aÌ ² Awt#Œ»¨“2 SNéϺq)Œ)¢‘2í„q}7Ly¦ojTW)¢ÆDé™"%a<€Ò?PDÊ ùŸøYÌÿúÉ¿Q~ÆQB‹4Ô˜†*‹p˜D4L,£&Ód&MjÆiÆ÷ï9Œ}/å˜.õ£a|*—SØôŸžvÔÏbNO&ŒÏ…ôMgFJ9kal Ò7Yw(Œ=ªš²ï„à‡nu™üºSiý'"à>#°¹LãHð“RÍÕÀý…G€€¥UÐa«B˜\âC˜¬Û—0áv~–AO·þ¼]LY5RnÝ0meRÓ.}Ç"ËMó¥SÊöjµú5šÍ¬LòõÖç:-u>\"?¥Û§ýÃû>¿·þF¹HCUÕ4JïGàå’¤³Ÿ4XmP‹À¡DE |™D€ƒJ°ì#`||üä¡{À7ÝôUcWIñÛ@àƒ”,7MÈ|8Ü*R“wåkD¹ó7ß'ŸAÖrïGÁ(ûb±ßØ_»¯u²&_-k{ÁpØú%]ÌïLÖ>Œ ÔNézß$‚–tV:­6"¨‡¤]  ½ˆÀã\ŽÀùídþ& G“9úeçóòE6D0¨Ïíz~æÜ-»¬}ÊxÀ¿…%°~×ê-Í_­¹Ûk³s¯ËÁ¥g_À›îÑ+t\„ðÛ»=ÿ€’›Æ"0ÖƒÞßr0‚ +Œàö©ô“R%ÑvWX:‚܃AâsæFÏspy°{¿—³Mâ{Æ>ï7ó§òkÛ×ÞW?‘Þžö†Ïøü<EPx‚6!»te~rNbô}Cµ—\œõon’ð&®oO¯]Éæ¢r ¡Yù²7ø"ˆuÒP¿È7 °–†zÜ¢•–Œà·É†&ùÎIoQŽ÷¯ÏÛ6}*4……yýªq'¾þ„Žðѯúåcë`µ À´]q—ÏÈý!‚ËÅ4Î¥!ê@„DD២Ù\ç‘ÝaÿÔ¹wËKòXËSr÷QŽ;ÌmÛ0¹‹ŠõWÖhWÜŸY 1OÓÅ÷fÎ'ÎÓx¯QC>¾¢^èÑ_¿ÒH‚¤¥{’Ö:‰$ª‡z9Çóð'ßl£)ìÐA·sÈÞ +.Ð"xÓO£ldßRé¾Á(ǰÅ(g˜µ€'Ñò«¾òÎuœÏÛÍ·P¾he¤u>—.ÃS©¿˜ŽKf—5]&òqÛýèÚWz]Ô˜¿:jߺ¾:xMýÌ+¬âWö&÷Eº3ÞÙ¹ûNvŠ´' ï˜,õüÖã1x+ur`ð‡ŸÏ?M£WAº³1äG:øRž§¯7ÜξîdýùÜ.ðPGN7h\1Ü7F?Wc¨)]n¦îå¶ +²2Þøêþâøç}µì]øò’}þ|C™§¾óÛ&ŒT7[¶ÛÛ´ã#¿¦àÎEŠƒ$”ÔS–T‡%õË)³ø’^CÒ­yü~¯“Gò4‘íàw³};¸Ø­ð˜ÝÈ¿À/âqšÏбA\T‹´IM^ò¤rÍážÛÓ?î ²8$¶Ûu T6ŸxÚwô±¦Î±/i ’HYÂV´2 Ä3 ³âX ãïå•1³þÍòÊ_“åUvãŒð2Y}£\Å_Q~ùtnëõÕn/LãÚ¿ŒËè„ê§ùsoéïÉÂ×T¬Ì((*ÅÊØ £.%7^`Vs» }²Žú[a Tèµ4œÐꊑ'ñ¼'ï"–Œƒe)` ïÊeÞ•^=^î·|£,<ùYHø݈xÑf~øþ!B”Mðs+B®AO³œÜï«Ká|}ÍBcçp²åñÎu]K,7ÜhogõÃÞ-oÛÒ©¹Žó3J:êõÑÊ\&Ñâ^‚X0ÝíWÏšP•5‹ŸFÖ[[¬m#œ•›wV­6.Ï Çæ"nrÑÚ +ç$øf|þð³ã?Sʽßö¤eZ'UO‹ûrg¼ˆÜæ¸O~n}«9I¹*¥ÿ–_Ø’]»°VùYMBô\K¼ÔÏÔÒÆeZxÄÌ”~:Ë…ÿ¬Ê‹v±¡Ï»9üÆz­÷ì8Á3øt¬OÍIg:e‹õóÔT‘÷ AÙl¬¡ÙHØï?D¹Ü#úÙño×AoeœKªs0^‡æöžQ5„¡¬pLç´kä`wKV¸ÖJ3du¡’8[žË +ËúYY´@Õ:¼ÆÕ¼7e -2Íð¢ÐÀ»Œô‡‰2ȇÀ¥=„ôcöýTçÇ0¹Öߣ^öGÊráýÁ Ç8Ãóã’Û̳±í̆|ÑŽ}º©.-m»ó7~£v±tbì•ho}Y»©6ß¾üù!†b©©uc‹“ù¸\ Ío‹]Uí³)êcz—Û £°Ý µïþ40’SÖä[ Ô?—D¢L¥¾•gnƒô¬ú˜xÝÏxþáÕ{n_övÖ¸ž¹1aèµ×4DÄ¥‚N62Ù[-¤Óg6:µ^qV Ë“Ë5W%—Ë÷ïtÖ[A“²C ¬7‹ËÌ›qšô·¯S£C¸ ‡G<˜½I¯¯c£_„·noξêq¥ê”0¯-©‡_zóéÝïݬ×/¢P¶6?Ó_ž¦>ð®jø´NÕ5jUP:.7è°“>ÕõfðmÏEžÈ „öš.”]¸ž›‰>;¯îö´ä®ý±XîÄlóŠæRöJ£„ØgTYÃ\0„šõl­²êU`úHÕâÙ½+ NqçmV*÷©¸è¼÷ѹ+‘šßõ¶×W†ûgž„®uÞlÎÆFŽM&ÙsJewU¶ŠèKÒDŠ9>H·ÅüØ0\Þ`øémÊ+¡"^XÞq™VøÒ=ã Ž†‡ 6Ì“Ëʠзúx™ê÷ªXsB5àú²ÛB)µÓè©0z6î ÙC›•vrgíD NdXû¤Ò=2çì­:´Ojt>Æ+Û<Ìüúq×jòûµYÞ­Äj¤Î Î÷§vÅêNjÇÛxLœáìÖ7óç´ŠF·ÑèîûCtzŒEZ‚ûåÞ¬Ô«µÓ]KPd·ÛnÕéN·VçÉ~“Ú·GÕñ¥e®NA‹m’x+ “Vþ™-½”µ×2Ûòó‡t1¿3Cô¯ÆÆDNZŽVO{Qøh[`UW·k_ä¿ô`Ê¡ñpÀ’{¤Ak0Ø£!a4å¤Í~ˆÉ‡SÿN÷žK +oêÕ`“î§M£°Þ̲êdÒj¶H¨V´sÍ&×óô¶9[IgÂ~¿?ÄBž•ˆJ—`‰J½z"ÊÉÚ#Ê/ñI,êÊ_Îøiu9ª‡ØRî·)wîâa–ÙÃåKâùæô:™LÄ*Ч‡³71À·ƒf¿ªÌÒKYÁ(ºX¶:ѦìtzN- ‡¯ +Øf‚Ö²ºõZóÖ¬tš¸<ÕÃBjˆï“Y÷;¨__Gû¬ ]o]æL½µfÒ&1~öjlxµO <ÿ`´ÄETNÖnƒ†ú!ŠX‡GëÅà<[Lù™È2‡ò®7¸Y{¢ûj8©x‚¤¡{öðEû$T„ö¸¶PZin?§¹èxáB°áéa¡ÑÌcúvJ k_[âkT%½âª«¶[N¾ +AÇa|ÈzEï~ž•‘wu+£‹ñ?Hó3ÕŒzÛ¯ò´«¢¶*'G™§ÞïÕ gCŽíaz8}»ÔvRª“¹A§D¸G«ÔhQf£@¿.ߘy½37äZDBfM ÉG èƒêвoZªÂóW¹Â¸Y¶ô¤<ñ½=~#Û6>Ͻ!·ÌŽK†Vz@á£ÄË/·Äówç +ï/­m\r © +ªµÍìÖ¦vgýT/kaHmÝq‹Ì]Ä +ñ,¬i]¬‚ö½¾ ßU¼•;x%˜–+JK©sLQìR}Å>Ì¥‡Q/|¨Ü°°M$©@ÞÊL)ï"ŒrGY +M¦“=š/MJ¹ªê¯ç䚘ÒeÛP¹Ëþ“Õg¿™^^&CɤÞmŸ=£N4nb Ä‹¹òŒÐáâ«Aç +Á?5·…Hô°hÁޱž+ð ÜdtøG¶vÞÜ®ƒ|>¼!9ËjÔsÓÕ™ÉM¥ñ±¡ØAlÜÆ¹³còDLpô”2M× ·Â0)#é1Tî–ÂÁ²[ ¡ú´õÕ_+ê›kíèà<æFÙ=‚Oi8¼ø.Êù¯WóyŸÎõ¶Ñ +õHK@Ÿá”Í?•b7÷T@ù%K7gM'¥æ#}UO‘ÒÎ>¹lÕk̨Ø©?ß' °±uB aœ°¾ùZÛIû“Ý÷çzż:CÞ÷§TxW‰mÅwß§¦ß m*=¤bæÕê×OÖWÚ³'úž ·ƒÄa$ÿ˜\mä~÷Ð{,²Qâï¸@ö£ÖN~IÃ"Ó(½Á#‚ЙAµ­Ac0‰ ŠÂ"Ûxµûá(xOƒ ´å?óÃrû®‘cÕ'ôéÕnÓwo·¤½gôšeöça-ƒO PPwÔÕpŽ]Âa!õ°ÌÊäQD—²-ȶ}}ƒ—Ïå[y—®¨&ÖÁŸEV3-°Ý þñ8Ž•R„­óSÄŸ.²/hÜ#Èq_Ì\vÞnê½>ˆÁxÔçž`̈.òaö1Æ£øî\lGÁïvhø7©] ¯ï=^ÛI»ì‡lõBÁ‡®¥²AVÔwÖ×¼~wÇœÍÜȰïÚרT¹î<‡þ"rÿŒ ÇÉ`<Ý*ð¦›%|·PíB0‡›EíòE@£Š›Ï[ÙÕóç„þíuB™«<øÎ/JÇ[YZßÙ[PÚ<Ó¡w9žsÂ6ï·y%ÑÄ,)uÔàAMwGÛž.æjÒ±y,üÞ|Uß>j;ú‡äºñ7Ï>7?Ó_"È<¥fƒ€ÃGä!!ËùÚð·H5¿M×Ã'ì ¿2C·6..ýY;›Óyš|Ý¡É%îÌàƒ³ ?kç­Þ˜Y^฾_ÏZ?ÛZgz©Šý‰Õ_ÅÚsB`âÊ*Œ<ÓöË~ìnÄ×ßqoç¹Ã·''ã±ÃuÛù%‚a;ÝškÇŽFÛ è%[›×÷öº½(äz"`ÙÞ¨x¹Ä²÷:Ÿè´Ac&˜QÓÕã»´µoѨqî6VAà¸8ŒF¦¤˜{SQò/ÓØO[7{w¯îE‰,´jE¹²Çã¶+ª·ÙøW×Ú´Û¥çú‹`NÆ=Ã^ïÌäöK½4^q‚Eíâ<õ®9¥Õ|w¯+ lKÚE¾ dR=]+¥›± Â÷q{?d§N5)²èA?·«Ê¸7÷³šGíì™ÇÈsšÉµƒ¾ÜJàe·y“¶¾i+ïtÑ~ìKÙÜJ‡p_—À>1[lÿ¸Bdæ±B þ!žæ&žxîúCº˜ß™ÖÞ÷tw÷_^R^›Wµ·ObKW¥Ä d¿ø××ú+à M1:zçeR÷ Ý]¢²;W¶¯ÕÚ|е‘p´¦&Pvõ”Ô#´’À/´[!IÎÇ­Ò}yÙ Âå¬{. +¶Öì ‹º*mó&TF¾qͰ„Ê<ºüòÏÖ´Ï}ÒIϰ×nY¾»ãìÖ÷yš;ÏOø¦3Õý¦¿ÐD XÀ²ö\"¸ò³F|·k=7Þ[÷ÚZUb±bà^W!â?<±m%‹öAæÝá»Àõ»—êì¨:äÔ”/£iþéÌ'ÛÙŽçUäÄ>Vý+Ê<囥Tk°¼g…yåÄ +›¦É>ü‘¡ÿòq.ºãž_Üùz¸¡û“-7%}ëp â­±r%Áþ®.PÔ&ì`ìz`×W«ñ59,ïèõ,Ô;û§ìÚ®¾æûqðåÔ¡ ÎFÞ žžšé.¹TÇĤ8÷Æeš³ÂY’8éôy;ôæ<†éö´= ÛRuKoâ»I¿»!öБ!NØÿ {”¤ÉP¶ƒïpó2zx;siaÒQ¡&¼š‹ÌÉž{ý­ÜÛëaá<\÷.¿¼ïY¨8}! —9uòjíüY®6¦X‰‚&¥|½0®K5vIW²¡Y©Wbè÷¦¹}÷´:ê¾¶ö0Þ`ÀP}»C•ö×Ãø¾6FTIÓGûÙõ˜¡ýò +Wûþ<†…zªl¬ ‰¤iWFPnÅÍDö[ûìH[k.W[MNCjùÀ™©Ð†ÒB~VÕ9€fh¿xÚ&¼Ývî\;Ý¡¥¬wÚ®¤2AKØ ´0Ýî©¿²æxe)4ƒ6ï_f±ã â¸û“ìôiaÇf#øOp©ë²ÏjÚfñ ï„kn”vuŠ£^K#†ÃšÒ0McÖ?ó¯mó*VkJß^) ë½Ò·¿ì]·…c{·~Pûbø?xæÇFv!¸‚›òÁ«´|Ɔt(¢aGˆ£éœÑý¥ƒ>Ëüæ¹!æ1½észá8Ÿ¡ãÕzbãsm,¨Ä™%ÈØfÚ Ç£»eý;êc24Á6`Q®Ö·bV™Ò»uÄ õèkkªº}Ýg'=.Å«tŤÌwŸÔS£ª +¬Q|ˆ«pæ-îb…ø`´úMY55e½wðr»Ÿ×¦š6Rù-¿ÊÒvóY¬ÌN·"9-ÛãI¥ÕYÏ+ï™í"ÖéýÄ»ŽeÝÒ˜ôŒáqÒ¿t'hÏn+”Sí‘]`˜.±X‹û2È/AúäîâäîÏÉ/~ÌZ66çkjgsþöæý4O÷™}8Èœ|˜ëÍ®I>—¨ûˆ<ðéÍ¡m±8½r[lìªËú¸Qz˜Ïó» •…³i“ËaÈ”Õì©ïÁ[ÞûL{½{—Ž(wÐCº¯N«Ôù&’½I‰â²­ú÷c"ëÏ–¾ +-ýùåÚºQRLµ=`)]ëð˦úÏ=t1B…»½sÛ-åo û¨c¡5–).¿UY_*!t¤$xÚm¨“£Qe1²­8(8c¹¿ÆzOÀÇWjU¸ÝM©tvy £i«@t£Ñ†'½l<›sù¦…¸j³0iºÄ­ðÁˆψëGØ7 %SËPÿpæ0P;Foúp˜qEþÈÕÍšYvùå³?`À£Ó–{Dî»nVp9¸Œ™|ßæ¸J¿Ü{½%•›Qéå~Õ}›ÍCç«–L26°9È—¼6 æÂÖ‰®æš—^iL(ŸÖ\CHî»Fí8xÔ½†Ö=¦<­¯ž«]}e²Båúê°QêÏèxøÅlÎQC\JÛ×=y¿M{ëÕüî 1³tØíî[ž /”ZwŒ¨ÚÚéU¢:™<{rHˆ\ÛØjëv.ü¹½ÚšôÜSózüÜ›xúÕ 4Ä^¬¿NL»ö¹Ê“ZåjèÌnUE¬ UeJŒ«Ôû°«R¶¥V)ýxøÃQ-îuå>ÊiÛ¨ÚÈÆ„”¬¥°6ïÅŒ;íÖ£ñ«wèÐÐG­õ«c9 ð-Æ­"ìGÍrÉÛ j­M¯áÁÁ¬±:U¥úë(õÍ•?×¾¸âÔºÂõ[=xQ® +¶õÊh'f_ô\6ãϪÌj3«ŒÎ›`¥û n¹–ŒO{¦‚O‡¿¨cwiîZ3å°67þvé±Èr®ûØt"vòZKÊíþc[©tb´kÍ€FüSA\bßÕ~+F¥WhwY©äD»S>÷‹lyŽ„2f÷øuœp®ÚpñR$'%¾ïã¥*4ìEæ*èÀ,¼^h\xÝÚtaÝ6·…æÉ<šûCö¹É¦‡_ö 6ü¯š}nº^¨áb1­6y–é#‡þ <Ý7»¬à­™¸MÕ «Cñqîº|üKóƒŸfŒí ÅºÌ½ŽÆµRvYK§Ëzˆ5Ú×Ê: +r7¯ã1}WõÝç(H‰K@×3i ûâ€( Àz  J£uJt(Ïj¦?2ÚÞp…ÍxÉvÌtp‡ç£n¯·è4̰Z;\ûh¹h/Á·C2J~®P0ž0ÿå\ð½4> ¶ tI…@Ý…”a9Elü,Æõê]§,E G WZ¹@/#)2ö6ý9¾½N)Ái½îqô¨ÂñÎjìWì—ÑæÃÒÚLcÍyƒæã®dõеvÀñ…}Êa¡éÄù|§òAðÛÝýWÇ(¸å½ ü/ªÿð+)Z#åÕù¯\ïOioœ ã <€^« ÿSÚûS…¼NGRV6oøonº£Ö “Fç&½Ž&üÆkßcØ2È=XaèYn΂( ‡£bʃ ÃQú! Gr6}:ýìî›)‹{ŠþJy‡aÈ” ”–²­¦¼;aÈvÇ)AúŽ1sM¹Âp’BêêÆÿ'Ùb~f…»¦0i¨bï&œ†:|aô¸Ya´Çý0¢X(Œ0³†×( õØKC=jË0Ô!%…JãÜ.n)ú3å„¡\Rhôgmx)}'ï´ÂP è”ç6²g}nò ŒZï0è0˜Úääbæ_ò(þ&¡˜nÒpr +wh¦Á¶Ì0ö4ØMÕþÉܶ'Ÿ0F,$ŒÜ|-Œ”!F¢1 £¶Nk)§kJü £Y9H%)Û\Š] +#i¤Œzaﱚ|µÇ:`‚üùSP î7ªYvÐðø×:…¯_€ÿH²ôú”¾âŒ4Þ†&g. _Ôžé‘îÑØ. a¼èÕØTúa\ ga\lRÔãÏÚäß×°?Ý,?ß_Œ¾Hµ ìŠD”—?Óí¢ñ)’—þ{~@æ~iÞÆ]ŸßvÚ˜ëžæo7|WÅÚ¯è_ËÞ/?™[Ý8G€­™é«µ î[׎¾ò‰€| K,†ÉôÚ “fÚŽ‡òÐ,8ÝÂe€å ùS*@Ú{1Çξã”l¹$½—÷¢‚W³EÅÞ;øyË#»ëÒó»­'5,1.T“v3¤Ÿï3ëô´+Û±s[†õû­®`öõE%·?D`Ñ=G q7SÎzö?éì òˆÀfú9¡óÏh éÑPþæë´—wv|÷•ï¿Ö;xìɰx†ŸÂÚM¢üÞöqÝ…ÁÎÅaèÞãq>_BaÞ¹¹ÛürSº¹‰O^}dÈ_ä—¬Y½r=ÑuVs{†gÃËÉ,µ¬sÇϧ<Ÿ~‰Ài˜ÆvÓP­A(uKY¸?EÉ! iÀgÂO°«œ×eº%÷¨ŠÅûÍt¶0;eÍÜVüiqõŸ—ÕµM8ûËnë­(|Ÿ­ÃyX X~ŸG4œÌ³„ŸØizÍ/’ÂZw€®×æë¸r¦æ‘Xö í]'ô?D W²~òÐ(”FÉVŒ2%û'¥ұ꿗ŽèxûÃÍqsÀÈ¿ÛߚĹ|]¥h©›uý¬ï×3òZOh ŽÍYw½0‹ñyc,WEwä«¡×"7ë­=óÍi[þ\W¿Þx~Pýþå/¦¢[ª®äŠ3õ‡ýÉ~‰ ZåABéAÁøô¤-á·xjoqÞ‰ÕÞ?8ø§œçúQBÓJœsÎçÀ¼ª&dðª‹ýUõ¸&§Mí£=ôç´ª´…™J}«ƒV?Êh}Ó:ðoJnßöãd…ÆH¾/I®$‰¾uµW6ØV^Û¬íÿA;Òü‰2˜ƒ‰ávåX·Ëâ'$w@Ÿé%štgkìM܃OúŠŒœcËj´<&*°ÖÑ,HY­ºÂ\¤Æ~r_»[~1ØqÖ~*?@u)WéôxÏž±ñ‹¨óÿèºÏ-Uµ.\Ôׂ9ƒœ3"’ ˆˆY1£¨÷À¹Öž_[gï?UÕj–}"Ê/¡ëú_ç åz>Û ìtŸNmêØœÙÀ 0±qí¿¼ó³|´mv@_?•Ëø¤Ö‹æþ&Òö³`¹m®s¡WНðaÛ‡ºg>}êmfE­žå×crÈ]¿ã(YG—»WõÐyÛu‡êó>ØLìTÁID³Í‘Û…`ç=íf³5›+@º¹¡ßÎPK¢™¹“pÐöw:¢Ñ§>.¶ïšç·Þê<¬Ôü»ÑP„^‘×#ž“vž>´îÖ£V$øO]OQ¦-&cS<>Ãlœ–m¿<¬óyyÚáKoT0cÝe%x1çÝ6=4bpܪó)Dm»G”©XKyØ'ÆÀês®îJ¨ß' +¹P£Þ×­Ê>VÙP]Y‚‹‡R6w€\ëÏË’v:vĨS"Ôoh‚¹bÆü½³ÝóÎ]/òÎÃàx7ßòwOQYCènµÿáŽÞ½0‚râd#6JƒÐzu³zî }vV-nñIû=o¹ÄÎ-Øé®l˜Ê[DÏñ úý™3µY|«Áe1W–{%oÖüN®×Ô«Ô*’/Ñ Ù‚p™@þ>`<ò %nÂ|³n;Ž(¨v&å¾ìL®Pìû|18*üйɠù?ÜHÔ ˆôq×uð¬/FdMö…›;S|×Í–½˜ €©â¹ª1ì¿:¸›Ëæžýéä!k ¼¨Å‹í(•ƒêÉõ5¹Z¸Wã$X×ï µP#lfgGcsÐÜd8;2Ex‘0EdK0\àêÌØ:›£îzÖ•m\ó’îfMßþ]…¦»²2“s79ÏG„ëñhîê÷1¼O‹zLŽZ}2šbZ^µ9e]–Ty—cLI÷£ôí¶4®¯üš\oÙà–ÇçGBçë+Ï*³]¦¸i2´T— j«ïJ…Ô'¥¶‡(µ]9Yºòšè´Ôšõÿr–›å`ËC;¼c}ÎÄOÅÓt4»`ìDé)œ5)Ð8{V¢¥ }Ÿ`U }¬§ÈFËÍ(IP 4Ä.P ð3žñØurd¦§dh~aÂúøÅ”ôe‰®ÊˆRƒ;IK]eçw«ü¹Þ¹Ãc&A­¢¦ }Rßq?´¿DÇw4ßTTþÏU_îêZ·…þ!‰_­?Qô¥±ÇÕKÙôæyÏ'mɨ%ÙuOÑ*&‚àV“>/×&Gùã1ä½€ ߃5½~]…Õì*9rÐw[„9\øm÷Tp§/L±øŸ±ø’ïât’q'=3dhø-BÿEªÙö€œÑéJÇV@U…Á¬6‹´I¯Û nfK|ƒÇœb¥Þƒ¯’áÁ_ÑÚkuÁ=y?¹…,7{†*\dz<\zs‘gt½.¬¨V ϲ]Cn„ÅQ_Ü•Ä:öœO0Œ(Üet&!c”®ÞÒió>î tΗГÓÑY異o»ø?ìrÍë8¼uk^`)c=6ý]»rþí4Î-UB*Ñ–Ž'þõ<¾¸ÏçYäòM¨Íò†@1’-ˆ´: úÔá"Øäé€Lˆë +¸mq¬X;cS ù >‹VÐÜÒB¾‰ðŠmº°ÔöÊ.–ÜË3ôû*¬P¶SŽ©=áµ–àêÕêõ4ø"t“®ÓçCüÞZ]p¯ó]0Xi]ý¾ý¡þ%k‰7ËähÎUCgz²!kDö ÍÚ o  ׄ J]¿Z`—âúNµk›á—¥*|Ð ö)FK3 vK-6÷&"— ¼Ù^¸Þ²qZ¯Õ.Ü»†ÚNÇfÇ>ÔéAÛví®ÙFáã¶"Iz®tzN·ô.Tè)M•¿,ðEcqÖÑÕZìF\‹g·Z‹G)Í©ú—?Ñ~G¥\wž*--¾j¢³cÕúhƒŠXeÑb¥ ,‘ä%hè§Þ`4ZwWŠÚ“â(nã«8›BolAÔžD À±`€ž4MŠ6Xð¿%ƾ¹á6qS)µ+½ìb~½Öo4Çe=Ÿ+õˆÐ™úàºÒꃭ¯Õ!FWþâ ç,Rý§þ‹†»`dMj Œ»•.X“2wB @ä7?Ĺ=Ù3›Ö +—ƒåì`.¼ÖO‹ï·~ +ÙZ}(8zºQµëµ!×l[²j0sÈrêhY‰ª˜h•¤ZéT¦·¥\!]Ö/û ø)˪ü¹Øýòg£keŸ&Õ¿ŒãX˜8bqf­ËAïóìY”næžäÂxÛ¥.ÓsÏÕ÷Ù}kpk²ŒÛSyµV·ü¦~VØEïÜev¹Y—–í˱´ì@qI¸)ùRy¾i7\MÑÄ¢RÜ™EdÂôàp+ì-¾Zè÷>T¡Oì|4‘Ïùhêe/Ï|dÂZ¡é1ƒÿà‚‹kQ}¨çk E6…&˳_§Ûz:ÐÍm»UD›ß6¹©ÜZÕ|¨wg]™užAi¹týbÝw—ùS8É^7ùNyrÊ]/÷Wζë…Ì(-`¦ãÌD›˜€­ÀmÊö `ëaÀ.tÀ®µ€ÝÊE0ÀîÓô÷î‡é_¬–#Úº–²OûEæ|04(zØ[ xžpZ½s_,´²øjj7õ\s•ݾ¼j«âv-  ê†9øÝ ¼GlRŒÀéÍÀÕòÀí~ ÀýKÀoÕov º£5@ôZO€ _@¨{ 4s.ÿˆ‰ĸçD,ÿ2˜>CåøÙ)Í]8ú´y8[Hº=3˜U öm}ÑÍ¿W§LþüË¡»Ú¡ØXÕv¹ÛÑ]øŒNÿPy²ýüy±›1±r±ÜWâ…t²èÑɧ{–]€ ­;@Fh _ Š7 Jþ  ©ñ‹TÛ ˆçô/ª¶*õ…Ù£&2 ѦñùžÁzVhBEüZhtj¹wežoÜJrw~.@R÷à—~ºO `—þ×ß@"ÂýXíñË¡53Èù3ÿ'£¦€PÝ8[ΓR6@Á½Õ¿+Nüº °¼ÿëB(¼“õ!OÛI>óhž|œÀK>Hü빈Q’¼_N’Чq’0ô6e' KTR–½$áš\Ê@O9¦¿ÌWƒ&ý=Þ>¥l)ŸO’bŠÚHY¥ÿL¬0)“?±Ô]&^Õ<§ÄÝ×W[¿_ó¦—üßH¾5 H>ßË,-z6I>ÂIÞbÑN’mn’–Ø^¦·´ÄV!Å…þäЕÂ*)s+%ñþ¥¥}Êô’rz¦–€²’¾õš×‡È‹9\…gÑ£'Y®Ÿ%¸ÄÒã~ýCu´¿üȺTÿÏ7?’¯\ž'_ò>Më FÉGít¿¶S&ŠŸ¼‰`—$×KZªSO• :šVñÿî×›Vš§`ëÄ+IÙãõ•¥Ë‹ÙKgØRßñº#äâªcÖêsÝ{4¦Œz׿þøvfOáÍ,¼¶·Îò´¹u¢Çöz3›ÿ|×µYò>Çi±|vâï¹ùÌ'ãäÃîɧ’÷ +‰“÷tVJÞäLÞÝ.‘âH‰· ÐÚ9/vxöžáí¶x–›ÇU\k¯wÍ^G÷c¼»Ý!üœÜºô%uÂZëò,³)îWó<Ëó‹30Ö7'®Ì¬O… ¼:.ä:ZZÕ_Þ@©9M)§¥ž.vò.­äk^ò¥uò¹ §äÓ7ŸÉ½—“\õÒz.—›ìÂJ¬¨ñè–ü=Ú,•{»¾7n–9×ûù2½¢Ý{py> +› •ç™×¼sò>qœQ–ëu8!=ý7ÔdgÙö!¼í¨œŽPÐË}ºyYûleØÍKY޼òRºéWèÛz<”~…Q~Zþ`îóðü +‹Ú#Þ>›ïûépÊßàÚ´ry­†­óg7ìsÑ8ñí­l_9nÇ#ýp˜ ³øáæìÑ~¨ûþîz^­v0õ:mG‹V²Åx¿¹þÒ-a‚œµ\w‰Ñ²´ÜpÇÝP+¼œP}^í¿¼Ç`–‚8)õÎÕMïËyÁŸT}¾zÊ'`u7gÄúŠw®û3[]"⟇ßÒ÷ Zi‡´jíxŠtÓƒ‰"6˲ëùRÖ…ŠÜ_…Û±½*Ãko)ÏËp÷)Cmë䃨‘] º>¯ÎݼíøO±||Óþ˜½•¼ñ—wŽv¦)¬ýÎÍœÑ;· §¯Êº;y*{`zsÍ•yfã£qì—äÑî¾B[AëÀ¯e×V˰–,7›z>Ü*•°Ö[ Ãl÷í.M–˱óûKQæîtfúÏïfâ}`=û´äÇŒ6 -¯È ìT\…Ãɶj&Êm0˜ÔAŸÔ5ªÿ#}˜ßöß½ñ«Ê³£k¯¤sØüÒ'I5©“"ä¾7WèÏÐÚj5ãFáaÝž/†noØÃÖi>rZ±?Ô?³Ï,θQåb²íñ8“ 9¦«™ÊL«¹¡<Ù.¶æ¤QzÍÆºÒÛÁúupsíY¤:q=ÒÑa©9˜>Q3”¿¼sïÝôÇ¿þ ‡ÛúiÓ"ŃùFðÝxed×=· ó×üaÔ } ns]Ÿãm}4ûÆjà…¶ž®GX4­žáëDë’Éøè²ù1x¢*#³#€îÍÑ`Ž”ëôQ¯±m{ØTaû°æÒ0[0ÃÊßs‚) Õ,‹J†ü~U>Líé\ +ë—~è »¥§t- +Öª¦w*‹KaטOòktôÖ‚W^¯“}?êoÂ>² +ÚÒ½‹ƒ½ód„³ƒ‡rl{oác´R´Ø…Õ² +X€˜‚±ÃMèk<26ö¥õÁhZãú`W©ªr†¤_FÐ/éø]ŠXbámR™ÙÑ¡hk[_ïÒ«í’†Ã!¦6‚Gsœ÷ßq·ì-5hr¨Õȱq‚d÷ ç½Ó'î°÷옾ékÁÖûËÓp³ +Ãzuó5úì6»5ˆ–pЮqÝb[Bÿ¾;+Þ—Úó䵉+ ÁEèÇBŸÁý%>®ÙÉ5—ïÛ¿¼|S’ txfн` À ß÷©ìvO‚ܤuëWG¶èÂÎëh1¶oŠÅƒœaJ]z4T[mÏЫÅ`pÒ*ÛA{YŒôÞ6÷èò¹öÀªFÌà¶êçTJ¥]Y”[3…»Üc¥hÿ£—W,+dpÌÿþñ¸t©é¹bÕÍi…âªñ È‚]{þ|’Ô=¹ “tnš¸1ô)8dX­°žÃLéœã‡ í¤ ¸ÍNkƒŽºpuX°§ýÑl¸Ð¦ u£~)RJ•…ëä”âkÝ”%2Á¥mБ%•ó'búò<‰‡M—'+>e.ƒÉ ÿrwÑZv"ˆÁÇÜ„¼&„—ŠEÎßòª7®·Æ$"`Ç›»ý]KèŽjÃÝjÚ3¬M :žïÇ!¦jɬahä£ê¨L’÷”°“JÉÍïd锿H»˜]ú–^õhÐÎí5/tœªÍßÕžwŠÛï”D’¿éK6ƒÎ þr#Ä÷ä`ïT}-Ë¿¸« +éî¨çÕóëÆ¸{r¾¥ Yrk•»•çP[5ŠƒK³ÚÒkíã£/­Qf,ªl§*‚䲬9Ž´[šžÔ¬8KqÀŒÂ9 c¡óŽ +¼Ã”Û\R4‡—盞­Ö¬§a6¹×³Ì&݇S}:ã÷ùãJo/“=ÁY‹y&c‚œ­Š6<9Aã†ûª€%¼ÒyAséßìuä½®iïź«òœPÄ¢ÆÈò—Í:ˆ¥=BibDt‡"dC#ÁŒ‘€¿CÈ–G,áÆnŽõΓKYÁÌlŸaGIÈð¤È°Ëư«"ÅÅ™Aüåwagû½þ:ï—Ð àç³w›ôÔ*ÓÛ´Öp|„†û¿ô`øÔŸl:OÖñ¢ZìâM¥‚R°´¿5 1ŠVl·ËŠÐ«ßuÞÕŸ6÷\?=ލ+vÆ—O,°F²C€)ìÅ-]„.¯ +µ1ÀRzažÚØC8å@ÒåëƒÈÀÿrRgâh#,vjØ#PZÔTwHx4:ÈM›7ˆÜà*ò»þL²ØN] ë«"~_Ym5I¯¼Ûâ°ñÆ»|¡ùQ=’¸¿Ñؘ,fQÜ„L‘ŒŽ´/J™VÊäþËõÈþ|/‘-NðˆS‰ÿ’-î¦ØÙ!@öCÏÀþr<óçwÁ$x©~&rÔÄ,`È/Œ¶ª~+×Åùº´•¼ÝáGIŸOqè[EÁ'->./.ÉMHö[²²Q'ËP†Â,Ë WSÅ¥+_cN©ìlO&›qòE¢ý¬wðëÄâq¸Zãp LpˆÛ¸Móx†_gúÿ°;Sówµdî'YíiÅ=v&$ö £‡ƒÑ'§å½ãFÖ*o_4¡ËVp`àÆÇ!‘ã’Xg¿±Ã²`g„ÇÐë¾(ÓÕ§Síƒ=#΢²ÁoLÿŠÃá*K9°q%¡ C0¨×xº(ݨWÜA¨Wq4<¤`ô/Û Í C»Åª~ÍÄ)D>˜~…ñ_mtϼ²©Ýö¢yÜøüøaeKOrÔÚØ %laT¯0e¯Ñ +ÐC©=Ú£È(}IÈ©«„ùl[¸s­Œ±'Ü[bø€>¡”Õÿ óÇ¡‰°c4=¾—&~ÖW8¼[pxÏãH¡VÊVµÊ¶è_~·mIRgµz_œto/Î _ìFë“û¡ r3?Ù[ìÖzóªléº$>¨þn”#OÈ©A¶S‡°ÒÀö×AÀíÞ$Ñ^Óä™nÔ)]È]˜óuòÚwª¸i#.z‡Æ¯i|S9œn¤Â¤ÆB Ê!Úú¾=¤õ½8Ùàö·ý1Ÿß´áôT¿F$ÚR¬„±†# þ'Œæ¸BS†°ÙqÀÊj=êO/è\‰õ¶cW«÷öCƒ¿íQS«´ÑhA/ã–iДyð3'û ÏÚ#0·<,[Ü7wi®X©Ð” +^c+‰JC­AˆšCª å0GuÞLÁ4ä/3eÂZã‘éêNÉ?ÉÃó£Äê€QΖ4’£Ý§ÅÏ’c>¨ë'¡û"Y£°sCœ1ø=Ý–P‹f­Ò¡°n®Gì¥)cãw³šD¥ÆnV£fÝêÇCl¤£PØ«/ö¾fÚ•oõ³”£êLêb!îAé*U •ذJܧпL;0d»l‘Ö­¦0•D5d”èÂÂTÕÌ®8(±%?Ñr‹ºæšYBÔVž6•nÅvµË­mWQ£>­¼ÚDX™\­c…°7òÉåÊ~n”éå)çÄ;WÎ 5«´èÜÂw—¥â(ß(®0Ÿ+ŠoÑ+ŠW·P\~´¸¼QDq¹CðéÃü¶#ª¶4íš–ë(ŠZÅo’âèTé²r¯T'¨œG—w/‡×¢8lÖgåiÍ–§ü…F‰,ìÂÎó§­» + +ûk—?ŽÚ·üS¾Y¤ +•õÜySGR&R®[:Àí(oÇȤ=ïH•פ«¤.6R.xÊ›ú‹SŠÃa¶ÿiÞ†÷Æ•q»MÞçföòD—‰üí^Uîå^ä®q,k‹j<\NË,QqŠ›ÜÖÊG¦jît´ƒy)z äé rï  ¦_ÐY½ › WÄN9oô6üèÌnÐGQO¹oôYn¥¬y}5ŒpøÃl ¯A1O$éæ](Nˆ¯0Õ~At¥ï‹]{¼ÀžPy¾®â”–"7-Öáú$w¥FÙ¥oãtÀúþÀÜÏÀ½=€úÏÝ?Þ@+ÎlzîP€ÏcÀ÷öÀí/€ÇE4åbøsœþ쥕<ÑEG)­é¬3…‘aU6]Ž/Ü‚²A²‹•¤ÞuÈ" +îë^· äP¡ehUªL–‹ü)¦ç¶ß¦£Wœ¸Ò^ü |ñ²Nÿîþ•r ûcSýåЫn ^!o¤Ûä`ùÈI¿ +vkp›rrc÷r+)®óCØc‰¦.M]6‚ ê:'±–hRïX––žy(ª¯æ¿9´…†ÿĽøfƒû –…´À'tÈ&uHD‹R»ä2€²¬×éT/O§¨ý”—÷Ïç²!½RÊ“øåÐèÚùwý†jîßUÝɧɹɧг’÷ø5H’®$ -i)+'I˜Þ*eyO¶]L™´ÿoÙé/RýǧX9Åÿíê¥å$‘ +~âUåcBîÂçs]&2_ÿ!ùhŠó !‘Þ0y_ýä Ò?Dw„”©™VY RÜsZe1‹Oû͔˯9ýÎüKÿŸþZ½ÒèšëÅóõ•ß×¼öÍÌxåõjë‚þäÏŸA¼îÑ~\Y»_ûØaÁù¡&îéÑðúÑH>;ÃN>a$ŸÆGM÷ëBJ’‹$¦uªý”——Ö)î;¹¼þMЃnZ`þíÚ×W¢/fÇÚϰ)Lž|4˜Çëö`K×qZ„žj¼{<ãä{×?ÍêíÌ Ð['üö¯7‘Ÿ^áípy‰U)»­ô2n‹ÿÉ·j™ÉçFëéþÍÉÉ;^ðÉ;<¥E‹¹ô©½V¦I¢ëôz>ñ +bóÅlén¼†êèc׫Pƨž nïzÒRngª¥ßLµ®7Ž_á1»ÄRuÁvÖáì5—Ów˜+ž˜›‹G!rW¢Ò´l¥ÏÓ:ì˜åð 5‚7ær]²¯ÿ]QL÷oNJ‹n§•7i'yG†Ÿ¼ý>¡ìèö 7î+–1 ¸¸FñÖ­æk—8<6/8”ôΞõÅOßÇ—>±x^8Êp?xx”õŽ{ÐÌNv›Ï~à«ݥ8ºíº&ÖܺÀŠÞL°¢¾~¯ýõlxí¯éÎVûÉ÷´Oë]jZoK¾’’þ¬c¤ÃÍuÒŠƒÙ³‚}ü{´fÏÍ­×”ö—‰ +_Î4>O…Gé{ÜLŸ…CŸÝWöÑòÒÚ·+÷îÎRŸØöþ,0[”(‹›çÑ7Ã:ëÙq¬sø÷¼âüquYÄxX÷ÒB¯Åà¤ï²*‚sþ?¼ôb¼¢!ýC+ÈÊ_ ³ëºÇh×cªgúÑ4¢Š¹û“êÎv½w¹ÅrÆaC‚Öuͤc«Õ"ð³hhU*.ÊËÕéÑZV;¯n¨º9F2àÁ±tìý%)(ç6näÔh_‰Ùí{jeéàj£èÕ0êL¿‹Î;¼Î1yÌòà +0­.‹õñÑnÁ#Sè1éÙ¸';c¾¥Ûž\±¬ï¾>¶ØVkn†R}i–víÃPn¦c¦jÔÿZ{ZíCg>‹ÙÇ!êçIßÐMÚöo{ ÜGZlO‹_èþ‡XŸo†—ùù î] '×â²Þ®¨Á|}*ÁÏž`çISPâ‘ù§lg)ö¬5D¬ c3æI‡Ž›¶¤ k¶jZ¬$yÈÒ—ºù°ý;8½÷shã{R×ðt&¤zÉTV© =W‚Fó«°ñJ¹t2ÚJa¼Éf¿í‡Ù\š§M¨l}0fèô +FNRñsqþ3Ý6Ÿ§±ç¶®Û\ì÷÷õ±81®˜•tÚ4¬C1j´z1=hcgA·Ì£Úwݵ¡=Oa6#ЈÎzª¾oñR¥Ñ|¤ÃÆS)ÜØ’,"ãŽ\~åyI‘Fc©^³^R½G´Äýƒƒ2Àÿp‹?ýáј—ÄMñ»ÁÃÎhÛö¿Æ®òË¡ÏçÏøt]ž\4.ì ïLñŠÝ‡õPÈ N–VׯºÜé?LÕ^}œR?CˆSé[WQMh ®#‹WÊ—¶ v-ÕæE<@—œØ²k-Áˆåìå)´Ç_“¿JÅ{ʶÆ_åÈ_Í +˜}ÕüËuÖ ‡ûò+u© A¼ž¶g¡ïU&Ç`üÁGëd3ê̬¼Ï+C×Ï'ýzO2q ÈÂ{mº{6UµÕ|åŽ)¥ü’”%aÃKÛÙR‘¹!ê|4Në÷BèäÊGÞæñ÷X[Un$¿1ëì+Ùד)³Iaf´2š?~‘jº½Þcûyì¼èÜÛK·iŒ«ã ê}w¹6¥ãÑ3@]t8ÀÓóšD]Õ¯3ø*!Ñ/+%»ß”«c¥+5,õA +gŒæ…ŽIgY'oßE‹KæÁ–M:ï˜%Ý^‰ñ_VaÖÊ䕯!%)0y›o2ÌUOÙJõ¿œ¶Àu°Y$vá6ê(ßžöq­:r¥A6[³ƒ}6Ž3gª#àiT; +Õ||9*åJá)×òÅœÔ,ç*"Tû´“{uøÛêƒñH-Çpcö#²Éª8`©j{ÌÌ5nÅä#÷J‡Æ§@—nD‡Z;—¬ƒ˜’Ñ݆’1/GÉx©A­Ç`ýÿPûéE__˵³@Â6[N±öÄØÈ5wrë–¨£—Aw$L5e¾ïËòÆØJÚ#¸‰ƒd“%·‚y_yçå׸'¹€8ÜñaÖ{.H6’ð ë4:Œ¯]&Š Jöшª1~:!Xæ ²)Z<UåÕ˜/Ù”ãFF=£–Qý‘],†‘ŽºÒ´'3¯_¨·­Â±]§jŽÏ*9³îÕ/}¢V+KµgJ{«8 ¬ +–Ü‹øû^|rÏ“”㈎^agšÞbCê2\Û&è¥=âèòq”Ý®@)ÐÊ&÷Ö#û`Îâ0 î_¬E·‚Å{…Ú,“5޸ŭӟ¡óZF5£òc7}ßä%4Ù3ó\÷MN§;-؆½ˆÄüì¶n¿ºpK‡ÒI®­…Ë»7ßç&Ïí–ýH¹KïZfÑ„KLÑ ›´¸ÅÚÔ¶A¢T}ÀÐdÿ"IÄ©®‰¶>õpë|Ýa^û…¡£a }áE +¼£¬|n/trªè«3øKåÇ6ð¤Å};cübpÅ'Ãe©ëz Õ´ä +]8ÍÏM‘ÄËT¸vŸ{íH“õ xÌ,|iÉ”òÓ- ÙJäÔöç)Õ®ÖÈñ’ T…‰¡Røõ‹Øã ö1¬ËŒÐ©;Z#Ÿ×ãø&YAòÀ€ Ëcçäžx ÉEÝJFašTåÇZ^kÙ-XÁ$6o{Zác‡¨Â+#­a”ot\|ÜåÆõéóct1dB<Öi9w¶©PšS ¹'=ýNœG£aòç +~óŽ n]lÌÅ8š¬¾J¥ì]™s°‹äWúª‡[oÍU‹½êi„öªgÅêîöÚ«ú…rJ¹Ò«Ú@é/K#=#Ìsš™:+r4þt0»@ aá•¢¨‡‡í láf|‹Ú×™¸tƒèã î+97ÎØ¤ ?1ü®åÑjÖP`ê€ûõ¤0?3°ð¼É=ù“˜Ý= ÝæÒ>w")_è@;µ×¾ôÛƒö…ÿ}(jû‚E¥öŒÊH¦ð—ÒŨògé‘›tíq3ûSÔ_ÝGQ­ ±ð@ #î¶#²= +û1-ôQzW³‘E÷îéí‘âäœÐðŠ,}àʼYìmYªÑ«/…nW¯ ˆÎIõÄNûx¶ívÕ‡*s„F3¾ ¬NÛ œv›'p +Epr_–ÁÉ~VúËÜ?nD¯ÉÙŒ`4™L»b®Qãêß¡>ƒJ2ØÓcîÛ†v”m§8æ…RR—R¯1sÝA.p»à±vÎüØ1¡Á£}³œOÛéíËm$_† 8Ä1/Ë<èÑŽþKnÇIk.`‡V~ãšB£5KÇ“Ò,-ßQ³4u‹Í’ä–ÿ4J?fëM O,–#1¦îz˜ž¤VwvIˆÏä“YÇåqo_ÿäÐý¹Õ„@IÇ£œõ‹H·Ð1œŒ° —‡×yÞ[E 4—RmŠ\ÐiVŠO²¡ÈM¹Q¯9£z¿oê-P}× 3kíÞT®µ›c zrÙ}ÒÕ‹Á•«‘ø¦Ñ!ÐFdz¦±våc8¤Œi‚޶þ £[ù'exïóó§°w =·=êÍú­…sꇘ—ë .éµÓ{êÖ†›W¶ u­£¶öÕ[ƒ»Uí£û©Âƒkµ·[Ý +æ+L9a.FÙ+°‹2¹ŒÓù¢d6Jó,”˜±+ùÇb¾ä‡½jÉ·þ‡ñˆR4§¤.DªW³+: ˆlh×&O¯wZ‡Ã'>]Í"xW†x)Z¡,êf{+W3aÊÀp.”ØïN+q@É..¹Î,e¸)ŠÅí¥(–Zßby­Ö +ù€”z/{³ÉïõÉ(߇ C.²–ùœ‘¾]äŒ&ìäŒýÌEÜ£–oºŸú_Üü´¥YMÜ–ô÷ܤ”CÉè dƒ¯3!›'ð:ûDjíú¡ƒ8ß,ŒËÙÂÍõhÕ3*¯²$—­_”:;1¯c-×iP}À°&ãž—’¬˜`®)k€% LÙÒ,sé¯(…t&D‡_f4€YrÀ¨ò`¬RÏò4{±kÌK/ +½;Za™GúaÜüŸæm1æh„•gL6ñ ž^F”}9é ÉãÔ’ÔóªvCï^ùõÜâú±0ó… ´ªjÄ:€®J€ž˜€€µ^ãÑ€é³ÀÂzÀâð&.§œ³îGí€cXÀ…›òœ¸^|¶ÜÔÕ”ƒý£_|ÎyÉéWo{$êÌÈÖ³òlL?~MÑ5„‡eöixÅz£8ÎÙ€þë ÆPɰ`‘þqà1ðÚÇpº¸Bd¾³À/ï@T@A † §³ %ÛÈrû Ыí%äx +H¥QOÙÒ¿ž[5=P2än¹Àpb3‡’9¡Ò±VëŒÕý§¹ïØ—êóàlKép;,è¶µø'‡þÕôË¡ÿ¶öþßì€ù?ïïašÚ Ù(‹{‘@Þǽqð­×êý­-¼ìý»x³ý÷ÓØôfÊù‘¼Ã—ž¼……’$VƒIºÊ¦ò/„¤}+I˜V˜2»& [É¥X`ÊOÿßñéÿo©þoWo‹K¼Êf”»îö×¥ª9ÿÉwó†üü¿'½…bZj¸•“ä ÓIBÝðë¦EПYZg?}hæÏ:µ” œVWfþ´ö +jŠg¦Ü&imEâ•àMB®™ãŸVÙyÍ~¾òýÑ÷¶Ž•giømÇÒdâªûr;Œ[ÿ‚Üû‘⎿úCúJȺ~ÛäƒäÔ䯄ä=PÓ½JÍ») ™VÉ(ÿ6J›”ÍãßÝ…r ¯yeϼòj$>ùãE‹×Ð}KWÀ«vÍ{¨qí·\cÜ]ßõ7r¸iövë,Ÿ«SÚׯðFã.ãúÑ<'ƒü,¥:?{à×?“çÛìÇékî¼ÂÝOcÅ¥ûU"“w¹„&‰ci‰ ÿçø› [§W^¡ñ$¾]—)?®Ô¼ƒS¾s~%ôzc%òêlþ‹¶|W|ýœ¨ ëLWãÓ:Ì£°wÚD¥qåvØÑ|ùÐXœ°_¤Z®ˆ{pÓÖvfí£ì:û«ü’Ï®"%uE§ûƒ“÷Q"’÷XgÒ¢U!IU{}yÛ¥èÝÁñyq½ÑÇÝ%æÏ—s"ãôaNßþîsbNQ!âo›Êql‡@û#ãv÷`8ÁvfyFooÊFÚ‡Ë`3†Ê“µ×cwk2®Ws\h¯ò³¶ -_ +ôà¿d;íÛi Égëci½jö)‚6žî䛽_½#=šíôx‹ƒ‰túî”A¢{Ø…mo?P*‹9ªo·ŽW¹|Z|çÚ‰:€“*°hý‡äûRÄä»"ø„Æðå =ç|RÉG«}E¢µ}ì®­ÆkCD@iÅ7(ܦïò ]ÒÁ\ç.Ïí œ5õù£àÌ’ja:#æÂû"øÖc&ìÉË‹ãç”ßÀd݈ªéÙìŽwKÛãptÔ¦G×$¾yç¶ÃZŽ£MAM;~æyÜ2»=.ÖÞSúòi:pT7•úÎ=Öß›· žÖß­sX•¬Z´8š…×ü¶Ê•|þ´f@%‡x¸ÎL…q[šÈ›ž>Þ×Qk¬¸ñ(•ù2û+÷ÒÝne´ã?9Y÷êö¤ÖG¬·{‘¬æÌÍ@é¼ÌÂÃk —#³>1¹6,'T5£òã%VEùöà%æT…x›0‹òºÄùɲÏ£Et–AwNdí<³·ß;{…wï=٘ʸo’àÈxĵV<å<ªï šªØ“H7¬O{èX´?õ¬sZ™\ø:W•J<·|ÁØ6F-£>xƒáÚƒÖN¾êÃæ% ºôvt)÷¯Æ¦ô»=+þˆû˺taܽwún{-XL)„Xì5Tä“xÜc:Ÿ¨€´¦öÍ…›ö×ÁÚ^Åúæ=Ðb„6yež]÷®svXCÉPÍußhtoÖ@w¿ž~JªK½CÁQÿ _}˜Û•µ¸Â&ûªšôf{•L%ÊW ŠÊ¼Ü.ü‡GûS”OÕôešõCN \6“|1@ÛdPåh*+ùXß}G.l‡¾íAÇ½Åæâ‡YZß¾ÃêþY64°Ð :ï®~vÓ‘SçU ûYµx^Ó4¼™j²<•ª8Yª®ÌÕõEa›µœBKÚ /­ç×¥$sÆK’ûׂTkmó9©V\?nØâ$ÿú·×èÚZX߸äÓ‡ókº-\¢1”øsçY1Mk>ƒ²”Ã,ƒPhì< NT¬›7è;O®¬= ±©á¾ÒQgù>šŽÖJÉ>]^æ,M.ó3KÚ”žs©¦4¢v^bSßW…(òá™Í‹þ¢ñÙe¢l üK|\ææHÚMúwt©ç¦Íù+š½Õzþš€•M–ðªs+@ÆP~ÖÀhZS½û™­ûh#ºhty©tï(ÁèQ‘—Þ){ë”Ë÷-(mÜ"Õ^/RìS9Aˆ‚Ö@08qÂ_V“5ß«ÞïÜ}O9´µDØg2wÙç{teŸŸ<ÀNfOÆ;ý6÷ùq.sŒ¸Í‘3$ì€z©úþÇ,NwTøÝàÉÉþ¼ø`¸­Ýƒ6KéÎÊÙê*újŽîí”"^dqͽ$eÏäÄC‹/‹­!_Œ›ÔæÓ©Ì[‘MsöBáÒQ³Å¾v6)d‰‰rbfŸ-ÀÐ;®ËäúÍ“ÓÁˆÉVߌOú­ÿÎH~Dýjž_¯X^¤/‹æ,T¥É ï¼ÝñÀ:[a‡\`q9裗“ªÒ‰}гRÜû¹rÚ.¥úípuäq†ÄõÅ_ý8ÇÃù¸Ä„¤Áa•F—ª‚%’ÈøÂÐ`r›•GóÜž.ÆÆ‡ZMŠmJ"öUù®÷TµÆ¿)‰’ÞYЕn“¿¬ñœ]©8À´¼u¬•ÇæI{;ÞÛ¸˜²‡ºýµÒQÏð²Ôo¨’:%dÉô—ꆷ·jÄÅáÃö›^ÆY'$óíyUÆì@&š÷¾,]¢á>%-ô ¹+m·¤ºi¿ˆc}Ú$Ž E"ôHÞÇøÎH2^Ù½h–^ê×6<§8¸5ÝãlÖ/0rIùcJÿ:lNª¡–D„.¯©<-‰£$˜³Á;P<æÆ½o:@Ww,ùÏÌœ†ŸL~}é—Kti­5(¹fv©ê~M‘Z+Vˆ£ ºxW³whüì>b¼“U¼ó®óØÍ¯-ñÎçöJ‰<ÿ²õù&vŸž_V[“hCUÜÉNøZˇr3ÚíÆJeýb_j6wé 'Öxn<²Óë-6 €¡Ï°æyC‡÷8¢Ëè÷N­“ƇªQPÔ‚nlrB‡¬8~©ÎE¼ËžMÌY5"®è³ VÐñýÊ øè¢ãx£ããü™‘ÖÐgc÷ü±)uîäá_ð¬|ý¶Æ×^u>N?gnõþcÐÛ‚y3ºö«=§9ü1L€"Sð ƒ.ȘÚô%U;y{²ß /dóv~òÌÞlèU®âÙ±ûA1´ óèDœ‘·ó‘™&] :à`8L?s6‡¿!ÀfÿÃL~üXíØ 9›Ø«kyhôX 5'ß4²hh¨{ô£Ÿä«[é ‡WÒŸ­öSfùƒp»Ðc&ß¼¹8†=8J&W™+u a뜇#ˇl¹†KÉ=ê­gåG¯–kþVÝ-¸J·Y2 Î@žáíóþ.µMA·s¸…^#ãÇ® ÆñgÆÑ,ãetãÉæö—_ëþôXµÓý2û¶pï‚ÆeÜ.õgÃv¶¤‘¼â#OÔ9®]â>î"°‰÷”¢Dt÷ÑÐíwNƒnó^u¢€^t ÎØµÓÑ¥mIûW;-¸¹ýVB[ + +N†Ðzß vkæš›ðJ²•úš7†š½pš,›\Þºý!€Ý?ø¥\…š˜Î”téÜ5÷§8pß튺‚?‰xî"vÁ‹s²ýˆÿ?¶ÞsAY íÚ=–9'¢bœ0‹zþéîyæýý¹Ðn»«D„»«Vu„÷üTaÌL œ,^úV6¤˜å bØ(w…ð÷ý8ÃǃÌ×dá‚CqÍ…ÍÖ»V6 ,º8è%ÔèìÂúÂÏ wóÈïž*žßEV7¿[Q»ü®[½þ¢^¼$øÞÅE£”æ=æ^Ñ©.7‚Eds<}gk­Õ"*ûiûP4;•úäpKçP£m}­ª´¡1„°E´f»E4Ïlj…ÍõcÌ™8,`åF?À³}¾½¼}çIçÉ: åìå˜ÖNÎ^I¡™åG« òÐJW¤ipo"’±Þ }ŸºÅןBü‹Z惮Z¨$ Üön;Û}èJ7jô"[¹Gåg ÑøïÄùj¤f‚žÿxL§²5‰×g¦aYvÏç;Û<•Ö'yš@E†YEäC¥ ¿;}Ë÷+â.~œ'œš\ÌLW¸L9³62™eq˜^¨§cÚH5¿5t:H¥tv ÍÓÕcꑎÇgÏôü?ú"É=é®_h±s±LÑ v:a0k"£§Ÿ‡JÕ±x?ÏÙ6†­¦‰GÏ[áRB"+ÍÀ%ô𵦗«¹ mf]2Ëó*„Ávj¿"û©v½€pç€ÝŠ"À¥|Œ» ʳCË+Àä^Àä·`RÑ0wôýøúŽGAߪ“LAډѩÚR{?JïÀîËÚŒŒÖL«é3oJá®’™›ˆ.[œáºØZU1¨Ö~µÛå½ý°cè»0M¼m}b|pÀN->¦('ÆcXol¿"v`ø€µŠQŒ]>Æ KÐÅÈVµõrM¥Þ\V™ò{/æ‹­ $UÌß8¬þÜ’¯NðS˜ø¢ó¬vl"ÅTɹ~ "(Dœ77;ä ÀíK-ÀÝûNŒÐ|š^ž¯ÓiÀ74à[r%Æ£ø¶|ÇÌÞ J‰@\ËŒ_gã—Ö·,àùb‚öcq×õÛI¬ ÏkRCŸ>"½ê“׬6Ïä[ —‰):癞ÝÊfz£DµCUÊ€w¤ç¶ø·[KÄÙe4äA‡@°œÏ¢êˆR*Ä~ü¾Ä¹ÔŒq™ñ8¾1lQ@<É&ÏȈë+â&Tx5Ú ÌìšQ«ý û=Ò´m +Åd™B2ÜNù¾÷?¦hñÓÀ•ú±›Æür'îŽ_ÿÑ¡E\s€Øt< ö†ý_q5Q} øHÅÎHÝÃHkò¤÷4 eI²u€¼œÍ¼ÒŸ@>S4?ùvŒû(À@I),P ¼“Àà®=©T;µ(ùÉ»ÍWS”r¯è~m²£Üi’Y©Dù³ÞÿèЉÜûk¯ôê®~5ßÊa÷«ùòß$_ó þJÇ€rÝË¿ë²ý¬#·ºý…7HPEt–X{ÅÝý/¦÷,&ˆ^ˆQŽ¢Ú]Š"5ÿäÈÄ%ët¢HËL/ŠJàó2°å£HÏ—þ´ÓÄÕ›õ&Íü…8X‡‹ë_ˆC|™ýuõ¾•ÈÏ6ÛÏ æÏ V9ÿSxRpÀNþúcŸý:g£WÛ‰ûy‚¿ý ؤuÉýõ71 Ÿ¿ù ú&Æá÷R@~ È¥‡üçêMB–nägÂa¤,¢és’‹Om oå#7mÕÀݸô¿ +Ô=ç~„[ãéu®{å9I„Ü+1Å·—PÏl~â’Gÿy½§½$.nUuÉý¸ê^ˆ»È}]½3ç/g"‘Ï3ÉzkÊœÍ?µ5K>Tæp[WïÆI×ï¹n§~kÜ:­ë^ìØ×V4ð.¡:]l°Ÿ/úi{æ–àrêç…T5·\¨„|ý8aìÞQ»ºƒ#Ô3û ¾Zçž$ˆ^w§½úbüÁû.÷ÒÄ~eé"ü•ý[­çvú ?›ß—øîpÛÐÇÛµõX¼.¡¼OŸ/Ú&wæ‚=~ê#{:Œêûïü›PÙíåã„KGÈ«‡òõÞÜ/…Ow×ø\úÛvúlBC;oèÍ]»q…°º[òú´¦¯Ä Wú‡èZr¼_!2zÁv6ŠÂ þsØD²kåM%þpéòÅz!­³›"½“¸Ä&ÇO3½8BØî—Üé¸k¼F§m;Õ»mÂr/ÚÐËajíæ‡ðêÞVâqF.}z',>îM[hÏl’j(Õ~°,= –if‚Üâ@ÍÌ܈œ¡›.ñ?øw_÷\ÜÕY„Gñ ‹;RñQý(œ•£j ;BmÛ7Nݶ>Ÿ¯ª¾¡ç÷ÆêÞØ´—Q;è.•Ó²¿˜°›ñò6Á¼í×ÁR Anz¹ÌÌøÝO÷µ44%¶X~bã*3¾X¾>æ®ttß¾O#IÔRþ‹°ßZˆ¯úåo-lDï±'DoNaÕ©Y¸œæ}zõó©?~ŸŽÐN wèc[_öýÏJb»ÙÅdÙ!ç•fjæ:3'õòô€uS²ÓëLìóÀ_µéwòŘæÓÑ£ýÚŒ¤s:ôGöðA §‡:ÒņésZT5ßé¯åc¿ ‡×ORÞðS½#jƒˆ>Ù³ò0j}áöü1PVï]k–„™lÎ%s¶aÞÈlùòG‹ù|Ø gÛCó9í8VfÂV,t,t=f${Žè"¯è§j³êPß.ÌÁ_[ƒ¬µëõ×ô{Ü/Lñ•×ÊG_t£žEï÷Ü+|O6®£oMdzíu7ŠÏƒ]¥yÙ|Ùãcðü‡gyïHW{0Çy¹™Û\÷©ç + ÂÝ·ã`ýx÷fÍ{£7áRÆl4´{Ê·Áâb~ÏýMÚÎöÑj÷Çg{ÖÝ{t£¹.r1œ{ýÞtúhÎéF}qÔU^ÆÒþŒf'»Tx¬ -¢VEº•:ËõvÚÉóêµm¤g“ÉG‚Öþ|GÒÉö¾yYÊi4¯0Ûsç/g=ï´ÈÊvÚ=6'ã"vFÊ3è +˜ëõ7ëÉÜ#%ßcê›»ó ‚#ù'¤;W´ ôe—´`ÍDµ^þ{@wV‚dvòÃJ·ÝÌõGmlsÙ´:xîÚ"Ÿ.ÜŒ«D¡ÉR}³×êhzk üÞõp=íÊê1{OÓ«O»‘™£å1¹{än4~à_/ǰú¼wúÛÖè¼SÇò§Aw4<Ííé¬ù3ï¬>È»S(á™vsŽçZGJ Z”#³Í3W—›l¿£›½×À4…ÑÉm !dZ·Kûú˜\¾ëųô½ãQ›•ˆN­œ>¯k™#{5VáòÅÙ0èÔ)ÁyÈÀÊöÒl‹å MO¯Òç>µô~Xë¾§^X +,×+wôî§êvf‚Ûu‡õÛ-MX´¬¶þ4ϧæ­É±—éyÔxF^¶¡¨ZOÇL]ÓwRm¶¸é5˜Á[ÆâÚ9a¾ª®£ü­ŠÖz¹Ê¾PªTZw%¨ýÙ)A9”¼ð¤õ-nÃÙa#¯ýM VMäâåág±Ã¾ß×S÷A¹v·d½³¾;z›¨7êÍ‹è8æ½67¢æbÙPž·c]û/µ t~Ö*(e, 1r›Vݘâ÷{SEš\iS–Q!ÎÇnÙæ³Ó2“ît·úNë<½RJ÷k0*ÝoJXêÇ£ÜÿÁ1·îË«tÿˆÎº›Mzœj-ƒ]uuèÝÔñÌ÷Ò7ÏÆÊWߥ–]Ì)fßõ†Êß›õ’÷jÁ†žˇ¸2ò²v¨šãò¥r€ÊJ;°Aù„¸H™©û˜~-„œÎ·¡RéAj­’Ôõ†ÚKËî45h~4PÅ“ªX¥aqJ_ö1î‡/ö¿È…»]øÂ„Åj5C§ÂÁ…1ºo9ƒƒ;ìy½JN»Ó8릴˜õiÚTk•¸r6òýv§ÚD‚AåPß ¨ +¹ Wå.qÙëWû~Öùkô(=¼|ª$EdV{-MZ+æ}EÛ¨QÔ Î+¦ÃñZ­³O5›ZSjººÊjÞÞÄpwj6=Ù‘<ÚmúüûÙÌ›»Va¢Èvz¸É»OÏ…zGg’qæV£+¹Í[e¦×§“cÔÙ+_mVÒ¥ +Å"r|6íê=Ÿè‚Z™•ÓÚJ{g̽V4Úg-E¯âôrÍ3øÊÝêü) jViW”ÕçÒU +:7—wøú&7Ã.ãݦ%㹊¡nÐ<×v Ö#«ÇT¤ÆÚºì{vô+F[Ö¢CÌ0×vï<éZv§*GbÊ•»×ž¬{™yµ4Ì­ZÚÛ<¹Zñðð‹3ê5+f\°Rdµ¥Ïéz¶¥JÊà‰hMáÊMVsõgYiÜñ–‚ö‹®ÜzU}™u)¬¯¶’]xœÅKD¢K²áÞÕ¿uš ÞõAƒW^¥÷YÝܤáÂ\ Ö¹^r}ºþoƒÕ|·NÑÏ¡CóÅÞ@›'SÜ:GÌÙ6e•æ•(ë8I€)Î0÷]ºœP°”ÅËíòX“ÂðÜìnÆ/·B_tgúLäËµð€§¡ ÕVþ•C¼Ú*¸I¨ \É^lpË{l%¾î±HE…˜U¶\e–ŸÂwÀo«+¡ëÿ…ÀºéqZŽÐÁ×oÚ“7T×(LíóÀÚ™©^Þ¯vz¢Qz…/A­C^N&=•?G‰½¼¦f£" „E[žI®:?RÞ#¾ +slõ=7mv¯\ú8ú°Uú˜c‘+Î1u¡Y¡·ÃƒC7ÕÒšÆãR‰:ìa:GŸÆìò|‘`Æ;Æ_9¬ï¤ø¯»ÛÕJÝ´–Ï–wnì0Ž+\Fkh3æ%)x{ŒÆ£ÓKžcKœ/v.<ŸRˆ§OÄ:—)5,vÍlõpž±Y+³aê—BÈ\=¢› ¦ñÁùÐDu>T‰<›ƒ.éàØ’dËq³—*q«{âV¼-HvœŠÑ}.LFù!“„…{b™/8åGNÒ˜›*Z>Ô66-‹G«]4vù¢tAvß‹4¯•ú0khRžYïkÓhOd%Ã2ÝCMšÐh‡ +¡²OYûá‚¢ÛÇy¡²’s8ˆ¸sAˆý[¾å®Œö)ÕØ¯‰Ø8{Ø8ÄÉûÀ³E‚q·ØÕ¾S=.áöæ\…Ûîµù2Óírhnz¦ų•Œé¢T¿±’²T¸| äåú@I×ÃX’K*qì*Ñ_î;q3„Tûxø«@Lpµ%®p zglÝ–.¢tžòd)¿›…Ò™jkìVÈ›€)äuÈ-ä…Æ¢ÇËóBM7~à7”ïÝGÆ™çùï†ÕïĘ–,4?õzW%28µAIA½fðT®›ÃâJ G燋V"šUòFaõQ;1üA¡`îƒü‡÷ùæ±üÌãÖ2›ë\áïÕ3Gõ¼z¶eü,ëNÈ­Ø!×ïfÙ:ϲ<ü ëóAh6ÄÞ¨ñÝŽ‘í›$çÌ™R C§Ÿ ‚jôD¥É7؆ÿV(®q§¾bH8!…ÆœJç¬Û3›£ûY<{‘.ë"]-Ë­æ5ä^XH%‡ˆ¸7—pÔ/°/3¬¼'tæ3¡«™ ¿d´gñ˜üB!uùNF…Afü†¿wØ3ãÓg™ ÏÕ™G{Á²è4ÕRŠT¾ŽvRŸ²ÏOÂâÆï.¤~ŸóxDaZ +endstream endobj 84 0 obj<>stream +Ô?ñÉköôµcÖ…4üZ.2™ioœÏèŽ̤Ÿo!“Žäïe-=÷;fºª®Üt6•žB«Yi`?JmWy4…§LtÊ‘ÈWkÈ·ðä¥Zä5?ä¶¶`þ —ÒõGŒ¾—“ˆÑU¾ì|o¯–§Ê×»2…Ü€¡*×QœÌJhÁ ø{8àð{Ïæ2åÚ- 5†cXsºèªFÅJ1ne@BÐÖÜ´mbøO@wÉøuõÄýèFôIí]ºÅO…ƒhñ24Ich—‰mÑGWú£Ï¬gp4RÎêë(ÌÚ»9c¹®GŒCÝD熞㮶OœÃ÷d“AÈ:‘:àÇ<`&C,Æ‘‰ñ³•ã·¾í5s}8€¹IÀ¦6ÀBâ'ÆžlÚЛÁ€yžN€‰ñ9™UÀœÇ;Àl +¯Æw$lÿb´½L«V¿ÿ!·ºgBŸ˜“ÙÃA±ê­‘}Ô>%X§KrºÞ>ñà,²`#–þwå+pÄ«8‰i'âŠÛ\;šn`œ7ÿ¤wôXÀ…Tüªð:Ü)xîܦwQLÀm‹{Àí¨\Œ^üºÙHhø’\Çk2]÷¹|‘˜ä8Y¼®,9[¦!¦š_8µ$Ùº¢8c¢¸_ô‘díB¶3–OdÊ‚…ãô4HÂ925˜3Sá¡_ýÕ¡ßn Õ°™èÐ?¶cÔú~“ĉDøÝ¥ ¥Š[ ±£3é¼"€L›:U´äÚyäî ²Ó‹æÖF@îÑ·w ÈÞˆñþ~6UqQ`5s¡ÒhôHsøáô$µ¦³/Ø~ŠLæ‚—É{³.¸îM >íßîüÓzko"ø®ª‹ÿ6ù&‚ï &:ô¡;Á@i–( Üà2PÙcÿoU¶o~ƒ.Ƹ þbz•ìßr™¯-vÃÿ)¦ ¾ZïÆ—„ ¼G‰ž¦Õw1®Ñ_ÈÀˆŽñRþ\½òéo.Ä(obxá_‚C.õãêõ‘)ëBõ9AWã'ÔÉ]7næQ>3·H,³‰|z¾TË(ò/üŸhšÀ§ÿú«|v^ÜEaù—3Q€þÂY‰ß’®&FeeQj=?†Ù}jÓ{B¦;zØ$xÀ`}_Ráñn\ ûmÃ3Ð ˜øµõÉWb2\ìôm•ÄÞ&}úÁ7#!qÎþ¸d_Äÿˆm #³º •ÃàzœÐ)ä¹SííýRI;ûÜø`ïLhÐù/ A§½$(îSMBâÞaé¥üßνËÏI&ª>Ê[è넼GtxÛÐÚòÚzˆû =&Îg.@'q¿C¿€@ÇO+Ÿ=ja=Lž<À½<»ÛÈa‡Ž_ê–åEškÅÜÕ½mÎWâýÄ#Š>µTî÷ï…`1‘ùÿ…èÕ +ã}èóß^¦Á_kè=×®"×Ö­H\h¿*îz½ú¹jó¨ŠÝý’+x;Ô?·Äô8ÝЋŷN[»¹Åzu7ׇ•xXŸ—>µ¾/>Îî½Ðî—Ì<¢ÂÃt Pyf"F}º¯ßFSbß½Mlò Ol*•ŸÐ§[.ÁøÒÝeüˆ»Qd"É!÷÷Q^“·»±{ÝÎÜøy>~êÞýÛ5°Ý+²¡çi|uoné×ø½2§Ò<¶Õ9<<˜ñ9tf›ÒÁ™¡óÓ`ÚΞƓ°qOèýk;v)ä@;º;d4ã ïKjø}X‚–ã!4çÂAP5ƒJV¹à5}û‡è Ôsªš¹ë!Pß§ÇB>§ˆ¸8À–êoÂâh´êç‹Áâc%^õyùA]ƒÜO÷8= ëp¼ v9bÌ…3ê3àG=Hñ•'¬?C¢6Ô>\{”wÏQ¿–u–ÞÆY‡–Î~zûØê‘FÏrO ¹p™mû;]Á¹öÌ“ÓJá?D)âNÜZ¹t6üd¯ÝîÖØ¯=9?Z¾ Ö^~Ø –^Ôžî·¡7aŒ{0zèðÁÑðm8åá÷`^ÍgÈË÷ë(ö{zÛ>ÏzØ‹{‡QEëQ»æv[ý¶ËaßéÙŸY÷™ÝÁlø²ßŒÛÅî³eÍÐÞÜÊ´§»ÎBí:ÕWwû\>¤Î²ÊíYök²X©óýv^³G£Yëíu&gÛÖÇ×#YõGÁÕfØG¯¿FÀÔkÞÒ›^'J‡î¹F>œ[3ÿv„cêi<Û•?EÜ—tÆNÍë’5«ŽÊVæ|ju >ý´ÔÉ¥k‹v£œÛ(-!­Ö­4C|7jÒ~fm^”çêÎç¸Lp úˆ„ÅìêÍx·y¡on§¬!F¯Ýñ¡RuJòv‹·Ö£…Ôw"¦ã]2n×OS{’¥–VÀ±{ î çŽñ’íMÝm³`Á­}Ë)´ˆpH5Cÿ&7™T¦b^vUËä‰Ñ¨Ñ÷_Û†T4ßõ* uu€öj“wcQ+­¯?­Vkó8ø½u²ãô°”ÛôÂJ»Ñø³ÇÈò¯­î^é1ÛÖ„`—*DÉBXÎìäËe·Ù­q«}uMûÙÚ˜Wà Í^nñ½Þ4æâÕ¨þB…ºúAé:˜”•šŽëƼsvŒ*-ò9ܪ«i‡¨Óªl_ð¢Òô£ù/ìK ÔÇyj­´5(hó¹Û8Šï÷f¸\§¦}bs麞7(wSUé¬ì>ÝÆž5¡yÚ´uóúð›gvé6äÆÞ¯ö— ž’>›š>új ½Õ€ˆªk„‡ªõS»PÙ±¶Ò¼}JåcEù +Ë2—©3êgç–Ó¹ôé»@–9‰aÏþCsz@á-¹¬°(”ˆÑ£Òçµ`»Û¬Ç–N·”×Ëõ=KyÌ‚ÙOIT=5{Uje’l‹.ïÙ›êWåZPÙ-Íu…È›ûòqÛ¿”i|éçç Ö95—î &—¼é¦®EÑ׆áp£)# *~4½Rœ`ˆƒ™'iì+Þ'Û[çÉ¢ómæ’š êáÝÏò׃w†óz/{Ö +*­p±ˆ›çêPAÇŒE¤³Õ ¨«•=Þ5*„5h•­ÏÊÕ/¥íPwÓYé^}}«ÎR?—?h‘Ëß4Ÿ¯}4å1/'òƒ+–r¥Š˜“®ZÁ‰¥ +?oeéßJÊr5ï+ËÑi¬ÔŠ«ÑÏ£/ÖÑú]:q;.zÁýGŒö˜Ù7§;ã&^§i F“ŸnØ:ôÒ3ÕqÎVÚü™(ÛòSÐ/›B©t?j%‰¢ÚZt.ºšÊéC @ÝY±T¬‹idªÁêõP+NQ–÷.¥ÔúMÞfÕï! ›ëÍLÆÜÖS:–"Äb/Foô ¢ã'XMîÇÂŒ-õS£2ÕQ}á‹,¾w +“í²ŠÌ +SaÞNùFÍ}xm:ŸæbimÈþ Å•ØF}Fû|)Dçß\J‰Q¦8­ÃX1½£9µJ(ª²²µ²’¿ ¹)m¹©¯û2ž¹}4éâk‰b„P<]»o±;}„Ì +Bo9mB—ñO6<óƒ{ÈòƒÇÂâϬÿÅSƒ‹B¡•Ÿ(” WûéñÐôä@ÏÙª³_ùß`³fŸ×[5Ãt…ò¹–A´Ñîü*f˜R³BS +Ê’”›“PqÒ¤Î5$Ê[â™n¸b÷3Ž÷Íä¸nzæ GùÉ?­a–—/7–{÷ô*7ÖßrÓ`ûÈ¥N6É¥ÖF+ÆqÈ¥Æë>W|Ÿ ‚#!æÆšS‚m½õ¤öèÜ­Û٠Ʀ?/¶ tPtoòÎ3áð¡â[Æ7|Z²xó+Þ‹çËŠŽ¼T„Ûx_<2#lþyÐüpà¼"ïvÜxü¾qZIɰ³Ã˜fËV¡ÌÂôÀeŒ)¹cŒV`Œ€6£ïõѶ%iìx¨ƒ 4ªÃ5м–:äiÚï“]}?#Y8·'z5åAÌ>· +i7­JßÉåÖÁéäZO°†âwq¯²“Ú¦”±3Cù\ž4…”S-2ø¥ˆgAÐE Dy|‡Ÿžáauø€•ìâ+9(››(£!f4l¬g4<ÓΤŽú÷z“žYóu:sMß¡E¯W€²QZM­m×Nnè:Õ@,ÕÀ +Fj]¸PÖý 7J]¸n]'É4 M-3NÇrÕÇgd`ˆ~Þm³›ŠþUnÉ»›c±J&+´å @î¡p‡AzwMWœqå%ã•2»•T +cÝh{âEdE3b¬@Êø,Æô HEF©̤ HÖØU’ôQ2]lÄØöñ8ù œy¸ä­£…Ñ­ibõƃN•£ÍýR܄ӕԿ7†ÜJQ;ÔÕ+”ñô*äò‡É E·wN1ÍOººH=ÁQr^€Ù_gJ¼ à¨1Çj=,Åx7µÑû1Nk@mK@í@ü’Y?þmPj^8jðÆe绀ªù‹áPêf›ˆÑn’gËáíë¶«òÞ죭µ“Ü +K¾ºË i¹¶ñrÚ+x" Ï÷ÏÌ^Ù´¼  ïç7`Ò¹t %£Ç2€Áž +`p¶ +a`¦ŒŒc¸‡D¹­äAŒ ˜j¹¥0q}F]±€a/À Þ)Æíãýù£ou2£Kóg.RØëõ(ÀänA;ÓõØÌ‡}TCü!ó•†2•`JCØ,‹æãå«ìÐ?ÜÀÖ(°v]¬?*Ǹš€=©=À¾–à²âpÔÝÇà­%àØ-8®/Ž÷†‰@Œ÷^€#2ÀÁ,Õœ"W.þ×GLŸ©AZ¹ æ]ÌúaTb†Ïდ?5fu¤(,µL¶ÄÈ)jVeâ¿•c”;<àfsé»mÜÌí¤$b”©žk·¯]À»°ø³BY£@(Ö5 hyûæ&„æ¸ +¯;B¿a Š1üò­IhN Mˆiåú=§1]q¶Áç{ÕÏw?¸…¤vt-Ýp]ý§3< +Š¿êó×vüãïMÂ&ªá¯Âú«ú= êë gÔH©ÞHi}ýº€´±ë@ºŠ ÝRw §ž Ñ«d,Øog€,rRŒ]³üá<.—Ú°8-W^,åÏDfÎóÎbÔ‡ƒâ¸“Ƙœ øu­úÏsœÈ݉ܛÏ×£ÿë8þŸláÿ2ù¾B Ïk/ `¯Pš6”hÊ@E¯/ bs¨B|PEë¬Æ–X{¥uüc™*ÿ¥ +üSN¿r¤z—£¨Xnü¹d“ÕØ’d•³þ·tXâêM²zûÖ_‚pËÜâÇÚÛØý…8<_‘ ™ç§®àOm7TžP[ï=òºùwï’—ÄÁ›h¨'qOO“¸?ol¢&H¬œK.iæÇ€ü/gâÓ«½Þq/‹¹YÚOoÅç§zÒž“ì«ú„L`>,o=ʦ÷€;ª7Î¥Ù=ç´×·ÆÝ=^÷Rð¸£|±!ó›/p¡ç„}v³Öì'þ6ɹýfà&ún"©þȧ¿â®7­òÈ˧E¨˜¸dÿbzõÍs‚èçGy'<îF(~OI(Âu/ˆ…+1TÈK¨Ü…žÒÙMÅ37·*§~Öi„QÃë„Ê~ÜKBŽP÷½9À}á¹ÏÎLܪò†Ö³|cÖÜÑùΊXFî7©ãG/M”Óä@ýÔý€MU¹ç:fí†:®}%úþð|)º³S6W¡Ÿ¯í¼t:BVév€])ÚìÐqÚ¶¡ìWëÜ„•º¾Ô3äšÛøUŸ´ed×Kå:÷ZÄæz@æ•ÏÍáÉË2µ̋ù‡(²Ièÿô3 îÆ>]‰Þü[rœ‡Qõ»”jñ‡òÉÒvQ«n‰)ÚX_ªŸöêÞ¸wWâþî-}òî/&ì~²€¼ý|^ŽÂÍö£cPKA·Ù¦œ{ÏÐ%L‰­„OlÜ–Æ+úÞ&s×Åft÷ØW<š!?ò‰TòèßÓ(Zª™¤ƒ¸\¯­+»;sãÖü8)Àë݆¯­76„W÷zú¾ŒZ8´˜0ÙÜ<²D`¼Ÿ_gÊÌ„ÎÂt_¹©SbuÓ'váfŒ/­›9æÂ[gÔgž®y)ßW¢l0œ¨ìnMõë ’Bý¥ñ¦ú¹í¼åmZjà™Ä$ôÐÐ=&èímóàû½ùš£HuÎ×fó|œ’Úrgj'gCÏR­¥9Ö<àD7Èèñt_&–;Æ.Ž^G}}ù>¤†Ÿµw¾04ÀAžé/+ŒØÏ­øožgÔjoߪµzDèö\›YNK/Ú9\$FݾR])5nÙQÙ~%;±ãÃð¿ðL_+¹ ÛE^‡Eew\ßÌx™RÞ9rú”g›ù63 «óâèÞîT}Ÿí´‡ZÔì àiuÔ¯e: Ϥ»»Þ~28õÈôàæÚùÛ¹œÃs ¤ÛŽXWªf8Û?³EpzÍ*#çÛĤƒ8RØ^•À·€jרÞÚ.ZÃVÓrÆ-œnŒþáGŒ†¬í{}ß|¶‰wF¬Îøv­”F²£3>°oÜ1¼×L[z<;¦s œ®# ¿+³³¯©ÏÍvk;–^;ž;óíñÞ©6ßñqåàvA¥±Ö4ø®KÍÎñÖ2Ï >00Ý™ìLÏ4,^])Lþ ç>9ÿŽÖ¶'-óXÌÇþvFáÍñèµ­að!Ë}<™Þ±qɺlÝF»²_¢íT³¦X™¡kt²¿Ýn`ÛÚ Âø­¿ÃYÓÒÂ¥y.;3®Ë/Û}6DŽùN’­GÖ•Ê’¯ÏP¹¦9†mÐ10ÊóæÓ€­®R­¼]ÍmI÷¦[õ1:±‡®0.ZD·W^·GÏØ®Êšß;ìVÙœ¦Ûëw/ßjíGLÓz­Ó-œª{ëÑlˆ¯t·î‘~í3Ëk%‚œ× Pݦð£jMßfªy!*¦]Q*³1Ëíí—ÉÖí¢ŸÈÛ÷z£ÛïQ[gÆóîÿ`ó·Ìb±ÐnS7Åïü@ÎLú{rÜ{ádt‹ï¬âïL‹ÔÈéúÏtCj¾ÑºêgÙZiZPŒ9.T ÄJBN«µ‹nU¶¼îVšéÞ¨|¨öfåNvµÑOÎõ¤wyì¥3f®Ô«n¹’cªÚã²ô4YWöš\6È⛤ÅÑI·ÿ+ÙÚxZ š£â;u1Ñ£‡µqfæ1æ§ç¨â¡në†Ð²$ÛxÂר65ä—Qå•Lµ^5°Êvm±åÃÝSÊþ¢¬Ÿ^ëºÎÖÏÒ MõJB;5Ôž$hƒWs_|ßfŠãÂ;],îuJI«’ª¿[k¢•²0üb³ªbˆK1ðwçV’KÍÂtM°`·wà>æw¯›¶Wö~¯‰f?ûÈÕf½îW¼¯Ö÷ç{?ejvAt6Œð’ÇœöôPE–µJñ½ÔêE-_nS[ËUg½õX- Ï¥²XâñÕ¶Ö|+¹ü•×7]‘QqÕ’öH%öT–Zí;Z‹·ëÎ/6³v‚ePÌ¥¦=$ºûÕÒiï‰ÛÜyËÑÀZ]WÍV—Ôä†ÚxŒÜ°þ(Ólã\ºEÚC‹@%Uüd*Ù¢fÙ„:»ô9µì.¿5´²L‡åø¨ø4”œZò&§ôåÆÅ™I{~±“Ú™ìC"­¬Ú)Q¤¯Õ†p™IŒè#¸•{Qp«Fû‹Ö/d­¹Èã!˜È…åmX?¾ÞK'µ¾;;}ÞjöVeµžNheÿ©G¥>A‹3Bq1¨ÂVji$/oª)›TIöNE•Úœ]‘ˆûÄÃàîˆv‰ ÕX —óú[ª | Íð´Çòý#^ç%kês/Õ}r¯b r/ks/ŽhýÍ96Üÿêæ-y{ì‰êyÙ…¹‹ß>>WsX44cuš£å.¯¿´xl÷½±¢"Y7Tòhû*›mÿ#íOsX"Ù-*Ú³+-\ᇠ\RÜS¥&ðݾÅ?Šá€@è‚—öÖ™‘û§žEŠãc…–ªV¿Û¬NT¤Ÿo©Îêð½ùƒ©5g§IŒô¨ïßÛÐõóϵ]ƒ¢q›^ìÆøÖЫ»ú +×…ŽüVçæf+7!õ µ_äIìø§pmSBèäø‡ÝÅù3ý<èlF f‘—¦ºµÇL¶wßÑõˆþÞ÷¤ ~€R»ºX¤Z…c—Â÷½=yìLi +?šu +_Ô~ÑÊØÉ³c¦†&®uxîpqÒú{×9HŸYs{ôêˆèeWœSš¶n¤åÝás<æð½Ãéú†K¹ñÓ›™SÌÂHå#‡LöRèµÛ-Ò ~U£vó‡Eµ rH¹öŠ<^¢;iõÌ0ûIöEÎ]~¾!§piƒðéü©K–^âÿñÄâÔ¯æKèßpâ:÷‹ÖHœ÷ÐuÀÝÛàÑËðfk ø^æøé‚üL¯~OŽ€Ÿ‰@|ˆ8À/ÖñëÃùð§)ø3&ÿˆÑåü$­8§Ú]€òžî"ÀVµ¹“ëõ:¬/‚Ô"_Òo'’ì‹ÛIùµK•I3yÿ-ü.ˆ.3Ã1Ë™5gÝëï:rÜCRib©ÙØÉÓ` õHƒü(Æý¤á’ÒÒª—!$—Sm>ý•í„yîteXb±Å³mu”óJ †E¢ž +;ý× +ýíÖÜ›X{3b÷ÿ1ñOðML¾‰à+½’Ô^yÞ@ÁóPša)>_{PúÅ#PæT(GÌJ”›Ç8¾€òj@Ífõ?ù4Mü ¿ÕØ’Á)‘Tò’øÛÄÕû/¡fþŸÜÜ4†²Š|ØØGÊÒ»>'ùñë©mïÈj)ì£>[¸Û›ßÛõüo‰³¯¤úµñ&Á²‡@(yÉ +]¶ØD4M4ÔJá/d ‰éMr&Rã?÷qÞ@e"?­£ÏOµN?µuSxhG}”÷ɺ¸¸=¯ßÓ¼uÛ°sûÖ¸ú×½x_ ÿµ¸„Eæx¡gæëìÂ'ìt¯÷ë'q ÿÅÞ& +obMbd õOÜER‰Ú÷cí%ÿ2(èZ=RfžûœÀ»é£¼]¯ïñYÿxCÝÙB6Ð…ï³gÚ£§{eV{6ô {ñøi…Å£^*‡€‰Ì$!nf·Qa»×•í&4îpÜ£†´vñq5éÖO(Â7a¡½úR"©þršà9É€ìn¬ +·ÆiÊ\ oª\hkœ¹ééë +#cÛ;~ÌíèPƒé~Éu»ÆK_oÛ)a· ËìqC/ÙËÚÍ ÏÕ½)|VâQƒ—>m ‹ë° hà)óòûÜ–%}äØkfæºØtoÖñq3Ó6VÄ&a§Pø1Êþß^þi¨ÕÓ™›¤®¡²Z<åx´»k<Õì¶õ©z®ò«{ƒQ–Q›ÔŸnÞX@hÌËhK|wZ›off€?CX0mçÈõÄÆÈãøÒ‘îcîÜ„F}nŠùÑ _ô•÷ÅNJåpXJ£!4·ž?~Ùÿàg~JÁëֻdzóö¾w<ŽŸÚÒß¡ýÓpíÂòp5©`¡]2›yùQ8Æfh§¦Ä +B&vFÇ.þ!GwëÃŽÄKôµÊÂêUv¢äjChB´•4çö—Õò¸Ÿ[;ëDRE×—^›ü@nè8‚kóõžsl—Ž+Ï—ñ£Ãêžsó¾aðö¾Pgµ3wíf†Õ¥r€ô9ìùÕ:Uë;ÇXãx\Ñ÷#'ÿõ@ùÊY µsTRع¿,c÷~.®ª=3§zû&÷Ú¸PpCK&]úRä—¯«Ýû gtÅ÷ʲ}íå[Ÿ¹´µJÙ姘}µSÁQ+†æuà#÷º˜lÜëÙyê$òyK¹µÉ²èg­`µ†*ÓöåÄ/ éGö‚jOGì/K†æmª­z¯–ÛnØnÅ;¡k îÖ˜vûbcaG~ccûªóÃn}¦ÎÅ*e¼g'0|Ð7Ël»†Ý©ÖÆÊÉ-ô¢Õšm~è6‰'µ1m/˜Œz(™LWm7®,ÓjôRä.ì{ïö)ë°œpéÉl/Ïþ?ºÞsQQ%ÜÚ½‚ï"JÉ9GQ3¢˜sœõþÒk^{Ÿïüymç¤&U55ÞæèŽ·Ò"Ü#)/öæpéWàxû€“ý^‰ ª¼…–©¿õæxC³[iäŠZ«^ZkÚVrµÊ½2­îµÊ²Ê®Â¸ƒKEØ]¾~Gñòch +e§ ˜ß1Ö*YZwQÊ }Ô›\ŠŽ—O*^Öéøq´ûÏZ«|w³*èFºßÀžSŒ*"*uxû޶•ÎæÙVÌwcÞ΀z¹ÅjÕ€þ™úª.­TΈnWÄRÞó;Û|ÅWªÕf¹÷ìtK£3(Y›É¬”©\w^þ.ÅÏ~‹ÅK@ÖÎU+øY§âîš—±[.ËdFzþ°{ÿ Y;ü:éôßԊѱ_¦¢ÝŽª{Ê ¯‹§˜Ák"aéQÛÕ’>œ› ÿÖDßåçXÊ•>{ƒ.Ùœ+zÓQM÷¨é³¾WÄØE­à‹ŸÕª@Š·ž[ë~&.SP¶ùæªzËóÁ qÚwŽw¤Ù¼`G(Ûµ#^zX¯ "Y¯m»` ª¾ûëÇqz›íêõ]šÜÛ |Ø9ðrðÙ<Óp`T ‰ZÕ^þ}üÙ•¾’»óf9÷R\еOaã†H\’“VØ.s½¨ùVþk;—Å·à„%²bß·LÓŽ:^ÏÖ”ÑÜ,nË,é_s|Ò¦Ó¥OŽ\j×_~èYW˜Q@µ‰ë7»šÜî˜òh>I7×O¸hÍ–Wv¯hî­a»p³À½þ5ó…bfs+Ò(–·œWY_ÝqK'4ö7a×¶o'iÌjitù»Pwã¬rÑ&«œ‹¶¬´¹gE/“…")ߦu;…"ÞZ0'Cì:ñ¸·õ‰yG¡±^¿áz}ß>8•èPJã? +D˜Bwï(gjYÃÓÌÌO÷k£x¼õµðNÐÚÎUrZ É“ê¡TäÔ&(*wÝ:ʹó.+mWk+MänëuU±¤WæÅKý¸û›FIFCŸHF¿ƒIÆ@³$£%ÿ3Fnift´¿£‹Pï#ýZ:ç +þ°Ù<<ÿÌä/ÃæÁúÊÂØðÔÆX÷Íò\«åË[õ°hü†ƒj³9*çË(íð–“o')w´ «ž¥K/¾W”ú—SC2&Â@ü棭8fÈh¿f¬ Õ‚0ó³#¡@ÑÙ'M˜Us–0Ë3ÅäÊÞ³µÁ|üÞwÏ…ì²=òÈaÓ·¨ &ÞŸÅòä[‹Ôó;±}2g j¢Å‚8P›‡ÌX¹ôJ‘Æâ^Ž`å"½ŠúS ~F2Î#Lü¶¬8vPUt`åw¦‰Ð¾Wfk$ g- ßøÉ/·%šÇé£Íãê¢ÏmÞ‡ ·ùt×÷&s+#ÅøÄ·´€aWÊeWmˆçǘÂjwž)•³—RàZ™ßÓ({Øm_ŒÒ™š©õŒäûz=”^ñt*™ìz-~Oϣ舟›CÜW˜ÍlD(ÔÛ”c"¿üd,¾4RÊ<î;Ü–‚\åÞÙ½p¶E&Ën_ïɲ»Æ‡ec]bdÇ`PCO1úd6÷Þ®±?tÔ ³13i07­[yõèJÉÛltWü~rÖ”éÞôj[^*òþIæ¬Ù•7æDm!v£_r¿b¦g¾ôº½x|ˆ@ÜÖ’p®JÔxŽÚMuve<¶¡YsZM¦LàSgF”V(}}˜:Ýé}Z)ÑOº3Ì D¾ž”?eÜñÑü'¦ ,t›2×WŽ*€ãj^ʼnͼ:Aq AOíЮlåÞ“è ó¡ÔåË.Òç¶KlÂUKꚣ…Ú‘Ý_G¶Ñ‰˹ÊK’aÄ’­Ð7aôë¤éÎõ™Œ\¦Åõt¯GJ_Y0ù Þ +9’ Òz,®äH±ä§úQSPúÕ‹AôˆøõéÜï²»æÖq—µŽZøÎGië£í &:m–Xè7#Ðøöø úâˆ'vX‡mbË.s®l†L›z-ñ€íè[߸Ð]£ö¦žã¦ú•˜¤ ÉÏAµÈQT%m3Û'¦“â–pkÙ 0=_œä +î¼ßå‰/.6/6]™@°©B¸ÆBùÒ"Û×kžr‡Æþá­«½ci”ÚŽ §ý×µ'ù"gTN$¬< åY,ðùÇL™Ý}´:TÿìD”1 +'äמýbr ]¤=‡n$ÔÐ1ãêážg¾´ï:^‚¥ŽÍ“{Q…Ï®0òÒ{£qGäPæ¹òrÇÁfƒ2ï#ŽÖ9UBã¢!aäÜ“ÓÄðð=»ÞÔÕëÖê熿­ŒJ•IÉ—Š¡{kbžµÈ6Dítƒ²²Åή>./™«*EàJ!Q¨Ã!¾<Á=¼S·Jl›‰NXeºybTÀè>'(TäÜI\þP¹Ölæ„ÙtŽ\‹Êé g‘7A1Û£ DžF"Ï ïÈDÂ!ü†™"xµH¤x«ÝÑZìÏ’9†W»7¢|ÿ‚•MßkȪšýæ¤ìpó+¹Ç5á`Kë{HÛZ Ý_çAîô섹 ?äDã4CnÞ&0/Hg}¥ºG³Oç³½cÅÎê­cþXîežWØŠj8œÑ š|®}h +Ò¹'œfl•b .ïrçi ¡6Âq q,Õ_;¤¶ã¢À–{iÔ±Þrʪ<6!\ §›7¡ÁžœŠÅP©““ªó_ì|±5*ü¥†?K<<Úï×°ÝGâ…'4½T³;Þ³™eÖ3Þ¢äƒ ¶é2Ïì\`@º} Z9¤½i4 ù‚˜"mæH«"¡™z¸-¾*“dÿë=©C¸Î¿§\ÏÜ–—¾ÚÓóº¸ÊC{-¿Ô„ Nxåà-rW-dß.èÂpeØË”ÎzP:H`Íôb@Õ÷W@5¸L‚¨&¬'hýž°ª… ,N€*{ |Ú”ýH~G>¹€)%–¥bÉ{ dµsð +k²3úO†jíë?u÷.‡H—_ÎF¨Îsç C[Ï CÃâï¯AÅ¿Aô÷e»ˆ<»Þ|èóp’`»ôìÈ—­O‚ +è«&&H:GúÆ·½›Îç€Þ, ç[Ðý0ùƒtÐN#[éò¹š¢UåæD½s"r20š.yÎCÄva4Ï~W±”/Ôñ§Éï!6•"Œ†ªuGLjt„s™ïÄWsؼ¶¬RÚ&ˆŽ –×T¹u¡O I1 ^` ^9Á-l±š|Þ@A‚½ X!lVt7 > ‹UÀ<öýÔxÜ8û+: À(Åìíãð`Æ[ý·6J5‡PG¤f[Ÿyk‰íøDÉë ­Î£+àZ¯=àVØñ_ð—Þ+AwÚ ¾$à>¶”`êã &cÀãÚ9ˆñ +øLdîîv÷Ï€;$™;:ÉËåqü6äPW£9[ÞTülA+%sƒmŽ5]ZOÄVo³}F)‘>ñÒÐnqEg§Ëgòvð³Å+ÝMj;¦ ð_È$”ÀÆ€àt Tv":¨„IÙÂõáV_áŽ<Ì( <üžÖ/ö „¬aÍ û{ gÈôZ2S­™5×@æäy2d™ÈflñºVsNñ@¾õîä}’±ázÉiz¥Gniî÷„Õ®G;[tp5ÃÕîŸ&¤ês­£ü#÷¦þÞs&Rõ÷g­ýGõ½7Òt@Í>×@­õž@éP÷°›znqhÙé hH_Z.h -쀆É(ÐpÄÉg·!d´ßõ‡¼Ü[{îÑÁfÏC´ŸkúYçA{ÚSþñ§Zï/bâX{SŸ±òL.ç?ù½©ðû¿4ß?I¾Ð¹Ü è½ ôgr+0²_êyŒÂü ŒÆPF3Š€1¨]€1$1`#íÿü¯|©ù¿BÒ˜Þ´ÊÙéùoé°ÔÕ›†"ÀÖÿHp˜µ_ƒlÜ{‹ûøù-!¿gkO{‹ížPÕ¸>܃ÿ} ͘¼/Ϲc]bpó_Á> jH‘ºdS…w[ÏéÕõ¥ºö’6i迊)ý«¦¦²ô×L3zÿX{Ó*gi~Ãðü@×Ïsœ»eŸPù‰?Ü݇¹/ÙŒxÇ‚ŒzÛˆ„u#»„{U±|eJýr4Ë ?i Ïav¸<ݽýñ¤nEè8`€uø¶ê?uðoòmjãMÕÔ4{ -Óõÿ•OSÍ7=̱òüæïù'T‚ª¤Š…w¬É¯±Œ-.GÛ/6t<ÝÝ×ïÖyR—ß×q@pøVßðaÌàøjáôÞ½RBì=sÊÎÿæ¬mÎ7-”ª¯/~e¸–öÈuq65íþiØ7ŠTÜMcd'Ì^$ÿ£CÿÛÔþ÷þ}¸ëFææŸhøÒ|Þ°³4¾q'uþÑŽÆ&ë úǽۺ¾ÍZssÌ{á†_x½uˆy£Õ½âÍVêÞ[-œ·[|Ûþiaß›¿‘Í|¦E`Ž —Ø ›nØi%‡˜“¸\kL˜Ø:Œ[ì!û'!§¹\²Æ÷ùýmÏëÏ5Ôéúð-óÛØ»Œw[fäü·ëKÁ|®îå<´0:¶°¯=wŸ´0[œ:Ý8¨1%ç¨3‰‹tq¬iÜ"éúèRçÚ#é¤ô‡‘hM¯nu;0^½Klž3ɸId{ÈrïG%¢õSn#lw9w7µÍé?øYfÿèп´†Kóq[åq¸ÛH“æZZêKc_kÎÝ;ÿsÉ2ÃIì’‹ñ±DîF—*yÞ›Øcð +¡ÏÀxÀ¿Š1ý±çúö‡"{3gzÈŒ£RŽR»›²`wÉæuêL©[Q/ä¯ñ¢ªä%¸X ešåÿºd‘Ϩù]ž‡éÖc†j÷ó¥qø Äû]J¾Azê-¾õ1[ª¸<©Ã+}’Esð +”B¬r•Þ̃h™ç¢îÆ£G]rÃÍ;uJ܄dž¸ù3wj_Úú½-Ýõwi6Ôz ]´efj鬱ÛWšÐr—oˆL­¾¬éý:vœÇµŠØ£kä].Tã¨^ÿ_¸Ö_û~>4V«'„s%‹öòVF2±ÆÆ•ÉõÜÏïn +ÑoYi‡ÙU„?V´¶t­8ú¬”Z£^k~ÇõVÓëÆ¬Xï7u}\_úÑ¢ŽÅƒm­ÂŽÕ8Ø<ªÌíUZNú—¡£ørfP,G¨SÖr»SiàwMiP!ì?0©Œ•âøá•óú¶w&s¯“ Æíå²8ù ¹Wœxx7™›½Ã–Rº‘ î-ã}ý4¡é![_–ÖDÛ¸yXKÕ:¿Ó«Ìåö§UZò­è_z7ßL£|gòFуҠ¡Ì½ï§qð{þ*ÎöY¬Xh”åÂòs-J›ñ¬€O69w[³UwÛ­nUuõÄhèO&­õúW­t”¨mV–ÚáÇ$<'—W+Cžö\Žk”ÜÞVN\ÿâ_íŧü¨o²eít$JCëÅ•Àô%y“:czð‰ÉçZ*¢·^(»~X ÑÈ­¶Î¿3-¿¿×|£ÛÌ:gä&8Áªì9¢ÏNì΃‚í.|TleÿëûÙͪÂj2Ò Ý°·º”Ê &êÁ»QMä;ûÔâL5®´aoVîM¿á`É*ÍV^¾‹Å~|/¬±7(\έ>qÒ¥û—?Ž’çÆŽá´©ŠëˆûAÅîrËÀV.ÐÈê;öÎ2àõÛ5yÊ´ù…mf®åȘNïáÖ…ŸÕÊp#ML_¤XNŠñn<ƒÉÀýNÄÀ…Jû¹T¬VÖ‡Ø:õ‚Š\Rö¥1q=:×+¿âæ –y±ÓnSWûvg_v7² [-?ŒÕ_´e”'¢9ºmuÓî¾]cúÎU wUêêKb<×½;sÕ±ÙÓ*(©jäùhäªñdË&8ñ±@íÁnôü–§}¬æv;!ªý–+ö–¶~÷ËWÅs*[yîX\1÷‰Ëœ÷]Gê][ÝY#k 6VæwÐÙ›è]Lh»ú1ÃÕK&Jë8Em3)É™Ú)ªñáÔTëó7)TN`pPZ;V„n,ËW­V—;èð*w°2 àþbVÓ*»á˜Ò§¿¾6 +£u¡Ñ*T·Î¼¾¿´†NÖ[4é³{›©#Ƕèg;•»ùsdääóX/-2+÷è½VÙp +‹oµþð2*Ûk£ÊIŸÒJ€~ùZAm¹#—«²œÌ9¤ÇÂÜI:¿ùŠï«É‰Ã)â‹Ã™r‡{šL`ýžxˆÃ¹Â¦HuóÁlnÍ»'Aíµ‡’Ól–³z±&\þÞ'hqÃ+·|;¿™[ÃS10r›nSÛ6Ü@£Î~OmH͉ršõWŠ˜Åòuµ»Èòó7#‰¥ÇÝÀ%½PãÅOnª‹Ã3Z­v¹#fì÷ZÈïK/!ÛxÓü˜yüÂ<ïø…µ@|˜Bv„²é¦Åý*λ"°Ádf¶ÒT‰ßó…@Ô2\Ÿã…z…»;Qö²2]«ÚѪ{»¦œ3¯º"Ö‘PîœÈô™©¤wù•øq½ƒ8BšWÑZN?b¦uG„©HÒ‚›ñU!»ÛyͶxôÝù¹í¸õ¿s¾?'9’*¸ìîÙ\³»—‡p¤ºc8’YМ_;0£7BŽm›[t”ª1 ²õB»~0¬r¥Ÿáš[‘n‹OÛ4âµáÝ‘ÊsRUV^³j*wƒ¨!Žòãä-fÁå㙽Ü×ü¢ƒx/où–»=r˜å~&rÒ\¬a”Š*1 =b"Õ>$ð_in’4G_b€:ïC·]7mȳ§Mòõ«÷M¯YžÕj…"3ÂEû‹ú±î0gõ¬>æÒpÔmóålÉgÙúê÷ăiVUú*n[t=ZžQêQÐVT/W9PÚiö ‡â>CZE’`V’‰IýX$òœÑÁçíõ/:ÀÑlVÂV‹G[­ŽæÆ8^Ôf8>â_¾@ŸØ?Žî›Û£¶h°åÁ°ªWíÒ +izA¢dÛþtƒì¸wUÒ¨µ8µ§]®z(•éNÐñ(]µJäûU®‘ÃA/$­Ò~Hfð÷œ˜ì¨‘ï~§>Õ?xq°Bq´Œ X2hÈcDíØBwš¿D«Ÿì¥GS>פÜ!?»¢ô´€¡Õ[ézLñ}·J—æªX›IÅ’·þùnGr~$­Ùg‡ëõäï‘_Cj+xñºÏòF½JDP$\œððEõ“[ªØÄÑC¾‹­û1æ'#4Œø>h-Ÿ{  ]Ìæ‡ “k¶rfŽ7£rÉ0s¤=]ÿ]ˆTHn +ݳXËޱʑJ,†´Ât/£ë¥=!”Cs»mk[<óóû}äуu-ÿ”BÛ\­?´zí×>’³ÃcžÒ#ú~4Ih×)bøö{XŒ2ë©—;ú»j®E>ƒ¿G{È¥¡L‘+ol¯ˆô%2Ùû¸Le#g¯g5Ú©Á¯ÃeZµô½A$4Ð÷‘‹a“ÚgáA`):ü–’ü)dx¨¬÷Õ~÷¾,{Ç Ø|ZÎ( +óFü°Š>v¿Âê•;°Apžþœ,m¼Ì ˹Sñà"ò¬VÈör~)Á´‘ÕNÏ~·Ñ1<”ô5lÞƒŸƒhÿ…œO‡àQQΡy1“›k=PF7{€o +Y€o% àÓüà³Ü ”¡F¬¤ ÷¹Wk=í=êíýúX3¯uê9.H×[`--'¯µß‡_·&M%ˆgLöB÷»ç±hl"ôÐZÕ®‘õàO´ö!7ãùQ«t`·ÀÚlö1éOû .› ¶PSÛMàþˆÑ½É(ã/ÈÛ³ØÆ¢“=*#½];6d×ò<ïI"mW¯¿Ýàµaï‘ënFû¬=ü® ¬eN3_õÿAïš¼ìã«ÉaaúÎ!AtÌâ fiR –`V’˜á"ù‰Q>ùÈÍ&<ýq§Fe·vŒ65£ëÍÔ{œ2Wmz‘õ7÷–·×øÆ86ÖÅQJuµ¸<ØX ¨JÍE¯ò+ëì×—L¹l¢5àðñpÂr›nývÃáÇàä8Qz%(eg-qÀÙ8¿é®’mÎ f€ËSÉçòWpê¸8­™¼ÇY_Àa½ä%݄«šQVˆR¬}¾®IÍ~òƒ¹ÇKÕ|K=a¿kŒUi[]’¹\¢sÙìÄúÞ¾žu¯€/4ï€FÏÿf»à÷’@%ÿ¨±@€+õC ʾ µ°ù7l"–€ ÷Õîª1„<±àôv Ïò&l"mྫྷmÄÔtž‰5,ê0£X&jÝ»ž3F^š ´$Íåd,„ÐH¶.MôæûGøÅFø?vßTöδÄeÕâk[+4€TØŒTtÏ@jbX‚¤V/RÞ4j¥i Rèµ€T ’wÜd+ßî]oÚsì$ҕƬ™yD¼îsfSVà•ÖãÿiDºÿŸðüŸˆ‰Ôß›âFLü„ßTný+ü~ŽM Æ(‹Û¨È•Í‹@Õ©*P=h•à…µõ)5ØŽ€Ú¿€FŠƒö±·ÞÝÁgiìVœÖÿB€HêÀÕsÃÉ=—÷9íŸðå´Y#&þìú'7ë›Ê?øOºÄÿ›)üKòýí`  ƒ-ÐQü‘Z{[èýŠ ô£Ýú›;%h``¹j‚×ø, Âþ5Ȧ¢i*¤¦¦Ù_‚ß4¦÷oxCš}û§tØ?¡i©³“ú'we‹Ï¯ÇúÏ1¦5žö¦Ôù€ëî£_n¼»{ç×õŽ…&|óKñFöGík«¿ÕÍÒ †TáMv“ÖåJUÊ¿Ùÿ2ÊÒiLoj@N«œÓ—1ÓwO{e]îNÞ½£ø½m5{#;*v—¾2}—¿šòsóã¦y¾8£ÂYšOýS„îZÇ—ÿì=±8Œ¹êõ… +¿w'ÿOFÃÏdœF!¤­KãÒò\ÿ7—lª¡ÿäîo¾À=ܬܽ½“¿m¸VõZ»×Ûç‹eöNwW_%a~øV©õÁ>Pñ~ÆS§=R·ëÁÏ9||¶õÌÞ Y|ïvŠºŠ+¿|µz?ÏíÒ¸Q‹ÅXÈ|f9ò¼ÑäTäM]²4ÔHuáÿÕÊ'T,Ú´2½Ñê^ª.–º/ìKþ2wÅ÷ ©™)9“r“zN%Ç-‚aF—ÉBFR†÷¯Õ+ÿ[®0xulo`<½ZlÔÚ}hÜö +ðn•Ðç¹»©¨P—Ü”dö¶êu˜«¼ [ +¼ ùÇc¢-}z‹—1Ž?©}Š u/yÐ^_ò‹Ÿ€šÖ[›-Õ°8‰óòÏ(Ë6F!%t‡'ÆŸ÷Ç»íÍ,üÐC¦ø%*!ø#–ì§[Á9¨W¹\§NëdxlZ\È_Êj;™sçƒHVZ¯ÑµÛ2av‘JªÅÁ£ mB­1«J­¿ÞØÿ¸d±Úêt|ñ–Ò•¥_̤u°8©Ã:5¼×lÿÛñ¹ÞÌp•¨V—\ó…NT+a‹•~ÁÍíK v‚{—鑪Ž[¯:o™@Z5Çyi×t²î¹1ó¼GÙÔA½D °Ú¦qªqûeVë²]­{ëQ…ÿVŸ~˜×•+Ï—³Ãâ_$»9ËÅÏnË>@´˜„]J½cø°3Tÿî>=dd¿;qéþ ùÃ0ÜÃÚèUª9¶«BcV(« dUµê%¢êÖ6µj©F«ÕjÜ +šUæ„•–üâ +ü3¹øCc».ßÇSYËâï’‰)¨÷ÝLdÏ¡a¯8kFÃbAdŠÈ¨ò_ìQQZ-Gj1œ2Rö‹{­·FT—–Z :…Ÿ9)PïäØd¸¸¾ôžÇZ…:ܪuîð©´¤ö/Ñó¥÷….GÖ…/½¦¹”tϺ÷]¾lÏÁ¿EÚ‘Õb‘Ú…e˰k{åV”Ã5H8_7»?Ò9N‰²Ó*P;§UdA§È¿ØHrk6ÛäÑpµî~¹OŒÎÑóè¶j  9%‡z9˜Vë=hä_º•A92ii7WÞØÓbº”~sÏbA®¼ +Ëy)à\/çnÎsÒ¥ì-—ßC%ÏÞ¦Ó:Sž#´ M»‡Ö£ðÚZ=ΛïÑ6‡NÓ5-º·23H1“`NüÅr쳿5…“ÖçÖäée¥»v¬v2Øæì˜ƒêäp{ª´RÖk…ÐËëvaeCw[¯]êÝ[äÖdçœvÛ³#2Û»}=^?¶be²Ö3Cà–îÒŒùaŠ¿ŽÀ´ZUËÌ+ßÈwÞ¡¾@œ…^\Æ7-;¸V¾}͇ŕFÌo@#DN#šnÍK¯ÇtÔ›M;½µ1«uÄ]àüÉã%p© +ÓíµlrÞOè*.®¹À­AtÕ ¶ýªÝyö[ÖÓ[÷,}s˜˜#ê¼43ÛΘò™“‘ÿŠO}áˆ_݃½œŽÎÛ”æs I#.G­ÉJMeàÕHizø^áù9,Ÿ¯Î/kHnOk#¹—ß ¦Ù¿˜î¯«é0³êv£Z8¨·_¿µ€‹³'ךy +ó{ÇÕÝ›ûþÊŸ¹Ž# Öžù¹`ž™¹}#û~5tÏǺ:FJ¿ÚDš_Wç©ù[µ6¬UÆêÞ”#q +_»çä K2rûíkÒÝšzRDr]I½¯¶â@g?¢‰^Eỹw…ïõyMÑ…ÿb":Óbõ—g—߇`Ü +ŠŠä©Õ0+“eÌŸE"ò6yƒ#kp]— d»š+¸jìÖ}•Y†M¥…G…¿Æ#9Tâ™,=_é¾dNRT2é¸TtÆ?U]4]H⺂ÓZ,êK~ž¹¾øÂ¬Áò¹F«ÅçšÝ Ÿ P²õÍð…#U#˜õ6µZ¯#£V›½R}O¶JÔ×è2Ù + ëïìgþå§™Ù좢UNGi pG'  =²°/i^®!¾y­+.¥‘äÒL˜Àƒ­àÌã³7‘7?çÍ_øŽynå\L®L{ ?ܦìvÜY:“%YšÄ(–¦¤c‚`«•8“bdló¥¶¡vƒVnÛ)×NQÓô‡¼Éz¥Î'“¿þÞúRÔÈ@‡ºÊ‰uKêÉ+Sr%‚Ѱ(ä¡IE€gûŸ%ž/æö>w†GܪÍ.¸²]ÚsÝØmü€ØjC XZèÌþ‹T®ÒÑg…»ÐÁs‡Óâ`èÑâêÓm4™ëÿKŸõ ¹ºˆØesØŽá¯[+w†•šXèÚ>øøâ¶Fd“®´{² 9;ÑIãÜ”oÝŠ-ZŽÎÏcÑàQ–³¹r 9BÌWÙj7ßdi·±tí:elnÃ4ÞÎ…á†Q²×òû'ÛÑmÒT¨[4+Q]]êS*z>’ÏM%ûbìwà ù¼«ß”JßA¡—_tƒRsÔÎØƒÎŸŒ®¶pËùKK*Ò®‚:z¦1sº0Ó˜ïç÷(Bz©¡+dÏU#–O•­ýÌT‡ê3Ï4´LŸ[Dn›V‡–@uHKø~EÝvð‘êvÍù|9²¿|‹¤Q.ˆ¯øˆÑ½»' "“ÅgèÇÆg8û3YPéþ&ìô!FoäÓ/£Ö²Ó¹ÖÆK΢Co•WnW,#ØF+4Õ"awÓ›QÖK+5Ü/HäXæ½OOgŽà Ò—ìT§%ojSwìàQjåð3Y/%ý'×#EyF|½áŽóï;a_˜€&Ÿ¹TGŽƒ[Ò+‰Ç †CSÃáÇ+å—olÙÙüA¯ÚÖWásÒž¶÷M¿Þ|ž~gZeÀ~Ê%/¹»¤JÙ™Ýí¥ïôÁN¹âPœWYÏM:¬îTò56dÒ„ øî›.1nŒ|ÂáÖ :?»ølÌMð‚SÜà9j~ÅJÀpÃú-(C7ß•‰Ry¡™ÛÓ—U®~¬}rìÐVsì¨3ÉÕ/æ=·çë/”òZ¯¨ )ëö—nΚ›ÂrP»AX(Qõ*•‹åÊÈ„³ÜYö«3úñ¨¨ 79æ7€bþÞ¡zÊA%œ½¤à…3¢â¹6ca+É(b¥»_Åð¨ßF·…ó¥VŸEn\Cê¼sìý‰#§yUGÔ,²×­úÎvº˜œíDÖ({Ýã?G"Ræ aùÙmGú¶ídGË&¥]Æ5yIE><¢ëÅ}ʧéær¦ÂZË@®Ò7ß›ó~ µ zIë°S°Õ‘Ðjw#çö¯¥–k,“©WÆ~+‹‘3!5`çu¬gˆ¡ûìMË?³ÝÜÏ*kE…Ÿþ¶ +÷©Âú4.7hÄG 4v!ô &X_ÃO¸R¯äµâ ÐŸ® ›§u÷ʨÄýZ‘S˜bš.alë>ª<¤ËU,xÇfŒ.õjÀeñžZaÒnERöv Õl·3¶ܽ¬ê’uø…Ø]¸¿lO`£tØA_‚¸Cv×G H=ÿ䇌;Ô=°ÌlûÀ›•NÓa `_Þ€X'èÜÁâØ»‡f`Zeï׃¿ªØ@¥žãB;ïWì©ëzãäã²U8Þùí8X3Fí‘Î:÷»Cc•ñÇF®Pò•iæF…¾Ïdªá%‚¾¡›)8?“ƒãX.À1~‘ ¸ÀÀ F<À ±˜à‘ü/9¾œªPÏú5Œ:ö{íSï öº~Úy«qiְϱ¦ÚüÆw'…©K½^þe¨sý\ij·+áâ"ˆŸ·ol©‘ ñrœkäÎ4]ÌöbÛ€3deP>4A™?´ + 6i $‚FÂî8Áz†~$a€`i¹‰´4ø{$¸p¿š¿½¯‹ÙÕ\à‰«gƒïd/U2âòr-‹‚Öè;0Œün6z«ÒÐdG@¾Î ^ô«]Œ ïÉŒÑæ›j#jߪÀölZ›ìפ÷*Ò„J ’¯4½v‚ÑÂmHQ9&˜|)qt‚‰ HYk¦1õZ’^f‰øIóßù έ .9œmÆîüf`Tœ¸vúã9ºhdVÅ™¯jEñý…d}ÉbN9`솜!=Bˆ`çRýí&ƒe@Mk¥Ó: º» Á­ó¯ YŸ%èì¼€jXH‚­¨¦YHðŠUêîUvQ@Ù´( EË9@ec5ÁëWÿæO óû ¿}”­] +µ´ÑpÑÕº¸\’<ä©q4 ¨ì†ý`M5sDúEd »Œ9»^5 jýR Š¿­rП``>M°_ú ¶©r‹™—§„:`2H5Áh è»uôƒf½ø€^,“ŸBLÒñ/¼ÏZí‰àJþ«|‹çÅý踵ÎL¿HR(»ç½ÇóÏîÏ¢HÍj8‡û2g¸`c?‹1>IF:r2Üé˜óÿg‘ Ü%Xž\n€’Ÿ¥`w°±ë&¸µ;¯®»`¿©Qy ÀŽÉÛÁôXÿ Ö™€ÍS“?L¹ÿÌÛyg÷Ÿ±âLf*ç‹t>÷’qâÈp|a”[ßþ±¡àNÌ ð9ã’Z{“ÿ‹Tf›OÀk› à‹ +ø†Á¾7Õ¿ýÛà—¥#à‡¹\‚»øÑaøpò|g®¾vœ¾`Ëä^úÇ\Ó9^̽9\«àm„Æ>× §rßÁ“SIDF‡Aë§›ùGnŽwo @Ï/úGðý‹¿‰ÿ¯,bçߺ5 šŠÄVÏâŠj%˜Íxöž@L® ~?>¯§wÛãYò¹gfÄÃ*hKÿmU ÔAýT2 ‘Áfc/‹U¼ÅübÃÚ{ªtÒàæšðÛûÍ9õÿ)j§ÿ›-œ;¤2kj÷M†ÿz~m¹ð§˜œ‚©C ·PÌv(eKJ[褞Û1sÊ„€²#’Æ ÊÐvy½¼kýfc'ƪ:aM›êl{”Œö SƒªA ü·MiK~ûÿkíýã/NêÐÿ;]iü“îj¾©É7­Þ @Gµ/й7tcé½Ô=hC@u ë# OÔ;Ðwýo@k.óþæ ¤ÂoçpÑþ­r–æ7¤Ù·Ááß’l©«·L¾Œy•{~‹ùi¯;úò'ÎcFn½RßVîKöѺcmÝ6’ð›°ßÈÈÙ^kïðv9ZoôÒ‚.Þ…ŸwÇËšýqÉþâÒTCýÿ‘OSYúWBÎbÜ?á ƒÌy:ˆ—‡ù©.6· ßÝßÈpt½Ö£ç娾~4†Ï!4FÏÒlC¢Ü†;¾Ê±|4vó0f^…`µ½{3¢Ø{5—;rr~mc÷lü »ý5ütè_BÚÀ?I¿º\ÿצ<÷p×+ìŽÕ'Ì5'Ê•éžòçLJǗר¾•j°ŸqV7^Jb·ÑˆÑ6¶2¿ƒ¶e&ŸÅ¦•ýlÖï³_KÛÌeÑèkùjòðÒ¸Øäb,7¥ùL9sdL´g¥,|›n¼õÇÁûËCHÞÔ ›fü/#o²›?êQ!âS-އ1‘ÜX‘–ôÜ‘½×ws´¹µ´š+u7ç–Æq(-ìkG›Ï”Ž5Gúwæ}oºq‚Ê”œI Úf=Œ[äv6ºÔ¿½á½ ߆ê]Æ;ø•sjIÎÇ«†EK»¦I²á±CmÿÉ”€£×l•÷4Tï| 6ü”n-_•i°°Ïµî‰¼Ñ ú¿ùÍ$¹oÇãcÉ>.Uã1¼7ù÷P½™Á@ñÐðþX×è>4ÒøÞÌ.(=dV2£R®UìnÊãz—Ü£süÎÖhœCþöÂÛÒ{W î£ê,ˆìbZfGƒôé·ì¸´¤jyªC j)Ú´À³¼_kæ½rɽb>ÔR—ìP=énÿÛý>4›½d.Љ°=èV0nÚ‰+ܲÃìéMØâèŸ&äÏâ¹Jâ=¸Gâ;Pß*ÔX.ÞüNk\ÓA¦FcVz–ÈNìÔKÌp]Û¢V‘ +^¼Gÿ¸dëZ!™‹(™Íiâá*ÂŒ_PõËúWäõ³ý±墥=@»äª@„ǚɵ/-MîÙÔ§é¶Œ¯\jŽ“éxšËÍFÚ dmöê%RÖ6usV«°•M5ZÇ*s?+-õô‹÷C 0åûT3Ê‘»©—^+oU2I—ð¾ñÍü_8ŒßÉêQ#ê³21³G×b‘€AIëä,)µNíÇ/É„kk:™Î³Q@º¿{Z½„·sµ +]#ªq³ÉV™K[ª´’;¬é5M_ú4óåû¨ë•5¨[) +ý¦÷]-"o\~N‹³zvWDNú£° ¦h»£Š[Ñz5—üŒOùxìà Z?ko¾î”èôÅæ´‡{óâ¾Y‹[ÁìO™Û­®7pû: “Þóó&4YOk›Š:­Ö9lQáoßmù>ˆ÷e \®%3?½±={d‹³Ê+"ûÇÏ8VX6a¾€]`ÙÝ„¬é’¹¯ë…šs…]G€â¹ɳ-£ÄŠ*˜bi4ÑOð¾Y“‡Í×QR,Gµ ;iƤ?9;"'¾}gÃßwÓ²1çZ_gèeµA~»¾ŒÀ­ÒÀ¶<­†E$¶z…[œ¸ÑZ¸ä­¼Í×ÕêÑ9ʧeOû2 ¾v˜Ÿ"Ö}± , Ûqæk›ÕM“‹Æ¸Ùø­Š0þ1Óg“ÂU/ä߸žcŽž¶Ê=7ÚŠ Þ1/½;ŠVHµWº_ް8HC´¾iP·*ï=Wå¾8îzùʰZÀkëR>¾E§ÕLçžöå+5m¹bw­hïÍ·îÏÌÁ§½6ßßrq1àúú©Ïµ/¤çF®­|WÐð¸k©UíYS©Oy¬ì7à¬pT5'ŸžŽ+Ÿ‘æJNÙgŠŸ¤zfé×´~ £Á¤s¯u¹“Ûî]vJ³X‹ˆ{–_¾Vyn=÷öÜÝH,;ÁÕp¬^{l™[°É°U2²™°¦kã¶¶:Ž#­ÜŠÇa~—juòý¡UÚ%OJcÉ?®U‡å³°¤d±óR¤ÎKõ$eyè‰Ï ¼õÛ>ÑÖ>óïBø,j×¢‘íÞÆ×õ'êŸ÷F§]>[Þi â5¦+7Ûüu¥Iï¶B4Ì U³úó¯ad‡9Y+&Šº3V¦J·®Ò„÷e…›¿r›‡CY¼P}éjS©+—ÖâsÅ~qó ,‡£Ðá[Þ8üt!ýNÞõÖKÊnqSTΛFÜÆÎ1Òg»¨GòÇfe®¥ÒÛµ£1~?.B^ñs;¸Éxb÷X½aB_ÈÖüíUTš]%.û›°KÝ6ªIª$:bf•D£P® ß\§-ØÁ°'@â~ÊOï`û3íÂ#…à¼Ó‰ä°‘c°hYcɽ;câÆçÁÔƒÈÔ-¸ÏÔË›ã?øuk6»îEÌ8nµµS¹Y*ž­š ÄBù; ¢?Μóme6K½¼úª‚¹Êñ9祈ý°¢±›r˜™JÔZè|ì™ÜzÇN«Øz×ë\˜-Vô)¦—PíJ»§MØÀûî œX •Kë‰_7ytº£N1êzoáT'ŠhòñŽx²7\ª¤^¾ÛćDuÇ&î"qÏž¶¤ó¬ö]O[Ô¯ÓO”d»xn÷áÌcOZÈ6k<懑æÑö‘#«,rL¡±KÑ=-ûã¶uNúj’ÀƒšTÑ+>äŽGꂘœ¹Ô³v€ð…üØ?»"Üš•Ù8Ö*â’€DÅ5÷›b‹Ec˜Iñèh*êoëJVÇå\¬¼‚\í•Ì–™AmK·;Ò"láoO={‰‚f6ÔÙUVF™¬ŒcŬ n“lhY»ìeXŽ;7¡; ¦£×ïòlÔnlXœrýÛñY–W5‹›^«ûКvi+ëz  B\eNQÕ _’Âs„ƒ£äw‹æâñžÈÕ›ciJAŽÍBZÍŠ‡ü¸‘½|¿¿ë&NÔeV®N¯Y¹&åàè8R`-«ÐÛzÌ!sVAæ¼¥CÃl·½Uzk]%ŸÛþ¬µ”¾£úqgF•·Üiýñ·ÖÍ1óelZ»B­ß¨S‚0tÈí:q1Ùºšr +÷"ìçD¶ÃMè)+)~ŒÍ"Üs’ÞI‡7ô>0KÈâÝ.1”É+<ŸŸ»(šÖ àªhæ-€¢Cvô—`®7iÁÅäŠ §ua×VÀ¾×þc;¾®#Ë“oP)šV9Ë +:fùþ,±ˆ<ŽÁ¶˜kªžíR'ŸÏ‘ +²â¡eê[-3Õa7“Q°° !@gÑ shŸ ]0|‚ÿ‡¯ó\TTY·öœ‹(ÉI¢(Š (&ÌYÌbÖûÿÙ½º÷:û|•É´ +T¨ Æ{°¾ìŒ¾2ï)2ÀÇå~ŒëàäЂÙCØ`îÙe-SlƒÍœÂ|Õ-WŸg¯ØÅoÖOºD³z„äIÎ< +L™²A´lRV­Y½’£¢ò³ÍÁƒŒÈ§fòœåSD³"Ęh1^E@´´ZŒAˆ6´H”Ûv-Šñ‰Ÿuº + ºz¼Bí5„·|¢4ˆÿ³|˜ÂÈbT¯¿‚£{å°šEdzÏñc[…lþXÊnÇ’˜égg°¸æÄ/5ßßkÒôd?nU»j£—uË€_ƒP‚à…)r¶\d@ö`-†b²îVb,}@6ˆaŒÆ&ÆûH¿F²‰gY™4é¸! Mdþúl©æV€ä.O@òð©eúœd`¸ùãqõc;VÀ»•GW¾¥µù·(÷.œn\ȈùpÛé´Ú]¬U­ºH– ¢逊 9†ŸT$ÍPáÒÔxgj‚ÖcäƒÓ9 ¦Ô PÝTâbô +€êñ_ÐPå”Ñ/J:í%wP@Ѳ޸°—ø£~<Ç^Ä|'…P5³Þ‘,dŒéBGCØ—~¹Pv§»ÄEÍí!ƒE¯YVüS`84ÿ (gÅÈ;1j ŸÆ/ òó=ôKcÌo€>Sh¢CŸ' + #¥è0z3½zê¤Ä_ºÞŽW-k ³®ì)Uý‘ÔÝûËsLéBCííç¦T™ä>3„Q·:¼æWÈ[ò¾ò¡ÒxØþ^€õþFåZ¬ƒ7cd‚…AŒú$Æ|X>Ű?€5O ` –ãÓ¬ÿ¾YÍIýŠ?&°`šHªÌ•Ó³uJ5½ÐNi·½[W× +óeh×ã &—=Ÿ–[^uTé‚|Jê*?½àöûoѹËððkôƒäå`’èÐ~ xÄÞÅhŸb„wÀs +c&žWˀǶàñúpŸ xÀ—wùL·ƒ`ÀÍY;ƼçN¿–vAå"³8/ô¨åŠ•%¿—"Òdm0ÖÔäq„@ÈDy\Ç‰ÙØŽv¿„ßÿ†D ^©×µ7HŸ–H¿Qx7 ‚M¼ê±™tï@H‰i @´Ò÷Ô¤ÒG£“äL|WÁL[ûì ¡¦x²k Íf³ÂÌß„FH½ ¦ü)”Ú¶Ö÷Ùÿ矈‰DóýƒŸœ‰¯ç7Ñ“¼ávþ«þ®ùßÃu HÙ‰o°”÷a )ª¤L:GÞ€ÄÃñÀ2-ôX`ïE£ý¹uqª)¾6Ó{Þg‹æÖ"ZSFf¼D¥£ÞÌ­½Ó·%+·ò)½†RÚ¼:ל}Ù©%ï ªíȽÑ9*ìó¼ä§€¼Ë'u6ÿ$Þ&BêKö[…+Pÿç?òþF"Kÿ6 g§BåÙ\ã¶déàêDÐè·yÔx=Ãs;uÜnÅãé¤.×ãÓ~¾ŽÙÍÆì9@×w8¸GÛwnW~ÀÊ–½Œ3vèãFkݦ—ëUn“‰¸›„"$A ?ª|í¢¿Jqýï~Þgx<› +y6u©],qRìéf>¤cv½Õ75wåk­´Ù‚ „ + ¢¾nDkusÑîJÝ£ƒå NŸºXäoôv>ÓähŽ‹ï™jãS ‚Šãcíú=I}~‘ú“‡ðc”E×Â5Iø——÷²sñÊg‡1­¶¡b,Âc×môu\©›Ëmñiì?ó™2…gK}D̈ÑèûÙLéY‹ŸxXCœp«¾:ö©nvÕºæ¨ÍMËÛ¿® ÕË¡5È>΃þØÀW}h’‹z2‚›dÕ€Øjã?Uÿl’*›¨©¿#&’\ÞHèmWi¨O7[žÏ¤¨2#ƒêdWðý±O¸Á¨Í¸ãa¶ƒlmúcMÛ÷¡¡vîY)íÖC§æ+°Ñè†véºd…ììªÕ¯l×á¥í ó|«­l*Í[n7Õ9÷æîÖø,ŽÙÆØîvЦÕKd=â|kÞÊÛÓù¤Î¸É–ªÞJ s^¼*Ê„›K?.ÙAöÒâfúP?>A.Íl¶–²ÅÎÎQ+í£'{mᤶZmI š·®ìûSsÓOµºk«v•»×Ͼch'šþm”­åJ1QË/ïbÌõ)=®s#yÛB—l`Cܳ㑻w+j4A3P*¨?ÐKTcœÏqõ™¥Kut•Ó<›Ê}Ýݵ0>9×è£^®îü‚[å.…ºëg +-'ê—zN;Û™VnãIh?竳mÄèòØÍ±eh?Ï•f «SB/å—µì¢e«¨ôƒe—“·®¼i.Æw®˜èÐÑI¼¸ÞCGܵ³³í}«ž,ýl<ªÏ +ïG„‹}uWïžÝc«qs…[ëíÈ/ª9«h©€¶Å€/–m±<¶ÇjÚÄ“‹­ecùU-"Šü¢›A…]?».xÙÅÝ-͜Ӳ„î.[Ëæ/G‹8ƒkÑ•Á·ÄåëSð41Cœ0ýœÄ壩.ç4ž/vÇ6ž›}Ë08f–ý—ì¸)’YèzûÞº¨Ï‚ÇJŸõê?˜—áQmÔ˜fo‰IrGp>„ÿ~ÌõÒ©¾©î£âÐQºpÕ6àŒ]²¨ƒmǾS¤/-¯À=jMSø”»ùhÜæ¸ñ½• JeNÃû[càt†A/®Ù±·~eMþw¢…Ò:z“eÍÖjx=šª›ÏÍU:Ý2»y‡Ïxåq;ãÙÙ0†³Ïðd~7åZåÚ`Ü׊Ý}Šýzn[š÷¡¸n)þÕ¤‰ayJ\<«’ÛšÞ¼ÅÐÈÖr%fA…1³Ÿ-SÊšïê3Ÿ¯ë–¨´tôbö4;cŽ4âá-T7ëo2»p|Îxîí{žr|ð„â÷}Y¾ϲÜÞ8tϼwRðœb’¶Ú»’öÌbD›cÅR½>*¥ŽÄQš?>Y¯ª¬RnûY?Ù¦LL¬Þ7 +écËÌ=ðö7Õ*;16¢n-riÍ%IÝ(9]ez¹|f¯WJ~]w•“Ók(MyÈ—`?”;:XH÷5³“zŽu_·!,{pZLá^Q˜„PG@˜Z˜ž?d8]$wz¥K+fÃ\¥˜»s„TçX©õð©lc‘GÓµô|8ºÝ¹”±7/òú©•È®e¤n†¤U9&S”Òvùšê¦åL±¯Ht‘•tû½ë[|‹Š8¼"ž˜Rñ–0EsC¡°l.Ó rrH—¶àůÕÅWž§,·­X ®F=»›öÐ;—8ö1Ÿ̹š +ƒÉ•nt:i7?$›«;3ôëU¯Ê¥;^É‹«G‰²Ô•yYß»9£3²uÓ”ÌáƒrWÊ¢â»qCÅ\ÂT¹±Bá‰éEʤ˄Kãa¾Ä¯ÝZ•w˜Q‹ÛöÎ#®–¥Öû©|½êlÃÝ"¬Àê2ÓêïF6ì1}£„ÝÝåóôMÉ ¹Ý›1²ÛœöËêwZgÆiB“´éíAqƒ,FÙÅÍæeqXq“xyy]]i»ìW~?* + (ì¥Òø[Iñëµó4mÓÜ6‹sßVØÃ+̱á­Ä +ç1]˜Öm1gär¤ÜIÑêú!P¥Z¦²l@~úá…ÛOü¬®Ý¯:hà™I‚žÓxúíÛH¬þd`ð–ª:/‚aÊËÉ}¬{ÈÇ¿ÙQ¶ô8{j½ÙÎÉ=&É0J@¼óÞ×ÞlãyJ±Âà…1mð¢yËOkô­¦eè@õMZ}.깂ZÔ ’S†4ÝQbߤiu9ÆÙ"aµæ)ö _!m…ÀŠ­aMßcbvKýT1l½ ²ÚXer¥_Åì>Ú×2R&»8\ˆ^‹sn¬SÝé¿ýLK¤á¾ Ø’C8o­~˜¶?xÒ·Kð¡µL¢ýcÏR† Ë ù,9¾¸eÒìÌ$\„„u̇æ/¾·Çá«\–ÆÉé6m¬R«¦ùÆD¢€UEÕÇ6þb„“Çø{ ?í–±ã½ùÈ•«—WÙ¨LBS(m¦¬Ðáß·̸ mçSmå&Ee)¯¬Ôtåè|GlÓ‘ß´¶ñ”±Ðžä„P>$ÜÎ!Ä\©„uïðD ¾k¶ øªa×pò3°Íø³ÀªÕÚcÙî]­õ6šÎ½vHs¶gÐt•óÑú¤û°']±ƒv›“@iÔ«‹R¥šYÕò¿lÇÝi>pêi”à`­yÇJ_ ZBUœ)/ƒßÆ¿SæÚ²•ë/b’gà¾Ú³N¥Ó8¶y¾fX¬:jÊ›_åЃ91ÜZ¿çhº¯FH‹XbH‹t²ˆt¥šðµ»ÙÀ]­‡Ã×Þ±ŠHÆ‘Ψ“A  ‰XFÓ;4ª®û8Š?žãÃvømÆÔß™Ov ïvêé8+Ú¹á‹ÖÄ´xîùég>@Èbað©ÝýŽÕ°ÍcO€Z8†6d)Þ7·‚ˆœgCiY‘ÓJ+Æl_?ÜVÍäº'ôD8êõÔG,,RI‡SÙ.CYíAýPµ{¢ï—y«í åžçfWÛ²]þÜ KèÎùü'Ý€³N‡uÜk!Ï‹Ž@>´{12  Ù·(*a³ãzÔ.w$’&¤u]}¹{F9 høf$8À:¬ž.h cM({³Æ©±µÜ§L\I™3º—+ñ&¦¦1.€žàBŒAXXôÕ¡e\¯ìn­]ùÎxøpÊá5‹íî]Ê›øKÒ%27Œ\KEyð‡¬f3½É#Cν™Å bÃÁtþ‚^èð Ž4žwŸ©ÔøŠ|)³+i`ö,µœ×V1Ú;€9 ˆ±“ævk«æ+²)€Yf9Ƴ°’0mN?ܸ¾[Åcú{öÕqà^+3Á*Ü=,“‡Èwâ¡ó™ÚS1À}-„|+àZcÍ¡ó\J'ìÆ¡gá#™R ‚rÅk*…ýÀÙcJÆx ç2zŒ^à3¨3.¹´‘vÌ=¤{Á¾1Ðß|qBP@çB"År1JJŒ¹ «ÆpƒÑpñãIüÑ5þ̵~Âö1^ÀC.îvx^'Štcã:ßDeOª<çnî"lÇçM¿fæy+¯¬)£Œ`î%l¢É†ËpÅ5w°¾7ß&ªt?2lt46…ÉZ•ŽŸMX'cwñuÉâdÞÇ~#ÆsˆOqãü$¨Å[sÅ‹1N@ì‚ æ6ˆþ(Þ¤Aå¿w¯Ìé®ú¸A«_žãü¤_ Ø~=GÔ€¡Þ¨#-ÎÐwœÆ·êõ-“º¨#¢Æ½êh?áÆé©ÒÂå¼8@™˜(…ÏÄÐt@1fî PÚ‰áÌb\O€BPXJä«WäÛš&:tÄÅÝ? + §™ ø H/ÿd`|ëîýDû³ÉЄºªû펮˜M <·|3Ÿ›¾#Ýôg„É—“ÚH%e§„< ¡ž Qn³øE#úíB¶Q;†P´QlƘÃÃÍ; å£ÿ‡¢ÔÍ|Ö€F¸ûÏ~¼…§ÍPëš“ŒÄsü?¿£ŽÛ1›;™a+­‰ÕÒŽæôŒý¦(ðÞak9Frè¦*:Rlª_ù É™€¹vãgÛi-ƹãÝÌŽÄ(Íåv·9fŸ€™Ï9À,ŒBŒO0ƒEü‡f‹ŒSŠßÈ´CÀd> =®égeõr"+Óƒ¹Ê½ÑV²,9â4Ã=NI­g—'vúß”x$Ÿ ç)š™€Ó«À•š]ÀÕ{Á/$/ÿÂdã4\^®¡ícwÀù#Ȯ¹1ÀåãÝÌ™U9ˆ3†8.{Ö7ûN7œ…‰¼J21ÛçÇÂD»©7_¶¡ŽÅßBY¡íòžÀµò@Ìzëö¤»øå/žXñ³‹¿ú¥úþÆ·™¿–$ñ?¸@Z ó ®|xvjyv©VŒM¼JµƒtÑ—YΤõܤ…I%þ_kRjÙ«9ËáGß‚•5/ÝQSzÕõ<#ãR¨¦Ÿ ~B¿²_òù—æëuï¿L¾žýDL,ž?Æß¿”`†C’táÄsÛ~«@ìT+@ì’ûˆAÀ±W‹—õë!UˆMÏ¢Ó?Ì’Ìž +¹E¾<»‚ÔºLW ¼[ßsHÑ¿bÛè'b"Qšÿ$ +'âê¿Ò%þ•-œ˜l“`ßb3äo·Ë+ °Jæ¬E]ÅËøYC­¤—2P„Q(âéaÔíýVMYý‰(0V›-nð +!_|±¬*÷K‚þc7þ£õþI—øZ‹TßÔÝH¤ß¤™?Âï¿4ß$Ø!ñ÷^3!ÐR«;Ðä4Óv€V-®€Ö-b@ Je Õµ9ÐÌ‘M[{ÿT9Cóÿ‘ß -žÙYaÿ;!s¿-¹ÌûV>ák(ñkzÆÖQ%Å­n5J]©ÇRy™½Ì»‹ü3xÎg9EŒaefÄâ$$½ûÊv‰†úO5®¿k›ÁÁóFÔ6ç ×iÞÏ­Oæy|–hèðq8rú»Ùe½tèæ¼nãš¶ +hÞXxÌ\|šXi‘¿Â•Ô%¿ÁÍóâ“ôgKƒéΈ ?œºˆ¶˜ìÊö~|t½ÛXØoБÅÿ@™ÕÏþô”D!$6Þ¿\²ß̿¾êä9ҧˤdXÜÌÖ¹‚P˜–z«€d‡ËìŸ/ Ö;œ•_ÛÃÔM­/]<Ç>ÙÿŒ¢êɇÞcj¨Fcn0P {Õ~þ=3z³|hõÐÙ­Ø8tC§ø½&Ý¥wÓ¨Ãi¢í+iï'á[&¬yÕç?.Y“õj›}½¼IÒÀh¨¦6u–ûø07’wMk¨žšî {mú}hPú:ï{¨)Lºa¹°èºDuÓÙ¹•}‡Û—Nm?]¸´…sýÕjËTóô‰¦úZðþ ÷Ðc /7 U©]·¨ýÊ[zܳÓ3§¶v~Í•gÄ 7ㇼÈÔ&Ñ¡“²f ¨éª‰†úÇ%ÛCGK¢ZmºãQ6ßö9KnµESoÃôŸ}£äg?†Ó›†×€æš_Ÿ•ÌN]›ýÄ¥J›ãZè™ó}²7UOjGî±»ü¸Â+×´s†Z ŠAÅ~®ä©=p* ýË%kòS=ébâå•wqUÖø ]?‰K6‘»7Æ¡%Gàì´IÔ0Sõ[ÝB«oÏ&¸æ²E¼ºk”™*•Ó®¯%'êU§ý­Øs•ÍŠ•KöÀr\ÛÀúÍò¸²è—fµí¼„ž£eKÅïºv×|ÑÕ +¥Ânäî +ž©6˜?XGÕ­=³kš:RrWªíû¯.½ô¿ÞçcTGµqÍe¸‰{l§N[/*1ØØƒBâL)í¨lí{ +ÇŸ’Å !kYb–žSŰ5çŠôm%â‘§^àÞ húy¾–fv/¯`Ëu.pè‡ñÜŒ1¨×\Ã:GÃýD÷Oò,nfï³å±¤œ2ý‚?¢;û[ùÓ¼/”cÏñ‡æ„¾ëKdµd7õòg^©—fŽä[6´‹aév÷¨À=Þ3ó8Àצm>š°§¼‚P—Üm!}ïÂËi„š2nÏ~ö—5ÓÝL:?Jº¥dZÚ²7\hvV|hÄç%ªá”î«nqqŒ±>%˜V¯‘5µ:™îöP¤[ݦEèu¬UÛ™sYß;‹mÃLJÕÊ]‘˸{”ÏG£Y1w›圆®1¨õìg´²ãÚ¬—…Žã¡>óÙŽ^•¶ìÜöñø\T× Þ™ÝDÁ2^!•ãâVP|ÛùÞŽ-G›óJn×Z@VøIIVÒîHºƒEül¶Ëñw¨·ôêZ; +³¬?î*°çb¯È•ÝþÜ©f«„ëR¹P'žJ¾íi㹜§³ãjUÐg‚¬£Qá{§—f+…œö +E•~çʙݨRÍxù¦¯gÍŽâ[“¡­VsY¡N[é¶cn’Æ—qМ ¢!+%ás ÁÔ³{ÁÌÖD/ưŸ`hd¼ïü&`š%½ÕSŠé¶Ñê)n•Á|´*- ³[ähÜÎwáH5Rè†Ñ±Bªá®evCSŽSšTD”få¶M¤e…év)’–)ÄÒuD£Üÿ¦óˆ@8Çi¿'\ÈíÒÖ¢óàWbŠâíKÓàÉ.ésUt¶æ˜U€sÌydsÌ'ÓK0€v¹sº–Œf®Wë”o‘ng‡=íIý°µÜÝ7Ûõµ%ŸôQ×ËäQYgÊ—Í'%Ý ¾\;%ñ¬[½€ +ø€àõRN—襖ÆnÏ¿êÑO¾…·Y7KO—ìþÎ^Ù´ÞÀ˜3ÁêŒäö¾¶úÊ* ºsd:3¤-ºóZwè«vîöV¡i·¯µJÞ/ê5%)ç_1µ*Zr ýV«ÏU.µjvtÊÍ~¯d$d¤ÁkK¦—íÚƒ«mÛ'Ff6;ZM÷öÔã<9SYyx%ß·Í›ÍÞ™/±4 ¥K1=sDqôrÔÔ:xy?XàDƒ¾aÎgLcô$[@w…Ç÷¢êq§ê¥á,º«Ïê½ß5ºBݬþdu0ùnÖ½g¡[CÂÚ}*O3(£¸Zõµšé¸J³âdxeÒd{úaýnp¢žõÉ–Cú†„,é;)$Š«ô‘@›¥{Œ>À—¹3ÛÂãÄ® c¡7,côëÞDw#cŠzNtAyÆ%‘ãƒ3¿¿í"¢Ñ‹1·QÔ®#Ç÷¸Ñ‘ßFí'«£N¾CõÛq‰ŸSV]˜SëæÙåð2Ræ¨.?QÛ oIà·€@™Ëôx¥ŒÞiOX–´Ámã½ÁÂÉc¹5ê£ðÆ® »ç–E½¥¢|¥ðý + |óÒDü?AÄÙì _JwÒŸ¬Dý6tн۔`åfVáí7~2®¿Y^Z>œwæ¦Ú¸õâ¬tö ÿU&Îo_[ò ¸ü7‹h©§òY¤˜.-¿ÉÉ>âäŠÝ ûÌbzíåïå—Ò 9ÙEiŠ}‘ÀC/S©wj½:œáÁº¿Ú'HÏÃhê ´T®$4R)üñ½]!•³¥tŒS)õÆÌFëÕrýŸ¬ŽtµœQ‘È–×uF(¶Ä–ÏM7}³Ö–™K‡úVŠC«ÂòòœOv9º?Ó±(ÃGŒmJ[䌜·ˆ”]$º€T~G𕤞pg“…áL§ECÌV†ô%b¦Þv¡–Ê]æƒTªËï@á9Ld¨)A^ŒsIŠ×óO€—žÀË àFu𜿑ìÎäG1¦a}¯}¦ÕûÓþxŽkè£nIµ’/\Nªž®¨¸’–×ô¾ÇÎY-:¶)¬6´±ã»øýl`Ðæ!3=‰ÏŸÇË« ˆ!…Ç(@43 *…tŒaü㫼,@8f#Æn 7{„¹K¢àH€(J5@h`~ÆÝþ\W‰@ 2gWî{Ùž&¶ã2çå:?Eíh¡ªd‡'&®kö…ëR×9ÔÇü«ÑL¾fÀ)0– É· È݆äì$&äD¹M\Èu>ÃsbD@6ò‹‡ í<ÈJJdnÞd¾½¤bÅïÆ:U@¢S…Q뎲ò—Ë +ñ0fV»Âvòè)(imýçn" д°a. äODmguÐî¡àÂÎz + [þÂŒ{þ±@EÞ×<ÈÇXm@mèFŒÆP“ëPÓJ<ᛥØÄ¨<~ ÈfP î¨ò‡TiJVž‰÷¸jÈÎÁ±†Ð¶ì}Ĺ9úÍ,¿dŠÊD‰BÖ8ï/$Ó/.Ð^ŠéÂæ8禦$Êm7oýZR +¿  +ñKµX‰ÑŠ×çú~Œm0|z£wLš…ƒO$À¦’˜<>ñøf«z·éº£Ièñ÷ì9É/.öfóÙõ\}dT‡/óÖ;y±úàÒ컳‚ÉmN?Çß_hžü°kªØsÚì;Óüɲ£ð½ô?6¿Åïæ³ßuïìGŒØKÛì–ûV»{l;Ûâ€íM,À6‚xe;Þ¹lnj;¸7½Y]F[çÖíCOS ¯*9+ÄàžÖ€£\Xúêi˜N°•ŠV›ÿ1‘<ûoø‰°–€ŸÌ€ß|n€ßšpŒ£øSüžýj6€ŸŸ"À/6iÀ/Ãà‡£=à[Wðî¥[’³Çc~‰ÖgÚ- Û²íœ*|•5j“}ÑXO~àRzýÒ•ÝöïŠv‰àûÿ‹˜Ðœë/ðxöpw¸ç,ñ9@DÅ%1bD:ñsŸý—S¼ÊŽX˜³ÿ½ë[¿àÛ‘‚-ˆRõßKõ}ñ̶vå[ª³¥Û`ãõ <Ö“PX,æë6±W7÷7ö×ïÖ,-òw”œÏô¼2GG {FÌë«©Kð¤ƒãc¢’þ¸d¿ŽÔ{y¿&ÔKí"mÏòèp8fWÎq?ãäËŽè@_K|xÌ?kyU…—ÏZ_|ü ½€:iþwý063#Æ”>ua<7¥çikâáéÊøèHßúaR{$Ÿ +£a 5׃:¿ô?C훩I¶7³ÂyÒ±¯Öù}LDÞ!õ£l¢¡&L4Ô$a®Õ倩y ¨%4fKèL]ðL¸E4ÇÖj$ïw»¡zžy·Œ¿¨þX[¾ûÐpžêY©9,‹s2 –+®Úw¥³«¾rîÈ;m_´;­vf0oÞô½©¥8Ãý¤jXðÇ%û«j˜>]îg¬ñ=BÿKC kIªÇƒÔÿtF™>Ôåzè¸ouÃRÃéÒëV½ÃíœfÛçx"Ó,÷[m©1iÞºµyS}:+ÿ9hí|tÏqaôh@‹ðëU¯£aD{6KgjaÃ)×èèT¹GõìÝõs˜ãŠàUùË%ûõCovZ¡ö“Ö@ô÷B¢¡öÇÊô,óò³³³£wÛg' %Gͯe¤©Þëdã3*° *}3eK™:º*e=›*™µ°V°j.W©Tw~©Zå.¥†ëg*'êׇŽüé-*¹9ØÏü* Y»+½  ¿d‰µWûu©~í±? O1éeâåpó4=xútªW|«·Ä%Û¼µªóÆg˜^×-äzD8ÚVwõÚ¡ÊW¸9§­y rzHEK¹¸=(ÚT¢¢>_ÛžX†6^¦4«Æsô0¶,[«Å°}ké7-pŸòÑôÍdŠHYÉ·m½›W(ëxcs·mMDO<¥Â MÄôø-IÑö—µ?ÐqÜÁl·Fï–mW¸šJ`€ŽmÀû^ÙÄçÃ’E§ÖÒ.-â4ÜÃæêX¤¯ó¨°ënîî¹y›¾±;®x¾]x³¹Û—s)}'ìÆ Zu³ŸÃ¦—5E~“….+ Ïºm]·´íBGßú-¶¥¯3rêC]fù RŠàÖe3¸øÀ+-=âµÝc“q+A¶T,›ØÃ²–µ~©èŠÅïLºàeTÇô³\-9?¯À\'”¸~NÃå±1p„™aÐÙuvìewYè”?ë³fí¡£×ÒluI©áࣨL*[Êì¦Ûn†Ç2å¸z#ŠïÆ‘¹}ÃL‘…Âc©ƒé}dyå;4CüQÖºx•kzå6ƒg`¿+§4«8jÑv’éë®’W ^1žË{&ûÙìõ,t˜º%L +:mlÍVV®FÜOßÄ1ÕÕOm•~¿ú/ÿgx˜Y)~I9ÈÑÚºË +ÝC¤Û%-í–ÄgõÄA{tÌB>Ï^3Æk”`˜ÕOz@wÖé–ú` tì=ªGNúê•~3ŠLÇ-²œcä/ºÆ;‡Ç}KÚ²µ Ô0èR™ÝÐa2|ÊI+ÇiKQD´¡ÉѲŸ—²[”n›…#iìº.>׎hˆ©‘0î¤×‚™©¯x¤gý’Æ@Fæ—“M…·‹ö˜'1õÍ“¸SàÂõµ™ ?söFÇ_,Ä&¨ÌHϽûïŸÊk& -ºÔóÌ–QÎoYLëóNUÝ@údx°~%r÷¢ö’naþ#iŒ‰ƒº‰FÚ¢„qËâSö¤ô,ðÔ´¥ òür8+óvîVçÂÑã\«¼dw«Å…õ•`Ž»u–ñëŸfGG1M_@ôÕ¡éK +rz¤54Úb!7æÛ]«÷†)G+翼¼ê¥ee‹/jTÇ”æ0õ”z‚z oyÌœ}J[E-â—KåÆÛ¶ï±sn§þõ§qLaαÞb%±¼ æ$*6#N¼&})'´¨»"”vU3äkúðÈ¡5Y“9|Å9Á6É\véÌk’oéãu¦¾..Ùj+=+¹Kóšy¿¿ñýúíååÍLæH°¤¬‚øð–2Ñ3¿Ú{nÓ¸oÙ½;Ù²ü~x`N½ý•iê÷}=RtÇe :ÃèÕëU3”®Ï 䛈çò9×è“ûò;ê$ +}#…Ï?; /MÊŽÓ lÍëdŒWÇëZ¹›nÎ Í<³P봥ݾÇìéfò°jVmkv>üÀ(dÖ®æ¾ü¬…FÊN‘Oz\ %¿_hFªçßïú’zÐÔšêí¤=ùæ¥39|•dnØJÓT' +Ûkš@:?µã ’AÓå凊¾µ=糑ÿu eË5©¥6øOIîE+E˜×œgêÙ-Å-•]§§J–‡Øº÷écNa4!,Ðm˜ß¢µv+Šqx£\†À‘#RÆá`"‚ŸöàȘOàvJû [íDAg‹ 5*H½P +tó'VëY[•vý‘¯‰C"ã‘È•É)‹ÅrË"\ëa­d"œ®Hïè¥ ¥íšIî4e:\p¦@ºú½ôÛdkŒîÒŸʵn#ä(â£3Ì…1Ê'DØO_pÔû`p;«¦a…å Û©AZ¦2L ú—cʰ{o˜µ]Œç©gŒµH®Ð2Ôý÷Ž•ú&›*T/+U¯LÆZº´ÙæðÂe¯¿rÚéît2Ì´KŽ'}|« 2+r‡Ó5º“…ô$Äâ¹ã9FÐåÏŽîÐn÷èVJÅ3¬ïàÒZK$õ2 >e̳z +Ô0#¼âuwîPwã®ÂÝ[À=üã*¸‘)4Í審³nU3ͼñã9®¥:t¡ ·R¹‚¯žtæzÿºí2Ê|Ý’ÆÇ™-ï¡ÎF™¢ÞÇÛ“À[“-zçÅ×6?…îÁm’z —ÓÔ0­S9:žÄN<î +š øµdüæ4€àS Dfãr9LêF!”m„–ûaŠ H:^éÙþ|p¯yõˆ-»ýJÍLlÇ%NÚóæã>ErȲqÕ²²RÞ“ +vĸZ(ø1îs€Ûw€ZP­Ä8Ï*\Q€Š¯r¢HÿÊêëž3nž+?žã D*¦QͰ†mqÚ¦ƒƒ ì×5”æqyTr9¿£¶_\ ¤£ƒ4D¥°æýÀôî`éþ `ø(Šq~Œà56ÆY©Û16]€QÆ:Æó 0h, ®%÷I£iÐgŽèɪ%ŠtÝ£ŒnõNì[¿lǵTìäí¬ 61ë¾DyaöA$n×&Ú ©é¾]ÝxTúÜQX?3¯bëg€ðŸ$‹ {8›~‘^{äS1údŒ‡°g.cUØKÄ÷{Û0À"BXxnl3—MW<À‚¨ °º:óü«7p_á½ûOÔñAìºÅÌzWüI—2;H†·â!Í#ÆèI’H¦G~v02U¼±vç£÷„¸ˆ_’[`û•hÀ¯£¢ÆØXÉÖÜ”fŒå àw5øþˆüÐÏ|Yê|(^Þe€»å!ÀÍö֙Ž'nªCìõ¨Óý©h÷–V¶fRB’d)l…Ëží‹C +§±ïgƒægÑѧÁ}Œd]HOGiI0 5$_ cÔÙ2ñJ1^9@¼ 'F⣮­€¸”Y@lq+ÆkˆYøJtèÞ΄,ãýмUûµã"±Ûôú4,Þ:[?g§S½U¦¼T^£^®÷ö4ÊC¼áŸêHßY!dsT2é¿Ñ œûrëb LFŽa耊¿ù1‚RŒgPl~ã°ç@€Bß" °Uïö +‘ý-ÈW¶9]ã=‘CܱEl*ËËr]òw«‘ +Âל¤ûáÜP`‘cÒþrüfLOÚ¼Q-³ò!K[”ƒ|rÿ}8fáÇ|4½D-@h;F¶£ßôIRFèfýèEÚ™Äë»vÐyh•¦Íã. q礼váÀ9ÙÌcrd÷Û“IAˆ*ÔGŠM Ì“Ø?¦T¯ø#¨Ôî´›;$ùÐßÇ_™Ò%’e ¤µûx‹ß¥ƒ¥qŒÍ°ŠñŽqá›i[€åÔ`yöþ«ÊÝ´¹ûbÁ€Ùªù +•“OÅÞk?3¶¥bKͯ’X«6öC‘DRÌíïó¨¼4'¿üŽIïW1»ÿ3b"Fâ þgÉÏZ9<ëîbÌ.€WµoØÄ.x¾á>YžÀ!ONLÀ§ ¸Án_¨Y]×Ûæ ‘iê2lH.Ÿ+pƒ úÞGîî\+dïÐíßfãi¾I’Ä¿‚%~Ò%¾bð7oø?>àÚZ„A—k¯P:€Pî@°#*"„¼P‚™Þ¡á€ ýü²8_j·[>í«ò½ì4GmŽF}s[ª¬§×ŸdæDaNÄåÛùHªâ$þk°Döï`߿ܿ÷×éÛÌø_ÒiùÍn¼3@ºº@N¹ Cž–ÄûÆP¿”SS{ ZéL7gÓŽ éX6_¥¡‰”ÿ8޵Ÿ´š4˜ˆËÿ¸Šÿ3XâOªÄ·™ ¿I ¹Ää[Šj ÓoŒAfÉžAæ…³@Åã‚ÌçI¼¹î—ÿ‡Ì›¤öz줚ä7pÅǧ(Wï3’kÞÊ¢w¥[ÏÑ¥vû|C¢Õ9ÊEÛ³<=Nº;ŸöîvÌnv¯Ã˜Ý§Pã‚ï‹𓈰Ùåï¹Ðû´Žû{)b-ï]h‚‘ä!$‰·IÜÀ†úlýo]M$Ê;êT¡«sbá ×ÅÉsd¤ø“:?+‡1=Ò÷h³œÛ:Oúë³Ùpã[1ô᛽ŽJ‘»–×GoÐ;ùôveö´ë/ÆR4ÏÔãjŽ¡ÓŒ˜Ï)½Ôð‰GŽ3ãc-ï…SåñSÎL}ªPÒ»$n qÉþ‡ýÈϽGR—ëÜzw‡ýœí–‚7ßÔÞð"¦÷ÍJÝ ‹O£y™Ï”Òc¶ÔsŸi˜WáßõÃdj|¬ìXØréQ›£¥áÍç¾ß´¡zárƒAF-÷?ýr½Ÿÿôû½™y^Ë2u ˆpDw]vÓJÄÝŽ'š»$ +áGHýºdÿèÐIï 5&{9` ü¼x|/áMCð&":c!ļáÍ{µéÔ뺗x9ØÌzØÄ­V›€XÌ÷ݰ¼9wépsëxÌæÕáöW¨í§ßD+jSéæ­'éMõ]µ}š´ãó½]¡…€¨[,êýè»¶µ’8ÙÄ%{ ¹áñ§jXí•©&Òß4ÌÎÓ?>Ô§_$úPïCË|HwCk™îxÔ@iû\mµEßlÞ:~)‘T¾ã²^ÍÏ~Ú~cl¶; hî÷ê³Ò`\G׃¹gÓ³M-ôvçꮽªÜ']_ó2N;Ú•ÛÌ™V4¼OÛÏP2üå’“ƒþo: lK8•h¨?q²iZm;7ÕÛ>j|†Ã[}V¬>½¥í¤™s©_ ‹ß­éìgê«©½_»:–i ªoÖ*·~Ý*­uÖ²9A+ìÚ·¬éëƒl^,#§aJÞT´Rö³U*ÙqÍô²ÐÑðõ™outôbõµeÇ›üNh(•þ,£ŒgFoå¸ E$lEn»;[VØòP +ïH +šº!i2ÓaÍ õVA ¨>·ºäóÙ@¼ù®z ãÊýjúe³—2‹ac'˜Çžø½î™ ŠsÆ0È*›…iVG#„׈ÛUP]íª¨ôë­g¼Ü#—á!ÄR|+e+"FÕäv…mJ·­Ô“‚Zi*>Íhˆ««0îâ¨`ª%=ÂNÚÊ¿áYi +Ri >Øür!uô‹+v!Aúc$z{Îire¥6µSÆ·*£”e6ÍPÎiÅ&–…ö  Ùr9÷‰N)ÇÉ1%G‹1$+Ä•wÛÒ˜+ê3A4Ò¡"Œ[¡.˜ò­žŸJÚÒŸ_Žò}ž„ZK.œ=.ƒqv·~è¬çvüxägî˜ãÑ—˜ãIvc¨Õ Ì!RëvGé†Õx}/äWO©MTôþ{ïµå:®¤ ÞÏZý›¢ %R)CyC+ï½·”÷ætŸ¼˜g€”•™ûTýóWUg] r‹@|@ "Ábï9¼…Ètcƒ»TÏídʸ×R— ƒÂ•lK§—X.í§y~a;3kº]LîhΓ?Q½jAO‰f6›V[,2qãîÊK&E ´ÐÖÙˆ‰[d¬H,§Ë>‘ϰ;|³Z’x©˜`q¯×Yý¾¸Ñ²?Y| DŠÉ–ÉÖ|F2…#zClÕZmĦ¯5äF–LU9Ë8ù6~¶*[Ý©1ïOs¹ÝÑ…á22Ý.lûT¯Ò؆ð»2V}J&“||JRXviÍD³[«ƒ¨ˆ|²k$jmÅ7 Ü…{]¾e¿)Ç-ï¶b>ű9Ú¢f½>ïÆÚ]<¨Œqbp…qYÚ†qµ²¯õ`žLsa¦’ñ…Ew² ¾õ„ŒªÐ6ɧz³9ì%š#šÉ%Ó¨ã˜f—tçÙâþN¤ÊdËêä‘/æê8ð»av/õZÜ+ÊKuµXZEÃÁÜ4Ú æð,m3ë3²ãu¸ˆ™Z©‚I¢¡É2/#ÆQŽqã®MÂhÝîfFÒ0œ-âËzoÆP·ÙÕÙù½VÈ4Aðã –Í:!_²œ÷›†vΓl!.WÉÛ29P{bC ²±Içã-Â--ê–ÃŒ­X@ U67#æšY?%ZX'íêc¼?:ÅL§âÚÔ.u&œD-ÆÑN€[xÆxeÀÉ3¤F;!%Kˆ΃~á'õÙã`ªÏž*¸~púÔ»:„¨Ë_º½„r昚éUd©3‚u®_ò Ìé¨{Þrxï·sþô¡mcg~bÍÅâMÜ·nŬة`êó9“TÏLx¨Z1Êh¯iŒ÷ \ÄÌ0¥C;CêØ6èú‰Ö/bѰ>g]¤õÎ]¼‹ý‡êAÊ”n×òŠº +gƒ»Qº +Ou»ŽìΞ,ºüL<‰ÙÎÇŽýÒ.âZ»ä`¨cªûðS=áv¶Ä ³VvRvSÕ¬·%kû•Õµœ÷-õõ ‚ áSÞ˜ iCjHÒ&ŒÖ ôœ«‚¢ÚÑ/²cYŸ ½ åP´˜l¨‡F}ºÝ1—ÐùC»:rÒVH(MjEÔÒk"(>D”pQÙP ¦¬(ë‰mÉ ­œ9æ­é&ðOÌ‚è„iyÇþc–Y¯¬3¤/3ôÀ˜°Øh,t ¶b`ji |mÌ÷®XA?ÄØÃ%¢Ï2((ª$¢ÏPÔ“ˆ¾é ú¦å€è ¢/Vˆ¾T”}ªnCôLKdDH8“õp´îA}ê™ãEÏm ë$Ô›V0Î< ã¨ÅøènÞÑ 4$Šò’ ±¯1‹1’ßšl¦àÐàœæZ¨¯´©#‘„·ŒŒTÑï™ø+ßÅlŠLÄIb Nv å‰b°ë²JÚ^µábpRnÄ€oÒˆ‚Fƒ ÑïR|J6¤¢ñuiÊEQ›-(D;Ãæö)2T?&ôþÁŠ]{mÇÀuL*vœEr•ÅÜxcÓ3c1!“÷Fû<5Ñ{Ò•Ž5훈Q×n"†u¯äaûb»– ÈžŒ7Ä0 1 yÄ0 @qUf=bèÇ|ˆaà¿5œ+ÄPàÁ? ˜JN+Ùxˆ˜$µYåÇ’/²™ÕèP˜îbÊ=Âî—9h«D¥ÍŒHÝ ·3µq5Œ L­¹@s·D1.ìà¯g„ë1æØ™’¹ÍU¶ ØëcÞO‚¢ëCŒ: +Š~1ÃSÄX²`ˆ1¹ #F¾^AŒþò1V,btŠù¤½ÒOǪewB2±x†Š”m&Þ9m¾ä¨ ­pšFöè!]"‹½ˆ³þ#å$n(êSZ“k+ÓׇˆiÛ’S§5ALåÁ1¥ä%(ÖÄ$`'PfP ˆI¤Ã ¨ÁK1¨&(ÆÊ›Å¦P’@LŒ‡GLn²…˜l8Š˜La0šÃ¦–È÷ô…RŽgD‰Æ¹…à#åM,Äì$å)øÙƒ“›Ž†”ƒµ‰Fv"š‰IÚctõD«Þ_®!“Ý(¹NKôwå\ ØÈ·F°fd‡`éˆ`ñŠºÁ" +‚±n(š‚qÖ<(Ú}ó¹@e߉F0»G0Kü¦+ƒqm–Ä4Iôâ匆QQ_+€I.OÇú¹7èK›Šì÷ôdé[Ë}Ñ"Ùj’q yõ5$F!}T2" +Ó©…y¿=!æÙüˆ˜{;ðϼ#‹›Aá$”ÑH’£ bŽ:â hWsÌ5¾@ι³'’EÌ”cŠ˜1ʆ`Ëh ŸÅêb¬©ž9NlR%ÖÓ&ÑnÇëÞÛlG4‘ÙØ<. îßàÝ(šr¤ø/ãhP‡ ­du<4·"¸kD 8ÑÁ/§áåã<Š<¡K{åD,“"XÊà b©xZ ˜.KFÀK–TÞú¶HÛb ׈…º‹ÍÙ,˜ÔcÇ×á–¾⸙äͧhÆeÒ·1*·® ÎÑêaö9•7ø—dT'¬ à‰Àw#îŠtU9yOy÷Ëyd{ƃæhdžqa1lj–@± „.µGð nÅ„GðIµ‰àÝô Á«‰‚gW2`ÇÈåúæ±@ )è§…›þVÎ7ÏXX&b¬8è,g1Xõ›ò›7lCÕuuŒ_n’ÅórB8-(¢‚òå;%sÛZçkÛÝE†XËn[±¦«IÄšI «tÏ +‚FLf‚XÉžKŒÇ—ãÈפ´Oºƒ‹TÈž¦O©›PsšÅ憺Ôkë¢á¾²ÞÜ}ÊN¹bâ–øÕ¼bâZÜn¡HÍ›ˆ­ÂÈ hì[•![fBlÙ +xš‹+ÛD¶oGl.‹Ø<Ñ5b£ä»+[ûABß*yüq&êH¬dÙ†­ÊÇì §Inª‹‰±BE¨Öù,ñSÂW¹Sør¡„¹»XBy¦JZøvóp?´ETx\ XGzØl#t3yBèV&ˆÐí\¡;EBW‰9iy½ÆSÎ+•á([Mos[&±ŽÅ´øöºxÒ6=#ܾgw»]âv“Äí¯ç‹%®©W%õÛ`•Û®Õ+ÌGâ´ðá˵ÂË)â ÄD§»?Bœž‰qz÷iï–HT\’Ù›¢|Â"‚Ç÷I§±ÎL:y°Þß7¾~Ìî¿._SöÞ®“PùÞ.–€‰ßû‹%îyP¿ã¦Þä»É!Ì)ÑEÜß qã´žFR$Í͸öˆÛíñ!n³üþCÕ©ÛÒœ>»*TŒ‰Po™ãcÜÜ.-Âx »-Û:%sˆÙDÙÒO#ÞœƒK†F.¤"ÀÞ3;SÁãÉÙ«iŸ-Øêû‡±þ)Èç®0ÒÙÄ#åٱ͹̖=?sR´ »Ä('ó8²mc†L¹è"—žšÕl,Ú[äM…±¥ÐïÂ%ß)–7˜¾~]e\¦z¬î 4M£p®ÕÜ£ŽßÖw7TÁÓÏø«©¡5;èúÉi‘WΩßmŒÏ6ÞYdÒðþk ½îCÒ6²æ»“>¶>xªVäV˜§_´Šßf «Å»?›qð¤£ïþlÆ-ÞýQÆÁ£Sߺ?Â8˜»ü¦ÐýƘï +Ý7 +±XM:¯|r£…Ô4ª_8šU#¹Q®%0E+œë]v‹^q}¢, Öµµ²·Ñ³„•Jä‚Azè¦Òãm;ÃõÅÊU‹t1•‘Ρ󦞚oLãÓ€yyD7'ŽPÓ×àÃG$ Q³îvdÈåÇÑ)ãMHÓƒL´ã,w k× _5`NC6ojiÐÅ3¶Þ¼˜Ûžåúd^_ÐÏg1˜w ¥ŠÇR*¯ûQÕÞµ$[·ÕGX +îÇ@Ng[‘¤½Û®Û ›Înµ¶ô\¥¾°»”LtÑÆÈÒñÍe^$ ã¸&ÇÉLœy2­ò<ïÊʋَ;A®Sk)lŽlº†]n§ëz{¬ºÈæfÉ?ƒ)'¶štP&ïÿÏk¾+è³£xÑ0M†&Ân;`Â%ÍU÷YËŒIðC1ܰº}ö9W£Á6m­]”|̲vs“Ë;8ÎÕw6ÍØÎuí·;9 +@ÉMy§ëDËO”ƒË€ MÁªwñ]F#>±[e‹DaÂ-¦’N°e½ðÚ;1ÆœÔÛ 1}m2ˆÃ=dkr=`ƒi{Ü™Î$)S;;\lV@š‡X!â­xеSsv9#”k¸8ÝÈøýÝ8 Š><ÔäÇqÖ=NÍ[MôFMÅx?Q±µ™ô,³êäMÍ Y¬›Ë™Š+åY±lÑ€K‡xË@™;@±]×ÄÉ^=„ú³î83´s0E %r¦rÉà)X'ºœÃÄrÌO÷›™÷ëÍÔpáÀË%åN!€iˆe5âòεä:7˜=!Aöe·-g¼¶ ™V}`*¸ù¾²ïFÂõ[ƒ—6#Œ/ÿlFBIÓàåŸÍH¸T=òò÷mï7Šï¹ ?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0?0ÿ§a*½Å÷ê‰ÎoÃë¥=Õíþs™öóóóóR¸Wñ;õœeÓ±…'»èWõËÆWÅ _o|Ñ/™ÌßÍ®4ì¬à{]ËÿëLûùùùy-œ‹¡e£4`èþ@Hž²æ¯Ì™³W 9»¾âð+üd~å…n—SâræÖ >©ZÎ;ã…6,Œxì3ó_îëÖ|Ž\qŒüÓ*=ºnuãɹùùùù[Á¸uexV~Mê ó· Ãý#‹nXì³zĪGû^«§Cn¿M3(¸íz½Ï62¦ã³—z+† Í!à?ÜŸ7åŸéÞÖP‚U™Õ'ƒ.“q@-Àè¶k»fã\”=˜!j¯C!÷èØ=%‡¾÷ó‚ŸÂAˆ—‚ô mñÛMç-ÝUŠúáÅ®­oL%ùžÐßFÊ~`~`þÀ,eJZÃï†>kIH…Ú&Ðp×·êÓzþØÖ¶€§·D?­ZMRÁ@™M5£VömåÛnÐXÆ00}6’ݤÃë?øÎÛ{\ÇÀ”û:ó`éòÚK(|«äã#4Ù÷òoháqeeÉÄbÈ¥Þ QŽ»„à¡Ò'VØŠìíYo ©V&üÔÃvà ²µiVB >nЏ"Gjȶ M{ÿÓivâb¥«ø?Kh`~`þïÁ̧ú…)Òk•Þé½R…âšÛMÄC4¾€!Âñ•ÓìƒfÉ2œ Ò;’¹DÆÑ¦?œI6Ú~‹]\$ñ¾âQêGeËÛj“™Îl‡¦°P‡Wwi{¨”n¿þø«†å-ƒ +½áÇ‚˜79‹ŠÔ…o è-ÕwÂ7ã™z-'»ƒÌÆæÜ(­UWòãíÒLJÃm¨i:Þ;g×€,ý8Ñ};•åS4TAç%ˆ•x¿è­õ¤/â a$™Uµœýˆé:¯+ô‡Vª£«¦GÿTÙÿùÑ*\åi?á#Ý›Ïê³æ1>ñC2žÉ|Z5žŽâ½Á‡¸ãBöwuÒÊ> rÆbÌûQ»lcÖ—€¾ëšï¼9+ÒO:ÅþøáW5úš Ö‹)ž!Úí1Ú^&ƒ´&ÐܘwÎe4÷¡x Ì{žãñà}æÈÃNcÔGrÜÎ¥ ³½[3Ê w%ÚÝÐI³¶Ò $31¦-¹ççÖV?oÍHDìã³Ê þ¤Ñ•QÇåšùƒ>únÐ)–Z>»3”H†¨¤Po~!tÄqa×U|#˶eûkÈöÌŒfAŒåH-àøfÆ^r‡jèеfi¦åg¦Y3½«“NÌz{§âÝ鎵wôˆQR®æ­Š™ñ¿Å¬ˆG7pÍ|§J¬ø¦çËc,ªúmÜtšt()\‡vDçÌjãÂÊkÉŠ©¡+§¼|x©R©Åà;Ê´¸”_ià'åýeéöfúÜÉ€0Q-jRë¹rM) ?:ј*«ØBBÈ3/íËQ×g5méh WŠ…„ðVMÐøºDË`޹^‚x“ºÅñ\7[ źç5½Ãý÷W˜*Ly6(–ù™L”≷õú±u2£‡šÏ’vìïaˆB¦Ë›GP϶¾7äˆBlíbŽŠÃôiºÊ—œ{C$¯Dv%œÅ N³Å±&–¥¶NÜÛ ¦¸NÞ0° <‡‡^mF±2ƒ6Ã’ôé_é[&Jï g–íkŒ²÷¡šÊÊÒ^–{O”Ͻ}¨™Í“x±È4tÀöh }MT¸J;{3ëgh^6ý’åEâ#h¥õRiû:ä‚> ô +,J±TPcXÕ¢¿+ÈŒ'¹·š¤cµkgðçuó®pû䨯ǚƒ‰sqÚûãÃ_Q ~`þ~0L‚ŒÍ=mÛsNî®pŒVðú'6»D¹PxS•˜ÖÌeÆ uyò.°$Rñ%éÀÅŠÜ’H/°!Uùh( ­Ó/kÑÊj=‹âŠ45GΚ¾«§5Û²êe7™Ð 'DÃ…W_%g¨+¶#Ó«hñ¸$»Tû`£_áñ)¼©ÚŸVx:Þ]ÛR£ØËazç¨XT¼ª†A· WïêÙwS +“Ũs~¼ñ¬ôá–âÙá¡9¡%@NR» F6‘ˆ©Ã}ãÕ!dAT,Þgžn^3eWÅÂ1Z +Øunuб»õ§Çþ®õóÿ3 QïePc4èÞ] ˜º\ÜÊFúSu ÃýwÇ ‰jN·¬ÏA†_xNÎÀ*q•7õ=º>—…æi¢xLº£ÿM¯ó®ñÒ¬š&üd±û™ŽÞšëC…³'‹/)DÛ2d¸xM†å«u,Öçg]ÕHçÐ#‚šž•©çmP˜úÊöæ@êå`ºûÔÞ©žþ|èE Åvö˜’Z(4çæK ‚ùP^6ÂM¡¦åâ15gý×!M•¶KÇ%¢pHW7Íj°Y›R°-u¼¦þ +%å‚99 ºkÌ„”•Œ4ºˆN·ó‹oN%ùì¸i†#>³÷iB÷/¥A?0& 1øû¯ÞÆ­pã8–Ì91Ö®û³ŸÁ´ÊÌ„@b5Œi…™Ø:‡ù(ÇhøD…µÎ\Þ‹õhõFòúSÿ`ˆ…ÜŽÏß]¡DìFmyUÚ»\YµëÙ9¾„qAÉ£H}ܳ#ÙבôÌz‰Q“ÿ™NÙ´CÕ4¯¾óùÃèá’F׳äåTñ4›N>+Œz¶ü,Œ¦ãˉ(‚Ÿ½Ýëõ$‡c%Eìô’ºRš}ÀC={ ÝÕð©ÁÎö%rV«³5ÿi\0eQ¬£ÍŠÖŸs/A¯1¨è5Zx5„ÇÈ´:Ç«I)ÙPHWc‚ËøfZâÏìõm©Ùs‘ÅÔgû2sÒZœ-2¯½aÑõ ‹SX§E4RÏÖ÷@ò„ŽÒ}ósptf³ßB?;Vk òJ¨w7áãë ¶lã™TÓ?b2²b±?ó|é_Cÿ0LkñH\E~¨¡œÕëM¤cgfk1Ä>µCgO]NÑÔ䙦¡šÝœ½œgOEx­)ê0ïŸö˜<ê=zîç:‘W}Ioxrq%[ _yL‚ãn…&Eê믬ϖ\‘ö»Ü5=’gÖ8³CT+ôá? WÏ´‹·€˜&éç3‹.Ê«úœKiT²]¶á^-X•è¸)Ä?VذhÉÕùŒübÖ«ð”ëâÙ:j&ý*]rN1ÉCWóu߬ó~|èö‰m+BT0Í»˜ª8µC³dÀÓÚŠåçdõßCÁ~`~» :ƒx0Îæv1á3—z"áu( +öpö¤ÔƒóЃÖ +¢1˜yVuÕ Ö—³ÇçÓpP8§h\|Øh*šÚŽ!ªôŒh]c Hs›8«ø«®åÝ0ûáãèÈ£uÅ ç,,b¬õž·8 s¡º:óËñÇnz>ÃŒàZ,¯lëoTîWÑïôšˆ›WDÿ:;¥.<5ó±&2Ò£gCL}Æ…{s6ô2ô²{OXçjfØ$k¼]â§Ïì{Þ¢» ,[Y+SË8õ/97í‚gÆB½Ш®äG{qÆ àm¢\Ff#ÙQ×~ÐSî¸7=üð½[”ÿÆŠö󦨓ÜjDy-+#žõr|pëõ1Ô=sªá:xÇ–ªÌŸ cÖ”j/»…¥’×@ð“÷i¯:sÉÎ"(ý²A¢ëWKgµ=N’_yuþn çôŒ†Ê÷Ë,™:/å/—܆}ììLObï1ß+Ù^„ˆÏûh‰at¨î››Ò¤»maûyoJ÷š1-ç`VGóP<»h?”ígø"îs[+Ò«I³Èëmåý’øz“æOñ} . –cz9så䫵WÞ'ÅÂCI›£qˆ¥<ÂéM~Ðdã +m¤ì›,æÏn0û«iÆÌ_f58„þô8ÇšíÓ©,õ¡iÝ%çZ”ÆcÁšl!ön¾`² ^l­ózDˆ®g"£+3Æwn€nÞV>-þòjEá.;µyÜ"Ts˜BÏyY¸È›Îö` 5ØÜvÛ¾n»ã¢¶µ"0S¶¼x2èê%jχúgKªñ‚XªyY­³¾ë9A§fŽ@[ÝØþòÙ QoئžléJÚ‰g`~:‡øðÓvpè‚‘Ë Uñý4^‚FŸ=4y‰¦•ÂZ_ºý¤Î1ÍLűéé×TÖàý}8oùùëÂ,‡ÃM¤´íô)g¶{„jc×ÑÞK¢ÜÔ +e Ogs¼%sk6"]È$óð’v"|ª)zÝÚu×ÉÒõ„òz÷s~¢œÈ»{>¸zX¯ƒë#2ÿΚº–Õ„¶MÀ]çGZ&!ë%øÎ»8Ž65ZWo}õB*>è(}h]x’­ÈFå„˹;`u”}í«‘pñeo tydÖY…{4é.l5OÙ¬j1×Ð̲ðHDÐŒÉz²ÕÈR)}õ”ª ½Ó´´ûŠïïúúË‹õÌ?F¨6—ã‚£`&µ£‰ÛàzæïÍöçËœ7ò +µˆ·1¤¼©]Æíh{z1Û yº˜’ˆë²³ñ`3GpÎb½šB2®m3“r¸÷â™{ÏñÞÔœ‹yα †éË’g¯¨W%Ny\ñÇ0ú¼×^÷Š{õ5côùø9“êDξŸÆ‘<éòFÙõœ©/J«‹Gd /q¤cáP-®nZÒ ;PÍÔ‡ill¾»aF”v`^K9Š6›ée°û’ƒ?O««)¤ +}Œß¹ðùŸ!ò?0ÿËav~®ÍuvÖ¼‘¨–˜g%_:)—òË본sØñÒØDGÅש­%4ŽêЕÏEÊÑMáaó½èꨶ$ïÝ[ç-Õ<¥º†ýóɧÝ`ÄŸ÷ uo[•Rgo +¾ öâ's£4(m>Ûs߇ÛHÇyñ¦tá™´;e°œcI—°ð¦Idq׫E¾ ®åð.Wï9—lÖ½ÍÆWñ…½‘™Ô+h´[šs=µÕììœ “¦¢4¢BÚ±¡§Ôc˜}³J¹]ùéLÈ« zÛæUYyýùùSaö~&<~}Å•ô±JsŒÀ¤Óá®3Ö4uÊâ°Á&â§Cç1oD |1žªáU´ê³L×õ¡ig”sÒªz+ævoœ¾°#@éoì µv›¥Ó[SØ´cSÂD· ©òÙÓˆOå|UWx{~ 0<”$ƽ¹’Ç<1Ow"íá`©ù"Ù¼oÓ'?ô«H‰fÝ7wzJmÉPG Í/ÈEeH òïnQµ"®.ǹ^âÝÝ[ÿ Ùýùù? cvÄgÅá—ysg>²t‚»™·L¾œ9§‘=´’QÎu²nœ ¶å>ìD¯¯â—¦ËÉÅoÏÛænt~_CõÖÌÌË™rœŽÎ1îëê¡oÌxÌòÌ"Ø÷œðÜ8B×Ðgj›EÒ¹7gb=ÅqϮ4î!%¸emªis•ÓíQâà~Îxn6tÍòap¬öÞ(®7ãÏ=¼ ãÃd9nt}–ÞfÅ¿ŸÄ*IŽvxÓÿÚ•3ÿB÷óóÏ‚!JÃè(oo5ËlÃ’jò­V>ä׺¹Àäë{0ØN¶Þ49‹º‹z*ì_o±‘te¤¥E—_ï(³‘·GõÑU¿¤˜;}…yšôÎwÆelZL(£0­‡VÆé×0½Jôâ3¹6W^ÜÉx½è׺ô`³‰å’@‹²Ü&¯§µo¨ó”ssK³:†Ãé 5Ȇ’ï=Àº±íêÕÒÕÞó½ZSXAÞ}Ÿä-?0?0ÿ8˜Ò휶±ÙUxóy”gAÐQg!ØëiÛÆ¼¯œñ¡oÈÀ7¸ +·¥~Ù +rù«¿ž,ï*2šœ†«/ΕíŸV¶“Ço¿Ù ÇotÂñØ ÇW¼ÿv'(²¿<—{ç¥:I3_ñn$¯³ã¿¿Ùq(ßï}îã÷ºo?Ww}I~¼—w'y=ü÷·'é?ŸsÞþ"õ_uȮա/~~¿ÉOú‰Ÿô§¡^†K‘î/ć~Ÿ¯ÕúY¨ËËåæ¿¿´ öß° ô³6|ažæâ«®PÏcùœ½ôoè1ýlL¾0¿1LŠnÖÿ’÷ÇoÖ~bÊçct[À±ã7H?3ð“Eh¸9­¿×eÇóI†þJ«^làw”þÖBÿ¶¡^ŒÈW-¿ivè'}%¸÷“ú•A{‘®ïØcú›ê¾#4éþŠøoM«ýÉX~³ëögC–îO€ÖÿÒ’Ñ÷–ìóÛc¨ßs¾ofOkÏuÀü¿ûë/GKýv›þ怜©¯äó¹òwD‚þ½ê©~9ý+¾^üJÍÇ_Ðÿ¦?Ž5ãËåélÇq³ÿ%Èãþiyl6—׳áf$kq{¸Y.e…jæÆk·Kƒ! [Ô¯ñü"¯åý¯}ÿp”÷ÖÆlÐ_ö×ÃÏ$Ž*'HÝÜ^>ÈûÉw]G³#èßßö³%ø[>\¹´¦æB*ºïÿ[Øü÷úÐ_m—rA>l–'8’‹£F}Ö8½Yo†Óýf%BBËL_ð›Õ¶œ)=þÌ„Â0 Ö/äÔÈh°ž\âóÙ¹´-È ûßÍýé芧ÁA>J›õ±ú¸¹çÈ«4²qï¯ìé¸=”Y}ÀFë_/üx3±÷r1\ζ¿†ÈÎÿùµýÞ¬Ÿ·VF¨âƒÇÀžCQ8ØÜf9ûÜQ¿Œ˜[ÊòˆÛ›Õç“qž¼åfÏõ÷—®9?4(+7)‰¯€µf›]¦Âîb¾R0çrqöñY¤w©.¨ÊƒÊLþïß“•ƒüf µi³Žƒ…ì8Ï®.„¦W~AÍŽÇP^€:°ûãoö‹”<>Þ~ÎG¨ @«59[¾1ÈÒ~¶J÷÷‹ïH† €uPòA°fZÍN«;)ýÂÖ]Y¬ ++x®£cæó5õÒ‘óX¡«rxîÌï1·0›L?õv„ún*Þðô^ÿ6§#°/ò¯£ü?Ÿ¹j—Aýõ¨¿Ý\m ‘–Ó¯ìÃgö¯\Ú­üé¸,ìp¿ô©þ¿å«¢~¥iÚ²¨$¼.Úm?ãÞÙRÅ×C°˜=ËÄ×3{/ŸEöž¬Èg«ìãÒøõhÔFP€úG¹4=­ëþlya:Vš‚ùÕß±šÊ¿Fªgñ 5\·¿þ{*¯úÿ‚×_ÿº÷B”œbÿfG›ü ý“Žä/°(B’ |$öïÍé׸¿€”ɪ{ @«ä&ýÙú×ìˆøÀ®M×€¹¿ŽHb(ÿšaåþ¯e<;þbfI•àÃi8…Ý‹¯™™MÖ72*ÚÌß ôn3¾ÁÏ¿NëÅp—üže¤‡ûÙöNO~ˤ¿,Š× ÕîúLÄ.F¶*ÿ–¹)m¶‘´¿ñ5DìeQüLОWü©çD}Ö2 ŒïWqÍ“™vg}ØÙ½EºŸ!¨&xæßb‚2’O¸ð{ëÂõŸ 8ƒßX;µ,â#Ÿ¯o®Õ7üÀË:ôs³ø¦CÿÄÍï./çEH…¼‡œ)=³ï[€¹Š¯Ç›ÿD'¯nÖï5¾óe¾v:®Qœ=öÓÄËgAÍ7ÿïïZTP]%þ.^BE·÷’Wö“›Á¯¬bê¿îÖ*7»„­l‘Ç=.A†ÌRž:ÃYcTƒ&¿F$Ƭ•‹ì£«©o²FB`&~Ö'z¦Ô)GCigØ—j™Ò‘ýiè–D{Úc N”¢Â\˜”>âï–H€Ø"‡¤Ý`"þ²¿ÔJ¹I,ŸŠœr‘ŸCC$M“¬Ô¨Ý‚dð¹Ñ£0osΆ•`W›ÔS<Ä 'Ipê«Ü|iªaL%šÔônïØ]É7[l‰'+ïQïëùÚ‘ÀBjG|r… „á$aÑÑÀ(ü’z@…q»êæ–‘eÍ7æ¦G~ênÐé…!ÚEaSU%:}à;“ÎüeÜ ñQᬞ¹ž-ZѵډZt0Þ9†Å¡+ñSg×` #ÎeˆáMe‰—O–P%NýÃaÿšáâ85U¡iÊÖwïgúžoÖIŒ¸¥!l²îñÖ‰M;8sÄŸ˜: 㯴#ìzhZáÁ´ßæ^µ‚3·Ûv;Øý0Nã }%9‡ +àœÛ$»«jä›ñ¶>˜d:Ĭ„Ì-ݹ•:†zÊáã´*^×ÎM¼É !7¿éàʨé³жB7´6€!… +§¥ÉT™ü²*Ä-ÌŒõ, •QŠ¢ÛhZ°õF Á{ÃÀ…ŠRÀP]Ü©üIó_ª˜Tëó„ØS©Ùëö8à…‡B"a“à™P5ðæ™Ž2›×zYÎuµ¸Äµ í[h,X€µd§ò› á„®Ân`ÂN¦Á̇lI˜ãÂØ–܉ý¾IÏ1ƒr>º!¶4Ùœ~˜fKvÖÝ®£ Ñ¨!ÖzáÓ•Kªð>Hkgq£æY’ûØeÒêa\G +Kݾ¡þª:K2€»4^᜵„Ùï§e§/] +³äqÍö ˜A soç™›C¿gý…UêäBRÆO˜$,iŽJ¸| ˆR3•Pˆl"þÒQÇ–ÇÓ+7ŸfóŽõ—Ù¯íø<ÄâÜ‘3ö™U§‚W–0ãÖÌO™BCP‹ ï÷%ç‚þkOTŽ\Ù‘Š²Ý­È\ÀÚ“ Ê&I!>w÷ÏV@UOq·J²Ù—–øqÂCÑÉÁHâG«ºbI5æ!Ê-™`õFœ9¦‚ .VBƒO0 rVˆ. 2ÀÊ ±qPc_uóÚßçzCðqŒnu¯÷;3O<ñÇ›1?;ÌÅtZ›9»ÇnãòË>ã +ètÁ …,ÄuÒ6ÍžR–è±;Z±Å^B°Íœ:Q%06Ŷ”ÞL"•R¼/‰ž<¼ËÄ—Æíw4à<¸.KMA’ºfdznNõ(q|&Åjˆz8ʺ;È¥B'÷­ž8°5õlŽ7Õ.B3 `K}_ÁºLtVcK%#q·ÑÔà$šÖ¹æunV¸X©Å. ŒÅ(ŒY‡|·\ŸB8W§Bboé½6'ÚL•Lº…qiÏ s­5DNJjEðé,f““Ä›c é£¨’­ +ß=…£ñ±ò‹„y³h%ÆNK±«ÁÂ}¶½ˆ¸ í‘Èr$ +^„T2‰½üå†Oùü-òð›ÄAÓyßH­zmÉó×–Ê_9¥Ñµùµžt-x X—*n¯ +#‰XJ­;B +ŒðJãÖý[‹ péŽÚ'^¡r†á®# ]»U¼ü¦Rã¯09 .±ïP +wÎLƒ$ùðC󬄿o4ØkåÈ•‘ù&¨,Í\©°w£¹Ÿ­Ïæ÷û“ñ4g˜ÛdD¯ü⯿…®¬zäˆ:®Û?¹ë€¥§Nœa®ú4šoL‹ÒVýKzD½û§ +£-_ËFêa\7yy‘\æ-¿Tžs¹uñ_Õ“—îúe¤—Fê_WOÝ‘žD;ôˆªÐ‹œçæÆéujUöñ×^Š”¶Ê¨¬‡Í‚WÝPeSº•î·ÙýM¡Q¸:Ãä®®³רxiù£"Úì½ðWôìõ¯âu J÷3ªžNêBxLų‘ýÑP`‹'ƒîqýØ7ÿ€1•¸‚î ð޶éÆÀP qÇCËo†<¿9·kñÌu}Ð^}$9Æ8sþÎS)%Nøýx_~Ì 8’.í0êÞ‹ +6î½kx¤¬FJ€£E¬ãÀÃ(4R1aÐØ£eª- ®†ý Æío¤$Ö±•…¶FÙd½¸~xÚo1û|¬ XÝ:!£®‡  ÐïzrnAèxÏn0d‹˜z낃x¥´csqsK€@Uƒ€#+Þ4€Qû#.×a]àT¯ó¸%óx¸Òß]Ü\Oÿ¸¹Š×yöt!µ"ðI²üQlŒ {/TϺÛ^@þCÏ]¹:ïWAUwöuéXK诣Uèð.$‘Áb‘ñÚ)zc¤ÜSTlaËÕmz<RæL-ÅpR@l‘W†ü<ûnôI¹Œ»Ü–“Â8(Úf¹&wV8p‡]×ü<¦üV@YÃHú,eÃ✮xŒ ð­¿'aã$ÉRRÃnÖwOðžUÂÄj«R’wì6l²ZÓ5Âáhîæáó˜ã®' 6XA¾êyá<# +K«AëM¼ 9É+Æ&=Â¥^7ä¸T}¡ÑUÆLš’9·ô+j|Ëøv+öD÷nÜbse;³TSy†*±èÇì=¿%ŸR¾ÑjIÓI'#ö™~•ܲ®1Ï¹Š€†QKC8Ë££9´àÞ)#^UQ½­ÄNv`Ʊúà*óJ$Mï}Œ Ÿe?ö÷˜u…§Æ^>~Î2œê6»åbœóÄQ4Q>\•·M#Úì°^Òz}Pº¯¡žÛ]²ÈT"¦ó†“¸à›ºh˜OÓ@ÿ³¡•eME?KæsBÆÞX ü´…øðP´Û} N&¹E×ã¡Üø¦Š>8 na"·æš$± 2’ÏpK™£ùÒ4ËåJ?eÅábgTfÄ;ß{%©3M›{Í«qegXãÙV׈’^[ºÐb!eÇCvðUnXúRuîРöM5ŽY!ÌeUüB“½Ki3þŽß÷äâC˜k6€ŽòÉå3É\lY¹×87ã§Mh<“î½Ò=ænjŒ‡êmËen({h·¦`‚Dvá¡|™KÓ‰õ ¶’ŽU( %Î×…1‰¸T–ûoF×Kô%úR5§!&C¬ ¶œöDZ=Ö2±%>[ÈÂÈñe³Ûv“>5 kŒj0tnŠÄ&}b½¶¥åFêœ6„!>–]—”dJÃÚ ×  ˆí·õü\•Û)):zB2¹ñó½ç>“âC<~+ÑgÿàŒOð“©dn¦óýÛ†8°Qèr l™/3ñÏÄAɸ{to5³V2ê‹R5¤nŽ=Â$÷@»ûÃÌ¡W3¦1@OtqKw‡úæõ¨ëÀ"{«÷Äæ-˜³úäíªö É\ÏSE®Rx0™ £•—¸Aƒb”4‰5V:œÏLSÛTîô.4ä»§`£PÏQ'²ãh?°LT´"$ó<¸k=( jÈ7f“É·µ`•8³³ùí/U–EƒÔ]¥Ì5-q6º„d)zs†¹9$RóKæöll^e‰ŸéôÌY}"è·%žä¼Åa›F*ã2§y{ï6žIÁ¹‰¶Ýf늵ãîëyö=3®/v${™Íû«†;ù<‘^LHrpgœ!£†h«Ë®£å¾ˆÒØÔÙOkžeE¼Ó»ê,¤ÙB)²»wËÏ}³¿6eaÝ-?ñUw3wÕáÙ»y<»k±ã\fúÐì:fÙIix¸™PqœéÂú×SùgëATÂqm)aPè„<‰0=ÌryƱ®‰ÒÕÍ +:ØR%¼ˆBÛ [¶%âÀäz[¥Öó.ŽìÕ2AnÆP‰gÛPX»0Ÿ&äÒöW"²±–b@yüÓgõx;Öë†Â=•¦Ð‚0Ñ•ìMo,t²ÄO]Çœ`ëm-Üü¸šÝ¯`Á(DÜÂŒï=wPX·]®©èÇ[Ç “½“7—h´ïÆ M²Ã0\17v_Sñ)Åü²Åcs&Œ±¥Çµ÷W•í¿ÜÉM5„J\ÑâÀüXŒÏy-Їˇ݋ý^»ŸÕaä$LÐVÄ&ØP2æK…«'ðËeûPH¤Ë5`XcV ÚÍ(dÚƒ&ù”ô­êz k™1èyô¼ÎZOHv±“´…qiMÞè”°€‚uÁ—8ïŸ@âf-/ñ  Öó²ÙÍpë͸º 0-ëpBÅëö&J9W½#ð×ôêwAè‚u-[X§q0î5a@-'æÍ‚µ…Ê‹ÃjÄó¬lÔh0‚¥ÜSMkÁ`tRÚ'Șzãjœ²ïi„ÊN‘u…Ç) KF½w¡Õ'*{–þ+Ìg +pÍÛ7d~ {” “ûM/+²¸V¶·â`âqèÙ¸¥ ::hlrùF8K\ú~ô²+à1TõçH㼩Ù`‹ƒíXÝS²åòC‹»´FØ.ù Ý5ý³ƒW—R廲L•`î]/v·£±Â ûBí| …–÷¨Œn­tžù]¼‰mwWõ¼Äg˜ª#ÐwûóÙpÊöWËïÚ ñÕì ñ2·]\2R/mð¾_ê³¾LBòéQ +å3|…~ë@x¼ÛPlbÖ/ꕌÕ6Ð긎[áFm½¹ ç™˜Ú™û}s#a¨l/k¬”à^‘f_w4ÙRÉ¿e9.+Ÿó“s,MŠ»ý°„-Б4±"ÎGüíòRñŽ(‡3ŸO)k-I\nŽÁS7h§âuþ†©v¶tËjs5H¥-·\m<ÑXË!º&gălÖÔ­Œ{£=¶€ìÞøeï°rÞŽfeÜWl FæuÐñBë2T6ò‰í‚底Õý#¸=t77y° ¥%è¥%\/ÁYý~ß#ãý?èÖËxÌ ùÄ9æ”/Ô€‹\&.šš=¸èr-sÎÅhä—úFñ»Í¯:"½-T TÆ™š<-:7?í<ŒFÃ’j¿GG#@Ô{ni¥KÑzwÛ{4gKv5b×Vµ[眲¬1;Ú…›•7_¬õ&)$jÅÈCJ1×p—z" N­ÚYüâ0o>ä5•*1›$œX¸·9WXo¸T¨rM =ˆX|)‹N1gžÂ‰Oƒ¿Âzà‰­Ï¾Ë#IE)…d¢½SÌäÍ<ž‰Î:¼’~9_ô¸ ^*ìGùö%9¨2Aaâàc·èZa3¦0ñLÞâQvtÍë2Y5%¾)±UaâbtÞEdžŠ¸u«êE‰ÈÜ¿NÐåàG^'ërÓ߯næ‚Mœ$ÑSˆÝ[h&†l6ë+q¦b:¡%õ£S¤ÂnØ1ó\9‡2•‹ôE ž’~Í܈ß*Ã=éÉZÁ°~.uClf›¢ZÙo@˜cw°€NlÏÙß{¸)ðQ+åv%Ðå—õæŽÛ“ߟÖóBÖF$æN’yjð¸ÃÁXˆŒ$kªçC*ž;ì&qxÒÍ|r]]Y໸ÕeóÜO‰ñäl5 »ÿí/£0Äñ_BÖö>åÀ +Xæ›À°ì¸»D¹ýtDÁ2,êÅ΂ž'™iÝ­ íI›ºöΤP ðÞú +ÛvMˆ©b‚­V²©Ô³fu.È’{kš¢ôíÀ”dŒ¦¶8‹"S»w¤í‚¾é£d$t!¼…®zì YÌ\€ ªá‘1Z‹Gc<=¼¶óàÜÔ$áØÐ³… ˆ<X»§w<^ápäîîöìvÞZ=»GÎ7ƒZïîÕ»wý/™ù¡s÷vÅõèrwU~¥é.'Ofë’ü?ÇËÃÿú”#†÷?iŸÄC.aœ^ˆ‹åŸ!oL?¿=pp‡Èýª¡œ„QÂ…»f±®Ìï÷¡à@¬rr!b.±-Ɔ9É‹vS|;aƒ&=2.9MƒmÇÓÖ·Ó`Î;=LÅ l” OÛ¼Ïï—Žœ0öF1´ì;Y]ŸÚñ`™"˜µoF¬ o!ì’ˆXm&7‚É"€AÌ™ú1È´!¦ó‚70 1¹e ÖÍÀ;:ÎÐöCúwGÈ„†´†§™”‘²1¦—ñ×3KÔuŒ†üdzù'д-[àhÀøX„Hר?m ÁKl3‰HÒ{yb*ü’´´i8+â¾Õ Àøê%)ȇ` îõƒÙ ¹“ZàhÀ´$á´á/éHyÁÁ­áŒÆÚš[ÐéÄêÜé~;ÿÕK„•Ѷƒkþ*n_ª€þ¼¤EZ—옷®M+cÈÞºµo&í9á¡(b¼ñÐõDU? +MWt Úօ˨S‡ýÞhìÛþ\–²9‹˜êÛ7`Иn9kÓ¡‰Úžp±·¨Œ}nC´P ì;6¼ª¿ f83ZÞ.SZ¨´ÃpïPc¡¼{]QPaª÷y¸Ns ÷³i-Ôý©çÃ,†ÒÓB¥$*ÐB0˜AõÿØ«Ídg½EI%.¯9V´õ²³tA5ŠnR +ªbÓž‡Ë ¦DÊ™~7µå}khO@Tóë¼êªƒëhÍœ›ª’}Q¦Ö§‡›3™ž¦ÖYrG— +*P¨øˆÚÞ·+ƒÂT_×UMlêÜÜ«¨k)óÕmMÚ¨ļ?øðÃ*„QsîÎEŒ_P¦P~ƒêššMœÕFušÛxÀ¿RNÌh W'õ]èŽ9¥µP))™çÞ 2¨Áåq…ŸP˜³@u)iS*i£FõAcJž–5Q£yOå‡cF+Bª§!°ØZHLÖ™¦¡0Ùò‚ë®\;Ë–¨îí3j*žiŸQëVLA½,ÒÊpÝ.’lh£:•ZåÝÚ¨qÝÉ“ª=š¨Ù¥ î'àj’Üm‰7¨Mœ*¦v'mÔ¤£“’¤0rC…‡toÀ¥ø,þµ˜fJ½w¨U¡:^mÔ”†Þ¥Q×â×n¥<¼E­`rwû5MU­a¾Fqñjijç5QD©óu®+¥¸7¨-¬Rí~×n¦<[ø BµÓ©uߢnä06¹¡*ËÚ=pšê‰)AU*ÓºÚ1×BÝï3VôŒ:p˜Ÿ”Âx-¢CîëŽÑG åÛŸ<Q‰ÔlÛuÄZ ÷O¨¸oS'Ψ /t ž€ ã¦N]Þí\Ž?®<JÌ4£ÕúºÊf¬úµÃŸ¨üñ Î(ÎI8Œ‰Ä“]4ð³…rè}|òÑ.ÊxГiBTÛ+*cÐë±@M JZä±sÙéÕ—'ŸÆ:ßÅ…Š.§RnÅ|ºQVYàYåø'—Ã~\!vßz U<=ÇhµÕ~ê4å ¹äwO÷@"Ò³óB Q¡ž£Ä@VTŸ¾ø •Š8ìÊÓ×U¦¦R…°óöôY ,•%™wÍy*T=Tv/h=U˜ælt©"¿8¾iÞ$¨bEÞ=%©R$½{ê¢ÊÈŽ¼0McQ§ö'ÄMªO_­VŒª”‘ úôYÝœÍU™X÷§ÏLk¦¨ªÞ˾kž¡ªŒÈ¿{𣍻­õTeZsNµk Ë›æ-7Õž‰wO½T§ìw¼{¡ºL×{eÚK…îž&-I×›§}Œööìé7O(Í;Ò{¦ Št2¯K¼i>ÜЙ…}öæéÈL×çIã[¦¹:ë’?plh7·rˆÉœÈ(Oí¦{|Ê"d,RŸ>[Aûq‰œ‰ù…ijÞj)ÜÇhب„s›CF5Ejç$ +Т2(Œ ZÚ¨Îzó-*àðÊþè§=W‰ Þ¢ÂØ`ôUÖB0gÊäko™¬8oP=1èhtß¡æÔ;c§õç.(©“ø^D@»žÿm=s_ÕÙJ}‹¤ÓœSë©vÞb³G,Ôôƒ©Éßò9Šs§Ú™ oº¡‰2M\‹æ}LNmﵪ‡¯!Â=Óò ¦3n`ù[Öó?á2”ÎjõÞ-?#d¯Ý`x()Un‘ô%YòFË9ðO£á\ôkwÞôSTn +´Ø>Dï|×ãh8Dz`T©^ýÅ8߯äàá=÷9ÛT °b¦âoûa`·®µÞt‹ µ8³”ÖÊ*\?iq]aÚã•âP#8ìܧûŽáï}¾Dy²ùFn³y-ïì³iq¢Â´…gÿ¹åý®ãª´–)ó=oò6ÉÑgû¼L½Îðýêù8É£(Ý×›b‚SµðÂìàWü +°/oµs oB»O 'ÊÜ|¿[èÛ>ݦOkŸ¶WÕi\è?õ6ÐoÏáÕÑ»%ᅵƷü¢ä~·ü¹D˜ïS›Ë•ß’¯©‡t÷™ÚãóG†96íjÓ Ã÷ç1mìÃÓž¬Ûï óœ»älŽ¡ÚÞ˜e™«u4MÒïzΓØS´øâ>EÚkv îÐľézÞ©'W[èþõŒÁ”äç’öNkŠQäÐû“©Ïã0Õ¦}Ơ߈ 5Ý+À.ù¥…¾s4Þæ+óz¢näÑ™ïG5ïza®&á°ÅþyO.^çlùÂ<¾ÝÓ‚us¡Ã'+ Vè®lo>ž_º´°*}ºåÁUj&¡/~áMúÃÞ>¬5ÓgÏFË’¼S”yü+_äµOŠéÔìÖýSLA\1ßÈ |ÇÌ㟛­¼À[ÆqÓïØoóûõÃijð¾qóØp¤-Ü\Ù’r\èÿX´¦_hæE=ï"£7¡;Š¢­Ýȯ‡•_¿©ìŸðëIÓ?_=_ùõ¨ì䓲ƒî¬šîx26¿‘ tè}:Ý7’ÿ{WÚÕ¶®E¿¿µô#“„Ø c„¦2(”–yh¡´LýÿO’ –lI–rï-ýrW/+¶¼u†½Ï9$ãf X<®§„‚:1GËÒ +É”ìD.¼9¿~sa2e8-£ò¸ÞhîÈ“Ë4§Ÿ=…”@j"d.søKzKáݨÜoeu’Dñ›Öò׳¼Á³Af<3;ȧKØôó€ä¹Ñ¡Pæ"iÖÓn5wÞ8©Ñ:RÈ?òn¶7O¹slðëøCäë„ {ÃÌ4n/9íµÝÁ Óø´ÁšFCÜ´æJZ'”è›ðÖ½¯€[ËL‹B½ØBý[Š^hôå= +6æ¶7Zφ³|Â=Oº¹ÄOckü$HÉÍ-À¥ +áÝlÅ7Þ†?.*$ʳãÜ£$ïFùÚÙòîΣªù£¢5Yz ]M'K+òEˆ/¯–…<¾Ú úÊ¢+õ_|V¢]h$/‚ðU(”‹4/TQý:˜aO¹PU7Âvp¦•Fs\M¨—JIOôh?Ȫ' +£ÞѾÔü!®Vdv´ŸÊI™BÙ…_¦žAf%SÉé³C›ñwºá"/+§ÛÞ›ÜÜ-t8ÓO7­ä=ºšÙé&°7èjN·×‡†SñúʇRÚ)T˜~*Ÿ4½PÆ1¢Äââ Õ¤áíÛ¯ò\ô"‰ý&Ýö­œF+Q dó]‚K†:²2("IfÕÑU6#›ÊmÃ_¬½d¹êÙÛѡ։inåWSôùÓOÜà„FWË-¨è?I#n’OË6Ú9V0¥|<$_<Ž?u6Ü“¦†²/¤vKRªøBY +¼4»âÖ¬%¹ Ðw˼q¼èß|Ž%Š9íã§t㨢(,Oò‹{ÐÕòzÿäRÄ8Ʋkƒ×Íïæg´ÍÚEÿ f ^%Az™^Ȇ8 _(Wf/ qñ…ü<ö‘Ý´jzZß>6‹^P Æ»ìÑ©cá79ySÒeÁÿ¡²ô4‹Â¨5ù4 2S(<KXJrãK± —œŸ½(9ÁŒº;å¡Mä@£nè¡z8+9¦¤9ïHj¥ ÿc^²CÅ×"v9Ò,U}éè¸ÊYª„#ÓLÉ]GÇi–JEÇæàwû&Í`ó8Ëz_Ú£ ÑÓ4’ö¢«)™š8ÄÆ{#¡ÐÕò¿Ëä¡÷k )»)QúJv ì/_Ó”¾ôkÁ}'!¿–8¡¬%‹eÒv^måLè…ûôŽÙþÖýqxq¶ûå,çK¯åK$SLËù¸ªÎO:·¬:¥ÉH"cVy//Fz–F Zß §»3´â~)Õ*² )V<jY€“eÖ7ÎxTé âBŸGERR ”ê£âŒRdž#2*ÄM)JS’üQ*q)ßÀ«e½£Êw˜¨à£ëo¨›T¸C­¤bòläÁ«bf%ºR•rñ^šJí½=í(èK°‘Î(ãÚ–ÆåÊú’йíØI7ã›…½"\ÆÍ}Ð×—ð‚KTv—&1Q-»ãÒÌF bTv§Âû’„{²ewòˆ@‘­€&Ö—E)Šøj™Ubè_+¥¸¬ÿâ< œdNÝUOèËúïô}PˆŒ£H~­3©&ÅfË”³+"bœ>¡õr(mYWM´Q-%׈üà +›Qé¢gÓ‘úz¤×u7ÅÔÅY¼ìT^ ~˜zËò1”k +Og)ïÕëÑR}²@ÑE%’áw’)ï s7Ò"Í:Çtåýöž fT¾‡ +Ê{õšÂÌ:GšB.ë™ç8å}\W“óïDy¯~µŒ‚͇&ç>´o³nõ¡5r>46_4¼dtTw«YŽ|¼Ïö¾W³K‰#ØKÊÒÂtwZé^æ5²ÏLCœû™8¿[5ŒEôê[K¹žY|P¼µ†3Íd^cþÕËèã‡ì3¡*V²«öv‰#V„ö&ФÅv™¸•<âªÃ'¢çÉÞiÑr&OâÏ [ÓÉðYu®„ ¸üÂy˜õ¯¯wo¡¨ü…†öT+Á¡\¨' +<ؘV^–•…}u?í~-öY? >*!tõ+Nªsî Ö£RËe'ºØ2=•”DÊw +³7ô+ üzòß)Õ@µØO+{#—Ä *ôt›½™{ã²7ø¡ùë™aŸJöæq]š½ÑÁ5›ÅAÃìMBy¿n-{ó¸nCœon¬¨š¡3ìëù³7¸A¦" ëá„”z²H6³V0wöæq-cV $z@Òê î…V’Ö’ŽôÓ†¨4– +UÒØy¤óä°iîf(ÕTãFë`’/fMdÕU3@Z*]âÙ$ʽJ6ÊØBHìa‰ŸZÛ3–.Ên©ÏFIæÐ¸‰â†B øŸ¢ìÕùÉ3§Y0³Às²ðgoDºå£âº8Ï\I.®Ìã8eÙžfeHíŸf­2φV¡2OM ›»2/ÒrÅy9îK¨9fvÅ T扉•¶íʼ(¥ÊçÙ®Ìc3·Æ®_Ve ÚÐÆÌre“îæ‹Œ*ó„²H–Ð=ü•ÛÊ {GÝ5—U×–^«Ée±¬×™Ýy]MN éHâG?êõ'¼nê‚Ëì ¥´ßP&‹ñ…X„é}Ñ~B¥s!õþªÑ›&Åczƒc…:ÂIÇxì|™áñØùÒN†*‚Ž@ýpü”·…”/nԥЅg%±`”Pxèj*1eF¡K,•È媣úE+­Žñ…LðÈ]%zr_(=âªÝyð…T*×…^â°9LôÄÉj”•¦—€wˆS^\‚ý85òV »QÔÞ«…3í“Õ"ÙOV‹d?Ù(’ýòl§HÖï¯Ú)’…²P$‹®b¥H]ÈJ‘,ª¤Skt-.£c7 çÓä­`³ÕP<Ï^Bø3{ÚÀczQNBjÕ åÉ2P–‹ò'm«ø6¥(O-×É>4ƒB&Iìi»(Oì X/Ê£äa¤yÍEŽ?Ò59ÅOSÕ‘¡«=§óGC´g“žxFW{Ó*ßOh\ eCf"¨¥‹ ¡JU©ó0:Øk)6±2%$÷µ¸–æzÊYh+=1ýk ·!,HY/î NÆ#Õ7ûªSÕ³¾‘¿¯²¼÷©¯rxú±¯rv½ß7²¿8þ…j<П¶ûªgã^íèa2´Os¿è/å§Ø²»bʽšÇ‰a™¸×Âà/zL,[vW¼Ü{”Ý•¾¤ûõ¯œ²[Ù²»¥‰mɪLm_ìwš^ì×í—¯Úí¾Ç«òaÒê7Tz}M)EÛ]Ø£VåÊîf~lIVÿ6²ðiäIZì7v|œVvwçIWõV¾®¦û =Ô/ep)«v½¦tÕ—×»õ¼*ûõ}˜8Ì)쫤ÝëÚ0·¯·Õ€#Ƨq5ª ü}-úÓÄßmܨü]ÿö\'¸”üéËﳇ!ʘ¢»N¸¨‚ág+EÎÀ‚ônpÙú^ιÝ~äÅù( Ø0Æ…BEW¾ñz¢\T¼7æãõ”Óv;…~;JÚ,]ª4š¬'NÛÁKIbO…ÉzÊwˆú=Ë•÷zw8š‰õ¯•5cEþ˜ôƒÂP=õï´9ö…c +•¤µ¹¦ò‘±µÂ¾ÌœÂ>QU£¼·SØ'º9"K°VØ'ªêSá=5 ûD· +15 ûD[,cµ°O›€° +Ïba_z3k…} +FÚFaŸ¨ª/%ÝmZØ'JÉD+ ûÔTC¹ ûDYzJ5d«°OTÕ½rö‰ÎÙè°±XØ'úNA¢ËjaŸÜ²ZØ'ÚCi‚ؼ°/¹‡‡‰vº +ûD—Ò%‹ +ûD—’xy +û—JèÓ,öÙzh…}™ÍNa_Ê g›…}¢ª>êè´UØ'ªê¢Žcù +ûè?Žªú@j½§QaŸèÒÃÆ¼°z_âª>bo¬ö‰ªúd§@ŽÂ>QUÈl›#}":1"H4kdoÉ °Oô0‹Ë„‰F1bó•Qu/ê3¯écÇxJ}¬è’W_©§e~0½jwŠ_zÎÆÚ?QE˜˜^]Ëšê©ö¨Ð¤¼šÆ™–~sÙ{G¢Â˜ì¯•1À/ý;QöÜË׫ú¨xT‹\uÅG•9¦—?lR¾Ö„ÁùÉÆKÁé‡àG ­ó!SRÛ¤’Êã†ÿ™J­4‡ÿ/tÖü?-Õ£ä°Q˜ÿ§pséÃÿˆ–#«¦ÏF‹ðŒùª·$þÇ™õŽfÃÿxJçÿ)ÖBȇÿ¥¼ÐJZGÅáÀ¨·4Zo„ØÞlX«ñxÚÀî8ýÐŒåOðælTm(é;ÒÞRüК»}† +Gvãå +j†)̬é3VSÖ•óÉ•!ŠFãú²ËãÔDjèMjÁðö¸ª¦b2œFEº–O¦ë¼¹8³R_6ölMj…#kR+Üž ÿ›Ÿy^b½¿¨ÂžK?¨^H­Ð—\ˆJ°à…rÌÀ¥¯á0]8¦p!µ2{ẚyµ/É jßû›b¢Ú÷þ&ƒRÈŨ^MÉER©>»¿á6©ˆœ2fÒ§ùñ§ÒÓäæâ¦ª¶“ì0ú™¢d;Ø¥U¼Ũ,,CΣWBz`u¸ã~ …ð8ü•{¸7DG `ÜÌ_Hµ„"ú.d£À´ øá¦J™3VY*†²kÅ* +³ +)Y }²$áÏÌJ(É{~ôŸq}F‘ÈBÊsÿè3MŠÇüsÿ@X…—©sÿ¸â‹ìA{f%MlJ0úÏð¾80JÍZæ…´æþ¥eÕƒ«Y™û¢¹¸²Ñ¹«}£, ›á÷gÔËõ^ªèjJõ¹燓ö†WË=_=ð›ÁüÙATˆ©Ví›Ñ£ _(µï'|È•’ÙÊQ…ÑZö…ä½íT +©è T;©Ú1©¾§ +©bɳ üñAºESÄãÙKz½gf-U¢2M­*Ô§eÕRæ.¥³ÒT¢{þ¡}SÐ$*RæÔà©0’ìHµJ%ö<{Qj¦—VH‚¦s£ªµT*ßI.£Òúu·— îÿLà1rù4źۥ£ëß²WEØ ?ÝH·GsIùx?íòÕZÝ-¼” èV”„T©»½|U†©ôÐôRšSÏÔ{>I€zœjùrììº[ø_ ÚV4PÉóã~ + ÷aóõå¥þ6V ®O£:Ã}ôŸ…¾òÕè:*1lã:C¸Ìhcsz0ÞÁaî †ÿbjä^^ý¡¨ìhºþzsš«ÌÃoZ8šnXZøòû|T^Xž­ßÉÇðᑃL>­Vûœ2†oåÞ—®ê­Ün}äV δh4¿~v%[õ:m4ÝÒGjU¶FîuàÛMTV*,Dœ|Œ',r•y%y= |Âsü¾ /ßî´'+DœÜ{¬ŸÊêSjûW^ÇXš+DìVÎ¥«nŠ“ßdõ€£ÜªaaL¼ðfAºêËëÁ|ŸtÕ¾…¯Õ}f_o¦£õo¦©W`jµÔþ|ý(ýSêïN?þÌü»‰çÓÎÑ6ÃHþtü[øö…†•è|YäÜÑ({S|LÓ•ß/¼†9œbã'¯XGV@',s­OK3×Ë([‘$¤dÉ””aŠÂ-éw +õËšÂ-yÍ׊°0L³,nI“Àò ðdYO¸%Ý>äÿFYõœjfD}i—ÇeŒxH<*êR€ë–€®–)S¼Cªˆ’D1­ØNMìi_+SŸù*}- Xêwjh#Ò+üFÉìÑUJ]§…Ü4P™ÓÉÝg¿Ç•·tçV¹"ªóåPqÓ‡j˜Ü±CWõ´:âÇ̤ÁLói¨$Qƒÿ–jÕQIbÞ$(ªGL¨T ŸzÝZVTÓIô»ÓlLôĺƒ«ç~’º¬?g½îЇÍÅŠ­Hú²Ñ/úN1îá£,¢^£®àe`àó’öþWÊñEé—ØO›˜zâçêð9Icuy7”öÊ\:Í‚6©?GØ(õºÄŒV z•^—:­äÓóúÓ´ê +®:ó¾I+˜ùžJu‰ìñ¯S[Ê;P×]éàí=|Ièò]-«È,¼©xµÌAB)_ŒKÞ£«eÅ2ê·©RM¤~µ,Tï¡eŽÒzh)•q‰*f©ÛÈ×#öƸ$‘…–¼z¦h”$ŠÝl©$Þ´$1yL‹ë óкƒE^§FI¢äK$êEz’DÕ]J`ôJUëAJ™ô‰èä fI¢j=¢R$-/IL«GÜ>`µƒò’kà +/´‹a…Ši»¼Ã +q:ãü°0¬0>lÜ+L%$í +”Åž–‡­npÆÃ +Art˜‹a…ì sX!ûnÞ¸ôãZß(«b91ð0}ÚaT“{à¡VA™ùÀCö¡ñÓE‚K£‡æÒ^­‡Òob¥«U<ð0ý–@VW+Õ‡éÓ®V¨82­ 'Sl íи”„xh\J’x¨[rÁH{í <¤ð(˜vˆý4Ë©Ó !©TF–Q±-õõ9†ýÂxà¡ì‹5,¸êmÕÒ®ºúÀÃô«!®…‡é=H€ÖœB㈛rnµF¦M;L$ºL2JL;L%VÒKõÙ‡yÊãl•ê‡ó©ÓF»©Ô‡Zµ¸æ¹«pÉ/Ñ+ x!\¢åÐx(½ +=SX­¯5ð0½Tdw‰Wx˜ž$ïͦO;™5£‡’§N;¤÷&×ÀÃôèžõ²ü”‡j¹Nö¡ <”ìf8íP1ö”bG©–WW¢¨2ð0ÝcÄñ‡é#a +síPÊFé~hL{ûkßQ|ã¼~»õ½·ÞáéÜoïSõ°è}®”¼¯—ýÛÞééÑ­w¶×xóÎGïüCq÷åå¥S{yýòkæå·ÿóðå÷ÙTñµ09Œœ„½7TjZ¨~¿^Ý^Ýš¾]8üúù1#ÃCG;ƒS3?–†v>vׇ¿= õ÷O×¶Š?®†ÖƦ‡·/ï–gG¢ºÄ¾ß•§±­s¼-AÞâÊþþ7xs ¶óKt–P{ƒK^__Qëf_uéxŒNXl.IžWs >ŽßÏÞùìiéåe«Zæî.CßîXé¨<Û(,x+KKÞÊíÕº×ÝÞz|8¸DÅ´}á‚óÏòÜÔÖ‰W[9ëC’»^çpò Ï?ôjÛ7U¡ËAÄL3’,-usÄÑOâm¸¯4»5ÖW­QðrßàòT­¯RZ@Œúñz_y· •o¡ßµúª‹ë¾Ê‡£Õ¾‘çx¯ÏSá«UàÃõ2:Dý‘¶?Óþ~QóÑ}-Ìlö½à ZéÔ?LÁ}|ò+wwóÁ }øŒÃ¯öÐ?Š?Þœ~|ó¼âh ÿ/:!‹á¿îoFà'VKÁ@ÓÛÂsýo9üßf±Šþ·þïæXpôÐà‘ðÖ¹zxžöjãkÞâã¯Í×ÅOŸ¾Âóàm:üªó“%ò úæçÊÔ/.ÛsÑ/ÚUò $NZú|Њ~·V#¿ƒ>ÙÝbô‹m?þÅ)Ü´¡^­;7B~F/ÝmW¨_ ¥á2ÑïÖFá3¯Œ@Ûö¥ /4Pª}½ÿ ±çãÿm´úàÿî,‹Ÿaßþl¥‚þdúß7KøTA‡âÜ‚ÙôÛ2\aôÑ«o’gs-swâsu¹v1;ܼûY@ꇕÙÎØ}üBGõ¡Ý£]:ºE¦õÍéèM\—»h$²P½.>o£ë–Ö§v§§º+ …›ýåµë¹¾_ÇG~ôBï×ËË•!4âu¥¸º¶V/ý8_·ã‹±ø9\ЯÛåv=¯ +|“?áÿÔB\yþåæZ þëÄãÚåi}~z­wîò{èX«Ø¦Í |«è£ ªÆQ0 ‚aÂëè?­à<¨4¥W™èÀ k2œ‚õ0î¯.Vð»U©¯?&!‹w¤‚öüuÅï¶·Ë~uðµëw7O—Å.2+‰<ñ/ïfà÷íLÁ¯ÐØŒÅpÊ.t¤¯—(² jèð¾.ùÝÓ»ø~7àmî-øWí¯’”ªèNµo³Z/Þ,ˆnS”¢’:9n³}:מmuðmâHZr§önÅ +endstream endobj 85 0 obj<>stream +7Å‘é5­ Õ¿MF–àWЧ +ª›Á›&ºÓ’ߺîkÛ¹M¶˜HßPïö°°L6Tÿ6 àYªùå‡í¥^ÂFÁ×ó=†g© +—žœí%<½ÛâÝRáYBð„Ñ}§—ðôn¶g{ Ï"t½öZ½„gcq«± +oóš÷¯~Þç­Èjg¶ýh¤oÛOk8Ä­—ðüô°pþýÜñÇÐåai‡VijLÿ<@'´ñ45^û^iÎ{ëÛ_Fà÷œX…_ÿ—)º(md½4Ÿ’?W_þqÐÄï~˜rÊòJFêg«òˆKw[1œW+ÜFF+ª{©·‘óÇç%¼‘A¢Ë*FDH­*#ª{i¸‘ ê=éÑÛg–ŒHö¶c¡KkJ²‘¡*s/fGðŽ |Fÿ¹¢7M#ýÐ¥=YÒºÍPeþÊ,UãHC~› YPf~ôûW{#ÂÛknm s`£Bv3pní…»Mô +œ=ö-Ûyo¥·IÉàNwk +ª›‘´Wt§ÅïK·©O´‡ƒzgöª¥ +¡½Ñ¶(ðzki=ܘ)ÌñÁ?Þœ†_vu¯Ñ:(Έl +#Q´àaž½ ù—O'³Ü–:¶žðÄ­/WOq|c¶«Z[Šö&ØÕýÑE'‰$Šâ]ý0¸œ¾«Z[.³vµ1ü²ßÍTmçv~ 5ìwývKkKsÆžµ_‡š½7k•æÉœhK%ú4+@F™ÈÞRl\Y¶îj>îâ¬; Æ±'½«c³¶¾i»z÷ÔÊ TO]…a„·¨ Ô5¾¼lEß·9U_n]Ì(®Z†Çïcoicñec®:½&ÚÒ ð°’Ü<lG±oÝã.H H·’Ü…·y½ˆÃï¾´hoœY™ð67ïð2Aö$q§o3Ø›àN+ðä=j“;µx›‘õLÜ©½(ÝP'fí¼R‚GÁÈržÛ ’):Y¿³FW7sålJ¡XÒoÓ<á2÷­ó4ê—æz Oï¶y2Û{x–Ê„bé<‘"s®Çð,•gÖ+xÞ\®4{ ÏÅzíûñQ¥áJõ³µÁç)ÕJcèÚ[•>W)Õz§1¥T»·Õ^…?J>ÞÈ ¥ê™TJ-£¶—¶RªEøÉ•EÛGAZJZêö ·—Žs6ÝÝáï #Þ8ë×TÝÈ0Ä5O×4÷¢ÄIÚs| VŽÄI«‡EümÒ±§Íä& +;—Ém¢½qvÂÛìx7ºª›€šPÖ__Þ}œWØPýÛ$(þN·ªÒ Õ¿M5ÕŠ8WòܦAjh¿Þ{xÞ\´Ð÷ý€ú³LõB–O!ïöô¾#z¸Ù"<ì'q85·v=L‘MA¸ù°_œqŒÑ„õD‡îý¢Â®jmi¤î*|@^7÷ɰQÊ»Z´oïªÖ–"_À4›º?¶¢º¥¶œÛ~¿RÜlJ·ÔIìyö‚ä<+­›µVïÍæIGWÍå<µðI:jSèW.fí„Sv%A ŠN“]EZ´…%Õ-ìMNÚ£¹˜¾¥€i›CíjiªÃÉ‘µ û;܇wPÉ—¹êÖø^œ oÎb¹1z¡udžrcœ³!S½xw·ìŽÍíM¡^:)´ÃéáÊwÏxà¼q2Í—íE¡;(yowÎkqì[í<Ï+#$ ¦¿‘&:›‚·Ñ¾XÔÚÈÜbX*_œ²‘ƒÂî÷ éF:ÊÜR"c¼‘øèt)±F±YH¬8eR/€³Å¶AI6’Èy¨½ü{)Cçj­¾—v%ŠtF؆gÂŽc)‘d÷dÁ”Ƨ%#Öz®;h–‚~8Yˆæ¬ÛTÛKÉ`ÑmJóyˆ0ÿh–ÛÍ+ˆ{“èG_uIuCíDLØÎmf*!½ÛC¯ÛcxÒâáÁÓ¯ø{3=†g«Hò¿=‚§_ißñ‡­kx†¢áÃÓ¯œÞÍõžtö·Gðô+Ï…%mx®qzaœO3’ £Z§ŽT2lb$ÃÃåÚ÷¹N½´»y*r¾3ÉŠd¸¶UkÖ;Ým·Õ«tê7¼M´7²;µr›^8ʪ‹îÔA>‘ gm¨þm‚xD2lç63[&l|›ZuŒdXë6ÍáÉH†{OZ2Ü#x2IàÁ3Ô ÷žŒd¸Gð¤%ý‚' î<)É04ºÕ hÖ¶v§]:·”dXá¹Úà¤iÉðÀFZï‘MÎ+¡%#63ÂÜFgUx´^x;P{i¶‘ÅàX‘û$N4ɰd/mç¡©´°…³G¡\– On$NJ†5žk@¯æ— gܦ=E•NÞ¦6j ãq»‰k<\"3Ð „¤æ†êß&Á -6}oó$ˆmܦMDK†{OJ2¼ÿ³¡z +ÕDœd8íáÚ¬# ³ÄœMqÇßÐzá‰ÞXÏ~ü +ɰƮjm)åÜ +$ÃÖN†tE“*Îã)2ÄAO2¬Ô<™["ÎÜR;±''î•Y£óÅxK±½q +½0Í{Z·2’úZ2l¨@Öw“ ç*PmiD'õj¤b%Ã*[ +â–F–$Ãc¢ÅÀrK#¦C1:žfð–:fFÁàл=¸^èEJ•N7†®^;ÎÝÁ\ð(’GÌV{­1âa²«ŽëÖv>Õã–‹Ê[jSAœ²¥Vå<ÃáOK¢-u˜L¡eÄ”™ìª¾¨¯{åéïjN?›F¶Ô,¦pmÆZn jR” XkKód9ºû£ª[ +¬õLaÉü–7娣2øá¢½q ,-Æ!nÈ X·2bw°LúµÛ>¤IH:¡œÿ6J9vÉ-yÌ%2V¿M«»àÅýÚÓoÓfa •Rî<ûƒa¿¾GðDZ8&Zsçz2 (ü¨[éþÏQ‹‡H++¥SËù\O \VZ„7÷´LvUkKMEäTc•-µAáÁhme&}KèÓ˜är¸¥Žö³4Þå`1Ò§9v=©ä=­Bî™Y˜†ßX·³ªr–ƒI2÷ 7³%è"5çUWµ%»ôÈÒUÝdg)U^í ªŠ 2ÍÎÀþÇ-\užŒ¬:­L㪦ºWÝ30:ùÈb:ÝÜ+?m U’‚¸k›C76îeúa UÉs.Ú*ÛYU…Åmš‡R+#ÜähpŒfP¬*¨•s¦íXµ2²|å9çi;¦QÅÀR¡'i;z4ÆÍmq¼¸¡V aäŠu!T2mÇJ–å»j5mÇt­`vÕeÚΧó-[š+mGµ®ÈØR{i;F·Ìo©£¼@п‚l)fØèØ-­4QœwqTÎO£›XØ*HirÊŠ—s˜u²Ðj”³ÑÞUjRžÂ–Z‰oèvâ‡k?/@+˜ãÛtÌâF=-n1aë¼Ïª[£&æ9Á¨È¤[ôʬQóܦVEu·Ð¼Mcq53¯Wð¤Z\ìÿôzOVËž}ÎÓvAŸ ’¶sêzRi;jvÞ„m×3®¿‘÷»ìª}6ŠéläzƒÞÝTÇ Õ-¹Ç!RÓóä[J´ƒV”uTÛ fKqJÕ•–¨šq$mã]Rì–@µ¿p°ªD«NOÑënèF«“1¢¬´YeU"êËsò“.½´7dŽ^´ªûÜ +#¤",ĪbXZâlsÕTz•j‰‘sUõ0Š™§§»j9é‹‘¹*°VňœùU]ÉèÎpÕ ÑåÒàU1E†ê¹Ht‰§;dh­š¦tÙ]­(±syZ$v¶ž¶cÅοƦz‘¶‹ÄÎA‚çò ×uÚŽU:#Žw®å7¬Ò¹3Ò“´]e$qc±³Æ®æIÛ1bçô]µ—¶cÄÎü®ºJÛ1bçÎHoÒv5Z¹™¹¥vòŒÒY´¥nœ5̶ԹŸ(AÜZwW'û1bg»@•Êy±sn ‚°?´ŽØÙ¨&ñͨd¬äè>Ê)·i•Åe”ÎÌmºS?ÐJçÂMŽ“Wñ6Ñ2îÐ"5k´Ø9—Q£±sÎÛTUÛÑbçÁ“;÷žLoå éÙg9mÇ(}òp¦íˆÒ9P ¹´h^<“;;À¨PœD‹í¸ž*Ñ%vö O Ùb‚;«o)ÈÕb";+l©MQ«tî‘Yc”ÎXœäÊÊð¢>VìÜ+ܰbg«ªˆúX±³Ñª@†$+v¡{jÈV¥³ƒv^ãª<ŽÕ‘ҙЫNÁCÑ«¬Ø¹Ga'vƉuW5­Š ÅÎ=K?pJçäªnª"X¥3\µ'U­Qœ~ bgõ­å[3§+ßkˆ;W6–T[3ç)N‹G Œ¶§íX±óª^íŸiÚŽ;×¶zRMÄ(ë¥Õ'¾öÏAÚŽU:[êP)³&;[jv|ÈM®f^€i׬q›yX\j€_ÖmÚR?ÐJgÁm:qi¥sÌZ tqûv»FFÑbg뇂XmG‹{OFì\ï Vé̯êJÔÇ*{ˆVìlzëŠúX±³¥UAö,ä‹ +:0ìY€_mÞï>5¿(ùÄ·£MìCW *Ì}™ å©^Lý|ëëN̺/zëo§áúÊ*ÕbíûΑ¡{4š™ËŸ™ŽoiÒ[X‹|øÃýÊñÍØÜß5ôF,Çq¿’¡Z_þ¾¿ç|Í¿<ÝžVÍÂm„ž`³‚æwýîÙàV¦ë{Y?Ÿ^‚oépo‹²æöó(~†Zkù•ööܪÇzc:èñÞªjn‘—|^? ÌÚrë±–MÅÌ2'4\¸±¾nŠšÛ:g sg£*õh炽IÙÝÖ°/°µÔ±ì`xLªeëùñ"‘ÅDG¥ÑÌýE}ùz0œ« W uüjˆ÷«C#x'ƒ +F:O+­ŸºÝGûPÅØƒ?;ZVH!YÚ´Ã@ÞXªUoh¦Pr°|ú´Echû©ÄJ{XG£½„÷0 <”À>üi¿KÚ¥½¾%ŒU_àò‡¯sœMÑÇÙåæŒÞÑ9_û0áÔߚ‹ÚXìÌ.Åoi]j!€¸_'40m‹«*2…Õ¡Á…<«.GÊí +W½¼ŸÓZ5t9àktþymßnŒ´í~!°ûË?j±»5ëþ¯ÜÝ-†çxc©«LnØïG7·…]ɘ€8È<rä¢JäøÇ^™µ7ûÙd"3O.ªŽm:¡¡yk¢ôÒ<|T³]§3‹k[ã'‘dá`hþ¬¹äW6/2d.Lcq¶ oï~­Ö¾o·ýË'ÿ³a. +dÏ,>{7¾ãÏæY´ÓBfeQkÕÜD>\Õ¯œ^̧¯j7Cþj©Y™U±Ò|kUV½Úé)UÍ­…Ö{w{ +~wóº¥Aä×ÏV_}Š4g°{‘uÀÏ®vÑ9[‡H;ZTmÿq^ª!$P©ü”µs + ,Dí7†& ùÙ\v +Ô;ÙµhÓνޜe’ނȼ˜Çg»ÖÁnدÆT:½¦10ìt)€‘SëÉ8DSÐÛ{ZÝ—Ýâ Æ!º gp6@qˆpêÃಾOdÀF1>Ñy§Õµm®Ab€ ïYYdö¶ã|"³UuŰÄ'ÒZ5·×É:D²Um{¬C¯ªâuŠ}"5‡è°†óX.áYb¨\Öx†é(ü@Ã/ûë=€'“‹š†ß·ºžÛ\ƒ¬šB&õ}Ú0 +:ƒø\”úª W ;›‹JYÕ¢VÏEÑ«ºÄ •‹ +Iã­ÕlÙ¤£ô·¶~þiƒb’º§Gó"NGF¯¶ff1 0¶‚@ ‚Ùªªj»î×Z|ÞÏBOl:üÒjœÂ­Óñ>!.ýîæÞtüÙ,*âñký¼¯°ðψlÑâ"áb:Q,ÓoãøŒôÖ.3™BèænL!bà ïÍ©ßðÙKÁ»=¸naʘG¹ÕS–î\ Òœ«Cåʼ7{M«V9êU"²ØÚFŸ¬4_>wUo.ÌuRmLýÊÓ£œ\NØ›§“d½'p4¡.ê Tqp÷ Lmÿ1<:{éÔUlÖ"Çd[q +¼øôF°K•Íë ­`ÇS=7Vð;>‚Œ»®A§b­-z£C1jŠ>ô×ò$&u³ßÐz7/Z˜`ô¯ÖTûrœ—ª‘ +f®œy7õ& Ï®+ð%/,kíÍmÿ8J<—•ú}÷fð m•º‘lI|cz5#týqE1Âpý|¤ºV•í\•ÑÁλ|¬s;?ÞýÁÁ#ú_ÿÉ«}Ü‹îkóõå¥þº0ÚØœú]žÛ›øÖ7<þk…z¸øgýíÅ~ø±½7¸ úûCø÷·³ì5Jô5*ß;Ü5ÊíÁV±ÑÚëøj½8}Ü O ÿ¬¿¾Õõ®‡~.ãeæ~Ð8?»i¿ö¯¬ ‘kx7ýã5îGG;‹Á5à¾ñ‚—} Þÿ@±Ÿ«“k/÷¾È®A?W|ëá— / úT$]ªˆ¾‡Î—¨J/ìÊ5Fó<ÍÐð$×€7B¯UQ|+îï¦PxÉøëCŒLî•¶ðßAðÜyìßùò¯ß&\&í½©ÔÉZdÏ_û»mæïj#Ôwú٘ى¾Óc=ñ +ÙÍ(±ÿ[cÿ—{JìWFØÿ­FÑZüöj/:‡»£d…ð–†Ç~¡=…«ŽhS;wü£sõð©ãíÆ>Vm«2¶P_>™Ý ½îÝ +Rº~Ä7̯úõñllnO¼¿´ƒ\ûðåyúÆË4Pßl"/j mÚL£µÿ¶‚Ñ˃ÌíÅ_v†âí¿2ýVÅß3¿OÎñ[ÿþºÀÇÕ.¶ûAh±:Ù·æ_ÞASƒh¨W¼¥½BeºÐsÞ\ònîoü ׯrἯéuÏ+Ž~RnC×õ0m7ÒaÐÝî"iE{h kàë˨Âçë[q‡1ä¡ë>â×¾_c%úiޝŽPO3~݉;8VÙ#¯gæÉèBúN—{þÒäø”é¸Éåˆ*(É•á2º œ|R%A$a£bP~}k®›‚òëëeU[³J‚Hìܺ%ôÅV’ñMíïbÓ¿:A‘(à¿î·P³"?þÆ"*âd~Ë/O~çëk׫½1°êËÕ§výìqI†ªÂ:|wꪭí ô‰µÚ÷ø‰êàZØ no>–‰Ux“Ç «®Bì{öcHó°P?‡wÚ¶âÞñÊYédûy}@bØ×5øÇK3ð›D 2 ?æ ¨OAì‰C«Bqày³ƒ#RgâáÍ× "XþîÕŽ&CÈì +ÁŽÌÏ= ‘h1@+Ù¯ì‹ÇW.î`ŒäóÑ_ç˜ itMÒ ¯â‹`_?ˆ¯h\s;0ÜŠÒvþêÄæ~rAR‡BËNÿ1þFøëD1Ú9 Ù&ê| + Ïúéˆ*òƒ/}ôPM^ípJT!‚G6á{Ø_bÞ¹ +À“ýÂ×#Élßvw­ƒ~t°U +õ‘¾ý½À˜ðÿþ{á{šÝÜ1Ö˜h ¢Þv¨ýDm8ÎÔ,qŸ¼/¬Î# .üsü}ýËÍƒÅÆâVkŒ|côö¡?^n 6ûûÃñI”¹†¾Š¨›æ4J.ø«C}A]mÙ»yh ùRûvÛìD8Guš© ØîJ«~¾|?Ç[ÛÚ¸_ŒÂôÕý4÷ß<èîHø4CoKA <“)§ óqæGbE‡]]„`ÞÐÞÃ7íâ¹’âWÆFOáâ(Áï°Ü‰¨Î—yhwýßU&Eí^ðÊ„·¹„ ×Xø.]Öù#í“ÏètûœH+QæºÖˆ ÝÊõÛ»7ƒóá7b_·­‹Ö\ðq5ÆŸLÓAº;aüUÜb—Þņlã£ì/6лQæÞ ¸Öq%|7ŽŽ«¡¢‹‡6œ, +ŽÙ‹£„ã*qƣͥˆ-4ÑnÆ¿ZÀ/tX5¹CÌ93^•œ £uÿj´ÌÚ|‰>ŽáÓ¹|á,$ ò>%®çÉ|È:º¾ÌHnÔ¾_^´±‘NXȉÇe¤8ŠÄ°–Œ¤®€õ%²¶§­úÙõĪ(­Ÿ­ºáÙ­fÒÔ®ËãÕÅOŸ¾yèZ…Nwž«qžjQÕH ƒˆ +A¯À¬·9“žxÍM…0i»¬‹›S!•’xe}è}*½QâµÂ±!©IìÉ%^sg]™Ã†O¼Ú£Bp¢K†°TÈ—.¿¢ TȤ°'D¡5Òõ+…oÖH¦¹žƒ­Æbg¢-² .]LKÚ¢yg‹þêèÄTº‘”ZÈ^µd$½ó£>€R7Y ŒüJ(É•Y‚(1{&%A$ñ¡… ¼y6åͳjõjNPD¸qJ‚È`oF @ù1¶rePÂ8d¼±}Qü‘Ÿ–e>¥…g&Ñ“æz"TÕK×ÓãÒ,.%¼ï qÁëk»ÚS­"Z«™‡ +Q× ¤S!Çé%kÔcJÍ,OâjÆ”ºY¡]¯ªÆ”‚€²* +(p@ºrL©P’”ªQL©šåIø*‰ý,^&ˆ)õ©&zô³<"½@f¢§§z*äÕ \ NΚêàg«õ6õ˜ +y×zݾáíÏ—úüdL¬HAÉø•¦üdä@É@9’”"+þ,æ=Í@ ?žJ‚Èи%“RµJ‚ðüdg[¹ 9UÐ%c¿Õî¬NŠ@êâ£,ˆ +ÿÓ\OŒªÅúÙÍ)©æ5MšwŒCœÝúÐlúS¹5¯êð”'z¼ÎÌNÝ0õJ •-h^¥©×€÷´¥ye‡"I½â»ÑÔ¼Žè§^1n¬i^¥©×HgcGó*¼’7͆æ5¼vð,N¦XÓ¼J¯ÿ9ÏÅíõ{–óTîææsÈyàÇkå<6å<ð®OÞÞµœgï}Ëy*~.9.ü+ç)[”óÿú+çñß·œ§RÏ%çÁ¸å<ÒÔ«¡œ§=T{ßrïüÓcUDVZd*±/ !+-2• ïÉ‘•)Låñ—_ZLeˆ›ˆ¬„w"§†¬Êp2EBVZd*Áÿäd¥€©AÁô™Ê0¥*ña­1• •Û‡8°‡ØV†¯€=s)v`i?͆¹”8°ø„V¯Û*2•Á)P+Û6—œ­L8·–Ì%g+ÃÃÆ’+u`ñ2>ìÍkn¦2L¦Xòa¥,äöa#võŒËò€äœÂìD~–Gâf&zô³<‘R·µ{°hÌTîÔí •=úYt +h'zô³< ÒK%Ñ£ŸåI„¸1/2úË"S‰å<º‰žNΓ‘åyržZÅ\ÎS«ü•óØ—ó¨'zþH9F–‡Åb¢G?ËCr‰ý,UJRË¡±« 5vâÞÝÖAI ð`ë ä³<¡­—èÑÏò ‡¦èÑÏòà½ÑMôègyRá)—¤ëfy?Í–$]šå¡}èü’ti–ßÍñ·WcI:ü¬B–üoH?Ñ£Ÿå‰ÕÝV$éÒ,ÖZ“¤K³<¼Ú.Ÿ$]šå SC–$é¶Ôv‡ï¼;O-òÓÌÌ¥^ãð·;~–¼³î<Õ›õÝw,çAÈ´¹œ}|äÝÉy¼`"“àaYÜ”ÏZIÛÙÀ1cï–ˆ·‘0k]êГ p“ú“„Y=é4;I©³ +—1ôWµœU¸Lä¯>ºc%#"ß1+ ÂŽÊ&¬d÷‹rýd˜„düUøqÛ¬d €1ñWµœÕ¨þÆ€•üöklÎïÞ©5 4·ÐÇñ¼õ‡“u™¿ZN&\/¼õö|ÓÞ&¨šÇðü~5›â¯VŸZhoÚbVr~­%B5'@géUGÞŽà2öA™ì4@8{ tˆ–ÑåÙ‹~,ƒAyöâ®Ó€7ö; PFš¥ÕNXD5Hé4p:YÏÓi-“ÈìØï4€3·ô;\tL};hÇÃÅmŒÎÆb;® .“]RÈ1™ „ Bè ”Ív<\¤ ‚qïÖÛñp!8së ׋§TÅíx-N&ƒBëíx8 QߌäÂô²ÔB‚Ä$Y;íx8 ™5Ûíx8 ‚šB‘¼y3N³ÂÏr2ÐC»ìü-d²Þùon¬ æŒd4QM¿OIdÑa³¸|4ÆšFyèwýv+<ñdóAðèíðP Íj ²8‹ð‰|Ýv’ š 9ªŸW¥ u’äUc¯Ó ½i%œiyÕ’rïÈ0ÄuCC’¼*V»¢!#r³0…ž! éwÛGËð_EO,6Úb!xF \‡>d?ÄT{tB]„F¯*šíñE!EílõµƒÜ‹q'dy”ÈŽOy*@è7dF$^Æ ÙQ¢Ê²òQP”eDM¡m²##^’‘ˆÜ.ÙñíM¤ÖÒ)XV˲QŸK²ƒÀSj)Wö/r“˜éˆ—qFvÄ“dmÖ.¾MŠ$­X>ªP»\øV4$;¸”ª+²ƒRw»¬]Öc<Òúï$:Ô%²1ŒÎÆIí2õ9­]Ž•)´‘|k;(“ûÅøÐŽÊ$áûBû†e’# +nkÒ¬Åe’#úFRj!ibÅa™$„43’“Ó +ÉÑzâP@¦±5SKô¥€q^u.:ñ&V°/ BáBa)>ùz"›ûoè¨ì7Êád?ý^;úv’©!ó¼jJ£|¦©õÚ‰M¸~^×ß@ çU{ã.¯ +—Qìµ3Y/M¼v ‡Kbµ]ÅŸ­wf§Ä½v’SA`|w=mÛc]ˆªîæýǾ+-]ìÀ‹ßûúV|7vÉŽúçíæ4,UÃ1ÌQÎÆÙéPFÒP"Ã]¢µƒÉŽ7ŽÉ¦ç½ã1Ìô M@ùÙöæ µ­1Ìq$ÏR~ÛO—0L¡²#"V“˜éQ±Evì\(B²~V$Àé§dǰ»";¢Þ¶gˆä˜÷ÄŠ€Ä€ÓÙjͳrÏYÈlxÊŒdwwÊg +7Ô&—Û0’R ‚.Š–Œ¤ÔB†f­`N{ÿà±<'ÌÜÚ$EÌ#`ÊJ­"æñ_‘R[«ÙIáD¹N‹ä£(…ÃzÈÇàMãMbëT°ŠÃnJ5­{²¨u²ZJ5»{òHÂOeª¤ÜXíž,jÅž»'‹üÔd´öò2ßl[¹ +ÍÈÉAÔ¸9Gù#Aµ´u‡P>ñqè˜;nd^èÜ“¥q#`æß¤7NÎ7-+tÄ'ZqcÊ +sÇãaI¯†ŽŽ•äÀUÓ9ŒÀ¬éÜe£¤ÕJ'0ká2#N’«àÎüô®gH2¢Uâ‹Tif"~n% 7Š'sÔͱ$ܸô]"ýq nGui »Œ ÁsvbÑ»yØl¡ÊÇñúòîã’a=GvJUÉH>ÒåPÖÓV=‡ÈB†¯€ÍzŽD´<³\ŒY\}#‰>ÎIôú¼lÕ;}«{è<žª/·.fþ³msä:Ð my¤Ž¨9~¡%˜ŠUò3ÃãìÍ}Q4Ê¡ÔôW_èüì2^Ä?ÀxJäwÉxÔ`øÐ\'’ŽeI¿þõõ²ªFÆFZ»èQ+Œäœ[¢G­02*´ +’é–g˜º3lÒ\/ÖÍ%æð³,Mä@¿Ã%\ƒ7;~‡K¸v¾§«æä…¦r®—/¶g˜c#­Ö9Oÿ-½€ÌHŠwéuX”Y³`$¥ :ikFRj!£Hš6’ËG-C#‰>ë‰,$zÓìI©…¤(—¬$ë@9c%Cí â*úûsI©…Âö¦FRj!3á™R©Ñ§œÆ›âH¦a†»âH¦Nº±8³7o Ê™½ZºÛŠOhW $ˆ Þ4Ë L6ÕÁ-­¯Ž(³›ê¯@Z_;MuB½€¼¯Î?¦¸Ü{×zúb.½üøß +I»’Ñ„w[!YøYœÌ“uýoëFáÉØÞ0Ö xÁé‡Ñ¿z‹z£÷®˜úü®õõ™\zøñ¿z»z§6W0ùÞôÞùQŸg¿ýŒC=ÿÆMû9²‚ÿ åå”ŠÛ +øÒÅ”SC¹AI°ÈHqGµË|»©tPŽþ€òclåÊfÌ-ÿ÷xc©ö}Gæ¹–“³¯R*ÑÝ `ÕK×Óã)‰ž”xÂþøhÕ_ØLt^޳4’‹% ±bwh$—z3P‚ìkŽ¡‘712|ΧéWôB»OíEÍ«Tð +¸ŽÊXózöl¨y• +^1YlMóêVΓÝVù—ó —¶•ð³BåÀ_9O9>o߯œçP+Ë—±¨y•fy=.$·æUšå |ùŒÎ‘išWøÙì, vØd€Ä7N› /´-Í«´ÉÎZÓ¼J³<ènìi^µä<)$«†©WN¨¬ÖHR?õ8Pš$5R¯3“¤ÞÓ”3“Z©W .Á²Øù#2´7Öp]$Ñ+àbw{º@1•¡œÇú®‹$^ÆÁÃöGƒ~¦2Ô§ ÉJ‹L%zh2²2SYš¢ä€kuœ­±ƒ×g*T„›®çØÈ¥±Sb*£7MYc§ÀTv¾¬½pL%ò¤À²ÇT‚dãæ>l&¬%¦’ÏuæóaUG¼æôa‘½9° èA¬`.Çó0•€ê/`Ó\r¶2Ž=í5Ê9°ü™fèÃf1•8gc͇•:°¡åfî2q`A¢t‘•™JÀÏ^Õ+QÍò°¾€v‰þWý|æzÉ|Ä+úxÃS)ÃÚ›»L²<€-]Ôè&©•åËv“Ôb*Ñ›¦èÑÏòôVÎ#$+-2•±PÙ()Ú%|hF ¬Ÿ*Ë(\ Êú©uù&$]’ $Çìä†.J½†š[º-¦;·v‡¡ÿÃÝyòNÒR`*Á¿·;O5_wžÚßî<.ºó3•)j»ÿPwž¨Æùݪíêg¿÷Làú÷ž°÷À_µ©Ú.)IWj»Oï¾;ÏŒgÎTÂÏþíÎc½;Ï··÷Ügxlm4=õ*ÃM(5™Jt7öFÞIS¯Bz&‡|`F(Àa”+PDbnÍ( Sɾ!Y¹‰f\x†L¥ßm-Ã=.Ä%#ï˜ÞXëÐö7ƒù ‚A’²U‘ë3• ÞúNwKX:z›H•«¯äŒÛáC@ÔÉÂÄR¾µUù7Î4= ž½êTÓCÅž3ütfPަó!8ðpJòn<É:(y3Ò«ÈRN dÂ}F8lÍÔú¸q!éã\/æ¢Ø@–p](,ÅဢDZÃÓr;,–ev¾íç.jîÆ~;®¨™’öÚñÌÿç; P)Õìwðã†EÍàï€t±T`úmTÚi¼‡éª3îþÐé®—fÔÈ=QMȨa;.{ƒÏ4íx¸4k¹µßއK³†" Ãv<ŸU'j;ûíx8 Âa¶Ûñp„3$1ý‘{¦–”ûŽÇ…„1*Qt’›©%å>Ø\g JÙZRîü«Æ…H¸Éziâµc<.dÂÈŸ­wf§$ÜŒ 9îãlõz"ó±.BÖ lÞo»$³“€® vàÅïýt™k €qÔ“‡˜I¸Lwwʲ JÞLº!$fÒ„¬ÄѸ!9Š¢µŠEPþ»I‰¥Ó¯šÄf É„ûŒ¡ø”œÜ#OæâØ€wVÃw?xA$ÈŽÊÚZO£öll‘¥)Sè"…+ÎȦ·]ò(˜Ê1Š`ªÎ½ ¡åìÀ)Àö³q”W-—ÃÙA^hŠìHÌë±S–žÉÖ4%;îÜ(¨ç‚t·ËÚe|å0Ýí°v¹VzQŠ€å«mSEú¬\ÀÓeíò{n½v[Hœ³qZ»œ Ï”þ;Ñ-MÜ8EÀ9·®FDð¬/^3m(€>›1Š#’ØW£ðûîÆí(,iÅ¹Îæéô—×KFýwú •m5e£JØm <›Øs­>µP»-q=ÇÃîfå’VYŠïÆ¿[¬—ÖE¥–ÿ@sõf}×PgÄ7V-¥ÈL†™[›–’6“»í¹ˆÅ5ån{TK8',%±J‚H¼Œ]KIÌ$¼Êð#ˆ‹d•äZIÅdc:ú|_Ž.HüÕMêOdÇI§±ØéL +Õv.ÉŽdW+œÅq¡)OÔF9Ą̃ óªðBÇËé)·¥pàÇ+úºæ)6™â,¯ +èÖúîÆ0G»6ÙñIk 3¦W’ø +"—d†@%XóýÇöÛœó­ŽÝ´9gåÌa£®xûùÂ)Òå!·)àÇ ér€0"pÓæœÈWYlaö€Hþ§¡¸›k(ÌÉëiuö€ÈB†©!7<‡wþ鵆‰©o»³D&™’”²vwQTåšéÈ,làÇ€’ ’ÇUP’+ã»±;{@d®±•ÙÑ#鹦õÉ´ó t6¶fˆÒ:÷²Z¬,’¯ªŒÃBTbÅ÷—Éìè1®7{€á>ÆÇ¢SÀ°£‡÷i›³Dܽ7²B òU–ñ`¬å«aº[¨`µ(_¥UªÚ…ɪÎ*\ÆÐ_ÕrV¯ÓÄ_ÕrVcÞsþGiÀÐ4âϦÛEô +ä5 +v‘•Á9›&èlLüUugµ=T‹TCúþª–³jÕ üU-gUO™¿Zÿ}ßnêgt@؃XU—c˜ÑÁËhèr´3:eì`D¯€vKóª–('ÃZhižžÑ’ñT–§IÆ™[Ý–æé.£ƒ cÒ’:v2:hoR“:½«ñ¸Üó‡Ÿ/Çò¤Y£ä½áœÕ4+xUŸ3 ea¾¸J ôF¼VáowÊúiVV û¯ñªØºèxÍnÝ‘h?‡[w Üä˜3 Úº#‘rÓ~D¥ò–HŽ~ÿsÃ@rô#aØ­0¥Õ¡& + $ü¸Š,@ª ’)öH.xñ§’£#I¼mRÀx¸` Ëÿ”ˆÜ ùß‘—ã­‘ˆ¼ŠrL¥÷&"Wa ËòBL› $笢½qÁ@rÎj¨pÐjŽ¡£ Ð6Éet¢el3\FÄc«ÓÉŽ‡Ÿ¯ÆøYÀw²°NvðuҎȜщݶH.£ƒ R^ãa•ä,dH¬Xg ¹4k&n Hî Õ%’K³Òέ”z²””&€¼@IàÆ( "ƒ½±Ï@rô#«²Ç@rÜN 9` 9úÄ“–ì2–ºZi6Ðf]­tè}èñJ²ÂyvTW«"éýà€äèG̰;` …"rû ¤R‡,¹úóÐP.öHÎ.FJHÛ dˆÖî×yh(,U½JS-¯Œ¬Õ;³W­ÆpÒ0fœ–wD#)œÔ\qW˜XqPs·oï5¶‹k>íǦU}]F-Å'ë¥Öý|hK3“ð<˜[ ŠŠ7Š'sÔÍ$ܸô]¢ðq îH©ÐGQs¼!ˆôÙ‰EïæaOó ¯/ï>.ýӌǻîjÕýÊW%ªÝ”(ÍzüGÅ´Ž&㑞ÖÙ—¦uB"ß IÒ:Œm”‘ÁC³j)EfD#Å]€’ 2²žV@éKU¸Œ +(ÍhHŽXqJ.;è +”‘ô™fÊ#…\+ *‹¶¶B{ã ”‘$Œ +Ò­CŸT{ÐFÚ:( "I$m J•få Ñ Ž€ÒâXð· 2ÙOç•`!ÁÎÒäÃxÙ.+™Oå²ß‰ÖL;ÿjprÖ| +êìR³Í‚½€Ó:¬horqMO¸‚p³Þ×Äl¬„+::­ qMO¸‚DK#%¯È³±3Ä5=á«».ž#áJDäÊC\¡½‹Âéç +ùž„œ'× ei¾‡a +sZ–ŽèÊÔ§ô0ùžDç"Ï¢¦sêSzTGô€pˆƒ»Î¤a†”·×v:¤¨Tmvþ rK <•&a#¯3”ÓÏ’°pw d§ù8eY¤2åÍ«ÂÜ,äu:%A$NÞ»¥€ñ@9¶Vu î™|저̊JÎúÉŒæV¡¢RÀY–Ô=¯“Ж݃¢%! ”Ä…º‡Pßæ£z"TM¤œ%\&mT·Õî¬NJÔ=%?¡ˆ•hæB6 +óŽ‹õ³›SòQ=)NðÝ"bF> R±©Ëf}zþC˜ ~w³Z!é¸Nä$ï³]±¨ˆ¥ìKE, -Â]*b¤Ã¥‚"¶óeíEU‹î&» AnEl°7&ãí´$X«^Ýs¬ˆegŠX\cd3µt>hÞf.=—l‹ï@TéåV+Ê@9ßa•ªFýs²/ˆ’Î'´žÊ3' u>€îýàB{ˆ ˜’αt®Ó¡"Ÿiê ;½¹©/¾ OJîùî±"Ü8ßŇ[El ƒË%¼ñ“·<â; â@|œŒ Aâ»òÒ)AZBc÷|Ò‡Úå}Äwp•¼ÏÍÛiÝ\|÷©±¸yò> +I@U;œúi4IåB|‡í £¿ãÄwÞíéE`Šï@Ðæ‹‚œG|‡|ë#¶Ž}޽JS°²*¡3ÙK"êsÚà.“I`~’·'Èf/Gp:Ým³,c¶:¶Ý +–c/=oMµKº>{‰ìM +yö,ê’®Ï^¢‡¦Ý%]Ÿ½Œˆ•xN@IÉãÆÑ8Ùà°qJnøI:(O'ë¹øðj;Gãd¨í>=¾{µÝ~-‡Ú®„Çs½CµÝd½4ñÚ1VÛU|­Õ;3Sµ '9µÝÙêõ ë"µßݼß9°´Ú.ˆFÅ¡èÚ`^üÞÿW zîîNùC"Ð}-šKîKA‡KM(ãØSh.›Åc’òa{”Y¸0—ÿä g‰¹„2ëªU’´žl,.q’ty(èwýv+<ödóØy´7LB>‘¯Û¶;ö$%%OZ“fQ&0•^öäu\š•²žVåuI#ƉVÍåuûU…4+‘ZÙ•×qiV"µ+¯ãÒ¬A´f_^¥YÃ6ZøMs ¯ãì"–Ä;×¥ö¶ËåýCî#Œ8%A$ºó¸%DäZ%~hF Ž[—rÁCsJ‚ÈÐH»%A$›Ùå··do;w $ˆÿšÞvck£¹¹PgIó*å>hz5¿æ•pœx‡a +U¸¸UÝøœ#îü/§T@Ò±þÉéŒe×K˜q÷QeÍkßv«)éØS)%¯Õ§V@ä´Åte :¡îfåš×”Pôn±^Z\gnÝ4¸# »™Õ›õ]; îÀÿ\w$úlšË6/ ’*æÒT*Àäl7¸aá¿5s9Y0ïm—8‘lÍÔúøª6ä¼ÎÁ‹¹èä“©v +Kñá˜HÁDZˆþ“dœŒwfÚæ¸ïLÒ¬LJ£+ó~„eµ4kL}Ç™Vô}‡m§YAÐzÒÍxg6™âl¼3I+á½QïüIk¼3™í,ÁÙïL ¨Q.ÖAùò2ߌɤ»mƒ’ RX1%“¹Õå®i§à(ÑŸÖÜqIÜ8á>b#픑!ÞÊCPD‚h¦— PD²õ7–@‰ +´†Ÿ/ÇÒ@X*ŸW*Q •N¬Í\q ì×™!Øhú¦RïærÏ|ɯîƒrI0÷ÂBLi–-| +¤Õh%Eu&Z€$kcæzO&ÉŠÅ­à]M’-Âc²¹nX åmøåª÷'ÉJõ­ZâÖPgc oÕ·Ñ,<%}kfá9*`þ/ÍÂó6ŠCæÚ€ËÍÑtãþËÌÿÈ,¼öP ¼ëYxõß÷í¦*(ÿÀYxÞúë[˜Ï»¹\Ëè*ðwž.(ïæï}Þ§×Úûž…·[! `0 ¯ˆÖÑJð€¿³ð2gá%ºÖw6 Ï ++ þ»³ðn.Ûå\Ì»eî½ý£ +˜•YI^ýàˆ•¸;O`$²’ çÓ|\²’Äz:e%#¹™}!ö1Ý82¸¡ì#JÑ"Bë²’Q´æ˜• bOÞ>Zg%±P™á@œ €­÷tÅJÂeK˜®VŽYÉ8ÄÕ¥žT 냚ÜJÁ"( "%bXÛ¬$k¤±’è…Ve.V0}9œ±’Á›æ” + l0ËYI`±€9…•Ìë+‡ãy +˜/›Å?¸€Ù>+ ‚Æf#s³’@0ÍÇ+ œLóI°’t–Ã!+ Äó¤m³’p™Låùâ´yóâtÄê[µÂHäܺä+fúV­02ÖÙhë[µÂH šÃ®¤oÕ +#eŒ‡’}T#á2¹¥t +k çÉ'¥SðX õÝý1™£€ÛÐF·4Õ‚þÑÈZ½3{Õ¯@%1!ÿ©†çŒ0†çƃîúD¾£ò´ì?6ý«êë2jG>Y/µîçCÓXš™„çÁÜJÐ`£x2GÝ\à±ÂKßµ!Çàv4®`×{BPB°ÏN,¢rÙåx}y÷qÉN¯si…d¦ÓªFR^§}PD†¯€Pƈœ Í ”…¹²B'ºrôöP#C?-Wo…0¿ÐFúÖì0rŸ„‘AjÈDߪFâ‡f¤oÕ +# ã‘ÊŸ‡NI Ì&$m€r<!éÿÙ„dvnÇ„Lå‘(·ƒNg $ˆÄ˸eb\ˆ,ç:ôÙN•ZÆ>( "¼Ó”c"3FkJ „!nÉ0á +âÑÈ@I âj" $ˆLœi† ü’žp¸²Ø( "#šÈ ( "#Ž€Ï¹Znã +‚¾¹Fõ($\Ñ2yGõà„kcñÃé‚4á +‚^C)¢ºÛ³¾Fî„+Í#°ÛÆQyGõ($\ãÃ&Ǩ2DšpÅ2¸œ£z®AÀî¨Í9I¸Rù´h½6ç$á +è™^¶Ûœ“L'º [}ød*ˆ´ DàuÆ• ¨§Z®6ç$Õï‹6ç$ÕØÙ«9§‚HS=ˆÅ5Ëöàó€› +"•ªâkSA¤,HHHº%A$@ýê¯N@ÉT¬¸%ÓÆÀ”Ø +ÖfC@@9³W³J®Ë(¹Ù«®@IiõùYý{¯ª $ˆ G $ˆôø]Ôäë1F$`zB:£&yϼÔ$>ÓÔAéI‚¤L†§@)ì,ƒ’ R„“$ÄuÊd tP6›ýýú L× X¥k½žÅtuÙ(³¦XªÃ³SÀ¬ÝK"JhÏ‘^@A~~{Xâäçeuíù÷).`w%éUÓ¦Xª¢ÐOËžŸ¢ÊH9МÀöæåeZŲx~VbHHZQnÙ|\ɘG¦:[+tÑ|ææ¿dÁáqƒË÷(ÈàlT6'3PNºž³ bQÊgøìuÙ´ˆòöî zicY‚Û®ç Îeçly“œ´¨Ž2w%ø_"-¥|¸¡v¹Š(‘!p6$„ RIΣTÙ<ð³8)MÂJqc·Ý@T±ânAÔÛN ÊÃǶ9( \ÝGŽ"ÀˆL”+XEÀpÒN@)¨X @¹Yöœ´À¤—+P*ÉyT@Ù˜õ6g˜7®z€ ˆÀ( "ixP‡Þ%sPŽK™ɺe¢\Á ( "£Úq¬zj9e±â¤Ý@BΣæ¾õyZBð?fÈù8­t!›\ã´Ò…ønºß…ZE!§ îÁ‡qZéB:¾±%¹´@˰´øò„“)ì8-í@\'upÒn€a +•f†Ìmë·|c373C­ºËA>ÞíÁk#~hF)Ÿ†j¾åØùâ §ƒ|ðÌôB;äC÷‰]·3C‚ØÓå Ÿˆ)TåÅíuž á›æpFdHz¹åS p¥‹* ¬ë'aA²¹‹ I¦Ðö Ÿh³]PÞ¼ò5\‘7NùükÆ… ­Uí ¢W\„lMHÀin- òñDêöåPèóÚ.m› + iähG}[ä¡jª@8Ëäa“6ÈÇÛj wV'%êž’ŸPÄFš¹Èz +xÇÅúÙÍ)ù Ÿ'øn1#P©Ø†6~œÊÔ‰º[Ö…@§÷kzÒ'‚§cElœ´£ˆú½&lŒŽu6 +yŸƒû\3ÔCI¼Í6“¢¨.` +õó>šŠXV;˜GËÔYò¤#uT¶¯ˆq9¶SE,àžª‚=Ûâ»@D®Ô=ÎÄ1óÙÌZºÎ‡N mfýüSßDnHÎã@|ìÆõϪ:ŸÈå0UÄ&ú‚¤wTv¬ˆ•)n±Î&å¡;E,±žN±±õ4å`³½¡ ¾ã 凧ñÜ ”Uz9SÄCàT ÄkÓA ïúäMK|‡•Neê‘€ïéH‹œÛ¾áòÒ©‰”Rñ˜È·.¾£—ÑÈû|œÐÊĆ^gœ÷¹ÐÏû($}"6ÊÎDJiÒ‡*‹ò>–ÄwÜ }МHßy·§ {©"¾‹­§˜À´%¾T§>ƒ~éjìå šìg¿õd’½$œ´½Ö“ö2ZF£ú–jO`Òz²–häóGµžÌî—nÒz2›À<{6d/A¢¿€V¿tU¢$RÞçIË*°—šf-Ëfʈz™Ü6SN”ðT´™›¯c†ìe K¸sb3‰ÁL˜57‚õÐ0àJ´ˆ’@§N`²—‘¨OŸ+Ñ"JbÅ2(“ì¥nLAI®,Ê@Y%A$Ï߈@ùÔ0—Ü’ðîZOƒ’ ½Ð:¦!{ ²‡™ƒ’™ìg ”i쥞êyuö2†§AÞGƒ½áx*QÞ'v† ¦TÖÏ~ïQ½ @Ô¦ÍÙ”Jœô $ñ.§T‰¢iÈ^¢ ”iÈ^‚ô¡A Ó½™£*U{¨§²—Æ¥$zì¥i)‰&{))%A:o¬Zß¼÷ÿàR’ѨŒõÉÎ{É•’d˜†ì%Þ“¹œ,P¯ô’¥e?*%³fÖ¨ (Ë8™ìÌ%€›*_ª)´ôI±™W+£"¢ÐÎl&1˜TúÁe÷föLsÖ½9Œ¤—“}¶4¤%€o¡gÚ¨ (‰Â(mP~Òb/cܸ%A$æÖ\’ 2`ØK5­–> P~^¨¦³—8 é +”‘LúÁIKõ8ýà¶¥: ¯ƒ ¿€PD±§#PfVz¥t[=sQJ’Ú=ÄV)IF÷¥Lìòàd®R’«IÕLì±”DÆ^n†ƒ.<Ãî!~·}´ ÿUôÄ­C¢.7¹×ß f$7‹¨ ŒˆâˆÙË‹o}§=LI´Ð«Ÿ­¾vБ4î™çV‚ÌÄ -±-ç±i.9[ ‚NÖÍ%²•£D샳ƒÚæ²S¿ÓûYgX» +<¼Œs‰m%¼Êð6“ n­¯l)×J#¹‘ÔÝÝ-‘ð<áuv©“OÂTnR’EO:ÅNg’3°ÁÞX¹.Òö†–Øîٌ٠+Ö‡vѳYÔ€ÖH¡^ï”.2ÚqçxÚ¯òÎZ À”ÙïÙŒ<€ª“ÖëL'xTÚ 7ͬ3 «–œÐ@ð4ëL Õ–.ã”Lò>èáóy»9m”¬í ”LY©)(ã§©u¤‹€òiÌ(ùæYŽ@I)è¹¾|µÝÊ1èù¶}_·m.ÿEƒž%æ^hȬ«VP|‘4’hL'I—‡‚~×o·ÂcO®HI;ñ¸ŸÈ×íÜÍA2%%Ó¤Y” ¥Ø(«ò:.·Ðtò:.Íš4Ò-w~Ž4«/J³"CàB^Ç¥YÝZߢ¼Žc·ÓTÛž¼ŽÓÖ ƒÿ!î¤eQ^Çy½øèt ¯Sc<”@yÿãF•û qc”‘\ìéªVOÊk/(½tîù®@É´ÖwJö„vÊ‘ßÞ@¢·“6Z îmç”yzÛ­ês"¡²¹æUÊ}ÄA¡Í«”û¸[‚¹~gyu.C*€¹B¹’ +0òQ[R‰àÛ›æé g×KFš×¾ˆêVSÒ±§R‚×àˆ5¯Õ§ +ÚbÍkel5ö•wì‘…¢òn±^ZäG"Xì¥%rneȬެï:ƒ¸/‡Ów ˜ˆéªëdût4~hFær4Ý\r¶R’³±Ýàˆ ÿ­5¸›,˜÷¶Kœ ÈH¶fj}¼…Œã@‘×9x1|2ÕÎBa)> !ø86ÑÀ¿b’ìÃí4+§ƒñÎé˜ÈÏ?Þù|"=ÍŠï&¥+sýi-wš[OZïLÒ¬‚dнñΉ‚2ÃñΟÒÇ;'dpnÆ;DÂeÜ’<ܨøâåe¾ÿØ>÷Á·ÍqJ‚ÈPŸfJåN G@rpúaÔ"÷ÂvSN@)(¾pJ‚Hœ Öå‰*( "Ñ í ”‘‰ú› $ZÈÞ ?_Ž•íJø--bż@‹"V4¤¥«#e©ÅÄRæ£u©émçT* $V,Ì\ ì Ýa2)ªS*Щ“df®ÿ“dCq+xÏ“d«ñÓ4›$[/}Þó-6³ûoL’%úV­Ü&òô­ZâÖž&úÖò?2 ÏQói^½´»iª €ïë/ Pó?5 ¯=T{dzðê¿ïÛM•ÃÍŸ4 ¯^Z]1ï*Ð¼æ» +ü…—ÞÝ\ã]ÏÂûôZ{÷³ðÎ=}}+Ið —º”žàgáéÎÂ;þ•Ô ¼«Yxf¬$øsfá5Ok Oóy{oÿ¨f9+Õx8f%ÑݪvYIðOOó±ÊJFT„cV„M笰’£Rã—Q°Ý•Bº}L7Žè…¶bÓ#ˆ ˜²’á nó³’ž â„ ‰‡R2Û}Ô)+Ig ²’ÄU7eUÁcMù(á÷¶ÃJ2¼§;V’1îXÉèètÌJbWÝ©T#§»J0"±ˆuŽtËJr"rW¬$0.`ö¯>Ÿdt 0û–º +ü+ ˜-°’ YÀì‚•DG§å¹wÿØ4Ÿ7ôÐÜØ"¬d{ºe%Iˆ«ÎJVTGlq,"å¹µ{PwÂJyhG#¶+çÓܲ’ ìp阕ȇy×Õ\+ö¡­U,K[îº;;V’ñ¡Ý±’qˆ›´Eÿj¢mJ€@ß.WÕkhZÔDáê:̧êË­‹‹eY!ãápA¬p;Š—e¡:Q™ÅÖJ–¦ _Y½kC7óq¬1Ü×@(m!¯:³Õù¨øxxœ½¹/Ñvü@ý:ý«êë2ji>Y/µîçCP–f&QýsÂùµ/Ž"SÊ‘Ö$@¤)U-äð¸‘p〕„Ë8– +ÐoÊêœpX³($Ö 8• +`ŸÐN¥øY3'´;V2 ‰§µâŽ•âA϶YI9@*øYœT # n\I0"Cá˜C©cà®NΚƒò:c|:À-&\JÊј·Rè„v,€´ìErwRfг;©@ê<(³ÞæŒ~n'Òr8%+†uÊ‘—OþLôÐŒ@yQSÍíD" ' dõiÎ@I‰´P>µ©¾; { +–Ž‘8ÄuJ™ÚNî¾õyy¨—`ÙÕïpTÚúøZ\Qü$-‰WÔïT øI‘ˆÜ?)ÈuZÑïpâš²§ßItàéS°Œõ;œx'²žNº +ˆÔvò~&8ñ>¡]u âlÖìêw ½;©râŠñÈÖïì\U¹÷Vuêd‚´ÙU€¤z‚Ú¶~'‘ê+†Mx# ÁZOKMx¤x5rÏ:( "iù(Ê£ó«Ü $ˆël,’ í?l€²ý4.UÔE^g(ÏÇ AI —qJ¦6Ê(Ë"×”—/ +m±°VÝ( "ÑCsJ@©ë+î,‚²,ÔÙX%A$ ` Aù¨24=áÜPÚšNëÓ¬ƒ’ ’6ÖAIÚ ü•м¦öªÃA¡+PDbµ+PD"½ÀðØšç@4ÐÙäգЫ•ÅÚíê*•ú׷溪hD%¿‘h`Ä_­®xžeÑ@,†u+…¸jíê´æ3#\êˆfA»º²þ|ftؤŽh¶3Ÿô¬ý‡»ž<$ßenôäÉ3`ç¼®_¯È<lhŸ*´CðGÍ#ÈÛ“G< ]ýº¯ß“‡H_Ñaã¬'O¢zÕ(DjàF”äÊÑ2N@I‰–Q¥o^DY©28GCB$©!Û dC\g $ˆÄðLåQPDbÏÆ( "c¿%PÎ}™ÉLÜä%¹2#± J‚Ȉ&’2Ges¥‚ÖáTC@ÉàÆ( "yNÚ*( "7r/å; dÇ…8%Ad¶œGÑ}M=ÉÁÓ¼{]ºvçIt¯KÐyhZKÐ=1´Oy!øƒºóŒFó=ów¯K/‰ä<¤N>¥…gýîuéE"xolt¯K/‘ÉyÔëD^÷ò=Læ6O÷ºô|\ÆN÷ºô|>˜”OlwõÇŒÀ¤Xå{sk¥{]z¾'*¾Èݽ.½H„=ÓPˆ_iž ÔgmX¿…¹y°ØXÜjqùž0ݽœ¬IQèø]mÙ»yh¤€’±·€ôŒ3F­úùòýœÅy鬜G”‡ZIØ7.@I‰^hg ä c*•3C (7ûGÒ“°ØOsJ‚ÈàMsJ¶ã˜3PbD»>yÃî +P&úª»efó,(wû†ËK§.ºó0‚8WÝyXWÙ³<¨€ÝyvÎ+ªœ%øvç) 9K„*¬¼‡À2ªåjN r·}ï”Eêïöta,®Œdêi²9Ì;6E“x¾(8Á˜XY+tCÒt§ˆÉJ¯Eì oH¸qÔÑŽ¼‘jÈ•"öë ØMò>e­9"@VÀlW‹•)®:ÚE,ˆšÙWÄž=IA¨RuÓÑŽ(bƒˆÀQG;i¥—T;·užGç‡s¶°Á 9iëí Cv× pülæ×†ªÍ$§ùXß%‰|'â;`2l+MçsüK¤óÁ9»c)E:Ÿ "p)S'””·×vÄwñ2n±4ãa”×u‘‹ (ëú Oóq¨ˆSCn±ü™fÊ›×tñØÊÔñÓ (‡2uš[ãfÅVm‹ï°ecVlzÒã&ÿ¬ØJ9}Ž Ú·‹ó>•ÓÉÑÜâ;‘ Îø.Lt埛.¾‹›´Y±éâ»’¯ ¾TëÉ@çD|þ‘Ö“ˆÀL/bÈ^² bg]î˜HÚ´ºràgô&¢¢¥˜Àlžf´'Pe/y{ã¨ËOä;êr‡^h“g/;_Ö^ØK@÷p×å.“;-«“ ¬§:iÈ^¯Ó‰`Ÿˆih3ý‹þ·®QSx¼ÍÜ,W, +ÖcI¼[Ázâšp%ZD Ï“NçJôÙKlÖŒ¸-¢ô¢õäë!xï­'+å8¥kÔzryBBUÁÝzRŸ½t9¶iÈ^âD—+P’§ ‚±ÕN@I±—b}šqÑ¥Œ½¤—É]t)g/¯S5ïsÀ·'PÍÄ5_MÛ¨fb_èR”ô ß4eÓ½Á:eÓ½TY© +iÈ^â±nK}öÒb)I{i¯”$•½T.%ùZÉ¡Z/‰®|#GþÕ¥$Ù-}ôÙKâj˜†ìe¤¹Õjé£Ï^2R+;5Ñ}Ã+ûQ¢dÖT¤%±×™·QA:Q…¸i6s»l®øùZæòilf¬¹±™Ä`Ò¯€ÃîÍè…s%‰>[é +Ò‰ÝBO­QA:Q"ó˜‚òþÇ”½LÁM~PŠ2P@Éó7Pú× sP~æ%¡àÒ ( "“éÛ-Õ1"IÚÎUKu.€òÛ›EPDâ½qJ©œG”ck£nJILØKýR#ö2QJ2¢?r„$}¼ÛƒfíÏ-%‰ØK¾”¤3ŒÆ~.AGz½¤¯Z‡ ë[€¨n5e¥$ð[–fõ©…è§¶8qS[l ¸›•³—g«×spoC­z‚À¬—ÖÿÏÞ•¶µ­sÛïïóèG¤…@Èä!d"! IH”e¦eZ +-eøÿWƒmÙ²ìȲtÏi{¾ô´§4N/mi¯µ×âékeuZuÕ™²ezi(—L­t™BÕå’©•î–ËS3E¹4ã›>7Ê%S+IçV}¹dj¥ƒ+«/SÖÃâXY}™²DàïÄÊêË”¾Ą!读© |ȧ‘q&HÔàq¶êÎq žcÖ–øLçz< ’> ¡+Sü/B]ЖÀÓC'v&à4xö#m \x&w&HdKþé ç×ÿ:èyë¸ÙuAÏ”i |ÀAÏAPÿíAÏíË„®?Zm‡eÍ4j;s¯ô÷©í¾þ¬´ÍÑ]%:tdšÚÎ0Ö¾Ÿ¬EgÊ¢K4]cm«ß&{LžÚîdÙÎ~»jÅìacŽ¢ëðžL:¼0L KxÍÈ Øæª @ÖV÷Ý›&Uû¹D¹i +êc|q$¢¾ÔõqH*IÂú˜˜•Ä›ÛHÇeÑrè” +7·zYÉ‘¯•t…ê@9‡Vò³c¥êî© 4nϪMIV’m©jb%ñ­U*@Õvj@ÇJâ]§V©F$æ=µJܛƥjVxÌZYIWD®€•=4R 0çL{¦ñ½ôÇ0'f%ÈszV0i>šXIð¥ùè`%½Í­^V2¨”c%a½3êñ¬$Ù D)ÏGu湕d%¹j;õ¬$øŸ’ˆ­i¬$~Òä]wDYIî®S=+ITCê'–Ý^ëÍ'\ÑetL,3ÅÐQy¬¤Ã +ªvž«’gÁ +±’¹zÇž½^˜XÃÖUÇÎf(éq+iG‡³Ô1+I·êº¢¨$ù XQ6`1} Ä«š•ëÜ/;»ÎÜR ®íU2²>ÒZO~#ðêw}ˆÂÇ +üFlÔ*¡–YöVµgÜ|ßè P.ZƒíÇQ$¨RÊËfÇ*†›Ô¬$­œ•„—™ÊŬ¤…YI†XÑÅJÇ_@3+X¡õ±’XÇ— +ì*d%ëm§—• îÓÒòÇ~ä127j¤ÞSŸT€¶ø ¬¤%ÜOÎSD:€F©F$Ù è” +°]uMRüŽ}ÍÊCÕR)AϪ¤¢–­Sô;³Ç½0n‚’¾2¹Œ&PRDúOk”vPFF‚à'M()"= ¤ˆþtÕ ¤ˆ$üÍIØzG(£ƒž•‚R|€9F¿³Rû¾(J…ÀËhÑï0TˆsŒR®ßaLN£kÞî-í,Ëêwг3V<‚p£C¿ÃP!Áó:ýC…ܨ×ï0âR¤ú˜ g•ú(B2‘ßGâÔIÿ1J¹«ïx‚K®žxÇ8oMÚU€Ôªé¶XTs«ÁU€¶zÜ-®´Õƒ…ÊLxÂñéŽc$ þ +Lx"xHõTeÂ#dxʽ4Q°ôIÓJŠH|] ¤‘ x…NÊo3ÕD^u€ç « +”‘”ÔJŠH"QT +J¸Aßyal±ð–C()"‰PY(ÃöQ ŸYKA¡+ÅAûpD³š|fðÏÙ¨Ï#él´äTÜi¢T’t”†¶’&àW±úç$ôä jeÕ¯!ÉèWT=µyòPDbê[(ý4"Iÿc¾¦”AþF(.iP.z¢MX_!  \XTJŠ |] ¤ˆä.6ª@IéiqPnä QPRDºd±PRDúþÊA‰i·Œ%wŸ¦”‘€]T +JŠH²HÊ¥“nrfÄ] (ç*ªAIÉÅ*Prõ ¤ˆ¤òÑxP>õ+ÉA9%.D()"qkH(óÃŒ¡Å'nHĽLzÉ]ìuçù™FH`nÍ/ðùÃÜyäÜëâ‡DH½‰Ÿùü$à^?$âèlÒ»×ʼnþ’s"ìH¶½yÎô{ü„d*÷ºø~¯%å^ßïaļ–OÆŠŸ‰í÷Xî‰ õœˆ@¿³Æôîuñý'ÍΉ´—Ì«îœ%™Ïl^•° ~¾å\¸åÞŠ²ž´á6P[xdò&·È(IlÉÅí¢ù‹IrPÒ»9MΓ”·×‘MØܨÌK':M ¤ˆØÆ€ʧ—yé?Ù¼tòh%E$Þrè%“ÖJŠHJEPÞ¼(¥€¯º +PŠÉy„@Y™õ¸óqºÜy[eiw#ºÇ:?Èp…àpçÁw˜ãÎ3̺ÀªÏ%@›vv8®1œ¥#çàò"6,› òŽ=ëìa£©ˆ¥›`§zÑ}×CäÈ4-VW£ˆ Ëy’)b{@ÐtN—"=ÐÚíø[õyëüÃÓ@ÚÑî«QlúwšH¯"ÖáÖô8ÚѦm?hUÄbQßÜ×<\’'Ïú±äP¨ÉÑ.*Í'"v'‘ÎÇ+kz±xg£5gË×¹-<©xÍÜWâu>¸Ë¡5g c)Ð~Чˆ%{h¥±”¼ágÀxÛiRÄ:•±”Qi> @¹/)¾s‡/4+bŽ Ñ(S7ðÝtÛv2 \º¶EÅw€¤.j”©»íÍ2uŒHr`WJø©O^)"1¡U¦Ž‰‰­2õð¤WôìH6¿ršF|ˆyVú¬Øø¦ ö†é³bCMŸ¯s‹´éÃêlú>‹LßG é–jß97-}Vl¼øüO"+6^|gÜžvö’ÌxDRÊÄwà_b=iœΘ©]îð“–€À”d/©V]ŒÀc/Xoà³i 0 Élv:ž½ÿK7 -È^z+´ 9•½<ûÅc/Ñ“–„À”d/ɉ ][V '‹oZS’½ô.“˜+ID”Ðæ}R®$¢fflQBdp"5ÓN^3Ãî<šë^ç61W’ˆ(a·â\I"ö0þâ\I"¢ücÖ“±¦${ ~ëI³p÷2ERb­'·¬4 ü]­'§±—dM“¥8{‰Ïžº@I /£9¥ß\tÓ’˜’ì%-kʆ.yûdàÓÈõ}D³E‚»NÚ÷9»Z-I]òš>Àó„T6tÉkúP"_ŒÀ”d/ÅF˜À”d/Iõ'0%ÙK¢‡Nh铜½„—ID`J²—GIüì¥ü(‰uvÜåf®‹Ž’Ü=¦Ê\ÿ—’„,}’³—œQ’é–>ÉÙK´Ø$¶ôIÎ^†¥V©g¢9=Y$íÕP3CD‰§RY3ÃD‰w™5³œ\ñƒž4Z3‡K²FñD Yhª™´`2(]îÍx”DÐ=$d²%N”€¨ ç¤FñD‰#TÖÊŠÈ$¸I!)`5·JAI‰¸‚ ô,}’³—XmgÝMQ¤–0¸Ñ`©NÃO´Zª»n SÌ•Ãë·Ô’²ÐJŠHô¨å6<_ŽÏtŒ’Lg/Œ’ˆ°—£$gsUyÕú·ª«~øCGI¢Ì paH©Ö›UsÔ?àO³7oðÝCBFkqïš$Ó Ü¸ Õ~‘7 õP ½‹®±¶Õo“ –À¿ Ñz´(©+ ú45ȌɔåÀSG¦,G¯#S8^C¼réÝM±f +/Uõå’©•¤ ©¾\2µß´ˆri¨Ë”up³ŽwVš)‹i"ßiTS¦l„ÚnJ¦lÏf*"—r&HÔࡇ¤Î‰<€žK88 ž³Œˆ-O£É³÷J0ï©R¡Î·%À½N)g![×U }9g‚D¶=Ë8è +z¶Ž?6’]Wð=[ƒ«4Aϧ/v¢®+ø/èy(Okãþ® gãüà©ôw«í¾YéÔveœÐõ·©íjV®ú2L£¶+˜-Ô¯®G¨íàY’QÛ¯Û¸5t÷hqÃ(G÷ë±{ظ£èdf_ùÞävn5™Pº]2GÛuS‘µV´ N)Iéé•Ëí~›·ÅMH‘rùh¦!)žÆvhªr _…[&=õC\¥ÌñФÝ2’tö(Øuš#³ßqV¾¨ èHÚêcÞŽ/ã}Чѫäq'$U›4ç9‚WkH¥¼Ži³ú/“@^wzo$j³:¸¡Vƒ©jÚ¬ÀñT-¯cÚ¬!QŸ"yÓfeö)òº–¨9®žäuŒ¶Pïõ ÌdïnBi>ÊA™XIïØChQPÞ•%¹Ò„üVÖJŠÈnôpÎb£” Ã>”__S;öÖÛNÐámW™”îÃÿ¤×¼Fr±ÄŠ:ÇGA/(¥rìɽ]W€ßŒ^÷AŰº¤˜ûÀÄÊTÍ+ü‘Óxœ]ËI9öd0qÕí4#4¯…\HóZ|ê Ã@ŸÏõ*=dßb6°ø¦yšWt8ŠÞõ¬Üd†7’)2ZEÈ,Þ¬mó6°ÁQuå’#‰×Q.™Zé;{rÊåþL +©Àm•ÖJàxti6¸#{Rÿ#U.ks’ÞvÌʈ)Ã~¾³TΰE2ú(8sÑv—½(qkwnÅ[9I²èŽlÑÀ?Ÿ$û}/Q›Õ=ß0ç}5ñÎô™JFÇ;‹4DÒ"ÓiMÒf-Y_^.‹ñmVÌâêŠw¦mVà‹ Qï0ÒÔïŒÚ¬¸.’'MS¼3;é¥)Þ™Ãxˆ€rùÝ‘$÷Aöiš@Iéêl´€!²Boš(a!*ă’"2RD®–ûÀ,®.PRD7S-(O˜Í*i¦h%E$ún´’o=ã0™ýuYIÃ}gÌGÃd$÷AV¥™ë„ûÈmot(÷Á0…ÜÇÞS2©¿g£‡ûÀ7Mmæ:o@‹’^Ê2×ʺSìj¥8s7 þI²1úÖD VÝýÛ$É–`åy1  ž$k寫eÉøm“dyâVà?I¤oM$nut6úÖDâVðÿ›…§c€ùwʳr.W :À¼wŸJð/`þG²ðú³å¿8 Ïz»ï7™žÍ_–…gåªMaWŠHw€ ¼Sî*ð·gáݵí¿: ïà¥ü×gáÝ–Ót]‰$¾0'Úãù/ O0 /d\÷WeáqXI!ÍŸ”…·wQJÁJ–ÜÁ:À¬‘•°-m¬$à¥ù¨g%Aš4qVÒ9{ŠÕGy¸fzYIoXÞºª¦¨EôsåÈâˆw6*êc|qtt6éëc<â<4³’xÅv4 ¨¬9-ˆ[4³’´he%ɈF©Bä"½ir œi|/ ìX]ÕfVŸÖ´J0"ñ­ ”>V¸¦ zYI|Ó´JøþzXI=À¬’•‘Ì +XIójü±›f€yãIÄUàw`žÆJ©æÄ¬$Ùr(ͽ㱒X– 6÷nªÚN+‰h][”•ô +²’EÆr'ÐL`%Í«ÎÄHÎJÆÁ_+ ˜Ù(M¬$eia%qY“wÝe%iwP++éö:vëþ‘­…þ¤%}¬$•ŒÈÔÇüÍ%„Å[Gw÷* F/ ‹•t6·é >â‹c¤¨/ž ¹ÑM!@PÏF‰ÁG<Bv6:¥‘è»yÿc¾¦”(ÍR ß7 (ïòÍD¬$!ò)(ïÊZXIU©”•dM¬$ø_Pnä IV°)XzXI@Lô€ÒnKLÏF—TÀ#Ð,Àˆt…b õ+’  ¥`i” +`Dúço”I3Óuõ=š¤îe4K¨D1¾ñzt›‚ +)*ÄOáé‘ +4·ú¤¸ë +¶ :¤X'€Ö´©@Èï#¹TÀ³žÔ+Ð1ÀÌñ:ÿÛ˜Gg_XsB©ÀÑ­/©üMÌÒ~ŒÙðüƒ^çiý>³k=)ï÷ÁˆwbÉ <<¿Š·ÅâãF(é+”é¥ ”‘aí 9:}©¤e…©$‘˜#ÐJŠH:ã¡”LW](9þË[—ϪAIIˆM Œ!$ÅA97ÿþNÔ«Îå ¤ˆdFIÔ‚’"Ò…'å7¢Y”Sò™1é¥ ”‘xש ”ÁZ(]DþÌ ›¦ ”‘ø2º@)`ÿãŒe$ç'yJȤÎXü¤‡›ÎXSùÉr‘£æÇrÎXysôÔ‰‚¥üŠTH~Ò=ߨI‰´Å‡B±4Øg¬ø(ØBžgÿ—›& +WO±4Øÿ7ûöåÎ_mÿqtk¦²ÿ(ѵþ³ÿP(´Ûýëí?~ìkÉ#PJŠHÎ#PJƒi‚Dy”tA,(¥óâAy©Gd€Y()"¤”‘ä¦ñ$é³Ç©AIé|7z@IéVO% Œ¢„—%<ûͧaFPYÓJ†)ÔJŠHÿš& ÊÏC"AµbPˆ} ¤ˆ¤L¡'IOt7]H°lk’ÜÕž'iYÉÝhãÝ!ÛâKîN/ xbX ê?õ­È(‹'$@t +Iz84¯Gwª§J£,ž^FµQONÚÝ$¢yGQV¼JU™QoŸì’r-‚øéýžà®Ó×òYù•“4Êâõ{€gx®Ì(‹×ïÞd±”$]44ÝéÜrté1¡éaqú´Ðt\Ö¹éyÅ¡éŒÀ_-(=DîÃËè%E$p'‹u€’"Ò»LP’ÇàBà²831‚’"2²5¤6ž€9âª%E$ÞuŠ~ê“×D ¤ˆLHRP2á'š@¹ÉæWNu¤ùqºÒ|‚£›²i>£½'Y!¾ÌÑWKð§¤ùä¸êU²i>Í*ÜU?ïÂòVž§î1nO»Œ"6N3‡IÇæ£/ôð̳âæ2Ï&s#D4ÿ%æY‡3æßnžute§PÄpW}jjÁæY‰Í³Î~ýÍæYÙöæù_nž5Ú»·äu>WÓOû[̳è|]äI}BŽvit>€˜géIÀ£w3RΓ”·×‘â»ܨßÑ”VE,fع ¼3S€Òd* ytÊÔ1"Ãí-â;Ú¶Óªˆo»å­›-â;@&$5ÊÔcä<‰ÄwE¦Ou±”¼·/£:–’×ôqg€† «Š¥ä‰ï‚í¤¿Ó"¾sNÒH—3C¦2ñàYOªß4Ö“—;¢1øN@`J²—¤ )N`J²—þ'-‡¾›dö~örï"Ú›ÀU¦¤ž„Žg/É]Á$t<{IÛb¦${‰L`?OžLIö’ +Å LIö2Hä'hË&c/½²–˜+ID”àW’ˆ(!Ò^X3Ý·TÍl¼.Ä%¸Ë¡«fÒ‚h?¨ª™a¢„ì¡e¸’Dì¥#T–àJ%ÎÁC‚+ID”þ¤W$)É^‚à¬.—;2£ ”‘ðÍ ܶ (Â’éΣÔå_F()"É]=(öSº@I‰‰] Lf=é'0%ÙKO¨,H`J²—€¸ +˜ ØËÃmú°28‘¾O!9{ Bf©‡.yM禥éûˆ°—à‰û>2ì%Þr$ 0%ÙK§z&³ôIÎ^z7MÀ”d/y£$S-}”Œ’L·ô™Ê^žWÒ’äãÓ ~÷QAö2á(IW’½DOZbKŸäì%`-ôÒÏDGNzE¶eWw/ÒÔLZ0½Ë¤5*ˆ'Jhó>¥QS37î¹.ø%R3ϧÄ%À1ÏÒR3iÁô:·i +â‰vË!iT2Ùbˆ\=UÄ%ÎW()"AÀš…€òþáF ()"{ ”‘ìÄŠ$(ï¦H +€›MJ+ ()"Cj;• ¤ˆ ´†Tƒ’]Ó$AùõU”½ÄgO] ¤ˆD£$Ú@´fq Ì’ÕºC^h%q÷ÉéFIòLºAÒQã¶_*þ¹£$î!ðGNWàFz-'5Jq–éB`wšQî!¹{Y|ê ú©ÏkÜàêY¨ôì쇻V4y6¾nÃïæÑâ±—Vn2Ã;žúj%žXÑŠL—ñà%XªVà%”ÄËŠ}ü—IR./ŒDbGGË¥¡¦\2µ8!ܪË%S+CEZ°\&Œ¯žS_ ÁRu|%¹i¡KÕñ•Àµ1H1Ð|Ýå5x¦ŠÈ§)ÔÅl ÈvP^¡.hKà?{òz<)âËyjàãœ4z6»"rÍžÍq…äÎÓ<>[ÀŒc“ϾêøJ„9g‚DÂQµÝP¾Æw]#p£”ô•?°V5()"AxÞ‚²” +”¼³ÑJŠH2|¡ ”‘Ì +­+SÖÝ PëË”åªíÔgʦTÛ‰ÆsýÁj;t6¨K«í6‹¥ÚîëÏJÛÝU$rGP_À0Ö¾Ÿ¬Å©íðÕž‹®±¶Õo“mf8÷nÙÎ~»jÅhGQžÚnyÒáåî¥qñ™6JÌncˆ¤t×4Õå’©•Ü(,—L­ÄŸæè¼¦\Âå¡0Ç”K¦VâÅFk;®•þí Æ´gtX.+²•2´2à +ùÄjâvuûðÿŒòm' 6ƒ¶¯¾‡«"üFzÏëcXïîÇèAZ¼~ ãÑ:?Ø^ƒU~~É,œÖjÆúüI›IWЀGŒ¾zCðøI‹YšÎérÐòoÕei-@b«¹rWô˜ڃ#çÑA{€`ÌŽ.-xI¹kØÖ.F늪§¹k¼ÖÕ9h´µ3¼¸ëå@³ƒ–ó@k´µó˜¥@¹ÈAËc +)(×ûµ²j-à:ÃêuÐâ,6:´ÂšÛ)ô•Ãë·äS!\•ªz-àOZÒä UŸvKƒåTq‘\ºs™\dÿZ ÄY:ùE‘t‡§Û!(\dHÚ+¨AßèÀ³Ü…!KH6«ðÆàïæ n>^8}n3oß5ñ±£½ Õ~1B¥úY¤5t6~¢õhñ_àm÷Ú§µ’Ã()—L­ŒËˆRÃIZ+ñ-V.­/¯Í5Éy-´ +¬›y•ÒÞ–Ùܪ5œdŠ´X¹„/”•ÕšäB¢>\$×Ãޯѭ™‘oÙ‹ÐáéUúSáíÐ9Ц™ÖRñ±0~_õÔqë‘´¼ŒÂ¸õHÚ#T¤sðD?»$M{ôO íÛÊâÖ#{;èP¨.n=²·à¤SÇ­GövHµwú³å`i”ˆ[ÌZÇgOeq둳YÓõQ ´ÞîûM.’ÁPRDÏžŠAIéÀ3g¬½¼Ê;ôO¢?<Ɉ^.2ïšÎie`…ÖJÚp®'¤PFĨåt½@ôÀäÁK9ùÀ$­žRޝ\d7Ñ\¤‚É/%:J"ÃE.ˆâ¹’xÍx¸zªã"£&Q½Iáø:u`Òq–Ä€¼ã«èÀ$þ4òޝ¢bsú¤M÷±K!6'+´údg¦Áˆ“…òdg·Á³WônšŒ¹ä—b¢¹iê“™OÄð…²IGl’û ȈÍ' =BožO!6w‹´æÄ-F¢HTtß÷Æàá2Eá©+/ÏÄ”¬S„:øÓÄÖÇ´1x^\ˆÞ<ŒˆàæVN«# kuš’1x¢ºV‡ñЃ‡ /£9/ R}~^~w¤”á,- ¤ˆN"¦(ó¢;Và +  Ð%RÏŸ¿€rPÒgÈ-Z@IIΞÉ@y’\lH†¤PRD‚ gŠZPR±9ª7Ù_—Ñ¤Øøüz<’bsßW<›ÒX[Ý_LÔà!j;ÚãÙXˆïñH6x@¤·]ºlJ¦Á_UÙ”Lƒ'ø@OϦ S!BÖ®ñzùlÊÿg½€ÃJ:€Æ<ïì©MÄCYIŒaOÁJƒ‡YIG5´€T+ÉÓÙh`%=q’^VDLjf% <á×ËJFµT³’á³§'½t±’þQZçá2]\•%@г­&SÉ‚ú_C(=¬¤{ðÐÌJz{h½¬$ ‘{ÜòªáµT5°’ Ù„¤,+ MHJ³’~xBPfç†ò l4þà I?+é®ÐšYIT=ƒ“ ZXIt½R8ÃsÕ¬$œLÉJúq£‘•$MÈçº<+Y°ÙPˆoð€ßwB’ÃJ¢Ë¤Í¡`%nÒæP +°’ø2)s(XÉHµZVÒS©êe%‰¢KUä—•,ÎÚ5ï¦I°’[Ï5æ¹d%±¢È»HV+Ê"ï"YIôÝÈ¥Ý%b%±ú! V^Ž•®«•^V’<üv«BÄ¥"4³’¤H+pÈ/¿gmÎiq„—™®Ú±S ÀÁÒËJ⛦ÂA žñ’H²’»†§”áN"Ä!V4Jò!9å}-¬¤¿¥‘•¤[uiPŠ$§‡‰|(áûͪa%¼§>V2Pô±’îÒ™”‡‰XI¼U×*ÀˆÄín­RWDþü¼<{¬O*àÎh– +¸-U)©ÀÛR¢c¤Kä{ ´$Aâ‘ð2š¥Þð…^©F$é +ƒ’uÝõ¥aÛÅRÐü©€¹Rû¾Èôl4Hè¡P«TÀwö— +ØÙo3]W²t–æà#ÓaÙ…TùntJ|®½:¥ÁzºT ì÷!ž‹ª§^©€îæ—íÿ˜­”ÌvöìeÑÐ&ø—0§I%z¸ ØY¤Là$ž+óû`Ä;À³4RÊ=žÏtܤ%}e + RJŠHàÏôâ‚R0„J;»ÿXa)<õ dp£ ”‘¡®ºJPRD®¿ÀnÐw^F3cBR()"c É <Š·ÅŠÂP†Cƒ´€20JÂåÜòüX”îl¦LâB  ”‘x;¨ ”‘NW](yÒ”öLóÝ;-yé®–C (Å•§:c‰ÅLx¦sÆà'Ím*g,~Ò'»†°×ìª4?yôVä'‰8)3–?éžoÒ8c ØbùÏ7l:³Âhf¢å@ÎX×RPÓ—ßš4š„í?¼tæ…ý‡hÁlÿag—Nº²B»qÍXüÏþC­ýÇÜׂ+†ý;í?¬÷?ækÉ›°î1J (ƒ£$Ú@é ÒÚë¸7M +”ÅŠhÖmwkePÝ­ ”‘x­”yƒ"Ò™ñÐJŠH|öÔÊ(­z(í–±±”†q›÷Z@II Ì}\¦ˆdz" \°EAI x Ìê“ BL¡žd÷ISʧ~…W&IWÐJŠH–XQ +Ê V=zûz˜1Ô @0ÇC…QOHh©ª0Êz³xBç´&`”e¥Q÷€@³6É¥¾•eñôè¡Å&…$ýóS¤D†ÔIeñôèè¦)6ÊâéÑýÃ~Iz¶½y®Ð ¯RMe”Åë÷bž¥@’>.µš‘ýw××òynF¶|Dû=ŽœG¥QVS¨L’Þ^2¯ºs¯ßã“%ÄèÒÍ«’`´œ ;¡;îu>q:Gžƒv^°¼Éj Ì(PÆm‚q»hþ‚—̵‹nš6PR0xý4Ê‹Ûk-Qé~•ªrPRDêŸ& ÊFC  *”Ô ¤ˆô«»•ƒ’"Ò_”ƒ’"ÒY:ƒòæE”‘øP¨ ”‘X«® ”‘ð2™leRÔæãÄ[ª*@ûd ›æc&R÷x»N¶DTWEµºÇ%ùÇÓ|ðMf9ËaÖEU}N*ÍâÌØ´³Ãq-BÝ“3CŠØÍ&QÏÆ:{بG*bãæ2ïzˆù`Ï4Íú¿Æ³‹ÄMZñ]DJµø^F”æÅ»×‘¤øÎ:Ïš€É¿Ñ¤ˆ¥¸ÑªˆE—Ñ+SLjÄ"‹¨XʹöÉ«ñQ?蔩Sï…±”ù•S^Ó'(†MÞ÷ßùà©*–’×ô®M¿ï³P‘ß=WèN8sk +c)yMÒëTKÉkú¸(nßGøó¤ÝXJãö´Ë˜©Äw€ä°Ç샕ˆï¢ä<â»Ã3’½ôÖOB'`/]ÕÄ$töÒérÌg{‚(öÒdb \EWêIèxöm ”LBdz—dŸ&N`J²—¾]'%0Ï~©6ÔBGÜ$¦${”óȵeØK~YáJ%¹%Hq%‰ˆwỔ(g¯frsœA ­T›`=Ð~Ð!XŸ§kšW’ˆ(qºÂ¦${ 8¡Ab\I"¢„2…ÉA™€½ôãF9()"]QŸPRDzÒÞq)c¦¥Ï^nMç‰Û~ÐÊà +­ ””½!ëI… äYOje +ëI9öÒß³!0%ÙK7‚¦{i`µT’éû —E¼ ¨|TÙÐ%¯éãêT ]F°—èNB`J²—ä'0%ÙK\=˜’ì%àNzÅXúȱ—ÓFI¸–>ÊGIø–>ÉØË¡u×O3J2k×ÿàQ’öËà’Zú$g/"ÌÒ'9{‰ÏžI-}’³—áÖPT[öSÅŽ •QAÓ1J"ç’p”DÖ=Ä߉]XL5Jòs1¾ïó{’D±—x2»0dGIšUsÔ?ÀßÍ<öÙË5·wp{Ù/Uqã+þn*\«ö‹<ŠÃ¿¼èk[ý6É4`ÙËñË­G‹L­ÄOšVdò7ÁRµ/ÐÒ¤ZgíÛ%Ë¥€Ø‡#ƒó•Ë«†±÷Ý(.—L­dˆ|©riL¯t…œJ©4¾Uψ¬ÊøJ@ƱS AGj°g3^…‰Èå |²y…zŒ-Æ`gp{þyI²e¯îÊ 5çªÍ"ÓàC’¬€¾5‘¸=irúÖDâV—ñH®oÕš…§i€ù·É³rÅÊ`==rµÈó?’…ן-ÿÝYxÖÛ}¿™”‘.¥”ú³ð¬ÜL©™" oôt_%E$·¥ú_žÊ»¶ý·gá¼”ÿî,¼o5^ƒgá•ÐÏ•%<à¿,¼ˆ,¼kÝß–…§˜•t7P¿MÞèë\5Õó·*óÜþQ̬$Q?ÄèwÔ°’7ÎY]'+ þ?Ò|¾ïÁ˨©ñˆ{öÔÌJzGÜõq19/Cë£õå岨…‰ê&@‚¢>m¬$ÀvS~D +‰žè\1Bž4  °’ p“†•t/£™•D—¥¬T#sÒ‡G- ŒÃêc%Q‘Ö+ÀˆÄðŒ¥"VŸ´J‚ü^V2Läka%xêb%Á´fóªÚ—u0Gw/öŸ=À¬“• +`´±’ÀKóÑÊJ…i>1¬dÄÙS5+é=ÐzYI÷ˆËa%Ki"¶P›¢P?è‹Ø¢¬$Àö†š"¶(+ |SxYI§5$ëº#ÊJbÆCÞuG´×«ˆîµîÙ‰®ÔJ=âÁS/+‰¾›«™ZK¾>>šÁ~Ç¥EmBŽwÐJ^·‹%úÝèŠ"Àà¹ZéŠ"À¢U×Eàxà¶nïäêp_Y¼ëÃmæcÅÎfl„ÂrÅ›…›VqÙ>Î.?Üg÷yØ€ æËù™×¬\ç~ÙAdn©†>ÍÈì7!œ_løâhìÛ@¨"@@Ø_@(ƒÞz¥‘DË¡” æåélýi ¼*>&c%ÉMÓ)È;â$ÍRÌJ‚ÿIz ı’!‹HâD®U*€YIî(‰zV¸y‘R÷?æk’ ¤ˆ ùZ¤øå]zU%(ÇS&)S(ÊÙ¢l|º³Ð(õ:õH(¥”y#Ò pR°ÔJØ gMR÷¦ñ@i·Œ¥Ô ¤ˆä2…ª@IIª§PV7º‘{W@òÖbA¹PMíéj ´€’"Ò)kz@ÉQ?È‚ò©_‰%/K()"ió^(ýN7 6c¨ç'Šó~Í­Jý#ÞñŸÖ¤ô;—"ü$[ë;lˆ¥’Ÿ¬ý‡"ýC…‡/Ôéw*$Fs;]¿2á™’‚¥^¿Ãˆwàeô¹ +„‡/T0ì¡3G ÇU Øè’Ôï\ÍÎǧûw®~çò¡Â<·©ãÓQŸWú âd¡È„'²Õx¡ABÝžD©“NûA‘ O¤¢Ž¿Q +J‘‡çWð2ú@I X³F• ¤ˆt.“”[”‘Þ*Ai«%E$¿5¤”‘þÅF9(¹¡Añ ¼|NØ ¨eP¢¨”sóïï("Åq“*Ÿ1ƒ’"m9D@9ó"š~ù`1êµ ä·†”ƒ’"ÒYlô€’"Ð$Y(†4¯r’xË¡ ”‘®V]U¥¬L žhÀc +¥EB^u bNZX4 æU% ÷¬’7^’\4P0G§¥BàÀ®Y4€nZڨр,æÛÕ©Ég¬Gµ«Ë‡„vòùÌÀ±ÿˆ<œªÉgv95B;-yS=yø(åž<y—†¼ú¢V´yúЂ?.@›'•¾N2OZoqkH—' œG”?öš°aÜ(%}e˜R JŠHàöà,§%B‰Ÿ4] ¤ˆ^ÞšPRD¿gŠjPRDõÃÉ¡PRDbW(cå…§~²hæH9Úx.S(ã^Ç1 ÍÔú,g±àRbXd¯g÷6;n¿'4.‚]­":æÈœ Œ›ïý…PÆÔ[Ü.êXçƒû6©žš@6ÏŠ徚Ìx•ª²Ì4RJ^fp¬Ž…@y×.'%E$ ¡A:3C|L¡zPRDr4Pr „Ÿúä•%E$žñÐJޝºPRD²Œåv&›_9ÕáÎ0´ÒåÎÜ*K©{ÐOwžËoé…àßëΓãr–ªxœ¥o±‰¤-›U4ñ¶ OÈ[yžºÇ¸=í2ŠXV3‡ûi ïØ|dÃxŠØ¸MðÙdn„è‘&m‡ÅÕ(Sw Ah ëpÆT­ˆ%‡BMŽvÁРôŽv—߬ø¦þ41}Ÿ¢š‘p½Ñ¢ˆáÁŠXG;˜ÂÑîì—€"qu9ÚQIõiÍÙ +þg²íÍs-â;¿ˆ\£"ÖktI×ÌGS@çã'V˜ši¦®™´`fÒK“"ø\5*bALØVœÎ'd3¯óAðTKÉÓù O£W¦Ž /“É^Ü^kVÄúŠXÿe’€òÞH$¾s +¥¡”줗N™:Fdh±Ñ£ˆÅŸF”7/’â;O½2u|7ñ* O¦^™qÓ™ÂôY±ñâ» ‘/×÷ßBR¼ï#™#‚—NÜ÷i¼.Hö}š> Có~š>Á:-kZë˜Â“âJ%˜L@`J²—À³žLÊ•ücÖ“1ìe,nÒ‚2¢õOXOZøMolH‚5ô}’ð×XO¦%E¤¿%B`J²—xg£ ”‘a9ObPа—>x&èû$f/áe÷}$ØKW;èïûܽÛ„;±·\o¤èRšÚ¨ ž(ñ”÷—w)Œ +n­x¢„pkšjf ý £f²D‰³¦¥7*ˆ#J>cÏ%FñD ð,ôRÄ% jÒ+”÷7ÉÙKïP¨”‘¤™¢ ”."ïMï¦IRXRˆã˜FKuÚ~Ðj©Ž‰hM üúJ - ¤ˆ$ÕS(#'½bÌ’žQ!÷Ô£$bî!±ØÍ‘%Aí—üŸ;JÁ^Â9]wn-'5JA–éBTwšQÖ!9†½Ä[ŽâSÑO}~ã¦PéÙÙw­ÈñKël|ÝÆ[#{iå&3«Î* ™Ìæ6 +™J2e‰|T}¹dj%pÝy”–Ëë2S+}²k‘rY-—L­¬3¬Õ:¸(jË”eéUM™²ÀgÜÜÖ—) /“zZ@C€×4"#øº«/SÖÙjòlf håê·Â¶ÜÐãá“ÚÀ8eú<›½9i9g‚D¶€~ïL°ŸÜ+K­¤œ Ù€ÿ çW”PöW=_Þ“w] z¶ +‘>ÿ=K=ÿÕAÏíËÏõתíÐy°šFmwwRøûÔv_VÚæè®ÂÍRÛÆÚ÷“µèLYt逆à¢k¬mõÛd›RÛ,ÛÙoW­xµ]ÌQtÞ–I‡†ïâãqŠÙm ˜Zé{4E°3¤—®v\+áe¦–Ë«ìVý\™ŒÑeBénnõE°ãZ xi¥l¹¬Èºjy+`¬'Ÿ>‡ŠdôQð¤í-{Qz'Öí܆B“ üRU9H$ã!¤äù$ÚfN*‰jyÓfÞd±ZyÓfõ­IžiD›u½i–Œ¨6+&ò5Èë˜6+Þ h×1Ú:àZë+–×1mVÜîv´Êë˜]/^4È넼íâAyœûðå ¤ˆô…:@I‰¾Ži8(Í|Q€û 4‘PRDºòQ- ¤ˆD¸ÑJ¸Ñº~c½íÔƒ’"quRÆÛn;M—_¨œ^óÉ}2îHóâ>NïLO¢(#¸Jæ>ѳQÍ}8´"ÍkXðº¢Ï/jHRójŽú‡ø»yƒ›ÇL{v¶kqïšÎ63D÷õj¿ÈSÅ}9Šž_†Î`Ì¢fƒ»Àæ6™¯ýÔw€Ìâjtĵҭ7ªË%<4Íi­ 4!EÊåÚËk2©·g£ÉàüOO¹„¯’•õ¶›ä8Er=<ªåù»Î‘oå‹Pílø~$ÜÚ½á°öoI’¥sÍêÚ¬!ÛõñÎét;(åÊl¬Ýÿh´YYÜx®Ì§e…mVŸ,A}¼3·™¢>Þ™¶YÑ +-ïÜŸ-gAâdp3èÖïLIޏš@I‰¾›·û~S (Z} ¤ˆôõl’€òâk2§ÂPPžêqdhI()"ÙÅF)()"†=”wm;()"ÎôÒJŠH:£”ÆùÁKsv·šÌu÷!F¬¤Ð8žJT*p%!ÀÜ‘Ä[yÕú†ûoµpžjH]æ:oypèé“!3»DZ€›$›*sýÿ5I6(nõÚ݉õ­¿q’ìåéaA~äªàžT›Ù1µüË’dCúÖDâV´ØÈé[‰[Ñeäô­ÿÏYxß÷þú,¼«|m€»þ„æ( ïàïÎÂ{wô·gá¿oɃ²lcÁNüŽü—…—Dq~ò_ÞŽ™ýuYIÞàñˆüß< /g¯”‹«@> oÜ.‰6xÜ5í¿,¼©V’” +ñéþ¦,¼t¬$¥"~×,¼²M<@b€9Ÿª¹êŸ;À<••ÞžVV’´TER+ þ©4-¬¤ Oͬd`«.[{Ï™A|qäâ†ÖÇNC ÂÓ h @ü›[¬$zÒ"ë£:VÁ3Èh!@ð¸‚V©€{`Ç ÔÌJº´fV’ô¡å@ùõ©/ºcõù”­ºjV’ðž:¥¾B S*€éªí4³’€ëË¡œ•¾yO¬$Ð1Àf%ݳ§fVÒ;â +³’Çïk©˜Ë6ºÖÂ;À¬Ž•ô?ÐYI棒•ZÓ|Òö}8B€Ào^ú®!øXÁ,nÆF ¡ša™…`oU{ÆÍ÷å¢5Ø~\IM€„[ª XÉÙcÑk7úXI² +è” +ø0¨#ûÓH!(‡,wà#@IM üƒ˜!öÞ½ÓJŠH@‚žõ€R( +”÷¿¬ãó²¹RÉ}m7æÆû`£‘>Ÿ6O‡+7;ƒ·‹ÑF¯ð£ô9ߨn_öÆU}šÕÆLåÿÀØúµ±ß+<žmU¿ÎœÃŸªu˯+øoGÛu3 .HÐ="Ê{>åéÅì¤ÄœdsoÂXØ;;½”ìÊb³+ŽÔ*ùˆtѸݨ} î/ŒÛ½ëeôD¶Ñôî²9zj~¦.e°G­©1@¬cÌÃÅ~A¹nµ˜æÝ¼•ÛYX³g?Ð4÷rÑÊÕfVá n÷Ã4Ø¿Ïi!m! +‘ðžÍ½DŠÔoÙèÚÙo3 ë<374¯Js#DYfaï~ö‘¬\±R†8üA¦W¿ýe^mïÕq‘F‡M¸²êpM={Y†wékþ±üå[ÖàRd•P»äüáü‹ù×üsè$[…_‹5c÷ö¯›ðP†fáþœY% {ñü¤uôâKYd6»kÖ»Z@°twØ3ë|xü}É-ø%ïàsðd[çç[ð¾×Cm°\ŽáÉ|óx—Ük´ +áU gµP3c¾Æfý£ð}—¿ÜaÃî=¬kG«]X½Î–¬³«§¡•{ÜÞã¯B£Õ®•+Í} «w#c›ÄC3í|£²•ƒ¿ÌÿÒâ5ôÚÉ«õ2n.+è º[òC¶üþ¥•ß[znÞý˜Û[m +?I_`îi/›)|½ß…—ÉÌ êd›m•ìú«ïdè<ƇÛ³H9{Ëû:ðª&³åpÏãÝãqyôÔäÇã °î˜Iœ‰Ý¶VÌÑéj©f-fÕŠ_²¼.‡èª—©5cm4)“ÊÈ\]¶ÎNŒÅÀ’µ½`å®7wá£ò‰0Ëóx±ÙxX_ÞVÖ§­Zøb­lùÛ{xt>Ü/&b£–»ìßö`ÿ’ƒ`[X‡çòµ¼ÿíà3½e½GQFkÊ{šèµì®±n^ã3½E>ÍÞ +\®çðÞ¥wB‡#s´woÁIq —Iô·W‡Þ)ÿþ. +µ\5WÖÑ·dÂq:4Gw÷ð¦Àe§€–‚‡Ó–±v¹· —Œê§9oÕmÐû{TôGi,mÐÛCtåLá×Ӈ̗Q9õ\9–o¸¸aà”^ÁÓ𞌶³x©‰VóòÉ\b ¼àÍéÚ*¸á5Ã4ÕEÇln© YYœø|q6™›˜W'›- YÔ4^·†öq›.ßÌÁj·¹í¤^ÃëÁ'ójÏžYZ߃ìêk µ´qOtÇ/ç‰X-6‘Ý{kBñË<\lÚ}x^ÈÛþ·ƒ!›{÷jg—NŸà›xË’®Þ@¹9ø’%¸×»œÑ*°[þ¶¸1¶rÕfž4Nañ?}\‡•úþÜ(,&à†(Ð ïCd6[ÈÀ¶WÊëæÕdå£ÛU·†cO0U¤ÅÊ–áµæ¿‡&·Gî|­*nÓï!¨¼½@T\^gÇ«G»pSÏç‡Æi`Ï’ÿá<Ë£õl~¹ðá§Ë{Â}Z)ëëþ’§ïèÐ ¶Ûeõ^€7òk•=N&=øj¦VdN$¸mw=3„ÜHÂ' Œº¢5^tµNZ©d-ðþ'-\Ñìãà +Ñnz³ˆÌŸË(µ¢ß6~Ç覡7í5$VC݈ƒqßÊÍ\¬"î£b^u^VÝŠ^oÁW3Æfa~£€Z œŠ~a :]ü¤mí äÄ,&äFNQß<ßDÎM-ô-ÕŒµ×»\Ô%+ºPw0Þ¹éZ ŽƒpÊ/§”§Vb¢&d¤EŒSÊߣö›÷YέշõÑjo»2XŸd>Á/­=~~^n_:ùO»ƒÎüõ±õþ'ÜÇþüž Rßx‹€ºÄè‘y÷ió èÇíàñŸü‚Ÿ Ú›ÒP¢R…‹Rµ¿œB¥z/Ê6V²ßÖQÛ°ŒV††è¢à‡çt[9éEÁ_¤%"uàö®ÖÃ:ëøEm©Òj{ Ã/[ðÃõB‹Âå×ࢰ Oí']¼ +¡Ež ›pQøpÚ€·ùaÃÀ`ª~­ Ëð´°0 , +·;xW`ghQXm˜—_3›¨›Ù°gß^–­áÂxË]|«¦oQ@Ÿ&¸.hYP?-¸.hYÊydà -E(T- +lû!dß#³(t&4í‡Ò¢ä¢|i>‰½&Å|™¸Í‚šEm¦„6 j,ê ¬ ZGý½YP³(‹4Ù,TožU/ +!©¤Ë¹(ÀË$è2¿Ä- +ˆ6.¬ã•~®Âà¶ðMSÖeàµÒñžójüÑ v.ÍBÿc5ÄPÛ€µm´7B¯wKÛvêÈON‹ÁÝ ¨é2D´Vfq3eü¸*Ùe°ÎÆ÷]ãv©*ÜbRÞÀQB"rfsl=Çdíí4íìÁ&Ö ”ÃEáßóÕò·Ëþ±>?{ìã nOïW½£‚…¨tx¾k­×ÐÁo/6ôñ}§/ØFÌ{JóáöCT—áñ7™÷LÛe°g_ç|Z¥`‹þ³O D•Ë‹UÙ.Cd‹!Pˆž&¸üøBô4A&V¤¢§ ¬~?PˆnüÄBtãÇ1ÍH·«.y =MàžüBô4öj³%ëP†¼øÒ€’"8 eZ@©ŽÈÏæWN "?=()"ß-Áʯ‹ò |(2 ¤ˆ$&P҇ܩžz@Ié'V”ƒ’"’(ºB®|J@I‰µƒº@)j ÊÕÝ‹D}/7z@p²P«®™;áõ½È#€Z_^œüRØzRØ÷òuÕùD::X Mc^@ðG¼ò2’P@Òüp$vDøfwÖììþcþîcÏ¡"LïMŸä]ÿÜý  Ð%ò˜Y²rµ…qØcw.ÄóKfá´V£nä LM€–êèpÜ1 _3¨«¾0ôŽ{Ãux~>ÿˆ}ÎÝRŸRm! z7±™{7Ý ÎÅ"5*g®óƒ»|ùêó6òRïv=Úÿ2ìÖ|ãh&ŠaŸ þò×!†}>u¬jj5xî…N‘004B±j¹zg¡ØY{¼o\<Ï{:þÈ.9é@%n”;ÏëƒÐ×B™jì@0óùj•¿ÞæÛˆ[ /÷gØ] ~¹Ý_Æíiׂwâä¥:-X_^¾DZ«÷%x 6úÖ¹¢_ìáºjË>ß®Y¹ÎË /ÚÙÍÖ Dµmo"‡’‘•¯ÖÑÒ‚Ö4m«Ã-ÊöÞîUd7PhXów‡]5T›Ü–îd™Â‡ÃL~û]¹oåà/µg|jÏ?u6ÑßndòÇóEü·{t¡€'ˆLn¡WÏÌm´r™ìËó­4g‡·+\"݇zhIŒ^Îfb—³Ìº¢Ý²DŒëÐê–à-Šî–#ͺH]$==aº€ô7Ó[w£ž Þ„L–ùª˜Ö\¦Ù;ú5Žvñ»8¯;ÈläZqq1 ww=gg¯ŒyÉþË”î’,ÌJæfÛpu}\ÅÛ,Qôö‹Ø/rhݵá#¢ +ëì¸kÃzòŒ¼:ʤ Z0~i4 \+·?z¶Ux?í·gÕ \ù¬³If‹a¿÷Ðí^ ,ðŽKàéŒükõ·Ý!Zv'è¤W±Ç/]úŽ™ Œ‰ÚÃ…VR²Ñ(™ÒœqóÚ­O'–Šþ>´\1:˜§qš zÀÒ]5ÅwßÈd«³Cž†u ~¯l¨:‡üV–à*¸l’ˆIÊ+.ª!o{¸êšj¨¬¶áûý¶„œuváIþc'˜Â"9×÷m&\¯àºu6~\Á4ÑS³÷òO]_}{h9›C»ÿB=uõúi áR°€7aNhüZà9`fDÚ%ôk †H¿¥°±·D×OŒ*ô¤¥”$ ؘzëK.,÷c¸j*„9C´rlÁõG&ê;D·ù´ã~‡h«÷qÙ¹ÂÃÖ/{5òkt¾CôM{ß!<é]/Ãuöq@öBgãû•Ø-!gÎ~¦213ïzO Þžè ý±‰¶C‘[é$“;8Ûvÿ¶ž™.KÈÒÉâʧþ³Ÿ!%a”$x2ïÒÝ'qgÌU#—ª·!ð2ZŽg´× ¶ù±ÃIËϾÿ´¶!¤åî":óûõ¼Îš?‚;ÁS6)îÛ®J +Kðvoåýï×*TœCaf¦ó +›+\¡êDm×îÙ½çݧHs8ÿnƒI'´ct¿ +ðߎÝUhËF¾|#óêdŒ]]ËYÍ@ƒ¯v€ºT³{ÃbßÙ§À²†\æÖìÞÁj~ͬ6)lüYÉû4$„{îWÉûù³`1ÉXHçƒÌ83Ó¾ ?‰æÖ›,¶owØÜû‹-yço?>Û®öL7ä;îšãÙ™Uv?C Ç«Md~ù å—ݾÇÏæèî´åèÓÊt+v}ð¼½µ3„Eª´h¬m­.…j2+Þ± w°B. qŽs>›;m¯m—¤Í'°E${à­œ]bh‹¸u•O³EtÄÌ.Qj‹Ø†ÕûéÅæ oŒ?M³ÔÁ»D;kíÕñúßþÙ/º½€ öÎ ðuQµ\Fw¿ã¡ +¹1_ŒðµPcvLKrÄ%±Kä¡@O„A7&¨Y¶]þvt=6Ö/McíhgÙ¿(‰)ñ1JÕÔ ê²,e +¹În¦Xž;Ì?®P¿=i™ÂÙõúúÝ!ÚJ|`÷³“W¼Çø’)®5> ^Ìff®iÌ»7ùLöãñ[fnoe„~x\üvõÒ+»è´¶¼÷åÈùøVákÌm¹?Z{A;›"¼à·òVá«u2Åzñ‹óB×rq®w]Á—:ü嵆3ù«"|‹7f–´†ê;èã2€[©vmª¾dæ¯vföóÂc¦` Q÷¨¿™ýQ[uþß`ûm¹òèÿá÷ô¾¤ñ½Ê–çc½”Yøù ­Ð™ìê^.³p÷skyo÷Ó-ºúüãóvááîz}Ö¹ÌÂÊb½Úú—¥â·›÷gøf;‘;8Ÿ2–F¨o¯ TùT$zèÈ=YgÉz÷w´†`•o¼6x]9÷2Qñóùñ4€Ü4Õñõ£+ðï¡…‡í`{,»ºÁˆ÷®ð&\gyÇ9ÉO–ãöškvà½%×+ü,‡5·¨ âç–sg óº°À\ Ó°’½€>V^†©hî=®h5;û¼»J(DΆļ<5²†bKÊ(]ਆÛ[voiÇv’M¬½’ ÔòËoÖ,ê´Ð«¨Þ½E–Dœ}‹['x&‡\&ßvÑávsíܦÚBo¹D:/^ؼàR®—/¸dÉr+ï'ø¼ZóoÖÙÕ*1n>ºñzrŒ +ÉÀ\hŸ싳pûöº7Ä­4ã¶Ø#=ŸÒ‚>Hó±ÈânÌðÏ#Æch vŠøºöØ{>ÇovÇê;~ƒì·ÌlvÇXÑålóð¶\¯£øœë©äž%Щ¡Ï<þn¶®¬ò·B·lDí0£#è9p¾Uøô¡'bcj8ŽþÅ _~(Ï"Uà¦æÌF=˜,ÚíÁ¥ÕCj;÷©j§*7û†þ‘Ižáçý +y¾³îjø…У²¼_#»WÅv¼.Ü gàïn,¬ÛA9LÜÀþjÀ?ž=£c|µÙÐ{”›£P÷]pòL·ƒ(( ¶ƒ&zÈú™²å/,Ú½……UxPkTÑ1nµüõg¾‡¿²¦ñ6rŸJNØÒr0wßßÕ?9DNì+øÅ4¤ï9ÈãF×Ñé*:7ØvoÓCX_¿Yð<úmßwŒ8«‘¹üúúŠÖƒ&¼}ŸáýÚúü„žê +HZ _Ëm¿dà'7ß1×gˆ‚x ~ƒ£Ï¿¬ÜÄÞÅ»ð´g¬Ávß@Îõοÿx±W+ÃnkÓ{êpu?YöYÅ„äÝ^ÛΞ_µ™êÛ\_C+wÒ@çâ‚EŒÑáR°hg‡cô⓱5Ì]´àþ¤eܼ^¬;Áî *`Ê‘¶|ë§×éc sÛ±;½¿7|¥Š¦‰v~“i¢ŽùVThCèStY¦wÒ‘Ñ;ÁGÀêñ=\K8 +×Ѫo”¿µ/TøýÁ©‹ðukO¾uñvþþüùøZµhįë¤."ÙâÈœ š,"Ÿ^53_Ë N·áU']¼ëÜ™³Ð?š éàJfjÃ[{Ø2Ös"FüüzpÔ©Ypî&êWOùåvrÃÞŒ‡B凜‘d;(/B„¾ JŠHªÒJŠH¼ÔJŠH€ã5oÇý¶ z@I‰·º@)c ºõ›Ø‚j¥—ªÚÇû´ä \z\%E$àͨ%E$¾Œ.PRD’í JP2‰á‘héÔJŠHÌßèe8:, +”‡z’ý”‚’"ÒÙª«%é¢ˤÛå`Ü.&%E$§&PRDâ=´.PRDbWE¥ *HØ2‰éU] ¤ˆÞ°ŸPRD^ðæËj¿;r"ÐJŠHàź¥%=âóÊ$øÇ‚r»_’%E$>­é%E$.kº@fqeA¹rxý&p $ »&PRD×eD(yÓ«Ö˾>JÿæV9()"ê) JA7§H=ôñ¤œ”Rzèä ¤ˆ¤…@(#œa…A‰ÆQuy¨Z(YgXM ô‰ßÁVð@é]&(/Þ½ŽuyÐ#àåÕGC!()"I‘ÖJŠÈàb£”gXQP2 +¥D]¬¶ÓÊðà¿PîRD&ÁMŠÖ+»‡V +JŠHܳ%VK¶^ñ“ö°gj%E$ƒµ  .6Ú@ào¦€’á‰åZ¯~í rPRD¢G@-(?ñÊätÜ(áC@(=N!(ÅMLïnÊð!ðÛ·XSõ dp£ ”‘tË¡”‘žd~îT,|ó}œù›ðüsÐðˆØ oA."übdùYÜ«÷Ï£@`…t9,¢÷Yÿ8J D,dJv¶Õ˜h+kg“¹‰yuÒª†Ä\>mæììææ6|,ëÈ7µžwÔ"X”2­¬‰£ä=Ð"|'KVîq½Iߎ‡u¤Ä’¥rõ³F¢n²&ëý‹eø¤—-{öM@ì,XðMÙ‚P|m"ÑYÂè¢mg«[äƒ8Suô®W×Søq`劕ŠÝû¶90ÖFý!ò(¨"ËåU(…&›=+7i­; žœ‰ƒˆi:›ã’nc0xsóy¹:Û[~8jùŸyVë·ž„ÿü%óenà­íuw±Ë>" UŽã Æ*x#å»^3…ën;)ÚÒÎ`Wïmz\ üV··ˆ@r´qÝQcýCÅd蕽ÇÓD¶í‰«~Á!ýÎ1n‚¶i“Åd!šæøE¡Ø³¼gy) ÄzÆ'¤gœ}µ{ƒÃüáA5¿ü–Í`í ?NË÷°ûŸôóÝ|Ò»¨¹ùZgžt×øÞ»ëýë.Òø!dêhÖ«†Öç‘÷WÕ§Õ¾â÷—ª-PÄ Ô æyŸÊ?ãÿÍó¾ È@™"C¾æ ŸE&``D`Ǻd +Xd†I¯4†|‘n|ÎMSdÈç•uÖÏ{Ò”òÁôýçÆ‡©oe†|‘n|dשÊ/^ Êû‡5é4ójPRDR*B(m®™4̺z¿˜”ŠÂëÅ}kÉÁC(…]­DAùõ5Þ"“l5’"ðÃëÕ€26¼>{q{ýï¯çúÖºðL Êj5~wJNkÑ ¬¦%E$`ÓT‚’"2Ô~P JvM“åÍ‹¨o-Ži%E$bص2<‘Éž_©%E¤·¹ÕJú1IwP” á¼và‹F¦ d#ÛS;¼;4‘P‚ô’"’«Rååsr3i"µÒJŠÈ!©”"?_w¸\()"½Á ¤ˆt.“”­zò>Ž· +@PÖUƒ’"’l94’"Ò¿Ø(%W¥J4“,ïðŽOº@É”éeÀá]7©Þƒ{hÅ ¤ˆ‚Ña“N#EsµáRxšŠü¸ÑPä,6z@I‰›P~~R»€·º@I œ2U Œ(š†E± >¦Pg@ÑÆc¥™”Í0ã¡9 ÈÁÆÔ0ÿ# 15 #’JF´áÖÖÔ°€Zu”Ÿn”g¡ÀËhN ȤÊ(‡K)@¹Ä+“˜ŠÐšÆlµWhÅ ¤ˆ$fGy”S&qkHkj˜×åЛÂÆ€"à ÉêK ó û!Pî)´Y›JŠHLEhM È$ên©aÞ +­ ”"G¬^@CjF$¾ŒÖÔ°xM(‹7ëŸÑ/k™ùÇÅG*:uÉíÜrÕœØ$Ð1Üê@Ñõ‹F]¯øsæ“Qn=`uQp¦0 ç;›û¸Œ?.úGŸüÚ—­wG´Ô«@¼T¯vìJpÙGžÝkGÈ<ÊÂe´‰SåaËb"èÆp4fïe‚¨Z=îA}X<‚Š´¬Å»†QÏÑÏ’«‚ùaú%oH~fϾMêð›ëùåË_oÔ* +}Ä!“AOú²±öz·ÆÑÈ`_ä‰ï®¯7OúæU­¸Š$;-ãf«T…?¼ÙÀ7­Õ•¿½_]uå?¬ó[Ñ/]šûezZ¡¡¨NÓS? ?prbÆÖÛ}¿™÷…Å„Åg!å›x†Y\ +ŠpY‰Q¶M“µ~ E©„_ÞÝCóµÚSaÇÇœµ×a0¼)<ØU{i¸Äš{KnO²ìö ïND5S¶ÃW@²P®^»'£Ø…B>–'­m‚–å­íYµêÌ|¾9ºXE w=Ðsåoˇk®Î8Þ®Ï Bc2ªàCk¶‘K@‰z­ À“¾ßË/E´Œ}oš:LîÚ¶ßµmêvpæ¢c÷†Õ>§ò|Pa[ów×=s\ªÖ© +Sä± ,xw³†ý*½»Ù%E$ÕuAyü±ÙH JŠH@Òô€2~"_”K'ÝÈBü¹¸ lT%AIé€’"Ò‘Áé%g²X”§5+”¼í PRD¢ïF(ùÆÍc«S1ë +AI(ª%o"_”ƒ‹žÀî”UtQP¶j©AI±‚F3jAIé+êAI‰—Îä Ü3MPRDâ.PRDW()"ÑwóþÇ|M (E} ¤ˆôí’€òÃÝJ¢##QtQPvê +AIéi= ¤ˆd¥ d¢ÃDA¹‘7’"2¤îV JŠH|öÔJóËÎk5ïh9ô’ëÚ«”‘øåþc_²ƒ9镆PRD²¸Q +Jv±ÑJúfñeâAÉÄ^%eHÝ­”‘øÀ®”+µï‹L™À<(Ã{h- ¤ˆE.(Ï^òÍÕa#øì?”ƒ’Å&PRDúõ ¤ˆÄŸ†ÊÆk)5()"IkH()"Al¤xPf]V"÷®‘¸QJúʸs« ”Œ‡ÛË–åx‰)“dŽ@()"™í ZPRDzâ$ ¤ïØ¡¾]Pâ¨Sƒ’"Ëàt2l, Jã|ÿÈ8P2¸Q JúÊÀg ª”|_ŽtWåA¹ÞŠÜ»b¤©”ÌvP()"©8I()"щ 0÷µ ”‘Xd¡ ”‚:›HP—¶¬D]Œ] ¤ˆô¶ƒ:@I‰ÛvK;òÚ€“jEà@éëC«%E¤7® ”‘ø¥ ”Æíi7¨ÐJŠHô@ke¬Î& +”£í¥Ï£í毵ª=ßø>[ÙlSµ Ulrþí/²tÆå`ºrAˆ’:p»²kÏ0­ÂsÆ5LC†,A_QǬˆ”µ²m Š÷†z¹ªZÖñskÆÚhR&æÈ\]¶ÎNŒÅ÷² ?æõæ.|T>çá *ÏCT? ¬/o+뼉1Ó:ß\ÿ༤{‰ÞìÄ^)ÿDõÆš¿»ÂËœ–é›ö© +:tKmðâr°àÛß[±rݹ!"[êÖ xÚ†€~±íl¦8†‹ úÛ«Cg±q§žác¼dåj côµ˜æåÆéÐÝݣąÝ-¸jÝ­ÜÃiËX»Ü[¶r‰sƒXö’ÞÍ£"|;kˆ)tn(¥Ó‰ï¸:¯¬éUÄèxE¬“èñ>ÿx³â>˹µúv£>Zím÷Oë“Ì'ø·ÇÏÏËíËA'ÿiwЙ¿FZuëýÏŽeÍ7Žf|E'… =2³Á_ÞãõÞtÃZ9Y8õ 8æ$ Es͘‹nÄ&0_>³±èèI[‡u¬¹Œ²y*p8„+Ã飥Ÿy¹Ûx˜A,˜W“…I°\ ZvÖ™¹ˆîð|ùÛûîÜ®›ù“ð‹ ÚQn] ¬ó¥ëJ"ãfø~á ú¶7kWeX©!ºé›ö™lü|Ð-EˆßèYgo; cíh²dÛ+(ÜçC·´‰Pùp€Wcä316Ö^¯mäHÜêW-cÓ,ìÏT™Õ%Ï5n.y7´‚ÜCJø†¢»ÙRfÜô—ò·Õ¯‡ÚVîøS†Ù xº ŸâD’«º|^¤ç +à›&4ÌÂÝ\’® βÃfzùn.Îôò>˜*M$m¬ªFÅI‚öèÒB$h¬ŒòÑÇ}´«{íf¿·—]úÑ]2ögðSWÃŇËëìàxõh7ߨÔ3ÆùáÜIàCT[ð‰­g½'Í÷Ka뉮·ðª‡fpk tÌg±(`­“„ådóûÚÛùÕÞE ú4t¶Zºƒ.~ÆzÓ,¡‚áÕ¶"¿Žã;,á²ÝÁ%øár EþîcÏÊU›&n¦8oúÄkDì±â¯¸£ÂfùëÏù%êRc +®ü £Ö+³ð5c‡V—áúÈÎ>Ÿ´gšfY]Bz7q#»› +»ƒ—;¿GwPM#Â?±2¯¯Anš°Oa‚zòF>­ÁkZ¹â}Y_#‚0…1:P5¦Ë¡«Aš÷NÉÒˆ@uI²A¨zZÐÔˆÀÚA·¡¶ñZÎ~=­"-5RÃÿ~YM¾‹ˆßBÅÓM?<“í"¼jÏËê-ù>?:žû/#Ü€ {2E[~%¤Ûøþ`2µÍζÖ7pÍFƒ]øï´™í¾À^ß¹ŒHf¯Yø5÷oòЗeójvn-ÔÁß_A†8øüÿ¸Øíã˜j4ãjµƒmåàkÔà1æ®"â&Jª'á4‹áöGx ~–!¦Œ‰ÝÙ3mò¦½–€uvµZC„U¨ÙWëìa£Äíš9úUÚ½ƒt,¸´ÍâÌ ¶i»:é ×rÓ:›Ì¬Zƒ“"‚®Ñ‡åút@·ûðM ?–¿]ž® °S´Ý?„_Õ÷ë¼×[è¼`áAb”fmøÞ›}øAં /à ?Я¾é­"ù4êä£ÝÆ ³Ù~ê÷ÆÕí‰u÷k'¯DÝ=Iú ¿€¬ôa +?MÝ] ËcÊ RGÇÝ!Ú“Gnàú@IH¼(Úd–ÅöV!0tŸ¾n£æâV´ÓžunN·ÿ­=sx[èd\3nϪ¼xm_2”°í>Ú[&’¨#/Ó*]?h„0â—àU— Ù@Úv¹nÜlÕZ¸«>¿Q@Ûç5xÔί Ã|ÅתCtÜY'H¾<ýØE Àg·À>~±ã»üáÃ.°hÞÃá"ZKÖáö½Ô!kÄÚ÷ j¦XçÃq5"kÛ¹µø\îÝWui¥Ýòë ÿe­·Ó½Ýݳ–:ÆÖOx’ÝÊÁ_Ì×YìVw;µ£îzãeyxеOáa··‘oTW¾¬î.ýÐ+<oÂ?.ì¹]uûb»{»g¬ä‹øË݇áA?¯µ½ _÷Óî.ïí~e²ïÚåÌÂÝóvéö¬9?kâà¸ÿøåz ¾Ê\gø|Zû_åð)³°RÙʬUôÝ”ŒùÉýêÏ£_›ðí:ìí¯Ûåq·›…o&³ßåÍ!¾~ewý®\3fæÎêWûÆaus°Y+g®WÎ7ÏÆ°uºP¾ú¼½šoد?ÊãÎãjŽ /Ónäö ËÕlwiùá¨ußë$L|T€gåFè¸s>ûàÖö¥2í°Î7ô5¬A§¶¤pŠëÔR©¼ã ù4‰N0VŽ,¶É{6þ¡¸]Ïf´õOÓc™;®À=™ÝöK-çdÆ©2äçàMð +Ñ<éòî¦ ßN&ë]fùòûKhÏí"yÝòWMÔW&ß ¬^ž”Ì­^Ù²u6¾†kjkœÞ{âä¤GGO‰gk!ÓØ=xRäqJÖкká=ô^­ ïR!cwm´×„÷áût´*#:ãë +³6ZmȆ +3ð-žUqà ÂSÝÕÌ‹…î5Ü;nípÓÉÇI?Ãÿ³×B%¯kËã~†o¸Ñµ +ë~~ )ÚÖp¡:¡ïW´?äJý¥‰¬†”$,Í7¯Ýút*À¯|"_ßè`¶gª²ÿçP®3µ¯³ç“Œ°Í½*üV;;kWWy_­Í}¬ãF[~ùm1‹ë>6¦Dáõul¼… ÏÑ hß´Ü»Wôºp9ÉY3èŸÛðw³oøA;=¯xÂý¿6¢ráí͚œ§ðoož]ÚáÓójüц·ôµÿ¸ÿ¤ä¶»¹üº×ÝǨ`ÂP¥kš‡h˜t}‡>Fœg¨Ï0 «Î3d«¤×¹ÚCwe´ÆÖùÂXXÕÕIøtrØë9ÿj„6­Ëï3è‘©ào-‹îöµ>Kžôu[¹·ë*|"¾6ðךDKä_œd:ð!+ÕÑãóDz6gÔxΠŸ‚fkqÑ\þB{þ:ö;µâ×J@vD¸èΞáÏí×ðÏ¡0 bô+ÜV\½ÿb`¹|Á[j|`'»jºò£ÇèòpŒžÖ&|´Ðq~p¼ØØ½oÃ!Í#à‘Stžš> €Î{ú{ô®2&þÕ‚Î8+¡ª± +¡U©ø¿k÷ЀÛvo“:|µž¿‘ò,:×ß?ý[68FÐA|‚âzÆ}ê¯3+p÷ˆÏþ(2ápèˆvxÏ5æÞÀw´¾é!³^¼ÿ:UlrÆsÜ}ÈB`ÓÝæl=z)&‹„Q˜–† Òâ­ç«›O¹™w'x:«ÌðV3«çî)åì3ÜÜo^ Ÿ¿üøni.àï~¢›ÖXlw–Ž×¯áOµNo£áÁʇ5øïvñ†oø|Ò:s¶~ÕƒëÁû››Ïôð²Úxÿú ¿ xð8øˆ-ð4³»†ßÎÊù‡74é_÷ó'ÜÛpþîýÙ½‚ý|·2GOðÐð6o¿µ†_·ŸýÖÛ‡šæ)>¥ƒWùu¨¶/áëÙøRtŒ‚W/}._d~âCÑÊÐÚŒž2¯9ø‘ŽÐ‰Ë>„ÿ2Óë϶ड़8ïró=úÛê<·UÉsÞñÕG|czW›¿vÌ/ŸÞPk}füÏWr»«ødß`þþèú9¼ê¸‹_w´øf~‚wøñ#¼ª±Ê¼_øžnvÆÖ¯}÷­lÀ¿=''Ct(D×t^£º{…_¾îÏð|y‡¯0xý6=|z¾Á¿ë¯”~ŽðÁg9|ûàù~ÝgäøÒÎ×—¿<"gÏst|¶ãMç§ð· +?}o\A'Iò¹ž7á šý´24vÎÉ=Í/›ÃOÍÖÎsãüSýü‹'ts—ׇϟð «¼¢OŸÖ|3ðwNŽ©+¯ð ®V»øÕºëÍÖ^aãܹiðYÆß!þHð[²>áO¯zþ~÷Mø¬ þ4«­Áh=øi¥x¸Ýk­âÓ5>ˆ»Ÿë|³·¾ÿíÿp·ükð?Uä–:gu †¯øFb@ÁímÂßí\cÜÐ3÷[íîÐç›"~›³G»£—Y£øõ:þdL¶îáøÿš{Ïí8rmôÿ^Ë÷ §±b«rdIV°$»Ç3ã Û²ÆIÎgûϹöC¬"@RW±ú[gíwÍkBE6TA>äѧƒEžñ¿óG; /‹óA“·7S«ó’Cñ~&y=÷dó¬9x|Òó„#—¶#ÇŽÍ~]ì>»>uNmÐÌýÁ–í8vö&ÄyØ·5Á¦=)<ã|¥%w ¡´(ažk¬©§óóÒTMÍAíü3;)ÿL–C_¥¿´æÊ¨“X ½þ4"¼ ÈN^Óü×¶îáðqÈc¡ž¯ª)ãVa–WõÉP×7ã½ão Ixªˆe³9Xíõâµxñøçm›ë<;DÝûsÑ­‚ø3i~­ZÝúõæ7TðôÞ6Ä=*®¾¼¹ G¤¿i62¼{¥§*ÑûÇßÔ´óÎñªž­ê),T˜+)ž.þ†8ÖJVÿ€Pâ:7`óš™Ál$ë× äXƒíOê¹¹Eˆ+©Q2ûÛNr>ýúÌíßÌôDãbÒTG±Üê™Ñ‹_WWõtZ« /éÐêÝÝøž+›ßRÿºÕV4h2¶êÜ9^ƒ¸:7JüñêgmfkjަbBXþùËT‚bpPÐ$5Jû÷lIMpï,§O³‚/MͯëÖàg2c*¤„?¬k¥!uP+ôë'è¶¿_èN½g %ºùBÏB}WòrézW¯ÿš÷[Ç{ß¾¬Ã’½øðʵý–æb:|ýû*¤ýv>Ù nô=zË6è´’Ì-½¼ž¼¾XÓ¬ù  Ã¥ùª,Ãe.yõeëîY5#¸·WºVM+ð«ÍvçÎô·¬k6±®·ä¨TRo$¶¢OûŒ ã¡×ó³×Y7ºÿ~yùÃâæu˜­•B7úG½áåË+¨Õ‹\M̦>x¡ö£\±sºÕw«æ[†¯ºýз Ú•ö{yõó:ü¡ÒE“ˆhz„IDèí«Ëæ»}¼„¯ð~­; 3›¸€ƒ§Ldž&¯]?Zi¾ÍRÔoÌ·¬óÉYøA8v½ÐýFwõ«!ôRMpév `‹æ;L6—.›¯ýWåºbÉ.Å²ç ˜ÄØÒËõôÆë?Çz²«g›ð`5fW}î{OvÓ?VŸ¿ZpGÍ5Ý£„… ­ø­úÚa’õ`ùٖ߯fsÅ{ߣ›Éîüî=·¯“Ÿ2×8çÅY}ÊœuÎöJŠÓ3Ê9¿]Ôi0³ß&tO}‡¡!àÙO&ã95e{òëÏhL4V\8í®ˆ&àšü#ú>ÞvòúηŠ|äfïàá³æ»yš –^C‡lW“®0Ÿq¬};|F©vlf MÍŒÛnñ´Öß•INÀ·¡}Zû-5Ÿ}eW² úÃ÷¢IpØ?4]k´¢‹zß¡ýJuÒåÓ'Óo^–¹ªþoº°þöËб+›ÊƒÞ¥~¾à !s¬ m½îh3.”MF'×y?Xˆ›saÝõ›W6ôi Ì¦Cj̧<ƒ=WÍyJvu™¿XßJoüý ›¾4XhÜRÞx­„äñ}Øg¬‚ãë/¤>’Þ˜/îÆû›k•?Ü’R~ÚC‡ô‘ûïÍÕm‘:ˆ·¶ÖfýT¹tÿÏž}ä´SâÁMNv†¦ îâÅX…ï»óûjôžðo锟õŸ¥vñú•»yñóß²ù TÏP iCƒØÿÈ×H<ÓD«IÓ€þ´.]ÒÙA¢évyª z‹ ¼éKº+@ºyÕÆDJ7øÈÖ6V“K64±Ž½$NŸz|×tOhÃtX?Ì[µ^^5n¢|‹6œz´³d>²÷¯®íëC “¹ÛÉ«wõ=½UBÙúø¦îž¯®äøºÞöÛßM×캌^çÓ?îª)ðk·ï)ÿ5Þ:ýš^ôÍ]ûnˆÿö³Û&I0²µÖ›–€'2OÂ}ëãý”úóíÜ÷¶Ÿ/‹/èõZ½§œÓŸ÷Lè©ZÃ<,kݽ«‚Õw{Ñ­Ÿ¿žžý‚À ˜«”OyA=ÉP«¿¥&ËôçÆŠ¾ÿæÏƒW6 T\y¤ó:©µûãåè™Néçuh¡Î?ÞÕù–Íå_»wtB¨ÉOA¦(ÏÖ’gã7+[ÙÜ¿×ëkû;ºšÉußQî¾TÕ?@bì¯Û›·WÒ]ÕøòúæûÇ»:'¦S„ê_ù­Ý¿7ÿþ¨“oªñ×ûÍ6Ÿ§5¤u†UýŒNéé ãîÚì‹­×wþÞÞÞZ^¾«!ÝxûàõØl +_ØË¼~»sùèÖ£‹ß¢Íí·îüÕ¤‹’½—D)ûõ‘F¨s¢[sŸooë$äÅÝ×&?£óªvïÇó÷_ÎÝBæ2:6—¶e4Kx04oŸ•ʽ­šÙg¼{ +-mg©Iu{ÿŸ§ñRa!_à§>$´3‰sEdÃlKx¹¹Ñe[¢É#¹-áóòÙY¡9ŸðÓo[<ºL6Õ©(&RAþüîÃàŒÎ)ÛÎðò½"i[ÂçÅ+"5p^¼Ë»°gnE Ÿ/_ÔëžÉË;ãS¡'„U‚7ÑÉÜ“;4±ÀÓJÇ í²uÔÎLWMÜÑ&,t†Äe9XXžê »‰°?%^„ Kä:WñT+m !òÖ““U³ê®Â›u à¾(À¬IÀ;hàtrXËWÕ´o{CÇ °½£ÆøíÒu¼Çïõß·oÁT»Š +þV1Ãúö®žþó4‹nÝ+) 2LÄ$SÎHƒ “¹`O"?+€È»æ@ö>d°©r ~Áä@ô¥A>>E¹»¿.­µ;"J›05tPŸŠÎ†Ø K]†‚Ê6Åð´4¡º™­¹ôìá„@:¹ Ï:L!ÑVégÓ¤ã€jÙæ% ôÞQ÷êÂo3ƒ5ûvÞÞ,4ÓÌÖª«.¤5¿€¢#½&|ýM/ÎÞ¬`›çX+˜ì<û¹¿½ºd¶`(ϔގ÷˰헫Äê#«›GŽ¿Û¶ Ž4ºå%8΋aO.°#ôÚTÃâéÞ C!†ý®H¥OÐ k=cØÅ…I?Am4ø +7f/Â&©-Ø!³LÝŸyiŸÇµM2¿ú¹ffU:!¦0 ×|&sÝä%v–ñ—V•{ƒpÒûn;ý†éôÐ"5NÓ[ÂÜ»õ=úÛ(àì‡fú}ûìÐÙ4)ªÅøpóÔéw—¹7YÈïpŽÈ ,p=ƒ-»ÛÞ.=¸¸t#}tQùó1l).ν½~º¿Å;Àº×4UÈõßê×v xOUí_\¼óä/óèÒòµ»ð¯Gæ_K'_\xví>üàsø™?௯/.Îmî\\ª–îAñüa ÿ¹?³T-¾R•fo]\|}òS‰•ÏT?ó'èûÈÕ¿îšTÿYƒßßc¾Cñøé'>g7áû¯žÿ{. šÏ„"CCzdt^ 1Gæ£Ó*N+˜d#ëÆj~Y¿ëfSßÙAã©#QN@1ÔÙA~ÜQ2W|ùîDMW>ÞÐÙAÕoL‹´ä:Šê²Oí¢È¥½… fÆ6ä8ûŒ‚e³bÊ\#84šä°5/Þ€%›Uý[༉8ìcZY±¹|;4F(!ÔdÚ•©ž]¾ ¡ ìš›o²B±I`6KØJøàqfRC0>ÛÌõ@gWš ¯^™˜ð_“ÂqÁ¢·Z¡s¢, kV +•ª:½ä- +”fx·y¯Ùfµ€hg«†ŽÊ¦>mV ç–`ï$8çÊe æî%v!dõùŠvɪ¡¹‹Úh&J]ß;ò)"sú‚å¡ëÛËò‡7ÍØ›ï·¢÷-\¿-¾ì¶«QˆË5¯*é¬ÈâöGW>ß:€ÜU ¤°¸¤x™‹y2{|¼¯'§PCÜx[Î{ŸÀÄi³lXØû~×:ÅõO7•‹½ÎnݸΥ—Ögßyr œîð•‚¿Õ¾ý±õ®ëŸV/.<¸´5^wºð»~d‚·£ëÎáá¥?.¾€kP„kì)Týïžš`[†ú™î;3ºoËp®3{´,%)Î;ÊFáš “ûÓ:'ºgÚdЦ6À]0—mygòLa€3Îæ÷¥I³"g põ¯úÔ΢9ýÊÐ+CGî,²¥Õ7x»©ôn𦧾Ü7ááßñ•Ÿß± û’Ôl"ºu{@ë„3úpÚþ +v`F“ßµ‡€Û„öÜ»½—£Õ³OÕÒë78Q@êSÍÆ–Žwéoy.G³=ÆÎùÌÆ“©›»WéM°_³`Ô,ðúªÙf©çÅí`®ZµyB˜Ý&‘¿×òeòzwcÛòŸæï¶ tÈñæÝ !¥r°†8»×2Y±¤©‹Wnº½–ÉÜ—µíäuz÷¡¾H]wÐå멦´×R·bwÞOy¯%lšHÜ4jâu†ËpøË† +–âHˆ"_›-3êm6¹’äåŠËr˜/è¯ íÑm¶ÂTv{2T²´ÎO+möd­Yqxd7\B:€Ì-7¸]°KE¨O«Ïb³†`ü dx‹Ýèöìóæä¦ç7ãÅïKŠÞlìAÀ» ŸÅ† +v÷ÍÏäkê[ú¨ìð½^±GÂí=ÙtÍaHÀOê›ÊÊ€ûhìÒw§•¹Žͯúbš?^¿¸'oͺÿ× |P˰Æh¶?5ù)õÑì®~Y·;gí²OÞ|É•&Çõ*׎ ÔWèC¹lVÿ.lDzúî 9DmŽõ»–Kï\ŸÖ¬%äpŽÉ¦ò/ÛÍU•p:#,'4G³ô~çýÉ~{Vgïî\>Z<عüæùS» ¦¨Ÿ©êÓ3ý/½Fóµô®MB²Ü¿üÈMËcõ3[sŸßõ>MYSáØÝ»–5¨¹‚{Ÿ8:áãéSåt§™vö˜M­ÆÐ¨€&½~2Ÿ.ïoåÏ÷>ÿõí‰-Ýk噊k¯¬i¥5†å·ÏÖ£³Ã0ç:#±³Ã°&² ŽÄlöã⎆éŸé‰^úµ×ýDRˆàPRõÅ/,zÓï/Ïárñ=îðć›/'›Ó¥ˆöpóÓÜû uÚhÔkÝ(ºÒ +~d$Œaš¾È‡ºošY¼þ{ñrKQ‰½Md7éS{ð™0Û3þ­cLjÌxƒb¢Q³ãce³i¼½q×l2‘ˆ1  qZ¿q ºç{rK¾˜Ä™/8†Mû ªñn{ÇF}»[í JÔ˜òE¹âÝ»cM¯¹€ï[³ ›ž÷V”¿¶§÷˪×òq»ûÖ’&€êxÔ›Mi63­OÕ7x¯ :‡«zz¼ºýápYÅW7_½Ú\_üaœÍý¯Í‚³ê{‹ÇÇëú³7YÚåO—L +8½RùÐõ±‰W WÏÚ}<š·¹8È~«!iÁf,uqevÉüÌþ’•Œ3ÛÆûÇ+¿cD7¾|ÿ„QN9ÂÃ_µUu½œsÀÖ¯/ ?^Ù†ÍIÍß¶—ÜßÔ„æñFó‡ƒe÷Åßhþp/nÿðRÏÕ£å½ëóNæ~ZÏÖö¶Ñßà×mC{#ÈDÎ7GR\žK^üüø[ýáa¬‹ª]TÅû›®ñWúxX%»¹¨ÙÿzèhØ{RÁŒ«RÝãÞõÔ½eðpÜ÷+ªøX·;o^ÐòýçéòGŸRXI¤ñÚe=©_}‰–ŸŽa^£ŸÑ^óÙÒÎòáÚí:ËljÀÕK,ÞšŠÒód›4Š×oú¶ÛÌB½uóÚÑŸ;ï®_l"´~ L,ì,^ý}svÿà ™ûüê²ýÜžf­ñçöæž½³Pž¨âãeÛÞ<‰T´w0§þõBÏ8'ÕŸÓc´Ì^nþ£ÏÙBÿѱÀâµ—•Š·çœ™auÀí,/X/pÛxØ'x¤}ÈTå_ûÛ¯?Ýx„ªÏ[Ÿ/ÜŒ—®üÛSeu9³üð÷ç£÷~|8þp2£& * Y¾qÇOÞ}½ùãèèÏ£ÿókçëÛß_ŽN~ͬÌ,ßx´}pPå;Go¿¾;šY¤i&™UmÎ1{V|y¶¶ôúæ×òï4zG2w*Ò;ãp=3X/®nÿÖ§˜ã ‚/în¿»¤ªzã¼Þ)®öÍôåê³ñɺþäg_|ã­0‚…cÐ`…aëeó²ïœ8ר~öj*tÿóÈdÝÚ#ßò§ö;^þ5;Ò[¯lƒS«ì¿âY³4dz4ê&ßt §‹úüRUÜ5Õn.k'bÇ®Ì×þ}Õ~ºäË?lÿ@>ÿ·í–ðš^`;Ç2þÛ·íã¶RŒþ°·õÜ»óXöxöMÛWñ޳wíôeë7Ž÷¯lFÆí/Ý„ÁânlúåþÆC(>À¿9^ã>X4¼½R®ØcñŽõwo—®CÎóÁ²NPB0övã<ðÛîÛu»)“Tì}Õ®//eÉÿ¹„Ý5^s~¸õyt¬â»·ïÇzþtÆ\‰L“þ`s¥ý›kg·K•wñóvŒ¯ó5òêøÆ£ßW>ì>{w&˜íáŠêƒN^ü~¹iǧ/aìj‡­ Ùag£l?ž¿÷Lvlƒßý{Ù:äüoÕø›p‚äßq3”ü­36_á_©ù—"q´kLþÉP*Nu+/î}Õl3+ÿq_ù…bk7ýÉ];Eظ‚k6P½Q]Ó¡RäþWÛ)Ÿ|2±¬ê­/êØT§g/Ýÿ£ O6Þèš>¤Ì†V*Ø6ƒåî?›_õänTX7óÂvdU5þ‚·´¯§Ÿ›ªÑï#‰À½÷R…ýêoËm Ïŵð¦ë4¸­Âœ_ëßãÅèäuÛ¡çí0¸}µí··Íx£Åcèq·GØ__Þ¹µö5RÑê8Šò7·7ÏP¨OðøžqëO¿j‡ Ðÿ¹á¶S\hŽiý%*·[oNW»À§¢­>zø¹²ûŽo|øKßN§~F 5ï×üͦK°]ç·½næmumJÕ²‹¿f¶mÜg dó{£lÿÆ—èÝÕ“?®oæJx´][º£CKý¡ÂÝq©[òQ²âòÅ«[Wvš6ÞþÁØZF Ä7ŸìÅÐ%ž[6œ¾þtVWp”Ý®þPõ1ÏúÓnd}odO,¸w²^Y[{­·ˆéf^x÷N(sÿ˜A,²°¶úå!„ŒáOà—ÍV??¾‹ÌŽÝ@úýz3Õá&¨ÿïüóéõá/ÜTˆÍæ æçf7žv¶1Nnn÷Â'¿Õ¯>}î½{R­6ä•òáÜ]UíÒîÏK7#/¥ë»BÍ»Ìæ^bHÉñ¬¹ž© +š_]»øÕi§;´m`çç£F»¹è—vg©}yº×ZAÕøõD¿/ý‡Ù7Wþ£Â€lϘk~ý—¤6|iæ‡íËxzúËØX¹ÿkÒ—AÞD3¬Aþa®ic%Fmlþ=Ø´1Z’Ú0 è«€l:nÀ°_ÎÐö_ZQ>5Y ²=Z:ÛšÐoÎòxeYlC)ñ uÅÍŸú1j/àݾº0Q“c£¾ê#ï–›çTçyø%y‰Ÿû¶éç Úäáï fM±ý­½ý-÷[`ªïè95VÀªc£ÖÇØ= +»!^#˾*pñãQ‰í:Î®ã¢æ:H×þ-‰Ñ¢“ +Ç «¸ø²¼Ž‹Ç××m¤¢ysÞè)Í!´³é:è>‡höSušFtŸCØA·iD÷9üLçiD÷98›ÎÓˆîsc´ŽÓˆîsÈiwžFtŸC@¨ÞyÑ}¡Öuc`îmzÖLØË³Mµ;'¶ Ü;š×/肾êѼí{ê ‚C2–À@‘n#Ýø{÷Ðî?|ŸÊþ¬Ù: +% &C®3Èñ¥e›ÿQ¯í_KúC2Ýs{´^ïÝ{Òæ«æšÓn.7Ç‹à á:íí·ÙGkg³wŒ¢w³³+M¶xeþ‚¹}6Þ}¹²Öˆ7µ˜µËaë7G( ýâç›O&¯^¾ äIÚY}4Ƹ{×çõÅ|ÐwÚì—I A– -Ëzµ{òç±”øª=:úõû›~$µutüád|ø¿#åUâó¿Hýþ[Ö3qRÍ$y® +9HÇo.ügöÎᇓ™÷Žÿ8š›ƒÓ{µ|ãǯo}øzrøã3+ZöäÎøñÁÎÌÊŒ®ñª©±:3«t‹^©*êÏs:•ö +4~uá?ÑÌ øÏ“ÿ‚27¾Á¿ï©ÿŒr«Ñ'<Ä’Û 1*«zÿƒÒ-õ¯Jöß™læÎÌóÑÌ» êoªZ%£¬®ó™,‰GU¬ð}¹ðŸ¼$²1’¥Næ*‹BTû haþ÷©ùg¬5Ujÿ÷BQ«§“Q’fæ÷+W›¢ú¦“"zøMZÂK«G3Ë»„&ØU¿œ¼;ú? Hëdfùѯ¯?þ׊”åÁØÿ½  øNýÄÌìÜÌ“¿Ûc 4Uä¡! +õáaR B“¦Ž=4DA¢>鄸÷¶ÕE¡Ø¥G©Ø©ã¸EQ”{öŽqylËØÂm%Qdûbð))„’²2¬¶º( ÂZŽ5­¬’²2¬¶º( ÂZ ŽU}﫤¬ «­. +ƒ°ÖýG™Ï˜ÿxÁ–‚ר Ákä±à5Z!vmuQ8y ©`ù<,ß +±‘Ûê¢0ÀòY þ••™€URV†ÕV…AXãÁ±V¹€URV†ÕV…AXÿà»çX%eeXµ4T°6{aíž=ÍH²Tðu%xVˆ„«. +'÷I ¯‡ë„ȸ®º( ²øàl¢Ì°ŠÊʰÚê¢0kçØö\¬)uü_NQV†• +Co³ÖÁcIøî9VIYV& ¼Í^X;Ç’]ç,Iq?’d9wNˆ]F[]vð#¹Ï'™àz›;_Þf¯w0xŒ›BåmNà7r!¢O3Áå:!6n.„¾¼Í^<ÊM !¢••aBèËÛì…uðŒiZ +½¨¬ «” Öf/¬ƒG“ðÝs¬’²2¬J$X›½°vϘvœ½€ÎĉTBæÓ ‘¿°u¹¤ƒû¨+ßê•àl¸®x9ÄÖÉàÑ,L]Ƭ +^²èàY¶¼ö£Rª"ƒP—¼iðdZù1)U‘BÐÏÓr¤ž‘ÔYY}«(ª$×¼ªC,õ0Kš +=C(Fi‘'&Î¥iš;™Rî‘g—¬’G£¢Î!Ø*GiÅ&žEY¢EUU«ï´ÕE Ϩ63£ÖAPUq5óf$,Ui™Í|†YÈ(ŽsÐ+E…j i8S¨ßr?ž«è¢Ž¡<eEViYU¨WžCÝ:Õ@’¤Îgò|GumåêP =”ÕQ2ãš)F•š2œªÒû ÿy ƈí4Å5$›“/Ç£vèU ìŒ8+ÌZ¯eÙ¨T:ËË|”Ù¥x”—QYsðüøpr<3»µuãíÛß_~ýuS6ŠÿÕ;ÈâJ™#KFiUè—¯du\åZƒv]'õ(-+PI/ÎRÔq¤^¥zoì‘z ;*”ÅU­ì3ì<Eª)]±.ràÝ({êŸkš†·P¢ß‡–”ÑëZWfÕ—©,’äÄðꈓiUÃPW—º–Šu÷rÏT¼Ã¶ +ռġ,;ÀÇPFÙ(.*ƒ!U°ÔË(ce *²2¹'–jÔŒõ' +KLyQ˜ºÊ&™‘å¹B ©É?%VVR¡F«W +ëD É3eä·P¯¦ÅHMžjx— TvL´°„®Ô6¯×ÚÕO:%à½Ôªã@cI¤Þ=¼ˆ´å©šŠ•Êã)Û¦Z.¢T½¾ˆ# 2)2S¯}Jµš«ˆZR!B’ä3u‡Ž‹Î0¯ìb¹êù¸‹Ìlêrű)¦I[Ô‰Q¿ˆþÙÕÃg¦– +vÝ%­â˜^Q͹clŒd±“¹Ê¢Õž€;G(Öqű-ÖnĬy1ê=~¦Ùà“àS!4DA¢¾~˜CÐ žñ:BC$êë‡I1ÍàÉ^ÍþBpˆ†Dó4-‡êUË’ÂX%eeX®º( Á:x2Ùñ¼0VIY–«. +°æ³Ì]¹cØk´41ì5Z!vmuQ8y àXRØò-M [Þ ‘‘]uQbùáùT-K +c•”•a¹ê¢0ëð|ª–%…±JÊʰ\uQ‚uððÏñ¼0VIYV- ¬Í^X;‡“rǰ×hibØk´Bä \uQ8¹×p,)lñZp¸H茋ª‹Â‹ϧjYR«¨¬ ËU…!X‡çS¥Ôñ9EYV* ¼Í^X%Ï c•”•aeÂÁÛì…µs,ÙŸ;†üˆ£‰EØ;ä‚Ëh«‹Â~$âyGÃï œ4ª. +CÞÁð|ªBˆçEeeX…øò6û`-†çS•BU,Äó¢²2¬X|y›½°žu)ŒURV†•Co³ÖžÑådÜ1ŒVRW– +ƒo³Úî¹Ó ¹cÈo8šX„½uÕEa¿‘ ½£‰a‹g‚sFÕEaˆÅ‡çSBD/*+Ã*„З·Ù ëð|ªRˆèEeeX¥4H°6{a<štw QîXœî˜xܱçÔ(*QåQTšâ˜1V'×w§¨¤u‡¶7E%­KFQiecL[q2ÄF„¸öù•´®Kuű¡¨¨h;fM‹øá®Ý4þ +5‰Âhˆ‚D}àxøÅ04ƒ'–Ôׇщú@ñð‹ah†¿‘Fy ‡hHô×”R4õ£Â[: îÐ-÷IÄ[ABÇF„r—>¢‚íãòØRT°…[.‡$ ³ý𴆌á!””•aµ\I†uxÚFCÆð°JÊʰZ.‡$ ÁšNá♆Nâa•”•aµlI†uJG„·tÏk4lÏk8Þ +:6Š ì´d Ïò ų|KQÁFn¹’0ÌòÃÓ62†‡URV†Õr9$aÖái ÃÃ*)+Ãj¹’0 ëð7(ÖÒ¸')+ꥡ‚µÙ ëÀ„·tÏk4lÏk8ÞŠ"6Š ìà5Z2†gñZp¸Ž¢‚Œë¸’0ÌâÃÓ62Æ**+Ãj¹’0 ëð´”:þ/§(+ÃJ…!‚·Ù ëð×ÍdÂÈ'*+ÃÊ„!‚·Ù ëÔoé$Ø´lìo Evñ#¹Ï·lïd‚“v\Iô¦p N!Äó¢²2¬B|y›½°OÛ(…x^TV†UJƒk³ÖÁ£Ê–Nâa•”•aÕÒ ÁÚì…uJ'·tÏ{ÔBñVœ±QaïÑ’1<Ëׂ vddÇå„a–ž¶ ñ¼¨¬ +_Þf/¬ƒ'@[*†‡URV†•Co³Ö)œmÞÒI<´’º2°T,x›½Ð|èyK'Á~£e£àŽx+HX éSÞæ~#"ú–âY<œ³ãrHÂ0‹OÛ(„ˆ^TV†U¡/o³Öái¥Ñ‹ÊʰJi`möÁ:ü54-ÄÃ*)+ê¤A‚µÙ ëÔOY7¤ωTBæñVœ°!¤PI÷QW¾Õ+ÁÙ:Š +6p]±r˜­‡çsDþÊ0U‘BÐüRƒ4x*ØU‘AH"Vƒ4…S×bâ" +endstream endobj 86 0 obj<>stream +J2iÌÊa ¦t꺡–àÎm)¸ƒ6¤$±„*éЭ¯áY4Í|‹E[0ËY9Ì¢ƒ§ó€¯áA"*2Àï å0HƒÇ3ÀÖð ØËEÊa¦°s(&(¢$QV¬ªûu/“PT¼N¬ )^'¶¤´ãÉR¨¤K'®ýÝ&@Iñ,Y7X'¬fÉÁsiÀ×ð )Íï å0HÃ_íg$ª"ƒg¬i +¤Q ˜x ˆ’ D’³r¨î¤Ñ^oã¢&¤xÛ-iodLDI‡n | ϶ Ù°˜øQó;H9̶ƒ'¹€¯áA"*2yÄÊa†¿ä¥ðcRª"ƒPĬi +ôQ ˜x ˆ’ D™°r¨îôÑrF;³%­8ICH¡’.¹ò£R ¤x-‰c¬ +V³èð4ÒÚJ©Š B]²r¤.—*LNQñ )Íî å0HS ‘Ń¢J2qÍÊa :ÄRçRT¢„STÙølŠJ”2ŠŠù•(#% •´®9E%Š<ŠŠ*ú•(æ%ó)* +ˆOQ‰NQÑÌLQQ¢ÒàœE%­ LQi‹cÆX!œ\wÜ¢’t¹K¢?E¥Ê9E¥‘1mÅÉE¢ÚPTª¹TW[ÆJî:fÍŠèáλ¹»_lqž;BC$êkʇ_ B3xb H Q¨¯~1Í𬠙 8DC¢¿¡¤r ©o÷rtÔ¡E¥Â5z¯c£HB±KŸKQAöŽqyÜPV…ÁC†Ø¾û ç~L-C#””•a9‚‡$ Â:ü-Cc•”•a9‚‡$ Â:oÅ B +“tpuå[½œ-â­ ×/ÙzðhVó708¢"…`ø¤iø»$y˜ªÈ $/Aš±USL0(¢$‘Ƽª{j³ EunKQ©p—Mi'¶„&™¼[kþ¶(PT°E5eY0Ëy9È¢Ãó9€¿!Í÷ å Hƒg(5{C"*2šíAÊ!úÞ)q.Eƒ"J2eÅËA ºg'¡¨àNl(*¸[Ò +Úñd )LÒ¡×þnMQÁ–¬ˆ¬^²äð|ào`HDE +Áð=H9Òð7HÄ™‰ªÈ Ä/AšiTSL0(¢$‘伪{º¯Eo\4¼mÑ’VðFÆD–LÞ­5Û6!ß!¾)Ùvx>GîG¥TE!x9ÒðwI~LJUdŠ˜—ƒ M!=§)&Q’(^Õ= ×…¢âíBÎhg¶¤'i)LÒ¡3W~Tª)*Ø¢%qŒUÁË!ír•EŠ +†DTdê’—ƒ žLÓì ‰¨H!¶)AêIKQA ¨’ D\ór¨±Ôy•´ŽE¥•Ϥ¨¤uL)* ò(*iø0ŠJU2ŠJZU˜¢E¢’V5£¨€Ì£¨¢¢‘ŠJª· Š +0E¥Å95ŠJ•y•¦8fŒÂIÁuÇÝ)*q—»$úSTÊ”STÙÓVœ ±Q$!ª=EE ?Î¥ºâØ2VR×1kVDwí¦q÷‹-Îs§@Û@hˆ‚D}Mùð‹AhO,k¡! +õ5ãÃ/¡þ2 ™ 8DC¢¿¡¤r ¤ûý)*¨C;6J‰;j&ô^ÇF‘„b—>—¢‚ìãò¸¡¬ ;‚‡$ ²ýð´–ŒJÊʰÁCaž¶Ñ’10VIY–#xH ¬ÃßùÐÒI0VIY–c£H ¬SºÏÞÑI°×hÙ(Øk8Þ +:6Š$œ<pd lù–‚-ïx+ÈÈŽà! ƒ,?ð50$¢"…`ø¤iðô fkàígDE!Îx9Rϸé\Š +E”d ’œ—ƒ@uO÷õ£¨à‹†‚·-ZÒ +ÞȘȒɻµæk`Û&dÃbâ;DÃ÷ å ÛÏçÈý¨”ªÈ ä/AQYV& ¼Í^X§~±£“ ?âØ(ö¹à2Evð#¹Ï;6 +~™à¤ÁC½ƒái…Ï‹Êʰ +!ðåmöÂ:ð50$¢"…`ø¤iðô fkàígDE!Îx9Òî5Ó Š(É@$9/êžîëGQÁ !o[´¤¼‘1‘%“wkÍ×À¶MȆÅÄwˆ†ïAÊA¶žÏ‘ûQ)U‘AÈ#^‚4xÞN³50$¢"ƒPļ©ïõçRT0(¢$Q&¼ª{® EÅÛ…œÑÎlI+NÒR˜¤Cg®ü¨TSR°EKâ«‚—ƒ,:üMgµ•R„ºäå Hƒ'Ó4[C"*R†íAÊA¦pÓ™¦˜ PTI"®y9T‡Xê\ŠJQpŠJ#ŸMQ)ÊQ +|DQQ"Ÿ¢RT„¢¢Œ¢R¤£*-j¢RƒD)Ó¶œŽJ‘sŽŠ’UE–:ŽŠBâsT4´(ó8*EA8*JPåE6ÃN¤RDI¥)Žg…°RpÝqw’J—«1úsTÔ+d•F6F²ÜÉ\eQˆjOÀQQ¯ÑùTWÛbízfÍ‹Qï~:üM@Û@`ˆ~D{ý0)öw¿¦ã<4ÀÚ@hˆ‚D}ý0)† þâ ™ 8DC¢¿yš–CMýDbG'AýÙ±Q2ÜO3¡ó¶ÕE¡Ø£Ï¥¨ {ǸêÊ·z%8[$D®+¡bëáù‘¿0LU¤Ìó´iðT¨fk HTE!‰„r¤)î¬)&Q’Hc¡ªû(*¨s[BJ†»lJ;±©Å%“wkÍ×ÀJ +¶¨.# f¹P±èð|àk`HDEA?OË!ÏPj¶†DTdôó´i +‡;kŠ E”d ÊJ(‡€êžqœ„¢‚;±!¤àNl$¨ËÚZ\Ò¡×þnMIÁ–¬ˆ¬¡bÉáùÀ×ÀˆŠ‚yž–C žÔl ¼ûŒ¨È Ä™P4…{Í4Ń"J2I.”C@uO÷õ£¨à}‹†‚w- îĦ—LÞ­5_Û6!ûß!šçi9ĶÃó9r?*¥*2y$” u¿ã\H…“R„"Ê!¦žÓ Š(É@”‰PÕ= ×…¢âmBÎhg6Ôum-.éЙ+?*Õ”lÑ’8ƪÊ!þ¦³ÚJ©Š B] +åHƒ'Ó4[C"*RæyZ4…›Î4Å¢J2q-”C@uˆ¥Î¥¨ä§¨4²ñÙ•P>|ØqH°Çh)(Øc8²Š" +Š$œÜc86x-øZ'D¶uÕEaˆÁ‡§j´ UÔUFÕV…!P‡gj¤Ôå9EWU* ¼Í>P‡¿Ç"†P§~ð°ã âè')ö ¹à.ýDvð!¹Ä;ú ~™àŸ]uQò +†§iB/ê*£*„p—·Ùêð,RâE]eT¥4\°6û@<–tä UÒUFUKÃk³Ô)jì¸#ØsÔBÆ‘TœQO$áäžÃ1/°ákÁû:!²±«. + ß÷fIè(ª¨«Œ*Â]Þf¨ƒ';ëC•t•Q% ÁÛìu +‡%;â+i+ãJ…a‚·ÙìÀ‡(;ÞòŽv’bO $@íDvð¹Æ;Ú 6x&øeW]†|xzF!„ñ¢®2ªBxy›} ÏÎ(…0^ÔUFUJÃk³ÔÁcHGÁP%]eT•4<°6û@ú‰Í–9‚H%d99Å Ö “tpuå½ü¬bûÖ/‡˜zxÎFä/þR )ý<-‡ <í© Õ!H"^@Ô÷ŒsI(Ñ‘aHc^Á4¥Ó›-wulË8IqwMi¶Œ&™¼KkB6(pN°A¡Œ ˜å¼bÐáùÀÇÀˆˆ† £ÂxQWU!¼¼Í>P§xã †*é*£*¥áµÙêðIV 'ê*£ª¤áµÙjwÑçH%l/@äo'lXÝLÒÁuÔ•oôJð³ˆüì[W¼bêáo(‹ü —TCŠÀ°¦I9Ñàs-ÍyFˆ¨† AñrÈìqZ— bLDG†!y9Ó”.2·ülÔ±-«;ÁÝ5¥زº™dò.­YÏØ ÀëÆÕ¼odÀ,çåƒo(°ž1"¢!C YÓ¤‚hð}šóŒ Í™&åDS¸ÿDó´1&¢#ÃPV¼‚i:÷ âlXݸ[æ7bXV7“tèÀµ¿…[óº±!+âë„—Cö×ÏŠÖ3FD4¤ kš”CMç–ALæ 2qÆË!ˆ¦Ð5Oc":2 IÎË!˜ºwà~æP}óô˜CH)yǦ 9æP Ø1‡*.`Ç&•Ì¡*ûÇ&5?æPÉücÿ˜C s˜Fä˜C%ð9lv8æðìëÇ·~#;Çú*–¡Ö‡Ì•gý$"ÖWf}O2ëÃ!ZØúªì[?.¹õ•Ì·¾Bâ[_C#Ö+b}%ð­ß ÌúqQbeþZ¶æ+õé‚ý[¡lÕ«F1¨•€qí ˆ+å/”m_%ƒÖ2xÀßÓ¯ V‘u öIóœPؼðePýÚæÁÂðœ`Qûà´›,Bý"âJ¹:02`Òo"®ªQ¯Â 4¯Â{L¿ ÔTm^‡=µ#?“Ì;ò³)ŽÙ  äŒO\wÜýÈÏ´ËÆ*L`þ}Î"ƒG2Q_sâÁkŠc†–àÁuÇŒEýÛ<E^ãMqÌ~‹´†ëžÖxRU¸ñ¶8f¿EZÃuOÕ| ³t>èµËB7V»ã¯ÈØ/t;eñ¦ì¥.˜”0©n®¸Hõæàˆ2'“ý „vÚ=kÚn^¦.ŒF–ƒ,©ôP¿Ž¢8‰w +-ɳJûA'LàƒTûA¨ÇE¢…%x¯¶ùüT¡>«V %©AòÖRâ´ó‚ÓÒHýµVƒM ÿ€‘½.TKµ’T°fP&Ef*¶Å#¥+Tl›R¡W’ä3ö¤~°ã«•¢‰Ï úì”-N¡­Ê›ÁB[•sh«v Ž»áä}&¡ºÊ›-B[=í; ³€¼Ã+´Õi8Ñ,—€ÐV§ò½æSé[ù„~ÀÛ8Q¸¨¦ŒÌÌE©§Få]¿˜0Ùša¤£ì´ SÖ.Q³c¦¬  ^§Œ²z©š÷0õ²¢Ðcp˜v6%vtÓèÞù)dúÐV'ì2§½Ÿ¬NýW¡÷;•Á¯'+:ìFìØòTÙ¯p‹„Äk#»C_cv +“ Z·èö½óñÜ#^8®¦Åž”Ê$Aà†?HÊœpŠÁ15(ö¤T& 7üÑQæhV Ž©)@±º2I¸®Ûá':âõzwšk”G¼âîNs•„z}{¤)¶°9Ð[ØúŠìéH•„Avœ¥ì3Å(%eeXî€TI‚µ|÷¼;Ìc•”•a¹R%aÖá¿jcÅX%eeXî4WI„µëŽû‰Žxž¢=Íû +wîk"æ* ;øŠö(Slíö4Wlmwî+2¬;UY{ +÷عÃT1ZI]: UúhÝaªè·Ä‡åfÝ­’üV*x|ña¹ÙTp¼Í±”â7ùgx+íâL¢Øâ[#Ÿ³ø¦lÁß”Œ,¾E5]|ƒ­ülñ-ʄŷ('‹oQNߢBX|SB²ø¦0‘Å7’.¾E%]|ƒ-÷þâ[{*Iç¬Ýñ:x[]vèõmx-l&7ØÂF‚íÙV…Avžât£””•aµÕEaÖ¬žâtc•”•aµÕEaÖ)Nw0VIYV[]aÊtûŠvºƒ}E+DnÁU…|EÖck·3líVˆ ÛV…AÖžêt£•Ô¹ê¢ÐGë&è·Ä‡åfÛê¢üV*x|ña¹ÙTp¼ÍI§;ª³ñéN#ÇÔ ØY“>¢1Ó Ž©)@±“& —ÇS™î ^ïf6E!Lwpw3Iء׷á=¶°™Ü` Û ²§›,H ;OqºƒQJÊʰÜdA†`¦8ÝÁX%eeXn² ƒ°Nqºƒ±JÊʰÜÌFaÊtûŠvfƒ}…› w8˾¢ ë±µÛ™ ¶¶›!ú©‚$ ²öT§;­¤® MV$¡ÖM,Ðo‰ËͺɊ$$¿• +_|Xn6$osÒéN ÓFxÞtGõi6Ý):Ý)S:Ý#5Ùt§¨„éŽRÓŸî(™î‹Mw”Lw&2ÝÑ(étG Ét޾ô§; ìé0¨£^ÓŽ#ü„œÜñÖ…ÿ\½q¿Ú=y7>üßÑ¥%+Ø::þp¢EðA5ÿ%Ó™²†ÿKr8h>‡6ÇêSœ½qròõ×á¯_O~ÎÍŒOT;¯–oüøµóá-Èü4W²'wÆvfVfü«ª|G¯Tõç9Ðùê«Uøþ®á?OþÛÕ§ÜNm}Ký룒ýw&›¹3óüE4óNùµ'ƒßÃ)I‡¶: ]~Êë¡­Nƒñ–Ÿr3Ó„ß÷Õû‡ÇGþ8üð¾î㟇ÿÏÑÌ¡ù¾©?Íÿ8ú©Z?šùùï×ÿ‚*µ®^ݽwóÂþ?>fS +endstream endobj 87 0 obj<> endobj 103 0 obj[/ICCBased 104 0 R] endobj 104 0 obj<>stream +€pADBEprtrCMYKLab Ð)5acspAPPLADBEöÖÓ-ADBE +descütcprtp+wtptœA2B0°¢A2B2°¢A2B1£¸¢B2A0EÀ8´B2A1~t8´B2A2·(8´gamtïÜ‘descU.S. Web Coated (SWOP) v2textCopyright 2000 Adobe Systems, Inc.XYZ µZ¼g’0mft2 $ÚiÙ +6 … Ç ÿ1^‹·â 2Wy˜µÒï%Y ‡!²"Ú#ÿ%#&D'f(†)§*Ç+è-.(/H0i1‰2¦3Â4Þ5û7859Q:m;‰<¥=Â>Þ?øAB)CBD\EuFG©HÃIÝJ÷LM,NCOYPoQ†RœS²TÉUßVöX Y#Z:[Q\f]x^Š_›`­a¾bÏcàdñfgh#i3jBkRl^mgnqozpƒqŒr”sœt£uªv±w·x½yÃzÈ{Í|Î}Í~ÌË€Éǂф¿…»†·‡³ˆ®‰©Š¤‹žŒ˜‘ކ{p‘d’X“L”@•3–&—˜ ˜ÿ™òšä›ÖœÈ»ž­ŸŸ Ž¡|¢j£W¤E¥3¦ §§ü¨ê©×ªÅ«³¬¡­®}¯k°Y±G²6³$´µµí¶Ú·È¸µ¹£º»~¼k½Y¾G¿5À"ÁÁþÂìÃÚÄÇŵƣǑÈ~ÉlÊYËDÌ.ÍÎÎëÏÕоѧÒÓyÔaÕIÖ1×ØØæÙÍÚ²Û˜Ü}ÝbÞGß,ààôáØâ»ãžä{åWæ3ççèèÁéšêqëHììðíÃî–ïvðUñ3òòêóÃôœõsöI÷÷óøÆù•úaû)ûëü§ý\þ þ´ÿZÿÿè§,„¿ç +    üóæØÌÖÞááßÛÖ Ñ!Ë"Ä#¾$¸%³&®'ª(¦)¢* +ž,-š.•/‘01‰2†3ƒ45678€9‚:;~<|=|>|?}@A‚B…C‰DE’F˜GšH›IJŸK£L¦MªN¯O´PºQÀRÇSÎTÕU×VÙWÛXÞYàZã[ç\ê]í^ñ_õ`øaücdeeÿfügúhøiõjókðlîmënèoåpáqÞrÚsÖtÍuÃv¹w¯x¥y›z{…|z}o~dX€MA‚5ƒ)„……þ†í‡ÛˆÊ‰¸Š¦‹•ŒƒqŽ`N=‘,’“ +“ú”é•Ù–É—º˜§™“š€›mœZHž6Ÿ% ¡¡õ¢æ£Ø¤Ê¥½¦±§¦¨›©‘ª‡«¬w­o®g¯`°Z±T²O³L´IµF¶E·D¸E¹FºH»J¼N½R¾W¿]ÀcÁjÂrÃ{ĄŊÆÇ–Èɥʭ˶̿ÍÈÎÒÏÜÐæÑñÒûÔÕÖ×*Ø7ÙDÚQÛ^ÜkÝyކߔàœá¢â¨ã­ä²å¶æºç½èÀéÃêÔëåìõîïð ñ,ò8óCôNõYöc÷jønùoúlûdüVýDþ/ÿÿÿØhÆ 2 +R e r xzzzyuph^RE7)4=@?:4 ,!#"#$$ù%î&ã'Ø(Ì)Á*¶+«,Ÿ-“.‡/|0p1d2Y3M4A566+7!89 ::ö;í<ã=Û>Ó?Ë@ÄA½B·C²D¬E¦F¡GœH—I”JKŽL‹MŠN‰OˆPˆQ‰RˆSˆTˆUˆV‰WŠX‹YZ[‘\“]–^˜_›`aŸb c¡d£e¤f¦g§h¨i©jªkªl«m«n«o«p©q¨r¥s£t uv™w•x‘yŒz‡{‚||}v~oi€aZ‚QƒH„>…5†+‡!ˆ‰ ŠŠ÷‹íŒâØŽÍù‘¯’¥“œ”’•‰–€—x˜p™jšc›^œYUžRŸP O¡O¢P£R¤U¥Y¦_§f¨n©xª‚«Ž¬œ­«®»¯Ì°ß±ó³ ´ µ8¶Q·l¸‡¹¤ºÂ»á½¾!¿CÀeÁ‡ÂªÃÎÄñÆÇ9È^ɂʦËÊÌíÎÏ2ÐTÑtÒ”Ó²ÔÏÕëרÙ6ÚLÛaÜt݇ޘߧà³á¾âÇãÍäÑåÒæÐçÌèÄéºê¬ë›ì‡íoîXï\ð[ñVòLó=ô*õõööÖ÷³øùbú/úôû±üfýý³þMþáÿqÿÿÙ T– ¡ +¤ Ÿ “ ‚p_L7! ðÖ»Ÿƒ}tfUA, ê!Ó"½#¦$%z&d'N(9)%**ý+ê,×-Ä.±/ž0Œ1y2g3U4D526"788ñ9â:Ó;Ä<µ=¦>˜?Š@}AoBbCUDIE~% ô€Û‚¨ƒ„r…W†;‡ ˆˆê‰Ïг‹˜Œ}bŽG-ø‘Þ’Ä“ª”‘•x–`—G˜/™ššê›Ôœ¿ªž–Ÿƒ q¡_¢O£?¤0¥"¦§§ý¨ó©êªâ«Û¬Õ­Ð®Ë¯Ç°Ä±Â²Á³Á´ÂµÅ¶È·Í¸Ó¹Ûºã»í¼ø¾¿À Á0Â@ÃRÄfÅzÆÇ¦È¾ÉÖÊñÌ Í*ÎGÏcЀџҿÓàÕÖ'×LØsÙ›ÚÄÛïÝÞFßsà¡áÏãäM噿çè6é†êØì+í€î×ð1ñòïôMõª÷øZù«úöü:ý{þ»ÿÿÿ€€å´ÍTÌ?¥~òŒ”~i˜ž~L}ãÁ~cbAþ~’Da€dþ€ü¸~t‹yä~W‰²ÊÛ~Oˆ±>~\†´—/~‚…›|“~¾„º`éƒôC–ƒx¢€äƒßú£}%—âH}”1ÉX}%‘z¯Î}K•Ö}† {N}׋<_´~7‰‰AË~Àˆ-ψø¿|¢°à‚|žÉDz|+›®E|[—£”s|«”¦z} ‘æ^•}wO@¶}ÿ-Œ~Ä‹É÷ {G®uÞÚ{D©zÆ{]¤Ä¬Ò{– f“{êœZxÚ|[˜»]ˆ|Ï•M?¹}R’‹<}ÆŽðõ…zªº]ÝYzŸ´Hħz³®‹«|zð©=‘â{L¤Nw²{ÀŸº\‹|=›>Ó|¼˜v|ÛIô8z/ÆrÜ z¿;Ãbz'¸sªMzd²6ßzɬqvÒ{D§[®{À¢0> |;Ÿ| óyÑÒÈÚñy´ÊaÂIy¸Â©?yð»açzY´ÎvzÝ®Æ[{^©‡=c{ФÓI{Rò*yŒß„ÙýyfÕÓÁUy`Ìî¨Vy”Äâyþ½’uKz†·Zi{ ±Ü<Ú{z©%žzÈŽíí‰~+Ö~ˆ}±¾Í‡}W¦µ†0}3Ž…„}HtЄü}ŒZk„›}è=Ž„Ÿ~‹‹†z€ëɇ®‰Õ†£‡}½…¹†!¥~„ø…ŒÐ„d„*s}ƒôƒˆYƒ¨ƒ<9ƒ¸‚àù…w„éû†p“øÓS…w‘u¼„œ¤ƒõ‹‰ƒu‹VrUƒ‰ÕWÿ‚؈|;,‚뇔ˆ„{‡¨èR…sžøÑ²„ƒ›ºƒ²˜;¢¡ƒ•:Š8‚ ’¡q)‚PCV÷‚Ž:4‚.Œ–8ƒ‰ŠÉæÈ„ªªÐ2ƒ»¥­¹‚ñ¡‚¡?‚U¤ˆîãšp £–çVu“ÿ9S†’ ‚šŒçåc„ µbÎÖƒ°·µ‚Rªê ¹¦.‡ÕN¡Æný ¼U€ãš38‰€ó˜8¼ŒAä/ƒ‹ÀÚͬ‚œº‚¶’δzžô6®ß†è€Ó©°n1€“¤íT\€e Ø7Ý€tžXT‹·ã)ƒ$̯̕‚6Å;µ˜e¾Cž€Ê·Ë† €i±Ýmw€3¬SÆ€¨V7M€ +£\®€l‹GâN‚ÐØ»ËÚæÐN´ÄÈa5€tÁ…N€ºzlÕß´ÍS<º°H6Ѽ¥*ôŠîÝ<’a|˜Çkz|C±V޲|šÇ|ƒ—‹·|IkžŠ‚|±Ru‰ˆ}26މ'~2‹ÖÞÛF‘-†ËÆB…„°*ƒ„o™²‹üƒ‚ƒŠ­‚òjŒ‰‚ˆQ^ˆ£‚@5zˆI‚`Š˜ƒ†Ù³‘$ÄŽ"Ží®ýŒcŒß˜€Šñ‹&U‰³‰²ijˆ¦ˆ|PJ‡Ë‡v4v‡y‡ú‰V†»ØG›’Ã.2˜{­‹†•——Š’ý€ˆè¾hS‡æŽ¼O[‡Œÿ3†ÂŒˆ(‰„ÖéŽJ¦ÁÑŒx¢&¬$ŠÔžs•Ò‰h› +~æˆ2—êgK‡>•-N}†o’Ì2Ù†‘Á N‡%ˆÿÕ§±°ÇÀ›‹â¬ªöŠ>§w”´ˆÖ£A}⇤Ÿ\fX†§›ÚMµ…ݘù2,…Š—ò ¨†KˆÔ3»¥¿’‹g¶©ò‰Â°¦“¾ˆ[«¤} +‡0§ež†6¢çM …_Ÿ¯1… ? …—ˆ1Ó£ŒËÆÇ¾³‹ÀI©‰^º’ç‡ô´I|B†Ì¯dö…ܪwL‡…§e1$„¢¡: ®…‡æÒàŒrÒW½ûаÊñ¨]‰ Ãá’1‡£½S{†z·|di…‹²ÇL „½®g0·„\ ð U„އ©Ìû›ò{[¸“™G{!£ö–¸{ ŽÞ”`{&y’E{xbie{ùJrŽÚ|“/cŽ5}~ +~ÀË:šâ„ý·f˜#ƒç£•™‚üú“M‚Kx+‘CØa|ušI~÷.yWã ÏŽ›ƒÉәߎ­¶—%ŒÂ¡å”˜ŠøŒá’[‰‰w!^ˆT`ƒŽž‡^H˜*† -§ŒŒ† 5G…èȨ˜ç˜Ž´ã–=•Π§“½“4‹»‘rív†Žÿ_ÒRG±Œf‹û,ދ̋ͯŒ…ßÇ|˜,¢†³Æ•„žúŸ{“ ›¬Š„Ò˜ªtìŽÙ•ô^1“ Fî‹Å‘Ä,;‹'‘¾<‹!…‘Æ_—›¬¥²²”õ¨Yžl’~¤J‰„J tŽS#]¸Œš'FA‹4—÷+®Š”—;ÛŠL…PÅf—&¶ì±É”€±Þ‰’­ˆªÕ¨šs@å¤]Œ0¡E±Š´žÓ+:Š›È‹‰›…Ä’–ÃÁx±”»¥œÉ‘§¶‡îr°îr…¬U\}‹Ú¨™E>Š\¦A*Ù‰¨œùJ‰ „îÃâ–nÌy°g“ÊÅØœ(‘V¿…‡N#¹³qþ6´ª\‹±DÕŠ¬B*|‰iœºˆ™„˽?¥Ðzzª¢hzM–ÑŸzEƒœzrn™8zÔY,–²{dBS”¢| +'ó“ó|ýª“¦»³¤âƒ”©*¡Z‚œ–ž +Ђ`šý>mÛ˜:€ëXc•€ÎA‚“¼€Û'4“ uh’‚šºˆ£ëŒÂ¨ h‹•$‰nkšˆ)lñ—]‡'WŠ”ï†f@¼’î…è&Ž’8†[/´‚Ô¹|£•õ¦ýŸ£“z“ÿœY‘9€_™N3kõ–‘V­”4Œ1@’4‹9%ù‘w‹Ùý’‚²¸–¢UŸh¦ +žéœ3’þ›ª™?V˜¦–‹k•Ø”.UÙ“|’??R‘~ì%n¿‘VÓŽ™‚–·£¡È©¥5žU¥’.›¡k~‚˜žj9•V›"U"’똬>Ãì—?%'– ¯È‚}¶Ë¡W²½¤mᮑlš©Æ}Ê— ¥Ñi–”ë¢RT–’€Ÿƒ>OlžT$¬ ˜Ì‘‚i¶ þ¼¶£Æ‚·aÊš=²\},—?­Ìi”Ž©àT’-§ =ï¤Ã$e0˜›yŒ‚Yµq ¯Ç,£<-ÁA™ê»_|¥–ð¶?hˆ”@²S³‘à¯G=›Ò©¨$Žô˜leŒ‚L®¯þyäœ)«Þy¶Š§Þy²wФyædG ˜zPOùszæ:šö{ )š˜|q•Óʬί(‚ƒ›hªä™‰~¦Ú€àvû£€cc¨Ÿ›€&OSœ€#9tš€L¡™–”Ž€«ß®=‹.šŠ©þ‰ˆ½¥íˆv1¢0†ûbäž¼† NŸ›¦…Ž8Õ™,…K.˜«†F“p€«­j“癪©7‘š‡Ì¥0„uP¡h½büŒQMèšè‹88A˜jŠ¢ʗ׋³’x€ªA¬Êœ´˜Ú¨˜™Â†ó¤”—tu Ï”ÀaMK’°MBš=‘(7¿—¸ku—a ‘’€©¬,¥Ì˜/§ü¢1†H£ùžâsÊ 5›ï`ªœ²™\L¯™—k7M— +–å(–_”XÄ€¨â«¹¯—¢§}ª¸…£r¦Ãs@Ÿ¬£C`)œ6 OLA™ž;6ö–€}ó•È”@(€¨B«a¸t—§³{…C£ ®çrÈŸHªä_»›Ö§©Ká˜Å¥ã6°–#¢ëÌ•O”&3€"§¹«Â^–¦¦Ä¼«„Ö¢¶·qrbžö²ú_c›†¯ºKœ˜u­6{•ݤÖ§• ” < €(Ÿ°º„ytŽÕµ«y:}Ѱüy2ld¬‹ygZ8¨dyÔF冷zj1ë¡æ{ð¢r{¾‘(€ž¦¹¶¤ŽB´Â€½}b°€ k󫌞Y¸§drFl£®ƒ1l ÞÁ°¡;€ºn€÷¸Ë‰Õš³ÞˆI|ϯ†îkUª£…íY¦z…4Eá¢Æ„Ì0úŸì„Ä †Ë€h·ó’Œø³ç|®Rûjª©ÎŒcX}¥«‹-EY¡öŠW0•ŸŠ,\Ÿа>€œÕ·FšiŒb²a—¦{{­¦•4j©$“Wí¤ð‘]Dá¡?50>žR*>ž6ޏŽÄ€œ;¶¿¢î‹Ù±ÑŸ’zú­œi‹¨™øWy¤Z—ÖD} ’–p/øž–¤'g¨Ž^€›È¶6« ‹p±D§¥z˜¬‚¤i/¨¡W%£Ôž—D9 I/Äœðœ'œ¨›Ž +€›Jµ×´Œ‹"°Ô¯ÛzW¬««hé§y¨1VߣK¥°CüŸ•¤ž/œœ† 1œ›Å€šÙµ†½ëŠË°t¸ƒz«¡³¶h¬§¯ãV²¢ï­ Cߟ8ª§/‘œ/ )›¶¢Ž€‘óÅcy‚¿ÒxËrº|x¹a£µixêPq°§yS> ¬syä)¦©–zjf«Y{ C€‘7Ä‹€æ¶¾óøq¹JaJ´m~âP ¯ž~Ä=­«_~å)]¨f2…©Ã€DŒþ€ÍÃ’ˆ¨G¾‡'q^¸ž…Ü`Û³u„óO¡®Ÿ„Y=RªZ„)#§J„N¯¨O„îŒÁ€Â©k€è½#Ž_pé·¼Œ•`k²†‹&O:­²Š%=©j‰“(ö¦H‰ãÚ§‰ŒŒ€,Áè˜O€”¼[•µp’¶ð“t` ±»‘•Nè¬Ö&<è’i(×¥c¥áŠÔŒ^€ÇÁP b€B»µ7pM¶@šs_ϱ ˜,N®¬&–q<•§Ð•²(¤–•¼+¤ãŠîŒ8€fÀÕ¨”ü»*¤Ðpµª¡‡_¢°ožßN‰«“<}§:œ¬(¸£àšnN¤‹Œ€&ÀQ°õ̺¡¬“oöµ¨Ë_¯ã¥ØNw« ¤—}g€Ôu~_€Ûîjx&t×hx¬ŽQ¿×y7ŒQ§’yÌŠŸŽ¼zi‰%u7{‡ÕZ‘{º†•=v|k…‰ö|ï…ì˜vøœÕŸw…˜Ó¾ x•Ѧx¼“ Ryo¦sõz'ŽkYuzÛŒM¯1—<}ª €#}¥oha}?¡'O|}gŒ3¸}™›f Ø}É\Ø}…ÅYÂë}¿¬ò|ȸזP|™²ãD| ­mg|˨•NÚ|÷¤Ù3,} X S}(‰×d}5ÑÂ<|ÐÉç¬0|nÂÆ•‚|4»÷~„|8µÍf÷|e°—NT|—¬–2º|·¢L è|­ˆºÑÁQv’½µ‹ëw©Š©w~“~‰Žx }1ˆ—x²f‡ÅyzMž‡(zI28‡%{1 Ö‰$|yÐ<‹ñ€Ç¼|Š™€>§Ú‰cÎ’hˆU~|‡nWdû†®QL”†\15†˜ 쇋€ZÎ⊩‹»!‰_‰œ¦¬ˆ+ˆ7‘/‡0‡ zò†X†câ…©…FK…&„–0D…!„D †$ƒÂÍ~‰•u¹±ˆI“¥&‡%Ú͆.ŽÏy±…l bDŽ̋vJœ„QŠ/n„F‰Y +k„솷Ì&ˆ°ŸÚ¸W‡lœ«£Î†N™žŽ…]–Âx„„˜”a„‘ÑIÀƒ“Ð.¯ƒ~Žñ ҃ᆤÊöˆªh·/†½¦j¢ª…ž¢ˆh„°žÚw‚ƒï›o`ÓƒX˜^Hû‚ê•ã.‚Е Qƒ†LÉù‡rµ¶7†1°N¡±…«—Œu„ §v§ƒf¢÷`‚ÒŸGHU‚Xœu-{‚8šIæ‚F†É,‡¿ÿµm…źg ß„Ÿ´Þ‹¡ƒ©¯’uÞ‚ïªÂ_g‚f¦¤GÇí£ù-ºžp®…ÉÈ‘†®Ë=´Í…tÄØ /„I¾zŠêƒK¸hu5‚޳^Õ‚®µGJ“ªÖ,—^ž&J5…›Â–½u„¯Y”Šv œ ’ƒv—‡ð®w6røwó]”xËE¹Œry¦+ŒNzŒ©Œÿ|œÀ¼•},®S“P~Ë›‘S~~‡ˆ~Sr í~O\Œˆ~mD΋o~™*'‹C~ú,‹l€¿Ž”WˆØ­’4‡™û6†u…äŽx…‰pÿŒê„Æ[(‹’„/CñŠƒº)cŠMƒ¹¾Š +ƒ&¾o“A’§«ä‘(™˜¹7Ž¡„ÈpŒãoë‹ô‹fZ0ЍŠC‰ž‰(ª‰eˆç_ˆ×ƒ¡½G’gœ…ªÏN™²—™Ža—ƒ•Œª”…nÙ‹(’AY@‰ëRBSˆäŽÇ(ˆ ŽÊ ‡Ðƒj¼<‘¿¦†©Å©¢ø–¼Ÿ‡‚—ŒœJmðŠ‡™QXm‰@–»A§ˆ<”ß'|‡ð”;Ȇóƒ<»[‘9°§¨é%¬_•´5¨,À‹~¤4m,Š ˜Wƈ½ƒA‡©›•' ‡U˜¾†<ƒº¤Ï»¨6޽¶”ùŒÊ±‹¬^ly‰”¨0W(ˆW¤×@‡@¢Ü&ª†Öš$`…¦‚öº|ź§§ŽmÀ”[ŒxºR€`ж´òkâ‰7°NV§‡û­@-†ì¨Ä&H†™â;…/‚ݲàztáHˆuN<šÇuâ|h˜=vŒh±•éwSSè“Úx2=¡’Ey #g’IyÔJY|º±°Ÿ`}æ }œk}˜Ž|™¬}c{ª—$}Qgì”Ø}fS$’Ò}<Û‘@}á"¹‘3~T,ŽÌݰ»žF‡Ÿy›\…ô˜›„ùz¶– „3g“݃œRP‘áƒ1<S‚î"5ƒ;o€¹¯¼S1žhšmŽ`Œn—´Œ¶y·•0‹3f’ú‰úQ~‘ˆó;nxˆ9!•Jˆ³úŒ@€©®Õœp™Šv™“—‹r–â”§x³”e’se1’‚P¶3Žî:ÊŽ§Ü!ŽmŽ/æ‹=€œ­ó›Ì£œ¬˜îŸÑŠ©–8œ¾wà“¼™ådc‘}—WOÿŠ•=:8þ” ©·’àÖŠc€‘­2›M¬ ›ì˜o¨Á‰è•·¤þw%“:¡~cºÿžfOn +›ñ9Âj› U•Üȉ®€‡¬šë¶j›P˜ ±ã‰H•Q­uv…’ΩVc “¥ËN控£J9Y¡[ Œ•«½‰€€¬šœÀšÓ—¾»oˆ¾•¶Vu÷’x±¢bŸ9­ÍNzŽL«]8üŒ®¦e¾Œ>•v´ˆ¥€z¤ ª‘t9“Ÿ¦ìt¼‚±£|uOq Euü^sJvÅJ¼š¨w¢5W˜¾xk@™kx잣0©–|ã“ ¥ç|›‚$¢p|spvŸ4|p]Úœ9|—J"™›|Þ4¿—­}-И5}˜Œl€¢s¨Š…ˆ’?¤ä„…l¡fƒ¤o²ž1‚þ]›<‚ˆIy˜£‚D4,–²‚+m—‚Æ‹`€¡°§•Ž/‘c£öŒƒ€} €ŠþnÛD‰²\UšYˆ«H˗Ňá3¡•чx–ˆ8Šw€ ã¦Ô–æ—£5”š©ŸÂ’nœˆŸ[œ™‰ŽöH,–ý¿3&•/È•-Œí‰¯€ :¦"ŸÞí¢‰œó~üŸš5mV›Ú—¶Zø˜Ú•†G –9“å2»”;“‰„”VꉀŸ¥¡¨òg¢¥g~wžŠ¢lÈ›FžóZn˜Nœ[G*•²š“2b“šP“¢‘ˆ|€Ÿ¥C²4Žæ¡¤®}ôž#ªlHšÚ¦zYõ—ࣔF¾•L¢2“.Ÿt&“‘ˆ €žª¤ù»ÞŽ}¡T·!}„в‹kךƒ®zY—†«ƒFl”ï©B1Î’Ø¡¬÷’µá‡°€•ñµsĆ}°¸t7v¬¢tÂeï¨ÅulTg¥+v1A¢¢w,ðŸøw¬n¢w¬‰~€•U´"|†¯Å{´v4«ž{eާ²{–Sû¤{ÈA8 é|,žÉ|iT |¯ˆÄ€”Õ³„,…Œ®Ãƒ4u°ª“‚edü¦©ØSo£@½Ÿà[,/´g?Ÿ?‚ ˆ!€”N²ŒS„ì­ÏŠÂtû©¤‰`dY¥±ˆ?RÖ¢‡h@=žò†Ø+Òœº†Á+ž†Ê‡“€“»±S”’„T­’ptY¨Üˆc²¤éŽßRJ¡@„?ÈžŒ¡+›ÛŒ¨œîŠâ‡€“*°·œùƒË¬fšKsÔ¨8—Õc/¤A•­QΠ”“å?fY’Ã+@› “›òŒ6†³€’¾°%¥…ƒ`«Õ¢Ksh§¥ŸJbÆ£­œ§Qn šŽ?œ¿™z+šF˜” › Œ2†^€’S¯Å®Eƒ«lªxs&§,¦ãbx££ÉQŸm¡>Μ= º*ڙʜùš]Œ1†€‘û¯z·l‚Ê«³rզЮñb*¢¿«|PÜŸ ©s>ž›Ô¦Í*¼™dœå™æŒ0… v¿åsQyáºõs­jÙ¶Ct+['±ÊtÌJŠ­žu‡8“ªvF$R¨+v· +Xªw† €ˆ¿{.y¹ºzÔj®µ¼ +’`x¥·bi„²AަYÀ­ž3I?©NŒ7¥¬‹–#×£VŒ> J£¹‡¢„ñ€†ß»bšSxP¶g—Öi5±ˆ•œYu¬ß“½Hù¨Œ’U7]¤Ó‘Æ#âk‘è t¢”‡¿„€†‡ºÞ¢_x µÚŸdhõ°ïœ®Y9¬>škH§ì˜Û79¤,˜ª#º¡˜–£ œ¡”‡Ù„š€†Mºbª•wÕµZ§hưk£öY«³¡eHš§^Ÿå7£¦Ÿ +#ª ü˜ À ´‡ò„{€† º³>wÀ´ø¯9h·¯ó«ƒXõ«#¨¨Hˆ¦½§97¢ý¤# `˜- ñ ˆ„a€{nË1rým™Å¶s7_XÀsšPs»‚t'@ž¶ßtË/E³!ud±øuko°Mw‰ƒ$€{hÊ@zˆm«ÄÂz_^¿kyÙPpºIyÚ@™µ‡z /R±¨zVG°1z_ ®/|Fƒ"€{rÉÙm—Þ€Ø_G¾=€PN¹  @}´:m/P°Gw}®’«—¬I€uƒ!€{pÇè‰m}Âs‡ž_½†gP%·Ô……@^³…/J¯„ß­­…„ª›ƒnƒ€{[ÆìemeÁpŽ€^þ¼ŒèP¶Â‹¥@O±ßŠÏ/P­ÜЬ߫Ћ0©$ƒ¹ƒ€{9Æ%—ämTÀš•^÷»“ŽPµÕ‘ö@O°îì/a¬Ò‘ª¦ ä§áƒûƒ€{Å„ŸumG¿êœ³^÷º`šGP +µ ˜f@[°%—]/y¬—yK©£“!;¦Î„7ƒ€zöŧ0m?¿[£ý^ü¹Á¡,P´aŸ@g¯užY/«VœÓx¨à“@‡¥ë„jƒ€zÜį>m>¾á«“_ ¹8¨[P*³Ì¦3@…®×¤Î/¹ª° E³¨1“gÈ¥F„–ƒ€ævpsÐwKsñ¹€xtÌ¢*xêu¯Š$y²v¡qczw£W†{OxŸ;/|1y–}!yèät‡~hÎku‰~·úv|}å Ëwe}ʈÝxK}Íp.y3}äV[z}ù:zï~ {T}Áâ1rð‰ÒÌštˆd¶_u +‡ŸFv +…ý‡~w…nóx„BU>xöƒy8ùyÄ‚ÄÄyÕ‚ àiq“•8ÊÍr®’¿´œsÀl±tÑŽL†uæŒvm²vöŠÂT*wò‰!7þx²‡·”x‹…ìÞÉpu É2q’/³r«™çœ+sÅ–Õ„®t哸l|v‘iS#w Žú7w»Œþwq‰?Ýlo˜¬ ÇÙp´§º±ªqË£šÛrèŸzƒwt›´kXu5˜3R.vA•6Bvá’Å´v„‹KÜNnë·ŒÆÁp²[°‹q­1™¾r0¨<‚rs]£šjrtŠŸLQZu”›u5v%™%þu¿ŠÐÛonmÃÅåo½¯£pˆ·˜Ëq›±#…rÉ«¬i¤sý¦¶P¯u ¢{4ôu…žµjuŠlÚËnÎÆÅDo)Çä®ëp!Àó—ÿq'º6€»rO³ühësƒ®}P +tŽªI4ctý£(ôtŸŠÖq¶ÁårʬôsÏ—5tÑ€uVuÝhîˆvöP1Ïx4š€YyXòy<ÔŒ}Q|À²}s|z«Î}—||•þ}À|S}ó|¹gÓ~7|÷O~}43}rA€H}ƒÓ{Ò‡P¿|†BªA|3…D”|q„o}þ|»ƒ½f¢}ƒ&N }v‚˜2“}í‚% L~ÒƒÑnz†’½ez¼¨¡z÷Ž0“ {@Œi|ª{¡ŠÝex| ‰rM |vˆ!1­|Þ‡ x}„üÏóyrœé»ïyªš §-yí—A‘¤z?”˜{fz¥’d[{"çL{“á0Ü{êŒ Â|w‡óγx›§Òº³xÔ¤¥òy qryjœæzJyÖ™‘cVzS–„K>zÌ“æ0!{’‚ ){‡‹Í®wñ²Ó¹°x*®N¤êxe©¿lx¹¥TyZy,¡4b…y®qJ„z!šK/ƒz\˜r +ªzˇ6Ìäws½ñ¸ãwª¸ ¤wܳ5Ž‹x'­ëxx›© aÄy'¤·Iåyœ¡k.üyÁN +Bz-†ðÌUwÉ>¸JwQÃ#£_ww¼àËwµ¶ÂwÈx$±/a x°¬{ITy'¨ò.}yAŸo ðy¯†¸Æ~ˆpгü‡3q¾ ’†rrÚŒ…Ñsîv·…Gu `\„Üv5H´„žwU-Å„ôxR܆Oy`ÅF†€z¸²ê…»zêŸs… {‹„u{Wuªƒù{§_[ƒœ| Gºƒh|i,؃²|À/„ª}uÄ…„ù±¨„\„1ž_ƒ³ƒr‰Ùƒ,‚Òt‡‚º‚T^Q‚kóFÇ‚DŸ+û‚…n˜ƒ9 ­ƒÇ*°1ƒœÉ‚|‹÷ˆq‚Š|sB¨‰6]5kˆEÕJ‡+,x†~ø„(ÁT‚½™a®Ø‚ –ý›uz”‡)’Qr€°-\5€„ŽTE€hŒ¼*x€„Œ £€æ„}À0í£¾­¸@ –šW€«d†€8šEqç—Z[Q¶”ÂDD¡’´)×°’Dþ„=¿DI®7¬Ë€ŸªN™d€¦K… Ž¢[p=Dž¸Z’›‚C¦~ö™")Q~ø—Bö?„¾€Î¸Ú¬€&´2˜™„¯`„NªŸos~·¦NYØ~•¢©C ~w p(ß~^›‚¶~£ƒÜ¾€xÃÁ«‚Ó¾c—ì$¸Áƒ“~“³5nÆ~@®IYE~ ªsB“~§0(y}æ›^ƒ~&ƒº·\‘Wo±¦5žpí”!Žr€ôŒÉs.lË‹˜tTW“Š•u†@ï‰àv¤&Š;w*Š$y½¶XáyS¥CŽGyž“ŒÔyéù‹‡z?kÖŠ_z©Vª‰f{$@ +ˆµ{˜%²ˆú{ôÛˆ„}iµIŽ‹‚ê¤ ‚]’‹’Ó~׊Sij̉7U»ˆJ€ã?6‡ž€º$ú‡Î€¸•‡€¢´,MŒ•¢Ô‹Ë‹>¶Šj‰è}¹‰*ˆ´i½ˆ‡¬T·>†Ç>k†˜† $P†¶…æY…Ù–³ŒK–I¡ÂŠË”8œ‰o’-|‹ˆ:7h°‡1ŽkS߆aŒå=¥…½‹¯#³…Ä‹¹%„Ês²‹…  ¾Š YŽ˜ˆ¬š{’‡y—Úgʆq•[S…˜“1<þ„÷‘®#,„ì‘!ùƒåV±5ŠéªŸë‰q¦–Àˆ£ z¼†ÙŸg…Õœ{Rj„ý™Ô"À„0•Õƒ'=°’Šr´'Ÿ@ˆþ° ‡–«¾z†V§—fQ…P£áQÆ„ƒ ô;ðƒÎŸ_"aƒ”—?¸‚)° о‹ž¼ˆª¹ÂŒn‡;´Æy]…ï¯îe¹„â«ÀQD„¨æ;ƒd¥1!ÿƒ"–ü ‚¨›šéo˜Ž˜spA‡¥–„€ƒ(€—~ |݈C|BxGš¡½gt—÷ŒXUÑ•‹Bü“{Š5.l’ ‰ÑÊ“‰@‚l€–ן°™«‡—œ¹—zw—™ß•WfÉ—/“SU/”·‘B{’›@. ‘'’’F΀–FŸ¢‡œ(ŸÏw™D f9–ŠštT”˜AAÿ‘ü–É-´m–…a‘8ÈK€•Ξ±«—†›½¨Nv’˜Ò¤ùe¶–¡×T“•ŸQA‡‘‚ž-Xé›à9„¬€à€•užb´ð†;›k±)v"˜x­FeA•ª©®S´“*§A/‘¥:-}žv ‡€‹€Œœ¯4n~W«{oo]¨p/_y¤ÀqKNŒ¡»rh‰°SU©7ˆ­Ct¥†‡ð21¢“‡ž¡4ˆ+ñŸú„±€€}ð´þ”pO°­’@b¬q—S¨b&C%¤ªŽ1þ¡µ #à!ž£„Ò€€}Ÿ´i›æp °™¶aƫɗ™R¾§¯•ÄBâ£ö”‚1Ò Þ”z~Ÿ.’§Nx„ñ€€}j³é£åoØ¯Ž¡Pa«=žÍR†§œ©B¬£\›p1œ Jšâfž|”yœv…€€}6³›¬GoЯ+©Va„ªÁ¦]Rd¦‚£ëB¢­¢Ã1”ŸŸóvÉ”™ ›Å…(€€r¯ÅHlÞe¥À¬m´X¼9nŸIÓ·ìo•:u´p)S±4q-–±ép¸«)t{€€r¢Äwtpeÿ±t‹X:»tÕIñ¶†u@:–²vu¿)¯v!¯Äu»©éx瀀r£Ã:{¸eª¾r{EX&¹µzýIÖµ$z÷:ˆ±{)ž­ò{8n­Þ{£§Ó}.€€r•Áí‚Úe€½&øWç¸jBI¨³Ò€Ì:f¯­€–)œ¬Š€¯¬0€Ì!¥ø€Ä€€rvÀÒŠ e_¼ˆÈWÀ·E‡¶Iu²¨†Ú:Q®s†Q)ž«G†Iíª¯†‘¤U€€rQ¿ù‘heJ»ËW²¶NŽTIg±¨":A­lŒ^)¨ª!Œ…'©X‹ƒñ¢êP€€r0¿P˜Óe?ºb–àW®µ• +Ic°Ï“:?¬’Â)¶©8“`¨-!G¡´Š€€r¾Ó `e=¹ÌžW±´Õ›îId°š:::«Ò™¶)·¨}˜y…§M: ³º€€qþ¾v¨6eC¹P¥¢W»´C£(Ik¯w¡k:E«) Q)ЧʜE¨¦RºŸóØ€€ÙµqlªÅr×n7¯¿to·™›uIq-‚¬vkr£jëwŠtRx u‚6zy vÀzyv­×·oWwÞÃppÜxG®IrAx·˜Ksy4ttÒy¾iÇvzQPëw4zÖ5hx!{>ÎxÂz­Õâm„ƒÁ¤o‚g¬µp™Â–ÌrI€s^€êh“t²€œOÙuå€J4lv¼ïÀwA"ÔkêŽJ¿ÕmŽŒªîoŠð•:p—‰u~°rˆ1gWsv‡NÌt´…â3€ur„ÛÖuóƒ0Òzj”™o¾;l@–Ì©TmÖ”?“®o^‘Õ}Rpâ”f%r^‘MÎs¤‹¨2¥tGŠtÔ†¨Ñ&iФ¼ëk8¡#¨lϪ’an\šQ|oè—*e +qh”?Lãr¶‘¦1às?Î esã‰Ðh¹¯Ô»Ýjg«Š¦ëkù§+‘Im…¢ç{ožæd&pŸ›3Lqè—ï1:rZ– Ùsˆ°ÏGh»»i˶¦ kS°Ã^lÖ«˜z/nj¦ÆcWoø¢mKpqCžÈ0ªq—› gryˆbιg¼Æ`º€iaÀ}¥ajÚºcœlM´`ymmÚ®Ïb§oh©ïJÎp®¦P0pëŸî q÷ˆ%ÊZyäk‹·}zdmK£Ázænë{hptyU{îqúbµ||sJÒ}tî/á}Ðv 9dv7Èéwèv<¶Wx‘v䢤y-wƒìyÄx"xBz]xÊa¯zÿyzIÙ{¢z.õ|Iz +k}±z¨Çev*€ä´®v怇¡w•€,ŒsxCèvòxõ¹`…y­˜HÏzZs.zå@ ¶|3~ÖÅÓt¥‹z³ ukŠ3Ÿxv'ˆò‹vä‡Äu¢w®†¿__xx…ÐGÕy-„ï-0yœ„4 zè‚wÄ[s]–±—t*“öžtð‘Ù‰—u·Ítev‰á^HwfŒ-Fíx Š,lxr‰Š“yÌ…“Ã$r[ Â°bs,לÎsòšÞˆht¾—ôsJu—•3]Kvt’®Fw4‹+½wkz"xÝ…€Â+q«~¯fra§Ì›Ís#£ù‡hsî 3r]tÏœ¬\}u±™vEjvi–Ñ+,v‡•WÄx…@Ánpø¶M®¤qDZٚúr­1†ŽsD¨“q‡t&¤M[½u ŒDÎuÉÀ*®uÇš#xwv… Àðp”Á6®q^¼šRr ¶‰…Ör¾±pÕs™¬+[t„¨D;u;¥**u#œ‚;vö„ä»n‚”jœª1‚8lx—ëùn*„yÑo¿oü¹qMZp¸rÙC€ÝtG)‚uS<ƒ»vºL€½t³©€u–³€evVƒO€Kwnå€BwÝYp€Px¦B“€xyZ(.€üyÈÈ‚ zÒ¹~ͧÂ~ù~·•˜~ß~œ‚$~Ø~†mÏ~Ü~ƒXy~ø~Aº'~’'nŽ~|b€‘~’·¼}”ˆÕ¦\}†‡î”}|†þ€É}†l}Ÿ…LWa}Ì„˜@Ì}ÿƒö&¨~Dƒ„ HÔ¶m|Y’ᥠ|P‘8’¿|P„|]Èkw|€Œ-Vh|¾ŠÇ?þ|ô‰%ÿ}‰¾~/‚ˆµU{b £ó{^𣑍{^˜~u{n•›jy{•“¬{>•Æ$ì{*” I|}‚9³Ìz ± ¢Xz ­Æøyÿ©¯|Âz¥™hÜz1¡ÝTzyžº>z£œä$zj˜R{Ý‚³\y§¼ ¡Òy§·˜Vy²¾|yƒ­éh9y¨©—SŒyî¦A=—z£|$ y͘_ü{^‚¬Ø‹½iÚœùŠ€k»‹ý‰~mpyÀˆ©ofi‡ñp˜Qì‡br$;è‡ s…!±‡õtN‡w$«óŠseœˆøtUŠîˆ u2x¹‡?veq†vâQ†w¼;…Àxx ö†jxÇ…•{ªðˆj|ÛšÕ‡{|ù‰Ù†˜} w…Ú}!dq…4}FP)„¸}u:Q„r}™ U„ô}ƒæ~Š©Ñ†ö†Z™¤†…·ˆ…>…v‹„†„ScyƒíƒÃO\ƒyƒI9¦ƒ8‚ãƃ˜‚¸‚o€¨¥…ÃÛ˜˜„àŽŠ‡ƒ„"ubƒg‹¶bo‚ÖŠdNk‚u‰J8á‚2ˆn2‚fˆ{.€§«„×™~—–ƒú—~†ƒ0•\to‚€“3aŒñ‘0Mª†x8EEŽRµXÝ€ €¦â„£2–ȃE ˆ…­‚v¬s™ÂšÊ`Ä7˜&M€Í•ò7Ç€v”ºQ€l’W€€¦Jƒ­–#‚¾©º„øç¦&rá&¢Œ`€—ŸVLS€9œÙ77ß›µø§”D€€¥ãƒ-·•¤‚`³3„^|®ër<€©ª _|€¦ïKׯ¤z6ÍX¡yž ”€€ž¦•iNÔ“&k#î‘ylÔnÌnj\ްoöIqt3Ör²‡Ž¢röƒz¼ì“”rZ‘ÈsM't3múެu[ÄXuùHUŒEvÙ3(‹­wŠýwƒ¡~’{NŽb{}~!ŽÆ{§mX{ØZàŒ |GŽ‹|_2~Šc|‘~‹||l€Z€œ·„+Œý ƒ³|ö~ƒ5l Œ‚¸YúŠÖ‚XFΉӂ 1å‰0ÍŠÙ€€›&„,ŒâŒ{øŒ^ŠékŠö‰¿Y-‰µˆ²Fˆ¾‡Ü1Yˆ‡P°ˆÆ‡X€€šRŽ –Q‹?”˜{7‹~’Äj5ŠðX^ˆÕFEm‡Ôñ0ˇ)MI‡¬Œ€€™¤ïŸ‚ЇŒZ0zyŠÍšµiz‰^˜=W­ˆ!– +DÕ‡”[0^†W“ôÿ†²€€™h¨Ì‰õ‹Ø¥éyÜŠD¢Íh܈ɟ·W‡ˆD@†‹›I/æ…½š)¾…áa€€˜½²V‰„‹{®ñyV‰Ü«9hNˆR§V‘‡¤”CÕ†¢ö/†…8Ÿk…H(€€ØžáĥלLjsßšl4cÄ—ïmÅR‡– oI?씆p±+J“èq³l–Þq/€}Ð@qc‚H›rQs<˜Ãs:c&–£t"Qð”¶u ?e“*ué*Ó’uvz8”õuò€€˜œ!yÙu™ºzr}—mzMb`•Sz•Q=“jzé>Ë‘á{@*Y‘{q“/{%€€ŽÏšÌ‚=€’˜nÛq„–-ya”&P{’7€ê>*³€Â)Þ
Ò‘’€ª€€Ž™´Š¨Æ—Y‰¹p´•ˆÇ`´“‡ÞOÖ‘‡ =› †z)wŽÁ†>­…{€€U˜Æ“G–x‘Ëp”<@` +’ŽºO33`=%ŽŸŒj)"¶Œ]‹ŽÀ‰‘€€ŒÆ˜›÷~š•Ï™øo‚“‰—Ô_z‘`•¹Nžu“ñ<¥â’Í(όؒÅiŠk€€ŒU—™¤¿~"•R¢Co“Ÿ“^öÍœñNŽÜšÔ<&O™Ü(kŒ8˜KŒ¬ŠW€€Œ—=­Ä}ÔôªÜn‘’š§¨^‚V¤‘M´Ž[¢Q;όƠõ(‹¯›!‹ùŠ7€€ƒ‰©h7v<¥öiàh£kxXâ xlþH‹žnr6²œ5o·"^›ãpZX¯p €€ƒ§òpguÞ¤ÖqGg­¡çr,XŸ'sH0œ«sþ6gšÃtË"+šGu€›tu1€€‚–¦–xhu?£ˆx¢g" “xåWïÒy=G°›Ty 6™gyþ!ë˜Ìz™gz§€€‚¥B€Pt¢:€f_ŸN¶WNœŒ‚Gši5‹˜)_!¡—uX®—‹“€€d¤%ˆGsð¡$‡xeµž<†­VŸ›y…ñF–˜ú…\5—…!Z–B…¼•߃р€€Ø£K_sh Ne.aËVš˜ŒF˜‹ˆ4È–Šñ!+•$‹bÌ”`…ó€€€m¢˜‡r÷Ÿ™–Îd¸œ¨•U™Ú“ME¦—Q‘ò4w•<‘[!”èⓆ€€€¢ Órßž¹d~œœmUQ™,š8EP–•˜¦4”Ž˜a Æ“o•è’†€€Ñ¡¼©\r}ž·¦ìd.›¦¤2Tú˜­¡¥E–  -3Ù“üž| ™’Ø– +ã‘;†€€v´³Ágiõ°8i\€¬åjŒN©¼l>‡¦âm\-=¤ënk¹¥—nl‰¢ªp€€vZ²ÐoRiʯ(p\W«¦pùMù¨TqÝ>p¥^r¼-:£Isj㣧sFþ 7ua€€v ±|vèi`­Øw\ªGw`M ¦ëwÃ>(£ìx--¡Çx„î¡éxT^ùzX€€u¬°~]hé¬}~[w¨ó}ÝM4¥”}Ã=Ç¢™}Æ,Рj}Ñç Z}¼¬›ú~¯€€uD®ô…áh«X….[§Ï„‡L·¤mƒó=r¡dƒ,Ÿ2ƒkÙž÷ƒ¿íš;û€€t䮊h(ªuŒrZ¯¦ã‹XL_£yŠX= h‰š,_ž‰hÒ¶‰ƒ#˜¶‚€€t”­e•=gæ©Á“ÊZn¦#’CL¢­Þ<ÔŸšî,0;Úœ•ŽYV—j‚B€€t]¬×g±©-›;Z2¥†™VKØ¢—£<”žì–µ+뜓–v»›Æ¹‰–S‚d€€t.¬~¥g´¨¾£Z.¤ü ÐK¸¡]žÉ<{ž)ó+뛾›“ÑšòȬ•Œ‚|€€j2¿f´]λ@hPã·–ipC#´jÆ4*°èkô#¯>l¢!±HkãŸs°€€ií¾=n2]Ϻ9nØPõ¶BoœCE²wpn4[¯.q1#s­Jqœµ®èpæÀx)€€iͼçud]¸Úu€PÕ´Ïu¸C&°ív4Q­v|#‘«ˆv®¬Èv&œ‰|"€€i¨»r|k]a·f|P‡³]{éBò¯w{Þ4-¬{ð#“©ò{øgªâ{Ø›h¡€€izº1ƒ]5¶#‚ÚPV²‚KB´®+×4ª·š#”¨…ž©©0®šl€€€iN¹<Š»]µ‰ÉPD±ˆÜBž­ ˆ3ü©‘‡’#§:‡Àæ§«†¸™€€€i)¸‘þ]´GÈP?°‚B”¬Žl3ñ¨›á#§¦2ŽE"¦YŠé˜ß€€€i ·ó™Y]³ž—æPD¯Y–UB’«M•3ä§Ç”¶#œ¥^“Ì?¥YŠü˜H€€€hú· ë]#³ŸIPQ®µ|B–ª›œ%3é§ ›n#±¤”˜"V¤ƒ‹ —²€€€ÍPlmfD¹çn0hu¥ÓoØjàqcl”{rßndUtOp}Llu¤rP1­v©sÖ Çx1s¶Ë\iîqT¸Xkçrg¤mm¶swŸogt†yãqu—c>r–v¥Kasúw›0±tÜxU ævtwåɈgÉ|`¶‘iÜ|\¢ákË|_Ž&m™|}x‘oV|ªbpÿ|ÞJYro}/Æs+} !tî|ƒÇ»eâ‡P´Âh +†P¡j …`Œškò„‡w*m̓Ó`ÛoŒƒ/ITq‚.éq™ë vs›€¸ÆdF’4³)f|TŸƒhŽ~‹jƒŒ»u×ln‹_²nC‰¢H`oˆA.p+‡ +ärx„RÄÅc!±Ýe?špž8gU—µ‰ÊiS• +t¦kG’…^¥m!3G‚n¦Ž)-inæŒÅ +hq„‡ öaý¨°Ôd@¤—*fU úˆ»hTks©jRš]Èl3–ÿFÇm±”T,ÒmË’ó +p¹†ÄÂía<³ ° c®ÄœSeªL‡Ûg…¥ÛrÊi„¡¸\ÿkmžF$lêšý,OlÙ˜\ ¯p†ŒÂj`»½þ¯…bú¸ç›²dø³“‡%fâ®NrhÚ©s\]jÂ¥>E‹l7¢>+Ælœ¨ mp†_¾¯tŽe`­u‚g¾šlvqiwZkýrxBmû\Zy,oîESzq»+zßs€}s}½Fr=oð«ésfq;™Zturp…¶uvs˜qvst½[jwqußDvx]vä*8ywõ{[x»Àp.zkª>qrz¶—Óršzù„?s¶{BoÁtÏ{•ZDuä{ìCsvÖ|2)XwN|?zyÖ|lº)n]„ʨšo²„3–1p샖‚×r‚þnxsO‚€Y'tx‚B…unŸ(‘u·.x…€1¸®lÑ)§'n2Ô¿o|ŒPlp¸ŠßmFq÷‰„Xs4ˆRA¨t-‡;'ÞtD†y´wdƒl·xk–™š¥ôlÿ—m“nM•#€Co‘’Úl0pÙ¯W)rŽ·@âs'>rûŒVgvÞƒ§¶‚j›¤¤ül¡$’’mTžInššækGoë—ùV`q.•V@>r“8&¼qÞ’#'wJƒ|µËiß®—¤>kLªç‘Ål‘¦ø~vmÏ£jwo"ŸaU£pnœ7?¦q]™ó&Ipê–âôw¡ƒYµVib¹$£¸jÉ´·‘#kþ¯ø}Æm/«>iÏnz¦òUoÅ£g?p®¡ %Çp™‹Êwçƒ=°p|ÿd¬ M}g}TiW|–}œkghþ}ñmeTD~VoS>~Õq$«r&÷gt¯SzÑn Ÿ3{'pß{zqh{u{Õr©gó|:sãSS|¯u=8},v#C}ÉvŸ¶®xq®xÕx‘àyMyŒ¾y¶y‘zKz&zfäzœzvRf{zí¹²–ô*ð:–F²‹÷€€Ž¾…Eª÷€—„e¨Wqcƒb¥Ea?‚b¢!PX—Ÿ˜>V +že*›€Ž›5q€E‹Ë€€‡|˜czi–˜eYlD”ãgx\á“dirLI’kM:6‘ lõ%Ù‘8n <“•mt€}F†Õ–ýkŠyÏ•mk™“ing\E‘Ûo¿K¼{q9¾r'%xvrÈ .‘rE€€† •HsÛxt¥jÒ‘Ùud[{QvK ŽõvÔ9.úwt%Ôw» ŽÈw}€€…H“°|wþ‘ü|LiÌ]|sZ¦ŽÚ|—JKŒ|À8‘Œ”|å$œŒX|æ Œ¼} €€„o’]„Yw*±„høƒ¡YÆšƒ1I¨ŒA‚É8‹Q‚‡$8Šþ‚g +íŠñƒº‘GŒÈvr¨‹ïh?ŽŠôYŒ‰‰ëI‹.ˆý7œŠ%ˆ[#ë‰Àˆk +Ù‰g†€€ƒ&t•DuñŽÝ“ðg¼;’bX†‹¨ÅHkŠMh7‰BŽ˜#žˆ²ŽÆ +ƈ‡I€€‚±ÖÎuvŽBœg:Œ—™ïXŠö—ÌGꉓ–6ˆŒ•k#4‡é” +¶‡‡>€€‚Zd¦„uΤ[fËŒ¡ÇW‘ŠgŸ/G„ˆ÷R6<‡åœp"î‡9—ž +•†F‡(€€z¢¥bpn &d•`«îf R ›çhŠBXšjN0â˜þkÙÁl?ߘ¡l¾€Ðyü¡Aj{m žÌkâ`4œmAQ¹š]n•B˜€oÒ0£—JpÔf—Ïq –qÒ€€ykŸ¢rXlîBs!_šôsæQ!˜Ñt¬A‚–òuh0D•±uþ6–uûR“ÅwM€€xÄžzl2›»za^Í™xzœP|—XzÜ@ì•{/Ó”<{O÷”g{1t‘À|L€€xœ¿ïkˆšr¹^˜5vOÈ–-@h”4€ø/d’ï€Üµ’õ€ØŽý€€€w†›º‰ßjú™s‰8]“—0ˆuO:• ‡­?â“"‡/‘¹†±‘‡¨Žvƒ&€€wšÝ‘×j€˜žÄ]–X†Nº”+ŽH?m’@N.ÄÊŒô†eŒ¤Ç)ƒ;€€v³šE™ëjK˜˜ƒ\Ý•®–ËNs“a• ?‘e“Ö.cû“Ò0Œ‘=ÕŒƒE€€vk™Ö¢+j— {\‹•'ž\N’ÌœD>ÒÄ›.'K™ðŽÍ’FØ‹RƒF€€n­9a“bª]c’U:§·eƒGi¥;gW8M£h÷'6¢j*¤i§˜Ónb€€mƒ¬i?aº©jTý¦FkáG@£ m*87¡`nS'? 1oq¢-nŠ—-si€€mªp³a9§“qsT˜¤´r7FÞ¢s7ퟹsº'žrt.’ s˜• x0€€l¡¨êx`¯¦xSSý£,xœFj zxï7‰ž3yA&ÝœÜyl—ž2xõ”0|c€€l(§l`8¤¯PS¡Ù+EãŸ&71œÐ~ô&›p~ò’œ†~ã’耀€k½¦‡†ò_Ù£¥†wS% Ç…äE…ž …P6Ø›«„å&oš(„Õ’›„¸‘Æ€€€kd¥·Ž}_‘¢Ò¯Rߟ猲E:‹»6†š¼‹&;™%‹J¥™¨‰¡Û€€€k$¥–_T¢&”õRœŸ3“ŸDóœ_’Y6@™ô‘³%é˜a‘¼‚˜­Œƒ'€€€jð¤¡ã_V¡¤œ¨R™ž˜š÷DØ›¢™V63™˜Ï%ü—j–窗©Œž Š€€€a³¸|`‰Uôµ|bRI¡²de`ˆ"m$gîsinøji]·p¹lÑFÇrEo,Ïs&pÝ +v*q¿ d%jÑ­KfŠl…šŽh¿n,†èjÒoËrFlÏq`\¨n±rëEÉpItS+èpñu] mthuk½Ia•u§«†d vN™f}vó…sh³w¥pøjÒx\[lÐyDÊnpy¯+nÙz +érÜz-»w_K€]©¸aõ€—CdlȃîfÁo—iiZRkMCÏl¾)*Blä~ívq³~†¹Ì]U‹¨ `‰Ü•²b¦ˆµ‚ie ‡—nRgb†ŽY5i…§Bçk9„Í)‰k„rY‚?¸q[À•³¦Ô^’“»”pa-‘µ1c¢¶m-fÔX·\Zy c¥Ì]Vž“j_õšº€1bp—Þl=dÞ•1Wjg’ÀAqh»¯(`hÊ|sY…¶ŽY«¥\b§|’œ^þ£¾_av knc眙V­f,™@ÖgÉ—''ìfâ•"Ds¸„ê¶ +XÔµ¬¤~[µ±?’^D¬¥~º`±¨!jÏc¤Ve` ~@Mfðž'neÈ™_t„̳7nì_G¢™pOb1‘q§dé~hrögwj´t?iíUéulM?¼v¤nw&wZoü2{ q±Âl,i«¡{mÏkŒoPmP}kp½nÿiÃr pŸUsxr2>øt sš%Wutxáyruɰ1iµsôŸÍk~tߎ{m u¸{ön­vŒhzp0w`Síq¡x.=þrÉxÜ$‡ræy&™yëzF®’g‚~ž&if~-ŒÚk!~.z•lÇ~)g8ni~0RÙoî~;=q~<#Òpá~[zS~+­eŸˆGœ³g˜‡‹‹lii†ºy.k …áflÑ…Q×nl„gøoŒ÷nÍp,‹\½qEŠUIrL‰64ÛròˆcïqˈK€€žmk€™UÜH‚ûH;ŽÊ‚¡9„†‚V)0Œ¾‚7vd‚hà‰'€—€€m¬’O‹'aõÕŠ¡UTE‰äG³¿‰9Œvˆv(Ï‹ˆQu‹ãˆ‡ß€¯€€mB‘‹“ +a±’5UŽy‘GiŒÓ±8¼‹tŽÓ(pŠžŠÇŒ †Ñ€¾€€lïø›a_}™øT¹Ô˜_GŒ –±8rб•Ñ(9‰Å•'ü‰ÉŽ0'†€È€€eb¦W[°Z¤^Mð¢#`e@« [b1òŸdh çŸeŠ û¡»e”mÒ€€d³¤Ìc'Y¦¢ŽdñM“ mf°@lž{hV1Òœÿi¿ óœÕjŠ Ožúiý‹ûrÌ€€d+¢èjuY  ¸k¸Mž”lñ?øœšn1›o КÁo• }œloŠ{w¢€€c¡q«XkžârzLhœÉsã™?yì0´—©z' M—-z1 Ž˜z*‡Ñœ€€bž,€VWqœ€aKu™ø€H>|—ó€0U–Nú %•¢ø •–€†´€€€b&-‡¿W›‡yK$˜ð†ø>(–܆f/ú•2†æ”m†D ¬”t… …΀€€aÕœ^+VÌšJŽ›JÓ˜¾=Ø•ýŒÛ/®”DŒv‹“~Œ¯ ‰“%ˆz…!€€€a•›Ë–ÍV¿™®–$JÅ—l”ï=½•(“¬/«“J“g±’[‘ï ¿‘숟„œ€€€Y#±­ZdN¯R\Bd­^ª5œ«`ž',©ãb#“«abhE©¶cZˆçqý€€Xp°ga}Mº­âcB#«jd¹5©.f:':§½g`ê¨ÏgpÒ¦¿hQ‡ v²€€X®’hhMJ¬ iAЩ‰j´58§8kÎ'¥¬lš +¦sl|9£ómx†gzÝ€€W®¬§o:Lߪ&oýAW§¨p¹4ç¥Uqm&ߣ¼qì +¤Nq«„¡\rü…A~Š€€WRªývLЍ‚vŠA¥ÿvê4Š£¦w3&º¡õwm ¢]w)Ÿxá„>€€€Vÿ©­}#LP§*}J@Õ¤}N4^¢7}?&’ t}3 —}ÿœï~ƒ^€€€Vº¨ „-L)¦„@¹£uƒÇ4A¡ƒl&tŸ4ƒGŸ-ƒ‡>›!‚z‚­€€€V…§Ò‹CL¥2Šý@ª¢ƒŠg42Ÿþ‰Ï&]ž!‰Êÿž‰6M™«ƒ–‚€€€Vb§4’~L ¤z’"@§¡º‘U4.Ÿ#¤&g/™&œöäj˜pƒ©€€€€µ&aSY²£þcÑ]’6f/`7†hqcLkÞjŸfFW(l®i%A*nbkÏ'ënÚmݹt£nų*]Îda¢q`šf¬Ôc6hæ~Ke®kjºh m(Vj@o.@5küq'lr^cu5sA±NZ±o ª]³pJM`ƒqŒ|Öc&rÎine¬t TûgþuC?>i»vV&Qiew +uµx"¯tWåyžÝ[yÜŒ^ z9{Y`Òz—hc{SÔeê{k>Ng¨{Ä%—fÝ{ëÕv$|š­¾UxƒòFX΃uŒ[ã‚öyÞ^Å‚yfâaŒ‚RÈd¯=veÊX$òd„vƒ€m¬RSvŽf›÷VéŠÌZ‹Àx¸] ŠjeÎ_ä‰(Qçbpˆ +<¾d%‡$bbu†nvÓƒ¦«-QϘ՚êUX–¶‰ÐX‘”ƒwÊ[˜’Ydï^€TQ$aŽ…<)b¸ #ð`ÈŒ¢Fwƒ‘ªPP„£6šT C‰ +WZ7w Zdš;d7]T—€Px_ñ•;œaŠ“V#Ž_l‘ì&wLƒ{©ÁO˜­u™’S4© ˆxVl¥¹vyYp¡øc°\^ž™P^ú›Å;(`š#"^E– wwƒj¨hÛYI˜cj©\¯‡Ïlk_æv%nbðceoÊeÜOq_h§:"r¯k* èrñlÌL}Ïnó¦eˆcw—4g¥e䆽išh1u-kvjcb€mBl}N³nñn9tp>pE [pqL.~sǤÞbˆmŽ•dÙo…7fûpxs¸hÿqÔa8jïs&M–l¸ti8mýu|m.uù~-xe£4_×wˆ“ÕbPx0ƒ–d”xÇr_f¸yQ_þhÍyÜLŒjªzc7«kæzÏújzáý~T|f¡¨]}’``]‚-b|&pþd¸€â^èfဤK—hÔ€w6èj€Kkht€ê~uÔ c[‹{‘+^BŠ– `¸‰’oéc ˆƒ]æe@‡‚JÉg5†£6ChX…øîf«…ÚÙ~‘€“Ÿ_Yù•t2\¼“Ì€_>‘ûoa›$]câŽoJeÜŒó5¿få‹áe3‹ŒÌ~¨€ŠžX»Ÿas[ˆœ÷Y^ š[nJ`l—¿\Zb¸•aIhd¹“i57e²’7:d6Á~º€‚žWØ©6ŽêZ¥¦ ~Ã]#¢§m²_{ŸN[ÐaÄœXHõcš4Ãd¢˜åËc “x¸~É€|›6p²X÷ŒÕqÌ\`}grñ_l¼tbŒZáuDedGÁvgh2òwhj`^wÍkZ€r™ám‡b‹£nîe|1pAgik£qŒi¡YårÑk¾Fætmº28tõo`ÒtÉoÜ€vȘ…j¡l Š?l@mÇ{m½oUj…o&pÆXîpƒr(FqÉst1™r¥t|cr&t“€zâ—hu™ˆÁiËv~yƒkgwFi:lìwùW¾nlx£EoÂyA0Çp‰y·ÊoìyŒ€~q• eƇgg¦Ýy•lÓ*ŸzGn@ˆ{…mö€zŒsjµ~½t lyp{tãn`åu»o¢P2vq>w]r]* wísE=yrË€}µŠÕp“s²}kq¨tÀo)r¡u­_èsv‡OOtzwK=guOwû)Žu½xivìwð€€‰“nk|®|Po™}n p©}W^¸q¥}zN]rž}š<Šs}}º(ÝsÆ}áu%}ž€€ˆ‰l¤…¶{Gmã…zmnÿ… ]Çp „‚Mqƒÿ;ãqÛƒ™([qÿƒeZs¡‚ú€€‡²k,ŽºzulyÞlAmœŒÃ]n«‹‘LÆo°Š{;Hp~‰¦'úpp‰i.rY‡p€€‡ j—¹yÍkX–Dk•l|”\]m‰’©L#nŽ‘:ªo[ö'€o'ìqPŠ%€€†—i$ ³yOjž´k +kžœQ[Ðl¡™ÞK§m—Ò:En_–®'n •e§p‘‰è€€×‹X]uXX[—gÆZ^¡Xì}awHÁ¸d7‚'fq"уgø焤g߀ys€Ë~¶`âth~Êc_fÔ~íeµXgçH `iò6pÊk¹"g€„lÉßélš€}º| i]s9|Vk)eÍ|—lØW|ÜnfG2}-oØ5¾}–q!æ~q¶Å†q›€€~˜y¦qÊrz r÷d–zhtV.z»t÷F[{ uÓ5{‡vˆ!t{Ôvв}pw €€}€w‰zKpùx zÜcŒxy{IU,xÚ{™E´y?{á4‹y©|!yÀ| ª{¡|–€€|uׂÞp,vk‚ßbÍvá‚­T_wF‚\Dåw¬‚3òxß ŸwãÕƒz\€€{Ëtq‹jofuŠÞb u‰ŠS¥uñ‰(D4vXˆ]3\v ‡Ù Jv;ˆrxØ…U€€{1sR“ðnÎsû’àasts‘StÕC£u9ŽÌ2ËuzŽ+ÜtàŽ cwÎ…«€€z¾rxœ|nWs'šý`ós›™R“sò—C5tI•2ttz•s¶’Ö,w +…†€€uNŠ·WÚi€‰ûZð\²‰|]ÞN¤‰'`›?4ˆþc-ó‰Je)ŠùeóõŠg€|_tXˆ_çh³‡™bS[è‡.džMø†ÙfÅ>©†«h¹-ކâjKOˆ0j»,‡lkú€ƒsj…‘gçg¬…>i³[ „ékfM#„¡lù=ø„xnd-„¡o}…™o N…q6€€rpƒ?oßf¡ƒqYö‚Çr8LJ‚Œs>=4‚pt#,m‚ŽtÊœƒ6t²]ƒ +vÍ€€q}Bwàe¹x‘Y€êy"K]€·y˜<™€“yü+耩zBH€ÿznD{À€€p¦òdï€#XRU€'Jµ!€ <~øð+³~éå3~óè½ø€€oö~9ˆ da~:‡ÆWÏ~ ‡=J+}ʆ”;r}›† +)}}…Ô÷}*†–~vÀ€€oi}&$c×}/rWE}ŽgIª|µ<:õ||Œ`*¤|QŒ<{´‹[Ÿ}jÆ€€ný|S˜Kcj|`—BVÓ|,•¿I;{Ö”":—{“*[{I’ÿQzu| ¼€€i”W +]ГHY÷Q®’U\ÅDQ‘•_b5y‘%a°$r‘¢cUO”Œc'ˆ iš€~Ôh’#^¨]‘`ýQ !c8CÌQeN5ŽÌg$>h[i‘mgú†"nd€€gQ¶f7\@ŽÌgýPPçi­Ck=4Œ‘l•#âŒÂmn^Ž‚lé„^s§€€f~qm¼[^ŒžnÿOb‹Ép*Be‹q<3슀r #oŠ˜r7‹Ïr‚¼xš€€e¯‹}uLZ–мvN›‰ñvÂAž‰.wP3fˆŸwÈ#ˆ¢wý ‰Sw”N|倀d÷‰â|ðYî‰0}KNˆg}{A ‡Ÿ}2Þ‡}™"Ù†Ì}£ ‡}µ€€€€dZˆˆ„‹YR‡æ„wMh‡ „/@v†TƒÐ2Z…°ƒŠ"€…Xƒ‰3…!ƒG€€€€cÞ‡€ŒEY †ï‹åM/†‹$@?…,Š;2/„g‰°"6„Š僠‡ò€€€€c|†±”X­†!“|LË…M’S?á„O‘1ãƒsn"‚í*Û‚]Š €€€€\àžñUßRBYXŸFÀœ[E9ùšû]¸+‰š}_¾I›Í`¸„œJaƒ£mI€€\œÝ]Q¬›Y_UF7™ôay9•˜Àcr+Q˜e P™e´ߘÝeã‚r1€€[_š…dCPõ™eüEŸ—½g¢9–„i&*ê•ÅjV&–‡jµ•œj䀗w€€Z¶˜@kZP8–çlžDÑ•—mÎ8j”anã*j“Ÿo±Ý”3oÎ.’±p#€{e€€Z –LrO’•s[D0“·t7Æ’|t·*‘«u-”’u!1*uÞ€.€€Ys”·yÈO“}zCC±’.z•7QézÃ)˜zßq-zÌ;ø{Ñ€€€€Xð“kN–’>;CLê#6í—€ì).Ž¥€Î Ž©€ëPŒ€à€€€€Xˆ’\ˆ`N/‘:ˆ;Bçæ‡Ä6ކ‡6(Ü~‡·s‡G+Š£„Ù€€€€X7‘ŽåN r£BÃŽÎ6oÛ(âŒWÂùŒŒ¡r‰T… €€€€P¦ªaTMFb¨˜VÒ;M§ Y=.ì¥ä[i †¥Ù\÷—¨£] `|€q.€€Oƨ”[*EĦÌ]7:¿¥_2.…£Á`÷ [£mb+Ç¥²ble€uø€€O=¦SaïE-¤–cŽ:A¢ëe.¡~fy ¡gVÑ¢ág +šÞiî€z<€€NǤ h§D£¢YiÞ9¤ ¶k-¡ŸIlÀž¿l‘Æ ?l(˜wo+€}ÿ€€NK¢ oqD+ kpN93žÅq-+Lq¤Œœ¥qöÀÙqŽ5–u €€€€M× jv`CÊžÓvð8ä(wU,뛞w‘Xš×wœØ›©w^q“ÚzT€€€€MsŸ}UCƒ}¢8«›Ï}°,·š7}ž&™]}ŒÑ™å}µ°’ ~΀€€€M$ž„YCJœs„q8š¶„2,™™ƒß +˜ƒäª˜wƒ{µ™€{€€€€Lñ)‹C(›”‹†8d™Ð‹,†˜ŠŽ–óНÙ—ˆDÝg€–€€€€©ÎZêS©™­]ÇW|ˆó`†[5wPc,^Ìd¨eºbCPáhe•;ÂiÝh£#%ipjéçygl˧ÂV£^ ˜Yà`þ‡‡\îcÆv _Øfxc€bŸiOÖe"k:ÓfçmÐ"eeØolÈyœqg¥ÜRÌh–GVUjs…ûY§lLt•\Ænb2_»oßN¶b^q9åds!±b±t­yÊvb£ùOSrÝ”zS sÚ„| +X_ê|VEŽb(|¤1­c|å°cD|dQ‚„µ‡Gg{Q*Ðgh{4jz{o€€ŠY ‚|Ò\j‚n¢^òß_eaF O'cgd=e ;*Me$,æh÷;€€‰W™‹O{çZ}ŠžmÅ]‰¼^–_ˆÈNda®‡í<úcK‡B)éc'†ÿ³g°†C€€ˆ\Uö”‚{1Xí“'m[•‘Ž]ì^êM¿`6Ž{<[aÎq)oanI‚fªŠb€€‡ÙTº™zªW½›Ÿl‚Zg™V]^\Ò—ME_•;ú`“Ó) _ï“h$eï‹—€€…0q’S@xjr–Vój¥s³Zx[¥tØ]ÉK^u÷`ç9—wc»%™wùe× ºzÄf€uƒÇmÒ\w7o0_ip„aÎZ¥qÍdsJ‚sfí8át"i$% tÈj¶ w÷jª€yá‚pj]dÝuÒlghXmƒi2Ynîk)I˜p@lÿ8#q^nž$‚q¼o² eu‚oŠ€}€g3m°tpi o7gj¶p¡X•l@qòH½m®s"7}nÌt+$nátË Ns^t³€€ºdrv€sHfswceÜh>x"W`iÝxÁGÏkZyT6¤lxyÓ#ml9z +q›ze€€~ bYr7d9šdÜf­VpgУFôiT˜6j_˜"÷iÊ£ +ßpÇ€€}¼`(ˆ&q^bZ‡ÊddL‡4U®f ††F=g˜…ë5ph“…‚"¤g¤…Š +ËnÏ„C€€} +^‘åp³`ÔöcdbÐŽ»U d”kEŸfŒP4Ôg +‹¥".eØ‹é +³mê‡<€€|‹]W™’p2_¨˜ bÛa¥–JT„cd”aE)då’Ö4xe¾’!Édb‘Q +knd‡ €€xýyîRþmzbV` {YöQ×{°])BG|h`0ÿ}Ab®â~ld#„€édí€y w³v`[Hkõw(^/_wò`ïPÿx¸c…A”y}eæ0tzGgêˆ{hñ›~)i²€|Àv}s c—j°teÔ]üu góOüuêië@¹v¿k¸/Åw}m5wËmÖœ{Ån¹€ïuDpkßisq:m}\ºrOnþOsEp`?ât.qš/!tßr–¦tºrâŸy±t(€€tmWt7hKn°u:[¢oÞvNpçvÞ?joÎ}œ.pR}½áoˆ}˜x<~‚€€r:i3„ùf¡j¾„äZl +„‘Lxm%„"=ºnƒÄ-nnuƒ—˜mˆƒÞšx8‚ƒ€€q’g§FfiCŒ±Yxj–‹ÍKäk°ŠÎ=(l“Š,Ül߉º+kö‰Ì™x:ƒ€€qfq•e„h”ŽX÷ip“"Kejƒ‘ž<½kX€,Šk…_Ðj´Žˆlx‡‚ý€€lÅ‚ÙR{a‚‚ÍUçUH‚ôY,G˃9\=8Öƒ¡_'Ù„xa,ô†»a•ƒ:e®€|k–„ZN`Á]!Tf€_ÐG€UbS8C€¹d'tkfDׂûf_ jb€6j„|Sb#_o|Ëd^Sv}2f|F.}hn7‹}øj'&ê~Škg”‰k?€oz€€imyfiø^Nzk¡RQz…m-EKz÷n˜6¿{hoÎ&L{Ûp¡9|pH€tþ€€hcvÕqÓ]TwrõQ]x%sõDQx¢tÑ6#y u%Èy`võyøuž€y gst yÅ\puxzbPˆvzÕCšv{%5vÿ{d%}w{’×w¹{`€~ €€f®rȳ[Ës½ÛOötkÅC tãŒ4éu9c$÷u/d©uÚ‰€€€€fqI‰š[4rM‰UObsˆ½B‚stˆ4gs»‡‹$rs‰‡›Ktj†Á€€€€e˜p‘†Z¾q(êNëqàÛBrK޳4 r~Ž$/r!Ž6s?Šð€€€€`¦ŒoQ˜V‹íTÜJw‹©Wý=œ‹•Zä/‹×]e)^ú €Žj_)€ii€~p_‰RXþU+‰[»IªˆÞ^U<õˆÄ`¼.¡ˆîbÆɉùcø ¤Š¨cý€n)€€^Ÿ†A`cT-†1b˜H׆d¯Å’§\]2ˆ’D^›$g’ˆ`OØ”ç`™Ô‘ +bi€qø€€RË‘ ^?HÜy`g> +ìbm1؇d9#ä¯e‡›‘¤eŽËgg€v䀀RŽBe@HÈfñ=(Kh1/Œéiá#TjÐJŽ“jŠðl¤€{<€€Q9‹ÈlUGD‹im–ß¡Œ;MÀd¹|ïQœg"lŠUAi{[ X¨k¾H[Šmè4š\óoÚ]Jq$š}Ktâ˜èEE÷RÞ€C2‘S €X«W)€¨º}€å” +:–Šq†J@‰ˆw±Eˆ§hI‰‡ÔW;M“‡E\P­†{2.Q5†!gUʆ’Â}0’õ8”?…e=À’vvùBíÄgnG˜5V¹K»ÖDÜNÔŒ¶1ÃOŒ1T¯‹ËÈ|ý4’36´„¾;ò›vqAB˜†gF –KVlJ?”cD¥MY’ã1‰M^’P÷SÏðÍ|õ8“ƒZ¾Mî…C]aR v[_ýV9f}bŠZ/Udù]ûC=ga/Oh@d±ªiufT€mÒ‘yU™W™ƒÕX»Zþu-[¶^Je^avT£a1dxB€cjgJ.¹d]i·Nf`jÚ€r°šPäaI‚Tmc×s™W¹fPdZÏh¯SV]¥jòAc_ñm-Ñ`nÚ±càoŠ€wbÊL“jë€GPsl§qõTnVb´WRoòR)ZYqx@j\¯rç-] +t8a¸ts€{vŒH®t†~ÅLÛu{p’P­vca`T,wôW~Ô+õVÀ ‡^dX€€‰ˆB[‡ž|~G‡ n—KD†m_žO…ÍO”R~…C>XTÔ„ß+›TL„ÄU]¢„ú€€ˆ¡?ðÿ{²DÊ­mâI0ŽJ_M&ŒóOP•‹Ð=ËRÜŠù+-RGŠÆ*]뉛€€‡ÿ>š{C ˜mVGŠ•õ^†K’“òN O +’E=‚QE‘*áP­‘ß^i@€€ˆaìN zÃdRl±f&V]›h9YìMVj.]‘;¤kÚ`ï'òl˜c©“pëdh€q´†'\ùWyH_‹Zwkcaþ]¶\{dQ`ÓLYfrcÃ:Ìh)fu'Bh‡h”Cnhÿ€vh„nXb`Fw´[[bßj-^ec[\`£gÅKibèj: d¡l &¹d’m™k‡mÅ€z‹‚»T0iivWykBh•Ztm Z]0nºJ?_ pJ9aUq´%ù`Èr½ ¸ixrÏ€~#2PkrˆtªSôsªgAW)t¹XÔZu²I\\Ÿv8L^Kwq%g]ƒx ~i1x:€€ëM!{§s€Pá|f6TG|oWßWV|µH{Yö|ù7²[}C$öZÌ}‰ Ri|~ €€~áJM„´rŽN<„xe[QÊ„WTøƒ°GÀW¥ƒY7Y&ƒ)$¦X‘ƒD ˜YaÒ.ŠY”y@[žtÓ„y€€pÑqsMâer“Q¤XxsÍUUJÑuXÞ;Ív-\ *çwC^Ùx0`§~æbZ€xÚolëUÜc»njYW_oÜ\.Iéq6_!; rjaÐ*RsZdCt d×Î~¤g!€|„m–h§]÷bRjx`‘V6l#cHØmei:&nÝgˆ)šoŸi7Çp}i­à~†l*€¼l5d´f`øfÄhTâhœi÷GÞj6k½9Fk„mM(ðln‚]mnn©ó~eq–€€jãa#nF_¸cfo¤S»edpíFÊgr8£hns"(mhÃsçjÉsÚ~.w€€iÅ^v€^È`vwPRçb–wÿEôd\x7Íe£y'Ùeªyx®hšyg~0{ô€€hÜ[K~«]í]ã~ôR` E6aò 7c+'GbÞ/qf»f$~ú€€h%Y†À]D[»†Qy^ †D _ã…‰6‰a…)&´`a…&eT…D0}þ€Î€€gžW-ŽÆ\ÅZŽ3P÷\^6D"^2Œ"6 _?‹j&g^a‹‰°d8‰ó~5€¸€€dãz MZYÜz¸PøN{ˆT‚A|dWÝ2t}LZÛ!”~€] Ì€ ]x€e€{´cEuÂTßX¨vÁXLýwº[@*x¤]Ø1Èy‚`S!zgb ´|¬b=€jH€~ôañq§\ƒW]rî_Kîta?/uc×0úuæeÐ vxg |yAg€oV€€`°mÕd2VoQf4J°p—h>7q¬iß0r~kYÕr³l? 0vXl €tÑ€€_„j\kèUlm_I¤min¼=,n‹oó/xoOpùKoqˆ þsÐqn€y²€€^vgFs²Tit¤H¾jœut†ª€€€€Xóƒ\L`N«ƒ–OÝC„„S>7 +„šVa(¼…€YV‡‰Z\q‡Õ[¢€i5€~WxNS|M„ÕVŠBy€`Yq6,€ñ\(±^Iñƒ3_C„`n€mñ€€VH{ZZ³LT|]@A{|É_ª5>}_a×'S~c‘k~ûd/Š€¶eV€s$€€U+w¢aõK1x’cý@VyUeä4Xy÷gš&ˆzhæÓzøi/s}Üjo€x €€Tt9iGJ)uRjÎ?Uv/l63bvÐml%âw7nXGw„n^Z{ioã€|r€€S&q,p«ICroq»>„sdr¦2¡tsg%7t=sët‡sÓbyCu߀€€€RQnwx +Hsoçx©=Äpöy1õq–yk$¡q›yŸ¢r&y€xJ{s€€€€Q¦l'tGïm̸=Xn÷±1¨o‰$eoR‰Bp:°\x¢€'€€€€Q%j?†òGol†é<ÜmA†x19mÎ…ó$md…Ûn¤…¸Qxµ‚뀀€€Lï J×C`jN68ÕƒQi,½ÿTDU_VW €‘ÝVö‰Š\4€l­€€K“‰ËQ”B8‰æT‹7µŠWP+ÅŠY¾™‹˜[l 9[Ö†N`߀qŽ€€J……úXgA†KZé6¼†”]<*׆ó_;܇Ô`„ 䈞`¿ƒTeº€vˆ€€I‚T_G@‚ÈaO5«ƒ#c+*ƒd¿ „1e« ˆ„·e€ªjÞ€z뀀H›~ñfM|°np3þ}6oh(q}}p"û}¦pl ~†p‡€vU€€€€Føy1t]=•z-u3\zËu§'æ{vrzçv +Ô|6vl€{G€€€€FOvÐ{l<ëx{Ð2½x¼{ø']xí|úx„{û +mzo|­€x€€€€EÓtÛ‚¼<‡vD‚à2ow ‚Ÿ':w9‚K$vr‚[ +Îxµ‚€€€€€€@™™EH«7²˜­Kå-£˜”NÔ!ª™QQ;yœ2RSR™¾T`„²_Š€p €€?7•¼O6T•ŽQÙ,,•™Tb K–@Vfn˜¡W/ •Y?®d@€u€€>A’Ux5:’Wá+’>Z:’×[  ”Ã\ÒÏ^.€i#€yt€€=oŽ}[ý4PŽŸ]ö*ŽÕ_©gd`èÿ×a*ªc:€nV€}X€€<š‹bš3t‹id&)D‹­et™Œ"fK§fg™‰Åh‡€t€€€€;ˇòi]2¦ˆ‡j(ˆåkk‰Bkñ?‰¤kÖ¦‡n0€y;€€€€;…)p)1ô…þpï'ø†wqy†¿q´熮q†–„ÅtS€}˜€€€€:|‚»w +1]ƒÏw|'v„ew®.„—w¨£„Iw’nƒz+€€€€€€: €ª~'0çö~O' ‚¬~1ã‚Ì~‘‚\~.‰ˆ~ÿ€€€€€€ÿÿÿÿÿÿmft2 $ÚiÙ +6 … Ç ÿ1^‹·â 2Wy˜µÒï%Y ‡!²"Ú#ÿ%#&D'f(†)§*Ç+è-.(/H0i1‰2¦3Â4Þ5û7859Q:m;‰<¥=Â>Þ?øAB)CBD\EuFG©HÃIÝJ÷LM,NCOYPoQ†RœS²TÉUßVöX Y#Z:[Q\f]x^Š_›`­a¾bÏcàdñfgh#i3jBkRl^mgnqozpƒqŒr”sœt£uªv±w·x½yÃzÈ{Í|Î}Í~ÌË€Éǂф¿…»†·‡³ˆ®‰©Š¤‹žŒ˜‘ކ{p‘d’X“L”@•3–&—˜ ˜ÿ™òšä›ÖœÈ»ž­ŸŸ Ž¡|¢j£W¤E¥3¦ §§ü¨ê©×ªÅ«³¬¡­®}¯k°Y±G²6³$´µµí¶Ú·È¸µ¹£º»~¼k½Y¾G¿5À"ÁÁþÂìÃÚÄÇŵƣǑÈ~ÉlÊYËDÌ.ÍÎÎëÏÕоѧÒÓyÔaÕIÖ1×ØØæÙÍÚ²Û˜Ü}ÝbÞGß,ààôáØâ»ãžä{åWæ3ççèèÁéšêqëHììðíÃî–ïvðUñ3òòêóÃôœõsöI÷÷óøÆù•úaû)ûëü§ý\þ þ´ÿZÿÿè§,„¿ç +    üóæØÌÖÞááßÛÖ Ñ!Ë"Ä#¾$¸%³&®'ª(¦)¢* +ž,-š.•/‘01‰2†3ƒ45678€9‚:;~<|=|>|?}@A‚B…C‰DE’F˜GšH›IJŸK£L¦MªN¯O´PºQÀRÇSÎTÕU×VÙWÛXÞYàZã[ç\ê]í^ñ_õ`øaücdeeÿfügúhøiõjókðlîmënèoåpáqÞrÚsÖtÍuÃv¹w¯x¥y›z{…|z}o~dX€MA‚5ƒ)„……þ†í‡ÛˆÊ‰¸Š¦‹•ŒƒqŽ`N=‘,’“ +“ú”é•Ù–É—º˜§™“š€›mœZHž6Ÿ% ¡¡õ¢æ£Ø¤Ê¥½¦±§¦¨›©‘ª‡«¬w­o®g¯`°Z±T²O³L´IµF¶E·D¸E¹FºH»J¼N½R¾W¿]ÀcÁjÂrÃ{ĄŊÆÇ–Èɥʭ˶̿ÍÈÎÒÏÜÐæÑñÒûÔÕÖ×*Ø7ÙDÚQÛ^ÜkÝyކߔàœá¢â¨ã­ä²å¶æºç½èÀéÃêÔëåìõîïð ñ,ò8óCôNõYöc÷jønùoúlûdüVýDþ/ÿÿÿØhÆ 2 +R e r xzzzyuph^RE7)4=@?:4 ,!#"#$$ù%î&ã'Ø(Ì)Á*¶+«,Ÿ-“.‡/|0p1d2Y3M4A566+7!89 ::ö;í<ã=Û>Ó?Ë@ÄA½B·C²D¬E¦F¡GœH—I”JKŽL‹MŠN‰OˆPˆQ‰RˆSˆTˆUˆV‰WŠX‹YZ[‘\“]–^˜_›`aŸb c¡d£e¤f¦g§h¨i©jªkªl«m«n«o«p©q¨r¥s£t uv™w•x‘yŒz‡{‚||}v~oi€aZ‚QƒH„>…5†+‡!ˆ‰ ŠŠ÷‹íŒâØŽÍù‘¯’¥“œ”’•‰–€—x˜p™jšc›^œYUžRŸP O¡O¢P£R¤U¥Y¦_§f¨n©xª‚«Ž¬œ­«®»¯Ì°ß±ó³ ´ µ8¶Q·l¸‡¹¤ºÂ»á½¾!¿CÀeÁ‡ÂªÃÎÄñÆÇ9È^ɂʦËÊÌíÎÏ2ÐTÑtÒ”Ó²ÔÏÕëרÙ6ÚLÛaÜt݇ޘߧà³á¾âÇãÍäÑåÒæÐçÌèÄéºê¬ë›ì‡íoîXï\ð[ñVòLó=ô*õõööÖ÷³øùbú/úôû±üfýý³þMþáÿqÿÿÙ T– ¡ +¤ Ÿ “ ‚p_L7! ðÖ»Ÿƒ}tfUA, ê!Ó"½#¦$%z&d'N(9)%**ý+ê,×-Ä.±/ž0Œ1y2g3U4D526"788ñ9â:Ó;Ä<µ=¦>˜?Š@}AoBbCUDIE~% ô€Û‚¨ƒ„r…W†;‡ ˆˆê‰Ïг‹˜Œ}bŽG-ø‘Þ’Ä“ª”‘•x–`—G˜/™ššê›Ôœ¿ªž–Ÿƒ q¡_¢O£?¤0¥"¦§§ý¨ó©êªâ«Û¬Õ­Ð®Ë¯Ç°Ä±Â²Á³Á´ÂµÅ¶È·Í¸Ó¹Ûºã»í¼ø¾¿À Á0Â@ÃRÄfÅzÆÇ¦È¾ÉÖÊñÌ Í*ÎGÏcЀџҿÓàÕÖ'×LØsÙ›ÚÄÛïÝÞFßsà¡áÏãäM噿çè6é†êØì+í€î×ð1ñòïôMõª÷øZù«úöü:ý{þ»ÿÿÿ€€æOÎXÍ™¨~Í´Ú™~yœ£~eƒLÆ~…j…þ~ÀQ¿€c=9€üÅ~|‹4äµ~c‰lÌ@~]‡Ì³š~n†fšØ~˜…C‚~Ù„OiZ/ƒgP®¯‚¡8€væú¼}6–qâû}0“’ÊË}>ϲ:}iŽ^™“}¬Œ,€ï~Š"hN~uˆOÁ †7A胬øã|.¡·áA|3¿É3|M™ð°Â|…–W˜E|ß“Ë}OógV}ÑŒµNï~|‰M6‡g…\÷7{c­ߥ{f§ëǪ{‡£ +¯`{Éži–ø|+™ø~²|¯•·fn}C‘AN.}ýŒ{5å~ô†ïõ¼zʸUÞ/zDzÆCz䬮{,¦a•Ü{™ Ú}¤|$›Ye•|È•¨M‚}‘5[~‘ˆ_ôwzRêÜìzF¼2Å z]µ +¬ùz§®;”é{§›|Ù{¶ èdØ|`™ÝLí}5’P4è~=‰§ócy÷ÏÛØyãÆ@Ãúyò½ä«÷z:µì”z¸®$| {[¦@dH|åLo|ê”ã4‰}÷ŠÅòuy´ÚZÚëy—Ð2ÃyŸÆ”«yã½j“;zd´j{w{ «@cÂ{Ì¡–L |¯—34=}¾‹¶îSˆÛ~6׆‡Ä}ÂÀŸ†Ã}p©Œ…æ}U’R…*}u{„†}Æcăñ~5Lƒx~é5’ƒ(€ì=‡}ˆËÖ†p‡@¿k…ƒ…ã¨c„»„Á‘„ƒßyÔƒ”ƒ-bœƒ‚K’‚Â4Ø‚Áêz†G“eÔt…MÚ½ü„oŽs§ ƒÄŒXíƒ9Šwxʂʈ½a¶‚i‡JÍ‚&…L43‚ƒoèÛ…OþÒà„_št¼zƒŽ—¥«‚ç“莴‚r‘ w»‚ŽA`ÖÇ‹dJ—ˆh3¢‹…ç\„‹¨ Ñlƒ¤»‚ÔŸº¤[‚7›”€Â—•vºx“»`9²Iu‹e3$†{æƒñ³KЃ­º¹Í‚:¨X£2££-Œ{6ž uÈ€î™_J€¾“ÛH䀯Ž:2¹€Á‡ÏäÕƒs½øÎú‚‡·V¸µ¼°â¢/&ª¨‹Ÿ€Ä¤Šu€ƒžU^§€T—ÑHi€SÙ2`€rˆûãփȥ΂$Àâ·ÆW¹S¡J€¿±úŠÐ€aª»tk€.£\^)€›•H€“;2€0‰þソÓTÍ7ÖÊY¶úÁš ˆ€n¹Š#€°¢sÚâ¨]·ÆžýG«ЕV1ÜûŠ×Þ‘â|°Èîñ|c³±Ž|:ž;Œh|GˆŠÞ|rʼni} +]‡ü}¨G{†™~“2Q…9ñÜ*´†—Ç”ŽÁ…R²’Œô„<6‹Wƒ[‡Ž‰ä‚¶qÒˆˆ‚=\+‡3ØF¹…é¢1Ë„¢Ú£Ž•Æ9¨ŽW±r‹ÝŒ>œŠWŠp†xˆøˆÙpЇµ‡h[H†w…üF…F„Ÿ1T„ƒ4ÙBŽ›š—ÄØŒ¿—l°‹”kšÈ‰‚‘¤…Rˆ9oÙ‡Œ¨Zƒ…ØŠ&Eo„º‡0샠„¯×îᤔÇŒ  ®ºŠ[œ›™ˆÞ˜ä„:‡•Onð†k‘ÕYÎ…JŽ4Dè„=Š[0‘ƒ5† ÖµK®œÂ\‹w©­™‰Ê¤Ä˜‚ˆR ƒL‡›~n…á–âY+„Î’DsƒÐŒÿ0E‚Ú‡DÕ§ŒÐ¸£Á\Šÿ²°¬¡‰Q¬Ú—›‡Ý§*‚††›¡Šmw…z›ÐX¡„b•ÐDƒsl0‚ˆVÔÂŒj¦À†Š»²«Ïˆñ´Ô–ч{®Ά=§[lã…) ‚X6„™NCÁƒ'‘œ/Ñ‚N‰AԌ̩¿ÕŠMÄ «ˆ£¼¥–'‡-´¾7…ñ¬Þlg„à¤ÕWÔƒÙœmCx‚ô“…/§‚ŠÎO›{€º¢˜Y{Q¦ï•¬{F“ +“'{s~èÆ{Új¨Žu|wVˆŒ"}9B–‰Â~P/B‡BâÌš„Ò¹—<ƒ¾¦”—‚Õ’4’ ‚$~Ó­iÚ˜cUÆ‹Y1Aü‰7.zËB™Ž!¸D–EŒ.¤ù“ŠZ‘.‘7ˆÕ} Žú‡}iŒÑ†JUŠ¥…Atˆp„ +.¥†‚úÊ!˜—Ž·•c”¹£Ë’É’WŒ|Ž-Qh Œ‹)TX‰ùˆù@ò‡Û†Á.e…Ÿ„^Èÿ—f ö¶”­D¢¯’™¿Žú½–i{ ‰“3gQ‹S¾‰mŒÍ@Ї]‰a..…4…¡Çì–Øª`´þ”"¥×¡®‘’¡pŽ 91zL ™f—Šø”ÎS6ˆðt@0†ï‹Ó-ÿ„؆ÁÆû–d³¿´ “®®V ×‘©AŽÈ£ÑyžŒ¡ž§f +Š“™cRƈ‚“â?熎 -Ø„Œ‡»Æ.–½³e“N¶Ä !À°|Œ’ŽiªDxþŒF¤e‰ŠDºRkˆ6—?ª†A -¸„LˆÅ…•¯Æq²Í’ü¿Ÿ‰r·Æ‹þްwx{‹û©(e ‰þ¡²R‡ý™ì?p†‘Â-Ÿ„‰@¿ ¤‡z­¬É úzš|z–ˆšzØur–Þ{Vb´“¥| P*[|é=áŒî~ ,j‰;Ó½¢£œƒp«âŸò‚|™Îœsµ‡n™%tÅ•ï€Òb +’Ç€®O‰€¦=nŒ5€Ü,Iˆ—Y¼ƒ¢©Œ6ªÜŸŠn˜ì›…ˆÏ†Œ˜A‡usó•†PaR’…PNóŽÙ„[= +‹ƒ…,,ˆ‚Ä»‚¡Ý”ì©ÐžD’[—ÙšÌù…•—~Âs”d‹Í`˜‘T‰æNfŽ4‡ú<²Šû†,‡„„º¥¡è鎚e–çš!—4„¡–Ú”&r<“©‘?_橎kMᔋ}›Ù¹Þ”V˜j³‚)•0¬Jp’ ¥‰^*ž¤L™Œ —;Ÿ‰+Å…ôˆ‰°®(z&ŸŠ©Íz ŽŽ¥~z}€¡HzjlJ!zø[˜ð{ÀJ ” |±9j}ÿ)Ћį\­R‚fžÔ¨Ù‚ޤ„€Ð|þ P€Zk¿œ2€"Z}˜€I“Ê€69!K€“)àŠk9®w¬kŠŸž§÷ˆ÷R£‡{|GŸs†Gk›]…HYé—E„sI“ ƒ®8䎛ƒ)î‰Ï‚‘­´«›’Ï.§4jŒs¢ãŽ2{{ž±Œ5j\š£ŠpYT–’ˆÁH°’`‡8¯þ…n)ú‰GƒÉ¬íªýšõœj¦–—Ô‹ª¢I”çz´ž’,i°™ùƒXÍ•òŒøHT‘ÅŠV8‚q‡¥*ˆÑ„à¬Dªb£7›É¥ýŸR‹ ¡°›™z„˜i#™f”…XV•Q‘H‘0k8ZŒð‰¯* ˆn…Ô«ž©ï«^›D¥€¦¨ŠŽ¡-¢y¯h³˜ï™TWý”æ”åGÅ»M8>Œˆ‹‡*ˆ†¥«©—³hšÃ¥­ÚŠ Ê¨ly1œž£hT˜“ÛW°”•˜|G“j’ì8*Œ5%*‡Ø‡Tªƒ©L»dšW¤É´è‰´ u®…xÕœM¨Ah˜F¢ Wx”K›µGn/•38ŒŽ‚*‡£‡ã¢á·üyÇ“²Ìy£ƒ<­ªy¸su¨–zc™£}z¬S¿žH{ƒDF˜ß|†5J“}ç'ŒÙ¶¡ä·-’w±è€°‚Ö¬¼€ s§£¨c+¢Œ‡SX]žCñ—úÖ5,’D€U'¼Œ¡?¶F‰B‘Û± ‡°‚O«Ø†Mr„¦Â…9b¨¡®„\R뜆ƒ®C¥—*ƒ5‘ƒ‚¨'ò‹p‚b ·µræ‘D°>Ž¥©«Œ•qì¥òŠÄb  ç‰-R›Æ‡±C`–q†:5Ù„Ú(!ŠÞƒˆ ,´Ç˜‡·¯’•”ªi’Ùq[¥LOa¦ 3éR#›‹›C'•Ή@4øC†ä(HŠa„Ÿ›´B %7¯œy€£©Ö™p•¼aDŸ¤’‰QÕš~UBù•8Œ4í¿ˆÁ(i‰÷…nŸ.³º§°Ö®z£@€I©LŸpœ¤5šò`ýŸ%–îQ¡š’ÛBÖ”«Žª4åFŠf(…‰ †/ž·³\¯® ©Í€¨Ò¤´p^£±ŸÍ`ž¥šúQq™š–B¼”T‘4åŽî‹Ú(›‰Y†ÏžM³ +¶g<­®°4˨sª0p(£W¤d`œžPž´Q[™H˜ïB´”“ 4ꎶ(­‰ ‡Q•ìÁýy‡2»òyPx‘µøybiü¯ÿyÂ[g©ëzhL죡{O>ë|b1…–}Ó%tŽo©•<Á&€Ø†Ñ»ùxEµ\i®¯[¨ó~üL¦¢§,>½œ€1“•€%Ü”ÙÀ2ˆ†kº3†‹wë´+…;iM®"„AZ¼¨ƒ„Lb¡¼‚ú>š›-‚‰1¥”@‚K&6Œæ‚8”‘¿P.†¹Tw‚³O‹hí­<‰mZh§%ˆL% å†µ>~š_…t1¸“„„S&„ŒHƒN”B¾“–H…Ƹ’“yw3²Šêh™¬zŽ“Z%¦XŒeKø 'ŠT>k™¬ˆ<1Ë’â†3&Nj„B“ä½ý]…{·ð™Üvõ±á–›hf«Ò“’Yö¥µ¥KÖŸ}Á>_™ ŠÓ1Ý’U‡æ&þ‹R…“‰½ƒ¤N…:·h vıQœh?«A˜KYØ¥/”¢KÄžüñ>X˜ƒ-1ì‘܉e',Šõ…Æ“M½«…¶å¦ +v§°Í¡Fh,ª¿œ¿Yɤ³˜RKºž‘“Õ>U˜D1ú‘qН'QŠ©†Z“¼¢±µ„ò¶t«¿vŸ°Q¦h'ª9 ¹Y̤,›ŽKÇž–W>n—º‘2‘0‹Æ'oŠn†Ñ‰•Ì$yp{õÅ6y(nf¾hy/`ì·ŽyS°xzND~Ù}46Ëé~}ð²y¹„ÏÚ-z4ƒÊÃ*z³‚è«Ï{;‚2”4{Ъ|ˆ|vBdá}.€ãMU~€Ÿ6:€hîÌxYØjxåÚÁŸyx‹Òª^zŠ’êzɈ}{d{‹‡cä|_…†L}}[ƒþ5L~›‚?íw3›1Ö®wÈ—ï¿øxh”بày‘ò‘˜yáTzAz»ŒÃbò{§ŠK¸|¹‡G4­~ ƒýëivG¦UÕvÞ¢¾rw…Þ§wxA™ìMy–y(z’rb {Ž–K|,Šo4$}…êu“±oÓ¿v'¬½vͦצ7w¡Ï/xnœæxyi—ýa9z|’ëJ_{²m3¯}‡èÚu¼{Òu•¶»ÿv7¯º¥$vû©”Ž=wä£wQxês`z— IÔ{K33M|ˆhççtœÇqѰu'¿î»u¸{¤7v‚±+`wq©øv›xƒ¢®_òyªšüI^zö’»2ü|t‰Œç'tUÒAÐötÙÉ›ºLujÀÿ£nv$¸€Œ¢w°uôx+§ˆ_jy[žŽHùz±”ú2¼|6Šâ™„x̓…xx¸ƒxá¢8‚«ydŒ ‚\z u¼‚zÙ_€ð{ÃIUâ|ì3|‚~uàႎ‚©Ì\‚æ·³?¡(e€ÁŠé+€kt  €9^s€þ€Hu€2àZ€IßQAAÊÁ€Ù‹nµ–€‚‰¸ŸÅ€Mˆ>‰²€.†ðs”€)…¾]€5„ŠGº€dƒX2V€¿‚Ý¿€(—ÅÉ%Ç”ô´|’Bž\P¹ˆtKnr‡\‹1\·ˆãGņt1Ý€4ƒ¬ÜDB¢Adz~âž{²š~ šÒ~€—J‡A~‚“Ýq‰~ª“[ï~à F{9‰m1tº…0Úú~¬¾Æt~1¨±c}î£X›ã}Ӟņ=}ßšHpž~ •Ð[9~V‘6Eô~ÂŒ;1Q†ŽÙè~·2Ål}¤±~°\}^«Çšä}C¦!…^}Z ‘oæ}’šòZž}á•E~\ŽÑ0Ð~ù‡ÃÙ }—Á˜Ä–}:ºâ¯|í´š|Í­M„‘|禛o9}-Ÿ×Z}‡˜ÃE!~‘+0“~¯ˆÎØf}JËîÃî|îÄ'®Å|˜¼5™D|o´;ƒà|ˆ¬Xn¦|Õ¤`Y¬};œDÓ}È“=0c~t‰­ÒïŒëvÙ¿’‹|wW«½Š-wÝ—_ˆþx|‚©‡æyCmцÞz4Y…Þ{FD{„ñ|¡0Z„~kÑu‹”€Á¾dŠ5€<ª£ˆôÑ–Z‡Õ†¯†Òelè…ãgX@„ý{CÌ„,º/îƒn€*Ð&ŠTй½‰‰5©ƒ‡É‡Ê•4†¿†“€›…Ð…ƒkñ„ù„‘Wm„,ƒ¢C+ƒw‚¿/‚ÔÒÎΉB”¥»´‡ø’7¨†Îâ“é…˳v„õ‹´jú„3‰ÂVªƒ|‡ÃB‚Û…¯/9‚Kƒ]͈iž„ºh‡"›4¦É†—ú’²…”Ù~d„1‘Îjƒ…ŽÚUú‚Þ‹ÄB‚Pˆy.ñÓ„ÆÌ[‡¾¨i¹L†z¤6¥´…W  ‘¬„b›í}yƒ•—ßiG‚é“ÎU]‚TœA²Ø‹.³l† Ëf‡3²D¸^…ò­'¤Ç„ΧÿɃڢß|²ƒÊh¤‚s˜ TÙÝ“=AWr~.€‡'Ê †Ç¼·œ…椄c¯Õƒj©¡{ü‚ª£wh ‚2Ti‡–¥A §.V€ÎˆÊ +†uÅÍ·…<¾À£Y„·}Yƒ°%{b‚Q¨ÔgÀ¡hT?™°@ŀᑈ.4€•ˆäû•øuޱʓ²vrŸo‘wŒ”‘wÉy\©xªeþ‹Ëy¸Rˉëzê?Ĉ |k-i†$~`Â|”Á4°Ð’ƒ~Øž„m~“‹¶Žz~rx…Œ¢~ye5ŠÙ~¥R‰~ç?;‡G[-+…t€ ÁY“¢ˆ¯¢‘o‡@{Z†Нw…w–‹°„Dde‰üƒŠQhˆF‚×>Á†”‚6,ô„×ÀE’“‘Ø®|lºœKŽeª‰§Œ}‹ÇvžŠÌŠ c‘‰)ˆbP‡‡†¯>P…ï„ò,Å„Kƒ¿'‘¾›&­t˜˜1›<—•Qˆ‹‹À’‰u¨Š×bň€5P)†íŠv=í…d‡,œƒÒ„b¾'‘¤s¬vŽø «šBŒøœè‡¡‹%™5t׉x•‹b‡ç‘ÜO¦†bŽ=™„ë‰þ,yƒk…޽N˜­®«¥Žx© ™sŒv¤`†ÚФŸ¶t(ˆþ›a…‡s–XO9…é‘l=U„‚Œ5,\ƒ†’¼Ÿ1¶ÙªúޱW˜ÃŒ«µ†-Š9¦sˆˆ– Z`ÿ‡š”NÛ…””Ž=„,Ž.,E‚·p¼ß¿÷ªrƹ†˜.‹À²Û…–‰å¬sˆA¥S`“†ÆžtN†…O—U<áƒóß,2‚•ˆ'µŸ=u2¤cœ(uΓb™7vzñ–ewEp,“£x:^Fáy^LŽz¨;6‹,|D*­ˆ~T´ž)}ü££›}·’®˜'}ŽD•[}Šo~’¤}²]£ò~L +2~j:ÔŠ` *‡e¼¢­š … ‘Ñ— „ €d”bƒÑn²‘¹ƒ)\ó‚ŸK~Œi‚:}‰©»*†Ák²)œ)b¡ª™%–A‹¼{“~ŠmÝ䈜\EŽQ‡-Jý‹±…¼:1‰„J*ƒ†1‚ȱL›K˜ Å˜Q•tוv’â~’»bmû[ ”‹¥J…‹‰89ìˆl†²*y…´„°tš« Ú —°e”Ò™ú}Î’–¡lb€“R[ +ŒüÿJŠwŒ‘9°‡ïˆò*p…J…¯»š.©yŸQ—5¥:Ži”U ó}%‘œ²kÎ ˜uZ“Œ‰”&Iʼný¬9‚‡„Šù*i„ò†¯!™Î±þž½–Ô¬ëÔ“ò§¾|“‘6¢ˆkHޤTZ#Œ.˜Iz‰¥’‡9[‡+ŒÄ*c„ª†Ò®ª™ºvžF–ˆ´T“£®Y|ã¨j׎P¡áYˋݛŽI6‰a• +90†òŽI*^„p‡x§¨ºtÁ—~¤Üu[‡¸¡v w›uvâg9™ÎwæVÄ–yF¡’Ezx6àŽD|*(/‰þ~H¦2§Ä} +–ó£à|χ6 |·wœs|Éfµ˜Ñ} VI•'}xF7‘^~6¨m~È(K‰8Ñ¥¦¿…=–3¢ä„:†ŸƒXvj›|‚¬f—ã‚*UÁ”GÊEÑŒz6xŒ«L(dˆŠ;¤Æ¥Ï[•f¡ü‹ž…±ž>Šuªš™ˆŽeg—‡FU7“}†EqЄÛ6L‹ÿƒ¯(z‡ò‚…¤¥•j”¦¡?’ø„î…¥tç™ãŽqdÈ–JŒJT¹’ÈŠ;E%ˆ6(‹d…ê(‡pƒ«£c¤c” ˜š`„OœÞ—CtN™<”9d<•¦‘7TJ’Ž8DÔŽƒ‹'6ŠÙ‡õ(œ‡„¬¢Ï£å¥–“Š ¡¤ƒÔœV´sϘ¯™ÎcÆ•"•òS푟’ D—ŽŽ5ïŠg‰Ï(©†¦…‰¢N£ˆ­z“Ÿ·¨Àƒ]›ò£õs]˜FŸ+c_”ºšgS˜‘A•D`§–5ÛŠ ‹n(´†[†B¡è£?µH’®Ÿj¯¸‚ö›¡©ÿrø—ò¤>c ”ež‡SWD3_’×5ĉόÊ(¼††Ù™¬²lti‹<­Çtú|©:u­m¾¤³vŒ^° wO¢›`xâ@þ–vzO2Ü‘D|%ö‹·~<™±‹|<Šå¬Ü||J¨B{ômi£±|^VŸ|rOQšc|û@¿•€}£2Ñ[~Œ&<Šã¶˜¡°‰ƒêŠ]«â‚ö{Ò§B‚*l袴]áž >Nó™w@‚”Ÿ€â2ÇŠ€ç&zŠ)˜"¯–‹{‰Éªô‰Û{.¦ZˆblY¡Ç‡]b?†N’˜¡…@G“Ô„2¿ŽÒƒ&¯‰ˆ‚G—˜®Î“‰<ª/ºzœ¥—Ž—kÇ¡Œ–\íœuбN:—äˆá@“!‡2¸Ž.…/&܈þƒ[—®5š†ˆ¾©“—z#¤÷”´kU e‘ô\‡›ÔBMð—5Œ‘?ê’}‰Ø2³ž‡'ˆŠ„K–«­¥¡ðˆZ©žEy¤jš¨jùŸØ—\8›J“™M¸–® ?Í‘æŒj2°ˆº'!ˆ*…–G­F©7ˆ¨ ¤Ìy†£õ YjµŸQ›ñ[õšÂ—™M~–:“8?«‘ƒŽÁ2¯Œ»Š2';‡Ü…•ô¬ü°a‡Ð¨M«)y=£œ¥Ôjqžõ †[¿še›QMZ•Þ–?˜‘4Ç2¯Œy‹l'O‡†L¼Rt¢¶ãt r±„uQdd¬v7Vœ¦wTHë ®x«;¼š˜z*/0”#|$I~0Œ¿»x{‚}¶{Bqð°{;d9« {oVm¥l{ßHÆŸ|…;«™‹}L/R“#~W$nŒdžŒ„ºn‚².´ÿÇq©¯„ c骀šV&¤c€]H”žœ€M;˜˜•€T/p’?€Œ$Í‹€éŒA¹l‰¾~Õ´ˆ5q?®Š†ÚcŽ©…ºU×£n„ÐH_²„;…—·ƒ?/Š‘u‚œ%Šñ‚‹ï¸•¾~‚³*Ž˜pç­²Œ c2¨+ŠÒU”¢‰(H1œã‡˜;v–ô†/¢Æ„ƒ%dŠ_ƒ‹—·ñ—¸~4²”ðp¡­’Kbó§xÉU[¡Þ^Hœ)Šÿ;j–Gˆœ/¶-†<%Ÿ‰äƒö‹E·pžŒ}ó±÷›pi¬o—¾b¿¦à”U0¡L‘VGô›œŽ+;e•¯Š÷/Ȩ‡Ã%Ή„´‹¶ö¥2}ű|¡p?«ñœöb›¦_˜óU Í•GÚ›)‘ ;\•</Ù5‰%õ‰-…RŠÔ¶¦«½}±±¦Óp1«¡Úb…¥ÛœúU ?˜CGÙš¡“;j”ÓŽÞ/ðŽëŠ/&ˆë…Ñ ÆdsötŠÀ4tdgþºu [i³¬uóNÜ­wB‚¦ x6Þ´z+Ê–å{õ"E޶~%Åzùt™¿Oz§h¹zž[g²‘zÛNØ«Ü{^B‹¤Ü|6ã‡},•É~*"×À‡Ä`°t‡¾;€Ágð·ì€ [J±m±Nê¶B‰£¾¥6þœtÖ,`”Í€;#UŒê€ÅÃDˆ7tp½ †ºgƶ҅t[)°P„tN¬©¢ƒ´B…¢·ƒ7›}‚Š,ž“ð‚%#ÀŒ3߀ûÂSޝt[¼*Œ£g°µ×ŠÏ[ ¯V‰-N ¨¦‡¹B‰¡Í†e7/š¤…,Ö“0ƒæ$‹˜‚Ö€ÜÁ”•tK»`’~gªµ [ ®ÂN §Ö‹˜B” ü‰ƒ7J™æ‡u-’Œ…{$h‹ƒª€½Àù›bt@ºº˜#gª´S•[­Î’N©§+5B¤ ZŒd7e™C‰—-3’†Ý$§Š¬„\€ŸÀ~¡rt9º3Œg¯³Â™»[­5–N³¦—’B²Ÿ×Žú7|˜Ê‹y-X‘ˆ$ÚŠU„À§Pt8¹À¢³gº³Dž[-¬²™´Nɦ•rBÏŸ]‘=7š˜c-x‘=‰%Š…eæ·v±shÑUw“tK»†xpu4¥:yHv*Ž¡z$w9wï{xeaO|yªJÏ}={(4¯~»|ÿäµt×~sϳuá~+ºvà}ú£íwÛ}çpxÛ}ôvÚyê~`S{~JI÷|_~–4}û~üâåsM‰ŠÍñtiˆ¸…u†Ä¢}v•…¨Œ+w³„¯u¿xâƒË_dz&‚âI4{•õ3p}L€äá(qü”Ì3s#’¶ÔtF¥ ýuqkŠØv¬‹jt w÷‰s^}yW‡iH€zá…<2ì|¯‚²ß”pèŸzʦr›óµKsA˜ˆŸŒtx•B‰uÄ’s‹w* +]¢x¢‹ÕGÛzCˆ_2z|$„^ÞApªUÉYq?¥×´rn¡ažNs¬ˆpu˜Àr‡vw”|\×xGFy¼‹V2{­…ãÝ+omµÈJp˜¯¥²ïqª As¤©‡teŸGq»uæ™Õ\'w”%FÈyJŽ1É{G‡;ÜRnó¿ºÇvp¹M²q>²¶œ\ry¬†¤s᥎qupžò[šw˜F\xë”1†zóˆfÛ³n¥Ê#ÆÚoÆÂ²±apÝ»›œr³;…êsu«~p`u +£§[v½›wE÷xœ’Æ1Qz¯‰a× rÚs9¯€(tNšÉ@uh…ªdv—pb–wå[3ØyNF€>zõ1~€Þ|ýÕ£}f|™Âr}‹|š®h}³|£™¸}â|Á„ž~|ûoi~m}OZQ~Ñ}²Ef]~71€!~äÔ#{ó‡À×|(†¬í|`…˜R|©„(ƒe}ƒkn\}p‚ÂYq}ñ‚D¸~˜p0‘u€´Òžz²‘t¿Dzïi«`{5n–õ{Œ‹Œ‚.|‰ÔmU|‰ˆ%XŸ}%†fD}ç„‹0/~Ü‚gÑ.y¨›Æ½Ýyê˜Í©þz9•Ý•¢z’ü{-l[{ÀtWÝ|sŠ—C}L‡/Ú~Uƒ÷ÏùxÙ¦¼¬y¢0¨ÒymžB”ƒyØšZ€zd–}kw{’œW-{ÙŽžC|ÈŠI/’}â…aÎýx5°L»³xz«}§×xǦŒ“Žy4¡”'yËœ¦jÁz„—¥V˜{V’mB«|WŒÙ/W}†ŸÎ9w¼ºhºïx´ª§xG®®’¼x¯¨›~ayK¢ŽjzœmVzñ–BR{ú)/&}0‡±Í¯wjÄ^º\w¬½¦¦_wè¶”’xE¯Z}¹xà¨$i‰y¯ ÖU¤zš™·^‹- † Àd€Æµ*®¦€%° œ-‹ª¡‰6¥ v2~ÙŸxcG~Ì™×P¸~Ò”>pÂ,ðQ‡¿í€t¾¡®Õ¸˜›Š1²ˆ‰~¯«_u–~o¤¯bÊ~iòP[~}–ü>2~»,ׇչw®pF©Žæq’—øLrІ‹ÔtsÑŠiunaZ‰vòO‡¥x›=†Pz+¦…|ó¸~Dy•¨,œyê—ŒzC…7Чz®r÷‰J{6`•‡ü{ÝNl†°|š<‰…u}ˆ+~„C~²·zù‚˧Œc‚?•ûŠá¶„,‰…Kr ˆ;€ù_͇€¾M̅ЀŒ<„®€j+Zƒ“€T¶hŒÅŒ¥Û‹9Š”Ã‰È‰6ƒ&ˆp‡éq‡=†¶_†…M4„ÿ„b;»ƒùƒ,+:‚ù×µN‹Ì•&¤×ŠC’ö“»ˆÙÁ‚‡Žp,†dŒh^>…[ŠOL „Rˆ;aƒ^…È+ ‚sƒ6´Z‹ žI£à‰‰›M’Ȉ ˜9-†Û•o`…¶’]”„­ŽáL$ƒ·‹©;‚Ùˆ4+ ‚„m³’Šv§U£ˆ÷£‡‘ÿ‡ŒŸŒ€j†F›|n²…)—j] „)“FK¿ƒ2Žú:Ø‚fŠh*ö¡…|²öаH¢wˆˆ«¤‘T‡¦¹À…Ì¡¦n„±œ‘\€ƒÀ—gK]‚Ò’ :¢‚Œ^*çR†b²ˆ‰®¹!¡úˆ8³ŸÂ†Â­³)…l§mŽ„N¡j\ƒa›0K ‚”Ä:kÄŽ *Ú‡«Z™Ào»œ#—+q +ŒN”ÇrQ{Ò’s¢jëCuYߎv©I‹¶xf8š‰dzs)‡|쪓˜x›q–xç‹“§yX{‘eyÞj:/z„YAŒþ{KH”ŠÂ|,8Hˆ„}B)†5~™©Ã—C,𔨀¾Š²’‚€^z:O€irŽ)óX™Œ åH‰ãâ7þ‡ºù)…€'¨Õ–+‰´™€“ň‡‰¥‘z‡ey[H†Oh§6…YW÷‹*„kGž‰ƒ}7¿‡‚Ž) „ß“§ö•+’K˜›’Ð]ˆ½ŽqxtŽfŒ„gïŒOЦW`ŠYˆÕG5ˆX†ò7ˆ†]„ù) +„U‚ܧ*”ršß—å’˜1ˆ וpw·°’©g<‹£äVЉ­Fχ¼ŠA7Q…Ô‡8) +ƒàƒþ¦“á£S—6‘Ÿã‡ZIœIw ˜f§‹”îVX‰)‘1F~‡5R7(…^‰>) ƒ„÷¥÷“t«¥–ª‘%§l†ÇŽÛ¢òv}Œ«žTf Ц™²UåˆÁ”üF/†Ò 7„ý‹) ƒ/…Ê¥•“#³Þ–<×®Ö†Iއ©juüŒN£Êe¯ŠDž'Uˆb˜sE높™6Û„¹Œ‹) ‚ï†wÍ£ o[¥Ÿµp£€ùœ‹qîq™ssJb4–StÇR‘“#vpCJØx>4hŒqz_&¢ˆá|ä6¡ôw£'žªx€p›}xq<˜`y'a³•ByæR’zËBïŽÝ{Ì4A‹†}&ˈ~€œ™ ÉÄŽjŽiÇš`"pŽ—La”:~ÿQ¢‘$B•öF4в’&ð‡Hû›âŸ²‡Æœ~†·~ê™[…¸oÕ–I„Ô`s“H„Q CƒXB>&‚¤3û‰õû'†¡T›"žÏ´Œá›žù~,˜€ŒHo•sŠ£_ß’k‰P«x‡xAôŒi…Þ3à‰L„9'*†‚‰š…ž—±ŒBšâ•D}—Æ’În~”·T_W‘²ÝPHޏ‹hAµ‹ºˆç3Ɉµ†H'@…˜ƒ—™üyŸ‹ÌšVœn}—2™)mÿ”•Ô^Ý‘’ƒOéŽ.)A|‹,‹¸3´ˆ9ˆ#'S…3„~™Œ§D‹Z™ï£i|Ÿ–ÅŸPm‹“¦›^s¨–äOŽÂ’¢AAŠÅŽG3¢‡Ô‰Ä'b„á…@™8œÄ®ÚŠÿ™Ÿª<|9–n¥@m$“H ^FšõOJa•ÆAŠq‚3‹‡Ž‹!'n„ …ßoƒ·¨~pBv¤qŽh šrôYÚœŠtK˜˜Wv9=Ê“ùx0ƒezN$Š™|Û…«›vÚƒl§‰wCuÊ£‡wËgÉŸ…xxYŠ›qyPKW—DzR=’ï{r0ˆŽj|Ð$Љ±~hªy~y‚æ¦r~)uU¢k}ögMžl}óYš`~K–A~Z=m‘ú~²0‹ˆ3%ˆæÓš©`…ð‚P¥^„ût¯¡_„fÄaƒdX¦™e‚ÏJ¬•T‚M=;‘Õ0ŠŒ¿q%Qˆ6¨vX¤y‹Ãt Š?f1œƒˆÍX7˜ƒ‡qJY”ƒ†%=Y„Ô0ŠŒƒ†%„‡Ÿ‚=ŽŽ§Ã”¹G£É’ƒs¤ŸËKe½›ÍŽWЗ͋òJ“‰Ì<즇£0Œ‹r…l%®‡!ƒ:Ž-§$›û€â£0™s>Ÿ1–+e[›2“2W|—5:IÝ“-<<׊30Šç‡%Ò†¸„צ½£€­¢ÇŸ‘sž¸›Òeš¢—ûW7– ”.I’¬_<¯Ž•Œ†0Š|ˆ˜%î†c„Å“¦rª€j¢r¥Õr¾žY¡?dΚ=œ‡Vú–7—ßIq’D“7<–Ž:ŽŠ0ŒŠ1‰Ô&†…W„»¶Fnªxa±ƒoÚkƬÈq&^é§ïr–Që¢ßt1E“uÿ8§˜ wõ,ô’8z="¢Œ'|Ò„µnvxJ°™vxk««¾w^ͦÍwÇQС³x¸DõœkyÙ8¬–ë{-%‘'|#‹0~S„L´M};wú¯}|ñkhªš|Î^…¥¥|èQ” }/DЛU}ž8¦•â~&-N3~Û#xŠX¯„³(„.w›®\ƒMjù©~‚^-¤‹üQJŸƒ˜D¢šVM8›”ô-o[€ò#͉ž€çƒ­²0‹wC­h‰žjœ¨ˆF]Ì£š‡Qž…çDv™t„Þ8” ƒØ-ŒŽž‚à$ˆÿûƒY±u‘ìv÷¬«æjS§Êå]†¢Ô‹óPËËŠDS˜©ˆ@8ˆ“d†o-¤ø„¡$Rˆz‚胰嘞vº¬–j§+“P]N¢/¢P—*ŽD6˜ ‹h8‡’¿ˆÌ-ºi†/$„ˆ ƒ²‚Þ°iŸvŒ«˜›ái릧˜|] ¡¦• Pnœ ‘ªD—ŽF8z’BŠæ-ό$­‡´„Y‚®°¥‚v…«;¡ ià¦5i]¡™PXœ ”ëD –ýÊ8ƒ‘ÏŒµ-⌛ˆ¦$͇m„áyÀ0nem}ºËo€aεJpÇV +¯€r=JG©\sæ>¸¢áuÉ3ÊœwÔ)¨”íz1 ú‘|Éy¿iuom—¹äuÁaç´3vQV"®GwJ_¨x'>Û¡›yg4šØzË*“Â|q!Œˆ~>y¾>|m¸¹{ÏaÖ²ÿ{µV ­ {éJU¦Ø|R>æ j|ì4(™µ}£*U’¹~‹" ‹£Žy½‚m\·¹a¡±ÉUç«×€¢J<¥±€m>åŸR€X4E˜°€Y*˜‘Ï€~"yŠß€¹xç»õˆím?¶s‡•a€°º†aU¿ªÉ…QJ-¤¥„k>æžYƒ¦4`—É‚ê*Ò‘‚H"ÖŠ8¿xÆ»&Dm-µ™gat¯Ø‹™U´©å‰ãJ"£ÅˆG>ìy†Ã4z–ý…K+Rƒå##‰¬‚ x¨º…•lm$´é“ap¯–U°©%Ž2J £ ‹å>ôœÊ‰¦4“–N‡q+2½…Q#b‰:ƒ]xŽº ›am"´]˜jas®•PU±¨ƒ’6J¢n4>õœ;Œ?4¤•ɉY+VB†‰#•ˆÝƒúx{¹´¡&m'³ê‘a|­þ™ÀU¶§ø•èJ$¡ã’/?›¸Ž‰4´•YŠ÷+mŽè‡‰#¾ˆ“„yÚ¥qðm*ƦsQnIJ+t¤pW uêq釴w0s‰r&x…uB\µyówGm{”y#2­}Š{“ضoÛxÅqkx‰°Ærãy›ätOy’†”u¾z4q"w=zë[ÌxÔ{¯F­zž|”2%|¹}¤ÖïnƒÃ[o¿‚Q¯DqT®š{rÞ5…Wto€×pv€ŠZêwÑ€=Eýy¿ô1­{ûÕ4lÏÁnEŒ ­’oìŠc™q‘ˆÖ„ sC‡unûu +†Zvé„¶EZxøƒ81D{QzÓ¢kG˜}Àm•Ŭ +n½“—Œpr…‚Èr;Žmít!‹œY?v‰DÅxJ†X0éz¼ƒ2ÒXjI£¾ÏlŸvªÈmɛȖToˆ˜#«q_”ŒlôsVöX€uoGD?wµ‰J0œz;„ÁÑPi­—½ËkI© ©¿m¤X•MnÅŸ€¾pªšîl-r²–2WÝtÚ‘CCÏw6Œ0[yφ"Јhï·ì½j¶²w¨ëlh¬¹”qn'¦Þép¡ kxr+›-WUtd•CovÎŽ{0'yu‡SÏþh¼|jS»”¨Hk÷´Ä“»m­­Ç8o˜¦ÍjÞq¸Ÿ¿VÒsý˜gCvv¢/ýy,ˆSËÄzl$¹—zžmò¦½{(o¨“,{¶qT"|Ls jê|ñtßVÖ}«vÐBé~y/š·{˜Ê`x/v‹¸}xàw<¥­yˆwé’'z0x~(zâydj{©zBV|‰{2BN}—|I/9~ç}“Èèv‚€Ý¶åwI€¤9x€*ÇxÌê|öyŸ¿iz‹¦U:{A²|¼ƒ.ã~+sÇdu ‹ µSuቼ¢«v°ˆppw‰‡0{Åx}†hy‡„öTtz©ƒÓA&{ù‚.˜}„5ÅùsÓ•'³ðt°’ò¡Ku޶ŽvwŽ}z¦w{ŒOgx¤Š1S½yá‡÷@©{M….X|ò‚ÒÄÎrÜŸ9²Çs¿œ$ &t¡˜ñu”•¶y§v§’~f:wÝCSy5‹ð@:zºˆU.!|u„FÃÝr©2±×s¥:Ÿ3sá¡ ŒtØœÇxÑuø˜„e‰w>”0RŽx¢®?Þz>Šà-ô| …Ã'q‰³±ro®(žksK¨ø‹Lt?£ŸxufžFdåv½˜ÚRx1“1?yØ*-Î{´†¦Â®q*¼¥°–r ¶ÙÍrܰœŠ¡sƪ'wotí£®d]vL!Q¢wΖS?=y…$-±{n‡½`‚{kR¬Ý‚m?›‰Üo ‰^®pÈv­Œr”cÈxtQrv‹>‡xÝ,³Ø{›¼I€¶u«É€‡všc€_vÚˆK€Fw¶u²€;x¢bî€Dy§P[€]zÁ>€š|,y}€»&~ÙªŒ~Æ™X~ñ~°‡6~ï~£t¹~û~«b ~ÅO´Z~æ=¼,F€II¹Ó}­ˆt©6}¥‡…—æ}¤†Š…÷}´…‘s}ᄯa0~%ƒÔNÿ~{‚ô=~ú‚,¢€ò¸’|‘ü§ö|9–«|‹Ž`„Ì|ªŒ{r¢|䊜`^}EˆÈNb}µ†Þ<¶~O„Ì+ò‚v·†{“›¦ì{š˜ê•¦{©–'ƒÒ{ГOqÁ|s_£|€’MØ} +Š›<]}¼‡c+Ò~•ƒÐ¶¯zؤî¦zä¡”ÉzòÍ‚û{™÷q{n–_{æ’1Me|xŽ<}@‰Â+·~-„þ¶ zK®8¥fzZ©í”zd¥D‚Czˆ fpSzᛂ^p{k–ŠLö| +‘`;Ö|Û‹à+ }׆µ¡yì·W¤æyü²*“zyú¬}¤z¦ŒoÂzk ”]ùzûšˆL–{ª”F;“|‹±+}“†×¯f‹;j² N‰ôl¨Yˆàn~ƒ‡îpGn)‡r#\ †)t#KW…QvI:@„x»)ûƒì{œ®Š‰’sêŸjˆté]‡„uÜ~”†ŸvÔmO…Èwá[ã…y J¹„AzJ9Ùƒ{»)çƒ}m­“ˆ +|ÿžH‡}#Ž[†%}>}‘…V}blo„”}™[,ƒæ}åJ-ƒD~;9‚‚¿~¤)Ö‚R ¬‚†¥† (…º…`)„á„¡|˜„ƒçk–ƒqƒDZ„‚Û‚©I±‚X‚ 95öi)ƨ€±«c…Žþœ,„š”Œ/ƒÍŒ {ŒƒŠqj­‚zˆÜY¿‚‡UI#–…¼8æJ„)¹‚ªv„—ñ›9ƒÀ•À‹?‚õ“^z¯‚CÝi豎XY">‹ÓH³€é‰=8¤€¶†o)®€˜ƒ_©¶ƒê ÇšvƒÍŠ{‚HšŠyî——i9“£X˜€§"HY€TŒƒ8o€8ˆ¢)¥€0„w©%ƒd©€™Û‚•¥¸‰ÔáŠyH hŸ€ƒ˜ªX €.”(Góé†8AÒŠ—)žÛ…e¨Äƒ²™d‚<­}‰E`¨Ux³€˜¢Üh€bW¨¾—ÝG¨‰’48ƒŒC)˜–†)¡å”jN“ï’l?…--nuœŽvoìe—ŒÁqÕUm‹ sæE–‰Lv6 ‡—x¦'v…é{›¡5’šs“>µt„eŽîu tà:vdê‹w?TÚ‰æx…Eˆ=yæ5džŸ{~'ˆ…}Y l‘){’I`{ц£{þt‹ÿ|Ed(Šd|£T<ˆÕ}Dª‡D}œ5Œ…À~<'—„@~÷ŸzÛƒï‘HŽƒr‚tŒn‚îs$ŠÒ‚jcd‰PûS¥‡Ø–DC†_45Y„÷€Õ'¤ƒ‘€rž•Ž´ŒX\Œÿ‹#‹‹_‰Ûr@‰Ïˆ…bµˆP‡6S†ñ…óCä…‘„¤5,„CƒC'°‚úÈÍÚ”¿¨Œ.’Ó€ÚŠŽ½q…‰ŽŽb‡‹Œ\R†0Š*C…„ä‡ê4ýƒ¬…‚'º‚z‚õ)/Žü‹Šš[€-‰è—rpÞˆY”bap†ì‘LR…™Ž+C<„MŠò4Ûƒ+‡‰'‚ƒøœ©Œ¯¥Žu‹¡¶‰hôpR‡Ñ™ù`í†f•õQ¦…"‘âBìƒß¶4¾‚Á‰S'ȹ„ÓœOŒS­Ž Š·¨ì#‰¤AoÕ‡eŸL`…ôšQQS„´•IB­ƒ€&4˜‚sŠÖ'Ís…‡”ã$iý‡Ûš]käz-—Èm¿kוCož] ’²q–NUs¸?ñ[v1ùŠ™x›%+‡É{—”U›Ýr3‡X™0s=y™–œtNkM”up\¤‘ƒv¯MïŽíx?¦ŒFy’1≗{L%a†Û}E“·šz8†•—ëz‚xî•[zÓj ’Ü{;\[{¾M|Ù|\?Z‹G} 1̈¯}ß%† +~Ð’û™:‚…Ä–®µx ”-Si둵€ÿ[pJ€ÀMŒÝ€‘? Ša€h1µ‡à€L%¹…T€8’:˜,‰à… •¦ˆÚwR“-‡Êi,½†¶ZèŽP…¦L˜‹ù„¦>͉‘ƒž1¤‡(‚%Û„·y‘š—H‘³„g”Ðv±’YŽ4h˜éŒPZcŠkLA‹'ˆŠ>™ˆÔ†¢1•††„¢%ù„3‚“‘–¡™cƒõ”0— v?‘²”th:‘¹YéŒÙŽýK⊋Œ=>gˆ8‰o1†…þ†€&ƒÆƒ„«–' æƒ†“¸ßuÊ‘4š|gªŽ²–äY€ŒR“JK„Ч>)‡Ä‹ö1y…ˆ"&$ƒl„O]•Ψ?ƒ/“^¤†ugÑ KgFŽE›ËY*‹à—IKD‰¡’Á=û‡cŽ-1c…@‰€&4ƒ%„ôˆ€¦li§|Q¢øko£Ÿ¥m]bvœIoGU˜ÊqPG••)s…:¡‘fuâ.;x#!‰€{“ˆ¥Wql{ü¡èrsoGž‚sb#›tÃT¼—”vG_“ûw:„Cy>.OŒo{#yˆ„}1‡ ¤ +xò{k ªyEnÌDy«a¨™Ýz2TW–fzÙG’Þ{¢:`8|€.\‹z}‡#Ƈ¨~¬‡¢Ä€JzÍŸl€n œ¿a ˜²–Sâ•MˆFÆ‘Ø:7ŽG£.eŠ Ë$†é€†…¡³‡‘z<žc†¯m‹›…Ë`Œ—³„ëSy”Q„Fwðƒ^:q‚ .l‰àæ$@†F2† áŽÎy—TmšA‹Ã`–äŠ(S“ƒˆF=†þ9÷Œ¯…m.s‰8ƒÒ$o…¼‚;…¢ -•æy\œë“Ïl¬™”‘‰_³–6*R¼’ÙŒÉFxŠe9ꌇý.~ˆ¥…ˆ$–…Kƒ…PŸ¶œ×y,œtš)lz™— _t•˜“åRz’6°EÃŽé9¿‹…ŠM.ˆ0‡$µ„ïƒÙ…Ÿa£œxKl4˜£œw_+•$˜bR=‘¾”WE˜ŽsR9§‹ŒO.~‡ÛˆF$΄¥„r|¾¯ëi?qK«×k e‹§ÂlèY|£‚nßMHŸpüA/šLsI5§•cu¿*ÎDx„!W‹ {|m¯pq%ªØqeh¦rÁYb¢Bt M7»uA-™ +w%5»”,xë+ zî!Ί}|%­¿w¬pÈ©™xe¥Xx|Y üy$Mœ}yòA—Üzè5À“{ù+=Ž}5"6‰~‹{άq~„p^¨Q~Md¨¤~*XŸÄ~,L¹›U~S@é–Æ~“5½’ ~å+f2T"ˆPÒ{p«U…Ip§<„ŠdG£ƒÓX]ž¶ƒ'LzšJ‚˜@À•Ï‚5·‘)¬+‡ŒgI"Û‡¥€ó{ª~Œo³¦eоcþ¢,‰dX؈ L;™o†»@¡”ò…}5³^„E+£‹¶ƒ#‡ízЩג–oy¥»ÃcÆ¡zŽÁWÜŒ­L˜»Š£@ƒ”Eˆ¢5·¬†¥+½‹„¦#N†¡‚ÁzŸ©O˜ïoK¥/–Šc“ è“ÝW©œˆ‘ KÕ˜$ŽB@W“¼‹|5¨%ˆÀ+׊œ†#x†Aƒqzt¨ùŸ&oM¤Éœ9c l˜ÇWŽ›ò•Kׂ‘‚@V“Ž5³Ž¨Š‘+éŠ@‡)#š…õ„q¹£hÜf«µj’[Ű1lmPʪÿnpEÐ¥ip¢; Ÿs 0ò™Xuœ'£’éxzÂŒr{‡qD¸äo×f«´pÈ[Ô¯qñP䩪sNEñ¤tã;=ž%v¬15˜x™( +‘®zÄ W‹W} q(·¢vsf€²ÊvÉ[º­°wLP̨OxE뢳y +;NœÞz11c–Ò{v(_•|è ׊b~mq¶C|ÏfL±o|¢[y¬[|™P£§|ÃEÒ¡t};O›²}›1…•¼~/(¦~ä!E‰§pÞµƒf&°B‚p[Q«/àPt¥ÛgEÁ S;Pš¦€è1£”Æ€Ã(ãŽÄ€·!£ˆÞ€ºp¸´,‰Rf¯Oˆ6[Bª5‡Pc¤á…õE°Ÿ`„ð;U™·„1¾“ëƒ*)Ž‚^!ðˆH§p—³y`f ®‹È[>©fŒ P[¤ŠAE©ž—ˆŒ;Z˜ø†é1Ù“0…U)FjƒÒ"0‡Î‚op~²õ•7f ­ð“![B¨¼ÀPY£_ŽEEŸé‹Ü;T˜\‰…1æ’ ‡C)kŒç…"d‡jƒpm²–šÙf­r˜=[M¨,•1P\¢Ç‘üE£SŽÜ;`—ЋÔ1ð’'ˆå)}Œ„†"‡ƒ›Î¡mfú»ènìi=¨µp­kq”êr^mœ€µtoÎlVuÚrX w¿tDyßw'0É|Yz>̾j´qźjlÁrä§`n­t“¾p‹u0¤rnvgkbtgw³WIv~yCtxÏz›0b{x|bÊùh§|~¸´jÒ|¥èlä|’^næ|¶~ppò|ój\s}AVtu[}–B×wÚ}û0z¬~lÉ;fׇ ¶øi† +¤9kD…ëmh„5})oœƒviNqê‚¿U¥tX‚BEvÿ=/·y÷€VǧeP‘{µqg¦‹¢¶iåž|l‹»{õno‰èhLpãˆ(Tâsu†SAÁv@„Z/ryX‚Æ_d›Ö´2f}™¡}hÆ–ŽMk“/zámtLgdoþjT3r²ŠxAKuœ‡I/8xσ´Å[c&¦³5e¢[ }gÜžrQj.šxyýl¥–†f¥oD’ˆSŸr Žd@êu‰þ/x\…Ä™bp° ²vdÜ«Ÿ²g%¦”Œ€iw¡„y3køœyeøn¬—bSq‰’@—t Œo.àwý†UÄa÷¹ë±ôd`´RŸfŸ®W‹Øhè¨-x‘kk¢emn)›ÐR§q•\@?t@ŽŒ.Àw°‡ZÀ‚tÿf4¯uþh¦åvÿjõ‹xxm0xŠyosekz.qÐR|{itP?Ä|Öw-Ó~zK¿'rÈp{®sÿqÔœãu#sŠ„vFtgw£wtu½dx¾w*QÏz%x®?E{Äzb-Ž}¯|X½¯pÑzŸ¬êr'zò›ssj{@‰(t¯{™vxv|c£wy|Qy +}>ºzÓ}œ-R|ä~H¼(o„™«Yp‚ƒþ™éq݃^‡Ûs=‚ÁuPtº‚;b°vS¼PPx <>Ayû€¶-|0€º»mŸŽ{©øo˜p‹‹z†r‰èt?s“ˆ^aÌuQ†âO¦w+…T=Ôy>ƒ¨,ï{“¹’lu˜S¨Ômü–—oou“†…{púùsGr Žlatq‹ÝOvk‰?=tx†j,É{ ƒ@¸¦kˆ¢ §èmžÜ–‚n’›l„–p—ÝrxqØ”M`Ws¼¯N“uÈŒï=&xˆñ,©z„·÷j׫˜§4lg§ˆ•ÁmᣃÔomž‚q¿q0™å_¹s*•9N uI_<âw¥‹6,z@…¯·†ja´è¦³kí¯í•)m\ª|ƒ2nà¤Ïq)p¥Ÿ _|2s§o„|­u]Ê}@v¬LO}êxT;"~Âz-*æÕ|L°œy(xá¡*y«yr‘ z$yù€z«z~n•{D{]{ú{¼Kº|Ë|r:Ã}Í}?*È ~%¯Fwz‚KŸÐx‚¡x¥®~ÏyDQm…z\'zÝ€¼K{Ò€w:^|ø€0*®~TÛ®v‹¡žvºŠŽŽfw`‰\}¤xˆl•xä†Õ[^yá…œJƒzõ„V:|<‚ö*—}·k¬útø”ðˆu¨“fvVø|°wŽÆk¸wøŒŽZ°yŠRJz7ˆ9¼{›…Œ*„}1‚Ь&tžœ±tÌ›kŒu}˜l{ávD•Ejþw7’ZxUŽØIy”‹|9€{‡ç*u|Á„«‡sh§$œ t$£™‹ÝtÓŸ«{2u™›…jYv–—VY‹wÉ“I7yŽ®9Kz¤Š*h|e…«rò¯ñ›Žs®«‰‹MtT¦¢zœu¡uiÒvœ>YwK–öHÛx­‘‚9 zL‹Ì*^|…쥋…|e;—„ÈgȈ„Dj,x¶ƒÞl{hQƒƒnØW½ƒ3qWGr‚ðsþ7r‚Ìvô(j‚Ôz\¤¯ƒˆnS–•ƒo‚¯qtwÆ‚\rög~‚tˆW åv4FêÁwü7#Àyù(kè|>£°ÀwE•hpx †#x»vÀ€éyofŸ€¿z/VZ€­{Fh€ª{æ6Û€Í|ä(k~¢›€€#”H߀ …S®€u܇âeÚzËUdž¾F¦µ6¦ñ¬(k€^ ¡~ˆï“K~–ˆ/„Y~s‡ItÌ~]†Jdú~d…MU ~’„XE}~σY6_5‚G(k¿ –}²‘³’\}‘1ƒq}uŽvsô}jŒ—d9}~бTv}·ˆÇE~†Ñ6(~“„±(k8‚eŸÙ|ÙšR‘ž|˜ ‚µ|§•vs>| ’±c•|ÂàSõ} +DÅ}kŠ 5þ~ †â(k~ǃ†ŸJ|4¢È‘|$Ÿ»‚|œCr¢{ü˜Œc|$”ÈSs|€òDj|ñ5Ø}˜ˆÔ(k~k„{žè{À« ‘{³§4Ž{¢Ñr{yžb{¡™_S|”ŽD|‡ž5§}BŠy(k~!…E˜Ž1dé‹©Œ®gl}Ý‹hiÐo:ŠAl(`‰n‘PÞ‡ùq Aú†×sÙ3r…Évæ%ÿ„Õza—èŒjmyŠð‹!o}‰òp®nˆÓrE_z‡¼sïPY†¯u¹A˜…¨w¡3F„¸yÅ&!ƒà|0—Š´u߉õ‰’v¹|1ˆtwŠm¦‡kx_^ÆkyFOË…zzDA6„‘{U3ƒÁ|‡&>ƒ}Ý–"‰#~ˆùˆ~G{&‡ ~_lÙ†~q^….~OJ„[~¸@惑~ê2ý‚ã%&X‚If•5‡Ë†Wˆ†È…ÒzG…Ò…+l„å„n]|„ ƒ±NÛƒVƒ@ž‚«‚P2à‚“&n¦€È”k†Éއc…ÑZy „Þ‹ìkIƒöŠV\σ)ˆ¼NZ‚|‡)@Gê…Ž2¹yƒÔ&€‚“Ç…û–Ÿ†·… ”¶xõ„’zj¦ƒ3 +\7‚q“MãЋ@Cˆ2 €ì…Ý&€©ƒ “G…_ž†2„y›âxhƒ˜Ój‚“•~[¹Ô’!MnF޼?¸€Æ‹J2Š€x‡©&œ€Kƒï’ì„ï¦:…É„¢åwïƒ ž÷i¥‚š¯[SO–dM#€Ç’?ƒ€Yµ2m€‰-&¦€„©Œ(—d­€”Ðg sY’ÔiƒeßèkãXŽënWJŒápö< ŠÍsÀ/œˆ¼vß#̆·zc‹Ž•xl‘“nn`rÁ‘woýeY‡q¦W’sgI‹—uL‰c{å"Œ†r}œ~ž›µz›sI™zóg‡–h{L[p“°{µOò|4BàŽ+|É7;‹S}o,Oˆx~0"Õ…¤~ÿ~švÁr±—àˆfï•=BZÜ’€öN³Ù€»B–*€7Ši€j,\‡©€P#„õ€;}}™~ˆÝr4–ñˆfx”O‡"Zh‘ †NMŽð…BeŒ@„(7‰—ƒ8,i†õ‚A#F„aN}˜®ÎqÇ–*Žlf “‰ŒÍZÛ‹ MõŽ2‰HB-‹Œ‡†7ˆß…Ç,y†Yƒý#pƒç‚9|½˜–•q—•ž”¨eÛ’ï’NYÆ*µMº}"AîŠíŠ˜6؈Uˆ,€…Û…#’ƒ„‚ý||—´(qW•,š¦e•’s—ŒY¦”!MŒö¾AÇŠje6ÇâŠ,…}†Ã#®ƒ5ƒtë©PcèjO¥ãf=_`¢rh¡TžÐkH¹šîm¾=o–Ùp2¾’ŸsŒ(ÀŽHvÙ "‰øzbtu¨5k#j¤¸lº_-¡$nnSÿjpDH©™ƒrB=t•ytn2Ý‘Ov½)yL žˆÛ|t¦¼riŸ£Is ^ÙŸµtS±›ýuSHt˜#v­=_”.x02ëyÎ)B‹ö{›! +‡â}~s¬¥Ùt(‚o.wþº]^”«©©`c’—˜CcHl†Vf+Ž;t)i0Œaèld‰çOþȯµ>tsw…[-òwn‚¿¹w\-ž¦¨®_A›®—Mb0˜‰…ke#•SsShA’!a7k‘ŽçO|o‹’>#rሠ-Ðvö„0¸±[D¨n§ð^a¤Œ–‹aS h„ªdLœ%r›g{—ç`˜j哟On‚-=ÜrfŠv-µv’…m¸3Z¤±ê§p]­ •û`®§Ü„c¤¢r fØC` jR—ëNŸn’b=‘qþŒŽ-ŸvB†wµ~o®`^¥£q&cc•rfBƒÇti qõu£kÚ_ôwInÅN1yqØ<¸{u8,-}py´mjy¤”nÎlp”ptnR‚Þrp/qsÏr_;u¨tMžw§v2uŠŽË6£x‰ü)Gz³…›è_ÑŽÃzb〾ƒeÌqÚ©hŸbmÞk~RÖ€$nC—€q±4¹u7&øÄy7šú}Gh¿Ó}kjé¿}Ÿlúpó}âoa¦~8qR7~¥sTC#*u«4€ÞxA' €Æ{*™ð{&q‡Œ¤{{rà~¼{Ît&oú|2ug`Ù|«v´Q˜}AxB¸}ñy4N~Ò{.'å|û˜Ïy6z?‹wy­zÓ}Œz!{LozŸ{Á`{?|9Q{ü|ÀBZ|Õ}R4%}ã}õ',~¦—¯w˜‚ÝŠ|x%‚º|’x±‚nnyH‚ _Jz¦P]zæLAæ{å€ñ3î}€’'9~u€)–¿vN‹o‰‹vêŠ{ªwƒ‰qm9x+ˆ2^Šxø†ìOÒyñ…§Aˆ{„^3Á|f‚ü'C}䀕ÿuA“؈Ìuê’5zñvŠElŠw>Ž&]íx‹ýOXy,‰ÌABz\‡3£{Ð…+'L}l‚©•ltqœˆ5u#™©zUuÅ–Þköv{“×]cwhÅNÞx¦@ðyÒŠv3…{U‡'S} ƒ¥•sÚ¤‡Át’ ÞyÔu01kvuâ™:\övÒ•8N‹x‘*@©y\3Wz÷ˆ½'Y|º„u—‡ï_©ƒw‡b¯vˆ†ie–hÍ…ÛhoZ˜…RkXLE„Ïni>[„Wq¦0åƒýu<$¥ƒËyBŽË…Éh‚²….j@u¸„¦l^h„,n{YÿƒºpªKуXrú>ƒul0ЂÑx $Ö‚Ã{!éƒÀpQ¬ƒVqÀtÕ‚ës!g<‚tYM‚;uñKKýwy=ºÏy0¶Äzå%Ú|ÜŒíïxp€¢žy.sÁPyØfjzyX˜€Ú{%JÆ€Á{Þ=i€¸|¦0œ€Ô}ƒ%'~r‹ú€P€»€€”rå e•³€^X”€;Jm €!=9¼€ +0“ÿõ%F€_ß‹(ˆ~ò‡õr:~Ç#dé~›†+Wl~‘….Ið~®„8<æ~èƒ@0sL‚6%aË Š~n~Z}ÿ%q”}Ô‹dN}µ‹ÁVÝ}»‰îIƒ}éˆ<°~1†90c~²„?%wP‚5‰ú}T˜}Õ}B–q}“¸cÐ|ø‘Vh}ŽbI}L‹ª"‰…¯yK‚펭gXw¼Oi„kÇŒk­_EЏmßRe‰kp'Eˆ$r”9†ßu&-J…°wý"Ö„›{‚1Œ¾ovå‹‹pkŠTr ^›‰!s‰Qà‡ïuE"†ÈvÏ8è…¦x-P„›zš#ƒ¨|¿`Šöv®v‰Ûwˆj/ˆ¾xV]ô‡ y'QT†zDÄ…Šzñ8¹„Œ{ò-Sƒ¦}#U‚Õ~A€“‰q~0uQˆh~riƒ‡\~™]B†R~®Pí…M~ÇDz„k~ò8—ƒŽ"-Z‚Ì\#‡‚ ™Þˆ9…­t¦‡C…Lhá†?„½\º…8„ Py„BƒXDKƒh‚µ8‚¬‚-]‚r#°ˆ€ÇL‡Ft5†^Œ +hw…ZŠ¿\?„O‰@Oýƒg‡ÁCé‚¡†N8Zï„ß-ZqƒW#Ó +Ê~؆Œ”'sÁ…«’h„¥…[Ôƒ—Ž4Oœ‚³‹æC‹‚‰ž8 ^‡^-Y€î…#‚£~†›se…"˜ägŸ„–[uƒ’æOO‚ÁCWqŒ¥8€à‰-S€ˆ†f$€QƒUx3™f_)m¿—2bbÁ•!déW:“gÖKoÄjÞ?¯Žln4}Œq})鉪u= ª‡hyPwŽ—¸fŸmF•¥hÅbN“j÷Vâ‘mm͉/}Ä4<‡F~=*f…n~È!þƒ±Zu‘~‚üj¹¾‚Ï_éã‚{TÅ‹ö‚I™Šª>¢ˆ/U4+†d *u„®€À"5ƒ€wt›†‰ÊjCŽÔ‰ _wŒýˆ TY‹†çI=‰6…Ã>g‡g„ª4+…Ÿƒ›*ˆ„ ‚"c‚’jt<ÑljŽ)(_?ŒJtTŠO‹}I ˆo‰’>-†·‡¶4……é*”ƒ„ "ˆ‚(‚5sòI–ÖiÁž•^õ‹¹’šSÙ‰¹×HÓ‡Ø"> †%Š3ö„†‡ì*›ƒ…R"¦Ó‚ÛmB¢o^°cxŸ¤a€YZœÖdcNæ™ÚgbDL–¢j‡9Ñ“Amâ/õÉqi&ÏŒKuBˆòyTl© üe½cž4gâY›Pj#N¶˜DlƒD6• o +9Ø‘¼qÁ0Ž[tž'Šûw¾ˆ‡Â{l1Ÿ:lb™œ…nX¬™¬oÂN^–©q‰Cþ“…sp9ÅOu01 w±'a‰Ïz÷†¹|Škµ|s0bšØt9X˜uLMü•"vwC´’w¾9¢y#09‹Þz '•ˆÅ|A W…Õ}êk8œyÃaœ™lzJW­–¯zÌM“Ë{PCvÓ{î9~Ú|¥09ŠÕ}j'½‡Þ~E ©…"jÊšÖ€Ka=˜L€RWX•’€:M@’²€C6Äü9hŒÓü0<‰ë€'Þ‡€ í„p€0jm™é†¤`ó—f†,W”ª…tM‘É„žBùŽåƒÓ9FŒƒ0G‰!‚n'þ†k¿!%ƒéj'™*Œ¿`²–¬‹ÃVÖ“ðŠiLÆ‘ ˆßBÇŽ-‡^9‹]…ë07ˆ„„Ž(…݃+!Rƒ|Ôi’²`§–"‘IVË“Y;L²`ŒÜBÅuŠ™9*Š­ˆs0P‡ô†g(6…o„Z!vƒ%‚pb¬«Ê^Y}¨s`×P7¤ãc½FÑ ñfÐ=iœ¥j48˜m+µ“wqM#úŽÇuE•ŠTyUbªdÁY/§"fáP£gi0F½Ÿ\k¯=q› +nb4_–ŽqK+ü‘ûtZ$hhw£-‰zøa½¨Þk$XÔ¥tl¼OÅ¡ÀnxF‹¸pj=]™wr‡4m•tÕ,1œw@$ÅŒ,yÙ°ˆ|sap§qVX}£¼rsOi s©FSœ#u =;—úv’4m“µx=,W_z%‹{æ ‡}Åa#¥’wxX8¢Ax!O)ž¢xÓFš¹y”=%–¥z~4l’}{†,vŽG|%QŠ#}ʆK~ï`ݤ]}’X +¡}ÊOq}íEô™~= •„~J4u‘i~¤,•Q%ˆ‰R‚Ï…£ð`££fƒzWê ƒANðœu‚ÑEà˜”‚O<û”–á4u‹‰,´Œ~E%¹ˆ¢ …€Ê`v¢¨‰*WØŸOˆ€N囨‡xE֗ĆJ<î“Ì…/4hׄ*,¼‹Ûƒ>%àˆ‚W D„¨`Y¢ޤWÓž¯‡Nâšÿ‹áEÓ—Š<ó“!ˆ44y7†ƒ,Ê‹P„í%õ‡Ÿƒi n„N‚·Yb·Zé¦÷e^^X–+göa¹„Îje rþm:hgap kÛOFs oy=Üv[sh-qz +wãµr_jeT¥~bdg¹”àeCjƒ¬hluqûknÛ`n-q[NŒqxsû=]uvà-Fyz,³©\o¤£Î_¹q“qbÕr\‚VeësÅpÓiu<_+lzvÈMÒp +xl<çsíz@-!x+|U±äYéyÆ¢]Vz+‘Í`¡z•€ùcë{o¢gZ{^6jö|#MnÆ|Åp?†|sk2}üvŸ%ϳz0xtkã„umÇwvo›iVw(qh[3xVsCL÷y«u7?){#wI1å|Ùy%ð~Ã|Eq´tr‚Þríu•uïtv¡h{uUw¨Zyvµx³LrxÜyé{1Ë{Ö|U& }ñ}ÆŽo½|çÛq}Stðrh}gtsÄ}ÐY³uH~KÎw~M>oxà~š1Ÿzù~ó&%}=T"n!…H€éo“„út pü„yf¤ruƒØXÿtƒ4KSu> wõÿ1z:^&9|£€³ŒZlÎ|€)nTŒrsVoÍ‹!eûqZ‰§Xisˆ(Jáu†§=åw-…$1ky—ƒ&J|$ä‹Ák•vmW“¯r½nÚ‘Šempr/WårFŒÏJntYŠl=›v’ˆ1Wy…{&X{¼‚æ‹Tjú&l™š¦rAn—¨dôo»”gWq—‘"J$s¼Ú=[vІ1/x¬‡&c{iƒ»†ðmZ„{‚8]üo\2a\b~DdµU/^h GΈk¶:áÇo~.€‚2s¦#l‚ÏxA…ù~Ðb¸z©~èein‡h aÉAj®TŸ‚mcGfÚp=:¦€Js@.|€êvŽ#¬µz.„þ|`jÒy—|³lÈm }n´`ó}\pSó}Èr™Fé~Qt±:^~ôvè.pÅyU#〽{öƒóz.rËx‰z¨tl{uM`.{˜v~SK|4wºFt|ìy +:}¿zn.g~Á{õ$ä}—‚òxDz½wxà{Yk¦yu{Ø_Uz|ERÈzÇ|ºF{®};9í|­}È.c}Ý~f$<*‚v¼‚žvØwq‚‘kx‚S^©xÉõR&yœ˜E©zF9ª{Àù.P}€ª$_~€XauzŠNv&vA‰•jWvöˆ”^w¸‡jQœx£†ô@3Pï5i„õ+UÝü"µ€M€v§~h‡"la~s†´a~[†VP~<…"K~A„G?Ü~oƒy5L~µ‚³+Z3á"ÜÇ v)}rŽkè}‹a}z‹¢Ué}b‰úJ¥}tˆW?‰}º†½5~…,+_~§ƒ‹"üZìuÈ|¶”Ëkˆ|ד/`¸|Ê‘U|´ŽJ`|ËŒ?[}‰´5}އU+W~;„î#‚£pu’^Zf¬Ú]p\ms`ÊQ³Žd6F¹ŒzgÄ;ÏŠãk†1z‰Mox'Ù‡ËsÅ™†qxZo©4a`fŽàd [ä‰fÆQLŒ$i’FtŠ®l};±‰9o—1†‡ÈrÙ(†pve …>z#nöþh€eUŒ×j’[L‹œl¬PÄŠQnØFˆýq;|‡¯sŒ1†gv(B…;xâ j„1{Æn;‹ðo‚d“ŠæqZ‰‰ÉrP7ˆt +E¥‡ou©;:†Jwd1o…-y9(b„+{5 ¾ƒH}@m…Š,vpcè‰=w^Yæˆ6xAOŸ‡y EI† z:ý…{1\„|0(}ƒ=}_!‚~‘l䈺}McY‡â}¯Yh†é}ïO-…á~Dì„á~U:æƒñ~¢1\ƒ~ü(—‚nZ!@Ú¶lZ‡…ƒòbԆƒÀXì…׃YN½„Ú‚ÖD’ƒì‚X:³ƒæ1n‚Fƒ(²½!qQ€°kŠubš…ì‰ÄX¾…ˆªN”ƒô‡UDuƒ†:Š‚I„ç1KžƒÒ(Ã*‚«!™€à‚k˜…á¿bI…9ŠXm„SºNMƒH‹œDA‚[‰˜:m¦‡­1F…×(Ñ€¸ƒö!¸€‡‚-eÞ›1Y¡\ç™\åS™–ç`AI픟c¿@’"gh6f‰kL-WŒço_%ŠWsLJüxbe"™G`}\k—?c)S.•eñI¥’ÌhÚ?õXké6jÙo+-„‹Wr—%[ˆîvJŒ†»zd”—'g,[Ô•?iLR·“3k€I=ùmÖ?´Ž¡pJ6VŒDrê-Ÿ‰éu¬%¤‡¬x¦…£{°d•m·[8“KoPR‘Yp÷HÍ=rµ?d +tŽ62ŠÕv‡-ªˆ¤xš%܆‘zØc„²}cs“Wt3Z°‘¢uIQšÀv`HX¶wz?$‹ x°6‰‘z-¬‡‡{d&…œ|â·ƒä~[bð‘êz¥Z=K{:Q7Žu{¸HŒw|+>âŠp|°5ÿˆr}T-°†‹~&(„È~¿ýƒ8rb‚Á€éYâ5Pég€ßG¾‹m€¦>¡‰v€~5؇€n-»…³€n&H„€i 7‚©€_b*φðYŽŽS†„P›ŒŽ…ÁG}Š˜„×>nˆ¨„5¦†Õƒ=-©… ‚’&hƒ}Ý f‚6$aåŒÓYo§‹øP‹ãŠ„Gf‰ÝˆË>r‡ä‡85Ɔ…Ç-Ì„l„q&…ƒƒ ‹ÚÅ[“¤\XùSP¡”\1J垦_‘BH›ic&9œ—àfø1'”,k )_koL"^Œ½sÓ¥‰^xhZÚ¢¬_pRÔŸôbJ}œödúB™«h9…– kG1=’|nÀ)¤ŽÓr`"Ï‹Gv:>ˆzZk ¢eµR^ýgæJ!›j8A¸—Öl¾9^”dom1AàrM)×ZuK#-‰øxw†ì{œZ +ž–kÕQóœm‹I¯™1o[Ap–qR91’Âsq1Â&ƒÙ€Xµ™/ƒzPç–çƒ[HÞ”8‚î@Å‘=‚e8ÐŽ1õ10‹8ž*_ˆK_$J…¥[ƒc€ÑX‹˜oˆõPÍ–)ˆaHÉ“~‡S@¹…†8Öz„ü1EŠƒý*t‡¶ƒ$c…,‚4…ƒi¬\ãU+2_ýY&…c]}Lf0`ûlŸitdç[ÄlêhïK;p•m(;t™q»,xúv媋Xí_a›°\ob`Œ3_ßeW|'cWhLkœfôkIZèjÆnaJŒnÐq¢:¥s4u4+÷wòy>¨½Ugi€™ýY>k€ŠÄ\ÿm~zÑ`Ãoƒjxd¯q–YühÕsÁIÞm7v :@qõx–+êw{v¦òR=ss˜KVct‚‰&Zdu”y€^lv«iSb¦wÒYgy I:kÎz]9åpÞ{Ù+Þv7}ˆ¥BOw}B–ËSà}n‡ÅX"}™x4\d}Äh[`Ü}øXIe›~>H«j–~Ž9–oì~ô+Óuƒn£ÔM †ñ•‹Q†=†¯V8…w=Z±„»g}_]ƒûW¨dQƒEH8i‚’9To Ý+Êté"¢©K)s”‰OûŽ×…ÏT›*vzY@‹ufÍ^‰ÄWcCˆGÞh­†V9"nt„‡+Ãti‚¡¡ÄI—™°“ÂNŽ—$…!SM”‚uâX‘ÚfD]7VŸbeŒG„gû‰Ï8ùmæ†ë+½tƒé¡+Hp¢“7M{ž÷„ RK›\upW!—Åeç\;”8VXaªGDgbŒä8Êmrˆú+¹s«„û ÕcóU5’ÔfiY:„Ihç]'ukxaeqn,dîU¢qhùF/t(m77+w•qÖ)[{Xw +Ÿ+`0^å‘£caûƒEeàetc0ˆQ•g®†Cnll…05Çq€ƒ³)|v·‚#—bQ…–1ŠMU°”"|•Y·‘ÞnM]Ѓ_³b,,QfÖŠÓCk½ˆp5§pó…î)vMƒU–ÝPjž‰ÊT§›£|X½˜smÓ\ç•*_OaZ‘êPÐf!ަBÙk)‹O5zpƒ‡Ô)uù„R•[k5UVˆ”mYV{'nê]=mpça^gsdûO©uLiASwÄmI3vzqñ&Ù}¢w+“æg£^j‡bi×azl d£lnLg°]™p±jÉOsIn@ãvqk3Fy/u'&ø|yQ’dagx† fêiÆxþialkkänB\ÓnpŠNuqprî@ˆtˆut3#wòx<'{˜{S‘atpa„Ÿd@qãw”fôsWiùi´tÂ[Ül¨v5M·oÓw¿@ s4yb2ëvã{1'*zÁ}.­^éy.ƒ[aêyëvfdÕzhãgÌ{%[j÷{ÀMng|l?¤r }&2Ãuõ}ø'>z~ÞŽ\Æä‚R_òÛuwc ¬h f1gZYiŒ"L™m+€é?Rq€¹2 u)€‹'Oyk€]©ZþŠi{^M‰˜t±a†ˆ‘gWdÔ‡mYºh]†IL!l(…)?p*„ 2Št}‚â']x諌ùY’¬€Ô\ú‘t`L/fÄcµ'Y3g`‹!K«kU‰>Éo}‡2tsï„õ'ix}‚ÆŒX|š•€Y[ù˜7s_Y•vfJbÒ’†XÐf’›Kdj¢Œ²>Šnì‰À2Ks‚†¶'rx'ƒ±Šr¶U€~LsÞYqqçu)]OdÐvŽa#WFx eI¦y¬i‚Or£7²‚)tð.Ì‚wY&§‚yìß‚=|ˆeÇ€Çq,\ñ€ãr S€àt JW€Êuz@߀¾w7s€Ëxž.»€æzN&Å | *l}áe~õwò\M5xÖS3Oy£IÙXzf@{j{77R”|.·Ü}&á€E~ i€¼ dv}d~}[»}Ë~ÒR²~~ûIm~!@$~P07(~˜_.Ð~ôŸ'‰Ü €+€cû|(„ß[j|´„¯Rq|û„*I>}ƒ{@}U‚á7}¿‚[.´~=ê'~ïk ǵ€åcš{*‹[{ÊŠOR|#‰Hù|Q‡¬?Û|•†U6ð}….±}¦ƒê'$~x‚· èW”^㓈TÙVž’X“N +ª\fE%`a<~dŽ3‹Èhú*ËŠm˜#Mˆr…&‡w^û[ƒU÷Æ^·MwŽvbD±ep;È‹yi 3 +‰êlØ*öˆdpÒ#ª†þu ¯…ËyU]XŽgbUEddÃLëŒ=gƒD:Šïjb;}‰md2ðˆ.p•+†Ùsç#õ…§wl&„¥zò\±‹ûh’T›‹ j¸LCŠlëCȈûo6;+‡Èq¡2̆›t.+…zvÖ$0„{y£ƒ¨|e\ ‰ÚoT‰&p¢K·ˆErECK‡Asñ:ë†5u¾2«…8w§+$„Fy $aƒw{°ã‚Ð}®[uˆ uaS{‡~v|KG†ºwˆBï…Ðx•:¦„ày¶2Ÿƒÿzö+1ƒ7|@$‰‚—}+‚~ÌZò†‡{S †|'Jí…s|˜B©„›|þ:nƒÃ}w2…‚þ~+G‚M~§$°Ø<g…¿Z‡…FpR¥„ýJ„hTB\ƒ¢:4‚Ý€å2P‚7€Ê+?“€Ä$Û2€°— €ŠZ3„H‡HR„'†ëJyƒ¦† B_‚Ï„ô:bû„2 ZƒM+|€ß‚¥$ý€²ê½€¬/TÜœ†T#M‹šZW×Eû˜ [¯>•®_À6&’þd.`5h±'Emm| ïŠÌrŠÒˆ~wšTš‡Éo‘R†ÑaX1…ÜRƒ^•„êDteAƒ÷6ólC‚ü*ìsJþ–ß>’³Š9DzÆ|ýJ–ŽàoP«`¢Vú‹+R]™‰LD,d}‡b6Øk­…^*ïrÞƒK–(f—9k'„y7oÔƒ-}t²‚ $ºys­yT´JnÖXíŽýcþ]EX¾a@‹`MUe«‰‰Bj]‡Á7`o7†-ct@„>$Îy‚ŠwlsQlñtWU+buÌYdVÕwU]±KBxðb?²z±f½4¯|˜k˜*W~Äpà!dv™uØoX½kÏpÕ\La.rž_âVtsc…J¶vbgC?Vx~k04†zÁoO*l}DsË!½Úxt‡kq`‚j”m’cj`4o­fVUAqÑiKJtlX>ãv†oŒ4Oy!rì*u{òv–" +~Èz{sLhh9igj’ju_lùlµT|odnûIlqüqS>{tÂsË4!w®ve*zÉy8"M}Ù|/re)oãhRgåqs^ jsS¢mBt‹Höpv)>*s2wá4vfy°*yÄ{©"…} }·q!bœwvg‚e—xa]phy7RúkpzH^n‰zÞ=ÑqØ{Ò3ÕuK|Ø*xæ}ò"µ|`pS`k~ÒfÅcœ\Çf¹5Reià@Gßm1W=ypµ‚3ºtW½*™x(ý"Ü{Ñ€8o°^™…åf4a÷…\AeA„ïQðh“„3Gxlƒ„=!oÉ‚ç3s•‚Y* wŠÇ"ü{]2o9]$ŒªeÇ`ª‹¿[ÖdŠeQŽgˆˆÛG.k%‡`<óo…ù3grø„Ÿ*ŽwƒF#{ÿlÒzÍQcJ{‡U.Ym|bY`O)}E]¯D¤~-b%:0-fÕ0U€Jk¾'8šq€ƒv²khwXUbDx<[åX•y^_ƒN„z‚c5D/{³g 9î}k0J~roG'h€sÖì¿x¢j@s§_ a-ub—W»v‹e˜MÆwôh¨C¥ypkÖ9š{o/00|Ðr²'Š~¹v{ I€¡zki(pzfß`r=i8V»sík—M užnCwhp‰9=yWs10 {auú'¡}xø ™ª| +h$m¤n _3o©oÆUäq™q‚LFsŒsCB¤u•u8ówÎw/özy'º|†{H Þ~×}|g;k*u&^_mmvDU-o™wTK·qÄxaB5ty}8Ívrz¹/òxú|'Ô{ }f!~%~Áf|i|]Ãk‡|˜T«mç|øKFpA}KAÎrµ}°8„uT~./äx~¾'çzÞO!F}’×eäg=‚¹]9iT/l|‚\JÞnþòAvqœœ8:tj\/ÀwB.'õz?€û!l}€Áereˉ\Ðh¤ˆƒSËkX‡€J‡mû†SA8p·…;8s¥„;/©v¥ƒL'ñyÈ‚_!‹|º€b„‚ÜPáYô‚ñT÷Qƒ Y*GÓƒK]ƒ>[ƒnb 5ƒ›fÖ,MƒÛkØ$b„Cq5Õ„ÄvÇaCjW·YÝ[OPG€J^ûG6€ªbÄ=ôf¶4Õ{jß,[‚o8$ª‚±sÞRƒqx¥`C|^X |áažO„}d¹F~.gì=€~ÐkC4˜ŒnÉ,Z€\rv$âOva¾‚Iz[_Tye^W"zgÙN¥{j_Eð{älú=|Îo²4T}Òr‘,N~éu% €x»I{ç^pvOlVNw˜nMãxÁoóEFyÜqê<¥{t4|Nv6,B}£x%0zêk€n}G]¥särËU—ult!MGvÎunDÂx!vÁ†âb.8†XfH0…×jž(¿…fo "5…sâí„ñx§V˜„Õ]IO;„Ø`uGœ„¸c³?¨„vg7¯„(jœ/êƒènX(Õƒ¹r6"ƒ¯vFgƒ¾zLUÒÝc¯Nv‚fSFÜ‚7i?#‚4kØ7P‚(nÏ/¿‚,qì(à‚?u%"¾‚rxЂ¶{ÇU)j MÁ«l&F9þnL>—€1p‚7 +€ará/›€¤u_(è€ôwî"ñ`z‘)Ô}T_|Äp[M}ŠqêE±~sz>-~|u6¾~ÜvÍ/ˆMx§(óÒz‹#€t|ts~;SÅz³vyL”{¸w€EB|{xt=Ù} yn6{}—zƒ/k~2{²)~Ö|î#Dª~!°€{3SAxç|YLz/|ÖDÕ{&}-=†{à}‚6@|Œ}ò/:}R~x)~#o~ÿ–áý€Ràwq‚KÌxö‚D z¿=qzíX6U{£/h||€ø)'}c€è#Š~~€Î˜€¬NØ“ýO£HJ’„SÒAq‘X:=…\¤2áÙav+»Œ#f“%AŠzk䔈öqo‡´vçMÌúU¹GRíY}@€Ž¯]_9}?aq2l‹­eÁ+–ŠjO%lˆŸo ‡Rs嵆Gx§Mø[ËFŒ,_?ÕŒ)b„8êŠèf2‰‰iã+yˆ1mà%†íq÷ […Ýv/;… z>Lx‹aÐEêŠ|d¤?1‰¯g8{ˆ¬jŸ1ɇ‰mà+e†oqF%¯…jtÀ ¨„—xM¯ƒø{ªKÚˆ^gÎESˆj!>®‡{lˆ8†¨o1¢…¿q¹+\„âtŠ%Ï„wb ìƒ}zAƒ|ìKA…ïmÇDÆ…ño•>@…™qn7Ä„ös^1s„9up+cƒ‰w¤%ð‚ñyÚ!&‚Œ| a‚N~J¼ƒÐs“DL„ tÜ=ä„v"7†ƒ‹w{1L‚õxò+Z‚mz‚&÷|![À}œ¤®~ïJL‚y/Cç‚—yò=•‚¯zŸ7V‚^{X1-ê|2+E‹} &2~!„~ùÚ,´Iû€|~¥C—R~Û=U~æ71l~ù1$0+T€Ê|&(€–Ñ!š€ž€€Ä€Tÿÿÿÿÿÿmft1! +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ +  !""#$$%&&'())*+,--./01223456789:;<=>?@BCDEFHIJLMOPRSUWXZ\^`bdfhjmoqtvy|~ƒ†‰‹Ž’•—™›Ÿ¡£¥§¨ª¬­¯°²³µ¶·¹º»¼½¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÒÓÔÕÖÖרÙÙÚÛÛÜÝÝÞßßàááâããäååææçèèééêëëììíîîïïððñòòóóôôõöö÷÷øøùùúûûüüýýþþÿ +  !""#$$%&&'())*+,--./01223456789:;<=>?@BCDEFHIJLMOPRSUWXZ\^`bdfhjmoqtvy|~ƒ†‰‹Ž’•—™›Ÿ¡£¥§¨ª¬­¯°²³µ¶·¹º»¼½¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÒÓÔÕÖÖרÙÙÚÛÛÜÝÝÞßßàááâããäååææçèèééêëëììíîîïïððñòòóóôôõöö÷÷øøùùúûûüüýýþþÿÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢FJý M`ñ¤Lræ§L„Ú¨P–ϦY¦Ç¥d±Ä§o¶Á§x»½§Àº¥‡Æ¶£‡Ë³ ‡Ð¯ˆÖ«š‹Ý¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦92ÿ¢EJý¡L`ò¥Kqæ©JƒÚªM•Ï©V¥È¨a°ÅªkµÂ¬uº¾«}¿ºªƒÅ¶¨‡Ê²¦‡Ð«¢‡Ö¤ž‰Üššáššáššáššáššáššáššáššáššáššáššáššáššáššáššáššáššáÿ¦82ÿ£EJý¢K`ò¦IqæªH‚Û­J“ЬR£É¬]¯Æ¯g³Ã±q¸¿³y½¸¯Ä²ª‡Ë¬¦†Ð¥£†ÕŸ†Ú“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þ“‹Þÿ§82ÿ£EJý¢J_ò§Hpç¬FܯG’Ò°N¡Ê±W­È¶b°Åºlµº³x¾²®Å­ª‡Ë§§…Ï ¤„Ó˜¡…ןˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚŸˆÚÿ§82ÿ£DKþ£I_ó©Foè®D€Ý³CÓ¶HŸÌ·QªÊÀ\¬½¸l·³²xÀ­®Æ©ª†Ê¢¨„Λ¥„Ñ”£„ÔŒ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×Œ¡‡×ÿ§72ÿ£DKþ¥G^óªDné±A߸>ŽÖ½B›ÏÃJ¤Â¾\¯¶·l¹®±xÁ©®Æ¥«…Éž©„̘§ƒÏ‘¥„ÒŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†ÔŠ£†Ôÿ¨72ÿ¤DKþ¦F^ô­Bmê´>}á½;‹ÚÆ<–ÊÆH¤¹¼\²¯¶m»©±yÁ¥®‚Å¡¬„È›ªƒË•©ƒÍ§„ω¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñ‰¦†Ñÿ¨72ÿ¤CKÿ¨C]õ¯?lì¸:zäÃ7‡ÝÓ5ÁÄI§±º^µ©µn¼¤±zÀ¢¯‚Ä­„ǘ¬„É’ª„Ë©…͈¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îˆ¨†Îÿ©62ÿ¥BKÿªA\ö²;jî½6wèË3€ÐÒ3“¸ÃK¨ª¹`¶¤µp¼¡²{Àž°ƒÃš®„Å•­„Ǭ„É‹«…ʇª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ì‡ª†Ìÿ©52ÿ¥BKÿ¬=Zø·7gñÄ1qß×,{ÅÐ5•°ÂN©¤¸c·Ÿµr¼³|¿›±ƒÁ—¯„Ã’®„ÅŽ­…ÆŠ¬†È‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡É‡¬‡Éÿª42ÿ¦@Kÿ°9Xù½1bçÎ-iÐà$¹Ï7—§ÂR©žºfµšµs»˜³}¾—²ƒÀ”±…Á°…ï…ĉ®†Å†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æ†®‡Æÿ«32ÿª;Iÿ¶2SðÇ*ZØÞ!fÂß$‚­Î<˜ŸÃV§™¼h²–·u¸”´}½“³ƒ¾‘²…¿Ž²†À‹±†Áˆ°‡Â†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃ†°ˆÃÿ­12ÿ°3EøÀ)LßÖ#MÇè j³Þ&„¡ÏA–—ÆY¤“Àj¬¼u²¹}¶·ƒ¸Œ¶„ºŠµ…¼ˆ´†½†³‡¾„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿„³ˆ¿ÿ¯/2ÿ¹)?èÎ?ÌæR·î!m¥Þ,ƒ—ÒE’Ë[ŒÅk¥‹ÂuªŠ¿|­‡¾°„¼€±ƒ¼‚²»ƒ³º„´~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µ~º†µÿ²*2ñÆ3Ñâ:¼óV¨î&m˜á5ŽØJŒˆÐ]•†Ìk›„Ét Çx£~Å{¥|Ä}¦{Ä~§yÀ¨x‚©wƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªwƒªú¾(ÖÝ#Àð?¬ýWœð-jå>y†ÞNƒØ_‹ÔkzÑp”wÏt—uÎw˜sÍyšrÍ{›qÌ}›pËœoË€oË€oË€oË€oË€oË€oË€oË€oË€oË€oË€oË€oË€oË€oË€oË€oË€ÙÒ Äí)°ýAŸÿ$U‘ô5e‡ëFpåTy{áavÝh„rÛn‡oÙq‰mØt‹kØwŒjÖyiÖzŽhÕ|ŽgÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~gÕ~ÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿPUú Peï£Quä¤S†Ú¢[–Рe¤Èp°Åœ{µÂœƒ¹¿š‰¾¼•‹ÂºŒÅ¸ŒÉ¶ˆ’̳„—ϲŸÒ­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Ó­¢Óÿ£9*ÿŸF@ÿžOTú¡Ndï¤Ouå¦Q…Ú¥X•Ñ¢b£ÉŸm¯ÅŸwµÂž€¹¿ˆ¾¼™‰Ã¹”‹Ç¶Ë³ŠÏ±†–Ô®ƒ ×§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õ§¡Õÿ£9*ÿ F@ÿžNTú¢Mdð¥Ntå¨O„Û§U”Ò¥_¡Ê£i­Å¢t´Â¡}¹¿ …¾»ˆÃ¸˜‰Èµ“‹Í±ŽŽÓ®‰–ا…Ú¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Ö¡… Öÿ£9*ÿ F@ÿŸMTû£Ldð§Ltæ©NƒÜªS’Ò©[ Ë¦f«Æ¥p³Ã¥z¸¿¤‚½»¢‡Ã¸‡É³˜‰Ï°”ŽÕ«’—Ú ŠœÜ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØ›‰ŸØÿ£8*ÿ E@ÿ LTû¤Kcñ¨Ksæ«LƒÝ­P‘Ô¬XžÌªb©Çªl±Äªv¶Àª~¼¼¨„¸¤†É³¡ˆÏ¬œÕ£–”Úš‘œÜ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØ–ŽžØÿ¤8*ÿ E@ÿ KSû¥Jcñ©Irç­JÞ°MÕ°UœÎ°^§É°h¯Æ²s³Ã²|¸½°€Á¶¬‚É®§…Ï¥¡ŠÕœœ‘Ú•™œÜ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙ‘”žÙÿ¤8*ÿ E@ÿ¡JSû¦Hbò«Hqè¯H€ß³JŽÖµQšÐ¶Z¤Ì¸e«Ê½q®Á¹{¶·²€À®¬„Ȧ¨…Τ‡Ô” ŽØŽŸ™ÛŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙŒ›žÙÿ¤8*ÿ¡E@ÿ¢ISü§Gaò­Fpé²Fà·GŒÙ»N—Ó¿WŸÐÅc¤ÅÀp­º¸y·°²€À©­…Ç ¨„Í—¥…ÒŽ¡‰×‡ ’Ù‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØ‡¡œØÿ¤7*ÿ¡D@ÿ£HRü©Eaó®DoêµC}â¼D‰ÜÂJ“ØÊT™ÊÆb¤¼½n°²¶x¹ª±€Á¤­…Ç›©„Ì“¦„Њ£‡Ôƒ¢ŽÖ‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Ö‚¢–Öÿ¥7*ÿ¡DAÿ¤FRýªD`ô±Bnë¸A{äÁB†ßÌFÓÏR—ÁÄa§³»m³«µx»¥±€ÁŸ®„Ƙ«„ʨ„Έ¦†Ñ‚¤ŒÓ€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Ó€¤’Óÿ¥7*ÿ¡DAÿ¥EQþ¬B_õ´?lí¼>xçÇ@àÖF‡ÉÍQš¸Â`ª¬ºmµ¥µx¼ ±€Á›®„Å•¬„ÈŽª„ˇ¨†Î‚§‹Ï¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ð¦Ðÿ¥6*ÿ¢CAÿ§CPÿ®?]÷·Ž³ÉR §Àc­Ÿ¹p¶šµz¼˜²¿”±…¯…Ä‹®†Å†­‡Ç‚¬ŠÈ«É«É«É«É«É«É«É«É«É«É«É«É«É«É«Éÿ§5*ÿ£BAÿ¬?ÿ±7Jù¾0RçÏ/UÑâ,hÀá0­ÒB“ ÈW¡˜Ág«”¼s²’¸|·¶‚ºŽ´…¼‹³†¾ˆ²‡À…±‰Áƒ±ŠÁ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂ°ŒÂÿ©2*ÿ«8=ÿ¸/EîÈ)HÖß%RÃì)l±ß1‚¡ÒE’—ÊZŸ‘Ãi§Ž¿t­¼|±‹º´ˆ¹ƒ¶…¸„¸ƒ·†¹¶‡ºµ‰»~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼~µ‹¼ÿ«0*ÿ±/8öÂ&<ÜÚ;Æë#W³ì*o£ß5‚–ÔJÍ]š‹Èk¡‰Äu¦†Â{ªƒÀ~¬¿€®¾‚°}½ƒ±{¼…²z»‡³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³y»ˆ³ÿ­.*þ»%0ãÒ-ÉèA¶÷#Z¥ì.o–á<ŒØO‹‡Ò_“„Íl™Êtž~Èx¡{Ç{£yÆ}¤xÅ¥vĦuçtĨs†©s†©s†©s†©s†©s†©s†©s†©s†©s†©s†©s†©s†©s†©s†©ÿ´$%ìÊ#Íå,¹öF§ú&[˜î5lŒåDz„ÞSƒ€ÙbŠ|ÕlxÒq“uÐu•sÏx—qÎz˜pÍ|™oÍ~šnÌ€›mÌ‚œlË„œlË„œlË„œlË„œlË„œlË„œlË„œlË„œlË„œlË„œlË„œlË„œlË„œlË„œlË„œõÁÑß ¼ó1ªÿGšü,YŽò]ù½?fîÈCmãÖMoÕÝNÄÓY‘µÉfŸ©Áq« »y³™¶€º”²…ÀŒ¯†Ä†­ˆÇ€«ŒÉ|ª’Êz«œÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊy«ŸÊÿ£5"ÿ B7ÿ¦AEÿ¯=Pþ¸;YóÄ6ÿ­9Aÿ¸4HðÆ3MßÙ6PÍå6g¾ä;{­×HŒ ÍX™—Æg¤’Ár«Ž½{°Œº´ˆ¸ƒ·„·…¹‚µˆ»´Š½|³¾z³‘¿z³“¿z³“¿z³“¿z³“¿z³“¿z³“¿z³“¿z³“¿z³“¿z³“¿z³“¿z³“¿z³“¿ÿ¦2"ÿ¦:4ÿ²3=÷À.BäÒ/AÏä.U¿ï3k¯á;~ ÖJ–Î[™Èi¡ŒÃs¨‰À{¬†¾¯‚¼²€»„³}º†µ{¹ˆ¶y¸‹·w·¸w·¹w·¹w·¹w·¹w·¹w·¹w·¹w·¹w·¹w·¹w·¹w·¹w·¹ÿ§1"ÿ¬31ÿ¹+6êÌ&6Òá&AÁï,Z°í3n¡á=•×MŒÐ^–‰Ëk†Çt¢ƒÄz¦Ã}©|Á€«zÀ‚¬y¿„­w¾†¯u¾‰°s½Œ±s½±s½±s½±s½±s½±s½±s½±s½±s½±s½±s½±s½±s½±ÿ©.!ÿ³*+òÅ",ÖÞ-Ãí#G²ù+]¢ì6o•âB}‹ÚRˆ…Ô`‚Ðl–~Ìs›{ÊwžxÉ{ vÈ~¢tÇ€£sÆ‚¤qÅ„¥pć¦nÄŠ§n˧n˧n˧n˧n˧n˧n˧n˧n˧n˧n˧n˧n˧ÿ¬* ú½"ÜÙÅë3´ú#J£ù.^•îÿ¤FJÿªFVü®Hbô³Kmî¸Owè½UáÁ^†ÖÀlŽÈ·q½®wª²§}´©¡‚»¡œˆÁš˜Æ”––É”ŸËŒ’¨ÌŠªÉŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆŠŽ¬ÆÿŸ6ÿœC.ÿŸF>ÿ¥EJÿ«EUü°Faö¶Ikð¼NtçÂU{ßÈa€ÑÃjĺp¸²u©­«{³£¥€»›¡†Á”ÅŽ›”ÈŠ™Ê†™¨Ë†”ªÉ†’«Æ†’«Æ†’«Æ†’«Æ†’«Æ†’«Æ†’«Æ†’«Æ†’«Æ†’«Æ†’«Æ†’«ÆÿŸ5ÿB.ÿ E=ÿ§DIÿ­CTþ³D_÷ºGhïÁMpåÉVuÜÎdzÌÆi¾¾nœ²¶t¨§°y²ž«~º•¦„ÀŽ£‹Äˆ¡’Ç„ŸšÉ€Ÿ§ÊšªÈ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æ‚˜«Æÿ 5ÿB.ÿ¡D=ÿ¨BHÿ¯ASÿ¶B]÷¾FeìÇMkãÒXmÖÓazÇÊgŒ¹Âm›¬¼r§¡¶w±˜±}¹­‚¾ˆª‰Ã‚¨Æ}§™Èz§¥É{¢«È}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æ}ž¬Æÿ 5ÿB.ÿ¢B<ÿª@Gÿ²>Qýº@YóÃD`èÏNcßÜYgÏØ`yÀÏfвÈkš¦Âp¦›¼v¯‘¸{·‰µ¼‚²‡À}°ŽÃx®–Åv­¡Æu¬¬Æw¦­Åw¦­Åw¦­Åw¦­Åw¦­Åw¦­Åw¦­Åw¦­Åw¦­Åw¦­Åw¦­Åw¦­Åÿ 4ÿžA.ÿ¤@;ÿ¬=Eÿµ;N÷¿>UìËDYáÚOZÔßQlÆÚZ}¸Ób‹«Îi˜ŸÆq¤•Àw­Ž»~´‡·ƒ¹´‡½|²Œ¿y±“Áv°›Ât°¦Âr°­Âr°­Âr°­Âr°­Âr°­Âr°­Âr°­Âr°­Âr°­Âr°­Âr°­Âr°­Âÿ¡3ÿžA/ÿ§=:ÿ°:Cýº8JðÆ;OãÕENÕáF_ÈâKqºÝR¬Õ[ŸÌf›–Æp¤Àx«Š¼±„¹ƒµ€·‡¸|¶‹»y´¼w´—½v´¡½t³¥¾t³¥¾t³¥¾t³¥¾t³¥¾t³¥¾t³¥¾t³¥¾t³¥¾t³¥¾t³¥¾t³¥¾ÿ¢3ÿ >.ÿª97ÿ´5?öÀ5DçÏ9E×ßÿ«BHÿ±DRú·HZð½NaæÄVgÞÉbmÎÁgÁ¹m޶±r›«ªx¦¢¥~®™ „µ’‹ºŒš“¾‡˜›À„—¤Â‚–¯Âƒ“°À„‘²¾„‘²¾„‘²¾„‘²¾„‘²¾„‘²¾„‘²¾„‘²¾„‘²¾„‘²¾„‘²¾ÿ›3ÿšA&ÿŸB3ÿ¦@=ÿ­@Gÿ´BO÷»GWíÃM]äÌX`ÙÍ`lÉÅf~¼½k°µqš¥¯v¥œª|­“¦‚´Œ¢‰¹† ½ž™¿}ž¢Á{ž¯Á}™°À–²¾–²¾–²¾–²¾–²¾–²¾–²¾–²¾–²¾–²¾–²¾ÿœ3ÿšA&ÿ A2ÿ¨?<ÿ°>Eÿ·AMôÀESêÉNVâÕZWÒÑ^kÄÉd}¶ÁjŒª»o™Ÿµt¤–°z¬¬€²†©‡·§Ž»z¦–¾w¥ ¿t¦­¿w¡±¿z²¾z²¾z²¾z²¾z²¾z²¾z²¾z²¾z²¾z²¾z²¾ÿ3ÿ›A&ÿ¢?1ÿª<:ÿ³IðÆDMæÒOMÜÜWVÌÕ]j¾Íc{°Çh‹¤Ám—™¼s¢¸xª†´~°²…µy°Œ¸t¯•»q®Ÿ¼n¯«½qª³¼t¥³¼t¥³¼t¥³¼t¥³¼t¥³¼t¥³¼t¥³¼t¥³¼t¥³¼t¥³¼t¥³¼ÿ3ÿ›@&ÿ¤<0ÿ­98ÿ¶9?õÁ%ÿ§9.ÿ±65û¼6:íÉ:<àÚD:ÒâGLÇâM^¹ÞTn¬Ù[|ŸÔbˆ”Ðh“ŠÌo›‚Çw¢|Ã~¨vÀ„¬r¾Š¯o¼‘±m¼˜²k»¡³j»­²gº¶´gº¶´gº¶´gº¶´gº¶´gº¶´gº¶´gº¶´gº¶´gº¶´gº¶´ÿŸ2ÿ :$ÿª4,ÿµ21óÃ23ãÔ80ÓáW¬éEgžçKu’àS€‰Ù^‰‚Ôh‘|Ðq–xÌw›tÊ}žpÈ‚¡nLJ£kÅ‹¥iĦhÄ–§fÞ¨eÃ¥¨eÃ¥¨eÃ¥¨eÃ¥¨eÃ¥¨eÃ¥¨eÃ¥¨eÃ¥¨eÃ¥¨eÃ¥¨eÃ¥¨ÿ¡/ÿ¨/ÿµ*"ðÆ$!ØÝ# Èé-5ºò5I¬ñžÿ4N’ú?\ˆòJfìUoyè^uräd{nák~jßphÞu„eÜy…cÛ}‡bÚˆ`Ú„‰_Ù‡Š]Ø‹‹\׌[Ö”[Ö”[Ö”[Ö”[Ö”[Ö”[Ö”[Ö”[Ö”[Ö”[Ö”ÿ° íÆÍÛ »ó¬ÿ!.žÿ,?’ÿ7M‡ýDXöOaxñYhqí_mjëdqgèjtdçowbåty`äxz_ã{{]ã~|\â}[á„~ZáˆYàŒ€XàXàXàXàXàXàXàXàXàXàXàó½ ÌÏ ½å ¬ÿžÿ$/’ÿ/=‡ÿ=IÿIRxüTZpøZ_iô_ddòegaðji^ïnk\îrm[ívnZìyoXì|pWë~pVëqUê„rTêˆsSé‹tSé‹tSé‹tSé‹tSé‹tSé‹tSé‹tSé‹tSé‹tSé‹tSé‹tÌÆ½Ô­õŸÿ“ÿ'-ˆÿ49~ÿBCwÿMJnÿSPgÿYUbü^X^ûd[[ùh]Yøl^W÷p`V÷saUövbTõxbSõ{cRô}dQô€dPóƒeOó†fOó†fOó†fOó†fOó†fOó†fOó†fOó†fOó†fOó†fOó†f½Ë®ÛŸÿ“ÿˆÿ*(~ÿ82vÿD:mÿKAeÿQF_ÿWI[ÿ]LXÿbNUÿfPSÿjQRÿmRPÿpSOÿrTNÿuTMÿwUMÿyULþ{VKþ~WJýWJýWJýWJýWJýWJýWJýWJýWJýWJýWJýWÿ-ÿŒ>ÿŠL.ÿ’S;ÿ”WHÿ•\Tý“b`õ‘jkïrvé‰|ä…„†à€‹Ü|‘’Úy—–Øvœ™Õs ›Ôq¥Óo©ŸÒn® Òm³¡Ñl¹¢ÑkÀ£ÍlÅ£ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÿ-ÿŒ>ÿŠL.ÿ’S;ÿ”WHÿ•\Tý“b`õ‘jkïrvé‰|ä…„†à€‹Ü|‘’Úy—–Øvœ™Õs ›Ôq¥Óo©ŸÒn® Òm³¡Ñl¹¢ÑkÀ£ÍlÅ£ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÿ-ÿŒ>ÿŠL.ÿ’S;ÿ”WHÿ•\Tý“b`õ‘jkïrvé‰|ä…„†à€‹Ü|‘’Úy—–Øvœ™Õs ›Ôq¥Óo©ŸÒn® Òm³¡Ñl¹¢ÑkÀ£ÍlÅ£ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÿ-ÿŒ>ÿŠL.ÿ’S;ÿ”WHÿ•\Tý“b`õ‘jkïrvé‰|ä…„†à€‹Ü|‘’Úy—–Øvœ™Õs ›Ôq¥Óo©ŸÒn® Òm³¡Ñl¹¢ÑkÀ£ÍlÅ£ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÿ-ÿŒ>ÿŠL.ÿ’S;ÿ”WHÿ•\Tý“b`õ‘jkïrvé‰|ä…„†à€‹Ü|‘’Úy—–Øvœ™Õs ›Ôq¥Óo©ŸÒn® Òm³¡Ñl¹¢ÑkÀ£ÍlÅ£ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÈnÆ¢ÿ-ÿ>ÿŒL.ÿ”S;ÿ•VGÿ–[Tý•a`ö’hkïpué‹z䇃‡ß‚ŠÜ~’Ùz–—Öw›šÕt Ór¥ŸÒp©¡Ñn®¢Ðm´£Ðlº¤Ðl¤ÊnĤÄoĤÄoĤÄoĤÄoĤÄoĤÄoĤÄoĤÄoĤÄoĤÄoĤÿŽ-ÿŽ>ÿŽK.ÿ•Q:ÿ˜TGÿ˜XSþ˜^_ö•djï’luéŽv~䊀‡ß…‡ŽÛ€Ž”Ø|”˜ÕyšœÓvŸŸÑs¤¢Ðqª¤Ïo¯¥În¶¦Îm½§Ên§Ãp§½q§½q§½q§½q§½q§½q§½q§½q§½q§½q§ÿ-ÿŽ>ÿJ-ÿ—O:ÿ™QFÿ›VRþš[^÷˜aið•htê‘q~äŽ|†ß‰„ŽÛƒ‹”×’šÔ{˜žÒwž¡Ðt¤¤Îrª¦Íp±¨Ío¹©ËoÁ©ÃqÁ©¼rÀª·sÀª·sÀª·sÀª·sÀª·sÀª·sÀª·sÀª·sÀª·sÀª·sÀªÿ-ÿ>ÿ’J-ÿ˜M9ÿ›OEÿSQÿX\ø›^hñ™erê•m|ä‘w†ßŒŽÛ‡‰•ÖšÓ}–ŸÐy£Îu£¦Ír«©Ìp³ªËo½«År¿«½s¿¬¶t¾¬±u¾­±u¾­±u¾­±u¾­±u¾­±u¾­±u¾­±u¾­±u¾­±u¾­ÿ-ÿ>ÿ“I-ÿ™L9ÿNDÿŸQPÿŸV[ùž\fòœbqë˜i{å”s„à}ÛŠ†”Ö„›Ò• Ïzœ¥Ív£¨Ës««Êqµ­Æq¾­¾t½®¶u½®°v½®¬w½®¬w½®¬w½®¬w½®¬w½®¬w½®¬w½®¬w½®¬w½®¬w½®ÿ-ÿ>ÿ•I,ÿ›J8ÿžLCÿ¡OOÿ¢TZú¡Yeó _oìfyæ˜oƒà“yŒÛŽ‚“Ö‡Š›Ò’¡Ï|š¦Êx¢ªÇu«­Ãs´¯¿s¼°·u¼°°w»°ªx»°§y¼°§y¼°§y¼°§y¼°§y¼°§y¼°§y¼°§y¼°§y¼°§y¼°ÿ‘-ÿ‘>ÿ–H,ÿœH7ÿ JBÿ£MMÿ¤RXû¥Wcô¤]mî¡cwèžk€â˜u‰Ü’~’ÓŒ‡šÌ†¡Æ€—§Á|ž¬½y¦¯¹v¯±·vº²¯wº²ªyº²¥zº²¢{»±¢{»±¢{»±¢{»±¢{»±¢{»±¢{»±¢{»±¢{»±¢{»±ÿ‘-ÿ‘>ÿ˜G,ÿG7ÿ¡HAÿ¥KLÿ§PVü¨Uaõ¨[kí§atå¤i~ÞŸs‡Ô˜}Ë‘„šÄŠŒ¢¾„“¨¸€š­´|¢°°z«³­yµ´¨z¹´¤{¹´ }¹³}º³}º³}º³}º³}º³}º³}º³}º³}º³}º³ÿ’-ÿ’>ÿ˜F+ÿžF6ÿ£GAÿ§IKÿªNUú«S^ò¬Yhé¬`qâ©hzÙ¥sƒÍœzÅ•š½Žˆ¢·ˆ©±„—®¬€Ÿ±¨~§´¥}±µ¡}¸¶~¸µš¹´™€º³™€º³™€º³™€º³™€º³™€º³™€º³™€º³™€º³™€º³ÿ’-ÿ’>ÿ™E+ÿŸD5ÿ¤E@ÿ©HIÿ¬LSø®R\ï°Xeæ±_mÞ°ivÒ©q‚È x¿˜~š·’…¢°ŒŒ©ªˆ”®¤…œ² ‚¤µ®¶š€··—·¶•‚¹´”‚¹³”‚¹³”‚¹³”‚¹³”‚¹³”‚¹³”‚¹³”‚¹³”‚¹³”‚¹³ÿ“-ÿ’=ÿšD*ÿ C5ÿ¦D>ÿ«FHÿ®KQõ²PYìµWaä·^iÚ´isͬo‚¤v¹œ|™±–ƒ¢ª‘Š©£Œ‘®ž‰™²™‡¡µ–…«·“…¶·‘„··…¸µ…¹´…¹´…¹´…¹´…¹´…¹´…¹´…¹´…¹´…¹´ÿ“-ÿ“=ÿ›C*ÿ¢B4ÿ¨B=ÿ­EFü±JOòµOVéºV]á½`dÔ¸grȯm½§tŽ´ z™«š€¢¤•‡©‘Ž®—Ž–²’‹ŸµŠ¨·ŒŠ³¸‹‰··‹ˆ¸µ‹ˆ¹´‹ˆ¹´‹ˆ¹´‹ˆ¹´‹ˆ¹´‹ˆ¹´‹ˆ¹´‹ˆ¹´‹ˆ¹´‹ˆ¹´ÿ“-ÿ“=ÿœA*ÿ£@3ÿ©A<ÿ¯DEú´HLðºNSç¿VYÞÂ``Ï»fqól¸«rŽ®¤x˜¥ž~¡žš„¨—–Œ®‘“”²Œ‘œµˆ¦·…±¸…޶·†¸¶‡Œ¸µ‡Œ¸µ‡Œ¸µ‡Œ¸µ‡Œ¸µ‡Œ¸µ‡Œ¸µ‡Œ¸µ‡Œ¸µ‡Œ¸µÿ”,ÿ”=ÿ@)ÿ¤>2ÿ«?;ÿ±BBø¸GIí¾NOåÆWSÚÆ^_˾dq¾¶j€³¯p©©v˜ £|¡˜Ÿ‚¨‘›‰­Š™’²…–𵕤·•®·~”··‘·¶‚¸µ‚¸µ‚¸µ‚¸µ‚¸µ‚¸µ‚¸µ‚¸µ‚¸µ‚¸µÿ”,ÿ”=ÿž?(ÿ¦=1ÿ­>9ÿ´A@ô¼FEëÄMIâÎXKÓÊ\^ÆÂcp¹ºh®´nŒ£®t—š©zŸ’¥€§Š¡‡¬„Ÿ±—´{œ¡¶x›¬·w›·¶z—¸µ|•¹´|•¹´|•¹´|•¹´|•¹´|•¹´|•¹´|•¹´|•¹´|•¹´ÿ•,ÿ•=ÿ ='ÿ¨;0ÿ°<7ý¸?<ñÁD@èËNBÞÓUJÎÍ[]ÀÆan´¿g~¨¹mŠ´r•”¯xž‹«~¥„¨…ª}¦Œ¯x¤•²t£Ÿ´q£ªµp£¸µsž¹´v›¹³v›¹³v›¹³v›¹³v›¹³v›¹³v›¹³v›¹³v›¹³v›¹³ÿ–,ÿ—<ÿ¢:&ÿª9.ÿ³:4ù½<8îÈC9ãÕP7×ÚRHÈÒY\ºË_m­Åe|¡Àk‰—ºp“¶vœ„³|¢}°ƒ¨w®Š¬r­“¯n¬±k¬¨²i­¶²l¨»±o£»±o£»±o£»±o£»±o£»±o£»±o£»±o£»±o£»±o£»±ÿ—,ÿš;ÿ¤7%ÿ­6+ÿ·70óÃ:1æÐC0ÜßJ5ÏßRGÁØXZ³Ñ^k¦ËczšÇi†Ân†¿t˜}¼zŸvº¤p¸‰¨k·’«h·œ­e·§®d·´®e³½®h­½®h­½®h­½®h­½®h­½®h­½®h­½®h­½®h­½®h­½®ÿ˜,ÿ9ÿ§4#ÿ±3(ù½2*êË7)ÜÝ>)ÐãF:ÅâMK¸ÞUZ¬Ù\hžÓbw’Ïg‚ˆËmŒ~És”vÇyšpÅŸjĉ¢fÃ’¥bܧ`æ¨_ô¨_Á¨aºÁ©aºÁ©aºÁ©aºÁ©aºÁ©aºÁ©aºÁ©aºÁ©aºÁ©aºÁ©ÿ™,ÿ 5ÿª1 ÿ¶.#ðÅ-"ߨ3Ðã:.ÄèB@¸åIP«áN_žÞUl’Û\w‡Øc~Õj‰vÔqoÑy”k΀˜g̈›dÊbɘŸ`É¡ _É« _ɹŸ\Èâ\Èâ\Èâ\Èâ\Èâ\Èâ\Èâ\Èâ\Èâ\Èâÿ›,ÿ¤0ÿ¯,ø¾'äÑ&Ñâ- Äë73·ë>EªéETžçLb’åRn†ãXx}à`vÜi†pØq‹kÕxhÓ’eц”bÏ–`Δ˜^Λ™]Í£š\Í­š[Í·š[Í·š[Í·š[Í·š[Í·š[Í·š[Í·š[Í·š[Í·š[Í·šÿ,ÿ¨+ÿ·$ëÊÓàÄë+&·ñ48ªðÿ>K†þGV}øQ^vóYenð_jhíendêkraéqt_çvv]æ{x[åyYä„zXãˆ|WãŒ}Vâ‘~Tá—SáœSáœSáœSáœSáœSáœSáœSáœSáœSáœÿ±ÔÇ ÆÖ +¶÷¨ÿ ›ÿ+0ÿ6=…ÿ@H}ÿKQuýTXmùZ]gö`bcófe_òkg\ðpiZïtkXîxlWí|nUì€oTì„pSëˆqRëŒqQê‘rPé•sPé•sPé•sPé•sPé•sPé•sPé•sPé•sPé•sPé•sÖ¾ÅË·Û ¨ÿ›ÿ"!ÿ..…ÿ9:|ÿDCtÿNJlÿTPeÿZT`ý_X]ûeZZúj\Wùn^Uør_T÷v`RöyaQö}bPõ€cOô„dNô‡dMóŒeLófLófLófLófLófLófLófLófLófLófÄÂ¶Ñ¨í ›ÿÿ%…ÿ1*|ÿ<4sÿF;jÿLAcÿSF^ÿYIZÿ^LVÿcNTÿhPRÿlQPÿoROÿrSNÿvTLÿyUKÿ|UJþVIþ‚WHý†XGýŠXGýŠXGýŠXGýŠXGýŠXGýŠXGýŠXGýŠXGýŠXGýŠX¶É¨Ù›ÿÿ…ÿ'{ÿ3$qÿ<,hÿC2aÿJ7[ÿP;VÿV=Sÿ\@Pÿ`ANÿdCLÿhDJÿkEIÿnFHÿqFGÿtGFÿvHEÿyHDÿ|ICÿ€IBÿƒJBÿƒJBÿƒJBÿƒJBÿƒJBÿƒJBÿƒJBÿƒJBÿƒJBÿƒJÿ‚( ÿ‚9ÿH%ÿŠO1ÿŽV=ÿ\IÿŽcTþŠj^ø…qhò€zpî|ƒwêx‹}çt’‚äq˜…âoˆám¢‹àk§ßi¬ŽÞh±Ýg·‘Ýf½‘ÜeÅ’ÜeÍ’ÔfÑ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÿ‚( ÿ‚9ÿH%ÿŠO1ÿŽV=ÿ\IÿŽcTþŠj^ø…qhò€zpî|ƒwêx‹}çt’‚äq˜…âoˆám¢‹àk§ßi¬ŽÞh±Ýg·‘Ýf½‘ÜeÅ’ÜeÍ’ÔfÑ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÿ‚( ÿ‚9ÿH%ÿŠO1ÿŽV=ÿ\IÿŽcTþŠj^ø…qhò€zpî|ƒwêx‹}çt’‚äq˜…âoˆám¢‹àk§ßi¬ŽÞh±Ýg·‘Ýf½‘ÜeÅ’ÜeÍ’ÔfÑ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÿ‚( ÿ‚9ÿH%ÿŠO1ÿŽV=ÿ\IÿŽcTþŠj^ø…qhò€zpî|ƒwêx‹}çt’‚äq˜…âoˆám¢‹àk§ßi¬ŽÞh±Ýg·‘Ýf½‘ÜeÅ’ÜeÍ’ÔfÑ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÏhÒ’ÿ‚( ÿƒ9ÿƒG%ÿŒN1ÿU=ÿ‘[HÿaSþh^øˆohòƒxpí~‚xézŠ~æv‘ƒäs—‡âpŠàn¢Œßk§ŽÝj¬Ýh²‘Üg¸“Ûf¿“ÛfÇ”ÙfДÏhГËiДËiДËiДËiДËiДËiДËiДËiДËiДÿƒ( ÿƒ9ÿ†F$ÿŽM0ÿ“T<ÿ”XGÿ’^Sÿe]øŒmgò†upíxé}‡~åy„âu•ˆàr›ŒÞo¡Ýl§‘Ük¬“Ûi³”Úhº–ÙgÖÙfÍ—ÐiΖÈjΗÄkÍ—ÄkÍ—ÄkÍ—ÄkÍ—ÄkÍ—ÄkÍ—ÄkÍ—ÄkÍ—ÄkÍ—ÿ„( ÿ„9ÿˆE$ÿ‘L0ÿ•Q;ÿ–VGÿ•\Rÿ“b\ùjfóŠrpí…{x逄å{Œ…âw“ŠßsšŽÝp ‘Ûm¦”Úk­–Ùi´—Øh½˜ØgÈ™ÑiÌ™ÉkÌ™ÂlÌš½mËš½mËš½mËš½mËš½mËš½mËš½mËš½mËš½mËšÿ…( ÿ…9ÿŠD$ÿ“K/ÿ—O:ÿ˜TFÿ—YPÿ–`[ù’geóŽooî‰xwéƒä~Š…áy‘‹Þu˜ÜqŸ“Ún¦–Øl®˜×j¶šÖhÁ›ÓiË›ÊkË›ÂmÊœ»nʸoʸoʸoʸoʸoʸoʸoʸoʸoÊÿ…( ÿ†9ÿŒD#ÿ•J/ÿ™M:ÿšQDÿšVOÿ™]Zú–ddô’knîtvé‡~~䇅à|‹Ýw—Ûsž•Øo¦˜Öl¯šÕj¹œÔiÆËlÉÃmÉž¼oÈŸµpÈŸ²qÈŸ²qÈŸ²qÈŸ²qÈŸ²qÈŸ²qÈŸ²qÈŸ²qÈŸ²qÈŸÿ†' ÿ†9ÿŽC#ÿ—I.ÿšK9ÿœOCÿTNÿœZXûš`bõ–hlï‘ouê‹y~å…ƒ…àŒŒÝy•‘Ùt–Ôp¥šÐn®Íl·ŸËkàÃnÇ »oÇ¡µqÆ¡¯rÆ¡¬sÆ¡¬sÆ¡¬sÆ¡¬sÆ¡¬sÆ¡¬sÆ¡¬sÆ¡¬sÆ¡¬sÆ¡ÿ‡' ÿ‡9ÿB#ÿ˜G-ÿœI8ÿŸLBÿ QLÿ WVûž^`ô›ejí–lsçv|ኀ„Û„‰‹Ó~‘’Îx™˜Ét¡œÆq©ŸÂp²¢Ào½£ºpÅ£³rŤ®sŤ©tÅ£¦uÅ£¦uÅ£¦uÅ£¦uÅ£¦uÅ£¦uÅ£¦uÅ£¦uÅ£¦uÅ£ÿ‡' ÿˆ8ÿ‘A"ÿšE,ÿžG6ÿ¡J@ÿ£PJþ£UTö¢\]ï bgèœipá–tyÚ}‚щ†‹Ê‚“Å}•™Àyž¼v¥¡¸s­¤µr¸¥²ræ¬tæ§væ£wÄ¥¡xÄ¥¡xÄ¥¡xÄ¥¡xÄ¥¡xÄ¥¡xÄ¥¡xÄ¥¡xÄ¥¡xÄ¥ÿˆ' ÿˆ8ÿ“A"ÿ›D,ÿ E5ÿ£I?ÿ¥NHû§TQó¦Z[ë¥`dã¢hmÜsvÑ•z‚É‚‹Â‡Š“¼‚‘š·}™Ÿ²z¡£¯w©¦«v³§©vÀ¨¤w¨¡y§zç›zæ›zæ›zæ›zæ›zæ›zæ›zæ›zæ›zæÿˆ' ÿ‰8ÿ•@!ÿB+ÿ¢D4ÿ¥H=ÿ¨LFøªROï«XWç«_`à¨iiÔ¡puË™xÂ’‹»‹†”µ†Žš¯‚• ª~¤¦{¦§£z°© y¼ªzÁ©š|Á©˜}¨–}§–}§–}§–}§–}§–}§–}§–}§–}§ÿ‰' ÿ‰8ÿ–?!ÿžA*ÿ£B3ÿ§F;þ«KDõ®QLì°WTä±^\Û­hfÏ¥nuÅu¼–|‹µƒ”®Š‹›¨†’ £‚š¥ž€¢¨›~¬ª˜~¸«–~À«”Àª“€Á¨’€Â¨’€Â¨’€Â¨’€Â¨’€Â¨’€Â¨’€Â¨’€Â¨’€Â¨ÿ‰' ÿŠ8ÿ˜? ÿŸ?)ÿ¥A2ÿªE:ü®IAò±OIéµVPá·_WÕ±eeʨltÀ¡s€·šz‹¯””¨ˆ›¢Š œ‡—¥—„ ¨”‚©ª‘‚µ«‚¿«ŽƒÀªƒÁ©ƒÁ¨ƒÁ¨ƒÁ¨ƒÁ¨ƒÁ¨ƒÁ¨ƒÁ¨ƒÁ¨ƒÁ¨ÿŠ' ÿ‹8ÿ™> ÿ¡>(ÿ¦@0ÿ¬C8ù±H?ðµNEçºUKÞ»^TдdeŬks»¤q€±žxŠ©˜~“¢“…š› –Œ•¥‘‰¨‡§«Š‡²¬ˆ‡¿¬ˆ‡À«ˆ†À©ˆ†Á¨ˆ†Á¨ˆ†Á¨ˆ†Á¨ˆ†Á¨ˆ†Á¨ˆ†Á¨ˆ†Á¨ˆ†Á¨ÿŠ' ÿŒ7ÿ›=ÿ¢='ÿ¨?/ÿ®B6÷´G<íºMAäÀVFÙ¿\SË·cdÀ¯is¶¨o¬¢uФœ|“œ˜ƒš•”Š ‘’¥ŠŽ›¨†¤«ƒŒ¯¬½¬‚Œ¿«ƒŠÀ©ƒŠÁ©ƒŠÁ©ƒŠÁ©ƒŠÁ©ƒŠÁ©ƒŠÁ©ƒŠÁ©ƒŠÁ©ƒŠÁ©ÿ‹' ÿŽ7ÿœ<ÿ£;&ÿª=-ÿ±@3ô¸E8ê¿L<âÇU@ÓÂZRǺac»³gr°­m~§§s‰ž¡z’–€™šˆŸ‰—¤„”˜¨“¢ª|’­«z’º¬{‘À«}Á©~ŽÁ¨~ŽÁ¨~ŽÁ¨~ŽÁ¨~ŽÁ¨~ŽÁ¨~ŽÁ¨~ŽÁ¨~ŽÁ¨ÿŒ' ÿ6ÿ:ÿ¥:%ÿ­;+ü´>0ñ¼C4çÅL6ÞËR?ÎÆYQ¾`b¶¸fp«±l}¡¬rˆ˜§x‘£~˜‰ …ž‚£}›–§x™Ÿ©u˜ªªs™·«t˜Àªw”Á©x“¨x“¨x“¨x“¨x“¨x“¨x“¨x“¨x“¨ÿŒ' ÿ‘5ÿŸ8ÿ§8#ÿ¯9(ù¸<,îÂB.åÍL-ØÐO=ÉÉWP¼Ã^`°¼do¥·j|›²p†’­vŠ©|–‚¦ƒœ|¤‹¡v¢“¥r¡§o ¨©m µ©m Á¨p›Â§r™Â§r™Â§r™Â§r™Â§r™Â§r™Â§r™Â§r™Â§r™Â§ÿ& ÿ”4ÿ¡6ÿª6!ÿ³6%õ¾9'êÉ@&àÖI(ÑÕN<ÃÎVN¶È\_ªÂcmŸ½hz”¸n„‹´tƒ±z”|®šu¬ˆžp«‘¢k©›¤h©¦¦f©³¦fªÃ¥i¤Ä¥k¡Ä¥k¡Ä¥k¡Ä¥k¡Ä¥k¡Ä¥k¡Ä¥k¡Ä¥k¡Ä¥k¡Ä¥ÿŽ& ÿ—3ÿ£4ÿ­3þ¸2 ðÅ5 ãÓ?ØÞE&ÊÛM:½ÓTL°Î[]£Éak˜ÄgwÀl„½r‰|ºxu¸–o¶‡šjµe´š b³¥¡a´±¢`µÂ¡b¯Æ¢d«Æ¢d«Æ¢d«Æ¢d«Æ¢d«Æ¢d«Æ¢d«Æ¢d«Æ¢d«Æ¢ÿ& ÿ›1ÿ¦1ÿ±.÷¾-çÎ1ÙÞ9ÍãD(ÂàM8µÛSJ¨ÕYZœÐ_hÌes†Ék}}Æq…uÄw‹nÃ~iÁ†”dÀ—`Àšš]À¥›[À±›ZÁÁ›[¼Êœ]·Ê]·Ê]·Ê]·Ê]·Ê]·Ê]·Ê]·Ê]·Êÿ‘& ÿŸ/ÿª-ÿ·(íÈ&ÚÜ)Ìä6Áæ@.¶ãH>ªàNLžÝVY’Ú]eˆÖco~ÔjxvÒpnÐw…hωc·_Î[Íš’YÍ¥“Wβ“VÏ“VËДWÅÏ•WÅÏ•WÅÏ•WÅÏ•WÅÏ•WÅÏ•WÅÏ•WÅÏ•WÅÏ•ÿ“& ÿ£,ÿ°&õÀ ßÕÍä'Áë4#µê=3©çEBåKP‘ãR\†âXf|à_ntßfulÞmzfÞuaÝ}‚]܆…ZÛˆXÙ˜ŠVØ¡‹Tج‹TØ·ŒSØÉ‹SÖÖ‹SÖÖ‹SÖÖ‹SÖÖ‹SÖÖ‹SÖÖ‹SÖÖ‹SÖÖ‹SÖÖ‹ÿ—$ ÿ©& +þ¸ æÎÎãÀî&´ð2(¨î;8œíCF‘ìKR†ìR\|ëYdsë^kjêdpeèluaætx^ä|{[âƒ}Yà‹Vß’UÞšƒSÞ¢ƒRݪ„Qݶ„QÝ¿„QÝ¿„QÝ¿„QÝ¿„QÝ¿„QÝ¿„QÝ¿„QÝ¿„QÝ¿„ÿŸ!ÿ°éÅ ÐÙ Àî ³ö&§õ1,›õ;:õDG…õLQ|õSZsõY`kó_feðfjaímm]ëtpZêzsXètVç‡vTæxSå”yQä›zPä¡{Oãª|Nã°|Nã°|Nã°|Nã°|Nã°|Nã°|Nã°|Nã°|Nã°|ÿ¨ë¼ ÍÌ Áà ²ú¥ü' šý2.ý=;…þEE{ÿMNrÿTUkûZZdø`_`ögb\ômeYòrgWñxiUð~jSïƒlQî‰mPínNì”oMëšpLë¡qKê¦rKê¦rKê¦rKê¦rKê¦rKê¦rKê¦rKê¦rKê¦r÷³ Ìÿѱï¤ÿ™ÿ)!Žÿ4.„ÿ?9{ÿGAqÿNHjÿTNcÿZR^þ`VZüfXWûlZUúq\Sùv^Qøz_O÷`Nö„aLõ‰bKõŽcJô”dIóšeHóžfHóžfHóžfHóžfHóžfHóžfHóžfHóžfHóžfÍ»½Ç±Ø£ÿ˜ÿÿ, ƒÿ7+zÿA4pÿG;hÿMAaÿTE\ÿZIXÿ_KUÿeMRÿjOPÿnQNÿrRLÿwSKÿ{TIÿUHþ„VGþˆWFýWDý“XDü–YDü–YDü–YDü–YDü–YDü–YDü–YDü–YDü–Y½¿°Î¢à—ÿŒÿ"ƒÿ.yÿ8%nÿ>-fÿE2_ÿL7YÿR;UÿX>Qÿ]@OÿbBLÿfCJÿjDIÿnEGÿrFFÿvGEÿzHCÿ~HBÿ‚IAÿ†J@ÿ‹K?ÿK?ÿK?ÿK?ÿK?ÿK?ÿK?ÿK?ÿK?ÿK¯Æ¢Ö–÷ +‹ÿ‚ÿ$wÿ-lÿ3cÿ:$\ÿB(VÿI,QÿO/NÿU1KÿZ3Hÿ^5Fÿb6Dÿf7Cÿi8Aÿl8@ÿp9?ÿs:>ÿw:=ÿ{;<ÿ~<:ÿƒ<:ÿ†=:ÿ†=:ÿ†=:ÿ†=:ÿ†=:ÿ†=:ÿ†=:ÿ†=:ÿ†=ÿu$ÿv5ÿwCÿ€J'ÿ…R3ÿ†Y>ÿ…`HÿhRÿ|oZüwyb÷sƒhôoŒnñl“rïjšuíg xìe¥zëdª|êb¯}éaµ~è`»è_Àç_Ëæ^Õà`Û×bÞÔcßÔcßÔcßÔcßÔcßÔcßÔcßÔcßÿu$ÿv5ÿwCÿ€J'ÿ…R3ÿ†Y>ÿ…`HÿhRÿ|oZüwyb÷sƒhôoŒnñl“rïjšuíg xìe¥zëdª|êb¯}éaµ~è`»è_Àç_Ëæ^Õà`Û×bÞÔcßÔcßÔcßÔcßÔcßÔcßÔcßÔcßÿu$ÿv5ÿwCÿ€J'ÿ…R3ÿ†Y>ÿ…`HÿhRÿ|oZüwyb÷sƒhôoŒnñl“rïjšuíg xìe¥zëdª|êb¯}éaµ~è`»è_Àç_Ëæ^Õà`Û×bÞÔcßÔcßÔcßÔcßÔcßÔcßÔcßÔcßÿv$ÿw5ÿyBÿ‚I'ÿ‡Q2ÿˆX=ÿ‡_HÿƒfQÿ~nZûywb÷u‚iôqŠnñm’sîk™vìhŸyëf¤{êdª}éc¯èbµ€ça¼ç`Ä‚æ_΂ã_׃ÜaÛƒÒc݃Ïd݃Ïd݃Ïd݃Ïd݃Ïd݃Ïd݃Ïd݃Ïd݃ÿw$ÿx5ÿ|Aÿ…H'ÿŠO2ÿŒV=ÿ‹]Gÿ‡dQÿ‚lZû|tb÷xiótˆoðptíl—xëjž{ég¤~èfª€çd°‚æb¶ƒåa¾„å`Ç…å`Ó…ÝbÙ…ÓdÜ…ÌeÛ†ÉeÛ†ÉeÛ†ÉeÛ†ÉeÛ†ÉeÛ†ÉeÛ†ÉeÛ†ÉeÛ†ÿx$ÿx5ÿ~@ÿˆG&ÿN1ÿU<ÿŽ[Fÿ‹bPÿ†iYü€qb÷{{ióv…pïrŽuìn•yêkœ}èi£€çf©‚åe°„äc·…äbÀ‡ãaˇßbÕ‡ÕdÚ‡ÍeÙˆÆgÙ‰Äg؉Äg؉Äg؉Äg؉Äg؉Äg؉Äg؉Äg؉ÿy#ÿy4ÿ€?ÿŠF&ÿM0ÿ’S;ÿ‘ZEÿ`OÿŠgYü„na÷~xiòy‚pït‹vëp“{ém›çj¢‚åg©„äe°†ãd¹ˆâbÉâbЊØdØŠÎfØŠÇg׋ÀhÖŒ¾iÖŒ¾iÖŒ¾iÖŒ¾iÖŒ¾iÖŒ¾iÖŒ¾iÖŒ¾iÖŒÿy#ÿz4ÿƒ>ÿE%ÿ“L/ÿ•Q:ÿ”WDÿ’]NÿŽeXüˆka÷‚tiò|pîwˆvës‘|èo™€æk¡„äh©‡âf±‰ád»‹àcÇŒÜcÔŒÏfÖŒÇhÕÀiÔŽºjÔŽ¸kÔŽ¸kÔŽ¸kÔŽ¸kÔŽ¸kÔŽ¸kÔŽ¸kÔŽ¸kÔŽÿz#ÿ{4ÿ…=ÿD$ÿ–J.ÿ—N8ÿ—TBÿ•ZLÿ’aVüŽi_ö‡phòzpí{…wêvŽ|æq—ãmŸ†àj¨‰Ýg°ŒÚf»ÖeÇŽÑfÔÇhÓ¿jÓ¹kÒ‘³lÒ‘²mÒ‘²mÒ‘²mÒ‘²mÒ‘²mÒ‘²mÒ‘²mÒ‘²mÒ‘ÿ{#ÿ|4ÿˆ<ÿ’C$ÿ˜H-ÿšL7ÿšRAÿ™XJü—_Tö“f]ðnfë‡woæ€vá{‹}Üu“ƒ×qœ‡Òn¤‹Ïk¬ŽÌiµ‘ÉhÀ’ÇhÏ“¿kÑ“¸lГ²mД­oГ«oÑ“«oÑ“«oÑ“«oÑ“«oÑ“«oÑ“«oÑ“«oÑ“ÿ|#ÿ}4ÿŠ;ÿ”A#ÿšF,ÿœK5ÿP?ÿVHø›]Qñ˜c[ë“kdäumÞ†~uØ€‡|ÑzƒÌv—‰ÇrŸÄo§‘Àm°“¾l»•»kÈ–¶mÏ–°oΖ«pÏ–¦qÏ•¥rÏ•¥rÏ•¥rÏ•¥rÏ•¥rÏ•¥rÏ•¥rÏ•¥rÏ•ÿ|#ÿ}4ÿŒ:ÿ—@"ÿœE+ÿŸI4ÿ N<û¡TEô ZNìaXå™iaÞ“sjÕŒ{tÎ…ƒ}È‹„Âz“оv›ºs£“¶q«–³o¶˜±o˜­p͘¨r͘¤s͘ tΗŸtΗŸtΗŸtΗŸtΗŸtΗŸtΗŸtΗŸtΗÿ}#ÿ3ÿŽ9ÿ™?!ÿžC)ÿ¡G2ÿ£L:ø¥RCð¤XKè£_TáŸh]טphΑxtÆŠ€}À„ˆ…º‹µ{—±wŸ”­u§—ªs±™§s½›¥sË› uËšvÌššwÍ™™w͘™w͘™w͘™w͘™w͘™w͘™w͘™w͘ÿ~"ÿ€2ÿ8ÿ›? ÿ B(ÿ¤F0þ¦K8ô¨P@ì©WGä©]PÜ¥fZÐnhÇ•us¿Ž}}¹‰„…³ƒŒŒ­“‘©|›•¤y¤™¡w­›žw¹œœwÈœ™xÊœ—yË›•zÌš”zÌ™”zÌ™”zÌ™”zÌ™”zÌ™”zÌ™”zÌ™”zÌ™ÿ~"ÿ‚2ÿ’7ÿœ=ÿ¡@'ÿ¦D.û©I5ñ¬O<é®UCá¯]KÕ¨dYË¡kg™ss¹“z}²…¬ˆ‰Œ¦„‘¡€˜–} š™|ªœ–{¶”{Äž’|Ê‘}Êœ}Ë›}Ìš}Ìš}Ìš}Ìš}Ìš}Ìš}Ìš}Ìšÿ"ÿ„1ÿ“6ÿž<ÿ£?%ÿ¨B,ø­G2ï°M9æ´T?ݳ[IЬbYƤjf¼qr´—w|¬‘~…¦Œ†Œ ˆ‘š…•––‚žš’€§²ž€ÁžŒ€Éž‹€ÊŠ€Ë›Š€Ë›Š€Ë›Š€Ë›Š€Ë›Š€Ë›Š€Ë›Š€Ë›Š€Ë›ÿ"ÿ…0ÿ•6ÿŸ;ÿ¥=$ÿ«A*õ°E/ìµL4ãºT9Ø·YH˯aXÁ¨hf·¡or¯›u|§•|„ ‘ƒ‹š‹‘”Š“–‡›š‹…¥ˆ„°Ÿ†„¾Ÿ……Éž…„É…„Êœ…„Ë›…„Ë›…„Ë›…„Ë›…„Ë›…„Ë›…„Ë›…„Ë›ÿ€"ÿ‡/ÿ—5ÿ :ÿ§<"þ­?'ó³D,éºK0á¿R5ÓºXGdz_W¼¬fe²¥mq©Ÿs{¡šz„š–‹”’ˆ‘Ž–‰Œ™š„ТЭŸŠ»Ÿ~ŠÈž‰É€ˆÊœ€ˆË›€ˆË›€ˆË›€ˆË›€ˆË›€ˆË›€ˆË›€ˆË›ÿ"ÿ‰.ÿ™5ÿ¢8ÿ©: û°=$ð¸B(æ¿J*ÝÃO4νVF¶^V·°ed­©kp¤¤qzœŸxƒ”›~ŠŽ—†ˆ•Ž•‚’–™~ œz«žx¸ŸwÉžyŽÊzŒË›{ŒË›{ŒË›{ŒË›{ŒË›{ŒË›{ŒË›{ŒË›{ŒË›ÿ"ÿ‹-ÿ›4ÿ¤7ÿ¬8ø´:!í½@#äÆI#×ÇL3ÉÁUE½º\U²´cc¨®ioŸ©oy–¥v‚Ž¡|‰‡ƒ›‹”|˜”˜w—›s–¨q–µžp–Ær”Êœt’Ë›u‘Ëšu‘Ëšu‘Ëšu‘Ëšu‘Ëšu‘Ëšu‘Ëšu‘Ëšÿ‚"ÿ, ÿ4ÿ¦4ÿ¯5ô¸7éÃ>àÍEÑËK2ÄÅTC¸¿[S­¹aa¢´hm™¯nw«t€ˆ§z‡¤{¢‰’u ‘–pž›™m¦›j³œižÃœkœË›n˜Ìšo—Ì™o—Ì™o—Ì™o—Ì™o—Ì™o—Ì™o—Ì™o—Ì™ÿƒ!ÿ+ ÿ 3ÿ©2ý³1ð¾4åË;ÚÔ?ËÏI0¾ÉRB²ÄYQ§¿`_œºfk’¶lu‰²r~¯x…z¬‹tª‡o¨“j§™–g¦¤˜d¦±™c§Á™d¥Í˜g Í˜hŸÍ—hŸÍ—hŸÍ—hŸÍ—hŸÍ—hŸÍ—hŸÍ—hŸÍ—ÿ„!ÿ“) ÿ¢0ÿ­.ø¸,ëÆ/àÕ8 ÒÚ=ÅÔH.¸ÏP@¬ÊXO Å^]•Ádh‹½jrƒºpz{·vtµ}‡n³…‹h²Žd±˜’a°£”^°°•]±¿•]±Ð”`ªÐ”a¨Ð”a¨Ð”a¨Ð”a¨Ð”a¨Ð”a¨Ð”a¨Ð”a¨Ð”ÿ†!ÿ—( +ÿ¦, ÿ±(òÀ& ãÐ(Ôß2 Éß>½ÛG,±ÖO=¤ÑVL™Í\YŽÉbe„Æhn{ÄovtÁu|mÀ|‚h¾„†c½‰_¼—Œ[¼¢ŽY¼¯X½¾ŽW¾ÔŽY¶ÓZ´ÓZ´ÓZ´ÓZ´ÓZ´ÓZ´ÓZ´ÓZ´Óÿˆ!ÿœ'ÿª' +ü¸! éÊÕÞ Éå0¾ã=´áF,¨ÞN:œÚUH‘Ö[U†Óa`|ÐgitÎnpmÍuvgË|{bË„~^Ê‚ZÊ—„WÊ£†Uʯ†T˾†SÌÕ†TÄÙˆUÁÙ‰UÁÙ‰UÁÙ‰UÁÙ‰UÁÙ‰UÁÙ‰UÁÙ‰UÁÙ‰ÿÿ¢%ÿ°òÂÙÛÉæ ½è/²ç:"§åC1›ãJ>áPJ†ßWT|Þ^]tÝedlÛljfÛtoaÚ|s\Ù„vYÙŽyUÙ˜{SÚ£|QÚ°}PÛ¾}PÜÓ|PÔà~QÐàQÐàQÐàQÐàQÐàQÐàQÐàQÐàÿ•ÿ©ûºÔÍ Éæ¼í °í.¥ì9'šëB5êIA…éPK{èWSrè]Zjçc`dçje_çri[çzlWç‚nSç‹qPç•rNèŸtLèªuKèµvJçÃvJèÝvKäàuKäàuKäàuKäàuKäàuKäàuKäàuKäàuÿÿ±Óà ÇÑ +»ò¯ó!£ó.™ó9*ŽóB6„óJA{óRIróWPió\VcócZ]ói^YópaUówcRófOò‡gMðiKï˜kJï lIî©mHî³mGíÀnFíÇnFíÇnFíÇnFíÇnFíÇnFíÇnFíÇnFíÇnÿ§ÓºÅÇºÖ ­ú¢ú"—ú/û:+ƒüC5zýL>qýQEhýVKaþ[O\þbSWþhVTýoXQûuZNú|\Lùƒ]JøŠ_H÷‘`Gö™aFö bEõ§cDô±dCôµdCôµdCôµdCôµdCôµdCôµdCôµdCôµdÖ²ľ·Ì¬Ü  ÿ•ÿ%‹ÿ2‚ÿ<)yÿE2oÿJ9gÿO?_ÿUCZÿ[GUÿaJRÿgLOÿlNMÿrOKÿxQIÿ~RGÿ„SEÿ‹TCÿ‘UBþ˜VAýžW@ý¦X@ü©X@ü©X@ü©X@ü©X@ü©X@ü©X@ü©X@ü©XƸ¶ÄªÓžò ”ÿ Šÿ(ÿ4wÿ<%mÿB,eÿG2]ÿM6WÿS:SÿY=Oÿ_?LÿdAJÿiCHÿnDFÿsEDÿyFBÿ~GAÿ„H?ÿŠI>ÿJ=ÿ•K<ÿœL<ÿŸL<ÿŸL<ÿŸL<ÿŸL<ÿŸL<ÿŸL<ÿŸL<ÿŸL·¼©ËœÛ’ÿ‰ÿ€ÿ*uÿ1kÿ8bÿ>$[ÿD)TÿJ,PÿQ/LÿW2Iÿ\3Fÿ`5Dÿe6Bÿi7Aÿn8?ÿs9=ÿw:<ÿ|;;ÿ‚<9ÿ‡=8ÿŒ=7ÿ“>6ÿ•>6ÿ•>6ÿ•>6ÿ•>6ÿ•>6ÿ•>6ÿ•>6ÿ•>ªÄœÒç†ÿ|ÿqÿ$ hÿ+_ÿ2Wÿ9Qÿ?LÿF!HÿM#EÿR%BÿW'@ÿ[(>ÿ_)<ÿc*:ÿg+9ÿk,7ÿo,6ÿt-5ÿx.4ÿ}.2ÿ‚/1ÿˆ01ÿŠ01ÿŠ01ÿŠ01ÿŠ01ÿŠ01ÿŠ01ÿŠ01ÿŠ0ÿj$ÿi2 +ÿl>ÿvFÿ{M)ÿ|U3ÿz]=ÿvfFÿqnMÿmyTÿj„Zþf_ûc•bùaœeø_¢h÷^¨jö\­kõ[³lôZ¹nóYÁnóXÉoòXÔpïXàpéYäpãZæpÜ]èpÜ]èpÜ]èpÜ]èpÜ]èpÜ]èpÜ]èpÜ]èpÿj$ÿi2 +ÿl>ÿvFÿ{M)ÿ|U3ÿz]=ÿvfFÿqnMÿmyTÿj„Zþf_ûc•bùaœeø_¢h÷^¨jö\­kõ[³lôZ¹nóYÁnóXÉoòXÔpïXàpéYäpãZæpÜ]èpÜ]èpÜ]èpÜ]èpÜ]èpÜ]èpÜ]èpÜ]èpÿj#ÿi1 +ÿn>ÿwEÿ|M(ÿ~T3ÿ|\<ÿydEÿsmNÿoxUÿk‚Zýh‹_ûe”cùb›f÷`¡iö^§kõ]­lô\³nóZºoòYÁpòYÊqñXØqìYáqæZäqà\çqØ]èqØ^èqØ^èqØ^èqØ^èqØ^èqØ^èqØ^èqÿk#ÿj1 +ÿq<ÿzCÿ€K(ÿS2ÿ€Z<ÿ|bEÿwjNÿqtUÿn[ýj‰`úf’død™höa kõ_§mó^­oò\³pò[ºqñZÃrðYÍsîYÝsèZâtá\åsÙ^æsÐ_çtÐ_çtÐ_çtÐ_çtÐ_çtÐ_çtÐ_çtÐ_çtÿl#ÿk1 +ÿs;ÿ}Bÿ‚J'ÿ„Q2ÿƒY;ÿ€`Eÿ{hMÿtqUÿp|[ül‡aùhf÷e˜iõcŸlóa¦oò_¬qñ]³rð\»tï[ÅuïZÐuêZßvâ\âvÛ_åuÑ`ævÊaåwÊaåwÊaåwÊaåwÊaåwÊaåwÊaåwÊaåwÿm"ÿl1 ÿv:ÿ€Aÿ…H'ÿˆO1ÿ‡W;ÿ„^DÿfMÿxnUÿsy\ün„bùjgög–kôdžnòb¥qñ`¬sï^´uî]¼vî[Çwí[Öxå\àxÜ_ãxÒ`äxËaäyÄcãzÄcãzÄcãzÄcãzÄcãzÄcãzÄcãzÄcãzÿn"ÿm1 ÿx8ÿƒ?ÿ‰G&ÿ‹N0ÿ‹U9ÿˆ\CÿƒcLÿ}kTÿvu\ür€bømŠgõi”lófœpñc¤sïa¬uî_´wí]¾yì\Ëzè\ÜzÞ_ázÒaã{Êbâ|Äcâ}¾eá}½eá}½eá}½eá}½eá}½eá}½eá}½eá}ÿn"ÿn0 ÿ{7ÿ†>ÿŒE%ÿL.ÿS8ÿZAÿˆaKÿƒiSú|q[÷v|bóq‡hðmmíi™qêf¡uèc©xæa²zä`»{â_Ç|à_Ú}Ôbá}Êcà~Ãdà½f߀·g߀·g߀·g߀·g߀·g߀·g߀·g߀·g߀ÿo!ÿo0 ÿ~6ÿ‰<ÿD$ÿ“L-ÿ“R6ÿ’Y@ÿŽ`IùˆfRô‚nZï|yaëwƒhçrŒnäm•sàjwÝg¦zÚe®|Öc¸~ÓbÀÑbÓÊdßÁeÞ‚»gÝ‚µh݃°i݃°i݃°i݃°i݃°i݃°i݃°i݃°i݃ÿp!ÿr/ ÿ4ÿŒ;ÿ“C"ÿ—K+ÿ—Q4ÿ–W=ú“]FóŽdOîˆkXè‚u`ã|hÞw‰nÙr‘tÓn™yÐk¡}Ìh©€Éf²‚Çe½ƒÅeË„ÁfÜ„¹hÛ…³iÛ…®kÛ…©lÛ…©lÛ…©lÛ…©lÛ…©lÛ…©lÛ…©lÛ…©lÛ…ÿq!ÿt. +ÿ„3ÿ:ÿ–C!ÿšI)ÿšN2üšT;õ˜[Dî”bMçiUá‰s^Û‚|fÓ|…oÍwuÉr•zÅoÁl¥‚¾j­…»i¸‡¹iĈ·i؈°kÙˆ«lÙˆ§mÙˆ£oÚ‡£oÚ‡£oÚ‡£oÚ‡£oÚ‡£oÚ‡£oÚ‡£oÚ‡ÿq ÿv, +ÿ†2ÿ’:ÿ™B ÿœG'ÿžL/øžR8ðX@éš_Iâ•gRÚp\чxfÊoÅ|‰vÀw|»t˜€·q „´o©‡±m³‰®l¿Š¬lÏ‹¨n׋¤oØŠ pØŠqÙ‰qÙ‰qÙ‰qÙ‰qÙ‰qÙ‰qÙ‰qÙ‰ÿr ÿx+ +ÿˆ0ÿ”9ÿ›AÿŸE%ý¡J-ô¢P4ì¢V<ä \EÜ›eOÒ“m\ÊŒufÆ}o½…v·|}³x”®uœ†«s¥‰§q®‹¥pº£pÉ qÕœsÖŒštÖ‹—tØŠ—tØŠ—tØŠ—tØŠ—tØŠ—tØŠ—tØŠ—tØŠÿs ÿz* ÿ‹/ÿ–9ÿ?ÿ¡C#ú¤H*ñ¦N1è§T8á§\@ÕŸbN˘k[Ñrf¼‹zo¶…‚w°‰}«}‘‚¦y™†¢w¡ŠŸu«œt¶ŽštŘuÔŽ•vÕ“wÕ’wÖ‹’wÖ‹’wÖ‹’wÖ‹’wÖ‹’wÖ‹’wÖ‹’wÖ‹ÿs ÿ|) ÿ/ÿ˜8ÿŸ=ÿ¤A!÷¨F'í«L-å­R3ܪY?УaMÆœiZ¾•pe¶wo¯Šv©…†}¤Ž‚Ÿ~–‡›{ž‹—y¨Ž”x³’xÁyÓzÔŽzÕŒ{ÖŒŒ{ÖŒŒ{ÖŒŒ{ÖŒŒ{ÖŒŒ{ÖŒŒ{ÖŒŒ{ÖŒÿtÿ~( ÿŽ.ÿ›8ÿ¡<ÿ§?ô«D$ê¯J)â³Q.Ö®W>˧_MÁ gZ¹™ne±“unªŽ|v£Šƒ}ž†‹‚™ƒ“‡”€›‹~¥Ž}°Š}½‘‰~Бˆ~Óˆ~ÔŽ‡~Õ‡~Õ‡~Õ‡~Õ‡~Õ‡~Õ‡~Õ‡~Õÿtÿ€'ÿ.ÿ7ÿ£:ü©=ñ¯B ç´H$ß·N,ѱU=Ǫ^L½£eY´ld«—sn¤“zvžŽ|˜‹ˆ‚’‡‡Ž…™‹‰ƒ¢Ž†‚­ƒ‚»‘‚‚Ì‘‚‚Ó‚‚Ô‚Õ‚Õ‚Õ‚Õ‚Õ‚Õ‚Õ‚Õÿuÿ‚&ÿ’- ÿŸ6ÿ¥8ù¬;î³?å¹FÚ»K+Í´T<®\K¸§cX¯¡jc¦œqmŸ—wu˜“~|’†‚ŒŽ‡‡Š–‹ƒˆ Ž‡«}‡¸‘{‡É‘|‡Ó|†Ô}…Õ}…Õ}…Õ}…Õ}…Õ}…Õ}…Õ}…Õÿuÿ„%ÿ”- ÿ 5ÿ¨6ö¯8ë·=â¿EÕ¾I*ȸS;½±[J³«bWª¦hb¡¡ol™œut’˜|{Œ•ƒ†’‹†”‹|ŽžŽy¨vŒµ‘tÆ‘uÓv‹Ôx‰Õx‰Õx‰Õx‰Õx‰Õx‰Õx‰Õx‰Õÿvÿ†$ÿ—, ÿ¢2ÿ«3ò³5è¼:ÞÅ?ÐÁH)Ä»Q9¹µYH®°`U¥ªgaœ¦mk”¢tsžzz†›€€˜‰…{–’‰v”›r“¦o“³n“Ãn“Óp‘ÔŽrŽÕrŽÕrŽÕrŽÕrŽÕrŽÕrŽÕrŽÕÿwÿ‰"ÿ™, +ÿ¥0 ü®/ï¸1äÃ7 ÙÊ;ËÅF'¿¿P8³ºXG©µ_TŸ°e_–¬kiލrq†¥xx€¢~zŸ‡ƒtˆo›™‹lš¤iš°Žg›ÀŽg›ÕŽi˜Õl”ÖŒl”ÖŒl”ÖŒl”ÖŒl”ÖŒl”ÖŒl”ÖŒl”ÖŒÿxÿŒ!ÿ+ÿ¨, +ø³* ê¿+ àÌ2ÑÎ9ÅÉE%¹ÄN6®¿VE£»]R™¶c]²ig‡¯po€¬vvy©}|s§„n¥…i¤—ˆe£¢Šc£®Œa£¾Œ`¤Ò‹c ×‹eœØŠeœØŠeœØŠeœØŠeœØŠeœØŠeœØŠeœØŠÿzÿ ÿ )ÿ¬'ò¸$åÇ$ÙÕ'ËÓ7¿ÎC#³ÊL4§ÅTBœÁ[O’½bZ‰ºhd·nly´trs²{xm°ƒ}h¯‹c®•„_­ †]­­‡[­¼‡Z®Ð‡\ªÚ‡_¥Ú‡_¥Ú‡_¥Ú‡_¥Ú‡_¥Ú‡_¥Ú‡_¥Ú‡_¥Ú‡ÿ~ÿ”ÿ¥&ý± ìÁßÓÐÜ%ÄÙ5¸ÕA!¬ÐK1 ÌR?•ÉYL‹Å`W‚Ãf`zÀlgs¾sml¼zsg»‚wbºŠ{^¹”~Z¸Ÿ€X¸¬V¹»UºÏV¶Þ‚X°Ý‚X¯Ý‚X¯Ý‚X¯Ý‚X¯Ý‚X¯Ý‚X¯Ý‚X¯Ý‚ÿ„ÿ™ÿªõ¹ÞÍ ÐßÅà&»ß6°Ý@¤ÙI-˜ÕQ;ÑXHƒÏ^R{ÌeZsËkalÉrgfÈylaÇp]ÆŠtYÆ”vVÅŸxSƬyRÆ»zQÇÏyQÄãzS¼â|S¼â|S¼â|S¼â|S¼â|S¼â|S¼â|S¼â|ÿŠÿŸÿ°ØÃ +ÎÑ +Äå¹ä&®ä4¤â? ™àG-ÞO9…ÜVD{Ú]LsÙdTl×kZfÖr_aÕyd\Ô‚gXÔ‹jUÔ•mRÔ nPÔ­oNÕ¼pMÖÐoMÕèpNÌérNÌérNÌérNÌérNÌérNÌérNÌérNÌérÿ’ÿ§ع ËÆÂÕ +·ê¬ê' ¢é4˜è>$çG0ƒæN:zåTCqäZJiäaPdãhU_ãpYZãx\Vã€_Sã‰bPã“dMäeKä©gJå¶gIåÆgHæßgJàìgJßìgJßìgJßìgJßìgJßìgJßìgJßìgÿœ Û±ʽ¿ÊµÚ +ªï ð(–ð5Œð?&‚ðG1yðN9pïT@hïZFaï`K]ïgOXïnRTïuUQð}WNð…YKð[Hñ™\Fñ£^Dò¯_Cò»_BóÌ`Aóç`Aóè`Aóè`Aóè`Aóè`Aóè`Aóè`Aóè`Þ§˶½Á²Ï§ê ÷”ø+Šø6ù@&xúH/oúM6gúS<`úX@[û_DVûeGRûlIOürKKüyMHüOEýŠQCý“RAþœS?þ¦T=ÿ±U=þ¼V<þÍV<þÎV<þÎV<þÎV<þÎV<þÎV<þÎV<þÎVΰ½º±Ç¥Ö›ý‘ÿ ˆÿ-€ÿ9vÿ?#mÿE*eÿK0^ÿQ5XÿW8Sÿ];Oÿc>Lÿh@IÿnAFÿuCCÿ|D@ÿ„F=ÿŒG<ÿ”H;ÿI:ÿ¥J9ÿ­K8ÿ¹K8ÿ¹K8ÿ¹K8ÿ¹K8ÿ¹K8ÿ¹K8ÿ¹K8ÿ¹K¾µ°À¤Î—Þÿ†ÿ#}ÿ.sÿ5jÿ<bÿB$[ÿH(UÿN,PÿT/LÿZ1Hÿ_3Eÿd5Bÿj6?ÿp7=ÿv9;ÿ|:9ÿƒ;8ÿ‹<6ÿ“=5ÿš>4ÿ¡>3ÿª?3ÿª?3ÿª?3ÿª?3ÿª?3ÿª?3ÿª?3ÿª?±º£È–Ö‹ô ƒÿyÿ oÿ( gÿ0_ÿ7Xÿ>RÿDLÿJ"HÿP$DÿU&AÿZ'>ÿ_);ÿd*:ÿi+8ÿn,6ÿt-4ÿz.3ÿ/1ÿˆ00ÿ0.ÿ–1-ÿž2-ÿž2-ÿž2-ÿž2-ÿž2-ÿž2-ÿž2-ÿž2¤Â–ψ߀ÿ uÿjÿbÿ!Zÿ) Sÿ1Mÿ8Hÿ>CÿD?ÿJ<ÿO9ÿS7ÿX5ÿ\3ÿa1ÿe0ÿj .ÿp -ÿv!+ÿ|"*ÿ‚#(ÿˆ#'ÿ$'ÿ$'ÿ$'ÿ$'ÿ$'ÿ$'ÿ$'ÿ$ÿ`%ÿ[0ÿa: ÿjAÿoJÿqR)ÿo[2ÿkd:ÿgnAÿdzGÿ`„Lÿ]ŽPÿZ–SÿXžVÿW¥XÿU«ZÿT±[ÿS·\ÿR¾]þQÇ^üQÑ_ûPà_øPé_óQí_îSð_èTñ_äVò_äVò_äVò_äVò_äVò_äVò_äVò_ÿ`%ÿ[0ÿb9 ÿl@ÿqIÿrQ)ÿqZ2ÿmc:ÿhmAÿexGÿaƒMÿ^Qÿ[–TÿYWÿW¤YÿVª[ÿU±\ÿT·]þS¿^ýRÇ_üQÓ`úPâ`öQé`ñRî`ëTï`åVñ`áWò`áWò`áWò`áWò`áWò`áWò`áWò`ÿa%ÿ\0ÿe8 ÿn?ÿtGÿuP(ÿtX1ÿpa:ÿkjAÿgvHÿcMÿ`‹Rÿ]”UÿZœXÿX£ZÿWª\þV°^ýT·_ýS¿`üSÉaúRÖbøQäbóRêbíTîbæVïbàXðbÛXñcÛXñcÛXñcÛXñcÛXñcÛXñcÛXñcÿb%ÿ]/ÿg6 ÿq>ÿwFÿxN(ÿwV1ÿt_:ÿnhAÿjsHÿf~Nÿb‰Sÿ_’Vÿ\›ZÿZ¢\þX©^ýW°`üU·aûTÀbûSÊcùSÚdõRædïTëdèVîdáXïdÙYðeÓZðfÓZðfÓZðfÓZðfÓZðfÓZðfÓZðfÿb$ÿ^/ÿj5 ÿt<ÿzDÿ|L'ÿ{T0ÿw\9ÿreAÿloHÿh{Nÿd†Sÿ`Xÿ]™[þ[¡^ýY¨`üX°bûV¸cúUÁdùTÍe÷SÞfòTçfêVëfâYîfÚZîgÑ[ïhÌ\ðhÌ\ðhÌ\ðhÌ\ðhÌ\ðhÌ\ðhÌ\ðhÿc$ÿ_.ÿm3 ÿw:ÿ}Bÿ€J&ÿR0ÿ|[8ÿwcAÿplHÿlwOÿg‚TÿcYý`–\ü]Ÿ_ú[§bøY®d÷X¶fõWÀgôVËhñUÝhíVéiãYìhÚ[íiÐ\îjÉ]îkÅ^îkÅ^îkÅ^îkÅ^îkÅ^îkÅ^îkÅ^îkÿd#ÿa-ÿp2 ÿ{8ÿ@ÿ„I%ÿ„Q.ÿY7ÿ|a@ÿviHÿpsOûlUøh‰Zöd’^óa›añ_£dð]«fî[³hìZ¼jêYÇkèYØkäYèkÚ[ëlÏ]ímÈ^ìnÂ_ìn¾`ìo¾`ìo¾`ìo¾`ìo¾`ìo¾`ìo¾`ìoÿe#ÿd+ÿs0 ÿ~6ÿ…?ÿ‰H$ÿ‰O-ÿ†W6ÿ‚^>ü|fFøvpNôq{Uðm…ZíiŽ_êe—cèbŸfæ`§iã^¯ká]¹là\ÄmÞ\ÓnÙ]ænÎ^ëoÆ_êq¿aêqºbér¶cér¶cér¶cér¶cér¶cér¶cér¶cérÿf#ÿg)ÿw. ÿ‚5ÿ‰>ÿG"ÿN+ÿŒU3üˆ\<öƒdEñ|lMìwwTèrZänŠ`áj“dÝf›hÚd£kÖb¬nÓ`µpÐ_¿qÎ_ÍrË_âsÄaès½bèt·dçt²eçt¯fçt¯fçt¯fçt¯fçt¯fçt¯fçt¯fçtÿg"ÿj'ÿz, +ÿ†4ÿ=ÿ‘E ÿ’M(ý‘S1öŽZ:ð‰aBêƒiKå~tSàx}ZÚs†`ÔnfÐk—jÌhŸnÉf§qÇd¯sÄc¹uÂbÆvÀbÚwºdæw³eåw®fåwªhåw¨hæw¨hæw¨hæw¨hæw¨hæw¨hæw¨hæwÿg"ÿm&ÿ}* +ÿ‰4ÿ‘<ÿ•Dÿ—K&ø–R.ñ”X6ê^?äŠgHÝ„qPÕ}yZÏx‚aÊsŠgÆo’lÂlšp¿j¢s¼hªv¹g´x¶fÀy´fÐz±gãz«hãz§jãz£käy¡käy¡käy¡käy¡käy¡käy¡käy¡käyÿh!ÿo$ÿ€) ÿŒ3ÿ”;ÿ™Cý›I#ô›O*ì™U3å–\;Þ‘eEÔ‰mP̃vZÇ}~aÁx†h½tŽm¸q–rµnu±l¦x®k¯{¬j»|ªiÊ}¨já}£lâ|Ÿmâ|œnâ{šnã{šnã{šnã{šnã{šnã{šnã{šnã{ÿi!ÿq#ÿ‚( ÿ2ÿ—;ÿœBùžF ðŸL'èŸR.àZ6Ö•aDÍŽjOƈrY¿‚zb¹}‚h´yŠn°v’s¬sšw¨p¢z¥o«}¢n¶~ mÅžnÛ›oà~˜pá~–qá}”qâ|”qâ|”qâ|”qâ|”qâ|”qâ|”qâ|ÿi!ÿt"ÿ…(ÿ‘1 ÿš:ÿŸ?õ¢Dì¤J#ä¤P)Û¡W5Ïš_CÇ“hO¿ŒpY¸‡wa²‚h­~†n©zŽs¤w–x už{s¨~šr³€—qÀ–rÓ“s߀‘tàtà~tá}tá}tá}tá}tá}tá}tá}ÿj!ÿv ÿ‡'ÿ”0 ÿ9ý¢=ò¥Aé¨GàªM%Ô¤T4Ê]BÁ—eNº‘mX²‹ua¬†|h§‚ƒn¢‹t|“x™y›|•w¥’v¯v½‚Žv΂wÞ‹w߀ŠxàŠxà~Šxà~Šxà~Šxà~Šxà~Šxà~Šxà~ÿj ÿxÿ‰&ÿ–0 ÿŸ7ú¤:ï©?æ­EÜ®J$ϨS3Æ¡\A½›dM´•kX­r`§‹yh¡‡n›ƒˆt—€x’~™|Ž|¢‹z­‚ˆzºƒ‡z˃†{Þ‚…{Þ…{߀…{à…{à…{à…{à…{à…{à…{àÿk ÿzÿ‹&ÿ˜/ +ÿ¡5 ÷§8ì­<ã²B×±G#Ë«R2Á¥Z@¸ŸbL°™iW¨”p`¡wg›‹~n–ˆ†s‘…ŽxŒ‚–|ˆ€Ÿ€„ª‚·ƒ€È„€ÝƒÞ߀€~à€~à€~à€~à€~à€~à€~àÿl ÿ|ÿ%ÿš. ÿ£3 ôª4 é±9ß·?Ò´F"Ç®P1½¨Y?³¢`K«gV£˜n_œ”ug–|mƒs‹Š‹x†ˆ”|†€~„¨‚{„µƒy„Å„x…݃y„Þzƒß€z‚àz‚àz‚àz‚àz‚àz‚àz‚àÿmÿ~ÿ$ÿ,þ¦0 ð®1 å¶5 Û¼9ηE òO0¸¬W>¯§_J¦¡eUžl^—™sf•zlŠ’r…‰w€‘|{‹›wŠ¥‚t‰²ƒr‰ÂƒrŠÚƒs‰Þt‡ß€u†àu†àu†àu†àu†àu†àu†àÿoÿ€ÿ’#ÿ +ú©,í²,â¼1ÕÀ6É»C¾¶M.´°V<ª«]I¡¦dT™¢j]‘žqeŠ›xk„˜q–†vy“zu‘˜~q£n¯‚l¿ƒk‘Õ‚mÞo߀p‹àp‹àp‹àp‹àp‹àp‹àp‹àÿqÿƒÿ•!ÿ£)ö­'è·&ÞÃ*ÐÃ5Ä¿A¹ºL-®µT;¥°[G›¬bR“¨i[‹¥oc…¢vj~Ÿ|oxœ„tsšŒyo™–|k—¡h—­€f—¼e˜Ñ€f–ßh“à~j‘á~j‘á~j‘á~j‘á~j‘á~j‘á~j‘á~ÿuÿ‡ÿ˜ ÿ¦%ò² ä¾×É"ÊÇ3 ¾Ã@³¿J+©ºS9Ÿ¶ZE–²aP¯gY…¬m`~©tgx¦zmr¤‚rm¢Švh¡”yd Ÿ|aŸ«~_ º~_ Î~_Ÿá}b›á}c˜â|c˜â|c˜â|c˜â|c˜â|c˜â|c˜â|ÿxÿ‹ÿý«ì¸ÞÈÏÍÄÌ0 ¸È>­ÅH(£ÁQ6˜½XB¹_M†¶eV³k]x±rdr¯yil­€ng¬‰rbª’u_©x\©ªzZ©¹zYªÌzX©äz[¤äz]¡äy]¡äy]¡äy]¡äy]¡äy]¡äy]¡äyÿ}ÿÿ¡ö±ÙÁ ÒÏ ÈÒ¼Ñ. ±Î;¦ËF%œÈO3‘ÄV?ˆÁ]I€¿cRx¼jYqºp_k¹wdf·ia¶‡m]µ‘pYµœrV´©tT´¸tSµËtSµätT°çuV¬çuV¬çuV¬çuV¬çuV¬çuV¬çuV¬çuÿƒÿ–ÿ¨Ù¸ +ÎÄ ÇÒ +¿Ù´Ø+©Ö9ŸÓD"”ÐM/ŠÍT;Ê[DxÈbMqÇiSkÅoYeÄv^`Ã~b\‡fXÁ‘hUÁœkRÁ¨lPÁ·mOÂÊmOÂälO½ìnP¹ìoP¹ìoP¹ìoP¹ìoP¹ìoP¹ìoP¹ìoÿ‰ÿگͻÄÇ¼Ö ³ßªß+ Þ9–ÝCŒÚK*‚ØS5yÕZ?qÓaFjÒhLeÑoR`ÐvV[Ð~ZWχ]SÏ‘_PÏœaNÏ©cLϸcKÐËcLÐåbJÎòeKÈòfKÈòfKÈòfKÈòfKÈòfKÈòfKÈòfÿ’ Þ¦δ¿¹Ì°Ý §åžå- ”å9ŠäB ãJ*wâP3oáX;ià_AcàfF^ßnJZßuNVß}QR߆SOßVMß›WKà§XIàµYHáÆYHáßYGßðYFÜõ[FÜõ[FÜõ[FÜõ[FÜõ[FÜõ[FÜõ[íœÑ­¸·Ã­Ñ¤í›í ’í.‰ì:€ìC!vìJ*nìP1fëV7`ë\<[ëd@WëkCSërFPëzIMìƒKJìŒMHì–NEí¡PCí®QBî¼QAïÌRAïåR@íñQ@íñQ@íñQ@íñQ@íñQ@íñQ@íñQԥIJ¶¼«É Ø—ôõ$‡õ1~ö;töB löH'eöO-^÷U1Y÷[5U÷b8Q÷h;Møo=Jøv?Gø~ADù‡CBù‘E@ú›F>ú¦G<û±H;û¾I:üÏI9üãI9üãI9üãI9üãI9üãI9üãI9üãIÇ­··ªÃžÐ“ã Œý„þ'{ÿ1rÿ8iÿ@bÿF"\ÿM&VÿS*RÿY-Nÿ_0Jÿe2Gÿk4Dÿq5Aÿy7?ÿ8<ÿŠ::ÿ“;8ÿ<6ÿ§=5ÿ±>4ÿ¾>3ÿÊ?3ÿÊ?3ÿÊ?3ÿÊ?3ÿÊ?3ÿÊ?3ÿÊ?¸²ª½Ê‘؈û ÿvÿ$nÿ- fÿ5_ÿ<XÿCSÿINÿO!JÿU$Fÿ[&Cÿ`'@ÿf)>ÿk*;ÿr+9ÿy-6ÿ.4ÿŠ/1ÿ”00ÿœ1.ÿ¥2-ÿ¯3,ÿ·3,ÿ·3,ÿ·3,ÿ·3,ÿ·3,ÿ·3,ÿ·3«¸žÅÒƒà}ÿrÿhÿaÿ'Zÿ/ Tÿ7Nÿ>IÿDEÿJAÿO>ÿU;ÿY9ÿ_6ÿd4ÿi2ÿp /ÿw!-ÿ"+ÿ‡#(ÿ$'ÿ™%&ÿ¡&%ÿ§&%ÿ§&%ÿ§&%ÿ§&%ÿ§&%ÿ§&%ÿ§&ŸÀ‘̓Ûxöoÿ dÿ\ÿTÿ Nÿ'Hÿ/Cÿ6 +?ÿ< <ÿB8ÿG5ÿL3ÿQ0ÿV.ÿZ,ÿ_*ÿe(ÿk&ÿq#ÿy"ÿ ÿ‰ÿ‘ÿ—ÿ—ÿ—ÿ—ÿ—ÿ—ÿ—ÿV'ÿQ2ÿV5ÿ_=ÿdEÿfNÿdX'ÿab/ÿ^n5ÿZy;ÿW„?ÿTCÿQ˜FÿO HÿN§JÿM®KÿLµLÿK¼MÿJÄNÿIÎOÿIÞOÿHéPÿHòPüIöP÷KùPñLúOëNûPêOûPêOûPêOûPêOûPêOûPêOûPÿV'ÿQ2ÿX4ÿb;ÿgDÿiMÿgV'ÿc`/ÿ`k5ÿ\w;ÿX‚@ÿUDÿS–GÿPŸIÿO¦KÿN­MÿM´NÿL¼OÿKÅPÿJÏQÿIàQÿIëQþIòRùK÷RóMùQíOúQæPúRåPúRåPúRåPúRåPúRåPúRåPúRÿW'ÿR1ÿZ2ÿd:ÿjBÿlKÿjT'ÿg^/ÿbh6ÿ^t<ÿZ€AÿW‹EÿT•HÿRJÿP¥LÿO­NÿN´OÿM¼QÿLÅQÿKÑRÿJâSÿIíSûKóSõL÷SîOøSèPùSáRúTàRúUàRúUàRúUàRúUàRúUàRúUÿX&ÿT0ÿ]1ÿg8ÿm@ÿoIÿnR'ÿj\/ÿef6ÿaq<ÿ]}AÿYˆFÿV’IÿTœLÿR¤NÿP«PÿO³QÿN»RÿMÄSÿMÏTþLàUûLëUøLôUðO÷UéQøUâRøVÛTùWÙTùWÙTùWÙTùWÙTùWÙTùWÙTùWÿY&ÿW.ÿ`/ÿj6 ÿq>ÿsHÿrQ&ÿoZ.ÿjc6ÿen<ÿazBÿ]…GÿZJÿW˜MÿU PÿT¨RþR¯SýQ·UüPÀVúOËVøOÜWõOéWòOóWêRöWáS÷XÚUøYÑVøZÏVøZÏVøZÏVøZÏVøZÏVøZÏVøZÿY&ÿZ,ÿd-ÿn3 ÿu=ÿxFÿwO%ÿtX-ÿp`5ÿjj<ÿfvBÿbGþ^‹Kû[”OùYRøW¤TöV¬VõT´WóS¼XòSÇYðRÕZìRæZéSòYáTõ[×Vö\ÏW÷]ÈYø]ÇYø]ÇYø]ÇYø]ÇYø]ÇYø]ÇYø]ÿZ%ÿ]*ÿg*ÿr2 ÿy;ÿ|Eÿ|M$ÿzU,ÿu^4ÿog<üjrBùf}Höc‡Ló_Pñ]™Sï[¡VíY¨XëX°ZêW¹[èVÃ\æVÑ\ãVä\ßVð]ÕWõ_ÌYö`ÆZö`À[öa¾\öa¾\öa¾\öa¾\öa¾\öa¾\öaÿ[%ÿ`(ÿk(ÿw0 ÿ~:ÿCÿ‚K"ÿS*ÿ{[3ùvd:õpnAñlyHíhƒMêdŒQça•Uå_Xã]¥Zá[­\ÞZ¶^ÜYÀ_ÚYÎ`ÕYâ`ÑYïaÊZôbÂ\ôc¼]ôd·^ód¶_ód¶_ód¶_ód¶_ód¶_ód¶_ódÿ\$ÿc&ÿo&ÿ{/ ÿ‚9ÿ†Aÿ‡I ÿ…Q(ø‚Y0ò}`8íwj@èruGänMáiˆRÝf‘WÙc™ZÕ`¡]Ò_¨`Ï]±bÍ\»cË\ÇdÉ\ÛeÅ]ëe¿]òf¸_ñg³`ñg¯añg®bñg®bñg®bñg®bñg®bñg®bñgÿ]$ÿf$ÿr$ÿ~. +ÿ‡7ÿ‹?ÿŒGù‹O%òˆV-ìƒ]6æ~g>àxqFÛs{MÕnƒSÐjŒXÌg”]Éeœ`Æc£cÃa¬eÁ`µg¿_Áh½_Ðiº`æiµaïj¯bïj«cïj§dïi¦eði¦eði¦eði¦eði¦eði¦eðiÿ^#ÿi"ÿv#ÿ‚, ÿ‹6ÿ>ý‘Eô‘L"íŽS*æŠZ2ß…e;×~mEÐxvMËtTÆp‡ZÂl^¿i—b»gŸe¸e§h¶d°j³c»k±cÊl¯cál«dím¦fíl£gíl hîkŸhîkŸhîkŸhîkŸhîkŸhîkŸhîkÿ_#ÿk ÿy"ÿ…+ÿŽ4 ÿ“<ø–Cï–Jç•P&à‘X.׊a:΄jEÈ~sMÂy{U¾uƒ[¹q‹`µn’d²lšg¯j£j¬h¬l©g¶n§gÄo¥gÚo¢hëožiìo›jìn™kím˜kím˜kím˜kím˜kím˜kím˜kímÿ_#ÿnÿ{!ÿˆ*ÿ‘2 ÿ—:ôšAë›Gã›M!Ú–U-Ï^9ȉgDÁƒoM»~wU¶y[±v‡`­se©p–h¦nŸl£l¨n k²pkÀqœkÒršléq—mêp”mëp’nìo’nìn’nìn’nìn’nìn’nìn’nìnÿa!ÿpÿ~ ÿ‹)ÿ•1 û›8 ðž>ç Dß JÓšR+Ê“\8ÂdC»‡mM´‚tT¯~|[ªz„a¦w‹e¢t“ižr›mšp¤p—o¯r•o¼s“oÍs’pæspérŽqêqqëpŒqëpŒqëpŒqëpŒqëpŒqëpŒqëpÿc ÿrÿ€ÿŽ'ÿ—/øž6 í¢;ä¥@Ú¤FΞQ*Å—Z7½‘bBµŒjL¯‡rT©‚y[¤€`Ÿ|ˆe›yj—w˜m“u¡ps¬ss¸t‹sÉuŠtât‰tèsˆuér‡uêq‡uêp‡uêp‡uêp‡uêp‡uêp‡uêpÿeÿtÿƒÿ&ÿš-ô¡4 é¦7 àª=Ô§DÉ¡O)À›X6¸•`B°hK©‹oS£‡vZžƒ~`™€…e”}j{–nŒyŸq‰x©s†wµu„wÅvƒxßuƒxèt‚xés‚xêq‚xêq‚xêq‚xêq‚xêq‚xêq‚xêqÿgÿwÿ…ÿ“$ÿ+ñ¤0æª3Ü®7 ϪCÅ¥N(¼ŸW5³™_A«”fJ¤mSž‹tZ˜ˆ{`“…ƒeŽ‚‹jŠ€“n†~œq‚}§t|³u}|Ãv|}Ûv|}èt}|ès}|ér}|êq}|êq}|êq}|êq}|êq}|êqÿiÿyÿ‡ÿ•#û )î¨,ã¯/ײ4 Ë­AÁ¨L'·£U4¯]@§™dIŸ”kR™rY“y_ŽŠ€d‰‡ˆi„…‘m€ƒšq|‚¤ty±vwÀvvÖvvçtwèsx€érxêqxêqxêqxêqxêqxêqÿkÿ{ÿŠÿ˜!ø£&ê¬'ß´)Òµ2 +ǰ@¼¬K&³§S3ª¢[>¢cHš™iQ”•pXŽ’w^ˆ~dƒ†i~ŠŽmz‰˜qv‡¢ss†®uq†½vo‡Òvp‡ètq…èsr„érs„êqs„êqs„êqs„êqs„êqs„êqÿmÿ~ÿÿ›ô§"æ° Úº!͸1 ´>¸°I$®«R1¥¦Z=¢aG•žhOŽ›nWˆ˜u]‚•|c}“„hxŒlt•pp rmŒ¬tjŒ»uiÎuiètk‹ésm‰êqmˆêqmˆêqmˆêqmˆêqmˆêqmˆêqÿpÿÿÿžð«â¶Ó½È»/½¸<³´G#©°P0 «X;˜¨_E¤fN‰¡lU‚žs[}œzaw™fr—Šjn–“nj”žqf”ªsd“¸sc”Ësc”ære’êqgêpgŽêpgŽêpgŽêpgŽêpgŽêpgŽêpÿsÿ…ÿ”ü£ê°Ù¾ ÍÁÂÀ-¸½:®¹F!¤µO-š±V9’®^CŠ«dLƒ¨jS|¥qYv£x_q¡clŸ‡hhž‘kdœn`œ¨p^œ¶q]œÉq]œäp^šëp`–ëoa•ìoa•ìoa•ìoa•ìoa•ìoa•ìoÿwÿ‰ÿ™ó¨×µ +ÏÁ +ÆÅ¼Ä*²Â8§¿Dž»M+”¸U6‹µ\@„²bI|¯iPv­oVp«v[kª}`f¨†db§g^¦šj[¥¦lX¥µmW¦ÇmW¦âlW¤ílZŸílZžílZžílZžílZžílZžílZžílÿ|ÿŽöž Ø­ ͸ ÇľʵÊ'«È6¡ÅA—ÂK(¿S3…½Z<}ºaEv¸gKp·mQjµtVe´|[`²„_\±ŽbX±™eU°¥fS°³gR±ÆgR±ágQ¯ñhSªðhT©ðhT©ðhT©ðhT©ðhT©ðhT©ðhÿ‚ÿ” Û¥αÅ»½ÇµÐ¬Ð#£Ï3 ™Í?ÊH$†ÈQ.}ÆX8vÄ_?oÂfFiÁlKdÀsP_¿{T[¾„XW½[T½˜]Q¼¤_O¼³`M½Å`M½à_L¼ðaM·õbM¶õbM¶õbM¶õbM¶õbM¶õbM¶õbÿ‰ áœЪŵ»¿²Ë«Ø £Ù šØ/ Ö<‡ÔF~ÒO)vÐV2oÏ^9hÍd?cÌkD^ÌsIZËzLVʃORÊROʘTMÊ¥VKʳWJËÅWIËàVIÉðXGÇúYHÅûZHÅûZHÅûZHÅûZHÅûZHÅûZ÷‘Ô¢ǯº¹°Ä§Ð Ÿá˜á!à0 †à;}ßDuÞM$nÝU+gÜ\2bÛd7]Ûk;YÚr?UÚzCRÚƒENÚHLÚ˜JIÚ¥KHÛ³LGÜÄLFÜÞLFÚíLDØùOCØûOCØûOCØûOCØûOCØûOCØûOۚʩ»³°½¥É›Ö ”èŒé%„è3 {è<sèDkèK"dçR(^çY-Yç`2Uçh5Rço8Oçw;Lç€=Iç‰?Gè”ADèŸBBé¬CAéºD@êÍD@êäD@èõD@çøC@çøC@çøC@çøC@çøC@çøCÍ£½®°¸¤Ä™Ðá +‰ññ(xò2 pò;iòCbòJ\óP#VóW'Ró^+Oóe-Lôl0Iôs2Fô{4Cô„6AõŽ7>õ™9=ö¤:;ö°;:÷¿<9øÏ<8÷è<8÷ì<8÷ì<8÷ì<8÷ì<8÷ì<8÷ì<¿ª±³¤¿˜ÊŒØ„ú|ûtû&lü0 +eü8^ý@XþGSþMOÿT KÿZ"Hÿa%Eÿg&Bÿm(@ÿu*=ÿ}+:ÿ†-8ÿ‘.6ÿ›/4ÿ¦03ÿ²12ÿ¾21ÿÐ21ÿÖ21ÿÖ21ÿÖ21ÿÖ21ÿÖ21ÿÖ2²¯¥º˜Æ‹Òßyÿoÿgÿ"`ÿ,Zÿ4 Tÿ<OÿCJÿIGÿOCÿU@ÿ[>ÿa;ÿf9ÿm6ÿt 4ÿ}!1ÿ†#/ÿ‘$-ÿ›%,ÿ¥&+ÿ¯&*ÿ»')ÿ¾')ÿ¾')ÿ¾')ÿ¾')ÿ¾')ÿ¾'¦¶˜Â‹Î~Ûuùkÿbÿ[ÿTÿ&Nÿ.Iÿ5Eÿ< AÿC >ÿH;ÿN8ÿS5ÿX3ÿ^1ÿd.ÿj,ÿr*ÿz'ÿƒ%ÿŽ$ÿ˜#ÿ "ÿª!ÿ­!ÿ­!ÿ­!ÿ­!ÿ­!ÿ­š¾‹Ê~×pãgÿ^ÿ VÿOÿIÿ Cÿ'?ÿ.:ÿ47ÿ:3ÿ?0ÿD.ÿI ,ÿN )ÿS +'ÿX +%ÿ^ #ÿd !ÿl ÿt ÿ}ÿ‡ÿÿ™ÿ›ÿ›ÿ›ÿ›ÿ›ÿ›ÿL*ÿH3ÿO4ÿT7ÿZAÿ\JÿZTÿW`$ÿTk*ÿPx/ÿM„3ÿJ6ÿG™9ÿF¡;ÿE©<ÿD°>ÿC·?ÿBÀ?ÿBÉ@ÿAÕAÿAäAÿAîBÿAöBÿAýBÿBÿAùDÿAôFÿBïGÿBïGÿBïGÿBïGÿBïGÿBïGÿBÿM)ÿJ2ÿQ2ÿW6ÿ\?ÿ^Iÿ]SÿZ^$ÿWi*ÿSu/ÿP4ÿM7ÿJ—:ÿHŸ<ÿG§=ÿF®?ÿEµ@ÿD½AÿDÆBÿCÑBÿCâCÿCìCÿCõCÿCüCüDÿCõGÿCïHÿDëIÿDëIÿDëIÿDëIÿDëIÿDëIÿDÿM)ÿL0ÿT1ÿY4ÿ_=ÿaGÿ`Rÿ]\$ÿZg+ÿVs0ÿS4ÿOŠ8ÿM”;ÿK=ÿJ¤?ÿH¬@ÿH³AÿG»BÿFÃCÿFÎDÿEßDÿEêEýEóEûEûE÷FÿDðIÿEêJÿFåKÿGåKÿGåKÿGåKÿGåKÿGåKÿGÿN)ÿO.ÿW.ÿ]2ÿc;ÿeFÿePÿaY$ÿ]d+ÿZp0ÿV|5ÿS‡9ÿP‘<ÿNš?ÿM¢@ÿK©BÿJ°CÿJ·DÿIÀEÿHÊFýHÛFúHçGøHòGõHúFñIÿGêKÿHãLÿIÞMÿJÞMÿJÞMÿJÞMÿJÞMÿJÞMÿJÿO(ÿR,ÿZ,ÿa/ÿg:ÿjDÿjNÿgW$ÿba+ÿ^m1ÿ[x6ÿWƒ:ÿT=ÿR–@ÿPžBþO¥DüN­EûM´GúL¼HùLÇHöKÔIóKåIðKðIíLùHéLÿJáNÿKÚOÿLÓPÿMÓPÿMÓPÿMÓPÿMÓPÿMÓPÿMÿP(ÿU*ÿ])ÿe-ÿl8 ÿoBÿoKÿlU#ÿh^*ÿci1ÿ_t6ý\;ûY‰?ùV’B÷TšDõS¢FôR©HòQ±IñP¹JïOÃKîOÏKëOâKçOîKäOøMßOþNÕQÿOÎRÿPÉSÿPÉSÿPÉSÿPÉSÿPÉSÿPÉSÿPÿQ'ÿX'ÿa'ÿj,ÿq6 ÿt@ÿtIÿrR"ÿn[)ýhd0ùep6öa{;ó^…@ð[ŽCîY–FìWžHêU¦JèT­LçSµMåS¿NãSÌNáSßNÝSíOØR÷QÑSýRÊTþSÄVÿS¿WÿS¿WÿS¿WÿS¿WÿS¿WÿS¿WÿSÿR'ÿ[%ÿe$ÿn*ÿv4 ÿz=ÿzFÿxO ûtX(öoa/ñkl6ígv<éc€@æ`ŠEä]’Há[šJßY¢MÝXªOÚW²PØV¼QÕUÈRÒUÛSÎVëSËVöUÆVýV¿XýVºYýW¶ZýW¶ZýW¶ZýW¶ZýW¶ZýW¶ZýWÿS&ÿ_"ÿi!ÿs(ÿ{2 +ÿ;ÿ€Dû~Lô{T%îv]-éqh4ämr;ài|AÜe…FØbŽJÔ_–MÑ]PÎ\¥RÌZ­TÉY¶VÇYÂWÆYÐWÂYæX¿YóY»ZûYµ[ûZ°]ûZ­]ûY­]ûY­]ûY­]ûY­]ûY­]ûYÿV$ÿb ÿm ÿw&ÿ0ÿ„9 ý†Aõ…Iî‚Q"ç}Z*áxd2Üsn:ÔnwAÐj€GÌf‰LÈd‘PÅb˜SÃ` UÀ^¨X¾]±Y»]¼[¹\É\·\à\´]ï\°^ù]«_ù]¨`ù\¥aù\¥aù\¥aù\¥aù\¥aù\¥aù\ÿX"ÿeÿqÿ{$ÿ„.ÿ‰6 ø‹>ï‹FèˆNá„W&Ù~a1Ñxj:ËssBÆo|HÂl„M¾iŒQ»f“U¸d›Xµc£Z³a¬\°`·^®`Ä_¬`Ø_©aë_§a÷_¢c÷_Ÿd÷_dø^dø^dø^dø^dø^dø^ÿ[ ÿhÿtÿ~#ÿˆ+ý4 ó;êCâJÚŠT%Ѓ]0É~g:ÃxoB¾txH¹q€NµnˆR²kV¯i—Z¬gŸ\©e¨_¦d²a¤d¿b¢dÐb dçbžeõbšfõa˜gö`–hö`–hö`–hö`–hö`–hö`–hö`ÿ]ÿjÿwÿ‚!ÿ‹)ù‘1ï•8 æ–?Ý”GÒŽQ$ʈ[/ƒd9¼~lA·ytH²u|N®r„Sªo‹W¦m“[£k›^ j¤`h®c›hºd™hËe—hãd•iód“jôc‘kõbkõakõakõakõakõakõaÿ_ÿmÿzÿ…ÿŽ'õ•.ë™5áœ; Ö˜CÌ“O"ÄX.½‡a8¶‚iA°~qH«zyN§w€S£tˆXŸq[›o˜_˜n¡b•m«d’l·flÆflßfŽmñeŒnód‹nôcŠnôbŠnôbŠnôbŠnôbŠnôbŠnôbÿaÿoÿ|ÿˆÿ‘$ò™+çž1Ý 6 ÑœAÇ—M!¿‘V-·Œ_7±‡g@«‚nH¥~vN {}Sœx…X˜v\”t•_‘ržbŽq¨e‹p´g‰pÃh‡pÛg†qîf†ròe…ród„rôc„rôc„rôc„rôc„rôc„rôcÿcÿqÿÿŠü”!îœ'ã¢,ؤ2ÌŸ@ÚK º•U,³]7¬‹e?¥‡lG ƒsM›€{S–}‚W’zŠ\Žx’`Šv›c‡u¥f„t±g‚tÀh€tÕh€uìgvòfuóeuóduóduóduóduóduódÿeÿtÿÿù—ë #ߦ&Ò§0È£>¿žI¶™S+®”[6§c? ‹jF›‡qM•„xRWŒ‡\ˆ}`„{™c€z£f~y¯h{y½izyÑiyzêhzzòfzyòezyódzyódzyódzyódzyódzyódÿgÿvÿ„ÿõ›ç¤Û«Ϊ/Ħ=º¡H²Q*ª˜Y4¢”a>œhE–ŒoL‰vR‹†}W†„…[‚‚_~€—cz¡fw~¬hu}»is~Îis~èht~ñft}òeu|ódu|ódu|ódu|ódu|ódu|ódÿiÿxÿ‡ÿ“ñžã¨Õ®Ê­-À©;¶¥F­¡P)¥œX3ž˜_<—”fD‘mK‹ŽtQ†Œ{V‰ƒ[|‡‹_x†”bt„Ÿeqƒªgoƒ¸imƒËimƒæhnƒòfo‚òepódpódpódpódpódpódÿkÿ{ÿŠÿ–í¢Þ­бŰ+»­9²©D©¥N' ¡V2™^;’šdC‹—kJ†”rP€’yU{€Zw‰^rŒ’anŠœdk‰¨gi‰¶hg‰Èhg‰ãgh‰òfi‡óej†ódj†ódj†ódj†ódj†ódj†ódÿnÿ~ÿ÷šÛ§ +Ó° Ê´À´)¶±7­®C¤ªL%›¦U0“£\9Œ cA†iH€špN{˜wSv–~Xq”†\l’`h‘šce¦ec´faÆfaáfaòecŽóddŒôcdŒôcdŒôcdŒôcdŒôcdŒôcÿqÿ‚ÿ‘ ÞŸ Óª ̳ ĸº¸&±¶5 §³Až¯J#–¬S.Ž©Z7‡¦a?€¤gFz¡nLuŸuQp|Ukœ„ZfšŽ]c™˜`_˜¤b]˜²d[˜Ãd[˜Þc[˜ðc\•õb^“õb^“õb^“õb^“õb^“õb^“õbÿuÿ† ë–գ̭Ŷ½¼´½#«»2 +¡¹?˜¶H ³Q+ˆ°X4€®_b»pC^ºwGZ¹€KV¹‰NS¸”PP¸ RM¸®TL¸¿TK¹ØTK·íTJ¶ùUJ³þVJ³þVJ³þVJ³þVJ³þVJ³þVú‡֘ɥ½¯³¸©Â¡ÍšÐ’Ð(ŠÏ6 ÎAyÌJrËR&lÊZ-fÉa2aÈh7\ÇoqØHj×PdÖX%_Õ_*[Ôg/WÔn3SÓv6PÓ9LÓˆ;JÓ”>GÓ ?EÔ®@DÔ¿ACÕØ@DÓì@BÒöBAÑþDAÑþDAÑþDAÑþDAÑþDAÑþDјåµ®©¸žÃ”ÍŠÙ +„ã}ä&uä2nã<gãEaãM\ãU Wã]$Tãd'Pâk*Mâs-Jã|0Hã†2Eã4Cãœ5Aä©6@ä¸7?åË7?åä7?ãó6=âû8=âû8=âû8=âû8=âû8=âû8Æ¡·«ª´ž¾“ɈÔîyíqí'jî2dî; ^îCXîKSîRPïYLï` Iïg#Gïo%Dðw'Að€)?ðŠ*=ñ•,;ñ¡-9ò®.8ò¾/7óÐ/7óç/6ñó/6ñó/6ñó/6ñó/6ñó/6ñó/¹§«°Ÿ»’ƆÐ{Ýt÷m÷fø&_ø/Zù8 +Tù@PúGLúNHûUEû[Bûb@üh=üp:ýx8ý‚ 6ý"4þ˜#2þ¤$1ÿ±%0ÿ¿&/ÿÏ&.ÿã&.ÿã&.ÿã&.ÿã&.ÿã&.ÿã&­­Ÿ·’†ÍyÚpòhÿaÿZÿ#Tÿ+Oÿ3Jÿ;FÿB CÿI @ÿO=ÿU:ÿ[8ÿa5ÿh3ÿo0ÿx.ÿ‚,ÿ*ÿ™)ÿ¤(ÿ¯'ÿº&ÿÇ&ÿÇ&ÿÇ&ÿÇ&ÿÇ&ÿÇ¡´“¿†ÊxÖlâcü\ÿUÿOÿIÿ&Dÿ.@ÿ4<ÿ;9ÿA6ÿF3ÿL1ÿQ .ÿW +,ÿ] +*ÿd (ÿl %ÿu #ÿ!ÿŠ ÿ•ÿ ÿ¨ÿ±ÿ±ÿ±ÿ±ÿ±ÿ±•¼†ÇyÓkà^íVÿOÿ IÿCÿ>ÿ 9ÿ'5ÿ-2ÿ3.ÿ8+ÿ=(ÿB&ÿG$ÿL"ÿQ ÿWÿ^ÿeÿnÿxÿƒÿ ÿ– ÿž ÿž ÿž ÿž ÿž ÿž ÿB-ÿB2ÿH2ÿL6ÿN<ÿPGÿPRÿN_ÿKkÿHw$ÿEƒ'ÿBŽ*ÿA—,ÿ? .ÿ?§/ÿ>®0ÿ=µ1ÿ=¼2ÿ<Å2ÿ<Î3ÿ;ß3ÿ;ê4ÿ;ó4ÿ;û4ÿ<ÿ3þ<ÿ3ü=ÿ4ö?ÿ5õ?ÿ5õ?ÿ5õ?ÿ5õ?ÿ5õ?ÿ5ÿC,ÿD0ÿJ0ÿN4ÿQ:ÿSFÿRQÿQ]ÿNi ÿKt$ÿH€(ÿE‹+ÿC•-ÿB/ÿA¥0ÿ@¬1ÿ?³2ÿ?º3ÿ>Â4ÿ>Ì4ÿ>Ü5ÿ=è5ÿ=ñ5ÿ>ú5ý>ÿ5û?ÿ4ø?ÿ6òAÿ7ðAÿ7ðAÿ7ðAÿ7ðAÿ7ðAÿ7ÿD,ÿG.ÿM.ÿQ2ÿT9ÿWDÿVOÿTZÿQf ÿNr%ÿK})ÿHˆ,ÿF’.ÿE›0ÿD¢2ÿC©3ÿB°4ÿB·5ÿA¿6ÿAÉ6ÿ@×7ÿ@å7ý@ð7ú@ø7÷Aÿ6öAÿ7òAÿ8ìCÿ9êDÿ9êDÿ9êDÿ9êDÿ9êDÿ9ÿE+ÿI,ÿP,ÿU/ÿY7ÿ\Bÿ[MÿXWÿVc ÿRo%ÿOz*ÿL…-ÿJ0ÿH˜2ÿGŸ4ÿF¦5ÿE­6ÿE´7ÿD¼8þDÆ8üDÒ9ùCâ9öDî9óD÷9ñDÿ9ïDÿ:ëEÿ;äFÿ<ãFÿ<ãFÿ<ãFÿ<ãFÿ<ãFÿ<ÿF+ÿM)ÿT)ÿY,ÿ^5ÿa@ ÿaJÿ^TÿZ_ ÿWk&ÿTv*ÿQ.ÿN‹1þL”4üKœ5ûJ£7úIª8øH±9÷H¹:öGÂ;õGÍ;òGß;îGì;ëHö;éGÿ=çGÿ>áHÿ?ÚJÿ@ØJÿ@ØJÿ@ØJÿ@ØJÿ@ØJÿ@ÿG*ÿP'ÿX&ÿ^*ÿc3ÿf= ÿfGÿdQÿ`[ ÿ\g&ýYr+úV}/øS‡3öQ5ôP˜7òNŸ9ñM¦;ïL­<îLµ=ìK¾=ëKÊ>éKÜ>åLê=âKõ?ßKþAÜJÿBÔLÿCÍMÿCËNÿCËNÿCËNÿCËNÿCËNÿCÿJ(ÿT$ÿ\#ÿc(ÿh0ÿl; ÿlDÿjNþfXùab%õ^m+ò[x0ïX‚4ìV‹7êT”9èS›;æQ£=åQª>ãP²?áO»@àOÇ@ÞOØAÙOèAÔOôCÐNþEÎNÿFÈPÿFÂQÿGÀQÿGÀQÿGÀQÿGÀQÿGÀQÿGÿM%ÿW!ÿ` ÿh&ÿn.ÿr8 +ÿrAýpK÷mTòh^$ídi*éat0å^~4â[‡8àY;ÝW—>ÛUŸ@ØT¦BÕS®CÒR·DÐRÂEÎRÐFËRåFÈRòHÅRýIÂRÿJ¼TÿJ·UÿJ¶UÿJ¶UÿJ¶UÿJ¶UÿJ¶UÿJÿP#ÿ[ÿdÿm$ÿs+ÿw5þx>öwGðtPêoZ"äke)àgo/Ûcy5Ö`‚:Ò]Š>Ï[’AÌYšCÊX¡EÈW©GÆV²IÄV¼JÂUÉK¿UßK¼VîL¹VúM·VÿM²XÿM®YÿM¬YÿM¬YÿM¬YÿM¬YÿM¬YÿMÿS ÿ^ÿhÿq"ÿx(ÿ|1ø~: ð}CézLâvWÜra(Ômk/Ïit6Ëe};Çb…@Ä`CÁ^•F¿]œH¼[¤KºZ­L¸Y·N¶YÃO´YÕO±ZêP®Z÷P¬ZÿP¨[ÿP¤\ÿP¤]ÿO¤]ÿO¤]ÿO¤]ÿO¤]ÿOÿVÿaÿlÿu ÿ|%ý.ó„7 ê„?âHÛ}SÑw]'Ërg0Ænp7Âjx<¾g€AºeˆE·cH´a˜K²_ŸM¯^¨O­]²Q«]¾R©]ÎS¦]åS¤^ôS¢^ÿSŸ_ÿRœ`ÿR›`ÿR›`ÿR›`ÿR›`ÿR›`ÿRÿXÿdÿpÿyÿ€#ø†*í‰2äŠ; +܈EÑ‚PÊ}Z&Äxc/¾sl7¹ot=µl|B²j„F®gŒJ«e“M¨d›O¥b¤R£a®T¡a¹UŸaÈVaáV›bñU™býU—cÿT•dÿT”dÿS”dÿS”dÿS”dÿS”dÿSÿZÿgÿsÿ}ÿ„ óŠ&èŽ.ß6ÔŒAˇMÄ‚W&½}`/·xi6²tq=®qxBªn€G¦lˆJ£jN h˜Qg SšfªU˜eµW•eÄX”eÛX’fïW‘füWgþVŽgþUhþUhþUhþUhþUhþUÿ\ÿiÿvÿ€ýˆïŽ"ä“)Ú”1Î?Æ‹K¾†U%·^.±}f6¬yn<§vuB£s}GŸp„KœnŒN˜l”R•kT’j§Wi²YiÀZŒiÕZŠjìYŠjúX‰kýW‡kýV‡kþV‡kþV‡kþV‡kþV‡kþVÿ^ÿlÿxÿƒù‹ë’à˜#Ó˜/Ê”=ÁI¹ŠS$²†[-¬d5¦~k<¡zrBwzG™uK•s‰O‘q‘RŽošU‹n¤Xˆm¯Z†m½[„mÐ[ƒnéZƒnøY‚oüX‚oýW‚oýW‚oýW‚oýW‚oýW‚oýWÿ`ÿnÿ{ÿ†öç–ۜϛ-Å—; ¼“G´ŽQ#­ŠY,§†a4¡‚i;œpA—|wF“y~Kw†O‹uŽRˆs—U„r¡X‚q¬Zqº\~qÌ\}rç[}röZ|rüY|rüW|rýW|rýW|rýW|rýW|rýWÿbÿqÿ}ÿˆò’ãšÕŸÊž+Á›9 ¸—E°’O"©ŽX+¢Š_3œ†g:—ƒn@’€uE~|J‰|„N…zŒR‚x•V~wŸX{vª[yu¸\wuÊ\wvå\wwõZwvûYwvüXwvüWwvüWwvüWwvüWwvüWÿdÿsÿ€ÿ‹ï•ßž ТÆ¡)½ž7 ´šC¬–M ¤’V*Ž^2—‹e9’ˆl@…sEˆƒzJ„€N€ŠR|}“Ux|Xu{¨[sz¶\qzÇ\qzâ\q{óZq{ûYrzüXrzüXrzüXrzüXrzüXrzüXÿgÿuÿƒôŽ Û™ +Ô¡ ̤¤'¸¢6 +°žB§šL —T)™“\1“c8j?ˆŠqDƒˆxI~†Mz„ˆQv‚‘Us›Xo€¦Zm´\kÅ\k€ß\k€òZk€ûYl~üXm~üXm~üXm~üXm~üXm~üXÿiÿxÿ… â’Õ› Σ Ǩ½¨%´¦4 «¢@£ŸJ››R'”˜Z0Ž•a7ˆ’h=‚oC~ŽvHyŒ}LuŠ…PqˆŽTm‡™Wj†¤Yg…±[e…Â[e…Ü[e…ðZf…ûYgƒüXgƒüWgƒüWgƒüWgƒüWgƒüWÿlÿ{ ò‰ Ù•ÏžɦÁ«¸«"¯ª2¦§>ž¤H–¡Q%žX.ˆ›_5‚™f<}–mAx”tFs’{KoƒOkŒRgŽ–Ud¢XaŒ¯Y_ŒÀZ_ŒÙY_ŒîY_ŒûXaŠýWa‰ýWa‰ýWa‰ýWa‰ýWa‰ýWÿo ÿ ßҘʢ©º¯²° ©®/¡¬<˜©F‘§O#‰¤V,ƒ¢]3}Ÿd9wk?r›qDnšyHi˜Le—ŠPa•”S^• U[”­WZ”½XY”ÔWY”ìWY“ùV[‘þU[þU[þU[þU[þU[þUÿs õ„̜ؑå»­³³ «µ£´,›²9’°DŠ­M ƒ«T)}©\0w§b6q¥i|½Hu¼P!oºX'j¹_-e¸e2`·l6\¶t:Xµ|>U´…AQ´DN³œFL³©HJ³¹HI´ÎHI³éHH±öIH°ÿJH°ÿJH°ÿJH°ÿJH°ÿJH°ÿJâ†Î”¡¶©«±¡º˜ÃÉŠÉ ƒÉ/{È; tÇEnÆNhÅV!cÄ]'^Ãd+ZÂk/VÁr3SÁ{6OÀ„9LÀGÀ¨?FÀ¸@EÀÍ@EÀè?D¾öAC½ÿBC¼ÿCC¼ÿCC¼ÿCC¼ÿCC¼ÿCÖÆ›¸¥­®¢¶˜¿ÈƒÑ ÒyÒ*rÒ7lÑBfÑKaÐS\Ï[XÏb#TÎi'QÎq*MÎz-J΃0HÎŽ2EΚ4CΨ5Bθ6AÏÍ5AÎè5@Íõ7?Ëþ9>Ëÿ9>Ëÿ9>Ëÿ9>Ëÿ9>Ëÿ9Ê–¼¢¯ª£³˜¼Æ‚ÏxÙ sÞnÞ&hÞ3bÞ> +]ÞHYÞPUÞXQÞ`NÞgKÝo HÞx#FÞ%CÞŒ'AÞ˜)?Þ¦*>ßµ*=àÈ*=ßã*<Ýñ+;Üû-:Üý.:Üý.:Üý.:Üý.:Üý.ÀŸ±§¤°˜ºÃÍv×nèiècè'^é2Xé;TéD OêLLêSIê[FêbDëjAër?ë{<ë†:ì‘ 8ìž!7í¬"6í»#5îÏ#4îæ#4ëõ#4ëø#4ëø#4ëø#4ëø#4ëø#³¥¦­™·Á€ËuÕiádó^óYô&Tô0Oõ8Kõ@GöG +DöN A÷U?÷\<÷c:øj7øs5ø}3ùˆ1ù”/ú¡.ú¯-û¾,ûÏ+ûç+ûë+ûë+ûë+ûë+ûë¨ªš´¿€ÉtÓgÞ^òYþSÿNÿ#Iÿ+Eÿ3Aÿ:>ÿA;ÿG8ÿN5ÿT 3ÿZ 1ÿa +/ÿi ,ÿr *ÿ} (ÿˆ&ÿ•%ÿ¡$ÿ®#ÿº"ÿÊ"ÿÐ"ÿÐ"ÿÐ"ÿÐ"ÿМ²Ž¼ÇsÑgÝYãSýMÿHÿCÿ?ÿ&:ÿ-7ÿ33ÿ90ÿ?.ÿD+ÿJ)ÿP'ÿV$ÿ]"ÿe ÿnÿyÿ…ÿ’ ÿž ÿ¨ ÿ³ ÿ· ÿ· ÿ· ÿ· ÿ· º‚ÅtÐgÜXãMðGÿBÿ <ÿ8ÿ4ÿ0ÿ%,ÿ+)ÿ0%ÿ5#ÿ: ÿ?ÿDÿIÿOÿVÿ^ÿhÿrÿ~ÿŠÿ” ÿž ÿ¢ ÿ¢ ÿ¢ ÿ¢ ÿ¢ÿ9/ÿ<0ÿA1ÿD4ÿD:ÿDEÿEQ ÿC]ÿAiÿ>vÿ<ÿ:Œÿ9– ÿ8ž!ÿ7¥#ÿ7«#ÿ6²$ÿ6¹%ÿ6À%ÿ5Ê&ÿ5×&ÿ5å&ÿ5ï&ÿ5ø&ÿ6ÿ&þ6ÿ&ü6ÿ&ü6ÿ'ú6ÿ(ú6ÿ(ú6ÿ(ú6ÿ(ú6ÿ(ÿ9/ÿ>/ÿD/ÿF2ÿH8ÿHCÿHO ÿG[ÿDgÿBsÿ?ÿ=Šÿ<“!ÿ;›#ÿ:¢$ÿ9©%ÿ9°&ÿ8¶&ÿ8¾'ÿ8Ç'ÿ8Ó(ÿ8ã(ÿ8í(þ8÷(û8þ'ù9ÿ'ø8ÿ)ø8ÿ*ö8ÿ*ö8ÿ*ö8ÿ*ö8ÿ*ö8ÿ*ÿ:/ÿA,ÿF,ÿJ/ÿL7ÿMAÿLL ÿKXÿHdÿFpÿC|ÿA‡ ÿ?#ÿ>˜$ÿ= %ÿ=¦&ÿ<­'ÿ<´(ÿ;»)ÿ;Ä)ÿ;Ï)þ;à*û;ë*ø;õ)ö<þ)ô<ÿ*ó;ÿ+ò;ÿ,ï;ÿ-ï;ÿ-ï;ÿ-ï;ÿ-ï;ÿ-ÿ<-ÿD)ÿJ)ÿN,ÿQ4ÿR>ÿRJ ÿPUÿMaÿJmÿHxÿEƒ"ÿC$ÿB•&ÿA'ÿ@£(ÿ@ª)þ?±*ý?¸+ü?Á+ú?Ë+÷?Ü,õ?é,ñ?ô+ï?ý,í?ÿ-ì>ÿ/ë>ÿ0ç?ÿ0ç?ÿ0ç?ÿ0ç?ÿ0ç?ÿ0ÿ@*ÿH&ÿN&ÿR)ÿV2ÿW<ÿWG ÿUQÿR]ÿPiÿMt ÿJ#ýH‰&ûG‘(úF™)øE *÷D§+õD­,ôCµ-óC½-òCÈ.ðC×.ìCç.éDó-æCü0äBÿ1ãBÿ2áBÿ3ÜCÿ4ÜCÿ4ÜCÿ4ÜCÿ4ÜCÿ4ÿC'ÿK#ÿR"ÿX'ÿ\/ÿ]9ÿ^C ÿ[NÿXXþUdúRo ÷Pz$ôM„'òL)ðJ•+ïIœ-íI£.ìHª/êG±/éGº0çGÅ0æGÒ0âHå0ßGò2ÛGû4ØFÿ5ÕFÿ6ÒFÿ7ÍHÿ7ÍHÿ7ÍHÿ7ÍHÿ7ÍHÿ7ÿF$ÿO ÿVÿ]$ÿa,ÿc5ÿd@ ÿbJú^Tõ[_ñXk îUu%ëS(èQˆ+æO‘-äN˜/âM 0áL§1ßL®2ÝK·3ÛKÂ4ÙJÏ5ÕKä5ÐKð6ÍJû8ÊJÿ:ÈJÿ:ÆKÿ;ÁLÿ;ÁLÿ;ÁLÿ;ÁLÿ;ÁLÿ;ÿJ!ÿSÿ[ÿb"ÿg)ÿi2ÿj< ùhFòePía[è^f ä[q%áX{)ÞV„,ÛTŒ/ØR”2ÔQ›4ÒP£5ÐOª7ÎN²8ÌN¼9ÊNÉ:ÈNÝ:ÄOí;ÁNù=¾Nÿ=¼Nÿ>ºOÿ>¶Pÿ>¶Pÿ>¶Pÿ>¶Pÿ>¶Pÿ>ÿMÿVÿ_ÿg ÿl&ÿo.ùp8òoB ëlKåiWßebÚal%Ô]v*Ð[~/ÍY‡2ÊW5ÈV–7ÆT9ÄS¥;ÁS­<¿R·>½RÃ?¼RÓ?¹Rè?µRöA³RÿA±SÿA¯SÿA¬TÿA¬TÿA¬TÿA¬TÿA¬TÿAÿPÿZÿdÿlÿq#ýu*óv3ëv= +ãsGÜoSÔk^Îfg&Êcq+Æ`y0Â^4¿\‰7½Z‘:ºY˜<¸X >¶W¨@´V²B²V½C°UÌC­VãD«VóD¨WþD§WÿD¥XÿD¢XÿD¢XÿD¢XÿD¢XÿD¢XÿDÿSÿ]ÿhÿpÿv ÷z&í|.ä|8ÜzD ÒuOËpZÆlc&Áhl,½fu1¹c}5¶a„9³_Œ<°]”?®\›A«[¤C©Z­E§Z¸F¥YÇG£ZÞG¡ZïGŸ[üG[ÿG›\ÿFš\ÿFš\ÿFš\ÿFš\ÿFš\ÿFÿUÿ`ÿkÿtÿzò"ç)Þ‚3Ó@ ËzLÄvV¾q`%¹nh,´kq2±hy6­f€:ªdˆ=§b@¥`—C¢_ EŸ^©G^´I›]ÂJ™]ÖJ—^ìJ–_úI•_ÿI“`ÿH’`ÿG’`ÿG’`ÿG’`ÿG’`ÿGÿXÿcÿnÿwû~íƒâ‡#Ö‡.̃= ÅI½{S·v]%²se,­om2©mu7¦j|;¢h„>ŸfŒAœe”D™cœG—b¦I”b°K’a¾LaÐLbèLŽcøKcÿJŒdÿI‹dÿI‹dÿI‹dÿI‹dÿI‹dÿIÿZÿfÿqÿz÷‚è‡Ý‹Ћ,Lj; +¿„G¸Q±{Z$¬wb+§tj1£qr6Ÿoy;›m€?˜kˆB•iE’h™Hf¢JŒf­LŠeºMˆeÌN‡fæN†göL†gÿK…hÿK„hÿJ„hÿJ„hÿJ„hÿJ„hÿJÿ\ÿhÿtÿ}ó…ä‹ÖËŽ*ÂŒ8 ºˆD³„O¬X#§|`+¡xh1uo6™sv;•q}?’o…BŽmE‹l–Hˆk K…jªMƒi·NiÈO€jãO€kôNkÿLkÿKkÿKkÿKkÿKkÿKkÿKÿ^ÿkÿvû€ êˆ Û Ð’Ç’'¾6¶ŒB®ˆM¨„V"¢€^*œ}e0—zl5“ws:u{>Œs‚Bˆr‹F…p“I‚oLn¨N}nµO{mÆPznàPyoòNyoþMyoÿLyoÿKyoÿKyoÿKyoÿKyoÿKÿ`ÿm ÿy îƒ Û‹ Ô‘ +Ì••%¹“4±AªŒK£ˆT!„\)—c/’~j5Ž|q9Šzx=†x€BƒvˆEu‘I|s›Lyr¦Nvr³PurÃPsrÝPtsðOtsýMtsÿLtsÿLtsÿLtsÿLtsÿLtsÿLÿbÿo ü{ +Þ†ÕŽÏ” ǘ¾˜#µ–2­“?¦IŸŒR ˜‰Z(“†a.Žƒh4‰o9…v=}~A}{†EzyIvx™Lsw¤Nqw±PovÁPnwÙPnwïOnwüNnwÿMowÿLowÿLowÿLowÿLowÿLÿd ÿr +ð~ÚˆÐÊ—›¹›!±š0©—=¡”Gš‘P”X'Ž‹_-‰ˆf3„†m8€„t={‚{Ax€„EtHq}—Km|¢Nk|¯Oi{¾Ph|ÕPh|íOi|ûNi|ÿMj{ÿLj{ÿLj{ÿLj{ÿLj{ÿLÿf +ÿuáԋ˓Ě½žµŸ¬ž.¤›; ˜E–•N“V%‰],„Žd2‹k7zŠrmBi‹ˆFeŠ’Ib‰žK_ˆªM^ˆºN\ˆÎN]ˆéM]‡øL]‡ÿK^†ÿK^†ÿK^†ÿK^†ÿK^†ÿKÿmê|ՈʒÁš¹ ±¦ ©§¢§)š¥6 ’£A‹¡J„ŸR!~Z(y›`.t™g3o—n8k–uQ£˜@O£¥BM£´CL£ÈCL£äCK¡ôCK ÿDK ÿDK ÿDK ÿDK ÿDK ÿDã}ϋ–·Ÿ­¦£­™µ¹‹º„º-}¹9 w¸Cq¶LkµSf´Z"b³a&^²h+Z±o.V°w2S°5O¯‹8L¯—:J®¤E«ÿ?E«ÿ?E«ÿ?E«ÿ?E«ÿ?ڃǑ»œ¯¤¥«š²º†Á Â{Â(uÂ5oÁ@ iÀId¿Q_¾X[¾_ W½f$T¼n'Q¼v*M»-J»Š0H»–2E»£4C»²4B»Å5C»â4B¹ó5A¸ý7@·ÿ7@·ÿ7@·ÿ7@·ÿ7@·ÿ7΋¿˜²¡§©œ°‘¸†À{ÈtËpÌ"kË0fË<aËE \ÊNXÊVTÊ]QÉdNÉlKÉt"HÈ~$EȈ'CÈ•(AÈ¢*?ȱ+>ÉÄ+>Éá*>Çò+=Æü-<Åÿ.<Åÿ.<Åÿ.<Åÿ.<Åÿ.Ä“¶Ÿ©¦®’·†¿{ÇpÏgÖ d×`Ø*\Ø6XØATØJ +PØR MØZJ×bG×iE×rB×|@؇=Ø“<Ø¡:Ù° 9Ùà 9Ùß 9×ï 8Õù"7Ôÿ#7Ôÿ#7Ôÿ#7Ôÿ#7Ôÿ#¹œ«¤Ÿ¬“µ‡¾{ÆpÎeÖ]ãZãVã'Rä2Nä<JäDGåMEåU +Bå\ @åd>æl;æv9æ€7çŒ5ç™4ç¨2è¸2èÌ1èå1æô1åü1åü1åü1åü1åü®¢¡ª”³ˆ½{ÆoÎcÖXÞTîQïMï&Ið/Eð8Añ?>ñG<òN:òU7ò\5ód 3óm +1ôw /ô‚ -ô+õ*ö«)ö¼(öÎ'÷æ'õñ'õñ'õñ'õñ'õñ£¨–²ˆ»{ÅoÎb×VÞNðJúFûBû"?ü*;ý28ý95þ?2þF0ÿL.ÿS+ÿZ)ÿb'ÿk$ÿv#ÿ‚!ÿ ÿ ÿ« ÿº ÿÉ ÿÝ ÿÝ ÿÝ ÿÝ ÿÝ ˜°Šº|ÄoÍbØUÞIäDû?ÿ;ÿ8ÿ4ÿ$1ÿ+-ÿ1*ÿ6'ÿ<%ÿB#ÿH ÿNÿUÿ]ÿgÿrÿÿŒÿšÿ¦ÿ²ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼Œ¸}ÂoÌbØTßGå>ñ9ÿ4ÿ 0ÿ,ÿ)ÿ&ÿ""ÿ'ÿ,ÿ1ÿ6ÿ<ÿAÿHÿOÿW ÿa ÿl +ÿy ÿ†ÿ’ÿÿ¥ÿ¥ÿ¥ÿ¥ÿ¥ÿ11ÿ6.ÿ:/ÿ;2ÿ;9ÿ;Cÿ9Oÿ8\ +ÿ6h ÿ4tÿ2€ÿ1‹ÿ0”ÿ0›ÿ/¢ÿ/¨ÿ.¯ÿ.µÿ.¼ÿ.Åÿ.Ïÿ.àÿ.ëÿ.ôÿ.üü/ÿû/ÿú.ÿú.ÿú.ÿú.ÿú.ÿú.ÿÿ3/ÿ9,ÿ=-ÿ>0ÿ?6ÿ?Aÿ=Mÿ€ÿ<Šÿ<’ÿ;šý: ü:§û9­ú9´ù9¼ø9Æö9Óò9äï9ðì:úê9ÿ!é9ÿ#è9ÿ$ç9ÿ$ç9ÿ%ç9ÿ%ç9ÿ%ç9ÿ%ÿ<'ÿC#ÿH"ÿL&ÿO/ÿP9ÿNCÿLO ÿJ[ÿHfÿEqüC|úB†øAŽö@–õ?ó?£ ò>ª ñ>±!ð>¹!î>Ã!í>Ï!ê>â!æ?ï!ã>ù#á=ÿ%ß=ÿ'Þ=ÿ(Ü=ÿ(Ü=ÿ(Ü=ÿ(Ü=ÿ(Ü=ÿ(ÿ?#ÿG ÿLÿQ$ÿU,ÿV5ÿU?ÿSJ +þPVúNböKmóIwðGîFŠìE’ ëD™!éC "èC§#æC®#åB¶$äBÀ$âCÌ$ßCà$ÛCí%ÖBø(ÓBÿ*ÑBÿ+ÏAÿ+ÎAÿ,ÎAÿ,ÎAÿ,ÎAÿ,ÎAÿ,ÿC ÿJÿPÿW!ÿ[(ÿ\2ÿ[;üYF öVQñT]íQhéOræM|äK… âJŽ!àI•#ÞHœ$ÜG£&ÚG«'ØF³(ÕF¼(ÓFÈ)ÑFÜ*ÍGì*ÉF÷,ÇFÿ.ÄFÿ/ÃFÿ/ÂFÿ/ÁFÿ/ÁFÿ/ÁFÿ/ÁFÿ/ÿFÿNÿVÿ\ÿ`%ÿb-üb7ô`Aî]L èZXãXcßUnÛRwØP€"ÔO‰$ÑM'ÏL—(ÍLž*ËK¦+ÉJ­,ÇJ·-ÆJÂ.ÄJÑ/ÁKç/½Jô1»Jÿ2¸Jÿ2·Kÿ3¶Kÿ3¶Kÿ3¶Kÿ3¶Kÿ3¶Kÿ3ÿJÿRÿZÿaÿf!þh)ôh2ìg<ådH ßaTÙ^^Ò[iÎXr ËV{$ÈTƒ'ÅR‹*ÃQ’,ÁP™.¿O¡/½O¨1»N±2¹N¼3·NÊ4µNá4²Nñ5¯Oý6­Oÿ6¬Oÿ6«Oÿ6«Oÿ6«Oÿ6«Oÿ6«Oÿ6ÿMÿUÿ_ÿfÿkøm$ín,åm6ÝkCÔgOÍdZÈ`dÄ]m"Á[v&½Y~)»W…,¸V/¶U”1´Tœ3²S¤4°R­6­R·7¬RÅ8ªRÚ8§Rí9¥Sú9£Sÿ9¢Sÿ9¡Tÿ8¡Tÿ8¡Tÿ8¡Tÿ8¡Tÿ8ÿOÿYÿcÿjÿoòræt&Ýt1Óq?ËmKÅiVÀf`»ci"·`q'´^y+±\€.®[ˆ1¬Y3ªX—5§WŸ7¥W¨9£V³:¡VÀ;ŸVÒ–ZÌ?”Zå?’[õ>‘[ÿ>\ÿ=\ÿ<\ÿ<\ÿ<\ÿ<\ÿ<ÿUÿ_ ÿiÿqõwæ{Ù}Î}*Å{9¾wE·tP±pY­mb"¨ji'¥hq,¡fx/žd€3›b‡6˜a8–`˜;“_¡=‘^«?^¸@^ÈA‹^áAŠ_ó@‰_ÿ?‰`ÿ>ˆ`ÿ>ˆ`ÿ=ˆ`ÿ=ˆ`ÿ=ˆ`ÿ=ÿWÿb ÿl øt éz Þ~ ÒÈ'À6¸|B ²xM¬uV§r_"¢of'žln,›ju0—h|3”g„6‘eŒ9Žd•<Œcž>‰b¨@‡bµB…bÅB„bÞCƒcñB‚cýA‚dÿ@‚dÿ?‚dÿ?‚dÿ?‚dÿ?‚dÿ?ÿYÿd ÿn +êwÛ}Ô‚ +̄Å$»ƒ4³€@ ­|K¦yT¡v\!œsd&˜qk+”or/‘my3Žk6‹j‰9ˆh’<…g›?‚f¦A€f²C~fÁD}fÙD|gïC|güA|hÿ@|hÿ@|hÿ?|hÿ?|hÿ?|hÿ?ÿ[ ÿg ÷qÞzԀ΅ LJ¾ˆ"¶‡1¯„> ¨I¢}RœzZ —wa&“uh+so/‹qw3ˆo~6…n†:‚m=k™?|k£Byj°Cxj¿DvjÔEvkíCvkûBvkÿAvlÿ@vlÿ@vlÿ@vlÿ@vlÿ@ÿ] +ÿiìtÚ|ЃɈʺ‹ ²Š/«ˆ< +¤…GP˜~X“|_%Žyf*Šwm.†ut2‚t|6r„9|q=yp–@vo¡Btn®Drn½EpnÑEpoëDpoúCqoÿAqoÿ@qpÿ@qpÿ@qpÿ@qpÿ@ÿ_ÿkávԈŋ¾ µ®Ž-¦Œ: Ÿ‰E™†N“ƒVŽ€]$‰~d)…|k-zr2}xy5zw‚9wv‹f~›Ac~¨Ca}¶D`}ÉD_}åC`}öB`}ÿAa}ÿ@a}ÿ@a}ÿ@a}ÿ@a}ÿ@ÿgãtÒLj¾¶•®˜¦šŸš&˜™3‘—? ‹•H…“P‘X z_%ve*r‹l.nŠs2jˆ{6f‡„9c†Ž<`…™?]„¦A[„´BZ„ÇCZ„ãBZƒôA[ƒÿ@[ƒÿ@[ƒÿ?[ƒÿ?[ƒÿ?[ƒÿ?ÿjÞx̓Œ¹“°˜§ Ÿ™Ÿ#“ž1Œ< …›F™Nz—Vu–]#p”c(l’j,h‘q0ey4aŽ‚7^Œ:ZŒ—=XŒ¤?V‹²@T‹Å@T‹á@TŠó?UŠþ?U‰ÿ>U‰ÿ>U‰ÿ>U‰ÿ>U‰ÿ>ïoÖ|ȇ½‘´˜ªœ ¢™¤“¥ Œ¤.…£9 ¢Cy LtŸSoZ jœa%fšh)c™o-_˜w0[—€4X–Š7U••9R•¢;P”°=O”Ã=O”ß³ú,=²ÿ-=±ÿ-=±ÿ-=±ÿ-=±ÿ-lj¹•¬¡¤–«Š²¸s¿jÄ gÅcÅ(_Å5[Å?WÅH TÄP PÄXMÄ_JÃfHÃnEÃxBÂ@ÃŽ>Ü<ë ;ü!:ÃÕ!;Âî!9Àù"8¿ÿ$8¿ÿ$8¿ÿ$8¿ÿ$8¿ÿ$½‘°›¤¢˜ªŒ±€¹u¿jÆ^ÌYÏWÐ!UÐ.QÐ9NÐCKÐLIÐSFÐ[ CÐc AÐk>Ðu<Ñ€:ÑŒ8Ñš6Ñ©5Ñ»4ÒÒ5Ðì4Ï÷3Îÿ3Îÿ3Îÿ3Îÿ3Îÿ³™¦¡š©Ž±¹uÀjÇ^ÍTÔLÝ JÝHÞ&FÞ2Dß<BßE?ßM=àU;à]9àf7ào 5áz +3ᆠ1á” 0â£.â³.ãÇ-ãã-àò,ßû,ßý,ßý,ßý,ßý¨ œ§°ƒ¸vÁjÉ^ÏSÕIÜEéBé@ê$=ê.:ë68ì>6ìF3íM1íU/î]-îe+îp)ï{(ï‰&ð—%ð§$ñ¸#ñÌ"òå"ðó"ïõ"ïõ"ïõ"ïõž¦‘¯„¸wÁjÉ]ÐQ×FÝ?ê<ö9ö6÷ 3÷(1ø0.ù6+ù=)úD'úJ%ûR#ûZ ücüný{þ‰þ˜ÿ¨ÿ·ÿÈÿàÿäÿäÿäÿä“®…·xÀjÉ]ÒPÙDß:ä5÷2ÿ .ÿ+ÿ(ÿ!&ÿ'#ÿ- ÿ3ÿ9ÿ?ÿEÿMÿUÿ_ÿjÿxÿ‡ÿ– ÿ¤ ÿ° ÿ¾ ÿ ÿ ÿ ÿ‡¶y¿kÉ^ÓPÛCà8å/ð+ÿ'ÿ$ÿ!ÿÿÿÿ#ÿ(ÿ-ÿ2ÿ8ÿ? ÿF +ÿOÿYÿeÿrÿÿÿ›ÿ§ÿ©ÿ©ÿ©ÿ©ÿ,/ÿ0,ÿ2,ÿ30ÿ16ÿ0Aÿ/Mÿ-Zÿ+fÿ)sÿ(~ +ÿ'ˆ ÿ'‘ ÿ'™ ÿ&Ÿ ÿ&¥ÿ&«ÿ&±ÿ&¸ÿ&Àÿ&Éÿ&×ÿ&æÿ&ðþ&ùû'ÿù'ÿù&ÿø&ÿø&ÿø&ÿø&ÿø&ÿÿ.,ÿ3)ÿ5*ÿ6-ÿ64ÿ5?ÿ3Kÿ2Wÿ0dÿ.p ÿ,{ +ÿ,… ÿ+Ž ÿ+–ÿ*ÿ*£ÿ*©ÿ*¯ÿ)¶ÿ)½ÿ)Çÿ)Óþ)ãû*ïø*øö+ÿô*ÿô*ÿó*ÿó)ÿó)ÿó)ÿó)ÿÿ1)ÿ6&ÿ9&ÿ:)ÿ;2ÿ;=ÿ9Hÿ7Tÿ5`ÿ3l ÿ2w ÿ0‚ ÿ0‹ÿ/“ÿ/šÿ. ÿ.¦ÿ.¬ÿ.³þ.ºý.Äû.Ïø.áõ.íñ/÷ï/ÿî.ÿí.ÿì.ÿì.ÿì.ÿì.ÿì.ÿÿ4&ÿ9#ÿ=#ÿ>&ÿA/ÿA9ÿ?Eÿ=Pÿ;\ÿ9h +ÿ7s ÿ6~ÿ5‡ý4ü4–ú3ù3£ø3©÷3°ö3·ô3Àó3Ìð3Þí3ëé4öç3ÿæ3ÿä2ÿä3ÿã2ÿã2ÿã2ÿã2ÿÿ8#ÿ= ÿAÿE#ÿG,ÿG6ÿF@ÿDLÿAXÿ?d û>où–å>œã=£â=ªà=²ß=»Ý=ÆÛ=ØÖ=éÒ=õÎ=þÌ<ÿ Ë<ÿ!É<ÿ!É<ÿ!É<ÿ!É<ÿ!É<ÿ!ÿ?ÿEÿKÿPÿS$ÿT-ÿS7÷QBñNMìLZ èJeåHoâGyßE‚ÝDŠÚC‘ØB™ÕBŸÓA¦ÑA®ÏA·ÎAÁÌAÐÉBåÅBó!ÂAþ#ÀAÿ$¾Aÿ$½Aÿ%½Aÿ%½Aÿ%½Aÿ%½Aÿ%ÿBÿIÿPÿVÿY ÿZ(÷Z2ïX=èUIãSU +ÞQ`ÙNjÔLtÐK|ÎI„ÌHŒÊG“ÈGšÆF¡!ÄF©"ÂE±#ÁE¼#¿EÉ$½Fß%¹Fï&¶Fû'´Fÿ(³Fÿ(²Fÿ(±Fÿ(±Fÿ(±Fÿ(±Fÿ(ÿFÿMÿUÿ[ÿ^ù`#ï`,æ^6ß\DØYP +ÑW[ÌTeÈRnÅPwÃOÀN†¾MŽ!¼L•#ºKœ$¸J¤&¶J¬'´J¶(³IÃ)±IÖ)®Jê*«Jø+©Jÿ+¨Kÿ+§Kÿ+§Kÿ+§Kÿ+§Kÿ+§Kÿ+ÿIÿPÿYÿ_ÿcòeçe%Þd1Ôb?Í`K +Ç]VÂZ`¾Xi»Vq¸Ty¶S"³Rˆ$±P&¯P—(­OŸ)«N¨+©N²,§N¾-¦NÎ.£Næ.¡Oõ.ŸOÿ.žOÿ.Oÿ.Pÿ.Pÿ.Pÿ.Pÿ.ÿLÿT ÿ]ÿcùgëißjÓj,Ëh;ÅeG ¿bRº`\¶]e²[m¯Yu!¬X|#ªVƒ&§U‹(¥T“*£S›,¡S£.ŸR­/R¹0›RÉ1™Râ1—Sò1–Sÿ1•Tÿ1”Tÿ0”Tÿ0”Tÿ0”Tÿ0”Tÿ0ÿOÿX ÿ` ûf ðk ämÖnÌo(Äm7½kD ·hO²eX®baª`i§^p!¤]x%¡['ŸZ‡*œYŽ,šX—.˜W 0•Vª2“Vµ3‘VÅ4VÝ4ŽWð4Wý3ŒXÿ3ŒXÿ2ŒXÿ1ŒXÿ1ŒXÿ1ŒXÿ1ÿQ ÿ[ ÿcëjÝnØq +ÏrÆs%¾r4·pA±mL¬jU§g^£ee cm"œat%š`{(—^ƒ+”]‹-’\“0[œ2Z¦4‹Z²5‰ZÁ6‡ZÖ6†[í6…[û5…\ÿ4„\ÿ3„\ÿ3„\ÿ3„\ÿ3„\ÿ3ÿS +ÿ]õfßmÕrÐu ÉvÀw"¸v1±t>«qI¦nR¡l[ib™gj"–fq%“dx(c+a‡.Š`0ˆ_™3…_£5ƒ^¯6^¾8€^Ñ8_ê7~_ú6~`ÿ5~`ÿ4~`ÿ4~`ÿ4~`ÿ4~`ÿ4ÿUÿ`èiÚpÐuÊxÃz»{³z/¬x<¦uF ¡sPœpX—n`“kg!jn%hu(Šg|+‡f„.„d1c–4c¡6|b­7zb»9ybÎ9xcè8xcø7xdÿ6xdÿ5xdÿ5xdÿ5xdÿ5xdÿ5ÿWÿbálÔsËxÅ{¾} ¶~¯~,¨|9¡yD œwN—tV’r]Žpd Šnk$‡lr(„kz+j‚.~iŠ1{h”4xgŸ6vfª8tf¹9sfË:rfæ9rg÷8rgÿ7rhÿ6rhÿ5rhÿ5rhÿ5rhÿ5ÿYöeÝnÏvÇ{À¹€ ±‚ª‚*£€7}B —{K’xTv[‰tb …ri$qp'~ow+{n.xmˆ1vl’4skœ6pj¨8nj·:mjÉ:ljä:mkõ8mkÿ7mkÿ6mkÿ6mkÿ6mkÿ6mkÿ6ÿ[ëgÙqÌyÃ~»‚´„ ­…¦…(Ÿ„5™‚@ +“I}R‰{Y„y`€wg#|un'ytu*vs}.sr†1pq4mp›6ko§8ioµ:hoÇ:goâ:goô8hoÿ7hoÿ6hoÿ6hoÿ6hoÿ6hoÿ6ÿ^äjÓtÈ|¿·…¯‡¨‰¡‰%›ˆ3”†> Ž„G‰P„W~^{|e"xzl&tys*qx{-nw„0kvŽ3hu™6ft¥8ds³9bsÄ:bsà:bsó8csÿ7csÿ6csÿ6csÿ6csÿ6csÿ6ÿaàmÏwÄ»…³‰ª‹£Œœ#–Œ0‹<ЉE„‡N…U{ƒ\w‚c!s€j%oq)l}y,i|‚/f{‹2cz—5`y£7^y±8]yÂ9\yÝ9]yñ8]xþ7^xÿ6^xÿ5^xÿ5^xÿ5^xÿ5õdÜpÊzÀƒ¶‰®¤‘—’ ‘‘.Š9„ŽC Lz‹Su‰Zqˆa n†h#j…o'g„w+cƒ.`‚‰1]”3[€¡6Y¯7WÀ8WÚ7Wð7X~ý6X~ÿ5X~ÿ5X~ÿ5X~ÿ5X~ÿ5éhÔtÆ~»‡²¨‘ž”––‘—‹—+…–7”A +y“It’QpXl_hŽf!eŒm%a‹t(^Š},[‰‡/Xˆ’1U‡Ÿ3S‡­5R‡¾5Q‡Ö5Q†î5R…û4R…ÿ4R…ÿ3R…ÿ3R…ÿ3R…ÿ3ãlÎyÁƒ¶‹¬‘¢•—™› Š„'~œ4y›>sšG o™Oj˜Vf—]c•c_”j"\“r%Y’{(U‘…+R‘.P0N«1L¼2LÓ2Lí2LŽú2Lÿ1LŒÿ1LŒÿ1LŒÿ1LŒÿ1ÜqÈ~»ˆ±‘¦–œšŸ‡¢£|¤#w¤0r£;m¢D h¡Ld T`ŸZ]žaYhVp!Sœy$P›ƒ'MšŽ)Jš›,Hš©-G™º-FšÐ-F˜ë-F—ù.F–ÿ.F–ÿ.F–ÿ.F–ÿ.F–ÿ.ÑwÁ„¶Žª• ›•ŸŠ¤}©w«s«o¬,j«7e«AaªI ]©QZ©XW¨_S§fP§nM¦vJ¥!H¥Œ$E¥™&C¤¨'B¤¸(A¤Î'A£ê'@¢ø(@¡ÿ)@ ÿ)@ ÿ)@ ÿ)@ ÿ)É~º‹¯”£š˜ ¥‚ªu°l³ i´e´'a´3^´=Z´FV³N +S³U P³\M²cJ²kG±tE±~B°Š@°—>°¦ <°· <°Ì <¯è ;®÷!:­ÿ":¬ÿ#:¬ÿ#:¬ÿ#:¬ÿ#À†³’§™œŸ¦„¬y±m·a¼]½Z¾ X¾-T¾8Q¾BN¾JL¾RI¾Y +F¾` D¾hA½q?½|<½ˆ:½•8½¤7½µ6½Ê7¼ç5»ö5ºÿ4¹ÿ4¹ÿ4¹ÿ4¹ÿ¸ª˜ŸŸ“¦‡¬{³o¹c¾XÄPÈ MÈLÉ%JÊ1GÊ;EÊDCÊLAÊT>Ê\<Êd:Ën 8Ëx +6Ë… 4Ë’ 2Ë¢1˲0ÌÇ0Ëå/Éõ.Èý.Çÿ.Çÿ.Çÿ.Çÿ®—¡ž•¥‰­|´p»dÁYÆNËEÐ>Õ=Õ<Ö&;×19Ø;8ÙE6ÙM5ÙV3Ú^1Úh0Ûs.Û,Û*Ü)Ü­(ÝÁ(ÝÞ'Ûï&Ùù&Øþ &Øþ &Øþ &Øþ ¤˜¥‹­~´q¼eÃYÉMÍCÓ:Ù5ä 3ä1ä 0å*.æ3-æ<+çD*çL(èT'è]%ég#és"ê ê‘ë¡ë²ìÇìáêñéùéùéùéù𤬵r½eÅYËLÐAÕ8Ü/á-ñ +ñ(ò&ò$$ó+"ô2!ô9õAõIöQ÷Z÷eørùù’ú¢ú³ûÆûÝûéûéûéûé«´s½fÆYÍKÓ@Ù5Þ,ã&ñ$þ +!ÿÿÿÿ"ÿ(ÿ.ÿ5ÿ<ÿCÿL ÿV ÿb ÿoÿÿÿ ÿ®ÿ¼ÿÇÿÇÿÇÿǃ´u½gÆZÏKÕ?Ü3á)å!ìýÿÿ ÿÿÿÿ ÿ# ÿ(ÿ.ÿ5ÿ=ÿFÿQÿ]ÿkÿ{ÿ‹ÿ™ÿ¥ÿ¬ÿ¬ÿ¬ÿ¬ÿ',ÿ**ÿ+*ÿ*.ÿ&4ÿ%?ÿ#Kÿ!Xÿ dÿpÿ{ÿ…ÿŽÿ–ÿœÿ¢ÿ¨ÿ®ÿ´ÿ»ÿÃÿÎÿßÿëüõùþ÷ÿ÷ÿöÿ öÿ öÿ öÿ öÿ ÿ)*ÿ,'ÿ.'ÿ-*ÿ,2ÿ+=ÿ)Iÿ'Uÿ%aÿ#mÿ"xÿ"‚ÿ!‹ÿ!“ÿ!šÿ! ÿ!¥ÿ!«ÿ!±ÿ!¸ÿ!Áÿ!Ëü!Üù!éö!ôó"ýò"ÿ ñ"ÿ +ñ!ÿ ð!ÿ ð!ÿ ð!ÿ ð!ÿ ÿ,&ÿ0$ÿ1#ÿ1&ÿ2/ÿ1:ÿ/Fÿ-Rÿ+^ÿ)iÿ(uÿ'ÿ'ˆÿ&ÿ&–ÿ&þ&£ ý&© ü&¯ û&¶ ú&¾ ø&È ö&Ù ò&è ï'ó í'ý +ë&ÿ ê&ÿ é&ÿ è&ÿè&ÿè&ÿè&ÿÿ/#ÿ3 ÿ5ÿ7#ÿ8,ÿ87ÿ6Bÿ4Nÿ2Zÿ0eÿ.pþ-{ü-„ú,Œ ø,“ ÷,™ +ö+  +ô+¦ +ó+¬ ò+³ ñ+» ï+Æ î,Ô ê,æ æ,ò ä,ü â,ÿá,ÿà,ÿß,ÿß,ÿß,ÿß,ÿÿ3ÿ7ÿ:ÿ= ÿ?(ÿ?2ÿ=>ÿ;Iÿ9Uû7a÷5lõ4vò3 ð2‡ +ï2 í2– ì1œ ê1¢ é1© è1° æ1¹ å1à ã2Ñ ß2å Ü2ñØ1üÕ1ÿÒ1ÿÑ1ÿÐ1ÿÐ1ÿÐ1ÿÐ1ÿÿ7ÿ;ÿ?ÿCÿF$ÿF.ÿD9üBDö?Pñ=\íìFJçDVãCbßAl +Ü@u Ù?~ Õ>†Ó=Ñ=”Ï<›Í<¢Ì<©Ê;±È;»Ç;ÈÅ<ÜÁ<í¾<ù»<ÿº<ÿ¹<ÿ¸<ÿ¸<ÿ¸<ÿ¸<ÿÿ>ÿDÿJÿOÿQûR#ñQ-éO8âMEÜKQÖI\ÑGf ÎFpËExÈD€ÆC‡ÄBŽÃB•ÁAœ¿A¤½@¬¼@¶º@¸@ÒµAè²Aö°Aÿ®Aÿ­Aÿ¬Aÿ¬Aÿ¬Aÿ¬AÿÿBÿG ÿOÿSÿVóWèV%àU1×S?ÏRLÊPW ÆNa ÃLjÀJr½Iz»H‚¹G‰·GµF—³FŸ±E§°E±®E¼¬E̪Eã §Fó!¥Fÿ!£Fÿ"¢Fÿ!¢Fÿ!¢Fÿ!¢Fÿ!¢Fÿ!ÿEÿK +ÿS ÿW ùZë[ßZÔZ+ÌZ;ÆXHÁVS ¼T\ ¹ReµPm³Ou°N|®M„¬L‹ªK’¨Jš¦J£!¤I¬"£I¸#¡IÆ$ŸJÞ$Jð$›Jý%™Kÿ$™Kÿ$˜Kÿ$˜Kÿ$˜Kÿ$˜Kÿ$ÿH ÿOÿVõ[ é^ +ä^ Õ_Ë`'Ä_6¾^C¸[N ´YX°Wa¬UiªTp§Sx¥R¢Q† PŽ žO–"œNŸ#šN¨%˜N³&—NÂ'•NÖ'“Nì'‘Oû'Oÿ'Pÿ&Pÿ&Pÿ&Pÿ&Pÿ&ÿJ ÿSøZâ_ÚbÔc ÍcÄe#¼e2¶c@±aK ¬^T¨\]¥[e¡YlŸXsœVzšU‚ ˜TŠ"•T’$“S›&‘R¥'R°)R¾*ŒRÐ*ŠSé*‰Sù)ˆTÿ)‡Tÿ(‡Tÿ(‡Tÿ(‡Tÿ(‡Tÿ(ÿLÿVé]ÜcÑgÌhÆh½j ¶i/°h<ªeG ¥cQ ¡aZ_aš^i—\p•[w’Z~!Y†#XŽ%‹W—'‰W¡)†V­+…Vº,ƒVÌ,‚Wæ,W÷+€Xÿ*€Xÿ*€Xÿ)€Xÿ)€Xÿ)€Xÿ)ÿOýYâ`ÕgÌjÆlÀl·m°n,ªl9¥jD hN ›fW—d^”be‘`lŽ_s‹^{!‰]‚$†\‹&„[”([ž*Zª,}Z·-|ZÉ.zZã.z[õ-z\ÿ,y\ÿ+z\ÿ*z\ÿ*z\ÿ*z\ÿ*ÿQò[ÞdÏjÇnÀpºp ²q«q)¥p7ŸnBšlK –jT’h\Žfc‹eiˆcp…bx!‚a$€`ˆ&}_‘){_œ+x^§-v^µ.u^Æ/t^á/t_ó.t_ÿ,t`ÿ+t`ÿ+t`ÿ+t`ÿ+t`ÿ+ÿSè^ÙgËmÃq»sµs ­u§u'¡t4›r?•pI ‘nRŒlY‰j`…ig‚hnfu!}e}$zd…&wd)ucš+rb¥-pb³/obÄ/nbÞ/ncò.ncþ-ncÿ,ncÿ+ncÿ+ncÿ+ncÿ+ÿUå`ÓiÈp¿t·w°w¨x¢y$œx2–v=‘tG ŒrOˆpW„o^€md}lkzks wjz#tiƒ&rh)og—,mg£.kf±/ifÁ0ifÛ0igð/igý-igÿ,jgÿ+jgÿ+jgÿ+jgÿ+þXácÏlÄs»x³z«z¤{ž|"˜|/’z;ŒxE +‡wMƒuUs\{rbxpiuop rnx#om&ml‹)jl–+hk¡.fk¯/dj¿0ckØ0ckï/dkü-dkÿ-ekÿ,ekÿ,ekÿ,ekÿ,ô[ÝfËoÀv·{¯~¦~Ÿ™€“€-9ˆ}C ƒ{K ~zSzxZvwasugptnmsv"jr&hq‰(ep”+bp -`o­/_o½/^oÔ/^oí/_oû-_oÿ,`oÿ,`oÿ,`oÿ,`oÿ,ë^ØiÇr¼y³«‚¡‚™ƒ”„Ž„+ˆƒ6ƒ‚@~€I yQu}Xr|_n{ekzlhyt"ex}%bw‡'`v’*]už,[u«.Zt»/YuÑ/Ytì.Ytú-Ztÿ,Ztÿ+Ztÿ+Ztÿ+Ztÿ+æaÑmÃv¹}¯ƒ¦†œ†”ˆ މ‰‰(ƒ‰4~‡>y†G t…Op„Vm‚]icf€jcr `~z#]}„&Z|)X{œ+V{©,T{¹-S{Î-Tzê-Tzù,Tyÿ+Uyÿ*Uyÿ*Uyÿ*Uyÿ*áeÌq¿z´‚«‡¡Š•‹ ‡Ž‚$}1xŽ;sD oŒL kŠTg‰Zdˆaa‡h^†p[…x!X„‚$U„&Rƒš)P‚§*O‚·+N‚Ì+N‚è+Nø*O€ÿ*O€ÿ)O€ÿ)O€ÿ)O€ÿ)ÛjÇuº°‡¦Œœ‘†“€”{•!w•-r•8m”Bi“J e’Qb‘X^_[fXŽmUŽvR€!OŒ‹#M‹˜%K‹¥'I‹µ(H‹Ê(HŠç'I‰÷(Iˆÿ'I‡ÿ'I‡ÿ'I‡ÿ'I‡ÿ'ÑoÁ{µ„«Œ •”‰—~šw›sœo)kœ5fœ?b›G_šO \šVX™\U˜cS˜kP—sM–}J•‰G••!E•¤#D”³#C”È#C”å#C’õ$C‘ÿ$Cÿ$Cÿ$Cÿ$Cÿ$Êu»°‹¤‘š•™ƒt¢n£ j¤f¥%c¥1_¤;[¤DX¤KU£S R£Z O¢aM¢hJ¡qG {D †BŸ“@Ÿ¢>Ÿ²=ŸÆ=Ÿã=ô=œÿ<›ÿ<›ÿ <›ÿ <›ÿ Â|µˆ©ž–“›‡Ÿ{¤o¨c¬_­\­Z®+W®6T®@Q­HN­OK­W I­^ F¬f D¬nA¬x?«„<«‘:« 9«°8«Ã8ªá7©ó7§þ6¦ÿ6¦ÿ6¦ÿ6¦ÿº„®¢–—›‹¡¦s«g¯Z´S¶ Q·O·$M¸0J¸:H¸CF¸KD¸RA¸Z?¸b=¸k :¸u 8· 6·Ž4·3·­2·Á1·Þ1¶ò0´ü0³ÿ0³ÿ0³ÿ0³ÿ²Ž¥•š›Ž¢‚¨u­i³^·S»GÀCÂBÂ@Ã'?Ã2>Ä<<ÄD:ÄM8ÄU6Ä]5Äf3Åp1Å|/ÅŠ-Åš+Ū*ž*ÅÚ*Äð)Âû (Áÿ +(Áÿ (Áÿ (Áÿ ¨•›‘¢„©x¯kµ_»T¿IÃ?È6Í 3Î2Ï1Ï'0Ð1/Ð:.ÑC-ÑL+ÒU*Ò_(Ói'Óv%Ó„$Ô”"Ô¦!Õ¹!ÕÒ Óë ÒöÑÿÑÿÑÿÑÿŸ›”¢‡©y±m¸`¾TÃIÇ>Ë5Ð-Õ%Û $Þ#Þ"ß%!à. à7á@áJâSã^ãjäxäˆå𿬿ÀçÝåïãúãúãúãú–¢‰©{±n¹aÀTÆHÊ=Ï3Ó*Ù"Þë +ìííî&î-ï5ð=ðFñPò[òi óx ôŠ õœ +õ® ö öÙõíõíõíõí‹©}²oºbÂUÉGÎ;Ò1Ø'Ýáèøú ûüü ý# ý) +þ0ÿ8ÿAÿLÿXÿfÿwÿ‰ÿ›ÿ«ÿ»ÿÎÿÏÿÏÿϲqºcÃVËHÑ:Ö/Ý%áåé÷ÿ ÿ ÿ ÿÿÿÿÿ#ÿ*ÿ2ÿ<ÿGÿTÿcÿsÿ…ÿ—ÿ¤ÿ²ÿ²ÿ²ÿ²ÿ")ÿ#'ÿ#(ÿ +ÿ1ÿ=ÿIÿVÿbÿnÿxÿ‚ÿ‹ÿ’ÿ™ÿžÿ¤ÿ©ÿ¯ÿ¶ÿ½ÿÇÿÔýåúñ÷úõÿôÿôÿôÿôÿôÿôÿÿ$'ÿ&$ÿ&$ÿ$'ÿ"/ÿ :ÿFÿSÿ_ÿjÿuÿÿˆÿÿ–ÿœÿ¡ÿ§ÿ­ÿ³þ»ýÅúÑ÷äôïñúïÿîÿîÿíÿíÿíÿíÿÿ'#ÿ) ÿ) ÿ(#ÿ)-ÿ'7ÿ%Cÿ#Oÿ![ÿfÿqÿ{ÿ„ÿŒþ“ü™ûŸú¤ùª÷±ö¹õÂóÎðáìîéùèÿæÿåÿåÿåÿåÿåÿÿ+ÿ-ÿ-ÿ. ÿ/)ÿ/4ÿ,?ÿ*Kÿ(Wÿ&bý%mú$wø#€ö#ˆõ#ó#•ò#›ñ#¡ï#¨î#®í#¶ë#¿ê#Ìç#àã$íà$ùÞ$ÿÜ$ÿÛ$ÿ Ú$ÿ Ú$ÿ Ú$ÿ Ú$ÿ ÿ.ÿ1ÿ2ÿ5ÿ6%ÿ6/ÿ4:ÿ1Fû/R÷-]ó,hð+rî*{ì*„ê*‹è*’ç)˜æ)žä)¥ã)¬á)´à*½Þ*ÊÛ*ÞÖ*íÒ*ø Ï+ÿ +Í*ÿ Ì*ÿ Ë*ÿ Ë*ÿ Ë*ÿ Ë*ÿ ÿ2ÿ5ÿ8ÿ;ÿ= ÿ<*þ;5÷9Añ6Mì4Xè3cå2mã2và1Þ1‡Ü0ŽÚ0•Ø0›Ö/¢Ô/©Ò/±Ð/º Ï0Æ Í0Ø É1ê +Æ1÷ Ã1ÿÁ1ÿÀ1ÿ¿1ÿ¿1ÿ¿1ÿ¿1ÿÿ6ÿ9ÿ>ÿAÿCÿB#õA.í>:ç=Fát Ã={ Á=ƒ ¿<Š ½<»<—º;Ÿ¸;§¶;°µ;»³;ɱ;à®<ñ«<ý©<ÿ¨<ÿ¨<ÿ§<ÿ§<ÿ§<ÿÿ= ÿBÿH +ÿK úLìLáJÖJ,ÎK;ÉJHÄHSÀG]¼Ff ºDn ·Cv µC}³B„±A‹°A’®@š¬@¢ª@«©@¶§@Ħ@Ù£Aí AûŸAÿžAÿAÿBÿBÿBÿÿ@ ÿFÿLñOæP ãO ÕOÌQ'ÅQ6¿PCºON¶MX³La +°Ji ­Ip«Hx©G§G†¥F£F•¡EžŸE§žE²œE¿šEјEé–Fø•Fÿ”Fÿ“Fÿ“Gÿ“Gÿ“GÿÿBÿJòPáTÙVÓU ÌUÃV"¼W2·V?²TJ­STªQ] §Pd¤Nl¢MsŸLzL›K‰™J‘—J™•I£“I®’I»IÌŽJåJö‹Kÿ‹KÿŠKÿŠKÿŠKÿŠKÿÿEÿMåTÙYÏ[Ê[ÄZ»[µ\.¯[;ªZF¦XP¢VY ŸU`œSh™Ro—Qv•P}“P„OŽN–ŒNŸŠNªˆN· ‡NÈ!…Nâ!„Oó ƒOÿ ƒOÿ‚Pÿ‚Pÿ‚Pÿ‚PÿÿGóQßXÑ]É`Ã`½^ µ`®a*©`7¤^CŸ]M›[U ˜Y]•Xd’WkVrUy‹TˆS‰†S’„Rœ‚R§!€R´"RÄ#}RÞ#|Sñ"|Sþ!{Tÿ!{Tÿ {Tÿ {Tÿ {Tÿ ÿJéTÚ\ÌaÃd¼d¶c +¯d©e'£d4žc@™aJ•_R ‘^ZŽ]a‹[h‰Zo†Yv„X}X†W}V™ {V¤"yV±#wVÁ$vVÚ$uWï$uWý#uXÿ"uXÿ!uXÿ!uXÿ!uXÿ!ÿMåWÓ_Èd¿g·h±g©h£i$žh2™g=”eGdO +ŒbW ˆa^…_eƒ^l€]s}]z{\ƒy[Œv[—!tZ¢#rZ¯$qZ¿%pZÕ%o[í%o[ü#o[ÿ"o[ÿ"o[ÿ!o[ÿ!o[ÿ!úOáZÏbÄg»k³l¬j¤kžl!™l/”k:iDŠhM †fU ƒe\€db}bizbpxaxu`€s_Šp_”!n^ #l^­%k^¼&j^Ñ&i^ì%j_û$j_ÿ#j_ÿ"j_ÿ"j_ÿ"j_ÿ"ðRÝ]ËeÀk·n¯o§n ošp”p,o8ŠmB†lK ‚jR ~iY{h`wffufnreupd~mcˆkc’"ibž$gb«%ebº&dbÏ&dbê&ebú$ecÿ#ecÿ"ecÿ"ecÿ"ecÿ"ëUØ`Èh¼n³q«s¢q›r•st*Šs6…r@pH}oP ymWvl^skdpjlmiski|hh†fg!dgœ#bf©%`f¹&_fÍ&_fè&`fù$`fÿ#`fÿ#afÿ"afÿ"afÿ"èXÓcÄk¹q°u§wžu–v w‹x'†w3v=|uFxsN urUqq\npckojinqfnzcmƒalŽ!_kš#]k§%[k·&ZkÊ&Zkç%[k÷$[jÿ#\jÿ"\jÿ"\jÿ"\jÿ"ã[ÎfÀn¶t¬y£{˜yz Š{…|$|1|{;wzDsyL +pxS lwZivaguhdtoasx^r\qŒ Zq˜"Xp¦$Vpµ%UpÈ%Upå%Upö$Voÿ#Voÿ"Woÿ"Woÿ"Woÿ"ß_Êi¼r²x©}Ÿ’~Š„€€!{.w€9r€BnJk~Q h}Xd|_b{f_zm\yuYxWxŠTw–!Rv¤"Qv³#PvÆ$Pvã#Puõ#Quÿ"Qtÿ!Qtÿ!Qtÿ!Qtÿ!ØcÅm¸v®}¥‚šƒƒ„„}…y†u‡+q‡6m†?i…Ge„O +bƒV _ƒ\\‚cZkW€sT}QˆO~”M~¢ K}±!J}Ä"J}á!K|ô!K{ÿ K{ÿ K{ÿ K{ÿ K{ÿ ÐgÀr´{ª‚ †•ˆ‡ˆ|ŠvŒrnŽ'jŽ2f<cD`ŒL\‹S +Z‹Z WŠaT‰hQˆqOˆzL‡…J†’H† F†¯E…ÂE…ßE„òEƒþE‚ÿE‚ÿE‚ÿE‚ÿÊmºx¯¥‡š‹Žt‘n“ +i”f•"c•.`•8\•AY”IV”PT“W +Q“^ N’fL’nI‘xFƒDBž@­?À?Ü?ñ?Œý?‹ÿ?‹ÿ?‹ÿ?‹ÿÂsµ~ª‡ŸŒ”ˆ“{•l™e›`œ][ž)Xž4Už=REPMMTKœ[ Hœc Fœk C›uA›€>š<š›:š«9š½9šÙ9˜ï9—ü8–ÿ8•ÿ8•ÿ8•ÿ»z¯…¤Œ˜‘•šuh [¤V¥ S¦Q§#O§/L§8J§AH§IF§PC§XA§_?¦h=¦r +:¦} 8¦Š 6¥™4¥©3¥»3¥Ô3¤î2¢û2¡ÿ2¡ÿ2¡ÿ2¡ÿ´‚¨Œ’’—†œy¡m¥a©U¬K¯G°E°D±'B±2A²;?²C=²K;²S9²[7²d5²n3²y1²‡/±–.²¦-²¸ ,²Ð,°ì +¯ù ++®ÿ *­ÿ *­ÿ *­ÿ ­‹ ’•˜‰}£q¨d­Y±M´B¸;º +8»7¼5¼)4½23½;2½D1¾L/¾U.¾^,¾h*¾t)¾‚'¿‘&¿¢$¿´#¿Ë#¾è#¼÷"»ÿ"»ÿ"»ÿ"»ÿ¤’˜˜Œž€¥s«g°[µO¹D¼:À0Ä*Ç (È'É&É'%É0$Ê9#ÊB"ËK!ËU Ì_ÌlÍzÍŠÍœήÎÅÍäÌôÊüÊÿÊÿÊÿ›™Ÿ‚¦u­h³\¹P½DÁ9Ä0È(Ì ÐÕ ×ØÙ"Ù+Ú4Ú=ÛHÜSÝ_ÝmÞ~ß‘ठภàÒ ßí Þ÷ Ýû Ýû Ýû’Ÿ…§w®jµ]¼PÁDÅ8É.Í%ÑÕÚÞç ç è è! é) +ê1 ê;ëEëQë^ënë€ê”ê§ë¼ëÒëéìïìïìy¯k·^¾QÅCÉ7Í-Ñ#ÖÛßã î +ö +öööõõ%õ.õ7öBöNö]önöö•÷§÷·øÇøÐøÐøÐ{¯m¸`ÀRÈDÍ7Ñ+×!Üàä çïúÿÿÿ þþÿÿ!ÿ)ÿ3ÿ>ÿKÿ[ÿlÿ€ÿ’ÿ¡ÿ­ÿ³ÿ³ÿ³ÿ&ÿ$ÿ%ÿ'ÿ.ÿ:ÿGÿ Sÿ _ÿ +kÿ +uÿ +ÿ +‡ÿ +Žÿ +•ÿ +›ÿ  ÿ ¥ÿ «ÿ ±ÿ ¸ÿ Áþ Ìü Þù ëõ öó ÿò +ÿñ +ÿñ ÿñ ÿñ ÿñ ÿÿ#ÿ!ÿ!ÿ$ÿ,ÿ7ÿDÿPÿ\ÿgÿrÿ{ÿ„ÿ‹ÿ’ÿ˜ÿÿ£þ¨ü®ûµú¾øÉõÛòêîõìÿëÿêÿêÿéÿéÿéÿÿ"ÿ"ÿ!ÿ ÿ)ÿ4ÿ@ÿLÿXÿcÿnÿwþ€üˆúŽù•øšö õ¦ô¬ó³ñ¼ðÇíØéèæõäÿâÿáÿáÿàÿàÿàÿÿ%ÿ&ÿ$ÿ%ÿ&%ÿ$0ÿ!;ÿHÿTý_ùi÷sô|ò„ñ‹ï‘î—ìë£éªè±çºåÅãÕßèÜõØÿÕÿÔÿÓÿÒÿÒÿÒÿÿ)ÿ*ÿ)ÿ,ÿ,!ÿ,+ÿ)7ý'C÷%Oó#Zï"dì!né!wç!å!†ä!â ”á šß  Þ §Ü!¯Ú!¸Ø!ÃÕ!ÓÑ"çÍ"ôÊ#ÿÈ#ÿÇ#ÿÆ#ÿÆ#ÿÆ#ÿÆ#ÿÿ,ÿ.ÿ0ÿ3ÿ3ÿ2%ú00ò.<ì,Iç*Uã*_à)iÝ)rÚ(z×(‚Õ(‰Ó(Ñ(–Ï(œÎ(£Ì(«Ê(³É(¾Ç(ÌÅ)âÁ*ñ¾*þ¼*ÿº*ÿº*ÿ¹*ÿ ¹*ÿ ¹*ÿ ÿ0ÿ2 ÿ6 ÿ8ÿ9ù7ï5(ç35à2BÛ2OÕ1ZÐ1dÍ0mË0uÉ0|Ç/ƒÅ/ŠÄ/‘Â/—Á/ž¿/¦½/¯¼/¹º/Ǹ0ݵ0î ²0û +°0ÿ ®0ÿ ®0ÿ ­0ÿ ­0ÿ ­0ÿ ÿ3 ÿ6ÿ< ÿ> ý=ï<ä9Û9-Ò:<Í:IÈ9TÄ9^Á8g¿7o½7v»6}¹6„·6‹¶5’´5š ³5¡ ±5ª +¯5´ ®5Á ¬5Ô ©6ê ¦6ø ¥6ÿ£7ÿ¢7ÿ¢7ÿ¢7ÿ¢7ÿÿ7ÿ;ÿ@òBéB å?Ø>Î@'ÇA6ÂAD½AO¹@Y¶?a´>i±=q¯=x®< ¬<† +ª; ©;• §; ¥;¦ £:°¢;¼ ;Íž;æ›<õš<ÿ™<ÿ˜<ÿ˜<ÿ˜<ÿ˜<ÿÿ:ÿ@ïEáHÙHÓF ÌEÄG"½H1¸H?³GJ°FT¬E]ªDd§Cl¥Bs +£Bz ¡A  Aˆ ž@œ@˜š@¡˜@¬—@¸•@È“@á‘AóAÿAÿŽBÿŽBÿŽBÿŽBÿÿ<ùDäJØNÎOÉMÃK»MµN-¯N:«MF§LO¤KX¡J`žIg œHn šGu ˜F|–Fƒ”E‹’E”EŽE¨ŒE´‹EÄŠE܈Fð†Fý†Fÿ…Gÿ…Gÿ…Gÿ…Gÿÿ?ìHÝOÏSÆUÀS»Q ³R­S)¨S6£RBŸQKœPT™O\–Nc +”Mj ‘LqKxK‹J‡‰J‡Iš…I¥ƒI±‚IÀJÖJí~Kü~Kÿ}Kÿ}Kÿ}Kÿ}KÿÿCæLÖSÉXÀYºX´V ¬W¦X%¡X2W>˜VH•UQ’TXR_ +ŒRf ŠQmˆPt…O{ƒO„NN—}N¡{M®zN½xNÑwNëwOúvOÿvOÿvOÿvOÿvOÿøFâPÐWÄ\»^´]®Z¦[ \"›\/—[;’ZEYM‹XUˆW\ +†Vc ƒUjTq~Tx|S€zR‰xR”vRŸtR«rRºqRÍpRèpSùpSÿpSÿpSÿpSÿpSÿïIÝSËZÀ_·b¯a¨^¡_›`–`,‘`8^B‰]K…\R‚[Y +€Z` }Yg{XnxXuvW}tW‡rV‘oVœnV©lV¸kVËjVæjW÷jWÿjWÿkWÿkWÿkWÿëLØVÈ^¼b³e«e£bœb–c‘d)Œc5ˆb?„aH€`P}_W z^] w]d u\ks\rp[{n[„lZjZšhZ§fZ¶eZÈeZäeZöeZÿeZÿeZÿeZÿeZÿèOÓYÄa¹f°h§iže—f ‘gŒh'‡g2ƒf=eF{dMxcT ub[ raa paim`pk_yi_‚g^e^˜c^¥a^´`^Ç`^ã`^õ`^ÿ`^ÿa^ÿa^ÿa^ÿäRÏ\Àd¶i¬l£l™i’j Œj‡k$‚k0~j:ziCvhKsgRpgY +mf` kefhdnfdvdc€bc‹`b—^b¤\b²[bÅ[bá[bô[bÿ\bÿ\bÿ\bÿ\bÿàUË_½g²l©pŸo”lŒm†n‚o!}o-yo8unArmInlPkkW +ik^ fjedilait_h~]g‰[g•Yf¢Wf°VfÃVfßVfóWfÿWfÿWfÿWfÿWfÿÛYÇbºj¯p¦sšsp‡qr|sxs*ts5ps?mrGjqNgqU dp\ boc_oj]nrZm|Xm†Vl“Tl Rk¯QkÁQkÜQkñRkþRjÿRjÿRjÿRjÿÔ\Ãf¶n¬t¢w–v‰uvzwvxry'oy2kx<hxDewLbwS_vZ +]ua ZuhXtpUsySs„QrOržMq­Lq¿KqÙLqðLpýMpÿMoÿMoÿMoÿÎ`¾j²r¨x{z„zz{t| o~l~$i/f9bB_~I]}PZ}W W|^ U|e R{nPzwNz‚KyŽIyœHx«Fx½FxÕFwïGvüGvÿGuÿGuÿGuÿÉeºo®w¤}˜‹~slƒ h„e… b†,_†6\†?Y…FW…NT…UR„\ Oƒc Mƒk K‚tH‚FŒDšB€©A€º@€ÒAíA~ûA}ÿA}ÿA}ÿA}ÿÂjµuª}Ÿ‚’ƒ…„y…j‰dŠ`Œ][Ž'XŽ2UŽ;SŽCPŽJNRLYIŒ`GŒh +E‹r B‹}@Љ>Š˜<Ч;Џ:ŠÏ;ˆë;‡ú;†ÿ;†ÿ;†ÿ;†ÿ¼q¯{¥ƒ™‡Œˆ‰sŒe\“W• T–R–"P—-M—6K—?I—GG—NE–UC–]A–e>•o<•z :•‡ 8•• 6”¥ 5”¶4”Ì 4“é 4’ø4ÿ4ÿ4ÿ4ÿµxª‚žˆ“†Žym“a—U›MžIŸGŸF &D 0C¡:A¡B?¡I=¡Q;¡Y9¡a7 k5 v3 ƒ1 ’0 ¢. ³. É.Ÿç-÷ -œÿ +-›ÿ +-›ÿ +-›ÿ +¯€£‰—Ž“•r˜fœ[ O¤E§>© <ª:ª9ª)8«27«;5«C4¬K2¬S1¬\/¬f-¬q+¬*¬Ž(¬ž'¬°&¬Å&«ä%©õ%¨ÿ%§ÿ%§ÿ%§ÿ§‰›‘”„™xžk¢_¦SªH­=°4³/µ-µ,µ +¶)*¶2)·:(·C'·L&¸U$¸_#¸k"¸x ¸ˆ¸™¹«¹À¸ß¶òµü´ÿ´ÿ´ÿŸ”•ˆ›{¡n¦b«V°J³?¶5¹,¼$¿ ÂÂÃ&Ã/Ä8ÄAÄJÅUÅaÆoÆÆ‘ǤǹÇÔÆîÄúÃÿÃÿÃÿ—–‹œ~¢q©d¯X´K¸@»5¾+Á#ÅÉÌÐ Ñ Ñ Ñ! Ñ* Ñ4 Ò> +ÒI ÓU ÓbÓrÔ„Ô˜Ô«ÕÀÕÜÕíÕöÕöÕöŽ€¤s«f±Y¸L½?À4Ã*Ç!ÊÎÒ Ö ÛÜ ÜÝÞ Þ(ß1à<áGâTãcãtäˆä›å®åÁåÕæçæçæçƒ¤u¬h³Z»MÁ@Ä3È(ÌÐÔÙ Ýáäåæ çèéê%ë.í9ïEðSñdñvòŠóœó­ô»ôÈôÈôÈw­jµ\½OÄ@É3Í'ÑÖÜàãæêîîïð +ñóôö ø*ú5ýCþRÿcÿvÿ‰ÿšÿ¦ÿ°ÿ°ÿ°ÿ#ÿ!ÿ!ÿ $ÿ +ÿ7ÿDÿQÿ]ÿhÿrÿ{ÿƒÿŠÿ‘ÿ–ÿœÿ¡ý¦û¬ù³÷»õÅóÑòäññïúîÿîÿíÿíÿíÿíÿÿ ÿÿÿÿ)ÿ 4ÿ +AÿMÿYÿdÿnÿwÿ€ÿ‡ÿý“û™ùž÷¤õªó°ñ¸ïÂíÏëãêïèûçÿæÿæÿæÿæÿæÿÿÿÿÿÿ%ÿ0ÿ=ÿIÿ Uÿ `ÿ jý sû |ù +ƒ÷ +Šõ +ô +–ó +›ñ +¡ï §í ®ë ¶è Àæ Íä ââ +ðß ûÞ ÿÜ ÿÜ ÿÛ ÿÛ ÿÛ ÿÿÿÿÿÿ"ÿ,ÿ8ÿDþPù[õfóoðwîì†êŒé’è˜æžå¥ã¬á´à¾ÞÌÚáÕðÒûÏÿÎÿÍÿÍÿÌÿÌÿÿ"ÿ"ÿ!ÿ"ÿ"ÿ 'ÿ2ø>òKîVê`çjärâzà‚ÞˆÜە֢ٛԩұлÎÉÌÞÈîÅûÃÿÁÿÀÿÀÿÀÿÀÿÿ&ÿ% ÿ( ÿ)ÿ(þ& ô$+ì!8æ DáPÝ[ÙeÕmÒuÐ}΃̊ËɗȞƥŠ­à ·Á ÄÀ!Ö¼"ê¹"ø¶"ÿµ#ÿ´#ÿ³#ÿ³#ÿ³#ÿÿ) ÿ*ÿ.ÿ/ ÿ-ó+è("à&/Ù&=Ò'JÍ'UÊ(_Ç(hÅ(oÃ'wÁ'~¿'„¾'‹¼'’»'™¹' ·'©¶(³´(¿³(ϰ)æ­)ö«*ÿ©*ÿ¨*ÿ¨*ÿ¨*ÿ¨*ÿÿ-ÿ0ÿ3ö4ï2 +è.Ü,Ñ.(Ë/7Æ0DÁ0O¾0Y»0b¸0j¶/qµ/x³/±/†°/®.”­.œ«.¤©/®¨/º¦/ʤ0â¡0óŸ0ÿž1ÿ1ÿœ1ÿœ1ÿœ1ÿÿ0ÿ5ï8â:Û9Ö5 Î4Æ6"¿81º8?¶8J³8T°7]­7d«6l©6s¨6y¦5€¤5‡£5¡5—Ÿ5 ž5ªœ5¶›5Å ™5Ý –6ï +”6ý +“7ÿ +’7ÿ +’7ÿ +’7ÿ +’7ÿ +ÿ3ö:ä?ØBÎBÉ>Ä;»>µ?,±?:­?E©?O¦>X£=_¡=gŸ^qF\pMYpTWp[UobSoj +Pns Nn~LmŠJm˜Il§Hl¸GlÍGlêHkúHkÿHjÿHjÿHjÿÇ^¸g¬n¡r“r‡qzqqrktfucv`w(^w3[x<YwCVwKTwRRvYPv`NuhKuq +It| GtˆEs–Cs¥Bs¶AsËBrèBrøBqÿCpÿCpÿCpÿÁc³l¨s›vŽuvuvixcz^|\}Y~$W/U8S@PHN~OL~VJ~]H}eF}nC|y +A|† ?{” >{£<{³<{È…v;…ƒ9…‘ +8„  6„± 6„Æ 6ƒä 6‚ö 6ÿ 6€ÿ 6€ÿ 6€ÿ ¶oªxŸ~ƒw€k‚^‡UŠNŒJŽHG%E/D8B@@G?O=V;_9h7s5€3Ž1ž0ޝ/ŽÃ/Žá/Œô/‹ÿ/Šÿ/Šÿ /Šÿ °v¥˜„Š„}…p‡eŠZŽO’F•A˜ >˜=™;™(:š19š:7šB6šJ5šR3šZ1šd/šo-š{,šŠ*šš)š¬(šÀ'™Þ'—ò'–ý'•ÿ'•ÿ'•ÿ©~ž…’‰„ŠvŒj^“T—I›@Ÿ7¢2£1£0¤!.¤*-¤2,¥:+¥C*¥K)¥T(¥^&¥i%¥v#¥…"¥– ¦¨¥»¥×¤ï¢û¡ÿ¡ÿ¡ÿ¢†—Œ‹}‘o”c˜WM¡C¥8¨0«(®$¯#¯!¯! °)°1°:±B±L±V±a²o²~²²¢²¶²Î±ë¯ù®ÿ®ÿ®ÿš’„—ušhŸ[£P¨E¬;°1²'µ ¸º¼¼¼½&½.½7¾A¾L¾W ¾e ¿t ¿† +¾™¾¬¾Â¾ß¾ð½ú½ü½ü“”‡™zŸl¥`ªS¯G³<¶1¸'»¾ÁÄ ÈÉÉÉÉ$Ê,Ê6Ê@ËLËYËhËy̌˟˳ËÈÌâÌïÌñÌñŠš|¡o§b­U³H¸;»0¾&ÁÄÈË +ÎÒÓ +ÓÔÕÖ"×*Ù4Ú?ÜKÜZÝjÝ}ݑݤ޶ÞÈÞÞÞâÞâ¢q©d°V·I¼<À/Ä$ÇËÏ ÒÖÛÞßà áâãåæ'è1ê=ìKìZílî€î”î¥î´îÂîÆîÆtªf²X¹KÀ=Å/É$ÍÑÖ ÛÞáåèéêëí ïðòô#÷.ù;ûJü[ýmý€þ“þ¢þ­þ¯þ¯ÿÿÿ +ÿ ÿ(ÿ5ÿAÿNÿZÿeÿnÿwÿþ†üŒû’ù—øœ÷¢ö§õ­óµò½ñÉïÜîëí÷ìÿëÿêÿêÿêÿêÿÿÿÿ ÿÿ%ÿ1ÿ>ÿJÿVÿaÿkýsú{÷ƒõ‰ôò”ñ™ðŸî¤í«ì²êºèÆçÖåèäõãþâÿáÿáÿáÿáÿÿÿÿÿ ÿ "ÿ-ÿ9ÿFÿQþ\úföoòwï~í…ë‹ê‘è–çœæ¡ä¨ã¯á¸ßÃÝÑÛæÙó×ýÕÿÔÿÔÿÔÿÔÿÿÿÿÿÿÿ(ÿ 4ÿ +AùLõWñaíjéræzäâ‡àߒݘ۞٥׭ԵÒÀÐÏÎåÌ ôÊ ÿÈ ÿÇ ÿÇ ÿÆ ÿÆ ÿÿÿ ÿ ÿÿÿ"û.ó:íFè Rå \á eÞ mÛ uØ |Õ ‚Ó ‰Ñ Ð •Î œÍ£Ë«É´ÈÀÆÏÃæÀõ½ÿ¼ÿ»ÿºÿºÿºÿÿ +ÿÿÿ ÿøî&æ3à?ÚKÔVÐ_ÎhËoÉwÇ}ƄĊÑÁ˜ÀŸ¾§¼°»¼¹Ë·â³ò±ÿ¯ÿ®ÿ®ÿ­ÿ­ÿÿ"ÿ"ÿ%ü$÷! ìáØ*Ð8ËEÇPÃZÀb¾j¼qºx¹~·…¶Œ´“³š± £° ¬® ·¬!Æ«!ݧ"ï¥"ý£#ÿ¢#ÿ¢#ÿ¡#ÿ¡#ÿÿ%ÿ(ò*å+ß(Ü! Ò!É$$Ã%2¾&?º'J·'T´']²'d°'l®'r­'y«'ª'†¨'ާ'–¥'ž£(¨¢(³ (ÁŸ(Õœ)ìš*ú˜*ÿ—*ÿ—*ÿ–*ÿ–*ÿÿ(õ.å3Ú5Ð3Ì-Æ*¾-¸.,³/:¯/E¬0O©/X§/_¥/f£/m¡/s .zž..‰›.‘™.š˜.¤–/¯•/½“/Ï‘0è0ø1ÿ1ÿŒ1ÿŒ1ÿŒ1ÿÿ-ê5Ü:Î=Æ<À7»3 ³4®6'©74¥7@¢7JŸ7S6Z›6a™6h—5o•5u”5|’5„55–5 ‹5«Š5¹ˆ5ʇ6å…6ö„7ÿƒ7ÿƒ7ÿ‚7ÿ‚7ÿô2ã;ÒAÆD½C·?±; ª;¥<" =0=;™=E–=N”kÿ +>kÿ +º`­i n‘m„mxmlnap[rVt +RuPvNw'Lw1Kx9IxAHxIFxPDwWBw_@wh>ws³<¬8§3¢24™5*•55’5@5I5P‹5W‰5^‡5d…4k„4r‚4y€4‚~4‹}4–{5¡y5®x5¾w6Ôv6ít7üt7ÿt7ÿt7ÿt7ÿç5Ò=ÃB¸D¬B¤>Ÿ9š8”::&;1Š;;‡;D„;L‚;S€:Z~:`}:g{:ny:uw:~v:ˆt:“r:žq:«o;»n;Ïm;êm<úl<ÿl<ÿl<ÿl<ÿâ9ÌB¾G±H¥FC—?’> ?‰?!…@-‚@7@@}@H{@Oy@Vw?]u?cs?jq?rp?zn?„l?k?œi?©h?¸g@Ìf@èf@ùe@ÿe@ÿe@ÿe@ÿÜ>ÇF¹K¬L J—G‘C‹C†C‚D~D){E4yE=vEEtDLrDSpDYnD`lCgkCoiCwgCfCdC™bC§aD¶`DÊ`Dæ_Eø_Eÿ`Eÿ`Dÿ`DÿÖAÃI¶N§O›M’KŒG…G€G|HxH&uI0sI:pIBnIIlHPjHVhH]fHdeHlcHuaG`GŠ^H—]H¥[H´[HÇ ZHäZIöZIÿZHÿZHÿZHÿÑE¿L²R£Q—PN†J€JzKvLrL#oL-mM6jL?hLFfLMdLSbLZaLa_Li^Lr\L|ZLˆYL•WL£VL²ULÆ ULâ ULõULÿULÿVLÿVLÿÌH¼P¯U T“S‰QMzNuO pOmP jP*gP3eP<cPCaPJ_PQ]PX\P_ZPgYPpWPzUP†TP“RP¡QP± PPÄ PPá PPôQPÿQOÿQOÿQOÿÉK¹S«WœVU…T|PuQpR kShTeT'bT1`T9^TA\THZTOYTVWT]VTeTTnRTxQT„OT‘NT LT¯LT KTß LTóLSÿLSÿMSÿMSÿÅN¶V§Z˜Y‹XWwTpUjVfWbW`X$]X.[Y7YY?WYFVYMTYTSY[QYcOXlNXvLX‚JXIXžHX®GXÀGXÝGXòGWÿHWÿHWÿHWÿÁQ²Y£\”[‡[}ZrXkYeZ`[]\Z\!X]+V]4T^<S^DQ^KP^RN^YL^aK]jI]tG]€E]D]œC]¬B]¾B]ÚB\ñB\þC[ÿC[ÿC[ÿ½U¯]Ÿ_^ƒ^x]m\e]__Z` WaUbRb(Qc1Oc9NcALcHKcOIcVGc^EcgDcqBc}@b‹?bš>bª=b¼`ÿ>`ÿ>`ÿ¹Y«aša‹aataia_bYdTf QgNgLh$Ki-Ii6Hi>FjEEjLCjTBj\@ie>io¬=¡:š7•31 +Œ1‡2 „3+353>}3F{3My3Tw3Zv3at3gr4oq4wo4n4Œl4˜j5¥i5³h5Æg6âf6õf6ÿf6ÿf6ÿf6ÿØ7Ä>µB¦A›?“<8ˆ6„7€7|8'z81w9:u9Bs9Iq9Pp9Wn9]l9dk9ki9th9~f9‰d9•c:¢b:±a:Ã`;à_;ó_;ÿ_;ÿ_;ÿ_;ÿÑ;ÀB°E¡D•C@‡=‚;};y<u=#s=-p=6n=?l=Fk=Mi=Sg=Zf=ad=hc=qa>{_>†^>“\> [?¯Z?ÁZ?ÝY?òY?ÿY?ÿY?ÿY?ÿÌ?¼F«HœG‘FˆD‚@|?w@ s@oA lA*jA3hA;fBCdBJcAPaAW`B^^Be]Bn[BxZB„XBWBžVC­UC¿TCÚTCñTCþTCÿTCÿTCÿÈB¸I§K˜JIƒG}CvCqD +mDjEgE'dE0bE8`E?_EG]EM[ETZF[YFcWFlVFvTFSFŽRGœPG«PG½OGÖOGïOGýOGÿOGÿPGÿÄEµM£M•L‰KJxFqGlGhHdHaI$_I-]I5[I=YIDWIJVIQUJYTJaRJiQJtOJNJŒMJ›LKªKK¼JKÓJKîKKýKJÿKJÿKJÿÁH²P O‘O…N{MsIlJgKbL_L\M!ZM*XM2VM:TMASNHRNOPNWON_NNgLNrKN}IN‹HN™GO¨FOºFOÑFOíFNüFNÿGNÿGNÿ½L®RœQQQwPnLgNbO]P ZPWQUQ'SQ0QR8PR?NRFMRMLSUJS]ISeHSoFS{ES‰CS—BS§AS¸ASÏASìARûBRÿBRÿBQÿºOªT˜T‰T}SsSiQbR\SXT +TURUOV$NV-LW5KW<JWDHWKGXRFXZDXcCXmAXy@X†>X•=X¥c>=cEg”4™*ž!¢¦© ¬¯²³³ ³´´µ"¶+·5·@¸N¸]¸n¸‚¸—¸ª·¾·Ò·æ·êvˆg‹ZN–Bœ7¢,§"«¯³ ¶¹¼¾¾¿À ÁÂÃÄ Å)Ç4ÈBÉQÉbÉuɊɟʱÊÁÉÑÉÙn“`˜SžF¤:«/°$µ¸¼ +¿ÁÄÈÊÊÌÍÎÐ ÑÓÖÚ(Ý4ÞCßTßgà|à‘à¤à²à¾àÃfŸY¦L­?´2¸$¼¿ÃÇÊÍÑÕØÙÛÝßáã +åçêí'ð5ñFòXókó€ô”ô£ô®ô²ÿÿÿÿÿÿ,ÿ9ÿEÿPÿZþcûkùr÷xõ~ô„ò‰ñŽð“î™íŸì¦ê®è¸æÅåÛãíâûâÿáÿáÿáÿáÿÿÿÿ ÿÿÿ(ÿ4þAûL÷Vô_ñfïmìtêzéç…æŠåã•á›à¢ÞªÛ´ÙÀÖÐÓèÒ÷ÑÿÑÿÐÿÐÿÐÿÿ ÿ ÿ +ÿÿû"÷/ô;ðGíQéZåbâiàoÞuÜzڀ؅ՋӑїϞͦ˯ɺÇÉÅâÄòÃþÂÿÁÿÂÿÂÿÿÿÿÿ ùñë)ç6ãAßKÛTÕ\ÒcÏjÍpËuÉ{ȀƆŌÓÁš¿¢½«»¶¹Ä·Ú¶í´ú´ÿ´ÿ´ÿ´ÿÿÿÿÿì åÞ"×/Ñ;ÍEÊNÆWÄ^Ád¿j½p¼uº{¹·‡µŽ³•²ž°§®²¬¿ªÑ¨è¨÷§ÿ§ÿ¦ÿ¦ÿÿÿñèáÕÍÇ'Ã3¿>¼H¹Q¶X´_²e°j¯p­v¬|ª‚©‰§‘¥š£¤¡® »žÍæœô›ÿšÿšÿ™ÿÿ +ñäÙÎ È Â¼·,³7°B­JªR¨Y¦_¥e£k¢q wŸ~…› Žš —˜ +¡– +¬• º“ Ì’ å öÿŽÿŽÿÿöæÖǾ¹· + ± ¬ $¨0¥;¢DŸLS›Zš`˜f—l•r“y’Š”Ÿ‹ªŠ¸ˆˆæ…÷ƒÿƒÿ‚ÿ‚ÿíÜ!Ê%»"±«©¥ œ*™5–>”G’NUŽ[Œa‹g‰mˆt†|…†ƒ›€§~µ}Ç|âzõyÿxÿxÿxÿå"Ð)¿,°*§' #š•‘$Ž/Œ9‰A‡I…PƒV‚\€bi} p| xz y!Œw!—u"¤t"²s#Ãr#ßp$óo$ÿo$ÿn$ÿn$ÿÝ)È0·2¨0ž.—*“'# +Œ#ˆ$„%*‚%4€&=}&D|&Kz&Rx&Xw&^u&et'lr'tq'}o(ˆn(”l(¡k)¯j)Ài*Ûg*ñg+ÿf+ÿf*ÿf*ÿÔ/Â6¯6¡5–40Š-‡*ƒ)*|+%y+/w,8u,@s,Gq,Mp,Tn,Zm,ak-hj-ph-zg.…e.‘d.žb/¬a/½a0Õ`0ï_0ý_0ÿ_0ÿ_0ÿÍ4¼;©:›:8‰5ƒ20{/w0t0!q1+o14m1<k1Cj1Jh2Pg2We2]d2eb2ma3w_3‚^3Ž]4œ[4ªZ5»Z5ÒY5íY5üX5ÿX5ÿY5ÿÈ8·>¤>–=‹<ƒ:}7x4t4 p5m5j5'h60f68d6?c6Fa6M`6S^7Z]7b\7jZ8tY8W8ŒV9™U9¨T9¹S:ÏS:ëS:ûS:ÿS9ÿS9ÿÄ<²A @’@†?~=x:s8n9j9g9d:$b:,`:4^:<];C[;JZ;PX;WW;_V·N>ÍN>éM>úN>ÿN=ÿN=ÿÀ?®CœCŽC‚Bz@s=m<h=d=a>^>!\>)Z>1X>9W>@U?FT?MS?UR@\P@eO@oNAzMA‡KA–JA¥IBµIBËIBèIBùIAÿIAÿIAÿ½CªE˜EŠEEvCo@h@cA_A \AYBWB&UB.SB6QB=OBCOCKNCRMDZLDcJDmIExHE…GE”EE£EF´DFÉDFçDEøDEÿEEÿEEÿºF¦H”H†H{GrFjBcC^DZE VETFQF#OF+NF3LG:KGAJGIIHPHHXGHaFIkDIvCIƒBI’AI¢@I³?JÇ?Jå?I÷@Iÿ@Hÿ@Hÿ¶I¢J‘JƒJwJnIeE^GYHUIQJOJLJ!JK)IK1GK8FL?ELFDLNCMVBM_AMh@Mt>M=MQS=R\U+=V24\F3]N1]W0]a/]l.]z,]‰+]š*]«*]¿)]Þ*\ò*[þ+[ÿ+Zÿ£UUUrUgV^VTWLYE[?]:_6` 4a2b1b#0b+/c2.c:-cB,cJ*dS)d](di'dv&d†%d—$d©#d½"dÚ#cñ#bý$aÿ$aÿœX‰XzYnYcYZZP\H^A`:c4f/h +,i*i)j(j&'j.&k5%k=$kF#kO"lY lelrl‚l”l¦kºkÔjîiühÿhÿ•\ƒ\u\i]_]V^LaCdk7n0q)u"x{}}}~"~*~1~:~DNZh x Š ~ +~° }Æ +}ä +|ô {ý zÿ†ewejeafVhLkBo9s1w*z#~„‡ ‰ ‰ ‰ ‰# +‰+ ‰3‰=‰H‰T‰a‰q‰ƒ‰–ˆ©‡¾‡Ú†ì†õ†ú~jqjgk[lPpFtíQîeïzïðŸð«ð³ÿÿÿÿÿÿ)ÿ5ÿAÿMþVû_øfömôtòyñð„î‰íë•ê›è¢æªå³ãÀáÒàêßùÝÿÝÿÝÿÞÿÞÿÿ ÿ +ÿ ÿÿÿ$þ1û=øHôRðZíbëiéoçuåzãâ…àŠÞÜ–ÚØ¥Õ¯ÒºÐÊÎãÍôËÿËÿËÿËÿËÿÿÿÿÿ ü÷ò+ï7ëBçLäUà]ÝdÚjØpÕuÒzЀυ͋˒əǡŪõÁÿھî½ü¼ÿ¼ÿ¼ÿ¼ÿÿÿÿùñêä%ß1Û<×GÒPÎWË^ÉeÆjÅpÃuÁzÀ€¾†¼º”¹œ·¥µ°³½±Ï¯è®ø®ÿ­ÿ­ÿ­ÿÿÿýîã ÚÑÌ+È6Å@ÂJ¿R¼Yº_¸e¶j´o³u±z°®ˆ­«˜©¡§«¥¸£È¢â¡ó þ ÿ ÿ ÿÿöêàÓɽ$¹/¶:´C±L®S¬Yª_©d§j¦o¤u£{¡‚ Šž“œš§˜´–Õܔï“û“ÿ“ÿ’ÿùê Ü Ë +¼ +¶±®(ª3§=¤E¢M SžYœ_›dšj˜p—v•~“†’™Ž¤Œ±‹À‰Öˆíˆú‡ÿ†ÿ†ÿïÞʼ³® « §¢ Ÿ,œ6™?— G• N“ T‘ +Z +_Ž +e +k‹ +rŠ yˆ ‚‡ Œ… —ƒ ¢ °€ À Ø}ï|ý{ÿ{ÿ{ÿæÑ½¯¦¡ž ˜”%‘/9ŒAŠHˆO‡U…[„a‚g€nu}~|ˆz”x w®u¾tÕsîqýqÿqÿpÿÜÆ%³%¥#œ!–’‘ ‰†)ƒ3<€C~J|PzVy\wbvitqszq„onl«k»jÐiìhûhÿgÿgÿÑ&½*«**“(%ˆ"†ƒ|$z.w6v>tErKqQoXn^lek mi vh!f!e"šc"¨b#¸a#Í`$é`$ú_$ÿ_$ÿ_$ÿÊ,¶/¤/–/Œ-…*€(}$z" v#s# q$)o$2m$:k%Aj%Gh%Mf%Te%Zd&ab&ia&r_'}^'Š](—[)¥Z)µZ*ÊY*çX*øX*ÿX*ÿX*ÿÅ1¯3ž33†2/y-u*r( +o(k)i)%g*-e*5c*=b*C`*J_+P^+W\+^[,fY,oX-zW-‡V.•T.£S/³S/ÇR/åR/÷R/ÿR/ÿR/ÿÁ6ª6™6‹65y3s1o/k.h-d.b.!`/*^/1\/9[/@Y/FX/MW0SV0[T1cS1lR2wQ2„O3’N3¡M3±M4ÅL4ãL4öL4ÿL4ÿL3ÿ»9¦9•9‡9|9t7n4i3e2a2 ^2\3Z3&X3.V35U4<S4CR4JQ4PP5XN5`M6jL6uK7‚J7I8ŸH8°G8ÃG8áG8õG8ÿG8ÿG8ÿ·;¢<‘<ƒ<x<p:j7d6`6\6 Y7V7T7#R7+P72O89M8@L8GK8NJ9UI9^H:hG:sF;€E;ŽD<žC<®B<ÂB=ßB<óB<ÿB<ÿB;ÿ³=ž>>>u>l=f:`9[:W:S;Q;N; L;(K;/I<6G<=G\C>fB?qA?~@??@œ>@­=@À=@Ý=@ò=@ÿ>?ÿ>?ÿ®@š@‰A|AqAh@a<[=V>R>N?L?I?G@%F@,D@3C@:BABAAI@AQ?BZ>Bc=CoE8=E?*VF)VO(WY'Wd&Wr%W$W’#W¤"W·"WÏ"Wì#Vú#Uÿ$Uÿ–M„NuNiN_OVOMPER?S9V3X/Z+[*[(\'\$&\+%\3$]:#]C"]L!]V ^a^n^~^^¡^´]Ì]é\ù[ÿ[ÿQ~QpQdR[RRSJTAW;Y5[.^(`$b "c!cd d'd.d6e>eGeQe]ejeze‹eže±eÈdçc÷bÿbÿ‰TxUkU`VWVOWFY=\6_0b)d#gjllmm!m)m0m9nBnLnXnenu n‡ nš m­ m là kó ký jÿ‚YrYfY\ZTZJ\A_9c1f*i$loru www w# w* w3 +w< wGwRw_wow€w”v§v»uÕtëtötü{]m]b^Y^N`Ec¬M¬]¬p¬…¬›«¯«Ã«ÙªèduWyK~?„4Š)–›Ÿ £§ª®°°±²´µ ¶·¹»&¼3½A½R½d¾y¾½¤½·½Æ½×\P…D‹8’,™!Ÿ¤© ®²¶¹½¿¿ÀÁÃÄÆ +ÇÉËÎ&Ð5ÑEÒWÒkÓ‚Ó—Ó©Ò¸ÒÄUŒI“=š0¢%¨®´ ¹½ÁÄÈËÍÍÏÐÒÔØÚÝ àãæ'ç8èJé]êrëˆë›ì¨ì²ÿ ÿ ÿ ÿÿÿ&ÿ2ÿ=ÿHûRøZöbóiñoðuîzìë„éŠèæ–äâ¥á¯ß»ÝËÛæÙ÷ØÿØÿ×ÿ×ÿÔÿÿÿÿÿ ÿþ!ú,÷8ôCðMíUê]çdäjâpàuÞzÝۅًՑәѠϪ͵ËÄÉÝÈñÇÿÆÿÆÿÆÿÇÿÿÿÿÿ +øñì'é2æ=âGÝPÙXÕ_ÒeÐjÎpÌuÊzÉDžŌÔÁœ¿¥½°»½ºÐ¸ë·û¶ÿ¶ÿ¶ÿ¶ÿÿÿýóéáÛ!Õ-Ñ7ÎAÊJÇRÄYÂ_Àe¾j¼o»t¹z·€¶‡´Ž²—° ®ª­·«È©ã¨õ§ÿ§ÿ§ÿ¦ÿÿþñå× +ÍÇÂ&¿1¼;ºD·L´S²Y±_¯d­i¬oªt©z§¦‰¤‘¢› ¥ž²Á›Úšï™ý˜ÿ˜ÿ˜ÿýðáÑÆ½ ·³ °+­5«>¨F¦M¤T£Y¡_ džin›uš{˜ƒ–Œ•–“¡‘­»ÏŒé‹øŒÿŒÿŒÿóâÌ¿·±«§¤$ .ž7œ@šG˜N–T•Y“^’diov‹~Šˆˆ’†…©ƒ¸Ê€å€õÿÿÿè о±¨ £  œ˜•'’19ŽAŒHŠN‰T‡Y†_„dƒkr€z~„}Ž{šy§xµvÈuãu ôt +ÿs +ÿs +ÿÝı¥œ–” “ Ž‹ ˆ *… +3ƒ ; B€ I~ O} T{ Zz `x gw nu vt €r Œp ™o¦mµlÉkæj÷iÿiÿiÿй¨›’‹ˆ‡…~${-y6w=vDtJsPqVp\nbmjksi}h‰f–e£c³bÆbãaö`ÿ`ÿ`ÿÇ"°#Ÿ$’#‰"‚ ~|z wtq(o0n8l?kEiKhQfXe^cfbo`y_…]’\¡[°ZÃYàXôXÿXÿXÿ¿'©(™(‹(‚'{%v#s q nki#g,e3c:bA`G_M^T\[[bY kX vV!‚U!T"žS"®R#ÀQ#ÝQ$òQ$ÿQ$ÿQ#ÿ¹+£,“,†-|,t*o(k%i"f!c"a"_#']#/\#6Z#=Y$CW$JV$PU$WS%_R%hQ&sO&N'M(œL(¬K)¾K)ÚJ)ñJ)ÿK)ÿK)ÿ³.ž/Ž00w/o.j+e*c'_' \'Z'X($V(+U(2S(9R)@P)FO)MN)TM*\L*eJ+pI+|H,‹G-šF-ªE.¼E.ÖE.ïE.þE.ÿE-ÿ®1š2‰3|3r3k1e/`-],Y, V,T,R, P,(N-/M-6L-<J-CI-JH.QG.YF/cE0mC0zB1‰A1˜A2¨@2»?2Ó?2î@2ý@2ÿ@2ÿª3–5†5y6n5f5a2\0W0T0Q0N0L1J1%H1,G12F19D1@C2GB2OA3W@3`?4k>5x=5‡<6–;6§;6¹:6Ñ:6í;6ü;6ÿ;6ÿ¦6’7‚8u8k8c7]6W3S4O4K4 I4F5E5"C5)A5/@56?6=>6D=7L<7U;8^:8i99v89…7:•7:¥6:¸5:Ï6:ì6:û69ÿ79ÿ¢8Ž9~:r;h;_:Y9S6N7J8F8 +D9A9?9>9&<9-;:4::;9;B8;J7;S6<\5“2>¤1>¶1>Í1>ê1>ú2=ÿ2=ÿž;‹<{<n=d=\=U<N:I;E<A=>=<=:>9>#7>*6?15?84?@3@H2@P1@Z0Ae/Ar.B-B‘-B¢,Bµ+BË,Bé,Bù-Aÿ-Aÿ™=‡>w?k?a@Y?R?I>D?@@K9L3N.P(S$T "U UVV$V,V3W;WDWNWYXfXuX‡XšW¬WÂWáVôUÿUÿ„ItJfK\KSKKLDM[6_.b&fjmps vx xyyyz&z/z9zDzPz_zpzƒz˜z¬yÂxßxïw÷j[_[V[L\B`9c0h(l ptw{ ~‚ƒ ƒ„…† †(‡1‡<‡I‡W‡h‡{‡†¥…º…Ó„ê„ôe`\`QaFdÌPÌdÍz͑ͤʹÍÀMƒAŠ5‘)™ ¦ ¬±¶º¾ÂÆÈÈÊËÍÎÐÒÕÙÝá!â1äCåVækæ‚ç–ç¥æ°ÿ ÿÿÿÿÿ!ÿ-ÿ8ýCùMõUò]ðcîiìoêtézçæ…ä‹ã‘á™ß¡ÜªÚ¶×ÆÕáÓôÒÿÑÿÑÿÏÿÊÿÿÿÿÿ ÿúö(ó3ð>ìHèPåXâ^ßdÝjÛoÙtÖzÔ҅ЌΓ̜ɥǰƾÄÔÂîÁþÀÿÀÿ¿ÿ¾ÿÿÿÿúñëæ#â.à8ÛBÕKÑRÎYË_ÉeÇjÆoÄtÂzÁ€¿†½Ž»–¹ ·ª¶·´Ê²æ±ø°ÿ¯ÿ¯ÿ°ÿÿÿ÷êá ×ÐÌ(É2Æ<ÂE¿M¼SºY¸_·dµi´n²t±z¯€­ˆ¬‘ªš¨¥¦±¤Á£Ü¡ò¡ÿ ÿ ÿ¡ÿÿ÷èÙËý¹"¶,´6²?¯G¬M«T©Y§^¦c¥h£n¢t zž‚œ‹›•™Ÿ˜¬–º”Ï“ë’û’ÿ’ÿ‘ÿ÷çÓÆ»³ ­ª§&¤0£8 @žGœNšS™X—]–c•h“n’t|…‹šŠ§ˆµ†Ç…ä„õ„ÿƒÿƒÿìÓÁ´¬¦ š —)•2“:‘AHMŒS‹X‰]ˆc‡i…oƒw‚€€Š~–}£{°zÂyÝxñwýxÿxÿÞ +Ä ² ¦ ™• +‘Ž‹#‰,‡4…;ƒB‚H€NS}X|^{dyjxrv{t†s’qŸp­n¾mÖmílúlÿlÿη¦š‘‹‰ ‡ „~%|.z6x<wCuHtNsTqYp_nfmnkxjƒhg e ¬d ¼c +Ôc ìb úb ÿb ÿí‡}|| +x +u r (p 0o 7m >l Dk Ji Oh Ug \e cckbu`_Ž]œ\«[½ZÖYðYýYÿYÿ¹¥”ˆ~xtqq oli"g*f2d9c?bE`K_Q]X\_ZhYrW}V‹T™S©RºQÒQíQýQÿQÿ² ž"Ž"#w"p!ligfca_&]-\4Z;YAXGVMUTS\RdQnOzNˆM—K¦J¸JÏIëIûIÿJÿ¬$˜%ˆ&{'q&j%f#b!`^ [YW"U)T0S7Q=PCOJMQLXKaIkH wG …F!”D"¤D"¶C"ÌC#éC#úC#ÿC"ÿ¦'“)ƒ*v*m*e)`'\%Y#W!U!R!P!N!%M",L"3J"9I"@H"FG#ME#UD$^C$iB%u@&ƒ?&’>'£>'´='Ê=(è=(ù='ÿ>'ÿ¢*Ž+-r-h-a,\+X(T&Q&N% L%J&H&"G&)E&/D&6C'<A'C@'K?(S>)\=)f<*r;*:+9+¡8,²7,È7,æ8,ø8,ÿ8,ÿ,Š.{/o0e0]/X.S+P*L*I* F*D*B*A*%?*,>+3=+9<+@;,H:,P9-Y8.d7.p6/5/40Ÿ30±20Ç20å30÷30ÿ4/ÿ™/‡1w2k2b2Z2T1O/K-G.D.A.?.=.;."9/)8//7/660>50F51N41W32b22n13}03/4ž.4°-4Å-4ã.4ö/3ÿ/3ÿ•1ƒ3t4h5^5W4Q4K2F1B2?2<2 938363 43&33-24414;05C05L/6U.6`-7l,7{+7‹*8œ)8®(8Ã(8â)8õ*7ÿ*7ÿ’45q6e7[7T7M6G6B5=6:677 472718/8$.8+-92,99+9A*:I*:S);^(;j';y&<‰%<›$<­#<Â#<à$<ô%;ÿ%;ÿ6|8m9b9X:Q9J9D9=99:5;2;/<-=,=*=!)=((>/'>6&>>%?G$?P#@["@h!@v @‡A™A«AÀAÞ@ó@þ ?ÿ‰9x:i;^<U<M<G<@<8=4>0@-A*B 'B&C$C#C%"C,!D3 D;DDENEYEeEtE…F—F©F¾EÜEñDýDÿ„<s=f>[?R?J?D?=@6A1C,D'F$G +!H III"I)J0J8JAJKKUKbKqK‚K”K§K¼KÙJðJüIÿ?o@aAWBNBGBAB:C2E-G(I#KMO PPPP%P,Q4Q=QGQRQ_RmR~ Q‘ Q¤ Q¸ QÑ Pì PúOÿyCjD]DSEKEDE>F6H/J)L$OQSV WXXX X( X0 X9 XC XN +XZXhXyXŒXŸX³WÊWæWóVüsFdGYHPHHHAI:J2M+P%R UXZ] ` +` ```#`+`4`=`I`U`c`s`†_š_®_Ä^â^ð^ølJ_KUKLLEL=N5P.S'V Y\_b eg ghhhi&i.i8iCiOi]imi€i”h©h¿gÜfîf÷fOZOQOJOAQ8T0W([!^beh knp p qqrs!s(s1s<tHsVsfsysŽs£r¹qÒqëpôaSVSOSEU;X2\*`"dhlo rvyzz +{|}~"€*€5€A€O€_€q€†€²~Ê~å}ñ\XTXIZ?]5a,e#josw {‚„††ˆ +‰ Š‹ŒŽ",8FVh~•Ž«ÁÜŒëY]N_Cb8f.l$qw|…‰’“”–—˜ š›Ÿ# . < L ^ tŸŒŸ¢Ÿ·žËžàSdGh÷HóPðWí^ëdèiçoåtãyâà…ތܓٜ֦ӱÑÀÏÚÎñÌÿËÿËÿÆÿÁÿÿÿÿÿûöò$ï.í9èBãKàRÝYÙ_ÖdÓiÑnÏtÎyÌʆȎƖĠ«À¹¾Í¼ê»üºÿºÿºÿ¶ÿÿÿþôë äßÛ)Ø3Ó=ÎEÊMÇSÅYÃ_Ád¿i½n»sºy¸€¶ˆ´²š±¥¯²­Ä¬á«öªÿªÿªÿªÿÿýîâÕ +ÍÇÄ#Á-¿7»?·GµN²S°Y¯^­c¬h«m©s¨z¦¤Š£”¡ŸŸ¬ž»œÒ›îšÿšÿ™ÿ™ÿþîÞËÁ¹ ´±®'«0ª9§A¤H¢M¡SŸXž]b›gšm˜s—{•„”Ž’™¦Ž´ÈŒæ‹ùŠÿŠÿ‹ÿðÛǺ°¨ +¤ !›*š3˜;–A”H’M‘RWŽ\Œa‹gŠnˆu‡~…ˆƒ”‚ €¯À~Ý}ò}ÿ}ÿ}ÿàÆµª¢›• ’$‹-Š4ˆ;†B…GƒM‚RW\~b}h{pzyxƒvuœtªrºqÑpìpûpÿpÿÍ·§›“ŽŠ†„'}.|6z<yBwGvLuRsWr]qcokntl~kŠi˜h¦g¶fËeçe÷eÿeÿÀ « ›† ~| ywu!s)q0o6n<lBkGjMiRhXf_egcpbz`‡_•^£\³\Ç[ä[ô[þ[ÿµ¡‘…|vsr q nli#g*f1d7c=bCaI_N^U]\[ cZ mX +xW +…V “T ¢S ³R ÇR äQ õQ ÿQ ÿ­™‰}tmjggf c a _ %] ,\ 3[ 9Z ?X EW KVQUYSaRkPvNƒM’L¢K²JÈIåI÷IÿIÿ¥’ƒvmfb_^^ +[YW U'T.S4Q;PAOGNNLUK^IgHsF€EDŸC°BÅBãBöBÿBÿŸŒ }!q"h"a!\YWUTQON#L*K0J7I=GCFJERCZBdAp?}>=<®;Ã;á;õ;ÿ<ÿš!‡#x$l%c%\$W#S QOM KHG E&D-C3B9@@?G>O=X<b:m9{8 ‹7!›6!­5!Á5!ß5!ó6!ÿ6!ÿ–#ƒ&t'h(_(X'S&O$L"I G DB@ ? #> )< /;!6:!=9!D8"L7"U6#_4#k3$y2%‰1%š0%«0&¿/&Ü0&ò0&ÿ1%ÿ‘&(q*e*\*U*O)K(H%D$A$?$ =$;$9$7$&6$,5%34%:3&A2&J1'S0']/(i.)w-)‡,)˜+*ª**½**Ú+*ñ+*þ,)ÿ(|*m,b-Y-Q-L,G+C(?(<(9( 7(5(3(2(#0()/)0/*7.*?-+G,+Q+,[*,g)-u(-…'-—&.¨%.¼%.Ø&.ð&.ý'-ÿŠ+x-j._/V/N/H.C-?,;,7,4, 2,0-.--- +-'*.-*.5)/=(/E'0N&0Y%1e$1s#1ƒ"2•!2§!2» 2Ô!2ï"1ü"1ÿ†-u/g0\1S1K1E1@0;0603001-1 +1)2(2'2$%3+%32$3:#4C"4L!5W 5c5q66“6¥6¹6Ò6í6û5ÿ‚0q2c3Y4P4I4B3=37314.5+5(6 %7$7"7!8" 8(80879@9I:T:`:n:;‘;¤;·;Ð:ì:ú9ÿ}2m4`5U6M6F6@6:646.8*9&:#; <===>%>->4>=?G?Q?^?l@|@@¢@¶@Î?ë?ù>ÿy5i7\8R9J9C9=9791:+<'="?AB CCDD"D)D1D:ECENE[EiEy EŒ EŸ E² EÉ Eå Dö Dÿt9e:X;O;G<@<:<4<.>(@#BDFHJ JJKK% K- K6 K@ KJ +KV KdKtK‡KšK®JÄJàJðIún<`=T>K>D>=>7?1@*B$EGILNQ Q +Q QQ"Q)Q2R;RFRRR_RoRQ–Q©Q¿PÜPîP÷h@[APAHAAA;B4C-E&H KMPSU +X +XXYYY%Y-Y6YAYMZZZiY|YY¥XºXÕWìWöcDVEMEEE?E7G/I(L"ORUX Z ]_ ` `aab b'b1b;bGbUcdbvb‹b a¶aÏ`ê`õ]HRIJHCH:J2M*P#SWZ] `cfgh ijklm"m*m4m@mNm]mom„lšl°kÈkæjóXMNMHL>N5Q,T$X\`d gknprrs uvwxy#z-z9zGzVyhz|y”xªxÁwßwïTQLQBR8U/Y&^bgk oswz|~€ +ƒ „†ˆ‰%Š0Š>‰M‰_‰sˆ‹ˆ¢‡¹‡Ñ†èRVGWr2x'€ˆ +—£¨­²¶¹»¼¾ÀÂÄÆÈËÎÑ Ö×#Ø5ÙIÚ^Ûuیܟܫÿÿÿÿ ÿÿþ$ü/ù9ôCðKíRêYç_ädâiànÞsÜyÚ׆Ԏіϡ̬ʻÈÒÆîÆÿÅÿÅÿ¿ÿºÿÿÿÿþ÷òîë*é4ã=ÞEÙMÔSÑYÎ^ÌcÊhÉmÇsÅyÀÁˆ¿½›»¦¹´·È¶æµû´ÿ´ÿ³ÿ®ÿÿÿøíå Ý×Ò$Ï.Ë7Ç@ÃGÀN¾S¼Yº^¸c¶hµm³s±y¯­Š«”© ¨­¦¾¥Û¤ô¤ÿ£ÿ£ÿ¢ÿÿöæ×Ëľ»¹(·1´:°A­H«N©S§X¦\¤a£g¡l sžzƒ›Ž™™—¦–¶•Ì”ë“ý“ÿ“ÿ“ÿ÷äÐÁ·¯ «§¥"£+¢3Ÿ;œB›H™M—R–W•[“a’fmt}Œ‡Š“ˆ ‡¯…Â…â„÷„ÿ„ÿ„ÿåͼ¯¦žš–”’%‘-5<ŒBŠGˆL‡Q†V„[ƒ`g€n~w}{zšx©wºvÓvïvþuÿuÿл«Ÿ—‹ ˆ†„ ‚'/5}<|A{FyKxPwUv[tasiqqp{n‡m•k£j´jÉièiùiÿiÿÀ¬œˆƒ{ ywv"t)s0q6p<oAmFlKkPjVh\gdeldvc‚a`Ÿ_¯^Ã^á^ô]ÿ]ÿ´  „ | +wtq omki#h*g1e6d<cAbF`L_R^X]_[hZrX~WŒV›U«T¾TÚSïTûTÿ© –‡zrli g f db`^%]+\1Z7Y<XBWGVNUTS\ReQoO{NŠM™L©K¼JÔJíJùJÿ¡Ž~sjd`^] ] ZXV U'S-R3Q8P>O DN JL QK +YJ +bH mG zF ˆD ˜C ©B ¼B ÕB îB ûB ÿš‡xlc]YVTTS Q O M "L (K .J 4I :GAFGEODWBaAl?y>ˆ=˜;©;¼:Ö:ð:ý;ÿ“sg^XSPNLL JHFE$D*B0A7@=?D=L<T;^9i8v7…6–4§4º3Ó3î4ü4ÿŽ|nc Z S NJHFECA?> =';-:39:8A7I5Q4[3f2s0ƒ/”.¥-¸-Ð-ì.û.ÿŠx j"_#V#O"J!F CA?= ;976#5)40361>0F/O.Y-d,q+*’)¤( ·' Î' ë( ú)ÿ† t#g$\%S%L%G$B#?!=:7 5310 /&.--3, ;+ C*!L)!V("b&"o%#$###¢"$µ"$Ì"$é#$ù$#ÿ‚#q%c&Y'P(I'C'?&;$8"5"2"0" .","*")"#(#*'#1&$8%%A$%J#&T"&`!'m '}'(¡(´(Ê(è(ø'ÿ~%n'`)V)M*F*A)<(7'4&0&-&+' ('''%'$'!#('"(.!)6 )>*H*R+^+k+{,,Ÿ,²,É,ç+÷+ÿz'j*]+S,J,C,>+9+4*0*+*)+&+#,", ,,-%-,-3.<.E/P/\/i0y0‹0ž0±0Ç0å0ö/ÿv*g,Z-P.H.A.;.6-1-,-'/$/!01 1222"2)31393C4M4Y4g5w5‰5œ5°5Æ4ä4õ4ÿr,c.W0M0E0>08030/0)1$2!356 77888&8.969@9K9W:d :t :† :™ 9¬ +9Á +9Þ 9ñ 8ün/_1S2J3B3;36312,3'4!689;= >>>># >* >3 >< ?G +?R?`?o??”?¨>¼>×>ì>÷i3[4P5G5?59545.5)7#8;<?AC + D +D DD D'D/D8EBENE[EjE|ED¤D¹DÑDêCõd6W7L8C8<87818+9%; =@BDG I J KKKK#K+K4K>LILWLfLwKŒK¡KµJÎJéJõ_:R;H;@;:;4;.<'>"ACFIK NPQ QRSSS&S/S9SESRSaSrS‡RœR±QÊQçQôY>N>E>>>8>0@)B#DGJMP SUWX YZZ[\!\*\4\?\M\[\l\[—[­ZÅZäYóTBJBBB^2c'jpx …‹‘–›Ÿ¢¤¥§©«­°²µ· »¾¾&¾8¾K½a¼z»”º©º¹7j+p x€ ˆ–œ¢§¬°³¶·¹»½¿ÂÅÈÊÎÒÕÕ,Ô@ÔWÓnÔ†Ô›Ó«ÿÿÿÿÿÿü ù*ö4ñ=íFéMæSäYá^ÞcÜhÙnÕsÓyЀΈˑɜƧķÂÌÀì¿ÿ¾ÿ½ÿ·ÿ²ÿÿÿÿúó íèå%ä.ß8Ø@ÒGÎNËTÈYÆ^ÄcÂgÀm¿s½z»¹‹¶•´¡²¯°Â®ã®ú¬ÿ­ÿ©ÿ¦ÿÿÿòæÝÒÍÊ È)Å2À:¼B¹H·NµS³X±]°b®g¬lªs©{§„¥Ž£š¡¨Ÿ¹žÒòœÿÿœÿ™ÿüîÝÌÁº ¶²°#¯,­4©<¦B¤H¢M RžW[œ`šf™l—t•}“‡‘“¡Ž±ÆŒè‹ýŒÿŒÿŒÿíØÅ·¬¦¡Ÿ›&š.—5•<“B‘GLŽQU‹ZŠ`‰f‡m…v„€‚Œ€š©}¼|Ü|õ|ÿ|ÿ|ÿÙÁ±¤œ” ‹‰ ‰(‡/…6ƒ<‚A€FK}O|T{Zy`xgvpuzs†q“p¢o´nÌnínþnÿnÿį ”Œ†~|{y"x)w0u6t;r@qEpJoOmTl[kbijhtf€eŽcb­aÂaäaøaÿaÿ´ ‘†~yuq omlk$k*i0h6f;e@dEcJaO`V_]]e\oZzYˆX˜W¨V»VØVñVÿVÿ¨”…zrligd ca`_%^+]0[6Z;Y@XEWKVQUXSaRjPvO„N“M¤L¶LÍLëLúLÿ ‹ | p h b _ +]\ ZXWV U&S+R1Q6P;OANGMMKUJ]IgGsF€ED¡C²CÈCæCõCÿ• ƒti`ZVT S +S QONL!K'J,I2H7G=ECDJCQBZ@d?p>~=Ž<Ÿ;±:Æ:ã:ó:üŽ|nbZTPMKK J + IGED#B(A .@ 3? 9> +@= +G< +O: X9 c8 o6 ~5 Ž4 Ÿ3 ±2 Ç2 ã2 ô2 þˆwi^UOJGECCB @ ? = < $; *9 0877=6E5M3W2b1n/}.Ž- ,²+È+æ+ö,ÿƒrdYQKFB?><; +:875!4'3-230:/B.K-T+_*l){(Œ'ž&°%Æ%ä%ö&ÿ~n`VMGB>:8754 20/-#,*+0*7)?(H'R&]$j#y"Š!œ ¯Äâ ô ÿzj]S J D >:7420. ,*)' &&%-$5#="F!P [hwˆ›­Ãàóÿwg Z!P"H"A";"7!3 0-+(&%#!!$ *2:C M!Y!f!u"‡"™"¬"Á"ß!ò!þs d"W#M$E%>$9$4#0",")!&!$!"! !!""!"(#/#8$A$K%W%d&s&…&˜&«&À&Ý%ñ%ýp"a$T&J&B'<&6&1%-%)$&$"%%& +&''''%(-(5)>)I)U*b*q*ƒ*–*© *½ *× *î)ûl$]&Q(H(@)9(4(/(+'''"()*++ ,,,-#-*-2.<.F .R ._ /n / +/’ /¥ .¹.Ð .é +.÷h'Z)N*E+=+7+1*-*)*$* +-./1 +222 2 2' 2/ 38 +3B 3N3[4j4{3Ž3¢3¶3Í3ç2ód*V,K-B-:-4-/,+,&,"-/1246 8 +8 888$8,848>9J9W9e9w9‹8Ÿ8³8Ê8æ7ò_-R.H/?08/2/-/)/$013579 ;= >>>>!>(>1?;?F?S?a?s?‡>œ>°=Ç=ä=òZ0N2D2<25201+1&2 468;= ?AC CDEEE$E-F6FBFNF]FnE‚E˜D­DÄCãCòU4J5A59534.4(5"7:<?A DFHI +J KLMN N(N2M=NJNXMiM}L”LªKÁKáJòP8F8=87817*9$;=@CF IKNPQR STUVW#W,W8WDWRVcVwVŽU¥T½SÝSðK<B<;;5;-<&?BEHK OQTWXZ[\ ]_`bb&b1b>aLa]ap`ˆ` _·^Ô]îG@??:?1@)C!FJNQ +UX[^acdegh jlno o*o6nEnUnhmm˜l°kÊjèDD>C5D+G#KOTX\`dgkmoprtuw +y|~".=~M}a}w|{¨zÀyßCG9I/L%PU[`ejnrvy|~ƒ…‡ŠŒ ’’%’3’D‘Wm†ŽŸµŒÍ=N2Q(V\bhnty~‚†‰ŒŽ’”–˜›ž¡ ¤¦¦)¦:¥M¥b¤{£”¡«¡¿6W,\!bipw~„Š”˜›žŸ¢¤¦¨«­°³· »»»0»CºX¹p·‹·¡·³0b%ipx €ˆ–›¡¦ª®°±´¶¸»½ÀÃÇËÏ ÓÒ%Ò8ÑNÐeÏ~Í–Ì©ÿÿÿÿÿ üù÷%ó/î8é@æHâNßTÜYÙ^ÕcÓhÐmÎsËzȂƌ×À£¾²¼Èºê¹ÿ¸ÿ±ÿªÿ§ÿÿÿûöíçâß Þ)Ù3Ñ;ÌBÈHÅNÂSÀX¾]¼bºg¹m·tµ{²…°®œ¬ª©½§Þ¦ù¥ÿ£ÿÿ›ÿýöëßÑÊ ÅÃÀ$¾,¹5¶<³C°H®N¬R«W©\§a¦g¤m¢t }žˆœ•š£˜´–Í•ñ”ÿ•ÿÿŽÿóæÑ¸±­ª¨¨'¦/¢6Ÿ<B›G™L—Q–U”Z“`‘fnŽvŒŠˆ›†¬…Á„æƒý„ÿƒÿÿä˺¬¢œ˜ –”“!’(06‹<‰AˆF†K…O„T‚Z`g~o|zz†x”w¤u·tÔsôtÿtÿtÿ˶¦š’Іƒ€#*}0{6z;x@wEuItNsTqZpanimskihg®fÇeêfÿfÿgÿ¸¤•Š|vt rqpp$n*m0k5j:i?hDgIeNdTc[ac`m^y]‡[–Z¨Y½YßYøZÿZÿ¨•‡{snjgedccb%a*_0^5]:\>[DYIXOWVV^ThSsQP‘O¢NµNÐNðNÿOÿœ‰{phb_][ YXWW V%U*S0R4Q9P?ODNKMRKZJcIoG|FŒEE°DÇDèDúEÿ’€q +f +^ +Y UTRP ONML K&J+I0H5G:F@EFCNBVA_@k>x=ˆ<™<«<Á;à;ô;ÿ‰ +x j_WQM K JI H FEDC!B&A+?1>6=<<C;J:R9\8h6u5…4–4¨3¼3Ø3ï3û‚ qdYQKGDB A A ?><;:"9(8-72695?4G3P1Z0f/s.ƒ-•,§+º+Ò+ë+÷}l_TLFB><:: : + 8 654 2 $1 )0 // +6. +=- +E, N+ Y) e( s' ƒ& •% §$ »# Ò# ë# ÷xh[QHB=975332 0 / - , !+ '* -)4(;'D%N$Y#e!s „–©½ØîùsdWME?:520.-, ++)(&%$$*#1"9!B KVcq‚•§»Ôîúp`TJB<62/,*(&% #" !'.6?ITap“¦ºÒìúl]QG?94/+(&$"  +$,4=GR_n’¥¹ÐêøiZNE= 61-)%#  ")1:EP ] l | ¢ µ Ê å ôeWL!B!:!4!/!* &#    !!"""&#/#7 #A $M $Y +$g $x$‹$ž$±$Ç#ã#ñbT!I#@#8#2#,#("$!!!!!#$%& ' ' ' '# +'+ (4(>(I(U)d)t)‡)›(¯(Å(á'ð^"Q$F%=%5%/%*$&$"##$%&() , +,,,,!,(-0-:-E-R.`.q-„-™-­,Â,à,ðZ$M&C':'3'-'(&$&!&&')+, . 0 11222%2-263B3N3]3m32–2«1Á1ß1ðV'J)?*7*0*+)'(#()*,.0 1 +45 67888"8*939>9J9Y9i9}8“8¨7¿7Þ6ðQ+F,<,4,.,*+%+ ,-/13 5 7:; +< =>?@@%@/@:@F@T@e?x?>¦>½=Ü=ðM.B/9/2/-.(."/0257 : <>ABC D FGHH!H*H5HAHOH`GsGŠF¢E¹EÙDðH2>26201+1%2469< ?BDFHJKL NOQRR%R0R<QJQZQmP„ONµMÒMîC6;645/4'5!8;>A DGJMOQSTUW Y[]]]*]6\D\T[g[~Z—Y¯XËWê?98938+9#<?CG JNQTWZ\]_`bd fhkk#j.j<jMi_hugf¨eÂdã==7<.=%@DIM +QUZ]`cfhjkmoqt +vy{{'z5yExYxmw†vŸu·tÒ_C^H]N[UZ]XgWrUT‘S£R¸QÜQùRÿRÿ‹|qid`^\ [[ZZY%W*V/U4T8S=RCPIOPNXMbKmJzI‹HG±GÌFðGÿGÿ~pf^YVSRP OONN M%L*J.I3H8G>FDEKDSC]Ah@u?…>—=«=Ã=æ=û>ÿ‡uh]UPLJIG +FEEDC B%A*@/?4>:=@;G:O9Y8d7q65“4¦4»4Ý4õ5ÿ~m ` V N H D +B@?> =<;;:!9%7*60554<3C2L1U0`/m.}-,¢,¶,Ð,î,üw +g ZPIC> ; 9 8 76 54321"0'/,.2-8,@+I*R)](k'z&Œ%Ÿ%²%Ê%è%÷r bVLD>9631 0 0 +/ .,+*)#()'/&5%=$F#P"\!i y‹°Æãóm^RH@:51.,** ) ( ' %$# " &! , +3 +; D O [ i y ‹ ž ° Å á ðiZNE=71-*(&$## "     # * 2:DP\j{ ³ÉäòeWKB:4/*'$"   !(09CNZiyŒž ± Å á ñbTI?71,($! &-6ALW e u ‡ +š ­ÁÝ î_QF=5/*%"  # * 3 < G +S aqƒ—ª¿Úì\NC:3,'#     + '/9CP^n€•©½ØìXKA80*%!  +  !!!$","5"@#M#Z#k#~#“"§"¼!×!íUH> 5 . ( #   " +$ % %&&&!')'2'='I(W(g'{''¥&»&Ö%íQ E!;"2","&!"!   "# % +&( +) +,,,,&-/-9-F-T-d-w,,¤+º+Ö*îM"A$8$0$)$$#!"""#$& ( +*,. / 02333"3+363B3P3`3s2Š2¡1¸0Ö0ïI%>&4'-'(&#%$%&(* , +.0245 +7 8::::':2:>:L:\:o9†8ž8¶7Ô6ïD):)1)+)&("'()+. 0 2579;<> ? ACCC#C.C9CGBWBjA@š?²>Ï>ï?,6,/,*+%*+-/2 58:<?ACEFH JLMMM(M4LBLQKdK{J”I­HÊGì;03/-/(-"/147 :=@CFHJLNOQS UXYX"X.W<WKV^VsUT§RÂRæ8312,1%258< @DGJMPSUWYZ\^a dfgf'f4eDdWdkb…aŸ`¹^Ü5705(7 :=B FJOSVY\_adegilnq tww v-v=uOtcs{r•p¯oÉ5:+;"?CH MRW\`dhknqsuwz|‚† +ŠŒ‹$Š3‰E‡[†r…‹ƒ¥‚¼/@%DIN TZafkoty}€ƒ…‡ŠŒ’–™ž ¢¢¡) ;ŸPgšš™™¯)INT[bipw}‚†‹“•—𠣦ª®²· +»º¹0·Eµ\´t±Ž¯¤"T[bjs{‚‰•šŸ£¦¨«®°³¶º½ÂÇÌÓ ÔÓ&Ñ:ÐQÍhËÊ–üöòñóô òðí%è.â6Þ>ÙDÔJÑOÎTËYÉ^ÆcÄiÁp¾x¼¹¶š³«±À¯æ®ÿ¥ÿšÿ”ÿÿôìèçßÙ ÒÏÏ Ì(Æ0À7¼>¹D·IµN³S±W¯]­b«i©q§z¥…¢“ ¢¶›Ô™ù–ÿÿˆÿ„ÿèßÙÉ¿¸µ ³±°"­*©1¦8¤=¢C HžLœQ›V™\—b•i“r‘}‹š‹¬‰Åˆî†ÿÿzÿxÿÙÍ»®¥Ÿœ ™™™˜$”+‘1Ž7Œ<‹A‰FˆK†P…Uƒ[‚b€k~u|‚z’x£w¹vàuÿrÿnÿlÿǵ¥™‰…„ ‚‚‚€%~+|1z6y;w@vDuIsOrUp\odmnlzjŠh›g¯fÌeõdÿaÿ`ÿ´ …}wspoooom%k*i0h4g9f>eCcHbNaU_^^g\s[‚Y“X¦W¿WêWÿVÿTÿ¡Žulhda` ____]%\*[/Y3X8W=VCUISPRXQaPmN{MŒLŸKµJÜJúJÿJÿ’€rg_ZWUSR RRRQO$N)M.L3K8J=ICHJFRE\DgCuB†A˜@®@Ë?ò@ÿ@ÿ…tg]UOLJHG +G FFFED$C)B-A3?8>>=E<N;W:b9o8€7“6§6À6è6þ6ÿ|k^TMGCA?>= =<<<:9$8)7.635:4A3I2S1^0k/{.Ž-¢-¸-Ý-ø.ÿsdWMF@;87654 44321 0$/)./-6,=+E*O)Z(g'w&‰&%³%Ï%ð&ÿm^ R H @ : 6 2 +0..- +, ,+*)( '%&+%2$9#B"K"W!d s…™®Çéúh Y M C<61 - * ( ' && %$$"!!" (.6?ITap‚–ªÁáôc UI@82-)&# "    %+3<FR_n€”§¼Ùï_QF<5/*&"    + +      " +) +1 +: E Q _ n € ” § º +Ò +ê\NC:2,'#        ( 0; F Q ^ m + “ ¦¹ÐèXK@70)%!  +    % - 6 +A MZj|¤¸ÏèUI>5-'"  +    +  "*3>JXgzŽ£·ÏéRF;2+%!  + + '0;GUdwŒ¢·ÏêOC90)#  + + $-8DRbuŠ ¶ÐëL@6-&!  +    !!"!*!5"A"O"_"r!ˆ!Ÿ ¶ÑíH=3+$   +!" +$ &&&''''2'>'K'\'n&…&%´$Ñ#îD90(#  +!"$&(* + ----$...:.H-X-j-,š+²*Ð)ï@ 6!-!&!! ! " +$&(+-/0 2 4555 5*565C5S4f4|3–2¯1Í0ï<#2$*$$# "!!#% ' )+.02468: < >>>>&>1>?=N=a@BD +F IIH!H,G:GIF[EqD‹C¥BÃAè4*,*'("'(*- 0 369<>ACFHJLNP +STTS'S4SCRUQjPƒOžM¹Là0-+,&+,.2 59=@CFILNQSUWY\_ +bccb,a<`N_b^{\–[°YÏ/0*/"037;?DHLORUX[]`bdfimp tts%r4rEpYoqm‹k¦jÀ.3%58<AGLQUY]aehkmortwz~‚† Љˆ+†=„Rƒg›~²): =BHNTZ`dinrvz}€‚…ˆ‹Ž’–›  ¢ !Ÿ3Gš^˜w—•§#CHN U\cjqv{€†ŠŽ‘“–™œ £§«°¶¼ º¹(·<´R²j¯…­œNT \dlt|ƒ‰”šŸ¢¤§ª®±´¸¼ÁÇÍÔØÕÓ1ÐHÍ_ËvÈŽ +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿmft1! +  !"#$%&'()*+,-./01123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïñòóôõö÷øùúûüýþÿ +  !""#$$%&&'())*+,--./01223456789:;<=>?@BCDEFHIJLMOPRSUWXZ\^`bdfhjmoqtvy|~ƒ†‰‹Ž’•—™›Ÿ¡£¥§¨ª¬­¯°²³µ¶·¹º»¼½¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÒÓÔÕÖÖרÙÙÚÛÛÜÝÝÞßßàááâããäååææçèèééêëëììíîîïïððñòòóóôôõöö÷÷øøùùúûûüüýýþþÿ +  !""#$$%&&'())*+,--./01223456789:;<=>?@BCDEFHIJLMOPRSUWXZ\^`bdfhjmoqtvy|~ƒ†‰‹Ž’•—™›Ÿ¡£¥§¨ª¬­¯°²³µ¶·¹º»¼½¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÒÓÔÕÖÖרÙÙÚÛÛÜÝÝÞßßàááâããäååææçèèééêëëììíîîïïððñòòóóôôõöö÷÷øøùùúûûüüýýþþÿÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÚË èÍ:éÌ`ÜÈ’˺2¬Æ·P´À³h¼»®{ĵ¨ˆË³¥‡Ñ°¢‡Õ­ŸˆÙ«‰Üªœ‹Þ¨šá§™ã¥—’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’楗’æÙË çÎ 9èÍ`ÜÉ ’Ë»0«Æ¸O´À³g½»®{ĵ©ˆË²¦‡Ñ¯£‡Õ­ ˆÙ«ž‰Ü©œŠÞ§›Œà¥™ã¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜ä¡˜äÙË äÎ 9çÎ`ÚÊ ’˼.«Å¹M´À´f½º®zŵ©‡Ë±¦‡Ñ®£‡Õ¬ ˆÙªž‰Ü§œŠÞ¥›‹à¢šâž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãž™ãØË áÏ 9åÏ`ÙÊ ‘˾,«Å¹Lµ¾´g½¹®{Å´ª‡Ì°¦‡Ñ­£‡Õ« ˆÙ¨žˆÛ¥‰Ý£œŠßŸš‹á›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™Žâ›™ŽâØË ÜÐ 9ãÐ `ØË ‘Ë¿+«ÄºLµ½³g¾¸®{Å´©‡Ì°¦‡Ñ¬£‡Õ© ‡Ø¦ŸˆÛ£ˆÝ œ‰Þ›Šà˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá˜šá×Ì ÚÑ 8ÞÑ _ÖË ‘ËÀ)¬Â¹M¶¼³h¾·®{Ƴ©‡Ì¯¦‡Ñª£†Õ§¡‡Ø¤Ÿ‡Ú¡ž‡ÜžˆÝšœ‰Þ•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›Œà•›ŒàÖÌ ÙÑ 8ÚÓ _ÔÌ ‘ÉÀ)­À¹N¶º³i¿µ®|Ʋ©‡Ì­¦†Ñ©£†Ô¥¡†×¢ †ÙŸŸ†Ú›ž‡Ü—ˆÝ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹Þ“œ‹ÞÕÌ ØÒ 7ØÓ ^ÒÌ “Ç¿+­¾¸P·¹²j¿´­|ư©‡Ì«¦†Ð§¤…Ô£¢…ÖŸ¡…Øœ …Ù˜Ÿ†Ú”ž‡ÜŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝŠÝÔÍ ÖÒ 7ÖÔ ^ÐË +•ľ-®¼¸Q¸·²jÀ³­|Æ®©‡Ì©¦†Ð¥¤…Ó £„Õ¢„Ö™¡…Ø• …Ù‘Ÿ‡ÚŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛŽž‰ÛÓÍ +ÕÓ 6ÔÔ _ÎË —Á¾0¯º·S¸µ²lÀ°­}Ǭª†Ë§§…Ï¢¥„Ñž¤„Óš£„Õ–¢„Ö“¡…× †Ø‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰Ù‹ ‰ÙÒÎ +ÓÔ 5ÑÓ +bËÌ ™¾½3±··U¹²±mÁ­­}ƪª†Ë¤¨„Ο§„Л¥ƒÒ—¤ƒÓ“£„Ô£…ÕŒ¢†Ö‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×‰¡ˆ×ÐÏ +ÑÔ 7ÎÓ +eÆÊ ¹¼8²´¶Xº­±nÁª®}Ƨ«…É¡©„Ìœ¨ƒÎ—§ƒÏ“¦ƒÑ¥„Ò¥…ÓŠ¤†Ó‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔ‡£ˆÔÎÐ +ÎÔ +:ÊÓ +hÀÈ¡µ»>´­µ[»©±oÁ¦¯}Ä£­„Ç«ƒÊ˜ªƒË“©ƒÍ¨„Χ„ÏŠ§…χ¦‡Ð…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑ…¦ˆÑÌÐ ÊÔ +>ÅÓ +m¸Å¥®¹Dµ§µ^»£²pÀ¡°}ß®„Å™­ƒÇ”¬„É«„ʪ…ËŠª…ˈ©†Ì…©‡Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰Íƒ¨‰ÍÈÑ ÅÕ +B¿Ó +r±Ä§¥¹I¶¡¶`»ž³p¾±}Á›°„Õ¯„Ä‘®„Æ­…ÇŠ­†Çˆ¬†È†¬‡È„«‰É‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉ‚«ŠÉÄÒ ÀÖ H¸Ô +x©Ï˜ž¾G®š¶bº˜µq¼—³|¾—²„À’±…°…ʯ†Äˆ¯‡Ä†¯ˆÅ„®‰Åƒ®ŠÅ®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å®‹Å¿Ô%º× N®Ú p Û‡—Í9š’ÃX¨‘¼l²‘·z¹’´ƒ½Ž³†¿‹²‡Àˆ±‡À†±ˆÁ„±‰Áƒ±ŠÁ‚±‹Â€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ€°ŒÂ÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ1ù½ Sê·(|̨DªÆ¥]´Â£pº¾¢¿¼ ˆÃ¹›ˆÆ·˜ˆÊµ•‰Í³’ŠÐ±‹Ò°ŒÔ¯ŠÖ®ˆ“Ø­†˜Ù¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú¬…Ú÷ÀøÀ0ù½ Sê¸'|̨D«Æ¥]´Â¤pº¾¢¿¼ ˆÃ¹›ˆÇ·˜ˆÊµ•‰Î³’ŠÐ±‹Ó°Õ¯Š×­ˆ“Ù­†˜Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú«†Ú÷Á÷Á0ø¾Sê¸&|Ë©C«Æ¦\´Â¤oº¾¢~¿» ˆÃ¹‡È¶š‡Ì³—ˆÏ±”‰Ò°’ŠÕ®Œ×­ŽÙ¬Š’Ü«‰™Ý§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛ§ˆœÛöÁ÷Á0ø¿Sê¹%|Ë©B«Æ§[³Â¥nº¾£~¿»¡ˆÄ¸ž‡Éµœ‡Í²™‡Ñ°–ˆÔ®”‰×­’‹Ú«Ü©’ߨšß£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜ£‹œÜöÁöÂ0÷¿Sêº$|Ë©A¬Æ§Z³Â¥mº¾£}¿»£ˆÄ· ‡É´‡Î±›‡Ó¯™ˆÖ­—‰Ú«•ŠÜ©“ß§’‘⤑™à ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜ ŽœÜõÂõÂ0öÀSêº#|˪A¬Æ¨Y³Â¦mº¾¤}¿º¤‡Å·¡‡Ê³Ÿ‡Ï°‡Ô®›ˆØ«™‰Ü©˜‹ß§˜Žâ¥—’æ –™àœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýœ“›Ýô õÃ0öÀSê»"|ʪ@¬Æ¨X³Â¦lº¾¤|¿º¥…Ŷ£‡Ë³¡‡Ð°Ÿ‡Õ­ˆÚªŠÝ§›Œà¤šŽâŸ˜ãš˜á™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ý™—›Ýòà ôÃ0õÁSê¼!|Ê«?­Æ©W³Â§kº¾¥{¿º¦„Ŷ¥‡Ë²£‡Ñ¯¡‡Ö«ŸˆÚ§‰Ý¤œŠß ›‹à›šâ—š“á—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þ—œ›Þðà ôÄ/õÂRê½ |Ê«>¬ÆªV³Â¨kº¾§y¿º¨ƒÅ¶§‡Ì²¥‡Ñ¬¢‡Ö¨ ‡Ù¤žˆÜ¡ˆÝœœ‰Þ—›‹à“›à’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—Þ’—ÞíÄ óÅ/ôÂRê½|ʬ<¬Æ«U³Â¨j¹¾©w¿ºª€Åµ©‡Ì¯¥‡Òª¢‡Ö¥ †Ø¡Ÿ†Úž‡Û™‡Ý”‰ÞœÞŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝŽ“ÝêÅ òÅ/óÃRê¾|Ë­:¬Æ¬T³Â©i¹¾¬s¿º­~Ų©‡Ì¬¥†Ñ§£†Õ¢¡…מ …Øš …Ú–Ÿ†Û‘žˆÜž‹Ü‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜ‹žÜæÅ ñÆ/òÄRêÀ|˯8¬Æ­R²Â«f¹¿°o¾·­~ư©‡Íª¦†Ñ¤¤…ÓŸ£„Õ›¢„Ö—¡…Ø“ …Ù ‡Ù‹ŸŠÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚˆŸÚáÆ +ðÇ.ðÆQêÁ|˰5«Ç¯O²Ã°`¸¼²l¿²­~Ç­©†Ì§§…Ï¡¥„Òœ¤„Ó˜£„Ô”£„Õ¢…Ö¡†×‰¡ˆØ‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹Ø‡¡‹ØÛÇ îÉ.îÈQëÄ|̳0«Ç±L±Ä¸V·¶±nÁ®­Ç©ª†Ë£¨„Ξ§ƒÏ™¦ƒÑ•¥ƒÒ‘¤„ÓŽ¤…Ô‹£†Ôˆ£ˆÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕ…£ŠÕÚÈ ëË -ëÊPëÇ|̶*ªÈ·D°º¶Yº¯±pª­Ǧ«…Ê ª„Ìš¨ƒÍ–¨ƒÎ’§ƒÏ¦„ÐŒ¦…щ¥†Ñ‡¥‡Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰Ò…¥‰ÒØÉ ßÍ ,çÍOèË{ͼ"¨Â¼<±±µ^¼©±r¦®Å¢­„Çœ«ƒÉ—ªƒÊ“ª„Ë©„Ì©„Í‹¨…͈¨†Î†§‡Î„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰Ï„§‰ÏÕÉ ØÏ ++ÚÓ NØÐ zÍ賺Fµ©´b½¤±tÁ¡°Þ®„Å™­„Ç”¬„È«„ÉŽ«„Ê‹ª…ˉª†Ë‡©‡Ì…©ˆÌƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰Ìƒ©‰ÌÒË ÔÑ +)ÕÕ LÐÐ +~¸¿%®¨¸O¸¡´f¼ž²u¿±Á›°„Ö®„Å‘®„ÆŽ­…Ç‹¬…lj¬†È‡¬‡É†«‡É„«‰É‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊ‚«ŠÊÏÌ ÐÒ +(ÎÔ +RÅÑ +ƒªÃ-¨ž·W¸›µh»š´u¾™²¿—±„Á“°…¯…ÃŒ¯…ÄŠ®†Åˆ®‡Å†®ˆÆ„­ˆÆƒ­ŠÆ­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹Ç­‹ÇÌÍ ËÓ +-ÇÔ +Y²Ø €žÍ+š˜ÁP«–¸g·•µu¼”´~¾”³…¿²…ÀŒ±†Áб‡Âˆ°‡Â†°ˆÂ…°‰Ãƒ°ŠÃ‚¯‹Ã¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃ¯ŒÃÇÏÅÔ 4¸Ù +[¢çv—Ú%‰ÏE˜ŽÇ]£Án«½y±Œº´‰¸ƒ·†·…¹„¶†ºƒµ‡»‚µˆ¼´‰½€´Š½´‹¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾~³Œ¾ÂѽÖ:§ñU›ñh‘æ-x‰Ý@……ÕVƒÏg—‚Ës~Èx¡{Æ|¤yĦw¨u„©tÂ…ªsÁ‡«rÁˆ«rÀЬqÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬qÀ‹¬ÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿ´*F÷¯6iÞ§BÇ›b±Ä›r¶Â›¹À›ˆ½¾™‰À¼•ŠÃº‘‹Æ¸È·ŠÊ¶ˆ‘̵…“Í´ƒ–ϳ™Ð³€Ñ²£Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñ°~¤Ñÿ¸ÿ¸'ÿµ)F÷°5iÞ¨AÇœa±Äœq¶Â›~¹¿†½½š‰Á»—‰Ä¹“ŠÇ·ŒÊµŒŽÌ´‰Î³‡’в„•Ò±‚™Ó±žÔ®€¢Ô¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Ò¬€£Òÿ¹ÿ¹'ÿ¶(F÷°4jݨ@Ç`±Äœq¶Âœ|º¿ž…¾¼œˆÂº™ˆÅ¸•‰É¶‘ŠÌ´ŽŒÏ²‹ŽÑ±ˆ‘Ó°†”Õ¯„™Ö¯ƒŸ×ª‚¡Õ§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Ó§‚¢Óÿ¹ÿ¹'ÿ¶(F÷±3jÝ©?‘Ç`±Äp¶Âž{º¿Ÿƒ¾¼žˆÂ¹›ˆÇ·—ˆÊµ”‰Î³‹Ñ±Ó¯ŠÖ®ˆ“Ø­†™Ùª…žÙ¥„¡Õ¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ô¤„¢Ôÿºÿº'ÿ·'F÷±2jÝ©>‘Çž_±Äo¶ÁŸyº¾ ‚¿» ˆÃ¸œ‡È¶™ˆÌ³–ˆÐ±’ŠÓ¯ŒÖ®ŒŽØ¬Š“Û«‰™Ü¦‡Ú¢† Ö †¢Ô †¢Ô †¢Ô †¢Ô †¢Ô †¢Ô †¢Ô †¢Ô †¢Ô †¢Ô †¢Ô †¢Ô †¢Ôÿºÿº&ÿ·&Fö²1jݪ=‘Çž^±Äo¶Á xº¾¡¿»¡ˆÄ¸ž‡Éµ›‡Í²˜ˆÑ°•‰Õ®’‹Ø¬Ûª’Þ¨Œšß¢ŠÚž‰ Öœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôœ‰¡Ôþºÿ»&ÿ¸&Fö²0jݪ<‘Çž]±Äžn¶Á¡vº¾¢¿»£ˆÄ· ‡Ê´‡Ï±š‡Ó®˜ˆ×¬•ŠÛª“Þ¨‘’⤙àžÛšŒ ×™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õ™‹¡Õþ»þ»&ÿ¸%Fö³0jÜ«;’ÇŸ]±ÄŸl¶Á¢tº¾¤~¿º¤‡Å·¢‡Ê³Ÿ‡Ð°œ‡Õ­šˆÙª™ŠÞ¨˜Žâ¥—“柕™àš‘œÛ—Ÿ×–ޡՖޡՖޡՖޡՖޡՖޡՖޡՖޡՖޡՖޡՖޡՖޡՖޡÕý»þ»&ÿ¹%Fö³/jÜ«:’ÇŸ\±Ä j¶Á£sº¾¥|Àº¥…Ŷ£‡Ë³¡‡Ñ¯Ÿ‡Ö¬ž‰Û¨œ‹ß¤šáŸ™ãœš˜á—–œÜ”“ŸØ“’ Ö“’ Ö“’ Ö“’ Ö“’ Ö“’ Ö“’ Ö“’ Ö“’ Ö“’ Ö“’ Ö“’ Ö“’ Öý» ý¼&þ¹$Fö´.jÜ«:’Ç \±Ä¡h¶Á¥qº¾§zÀº§„Ŷ¦‡Ì²¤‡Ñ®¢‡×©ŸˆÛ¤‰Þ ›ŠàššŒá–›“á•››Ý’—žØ‘• ×‘• ×‘• ×‘• ×‘• ×‘• ×‘• ×‘• ×‘• ×‘• ×‘• ×‘• ×‘• ×ü¼ ý¼&þº#Fö´-jܬ9’Ç [±Ä£fµÁ¦nº¾©xÀº©‚Ŷ¨ˆÌ°¥‡Òª¢‡×¦Ÿ‡Ú¡ž‡Ü›ˆÞ–œŠß‘›ß‘™Ý›žÙ™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×™Ÿ×ü¼ ü¼&ýº"Eöµ,jÜ­7“Ç¡Z±Å¥cµÂ©kº¾¬u¿º­ų©‡Ì­¥†Ò§¢†Ö¢¡†ØŸ†Ú˜ž‡Û’‰ÝŽÝŒž”Ü žÙŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×ŒžŸ×û½ û½%ý»"Eö¶+jÛ­6“Ç¢Y±Å§_µÂ­f¹¿±p¾·­~ư©‡Íª¦†Ñ¤¤…Ôž¢…Ö™¡…Ø” †ÙŸ‡Ú‹Ÿ‹ÛˆŸÛˆ ˜Øˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ˆ¡×ú½ ú¾%ü¼ Eö·*jÛ¯4”ȤU±Æ«X´Ã³_·»²n¿²­~Ǭ©†Ì¦§…Р¥„Ò›¤„Ô–£„Õ‘¢…Ö¡†×‰¡‰Ø†¡Ø„¡“ׄ¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Ö„¢—Öù¾ ù¿%ú½Eö¸'jÛ°1”ȨM¯Ç²N²Á¸X¸´±pÁ­­Ç©ª…Ë¢¨„ΧƒÐ—¦ƒÑ’¥„ÒŽ¤…Ó‹£†Ôˆ£ˆÕ„£‹Õ‚£Õ£“Õ£“Õ£“Õ£“Õ£“Õ£“Õ£“Õ£“Õ£“Õ£“Õ£“Õ£“Õ£“ÕôÀ ÷À$ù¿Döº%jÚ².•ʯ@­È½=¯·¶]º®±r©­Æ¥«…ÉŸªƒË™©ƒÍ”¨ƒÎ§„ÏŒ¦…Љ¦†Ñ†¥‡Ò„¥ŠÒ¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥Ò€¥ÒìÁ õÂ$öÁD÷½!jÚ´)–ͼ(©»»C³®µa¼¨±sÁ¥®Å¡­„Ç›¬ƒÉ–«ƒÊ‘ª„ËŽ©„Ì‹©…͈¨†Î†¨‡Îƒ¨‰Î§ŒÏ€§Ï€§Ï€§Ï€§Ï€§Ï€§Ï€§Ï€§Ï€§Ï€§Ï€§Ï€§Ï€§ÏßÄ òÅ#óÄCôÁiÞÂÁÀ#¬¯¹L¶¦´e½¢²uÀ °€Ã®„Å—­„Æ“­„Ǭ„ÈŒ«…ɉ«†Ê‡«†Ê…ªˆÊƒª‰Ëª‹Ë€ªŒË€ªŒË€ªŒË€ªŒË€ªŒË€ªŒË€ªŒË€ªŒË€ªŒË€ªŒË€ªŒË€ªŒË€ªŒËÚÅ +ëÉ "îÈBïÆhÐÒ +‡±¾/®¥¸T¸Ÿµh¼³v¿›±Á™°„”¯„ï…Ä®…ÅŠ®†Æˆ­†Æ‡­‡Æ…­ˆÇƒ­‰Ç­‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹Ç€¬‹ÇÕÆ ÙÌ + åÏ @ØÕ _½Ö ˆ¥Ä4¦œ·Z¸™µk»—´w½–³¾•²…À‘±…Áޱ…Á‹°†Â‰°‡Âˆ°‡Ã†°ˆÃ…¯‰Ãƒ¯ŠÄ‚¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹Ä¯‹ÄÒÈÓÏ +ÕÔ =ÂÙ c«Þƒ›Î3™”ÄS¦‘¾g¯ºt´·}¹‘µ„¼Ž³†¾Œ²†¿Š²‡Àˆ²ˆÀ†±ˆÁ…±‰Á„±ŠÁ‚±‹Á±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂ€±ŒÂÎÊÎÑ +Æ× +A¯êaæxÚ2ˆ‹ÒL”‰Ë_œˆÆn£ˆÃx¨…À|«ƒ¿®€½°¼ƒ±}¼„²|»†³{»‡´zºˆ´yº‰µx¹‹µx¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶x¹Œ¶ÉËÈÒ "³ß B üZ“ð(j‹æ9w„ßI‚Ø[‹€Ói‘|Ðq–yÍvšvËztÊ}žrÉ qÈ¡pǃ¢oÇ…£nƆ£mƈ¤lÅŠ¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥lÅ‹¥ÄÎ +·Ù&£û=–ÿNú/[†ò?g€ëNq{å[yvàe€qÝl„nÚrˆkÙw‹i×zgÖ~ŽfÕ€eÔ‚dÔ„‘cÓ†‘bÓ‰’aÒ‹“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“aÒŒ“ÿ± ÿ±#ÿ®1:ÿ©>Yí¢KyÙš\—È•r°Å•}µÃ—…¸Á—‹»¿“Œ½¾ŽÀ¼ŒÂ»‰’ĺ†”Źƒ–ƹ™Ç¸€›È¸~žÉ·}¢Ê·|§Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Êÿ± ÿ±#ÿ®1:ÿ©>Yí¢KyÙš\—È•r°Å•}µÃ—…¸Á—‹»¿“Œ½¾ŽÀ¼ŒÂ»‰’ĺ†”Źƒ–ƹ™Ç¸€›È¸~žÉ·}¢Ê·|§Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Êÿ± ÿ±#ÿ®1:ÿ©>Yí¢KyÙš\—È•r°Å•}µÃ—…¸Á—‹»¿“Œ½¾ŽÀ¼ŒÂ»‰’ĺ†”Źƒ–ƹ™Ç¸€›È¸~žÉ·}¢Ê·|§Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Êÿ± ÿ±#ÿ®1:ÿ©>Yí¢KyÙš\—È•r°Å•}µÃ—…¸Á—‹»¿“Œ½¾ŽÀ¼ŒÂ»‰’ĺ†”Źƒ–ƹ™Ç¸€›È¸~žÉ·}¢Ê·|§Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Êÿ± ÿ±#ÿ®1:ÿ©>Yí¢KyÙš\—È•r°Å•}µÃ—…¸Á—‹»¿“Œ½¾ŽÀ¼ŒÂ»‰’ĺ†”Źƒ–ƹ™Ç¸€›È¸~žÉ·}¢Ê·|§Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Êÿ± ÿ±#ÿ®1:ÿ©>Yí¢KyÙš\—È•r°Å•}µÃ—…¸Á—‹»¿“Œ½¾ŽÀ¼ŒÂ»‰’ĺ†”Źƒ–ƹ™Ç¸€›È¸~žÉ·}¢Ê·|§Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Êÿ± ÿ±#ÿ®1:ÿ©>Yí¢KyÙš\—È•r°Å•}µÃ—…¸Á—‹»¿“Œ½¾ŽÀ¼ŒÂ»‰’ĺ†”Źƒ–ƹ™Ç¸€›È¸~žÉ·}¢Ê·|§Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Êÿ± ÿ±#ÿ®1:ÿ©>Yí¢KyÙš\—È•r°Å•}µÃ—…¸Á—‹»¿“Œ½¾ŽÀ¼ŒÂ»‰’ĺ†”Źƒ–ƹ™Ç¸€›È¸~žÉ·}¢Ê·|§Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Ê´{©Êÿ± ÿ²"ÿ®0:ÿ©=Yì£JyØ›[˜Ç•r±Å—{µÃ˜ƒ¸Á™Š»¿•‹¾½‘ŒÁ»ŽŽÃºŠÅ¹‡’Ǹ„•É·‚˜Ê¶€›Ë¶~žÌµ}£Ì³|§Í¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ë¯|¨Ëÿ² ÿ²!ÿ¯/:ÿª}Ö¨D›É¨O¯Ç°S²Å¸Yµ¹³m¿±­}Ƭª†Ë¥§…ÏŸ¦„ј¤„Ó’£„ÕŒ¢†×ˆ¡Š×…¡Ž×ƒ¢–Ö„¤ŸÔ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñ„¢£Ñÿ·ÿ¸ÿ¶%9ÿ±1Zê«<~׬;™Ê­D­É¹E®½¸Y¸²²oÀ¬®~ƨ«…Ê¡©„Í›§ƒÏ•¦ƒÐ¥„ÒŠ¤†Ó†£ˆÔƒ£ŒÔ£‘Ô€¤™Ó€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñ€¦¡Ñÿ¸ÿ¹ÿ·$9ÿ³/Zé­9~Ù´/–̸2©Â½@°³¶]º¬±qÁ§®~Ť¬…È«ƒÊ—©ƒÌ’¨„Χ„ω§†Ð…¦ˆÐ‚¦‹Ñ€¦ŽÑ~¦”Ð}§šÏ}§šÏ}§šÏ}§šÏ}§šÏ}§šÏ}§šÏ}§šÏ}§šÏ}§šÏ}§šÏ}§šÏÿ¹ÿºÿ¹"9ÿµ-Zì³0zÝÀÉÃ!¨µºH´«µb¼¦²sÀ£¯~஄ƙ¬ƒÈ”«„ɪ„Ê‹ª…ˈ©†Ì…©ˆÍ‚¨ŠÍ€¨Î~¨‘Í|©–Í|©–Í|©–Í|©–Í|©–Í|©–Í|©–Í|©–Í|©–Í|©–Í|©–Í|©–Íü»ü¼þ»8ÿ·)Zð½$tßÓ†¹Á*ªª¹O¶¤µe¼ ²t¿ž±›¯„Ö®„Å‘­„Æ­…ÇŠ¬†È‡¬‡É…«ˆÉ‚«ŠÊ€«ŒÊ~«Ê|«’Ê|«’Ê|«’Ê|«’Ê|«’Ê|«’Ê|«’Ê|«’Ê|«’Ê|«’Ê|«’Ê|«’Êñ½ ù¾ú¾7üº%ZçÎhÈÙ ‰­Ã2§¡¸V¸µh»›³u¾™²À˜±„Á“°…¯…ÃŒ¯†Ä‰®†Å†®‡Å„®ˆÆƒ­ŠÆ­‹Æ­ŽÇ}­Ç}­Ç}­Ç}­Ç}­Ç}­Ç}­Ç}­Ç}­Ç}­Ç}­Ç}­ÇßÀõÂöÂ6îÈPÍÜ fµÚˆ¢É6 š¾V°—·j¹•µv¼”´~¾”³„¿²…À±†Áб†Áˆ±‡Â†°ˆÂ„°‰Âƒ°ŠÃ°‹Ã€¯Ã~¯Ã~¯Ã~¯Ã~¯Ã~¯Ã~¯Ã~¯Ã~¯Ã~¯Ã~¯Ã~¯Ã~¯ÃÙÂäÇ ïÈ4ÑÚ Eºéh¦Þ‚˜Ñ7•‘ÈS¡Âe©Ž¾r®¼{²Œºµ‰¸‚·‡¸„¸…·…¹ƒ¶†º‚¶‡ºµˆ»€µ‰»~µŠ¼}´Œ¼|´½|´½|´½|´½|´½|´½|´½|´½|´½|´½|´½|´½ÔÄÖË ÓÔ '½â I©ôe™æ%xŽÜ9†ˆÔO†Ï`—„ÌmœƒÉu Çx¢}Æ{¤zÅ}¦yÄ€§wèvƒ©u„ªtÁ†«sÁ‡«rÀ‰¬q¿‹­q¿‹­q¿‹­q¿‹­q¿‹­q¿‹­q¿‹­q¿‹­q¿‹­q¿‹­q¿‹­q¿‹­ÏÆÐÍ ÀÙ ,¬÷H›ú\ï1k†çBv€âP~~Ý_…{ÙiŠwÕntÓs’qÑw”pÐz–nÏ}—mΙlÍ™k̓šjÌ…›i̇œhˉgÊŒgÊŒgÊŒgÊŒgÊŒgÊŒgÊŒgÊŒgÊŒgÊŒgÊŒgÊŒÊÈÂÒ®æ -ÿA‘ÿ(P‡ú9\óHf|íTnwè^uqäezmák~jßphÞu„fÜx…eÛ{‡cÚ~ˆbÚ‰aÙƒŠ`Ù…Š`؇‹^ØŠŒ^Ö^Ö^Ö^Ö^Ö^Ö^Ö^Ö^Ö^Ö^Ö^ÖÄʱڟÿ (’ÿ7‰ÿ.C‚ÿ=N|ýKWwøV_oó]ehðbjdíinaëoq_éss]èwu\ç{v[æ~wZæ€xYåƒyXå…zXäˆzWä‹{VãŽ|VãŽ|VãŽ|VãŽ|VãŽ|VãŽ|VãŽ|VãŽ|VãŽ|VãŽ|VãŽ|VãŽ|ÿªÿª'ÿ§6/ÿ¢DJúReê—_~Ü“n“Ï’x¥Æ’‚´Ä’‰¶Ã‘ޏÁŽºÀŠ’¼¿‡”½¾„–¿¾‚™À½€›Á½~žÁ¼}¡Â¼{¤Â¼z¨Ã¼y­Ã¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Âÿªÿª'ÿ§6/ÿ¢DJúReê—_~Ü“n“Ï’x¥Æ’‚´Ä’‰¶Ã‘ޏÁŽºÀŠ’¼¿‡”½¾„–¿¾‚™À½€›Á½~žÁ¼}¡Â¼{¤Â¼z¨Ã¼y­Ã¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Âÿªÿª'ÿ§6/ÿ¢DJúReê—_~Ü“n“Ï’x¥Æ’‚´Ä’‰¶Ã‘ޏÁŽºÀŠ’¼¿‡”½¾„–¿¾‚™À½€›Á½~žÁ¼}¡Â¼{¤Â¼z¨Ã¼y­Ã¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Âÿªÿª'ÿ§6/ÿ¢DJúReê—_~Ü“n“Ï’x¥Æ’‚´Ä’‰¶Ã‘ޏÁŽºÀŠ’¼¿‡”½¾„–¿¾‚™À½€›Á½~žÁ¼}¡Â¼{¤Â¼z¨Ã¼y­Ã¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Âÿªÿª'ÿ§6/ÿ¢DJúReê—_~Ü“n“Ï’x¥Æ’‚´Ä’‰¶Ã‘ޏÁŽºÀŠ’¼¿‡”½¾„–¿¾‚™À½€›Á½~žÁ¼}¡Â¼{¤Â¼z¨Ã¼y­Ã¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Âÿªÿª'ÿ§6/ÿ¢DJúReê—_~Ü“n“Ï’x¥Æ’‚´Ä’‰¶Ã‘ޏÁŽºÀŠ’¼¿‡”½¾„–¿¾‚™À½€›Á½~žÁ¼}¡Â¼{¤Â¼z¨Ã¼y­Ã¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Â¸y¯Âÿªÿª'ÿ§5/ÿ£DJúQeé—^~Û”m”Ï’w¦Å’´Ä“ˆ¶Ã’¸ÁºÀ‹‘¼¿ˆ“¾¾…–¿½‚˜Á¼€›Â¼~žÂ¼}¡Ã»{¤Ä»z©Äºy­Äµy®Ãµy®Ãµy®Ãµy®Ãµy®Ãµy®Ãµy®Ãµy®Ãµy®Ãµy®Ãµy®Ãÿ«ÿ«&ÿ¨4/ÿ¤CJùžPeé˜]Ú•i•Í”t¨Å”~´Ä•†¶Â•Œ¹Á‘Ž»¿½¾‰’¿½†”Á¼ƒ—ûšÄº~ź}¡Æº{¥Æ¹zªÆµz¬Æ±z­Ä±z­Ä±z­Ä±z­Ä±z­Ä±z­Ä±z­Ä±z­Ä±z­Ä±z­Ä±z­Äÿ«ÿ«%ÿ©4/ÿ¤BJùŸOfè™\€Ú–f–Ì•q©Å•|´Ä–ƒ·Â—‹ºÀ“Œ¼¾Ž¿½‹Á¼‡“ú„–Ź™Æ¹Ǹ}¡È¸|¦ÉµzªÉ°{«Ç¬{­Å¬{­Å¬{­Å¬{­Å¬{­Å¬{­Å¬{­Å¬{­Å¬{­Å¬{­Å¬{­Åÿ¬ÿ¬$ÿ©3/ÿ¥AJùŸOfè™[Ù˜c–Ì–oªÅ–y´Ã—·Á˜‰º¿•‹½¾‘À¼Âºˆ’Ź…•Ǹ‚˜É·ʶ}¢Ë¶|¨Ë°{©Ê¬|ªÈ¨}¬Å¨}¬Å¨}¬Å¨}¬Å¨}¬Å¨}¬Å¨}¬Å¨}¬Å¨}¬Å¨}¬Å¨}¬Åÿ¬ÿ¬$ÿª2/ÿ¥AKù NgçšYÙ™a—Ë—m«Å—w´Ã™·Áš‡»¿—о½“ŒÁ»ŽŽÄ¹ŠÇ¸†“ɶ‚˜ËµÍ´~£Î±|¦Î¬}¨Ë¨}ªÉ¥~¬Æ¥~¬Æ¥~¬Æ¥~¬Æ¥~¬Æ¥~¬Æ¥~¬Æ¥~¬Æ¥~¬Æ¥~¬Æ¥~¬Æÿ¬ÿ­#ÿª2/ÿ¦@Kø MgçœWÙš^—˘j¬Å™t´Ãš}·Á›…»¾™‰¿¼•ŠÂºŒÅ¸ŒÈ¶‡’Ë´ƒ—γ€Ð²¤Ñ¬~¥Ï¨~§Ì¤©É¡€¬Æ¡€¬Æ¡€¬Æ¡€¬Æ¡€¬Æ¡€¬Æ¡€¬Æ¡€¬Æ¡€¬Æ¡€¬Æ¡€¬Æÿ­ÿ­#ÿ«1/ÿ¦?Kø MgçUÙœ\—Ê™h¬Åšr´Ãœz¸Àœƒ»¾œ‰¿»—‰Ã¹“‹Ç·ŽË´‰Î²„–ѱӬ€¢Ó§€¥Ð¤€§Í ©Êž«Æž«Æž«Æž«Æž«Æž«Æž«Æž«Æž«Æž«Æž«Æÿ­ÿ­"ÿ«1/ÿ§?Kø¡LgçžSÙY—Ê›e¬Åœo´Ãx¸Àž¼½žˆÀ»šˆÄ¸•‰Éµ‹Í²‹Ñ°†•Õ®„ž×§‚¡Ô£‚¤ÑŸ‚§Íœƒ©Êšƒ«Çšƒ«Çšƒ«Çšƒ«Çšƒ«Çšƒ«Çšƒ«Çšƒ«Çšƒ«Çšƒ«Çšƒ«Çÿ­ÿ®"ÿ«0/ÿ§>Kø¡KhçŸQÙŸV—Êœb¬Ål´ÃŸu¸À ~¼½ ‡ÁºˆÆ·˜ˆË³“‰Ï°ŽÔ­‰”Ù¨†Ú¢…¡Õž…¤Ñ›…¦Î™…©Ê—…«Ç—…«Ç—…«Ç—…«Ç—…«Ç—…«Ç—…«Ç—…«Ç—…«Ç—…«Ç—…«Çÿ®ÿ®"ÿ¬0/ÿ§>Kø¢Khè¡OÙ S—Êž_¬ÆŸi´Ã¡r¸À¢|¼½¢„Á¹ ‡Çµœ‡Í²—ˆÒ®“‹ØªŽ“ߢ‹œÜœ‰ Ö™ˆ£Ò—ˆ¦Î•ˆ©Ê”ˆ«Ç”ˆ«Ç”ˆ«Ç”ˆ«Ç”ˆ«Ç”ˆ«Ç”ˆ«Ç”ˆ«Ç”ˆ«Ç”ˆ«Ç”ˆ«Çÿ®ÿ®!ÿ¬//ÿ¨=Kø¢Jhè¢M€Ù¢P—Ë \¬Æ¡e³Ã¤n·À¥x¼¼¥‚¸¤‡È´ ‡Î°ˆÕ«™ŠÝ¥—“曑›Ý– ×”£Ó’Œ¦Ï‘‹¨ËŠ«ÈŠ«ÈŠ«ÈŠ«ÈŠ«ÈŠ«ÈŠ«ÈŠ«ÈŠ«ÈŠ«ÈŠ«Èÿ®ÿ¯!ÿ­//ÿ¨ÿPU÷ŸQhë S{à WÔž_žÊ›k¬Å›u´Ã›~¸À›‡¼½—ŠÀº‘ŒÅ·ŠÊ´„—ϲ€£Ò¨¥Ï£€¨Ë €«Ç­Å›¯Â™‚±¿™‚±¿™‚±¿™‚±¿™‚±¿™‚±¿™‚±¿™‚±¿™‚±¿™‚±¿ÿ¦ÿ§%ÿ¥4%ÿ¡C>ÿžNUø¡Nhì¢Pzà£RŒÕ¡[Ëžf¬Æq´Ãžz¸Àž„¼¼›ˆÂ¹•ŠÇµÎ°†–Ô©‚ Ö¡‚¤Ð‚¨ËšƒªÈ™ƒ­Å—„¯Â–„°À–„°À–„°À–„°À–„°À–„°À–„°À–„°À–„°À–„°Àÿ¦ÿ§%ÿ¥4%ÿ¡B>ÿŸLUø¢Lgì¥Myá¦N‹Õ¤VœÌ¡aªÆ¡l³Ã¢v·À¢€½¼ ‡Ã·šˆÊ²“ŠÒ¬‹”Û ‡ŸØš†¤Ñ—†§Ì•†ªÈ”‡¬Å“‡®Ã’‡°À’‡°À’‡°À’‡°À’‡°À’‡°À’‡°À’‡°À’‡°À’‡°Àÿ§ÿ¨$ÿ¦3%ÿ¢B>ÿ JTù¤Jfí§Jxâ©KŠÖ¨QšÍ¦[©Ç¥e²Ä§p¶À§z¼¼¦ƒÃ¶¢‡Ë¯ˆÖ¥—•æ—žÚ“£Ò‘‹§Í‹ªÉŠ¬ÆŠ®Ã‰°Á‰°Á‰°Á‰°Á‰°Á‰°Á‰°Á‰°Á‰°Á‰°Áÿ§ÿ¨$ÿ¦3%ÿ¢A>ÿ¢HTù¦GfîªGwã­GˆÙ­K˜Ï¬T¦È¬^¯Æ¯h³Â±s¹¾²}À²ª‡Ë¥¢†Õ”œ‹ÞšÚ•¢ÓŒ’¦Î‹©Ê‹Ž«Ç‹­ÄŒŒ¯ÁŒŒ¯ÁŒŒ¯ÁŒŒ¯ÁŒŒ¯ÁŒŒ¯ÁŒŒ¯ÁŒŒ¯ÁŒŒ¯ÁŒŒ¯Áÿ¨ÿ©$ÿ§2%ÿ£A>ÿ¤FSú©Ddï­Cuä±B…Û´D”ÒµJ¡Ë·S«Ê¾_­½·n¸²°|©ª†Ëœ¥„Ò ‡Ø† —Ù‡ž¢Ó‡˜¥Ï‡•¨Ë‡“ªÈˆ‘­Åˆ¯Âˆ¯Âˆ¯Âˆ¯Âˆ¯Âˆ¯Âˆ¯Âˆ¯Âˆ¯Âˆ¯Âÿ¨ÿ©#ÿ§2%ÿ£@>ÿ¦CRû«Acð±?sç·=‚Þ¾;ÖÄ?šÌÅJ¦¼¼]²±µo»ª°}ã«„É–§ƒÎФ†Ó£Õ¥ŸÒ‚¡¥Ï‚œ¨Ìƒ™ªÉ„–¬Æ…”®Ã…”®Ã…”®Ã…”®Ã…”®Ã…”®Ã…”®Ã…”®Ã…”®Ã…”®Ãÿ©ÿª#ÿ¨1%ÿ¤?>ÿ¨@Qü¯>ÿ«;Oÿ´7]ö½3jëÊ1uÜÚ)‚ÄÎ8™²ÁO«§¸c·¡´s¼ž±Á˜¯„Ĭ„ȇª‡Ê€©ŒÌ|©“ÌzªœËy«¦Êz§ªÈ|¢«Ç}ž­Ä}ž­Ä}ž­Ä}ž­Ä}ž­Ä}ž­Ä}ž­Ä}ž­Ä}ž­Ä}ž­Äÿªÿ«!ÿ©.%ÿ§<>ÿ°6Lüº0YïÈ,bÞÙ'mËÜ&†¶Ì<›¨ÁT«Ÿ¹f¶›µt¼™²¿•°„¯…Ć­‡Æ¬‹È}¬È{¬˜Èy­ŸÇw­§Çwª¬Æy¥­Äy¥­Äy¥­Äy¥­Äy¥­Äy¥­Äy¥­Äy¥­Äy¥­Äy¥­Äÿ«ÿ¬ ÿ«-$ÿ«6;ÿ¶/HóÄ(QàÖ&VÌä"q»Ú(ˆªÌA›ŸÃW©™¼i²–·v¹”´€½‘²…À‹±†Á†°ˆÃ¯‹Ä~®Å{®”Åz¯šÄx¯ Äu¯§Ät­®Ãt­®Ãt­®Ãt­®Ãt­®Ãt­®Ãt­®Ãt­®Ãt­®Ãt­®Ãÿ¬ÿ­ÿ¬+$ÿ°/7ú¿%AäÑ EÎä[½é"t­Ú,‰ŸÎE™—ÆZ¤“Àj­‘»v³¸·¶„»‰´†½…²ˆ¿‚±‹Á±ŽÁ|±’Âz±–Áy±›Áx²¡Àt±§Át±§Át±§Át±§Át±§Át±§Át±§Át±§Át±§Át±§Áÿ®ÿ¯ ÿ®($ÿ¸$1êË5ÐâC¿ð^¯è%u Û1‡–ÑH”Ê\žÅj¥‹Ávª‰¾}¯…¼€²‚ºƒ´~¹†¶|¸‰·y·Œ¸w·¹v¶“ºu¶—ºt¶ºs·¤¹s·¤¹s·¤¹s·¤¹s·¤¹s·¤¹s·¤¹s·¤¹s·¤¹s·¤¹ÿ°ÿ± ÿ±%#óÄ'Ôß+ÁïH°÷ `¡ê+s•ß9‚×LˆÑ]•†Ìj›„Ét €Æy¤}Ä}¦z€©wÁƒªuÀ†¬s¿Š­q¿®o¾¯n¾”¯l¾™¯k¾ ¯k¾ ¯k¾ ¯k¾ ¯k¾ ¯k¾ ¯k¾ ¯k¾ ¯k¾ ¯k¾ ¯ÿ³ÿ´ ü¼ÖÖ Ãí0²üJ¢ù%^–í3nŒåAz…ÞOƒÙ^ŠÕjzÒp“vÏu—sÎy™qÌ}›oË€mÊ„žkɇŸiÉŠ hÈŽ¡gÇ’¢eÇ–¢dÇœ£dÇœ£dÇœ£dÇœ£dÇœ£dÇœ£dÇœ£dÇœ£dÇœ£dÇœ£ô¶ +ÿ¸ ÕÌ + ÄÛ +²ü3£ÿH–ü,XŒó;e„ìIo~çUvzã`|ußgqÝm„mÛr‡jÙv‰hØz‹f×}dÖŽcÕ„aÔˆ`Ó‹‘_Ó’^Ò”’\Ò™“\Ò™“\Ò™“\Ò™“\Ò™“\Ò™“\Ò™“\Ò™“\Ò™“\Ò™“Ü»ØÃÄѳè +£ÿ1–ÿ$CŒÿ4P„ûBZ}öObxñZhqî_mkëdqgéitdçnvbæsx`åwy_äz{]ã~|\â}[â…~ZáˆYà‹€Wà€Vß•Vß•Vß•Vß•Vß•Vß•Vß•Vß•Vß•VߕԽÄÈ´Ù +£þ –ÿ,‹ÿ+:ƒÿ:D|ÿHMuÿRSnýWXgú]\c÷b_`ögb]ôkd[óoeYòsgWñwhVñziUð}jTï€kSï„kRî‡lPî‹mOínOínOínOínOínOínOínOínOínOínÆÀ´Ð£ã +–ÿ‹ÿ $‚ÿ0/zÿ?7rÿH>jÿNCdÿTH^ÿYL[ÿ_OXÿdRUÿiTSÿmURþqWPýtXOüxYNû{ZMû[Lúƒ\Kù†]Iù‹^Hø_Hø_Hø_Hø_Hø_Hø_Hø_Hø_Hø_Hø_µÇ¤Ú–ÿŠÿÿ$yÿ3"pÿ;*hÿB1aÿJ6\ÿQ;WÿW?Sÿ]BPÿbDNÿgFLÿlHJÿpIIÿtJHÿwKFÿ{LEÿMDÿƒNCÿ‡NBÿ‹OAÿ‘PAÿ‘PAÿ‘PAÿ‘PAÿ‘PAÿ‘PAÿ‘PAÿ‘PAÿ‘PAÿ‘Pÿ‘ÿ•' ÿ•;ÿ“K/ÿYCÿŒdTûŒkcòŠrqêˆ|}ㆄ‡Þ‚ŠÚ–Ö}”›Óz˜ŸÑxœ¢ÐwŸ¤Îu¢¦Ít¦¨Ír©©Ìq­ªÌp²«Ëp¶«Ëo¼«ÈpÀ«ÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÿ‘ÿ•' ÿ•;ÿ“K/ÿYCÿŒdTûŒkcòŠrqêˆ|}ㆄ‡Þ‚ŠÚ–Ö}”›Óz˜ŸÑxœ¢ÐwŸ¤Îu¢¦Ít¦¨Ír©©Ìq­ªÌp²«Ëp¶«Ëo¼«ÈpÀ«ÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÿ‘ÿ•' ÿ•;ÿ“K/ÿYCÿŒdTûŒkcòŠrqêˆ|}ㆄ‡Þ‚ŠÚ–Ö}”›Óz˜ŸÑxœ¢ÐwŸ¤Îu¢¦Ít¦¨Ír©©Ìq­ªÌp²«Ëp¶«Ëo¼«ÈpÀ«ÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÿ‘ÿ•' ÿ•;ÿ“K/ÿYCÿŒdTûŒkcòŠrqêˆ|}ㆄ‡Þ‚ŠÚ–Ö}”›Óz˜ŸÑxœ¢ÐwŸ¤Îu¢¦Ít¦¨Ír©©Ìq­ªÌp²«Ëp¶«Ëo¼«ÈpÀ«ÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÄqÀªÿ’ÿ–' +ÿ–;ÿ”K0ÿYCÿcTúŽidñpré‹z~≂‰Ü…‰’Ø‚Ž™Ô“žÑ}—¢Ï{›¦Íyž¨Ìw¢ªËv¥¬Êt©­És­®Ér²¯Éq·¯Èq¼¯Âs½®¾t½¯¾t½¯¾t½¯¾t½¯¾t½¯¾t½¯¾t½¯¾t½¯¾t½¯ÿ“ÿ—' +ÿ˜;ÿ•K0ÿ‘YDÿ‘`Uúfdðmsèw€áŒ€‹Ûˆ‡”Õ…œÒ‚‘¡Ï–¦Ì}™©Ë{¬Éy¡®Èw¥°Çv©±Æu­²Æt²³Æs¹³Âuº³¼uº³¸vº³¸vº³¸vº³¸vº³¸vº³¸vº³¸vº³¸vº³¸vº³ÿ”ÿ˜' +ÿ™;ÿ–K0ÿ’YDÿ’^Uú’deð‘jtçsàŽ}ŒÙ‹…–Ôˆ‹žÐ…¤Í‚”©Ê˜­È}œ°Ç{ ²Æy¤´Åx¨µÄv®¶Äu´¶Áv·¶¼w·¶·w·¶³x·¶³x·¶³x·¶³x·¶³x·¶³x·¶³x·¶³x·¶³x·¶ÿ•ÿ™' +ÿ™;ÿ—J0ÿ“XDÿ”\Uú”aeð“gtç‘p‚ßzŽØƒ˜Ò‹Š Î‡§Ë„“¬È—°Æ›³Ä}ŸµÃ{¤·Ây©¹Âw¯¹Âvµ¹¼x¶¸¸x¶¸³x¶·°y··°y··°y··°y··°y··°y··°y··°y··°y··ÿ–ÿš' +ÿš;ÿ—J1ÿ”UDÿ–YUú–^eð•dtç“l‚Þ‘vŽØ™Ñˆ¢ÍŠŽ©É‡’®Æ„–³Äš¶Â~Ÿ¹Â{¤ºÁyªºÁw±º½xµº·xµ¹³yµ¹¯y¶¸¬z¶·¬z¶·¬z¶·¬z¶·¬z¶·¬z¶·¬z¶·¬z¶·¬z¶·ÿ—ÿ›& +ÿ›;ÿ˜I1ÿ–SDÿ˜WUú˜[eð—atç–h‚Þ“rÖ‘{šÐ„£ËŒ«ÇŠ‘±Ä†•¶Ãƒ™¸ÁžºÁ{¤»Ày«¼¿w³¼¸x³»²y´»®yµº«zµ¹¨{¶¸¨{¶¸¨{¶¸¨{¶¸¨{¶¸¨{¶¸¨{¶¸¨{¶¸¨{¶¸ÿ—ÿ›& +ÿœ:ÿ˜I1ÿ˜QDÿšTTú›Xdðš]tç˜c‚Þ–mÖ“wšÐ‘€¤Ê‰¬Æ³Ã‰”·Â„˜ºÀž¼¿{¥¾¿y®¾¹x²¾²y²½­z³¼©{´º¦{µ¹¤|¶¸¤|¶¸¤|¶¸¤|¶¸¤|¶¸¤|¶¸¤|¶¸¤|¶¸¤|¶¸ÿ˜ÿœ& +ÿœ9ÿ™H1ÿ™ODÿœRTûUcñZsç›_Þ™iÖ–ršÏ“|¥Ê‘…­Å´Ã‹’¸Á…–»¿€¾½{¥Á»y¯Á²z°À¬{±¾¨{³½¥|´»¢}µ¹ }¶¸ }¶¸ }¶¸ }¶¸ }¶¸ }¶¸ }¶¸ }¶¸ }¶¸ÿ™ÿ& +ÿ9ÿ™G1ÿ›MCÿžOSûŸRcñ VrèŸ[€ßdŽ×šmšÐ—w¤Ê”­Å’ŠµÂŽ¹¿‡•½½€œÁ»{§Ä³z­Ä«{¯Â¦|±¿£}²½ ~´»žµ¹œ¶¸œ¶¸œ¶¸œ¶¸œ¶¸œ¶¸œ¶¸œ¶¸œ¶¸ÿ™ÿž& +ÿ8ÿšG1ÿœKBÿ MRü¢Pbò£Sqé£Wà¡^ŒØžg˜Ð›q£Ê˜{­Å•…´Â’º¾Š’¿º›Å·|©É«|«Ç¤}®Ã ~°À²½›€³»™µº˜¶¸˜¶¸˜¶¸˜¶¸˜¶¸˜¶¸˜¶¸˜¶¸˜¶¸ÿšÿž& +ÿž8ÿšF2ÿžIBÿ¢JQý¤M`ó¦Poê§T}á¦XŠÚ¤b–Ò¡k¡Ëu«Æš€³Â˜Šº¼ŽÂ¶ƒ™Ë¬}¦Î¢ªÉ€­Äš°À˜‚²¾—ƒ³¼•ƒµº”ƒ¶¸”ƒ¶¸”ƒ¶¸”ƒ¶¸”ƒ¶¸”ƒ¶¸”ƒ¶¸”ƒ¶¸”ƒ¶¸ÿšÿŸ& +ÿž7ÿ›F2ÿŸGAÿ¤HPþ§J_ô©Lmë«P{ã¬T‡Ü«\“Ô©eΦo§È£z°ÃŸ„¸»–‹Ä°Œ™Î ƒ¤Ñ™„©Ê–…­Å”…¯Á“…±¾’…³¼‘…´º‘…µ¹‘…µ¹‘…µ¹‘…µ¹‘…µ¹‘…µ¹‘…µ¹‘…µ¹‘…µ¹ÿ›ÿŸ& +ÿŸ7ÿ›E2ÿ¡E@ÿ¦FOÿªG]ö­Ikí°Lxæ³Oƒß´UŽÙµ_—Óµi Îµv§Á«|¶°Ÿ…Ä¡•’Î”Ž£Ò‹¨ËŠ¬ÆŽŠ¯ÂŽ‰±¿Ž‰²½Žˆ´»Žˆµ¹Žˆµ¹Žˆµ¹Žˆµ¹Žˆµ¹Žˆµ¹Žˆµ¹Žˆµ¹Žˆµ¹ÿ›ÿ & +ÿŸ6ÿœD1ÿ£C?ÿ¨CNÿ­D[ø±Ehð¶Hté»L~ãÀQ‡ßÆ[ŽÖÈk”ƽq¦µ³xµ¥¨Ã”ŸÍ‰œ¢Ò‡”§Ìˆ‘«Ç‰®Ã‰Ž°À‰²¾ŠŒ³¼Š‹´ºŠ‹´ºŠ‹´ºŠ‹´ºŠ‹´ºŠ‹´ºŠ‹´ºŠ‹´ºŠ‹´ºÿœÿ¡& +ÿ 6ÿžB1ÿ¥@>ÿ«@Lÿ±@Yú·Adó½DoîÅIwåÎR|ÝÖbÌÎh’¼Ån¤«»v´š±ÁŠªŠË§Ï€Ÿ¨Ì‚™«Çƒ•­Ä„“¯Á…‘±¿†³½‡Ž´»‡Ž´»‡Ž´»‡Ž´»‡Ž´»‡Ž´»‡Ž´»‡Ž´»‡Ž´»ÿÿ¢& +ÿ 5ÿ ?0ÿ§==ÿ®hÿOCbÿUG]ÿZKYÿ`MVÿePSÿjQQÿnSOÿrTNÿvULþ{VKýWIý„XHüˆYGûZFû“[Eú˜\Eú˜\Eú˜\Eú˜\Eú˜\Eú˜\Eú˜\Eú˜\Eú˜\½½­Ížß’ÿ ‡ÿ~ÿ)uÿ5#lÿ<*dÿC/^ÿJ4XÿP7TÿV:Qÿ[Kÿd@JÿhAHÿlBFÿpCEÿtDDÿxEBÿ}FAÿG@ÿ†H?ÿŒI=ÿ‘J=ÿ‘J=ÿ‘J=ÿ‘J=ÿ‘J=ÿ‘J=ÿ‘J=ÿ‘J=ÿ‘J®Åž×õ†ÿ|ÿ qÿ$gÿ,_ÿ5Yÿ=!TÿE&OÿK)LÿR,HÿW/Fÿ]0Dÿa2Bÿf3@ÿj5?ÿn6=ÿs7<ÿw8;ÿ|9:ÿ:8ÿ†:7ÿŒ;6ÿ’<6ÿ’<6ÿ’<6ÿ’<6ÿ’<6ÿ’<6ÿ’<6ÿ’<6ÿ’<ÿƒÿ„"ÿ…5ÿƒF$ÿU4ÿ^BÿfPÿn\ù|wfóz€oîwˆwêu}çr•‚äpš…ãnžˆál¢‹àk§ßi«ŽÞh¯Ýg´‘Ýfº‘ÜeÁ’ÜeÉ’ÛeÐ’ÒgÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÿƒÿ„"ÿ…5ÿƒF$ÿU4ÿ^BÿfPÿn\ù|wfóz€oîwˆwêu}çr•‚äpš…ãnžˆál¢‹àk§ßi«ŽÞh¯Ýg´‘Ýfº‘ÜeÁ’ÜeÉ’ÛeÐ’ÒgÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÿƒÿ„"ÿ…5ÿƒF$ÿU4ÿ^BÿfPÿn\ù|wfóz€oîwˆwêu}çr•‚äpš…ãnžˆál¢‹àk§ßi«ŽÞh¯Ýg´‘Ýfº‘ÜeÁ’ÜeÉ’ÛeÐ’ÒgÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÎhÒ‘ÿ„ÿ…"ÿ†5ÿ„F$ÿ€U4ÿ„]Cÿ…ePÿƒm]ø€uhò}~qìz†yèwåu“…âr˜‰àpŒßn¢ŽÝl¦Ük«’Ûi¯”Úhµ•Úg»•ÚfÖÚfÌ–ÓhÏ–ÌiÏ•ÈjÏ–ÈjÏ–ÈjÏ–ÈjÏ–ÈjÏ–ÈjÏ–ÈjÏ–ÈjÏ–ÿ…ÿ‡"ÿ‡5ÿ…F$ÿ„T5ÿˆ\CÿˆdQþ‡k^÷ƒriñ€|së}…{çzŒ‚ãw’‡àt—ŒÞrœÜp¡’Ûn¦”Ùlª–Ùj°˜Øi¶™×h½™×hÆšÓhÌšÌjÌ™ÆkÌšÂlÌšÂlÌšÂlÌšÂlÌšÂlÌšÂlÌšÂlÌšÂlÌšÿ†ÿˆ!ÿˆ5ÿ†F%ÿ‡S5ÿ‹[CÿŒbQþŠj^ö‡qjð„ztꀃ}å}Š„âzŠÞv–Üt›’Úq •Øo¥˜Öm«šÕk°›Õj·œÔi¿ÔiÉÌkÊÆlÉÀmɽnɽnɽnɽnɽnɽnɽnɽnÉÿ‡ÿ‰!ÿŠ5ÿˆF%ÿŠR5ÿŽZCÿaQþŽh^ö‹ojï‡xué„~䀈†à|ŒÝy”‘Úvš•ØsŸ™Õp¥›ÔnªžÓm±ŸÒk¸ Òk¡ÍlÇ¡ÆnÇ¡ÀnÇ¡»oÇ¡¸pÇ¡¸pÇ¡¸pÇ¡¸pÇ¡¸pÇ¡¸pÇ¡¸pÇ¡¸pÇ¡ÿˆÿŠ!ÿ‹5ÿ‰F%ÿQ5ÿ’XCÿ’^Qþe^öŽlkï‹uvè‡~€ã„†ˆÞÛ{“”Øx™™ÕužœÓr¤ŸÑpª¢Ðn²£Ðmº¤ÎlÄ¥ÆoĤ¿pÄ¥ºqÄ¥µqÄ¥²rĤ²rĤ²rĤ²rĤ²rĤ²rĤ²rĤ²rĤÿ‰ÿ‹!ÿŒ4ÿŠF%ÿO4ÿ”VCÿ”[Qþ“a^ö‘hkîŽpvè‹{€â‡ƒ‰ÝƒŠ‘Ù~‘—Õz—œÓw Ðt¤£Ïqª¦Îo³§Ín½¨Çp¨¾qÁ©¸rÁ©´sÁ©¯t¨­t§­t§­t§­t§­t§­t§­t§­t§ÿŠÿŒ!ÿ4ÿ‹F&ÿ“N4ÿ–SBÿ—XPþ–^^ö”djî’lvçvጀŠÜ‡ˆ’Ø‚™Ó}•ŸÐyœ£Îu£§Ìr«ªËp´«Èp¿¬¿s¾¬·t¾­²u¾¬®v¿¬ªv¿«¨wÀª¨wÀª¨wÀª¨wÀª¨wÀª¨wÀª¨wÀª¨wÀªÿ‹ÿ ÿŽ4ÿE&ÿ–M3ÿ™PAÿšUOÿšZ]÷˜`iï•huè’p€á{ŠÜ‹„“Ö†ŒšÒ€“¡Î{š¦Ìw¢ªÊt«®Èr¸¯Àt¼¯·u¼°°v¼°«w¼¯¨x½¯¥y¾­£y¾­£y¾­£y¾­£y¾­£y¾­£y¾­£y¾­£y¾­ÿ‹ÿŽ ÿ4ÿD%ÿ˜J3ÿ›M@ÿQNÿW[øœ\hðšctè—jâ“uŠÜ€“ÖŠ‰›Ñ„£Í~˜©Éy¢®Çu­±Ätº³·v¹³¯x¹³ªyº³¦zº²£{»± {¼°Ÿ|½®Ÿ|½®Ÿ|½®Ÿ|½®Ÿ|½®Ÿ|½®Ÿ|½®Ÿ|½®ÿŒÿ ÿ4ÿ’C%ÿšH2ÿJ?ÿŸNMÿ SZù XfñŸ_rêœe}ã˜oˆÜ“z’Ö„›Ðˆ£Ë–«Ç{¡±Åv°µºw·¶¯y·¶¨z¸¶£|¸´ |¹³ž}º²œ~»±›~¼°›~¼°›~¼°›~¼°›~¼°›~¼°›~¼°›~¼°ÿÿ ÿ‘4ÿ”C$ÿ›F1ÿ H>ÿ¢KKÿ¤PXú¤Udó¤Zpë¢a{äŸi…Þšsו~™ÐŽˆ£Ê…“¬Ä} ´½x°¹¯yµ¹¦{¶¸¡}·¶~¸µ›¹´™º³˜€º²—€»±—€»±—€»±—€»±—€»±—€»±—€»±—€»±ÿÿ ÿ‘4ÿ—B$ÿC0ÿ¢E=ÿ¥HIÿ¨LUü©QaõªWlî©]wç¨cá¤m‹Öžy–Ë•ƒ¢À‹Ž­¶ƒš¶®~ª»¤|³¼ž~µºš€··˜¸µ–¹´•‚º³”‚º²“‚»±“‚»±“‚»±“‚»±“‚»±“‚»±“‚»±“‚»±ÿŽÿ‘ ÿ’4ÿ™A#ÿŸA/ÿ¤B;ÿ¨EGÿ¬ISþ®N^õ°Shì²Zrä³a{Û¯n„̦v”Àœ~¢´’ˆ®©Š”· …¤½™‚±¾•ƒ´»“„¶¸’„¸¶‘„¹´„¹³„º²„º²„º²„º²„º²„º²„º²„º²„º²ÿÿ’ ÿ“4ÿš?"ÿ¡?.ÿ§@:ÿ¬BEÿ°FPù³KZð·Rcè»Ykß½drѶl‚Ĭs“¶£z¡ª™ƒ®ž’·”Ÿ¾Ž‹±¿Œ‰³¼Œ‰µ¹Œˆ·¶Œˆ¸µŒ‡¹´Œ‡º³Œ‡º²Œ‡º²Œ‡º²Œ‡º²Œ‡º²Œ‡º²Œ‡º²Œ‡º²ÿÿ’ÿ”4ÿœ=!ÿ£<-ÿª=8ÿ¯@Bÿ´DLõºIUì¿Q\äÆZaØÅboɼi»²p’­ªw  ¡€­“›‹·‰–›½ƒ•¯¿„‘³¼†Žµ¹‡¶·‡Œ·¶ˆ‹¸µ‰Š¹´‰Šº²‰Šº²‰Šº²‰Šº²‰Šº²‰Šº²‰Šº²‰Šº²ÿÿ“ÿ•4ÿž; ÿ¥9+ÿ¬:5ÿ³=?ûºBGñÁHNèÉQRßÑ[YÏÊ`mÁÂg€²¹m¤±tŸ—ª}«Š¤ˆµ —»xŸ¬¾|𳼕´º’¶¸ƒ··„¸µ„¹³…º²…º²…º²…º²…º²…º²…º²…º²ÿ‘ÿ”ÿ–3ÿ 8ÿ¨6)ÿ°82ÿ¸:;öÀ?AìÊGEãÖTEÖÙWXÇÐ^k¸Èd~ªÁkŽœºrœŽ´z¨€®…²v«”¸o«©ºr¥µºwµ¹z™¶·}–·¶~“¹´‘º²€»±€»±€»±€»±€»±€»±€»±€»±ÿ’ÿ•ÿ—3ÿ¢5ÿ«3'ÿ´4/ù¾65íÉ=8âÖH8ÙàMEÍßVV¿Ø\i°Ðb{¡Éh‹“Ão™…¾w¤xºƒ­n¸“³h¸¨¶i²¸¶o§·¶s¡¸µvœ¹´x™º³z–»±{•¼°{•¼°{•¼°{•¼°{•¼°{•¼°{•¼°{•¼°ÿ“ÿ–ÿ™3ÿ¥0ÿ¯0#ýº/)ðÆ2-ãÔ;,Öà@:ËåHLÀáN\³ÝVl¥Ø]z˜ÒeˆŠÎm”}ÉvŸsă§lÀ‘¬g¾¡¯e¾¶¯f´»±k«»±n¥»±q ¼°s½¯tš½®tš½®tš½®tš½®tš½®tš½®tš½®tš½®ÿ”ÿ˜ÿ1ÿ©-ÿ´*õÂ)"äÑ-!Õà3,ÉèX—ñFe‹ëOpåXzzßd‚sÚmˆmÖvhÓ’dЈ•`Ï’˜^Ι\Í©š[ι™YÍÈšZÅÊœ\½É^¸Éž^¸Éž^¸Éž^¸Éž^¸Éž^¸Éž^¸Éž^¸Éžÿš ÿŸÿ¬ø¾ØÖ Èèºô"'®ú-9¢ú6J–ú?X‹õHc‚îRmzè\uräd{màm€hÝu…dÚ~ˆ`؆‹]ÖZÕ˜XÔ¢WÔ®‘VÔ¼VÔÍVÍÑ’WÈÑ“WÈÑ“WÈÑ“WÈÑ“WÈÑ“WÈÑ“WÈÑ“WÈÑ“ÿœ ÿ£ÿµÔÉ +ÈÚ ¹ô¬ÿ#*¡ÿ.;•ÿ8I‹ÿBU‚øL_zòVgsî^mkêdrfçlwbätz_â|}\áƒZß‹‚WÞ“ƒUÝœ…TÜ¥†Rܯ†RÜ»†QÜÌ…RÚÚ…RÚÚ…RÚÚ…RÚÚ…RÚÚ…RÚÚ…RÚÚ…RÚÚ…ÿ  +ÿ­ÔÀÆÎ¹ã «ÿŸÿ$*”ÿ09Šÿ:EÿFOzýQXrøX^kõ^ceòeh`ïlk]írnZëypWê€rUé‡tSçvQæ–wPæžxNå§yMå¯zMä»zLäÅzLäÅzLäÅzLäÅzLäÅzLäÅzLäÅzLäÅzÿ¤ظÄÄ·Óªó žÿ“ÿ'(‰ÿ35€ÿ??yÿJGpÿQNiÿWSbý]W^ûd[Zùj^W÷p`TövbRô|dPóƒeNòŠgLñ‘hKð˜iJðŸjIï§kHï°lGî·lGî·lGî·lGî·lGî·lGî·lGî·lGî·lݯżµÊ¨Ûœÿ ‘ÿ‡ÿ*#~ÿ6-vÿA6mÿHÿk2<ÿp3:ÿu49ÿz57ÿ€66ÿ†75ÿŒ83ÿ”83ÿ˜93ÿ˜93ÿ˜93ÿ˜93ÿ˜93ÿ˜93ÿ˜93ÿ˜9§Ã—Ôˆä€ÿ +rÿgÿ_ÿ Wÿ& Qÿ/Lÿ7Gÿ>CÿE@ÿK=ÿP;ÿU9ÿY7ÿ^!5ÿb"4ÿg#2ÿl$1ÿr%/ÿw&.ÿ}'-ÿ„(+ÿ‹)+ÿ‘)+ÿ‘)+ÿ‘)+ÿ‘)+ÿ‘)+ÿ‘)+ÿ‘)+ÿ‘)ÿvÿs ÿr1 ÿqCÿqP&ÿuY3ÿub?ÿsjIÿptSÿn~[ük‡aùigög–kôeœnòc¡qñb¦sïa«uî`°vî^µwí^»xì]Ãyì\Ëzë[Øzæ]Þzß^áyØ`ãyÕ`ãyÕ`ãyÕ`ãyÕ`ãyÕ`ãyÕ`ãyÕ`ãyÿvÿs ÿr1 ÿqCÿqP&ÿuY3ÿub?ÿsjIÿptSÿn~[ük‡aùigög–kôeœnòc¡qñb¦sïa«uî`°vî^µwí^»xì]Ãyì\Ëzë[Øzæ]Þzß^áyØ`ãyÕ`ãyÕ`ãyÕ`ãyÕ`ãyÕ`ãyÕ`ãyÕ`ãyÿvÿsÿt1 ÿrBÿtO'ÿxX3ÿy`?ÿwiJÿsqTÿq|\ûn†c÷kŽiôi”mòg›qðe tïd¥víbªxìa°yë`µ{ë_¼|ê^Ä}ê]Í}ç]Ù}á_Þ}Ú`à|Ñbá}Ïbá}Ïbá}Ïbá}Ïbá}Ïbá}Ïbá}Ïbá}ÿwÿtÿu1 ÿsBÿwM'ÿ{V4ÿ|_@ÿzgKÿwoUþsz^úqƒeönŒkók“pði™sîgŸwìe¥yëdª{êb¯}éaµ~è`½è_Å€è^Ðâ_Ú€ÛaÞ€Òb߀ËcßÊdßÊdßÊdßÊdßÊdßÊdßÊdßÿxÿuÿv1 ÿtBÿzL'ÿU4ÿ€]@ÿ~eLÿznVþvw_ùtfõpŠmñm‘rîk˜vìižyëg¤|ée©~èc¯€çb¶‚æa½ƒæ`Ç„å_Ó„ÝaÚ„Óc݃ÌdÜ„ÆeÜ„ÅeÜ„ÅeÜ„ÅeÜ„ÅeÜ„ÅeÜ„ÅeÜ„ÅeÜ„ÿyÿvÿw0 ÿvBÿ~K'ÿ‚S4ÿƒ\@ÿ‚dLÿlVýzt`øwhósˆoðptím–yêk|èh£çf©‚åe¯„äc¶…äb¿‡ãaɇàaÕ‡ÕdÚ‡ÍeÚˆÇfÙˆÁgÙˆ¿gÙˆ¿gÙˆ¿gÙˆ¿gÙˆ¿gÙˆ¿gÙˆ¿gÙˆÿzÿxÿy0 ÿxAÿI'ÿ†R3ÿˆZ@ÿ‡bLÿƒiWü~qa÷{{iòw…qîswëp”|èm›€æj¢ƒäh¨†ãf¯ˆâd·ŠácÁ‹áb΋ØdÖ‹ÍfÖ‹ÆgÖŒÀhÖŒ»iÖŒºiÖŒºiÖŒºiÖŒºiÖŒºiÖŒºiÖŒºiÖŒÿ{ÿyÿz0 ÿ|?ÿ…H&ÿŠP3ÿŒX@ÿ‹_LÿˆgWü„naöxjñ{‚ríwŠyés’~æo™ƒäl¡‡âj¨Šàg¯Œße¸ŽÞdÄÛdÒÎgÓÆhÓ¿jÓºkÓµlÓ´lÓ´lÓ´lÓ´lÓ´lÓ´lÓ´lÓÿ|ÿzÿ{0 ÿ>ÿ‰F&ÿN2ÿ‘V?ÿ]KÿŽdVü‰kaö„skð~sì{‡zèvär—†ánŸŠßk§ŽÝh°Üf»’ÛeÊ“ÐhÑ“ÆjД¾kД¸lД³mД¯nÑ“®nÑ“®nÑ“®nÑ“®nÑ“®nÑ“®nÑ“®nÑ“ÿ}ÿ{ÿ|/ ÿƒ<ÿE%ÿ“M1ÿ•S>ÿ”YJÿ’`Uýh`öŠpjð„ytëƒ|æzŒƒâu•ˆßqžÝm§‘Ûi±”Ùg¿–ÔgΗÇk͘½l͘¶n͘°o͘¬pΗ©qΖ¨qÏ–¨qÏ–¨qÏ–¨qÏ–¨qÏ–¨qÏ–¨qÏ–ÿ~ÿ|ÿ~/ ÿ†;ÿ‘C$ÿ–K0ÿ˜P<ÿ˜UHÿ–\Tý“c_÷kiðŠtsë„|æ~‰„áx’‹ÝsœÚn¦•Øj³™ÖhÅ›ÉkË›½nÊœ´oÊœ®qÊœªrË›¦sËš£sÌ™¢t͘¢t͘¢t͘¢t͘¢t͘¢t͘¢t͘ÿÿ}ÿ/ ÿ‰:ÿ”B#ÿ™G/ÿ›L;ÿœRFÿ›XRÿ™_]ø•fhñnrëŠy{僄„à|ŒÜvš“Øo¦™ÒkµÎjÈŸ¾nÈŸ³qÇ ¬rÇ §tÈŸ£uÉž vÊžvË›vËšvËšvËšvËšvËšvËšvËšÿ€ÿ~ÿ€/ ÿŒ8ÿ—@"ÿœD-ÿŸI9ÿ NDÿ UOüž[Zõœbeî—joè‘tyáŠƒÙƒŠŒÏ{••Èu œÃp®¡¾o¿£³rÅ£ªtÅ£¤vÅ£ wÆ¡xÇ ›xÈž™yʘyÊœ˜yÊœ˜yÊœ˜yÊœ˜yÊœ˜yÊœ˜yÊœÿ€ÿÿ/ ÿ7ÿš?!ÿŸB,ÿ¢F7ÿ¤LBÿ¤RL÷¤XWï£_aç fkàšquÕ“|ËŠ…–»{šžµv§¤°t¸§¨v§¡xæyÄ¥šzÅ£˜{Æ¢–{Ç ”{Éž”|É”|É”|É”|É”|É”|É”|Éÿÿ€ÿ‚.ÿ‘6ÿœ< ÿ¡@*ÿ¥D4ÿ¨J?ú©PIòªVRêª]\â©ff×¢orË™xÁ¸ˆŠ—¯• ¨|¢¦£z²©žzÁ©™|Á¨–}æ”~Ĥ’~Å£‘~Ç¡~ÈŸ~Éž~Éž~Éž~Éž~Éž~Éž~Éžÿ‚ÿÿ„. ÿ”5ÿž:ÿ¤>(ÿ¨B2ÿ¬G;ö¯MDí±TMå³[UܰeaΨlqßt€¸–|®†˜¥ˆ‘¡ƒ§—€­«“€¿«‘Á©Â§ŽÃ¥Å£Æ¢ŒÈŸŒÈŸŒÈŸŒÈŸŒÈŸŒÈŸŒÈŸŒÈŸÿ‚ÿÿ†- ÿ–4ÿ 9ÿ¦<&ÿ«@/û°E8ò´K?é¹SFá½\MÓ¶b`Æ­ip»¥q°yŒ¥•‚—›¡“Š™§Œ‡©«ˆ‡¿¬ˆ‡Àªˆ†Â¨ˆ…戅Ťˆ„Æ¢ˆ„È ˆ„ÈŸˆ„ÈŸˆ„ÈŸˆ„ÈŸˆ„ÈŸˆ„ÈŸˆ„ÈŸÿƒÿ‚ÿˆ+ ÿ™2ÿ¢7ÿ©9$ÿ¯=,÷µB3í»I9åÂR>ÚÂXL̺`_¿²go³«n~¨£v‹œ~—’—‰ ‰’–§‚¥«~º¬€Àª‹Â¨‚ŠÃ¦ƒ‰Å¤ƒˆÆ¢„‡È „‡ÈŸ„‡ÈŸ„‡ÈŸ„‡ÈŸ„‡ÈŸ„‡ÈŸ„‡ÈŸÿ„ÿƒÿ‹* ÿœ1ÿ¥4ÿ¬6!þ³:(ó»@-éÃH1áËQ7ÒÇVKÅÀ^]¸¸en¬±l} ªsŠ”¤{•ŠŸ†ž€›’¥y˜¢ªt˜·«w•Á©z‘§|Ã¥}Å£~ŒÆ¡ŠÈŸŠÈŸŠÈŸŠÈŸŠÈŸŠÈŸŠÈŸŠÈŸÿ…ÿ„ÿŽ( ÿŸ1ÿ§2ÿ°3ù¹6"îÂ=&æÍG&ÛÓL5ËÌTI¾Å\[±¾cl¤¸jz˜²q‡Œ¬y“¨‚œw¤£p¢Ÿ§l¢´¨nŸÂ§r™Ã¦u•Ĥw’Æ¢xÇ¡zŽÈŸzŽÉžzŽÉžzŽÉžzŽÉžzŽÉžzŽÉžzŽÉžÿ†ÿ…ÿ‘& +ÿ¡/ÿ«.ÿµ/ô¿2éË:ßÙDÑÚJ3ÄÒRG·ËZY©ÆaiœÀgxºn„„¶vy²€˜o¯Ÿh­£d­²¤eªÅ¤j¢Å£mÆ¢p™Ç¡r–ÈŸt“Éu“Êu“Êu“Êu“Êu“Êu“Êu“Êÿ‡ÿ‡ÿ•$ ÿ¤+ ÿ¯)ú»)ìÈ,ÞØ7ÓáAÉßI0¼ÚQD¯ÓXV¡Í_f”ÈetˆÄl€|ÀtŠq½“i»Œ™b¹œ^º±ž]¸Éžb®ÈŸf¦ÈŸi¡ÉžkÊnšË›n™Ë›n™Ë›n™Ë›n™Ë›n™Ë›n™Ë›n™Ë›ÿˆÿ‰ÿš#ÿ¨' +ÿµ" ñÄ àÕ$ Ñá0Çæ=$½ãF4²àND¦ÜVR™×]aŒÒco€ÏkztÌs„kÊ~‹bÈŒ‘\Èœ•Yȱ–WÈΖ[»Í˜^²Ì™a«Ì™d¦Í™g¢Í˜g Í—g Í—g Í—g Í—g Í—g Í—g Í—ÿŠÿ‹ÿŸ!ÿ® ø½ãÑÐá Åê.ºé:)°çC9¤äJH˜âPVŒàWb€Ý_lvÛhulÚr}cØ~ƒ\ØŒˆWØ‹T×°TØÍŒUËÓWÀÒ‘Z¸Ñ“\²Ñ“_¬Ñ“`ªÑ“`ªÑ“`ªÑ“`ªÑ“`ªÑ“`ªÑ“`ªÑ“ÿŒÿÿ¥ÿµÚÊ ÐáÄë ¸ï,­î7.¢ì@=—ëHJŒéOVèV`vç^ilçepdæpw^ã||Yà‰€VÞ—ƒSݦ„Qܸ…QÝÔ„SÐÚ‡TÆØ‰V¿×ŠX¸Ö‹Y¶Ö‹Y¶Ö‹Y¶Ö‹Y¶Ö‹Y¶Ö‹Y¶Ö‹Y¶Ö‹ÿŽ ÿ—ÿ­Ù¿ ÌÎ Ãë¶õ«õ,!¡ô70–ó@>‹óHJóPTwóW]mó]deðfj_ípnZêzrVç…vSå‘yQäž{Oã¬|Mã½|MãÙ|PØà|QÎàRÆÞSÄÞSÄÞSÄÞSÄÞSÄÞSÄÞSÄÞÿ’ ÿ  Û·ÊÃÀÒ µô©ûŸü,#”ü71ŠüA=ýIGxýQPnýWWeú^\`öfa[ôoeVñxhSï‚kPîŒmNì—oLë£qJê°rIêÁrHêØrKãärNØæsNÕçtNÕçtNÕçtNÕçtNÕçtNÕçtNÕçtÿ– +Þ¬˺½Ç²Ø§ÿœÿ!’ÿ.#‰ÿ9/€ÿB9wÿJBmÿPIeÿVN_ÿ^SZþeVUümZRúu\Oø~_L÷‡aJõ‘bHôœdFó¦eEò³fDòÁgCòÔgEîçgFëègFëègFëègFëègFëègFëègFëègî¢Í´¼¾¯Í¤Þšÿ ÿ$‡ÿ0 ~ÿ;*tÿB2kÿH9cÿN?]ÿUCXÿ]GSÿdJPÿkMMÿrOJÿyQGÿ‚SEÿ‹TCþ”VAýžW@ý¨X?ü³Y>ü¿Z>ûÑZ=ûÛZ=ûÛZ=ûÛZ=ûÛZ=ûÛZ=ûÛZ=ûÛZÒ­½¸®Å¡Õ–÷ ÿ„ÿ&|ÿ1qÿ8"hÿ>)`ÿE/ZÿL3TÿS7PÿZ:Lÿ`Fÿm@DÿtBAÿ{C?ÿƒE=ÿŒF;ÿ•G:ÿžI9ÿ§J8ÿ±J7ÿ¾K7ÿÂK7ÿÂK7ÿÂK7ÿÂK7ÿÂK7ÿÂK7ÿÂK¿³®¾ Í’Þ‰ÿ ÿwÿ# mÿ*dÿ1\ÿ8Uÿ@"PÿH&LÿO)HÿU+Dÿ[-Bÿa/?ÿg1=ÿm2;ÿs39ÿz57ÿ‚65ÿ‹73ÿ”82ÿœ91ÿ¤:0ÿ¯;0ÿ²;0ÿ²;0ÿ²;0ÿ²;0ÿ²;0ÿ²;0ÿ²;°¸ Ç‘Ø„ï|ÿ oÿfÿ^ÿ! +Vÿ)Pÿ2Kÿ:FÿABÿH?ÿN<ÿS9ÿY 7ÿ^!5ÿd"3ÿi#1ÿp$/ÿw%-ÿ~&,ÿ‡'*ÿ()ÿ—)(ÿ *(ÿ£*(ÿ£*(ÿ£*(ÿ£*(ÿ£*(ÿ£*(ÿ£*¡Â‘Ñ‚áxÿlÿ`ÿ WÿOÿHÿ Cÿ)?ÿ1 +;ÿ8 8ÿ>5ÿD2ÿI0ÿN.ÿS,ÿX*ÿ])ÿc'ÿi%ÿo$ÿw"ÿ~!ÿ…ÿÿ‘ÿ‘ÿ‘ÿ‘ÿ‘ÿ‘ÿ‘ÿhÿd#ÿ_/ÿ^@ÿcKÿgT%ÿh]/ÿfg9ÿdrAÿb}Hÿ`‡Nÿ]Rÿ[˜VÿZžYÿX¤[ÿWª]þV°_ýUµ`üT¼aüTÄbûSÍcùRÜcöRæcñSêcìTícæVïbàWðcàWðcàWðcàWðcàWðcàWðcàWðcÿiÿe#ÿ`.ÿ_@ÿfIÿjS%ÿk\0ÿie:ÿgpBÿd{Iÿb…Oÿ_ŽTÿ]–Xÿ[[ÿZ£]ýX©_üW¯aûVµbúU¼dúUÄeùTÎe÷SÝfóSæfîUêfçVíeáXîeÛYïfÛYïfÛYïfÛYïfÛYïfÛYïfÛYïfÿjÿf"ÿa.ÿ`?ÿiHÿmQ&ÿn[0ÿld:ÿinCÿgyKÿdƒQÿaŒVÿ_•Zÿ]œ]ý[¢`ûZ©búY¯dùXµeùW¼gøVÅh÷UÏhõTàiðUæiéWêhâYìhÛZíiÓ[îiÓ[îiÓ[îiÓ[îiÓ[îiÓ[îiÓ[îiÿjÿg"ÿb.ÿc>ÿlFÿqP&ÿrY1ÿpb;ÿlkDÿivLÿgRÿd‹Xÿa“\ý_›`û]¡bú[¨eùZ®gøYµh÷X¼iöWÆjõVÑkòUálìWçläYékÜ[ëkÔ\ìlÍ]ílÍ]ílÍ]ílÍ]ílÍ]ílÍ]ílÍ]ílÿkÿh!ÿc-ÿg<ÿpEÿtN&ÿvW1ÿt`;ÿpiEÿmsMÿj~TÿfˆZþc‘^ûa™bù_ eø]§hö\­jõZ´lôY½môXÇnòWÔoîWâoæYæoÝ\énÓ]êoÍ^ëpÇ_ëpÇ_ëpÇ_ëpÇ_ëpÇ_ëpÇ_ëpÇ_ëpÿlÿi!ÿe-ÿk:ÿtCÿyL&ÿzU1ÿy]<ÿufEÿppNÿm{Vÿj…\üfaúd—e÷aŸhö_¦kô]­mó\´oòZ½qñYÉrïXÚsèZãsÞ]ærÓ^èsË_ètÆ`ètÁaètÁaètÁaètÁaètÁaètÁaètÁaètÿmÿj ÿf-ÿo8ÿxAÿ}J%ÿR1ÿ~[<ÿ{cFÿvlOÿqwWþm‚^ûjŒcøf•hõdlóa¤oò_¬qð]´sï\¿uî[Ëvê[Ýwà]ãvÓ`åwÊaåxÄbåx¾cåxºdåxºdåxºdåxºdåxºdåxºdåxºdåxÿnÿk ÿh,ÿs6ÿ}?ÿ‚G%ÿ„P0ÿ„X;ÿ`Eÿ|iOÿvrWþq}_ùmˆeöj’jóf›oñc£rïa«uí_µxì]Áyì\Ðzã]ß{Ôaâ{Êbâ|Âdá}¼eá}·fâ|³gâ|³gâ|³gâ|³gâ|³gâ|³gâ|³gâ|ÿpÿlÿi,ÿw4ÿ<ÿ‡E$ÿŠM/ÿ‰U:ÿ‡]Eÿ‚eOÿ|nXývx`ør„gõmŽmñi˜rïf¡vìc«yë`¶|é^Ä~ç^ØØaß~Êc߀ÁeÞ¹gÞ´hÞ°i߀¬i߬i߬i߬i߬i߬i߬ißÿqÿmÿk+ÿ{2ÿ†:ÿŒC"ÿK-ÿS8ÿZCÿ‰bMÿƒiWý|r`øvgôqŠnðl•tíhŸyêdª}èa·€æ_È‚ÝaÛƒÌdÜ„ÀfÜ…¸hÛ…±jÛ…­kÜ„©l݃¦lÝ‚¦lÝ‚¦lÝ‚¦lÝ‚¦lÝ‚¦lÝ‚¦lÝ‚ÿrÿoÿo)ÿ0ÿŠ8ÿ‘A!ÿ”J,ÿ•Q6ÿ“XAÿ`Kû‹gUõ„o_ð}zgëw…oçrvãm›|Þh¦Úe³„ÕcĆÏdÚ‡ÁgÙˆ·i؉¯k؉ªmÙˆ¦nÚ‡£nÚ† oÛ… oÛ… oÛ… oÛ… oÛ… oÛ… oÛ…ÿrÿpÿr(ÿ‚. ÿŽ6ÿ•@ÿ™H)ÿ™O4ÿ˜U>ú–\Iô’dSíŒk]ç…vfáoÛxŒwÓr–~Ím¡„Éj­‰Åh»‹ÁhÐŒ¶kÕ®mÕ§oÖŒ£pÖ‹ŸqØŠqÙ‰›rÚ‡›rÚ‡›rÚ‡›rÚ‡›rÚ‡›rÚ‡›rÚ‡ÿsÿpÿu&ÿ†, ÿ‘6ÿ™@ÿœF'ÿL1üR;ôœYEí™`Oæ”hYߎscÕ†}n͇xÆx‘€Às›‡»o§Œ¶m´³lÈ‘¬nÒ‘¥pÓ rÔœsÕ™tÖŒ—tØŠ–uÙ‰–uÙ‰–uÙ‰–uÙ‰–uÙ‰–uÙ‰–uÙ‰ÿtÿqÿx$ÿ‰+ ÿ•5ÿœ>ÿ C$ÿ¢I.÷£P7ï¢VAç¡]JßgTÔ•obËxnÃ…‚y»Œ‚µy–‰¯u¡Žªr¯’¦qÁ”¡sДœtÑ’˜vÒ‘–wÓ”wÕ’wÖŒ‘xØŠ‘xØŠ‘xØŠ‘xØŠ‘xØŠ‘xØŠ‘xØŠÿuÿrÿ{#ÿŒ) ÿ˜4ÿŸ<ÿ£A"û¦F*ò¨M3ê©T<â©[D×£cSÌšlb“unº‹~y²…‡ƒª‘Ф{œžxª”šv»–—wÏ–”yД‘zÑ’zÓŽzÔzÕŒz׋Œz׋Œz׋Œz׋Œz׋Œz׋Œz׋ÿuÿsÿ}!ÿŽ) +ÿ›4ÿ¢9ÿ¦>÷ªD&î®J.å±R5ܯYAϨaRÅ ia»˜rn±‘zy©‹ƒƒ¡…‹š˜‘”~¥–|¶˜}Í—Œ~Ï•Š~ГŠ~Ò‘‰~Ó‰}Õˆ}Ö‹ˆ}Ö‹ˆ}Ö‹ˆ}Ö‹ˆ}Ö‹ˆ}Ö‹ˆ}Ö‹ÿvÿtÿ€ ÿ‘( ÿž3ÿ¤7þª;ó¯A"ê´H(â¹P.Ô´V@É­_Q¾¥g`´žomª—wx¡‘€‚™ŒŠ‹‘‡•‘‹„¢–†ƒ²™ƒ„˘„ƒÎ–„ƒÐ”„‚Ò’„Ó„ÔŽ„€ÖŒ„€ÖŒ„€ÖŒ„€ÖŒ„€ÖŒ„€ÖŒ„€ÖŒÿwÿtÿ‚ÿ”'ÿ 2 ÿ§4ú®8ïµ=æ¼F!Ü¿L,ιT?ñ]P·ªe_­¤ll£tw™˜|‘“†Š‰’‘‚ŒŸ–}Н˜z‹Ç˜|‰Î–}ˆÐ”~†Ò’…Ó„ÔŽ€ƒÖŒ€ƒÖŒ€ƒÖŒ€ƒÖŒ€ƒÖŒ€ƒÖŒ€ƒÖŒÿxÿuÿ…ÿ—&ÿ£/ ÿ«0õ³4ë»:âÄDÕÄH+ȽS=¼¶[N±°c]¦ªjjœ¤qv’Ÿz€‰šƒ‰–Žy“œ•t’¬—q’Øs‘Ï–vŽÐ”x‹Ò‘yŠÓzˆÕŽ{‡ÖŒ{‡ÖŒ{‡ÖŒ{‡ÖŒ{‡ÖŒ{‡ÖŒ{‡ÖŒÿxÿvÿˆÿš%ÿ¦+ þ¯, ñ¹/æÃ6ÝÍ<ÎÈG)ÂÂQ;¶¼YLª¶a[Ÿ°hh•«ot‹¦w~¢€†yŸ‹qœ™’l›©•i›¿–k™Ð”n”Ñ’q‘Ò‘sÔuÕv‹Ö‹v‹Ö‹v‹Ö‹v‹Ö‹v‹Ö‹v‹Ö‹v‹Ö‹ÿyÿxÿŒÿž#ÿª&ø´%ëÀ(áÍ0ÔÒ7ÈÍE'»ÈO9¯ÂWJ£½_X˜¸fe³mqƒ¯u{z«~ƒq¨‰Šj¦–e¥§’b¦½’c£Ò‘gÓj˜Ôm•Õn’ÖŒpØŠpØŠpØŠpØŠpØŠpØŠpØŠÿ{ÿ|ÿÿ¢!ÿ® ò»åÊÚÛ$ÌÙ5ÀÓC$´ÎM6¨ÉUGœÄ]U‘Àdb†¼km{¸svrµ|~j³‡…c±•Š^°¥Œ[±¼[¯Õ_§Õc¡ÖŒfœ×‹h™ØŠj–Ùˆj–Ùˆj–Ùˆj–Ùˆj–Ùˆj–Ùˆj–Ùˆÿ|ÿÿ•ÿ§üµëÆÚÛÍà%Ãß6¸ÛA!¬ÕK3 ÑSC”ÍZQ‰Éb]~ÆigtÃqpkÁ{xd¿†~]¾”‚X½¥…V¾»†U½Û†X³Ú‡\«Ú‡_¦Ú‡a¡Û†cÛ…cÛ…cÛ…cÛ…cÛ…cÛ…cÛ…ÿ~ÿ‡ÿšÿ­Ú¾ +ÑÍ +ËäÁä%·ã5­á@!£ÞI/—ÛR>‹×YK€Ô`WvÑhamÏpieÍzp^̆uXÌ•yȚ{Qͼ|PÌâ|SÁàU·ß€X±ÞZ«Þ\¦ß\¦ß\¦ß\¦ß\¦ß\¦ß\¦ßÿ€ÿŽÿ¢ ÛµÎÁÆÐ ¾é´é% +ªè3 æ>%–åG2‹ãN?€áUIvà]SmÞf[eÝoa^ÝzgX܆kSÜ•oPݦqMÞ»rMßáqNÑçtPÆæwR¾äxS¸äyU²ãzU²ãzU²ãzU²ãzU²ãzU²ãzU²ãzÿƒÿ– Ý«͸ÂÄºÔ ±ï§î% žî3”í='ŠìF3€ëN>vëUGlê[NdêcU]êmZXêw^SêƒbNê‘eJë¡gGì³iFíÐiHæèiKÙëjLÏìmNÇëoOÀêpOÀêpOÀêpOÀêpOÀêpOÀêpOÀêpÿ‰ é бÁ¼·É®Ú ¤õ›õ'’õ4ˆö>'öG2vöN;löTBdöZH]öbMWökQRöuUM÷€XHøZEø›\Bø«^A÷¾_@÷ß`Cîì`Gãñ_HÛñaIÒòcIÒòcIÒòcIÒòcIÒòcIÒòcIÒòcþ•ԩµµÁªÏ ç ˜ýþ)†ÿ5~ÿ@%tÿF-kÿL5cÿR:\ÿY?Vÿ`CPÿhGLÿqJGÿ{LCÿ‡N@ÿ”P>ÿ¡R=ÿ°T;ÿÃU;þáU<ùðU@ðôUCç÷TCç÷TCç÷TCç÷TCç÷TCç÷TCç÷Tۡ۵º¨ÇÖ“ü‹ÿƒÿ+zÿ5qÿ<hÿB&`ÿI,YÿO1SÿV5Nÿ]8Iÿe;Eÿm=Aÿv?>ÿ€A;ÿ‹C9ÿ˜E8ÿ¤F6ÿ²G5ÿÄH5ÿÝI4ÿðI7þøI7þøI7þøI7þøI7þøI7þøI7þøIÉ«¶´¨Á›ÏŽß‡ÿ~ÿuÿ' lÿ/dÿ7\ÿ>VÿE"PÿK%KÿR(FÿX+Aÿ_->ÿg/;ÿo18ÿx36ÿ‚43ÿ61ÿ™70ÿ¥8/ÿ²:.ÿÀ;.ÿÓ;-ÿë<-ÿë<-ÿë<-ÿë<-ÿë<-ÿë<-ÿë<¸°¨¼šÉŒÙõyÿnÿeÿ^ÿ' Wÿ0Qÿ7Kÿ>FÿEAÿL=ÿR9ÿX6ÿ_!4ÿf"1ÿn$/ÿw%-ÿ€&+ÿŒ()ÿ—)(ÿ¢*'ÿ­+&ÿ¹,&ÿÉ-&ÿÉ-&ÿÉ-&ÿÉ-&ÿÉ-&ÿÉ-&ÿÉ-ª·šÅ‹Ó}âuÿiÿ _ÿWÿPÿIÿ&Dÿ. ?ÿ6 ;ÿ= 7ÿC3ÿI0ÿO.ÿU,ÿ[*ÿb'ÿi%ÿr#ÿ{!ÿ†ÿ‘ÿœÿ¥ÿ°ÿ°ÿ°ÿ°ÿ°ÿ°ÿ°œÀŒÎ|ÞpõeÿZÿQÿ IÿCÿ=ÿ8ÿ&4ÿ-0ÿ3-ÿ9*ÿ>'ÿC%ÿI #ÿN !ÿT ÿZ +ÿa +ÿi ÿr ÿ| ÿ† ÿÿšÿšÿšÿšÿšÿšÿšÿ\ÿW&ÿQ2ÿN<ÿWEÿ[Nÿ\X"ÿ[c+ÿYo2ÿWz8ÿT…=ÿRAÿP™EÿO GÿN§IÿM®KÿL´LÿK»MÿJÃNÿIÍOÿIÝPÿHéPÿHòPûIöPöKùPðMûOêOûPçOüPçOüPçOüPçOüPçOüPçOüPÿ\ÿX&ÿR2ÿQ:ÿZCÿ_Mÿ_W#ÿ^a+ÿ\m3ÿYy:ÿW„?ÿTŽCÿR—GÿPŸIÿO¦KÿN­MÿM´OÿL»PÿKÃQÿKÎRÿJßRÿIêSýJòSøKöSñMøRëOúRåPúSâQúSâQúSâQúSâQúSâQúSâQúSÿ]ÿY&ÿS1ÿT9ÿ]BÿbKÿbU#ÿ`_,ÿ_k4ÿ\w;ÿY‚@ÿVŒEÿT•HÿRžKÿQ¥NÿP¬OÿO³QÿN»RÿMÄSÿLÏTÿKàUÿKëUúLòUôMöUìPøTæQøUßRùVÜSùVÜSùVÜSùVÜSùVÜSùVÜSùVÿ^ÿZ%ÿT1ÿX7ÿa@ÿeIÿfS#ÿd]-ÿbh5ÿ_t<ÿ\BÿYŠGÿV“KÿTœNÿS¤PÿQ«RÿP³TÿOºUÿNÄVÿMÐWÿMâXüLíXöNòXîPõXæSöXßT÷Y×UøYÓUøYÓUøYÓUøYÓUøYÓUøYÓUøYÿ_ÿ[%ÿU0ÿ\4ÿe=ÿjGÿkQ$ÿiZ-ÿfd6ÿcp=ÿ_|Cÿ\‡IÿY‘MÿWšPÿU¢SÿSªUÿR²WÿQºYÿPÅZÿOÒ[üNä[øOí\ðQò[çTô[ÞUõ\ÕVö]ÎX÷]ËX÷]ËX÷]ËX÷]ËX÷]ËX÷]ËX÷]ÿ`ÿ\$ÿV/ÿ`2ÿj;ÿoDÿpN#ÿoW-ÿka6ÿgl>ÿcxEÿ`ƒKÿ\ŽOÿZ˜SÿW VÿV©YÿT±[ÿSº\þQÆ^üPÖ_ùPç_òRî_çUñ_ÝWò`ÒXóaËYõbÅ[õbÃ[õbÃ[õbÃ[õbÃ[õbÃ[õbÃ[õbÿaÿ]#ÿZ-ÿe/ÿo8ÿtAÿvK#ÿuT-ÿq]6ÿlg?ÿhsFÿdLÿ`ŠRÿ]•VÿZžYÿX§\þV°_ýTº`üSÇbùRÜcóSècéUîcÞXðdÐZñeÈ\òfÂ]òf½^òf»^òf»^òf»^òf»^òf»^òf»^òfÿbÿ^#ÿ^*ÿi-ÿt5ÿz>ÿ|H"ÿ{Q,ÿxZ6ÿsc?ÿmmGÿizNÿd†Tÿ`‘Xÿ]œ\ýZ¥`ûX°búV»eøUÊfõTàgìVêgßZígÐ\ïiÆ]ïj¿_ïj¹`ïjµaïj³aïj³aïj³aïj³aïj³aïj³aïjÿcÿ`"ÿb'ÿn*ÿy2ÿ<ÿ‚F!ÿ‚O+ÿX5ÿ{`>ÿuiGÿotNûjUøfŒ[õb—_ó_¡cð\«fîZ¶iìYÄjéXÚkáZêkÐ]ìmÅ_ìn¼aëo¶bìo±cìn­dìn«dím«dím«dím«dím«dím«dímÿdÿa"ÿf%ÿr'ÿ~0 ÿ…;ÿˆEÿˆM)ÿ†U3ÿ‚^=û}fFövpNòr|Uîm‡\êh’bædœfãa¦jà_²mÝ]¿oÚ]ÓpÒ^êpÄ`érºbès³dès­eés©fér¦gêq¤gêp¤gêp¤gêp¤gêp¤gêp¤gêpÿeÿb!ÿi#ÿw%ÿ‚/ ÿŠ9ÿŽCÿL&ÿS0ùŠ[:ó…cDílMèywUãt‚]ÞncÙi—iÓf¡nÏc¬qËa¹tÈaÊuÅaåv¹dæw°fåwªhæw¥iæv¢jçuŸjèsžkésžkésžkésžkésžkésžkésÿfÿc!ÿm ÿ{#ÿ‡. ÿ8ÿ“Aÿ•J#ú”Q-ó‘Y7ì`Aå‡iJßtSÖz~]ÏtˆeÊo‘lÅk›qÁh¦u½f²xºeÂz·eÝ{®hã{§jã{¢käzžlåx›måw™mçv˜nçu˜nçu˜nçu˜nçu˜nçu˜nçuÿgÿd ÿpÿ~"ÿ‹, ÿ“7ÿ˜@ýšH ôšN)ì˜U3å•]<ÝfGÓˆoSËy^Å{ƒf¿uŒn¹q–tµn¡x°k¬|­j»~ªjÒ¤là~žmá}šoâ|—pãz•päy“påw“qæw“qæw“qæw“qæw“qæw“qæwÿhÿd ÿsÿ ÿŽ+ÿ—5ÿ>øŸDï K%çŸR-ßZ7Ó•cFÊŽlSÇu^»~gµ{ˆo¯w‘uªsœz¥p¨~¡o¶žoÊ‚›pÞ–q߀“rá~‘sâ|sãzŽsäyŽsåxŽsåxŽsåxŽsåxŽsåxŽsåxÿiÿfÿvÿ„ÿ’*ÿ›4 þ ;ó£Aê¦H â§O'Ø¢V6Ìš`EÓiR»r^³†zg¬„o¦}v y˜|›v£€—t±ƒ”tÅ„‘u݃vÞvà‹wá}Šwâ{‰väz‰väy‰väy‰väy‰väy‰väy‰väyÿiÿiÿxÿ‡ÿ•(ÿž2 +ú¤7ï¨=æ¬DÝ­K$ЦT5ÆŸ^D¼™fR´’o]¬Œwg¤‡€ož‚Šw˜~”}’{ z­„ŠyÀ…ˆzÜ„‡zÝ‚†z߀†zà~…zâ|…yãz…yäy…yäy…yäy…yäy…yäy…yäyÿjÿkÿ{ÿŠÿ˜&ÿ¢0õ¨3 ë®9â³AÖ±G#Ê«R4À¤\C¶ždQ­˜l\¥’tf}o–ˆ†v…‘}Š‚œ‚…€ª…¼†€€Û…€€Ýƒ€Þ€~à€}á}€}ã{€|äz€|äz€|äz€|äz€|äz€|äzÿkÿmÿ~ÿÿ›$þ¥,ñ¬/ç³4 ݺ:еF!ůQ2º©ZB°£bO§j[ž˜re–“znƒvˆ‹Ž|‚ˆ™|†§…y†¹†w‡×…x…݃zƒÞz‚à{á}|€ã{|ãz|ãz|ãz|ãz|ãz|ãzÿkÿpÿÿÿŸ"ú©&í±)âº/Ö¿6ʺD ¿´O1´®X@ª¨`N¡£gZ˜žodšwmˆ–€u€’‹{z–€tޤ„q¶…oŽÑ…q‹Ýƒs‰ßu‡à~v…á}w„ã{wƒäzwƒäzwƒäzwƒäzwƒäzwƒäzÿlÿsÿ…ÿ”ÿ¢õ­ ç¸!ÝÃ&ÐÃ4 ľB¹¹M/®³V>¤®^Lš©eW‘¥mb‰¡uk€~ryšˆyr—”~m–¢‚i•³„g–̓i“Þ‚l߀oŒá~pŠâ|rˆãzr‡äyr‡äyr‡äyr‡äyr‡äyr‡äyÿmÿvÿˆÿ˜ÿ§ï³âÀÕÊÉÇ2 ¾Ã@³¾K,¨ºT<žµ\I”°cUЬk_©rhy¥{or£…vk ‘{fŸŸbŸ±`ŸÊ€bœàe—á~h“â|jã{läymŒåxmŒåxmŒåxmŒåxmŒåxmŒåxÿnÿ{ÿÿú¬Ú» ÕÉ ÍÎÂÌ/ +·É=¬ÅI)¡ÀR8—¼ZF¸aQƒµh[z²pdr¯ykk¬ƒqd«v_©žz[©¯|YªÉ|Z§â{^ ã{a›ãzc—äyf”åwf’æwf’æwf’æwf’æwf’æwf’æwÿpÿ€ÿ’ò£ Ù³ Ͼ ËÌ ÄÓºÒ,°Ï;¥ÌF&šÈP5ÄXA…Á_M|¾gVs¼o^k¹wed¸‚k^¶ŽpYµsUµ®uT¶ÈuS³çvW«ævZ¤æv\ çu_œçt`šèt`šèt`šèt`šèt`šèt`šètÿrÿ† û˜ Ù©εÆÁÀÏ ºÛ±Ú)§Ø7œÔD!’ÑM0‡ÎU<}Ë]GtÉePlÇmWeÅv^^ÄcYÃŽhTÃkQîlOÄÈmNÂímP¸ëoS°ëpU«êpX¦ëpY£ëpY£ëpY£ëpY£ëpY£ëpY£ëpÿwÿÞ Ï®Ĺ»ÅµÓ +®á¦á)à7“ÞB‰ÜL)ÚT5u×\?mÕdHeÓlO_ÒvTYÒYTÑŽ]PÑ`MÒ°bKÓÉbJÒíbKÈòfM¿ñhO¸ðiQ²ðiR¯ïiR¯ïiR¯ïiR¯ïiR¯ïiR¯ïiÿ +í–Ò¦IJ¹¼°É©Ø +¡ç™ç* ç7‡æB}åJ)täQ3kãY:dâaA^âkGXâuKSá€OOâSKâ›UIã¬WGäÄWFãéWFÝöYGÐ÷\IÈ÷^JÁö`K½ö`K½ö`K½ö`K½ö`K½ö`K½ö`ÿ‰ÙžÇ¬¹¶®Á¥Îœä •ïï, …ï9|ïAsïI'jîP/bîW5\î_:Vîh?RîqBMï|FIï‰IFð–KCð¦M@ñ¹N?òÛO>ð÷NBæûOCÝûQDÔüSEÏüTEÏüTEÏüTEÏüTEÏüTEÏüTá•˦»°®»¢È˜Õø‰ø ‚ø. yù7pù?hùF"`úM(ZúT-Tú\1Oûe5Kûm8Güw;Cüƒ=?ý?<ýŸA:þ¯C8ÿÆD7ÿêE6üýE;òÿD>êÿD>æÿF>æÿF>æÿF>æÿF>æÿF>æÿFП½¬®µ¢Â•ÏŠÝ„ÿ{ÿtÿ* lÿ3dÿ;]ÿCWÿJ QÿQ$LÿX'Hÿ`*Dÿh,@ÿq.<ÿ{19ÿˆ25ÿ–43ÿ¤61ÿ¶7/ÿÐ8.ÿï9-ÿÿ91ÿÿ93üÿ93üÿ93üÿ93üÿ93üÿ93üÿ9Á¨¯±¢½”ʇØ}óvÿmÿeÿ$^ÿ- +Xÿ6Rÿ=LÿEHÿLCÿS?ÿZ<ÿa 8ÿi!5ÿr#1ÿ}%.ÿŠ&+ÿ™()ÿ§)'ÿ¹+&ÿÒ,%ÿï,$ÿÿ-$ÿÿ-$ÿÿ-$ÿÿ-$ÿÿ-$ÿÿ-$ÿÿ-±®£¹”ƆÓyáqÿgÿ_ÿWÿQÿ&Kÿ.Fÿ6 +Aÿ= =ÿD9ÿK6ÿQ2ÿX/ÿ_,ÿg)ÿq&ÿ|#ÿ‰ ÿ˜ÿ¦ÿ·ÿÊÿæÿðÿðÿðÿðÿðÿ𤵕†ÏwÞkôbÿYÿ QÿJÿDÿ?ÿ&:ÿ-6ÿ42ÿ:.ÿ@+ÿF(ÿL %ÿR "ÿY + ÿb ÿk ÿv ÿ„ÿ’ÿ ÿ­ÿºÿÃÿÃÿÃÿÃÿÃÿ×¾†ÌwÛiç\ýTÿKÿCÿ =ÿ7ÿ2ÿ.ÿ$*ÿ*%ÿ/"ÿ5ÿ:ÿ?ÿEÿKÿRÿZÿbÿlÿw ÿ„ ÿ ÿœ ÿ¢ ÿ¢ ÿ¢ ÿ¢ ÿ¢ ÿ¢ÿP ÿK*ÿD6ÿG:ÿJ?ÿNIÿOTÿO`ÿMl$ÿJy*ÿH….ÿF2ÿDš4ÿC¢7ÿBª8ÿA±:ÿ@¹;ÿ@Á<ÿ?Ë=ÿ>Ü>ÿ>è>ÿ=ó>ÿ=û?ÿ>ÿ>ÿ@ÿ>úCÿ=ôDÿ>îFÿ?îFÿ?îFÿ?îFÿ?îFÿ?îFÿ?ÿP ÿK*ÿE5ÿJ8ÿM=ÿQHÿRRÿQ^ÿOj%ÿMw+ÿJƒ/ÿHŽ3ÿF˜6ÿD¡8ÿC©:ÿB°<ÿB¸=ÿAÁ>ÿ@Ë?ÿ@Ü@ÿ?é@ÿ?ô@ÿ>ýAÿ@ÿ@ýBÿ@öEÿ@ðFÿAéHÿAéHÿAéHÿAéHÿAéHÿAéHÿAÿQÿL)ÿG4ÿM6ÿQ;ÿUFÿVPÿU\ÿRh&ÿPt,ÿM€1ÿJŒ5ÿH—8ÿF ;ÿE¨<ÿD°>ÿC¸?ÿCÁAÿBÌAÿAÞBÿAëCÿ@õCÿ@ýCÿCÿCøFÿBðHÿCêIÿDãJÿEãJÿEãJÿEãJÿEãJÿEãJÿEÿRÿM)ÿJ2ÿP3ÿU9ÿYCÿZMÿYX ÿVd'ÿSq-ÿP}3ÿM‰7ÿK”:ÿIž=ÿG¦?ÿF®AÿE·BÿDÁDÿDÌEÿCßEÿBíFÿB÷FÿCýFùFÿFðIÿFéKÿGâLÿHÛMÿHÛMÿHÛMÿHÛMÿHÛMÿHÛMÿHÿSÿN(ÿN/ÿT0ÿZ6ÿ^@ÿ`Jÿ^U ÿ[`(ÿXm/ÿTy4ÿQ…9ÿN‘=ÿL›@ÿJ¤BÿI­DÿH¶FÿGÁGÿFÍHÿEáIÿDïJÿEøJûGýJñJÿIèMÿKßNÿL×OÿLÏQÿLÏQÿLÏQÿLÏQÿLÏQÿLÏQÿLÿTÿP'ÿR,ÿY-ÿ_2ÿd<ÿfGÿdR ÿa\(ÿ]h0ÿZu6ÿV;ÿR?ÿO˜CÿM¢EÿL«HÿJµIÿI¿KÿHÌLÿHáMÿHîMüHùNòKüMçNýOÝPýPÒRþPÌSÿQÆTÿQÆTÿQÆTÿQÆTÿQÆTÿQÆTÿQÿUÿQ'ÿV)ÿ^*ÿd/ÿj:ÿlEÿlO ÿhY(ÿdc0ÿ`p7ÿ\|=ÿXˆBÿU“FÿSIÿQ¦KÿO°MÿNºOýMÆPúMÙQöLêQòM÷QçPúRÛRûTÎTüUÇVýUÁWþU¼XþU¼XþU¼XþU¼XþU¼XþU¼XþUÿWÿR&ÿZ&ÿb&ÿj,ÿq7ÿsBÿsLÿpV(ÿk`0ÿfk8ÿcw>þ_ƒDû[ŽHùX˜L÷V¡OõU«QóSµSñRÁTïQÐUëQçUæRöVÚTùXÌVúYÃXûZ¼ZûZ·[ûY³\ûY³\ûY³\ûY³\ûY³\ûY³\ûYÿXÿS%ÿ^#ÿg#ÿp*ÿw5 ÿz@ÿzJÿxS&ÿs\/ünf7øir?ôe~Eña‰Jî^“Në\RèY¦UæX°WäW¼XâVÌYÞVäYØVô[ÊX÷]ÀZø^¸\ø^³]ø^®^ø]«_ù\«_ù\«_ù\«_ù\«_ù\«_ù\ÿYÿV#ÿb ÿl ÿu(ÿ}3 ÿ€=ÿGÿP$ù{Y-ôvb6îqm>êlyEæh„KâdŽQÞa˜UÛ^¢YÖ\¬[Ó[¸^ÐZÆ_ÍZß`ÈZòa¾\õbµ^ôb®`õbªaõa¦böa£c÷_£c÷_£c÷_£c÷_£c÷_£c÷_ÿZÿY!ÿfÿpÿz&ÿ‚1 ÿ†;ÿˆDù†M!òƒV+ë~^4åyi=àttEÚoLÓj‰SÏf’XËcœ]Ça¦`Ä_±cÁ^¿d¾^Òeº_ìf²`òf«bòf¥dòe¡eódŸeôcœfõbœfõbœfõbœfõbœfõbœfõbÿ[ÿ\ÿiÿuÿ~$ÿ‡.ÿŒ8ûŽBòŽJë‹R'ä‡[0Ýf:ÓzpEÍuzNÈpƒUÃl[¾i–`ºf d·d«g´c¸i±bÊj®cæj¨dïj¢fïigðhšhñg˜iòf–iód–iód–iód–iód–iód–iódÿ[ÿ_ÿlÿyÿƒ!ÿŒ,ÿ‘6 õ”?ì•Gä“O"ÜŽX-Ò‡b:ÊlEÃ{uN¾vV¸rˆ]´n‘b¯k›f«i¦j¨g³l¥gÃn¢gànžiím™jîl–kïj“lði’lñglòflòflòflòflòflòfÿ\ÿbÿpÿ|ÿ†ÿ)ú–3 ðš<ç›DßšKÓ”U,Ê_9‡iE»qOµ|{W¯x„^ªtc¥q—h¡n¢ll®ošl¾p˜lÙq•mëo‘nìnoíloïjŒoði‹oñg‹oñg‹oñg‹oñg‹oñg‹oñgÿ]ÿdÿrÿÿŠÿ”&ö›0ëŸ8 +â¢?ØŸGÍ™R+Ä’]9»ŒfD´‡nN­‚wW§}€^¢y‰dv“i˜sžm”qªqqºrŽqÑsŒrêqŠsëoˆsím‡sîk‡sïj†rðh†rðh†rðh†rðh†rðh†rðhÿ^ÿgÿuÿƒÿŽþ˜#ñŸ,ç¥3ݨ9 Ñ£EÇP*¾—Z8µ’cD­ŒlN¦‡tW ƒ|^š†d•|jyšn‹w¦rˆv¶t…vÌt„wérƒwêp‚wìn‚víl‚vïjvðivðivðivðivðivðiÿ^ÿiÿxÿ†ÿ‘úœí¤'âª,Ö¬4 ˧CÁ¢N)¸œX6¯—aC§‘iM qV™ˆy^“…‚dŒjˆ—oƒ}¤r|³t}|Èu|}ès||êq|{ìo}zím}yîk}yði}yði}yði}yði}yði}yðiÿ_ÿkÿ{ÿ‰ÿ•õ è© ݰ$а2 +ƬA¼¦L'³¡V5ªœ_A¢—gLš’oU“Žw]Œ‹€d†ˆŠi…•n|ƒ¡rw‚°tu‚Åutƒçsuêqvëow~ímx}îkx|ðix|ðix|ðix|ðix|ðix|ðiÿ`ÿnÿ~ÿŒÿ™ñ¤ã®Ö¶Ë´0Á°?·«K%­¦T3¤¡]@œeJ”˜lSŒ•t[†‘}bއhyŒ’mtŠžqpˆ­tmˆÁtm‰äso‡êqp„ìorƒímsîkt€ðit€ðit€ðit€ðit€ðit€ðiÿaÿqÿ‚ÿõ ã© Ùµ ϹŸ.»´=±°I#§«R1ž§[>–£cHŽŸjQ†›rY˜z`x•„fr“lm‘œoiªrf¾se‘árhŽëpjŠìnlˆílm†ïkn„ðin„ðin„ðin„ðin„ðin„ðiÿcÿuÿ† ø” Ü¢Ô­ ϸ +ɽ¿¼+µ¹;«¶G!¡±P/˜­Y;ªaF‡¦hO£pWx x^rždk›Œifš™mb™¨o_™¼p^™ßo`–ìnc‘ímfŽîkg‹ïji‰ðhi‰ðhi‰ðhi‰ðhi‰ðhi‰ðhÿgÿy ÿŠ +ßšÓ¦̱Ç»Á¸Â(®¿8¥¼D›¸N,‘µW8ˆ±^B€®fKx«mSq©vZk§`e¥Šd`£—h[£¦kY£ºlX£ÜkY îk\šïj_–ðia’ñhcñfcñfcñfcñfcñfcñfÿkÿ~ ñÖž̪Ä´¾¾¸È°È$§Æ5 ÃB“ÀL(нT3º\>y·dFqµkNk³tTd±~Z_°‰_Z¯–bV®¥eS®¹fR¯ÛeR«òfU¤òfXŸòfZ›óe\—ód\—ód\—ód\—ód\—ód\—ódÿp ÿ„ݖΣÄ®»·´Â®Í §Î žÍ1 +•Ë>‹ÈI#‚ÆR.zÃZ8rÁb@kÀjGd¾sM^½|SY¼ˆWT»•[P»¥]N»¹^M¼Û]K¹÷_N±ö`Qªö`S¥ö`U¡ö`U¡ö`U¡ö`U¡ö`U¡ö`U¡ö`ÿwëŒÓ›Æ¨»±²»ªÇ¢Ó +Ö•Ö,ŒÔ:ƒÒFzÐO'rÎX1jÍ`8dËh?^ÊrEXÊ|ITɈMOÉ•QLÉ¥SJɹTIÊÜSGÈ÷UHÀüXJ¸ûYL²ûZN­úZN­úZN­úZN­úZN­úZN­úZÿܓʢ¼¬±µ¨ÀŸË–Ù ‘àŠß,‚ß9yÞCqÝM jÜV(cÛ_/]Úg5XÙq:SÙ{>OÙˆBKÙ–EHÙ¦GFÚºHEÛÛGDØôIBÓÿMDÉÿOEÂÿPG»ÿRG»ÿRG»ÿRG»ÿRG»ÿRG»ÿRæŠÏ›¿§²°§»œÆ“Ñ‹ê…è~è-vè8nèAfçJ_çR#Yç[)Uçd-Pçm1Lçx5Iç„8Fè‘:Cè <@é²>?êË>>èï>=æÿ?=àÿB?×ÿD@ÎÿF@ÎÿF@ÎÿF@ÎÿF@ÎÿF@ÎÿFÖ“Ä£´¬§¶›Á̆ـòyòqò+jò6 có?]óGWóORóW!Mô`$Iôi(Fôs*Bõ~-?õ‹/<ö™1:ö©38÷¾46øá56õù55óÿ47ìÿ69åÿ89åÿ89åÿ89åÿ89åÿ89åÿ8Èž¶©¨²›½ÈƒÔyèsükýdý'^þ1Xþ; SÿCMÿKIÿSEÿZAÿc>ÿl;ÿv!7ÿ‚#4ÿ%2ÿŸ'0ÿ°(.ÿÈ)-ÿê*,ÿÿ*,ÿÿ*/ùÿ*/ùÿ*/ùÿ*/ùÿ*/ùÿ*/ùÿ*¹¦ª®œ¹ŽÅÑuÞmú eÿ^ÿWÿ#Rÿ,Lÿ4Hÿ< +CÿD ?ÿL<ÿS8ÿ[5ÿc2ÿl/ÿw,ÿ„)ÿ“'ÿ¢%ÿ´$ÿÌ#ÿí"ÿý"ÿÿ"ÿÿ"ÿÿ"ÿÿ"ÿÿ"ÿÿ¬«¶Â€ÎsÜgé_ÿXÿQÿKÿFÿ&Aÿ-<ÿ58ÿ<4ÿB1ÿI.ÿP +ÿW +(ÿ_ +%ÿi #ÿt ÿ‚ÿ’ÿ¢ÿ²ÿÈÿåÿúÿúÿúÿúÿúÿúŸ³¿€ÌrÚdäXõQÿJÿ Dÿ>ÿ9ÿ4ÿ%0ÿ,,ÿ2(ÿ8%ÿ>"ÿDÿJÿQÿYÿcÿnÿ|ÿŒÿœÿ¬ ÿ» ÿÓ ÿÓ ÿÓ ÿÓ ÿÓ ÿÓ ‘¼Ér×däTëKÿDÿ=ÿ7ÿ 1ÿ,ÿ(ÿ$ÿ" ÿ'ÿ,ÿ1ÿ6ÿ<ÿBÿI ÿQ ÿZ ÿfÿsÿÿÿœÿ«ÿ«ÿ«ÿ«ÿ«ÿ«ÿD$ÿ?.ÿ<6ÿ@8ÿA=ÿAEÿAQ ÿ@]ÿ?jÿ4ÿB6ÿD;ÿDCÿEO ÿD[ÿAhÿ?uÿ<‚!ÿ:$ÿ8š'ÿ7£)ÿ6¬*ÿ6´,ÿ5½-ÿ4È.ÿ4Ö.ÿ3æ/ÿ3ò/ÿ2ü0ÿ2ÿ0ÿ3ÿ/ÿ6ÿ/ÿ9ÿ/ù;ÿ0ô=ÿ1ñ=ÿ1ñ=ÿ1ñ=ÿ1ñ=ÿ1ñ=ÿ1ÿF#ÿ@-ÿA2ÿF3ÿH8ÿH@ÿILÿHXÿEeÿBrÿ@#ÿ=Œ&ÿ;˜)ÿ:¡+ÿ9ª-ÿ8³.ÿ7½/ÿ6Ç0ÿ6Õ1ÿ6æ2ÿ5ñ2ÿ5û2ÿ5ÿ2ÿ6ÿ2ÿ:ÿ1ú=ÿ3ó>ÿ4í@ÿ4êAÿ4êAÿ4êAÿ4êAÿ4êAÿ4ÿG"ÿA,ÿE/ÿI0ÿL5ÿM=ÿNHÿMTÿKaÿHn ÿE{%ÿBˆ(ÿ?”+ÿ>ž.ÿ=§/ÿ<¯1ÿ<¸2ÿ;Ã3ÿ:Ï4ÿ:á5ÿ:î5ÿ:ø5ÿ:ÿ5ÿ:ÿ5û>ÿ5òAÿ7ëBÿ8åDÿ8áEÿ8áEÿ8áEÿ8áEÿ8áEÿ8ÿH"ÿC,ÿH,ÿN-ÿQ1ÿS9ÿUEÿSQÿQ]ÿNj!ÿKw&ÿHƒ+ÿE.ÿD™0ÿB¢3ÿA«4ÿA´6ÿ@½7ÿ?É8ÿ?Û8ÿ?ê9ÿ?õ9ÿ?ÿ9û@ÿ8ñCÿ:èEÿ<áGÿ<ÚHÿ=ÕIÿ=ÕIÿ=ÕIÿ=ÕIÿ=ÕIÿ=ÿI!ÿD*ÿM(ÿS)ÿW-ÿY6ÿ\Bÿ[NÿXYÿUe"ÿRr(ÿO~-ÿLŠ0ÿJ”3ÿHž6ÿG¦8ÿF¯9ÿE¸;ÿEÄ<ÿDÒ<üDå=øDò=õEþ<ñEÿ>æHÿ@ÜJÿAÒKÿAÌMÿAÉMÿAÉMÿAÉMÿAÉMÿAÉMÿAÿJ ÿH'ÿQ%ÿX%ÿ]*ÿ`3ÿc?ÿbJÿ`Uÿ\a#ÿYm)ÿUy.ÿR„3ÿP6ýN™9ûL¢;úKª=øJ´?÷J¾@õIÌ@ñIáAíJðAêJüBäJÿDØLÿEÌOÿFÆPÿFÀQÿF¾QÿF¾QÿF¾QÿF¾QÿF¾QÿFÿL ÿL$ÿU!ÿ]!ÿc'ÿg1ÿj< ÿjGÿgRÿc\#ÿ_h*û\t0÷Y5õVŠ9òT”<ðR?îQ¦AìP¯CêOºDèNÇDæOÝEáOîEÝNûHÔOÿIÈQÿJÀSÿJºTÿJ¶UÿJ´VÿJ´VÿJ´VÿJ´VÿJ´VÿJÿMÿP!ÿZÿbÿi%ÿm-ÿq9 ÿqDÿoNûkX"õfc)ñco0í`z6é\…;æZ?äX˜BáV¢DßU«FÜS¶HÚRÃJÖRØJÑSìKÌSúMÅTÿN¼VÿOµWÿO°XÿN¬YÿMªZÿMªZÿMªZÿMªZÿMªZÿMÿNÿSÿ^ÿgÿn"ÿs*ÿw5 ÿx@ùwJòsT ìo^(çkj0âgu6Þc€<Ù_ŠAÔ]“FÑ[IÎY¦LËX°NÈW¼PÆVÍQÃWæQ¾W÷R¸XÿS°ZÿS«\ÿR§]ÿR£]ÿQ¢]ÿP¢]ÿP¢]ÿP¢]ÿP¢]ÿPÿOÿWÿbÿlÿt ÿy'ÿ~2ù€< ñFê{Päw[&Ýsf.Õmp7Ðiz>Ëe„DÇbŽIÄ`—MÀ^ P½]ªS»[¶U¸[ÅVµ[ßV²\óW¬]ýW¦^ýV¡`þUž`ÿTœaÿSšaÿSšaÿSšaÿSšaÿSšaÿSÿPÿZÿeÿpÿxÿ$ý„.ó†8 +ê†Bã„KÛW#Ñyb/Ëtl8Åov@ÀlF¼hˆK¸f‘Pµc›S±a¥V®`°Y«_¿Z©_Ô[¦`ï[¢aúZcûY™düX–dýW•eþU”eþU”eþU”eþU”eþU”eþUÿPÿ]ÿiÿtÿ}ÿ„!÷‰*í4ä= Ü‹HÑ…T#É^.Âzh8¼uq@·qzG²n„M®kRªh–V§f Y£e«\ d¹^ždÍ^›dê^˜fø]”gù\’hûZhüYŽhýWŽhýVŽhýVŽhýVŽhýVŽhýVÿRÿ_ÿlÿxÿÿˆò%ç“/Þ•8 ÓEÊ‹Q"Â…[.»€e8´{nA¯wwHªtN¥pˆS¡n’Wkœ[™j§^–iµ`”hÈa’iæ`j÷_kø]‹kù\‰lûZˆlüXˆküXˆküXˆküXˆküXˆküXÿTÿbÿoÿ{ÿ…úí“â™(Ø™3Ì•BÄN!¼‹Y-´…b7®k@¨|sH¢y|Nv…T™sŽX•q˜\‘o¤`n±b‹mÃc‰nâb‡oöa†o÷_…où]„oú[ƒoûYƒoüXƒoüXƒoüXƒoüXƒoüXÿVÿdÿrÿ~ÿˆõ‘è˜Ýž Ñž1Çš@¾•L ¶V,®‹`7§†h@¡‚pHœ~yN–{‚T’x‹Yv•]‰t a…s®c‚r¿d€sÞd€tõbtö`sø^~sù\~rúZ~rûY~rûY~rûY~rûY~rûYÿXÿgÿuÿÿŒñ•ã֣ˡ/ž>¹™J°”T+©]6¢‹f?›‡nG•„vN€T‹~ˆY†{’]yža}x«dzx¼eyxÙexyôbyxö`ywø^yvù\yuúZyuûZyuûZyuûZyuûZyuûZÿZÿiÿx ÿ„ ï Ýš +Ù¢ ЦÆ¥,½¢<´žH«™R)£•[4œ‘c>•kF‰sM‰†|S„„…X]z›av~¨ds}¹eq~Óeq~òcr}ö`s{÷^tzù\tyú[uyûZuyûZuyûZuyûZuyûZÿ]ÿl ÿ{ öˆ Ü“Õ Ñ¥ +ʪÁ©*·¦:®¢F¦žP(žšY3––a<“iD‰qLƒyR}ŠƒWxˆ\s†™`o„¦cl„·dj„Ïdj„ðbl‚ö`m€÷^où\o}ú[p|ûZp|ûZp|ûZp|ûZp|ûZÿ_ÿo +ÿ~ãŒÖ—Ï ʨÄ®»­'²«7 ©§D ¤N&˜ W1‘œ_:Š™gCƒ–oJ}“wPw‘€VrŠZm–^h‹£ae‹´cc‹Ìcc‹îae‰÷_g†ø^i„ù\j‚úZkûZkûZkûZkûZkûZÿbÿrø‚ÛϚɣ콲µ²$¬°5 £­B›ªL#’¦U.Š£]8ƒ e@}lGv›tMp™}Sk–ˆXf•”\b”¡__“²`]“É`]“í_^ø^aŒù\cŠú[d‡ûZe†ûYe†ûYe†ûYe†ûYe†ûYÿf ÿwã‡Ó“Êž§»¯µ¶ ®·!¥¶2 ³?”°J Œ­S+„ª[4}¨c]¶xCXµ‚GT´KP´NM³®PK´ÅPK³êPJ±ÿQL«ÿRN¥ÿRP¡ÿRQžÿQQžÿQQžÿQQžÿQQžÿQÿv݉ʗ¾¢³ª©³ ¼˜Æ‘Ì‹Ì%„Ë4 |É@uÈJmÇS#gÅ\*aÄd0\Ãm6WÂv:SÂ?OÁŽBKÁEHÁ®FGÁÅFGÁêFD¾ÿIE¹ÿJG³ÿKI­ÿLJ«ÿLJ«ÿLJ«ÿLJ«ÿLJ«ÿLéÑžµ§ª¯ ¸–ÁŒË„Õ €ÕyÕ.rÔ< lÓGeÒP_ÑY!ZÑb'UÐk,QÐu0MÏ4IÏŽ7FÏ9DЮ;BÐÆ;CÐê:@Íý>>Ëÿ@@ÃÿBA½ÿCB¹ÿDB¹ÿDB¹ÿDB¹ÿDB¹ÿD݈ǘ¸£«« ´•¾‹È€Ñxá táná+hà7aàB\àMWàVSà_Oài"Kàs%Gà~(Dà‹+Bàš-?á«/>âÁ/>âå/<ßú19Þÿ49Ùÿ6:Ðÿ8;Ìÿ9;Ìÿ9;Ìÿ9;Ìÿ9;Ìÿ9Í’¼ ­¨¡±•»‰Å~ÏtÚnëhëbë*]ì5Wì? RìHMìQJíZFícCím@íx=î…!:î“#8ï£$6ð¶&5ñÒ&4ïó&4ìÿ&2ëÿ(2çÿ+3äÿ,3äÿ,3äÿ,3äÿ,3äÿ,Áœ°¦£®–¸‰Ã}ÍqØgæbö\÷W÷'R÷1Mø:HùB DùK AúT>ú\;ûe8ûo5û{2ü‰0ý˜.ýª,þ¿+ÿã*üú*úÿ*÷ÿ*÷ÿ*÷ÿ*÷ÿ*÷ÿ*÷ÿ³£¤«—¶‰Á{ËoÖcß[õUÿPÿKÿ#Fÿ,Bÿ4>ÿ<:ÿC7ÿK4ÿS1ÿ[ .ÿd ++ÿo (ÿ| &ÿ‹$ÿœ"ÿ®!ÿÅ ÿéÿüÿÿÿÿÿÿÿÿÿÿÿÿ¦©˜³Š¿{ÊnÕ`ßTçNÿIÿCÿ?ÿ:ÿ%6ÿ,2ÿ3/ÿ:+ÿA(ÿH%ÿO"ÿW ÿ`ÿlÿyÿŠÿ›ÿ­ ÿà ÿã ÿø ÿÿ +ÿÿ +ÿÿ +ÿÿ +ÿÿ +𱋽|ÈmÔ_àQæGõAÿ<ÿ 7ÿ2ÿ.ÿ*ÿ#&ÿ)"ÿ/ÿ5ÿ;ÿBÿIÿQÿZÿf ÿt ÿ… +ÿ– ÿ¨ÿ¹ÿÐÿãÿãÿãÿãÿãº}ÇmÓ_àPçBí:ÿ5ÿ/ÿ*ÿ +&ÿ"ÿÿÿÿ#ÿ(ÿ-ÿ3 ÿ9 +ÿAÿIÿSÿ^ÿlÿ|ÿÿÿ¬ÿµÿµÿµÿµÿµÿ9'ÿ32ÿ54ÿ86ÿ8;ÿ6Cÿ3Nÿ1[ ÿ/h ÿ-vÿ+„ÿ)‘ÿ)›ÿ(¤ÿ(­ÿ(µÿ'¾ÿ'Èÿ'Ôÿ'äÿ'ïÿ'ùÿ'ÿÿ'ÿÿ'ÿÿ(ÿÿ+ÿÿ-ÿü/ÿü/ÿü/ÿü/ÿü/ÿÿ:'ÿ41ÿ81ÿ;4ÿ;9ÿ:Aÿ7Kÿ5X +ÿ3eÿ1sÿ/ÿ-Žÿ-˜ÿ,¡ÿ,ªÿ+²ÿ+»ÿ+Äÿ+Ðÿ*á ÿ*í ÿ*÷ ÿ*ÿ ÿ+ÿ ÿ+ÿÿ,ÿÿ/ÿ!ü1ÿ"÷3ÿ"÷3ÿ"÷3ÿ"÷3ÿ"÷3ÿ"ÿ;&ÿ50ÿ;/ÿ>1ÿ?6ÿ>=ÿkÿ;xÿ9…ÿ7ÿ7š ÿ6£!ÿ5«"ÿ5³#ÿ4¼$ÿ4Æ%ÿ4Ô%ÿ4æ&ÿ4ñ&ÿ4û&ÿ5ÿ%þ5ÿ&ú6ÿ(ó8ÿ)ì:ÿ)æ<ÿ*æ<ÿ*æ<ÿ*æ<ÿ*æ<ÿ*ÿ=%ÿ=*ÿC(ÿG)ÿI-ÿJ6ÿJAÿIM ÿGZÿEgÿBtÿ@€ÿ>Œ ÿ=•"ÿ<ž$ÿ;¦&ÿ;®'ÿ:·(ÿ:Á(ÿ:Í)ÿ:á)þ:î)û:ù)÷;ÿ)ö:ÿ+ð;ÿ-è=ÿ.á?ÿ.ÛAÿ.ÛAÿ.ÛAÿ.ÛAÿ.ÛAÿ.ÿ>%ÿA&ÿH$ÿL%ÿO)ÿR3ÿQ>ÿQI ÿOVÿLbÿJoÿG{ ÿE†#ÿC‘%ÿBš'ÿA¢)ÿAª*ý@²+ü@¼,û?È-ø?Û-ô@ë-ð@÷-í@ÿ/ë?ÿ1äAÿ2ÛCÿ3ÑDÿ3ËFÿ3ËFÿ3ËFÿ3ËFÿ3ËFÿ3ÿ@$ÿE#ÿL ÿR!ÿV&ÿY/ÿY:ÿYF ÿVQÿT]ÿQjþNu!üL%ùJ‹(÷I•+õG,óG¦.òF®/ðE¸0ïEÄ1íEÓ1èFè1åFö2âEÿ5ßDÿ6ÓGÿ7ÊHÿ8ÄJÿ8¿Kÿ7¿Kÿ7¿Kÿ7¿Kÿ7¿Kÿ7ÿA#ÿIÿQÿWÿ\#ÿ`,ÿ`6ÿ`A ÿ^Mý[XøXdôUp#ñS|'îP†+ëO.éM™0çL¡2åLª3ãK´4âKÀ5àKÏ5ÛKæ6ÕJô8ÑJÿ:ÎJÿ<ÄLÿ<½Mÿ<¸Oÿ<´Oÿ;´Oÿ;´Oÿ;´Oÿ;´Oÿ;ÿB"ÿLÿUÿ\ÿc ÿf(ÿh2ÿh= úfHôcSî`_ê]k#æZv(âW-ßU‹0ÜS”3ÙQ6ÕP¦8ÓO¯:ÐO»;ÎNÉ<ËOá=ÇOò>ÃOÿ@ÀOÿA·QÿA±Rÿ@­Sÿ@ªTÿ?ªTÿ?ªTÿ?ªTÿ?ªTÿ?ÿFÿPÿYÿbÿhÿl$ÿo.ùo8ñnDëkNåh[ßdg#Ú`q*Ô]{/Ð[…4ÌXŽ8ÉW—;ÇU =ÄT©?ÂS´A¿SÂB½SÖC¹SíD¶SýE³TÿE¬VÿD§WÿD¤XÿC¡XÿB¡XÿB¡XÿB¡XÿB¡XÿBÿHÿSÿ]ÿfÿmÿr!ûu)òv3év> âsJÛoWÒkb#Ígl+Èdv1Äa7À^‰;½\’>º[šA·Y¤DµX®F²W»G°WÍH­XèHªXúI§YÿH¡ZÿH[ÿG›\ÿF™\ÿE™\ÿE™\ÿE™\ÿE™\ÿEÿKÿWÿaÿkÿrÿxõ{$ë}-â~9Ù{FÐvSÉq^$Ãmh,¾jq3ºg{8¶dƒ=²bŒA¯`•E¬^ŸG©]©J¦\¶K¤\ÇL¢\âMŸ]÷Lœ^ÿL˜_ÿJ•`ÿI“`ÿH‘`ÿG‘`ÿG‘`ÿG‘`ÿG‘`ÿGÿNÿZÿdÿoÿvü}ïä„'Û„4ÐCÈ|OÁxZ#»sd,µpm3±lv:­j?©gˆC¥e‘G¢c›JŸb¥Mœa±O™`ÁP—`ÜP•aóO“bÿNcÿLŽdÿKŒdÿJ‹dÿH‹dÿH‹dÿH‹dÿH‹dÿHÿPÿ\ÿh ÿrÿzöé†ÞŠ ÒŠ0Ɇ@Á‚Mº}W#´ya,®uj4©rr:¤o{@ l„DjH™h—L•g¡O’f­Qe½RŽeÔSŒfðQ‹gÿPˆgÿN‡hÿL†hÿK…gÿI…gÿI…gÿI…gÿI…gÿIÿRÿ_ÿk ÿu ù~ ð…ã‹ÖÌŽ.Ë= »‡J´ƒU"­~^+§{g3¢wo:tx@™r€E•o‰I‘m“MlžPŠjªS‡j¹T…jÏT„kîSƒlÿQ‚lÿOkÿM€kÿL€kÿJ€kÿJ€kÿJ€kÿJ€kÿJÿTÿa ÿn +ýx è‚܉ Ø Ð“Æ“+¾; ¶ŒH®ˆR!§„\+¡€d3œ|m:—yu@’w}EŽu†JŠrN†q›Q‚o§To¶U}oËV|oëT|pÿR{pÿP{oÿN{oÿM{nÿK{nÿK{nÿK{nÿK{nÿKÿWÿc +ÿpð|Ü…ÔŒГ Ê–Á—)¹”9 ±F©P ¢‰Z*œ…b2–‚j9‘r?Œ|zE‡zƒJƒxNv˜Q{u¤Txt³VvtÈVutèUuuýSutÿQusÿOvrÿMvqÿLvqÿLvqÿLvqÿLvqÿLÿYÿfÿsáÖˆÏÊ–Äš¼›&´˜7 ¬•D¤‘NŽW(–Š`1‡h8‹„p?†‚xDI}}‹Mx{–Qtz¢Tqy±VoyÅVnzæUnzüSoyÿQpwÿOqvÿMquÿLquÿLquÿLquÿLquÿLÿ[ÿiöw݂ЋÉ“Ä™¾ž¶Ÿ$®4¦šAŸ–L˜“U'‘^/‹e7…Šm=€ˆuC{…~HvƒˆLr‚“Pn€ Sk®UhÂVgãUh€úSi~ÿQj|ÿOk{ÿMlyÿLlyÿLlyÿLlyÿLlyÿLÿ^ ÿlæzÖ†ËÄ—¾¸¢±£!©¢2¡Ÿ?™œJ’™S%‹–\-…“c5‘k;zŽsAuŒ|FpŠ…Kkˆ‘Og‡Rd†¬Tb†¿Ua†áTa†ùRc„ÿPeÿOfÿMg~ÿLg~ÿLg~ÿLg~ÿLg~ÿLÿa +ÿoà~ЉƓ¿›¸¡±¦ ª¨£§/›¥=”¢HŒŸQ"…œY+ša2y˜i9t•q?o“yDj’ƒHeŽLa›O^ŽªR[޽RZŽÞR[øP\‹ÿO^ˆÿN`…ÿLaƒÿKaƒÿKaƒÿKaƒÿKaƒÿKÿdõtÚ‚ËŽÁ—¸ž±¥©«£­œ¬,•«: ¨E†¦O¤W(y¢_/s f5mžn;hœw@cšE_™ŒI[˜™LW—¨NU—»OT—ÜNT–öNU”ÿMXÿLYÿK[ŠÿJ[ŠÿJ[ŠÿJ[ŠÿJ[ŠÿJÿhåyчŒ»œ±¢©©¡±›³•³(޲6 †°B®Lx¬T#rª\*l¨d1g§l6b¥u;]¤@Y£ŠCU¢—GQ¡§IO¡ºJN¢ÙIN õINŸÿIP™ÿIR–ÿHT’ÿGT’ÿGT’ÿGT’ÿGT’ÿGÿnÞʾ˜³ ª§¡®—¶‘ºŒº#…¹2~¸>w¶IqµRk³Z%e²b+`±j0[°s5W¯}9S®‰=O­–@L­¥BJ­¹CI®ØBH«õCGªÿDI¥ÿDK ÿDMœÿDMœÿDMœÿDMœÿDMœÿDêu҆Ó·¬¤¢«˜³Ž»…Á Â{Â-uÁ: oÀEi¿Oc¾W^½_#Y¼h(U»q-Q»{0Mº‡4Jº•7Gº¥9Eº¸:Dº×9C¸õ;B¶ÿ=B³ÿ>D®ÿ>E©ÿ>E©ÿ>E©ÿ>E©ÿ>E©ÿ>à}ɻ𮢣©˜±Ž¹„ÁyÉtËpÌ&kË5eË@ +`ÊK[ÊTWÉ]RÉeNÈo#KÈz&GȆ)DÈ”,BȤ.@ȸ/?É×/?Çõ0=Äÿ3;Ãÿ5<¾ÿ6=¸ÿ7=¸ÿ7=¸ÿ7=¸ÿ7=¸ÿ7цÀ•²Ÿ¥§š¯Ž·ƒ¿xÇnÏe× cØ`Ø-[Ø:WØF SØP OØYK×bG×lD×wAׄ>Ø“ <Ø£!;Ù·":ÚÕ":Öò#7Ôÿ'6Òÿ)4Ñÿ+6Êÿ-6Êÿ-6Êÿ-6Êÿ-6Êÿ-Ŷ¨¥œ­¶ƒ¾wÇlÏbÖZäXäTä)Pä5Lå?HåIEåS +Bæ\ ?æf<æq:ç~7çŒ5çœ3è®2éÆ2èê1åþ/äÿ.äÿ-âÿ -âÿ -âÿ -âÿ -âÿ ºšª£«´ƒ½wÆkÏ_ÖTÞQðMðJð&Fñ0Bò:>òC;óK8óT6ô]3ôh 0õt .õ ,ö‘*ö¢(÷·'øÖ'öô&óÿ&ñÿ%ñÿ%ñÿ%ñÿ%ñÿ%ñÿ­¡ ©’³„¼vÆiÏ]ØQßIîFüBý>þ!;þ*7ÿ34ÿ:0ÿB-ÿJ+ÿS(ÿ\%ÿf"ÿs ÿƒÿ”ÿ¦ÿ¼ÿâ ÿù ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ ¢§“±…»vÆiÐ[ÚNàCå>û:ÿ 6ÿ2ÿ/ÿ#+ÿ*(ÿ1$ÿ7!ÿ?ÿFÿNÿXÿcÿpÿÿ“ÿ§ÿ½ÿàÿöÿÿÿÿÿÿÿÿÿÿ•¯†ºwÅhÐZÛLá@ç7ó2ÿ.ÿ*ÿ&ÿ#ÿÿ ÿ&ÿ+ÿ2ÿ8ÿ@ÿH ÿR ÿ]ÿkÿ}ÿÿ£ÿ¶ÿÍÿìÿìÿìÿìÿ숹xÄiÐ[ÝKã>é2î+ÿ&ÿ!ÿÿÿ ÿÿÿÿ ÿ$ ÿ*ÿ0ÿ7ÿ@ÿJÿVÿdÿuÿˆÿšÿªÿ»ÿ»ÿ»ÿ»ÿ»ÿ/+ÿ+2ÿ/1ÿ04ÿ/9ÿ+Aÿ'Lÿ#Xÿ!fÿ tÿ‚ ÿŽ ÿ˜ ÿ¡ ÿ©ÿ°ÿ¸ÿÁÿËÿÛÿèÿòÿüÿÿÿÿÿÿÿÿÿÿÿ!ÿÿ"ÿÿ"ÿÿ"ÿÿ"ÿÿ/+ÿ.0ÿ2/ÿ31ÿ26ÿ/>ÿ+Iÿ)Vÿ'cÿ%qÿ$~ ÿ#Š ÿ#•ÿ"žÿ"¦ÿ"­ÿ"µÿ"½ÿ"Çÿ"Ôÿ"åÿ"ðÿ"úÿ"ÿÿ#ÿÿ#ÿÿ#ÿÿ$ÿþ&ÿü'ÿü'ÿü'ÿü'ÿÿ0*ÿ1-ÿ5+ÿ7-ÿ62ÿ4:ÿ2Eÿ/Rÿ-`ÿ,m +ÿ*z ÿ)†ÿ(‘ÿ(šÿ(¢ÿ'ªÿ'±ÿ'¹ÿ'Ãÿ'Ïÿ'áÿ'íÿ'øÿ(ÿÿ(ÿÿ(ÿÿ'ÿü)ÿö+ÿô,ÿô,ÿô,ÿô,ÿÿ1)ÿ4)ÿ9(ÿ;*ÿ<.ÿ:6ÿ9Bÿ7Oÿ5\ÿ3i ÿ1vÿ0‚ÿ/ÿ.–ÿ.žÿ-¦ÿ-­ÿ-µÿ-¾ÿ-Êÿ-Üÿ-êÿ-õý.ÿú.ÿù-ÿù-ÿó/ÿí1ÿê2ÿê2ÿê2ÿê2ÿÿ3)ÿ8&ÿ=$ÿ@%ÿA)ÿB3ÿA>ÿ?Jÿ=W ÿ;d ÿ9pÿ7}ÿ6ˆÿ5‘ÿ5šÿ4¢ÿ4©ÿ3±ÿ3ºÿ3Åý3Óú3æ÷4óó5þñ4ÿð3ÿî3ÿ ç6ÿ!á7ÿ!Þ8ÿ!Þ8ÿ!Þ8ÿ!Þ8ÿ!ÿ5'ÿ="ÿB ÿF ÿH%ÿJ/ÿI:ÿGFÿER ÿC_ ÿAkÿ?wÿ=‚þ<Œü<•û;ù;¥ø:­ö:¶õ:Àó:Îð:ãë;ñè:ý!æ:ÿ#ä:ÿ%á:ÿ%Ø<ÿ&Ð=ÿ&Í>ÿ&Í>ÿ&Í>ÿ&Í>ÿ&ÿ9$ÿAÿGÿKÿO"ÿQ+ÿQ6ÿOAÿLM ÿKZüIføGrõE}óC‡ñB‘ïB™íA¡ ìA©!ê@²"è@¼"ç@Ê#äAß#àAï$Ü@ü'Ø@ÿ)Ô?ÿ*Ï@ÿ*ÇBÿ*ÂCÿ*ÀCÿ*ÀCÿ*ÀCÿ*ÀCÿ*ÿ< ÿEÿKÿQÿVÿX'ÿX1ÿW<üUH öRTòPaîNmêLxçJ‚åIŒ âH•"àG$ÞG¥%ÜF®&ÚE¹'ØEÆ(ÔEÜ)ÏFî*ËEû-ÈEÿ.ÅEÿ/ÀFÿ/ºHÿ/µIÿ.´Iÿ.´Iÿ.´Iÿ.´Iÿ.ÿ@ÿIÿPÿVÿ\ÿ_#ÿ`,ú_7ó]BíZO çX\âVhÞSrÚQ} ÖO†$ÒN'ÐM˜)ÍL +ËK©-ÉJ³.ÇJ¿/ÅJÐ0ÂKè0½Kø2ºJÿ3¸Kÿ3³Lÿ3®Mÿ3ªNÿ2©Nÿ2©Nÿ2©Nÿ2©Nÿ2ÿCÿLÿTÿ\ÿaÿeûf'òf1êe=ãcJ Ü`WÕ]bÐZmÌWw#ÈU€'ÅT‰+ÂR’.ÀQš0¾P£2»O­4¹O¹5·OÈ6´Oâ6±Oô7®Pÿ8¬Pÿ8§Qÿ7£Rÿ6 Sÿ5ŸSÿ5ŸSÿ5ŸSÿ5ŸSÿ5ÿFÿPÿX ÿ`ÿfÿjôl!êm+ál7ÙjE +ÐgRÊc^Å`h Á^r&½\{*ºZ„.·XŒ1´W•4±Už6¯T¨8­T³:ªSÂ;¨SÚ;¥Tð<¢Uÿ<¡Uÿ;Vÿ:šWÿ9—Wÿ8—Wÿ7—Wÿ7—Wÿ7—Wÿ7ÿIÿSÿ\ ÿe ÿkúoìrât#Øs2ÎqB ÇmOÁjZ»gd!·dm'³bv,¯_0¬^‡4©\7§[™:¤Y£<¡Y®>ŸX½?XÑ@šYì?˜Yþ?—Zÿ>”[ÿ<‘[ÿ;[ÿ:[ÿ:[ÿ:[ÿ:[ÿ:ÿLÿV ÿ` ÿh +úo ósåwÚyÏy.Çw> ¿tK¹pV³m`!¯ji(ªgr-§ez2£cƒ6 aŒ9`•<š^Ÿ?—]ªA•]¸B“]ËC]èC^üAŽ_ÿ@‹_ÿ>Š_ÿ=ˆ_ÿ<ˆ_ÿ;ˆ_ÿ;ˆ_ÿ;ˆ_ÿ;ÿNÿX +ÿcúlçsÝxÚ{ Ñ~È~+À|;¹yH²vS¬r]!§of(£mn.Ÿjw3›h7˜fˆ;•e‘>‘c›AŽb§CŒa´E‰aÇEˆbåE†búC†cÿB„cÿ@ƒcÿ>‚cÿ=‚cÿ<‚cÿ<‚cÿ<‚cÿ<ÿPÿ[ÿfìoÜvÔ|Ñ€ Ê‚ƒ(º9³~F¬{Q¦wZ!¡tc(œrk.˜os3”m|7‘k„;jŽ?Šh˜B†g£D„f±FfÃGfáGgøE~hÿC~hÿA}gÿ?|gÿ>|gÿ=|gÿ=|gÿ=|gÿ=ÿRÿ]ýiárÖzÎʃņ¼‡&µ†6®ƒC§€N¡|X ›y`'–wi-’tp3Žry7Šp<†n‹?ƒm•Cl¡E|k®Gzk¿HxkÝHxlöFxlÿDwlÿBwkÿ@wjÿ?wjÿ>wjÿ>wjÿ>wjÿ>ÿT ÿ_òlÝvÐ}Ƀć¿Š·Œ#°Š4©ˆA¢…LœU–^&‘|f-Œyn2ˆwv7„u;€tˆ?|r’CxqžFup¬Hso½IqpÙIqpôGqqÿDrpÿBroÿArnÿ?rnÿ>rnÿ>rnÿ>rnÿ>ÿV +ÿbæo×yÌŇ¿‹¹Ž² «1¤Œ? ŠJ–‡S‘„\%‹d,†k1‚}s6~{|;zy†?vwBrvœEou©HluºIkuÔIkuòGkuÿEluÿCmsÿAmrÿ?mrÿ?mrÿ?mrÿ?mrÿ?ÿYÿeârÑ|Ç„Àй³’ ¬”¦“/ž‘< ˜H‘ŒQ‹‰Z$†‡b*…i0|‚q5xz:tƒ>p}ŽBl|šEi{§Gfz¸Hd{ÐHd{ðGe{ÿDfzÿCgxÿAhvÿ?hvÿ?hvÿ?hvÿ?hvÿ?ÿ[÷iÝv̀È»Ž´“­— §˜ ˜,™–: +’”EŒ’O†W"€_({‹g.v‰o3r‡w8m…_Š•A\‰£DZ‰´EX‰ËEXˆíDXˆÿCY†ÿA[ƒÿ@]ÿ>]€ÿ>]€ÿ>]€ÿ>]€ÿ>ÿbäqÏ~ȹ‘°—§›ž¡˜£“£%¢4†¡@ €ŸJySt›Z#o™b(j˜j.f–r2a•|7]”†:Y’“>V’¡@S‘²AR’ÉBR‘ëARÿ@Rÿ?U‹ÿ>Vˆÿ=W‡ÿ=W‡ÿ=W‡ÿ=W‡ÿ=ùgÝvɃ½³•©›  –§©‹ª!…©0¨< +x§Gs¥Pm£Xh¢`$d¡g)_ p.[žy2W„6Sœ‘9PœŸ;N›°=LœÇ=L›ê­ÿ2@¨ÿ2A¦ÿ2A¦ÿ2A¦ÿ2A¦ÿ2Õ|е–¨£’ª‡±|·p¾hÂfÃcÃ-^Ã9ZÃDVÂN RÂWOÁ_KÁiHÁsEÀ~BÀŒ ?À›"=À­#<ÁÄ#<Àé#:¾þ&8¼ÿ(7»ÿ)8¸ÿ*8¶ÿ+8¶ÿ+8¶ÿ+8¶ÿ+É…¹“¬œ ¢”ªˆ±|¸q¾fÅ[ËWÍVÎ#SÎ2PÎ>MÏHIÏRFÏ[ CÏe@Ïo>Ï{;ω9Ï™7Ï«6ÐÃ6Ïè4Íû2Ëÿ1Êÿ0Éÿ!/Èÿ!/Èÿ!/Èÿ!/Èÿ!¾¯š¢¡–©Š°}¸q¿fÆ[ÌPÒGÚ FÜEÜ'DÝ5AÝ@?ÞK=ÞU:ß_8ßi5ßv 3à„ 1à” /ᦠ.á¼-âà-Þø+Ýÿ*Üÿ)Úÿ(Úÿ(Úÿ(Úÿ(Úÿ³˜¥ ™§‹°~¸qÀeÈYÎNÓDÛ?é =é;ê#9ê.6ë84ëB1ìK/íU-í_*îk(îx&ïˆ%ïš#ð®"ñÈ"ðí!ìÿ!ëÿ ëÿ +êÿ êÿ êÿ êÿ ¨Ÿ›¦¯¸qÁdÊXÐLÖAÝ8ä5ö 3÷0÷.ø'+ù0(ù8&ú@#ûI!ûRü]ýiýyþ‹ÿžÿ³ÿÓþôüÿúÿùÿùÿùÿùÿ¥®€¸rÂdËVÓIÚ>ß4ä.ô+ÿ +(ÿ%ÿ"ÿÿ&ÿ-ÿ4ÿ<ÿDÿNÿYÿg ÿw ÿŠ +ÿŸ ÿµÿÕÿôÿÿÿÿÿÿÿÿÿÿ‘­‚¸sÂdÌVÕHÝ;â0ç'î#ÿ ÿÿ ÿÿÿÿ!ÿ' ÿ. +ÿ6ÿ>ÿHÿTÿbÿsÿ‡ÿÿ²ÿÊÿêÿóÿóÿóÿó„·tÁeÌVØGß9å-ê#îýÿÿÿÿ ÿ ÿÿÿÿ ÿ&ÿ.ÿ7ÿAÿMÿ\ÿmÿ‚ÿ–ÿ¨ÿºÿÃÿÃÿÃÿÃÿ$/ÿ%/ÿ(/ÿ'1ÿ$6ÿ >ÿIÿVÿdÿrÿÿŠÿ”ÿÿ¤ÿ¬ÿ³ÿºÿÃÿÎÿßÿëÿöÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿ ÿÿ ÿÿ ÿ%.ÿ)-ÿ+,ÿ+.ÿ)3ÿ$;ÿFÿSÿaÿnÿ{ÿ‡ÿ‘ÿšÿ¡ÿ©ÿ°ÿ·ÿÀÿÊÿÛÿèÿôÿýÿÿÿÿÿÿ ÿÿ +ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ ÿ&-ÿ,)ÿ.(ÿ/*ÿ-/ÿ)7ÿ'Cÿ$Pÿ"]ÿ jÿwÿƒÿÿ–ÿžÿ¥ ÿ¬ ÿ³ ÿ¼ +ÿÆ +ÿÓ +ÿå +ÿñ +ÿü +þÿ +ýÿ üÿ üÿ üÿ÷!ÿ÷!ÿ÷!ÿ÷!ÿÿ**ÿ/&ÿ2$ÿ3%ÿ2*ÿ14ÿ/?ÿ-Lÿ*Yÿ(fÿ&rÿ%~ÿ%‰ÿ%’ ÿ%š +ÿ%¡ ÿ%¨ ÿ$° ÿ$¸ ÿ%Á ÿ%Î ÿ%á ü%ï ù&ú ö&ÿ õ&ÿô%ÿô%ÿò&ÿí'ÿí'ÿí'ÿí'ÿÿ.&ÿ4"ÿ7 ÿ9!ÿ8%ÿ9/ÿ8;ÿ5Gÿ3Tÿ1aÿ/mÿ.y ÿ-„ +ÿ- ÿ,– ÿ, ÿ,¥ý,¬ü,´û,½ù,Éö,Ýó-ìï-øí-ÿë,ÿê,ÿé,ÿå-ÿà.ÿà.ÿà.ÿà.ÿÿ2#ÿ8ÿ<ÿ>ÿ@"ÿA+ÿ@6ÿ>Bÿ ŸxJšuS•s\‘qd"ol'‰mt+…l|/‚j…2i5|h›8yg§:vf¶;tfÌ­¹#=­Ø"=«õ#<©ÿ%;§ÿ&;¦ÿ&;¤ÿ&;¤ÿ&;¤ÿ&;¤ÿ&Ìz»ˆ®’¢™—žŒ¤€ªu¯i´^¹[ºY»$V»1S»=P»GM»PJºY +Gºb DºlAºw>¹„<¹“9¹£8¹·7ºÖ7¸ô5¶ÿ4´ÿ3³ÿ3²ÿ 3²ÿ 3²ÿ 3²ÿ Áƒ´‘¦˜›ž¥‚«v±k¶_¼TÁLÅ KÅIÆ(HÆ5EÇ@CÇJ@ÇS>Ç];Çg9Çs +7Ç€ 4Ç 2Ç¡1ȵ0ÈÓ0Æô.Äÿ-Âÿ,Áÿ+Àÿ+Àÿ+Àÿ+Àÿ¸ª—žž‘¥„¬x²k¹`¿TÃJÈ@Í:Ò9Ò8Ó(7Ó56Ô@4ÕK3ÕU1Ö`/Öl-×z+Ø‹*Ø(Ù±'ÚÍ'×ï&Ôÿ %Òÿ $Ñÿ #Ðÿ #Ðÿ #Ðÿ #Ðÿ ®– ”¤†¬y´l»`ÂTÆHË>Ð5Õ-Ý +,á+â)ã*(ä5'ä?&åJ$æU#æa!çn ç~èé¤é¼êâæüåÿäÿãÿãÿãÿãÿ£–¤ˆ¬zµl½_ÄSÊGÎ<Ó2Ú*ß%î #ð!ññ"ò+ó4ô>ôHõRö_ön÷€ø”ùªùÆùí öÿ ôÿ óÿ óÿ óÿ óÿ™£‹¬|µm¾_ÆRÍEÒ9Ø/Þ&âêûÿÿÿÿ!ÿ(ÿ0 ÿ9 ÿC ÿNÿ\ÿlÿ€ÿ–ÿ­ÿÊÿðÿÿÿÿÿÿÿÿÿÿ«}µn¿`ÈRÐC×7Ý+â"æêùÿÿÿ ÿ ÿÿÿ"ÿ*ÿ3ÿ=ÿIÿWÿiÿ~ÿ•ÿ¬ÿÇÿèÿúÿúÿúÿú€µp¿aÉRÓCÛ5á)æêîøÿ ÿÿÿÿ +ÿÿÿÿÿ#ÿ+ÿ6ÿCÿSÿeÿzÿ‘ÿ¦ÿ¸ÿÏÿÏÿÏÿÏÿ/ÿ ,ÿ!,ÿ.ÿ3ÿ<ÿFÿ Tÿ aÿ oÿ {ÿ †ÿ ÿ ™ÿ  ÿ §ÿ ­ÿ ´ÿ ¼ÿ Åÿ Ñÿ ãÿ ïÿ ùÿ +ÿÿ +ÿÿ +ÿÿ +ÿÿ +ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ-ÿ#)ÿ$)ÿ"+ÿ0ÿ8ÿCÿPÿ^ÿkÿwÿƒÿÿ•ÿÿ¤ÿªÿ±ÿ¹ÿÁÿÍÿßÿìÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ#*ÿ&&ÿ(%ÿ''ÿ#+ÿ3ÿ@ÿMÿZÿgÿsÿ~ÿ‰ÿ‘ÿ™ÿ ÿ§ÿ®ÿµÿ¾ÿÉÿÚÿéþöûÿùÿùÿøÿøÿøÿøÿøÿøÿÿ&&ÿ*"ÿ, ÿ+"ÿ(&ÿ'0ÿ$<ÿ"IÿUÿbÿnÿzÿ„ÿÿ•ÿœÿ£ÿªÿ²ÿºÿÅüÓùçõôòÿñÿðÿïÿïÿ ïÿ îÿ îÿ îÿ ÿ*"ÿ.ÿ0ÿ0ÿ0"ÿ0,ÿ.7ÿ+Dÿ(Qÿ&]ÿ$iÿ#uÿ#þ#ˆý#‘û#˜ú# ø#§÷#®õ#·ô#Áò$Ïî$äê%òè%þæ$ÿ +ä%ÿ ã%ÿ ã$ÿ â$ÿ á$ÿ á$ÿ á$ÿ ÿ.ÿ3ÿ5ÿ5ÿ8ÿ8'ÿ73ÿ4?ÿ2Kÿ/Xû.dø-oõ,zó,ƒñ,Œï,”í,œì,£ê,«é,³ç,¾ æ,Ì â-âÞ-ñ +Û,þ Ö-ÿÔ,ÿÒ,ÿÑ,ÿÏ,ÿÎ-ÿÎ-ÿÎ-ÿÿ2ÿ7ÿ:ÿ<ÿ?ÿ@"ÿ>-ÿ<9ú:Eô8Rð7^ì6jé5tæ5~ä4‡â4 à4˜ +Þ4Ÿ +Ü3§ Ú3° Ø3» Õ3É Ò4ß Î4ðÊ4ýÇ4ÿÅ4ÿÃ4ÿÃ3ÿÀ4ÿ¿4ÿ¿4ÿ¿4ÿÿ6ÿ;ÿ> ÿCÿFÿFÿF&öD2ïB?é@Lä?Yß>dÛ=oØ„}H |Q{zYwy`swhovp!lux%it‚(fsŽ+crš.`q¨/^qº0]qÔ0]qò.^qÿ,^pÿ+_pÿ)`oÿ(`nÿ(`nÿ(`nÿ(ñUÞbÊm½u³{«€¢‚˜‘ƒ…ˆ….ƒ„;~ƒE +zNu€Vq^n}fj|m g{v#cz€'`y‹*]x˜,Zw¦.Xw¸/WwÑ/Wwñ.Xvÿ,Xvÿ*Yuÿ)Ztÿ(Ztÿ'Ztÿ'Ztÿ'íY×fÅq¹z¯€¦„†‘‡Š‰ †Š‚‹+}Š8x‰BtˆL o‡Tl…[h„cdƒka‚t!]}$Z€‰(W–*U~¤,R~¶-Q~Î-Q}ï,R}ÿ+R|ÿ)S{ÿ(Tzÿ'Tzÿ'Tzÿ'Tzÿ'è^ÐkÀv´~«…¡‰—‹‰ƒ~{‘'v‘4r?mI iŽQeYbŒ`^‹h[ŠqW‰{!Tˆ†$Q‡”'O†¢)M†´*K†Ì*K…î)L„ÿ)Lƒÿ(Lƒÿ'Mÿ&Nÿ&Nÿ&Nÿ&ácÉp»{°„¦Š›Ž‘‘„“z•u—r˜"o˜0j—;f—Eb–N _•V[”]X“eU“nQ’xN‘„ K‘#I¡$G²&EÊ&Eí%Eÿ%EŒÿ%F‹ÿ$FŠÿ$FŠÿ$FŠÿ$FŠÿ$ØiÃvµ«ŠŸ•“Š–~špkŸhŸf *b 7_ŸA[ŸJXžR TžZQbNœkKœuH›E›BšŸ@š° ?šÈ ?™ë?˜ÿ >–ÿ!>•ÿ!?”ÿ!?”ÿ!?”ÿ!?”ÿ!Íp¼}°ˆ¤™”Ž˜ƒw i¤`§]¨[©$Y©1V©<S©EP¨NM¨W J¨_ G§hD§sA¦>¦<¦:¦¯9¦Ç9¥ê8£ÿ7¡ÿ7 ÿ7Ÿÿ7Ÿÿ7Ÿÿ7ŸÿÄxµ…©•’š†Ÿz£n¨b¬U°P²N²M³(K³5I³?F³ID³RA³[?³d<³o +:³{ 7³Š5²š3³­2³Å2²é1°þ0®ÿ/­ÿ/¬ÿ/¬ÿ/¬ÿ/¬ÿ»®Ž¡•–š‰ }¦q«e¯Y´N·C¼@½?½>¾+<¾6;¿A9¿K7¿T5À_3Àj1Àw/À†-À—+Àª*ÁÂ*Àç)½ý +(¼ÿ 'ºÿ '¹ÿ'¹ÿ'¹ÿ'¹ÿ²Œ¥”™š¡§r­f³Z¸O»D¿:Ä0É.Ê-Ê,Ë)+Ë5+Ì@*ÍJ(ÍV'Îa&Îo$Î#Ï‘!Ï¥ н ÏäÍúËÿÊÿÉÿÉÿÉÿÉÿ¨”œš¡‚¨t¯g¶[¼NÀCÃ9Ç/Ì'ÐÖ +ÚÛÛ&Ü1Ý<ÝHÞUßbàrà…ášâ±ãÏàôÞÿÝÿÛÿÛÿÛÿÛÿžš’¡„©v±h¸[¿NÄBÈ7Ì-Ð$ÕÛßéêëë&ì0í: îF îS +ïb ðtñ‰ò òºñäñýïÿíÿíÿíÿíÿ•¡†©x²iº[ÂMÈ@Ì4Ñ*Ö!Ûàäð ù + ú ûûü$ü,ü7üBüPüaýuüŒü¤üÁüëüÿýÿýÿýÿýÿ‰©y²j»\ÄNÌ?Ñ2×'Ýáåè +ñýÿÿ ÿÿÿÿÿ'ÿ1ÿ>ÿMÿ_ÿuÿÿ¦ÿÂÿçÿüÿÿÿÿÿÿ|³l¼]ÆNÏ?Ö1Ý%âæê îòÿÿÿÿÿÿ +ÿÿÿÿ!ÿ+ÿ9ÿJÿ]ÿsÿŒÿ¤ÿ¹ÿÔÿÞÿÞÿÞÿ,ÿ)ÿ(ÿ+ÿ0ÿ 8ÿDÿQÿ^ÿlÿxÿ‚ÿŒÿ”ÿœÿ¢ÿ¨ÿ¯ÿ¶ÿ¾ÿÈÿ×ÿçÿóÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)ÿ&ÿ%ÿ'ÿ,ÿ4ÿ @ÿNÿ[ÿhÿtÿÿˆÿ‘ÿ˜ÿŸÿ¥ÿ¬ÿ²ÿºÿÄÿÑÿäÿñÿüüÿüÿüÿüÿüÿüÿüÿüÿÿ&ÿ!"ÿ !ÿ#ÿ'ÿ0ÿ<ÿJÿ Wÿ cÿ +oÿ +zÿ +„ÿ +ÿ +”ÿ +›ÿ +¢ÿ +¨ÿ +¯ÿ +·ÿ +Àÿ +Ìÿ +àû +ï÷ +úõ ÿõ ÿô ÿô ÿô ÿô ÿô ÿô ÿÿ""ÿ$ÿ$ÿ"ÿ"ÿ,ÿ8ÿEÿRÿ^ÿjÿuÿÿˆÿÿ—ÿžÿ¥ý¬ü³ú½ùÉõÝñíîùìÿëÿêÿéÿéÿéÿéÿéÿÿ&ÿ(ÿ(ÿ&ÿ&ÿ&(ÿ#4ÿ @ÿMÿYÿeþpüzùƒ÷Œö“ôšó¡ñ¨ð°îºíÆêÙæëâùàÿÞÿÝÿÜÿÜÿÛÿÛÿÛÿÿ*ÿ-ÿ-ÿ-ÿ.ÿ-"ÿ,.ÿ):ÿ&Gú$Tö#`ò"kï"uí"~ë"‡é"ç"–å"žä"¥â"­á#·ß#ÃÝ#ÖØ$êÒ$ùÏ%ÿÍ%ÿË%ÿÊ%ÿÊ$ÿÊ$ÿÊ$ÿÊ$ÿÿ.ÿ1ÿ2 ÿ4ÿ5ÿ5ÿ3'ú14ó/Aî-Né,Zå,eâ,pß+yÝ+‚Ú+‹Ø+’Õ+šÓ+¢Ñ+ªÏ+³Í+¿Ì,ÏÈ-çÄ-÷ Á-ÿ +¿-ÿ ½-ÿ ¼-ÿ ¼,ÿ »,ÿ »,ÿ »,ÿ ÿ1ÿ5 ÿ6ÿ: ÿ<ÿ;ø9ï7+ç69á5GÜ5TÕ5`Ñ5jÎ4sÌ4|Ê4…È4Æ3”Ä3œ Â3¥ Á3® +¿3¹ ½3È »4á ·4ó ´4ÿ±4ÿ°4ÿ¯4ÿ®4ÿ®4ÿ®4ÿ®4ÿÿ5ÿ8ÿ<ÿ@ÿA úAí?ã<"Ú=1Ò>AÌ>OÈ>ZÄ=dÁ=n¿ÿCëKÝQÑTÊTÆRÁQ¹S"³U3®TAªTL¦SV¢Q_ ŸPgOošNw˜N–Mˆ“L‘‘L›K¦K³‹KʼnKâ‡L÷†Lÿ…Lÿ…Mÿ…Lÿ…Lÿ…Lÿ…Lÿÿ@üGåPÕVÊYÂZ½X¸W±Y¬Z/§Z=¢YIžXS ›W[ —Vd•Uk’TsS{R„‹QˆQ—†P£„P° ‚PÁ!€PÝ!~Qô }Qÿ}Qÿ}Qÿ}Qÿ}Qÿ}Qÿ}QÿÿBðJßTÎZÄ^¼_¶^±\ «^¥`+ `:œ_E—^P ”\X [`Zh‹YpˆXw…W€ƒV‰€V”~UŸ!{U­"yT½#xU×#wUò"vVÿ vVÿvVÿvVÿvVÿvVÿvVÿÿEìNÚXÉ^¿b·d±c«a¤cŸd(še7–dC‘cMŽaU Š`]‡_e„^l]t~\}|[†yZ‘ wZ"tYª$rYº%qYÒ%pZð#oZÿ"oZÿ pZÿpZÿpZÿpZÿpZÿÿHçRÓ[Åb»f³h¬h¥fŸgši%•i4h@ŒgJˆfS „e[db~cj{brxazv`„s_Ž!p^š#n^¨%l]¸%j^Î&i^î$i^ÿ"j^ÿ j^ÿj^ÿj^ÿj^ÿj^ÿùJãUÏ_Áe·j¯l§lŸj™k”m"n1‹m=‡lGƒkP jX|h`xggvgosfxpemdŒ!jc˜#hb¦%fb¶&dbÌ&dbì%dbÿ#dbÿ!ebÿebÿebÿebÿebÿòLßXÊb½i³n«p¢p™n“prŠr.†r;‚qE}pN znVvm^slepkmmjujigiŠ!eh–#bg¤%`g´&_gÉ&^gê%^gþ#_gÿ!_fÿ`fÿ`fÿ`fÿ`fÿïOÚ\Æeºm°r§ut”st ‰v…w+w8|vCxuL ttT qs[nrckqkhpseo|bn‡ _m”"]l¢$Zl²%YlÇ%Xlè%Ylý#Ykÿ!Zkÿ[kÿ[jÿ[jÿ[jÿëSÓ`Âi¶q¬v£y™yw‡y ƒ{|({|5w{@szIoyQ lxYhwaevhbup_tz\t…Zs‘!Wr #Ur°$SrÅ$Srç$Sqü"Tqÿ TpÿUpÿUoÿUoÿUoÿåWÍd¾m²u¨{Ÿ~“}‡}€|€x$u‚2q=m€Fi€O +fV c~^`}f]|nZ{wWz‚TzQy!Oy®"NyÃ"Mxå"Mwû!NwÿNvÿOuÿOuÿOuÿOuÿß\Èh¹r®z¥€š‚Ž‚€ƒy…t†qˆ nˆ.jˆ9g‡Cc‡L`†S ]…[Z„cW„kTƒuQ‚€NK›I¬H€Á G€ãGúH~ÿH}ÿI|ÿI|ÿI|ÿI|ÿÖaÂn´xª€Ÿ…”‡ˆ‡{‰pŒkŽ hf)b5_?\HYŽPVŽX S`PŒhMŒrJ‹}HŠŠEŠ™CŠªBŠ¿AŠáAˆùA†ÿA…ÿB…ÿB„ÿB„ÿB„ÿÍg¼t¯~¥†šŠŽŒ‚ug”a•^—\—#Z˜/W˜:T˜DR—LO—TL—\ I–e G–oD•zA•ˆ?”—=”¨;”½;”ß:’ø:ÿ:ÿ:Žÿ:Žÿ:Žÿ:ŽÿÅn¶{ª…ž‹”ˆ’{”n—b›WžR Q O¡(M¡4K¡>I¡GG¡PD¡XB¡a? k = w : … 8 ”6 ¦5 »4 Ý4÷3œÿ3šÿ3™ÿ3™ÿ3™ÿ3™ÿ½w¯ƒ£‹˜‘•™sœgŸ[¢O¦G©DªCªA«+@«7?¬A=¬J;¬S9¬\7¬g5¬s2¬0¬‘.¬£-¬¸ ,¬Ù,ªõ ++¨ÿ *¦ÿ *¥ÿ *¥ÿ *¥ÿ *¥ÿ µ€¨‹œ‘‘–…œx k¥_¨S¬H¯=²6µ 4µ3¶!2¶,1·70·A/¸K.¸U,¸`*¸m)¹{'¹%¹Ÿ$¹´#¹Ò#·ô"µÿ!´ÿ!³ÿ!²ÿ!²ÿ!²ÿ­Š ‘•—ˆ{£n¨a­U±J´?·4»+¾$ "Â"Ã!Ã* Ä4Ä?ÅJÆVÆcÇsDžǙȮÈËÆñÄÿÃÿÁÿÁÿÁÿÁÿ£‘˜˜‹ž}¥p«b±V¶J¹>½4À*Ä"ÈÌÐ +ÒÒÓ%Ó0Ô<ÔH ÕV Õe Öx Ö Ø¤ +ؾ Ùæ +Öþ Ôÿ Òÿ Òÿ Òÿ Òÿš˜ŽŸ€¦r­d´WºI¿=Â2Æ(ÉÍÑÖ ÛÞ ßßà$á.â:ãGäVägå{æ’æªçÈçðèÿèÿèÿèÿèÿ‘Ÿ‚§t¯e·W¾IÃ<Ç0Ë%ÏÔÙÝ áåéé éêë!í+ï7ñEòVóhó~ô—õ°öÐ÷ó÷ÿ÷ÿ÷ÿ÷ÿ…§v°f¸XÁJÈ;Ì.Ñ#ÖÜà ãçêõôõõ ööøú'ü4ÿCÿUÿiÿÿšÿ²ÿÏÿíÿùÿùÿùx°hºYÃKË;Ñ-Ø!Ýâæêíðøÿÿÿÿÿÿ ÿÿÿ"ÿ0ÿ@ÿSÿiÿÿ™ÿ¯ÿÃÿÕÿÕÿÕÿ(ÿ%ÿ%ÿ 'ÿ-ÿ5ÿAÿOÿ\ÿiÿtÿ~ÿˆÿÿ—ÿÿ¤ÿªÿ°ÿ·ÿÀÿÌÿßÿìÿøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%ÿ"ÿ!ÿ#ÿ +(ÿ0ÿ=ÿKÿXÿdÿpÿzÿ„ÿŒÿ“ÿšÿ ÿ¦ÿ­ÿ´ÿ¼þÈýÙûéúöùÿøÿøÿøÿøÿùÿùÿùÿÿ"ÿÿÿÿ"ÿ +,ÿ9ÿFÿSÿ`ÿkÿvÿÿˆÿÿ–ÿÿ£þ©ü°ú¹÷ÄõÒóæòôñÿðÿïÿïÿïÿðÿðÿðÿÿÿÿÿÿÿ(ÿ4ÿ Aÿ +Nÿ[ÿfÿqÿzÿƒþ‹ü’ú™øŸö¦ô­òµðÀíÎëäéóæÿå +ÿä ÿä ÿä ÿä ÿä ÿä ÿÿ!ÿ!ÿ ÿÿÿ$ÿ/ÿ<ÿIÿUüaùköuô~ò†ðŽî•í›ë¢êªè³æ½åÌáãÝóÙÿÖÿÔÿÓÿÒÿÒÿÒÿÒÿÿ%ÿ%ÿ$ ÿ#ÿ#ÿ"ÿ)ÿ5ùCôOï[ìfépæyäâ‰à‘ߘݟۧٱֻÔÊÐáÌóÉÿÆÿÄÿÃÿÃÿÃÿÃÿÃÿÿ(ÿ) ÿ(ÿ+ ÿ+ÿ)ý&"ô#.ì!;æ Iâ UÞ `Ú!jÖ!tÓ!|Ð!„Ï"ŒÍ"“Ë"›É"£È#¬Æ#¶Ä#ÄÂ$Û¾%î»%þ¸%ÿ¶%ÿµ%ÿµ%ÿµ%ÿµ%ÿµ%ÿÿ, ÿ-ÿ.ÿ1ÿ1 ý/ñ+ç)%ß(3Ø(BÑ*OÍ+ZÉ+eÇ+nÄ,vÂ,~À,†¾,޽,–»,ž¹,§¸,±¶,¿µ-ѱ-ê®.û«.ÿ©.ÿ¨.ÿ¨-ÿ¨-ÿ¨-ÿ¨-ÿÿ/ÿ1ÿ5ö7ê6ç3ä/Ù.Ï1,É3<Ä4IÀ5U¼5_º5h·5pµ4x³4€±4ˆ°4®4™¬4¢«4¬ ©4¹ §4Ê +¥5å +¡5ø Ÿ5ÿ 5ÿ 5ÿ œ5ÿ œ5ÿ œ5ÿ œ5ÿ ÿ3ÿ5ö:å>Ü@Ô=Ò7 Ë8Ã:&½=6¸>D´>P±=Z®=c¬=k©èGÕPÆV¼X´Y­V§S¡TœV%˜W4”W@WJVSŠU[ ‡Tc „Tj‚Sr€Rz}Rƒ{QŽxP™vP¦tPµsPÉqPèpQüpQÿpQÿpQÿqPÿqPÿqPÿõ@äKÏTÁZ·]¯^§[¡X›Y–["’\1Ž\=Š\G‡[PƒZX Y` ~Yg{XoyWwvV€tV‹rU–oU£mT²lTÆjUæjUûjUÿjUÿjUÿkUÿkUÿkUÿòCßOËX½]³a«b¢`›\•^`Œa.ˆa:„`E`N~_V {^] x]ev\ls\tp[}nZˆkZ”iY¡gY°eYÃdYãdYúdYÿdYÿeYÿeYÿeYÿeYÿïFÚRÆ[ºa°e¦fc•ab‹d‡e+ƒe7eB|dKxcSuc[ sbbpajm`rk`{h_†f^‘c^Ÿa]®`]Á_]á_]ø_]ÿ_]ÿ`]ÿ`]ÿ`]ÿ`]ÿëJÔVÃ^¶e¬i¢i˜ge‰f …hi(~j5zi?viIshQpgY +mg` kfghepedycdƒ`c^b\b¬Zb¿YbßYb÷ZbÿZaÿ[aÿ[aÿ[aÿ[aÿçMÏY¿b³h©mžm“k‰iƒk m|n%xn2un=qnFnmOklV hl^ ekecjm`iv]i[hXg›VgªUg½TgÜTgöTfÿUfÿUeÿVeÿVeÿVeÿâQÊ]»f¯l¦q™pŽoƒn}pxrus!rs/os:lsDirLfrTcq[ `pc ]pk[otXnUn‹Sm™Qm¨Om»NmÙNlôOkÿOkÿPjÿPjÿPjÿPjÿÝUÅa·j¬q¢u”t‰t|svuqwoxly+iy7fy@cyI`xQ]wX [w` XvhUuqRu|PtˆMt—Ks¦Is¹HsÕIróIqÿJqÿJpÿKpÿKpÿKpÿÔZÀf³o¨vyx„xwyo|j} g~d&b€2_€=\€FZNWUT~] R}e O}oL|yJ|†G{”E{¤D{·C{ÒCzòCyÿCxÿDwÿDvÿDvÿDvÿÍ_»k®t¤|—~Š}~rfƒa„^†\‡!Z‡.X‡8U‡BS‡JP‡RN†ZK†b I…l F…w C„ƒA„’?„¢=„µ<„Ï<‚ð<ÿ=€ÿ=ÿ=~ÿ=~ÿ=~ÿÅfµqª{Ÿ‚’‚…‚yƒm†_ŠXTŽRP'O3M=KEINFVD_Bh?s =Ž€ :Ž 8Ž  7޳6ŽÌ6ï5‹ÿ5‰ÿ5ˆÿ6‡ÿ6‡ÿ6‡ÿ¾m°y¥‚™‡ŒˆˆrŠfZ‘P•I— G˜E˜ D™+C™6Aš@@šH>šQ<šZ:šd7šo5™}3™Œ1™/™°.™Ê.˜í.–ÿ +-”ÿ +-“ÿ -’ÿ -’ÿ -’ÿ ¶uªžˆ“†Žxk’_•T™I@ :¢ 8£7£"6¤-5¤74¤A3¥K1¥T0¥^.¥j,¥x*¥ˆ(¥š'¥­&¥Æ&¤ë%¢ÿ% ÿ$Ÿÿ$žÿ$žÿ$žÿ¯~£ˆ—Ž“~•p˜c›WŸL¢B¦8©/¬*®)®(¯#'¯-&°7%°A$°K#±V"±c!±q±‚²”²©²Á±ç¯þ­ÿ¬ÿ«ÿ«ÿ«ÿ¨ˆ›‘”„švŸh¢[¥O©D­9°/³&¶¹»»¼ ¼*½5½@¾K¾X¾g¿x¿ŒÀ¢ÀºÀá½û¼ÿºÿºÿºÿºÿŸ”•‡›y¡k§^¬R±E´:¶/¹%¼¿ÃÆ Ê ÊÊÊ'Ê2Ë>ËKÌZÌjÌ~̫̔ÍÈÌíÌÿËÿÊÿÊÿÊÿ—–Šœ|£nª`°R¶E¹9¼.¿#ÃÆÊ ÍÑÔ ÔÕÖØ'Ù1Û>ÜKÝ[ÞnބߛߴÞÙß÷ßÿßÿßÿßÿ¥p¬a³SºE¿8Â,Æ!ÉÍÑ ÕÚÞàá âäåç$é/ë<íKî]îqï‰ð¢ð¼ðãïùðÿðÿðÿ¥r­cµT½FÄ7È*ÌÐÕÚÞâæéêìîï ñóõ ø+û9ýJþ^ÿtÿÿ¦ÿÀÿáÿõÿõÿõt®e·VÀGÈ8Í*ÒØÝ âæéìðóôöøúýÿ ÿÿÿ(ÿ7ÿJÿ^ÿvÿÿ¦ÿºÿÑÿÑÿÑÿ$ÿ"ÿ !ÿ$ÿ)ÿ2ÿ>ÿLÿYÿeÿpÿzÿ„ÿŒÿ’ÿ™ÿŸÿ¥ÿ«ÿ²ÿºÿÅÿÓÿçÿôÿÿþÿÿÿþÿþÿþÿþÿþÿÿ!ÿÿ ÿÿ#ÿ-ÿ:ÿHÿUÿaÿlÿvÿÿ‡ÿŽÿ•ÿ›ÿ¡ÿ§þ®ý¶üÀûÍùâøð÷üöÿõÿõÿõÿõÿõÿõÿÿÿÿÿ ÿÿ)ÿ6ÿCÿPÿ\ÿgÿqÿzþƒüŠú‘ù—ø÷£õªô²ò»ñÈïÜîìíúëÿêÿêÿêÿêÿêÿêÿÿÿÿÿÿ ÿ$ÿ0ÿ>ÿKÿWÿbüløuõ~ò…ñŒï“î™ì ë¦é®ç·æÃäÔâéá÷ßÿÝÿÝÿÝÿÝÿÝÿÝÿÿÿÿÿÿÿÿ +ÿ 8ÿEûQ÷\òfîpêxç€æ‡äŽâ•áœß£Ý«Û´ØÀÖÐÓçÐøÎ +ÿÌ ÿË ÿË ÿË ÿË ÿË ÿÿÿ ÿÿ ÿÿÿ$ú0ó>î Jé Vå aâ jÞ sÛ {Ù ƒÖ ŠÔ ‘Ò ™Ð Ï©Í³Ë¿ÊÐÆéÂù¿ÿ½ÿ¼ÿ¼ÿ¼ÿ»ÿ»ÿÿ" ÿ!ÿ ÿ!ÿ ÿöì(å6ßCÙOÓZÐdÍmËuÉ}DžŌĔœÀ¥¾¯½»»˸å´ö²ÿ°ÿ¯ÿ®ÿ®ÿ®ÿ®ÿÿ&ÿ%ÿ&û'ñ%ð! èÞÔ-Í<ÈIÅ UÁ!_¿"h¼"pº#x¹#·#‡µ#´$—²$ ±$ª¯$¶­%Æ«%ߨ&ó¥&ÿ£&ÿ¢&ÿ¡&ÿ¡&ÿ¡&ÿ¡&ÿÿ)ÿ(ö-ç0ß/Ù+Ö" +Î#Æ&'À(6»*D¸+Oµ,Y²,b°,j®-r¬-zª-©-Ч-’¥-›¤-¥¢-± -ÀŸ-Øœ.ï™.ÿ—/ÿ–/ÿ•.ÿ•.ÿ•.ÿ•.ÿÿ,ÿ.ê5Ý9Ñ9Ê6Ç/Á-º0!´21°4>¬5J©5T§5]¤5e¢5m 5tŸ5|5„›5š4—˜4¡–4­”5»“5Ð5ìŽ6þŒ6ÿ‹6ÿ‹6ÿŠ5ÿŠ5ÿŠ5ÿÿ/ò4â<ÒAÇBÀ@»:¶6°9ª;,¦<:£=FŸ=P=Yš=a˜=h– +¦@¢B'žC5šDB—DL”DU‘C]CdCk‹Bs‰B{‡B„ +…AŽ ƒA™ A¥ A³~AÆ|AäzBù yBÿ xBÿ xBÿ xBÿ +xAÿ +xAÿ +ö6æ@ÑHÃM¹N±M©I¤EŸFšH#–I2’J>JHŒJQŠIY‡I`…IhƒHoHw +G€ }GŠ zG•xF¢vF°uFÂsFàrG÷qGÿqGÿ qGÿ qGÿ qFÿ qFÿ ó9àDÌL¾Q´SªR¢NJ—K“M O.ŒO:ˆOE…ONƒOV€N]~Nd|Ml yMt wL} uL‡sL’qKŸoK­mK¿lKÜkLõjLÿjLÿjKÿ jKÿ jKÿ jKÿ ð=ÛHÇPºU°X¥VœS—O‘PŒR‰T+…T7‚TBTK|TSzSZxSbuRi sRq qQz nQ„lPjPœhP«fP¼ePØdPódPÿdPÿdPÿeOÿ eOÿ eOÿ ìAÔLÃT¶Y¬\ Z—W‘T‹U †WƒX'€Y4}Y?zYHwXPtXXrW_oWf mVn kVw hUfUdTšbT©`Tº_TÓ^Tò^Tÿ_Tÿ_Tÿ_Sÿ _Sÿ _Sÿ çDÏP¿X³]¨_œ]’[‹X…Z +[}\$z]1w]<t]Fq]No\Ul\]j\d h[l eZu cZaY‹^Y˜\X§[X¸YYÐYXðYXÿZXÿZXÿZWÿ ZWÿ ZWÿ ãHËS»[°a¤b—aŽ_…\^{_xa!ub.rb9obClaKjaSgaZe`b c`j `_s ^^}[^‰Y]–W]¥U]¶T]ÎT]îT]ÿU\ÿU\ÿU[ÿV[ÿ V[ÿ ÞLÇV¸_­d e“d‰caybudreof+lg7jg@gfIefQbeX`e`]dg +[dp Yc{Vc†Tb”Rb£Pb´ObÌObíOaÿOaÿP`ÿP`ÿP`ÿ P`ÿ ÙOÃZ´c©i›hg„gyesgoiljik(gl4dl=blF_kN]kVZj]Xje Vin Six Qh„Nh’Lg¡Kg²IgÉIgëIfÿJfÿJeÿKeÿ Kdÿ Kdÿ ÑT¾^±g¦m—lŠkkskmmhn epbq$`q0^q:\qCYqKWqSUpZRpbPpk Nou Ko‚ InGnŸEn°DnÇCmêDlÿDkÿEkÿ Ejÿ Ejÿ Ejÿ ËXºc­l¡q’p…ozonpes`u]v[wYx+Wx6Ux?SxHQxOOwWLw_JwhHvs Ev Cu Au?u®>uÅ=uè>sý >rÿ >qÿ ?qÿ ?pÿ ?pÿ Å^µi©qœut€tutiv^yX|T}R~Q&O1M€;L€CJ€KHTF\CeAp?~|<~Š :~š +9~¬ 7~à 7}æ 7{ü 7zÿ 7yÿ +8xÿ +8xÿ +8xÿ +¾d°o¥x–y‡y{ypzd|X€PƒK… +H†G‡ Eˆ+Dˆ5Cˆ>A‰G@‰O>ˆX<ˆa:ˆl7ˆx5ˆ‡3ˆ˜2‡ª0ˆÀ0‡ä0…û0ƒÿ0‚ÿ0ÿ0ÿ0ÿ·kªv ~‚~vj€^ƒS‡J‹AŽ=;:‘#9‘-8’77’@6’I4“R3“\1“g/“t-’ƒ+’”*’§(’½(’á'ú'Žÿ'ÿ'Œÿ'Œÿ'Œÿ±t¥~™…Š„}„o…cˆX‹MC“:—2š.›-›,œ$+œ.*8)A(K'žU&ža%žn#ž~"ž ž£ž¹žÝœøšÿ™ÿ—ÿ—ÿ—ÿª}ž…“‹…Šu‹hŽ[‘P•F™;2 *£"¦ §§¨$¨-¨7©A©L©Xªfªvª‰ªž«´«Ó¨õ§ÿ¥ÿ¥ÿ¤ÿ¤ÿ£†—Œ‘}’m•`˜TœH >¤4§*«!®±³µµµ! µ+ µ6 ¶A ¶N +¶\ ¶l¶¶”¶ª¶Å¶êµÿ´ÿ³ÿ ²ÿ ²ÿš“„˜tœe W¤K¨@¬5°*³!µ¸» ¾À ÀÁÁ"Â+Â6ÃBÃPÄ_ÄqćÄĵÄÚÄöÃÿÃÿÃÿÃÿ“”‡šx j¦\¬O±Aµ5·)º½Àà +ÆÊÌÌ ÍÎÎ!Ð*Ñ5ÓCÔRÔcÕxÕÕ§ÖÂÖéÖýÖÿÖÿÖÿŠ›{¢l©^°P¶Bº4½(ÁÄÇ ËÎÒ×ÙÚÜ Ýßáã'å3çBèTègé~é—ê¯êÎëïëþëÿëÿ}£n«_²QºBÀ4Ã'ÇËÏ ÓØÝáäåçéëí ïñô$÷1ùAúUújû„ûü¶üÒýíýôýôq¬aµR½DÄ4É&ÍÒØÝáåèìïñóõ÷ùûþÿÿ!ÿ/ÿAÿVÿmÿ‡ÿ ÿ¶ÿÊÿÔÿÔÿ ÿÿÿ ÿ%ÿ.ÿ;ÿIÿVÿbÿmÿvÿÿ‡ÿŽÿ”ÿšÿ ÿ¦ÿ­ÿµÿ¾ÿËÿáÿðþýýÿýÿýÿýÿüÿùÿùÿÿ ÿ ÿÿÿÿ*ÿ7ÿEÿQÿ^ÿhÿrÿzÿ‚ÿ‰ÿÿ–ÿœþ¢ü©û°ù¹øÆöÙõëôùóÿòÿóÿóÿóÿóÿóÿÿÿÿÿÿÿ%ÿ2ÿ@ÿLÿYÿcþmüuú}ù„÷‹ö‘ô—óžò¤ð¬î´íÀëÏéæèõæÿçÿæÿåÿåÿåÿåÿÿÿÿ ÿÿÿ ÿ,ÿ:ÿGúS÷^ôgñpïxíë†êŒè“ç™å ã§á°ßºÝÉÛàØð×þÕÿÔÿÓÿÓÿÓÿÓÿÿÿ ÿ ÿ ÿ ÿÿ&ý3ô@ïMëXèaåjâràzހ܇ڎؕԜңЬζÌÄÊÙÈíÇûÅÿÄÿÃÿÄÿÄÿÄÿÿ ÿÿÿÿ ÿ üñ+ç9âFÞQÚ[ÕdÒlÏtÍ{Ë‚Ê‰ÈÆ˜Ä Â©Á´¿Á½Õ» ì¸ ý¶ ÿµ ÿ´ ÿ´ ÿ´ ÿ´ ÿÿÿÿÿûúî ã "Ú 0Ó +>Î JÊ UÇ ^Å gÂoÁv¿~½…¼º•¸·§µ²³À²Õ®î«þ©ÿ§ÿ§ÿ¦ÿ¦ÿ¦ÿÿÿúëãßÞ ÓË(Å7ÀD¼O¹Y·a´i³q±x¯€®ˆ¬«™©£§®¦¼¤Ï¡êžüœÿ›ÿšÿšÿ™ÿ™ÿÿ"ÿ!ì'à*Ô)Í$ÊĽ"·1³ >¯!I­"Sª#\¨$d¦$l¤$s£$z¡%‚ %‹ž%”%ž›&ª™&·˜&É•'æ’'ù(ÿ(ÿŽ'ÿŽ'ÿŽ'ÿŽ'ÿÿ&ò)ã1Ò4È4À0»)¸#±&¬(+¨*8¤+D¡,NŸ-W-_›-g™-n˜.u–.}”.†“.‘.š.¦.³Œ.ÅŠ/á‡/ö…/ÿ„/ÿ„/ÿƒ/ÿƒ/ÿƒ/ÿû)ë1Ù8É<¿<¶9°2¬- §/¢1&ž34š4@˜5J•5S“5[‘5b5i5qŒ5yŠ5‚ˆ5‹†5–„5¢‚5¯5À6Ü}6ô{6ÿ{6ÿz6ÿz6ÿz5ÿz5ÿõ-ä7Ð?ÂC·D­@§:£67™9"•:/’<;hÞ >g÷ >fÿ?eÿ?eÿ?dÿ?dÿÃW³a§i–h‡g{gqgeh\jXlTnRoPo$Np.Mp8KqAJqIHqQFqYDpbBpl@px>p†¶0¹$¼¿ +ÅÉÌÐÑÒÓÕ ×ÚÜ!ß,á:âJã]ärä‹å¥åÀåæåøåÿåÿz¡k©\¯M¶?¼0¿#ÃÇÊÎÑÖÜßàâäæè éìîñ+ô:õMöa÷yø“ø­ùÆùäùóùómª^²Oº@Á1Å"ÉÎ ÒØÝáäèëíïñóöøú ýÿÿ)ÿ;ÿOÿfÿÿ™ÿ¯ÿÃÿÖÿÖÿÿÿÿÿ"ÿ+ÿ8ÿFÿSÿ^ÿiÿrÿzÿ‚ÿ‰ÿÿ•ÿ›ÿ¡ÿ¨ÿ¯ÿ¹ÿÅÿÙþìýûûÿûÿûÿúÿôÿðÿðÿÿÿÿÿÿÿ&ÿ4ÿBÿNÿZÿdÿmÿuÿ}ÿ„ÿŠýü–úù£ø«÷´õ¿ôÎóæñöðÿïÿïÿîÿîÿêÿêÿÿ ÿÿÿÿÿ"ÿ.ÿ<ÿIÿTþ_ûhùp÷xõó…ò‹ð’ï˜íŸì¦ê®è¹çÇåÞãðâþàÿàÿáÿáÿáÿáÿÿ ÿ ÿ ÿ ÿÿÿ(ü6ùCöNòYïbìkêrèyæ€ä†âŒá“ߚݡ۪شÕÀÒÓÐêÎúÍÿÍÿÍÿÌÿÌÿÌÿÿ ÿ ÿÿÿÿö"ð/ì<éHåSá\ÞeÛl×sÔzҀЇΎ̕ÊȥƯĻÂËÀå¾õ½ÿ¼ÿ¼ÿ¼ÿ¼ÿ¼ÿÿÿÿ +ÿÿ +øéã(Þ5ÙAÓLÏVË_ÉfÆnÄtÂ{Á‚¿‰½¼˜º¡¸«¶·´Ç²à±ò¯ÿ®ÿ­ÿ­ÿ­ÿ­ÿÿÿÿò ê +é ÝÔÍ-È:ÄEÀP½Y»a¹h·oµv´}²„±Œ¯•­ ž« ¨ª +µ¨ +Ŧ ߤ ô¢ÿ ÿŸÿŸÿŸÿŸÿÿÿïäÛÒÏ ÈÁ +$¼ 2· >´I±S¯[­c«j©q¨x¦€¥ˆ£‘¡› ¦ž³œÛÞ—ô•ÿ”ÿ“ÿ’ÿ’ÿ’ÿÿôå#Õ%Ê$¾»´¯+«8§C¥M¢V ]žel›sš{˜ƒ—•—“¢’¯¿ØŒ ñ‰ ÿˆ ÿ‡ ÿ‡ ÿ† ÿ† ÿúë&Ú-Ê0¾.µ(°"® ¨£&Ÿ!3œ">™#H—$Q•$Y“%`’%g&nŽ&v&‹&ˆŠ'“ˆ'ž†'«„'»ƒ(Ñ€(î~)ÿ})ÿ|(ÿ|(ÿ|(ÿ|(ÿõ$ã.Ï5Á8´6«1¥,¢&ž&™(!•*.’+9,D-L‹-T‰.\‡.c†.j„.r‚.z/„/}/š{/§z/·x/Ìv0êu0þs0ÿs0ÿs/ÿs/ÿs/ÿð*Ü5Ç;º?¬<¢8œ3˜/•.0Œ2)‰35†4?„5I‚5Q€5X~5_}5f{6ny5vx5€v5‹t5—r6¤p6´o6Èm6çl6ük6ÿk6ÿj6ÿj5ÿj5ÿê0Ó:ÂA³C¥A›>•:6Œ5 ˆ7„8%:1;<|;Ez"z?.x@8uABsAJrAQpAYnA`lAgjAphAygA„eA‘cAŸaA®`AÂ^Aâ^Aù]Aÿ]@ÿ]@ÿ]@ÿ]@ÿß9ÈC¹J©K›IGˆDƒA~AzBvCtE*qE5oF?mFGkFOjFVhF]fFedFmbFv`F‚^FŽ\Eœ[E¬YF¿XFßXF÷WEÿWEÿWDÿXDÿXDÿÚ=ÄGµN¤N–L‹KƒI}ExFtGpHnI'kJ2jK<hKDfKLdKSbKZ`Kb_Kj]Kt[JYJŒWJšUJªTJ½SJÜRJöRJÿRIÿRIÿRHÿSHÿÔAÀK²Q P’O‡N~LxHrJnK kMhN$fN/dO9bOBaPI_PQ]PX[O`YOhWOrUO}SOŠRN˜PN¨NN»MNÙMNõMNÿMMÿMMÿNLÿNLÿÎD¼N®TœSŽRƒQzPrMlOhP eQcR!aS,_S6]T?[TGZTNXTVVT]TTfRSoPS{NSˆLS—KS§ISºHSÕHRóHRÿHQÿIQÿIPÿIPÿÊH¹RªW˜VŠUTvSlQgSbT_V]W[W)YX3XX<VYDUYLSYSQY[OXdMXmKXxIX†GW•EW¥DW¸CXÒCWòCVÿCUÿDUÿDTÿDTÿÆLµV¥Z”Y†X{XqWfVaX]YYZW[U\&S]0R]9Q^AO^IM^QL^XJ^aH]kF]vD]ƒB]’@]£?]¶>]Ð=\ñ>[ÿ>Zÿ>Zÿ>Yÿ?YÿÁP±Z¡]\‚[v[m[a[[]V^R` PaNb"Mb,Lc5Jc>IcFGcNFcVDc^Bch@cs>co=o"ÿJÿVÿ`ÿhÿpÿxý~ü…ú‹ù‘ø˜÷žõ¦ô®ò¹ñÇïàîòìÿìÿìÿëÿåÿàÿÞÿÿÿÿ ÿ ÿÿÿ+ÿ8ÿEþPûZøcõkórñyïî†ìŒê’é™ç æ©ä³áÀàÓÞëÜûÛÿÚÿÚÿÙÿÔÿÒÿÿ ÿ ÿÿ ÿÿû%ø2õ?òJíTê]çeälâsàzހ܆ÚהԛҤϭ͹ËÉÉäÈöÆÿÅÿÆÿÇÿÇÿÇÿÿ +ÿÿÿÿ ôïê,å8âCÝNÙWÔ_ÑgÎmÌtÊzȀƇŎÖÁž¿¨½³ºÂ¹Û·ðµÿ¶ÿµÿµÿµÿµÿÿ ÿÿþöè àÙ$Ñ1Í<ÊGÆQÃYÀ`¾g¼nºt¹{·‚µ‰³‘²š°¤®¯¬½ªÐ¨ë§û¦ÿ¦ÿ¥ÿ¥ÿ¥ÿÿ ÿô ê âÚÏÈÂ)¾5»@·J´S²[°b®h¬o«u©}¨„¦¤–£ ¡«Ÿ¹Ìœèšù™ÿ˜ÿ—ÿ—ÿ—ÿÿ÷èÜÎÆ  ¼·!².®:«D¨M¦U¤ \¢ +c  +jŸ q xœ €š ‰™ “— ž• ª” ¸’ ÌêŽüŒÿ‹ÿ‹ÿ‹ÿŠÿûíÝ Ì!¿·³² « §&£3Ÿ>GšP˜W–^•e“l’s|…‹šŠ§ˆµ†É„ç‚û€ÿÿÿÿÿõä#Ï)À*³&ª"¥¤ ›!—-”8‘BKR‹Y‰`ˆg†o…wƒ€‚‹€—~ £} ²{ Åy!äw"ùv"ÿu"ÿt!ÿt!ÿt!ÿï!Û+Ç1¶1©. *›&˜!• !(‰#3‡$=…$Fƒ%N&U&\~&c|'k{'sy'|x(‡v(“t( r(¯q)Áo)àm)÷l)ÿk)ÿk)ÿk(ÿk(ÿè(Ð2À8®7¡5˜2’-Ž)‹' ‡(ƒ*#€+/~,9|,Bz-Jx.Qw.Xu.`s/gr/op/yo/ƒm/k/i/¬h0¾g0Ûe0õd0ÿc0ÿc/ÿc/ÿc/ÿâ.Ê8º=¨<š:‘7Š3†0ƒ. /{0x2+v35t3>r4Fp4No5Um5\l5dj5lh5ug5€e5Œc5ša6©`6»_6Ö]6ó]6ÿ\6ÿ\5ÿ\5ÿ\4ÿÜ3Å<´A¢@•>‹<„96{4w5t7q8'o92m9;k:Cj:Kh;Rg;Ye;ac;ib;r`;}^;Š\;—[;§Y;¸X;ÒW;ñV;ÿV;ÿV:ÿV:ÿV9ÿÔ7ÀA¯DCB…@~>y;t:q:m<k=$i>/g?8e?@d@Hb@Oa@W_@^]@f\@oZ@zX@‡V@•T@¤S@¶R@ÏQ@ïP@ÿP?ÿP?ÿQ>ÿQ>ÿÏ;½EªG™F‹EDyBt>o?k@ gAeB!cC+aC5_D>^DE]EM[ETYE\XEdVEmTExRE…QD“OD£ME´LEÌKEíKDÿKDÿKCÿLBÿLBÿÊ?¹H¦J•I‡H}GuEnBiCeD bE_F]G(\H2ZH;YICWIJVIRTIYSIaQIkOIvMI‚KI‘JI¡HI³GIÊFIìFHÿFHÿGGÿGFÿGFÿÆC¶L¢L‘L„KyJpIiFdG_I\JZKXL%VL/UM8SM@RMHQNOONWNN_LNiJNsHM€FMEMŸCM±BMÈAMêALÿALÿBKÿBJÿBJÿÂG³OžON€NuMlLcJ^LZMVNTORP"QQ,OQ5NR=MRELRMJRTIR]GRfERqCR~AR?R>R¯=RÆW{?\F>]O=]W;]a:]l8]y6]ˆ4]™3]«1]Â1\å1[ü1Zÿ1Yÿ2Yÿ2Xÿ¶T¤YX€XsWiW`XTYN[H]C_@`>a=a ;b):b29b:8cB7cK6cT4c]3ch1cv/c….c–,c©+c¿*cã*bû*`ÿ+_ÿ+_ÿ+^ÿ±Yž\‹\{[o[e[\\Q^I`Cb“K“Y“i“{’’¦‘¿‘åúÿÿÿw}uptbuUxI|?€4„+‰"‘”— ›žž"Ÿ+Ÿ5 B P _ q ‡ŸŸµžÚöÿœÿœÿ†}x|i|[NƒAˆ6Œ,‘#–šž ¡¤§©© +ª«¬­"®+¯7¯E¯T¯f¯{®”®«®É®ï­ÿ­ÿ­ÿ„q„a‡S‹F9–.›# ¤¨ ¬¯²¶··¸¹ º»½!¾+À8ÀHÀZÁnÁ†Á ÁºÁãÀùÀÿÀÿyhY”Kš= 1¥%«¯³ ¸»¾ÁÄÅÆÇÈÊ ÌÎÐÓ+Õ:ÕLÖ`ØwؒجÙÉÙìÙûØÿp™`žQ¤Cª5°(¶º¾ ÁÅÈËÏÒÓÖØÛÝßâ åèì*í<íQîgïïœð·ðÓðìðôg¦X­I´:º*¾ÂÆÊÎÒÖÜàãäæèëíïòõ +øüÿ,ÿ?ÿUÿnÿŠÿ¤ÿºÿÑÿáÿÿÿÿÿÿ%ÿ2ÿ?ÿKÿVÿ`ÿhÿpÿxÿÿ…ÿ‹ÿ‘ÿ˜ÿžþ¦ý®ü¹úÈùâøô÷ÿöÿöÿïÿçÿâÿÞÿÿÿÿÿÿÿ ÿ-ÿ:ÿFÿQÿ[ÿcþküsúyù€÷†öŒõ’ó™ò ð©î³íÁëÖêîéþçÿçÿåÿÝÿÕÿÑÿÿ ÿ +ÿÿ ÿÿÿ(ÿ5ÿ@úKöUó^ñfîmìtëzé€ç†æä“â›à£Þ­Ü¹ÚÊ×æÔøÒÿÒÿÒÿÎÿÉÿÆÿÿÿÿÿÿ ü÷"ó.ï:ìEèOäXá`ÞgÛmÙtÕzӀчώ͕˞ɧdzÅÂÃÜÁñ¿ÿ¿ÿ¾ÿ¾ÿ½ÿ»ÿÿÿÿÿöîçá'Ý3Ù>ÓIÏRËYÈaÆgÄmÂsÀz¿€½ˆ»¹˜¸¢µ­³»±Î°ê¯ü­ÿ­ÿ®ÿ®ÿ®ÿÿÿýòèÞ ÓÌ!È,Ä8ÁB½KºS¸Z¶a´g²m°t¯z­‚¬Šª“¨¦¨¤µ¢Æ¡ãŸöžÿžÿžÿžÿžÿÿûîâÕËý¸%´1±;®E¬M©U§[¥b¤h¢n¡uŸ|ž…œŽš˜˜¤–°•Á“Ü’ò‘ÿÿÿÿÿý +ðáΠ»· +±¬¨)¥4¢>ŸGO›V™\—c–i”p“x‘€ŠŽ•Œ¡Š®‰¾‡؆ ð„ +ÿƒ ÿƒ ÿƒ ÿƒ ÿöæÒÀ³¬¨ ¦ ¢"™ .– +8” A’ J QŽ XŒ ^‹ e‰ lˆt†}…‡ƒ“Ÿ€­~¾}ÛzôxÿwÿwÿwÿwÿïÛ!Æ$´#¨  ›™˜“'Œ2‰<‡D…LƒSZ€`~h}o{xyƒxvœtªs»rÔoñnÿmÿmÿmÿmÿç Ð)¼+«*ž(–$ Œ ˆ„"-~7|@zHyOwUv\tcskq tp n!‹l!˜k!§i"¸h"Ïf"îe#ÿd#ÿd"ÿd"ÿd!ÿà&È/´1£0–.+‡(„$‚ ~ {"x#)u$3s%<q%Cp&Kn&Rm'Yk'`j'hi(qg({e(ˆd)•b)¤`)µ_)Ë^*ì\*ÿ\)ÿ\)ÿ\)ÿ\(ÿØ,Ã5­543†1€-|+y(v'r)p*%m+/k,8j,@h-Gg-Ne.Ud.]c.ea/n_/x^/„\/’Z/¡Y/²X0ÈV0éU0þU/ÿU/ÿU.ÿU.ÿÐ1½:¨9—8Š7€6z2u0r.n. k/i0!f1+d24c2=a3D`3K_4R]4Z\4bZ4kY5uW5‚U5T5ŸR5°Q5ÆP5çO5ýO5ÿO4ÿO4ÿO3ÿË6¸=£<’<…;{:t7o5l3h4 +e5b6`7(^71]8:[8AZ9HY9PW9WV:_T:hS:sQ:O:N:L:®K:ÃJ:åI:üI9ÿI9ÿI8ÿJ8ÿÇ:³@ž?Ž?>w=p;j8f8b9_:\;Z;%Y<.W=7V=>T>FS>MR>UQ>]O?fM?pL?}J?‹H?›G?¬E?ÁD?ãD>ûD>ÿD=ÿD=ÿE<ÿÃ>¯CšBŠB}As@k?e<`<\>Y>W?U@"SA+RA4PB<OBCNBKMCRKCZJCdHCnGC{EC‰CC™BC«@CÀ?Cá?Cù?Bÿ?Aÿ@Aÿ@@ÿ¿AªE–E†EyDoDgB`?[AWBTC QDOENE(LF1KF9JGAIGHHGPFGXEGaCHlBHx@H‡>H—CKFBLMALV@L_>LjPC%cG#cQ"d\!didydŠdžd³dÎcñaÿ`ÿ`ÿ_ÿ¡YŒX{XmXbXYXPYG[>^7`1c*f$i !j jj k(k0k9kBlLlXleltl†lšl¯lÊkïiÿhÿhÿgÿ™]…]u\h\^\U\K^Ba9d2g+j$mps ttt!u)u2u;uFuRu_ un u u• +uªtà tç +sý qÿ qÿ pÿ‘bapadaZaObEe‡2'’—œ ¤¨«®¯°±³ +´µ¶¸$º1º@ºR»e»}º—º±ºÒºó¹ÿ¹ÿoƒ_†Q‹C6—*¢§ ¬°´·»¾¿ÀÁÃÄÅ ÇÊÍ$Î3ÏDÐXÐnшФÐÁÑæÑøÑÿgW”Iš;¡.§!­³¸¼ÀÃÆËÍÎÐÑÔÖÚÜ ßãæ$ç6èIé_êxë”ë¯ëÌìèìö_žP¤B«4²&¹¾ÂÅÊÍÑØÛßàâäæéëîñõ ùü%ý9þOÿgÿ‚ÿÿµÿËÿäÿÿÿÿÿÿ"ÿ/ÿ;ÿGÿRÿ[ÿdÿlÿsÿzÿ€ÿ†ÿŒþ“ý™û¡ú©ø´÷ÂöÚõñôÿóÿóÿéÿàÿØÿÓÿÿÿ ÿ +ÿ ÿÿÿ*ÿ6ÿAÿLÿVþ_ûfùm÷tõzô€ò†ðï”í›ì¤ê®éºçÍåéäûãÿâÿÞÿÑÿÌÿÈÿÿ ÿÿÿÿÿÿ$ý0û;÷FóPïYì`êgçnætäzâ€à‡ÞŽÜ•ÚžÖ¨Ô³ÑÃÏßÎôÌÿËÿËÿÅÿ¿ÿ¼ÿÿÿÿÿý ÷ñí*ê5ç@âJÝRÙZÕaÒgÐmÎsÌzʀȇÆÄ˜Â¡À­¾»¼Ðºí¹þ¸ÿ¸ÿ·ÿ³ÿ°ÿÿÿÿùîåÞØ#Ò.Ï9ËCÇLÄTÁ[¿a¼g»m¹s·zµ´‰²’°›¯§¬´«Æ©ä§ø¦ÿ¦ÿ¥ÿ¥ÿ¤ÿÿÿõêÞÐ +Ⱦ(»3¹=µF²M°U­[¬aªg¨m§s¥z¤‚¢Œ –Ÿ¡®›¾™Ø—ñ–ÿ–ÿ—ÿ—ÿ—ÿÿõçÔÉÀ¸³¯!«,¨6¦?£G¡OŸU[›ašg˜n—u•}”†’‘œŽ©Œ¸‹Í‰ëˆýˆÿˆÿˆÿˆÿùé Ôà · °« ¦¢ž%›0˜9–A”I’PVŽ\b‹iŠpˆx‡…Œ„˜‚¥€´~È}ç|ù{ÿ{ÿ{ÿ{ÿñÞÅ´©¡ž +› —“)3Š<ˆC†K…QƒW‚^€dl}t|~z ‰x –w +£u +³s Çr æp ûp ÿo ÿo ÿo ÿèй©•Ž +‰ † #ƒ -€ 6~>|F{MySxZvauhsqq{p‡n”l¢k²iÇhçfýeÿeÿeÿeÿ߯$°$ #”!‹†ƒ‚|y(v1t:rAqHoOnVl]kdimhwfƒdcŸa¯`Ä^ä]û\ÿ\ÿ\ÿ\ÿÕ%½*¨)˜)Œ(ƒ%}"yxvro#m-k5i=hDfKeRc Yb aa i_!s]!\!Z"œY"¬W"ÀV#áU#ùT#ÿT"ÿT"ÿT"ÿÍ+¶.¢.’.…-|+v(r&o#m! j"g#e$)c$1b%9`&A_&H]&O\'V[']Y'fX(pV(|T(ŠS)™Q)ªP)¾O)ÞN)÷M)ÿM)ÿM(ÿN(ÿÈ0°2œ2Œ2€1v0p-k+h)f( c(`)^*%\+.[+6Y,=X,DW-LU-ST-[S-cQ.nP.zN.ˆL/—K/¨I/»H/ÛH/öG/ÿG.ÿG-ÿH-ÿÄ4«5—5‡5{5r4k2f/b._-\.Z/X0"V0+U13S1:R2BQ2IP2PN3XM3aK3kJ3wH4…G4•E4¦C4¹B4ÖB4ôB4ÿB3ÿB2ÿB2ÿÀ8§8“8ƒ8w8m7f6a3]2Y2W3 T4R5Q5(O60N68L7?K7FJ7NI8VG8_F8iD8uC8ƒA9“@9¤>9¸=9Ó<9ó<8ÿ=7ÿ=7ÿ=6ÿ»;¢;;;s;j:b9]7X6T7Q8 O9M9K:%J:-H;5G;<F=<=‘:=£9=¶8=Ñ7=ò7<ÿ8;ÿ8;ÿ8:ÿ¶=ž>‹>|>o>f=^=X;S:O;L<I=G>F?"D?*C?2B@:A@A@@I>AQ=AZÿ±@š@‡@xAlAb@[@T?N?J@FADBBC@C?D'>D/:EF9EN8FX6Fb5Fn3F|1F0FŸ.F³-FÌ-Fï-Eÿ.Dÿ.Cÿ.Cÿ¬C–CƒCtChC_CWCPCHCDEAF>G nJnWnenvnŠmŸm¶lÖlókÿjÿjÿ…ZtZfZ\YSYHZ?]6`.c&gjmqt +w +wwww$x-x7xCxPx^xox„x™w°vÍuðuÿtÿtÿ~_n_b^Y^M_Bb9e0h'lptw {~€ ‚ƒƒ&„0„;„H„W„h„|„“ƒª‚Åëþ€ÿ€ÿweid_cRdGgÀG¼NºU·[µa³g²m°s®z¬‚ª‹¨•§ ¥­£¾¡Û ôŸÿžÿŸÿÿ›ÿÿüîàО¹µ#³.°7­@ªH¨O¥U£[¢` fŸls›{š„˜Ž–š•§“·‘ÌìÿŽÿŽÿŽÿÿüïÛɽµ® ©¥¢' 1:šB˜I–O”U“[‘`gŽmu‹~‰‰ˆ•†¢…±ƒÄä€ùÿ€ÿ€ÿ€ÿôà Ç·¬¦ ›˜•!’*3<‹C‰I‡P†U„[ƒah€p~y|„{yx¬v¾uÝsôsÿsÿsÿsÿé Ϲ©ž— “ Œ‰†$ƒ.6>}D|KzQyWw]vdtlsuq€onšlªk»iÖhñhÿgÿgÿgÿßîž“‹†„ ƒ €|y(w0u8s @r Fp +Lo +Sm Yl aj ii rg ~f ‹d ™b ©a »` Ø^ó]ÿ]ÿ]ÿ]ÿÔ¹¤•‰{xxw sp"n+l3j;iBgIfOdVc]af`o^{\ˆ[—Y§WºVÕUóTÿTÿTÿTÿÊ"°"##"y!sonm jge'c/a7`>^E]K\RZZYbWlVwT…R”Q¤O·NÐMñLÿLÿMÿMÿÃ&ª'–'‡({'r&l$h!fdb_]#[+Z3X:WAV HT OS WQ!_P!iN!tM!‚K"‘I"¢H"´G"ÍF#ïE#ÿE"ÿF"ÿF!ÿ¼*¤+‘+‚,v+m*f)b&_$]"[!X"V#T$(S$0R%7P%>O&EN&LL&TK'\I'fH'qF'E(C( A(²@(Ë?(í?(ÿ?(ÿ@'ÿ@'ÿ·-Ÿ.Œ/}/q/h.a-]+Z(W'T' R(P)N)%M*,K*4J+;I+BH,IF,QE,ZD,dB-o@-}?-=-ž<-°:-È:-ë:-ÿ:-ÿ:,ÿ:,ÿ²0›1ˆ2y2m2d2]1X/U,Q,O- L-J.I/"G/*F01E08C0?B1GA1O@1W>1a=2m;2{92‹82œ62¯52Ç42é42ÿ51ÿ51ÿ50ÿ­3–4„5u5i5`5Y4T3P0L1I1G2E3C3B4'@4.?56>5==5D<6L:6U96_76k66x47‰27š17­/7Å/7è/6þ05ÿ05ÿ04ÿ©6’6€7r8f8]7V7P6K4G5D6A7 ?8>8<9$;9,:939::8:B6:J5:S4;]2;h0;v/;‡-;™,;¬*;Ã);æ*:ý*:ÿ+9ÿ,8ÿ¤8Ž9|:n:c:Z:S:M:F8B:?;<< :<8=7=!6>)4>03>72??1?G0?P.?Z-@f+@t)@„(@—&@ª%@Á$@å$?ü%>ÿ&=ÿ&=ÿŸ;Š<x=j=_=V=O=I=B=<>9?6A4A2B1B/C%.C--C4,D<+DD*DM(DX'Ec%Eq#E‚"E• E¨E¿DãDûCÿ Bÿ!Aÿš>…?t@g@\@S@L@F@>A8C4E0F-G +H*H)H"(I)'I1%I9$IA#JJ"JU JaJoJJ’J¦J½JàIúHÿGÿGÿ•B€BpCcCXCPCICBD;E5G0I+K&M $N"N!O O%O,O5O=PGPQP]PkP|PP¤PºPÞOøNÿMÿMÿE{FkF_GUGMGFG?G7J1L+N&P SU VVV V'V0V9WBWMWYWhWyWŒ W  W¶ VÔ Vô Uÿ TÿSÿˆIvJgJ[JQJJJCJ;L3N,Q&T!VY\^ ^^^"^* ^3 ^= ^H +^T^b^s^†^›^±]Ì]î\ÿ[ÿ[ÿNpNbNWNNNGN>O6Q.T'W!Z]`c f gggg$g-g7gBgNg\gmg€f•f¬eÇeëdüdÿcÿzRjS]RTRKRBS9U0X([!_beh kn ooopp'q0q;qHqVqfqyqp§oÁoçnümÿmÿsXeWZWQVFWÿHÿRÿZÿbÿiÿoÿuþ{üûˆù÷—õ óªò·ïÉíæìûëÿëÿÝÿÎÿÆÿÂÿÿÿÿÿÿ ÿÿ!ÿ,ÿ8ÿCýLùT÷\ôcòiðoîuì{ê‚è‰ç‘äšâ¤à°ÝÀÚÜØôÕÿÓÿËÿÁÿ»ÿ·ÿÿÿÿÿÿ +ýùö'ô2ð<ìFèNäVá\ÞcÜhÙnÕtÒ{Ð‚ÍŠË“ÈÆ¨Ä·ÁÌÀë¾ÿ½ÿ½ÿ´ÿ®ÿ«ÿÿÿÿúòêåà!Ý+Û6Ó?ÎHÊOÇVÄ\ÂaÀg¾m¼sºz¸‚¶‹´–²¡°¯®Á­à«÷ªÿ©ÿ¦ÿ¡ÿŸÿÿÿ÷èÜÐ +ÊÅÂ%¿/¼8¸AµH²O°U®[¬aªf¨l§s¥{£„¡ŽŸš§›¸šÐ™ï˜ÿ—ÿ–ÿ”ÿ’ÿÿöäÒÅ»µ°¬ª)¨2¥:¢B IžOœUšZ˜`–f•l“t’}‡Ž“Œ¡‹°ŠÅˆæ‡û†ÿ‡ÿ‡ÿ†ÿøåͽ³ª£ +Ÿ›™#—,•4’<CŽIŒOŠT‰Z‡`†f„nƒw~›|ª{¼zÛxõxÿxÿxÿxÿíÑ»¬¢›–‘ ‹ˆ&†.„6‚=€C~I}O|Uz[yawiuqt|rˆq–o¥n¶mÎlîkÿkÿkÿkÿß Â ® ž “ Œˆ… | z(x0v8t>sDqJpPnVm]ldjmhwg„e’d¡c²aÉ`é`ü`ÿ`ÿ`ÿж¢“ˆ€| y x usp#n+l3j9i@gFfLeRcYba`j_t]\ZŸY°WÆV çV +ûU +ÿU +ÿV +ÿÆ­™Švqnm m j g +e +&c .b 5` <_ B^ H\ O[ VY ^XhVsU€SQŸP±NÈMêMýMÿMÿMÿ¼¥’ƒwoifddb_]![)Z1X8W>VETLSSQ[PeNpL}KŒIœG®FÅEèEþEÿEÿEÿµž!‹"|"q"h!b_\[Z WUT%R-Q4O;NBMHKPJXHbGmEzC‰Bš@¬?Â>å=ü>ÿ>ÿ>ÿ¯#˜$†%w&l&c%]$Y"VTS QNM"K)J1I7G>F EE MC UB _@!j?!w=!‡;!˜9!ª8"À7"ã7"û7"ÿ8!ÿ8!ÿª&”')s)g)_)X(T&Q#O"L"J"H"G#E$&D$.B$4A%;@%C?%J=&S<&\:&g9&u7'„5'–4'¨2'¾1'á1'ù2&ÿ2&ÿ3%ÿ¥)*},o,d-[,U+P*L(J&G'D' B(A(?)#>)+=)2<*9;*@9*H8+P6+Z5+e3+r1+‚0,”.,§,,¼+,Þ,,ø,+ÿ-*ÿ-*ÿ¡,‹-y.k/`/X/Q.L.H,E+A+?, =,;-:.!9.(7./6/65/>4/E3/N10X00c.0p,0€*0’)0¥'0º&0Ü&0÷'/ÿ(/ÿ(.ÿœ.‡0v1h2]2U2N1H1D0@/<0:1 71625233%23,13304;/4C-4L,4V*5a)5n'5~%5#5£"5¹!5Ù!4ö"4ÿ#3ÿ#2ÿ˜1ƒ3r4e4Z5Q5K4E4@4:374452607/7.7"-8)+81*88)9@(9I&9S%9_#9l!:| :Ž:¢:·9Õ9õ8ÿ8ÿ7ÿ“46n7a7W7N7H7B7<75829/:,; *<)<(=&=&%=.$=5#>=">F >P>\?i?y?Œ? ?µ>Ò>ó=ÿ<ÿ<ÿŽ7z8j9^:S:K:E:?:9:2<.>)@&A$B"B!B C#C*C2C:DCDMDYDgDwDŠDžD³DÐCòBÿBÿAÿ‰;v<f=Z=P=H=B=<=6>/@*B%D!FH IIII&I.J6J@JJJVJdJtJ‡ J› J° +JÊ Iì Hÿ Gÿ Gÿƒ>q?b@V@M@E@?@9A2B+E&G!IKNPPPP!P)P1 P; QF QQ +Q_ QoPP–P«PÅOèOûNÿMÿ}BkC]DRDJDCCüGøOôWñ]îcìiêoèuæ|äƒâ‹ß•ÜŸÙ«Õ»ÒÔÏòÍÿÌÿÅÿºÿ´ÿ°ÿÿÿÿÿÿùõó"ñ-í7ç@âIßPÛW×]ÔcÑhÏnÌuÊ|ȄŘÀ¤½²»Æ¹è¸ý·ÿ¶ÿ­ÿ§ÿ£ÿÿÿÿõëä ÞÙÓ&Ñ0Ì:ÈBÄJÀP½V»\¹a·gµm³t±|¯…­ªœ¨ª¦»¥Ú£õ£ÿ¢ÿžÿšÿ—ÿÿþïßÐÇÁ¼¹ ·*µ3°;­C«I¨O¦U¤Z£`¡fŸmtœ}šˆ˜”–¢”²’É‘ë‘ÿÿÿŒÿŠÿüìÙǺ±« §¤¡$ ,ž5›<˜C–I”O’TZ_f‹m‰vˆ€†Œ„š‚ª¾€à€ùÿÿÿ~ÿñØÂ³¨ ™•’Ž&.Š6‡=…C„I‚NTY~`|gzoyzw†u”t£rµrÏqñpÿpÿpÿqÿáİ¢—‘‹† ƒ!})|0y7x=vCtIsNrTpZobmjktj€hŽge¯eÆdèdýcÿcÿdÿ϶£”‰‚~{wurq#o+m2l8j>iDgIfOeVc]be`o_{]‰\™[ªY¿YáXøXÿXÿYÿ ª —‰}v q +om +kige&c-a3`9_?]E\K[RZYXbWlUxS†R–Q§P»OÛNôNÿNÿNÿ¸¡Žtlgec c a^\![(Y/X5V;UBTHSOQVP _N iM vK +„I +”H +¦G +ºF +ØE óE ÿE ÿE ÿ°™‡xme_\ZZZ W U S $R +P 1O8N>MEKMJUH^GhEuC„A•@¦>»=Ü=ö=ÿ=ÿ>ÿ©’rg_YUSRR +PNL J'I.H4G;EBDICRA[?e>r<:’8¤7¹5Ø5õ6ÿ6ÿ7ÿ£{ m!b!Z!TPMLKIGED$B*A1@8??=F<O:X9c7o5~32¢0·/Ó/ó/ÿ0ÿ0ÿˆ"w#i$^$V$P#K"H FEC A?>!<';.:59<7D6L4 V3 `1 m/ |-!Ž,! *!µ)!Ð)!ò)!ÿ* ÿ+ ÿ™"„%s&e'['S'L&G%D$B!?!=! ;!9"8"6#%5#+4$23$92$A0$J/%S-%^+%k*%z(%Œ&%Ÿ$%³#%Î#%ð$%ÿ%$ÿ%$ÿ”%€'o)b*W*O*I)D(@'=&:%7&5&4'2'1("0()/(0-)7,)?+)G))Q(*\&*i$*x#*Š!**²*Ì*ï)ÿ )ÿ!(ÿ(|*l+_,T,L,F,A+<+8*5*2+0+ .,-,,,*-&)--(-4'.<&.E$.O#.Z!/g/v/ˆ/›/°/Ê.í.ÿ-ÿ-ÿŒ+x-h.[/Q/I/C/>.9.4.0.-/+0 +)1'1&1%2#$2*#21!39 3B3L3W3d4t4†4š3®3È3ì3ÿ2ÿ1ÿ‡.t/e1X1N2F2@1;16111+3(4%5#6 !6 77 7'8.868?8I9U9b9q9„9˜9­8Ç8ë8ÿ7ÿ6ÿƒ1p2a4U4K4D4=48434-5(7$9 :; <===#=+>3><>F>R>_>o> >• >© +>Á +=ä =û <ÿ ;ÿ}4k6]7Q7H7A7;75707*9%; =?AC CCCD'D/D9 DC DN D[ DjD|DC¥C½CàCöBÿAÿx8g9Y:N:E:>:8:3:-;'=!@BDFI + J J J J#J+J4J>JIJVJeJwJ‹J¡I¹IÝIõHÿHÿr<b=U>J>B=<=6=/>)@#BEGJL O P QQQQ&Q/Q9QDRQR`QrQ‡QQµPØPõOÿOÿl@]AQAGA@@9@2A*C$FHKNQ SVW XXYZ!Z)Z3Z?ZLZZZlZY™Y±XÑXôWÿWÿeEXEMEED>D5E-G%JMPSV +Y\^_ ` abcd#d-d8dEdTdfd{c“c­bÌaòaÿ`ÿ_JSJJICH9I/L'ORUY ]`cfhij +k mnpq&q1p>pNp_psoo§nÆmïlÿlÿZOPNHM=N3Q)T X\` dhkortuwx z |}€(€5€EVk„~ }¾|é{ÿzÿVTNSBT7V,Z"_ch mrvz}€ƒ„†‡‰‹ ’’,’;’M‘b‘z—´ŽáŒûŒÿUYHZ;]/a$flr +w}‚†‹Ž‘“•—™›Ÿ +¢¤¦!¦1¦C¥W¤p£Ž£«¡Ð õŸÿNa@d3i'nu| ƒ‰Ž“˜¡¤¥§©«­°²µ¸¼¼%¼7»Lºd¹·¢·À·ê·üFk9p+w† Ž•›¡¦«°³··º¼¿ÁÄÇÊÍÑÔÔ+Ô@ÓXÓtÓ’Ò°ÒÓÒò>y1€#ˆ‘ ™ §®³¸½ÂÆÊÊÍÏÒÕÙÝßãçëìí3îKïdï‚ðŸñ¹ñØÿÿÿÿ ÿÿÿÿ)ÿ4ÿ?ÿHÿPÿXÿ^ÿeýkûqùwø~ö…óñ—î¢ë¯èÀæàãøâÿÛÿËÿÁÿ¹ÿ´ÿÿÿÿÿÿ ÿÿÿ#ÿ.ý9ùBõJòRîXë^édæjäpâvß}݆Ù՚ѧζËÎÉðÇÿÅÿ»ÿ´ÿ­ÿ©ÿÿÿÿÿûö ñíì(é2ã;ÝDØKÓQÐXÍ]ËcÉhÆoÄvÂ~¿‡¼’ºŸ·­µÁ²ä±ý¯ÿ¬ÿ¥ÿ ÿœÿÿÿûîäÜÓÏË"É+Æ4Á=½DºK·QµV²\°a®g¬nªv¨¦Š£–¡¥Ÿ¶Ñœó›ÿœÿ–ÿ“ÿÿÿöçÓÆ½¸ ³±¯%®.©6¦=£D¡JŸOU›Zš`˜f–n”w’ŽŽœŒ­ŠÃ‰èˆÿ‰ÿ‡ÿ…ÿ‚ÿóã̼°§¡ž›™˜'–/“7‘=ŽCŒI‹N‰T‡Y…`„g‚o€z~†|”z¤y¸xØw÷xÿxÿwÿuÿæË·¨ž–‹ ˆ‡…!„)‚07}=|CzHyMwSvYtariqsomlj¯iÈhíiÿiÿiÿiÿÒ¸¥—†|ywvt#s+q1o7n=lCkHjNhTg[eccmbx`‡_–]¨]¾\ä\û\ÿ\ÿ\ÿª˜‰xtpm kihf%e,c2b8`=_C^I\O[VZ^XhWsUT‘R£Q·QÖQõQÿQÿRÿ¶Ÿ ~ s l +heca _]\!['Y-X3V9U?TESKQRPZOdMoL}JIŸH²GÌGïFÿGÿGÿ¬ •ƒukc^[ Z Y +WUSR#Q)O/N5M;LAJHIOHWFaEmCzB‹@œ?¯>È=ê=ü=ÿ>ÿ¤Ž|nd\VSQP P OMKI%H +G 1F 8D +>C +EB +M@ U? _= k< y: Š8 œ7 ¯5 Ç5 é5 ý5 ÿ6 ÿ‡vi^VPMJIIH F D C!B(@.?5><=C;K:T8^6k4y2Š1œ/°-É-ì-ÿ.ÿ/ÿ—‚qdYQLGDCBA @><;%:+82796@4H3Q1\0h.w,ˆ*š(®'Ç&ê'ÿ(ÿ)ÿ‘}m`VNHC@>=;9865"3(2/160=.F-O+Y*f(t&†$™"­!Å è!þ"ÿ#ÿyi!\"R"J"D!?!< 9854 20/.%-,+3*;)C'M&W$d"r „—«Ãçýÿÿ‰ u"e#Y$O%G%A$<#8#5"3 0 .! +,!+!*"("#'")�%#8##A"$J!$U$a$p$‚$•$ª$Á$å$ü#ÿ#ÿ…"q$b&V'L'D'>'9&5&1%.$+%)%'&%&$'#' "''!(. (6(>(H)S)_)n)€)”)¨)À(ä(û(ÿ'ÿ€%n'_(S)I*B);)6)2(.(*(&)$*"+ +,,,$-+-3-<-E.P.].l.~.’.§ -½ -ß -ù,ÿ,ÿ|(j*[+P,F,?,9,4+/+++&,"./0 1112!2(20293C3N3[3i 3z 3Ž +3¢2¹2Ù2ô +1ÿ 1ÿw+f-X.M/C/<.6.1.-.).#02356 7778$8,85 8? 8J 8W 8e8v8Š8Ÿ7µ7Ó7ñ6ÿ6ÿs.b0T1I1A19141/0+0%2 368:< = = = +=! =)=1>;>F>R>a>r>†=œ=²=Ð<ð<ÿ<ÿm2]3P4F4>47423-3'4"68:=? A C DDDD$D-D6DADND\DmDD˜C¯CÍBðBÿBÿh6X7L8C8;75606)7#9;=@B EGI IJKK K(K2K=LILWKhK}K”J¬JÊIïIÿIÿb:T;I;@;9:39,:%<?ADG ILOP +P QRTT#T,T7TDTRTcTwTS¨RÆRíQÿQÿ\?O?E?>>7=/>'@ CFIL ORTWXY Z[]^_&_1^=^L^]^q]‰]£\Á[ëZÿZÿVDKCCBÑFÍLÊRÈXÅ]ÃcÀi¾p¼x¹·´š±©®¼¬áªü¨ÿ ÿ™ÿ–ÿ”ÿÿùòçÛÑÊ ÇÄÂ&¿/»7·?´E±K®Q¬Vª\¨a¦h£p¡yŸ„‘š ˜±–Ì•ñ”ÿ‘ÿ‹ÿˆÿ†ÿ÷ìÞɼ´¯ +«©¨ §(¢0Ÿ8œ>šD˜J–O”U“Z‘ahq‹{‰ˆ‡—…¨ƒ¾ä€ÿ€ÿ|ÿ{ÿyÿé×Á±¦—” ’"Ž*‹1‰8‡>…CƒHNT~Z|azixsvuŽsŸq³pÐoöoÿoÿmÿlÿÚ¿¬ž“Œ…‚ ~}|$z+w1u7t=rBqHoMnSlZkbilgxf†d—bªaÂ`ëaÿaÿaÿ`ÿÅ­›ƒ|wrp nllk%i,g1f7d=cBbH`N_U]]\fZrY€WV£U¹TÞTûTÿUÿUÿ¶Ÿunifc a`_^ ]&[,Z2X7W=VCUISPRXQaOlNzLŠKœJ±IÎIóIÿIÿJÿª”‚tjc^[YW VTSR"Q(P-N3M8L>KEJLHTG]FhDuC…A˜@«@Å?ê?ÿ@ÿ@ÿ Š y l a Z U R PON LKJI#G)F/E4D:BAAH@P>Z=d<r:‚9”8§7¾6ã6ù6ÿ7ÿ˜ ƒre[SNJH G +G +EDBA @%>+=1<7;>:E9N7W6b4p2€1’0¥/».Ý.õ-ÿ.ÿ‘}l_UNHDA@@ @ + > < ; +9 +"8 +(7 .6 55 ;3 C2 L0 V/ a- o+ * ’( ¥' »% Ý% õ& ÿ' ÿ‹wg[QIC?<:998 7542%1,02/:-B,K*U(a&o$€#“!§½à÷ÿ ÿ†scWME@;85432 1/-,"+)*0(7'?&H$S"_ m~‘¥»Þøÿÿ‚o_SJB<741/.,+)(' %&$-#4"= FQ]k|£ºÛöÿÿ}k\P G ? 941-+)'% $"! #*2:DN[iz¢¸ØõÿÿzgY!M"D"<"6"2!.!* ' $"  +!!!"!"'"/"8#A#L#X#g#x#‹ #Ÿ #´ #Ð "ð "ÿ !ÿvd"V#K$A$:$4$/#+#(#$# #$%& &&''%','5(?(J(V (d (t +(‡ (›'±'Ì'ì&þ&ÿq"`$S&H'?'7&1&-&)%%%"%'(*+ ,,,,",)-2 -; -F +-R-`-p-ƒ-˜,®,É,ë+ü+ÿm%]'O(E)<)5)/(+(''#'(*,.01 1 1 1 +1&2.272B2N2\2l22•1¬1Ç0ê0ü0ÿh)X*L+A,9,2+-+)*%* +,.024 +7 7777"7*838>8J8X8h8|7’7©6Å6ê6ý5ÿc,T.H/>/6.0.+-'-"-/1357 +:; <=>>>&>/>:>F>T>d>w>=§=Ã<é<ý;ÿ^0P1D2;241.0)/$02469 ; +=@A +B CDEF"F+F5FAFOF_FsEŠE¤DÀCèCþBÿX4K5A59524-3&4 58:= @ BEGHJ KLNOO%O/O<OJOZNmN…M L¼KçKþJÿS9G9>97817)7!9<?B EHJMOQRT UWYZY)Y6YDYTXgXWšV·UãTýTÿN=C=<<5;,<$>ADH KNQTWY[]^` bdgg"f.f<fMe`ewd“c±aÝ`ü_ÿIBAA:?0@&CFJN +RVZ]`cegikmo +ruwv&v5uFtYtos‹r©pÍo÷nÿFF@E5F*H LQV Z_chkoruwy{}€ƒ† ‰ŠŠ+‰<ˆO†f…„ ‚ÂðÿFK:L.O#SX^ diotx|„‡ˆ‹Ž“–™ ¡ ! 1žD[œv™–™µ–å•þ?R2U&Z`g mt{†‹”—™œŸ¡¤§ª­±µ ¸·&¶9µP´j²‰°ª®Ï­õ7\+ahp x€‡Ž•šŸ¤¨¬­°³µ¸»¿ÃÇËÑÑÐ.ÏEÍ_Ë~ɞȾÅé/i#py ‹“›¢¨®´¸½ÀÂÅÈËÎÑÖÛßäèëê#ê:éTçrå“ã³ãÔÿÿÿÿÿ ÿÿÿ!ÿ+ÿ5ÿ>ÿGÿNÿUü[úaøfömôsò{ï„íŽê™æ§ã¹ßÕÛ÷ÖÿÀÿ²ÿªÿ¥ÿ¢ÿÿÿþüüþ ÿÿý$ù.ô8ð@ìHéNæTâZß_ÜeØkÔrÐ{ͅʑǞîÀŽë»ÿ°ÿ¤ÿœÿ˜ÿ•ÿÿúôñòêçâáá(Ø1Ð9Ë@ÈGÅMÂS¿X½^»d¹k¶s´|±ˆ®•«¤¨¸¦Ü£ûŸÿ•ÿÿ‹ÿ‰ÿùïçßÏÈÁ +¿¼»!¹*´2±:®@«F¨L¦Q£V¡\Ÿcj›s™~–Œ”›’­ÇŽðÿ†ÿ€ÿ}ÿ|ÿíàÑ¿³ª¦¢ ¡ Ÿ#›+˜2•9“?‘DJŽOŒUŠ[ˆc†k„v‚‚€’~£|ºzáyÿwÿrÿpÿoÿÝ˶§”Ž‹ +‰ˆ‡‡%„,‚28}={CyHxNvTu[scqnozm‰lšj®iÌhögÿeÿdÿcÿÊ´¡“‰‚{xv utsr%p,n2l7j<iBhHfNeUc]bf`r^€]’[¥Z¾YéYÿYÿXÿXÿ¹¢ƒyqmif edcc a&`,^1\7[<ZBXHWOVWT`SlQyPŠOžN´MÚMûMÿMÿMÿª”‚ukd`]ZX WVVU!S'R,Q1O7N=MCLJJRI[HfFsE„D—C¬BÉBñBÿCÿCÿž‰xjaZURPN M LKJI"H'G-E2D8C>BEAM?V>a=n;~:‘9¦8¿8è8ÿ9ÿ9ÿ•€o b +X Q +LIGFD CBAA?#>)=.;4::9A8I7R6]4j3z2Œ1¡0¸/Þ/ù/ÿ0ÿŒ x h \RKE A ? +>=< ;:98 6%5+40372>1F/P.Z-g+w*‰)(³'Ñ'ò'ÿ'ÿ† rcVME@<97 6 6 +54210"/(..-4+<*D)N'Y&e$u#‡"› ° Ëíþÿ€m^RHA;74200 0 / +- +, * ) %( +' 2& :$ C# M! X e u ˆ œ ± Ê ë ü ÿ{iZNE=830-+**) (&%$##)!1 9BLXfv‰ž³ÎîþÿweWKB:40,)'&%# "!  '.6@JVdt‡œ± Ê ëþÿsaSH?72-)&$"  $+4=HTbr „ ˜ +­ Æ ç ú +ÿo^PE<5/*&#! ")1;E Q ^ +m €”ªÂæøÿk[MB:2-($! !!!!"& ". "7 +"A "M"Z"i"|"‘"¨!À!å ø ÿgWJ!@!7"0!*!& "  !#$& & & +& &"&*'3'='I'V'f'y'&¦&¿%ä%ù$ÿc T"G#=$4$.#(#$"!"!"#$&( * ++++,',0,:,E,S,c,v,Œ+¤+¾*ä*ú)ÿ_#P%D&:&2&+&&%#$$$%')+ -/ 00111#2,262B2O2_2r1‰1¢0¼0ä/û/ÿZ'L(@)7)/))(%'!&'(*,. 024 5 6788 8(829=9K9[8n8…7Ÿ7º6ä5ü5ÿU*H,=,4,-+(*$)*+-/ 1 +468:; += >@@@$@.@9@G@V@i@€?›>·=ã<ü<ÿP/C/9/2/,-', -/13 6 8;=@ACE FHJJJ(J4IBIQIdH{H—G´FàEüDÿJ3?36301*0#1358 ;>ACFHJLNO QTUU"T.T<TKS^StRQ®P×OûNÿE7<756/4&57:= ADHJMPSUWX[] _bbb'b4aE`W`m_‰]§\ÌZøYÿA<:;49*:!<@C GKOSVY\_acegjm +psr r-q=pOoen€mŸkÁiñhÿ?@9>.?$BFJ OTX]aehknqsux{~ +…‡†$…4„F‚]v–~¶|çzÿ?D3E(HLR W]chmqvz~ƒ†‰‹Ž’•™ žž)œ<šR˜l–‹”ª’Ôú8K,N SY `gntz€„ŠŽ’•—š £§«¯´ ¸·µ0³F±`¯~¬ «Á©î1U$[aiqyˆ”šŸ¤¨©¬¯³µ¹½ÁÆËÑ +ÓÑ%Ð;ÍTÊqȒųÃÞ)biq{„•£©¯´¹¼¾ÂÅÈÌÐÔÚßäêî íì/êIèeæ†ä¥âÆÿÿÿüüþÿÿÿ&ÿ0ÿ:ÿBÿIþPûVù\öbôhòoðvíê‰ç•ä£àµÛÐÕöÊÿ¶ÿ¨ÿŸÿšÿ–ÿÿûöóóö úýû ÷*ò3í;éCæIâOÞUÛ[Ö`ÒgÏnÌvɀƌš¿ª»Á¸é¶ÿ§ÿšÿ’ÿÿŠÿúñêççäà ÛÚÛ#Ñ,Ê4Æ;ÂB¿H¼NºS¸Y¶_³f±n®w¬ƒ©‘¦¡£µ Øžû•ÿ‹ÿ…ÿ€ÿ~ÿïãÚÓÆ¿¹·´´³%®-«4§;¤A¡FŸLQ›W™^—e•n“y‡Ž—Œ©‰Äˆï…ÿ|ÿvÿsÿrÿàÐÆ¶©¡™ +˜˜—”&‘-4Œ:Š?ˆE‡J…PƒV^€f~q|}yw u¶sßrÿnÿiÿgÿeÿ̾«“Š…‚€ € }&z-w3u8t>rCpIoOmVl^jhhug„e–d«bÉaö`ÿ\ÿ[ÿZÿ½©—‰~xsom lkkj h&f,e2c7b<`B_H]O\WZaYmW{VŽU¢S»RéRÿPÿOÿOÿ­˜†xngc`]\ [[[Z!X&V,T1S6R<QBOINQM[KfJtI…H™G±FØFüEÿEÿEÿŸ‰xlb[VSQOO NNML!J&I,H1G7E=DDCLBU@`?n>~=’<©;Ç;ó;ÿ;ÿ<ÿ“~naXQLIGED CCCB@"?'>,=2;8:?9G8P7[5h4x3Œ2¢1¼1ç1ÿ2ÿ3ÿ‰vfYPIC@><;: :9976#5(4.342;0C/L.W-d,s+‡*œ)µ)Ü)û)ÿ*ÿn_ +S J B = +9 6543 +2110/.$,*+0*7)?(I'T&`$o#‚"—!®!Ì!ó!ÿ"ÿ{ h Z NE=8 3 0 . - -, +*)('!&'%-$4#="F!Q]l”ªÅëÿÿu dUJ@93/,)' ' ' + +& %$"! $+2:DO\k}‘§¿äúÿq_QF=60+(%#"! !     " ) 1 9 C O \ k ~ ’ § ¾ à õ ÿm\NC:2-(%"  !(09DP] k |  ¥¼ßôÿiXK@70*&" +%.7 @ K X gx£»ÝôÿeUH=4-(#   " ) 2 <GTcu‹¡¹ÝõÿaRE;2+%!   +&/8DQ`rˆ ¹Þöÿ^OB8/)#     !#!+!5!@!N!]!o!† ž ¸ÞøÿZK?5-'" ! " +# $%%& &(&2&=&J&Z&l&ƒ%œ%·$ß#ù#ÿUG ;N;`:w9’8°7Û6ü5ÿG);*2*+)%'!&'(*, +/1468;=?A +CEEE!E,D9DHD[CqBA«@Ò?ú>ÿB-8./-)+$**,. 1 47:<?ADFHJL NPPP'O4OCOUNjM†L¤JÊIøHÿ>251./). .137 :=@DGILOQSUXZ ]_^ ^,]<\N[cZ~XWÀUòTÿ:634-2$369=AEILPSVY[]`behk oon%m4mFk[juh”f¶débÿ8927(9;?DIMRVZ^behkmpsvy} …„‚,€>~T~k{ŠzªwÖuý8=,>"AFKQW\bfkotx{~€ƒ†Š‘–› ›!š3—I”b“ ŽÅŒó1D%HMSZahnty„‰‘“–™ ¤¨¬²· ·µ(²>°V¬sª”©´¥å*OT[ +bjs{‚‰Ž”šŸ¤¦©­°³·»ÀÅËÑÕÓÐ2ÍKÊfƇ©ÁË"[b kt}‡—ž¤«±¶º¼ÀÄÈËÏÔÚàæëñðî'ì?ê[çzä›à»ÿûöóôö úÿÿ"ÿ,ÿ5ÿ=ÿEüLúR÷Xõ^ódñjîrìzé…å‘á Ý²ØÎÒöÁÿ­ÿžÿ–ÿÿŒÿúòìééìò ø÷õ%ð.ë7æ>âEÝKØPÓVÐ\ÍbÊjÈrÅ|ˆ¾–º¨·¿´è®ÿÿÿˆÿƒÿ€ÿðåÞÚÛÜØÑÑÒË'Å/À7½=ºD·IµO²U°[®a¬i©s§¤¡žž²›Õ™üŒÿ‚ÿ{ÿvÿtÿâÓÊǼ¶°¯ ¬­­ ¨(¤/ 6<›B™G—M•S“Y‘ajŒuŠƒˆ”†§ƒÂ‚ð|ÿsÿmÿjÿhÿÏÁ¹­ ˜”‘ Ž!‹(ˆ/†5„:‚@€E~K|RzYxbvltyr‰qo´mßlÿeÿ`ÿ^ÿ\ÿ¾± ’‰‚|zx wxwt!r'p-n3l8k>iDhJfQdZcdap_^“]©\È[÷WÿTÿRÿQÿ°Ÿtnjfec ccca!_'],\2Z7Y=WCVKUSS\RhPwO‰NŸMºLéKÿIÿGÿGÿ¢|ne^YWUTS STRQ!O&N+L1K7J=IDGLFVDaCpBA—@¯?×?ÿ>ÿ=ÿ>ÿ”ocYQMJHGG +FFGED!B&A+@1>7=><G:P9[8i7z65§5Æ4õ4ÿ4ÿ5ÿˆteXOHC?=<<; ;;:97!6&5,42391A0K/V.c-s,ˆ, +»+ê+ÿ+ÿ,ÿl]QH@;74322 2 110/-",(+.*5)=(F'Q&^%n$‚#™#³"Þ"ÿ#ÿ$ÿweVKB:50-,+*) ))('&%$$*#1"9!C NZi|“¬Íöÿÿp_Q +F = 5 0 + +( %$## " "!  &.6?JWfx¦Ãîÿÿk[ M B 9 1 , ' # !   +  #+3<GTcuŠ¢¼åþÿg W I>5.($           ! ( 0 : E R a s ˆ Ÿ +· +Û +ö +ÿc SF;2+%!        ' / 9 E Q ` q †  ´ Ò ñ ÿ_PC8/(#  +    $ +, 6AN]o„œ´Ôóÿ\M@6-&! +    + !)3>KZl‚›´×õÿXI=3+$    +  '0;HXj€™´Ù÷ÿUF:0("     $-8FUg}—³ÛùÿQC7.&     +    !!*!5!B!R d z•±ÛúÿM?4+$  !# %&&&'''2'?&N&`&w%’$¯#Ú"û!ÿH<1("  !#%') , ....#...;.J-\-r,Ž+¬*Ô)û(ÿD 8!.!&!  !#%'),.03 +5 6666)666E5W5m4‰2¨1Ï0ú/ÿ?$4$+$$#!  !# +%(*-/2479;> +@AA@%@1@@?R>g=‚<¢:Ç9ø8ÿ:(0()'#%#$%( +*-0368;>@BEGJ +MMLL+K:JLIaH|G›E¿CóBÿ6,-+')#'(*- +037:=@CFHKMPSVY [[Z%Y4XFWZUtT“RµPêOÿ30,.',-/2 +6:?BFILORUXZ]`cgk lkk,i=gRfjd‰a«_Ü]ÿ13,1"259 +=BGLPTX[_behknquy}‚ ‚€$~5|I{axvŸsÆp÷16&8;@ EKQV[`einrvy|~‚…‰Ž“˜œ›˜+–@’Y‘s•‹µˆè+> AG MT[ahnsy~ƒˆŒ’•™¡¥ª°·¸µ!²5¯Mªi¨ˆ¦¨¢Ñ#HNT\dmu|ƒ‰•› £¦©­±µ¹¾ÄÊÒÚ +ÖÒ)ÎAÊ\Å|ÂÁ½U\enwˆ˜Ÿ¥­³¸º¾ÂÆÊÎÓÚàçíóôòï6ìQènäß± +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿmft1! +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ +  !""#$$%&&'())*+,--./01223456789:;<=>?@BCDEFHIJLMOPRSUWXZ\^`bdfhjmoqtvy|~ƒ†‰‹Ž’•—™›Ÿ¡£¥§¨ª¬­¯°²³µ¶·¹º»¼½¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÒÓÔÕÖÖרÙÙÚÛÛÜÝÝÞßßàááâããäååææçèèééêëëììíîîïïððñòòóóôôõöö÷÷øøùùúûûüüýýþþÿ +  !""#$$%&&'())*+,--./01223456789:;<=>?@BCDEFHIJLMOPRSUWXZ\^`bdfhjmoqtvy|~ƒ†‰‹Ž’•—™›Ÿ¡£¥§¨ª¬­¯°²³µ¶·¹º»¼½¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÒÓÔÕÖÖרÙÙÚÛÛÜÝÝÞßßàááâããäååææçèèééêëëììíîîïïððñòòóóôôõöö÷÷øøùùúûûüüýýþþÿÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¥%ÿ¤0ÿ¦:ÿ±C#ÿ»K2ÿÁUEþÃ^ZòÄepäÂl†×ºp™Ì²tªÃ«v·½¦y·¡}˱‚Ó«š‰Ü¥—•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•楗•æÿ¦%ÿ¤0ÿ§:ÿ²C"ÿ¼K2ÿÃTEüÆ]ZñÈdqãÆj‡ÖÀo›Ë¸r¬Â±tº»­wÄ´©{Í«£Ô¢ž…Û™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽá™šŽáÿ¦%ÿ¥0ÿ¨:ÿ³C"ÿ¾K1ÿÅTEùÉ\[ïÍcqãÌiˆÕÆmœÉ¿p®½¶rº´°uëªxÊ¢¥|Ñ™¡Ø‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ý‰Ýÿ¦%ÿ¥0ÿª:ÿµC"ÿÀK1ýÈSEöÍ[[íÑaráÐg‰ÑËkÂÀn­¶·q¸¬±sÁ£¬vÈš¨yÎ’¤~Ô‰ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …؉ …Øÿ§%ÿ¥0ÿ«:ÿ¶C!ÿÁK1úËRDóÑZZêÙ`rÞÖe‰ËÌjœ»Ám«¯¹p¶¥´r¾œ¯tÄ”«wÊ‹§{Ï„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ô„¤Ôÿ§%ÿ¦0ÿ­:ÿ¸B!þÄJ0÷ÎRDðÖXZçà^rÖÚdˆÄÍiš´Ãl¨¨»o²ž¶pº–²rÀŽ®vƆªzʧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧΧÎÿ¨%ÿ§0ÿ®9ÿºB ûÆJ/ôÓQCëÝWZãæ\qÎÛd‡½Ïi˜®Åk¥¢¾n¯˜¹o¶µq¼ˆ±tÁ®xÅ{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}É{¬}Éÿ¨$ÿ§0 ÿ°9ÿ½B÷ÉJ/ïØPBæãUYÜè[pÆÝc…¶Ñh•§Èk¡œÁmª“¼o±Š¹q¶„µt»}²w¿w°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âw°|Âÿ©$ÿ¨0 ÿ³9þÀBóÍJ-éÝO@áéSYÓê[o¿ßc‚¯Óg‘¡Ëj–Åm¥Ào«†½q°ºsµz·w¸tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»tµ{»ÿª$ÿ©/ ÿ¶8ùÄAíÒI+âãM@ÛïRXÊíZm·áb¨Ög›Ïj—‘ÉmŸˆÅo¥‚Âq©{¿t­v½w°q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³q»{³ÿ«$ÿ«/ ÿº8óÉAäÚI(ØèL@ÎóQWÀïYk®äaz Üg†”Ôk‹Ïn—„Ìpœ}És xÆu£sÄx¦nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©nÂ|©ÿ­$ÿ°/ ûÀ8êÐAÚâF(ÌîLAÃùPUµóXf¥éat—ág~Ûk†…×oŒÔr‘zÑu”uÏx—qÍ{šlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œlÌ~œÿ¯#ÿ¶- ñÈ6 ÝÜ=ÍêF*ÁöK@¶ÿOQª÷X`›ïakèht…äm{àq€yÞtƒuÜx†rÚ{‰nØ~‹kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚kÖ‚ÿ±#ú¿,ãÔ/Îæ;ÁóE+´ÿI=¨ÿNLžýWX‘öaa†ñiiíonyêtruèwuqçzwnå}ykä€{iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|iã„|ÿµ"ëË"Ðã'Âñ:´þB*¦ÿF9›ÿME’ÿVO†þbV~új\w÷p`sõucoóxemò|gjñhhð‚jfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…kfï…köÂÔßÂï& µü:§ÿ>'™ÿD3ÿK=…ÿUE|ÿaKuÿjOpÿpRlÿuTjþyVhý|WfüXdü‚Zcû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[cû†[ÔÏ +Äíµû& ¨ÿ6™ÿ;#ŒÿA,€ÿJ4xÿS:qÿ_?lÿiChÿoEeÿtGcÿwHbÿ{Iaÿ~J_ÿJ^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„K^ÿ„KÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿž8ÿ¨Aÿ±I+ÿ¶S<ÿ¸]Oû¶fcî´owâ¬u‰Ø¤{™Î›¦È“„±Âˆ¹¾ˆŒ¿ºƒ‘Å·—Ë´} Ï®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤Ñ®y¤ÑÿŸ"ÿ- ÿŸ8ÿª@ÿ³I+ÿ¹R<ÿ»\Oúºedí¸mxá°s‹Õ¨yœÌŸ}ªÅ—µ¿‘…¾ºŒ‰Å¶‡Ì²ƒ–Ò¯ Ö§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢Ó§~¢ÓÿŸ"ÿž- ÿ 7ÿ«@ÿ´I+ÿ»R<ÿ½[Pú¾ddì¼lyàµrÓ­wžÊ¤z­Âœ~¹¼–‚÷‡Ê²‹ŒÒ®‡•ئƒÚ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õ¡‚¡Õÿ "ÿž- ÿ¡7ÿ¬@ÿ¶H+ÿ½Q<ÿÀZPúÁceìÁjzÞ¹pÒ±u¡È¨x°À¡{¼¹›Ç´–„ϰ”Õ«‘—Ú ‰œÜšˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×šˆ ×ÿ "ÿž- ÿ¢7ÿ­@ÿ·H*ÿ¿Q<ÿÂZPùÄbeëÅi{Þ¾nѶs£Æ®v³¾§yÀ¸£É´¡†Ï¬œÕ£–”Úš‘œÜ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØ•ŽŸØÿ "ÿŸ- ÿ£7ÿ®@ÿ¸H*ÿÁP<þÅYP÷È`fëÊg|ÝÃm‘ϼq¥Å´tµ½°yÀ¶¬È®§…Ï¥¡ŠÕœœ‘Ú•™œÜ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØ”ŸØÿ¡"ÿŸ- ÿ¤7ÿ°?ÿºH*ÿÃP;ûÈXPõË_féÏf|ÜÉk’ÎÃo¦Áºrµ¶²vÀ¬¬{Ȥ¨Μ¤…Ô” ØŸ™ÛŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØŠœŸØÿ¡"ÿ - ÿ¦6ÿ±?ÿ»H)þÆO;øËWPòÐ^fçÔd}ÚÏi“ÈÅm¦º»p´­³s¿£­vÇš¨zÍ’¥ÒŠ¢†×„ ‘Ù„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×„¢œ×ÿ¡"ÿ - ÿ§6ÿ³?ÿ½G)üÈN;õÎVOîÕ]fäÚb}ÓÒh’ÁÆl¤³¼o±¦µr¼œ¯tÄ“«wÊ‹§{σ¤Ô}¢‹Ö{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õ{£•Õÿ¢!ÿ - ÿ¨6ÿ´?ÿ¿G(ùËN:òÓUOêÜ[fààa}ÌÓg‘»Èk¢¬¾n¯ ·p¸•²sÀ®vÅ…ªzÊ~¨Îx¦‡Ñu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òu¥Òÿ¢!ÿ¡, ÿª6ÿ¶>ýÂG(õÍN9îÙTNæãYeØâ`{ÅÕf´ÊjŸ¥Ám«™ºo´µr»ˆ±uÀ®xÅz¬}Étª„Ëq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìq©‹Ìÿ£!ÿ¢, ÿ¬5ÿ¹>ùÅG'ðÑM8éàRLâéWdÎä_z½×fŒ­Ìj›ŸÄl§“¾o¯Š¹qµƒ¶tº|³w¾v±|Âq¯‚Än®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æn®‡Æÿ¤!ÿ£, ÿ¯5ÿ¼>ôÉF%êØM6âçOLÜïUcÆæ_x´Úe‰¥Ði–˜Èl¡Ão¨…¿q®~»t²x¹w¶s·{¹nµ€¼k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾k´…¾ÿ¥!ÿ¤, ÿ³5ûÁ>íÏF"áßK4ØëOLÏóTb¼è^t«Þd„Ôi‘Îm™‡Éo €År¥zÂt©tÀx¬p¾{¯k¼€²h»„³h»„³h»„³h»„³h»„³h»„³h»„³h»„³h»„³h»„³h»„³h»„³h»„³h»„³h»„³ÿ¦!ÿ¨+ +ÿ¸4 óÇ=äØEÖæI5ËñNLÄ÷S_±ì]p¡âd}•Ûi‡ŠÕn‚Ðq•{ÍtšvËwqÉy mÇ}¢iÅ¥fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦fÄ…¦ÿ¨ ÿ®*ü¿3 éÏ<×áBÊíI5¿øMJ·ûR[¦ñ]i˜éetŒâj}ƒÝo„|Ús‰w×wŒsÕzoÓ}‘lÑ€”hЄ–eχ—eχ—eχ—eχ—eχ—eχ—eχ—eχ—eχ—eχ—eχ—eχ—eχ—eχ—eχ—ÿª ÿµ)ðÈ1ÚÝ3 ËêB!¾öH5²ÿLF©ÿQU›÷]`Žðej…ëlq}çqvwävzsây}oá|l߀iÞƒƒg݇…e܉†e܉†e܉†e܉†e܉†e܉†e܉†e܉†e܉†e܉†e܉†e܉†e܉†e܉†e܉†ÿ­ù¿%ßÖ"Ëè2¾ôA"°ÿE3¤ÿJAœÿQMþ]V…ùf^}ôndvòshrïxknî|mlíojì‚pgê…reê‰scéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtcéŒtÿ¶èÍÌæ¾ó1±ÿ>"£ÿB/–ÿH:ÿPD„ÿ\K{ÿgQtþnVoüsYlûx[iù|]gø^føƒ_d÷†`bö‰aaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbaöŒbóÄÎÚ ½ó±ÿ2£ÿ:•ÿ?*‰ÿF3€ÿO:xÿ[@qÿfElÿmHhÿsJfÿwLdÿ{MbÿNaÿ‚O`ÿ…P^ÿ‰Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹Q^ÿ‹QÌË ¾æ ¯ÿ ¤ÿ0•ÿ5‡ÿ<$|ÿD+sÿM1lÿX5gÿc9cÿk;aÿq=_ÿu>]ÿy?\ÿ|@[ÿAZÿ‚AYÿ†BXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBXÿˆBÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ–+ ÿ•6ÿ >ÿ¨G&ÿ®Q4ÿ¯[Eÿ­eWø©ohí£xy㛇ے…”Ô‹ŒžÏ…‘¦Ë€•¬Ç|™±ÅyžµÂv£¹Àtª¼½q²¾¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿¹o±¿ÿ™ÿ—+ ÿ—6ÿ¡>ÿªF%ÿ°P4ÿ±ZEÿ°dW÷¬miì§w{áž}ŠÙ–ƒ—ÑŽ‰¢ËˆŽ«Ç‚“±Ä~—·Ázœ»¾w¢¿¼uªÂµq®Ã³r¯Á³r¯Á³r¯Á³r¯Á³r¯Á³r¯Á³r¯Á³r¯Á³r¯Á³r¯Á³r¯Á³r¯Á³r¯Áÿ™ÿ—* +ÿ˜5ÿ£=ÿ¬F%ÿ³O4ÿ´YFÿ´cXö±lkê­u}ߣ{Õ›œÍ’†¨Ç‹Š±Â…¹¿€”¾»|šÃ¹y¡Çµv©Ê­u¬Æ«v­Ä«v­Ä«v­Ä«v­Ä«v­Ä«v­Ä«v­Ä«v­Ä«v­Ä«v­Ä«v­Ä«v­Ä«v­Äÿšÿ˜* +ÿš4ÿ¥=ÿ®F%ÿµN4ÿ·XFÿ·aYõµjlé²sݨxÓŸ~ Ê–‚¬Äއ·¾ˆŒ¿ºƒ‘Å·˜Ë´|¡Ï«x¥Ï¥yªÈ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æ¤y¬Æÿšÿ˜* +ÿ›4ÿ¦=ÿ¯E%ÿ·N4ÿºWFÿ»`Yô¹imç¶qܬv“Ф{£Èš±À“„¼»Œ‰Å·ˆË´†™Î²†¤Ñ¤|¤ÑŸ}©Êž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈž}ªÈÿ›ÿ™* +ÿœ4ÿ§<ÿ±E$ÿ¹M4ÿ¼WFþ¾_Yô½gnçºo‚Ú±t•Ϩy¦ÅŸ}´¾—À¹”ŠÆµ‘’˯˜ÏªŠ¡Òž‚£Ó™¨Ì˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Ê˜‚©Êÿ›ÿ™* +ÿ4ÿ©<ÿ²E$ÿ»M3ÿ¿VFýÁ^ZóÁfoæ¿mƒÙ¶s—Í­w¨Ä¥{·¾¡ƒÀ¶›‰Æ®•̨‘•Ï¢ŽžÒ™‡¢Ó”†§Í“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ë“†¨Ëÿ›ÿ™* +ÿž3ÿª<ÿ³E$ÿ¼L3ÿÁUFûÄ]ZóÅeoåÃl„Ø»q˜Ì²u«Ã­|¶¹¥¿°ž†Æ¨™ŒË¡•’Л’›Ó”Ž¢ÔŠ¦ÎŠ¨ËŠ¨ËŠ¨ËŠ¨ËŠ¨ËŠ¨ËŠ¨ËŠ¨ËŠ¨ËŠ¨ËŠ¨ËŠ¨ËЍËÿ›ÿš* +ÿŸ3ÿ«<ÿµD#ÿ¾L3þÃUEùÇ\ZñÉdoåÈj…ÖÁošÊ¹tª¾°z¶³©¿ª¢„Æ¢ŠË›šÏ•—™Ò”¢ÔŠ¦ÎŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨ÌŠ¨Ìÿœÿš* +ÿ 3ÿ¬<ÿ¶D#ÿ¿L2üÆTEöÊ\ZïÍbpäÍh†ÓÅmšÅ¼sª¹´xµ®­}¾¥§‚Å¢ˆË•ŸŽÏœ–Ò‹œ¢Ó†•¦Î†”§Ì†”§Ì†”§Ì†”§Ì†”§Ì†”§Ì†”§Ì†”§Ì†”§Ì†”§Ì†”§Ì†”§Ì†”§Ìÿœÿš) +ÿ¢3ÿ­;ÿ·D#ÿÁL2ùÉSEóÍZZìÒ`pàÐf†ÎÈlšÀ¿q©´¸wµ©±|¾Ÿ¬Å—¨†Ê¤ŒÎŠ¢•Ñ…¢¡Òœ¦Îš§Ìš§Ìš§Ìš§Ìš§Ìš§Ìš§Ìš§Ìš§Ìš§Ìš§Ìš§Ìš§Ìÿœÿ›) +ÿ£3ÿ¯;ÿ¹D"ýÃK1öÌRDðÒYYèÚ_pÛÕd†ÉÌj™ºÃo¨­»t´¢´y½˜¯}ìƒÈ‰©‰Ìƒ§‘Ï~¦œÐ}¤¦Í|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ë|¢¨Ëÿÿ›) +ÿ¥2ÿ±;ÿ¼D!úÆK1óÑQCëÚWYãß]oÓÛc…ÂÏi—±Äm§¤¼p²˜µt»Ž±x†­}Æ€«‚Êz©ŠÍv¨”Îv©£Ìw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êw«¨Êÿÿœ) +ÿ§2ÿ³;ÿ¾C õÊK/îÖPBæáVWÜä[nËÞcƒºÑh”©Çl£›¾n®¸q·†´t½~°xÂw®|Ær¬ƒÉm«ŒÊm«™Én¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇn¬ŸÇÿžÿ) ÿ©2ÿ¶:úÂCðÎJ.çÝO@âéRWÒèZmÁàb€±Ôg‘¡Êkž”Ãn¨‰½q°€¹t¶y¶wºt´{½n²Àj°ˆÂg°’Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–Ãf°–ÃÿŸÿž) ÿ­1 ÿº:ôÇBèÕJ+ßäL?×ìQVÉîYk·ãa|¨Øg‹šÏk—Én ƒÄq§{Àt¬u½x°p»{³l¹€¶h¸†¸d·¹c¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºc¶‘ºÿ ÿ¡(ÿ±0 ûÀ9ìÎBßßG(ÓéL@ÊñQU¾òXh­æawžÝg„’Õl‡Ïo–~ËsœxÈv¡rÆy¤nÄ|§i©fÀ†¬b¿­a¿®a¿®a¿®a¿®a¿®a¿®a¿®a¿®a¿®a¿®a¿®a¿®a¿®ÿ¢ÿ¦'ÿ·/ òÇ8 áØAÒæF*ÇðL@¾øPS²õWc¢ëap•ãg{ŠÝm„Øq‹zÔutÒy“pÐ|–lΙh̃›dˈaÊŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸ`ÉŸÿ¤ÿ­&û¾-æÐ4Óâ<ÇîF+»ùJ>°þOO¦úW\˜ñahŒëhqƒænx{âs}ußxqÝ{„mÛ‡jÚƒ‰gÙ†Šd׋ŒaÖŽ`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Ž`Õ‘Žÿ§ÿµ#îÉ&Õß)Çì<ºøD+­ÿH;£ÿMIšÿWTùa]„ôje|ðpjvívnqëzqmé~tkè‚vhæ…wfåˆycäŒzaã‘|`ã’|`ã’|`ã’|`ã’|`ã’|`ã’|`ã’|`ã’|`ã’|`ã’|`ã’|`ã’|`ã’|ÿ«÷ÀÙÜÇë( +º÷;¬ÿA) ÿF6•ÿLAÿVKƒÿaR{ýkWtúq\oøv_lö{aiõcgôƒdeó†fcòŠgañŽh_ð’i_ð“j_ð“j_ð“j_ð“j_ð“j_ð“j_ð“j_ð“j_ð“j_ð“j_ð“j_ð“j_ð“jÿ·ÖÏ Çê¹÷) ¬ÿ9žÿ>&’ÿD0‡ÿK9€ÿT@xÿaFrÿjJlÿpMiÿvPfÿ{QdÿScÿƒTaÿ†U`þ‰V^þW]ý’X\ý“X\ý“X\ý“X\ý“X\ý“X\ý“X\ý“X\ý“X\ý“X\ý“X\ý“X\ý“X\ý“XÖÄÆÔ ¸÷«ÿ)žÿ4ÿ:!„ÿA)zÿI0rÿR6lÿ^:hÿh=dÿo@aÿtA_ÿyC^ÿ}D]ÿ€E\ÿ„E[ÿ‡FZÿŠGXÿGXÿHXÿHXÿHXÿHXÿHXÿHXÿHXÿHXÿHXÿHXÿHXÿHXÿHÄÇ·Û©ÿŸÿ* ÿ0ƒÿ6wÿ>"nÿG(fÿP,aÿZ/]ÿd1[ÿl3Yÿq5Xÿu6Vÿy6Vÿ|7Uÿ7Tÿ‚8Sÿ…9Rÿ‰9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9RÿŠ9ÿ’ÿ) ÿ5ÿ˜;ÿ D!ÿ¦N-ÿ§Y<ÿ¥dLÿ¡n[÷›xjî•w玉‚ᆋ܀•“Ø|›™Ôx žÑu¤¢Ïs©¥Íq®¨ÌoµªÊm¾­Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®ÿ’ÿ) ÿ5ÿ˜;ÿ D!ÿ¦N-ÿ§Y<ÿ¥dLÿ¡n[÷›xjî•w玉‚ᆋ܀•“Ø|›™Ôx žÑu¤¢Ïs©¥Íq®¨ÌoµªÊm¾­Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®ÿ’ÿ) ÿ5ÿ˜;ÿ D!ÿ¦N-ÿ§Y<ÿ¥dLÿ¡n[÷›xjî•w玉‚ᆋ܀•“Ø|›™Ôx žÑu¤¢Ïs©¥Íq®¨ÌoµªÊm¾­Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®ÿ’ÿ) ÿ5ÿ˜;ÿ D!ÿ¦N-ÿ§Y<ÿ¥dLÿ¡n[÷›xjî•w玉‚ᆋ܀•“Ø|›™Ôx žÑu¤¢Ïs©¥Íq®¨ÌoµªÊm¾­Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®ÿ’ÿ) ÿ5ÿ˜;ÿ D!ÿ¦N-ÿ§Y<ÿ¥dLÿ¡n[÷›xjî•w玉‚ᆋ܀•“Ø|›™Ôx žÑu¤¢Ïs©¥Íq®¨ÌoµªÊm¾­Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®ÿ’ÿ) ÿ5ÿ˜;ÿ D!ÿ¦N-ÿ§Y<ÿ¥dLÿ¡n[÷›xjî•w玉‚ᆋ܀•“Ø|›™Ôx žÑu¤¢Ïs©¥Íq®¨ÌoµªÊm¾­Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®ÿ’ÿ) ÿ5ÿ˜;ÿ D!ÿ¦N-ÿ§Y<ÿ¥dLÿ¡n[÷›xjî•w玉‚ᆋ܀•“Ø|›™Ôx žÑu¤¢Ïs©¥Íq®¨ÌoµªÊm¾­Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®ÿ’ÿ) ÿ5ÿ˜;ÿ D!ÿ¦N-ÿ§Y<ÿ¥dLÿ¡n[÷›xjî•w玉‚ᆋ܀•“Ø|›™Ôx žÑu¤¢Ïs©¥Íq®¨ÌoµªÊm¾­Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®Ãi½®ÿ“ÿ) ÿ4ÿš;ÿ¢D ÿ©M-ÿªX<ÿ¨bLÿ¤l\õŸvlì™z䑇†Þ‰Øƒ“˜Ó~™ŸÐz¤Ív¢©Ët§¬Éq­¯Ço´²Ál¹´¼l»±¼l»±¼l»±¼l»±¼l»±¼l»±¼l»±¼l»±¼l»±¼l»±¼l»±¼l»±ÿ”ÿ‘( ÿ‘3ÿœ:ÿ¤C ÿ¬L-ÿ­V=ÿ­`Mþ©j^ô¥tnêŸ}}á–ƒ‹ÙŽŠ–Ó‡ Î•§Ê|š­ÇxŸ²Äu¥¶Âr«¹Àp´»·nµ¹³o¸µ³o¸µ³o¸µ³o¸µ³o¸µ³o¸µ³o¸µ³o¸µ³o¸µ³o¸µ³o¸µ³o¸µÿ”ÿ’( ÿ“2ÿž:ÿ§C ÿ®K-ÿ±U=ÿ°_Ný®h_òªrpç¤zÞš€Õ’‡œÎ‹Œ¦É„‘¯Ä~—µÁyœ»¾v£¿¼t«Â´o®Ã®r³¼«s¶¸«s¶¸«s¶¸«s¶¸«s¶¸«s¶¸«s¶¸«s¶¸«s¶¸«s¶¸«s¶¸«s¶¸ÿ•ÿ’( ÿ•2ÿ :ÿ©Bÿ°J-ÿ´T=ÿ´^Ný³g`ñ¯præ©xƒÛŸ~“Ò—ƒ¡Ëމ¬Ä†ŽµÀ€”½¼{šÃºz£Å·y«Ç¬s¬Æ§u±¿¥wµº¥wµº¥wµº¥wµº¥wµº¥wµº¥wµº¥wµº¥wµº¥wµº¥wµº¥wµºÿ•ÿ“( ÿ–1ÿ¡9ÿªBÿ²J,ÿ¶S<ÿ·]Nû¶eað´ntä­u†Ù¤{–Ï›€¥Ç’…±ÁŠ‹»½‡”À»…Ķ‚¤Ç°~ªÈ¥wªÈ¡y°ÁŸz³¼Ÿz³¼Ÿz³¼Ÿz³¼Ÿz³¼Ÿz³¼Ÿz³¼Ÿz³¼Ÿz³¼Ÿz³¼Ÿz³¼Ÿz³¼ÿ•ÿ“( ÿ—1ÿ£9ÿ¬Bÿ´J,ÿ¹S<ÿº\Nøºdbï¸luã²sˆØ©y™ÍŸ~©Å˜„´¿“Œ¼¸“Á³‰™Å®†¡Èª„©ÉŸ|©Ê›}®Â™~²½™~²½™~²½™~²½™~²½™~²½™~²½™~²½™~²½™~²½™~²½™~²½ÿ–ÿ“( ÿ˜0ÿ¤9ÿ­AÿµI,ÿ»R<ý½[Nö½cbî½kvâ¶q‰Õ®w›Ë¥|ªÂƒ´¹–‰¼²‘Á¬Œ–Ƨ‰È£‡¦Ê™€¨Ë–®Ä•±¾•±¾•±¾•±¾•±¾•±¾•±¾•±¾•±¾•±¾•±¾•±¾ÿ–ÿ”' ÿ™0ÿ¥9ÿ®Aÿ·I+ÿ½Q<ü¿ZNôÁbbìÁiwá»p‹Ò±tǨ{ª¼ ´´š‡¼¬”¦”Æ ›Éœ‹¤Ë•†¨Ë‘…­Å…±¿…±¿…±¿…±¿…±¿…±¿…±¿…±¿…±¿…±¿…±¿…±¿ÿ–ÿ”'ÿš0ÿ¦8ÿ°Aÿ¸I+ÿ¿Q<úÂYNòÄacéÅhwݾmŒÍ´s«yª·¤~´®„¼¦˜ŠÁ ”‘Æš‘˜É–¡Ë‹¨ÌŒ‰¬ÅŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°ÀŒ‰°Àÿ—ÿ•'ÿ›0ÿ§8ÿ±AÿºI+ÿÂP;øÆXNðÈ_cæÈfxØÁkÉ·q½¯w©²§|³©¡‚»¡œˆÁš˜Æ”––É”ŸË‹‘¨Ì‡Ž¬Æ‡°Á‡°Á‡°Á‡°Á‡°Á‡°Á‡°Á‡°Á‡°Á‡°Á‡°Á‡°Áÿ—ÿ•'ÿ/ ÿ©8ÿ³@ÿ¼H*üÅO;öÉWNíÍ^câËdxÒÄjŒÄ»oœ¸²u©­«{³£¦€»›¡†Á”ÅŽ›”ÈŠ™Ê†™¨Ë‚“¬Æ‚’¯Á‚’¯Á‚’¯Á‚’¯Á‚’¯Á‚’¯Á‚’¯Á‚’¯Á‚’¯Á‚’¯Á‚’¯Á‚’¯Áÿ—ÿ•'ÿž/ ÿª8ÿµ@ÿ¾H)ùÈN:óÍVMêÓ\bÞÏbxÍÇh‹¿¾n›²·s¨§°y²ž«~º•§„ÀŽ£‹Äˆ¡’ǃŸšÉ€ §Ê}š¬Æ}˜¯Á}˜¯Á}˜¯Á}˜¯Á}˜¯Á}˜¯Á}˜¯Á}˜¯Á}˜¯Á}˜¯Á}˜¯Á}˜¯Áÿ˜ÿ–'ÿ / ÿ¬7ÿ·@ýÁH(öËN9ïÓTLæÙZbØÔawÇËgйÃlš­¼r§¡¶w±˜±}¸­‚¾ˆª‰Ã‚¨Æ}§™Èz§¥Éw¢¬ÅxŸ°ÁxŸ°ÁxŸ°ÁxŸ°ÁxŸ°ÁxŸ°ÁxŸ°ÁxŸ°ÁxŸ°ÁxŸ°ÁxŸ°ÁxŸ°Áÿ˜ÿ—&ÿ¢/ ÿ®7ÿ¹?ùÄG'ñÎM8êÛSKàßY`ÐÚ_vÁÐe‰³Ék™¦Âp¥›½u¯‘¸{¶ˆµ€¼²†À{°Ãv®–Ås®¡Ær­­Är©°Àr©°Àr©°Àr©°Àr©°Àr©°Àr©°Àr©°Àr©°Àr©°Àr©°Àr©°Àÿ™ÿ˜&ÿ¤. ÿ±6þ½?ôÈG%ëÔM6åãPIÙãW_Éß^tº×d†¬Ïi–Çm£‘Àq¬†»u³~·z¹w´½r²…¿m±Áj°—Âi±¥Ál´²½l´²½l´²½l´²½l´²½l´²½l´²½l´²½l´²½l´²½l´²½l´²½ÿšÿ™&ÿ§- +ÿµ6ùÁ?îÎF#äÜL2ÝçOIÏèV^Àä]r²Þd‚£Ôi‘•Ëmœ‰Åp¥Às¬w¼w±p¹|µk·¸g¶‡ºcµ»aµ›¼c·¦¹c·¦¹c·¦¹c·¦¹c·¦¹c·¦¹c·¦¹c·¦¹c·¦¹c·¦¹c·¦¹c·¦¹ÿ›ÿ›%ÿ«- ÿ¹5 òÇ>åÕFÚãI3ÏëNIÆíT]·ê\n¨âc}šÙiŠŽÒm”„Ìq›{Èu¡sÄx¦nÂ|©iÀ¬e¾‡®b½Ž°_½—±^¼ž±^¼ž±^¼ž±^¼ž±^¼ž±^¼ž±^¼ž±^¼ž±^¼ž±^¼ž±^¼ž±^¼ž±ÿœÿ $ÿ°,ùÀ4 éÏ=ÚßBÎéI3ÄñNH»òRZ­ð[ižçcv’ài‡Úo‰~ÔswÑw•qÎ{™lÌœhʃždɈ aÇŽ¢^Æ•¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤\Æ›¤ÿžÿ¥#ÿ·*ðÈ2ÜÛ5 ÎçBÂñH4¸ùLF¯÷QU¢õ[b•ídmŠçkv€âp}yÞu‚sÛz‡nÙ~ŠkׂŒgÕ†ŽdÔ‹aÓ’^Ñ–”\Ñ›•\Ñ›•\Ñ›•\Ñ›•\Ñ›•\Ñ›•\Ñ›•\Ñ›•\Ñ›•\Ñ›•\Ñ›•\Ñ›•ÿ¡ÿ­!ø¿&âÔ%Îå3ÂðB!¶úG3«þKB¢þPO—û[Z‹õec‚ðljzìrptéxtoç|wlåzhã„|fâˆ}cáŒ`à‘^ß–‚\Þšƒ\Þšƒ\Þšƒ\Þšƒ\Þšƒ\Þšƒ\Þšƒ\Þšƒ\Þšƒ\Þšƒ\Þšƒ\Þšƒÿ£ÿ¶éÌÏãÂð3µú@"©ÿD0ÿI=•ÿPH‹ÿ[P‚ýeWzùm]tösaoôydkò~ghñ‚ifð†jdïŠlbîŽm`í’n]ì—p\ë›q\ë›q\ë›q\ë›q\ë›q\ë›q\ë›q\ë›q\ë›q\ë›q\ë›q\ë›qÿ¬óÃÑÚ Áï´û3¨ÿ< ›ÿB,ÿH6‡ÿO?ÿZFxÿeKqÿmOlÿsRiÿyUfþ~Wdý‚Xbü†YaûŠZ_úŽ[^ú’\\ù—][ø›^[ø›^[ø›^[ø›^[ø›^[ø›^[ø›^[ø›^[ø›^[ø›^[ø›^[ø›^ú¹ÍË Àæ ²ü §ÿ3šÿ9ÿ?&‚ÿF.zÿN5sÿX:mÿc?iÿlBeÿrDbÿwF`ÿ|G_ÿH]ÿ…I\ÿˆJ[ÿŒKZÿLXÿ•MWÿ™MWÿ™MWÿ™MWÿ™MWÿ™MWÿ™MWÿ™MWÿ™MWÿ™MWÿ™MWÿ™MWÿ™MÍÁ¾Ð±ö¥ÿ! ™ÿ.Œÿ4€ÿ; vÿC'mÿL,fÿT0bÿ`3^ÿi5\ÿo7Zÿt8Yÿy9Xÿ}:Wÿ€;Vÿ„;Uÿ‡Rÿ“>Rÿ“>Rÿ“>Rÿ“>Rÿ“>Rÿ“>Rÿ“>Rÿ“>Rÿ“>Rÿ“>Rÿ“>½Å°×£ÿ™ÿ" ‹ÿ)~ÿ0sÿ8iÿ@bÿI#[ÿQ&WÿZ(Uÿb*Rÿi+Qÿo,Pÿs-Oÿw.Nÿz.Nÿ}/Mÿ€/Lÿ„0Kÿˆ0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0Kÿ‹0ÿ‹ÿˆ(ÿ„4ÿ:ÿ—BÿžK'ÿžW4ÿbBÿ™mOÿ“x\ø‚gòˆ‹qì‚“yè|™€äxž†át£Šßq¨ŽÝo®‘Ûm³”Úl¹–Øk˜ÕiÌšÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÿ‹ÿˆ(ÿ„4ÿ:ÿ—BÿžK'ÿžW4ÿbBÿ™mOÿ“x\ø‚gòˆ‹qì‚“yè|™€äxž†át£Šßq¨ŽÝo®‘Ûm³”Úl¹–Øk˜ÕiÌšÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÿ‹ÿˆ(ÿ„4ÿ:ÿ—BÿžK'ÿžW4ÿbBÿ™mOÿ“x\ø‚gòˆ‹qì‚“yè|™€äxž†át£Šßq¨ŽÝo®‘Ûm³”Úl¹–Øk˜ÕiÌšÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÿ‹ÿˆ(ÿ„4ÿ:ÿ—BÿžK'ÿžW4ÿbBÿ™mOÿ“x\ø‚gòˆ‹qì‚“yè|™€äxž†át£Šßq¨ŽÝo®‘Ûm³”Úl¹–Øk˜ÕiÌšÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÿ‹ÿˆ(ÿ„4ÿ:ÿ—BÿžK'ÿžW4ÿbBÿ™mOÿ“x\ø‚gòˆ‹qì‚“yè|™€äxž†át£Šßq¨ŽÝo®‘Ûm³”Úl¹–Øk˜ÕiÌšÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÿ‹ÿˆ(ÿ„4ÿ:ÿ—BÿžK'ÿžW4ÿbBÿ™mOÿ“x\ø‚gòˆ‹qì‚“yè|™€äxž†át£Šßq¨ŽÝo®‘Ûm³”Úl¹–Øk˜ÕiÌšÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÌeË›ÿ‹ÿ‰(ÿ…3ÿ9ÿ˜BÿžK'ÿŸV4ÿžaBÿšmPÿ•w]÷hñ‰‹r냒{ç}˜‚ãxˆàt£ŒÝr¨Ûo­“Ún³–Ølº˜Ök›ÑiÊœÊfÊœÊfÊœÊfÊœÊfÊœÊfÊœÊfÊœÊfÊœÊfÊœÊfÊœÊfÊœÊfÊœÿŒÿ‰'ÿˆ2ÿ“8ÿ›Aÿ¢J'ÿ¤T4ÿ¢_CÿŸjQýšt_õ”~l펈xç‡â€•ŠÝ{šÚw –Öt¦šÔq¬žÒo²¡Ðm¹£ÏlæÅgæÀiÇ¡ÀiÇ¡ÀiÇ¡ÀiÇ¡ÀiÇ¡ÀiÇ¡ÀiÇ¡ÀiÇ¡ÀiÇ¡ÀiÇ¡ÀiÇ¡ÿÿŠ'ÿŠ1 ÿ–7ÿž@ÿ¥I'ÿ§S4ÿ§]Cÿ¤hSü rbòš|pê”…}ã‹‹ˆÝ„’‘Ø~˜˜ÓzžŸÐu¤¤Írª¨Ëo°«Ém¸®Âi¼°¼kÀª·mÄ¥·mÄ¥·mÄ¥·mÄ¥·mÄ¥·mÄ¥·mÄ¥·mÄ¥·mÄ¥·mÄ¥·mÄ¥ÿÿ‹'ÿŒ0 ÿ˜7ÿ @ÿ§H&ÿ«R4ÿ«\Dÿ©fTú¥pdðŸys瘂߈و—Ò• Î{›§Êv¡­Çs¨±Åp¯µÁm··¹k¸µ³n½®°pÁ¨°pÁ¨°pÁ¨°pÁ¨°pÁ¨°pÁ¨°pÁ¨°pÁ¨°pÁ¨°pÁ¨°pÁ¨ÿŽÿ‹&ÿŽ0 ÿš6ÿ¢?ÿ©H&ÿ®Q4ÿ®[Dÿ¬dUùªneï¥wvå…Ü”…’ÔŒŒÎ„’§É}˜¯ÄxžµÂu§¹Át±»¸p³»±o¶¸¬q»±©s¿«©s¿«©s¿«©s¿«©s¿«©s¿«©s¿«©s¿«©s¿«©s¿«©s¿«ÿŽÿŒ&ÿ/ ÿ›6ÿ¤?ÿ«G&ÿ±P4ÿ±YDü°cUö®lgíªuxã¡|ˆÙ˜ƒ–щ£Ê‡­Å‚—´Â ¸¾|¨»»z°½±t²½©r´»¦t¹³£v¾­£v¾­£v¾­£v¾­£v¾­£v¾­£v¾­£v¾­£v¾­£v¾­£v¾­ÿÿŒ&ÿ‘. ÿ6ÿ¦>ÿ­G%ÿ³O4ÿ´XDú´aVó²jhì¯szá¦z‹Ö€šÍ”†§Æ¯¿‡”µº‚œ¹µ¤¼²}¬¾«y±¿£v²½ x¸µžy½¯žy½¯žy½¯žy½¯žy½¯žy½¯žy½¯žy½¯žy½¯žy½¯žy½¯ÿÿ&ÿ“. ÿž5ÿ¨>ÿ¯F%ÿ¶N3þ·WD÷·`Vð¶hiè³p{ÞªwП|Ç—ƒ§¿Š¯¸‹‘¶²†˜º­ƒ ½©©¿¥~°Àœy±¿š{··˜}»°˜}»°˜}»°˜}»°˜}»°˜}»°˜}»°˜}»°˜}»°˜}»°˜}»°ÿÿ&ÿ”- ÿ 5ÿ©>ÿ±F$ÿ¸M3ü»VDõ»_Ví»giãµn}Ö¬sÊ£zÁ›€§¸”‡°±Ž¶«Š•»¦‡¾¢…¥ÀŸ„¯Á–~°Á”¶¸“€»²“€»²“€»²“€»²“€»²“€»²“€»²“€»²“€»²“€»²“€»²ÿÿŽ&ÿ•- ÿ¡5ÿ«=ÿ³F$ÿºM3ú¾UDó¿]Vê¿ej߸k~ЯqŦxœ»Ÿ~§²˜…¯«“‹¶¥Ž“»Ÿ‹š¾›‰¢Á˜ˆ¬Â‚¯Âƒµ¹„º³„º³„º³„º³„º³„º³„º³„º³„º³„º³„º³ÿÿŽ%ÿ–, ÿ¢5ÿ¬=ÿµE#ÿ¼L2øÁTCðÃ\VçÃcjÚ»i~̲pÀªvœ¶¢|§­œ‚¯¥—‰¶ž“»™˜¾” Á‘Œ©Â‹ˆ®ÂŠˆ´ºŠˆ¹´Šˆ¹´Šˆ¹´Šˆ¹´Šˆ¹´Šˆ¹´Šˆ¹´Šˆ¹´Šˆ¹´Šˆ¹´Šˆ¹´ÿ‘ÿ%ÿ˜, ÿ¤4ÿ®=ÿ·E#ÿ¿L2öÅSCîÈ[VãÆajÔ¿h~ǶnŽ»­tœ±¦z¦§ €¯Ÿ›†µ˜—Ž»“••¾Ž’ÁŠ’§Â†Ž®Â„´»…Œ¹´…Œ¹´…Œ¹´…Œ¹´…Œ¹´…Œ¹´…Œ¹´…Œ¹´…Œ¹´…Œ¹´…Œ¹´ÿ‘ÿ%ÿ™, ÿ¦4ÿ°<ÿ¹D"üÁK1ôÉRBëÍYUßÉ`jÏÂf}¹l¶±r›««x¦¢¥~®™ „µ’‹ºŒš“¾‡˜›À„—¥Â€–¯Â’³¼€‘¸µ€‘¸µ€‘¸µ€‘¸µ€‘¸µ€‘¸µ€‘¸µ€‘¸µ€‘¸µ€‘¸µ€‘¸µÿ’ÿ%ÿ›, +ÿ§4ÿ²<ÿ»D!ùÅK0ñÎQAçÒXTÚÎ^iÊÆe|½½kŒ°¶pš¥°v¥œª|­“¦‚´Œ£‰¹† ½ž™¿}ž¢Á{ž¯Áy™³¼z—¸µz—¸µz—¸µz—¸µz—¸µz—¸µz—¸µz—¸µz—¸µz—¸µz—¸µÿ’ÿ%ÿ+ +ÿª3ÿµ<ü¿D ôÈJ.íÓP?ãØVSÓÒ]hÅÊc{·Âi‹ª»o˜Ÿ¶t£•±z¬­€²…ª‡·§Ž»z¦—¾w¦ ¿t¦­¿s¡´»tž¸µtž¸µtž¸µtž¸µtž¸µtž¸µtž¸µtž¸µtž¸µtž¸µtž¸µÿ“ÿ‘$ÿŸ+ ÿ¬3 ÿ¸;øÃCïÍJ,çÚO=ÝÞUQÍØ[g¾Ïbz°Èg‰¤Âm—™¼r¡¸x©†µ~°²…µy°Œ¸t¯•»p¯Ÿ¼n¯¬¼m«µ¹n§¹´n§¹´n§¹´n§¹´n§¹´n§¹´n§¹´n§¹´n§¹´n§¹´n§¹´ÿ”ÿ’$ÿ¢*ÿ°2 þ¼:òÇBèÓI)ááL;ÔãSQÆÝZe·Õ`x©Ïf‡Ék”‘Åpž‡Áv¦¾|¬x¼„±rº‹´m¹“¶j¸œ¸g·§¸g··¶h²»±h²»±h²»±h²»±h²»±h²»±h²»±h²»±h²»±h²»±h²»±ÿ•ÿ•#ÿ¥)ÿ´1 +øÁ:ëÎBàÝG%ÕåK;ËçQP½ãYc¯Þ_t¢Øeƒ–ÓjŠÎo™Ès¡uÄx§nÁ}«i¾„®e½‹±a¼“²_¼²_¼¬±b¿¾­b¿¾­b¿¾­b¿¾­b¿¾­b¿¾­b¿¾­b¿¾­b¿¾­b¿¾­b¿¾­ÿ–ÿ™!ÿª(ÿ¹0ðÈ8 áØ@ÔãE&ÊëK;ÁìOO³èW`¦å_ošâf|ŽÜl†„ÕqzÐu•sÍz›lÊŸgÇ„¢cÆŠ¤_Ä‘¦\Ä™§Zä§ZݧZݧZݧZݧZݧZݧZݧZݧZݧZݧZݧÿ˜ÿž ÿ¯&øÀ.æÐ3Õá<ÉêE(¿òJ;µñNL©ïV[í_h’êgs‡ãm|~Þr‚vÚxˆp×}ŒkÔ‚fÒ‡’cÑŒ•_Ï’–\Ι˜Y΢™XÍ«šXÍ«šXÍ«šXÍ«šXÍ«šXÍ«šXÍ«šXÍ«šXÍ«šXÍ«šXÍ«šÿšÿ¥ÿ·#íÉ&ÖÞ)Éé;¾óD)³øI:¨÷MHŸöUU”õ_`‰ñhh€ìopxèuuråzymâ}ià„€e߉‚bÝŽ„_Ü“†]Û™‡ZÚ¡‰XÙ¨‰XÙ¨‰XÙ¨‰XÙ¨‰XÙ¨‰XÙ¨‰XÙ¨‰XÙ¨‰XÙ¨‰XÙ¨‰XÙ¨‰ÿœÿ­öÁÛÚÉè) ½ó;²ýC(¦þG6œýLC“ýUMŠý_Vùi]yõpbsòvgnð|jjîmgì†odë‹qaêr_é”t]è™uZç wXæ¦xXæ¦xXæ¦xXæ¦xXæ¦xXæ¦xXæ¦xXæ¦xXæ¦xXæ¦xXæ¦xÿ¢ÿ·ØÏ Êç¼ó) ±ý;¤ÿ@&™ÿE2ÿK<‡ÿTDÿ_KxÿiPqÿpTlývXiû|Zfú\cø†^a÷‹__öa^ö•b\õšcZô dXó¥eXó¥eXó¥eXó¥eXó¥eXó¥eXó¥eXó¥eXó¥eXó¥eXó¥eÿ­ÖÃÈÓ +»ô¯ÿ* £ÿ7—ÿ="‹ÿC,ÿJ4zÿR:sÿ^?nÿhCiÿoGfÿuIcÿ{KaÿL_ÿ…N]ÿŠO\ÿPZÿ“QYÿ˜RWÿžSVÿ£TVÿ£TVÿ£TVÿ£TVÿ£TVÿ£TVÿ£TVÿ£TVÿ£TVÿ£TVÿ£TÙºÅǹ٬ÿ¢ÿ+ •ÿ3‰ÿ9~ÿ@%uÿH+mÿP0gÿZ4cÿe7`ÿm9^ÿs;\ÿx=Zÿ}>Xÿ‚?Wÿ†@Vÿ‹@UÿATÿ”BSÿšCQÿŸCQÿŸCQÿŸCQÿŸCQÿŸCQÿŸCQÿŸCQÿŸCQÿŸCQÿŸCQÿŸCƾ·ÍªäŸÿ”ÿ( ‡ÿ.{ÿ5qÿ=iÿE#bÿM&[ÿV)Xÿ_,Vÿh-Tÿn/Sÿs0Rÿx1Qÿ|1Pÿ€2Oÿ„3Nÿˆ3MÿŒ4Lÿ’4Kÿ–5Kÿ–5Kÿ–5Kÿ–5Kÿ–5Kÿ–5Kÿ–5Kÿ–5Kÿ–5Kÿ–5Kÿ–5·Ä©Ôœù “ÿ…ÿ# +yÿ)nÿ1eÿ9]ÿAWÿJSÿR PÿY"Mÿ`#Kÿf$Jÿk%Iÿo%Hÿs&Gÿw&Fÿ{'Eÿ~'Eÿ‚(Dÿ‡(Cÿ‹)Cÿ‹)Cÿ‹)Cÿ‹)Cÿ‹)Cÿ‹)Cÿ‹)Cÿ‹)Cÿ‹)Cÿ‹)Cÿ‹)ÿƒÿ€'ÿ{3 ÿ†8ÿŽ@ÿ“I"ÿ•U-ÿ“a9ÿmEÿ‹xOÿ†„Yü‚Ža÷}–hôxnñt£sîq©wìn®zêl³}éj¹çhÀægǃãeÏ…Ýc؆Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡ÿƒÿ€'ÿ{3 ÿ†8ÿŽ@ÿ“I"ÿ•U-ÿ“a9ÿmEÿ‹xOÿ†„Yü‚Ža÷}–hôxnñt£sîq©wìn®zêl³}éj¹çhÀægǃãeÏ…Ýc؆Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡ÿƒÿ€'ÿ{3 ÿ†8ÿŽ@ÿ“I"ÿ•U-ÿ“a9ÿmEÿ‹xOÿ†„Yü‚Ža÷}–hôxnñt£sîq©wìn®zêl³}éj¹çhÀægǃãeÏ…Ýc؆Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡ÿƒÿ€'ÿ{3 ÿ†8ÿŽ@ÿ“I"ÿ•U-ÿ“a9ÿmEÿ‹xOÿ†„Yü‚Ža÷}–hôxnñt£sîq©wìn®zêl³}éj¹çhÀægǃãeÏ…Ýc؆Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡ÿƒÿ€'ÿ{3 ÿ†8ÿŽ@ÿ“I"ÿ•U-ÿ“a9ÿmEÿ‹xOÿ†„Yü‚Ža÷}–hôxnñt£sîq©wìn®zêl³}éj¹çhÀægǃãeÏ…Ýc؆Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡Ó`Ú‡ÿƒÿ€'ÿ}2 ÿˆ7ÿ?ÿ•I"ÿ—T-ÿ–_9ÿ“kEÿŽwQÿˆ‚[ú„Œdõ”kñz›rîv¢wër§{éo­çl²‚åj¸„äi¿‡âhljàfÏŠÖcÖŒÏbØŠÏbØŠÏbØŠÏbØŠÏbØŠÏbØŠÏbØŠÏbØŠÏbØŠÏbØŠÿ„ÿ'ÿ€1 ÿ‹6ÿ“>ÿ™G"ÿœR-ÿš]:ÿ˜iGÿ“tSþŽ~_÷ˆ‰iñ‚‘rí}˜yéxŸåt¤„ãpªˆàm°ŒÞk·Ýj¿‘ÛiÈ“ÕfÏ•ËdÑ“ÆeÔŽÆeÔŽÆeÔŽÆeÔŽÆeÔŽÆeÔŽÆeÔŽÆeÔŽÆeÔŽÆeÔŽÿ…ÿ‚&ÿ‚0 ÿŽ5ÿ–=ÿœF!ÿ P-ÿŸ[;ÿœfHÿ˜qVû“|bô†mw耕€äzœ‡àu¢ŒÝr¨‘Úo¯•Øm·™ÕkÀœÒiÉžÉeÉžÂg͘¾iÑ“¾iÑ“¾iÑ“¾iÑ“¾iÑ“¾iÑ“¾iÑ“¾iÑ“¾iÑ“¾iÑ“ÿ†ÿƒ&ÿ…/ ÿ4ÿ™=ÿŸF!ÿ£O-ÿ£Z;ÿ dIÿoXú˜yeñ’ƒqꋌ|䃒†ß}™ŽÚx •Öt§šÓp®ŸÑm¶£ÏkÀ¥Çf§ÀhÆ¢»jË›·lΖ·lΖ·lΖ·lΖ·lΖ·lΖ·lΖ·lΖ·lΖ·lΖÿ†ÿƒ&ÿ‡. ÿ“4ÿ›<ÿ¡E ÿ§M-ÿ¦X;ÿ¤bJü¡lY÷œvhï–€uç‰à‡ŒÚ€–•ÕzžÑu¥£Íp¬¨Ëmµ¬Çk¾­½h¿¬¸kæ³mÈŸ°oÌ™°oÌ™°oÌ™°oÌ™°oÌ™°oÌ™°oÌ™°oÌ™°oÌ™°oÌ™ÿ‡ÿ„%ÿ‰- ÿ•3ÿ<ÿ¤D ÿªL-ÿªW;þ¨`Kø¥jZó¡tjíœ~y䓆†Ü‹’Õƒ”œÏ|›¥Ëw£ªÇt«­Äsµ¯¿p¼°µk¼°°nÁ©¬pÆ¢©rÊœ©rÊœ©rÊœ©rÊœ©rÊœ©rÊœ©rÊœ©rÊœ©rÊœ©rÊœÿ‡ÿ„%ÿ‹, +ÿ—3ÿŸ;ÿ¦Dÿ¬K,ÿ®U;û¬_Kõªh\î¦qlç z|ß—‚ŠÕŽˆ˜Í…¡Ç€—§Â{ž¬½x§¯ºv°±·uº²­pº²©q¿¬¥tĤ£uÉž£uÉž£uÉž£uÉž£uÉž£uÉž£uÉž£uÉž£uÉž£uÉžÿˆÿ…%ÿŒ+ +ÿ˜2ÿ¡;ÿ©Cÿ¯K,ÿ±T;ø±]Kñ¯f\ê«oná£vÕ™}Ì‘„™ÅŠŒ¢¾„“¨¹š­´|£°°z«³­y¶´¦t¹´¢u½¯ŸwæyÇ yÇ yÇ yÇ yÇ yÇ yÇ yÇ yÇ yÇ ÿˆÿ…%ÿŽ* +ÿš2ÿ£:ÿ«Bÿ±J+ýµS;öµ\Kî³d]å®loÛ¥sÎzÅ•™¾Žˆ¢·ˆ©±„—®¬€Ÿ±¨~¨´¥}²µŸz¸¶›y»±™{Á¨˜|Æ¢˜|Æ¢˜|Æ¢˜|Æ¢˜|Æ¢˜|Æ¢˜|Æ¢˜|Æ¢˜|Æ¢˜|Æ¢ÿ‰ÿ†%ÿ* +ÿœ1 ÿ¥:ÿ­Bÿ´J+û¸R:ó¹ZKê¸b^á±jpÓ©pÈ w¿™~™·’…¢°ŒŒ©ªˆ”®¥„œ² ‚¤µ®¶™··”}º³“Àª’Å£’Å£’Å£’Å£’Å£’Å£’Å£’Å£’Å£’Å£ÿ‰ÿ†$ÿ‘) ÿ1 ÿ§9ÿ¯Bÿ¶I*ø¼P:ð½YKç¼a^ܵgqάoäu޹œ|™±–‚¢ª‘Š©£Œ‘®ž‰™²™†¡µ–…«·“…¶·Ž¹´Žƒ¿«ƒÄ¥ƒÄ¥ƒÄ¥ƒÄ¥ƒÄ¥ƒÄ¥ƒÄ¥ƒÄ¥ƒÄ¥ƒÄ¥ÿ‰ÿ‡$ÿ“) ÿŸ1 ÿ©9ÿ±Aÿ¹I)öÀO9íÂWJä¿_]Ö¹fpɰm€¾¨sŽ´ z™«š€¢¤•‡©‘Ž®—Ž–²’‹ŸµŠ©·ŒŠ´¸ˆ†¸µˆ‡¾¬ˆ‡Ã¦ˆ‡Ã¦ˆ‡Ã¦ˆ‡Ã¦ˆ‡Ã¦ˆ‡Ã¦ˆ‡Ã¦ˆ‡Ã¦ˆ‡Ã¦ˆ‡Ã¦ÿŠÿ‡$ÿ”) ÿ¡0 ÿ«9ÿ´Aü»H(ôÃN8ëÇVJàÃ^]Ѽeoijk€¹«q¯¤w˜¦ž~¡žš„¨—–Œ®‘“”²Œ‘œµˆ¦·…±¸‚Œ·¶‚Œ¾­ƒŒÃ¦ƒŒÃ¦ƒŒÃ¦ƒŒÃ¦ƒŒÃ¦ƒŒÃ¦ƒŒÃ¦ƒŒÃ¦ƒŒÃ¦ƒŒÃ¦ÿŠÿˆ$ÿ–(ÿ£0 ÿ­8ÿ¶@ú¾H'ñÇN7çÌUHÜÇ\\Ì¿co¿·i´°pŒ©©u— £{ ˜Ÿ‚¨‘›‰­Š™’²…–𵕤·~•¯·{’·¶}‘½®}§}§}§}§}§}§}§}§}§}§ÿ‹ÿ‰$ÿ˜(ÿ¥/ ÿ°8ÿ¹@øÂG&îËM5äÐTFÕË[[ÇÃbnº»h~®´n‹£®s–š©zŸ’¥€¦Š¡‡¬„Ÿ±~˜´zœ¡¶x›¬¶uš·¶w˜½®x–§x–§x–§x–§x–§x–§x–§x–§x–§x–§ÿŒÿŠ#ÿš'ÿ§/ +ÿ³7ü½?óÆF#êÐL2àÕREÏÏYZÁÈ`l´Àf|¨ºlŠ´r•”°xž‹¬~¥ƒ¨…ª}¦Œ¯x¤•²t£Ÿ´q£ªµo¤¹´p ¾­r§r§r§r§r§r§r§r§r§r§ÿŒÿŒ"ÿ'ÿª. ÿ¶6÷Á>íÌF äØK.ÙÜPDÉÔXX»Í^k®Æez¢Àjˆ—»p’·u›„³|¢}±ƒ¨v¯Š¬q­“¯m­±j­©²i­·±j©¿¬k¦Ã¦k¦Ã¦k¦Ã¦k¦Ã¦k¦Ã¦k¦Ã¦k¦Ã¦k¦Ã¦k¦Ã¦k¦Ã¦ÿÿ ÿ &ÿ®-ý»5 ñÇ=åÓDÝàH-ÐáOBÂÛVV´Ó]h§ÍcxšÈh…Ãn…Àt˜}½zžvº¤p¹‰¨k¸’ªg·œ¬e¸¨­c¸¶­dµÁ©e°Å¤e°Å¤e°Å¤e°Å¤e°Å¤e°Å¤e°Å¤e°Å¤e°Å¤e°Å¤ÿŽÿ“ÿ¤%ÿ³,÷Á3 èÎ<ÜÞ@ÐåH.ÇåMB¹àUT¬Û[eŸÕat’Ðf‡Íl‹~Êr“vÈy™oÆžjʼn¢eÅ’¤bĦ_ħ§]Ä´§^ÃĤ_½È _½È _½È _½È _½È _½È _½È _½È _½È _½È ÿÿ˜ÿ©#ÿ¹)îÈ1ÝÚ4 +ÐäAÆëG.¼êLA°æSR£ãZa—àanŒÝhy‚Ûn‚zÙu‰rÕ|kÒ‚“eψ—`Íš\Ì—œZË XË«W˺YÌÌ™YÌÌ™YÌÌ™YÌÌ™YÌÌ™YÌÌ™YÌÌ™YÌÌ™YÌÌ™YÌÌ™ÿ’ÿÿ¯ öÀ%âÓ$Ðã2 Åì@ºñG/°ïK?¥íQNšëZZêbe…èjn}çruuãx{oà~€iÝ„„dÛŠ‡`Ù‘‰]ؘ‹ZÖ XÖ¨ŽVÕ´ŽTÕÁŽTÕÁŽTÕÁŽTÕÁŽTÕÁŽTÕÁŽTÕÁŽTÕÁŽTÕÁŽTÕÁŽÿ”ÿ¤ÿ·éËÑáÅì1ºõ@®÷E.£õJ<šôPHóZS†óc[~òlbwñshqîzmlë€pgé†scçŒv`æ’x]ä˜zZãž{Xã¥}Vâ¯~Tá¸~Tá¸~Tá¸~Tá¸~Tá¸~Tá¸~Tá¸~Tá¸~Tá¸~Tá¸~ÿ˜ÿ­óÃÒØ Äì¸ö1­ý>¢ýC+—üH7ŽüOA…üYI}ücPwümVpûtZkùz^h÷adõ‡caóe_ò“g]ñ™hZðžiXï¥kVï­lTî´mTî´mTî´mTî´mTî´mTî´mTî´mTî´mTî´mTî´mÿ£ñ¹ ÎÉ Äß ¶÷¬ÿ2 ÿ;”ÿA'ŠÿG1ÿN9zÿX?sÿbEnÿlIiÿsLfÿzOcÿ€Q`ÿ†S^ÿŒT\ÿ’UZþ˜WYýXWü¤YUû«ZTû±[Tû±[Tû±[Tû±[Tû±[Tû±[Tû±[Tû±[Tû±[Tû±[ð¯Í¿ÀÍ´î©ÿ!Ÿÿ1’ÿ7‡ÿ>"}ÿE)uÿM0nÿU5iÿ`9eÿj_ÿw@\ÿ~BZÿ„CYÿ‰DWÿEVÿ”FUÿšGSÿ HRÿ§IQÿ­JQÿ­JQÿ­JQÿ­JQÿ­JQÿ­JQÿ­JQÿ­JQÿ­JQÿ­Jϸ¾Ã²Ô¦þœÿ#ÿ-„ÿ3yÿ;pÿC"iÿJ'bÿR*]ÿ\-Zÿe0Xÿm1Vÿs3Tÿy4Sÿ~5Rÿ„6Pÿ‰7OÿŽ8Nÿ“8Mÿ™9Lÿ :Kÿ¦:Kÿ¦:Kÿ¦:Kÿ¦:Kÿ¦:Kÿ¦:Kÿ¦:Kÿ¦:Kÿ¦:Kÿ¦:¿¼°Ê£Ü™ÿÿ"‚ÿ( vÿ/mÿ7eÿ?^ÿGXÿN!TÿW#Qÿ_%Nÿe&Mÿl'Kÿq(Jÿv)Iÿ{*Hÿ€*Gÿ…+Fÿ‰+EÿŽ,Dÿ”,Cÿš-Cÿš-Cÿš-Cÿš-Cÿš-Cÿš-Cÿš-Cÿš-Cÿš-Cÿš-±Â£Ò•ëŒÿ€ÿtÿ# +iÿ*`ÿ2Yÿ:SÿBNÿIKÿQHÿXFÿ]DÿcCÿgAÿl@ÿp?ÿt >ÿx =ÿ| <ÿ!;ÿ‡!;ÿŒ";ÿŒ";ÿŒ";ÿŒ";ÿŒ";ÿŒ";ÿŒ";ÿŒ";ÿŒ";ÿŒ"ÿzÿv(ÿr3 ÿ|7ÿ„?ÿˆHÿ‹S'ÿ‰`1ÿ†m;ÿ‚yDÿ~†Lÿ{‘SÿwšXÿt¢]üq¨aún®døk´g÷iºiõhÁkófÈmïcÍoìaÓpç_Ýqâ]åsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÿzÿv(ÿr3 ÿ|7ÿ„?ÿˆHÿ‹S'ÿ‰`1ÿ†m;ÿ‚yDÿ~†Lÿ{‘SÿwšXÿt¢]üq¨aún®døk´g÷iºiõhÁkófÈmïcÍoìaÓpç_Ýqâ]åsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÿzÿv(ÿr3 ÿ|7ÿ„?ÿˆHÿ‹S'ÿ‰`1ÿ†m;ÿ‚yDÿ~†Lÿ{‘SÿwšXÿt¢]üq¨aún®døk´g÷iºiõhÁkófÈmïcÍoìaÓpç_Ýqâ]åsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÿzÿv(ÿr3 ÿ|7ÿ„?ÿˆHÿ‹S'ÿ‰`1ÿ†m;ÿ‚yDÿ~†Lÿ{‘SÿwšXÿt¢]üq¨aún®døk´g÷iºiõhÁkófÈmïcÍoìaÓpç_Ýqâ]åsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÝ[æsÿzÿw'ÿt2 ÿ6ÿ†=ÿ‹GÿŽQ'ÿŒ^1ÿ‰k<ÿ…wFÿƒNÿ}Vÿy˜\üu aùr¦e÷o­iõl³lój¹oòhÀqðfÈsìdÍuèaÔvã_ÞwÛ]ãyÕ]åvÕ]åvÕ]åvÕ]åvÕ]åvÕ]åvÕ]åvÕ]åvÕ]åvÿ{ÿw'ÿw0 +ÿ‚5ÿŠ<ÿFÿ’O'ÿ‘\2ÿŽh=ÿŠtHÿ†€Rÿ‹Zü}•aøxgõt¤mòqªqðn°tîk¶wìi¾zêgÇ}çeÎâbÖ€Ù_ÝÐ_à~Ì`ã{Ì`ã{Ì`ã{Ì`ã{Ì`ã{Ì`ã{Ì`ã{Ì`ã{Ì`ã{ÿ|ÿx&ÿz/ +ÿ…3ÿ;ÿ’Dÿ–N'ÿ•Z2ÿ’e>ÿŽqJÿŠ}Uþ…ˆ^ù€’gô{šnðv¡sír§xêo®}èl´€æi¼ƒägƆáeψÙb׊ÏaÙˆÈbÝ‚ÄcàÄcàÄcàÄcàÄcàÄcàÄcàÄcàÄcàÿ}ÿy&ÿ|. +ÿˆ2ÿ:ÿ•CÿšL'ÿ™X3ÿ–c?ÿ’nLÿŽzWü‰…bõ„kð~—sìyžzèt¥€åp«…âl³‰àj»ŒÞhÆÚfÑ’ÎbÑ’ÇdÕŒÁeÛ†½fÝ‚½fÝ‚½fÝ‚½fÝ‚½fÝ‚½fÝ‚½fÝ‚½fÝ‚½fÝ‚ÿ}ÿz&ÿ, +ÿ‹1 ÿ“:ÿ˜BÿK&ÿV3ÿ›a@ÿ—lMû’vZ÷fòˆŒpì‚”yç{›ãu¢ˆßq©ŽÜm±’Ùk»–×iÈ™ÌdË›ÅeΗÀgÒ‘ºhØŠ¶iÛ†¶iÛ†¶iÛ†¶iÛ†¶iÛ†¶iÛ†¶iÛ†¶iÛ†¶iÛ†ÿ~ÿ{&ÿ+ ÿ1 ÿ•9ÿ›Bÿ J&ÿ¡T3ÿŸ_AûœiOö—s]ñ’~j쌈uç…‘€â~˜‰Ýx ‘Ør§—Òm¯Ïl¹ŸÌkÅ ÃgÇ ¼hË›·jД²lÕ¯lÙ‰¯lÙ‰¯lÙ‰¯lÙ‰¯lÙ‰¯lÙ‰¯lÙ‰¯lÙ‰¯lÙ‰ÿ~ÿ{%ÿƒ* ÿ0 ÿ˜8ÿžAÿ£I&ÿ¦R3ý¤]A÷¡gPñœq_ë—{måƒzÞ‡‹†Õ~’‘Ïx™—Êt¡œÇqªŸÃo³¡Án¿£ºkÅ£³kÈŸ¯m͘«oÒ‘©pÖŒ©pÖŒ©pÖŒ©pÖŒ©pÖŒ©pÖŒ©pÖŒ©pÖŒ©pÖŒÿÿ|%ÿ†)ÿ’/ ÿ›8ÿ¡@ÿ§H%ÿªQ2ù©[Aó¦dQì¢naåšvpÜ‘~Ò‰†‹Ë‚“Å}•™Àxž¼u¥¡¹s®¤¶r¹¥²pæ«oÆ¢¨qË›¤sГ¢tÔŽ¢tÔŽ¢tÔŽ¢tÔŽ¢tÔŽ¢tÔŽ¢tÔŽ¢tÔŽ¢tÔŽÿ€ÿ|%ÿˆ(ÿ”/ ÿ7ÿ¤?ÿªG$ý®O2ö­YAï«bRç¦kbÞžrsÒ•zÊ‚‹Ã‡Š“½‘š·}™Ÿ³y¡£¯wª¦¬v´§ªvÁ¨£sÃ¥ uÉžžwÏ–œwÒ‘œwÒ‘œwÒ‘œwÒ‘œwÒ‘œwÒ‘œwÒ‘œwÒ‘œwÒ‘ÿ€ÿ}%ÿŠ'ÿ–. ÿŸ6ÿ§?ÿ­G#û²N1ó²WAë±`RâªhdÖ¢ptÌ™wÃ’‹¼‹†”µ†Žš¯• ª~¤¦{¦§£z°©¡y¼©›wÁ¨™yÇ ˜z͘—{Ñ“—{Ñ“—{Ñ“—{Ñ“—{Ñ“—{Ñ“—{Ñ“—{Ñ“—{Ñ“ÿÿ~$ÿŒ&ÿ˜. +ÿ¢6ÿ©>ÿ¯F#øµM0ð·V@çµ^RÝ®fdÐ¥nsÆu€½–|‹µƒ”®Š‹›¨†’ £‚š¥Ÿ£¨›~­ª˜}¹«”{Àª“}Æ¢’~Ì™‘Д‘Д‘Д‘Д‘Д‘Д‘Д‘Д‘Дÿÿ~$ÿ&ÿš- +ÿ¤5ÿ¬=þ²E"ö¸L0í¼T@ä¸]QײdcË©lsÀ¡s€·šz‹¯”€“¨ˆ›¢Š œ‡—¥—„ ¨”‚©ª‘‚µ«¿«Å¤Œ‚Ë›Œ‚Ï•Œ‚Ï•Œ‚Ï•Œ‚Ï•Œ‚Ï•Œ‚Ï•Œ‚Ï•Œ‚Ï•Œ‚Ï•ÿ‚ÿ$ÿ%ÿœ- ÿ¦5ÿ®=üµE!ó¼K.êÁR?à¼[QѵccÆ­jr»¥q²žwŠ©˜~“¢“…š› –Œ•¥‘‰¨‡§«Š‡²¬‡‡¿¬††Ä¥‡†Êœ‡†Î—‡†Î—‡†Î—‡†Î—‡†Î—‡†Î—‡†Î—‡†Î—‡†Î—ÿ‚ÿ€#ÿ‘%ÿž, ÿ¨4 ÿ±<ú¸Dð¿K-çÅQ=ÜÀZP͸abÁ°hq¶©o~¬¢u‰¤|’œ˜‚š•”Š ‘’¥ŠŽ›¨†¥«ƒŒ°¬¾¬€‹Ã¦‹É‹Í˜‹Í˜‹Í˜‹Í˜‹Í˜‹Í˜‹Í˜‹Í˜‹Í˜ÿƒÿ‚"ÿ“$ÿ ,ÿ«3 ÿ´<÷¼CîÄJ+äÉQ;ÕÄXOȼ`a¼´gp±­m}§§s‰ž¢y’–€™šˆŸ‰—¤ƒ”˜¨“¢ª|’­«z’»¬z‘æ{Éž|͘|͘|͘|͘|͘|͘|͘|͘|͘ÿƒÿ„!ÿ•$ÿ¢+ÿ­3 þ·;ôÀBêÉI(àÍO9ÐÇWNÃÀ^`·¸eo«²k|¡¬q‡˜§x£~˜‰ …ž‚£}›–§x™ ©u™«ªs™¸«s˜Ã¦u–Éžv•Í™v•Í™v•Í™v•Í™v•Í™v•Í™v•Í™v•Í™v•Í™ÿ„ÿ‡ ÿ—#ÿ¥*ÿ±2 +û»:ñÅAçÏH%ÛÒM8ËËUL½Ä]^±¾cn¥¸j{›²o†’®v‰ª|–‚§ƒœ{¤‹¡v¢”¥q¡§n ©©l¡¶©m¡Ã¦oÉžpœÍ˜pœÍ˜pœÍ˜pœÍ˜pœÍ˜pœÍ˜pœÍ˜pœÍ˜pœÍ˜ÿ…ÿŠÿš"ÿ¨)ÿµ0öÀ8ëË@áØF ÓØK6ÅÐTK·É[\«ÃblŸ¾hx”¹nƒ‹µsŒƒ²z“{¯™u­‰žo«’¢kªœ¤hª§¥fª´¦f«Å¤h¦Êœi¤Í—i¤Í—i¤Í—i¤Í—i¤Í—i¤Í—i¤Í—i¤Í—i¤Í—ÿ†ÿÿž!ÿ¬'ýº/ïÇ6 +ãÔ>ØßCËÞJ4¾ÖRH°ÐZZ¤Ê`i˜ÆfvÁl€„¾r‰{»xt¹•n·‡ši¶eµ› b´¦¡`µ³¡_¶Å a±Ìšb®Ï•b®Ï•b®Ï•b®Ï•b®Ï•b®Ï•b®Ï•b®Ï•b®Ï•ÿ‡ÿ‘ÿ¢ ÿ²%õÀ+æÏ1ØÞ8ÌåC ÃâI3¶ÞQF©ØXWœÒ^eÎdr†Ëj||Èp„tÆwŠnÄ~hÇ”c—_Á›™\Á¦š[³›ZÃÅš[¾Ï•\ºÒ‘\ºÒ‘\ºÒ‘\ºÒ‘\ºÒ‘\ºÒ‘\ºÒ‘\ºÒ‘\ºÒ‘ÿ‰ÿ–ÿ¨þ¸!ìÉ"ÙÝ%Ìå7ÂêC"·çH3¬äOD àVS”Ý]`ˆÚck~ÖjuuÔp}nÒwƒgшbЇ‹^БŽZМXЧ‘Vе’UÒÇ‘VÍÔŽVÈÖ‹VÈÖ‹VÈÖ‹VÈÖ‹VÈÖ‹VÈÖ‹VÈÖ‹VÈÖ‹VÈÖ‹ÿ‹ÿÿ¯ôÁÝØÌå&Áî7¶ïB#«íG2¡ëL@–éUM‹ç]X‚æeayälirätolã|tgâ„xbâ{^â•~[àž€Xß§‚UÞ±ƒSÞ¾ƒRÞÒƒQÙÜ‚QÙÜ‚QÙÜ‚QÙÜ‚QÙÜ‚QÙÜ‚QÙÜ‚QÙÜ‚QÙÜ‚ÿÿ¤þ¸ÖÌ ÌäÀï&µõ8ªô@"ŸóF0•òK<ŒñTF‚ð]OzðfVtðn\nïvaiï~deï†haïŽj^î–m[ížoXë¥pVë®qTê¸rRêÇsQéÕsQéÕsQéÕsQéÕsQéÕsQéÕsQéÕsQéÕsQéÕsÿ˜ÿ®ÔÁ ÉÏ ¾ð³ù' +©û8žû>!“ûD,‰úJ5úS>yú]ErúfJmúoNhúvRdú~Uaú†W_ûŽZ\ú–[Zù]Wø¥^U÷¬`S÷µaRöÁaPöÊbPöÊbPöÊbPöÊbPöÊbPöÊbPöÊbPöÊbPöÊbÿ£ Ö¸ÆÄ»Ô °ü¦ÿ) œÿ5ÿ;†ÿB&}ÿI.uÿQ4oÿ[:iÿe>eÿnAbÿuD_ÿ|F\ÿƒHZÿ‹IXÿ“KVÿ›LUÿ¢MSÿ©NQÿ±OPÿ»POÿÃQOÿÃQOÿÃQOÿÃQOÿÃQOÿÃQOÿÃQOÿÃQOÿÃQÚ¯Ƽ¹É­Û£ÿšÿ+ Žÿ1ƒÿ8yÿ@ pÿG&iÿO+cÿX/_ÿb2\ÿk4Zÿr6Xÿx8Vÿ9Tÿ†;RÿNÿ£>Mÿª?Kÿ³@Jÿ¹AJÿ¹AJÿ¹AJÿ¹AJÿ¹AJÿ¹AJÿ¹AJÿ¹AJÿ¹Aȵ¸Á«ÐŸë –ÿ‹ÿ& +ÿ-uÿ5lÿ=eÿD^ÿL"XÿT%Uÿ]'Rÿe)Pÿl*Nÿs+Mÿy,Lÿ-Jÿ….IÿŒ/Hÿ’0Gÿ™0Eÿ 1Dÿ©2Cÿ®2Cÿ®2Cÿ®2Cÿ®2Cÿ®2Cÿ®2Cÿ®2Cÿ®2Cÿ®2¸ºªÈÙ’ÿ ‰ÿ}ÿ!rÿ( hÿ0`ÿ8Zÿ@TÿHOÿOLÿWIÿ]Gÿc Eÿi Dÿo!Bÿt"Aÿz"@ÿ€#?ÿ†$>ÿŒ$=ÿ’%<ÿ™%;ÿž&;ÿž&;ÿž&;ÿž&;ÿž&;ÿž&;ÿž&;ÿž&;ÿž&«ÁÐá†ÿzÿnÿdÿ# \ÿ+ Uÿ3Oÿ;IÿBFÿIBÿO@ÿU>ÿZ<ÿ_;ÿd9ÿh8ÿm7ÿr6ÿw5ÿ|4ÿ3ÿˆ2ÿ2ÿ2ÿ2ÿ2ÿ2ÿ2ÿ2ÿ2ÿÿpÿl)ÿi3 ÿr7 ÿy>ÿ}Gÿ€Q!ÿ~_)ÿ|m2ÿy{9ÿvˆ@ÿs“EÿpJÿn¦Nÿk­Qÿi´Sÿh»UÿfÃWÿcÇYûaÌ[÷_Ó\ó^Ý]ð\ã^ë[é_çYï`åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_ÿpÿl)ÿi3 ÿr7 ÿy>ÿ}Gÿ€Q!ÿ~_)ÿ|m2ÿy{9ÿvˆ@ÿs“EÿpJÿn¦Nÿk­Qÿi´Sÿh»UÿfÃWÿcÇYûaÌ[÷_Ó\ó^Ý]ð\ã^ë[é_çYï`åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_ÿpÿl)ÿi3 ÿr7 ÿy>ÿ}Gÿ€Q!ÿ~_)ÿ|m2ÿy{9ÿvˆ@ÿs“EÿpJÿn¦Nÿk­Qÿi´Sÿh»UÿfÃWÿcÇYûaÌ[÷_Ó\ó^Ý]ð\ã^ë[é_çYï`åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_åYñ_ÿpÿl(ÿk1 ÿu6 ÿ{<ÿFÿƒP!ÿ^*ÿ~k3ÿ{x;ÿx†Bÿu’Hÿr›Mÿp¤Qÿm¬Tÿk²Wÿi¹ZÿgÁ\üeÇ^øbÌ_õ`Óað^Ýbì\äcè[édâZïdàZðbàZðbàZðbàZðbàZðbàZðbàZðbàZðbÿqÿm(ÿn0 ÿx4 ÿ;ÿƒDÿ‡N!ÿ†[+ÿƒh4ÿu=ÿ|‚EÿyŽLÿv™Rÿr¡Vÿo©Zþm°^üj·aûh¾cùfÆeôcÌgðaÓië_Þkæ]ålà[émÙ\îhÖ\ïgÖ\ïgÖ\ïgÖ\ïgÖ\ïgÖ\ïgÖ\ïgÖ\ïgÿrÿn(ÿq. ÿ{2 ÿƒ:ÿ‡CÿŠL!ÿŠY+ÿ‡e5ÿƒr?ÿ~Hÿ|‹Pÿy–VÿuŸ\ýr¦`ún­døl´höi¼kôgÅmðdÌpëaÓrå_ßsÞ\åtÖ\èqÏ^ílÍ^îkÍ^îkÍ^îkÍ^îkÍ^îkÍ^îkÍ^îkÍ^îkÿsÿo'ÿt-ÿ~1 ÿ†9ÿ‹BÿŽK!ÿŽV+ÿ‹c6ÿ‡oAÿƒ{Kÿ‡Sþ|’[üxœaùt¤göp«kóm²oñjºsïhÃvëeÌxæbÕzÞ_ß|Ó]ã{Í_ævÇ`êpÆ`ìnÆ`ìnÆ`ìnÆ`ìnÆ`ìnÆ`ìnÆ`ìnÆ`ìnÿtÿp'ÿv+ÿ/ ÿ‰8ÿŽ@ÿ’I!ÿ“T,ÿ`7ÿŒlCÿ‡wMûƒƒWøŽ`öz—góv nðr¨sín¯xëk¸|èhÂæfÍ‚ßbØ„Ñ_Ü…Ê`àÅaãz¿cèt¾cér¾cér¾cér¾cér¾cér¾cér¾cér¾cérÿtÿp&ÿy*ÿ…. ÿ7ÿ’?ÿ–H ÿ—R,ÿ•^8þ‘iDúŒtPõ‡[ò‚‰eî}“nêw›uçr£|än«áj³†Þg½ŠÚeÊÒbÔŽÈbØŠÂcÜ„¼eà~·fåx¶fæv¶fæv¶fæv¶fæv¶fæv¶fæv¶fæv¶fævÿuÿq&ÿ|(ÿˆ- +ÿ6ÿ–>ÿšG ÿœP+ÿš[8ù—fEô’pRïŒ{_ê……jå~tàx•}Ûr…Ôm¤‹Ðj­ŽÍh·ËhÑÈgÑ’¿eÔ¹gÙ‰´hÝ‚°iâ|®jäy®jäy®jäy®jäy®jäy®jäy®jäy®jäyÿvÿr&ÿ'ÿŠ, +ÿ“5ÿ™=ÿžFÿ¡N+û Y8õœcFï˜mTèwbâˆoÚ€‡{ÒzƒÍu—‰ÉqŸÅn¨‘Âl±“¿k¼•½kË•¶iД±kÕ¬lÛ†¨mà§mâ|§mâ|§mâ|§mâ|§mâ|§mâ|§mâ|§mâ|ÿvÿs%ÿ&ÿ, ÿ–4ÿ<ÿ¡Dþ¥L*÷¥W8ð¢aGéœjVá”reØŒ{sÏ…ƒ|É‹„Ãz“Š¿v›ºs£“·p¬–´o·—±oʬm͘©oÓ¥p؉¡qÞ‚ qà qà qà qà qà qà qà qàÿwÿt%ÿƒ%ÿ+ ÿ™3 ÿ ;ÿ¥Cû©K)óªT8ì¨^Gã¡gWÚ™ogÏ‘xsÇŠ€}Á„ˆ…»‹µz—±wŸ”­t¨—ªs²™§r¿š¤rËš¡sГžtÖŒ›uÜ„šuÞšuÞšuÞšuÞšuÞšuÞšuÞšuÞÿxÿv$ÿ†#ÿ’*ÿ›2 ÿ£:ÿ¨Bø­J(ð¯R7ç¬\GÞ¥dXÑmfÈ•usÀŽ|}¹‰„…³ƒŒŒ­“‘©{›•¥y¤™¡w®›žvºœwÊœ™wÏ–—xÔŽ•xÛ†”x݃”x݃”x݃”x݃”x݃”x݃”x݃”x݃ÿxÿx#ÿˆ#ÿ”*ÿž1 ÿ¦:þ«Bõ°I'ìµP6ã°ZFØ©cWÌ¡kfšrrº“z|³…¬ˆ‰Œ¦„‘¡€˜–}¡š™{ªœ–{¶”{Æž’{͘‘|Ó|Ùˆ|Ü…|Ü…|Ü…|Ü…|Ü…|Ü…|Ü…|Ü…ÿyÿz"ÿŠ"ÿ–)ÿ 1 ÿ¨9û¯Aò´H&é¹O4ß´YEÒ­aVÇ¥ie½žpr´—w|­‘~…¦Œ†Œ ˆ‘š…•––‚žš’€§³ž€Âž‹€Ìš‹Ò’Š€Ø‰‰€Û†‰€Û†‰€Û†‰€Û†‰€Û†‰€Û†‰€Û†‰€Û†ÿyÿ{!ÿ‹"ÿ˜(ÿ£0 +ÿ«8ù²@ï¸G$æ½N3Û¸WDͰ`V©gd¸¢nq¯›u{§–|„ ‘ƒ‹š‹‘”Š“–‡›š‹…¥ˆ„°Ÿ…„¿Ÿ……Ë›……Ñ“……ØŠ„„Ú‡„„Ú‡„„Ú‡„„Ú‡„„Ú‡„„Ú‡„„Ú‡„„Ú‡ÿzÿ} ÿ!ÿ›(ÿ¥/ ÿ®7ö¶?ì¼F"ãÁN0Õ¼VCÈ´^U½¬fc³¦lpªŸs{¡šz„š–‹”’ˆ‘Ž–‰Œ™š„УЮŸ~мŸ~ŠÊœŠÐ”‰Ö‹ˆÙˆˆÙˆˆÙˆˆÙˆˆÙˆˆÙˆˆÙˆˆÙˆÿzÿÿ!ÿ'ÿ¨.þ²6 óº>éÁEßÅL/пTBÄ·]S¸°db®ªjo¤¤qzœŸwƒ”›~ŠŽ˜†‡•Ž•‚’—™} œz«žx¹Ÿw‘ÊyÏ•yŽÖŒy؉y؉y؉y؉y؉y؉y؉y؉ÿ{ÿÿ’ ÿ &ÿ«-ûµ5 ð¾=æÇDÚÉI.ËÃSA¾¼[R³µba¨¯inŸªox–¥uŽ¡|‰‡žƒ›‹”{™”˜w—ž›s–©q–¶žp—Èr–Ï•s”ÕŒt“؉t“؉t“؉t“؉t“؉t“؉t“؉t“؉ÿ|ÿ„ÿ•ÿ£%ÿ¯,÷º3 ìÄ;âÎBÓÎH,ÆÇR@¹ÀZQ­ºa_£´gl™°mw«t€ˆ¨z‡¥z¢‰’u ’–pž›™lž§›jž´œiŸÅ›lžÐ”mšÖŒm™Ø‰m™Ø‰m™Ø‰m™Ø‰m™Ø‰m™Ø‰m™Ø‰m™Ø‰ÿ}ÿ‡ÿ˜ÿ¦#ÿ³)óÀ1çË8 ÝØ:ÍÒF*ÀÌP>³ÆXO§À_]œ»ej’·kt‰³q}¯x„z­Štª‡n©“i§š–f§¥˜c§²™b¨Ã˜e§Ñ“f£Ö‹g¡Ù‰g¡Ù‰g¡Ù‰g¡Ù‰g¡Ù‰g¡Ù‰g¡Ù‰g¡Ù‰ÿ~ÿ‹ÿœÿ«!û¹&íÇ,ßÕ1ÓÞ9ÆØD(¹ÑN;¬ÌVL Ç]Z•Âcg‹¿iq‚»oyz¸v€s¶}†m´…‹h³Žc²˜’`±¤“^²±”\²Â”^²Ó_¬Ù‰`ªÚ†`ªÚ†`ªÚ†`ªÚ†`ªÚ†`ªÚ†`ªÚ†`ªÚ†ÿÿÿ¡ÿ±ôÀ ãÑ Óß,Éâ;¾ßD%²ÙL8¥ÓTI™Ï[WŽËac„Èhl{ÅnusÃu{lÁ|gÀ„…b¿Ž‰^¾˜‹Z¾¤X¾±ŽW¿ÂX¿×‹Y¸Ü…Y¶ÝƒY¶ÝƒY¶ÝƒY¶ÝƒY¶ÝƒY¶ÝƒY¶ÝƒY¶Ýƒÿÿ•ÿ§ý¸éËÓßÈç,¾æ;³äD%¨áK5œÝRD‘ÙYR†Õ`]|ÓfftÑmnlÏttfÎ|yaÍ…}\ÌŽ€YÌ™ƒVÌ¥„T̳…SÍÄ…SÍ݃SÆà~TÃá}TÃá}TÃá}TÃá}TÃá}TÃá}TÃá}TÃá}ÿ‡ÿœÿ®Ú +ÐÒ +Çè¼ì, +²ë<¨êC%èH3’æP@ˆäYK~â`Tváh\oàobhßwhcÞl^ÞˆpZÞ‘sWÞ›uTÞ§wRß´xPßÄxOàÞxOÖåuOÓçtOÓçtOÓçtOÓçtOÓçtOÓçtOÓçtOÓçtÿÿ¤Û¸ÍÅ ÅÕ +ºñ°ò- ¦ñ;›ðA$‘ïG/‡îN:~îXCwíaJpíiPjìqUeìyYaì\]ìŠ_Zì“aWícUí§eRí³fQîÀgOïÔhNëæhMèèhMèèhMèèhMèèhMèèhMèèhMèèhMèèhÿ™ Ý®̼ÁÉ¸Û +­ø¤ø/ ™ø9ø?!…øF*|øM2u÷W9n÷`?i÷iCdøqGaøyJ]øLZø‰OXø’QVù›RSù¥TQú¯UPú»VNúÊWMûãWLûéWLûéWLûéWLûéWLûéWLûéWLûéWLûéWå¥Î´¿¿´Îªë  ÿ—ÿ/ Œÿ6‚ÿ=xÿD$pÿL*jÿT/eÿ^3aÿg7]ÿo9ZÿvVÿ†?SÿŽAQÿ—BPÿ CNÿ©EMÿ³EKÿ¾FJÿÐGIÿÜGIÿÜGIÿÜGIÿÜGIÿÜGIÿÜGIÿÜGIÿÜGÑ®¿¹²Å§Õœý”ÿ"‰ÿ+ ~ÿ2uÿ:lÿBeÿI"_ÿQ%ZÿZ(Wÿc+Tÿk-Rÿr/Pÿy0Oÿ€1Mÿˆ2Kÿ4Jÿ˜5Hÿ¡5Gÿª6Fÿ³7Dÿ¿8DÿÅ8DÿÅ8DÿÅ8DÿÅ8DÿÅ8DÿÅ8DÿÅ8DÿÅ8Á³²¾¥Ì™Ýÿ†ÿ{ÿ' +qÿ.hÿ6aÿ>ZÿFUÿMQÿUNÿ] Kÿd"Iÿk#Gÿq$Fÿx%Dÿ&Cÿ†'AÿŽ(@ÿ–(?ÿž)=ÿ§)<ÿ°*<ÿ´*<ÿ´*<ÿ´*<ÿ´*<ÿ´*<ÿ´*<ÿ´*<ÿ´*³¸¥Æ—Õ‹ï„ÿwÿmÿ"dÿ* \ÿ2Uÿ9PÿAKÿHHÿOEÿVBÿ\@ÿa>ÿg<ÿm;ÿs9ÿy8ÿ€6ÿˆ5ÿ4ÿ—2ÿ 2ÿ¤2ÿ¤2ÿ¤2ÿ¤2ÿ¤2ÿ¤2ÿ¤2ÿ¤¦À—ΉÞÿtÿiÿ_ÿWÿ$Pÿ, +Jÿ3 Eÿ;AÿA=ÿG:ÿM8ÿR6ÿW4ÿ\2ÿa1ÿf/ÿk.ÿq-ÿw,ÿ}*ÿƒ)ÿ‹)ÿŽ)ÿŽ)ÿŽ)ÿŽ)ÿŽ)ÿŽ)ÿŽ)ÿŽÿf ÿa*ÿa3ÿi6 ÿn=ÿqFÿsQÿs^#ÿpm)ÿn|0ÿk‰5ÿi–9ÿg¡=ÿfª@ÿd²Bÿc¹DÿaÂFÿ`ÈGÿ^ÍHÿ\ÔJÿ[ÞKûYäL÷XêLôWïMðVóMìUøMìUøMìUøMìUøMìUøMìUøMìUøMìUøMÿf ÿa*ÿa3ÿi6 ÿn=ÿqFÿsQÿs^#ÿpm)ÿn|0ÿk‰5ÿi–9ÿg¡=ÿfª@ÿd²Bÿc¹DÿaÂFÿ`ÈGÿ^ÍHÿ\ÔJÿ[ÞKûYäL÷XêLôWïMðVóMìUøMìUøMìUøMìUøMìUøMìUøMìUøMìUøMÿf ÿb*ÿc1ÿk5 ÿp<ÿsEÿuOÿv]#ÿsl*ÿpz1ÿm‡6ÿk”;ÿiŸ?ÿh¨Bÿf°Eÿd¸GÿcÀIÿaÇJÿ_ÌLÿ]ÓMü\ÞNùZäOõYêPñXïQíWôQéWùPéWùPéWùPéWùPéWùPéWùPéWùPéWùPÿgÿc*ÿe0ÿn3 ÿt:ÿwCÿyNÿzZ$ÿwh+ÿtv3ÿq„9ÿn?ÿl›Cÿj¥Gÿh­Jÿg¶Lÿe¾NÿcÅPÿaËRý_ÒTù]ÝUô[äVðZêWëXðXçXõWãYúTãYúTãYúTãYúTãYúTãYúTãYúTãYúTÿhÿc)ÿh.ÿq2 +ÿw8ÿ{Bÿ}Lÿ~X$ÿ{f-ÿws5ÿt€<ÿqŒBÿo—Gÿl¡KÿjªOÿh²Rÿg»TÿeÄVþbÊXù`ÑZõ^Ü\ð\ä]êZë^æYñ_âZõ[Ü[ùWÜ[ùWÜ[ùWÜ[ùWÜ[ùWÜ[ùWÜ[ùWÜ[ùWÿiÿd)ÿk-ÿt0 +ÿ{7ÿAÿJÿ‚U%ÿc.ÿ{p6ÿx|>ÿu‰Eÿq”KÿožPÿl¦Tÿj®Xýh·[üfÀ]údÉ`õaÐbð^Ücê\åeå[ìfÞZðcØ[ô`Ñ]ø[Ñ]ø[Ñ]ø[Ñ]ø[Ñ]ø[Ñ]ø[Ñ]ø[Ñ]ø[ÿiÿe(ÿn+ÿx. +ÿ6ÿƒ?ÿ…Hÿ‡S%ÿ„`/ÿ€l8ÿ|yAÿx…IþtPûq™Vùn¢Zøkª_öh²bôf»eódÅhðbÐkê_Ýmã]çnÛ[êmÓ\ïhÍ^ódÈ_÷_È_÷_È_÷_È_÷_È_÷_È_÷_È_÷_È_÷_ÿjÿf(ÿq)ÿ{, ÿƒ5 ÿ‡>ÿŠGÿŒP%ÿ‰]/ÿ…i:ýuDú|€M÷x‹Uôs•\ñobïl¥gíi­këf¶oècÀræaÌuã`ßwÖ\äxÎ^érÉ_ímÄ`ðh¿bôc¿bôc¿bôc¿bôc¿bôc¿bôc¿bôc¿bôcÿkÿg'ÿt'ÿ+ÿ‡3 ÿŒ<ÿEÿ‘N%ÿZ0ü‹f;ø†qFó|Qï|‡Zìvbèq˜iål páh¨uÞd°zÛbº~ØaÇÔaÚË_á~Äaåw¿bér»cím¶dñg¶dñg¶dñg¶dñg¶dñg¶dñg¶dñg¶dñgÿlÿj&ÿw&ÿ‚*ÿŠ2 ÿ;ÿ“Cÿ–L$ý•W0÷‘b<òŒmIì†xTç_âxŠiÜr’rÖmšxÒj¢|Îg«Ëf´Ée¿ƒÇd΄Ác݃ºdâ|¶fæv²gêq®hïj®hïj®hïj®hïj®hïj®hïj®hïj®hïjÿmÿl$ÿz$ÿ…)ÿŽ1 ÿ”9ÿ˜Bÿ›J$ø›T0ò—_=ë’jKåŠsXÞ‚|dÕ|…nÏvuÊr•zÆn~Ãl¥‚¿j¯„½i¹†ºhLJ·hÚ‡±hÞ­iãz©kèt¦kìm¦lím¦lím¦lím¦lím¦lím¦lím¦límÿmÿn#ÿ}"ÿˆ(ÿ‘0 +ÿ˜8ÿœ@ûŸI#ô¡R/í\=å–fLÝŽoZÓ‡xeÌnÆ{‰vÁw‘{¼s™€¸p¡„µnª‡²m´‰¯lÁŠ­lÒŠ¨lÜ…¥má~¢nåwŸoëpŸoëpŸoëpŸoëpŸoëpŸoëpŸoëpŸoëpÿnÿq"ÿ!ÿ‹'ÿ”/ ÿ›7ÿ ?ø¤G!ð§O.è¢Z=ß›cMÔ”lZËŒueĆ}o¾€…v¸||³x•¯u…«r¥‰¨q¯‹¥p»Œ£pË qÙˆqß›räz™sér™sér™sér™sér™sér™sér™sér™sérÿoÿs ÿ‚ ÿŽ&ÿ—.ÿŸ6ý¤>ô¨F ì¬M-ã§X<Ù aL͘jYÅ‘re½‹zn¶…‚v°€‰}«}‘‚§y™†£w¢ŠŸu«œt·ŽštƘuÖ‹–v݃”vâ|“vçt’vèt’vèt’vèt’vèt’vèt’vèt’vètÿoÿuÿ„ÿ%ÿš-ÿ¢5 ú¨=ñ¬Eè°L+ß«W;Ò¤_KÈœhY¿•od·wn°Švª…†}¤Ž‚Ÿ~–‡›{ž‹—y¨Ž”x³’x‘zÕzÛ…Žzá~zævzævzævzævzævzævzævzævÿpÿvÿ†ÿ“%ÿ,ÿ¥4 ÷«<î±Cå´K)Ú¯U:ͨ^J fX¹šmd±“unªŽ|v£Šƒ}ž†‹‚™‚“‡”€›‹~¥Ž}°Š}¾‘ŠÓ‰~Ú‡ˆ~߇~åw‡~åw‡~åw‡~åw‡~åw‡~åw‡~åw‡~åwÿpÿxÿˆÿ•$ÿ +ÿ¨2 +ô¯:ëµBá¸J'Ô³S9È«\I¾¤dW´žkc¬˜rm¤“yužŽ|˜‹ˆ‚’‡‡…™‹‰ƒ¢Ž†‚®‘ƒ‚¼‘‚ƒÎ‘ƒƒÙˆ‚‚ß‚‚äy‚‚äx‚‚äx‚‚äx‚‚äx‚‚äx‚‚äx‚‚äxÿqÿzÿŠÿ—#ÿ¢)ü¬1 ñ³9èº@ݼH%϶R8ï[H¹¨bV¯¢jb§œplŸ—wu˜“~|’†‚ŒŽ‡‡Š—‹ƒˆ Ž‡«‘|‡¹‘{‡Ë‘|ˆØ‰}‡Þ‚}†äz}†äy}†äy}†äy}†äy}†äy}†äy}†äyÿqÿ|ÿÿš"ÿ¥(ù¯/î¸7 ä¿?ØÀF$ʺP7¿³YG´¬aUª¦ha¡¡nk™œut’˜|{Œ•ƒ†’‹†”‹|ŽžŽx©vŒ¶‘tÈ‘vŽØŠwŒÝ‚wŠãzwŠãzwŠãzwŠãzwŠãzwŠãzwŠãzwŠãzÿrÿÿÿ ÿ©&ö³-ê½5 àÆ<ÒÄD#ŽO5º·XF¯±_T¥«f`œ¦mj”¢ssŒžzz†›€€˜‰…z–’‰u”›r“¦o“´m”Åp•ØŠp’݃qã{qã{qã{qã{qã{qã{qã{qã{ÿsÿ‚ÿ’ÿ ÿ­$ò¸*æÃ1ÛÌ5ÌÈB!ÀÂM4´¼VD©¶^RŸ±d^–¬khŽ©qq†¥xx¢~y ‡ƒtˆoœ™‹k›¤h›²Žg›ÂŽiØŠj™Ý‚k–ã{k–ã{k–ã{k–ã{k–ã{k–ã{k–ã{k–ã{ÿtÿ…ÿ–ÿ¤û² í¿%áÌ*ÔÑ2 ÇÌAºÇL1®ÁTB£¼\P™·b\³if‡°on€­vuyª}{s¨„€m¦…h¥—ˆe¤£Šb¤°‹`¤Á‹b¦Ùˆc¢Þežãzežãzežãzežãzežãzežãzežãzežãzÿvÿ‰ÿšÿ©ö¸çÇÛÙÍÖ0 ÀÒ?´ÍJ/¨ÈR?ÃZM’¿aX‰»gb€¸mky¶tqr³{wl±ƒ|g°Œ€b¯–ƒ^®¡†\®¯‡Z¯¿‡[°Ú„]¬à^§åx^§åx^§åx^§åx^§åx^§åx^§åx^§åxÿzÿŽÿŸÿ°ïÀÙÔ ÎßÄÝ/ ¹Ù=­ÓH,¡ÏP;•ËXI‹Ç_T‚Äe^yÂlfrÀrlk¾zrf½‚va»‹z\»•}Yº¡Wº¯€U»¿€U¼ÙV¸ãzX²çuX²çtX²çtX²çtX²çtX²çtX²çtX²çtÿ€ÿ”ÿ¦ã¸ ÒÆ +Ì× Ãã¹â1 +¯à=¤ÝF'™ÙN7ÔVDƒÑ]OzÏdXrÍj_kËreeÊyj`É‚o[É‹rWÈ–uTÈ¢wRȯxQÉÀxPÊÛwQÆèsRÀëoR¿ìoR¿ìoR¿ìoR¿ìoR¿ìoR¿ìoR¿ìoÿ‡ÿ› ß®мÇÉÁÛ ·è ­ç1 ¤æ=™äD&ŽâL3„àT>{Þ\GsÝcOkÜjVeÚr\`Úz`[ÙƒdWÙŒgSÙ—jPÙ£lNÙ±mMÚÂmLÛÜlMØìjNÏðgNÏðgNÏðgNÏðgNÏðgNÏðgNÏðgNÏðgÿ é¤Ñ´Å¿¼Í´éªî"¢î3—í;ìB$ƒëI.{êS6sé\>lédDgélIbètM^è|QZè…TVèŽVSé˜YQé£ZNé°\Mê¾\LëÒ]Kêé]Jãó\Jãó\Jãó\Jãó\Jãó\Jãó\Jãó\Jãó\ù™Ô¬Å·¹Ã°Ò§öžõ$•õ2Šõ:õA xõH'põP.jôZ4eôc8`ôk<]õt?Yõ|BWõ„DTõFQö—HOö¡JMö¬KK÷¹LJ÷ÈMIøàMH÷óMH÷ôMH÷ôMH÷ôMH÷ôMH÷ôMH÷ôMH÷ôMڣDZ¸»­É£Ùšý’ý'‡þ/ }þ7tÿ?lÿG fÿN%`ÿW)\ÿ`-Yÿi0Vÿq2Sÿx4Qÿ€6Oÿ‰7Mÿ’9Kÿœ:Iÿ¦;Hÿ±Dÿç>Dÿç>Dÿç>Dÿç>Dÿç>Dÿç>Dÿç>ˬ¹¶¬Â Ð•åŽÿ„ÿ$zÿ, pÿ4hÿ<aÿD[ÿKVÿS Sÿ["Pÿc$Mÿk&Kÿs'Iÿz)Hÿ‚*FÿŠ+Dÿ”,Bÿž-Aÿ§.@ÿ±.?ÿ¼/>ÿÍ0>ÿÍ0>ÿÍ0>ÿÍ0>ÿÍ0>ÿÍ0>ÿÍ0>ÿÍ0»±¬¼ŸÉ“Ù‰ü €ÿvÿ lÿ( dÿ0 ]ÿ8Wÿ@QÿGMÿNJÿVGÿ\DÿcBÿi@ÿp?ÿx=ÿ€;ÿˆ :ÿ‘!8ÿ›"7ÿ¤"6ÿ­#5ÿ¸#5ÿ¹#5ÿ¹#5ÿ¹#5ÿ¹#5ÿ¹#5ÿ¹#5ÿ¹#­¶ŸÄ’Ò„á}ÿ rÿhÿ_ÿ#Xÿ+ Qÿ3 Lÿ: GÿACÿH@ÿN=ÿT;ÿZ9ÿ_7ÿe5ÿk3ÿr1ÿz/ÿ‚.ÿ‹,ÿ“+ÿœ*ÿ§*ÿ§*ÿ§*ÿ§*ÿ§*ÿ§*ÿ§*ÿ§¡¿’Ì„Üx÷nÿ +cÿZÿRÿKÿ$Fÿ,Aÿ3 <ÿ: +9ÿ@ 5ÿE 2ÿJ 0ÿP .ÿT,ÿY*ÿ^(ÿd&ÿj%ÿq#ÿx"ÿ€ ÿˆÿ‘ÿ‘ÿ‘ÿ‘ÿ‘ÿ‘ÿ‘ÿ‘ÿ\"ÿW-ÿX3ÿ_6 ÿc= ÿeFÿfPÿe^ÿdn"ÿa|'ÿ_Š+ÿ^–.ÿ\¡1ÿ[ª3ÿZ²5ÿYº6ÿXÃ7ÿXÍ9ÿWØ9ÿVà:ÿUæ;ÿTì<ÿSñ<üRõ=øRù=õQý=óQÿ=óQÿ=óQÿ=óQÿ=óQÿ=óQÿ=óQÿ=ÿ\"ÿW,ÿZ2ÿa5 ÿe< ÿgEÿhOÿh\ÿfm"ÿc{(ÿaˆ,ÿ_”/ÿ^Ÿ2ÿ]©5ÿ[±7ÿZ¹8ÿZÁ:ÿYË;ÿXÕ<ÿWß=ÿVæ>ÿUë>ýTð?ùSõ?öRù@óRý@ðRÿ>ðRÿ>ðRÿ>ðRÿ>ðRÿ>ðRÿ>ðRÿ>ÿ]!ÿX,ÿ\0ÿd3 ÿh: ÿkCÿlNÿlZÿjj$ÿgx)ÿd….ÿb‘2ÿaœ6ÿ_¦8ÿ^®:ÿ]¶<ÿ\¾>ÿ[È?ÿZÒAÿYÝBÿWåCýVêDùUðDõTõEñTúEîTþDìTÿBìTÿBìTÿBìTÿBìTÿBìTÿBìTÿBÿ^!ÿY,ÿ_.ÿf2 ÿl8 ÿoAÿoLÿqWÿng%ÿku+ÿh‚0ÿeŽ5ÿd™9ÿb£<ÿ`«>ÿ_³Aÿ^»Bÿ]ÄDÿ\ÎFÿZÜGþYäHúWêIõVðJðUöJíUúJéVþGçVÿEçVÿEçVÿEçVÿEçVÿEçVÿEçVÿEÿ^!ÿY+ÿb-ÿj0ÿo6 ÿr@ÿtJÿuUÿrd&ÿor-ÿl3ÿi‹8ÿf–<ÿe @ÿc¨Cÿa°Fÿ`¸Hÿ^ÁJÿ]ËKÿ\ÚMúZãNõYêOðWñPëVöQçWûNäXÿKáYÿIáYÿIáYÿIáYÿIáYÿIáYÿIáYÿIÿ_ ÿZ+ÿe+ÿm.ÿs5 ÿw>ÿxHÿyRÿw`'ÿtn.ÿp{5ÿm‡;ÿj’Aÿg›Eÿe¤Iþc¬Lýa´Nû`¼Qú^ÆSù]ÔUõ[ãVïZêXéXòYåY÷VàZûSÛ[ÿO×[ÿM×[ÿM×[ÿM×[ÿM×[ÿM×[ÿM×[ÿMÿ` ÿ])ÿh)ÿq+ÿx3 ÿ|<ÿ}Fÿ~Pÿ}](ÿyj0ÿuv8ÿq‚?ümEúj—KøgŸOöe§Sôb¯Vó`¸Yñ_Á\ð]Í^í\à`èZìaáZò`Ú[ö[Ó\úWÏ]ýSÌ^ÿQÌ^ÿQÌ^ÿQÌ^ÿQÌ^ÿQÌ^ÿQÌ^ÿQÿaÿ`'ÿk&ÿu)ÿ|1 +ÿ:ÿƒDÿ„MÿƒY(ÿf2üzr;øu~CõqˆKòm’QïišVíf¢[êcª_è`²cæ^¼fä\Èiá[ÚkÝZêkÓ\ðfÍ^õaÈ_ù\Ä`üXÁaþUÁaþUÁaþUÁaþUÁaþUÁaþUÁaþUÿbÿc%ÿo$ÿy(ÿ0 +ÿ…9ÿˆBÿ‰Kÿ‰V(ú…b3õ€n=ðzyGìuƒPépŒXåk•^áfdÞc¤iÛ`­m×_·oÔ^ÃpÑ^ÒqÍ]çqÇ_îkÂaòf¾böaºcù\·cüX·cüX·cüX·cüX·cüX·cüX·cüXÿcÿf#ÿr"ÿ}'ÿ…. ÿŠ7ÿ@ÿIúS(ôŒ_4î†j?étKãx~UÞr†^ØmeÓj˜jÏg mÌe¨pÉc±sÆb¼tÄaÉuÁaàv¼cêq·dïj´eóe°fö`®gù\®gù\®gù\®gù\®gù\®gù\®gù\ÿcÿh!ÿu ÿ%ÿ‰-ÿ5 ÿ’>ü”Gõ–O(î‘[4ç‹fAà„oNÙ}yXÑw‚`ÌsŠgÇo“lÄl›pÀi£s½g¬vºf¶x¸eÂy¶eÕy²fæv®hìoªiði¨iôc¦j÷_¦j÷_¦j÷_¦j÷_¦j÷_¦j÷_¦j÷_ÿdÿk ÿxÿ„$ÿ,ÿ“4 ÿ—<ø™Eð›M'è—Y4ábB׉lN΃uXÈ}~aÃx†h¾tŽm¹p–r¶nžu²l§x¯j±{­i½|ªiÍ}¨jãz¥lér¢líl mòfžnõbžnõbžnõbžnõbžnõbžnõbžnõbÿeÿmÿ{ÿ‡#ÿ*ÿ—2 +ýœ;ôŸCì¡K%ãœV3Ú–`AÏŽiNLjrXÀ‚zaº}‚hµyŠn±u’s¬ršw©p£z¦n¬}£m¸~¡mÇŸnà~œpçušpëo™qðh—qód—qód—qód—qód—qód—qód—qódÿeÿoÿ~ÿŠ"ÿ“)ÿ›1 ù 9ð£Aç¦I#Þ¡T1Òš^@È“gMÀŒoX¹‡wa³‚h®}‡n©zŽs¤w–x tŸ{s¨~šq´€˜q–rØ•tåx“têq’uïk‘uòf‘uòf‘uòf‘uòf‘uòf‘uòf‘uòfÿfÿqÿ€ÿŒ!ÿ–(ÿž/ö¤7 ì¨?ã«H ئR0Ìž\@×eM»‘mW³‹ta­†|h§‚ƒn¢~‹t{“x™yœ|•w¥’v°u¾‚ŽvÑ‚ŽxãzxèsŒxíl‹xñh‹xñh‹xñh‹xñh‹xñh‹xñh‹xñhÿgÿsÿ‚ÿ ÿ™&þ¢.ó¨5 é­=߯FÒ©Q/Ç¢Z?¾›cLµ•jW®r`§‹yh¡‡nœƒˆt—€x’}™|Ž|¢€‹z­‚ˆz»ƒ‡z̓‡|â|‡|çu†|ìn†|ði†|ði†|ði†|ði†|ði†|ði†|ðiÿgÿuÿ…ÿ’ÿœ%û¥,ð¬4 æ²;Û³DÍ­O.æY>¹ŸaK°™hV¨”p_¡wg›‹~n–ˆ†s…ŽxŒ‚–|ˆ€ €„«‚¸ƒÊ„á}æv€ëo€€ïj€€ïj€€ïj€€ïj€€ïj€€ïj€€ïjÿhÿxÿ‡ÿ”ÿŸ#ø©*ì±1â·9 Õ·BɰN-¾ªW=´£_J«žgU£˜n_œ”uf–|mƒs‹Š‹x†ˆ”|†ž€}„¨‚{„µ„y„Ç„z†à{…æw{…ëp{„îk{„îk{„îk{„îk{„îk{„îk{„îkÿiÿzÿŠÿ—ÿ£!ô­'èµ.Þ½5 +к@Ä´L,º®V;¯¨^I¦¢eTžl]—™sf•ylŠ’r…‰w’|{‹›wЦ‚t‰³ƒrŠÄƒtŒàt‹åxu‰êqvˆílvˆílvˆílvˆílvˆílvˆílvˆílÿkÿ}ÿÿšÿ¦ð±#ä»)ÙÂ0 ˽?À¸J*µ²T:ª¬\G¡§cR™£j\‘ŸqdŠ›wk„˜q~–†vy“{t’™~p¤m±‚kÁ‚m’Ýn‘åxoêqpŽílpŽílpŽílpŽílpŽílpŽílpŽílÿnÿ€ÿÿžû«ì·àÃ!ÒÆ-ÆÁ=º¼I(¯·R8¥²ZEœ­aQ“©hZ‹¥ob„¢ui~Ÿ|ox„ts›yn™–|j˜¢g—®€e˜¿e™Øh˜åxi–êqj”ílj”ílj”ílj”ílj”ílj”ílj”ílÿqÿƒÿ”ÿ¢õ°æ¾ÙÌÌÊ+ÀÆ;µÁG&ª¼Q6Ÿ¸XC–³`N°fX…¬m`~ªsgw§zlr¥‚rl£‹vh¢”yd¡ |` ­}_¡½~^¢Ô}a¡ævbëpc›îlc›îlc›îlc›îlc›îlc›îlc›îlÿtÿ‡ÿ˜þ§ç· ÖÅ ÐÐÅÏ(¹Ë9®ÇE#£ÃO3™¿W@»^K†¸dT~µk\w²qcq°xik®€mf­‰ra«“u]«žx[ª¬yY«¼yX¬ÒyZ«ès\§ìn]¤ïj]¤ïj]¤ïj]¤ïj]¤ïj]¤ïj]¤ïjÿyÿŒÿž ܮһ ÌÈ ÇÖ½Õ%²Ò6§ÎB œÊL/’ÇT<ˆÃ\GÁbPw¾iWp¼p^j»wce¹h`¸ˆl\·’oX¶žqU¶«sS·»sR·ÒsT·ëoV²ïjW¯ñgW¯ñgW¯ñgW¯ñgW¯ñgW¯ñgW¯ñgÿÿ“ á¥Ò³ɾÂ˼ݴÝ#ªÚ3 ŸÖ@”ÓJ*ŠÐR7€ÍZAxËaJpÉhQjÈoWdÆv\_Å`ZňdVÄ’gSÄžiPĬjOļkNÅÓjOÅíhPÀódQ½õaQ½õaQ½õaQ½õaQ½õaQ½õaQ½õaÿ† +ðšÔªȶ¾Á·Ï °ã¨ã%Ÿâ5 •à>‹ÞH%ÜP0xÚX:pØ_BiÖgIcÕnO^ÔvSYÓWUÓ‰ZRÓ“]OÓ _MÓ­`KÔ¾`JÕØ`KÔí^LÑ÷\LÌùZLÌùZLÌùZLÌùZLÌùZLÌùZLÌùZÿڢʯ½¹´Æ«Ô ¤êœé(“é4‰è=çD"wæN*oæW2iå_8cåg=_äoBZäwEVä€ISäŠKPä”NMäŸPKå¬QIå»RHæÏRHæèRHäøQHáüOHáüOHáüOHáüOHáüOHáüOHáüOá™Í©¾³³¾¨ËŸÚ ˜òò*†ò3|ñ;tñClñK#fñT)añ]-]ñf1Yñn5Vñv7Sñ:PòˆKò@Ió©AGó¶BFôÇCEôßCDôðCDòúBDòúBDòúBDòúBDòúBDòúBDòúBÑ¢À®²¸§ÄœÒ’í Œû‚û(yû1 pü9iüAbüI\üP WüY#Týb&Qýj(Oýs*Lþ{,Jþƒ.Hþ/Fÿ˜1Dÿ¢2Cÿ®3Aÿ»4@ÿË4?ÿã4?ÿï5?ÿï5?ÿï5?ÿï5?ÿï5?ÿï5?ÿï5γ³§¿šËÚ†ÿ~ÿuÿ%lÿ- +dÿ6]ÿ>XÿERÿMOÿULÿ\IÿdGÿkDÿs Bÿ|"Aÿ…#?ÿ$=ÿš%;ÿ¤&:ÿ¯&9ÿº'8ÿÊ'8ÿÜ(8ÿÜ(8ÿÜ(8ÿÜ(8ÿÜ(8ÿÜ(8ÿÜ(µ¯§ºšÆÔæzÿpÿgÿ!_ÿ)Xÿ1 +Rÿ9 MÿAIÿHEÿOBÿU@ÿ\=ÿb;ÿi9ÿp7ÿy5ÿ‚3ÿŒ2ÿ—0ÿ¡/ÿª/ÿµ.ÿ¿.ÿ¿.ÿ¿.ÿ¿.ÿ¿.ÿ¿.ÿ¿©µšÂŒÏÞvÿlÿbÿZÿSÿ$Mÿ+Gÿ3 Cÿ: +?ÿA ;ÿG 8ÿM 5ÿS3ÿX1ÿ^/ÿd-ÿk+ÿs)ÿ|'ÿ†%ÿ$ÿ™#ÿ£"ÿ«"ÿ«"ÿ«"ÿ«"ÿ«"ÿ«"ÿ«œ¾Ë~Úpægÿ]ÿ +TÿMÿGÿAÿ$<ÿ+7ÿ24ÿ80ÿ=-ÿC*ÿH (ÿM &ÿR +$ÿW +"ÿ] ÿc ÿk ÿs ÿ| ÿ„ ÿŽ ÿ• ÿ• ÿ• ÿ• ÿ• ÿ• ÿ• ÿR%ÿM/ÿQ2ÿW5ÿZ< +ÿ[EÿZOÿY]ÿXmÿV{ÿU‰"ÿS•%ÿR 'ÿQ¨)ÿP±*ÿP¸+ÿOÁ,ÿOÊ-ÿNÖ.ÿNä.ÿNí/ÿNó/ÿMø0ÿMü0ÿLÿ0üLÿ0ùLÿ/øLÿ/øLÿ/øLÿ/øLÿ/øLÿ/øLÿ/ÿS$ÿM/ÿT0ÿY4ÿ]: +ÿ_Cÿ^Nÿ]Zÿ[jÿZy!ÿX†$ÿV’'ÿU)ÿT¦+ÿS®-ÿR¶.ÿR¾/ÿQÇ0ÿQÒ1ÿPá2ÿPë2ÿOò3ÿO÷3ÿNü4ûNÿ4øMÿ4õNÿ2ôNÿ2ôNÿ2ôNÿ2ôNÿ2ôNÿ2ôNÿ2ÿS$ÿN.ÿV/ÿ\2ÿ`8 +ÿbAÿbLÿ`Xÿ_hÿ]v"ÿ[ƒ&ÿY)ÿXš,ÿV£.ÿU¬0ÿU³1ÿT»3ÿSÄ4ÿSÎ5ÿRÞ6ÿRé7ÿQñ7ÿQö8ûPû8÷Oÿ8ôOÿ7ñPÿ5ðPÿ4ðPÿ4ðPÿ4ðPÿ4ðPÿ4ðPÿ4ÿT#ÿP-ÿY-ÿ_0ÿc6 +ÿf@ÿfJÿeUÿceÿas#ÿ^€(ÿ\Œ,ÿ[—/ÿY¡1ÿX©4ÿW°5ÿV¸7ÿUÁ8ÿUË9ÿTÚ:ÿTç;ÿSð<ûRö=öQû=òQÿ=ïRÿ;ìRÿ8ëRÿ8ëRÿ8ëRÿ8ëRÿ8ëRÿ8ëRÿ8ÿU#ÿR+ÿ\+ÿc.ÿg4 +ÿj>ÿkHÿjSÿhaÿfp%ÿc}*ÿ`ˆ/ÿ^“3ÿ\6ÿ[¥8ÿZ­:ÿXµ<ÿW½>ÿWÇ?ÿVÓAüUäBùUîCõTöDðSüDìTÿAéUÿ?æUÿ<åUÿ;åUÿ;åUÿ;åUÿ;åUÿ;åUÿ;ÿV"ÿU)ÿ_(ÿg+ÿl2 ÿo< ÿpFÿpPÿn] ÿkk'ÿhy-ÿe„2ÿb7ÿ`™;þ^¡>ý\©Aû[±CúY¹EùXÂG÷WÎHõVàJñVìKîUöLéVüJåWÿFâXÿCÞYÿ@ÝYÿ?ÝYÿ?ÝYÿ?ÝYÿ?ÝYÿ?ÝYÿ?ÿW"ÿY'ÿc&ÿk(ÿq0ÿt9 ÿuCÿuMÿuY!ÿqg)ÿmt0ýj€6úfŠ<øc”@öaœDô^¤Hò\¬Kñ[´MïY½PíXÉRëWÚSçVéUäWõTáYýOÛZÿKÕ[ÿHÐ\ÿDÏ\ÿDÏ\ÿDÏ\ÿDÏ\ÿDÏ\ÿDÏ\ÿDÿX"ÿ\$ÿf#ÿo&ÿv.ÿz7 ÿ{Aÿ{Kÿ{U!þwc*ùso2ön{:òj…AïfGìc—Lê`ŸPè]§Tå[¯WãY¸ZáWÃ]ßWÒ^ÚVæ^ÖYóZÒ\üUÍ^ÿPÉ^ÿLÅ_ÿIÄ_ÿHÄ_ÿHÄ_ÿHÄ_ÿHÄ_ÿHÄ_ÿHÿY!ÿ_"ÿj!ÿt$ÿ{,ÿ5 ÿ>ÿ‚Hý‚R!÷~_+òyk5ísu>én€Fåi‰Máe‘TÞa™YÚ_¢\Ö]ª_Ó\³aÐ[¾bÎ[ÌcËZâcÈ\ñ`Æ_úZÁ`þU½aÿQºbÿM¹bÿK¹bÿK¹bÿK¹bÿK¹bÿK¹bÿKÿY!ÿb ÿnÿx#ÿ+ÿ„3 +ÿ‡<þˆE÷ˆN!ð„[+ê~f6äxpAßrzKÙmƒRÓiŒXÏf•\Ìd_Éb¥bÆ`®dÃ_¸fÁ^Äg¿^Øh¼_ëfºc÷_¶dûY³eþU°eÿP¯eÿO¯eÿO¯eÿO¯eÿO¯eÿO¯eÿOÿZ ÿeÿqÿ|"ÿ„)ÿ‰1 ÿŒ:ùŽCñŽL êŠX+ã„b7Û~lCÓxvLÍsSÈo‡YÄk^Ài˜b½f eºe¨h·c²jµb¾k³bÎl°båk¯fôd¬gø]©hüX§iÿS¦iÿR¦iÿR¦iÿR¦iÿR¦iÿR¦iÿRÿ[ ÿgÿtÿ ÿˆ'ÿŽ/ý’7 ô”@ì•IäU*ÛŠ_7Ñ„iCÊ}rLÄx{T¿tƒZºq‹_¶n“d³k›g¯i¤j­g­lªf¸n¨fÇo¥fßo¥jñh¢köa lù[žlýVžlþUžlþUžlþUžlþUžlþUžlþUÿ\ÿjÿwÿƒÿŒ%ÿ’-ù—5 ï™>ç›FÞ–R)Ò\7ʉfBÃoL¼~wT·y[²u‡`®reªp—h¦mŸl£l©n k´pžjÂqœj×qœnîkšoód™oø^—püX—pýW—pýW—pýW—pýW—pýW—pýWÿ^ÿlÿzÿ†ÿ#ÿ–+õ›3 ëŸ;â E×›P(Ì”Z6ÄcB¼ˆlLµ‚tT°~|[«z„`¦w‹e¢t“ižrœm›p¥p˜o°r•n½s“oÐs”rën“sòf’sö`súZsûYsûYsûYsûYsûYsûYÿ_ÿnÿ}ÿ‰ÿ’"ýš)ñ 0ç¤9 Þ¥CÑŸN'ǘX5¾’aA¶ŒiK¯‡qT©‚y[¤€`Ÿ|ˆe›yj—v™m“u¢qs¬ssºt‹sËuŒvçpŒwðh‹wõbŠwù\ŠwúZŠwúZŠwúZŠwúZŠwúZŠwúZÿaÿqÿÿ‹ÿ• ùž&í¤.ã©6 +Ø©@Ì£L&œV4¹–_@±gJª‹oS¤‡vZžƒ~`™€…e”}j{–nŒyŸq‰xªt†w¶u„wÇv…zär†{ïj…{ôd…{ø]…{ù\…{ù\…{ù\…{ù\…{ù\…{ù\ÿcÿsÿÿŽÿ™ö¡#ê©*à¯2Ò¬>ǦK$½ U3´š^?¬•eJ¥mRžŒtY˜ˆ{`“…ƒeŽ‚‹jŠ€“n†~q‚}§t|´v}|Åv}~àsîkóe~÷^~ø]~ø]~ø]~ø]~ø]~ø]ÿeÿuÿ„ÿ‘ÿœò¥ æ®&Û´.ί=êI#¹¤S1¯ž\>§™dI ”kQ™rY“y_ŽŠ€d‰‡ˆi„…‘n€ƒšq|‚¥ty²vwÂvv‚Ýty„ílyƒòfz‚÷_z‚ø^z‚ø^z‚ø^z‚ø^z‚ø^z‚ø^ÿgÿwÿ‡ÿ”þŸîªâ³!Õ·*ɳ;¾®H"´¨R0«£Z=¢žbG›™iP”•pXŽ’w^ˆ~dƒ†i~‹my‰˜qv‡£sr†¯up†¿vo‡×us‰ímsˆòft‡ö`t‡÷_t‡÷_t‡÷_t‡÷_t‡÷_t‡÷_ÿiÿzÿŠÿ—ù£ê®ݹϺ(Ä·9¹²F ¯¬P/¦§X;£`F•ŸgOŽ›nVˆ˜u]‚•|c}“„hx‘Œls–poŽ rl­tj½uiÒulímmŽñgnŒö`nŒ÷_nŒ÷_nŒ÷_nŒ÷_nŒ÷_nŒ÷_ÿlÿ}ÿÿ›ô¨åµ Õ¿ʾ&¿»7´¶Dª±N-¡­W9˜©^D¥eM‰¢lU‚Ÿs[|œzawšfr˜Šjm–”ni•žqf”«sc”ºsb•Ïsf—ìlg•ñfh“ö`h’÷_h’÷_h’÷_h’÷_h’÷_h’÷_ÿoÿÿ‘ò  Ú­ Ó¸ +ÎÃÄÂ#¹¿5¯»B¤·L*›³U7’¯\AЬcJƒ©jR|¦qYv¤x^p¢ck ˆggž‘kcn_©p]¹p\Íp_Ÿëkaòebšö`b™÷^b™÷^b™÷^b™÷^b™÷^b™÷^ÿsÿ… ú– +Û¥ѱË»ÆÇ ½Ç ²Å2 ¨Á@ž¾J'”ºS4‹¶Z>ƒ´aG|±hOu¯oUo­vZj«}_e©†ca¨g]§›jY§¨kW§¸lV§ÌlX¨éhZ§ôc[£ø^\£ù]\£ù]\£ù]\£ù]\£ù]\£ù]ÿx ÿ‹ ߜҩɴ¾¼ÌµÍ«Ë/ ¡È=—ÅH#ÂQ/„¿X:|¼_CuºfJo¸mPi·tUdµ|Z_´…^[³aW³šdT²§eR²·fQ³ÌfR³écT²÷_U®ú[V­ûZV­ûZV­ûZV­ûZV­ûZV­ûZÿ~ ò‘Ö¡Ê­À·¸Â²Ï «Ô£Ó+™Ð:ÎE…ËN*}ÉV4uÇ]=nÅeDhÄlIcÂsN^Á{SYÁ„VUÀYR¿›\O¿¨]M¿¸^LÀÍ^LÀê\N¿ùYO¼þUPºþUPºþUPºþUPºþUPºþUPºþUÿ…ݘͦÁ±·º®Æ§Ó + Ý™Ý(Û7†ÙB}ÖK$uÔT-mÒ\5gÑcü«*=ü¹+;ýË+;ýâ+:üô+:ü÷+:ü÷+:ü÷+:ü÷+:ü÷+:ü÷+½¨®°¡¼•ȉÔ~èwÿoÿgÿ&`ÿ/Yÿ7 Tÿ?OÿGKÿNGÿVDÿ]Bÿd@ÿl=ÿu;ÿ~9ÿ‰7ÿ”6ÿ 5ÿ¬3ÿ¹3ÿÈ2ÿâ 2ÿç 2ÿç 2ÿç 2ÿç 2ÿç 2ÿç °­¢·•ćÐ{Ýrý jÿaÿZÿ"Tÿ*Nÿ2Iÿ: EÿA AÿH >ÿN;ÿU8ÿ[6ÿb4ÿi2ÿr/ÿ{-ÿ†+ÿ’*ÿž)ÿ©(ÿ³'ÿÂ'ÿÇ'ÿÇ'ÿÇ'ÿÇ'ÿÇ'ÿǤ´–À‡ÌzÚmëdÿ\ÿTÿMÿHÿ$Bÿ,>ÿ3:ÿ96ÿ@3ÿE0ÿK .ÿQ ++ÿW +)ÿ] 'ÿd $ÿl "ÿv ÿ€ ÿŒÿ—ÿ¡ÿ¬ÿ®ÿ®ÿ®ÿ®ÿ®ÿ®—¼ˆÉyÖkã_öVÿNÿ +GÿAÿ<ÿ7ÿ$2ÿ*/ÿ0+ÿ6'ÿ;%ÿ@"ÿE ÿJÿPÿVÿ\ÿdÿmÿwÿ ÿ‹ ÿ• ÿ˜ ÿ˜ ÿ˜ ÿ˜ ÿ˜ ÿ˜ ÿI'ÿD1ÿK1ÿP4ÿR:ÿRC ÿQNÿO\ÿMkÿLyÿK‡ÿI“ÿHÿH¦ ÿG®!ÿGµ"ÿF½#ÿFÆ#ÿFÐ$ÿFà$ÿFê%ÿFó%ÿFú%ÿFÿ%ÿFÿ%ÿFÿ%ÿFÿ$ýFÿ#ýFÿ#ýFÿ#ýFÿ#ýFÿ#ýFÿ#ÿI'ÿF/ÿM/ÿR2ÿU9ÿUB ÿTMÿRYÿPhÿOwÿN„ÿL‘ÿK›!ÿJ¤"ÿJ¬#ÿI³$ÿI»%ÿHÄ&ÿHÍ&ÿHÝ'ÿHè'ÿHñ(ÿHù(ÿHÿ(ÿHÿ(þHÿ(ûHÿ'ùHÿ&ùHÿ&ùHÿ&ùHÿ&ùHÿ&ùHÿ&ÿJ'ÿH-ÿP-ÿU0ÿX6ÿY@ ÿXKÿUVÿTfÿRtÿQÿOŽ!ÿN˜#ÿM¡%ÿM©&ÿL±'ÿK¸(ÿKÁ)ÿKÊ*ÿJÙ*ÿJæ+ÿJð+ÿJø,ÿJÿ,ýJÿ,úJÿ+÷Jÿ)õJÿ(õJÿ(õJÿ(õJÿ(õJÿ(õJÿ(ÿK&ÿK+ÿR+ÿX.ÿ[4ÿ]> ÿ]IÿZTÿYbÿWqÿU~ ÿSŠ#ÿR•&ÿQž(ÿP¦*ÿO®+ÿNµ,ÿN½-ÿMÇ.ÿMÓ/ÿLã0ÿLí0üLö1úLþ1÷Lÿ1õMÿ/òMÿ-ðMÿ+ðMÿ+ðMÿ+ðMÿ+ðMÿ+ðMÿ+ÿK&ÿN)ÿV)ÿ\+ÿ`1ÿb; ÿbFÿ`Qÿ^_ÿ\mÿZz#ÿX†&ÿV‘)ÿUš,ÿS¢.ÿRª0ÿQ±1ÿQ¹3ÿPÃ4þOÎ5ûOß6øNë7õNõ8òNý8ðOÿ5îPÿ3ëQÿ1éQÿ/éQÿ/éQÿ/éQÿ/éQÿ/éQÿ/ÿL%ÿQ'ÿZ&ÿ`(ÿe/ÿh9 +ÿhCÿgNÿeZÿbh ÿ_v%ÿ]*ÿZŒ.þX–1üWž4ûU¦6ùT­8øSµ:÷R¾;õQÉ=óQÚ>ðPè?ìPó@éQý>èSÿ;æTÿ8ãUÿ5áUÿ3áUÿ3áUÿ3áUÿ3áUÿ3áUÿ3ÿM$ÿT$ÿ]#ÿe%ÿj-ÿm6 +ÿn@ÿmKÿkVÿhd!þeq(ûb}-ø_‡2ö\‘6óZ™:òX¡=ðW©@îU±BìT¹DëSÄFéRÒHåQåIâRòHßTüDÝVÿ@ÛXÿ=ÖYÿ:ÒYÿ8ÒYÿ8ÒYÿ8ÒYÿ8ÒYÿ8ÒYÿ8ÿN$ÿX!ÿa ÿj#ÿp+ÿs4 ÿt>ÿtHÿrRûo_#ökl*ògw1ïc‚7ì`‹=é]”AæZœEäX¤IâV¬LàT´NÝT¿PÛTÍP×SâQÒTðNÐWûJÎZÿEÍ\ÿBÉ\ÿ>Å\ÿ<Å\ÿ<Å\ÿ<Å\ÿ<Å\ÿ<Å\ÿ<ÿO#ÿ[ÿeÿn!ÿu)ÿy1ÿz; ÿzDúyNôv[#îqg,élr5åh|<ác…CÝ`ŽHÙ]—LÕ\ŸOÒZ§QÏY°SÍXºTËXÆUÉWÚVÅWìUÃ[ùOÂ^ÿJÀ_ÿF½`ÿBº`ÿ@º`ÿ@º`ÿ@º`ÿ@º`ÿ@º`ÿ@ÿR!ÿ^ÿiÿsÿz&ÿ~/ÿ8 ûAó€Kì|W#æwc-àqm8Úmw@Ói€FÏe‰KËc‘OÈ`™RÅ_¡UÂ]ªWÀ\³Y¾\¿Z¼[Î[¸[å[·^õU·bÿOµcÿJ²dÿF°dÿC°dÿC°dÿC°dÿC°dÿC°dÿCÿUÿaÿmÿwÿ~$ÿ„,þ‡5 õˆ>í‡HåƒT"Þ~_.Ôxi8Îss@Én|GÄk„LÀhŒQ½e”TºcœW·b¥Z´`®\²`¹^°_Ç^­_ß_¬bñY¬eþSªgÿN¨gÿJ¦gÿF¦gÿF¦gÿF¦gÿF¦gÿF¦gÿFÿWÿdÿpÿ{ÿƒ"ÿ‰*ùŒ2ïŽ; çŽDÞŠQ!Ô„\-Ì~f8ÅxoAÀtwH»p€M·mˆR³jV°h˜Y¬f \ªe©_§d´`¥cÂa£cÕb¢eí]¢iûW¡jÿQŸkÿLžkÿIžkÿIžkÿIžkÿIžkÿIžkÿIÿYÿgÿsÿ~ÿ‡ ÿ'ô’/ê”8 á”BÖN ̉Y-Ńc7¾}k@¸ytH³u|N®r„SªoŒW§m”[£kœ^ i¥`žh°c›g½d™gÎd˜ièašmùZ™nÿT—nÿO–nÿK–nÿK–nÿK–nÿK–nÿK–nÿKÿ[ÿiÿvÿÿŠü‘$ð—,åš4Üš?Ï”LÆŽW,¾ˆ`7·‚i@±~qH¬zyN§w€S£tˆXŸq\›o˜_˜m¡b•l¬d“l¹f‘kÉfmäd‘qö\‘rþVrÿQrÿMrÿMrÿMrÿMrÿMrÿMÿ]ÿkÿyÿ„ÿŽø•!ë›(á 0Õž=ʘJÁ’T+¹Œ^6±‡f?«‚nG¦~vN¡{}Sœx…X˜v\”t•_‘ržcŽq©e‹pµg‰pÅgˆpàfŠtô^‹vüXŠvÿR‰vÿN‰vÿN‰vÿN‰vÿN‰vÿN‰vÿNÿ_ÿnÿ{ÿ‡ÿ‘ô™ç #Ý¥+Ï¡;ÅœH¼–S*´\5¬‹d?¦‡lG ƒsM›€zS–}‚W’zŠ\Žx’`Švœc‡u¦f„t²h‚tÂh€tÛhƒxò`„zûY„yÿT„yÿO„yÿO„yÿO„yÿO„yÿO„yÿOÿaÿpÿ~ÿŠÿ”ðã¥ר(Ë¥9ÁŸF·šQ)¯•Z4§b>¡‹jF›‡qL•„xRWŒ‡\ˆ}`„{™c€z£f}y°h{y¿izyÖi||ða~~úZ~}þU~}ÿQ~}ÿQ~}ÿQ~}ÿQ~}ÿQ~}ÿQÿcÿrÿÿü˜ì¡ߪѬ&Ǩ7 ¼£D³žO'ª™X3£”`=œhE–ŒoL‰vR‹†}W†„…[‚‚Ž_~€—cz¡fw~­hu~½is~Òivîbx‚ú[x‚þVyÿQyÿQyÿQyÿQyÿQyÿQÿeÿuÿƒÿõ›è¦Ù¯̯$«5 ¸§C®¢N&¦V1ž™^;—•fD‘mK‹ŽtQ†Œ{V‰ƒ[|‡‹_x†•bt„Ÿeqƒ«hnƒºimƒÎio†ëcr‡ù\s†ýVs…ÿRs…ÿRs…ÿRs…ÿRs…ÿRs…ÿRÿhÿx ÿ† ö“ Þ  Ö© +Ò² Dz"½¯3 +³«Aª§L$¡¢U0™ž]:’šdB‹—kI…”rP€’yU{Zv‰^rŒ’bnŠek‰©gh‰¸hg‰Ëhi‹éclù\mŒýWmŠÿRmŠÿRmŠÿRmŠÿRmŠÿRmŠÿRÿkÿ{ ÿŠ +â˜Ö£Ь ˵ Á¶¸´1 ®°?¤¬J"œ¨S.”¤[8Œ b@†žiH€›pNz™wSu–~Xp”‡\l“`h’›cd‘§eb¶f`‘Éfb’çbe”ø\g’ýWg‘ÿRg‘ÿRg‘ÿRg‘ÿRg‘ÿRg‘ÿRÿnÿ ñŽÙ›ϦɯĹ»º²¸/¨µ=Ÿ±H –®Q+ŽªY5†§`>€¥gEz¢nKt uQož|Ujœ…Yf›Ž]bš™`^™¦b\™´cZ™Çc[šå`_›÷[`šþVa˜ÿRa˜ÿRa˜ÿRa˜ÿRa˜ÿRa˜ÿRÿr ÿƒß“ÑŸɪÁ²»½´¿«¾,¢»:™¸EµO(‡²W2€¯^:y­eBs«lHn©sMi§zQd¦ƒV_¤Y\£˜\X£¤^V£³_U£Æ_U¤ä]X¤öXZ£ÿT[¡ÿP[¡ÿP[¡ÿP[¡ÿP[¡ÿP[¡ÿPÿwð‰Ö˜Ë¤Á­¹¶²À«Å£Å(›Â7‘ÀC‰½L$€ºU.y¸\6r¶c=m´jCg³qHb±yL^°PZ¯‹TV¯—VS®£XP®²YO®ÆYO®äXQ®öTS®ÿPT¬ÿMT¬ÿMT¬ÿMT¬ÿMT¬ÿMT¬ÿMÿ}ßÎè¹°°º¨Ä¡Ì›Ì#’Ê3 +‰È?ÆIyÄR(rÂZ0kÁa7f¿hëÀ.=ìÛ.=êï.=èü.=çÿ-=çÿ-=çÿ-=çÿ-=çÿ-=çÿ-ÅŸµ©¨±œ¼Ç„Òzßtômô fô*_ô4Zõ= TõEOõLLõUIö]FöeDönAöw?÷=÷;÷™ 9ø¦!8øµ"7ùÈ"6ùã"6øó"6÷ü"6÷ü"6÷ü"6÷ü"6÷ü"6÷ü"·¦©®œ¹ÄƒÏwÛoö +gÿ`ÿZÿ'Tÿ0Oÿ8Jÿ@ +FÿH CÿO@ÿV=ÿ^;ÿe8ÿn6ÿw4ÿ‚2ÿ0ÿ›/ÿ©.ÿ·-ÿÈ,ÿá,ÿï,ÿï,ÿï,ÿï,ÿï,ÿï««žµÁ‚ÌuÙiäaÿ [ÿTÿNÿ"Iÿ+Dÿ2@ÿ:<ÿA9ÿG6ÿN 3ÿT +1ÿ[ .ÿb ,ÿk )ÿu 'ÿ€%ÿ$ÿš#ÿ¦"ÿ³!ÿÁ!ÿÐ!ÿÐ!ÿÐ!ÿÐ!ÿÐ!ÿП²‘¾ƒÊuÖgâ[ñTÿNÿHÿBÿ=ÿ$9ÿ+5ÿ21ÿ8.ÿ>+ÿC(ÿI%ÿO#ÿV!ÿ]ÿeÿoÿz ÿ‡ ÿ” ÿŸ +ÿª +ÿ³ +ÿ³ +ÿ³ +ÿ³ +ÿ³ +ÿ³ +“»„ÇuÓgáXèNûHÿAÿ +;ÿ6ÿ1ÿ-ÿ")ÿ(%ÿ-"ÿ2ÿ8ÿ=ÿBÿHÿNÿUÿ]ÿg ÿr ÿ} +ÿ‰ +ÿ“ ÿœ ÿœ ÿœ ÿœ ÿœ ÿœÿ?*ÿ?0ÿD0ÿH3ÿI9ÿHBÿFM ÿE[ÿCiÿAwÿ@…ÿ?‘ÿ>›ÿ>¤ÿ=«ÿ=³ÿ=ºÿ=Ãÿ<Ìÿ<Ûÿ<çÿ<ðÿ<øÿ=ÿÿ=ÿÿ=ÿÿ=ÿÿ=ÿÿ=ÿÿ=ÿÿ=ÿÿ=ÿÿ=ÿÿ@*ÿA.ÿG.ÿJ1ÿL7ÿK@ÿJK ÿHYÿFgÿDuÿC‚ÿBÿA™ÿA¢ÿ@©ÿ@±ÿ?¸ÿ?Àÿ?Éÿ?Öÿ?åÿ?ïÿ?÷ÿ?þÿ?ÿÿ?ÿÿ@ÿþ@ÿþ@ÿþ@ÿþ@ÿþ@ÿþ@ÿÿ@*ÿC,ÿI,ÿM/ÿO5ÿP>ÿNI ÿLVÿJdÿHrÿGÿF‹ÿE–ÿDŸÿD§ÿC®ÿCµÿB½ÿBÆ ÿBÑ ÿBâ!ÿBí!ÿBõ!ÿBý!ýBÿ!ûCÿ úCÿùCÿùCÿùCÿùCÿùCÿùCÿÿA)ÿF*ÿL)ÿQ,ÿS2ÿT<ÿTG ÿQRÿO`ÿMoÿL|ÿJˆÿI’ÿH›ÿG£!ÿG«"ÿF²#ÿFº#ÿFÃ$ÿEÍ%ÿEÞ%ÿEê&üEô&ùEü&öEÿ&õFÿ$ôFÿ#óGÿ!óGÿ!óGÿ!óGÿ!óGÿ!óGÿ!ÿB(ÿI'ÿP&ÿU(ÿX/ÿZ9ÿZD ÿWOÿU\ÿSjÿQwÿOƒÿNŽ!ÿM—#ÿLŸ%ÿK§&ÿJ®'ÿJ¶)þI¾*ýIÉ*úHÙ+÷Hç,ôHò,ñHû,ïIÿ*íJÿ(ìJÿ'ëKÿ%ëLÿ%ëLÿ%ëLÿ%ëLÿ%ëLÿ%ÿC(ÿM$ÿT#ÿZ%ÿ^,ÿ`6ÿ`A ÿ^Lÿ[WÿYfÿWrÿU~"þS‰%üQ“(úP›*ùO£,÷Nª.öM²/ôLº0óLÄ2òKÑ3îKä4êJð4çKú3åMÿ0äNÿ-âOÿ+áPÿ)áPÿ)áPÿ)áPÿ)áPÿ)áPÿ)ÿF%ÿP!ÿX ÿ_!ÿd*ÿf3ÿf= ÿeHÿbSÿ`aü]m øZy%õX„)óV-ðT–0îRž3íQ¥5ëP­7éNµ9çN¿;æMÌ<ãLà=ßMî<ÜOù9ÙQÿ5ÖRÿ2ÔSÿ0ÓTÿ-ÓUÿ-ÓUÿ-ÓUÿ-ÓUÿ-ÓUÿ-ÿJ#ÿTÿ\ÿdÿi'ÿl0ÿm: +ÿlDýjOøg\óch"ï`t(ë]~.èZˆ3åW‘7ãU™:àS >ÞR¨@ÜQ±AÙP»BÖPÈCÓPÜDÏPìCÌRø?ËUÿ;ÉWÿ7ÈXÿ4ÇYÿ2ÆYÿ1ÆYÿ1ÆYÿ1ÆYÿ1ÆYÿ1ÿM ÿWÿ`ÿiÿo%ÿr-ÿt7ýsAöqKðnXêjd$åen+àay3Ü^‚8Ø\‹<ÓZ”?ÐXœBÎW£DËU¬FÉUµGÇTÀIÅTÐIÂSæIÀVõE¾Yÿ@½[ÿ<¼\ÿ9»]ÿ5º]ÿ5º]ÿ5º]ÿ5º]ÿ5º]ÿ5ÿPÿ[ÿdÿmÿt"ÿx*ÿz3öz= ïxGçuTáp_%Úkj-Ógt4Îd}:Êa†?Ç_ŽBÄ]–EÁ[žH¿Z¦J¼Y¯LºXºM¸XÈN¶XßN´YðK³\ýE²_ÿ@²`ÿ<°aÿ9°aÿ8°aÿ8°aÿ8°aÿ8°aÿ8ÿRÿ^ÿhÿrÿyÿ~'ù€0ð9 +ç€Cà|PÖw[$Ïrf.Émo5Äjx;Àg@¼d‰D¹b‘H¶`™J³_¡M±]ªO®\´Q¬\ÁRª\ÔR¨]ëP¨`úI¨cÿD¨dÿ@¦eÿ<¦eÿ;¦eÿ;¦eÿ;¦eÿ;¦eÿ;ÿUÿaÿlÿvÿ}ÿƒ#ô†,êˆ5á‡@Ö‚LÍ}X$Æwb-Àsk5»ot<·l|A³i„F¯gŒI¬e”L©cœO¦b¥Q¤a¯S¢`¼U `ÍUž`æTžd÷MŸgÿGŸiÿCžiÿ?iÿ=iÿ=iÿ=iÿ=iÿ=ÿWÿcÿoÿyÿû‡ ïŒ'äŽ0Ú= χJÇ‚U#¿}_-¹xh5³tp<¯qxB«n€F§lˆJ¤iN h˜Qf¡S›e«U˜d¸W–dÈX”dáX•hôP–kÿJ—lÿE–mÿA–mÿ@–mÿ@–mÿ@–mÿ@–mÿ@ÿYÿfÿrÿ}ÿ…öŒê‘"ß”+Ó‘: ÉŒGÀ‡S"¹‚\,²}e5­ym<¨uuB£s}G p„KœnŒN™l•R•kžT’i¨Wi´YŽhÃYŒhÜZlòSnÿLpÿGqÿCqÿAqÿAqÿAqÿAqÿAÿ[ÿhÿuÿ€ÿ‰òå–Ù™&Í•8 +ÄE»‹Q!³†Z,­‚c4§~k;¡zrAwzF™uK•s‰O’q‘RŽo›U‹n¥Xˆm°Z†l¿[„mÕ[†oïUˆrýN‰tÿI‰tÿDˆtÿCˆtÿCˆtÿCˆtÿCˆtÿCÿ]ÿkÿxÿƒýŒí”àšÓœ$È™6 ¿”C¶O ®ŠX+§†a3¡‚h;œpA—|wF“y~Kw†O‹uRˆs˜V„r¢Xq®Zq¼\}qÐ\sìVvûOƒxÿJƒxÿE‚xÿD‚xÿD‚xÿD‚xÿD‚xÿDÿ_ÿm ÿz ÿ… ò ç˜ ÛŸΟ"Ä4º˜B²“MªV*£Š_2œ†f:—ƒm@’€uE~|J‰|„N…zŒR‚x•V~w Y{v«[yuº\wvÍ\xwêX{zúQ}|ÿK}|ÿF}|ÿE}|ÿE}|ÿE}|ÿE}|ÿEÿaÿo ÿ} õˆ +ߓ؛ +Ó¢ É£¿ 2¶œ@­—K¥“T(ž]1˜‹d9’ˆk?…rEˆƒzJ„€N€ŠR|}“Ux|Xu{©[rz¸\qzÊ\r|èXu~ùQw€ÿLw€ÿGw€ÿFw€ÿFw€ÿFw€ÿFw€ÿFÿdÿr ÿåŒØ–Ñž Î¥ +Ħº¤/± >¨œI ˜S'™”[0“b8i>ˆŠpDƒˆxI~†Mz„ˆQv‚‘Ur›Xo€§Zlµ\k€È\kåYnƒ÷Rq„ÿMr„ÿHr„ÿGr„ÿGr„ÿGr„ÿGr„ÿGÿf ÿuöƒÜҘ̡Ȩ¿©µ¨-¬¤<¤ GœQ%”™Y/Ž–`6ˆ“g=‚nC}ŽvHyŒ}LtŠ…PpˆTl‡™Wi†¥Yf†³[e†Å[e†ãYhˆöRkŠÿMlŠÿHl‰ÿGl‰ÿGl‰ÿGl‰ÿGl‰ÿGÿi ÿxå‡Ö’ÍœƤÁ«¹­°¬+§©:Ÿ¦E–¢O#ŸW-ˆœ_5‚™f;}—lAx•sFs“{Kn‘ƒOjRfŽ—Uc£X`±Y_ÃZ^àXbõRdÿMfÿHfÿGfÿGfÿGfÿGfÿGÿlþ|ފЖÈŸÀ§¹®²²ª±(¡¯7 ™¬C‘¨M!‰¥U*‚£\2| c9wžj>rœqDmšyHh™Ld—‹P`–•S]–¢UZ•°WY•ÁWX•ÞV[–óP]—ÿL_—ÿG`–ÿF`–ÿF`–ÿF`–ÿF`–ÿFÿpëÖÊšÁ£¹ª±²ª·£·$›µ4 +“²@НJƒ­S'|«Z.v¨a5p§h;k¥o@g£wDb¢H^¡‰LZ ”OWŸ QTŸ®SSŸÀSRŸÝRUŸóNW ÿJY ÿFYŸÿEYŸÿEYŸÿEYŸÿEYŸÿEÿuà†Ï“ÄŸº§±®©¶¡½ ›½ ”¼1‹º=ƒ·H|µP"u³X*o²_0j°f6e¯m;`­u?\¬~CX«‡GUª“JQªŸLOª®MMªÀMMªÜMNªòIPªþFR©ÿCR©ÿBR©ÿBR©ÿBR©ÿBR©ÿBò|׌ș½£²«©² »—Ä ’Å‹Ä,ƒÂ: {ÁDt¿Nn½V$h¼]*c»d0_ºl4Z¹t9V¸|K´ÿ=K´ÿ=K´ÿ=K´ÿ=K´ÿ=âƒÍ’ÁŸ´§ª¯ ¸–ÀŒÊ†ÍÍ&zÌ5sËAlÊJfÉSaÈ[#\Çb(XÆj,TÆr0PÅ|3Mņ6JÄ’9GÄŸ;EÄ®å›#<åª$;æ¼$:æÓ$9åî$9ãú#9âÿ$9âÿ$9âÿ$9âÿ$9âÿ$9âÿ$¿ž¯¦£®—¸ŠÂ~ÌsÖiå dï_ð Yð+Tð5Oð>KñF +GñN DñWBñ_?òg=òp:ò{8ó‡6ó”5ô¢3ô±2õÅ1õâ1ôñ1ñþ1ñÿ1ñÿ1ñÿ1ñÿ1ñÿ²¤¥«˜¶‹À~ÊqÕeÞ^õ +YüSüNü'Jý0Eý9Aý@>þH;þO 8ÿW +6ÿ^ 3ÿg 1ÿp .ÿ|,ÿ‰+ÿ–)ÿ¤(ÿ´'ÿÇ'ÿá&ÿò&ÿö&ÿö&ÿö&ÿö&ÿö§©™³‹¾~ÉpÓdÞXçRÿ MÿGÿCÿ">ÿ*:ÿ27ÿ93ÿ?0ÿF-ÿM+ÿT(ÿ[&ÿc#ÿm!ÿy ÿ‡ ÿ• +ÿ£ +ÿ± +ÿÀ ÿÖ ÿß ÿß ÿß ÿß ÿß ›±¼~ÇpÒcÞUäKõFÿ@ÿ;ÿ7ÿ3ÿ#/ÿ)+ÿ0(ÿ5%ÿ;"ÿAÿGÿNÿUÿ^ÿhÿtÿ‚ÿÿÿ©ÿµÿºÿºÿºÿºÿºŽºÅpÑbÞTåFë?þ9ÿ4ÿ /ÿ+ÿ'ÿ#ÿ!ÿ%ÿ*ÿ/ÿ4ÿ:ÿ@ÿFÿN ÿV ÿ`ÿlÿxÿ†ÿ‘ÿÿ¡ÿ¡ÿ¡ÿ¡ÿ¡ÿ6-ÿ9.ÿ>.ÿ@2ÿ@8ÿ>Aÿÿ@Jÿ>W ÿ*ÿC*ÿF-ÿG2ÿF<ÿEHÿCU ÿAb ÿ?pÿ=}ÿ<‰ÿ;“ÿ;œÿ:¤ÿ:«ÿ:²ÿ:¹ÿ9Âÿ9Ìÿ9Ýÿ9éÿ9óÿ:ûü:ÿú:ÿù:ÿø:ÿø:ÿø:ÿø:ÿø:ÿø:ÿÿ9+ÿA'ÿF'ÿJ)ÿK/ÿL9ÿKEÿHQ ÿF^ÿDlÿByÿA…ÿ@ÿ@˜ÿ? ÿ?§ÿ>®ÿ>¶ÿ>¾ÿ>Èÿ=Öþ=æû>ñø>úõ>ÿó>ÿò?ÿñ?ÿñ?ÿñ?ÿñ?ÿñ?ÿñ?ÿÿ=(ÿE$ÿJ#ÿN%ÿQ,ÿR6ÿQAÿOM ÿLZÿJgÿHtÿG€ÿF‹ÿE”ÿDœÿC¤þC«ýB²üBº úBÄ ùBÐ!öAâ!òBî"ïBù"íBÿ ëCÿêCÿéDÿèDÿèDÿèDÿèDÿèDÿÿ@%ÿH!ÿO ÿS!ÿW)ÿY3ÿX>ÿVI ÿRUÿQcÿOoþM{ûK†ùJ÷I˜!öHŸ"ôG¦$óG®%ñF¶&ðF¿'ïEË(ìEÞ)èEì)åFø(âGÿ&áHÿ$ßIÿ"ÞIÿ ÝIÿÝIÿÝIÿÝIÿÝIÿÿC"ÿLÿSÿYÿ]&ÿ_0ÿ_:ÿ]E ÿZPýX^øUjõSvòQ€!ïOŠ$íM“&ëLš)éK¢+çJ©,åI±.äH»/âHÇ1àHÙ1ÜHê1ØIö.ÔKÿ+ÒLÿ)ÐMÿ&ÏNÿ%ÎNÿ#ÎNÿ#ÎNÿ#ÎNÿ#ÎNÿ#ÿGÿPÿWÿ^ÿc#ÿf,ÿf6ÿdA +úbLô_Yï\eëYp çV{%äT„)áQ-ÞP•0ÜO2ÙN¥3ÖM­5ÓM·6ÑLÂ7ÏLÑ8ÌLæ8ÉMô5ÇOÿ1ÅQÿ.ÄRÿ+ÃSÿ)ÂSÿ'ÂSÿ'ÂSÿ'ÂSÿ'ÂSÿ'ÿJÿTÿ\ÿcÿi ÿl)ÿm2ùl= òiGëfTåc`à_k"Û\u(ÖY-ÒWˆ0ÏU3ÌT˜6ÊS 8ÇR§:ÅQ°;ÃP»<ÁPÉ=¿Pß=¼Qð;ºSü7¹Uÿ3¸Wÿ/·Xÿ-·Xÿ+·Xÿ+·Xÿ+·Xÿ+·Xÿ+ÿMÿWÿ`ÿhÿnÿr%ûs.òs8éqC ânPÛi\Óef$Îbp*É_z/Æ\‚3Ã[Š6ÀY’9½Xš;»V¢>¸U«?¶UµA´TÂB²TÔB°UêA®Wù<®Yÿ7­[ÿ3­\ÿ0­]ÿ.­]ÿ.­]ÿ.­]ÿ.­]ÿ.ÿPÿZÿdÿmÿsÿw!ôy)êz3âx? +ÙtLÏpXÉkb$Ähl+¿eu0»b}5¸`…8µ^<²\•>¯[A­Z¦C«Y¯D©Y¼E§XÌF¤XåF¤[ö@£^ÿ;£_ÿ7£`ÿ3£aÿ1£aÿ1£aÿ1£aÿ1£aÿ1ÿSÿ]ÿhÿpÿwû|î$ä€-Ú;ÏzIÇuTÁq_$»mh+¶jp1²gy6¯e€:«cˆ=¨a@¦`˜C£^¡E ^«Gž]·Hœ]ÆIš\ßIš_òDšbÿ>šcÿ9›eÿ6›eÿ3›eÿ3›eÿ3›eÿ3›eÿ3ÿUÿ`ÿkÿtÿ{õè„Þ‡'Ñ„7ÈFÀ{Q¹v[#´re+¯om1ªlu6§j|:£h„> fŒAd”DšcG—b§I•a²K“aÁL‘aØL‘cïG’eýA’gÿ<“iÿ8“jÿ5“jÿ5“jÿ5“jÿ5“jÿ5ÿWÿc ÿn ÿwÿð…ã‰Ö‹#ˈ5„Cº€O³{Y#­wb*¨tj1£qq6Ÿny;œl?˜jˆB•i‘E’gšHf£Je¯LŠe½M‰eÑN‰gìJŠiûC‹kÿ>Œmÿ:Œnÿ7Œnÿ7Œnÿ7Œnÿ7Œnÿ7ÿYÿe ÿq ÿz ñ‚ è‰ ÝŽÏ Æ2½‰Aµ„M®€V"§|_*¢xg0uo6™sv:•q}?’o…BŽmŽF‹l–Iˆj K…j¬MƒiºOiÌOjèLƒmùE„oÿ?…pÿ;†qÿ8†qÿ8†qÿ8†qÿ8†qÿ8ÿ[ÿgÿsó}Þ†ÙŒ Õ‘ Ê’Á0¸?°ˆJ©„T!¢€])}e0˜zl5“ws:u{>Œs‚Bˆr‹F…p”I‚ožLn©N|m·O{mÉPznæM|qøF~sÿAtÿ=€uÿ:€uÿ:€uÿ:€uÿ:€uÿ:ÿ]ÿjÿvä€Ù‰ÒÏ” +Å–¼”.³‘= «H¤ˆR ž…[(˜c/“~j5Ž|q9Šzx=†x€BƒvˆEu‘I|s›Lyr§NvrµPtrÆPtrãOvuöGxwÿBzxÿ>{yÿ:{yÿ:{yÿ:{yÿ:{yÿ:ÿ_ ÿlõyÞƒÓ‹Í’É—À™·˜,¯•; §‘GŸP™‰Y'“†a.Žƒh4‰o9…v=}~A}{†EyzIvx™Lsw¥Npw²PnwÄPmwàOpyõHr{ÿCt|ÿ>u}ÿ;u}ÿ;u}ÿ;u}ÿ;u}ÿ;ÿa +ÿoè|نώȕڻœ³œ*ª™9 ¢•E›‘N”ŽW&Ž‹_-‰ˆf3„†m8€„t={‚{Aw€„EtHp}—Km|£Nj|°Oh|ÁPg|ÝPj~óIm€ÿCnÿ?oÿlBhŒ‰FeŠ“Ia‰ŸK^‰¬M]‰½N\‰ÖM^ŠðH`‹þCb‹ÿ?cŒÿ‹£H„ Q ~žY'xœ`-sšg2o˜n7j–u]“ÿ;]“ÿ;]“ÿ;]“ÿ;]“ÿ;ÿnà~΋ĕº±£©©¡® ›¯”®.Œ¬; …ªF~¨Nx¦V#r¤]*m¢d/i¡k4dŸs8`ž{<\…?YœBU›œES›ªGQ›ºGP›ÑGQ›îDS›ü@U›ÿΨ&<κ&<ÏÔ&<Íï%;Ìû%;Ëÿ%;Êÿ%;Êÿ%;Êÿ%;Êÿ%;Êÿ%Óµž¨¦®‘¶…¿yÇoÎdÖ ^Þ[Þ WÞ-Sß:PßDLßN IßW Fß_CßhAßq>ß|<߉:à–8à¥7à·6áÍ6ßì5Þù4Ýÿ4Üÿ4Üÿ4Üÿ4Üÿ4Üÿ¹œª¤ž«’µ…¾yÇmÏbÖXáUêQë Më+Ië5Eì>BìG?ìO=íX :í` +8íj 6ît 3î€2îŽ0ï.ï­-ðÀ-ðÞ,îñ,ìþ,ëÿ,ëÿ,ëÿ,ëÿ,ëÿ­¢ ©“³†½yÆlÏ`ØUÞNó +J÷FøCø'?ø0;ù88ù@5úG3úO0ûW.û_+üi)üt'ü‚ %ý $ý  +#þ° +"þÄ !ÿà !ýò + üü + üü + üü + üü + üü +¢§•±‡»yÆlÏ_ÙRßHèCÿ?ÿ;ÿ7ÿ!4ÿ)0ÿ0-ÿ7*ÿ>'ÿD%ÿK"ÿS ÿ\ÿfÿrÿ€ÿÿŸÿ¯ÿÀÿÖÿéÿéÿéÿéÿé—¯ˆºzÅlÏ^ÚPàDæ<õ7ÿ3ÿ /ÿ+ÿ(ÿ!%ÿ'!ÿ-ÿ2ÿ8ÿ?ÿFÿMÿVÿ`ÿl ÿ{ ÿ‹ +ÿš +ÿ¨ ÿµÿÂÿÂÿÂÿÂÿÂЏ{ÃlÎ^ÛOâBç6ì1ÿ,ÿ'ÿ#ÿ ÿÿÿÿ!ÿ&ÿ,ÿ1 ÿ7 +ÿ>ÿFÿOÿYÿfÿtÿ‚ÿÿœÿ¦ÿ¦ÿ¦ÿ¦ÿ¦ÿ./ÿ3,ÿ7-ÿ80ÿ76ÿ4?ÿ1Kÿ/Xÿ,fÿ*t ÿ) +ÿ( ÿ(— ÿ(Ÿ ÿ(¦ ÿ'­ ÿ'´ ÿ'» ÿ'Ä ÿ'Î ÿ(Þ ÿ(é ÿ(ó ÿ(û ÿ(ÿ +ÿ)ÿ +ÿ)ÿ +ÿ)ÿ +ÿ(ÿ +ÿ(ÿ +ÿ(ÿ +ÿ(ÿ +ÿ(ÿ +ÿ0-ÿ6*ÿ9*ÿ;.ÿ:4ÿ8<ÿ6Iÿ3Vÿ1c ÿ/q +ÿ-~ ÿ-Š ÿ,” ÿ,œ ÿ,¤ ÿ,« ÿ,± ÿ,¹ ÿ+Á ÿ,Ë ÿ,Ú ÿ,ç ÿ,ñ ÿ,ú ÿ,ÿ þ-ÿ ý-ÿ ý-ÿ ý,ÿ ý,ÿ ý,ÿ ý,ÿ ý,ÿ ÿ2+ÿ9(ÿ=(ÿ?*ÿ>0ÿ=:ÿ}ÿ=‡ÿ=‘þ<™ý< ü;§ú;®ù;¶ø;¿ö;Êô;Üð;êí;öê;ÿè<ÿç<ÿæ=ÿå=ÿå=ÿå=ÿå=ÿå=ÿÿ="ÿDÿIÿMÿP&ÿQ0ÿP;ÿNFÿKS ÿH`ÿFlûExøD‚öCŒôB”óAœñA£ï@ªî@²í?»ë?Æé?Õå?èâ@ôß@þÝAÿÛBÿÙBÿØBÿØBÿØBÿØBÿØBÿÿ@ÿHÿNÿRÿV#ÿX,ÿW7ÿUBÿRM ùPZõMgñLrîJ}ëH†éGçF—åEž ãD¦"áD®#àC·$ÞCÂ%ÜCÐ&×Cå&ÓDó$ÐEþ"ÍFÿ ÌGÿÊGÿÉHÿÉHÿÉHÿÉHÿÉHÿÿDÿLÿRÿXÿ]ÿ_(ÿ^2ý]=öZI +ðWUêUbæRmâPwßNÜLŠ"ÙK’$ÕJš&ÓI¡(ÑI©)ÏH²*ÍH¼+ËHÉ,ÈHß,ÅHï+ÂJü(ÀKÿ%¿Lÿ"¾Mÿ ½Mÿ½Mÿ½Mÿ½Mÿ½MÿÿGÿOÿVÿ^ÿbÿe$þe-ôd8íaC æ_Qà\]ÚXhÔVrÐT{"ÌR„&ÊPŒ(ÇO”*ÅN›,ÃN£.ÁM¬/¿L¶0½LÂ1»LÓ2¸Lé1¶Nø-´Pÿ*³Qÿ'³Rÿ$²Rÿ"²Rÿ"²Rÿ"²Rÿ"²Rÿ"ÿJÿSÿ[ÿbÿhÿjök(ìk2äi>ÜfL ÓbXÍ_cÈ\m ÄZv$ÁX~(¾V†+»UŽ.¹S–0¶Rž2´R¦3²Q°5°Q¼6®PË7¬Pã7ªRô3©Tÿ.¨Vÿ+¨Wÿ(¨Wÿ%¨Wÿ%¨Wÿ%¨Wÿ%¨Wÿ%ÿMÿVÿ_ ÿgÿlûpïq"äq,Ûp:ÑlH ÉhTÃe_¾bh!º_q&¶]y*³[-°Z‰0®X‘3«W™5©V¡7§V«8¥U¶:£UÅ;¡UÝ;ŸVð7ŸXþ2ŸZÿ.ž[ÿ+ž\ÿ(ž\ÿ(ž\ÿ(ž\ÿ(ž\ÿ(ÿPÿY ÿc ÿk ÿpõtèvÝw%Ñv6ÈrD ÁnP»k[¶gd!±em'­bu+ª`|/§_„2¤]Œ4¢\”7Ÿ[9Z¦;šY±=˜Y¿>—YÓ>•Zì;•]û5–^ÿ1–_ÿ-–`ÿ*–`ÿ*–`ÿ*–`ÿ*–`ÿ*ÿRÿ\ +ÿf ÿn +öt ïxá{Ô| Ê{3ÁwA ºtM´pX®la!©ji'¦gq+¢ex/Ÿd€3œbˆ6™a8–_™;”^¢=‘^­?]»@]ÍAŒ^è?aù8bÿ3Ždÿ0Ždÿ,Žeÿ,Žeÿ,Žeÿ,Žeÿ,ÿUÿ_ÿiôrâxÛ| Ù ÍÄ0»|? +´xK­uU¨q^!£nf&Ÿln+›ju/˜h}3•g„6’eŒ9d•<ŒcŸ>‰bª@‡a·B…aÉB„bäA…d÷;†fÿ5‡gÿ1‡hÿ.‡iÿ-‡iÿ-‡iÿ-‡iÿ-ÿW ÿaþläuÛ{Ó€Ѓ +Ç…¾„-¶< ¯}H¨yR¢v[ sc&™pk+•nr/‘my3Žk6‹i‰:ˆh’<…gœ?‚f§A€f´C~fÅD|fáC~hõ<jÿ7€kÿ3lÿ/lÿ/lÿ/lÿ/lÿ/ÿY ÿcôoßxÔ΃ʇˆ¹‡+±…:ªF£~PzY˜wa%“uh*so/‹qw3ˆo~6…n†:‚l=k™@|j¥Byj±DwjÂDvjÝDxló>ynÿ8zoÿ4{pÿ0|pÿ0|pÿ0|pÿ0|pÿ0ÿ[ÿfçrÚ{Ï‚ɇÄŠ¼Œ´‹(¬‰8¥…Dž‚N˜W“|_$Žyf*Šwm.†ut2‚t|6r„9|q=yp—@vo¢Bsn¯DqnÀEpnÙErpñ?srÿ9usÿ5vtÿ1vtÿ1vtÿ1vtÿ1vtÿ1ÿ]ÿiâtÔ}Ë…ÄŠ¿·°&¨5 ŠBš†L“ƒUŽ]$‰~d)…|k-zr2}xy5zw‚9vv‹ HŠŽQ„‹Y!‰`'{‡g+w…n0s„u4o‚}7k‡;h€‘>eœAb~©C`~¹D_~ÏD`ì@b€ü:d€ÿ6eÿ3fÿ2fÿ2fÿ2fÿ2ÿdårÓ~LJ¾¶•®™¦›  œ™›.’™; +‹–F…”O‘Wz^%uŽe*qŒl.mŠs2i‰{6fˆ„9b†=_…š?\…¨AZ…·BY…ÌBZ…ê?\†û:^†ÿ6_‡ÿ2_‡ÿ2_‡ÿ2_‡ÿ2_‡ÿ2ýhàv͂Œ¹“°™¨Ÿ  ™¡“ +ŒŸ8…CšLy˜Tt—\"p•c'k“j,g’q0d‘y3`‚7\Ž:Y™=W¦?T¶@SË@Té=Vú9Wÿ5YŽÿ2YŽÿ1YŽÿ1YŽÿ1YŽÿ1ímÙ{ȇ½´˜ª¡¡—¦‘§Œ§'…¦5¤@ y¢Js RnŸYi`$eœg(a›o,^šw0Z˜€3V—‹6S——9Q–¥;O–´º³&=ºÈ&=ºè&=¸ù%=·ÿ$=¶ÿ#=¶ÿ#=¶ÿ#=¶ÿ#=¶ÿ#Lj¹•¬¡¤–«Š²¹s¿hÆ`Ê^Ê[Ê,WÊ8TÊCPÊLMÉU JÉ]GÉfDÉoAÉy?È…<È“:È¢9ɳ8ÉÉ8Èè7Çù7Åÿ6Äÿ6Äÿ6Äÿ6Äÿ6Äÿ¾‘°›¤£˜ªŒ²€¹tÀhÇ]ÍSÓ +O×MØ"KØ0IØ<FØFDÙOAÙX?Ùa<Ùk +:Ùv 7Ù‚5Ú4Ú 2Ú±1ÛÇ1Úç0Øö0Öÿ/Ôÿ/Ôÿ/Ôÿ/Ôÿ/Ôÿ³š¦¡š©±€ºtÁhÉ\ÏRÕHÜEåCåAæ*>æ5;ç>9çG7çP4èY2èb0èm.éy,é‡+ê– )ê§ +(êº +'ëÖ +'éð +'çý &æÿ +&æÿ +&æÿ +&æÿ +&æÿ +¨ œ§°‚¹tÂhÊ[ÑO×EÝ>î <ò9ó6ó%4ô.1ô7.õ?,õG)öO'öW%÷a#÷l!øzø‰ùšù«úÀúÞùò÷ýöÿöÿöÿöÿž¦‘¯ƒ¹uÂgËZÓMÚBß8å5û1ÿ.ÿ+ÿ)ÿ&%ÿ-#ÿ4 ÿ;ÿCÿKÿSÿ]ÿjÿxÿˆÿšÿ«ÿ¾ÿÕÿíÿðÿðÿðÿð“®„¸vÂgÌZÕLÜ?á5æ-ô*ÿ&ÿ #ÿ ÿÿÿ#ÿ)ÿ/ÿ5ÿ=ÿE ÿN +ÿXÿeÿtÿ…ÿ–ÿ¦ÿµÿÆÿÊÿÊÿÊÿʆ·wÁhÌZ×KÞ>ä2é'í#ÿÿÿÿ ÿÿÿ ÿ ÿ"ÿ(ÿ.ÿ5ÿ=ÿGÿRÿ^ÿmÿ~ÿŽÿ›ÿ©ÿ«ÿ«ÿ«ÿ«ÿ*-ÿ.+ÿ0+ÿ0.ÿ.5ÿ)=ÿ%Iÿ#Wÿ!dÿrÿÿŠÿ”ÿœÿ£ÿªÿ±ÿ¸ÿ¿ÿÉÿÖÿåÿïÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,+ÿ0(ÿ3(ÿ3+ÿ11ÿ-:ÿ+Gÿ(Tÿ&aÿ$oÿ"|ÿ"‡ÿ"‘ÿ!™ÿ!¡ÿ!§ÿ!®ÿ!µÿ!¼ÿ!Æÿ!Ñÿ!âÿ"íÿ"÷ÿ"ÿý"ÿü"ÿü"ÿü"ÿû"ÿû"ÿû"ÿû"ÿÿ.(ÿ3%ÿ6%ÿ7'ÿ5-ÿ48ÿ2Dÿ/Qÿ,^ÿ*kÿ)wÿ(ƒÿ'ÿ'– ÿ' ÿ'¤ ÿ'« ÿ'² ÿ'¹ ÿ' ÿ'Í ÿ'Þ ÿ'ë ü'öù(þ÷(ÿö(ÿõ(ÿõ(ÿõ(ÿõ(ÿõ(ÿõ(ÿÿ2%ÿ7"ÿ:!ÿ;#ÿ;)ÿ;4ÿ9@ÿ6Mÿ4Zÿ1fÿ0sÿ. ÿ.‰ +ÿ.’ +ÿ-™ ÿ-¡ ÿ-§ ÿ-® ÿ-µ ÿ-¾ þ-É û-Ù ø-è ô.ô ñ.þ ï.ÿ î.ÿ í.ÿ ì.ÿ +ì.ÿ +ì.ÿ +ì.ÿ +ì.ÿ +ÿ5"ÿ;ÿ?ÿ@ÿB&ÿB1ÿ@<ÿ>Hÿ;Uÿ9bÿ7n +ÿ6y ÿ5„ ý4 ü4• ú4œù3£÷3ªö3²õ3ºó3Åò3Òî3åê4òç4ýå4ÿä4ÿâ5ÿâ5ÿ á5ÿ á5ÿ á5ÿ á5ÿ ÿ9ÿ?ÿCÿFÿI#ÿI-ÿH8ÿEDÿCPÿ@] û>i ø=t õ<ó;ˆñ;ï:˜í:Ÿì9¦ê9®é9¶ç9Áæ9Îâ9ãÞ9ñÛ:üØ:ÿÕ;ÿÓ;ÿÒ;ÿÒ;ÿÒ;ÿÒ;ÿÒ;ÿÿ=ÿCÿHÿLÿOÿP(ÿO3ÿM?ûJJõGW ñFd íDoéCyçBƒäA‹â@“à?›ß?¢Ý>ªÛ>³Ø>½Ö>ÊÒ>ßÎ>ïË?ûÉ@ÿÇ@ÿÆAÿÅAÿÄAÿÄAÿÄAÿÄAÿÿAÿGÿLÿRÿVÿW$ÿV.øT9ñQEëOR æM^ áKiÝItÙH}ÕF†ÒEŽÐE–ÎDÌD¥ÊC­ÈC¶ ÆCÃ!ÅCÓ!ÁCé!¾D÷¼EÿºFÿ¹Gÿ¸Gÿ¸Gÿ¸Gÿ¸Gÿ¸GÿÿDÿKÿQÿWÿ[ÿ]ù](ï[3çY?àWMÚTY ÓRdÎPnÊNwÇL€ÅKˆÂJ ÀJ—!¾IŸ#¼H§$ºH°%¸H¼&·HË'´Gã'²Ió%°Jÿ"®Kÿ®Lÿ­Lÿ­Mÿ­Mÿ­Mÿ­MÿÿGÿO ÿV ÿ\ÿ`ýbðc!æb,Þ`:Ô^HÍ[T ÇX_ÃVi¿Tr¼Rz¹Q‚!¶PŠ#´O‘%²N™'°M¢(®M«*¬L¶+ªLÄ,¨LÛ,¦Mï*¤Oý&¤Pÿ#£Qÿ £Rÿ¢Rÿ¢Rÿ¢Rÿ¢RÿÿJÿR +ÿZ ÿ` ÿeõgèhÝg$Òf5ÊdDÃaP ½^[¹\dµZm±Xu ®W}#¬U„%©TŒ(§S”*¥R,£R¦-¡Q±/ŸQ¾0QÑ0›Qê/šSú*šUÿ&™Vÿ#™Vÿ!™Wÿ™Wÿ™Wÿ™WÿÿM ÿUÿ]ûdïi ék álÓmÉl1Âj@»gL µdW°a`¬_i¨]q!¥\x$¢Z€' Y‡*X,›W˜.™V¢0–U¬2”U¹3“UÊ3‘Uå3‘W÷-‘Yÿ)‘Zÿ%‘[ÿ#‘[ÿ!‘[ÿ!‘[ÿ!‘[ÿ!ÿO ÿWÿaêhÞmØpÕp ËrÂq.ºo=´lI ®iT©g]¤de¡bm!at%š_|(˜^ƒ+•]‹-’[”0[ž2Z¨4‹Yµ5ŠYÆ6ˆYá6ˆ\ô0ˆ]ÿ+‰^ÿ(‰_ÿ%‰_ÿ#‰_ÿ#‰_ÿ#‰_ÿ#ÿQ ÿZõdàl×qÐtÍu Äv¼v*´t:®qF §nQ¢kZžibšgi!–eq%“dx(b€+aˆ.‹`‘1ˆ_š3†^¥5ƒ^²7‚^Â7€^Ü8€_ò3aÿ-‚bÿ)‚cÿ&‚dÿ%‚dÿ%‚dÿ%‚dÿ%ÿSÿ]çgÛoÐtÊxÆy¾z¶z(¯x7¨vD ¢sNœpW˜m_”kg!jn%hu(Šg}+‡e….„dŽ1c—4b¢6|b¯8zb¾9ybÕ9ycï4zeþ/{fÿ+|gÿ(|gÿ&|gÿ&|gÿ&|gÿ&ÿUÿ`ãjÕrÌxÅ{À}¹~±~%ª}5£zA +wL—tU’r]Žpd Šnk$‡lr(„kz+j‚.~i‹1{g•4xg 6vf¬8tf¼9sfÑ:sgí6tiý0ujÿ,vkÿ)wkÿ'wkÿ'wkÿ'wkÿ'ÿWöcßmÑuÈ{Á»€´¬‚#¥2ž~? ˜{J’ySv[‰tb …ri$qp'~ow+{n.xmˆ1ul’4skž7pjª9nj¹:mjÎ:mkë7omü1pnÿ-qnÿ*qoÿ(qoÿ(qoÿ(qoÿ(ÿYëeÛpÍxÄ~¼‚¶„®…§†  …0š‚=“€HŽ}Q‰{Y„y`€wg#|un'ytu*vs}.sr†1pq4mpœ7jo¨9ho·:goË:gpé7iqú2krÿ-lsÿ*lsÿ(lsÿ(lsÿ(lsÿ(ÿ\çhÕsÉ{À‚¸†±ˆ©‰ ¢Šœ‰.•‡;…E‰‚O„€W~^{|e"x{l&tys*qx{-nw„0kvŽ3huš6et¦8ctµ9atÉ:atç8cvù2evÿ.fwÿ+gwÿ)gwÿ)gwÿ)gwÿ)ÿ_ãlÐvż…´Š¬Œ£Ž +Ž—Ž+Œ8ŠŠC „‡L…Uz„\v‚c!s€j%oq)l~y,h}‚/e|Œ2b{˜5_z¤7]z³8\zÇ9\zå7^{ø2_{ÿ.`|ÿ+a|ÿ)a|ÿ)a|ÿ)a|ÿ)õbÞoÌzÀƒ·‰¯Ž¦‘’—“‘“(‹’6…A ŽJzŒRuŠZqˆam‡h#j†o'f„w+cƒ€.`‚Š1]–4Z£6X€²7V€Å7V€ã6X÷1Yÿ-[‚ÿ*[‚ÿ)[‚ÿ)[‚ÿ)[‚ÿ)ìfØsÇ~¼‡³Ž©’ •–˜™Š™$…˜2–> y”Ht“Po‘Wk^hŽe!dm%`Œu(]‹~+ZŠˆ.W‰”1T‰¡3Rˆ°4QˆÃ5Pˆâ4Rˆö0Sˆÿ,Tˆÿ)Uˆÿ(Uˆÿ(Uˆÿ(Uˆÿ(ækÐxƒ·Œ­’£–ššŽž‡ŸƒŸ ~Ÿ/x;sœE n›Mi™Ue˜\a—c^–j![•r%W”|(T“†+Q’’.N’ 0L’¯1K’Â1J‘à1L‘õ-M‘ÿ*Nÿ(Nÿ&Nÿ&Nÿ&Nÿ&ÞpÉ}¼‰²’§—›“Ÿ†¤~¦ z¦u¦*p¦7l¥A g£J c¢R_¡Y[¡aX hTŸp Qžz#N„&K‘)Hœž*Fœ®,EœÁ,Eœß+E›ô)Fšÿ'Gšÿ%Gšÿ$Gšÿ$Gšÿ$Gšÿ$Ôw„¶«–¡œ– ‹¥ªt®o¯l¯$h¯2d®=_­F [¬O X¬VT«^QªfNªnK©xH©ƒ E¨"C¨$A¨­%@¨À%?¨ß%?¦ô#@¥ÿ"@¥ÿ!@¤ÿ @¤ÿ @¤ÿ @¤ÿ Ê~»‹¯•¤›™¡Ž¦‚¬w±j¶c¸a¸^¸,Z¸8W¸BS¸KP·S M·[J¶cG¶kDµuBµ?µŽ=µœ;µ¬:µÀ9µß9³ô9²ÿ9±ÿ9°ÿ9°ÿ9°ÿ9°ÿÁ†´“§šœ ‘§…­y³m¸b½VÂSÃRÃ#PÄ0MÄ;JÄEGÄNEÄWBÃ_ @Ãh =Ãr ;Ã~8ÃŒ6Û5ë3ÃÀ3Ãà3Áõ2Àÿ2¿ÿ1¾ÿ1¾ÿ1¾ÿ1¾ÿ¸«™Ÿ “§‡®{´n»cÀXÅMÊDÏ CÐBÐ%@Ð2?Ñ==ÑG;ÑP9ÒY6Òc4Òn2Òz0Òˆ.Ò˜ -Ó© ,Ó¾ +,Óß +Ñó +*Ïþ )Îÿ )Íÿ )Íÿ )Íÿ )Íÿ ®˜¢Ÿ–¦‰®|¶o½cÃWÈLÍBÒ9Ù 5ß4ß2à'1á20á=.âG-âP+âZ*ãe(ãq&ä%ä#å¡"å´!åÍ äì âûáÿàÿàÿàÿàÿ¤ž˜¥‹®}¶p¾cÆVËKÐ@Õ6Ü/å-í+î)î"'ï+%ï4#ð<!ðEñNòXòdóqóô’ô¥õºõÖôïòüðÿðÿðÿðÿ𤭶q¿cÇVÎIÓ=Ú3ß*ã&ô$û !üýý"þ)þ1ÿ9ÿAÿJÿUÿa ÿo ÿ€ +ÿ“ ÿ¦ÿºÿÔÿëÿöÿöÿöÿö¬€¶r¿cÉVÑHØ;Ý0â&æðÿÿ ÿÿÿÿ ÿ$ ÿ+ ÿ2ÿ;ÿDÿOÿ\ÿkÿ}ÿÿ£ÿ´ÿÆÿÖÿÖÿÖÿÖ‚µs¿dÉVÓGÛ:à.å#éíýÿÿÿ ÿ ÿÿÿÿÿ$ÿ+ÿ3ÿ=ÿIÿVÿfÿxÿŠÿ›ÿ¨ÿ±ÿ±ÿ±ÿ±ÿ%+ÿ()ÿ))ÿ(,ÿ#2ÿ;ÿGÿUÿbÿpÿ|ÿ‡ÿ‘ÿ™ÿ ÿ§ÿ­ÿ´ÿ»ÿÄÿÎÿßÿëÿöÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ()ÿ+&ÿ,&ÿ+)ÿ(/ÿ"8ÿ DÿRÿ_ÿlÿyÿ„ÿŽÿ–ÿÿ¤ÿªÿ±ÿ¸ÿÀÿÊÿÛÿèÿôÿýüÿûÿûÿúÿúÿúÿúÿúÿÿ*&ÿ.#ÿ/"ÿ/%ÿ,+ÿ*5ÿ'Aÿ$Nÿ"[ÿ hÿtÿ€ÿŠÿ’ÿšÿ¡ÿ§ÿ­ÿ´ÿ½ÿÇÿÔþæûò÷ûõÿôÿóÿóÿòÿòÿòÿòÿÿ."ÿ2ÿ4ÿ3 ÿ2&ÿ22ÿ/>ÿ,Jÿ*Wÿ'dÿ&pÿ%{ÿ$…ÿ$Žÿ$–ÿ$ÿ$£ÿ$ªý$±ü$¹û$Ãù$Ïö$ãò$ðî%úí%ÿë%ÿê%ÿé%ÿé%ÿé%ÿé%ÿé%ÿÿ2ÿ6ÿ8ÿ8ÿ:#ÿ9-ÿ8:ÿ5Fÿ2Rÿ0_ÿ.kÿ-vý,€ú,‰ù+‘÷+™õ+Ÿô+¦ó+­ñ+µð+¿î+Ëë+ßç,îä,úâ,ÿ à,ÿ Þ,ÿÞ,ÿÝ,ÿÝ,ÿÝ,ÿÝ,ÿÿ5ÿ:ÿ=ÿ?ÿAÿA)ÿ@4ÿ=Aÿ:Mü8Zø6eô5qñ4{ï3„ í3 ë2” +é2› +è2¢ æ2ª ä2² ã2» á2È ß2Ü Ú2ì Õ3ø Ò3ÿ Ð3ÿ Î3ÿ Í4ÿ Ì4ÿ Ì4ÿ Ì4ÿ Ì4ÿ ÿ9ÿ>ÿAÿEÿHÿH$ÿG/þD;÷BGñ?Tì>`è Å>¨Ã>±Á>¼À>˽>âº>ò·?ÿµ@ÿ´@ÿ³Aÿ³Aÿ³Aÿ³Aÿ³Aÿÿ@ÿF ÿK +ÿQ ÿSÿTóT"éR-áP;ÚOIÒMUÌK` ÈIjÅHsÂG{¿Fƒ½E‹»E“¹Dš·C¢µC«´C¶²CİCÙ­Cí«Eü©Eÿ¨Fÿ¨Fÿ§Gÿ§Gÿ§Gÿ§GÿÿDÿJÿPÿU +ÿX ÷YêXßW$ÔW5ÌUDÆTPÁR[ ½Pe¹Nm¶Mv´L}±K…¯J­I•«I©H¦ §H°!¥H½"¤HÏ"¡Hè" IøŸKÿžKÿLÿLÿLÿLÿLÿÿG ÿMÿT÷Zë]ç] á\Ó]Ê]0Ã\?½ZL·XW ³V`¯Ti¬Sq©Qx§P€¤O‡¢O  N˜!žM¡#œM«$šM¸%™LÈ&–Lâ&•Nõ"”Oÿ”Pÿ”Qÿ”Qÿ”Qÿ”Qÿ”QÿÿIÿPûXå^ÝbÖcÔa +ÊbÂc,»b;´`H¯]S ª[\¦Zd£Xl WtU{›Tƒ ™T‹"–S“$”R%’Q§'Q³(ŽQÃ)QÝ*ŒRò&‹Tÿ"‹Uÿ‹Vÿ‹Vÿ‹Vÿ‹Vÿ‹VÿÿLÿSì\ßbÔfÎhËgÂgºh(³g8­eE¨cP £aYŸ_a›]h˜\p•Zw“Y!X‡#ŽW%ŒW™'‰V£)‡V¯*…U¿+„VÕ,ƒWï)ƒXþ$ƒYÿ „Zÿ„Zÿ„Zÿ„Zÿ„ZÿÿNÿWå_ØfÎjÇlÃk¼l´m%­l5§jB¡gM œeV˜c^”be‘`lŽ_tŒ^{!‰]ƒ$†\Œ&„[•(Z *Z¬,}Z»-|ZÏ.{[ì+|\ü&|]ÿ"}^ÿ}^ÿ}^ÿ}^ÿ}^ÿÿPõYácÒjÉnÂp½p¶p®q"¨p2¡n?œlJ —jS’h[Žfb‹eiˆcp…bx!‚a€$€`‰&}_’){^+x^©-v^¸.u^Ì/t^é-u`ú'vaÿ#wbÿ wbÿwbÿwbÿwbÿÿRì\ÜfÎmÄr½t·t°t©u¢t/œr=—pG +‘nQlY‰j`…ig‚hnfu!}e}$zd†'wc)uc›,rb§.pb¶/obÉ/nbæ.odù(peÿ$qfÿ!qfÿqfÿqfÿqfÿÿTè_×iÊpÀu¹x²x«x ¤yžx-—w:’uE +ŒrNˆpV„o^€md}lkzks wj{#tiƒ&rh)og™,lf¥.jf³/ifÆ0hfä/jh÷)kiÿ%liÿ"ljÿ ljÿ ljÿ ljÿ ÿWäbÒlÆs½xµ{­|¥| +Ÿ}™|*“{8yC ˆwLƒuTs[{rbxpiuop rnx#om&ll‹)jl—,gk£.ek²/dkÄ0bká/dlö*fmÿ&fmÿ#gnÿ gnÿ gnÿ gnÿ öYàeÎoÂv¹|±©€ €™”(Ž€5ˆ~Aƒ|J ~zRzxYvw`svgptnmsv#jr&gq‰)dq•+bp¡-`p°/^pÂ/]pß/_qõ*`qÿ&arÿ#brÿ brÿ brÿ brÿ ï\ÜiÊr¾zµ€­„¤…š…”…ކ%‰„3ƒƒ>~H yPu~Wq}^n{ekzlhyt"ex}%bw‡(_v“*\vŸ,Zu®.YuÀ.XuÝ.Yvó*[vÿ&\wÿ#\wÿ \wÿ \wÿ \wÿ ê`ÕlÅvº~±„¨ˆŸ‰”ŠŠˆ‹!ƒŠ0~‰;y‡E +t†Np„Ulƒ\i‚cfjb€r _{#\~…&Y}‘)W|ž+U|¬,S|¾-R|Ú-S|ò)U|ÿ%V|ÿ"W|ÿ W|ÿ W|ÿ W|ÿ ådÏpÁz¶ƒ­‰£Œ™Ž†‘},x8sŽBnK jŒSgŠZc‰a`ˆh]‡pZ†y!V…ƒ$T…&Q„œ(O„ª*M„¼*M„×*Mƒñ'Oƒÿ$Pƒÿ"PƒÿPƒÿPƒÿPƒÿÞiÉu¼€²ˆ¨‘““…–~— y—u—(q—5l–?h•H +d”P a“W]’^Z‘fWnTwQŽ NŽ#Kš%I©&H»'GÔ'GŒð$HŒÿ"I‹ÿ J‹ÿJ‹ÿJ‹ÿJ‹ÿÕnÃ{·…¬¢’—–Œ™œužpŸmŸ#iŸ0ež;ažE]M +ZœT W›\TšcQškN™tK˜H˜‹E—™ C—¨!B—º"A—Ó"A–ï B•þB•ÿC”ÿC”ÿC”ÿC”ÿÌu¼±Œ¦’›—‘›…Ÿy£j§e§c¨`¨+]¨6Y§@V§IS¦Q P¦Y M¥`J¥iG¤rD¤}B£‰?£—=£§<£¹;£Ò;¢ï; þ;Ÿÿ<Ÿÿ<Ÿÿ<Ÿÿ<ŸÿÄ|¶‰ª’Ÿ—•œ‰¡}¦qªd®Z±W±U²#S²0P²;M²DK±MH±UE±] C±e @°o >°z;°‡9¯–7¯¦6¯¸5°Ñ5®ï4­þ4¬ÿ4«ÿ4«ÿ4«ÿ4«ÿ»…¯£—˜Œ£€¨t­h²\¶PºI¼ H¼F½'E½3C½=A½G?½P=½X:½a8½k6½w4½„ 2½“ +0½¤ /½· .¾Ð .¼î -ºþ ,¹ÿ ,¸ÿ,¸ÿ,¸ÿ,¸ÿ³¦—›£ƒªv°jµ^ºR¾GÂ=Ç8É7É6Ê'5Ê34Ë=3ËG1ËQ0Ë[.Ìe,Ìq*Ì)Ì'Ì¡&Í´%ÍÎ%Ëî$Éü#Èÿ#Çÿ#Çÿ#Çÿ#Çÿ©–ž’£…«x²k¸_¾RÂGÆ=Ê4Ï+Ô &Ù%Ù%Ú%$Ú0#Û;#ÛE"ÜP!Ý[ ÝhÞvއߙ߬ßÄÞçÜøÛÿÚÿÚÿÚÿÚÿ œ”£‡«y³lº_ÁRÆFÊ;Î1Ó)Ù!Þèèéé'ê0ê9ëCìNìZígîwîŠïžð³ ðÍ ïì íü ëÿ ëÿ ëÿ ëÿ—£‰«{´m¼_ÄRÊEÎ9Ó/Ø%Ýáì÷ ÷øøù% ù- ú5 û?ûJüWýfþwý‹ýŸüµüÑüíüüüýüýüý‹«}´n½`ÆRÍDÒ7Ø,Ý"áåêúÿ ÿ +ÿÿÿÿ ÿ'ÿ0ÿ:ÿEÿSÿbÿuÿŠÿŸÿ³ÿÇÿåÿåÿåÿå´p½aÇSÐCÖ6Ý*âæêí ú ÿÿÿÿ ÿ ÿÿÿÿ!ÿ)ÿ4ÿ@ÿNÿ^ÿrÿ‡ÿšÿªÿ¹ÿ¹ÿ¹ÿ¹ÿ )ÿ"'ÿ"'ÿ*ÿ0ÿ9ÿEÿ Sÿ `ÿ +mÿ yÿ „ÿ Žÿ –ÿ ÿ £ÿ ©ÿ °ÿ·ÿ¾ÿÈÿÖÿæÿñÿûÿÿÿÿÿ ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ ÿÿ#&ÿ%$ÿ%$ÿ#'ÿ,ÿ5ÿBÿPÿ]ÿjÿvÿ€ÿŠÿ’ÿšÿ ÿ¦ÿ ­ÿ ³ÿ »ÿ Åÿ Ñÿ ãÿ ïþ úú ÿùÿùÿùÿøÿøÿøÿøÿÿ&#ÿ( ÿ( ÿ&"ÿ"(ÿ 2ÿ?ÿLÿYÿeÿqÿ|ÿ†ÿŽÿ–ÿÿ£ÿ©ÿ°ÿ·ÿÁÿÌýßùíõøóÿòÿñÿðÿðÿðÿðÿðÿÿ*ÿ,ÿ,ÿ+ÿ)$ÿ(/ÿ%;ÿ"HÿTÿaÿmÿwÿÿŠÿ’ÿ™ýŸü¦û¬ù´ø½öÈóÛïêì÷éÿèÿçÿæÿåÿåÿåÿåÿÿ-ÿ0ÿ1ÿ0ÿ1 ÿ0*ÿ.6ÿ+Cÿ(Oÿ&\ÿ$gü#rù#|÷"…õ"ó"•ò"›ð"¢ï"©í"±ì"¹ê"Åè"Õä#éà#öÞ#ÿÛ$ÿÙ$ÿØ$ÿ×$ÿÖ$ÿÖ$ÿÖ$ÿÿ1ÿ4ÿ6ÿ7ÿ9ÿ8%ÿ61ÿ3=ý1Jø.Vô-bð,mí+wê+€è*ˆæ*å*—ã*žá*¥à*­Þ*¶Ü*ÂÚ*ÒÕ+çÐ+õÍ,ÿË,ÿÉ,ÿÈ,ÿÇ,ÿÇ,ÿÇ,ÿÇ,ÿÿ5ÿ9ÿ: ÿ>ÿ@ÿ? ÿ=*ù;7ò8Dì6Qç5\ã4gà3rÝ3{Ú2ƒÖ2‹Ô2“Ò1šÐ1¡Î1© Ì1² Ë1¼ +É1Ê +Æ2á Â2ñ ¿3þ ½3ÿ +»3ÿ +º3ÿ º3ÿ º3ÿ º3ÿ º3ÿ ÿ9ÿ= ÿ@ ÿD ÿFÿE÷D#îA/æ?<à>JÚ=WÓ•²>°>¦¯>°­>½«>Í©>æ¦?÷¤@ÿ£@ÿ¢@ÿ¢@ÿ¢Aÿ¢Aÿ¢Aÿÿ? ÿDÿJ÷NìPêO ãLÖLÍM0ÆM?ÀLL»KW·Ia ´Hi ±Gq®Fy¬F€ªEˆ¨D¦D˜¤C¡¢C« C·ŸCÇCà›Dó™Eÿ˜Fÿ˜Fÿ˜Fÿ—Fÿ—Fÿ—FÿÿBÿG÷OåSÝU×UÕR ËSÃT+¼T;¶RH±QR­P\ +©Nd ¦Ml¤Lt¡K{ŸJ‚JŠ›I“™Iœ—H¦•H²”HÁ’HØIïJþKÿŽKÿŽLÿŽLÿŽLÿŽLÿÿEÿKéSÞXÓ[Í[ÊXÂXºZ'³Z7®XD©WO¤UX +¡T` žSh›Qo˜Pv–P~”O†’NŽN˜M¢‹M®ŠM¼ ˆMÐ ‡Më†Oü†Pÿ†Pÿ†Pÿ†Qÿ†Qÿ†QÿÿGøOäWÕ]Ì`Å`Á^º]³_#¬_3¦^@¡\KZT +™Y\–Xd“VkUrŽTz‹T‚‰SЇR”…RžƒQª!Q¸"QË"~Rç!~Sù~Tÿ~Uÿ~Uÿ~Uÿ~Uÿ~UÿÿJîRÞ[ÏaÆd¿eºc³b¬c ¦c0 b=›aH–_Q +’^Y \aŒ[h‰Zo†Yv„X~‚W‡W}V›!{V§"yVµ#wVÇ$vVä$vW÷wXÿwYÿwYÿwYÿwYÿwYÿÿLéVÙ_ËeÁhºi´h­g ¦h h-šg:•eEcN +ŒbW ‰a^†_eƒ^l€]s~\{{\ƒy[vZ˜!tZ¤#rZ²$qZÄ%oZá%p[ö q\ÿq]ÿq]ÿq]ÿq]ÿq]ÿýOåYÓbÇh½l¶m¯l§k  l›l*•k7iC‹hL ‡fT ƒe[€cb}bizapxaxu`s_‹p^–"n^¢$l^°%k^Á&i^Þ&j_ô!k`ÿkaÿlaÿlaÿlaÿlaÿõQâ\ÏeÃk¹o±qªq¢o›o–p'o5‹n@†lI‚jR ~iY{h`wffufnrevpd~mcˆkc“"ib $fb®%eb¿&dbÚ&dcò"edÿfdÿgdÿgeÿgeÿgeÿðSÝ_Ëh¿o¶s®u¦us–s‘t$‹s2†r>pG}oO ymWvl^skdpjlmjski|hh†fg‘"cgž$af¬%`f½&_gÖ&_gñ"`hÿahÿbhÿbhÿbhÿbhÿìWÙbÇk¼r³wªy¡y—wx‹x!†x/w;|uExtM +trUqq\npckojhnqfnzcm„`l!^lœ#\kª%Zk»&YlÓ&Zlï#[lÿ\mÿ]mÿ]mÿ]mÿ]mÿèZÒfÃo¸v¯{¦~~‘|Š|…}}-||9wzCsyK pxS lwZivafuhctoasx^r‚[r Yqš"Wq¨$Uq¹%TqÐ%Tqî"VqþWqÿWqÿXqÿXqÿXqÿã^Íi¿s´z«¢‚˜ƒ‹„ ‚{‚)v6r@nIj~P g}Wd|^a{f^zm[zvYy€Vx‹Sx˜!Qw¦"Pw·#OwÎ#Owì!PwýQwÿRwÿRwÿRwÿRwÿÞbÈn»w°§„‡’‡„‡}‡ xˆtˆ&pˆ2l‡=h†Fe…N a…U ^„\[ƒcY‚kVtS€~P€‰N–L¥ J¶!IÌ!I~ëJ~üK~ÿK~ÿL~ÿL~ÿL~ÿÕgÃs¶|¬„¢‰˜‹|uŽom!i.e9bŽB^ŽK[R +XŒY V‹aS‹hPŠqM‰{J‰‡Hˆ•Fˆ£Dˆ´CˆÊC‡êD†ûD†ÿE†ÿE…ÿE…ÿE…ÿÍm½x±‚§ŠœŽ’†“y•l—f—c˜a˜)^˜5Z—>W—GU–OR–V O•^ L”fJ”oG“yD“…B’“@’¢>’³=’É=‘é=ú>ÿ>ÿ>ÿ>ÿ>ÿÅs·¬‰¡–“‹–™sœdŸ\  Y W¡"U¡/R¡9P¡CM KJ SH ZEŸc CŸl @žv>žƒ;ž‘9 8²7žÈ7è6›ú6šÿ6™ÿ7™ÿ7™ÿ7™ÿ¾{±‡¥›”˜„œw k¤_§RªM«K«J«'H«3F«=D«FB«N@«V>«_;«h9ªs7ª€ 4ª 2ªŸ 1ª° 0ªÇ 0©ç /§ú /¦ÿ /¥ÿ /¥ÿ /¥ÿ /¥ÿ ¶„ªŽž””™‡ž{£o¨c¬W¯K²Aµ>¶=¶;¶):·49·>7·G6·P4·Z2·d0·o.·|,·‹*·œ)·®(¸Å(·æ'µù&³ÿ&²ÿ&²ÿ&²ÿ&²ÿ¯¢”—š‹ ~¦q«e°Y´M·B»8¾/ -Ã,Ã+Ã)*Ä3)Ä=(ÅG'ÅQ&Å\%Æh#Æv"Ɔ ƘÆ«ÇÁÆäÄøÂÿÁÿÁÿÁÿÁÿ¥”ššŽ¡§s®g´Z¹N½BÀ8Ã/Ç&ËÐ +ÑÒÒ%Ó/Ó:ÔDÔPÕ]ÕkÖ|×ؤÙ»ÙÞÕóÓÿÒÿÑÿÑÿÑÿœš‘¡ƒ¨u°h·[½NÁBÅ7È-Ì$ÐÕÚâ ãää# å- å7 æB +æO ç]çmæ€æ•æ«æÄææçùçÿæÿæÿæÿ“¡…©w±i¹[ÀNÆAÊ5Î*Ò!ÖÛß ã ñ óóòò"ò*ò4ò?òLò\òmò‚ò˜ó­óÆôåôöôûôûôû‡©y²jº\ÂNÉ@Î3Ó(ØÝáä +èóýüû ûûüü&ü0ý<þIþZþmÿ‚ÿ˜ÿ¬ÿÀÿØÿäÿäÿä{²l»]ÄOÍ@Ò2Ù&Þâæ êíôÿÿÿÿÿ ÿÿÿÿ!ÿ+ÿ7ÿFÿXÿkÿ€ÿ•ÿ¦ÿ³ÿ»ÿ»ÿ»ÿ&ÿ$ÿ$ÿ'ÿ-ÿ +6ÿCÿPÿ^ÿkÿvÿÿŠÿ’ÿšÿ ÿ¦ÿ¬ÿ²ÿ¹ÿÂÿÍÿßÿìÿøÿÿýÿýÿýÿýÿýÿýÿýÿÿ#ÿ!ÿ!ÿ#ÿ)ÿ2ÿ @ÿ MÿZÿgÿsÿ}ÿ‡ÿÿ–ÿœÿ¢ÿ¨ÿ¯ÿ¶ÿ¾ÿÉÿÛÿêüöøÿ÷ÿ÷ÿöÿöÿöÿöÿöÿÿ"ÿ"ÿ!ÿÿ$ÿ/ÿ<ÿIÿVÿ bÿ nÿ yÿ ‚ÿ ‹ÿ ’ÿ +™ÿ +Ÿÿ +¥ÿ +«ÿ +²ÿ +»ý +Æû +Ô÷ +çó +ôð +ÿï ÿî ÿí ÿí ÿí ÿí ÿí ÿÿ%ÿ&ÿ%ÿ!ÿ !ÿ+ÿ7ÿEÿQÿ^ÿiÿtÿ}ÿ†ýŽü•ú›ù¡÷¨ö¯ô·óÂñÐíåèòæþäÿãÿâÿâÿáÿáÿáÿÿ)ÿ*ÿ)ÿ'ÿ(ÿ''ÿ#3ÿ ?ÿLÿXüdønöxóñ‰ïî—ìžê¤é¬ç´æ¿äÍàãÜñØþÔÿÒÿÑÿÐÿÐÿÐÿÐÿÿ-ÿ.ÿ. ÿ/ÿ/ÿ.!ÿ,-ÿ)9ù&Fô$Sï"^ë"iè!sæ!|ã!„á!Œà!“Þ!šÜ!¡Ú!©Ø!±Õ!¼Ó"ÉÐ"ßÌ#ðÈ#ýÆ$ÿÄ$ÿÃ$ÿÂ$ÿÁ$ÿÁ$ÿÁ$ÿÿ0ÿ2 ÿ3ÿ6 ÿ6ÿ5ý2%ô02í-?ç,Lâ+XÝ+cÙ*mÕ*vÒ*Ð*†Î*ŽÌ*•Ê*œÉ*£Ç*¬Å*¶Ã*ÃÂ*Õ¾+ëº+ù¸,ÿ¶,ÿµ,ÿ´,ÿ´,ÿ´,ÿ´,ÿÿ4 ÿ6ÿ9ÿ<ÿ< ý;ñ8è5)à47Ù3FÑ4RÍ3]É3gÆ3pÄ2xÁ2€¿2‡¾2¼2–º1ž¸1¦·1°µ2¼³2Ì ±2å ­3õ «3ÿ ª3ÿ¨3ÿ¨3ÿ§3ÿ§3ÿ§3ÿÿ7ÿ:ÿ>úAñAñ? æ<Û:Ð;1Ê<@Ä÷DæGßHÚFÙ@ ÍBÅD+¾D;¹DHµCS±B\®Be«Al©@t ¦@{ +¤?ƒ £?Š ¡>“Ÿ>œ>¥›>±š>¿˜>Ô–?í”?ü“@ÿ’@ÿ ’Aÿ ’Aÿ ’Aÿ ’Aÿ ÿ=ÿCéIÞNÓOÍNÊIÂI»J&µK6¯KC«JN§IW¤H`¡Gg žFo +œFv šE}˜E…–DŽ”D—’C¡C¬CºCÍ‹DèŠEú‰Fÿ‰FÿˆFÿ ˆFÿ ˆFÿ ˆFÿ ÿ@òGãOÔSËUÄTÀP¹O²P"¬Q2§Q?¢PJžOS›N\˜Mc +•Lj “Kq ‘JyŽJ€ŒI‰ŠI’ˆHœ†H¨…HµƒHÇHäJ÷€Jÿ€Kÿ€Kÿ€Kÿ€Kÿ€KÿÿCìKÝSÎXÄZ½Z¸W±TªV¥V.ŸV;›UF—TP“SXR_ +Qf ‹PmˆOt†O|„N…‚NŽ€M™~M¤|M²zMÃyMßxNôxOÿxOÿxPÿxPÿxPÿxPÿýFçOÖWÈ\¿_·_±\ªY ¤Zž[*™[8”ZCYLŒXU‰W\ +†Vc ƒUjTqSy}SzR‹xR•vQ¡tQ¯sQÀqQÛqRòqSÿqTÿrTÿrTÿrTÿrTÿóHãSÐ[Ä`ºc³c¬a¤^ _˜_'“_5Ž^@Š]J†\Rƒ[Y +€Z` }Yg{XnxXuvW~tVˆrV“oVŸnU¬lU½kVÕkVðkWÿkXÿlXÿlXÿlXÿlXÿñKßVÌ^Àd·g®h§fŸb˜c’d$c2‰b=„aG`O}_V z^] w]d u\ks\sp[{n[…lZjZœhYªfZºeZÑeZîe[þf[ÿf\ÿg\ÿg\ÿg\ÿíNÚYÈa¼g³j«l¢j™g’gg!ˆg/„f;eD{dMxcT ub[ raa paim`pk_yi_ƒf^Žd^šb^¨a^¸_^Î_^ì`_ýa_ÿa_ÿb_ÿb_ÿb_ÿêQÔ\Äd¹j°n§pžn”kj‡kƒk,~k8zjBviJshRpgY +mf` keghdnfdwdcacŒ_b˜]b¦[b¶ZbÌZbê[cü\cÿ\cÿ]cÿ]cÿ]cÿæUÏ_Áh¶n¬r¤tšsŽo‡o ‚o}p)yo5un?rmHnlPklW +ik^ fjedilaiu_h\hŠZg–Xg¤Vg´UgÊUgèVgûWgÿWhÿXgÿXgÿXgÿáXËc½k²r©v x–wˆss |txt&tt2ps=msFjrNgqU dp\ apc_oj\nsZn|WmˆUl”Sl£Ql³PlÈOlçQlúQlÿRlÿRlÿRlÿRlÿÜ\Çg¹o¯v¥{œ|‘|‚xzyuyrz#nz/ky:hyCdxKawR_wY +\v` YuhWtpTtzRs†Os“Mr¡Lr±JrÆJråKrùLrÿLrÿMrÿMrÿMrÿÔ`Âkµt«{¢—Œz~snk€h€,e€7b€@_H\~PY~WW}^ T|f Q|nO{xL{ƒJz‘HzŸFz¯EzÄDzäEyøFyÿFxÿGxÿGxÿGxÿÍe½p±y§€œ„’†††w†k†f‡ c‡`ˆ'^ˆ3[ˆ<X‡EV‡MS†TP†[N…c +K„l I„vFƒDƒBƒ@‚®?ƒÂ>‚â?÷?ÿ@€ÿ@€ÿ@€ÿ@€ÿÆk·v¬¢…—‰Œ‹sŽe] ZX!V‘-S8QANILPJXG`EŽi BŽs @ ><œ:¬9Á8á8‹ö8Šÿ9‰ÿ9‰ÿ9‰ÿ9‰ÿ¿r²}§†œŠ‘ކ‘z“m•_—T™O™NšLš'Jš2Hš<FšDDšLBšT@™\>™f;™p9˜|7˜Š +5˜š 3˜« 2˜¿ 2˜ß 1–õ 1•ÿ 1”ÿ 1“ÿ 1“ÿ 1“ÿ ¸z¬…¡‹–‹”—r›fZ N¢E¤ B¤@¤?¤*>¥4<¥>;¥G9¥O7¥X5¥a3¥l1¥y/¤‡-¤—,¤©+¤½*¤Þ*¢õ)¡ÿ) ÿ)Ÿÿ)Ÿÿ)Ÿÿ±‚¥‹š‘–ƒšvŸj¢^¦R©F«<­5¯ 3°2°!1°+/°5.±>-±H,±Q+±[)±g'±t&±ƒ$±”#±¦"²»!²Û!¯ó ®ÿ ­ÿ¬ÿ¬ÿ¬ÿª‹‘“—‡œz¢m§`«U¯I±>´3·*º$¼ "½!½ !½* ½3¾=¾G¾R¿^¿l¿|¿ŽÀ¡À¶ÀÓ¾ñ¼ÿ»ÿºÿºÿºÿ¡’–˜Šž}¤oªb¯V´J·>º3½*À!ÄÇË ÌÌÌ%Í/Í:ÍF ÍR Î` Îp ΃ +Η άÎÆÎèÍû Ëÿ Ëÿ Ëÿ Ëÿ˜˜ž¥q¬d³W¹J½>À2Ã(ÆÊÍÑ ÖÙ ÙÚÚ$Û.Û9ÜEÝRÞbÞsÞˆßß³ßÎàîßúßÿßÿßÿŸ¦s®eµX½JÂ=Å1É&ÌÐÔÙ Ýáãã äåæ"ç+é6ëCìRìbívîŒî¡ï·ïÑïëðöðöðö„§u¯g·Y¿KÆ<Ê/Î$ÒØÜ àãçëëíî ðñóô'÷3ù@úQûcüwýý£þ¶þÉÿßÿßÿßw°h¹ZÁLÊ<Ï.Ô"ÚÞâ æéìðöö÷øúû ýÿÿ#ÿ/ÿ>ÿOÿbÿwÿÿŸÿ®ÿºÿºÿºÿ#ÿ!ÿ!ÿ$ÿ*ÿ3ÿAÿNÿ\ÿhÿtÿ~ÿ‡ÿÿ–ÿœÿ¢ÿ¨ÿ®ÿµÿ½ÿÇÿÖÿçþóþþýÿüÿûÿûÿûÿûÿûÿÿ ÿÿÿ ÿ +%ÿ0ÿ=ÿKÿXÿdÿpÿzÿƒÿ‹ÿ’ÿ˜ÿžÿ¤ÿªÿ±ý¹ûÃúÐøã÷ñöüôÿôÿóÿóÿóÿóÿóÿÿÿÿÿÿ!ÿ ,ÿ 9ÿFÿSÿ_ÿkÿuÿ~ÿ†ÿŽÿ”þ›ü¡ú§ø®õµó¿ñËðßîîìùëÿêÿêÿéÿéÿéÿéÿÿ ÿÿÿÿÿ(ÿ4ÿ Aÿ Nÿ Zÿfÿpþyüú‰øö–óñ£ïªí²ê»èÈæÜäìâúà +ÿÞ ÿÝ ÿÝ ÿÜ ÿÜ ÿÜ ÿÿ#ÿ#ÿ!ÿÿÿ#ÿ/ÿ;ÿIüUø`ôjñtï|í„ë‹é’ç™æ ä§â¯à¸ÞÅÜÚÖìÒúÏÿÍÿÌÿËÿÊÿÊÿÊÿÿ'ÿ' ÿ% ÿ& ÿ%ÿ#ÿ (û5õBïOêZæeãnàwÞ܇َ֕ԜңЫεÌÁËÒÇèÃøÀÿ¾ÿ½ÿ¼ÿ¼ÿ¼ÿ¼ÿÿ+ ÿ+ÿ+ÿ- ÿ,ÿ)÷& î#-ç!:áHÛTÕ _Ñ hÎ qÌ!yÊ!È!ˆÆ!Ä!–Ã!žÁ"¦¿"¯½"»¼#ʹ#ãµ$ô³$ÿ±$ÿ¯$ÿ¯$ÿ®$ÿ®$ÿ®$ÿÿ/ÿ/ÿ2ÿ3ù2÷/ë+á'"Ø'2Ð)AË*NÆ*YÃ*bÀ*k½*s»*z¹*‚¸*‰¶*´*˜³*¡±*ª¯+µ®+Ĭ+Û¨,ï¦,þ¤,ÿ£-ÿ¢-ÿ¢,ÿ¢,ÿ¢,ÿÿ2ÿ3ù8é9â9Þ5Þ. Ñ/É1,Ã3;½3H¹4S¶3\³3e°3m®3t¬2{«2ƒ©2Ч2“¥2›¤2¥¢2° 2¾Ÿ2Ñœ3êš3û˜4ÿ—4ÿ–4ÿ–4ÿ–4ÿ–4ÿÿ5ÿ8ê>ßBÕBÏ?Í8Å8½:&·;6²ãEÔIËJÅGÁAº?³A!­B1¨C>¤CI BSA[›Ab˜@j–@q”?x’??ˆ +>‘ >› ‹>¦ ‰>³ ˆ>Ć?à„?ô ƒ@ÿ ƒ@ÿ +‚@ÿ ‚Aÿ‚Aÿ‚Aÿÿ<ëCÜJÌOÃP¼N·I±FªH¤I, I:›IE˜HN”GW’G^FeFl‹Es ‰E{ +‡Dƒ …D ƒD—C¢C¯~CÀ|DÚ{DñzEÿ zFÿ zFÿ +zFÿ zFÿ zFÿ õ>æHÓOÇT½U¶T°P©L ¢MN(˜N6”NAMKMSŠLZ‡Ka…KhƒJo €Jw ~I |I‰zH“xHŸwH¬uH¼tIÒsIîrJÿrJÿ rJÿ rJÿ rJÿ +rJÿ +òBàLÎSÁX¸Z°Y©V¢R›R–S$‘S2S>‰RG†QPƒQW€P^~Oe{Ol yNs wN{ uM…sMqMœoM©nM¹lMÎlMëlNýlOÿlOÿ lOÿ lOÿ lOÿ îEÜPÉW½\´^¬^¤[œV•VW!‹X/‡W;ƒVDVM|UTzT[wTbuSh sSp qRx oR‚mQkQ™iQ¦gQ¶fQËeRéeRûfSÿfSÿ fSÿ fSÿ fSÿ êIÕSÅZº_°b¨bŸ_–ZZŠ[…[,[8}[AzZJwYQtXXqX_oWf mWm kVv iVgUŠeU—cU¤aU´`UÈ_Uç`Vú`VÿaWÿaWÿ aWÿ aWÿ çLÑVÁ^¶c­f¤f›d^‰^„_€_)|_5x_?t^Gq]Oo\Vl\\j[c h[k fZs dZ}bZˆ_Y”^Y¢\Y²[YÆZYå[Zù[Zÿ\Zÿ\Zÿ \Zÿ \Zÿ ãOÍY¾a³f©i j—h‹bƒb ~czc&vc2sc<obElaLjaTg`Ze`ac_i +a_q _^{]^†Z^“X] W]°V^ÄU^ãV^÷V^ÿW^ÿW^ÿ W^ÿ W^ÿ ÞSÈ]»d°j¦mn“m…g~g xgtg#qh/ng9kgBhfJefRceX`e_^dg +\do ZcyXc„Ub‘SbŸRb®QbÂPbáQböQbÿRbÿRbÿ Rbÿ Rbÿ ÙVÄ`·h¬n£qšsqkxkrknlkl,hl7fl@ckH`kO^jV\j]Yie Wim Uiw Sh‚PhNgMg¬KhÀKhÞKgõLgÿLgÿMgÿ Mgÿ Mgÿ ÒZÀd³l©r v–wŠvyqqqkqhqfr(cr4`r=^rE[qMYqTWp[TpcRok +Pot Mn€KnIn›Gm«Fn¾EnÜFmôFmÿGmÿGlÿ Glÿ Glÿ Ì_¼i°q¥wœ{‘|†{uxkwew ax_x$]y0Zy:XyBVxJSxQQwXOw`LvhJvr +Hu} EuŠCu™Bu©@u¼@uÙ@tó@tÿAsÿ Asÿ Asÿ Asÿ Æd·n«v¢|—Œr€e]YW€ U€+S6Q€>O€FM€NKUI]FfD~pB~{ ?~ˆ =}— <}§ :}º:~Ö :|ñ :{ÿ :{ÿ :zÿ :zÿ :zÿ Ài²t§|’„‡†{‡n‡`‡U‡PˆNˆM‰&K‰0I‰:H‰BF‰JD‰RB‰Z@ˆc=ˆm;ˆx9‡†7‡• 5‡¦ +4‡¹ +3‡Ó +3†ð 3…ÿ 3„ÿ 3ƒÿ 3ƒÿ 3ƒÿ ¹p­z¢‚—‡ŠŒuŽhZO‘G’ +D’C“A“*@“4?“==“E;“M:“V8“_6“i4“u2’ƒ0’“.’¤-’·,’Ñ,‘ï+ÿ+Žÿ+ÿ+ÿ+ÿ³x§‚œˆ‘Œ‡z“m•a—U™I›?œ976ž"4ž,3ž52ž>1žG0ŸP.ŸZ-Ÿd+Ÿq)ž'ž&ž¡$žµ#žÎ#î#›þ"šÿ"™ÿ"™ÿ"™ÿ¬ ˆ•Ž‹’–ršeY N£B¤7¦.¨)©(©'ª"&ª,%ª5$ª?#ªH"«S!«^ «j«y«‹««±«Êªì¨ý§ÿ¦ÿ¦ÿ¦ÿ¥‰™”ƒ™užh¢\¦P©D¬9®/°&³µ···!·*·4¸>¸I¸T¹b¹q¹ƒ¹—¹¬ ¹Ä ¸ç¶ûµÿ´ÿ´ÿ´ÿœ’•†›y k¦^«R¯F²:µ/·%º½ÀÃ Æ +Å ÅÅ(Å2Æ=ÆIÆWÆfÆwƋƠŶÆÒÅïÅüÅÿÅÿÅÿ•–‰œ{£m©`¯S´F¸:».¾$ÁÄÇÊÎÐ +ÐÐÑÒ'Ó1Ô<ÕIÖXÖiÖ|Ö’Ö§Ö¿ÖàÖóÖþÖÿÖÿŒ~¤o«a²T¹F½9Á-Ä"ÇËÎ ÒÕÛÜÝ +Þßáâ$ä.æ:çIèYèkéé˜é­éÅéâéòéõéõ€¥q­cµU¼GÂ9Æ,Ê ÎÒÖÛßãåçèêë íïñ!ó+ö8÷HøZùmú„ú›ú¯úÂúÚúßúßt®e¶V¾HÆ9Ë+ÐÔÚ ßãæéíïñóõöø úýÿÿ(ÿ6ÿGÿZÿnÿ…ÿšÿ«ÿ¹ÿ¼ÿ¼ÿ ÿÿ ÿ!ÿ'ÿ0ÿ>ÿLÿYÿeÿpÿzÿƒÿ‹ÿ’ÿ˜ÿžÿ¤ÿªÿ°ÿ¸ÿÂÿÎÿâþðýûûÿûÿûÿúÿúÿúÿúÿÿÿÿÿÿ!ÿ-ÿ:ÿHÿUÿaÿlÿvÿÿ‡ÿŽÿ”ÿšþ ý¦ü¬û´ù½øÉ÷Üõìóøóÿòÿñÿðÿðÿðÿðÿÿÿÿÿ ÿÿ(ÿ6ÿCÿPÿ\ÿgÿqÿzü‚ú‰ø÷–õœô¢ó¨ñ°ð¸îÃìÓêçéõçÿæÿåÿåÿåÿåÿåÿÿÿÿÿÿ ÿ +$ÿ0ÿ>ÿKÿWþbúlõuò}ð„î‹ì‘ë—éžç¤æ¬ä´â¿àÍÞãÜòÚýØÿÖÿÕÿÕÿÕÿÕÿÿÿ ÿ ÿÿÿÿ*ÿ 8ýEøQô\îfêoæwäâ†àŒÞ“ݚ۠بձһÐÉÎàÌñÉ +ÿÇ ÿÆ ÿÅ ÿÅ ÿÅ ÿÅ ÿÿ! ÿ ÿÿ +ÿÿÿ#ö0ï>êJå Vá `Ý iÙ qÕ yÓ Ñ ˆÏ Í–ËʥȮƹÄÈÂß¾ò»ÿ¹ÿ·ÿ¶ÿ¶ÿ¶ÿ¶ÿÿ%ÿ#ÿ#ÿ$ÿ! +ýñè'á5ÚCÓOÎYËcÈkÅsÃ{Á‚À‰¾¼˜» ¹©·´µ´Ö°í­ü«ÿ©ÿ©ÿ¨ÿ¨ÿ¨ÿÿ(ÿ'þ*ï*ç'ç" äÙÏ-É<Ä I¿ S¼!]¹!e·"mµ"t³"|±"ƒ°"Š®"’¬#›«#¤©#¯§#¼¦$Σ$è %ùž%ÿ%ÿœ%ÿ›%ÿ›%ÿ›%ÿÿ,ÿ-í2â4Ú3Ó.Ò% +É%Á''»)6¶*C²+N¯+W¬+`ª+g¨+o¦+v¤+}£+„¡+Ÿ+•ž+Ÿœ+ªš+¶™,Ç—,â”-õ’-ÿ‘-ÿ.ÿ-ÿ-ÿ-ÿÿ0ò3ä:Ö=Ì<Ç9Ã1½.µ0!°20«3=§3I¤3R¡3ZŸ3bœ3iš3p™3w—2•2‡“2’2š2¥Ž2±3‹3܉4ò‡4ÿ†4ÿ†4ÿ…4ÿ…4ÿ…4ÿü3ë:ÜAÍDÃD½A¸;²7«8¥9+¡:8;Dš;M—:V”:]’:d:kŽ9rŒ9zŠ9‚‰9‹‡9•…9 ƒ9­‚9¼9Ó:î}:þ|;ÿ|;ÿ|;ÿ|;ÿ|;ÿô7å@ÒGÅJ¼KµI¯C©> ¢?@&˜A4”A?‘AIŽAQ‹@Y‰@`‡@g…?mƒ?u?}>‡}>‘{>œ z>© x>¸ +w?Í +u?ê +t@üt@ÿt@ÿs@ÿs@ÿs@ÿñ;ßEÌL¿O¶P®O§J DšE•F"F0ŒG<‰FE†FNƒFUE\~Ec|DjzDqyDywD‚uC sC™ +qC¦ pCµ nDÉ mDç mEú +lEÿlEÿlEÿlEÿlEÿì?ØIÇP»T±U©T¡P™J’IJ‰K,…L8‚KBKJ|JRyJXwJ_uIfsImqIvoHmHŠ lH– jH£ hH² gHÅ fIä fIø fIÿ fJÿfIÿfIÿfIÿèCÒMÂS·X­Y¤XœU“NŒN‡O‚O)P5{P?xOGvOOsNUqN\oMcmMjkMriM|gL‡ +eL“ cL  bL¯aMÂ`Má`Mö `Nÿ +`Nÿ `Nÿ`Nÿ`NÿãGÍP¾W³[ª]¡]˜ZS†R €S|S%yT1uT<sSDpSLmRSkRYiR`gQheQpcQyaQ„ +`P‘ ^Pž \P­[QÀZQÞZQõ ZRÿ +[Rÿ [Qÿ[Qÿ[QÿßJÉS»Z°_¦aa”^ˆW€V +zWvW"sX.pW9mWAjWIhVPfVWdV^bUe`Um^Uw\U‚ +ZUŽ YUœ WU«VU¾UUÛUUó UUÿ VUÿ VUÿ VUÿVUÿÛMÅW¸^­b£ešecƒ\{[u[q[n\+k\6h[?e[Gc[NaZU_Z\]Zc[ZkYYuWY€ +UYŒ TYš RYªQY¼PYØPYò QYÿ QYÿ +QYÿ QYÿQYÿÔQÂZ´aªf h—iŒg}`u_o_k_h`(f`3c`<a`D__L\_S[_ZY_aW^iU^sS^~ Q]Š O]™ M]¨ L^ºK^ÔK^ñ L^ÿ L]ÿ +L]ÿ L]ÿL]ÿÏT¾^±e§jm”m‰lxeodidedbd%`e0^e:\eBZeJXdQVdXTd_RdgPcqNc{ Lcˆ +Jc— Hc¦ Gc¸ FcÑ Fcï Fbÿ +Gbÿ Gbÿ GbÿGbÿÊXºb®i£nšqr„qtkiici _i\j!Zj-Xk6Vk?UkGSjNQjUOj]MjeJinHiyFi† Di• +Ch¥ Ai· @iÏ @hî Ahÿ +Agÿ AgÿBgÿBgÿÅ]¶fªm s–v‹w€vpreq\pXpVpTq(Rq3Pq<OrDMqKKqSIqZGqbEplCpwAp„?p“=o£ ;pµ +;pÍ +:oì ;nþ;nÿ;mÿ;mÿ;mÿ¿b±k¦sy’{‡|{|mz`xVwPwNxLx$Ky.Iy7Hy@FyHDyOByWAy`?xi‚C=‚K;‚S9‚\7‚f5‚q3‚1Ž0Ÿ.±-È-é-ü-~ÿ-}ÿ-}ÿ-}ÿ³n¨x’ƒˆ†}‡pˆc‰UŠKŠAŠ;‹9‹8Œ"7Œ,6Œ54Œ=3ŒF2O1X/b-Œn+Œ{*Œ‹(Œœ&Œ¯%ŒÆ%‹è%Šû%ˆÿ%ˆÿ%‡ÿ%‡ÿ­v£€—…‰‚ŒvŽi\’P“D”:•1–-—,—+—$*—-)—6(˜?'˜H&˜R%˜\#˜h"˜w ˜‡˜™˜¬˜Ã—å•ú”ÿ“ÿ“ÿ“ÿ§œ†‘‹‡z’m•a˜U›I=ž3Ÿ*¡!£ +££¤$¤-¤6¤?¤J¤U¥a¥p¥¥”¥¨¥¿¤â¢ø¡ÿ ÿ ÿ ÿ †•ŒŒ‘•qšdžX¡L¤@¦5§*©"¬®° ±±±"±+ ±5 ±@ ±K ±X +±g±x±‹± °µ°Ð°ï¯þ®ÿ®ÿ®ÿ˜Ž“‚˜ug¢Z§N«A­5¯+±!´¶¹ ¼¾ ½½¾"¾+¾6¾A¿N¿\¿m¿€¾•¾ª¾Â½ä½ö½ÿ½ÿ½ÿ’”…šx j¦\«O°B³5¶*¸ »¾Á ÄÇÉÉ ÉÊË"Ë+Í5ÎAÎPÏ`ÏrχÏϳÏÎÏëÎøÎþÎþˆ›z¢l¨^¯PµB¹5¼)¿ÂÆÉÌÐÓÕÖØ ÙÛÜÞ(à4âAâQãcãwäŽä¤äºåÔåêåóåó|£nª`²Q¹C¾5Â(ÆÉÍ ÑÕÚÞáâäåç éëíï$ò1ôAôSõfõ|ö“ö©÷¼÷Î÷ß÷ßp¬a´S»EÃ6Ç'ÌÐÕ +Ûßâåéìíðñóõ÷ +úüÿ!ÿ.ÿ@ÿSÿhÿ€ÿ–ÿ¨ÿ¶ÿ¿ÿ¿ÿ ÿ +ÿÿÿ$ÿ.ÿ<ÿJÿVÿcÿmÿwÿÿ‡ÿŽÿ”ÿšÿ ÿ¦ÿ¬ÿ´ÿ½ÿÉþÝýíüúûÿúÿùÿúÿúÿúÿúÿÿÿ ÿÿÿÿ*ÿ7ÿEÿRÿ^ÿiÿrÿ{ÿ‚ÿ‰ÿþ–ýœü¡û¨ù¯ø¸öÃôÒóçòöðÿïÿðÿïÿïÿîÿîÿÿÿÿ ÿÿÿ%ÿ3ÿ@ÿMÿYÿdýmûvù}÷„õ‹ô‘ó—ñð£îªì³ê½èËçáåñãýãÿâÿáÿáÿàÿàÿÿÿÿ ÿÿÿ ÿ-ÿ:ÿGùSõ^òhðpíxëé…èŒæ’å˜ãŸá¦ß®Ü¸ÚÅÖÙÔìÒùÑÿÏÿÎÿÎÿÎÿÎÿÿ ÿÿÿ ÿ ÿÿ&ü4ôAíMéXæbãjàrÞyÛ€Ù†Öӓњϡͪ˳ɿÆÐÅèÃöÁÿÀÿ¿ÿ¿ÿ¿ÿ¿ÿÿÿÿÿÿ ÿù +ð,æ9àFÜQÖ[ÒdÏlÌsÊzÈÆ‡ÅŽÃ–Á¿¦½°»¼¹͸ +åµ ÷³ ÿ± ÿ° ÿ°ÿ¯ÿ¯ÿÿÿÿúõö ëâ "Ø 1Ð >Ë JÇ UÄ^Áf¿m½t»{¹‚·ж‘´š²£°­¯º­ʪå§÷¥ÿ£ÿ¢ÿ¢ÿ¢ÿ¢ÿÿ"ÿ ð#æ$à!ÜÛ ÐÈ)Â7½D¹NµW³`°g®n¬u«|©„¨Œ¦”¤ž£¨¡´ŸÅžßšó˜ÿ—ÿ–ÿ•ÿ•ÿ•ÿÿ&ô'æ-Ú/Ï-Ê'ÇÁº"´1¯ =«!H¨"R¦"Z£#b¡#i #ož#wœ#~›#†™$—$™–$£”$°’%¿‘%ÖŽ&ïŒ'ÿ‹'ÿŠ'ÿ‰'ÿ‰'ÿ‰'ÿú)ì0Ý6Í8Ä7¾2º+µ%®'¨)+¤*8 *C+Lš+U˜+\–+c”+j’+q,x,,Š‹,”Š,Ÿˆ,«†,º…-΃.ê.ü€.ÿ.ÿ.ÿ~.ÿ~.ÿô.ä7Ò=Å?»?´<¯5©/ £/ž1&™23–2>’3H3P3X‹3^‰3e‡3l†3s„3|‚3…€33š}3§|3µz3Éy4æw5ùv5ÿu5ÿu5ÿu5ÿu5ÿð3Ý=ÊC¾EµF­C¦= 6™6”8!9.Œ99‰9C‡9L„9S‚9Z€9a~9h|9oz9wy9€w9‹u9–t9£r9±q9Äo:ân:÷n;ÿm;ÿm;ÿm:ÿm:ÿê9ÕBÄH¹K¯K§IŸD˜>‘<Œ=ˆ>*„?5??~?H|?Oz?Vx?]v>dt>kr>sp>|o>‡m>“k> j>®i?Àg?Þg?õf@ÿf@ÿf@ÿf?ÿf?ÿå=ÏF¿L´OªP¢O™J‘DŠA „B€C&}D2zD<wDDuDLrDSpCYoC`mCgkCoiCyhCƒfCdCcC«aC½`DÙ`Dó`Dÿ_Dÿ_Dÿ`Dÿ`DÿàAÊJ»P°S§UžS•O‹IƒG }GyG"vH.sH8qHAnHIlHPjHVhH]fGdeGlcGvaG€`G^Gš\G©[H»ZHÔZHñZIÿZIÿZHÿZHÿZHÿÛDÆM¸S­W£YšX‘T†N}KwKsLpL+mL5kL>hLFfLMdLSbLZaLb_Lj^Ls\K~ZKŠXK˜WL§VL¹ ULÑ TLïTMÿULÿULÿULÿULÿÕHÂQµWª[ \—\YSwOqOnPjP(hP2eP;cPCaPJ_PQ]PX\P_ZPgXPqWP{UPˆSP–RP¥PP· PPÎ OPíPPÿPPÿPPÿPPÿPPÿÐK¿T²Z§^`”`‰]|WrTlShTeT$bT/`T8^T@\THZTOYTVWT]UTeTTnRTyPT†NT”MT¤KTµKTÌ JTëKTþKTÿKTÿKTÿKTÿÌN»W®^¤bšd‘d†bw[mXfX bX_X"]Y,[Y6YY>WYFVYMTYTRY[QYcOYlMYwKX„IX’HX¢GY³FYÊEYêFYýFXÿFXÿGXÿGXÿÇR¸[«a¡f˜hŽiƒgr`h^a] \]Z]W])V^3T^;R^CQ^JO^RN^YL^aJ^jH^uF^‚D]C^ A^±@^È@^è@]üA]ÿA]ÿA\ÿA\ÿÃV´_¨fžj•mŠmlogdd[bVbTbRc%Pc/Nd8Md@KdHJdOHdWFd_EdhCdsAc?cŽ=cžr@=rH;rP:rY8rc6rm4rz3r‰1rš/r¬.rÁ.rã.qø.pÿ.oÿ.oÿ.oÿ³f§ov“zˆ|~}r}d|W{LzBy)…G(†P'†Z&†f$†s#†ƒ!†• †§†¼†Þ„õ‚ÿ‚ÿÿÿ¨tž}“‚‰…~ˆqŠe‹XŒL@Ž6Ž,% #"!% ‘.‘6‘@‘I‘T‘`‘n‘~’’¤‘¹‘ØôŽÿÿŒÿŒÿ£}˜ƒŽˆ„Œwi‘]“P•E—9˜.™%š› $-ž7žAžLžXžg žw žŠ ž +² Ì œì +›þ šÿ ™ÿ ™ÿœ„‘ŠˆŽ{’m–`™TœHŸ< 0¡&£¥§© « ªªª$ª.ª8ªDªPª^ªnªª•©ª©Á¨ä¨ö§ÿ§ÿ§ÿ•‹Œ•qšcžV¢J¦=¨1ª&«­°² µ¶ +¶¶··%·/¸9¸F¸T¸d¸v¸‹· ·¶·Ó¶ï¶ü¶ÿ¶ÿ’‚—tf¢X§K¬>¯1±&³¶¸ »¾Á ÃÄÄÅ$Æ.È:ÉGÉWÉiÉ}ɔȪÈÃÈäÈôÈýÈý…™wŸh¦Z«M±?µ1¸%º½À ÃÇÊÍÎÏÐ ÑÓÕ×"Ú-Ý9ÞIÞZßn߅ߜ߲ÞËÞæßôßôy¡k¨\¯Nµ@»1¾$ÁÅÈ ÌÏÓÙÜÝßáâä æèê í+ð:ñKñ^òsó‹ó¢ó¶óÉóáóámª^±P¹A¿2Ä$ÈÌÐÕÚÞâæéêìîðòôö ùüÿ)ÿ:ÿMÿbÿxÿÿ£ÿ³ÿÁÿÁÿÿÿÿÿ!ÿ+ÿ9ÿGÿTÿ_ÿjÿsÿ{ÿƒÿŠÿÿ–ÿ›ÿ¡ÿ¨ÿ¯ÿ¸ÿÄþÕüêûøúÿùÿøÿøÿöÿóÿñÿÿ ÿÿÿÿÿ'ÿ4ÿBÿOÿ[ÿeÿnÿvÿ~ÿ…þ‹ý‘û—úø£÷«ö³ô¾óÌñãïóîÿíÿìÿëÿìÿìÿëÿÿ ÿ ÿÿÿÿ"ÿ/ÿ=ÿJÿUý`úiøqöyôó†ñŒï’î˜ìŸë¦é®ç¸åÅãÚáíßûÞÿÝÿÝÿÝÿÝÿÝÿÿ ÿ ÿ ÿ ÿÿÿ)û7øDõPòZîcìkésçzå€ã†áŒß“ݙۡ٩ղҾÐÎÎæÌöÊÿÊÿÉÿÈÿÈÿÈÿÿÿ ÿÿÿÿ÷"ï0ë=èIäTà]ÝeÙmÕsÒzЀ·ÌʔțƤĭ¸Àǽ߼ñ»þ¹ÿ¸ÿ¸ÿ¸ÿ¸ÿÿÿÿ ÿ ÿ øèã(Ý6ØBÒMÎWÊ_ÇfÅmÃtÁz¿½ˆ»¹—·Ÿµ¨³³±Â¯Ø®í¬û«ÿªÿ©ÿ©ÿ©ÿÿÿ÷ìæåÝÔ Í-È:ÃF¿P¼X¹`·gµn³u±{¯‚® Ь ’ª ›¨ +¥¦ +°¥ ¿£ Ô¡ íŸþÿœÿ›ÿ›ÿ›ÿÿ÷êßÕÐÎ Ç À %º2¶?²I¯R¬Zªa¨h¦o¤v¢}¡…ŸŽ—œ¢š­˜¼—Дì’ýÿÿŽÿŽÿŽÿúî#ß(Ð*Ç'Á!½¹²­,¨8¤C¡LŸTœ\šb™i—p•w”’ˆ’©‹·Šʈç† ú„ ÿƒ ÿƒ ÿ‚ ÿ‚ ÿõ$å,Ó1Æ3¼1¶-°%¬ ¦¡ &œ!2™"=•"G“#O‘#V#]$d‹$k‰$rˆ$z†$ƒ„%ƒ%˜%¤€&²~&Å}'â{'÷y(ÿx(ÿx(ÿx(ÿx(ÿï+Ý3Ê9¾;´:­6¦/¡(›'–( ‘)-Ž*8‹+Bˆ+J†+R„+X‚,_€,f,m},u{,~z,ˆx,”v- u-®t-Àr.Ýq.ôp/ÿo/ÿo/ÿn/ÿn/ÿè1Ó:Ã?·A®A¦>ž8—1‘.Œ/ˆ0(„132=2F}2M{2Ty2[w2au2it2pr2yp3„o3m3l3«j4¼i4Õh5ñg5ÿg5ÿf5ÿf5ÿf4ÿâ6Ì?½D²G¨G D˜?9ˆ4 ƒ56$|7/y79w8Bt8Ir8Pq8Wo8^m8el8mj8uh8€g8Œe8™d9¨b9¹a:Ð`:î`:ÿ_:ÿ_:ÿ_:ÿ_:ÿÝ;ÇC¹I®K¤L›J’E‰?: {:w; t<+r<5o=>m=Fk=Mi=Sh=Zf=ad=ic=ra=}`=‰^=–]>¥[>¶Z>ÌZ?ìY?þY?ÿY?ÿY?ÿY>ÿÖ?ÃGµLªP P—OŽK„Ez@u?q@m@(kA2iA;gABeAIcAPaAW`A^^Af]Bo[BzZB†XB”WB£UC³TCÉTCéSCýSCÿTCÿTCÿTCÿÐB¿J²P§ST”SŠPJuEnCkDgE$eE.bE7aE?_EF]EM[ETZF[YFcWFlVFwTFƒSF‘QF¡PG±OGÇNGçNGûNGÿNGÿOGÿOGÿÌF»N¯T¤WšX‘W†T{NpJiH eHbI!_I+]I4[I<YICWIJVIRUJYTJaRJjQJuOJNJLKŸKK°JKÅIKæIKúIKÿJKÿJKÿJKÿÈI¸Q¬W¡[˜\Ž\ƒYvSkNdM +_L\MZM(XM1VM:TMASNHRNOPNWON_MNhLNsJOIOGOFO®EOÃDPäDOùEOÿEOÿENÿENÿÄLµU©[Ÿ^•`‹`€^rWgS^QYQWQTQ%RR/QR7OR?NRFMSMLSUJS]ISfGSpES}DS‹BS›AT¬@TÁ?Tâ?Tø@Sÿ@Sÿ@Sÿ@RÿÀP²X¦^œb’eˆe}bn\cYYVTVQVOV"MW,LW4JW<IXDHXKGXSEX[DXdBXn@X{?X‰=X™^a<^l;^x9^‡7^—6^©5^½4_Ý4^õ5]ÿ5]ÿ5\ÿ5\ÿ¸Yªa g–lŒnnvlgi\fQdHb DbBbAc$?c->c5=d=s4r +1s0s/s#.s+-t4,t<+tD)tM(uW'uc%uo$u"u!u¢ u·uÒtñsÿrÿ qÿ qÿ©kžs”yŠ|€~tgZM~C~8}/}(} &}$}#~%"~-!~6!~?HR^kzŒŸ³Î~ï|ÿ{ÿ{ÿ{ÿ¤ršz…‚{„m†`‡T‡Hˆ<ˆ2ˆ(ˆ ˆ‰‰‰Š&Š.Š7ŠAŠL‹X‹e‹u‹‡Š› Н ŠÈ ‰ê ‡ü‡ÿ†ÿ†ÿŸ{”Š…€ˆs‹eYLA’4’*’!“”–— — — —& —/ +—9 —D—P—^—n–€–”•¨•¾”à”ô“ÿ’ÿ’ÿ˜‚Žˆ…Œwj’]•P˜Dš8›,œ"ž  ¢£ ££££'£1¤<¤H¤V¤e£w£‹£ ¢¶¡Ò¡ð û ÿ ÿ‘ЉŽ{’m—`›SžF¡9£-¤#¦¨ª ¬®¯¯ ¯°° ±(±2²>²L²[²l²±—±¬°Æ°è¯÷¯ÿ¯ÿŒ•qšcŸU¤G¨:ª-¬"®°³ +µ¸»»¼¼ ½¾¿À'Á2Â@ÃOÃ`ÃtËáøÂ×ÂïÂúÁþ—se£W¨I­;±-³!¶¹»¾ÁÅÇÈÉÊË ÍÎÐÓ&Ö2ØAØSÙfÙ|Ù”Ù«ÙÃÙáÙðÙôvŸg¦Y¬K²<·.º!½À ÄÇÊÎÒÕÖÙÛÝßá ãæé$ì2íCîVïkï„ïœï²ïÆïÝïäj¨[¯L¶>¼/À ÄÈ ÌÐÔÙÞâåæèéìîðò õøü#ÿ3ÿFÿZÿqÿ‰ÿŸÿ±ÿÀÿÆÿÿÿÿÿÿ(ÿ7ÿDÿQÿ\ÿfÿoÿwÿ~ÿ…ÿ‹ÿ‘ÿ—ÿÿ¤ÿ«ÿ´þ¿ýÎûæùöøÿ÷ÿ÷ÿ÷ÿðÿìÿéÿÿÿÿÿÿÿ$ÿ2ÿ?ÿLÿWÿaÿjÿrÿyý€ü†úŒù’ø˜öŸõ¦ô®ò¹ðÆîÞíðëþêÿéÿéÿçÿãÿàÿÿÿ ÿ ÿ ÿÿÿ,ÿ:ÿFþRû\øeõlótñzïî‡ìê“éšç¡æ©ã³á¿ßÐÝéÚùÙÿ×ÿÕÿÕÿÕÿÔÿÿ +ÿÿÿ ÿÿû&÷4ô@òLîVê_çgänâtà{Þ܇Ú֔ԛѣϭ̸ÊÇÈàÆóÅÿÃÿÃÿÃÿÃÿÃÿÿ ÿÿÿÿ óîê-æ:âEÞOÙXÔ`ÑhÎnÌtÊ{ÈÆ‡ÄŽÂ–Àž¾§»²¹À·Ôµì³û³ÿ²ÿ²ÿ±ÿ±ÿÿ ÿÿ÷ôç àÚ%Ó2Î>ÊIÆRÃZÀa¾h¼nºt¸{¶´ˆ²°™®¢¬­ªº¨Ë¦æ¥÷¤ÿ£ÿ¢ÿ¢ÿ¢ÿÿû ïæ ß ÚÐÉÄ*¿7»B·K´T²[¯b­h«n©u¨{¦ƒ¤‹¢” žž¨œµ›Æ™â˜ô–ÿ• ÿ” ÿ” ÿ” ÿüñãÖÌÇÄ +½·!².®:ª D§ M¤ +U¢ +\  +bž iœ o› v™ ~— †– ” š’ ¦‘ ³ Åâ‹ö‰ÿˆÿ‡ÿ‡ÿ‡ÿöç Ö$È%¿"¹´± ª¥'¡3>šG˜O•V“\‘ciŽpŒx‹‰‹‡–†¢„°ƒÁÝô}ÿ|ÿ|ÿ{ÿ{ÿï!Ý)Ê-¾/µ,®'¨ £ž™!”-‘8ŽA‹I‰P‡W…^„d‚k€s|}†|‘zžx«w¼v Ôt!ðr!ÿq"ÿq!ÿq!ÿq!ÿè(Ò0Â5·7­5¥1ž+˜#’ ‰!'†"2ƒ#<#D~#K|$R{$Yy$_w$fv%nt%ws%q&o&™n&§m'¸l'Îj(íi)ÿh)ÿh)ÿh(ÿh(ÿá.Ë6¼;±=§=Ÿ9—3-ˆ' ƒ'("|)-y*7w*?u*Gs+Nq+Tp+[n+bl+jk,ri,}h,‰f-–e-¤d.´c.Êa/é`/ý`/ÿ`/ÿ`/ÿ`.ÿÚ4Å<·A¬C¢C™@:ˆ4€.z-w.s/)q03o0;m0Ck1Ji1Qg1Wf1^d1fc2oa2y`2…_2’]3¡\3±[4ÆZ4æY5ûY5ÿY4ÿY4ÿY4ÿÒ8À@³E¨HžH•F‹@‚;y5s3o4l4%i5/g57e6?c6Fb6M`6T_6[]7c\7k[7vY7‚X8V8žU8¯T9ÃS9äS:ùS9ÿR9ÿS9ÿS9ÿÍ<¼D¯I¤LšL‘K‡F}@s;l8 h9e9"c:+`:4^:<]:C[:JZ;PX;XW;`V;hUÁM>áM>øM>ÿM>ÿM=ÿM=ÿÉ@¸H¬M¡P—QŽO„KyEn@f= b=_=\>(Z>1X>8W>@U?FT?MS?UR@]P@fO@pN@|LAŠKAšJA«IB¾HBÞHBöHBÿHBÿHAÿHAÿÅDµK©PžT•T‹S€PuJjFaB\AYBWB%UB.SB5QB=OBCOCKNCRMDZKDcJDnIEzGEˆFE˜EF©DF½CFÜCFõCFÿCFÿCEÿCEÿÁG²O¦TœW’XˆX~UqOfJ\FWFTFQF"OF+NF3LG:KGAJGIIHPHHXGHaEIlDIxBI†AI–@J§?J»>KØ>Jó>Jÿ>Iÿ?Iÿ?Iÿ½J¯R£X™[]†\{YmSbOWLQJ NJLKJK(IK0GK8FL?ELFDLNCMVBM_@Mj?Mv=N„RT2]F1^N0^W/^b-^n,_}*_Ž)_ (_³'_Ì'_í'^ÿ']ÿ(]ÿ(\ÿ­\¢d˜jŽnƒoyonn`kTiIg?e5c 2c0c/d!.d)-d1,d9+eB*eJ(eT'e_&fk$fz#f‹"f f±fÉfë eþ dÿ cÿ!cÿ©bžj•pŠs€uuuit\rOqDo:n0m)l 'l&l%m$$m,#m4"m=!nF nPn[ngnvn‡ošo®oÆnémülÿkÿkÿ¤išqv†y|{q{d{WzJy?x5x+w"vvwww&w.w7x@xJxVxcxrxƒx—x«xÃwævúuÿuÿtÿŸq•x‹|‚wj‚]‚P‚D‚8‚.‚$‚‚‚ ƒƒƒƒ'ƒ0 ƒ9 ƒD ƒP ƒ] ƒlƒ~ƒ‘‚¥‚»Ûò€ÿÿÿšy~†ƒ}…o‡b‰UŠI‹=Œ1Œ&ŒŽ +  )2=IVevŠŽŸŽ´ÏŒîŒû‹ÿ‹ÿ”€‹…‚‰tŒfY‘L“@•4–(–—˜š +›œ œœœœ"+5@N\nœœ—œ¬›Æšè™ù™ÿ˜ÿŽˆ†Œxj”\—OšB6ž)Ÿ¡¢¤¦¨©© +©©ªª"«+¬6¬D¬S¬c¬w«Ž«¤«¼ªÞ©ô©ý©ÿ‰Ž{“m—_œQ D¤6¦*¨©« ®°²µµµ¶ ·¸¸º!»+¼8½G½X½k½½™½°½Ì¼ê¼÷»þ~•p›b S¥Fª8­*¯±´ ·¹¼¿ÂÂÃÄÆÇ ÈÊÌ Ï+Ð:ÑKÑ^ÒsÒ‹Ò¤Ó»ÓØÓíÓösd£V©G¯9³*¶¹¼ +¿ÃÆÉÍÏÐÒÔÖÙÛÞáäè*è<éOédê|ë•ë¬ëÂìÕìåf¦X¬I³;¹+¼ÀÄ ÈÌÏÓÙÝàáãåçêìîñ õøû+ý>þSþjÿƒÿ›ÿ®ÿ¾ÿÊÿÿÿÿÿÿ&ÿ4ÿAÿMÿXÿbÿkÿsÿzÿÿ‡ÿÿ“ÿ™ÿ ÿ§þ¯üºúÉùáøó÷ÿöÿõÿñÿéÿäÿáÿÿÿ ÿ ÿÿÿ!ÿ.ÿ<ÿHÿSÿ]ÿfþmüuû{ù‚øˆ÷Žö”ô›ó¢ñªï´íÁëÕêìèüçÿåÿæÿàÿÙÿÔÿÿ ÿÿÿ ÿÿÿ)ÿ6ÿBûN÷Wô`òhïoívì|ê‚èˆçŽå•ãœá¤ß®Ý¹ÚÊ×äÔöÑÿÐÿÐÿÏÿËÿÇÿÿÿÿÿÿ úö#ó0ð<íGéQåZâbßiÝoÚvØ|Ô‚ÒˆÐ͖˞ɨdzÅÁÂØÀï¿þ¾ÿ½ÿ¼ÿ¼ÿ¼ÿÿÿÿÿôíèã)ß5ÛAÖKÑTÍ\ÊcÈiÆoÃuÁ{¿‚¾ˆ¼º˜¸¢µ¬³¹±Ë¯ç®ø¬ÿ«ÿ¬ÿ¬ÿ«ÿÿÿöîçß ÖÏ"Ê.Ç:ÃDÀM¼U¹\·cµi³o±u¯{­‚«Š©’§œ¥¦£³¡ÃŸÞžòÿœÿœÿ›ÿ›ÿÿö é ß +ÕÎÆÀ»'·2³=°F­OªV¨\¦c¤h¢o¡uŸ|„›™——¢•®“½‘ÓíüŽÿÿÿÿùêÜÍľ º +´®ª*¦5¢? HP›V™\—c•i“o‘vŽˆŒ’Šžˆª†º…Ï„ +ë‚ ü ÿ€ ÿ€ ÿ€ ÿñàÍ Á!¸±¬¨ ¢ #™ +.• 8“ A IŽ PŒ WŠ ]ˆ c‡ j…qƒz‚„€~›|¨{¸zÎxìvÿuÿtÿtÿtÿèÓ&Ã*¸*®(§# ›–Œ'‰2†;„C‚K€Q~W|^{eylwtv~tŠr–q¤o´nÉmèküjÿjÿjÿjÿà&Ê-¼1°3§1Ÿ,—&Š …"~,{6y>wEuLsSqYp`ngmpkzj…h’g e °d!Åc!äb"úa"ÿa"ÿa"ÿa"ÿ×,Ã4¶8ª9¡8˜5/ˆ(€!{ w!t"'q"1o#9m#Ak#Hi#Nh$Uf$[e$cc%kb%ua%_&Ž^&]'­[(Á[(àZ)÷Y)ÿY)ÿY)ÿY(ÿÏ2¾9±=¦?œ?“<Š60y*r&n'k(#i(,f)5e)<c)Ca*J`*Q^*W]*_\+hZ+rY,}X,‹V-šU-ªT.½S.ÜR/õR/ÿR.ÿR.ÿR.ÿÊ6º=­B¢D˜DA…<{7r1k, g-d-a.(_.1].9\/@Z/FX/MW/TV0\U0dS1nR1zQ1ˆP2—N2¨M3»M4ØL4óL4ÿL4ÿL3ÿL3ÿÆ:¶B©FžI•I‹GBw=m7d2 `2]2Z2%X3-V35U3<S4CR4JQ4QP4YO5aM5lL6wK6…J7•H7¦G8¸G8ÓF8ñF8ÿF8ÿF8ÿF7ÿÁ>²E¦JœM’MˆK~GsBi=_7Z6W7T7"R7*P72O89M8@L8GK8NJ9VI9_H:iG:uE;ƒD;“C<¤B<¶A=ÐA=ðA=ÿA<ÿA<ÿA<ÿ¾B¯I£N™PQ…P{LoFeBZ=T;Q;O;M;'K;/I<6G<=G\C>gB?s@???‘>@¢=@µCe=Cq;C:D9D 8E³7EË7Eì7Eÿ7Dÿ8Dÿ8Cÿ·I©PžU”X‹Y€XvVhP]LSHJE FDDDBD"AE)?E1>E8=E?I=I;J&:J.9J58K=7KD6KM4LV3L`2Ll1Mz0M‹.Mœ-N¯,NÇ,Né,Mý-Mÿ-Lÿ-Lÿ°P¤X™]a†b{ap_b[XXNUCQ;O 8O6O5O#4P+3P22P:1PB0QJ.QS-R],Ri+Rx)Rˆ(Sš'S­&SÅ&Sç&Sü'Rÿ'Qÿ'Qÿ¬U \–bfƒgxfme`aU^J[?X5V1U0V.V-V',V/+W6*W>)WG(WP&XZ%Xg$Xu#Y†!Y˜ Y«YÂYåXú Xÿ Wÿ!Wÿ¨Zb“gŠkluljk]hQeFc;`1^*] (]&]%^#$^*#^2"^:!^C _L_W_c`q`‚`•`©`À`â_ù^ÿ^ÿ]ÿ¤`™hn†p|rrrfqXnLlAk6i-g#fffff%f-g5g>gHgSh_hnhh’h¦h½hàg÷fÿeÿeÿŸg–oŒs‚vxxmx`wSvFt;s1r'qqp +pppq'q/q8qBqN q[ qi qz +qq¡q¶pÒpïoÿ nÿ nÿ›o‘u‡y~|t~f~Y~M~@}5}*|!||| | +| ||!|)|2|=|H|U|c|t|‡{œ{±zËyëyúyÿxÿ–wŒ|ƒ€yƒl„^…Q†E‡9‡-‡#‡‡‡ ˆ‰ +‰‰ˆˆ#‰,‰6‰BˆNˆ]ˆmˆ‡•‡«†Ä…æ„ø„ÿ„ÿ~‡ƒ~‡q‰c‹VI<‘0‘$‘’“ ”•–– •–––$–.–9–F–U–e–x•Ž•¤”¼“ß“õ’ÿ’ÿ‹†ƒŠugY”L—?™2š&›œ Ÿ ¢£££ £¤¤¥%¦/¦<¦K¦[¦n¥„¥›¤³£Ð£ï¢ü¢ÿ†x‘j•\™NA 3¢&£¥§ +©«­¯°°°± ²³´µ$·0·?·P·b·x·¶©¶Â¶ä¶õµþ{“m˜_P¢B¦4©&«­¯ ²´·º¼½¾¾ÀÁ ÄÆÉ$Ê2ËCËUÌj̜̃˵ÌÎÌéÌöp›a¡R¦D«6°'²µ¸»¾ÁÄÈËËÍÎÐÒÕØ +ÛÞâ$ã5äHå\æsææ¥æ¼æÓççc¤UªF°8µ(¹¼ÀÄÇËÏÔØÜÝßáãåèêíñõø%ù8ùMúcû|ü•üªü»ýËÿÿÿÿÿÿ#ÿ0ÿ=ÿIÿTÿ^ÿfÿnÿvÿ|ÿ‚ÿ‰ÿÿ•þ›ý£û«úµùÃ÷ÛöðôÿóÿòÿìÿâÿÜÿÖÿÿ ÿ ÿÿ +ÿÿÿ+ÿ8ÿDÿOÿYþaüiúpøw÷}öƒô‰òñ–ïí¥ì¯ê¼èÍæèäúãÿâÿàÿÕÿÎÿËÿÿÿÿÿÿÿÿ%ý2û>÷IóSð\îcìjêqèwæ}äƒâ‰àÞ—ÜŸÙ©Ö´ÓÄÐÞÎóÌÿËÿÊÿÈÿÂÿ¾ÿÿÿÿÿû öñ í,ê8çCãMàVÜ]ÙdÕkÒqÐvÎ|̃ʉȑƙģÁ­¿»½Ï»ë¹ü·ÿ·ÿ¶ÿ´ÿ±ÿÿÿÿöîçáÛ%Õ1Ò<ÎFÊOÇWÄ^Ád¿j½p»v¹|¸ƒ¶Š³“±œ¯§­³«Å©á§õ¦ÿ¥ÿ¤ÿ¤ÿ¤ÿÿüñèàÔ ÌÇÂ*¿5¼?¸HµP³W°^®d¬i«o©u§|¥„£Œ¡–Ÿ¡­š¼˜Ò—î•þ”ÿ•ÿ•ÿ•ÿüðãÕÌž¸³#¯.«8©A¦J£Q¡WŸ]c›išo˜v–}”†’›Ž§Œ¶ŠÉˆç‡ù‡ÿ†ÿ†ÿ†ÿô äÑŽ¶±«¦¡&ž1š:˜C•J“Q‘W]ŽcŒiŠpˆw†€„‹‚–€£~±}Ä{ázõzÿyÿxÿxÿêÖÆº±ª¤ Ÿ ™•‘)3‹<ˆD†K„Q‚W]c}j{rz|x †v ’t + s +¯q Áp ßo önÿmÿmÿmÿáË#¼&±&¨$ ™“Ž ˆ „ " ,~ 5|=zExKwQuXs^qepnnwl‚kih­fÀeßdöcÿcÿbÿbÿÖ$Ã*µ.ª/ -˜("‰‚}yv's0q8o?mFlLjShYgaeidrb~a‹_™^©\¼\ØZóZÿYÿYÿYÿÍ*½1¯5¤6›4’1‰+%ysol"i+g3e;dAbH`N_U]\\d[nYyX‡V –U ¦T!¸S!ÒR"ñR#ÿR#ÿR"ÿR"ÿÈ/¸6«: <–;8ƒ2z-r&j f c!a!&_"/]"6["=Z#DX#JW#QU#XT$aS$jQ%vP%ƒO&“N'£L'µL(ÎK(îK)ÿK(ÿK(ÿK(ÿÃ4³;§?œA’@‰>9u3l-c'^&\&Y'"W'+U(2T(9R(@Q(FP)MN)UM)]L*gK*sI+€H+G,¡F-³E-ËE.ìD.ÿD.ÿE-ÿE-ÿ¾8°?¤C™EE…C{>q9g4^.X+U+R,P,'O,/M-6L-<J-CI-JH.RG.ZF/dE/pC0~B0A1ž@2±?2È?3ê?3þ?2ÿ?2ÿ?2ÿ»<­C¡G–IŒIƒHxDm>c9Z4R0 O0L0J0$I1+G12F19D1@C2GB2OA3X@3b?4m>4{=5‹<6œ;6¯:7Æ97è97ü:7ÿ:6ÿ:6ÿ·@ªFžK”MŠN€LuHjC`>V9M5 I4G5E5!C5(A5/@56?6=>6E=7M<7U;8`:8k99y89‰7:›5:­5;Ä4;æ4;û5;ÿ5:ÿ5:ÿ´C§JœN’QˆR~PsMgH\DR?H:D9A9?9>9&<9-;:4::;9;B8;J7‡1>™0?«/?Â/?ä/?ú0?ÿ0>ÿ0>ÿ±G¤M™RU†V|UqRdLYIOEE@?> <>:>9>#7>*6?15?84?@3@H2@Q1A[0Ag.Bu-B…,C—+Cª*CÀ)Dâ*Cù*Cÿ+Bÿ+Bÿ®J¡Q—VYƒZyZnWaRWNMKCG:C +6C4C3C 2D'1D/0D6/E=-EF,EO+FY*Fd)Gr(Gƒ&G•%H¨$H¾#Hà$H÷%Gÿ%Gÿ&GÿªOŸU”Z‹^_w^k\_XUUKQ@M5J0I.I-I,I$+J+*J3(J;'KC&KL%KV$Lb#Lp!L€ M“M¦M»NÝMöLÿLÿ Kÿ§SœZ’_ˆc~dtcia\^R[GXf3e)c a` ````&`.a7a@aKaX af bv b‰ +a a²aËaë `ý +_ÿ _ÿ›f’mˆq~suujt\sOrCp8o-n$lkkj j j j! +j) j2j<kGkSkakqj„j˜j­iÆiçiøhÿhÿ—ms„w{zp{c{VzIz=y1x'wvvv v +vvvv$u,u6uAuNu\ulu~t“t¨sÀsãr÷rÿqÿ’u‰z€~v€i[‚N‚A‚5ƒ)‚‚ +‚ƒ‚ ‚‚‚‚&‚/‚;‚G‚Uex€¢ºÝ~ô}ÿ}ÿ|„{„n†`ˆRŠE‹9Œ,Œ!ŒŒ Ž (2?M]p…ŽœŽ³ÐŒð‹þ‹ÿˆ„€ˆr‹dVH“;•.–"–—˜™› žžŸŸ) 5 C T fŸ{ž“ž«Æéœùœÿƒ‹uŽg’Y–K™=œ0ž#Ÿ ¢¤¦¨ªªª««¬ ­®¯±)±8±H±Z±o±ˆ± °º¯Ý¯ò¯ýx‘j–\šMŸ?£1¦#§©«®°²µ··¸¹º¼½ ¾ÀÃÅ+Å<ÆNÆbÆzƔƭÆÈÅåÅól™^žO¤A¨2¬$¯± ´·º½ÀÄÆÆÈÉËÌÎÐÓ ØÜÞ-ß@àTáká…áŸá·áÏáæ`¡R§C­4²%µ¹ ¼¿ÃÇÊÏÓÖ×ÚÜßáãæéì ðóô1öF÷\øtøù¦ù¸øÉÿ ÿ ÿ ÿÿÿÿ,ÿ9ÿEÿPÿYÿbÿjÿqÿwÿ~ÿ„þŠýü—úžù§÷±ö¾õÒóìñþðÿðÿæÿÜÿÒÿÍÿÿÿÿÿÿÿÿ'ÿ3ÿ?ÿJþTû]ùd÷kõróxò~ð„ïŠí‘ì™ê¡è«æ¶äÇâãà÷ÞÿÝÿÙÿÌÿÅÿÁÿÿÿÿÿÿ ÿü"ù.ö9óEïNìWé^æeälâràwß~݄ۋؒ՛Ҥϯ;ËÕÉïÇÿÅÿÄÿ¾ÿ¸ÿµÿÿÿÿþ÷ ñëç(ä3á>ÝHØQÓXÐ_ÎeÌkÊqÈwÆ}ĄŒÀ”¾ž»¨¹¶·Èµæ³ú±ÿ°ÿ°ÿ¬ÿ©ÿÿÿúñèà ØÑ"Í-Ê7ÆAÂJ¿R½Yº_¸e·jµp³v±}¯…­«—©¡§®¥¾¢Ø òŸÿžÿžÿžÿœÿÿ÷ëáÖË Å¿»&·1´:±C®K«R©X§^¦d¤i¢p vž~œ†š˜›–§”¶’ÊéüŽÿÿŒÿÿøéÛÌĽ¶ °« §*¤4¡<žDœKšR˜X–]•c“i‘pw€‹Š‰•‡¡…¯ƒÁà€õÿÿÿÿî +Üʾµ ¯©£ž™#–,“5>ŽEŒKŠQˆW†]…cƒjqz}„{yœwªu»tÔrðrÿrÿqÿqÿãÍ¿³ª£ +— +‘‰%…/ƒ7€>~E}K{QyWx]vdtkrtpn‹l˜k¦i·hÎgìfýf ÿe ÿe ÿÖÄ ¶#«#¡ ™’Œ† €|y(v0t8r ?p Eo +Lm +Rl +Xj _h gg pe zc ‡b •` ¤_ ¶^ Î\í\ÿ[ÿ[ÿ[ÿÍ!¼(¯+¤+š)’$‰‚{u q n!k*i2g9e@dFcMaS_Z^b\k[vYƒX’V¢U´TËSìRÿRÿRÿRÿÆ(¶.©2Ÿ2•1Œ-ƒ'z!rk gda%_-]4\;[BYHXOVVU^SgRrPOŽNŸL°KÇKéJýJÿJÿJÿÁ-±4¥7š87‡4}/t)l#d^[Y!W)U0T7R=QDOKNRMZKcJnI|G‹F œE!®D!ÄC"æC"üC"ÿC"ÿC"ÿ¼2­8¡<—>=ƒ:y5o0f*^$W T Q O!%N!,L!3K":I"@H"GG"NF#WD#`C$kB$yA%ˆ?&™>&«='Á='ã=(ú=(ÿ='ÿ='ÿ¸6ª=ž@”BŠB€?v;l6b0Y*Q% M%K%I%!G&(E&/D&6C&=B'DA'K?(T>(]=)i<)v;*†9+—8+©7,¿7,à7,ø7,ÿ7,ÿ8,ÿµ:§@œD‘F‡F}Ds@h;_6U1L+G)E*C*A*%?*,>+3=+9<+A;,H:,Q9-[8.f6.s5/ƒ4/•30§20½11Þ11÷21ÿ20ÿ30ÿ±>¤D™HJ…J{IpEe@[;R6H1B. ?.=.;."9/)8//7/660>50F41O31Y22d12q03/4“.4¦,5»,5Û,5õ-5ÿ-4ÿ.4ÿ®A¢H—LNƒNyMnJbEX@N<E7=3 93736343&33-24414<05D/5L.6V-6b,7o+7*8‘(8¤'9¹&9Ø'9ô(9ÿ(8ÿ)8ÿ«EŸK”O‹RSwRlO_IVFLBB=88482818/8$.8+-92,99+:A*:J);T(;_'Ô!>ó"=ÿ#=ÿ#<ÿ¨IO’S‰VWuVjS]OSLJH@D6@/= -=+=*>!)>((>/'>7&??$?H#@R"@]!Aj AzAB BµBÑBñBÿAÿAÿ¥MšSX†[}\r[gX[TQRHN=J3G*C &C%C$C#D%"D,!D4 E<EEEOFZFhFxGŠGžG³HÎGïGÿFÿFÿ¢R—X]„`zap`e^YZOXDT9Q/N&K JJJJ!K(K0K8KBLLLWLeMuMˆMœM±NÌMîMÿLÿLÿžW”]‹bewfmfcdVaJ^?[5X+V"TR +RRRR$R,R4R>SHSTSb Tr T„ T˜ T­TÅ Tç +Sû Rÿ Rÿ›]‘dˆh~ktlkl_jRgEd:b0`&^][Z ZZ [ [' [0 +[: [E[Q[^[m[€[”[¨[ÀZâZöZÿYÿ—dŽk„n{prrgqYpLn@l5k*i!gff e +eedd#d,d5d@dLdZdid{dc¤c»bÝbôbÿaÿ“l‰q€uxwmx`wRvFu9t.t#rqq qqp ppoo&o0o;oGoTodounŠm m¶lÖkòkÿkÿŽs…x}{s}e~X~K~>~2~&}|| |}}| ||||!|)|4{@{N{^{oz„zšy±xÎwïvþvÿ‰zx‚kƒ]…O†B‡5ˆ)‡‡‡ ˆ‰ŠŠ‰‰ ‰‰‰Š"Š,Š8ŠF‰V‰h‰|ˆ”‡«†Æ…ê…û„ÿ…‚}†oˆa‹SE8‘+‘’’ “”–—˜——— ˜˜™™"š.š=™M™^™s˜‹˜£—¼–â–÷•ÿ€‰rŒdV“H–:™,š›œ žŸ¡£¥¥¥¥¦§§ ¨©«#«1«A¬S¬g«€ªšª³ªÐ©ï©ûug”Y˜Jœ<Ÿ-¢ £¥ §©«®±²²³´µ¶¸¹ »½¿$¿5ÀGÀ[ÀrÀÁ¦ÀÁ¿ã¾ój—[œM¡>¥/©!«­ °³µ¸¼¿ÁÁÃÄÆÇÉËÎÑÕØ'Ù9ÚMÛdÛ~ܙܰÜÉÜã]ŸO¥@ª2¯"²µ +¸»¿ÃÆËÎÑÑÔÖÙÛÞàäçëïð*ò?óUômôˆô¡ô¶ôÇÿ ÿÿÿ ÿÿÿ(ÿ4ÿAÿLÿUÿ]ÿeÿlÿrþxü~û„ú‹ù’÷™ö¢ô¬ó¹ñËðèîûíÿìÿáÿÒÿÉÿÄÿÿÿÿÿÿÿÿ#ÿ/ÿ;ýFúP÷Xô_òfðlïríxì~ê…éŒç“åœã¦á±ßÁÝÝÛôÙÿÖÿÏÿÄÿ½ÿ¹ÿÿÿÿÿÿ ü÷ô*ò5î@éJæRãYà`ÞfÜlÚr×xÔ~Ò…ÐΕ̟ɪǸÅÍÃëÀþ¿ÿ¾ÿ¶ÿ°ÿ­ÿÿÿÿùòëæá$Þ/Ú9ÓCÏLÌSÉZÇ`ÅfÃkÁq¿w½~»†¹Ž·˜µ£³°±Â®à¬÷«ÿªÿ¨ÿ£ÿ ÿÿÿõëáÖ ÏÊÆ)Â3¿=»E¸M¶T³Z±_°e®j¬p«w©§‡¥‘£œ ©ž¸œÎšî™ÿ—ÿ–ÿ–ÿ“ÿýñåÙÍĽ·³"°,­6©>§F¤M¢S YŸ^d›jšp˜w–€”Š‘•¢°‹Ã‰ãˆù†ÿ†ÿ†ÿ†ÿóãÑŽ¶® ¨¤ &œ/š7—?•F’L‘RX]‹cŠjˆq†y„ƒ‚›~©|»zÕxòxÿwÿwÿwÿçÑ Ã ¸ ®¨¢›–’Ž(‹1ˆ9†@„F‚L€RW}]{czkxsv}tˆq•p¤n´lÊkêjüjÿjÿjÿÚÆ¸­¤œ– Š…!~*{2y9w@uFsLrQpWn^mekniwgƒe‘cŸb¯`Ä_ä_ø^ÿ^ÿ^ÿν° ¥›“‹„ ~ yur#o+m3k:i@gFfLdRcYa`_i^s\ZYœW­VÁU áT öT ÿT ÿT ÿƶ%©(ž(”%‹!ƒ{tn if d +%b +-` 4^ :] @[ GZ MX TW \U dT oR {PŠOšN¬LÂLãKùKÿKÿKÿ¿&°+¤/™/-†)}$tle_\ZX'V.T5S;RBPHOPNWL`KkIxH‡F—E©D¾CßCøCÿCÿCÿº+«1 4•5‹41x+o&f ^W TQO#N*L1K7I>HDGLETD]CgAt@ƒ?”=¦<»;Û;ö<ÿ<ÿ<ÿµ0¨6œ9‘;‡:~7s2j-a'Y!Q LJHF&E-C3B:AA@H>P=Y<d;q9€8’7 ¤6 ¸5!Ö5!ô5"ÿ5!ÿ6!ÿ²4¤:™>?…?{<p8g2]-T(L"FCA?"> )= 0; 6:!=9!E8"M7"W6#b4#n3$~2$1%¢/%¶/&Ò/&ò/&ÿ0&ÿ0&ÿ¯8¢>–BŒC‚CxAn=c8Z3Q.H(@$ =#;$9$8$&6$,5%34%:3&B2&J1'T0'_/(l.({,)+* **´)*Ï)+ð*+ÿ**ÿ+*ÿ¬<ŸB”FŠG€GvElBa=W8N3D.<) 7(5(3(2(#0()/)0/*7.*?-+H,+R+,]*,j(-y'-‹&.ž%.³$/Í$/î%/ÿ%/ÿ&.ÿ©?E’IˆK~LtJjG^BT=K9A48/2- 0-.--- +-'*..).5)/=(/F'0O%0[$1h#1w"2‰!23±3Ë3í3ÿ 3ÿ!2ÿ¦CšIM†O|PsOhL\FRCI??;66.2 +2)2(2&2$%3+$32#4:"4C!5M 5X6e6u7‡7›7¯8È8ë8ÿ7ÿ7ÿ£G˜MŽQ„S{TqSfPZLPIGE=A3=*9 %7#7"8!8" 8(80989A:K:V;c;r;…<™<­=Æ=é<ý<ÿ;ÿ K•Q‹U‚XyYnXdVXQNOEK:G0C'@ > >>>>%>-?5?>?H@S@`ApA‚A—A¬BÄBçAüAÿ@ÿP“V‰Z€]v^l]b[VWLUAQ6N,K#HE DDEE"E)E1E;FEFPG^ Gm G G“ G§G¾Gà Gö +Fÿ FÿšU[‡`}bscjb`aS^GZUJVWVeUwU‹U U¶TÔTñSýSÿ“bŠh€lwnoocnVlIj=h2f'ecba `` ____&_/_:_E_S_a^r^‡]œ]²\Ï\ï[ý[ÿj†o}rutju]tOsBr6p+o nml +lkk jjjj!i*i4i@iNi\imh‚h˜g®fÊeíeüdÿ‹q‚vzyp{b{U{Hz;z/z#yxw +wwwwv vvvv#v.u:uGuVuht|t’sªrÄqépûpÿ†y}vhZ‚L‚?ƒ2„%ƒƒƒ +ƒƒ„…„ƒƒ ƒƒ„„&„2„?ƒOƒ`‚u‚Œ¤€½ã~ù~ÿ‚€z„l†^ˆPŠB‹5'Ž +Ž‘’’’’’’ ’““”(”6”E“W“k“‚’œ‘¶Øóÿ~‡pŠaSE“7•)–—˜ ™›œž    ¡¡¢ £¤¥¦*¦:¦L¥`¥x¥’¤¬¤É£ë¢úsŽd‘V•G™9œ*ž ¡£¥§©¬®®®¯°±²³µ ·¹¹.º@ºT»jº…¹¡¹»ºÞ¹òg•X™Jž;¢,¦¨ª¬¯±´¸»¼¼¾¿ÀÂÄÆÈË ÏÑ Ñ2ÒFÓ]ÔvÔ’Õ«ÕÄÔâ[L¢=§/¬¯±µ¸»¾ÂÇÊÌÌÎÐÒÕØÛßâæ ëì$í8îNïgð‚ðœð²ñÅÿÿÿÿ ÿÿÿ$ÿ0ÿ<ÿGÿQÿYÿ`ýgümúsùyøö…õŒó”òð§î³ìÄëáêøéÿçÿÙÿËÿÂÿ½ÿÿÿÿÿÿ ÿÿ ÿ+þ7úBöKòSð[îaìgêmèsçyåã†áŽß–ݠ۬ػÔÑÓðÐÿÎÿÈÿ½ÿ¶ÿ²ÿÿÿÿÿý÷óï&í1è;ãEàMÜUÙ[ÖaÓgÑlÏrÍxËɇÇŚåÀ²¾Å¼åºû¸ÿ·ÿ°ÿ©ÿ¥ÿÿÿþõìå ßÚ Ô*Ð5Ë>ÈGÅNÂUÀ[¾a¼fºl¸r¶xµ€³ˆ±’®ž¬ª©»¨Õ¦ó¤ÿ£ÿ¡ÿ›ÿ˜ÿÿûðåØÎ Ǿ$».·8´@±H®N¬TªZ©_§e¥k¤q¢x ž‹œ–™£—²–Ç“è’þ‘ÿÿÿ‹ÿùëÝÏÆ¼µ °¬¨(¥1¢9ŸAH›N™S—Y–^”d’jqŽzŒƒŠˆœ†ª„¼‚Üö€ÿÿÿ~ÿìÚɾ¶®§ ¡œ˜"•*’2:A‹G‰M‡R†X„]‚dks}}{ˆx•v£u´sÌqípÿpÿpÿpÿßÊ +¼ ± ¨¡›” Ї$„,3:}A{GyLwRvWt]rdpmovl‚jig®eÃdäcúcÿbÿcÿп²§• ‰‚~zv%t-q4o:n@lFjLiRgXf_dgbq`|^‰\˜[©Y¼XÜXôXÿWÿWÿƶªŸ•…~ w +rnjh'e.d4b;`@_F]L\SZZXbWlUwS…R”P¥O¸NÒMðMÿMÿMÿ¿°"£%™%"…}un g c_]![(Y/W5V;TASGQNPUN^MgKsI H ’G +£E +¶D ÐD ïC ÿC ÿD ÿ¹$ª)ž,”,Š*€&w!nf_Y U +S Q "O )M /L 6K <I BH IF QEZDdBp@?>¢<¶;Ñ;ñ;ÿ;ÿ<ÿ´)¦/š22†1|-r(i#aYQLJHF$E+C1B7A>@E>M=V<a:m9|76Ÿ5³4Í3î4ÿ4ÿ4ÿ¯.¢4—7Œ8‚6x4n.e*\$TLF B@? ='<-;49:8B7J6S5^3j2y0Š/.±-Ê-ì-ÿ.ÿ.ÿ¬2Ÿ8”;Š<€<v9k4b/Y*P%G@ +<:86#5)40372>1G/P.[-g,v*ˆ)›(®' Ç& ê' þ( ÿ( ÿ©6<’?‡A}@t>i:_5V0M+D%; 6320 /&.--4, ;+ D*!N)!X'"e&"t%#…##™"$­!$Å!%è"%ý"$ÿ#$ÿ¦:š?C…E{DrCg?]:S6J1A,8&1# .","*")"#(#*'#1&$9%%A$%K#&V"&c!'r'ƒ(—(«)Ã)æ)û)ÿ(ÿ£>˜CGƒIzIpGfDZ?Q;G7>25-,( ('''%'$'!#('"(.!)6 )?*I*T+`+o,,•-©-Á-ä-ú-ÿ-ÿ¡A•G‹K‚MxMnLdIXDO@F==834*/$, !, ,--%-,.4.</F/Q0^0m11“1¨2¿2â2ù1ÿ1ÿžE“K‰O€QvRmPbNVIMFDC;?1:'62 2222"3)314:4D4O5\5k6}6‘6¦ 7¼ 7Ý 6ö6ÿ6ÿ›I‘O‡S~VuVjU`SUOLLBI8E.A$=:88899&9.97:A:L ;Y ;h ;z +; <¢<¸<Õ<ð ;ÿ +;ÿ˜NŽT…X|[r[hZ^XSUIR>N4K*G!DB@ ??? @# @+ @4 +@> AJAVAeAvAŠAŸA´AÐAîAü@ÿ•TŒYƒ^y`p`f`]^Q[EW:T/Q%OLJH GGGG H(H1H;HGHSHbHsH†H›H±GÌGíGûGÿ’Z‰`€cwenfefYdL`@]5[*Y WUS RQ PPPP%P.P8PCPPP^PoPƒO˜O®NÉNëMûMÿa†f}itllmakSiFg:d/c$a_^ \\[ ZZZY!Y)Y3Y?YLYZYkX~X”W«WÅVéUûUÿŒh‚mzprrgrZqLp?n3m(kjh ggff e eddd$d.d:cGcUcfczba§`Á_æ_ú^ÿ‡otxwnx`xRwEw8v+v tssrrrqq +qpppp'p3o@oPo`ntn‹m¢l¼kâjøiÿƒw|{s}e~WI</€"~~~~~~ +~ ~~~ ~+}9}H}Y|m|„{œz¶yÚxõwÿ€w‚iƒ[…M†?ˆ2‰$‰‰‰Š‹ŒŒŒŒŒ Ž"Ž/Ž?PdŒ{Œ•‹®ŠÍ‰ï‰ÿ{…mˆ^ŠPB4‘&’“”•–˜š›››››œ žŸ $ 4 F YŸpŸŠž¥žÂèœùpŒaS’D–6™'›œŸ¡£¥¨©©©ª«¬­®° ²³´'´9µM´d´~³š³´³Õ³ðd“U—G›8Ÿ)¢¤¦¨«­°´¶¸¸¹º¼½¿ÀÃÅÉÊË,Ì@ÍVÎǫ͋ÌÂÌâX›I :¥,©«®±´·º¾ÃÆÈÈÊËÍÏÒÕÙÝáæçè2éHê`ë{ë—ì®ìÂÿÿÿÿÿ ÿÿ!ÿ,ÿ8ÿCÿLþTû[úbøhönõtôzò€ñ‡ïí—ë¡é­ç½åØäóâÿàÿÐÿÄÿ¼ÿ¶ÿÿÿÿÿÿ ÿÿý'ù2õ=ñFíOëVè\æbähãnásßy݀ڈؑԛҦϴÌÉÉéÈÿÇÿÁÿ·ÿ¯ÿ«ÿÿÿÿÿøòîê"æ,á7Ý@ØIÓPÐVÎ\ÌbÊgÈmÆsÄyÂÀо”¼Ÿ¹¬¶¾´Ý³÷±ÿ°ÿ¨ÿ¢ÿžÿÿÿùïæß ÖÐÌ&È0Ä:ÀB½J»P¸V¶[µa³f±l°r®z¬‚©Œ§˜¥¥£´ ËŸîÿœÿ™ÿ”ÿ‘ÿÿöêÝÏÇÀ»· ³*°3­;ªC§I¥O£U¢Z _žek›r™{—…”’¬Ž¿Œâ‹ú‰ÿ‰ÿ†ÿƒÿôäÔÈ¿µ® ©¥¡#ž,›4˜<–C”I’NSŽY^‹d‰k‡s…}ƒˆ•¤}µ{ÏyñxÿwÿwÿuÿåÑø¯¨ š•‘Ž&‹-ˆ5†<„B‚G€MR}X{^yexmvvsqŽom®lÄjçiýhÿhÿiÿÕö«¢›” +ˆƒ |'z.w5u;tArGpLoRmXk_ifgpe{cˆb—`§^»]Ü\ö\ÿ[ÿ[ÿÉ ¹¬¡— ˆ‚{ wso!l(j/h5g;eAcFbL`R_Y]a[jYuW‚U‘T¢SµQÏPïPÿPÿPÿ¿°¤™‡ wqkgda"^)]/[5Y;XAVFUMSTR\PeNpL}KIžH°GÇFéFûFÿEÿ¸ª ž"“"‰€woh a +]YVT#R*P0O5N;LAKHIOGWFaDlCyA‰@š>­=Ä<å<ø<ÿ<ÿ²"¥'™)Ž)„'{#qiaZ S OLJH$G*E0D6C=AC@K> S= ]; +h: +v8 ‡7 ™5 ¬4 Â3 ä3 ù3 ÿ4 ÿ­' ,•/‹/€.w*m%d \TLF C A ? > %< +; 2: 88 ?7G6P4Z3f1t0….˜-«,Ã+å,ú,ÿ-ÿª,1’4‡5}4t1j+`'X!OG@ ;976!4'3-241;0C.M-W,c*q)‚'•&©%À$ã%ú&ÿ&ÿ¦1š69…:{9q6g1]-T(L"C;5 21/.$,*+1*8)@(J'T&`$o#€!“ §¾àø ÿ ÿ£4˜:=ƒ>y=o;e7[2R-I(@#80 +,*)' &'%-$5#>"G!R ^l~‘¥¼Ýöÿÿ¡8•=‹ABwBm@c<Y7O3F.=)5$- ' %#!!$ +2;E O!\!j"{""£#º#Ú#õ#ÿ#ÿž<“A‰DFuFlDbAW<M8D4<03+*&#" !!""!"(#0#8$B%M%Y&h&y&'¢'¸'Ö(ô'ÿ'ÿœ@‘E‡H}JtJjI`FUAL>C::612(- ) ''''(%(-(6)@)K*W*f+w+‹ ,Ÿ ,µ ,Ï ,ï ,ÿ +ÿ™DI…L|NsOiN^KSGJDB@9=/8%40- ,---#-*.3.= /H /U 0c +0t 0ˆ1œ1±1Ë1ë0ü0ÿ—HMƒQzSqTgR]PRLIJ@F5B+>":74 33 3 3 4( 41 +5;5F5R6`6q6„6™6¯6È6è6ù5ÿ”MŠRVxXoYeX[UQRGOýHúP÷Wõ]ôcòiðoïtí{ëé‰è’æœä¨â·ßÍÜîÙÿÙÿÊÿ¾ÿµÿ°ÿÿÿÿÿÿÿüø#ô.ð8ëBèJåQâXà]ÞcÜhÙnÖtÔ{тϋ͕ʡȯÅÁÂãÀûÀÿ»ÿ°ÿ¨ÿ¤ÿÿÿÿûóí èãà(Ú2Ó<ÏDÌKÉQÆWÄ]ÂbÁg¿m½t»{¹„·Ž´™²§¯·­Ð«òªÿ©ÿ¡ÿ›ÿ—ÿÿÿôéàÕÎÉÅ"Á+¼5¹=¶E³K±Q¯V®[¬aªf©m¦t¤|¢† ’žŸœ®™Ã—ç–ÿ•ÿ’ÿÿŠÿüðãÔÈ¿¹ ³¯¬%©.¥6£> DžJP›U™Z—_–f”l’u~ŽŠ‹—‰¦‡¸…Ö„ö‚ÿÿ~ÿ|ÿíÝÌÁ¸®§ ¢žš—'”/‘7=C‹I‰NˆS†Y„_‚e€m~w|‚zxžu¯sÇrìqÿpÿpÿnÿÝɼ±©¡™“ ŽŠ‡!„)07}={ByHxMvRtXr_qgopl{jˆh—f¨e¼cábúaÿaÿaÿͼ¯¥œ”†|xu#r)p0n6m<kAiGhLfRdYc`ai_t][Y¡W´VÐUòUÿTÿUÿÁ ²¦›’ ‰‚{u plhf#c*a0`6^;]A[FZLXSV[TdRnQ{OŠM›L®KÆJêIþIÿIÿ¹ªž”Šy qke a]ZX$V*T0S6Q;PANGMNKVI_GiFvD…C—A©@¿?â?ø>ÿ?ÿ²¤˜Ž„zrjb\WSPNL%J+H0G6F<DBCIAQ?Z>e<r:9“8¥6º6Û5ô5ÿ5ÿ¬ Ÿ$”&‰&$u ld\T N +JGDB @%?+>1<7;>9E8M6V5a3n1~0/£-¸,Ô,ð,ÿ,ÿ¨%›*,†-{+r'h"_WOHA + >;98!6&5,322 91 A/ I. +S, +^+ l) |( & ¢% ·$ Ó# ð$ ÿ% ÿ¤*˜/2ƒ2y1o.e)\$SKC<5 3 1 / . "- (+ .* 5) ='F&P$\#j"{ Ž¢·Ôòÿÿ¡/•3Š6€7v6m3c/Y*P%H ?80,*('%$$*#2":!C NZhx‹ µÑñÿÿž3“7ˆ:~;t;k8a4W/N+E&=!4-& #" !'/7AKWev‰ž³Îïÿÿœ6‘;†>|?s?i=_9U5L0C,:'2"*" $,4>IUct‡œ± Ë ìÿÿ™:?„B{DqChB^>S:J6A29-1)(%  ")2<F S a !q !… "™ +"® "Ç "ç +"û !ÿ—>ŒCƒFyHpHgF\DR?I;@884/0','# +!!"" "'#/ $9 $D %P +%^ &o&‚&–&¬&Ä&å&÷&ÿ•BŠGJxLoLeK[HPDGA?>7;-6$1-*( ' ( ( (% +)- )7*B*N+\+l++”+©+Á+ã+ö*ÿ’FˆKOvQmQcPZMOJGG>D3@)< 841 / ..//#/+050?0L1Y1i1|1‘1§0¿0á0õ/ÿK†P}TuVkVbUXSNPEM:I/E%B>;9 7 6666 6)627=7I7W7g7y76¥6½6à5õ5ÿP„V|Zr[i[`[WYLV@R5N*K HFC A@ +?>>>>&>/>:>F>T>d>v=Œ=£<»<Þ;õ;ÿŠW‚\y_paha_aT^G[:W/U%RPM KJI H GGFF"F,F7FCFQF`EsE‰D D¸CÜBõBÿˆ]bwenggh[fNcAa4^)\ZWVTSRQ QPOOO'O2O?OMN]NoN…MLµKØJõJÿ…e|itlmnbmTkGi:g-e"db` _^^]\[ ZZYY"Y-Y:YHXXXkWW™V²UÒTôSÿlypsshsZrLq?p2o%nlk jjiihgff feee'd4dCdSdec{b”a­`Í_ñ^ÿ}twwny_yQyCy6x)xwv +uuuvuttsss rrr r,r;qLq_qtpŽo¨nÆlíkÿ{{r~d~UG€9+‚ +‚ƒƒƒ‚‚‚‚‚‚ +‚‚‚#‚2‚CVl€†¡~½}æ|üv‚hƒY…K‡<‰.Š ‹‹ +‹Œ‘’‘‘‘‘‘’’“ ”””'”8”L“b“|“˜’³‘Øöjˆ\ŠM?0’!”• +–—™›Ÿ    ¡¢£¤¥¦¨¨¨-©@©V©o©‹¨¨§Ç¦ì_P’A–3™#œ +Ÿ¡£¦¨¬®¯¯°°²³´¶·º½¿¿À3ÀIÀbÀ~À›À·¿ØS—D›5Ÿ&£¥ §ª­°³¶»½À¿ÁÂÄÆÈÊÌÏÓÚÛÝ%Þ;ßSànߌݩÝÂÿÿÿÿÿÿÿÿ$ÿ/ü:ùCõKóRñYï^ídëiéoçuæ|ä„âà—Ý¢Ú±ÕÅÒèÐÿÏÿÄÿ¸ÿ¯ÿ©ÿÿÿÿÿÿû ÷óï)ê4æ=âEÞLÛSØXÔ^ÒcÐiÎnÌuÊ}È…ÆÂ›À©¾º»Ù¹÷¸ÿ´ÿ©ÿ¢ÿÿÿÿÿöîç +áÜ×#Ð.Ë7Ç?ÄFÁM¿R½X»]¹b¸h¶n´u±~¯ˆ­“ª¡¨±¦È¤í¢ÿ¢ÿ›ÿ•ÿ‘ÿÿüîãØÍÆÁ½¹'µ0²8¯@¬FªL¨Q§V¥[£a¡gŸnžv›€™Œ—™”¨’¼ßŽûŽÿ‹ÿ†ÿƒÿøéÜÌÁ¸² +¬¨¥!¢)ž2œ9™?—E•J”P’UZ`g‹o‰x†„„‘‚ €²}Ì|ñ{ÿzÿwÿuÿæÓÆ»±§¡› —“#Œ+Š2ˆ8†>„D‚INS}Y{`yhwqu|s‰p˜o©m¿kæjÿiÿiÿgÿÓõ«£›’Œ +‡ƒ}$z+x2v8t=rBqHoMmSlYjahjftda‘_¢^¶\Õ[÷[ÿZÿZÿŶ©Ÿ–އ€z uqnk%i+g1f7d<cAaG_M^S\[ZdXnV{TŠR›Q®PÈOîNÿNÿMÿ» +¬   • Œƒ|unieb_]%[+Y1X6V;UASGQNPUN^LhJuH„G•E¨D¿CäBüBÿBÿ²¥™Ž„{ sle_ [WTQO%N+L0K6I<HBFHEPCYAc?o>~<;£:¸9Ù8õ8ÿ8ÿ¬Ÿ“‰uld ]VQ MJGE D&B+A1?6>=<D;K9T7_6k4z2Œ1ž0³/Î/ï.ÿ.ÿ§š"$„$z!qg_WP +IE A><:!9&7,62483?1G0P.[-g+v*ˆ(œ'°&É%ê%û%ÿ¢#–(‹**w(m%d [RKC = 96310"/'--,4*;)C(M&X%e#t"† š®Æçø ÿŸ(“-ˆ/~/t.j+a&X!OG?81 +.+)('#%)$ 0# 7! +@ +J U b r … ™ ­ Æ æ ù ÿœ-1†4|4r3h1_,U'L#D<4-& $ " !   % , 4=GSaq„˜®Æèûÿ™1Ž5„8z9p8g6]2S-J(B$91*# !)1:EQ_o‚– «  ã ú ÿ—5Œ9‚<x=o=e:[7R2I.@*7%/!(  +&.8BO \ l  “¨¿àõ ÿ•8Š=€@wAmAd?Z<P8G3>06+.''# # , 5 @ +L Zi|‘¦¼Ýòÿ“<ˆADuElEcDYAO=F9>652..%*%!    +"*3 > J!W!g!y!Ž!¤!º!Û!ò þ@†E}HtJkJbIXFNBE?=<59+4"/+( $ + ###$ $(%1%<%H&U&e&w&Œ&¢&¹&Ù%ò%þŽE„I{MsOjO`NWKMHDEO2L(HEB@=<; :999 9)949@9N9]9o8…8œ7³7Ò6ò5ÿ‡UZv]m_e_]_R\DX8U-R"OLJ +HFED +C BAAA&A1A=AJAZAl@?™?±>Ð=ò<ÿ„\|`scledfYdKa>^2[&YVT RQONML KKJJ"J,J9JGJVIhI~H–G¯FÍEñDÿcygrjkl`kRiDf7d*b`^ ][ZYXWVV UTTT'T4TBSRSdRyR’Q«PÊOïNÿ~jwnpqfqXpJoK=S;]9i7x6‰4œ3±2Î2ñ1ÿ1ÿ¦šŽ„zph_ +XQL +HDA?=!<&:,91776>4F3O1Y/e.s,…+˜*­)Æ(ê(þ(ÿ¡• Š!!ulcZR KD@ <8643!1'0,.3-:+B*K(U&a%p$"•!© Á äùÿ"‘&†(|'r%i"_WNF? 84 1.,*)"'(&.$6#>"G R^m~’§½ßõÿš'Ž+„-y-p+f(]$TKC;4 - ) &$"! $*2:DO\j|¥»Ûò ÿ—+Œ/1w2n1d.[*Q%I @81)#    ' . +7 +A M Z i { ¥ » Ù ñ ÿ•/Š36v6l5c3Y/P+G&>!6.'  +     # + 4? J X g +y¢¸Ôïÿ’3ˆ7~:t;k:a8X5N0E,='5#-&    ( 2 +<HUev‹ ¶Ñîû6†;|>s?j?`=W9M6D1<.4*,&%"  + &/:FSbt‰ŸµÐíûŽ:„?{BrChC_BV?L;C7;430,,$)$   $-8DQ`r‡³ÎíüŒ>‚CyFpHhH^FUDK@C=;:37*2 -)% "   " +!6!A!O!^"p"…!›!²!Í íüŠC€HxKoLfM]KTIJFBC:@/;%73/ ,)' &%&&!&)&3'?'M'\'m'‚'™&°%Ì%î$ýˆHLvPnQeR\QSOJLAI5D+@!<96 +20/ .----'-1-=-J-Y-k-€,—,¯+Ë*î*þ…M}RuUlWcW[VSUGQ;M0I%FC? =:87 6 5444$4.4:4G4W4h4}3•2­1Ê1î0ÿƒS{Xs[j]b][]OZBV6R*O LIGDBA?> ==<s0r#qo nmmmmlkjiiih hhg!g/g?fRffedšc·báaüwxmz_zPzBz3{%{zyyyyzzzxxwwwwwwww&v6vIu_uwt“s¯rÓq÷q~cT€E‚6ƒ(„„ƒ„„…†ˆ‰ˆ‡‡‡‡‡ˆˆˆ‰‰‰,ˆ?ˆUˆm‡‰†§…Ç„ïf„W†Hˆ9Š*ŒŽ‘“•—˜–———˜˜™š›!3Iœbœœœœ¹›âZ‹KŽ<‘-“•–˜šœž¡¤¦§¦§§¨©ª¬­¯±³ ³´'´=µUµp´Ž´¬´ÌM’?–/š Ÿ¡£¦©¬¯³µ·¶·¸º»½¿ÁÄÇËÍ ÎÏ/ÏHÐbЀÐи +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"$%&()*+-./02346789;<=>@ABDEFGIJKMNOPRSTUWXY[\]^`abcefgijklnopqstuwxyz|}~€‚ƒ…†‡ˆŠ‹ŒŽ‘“”•–˜™šœžŸ¡¢£¤¦§¨ª«¬­¯°±³´µ¶¸¹º»½¾¿ÁÂÃÄÆÇÈÉËÌÍÏÐÑÒÔÕÖ×ÙÚÛÝÞßàâãäæçèéëìíîðñòôõö÷ùúûüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿmft1! +  !"#$%&'()*+,-./01123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïñòóôõö÷øùúûüýþÿ +  !""#$$%&&'())*+,--./01223456789:;<=>?@BCDEFHIJLMOPRSUWXZ\^`bdfhjmoqtvy|~ƒ†‰‹Ž’•—™›Ÿ¡£¥§¨ª¬­¯°²³µ¶·¹º»¼½¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÒÓÔÕÖÖרÙÙÚÛÛÜÝÝÞßßàááâããäååææçèèééêëëììíîîïïððñòòóóôôõöö÷÷øøùùúûûüüýýþþÿ +  !""#$$%&&'())*+,--./01223456789:;<=>?@BCDEFHIJLMOPRSUWXZ\^`bdfhjmoqtvy|~ƒ†‰‹Ž’•—™›Ÿ¡£¥§¨ª¬­¯°²³µ¶·¹º»¼½¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÍÎÏÐÑÒÒÓÔÕÖÖרÙÙÚÛÛÜÝÝÞßßàááâããäååææçèèééêëëììíîîïïððñòòóóôôõöö÷÷øøùùúûûüüýýþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷éþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÍ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿݯ–·ôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅŒh§çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌœ‰¤çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúλÆõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜŽõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿“z…ÅÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛ[=e¨öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ¼u4T›ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓ”~I,NšìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØÔʳ~em¥ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôÅ®¯ÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÖÆìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ滑tc«÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÄšsE&4}Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿµ€U0 +`²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏt5 +R§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–4O§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöi  R±ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿË;5L[ML^Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©`6`†Ÿ¶¬©¸Ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà—¾åÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÙʼÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÏšmZFˆêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ|>&T°ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàƒ<.‡íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬SmÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû€1 aÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒZ]Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨5\Óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ} TÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿî}EDÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüªd/"7IXÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿé¤kA(?c•§ºÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ²¬²Ìäúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿå»—wbÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛžg6 +ŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ?^ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙ9<ªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžL#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜo}ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯Hoîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„dæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìQWÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸HÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿt8Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù¢Z#Åÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿß›\, ºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿï±}U9""²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿß¿¥™˜š ¬½Úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿã¾€|ûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò·„W0¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒŠLróÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖ6KÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú‘>/«ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀZ•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç^wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´%jÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}[ôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý+Lëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥<áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0 -Ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™Ša''×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí¾‰U'%ÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÊv]J<2-,09GÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýæÝÖÒÐÓÙäÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïÔ»Öÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç¸jK/oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿä¡g4<ÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖ‚;—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí…1oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦BPáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìi7Éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³/"¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿy§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿò4™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©ŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßtÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ—jÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)"aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹£€W7hÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÓ®”†|uqprw”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛº‚iiÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ“e=žÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛŽLnÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛ|,E×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*"´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂD—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç6jÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFGøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿé5éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–%Ûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼ÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ' +µÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp ¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàœŒpUB3& &¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùäØÒÎÌËÌÏÖàüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÓ¼ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ©…eH,…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ«q<OàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ5²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãu‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ#gÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕCHöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ.Ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ8Èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœ¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿº“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜ‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿhÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿB`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿz]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$fÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿɬ™‰}vqligfgkpzŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâŪ‘yawÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿݦwP, 1Äÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿà’NÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒp`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîo7âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–Àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžrÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿú;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ*ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^ÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+Èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüëáØÏÌÍÏÐÒÔ×ÜâêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÚÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñÆ£„hM2«ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹|Fqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×|/;ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßd µÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅjÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™Kÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶0ýÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×çÿÿÿÿÿÿÿÿÿÿÿÿÿÿöÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ/¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØtÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ6mÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|iÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ× hÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿpaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPlÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿiZÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™IÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿX)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõVÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ»/øÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«)ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉG .>Rh„íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôÕÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÒ°’w]B( JÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅ}EØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄPŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ hÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”6ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿH¢ÿÿÿÿÿÿÿÿÿÿÿÿÿÿuƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃRÿÿÿÿÿÿÿÿÿÿÿÿÿÿç>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞ"òÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèJ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ œÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿz Lÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢Wht€œ«¼ÐçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ£zX:)#Ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬RiÿÿÿÿÿÿÿÿÿÿÿÿÿÿäC4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿyãÿÿÿÿÿÿÿÿÿÿÿÿÿͲÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿO]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒ:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ*ûÿÿÿÿÿÿÿÿÿÿÿÿÿÿOçÿÿÿÿÿÿÿÿÿÿÿÿÿÿtÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›ÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿð3šÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿg†ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãD\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘Aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿë_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÊKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËW $1?N`t‹§Çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×çòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëÔÍǾº·³°­©¨¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝ~S?0# Ûÿÿÿÿÿÿÿÿÿÿÿÿÿv§ÿÿÿÿÿÿÿÿÿÿÿÿÿºuÿÿÿÿÿÿÿÿÿÿÿÿÿÿFÿÿÿÿÿÿÿÿÿÿÿÿÿÿNÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒýÿÿÿÿÿÿÿÿÿÿÿÿÿÁÛÿÿÿÿÿÿÿÿÿÿÿÿÿñ¾ÿÿÿÿÿÿÿÿÿÿÿÿÿÿD¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿkÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘yÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·fÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞ!SÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿw+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬ +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖMýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§.Õÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜*-E`àÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨ctœ«»ÍâúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçË·©•މ„€|xtplheÿÿÿÿÿÿÿÿÿÿÿÿÿ¼jH- +1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBÜÿÿÿÿÿÿÿÿÿÿÿÿÿ޲ÿÿÿÿÿÿÿÿÿÿÿÿÿÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)kÿÿÿÿÿÿÿÿÿÿÿÿÿÿZNÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔ +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿú=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿñNØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌC¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘zÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòt +_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèt,8ESbr…›´Òõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×èôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿû÷óñîìëëìñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙ²™‡ymd]VQKFA<82-(#ÄÿÿÿÿÿÿÿÿÿÿÿÿÿK% ’ÿÿÿÿÿÿÿÿÿÿÿÿÿˆfÿÿÿÿÿÿÿÿÿÿÿÿÿ×=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿlÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ öÿÿÿÿÿÿÿÿÿÿÿÿÿñ5ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[Ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓ/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ^wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍC@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿N,>Rj†¥ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂ|Œš§¶ÅÖèýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîá×ÏÉþº¶±­©§¦¦§®ÿÿÿÿÿÿÿÿÿÿÿÿÿ¾†m[L@7/(" ÿÿÿÿÿÿÿÿÿÿÿÿÿ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ4öÿÿÿÿÿÿÿÿÿÿÿÿÿvÒÿÿÿÿÿÿÿÿÿÿÿÿÿ°²ÿÿÿÿÿÿÿÿÿÿÿÿÿá$–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿQ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿyfÿÿÿÿÿÿÿÿÿÿÿÿÿÿ QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇ#<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿîK'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØLÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥8 4NkŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™9CQ_n}Ž µËåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿë̹¬¡™‘‹†|xtpkhffhñÿÿÿÿÿÿÿÿÿÿÿÿÿaE2#žÿÿÿÿÿÿÿÿÿÿÿÿÿ~uÿÿÿÿÿÿÿÿÿÿÿÿÿÃRÿÿÿÿÿÿÿÿÿÿÿÿÿû72ÿÿÿÿÿÿÿÿÿÿÿÿÿÿjÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿæBÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹,ôÿÿÿÿÿÿÿÿÿÿÿÿÿÿè\Ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÊSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜.)FfÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿî (7FWi~•¯Ìîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç ª¹ÈØéüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýõðëæâßÛØÔÒÑÐÒ×àÿÿÿÿÿÿÿÿÿÿÿÿÿΞŠ|qia[VQLHC>:62/.1ÿÿÿÿÿÿÿÿÿÿÿÿÿÒ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿBÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ° öÿÿÿÿÿÿÿÿÿÿÿÿÿÝ9ÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿbÅÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯"™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖH‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿriÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡(NÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓ\3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–.2Rwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàr/BXp‹¨ÈìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÊon~Žž°ÃØïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùàÒÈÀºµ°¬¨¥¢Ÿ››œ §ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚dVKC<60+'" Ôÿÿÿÿÿÿÿÿÿÿÿÿÿ’­ÿÿÿÿÿÿÿÿÿÿÿÿÿÌ‹ÿÿÿÿÿÿÿÿÿÿÿÿÿûRmÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€Qÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐB#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿõh ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸>ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿåmÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸ7/PtÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝr*AZu”¶Úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼XDTdu†š¯ÈãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÍáñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüûúûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–І‚{xvtrsuxÿÿÿÿÿÿÿÿÿÿÿÿÿëO:0(! #ÿÿÿÿÿÿÿÿÿÿÿÿÿÿiÿÿÿÿÿÿÿÿÿÿÿÿÿÿ› +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿðcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°4ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ±I9]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿå{ !8Ro³Ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ»X)9IZl€—°Ííÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³ž´Å×ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúïçáÜÙÖÔÒÐÐÐÑÓÙàë÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸Š~wqlhda^[YXWWY^eqÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿1 +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿíVèÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«/³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒW›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷|…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢7+”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËa ,PvžÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ0 #;Wv™¾åÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃc*;L_t§Æçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨–¨»ÐçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÎÅ¿¼¹¶´³±²²µ¹ÀÉÕãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ—ld^YUQOLJHGFHKPYf¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§&VÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎP:ÿÿÿÿÿÿÿÿÿÿÿÿÿÿôy !ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸ2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄX1Z„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿé'KqšÂéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ§I/JhŠ®ÕüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓu&8J^u«Ëïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®r…˜¬ÂÛöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿²ª¦£¡ ŸŸ¡£¦¬´ÀÍÝìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠZSOKHFDCBABCGNYi}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿž.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃVAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç{ 4`‹´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸ?%Jq™ÂëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆf*Dbƒ§ÍõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëŽ5+>Qh¼Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾v”©ÁÜùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒØóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöòðïïïñóøýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿø°Ÿš—–––˜›Ÿ¤¬¶ÂÑáîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþŽPJGEDDDEFGKQZhƒ©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦A6cºáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆe +'LsœÄìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿåˆ/*Db‚¦Ìôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«P6Ja{–´ÖúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒ‡|˜±ËéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÎíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíåããäæèíñùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿý±”’’•™£©²¼ÐíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿSGIMQV`sНÖüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²V5Pm‹®Ò÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍo>_{™·×ùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦ÂáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÎëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +endstream endobj 105 0 obj<> endobj 106 0 obj<> endobj 107 0 obj<> endobj 108 0 obj<> endobj 109 0 obj<> endobj 110 0 obj<> endobj 111 0 obj<> endobj 112 0 obj<> endobj 113 0 obj<>stream +H‰œ—OܸÅïý)tL–Åÿäu'A#›CÜ@ 'ñb¸‹Œñ&Ÿ>ER-U•ªÛ*Ãð̼ê’ô#›z|ûçÿûñuzûýÓ2}÷‡§éòïË2Ec§Tìô¦ýñúñò·éçËÛ§÷ËôüyZæ0-“ÿÓç矡ùÓtyû×/?þúé?Ÿ~yùåõSýøëë§çéõÓåíŸà¢~¾˜ÅÂeÞš9›<½ña2K»ñ?ÆmŸÞãÛ¾úËÅL_&?}ò'øÿnúáÃ2ý}b÷©—|Y¥»Éµ›ë­ý_—÷À?þõÁÄŸÚÙº0½1f*q4˜Ö8¿L¸(ò&^º€'ÑÚˆØÚög›ñìï®—·×k“×öÈë3|týÒÈ®Ÿa¶ÚïÿµÒë”ûeyŠËœ’o7usŠ)N×zùùýõ§Ë¯t\y‘Æ…ª•ÂìÖFÄÉ1Ü0´0ƒ„YŒ„‰ª•>Ÿµ6"”˜Ù ˜E„e$qâr¥„­÷Q¥D-faqì‹w7ÖÙY°“‡nø~ØÛ—;”®¸™]VØ­z7ÙèçZ2ÝìV2Ïú·6–€&¯«}b['UÊi6K:k0c“¸$P¹2Æ×:©ÒÒšrÖgÆe‘•+c`|.s¥¥uËi»yqWÆåÊŸ/\©iócÇ¥0t‰wÍFšwŸ‘+`DÁPŸ ½ûjôs}ÿåf¢;í2ÔÚHðÕÕ>›­“*íÜÚeÉ‹+•+c`|­“*-mŒ§]–ƒH‹Ê•10¾¸ÒÒ¦tÚeE܃q¹2ÆW"WZÚ»ŒOëÝ]‡¢$놑”LÝ5ô榵Ÿëûî²FÌX’»pk#ÁûQWÛ,öNª”sj#¸ËJ+ÀZ1~áre ŒÏ®´´F +aQ¤ubÃåÊŸ³\ii¡9®×EÄõâæ‹Ë•A0@ï¸Òâ:+ÙË%6Ú²|Kl¤—ÁØ| Zõn°ÑÏõÃ1r‰† 8†Y·¦®öy ‰+í,û|ÚpQŒa¸\ã‹™+-m”b˜l¸$Æ0\®Œñ¥Â•š¶œ7\÷c\® ‚–…+-n* wHÎ%ej¤WÀˆŠ¥6z³ÕÚÏõ}›¹EÌ\’Ípk#Á[TWÛlöNª´s[ÂY›9#æ0\®Œñ™À•’Ö-Rm欘Ãp¹2Æg#WZZOØlvÛšÞs)Ct‰+-°F‚£Ë^i7ŒÄb˜Uï†ý\?0Xc—h°€£˜óxKêjŸÅ`¸ÒΩ·‚Áœ¸d£Åp¹2Æ-WZZ8D –DÚ$&1\®Œñ%Ç•–6ºÙùd ípæM~|¸¾;BgqÆåÊPfö\i¡S˜K)Nño_Ií™ßée0´©ë†Þ\¶ösýÀuEÌ^¢ë +Îc.ãý©«}ZKæJ;ɹœu_Ä<†Ë•1P¾ÞI•’ÖÃáò¤ë¼ã.WÆÀøì•–Ö,§]w{¹ÁEl‡7b +Ã@áJ‹ ý|w‘>eeˆ¤WÀ€œ#îYõî®ÑÏõ}·y/F0Ém¸µ‘ફ}2}àJ;µ.žv[c.WÆÀøBäJK '˳n‹b&ÃåÊ_L\iiCÒ»-‰›2.WÃ@SæJ‹ GÌGn#I2Ø H’´’겡7W­ý\?pYs˜è²‚³™Ïx[êjŸÄb¹ÒNiv‚˼´nG†?Œ—+c |½“*--,.Ë"­C.WÆÀøŒçJI/Õ¬|Tƒ$[¼åR †hWZ`8[êSdHö[R$½ †fqЪw‡~®ï;.81ƒIŽÃ­oM]íÓê +WÚIvËiÇ1—áre Œ/,\iiá¤yÖqQŒc¸\㋆+-m0Ç%qKÆåÊ0b²\iá°©ÊÑe~¤WÀ€’§>zóÕÚÏõŸe1}‰>Ë8‘…„·¨®öÉÌ‘+íÔ¦tÚgELd¸\ã+‰+--œ-Oú,.bÃåÊ(_ï¤JK[²Âg°‚D`ƒ7]ŠÁMáJ áxyßgÝ'.̱§×8»8‚×ìœÛ +/ð °Ì±ßâséig^¼í:TšK¿\MqŽÞt•³ž/[ÁÍÙ¥gcÚ¢‚˜áA·›yø|Úà%Zàò`gG!G3\T:…ÏC€{­¬­yÿÖÔviœ3œ$è(žá«èù~,ð¦ýVð~N>÷±Ã8|›yx!8XüµŠÉ½gñ“-³k‘Þ7.K‚A{ÏhƒŠñ¦_.0Š¥…Ch/Poƒ +e»Œ"äíQp5€˜!ä&M@gÛçfÌØ&]›~óŸÚL·äЗÌöyÎa¿š¤?AR3q½#d–zI…r?ÑŽJ›;¡)ãFKH½ žäX€™mWùvï!Ó4ÌFûNA˜ÇçËVÓ-äC¸o«Ä¶ Úy¾Éíž0¾ÝžÚ†Wo²°˜Û÷éòÜ”À !u•áóë«¿¥ÜŽöõs¸üÞ¯†}ÝÚ‰êy=!5K´6m­[·‰—.œ]Ek#bkkæýË!¥àûb·6;.òAÎ,=è-åÔAŽv·— ’/«47¹vs½µ^vÍT°—œxסÎöòØÄËå¶›.ÝÎvK“ÆÀÆ–×XzoäEBGÕJŸOÈz:Ìt‹‘3H˜ÅH˜¨Zéó Yo#B‡™€Y$LX)'.WJ@ØFU:Ô[J“/Þ}å°f|¹k¦‡5zY`O|²êÝG£ŸkÉW·”Ð_…笅[K@“7Ô6±½“*Ý4›%5˜±I\¨\ãëT)iM9ë3ã²H‹Ê•10>—JIë–ÓvóâÆ‹Ë•10>_JK›;îpX3%Þ5›|X£WÀˆà@K|6ôî«ÑÏõý÷—iAó¤ËPk#Á[ÔPÛlöNª”süi—%/®T®ŒñõNª”´1žvY"-*WÆÀør8(%mJ§]VÄ=—+c`|%”’6‡Ç.#ÙÐz§È†´FÇX⮡77­ý\ßw—5bÆ’Ü…[ Þ†ºÍâè¤J7§v1‚»¬´¬ã.WÆÀø¬9(%­‘BXiÂp¹2ÆçìA)iátµ×ë"âzqóÅåÊ  w¥Ä…ƒš`/ÿ•ØhËò-±‘^cóhÕ»ÁF?× ÄÈ%.àf=Þš†Úæ5¤ƒRβϧ ņ˕10¾˜JI¥&.‰1 —+c`|©”–¶œ7\÷c\® ‚–å ”¸©<6Ü!5:—”©‘^#*–ÚlèÍVk?×÷mæ1sI6íoQCÝfstR¥œÛÎÚÌ1‡áre ŒÏ„ƒÒѺEÊa¢Íœs.WÆÀøl<(%­‰'l6»mÍŠÀ﹃!ºtPJ`G—½"8Òn‰+Ä0«Þ 5ú¹~`° Æ.Ñ`G1çñ–4Ô6‹Á”rN½ æÄ%Å(†Ë•10¾hJI ‡È£Á’H›Ä$†Ë•10¾äJIÝì|²„ö8ó&?>\ß¡³¸ ãre( 3ûƒRB§0—Râß¾’½3ß’ée0´©ë†Þ\¶ösýÀuEÌ^¢ë +Îc.ãýi¨mZK>(å$çrÖu08i¸\åTéh=.OºÎ[1Žáre ŒÏ.¥¤…þ³®»½Ü`‰ØoĆ:sPÿç¼Ü‘#Gb êï)æŒú®°özk«ò÷ø‹")HBTAÎD$v?b*ÑYFlºe¾ùî"SmÆ)Ÿ ŠQ¸çÔ·»Ž~Ô_»-%5‚inã­“„/ªC]ÃLù¡Œ£eÙmYe¼<€øry(#-Ý,WÝVÔLÆË€¯Ô‡2Òæjw[U—2/€ÐÚʈMWÌ7·‰$™C6$IÙM/ÒœtÙ¡/Wý¨_\ÖÕ¦º¬ól–_K‡º†ØÃCGڢⲤÛ#Ã?Þ€—0H¾£S*#-],Ÿ.k*­WC/`>ŸÊF›]Ò®jA¿ªÑ R_¹C~(#0Ý-í)2×ð“)£W U8èÔ·ÃŽ~Ô_;.G5ƒiŽã­“„¯¦C]cý¡ŒCŽnÙqYÍe¼<€ø²{(#-Ý4WWÔ8ÆË€¯ø‡2Òfoq\UW2/ÀÄÊL—MS~,ôu¶ü(Ÿ ªIúìЗ¯Î~Ô/>kjúR}Öx"Ë•¯¨C]Ãl塌£­uÙg]Md¼<€øz}(#-Ý-}VœÄxyƒä;:¥2Òöfð Øó¥+1Ñ÷‡²êÿÚg»ObÞÊžWÓ˼¶ãUø /Ên+û‡äöìL;›Ka× êÖ÷O(¡¥²•äwÕZøõ篫à·ë7ïç1 +›+ôEŸèï¿®¯Šô#Úéñ¶TŽB+‰3=Ôwº@Ï™>ëdÍ÷_éL]¦­ÑMB¾ÅŸ3ÏÐ'8zë<ß-ÄK|ì"¸SÌ6!®¶ùŸ¡Î?$òbNûË…PÎó¢wïæ{ìu)¸Ëî¹T˜ü8drŸòèF}·?– 1Òa_Øm¬s.‹KÌ]±ãyz»wÛâI>ÓCì9OÛÍiè¬:ä÷ 2jŠYÏØ 0³†Ù½†ÉªC~¿ ë^ ++&Ý~ž˜]ä“¢qòò‚möIeEí~ËsåÊÿøøM8÷©i¦—p.œ„OÍ|”º¢U_}þ*ÌÕ·h-Þ:Y2ÞTl°sŸ +e³wuÕ`>TõH°òà£N©Ì´¾¯úÌǦҲòà‹ ”™–®>«vKêâåå À—:(;m{wÜ#œû^¾4›ÎåôFt>Û5óÕÞúå÷Ë—¸ì2Ö:IøŠšŠMs¦¡Ì³ÍiÙe5©'•0uJe¦-eÙe-«´¬<€øZe¦¥‹ÏªËººƒyyðõÊLÛò»ËD6 )²¡ì¦7!6á®]ßn:úQ¿¸+x5ciîâ­“„î)ÎN©¬3 Î+î +Ú A_¼<€ø‚e¦õZ+*mTC/`¾@™iÝÖžçÕ©¸I]¾¼<SeÆA³Wú&6†î~åcôn) šlïGýf¸¬F.Õp™Ç°øjšŠÍ5WPæ)§¶l¸¢Æ0^À|¥2Ó-†é†«j ãå ÀW;(;m_7\W÷1/€Àî@™qk7Ü#5ÆX©Q>AoÔƒ´Ù®o[ý¨_lš¹4›ñÖIÂWÔT÷4g§TæÙö¼j³èÕÆË€ÏgPVÚè´¦Ú,5‡ñòà ”™Ö—›mñ:³*pä;Wbb¬ ÌÀ¡¼MÇØ’!8Ênz“Ø…aÍ µ÷£~3XVc—j°Ì£XL|%MŦ˜=(óLSP Õ#[Ô(ÆË€¯PfZºD> VUÚª&1^À|5‚2Ó–¸ÅTƒ ýMwÞšèŸÿùû ÝÔ-ÌËP³%Pfèš·Þ{–#þï›ô˜¢ÿIz”Ñ«µ"]·ëÛeG?ê7×u5{©®ë<ÅÆ÷ÓTl¬½2¹õU×%§æ1^À ùf§TVÚD—ËE×¥ Æ1^À|Á2Óz·ìºÏ7:G*vä‹XÂhô ÌØtË|óÝ#D¦ÚŒ!R>A/£pÏ¡™»ö~Ô/nKI`šÛxë$á‹j*6Ì”A™G˲۲ËxyðåÊLK7ËU·5“ñòà+”™6W»Ûªº”yy €ÖÊŒMWÌ7·‰$™C6$IÙM/ÒœtÙ®oWý¨ß\ÖÕ¦º¬ól–_KS±!öÊ<Ò—%íÜþñ¼<€AòÍN©Ì´t±|º¬©´^ e¼<€ø|e¥Í.iWµ _Õè©À¯\‰ˆ!ƒ2ÓÝÒž"s ?I‘ò1zµP…ƒÍ¶÷£~q\ŽjÓÇ[' _MS±±ÆÊ<äè–—Õ\ÆË€/;PfZºi®:®¨qŒ—0_ñ Ì´Ù[WÕ•ÌË0±Pf`ºlšòcñݘåôB5IŸíúöÕÑúÍgMM_ªÏOd¹ò5f+ Ì£­uÙg]Md¼<€øze¦¥»å¢ÏŠSƒ/`|³S*3-õ¯ûŒN +ìùÒ•€è;(+p¡ëå×>Û}óVö¼¶XŽàµÅ¯Â}Qv[éó˜ÆöìL;›Ka×ëÖ÷OH¡¥²•äwÕZøõ篳0 Z¬{Þ¼ŸÇÈm®Ð}~˜£¿ÿº¾ÊÓh§ÇsØR9 +­$ZÌôPßéý=gú¬“u6ߥ3u=¶F7 ùÎD«vKêâåå À—:*3m{wÜ#œ{ú!üÊlz8—OÐÑFøìз¯Ž~Ô_ÿ~ù—]ÆZ' _Q»º§9;¥²Î6§e—Õ¤žVÀ|³S*+m)Ë.kY¥eå À×2*+-]|V]ÖÕÌË€¯TVZ:»¯.Ù0¤hȆ²›Þ„n Â]‡¾Ütö£þÚ]Á«Kso$|íêšâÞ)•q¦îOwí„ Æ/^À|Á£²Òz-„•6ª!Œ—0_ ¨¬´!lîy^Š›ÔåËË 0ETVÜ4{¥obcèî'±Q>Fï–²0Щoƒý¨_ —ÕÈ¥.ó_M»ºçš+*ë”S[6\Qc/`¾ÒPYi‹ÃtÃU5†ñòà«•™¶¯®«û˜—@`w¨¬¸µ¿î‘c¬ÆÔ(Ÿ 7êAÚìЗ­Î~Ô_Û,:5si6ã­“„¯¨]]ÓÜ;¥²Î–ž^´Yôjãå Àç3*#mtZSmƒšÃxyð…‚ÊJë˂ͶxY8ò+11VTVàPÞ&‚clÉe7½IìÂ0§¾ uô£~1XVc—j°Ì£XL|%íêžbö¨¬3MA1XTlQ£/`¾PYiéù4XUi«šÄxyðÕˆÊJ[âS ‚ö7Ýyk¢þýçï'tS·0/@Ì–PY¡kÞzïYŽø¿oÒcŠþ'éQ>F¯F°Âu‡¾\vö£~q]W³—êºÎó½=r»«7TÖ!·¾êºäÔ<ÆË$ßÞ)•‘6ÑårÑu)¨qŒ—0_p¨¬´Þ-»îóÇÎÑÿœ—=’丄ý=EŸ@!þ“WXûykÛô÷ø¤T…RíLD¢¡ªO&*©b¾ˆ% €‡ÊŠM·Ì'ß½…ÈXª1DÊ'è…Bî9õí®£õg·Å¨F0Ím¼uðE5Õ=̘PYGò²Û’Ëx¹ð¥ŒÊJK7ËU·e5“ñràË••6»ÛŠº”y¹ €–ŠÊŠMWÌ'·‰$™|2$IÙM/Rwé²C_®:ûQ?¸¬©9LuYãÙ,V¾–¦º‡Ø<*ëHkP\µs{dø·7àå ’ovJe¥O¿ÑV•Ö©¡Œ—;0Ÿ‹¨Œ´iÚUÍëW5:A*°ç+Wb¢O¨¬Àt·´§ÈTüoR¤|Œ^Íá Sß;úQv\ +jÓÇ[ _MSÝc •uÈa_v\Rs/w`¾´£²ÒÒMsÕqYc¼Üø²Ce¥MÎ⸢®d^ţ²ÓeÓ”³kÆü(Ÿ *QúìЗ¯Î~Ô>«júR}Vy"K…¯¨©îaÖŒÊ:ÚR–}ÖÔDÆË€¯TVZº[.ú,ïjãå ’ovJe¥mÕà3:A*°ãKWb¢k¨ŒÀ™®—Ÿ}6}Ò–g^%î|¯-„p¾é‹Ò¾åñ!Ím´gGÚÙöè§®í+–­ÍOð¡Å¼å親ÕýùëU ‚ÊŒÀ›sãPÑ0søz}ɾ^_Eç"øF'¿Å|jŽ´˜é¡6é<ý=%ú¬“u4ߥ3õz”T¥›„|‹?g"#t‘àÇ»ùp‰ï)Z>Åhâjÿêü}$/¦8_Îû w9ÜÝ>ØKX +î²{,&¿OY_òìF}µ¿-·1DZ »uŽeq‰ï)èÏÓÛ@\m‹'ù•JbÎÓöDÝ5tVíòûÙhˆY^±c& ³9 “U»ü~A6Ú„0bŽgß0›†I'Eãäå. Ûì“ʈJnMsåŠÿøðC8w±}4ÓC8—uŽÂ'§¾}tô£Ö|õúU˜«oÍZ¼u°$6¼©îÁÎ}*”qÌn/«s¾¨G‚•;0ßè”ÊJëÚªÏ\¨*-+w`¾PQYiéê³j·¨.^^îÀ|±¡2ÓÖgǽ…sG¿ŠŸÌ¦‡sù½]`„Ï}ûêèGýù÷Ëå°ì2Ö:HøŠšêžæè”Ê:Û—]V¢zX¹ðN©¬´9/»¬&•–•;0_M¨¬´tñYuYSw0/w`¾–QYiébùè2‘ } †l(»éMèÚ"ÜuèËMg?êÏîòNÍXš»xë áûhªkгS*ãLýîwyíx¯Æ/^îÀ|Þ¡²Ò:-„e•6¨!Œ—;0_𨬴ÞoûûyÝUܨ._^î€1 ²â¯Ù+þ}Ûåcôn1 ú6ØÑúÁpI\ªáa>òÕ4Õ=×TPY§ë²á²Ãx¹ðåŠÊJ›µ¦®¨1Œ—;0_i¨Ì´mÝpMÝǼÜÛŽÊŠ[Ú³áÞRcŘåôFÍK›ú²ÕÙú³Í®f.Íf¼uð5Õ5ÍÙ)•u¶-­Ú,85‡ñràs •‘6ìZSm¼šÃx¹ðùŒÊJëò‚ͶpY8ð+11TV`ŸŸ&‚c¨Ñe7½IhÂ0§¾ uô£~0XRc—j°Ä£Xˆ|%MuO19TÖ™F¯,¨G6«QŒ—;0_ö¨¬´t‰|7XQi‹šÄx¹ð•€ÊJ›Ãbñ‚öºó–Hÿüû¿¿ß¡«º…y¹ +`ÖˆÊ +M¬­µ$Güßé1÷›ô(£W«YºîЗËÎ~Ô®kjöR]×x •ï§©î±¶ŠÊ:äÚV]w5ñrÉ7;¥2ÒFº\.º.z5Žñràó;*+­Û—]÷úq£s¤b¾ˆ% €‡ÊŠM·Ì'ß½…ÈXª1DÊ'è…Bî9õí®£õg·Å¨F0Ím¼uðE5Õ=̘PYGò²Û’Ëx¹ð¥ŒÊJK7ËU·e5“ñràË••6»ÛŠº”y¹ €–ŠÊŠMWÌ'·‰$™|2$IÙM/Rwé²C_®:ûQ?¸¬©9LuYãÙ,V¾–¦º‡Ø<*ëHééw—EíÜþí x¹ƒä›RYiébùÒ:5”ñràs•‘6íQ»ªyýªF'Hö|åJ @ô •˜î–ö™ŠÿMŠ”Ñ«ù"têÛaG?êÏŽKAÍ`šãxë á«iª{¬¡¡²9ìËŽKj.ãå À—vTVZºi®:.«qŒ—;0_v¨¬´ÉYWÔ•ÌË0±xTV`ºlšòcv͘åôB„(|vèËWg?êŸU5}©>«<‘¥ÂWÔT÷0kFem)Ë>kj"ãå À× +*+-Ý-}–w5ˆñrÉ7;¥²Ò¶jð Øñ¥+1Ñ5TFàL×ËÏ>›> iË3½Ö-ä#xm!„«ðM_”ö-ÏiíÙ‘v¶=ú©kûŠek3ñÒ›' +«[ŽnªZýן¿^"¨¡Ì¼97UÞö¾®Ëô÷¯ë«(©ûF'¿Å|jŽ´˜é¡6é<ý=%ú¬“u4ߥ3u=Z·J7 ùÎDÁüx7.ñ=E§mB\mã?C¿äÅçËyŸÁ‹2¸»}þ°gG §üÜe÷X*L~Ÿ²¼äÙúj[ncˆÙ¯ì6Ö9–Å%¾§ oFï“0Щoƒý¨ —ÔÈ¥.ñæ#_MSÝsM•uʱ..«1Œ—;0_®¨¬´Y‹aºáŠÃx¹ð•†ÊLÛÖ ×Ô}ÌË °í¨¬¸¥=î-5†PŒ©Q>AoÔ¼´Ù¡/[ý¨?Û,ìjæÒlÆ[ _QS]ÓœRYgÛҪ͂Ss/w`>—Piîå0ÕfÁ«9Œ—;0ŸÏ¨¬´./Øl ×™Uß¹CAeöùÙh"8† ÁQvÓ›„& sêÛPG?êƒ%5v©K<Š…ÈWÒT÷“CeiôŠÁ‚zd³Åx¹ðeÊJK—Èwƒ•¶¨IŒ—;0_ ¨¬´bñ‚öºó–Hÿüû¿¿ß¡«º…y¹ +`ÖˆÊ +]ÒÖZKrÄÿýcp¿Iò1zµš¥ë}¹ììGý຦f/Õuç±Pù~šêk«¨¬C®mÕuqWó/w`|³S*#m¤Ëå¢ë¢Wã/w`>¿£²Òº}Ùu¯7:G*öÿ9/{$Éqû{Š>Bü'¯°öó6Ö·éïñDªT@¥Ú™ˆDCUŸ0LT2ðE,a48TVlºeÞùn ‘±Tcˆ”OÐ … Üsê·»f?êÏn‹Q`šÛxëAÂÕPïaÆ„Ê:Ú»-©±Œ—;0_ʨ¬´t³|궬f2^îÀ|¹ ²Ò¦bw[Q—2/w€ÐRQY±éŠyç6‘$“O†$)»éEê.]6õ媳õËššÃT—5žÍbåki¨÷›Gei ŠË¢vng†_Þ€—;0H¾Ñ)••–.–«ËªJëÔPÆË€ÏETFÚ´Gíªæõ« Øó•+1Ñ'TV`º[ÚSd*þ7)R>F¯æ‹pЩß›ý¨?;.5ƒiŽã­ _MC½Ç*ëÃþØqIÍe¼ÜøÒŽÊJK7ͧŽËjãå À—*+mrÇu%ór @,•˜8Mù1»fÌò z¡¥Ï¦¾|uö£¾ñYUÓ—ê³ÊY*|E õfͨ¬£-å±ÏššÈx¹ðµ‚ÊJKwˇ>Ë»Äx¹ƒäRYi[5øŒN +ìøÒ•€è*#p¦ëågŸ Ÿ„´å‘^óò ^[á*|Ó¥}ËãC(>·‘v¶=ú¡kûŠekãèÁDauËÑ U«ÿúó×U[ óf¶9w*Š 9|]éï_×W%úmôxò[̳Ps¤ÅLµAçéï)Ñg¬Góû¯t¦®GóVé&!ßâÏ™ˆŸ@ÿméx7.ñ=ýÞNq´ qµÿêü}$/¦8^Îû<ÇŸôàîöñÃNãxÜe÷±T˜ü>ezɳõÕ¾,·cˆ4¯»uËâßS´×ém(vÛI~¥ú©{;OÛu×ÐYµËïd£MfyÅŽ™4Ìæ4LVíòûÙh†I·Ÿ³i˜tR4N^î’@°Í>©l¨Ími¬\ñ~ç.¶fº çò±NÀQøäÔoÍ~Ôš¯^¿ +cõ=³o=XÞT×`G§T¶1»½<5˜óE=¬ÜøF§TFZמúÌ…ªÒ²rà uQFZºú<µ[T//w`¾Øe¥­÷Ž[¹kù£Ùôp.Ÿ 7¢¯>›úí«Ùúóï—Ëá±ËXëAÂWÔT×4G§TÆÙ¦øØe%ª'•;0ßè”ÊH{„¬‡.«I¥eå ÀWÓ¢Œ´tñy겦î`^îÀ|-/ÊH[Ó½ËD6ô1²¡ì¦7¡k‹p×Ô—›Î~ÔŸÝåš±4wñÖƒ„^SœRÙfêw§¸Ëk'À{5~ñràónQFZ§…°¬Ò5„ñrà ~QFZï·}=¯»ŠÕåËË 0†Eqƒ×ìˆ¾í¿‰ò1z·˜„Ný6ØìG}c¸¤F.Õp‰Ç0ùjšêšk*‹2N9ÖdžËj ãå À—뢌´Y‹aºáŠÃx¹ð•¶(+m{n¸¦îc^î€m_”·´{Ã-©1„bLò z£æ¥Í¦¾luö£þl³°«™K³o=HøŠšê5ÍÙ)•q¶-=µYpjãå ÀçÒ¢l´a×r˜j³àÕÆË€ÏçEi]~`³-\gV|çJ @ eQF`Ÿï&‚c¨Ñe7½IhÂ0§~jö£¾1XRc—j°Ä£Xˆ|%MuM1¹Eg½b° Ù¬F1^îÀ|Ù/ÊHK—ÈÕ`E¥-jãå ÀW¢Œ´9l!/hÿ¡;o‰ôÏ¿ÿû{…®êæå(€Y㢌Ð%m­µ$Güßé1÷›ô(£W«YºnêËeg?ê×55{©®k<…Ê÷ÓT×X[]”qȵ=u]ÜÕ<ÆË$ßì”ÊFérùÐuÑ«qŒ—;0Ÿße¤uûc×½~Üè©Ø/b  Á-ʈM·Ì;ß-!2–j ‘ò z¡„{Nýv×ìGýÙm1ªLso=Hø¢šêfL‹2Ž6äÇnKj,ãå À—ò¢Œ´t³|궬f2^îÀ|¹,ÊH›ŠÝmE]ʼÜ@K]”›®˜wnI2ùdH’²›^¤îÒeS_®:ûQ߸¬©9LuYãÙ,V¾–¦º†Øü¢Œ#­AqYÔÎíÌðËðrÉ7;¥2ÒÒÅruYUiÊx¹ð¹¸(mÚ£vUóúUN +ìùÊ•€èÓ¢ŒÀt·´§ÈTüoR¤|Œ^Íá S¿6ûQv\ +jÓÇ[¾š¦ºÆÚ¢ŒCûcÇ%5—ñràKû¢Œ´tÓ|긬Æ1^îÀ|Ù-ÊHKÇu%ór @,~QF`ºlšòcv͘åôB%JŸM}ùêìG}㳪¦/Õg•'²TøŠšêfÍ‹2޶”Ç>kj"ãå À×Ê¢Œ´t·|è³¼«AŒ—;0H¾Ù)•‘¶UƒÏè©ÀŽ/]‰ˆ®-ÊœézùÙgÃ'!myäÕ¸…<ƒ×B¸ +ßôEô­y|HÚhÏigÛ£º¶¯X¶6>!o„󖣪Vÿõ篫à¶æÍlsî8F~Ûsøº>ÌÓß¿®¯ +ô#Úèq*Ç< 5GZÌôPtžþNάGóû¯t¦®GãVé&!ßâÏ™ˆÐ'oŽwóáßCäýG›WÛñŸ¡ÎßGòbŠãå¼ÏsüYîn?ì¡< +î²ûX*L~Ÿ2¾äÙúj_–Û1ÄPŸì6Öy,‹K|AßxžÞâj{x’_é!4ævY‰êI`å ÀwtJe¥Íù±ËjRiY¹ðÕ„ÊJKŸ§.kêæå À×2*+mM÷.ÙÐÇ`Ȇ²›Þ„®-Â]S_n:ûQv—wjÆÒÜÅ[¾†º¦8:¥2ÎÔïNq—×N€÷jüâå Àç*+­ÓBXViƒÂx¹ðÊJëé¶¶ž×]Åêòåå*+nðš½â±Ñ·ý7±Q>Fï“0Щß›ý¨o —ÔÈ¥.ñæ#_MC½çš +*ë”c}l¸¬Æ0^îÀ|¹¢²Òf-†é†+j ãå ÀW*3m{n¸¦îc^î€mGeÅ-íÞpKj<Ž»-5Ê'èš—6›ú²ÕÙú³Í®f.Íf¼õ á+j¨kš£S*ël[zj³àÔÆË€Ï%TFÚ°k9LµYðjãå Àç3*+­Ël¶…ë̪Àï\‰ˆ¡ ²û|o4C†à(»éMè+¸aNý6ÔìG}c°¤Æ.Õ`‰G±ùJê=ÅäPYg½b° Ù¬F1^îÀ|Ù£²ÒÒ%r5XQi‹šÄx¹ð•€ÊJ›ÃFŸàí?tç-‘þù÷¯ÐUݼÜ0kDe….ik­%9âÿ~H1¸ß¤Gù½ZÍÒuS_.;ûQ߸®©ÙKu]ãy,T¾Ÿ†zµUTÖ!×öÔuqWó/w`|£S*#m¤ËåC×E¯Æ1^îÀ|~Ge¥uûc×½~Üè©Ø/b  Á¡ú?çemÉjCá¼GÑ¡œU ~§àØ™—£—^rßPP íR.^Ò«7è”>tÙ v±ë+ó›ïnM¤‹i³‰”¿¨ "îz¹«Ç£~v›sj ¦¹‡6~PjÓyT»¥¥ðÚm^mËøpàóÕ.m}Y¾u[P{2>\€øBDµKëã¾Û¢z(óá0ª]ìúÄüæ6ÑIzë7:I]’é²®§«F<ê/.Ëj¦º,óÞÌ%~,j1[T»%M¤¸Ìiû¶÷ð·ðá ’j—¶>,ï.K*­Q›2>\€øŒCµIë§=Õ¬þT«;H¶üÈ•€h=ª]àú¶Üï"}´§‹”?«K³Q8hèå°úÙqžÔLsm$üh:Õ*+eT»E¦ãµã¼Ú—ñá ÀçT»´õ¥ùÖqAmÇøpà Õ.­7;Ž‹ê‘̇ `b´¨vëcs« &oöòuAÑIŸu=}5âQñYR»/Õg‰wd>ò#êT«˜) Ú-mŒ¯}–ÕŽŒ`¾QíÒÖ·åKŸ…CmÄøpÉwFJµK›Ó†ÏêR ?t% šŒj8Ôçå³ÏNŸÿ„³_µ +½ñúÑø©‰üñ í#Ž>õœmÝÎçpöÔ)ÿ®„ùü‚ûT4>Á™S¥dÿõ먉úËìcLÛFÇçô{~ì¨ó¿g*S/Ñ\îíÇ…>‚«sýQ>él÷¾~k°¶à5[÷Ôü©ý¤ú’«øktÄ­.Tø¶6KSüœ¢Õã-LˆÖþjý­«^ôî\œµ^G²q7Çy±×†úMã.£Û¡ÂäÏtÉz†ß·VDÞœm,²Süœ¢f»7ƒ˜a/wòÕ=Ôöh9O;'Ò¡¡³Ñ"ó ²&Ä&f¼ÚŽé5Ìl4L6Zd~AÖ„ØÄ¬¯Ÿ;fÖ0ëNÑ8ùp‘‚팓j5›?\ñ‡§?4çÆåG3}iÎåÏJvÂ'C/õxÔš¯®[á<úÞY‹‡6ÏŠwªUØ)Õf™ÍßÌØ¨n 6\€øZ¤T»´&¿õ™¡¤Ò²á ÀG Õ.m}ú¼µ›S^>\€ø\FµM›¾;îÖœ›ͦ7çòuEõ#|ÖõòUGý|™@¯]ÆB ?¢NµªÙ"¥Ú­­w¯]ºØpàk‘RíÒ†ðÚeÉ«´l¸ð%j—¶>|Þº,«g0.À|9 Ú¥Mþ›Ë ǵµm¶¦µ¶Ò]3húŠGÖd;ÕOWöRg¤T3òæ&{PõJ pé~’Á'Ó?—¶4ôˆG=ã_Ö3ûþ×·&|{=í¯ß>­®FN”É´Ç£Þ$·Gèg‚ WÏ[<\L”É´Ç£Þ%7Q!·*9…r1Qn$7Òz—Ü&e·èæKî­ùXd{Gff©S-»µH©¾˜ÏæÁ'…,g׫|=õn9UÊéÔÌÃFåFr#íñ¨wÉ=)[X½âl´äb¢ÜHn¤Ñjz—<8…<¨äéáø–åFr#M¤é]ò¨ÕQ3‘yi>YRïSf¾¦¦ÝÎH©¾˜/Ç ó‰à“B–3ÁÙÕãQï–3e¥œIn„ëõIGÒ×#'ÊYGN‡¦!YÛC¡ïK¢¹/Yµåα­®iªŸ®(ð½(ÕŒ<÷ÂÇŸ{áÚ›ŽŸ]3°aÈÀÖ‘%ùÚêz¾®F<êç×–­‰_¾¶xh#áïÓSÍ®úŒ”j³Ç¶‡Q^[zb¶>\€øZ¤T»´†”÷‹~ “UiÙpà#‹j—ÖÚÏq¿è ·#— €@G¨vqÉjÏ­Ù¢|j¾£¼þSÐãc¯ãÿx´Øý«?«ks^hèe°ú‹á||m8ÚHøSõT«®-RªÝ*»ôÚp!©{‚ `¾)Õ.m8^.f•– `¾˜QmÓæ÷†Ëêẏ @`>PíâÆüÝpÑÿîÿ¬^/>zM³›5J›e+mÖõ´ÕˆGýl3:Ü[›ñÐF¨SÍjž‘RíÖ6û·6#ãµðá Àg<ªMZ:â[›ÕO«´l¸ðÙ€j—¶5Ñ´Ùl§I=‡ùp @¤ˆj¸Æ5šè)¹w=c7˜ˆ®+¡, 3ô2TGýÅ`^m»TƒyÞŠ‘ãGÒ©V½Aµ[Sgƒ‘ºeƒÚŠñá À,ª]ZïƒE•6ª.À|‘PíÒú‹VÐþçæŸÑÕþûïÝ¡“z +óá(€™ª]èè?9g/Kü¿?tŽÌßéåÏêÒR®ëzºlÄ£þ⺬ö^ªë2ïÇ(ñóéT«¬9¡Ú-rÊo]çµãÃ$ß)Õ&­«Ë—®sVmÇøp೪]Zs¼vÝu¹Õ}¤b?ˆ% €’Aµ‹]_™ß|wk"]L›M¤üE]‘pÏÐË]=õ³ÛœS[0Ím<´‘ðƒêT«˜Î£Ú--…×nój[Ƈ 0Ÿ¨viëËò­Û‚Ú“ñá À"ª]Z÷ÝÕC™€ИPíb×'æ7·‰NÒ×ÿ¾“”Ñu!é.ëzºjÄ£þⲬöaªË2ïÍ\âÇÒ©V³Eµ[ÒDŠËœ¶o{[.À ùÎH©viëÃòÒµ)ãÀÏ8T›´þpÚSÍêOµºƒT`Ë\‰ˆÖ£Ú®oËý.ÒGûwºHù³º´š“;hèå°úÙqžÔLsm$üh:Õ*+eT»E¦ãµã¼Ú—ñá ÀçT»´õ¥ùÖqAmÇøpà Õ.­7;Ž‹ê‘̇ `b´¨vëcs« &oöòuAÑIŸu=}5âQñYR»/Õg‰wd>ò#êT«˜) Ú-mŒ¯}–ÕŽŒ`¾QíÒÖ·åKŸ…CmÄøpÉwFJµK›Ó†ÏêR ?t% šŒj8ÔçåŸou»:kêŽOÒc+pùKD×…Ôÿ-ýsišºÇ£žñmAÑМ©ÙB’Ùºž_ñ¨e¶p*Zdë ÷SYÎÌJyãP4P9Ðá~ãhÙä̬d7ÎúúU9Ðá~ã¨ÙÄ̬d7ûú¨èp¿qÈ=Ý8×̬¤“7yyÃÜ´»ß8Z693+éä³¾>âQ»û£f3³’NÞ8ìë=µSnz¼qn’79¸aP“rã(Ùä̬$Ég}ýªhRn-›˜™•$yã°¯Ê&寱7Ž…ÇÂCpà¶Ê£d“3³’n‚µUn-›˜™•´pãÜ0¨­rã˜ÇÇÀcàÆ±pà6Ê£d“3³’n 7 j£Ü8Z613+iàÆ±pàÙ¼õÙäLùå’üõÐóë#µÌíS61Sß²õÍÆ=ôúzG-²ÕGãÓ.35[t2[×kWôxÔ"%÷MΔ_Dò×CϯxÔ"[{oéÙäLÍ–äŽz~}Ä£–ÙbzÊ&fê.!¹£‡^_IÓ"›uO~“3å—Éò×CϯxÔ2[~ò›œ)õ×rG½¾žMË]Bñi—ˆ™š-Ë=ôÚ5-²™ãÉor¦9 ¾=¢ÿÏzµõæÑwÿ +¾°·¶Â›(ªEú°Mv±ÙnZ?°…a;¨›Oñn¼—`‹þ÷Îð&IÉb8Žq8Ãá™gtTbz–^ê6j§Æé}xŽ®Ç¦§KojÓzzŸž£¦…3ï²;Méb&G Ìdi2|ˆXÓ\aEîˆïw^+ejI“„‹t|¥“£À®`ö&·€4PÆÈ÷hŒß7Pâ\@Â}ÒŠKK€+j !+¬AŠˆY" 'b^® +ÂöPd¿‚ez2EžXa- ´ÿl×hŽÛGWŠ"%¬N¹ßÙ‘ÂG§!LTª(ºܰӾ>?zq~Ž­sþþȺ.² <†¡×î’Ki ;ŸŽŽíÉùŽ^Ÿ‡V2¾Ù0¢.â™eB†á:¯zn(QB'Ûf7,pÞ +V}èô-Û“BKxuè¸êBGp çhÙž™õ§NæÙú3‚›šžÑž‘ß!üÈΓ Ðz€ö‚)ç½ÛóÃðã?Þ¼ca¿|ºÿéîö”ývwóËçû?înÙ«Øt ëŸI`I©˜AtÒÀ]ÕðJä1îíO?NwSØ'ðÂÊP‡‘Æ!e(Vtb\9}€Í/a$ó~p^8w”[éaEZcGu[ÓâÜ’÷{$­Àî¹ÆÚ[?Êpe€.L1%v¬ÇS#ö%¾ÿq&I˜Ç=8Ž0°‡¬ówãÌ—Þ=ØE'z´ÇÝðö“’•Ya7‹)a¨ c‘TËÏY)É.. +üSÀ{€g`°È&>ƒ÷W±oajàâK5‡à6õÒ=I£¼I\¥NÕN‚WÚj( zC6¸X¯R¬¡gþ¿'‰n­á6rra¾Ù•ÎêçÊJýYá—Óf¥zûlYi˜Ï•†·úf¥ÇñÙ²êAÐe¢ë¾[ßJéH#SׇÃÃÍ?!€x¢ÜqoÏÓÞß®÷·nï%{•{/Ž¿;QÃ1ìµ'Wçß®ì50ÿP½kœîPS×åx¦^?3ísuõûÞ¾­Û´MÛ\ÞjØÜ?‘§5Ìk?A^_ßü›}zøÝ<|üåúþã# ¡¾Rìç_¯oÿØß^²Ëã7gâòä…f×oqá©'‚§O»8>?B?°ë››»ÇGˆ÷îôþôÃå ƒõë;;cï>±w/ÿûæÕ7ÿ;e÷/9ܘSöá%Üœ7hfôYTÒAã'fŸ*Ù±N:Ü_]¨¯./?`z{yòçwWݧ‹°ðâí‚D®6 +(!÷a4ÍôùâõUÒ‡|Ã>¼p p r¦{ÜìäyrÂAëeæ 3v” <9OŠ’ç,¸#®*8hÛ³3èÉÑ3Hyf£ž:;>D 3Úãà_âä¿MþÃ'a'»’ƒîƒ)qúR +ÙÝΆ¦ŠIÅÔû—x's Cw¨˜‹&sxµ™ÃT1©˜zÿïe2²f.›Ì•Y`N SŤbêýK¼—9|õÔ·E5›Ïê­Í—yâ—”Cs»¡'E+Í×óÍGœ ZNçòyÿï-§–rêæE0bá"ÃT1©˜zÿïeB§¾Â}“ù ˜ÃT1©˜²…÷2‡ï®š¹i2· 㛦ŠIÅÔªÞË|hê¡Õ|J‰Í—{B"¨ææC”ÚÍyR´Ò|ã°£ùˆ³cAËi‹ÙåýK¼·œvl”ÓŸc*”Ûv>Ô0U\J®Á¿Ä„»ãÂaÄ0U›«àblaz˜Z“Ô0U›«àŠ·09Ì]9aÆN ÞÇÏ ã¤ŽNUÇ•Cùñ«” +8€ìÝè0-Ý‚Ð.ä + ï„Z+ÙÍѼ¢á$'ë`żî=\bÅæˆ=x°ùDøL•£ Ñw£ñ+D®°ðdÍèHK‰, 98ÿٮѷí +RºŠ¯ ^®3Áûý¢à#_oûÜÉk݈‚Ö在ÛÍž Z6kÝèµnć„G¢ kÌwu|Òº~‹ÖmdC SŤbüK¼yÒº„ùŠÖm1'†©bR1 þ%ÞÉÔ0U\J®Á¿Ä„{P‘Èaª6WÁÅØÂô0µ0&©aª6WÁoarÕºÐ…Ö +ËZþR­ ¹ÖA™k]€…Ö…¿…Ö…­Dë:.³…åBë +Ѻ@:׺.‡\ëÂB®u­ëSzZëZžiݯ—µ®1´np +Z7  uCÔ-AÉsIë‚Ãv­œ“Ö 8i]xTÛ8ùïÕºÆnÓºu6Ô0UL*¦AQx'óYëæÌ×´nƒ91L“ŠiP”ÞË/ñ66qNZw.§-fWГÞ[Τuór®kÝ:j˜*.%×(O L¸Ù8Œ¦js\Œ-LS c’¦js\ñ&‡Q­;ˆR놕e­ Eµ.,üŸñªëM[ ¢ïHùóhtø ŠrJ£*UÒ6 R‘BT-ö{»Þuvסôêþ÷ÎÚ&šKò„?سg朙ïκI´7ëÒíÁ¬KZ̺ÄfoÖ¥ûÝY7ñg]z²7ëéÝY·ŠawÖ¥»³.ÝîͺuH¯Ïºƒáά;¾?ðéà§?CDqLóR½œ ¡Òé×8‡íÁ}dU0ŠªU²Ìç¨A-à¡d™.Yº‚)0­Ùþ>‡™wuÏÚo@õΛ´ƒ ð°4EcbÚá³6<2Q"t»°P¦çÿ^|úønü_ø¹ßë]µ£Äs/Û÷“Ïý‘·~?éùQlw«7½¿ãÛÜ]\¡uzÅ6Øéõ8€wïéÁMë²:BHhòïº ª‡o [§ã[R{­ÖN _Q0Ëq¬„Ò/-0¹½ÔF5ÜÓ +2æÈ„;ËÌXxIާ5Î…Q<ÜYÃÄ’B°«¸itár v…90SËß;†IEίqXÞyßÚÁÐÃY†A*Š$µ%ínà‰ ”¼ îööTš2©¤%sN£½!-µFiç…Àœ®ª¹¿ÜÝÃì„ö?%…»ŠYxÄÔ*mz&y™j÷üÑhÐXr…›†«`<E©çÒ‘…¼–ÓöÆÕAL´T¹\uÀ(º¤=×Ä’ÉfkþË­·d-¾poÖLÚÞ[ÈÐàžø~Xiqi!§âÊÙ„\#ƒÒ XEŒZ {D—ƒ'6¤Ñ—äû‡ë)d +Í\º`f'9¤J¦¨%fÀæ.¨”ê—`¹1h:o”¾ZÂÑhXg‰É ¸uÐN\SÉšíèh|~Á@Ð+Ê—* +¥m)¹ÝTe½MS¥£ÓÍ6í$öŽ'©Ÿ¸S%òë®DZA)KC1-]2KÑùvŽ)+M•—Ï” çfªäÒ°¹ÀcáÖ[„#úô{2åÎ2.Q·û}¯ë§ÞçÄž#a;£ÊàéQ'qM‚e(hS™½!"7ã„[ÙÝjËô- þP"év¼äj޼OÊòkK¾ŸyõS§ÖåÌ»¦Ë…#E^ZjÜ`åï³ÚC`¨¨ÈÜ™’µg,àOnœý)u_“ Z-¸À£lÉè4nèdÅ÷«fR(KuË颪—Lð%™ñu¤> ¾l¯JÓ¬XPÕª*ƒ:œÚÆëˆþs‰ƒî|c¨$dÆ4%Ó a8ܶ¶ŸÛØœÿ%ºfÉ\«Ðœblu êÞ óº_ýs8d3;q|ûTçÕMë·l#ˆ +endstream endobj 114 0 obj<> endobj 115 0 obj<>stream +H‰ì—ypUÆO÷éïBÈú=èg"K‚ Æ`@GdtÔHÈf@6¢ ‹!‚ ˆŠ\""bÜAö]! ‹5@Xß#oÎë¤^1S53LÕTÍÔtW÷œÛ·O÷ûÝs»Ï#ˆšR1%öüpï½5‡·HÏ¢ÆKÜ%2¨2r4Q`‰ô MÎLÊ9—-¾œo™žü„JÃIü‚ßq—à†W± +PMÔMêfÕRÝ*l»«hõ¸JT#þް“ù+wçZžÅsx>¿Î¥ü—ñ'ü¯æµ¼Žà-¼ƒ÷ð~>ÄU|œ«ùŒìµB¸îǃxâ $!iÈÄ“x +ñ,–à]¼ñ1>Å—2r ¾ÅzlÂ6Þ#í8ˆ +Å œÆo8‡‹¸Š:¥+¥US!Ü‚ª­ÊPPw«a*Yüï$¬9©Måî̑܃Ÿç|~‘ xr¿Â%¼€òb~‡—ò2^Î+¸œ?㕼†¿åõ¼‰·ñ.þ‘rå|Zö߸†ÏñE¾ÌWÙcÿ®»Ñ ñèƒ?¢?îÅ}xƒñg<†aHÆHŒF6Æ`<žÆ<‡0Ó03ñfãeÌE1æáU¼†7ð&ám¼‡ð‘ÌÙçÂa5Öb~ÀìÀ.ìÁ~RcpÕ8ƒÔâ2<Š”¡© u£ +VÍU+ÕZ…Ô¯dÕAYê6¦:©ÛUÕME©;Ôê.ÕKÅ«>ê •¤R„R¡=«æõ9~§ò4™ß—d†ç^7Çïñûüø/çúWþÏò¾ÄWØmó‰A,âÐ}Ñ÷ü“,˜Œ<<|¼ˆÌÀ,¢sð +J0 ð:þ[yÒÌŸ)íø8UGåR¡*\E¨Îª«Š” ê)9«âTïÿýLBÕÿ3é?˜I5¶3IÓt©ZS•ÓjZO;è §ßè²ô¶ rQERO©4úÒÄSˆå­º¾Uíùé’{—DóùŠh»E ÕÒÑKMWψöQ¢wÛUA+‰Û‘©+õ ¾hG¸lG¸jGðØ&Úž¶#v<Ã瘊/ñ¾Æ7˜†®øÿÀw˜Ž•…+bJ…bŠ˜4dC9('åÂ*”›l)å¥|dGù©¤BX• +S¬†Õ©(Ù“9R1*N%¨$•¢Ò´€œÈݰ•ÁšT–ÊQyª@É…*‘+Í%Om§óÓBZD‹i yÑRZFËi­”}­&oò!_ò# + 5ôäÿ÷~”ò‘û{ïýè)=£ç”J/è%½¢×ús]WAo(ÞÒôŽÒÉn "aÓC¥ß»Äz|bÝ¿;EU*«WTþÝ-*×ó‹ªÊÿ£rû'Ϩ|Ú5ªÚùÆf*‡ÑÜha´4¾2Z_­6F[£ÑÞè`t4:.â ºÝFO£—\éýçܨ\*·²Íœ›Lÿiüh æ@ÞÀyoæ-¼•·qoªîä`ÞÅ»Å}„ð^å}ÂÙ0/r€ò!>ÌÉGø(Gq4Çð1Žåã|‚Oò)Žãx>Ígø,ŸãóœÀø"_J_æ+la+_åDNâk|oðM¾Å·ù'ó]¾Ç÷ù?äGü˜Ÿp +?ågüœSùÞÄ[ü’_ñk~ÃiüvÁnš‡µ`/„ÂQ¼ { ¢`:DÂÕNµWTÕQuUÝTwÕCuV]à&SOwí dµÛK±!,ÆÆ8½„¥Ëp,ìljøóÉÓx”ê©z©ÞB…¾<“=x,Ïâ1<›ÇóžËž<çóÇËy!/âÅâH¼Þ{_öß îm5{ó$^Ãky8•õÆhÃÃ+Î&‘’è]§t“nÑmºCɢ΢ÆÎº‹î*‰©´rR΢Éþz€(:m¯;莢Ò~ú[ý(·µn£ÛŠÖ¢t´Ž½Òq:^´;Jâ!*v×ÃõÉ]•‹ª$jž 'êI¢dOÑóÑó|Ñ÷Ie•EÕ^’ͪªjªº$´ª¦ª%*MÕ/ôKQìCýH?Ú‰R dŒ):-i ­5~’4v_ê¡è²±(³©(ýš¾®oˆz]DÃD$7Ñt9ÑsQq=£¾Ñ@’`õ\¥ +¿ È4βIX:¹¨X69ræÊm›'o>»ü +*\¤¨½ƒc±â%J–*íä\¦l¹ò*ºTr­\¥jµên5jÖª]ç³Ïë~Q¯~ƒ/6jܤi³æ-Z~ÕêëÖmÚ¶kß¡c§Î]ºvëÞ£g¯Þ}ú~ÓïÛïàûþþ0èÇÁC†þôó0÷á#FŽí1fì¸ñ¿L˜8iò”©Ó¦Ï˜9köœ¹žóæ/X¸hñ¯¥Ë–¯X¹jµ·¯ŸÀšµë~]¸aã¦Í[¶nSAÛwì Þµ{OÈÞÐ}ûÃÂ;pðÐáˆÈ#G£¢cŽÅ?qòT\üé3pöÜù„ /ý~ùŠÅz51);)d'…줲“BvRÈN +ÙI!;)d'…ì¤5)èpprÔ›À˃=€™,u7ã˜>ؼ›q=ãH÷…gû?ÀfØŽƒ…L‡á¦@Æ*&ï?ŠB3ð–,‡9`@/ùÆ:É®åûåè`†@5¡Œ’Š“¶Ý…6áPíÍ{BžYê¼ôšyÀCáÕBlcz@Hâð™ø¨a0§š=ÌEæR3Pô¦bÍw…ý!Î|¬7­PEz¬%áÒœ{¡‘Œ2UZú ù|DGh2Óä œ„qÀÐâ0‚\åî!íq¢j*wYo›QÒª8ôšújcKrÒ}̶f‘1ÆÉ]½a·¨?Tæä \A[bš)à•¡•üžˆÇ•þnZzà { ³äuåŠ;ŠŸE’»¶Õ5dMüÅL€Bà]åi7IÏ;øŠ&Ë>EÅp ³ ä•yñʘmˆ": +1Úc7á€;¨‘CFt“}€ðÞVËÝ…I¡Â›Óâ×·ñ[£Dú53¯¼‘òà+$R8k/\…Óñ"ÞüãUÜÄqÅßîžtB¶å“¿m¥ñ‰Ã6A6_lŒ1²c‚°ÝJ.ÛÅ&…~$Úð1‡iÒLqK&ÚéІ¡'bR‘À”¡3$@IÓ:ÃWa’vp @iÁRw²œ?:½•nß¾·{ûöíÛ÷{Ë|%pâ²ø>âϹ «^¬a½ Ïaµ,̾Ìúp2·ãœîzžfó…¼? +LéëÅ1©¥Uú†ôx÷NûÇÉHò7É?$ÿ•š™ÚFaøÃh¿¹Í üä0õ,õ2³![p¡˜ÝΞFy–íBö`æ ƒ˜å4»Ìþ´½ÉîU hê1Eã_çOë^á§PNóküߢPLÄyš-ê5¾­¶‹Q‹KR ba +vž ìØ ¼xÝv¼©ÈßvãÝ»?ž2|>IÉÉä¡ä`êåcK`…Rª‡ö](k±ßð¸_ÐûÈoаSX[ ˬdkÙz¶–|¹Ñ>K÷ƒÈVÞc²ëÐ9 xnê<•Ïæü”¼—¯^¿ÄùŸø„ LÈùbŠxPtŠ^ñM±Q C¼ Ô½,n‰»()É)•J¥rÉ'=ˆ›é·Ý>’>²-Gä¹jwÚ³o³'ìÿçÈ òR9,wÊ/ÈoÊtÄÌèŒýË{ÓRv™@P¦ïòj©˜Ÿä'áÏ+©G´px*ßÏvðgØ ŸdÛ`ŸÇç±%tC*‡­‡âŸ'ZX3k¥µ|Fúkö<ÉÌzë¥_Ótk;‰/o°g²gùu{&bÄçbÎߊé’O¼CçÄ&K?¡¿HNäoCü5±^pLj@>í¯ÐA±ž=C‡yÈyÇÑ?^Â~Ž¸ÐÆf²Û"E‚/Õˆ¿"{~”ÿHò$rç°i5òëj¶ Yñ«8ØGôËg¿çk$ç²AâÒϰº¹Èû„-žgâeûu~Ùð)ÉIçÅhŠ-Ò Û2Ö‡ð röõ©-´Ñ‘ΰՀí/R™tÑm“˜)yQ?‡¨²1íMœî·ŠpŠà9‹áíˆ/£üqB‚­Áÿ¢ØI´·ñ­¶¹¢n;ï$—QGêUÚ“ZM§^¢*ăí©Møâ~ºJ/Ð~¶5ù4²÷ûqrγŶ?e ¥ª¸ÎÏòV>0~aí2dÆGÁí‰lo“.}H­´ ÕŸúÞ=vn#Ï} ÷†«´H§êäO…Ä:¬÷…S¯¥J™“úR_¥G€ÙûduÉ> ½m¡AÃüúyuskkfϪž9cú´©U•¾)L®(/›¤Môª¥÷á>OIqQaA~^nŽ[Éveef8'8d»MœQeP ÅT£‘àš¶NQQÁ|´¶íŠÖMƒù½^sƒw&ü´ + cs8’n«´ÊsˆüÓ|QƒÇLÉñQI~»)Ù<*ÓàɃÄò GùØ/[)È öÕ¬àˆ{ÓòæV­9ÜQƒzlĶÍmãZiyí˜l„2ráá#÷K +§\>ÖÙlD2 © ?»åÔ= Ù¯´8L JlQúuz½ÿç Dê†9ʪ>6¢¦Qçßž7®=N½L]@aÀ`s[‡®;ÇÉàjé ©àñÔñªƒÚq2ËðK¤Ž×šÿ¨ÇðÃd³ü/ÍiŽëè¡£xLשׁ !ÐézHSCzLïJ¤6¯ÒTEÓðü„¾.uœDê­#Ô…­úX§Æ¸Æv„ã~¶£µ#rD!Rw´EqƱÆh|d‘#*‘ßâr“k2͆j6¨™a‘‡¸Ãêï9â'ÚlI%‹aµ»Œ,žc”Ǩ;ÁÓ”:yp8à°ß4~Éòmd»´Ý~ÕÆYÉCf9ç¸g{¿W0ϹȽÈû\A“Ð$-v®p7yQ°Žü†o•ÖÛÛøƒÂ~õªçr¿.}j÷= +·ÅjK*§Y1²ªVbí(ÒZì† ÎµÚýÊΜy€o$šÃé‡aâD3J júÁp448UGU¤"/Ï&—?rªy‘Š*M • |}ÓHgkÏšg—½¶nï…® ºº^Ù0;AF0‹Ÿ9Ýx.;þI6›ý°û`?~;{à‹ûx^~ïÅm”+ÿ¿ìDtÆ0†¢U6±›H;9daO³ØŠxŽ0VË‹fô"]ÂÔO“ã7M—„Î]C3õ›€ÚL@!ˆ—Â5‰‰Oæ Å^ÉMdb‡œÁÎ+ à8~å¤Ñ†¼„sø¯!ÖPsŠÑü D8X¢ñ¼FÈW½3Gæøgùöåïn(z÷Ãtmqà²kÓñ•‡\²jªâq:ùz…RIÓÌÎ=êªÐÓ]œN)šOoÐuzU÷ÛàŠ.ÓÈõ$4d"æçŠT@¸AùµmS¨….ûm¢îvûÔ*$;Ëê~ņ‘àý¬ÌŽ©2êiT%”G@¢±!PF©Ãô^»ÙþØ·®pGá~ç;Îåëò§«Óc›ìc¬Ó¸iÒøêP¢ÛátÛì.›Óe³+ ÃI1lP°Ûì†? ªßÎâ*p5#@ÃÓÕUê&µ]eU‰Ç‰#ê!ž ‘x:Ž‹8ŠìxªºÇÖ÷mb)ú¦XË%A+JЈ¹Ð„ØÂh›¥,ÌŠÈ4>Óóp3T[ß hÅ 5/zAn—•@¨þ=÷¡[z»w-Øõd×òñXÝÖ½—°eÍîÌ߯ðfuÇΡc‡{êjòÈ¿Ng[e|teoÏMZµÕrnð¼B4ÿñjn⺢ïíOiW¶V²l­W–?2ø¶‘1a3PBŒ=ÌØA8bS Áh>ágH§˜2I(¤HêPÀÌ íO3!mó#i @G mÒ#zïJ2Nf2Ó­öißjßçž{Î¹Õ ÖËtÐLÚ@Yšž«h6j³T¥óYJªÍ¬P’-¢ˆéNTÜ"FЭsž[wpî„Ýêû O|;ÉHT<ÁHmN£ã šk\Ú8µÞ9Umfçæç9程Œ‹3Ö×eüÅø,TÜâœxNÓ:áa˯w°#G ¨~ìp–56æ™N/6` ôLÉ9ƒŸ©9ÉÑìvQ$Ôz"d)¬âæëèHÄ®3FN¡aMãnp/t¯psnûÜ2ç>Î 9Š›4ÈÄè@Œ§3¬11Ld»: +5’nÍ h‚`9Q YDË‘êhê ²wŽx +&6×>8íqæÁSM½wþ^ÇßcW~³þ«žKwË«9¹í•ÝK—ìç¦ØçU=ðÏOg?ûöý ѧé$ºŒî;Ó}¶ÿRdÝñ[„ ˜|'ó{‰´hös6ÊÁ‡1r&à2ÌÂ"†r&«­eÜ’j]¢YÆë0¶›þAª!ö ;. é +0iöбk­¬º,ÞF7†•ªwX +Ç¥ÀŠŒ@XÁ(s:Ëg±G;cÑIeŽìêoÖsßõt>sÆîÿ¤‡Þ ç_"XÓn E ‰c°×JÒ•aÈ‘àØiÆ9ýŠÀç*N›b²"ذ +8¦W!DR'GÒ8aCïtxXìDRf“O±ðe‡¸¬ø¸K£K‡¯ë~µðýRW4¨H^×'"$'"Ä'rE¯LIOŒ÷ Ñ¯eáMÿéÒéÌ¥¯ôþú’ƒÁX´01ä‰T^*Ó£k¸ 0š¬Õ +Û-k,[,/[nZxXoÐ\no®5?a>j¾l6XÌvÇVRC¥ ðvÎr bà+9*pf(Ÿ/*9óHK_Èá•£Ü.Ç®­°HÁ·®€+uþïÞŠú1Š%⑈I[kJép gªî®ËõõõÕL/ —±l]__ÿÞ¾¾ÖÁª´YâìÛè.®‚â&2AËáÊL$›¥Ù,cÈæ8!Dã·ÌŸ†9ͯ‰¦§×£"\¯‘ªh¤5Š3¨Ô'AÀÜö—¢‹ôsý#Ù?àÉÎì¾»2Œ’r™ŽER¯YW2›8ð’Ü7s’©‡nŽ©?Ìkà¨j;ã"„*ËV +ÄkTyÊ/6àèâµ(QeU”¤z£px¼‰]À¢ê ZŠnT)KûﱘU±YGèZy$ÖˆÚóèäu¨ $Ýÿ¤œ hËE˜ÆqãµÆ@»©Ã$üÔ»˜o1ADù5!G6±žœ|Eö™L)N%??/dø†2™Š"£'(XQp¨´á˜¤‚T0?#¾]Ð@HE¶¦f­ø«Ÿ³¢>¹ð)«·À§¨T…ýP±ŸÄ©'ÑÀg¡ñ]/¾6ѰqS3ã{I$4jFܲàž¬ÿ¨ŠÞŠß +|à.žH•©p¡ƪ-^´‡ —üƒª2; þ’ò2¤Þ`‚[RŽ™†í˜`÷…öƦµ›¦¯<ÓÛBG¯ùФñ«wÄ>¡ fÇÖWL}¾3ÖÿQw≙¯Ï9µ²éÐcÅì#’ÜX5qaÞëÈæñ6_È•ò3ÔÌ ¶ÚÔé®Ú´¹|³o©s£sûkû¶Œnú +Ó-ýÙžBR‰WL½”`ŸÎ ëT=47,:åÒS+›®p&1èxˆUàTo¦;¨©Ñг1¦)³gè)©Bß (é› ˆ´Â††hu \ klœsÈðÎm")1®T'Ò×{vtì­«ÑØ_·¤cÏ~J F~v˾/f,¸¶îåË Süõ3ôÉ÷¯Òi‡þvaèÎ_íŽ}½ùdìú†S˜Ç;€:êÑØ»«Z¡šIÇãè”DÅAŒ0eÍÔt礃ÊdFD™<úzº«ñfúÄÿzß&¡÷Ÿ$ô”B/ю܇\qÑØ§´26Ý`Œ¼‘3rBšÇëa‹òÀÌ +.9UN‘Y!uû©Ó_c†ŸÊfÉO`C¡|8VÑ"Ô-»e°× à3Û_R(xoÿúßõO×-jŸ¼dsßÚØ!Þ¼§ø'U/ΟÜ{—ÿéÕÅu…ï½3wgvg³/ï쮽žÅÞ±ñ±Álì–QPcá¤Åؘ &ˆ&Mê›6}Ч¡5U ´ Ò†‡è#@¼ŒcLZ¢å‘¦  +HZhƒ* MU#”R‚À÷Ü;»È ?R©¶÷Þ33ë™9ç|ç;ß +ÍyÊ:{b‡eí\\½gzÕ¬yýãŠx½˜áïGm0ÚeIB‚Èér&$K Ej Fú¢ð˜îÒ=ÄóˆÎÿ£\Ýuí6€rAkâ›mºu5ýÉ:­ª¯ÃÉÜg»X:²EH\VÑ¡=ÖÌÝ–g«¢N¨¢ÃPE)4cñP¡t7¸|ÂD1å™ämÚÅ<ßôözd…P9ã™îK…G%Snò|ÎëÚD^6Jå>a‡äŸ×[IIˆR"à YIe0e÷¾'°‰ ‘e§K +özU–§Ž@O€†HòàªT—q•ér;]ºé^©`eœôb®A¬˜NÑ·LÅê iyS§´‡)¾ƒþ:¨(Œ·²õàl8U‡ÁŽÝ?¸šEÚLƒ:îDöp/’î}ñDïmPEû”/4îK<¾ õWÈ=v0x‘±‹0˜µáÆ}n¸V×#ÏØý^; ¤ÂÏ$3ÞIÉŒgÌÚŒ·º–›‡&ÃÙÉ;ämÝ]YÔ•eóÀD¦×⤿ÄK°.Åí•Ñix¦G¬–½V+º÷ѺÏ7ÿT¹;[|çÞ4ñÊ=VŒo€6*†Jqâ÷FŠ®`¸FÖÜdžÀte’Y2>•ä$ÉDÙ)â”dQÐaVË3'epå”JíJdÆ8œ³º‚u¥YéP–)= +UdЈ=ÌûN°«‰9¥û ®rÕ£åt–5N 5.˜.à d2lëy†ìò;Œ„±+oºý5² ¸­ª’5FÈA¿lÎ΀ûÇfgd³Ú6«3Ò„h† á(˜Õ¶ÉΖpÓTJ2’7Ÿ ;¾5³È6‹À 3óÎþp.i<®t …S1Ðäî“:9bAÂ^WB²zîõ0»”ËŸéyäEqtÆlŽùpH …â‘x\U1¤D”¸¸32àý­WˆD´8Ñ‹LÿÜà܈k¥­Îùê<ÿ¢à‚È"­%6?þÃÈëD&!PœaC—°ÄúK‚”ï`Üä|,±¢Æ-NKK’SO¬§ù –CÇ8êˆæ•¿-ý³yæn²õ?›¤@ùƒüª(Y-2¡ÊuG­Š¦V# ù–àÕxú;xö®~kàèYk¨ï.zïŽëÃu¿·Þ#gp'Þ|ÜúÅå¬m‡Ná¿¶>¶Îâ?ˆ•Y×lå/Žº=HCÌIKýÏ…H£ÚjWÛC¢âNàˆÆ,’†ÌgMYÍqoNÁÉ1=†á/¦y>µå°êÎaõA=߯rógWÖž@¡WäÔ,³LŽqŸ€!ˆ$“~°ï+x2q}ÓWַݰN[«ñŠ·¶dçT­²~@‡¼¥G¬ÑÑÝ^³rá+aCNëØZzFåøsÃ"c«A¢Zm˜(…b1S”¡âP‰£‚Nޤ:ZyؘCçDŒ,WÒj—é—ÂÏ+Œµ…kKÚe#ªh8 ìv žP7gÄ3¢Ò*èÃT$BA¹ •ZEޤŒQÂ-M$|‘K’3f5–‰`¹Á¼ö 2³\óÈe†™bY >FbzEO©HÀNŠÆG¯øIô6å&Ž^>¾æty$ƒüSÕÓêélnžEÝŒ“»ºS 2Ç8-Í0g§çÀígH¯5ÊÄ÷vg¶lþÙoNZoí݇gf€ÿêèõ¾Î]€ó?ZÅñËÏ,l_º9›îÍü‡ñj⺢óÞ|vfwþ³³;»k¯w½?¯7Æ6ëß‚S&Å@Mb>j>^A1b +ˆ*I ÔHTÒ +¡J¥ +(Å|,*U$µš¤©H!N%ÒDhR¬ª4xÜûfwS#µRæ½ÃÌØof޹瞳{ÍeÔ÷Ñ8ÚpéMçw>>ÔX<Ž +g‘÷ÇÎUnvþ”™‚=?º~˜oQµè¾×}2ÒÛªV×<Î?YêëÜÑãŽIbCÉ'“È—"@¬_è£SŸŽèᘿ©Í´häÿÕ™µ<+å®8R.]‡ûÕòL®ÛÝRòª…±e¾¾ª'«ž¾+ïTöz_TŽI§”Qå–|SQÁáÄ4ůiЦˆ‚ÁñpÀËéš*‰¬%`8 ’ö"› RñZ·†-àÌGÓòqŽP€‚«”'€¿Úµä=8޼1WŒ%ŸN>—¤“µÖÿ[×ÜÿìA‰Ù¿œ–SKAµ,z¡ë°Æ5 åúÎÁµÎB#p‘öË3rìuŒ”|núUN¶—·•‚¢ÎÒôY¤U m®K¡ã„C z’‡lWÔZ?5p|Ýdˆ7˜˜~΂F‚žAB®œ=IÄOàá±÷výáJO݊Ǧ&ÞZ±µ·!þè'èÄÞ£‹ŽtšØK‹ßÙyüƒêTrѳ 5ÿय़grˆÎ·ï\ðÄ>âûû¦n2·Ù+T6íÌzz=3Hog˜T¦•.TÍ¥»=UÏ«éJÎÏ,£Wyúª{ër¼‚Ûn’ª€td* ánEéæHU@º2$­Í'¨NJ'q’Τڔ–DWj^ãêØ·+R[|›¤Íòãþ~k§o—´KÙ£%SûèaßiX9¤îM~?õ#é¨rÔŒ–ÝyC<­GÒa!…8EeÃ:3³9MõCqI ;#"8’ +H ÑL +¥ØK„Åuãl´AˆF´Ûçr E8ÊSëÜx§ô/b7¤’²äcãUÕÑïás(•¬…s4„mB»—¡÷Ü P $*Ú®³RQ -AëÐÓè0â 8¾a dI²4<ñB!MeQ–´mYÆ+²äÑ$ò{ÙðLx'”Ö‰e#—ô +ÉuÂeÅ­òå¤BÍë׸„.ö\wS"¨à?\5œ(5pïu2L7kÄb\EÒã¶ÿ°´Ðhâ|‰m™t2“N·¶´µå•  „œé˜ KR¢—龋ÒÚwö<õ«eKúf;[–lüÞ—?9yo{I9}ê…4¾ò¹]û¾zímçî«èªºõPï7»æmL¿“k?ÙÿÔ›Þ{^>øÃç×,Îç7×Í>ÿìÐûƒÛÿN˜Ú~ਢ‡:`K,ŽÂ§à»³Œ0ŠGܨŠÐE.†p#hÀç‘+ Äû\yàËÚðe%ª~Z‰ûQpJ¡‰üEþ«ÓS+|Np¤×‹7ˆ”Ú}sS\‹·ÆÍ¸† §šv"¬túô¿î’§ Q”çY¢áè/v:K¥µ¬ž¶ +T›VÐÛ¬njÖ­/°VR½ÚJ½×R_á_Qp™ºy…C9³…m»Ø.ñQs9»\\cn`7ˆ›Ííìvq·©°&I…:¯„y¢žsÈÙMÂÒB!bGi²çáyÖ (H²¢ˆ~C×Í@в ewް”#³¨kd¶W›`í)cð÷~„(‹åù¨iùMÓÒEAˆš:@]%¦j~UÕtAä-“U4U¤0<K[ª¢Ïcx&K×5âÃÁ`X}D@K©%ÂhÂaS,Zz!C…B£èà¯K\ ‡z&!ªM†C“Ö¢yý]7¾ÖÞJT#º ï§Uˆ=ÓƒÛƒlÜ~Yƒ¡s¬‚¦äHr$¹³º×‚Š*Å»œ¬wã5u¹cU9 ÊpfD´Yn‚RAÏã(o¸á-oè0yp`<ýÌÙýöÇÉp‡?ûóâDUÃß9[ãü1ã úwÙK÷ç;r;I_› ;Ÿß=xŽ>a¡øR¬ÁW'=8€n`ÏÛY¨ú +øpVϨîà;„i–ܪ·^݈éñ 2tɘ¥ò,”gžtÏ-rM†h‡§™¬§ÎW/§õ6f?ËGþâ·øåL‘ïó­–—ëQ?³‰ßìûõ!fO´w‡¾ÃØÇ {†½G˜Qþ¢þ{æ]þ*ó!?. ßdnñ·äúCЮ?³5Q± ÑÇ“$ðŸ#”yî)Ó¯Z^#ýý–-¤r–(Þ‹±ýȃ •(]6 ‚Чi(hC‘% ©ª¤é†áƒo†%-^âTl^ÈQ‚Ÿ¢KRL¤ý¢H{¦16$TŠo4‘ 쌉¶ˆÅQ´öbÌ{Ø{ÙK{GÑèùµøçc@¶—;g«KÔ÷UZ…›loŒ +ùÍ·â뀴¹E„³Eëo¡;Å;E.m‹ðv?ûE)ò6…‚¢VvòcÓ§+ÇV¹¢”#PEŒ]ãà#Q5T@Ä4X‘Hÿ5°ÞFibà3^ˆøÚHöþòÙª‚DÚNMUÁƒAÃ!É`§¡‚óàÄ:ixÄkö °ÄµzÁ'VÇFTu¼Óç%$A8gáAÐ^'‡¦ap8Ð5òåQ©0P¥$Üîˆ7‘wY¢y.Ê\™œÄ¹/œ—kâͦsßÇ¿u^š³¤íì¹ûZ—DD”ô 3€-W÷çÛ9†Î!¬²\Žòè°‘î æ ®D߯ ’ÿ:ÿÚD»Á“LOtºŠ ¨$Ú†7ZÞ<ˆ;ž¥Gî!+eœtÎ]iŽdØœ‡SiœåXá3 ò@‹øÜöº«½.üt5,2ñß–@ñÖ¼–h£sÎàø8:ä á2d©Oœh·)šƒ€æP8ÌR!fî#D¯«7¨Æž;ÍM44•æ”3ð $.œºÅT1ß ê¨vÜ`?$HB}H +×g¥úú‚Ôf¶GfÕw×¥bý&i ~]Ó¿™®Öà&®+¼wWÒÊÚ·´Òjå•×É’‘‚_2ØŒˆ—‡ÍÃ6˜‡!$(^&ä +Óv0C¡0…v†ü€¦&…ÐBi !„ÒÁm=Ì4 cOÌÄ ÓØ-i1f2à›ÞsƒÇÒîÙëkß½÷;ßw¾ó–°§è°ïHà¤à‚•ã†Ç}B?=¯ÿ>Ú©wEÿæ½uÎô¡p +”@·›Ø b†*@7š 25Ó‹OHTÙªâsl³ãKœËbkœëc[ùóá bÊ䄈lrq(¡•å©þWŠ6ÑEF±X-ÛÄ'¢½MlDFä¡‹`o $‹°°W–M"…WtH¾Š£] O÷R Îü º&â*3®h…¼‚rÚÎ !zjGïZŒ†l€~îÅ›'Ár +8¸ ^Gd¡ÐXå] _²ÄˆEÊ…¹…%…í…ö*èªÀga›zã< JaÌr +%UUôÑ*T¥Á»Mƒÿ¨…ýùšˎ.m:ª´C$- Oú?é]xx¸bÅI#ÃâŽÒÊ1›Ke°I‹ÉØ„cëëIpŽÅúúÀ¼õƪû‡{èDžÎÏŒZÔ*bOÁÀJfðÊ„Á”Ë6™üT$"`ÚØÈó4ñp>¯Wõi…Œƒib§‡'1ÉW?in¿4ëÙzÖ¢òš½;¶Ïø7vïÛ{ªQÎÒò/ÚÊÎMËË^_¿î—…Á]Mµ¿Ù=oç}cd`䯻èËMo_ýk÷•«XGŸÜaú±^ЋgiRëâ I²¨Fj3Ö>›ÛàX¿aãèe°{–ìžåa÷¬ »gI†_½ve´géL•Á·´$Ûš•Å#Әᙡ-ò,ÒÒž´v„>ÂŽËǼSÐ]Íôz¦Ù¾…ß,´ +'ø²Î»>ây¿‡ÿŠfÄüW¤MÒ‰‘–k{ /•Ưu:Jݦîcó%Iõì üê!ÑIô)?ï/ÄÅLì±{µ@Ag6Á$@0™cxC],2Ùj–fE˜Äº`Kä•-ÍNt>í-0*£äOµÔ-*¨#žçìoyëo!{ÇdWªŠåT/þ ã¶ iÀmJI¸¡û®ä˜äÙàÀïzFþÛòõ¾ßÞ4Ûõ/î=uüGÍ?A»µ»P¹N#zgû{Ù^ûóç7þDjL-ÆìKÌH3²É:î¢mBXH3{…Za,¥»ª‹Œµô«öÕY«Ô´Ña^³_÷ÜÒû<}ê€ö½0Ïgš±Ðµ.Üe'Ò!a¢o +]!ÔÑ5B­:ÇXêZ"¬úÿò ¡¢Œ¼ŒÈÉf$Ç*¦$ÃùËV¤°,w+HV,%­´*˜š£UÜÀ…- ªâ€ Rañè7x*>qE„ÇÏ÷Kqð?k: £¼é]f»Ø/Ù'¬ šÏ2lI9¢ÓlÎh*ØHYbIõaõœDã8¦¥2 ýÃãI—”ûåád/`–„ï3žeR˜f ÅXŒGÜCê3ž1•«;w\ßÒ|mWúâ‡sOoÙúþ¯¿¿í½=¿Øÿí±6ļµ`-ÕÒîÏ>ý㕞Ï:³:¬¢9˜g^ŒÙ"K3)ÃK71){*«‰[Íl°oÊZÍ9½Pɶq`-„(hÀ5âþÂ>¤l¥î)z©1Íݘf,p/×+ܯVÛÛ¼ƒô _¦|H4­Ñ—ömö1>C:(•iY¶e.–ºHŸ‚ŒS³Ì|î2fÇ!ffazó©XÀÒÔ8RâO³"g$Lüôa¸0wk”Y™¾r9ÄZ¡ ‰1¤rÇ!e¤F fŒ|/ŒÔxMLņ{çÉ™Xl0Ï  „øBör¥’Ù$i2.0ݤ‚¶ŒQL¦ÊË(Eeó|€Ê+$E”yùbüÞ'_ õæu$¢Çw\ì^µ¸‡^ÀW.Ù÷ƒ“h‰vì2±Øó(:ò÷‘GrnûÅuèОëN`ñ`[íŸS¬5 Iz±^¢[úfýÿsá¤à QáŒÞ¡Ût8hÀLÃK† yé˜ê±1ÊÕ¦"õ‰Ç²iaÅÐ?ò‡XZ™€»3ÌÄA +éÐD·LJ ¨(ŒPù@*Nœ!)]*œ'5êÑHðORðp0ô1±aÇüú%t‘Ê£‘‹Â]Ð`l °Y‘`;Ü/÷÷ãF¨:™[Ü_¥à³±ÝReÅ‘Å:œØ!ÉYîlJqHÙ·vîD1Ì“0Îå‰É“0M°¬ªy˱aÿ ­Íصµ~yveÙ™]]Ìáý™ ‰Ú¥îw]µé•û¯ÁŒ˜>²€ù7fD5m²ÒgWã\X­çjTGVPƹB5^PÅMRçrµêön7äzè'Ä#Ï<©Œ³“ò&UÇk¹Ú¼š¢Åy‹‹Ö³«òV¥ã­ñžÈ¼{Eó9¼è³ç¢†‡%•DÎ¥JHi¥:¨nÜD\ h•Ù CrÕä¼Ëç-—»Â~·†dÍÒÒZ«f‹ã#§›âDÖ4"kÚw²¦YÓ|äwQYƒYx•5 LÁÜÿ³]-ÀQUgøœ{Ï}œ{÷q÷u÷&KØM ­«!KbÒ´Y+):”€¢N¢l­L°ÅIP¡¡X•б2©Sí´%8uìXBÈ0@™šQ S;­Ž‚Cj¥6L뤨$éÿÿwm÷œ{vïÙ=ç;ß÷úôCQì‚W¢'£g¢ÓQ‘¶FWB¡#ÆD+Ûh ·3EIÛ¢¤mÑŠüÕU£¼A¤½$oŸŽ9W(Üäè±QäÏ(¶˜vJ=P”Òi7È…À%й4ä $™Ðı»ç€½ø†‡zwy¾ið½ñN?u|ëþuï üîïÏíïýþ‹/oÝòbGåÍþâ®;Ÿä-ï?ËùŸÝqqý…“[~­^uz䕯¾ñ*&¶>ÆÔ¡j%ùÝG™ ?•.¨[È^ûb‰Ú¦ jNWÒf,KªgÑyš‘´­/‹õ …iÉG$w©Æ¸E„A~‰®I„@b°ˆáÆIòv²ß£$2‰H,06~®´.øúaÜ[Ùî"Ó…†Â ;î*Ýî€;èN»ÂU’>ñµèÀw‡õ°œœ³L ÕHP±SLK[iâG3Qfèçd +ÑR!ËÙžZ¶ªl.ʨaBÅH1Ç!Ò0¨`K`›x<`gD~DexØ^2 fþQ¤æùúÀ%ºn*V#õT¬oxûȦß,~ø¾UOµ€%ü×Ó¥~>y—²¯oÛêݽ“¿Nî à%p}{»ømÙ€+X)û倔#òŒ—“YÙ-wȽ塳rZZY ËŠ*uu;gº¦ K7|‰½b@ ŠqVè#b\(LäÄ)¸"ðÊÊmbvßí›°ðS)›˜Q6&÷L ‰,ÜCÑn^¹{a÷PÆZǨDà?ù=ùÄ’ú” +»²kxxX|ròä)Q÷Å» ëÓÏOÝÌ›iÍqöN±Mh¾öUQ¯íÔ´´©i†ŠÐŒ‡mEM†DL³ \¡­óbÑ~PôtXö-«ßæY»Õ^i«6®¨Wd;”L((Ø”)íù”LB¸(Û¤LBܶ+É—«—Íe5±²AK»Ó¶néG=¬ufXU¼iv}±úú>Çl N„éDëLÇÊp12,8¼„kçDiؤß9<õ½š†lcÃpýõ{nçOŸþlÛs‘›žk¾xmEò΂zöÅVî.fôÀ[é·ëwH5þ·6¡«2„è阱pyÖLGÎt€Ê|ð6u³¥Äõ\¢º`B8;_XÒ k4PMÅÇaDBz£\Pè×XÖfõaë]õœnì×y­^gøf“~l ¯ wŠN½Ã蔽âí9ù†þñ'}T?oüGÿÌLÅ-KSU¡èº!¥ 7Ò4}CO†® +ákVRÓ, ¬09KM7L`,³Ä-JM 6Z‰wÕ9JÙ–Ê~0@¶Ï²"ã­l%0ŽgqqŸg„8£“Ìâ¤'EV +X½ìž¹XÔP‡ÁúLäK çDy~á8·ÄÒM}ÚWò¢×y Z/ް›-*]ê”ÝÂË%ÏÊÇUEzáX´ §Îÿ k:Š–¼ºªIšUU-ØCUMÐüq(GÍÁê&ú +à|Áÿ²|ž8Êôé‘¡ê&qdÈÅæƒ!§Iº QsÐÎwÂaËñ÷7“.|Z2ÙBxjbÈÇÿq0¼—:ɺa¯‡ôŠ×s^Ë `(éüÔzþÊSû~ »xœNmšìR²[§îÄsù\‰¯çk$PÚ¨Æë +Ô–íµ‹‚¶Æ§¶èC¹‰jYm¯vF+á2®©Y­[Û¡MkÔÜRÔ@àq&ú8›½Œ@ÌTæªý…Kj_5Gí¬?f–ÍX YЙ&Àfµ‹µ‹Ëµ Å+Ÿ䋪ôÆ`wæ±aíØçß,×P½ jð¬ sõ˜´L˰TÝ©‹é‘ Zñ2ÈW=ŠvŽ¡Œ~,}Ä}Ï?üþwö­r¬á«î»ñÁ_‰º=ÚºW,î|PÙùÀ†ëŸ>1y +[:ý±X(†Y¿ïpÊÕ$€‰D²(RòAìUÐ qê-Óo4o×;Íïê÷šfÁiŽ7»K¼6gy|¹Ûæ­ÑÖÈ[œR¼äÞâmÐ6È.gC|ƒÛåmæ)©ká;Õ[µ[­;C÷«ë´uÖý!+=O1Œä‚ eŸ SeÃÃQÃ)ŽãþS‡<vêPE üµg†cä ÕXt4Çoš_[¸ú‘,ÁØ':‡ßy„o„ð XKúÃ\B¸S¢(lQe¡ŵt 9§'_š(•æ` ɨu ¤rl–-¹Z[-×jk¥ÀÚ„oI8KQ(bsCÑÒ~ôú{ÜÝöÉ“g¦ÆŽõí:ôDß’à wošúpòíO~Èçóð‰·Nœ~ý­7á õMÝ+ªÁ8›Ï×w‡œkœ¯9ËÑšÌ)ÙÜ—CµU‹S‹«¾QÕëÏ™ÿ%»Šc›¸Îø{Ïgß½çs|Ž;ß9qÛ±&4qÈh}ÚP(‰(++!aÑ(l tmBZ@@TÚÐŽM´R§R@Tk™JJXé$T´«"¢]Ë„@j†Z¶lUÅ,ÉÞ÷³”JñÝgçÞÝ»ï÷}¿ï÷k2šB …¡åÊ +µÝhu+kÕ.íicmètäbàjðªu1< _LFô˜”Ñ2%õR“öˆ´PkÓþîþGÙ„æö9ôÒR`y½´ÈŠÌøÃ³Y'ëgRD@prÝvÃv,8õývAÐýK`)”@È ÖblÖ‡ýu¤®¸¡Ó\áøþKå8‡[±ÜlŒcÁÆXTVá–š°— +c„U¸1§HŽ+6Ë›‚8Ó¢ÝCÄÚø­ÑÿÛÜŽŽbNhbÁµ¨'êñHU/ 0´IŸcz‡›öþbÇH÷s×6·í®öy~ãûïö­œèržzuÉ’“oš¸ó«ÇšÆï8Ÿùìògþ+tႉ.ÇuŽ¡†Jñ,{—›dH:8›,"›TW®$g.2÷„„Y6” Ï÷Ï-õ/ ­ò¯ +u†û×\—‹o¸¾Qoµ$ªfJI½ú(yDm#]äKõoÁ¯ôoÌ¡ÿ/–<«Ô-¹¥Î(ªC•š6âÅš×övzû½RØvót†zÞb`B/0®hF¯ ÒîÕÅÿÄ …Ô{uÈ5P…è@qyN°GŸ/þ‰|A¾&OÊR9¹­¼㢓-X(GEoëyá+úÙ, ÷Ud§MÉŽžÅcã™i8Íá(Íù!0¨ûD'ù²ŽQÏ5ß4TUéýOœšø÷3_8Ûsp¼âèÆõG>xþ¹C]D™Ý‚«±|`âÅ#»nÏsünxøOŸ^úüS˜p/qhÎqT|è¼=»Æ5 Ǥ¬4OZ*­‘ú$õ)T¡¿zCÁnшÑÔ+шûIÔ—~¶vï`˜¦õþcû¦ — ¢ï) +QÃÈ5Mä·7Ÿù¾=å“eTë¸Õ;Ê“©iäÂÈ!íü@ÑÖ3¨^ÜQІ y‘ù xéàƒ]¹+|è¡Ù+a)ñNÏ‚¦w“͹ÎÞñK…Üä׎Až…™ÃÞ,EÑ&ºÎ/‹®Žn¡»èöøÿûUtx¨a™‹ª>7œ!ò!Z-fÁv¥¶³vw»ÚîéVºi7ëvw«Ýž¡ÄPÒ›LÄ“ñ³âml¹û©ÄS©¾X_¼?¾½¥îMí¯úõÌÃì·ê¡äáÔñÄÙ„ž*(Ñh!ˆ‚x!HåÝáÔ5Ä +A¼”q_a‡Û”d¥Ê$+’(‘ÜÕeÖIòž5« ùåfÎl5j~`^0]^³Ü|ƼfJåæn“˜§86%¼.ÞC˜£€Ë5lc¢ánô°† гXÀ^äËb\Ý^¶®Œ”•–Èlñà†ÛK¥Õîr [qÓö³µ°¼ÚÎ æÐ-¦5bF`¥U¦0ަ.¦ôI²âC9žæKO”6ޤqž+ÒОp›t¡Oypó÷°(m‰GU$ÓÙÎÚÓµ$WÛ_Kj5ŒqózW”\$ŸeNíÀ °MØD$îìÛóF¦â¶¼Q$ˆA¤½V°µæý0I9 ó&Ÿ¢â1þÑø©·EH$ø©'³xš&ãZ.Êõ7Öä 'mqâÅÎÿxÍyõd'ï Çœª„O+ÖüšÃõDBˆ¦ävÞÇáÿZQ ¡hÌ£*3X§’”¹2R•ke ³2Weù8ÐL:³mÛ64ŽpGoO‡¿AÏSM2‘¬&õÙY ùÁ{Lh±€Áµ™&ùaŸÈ}è}eó–õ•ûνÙ:÷Gé×—n=Õæ;¦®ïÚÒ­ë5¡íŸì_Öunë…/ñ¥k{WÏ ¬¬}t[Kó¦TyfÁæŸo¼!VZægñº¹[ÚÛÞþÉQèÓøäw$í|è‹ã5Kd) ;—ý&FXõ0ì@ºF3^ÆG·ÃíÕ¢(Š=Å•*ž”•‡éÃò³r¿¼G–WNäcòiyDvÉ0¬«äü°ÁwCÀYrÞM‚Õó +:¯É`öóÈ5%ÍòªRþéFAA ï¹9ùÉ!šÈ’´"×C\²âRœ +7"’BÅB`CÒém|þòµõš$§ÎÇ bÄŽÜ–Ë+µjî!·ï—K–ìš=ôÖЂ§[ëד½ãÇ_»¿yÉÒÝ;Hã+‘ãkŽÃ7 ™÷ã'mé ¦¸°‹!'Uœ˜8ãP~ΚÌÕaíê0/ ˜v°ÕÐGõNŒ¢¾Füîñ5Rn3³ +gºãüŒ§ÎüŠ/l®È¢?ÝI£•Y¤óÿvÅ~!UE~ðª3PŠ&X#ªg P3[†—‘åÊ“t ^Cº”.ºmÀÈ&e#ÝÀðyÙñмCy•þ½A_gGÑAv +}$²óè,»‚.³¢¯Øt‹Uñ×aA¤³J°ÖŠlFv±žuòRɺĻSþ>ðê$²í +¹€ß„œ…¬ˆ_‰Ó©º9l5W3<7ü3œΠš\N@²˜¬(•”(eÈA&ŒùF—,ŠBvÉŒ:vÖ¨X*¶mÓ~JèI:a;ûÄÉ#›Fˆ£î›j³ÌñŽñ+86ÚRÔFnÐeŽ·î€³:3°õÌ@uN˹Éd¸#šnzQÇò +\ç×Y þÿQ]µ±Qgxfön?f?fgnï|ç;ÇgÃÙgŠ­ÚÆ¬ãÀÒ°\C )®%‚H€–.‰”æC©š 4?Z©À>ýD ¥ѤN©JA¥¥¢ªI臫Tr¨(õ¹ï¬Ïxwggfo×»ï<ïóš«NþyºôB¤nbßúÍË·“ï8*BÑ!@‡ˆTM¡ã4Ò™†ì£†B¥–kŒ+ý–Jìm°¨ÐãYkê¹~Ç /€´ÊÂ1å +F¸!¬2ˆ†m©2¡,ŽI„F8•>MtTgdĽ:â^)ŒHôÉKÅ)Ë‚L†4d ‡# ”,æ«ø\áÙpý†'o†™îpI;FuM«›©ª—týI0T=³5¢ZFLM) ˆj¦£ ÅOËèi³ +*؜֨œVÔ¦uè8) Õ@ëÖ»Ìl!_,V±'ÅFíY}½Ø¡îÔ¶é§Õ3lP|ªÞ3ò&Ï£¼]ïäY½hòæ vñ¢þý€ò¶u&‡ÍŸYhP=ã\Š\Uÿ`ÜŽÜf‹qõ¿FÆTå놭¶,lE¶iê°ˆ@\×ôœÆrŽ,ãM±±•³‡'¯í’¥l@_cX«ÙØ‹©Ôäu´À—Gž¤«ù&ÞÇ_å”Ó`Q.ÇÔÂ<u1´µM…qØåؕ۔úÞ<%ÂÒ¢¥:Ô(Ôåø½ëT ð,‹‚u”9Ù_rMÏj\ˆBTó¢QÍuÎÙŽgÛŽåNêÜŽ¢÷3¬‰ˆÎ¸åØáë àq]×4™:‚1ÇAÔ»ãÚx½ÅÞk+ö0>ÐlÅ›éJè0ùJ`ôp¼™ïá„Ë‘éFñšèH.’ëо»³.´D©îñb1 ¾v™dÅäG÷3Ë-oð鸜uTîwÜ šãvÊCöåÑu¼zÙŠ~;keÉ»“7ÁÓÞDÎäå~Ô̲0Šç”ÿz»Ž·.ƒŒÓ'/ŸÐšq8Q³¬ëxËÒ•áìÍZvjVÀìCá,ñ$šCÎLý§û¿_ExŸ¼yŠf#Y$/mà«Ã§]>š$ø‰˜_Ô[³oH*‘^JÁPB>‰UHR™¡Ô+¸«töÌ‘y‘–#§Øöèà±RÿÙ# ×€`Þåï“&|0BÖÝ»Núþ÷`:ôo`ÿ©¬Cq†M5B •¨6 ’…Žœ5BPòŠP˜À¬6å«R–¤ü•ì­È[úAçì\ôœzNû€,Hø•J̈ەnî0_Âo˜z“øj¤Wë5W8oãô€9D†­KæûίÝëÊïßÚtoQ1\¦…gIŒ…*ÙÍ‘=¦"b#J äˆ$^@Ð<¥ƒuªªhºa`U5¢,=·1c¶k‚© ¶©X.UaÔ½ˆ.ÄÍ!ÃCÈPˆ}ÑÆvÎR<ËR¨a( +Q¡°,D{‹ìÝV-ekUcw@A†u‰ºWUÔa² p²ÊnRÛ±\ÄûÂBµ8>% î-w|ì£âçð,µ¢XFkñÛî$_Ÿ±ýzˆÒ©NºzgýN²Ê7e¼Í*ߪ­ð8äødïJާq×ÖøFñ§§·¸@ƒ( 8-RzÚ¡0Á ï+üËÎÌʺVú>~íÆõŽÒßH—î.lžßr¯dM|ˆ÷–Šð]5¥¥Ê¿#•ø?eŒTQ)¦’I1¡šj,,kV¶Œ•TS¡òFer¤2åÊ“ÎX(éS,ƒ™üˆç3~Þ{Š£J`° Ù|s«+Í2DÂNŠz³Þª·g[³í6ç 7ó"{"Ñ+zc½ñ bClC|‡ºÝÞÁwz;ã/Û¯ò×Åë±W¼ô°ù®{–ŸñþN?ö>µ'Ü»Þdæ¡iD%bf&a±}La©û¯¾¬A±Œ£vÆ,¸œCÊ‹År‚z0`aΤžiÒ˜–eªò(ãfHSæ½ É “y bxÃdy`Î O‹÷Ãxþ õèKi*/…Ñ +²V³Õc)K¬I‹Xð‹SM bCæõ§³}@Œ¼‰­P.ˆ ;–tÇGSîhqëXeÒ {() ‡iDé€$8' NRûCüë9À6I`›³Èš¼ÌÉÛø³\ãMþy°Ý§µí¾Y6÷ymÜ/£˜< À'V/=n»ÜX*ðÁ{¼Gfu>QÁë¢féùó7 +µÕ…¿ö—6}qfsßS­¥õGÜüÌôFVÉOüÖK}ÛÉÆ{—ŽÍï]&]N¸ç +àÊÁÇ[ “_éDà/ˆŠVàÐ:x.¸VC§ä&×Ç>]„'닌w5^N–ë+%î&ü yFÎØ…·é»Œ×ðËú+Æ]¾‡ÚPØòõl;!3ä>;ô;!h²²ƒê`ÌDz˜úèØ\"Úç’öÙ--ñµjÜ…µÕ‰xXÀÉ©ú‡ ªÎï^›%QãÿÜW{P”×?÷{®"º‚hÐ*DEQ² u¨ˆUñXÔàƒ¨éÆÅ´IÇFA¥3MªCT­¬ˆušFÇIÒIœ¤]m§mªÌÔÚÚÖQ[5òõwî~ߺ®™1M§ÿtg~sî=ß}œsîïœ{wlÞø¤¢ñq«s#¢Š—<·BsM.¿|”wA¬¿l–R¦ÌÙ*f{¬œàîÙ0ó•î;S}RG¿sálbnFƒ{ÀªF±zkÂÞ÷ë¥÷•'Iµ®ƒß)'2 1?ïAñkÞ,4 @)BDÆ'&ôíß;òPÔÀì¯%&÷ËŽJ4’³‡Z¶qˆ +Dˆų́ÝuÃ%9÷£pù¡(ôu¢Ó[QÌÞŠi êAF{žÈÌÈÈLJò<‘œ”$U†(Qýû+ëÂÐýtaùSº¥ìM¥ ¶û-OáÓÜ 3«îLY»91óø…³IS< îþ«»ëk gÕ+b‚ÞI´Á›ôKó’©5ÏšÊu—xÍÕìRÊ]¯¸”B×Óø[殕\mæ Qà"ÔÛxnFPŽ EÍ!s¼+™(^Û«á%ùt\‚|a§áë=NäÎ_¹ŠS'þ£¬_‡ŸX·.Ú“ÓÏ4Ìd¸ºñLÜÈE£2<ªö¯÷U}nÊôþ¥²¡]ž’÷FiŸœ›®A.â_Ë¥ä,OúÛoÝ9|o•›\½Ðíñ<0'vϦ)nºs¸;ÉX'ägl5l•’Äå=¥•S 0ÃLßÑ‹h¡ØB%J+md¨ƒÉ«¤õÛŠþdÈS<ã ß9@0ÐÖÍ–ó¹±'y.Öxž×‘²œJ\q´V/²îa¿z­ÑnÑ.Ñ#‹Ö ¿óÞÕˆ2y æì4Z©ú=ø¾ºFÈ…è7£½óÒìv³ŽbYô)Xg›ío²z†2´rë3øòM¬™TcÈiÀLŒ‰†|Ø":¨FtX-øIUØ ë\[æaÍø> ó†¡_…ö@Øa@ö€áÊABÕ¢ŸAŽÿÅ¿ZÍ>}‚ý¶M#`ãÌP`Ïw€¡J–ÕÙ#ĶpT…a†šN>`0WùÖhß x½®w‘Êï8N¿&he4};çëí´‹ûÀ,‰rëž¶‡šÔ4ß¾kì„eˆ÷XàQþB©F"m¿r±~%Ј5ÿ$ùPF °ÿhÈt­Kr¨ØŽ½þæÄ‰cƒ~%ÎuöúœóóçÓq.À³löÃ1çsEÝY{c3  ß™“<‡çc­D›‡-÷%µ`LâúH ˆaHžÙÀ·÷±N,`ƒÑ@Ðø€làm`8ö&ì«J¾‚3ÌMÉpCï@ a›älÀ‡Fyžœi¶×â}Œƒä³‘Àkr¾0gaËQgmÎ)æŒ#%¿}Ì{ñö“9”È=í*Mgd‚[Žä¼ƒÍœ;•BªÜW1gÙ>Gr\˜k2&È [æ„øš&sÅm¨Íõ*G:±ÊÕ´k.5–£¦4Qž¶òÔÒrí¦Ðh= :øƒ±G”«4ÏušÒq–sÐ=LÖ3L¿ø–~~¶!ž~j@L×i~åqÍ/t½Íº¢“èÔÛ”—eû!q:ð%#ôÛªÿ*PÎëm¨™mÖŸu¿eÁŸW9'Ì«" ˆw$ôoÀ×HQïò‰f!¹ ¢ÀZÍKÙº—2µÓ8ŸÔyäô…úgô®ZGµšßú¨  +ÅOÕf -Sv¢¦a/ålü£û¨Ã8ïbË2¦Yûvë€e0Æ¡ýk@·öÃïƒwêB«Û¾OSœ»4 §çÕÓi]ÏöÊzs~$ïÑ"i_ã0mÒïâÜQ¥½Mv"ž°Û§-EÌwÑvø«nA>B,æ˜È³ zŒï¾Õˆ3ßEuT¥~Š÷ÏM§¾ò¾˜DŰ½Sêp§²d^L-ÆU§¢Öž¦2>+öƒíá³w½@‘®Ô ?Õ~‚11Ôãšd ¼´_ò‚çúˆ8æ +2ÁÙÙÃë5Ë9^вã±WÆBÎÇ[„ùűÀšF ͓ô†^HÅÈ¡f³‚šñ‰°Æ>Ì+d[0o ¼¯wÐ"äW jS jIþ—XwÕ6øó"ê: V Fmô˜^ú¤ï¹Z ÆnáüQ[)‰9bì@æ÷ÄÚª¤©†ê «ÓQ'±ï6è¾üMCîÖb~œ]· {×BÏs'ñ[†ßœ/¦—¢ +ù i¿S°¿z…šÕ|ª'»v ›)÷…÷†cý—ml@êÜ)T7}OêÓé¥Uoù=©UÒ3ZSÇR¬Ö—Rµ‘«·i·Ú‡Jµh·v‚¶s_‹¦áêøßŽ·%ëÏáÿôÊ'è×S‰–ƒù5ôœVJåêQpïWÔS[‰³Æ<ýàÉ0Ì¿ŽumˆKT¢!·ªÑ¾mäqrv«˜¡åQªœi«ƒ0›•™ˆ[>Îörû{akÐNÇÆ/°OúÉëbÑvS‘uH HüS«£6 Iù-MQgÑKâ€uJì¡i¢ Øcã§”'åQ`.îxØŒÖ<ô6P‰ö(ÈŸ‡}¼Ý<ô)°kŸ<Æÿ Ê“”ÁºF ø…ó-¼×éC¡²N=Ð?Ž»7àÿÉ=+ñ.÷¬S p1Ÿal¢~æ·©Ÿš ýÌ ëëƒOÇiØ£ìyÄ9J“1 Àê£sý¿.†Èx–öÝð_Ù÷U€óÝ,‘ñ½F1QoqÞºY$Γ[}ÐOE?Ú‰§sNп&õaç®àOªõÏp}x?ü\ÕWŽQi(ùð*Mdh“0ï»:i"ÃxßÞ{¸¯íJh„º‹m“îs(™¡ ƒ­yröÏ¡F¯öÍ€L‚Ì‚œ™ïÈ ¿ízñççøìs-é +s?'îçÆ9¾k¾xÍÿ' w>:€÷ÿ×{ W7`\Ä;dÞ‘~¼OQÑ=Ô’ÏÇ?FZy:ÜÞÝ)@$Ú}¡[Ù@t÷&Úë¡÷`)Ú j²ß•±ÿf¿êb㺊ðØ^;Žã?9“&Jr…B*{í8)ù¡J‰òGh“ÛIÓ‚®ïÞݽd÷Þí½w½u¨„Š"@Qõ¡H—"¨D+„”ª)^x!žˆª•’Jó9s¼›dë4¼][³gÎ9sfæÌÌ™™‹µ7ål¯ð›Ñç¯ÿ–è¿W?Ñç¯ÿð%àï¾ ü/ƒñ{ ÿ'Î} ãÛzÿæYÌç¿Äü_˜Wg€_ĸã`5`ç¿«@õ#-ß¡÷}¼ý÷LJѳXÐs3Æ_`<ßü ñ¡ÇÈŸmÆæoÈÿíÆnù–hµðÍôwô}?MûÜí'áÏ[iÈZ¼‰ž²_õѪ—Uý3÷2ò÷÷±Kô@4BŸ•ªU½³ê_1*þ/öt³>§ ×Y/©éÜÚq•^ 6Èx4ÿéܶxµi9õzÍK +¸¶©º@Üÿž÷ÿ´økEƒñ2æ1^‹jZ”[[rl›šv¿çË­‘÷PS§Î6ÁÖ#Ø#pLAs-^.´«Ý÷\ËïP£Óuú£Î£:A»¾´¥h3oÇo¹óæ¾cÙó¦¾$š7CË~sìEýÌzZCÓ»[.¨o‹ÜIïéÐüŽã÷}#¼@‡Ó€<°]jè/&¨Q‹/aí+½7hª÷5šÂü êæ­c,¨=Œßïø&Qç‹71ÿ*æÃ¹ËL{F Ð.ž›ãVõçÜÂfœ/*ýið)Ààu@5òµú†„ì?w¢êªïÜÜÓ‹×rWM=`ÛñazðæC˜‘þ{h€^¡ã$¬v¢?è wÁ޹N¢î_áëçe¢Þwˆú^!Z…z2ðs”„o ï#¹B´¦Sà- £à5úæRXw‚èÁ¯­ÿцokظEÃ&ô3›ÞÓ°ùy¢]"ÚúÃ7[qfûy¨ú¢qè”ÿt“ðåÎ )¸ªa×ohØý ÑÞGˆöÿ#ཎèQèt=ÔÁÏÚOtw>ú.ÑgÐ=¶žèñ¿@l,}îÑ îw¶z÷} +=Òç!ï,dÍ­#*ÔˆŠW:­¡|&ƒÿ ÜÈ ƒ 2È ƒ 2È ƒ 2È ƒ 2È ƒ 2È ƒ Ú@QÏüÒ¸ö‘Ƶ4®}¤ð¾Ô}Wñ]Ž2ÞŸZä»?Éø°ºËÚ㫬­3þ@Š~â#øhjýA>û"ãX–æ¹1E³9…oaúï0þã?d|œñ×Þ›Ò¿7%«?µÞÝe–¨F6É$ £A¯f©ÌøqòÈ„BeÐAÌ|àê×ĺÃV*8Ÿvˆ×ÍÈi"ÖÌ ìT¨ÓX;†QËÛA{ñ?Iã‚MñꜨ`œÆ™tùÔ4ø¹Å¦ëàbϦj¬‰¹¨L‘¤éXÈÀ u^qtiŒ¥¨“%YÂËÄŠ>YeŽêeh_eŽvB¦.³,eõP$|C‹Ï†¼ï25*<ÖÁ‘»Ô˜·ÒÈb­–¦v}G­¥,!­•ÃüCì»[´Â畦*:ªr*’`ñùy‘êÈMÕž¶fb…"(7½šØÕëzr‡éëäœmM±¿Å1mHÜG6+°ì¯êó ì8âCESïuŒxø-ao^¬­9$oÙd_éè0؆–Üßa¯U˜¦ÆïLG£Ë'õMÒÑíÄ‘e`ÿ9ñL•µQ±©ýÈK®ÄzTy–DoØ”o‚¦ûY"cŽ9ÔÙÒ…%±iÓ³X,«bÛŠoXäØ68žcÛw!{£{]é®ß»zKcñk +$Ê’|¤w«ì“žçóZkÅ×âÝ$Ò´ô[«Æ¯d!¾E$[oð¾É–ðE†zCÚŠ!Ÿ4ޏ×8†ªœC#Ýò-yu߯©|WâøWÞ݇>JË‹ríNp˜Ä¿AÛÁIùÀç÷ ßÑ'R¼Ž#®“Ù9Î}y÷Uæ~.öñ½æ|í—’dB[ò[’§4×S¨äómeyÇñûd9r#‹©Ø ØÚeá–§ ›Eõ88ˆ)ü ¬ªóGðû8¯ÆÊ ~Õ8 ++Æÿq^¥êc˜å¨ nÓF¼®5Öž«‰o“·Ðj]ó<ØÀçè(3utŸ(óGñ4Ç»  ¯Ç2­8‡jÛÕùl’ûly*C%ùZç Grs ¹£Ä\ì8÷*Û>%ÒT™—œ=W=-3¼‹e¢ØjÄYЖ—mÇoÇç<JÞ(JÜßÎ^ÑkW³S\’lÑ*¯ ñ¥byŽ3°ÖzN<ã +çÛyhßj©¥tæoŠVÉQUÙÒäŽÆ„ÔŠX;\u'ÙyŽ}7•ÏZ|aK7“~9ºJ˜¬Q-«ê–Ãï­½Ï ‰E7•C#¹êõØÒNªZù©Žk,¦öSq›ôw·”Ò®Êü£¸ò–ðk°ÿϱ7ÓÙ$Êà ¥ZgêlqÅ¿ßG땎îªdnmýªjI†_Cw»QÇøî­ž‹zIãÛDâ^枤yøoðžkûÒoqæ»SPØ!~8.tt$Û*¦9CëzBú,O:xõ>u%õyÇaÌà7©*ªÔ—Õ|Y-Oï ¦¯BÖ~CÎÊW\{Îr”è~"SÞ_ î4­}_¤D{Mñóž]¨ÙEÓ²WÙ²m÷\/Ä’qÐókžo†ŽçµŠ•7™¡Ù†hB13f¼J]­Æ1çvìÝ;9ŽŸ©¼q R1¦R9 Œi;°ýy»pÐsC»ª˜ø F`âÖ¢Q°§äŽ|Ǭ¨L›UÏ·r½jºNVÙôM+Ä t¬À˦k`oÁðІ)5ß.Ø–ž¦[0Lð¯[eÃVŽk„u×6NXÆq«^AVxÅ„ œ7¡L´6l7tlP[@êþBÞ`“xó¶oâz¡o›a[ê€UÇ%,ðŠP“U(Ö+ ¬+ÄW=qÜB=ùªA¸P±Ó–PÎ ”Û¯:.SøÞ9°5¡¿U‡ —5+8fÉSû²ƒ–íJ ñŒ’3o3{Ù4*0‡Qµa;×±@nÖjöÿ¯ +ð¨®&:ç$…’b-ÅZä!ʼn@ 'Ð ’k‘—ÍK²°› +,Áµ¸)P¥x w× +P(Pwwwýç½$Èßþ²ß·»ß»;3wæÌ¹³ç*Œy.K7)„ÛmƒeX£´¯å)0´¶€6ÙcÇðº=¼Á"ÞŠös©G¦e„VV!šÖˆlÈeãodû´d¨Eƒî¼»t¿¥}šØm +(dôÑk昣ÝyÚ +ºš‚¦îYî@¾Ç,°·°½ó¬p ßÌ×ÔÔ$KS ºv`Û<ßïóúœhÑÅ\M,,­•ò˜þľêg³¶ytl¬Ñ Åíòûì5t¬RÒ¯õFº_{ï5ýÃíŠÿóµ–%¡¥|s8¥¦iF/3hÔ3ÒSŒžÙÙÑNb–'`…sÕ,:µgzr—äNÒ“{¦=»=’;%¥¦%ºöIJJIJM/U&*=W[QŒ´Ý;°§U.\ÉGOž/Çoæç8ûØä·qÊ,0 +|!ÛÓe3T³ åe9ìSN(¡^+'ÜÊf57sü–e³7Ú n¹¦RÇ—i=õ ^—ŒVئ ¥Í¶ìîø-WP¹‘­Ø_ÍËn»/ÇrLZ\ñÓv*ã3CA ­iúô^SPý@qRJþ+P\q¶jŒ4=!3SYi”U×zGyÏ Š«ÐšŠš£GÂ4ù–Ëívý½rCQÌsjûšYYn»ÇÊ¿3¸šØË~[g"ü[R·×m¤›8vaŸx Ø‡E_X9Êô¸¹ö>«n¯’[ó×Vå…„/Bèú<’³¯gO¼!+àl£³ÒeùóŠ*ðåír}!O–ru¤Û +ޏ¿•oÛi'-YWÇâ•5-g»‚W{lfeýÏa”¯8ÍŠ¢@ºL´ 2Ò:M­â q­šÆÆÇÆ–*•Ñ]cãââãõ3¡y‚‘вEë­ËDåƒù‰11áp8Ú[Üx—Ï{í™°ŒÎ~3lc¡GP“ÒH}|™zBSufùtÀ7±©ßír›Fšéœ€þcµjöbÇ佞o0ÏôZ1ÞÀÓžÑöâÿé¶<ºjýoû)¦GÇZÅ-:½ŽÉs„®^QFÿ̇éó'Ž(þ=Í‹¶$²EKVÄŠˆ­#ë{oľˆ×Ä2aPüüŽÛºn/ëºhN¼È‘q‘Ý#»F¶ÑÏÖjm:WĬ"9’‹-X!ŽÄë ö~GžÙ1(Îë¯ú²TþáUb–ˆ‰H¹AJHI¹Qk”Ü$¥Uˆ–•rR^n–[¤‚Ü*¥’T–*RUn“Û¥šT—RSÅ_-©-u¤®Ü!õ¤¾Šá†ÒH«tlª¢'Æ‘¹ÍTæÆ«¸m©B·•JÅD¹Sî’6ÒVÚI{͸£tR¡š$]¤«Ü­W n*˜{¨¬MU¹ÚKz«DMSI›!}¥Ÿô×KØ@¹Gî•A2X%ÜP­2S…–-F³‹Ž[û3\qô:èäë•Éï\˜BŠYXFi'GË+ãd¼L‰2I&Ë™*Óä>™.3d¦Ì’Ù2GæÊ<™/ d¡Ü/‹d±,‘¥ˆ”e²\VàyH–GPB“•ò¸¬’Õ²FÖÊ:Y/ä yR6ÉfyJ¶ÈVÙ&Ûe‡ì”]²[öÈ^Ù'ûåJÊ!9,G䨓ãrBNÊ)9-OË3ò¬<'g䬜“çå¼\‹rI.Ë‹ò’¼,¯È«òš¼.oÈ›ò–¼­üyWÞ“÷åùP>’••ŸÊgò¹|!_ÊWòµ|#ßÊwò½ü ?ÊOò³ü"¿Êoò»ü!Ê_܈RˆÂM(2(‹r(›q *àVTD%TFTÅm¸ÕP5Pj¡6ê .î@=ÔG4D#4F4E4b‹84CsÄ£Z"­Ð‰¸w¡ Ú¢Ú£:¢:# ]Ðw#ÝÐ=‚TôD/ôF¤!è‹~èˆ{p/a0†`(LdÂ…,XÈFráÆ0 ‡^äÁ‡|Œ€ÂH„1 +1‹q ˜ˆI˜Œ)˜Ši¸Ó131 ³1s1ó± q?a1–`)À2,Ç +<ˆ‡ð0Á£x +ñ8Va5Ö`-Öa=6à <‰Ø„ÍxJÏáVlÃvìÀNìÂnìÁ^ìÃ~ÀAÂaÁQÃqœÀIœÂiÃçø_â+|oð-¾Ã÷ø?â'üŒ_ð+~Ãïøâ/ +A2‚‘¼%X’7²£xK³ ˲ËófÞ +¼•åQVbeVaUÞÆÛYÕYƒ5i°k³ëʼƒõXŸ ØØ˜Mؔьa,ãØŒÍÏlɶbk&òNÞÅ6lËvlÏìÈNìÌ$vaWÞÍdvcwö` +SÙ“½Ø›}˜Ætf°/û±?p ïá½ÄÁ¡4™I³h1›9Ì¥›Ã8œz™Gó9‚~dˆ#æ(p4Çp,Çq<'p"'q2§p*§ñ>Nç Îä,ÎæÎå<Îç.äýò q1—p)à2.ç +>ȇø0á£|Œ+ù8Wq5×p-×q=7ð >ÉÜÄÍ|Š[¸•Û¸;¸“»¸›{¸—û¸Ÿx‡x˜Gx”Çxœ'x’§xšOó>Ëçx†gyŽÏóÃçø_â+,Âb,ÁR|o° ˱+± +«ó ÖbÖã;| ¯=`#~ +Á//ø ›°¿ãü‰¿°[± Û±;± »ñ7þÁìÅ>ìÇÄ!ÆÅ1Ç œÄ)œÆœÅ9œÇ\Ä%\Æ\Å5\Ç ÜÄ-ÜÆÜÅ=ÜÇ<Ä#<Æ<Å3<Ç ¼Ä+¦cz:IÑÂP†13233 ³2³3s2s3ó2ó³ ² \¤‹²‹³K²K³ ˲˳+²+³ +«|¥:k°&k±6ë°.ë±>°aÀ`³ ›2œÍØœŒd‹€×´d+¶¸MÛ2š1lÇöìÀŽìÄÎì®ìÆîìÁžìÅÞìþìGcÇxºÙŸ˜ÀDä z˜D/}Ì!ô3™)Le‡r‡sGrGs ÇrÇs'r's +§r§sgrgsßâÛ|‡ïò=¾Ïø!çrçó#.àB~ÌOø)?ãçü‚_ò+.âb.áR~Ío¸ŒË¹‚+¹Š«ù-×p-×q=¿ã÷ÜÀø#7ò'þÌ_ø+ã&næïüƒò/náVnãvîàNîânþ͸‡{¹ûy€yˆ‡y„GyŒÇy‚'yЧy†gyŽçyy‰—y…Wy×yƒ7y‹·y‡wy÷ù€ùˆù„OùŒÏù‚/ùJé”^Ž J2…(TaÊ ŒÊ¤ÌÊ¢¬Ê¦ìÊ¡œÊ¥ÜÊ£¼Ê§ü* ‚*¤ÂzCETTÅT\%TR¥TZeTVåT^TQ•TYUTUÕT]5TSµT[uTWõT_ ÔPÔXMÔTáj¦æŠP¤ZèMµT+µVE©­¢£vj¯ê¨Nê¬.êªnê®ê©^ê­>ê«~r)VqŠ—[ý5@ JÔ@ ’GIòʧÁ"¿’•¢T¥i¨†i¸Fh¤Fi´Æh¬Æi¼&h¢&i²¦hª¦iºfh¦fi¶æè-½­wô®ÞÓûú@j®æi¾>Ò-ÔÇúDŸê3}®/ô¥¾Ò"-Ö-Õ×úFË´\+´R«´ZßjÖjÖë;}¯ úA?j£~ÒÏúE¿ê7mÒfý®?ô§þÒmÕ6m×íÔ.íÖßúG{´Wû´_tP‡tXGtTÇt\'tR§tZgtVçt^tQ—tYWtU×t]7tS·t[wtW÷t_ôPôXOôTÏô\/ôR¯,¥7Ç`4™Yˆ…Z˜e°Œ–É2[ËjÙ,»å°œ–Ër[Ëkù,¿°‚VÈ +ÛVÄŠZ1+n%¬¤•²ÒVÆÊZ9+o¬¢U²ÊVŪZ5«n5¬¦Õ²ÚVÇêZ=«o ¬¡5²ÆÖÄšZ¸5³æa‘ÖÂÞ´–ÖÊZ[‹²¶m1ÖÎÚ[ëh¬³u±®Öͺ[ëi½¬·õ±¾ÖÏ\kqonëo,Ám  2%™×|6؆˜ß’-ÅR-͆Ú0n#l¤²Ñ6ÆÆÚ8ol¢M²É6ŦÚ4›n3l¦Í²Ù6G•½©O6¯Ï›äò +,³~wJªß‹¤ÔjœX 1 IŒLõûBâ“\q~Ÿ7Ì—Xcã|~·%%ÆÇûR,<ÖïNs›ë5BÂ}|^÷ Wç +¼²ø "’=®ä„ÈÿŠÜÿE³î ¢\q©)nó z^ƒQŽôü¯mt0í ":Xå}°˜øØàë0ßÿOÖ!ÿ·`½?ˆŽÁ`òk„vŠsÇ'z<®Ð”¹®Òæ¶q$Ze‰:íIfkÿÆT‰ xÕ~r•¨·"(›¡´ÙUsÛ¢ª›~¥Ú¢êO€÷ýâóM¸Q +„l"˜ÜÌÜÄÔØîü0g;ŠØyŽœæF˜[ÜŸØIånqäd0ÇΜžÀMqG‚ÔyfN*Çbç™;=q9ÏÜ™Ç~ôÈ|8ÝWÍöaN{¨ÚÀôª½iÛÞöû®,v"ÐÏùîA·Ë=p:]ÍËÊ –v|Þ·²8 'Ó¶¶¿«M[íg[Ùn+±”õÓ=Ñ+dǺ£¤sXl 't&ÝPÏöâHGhªAw"òé¶îƒRD±“ű©wëãÐÙC%~a:õg·¿Éïëº85]ß6§RU Z¿·bK¦Ëb/e2ž9”å³´ãi4ûf17Mê&ŠVÍIÔFÿüÒ·yaÚõ•Šf8î+ñ²Þz<½R/ó–ókk!L;»6UPèfz­Ö z¬ß<FžÞ«z,Þ»rs°`ýadSŽl>Üí´¤Çì¶—ÕN̤næ·V‹´Zni*ò­-¶Ò´ëßFÞ¿{¼øÝéx°àü.QWE½“ÛÅ¿ÝtåÀÔL®ëÃDÔ‡ùG+¨±‚>An:»Öüy$©üEÜ«€ïLÀƒ øÎú¬ÿ;ã0ßÙ€ðב÷çþk„_=¨ºÕ¥ªïº„S-up~ymÚBèvýQ_h7/ uh+!‹ÙW*†¤íÙ4_ÍÝðlV}ÝIÑŠNvËg‡f™…¯º¹xÈŠŠJñnÙ;õBˆ}Â7YÎÃ¥èzÚwzC–¬P¿<ïKÚ8ƒ»õ^>9|Þ‘§ÚMlºŠíVÔý[}ÓŒ‚¾©›î©ҽեº°4<¿6÷•î,®{3º¼m,:ÿx”jgLçn´xõñ(fÑÏ’–ÿ!Ð Ówt¥¿ê{ÑòL¿©K“x¦Š"ø½8 +úN8Þÿ g gÿ•sËyöINþ,›à³¾J¿ÃÜòO®J9ùÔÉóÛï;éú«Â)ÆA +¤tAþsø»©œÞ+ñuÕO(Ѫ۫;ª ƒ-½2ÒëáìEÒ[¢uOÚ²™éû?œ[Ï“-)&4*içã|½ù?òófœñaœñ×džn9‡@ ÈÏr (J2 Ü¡dŽÄq„þBx á%„/ ^”2ècðÇ Á3ƒgÏ/Üç ,X$°H`‘BU +-)´¤Ð’Âs +Ï)<§ðœÂsÏâÍÀ‘#GŽ 82pdàÈÁ‘ƒ#GŽ98rpä>ïÅq +pv7Š (G¯9ö± õ¸Ï™(fôí&žŠÕ§b߉CSx¢G¹Öð‘¾`ú.(e+ƒ¾£Úè…^3sÓ  Ùãp?ôÝlWDWGAßíÁ±x,öÓ¶Ø ²èÄã¼+e­~nuºYt ±uÃã”n¡ý„j]pGQ;ê÷g¥˜<OÁâUÖªy“žþ_›Ýb/é'ÅC±ŸÐ@ÜÂÅqBÿ¦Sõ„þégØQ<”Såd®'Nâì$VöUÀ@?' )%éS¥‘~3=-wÍp_Q†žfôO¼v€Ðì Êd¹¤†®èWy¼¨Å3eóQTTrë­·‘^8­:×?¹žÉÜJk×é{ë¡ÉàœÔ)ÍkåÈ:[i¬áÏzH¯´“oG#z`©’ª7j¥¡ÔƒÇâ$—”n³|­“n±N½Á‹R°¤xì´Þ ;Ú»…KJ‰AÐN­u|v”öÈ"Ú ƒÎÍ6™Î…Ý'+õÞ(kIÛeÐJí„…>‹ÞJ^vÖ9Å«Nâœ4©–~ìªF'D‹ûÇA¿]å®/ë¦þÞÈZ´o0dû´¶ï›V}ò‹öáF}£†U_¿[qÙJ§Ü¾Ý +¥@¹C¶¢²7§B ¶öæT(J€à9v¼Q΀" %@)÷¥(Ý„ˆšíœDaâµ8Û˜;q„8¬–„evV!?fô%œÙ )ä8rd#²·šeΪâ Ö%NK”n€GŠ\¥ÈU +ÛÔç +ñ¦>rë1ä>¶5;a¹SÈæ™PŠu14ç@)÷çÆr—gò’clƒu`K\DqâmmD,²¼ +%°õþ¼E „u1l­¿„ù±Ü¡³9âÍÝ^f^³ýâ¡1{—Ñv5·_-jÖù˘GŽ7‹0æOSæÏÎZægý.$°õ(ŸµdviÛw¶ýÕ¶×¶½2mr½0íÍ¿ì€5LÞÙ‰+7¡=Ül6—¶}gÛ+ÛºyÍpsssåÎÿ†Å@ ËcîòHyd.9ÇYŠrŒEÈ·GðÌý¹Æ»Èý w™Ïcðúu¶ª)ä×Ás Í87î\+d½p÷KÈYp÷³àÿž ’„ο«jÌUµ„¥¾Ö†!ÆP­¿Ô×_wi •8äËR Ü +¡;s)Þ^&ƒgÄ‘âæ!ü%^_†1?ë9¼>¨JyâmQífShI¡õ’3?õ)r€ÊÉò—zPš"/ lòÂàÏß7 ±e^ dØKŽÌÏz^r€JœfÞÖëÃlŽˆräÊß‘ƒÒ±áæò—CA¥¸‘y„ +¶ñ¸3üÝ¡¾mPß6Þy‰ü,îáVਾ&ûоcÀ·" ½-öÈßõ¡?“ðb?|íÆ‰Ípî³ûÁ¡',ÃÙÍö•+cÞZöƒƒƒ#õþ°¨zó9€ÒÈÕÁÖï ö<ó»ê÷#‚¾š#¨ŠÀƒƒvëP½žJúq®úöú…­>Âá/ «c Äͧáhm6©ÇùØ_>Âñ3ÏCQ:ÆÈ0êÙZéo¸NF8áx„ÿÇvÕÅÆqUá™qâ&®;nH@ ¬¥[5AµgâÝ‹ ¡-¨ +Â&Þ¦nSo•Æ5ån%Þ@õ pÕÞP‹D H. +…Vå¡ÿ-O<óÚ§pvæ»ß\o­Õ¹çÜ3sÏùî7÷Ü{Wn}VöȲU…DÖƒ±b‹)e1¥,¦”y;$Ãa`1¥,¦”Å”²˜RSÊbJYL1œ +ÆbÆ(°˜RSÊbJYL)‹)e1¥,¦”Å”²˜"’˜œÅÊbJ[Li‹)~aÙÝ•XLi‹)m1¥-¦´Å”¶˜ÒSÌ“ðK&̘$SÚbJ[Li‹)m1¥-¦´Å”¶˜ÒSD";¸±RXþÜ-ŸV@KÑÒ´BZ­˜VB‹9|æð™ÃgŸ9|æð™ÃgŸ9|æð™#`Ž€9æ˜#`î)~µ§è¹ªÅV–­÷vê_^ÙÛ/ÚÅ¢]¶& +÷Ÿ{‡¯"ÜŽ¡Óé ýGÏ/¯,¯\|¨ß¤{¾ÿD¯|äÏA+h—n?<Ì¡W–/-õº.ôV®˜Œš,餴ö-õW.>¾|qe_¥wå¡åËKû¯¬õ ãqà!£!g†x¶€Ä´†Æœ|ÌÉG>?…Æ¿ÿüñL4Àƒ šØÅËÝ'0±ÊÙ½°zNDjâÃ¥þ•ó½Ký5Äy°ÀK€9˜c€¹˜K`¸Ã?œØ`WÀ.'ef2ïïk"ã7èÒœÊ.,_¾°ú胗zß.¦2ÕuXo ØoŽÃÖ |¸»‹ÓŽU,;Vá¸Ãzà ¿£ûqßíÙù˽áׄ·w-»ô¸à/ìÉÒO$“Ý}Œ+0`\a,ý&íÁîŽîþœ}yÅsYUÇÙ²:ž,Ôp““¥ C/”º=íCÐ +ZC‡Ðt @§Ðtº…³&HZŠ–¦UÆ×i­ #è:ƒnB· Ëùé ã3ŒÏrèr¾º9íCãý&Þo&Ð)4ò51Ÿ¤Œ„xžãýÜÜRo)Š·Å[Šâ-Eñ–¢xKQAD+¦•ÐbÅŠ9s(æà}E©’ß(TÐþxº<©›¡>£jŒŒ]›±ám…GÇès:…‡³aÜdoáA¯<ÛQ @›ñP-À?m¢5ñ\AkhƒÐ¬BID^™¥m<1Y­æ›ù È!W„\ °…S ºçŒÉ„ß)1Q˜—ÿ(TBÄ 'Àƒ·¼Åæ9°Åæ=Ó7Y¸òøoAóß‚ž»‰‰þ`©Í óY‰ªŠe<™ñøfL“ðš€'2ÐFß<ÏÑÇ*KL„1S"0&ÅjNÀ=÷ ]ÞÅ£èVîIZ™¸!=&nDЦ1=ÀW1ªLd² }ZDdê+%3šy5ó™K[ô0OÈù›*KÛôpž¼ýkSiNg&´ zòmª.c¾ˆÑ#F7õ™·9SVžŽˆÝì?#±òt\ù°ke¦æPcÖN„¹„Yw: ðV„Q¨èë:6ˆÉF¹ÂÅCä©ÁËoZ­­jM¥/¿iµrª“šè曆¬ÁpΧeP£.Úà <™EcEg9G$´ Ï¡ÜMfðZŠp7Q?)xNÁ3Nۨɱ<õBžzaÄMì>)ö‘ûEŠ•ÕÔAÄ<ëBe‡ô0+OºPÄ=•ÓÓMz4q³&Cmp&BÖd¨Áw“Huõ>}¡A,]@ŒšêhòÛ‡ÄÍj CƒÛÔs™¸ ôVc•Vv†šl!k 3maïiqž¦ZX]¹é£fpÏ‹Zø¦¸F-|Ûv }œì¹É`ê%4ûz L´ÁL‹s4;}‹+š'KȽ>L 22»cÔÆ¬s3`Ï·Í/nVbyûž€¥•‹Ûb„Ûpdj­m"aömìà6Ú¨›v<9¾¦a9Çw1¬åÈ›ãûåÈof‚[h”#Žü9òçÈ»`ØX_ï’‘9ïšô(Zš0,´è‰i%´€dÁdÆémöÜ ë$#VVÄÓ.ÒŒÌÚŠX[Ï»(Ä>åcoôs>Á.é/ÐÃ謯ˆ§]2zÄè‘O+ EfxâEg1ï›O½ˆ§žÜºi1Ï=¹iÿêÉìÄØQg[ä–ȘS“vV¤#rNä‘u‘qgž¾ÈS"["ÿ+ž4ÆŽn<«WE}¿P›_ +Šn·ì~ýEwó«gKý¥/—º}¦|íÞò5¹#úžf©ïúl©§ï C=q x9;2vÄy]Äs“ÖõþèLº®Ssžû„ó¢ˆ76Oclzód=XßÛã¸cÞ˜ë,9µ[/¹Ù„wËÛv¦š÷_ïÃò‰÷áæÁCÁzöEïç‘-‘1ïù½ï½ï<å½ç¸Î”´ó"ë"["¯‰l‹Œ{ïÉï]ù½ã½ãLzo;³"ó"çDÖE¶D¶EnóÞ–vÊ{K¢9E;´çE<ï-i§¼7eZoJ;é½!ÖÞí_qü¶0NÏÂ¨Ý ãè§aL ®zÿÜøèîÚUïß›3§kÏesÞ çEO’Ýà7œ‘ûE¾%ò˜È¸X7źé D~$òœÈ‹"ã2榌¹)c®‹¼*rÓ™iˆÜ/²Ï{}CÒ\õ^Û¨7kÙïÞŸ£Bêß½¿úUï•BÿÍûS¡ÿ*ú˜èëÞ+ÇjNv»ðotŒ=…ßÝ–‰"qÎÝïçïïs÷óÏŽ…àxެ52 ’з"{Èø¶Ü—…J&Bc£Ò¨ãñ¿^ÄQl>&<öPnÄW¡Ýk¿Ì(>þ¶?PæßÀß 9 +»_Gyœ;ƒ<~~ ‰ÙiD„'`§Údº´ó“J³^å%ùUùø¸¿‘åÕâ¶ò3(O:ÊOdWùñª/ò4ïc0=•£]2£|ÈÑÏ!ð¨­l1ÓQ>#eåÂõ p׃3cDYʯ)·`<“l(†cv”9rW¹P×XŸŽò.\‚¸—ábß&<©&ó?,øxÓ˜ŠŽx[|Oœ'Ŭ¨ˆ1-ŽKcRB–.Hƒ’$ HQI4î÷ Á­H03em”û µÐð÷–ô¢¯GlÁ^.a›>«!{C¥.k>¼³F_ÓJ˜ŽÙÈ^)ÑÝöÅþ-è6?rZ?pA¥Â>F+ŽûLÚIÓ±§‹0ݹŸfö­û®‹RÉ{s©¹±ÙÑëï›ç4Õ°ÕÏJê?CÚËý.ãÒ)æô3®M¿^V+N?ÇXf3ã:ÝÈ,~n-1=2kº®íãUÎ!;æ˜s’ŒTÆ!U’îQÀå ?pÌ‹¡çr±碘q-oÂ2[œ¹¨"3ÞEõŸÌa˜\Ž3ÉmtÈ™Ãä6cè,GD&Á—áÁ—8²z†\ ‘ÝSd—gŠà3†Lü脉£ÿßR/é:Þ/ºµŠU׬ªfÕ¡Vé—÷6St{CU[5—TÉW7j›Ì®×©«ÕMZÓLµU¬œ®°pQ3[¨b­8­ŠQ7ÛE£hi릻_^œ.¼’k÷4×ôâ9ƒ-²Á¦Y®ráœp…Ë,Wå*°\e£Ìs!¾Ç–„JîB%°ûÂÐ ì×j:ë–’‰Ogùæ-fS[é|>stream +H‰¤W t–Õï»/YD–ˆ!l!@ØÂ"„a‘M›`ÉŸ=­ÂR²«€P-EAEÁ‚ X¥BÕ*¨¢U\J•²•=! Gzßâ„¶§å&ó½¼7ófæÝ™qD$Df$¥÷Ða‰µ}csåŒHÕ„AC[Æ…Œj‘Ю OËóŽ<ðåh~Ï©™˜V\¹üä´OD½/âw&³0+oûÔ DZlå÷ËY¹S3㊢—ˆ´ã™˜³Ùžôûów©}i¯}6O9+øý(¿£²óЦäø'ó{­H•!¹iù:`ŸHn‰HØsyž)…Á™a§Ef>Åý‘ùž¼Œ'W¬?Çïm"uvL,*>½¦£È³´P8!£ððüí_ˆì§ýIbc­"Ñ2NÏOªø‹áŠÜ¸!>üáˆË,ñÉÉÏ)’ȼŒô‰ÎÌÉ÷HLnN–Gâò&fIÝ)*òSÂsz’š+¾ô"õe3Ðò‰ðÙà?%ð‘ÀM‡‚š…, Yò¦žtèÝ•!{ÑMÑmp £‘‚Td!9‡‰˜‚Çñ~ƒgñ<ÖâE¼†7ðÞÆ{øá/ø_àküßâ8K´¸Ñ­ÑÐp?º¢Ð½°‹ñ4~‹•Xƒõ؆ױ»ð.vc/öãü_âo8Šïq¼nš õÐÑh†Vh‹ËxK±Ïa5Öá%lǛ؉wð>ö`>Æg8„opßáÎà2mÔ«t¯ÿõÙÒõ‰(4A b‡öˆdÌÂlÌÅ|,Ä",Á¯ñ V`^ÀlÂï°[ñ*~?àøþŒqñ9¾ÂaÃqœÂYœÇE”¢ ×p¾ZãÖ}›—ß8=1aæñöOòþ˼"؈—±¯ü‡Hþ‰s¸€\ÁUüÀ÷ Q9î;RSZI'é)Óeµ”ËŽ¯êD8QN¬ïôs޹ÆvSÜ î#îž1gT«Fí;ñ“P —ºÒPšH¬´E®C<åyŒ¤\Q”ëðåKmÏ`ŒÚ0|­zýù½(c žDy‘ï9DÂ$B"‰œtTË«Í_¨Í±j3Emzn³9Xm>¨6‡¨Í¡jÓ¢$ÔVªF`cI«ÐÒ+´Œ +-³B›ªÚMÕjµZ7Œ•öÒ•™ì'ƒe¸Œ‘T¾™|)’iìqså YŠ`oºÓõç:<ÊŸGøî§UèJùºQn@‚Þ¯»zH´¥qgkÜ9÷8{¼%”³p…r6®RÎg•],òÊG©î(Ó×tÇõÛv䪇<õ¯ +îXáªê±‡Þ°§Þ°POþRONГ½ò”¬{†ižl‹ôw•kÛK­%éÎIj­X­MVkS¼¬ ×ºŽ°u¥µšìaMÙ§–²S-¯Ô«>eo:¢Ýé„íO솑è«gE A¬Uöm·¨.®{½)/¢å%ô¥¼Œ~”%x€²”6ˆÕ®Í.…pým-=U›² utg„µP~ß0{ +5­5z†{~¨Á»8åÜÀìFóÅLã YÅÅT'×)vf8 íÎaç¼ëºÉÞ>M;ëÓ´·>MWëÓt³>M‚úôÞ™¢;=º3Uw¦éÎôŸngld¥æ½ÝÍ• ]ÉÔ• [™‘8‰÷~Ûö··@-{ Ô¶·@{ DX«³VQõ(ëâWš£™Ôð¥æQÖø7RÔƒG=¤ª‡4õ®2ÔC¦z¨¯¦©‡Yêa¶z˜¯ì‹›c¿U›[¡-¨Ðªæ9G3çjæªhæ5sA?Ëñ=º³®îŒÒtg´WŽÃ5£µ¼rÜJWZëJol±'H’ô·7`ô®F_E£Ôèƒ4úp¾–F_¢_ш¯jÄw¶xZ¬«£Ôb#µ­[©ÅÖj±T-–©Åkå9 åü™Íù3Ÿóg§ÉYN“‹œ&eœ'×ð{‰OŤìâlQ>"ÌR$ïÀsõæ$õ«ôå_éËΤ7à`„ *ªq +FÝ 9 ›ãÍ8 cÉUZq&Æ‘±´ådlO–OžÑ]*˜Fw$’mô$ßHB àŒ„ÁxC0”Óz†cFb"ãÒŽÌ +Þ3¹ÈC> +È€Š0 ÅäAÓ1ƒ³w®F¿€sþq2›…Åœ÷¶óØiüŒöŸ•ìâϳw­a_ËüEö¯ä›Ùµ^!ØF>ðYËr‚·È\v‘¼Mþò.ùÁ{d1»É> —ÙK®ðÍr­9Ͳ£}Æ™þ9y×!Nö¯È¾¾á|?¬}î(»ç·œßsÚÙŽw’Så4»´­Ô9öT[-ö@2€ÒJUs¥ƒ{/Õq/»%”WÜ2qàk‘ÁJøs>€uaM‚ùB8ýÁÚØ PMçuöLáìx1X—²rOc4£l¶ÜCC½£ÎïÎ:1X®ôfGul¸Â*qe°ÎèdN ØJQ¡Œa X+Û ÒtBgêlš¨SbŠÎ‡éœª.+Å¿'X-‹î…D6X­EÔc)õeXFýi,§\‰u\YMÔ7c+å6lçÊì¤Ü…=\Ù‹}Ôàõ£œ@`~OP?‰“ÔOáõÓœ,`^¯—÷ô›˜%¡FLnãcŒñÃÆ×„˜ê&Ô›j¦ª×îdîŽ0÷™:¦¡i`ê›{Mmiš˜z&Æ43MsÓÔkw4w·5÷›6¦‹éhâMgg:™DÓÁ$™ž¦»éezXÄÚºÚªÚšÚŠ²’ÕY£Þ胾èÇÜ{#6ö®ˆ ¬ôTé+˜ÿ'߯ÍÉ“Âh§ÿ¥c,«Ÿ¥è,TTNfÕ½1y ‹Þ´èóFÝëäáuq]ûYY‹'‹!‹‹ÿ1qî%;ËÝR²»#£g~e40ŠËãË1a9d²=0#–í%’íÁþµD=IQR–É%J (q™©aÔ‡++«|ø&J²”/ŽWNW¨ül’¢dŽN;‹‹€U<ËlQg¾ (7ãU®0[”Ì%3¦hø¿eÖ(™7®0sŠŒcŠŒãÊ ÏS^¸#&Ú +LMfjx­Er­¥‰5-¼Ö‚¸Ö×ô1½•/]"{â ³ßÝiß¨Ï +Ÿ6"N½›?k¦[ÝÇÇõó p]בiófèS¦-þP_@/‘7®ûTû1YÄwã¿H/ó¨(®,Œßûúvµ" +*¸ buCµ .Ž £hÔIf2“L&މ׈KÀ]£ÑŒ¸¡¢†ÅÜEÜqW÷ £vÓ4"Šw±žKëá=Iæy}^UݪW§ªuîw¿+†–••¹ÖÞLV®òЭ G|T%ÈÍ“ŸÉ "ᜄsñ'LÂ4´c™è.މl‘k@C¹Bú±úÄpUH2œ!wêJ_Q/Š£…´ŒVÑ6ÚCWé¶1ÝxØxÇøDqWê) •6ʧÊ`e¨¥ŒT~P¦)‹”ÕÊ%U9¥ä(7”ß©¾%ª‡ê­úªÕª«¡j5Lm«vT'©«ÕujŠÙh®i®e¶˜­æfæÏÍ=Í Ìë-¢X<,5,ÞKCK %Èò¡åK?áçégÖ@𻿩yiu´úš¿ÖDk©…iC´ÉZ´6C›­ÅiIZжUËÐ2µ#ÚIí¬vU»i ³†[;X{[ûZX‹ªÕ,ªSô~±(®\¬ ]Õ[éaz[½½ÞQï¦wׇêõYú½LV–Õd ";Ê®²»ì##d¤%çÊùò¿r­\/“eŠL“9òŠÌ}üªÝ«¯•ÊÒ²2éú6*$ºˆ'b*žÆ—L<‹‰_1@ñh&kXEȺÚzÒ<ЧŴ’6ÓnºBEÆ4ãã9cñâf%\éÍÄ#“x±ïdßDÕ]­©ÖVUñµuñUL<ù-⟙{˜çU¯ÎÄëZ|ßïméç"®þñO*ˆÏÓµä +â'˜ø&Þ¦‚xkDºˆ{…c1{èÈÄëï1ñpý½³þ…¡×côX]ÊJ.â-d;ÙE~){2ñ¡r„Œu_ZA<›‰_câa.â“_/+àDˆ+óbÆ™†¦evq Ôƒ3`>w#%9Tž#¥A¥KKøp<Œåþ6°k“¹Ò.ÏÉ“Ò)/ȳå+e‚\ÄÛ8™Ä¿89IFËÿÈA2Tj_\·¿NTçTç‚üÎhgIþzçç.>3gŒsbþ¨¼ˆ¼qÎŒ‚ glÞú¼xG¼c¥c€cmù}yµQŽ^;¡{g{'{˜½µ½•=Ôl´[ìõì^v´Ý·ÝµÙ +m×Ëï²eÙöÛöÙø)¶£¶5¶T['[[{›¿Íb3Û|}øHÝç¥O¾ç¾òÕÆ}¦µ¦e¦¥¦%¦Å¦ƒlSºi“)É´‚››‚L&7¥TyªÜSn+×§âP²”£Êa%SÙ£d(éÊNe¹²TY¢|¤´5>3Î1•ÒrÁaðÖà>Æ5ߊ ]*â¥ðƒkán×þÊo^Íây€¦Q -z÷*Í~=oÐèòIcßD#ÿè=Þ¹ócªxî +ÿ×ê&ÜQ¾}&âí·ø?†VA4L¥7aÄÂ,X`5xB Ž)ÅðæÀB˜‡À`9$ÃcxO`%¤ÀqÈ‚MÐúÂ<è' ?ƒl8'ᜆ[œçá,œƒÍ0îÃ|¸à"| ·á.Ìä,ƒa( aßAW•á0Fq†1PĹ4ÆÁ÷0&À.H‚IðL†áüé Q   ƒÄE˜€‹q ¼‚RTЄ•  —â2\Ž+X3“°2ºatÇ•¸ +žÁs\kp-®Ãõ¸“q#¦à&ÜÌÚš†[p+nƒƒ18 ·ã܉»p7VÅj˜ŽèžXk€ò±&záÌDo¬…³q/îÃýxâ!¬u Ò°.úàa<‚õ°>6@_<ŠYP/á:`CTÑŒ<†Ç1OàI<ÅÚ~ýÐ5´âY<‡çñ^ÄK0±1Ü€BÌËWáØÀ?C.>Àb|ȵø>Æ'ø Ÿã ,Á—„:J|…¥Ø„ë4B±9P„IT•…6U„»¨*ª á)ª‹¢¦ðÂfÂ[ÔÂæ,j‹:¢®ðõD}Ñ@øŠ†B³…YX°†? þBVÑHˆ@ÑX‰b¦±šÑC<0üh˜Â.k:»Ò9ì³Ê{ÃvZIì­66²·Je/ºƒ}Õ^îøŽ²§:-й»ËáŽ.—T!÷÷Ø>t¹÷Ç.ÿþìƒo JÄK¡ ip3T1¸s%Dþc+Ùc¬¦5´–ÖÑzÚ@É´‘RhWÁTJ£-´•ÈvÚA;i×ÅtÊ`?’I{ií§tÑa:BG)‹ŽÑqʦt’NÑi:Cgé§ t‘.Q]¦Ÿ¹ª^¥kd#;å’ƒòÈIùt +èÒMºEEt›îÐ]ú…îÑ}z@ÅôÑc,Àô„žÒ3zN/¨¶ÀVƒ-aì„ÃXÛ`;ážé L‡§xK ‰ póp ü„í`.¶ç:4Ÿý@ŽÝ8ïá}Ф(šLÃi +d}ЦQ4•ƲÆM§4“•na6›æP,Íe°€Ø!,¡¥ìÌâÙŸ-¢ ´œVP"% ‡ÈN‘/®‹qCŠ›â–¡Á×ÕÁpÀz­Àk“ÈoÄ; +à dTL•*»Uq¯ZÍózš^ÞµjשëS¯~߆ªÙâç¯Y6jÒ´Yóà!¡-ÿÔêÏïµnó~Ø_Ú¶ oß჎:ÿõÃþö÷ÿÑ¥ë'Ý>ýìó~ñ¯/»ÿ»ÇW_÷ìÕûèÓ·_ÿ¿1xÈÐaßEF 1rÔè1cÇÿ~¯ìWiXT×þι÷ކEQ—;^Api4R£0Ê `A#ˆÊ(¦ŠKµ­% ⮌¨Q$Æ­ŠVѸÝQL0.Ñj,Q§ZH\ã–Ôš—Ú>Ä>Uîé{G4ÚÿýUæ>3söóï|ßû¾·`v᜹óæ/X¸hñ’"÷ÒâeËW|°rUÉêÒ×|´vÝú ·isÙ–­¿ß¶½|ÇÎwI»÷ìݧ{ö¨8øÉ§•‡>;|äè±ÏŸøÃÉS_œþcÕ—gΞóþéüúsuÍW__¼tùÊÕkß\¿q³A7¨âUÜ ŠTqƒ*nPÅ ª¸Aÿ«bù.h…ã¿”KÀfq³þû­1}w)بƒT¾¬ñÖŸÆ‘—uBÝ|>¢xɉïbẔP_k pÈ‹ì_@«Á þÈ|‰º±,`NÚ¯P4 *­Ay)(TH^ñ˜]2}ã;£m ê§Xâµ=ôºWŽ &äX´ò¡^ÿ)ýë¯Á +ÿ\ ¤ ZHLj½I6àÒ, ÖFäz1Y\! µÂÞ±MTQz=ðùiˆ\ 6aæP`Ø*ª`]e—üeÝwÆ|1ET“Pn;0ÇŠ¬#¥‹Am(Ž(é;=Så¨:a\¬Mý±R!v]‰[¾@™ÕÈ‘ +àL´gÅUèîxÌ-æI@ ,‰íâ­¥óÒ¿I¡JÆìl`ðx`鯩ÏnXùˆõd½˜Ûùhäd)?)•ÈòlÜL!fôìÂl,• V³jxkºT`ìQqÞDrPÆyWপ|V_¡:Æ`Á86…°õÀV/»ÍOI™rŠüƒ'yÜ øËJ¨VÈÄýîELÂìÛØ1¶¿Ép¾y<çK=¥!Ò(i–ô0á+y„¼×èi< E™8".ŠkâÖ ¤K©ðt&eÀK[°ê `ß?€—Ød6­º›(~„]dðlbµDúŠØ†X?m[Jã‘p§x†óå‚å– Ú¶ÒvD\V»É’YKg#™ +.bE`ˆ“ì>ð2›”"¥_I3¤™À°Z9Bž!­ä£ãè.~‹—ˆ{°ÕŸB©7`&½ Ž› ^Ë—ÍDD"§Á¹¾gN°{~J‡á—[à´Zp”É1mYwª[gp¨ÔÑ¢‘mD²Ø'NŠ+â!2W¥Äå`äÔ,0ùnªÄME^À]ß?bŠñ:‚‘±l6ž^_o`[ñìDäì;VÂëGÀ}_€³.²Kì»æAð‚ºÁâl>ŽÏä;øQ~’Àëp¼³DJ}¥<ø´ü°g¨–KOðöÒBޔߖóäUÀîÀاJ²2Hyßh)¶¬¨Gï«b†9xO¬Ï™ùïÄÛQ,2Âû?xŠØªbÀÂuˆò"ó}¿çÝç¥dêëCÔ‘>ËéËEW°¦´nSx$Œñw¹­âÜÈ¥Ë"ᤔBרRàF +]e­h½˜$z"½Â ;@GSú+í€Æ9|h´o}-=,L™¡ŒU2”T%Qé­ôP¢«ªø+MÁ¿×ÁàÇ æ!w»ÊÁ²Ÿtøé"Y*M‘I RWÄd[I†²xÈÿÆ¿á—ùq¾“2V^Ub­"ú‰Þ¢…aµÆIc¯±Þ(5–ã­qªáª;…w¾šgžgÛØu—_'Øã)8à·b¤H?"ßZŠÑϸÄVàŒЪw •«€@ÐÝÓàñT²ñ@Õ‚íoCåƒïv ÆÞ' ·dÒ;¸ïHdæüúhÌÖ–£&ᮂÀ ðxî$›LuÜ L{Šv‹2iÖðø’¥œŸgª±•:e&ƒŸR¡D㡪ïÁŠŠºuØm‡¥»²ì¤ZËFé©-uÄða™C3Ò‡¼3øâûõ}»ÏÏãz÷êùæÏztïÖ56&ºKTçN‘µVµ}»¶mÂÃBCZ· +nÙ"(0Àÿæ~Íš6iÜÈ¢ÈgãÐ’\ªéÒåH-%%Ö¬k9hÈy¥Á¥«hJz}Œ®º|ÃÔ×GÚ0rÜ´=i{9’¨}©olŒêÐTÝk×ÔJ62= åevÍ©ê|åA¾²é«4GÅjÅ Õ2Á®êÌ¥:ô¤ü n‡ËŽõ<Íš&j‰yMccÈÓ´ŠÍPÒ[kS=¬u<óxkG§ÆÍa•¦Ùz¨f7MÐ¥GÎX}Hz–Ãnµ:cct–8FËÕI ûGû†P¢oÝ’¨7òm£N4CKUOÌqwqe庢ýÆjcs²³t)Çiî}ízë ù©ŠÅƒ³¿Ú.¹!U³êv/VõÍéY¯öZÍ_§k`.Hr¹“°u±éÅn0Ä4ß<ÊóCåi³Åõžª7ÑhÜï¹p!an2¦[÷‡…Ù‰[æPÝ™YšUOל9ö6ž–äΘ~ Ô¦†¾Þã |îMÏþõ¿æ¯ò^öùJ¾áf)5ã¥;™i‘6a «cTX’¥á qæO^¹ÇÄa>N†YúX\ÃD½I¢ËÐÇl7çëJD€¦ºkñþæÒܽ%§¾Å€$½ozjáE€¡ÿEYŽÖ»t1ã¢Q".6Æûê½bcò+¹W› âî£!Y˜æìÓ >·ZÍ[]Zi£\Tô9éYÏë*å†ï'[·h§Î]fÏñ=ÁÃÌž9/z^Nwiߊÿ0^½±QW|f÷þÿÛ½óo÷λ>ï¹µ}wËí;vÙŶ €MrGëæDŠUÂ|¨ÔTQ¡J:ªÐ&¡’ŠT•ò¡J£År¦Uì|(RòUPKZ>Dª,Y)âKm_ßìž,¤¶{s¿yóÞ›Ù™7ï½™…¡ˆáJ­Žïìy¥làÎÿ"~Ù’OL&'®J#zÛ¶SZ–|x]Ö¦ŒŽÝU6δ)&ΚRðÄï­+ÓFÕgØ(Ó“5.pE“ƒ¥Qƒ¯ï±°æ‘åÿ³S³µD{™Õ·ÝÚÓ4ÊêÆö¶ í Óó5X˜°-ÅLLn4<§¾O5|ŠáVÀ+ ¿bLºC™í R%#PW pëHó‡ªwârMªJÆT2KEXÊ.UŒýî†W¥h7ÇâLô›ƒF#ª˜¯,WJÛ³ÂÃ%ªæQèë9]ŠÁ+FФ;•Y1Hg4ßZG +è™Ð ð•ÿ=Î,QÅñ×2jÏÅ̶Œ¿¿Z©ÑȣŮªÓ¼2M£m{ÌWðf±†‚¸5žS¡@”ÖNY‘)[Ýžz`6…ù±mý}I II©$àP§”ê†Jc8ž”kÍV«N³ªi¦®HTܨ™4&3Tš’âê©tcAwŽ’Fc4)6ê#ÍÖÉ—’ŸḻlgãøH}-H›­gãÆèÏkà—¯à2$ íº’Äg\!øÌäáêtfª: wõÝõ]µ+= «ÎI“ˬsiK¢-4Á³ŒËÅçB'M©Íd˜í£MŒLžk‡ÑÑ&cñx“O?úô2?¸8Ñ6’p8—€g·-±Èã°/±,s;mK‰®‰ ê>þqeïJeÿ¤²—_© ½²R¡ÿ|NÊA#Z–Ø…ebGÿF’m®¿]ý”݃ÃÈTƒÂ]„?CÌÛèOȉ7˜_ þìÊ[‚Ê?™~´È/¢ì +#b;’Ý©baˆÄ¡Õ/cé˜âÄá•;ùîƒ[<úukÕ²P:O¼híÎ€Ñ æóóþ'‰qäñz›Ì’¢p0ˆ¼B¡.œÅ þÀí²|Á Ósܽàfܱˆ 9;œ¬S ¿3‡¿ÌõNW`Z•`)‹tÖ>å&±"n¶>%uL¸°®ªj ‚#X* ¨§íoÜTº‡¹‚¢ÁŽöZØòªjì(±¯¯^‹líQ·ó¶•âŽñë·—{vl©¤;s°+·[X–=‹¼(ŠŠÄÇλ‘yÎÃû°¯‰»ˆ'4ÄÃúï8Dá|n X3Ý»8ýxqé‹ú"¼;l½pp«ÖÙñÍâƒ{ö¤f`Ùò¾}eø¯¤Û\Ô7ÇÁkpéß„2è+›“oùn¥ØçåÒgüìêŒ +b,¾ v¡mlâOŒ=»Ä—KôE3}N&êêù#SƒÏÝ$S#<ÇAÒ¿À3üç}™ÍMæyÄÈd¢,¼_TÉ›–ýUêq°j…ú†®ª`Ü #°ÿGd°«×ñ|oÀ°9RJZa¡`G0dr·ÔÍ8zÝ=ÜIf°Ø’ÁÝÁD!UŪšçÔ)<¦‡‚)Ó>v­3š`"‘°Ãát$eÓhö­ÚÐà`±XH§RÉäû;wèãøÇæË}/æªçôc—Wë:öß{}ǃJù—?¸{›íÆ¥þ/©¿z÷µ—~zë'‰li ¿Œ“oÍ92vâØ­u,¼ÖØÏ?A/0xÔÕÞ¾‚Öl}}½\Ì å"×É{"§ç À ÚŸµ»kzÅH4.Úbш˜‰*¢-”#½å¢#Ý +P9“€à¸/H¾œçйÜÙüYí2ºœ»˜¿¨}Œ>Î}”ÿH›Gó¹‡Â’À¿œUû(¼“¿¤ý.ÿ{í/ù/5Ïèá¾x/ÿ7ÍŽ\n×çpÿôîS‡Øœè’$yIŒ7ñáléÞ-µ¯ ››·¤(ÆZ (ÐZ >ŽùöÊÿôkŸ<÷4wíëA–Ö¸îĘ˜Ë'óÍÖë½Z!OmY([µ> 5sŸlİ ˆQ¤íѰ&šF@G#  QMˆ‚BTÌç´(ΑÉâåÎ!ZC´E󚋺`ŸW´ÐYˆD&ݾ!^ÜçêM§Ýn— öðál½hV“VµßªF­ªbVWwí.К — +6!,Þ® „Ç‚3,ôS›&ã¦pGpõ`P Út +°—Yº¬°O§5q‡¼z6«g™,¢°tRþBfÌË’œ“m2ÙR”›øk„1&Ð è‚©¶Èsd×H#™¾Â9wqYŽáÄ­·>´boF¥Ñ§ª4 ªÓ3••i`ˆ¡RöÄ Pæƒ2üVžTôÇA¦œ•J¡Ò  +6ÉÒéª:sú›§„5R°¸â`vOUçKñ{ãà·ÈšV!•Í@„ÎXÊ}MÍ«ÉQ x’äzŽ +4„H ? +,DÁbõ†€(˜Æ‰–h³Š|T  ÞP9 +¦†Ÿ£BŽªY©þ™§So¿ä¾è¿Ä]긹':3bqOø¦™Cö)÷w}®íÁ´—¦Yw ÉT¯¢X< 5ñw9Ÿs¾HÅØ¶Z~±w®{ÛgÍ„á‡T<€EwÊ®„<áÄû=¸Ó”ÀÕá +ö`ÎqD{ˆ¨¹°e>3c%»Ó© ?ÇbÿÃvùÇ6qžqüÞ‹žíókÇvÛ÷Ã?bÇ?ÎwIœ1wíªjΚ%  RLtS¤Nƒ±5Œµtë$•º¦1´)ÝÔ(´Y€RI¨[¡‘Ø:2E4@#šTHUHœ=ïÅ.Ðqʽw÷¾w§øžçù~¾O.˜¼_Ks›áòØÌ™±>;3ƒÖŸ¹2¼÷Ê•½ÃWèï•o–_=†R(u|´üZù¿ÇîÌONÞ¹ ¿|hëÐÖ•FY­î×ñ±Ú €=OZ¾/ìzŒ}H‰œ°Û`·Ãn%ªÄ­Jõþª.UgÃ|Q ‰i*–‰D3È'` ¥3õ9?2  ò!91¤„´P_hch 4 Y‡Cï…èP@JëåuQXÄ +ÖpÞˆðÆ13 œœÂ5"F¸>3ž<üކÁR©âÆJ%Œ®9ufêrÑåÎCñ¥ *¿±]ãIž8‘«1%‰jÃÐLÅPœ‹Åª<ÜE –·åk ZñF2mféhbÒ +ñ‰¢[êyûD·ªE‘œ£óSŸ'…‘Ñ}÷¥ß¾ð£ÏÐÁs÷36Ÿ…„ýäëúºž_qfûêoþTÕ‘:‘*ÔœÑzSΆìûÙš/¨»ìü%ÿ¹ô¥lú¨pše¯âOù«Ò¬l•öÉ¡óxš›æÏ æç²/³{ðé—ò>v›ûØ5Î ÒFv‹³_2ahë´·¹†‹apËV™‘m²]vˆ.Ñ-ÖŠÑ+úJì*¼Z*É[ÙÍx³´Už`ÿ"ŸBçþ!œ–ÿV¸ˆ¦¹ÿ— +w%ALˆbRL‰i1#+r“Ü,·È9¹Õ®$”F%©¤”´’QµImV[ÔœÚjW­*£ÚT»êP\Š[©U<ŠWñõZ{™^[¯½×¡%´F-©¥´ôãŸ;éŒe¿ë\“}9ûzÖäœXZ8’5`ƒ<¹´ˆ\ÐxÉ@Iœ¸ °¼ÀrrVBœ¬9®€X¢Sö£¹’ÜìC¼¬˜5Žã³ÿ_Æ)†ýåtÀªsEW¡@=rù¾ù;ñÀòePUôhŒ/C\þÁÈ»P;$XK³"ËÙê6¾( ,+nؘqzNcäAH’ žÂ4&ÓNöpœ,H’,2í¹x®­­F™:ŸÏb1[ØwÑ<ä £FèÝš#õ¡hM¡Ëè² h‚r¢ç)‘’)<ª4æJDþ…Iz7…ѼÆPœÂ}ÈÕp_¬œD}BéýËÜíô\:P¿¸Xòß@RËp\ìê‚> ÏÜ^Ô/÷‡{X ¡‘àœùýU˜8a[fâQ§fù,ÄvŽ”ÃØ¨ŽŽ€–¼šÕa¦Cšu¤:g`ÈêÔc\ªSÓoHŸ‡ã}h•`ÓJïàÉ qå…y…NX2+“༠;ÜriçáŽK‡qþA‚U 5ˆOW‘eñhO˜¼lA¨BE]SLæºöxâþ„ÉLÏ¡g +µûzQíì<;•ïT»¯»Ðªòñ®j÷‰nÕãN“µûx·Z褷–Ÿ×M¤&§Ëeº3MÎ3èwh7‡† ( ¹üW¯ú]¡˜ñ²>üÐâ>c¼¼(Óf Y$DÙNC=;š¿I”v_£ä®è1q.w]ž|fPlÑ>•!ƒ• AH‰ªÃ%æ@ÿÚäKƒUƒ’­z´J ”ÃRÈ\Õ¼ÑÈ@5¤8¯?ûôÏFýéÔÐÓÊ3ÑT¡ô«òüÍ ØÕ¯Öl‰ªÅ_t¯ô»ûƒÊ›?ÿñ+ܳ2õDaý³/^¿€‘TÒÊ¥ ³Fà!…4™±YX£·æ6‹°Mð +"N‰6Ù+‹bêBüBêFüFjÁµ(.Äœ¢ÆØr)=ÓáD‰Sõ+?œµÚHPktD-Ô}“÷5ùÅs¡`€ø½j%úù"ó’ÅWËS‘p­ÙÂ4†6 ‹`…ÊÒœT?@ô{€2 $2÷â ¸ÜÜÇø&^–“ÄÆ¥‹{+N÷ÒËNÐ@¢¤ª­ÑQ†`À÷ÀÒù£ Öu7T‚…!æŠ(îl*fn×.ª¸j»†“)›=ekŒ’v!Šl Â]ЦTWŰÇ+z#QcØ«^ßW«$è%D„¼Z[Q½ +©åàÖµV”¼öA£^ˆ5¨ª'÷}çzùjüWßþoéuß54~ðÕ‘ß]÷Ž“zjN¦íôŠ75-å¥l~aÿ o½µspd¢ý8D{+TGÅÐoÀÙ¸'<ïOÿîjâ8Ã;{ï÷Ýúní½Çî­÷n±}o{‚ÏöyNB ¤25…¢@I±©hHçEÒB +ªJC©W* Q© +µ ØHi‘¨T‘V„¤b¤D†ˆº Ä¸¡ŠÏýgö 5¶öŸÙݙݽ™ÿÿ!£ x·‡Em#»ÕÿWóÇæÿˆpÝ|ÃCø‚½cþ‚ûÊÿ¥tWñÌ5·™Yn³sÕ–ài“ò ¶_Ú¯ü^:¬üWpD,&ƒ£"&"+ ºFÍJ•“P­õY?´²·­pñ'8Gò´Ú<Xa±Od÷‰HBU8Ï`N!†:á¼Ä ³’¹À¦°Ó£¤• ,Êe™·e¯Cb»˜0­Ä¼Òv™JZx¿Ó®9#¨Æv€èÆþ +¬ä¥Šž +¶ì§V!ÄÛ·ÒtI8þ”$ ìÏŠ êÀ¦ "ú»z‰§ Q"ä"ù ƒþ½…¦­ÂÑv fyÿÝÕ›H@ò•á骀¾ˆm¾Ê¢”„  M_€– '@É!ó´òË…o¼Ÿðx€¼°7u*úÛ=Ûß{D¬'Ö”þ¶o²t?|îï K3ÑO27?y0‹Öu~7çoLÖ„ã ~yÖ4t<µ|ãÓkV¯^Ñ º êßÀ„™³Ã@Ùï:\-,Y¹t:m»°›ÕMWáÌÖ§.ZˬËé°ë¥þ 5–ë;àŸ¹jÛ3l‘]ÉØÓìjØÕ÷±Ë=¿h@ðz³ Lá¸êgXvõÚi¤eDýY·ßà"OÖ‘·i…wj(Àb±ö…Z1¨(¨Î€’¿WVÛ,öøòN’ª™j#qò-RS&ßåË¥]S­3f +}Neš¾Ê0&dx‡Y`XùQzÛ|4r4y&2,žI~9Ÿ´r²åAECd½ä€¢qÛ¤méç¥çÓû¤}é~©?=*¦í9ëè¼Ñ"[$£mnm]C`´¼®þ Mï±ý³1²¬í=w«ûÁ{Ä0>888¼d¬Çt_òÿŸ±}™ƒœ‰8€\6“N§NëCé~1 Zq±¥¹©©P¾: ¶{†¡{‡ÅT]Ye{lÜa·,0ç5-Ø!1`ŸNTò¸>Op‡Ô<ÅFí?Êßâ§yc7ßÃ÷ñûy#Ç¡ÛØ'F¥¬ÄJØï,Jd’óOÎáTx€JSó*}€:ªÞR§Uc7oŸºÈ—ÌQÉž4À¤Ò0u É[ Ì£æû ÈSøMa´p­p»`º@;z3 º½€›‹Z·.Ð +} Û ·tô–?½ÎU¾Ý¥„…Å2”ÿ¶÷v%–=¶fp[†Ù³Òo-å“I¢Ç:¨˜wÉÇòÚb¼PÅ‚B™æk›Mºš&ÉžL ËU 3x2'yò yò ˪Ÿ¾‚xœ²Û)Iâû¨Â˜¿x|Ù þÅÇkÖ/ZK§ Â.:» 3RÏ!šŸÐÞ#¸hUÄê +ÇñMŒ0Ñj•±#†*W0‚(Ñ‘&Ý•Q«H–ÔKu„ ̵ͯäH(R½Éµ”¿›Iè*•|Œ#@Z(˜«ƒþ=€VÛ‹ºP€ÊœJ1|e^ôéŠÔ2ëüþ©^Ö¾²ñ©«4ŸZS—jþö¶u¸¥¥ãlµR‰çiWQbKrŠ~ÌNkkK±Ã°·1O&“‰æÎKùFð7ì«™',.mÐOÒñÔB½¯ÃéÍô-`Ñ]À¢ÀÌ¿àu§Ø!ó%ûe÷î£À¥ª„+¡‘ðu÷Ø»f×9á\ˆåÆ+> Œ 7CÆ+U—Ÿ±×Ícö›îÏ8ËÆª-á·LGlo;~çzÇcÙÌn2Ïþ}÷n#oöËNKl…—è;Ãx™(s12gØ;PÖ•ì7OIÖ¬µÇj°ÕÖ89¨%P¨ÛOìU{lEŽ„Yzhb0¡Õ—tò‚‰QÍßPoä-ÚœtÇ®—JS¯ïfv¿6½g/2¼üAÛú7÷œ~÷'?}xúŸ/½põÇ»Æ_Ûsó¹ ÷ ü¨ûÈ ¶[¥Uư>*£¡œ™’&ª§j§RÙ ÍlÙUö¤|N©ý8u£v,e–B^5ŠªF.ÕR2 ä« 2!Âõ±¤•±‚ÆÔh6ûØšÙÙû"óAöÑ™‡ÀçÌÕ Ø.T1»c 9¼#ìŒXªÌõr ˆË=‡¬²’âhgÔÀD½ÑhôZÔx<Š¢Á¹¡g‚AA`ÔÏ/¡$ÁÇx£Þ¬÷BYtZú‰èÌox¶,:):4Åé%r¢· t(¡*PŸ`¼ÿ¢UU   Á‡¨Ø ÕÔ‰J­Z­Ö‰s$Ô @¨‘xÍúJ*³¬5³¹8ø“zŘ‹gXøYJ”K¦CáT<J(¦dú}]ŒÒ:ÍB}Ú}Å,…$Ðð) giRDÛ§I˜$"]»â_G² ´’¢[à +ÒÔ²o$Ù„žÜEx·t £ˆÛÝ'.=ôè?PͱŸŸZyˆõ/zý;¿z¢ùØ /þ¡·tœ2(XÛ¤·$—-}2tþå¤Ñϯ¬ýáÊöÇ~}TáVP0$ÛjÑÎSQ„šGé8ÌÛ½^ö˜÷˜ØÆèÆ6 j;±Ë$Cáˆ(EåêV笌rÀá¼§kŒÁ{Iô`f1µ5st¶¹*ˆíN—•óES͇[Û ÈqÍçRÜËÖSUÚžô ªu;†PËnÙh©5;cBAwZ»¡¨ÍûA+ˆa|É8_5#Gå¬Ü)wË=²Yê†úã³3bˆš›G¼cÛ»¨ Z1>ä;¥GD˜â^¾Q‰7਀TƒLÓÓÃãe ^Ö­˜<ŸÂx},Bùi|%@â÷Žò‘à%å#¡ !½:xWÒt¨ÖZþÖôÂÖëpsB]%'Žö¡UcH|¦ƒDÃÞ¾®–Žz-Ù¼|ëÖÒù‡Dì÷€¾M°ßmìŸqÞÆ™óÇç7ewg™=œþSúlú’í¢ýRnÌv=7áœÌøìÈb²Ø,sk²s3mµK2ÖÉŽ‡\;ãAVåLKíÆœa”XM>³$ÓöjîÜ]f}©Ø9“Ãà´eœÙJ‡ß©’„`–k|ű'û?¶«¶‰ëŒ¿w¶ûι{¶/vìà?gâü»œíž˜ .w Ä   d¡©@¡­€D“†ÐÙ–-ÒØDU1Q¤²u+ B"%À¥ Z‰ÆFZ˜A¢ë”mЮ‰÷½³Ãiw¾ïûÞ{~÷ç½ïû~ßï÷—?¡Ýiÿ*a‰øp²ÎgIÅ,²Ê•u’×éO2ñì}’ +'0¬áxkš-k'øv•-)s´M+‚¦£ÃÝ«hÛÔæx¾«4Úœ½˜Î>SRãס&ááÖ”k/?ƒjÃhH·g-N–a^1rɸ˜LÆ-R¦2œÛûý'„â'EÎûOC’átàZIÑ(8›€#„:aJ©ðtÞ/õ?™RûºÊu"Ô oA×›sÑ…¢.-µÝnè†wð wm àpØ+Ð<ávCêã”ÑMî +ÑJƒ¸î»±{Eé_Œõì¡ý$Ò°‰¨õ¡!dƒû¾9<{7ºª'0UÔ@¨&~Ó¤df²DhÜÚ€=.Û ÈAטFü\¡™Êà +Sê„áãÍ4x0°AÙ„áSÊ]`€&L… "÷·3õï“èC&¤D}ÐKwa&™Zl4õcb‚ 1O´Áôв3ÌÆpFŸô@ô1›ÿºÒת籟îwtzðúô`šØÓ©'kV}…/òáöŠMÍgFKˆ¦…ð +¼â0x…Æ|ç4rï®Uˆèª¥j…Z*2#Å{´p€dsÏÈ€ámù}Ëma¬Åº¤vQ˘mŒ½á¼áv4ÞL~-pK…uÂáCáB‹-Ü­«ACWM²¥«ÚHqÈÐ@ÛWª•ÈÊà-üÞ¶9üz˜©Æþ ?ü¾Éß +Þ +¤Ù¯r¸‹[ÏíåŽq£œãø]ÞyÕ¾t"¡ 6<Ýž>Ï›ž!Íã!M 45Axi¤EÆJPóD •0ùp¸oõ†t!ŒÃÜ2¡(Ñ”`v¯ÒI»M$DÃ<2êc5å´|:jUü¿@.Ê—”GüÀŒÿ*ö×äƒÊ ˜œå‡É ù=å2ÿ9/¨8]rH‘丒’³J‡üMeßO~"ÿTq®áב5ò:eÿÙ$¿¤à÷ÖÇ×Q®Uòü"R¡Ø—ªJr±Jìípu¨$²T…7$Ö@›ÜºT ˘·Z£B.¶á¶6+] +÷RÕjDëÓ]VL¬CÖsV í&î´µ„µi«un40ݲ[ÝøUàX`4p5` $ +r*áJ%d™â@*Qè¡&»fà­··§‡ÖrSŸ~š ynÀ— òÀ®ó#¦!ÀS5 ÙeÎO•2«"’nü?î˜a¸—> ÉÞR$`ì-yµéÑ™†Êgš8V_Jˆ¦£û2O•„3sæèù¿çu¥áÀ‰¦yù¿åõ9sprúßjFÏŸƒÆ÷v‚ñ»¼žißL?´h2ø}¢.Ãö÷;[Íš;'¬Z3 ´Ì½¸¥!E«I³RlybCØðâ FÝ&öK–©fk½Ì;Á2 ¸œ÷"ºÄYo Ï8ÆíåUiˆÜ[F”«JsˆTÏÎæžGk¼¹^p÷2E|š#æ‘I¾ÊÉ•{O†òœ·”–Y–ãëu8¹w„ùâàmFPI}a8P2våŽjï– "p„ëâ¶AÀ¼Ês•p¿·à#$náÙ¡; G·Ãr2¶ß·»Tþz–Ý…$ø 0•½ [=9A`«ÉÄ$D kÚ@œn2dBظ‚l’4ƒóÖ¢ÎõAÚƒí.k¨[\:G‹ RÀÔ¸>^³nusaªÀ`ÍéQÏÔ"àj=½…˜T®($K¥B^ÍHÕø?x³EkŽkú™YÓµx\Öî+š¦çOaªÅN]ï¼ó2Ž™ØôÂÉÉ®²í;…<ôÖêmó©>y鈭xèë¶ƒŽ ð_\t\ƒS`§¯“¶ƒ%¤|ê°X¯ Mô¼B%>‹íh'zýÝÁw˜ úØ+ñ!t_Eƒè¸¶¢tõ£OÐëÐú_ÁûЍ =®¡Åk¨(@¹ÍG +ÌØ += ‹7‹÷á?;Q#ŒíF+‘·øçâgÈ z?žFGÐ:\<†ÖÿzÑ<´ý®€ w9ôƒâ-¨y×?GK€îGûàþ¨øfËè]ü-p»hWñ<Ý@!óI^´ö©³îU:ÿÇnµWU]áµNnÈë’{“ $—4„„$(HaŠò¦iHL‰…òÖ<0ÏBa¤uhmKÚN+jÄb…ÁBaÆ2c)–::E[‘‡ZQ;Ö,¶NgäQñô[kïsIÀÔö_ïÝóó}ö^{­o­½ÏÝj¬…[žm¿á‰ðd6ÕáÐã^EÛÏ{¸JÜÓ°x'U!ÒXs­¥ù4š*(‰3yàýdÚËϺoÐ÷¨³Òbj¦Fõ©Ä=ãžÁÜcô8½ÂŸp1âD}ÿÏàMPçu:%‹é*ÆŒ<Ú^ÛJ´åhÛÊùìç|(ßåÇù!Ï8Ÿ ¦{¡Ìƒô´Ãî9ø*ö7A±*z‰«y +Ïqw“ƒK^æÁ¦Œže³ÝƒÎï±æj¢› y%X@ßòeoÀ—UÕª;UȈ 3ðB1ù®¤å¨”ÔK¿¥÷ =ÂøáðrE•”ÐîN³û¡3Î'W¯ñgœŒ6O×ã×oNÖÇ]V§Qh3I¦áÉ\ú5TtÓ.ä´†üîkîkNÏÀnxï˸ŒðT#O9O%ÁÜ(”£vË) :oA;ê9Õ1ÅÓU´Lõô45znkiá^°õþÍÓi­ÈÉü²ô{÷ØMÅú5Ø_¸s/ó%ÞÏ»è$ž¯EÕê×\É.Í…EÙ£-ð£û´>”b—^¡±ôs*BOP'¿HKé=šÄÓùvBOÄ'¹8ÉÛ€|šwñ—8ƒþˆk>½^¥ Ôƒ‘{iü;œE¹ô!½Ãþȧ³þ¡í9>ÊOóJTÁÚ]\Œš_¢½¿‰š‘ßýÔùÒØû ļþîCkBû%ÚStû­Æö7óf¬µƒëx‡™`壘ÿÑæ'õ 'üâ}›¿Ëé:ÎòqõSÞ¼nããv¾-«w“êÎ=ðwÎÆÜ=mÛȨ’Læ/À÷±;e½®Ñç­¨}y~¾Êñh,3PÙò›…/WöcNe€ßG¶QØM}Èæièž‹ +ØÆÍ8±s5ë;l66£¦:¸³Úøªà9|ëîç.>†Ó7Å)[Eq’|,§±¶å¨3g'Ú!zžžç6nÃò|QÒñ½ë£þ*ðžM[IíœJé"²ð(N–ñQj{*H¥4Yý$ÚJ´5Øçù8òõCtÉyŠs“ûy-ð0Z?v@?(å Nóµ¼6¡ÿYv»»ùü”¾½ -­”.sð^¸õsÌs¤UòM@©÷ý.b¾CÁûfx_‡ábÀ—#¥‘¦>xö‡Ë¨åS€œ…)8a«PA‚r4ÏŠüƒ+À9]Ž/Ùíð¹ÄTÉÿŒÏŽg‡þiÎèá!aÓ§#éœAòßÖc”sÔdN3ì!ÊúQΞXÜt4¹¯Œ½L”ßh0Ú¾CTä7(.0(mPöAqÄGqÄGqÄGqÄGqü_ƒ‰‹p¹:)‘Ê ›é«DIýÁE”€g¢¯û6áš@òûD¯Â™r8Ãr‡’¹Øòª×QÂ} +I¤Ñ¼ÞòTÄžÍ$ú?fy29¯ZžBc“¯Zžêä¥äXžF­iÓ,÷Scš77}Ä!g‘å#ékþ™þîõ¯·œ)ÍÁr‡|þ,O ©þ·-÷QFxL"ùÓƒ– `z¾åIT>Õòdô·<…Ffœ·<•Ge\´<¦g~l¹Ÿn xsÓjÒ·Y>’&à ûDõ‘ý–û¨(ðcå’ÔÀ Ë}T8¬|úGþi¹òg•'I^‚™–#+Ê“ÑïN±ÜG…Á1ÊSl~ 7ù5Üä×p“_ÃM~ 7ù5Üä×p“_ÃM~ 7ù5Üä×p“_ÃM~ 7ù5ÜäWxªh\i9´ +ÎRž†þ@ð›–ûhR°N¹_5yÂrø|@ùH©üàŸ,÷Qqðåjç ËÅŽ̓—,‡æÁóʳğ¬lËÅŸkʳџ•u›å>*Ëú¼òßd9ÆgU*£ã°\Æ÷(Ï•È:l9j k·òqêO¦åR&×ù:þ¬å2þ˜òB©¬k–£²ÞU>IôÉo9ôÉNQ^.v²çZ;Ù%“£ôOŽÒ?9*®ä¨¸üQãýQãýQyñ{yYAi5P#ÕRî!Ú¬ fåK©ƒÚn;*DóñÔ .×Zô·èˆzZ12Øí¯ý/-Ýö,DÕxÓJ=á1]è«Àݬ7…¾ˆv •[6U{çbF+îU˜ÓºuVìuÔ‹ký ¯fªW=xߢ£B´ ÷>Üç©õÑ«oºÂþÊz²~ˆŠa¯^uâMл%´ê:ãcW2ëÜXËÃk-…1£Æ¨¢¢W=žÛp碌Ñ'k}v­Cèm€J-ð²[½mBx–1uÚ#õžÅ£vô¯ºÏ2ªÄê´˜í…W¢7„ë"\—hÿBôTã*ÙYŒ\,D[ª½+(RC‹æª{Pezý&Ê ªóëÝÆ° +ƒ£7•Ô%ú ˜/£k1ÊDij£G+#DëõíFÒ[SbîR¦Gçš +ñü1ʵéxã‰ìV­ˆ­ÚíkR+’½UQªuµ]­ï{u\üð47kvß@¯Úú´"¤§Aãj¶>ÖãIúëÐתñ5ªzmCêÕaãÅ¢¬ôY›C­Wo«Gjb½îUãõz›™vky¨ MÔ¨b•2u5¸*¯lúEë^\在Ū­Ví.µÖ}ݵEý•èiÕ»¢2É…ÉSì¾u̪]j§½Ápr²µØ®{±O‘ueo׫Òf—Öê9ÖuŽ•…GwFÕ­‰¯ûS•ïÚÔ¾WW1öú4ÿwk6£ÏŠF[‘‘kN‘U\ì7‡ã1~EW·œWR F³«6Øúðªt` Ý(¢H}Thìƒ3' +‹ý{Ðß ¶½hêônζö9è wIJÄ'¬U•zõ ì‹:†“}ÏžÙ“²W{m6"{̳78F-A·žÝCîc/cµ´nü¼¨ þQfç–8,uòÂ,7µ[Ø'å5Ûº—Q$Pž&Jû.[<ûtÿ þЋtíåŒRø3Æ=ÃJÖ<ËœøÆ²gf‚B§ –‚½ý­Œ74Ü%M(1)[´J» Ü £ÿgÅŒ|Z¬ÆäšŽ®­ÆÌ¬°[qž*UGÆÄí×ùg}åM¥dÄKé]lNÒo»³/ë$,ÛQsTgÒQí^Æ eIMðü¬ç[¡ëeT6eGÕD+´!ÓÆÔ /•Ó+j͈^]ccm/§5m¯×€ÉeâBˆ¶#àÒ6b©”k;·z|ÇI;™0ªvµ¤Õë(¯[#Íð`4myËw”ãŠ1_Å]ß±ÃTŸJø^ºŒË_^cDò"YÖ‹ =¾Û Å´Àô2ÎÀ€F%PÂU?ýÊòÝR½V*gu§v8á@í¨êʤœ 0Á›($¦b.BOTƒ¬c» ×^8r%,fB7Óct­xÜÕ)µRÊ756J/û†[ñ.*å¦]81ryÏŸ„…ªHfÑËK‰äºSnÔ~ÄVî´Õ§¿¤*Û§‰+3ôGG†ÖD98+Ó§öÌ9qc{©¶L1¿ˆÛI/—ŠKiöº²!t ,¾–“L:®ì£BÆ´\ŒK„––s¬³Š¨nÖ@îW°­ŒêvJ†Ä6i®ͪFm8®¾a¤j¨WS[_[;hPW›,ÖÖÕÕ×˳a“Õ0vLã˜Æ!ƒ“a˜mŠÅòù|4]J¼í¥§x‚4®Úœ0L9þD'p{tùZºd´LÞ—ùÊT±†Þ:¾}”*uмˆéâô-I’”esÜwí$_ºOÖ*(¨NJÊÝ— +’–£÷³RÍÚºkK©$ÜÙâ0ë†vRÅÿQÊ ÔE.] ï蜘¤¬nc"aÚ„Î]VvŸê + +Uä¤s)K@¸— ³¹Ð ñé9º(C«[ä +õf솎Ì0qÏÎé˜"ŒVà,– Ó©X:ÌXi'–v³ tdœ|T¿ù›Zy'%«Î¢Uô±b‘é…Æ¥Žâ€­? é>Ž+I…ÈqˆBó+J$̰Qéí¤â Xá}õÕ·Uß[}‡<ç-©û—H§ÊJáªâÉ\EÉÉfD,]eõTý|9ˆgá[±:_ÞT’›i,Uz;Å A½†©ÊRÛÈzN»‹£Qßßb¤"úÈÐÈ‘M#"c#ã"[E6´E+Zì\džÛt¬™Ê…qqVeL\oU“A¦r=sqµPóóë0<&Ä?‹ —Å*V£,†Å±–”kÎ`,…¥åú² –ÅrX+`E¬„•± +VÅjXk`M¬…µ±†Š·u±†a}l€á!W¨‘Ø˘[#WÌ\ŽFËå¨^®Dcåz4N.FMØ›asl-±•\ÆK$Ñ"•2YòÜŠ­……©rèÀ4É趘.׉NÉgb;l°#vÂÎØ»Êø¸»¥ms=H˜±ßÅÂ^JøÉ˜ æžÂM`j¹WØ™-±öÆ>Øûa€qÆ!8‡áp#qŽÆ18Çáxœ€qNÆ)8§1‚ÓqÎäb8 gã.ŽsqÎǸáb\‚K1sq.ǸWa®Æ5¸×ázÜ€qnÆ-¸•KàvÜ;qîÆ=¸÷á~<€ñÆ#xTòõ8žÀ“x +Oã<‹çð<^À‹x /㼊×ð:ÞÀ›x o㼋÷ð>>Êûác|‚Oñ>Çø_ák|#»ï;|ð#~ÂÏø¿â7‚Krs).Í!\†Ër9.ϸ"WâÊ\…«r5®Î5¸&×âÚ\‡C©¸.×ã0®Ï 8œ#¸!Gr#nÌQ¬a”1ֲޣ¹ ë9†cÙÀqld7åfÜœ[pKnÅfŽçNd 'q2§°•[³SÙÎNã6Ü–Ó9ƒìâLnÇí¹wäNÜ™»pWîÆÝi±›6ãt˜`“t¹g1Å43ô˜åžô0d޽Ìs6û¸÷æ>Ü—ûqÀyæ!<”‡ñpÁ#yæ1<–ÇñxžÀyOæ)<•§ñ_ÂGùç|’Oñ|šÏðY>Ççù_äK|™¯ðU¾Æ×ùßä[|›ïð]¾Ç÷ùçóC~Äù ?ågüœ_ðK~ůù ¿åwüž?ðGþÄŸù åoU¨bUUUuU¤êwž«;̉*âÌlrwôÞ‹•Ž\°!H± )‚²—,—p¹äH¡«4 Õ +(]A©Ò,VzoR•¦‚¬{ÉmòÇ›yïÍ›ßo÷}_¾Y.¸‘‚T¤¡8J $J¡4Ê ,Ê¡<* b±¹¨„ʨ‚ª¨†ê¨š¨…Ú¨ƒ›q nÅmŦãvܺ¨‡úh€†h„Æh‚;ÑéÈ@&²»Ð ÍÑwãÜ‹ûp?Zâ´Bk<ˆ6h‹vh‡ð0Á£è€ÇÐÐ]ÐÝÐ=ð8z¢z£ž@_ôÓx +ýa"xaarბ‡òD„0"ˆ"†Á‚¡†á‘xÏàYŒÂhŒÁXŒÃsx/àEŒÇLÄ$LƼ„—ñ +^-6 ¯áuLÅ4Lǘ™˜…71s0oámÌÃ|,ÀB,Âb,Á;xK± ËñV`%ÞÇX…ÕXƒµX‡õø°›°[ð>Æ'ø[ñ¶a;>Çø_ák|ƒ؉]Ø=Ø‹}Ø8ˆC8Œ#8Šc8Žø'q +§qgqßá{œÇ\Ä%\Æø?á +®âgü‚_ñ®áwü?q7ðþÆ?øÿÙ÷7$Eƒ.º™ÂT¦±8K°$K±4˰,˱<+°"+±2«°*«±:k°&k±6ëðfÞÂ[yoç¬Ëz¬ÏlÈFlÌ&¼“M™Î f2‹Ù¼‹ÍØœ-x7ïá½¼÷³%`+¶æƒlölÇö|ˆó>Ê|Œىم]ÙÝÙƒ³'{±7ûð öe?>ɧ؟&sè¡—0—>ú9y 0ŸA†XÀA 3Â(cÌ!ÊaÎɧù Ÿå(ŽæŽå8>Ççù‚ŸÆs'r's +_âË|…¯ò5¾Î©œÆé|ƒ38“³ø&gsçò-¾ÍyœÏ\ÈE\Ì%|‡ïr)—q9ßã +®äûü€«¸šk¸–븞r7r“жØ9íc~ÂO¹ÕÎlÛ¸Ÿó ~ɯø5¿áîä.îæîå>îçä!æå1ç ~Ë“<ÅÓ<ó<Çïø=Ïó/ò/óþÈŸx…Wù3á¯ü×ø;ÿàŸ¼Îü‹óþËÿTL7 ¢$C.¹•¢T¥©¸J¨¤J©´Ê¨¬Ê©¼*¨¢*©²ª¨ªª©ºj¨¦jÙ‰¨ŽnÖ-ºU·évÝ¡ºª§új †j¤Æj¢;ÕTéÊP¦²”mç¦fvrj¡»íu¯ŸîWK;GµRk;SµQ[µS{=¤‡õˆ¬:è1uT'uVuU7uW=®žê¥Þê£'ÔWýô¤žR™Ê‘G^Y \ùä×@å)Pl³òTH”H8 ++¢¨b¬!ªa®ñõ‘zZÏèYŠÏFkŒÆjœžÓózA/j¼&h¢&i²¦è%½¬Wôª^Ó뚪iš®74C35Koj¶æh®ÞÒÛš§ùZ …Z¤ÅZ¢wô®–j™–ë=­ÐJ½¯´J«µFkµNëõ¡6h£6i³¶è#}¬Oô©¶ê3mÓv}®/ô¥¾Ò×úF;´S»´[{´Wû´_tP‡tXGtTÇt\'ô­Nê”NëŒÎꜾÓ÷:¯ º¨Kº¬ô£~Ò]ÕÏúE¿ê7]ÓïúCêºnè/ý­ô¯þ3Š70hÈ0 —áN¦Ã#ÕH3Š%Œ’F)£´QÆ(k”3ÊŒŠF%£²QŨjT3ª5ŒšF-£¶Ñ$ ÊCÁ|3œç憭h,d~,þtvòå«m,r{óMO8L ¶ÂO(l¹òý^o(êj•¶[.3îV¡\û‹4Ïm&ÐÕÆcÚ§\Þ´±¿M#>wÛ"‘U$j›ØµÐÁôÄ¢–+€‰Å@ÔÁ®¨@aÙŽ‰í`:&TÁ8¤vòæ$N§†æêš€pÑ,¡' [b1‡”îËëÌ”hquOÈ¢q0z„í×dÄ +ÇÔÉJ±d¥> õ)ìx¸=íÍü|Óèî³¢&;ûü†(ð™†× +DM·Uñlïˆ?7ßdÔŒ±Àç/ z‹^¶mžj õÌüBŒÄ +¬°?vXÛ.Õ ‡CCÖ€¨;Îbiq ûs}ÑĦ74$˜`9¡¨/µHæ –H²œˆ• +G}…wbJøƒQ»¶å‰úCÁâÖ ˜°°‚Ëð…b«¤}ÙP®ßc‚¡hZ¡87l¢IšMéÖ.½iᯤ‘¦I’é ‡d9¤¹CZ8ä.‡4sHvÉr|2œãÙN‰lÇ9ÓñÉpV2M†ã“í´šåˆ362’Ä©žáô“™$ÎV–S"=YÔqÎpZÍJŠç,§Ÿ¬äs9ÎYÎñìä&}â+îXAN äÉsÛwXˆFbÀp´høL¯eÄG·7/Žÿs]mËmY°J¼“r§ò©â\ ½^ÙV²¥’¸¼Ù7ˆ’°H€"Éò×ï™[Ïd4ærºOÏà ¸ØÑ§ÝÕ~]:t¡Ÿõ—ºÚgw¿øçmãîÇÝtS_6G½¨›§{*º7È·u§šöaµÑ´žð0ê†fºÓ'ÚBcs™tg"oŽÃýä +¢ØÖÕ©m¶«ÓÐùM¥¿K0íú«ÛŸ¯ê/«¦:·]iÏSûÞê M]T»ºÎ—* UN?ÒŠbú‘©Lº[ÆìMˆe{ÖÓ?{ëŠÛ¬r÷Õ;“ÍpÚõ×Õ&âñ;ó2oè2»ñ3´»Oo\Ôö6¾1ã4]V’Hû$Ò3bO—ù‡Pnö¬>&sÉœ÷Õe| Ëô¶¯[=­ímvëµÔ^Ë­ÓR»Š|ë‹mí“è_"žÿtÌoz׺¸m=º¾;ÕfeÜçdðòî¤÷nЛš†ÿabÆÿ #mòO{.zžñÍ¡IéãdKÏýÕAžª§É·ê¥nFTóF=ý^Úí|WÓ_Їj7¢ß„¸µo:éÓˆ~ýèoØI?Æ&ÈÌvœõÕY/-ì;ª€{=¶¤”¤FúÏô´Ø¶Ãý‘zšÒx}¡éÞ”ÉÂntD¿Ô§W~&7õ‘Jn³¤ñ>ÓWA«õú»ðäœ[ZíÖ¾ï#tÎHѼ2|°¥Å¾±Mv¤ïü>i± cª]¨¥AŽÒ6žªsý¸ »Ýð•5Ýck½Ãóƒv`Aùøn»¾µd‰CHÐw­l~¾•ÖÈ#Z ‡®Ý2¹‡W~¼ŒVv¡üLZ.‡–f%<ŒÌ{/yNÚ­­3Ê×ìÄi2wú³knÖ+î‡ošþ»ÖÛþд͗¶nôå5šü3íûöb>yNÕåáµE}kšÍ³}·²BøJ“Ò¿Ý@e@¾¢ò'§AsýÉiP”!rxEÉÊ€r (FÒ5”®²„f&ç‚åQK˜›É  ÈÃkɹò½Å6§/—Ü;dPà(á†ð§éåa.TekŒËƒQ¬G¯ +xU`n½B¾EÌÜÇãÞg¾fç¼ômyŸ —As TÅx¡­ >S”mkŒ[2Êò8×gÄ…ç5(ÇÜ/ÎÈ€0.Ã\/'ƒPl+ÊÑ["ß2¬¥Ššýµù³ŒÚ°ª¥ÿj1½!žâ^%Ðw“Š{{MÅÞ¸ +9æFòPþ45êý»jP”#sŒSÇ1NE„ÌKð–È·Œ½AK¹^á­Xs $2 (D.â18΃‚Rb× (À[›"D–ñ €>ß胧É8xšŽCä š±ÃÂ`"Ã÷.¡0C†„ ¹ŽojSxSBýã¡þ弈U™1´¡®Á¿"Vê°c© 5›I´•@Îvg÷\²mˆŒ< +¼û’!^õ)´ÅÞÈõAUÌó8çGo-´ ²JÛ ¾€¨±’ÿ"*€Ò¾p°)øÂ/žL¹©¨ +Ö’ƒCÅÞ/ꃨمŠs£>ô–Ȩ„Wñ$± JKä†[ +øWBA ¥8»¥@­[Ç8]â).P ר„ë8¾ˆØ‹“)ž[8?$jD¬Þ±¶«ä‹x+‹s±Fñ«€Å=‰È ë«4¼ØI£(Q¥6¤Š¤BÛ y@²Hix+•ZA"¢ –þæìe×ÞX«ÿ9wÎÜûÿ¹3œ]…¨«lÔU6ê*;…¨—lÔ ÿ×äïYÕîæçË[7¿P6æwî=¼sô…]ŠG¥±ÆBuaÆ yž™3¤°dÆŒ²ñ’ÂÅ™^òrfzIañŒ÷:_\ønmA~øp1Ú[:\P˜1.Õ¥/[—qC©^0ûÚ®“ì:/,Õïaf]Öw—GåÚüîÊ>WüëºÅ®®äÚØ]½ÉÅêBwõ®«w½{®]/εëÝÕ»^¬Þõî9v½øÝÚüg+϶·<¬¶¼ {Ë#¿<2åÕ~eµ©tçW?º©.øÕ{aª÷Ÿk/Ì\{áWï…©Þ ޽0sì…üË% Î7•¡T¥©RU† ¥Znb¡™uYZ#ðÒ&¤z–03¯êûË£Ñr?ýÃÑʰ¿ÒÚheØ_ér´Òeÿì.GgwÙ_ér´Òeÿ¬.Ggu9P+w9P1Šn^FµøÞRChEKk Ý‚pKM Q‹¯ƒ5žP¾žÛÍ?Ô´¸­¦lþƒÍoÙüšÍ?·ùE›÷Ø¼Ñæ>›lóÓ6·Ûœµ¹Õæå67Ûœ²9)ù« oå8û7äüKD§£z‰3+ãh½Î£Ë¨‡›â°Ô¹)×™ù×Åáú¬Ê8šDï£óè²s=¨_”Ê真© Šr/ªaÕVaÕV¡¢ˆ(…2(‡zQw®pçŠÒêš3¥n"MmŠÚ³§˜=Åì)^ÞÌ+Çù«T#*é¼­·#I—=xá/< ÷kÎ4^Óâ5×4«§Y=Íêiñª\9ΖÀIžsþtEéÏgÓ#Ɇ|«Ó…}ßLÔÅC¤œN6é<ñÒ|;ÜíĤ“¹¤³„üCòb›“ASgòÃX^oæ-(¾£8»g«âìoœ­‰óžãlOlœ/"Îç;ŠóÅÙÌ8ßQüìÂE‹rçôÅ`ÙʉôuC_ÈõëT:6Q{£VOÔܨÑÎ GOèZR÷É<¬ë¨¬3u§ëj“ó:æ Î3óNÏ«íÐޝ}§&Õ”jNµ¤V¤zj›ÓÍ-+{êó{õ~^â þRÅô—Úܧx¬SúÔRú b†˜CZ Êèq\F“Ä÷et^fGkNÉucy]4ó2º†©ËZý…> ´”¾ +å*³¯*G_ÕïJµQ_áNt¢˜A9Ô‹jô}F漫?WçÐUäèÏõ~VR¬jHæÿ«?ÓåúS~ãw‰ßE~ØÐÑ%yª‹ô~QÝEŽê >„¢qtÕ²;—x¶Iý)Ñ%æÐŠæ_R§Ñ'ÈáÞt‰jä5HŒ©“úUu\é¤>ŠŽ¡ãèè¤~¢WЩD‡Ðaô’T ЋÈHeÚ‹ö¡ýT Œ¢0 ÃÀ0Â00 ÃÃÀ00 # ÃÀ00Œ0 ÃÀ0ÂX#F<ŠŽ¡ãè„Ô_F£ètD*Ñ!t½$•èô"2RÙƒö¢}(ò÷ÄßÃßÃßÃßOü=ü=ü=ü=ñ÷ð÷ð÷ð÷´ù ÆËßàðxpàp¸\¸\.W.€ À€ Ààpå\ü]ü]ü]ñÅ?Ä?Ä?Ä?ÿÿÿÿPüCüCüCüCññññÅ?Ä?Ä?Ä?ÿ“z7ÒoÑïø¸NêhÑ.¹?ˆ†P Ke+Ú†¶£RÙ„6£´E*}hêGåÕïVûà…cà8ŽŽcà8F8Žcàá8Žc„cà8ŽÎ œAýžÚ+:,;Ñ*¢]r ¡–ÊV´ mG;¤² mFh‹TúІü]b?ŠH>$Òz!ù|H>$_H>$’É’ɇäCò…äCò!ù|!ù|žÈ‡ã §ŽC3Ú‰FPí’{ƒhаT¶¢mh;Ú!•Mh3@[¤Ò‡6 ~´Q¾»ÝêGÂpa¸0\®0\. †+ † Ã…á +Ã…áÂpa¸Âpa¸0\®0BF#„Â…Âa„0Ba„0B!ŒP!ŒF#F#„Â#†~5öŽ>{˜Sr‡Óò-§æMÎÆ$gd‚³2™ÙÄÉèá„tqRÚ91ÎÅ㜜“ÎËrNE3§#Í)IqZšôn˜TI$Ê!Á@mœ€øŠPj¡Ìñp«ýŒ° }!ÆÏ ô$³’ +endstream endobj 117 0 obj<>stream +H‰œW xÎç?ÿÿïý$rq Ò %â¡AA\ëV·R¬ù¹‘Ûˆ4UªºÏ0m·®#B±Ú†RÝfeÕ­7mÙF©nÕ¡÷Qwêiö{O"¾Ðn{–çÉùÎ{¾óžóžß{ÞsÎ'ŽˆÔ“ùIæ&qÆuTv^QÉÙ1‰ëÅ"cr Ò½ò~F7‘¬ã"׿yK +ëÎ *™[DýÈ|o^Fàö®‡¸~Z$lmaÁ¬¢â3eûEžŠ£Ïº…33 +÷–­j)òFOÚÛ)6Ö‰–éâxgzÓÄ_ %RY)~8â#žœüœ"‰Ì˘–#Ñ™9ù^‰ÉÍÉòJ|Þ¬Œ"IRMQêTïîÓä\©Cõ¤…¼íŒt£<áž-þ%köœ L. Þü¦îtèÝ•1{ÑíÑ]q“‘Š4d!9˜ŽY(Áðü ¿Àz<_â%ü¯àUüoá]üGðþâ|3¸L«Ñh‰Öh‹Nè‚ûÐ=‘ˆÞ胾HÆ Ä2¬Â3ø9Öa6c'^ÆìÃkxpÃQ|ˆ8…Ïð.úœ4Yš£¢Ñqè†+X5xkQ†Mx»ñ{ìÅ~¼Ž·ñþŠ÷qá$>Å—8‹+´Ñ¼Ö¹þßSdK´@$¢Ð1ˆE<0ã° ±K±+±Oã§x¥Øˆ-ø~ƒíx»ð[üÄŸð&ÞÁ!Æ1üã4>Ç¿pp å¨À ܤ¯.¸uÞŽÕ'î<'±KxúóüOùD°¿Æ6ìø/‘|󸈫¸†ëø†ùRW£rÜý*q’()2OÊä°\qê8 œp'ʉuz8ÜӮq£ÝTw¦;×ÝÎ=õÄÅYå’ûTü¤„I„´’v+ÝÐÒÓèAzIË0‰t"}“íLQ†Ùª{1œëíAú9FêÎQ¤—˜Ïõ¤±„K$_N zªå©jójóaµ™ª6½wØ­6P›cÔæXµi_IÕVšF`cI¯á¦Õp5\f ÷¨rU6z©Õ$µÂÆJ‚ô!’Ãd´L)’Ɯɗ"™Ã·XVÈ xÒ2ÌÓÏMxœŸ'™½i£}H7¢/é$ëùú©‡þÖ²4îl;Gãž®qϰqã*é\#]ˆë¤KyË.VúàQ®ªqC5nÞ¡‘«òÔC¾z(øÎ®¯è Sô„…ºó‡ºs¦îœåƒÓ8Õ¯8Y ‹ô»Úw;P­ RÍÙj­X­=¢ÖJ|¬MÐ{}ÐÞ+­…²†µgZÃJõl­Zu„µé¤V§/m}b%0ŒD³ž7 â]eßqŠqÝ‹Lz CH/c(é #½ŠûIËYiƒxÛMYe£¦ß6Ñ]MI+ÐL5í…êó6¶»j­Ñ3ÜkðC#žÅ©~[ˆn43f3¤”Â4'×)væ;ËÝÎÇÎ×uÇùú4÷YŸ&Áú4}¬OÓ×ú4ÉêÓW3U5½ª™¦šéª9íö錬Üܯ§«’d¨$S%A·‘xéá›Ûö³§@{ +4µ§@3{ +„[«hl­"ÍI#ð˜bôùºx’ÔKHý©êÁ«ÒÔCºz˜¦2ÔC¦zh¡樇êa¡zXªlÆ-²kå×pËj¸åÊù"ç(r®" È*rAwa|jF¨f”j¶QÍhŒÃÑ&>Ç©¤‹J|ß+q² ’áöŒÞÕè4ú@>H£Óè›hôW5âkñuø»-Þ£#Ôb”Zl££ÕbœZì¢ËÕb…Z¼QaöŸ…ì?KÙV²›œc7¹ÄnRÁ~rß°–xj:e‡Î)!¼ÛX‹1¥UÔ¯ÖÊ¿ÖÊö¤Tø£û_$ßu+öÀv|ÝØ8Oôà 1ÃÙuGa Ʋ÷ŽÇÎ-SàE.òN-óÙ'³¯b7¶uáväu¬®ëYS6°¾>Ϫ²•½y«ÈNöæ—8Aìa~…SÄ>véW9K`Ÿ~—Ó„íÔ§X—>aýŠuú ëžý<«”ŸU…=µ¼®tr/òî÷Š{•ôš[!êØ\clþ¬øuÁH¥í¤!¬9ÂX1æpiK´¢N[´%m‡Ôaôä»kO¨5r0k‘C$†SN4HÇh]œ¬Õ«½0W«w‰ÖÎùà”mq!¿œù¢³†”ØP²ëÈ—¢Œül ¿›È%RâDº»)߃½¤û°Ÿ’xô0“Ã1ÒS¬Ñ NgÉÍz bs³ºÒUeÆi`ÄÔE¥ñ7cŒ¾5uL=b˜`ÓÐÔ÷ÑGípÓÚ43­LKÓÂÜkššHÓÎ471¦ƒik:šö>ÚÑÔîfz›®&Éô4=L/oMÓÝ 2)¦ŸhØ<¶wcoÆÞ‹½ÞF‘Œ!ŠaÄÕ7c¾7k­‚j­‚ù_Œ`Þp}4¼+—;rz¼•ÏvBî…¤š)¹úsRN©Îóšé£ñ€O¶?ˆ‰˜„‡4ë§ò¦³0ƒ7]ˆÙ(Æ#¼m›ûö•.óy¾Ù¿™³…ÍüœKmö¿ÌÙÔf¿Í|›õ9Ÿå}žà|j3ÿ3NOÿKÎwq/Ûþæ–³C:Œ=˜9`3ÄÀÎ uZlÄ>x;Ã;ê w‰H"%½t®Jââa' bB>Eg ›ÿ°5€ü(ÍüÑ:ãá|â3µ&ÿ³tbš¡SM¡N(³õ-,ÒÊûØü/%¿¾:ÿ7’'J¤Û°‹"DJŒH‰’fþ;ü–H‘ÕÌ'Zšÿ§)!b:×Yæ%vöpïz Ý&Ô46|d‘”u6±¦“,ˆ²¡fˆ¬ÓÃeÎÜa:«mnzžótåÁæUŸŒ;Ó ñx\fµëz\Ãߘs–Ìצ-þ(È/`?ˆ¬¼i¾øvžH­nV²8•ü*ú[²ê?¢êwf@ WäãÅ4 ŸB.ü¤Pæ9;«œ5ÎçEç#§Òä¾åpOÀ­n­1ø® –‡Le¦˜‡Í¿I/Ó¨(®,ßûúvµ + +¸ ¶Õ Õ‚¸ 8N4Œ[ÔIf2IL2™8NŒq¸DÜ5.A1DEeQpDÜqß—¨Ý6 ¸ Fmw±M­Ã9z’Ìy}^u½ZNWuî½ß£å´ŠÒh í¢+t[›¯= ½£}"¹H-¤ÖRwéSiŒ4N +‘&Ks¤R‚”.eI¹Ò é¢t]ªÔ‡ë+eWÙSÖËFÙ$Èrw9Hî!÷•çÊéò:9Ç 5¸šŒ“¡ƒásÃ`Ã2C¦‘%£«±±ÑÓèelmô3úß7~cáͼݼ +(LqQÜ¥™ÒRñQÚ)]” e¬ª„)J´§¤(9Êf¥@)T*Ç•ÓÊå¦)ÈÔËÔÇ4Ä4Ì4Ò4¦B[Ѩ½¢YÅ»vf¯kP™*«]Õ µ‡Ú[í«PªãÔÙj”ºL­æuyCÞ˜wæ}ùÇ| ʃù>…/áKùO<ƒgòlžÃóøE~™_« +¨êYQõÈÁÕÕÜùndHvOÆ\<‰/ñbAü²j‰‡ â1š4B‘OÐ`Š¥xZA©´‘vÒeªÐæiwiÏhí¯‰¤^ÒA|Âo·ëCõɲ‹ì.7•e'ñÎr·Zâi‚xöÄ?3 2ÄÖo$ˆ77ê_bî$.ÿñOj‰Ç*ÉJv-ñc‚øeA¼{-ñ¦à +t÷¬èlG;Ù]UÄÛªïâ½Ô÷Ôþêj°:STcTÎë8‰wâ=ùGüK>XÇ'ñ'ñ¤ZâGñ«‚x“xè+âÕå"âª=ãBMûj ;àp°T¸y0†ðd±]#G[‡ŸÃWì΄é¢Û †‘Âaƒø5nágøqnãçøéš+y"OÛ8ž">q|.ã?ðÑ<+å_”Y^ª-ܶ¬t-ÌVYši›fÛ!ŽÄŠi›]:¥$¸d†­ ÜßS’Yo·¦Z£¬5÷•4µ†X¿«k/k ÕÇÒßÒÏdéféj ´Xü,FK ‹‡Í÷ÍwÍæ沚»ÌÅæ=æ"³øó!óZs®¹Ÿ¹¹·ÙÇl4Ìz¯½^ÜKõzéUêVTsµ¶H—¡[¥KÒ­Ô­Ð%ŠdpT—¯Û KÑ­ûuþ:_]=É!=•îI·¥2É&Y¥bét@*”vIR¾´]Z-%I+¥¤ÚgÚÅZ ­É18ÞÂêóµ¯Èûÿ]'Á Qw:¿/ÿæÙb1/ÐФ„·ÏRô«ù{ƒ¦ÖLšþz5ùžã­;?¤Úç=Òÿººè¯Þ<üæSüCiá4 +âá&,€ˆ‚U颯c>ÄÂbX°,ðVC6<†GðR!Ž@1l€¡0 ba8ƒpŽÂ)8'à$ÜQpNÃØ£à>,… pÎ÷pîÂ"%£a Œƒ±0’á;Ue"L‚)"‚¦Â4¨±4fÀ÷0fÁH¹0BaÜ_ ãq92Ô ¡Tà˜€‰¸WB8PBÖjLÂU¸׈œ™‚u±ÖGLÅ4xÏ1×b®ÃLÌÂl\9¸7ŠÜš‡›p3np#1 +·â6ÜŽ;p'6À†˜èŠn؃ JÑ=p¢'6ÁhÜE¸÷â>ÜM±äB6G/<€±¶ÄV¨ÇCX •ðÊ [£Œ4âa<‚GñÇ"·ŸBoôAMxÏàY<‡çñ`ôE?l ×á^„KPWà*˜Á +?Ã5|€v|(jñ#|ŒOð>ÇX‰/ÑUäX…l'ê40dŒi 9˜ŽÕauY=lÏê3Ö€5d®Ì5b™;óÀÌ“5ÁŽÀš²f¬9ób-XKÖŠéYk&³hf`Fì„™72¦0kÃ|™kËüY[¤m¨ue4óDß.Œt‘è—hâDÇ‘(|+EV–f½0¬\a¡Û„]íÖìÓfu’Ù5g…U]NU*\ê¶pÏš‡Nkìôög¯Í½«d/™Ê¸¦ž¦¾ÆETB,U8F:­¥ ZG™”EÙ´žrhƒ¨‚¹”G›h³0­´¶ÓQó©@øH!í¦"ÚC{ií§tQ1¦#t”ŽÑq:A'é¦3t–ÎÑyº@éý,ªêºJf²Ð5²R Ù¨”ʨœ®Ó ºI·¨‚nÓºK¿Ð=ºOÈNé=Ær¼NOè)=£çô‚*alf‘ضÁv8€7` l…ƒ¢WÚ á)Þb{i6B"Üq¸~Äž°{‹:´Tø@Nƒ8 ïá}š@!Ji>Mù)Œ¦P8M9n!EÐ"‘é¢hšð°hZL1´DøÁ2J†°’’„™Å ?K Y´šÖP2¥0++a6VÊÊX9»În°›ì–¦•Fïì\j|P‚W’(2±aoeqRCZIW§n½ú. ºº5jìîáÙ¤i³æ^-Z¶Ò·– FoÅÔÆ×¯­»ö:têØåO]ÿüN·îïý¥GÏ^½û¼×·_ÿ¿¾ÿÁßþþá?>úø“Ÿ~öù?¿ø×—ÿ=è?_ þzÈ70tØð#G};:xÌØqã¿›2qÒä)S§MŸ1óûY³çÌ ÷Ãü°ð #EFE/ŽY»ôǸŸ–Å/OH\±2iÕê5É)©iék3Öefe¯×älؘ›·ió–­Û¶ïØ™_°«pwÑž½û~e¿úŸ¢º®ø¹÷¾]D×/ˆ€è[ŸeEÅpqYŠ%¤ ‹îR£ ++©Sk«¶‹MÕ¤ÖhÚdâÄ6Á&53Z3‰T¬!‚_¿¶Ú4©q’Æv:²ïöó¤Òú»ïÜ{î=÷ÜóåsÎþþDËÉ?œú¨õãÓmígΞ£ó.v\ê¼|åêµë7þø§›]ñ@W<ÐtÅ]ñ@W<ÐtÅ]ñÿwW¬Üí¤¼Ç‰ +6Ë›½ŸOŒ ào„¤ä—5ÞÞOÏŸÏÏÃß^VØó~t vk¼l&;rÑ0ÌwÀ©Ä|” 4zŽ.Q©ü³v`×=rÒlª– 2l=íCoα+(SIÛy¦p(]¨,É,U4²M”)^ ],…Äd‰ñ!Äs&vyé´Xᔩò+v\i•ôËäÊ;À²»l‚BÆeƒÜ+_¥¡ôµH Óe-v•Rˆµl:¶3?ÏâÊŸ@'t¨nf…” Xý#ÚMGéàâd1–LfÍü¶P¨Åh‘óe…|†<ôÑFp9¼L”!S.‡þbÜ’ã Û „ü>ñg@ÞFdÿUºŽÐä^^*~K ”EeÀå°Ù¯`ÉVºÉ"XË`.¶…àkjþ+ 懭¿ƒö¦o±Z€Øç!óKØT½¬”-fëÙfö"{˜y(Ùô¸‚¾óÈ’.£SFÊ=ò-œ›@cѧNgÒéIø³îà~É@ž¹ìPÁ ¸2Œ™ò²^ž”—I£Ç°6‹rqçBZ­×¢òCeiÇs•韰’v€-T ãVž £õ=â£á¿t¾’äÂ!Ú•EÊ;¡ÃFŒqи‡>®Qêò„l û÷qœã†žFYöØ{8ç$ÐôsäCÍ]óYî»òo²n„SßÀp)²ÄvѪÄ)»§ŒZc·qH¦ÉBÄ– ÅQž DS)ù!{¬¹•²yÜœþ‚î§²ùl!ó±«fÏàwT{Y»Õç0*H'»Î¾*[¹<Ëø&þ?Ì[x'ÿÈV"|¢N¼ü<,Ή¿*6ô©J¡PÖ*Ï[È"¬£#Úºc»kC¡=¡ÆT#×ø®Ñ`4Æ'2J~(?#+¥BG?ªñjÔÔúpÍ ññ6tü3êu|þl!P+ã¡ñø°ßÜлš/b~V…§ÝﳈÙFTÉ÷õ®uë*Ï=Ô–>ÏdA)¯ÂöðF®ó«xîó‰$á3ÄL‘-¸ÍVñcÜçâ†øLáJŒ2])Qê•SaYnÙeÙki±|d¹cµY¿Ý‹Þ~íKoV²ÅJôE\ˆ;üÏdëùökžÈšqZ¢(EÜÍç äC”×Ò¨A{ñ«ÇÎG‘mPÀ”Á_á)b‘’$† ç(¸ŒoáÚÏÞ§<‘¶Õèu¾TìUv*Ùì2ÕãLâÑì”C9,¾»HuðPŠxW9cJ´DˆnK-–[•Û..³³2àsªi3›Ã_$ c»‹÷|dàUDþQ¶ˆÒ•[bÿ&¿Ž¹•ôkÆÑJ~Œ½¿¤#¿ÇŠØ«b:m`u°ÆlZÁ_¦ |Ÿ€x.¥¿³M,™û¾™È«HÑ|up?¼~ŽàSÙÄi-5° 9ѧ6¾ƒg•âƒî¸Ðdκï²&‘OMìê^+W ©ÖLz¸!û€¥ÈL»HBÔ¤“…;ÿOŸ¤áü>[ÇWR Û->goòúUŠÕ<í2î+9b&,ö; ‰Û:;‚,™–D% ¿MÙˆÆïY«•›–M&-.Н¥_Ú¥–¡Æ t€Wá»ë¬¹”O×Ðe-aŊ䊔 ©‘¿«Ü±èêìt^"ÃŒ÷X&›(UV'£X1"|‰õ­Ð+¨{›Q ס6=jn¡´•ôzÝqÀŸÙÐßK‹=5¨©4ƒfávÙ4¨4¼"Z< %«Ð«Öy‰î· ªöX‚}UèfëUÏAúäÿVÚ ØEûé<›¿&ìè‡Nò5¼ýÚ5qJ¸ØBê@E®§šHÅl$N~^}ÛäEœ6…€þiÈRĽì’ò7¡³·ºï´Î£.«Û•ãuÍÍÎÊœ“1;ý‰Yi3gLO65ÅéHž2ù±¤Iµ vuü¸Ä± ñqcbGÇŒ9b¸mØÐè!Q‘ƒ#Y-ŠàŒœ-/ êI]IÒòóS̱VމòG&ºŠ©¼þkt5^¦ö_éÂʪÿZéêYéê[Élj&e¦8U¦êí¹šz„•û@ÿ4Wó«úÝ0]¦·‡éhÐv;6¨ž1Õ¹ªÎªGÏ[Sôr!®)*Ò­¹+#SœÔ2 +”«­jb±Ù,LðXOF§ˆh(¥Çk¹=NË55ÐÅ$Oùr½¨ØçÉM°Ûý)N¹—i:ióôaŽðr‡Ñ­n}PøµÆ¼ 5¨MÎãÁmGlTp Y®-/_ìÓE¹ßÍ®ÏMÐüå¹c›FQpÁÚCq.5®?'ÅÙdÞcئ¡Ãz‰!Ñ•}¼0^nR ú,ËL´ù]]¦BŸ†;¥›_•é\–Žeøó3ìÒ—Ã#5ú`w hË0çÍýºe’MSƒ÷ñ«* Ýý[ÿ™òÞë$Û}2I3NúB ü‡´îpèÉÉfˆ rçÐ1;<ž•â\s„×h«l*^0Á¶åþŒi0¿Ýn:¸áˆ‹*0Ð7ûzÆ*U$$×4‡_ç“sü!'¦Ôäl|ÈéÛÐɇÑ:ÅèI}ÿÃl£Gzª3t6ú°+{ø%ZAq™Oõ½¶-ðöõðÓûx½”>Òí ¼—â "ÌEP.î[lþÍxµÇ6uñsîþ×vìû²¯¯m;¾v IHBv‚C.¤‹h©yVƈB%V]ÙD÷ ©ƒf­Öµaô½`4«*%0ÂM(Ò:µÐ‡ú×:iÝ«²(L¸+m@Y‰í}ç:EÛ¤Ýøœóû}çû}»Å5ÎÄàg³@ý¸i畇ƅ«+ý #ù?™åÏÈ)k¸l^ÌñžÆ…óå æ ÄsÐ 0§ÖlÚ:2âX°6hdd Ù1ò˜Y>¼3¢#SPvÄGžúÊŽªEÍòôƒãÏ ‚_Ã=€V +­šˆâc& |lãÖ-SBác›¶œ…‚¦ǪÁ Ö¶L…2,.uKfa2Ck0 ý,Ô‹d)8e tØZe,†5ßebdñ¸*£]&Uá žf¨WH%]íh`Âf7±ë·ÀeBÐÈac˜¤i*ÀÛ o#[÷ãZa&)¦× +wÒ¡˜F}ébš´¶ÖˆcÐa(ûçÂôå9ƒEwQ˜¹L^u±|Q˜»È ßF‰úñ*cÍÛ¶Õã½\%…@Záë‘ú¨‹7ð‰Z¦.ú×(vÒõAû@£4^žì,¯L¶x“tÙ“ä]IhX–’6bÔ®°%V¤’ž&ÜT^‘\fR_\x€G-Î]¯úQ_îйB^ÈW$ŠÒ¤î–\A´z,Jj·ÚÝÖÚÿ´±©¹«éŽ ÔÓ•J`£¨UK8)ÜW+ P> +¨Þöå Ü„®¯meõ7C'Ú= \ã„Nf½ ¤bèPãüƒ«Ä‘#x͸oãšñ@ÓàW…zB¾;”^É—ó¨¯|0 +Дr>U}ÑþVlÑúxgGWû2Ÿ½#­·y_û².–­ð“]ÉYó*vý?öR×FŸØsüøž=ÇÓ6l8@~xîŽÛîí¬D;ÜœˆºÑ=OŒÂ¦ÑÞê&zvèĉ¡¡ÑÑ¡Ãá}Pd$—Ãa³Í%ahôÄ^²iÓá|sa*Wšƒ:öøŠ[o4,v-(VuËÉg³±‚ꓽ+d6ÃóòÏÝ:B|Ti¡«Ó˜E~¬=C—ËgÒBA€kÐÁº1éÚZqwHR²ª,åU$R‘€Ê q*NåÒ¿ip¹%ÍþäöíOÚ5É튽bàÏ` +?uúE‡ëjÉÕD¿Ç)Ó?Âuu@]éïƒ6Môø¸Áëj¤-ºqc‘&ը׷r^¨ÙXïÔÏô2QÖhÓ²uuqÊ!ËœáûŒž÷a§S¨›ÀòY~/ÿ-|–{–?ŽÊŸÆcü$šÄoá+üð5|ƒ¿ƒgyÕÉc§‰ß>O;W ,oâ³ T–»ÔBcúCÑÄ'^÷7Âý 3…þí¹¡òçFû²ebþ þP¬?õ d;ùAê'ÌKÇS§;š’§Õwäw”÷Ô?ÉVoÊ_ªå‘œ;¯ÔõÑ,ÿű˜ó8"Ý© ø !­6œˆ7i&Ξ ‡¥&?.ÞÛ±èùóR¯-ÚÛeâÃáí¥C¡n:ÐÓ2—Ô‘ N­»µÕܜƇ+WGŠ‚Î|~­p .(#"à²òðƒ)©!¤n±‘H ©Ô¡ŽN=&+ 눤0°Þ7Hñ`z“ª€ÆÆTn +¥öc_%ôÄï¥ÈÔñø| +W­äp»­jŠ£Ðòð·o›C×—zTAP^~íÅß?6™« hÚêý/üîæ›Ñ)ú7?}ògïî¤^í8¿óßt—{pÇÇwïd½‘îNç;½–î$ëN/ëe D]0˜ºæa .…\ Ll•¶IhR’áá·5m  ¡Pf -Ó89wàèhõ/}äGØÂÏn{¡ûõÚ¾Ñoc¿ss¶w×#náæŽâ“sÑ!lŸ¾©ú†ê Ü,>aa @/ ›¸f®ŸßÀ®ç6E‡Ù­Ü°õ ¯Ï:3ñn®;³š_ÞÌoLïrŠé“ ³×Ñ©5q|¶Íëw›g’1øÏHŒ5ŒªÜ‚”%U„¤3‰ÚÇ|¢hÏ9Ds“ˆ% + UÂÖ1ò_Eè™D虚ÂÇ_À'_;}Lu"DÚëP´¿b@\@\}8§?§YðGÔ®éÏrï´r34 KPªÀ7ψ/ˆ4¦Qã?´„‰¹ J¦Ó)íïâsä-4O4õÿ`ÿºþ¢øµ Rg¶œZB73œ´ìú¦Õk®ÝÓ¶ëîÈ •g6.ɇ»ÕÑ7o@òD¾Y^°êù׫ÿX[næh>¶¦äw,<õ‹•§ž†ä(:ÿUH{1¤½4dŠö²gH½]MÒ“Ä0.C‹Ó“öû]NR§ž˜¾ôšÙ]ÀÏ¢l¶ÔýáÒ±v^²X\öT(‘ÒiW4a*L„%QtE<pK1o' hðD{ˆ‚ƒ0h[D³ÞwN; çSXç –FM.Õ›xçzuqYyseT¥SH%§Q•DðIñéŸÛ-ÛØ=ÄOÉ1Ë^ö3N«# ¬¡™|8¢ù½æ.u‡½Ã©UÔ uŽ:Ǫڴ¢×ŸFvæµyœïY­.ÆÌ *¯‡`•ÎÊ»!ÅYtTá@i=d4¹µZ ~¡Á/žÕ@-xäü[¡JÈRò=(™˪/òˆ«ð]$†$òÿŒª…âu3Ç¢‘n2#33«5’@JÍt ›.©%FJ)\·«R,ƒuž$9XØ Yòôí£åó[ðÙžƒÝËeWWÏcB&ñ1ªæNÙÝZù˜QŽö“®®ûçK‰jêB° Aiá9tÊ2*"s‡:§ÍI¼I@T;s¨ ôñbÑ`jeL& DðÚB0Ô*‡B’ìô*åM’ÔhT¤Kog•5Ò Ï³H*7^·ø’.ŸÏírd »v‚`‘DAp‹1Al;ç`E‡p¢)BFƒ^µ.§"·*:‹BÚ,÷ÊeyH“oÊjÙ%H7ãÀŸ[˜²eÈ2fy`Q™-Ðb‹ä¾×p¹ +Ö U \¶p݈/ä'¼ÇÀv‡®(î(hKUA +% +D¢* ".-„ªâ „FÀùúÏÚ>àhjYóïü;³³ûÏ?ßÿ}W´*ãÕÿ kø#á±yÌV}lUad…Ih…±#÷? ?ÈüuÆs +“×tΨø¼€ >Z #T0—™/#ê×U ™×Ê;Ad]‡l´9ŒE8ig9Çb‡É!²«wµ(©P•Þ(7U4|ÍâðØ;ÆŒaãË̯Þ:LÖ¦ÿIX×}oЧKÓ߀q²vGWˆ4k®}§µöô•é»<°¹Øt‚,‰¥ú±¿¦ç&rËh¬¼pâ$ª+ÈÜ{­ŸÇNs6‹²ã#÷‘óßnï4^| .Š'§bG¡î†7¡ ú`ßg2Ïd(p„7}ИÎbš¦°l‹‰‹ gáp0 Ç~¹Í>à¨áU£m —¬.É >†\NÞŠ¸]ÂT‡:R‰!35üÊh{f¨ÿÌÍuãMQ +»×E°áƒ0„O/ó3sŸ}ËßÔG£k!’É5%™2 ™$~ÆÁÉO:yyT±%Ŧ^"Ä»•¥EÚ”ÎZAç@˜Ê˜/™©A’•G_ýàkïmÜøÞsç·ýÁ3Û¶Ÿ9³}ÛóåÛ_!{ðËcÇ6¼páÇð9’ wŽ Ÿ??üÆûïCl‡ ¶YÓ‘„Né_vøwTžšG=J­¢Þ¦Þæþ,žcωçÃ^Šßò»ÅH&¢Q³b Ÿ‹/?_~6þbø•ðŽÈŽØ~Úû¼ÿ`äˆé{S¿€½ÇÞÅŽ¥â_¶n=¯ïüS_Á+ú|L~)ß-õoþþ›{~„þ +•ì ÈL ÐSºk1=DÛµyæ°kĵ·ýí§Û›×î:Æ0²]ëB3ñÌeއܯ†u=„!s“m2J ¤Q„XIìê Zì6‡ ¹¨;J@È¥ÐI#5·é ƒÂ)Á,ˆÅçàwšzd¡!{™ËV@NôV&.,݇Ó4‰'Ó† 툣öp:ŽÈÍ›1‘~ŸÂG µð7åF" +ͱT\tb-iOì#í¾=?ܰ¥ y÷Ú3_Ý€¿gÈA÷ÄÃ-ô¤|Ü´æg~›Ÿe¦À³ó7p™ù;ˆ­Ÿö!Š MzFó¢.>*®׋ß­œ›YÆó²Ûâ²/£iÙåˆÛAŽ˜ŽR5ü“}‹Ûå@ø^ ó)<¦{ÌfZñ˜£lº‹­  P¹9> bïF +""(EnZT­¨P?þæ&¼€¼‰ ƒ >Ž…CqÚwölý‘;×ïùVE’5‡á˶BÖ©Ú”žüÃ(pºt ,ï2¬¾ˆuV¾Äý‚£Žh8ÃgR]éŒÖVœ¬¤æ¤+Ú~â|šÃ +Wâ¨v~Qúlê¬v%uE»º­ÙzR=Úšäšân~·bIQ6ŒN:k§i›]¦"2ô÷¢8ŽÇÉ¢ p‰Õ§·_®Äã²"GÔY06—ë×r¹‚&wjEŸÓx'ëðxœÙHŸóãA*ÜÁƒ/‡y®C%þ‡Óéå©tZMÉ©d*™”Š_,j +ϱœ„!qÅ$O+X.G"B9lQË…rggGå,³>d+cÊÁ×`÷ìk¬ü4•\R<ˆ‡Q +<îAmH£$-§}A3i5j§íæàü`É1h²SŒ]²çàbØþ–ÝbK‡ðëh¨Ö›ÈÒÛur9~xÕÀ8$! 5Hˆ~C fo1w58œ'Ö[á÷‰t7,p$®É‘ˆŽ„To¡Oy€PÑßb@/Ú¦Jĵ,Œ{»Ó•áÿ \èáVÓÛÛÒ$ÜäØh(©ñ5°^Ÿ/56–¼ÔãÊ÷V!ªoKœ¼Ž´É›nm#Ð #`Ôâæ¨OFS¢&·‰b%tlJ˜ÞÅž¦UÿQûíQr@Ö@q¯n7Ž‹›'ë5üÆ“†°½J¼åúkøëõ—ÉÁ1÷Eëî ˆ\×ÿU|Š€='J€uªX?•Ñ{½ÝÞYžÙÞo¯wŽW÷V½óí¬ê*¹ö†G:Ì3p SK"OYŸŠ¬·®Ð%k>2ß:?²ÄJçlÝsŒœ¿Ðƒ{úûzzæôÉÝ‚—¸b‹³§Ø1ö*kF,Ãꬉí÷°¬×# ©¸A<ÌȔܓåxLN•r g)P…þl¡ËÊ¥~8W_¨âj¥ZÕ+rgÖS»:Û¢ ¶fºõ2ê·d¦PÂn7Y»K¥TJp¸=RÀ¯Ç‹9ÿŸòÿ—ñjmòºÂçüŽíÄyø÷oÇÄNœÄqÞÎcI llg^`Àx hX¶.š"Êktš°©ê*$Ö*Ecbbah¢BRDU¨ÖuPP C0­*a•ª´cTH¼ïþ¿ÓîÕ¹÷þÿ}{ιç|÷~¡+;·¨P|vJ…÷ƒT™ +†Æ)x6x)¨ :f”þNópìU}ÜÝfo`¼‚ iV&.b…2…Æ0"š'5¯y¼7n‰áÙò},œL¦ZrÂâŒ["ÂOnqI†Ã”’ O.(I(Êa½ÁašÃÅúÒÎHqŠ€„ˆ$¼ˆJ[·Rs3Â~fÌzëLdŠ~N côöºA½ þkxza‚gÐpJ«''P«p³5]à‚ *º²§£.‹ +°Œ~úñ˜áÚö|]‹»vÝÔ¥“f̦»nMÅ3uÓÕæ¼ªò²iõ÷(´º–Åëê§O¯÷oÉhŸ0déõð¢úÖÑ+j»+Òà*Y®}<’ˆˆåc/%4ÀÊ $Êá*“yJhbù^,5§.çV©ÕЖºž7•®­H>gxÇtÝx=éFÑõªÛ†aS¢CW¦Ûdܮ۫;ª3سT_î¨t9Y®<»fçÉÊûu]^eÌž9µ¤ÒìOÏò#ø§Uº“M%n~-ÁH9þC¡ÛœÈ‰Îš2JËÍ6»´÷m‚ËQýƒ°œêpœžO;Ý‚‡Õlð`éÇ>~Å)ßêÞ¥òèݓޔÔ\îQUô¯Ç‹<µ±¤º³5ðWœ.´,p ·Xjþ;¼á‡ 5—Î>ºaóGëÆFÏÜÜ®=¬V?ð]º7®tïÜûú ®eïÒﯿ´¶o,úÖ˜A¨LKL}}V[š]ÉŠßט†T`YX¤¡ó'ÁPIúõ¡úÙ[VSšÕãsLÞ–׫ðkU¶Ó‘ó§ý¢Ôµ î^Üê´)zœ=c>U5Še‚ôv†ö*m…FžÓµPDÚÞ“cÉQ$¥ÖÒ`‘2‰eÊÉ{šW)«Ý«=OGÎñ9ùCåC÷Ï…êw}ïF̉”AÝy:ªf%bQ"9Ï#»}5ÕìöU{dEÎåjsµ/¢(J®Ûgs»}:f¿ì7YýŠßíÏõ;«üÕþ|¿Ç_úmÄ?ÑïóûÑH¨¶6äñUT…šô¾S\q27²/$ ”ɬOq»í))z²³Ýîâ}fýj½¤wÖW£¿×³¯HQǹ÷5™]•±k¨w9¾c29M¥¿áv?aS¸â-bõépËq7cÄ!£—Ó1çVTÙl™RéY„ZÑ{Ë9’!ß?ÅXí¤ yé±BÿJ .)Ñ3Šj›#3(ÛäôP5ž ½¨•X9=ß+ÛDì9NEÃ@á{¿‘bЋ«ía§Gœœçj]ãp+™Ôx‘ä­…63Õq;¶Ø®z²/²fk!oûm¾ýÃ9GÎrÎd×rñp½ùüÞØN£=5²¦ŒýA G©v#.ëwÕáã¾`‹¨3¬)öDÜ*¼Ün?³lbððÍ%&%’H‡ +üHÔ}<òïèà×zg¢ŸI/f€ GF÷â>^ŒF?J¸§þ}8é.Ò³¢ZLøŒM4@·@c|Sjær¢NöR?_¤Û4Œž:G¦ó¬Ðú;[ù"×R îün8Ëkd¡j§ÔHoâUІ=Ô$ÞTA+¨ÔH§i'-$Ñv>-£«Ò4ú°2ñÛÔIå˜ñf\£-´oÕ“xÕ ‡>O]èë@ï%ÚEKÉOµØuð)À»1Ƃ܎õÅN ±ÒƒÜƒyZîe±ZÎýìçAHï)ìy’¹J#R :J[±úìWí¥ñy1/‹i\èe Ö£ÛqNA/E‡¥óسS¥øÅî*u`å8U@n‚V@j˜'H¬³´R.TjÇ —@^}œIÝt™6E‡YA;$Þ'QÒÈj/uJ.ÕÐ]’K”ÅoA¯­¦'µŸœ¤gã dsŒŽAß…¤C–¸ŽNá”Î÷&›Áwž|ÿ”˜+h}¯ä•t ¶!d—\\Jš¤¶ŒSl·‚ó™G¨öÜ‹Þ5.ÏAž“©&ÏŸŽË2N°w¡Ókêþ +,n>½€[)þÇ ý°¯ýܧ`\2eJ‰°N¤pô>¬¬.ú•FéŽzS[±ãUõ–6A⎾Ý.‡Ýœ˰ƒ‹è]N-ÐÚ6 N éüm£^É K©£E4‹ëÁûà»:¬§ \ŒVhƒjÉíȧU;î!Îi¡T†5Â[Ì¢Æè=ZKÅÈ1"i\´ƒ‹2•&*¡d¡»X·üvBv›`WKPÛð5ùEª¡Ìï OrüoÄ9çÐtr#ÏÆê‡ég”O?Ǭ˜-üÉx„“ˆ^ŸCc/bFvîÆ ¯¢RÏâ™qNœ£ÿ$°©Ä[âè-ñ 輸(þ$²˜lWÄã"-v‰Ñ.6Ñ·¡ýNâ~ñ{qY¤Ä&±•ößùDKB$ZÄ÷Ä÷ÅÄœ˜‚섘¡÷>Ê*]ÔÆš=ˆCýžòjo©þVòõ&å»t ô.´Nb/à@$jNkù1ñ¤x‘ÿPœ‡þÔakýò·à‡ØOðŽh5vy'½ +„Ž¡óÏŠ3â=Ž“‡x“ŸxE|¥žk(3¹6\OŠÏ(b µilê×Å¿¤ÁÇ\Åí¨oìb‹î½À×ÓØïêyáë‹âE–¿®V÷—«ú!ÎåUù>=ú}—N`’€ëPmôY´ˆ\Do¤ÐωGIR+êpÇ›¨Æ“xª¼œ âŸâª¸Šý=+~"®ˆ·ÅÆD¨½€}3LÅ_!y[\¿„Ås@á$|ýß oÐëâó"@„¯ÓÄøIôò×Ñ+éºý ŽstóãkâQ¿ÀqF‰Ð®£ :Eá¼ûÄ>Ñeú³xõzƒˆßQ˜›ˆá;ص/‹WÅYÌÁß s_[±3ÖŠÏŠûZ¾H¯ðú§ÅÏÅįyoåc3ÿ­/ø}tì…6¨þþ¼QŠ¿;–¢¿c*©w†Êäfhñ›#NþîФbP>®±F ŠÕt„Yˆù¼sô(Ó,ެWt½³uo±½ˆ¹Ào2õ+_ŸÕˆZú@ j} +Ûc¿¡/ƒ^#j?ª©ã MCž’ÛˆRÏkZ1ÕH=?[H½ÏFt[ßµiíÚ×´nµ¡t#ÝþÑúKhÞû#º³OÓ]UM}‡#Ú¸VÓ¦SK“ÚMjR“šÔ¤&5©IMjR“šÔ¤&5©IMjR“HµnwÓ8yÔJ ê¡A:DÔòtç©÷Dc-“8·ú½ÏgÅ Z#z Ÿ nñá[èÖRü²˜N+­9÷ÑâK†o§gÅqÃwÐÆÄk†_Nwt\1|gâÎå¡.*v >I¹®pmªítâS†ï¦ÃIÎŒ'^PWòo†OP{ªÃð-ÔŸ¼høe1VJ¦V¾ºSë ßNÓ©-†ï U©_~9u÷\0|§XÑÚé¢{W^6|’îé צZI}ÁðÝ4Ð{‘ˆe +õdï7˜çŠôg¾å§˜ogùO™ï`þ·Ì/75Ò¼®‘æu4¯k¤ùe1]#Íëi^×HóºFš×5Ò¼®‘æu4¯k¤y]#Íë)¾3–oçrùdLÞÍü;Ì÷¨\zÿÅü*𽫖1¿:¦ÛÑüš˜|Z»j óëYGÛÜÓùHŒïcý>æ?Æüæû™ç\:bñwÄ|%còd˜Kšæ©L6åÈ¢ ®’ž¥©Àü¹TFKÒî<ðêlAî°†„¤ˆõàîc¹õZ¬G&iOŠT©ëøãªým§Ý8†¨ßp;Y:ŒE\§°&^5{>È£*ÎÙ†¨öpTª…®ÓÂ}¡ÐÑ^}¶“4ÇÜHÍ¥éÅïÅî"¿jogi½K-ž`^l‚m«k{±¾Õùˆ”ŠnŽí‡}å.°WãúÏr5ã³"gú"Òt¡«§H…Wö õ|t\ñîVóJuƒÆ_者é°K÷Ðõ2Šúcœso¬œBXÙ?¹Í¶Ãl2|Õ³­´¨Þ"¼#Ë*?—çyÖLÍ*ÏÀZlÜHõC{zOª½Z5ÕˆöXh¯±Ž-AÀ3 Xr‡³a»©h#”=daµË톈t>ªƒöÔ-Âü†´ŸÔóxKïÂ[Râ¼wýxî ‘ú†;DÍ!<ÝŽ'; ¿‹î©U÷ÒÇñU¤¬«jˆl¾—:ÇâŸáÉ÷iî_…©ŠóžÏ_/6¿§óõékÕ§Lh§Æ=˜ÙÍâõqÚ ÄÔ^]ü5Q3ÖÂÉ©&AÍà¨*4Ì2Ç`;^õäë¾âÔ—‘ÍqgÌÞÉpר±÷³d«aì×­È–:j2,s6î½l,ÿm¼sC ÃI®¿jÜ»zŸDoTŸ¿wfbQä(úš÷]Ù¼ûÔüõÌ"Õ{ú›)œK!î2*e>G˜xlÙåo=)Ž%ü‹æ[oÀØx„Èd¡•ÁªpD“pà&ûlõç`uç€'º²:Èß +Ÿ3ßSaw”8Ïúš[ë«Æ¢uí[â%|6¸h’Ôm§çËvÎÊØò9™.ØrÂ-¹DrÄõÊ®gŽ[’åbf@ÞgÖ( *crÚ-V”Ä—ã%¬Û¾{÷P?N;äp±(§œ|!ðå”íÛ^ÕΆ¦öŒ¸ϱ=9i×öTmÏW&w ì’›'œŒçún.Ø2eç+EË{0öØ,êƒÓiswJ¦=+kÏYÞ¬ts× YzvÞñÛ³³Ò)Ɍ햺º•RSþÀäôøØøÈpzüÀ¤<0&÷ŒNNÊá}S£££“éTgª3]p|„H*.Ëž[†¹yBÝ=róžU.ÌK«—€¢âÛrf^λµ2ãV9˜J) 4”7ç+#–,:»u+ïÙöœ] +äÃXV°ª¶tgTäX,FW³<[ÚŒy2ëxv&(ÎËœçÎEq¹ðåæmV©A3Z—<ž3S `aº%;žÐ&? +XÕ¡¨/oɪU¬X3E„íûv_= •жïsòœr2µ\,õËvÆÉ9™ÆÌ%P,N)Ïk­lÖQ%µŠÒãÛ¦Äc Á⠊Μ£‚Ö«¹Þ¬è®È º5´He¦èøå¶4ÜsÖ¼Dü(Uy^!´Ðã1ž‹’³JóòHÅöÙMÆ-¡ÛJ&ƒÿ1^ÐQ%K®ÿ¯àîƒ;I Aƒ»»O’ d’0™lqßÅYcqwww×Å]lw]àõ\`÷í“óÞ=gæœ{ouuÝ®¿«¾v}ŽÛ2Ž‹ˆ‰ +3ÒìéH°4ðïŸï±3™tDšMô)c»?¿Ñ„e&pÛCÝåØóaöÏQ‡ÿg·VȵGÛB_™yìî A‹fÁ¶’¶"~þEmþ¾%}ü||’%kQÏ<ôñõõó3ÿþeümþåÊ– L•<ÂíŽ òöNHH(åü’øÐgíi˜­žÃíŽr¸ª;â"»xäk÷HÆc“à2)rÙ,{B¯SµA Û—2‘`Ì<âtÙM’Œ,ƒÃ\‘&Úš.SzºxF}`kæˆ2rw™zãÙÏ6[°Ç{d¨‘JxdO3al¤;4ÂfÍ_ÂfE蹩 ON¬e±\„[e“»X³ûl-â>©Èá4•É#€¿‰wÇÆ»­H\Ss<¢tÛC<ÌÒ›å×툶‚ ‹ ÷¤Àa©ÿ²fÞng”·Ómw:¼qB?-G´#¡”çÍÿ9*Áež:þ÷Ï÷g‘XÖÒÐêÎN« G[œl˜©LGéjî·úÑ—÷ͬ¾ìéáÅéd]©[u»ùmÔMºäŸ|Ù­îôåþË·ãos9þæÍòç•ÛË׫žW-¯Šæ?ÐXÛ­fØçž˜©b‚½‡Ò>‘ź>ä7çVÈ¿\‰ +™‡„ŠŠ—$’Ä’D’ÞM.)$¥áØÔ’FÒJ:I/$£d’Ì’E²J6É.9$§ä’Ü’ÇðI^É'ù¥€”BRذtQ)&Å ï”4×Û¢äÒ†’ý —3œ`9HÊK©(•¤²T1W5\Z]j¾¬eX¸ŽÔ5 \ßðdCi$¥‰45+ÒܰYKi%­Í®­´“öÒA:Žèl1U¨Å‰áÿEšüt3ëè´V'Öœ¸\Öy+Þ¬Y‚aÌ^Ò[úH_ùJúI e –!2T†Ép!#e”|-ßÈh#ceœŒ— 2Q&É·ò¼äùQ&#‘L‘©2 ‰e†Ì”Y2[æÈ\™'óe,”E²X–Ê2Y.+d¥¬’Õ²FÖÊ:Y/d£l’ͲId›l—²SvÉnÙ#{eŸì—rPÉa9"G嘗rRNÉi9#g圜— rQ.Ée¹"Wåš\7úùUnÈM¹%·åŽüfTyWîÉ}y å‘<–'òTžÉsy!/啼–7òVÞÉò^>ÈG’"’#R"R# Ò"Ò#2"2# ²"²#r"r#lÈ‹|È(ˆB(Œ"(Šb(Ž(‰Rð†|Qeà‡²( A( +¨ˆJ¨Œ*FUTCuÔ@MÔBmÔA]ÔC}4@C4Bc4AS4Cs´@K´Bk´A[´C{t@GtBgØ‚P„ÁptA"ÑÝ'¢ƒXt‡ qp#=€žè…Þ胾ø +ýÐ0ƒ0C0Ã0#0£ð5¾ÁhŒÁXŒÃxLÀDL·øßãüˆÉø S0Ó030³0s0ó0 °‹°K°˰ÜìÕX…ÕXƒµX‡õØ€Ø„ÍØ‚­Ø†íØØ…ÝØƒ½Ø‡ý8€ƒ8„Ã8‚£8†ã8“ø§pgpçpp—pWp×p¿àWÜÀMÜÂmÜÁoøwq÷ñññOñ Ïñ/ñ +¯ñoñà=>à#… ©ôb"&f&e2&g +¦d*¦f¦e:¦gfd&™ÎÌÌÂ¬ÌÆìÌÁœÌÅÜÌCó2ó³€|Ï‚,ÄÂ,¢,Æâ,Á’,EoúЗ¥Y†~,ËrôgÄò¬ÀЬÄʬÂ`Ve5Vg Öd-ÖfÖe=Ög6d#6f6e36g ¶d+¶f¶e;¶gvd'v¦! e gF0’]ÙQt2š1ŒewºG7ãÙƒ ìÉ^ìÍ>ì˯Øý9€9ˆƒ9„C9ŒÃ9‚#9Š_óŽæŽå8Žçù‰9‰ßò;~Ïø#'ó'NáTNãtÎàLÎâlÎá\Îã|.àB.âb.áR.ãr®àJ®âj®áZ®ãznàFnâfnáVnãvîàNîânîá^îã~àAâaáQãqžàIþÌS<Í3<Ës<Ï ¼ÈK¼Ì+¼Êk¼Î_ø+oð&oñ6ïð7þλ¼Çû|À‡|ÄÇ|§|Æç|Á—|Å×|÷|Ç?øžøÑ”{(UÕKibM¢I5™&ךRSijM£i5¦× šQ3ifÍ¢Y5›fךSsinÍ£6Í«ù4¿ЂZH k-ªÅ´¸–Ð’ZJ½ÕG}µ´–Q?-«åÔ_4Pƒ´¼VЊZI+k ÖªZM«k ­©µ´¶ÖѺZOëkm¨´±6ѦÚL›k m©­´µ¶Ñ¶ÚNÛkí¨´³Ú5DC5L®]4B#µ«vÓ(uj´Æh¬vW—Æ©[ãµÇ?¸®îø6n+œè} E‘^‰³“¦{75É“HµýµUlÅ–ãX®-Õ±;$Džu¼£oH²³÷Þ»Ù{f·ÍÞ{ï½÷Þ w8@Lùǽ¸‡ï{â4N´ŠVÓ6´-mGÛÓ´#íD;Ó.´+íF»Ó´'íE{Ó>´/íGûÓt DÓ!t(F‡Ót$%*úÑt KÇÑñtH'ÑÉt +J§ÑétIgÑÙtKçÑùt¨þÒEt1]B—Òety| +¸‚®ç«Å©àº–®£ë麑n¢›éº•n£Û麓麗î£ûéz¢‡éz”£Çé z’ž¢§éz–ž£çéz‘^¢—éz•^£×é z“Þ¢·éz—Þ£÷éú>¢éú”>£Ïé ú’¾¢¯±ÖDC +it"ƒ.d‘ÃLÅ4LÇ ¬…µ1ë`]¬‡õ±6ÄFØ›ˆ“Ȧø.¾‡ïãø!~„ã'ø)~†Ÿãø%~…Íðķ•Š0ДPF/~ƒßâwâüò{üD6ÇlÌA?¶§šyÀ|q²Y€­°ƒX„?a1–`Ãø3–bk,ÃrüÅßðwüÿ„‰ +ª¨cu4`aFa¯qšpࢅ•ò„>„Ã8&° +«±MÜ¿-¶ÃöØ;Æ­°3vÁ®Ø »c쉽°7öÁ¾Øû㈃p0Á¡8 ‡ã‰£ð/cp,ŽÃñ8'â$œŒSp*NÃé8gâ,œsp.ÎÃù¸ÿÆ…¸ã\ŠËp9þƒÿâ +\‰«p5þ‡kp-®Ãõ¸7â&ÜŒ[p+nÃí¸wâ.Ü{p/îÃýxâ!<ŒGð(ÃãxOâ)Ãçø_â+|ÍÖ`k²F Œ±KëÓa'˰.–e96…MeÓØt6ƒ­ÅÖf3Ù:l]¶[ŸmÀ6d±Ù&ì;lS¶™ÚötÇuš¦7*n{BÏ¡f˜§–•§ÁFý¡ç¦kM³ê¹NÆãž_u=žjZµš¤ú*â"ÈSflÒ}n]ÜNFÓ¦´©9USŒJÕ¤™#î)~#ÝŸ8ñÄ©_¾åÒ,0«â®š²¥Y ;íØ`P„É.”¯iJ/'6™ÁZEŽÎ¸ +¥Kã%-éïI³Dvú±éªòšeÛfg€Ôt bÆ=1M,Œž™a­j¥åÒ¬Ž –G¯6×l6M6ÔàI‹3íVÃd5nfš·|ËÜâ’×4)0Cj5¬)¡SK&[gøDÕ6›rü°%îz®—jq_ÐeLÏsÇm>¤c¶ºbëE÷Cù²æŽ;UÜ ‘IÜjNN£ŠÏ»Ä-°}ÓÎYޏ$úâr*®{Y¾2´ÆL›‹k%k¸¡Ï§ˆm»õèf(.e]‘sÝ3í ¥a%è\²E~Vô‹@>³4(*PPÀP ¬@¯= +”èN€¡x +jx·’èVÌEÅSP=åSP<Ý*TC9U ”zAÅSÔ@½2”D^‹*æ‚ +ÕÐΊÙPñ:/Ål¨áÝ:AÍ÷¤ÃVÅv«£iñ #ËdË‘Ö ’và7Ìgñ3]mfD,p±ºÜ‰.‰<ñÅÓg™õ°%­—´kŽ´öHªjyU›g,g¬"6D(éó›–X‡f•‹4¦ä‡Nj„7ÅBô`~Kˆ£j‡ÖনYfÓujÙfè'‹ŠOmÃbÕw Ìï°Vd³åúç¶ÑäÄÿ[^C3æˆeõä FY¡rojžøâ¥bj^¾ÜmHÓM±Øå¶¸#ãO÷ÉÍ-mJ›e6Gl>‘­NbÌŽþÌUñH÷'#¸´©~¹ òØ ?òãâ‘ÛÆTocšyÔÅ£s®Únê ÈÎkÓh3¯bzhˆGj °ìOY±I$±XI,2KîÈÉfkI›ßƾbwn©âM@nTîØ¦S³ª Ôk[… +8  ~§NÜ©§“€Ü$ A›ÎÅjœ§^Ò’ß–ðP”p%<,eÂà ˜ðKþP&<œ$& /mcoÃËÚðªIÌÄ>\÷»ú¢ý=ÞÂÅ^ª`º¯_Z“Ç6;4‰ÝIœ1£EksËL-›¡ˆm\š¥²6ŒK¯¥5‹{Ü·ü̸B©eÒqUl¦¬ O”•ØŠkϬE>¯ðYå^#Ÿá~ ¾»ø‡dD²<Úð¹ !>œÄ~vÄS8ç &G½¨º¢™Õ*w‚éq¥ië`ë¸þUÜêê‹ +V sý²^ÅÎþ@öfÜå›Vôedc¸Í¹k°ÉëÒi†%Ü¿¥Àbl.J›×ÅDË£¢)tI°-ÍVËç„f¥fvlv, ;¶¶Ò‰fÇ"‹7\¶$.¥Cf˜NôivâE¾•hÓ–¼Tí.s2IÞž$WIZ*ə᷇ƨDÁ×£RÕQÐQ3ˆj>¢l4Ý–¡;aÇ„%þ%qÜä5ÜT\ÿóé„™ª"b™MZ®}¾¦ýŸxÎmŸñ°}Æ]=ãñ²•¦PT¨;¯QA£É·†FÝõhTÒ¨¬Q¯B=³4Ò=J#oh¾¼fÉk–¼f)h–‚f)èH :¾‚æ+èø +š¹ ™ 𹍙‹š¹¨™‹zŠZ£¨5ŠZ£¨5ŠZ£¨5 ­ah CkZÃГóbh CkZØœg=¢GèÑ#zôˆ=¢¤£*éXJ:–’Ž¥¤™K𹤙Kš¹¤™Ëš¹¬ó-k²Ö(k²Ö(k²Ö(k²ÖèÕ½Z£Wkôj^­Ñû ÛU·ÜÆm…i­(‰T%9ާÓôŠgÜ‹tìñ.°¿­‰µ$×éÜ6Jë›ÚKq%²–¸’HÊUnœ{·ãöZºð¤#{ÚÔ¹¨ß }ƒ>‚Á=À|€ 8ßç|ø°–È‘!Gfça£˜„ ¼»¾ +" (J#@Ë9²s«F¨ `>gd$èÛ­8Ê›t>åÛƒb§Ü­à>UÝY è f8¨w{‡½ƒúp@gC]w¬ë>S¦¹¤hê`Ô S|§të{}·×÷òƒ|{ò0ß.hÄ 8˜t{}õwk ÍÌ ¤lƒÑÁ$ÝBÛuõÞ^±[ïÐóp¢[xGùQý‹ü¸×÷èÌó†TŽËÎÌvþR<η=*uÊ]°k¯Øó¨TýQߣBÃöŠÇÝIdZ7ìûESÃá€NÀº®½ƒ’˜õIÅ‘þ35:娽K +MQ¡¼ì 4µ£ŽÉnƒ ]Ñǽ½¹~ñ„Ô<(véÈí7©?ÏtÎpÕZÏ›§J¹¦æ®å»la¥à4±SœgU ÖÔXÃ÷´K÷äÆËŽG;JT½PM…ª”Ú¹—ï÷$wÕ}V‹ÎXK_á™nQ͇›õb°wh:6H’ +a‚Ü4«çÇ^Z#F´@ú^µLÕïÓ0`V/¤åªPS­C+ÁÌ)Ïw-ë4ÍW½‰ÓÄIYú³«ŒD“»òEAÿ]{a·_öÿTöúÅá\üL}‡ÃòP}òìå‡4–Ê­žõÞŠÉ'M”„¼»J€2ƒøD'Ä7§BcùæT(Š92ye&€$PÅ@ ¦>˜úf Î|'Ç2ˆ-36 + ƒHbÌ%)·*d}¿8¬B&G5$ߪU˜±`ùè.2ñ0Z%Ð*ÁØÄj…ù&væOhñ™‹Œ} +±Î„ô‹À9J€l<ãËŒÎ%ƒÏG?d‹ÍŒ¢ØŽå ÉyŠ1ÖÆ³#" ô‹0–ãÅ$²¾Ì ­æ›™µL-gþâ!ßeäêfüÕ¢ZM¼TXdò¦>û6¥öÝÀ»–ÚV» +1ÆZdæ‘òmªØó^U(Š1sôKÑO _jfž!o†ùf¶ÕpÉ|»Â@(Š€b 9 /€âÂ0ÈB¼u °k]„È¡ÝàÚ½~ÐÔéMÝ~ˆ3Þ0³â(¡ùÞ%dF„æß!3"ôíŽÂ™¤Ø)æüæü‹EbOå €çôKìImÞXòáÌBø2 ÷G`ÞÎû< bøóH°÷ÃñbË/…϶Ú–X%˜ylÇâ^hMÀ%œ¬¡°>°O ÎØP@¿Ä2ÓºdK¡‹@<{3 Ì-µ\À ÅZ +äHm«gùAœÙIjÇZ~hÍ0£ ZÙ›DZ˜f˜nìPB¿ 20ÅÝJœu¾ÛÅÞâ'¡“зc¡‹´­¸™ì½…û#ÄaOo{¶§Îr`W¤‹5²_}'9ÀzØSolŠ÷> °!8ã Kñî¦ë“ 'µÀ=#Ì=£ú!‡@ŽÄÆÃzàÔK…ÕL¥ýþÃX»2XóÔ®ª] ~œ%XIä•È"­ÖÎîñ~—þ†³úJ»%f ›ÐÁÁ-ÞPlÚ“Àé›:8±8sãeŽ,lš¥AÈ(«ŒúîæQúkÏÁ±ƒ¥ƒ# d¤ïC'{ì`i™Ðû`Pâ(%¥¤£”4½#( G)é(%¥¤£”t”’ŽRÒQ +yèV0cá(%¥¤£”t”’ŽRÒQJ:JIG)é(& 4K¤£Tè(:Ja…ét7(u” +¥BG©ÐQ*t” +¥BG)äI±’)2¦©£Tè(:J…ŽR¡£Tè(:J…ŽR¡£˜Ð nPÆ(ð} HI (Š 9ä#@Ž9ä#@Ž9äC ‡@9ràL D<=ê÷Ö××ïÔ7ºåa¿^êzS×#UOnû~¬ªDUÙ•­r¯Ýë÷ú;ݲ|œ·Ë£‚ü¯*©ª@U[ªŠ®¢ï°·Û)ò­­¢?¤±5Ó)û;ƒÞN¦ìÃnï°Ó>)5¨4©ª¶U¡ªPUŠD Hª5ÈT•«ª­*ÍBŠŠP,„°vó#&`ùÖhhY÷ÐÒ)‡íb·|¢¢¨Y •M¨lBeŠˆT¥X ÅJ(V¢£*ÅE(.t×´L¨FnP³éš9àåÖVïpk´·½[üY»œ;œz>ní¸êô@à«ùN7–^7–v¼ïô0ÌßÏ¿ë›mµ ¥-1œÍ\ù5/ök¼PùÁd!?ÿÌã4§ñ|å7içós5 øškVgjM‡›ª¢^^¹w¬«^Œ«¾v‘êÅEª¯«^Œ«¾vêÅw}Í{vn=ÀÆ=¨ÐÚ*1zÃŽ.-»ñ©—ãŽq-Êq-6.Ò¢¼H‹q-Êq-6.Т¼@ }ri‚ÍÒBíÕ¤*¯†óÚ óå¹ÇjŒN^ÑpN{M¶¹Ò}jlÀgÓY¸i©,Ü´,G–åæy–£ó,7-Ë‘e¹yŽåèË@Ç`ùÀ<¶»ãAµ;޵QwƒÜYe»Æv½²«>Û€­`+Ù†l#¶1Û„mÊ6cÛbû3¶w´ 3ÁV²Ù&ls¶m¶[l;•Íy|Îãó‚íveÛ>Û€-÷osÿvÊ6cËùÚU¾ ­âˆˆÛ î_d¯kŸ½{ã½9Û”+_“ù‰6/çoˆ/•Óö¬!—[·½7µ}*_Qù–Êdí!ÕOÙãÕ©^¦¢¼Ïuû ï›Ú?¨¼¡ò_*Êóš<¯Éóš<¯É³ì}]»äýËûçÙEJýêå7ÄÛÖ½—µwT&¼¿{Ïj×)öÙ>dûœìÉþí_½gg?]\h5èùRí-Õï¨LÐÜNÏînˆk,ipb<'/ɳØúÀ;%V§Äê”X«·T_¢¨'ä?!ÿ ùO´ÿ¤vI‡ºþ‡bpz¶ð}öh5½Þç5A!þÀö÷Þçgbñ?­GÞ&…þJ×/¼Ï¨~®ë‡ºÞÐõSÝúTãRãRãe—«ú¶S/êzAÕÞo½ßÕ>"Ïo¼Oµ½ï­Õ~Dvƒž•ýµwOÛ_ywµý%ù@öÔï +ÙO½uý|žWÉþœž•½ë­Ÿ­.ú­}z~Hm”OùW‰Ã*qZ%‘”ç9•Tþ§=©~Jå[*žîyÉ[¥ßúµ¼X¡+Ô²Ró¼ú-Óïïjù˜ú~LõŠ·¤ç¸D½–(ÓiµD‘—hy–hy–jÓÞÕzQͧ²Bå>•GTêç&»I¼nR†›Þ­Ú Šu}â/µ«d?d»8ñ¬v쵉gg×WZ‰WµûTQÙ§òåÄ«³ú•…ÖUê§úÞþ?cUÓÆ…gf »6Šˆ{í&¶Y(‘”ÿ°’-•4ÐÆ[VÁ&²HO­²‡„¶ŠÔŠ8äÒJ=qªZ¬!ªì´ 9¶§Þ¸ôí¹·z¡ßÌš ª²o¿÷vÞûæÍì›ç50,÷€M` PHÂ$[Y‚%¤6#yÐݱK—F„½0êÚ7û\ÛÖ3Òžº-ÅP¦Ù$l9†-Ç𪇣ÀÐ:² ü¼xÁ#(Fňà#˜¬fÁû 8$4QùOršÄì0|, ÷Fá‰bÅœ(¸Qx_@S1ƒÇ¯Àn#ÍÍB®v; OíÐ)´ÍZÚk¨/}·=5†ºÏ²2ªYFÝʼCÿ#’h06€- IªCb$ + A4H‚”úqz ‡2äd§Ñµ¥ïêl!þIü^|#¾ߊïÆåYR`…¤—twB:;”ž”yˆETúСo úl²ÇRÿ°Ô_,õ[KýÚRó–úž¥^±ÔaK­ÑÅäY]ý]Wéꇺ:ª«q]½ «1]MuP“^'*y&tZè¡CB÷ÑëÛ*iù‰ÎMAÇÓÈí³ÀŸZÍC·_h5æsw4ïš îü!ð޶t=ç]ó–ö³Èô{"S=9(ÿ*/ÈIù¢ü¶<$G刖r—Ò©ø”3J›âU¥Yñ(L!JWí`?©œCW³›f×ñìc\CAFF²ÄyCʱÜlšæœç7In1èü=®Qïû9Má4u:s$7—ö;cz®&\sÆõœÓru>_¥ô¡‰‘þ¬Q2—¯ÑîºßëtNåë„ÒÁûåÞ†5M>'_õÐrÙ$ÝwþDç压WŒST¡¡õ£Ë¯`'}Î7¹Ù¼ó]ŸéŒð‡ƒ>3‡ÊÍ­|³ÑŒQgcܘùºwg®q¿wÍ0x$¿Q'7‚G‚œG‚/ñúÙçãÆåõ ^ÿ ^uRËUM;äL +ÎäIÎÒIÎ’à,58’ËÑŽqä}¢ Ž&ï¿Âé ιS9ǪYJëÿsÑ:ÉÒ½êÔj¦Î™PpÖïÜò;k‹Á`LÑ= +:ÒùÂâÍ[ÜK5º.ÎTØV³«¯ÆUΆ*YÍÌå««É’±Mf3á¢aîL*'–ûêp¹ê@ñ”dEžl€¯5]9%\áái¾V…¯UákM'§ÅZ¢ëÑ– +I›S–kwX« \èÕÌt·ïÓË¢›'4ÿÝÞ§B“VÝtÚÂiGxh(5”â!üÊxè Üíÿî„Öû”>n„|pw„ÓÄŸùØÀmۇ׼mÛ^¾aß°¹·½¼ðc"6±— Þ Õ&þßøóoó:ð@|£%Û6—‰8S{…ðlË\%ÿïi™©}¼ ˆýòÅ;C'.Î^¡`qâJ£mlŠ Ò¾I×÷¯õ¯ÿ/ +endstream endobj 118 0 obj<>stream +H‰t•XWÇÿçžy<DÅyæ) ˆ`ˆ… Ö˜b‹FcCADDì½#6”»¡Ø×(Ñ$ÖµD£±kv5ï ¨1!EÅÛ{áå¢.ߺ»Þï;3ó¿çÞ™ù~3ç@jb=º÷j¶.wù69c‘Ñ'.%6í–÷൅n7ãÆe¨mÎ[BÚð”ÞGR"¯¡ROž˜påbF6Ð Têö‰ñ±Ãú&•Œéò~‰rÂÅÕQ®7n•: 1%c‚K[‡–RŸjU$§ÆÅÂ=¸ÐüÔRb'¤9ä8:ÑEr½:*6%~{T£FR_Ï›–:&#$½è>ÓI¦sÒÒãÓfUÝoÚUÀa*ˆ3):ù.ktáð#ßçþ| ÂÝQ'œ!D ¡Nóñ£kê¨TT»Mw¹²/…ë£hw4èHé“i~õQEz›Tòª†€¢/“´ª„^&¦ÑtZJË)ŸŠÈBvÑOœ§Åu&f®Áþ<³xçs±â¢tW*ƒ•e¥²^)Tö(•kÊ/ºýºãº_uüæú=S]UOÕO5ª&5D UÃÕÖj¤¥vTSÕéêFu‹ºÃ 3Ô1Ô5 &Cˆ¡·!ư°Õ(ŒFW£»ÑÓèclh 4»cñþÂßÍß Aš‹æ¦yhÞZ}-@k¢µÐ"µdm†6GËÔi9Z¾¶CÛ­Ði'´³Úyíšö“)ÒmjobŠ3%˜F–ë*DEs«°ªÖk¤5ÊÚÎÚÑÚÝn³Û«¾ò^È£]ô=—NJWÕæHK¸P!¥–ÒS‰Q²•\eR ìTö)W•r]‘î î‚®Âo†_žê¢ÖQ½TU’ÂÔV¯$I…’Àö×ô2 0dW¨- Ô3ú½"0Ä8ìõ zTÈÖò´íÕÎHW%ÖÕâMIåTAŠ•$ kKI ÚÚÁÚ¹Š€ý íC=é¸ÝBC€JWÉÅgÉÇÁ–'õˆª¨2¸2¨2°²1`w³×²;ÙQi«,«¼d»n³Ø.ØÎÞÜ´¼ü;ËæÊXqc@Ùœ²g7¶–—j¯ YweYeSoŒ-M*XvàÆÑ²%¥[KsKrK +J%›«ö–z•Œ.,UhItIxI€¥³¥“%ÒÒÊa ·„Z-F‹¯ÅÃBæ»æßÌåæÛæ›U»Ì'ÍĠÍò)æơ̻ÌÌíÍíÌf£Ù`öó9êvXÖØaýfýzý:ýZýýjý*~Q¨ÄkCì|¯é}¢äßš›à ƒ}dœáb–¸äµÌ2n¾Œ7î>W\üJyóÊÿÙYÀ«¯óÞ¸*ëÿO£s0WØ‹Ÿ0K°ë± á†,‰g6rPûXŒ•ÈÄ×Òwïa¶ã!à +°ßâ$>ÃPÄ!Ãpñ8…Ó(ÆYœÃwø ¸ˆó¸€Ž»X†+¸„ËHÄ/ø „‰$còŠÑHC:Æ`,20ãQŽ ˜„‰˜Œ©˜‚½ÈÇtL“Ý`&~ÅïØO¹´’1)¤ƒ6ZE«i ­ÅŸ¨$Ò“#ì´ŽÖÓúTÖx>Õ 'r&* B<ÆÚH›h3m¡­´¶Óßi}F;¥Ñç´›öà)¾§,ZH_Зôí¥}T“jÑ~:@®äFµÉe¸AuȃÒ!ò¤º´ˆþA‡é¥cô5y‘7v¡ˆê‘§äKõ©ùÑ7tÏð7q‹’J2Ò)ú–NÓ:K礓?F&:Oè"]¢Ët¨5¦@ +¸MßãŸ(Å5ü3Jð/\§{²ÔïK/@é=¦'ô”žÑs +&+ÙèOª¤&Òç!HöŠÐ ¡޲Ç8QSá,\DMQK¸ +7Q[¸‹:ƒB„§¨KÍ(Tx oQOø_Q_4~¢¡PÅ"aFjNaŸÂE€Ð„I4E Á"S,༉[r+nÍm8’ßá(nËÑÜŽÛsîȸ3¿Ë]ø=~Ÿ?à¹+wãî܃{òGÜ‹{óÇ܇ûò'Üûóȃ8†óŽå¡ÇÃ8žx8'òN⑜Ì)<ŠS9Gs:á ËãxgòºE?Ên·Pºýbé÷Kñ9v‹,j/ñŽÓmìÁ8Y8†ùâwqGTˆ»âžx(‰?Äcq_<Àô³8Êî8„Õ¸#ke–S[,¥v4Ž–É“C㱦кË:v`OÖ‹'â©x&ž +{Ë~ãÌõ؉}¸&ûr}nÀ~ÜUváÆl`£ìF¬q‡p3忯ÁÜ„›rmçüGðÛ²·;àeÓ—ƒ„<ˆÿªx™dEç w¬áäìR³–«[m÷:žu½¼ëùøÖoà×P5ý4S£ÆAÁMš†4 mÞâ­ˆ·[¶jÝ&ò¨¶ÑíÚwèØ©ó»]Þ{ÿƒ»vëÞ£çG½zܧï'ýú8(fðX Ÿ0ÍË/(ܸió–­±_õÁMWüíÞž$Ë6–±ñ' 'I@(ŸÆ€@–Æ`ðØ`Ù!™/hm(&M ´=\ Ít¦M!I˜Rh8Ce¾S’†B¡ á#PÚ&¤¡¡„)Öõwgcp;Óéßk¥Óûؽ}ûö½ß¾ÝþËÒÎ_½±K5ínÞ³÷×ñ–}û<ûѹó.~|©»Êé®rº«œî*羸»Êé®rº«œÿ—*GÞG¹Ö¯‘òDå­ÿ„ßuó?1ϸaê ?r‰ötüÚ?è05`•h1r1l^4X‹ÿ…4äú‹¬™¹Øð:ígù"ªA&f#cÒ`&§€ße©d£ž@€Vz”^4Ö³ J¦\ +"«[¤cÒ‡Æ fO¡öʧšJ{¥t– >FΑŸ6ü$Sð¤•O†ÝéÔ‹FÐD*§°il}›Î³B9h\"7hf^ÄÚLÇÙz>‡‡o‘ŽÉÓ— Ì‚79pŠ…/‹`õ3ô2Öñ9²?yyUÊ7w 9ûÓPO!`Î +ìð äÓUúŠMgsÁUÒ"!‹:#Ëh†ÍÑš„6…¦Sxô<<¶‰b|³Ôx+qç +òÃêT„õ×ÀW­t8‘‹LîÏJÙ468ôOäÜ(¾’oá· …hÃ¥ÍÒé¢tIúB”Š¥âš-Ù(4ÊŒzc©ñªqØø>íC…4ïœAOR-Võ PpP9FÑ6Ñ«ˆ¸½§Ú„½DŸ£o­†°Ñ¬˜Íeß`Km{€b'Ùiþ¯å¯óVDU æÞ"H”ˆ +ñ´8 ÄÈDC"–xç|“ñŽñ©ÑoöÏ=ð¨Ÿ"Àø•ô}`ùO1ãßÐöƒ.Õ¿Æ&3}ý€T~`ÇpVú¢†Õ±Ål{­c€Ó²»aÍ! á9f)7á¸8”téË}ÜÏòr^ÇWó |'ßàâgøY~ž_EÖÝAôg¢õ• +€"“€ ­lNÚž. ýK…Â'¾'¶Š]â¤ø«¸#'Ëëä—äŸÈWå«6²¹lcl¶zÛmqÛGvÉ^iŸkÎþ¼ýû^9TÇNjBvİÒ>|N£÷Ù!ú˜5J™|«àÛpõrhô3öž\F?àÅ\gSx–ôw`Àê%mg_âÜÜ ä=˼b{ “ø¾T¤±ÇÄvÑÆ‹ÓBâW¨‘ß0ç±eŠm˜m êöo²± êp^¾Â3éß‚]øæ[߀}_O¼”†±‰æÞðÏq®£t`Ð|äIÛ,/æ?gË¥ë<…emü-/¦¹6­d»y¹t‚]Aæ@¼”±z>ŠÍÄ)z 'å5>¦ðU´YÔÉgØEœ%år=âÄeàö\œûÿ£®Ø´”û“¥c4ƒýÙßʽ4‘/¤MÒAögjfÏ +à6¬\Ê[…\ØI»¥R‘L¨Yj¦CìÒÌK»ÄRö{ɵ=A·lâ )&½ã‰ 8¹Oûø4Â8.MOÔ±"yù,²÷ÛðP2íÀø@ŒFr€ò ×!^{Û’åa ×dz’ÝDƬ‚—†³B*ç}ioWl™¸ õŒ¯ +Œ;¦xtѨ‘#† ýúGè÷y|­°§ŸÚ×­ôyø¡Þùy¹9ÙY½23z¦»Òz¤¦$;“v›Œ=dä ©á¨¢DuQ ––úM^­… öATW +wí£+Q«›Òµg=çþ[Ï@{Ï@gOæRŠ©ØïSBª¢·–¨JœÕTF@ÿ°D­VôÏ,zŠE‹‹Iãvc„Ê©/QtUBzxI½Š–à}±dgP Îqú}s&ƒL¥g«‹b,{,³ž*Šqr¤Â*=O- é¹j‰i‚.yBµ³õŠÊH¨$ßí®öûtœ¥ÎÔI §y­.´¦ÑmAÝnM£Ì3—Ck•˜ïˆÖwÑ̨7e¶:»vFD—j«Í9Ò½˜·DÏ^~%ç>‹—÷ FV?¨Í—´PÎ<Åd5mµ¢¿VyPë6ŸÕÕxÆrO8ª…1uƒéÅœA0Ä4ß\Jû¢æ¨!S¯èIêµ^›ņäi:M]ænÊË ´—)/¤hUÕ­ËW«kKzÇ2I›ºlwn@Éíªñûb®ôvoÆz¤u)©s:ueu7©²©îd¦EêD„®ÌR`IDÅBFš9#I›5Ýð©f¥ÏÆ6ÌÓ“‚QÍUdÊÍñºìÁMS»…:5ª~öiWIm‡ÄæqÝ"“4ƒ£3À ¿Gë^¯>`€ö 66޵øa~ß’8®.r)øƒû¨"‚aÕEƒàs·ÛÜÕµñÍ£¯¨Œ´ó +ÍÌo¢À oµÎ£¦æÈ=M¯é¦fÅ=Mçð¨Šðm¶®t½tGAç7Í••ª/ÒYÖQÏi×—MSË*k"JH‹vø¶¬ª ×®Ù©ë ôŒ`DÊçÏ—,-"qFgg“‰¤èƒ¯ÍŠäÙq»¡hI˜Ö]ÑÒögµÓíþÅ¿™£¬¿ûÃ:ÌÔ‹¼]ùÑ]ø.æ¥h ¼¬ªFÓœ]taàŽ¦…U%¬EµÚ¸±b¦ª¸T­…oå[µE¡è½ûÖæëá†j,¢ž!Z9Mˆ©lMe,ÀÖL«‰´¸ˆ”5U‘&\?‚Ñ Õ±~ÐEZ¢€%åR“SLŽÊ"½ 7S•ß Zai…%°øYqF–ÌqOÆhVœ·Ë\– ?.=Ø| '“&Å8îlQ­Úùˆ&’Eœ l–Èi7‰=Œr6ÙÔs’XpwÒã‡r¼®·—»¾,žÒVLã@»îâñÈ`wº;݃#AwéÈÝ€yUÄÖTc\ÃÅXT™ÃèÍ@åã~æqz’Õ¯ˆMb¶AŽQŽÇÜun1Ô7 Y *,H•ÒÈó°Zè•2RCò +½^Ÿ35ÓéLÍê×'›eOÍè“g/pé#%gGÒ²XVœýçÕåuÅÏýž».Â>`•7¬Èª(…­(k}LªQÇDÆWñA!¦Å¶FÅŒµk5âcŒÂˆÆVèÔmœ6M1Τmì_ŒZêd&¯¿ûÁ"ÁþÓüöÜï>νçÜß9çû<Ñ©±ŠÃMù愲!A‹öX¬mŽ^-F_6à…ÔßçlóŸsÖ_§¹–ÌêF‹r;ss;»}m5ÁcÁ[Ì ‹Õíæ`ø±XÃÝø?ŽùÈçKR”„xGf†Ë•åJÌrefŒt$Ä+êH—+=×@UTÂBÃ6EQƒ…°P{zšË%š O著ûÓ¥Ùüacs_[ûVÜùì]¸âÏœ0Â~>d¢#¯ôÐë?\¾´àè’7æÎ¥ +ÆŒ©<“4 +¡õáÆ?np:7š£\øœ9,µ ð ·S}m©m”ëä|1ó¿îœÜÎòù©£­nóUU6çä¨÷r9üœnKÈJÏš$À©ªî`5]M}͇£ÇD¤û‹§m[4)3+4âZÔµfñíûËK&GŠÈ,^»ý»Rî‘Ù`Ö¦Ç ¦”KFL£vã¤Ø¨ÝòD¢±wèÁ¸ƒñâzqcä>ÓÞ ÉlɈÅè9È8>k*?qÄtt¨4]|Í´Í$¦%ÆÅ'dI±A&1*Þ)±ðDû 6JdlÔ°›*ÇŒ2EÅzÌÌ\ÁF7 +»=F–KŒ» ó˜Çp?4ÄR’9IHzhoÔš<–ÄQd7Û…[ tóXo3gê_¹sV—¯»Í‡æÚÎ6sW¹NÖN«;µÍÜÝf C{ÉIå>ŸÓédú¯-+ÔΉÇÙ™8ÒÁéšžf‡'¹+AO;ÿ åTé˜ß0®Ú»aCbRÏ?“§Lý¨þ£O¤÷¥ªu…/‰Þòg—wiKMcu5[išýÊô%“SSR6EŽZó\eý…ýAKʼiiŽa®‚Œy¯Î©]¸p! ôk„Ýò{4Œ¶yRf„”†¬© © >`;f<3¢iÄ=ÛbL¤È²šF[‚”HÄqÈCK#ë9k®°^d=d†Ÿ Í75 +ÃÏ­0]†ÓÀ'™GgÑlÜiÂÎsóÏñ¤äsvµuÁü·ûI)×¢‹ó)IÕíÌÌÈ⤲e‰œJŠš¬=zòÄUžqêwFíÌúÓܳÑïo +OJÉÙó¶%3yZB¥°|;“·ôTnïn(³ÇÆëÕS¸³LñÖÅ-Éù·!Ò ¿ìÿzíï/sÙpõèþoÿÞ½ÌpLý™Ïˆù| Nê™MS Mi8†/IuàÇ‚xIÑ'B¹»~á3f’ü´X®FQ‹ì¥wY “„::%Ôi{Ä(êN‚Rn¾Åë·V‹ùoI~– +¹(|À›À ààðsÌ_Ç×rýð3ÉCkd¯öö[ ·ÐE`!Ú‹¤/ɧ¸qŽòòµÑTô/„®”:*@ Æ?@_>äoñ¼í]X§¡ý!Ú=êFÐ}í¯ÑŸ=CÓ8÷6±sýZ¥PÇR ³˜Š=ü«€˜ÇíÈäý¬…&²Í€ñéh»°ÿ}¾ŸJ £û >áëgs_â¹ +íÃ8ǯ$ÒºÑF­¢d|u­Ä—ä%á¤ö"ì?Òk7ÐB—¸Íý6áü}gz½g\1ØsË@<=Û3¨„‹b:³@¾x€IÂuZ-=ûû’fÈ·i‡XüT;¥Úl íÎyZ®Ç:<÷ÃO3¥ƒ$vQ6Æ6*ûèúI<¡cBíT’èð+ú'¡s½Î…zëÇêznÓ0´ßøÞŽ€Ÿ¸oGÔT ¿Çãëo7X 3„õUØ÷9¿wæí¾=s1g)‡þ5:üd‚¯.à^ß7¡k[=•´¨·ýàg@çYtß×Ñu  ¸ +|Ÿ½ <‡ö,à €9Ì€½#À#‡ÎWp~pèü78ÿù]éœíµ!_ç˜3LÆúp詎+'ip8Ž9÷x¼pÎòstó˜âœ Hß+©A¨lÜNΩ~Éc¨¬?Á­€äqǹϥà¡lH¯˜NnÎYη€ä~ÑÏxä1Ñ/ŸÚªá|KuÙJ«û¸^¥¡‡ÎÈٸ˕Z%·Mh§W MÄóä<$k9ÔV¶Bn¢º?[é—åR«/µ2Y>¡Ý—‰]•O•zû9¬©wŒKŽcÿkÿÿá†|‚JÑþJnÕ4س›Ç„ÚÎÆ±‰þ³@bp²ZÃJÖ¨Î'³BÔ¥ðXðÐdeá:W +C JBÿ|ù´NÜA¤vz‰U¡´2“†°"ù^ ÚÊÁõC– àÑ÷87˜Kàë`És~§tÙ{[þ‹tƒ“Œ×žŸõú€­Cç«öJ??¯Räüü>Oµ–üì€ÞˆÁ¼,õÚ‚üˆSûy~ä9ŽçHžç7KÌ,Ÿ®g鈓z¾N}±ý6°(Ƙç¼…øßÄsöú«2‡Š•+ô²8‚Š”ì×AK”t»ô×ÔB­£¯ž¦j)÷Æ;uTG=Ÿ}Lyz¾ù˜ÆèugãõSù u+v|¹õ®ýšÇ¡ƒå4×F©”öI»µû°ãØ£_Ê£×õ1¢ñ¡v]*Â;2j¢¸GÏA%Ò^­Ml÷øÚBmµü:¨L ’~}|$ïãçW~Gw%Ø(×kþ®@>æwo¨Ñ¾Rÿû›é¶ts¢è®|Ûdê6-Ð×Ö~Ìu©^í¼tŸŠå èô5›µö>xúBç0÷t*‹ôš}YþcÅô¹ê£<µû–Ó]5}|¯¸ÿ±Ú5½^W¡¾¡ñ1¸µJçâ +¹Z»"6RL ‹-ˆ»­ÚMy3ä2€Û®Ëÿ°_­±q]Exì}Äv'8Á6¤W"-ù'i›”´QˆjBúHœ”Váúî]ï%»{·÷Þµ³´T@TBTJ¤èÚ´ˆB*Ñ´ŠxT‚ªˆG +üˆT…„Z•¨IÍ7sæî^{Ý< 6ÖÜóíœ93sfæÌ9AßÇù‘÷j$û ÞgüžøîøUôxöIªe_¡ZúßTËœ€üu´9uç( ¼}ö¤öím©,øo¡ç¢¾Í[ƼgÝ2{<{DìmøÒ¡Ô?éÎö£´½äŽŽ§Q+÷È=ý(êﯠӆè%Ðf¥qCíݘ{5z¿¤–µÝüÍöuô›ö§Ó}à-å;7ýyé½´65Š>ò¼)^¥ï¶¥Ã©¥4›~™§Ÿ§?¶Å=¹œÞL=K»SÏÑ9á¿B>äÆÚK›ÒßBÿÞ„>L'ÓûèþÔéíÔï°‡õ9ð>‹ùçÁã/ñ{ã/ˆÎýÔcèü +Œ_}ôuÐv™ñí?foÇxxÐwî1¬y ¿×?: ::zkþ‚ùAÐü>*pm7½k®ø¸ð}v©#÷-öãœÃ“óï¤Kã|^dœwÅù¿Ø˜xƒÎMâ}$îÒ Þ™ñk’„Þ|3zÔ&îËܹK?ÒQÞ¦/žâ;ãCèƒop/æ~ˆ^üsôÃ0V1òôEÈLÇ~é|£%©íx3µŸº|JO¢">Ö¢µ¨E-jQ‹ZÔ¢µ¨E-ú?QQê|6ÓÝ”¡vZF#´ÿc[=D)ü&Ú—>ˆoŠøß;òeÜF]m7+n§îÌiÅ)*f~¦8MÙAÅÈœSœ¥«²cŠѱìgwе‹žUÜI_Yr\qWú%±Ìx1MöL*î¦|Ï1ÅK²Ï-Z¥¸‡îYºšw&ÿî_ú â6Ê,»Fq;e{)NÑõ½yÅiêîý¶â ð—g©§÷ûŠÑdïOwÐòåŸVÜIÛúÅ]íö²ŒâÅ4ÚwTq7­ë;©xIêîåŠ{h¸%ù⃧{©ˆnöȯB±Æ3,Ÿ“Ñø_k–XHzå‰þóeù=#º jÝUY_tÛ1¿(º#ˆƒ_&2óå"èt%*F£ÛQNU"͹jT‰/y $¢EYÏžru”tUlÁ‘õÓjÕÓòœ‰f# +yH²6ÃmÄÕÓèúºOä«ò«‘ÕP*¶(Þ-\ñÉ ë{á¹’èkè`g¿zkkü©iKë>ŽYNlO ׬ŸÁŒ§9d™"rojÄÇw +sÓm£¡q–mÉ•©Kbèèþ=ÉZQd*rÎL5–e¥ÙI²º½zeY˜? ™)‰7\›&o¡žäbÝ’üjTo4¯ß„óöç¨IÑP•HçæÔ¦K÷‚G–kÛ©ï0/µmI ؆Rw‘dcªžuöÝœw>KƒõÓj•5ú‘™-IFl:(ë׬בÙF¥ë9‰VENI­¾‹Ø6¯Ÿ‘y["¨ >C&Š‘¬=޵W¤†JÒCc߆›úês²ÆýnJêßÏÆeoE‰ö´W­Ç—;'wR‹> ½,Èé0§ê#s4'55øCsø;qs?³h¯(‰GûëuñßÞ&—SÚ=]í‰Þf´îÁbÑí²Þ¢kÅÞN|oƒí¼T{e®çP2TPmÃt+ä&°³í ­ØãÛÀåõÛñý¤ð·³_>7Gä·áo§p'h u MH¥‡ œ«Î7›lW´ç§9>æžôƒ@*ª Òñ~âÛ"®ÁI™­A¾Z·éÔû®‰]UÖ6ú¥«'Š»Z£Ç›Þâi?µßL‰·Þ¯9¶w©5î<ÓÚç'ë7¥±] 2qÎÔ;§«ÝÀ­Ÿ·@z[¤½&¯ge¡xÅ‚#æ&´4:L³½œÖ×ò¤tmãõ¤f¦¬šÊЇdWs#en‹æªh¶÷]î°¶¼‚lX-j´Cíoïf{Xj¿œ¸jM¹põ”<9æf±Å£ŠD–ï:OÎÛÅsni-–}7¶Ë§?'‘ö7\x¥ Ö¥ƒDÝ6ÞŽ{Wýq]ùsôÍHþ÷K6“Ý$îÝ I²¦ÏT%⬿Pßñ+YÝ%íö&þæTU´>·ÂܺЎõ1.{oÎ\ü.äûÐÕ×£Ùy‹:’Õò¼óâÝÐÌûóå¶Èi_–wÛ %_~Ï~¬ÏœIWß'soñX_sM´¯iGt6Ÿã8cö¼Xç/ËÛF”›-Ì}‹ÌõÈÕv„{4ÖÀ·Ìp‡ˆoÐ ´žnÀ­iá;Š_C¸Y׃ÖP'þöЕ\ƒÙQ̬W|­ñªëé:ÜÇL¬½ ï˜ +ìàoFþ†å=0÷Ä;ÒùÞíž`4&§s¦^æô´Û²O»¤C›;ôV}›ùúêçóinÒ@f<ÉÀn|÷WÿolÞ—ç÷ˆÈ—`kßH:çjDîž}R%æ=1\—¼²fä `dÝ+b%ž™WuÝµŠ›·×zÊš(¸ÖN¿ìG`Y[ý âväùe«Rt†­1;²/"4ÂʬÝ~±ÊœÐ/cÝèÆk†ðY;lm)­]ÞT! +­]nèÓnn«_ŽÜ+ jVhcø^Þʹ¡7U´¶ž]´HÙ&K~àZ…jÉ.{ad9;° ÂÈsB+*Øe s5ËÏ[¬T7ç:núAhÙåœeCÕ)XžªòÊVT-»ÖŒ°Ü×ÏñjÆE6°Þ†31/šqË‘çBÚ¨µaKBâO»íEkG%Lñ§Š-†l,ôópS\ÈW‹E@ñæK>Œxå\5Œd«aT+ºÉHprB¶â%¯,¿jmøïTaè?ŒWXTkžwÀÂîÖc%¢ &"** vv»G¶Ü`»»»»ûzË«·»»»»½þs΂—ûÿ?Ï{öûfæ›yç÷¸Ì̬ºjsûA».Ú5‡Gq+6½@3 Ì.«ŠCàPœš`çÒ-b®z<šÀè²hrHnÝKÑfI1NÍQ¨Hm>i²ÃˆáÔ&¼þbÞøŠÏ³ˆG®¦|š5„¦63`$°ø+yn)Y"JQ~¿î²¥{5é»ßi´É'™<’¯NÕ¦é. ­ù-‘!ÐÄݪû<µÐ8ÂðviAŸGõHjbb•ýºÏl˜{¼n§ÛŒ]ÂÕ¤Pic4[À¡z•4¿êÐ-IcÅÝ o\tïX¥sºnñºVu ‡ŒÌç¨Ðsz¶ùí„’íV8Uo¾Å› ©Ò&ôÔ„‰&ÛÄ4'K¥ú•ŽJvº’™—m¦¬9|ZÐ.fÑ™ÙiCÒR’³Ó23”Ì!ÊÈ´”ÔŒ¬T%yè˜ÔÔôÔŒìš5#²íÒ¤’ 3KÙ‚‡ßìOi>2“n›WõØ ÍsŒ±0Ì-T +ÝÃÓbpW² ¸¬&/…-B5“ñÂ]x.æªÍ«i¯£• âfW…Tî\c(ÅÓ_.À ANMh }ój¿°&Oºr#/ƒn›fš˜„)õ“FË,äüZÒtË|–)¨“¯$)‹R(J î*ª# æ +_UŸð­¬w´’ã2' °¤ +©©¸92,ªâóh=O·ü³rEPt™Ü5|U«U7z,4ñšWZ¤±ì5±5’rèNÝ(H1í‚no¾/Dy“Ýæ¢;(œ ä:tŸÝ8Gb…àv +í%i•§P B1Bå2ñHË»QœqÎ h>ó¹E-š×U\·8oÓØgwVáj®C—ß?Ê7줓šÜ'Öfi’–yM[ü7zl¦gWqX3åR‡â[¤8œ£ú“ ƒœ¬d%J霟ÐEIèž[­ZÎYŒíÞ=>^þ&ôHPzõìݳwÍ»ßïIЉ ƒÑÎ’Æ[Üβ3¡)ƒ½jÐÀBFP’’Hcܹ2¡r›¹åê4†Ô«[tUÉRÍÙðÉÿ²Ä¸‰c÷;1N¿Kuj1Nß4Õ¸'¢ÅÿÓ!¨9dUûß.Æ·˜bMk~%ÂD¡SfûLá«–ÛÉ7wŠèëÙ ù”]QfÝmÊç@Ùý°aWÂ΄] +»v±œ_š)U Áz=(»7£åÓSÎî2çT\&2±¢Ü +Mù~óéïËrÑ›…§„ OO « VÈ ¶´’ür£È Õ|IqÝ”±Ë|¹Ñé ó©ìNªÄ*2e½JLtýšüv¢mTÁOØU"0Â(ŒÂ©U¦*TU„{U§"ÈkQmªCu©Õ§ÔQcjBM©5§Ô’ZQk9¯ µ¥vÔž:PGê$/]¨+u %â/Æ”ûq"÷ãEä÷ÁŸ(’9‰úP_êGýi ”Ü þƒ%ï!4”† ®Ã©‘"ï3D¶¢Ñ"Õ³DÚçÐXGãået"M¢É4…¦Š”.UæJ¬fçB˜Ì":]æ+ÓL³§ +¤‡³¤“E4›æÐ\šGói-¤E´˜–ÐRZFËi­¤U´šÖÐZZGëim¤M´™¶ÐVÚ†pÚA;i*ÑÚKûP™ÐA:D‡é¥ctœNÐI:E§é,£ót.Ò-t‰n¥Ûèvºƒî¤Ët]¡«¨B÷нtÝOЃô=LУô=NOГô=MÏгô=O/ÒKô2½B¯Òkô:½AoÒ[ô6½CïÒ{¿èCúˆ>¦OèSúŒ>>|I_ þ¡oé;úž~ éýD?Ó/ô+ýF¿Óô'ýEÓuª¢"P5PµPuPõP ÐÐMÐÍÐ-ЭР+Ú -Ú¡=: #:¡3º +º!QˆF bÑqèxôD/$ ½‘„>è‹~èˆd B +#C0Æá‘HG21 +£1YÈFÆbÆc&b&c +¦b¦CE.,°BCl°CÇ äÃ'\pÙðÂ?(@³Pˆ"ÌÆÌÅ<ÌÇ,Ä",Æ,Å2,Ç +¬Ä*¬Æ¬Å:¬ÇlÄ&lÆlÅ6lÇìÄ.ìÆìÅ>ìÇÄ!ÆÅ1Ç œÄ)œÆœÅ9œÇ\Ä-¸„[qnǸ—q®à*îÆ=¸÷á~<€ñÆ#xáq<'ñžÆ3xÏáy¼€ñ^Æ+x¯áu¼7ñÞÆ;xïá}|€ñ>Æ'øŸás|/ñ¾Æ7øßá{ü€q ?ágü‚_ñ~Çøáo\gb0s‡s%®ÌU¸*Wã®Î5¸&×âÚ\‡ër=®Ï ¸!íçFܘ›pSnÆÍ¹·äVÜšnÃm¹·§íÜ;r'îÌ]¸+wãHŽâhŽáXîÎq܃ã¹'÷âNäÞœÄ}¸/÷ãþ<€r2âÌ©<„‡ò0Nãá<‚Gr:gp&âÑ<†³8›sx,ãñ<'ò$žÌSx*Oãé¬r.[ØÊç±í¬ó Îg;ÙÅnöðLö²ýàò,.ä"žÍsx.Ïãù¼€ò"^ÌKx)/ã异Wò*^Íkx-¯ãõ¼7ò&ÚÍ›y oåm¼wðNÞÅ»yïå}¼ŸðA>ćùåc|œOðI>ŧù Ÿås|ž/ü‡ëê€rÛ8¢É~<’w–”8½÷îˆíH¦Ÿ¥³t’¬S$]d)uI. è@€Gw’RœÞ{ïyéí¥Øq‹§÷Þ{ï½÷>ØÅéð=bþîÎΟÙfwÄEâbñq‰¸T\&.WˆwŠ+ŻĻÅUâ=â½â}âýââƒâCâÃâ#â£âcâãââ“âSâÓâ3â³âsâóâ â‹âKâËâ+â«âkâëââ›â[âÛâ;â»â{âûââ‡âGâÇâ'â§âgâçââ—âWâ×â7â·âwâ÷âââOâÏâ/â¯âoâïââŸâ_âßâ?â¿”î¯y« àÀEs(¡Œ +æ±€³° Û±×µõq6®ƒëâz¸>n€âF¸1n‚›âf¸9n[âV¸5nƒÛâv¸=î€;âN¸3î‚spWìD5ÔÑ@‹h¡ã¸'î…{ã>X¹؅ÝXÆy؃½XÁ>ìÇœƒXÅ!܇qG±†ûá.ÀqœÀýñ<ƒñHtÑC + áÁÇI¬#À!"Œ± b$H±‰-œÂiœÁCñ0<À…x$…Gã1x,‡Çã x"ž„'ã)x*ž†§ãx&ž…gã9x.ž‡çãx!^„ã%x)^†—ãt+y%^Å'é«ñ¼¯Ãëñ¼o›éÆò¼oÃÛq.¦ÛË%¸—ár\A÷˜+sÂ4¶‡Q˜wt=œ¨$„¥UŒý*V½Qa9DÅþHR±–²â)îEåŽü~?JÜ¥.Ý¢•+µ(.ECª_Ö‹ÒHwwOÒ,·oÄî˜.š^q9WR¹Ò²UF=ºè»Lg Eá1‚Œö 8h´B-J«ý®™]Š,r1É[FbÄÓk1w´§ú~ȹ$îQ£–há¬Mh™œ4{–Ö˜)e¦FœÑ¢p"óø =œ=r4’ÎQO%‡<ß‘ÁØ“N_‰,ªqìd;ö‡#‰D¦{þ‚¹…g‹MÆKêT/£ …qJu¯Mܱ¢zO–ädmj5JÇe-uÁcûTjÔ¯”«õÃyFÝX•£Iâe{"ƒy?+c*d©’ª¨Ô§SQ=åPå«Úì ú=Ðu½œ)Sµ$c†ÝdîÈyÕÙ/ÕìdP· fA¶ -hYÐÌAÃÚ©ÙéMKÑ´–ëÖNÍöÔ¬NÍÚiZWV¹nݨ1°ì5ëOjXŠ*“ZË5ëjƒ•­å†õ§ÁqYË ;½É²ÝSLÇÝ ê­i3é˜V00r’äí$öd_9úYì¯kYÐ NoWtªl¼I‘Ê@9LÇFNòv?42¸=Ò TÉ7»”æ=ŠËù e¤»l² Ò¢°œé)zTöÌXÎXÚ“i é1·Ç¦›a*{gæx3sövå¤àÑÃ]Iü ¯\_‹âJû²b|ñMF^É“­odeߌõ“S<·ßú±žƒùu: TȰï÷æØáÀ‚ƒ„9Àr8„ +‡ÅÕÜ¡(whÕ8i1wØÎ›Ø€Ì¸Ï|4 8É^3§&àµÜ~šÛ_3öSðZpš|lÆúÖ >>ƒOO±Cyx——²ü®S8åR ‹KËFJ¥eeUhGS\’ÙK(_ºÇ(’o[F3gÖÑ:Ö÷ÕDÅ~\Ú²È=nOk±°‘’,*JÅýÒDö³BÒoøÎv§Q-©8¡}§/¤DÁª,á{ó‰Ggp\ø›ÏÇd)´½ˆÎ#Ùë©0Ù®Oš™'‰Â(^°^éVy);°4œ_6ç•nÌ-'¦·´åh~uäg;ck3ÊåÕ‘¥>©_ÁÑ …séHsvës1ç)œÈMâ)dÎ~9Kº'Œº})ÎOÅÁT\àsNqÈÇa/rŽè£ô¨L‹9?vy>ÅþüÊ ï¶|жËr¤š RÙ }äÙéÕ§êÎB7s~˜õ…3™ÓY3ÉÎüB6ÑY×®Æõ0§|úJ´ß˜x‘«Ïÿj1·ŒyLЉ²E›Ÿ]¯mÿG>Í®x:»â¯¸~m褩Õ-jVÕMGŒšŒµµu,ZÜɈ9-GµÁöªl¥ÊVªl¥ÆVjl¥ÆžÖؿ۫±5¶\cË5¶\gËu¶\gËu^ƒ:sÔ™£Îuæ¨3G9ÌÑ`Žs4˜£ÁÓui0Gƒ9Ìј®3ÏXä‹íBµE«¹¡J¹a™ôóH¬¯z­Ï²-³reí»^¾íShV°HÞe>W2C¹±²ÆîÐ]Z3Ü>Ó£;JÙ¢ê*gÈPêΑû%Zn£^Ñ‹žc½ôÏyʀœëÍÈ{«X¢%1ˆÌUt|y/íQŽhƒ úãUÛÆq…g(Z»$M‘¢U[® U6hJê‡\Y”d»æ¸ÊÓж̂t8¤DÃj\m!“IÜv/FZiYÈ!—kuâ¬$@¥T ε×rêÁ‡œì9õ­úÞÛá.ÉðPRó¾7o¾7ïÛ7¤¸{Ô:&kâ—ç$e´”Ì„ã²Åêd“ý˜ì ÙÙYƒ,ñù_àýgx?ƒ÷Sþ4b“œ œäAÁÓ“<-ø>÷pßÎiñË÷¥çO‹éð’Ð`̆_“€Æ¢/Š)Ñœ˜ç°/ópSÙ‰Œ±Ð°šnñ÷ßwüÿyÇÏ<-žÚ‰¾"2~†¸±\Æ0Ü;ÑMñ d‡iÊXØõpGü{ªÅ¿³#þ%Z*ßÿ-OÿŸ‹¿‹ß‹¿Š—Å¢Å>°>Ø-Ñrë×Ñ–ëa: ~&.¸ÏÅÛâ†ØÓÒ €´O¬BÒ•èQ +·°Ê«aªò‚€mö„‹¹h‹ó=‘?³S”ªaêžHˆM1-¨Ü¤Uî›–¶çöÄ7 Ø×¨Š.Š~ß3ßü“Ò| 4ï+ÍÛJ3£4Ï*ͤҜSšq¥9£4cJó9¥9®Œ¨!5¨©GU¯ªªƒª[u©Li>IÇœÙÈ`aÐÖM~Ð… Xæâª‹½ÌÌcyW~%Ëóæ§«,_ ›[‰´¸÷âóH$ËÍPžå/gGÍ…X¾¥^2çcyS¹ðÝÒ6ç?/CÔtý¤ÅÙåR‹ŸÄÐÝ13´TÚ‡S=y÷Ý1Äûï–Ëìø›©ÑTèüðâr®y]Ú˜óu½òníÃ)—vñ-¦+0mâ´‰ÓÑqóýüJÉüíxÙÔÐ9/çÍ÷V¯•öù#þ¡žÛç!”Kû“ü‘~ 㓹r9GC<øØ?BÞ#੟±òXJýŒxnnñ"ăÅ;fâEއ»x§øGÈ‹"ïÄvŠx§N<éàmDôÜv$ÒÞë€8Ö^æ9¢” Aøª¢î"ʲC™’”i›2M•¸ÃÇnsüX)ö½jÙXL_ÇÏʅҶʲå¥×,<üÁy:wÿÉó¿;`xÆ|±²édM_$ËR©ÑXðŸ>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 121 0 obj<>stream +8;Z]";0%=4%#-d]qW&T6R9k[5uAU7I-'b66/9EbFo#Xd4be6c96jo5^a6/[0O4 +h<1'HmSm.1]a4_Amua/ZhA1HUETI>a:U>-)"n0?BCB<-O)d,uCTRcA9XZi!SmB7]* +8[ognoB5m3\2NJXP/E\!etT+$C:TH[7^M5+@&&fF'Jc>C$&/!ch^1?G"^6eCr581O +N(<)GAD<,oePV.DgG=iA==/t5EcIQ-?:BEcbltU^aDXF&KH_m4G;@!I.e'n8Gn53G1SUrG_aB6Np;L!m0Im-#B:NmtpBTK#gW +6hY_?C`h'LK:YVRVV"'<2hQJJbp.a(]/T,+;K&V\'iO*OXdl``-T0eYgPd_Um`BlG +!%]Y3A$OX/-0pF`9(C]3r:aK8WU*5Xc>f=*pT+MO`?sJ-lO>m.nTpZ +-+(o"5i))3,@Lgh]*OQ)B-1n56CnVXOC_~> +endstream endobj 122 0 obj<>stream + + + + + application/pdf + + + Adobe Illustrator CS2 + 2008-07-30T08:39:43-04:00 + 2008-08-19T10:59:21-04:00 + 2008-08-19T10:59:21-04:00 + + + + 256 + 136 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAiAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7fpn5ZjRNOey0y9nuHu7 L9HXt9dTstyIy0jGaKREY+t++oCdhxWg61KrND/KaHSvMVvrX6e1C7+rV9KwmaM26g8/hVAgIHKV m69aeAxtWRa15Zk1PSX05dWv7EyXIuTd2k7RThfV9UwrIN1jI+Cg/ZwKxqb8p7oaULKy81atBLBC sVhcSTNL6DJayWyuE5ICaS89uJ5KKEYqqWH5YX9nf2t//i7WLu4tJWnhjvJVuIA8lubZ6RsOnF2Z asaNvvvyVTTzL5Hl1rUFvYfMOr6S6rEvo2F0Y4T6cnqFjEwdKvQK23Qe7VVSmT8p5TaXEMPm3Xre W5ZZJbqO8b1eaLxqGYNtSgp0p70IVXXf5WXE7XRh82a3Z/Wakm3umVg3pwRBuTcixC2vVqn4m36U VVpvyvgl0K30k65qJNvfNqJvmkR7iR3jeMrIzIVZayc/s/aAxVdqH5ayXOg6TpFp5m1nTF0qKSM3 dnc+nNcGVQC07UIam5Sg+EnalMVUY/ysMcFxD/iTVpEnFSstwXUStMszS8PsEsVIoRShw2rJ/Lmi yaNpUdhJf3OpujOxu72QyzNzYtQs1TRa0HtgVM8VdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirEZfzY8iRvLGNRMssLSJJHHDM7AxJI7HZOnGByD3pt1GKsmsL+2vrf6xbkmMSSxHk pUh4JGikBBodnQjFURirsVcSACSaAbknFVsUsU0ayxOskTiqOhDKQe4I64quxV2KuxV2KtF0DhCw 5kEha7kClTT2qMVbxV2KuxV2KuxVas0TyPGrq0kdPUQEEryFRyHaoxVdirsVdirsVdiqyKaGUMYp FkCMUYqQ1GXYqadxiq/FVDUJp4LC5mt0WSeKJ3hjdgqs6qSoLGgAJ74qlEGs+YJbD6y2mxIXMZhA uUbmJJePEEfDXgQQeW5+7Cqc2b3D2kD3MYiuGjVpogahXKgstQT0OBVG91bTbGe1gu7hYZb2T0bV GrV38BTLceGcwTEWI7lozarHjlGMzRmaHmUtXzz5RdGddVgKovJtzUDkF6U8WGXns/OP4C4g7Y0p F+JHZpvPnk9SQdVgqOtCT1Fewwjs7P8AzCg9s6Qf5SK0+f8AyaIvVOqw8Pi/mr8JoaLSv9cP8m6i 64Cx/lvSVfiD8eX4tFaf5s8uajcpbWN/FcXDglY0JJoNyem2VZdHlxi5RIDfg7S0+WXDCYlJbeto MWr22nXMFv6+sRz0RogzTmBRyVjShAjkavLMZzk1gggt4hFBGsUS1KxooVRU1NANtya4qtnd0o3q xxp/liu4BJ35L2GAkDmruN3/AL8j/wCRbf8ANeFUnv8AQNKlvWuL94WmvHhCJLyAMsKuEMY9QHnx c9MTKlpMbKxks7WO2gdBFEKKGVmO5qSSXrucVVWNwpRWniVpDxQFCCxoWoPj3NATjSq4rQcjU9yN hX8cVUZHkWQL60acvsoykt4fziu+AyAVvjd/78j/AORbf814VQzon6QiLzwC+WKRYkKkP6Tspei+ puKou9MFjktInjd/78j/AORbf814VWhp/U9P14vUADFOB5cSaVpz6bYaVXwKocpvU9MTxc/5OBr9 3P3wcQulXcbv/fkf/Itv+a8KoWCIC+uniuY3uSI1uI6FigVSUHH1PgqGJ9+uNhaRXG7/AN+R/wDI tv8AmvFWomlZ2HrRv6Z4yKqmoNA1D8ZoaMDjSqxrQ8TQ9idxX8MVUFadiQs8TFftAITTcjf4/EHA CCq7jd/78j/5Ft/zXhVB6dBEi3DWVxDIJZ3edlBf99sHB/eGhFAKYAQVIpGcbv8A35H/AMi2/wCa 8Koa7Dz6bdCiX0bwyoII/g9Q0KlOfJgK/Z9sNKxOKx1OKPmPLJW5i9KaO4NyJHZ4mDqrDmpcqWbq 9D1xQn0mo+afqpdNKjWagYBplYg+vx4cF2P7n4uXOlcCVHzpoGq6zaW8Nhci39OSsysQFdGoGBqr /s1271odsz9BqYYpEyFup7W0OXUQEYS4d9/MfI9P1HZjbeVvzEks/QF+sIWP0VAuSpO5IkLxwq1R QfMbHuDnjWaUSvhvr9P2bydSezu0DDh462r6vtsRB/WOfUFM+XfP8FPW1KGMFAip9ZRBxCgEIDbU FMTrNJ/N+z/jyx7O7QH8Y5fzh/1TT9fLsLoofzDchmdZXRJYAOQpRQwQPx+EDr2zB/PC9oR7uv63 a/yXIjfLk53/AA/8TdfFXs/J1xbRIia5fAqpWqC3UDkQWoPSPfxrTGeuEj/dx+39a4uy5QAAy5P9 j/xK3WtYurfzdpdmtnBNA0TObt5FWaN5HEfCNCylua1rQbU3zAduidV8wapZvMF0mZbaO39X9Iu8 BhR6kcHjWX1TsK/CD9GQnKhaCWE6l521TUIIre8srSRGtfrMiBpRxu+MX+j1DqSv76Qep0+HpvlG bHDLGpbhjIA83XH5p+Z4oon+o2g5wq8tS59OVooGMZAf4uLyyJyG3wV/ay0z82Q3KXX35i6tfiOe WztJnsYTe2agyx87uNGdYG/e9C6qAx+GvWlN2QB59GyJIRrfmv5oDXIFjZH00YwNyejuFqqt8ZKh m+Gvbr0ycTZARTWufmTq6XLva29nqH1AfWNPeksPqTEzwMhDS/D+5owJqPjpsRl4iRezBEP+aOvi 5vo4re0uIreGWW1kQSKZWjlkVFKs/wAHNEQ792p2yrIOEKSoav561hrue6j061up9OcDT35yRiYN HK7mhf4eLxIvxjflUdMxZ44SkJHnHkxIBNq5/NHzKtq8sthawyBwsQJZlcEmhqr1XYV3FfbLePfm yjulWo/mLr/6TTUIdMs7m4tpEhgcySRgwvArNLxMlOSPK8fE9t8SBdtgJqkxtvzV8wuALi1s4GMk KggSSL6cno+pJUOPsGSTbqeH+UMuhGwWBQlx+Z2uxerqcVlZvfCQ2gQ+oOVqjRskv97x3Msnw/a+ H3yzhNV0Qr6B+bPmbUHjW8sbS2rLAkxXm4SORaySD4/i9M122JplOT010UlUj87aqdXhvvqdkzyR zrPdBpqxrG5WEenyoxlVAxp9nod8xvDhx8f8TGhdomX8zdbR4FNvaxh6+vzVyUHpSsKUko3xxou3 81e2Wie/NsAsJZN5/wBVsNRa/tbexnlv2kF/ODNSJYWaKGiF/iMiRoSF6V36boABvvZEmqRenfmt rVzJCJ47S2idHaaQxysY2EXNV4iX4qv8Boffpl0BYYHZDH8zNbs4rm6it7FpbgxzzKvrEtM0SoVo Xp8KxopINK/flhiT8EJla/mbrc1vBKLe2b1FcyEK6hWX0uC0MlTyMjivQcPfMeZo1yRaUW/5i67Y f6RFpNtHPfRC5u0DySUnMQlaIVkp/eyMgYfD3ynHjhAkx/i5oAA5JifzT136vcSC3tRJFbySwIVk AlmQoI4d5AV5hmPMigp75aJ31bANkng/MrWtIhKWenWtLmSS4lBMj/vCIxxqZfmPCi++CIEeTKRJ 5phP+bXmIW13Lb2lpPJDGzWyEPGJpAZBwq0nwbIh5H+b2zIENmBQ5/NDWdMeSztLS0NnE7ehJxlP MPIpLUMtV+27EHw2rUZKUSTZQyq089anNaW8xtYy0sSSEqHAq6hjQEnxysjdbVf8a6l/yyJ/w2Cl ti2taVZ3+v6hqxW6t7vUYVsr/wCr3EqJLbx7KnE8uHjyj4sDuCKmqqO0OWLRY7mOyguCt3L9Ym9a 7upT6hFCVLyEqD4DbFVpjs7e2jsLW0eG1tnkMa+rNKfjoD8Uxlb9nxwq1Asfrx/upPtL+0PH/VxV 6fkUsO8wSMnnnTOMMLGS19J52fjMqNcxuY4hzWvqNGpPwmnHqMKFHzDZ8b64u/0XfR8bHh+lGvOU CfvGPpyW3rtz/mrwb6Mry8viPvQWANHT6uvoxjhpIteCt8KUS0H1LtyQcKepT9j/ACsjxeaLSu9t 6W9ofqqJ6dpFFy58jFS2sk9FuvML6Xpl96+nX9rAZct2Ueakw9S1uxxWf1NKkt6V4GX9zIPqh3HH 7XFZexNajLL82deTUtvWTUP9EiPqwypX1Phl5R8fTcb8Q/2OVNuvzYmyOq1sjPNTfW7jVW5Jqf1i 2Ccx/o5uKXNy/pEVX0+Pqeorf5dKimZHD5MF9yPV1LWpKJc+vaXQ9eP92bjlcXDcSu3p8/U5g9jJ /k5XlFAdN/1oK/XLf1zrf+ipd/WJI2r6npC54W90nJenpenz4duQev7OUiXmtqCwelp06/Vfq3qS j4DJ6iS1LGvU8FPUig+WDi35pjzS/WLb13mP1KO95XkEvIy+lz42cUfrgV+Fkp6XHaoHLJX5s68k Zpi+gAOCWdbi0ein1EPD6oPV9vT9KhSnxCPp8eXY9werEhD6gnPSJ4/TWXlfyTehyoW5fVv9JDV2 5en/AHfbh0+LJ8Pkh3kiH0Zrf/RxaeldWcn2/UEXpoB6q/zelSnH9oDpvlWXaunP9CCnEcVb+xn9 GA+il9/pan44fVndvscfjaf7Z3+EfD7ZUZeaLalPCay39L0q/b+Joa29yuxr8ZPqcOv7df2cAlvz bI8kHrY9WbT5f9HuPQe8b6xGOBt/VnlPLjT9403Pkf5eR8N535pryXeX5vSubOT6x9W9KGVfXkX1 Gi5WoThSp58v7smp3+LLcYsd6JKN9vp7/wByf3ECUiFH2U/u60H2a0Zq7sSffLOHyYplYnnZ2Zq0 vCOZeVeITl9VHp0qOXP0+PKm3p9fizGmakd6YpPLa8LSxX6iYuFgsXpxy1KUtI09ANUVIp6aye1a jI8Xmm0dX/QdRStfVsLmH022E3NoT9WG68PV419Snw8eu+CMvNsA2SrUY/3cA9E/YkFEf/JiHE/F 9r4KcvBRvvk+LzWvJXvh6+naqvH6569u8fps3pC4q1yfS6j0x+85cqft0/ZzIAscrYnm1qxrql3L Xl6svL6wm3q/vIjz4V+H7NWHfj+1XHh8kM105a6dZnizVgi+LpX92PbIS5qiOH/Fb/5/RgVfOn7+ T92x+Jv1/LFVnD/it/8AP6MVVLhP38n7t/tN+v5Yq63T9/H+7f7S/r+WKvUMilhXmSJW8+aRIYYn KW9FnaUJKhe4X4I4/UQvzpueJ48e1cKFvmGwpf3F5+irxONjw/Sr3nKJKOzem1t6zc+vKvA5Xk5f EfegsAaOn1dfRjHDSRa8Fb4UoloPqXbkg4U9Sn7H+VkeLzW0svLelvaH6oienaRx8vU5GKltZJ6L deYX0vTL719Ov7WJly3THmpMPUtbscUn9TSpLenLgZf3Mg+qHccftcVl7E1qO8782deTpLasmof6 HCfVhlSpk+GXlHx9NxvxD/Y5U26/MxNkdVrZGeaW+t3GqtWPVPrFsE5g/VzcUubl/SIqvp8fU9RW /wAulRTL+HyYLrkerqWtScUufXtboevGfTNxyuLhuPHb0+fqcgexk/ycryigOm/60Fdrlv651v8A 0RLv6xJG1fU9IXPC3uk5KNvS9Pnw7cg9f2cpEvNbUVt/S024X6oLb1JR8Bl9RJasxr1+BT1IoPlg 4t+aYoDV7X13mb6jFe8ryCXm03pc+NnDH64FfhZKelx2qByyd+bOvJGaWvoKB6cdpW4s3oreoh4/ VB6vXb0/SoVp8Qj6fHluPcHqxKH1FOekTx+kkvK/km9DnQty+rf6SGrty9P+7/yOnxZPh8kNeSIf Rmt/9HW09K6s5Pt+oIvTQD1V3+L0qU4/tAdN8qy7V05/oQU4jirf2M/oW59FL7/S1Pxw+rO7fYp8 bT/bO/wj4fbKjLzW2pfglsukfpV+2eTQ1t7ldt/jJ9Th1/br+zgEt+bOPJCa2PVm0+Wltceg943r x/Abf1Z5Ty40/eNNz5H+XkfDed+aa8m/L83pXNnL64tvThlX13HqPFytQnDjU8+X92TU7/FluMWO 9jJRvt9PfaA/uIEpFs+yn93Xb7NaM1d2JPvk+HyQmViednZneXhHMvKvEJy+qj06chy5+nx5U29O tfizHmalzpik0trwtLFfqJi4WCxenHNUpSzjT0A1RUinprJ7VqMHF5ptMK/6BqCbfvbC5h9NjT1u bwn6t1HD1eNfUp8PHrvgifNmBslOox/u4P3H7Egokn+TEOJ+L7XwU5eCjffJX5rXkiL5fX07VV4C 89e3eP02f0hcVa4Ppfa/dj95y5U/bp+zmQBY5IPNbqxrql3Ls3qycvrCGnq/vYjz4V+H7NWHfj+1 XHh8kM401K6bZn0+VbeL4uVK/ux2yEuaoj0/+Kf+GwKvnj/fyfua/E2/L3xVZ6f/ABT/AMNiq+eP 9/J+5r8R/a98VdBH+/j/AHNPiH7Xvir03IpYL5lQn8xtFf6rE4W0ZfrZm4TJzuYz6ccXqJz9ThUn iePHt1BVU8waeRfXF9+irpOFl6f6WkvOaJR2Pptbes/OleXLieuV5OXxH3sS8/aOn1dfRjHDSRa8 Fb4UoloPqXbkg4U9Sn7H+VkeLzW0svLelvaH6oienaRx8vU5GKltZJ6LdeYX0vTL719Ov7WJly3T HmpMPUtbscUn9TSpLenLgZf3Mg+qHccftcVl7E1qO8782deTpLasmof6HCfVhlSpk+GXlHx9Nxvx D/Y5U26/MxNkdVrZGeaW+t3GqtWPVPrFsE5g/VzcUubl/SIqvp8fU9RW/wAulRTL+HyYLrkerqWt ScUufXtboevGfTNxyuLhuPHb0+fqcgexk/ycryigOm/60Fdrlv651v8A0RLv6xJG1fU9IXPC3uk5 KNvS9Pnw7cg9f2cpEvNbUVt/S024X6oLb1JR8Bl9RJasxr1+BT1IoPlg4t+aYoDV7X13mb6jFe8r yCXm03pc+NnDH64FfhZKelx2qByyd+bOvJGaWvoKB6cdpW4s3oreoh4/VB6vXb0/SoVp8Qj6fHlu PcHqxKH1FOekTx+kkvK/km9DnQty+rf6SGrty9P+7/yOnxZPh8kNeSIfRmt/9HW09K6s5Pt+oIvT QD1V3+L0qU4/tAdN8qy7V05/oQU4jirf2M/oW59FL7/S1Pxw+rO7fYp8bT/bO/wj4fbKjLzW2pfg lsukfpV+2eTQ1t7ldt/jJ9Th1/br+zgEt+bOPJCa2PVm0+Wltceg943rx/Abf1Z5Ty40/eNNz5H+ XkfDed+aa8m/L83pXNnL64tvThlX13HqPFytQnDjU8+X92TU7/FluMWO9jJRvt9PfaA/uIEpFs+y n93Xb7NaM1d2JPvk+HyQmViednZneXhHMvKvEJy+qj06chy5+nx5U29OtfizHmalzpik0trwtLFf qJi4WCxenHNUpSzjT0A1RUinprJ7VqMHF5ptMK/6BqCbfvbC5h9NjT1ubwn6t1HD1eNfUp8PHrvg ifNmBslOox/u4P3H7Egokn+TEOJ+L7XwU5eCjffJX5rXkiL5fX07VV4C89e3eP02f0hcVa4Ppfa/ dj95y5U/bp+zmQBY5IPNbqxrql3Ls3qycvrCGnq/vYjz4V+H7NWHfj+1XHh8kM401K6bZn0+VbeL 4uVK/ux2yEuaoj0/+Kf+GwKvnj/fyfua/E2/L3xVZ6f/ABT/AMNiq+eP9/J+5r8R/a98VdBH+/j/ AHNPiH7Xvir03IpYP5ku/T/MHSYfQt2WS04tcyTKlxHyuoyscMZkQt6pT7QU04+5wqv1/Tm+vz3g 0i4XjZcBq0t4XCHmx9P6t6r8qV5Vp39srycviPvQWAtayUtgLUgJpIteK14p8FoPqX2RyX90R6lP 2K98d+/7EJdc6bcNDacNPYGOzjjrUs0XG2sk9FqL8fH0TGW3r6df2sBv8BI5qUlhdtbXatazTGTS pLfjxKGWsMi/VPs/CTy4rJ25V2ybJp9LuGfUCNNdhLBKtSTxlDRhfTYcPh5/Y5UNN2xHMJRnmm1u Ly41VvRl1T6xbKnMIbc3FLm5f0iOK+mV9T1Fb/LptTLvh9rBddWdxJqGtS/V5LgT2tyv1hVMRuC9 xcMF48F4GT1edexkP8tchk5fH9aC3rljLOdapYtefWJImBDGMXPG3uk5J8P7r0/UCduXOvbKt+/7 FUo9PmTTrlBp8sHOUco1YyLLUsajZuCnqRx+jBvf7ExQGsaXcTvMf0XJe8ryCUsWMXPjZxR+uo4/ CU4+kV7gcskyRml2NzAn+8ktoPrNo54qZFJT6p+9+xsI/R3Wm4i/y97YcigqF/p91JpU8QsppWa/ km+rkEcuX1b/AEkNx2Den/d124f5WS+H2od5N026tJLYy2Elisd3ZyAmr+l6SAGVaj4hD04/tAe+ V5Olbc/PuQU1SzmGoWMzWiViW9pdAEPCZpnb7HD4zPXmd/hG3tle/efkrpLeb1LFlilRYy1CVLtD /o9ynWjc6+pw+T1/ZwC7/YzjyQms2VzNPpzi3+stA94wnSMobf1ZpW5cfTHqNOH5H+Xkfpmq/Qbe 7gubKVxPacIZVWdomkaLla8ODLRufL+7Jr/le+ThyQVC8sbo2LKLdmYwQoFjjIf4UP7uvpr9mtC3 LdjXfrlnw+1CY2lvOLWzEkUzMkUwqQU4Bvqw4cTSpf0uPKm3p1/azHnzQkz6ZcC0skXS5Y/TsFiM UbljHS0jj+rhvhqw4+mr+ArXHfv+xUwa1uRZahG0M3KbT7iERhSFmEjRH6v0+Ay8K+p+zx98EbZj klV/p10yQhbC4YhHBC1oAVhAU7D4zwpy8F675JURqFhdS2GqxtaT3bXFuyekQYhcAtcERdP3dfU5 cv8ALp+zlw5ILWqWV2+qXcqW9xIJJA31hEYer+8iPPjxHH7FXHfj3rjt3fahmNioWwtVeP41giDc m4moQVqD0yJ5qr/u/wDfY/4MYFXz+n68nwA/E37Y8cVWfu/99j/gxiq+f0/Xk+Afab9seOKug9P1 4/gH2l/bHjir0/IpeeebtHsrn8yNEv5HVbm3ihjiFWD8XuSzcaOo34Dqp9qYUMk1jyzpr+vqccEk uqC3NvHIZZnPp1J48C5Xqx7YpYr+h9W/5YJf+AfChtNH1UH/AHglGx/YfwxVr9D6t/ywS/8AAPiq +PSNVCSVsZRVQB8D7/EMVWfofVv+WCX/AIB8VXx6RqoWStjKKrQfA+/xDFVn6H1b/lgl/wCAfFV4 0jVfRYfUZallNOD9g2KrP0Pq3/LBL/wD4qvGkar6Lj6jLUsppwfwbFVn6H1b/lgl/wCAfFWzo+q8 APqEvU7cH9sVa/Q+rf8ALBL/AMA+Krjo+q8APqEtanbg/tiq39D6t/ywS/8AAPiq9tI1X00H1GWo rUcH23xVZ+h9W/5YJf8AgHxVPtJ8q291YpJfJLBOCy+mDx2rUbMCe+C1Rn+CtI/nm/4Jf+acbWm2 8maS1KvNsKD4l/5pxtaa/wAFaR/PN/wS/wDNONrTGpYbaOSSObTZvVR1RBHe2hDoQfjHqGM7U6EZ sBo4kWJ7f1Zfot1B7SnEkSx730nDcd+5HyUJJbGNY2k0m6USkiOt3Z/F8VNqMdtmqT0pkx2eDymP 9LL9TXLteUavEd/6UP8Aivf8l3OyZo/9xN3R1Qk/WrQUDngtKsAQx48T3qMH5Afzx8pfqSO15bfu jvX8UOu387rtXfa547dX4/om5Yl2RVF5Z8vhAPQsP5vHANFH+f8A7GX6mR7Tnf8AdHn/AD4frWtN ZOjytpdwJCwIT67Zbq6liwPLp0+dcP5AX9f+xl+pj/K0qvw/9nD/AIpdcxWkfqLDp8lxKkrKsaXk IrCrMplZynpqdlohau/+ScENFE1cqFfzTz7u/v3/AFpydqTF8OPiPF/PH0gkXfIdPTd7+RbYQCNZ rvTJIZZORdBf2hVZKSNw5niK8UB+nH8lEmhO/wDNl5frX+VJiIM8dH+vDnuaux0F/FpAhmtxbaNc zSuPU9MXlpUUJNAATy2WuP5KAsmdV/Rkv8qZCQI4iSf6cP1vRwagEihPY9vuzWu6Y5rdrCdct7xr e9nkt0iK/VljMRo0jjnyHLYrvxPcbYVRUfmJnsjcmylBW3eYxqGY+ou/pD4a1YbiowKraroek65D bteI7rH+8gZHkhYcxQ/YKNuPHL8Gpnivh6+V/e4mq0WLPXGPp5bkfcgl8i+X1njnVbj1IiPTJurh qBSDx+Jz8NVG2XntDKRW2/8ARH6nGHY+ASEvVY/py/XyWxeQfLkSRxxpOkUP92iTypQ1rXkjKx3N dz8tsJ7SykkmrPkGMexdPEAASAHKpSH3H72h+X/lsXUdyqTpLEiRIUuJloiRmNQCGBHwnscf5Sy0 RtR8h32j+RNPxCVSsAAeqXQV39y+DyL5fgEforcRmJzKhW5n2diCzfb3qV74JdoZTzrf+iP1M4dj 4I1XEKN/VLn82Otpuj2dzcwNpmqz/Vvht2juLh0kMbJ8Roy8S7MD36VHTDLtHKf5v+lH6mMexsA/ n/6eX60S2n+X2uYLI6ZrP7wo6zh5+KtchGPOQS8vh6NyrxocA1+T+j/pR+pmeycJFer/AE8uvxQ9 xZ+XnJlOk62RCpUsJJhRYY1K8R6tSSKADxrXCO0Mo/m/6UfqYy7HwE2eP/Ty6fFcv6CMUtwuja0s 4BIiLXQHK65huH7zbfqeO2R/PZOXp6fwx6fBn/JWG79XX+OXXn1UjHocVsskWiasXZHDxmS65Ves bItGfkTxr8VABv12wnX5T3f6UfqRHsjAOQl/p5dfiqNpnl22E811pF9ARI8cYilmlUNPCxaRFYqq tuabV5EYf5Rzd46dB0Y/yNp7sA9f4pbXsSN6vdGaLc6Hbakn1bStUt2VGCTziajFnIZWEjksfhHG tcpy6qcxRqvcHIwaDFikJRBv+sTz953RsXndpIWk/QuoRnkoj9SFlXi1aO9AzKFCktxVtulcx6c1 G2vmWaeCGU6RfKZmZeHpAFAH48n5lKVry77YFQ483St9ZK6VciO3FTMw4xkVNfip+zT4vDDSr082 H0oXk0nUAZ5CiIsDFlUKjc5A3DgP3lPoOBVWHzJJKkTfou8QSxNN6rx0jjChiFkNS4Y8eio3XFU1 tZjPawzlDGZUVzGeq8gDQ9OmKquKuxV2KsJl/L65diwfSgxYEH9GR+FDUGQ1rXNuO0wP9U/0/wCx 5w9iSPXD/wAqh/xS3/AWotbRqx0kyxqwUHT1ZBVRxC1eo+Pk3Tqa0w/yjC/8pX9df5GyGIB8GwP9 T2+/vs/HkrR+RLoFDKdLerKLgDT1HKFCvGMfGenD/OmQPaI6cfl6+vfybI9jy2vwvP8Ad9BW3Py/ FJ2fKHlUtyOkWhJ6kwp2+jMT87m/ny+bsP5L0v8AqcP9KG18peWVLFdLtlLFWJEaj4lXipHgQDtT E63N/OPzSOzNMOWOPycfKPlY1rpNoa0qTDGSaeO2P53N/Pl8yj+S9L/qcP8AShz+UPKrmraRZk1r X0I/x2xGtzD+OXzKT2Xpf9Th/pQrWfl/QrK4FzaWFvBcAcRLHGqtSlKVAr0yE9TkmKlIke9sxaHB jlxQhGMu8AJhlDlMO8y6rLa67HTX/qSx+mF04WxcsXYBjzJCtVWHXp23woUfLWs/WxHINaupvWnY ENbfDKQpqq7Semop/k79vFVOvJ179c0p5frL3QEpQSyAhvhRQdi0lKnfr3xKU9wK7FXYq7FUnm8t RNeXdzDe3NqbwxtJHA4RA0bKSwAHV+FG8QTiqE/wfNxp+ndTrxZa/WP5lcV6dRzqPkMKqsnlTkLk C/mX63JI8pAWoEodeKntRJTv40PamNqtm8pNLDHH+lr6L0+JpFIFTkleNFIagBoae2Nqi00Clo9r Lf3c6OzMxkdWNGfnSpXoPsj2wKhj5TQwoh1K9aZIvS+sGYl2PMuCxpVutOPSmG1QqeQ7dWuX/SN0 8tynDk7KQh7cBQEL/k17DwxtFI6LyyseopqJvrlrleZZGflDykFGKRMGVP8AY/TgStHlYMIBNqN2 RbRrCgik9HkiU4+rwA59/bfpiqrH5cjTUIr0XtzziiWFYuS+mQlQGK8ftUNK4qh9c0OeX1b0anfR RR27CS2tmqzhI23QDj8ZJr7nJQjxEDva8s+CJluaF7c/gkf1yBy0Yn1dFkWWNWa1uOIMzzIneqkG cfapXgvTMs6GVc4f6YOAO1IXXDk/0ku+u772m1mxit0emuxtcFxzeGY09UOePCtKq1wACK1KgCoG THZ8iSBKG39INZ7YgACYZd/6B/Hl9y9L+L0HQPry+hMZ+T203xg1Xgu1eI9XYE/s17bxOhlt6ob/ ANIMx2rE36Mu39CW/Ll+OhWi/tUmmC3GulWjZAPq8xcEkj4HK8fh5bbfTj+Rl/Oh/pgp7Vh/Nyf6 SX6mrTV7OOC5t45taZZW5GQWkxdGDEmLlxJDVam1NhSuE9nzHWH+mHzYjtfGeUcn+klz7uXNdJqd os0UzT60ojMiiOK2nUMQ8kh5hg1dpB9w+QA0Ez1h/pgk9rYwL4cn+kl+pMtPsDq9jM8d9qFuDKzR i4V4pEYsSKBqEqAxX5fLMfNhOM0SD7jbm6bUDNHiAkP6wIP2shsbZrWzht3kMzRKFMrVq1O+5Y/j lLkK+KuxV2KuxV2KuxVLbnT9SlumkivvQhLxuEEaueKqQ8dXrRW2NVocVVtHsbix02C1uJzdTRKV ecihbckePQGmKotVVfsgCu5pireKuxV2KuxV2KuxVCatqcGmafLfTpI8MPHmsSl3ozBa0HYVqT2G +KpFpv5i6HqetHSbK3vppKyCO7FrL9TkMVT+7uiPRYMFqpDUOKo248zSQ3F3A2lXqfVER/rMiItv Jzp8KSK71IrvtiqC/wAb/wDLg/8Awf8AzbhpFo5/NVnFDA88E4kuFDpFFE8xNWZSF4irFQvJgBsM vxaaUxYI+JpxNRrYYjUhK/IE/Kudcz3BTTzlYursLHUQqLyqbOYVHNU+Hbf7Vfllp0Mh/FD/AEwa B2rA36Mm39CXfXc5vOWnrs1lqAPBXp9TnP2hUDZaV3p88RoZfzof6YKe1YD+HJ/pJfqUj56sPTZ1 07UmIUsEFpIGajBaLyoCasMl/J8r+qH+mDD+WIVfBl/0h9y6Lztp80YeKy1B1KGQf6LIKqK9CaBu nQVwHQSBoyh/pgyj2tjkLEcnK/oP4PwWnzxZ8owNM1NlcVLrZyEL8QX4u/8AlbDoMP8AJ8v50P8A TBj/ACvDb93l3/oH8ebd7550yzXlNZ34j5Ivq/VZAn7whR8TBR36dccfZ858jD/TBc3bGPGLMclb fwS6/j8FtvOtirFf0fqRpUA/UpqGnhUYBoJfzof6YJPa0B/Bl/5Vy/U6Xzvp0UTSvZagERirH6pL 0H7XT7O3XGPZ8yaEof6YLLtfHEWY5P8ASSVofNtlK8aCyv1MvDiWtJgAZHZKNt8PHjU12pkZaKQB 9UNv6QbI9pwJA4cm9fwS6mvhX3KcHnK0kMQfT9QgaWlFktXqtXdPiC8unCpp2Iwy0Mhfqga/pe5h j7VjKrhkjffA95HS+77Qs/xxp/FCbDUgXUMVNlNVa9j8NPurh/k+X86H+mCP5XhQ9GXf+hL8fJMt J1u31MP6UFzAY6cluYXhO/hzArlGbTnHzIPuNuXptXHNdCQr+dEx+9MMocp2KuxV2KuxV2KuxV2K uxV2KqV1/vLN9r7Df3f2+h+z038MVeLfpPjZyP8ApTzhc8VX9zfWvpK9GgPBW4Q/vj+yOXUsOJ6Y UMt8qoX8iXCFdYujHHKnEyiO/SkCfBtNvN/xvXbFUh11fT1zQV9O8g/0GX4NYk9Y/wB3P/vY/qS/ F/vv4vt0y6P09ef6nHmfX05Dn8UpZv3dmKoP3UvwVq+yW3983Ldx0Tc78j7g1/WRfnFD2zfvbT42 3s4dmHWkNpvcH/lo8d/tepluQemP1cv98XGwH15Pp+r/AHkVGA1s2WsjV0FBwfYn+42B/wCW4f8A NWU1/Wcq/OKNu9tYul/dL/o5+AnlZf72w/3bVasv0n93zyyQ5fVyaoHnvHmh4+kP+8P9/L1/56fa /wAn+X6MhXvbL84vVvK179R8lWtwIHuCHkURWy8ql7llBUfyDlWvZcry/V8vubMH0/E/eV8fnG5m gDwaJfCXhyeOaMxgNxJ41ox6rStOtMhTciLHzPc3MZL6TdwycipBQ8UonKrlgp36fAG7e4Cqa6fd Pd2MFy8LQPNGrtC/2kLCvE9OmBURirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiql df7yzfa+w3939vofs9N/DFXjdpqbBFZNX83yuDHxTULURRkiS3IHJo419X+UEmpLDifs4UMo8qOt 15DnKw6xcD05UETyelfJ/o6D0z+93l/43rsMVSPXE4a3oI9C9tq2M37vV5fX/wB1T/72P6k/xf77 +P7dMtj9PXn+pol9fTkOfxSlv7uzFAP3UvwE1fZLb++blu46Jud+R9wfmi/6qhbf3ln9scrKE/EN mpDabzmn9/47/b9TLcnKPPl/vi4+H6p/T9X+8ioQb2bLSZq6Cg4PsT/cbA/8tw/5qyr5uTf9VG3a 01m6Xii/6OfgJ5WX+9sP9229ZfpPwcsnLpza4dfp5oeNdofgs/8AeiXr85PtbfZ/l+jIfNsv+q9L 0q31GXyDbJpxZLpZC6rC/DkBdMWCtVKKVqR7bZDJ9Xy+5nh+n4n70vl0TzMJAy/paRxEtZfr8QPK T03dFHA04tVffjkGxfcWXmq4heltqFpcOEWKUXkchUUoyAgAqGMC8mO1Wr81WjpHmVHkulOpXzxM 8aRPdJCGQxqm6utPiJ5GhpUdcVRdhpGv3HGO6k1S1FqFgWT65G3rBjLzmYAA/DzFN60406YqoW+l +aBYGMW1zDdJElosv1qIuY2dpWdHp8BQhUrv8PbbFUJb2HnmNpn4XskSgxeg93ycAswaRHb0wxFd tvAjtVVE2mleZHvI01AXcVoztC0kchmf06u4Ys5kZatRTtSnftiqt5f0/wAyae4murSZmtoOMEX1 gTKweUs1RVF58T2HYbmuKsi1HVNWt4le10mS7YuymMSxoQoA4tuSPir0wJQi675hZoa6K8QdlE6M /IoGI/aVeJ+jp3phVF2GqancXiQz6e0ELIzGYkkAg9KFR+P0YFTXFXYq7FXYq7FXYq7FXYq7FXYq 7FVsqepE8fIpzUryU0IqKVB8cVYbD+XepxgCTzdrFytVDLNLHTirRmoMaRsH/dGjVpVjsRthVN7D yqtvpE+mXF/c3CzeoqzrLJFIiOgSilXO4pWvj2wKlWr+RbRZrXUTqUyW2lWssciXZlvfVQpIGeZp JDI5X1Cy77EbeGTE9qazDe0hj8taPPdWNlBqrSM6ukbfVZFDc44WV3d5FLkLGOJFd2NfY8SOD3fJ M4/yr9NoWGqsfShSBgYR+8KJEnqyfHUyH0K8vFmPfJSy2AO7z87YQwcJkdvUb5eQH6ENafljFKtz bLq0jehaLpMvOChqqROLgH1P77iB+89zkOL3tnB7vkjJvyvWS8luRqCqssZj+qmDlAv75JuaqZK8 v3fCpP2SfHJHJbGOKu75IOy/Le3uDII72L/RLmVXraqasakj4Zj8I9T5im+DjZcHu+TN9D0oaVpc NgJBKIi55heAPN2fZatQDlTrkZSs2mEeEUj8izdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVcQCKHcHqMVWpFEioiIqrGKRqAAFAFAAO22KsK8zy30WtztDc3kcTxK v+j3sCIjAAgehKpKFv5hX6Bm40gicYsRu+sT945vOdoHIM5IlMCv4ckQP9LIbX3/AHBAvd67Kzr6 +oRyuxb0lvbDkv8AefAoC/Lx/Z+i4QxjpCv6s/L8fNoOTPLa8gJ/p4/Pbl+NvhTNriRh0utTkJhR peN7YmnJzQ/F9luJp8OxqN9sQMZO4hz/AJs2MvGAsSynbf14+/z6+7nt3KVld+Yea+rJqMShnlDf WrAiTjGrMhI4hx8Ozjud+mSnjxdBD/Sz7+f7PJjiy6gkcRyDr9ePegLHny2Pnu531u2uSEvNQNUj K8dRs5iVVV4n05uNPVPMct9174gY5D6Ydf4JD7R3bfNj++hLaWTkP8rjl0HSVfV6t+8dV9rc6zLB zF3qrTT+pGIjdWPJHUK8Y3H25AacaVWvyOCccYPLHQr+Gfx+A7+rPFkzSjfFls2K48e3Ij4y7uY+ RVP0hq9wgkafUoFaWbiyXmnEFjRFiHY/GvEU7nI+HjjtUDsP4Z/P5bsvHyyFk5RvL+PF7uH57Dza l1DWI3hPqakkzmW3itWvdPqSXpWjVJYNIFXvWg+ZGLGb2hWxvhn+OiyzZQRvlBNxA48Xf99kAfAe 8NFq2o1fhd6lNKA3KL9IaafhIKeoOO44s3ToD8smcMO6AH9SfyaYarJe0skj3eJh5cr27j9vyVra XzALiNJLvU1MjBV/0zTmZSzFaNGy7lV4nY71yM44q2EP9LP723HLUcQBll3/AKeL7q7q96L0g6kb /jeanqFrb8BIs1xc2TozUH7tgo5dyKjwyrNwcPpjAnyjL5t2m8TxPXPJGNXcpYyPd3o2XQlNxHXz feKUZlaMzwhixUNSgVRXia/Ep2ykajb+5j8i3z0QMh/hM9unFHu93dvuCiDpSeoWk803XDgqKomg Wh4ABqhd2PHl4ZDxttsUfkW86YXvnn8493u+LbaSnpyIfNN2HV29V/WtwVr+yRwotOP68Rm3vwo/ KX61Ol2I/MT577w/4nyTrSdOmsYXjkvp78u3MSXJQsKgCgKKm2YmbKJmxER9zn6bAcYIM5Tv+dX6 AEblLkuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsZ1rylc6jqkl4JLMRlQIxLZrLMrrGQ p9YsG2ejbZsMGtGOHDUv9NQ593udPq+zJZcpncPjAE8tvVffug28h3Y/updOjPwkP+joywkX7Lk8 6Ejemw65cO0Y9RP/AE5/U4/8jSHI4h/ySHPv5+9SH5f3YioJdMV3DrLTTYwhUlCuwcGqlCetN+nf D/KUb5T/ANOfPyY/yJKueLrf7oeVdelNjyBeKgEU2mowBqf0dEQeS8WFOQ2NT+rH+Uo9RP8A05X+ RJjkcQ/5JDu36tt5BulmLw/opQyMp/3HoOJag2UMeQKVBBPXf2xHaMa38T/TpPY0gbHhcv8AUx+v u8/1LT5B1JmjD3GnFY6hGXT0VlPCiuPjO6lV+gYf5Sh3T/0/7Pej+Rcm2+Pb/axttsefTb5N3P5f XMrQuJNN9RDzkdtOSrSGtSeLgEGvQ4I9pAWKn/p/2Lk7ElKjeK+v7obn5q1v5M1mKQn69ZBXYtM0 dlwlYuwZ2Eqyh0ZuC/EDUEV6jIS12Mj6Zf6bb5VTZDsrKD9cN+dY6O/PcSsHYbj39EOPIWpohWOT SiGUCSunL+8PLlxc8ztVVyz+UYHmMn+n5fY1DsXIBQOH/lVz9+7I4fK3l2ONUGm2oAYScREvESAU 5qtKA+4zAlrMpP1S+bto9nacCuCPfyHPvaPlHyswQNpNoQgogMMZoCSadPE4fzub+fL5lH8mab/U 4bf0Q0fKHlYqFOk2nFWLKvopxBYAE0pTfiMfzub+fL5r/Jmm5eHD/ShzeUPKzfa0m0Y8QtTChNFF ANx2GP53N/Pl81PZmmP+Th/pQ3J5R8rSMzvpNozOSWb0UqSTUnpiNbmH8cvmsuzNMTZxw/0oTWON I41jQURAFUeAGwzGJs25oAAoN4EuxV2KuxV2KuxV2KuxV//Z + + + + + + uuid:B3844C4C895DDD119FAB811BD235A9FF + uuid:4b91fa5b-ebd4-4a7a-be50-c5f8819f9f27 + + uuid:B2844C4C895DDD119FAB811BD235A9FF + uuid:AF844C4C895DDD119FAB811BD235A9FF + + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj xref +0 123 +0000000003 00000 f +0000000016 00000 n +0000000077 00000 n +0000000004 00001 f +0000000006 00000 f +0000000127 00000 n +0000000007 00001 f +0000000008 00000 f +0000000009 00000 f +0000000010 00000 f +0000000011 00000 f +0000000012 00000 f +0000000013 00000 f +0000000014 00000 f +0000000015 00000 f +0000000016 00000 f +0000000017 00000 f +0000000018 00000 f +0000000019 00000 f +0000000020 00000 f +0000000021 00000 f +0000000022 00000 f +0000000023 00000 f +0000000024 00000 f +0000000025 00000 f +0000000026 00000 f +0000000027 00000 f +0000000028 00000 f +0000000029 00000 f +0000000030 00000 f +0000000031 00000 f +0000000032 00001 f +0000000033 00000 f +0000000034 00000 f +0000000035 00000 f +0000000036 00000 f +0000000037 00000 f +0000000038 00000 f +0000000039 00000 f +0000000040 00001 f +0000000041 00000 f +0000000042 00000 f +0000000043 00000 f +0000000044 00000 f +0000000045 00000 f +0000000046 00000 f +0000000047 00000 f +0000000048 00000 f +0000000049 00000 f +0000000050 00000 f +0000000051 00000 f +0000000052 00000 f +0000000053 00000 f +0000000054 00000 f +0000000055 00000 f +0000000056 00000 f +0000000057 00000 f +0000000058 00000 f +0000000059 00000 f +0000000060 00000 f +0000000061 00000 f +0000000062 00000 f +0000000063 00000 f +0000000064 00000 f +0000000065 00001 f +0000000066 00000 f +0000000067 00000 f +0000000068 00000 f +0000000069 00000 f +0000000070 00000 f +0000000071 00000 f +0000000088 00000 f +0000000799 00000 n +0000000872 00000 n +0000001268 00000 n +0000002443 00000 n +0000013702 00000 n +0000079290 00000 n +0000144878 00000 n +0000210466 00000 n +0000276054 00000 n +0000341642 00000 n +0000407230 00000 n +0000472818 00000 n +0000538406 00000 n +0000603994 00000 n +0000669582 00000 n +0000680866 00000 n +0000000089 00001 f +0000000090 00001 f +0000000091 00001 f +0000000092 00001 f +0000000093 00001 f +0000000094 00001 f +0000000095 00001 f +0000000096 00001 f +0000000097 00001 f +0000000098 00001 f +0000000099 00001 f +0000000100 00001 f +0000000101 00001 f +0000000102 00001 f +0000000000 00001 f +0000680978 00000 n +0000681014 00000 n +0001238240 00000 n +0001238768 00000 n +0001239016 00000 n +0001239412 00000 n +0001239677 00000 n +0001240064 00000 n +0001240323 00000 n +0001240664 00000 n +0001240919 00000 n +0001259470 00000 n +0001259593 00000 n +0001299798 00000 n +0001328187 00000 n +0001354553 00000 n +0001370207 00000 n +0001370256 00000 n +0001370770 00000 n +0001371573 00000 n +trailer +<<1DE576B4D69E0E4D8B0BC4F75D4B6A9F>]>> +startxref +1395446 +%%EOF diff --git a/bioinformaticsProject/hmmer/src/impl_sse/p7_omx.c b/bioinformaticsProject/hmmer/src/impl_sse/p7_omx.c new file mode 100644 index 0000000..bab3eb6 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/p7_omx.c @@ -0,0 +1,621 @@ +/* SSE implementation of an optimized profile structure. + * + * Contents: + * 1. The P7_OMX structure: a dynamic programming matrix + * 2. Debugging dumps of P7_OMX structures + * + * See also: + * p7_omx.ai - figure illustrating the layout of a P7_OMX. + * + * SRE, Sun Nov 25 11:26:48 2007 [Casa de Gatos] + */ +#include "p7_config.h" + +#include +#include +#include + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_vectorops.h" +#include "esl_sse.h" + +#include "hmmer.h" +#include "impl_sse.h" + +/***************************************************************** + * 1. The P7_OMX structure: a dynamic programming matrix + *****************************************************************/ + +/* Function: p7_omx_Create() + * Synopsis: Create an optimized dynamic programming matrix. + * Incept: SRE, Tue Nov 27 08:48:20 2007 [Janelia] + * + * Purpose: Allocates a reusable, resizeable for models up to + * size and target sequences up to length + * , for use by any of the various optimized + * DP routines. + * + * To allocate the very memory-efficient one-row matrix + * used by *Filter() and *Score() functions that only + * calculate scores, , , and + * . + * + * To allocate the reasonably memory-efficient linear + * arrays used by *Parser() functions that only keep + * special (X) state scores, , , + * and . + * + * To allocate a complete matrix suitable for functions + * that need the whole DP matrix for traceback, sampling, + * posterior decoding, or reestimation, and + * . + * + * Returns: a pointer to the new . + * + * Throws: on allocation failure. + */ +P7_OMX * +p7_omx_Create(int allocM, int allocL, int allocXL) +{ + P7_OMX *ox = NULL; + int i; + int status; + + ESL_ALLOC(ox, sizeof(P7_OMX)); + ox->dp_mem = NULL; + ox->dpb = NULL; + ox->dpw = NULL; + ox->dpf = NULL; + ox->xmx = NULL; + ox->x_mem = NULL; + + /* DP matrix will be allocated for allocL+1 rows 0,1..L; allocQ4*p7X_NSCELLS columns */ + ox->allocR = allocL+1; + ox->validR = ox->allocR; + ox->allocQ4 = p7O_NQF(allocM); + ox->allocQ8 = p7O_NQW(allocM); + ox->allocQ16 = p7O_NQB(allocM); + ox->ncells = ox->allocR * ox->allocQ4 * 4; /* # of DP cells allocated, where 1 cell contains MDI */ + + ESL_ALLOC(ox->dp_mem, sizeof(__m128) * ox->allocR * ox->allocQ4 * p7X_NSCELLS + 15); /* floats always dominate; +15 for alignment */ + ESL_ALLOC(ox->dpb, sizeof(__m128i *) * ox->allocR); + ESL_ALLOC(ox->dpw, sizeof(__m128i *) * ox->allocR); + ESL_ALLOC(ox->dpf, sizeof(__m128 *) * ox->allocR); + + ox->dpb[0] = (__m128i *) ( ( (unsigned long int) ((char *) ox->dp_mem + 15) & (~0xf))); + ox->dpw[0] = (__m128i *) ( ( (unsigned long int) ((char *) ox->dp_mem + 15) & (~0xf))); + ox->dpf[0] = (__m128 *) ( ( (unsigned long int) ((char *) ox->dp_mem + 15) & (~0xf))); + + for (i = 1; i <= allocL; i++) { + ox->dpf[i] = ox->dpf[0] + i * ox->allocQ4 * p7X_NSCELLS; + ox->dpw[i] = ox->dpw[0] + i * ox->allocQ8 * p7X_NSCELLS; + ox->dpb[i] = ox->dpb[0] + i * ox->allocQ16; + } + + ox->allocXR = allocXL+1; + ESL_ALLOC(ox->x_mem, sizeof(float) * ox->allocXR * p7X_NXCELLS + 15); + ox->xmx = (float *) ( ( (unsigned long int) ((char *) ox->x_mem + 15) & (~0xf))); + + ox->M = 0; + ox->L = 0; + ox->totscale = 0.0; + ox->has_own_scales = TRUE; /* most matrices are Forward, control their own scale factors */ +#if eslDEBUGLEVEL > 0 + ox->debugging = FALSE; + ox->dfp = NULL; +#endif + return ox; + + ERROR: + p7_omx_Destroy(ox); + return NULL; +} + +/* Function: p7_omx_GrowTo() + * Synopsis: Assure that a DP matrix is big enough. + * Incept: SRE, Thu Dec 20 09:27:07 2007 [Janelia] + * + * Purpose: Assures that an optimized DP matrix is allocated for + * a model up to in length; if not, reallocate to + * make it so. + * + * Because the optimized matrix is one-row, only the model + * length matters; the target sequence length isn't + * relevant. + * + * Returns: on success, and may be reallocated upon + * return; any data that may have been in must be + * assumed to be invalidated. + * + * Throws: on allocation failure, and any data that may + * have been in must be assumed to be invalidated. + */ +int +p7_omx_GrowTo(P7_OMX *ox, int allocM, int allocL, int allocXL) +{ + void *p; + int nqf = p7O_NQF(allocM); /* segment length; total # of striped vectors for uchar */ + int nqw = p7O_NQW(allocM); /* segment length; total # of striped vectors for float */ + int nqb = p7O_NQB(allocM); /* segment length; total # of striped vectors for float */ + size_t ncells = (allocL+1) * nqf * 4; + int reset_row_pointers = FALSE; + int i; + int status; + + /* If all possible dimensions are already satisfied, the matrix is fine */ + if (ox->allocQ4*4 >= allocM && ox->validR > allocL && ox->allocXR >= allocXL+1) return eslOK; + + /* If the main matrix is too small in cells, reallocate it; + * and we'll need to realign/reset the row pointers later. + */ + if (ncells > ox->ncells) + { + ESL_RALLOC(ox->dp_mem, p, sizeof(__m128) * (allocL+1) * nqf * p7X_NSCELLS + 15); + ox->ncells = ncells; + reset_row_pointers = TRUE; + } + + /* If the X beams are too small, reallocate them. */ + if (allocXL+1 >= ox->allocXR) + { + ESL_RALLOC(ox->x_mem, p, sizeof(float) * (allocXL+1) * p7X_NXCELLS + 15); + ox->allocXR = allocXL+1; + ox->xmx = (float *) ( ( (unsigned long int) ((char *) ox->x_mem + 15) & (~0xf))); + } + + /* If there aren't enough rows, reallocate the row pointers; we'll + * realign and reset them later. + */ + if (allocL >= ox->allocR) + { + ESL_RALLOC(ox->dpb, p, sizeof(__m128i *) * (allocL+1)); + ESL_RALLOC(ox->dpw, p, sizeof(__m128i *) * (allocL+1)); + ESL_RALLOC(ox->dpf, p, sizeof(__m128 *) * (allocL+1)); + ox->allocR = allocL+1; + reset_row_pointers = TRUE; + } + + /* must we widen the rows? */ + if (allocM > ox->allocQ4*4) + reset_row_pointers = TRUE; + + /* must we set some more valid row pointers? */ + if (allocL >= ox->validR) + reset_row_pointers = TRUE; + + /* now reset the row pointers, if needed */ + if (reset_row_pointers) + { + ox->dpb[0] = (__m128i *) ( ( (unsigned long int) ((char *) ox->dp_mem + 15) & (~0xf))); + ox->dpw[0] = (__m128i *) ( ( (unsigned long int) ((char *) ox->dp_mem + 15) & (~0xf))); + ox->dpf[0] = (__m128 *) ( ( (unsigned long int) ((char *) ox->dp_mem + 15) & (~0xf))); + + ox->validR = ESL_MIN( ox->ncells / (nqf * 4), ox->allocR); + for (i = 1; i < ox->validR; i++) + { + ox->dpb[i] = ox->dpb[0] + i * nqb; + ox->dpw[i] = ox->dpw[0] + i * nqw * p7X_NSCELLS; + ox->dpf[i] = ox->dpf[0] + i * nqf * p7X_NSCELLS; + } + + ox->allocQ4 = nqf; + ox->allocQ8 = nqw; + ox->allocQ16 = nqb; + } + + ox->M = 0; + ox->L = 0; + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_omx_FDeconvert() + * Synopsis: Convert an optimized DP matrix to generic one. + * Incept: SRE, Tue Aug 19 17:58:13 2008 [Janelia] + * + * Purpose: Convert the 32-bit float values in optimized DP matrix + * to a generic one . Caller provides with sufficient + * space to hold the M> by L> matrix. + * + * This function is used to gain access to the + * somewhat more powerful debugging and display + * tools available for generic DP matrices. + */ +int +p7_omx_FDeconvert(P7_OMX *ox, P7_GMX *gx) +{ + int Q = p7O_NQF(ox->M); + int i, q, r, k; + union { __m128 v; float p[4]; } u; + float **dp = gx->dp; + float *xmx = gx->xmx; + + for (i = 0; i <= ox->L; i++) + { + MMX(i,0) = DMX(i,0) = IMX(i,0) = -eslINFINITY; + for (q = 0; q < Q; q++) + { + u.v = MMO(ox->dpf[i],q); for (r = 0; r < 4; r++) { k = (Q*r)+q+1; if (k <= ox->M) MMX(i, (Q*r)+q+1) = u.p[r]; } + u.v = DMO(ox->dpf[i],q); for (r = 0; r < 4; r++) { k = (Q*r)+q+1; if (k <= ox->M) DMX(i, (Q*r)+q+1) = u.p[r]; } + u.v = IMO(ox->dpf[i],q); for (r = 0; r < 4; r++) { k = (Q*r)+q+1; if (k <= ox->M) IMX(i, (Q*r)+q+1) = u.p[r]; } + } + XMX(i,p7G_E) = ox->xmx[i*p7X_NXCELLS+p7X_E]; + XMX(i,p7G_N) = ox->xmx[i*p7X_NXCELLS+p7X_N]; + XMX(i,p7G_J) = ox->xmx[i*p7X_NXCELLS+p7X_J]; + XMX(i,p7G_B) = ox->xmx[i*p7X_NXCELLS+p7X_B]; + XMX(i,p7G_C) = ox->xmx[i*p7X_NXCELLS+p7X_C]; + } + gx->L = ox->L; + gx->M = ox->M; + return eslOK; +} + + +/* Function: p7_omx_Reuse() + * Synopsis: Recycle an optimized DP matrix. + * Incept: SRE, Wed Oct 22 11:31:00 2008 [Janelia] + * + * Purpose: Recycles for re-use. + * + * Returns: on success. + */ +int +p7_omx_Reuse(P7_OMX *ox) +{ + ox->M = 0; + ox->L = 0; + ox->totscale = 0.0; + ox->has_own_scales = TRUE; /* default assumes a Forward matrix, with its own scale factors */ +#if eslDEBUGLEVEL > 0 + ox->debugging = FALSE; + ox->dfp = NULL; +#endif + return eslOK; +} + + + + +/* Function: p7_omx_Destroy() + * Synopsis: Frees an optimized DP matrix. + * Incept: SRE, Tue Nov 27 09:11:42 2007 [Janelia] + * + * Purpose: Frees optimized DP matrix . + * + * Returns: (void) + */ +void +p7_omx_Destroy(P7_OMX *ox) +{ + if (ox == NULL) return; + if (ox->x_mem != NULL) free(ox->x_mem); + if (ox->dp_mem != NULL) free(ox->dp_mem); + if (ox->dpf != NULL) free(ox->dpf); + if (ox->dpw != NULL) free(ox->dpw); + if (ox->dpb != NULL) free(ox->dpb); + free(ox); + return; +} +/*------------------- end, P7_OMX structure ---------------------*/ + + + +/***************************************************************** + * 2. Debugging dumps of P7_OMX structures + *****************************************************************/ +/* Because the P7_OMX may be a one-row DP matrix, we can't just run a + * DP calculation and then dump a whole matrix; we have to dump each + * row one at a time, as the DP calculation is progressing. Thus we + * need to call the dump from *within* some DP routines. We'd rather not + * have anything like this in production code - not even a flag check. + * So, we use a compile-time debugging idiom, with conditionally + * compiled debugging code that's added to the DP routines to check a + * debugging flag in the P7_OMX structure; if it's up, we dump a row. + * + * Therefore, the externally exposed API call is p7_omx_SetDumpMode(), + * rather than the dumping routine itself; and all p7_omx_SetDumpMode() + * does is sets the debugging flag in . + */ + +/* Function: p7_omx_SetDumpMode() + * Synopsis: Set an optimized DP matrix to be dumped for debugging. + * Incept: SRE, Thu Dec 13 10:24:38 2007 [Janelia] + * + * Purpose: Sets debugging mode for DP matrix . If + * flag is , then whenever a dynamic programming + * calculation is run, dump DP matrix to stream + * for diagnostics. + * + * When the dump mode is on, the DP routine itself actually + * does the dumping, because it has to dump after every row + * is calculated. (We're doing an optimized one-row + * calculation.) + * + * If the code has not been compiled with the + * flag set nonzero, this function is a no-op. + * + * Args: fp - output stream for diagnostics (stdout, perhaps) + * ox - DP matrix to set debugging mode + * truefalse - TRUE to set dumping, FALSE to unset + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + * + * Xref: J2/62. + */ +int +p7_omx_SetDumpMode(FILE *fp, P7_OMX *ox, int truefalse) +{ +#if eslDEBUGLEVEL > 0 + ox->debugging = truefalse; + ox->dfp = fp; +#endif + return eslOK; +} + + +/* Function: p7_omx_DumpMFRow() + * Synopsis: Dump one row from MSV uchar version of a DP matrix. + * Incept: SRE, Wed Jul 30 16:47:26 2008 [Janelia] + * + * Purpose: Dump current row of uchar part of DP matrix for diagnostics, + * and include the values of specials , etc. The index for + * the current row is used as a row label. This routine has to be + * specialized for the layout of the MSVFilter() row, because it's + * all match scores dp[0..q..Q-1], rather than triplets of M,D,I. + * + * If is 0, print a header first too. + * + * The output format is coordinated with to + * facilitate comparison to a known answer. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_omx_DumpMFRow(P7_OMX *ox, int rowi, uint8_t xE, uint8_t xN, uint8_t xJ, uint8_t xB, uint8_t xC) +{ + __m128i *dp = ox->dpb[0]; + int M = ox->M; + int Q = p7O_NQB(M); + uint8_t *v = NULL; /* array of unstriped scores */ + int q,z,k; + union { __m128i v; uint8_t i[16]; } tmp; + int status; + + ESL_ALLOC(v, sizeof(unsigned char) * ((Q*16)+1)); + v[0] = 0; + + /* Header (if we're on the 0th row) */ + if (rowi == 0) + { + fprintf(ox->dfp, " "); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%3d ", k); + fprintf(ox->dfp, "%3s %3s %3s %3s %3s\n", "E", "N", "J", "B", "C"); + fprintf(ox->dfp, " "); + for (k = 0; k <= M+5; k++) fprintf(ox->dfp, "%3s ", "---"); + fprintf(ox->dfp, "\n"); + } + + /* Unpack and unstripe, then print M's. */ + for (q = 0; q < Q; q++) { + tmp.v = dp[q]; + for (z = 0; z < 16; z++) v[q+Q*z+1] = tmp.i[z]; + } + fprintf(ox->dfp, "%4d M ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%3d ", v[k]); + + /* The specials */ + fprintf(ox->dfp, "%3d %3d %3d %3d %3d\n", xE, xN, xJ, xB, xC); + + /* I's are all 0's; print just to facilitate comparison. */ + fprintf(ox->dfp, "%4d I ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%3d ", 0); + fprintf(ox->dfp, "\n"); + + /* D's are all 0's too */ + fprintf(ox->dfp, "%4d D ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%3d ", 0); + fprintf(ox->dfp, "\n\n"); + + free(v); + return eslOK; + +ERROR: + free(v); + return status; +} + + +/* Function: p7_omx_DumpVFRow() + * Synopsis: Dump current row of ViterbiFilter (int16) part of matrix. + * Incept: SRE, Wed Jul 30 16:43:21 2008 [Janelia] + * + * Purpose: Dump current row of ViterbiFilter (int16) part of DP + * matrix for diagnostics, and include the values of + * specials , etc. The index for the current row + * is used as a row label. + * + * If is 0, print a header first too. + * + * The output format is coordinated with to + * facilitate comparison to a known answer. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_omx_DumpVFRow(P7_OMX *ox, int rowi, int16_t xE, int16_t xN, int16_t xJ, int16_t xB, int16_t xC) +{ + __m128i *dp = ox->dpw[0]; /* must set before using {MDI}MX macros */ + int M = ox->M; + int Q = p7O_NQW(M); + int16_t *v = NULL; /* array of unstriped, uninterleaved scores */ + int q,z,k; + union { __m128i v; int16_t i[8]; } tmp; + int status; + + ESL_ALLOC(v, sizeof(int16_t) * ((Q*8)+1)); + v[0] = 0; + + /* Header (if we're on the 0th row) + */ + if (rowi == 0) + { + fprintf(ox->dfp, " "); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%6d ", k); + fprintf(ox->dfp, "%6s %6s %6s %6s %6s\n", "E", "N", "J", "B", "C"); + fprintf(ox->dfp, " "); + for (k = 0; k <= M+5; k++) fprintf(ox->dfp, "%6s ", "------"); + fprintf(ox->dfp, "\n"); + } + + /* Unpack and unstripe, then print M's. */ + for (q = 0; q < Q; q++) { + tmp.v = MMXo(q); + for (z = 0; z < 8; z++) v[q+Q*z+1] = tmp.i[z]; + } + fprintf(ox->dfp, "%4d M ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%6d ", v[k]); + + /* The specials */ + fprintf(ox->dfp, "%6d %6d %6d %6d %6d\n", xE, xN, xJ, xB, xC); + + /* Unpack and unstripe, then print I's. */ + for (q = 0; q < Q; q++) { + tmp.v = IMXo(q); + for (z = 0; z < 8; z++) v[q+Q*z+1] = tmp.i[z]; + } + fprintf(ox->dfp, "%4d I ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%6d ", v[k]); + fprintf(ox->dfp, "\n"); + + /* Unpack, unstripe, then print D's. */ + for (q = 0; q < Q; q++) { + tmp.v = DMXo(q); + for (z = 0; z < 8; z++) v[q+Q*z+1] = tmp.i[z]; + } + fprintf(ox->dfp, "%4d D ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%6d ", v[k]); + fprintf(ox->dfp, "\n\n"); + + free(v); + return eslOK; + +ERROR: + free(v); + return status; + +} + +/* Function: p7_omx_DumpFBRow() + * Synopsis: Dump one row from float part of a DP matrix. + * Incept: SRE, Wed Jul 30 16:45:16 2008 [Janelia] + * + * Purpose: Dump current row of Forward/Backward (float) part of DP + * matrix for diagnostics, and include the values of + * specials , etc. The index for the current row + * is used as a row label. + * + * The output format of the floats is controlled by + * , ; 8,5 is good for pspace, 5,2 is + * fine for lspace. + * + * If is 0, print a header first too. + * + * If is TRUE, then scores are printed as log(score); this is + * useful for comparing DP with pspace scores with other DP matrices + * (like generic P7_GMX ones) that use log-odds scores. + * + * The output format is coordinated with to + * facilitate comparison to a known answer. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_omx_DumpFBRow(P7_OMX *ox, int logify, int rowi, int width, int precision, float xE, float xN, float xJ, float xB, float xC) +{ + __m128 *dp; + int M = ox->M; + int Q = p7O_NQF(M); + float *v = NULL; /* array of uninterleaved, unstriped scores */ + int q,z,k; + union { __m128 v; float x[4]; } tmp; + int status; + + dp = (ox->allocR == 1) ? ox->dpf[0] : ox->dpf[rowi]; /* must set before using {MDI}MX macros */ + + ESL_ALLOC(v, sizeof(float) * ((Q*4)+1)); + v[0] = 0.; + + if (rowi == 0) + { + fprintf(ox->dfp, " "); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*d ", width, k); + fprintf(ox->dfp, "%*s %*s %*s %*s %*s\n", width, "E", width, "N", width, "J", width, "B", width, "C"); + fprintf(ox->dfp, " "); + for (k = 0; k <= M+5; k++) fprintf(ox->dfp, "%*s ", width, "--------"); + fprintf(ox->dfp, "\n"); + } + + /* Unpack, unstripe, then print M's. */ + for (q = 0; q < Q; q++) { + tmp.v = MMXo(q); + for (z = 0; z < 4; z++) v[q+Q*z+1] = tmp.x[z]; + } + fprintf(ox->dfp, "%3d M ", rowi); + if (logify) for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k] == 0. ? -eslINFINITY : log(v[k])); + else for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k]); + + /* The specials */ + if (logify) fprintf(ox->dfp, "%*.*f %*.*f %*.*f %*.*f %*.*f\n", + width, precision, xE == 0. ? -eslINFINITY : log(xE), + width, precision, xN == 0. ? -eslINFINITY : log(xN), + width, precision, xJ == 0. ? -eslINFINITY : log(xJ), + width, precision, xB == 0. ? -eslINFINITY : log(xB), + width, precision, xC == 0. ? -eslINFINITY : log(xC)); + else fprintf(ox->dfp, "%*.*f %*.*f %*.*f %*.*f %*.*f\n", + width, precision, xE, width, precision, xN, width, precision, xJ, + width, precision, xB, width, precision, xC); + + /* Unpack, unstripe, then print I's. */ + for (q = 0; q < Q; q++) { + tmp.v = IMXo(q); + for (z = 0; z < 4; z++) v[q+Q*z+1] = tmp.x[z]; + } + fprintf(ox->dfp, "%3d I ", rowi); + if (logify) for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k] == 0. ? -eslINFINITY : log(v[k])); + else for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k]); + fprintf(ox->dfp, "\n"); + + /* Unpack, unstripe, then print D's. */ + for (q = 0; q < Q; q++) { + tmp.v = DMXo(q); + for (z = 0; z < 4; z++) v[q+Q*z+1] = tmp.x[z]; + } + fprintf(ox->dfp, "%3d D ", rowi); + if (logify) for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k] == 0. ? -eslINFINITY : log(v[k])); + else for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k]); + fprintf(ox->dfp, "\n\n"); + + free(v); + return eslOK; + +ERROR: + free(v); + return status; +} +/*------------- end, debugging dumps of P7_OMX ------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/p7_oprofile.c b/bioinformaticsProject/hmmer/src/impl_sse/p7_oprofile.c new file mode 100644 index 0000000..f2f30d1 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/p7_oprofile.c @@ -0,0 +1,2157 @@ +/* Routines for the P7_OPROFILE structure: + * a search profile in an optimized implementation. + * + * Contents: + * 1. The P7_OPROFILE object: allocation, initialization, destruction. + * 2. Conversion from generic P7_PROFILE to optimized P7_OPROFILE + * 3. Conversion from optimized P7_OPROFILE to compact score arrays + * 4. Debugging and development utilities. + * 5. Benchmark driver. + * 6. Unit tests. + * 7. Test driver. + * 8. Example. + */ +#include "p7_config.h" + +#include +#include +#include /* roundf() */ + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_random.h" +#include "esl_sse.h" +#include "esl_vectorops.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static uint8_t unbiased_byteify(P7_OPROFILE *om, float sc); +static uint8_t biased_byteify(P7_OPROFILE *om, float sc); +static int16_t wordify(P7_OPROFILE *om, float sc); +static int sf_conversion(P7_OPROFILE *om); + +/***************************************************************** + * 1. The P7_OPROFILE structure: a score profile. + *****************************************************************/ + +/* Function: p7_oprofile_Create() + * Synopsis: Allocate an optimized profile structure. + * Incept: SRE, Sun Nov 25 12:03:19 2007 [Casa de Gatos] + * + * Purpose: Allocate for profiles of up to nodes for digital alphabet . + * + * Throws: on allocation error. + */ +P7_OPROFILE * +p7_oprofile_Create(int allocM, const ESL_ALPHABET *abc) +{ + int status; + P7_OPROFILE *om = NULL; + int nqb = p7O_NQB(allocM); /* # of uchar vectors needed for query */ + int nqw = p7O_NQW(allocM); /* # of sword vectors needed for query */ + int nqf = p7O_NQF(allocM); /* # of float vectors needed for query */ + int nqs = nqb + p7O_EXTRA_SB; + int x; + + /* level 0 */ + ESL_ALLOC(om, sizeof(P7_OPROFILE)); + om->rbv_mem = NULL; + om->sbv_mem = NULL; + om->rwv_mem = NULL; + om->twv_mem = NULL; + om->rfv_mem = NULL; + om->tfv_mem = NULL; + om->rbv = NULL; + om->sbv = NULL; + om->rwv = NULL; + om->twv = NULL; + om->rfv = NULL; + om->tfv = NULL; + om->clone = 0; + + /* level 1 */ + ESL_ALLOC(om->rbv_mem, sizeof(__m128i) * nqb * abc->Kp +15); /* +15 is for manual 16-byte alignment */ + ESL_ALLOC(om->sbv_mem, sizeof(__m128i) * nqs * abc->Kp +15); + ESL_ALLOC(om->rwv_mem, sizeof(__m128i) * nqw * abc->Kp +15); + ESL_ALLOC(om->twv_mem, sizeof(__m128i) * nqw * p7O_NTRANS +15); + ESL_ALLOC(om->rfv_mem, sizeof(__m128) * nqf * abc->Kp +15); + ESL_ALLOC(om->tfv_mem, sizeof(__m128) * nqf * p7O_NTRANS +15); + + ESL_ALLOC(om->rbv, sizeof(__m128i *) * abc->Kp); + ESL_ALLOC(om->sbv, sizeof(__m128i *) * abc->Kp); + ESL_ALLOC(om->rwv, sizeof(__m128i *) * abc->Kp); + ESL_ALLOC(om->rfv, sizeof(__m128 *) * abc->Kp); + + /* align vector memory on 16-byte boundaries */ + om->rbv[0] = (__m128i *) (((unsigned long int) om->rbv_mem + 15) & (~0xf)); + om->sbv[0] = (__m128i *) (((unsigned long int) om->sbv_mem + 15) & (~0xf)); + om->rwv[0] = (__m128i *) (((unsigned long int) om->rwv_mem + 15) & (~0xf)); + om->twv = (__m128i *) (((unsigned long int) om->twv_mem + 15) & (~0xf)); + om->rfv[0] = (__m128 *) (((unsigned long int) om->rfv_mem + 15) & (~0xf)); + om->tfv = (__m128 *) (((unsigned long int) om->tfv_mem + 15) & (~0xf)); + + /* set the rest of the row pointers for match emissions */ + for (x = 1; x < abc->Kp; x++) { + om->rbv[x] = om->rbv[0] + (x * nqb); + om->sbv[x] = om->sbv[0] + (x * nqs); + om->rwv[x] = om->rwv[0] + (x * nqw); + om->rfv[x] = om->rfv[0] + (x * nqf); + } + om->allocQ16 = nqb; + om->allocQ8 = nqw; + om->allocQ4 = nqf; + + /* Remaining initializations */ + om->tbm_b = 0; + om->tec_b = 0; + om->tjb_b = 0; + om->scale_b = 0.0f; + om->base_b = 0; + om->bias_b = 0; + + om->scale_w = 0.0f; + om->base_w = 0; + om->ddbound_w = 0; + om->ncj_roundoff = 0.0f; + + for (x = 0; x < p7_NOFFSETS; x++) om->offs[x] = -1; + for (x = 0; x < p7_NEVPARAM; x++) om->evparam[x] = p7_EVPARAM_UNSET; + for (x = 0; x < p7_NCUTOFFS; x++) om->cutoff[x] = p7_CUTOFF_UNSET; + for (x = 0; x < p7_MAXABET; x++) om->compo[x] = p7_COMPO_UNSET; + + om->name = NULL; + om->acc = NULL; + om->desc = NULL; + + /* in a P7_OPROFILE, we always allocate for the optional RF, CS annotation. + * we only rely on the leading \0 to signal that it's unused, but + * we initialize all this memory to zeros to shut valgrind up about + * fwrite'ing uninitialized memory in the io functions. + */ + ESL_ALLOC(om->rf, sizeof(char) * (allocM+2)); + ESL_ALLOC(om->mm, sizeof(char) * (allocM+2)); + ESL_ALLOC(om->cs, sizeof(char) * (allocM+2)); + ESL_ALLOC(om->consensus, sizeof(char) * (allocM+2)); + memset(om->rf, '\0', sizeof(char) * (allocM+2)); + memset(om->mm, '\0', sizeof(char) * (allocM+2)); + memset(om->cs, '\0', sizeof(char) * (allocM+2)); + memset(om->consensus,'\0', sizeof(char) * (allocM+2)); + + om->abc = abc; + om->L = 0; + om->M = 0; + om->max_length = -1; + om->allocM = allocM; + om->mode = p7_NO_MODE; + om->nj = 0.0f; + return om; + + ERROR: + p7_oprofile_Destroy(om); + return NULL; +} + +/* Function: p7_oprofile_IsLocal() + * Synopsis: Returns TRUE if profile is in local alignment mode. + * Incept: SRE, Sat Aug 16 08:46:00 2008 [Janelia] + */ +int +p7_oprofile_IsLocal(const P7_OPROFILE *om) +{ + if (om->mode == p7_LOCAL || om->mode == p7_UNILOCAL) return TRUE; + return FALSE; +} + + + +/* Function: p7_oprofile_Destroy() + * Synopsis: Frees an optimized profile structure. + * Incept: SRE, Sun Nov 25 12:22:21 2007 [Casa de Gatos] + */ +void +p7_oprofile_Destroy(P7_OPROFILE *om) +{ + if (om == NULL) return; + + if (om->clone == 0) + { + if (om->rbv_mem != NULL) free(om->rbv_mem); + if (om->sbv_mem != NULL) free(om->sbv_mem); + if (om->rwv_mem != NULL) free(om->rwv_mem); + if (om->twv_mem != NULL) free(om->twv_mem); + if (om->rfv_mem != NULL) free(om->rfv_mem); + if (om->tfv_mem != NULL) free(om->tfv_mem); + if (om->rbv != NULL) free(om->rbv); + if (om->sbv != NULL) free(om->sbv); + if (om->rwv != NULL) free(om->rwv); + if (om->rfv != NULL) free(om->rfv); + if (om->name != NULL) free(om->name); + if (om->acc != NULL) free(om->acc); + if (om->desc != NULL) free(om->desc); + if (om->rf != NULL) free(om->rf); + if (om->mm != NULL) free(om->mm); + if (om->cs != NULL) free(om->cs); + if (om->consensus != NULL) free(om->consensus); + } + + free(om); +} + +/* Function: p7_oprofile_Sizeof() + * Synopsis: Return the allocated size of a . + * Incept: SRE, Wed Mar 2 10:09:21 2011 [Janelia] + * + * Purpose: Returns the allocated size of a , + * in bytes. + */ +size_t +p7_oprofile_Sizeof(P7_OPROFILE *om) +{ + size_t n = 0; + int nqb = om->allocQ16; /* # of uchar vectors needed for query */ + int nqw = om->allocQ8; /* # of sword vectors needed for query */ + int nqf = om->allocQ4; /* # of float vectors needed for query */ + int nqs = nqb + p7O_EXTRA_SB; + + /* Stuff below exactly mirrors the malloc()'s in + * p7_oprofile_Create(); so even though we could + * write this more compactly, leave it like this + * w/ one:one correspondence to _Create(), for + * maintainability and clarity. + */ + n += sizeof(P7_OPROFILE); + n += sizeof(__m128i) * nqb * om->abc->Kp +15; /* om->rbv_mem */ + n += sizeof(__m128i) * nqs * om->abc->Kp +15; /* om->sbv_mem */ + n += sizeof(__m128i) * nqw * om->abc->Kp +15; /* om->rwv_mem */ + n += sizeof(__m128i) * nqw * p7O_NTRANS +15; /* om->twv_mem */ + n += sizeof(__m128) * nqf * om->abc->Kp +15; /* om->rfv_mem */ + n += sizeof(__m128) * nqf * p7O_NTRANS +15; /* om->tfv_mem */ + + n += sizeof(__m128i *) * om->abc->Kp; /* om->rbv */ + n += sizeof(__m128i *) * om->abc->Kp; /* om->sbv */ + n += sizeof(__m128i *) * om->abc->Kp; /* om->rwv */ + n += sizeof(__m128 *) * om->abc->Kp; /* om->rfv */ + + n += sizeof(char) * (om->allocM+2); /* om->rf */ + n += sizeof(char) * (om->allocM+2); /* om->mm */ + n += sizeof(char) * (om->allocM+2); /* om->cs */ + n += sizeof(char) * (om->allocM+2); /* om->consensus */ + + return n; +} + + +/* TODO: this is not following the _Copy interface guidelines; it's a _Clone */ +/* TODO: its documentation header is a cut/paste of _Create; FIXME */ +/* Function: p7_oprofile_Copy() + * Synopsis: Allocate an optimized profile structure. + * Incept: SRE, Sun Nov 25 12:03:19 2007 [Casa de Gatos] + * + * Purpose: Allocate for profiles of up to nodes for digital alphabet . + * + * Throws: on allocation error. + */ +P7_OPROFILE * +p7_oprofile_Copy(P7_OPROFILE *om1) +{ + int x, y; + int status; + + int nqb = p7O_NQB(om1->allocM); /* # of uchar vectors needed for query */ + int nqw = p7O_NQW(om1->allocM); /* # of sword vectors needed for query */ + int nqf = p7O_NQF(om1->allocM); /* # of float vectors needed for query */ + int nqs = nqb + p7O_EXTRA_SB; + + size_t size = sizeof(char) * (om1->allocM+2); + + P7_OPROFILE *om2 = NULL; + + const ESL_ALPHABET *abc = om1->abc; + + /* level 0 */ + ESL_ALLOC(om2, sizeof(P7_OPROFILE)); + om2->rbv_mem = NULL; + om2->sbv_mem = NULL; + om2->rwv_mem = NULL; + om2->twv_mem = NULL; + om2->rfv_mem = NULL; + om2->tfv_mem = NULL; + om2->rbv = NULL; + om2->sbv = NULL; + om2->rwv = NULL; + om2->twv = NULL; + om2->rfv = NULL; + om2->tfv = NULL; + + /* level 1 */ + ESL_ALLOC(om2->rbv_mem, sizeof(__m128i) * nqb * abc->Kp +15); /* +15 is for manual 16-byte alignment */ + ESL_ALLOC(om2->sbv_mem, sizeof(__m128i) * nqs * abc->Kp +15); + ESL_ALLOC(om2->rwv_mem, sizeof(__m128i) * nqw * abc->Kp +15); + ESL_ALLOC(om2->twv_mem, sizeof(__m128i) * nqw * p7O_NTRANS +15); + ESL_ALLOC(om2->rfv_mem, sizeof(__m128) * nqf * abc->Kp +15); + ESL_ALLOC(om2->tfv_mem, sizeof(__m128) * nqf * p7O_NTRANS +15); + + ESL_ALLOC(om2->rbv, sizeof(__m128i *) * abc->Kp); + ESL_ALLOC(om2->sbv, sizeof(__m128i *) * abc->Kp); + ESL_ALLOC(om2->rwv, sizeof(__m128i *) * abc->Kp); + ESL_ALLOC(om2->rfv, sizeof(__m128 *) * abc->Kp); + + /* align vector memory on 16-byte boundaries */ + om2->rbv[0] = (__m128i *) (((unsigned long int) om2->rbv_mem + 15) & (~0xf)); + om2->sbv[0] = (__m128i *) (((unsigned long int) om2->sbv_mem + 15) & (~0xf)); + om2->rwv[0] = (__m128i *) (((unsigned long int) om2->rwv_mem + 15) & (~0xf)); + om2->twv = (__m128i *) (((unsigned long int) om2->twv_mem + 15) & (~0xf)); + om2->rfv[0] = (__m128 *) (((unsigned long int) om2->rfv_mem + 15) & (~0xf)); + om2->tfv = (__m128 *) (((unsigned long int) om2->tfv_mem + 15) & (~0xf)); + + /* copy the vector data */ + memcpy(om2->rbv[0], om1->rbv[0], sizeof(__m128i) * nqb * abc->Kp); + memcpy(om2->sbv[0], om1->sbv[0], sizeof(__m128i) * nqs * abc->Kp); + memcpy(om2->rwv[0], om1->rwv[0], sizeof(__m128i) * nqw * abc->Kp); + memcpy(om2->rfv[0], om1->rfv[0], sizeof(__m128i) * nqf * abc->Kp); + + /* set the rest of the row pointers for match emissions */ + for (x = 1; x < abc->Kp; x++) { + om2->rbv[x] = om2->rbv[0] + (x * nqb); + om2->sbv[x] = om2->sbv[0] + (x * nqs); + om2->rwv[x] = om2->rwv[0] + (x * nqw); + om2->rfv[x] = om2->rfv[0] + (x * nqf); + } + om2->allocQ16 = nqb; + om2->allocQ8 = nqw; + om2->allocQ4 = nqf; + + /* Remaining initializations */ + om2->tbm_b = om1->tbm_b; + om2->tec_b = om1->tec_b; + om2->tjb_b = om1->tjb_b; + om2->scale_b = om1->scale_b; + om2->base_b = om1->base_b; + om2->bias_b = om1->bias_b; + + om2->scale_w = om1->scale_w; + om2->base_w = om1->base_w; + om2->ddbound_w = om1->ddbound_w; + om2->ncj_roundoff = om1->ncj_roundoff; + + for (x = 0; x < p7_NOFFSETS; x++) om2->offs[x] = om1->offs[x]; + for (x = 0; x < p7_NEVPARAM; x++) om2->evparam[x] = om1->evparam[x]; + for (x = 0; x < p7_NCUTOFFS; x++) om2->cutoff[x] = om1->cutoff[x]; + for (x = 0; x < p7_MAXABET; x++) om2->compo[x] = om1->compo[x]; + + for (x = 0; x < nqw * p7O_NTRANS; ++x) om2->twv[x] = om1->twv[x]; + for (x = 0; x < nqf * p7O_NTRANS; ++x) om2->tfv[x] = om1->tfv[x]; + + for (x = 0; x < p7O_NXSTATES; x++) + for (y = 0; y < p7O_NXTRANS; y++) + { + om2->xw[x][y] = om1->xw[x][y]; + om2->xf[x][y] = om1->xf[x][y]; + } + + if ((status = esl_strdup(om1->name, -1, &om2->name)) != eslOK) goto ERROR; + if ((status = esl_strdup(om1->acc, -1, &om2->acc)) != eslOK) goto ERROR; + if ((status = esl_strdup(om1->desc, -1, &om2->desc)) != eslOK) goto ERROR; + + /* in a P7_OPROFILE, we always allocate for the optional RF, CS annotation. + * we only rely on the leading \0 to signal that it's unused, but + * we initialize all this memory to zeros to shut valgrind up about + * fwrite'ing uninitialized memory in the io functions. + */ + ESL_ALLOC(om2->rf, size); + ESL_ALLOC(om2->mm, size); + ESL_ALLOC(om2->cs, size); + ESL_ALLOC(om2->consensus, size); + + memcpy(om2->rf, om1->rf, size); + memcpy(om2->mm, om1->mm, size); + memcpy(om2->cs, om1->cs, size); + memcpy(om2->consensus, om1->consensus, size); + + om2->abc = om1->abc; + om2->L = om1->L; + om2->M = om1->M; + om2->allocM = om1->allocM; + om2->mode = om1->mode; + om2->nj = om1->nj; + om2->max_length = om1->max_length; + + om2->clone = om1->clone; + + return om2; + + ERROR: + p7_oprofile_Destroy(om2); + return NULL; +} + +/* Function: p7_oprofile_Clone() + * Synopsis: Allocate a cloned copy of the optimized profile structure. All + * allocated memory from the original profile is not reallocated. + * The cloned copy will point to the same memory as the original. + * Incept: SRE, Sun Nov 25 12:03:19 2007 [Casa de Gatos] + * + * Purpose: Quick copy of an optimized profile used in mutiple threads. + * + * Throws: on allocation error. + */ +P7_OPROFILE * +p7_oprofile_Clone(const P7_OPROFILE *om1) +{ + int status; + + P7_OPROFILE *om2 = NULL; + + ESL_ALLOC(om2, sizeof(P7_OPROFILE)); + memcpy(om2, om1, sizeof(P7_OPROFILE)); + + om2->clone = 1; + + return om2; + + ERROR: + p7_oprofile_Destroy(om2); + return NULL; +} + + +/* Function: p7_oprofile_UpdateFwdEmissionScores() + * Synopsis: Update the Forward/Backward part of the optimized profile + * match emissions to account for new background distribution. + * + * Purpose: This implementation re-orders the loops used to access/modify + * the rfv array relative to how it's accessed for example in + * fb_conversion(), to minimize the required size of sc_arr. + * + * Args: om - optimized profile to be updated. + * bg - the new bg distribution + * fwd_emissions - precomputed Fwd (float) residue emission + * probabilities in serial order (gathered from + * the optimized striped with + * p7_oprofile_GetFwdEmissionArray() ). + * sc_arr Preallocated array of at least Kp*4 floats + */ +int +p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr) +{ + int M = om->M; /* length of the query */ + int k, q, x, z; + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int K = om->abc->K; + int Kp = om->abc->Kp; + union { __m128 v; float x[4]; } tmp; /* used to align and load simd minivectors */ + + + for (k = 1, q = 0; q < nq; q++, k++) { + + //First compute the core characters of the alphabet + for (x = 0; x < K; x++) { + for (z = 0; z < 4; z++) { + if (k+ z*nq <= M) sc_arr[z*Kp + x] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]); + else sc_arr[z*Kp + x] = -eslINFINITY; + + tmp.x[z] = sc_arr[z*Kp + x]; + } + om->rfv[x][q] = esl_sse_expf(tmp.v); + + } + + /* gap, nonresidue, and missing data residue codes don't get set by FExpectScVec(), + * so do them + */ + for (z = 0; z < 4; z++) + { + sc_arr[z*Kp + K] = -eslINFINITY; /* gap char - */ + sc_arr[z*Kp + (Kp - 2)] = -eslINFINITY; /* nonresidue * */ + sc_arr[z*Kp + (Kp - 1)] = -eslINFINITY; /* missing data ~ */ + } + + // Then compute corresponding scores for ambiguity codes. + for (z = 0; z < 4; z++) + esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f); + + //finish off the interleaved values + for (x = K; x < Kp; x++) { + for (z = 0; z < 4; z++) + tmp.x[z] = sc_arr[z*Kp + x]; // computed in FExpectScVec call above + om->rfv[x][q] = esl_sse_expf(tmp.v); + } + } + + return eslOK; +} + + +/* Function: p7_oprofile_UpdateVitEmissionScores() + * Synopsis: Update the Viterbi part of the optimized profile match + * emissions to account for new background distribution. + *. + * Purpose: This implementation re-orders the loops used to access/modify + * the rmv array relative to how it's accessed for example in + * vf_conversion(), to minimize the required size of sc_arr. + * + * Args: om - optimized profile to be updated. + * bg - the new bg distribution + * fwd_emissions - precomputed Fwd (float) residue emission + * probabilities in serial order (gathered from + * the optimized striped with + * p7_oprofile_GetFwdEmissionArray() ). + * sc_arr Preallocated array of at least Kp*8 floats + */ +int +p7_oprofile_UpdateVitEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr) +{ + int M = om->M; /* length of the query */ + int k, q, x, z; + int nq = p7O_NQW(M); /* segment length; total # of striped vectors needed */ + int K = om->abc->K; + int Kp = om->abc->Kp; + int idx; + union { __m128i v; int16_t i[8]; } tmp; /* used to align and load simd minivectors */ + + for (k = 1, q = 0; q < nq; q++, k++) { + + //First compute the core characters of the alphabet + for (x = 0; x < K; x++) { + for (z = 0; z < 8; z++) { + idx = z*Kp + x; + if (k+ z*nq <= M) { + sc_arr[idx] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]); + tmp.i[z] = wordify(om, sc_arr[idx]); + } + else + { + sc_arr[idx] = -eslINFINITY; + tmp.i[z] = -32768; + } + + } + om->rwv[x][q] = tmp.v; + + } + + // Then compute corresponding scores for ambiguity codes. + for (z = 0; z < 8; z++) + esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f); + + //finish off the interleaved values + for (x = K; x < Kp; x++) { + for (z = 0; z < 8; z++) { + idx = z*Kp + x; + if (x==K || x>Kp-3 || sc_arr[idx] == -eslINFINITY) + tmp.i[z] = -32768; + else + tmp.i[z] = wordify(om, sc_arr[idx]); + } + om->rwv[x][q] = tmp.v; + } + } + + return eslOK; +} + + + +/* Function: p7_oprofile_UpdateMSVEmissionScores() + * Synopsis: Update the MSV part of the optimized profile match + * emissions to account for new background distribution. + *. + * Purpose: This implementation re-orders the loops used to access/modify + * the rbv array relative to how it's accessed for example in + * mf_conversion(), to minimize the required size of sc_arr. + * + * Args: om - optimized profile to be updated. + * bg - the new bg distribution + * fwd_emissions - precomputed Fwd (float) residue emission + * probabilities in serial order (gathered from + * the optimized striped with + * p7_oprofile_GetFwdEmissionArray() ). + * sc_arr Preallocated array of at least Kp*16 floats + */ +int +p7_oprofile_UpdateMSVEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr) +{ + int M = om->M; /* length of the query */ + int k, q, x, z; + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + int K = om->abc->K; + int Kp = om->abc->Kp; + int idx; + float max = 0.0; /* maximum residue score: used for unsigned emission score bias */ + union { __m128i v; uint8_t i[16]; } tmp; /* used to align and load simd minivectors */ + + + /* First we determine the basis for the limited-precision MSVFilter scoring system. + * Default: 1/3 bit units, base offset 190: range 0..255 => -190..65 => -63.3..21.7 bits + * See J2/66, J4/138 for analysis. + * This depends on having computed scores. I do this in a first pass, to get the max + * score ... then re-compute those scores so they can be converted to 8bit scores + */ + for (k = 1, q = 0; q < nq; q++, k++) { + for (x = 0; x < K; x++) { + for (z = 0; z < 16; z++) { + idx = z*Kp + x; + if (k+ z*nq <= M && !(om->mm && om->mm[(k+z*nq)]=='m')) + max = ESL_MAX(max, log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x])); + } + } + } + om->scale_b = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */ + om->base_b = 190; + om->bias_b = unbiased_byteify(om, -1.0 * max); + + for (k = 1, q = 0; q < nq; q++, k++) { + + //First compute the core characters of the alphabet + for (x = 0; x < K; x++) { + for (z = 0; z < 16; z++) { + idx = z*Kp + x; + if (k+ z*nq <= M) { + sc_arr[idx] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]); + tmp.i[z] = biased_byteify(om, sc_arr[idx]); + } + else + { + sc_arr[idx] = -eslINFINITY; + tmp.i[z] = 255; + } + + } + om->rbv[x][q] = tmp.v; + + } + + // Then compute corresponding scores for ambiguity codes. + for (z = 0; z < 16; z++) + esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f); + + //finish off the interleaved values + for (x = K; x < Kp; x++) { + for (z = 0; z < 16; z++) { + idx = z*Kp + x; + if (x==K || x>Kp-3 || sc_arr[idx] == -eslINFINITY) + tmp.i[z] = 255; + else + tmp.i[z] = biased_byteify(om, sc_arr[idx]); + } + om->rbv[x][q] = tmp.v; + } + } + + sf_conversion(om); + + return eslOK; +} + + +/*----------------- end, P7_OPROFILE structure ------------------*/ + + + +/***************************************************************** + * 2. Conversion from generic P7_PROFILE to optimized P7_OPROFILE + *****************************************************************/ + +/* biased_byteify() + * Converts original log-odds residue score to a rounded biased uchar cost. + * Match emission scores for MSVFilter get this treatment. + * e.g. a score of +3.2, with scale 3.0 and bias 12, becomes 2. + * 3.2*3 = 9.6; rounded = 10; bias-10 = 2. + * When used, we add the bias, then subtract this cost. + * (A cost of +255 is our -infinity "prohibited event") + */ +static uint8_t +biased_byteify(P7_OPROFILE *om, float sc) +{ + uint8_t b; + + sc = -1.0f * roundf(om->scale_b * sc); /* ugh. sc is now an integer cost represented in a float... */ + b = (sc > 255 - om->bias_b) ? 255 : (uint8_t) sc + om->bias_b; /* and now we cast, saturate, and bias it to an unsigned char cost... */ + return b; +} + +/* unbiased_byteify() + * Convert original transition score to a rounded uchar cost + * Transition scores for MSVFilter get this treatment. + * e.g. a score of -2.1, with scale 3.0, becomes a cost of 6. + * (A cost of +255 is our -infinity "prohibited event") + */ +static uint8_t +unbiased_byteify(P7_OPROFILE *om, float sc) +{ + uint8_t b; + + sc = -1.0f * roundf(om->scale_b * sc); /* ugh. sc is now an integer cost represented in a float... */ + b = (sc > 255.) ? 255 : (uint8_t) sc; /* and now we cast and saturate it to an unsigned char cost... */ + return b; +} + +/* wordify() + * Converts log probability score to a rounded signed 16-bit integer cost. + * Both emissions and transitions for ViterbiFilter get this treatment. + * No bias term needed, because we use signed words. + * e.g. a score of +3.2, with scale 500.0, becomes +1600. + */ +static int16_t +wordify(P7_OPROFILE *om, float sc) +{ + sc = roundf(om->scale_w * sc); + if (sc >= 32767.0) return 32767; + else if (sc <= -32768.0) return -32768; + else return (int16_t) sc; +} + + +/* sf_conversion(): + * Author: Bjarne Knudsen + * + * Generates the SSVFilter() parts of the profile scores + * from the completed MSV score. This includes calculating + * special versions of the match scores for using the the + * ssv filter. + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +static int +sf_conversion(P7_OPROFILE *om) +{ + int M = om->M; /* length of the query */ + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + __m128i tmp; + __m128i tmp2; + + /* We now want to fill out om->sbv with om->rbv - bias for use in the + * SSV filter. The only challenge is that the om->rbv values are + * unsigned and generally use the whole scale while the om->sbv + * values are signed. To solve that problem we perform the following + * calculation: + * + * ((127 + bias) - rbv) ^ 127 + * + * where the subtraction is unsigned saturated and the addition is + * unsigned (it will not overflow, since bias is a small positive + * number). The f(x) = x ^ 127 combined with a change from unsigned + * to signed numbers have the same effect as f(x) = -x + 127. So if + * we regard the above as signed instead of unsigned it is equal to: + * + * -((127 + bias) - rbv) + 127 = rbv - bias + * + * which is what we want. The reason for this slightly complex idea + * is that we wish the transformation to be fast, especially for + * hmmscan where many models are loaded. + */ + + tmp = _mm_set1_epi8((int8_t) (om->bias_b + 127)); + tmp2 = _mm_set1_epi8(127); + + for (x = 0; x < om->abc->Kp; x++) + { + for (q = 0; q < nq; q++) om->sbv[x][q] = _mm_xor_si128(_mm_subs_epu8(tmp, om->rbv[x][q]), tmp2); + for (q = nq; q < nq + p7O_EXTRA_SB; q++) om->sbv[x][q] = om->sbv[x][q % nq]; + } + + return eslOK; +} + +/* mf_conversion(): + * + * This builds the MSVFilter() parts of the profile , scores + * in lspace uchars (16-way parallel), by rescaling, rounding, and + * casting the scores in . + * + * Returns on success; + * throws if hasn't been allocated properly. + */ +static int +mf_conversion(const P7_PROFILE *gm, P7_OPROFILE *om) +{ + int M = gm->M; /* length of the query */ + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + float max = 0.0; /* maximum residue score: used for unsigned emission score bias */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int z; /* counter within elements of one SIMD minivector */ + union { __m128i v; uint8_t i[16]; } tmp; /* used to align and load simd minivectors */ + + if (nq > om->allocQ16) ESL_EXCEPTION(eslEINVAL, "optimized profile is too small to hold conversion"); + + /* First we determine the basis for the limited-precision MSVFilter scoring system. + * Default: 1/3 bit units, base offset 190: range 0..255 => -190..65 => -63.3..21.7 bits + * See J2/66, J4/138 for analysis. + */ + for (x = 0; x < gm->abc->K; x++) max = ESL_MAX(max, esl_vec_FMax(gm->rsc[x], (M+1)*2)); + om->scale_b = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */ + om->base_b = 190; + om->bias_b = unbiased_byteify(om, -1.0 * max); + + /* striped match costs: start at k=1. */ + for (x = 0; x < gm->abc->Kp; x++) + { + for (q = 0, k = 1; q < nq; q++, k++) + { + for (z = 0; z < 16; z++) tmp.i[z] = ((k+ z*nq <= M) ? biased_byteify(om, p7P_MSC(gm, k+z*nq, x)) : 255); + om->rbv[x][q] = tmp.v; + } + } + + /* transition costs */ + om->tbm_b = unbiased_byteify(om, logf(2.0f / ((float) gm->M * (float) (gm->M+1)))); /* constant B->Mk penalty */ + om->tec_b = unbiased_byteify(om, logf(0.5f)); /* constant multihit E->C = E->J */ + om->tjb_b = unbiased_byteify(om, logf(3.0f / (float) (gm->L+3))); /* this adopts the L setting of the parent profile */ + + sf_conversion(om); + + return eslOK; +} + + +/* vf_conversion(): + * + * This builds the ViterbiFilter() parts of the profile , scores + * in lspace swords (8-way parallel), by rescaling, rounding, and + * casting the scores in . + * + * Returns on success; + * throws if hasn't been allocated properly. + */ +static int +vf_conversion(const P7_PROFILE *gm, P7_OPROFILE *om) +{ + int M = gm->M; /* length of the query */ + int nq = p7O_NQW(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int kb; /* possibly offset base k for loading om's TSC vectors */ + int z; /* counter within elements of one SIMD minivector */ + int t; /* counter over transitions 0..7 = p7O_{BM,MM,IM,DM,MD,MI,II,DD}*/ + int tg; /* transition index in gm */ + int j; /* counter in interleaved vector arrays in the profile */ + int ddtmp; /* used in finding worst DD transition bound */ + int16_t maxval; /* used to prevent zero cost II */ + int16_t val; + union { __m128i v; int16_t i[8]; } tmp; /* used to align and load simd minivectors */ + + if (nq > om->allocQ8) ESL_EXCEPTION(eslEINVAL, "optimized profile is too small to hold conversion"); + + /* First set the basis for the limited-precision scoring system. + * Default: 1/500 bit units, base offset 12000: range -32768..32767 => -44768..20767 => -89.54..41.53 bits + * See J4/138 for analysis. + */ + om->scale_w = 500.0 / eslCONST_LOG2; + om->base_w = 12000; + + /* striped match scores */ + for (x = 0; x < gm->abc->Kp; x++) + for (k = 1, q = 0; q < nq; q++, k++) + { + for (z = 0; z < 8; z++) tmp.i[z] = ((k+ z*nq <= M) ? wordify(om, p7P_MSC(gm, k+z*nq, x)) : -32768); + om->rwv[x][q] = tmp.v; + } + + /* Transition costs, all but the DD's. */ + for (j = 0, k = 1, q = 0; q < nq; q++, k++) + { + for (t = p7O_BM; t <= p7O_II; t++) /* this loop of 7 transitions depends on the order in p7o_tsc_e */ + { + switch (t) { + case p7O_BM: tg = p7P_BM; kb = k-1; maxval = 0; break; /* gm has tBMk stored off by one! start from k=0 not 1 */ + case p7O_MM: tg = p7P_MM; kb = k-1; maxval = 0; break; /* MM, DM, IM vectors are rotated by -1, start from k=0 */ + case p7O_IM: tg = p7P_IM; kb = k-1; maxval = 0; break; + case p7O_DM: tg = p7P_DM; kb = k-1; maxval = 0; break; + case p7O_MD: tg = p7P_MD; kb = k; maxval = 0; break; /* the remaining ones are straight up */ + case p7O_MI: tg = p7P_MI; kb = k; maxval = 0; break; + case p7O_II: tg = p7P_II; kb = k; maxval = -1; break; + } + + for (z = 0; z < 8; z++) { + val = ((kb+ z*nq < M) ? wordify(om, p7P_TSC(gm, kb+ z*nq, tg)) : -32768); + tmp.i[z] = (val <= maxval) ? val : maxval; /* do not allow an II transition cost of 0, or hell may occur. */ + } + om->twv[j++] = tmp.v; + } + } + + /* Finally the DD's, which are at the end of the optimized tsc vector; (j is already sitting there) */ + for (k = 1, q = 0; q < nq; q++, k++) + { + for (z = 0; z < 8; z++) tmp.i[z] = ((k+ z*nq < M) ? wordify(om, p7P_TSC(gm, k+ z*nq, p7P_DD)) : -32768); + om->twv[j++] = tmp.v; + } + + /* Specials. (Actually in same order in om and gm, but we copy in general form anyway.) */ + /* VF CC,NN,JJ transitions hardcoded zero; -3.0 nat approximation used instead; this papers + * over a length independence problem, where the approximation weirdly outperforms the + * exact solution, probably indicating that the model's Pascal distribution is problematic, + * and the "approximation" is in fact closer to the One True Model, the mythic H4 supermodel. + * [xref J5/36] + */ + om->xw[p7O_E][p7O_LOOP] = wordify(om, gm->xsc[p7P_E][p7P_LOOP]); + om->xw[p7O_E][p7O_MOVE] = wordify(om, gm->xsc[p7P_E][p7P_MOVE]); + om->xw[p7O_N][p7O_MOVE] = wordify(om, gm->xsc[p7P_N][p7P_MOVE]); + om->xw[p7O_N][p7O_LOOP] = 0; /* was wordify(om, gm->xsc[p7P_N][p7P_LOOP]); */ + om->xw[p7O_C][p7O_MOVE] = wordify(om, gm->xsc[p7P_C][p7P_MOVE]); + om->xw[p7O_C][p7O_LOOP] = 0; /* was wordify(om, gm->xsc[p7P_C][p7P_LOOP]); */ + om->xw[p7O_J][p7O_MOVE] = wordify(om, gm->xsc[p7P_J][p7P_MOVE]); + om->xw[p7O_J][p7O_LOOP] = 0; /* was wordify(om, gm->xsc[p7P_J][p7P_LOOP]); */ + + om->ncj_roundoff = 0.0; /* goes along with NN=CC=JJ=0, -3.0 nat approximation */ + /* otherwise, would be = om->scale_w * gm->xsc[p7P_N][p7P_LOOP] - om->xw[p7O_N][p7O_LOOP]; */ + /* see J4/150 for discussion of VF error suppression, superceded by the -3.0 nat approximation */ + + /* Transition score bound for "lazy F" DD path evaluation (xref J2/52) */ + om->ddbound_w = -32768; + for (k = 2; k < M-1; k++) + { + ddtmp = (int) wordify(om, p7P_TSC(gm, k, p7P_DD)); + ddtmp += (int) wordify(om, p7P_TSC(gm, k+1, p7P_DM)); + ddtmp -= (int) wordify(om, p7P_TSC(gm, k+1, p7P_BM)); + om->ddbound_w = ESL_MAX(om->ddbound_w, ddtmp); + } + + return eslOK; +} + + +/* fb_conversion() + * This builds the Forward/Backward part of the optimized profile , + * where we use odds ratios (not log-odds scores). + */ +static int +fb_conversion(const P7_PROFILE *gm, P7_OPROFILE *om) +{ + int M = gm->M; /* length of the query */ + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int kb; /* possibly offset base k for loading om's TSC vectors */ + int z; /* counter within elements of one SIMD minivector */ + int t; /* counter over transitions 0..7 = p7O_{BM,MM,IM,DM,MD,MI,II,DD}*/ + int tg; /* transition index in gm */ + int j; /* counter in interleaved vector arrays in the profile */ + union { __m128 v; float x[4]; } tmp; /* used to align and load simd minivectors */ + + if (nq > om->allocQ4) ESL_EXCEPTION(eslEINVAL, "optimized profile is too small to hold conversion"); + + /* striped match scores: start at k=1 */ + for (x = 0; x < gm->abc->Kp; x++) + for (k = 1, q = 0; q < nq; q++, k++) + { + for (z = 0; z < 4; z++) tmp.x[z] = (k+ z*nq <= M) ? p7P_MSC(gm, k+z*nq, x) : -eslINFINITY; + om->rfv[x][q] = esl_sse_expf(tmp.v); + } + + + /* Transition scores, all but the DD's. */ + for (j = 0, k = 1, q = 0; q < nq; q++, k++) + { + for (t = p7O_BM; t <= p7O_II; t++) /* this loop of 7 transitions depends on the order in the definition of p7o_tsc_e */ + { + switch (t) { + case p7O_BM: tg = p7P_BM; kb = k-1; break; /* gm has tBMk stored off by one! start from k=0 not 1 */ + case p7O_MM: tg = p7P_MM; kb = k-1; break; /* MM, DM, IM quads are rotated by -1, start from k=0 */ + case p7O_IM: tg = p7P_IM; kb = k-1; break; + case p7O_DM: tg = p7P_DM; kb = k-1; break; + case p7O_MD: tg = p7P_MD; kb = k; break; /* the remaining ones are straight up */ + case p7O_MI: tg = p7P_MI; kb = k; break; + case p7O_II: tg = p7P_II; kb = k; break; + } + + for (z = 0; z < 4; z++) tmp.x[z] = (kb+z*nq < M) ? p7P_TSC(gm, kb+z*nq, tg) : -eslINFINITY; + om->tfv[j++] = esl_sse_expf(tmp.v); + } + } + + /* And finally the DD's, which are at the end of the optimized tfv vector; (j is already there) */ + for (k = 1, q = 0; q < nq; q++, k++) + { + for (z = 0; z < 4; z++) tmp.x[z] = (k+z*nq < M) ? p7P_TSC(gm, k+z*nq, p7P_DD) : -eslINFINITY; + om->tfv[j++] = esl_sse_expf(tmp.v); + } + + /* Specials. (These are actually in exactly the same order in om and + * gm, but we copy in general form anyway.) + */ + om->xf[p7O_E][p7O_LOOP] = expf(gm->xsc[p7P_E][p7P_LOOP]); + om->xf[p7O_E][p7O_MOVE] = expf(gm->xsc[p7P_E][p7P_MOVE]); + om->xf[p7O_N][p7O_LOOP] = expf(gm->xsc[p7P_N][p7P_LOOP]); + om->xf[p7O_N][p7O_MOVE] = expf(gm->xsc[p7P_N][p7P_MOVE]); + om->xf[p7O_C][p7O_LOOP] = expf(gm->xsc[p7P_C][p7P_LOOP]); + om->xf[p7O_C][p7O_MOVE] = expf(gm->xsc[p7P_C][p7P_MOVE]); + om->xf[p7O_J][p7O_LOOP] = expf(gm->xsc[p7P_J][p7P_LOOP]); + om->xf[p7O_J][p7O_MOVE] = expf(gm->xsc[p7P_J][p7P_MOVE]); + + return eslOK; +} + + +/* Function: p7_oprofile_Convert() + * Synopsis: Converts standard profile to an optimized one. + * Incept: SRE, Mon Nov 26 07:38:57 2007 [Janelia] + * + * Purpose: Convert a standard profile to an optimized profile , + * where has already been allocated for a profile of at + * least M> nodes and the same emission alphabet abc>. + * + * Args: gm - profile to optimize + * om - allocated optimized profile for holding the result. + * + * Returns: on success. + * + * Throws: if , aren't compatible. + * on allocation failure. + */ +int +p7_oprofile_Convert(const P7_PROFILE *gm, P7_OPROFILE *om) +{ + int status, z; + + /* Set these first so they are available in the following calls */ + om->mode = gm->mode; + om->L = gm->L; + om->M = gm->M; + om->nj = gm->nj; + om->max_length = gm->max_length; + + if (gm->abc->type != om->abc->type) ESL_EXCEPTION(eslEINVAL, "alphabets of the two profiles don't match"); + if (gm->M > om->allocM) ESL_EXCEPTION(eslEINVAL, "oprofile is too small"); + + if ((status = mf_conversion(gm, om)) != eslOK) return status; /* MSVFilter()'s information */ + if ((status = vf_conversion(gm, om)) != eslOK) return status; /* ViterbiFilter()'s information */ + if ((status = fb_conversion(gm, om)) != eslOK) return status; /* ForwardFilter()'s information */ + + if (om->name != NULL) free(om->name); + if (om->acc != NULL) free(om->acc); + if (om->desc != NULL) free(om->desc); + if ((status = esl_strdup(gm->name, -1, &(om->name))) != eslOK) goto ERROR; + if ((status = esl_strdup(gm->acc, -1, &(om->acc))) != eslOK) goto ERROR; + if ((status = esl_strdup(gm->desc, -1, &(om->desc))) != eslOK) goto ERROR; + strcpy(om->rf, gm->rf); + strcpy(om->mm, gm->mm); + strcpy(om->cs, gm->cs); + strcpy(om->consensus, gm->consensus); + for (z = 0; z < p7_NEVPARAM; z++) om->evparam[z] = gm->evparam[z]; + for (z = 0; z < p7_NCUTOFFS; z++) om->cutoff[z] = gm->cutoff[z]; + for (z = 0; z < p7_MAXABET; z++) om->compo[z] = gm->compo[z]; + + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_oprofile_ReconfigLength() + * Synopsis: Set the target sequence length of a model. + * Incept: SRE, Thu Dec 20 09:56:40 2007 [Janelia] + * + * Purpose: Given an already configured model , quickly reset its + * expected length distribution for a new mean target sequence + * length of . + * + * This doesn't affect the length distribution of the null + * model. That must also be reset, using . + * + * We want this routine to run as fast as possible, because + * this call is in the critical path: it must be called at + * each new target sequence in a database search. + * + * Returns: on success. Costs/scores for N,C,J transitions are set + * here. + */ +int +p7_oprofile_ReconfigLength(P7_OPROFILE *om, int L) +{ + int status; + if ((status = p7_oprofile_ReconfigMSVLength (om, L)) != eslOK) return status; + if ((status = p7_oprofile_ReconfigRestLength(om, L)) != eslOK) return status; + return eslOK; +} + +/* Function: p7_oprofile_ReconfigMSVLength() + * Synopsis: Set the target sequence length of the MSVFilter part of the model. + * Incept: SRE, Tue Dec 16 13:39:17 2008 [Janelia] + * + * Purpose: Given an already configured model , quickly reset its + * expected length distribution for a new mean target sequence + * length of , only for the part of the model that's used + * for the accelerated MSV filter. + * + * The acceleration pipeline uses this to defer reconfiguring the + * length distribution of the main model, mostly because hmmscan + * reads the model in two pieces, MSV part first, then the rest. + * + * Returns: on success. + */ +int +p7_oprofile_ReconfigMSVLength(P7_OPROFILE *om, int L) +{ + om->tjb_b = unbiased_byteify(om, logf(3.0f / (float) (L+3))); + return eslOK; +} + +/* Function: p7_oprofile_ReconfigRestLength() + * Synopsis: Set the target sequence length of the main profile. + * Incept: SRE, Tue Dec 16 13:41:30 2008 [Janelia] + * + * Purpose: Given an already configured model , quickly reset its + * expected length distribution for a new mean target sequence + * length of , for everything except the MSV filter part + * of the model. + * + * Calling then + * is equivalent to + * just calling . The two + * part version is used in the acceleration pipeline. + * + * Returns: on success. + */ +int +p7_oprofile_ReconfigRestLength(P7_OPROFILE *om, int L) +{ + float pmove, ploop; + + pmove = (2.0f + om->nj) / ((float) L + 2.0f + om->nj); /* 2/(L+2) for sw; 3/(L+3) for fs */ + ploop = 1.0f - pmove; + + /* ForwardFilter() parameters: pspace floats */ + om->xf[p7O_N][p7O_LOOP] = om->xf[p7O_C][p7O_LOOP] = om->xf[p7O_J][p7O_LOOP] = ploop; + om->xf[p7O_N][p7O_MOVE] = om->xf[p7O_C][p7O_MOVE] = om->xf[p7O_J][p7O_MOVE] = pmove; + + /* ViterbiFilter() parameters: lspace signed 16-bit ints */ + om->xw[p7O_N][p7O_MOVE] = om->xw[p7O_C][p7O_MOVE] = om->xw[p7O_J][p7O_MOVE] = wordify(om, logf(pmove)); + /* om->xw[p7O_N][p7O_LOOP] = om->xw[p7O_C][p7O_LOOP] = om->xw[p7O_J][p7O_LOOP] = wordify(om, logf(ploop)); */ /* 3nat approx in force: these stay 0 */ + /* om->ncj_roundoff = (om->scale_w * logf(ploop)) - om->xw[p7O_N][p7O_LOOP]; */ /* and this does too */ + + om->L = L; + return eslOK; +} + + +/* Function: p7_oprofile_ReconfigMultihit() + * Synopsis: Quickly reconfig model into multihit mode for target length . + * Incept: SRE, Thu Aug 21 10:04:07 2008 [Janelia] + * + * Purpose: Given a profile that's already been configured once, + * quickly reconfigure it into a multihit mode for target + * length . + * + * This gets called in domain definition, when we need to + * flip the model in and out of unihit mode to + * process individual domains. + * + * Note: You can't just flip uni/multi mode alone, because that + * parameterization also affects target length + * modeling. You need to make sure uni vs. multi choice is + * made before the length model is set, and you need to + * make sure the length model is recalculated if you change + * the uni/multi mode. Hence, these functions call + * . + */ +int +p7_oprofile_ReconfigMultihit(P7_OPROFILE *om, int L) +{ + om->xf[p7O_E][p7O_MOVE] = 0.5; + om->xf[p7O_E][p7O_LOOP] = 0.5; + om->nj = 1.0f; + + om->xw[p7O_E][p7O_MOVE] = wordify(om, -eslCONST_LOG2); + om->xw[p7O_E][p7O_LOOP] = wordify(om, -eslCONST_LOG2); + + return p7_oprofile_ReconfigLength(om, L); +} + +/* Function: p7_oprofile_ReconfigUnihit() + * Synopsis: Quickly reconfig model into unihit mode for target length . + * Incept: SRE, Thu Aug 21 10:10:32 2008 [Janelia] + * + * Purpose: Given a profile that's already been configured once, + * quickly reconfigure it into a unihit mode for target + * length . + * + * This gets called in domain definition, when we need to + * flip the model in and out of unihit mode to + * process individual domains. + */ +int +p7_oprofile_ReconfigUnihit(P7_OPROFILE *om, int L) +{ + om->xf[p7O_E][p7O_MOVE] = 1.0f; + om->xf[p7O_E][p7O_LOOP] = 0.0f; + om->nj = 0.0f; + + om->xw[p7O_E][p7O_MOVE] = 0; + om->xw[p7O_E][p7O_LOOP] = -32768; + + return p7_oprofile_ReconfigLength(om, L); +} +/*------------ end, conversions to P7_OPROFILE ------------------*/ + +/******************************************************************* +* 3. Conversion from optimized P7_OPROFILE to compact score arrays + *******************************************************************/ + +/* Function: p7_oprofile_GetFwdTransitionArray() + * Synopsis: Retrieve full 32-bit float transition probabilities from an + * optimized profile into a flat array + * + * Purpose: Extract an array of (e.g. p7O_II) transition probabilities + * from the underlying profile. In SIMD implementations, + * these are striped and interleaved, making them difficult to + * directly access. + * + * Args: - optimized profile, containing transition information + * - transition type (e.g. p7O_II) + * - preallocated array into which floats will be placed + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr ) +{ + int nq = p7O_NQF(om->M); /* # of striped vectors needed */ + int i, j; + union { __m128 v; float x[4]; } tmp; /* used to align and read simd minivectors */ + + + for (i=0; itfv[ (type==p7O_DD ? nq*7+i : type+7*i) ]; + for (j=0; j<4; j++) + if ( i+1+ j*nq < om->M+1) + arr[i+1+ j*nq] = tmp.x[j]; + } + + return eslOK; + +} + +/* Function: p7_oprofile_GetSSVEmissionScoreArray() + * Synopsis: Retrieve MSV residue emission scores from an optimized + * profile into an array + * + * Purpose: Extract an implicitly 2D array of 8-bit int SSV residue + * emission scores from an optimized profile . must + * be allocated by the calling function to be of size + * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array + * is done as [om->abc->Kp * i + c ] for character c at + * position i. + * + * In SIMD implementations, the residue scores are striped + * and interleaved, making them somewhat difficult to + * directly access. Faster access is desired, for example, + * in SSV back-tracking of a high-scoring diagonal + * + * Args: - optimized profile, containing transition information + * - preallocated array into which scores will be placed + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr ) +{ + int x, q, z, k; + union { __m128i v; uint8_t i[16]; } tmp; /* used to align and read simd minivectors */ + int M = om->M; /* length of the query */ + int K = om->abc->Kp; + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + int cell_cnt = (om->M + 1) * K; + + for (x = 0; x < K ; x++) { + for (q = 0, k = 1; q < nq; q++, k++) { + tmp.v = om->rbv[x][q]; + for (z=0; z<16; z++) + if ( (K * (k+z*nq) + x) < cell_cnt) + arr[ K * (k+z*nq) + x ] = tmp.i[z]; + } + } + + return eslOK; +} + + +/* Function: p7_oprofile_GetFwdEmissionScoreArray() + * Synopsis: Retrieve Fwd (float) residue emission scores from an optimized + * profile into an array + * + * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue + * emission scores from an optimized profile . must + * be allocated by the calling function to be of size + * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array + * is done as [om->abc->Kp * i + c ] for character c at + * position i. + * + * In SIMD implementations, the residue scores are striped + * and interleaved, making them somewhat difficult to + * directly access. + * + * Args: - optimized profile, containing transition information + * - preallocated array into which scores will be placed + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr ) +{ + int x, q, z, k; + union { __m128 v; float f[4]; } tmp; /* used to align and read simd minivectors */ + int M = om->M; /* length of the query */ + int K = om->abc->Kp; + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int cell_cnt = (om->M + 1) * K; + + for (x = 0; x < K; x++) { + for (q = 0, k = 1; q < nq; q++, k++) { + tmp.v = esl_sse_logf(om->rfv[x][q]); + for (z = 0; z < 4; z++) + if ( (K * (k+z*nq) + x) < cell_cnt) + arr[ K * (k+z*nq) + x ] = tmp.f[z]; + } + } + + return eslOK; +} + +/* Function: p7_oprofile_GetFwdEmissionArray() + * Synopsis: Retrieve Fwd (float) residue emission values from an optimized + * profile into an array + * + * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue + * emission values from an optimized profile , converting + * back to emission values based on the background. must + * be allocated by the calling function to be of size + * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array + * is done as [om->abc->Kp * i + c ] for character c at + * position i. + * + * In SIMD implementations, the residue scores are striped + * and interleaved, making them somewhat difficult to + * directly access. + * + * Args: - optimized profile, containing transition information + * - background frequencies + * - preallocated array into which scores will be placed + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr ) +{ + int x, q, z, k; + union { __m128 v; float f[4]; } tmp; /* used to align and read simd minivectors */ + int M = om->M; /* length of the query */ + int Kp = om->abc->Kp; + int K = om->abc->K; + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int cell_cnt = (om->M + 1) * Kp; + + for (x = 0; x < K; x++) { + for (q = 0, k = 1; q < nq; q++, k++) { + tmp.v = om->rfv[x][q]; + for (z = 0; z < 4; z++) + if ( (Kp * (k+z*nq) + x) < cell_cnt) + arr[ Kp * (k+z*nq) + x ] = tmp.f[z] * bg->f[x]; + } + } + + //degeneracy emissions for each position + for (x = 0; x <= M; x++) + esl_abc_FExpectScVec(om->abc, arr+Kp*x, bg->f); + + return eslOK; +} + + +/*------------ end, conversions from P7_OPROFILE ------------------*/ + + +/***************************************************************** + * 4. Debugging and development utilities. + *****************************************************************/ + + +/* oprofile_dump_mf() + * + * Dump the MSVFilter part of a profile to . + */ +static int +oprofile_dump_mf(FILE *fp, const P7_OPROFILE *om) +{ + int M = om->M; /* length of the query */ + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* counter over nodes 1..M */ + int z; /* counter within elements of one SIMD minivector */ + union { __m128i v; uint8_t i[16]; } tmp; /* used to align and read simd minivectors */ + + /* Header (rearranged column numbers, in the vectors) */ + fprintf(fp, " "); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 16; z++) + if (k+z*nq <= M) fprintf(fp, "%4d ", k+z*nq); + else fprintf(fp, "%4s ", "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + + /* Table of residue emissions */ + for (x = 0; x < om->abc->Kp; x++) + { + fprintf(fp, "(%c): ", om->abc->sym[x]); + + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + _mm_store_si128(&tmp.v, om->rbv[x][q]); + for (z = 0; z < 16; z++) fprintf(fp, "%4d ", tmp.i[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + } + fprintf(fp, "\n"); + + fprintf(fp, "t_EC,EJ: %4d\n", om->tec_b); + fprintf(fp, "t_NB,JB,CT: %4d\n", om->tjb_b); + fprintf(fp, "t_BMk: %4d\n", om->tbm_b); + fprintf(fp, "scale: %.2f\n", om->scale_b); + fprintf(fp, "base: %4d\n", om->base_b); + fprintf(fp, "bias: %4d\n", om->bias_b); + fprintf(fp, "Q: %4d\n", nq); + fprintf(fp, "M: %4d\n", M); + return eslOK; +} + + + +/* oprofile_dump_vf() + * + * Dump the ViterbiFilter part of a profile to . + */ +static int +oprofile_dump_vf(FILE *fp, const P7_OPROFILE *om) +{ + int M = om->M; /* length of the query */ + int nq = p7O_NQW(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int kb; /* possibly offset base k for loading om's TSC vectors */ + int z; /* counter within elements of one SIMD minivector */ + int t; /* counter over transitions 0..7 = p7O_{BM,MM,IM,DM,MD,MI,II,DD}*/ + int j; /* counter in interleaved vector arrays in the profile */ + union { __m128i v; int16_t i[8]; } tmp; /* used to align and read simd minivectors */ + + /* Emission score header (rearranged column numbers, in the vectors) */ + fprintf(fp, " "); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 8; z++) + if (k+z*nq <= M) fprintf(fp, "%6d ", k+z*nq); + else fprintf(fp, "%6s ", "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + + /* Table of residue emissions */ + for (x = 0; x < om->abc->Kp; x++) + { + fprintf(fp, "(%c): ", om->abc->sym[x]); + + /* Match emission scores (insert emissions are assumed zero by design) */ + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + _mm_store_si128(&tmp.v, om->rwv[x][q]); + for (z = 0; z < 8; z++) fprintf(fp, "%6d ", tmp.i[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + } + fprintf(fp, "\n"); + + /* Transitions */ + for (t = p7O_BM; t <= p7O_II; t++) + { + switch (t) { + case p7O_BM: fprintf(fp, "\ntBM: "); break; + case p7O_MM: fprintf(fp, "\ntMM: "); break; + case p7O_IM: fprintf(fp, "\ntIM: "); break; + case p7O_DM: fprintf(fp, "\ntDM: "); break; + case p7O_MD: fprintf(fp, "\ntMD: "); break; + case p7O_MI: fprintf(fp, "\ntMI: "); break; + case p7O_II: fprintf(fp, "\ntII: "); break; + } + + for (k = 1, q = 0; q < nq; q++, k++) + { + switch (t) { + case p7O_BM: kb = k; break; + case p7O_MM: kb = (1 + (nq+k-2)) % nq; break; /* MM, DM, IM quads rotated by +1 */ + case p7O_IM: kb = (1 + (nq+k-2)) % nq; break; + case p7O_DM: kb = (1 + (nq+k-2)) % nq; break; + case p7O_MD: kb = k; break; /* the remaining ones are straight up */ + case p7O_MI: kb = k; break; + case p7O_II: kb = k; break; + } + fprintf(fp, "[ "); + for (z = 0; z < 8; z++) + if (kb+z*nq <= M) fprintf(fp, "%6d ", kb+z*nq); + else fprintf(fp, "%6s ", "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n "); + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + _mm_store_si128(&tmp.v, om->twv[q*7 + t]); + for (z = 0; z < 8; z++) fprintf(fp, "%6d ", tmp.i[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + } + + /* DD transitions */ + fprintf(fp, "\ntDD: "); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 8; z++) + if (k+z*nq <= M) fprintf(fp, "%6d ", k+z*nq); + else fprintf(fp, "%6s ", "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n "); + for (j = nq*7, q = 0; q < nq; q++, j++) + { + fprintf(fp, "[ "); + _mm_store_si128(&tmp.v, om->twv[j]); + for (z = 0; z < 8; z++) fprintf(fp, "%6d ", tmp.i[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + + fprintf(fp, "E->C: %6d E->J: %6d\n", om->xw[p7O_E][p7O_MOVE], om->xw[p7O_E][p7O_LOOP]); + fprintf(fp, "N->B: %6d N->N: %6d\n", om->xw[p7O_N][p7O_MOVE], om->xw[p7O_N][p7O_LOOP]); + fprintf(fp, "J->B: %6d J->J: %6d\n", om->xw[p7O_J][p7O_MOVE], om->xw[p7O_J][p7O_LOOP]); + fprintf(fp, "C->T: %6d C->C: %6d\n", om->xw[p7O_C][p7O_MOVE], om->xw[p7O_C][p7O_LOOP]); + + fprintf(fp, "scale: %6.2f\n", om->scale_w); + fprintf(fp, "base: %6d\n", om->base_w); + fprintf(fp, "bound: %6d\n", om->ddbound_w); + fprintf(fp, "Q: %6d\n", nq); + fprintf(fp, "M: %6d\n", M); + return eslOK; +} + + +/* oprofile_dump_fb() + * + * Dump the Forward/Backward part of a profile to . + * , control the floating point output: + * 8,5 is a reasonable choice for prob space, + * 5,2 is reasonable for log space. + */ +static int +oprofile_dump_fb(FILE *fp, const P7_OPROFILE *om, int width, int precision) +{ + int M = om->M; /* length of the query */ + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int kb; /* possibly offset base k for loading om's TSC vectors */ + int z; /* counter within elements of one SIMD minivector */ + int t; /* counter over transitions 0..7 = p7O_{BM,MM,IM,DM,MD,MI,II,DD}*/ + int j; /* counter in interleaved vector arrays in the profile */ + union { __m128 v; float x[4]; } tmp; /* used to align and read simd minivectors */ + + /* Residue emissions */ + for (x = 0; x < om->abc->Kp; x++) + { + fprintf(fp, "(%c): ", om->abc->sym[x]); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 4; z++) + if (k+z*nq <= M) fprintf(fp, "%*d ", width, k+z*nq); + else fprintf(fp, "%*s ", width, "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\nmat: "); + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + tmp.v = om->rfv[x][q]; + for (z = 0; z < 4; z++) fprintf(fp, "%*.*f ", width, precision, tmp.x[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n\n"); + } + + /* Transitions */ + for (t = p7O_BM; t <= p7O_II; t++) + { + switch (t) { + case p7O_BM: fprintf(fp, "\ntBM: "); break; + case p7O_MM: fprintf(fp, "\ntMM: "); break; + case p7O_IM: fprintf(fp, "\ntIM: "); break; + case p7O_DM: fprintf(fp, "\ntDM: "); break; + case p7O_MD: fprintf(fp, "\ntMD: "); break; + case p7O_MI: fprintf(fp, "\ntMI: "); break; + case p7O_II: fprintf(fp, "\ntII: "); break; + } + for (k = 1, q = 0; q < nq; q++, k++) + { + switch (t) { + case p7O_MM:/* MM, DM, IM quads rotated by +1 */ + case p7O_IM: + case p7O_DM: + kb = (1 + (nq+k-2)) % nq; + break; + case p7O_BM:/* the remaining ones are straight up */ + case p7O_MD: + case p7O_MI: + case p7O_II: + kb = k; + break; + } + fprintf(fp, "[ "); + for (z = 0; z < 4; z++) + if (kb+z*nq <= M) fprintf(fp, "%*d ", width, kb+z*nq); + else fprintf(fp, "%*s ", width, "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n "); + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + tmp.v = om->tfv[q*7 + t]; + for (z = 0; z < 4; z++) fprintf(fp, "%*.*f ", width, precision, tmp.x[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + } + + /* DD transitions */ + fprintf(fp, "\ntDD: "); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 4; z++) + if (k+z*nq <= M) fprintf(fp, "%*d ", width, k+z*nq); + else fprintf(fp, "%*s ", width, "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n "); + for (j = nq*7, q = 0; q < nq; q++, j++) + { + fprintf(fp, "[ "); + tmp.v = om->tfv[j]; + for (z = 0; z < 4; z++) fprintf(fp, "%*.*f ", width, precision, tmp.x[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + + /* Specials */ + fprintf(fp, "E->C: %*.*f E->J: %*.*f\n", width, precision, om->xf[p7O_E][p7O_MOVE], width, precision, om->xf[p7O_E][p7O_LOOP]); + fprintf(fp, "N->B: %*.*f N->N: %*.*f\n", width, precision, om->xf[p7O_N][p7O_MOVE], width, precision, om->xf[p7O_N][p7O_LOOP]); + fprintf(fp, "J->B: %*.*f J->J: %*.*f\n", width, precision, om->xf[p7O_J][p7O_MOVE], width, precision, om->xf[p7O_J][p7O_LOOP]); + fprintf(fp, "C->T: %*.*f C->C: %*.*f\n", width, precision, om->xf[p7O_C][p7O_MOVE], width, precision, om->xf[p7O_C][p7O_LOOP]); + fprintf(fp, "Q: %d\n", nq); + fprintf(fp, "M: %d\n", M); + return eslOK; +} + + +/* Function: p7_oprofile_Dump() + * Synopsis: Dump internals of a + * Incept: SRE, Thu Dec 13 08:49:30 2007 [Janelia] + * + * Purpose: Dump the internals of structure + * to stream ; generally for testing or debugging + * purposes. + * + * Args: fp - output stream (often stdout) + * om - optimized profile to dump + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_Dump(FILE *fp, const P7_OPROFILE *om) +{ + int status; + + fprintf(fp, "Dump of a ::\n"); + + fprintf(fp, "\n -- float part, odds ratios for Forward/Backward:\n"); + if ((status = oprofile_dump_fb(fp, om, 8, 5)) != eslOK) return status; + + fprintf(fp, "\n -- sword part, log odds for ViterbiFilter(): \n"); + if ((status = oprofile_dump_vf(fp, om)) != eslOK) return status; + + fprintf(fp, "\n -- uchar part, log odds for MSVFilter(): \n"); + if ((status = oprofile_dump_mf(fp, om)) != eslOK) return status; + + return eslOK; +} + + +/* Function: p7_oprofile_Sample() + * Synopsis: Sample a random profile. + * Incept: SRE, Wed Jul 30 13:11:52 2008 [Janelia] + * + * Purpose: Sample a random profile of nodes for alphabet , + * using as the source of random numbers. Parameterize + * it for generation of target sequences of mean length + * . Calculate its log-odds scores using background + * model . + * + * Args: r - random number generator + * abc - emission alphabet + * bg - background frequency model + * M - size of sampled profile, in nodes + * L - configured target seq mean length + * opt_hmm - optRETURN: sampled HMM + * opt_gm - optRETURN: sampled normal profile + * opt_om - RETURN: optimized profile + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_Sample(ESL_RANDOMNESS *r, const ESL_ALPHABET *abc, const P7_BG *bg, int M, int L, + P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_OPROFILE **ret_om) +{ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + int status; + + if ((gm = p7_profile_Create (M, abc)) == NULL) { status = eslEMEM; goto ERROR; } + if ((om = p7_oprofile_Create(M, abc)) == NULL) { status = eslEMEM; goto ERROR; } + + if ((status = p7_hmm_Sample(r, M, abc, &hmm)) != eslOK) goto ERROR; + if ((status = p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL)) != eslOK) goto ERROR; + if ((status = p7_oprofile_Convert(gm, om)) != eslOK) goto ERROR; + if ((status = p7_oprofile_ReconfigLength(om, L)) != eslOK) goto ERROR; + + if (opt_hmm != NULL) *opt_hmm = hmm; else p7_hmm_Destroy(hmm); + if (opt_gm != NULL) *opt_gm = gm; else p7_profile_Destroy(gm); + *ret_om = om; + return eslOK; + + ERROR: + if (opt_hmm != NULL) *opt_hmm = NULL; + if (opt_gm != NULL) *opt_gm = NULL; + *ret_om = NULL; + return status; +} + + +/* Function: p7_oprofile_Compare() + * Synopsis: Compare two optimized profiles for equality. + * Incept: SRE, Wed Jan 21 13:29:10 2009 [Janelia] + * + * Purpose: Compare the contents of and ; return + * if they are effectively identical profiles, + * or if not. + * + * Floating point comparisons are done to a tolerance + * of using . + * + * If a comparison fails, an informative error message is + * left in to indicate why. + * + * Internal allocation sizes are not compared, only the + * data. + * + * Args: om1 - one optimized profile to compare + * om2 - the other + * tol - floating point comparison tolerance; see + * errmsg - ptr to array of at least characters. + * + * Returns: on effective equality; on difference. + */ +int +p7_oprofile_Compare(const P7_OPROFILE *om1, const P7_OPROFILE *om2, float tol, char *errmsg) +{ + int Q4 = p7O_NQF(om1->M); + int Q8 = p7O_NQW(om1->M); + int Q16 = p7O_NQB(om1->M); + int q, r, x, y; + union { __m128i v; uint8_t c[16]; } a16, b16; + union { __m128i v; int16_t w[8]; } a8, b8; + union { __m128 v; float x[4]; } a4, b4; + + if (om1->mode != om2->mode) ESL_FAIL(eslFAIL, errmsg, "comparison failed: mode"); + if (om1->L != om2->L) ESL_FAIL(eslFAIL, errmsg, "comparison failed: L"); + if (om1->M != om2->M) ESL_FAIL(eslFAIL, errmsg, "comparison failed: M"); + if (om1->nj != om2->nj) ESL_FAIL(eslFAIL, errmsg, "comparison failed: nj"); + if (om1->abc->type != om2->abc->type) ESL_FAIL(eslFAIL, errmsg, "comparison failed: alphabet type"); + + /* MSVFilter part */ + for (x = 0; x < om1->abc->Kp; x++) + for (q = 0; q < Q16; q++) + { + a16.v = om1->rbv[x][q]; b16.v = om2->rbv[x][q]; + for (r = 0; r < 16; r++) if (a16.c[r] != b16.c[r]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: rb[%d] elem %d", q, r); + } + if (om1->tbm_b != om2->tbm_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tbm_b"); + if (om1->tec_b != om2->tec_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tec_b"); + if (om1->tjb_b != om2->tjb_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tjb_b"); + if (om1->scale_b != om2->scale_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: scale_b"); + if (om1->base_b != om2->base_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: base_b"); + if (om1->bias_b != om2->bias_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: bias_b"); + + /* ViterbiFilter() part */ + for (x = 0; x < om1->abc->Kp; x++) + for (q = 0; q < Q8; q++) + { + a8.v = om1->rwv[x][q]; b8.v = om2->rwv[x][q]; + for (r = 0; r < 8; r++) if (a8.w[r] != b8.w[r]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: rw[%d] elem %d", q, r); + } + for (q = 0; q < 8*Q16; q++) + { + a8.v = om1->twv[q]; b8.v = om2->twv[q]; + for (r = 0; r < 8; r++) if (a8.w[r] != b8.w[r]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tw[%d] elem %d", q, r); + } + for (x = 0; x < p7O_NXSTATES; x++) + for (y = 0; y < p7O_NXTRANS; y++) + if (om1->xw[x][y] != om2->xw[x][y]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: xw[%d][%d]", x, y); + + if (om1->scale_w != om2->scale_w) ESL_FAIL(eslFAIL, errmsg, "comparison failed: scale"); + if (om1->base_w != om2->base_w) ESL_FAIL(eslFAIL, errmsg, "comparison failed: base"); + if (om1->ddbound_w != om2->ddbound_w) ESL_FAIL(eslFAIL, errmsg, "comparison failed: ddbound_w"); + + /* Forward/Backward part */ + for (x = 0; x < om1->abc->Kp; x++) + for (q = 0; q < Q4; q++) + { + a4.v = om1->rfv[x][q]; b4.v = om2->rfv[x][q]; + for (r = 0; r < 4; r++) if (esl_FCompare(a4.x[r], b4.x[r], tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: rf[%d] elem %d", q, r); + } + for (q = 0; q < 8*Q4; q++) + { + a4.v = om1->tfv[q]; b4.v = om2->tfv[q]; + for (r = 0; r < 4; r++) if (a4.x[r] != b4.x[r]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tf[%d] elem %d", q, r); + } + for (x = 0; x < p7O_NXSTATES; x++) + if (esl_vec_FCompare(om1->xf[x], om2->xf[x], p7O_NXTRANS, tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: xf[%d] vector", x); + + for (x = 0; x < p7_NOFFSETS; x++) + if (om1->offs[x] != om2->offs[x]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: offs[%d]", x); + + if (esl_strcmp(om1->name, om2->name) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: name"); + if (esl_strcmp(om1->acc, om2->acc) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: acc"); + if (esl_strcmp(om1->desc, om2->desc) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: desc"); + if (esl_strcmp(om1->rf, om2->rf) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: ref"); + if (esl_strcmp(om1->mm, om2->mm) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: mm"); + if (esl_strcmp(om1->cs, om2->cs) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: cs"); + if (esl_strcmp(om1->consensus, om2->consensus) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: consensus"); + + if (esl_vec_FCompare(om1->evparam, om2->evparam, p7_NEVPARAM, tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: evparam vector"); + if (esl_vec_FCompare(om1->cutoff, om2->cutoff, p7_NCUTOFFS, tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: cutoff vector"); + if (esl_vec_FCompare(om1->compo, om2->compo, p7_MAXABET, tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: compo vector"); + + return eslOK; +} + + +/* Function: p7_profile_SameAsMF() + * Synopsis: Set a generic profile's scores to give MSV scores. + * Incept: SRE, Wed Jul 30 13:42:49 2008 [Janelia] + * + * Purpose: Set a generic profile's scores so that the normal DP + * algorithms will give the same score as : + * all t_MM scores = 0; all other core transitions = -inf; + * multihit local mode; all entries uniformly ; + * scores 0; total approximated later as -3; + * rounded in the same way as the 8-bit limited precision. + * + * Returns: on success. + */ +int +p7_profile_SameAsMF(const P7_OPROFILE *om, P7_PROFILE *gm) +{ + int k,x; + float tbm = roundf(om->scale_b * (log(2.0f / ((float) gm->M * (float) (gm->M+1))))); + + /* Transitions */ + esl_vec_FSet(gm->tsc, p7P_NTRANS * gm->M, -eslINFINITY); + for (k = 1; k < gm->M; k++) p7P_TSC(gm, k, p7P_MM) = 0.0f; + for (k = 0; k < gm->M; k++) p7P_TSC(gm, k, p7P_BM) = tbm; + + /* Emissions */ + for (x = 0; x < gm->abc->Kp; x++) + for (k = 0; k <= gm->M; k++) + { + gm->rsc[x][k*2] = (gm->rsc[x][k*2] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_b * gm->rsc[x][k*2]); + gm->rsc[x][k*2+1] = 0; /* insert score: VF makes it zero no matter what. */ + } + + /* Specials */ + for (k = 0; k < p7P_NXSTATES; k++) + for (x = 0; x < p7P_NXTRANS; x++) + gm->xsc[k][x] = (gm->xsc[k][x] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_b * gm->xsc[k][x]); + + /* NN, CC, JJ hardcoded 0 in limited precision */ + gm->xsc[p7P_N][p7P_LOOP] = gm->xsc[p7P_J][p7P_LOOP] = gm->xsc[p7P_C][p7P_LOOP] = 0; + + return eslOK; +} + + +/* Function: p7_profile_SameAsVF() + * Synopsis: Round a generic profile to match ViterbiFilter scores. + * Incept: SRE, Wed Jul 30 13:37:48 2008 [Janelia] + * + * Purpose: Round all the scores in a generic (lspace) in + * exactly the same way that the scores in the + * were rounded. Then we can test that two profiles + * give identical internal scores in testing, say, + * against . + * + * The 3nat approximation is used; NN=CC=JJ=0, and 3 nats are + * subtracted at the end to account for their contribution. + * + * To convert a generic Viterbi score calculated with this profile + * to a nat score that should match ViterbiFilter() exactly, + * do <(gsc / om->scale_w) - 3.0>. + * + * must be the same profile that was constructed from. + * + * is irrevocably altered by this call. + * + * Do not call this more than once on any given ! + * + * Args: - optimized profile, containing scale information. + * - generic profile that was built from. + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_profile_SameAsVF(const P7_OPROFILE *om, P7_PROFILE *gm) +{ + int k; + int x; + + /* Transitions */ + /* <= -eslINFINITY test is used solely to silence compiler. really testing == -eslINFINITY */ + for (x = 0; x < gm->M*p7P_NTRANS; x++) + gm->tsc[x] = (gm->tsc[x] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_w * gm->tsc[x]); + + /* Enforce the rule that no II can be 0; max of -1 */ + for (x = p7P_II; x < gm->M*p7P_NTRANS; x += p7P_NTRANS) + if (gm->tsc[x] == 0.0) gm->tsc[x] = -1.0; + + /* Emissions */ + for (x = 0; x < gm->abc->Kp; x++) + for (k = 0; k <= gm->M; k++) + { + gm->rsc[x][k*2] = (gm->rsc[x][k*2] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_w * gm->rsc[x][k*2]); + gm->rsc[x][k*2+1] = 0.0; /* insert score: VF makes it zero no matter what. */ + } + + /* Specials */ + for (k = 0; k < p7P_NXSTATES; k++) + for (x = 0; x < p7P_NXTRANS; x++) + gm->xsc[k][x] = (gm->xsc[k][x] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_w * gm->xsc[k][x]); + + /* 3nat approximation: NN, CC, JJ hardcoded 0 in limited precision */ + gm->xsc[p7P_N][p7P_LOOP] = gm->xsc[p7P_J][p7P_LOOP] = gm->xsc[p7P_C][p7P_LOOP] = 0.0; + + return eslOK; +} +/*------------ end, P7_OPROFILE debugging tools ----------------*/ + + + +/***************************************************************** + * 5. Benchmark driver. + *****************************************************************/ + +#ifdef p7OPROFILE_BENCHMARK +/* Timing profile conversion. + gcc -o benchmark-oprofile -std=gnu99 -g -Wall -msse2 -I.. -L.. -I../../easel -L../../easel -Dp7OPROFILE_BENCHMARK\ + p7_oprofile.c -lhmmer -leasel -lm + icc -o benchmark-oprofile -O3 -static -I.. -L.. -I../../easel -L../../easel -Dp7OPROFILE_BENCHMARK p7_oprofile.c -lhmmer -leasel -lm + ./benchmark-sse runs benchmark + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-L", eslARG_INT, "400", NULL, NULL, NULL, NULL, NULL, "length of target sequence", 0 }, + { "-N", eslARG_INT, "100000", NULL, NULL, NULL, NULL, NULL, "number of conversions to time", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for the generic implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + int i; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_oprofile_Convert(gm, om); + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7OPROFILE_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + + + + +/***************************************************************** + * 6. Unit tests + *****************************************************************/ +#ifdef p7OPROFILE_TESTDRIVE + + +#endif /*p7OPROFILE_TESTDRIVE*/ +/*------------------- end, unit tests ---------------------------*/ + + + + +/***************************************************************** + * 7. Test driver + *****************************************************************/ +#ifdef p7OPROFILE_TESTDRIVE + + +#endif /*p7OPROFILE_TESTDRIVE*/ +/*------------------- end, test driver --------------------------*/ + + +/***************************************************************** + * 8. Example + *****************************************************************/ +#ifdef p7OPROFILE_EXAMPLE +/* gcc -std=gnu99 -g -Wall -Dp7OPROFILE_EXAMPLE -I.. -I../../easel -L.. -L../../easel -o p7_oprofile_example p7_oprofile.c -lhmmer -leasel -lm + * ./p7_oprofile_example + */ +#include "p7_config.h" +#include +#include "easel.h" +#include "hmmer.h" + +int +main(int argc, char **argv) +{ + char *hmmfile = argv[1]; + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om1 = NULL; + P7_OPROFILE *om2 = NULL; + int status; + char errbuf[eslERRBUFSIZE]; + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + if (status == eslEFORMAT) p7_Fail("Bad file format in HMM file %s:\n%s\n", hfp->fname, hfp->errbuf); + else if (status == eslEINCOMPAT) p7_Fail("HMM in %s is not in the expected %s alphabet\n", hfp->fname, esl_abc_DecodeType(abc->type)); + else if (status == eslEOF) p7_Fail("Empty HMM file %s? No HMM data found.\n", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s\n", hfp->fname); + + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + om1 = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + p7_oprofile_Convert(gm, om1); + + p7_oprofile_Dump(stdout, om1); + + om2 = p7_oprofile_Copy(om1); + if (p7_oprofile_Compare(om1, om2, 0.001f, errbuf) != eslOK) printf ("ERROR %s\n", errbuf); + + p7_oprofile_Destroy(om1); + p7_oprofile_Destroy(om2); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + return eslOK; +} +#endif /*p7OPROFILE_EXAMPLE*/ +/*----------------------- end, example --------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/ssvfilter.c b/bioinformaticsProject/hmmer/src/impl_sse/ssvfilter.c new file mode 100644 index 0000000..2943dce --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/ssvfilter.c @@ -0,0 +1,926 @@ +/* The SSV filter implementation; SSE version. + * + * Contents: + * 1. Introduction + * 2. p7_SSVFilter() implementation + * + * Bjarne Knudsen, CLC Bio + */ + +/***************************************************************** + * 1. Introduction + *****************************************************************/ + +/* Here is a description of the major ideas going into this + * implementation of the SSV filter. + * + * + * REMOVING THE J STATE + * ==================== + * + * The original MSV filter allows use of the J state to chain together + * multiple matches in different diagonals. Thus, a full match can + * consist of diagonal match followed by the J state and then another + * diagonal match later in the sequence. Going through the J state + * has a certain price so for the full match to contain two different + * diagonal matches connected by the J state, each of the individual + * diagonal matches must score higher than the cost of going through + * the J state. + * + * It turns out that even the best match in a model-sequence + * comparison rarely scores higher than the cost of going through the + * J state. This is the basis of the idea used here, which is to + * completely ignore the J state. To avoid this leading to false + * negatives, we check the resulting maximum score against the cost of + * the going through the J state. In the rare cases where the J state + * may in fact have been used, we return eslNORESULT. This indicates + * to the original J state that it should recalculate the score. + * + * Since removing the J state allows significant improvements in + * speed, the extra overhead of having to go through the original MSV + * filter in about 1% of the cases is not a problem. + * + * Note that for the score to actually be different, we need two + * diagonals to have a high scoring match, but we cannot easily check + * for that. Thus, oftentimes the re-calculated score in the original + * MSV filter will be the same as without the J state. + * + * The code governing the use of the J state in the original filter is: + * + * xEv = _mm_subs_epu8(xEv, tecv); + * xJv = _mm_max_epu8(xJv,xEv); + * xBv = _mm_max_epu8(basev, xJv); + * + * So for an xE value to be high enough to affect xJ, the following + * inequality must be true: + * + * xJ = xE - om->tec_b > om->base_b + * + * We defer this check until the final maximal xE value has been + * calculated. If the above holds true, we return eslNORESULT. + * + * Since the J state is removed, the xBv vector is constant, so we can + * set it once an for all to a vector where all entries are: + * + * om->base_b - om->tjb_b - om->tbm_b + * + * But see the following section for why this is changed for other + * reasons. + * + * + * INTERNAL LOOP ADJUSTMENT AND IMPLICATIONS + * ========================================= + * + * The following assumes that we have already gotten rid of the J + * state. + * + * Here is an analysis of what is going on in the central loop. The + * original code is: + * + * 1: sv = _mm_max_epu8(sv, xBv); + * 2: sv = _mm_adds_epu8(sv, biasv); + * 3: sv = _mm_subs_epu8(sv, *rsc); rsc++; + * 4: xEv = _mm_max_epu8(xEv, sv); + * + * Here is a line by line description: + * + * 1: If sv is below xBv, it is set to xBv. xBv is the begin score, + * which is om->base_b - om->tjb_b - om->tbm_b. + * + * 2: The bias (om->bias_b) is added. This is done since we are + * using unsigned numbers and the score can be both positive and + * negative. The bias is the negative of the highest value the + * real match scores may have. + * + * 3: The match score (and bias) is subtracted. The subtracted score + * must be positive since we using are unsigned bytes, thus the + * score subtracted here is the one adjusted for bias. We also + * progress to the next match score (rsc++). + * + * 4: The global maximum is updated. + * + * When the everything has been traversed, xEv is checked for a number + * of conditions. First, the maximum value is extracted to xE, though. + * + * if xE is greater than or equal to 255 - om->bias_b, there may have + * been an overflow, and the result is reported as infinite. + * + * Since we ignored the J state, we have to check whether it could + * potentially have been used, possibly resulting in a higher + * score. This is the case if (xE - om->tec_b) > om->base_b. The left + * side of the check is the highest score that xJ could have + * attained. In the original MSV filter this score would only have + * affected the begin scores if this xJ value exceeded + * om->base_b. This explains the check. + * + * Now, we optimize this internal loop by using two ideas: + * + * A: Get rid of line 1 by using saturation. This can be done + * because xBv is a constant vector after getting rid of the J + * state. + * + * B: Combine lines 2 and 3 by using a single signed subtraction + * instead of an unsigned addition followed by an unsigned + * subtraction. + * + * It is a challenge that SSE2 does not have a signed byte max + * operation, yet we need to subtract a signed byte in idea B. First + * the new code, then the explanation: + * + * sv = _mm_subs_epi8(sv, *rsc); rsc++; + * xEv = _mm_max_epu8(xEv, sv); + * + * The last line is unchanged, i.e. the overall max is still done as + * an unsigned maximum. The subtraction is saturated to satisfy idea A + * and it is signed to satisfy idea B. + * + * To make the saturation work in the lower end of the scale, the + * begin scores have to equal signed -128 which is the same as + * unsigned 128, or a bit value of 10000000. Thus, we basically shift + * the calculation with a (signed) value of -(om->base_b - om->tjb_b - + * om->tbm_b + 128), which takes the original begin value to -128. + * + * Since we are using an unsigned maximum, the signed saturation at + * +127 will not work. Thus, if the score gets high enough, we are + * going to pass from signed negative values to non-negative values + * without any saturation kicking in. In the unsigned domain this + * basically constitutes an overflow from 255 to 0. This means that we + * may miss a high score of it crosses this boundary. + * + * The highest positive effect that the subtraction can have is to add + * om->bias_b, since this is the highest real match score. So only + * scores strictly higher than 255 - om->bias_b in the unsigned domain + * may cause an overflow. In the signed domain this corresponds to -1 + * - om->bias_b. + * + * When the calculation is all done, we may check xE against this + * boundary to determine if an overflow might have occurred. The other + * thing to consider is the check for whether the J state may have + * been used. This happens when: + * + * (xE + (om->base_b - om->tjb_b - om->tbm_b - 128) - om->tec_b) + * > om->base_b. + * + * <=> xE > om->tjb_b + om->tbm_b + om->tec_b + 128 + * + * Thus, we have these two checks: + * + * xE >= 255 - om->bias_b (possible overflow) + * + * xE > om->tjb_b + om->tbm_b + om->tec_b - 128 (possible J state) + * + * To avoid having to call too many false positives, we do not want + * the overflow to occur before the J state becomes possible. This + * mean that we want: + * + * (Overflow => J state) + * + * <=> 255 - om->bias_b > om->tjb_b + om->tbm_b + om->tec_b + 128 + * + * <=> om->tjb_b + om->tbm_b + om->tec_b + om->bias_b < 127 + * + * The worst case bias is 19, om->tec_B is 3 for a sequence length of + * L and a model length of M, we have: + * + * om->tjb_b = 3 * logf(3 / (L + 3)) + * om->tbm_b = 3 * logf(2 / (M * (M + 1))) + * + * So if the sequence length is L = 1,000,000, the longest possible + * model where the above holds true is M = 482. If the model size is M + * = 2,295 (the largest in Pfam 23.0), the longest sequence length + * where the condition is true is L = 43,786. So, the condition is not + * always true, but typically, it is. And, importantly, it can be + * checked. + * + * A final thing to consider is what to do on an overflow. Since we + * shifted the baseline for the calculation, the question is if an + * overflow is necessarily going to happen in the original MSV + * filter. This is true when our baseline as no higher than the + * original MSV filter baseline. Thus, when the following holds we + * know that an overflow will occur for the original filter: + * + * om->base_b - om->tjb_b - om->tbm_b >= 128 + * + * If it does not hold, we are not sure what the true result is and we + * have to indicate that in the return value. + * + * Since we perform a single signed subtraction instead of an unsigned + * addition followed by in unsigned subtraction, a new set of match + * scores have been introduced in the P7_OPROFILE structure. These are + * called sb where the originals are rb. + * + * + * EXPLANATION OF THE CODE + * ======================= + * + * The basic idea is to traverse the sequence while analyzing only + * enough diagonals that they may residue in registers rather than + * memory. This may require several traversals of the sequence, but + * this is still worth it due to reduced memory access. + * + * So we have a basic calculation concept where we fill out some + * number of adjacent striped diagonal vectors throughout the whole + * sequence. Consider a simple case where we have two registers, A and + * B and they each have only two fields instead of 16. In one sweep of + * a sequence we calculate the following matrix cells: + * + * | BA BA BA BA BA BA BA + * | BA BA BA BA BA BA BA + * |BA BA BA BA BA BA BA + * H |A BA BA BA BA BA BA B + * M | BA BA BA BA BA BA BA + * M | BA BA BA BA BA BA BA + * |BA BA BA BA BA BA BA + * |A BA BA BA BA BA BA B + * ---------------------------- + * Sequence + * + * When the top entry in one of the vectors hits the top, the vector + * must be left shifted to be ready for the next column. This first + * happens to the last vector (B), then in the following round to the + * first vector (A). + * + * This means that the sweep contains two different phases: one where + * vectors are being moved without shifting and then a phase where the + * vectors are being shifted one by one until the have all been + * shifted. If we have Q sets of 16 diagonal and we have w registers + * in use, the first phase takes Q - w rounds and the second phase + * takes w rounds and we are back where we started. This is done until + * the sequence ends. + * + * After having done this, we do another sweep, where we calculate the + * remaining cells: + * + * |BA BA BA BA BA BA BA + * |A BA BA BA BA BA BA B + * | BA BA BA BA BA BA BA + * H | BA BA BA BA BA BA BA + * M |BA BA BA BA BA BA BA + * M |A BA BA BA BA BA BA B + * | BA BA BA BA BA BA BA + * | BA BA BA BA BA BA BA + * ---------------------------- + * Sequence + * + * This sweep is identical to the first, except there is an offset to + * the starting point. We call this offset q which is 2 in this case + * and 0 above). + * + * Apart from the model, sequence, etc., the core calculation has two + * parameters: w and q. If we have three registers and Q = 8, we do + * three sweeps: + * + * sweep 1: q = 0, w = 3 + * sweep 2: q = 3, w = 3 + * sweep 3: q = 6, w = 2 + * + * This covers all diagonals and we are done. + * + * To make the compiler use registers as much as possible, we have to + * be quite specific about what is going on, so we have to make a + * function for each value of w. Since 64 bit machines have 16 xmm + * registers, we need quite a few of these functions. It is also + * possible that some of the diagonals actually end up in memory while + * retaining high performance since a few scattered memory accesses + * are not going to slow things down. + * + * To make the code maintainable, we cannot write out all these + * functions. Instead the are defined via macros. So a function + * definition may look like this: + * + * __m128i calc_band_6(ESL_DSQ *dsq, int L, P7_OPROFILE *om, int q, __m128i beginv, __m128i xEv) + * { + * CALC(RESET_6, STEP_BANDS_6, CONVERT_6, 6) + * } + * + * The parameters are the sequence, its length, the model, the q + * value, a begin vector and the max vector. The return value is the + * updated max vector. The whole body of the function is defined as a + * macro with parameters that are themselves expanded macros (apart + * from the last parameter). + * + * The RESET macro defines and resets the xmm variables in the + * function. It is defined recursively: + * + * #define RESET_1() + * register __m128i sv00 = beginv; + * + * #define RESET_2() + * RESET_1() + * register __m128i sv01 = beginv; + * + * #define RESET_3() + * RESET_2() + * register __m128i sv02 = beginv; + * + * So the variables holding the scores for the diagonals are called + * sv00, sv01, etc. + * + * The next macro is STEP_BANDS, which moves the diagonals. Again, + * this is a recursively defined macro: + * + * #define STEP_BANDS_1() + * STEP_SINGLE(sv00) + * + * #define STEP_BANDS_2() + * STEP_BANDS_1() + * STEP_SINGLE(sv01) + * + * #define STEP_BANDS_3() + * STEP_BANDS_2() + * STEP_SINGLE(sv02) + * + * So we end up using STEP_SINGLE on each vector. This is where the + * central calculation is done as described above: + * + * #define STEP_SINGLE(sv) + * sv = _mm_subs_epi8(sv, *rsc); rsc++; + * xEv = _mm_max_epu8(xEv, sv); + * + * The CONVERT macro handles the second phase mentioned above where + * the vectors have to be shifted. This is yet another recursive + * macro: + * + * #define CONVERT_1(step, LENGTH_CHECK, label) + * CONVERT_STEP(step, LENGTH_CHECK, label, sv00, Q - 1) + * + * #define CONVERT_2(step, LENGTH_CHECK, label) + * CONVERT_STEP(step, LENGTH_CHECK, label, sv01, Q - 2) + * CONVERT_1(step, LENGTH_CHECK, label) + * + * #define CONVERT_3(step, LENGTH_CHECK, label) + * CONVERT_STEP(step, LENGTH_CHECK, label, sv02, Q - 3) + * CONVERT_2(step, LENGTH_CHECK, label) + * + * Here, CONVERT_STEP ends up being called on each vector in reverse + * order. It does the following: + * + * #define CONVERT_STEP(step, LENGTH_CHECK, label, sv, pos) + * length_check(label) + * rsc = om->sbv[dsq[i]] + pos; + * step() + * sv = _mm_slli_si128(sv, 1); + * sv = _mm_or_si128(sv, beginv); + * i++; + * + * First a check is made. This is sometimes used to check whether the + * sequence is done. Then the match score pointer is set. After this, + * STEP_BANDS is called using the step parameter of this + * macro. Finally one vector is shifted and or'ed with the begin + * vector of (128, 128, ... ). This ensures that the zero that was + * shifted in is converted to the needed base line of 128. Other + * entries are not significantly affected by this since either their + * most significant bit is already set or we already had an overflow + * and it does not matter. + * + * Notice that the CONVERT macro ends up stepping the diagonals w + * times, so it handles the whole of phase two. Note also that the + * macro may let rsc overflow since it does not reset rsc after a + * shift operation. This is handled by extending the match score array + * in the P7_OPROFILE by MAX_BANDS - 1 = 17 as defined by the p7O_EXTRA_SB + * constant in that file. + * + * The only macro remaining is the CALC macro which just contains the + * overall function for going through the various phases. Due to the + * starting offset (q), the first Q - q sequence positions have to be + * handled separately. After this follows a number of blocks of length + * Q where we can be efficient and not do a check of whether the + * sequence stops (the NO_CHECK macro indicates this). Finally, at the + * end of the sequence we have to be careful and stop at the right + * time, again using LENGTH_CHECK. + * + * Even though the code is only around 500 lines, it expands to a + * fairly large file when the macros are parsed. For example, + * _mm_subs_epi8() is called 6,840 times even though it is only + * present once in this file. The object file is still not + * ridiculously large. + * + * To better see what is going on, run the preprocessor on this file: + * + * gcc -E ssvfilter.c | sed 's/[;:]/&\n/g' | less + * + * Ignore the warnings and go look for the calc_band_2 function. + * + */ + +#include "p7_config.h" + +#include + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_sse.h" + +#include "hmmer.h" +#include "impl_sse.h" + +/* Note that some ifdefs below has to be changed if these values are + changed. These values are chosen based on some simple speed + tests. Apparently, two registers are generally used for something + else, leaving 14 registers on 64 bit versions and 6 registers on 32 + bit versions. */ +#ifdef __x86_64__ /* 64 bit version */ +#define MAX_BANDS 14 +#else +#define MAX_BANDS 6 +#endif + + +#define STEP_SINGLE(sv) \ + sv = _mm_subs_epi8(sv, *rsc); rsc++; \ + xEv = _mm_max_epu8(xEv, sv); + + +#define LENGTH_CHECK(label) \ + if (i >= L) goto label; + + +#define NO_CHECK(label) + + +#define STEP_BANDS_1() \ + STEP_SINGLE(sv00) + +#define STEP_BANDS_2() \ + STEP_BANDS_1() \ + STEP_SINGLE(sv01) + +#define STEP_BANDS_3() \ + STEP_BANDS_2() \ + STEP_SINGLE(sv02) + +#define STEP_BANDS_4() \ + STEP_BANDS_3() \ + STEP_SINGLE(sv03) + +#define STEP_BANDS_5() \ + STEP_BANDS_4() \ + STEP_SINGLE(sv04) + +#define STEP_BANDS_6() \ + STEP_BANDS_5() \ + STEP_SINGLE(sv05) + +#define STEP_BANDS_7() \ + STEP_BANDS_6() \ + STEP_SINGLE(sv06) + +#define STEP_BANDS_8() \ + STEP_BANDS_7() \ + STEP_SINGLE(sv07) + +#define STEP_BANDS_9() \ + STEP_BANDS_8() \ + STEP_SINGLE(sv08) + +#define STEP_BANDS_10() \ + STEP_BANDS_9() \ + STEP_SINGLE(sv09) + +#define STEP_BANDS_11() \ + STEP_BANDS_10() \ + STEP_SINGLE(sv10) + +#define STEP_BANDS_12() \ + STEP_BANDS_11() \ + STEP_SINGLE(sv11) + +#define STEP_BANDS_13() \ + STEP_BANDS_12() \ + STEP_SINGLE(sv12) + +#define STEP_BANDS_14() \ + STEP_BANDS_13() \ + STEP_SINGLE(sv13) + +#define STEP_BANDS_15() \ + STEP_BANDS_14() \ + STEP_SINGLE(sv14) + +#define STEP_BANDS_16() \ + STEP_BANDS_15() \ + STEP_SINGLE(sv15) + +#define STEP_BANDS_17() \ + STEP_BANDS_16() \ + STEP_SINGLE(sv16) + +#define STEP_BANDS_18() \ + STEP_BANDS_17() \ + STEP_SINGLE(sv17) + + +#define CONVERT_STEP(step, length_check, label, sv, pos) \ + length_check(label) \ + rsc = om->sbv[dsq[i]] + pos; \ + step() \ + sv = _mm_slli_si128(sv, 1); \ + sv = _mm_or_si128(sv, beginv); \ + i++; + + +#define CONVERT_1(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv00, Q - 1) + +#define CONVERT_2(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv01, Q - 2) \ + CONVERT_1(step, LENGTH_CHECK, label) + +#define CONVERT_3(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv02, Q - 3) \ + CONVERT_2(step, LENGTH_CHECK, label) + +#define CONVERT_4(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv03, Q - 4) \ + CONVERT_3(step, LENGTH_CHECK, label) + +#define CONVERT_5(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv04, Q - 5) \ + CONVERT_4(step, LENGTH_CHECK, label) + +#define CONVERT_6(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv05, Q - 6) \ + CONVERT_5(step, LENGTH_CHECK, label) + +#define CONVERT_7(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv06, Q - 7) \ + CONVERT_6(step, LENGTH_CHECK, label) + +#define CONVERT_8(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv07, Q - 8) \ + CONVERT_7(step, LENGTH_CHECK, label) + +#define CONVERT_9(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv08, Q - 9) \ + CONVERT_8(step, LENGTH_CHECK, label) + +#define CONVERT_10(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv09, Q - 10) \ + CONVERT_9(step, LENGTH_CHECK, label) + +#define CONVERT_11(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv10, Q - 11) \ + CONVERT_10(step, LENGTH_CHECK, label) + +#define CONVERT_12(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv11, Q - 12) \ + CONVERT_11(step, LENGTH_CHECK, label) + +#define CONVERT_13(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv12, Q - 13) \ + CONVERT_12(step, LENGTH_CHECK, label) + +#define CONVERT_14(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv13, Q - 14) \ + CONVERT_13(step, LENGTH_CHECK, label) + +#define CONVERT_15(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv14, Q - 15) \ + CONVERT_14(step, LENGTH_CHECK, label) + +#define CONVERT_16(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv15, Q - 16) \ + CONVERT_15(step, LENGTH_CHECK, label) + +#define CONVERT_17(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv16, Q - 17) \ + CONVERT_16(step, LENGTH_CHECK, label) + +#define CONVERT_18(step, LENGTH_CHECK, label) \ + CONVERT_STEP(step, LENGTH_CHECK, label, sv17, Q - 18) \ + CONVERT_17(step, LENGTH_CHECK, label) + + +#define RESET_1() \ + register __m128i sv00 = beginv; + +#define RESET_2() \ + RESET_1() \ + register __m128i sv01 = beginv; + +#define RESET_3() \ + RESET_2() \ + register __m128i sv02 = beginv; + +#define RESET_4() \ + RESET_3() \ + register __m128i sv03 = beginv; + +#define RESET_5() \ + RESET_4() \ + register __m128i sv04 = beginv; + +#define RESET_6() \ + RESET_5() \ + register __m128i sv05 = beginv; + +#define RESET_7() \ + RESET_6() \ + register __m128i sv06 = beginv; + +#define RESET_8() \ + RESET_7() \ + register __m128i sv07 = beginv; + +#define RESET_9() \ + RESET_8() \ + register __m128i sv08 = beginv; + +#define RESET_10() \ + RESET_9() \ + register __m128i sv09 = beginv; + +#define RESET_11() \ + RESET_10() \ + register __m128i sv10 = beginv; + +#define RESET_12() \ + RESET_11() \ + register __m128i sv11 = beginv; + +#define RESET_13() \ + RESET_12() \ + register __m128i sv12 = beginv; + +#define RESET_14() \ + RESET_13() \ + register __m128i sv13 = beginv; + +#define RESET_15() \ + RESET_14() \ + register __m128i sv14 = beginv; + +#define RESET_16() \ + RESET_15() \ + register __m128i sv15 = beginv; + +#define RESET_17() \ + RESET_16() \ + register __m128i sv16 = beginv; + +#define RESET_18() \ + RESET_17() \ + register __m128i sv17 = beginv; + + +#define CALC(reset, step, convert, width) \ + int i; \ + int i2; \ + int Q = p7O_NQB(om->M); \ + __m128i *rsc; \ + \ + int w = width; \ + \ + dsq++; \ + \ + reset() \ + \ + for (i = 0; i < L && i < Q - q - w; i++) \ + { \ + rsc = om->sbv[dsq[i]] + i + q; \ + step() \ + } \ + \ + i = Q - q - w; \ + convert(step, LENGTH_CHECK, done1) \ +done1: \ + \ + for (i2 = Q - q; i2 < L - Q; i2 += Q) \ + { \ + for (i = 0; i < Q - w; i++) \ + { \ + rsc = om->sbv[dsq[i2 + i]] + i; \ + step() \ + } \ + \ + i += i2; \ + convert(step, NO_CHECK, ) \ + } \ + \ + for (i = 0; i2 + i < L && i < Q - w; i++) \ + { \ + rsc = om->sbv[dsq[i2 + i]] + i; \ + step() \ + } \ + \ + i+=i2; \ + convert(step, LENGTH_CHECK, done2) \ +done2: \ + \ + return xEv; + + +__m128i +calc_band_1(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_1, STEP_BANDS_1, CONVERT_1, 1) +} + +__m128i +calc_band_2(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_2, STEP_BANDS_2, CONVERT_2, 2) +} + +__m128i +calc_band_3(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_3, STEP_BANDS_3, CONVERT_3, 3) +} + +__m128i +calc_band_4(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_4, STEP_BANDS_4, CONVERT_4, 4) +} + +__m128i +calc_band_5(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_5, STEP_BANDS_5, CONVERT_5, 5) +} + +__m128i +calc_band_6(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_6, STEP_BANDS_6, CONVERT_6, 6) +} + +#if MAX_BANDS > 6 /* Only include needed functions to limit object file size */ +__m128i +calc_band_7(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_7, STEP_BANDS_7, CONVERT_7, 7) +} + +__m128i +calc_band_8(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_8, STEP_BANDS_8, CONVERT_8, 8) +} + +__m128i +calc_band_9(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_9, STEP_BANDS_9, CONVERT_9, 9) +} + +__m128i +calc_band_10(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_10, STEP_BANDS_10, CONVERT_10, 10) +} + +__m128i +calc_band_11(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_11, STEP_BANDS_11, CONVERT_11, 11) +} + +__m128i +calc_band_12(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_12, STEP_BANDS_12, CONVERT_12, 12) +} + +__m128i +calc_band_13(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_13, STEP_BANDS_13, CONVERT_13, 13) +} + +__m128i +calc_band_14(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_14, STEP_BANDS_14, CONVERT_14, 14) +} +#endif /* MAX_BANDS > 6 */ +#if MAX_BANDS > 14 +__m128i +calc_band_15(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_15, STEP_BANDS_15, CONVERT_15, 15) +} + +__m128i +calc_band_16(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_16, STEP_BANDS_16, CONVERT_16, 16) +} + +__m128i +calc_band_17(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_17, STEP_BANDS_17, CONVERT_17, 17) +} + +__m128i +calc_band_18(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, int q, __m128i beginv, register __m128i xEv) +{ + CALC(RESET_18, STEP_BANDS_18, CONVERT_18, 18) +} +#endif /* MAX_BANDS > 14 */ + + +/***************************************************************** + * 2. p7_SSVFilter() implementation + *****************************************************************/ + +uint8_t +get_xE(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om) +{ + __m128i xEv; /* E state: keeps max for Mk->E as we go */ + __m128i beginv; /* begin scores */ + + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQB(om->M); /* segment length: # of vectors */ + + int bands; /* the number of bands (rounds) to use */ + + int last_q = 0; /* for saving the last q value to find band width */ + int i; /* counter for bands */ + + /* function pointers for the various number of vectors to use */ + __m128i (*fs[MAX_BANDS + 1]) (const ESL_DSQ *, int, const P7_OPROFILE *, int, register __m128i, __m128i) + = {NULL + , calc_band_1, calc_band_2, calc_band_3, calc_band_4, calc_band_5, calc_band_6 +#if MAX_BANDS > 6 + , calc_band_7, calc_band_8, calc_band_9, calc_band_10, calc_band_11, calc_band_12, calc_band_13, calc_band_14 +#endif +#if MAX_BANDS > 14 + , calc_band_15, calc_band_16, calc_band_17, calc_band_18 +#endif + }; + + beginv = _mm_set1_epi8(-128); + xEv = beginv; + + /* Use the highest number of bands but no more than MAX_BANDS */ + bands = (Q + MAX_BANDS - 1) / MAX_BANDS; + + for (i = 0; i < bands; i++) { + q = (Q * (i + 1)) / bands; + + xEv = fs[q-last_q](dsq, L, om, last_q, beginv, xEv); + + last_q = q; + } + + return esl_sse_hmax_epu8(xEv); +} + + +int +p7_SSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, float *ret_sc) +{ + /* Use 16 bit values to avoid overflow due to moved baseline */ + uint16_t xE; + uint16_t xJ; + + if (om->tjb_b + om->tbm_b + om->tec_b + om->bias_b >= 127) { + /* the optimizations are not guaranteed to work under these + conditions (see comments at start of file) */ + return eslENORESULT; + } + + xE = get_xE(dsq, L, om); + + if (xE >= 255 - om->bias_b) + { + /* We have an overflow. */ + *ret_sc = eslINFINITY; + if (om->base_b - om->tjb_b - om->tbm_b < 128) + { + /* The original MSV filter may not overflow, so we are not sure our result is correct */ + return eslENORESULT; + } + + /* We know that the overflow will also occur in the original MSV filter */ + return eslERANGE; + } + + xE += om->base_b - om->tjb_b - om->tbm_b; + xE -= 128; + + if (xE >= 255 - om->bias_b) + { + /* We know that the result will overflow in the original MSV filter */ + *ret_sc = eslINFINITY; + return eslERANGE; + } + + xJ = xE - om->tec_b; + + if (xJ > om->base_b) return eslENORESULT; /* The J state could have been used, so doubt about score */ + + /* finally C->T, and add our missing precision on the NN,CC,JJ back */ + *ret_sc = ((float) (xJ - om->tjb_b) - (float) om->base_b); + *ret_sc /= om->scale_b; + *ret_sc -= 3.0; /* that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ */ + + return eslOK; +} + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/stotrace.c b/bioinformaticsProject/hmmer/src/impl_sse/stotrace.c new file mode 100644 index 0000000..e639568 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/stotrace.c @@ -0,0 +1,650 @@ +/* SSE implementation of stochastic backtrace of a Forward matrix. + * (Compare generic version, p7_GStochasticTrace().) + * + * Contents: + * 1. Stochastic trace implementation. + * 2. Selection of steps in the traceback. + * 3. Benchmark driver. + * 4. Unit tests. + * 5. Test driver. + * 6. Example. + * + * SRE, Fri Aug 15 08:02:43 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_random.h" +#include "esl_sse.h" +#include "esl_vectorops.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static inline int select_m(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_d(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_i(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_n(int i); +static inline int select_c(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i); +static inline int select_j(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i); +static inline int select_e(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int *ret_k); +static inline int select_b(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i); + + +/***************************************************************** + * 1. Stochastic trace implementation. + *****************************************************************/ + +/* Function: p7_StochasticTrace() + * Synopsis: Sample a traceback from a Forward matrix + * Incept: SRE, Fri Aug 8 17:40:18 2008 [UA217, IAD-SFO] + * + * Purpose: Perform a stochastic traceback from Forward matrix , + * using random number generator , in order to sample an + * alignment of model to digital sequence of + * length . + * + * The sampled traceback is returned in

, which the + * caller provides with at least an initial allocation; + * the allocation will be grown as needed here. + * + * Args: r - source of random numbers + * dsq - digital sequence being aligned, 1..L + * L - length of dsq + * om - profile + * ox - Forward matrix to trace, LxM + * tr - storage for the recovered traceback + * + * Returns: on success + * + * Throws: on allocation error. + * on several types of problems, including: + * the trace isn't empty (wasn't Reuse()'d); + */ +int +p7_StochasticTrace(ESL_RANDOMNESS *rng, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *ox, + P7_TRACE *tr) +{ + int i; /* position in sequence 1..L */ + int k; /* position in model 1..M */ + int s0, s1; /* choice of a state */ + int status; + + if (tr->N != 0) ESL_EXCEPTION(eslEINVAL, "trace not empty; needs to be Reuse()'d?"); + + i = L; + k = 0; + if ((status = p7_trace_Append(tr, p7T_T, k, i)) != eslOK) return status; + if ((status = p7_trace_Append(tr, p7T_C, k, i)) != eslOK) return status; + s0 = tr->st[tr->N-1]; + while (s0 != p7T_S) + { + switch (s0) { + case p7T_M: s1 = select_m(rng, om, ox, i, k); k--; i--; break; + case p7T_D: s1 = select_d(rng, om, ox, i, k); k--; break; + case p7T_I: s1 = select_i(rng, om, ox, i, k); i--; break; + case p7T_N: s1 = select_n(i); break; + case p7T_C: s1 = select_c(rng, om, ox, i); break; + case p7T_J: s1 = select_j(rng, om, ox, i); break; + case p7T_E: s1 = select_e(rng, om, ox, i, &k); break; + case p7T_B: s1 = select_b(rng, om, ox, i); break; + default: ESL_EXCEPTION(eslEINVAL, "bogus state in traceback"); + } + if (s1 == -1) ESL_EXCEPTION(eslEINVAL, "Stochastic traceback choice failed"); + + if ((status = p7_trace_Append(tr, s1, k, i)) != eslOK) return status; + + if ( (s1 == p7T_N || s1 == p7T_J || s1 == p7T_C) && s1 == s0) i--; + s0 = s1; + } /* end traceback, at S state */ + + tr->M = om->M; + tr->L = L; + return p7_trace_Reverse(tr); +} +/*------------------ end, stochastic traceback ------------------*/ + + +/***************************************************************** + * 2. Selection of steps in the traceback + *****************************************************************/ +/* The guts of the stochastic backtrace function is broken out in + * pieces: each select_?() function randomly selects one of the + * possible paths, according to their probability, and returns the + * index of the state we move to next. + */ + +/* M(i,k) is reached from B(i-1), M(i-1,k-1), D(i-1,k-1), or I(i-1,k-1). */ +static inline int +select_m(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell M(i,k) */ + int r = (k-1) / Q; + __m128 *tp = om->tfv + 7*q; /* *tp now at start of transitions to cur cell M(i,k) */ + __m128 xBv = _mm_set1_ps(ox->xmx[(i-1)*p7X_NXCELLS+p7X_B]); + __m128 zerov = _mm_setzero_ps(); + __m128 mpv, dpv, ipv; + union { __m128 v; float p[4]; } u; + float path[4]; + int state[4] = { p7T_B, p7T_M, p7T_I, p7T_D }; + + if (q > 0) { + mpv = ox->dpf[i-1][(q-1)*3 + p7X_M]; + dpv = ox->dpf[i-1][(q-1)*3 + p7X_D]; + ipv = ox->dpf[i-1][(q-1)*3 + p7X_I]; + } else { + mpv = esl_sse_rightshift_ps(ox->dpf[i-1][(Q-1)*3 + p7X_M], zerov); + dpv = esl_sse_rightshift_ps(ox->dpf[i-1][(Q-1)*3 + p7X_D], zerov); + ipv = esl_sse_rightshift_ps(ox->dpf[i-1][(Q-1)*3 + p7X_I], zerov); + } + + u.v = _mm_mul_ps(xBv, *tp); tp++; path[0] = u.p[r]; + u.v = _mm_mul_ps(mpv, *tp); tp++; path[1] = u.p[r]; + u.v = _mm_mul_ps(ipv, *tp); tp++; path[2] = u.p[r]; + u.v = _mm_mul_ps(dpv, *tp); path[3] = u.p[r]; + esl_vec_FNorm(path, 4); + return state[esl_rnd_FChoose(rng, path, 4)]; +} + +/* D(i,k) is reached from M(i, k-1) or D(i,k-1). */ +static inline int +select_d(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell D(i,k) */ + int r = (k-1) / Q; + __m128 zerov = _mm_setzero_ps(); + __m128 mpv, dpv; + __m128 tmdv, tddv; + union { __m128 v; float p[4]; } u; + float path[2]; + int state[2] = { p7T_M, p7T_D }; + + if (q > 0) { + mpv = ox->dpf[i][(q-1)*3 + p7X_M]; + dpv = ox->dpf[i][(q-1)*3 + p7X_D]; + tmdv = om->tfv[7*(q-1) + p7O_MD]; + tddv = om->tfv[7*Q + (q-1)]; + } else { + mpv = esl_sse_rightshift_ps(ox->dpf[i][(Q-1)*3 + p7X_M], zerov); + dpv = esl_sse_rightshift_ps(ox->dpf[i][(Q-1)*3 + p7X_D], zerov); + tmdv = esl_sse_rightshift_ps(om->tfv[7*(Q-1) + p7O_MD], zerov); + tddv = esl_sse_rightshift_ps(om->tfv[8*Q-1], zerov); + } + + u.v = _mm_mul_ps(mpv, tmdv); path[0] = u.p[r]; + u.v = _mm_mul_ps(dpv, tddv); path[1] = u.p[r]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} + +/* I(i,k) is reached from M(i-1, k) or I(i-1,k). */ +static inline int +select_i(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell D(i,k) */ + int r = (k-1) / Q; + __m128 mpv = ox->dpf[i-1][q*3 + p7X_M]; + __m128 ipv = ox->dpf[i-1][q*3 + p7X_I]; + __m128 *tp = om->tfv + 7*q + p7O_MI; + union { __m128 v; float p[4]; } u; + float path[2]; + int state[2] = { p7T_M, p7T_I }; + + u.v = _mm_mul_ps(mpv, *tp); tp++; path[0] = u.p[r]; + u.v = _mm_mul_ps(ipv, *tp); path[1] = u.p[r]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} + +/* N(i) must come from N(i-1) for i>0; else it comes from S */ +static inline int +select_n(int i) +{ + if (i == 0) return p7T_S; + else return p7T_N; +} + +/* C(i) is reached from E(i) or C(i-1). */ +static inline int +select_c(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i) +{ + float path[2]; + int state[2] = { p7T_C, p7T_E }; + + path[0] = ox->xmx[(i-1)*p7X_NXCELLS+p7X_C] * om->xf[p7O_C][p7O_LOOP]; + path[1] = ox->xmx[ i*p7X_NXCELLS+p7X_E] * om->xf[p7O_E][p7O_MOVE] * ox->xmx[i*p7X_NXCELLS+p7X_SCALE]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} + +/* J(i) is reached from E(i) or J(i-1). */ +static inline int +select_j(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i) +{ + float path[2]; + int state[2] = { p7T_J, p7T_E }; + + path[0] = ox->xmx[(i-1)*p7X_NXCELLS+p7X_J] * om->xf[p7O_J][p7O_LOOP]; + path[1] = ox->xmx[ i*p7X_NXCELLS+p7X_E] * om->xf[p7O_E][p7O_LOOP] * ox->xmx[i*p7X_NXCELLS+p7X_SCALE]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} + +/* E(i) is reached from any M(i, k=1..M) or D(i, k=2..M). */ +/* Using FChoose() here would mean allocating tmp space for 2M-1 paths; + * instead we use the fact that E(i) is itself the necessary normalization + * factor, and implement FChoose's algorithm here for an on-the-fly + * calculation. + * Note that that means double-precision calculation, to be sure 0.0 <= roll < 1.0 + */ +static inline int +select_e(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int *ret_k) +{ + int Q = p7O_NQF(ox->M); + double sum = 0.0; + double roll = esl_random(rng); + double norm = 1.0 / ox->xmx[i*p7X_NXCELLS+p7X_E]; + __m128 xEv = _mm_set1_ps(norm); /* all M, D already scaled exactly the same */ + union { __m128 v; float p[4]; } u; + int q,r; + + while (1) { + for (q = 0; q < Q; q++) + { + u.v = _mm_mul_ps(ox->dpf[i][q*3 + p7X_M], xEv); + for (r = 0; r < 4; r++) { + sum += u.p[r]; + if (roll < sum) { *ret_k = r*Q + q + 1; return p7T_M;} + } + + u.v = _mm_mul_ps(ox->dpf[i][q*3 + p7X_D], xEv); + for (r = 0; r < 4; r++) { + sum += u.p[r]; + if (roll < sum) { *ret_k = r*Q + q + 1; return p7T_D;} + } + } + ESL_DASSERT1((sum > 0.99)); + } + /*UNREACHED*/ + ESL_EXCEPTION(-1, "unreached code was reached. universe collapses."); +} + +/* B(i) is reached from N(i) or J(i). */ +static inline int +select_b(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i) +{ + float path[2]; + int state[2] = { p7T_N, p7T_J }; + + path[0] = ox->xmx[i*p7X_NXCELLS+p7X_N] * om->xf[p7O_N][p7O_MOVE]; + path[1] = ox->xmx[i*p7X_NXCELLS+p7X_J] * om->xf[p7O_J][p7O_MOVE]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} +/*---------------------- end, step selection --------------------*/ + +/***************************************************************** + * 3. Benchmark + *****************************************************************/ +#ifdef p7STOTRACE_BENCHMARK +/* + gcc -g -O2 -o stotrace_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7STOTRACE_BENCHMARK stotrace.c -lhmmer -leasel -lm + icc -O3 -static -o stotrace_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7STOTRACE_BENCHMARK stotrace.c -lhmmer -leasel -lm + ./stotrace_benchmark + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seq" , 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of sampled tracebacks", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for stochastic traceback, SSE version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *fwd = NULL; + P7_TRACE *tr = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc, fsc, vsc; + float bestsc = -eslINFINITY; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + + fwd = p7_omx_Create(gm->M, L, L); + gx = p7_gmx_Create(gm->M, L); + tr = p7_trace_Create(); + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_GViterbi(dsq, L, gm, gx, &vsc); + p7_Forward (dsq, L, om, fwd, &fsc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + p7_StochasticTrace(r, dsq, L, om, fwd, tr); + p7_trace_Score(tr, dsq, gm, &sc); + bestsc = ESL_MAX(bestsc, sc); + p7_trace_Reuse(tr); + } + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + + printf("forward sc = %.4f nats\n", fsc); + printf("viterbi sc = %.4f nats\n", vsc); + printf("max trace sc = %.4f nats\n", bestsc); + + free(dsq); + p7_trace_Destroy(tr); + p7_gmx_Destroy(gx); + p7_omx_Destroy(fwd); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7STOTRACE_BENCHMARK*/ +/*----------------- end, benchmark ------------------------------*/ + + +/***************************************************************** + * 4. Unit tests + *****************************************************************/ +#ifdef p7STOTRACE_TESTDRIVE +#include "esl_getopts.h" + +/* tests: + * 1. each sampled trace must validate. + * 2. each trace must be <= viterbi trace score + * 3. in a large # of traces, one is "equal" to the viterbi trace score. + * (this of course is stochastic; but it's true for the particular + * choice of RNG seed used in tests here.) + */ +static void +utest_stotrace(ESL_GETOPTS *go, ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, P7_PROFILE *gm, P7_OPROFILE *om, ESL_DSQ *dsq, int L, int ntrace) +{ + P7_GMX *gx = NULL; + P7_OMX *ox = NULL; + P7_TRACE *vtr = NULL; + P7_TRACE *tr = NULL; + char errbuf[eslERRBUFSIZE]; + int idx; + float maxsc = -eslINFINITY; + float vsc, sc; + + if ((gx = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("generic DP matrix creation failed"); + if ((ox = p7_omx_Create(gm->M, L, L)) == NULL) esl_fatal("optimized DP matrix create failed"); + if ((tr = p7_trace_Create()) == NULL) esl_fatal("trace creation failed"); + if ((vtr = p7_trace_Create()) == NULL) esl_fatal("trace creation failed"); + + if (p7_GViterbi(dsq, L, gm, gx, &vsc) != eslOK) esl_fatal("viterbi failed"); + if (p7_GTrace (dsq, L, gm, gx, vtr) != eslOK) esl_fatal("viterbi trace failed"); + if (p7_Forward (dsq, L, om, ox, NULL) != eslOK) esl_fatal("forward failed"); + + for (idx = 0; idx < ntrace; idx++) + { + if (p7_StochasticTrace(rng, dsq, L, om, ox, tr) != eslOK) esl_fatal("stochastic trace failed"); + if (p7_trace_Validate(tr, abc, dsq, errbuf) != eslOK) esl_fatal("trace invalid:\n%s", errbuf); + if (p7_trace_Score(tr, dsq, gm, &sc) != eslOK) esl_fatal("trace scoring failed"); + + maxsc = ESL_MAX(sc, maxsc); + if (sc > vsc + 0.001){ /* need a little tolerance of floating point math here */ + //p7_trace_Dump(stdout, vtr, gm, dsq); + //p7_trace_Dump(stdout, tr, gm, dsq); + esl_fatal("sampled trace has score > optimal Viterbi path; not possible (%f > %f)", sc, vsc); + } + p7_trace_Reuse(tr); + } + if (esl_FCompare(maxsc, vsc, 0.1) != eslOK) esl_fatal("stochastic trace failed to sample the Viterbi path"); + + p7_trace_Destroy(tr); + p7_trace_Destroy(vtr); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); +} +#endif /*p7STOTRACE_TESTDRIVE*/ +/*----------------- end, unit tests -----------------------------*/ + + + +/***************************************************************** + * 5. Test driver + *****************************************************************/ +#ifdef p7STOTRACE_TESTDRIVE +/* gcc -std=gnu99 -msse2 -g -Wall -o stotrace_utest -Dp7STOTRACE_TESTDRIVE -I.. -L.. -I../../easel -L../../easel stotrace.c -lhmmer -leasel -lm + */ +#include "easel.h" +#include "esl_getopts.h" +#include "esl_randomseq.h" + +#include "p7_config.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for stochastic Viterbi traceback (optimized version)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_BG *bg = NULL; + ESL_DSQ *dsq = NULL; + ESL_SQ *sq = NULL; + int M = 6; + int L = 10; + int ntrace = 1000; + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile"); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal("failed to config profile"); + if ((om = p7_oprofile_Create(gm->M, abc)) == NULL) esl_fatal("failed to create optimized profile"); + if (p7_oprofile_Convert(gm, om) != eslOK) esl_fatal("failed to convert profile"); + + /* Test with randomly generated (iid) sequence */ + if ((dsq = malloc(sizeof(ESL_DSQ) *(L+2))) == NULL) esl_fatal("malloc failed"); + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal("seq generation failed"); + utest_stotrace(go, r, abc, gm, om, dsq, L, ntrace); + + /* Test with seq sampled from profile */ + if ((sq = esl_sq_CreateDigital(abc)) == NULL) esl_fatal("sequence allocation failed"); + if (p7_ProfileEmit(r, hmm, gm, bg, sq, NULL) != eslOK) esl_fatal("profile emission failed"); + utest_stotrace(go, r, abc, gm, om, sq->dsq, sq->n, ntrace); + + esl_sq_Destroy(sq); + free(dsq); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7STOTRACE_TESTDRIVE*/ +/*---------------- end, test driver -----------------------------*/ + + +/***************************************************************** + * 6. Example. + *****************************************************************/ +#ifdef p7STOTRACE_EXAMPLE +/* + gcc -g -Wall -msse2 -std=gnu99 -o stotrace_example -I.. -L.. -I../../easel -L../../easel -Dp7STOTRACE_EXAMPLE stotrace.c -lhmmer -leasel -lm + ./example + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump the DP matrix to stdout", 0 }, + { "-p", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump the profile to stdout", 0 }, + { "-t", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump the sampled trace to stdout", 0 }, + { "-N", eslARG_INT, "1", NULL, NULL, NULL, NULL, NULL, "number of traces to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of stochastic backtrace (SSE version)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + ESL_RANDOMNESS *rng = esl_randomness_CreateFast(0); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *fwd = NULL; + P7_TRACE *tr = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + int N = esl_opt_GetInteger(go, "-N"); + int i; + float vsc, fsc, tsc; + char errbuf[eslERRBUFSIZE]; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + + if (esl_opt_GetBoolean(go, "-p")) p7_oprofile_Dump(stdout, om); + + fwd = p7_omx_Create(gm->M, sq->n, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + tr = p7_trace_Create(); + + if (esl_opt_GetBoolean(go, "-m") == TRUE) p7_omx_SetDumpMode(stdout, fwd, TRUE); + p7_GViterbi(sq->dsq, sq->n, gm, gx, &vsc); + p7_Forward (sq->dsq, sq->n, om, fwd, &fsc); + + for (i = 0; i < N; i++) + { + p7_StochasticTrace(rng, sq->dsq, sq->n, om, fwd, tr); + p7_trace_Score(tr, sq->dsq, gm, &tsc); + + if (esl_opt_GetBoolean(go, "-t") == TRUE) p7_trace_Dump(stdout, tr, gm, sq->dsq); + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) p7_Die("trace %d fails validation:\n%s\n", i, errbuf); + + printf("Sampled trace: %.4f nats\n", tsc); + p7_trace_Reuse(tr); + } + printf("Forward score: %.4f nats\n", fsc); + printf("Viterbi score: %.4f nats\n", vsc); + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_trace_Destroy(tr); + p7_omx_Destroy(fwd); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_randomness_Destroy(rng); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7STOTRACE_EXAMPLE*/ +/*------------------------ end, example -------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/vitfilter.c b/bioinformaticsProject/hmmer/src/impl_sse/vitfilter.c new file mode 100644 index 0000000..91065dc --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/vitfilter.c @@ -0,0 +1,915 @@ +/* Viterbi filter implementation; SSE version. + * + * This is a SIMD vectorized, striped, interleaved, one-row, reduced + * precision (epi16) implementation of the Viterbi algorithm. + * + * It calculates a close approximation of the Viterbi score, in + * limited precision (signed words: 16 bits) and range. It may overflow on + * high scoring sequences, but this indicates that the sequence is a + * high-scoring hit worth examining more closely anyway. It will not + * underflow, in local alignment mode. + * + * Contents: + * 1. Viterbi filter implementation. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + */ +#include "p7_config.h" + +#include +#include + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_sse.h" +#include "esl_gumbel.h" + +#include "hmmer.h" +#include "impl_sse.h" + + +/***************************************************************** + * 1. Viterbi filter implementation. + *****************************************************************/ + +/* Function: p7_ViterbiFilter() + * Synopsis: Calculates Viterbi score, vewy vewy fast, in limited precision. + * Incept: SRE, Tue Nov 27 09:15:24 2007 [Janelia] + * + * Purpose: Calculates an approximation of the Viterbi score for sequence + * of length residues, using optimized profile , + * and a preallocated one-row DP matrix . Return the + * estimated Viterbi score (in nats) in . + * + * Score may overflow (and will, on high-scoring + * sequences), but will not underflow. + * + * The model must be in a local alignment mode; other modes + * cannot provide the necessary guarantee of no underflow. + * + * This is a striped SIMD Viterbi implementation using Intel + * SSE/SSE2 integer intrinsics \citep{Farrar07}, in reduced + * precision (signed words, 16 bits). + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * ret_sc - RETURN: Viterbi score (in nats) + * + * Returns: on success; + * if the score overflows; in this case + * <*ret_sc> is , and the sequence can + * be treated as a high-scoring hit. + * + * Throws: if allocation is too small, or if + * profile isn't in a local alignment mode. (Must be in local + * alignment mode because that's what helps us guarantee + * limited dynamic range.) + * + * Xref: [Farrar07] for ideas behind striped SIMD DP. + * J2/46-47 for layout of HMMER's striped SIMD DP. + * J2/50 for single row DP. + * J2/60 for reduced precision (epu8) + * J2/65 for initial benchmarking + * J2/66 for precision maximization + * J4/138-140 for reimplementation in 16-bit precision + */ +int +p7_ViterbiFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc) +{ + register __m128i mpv, dpv, ipv; /* previous row values */ + register __m128i sv; /* temp storage of 1 curr row value in progress */ + register __m128i dcv; /* delayed storage of D(i,q+1) */ + register __m128i xEv; /* E state: keeps max for Mk->E as we go */ + register __m128i xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + register __m128i Dmaxv; /* keeps track of maximum D cell on row */ + int16_t xE, xB, xC, xJ, xN; /* special states' scores */ + int16_t Dmax; /* maximum D cell score on row */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQW(om->M); /* segment length: # of vectors */ + __m128i *dp = ox->dpw[0]; /* using {MDI}MX(q) macro requires initialization of */ + __m128i *rsc; /* will point at om->ru[x] for residue x[i] */ + __m128i *tsc; /* will point into (and step thru) om->tu */ + + __m128i negInfv; + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ8) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + if (om->mode != p7_LOCAL && om->mode != p7_UNILOCAL) ESL_EXCEPTION(eslEINVAL, "Fast filter only works for local alignment"); + ox->M = om->M; + + /* -infinity is -32768 */ + negInfv = _mm_set1_epi16(-32768); + negInfv = _mm_srli_si128(negInfv, 14); /* negInfv = 16-byte vector, 14 0 bytes + 2-byte value=-32768, for an OR operation. */ + + /* Initialization. In unsigned arithmetic, -infinity is -32768 + */ + for (q = 0; q < Q; q++) + MMXo(q) = IMXo(q) = DMXo(q) = _mm_set1_epi16(-32768); + xN = om->base_w; + xB = xN + om->xw[p7O_N][p7O_MOVE]; + xJ = -32768; + xC = -32768; + xE = -32768; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpVFRow(ox, 0, xE, 0, xJ, xB, xC); /* first 0 is : do header. second 0 is xN: always 0 here. */ +#endif + + for (i = 1; i <= L; i++) + { + rsc = om->rwv[dsq[i]]; + tsc = om->twv; + dcv = _mm_set1_epi16(-32768); /* "-infinity" */ + xEv = _mm_set1_epi16(-32768); + Dmaxv = _mm_set1_epi16(-32768); + xBv = _mm_set1_epi16(xB); + + /* Right shifts by 1 value (2 bytes). 4,8,12,x becomes x,4,8,12. + * Because ia32 is littlendian, this means a left bit shift. + * Zeros shift on automatically; replace it with -32768. + */ + mpv = MMXo(Q-1); mpv = _mm_slli_si128(mpv, 2); mpv = _mm_or_si128(mpv, negInfv); + dpv = DMXo(Q-1); dpv = _mm_slli_si128(dpv, 2); dpv = _mm_or_si128(dpv, negInfv); + ipv = IMXo(Q-1); ipv = _mm_slli_si128(ipv, 2); ipv = _mm_or_si128(ipv, negInfv); + + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = _mm_adds_epi16(xBv, *tsc); tsc++; + sv = _mm_max_epi16 (sv, _mm_adds_epi16(mpv, *tsc)); tsc++; + sv = _mm_max_epi16 (sv, _mm_adds_epi16(ipv, *tsc)); tsc++; + sv = _mm_max_epi16 (sv, _mm_adds_epi16(dpv, *tsc)); tsc++; + sv = _mm_adds_epi16(sv, *rsc); rsc++; + xEv = _mm_max_epi16(xEv, sv); + + /* Load {MDI}(i-1,q) into mpv, dpv, ipv; + * {MDI}MX(q) is then the current, not the prev row + */ + mpv = MMXo(q); + dpv = DMXo(q); + ipv = IMXo(q); + + /* Do the delayed stores of {MD}(i,q) now that memory is usable */ + MMXo(q) = sv; + DMXo(q) = dcv; + + /* Calculate the next D(i,q+1) partially: M->D only; + * delay storage, holding it in dcv + */ + dcv = _mm_adds_epi16(sv, *tsc); tsc++; + Dmaxv = _mm_max_epi16(dcv, Dmaxv); + + /* Calculate and store I(i,q) */ + sv = _mm_adds_epi16(mpv, *tsc); tsc++; + IMXo(q)= _mm_max_epi16 (sv, _mm_adds_epi16(ipv, *tsc)); tsc++; + } + + /* Now the "special" states, which start from Mk->E (->C, ->J->B) */ + xE = esl_sse_hmax_epi16(xEv); + if (xE >= 32767) { *ret_sc = eslINFINITY; return eslERANGE; } /* immediately detect overflow */ + xN = xN + om->xw[p7O_N][p7O_LOOP]; + xC = ESL_MAX(xC + om->xw[p7O_C][p7O_LOOP], xE + om->xw[p7O_E][p7O_MOVE]); + xJ = ESL_MAX(xJ + om->xw[p7O_J][p7O_LOOP], xE + om->xw[p7O_E][p7O_LOOP]); + xB = ESL_MAX(xJ + om->xw[p7O_J][p7O_MOVE], xN + om->xw[p7O_N][p7O_MOVE]); + /* and now xB will carry over into next i, and xC carries over after i=L */ + + /* Finally the "lazy F" loop (sensu [Farrar07]). We can often + * prove that we don't need to evaluate any D->D paths at all. + * + * The observation is that if we can show that on the next row, + * B->M(i+1,k) paths always dominate M->D->...->D->M(i+1,k) paths + * for all k, then we don't need any D->D calculations. + * + * The test condition is: + * max_k D(i,k) + max_k ( TDD(k-2) + TDM(k-1) - TBM(k) ) < xB(i) + * So: + * max_k (TDD(k-2) + TDM(k-1) - TBM(k)) is precalc'ed in om->dd_bound; + * max_k D(i,k) is why we tracked Dmaxv; + * xB(i) was just calculated above. + */ + Dmax = esl_sse_hmax_epi16(Dmaxv); + if (Dmax + om->ddbound_w > xB) + { + /* Now we're obligated to do at least one complete DD path to be sure. */ + /* dcv has carried through from end of q loop above */ + dcv = _mm_slli_si128(dcv, 2); + dcv = _mm_or_si128(dcv, negInfv); + tsc = om->twv + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMXo(q) = _mm_max_epi16(dcv, DMXo(q)); + dcv = _mm_adds_epi16(DMXo(q), *tsc); tsc++; + } + + /* We may have to do up to three more passes; the check + * is for whether crossing a segment boundary can improve + * our score. + */ + do { + dcv = _mm_slli_si128(dcv, 2); + dcv = _mm_or_si128(dcv, negInfv); + tsc = om->twv + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + if (! esl_sse_any_gt_epi16(dcv, DMXo(q))) break; + DMXo(q) = _mm_max_epi16(dcv, DMXo(q)); + dcv = _mm_adds_epi16(DMXo(q), *tsc); tsc++; + } + } while (q == Q); + } + else /* not calculating DD? then just store the last M->D vector calc'ed.*/ + { + dcv = _mm_slli_si128(dcv, 2); + DMXo(0) = _mm_or_si128(dcv, negInfv); + } + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpVFRow(ox, i, xE, 0, xJ, xB, xC); +#endif + } /* end loop over sequence residues 1..L */ + + /* finally C->T */ + if (xC > -32768) + { + *ret_sc = (float) xC + (float) om->xw[p7O_C][p7O_MOVE] - (float) om->base_w; + /* *ret_sc += L * om->ncj_roundoff; see J4/150 for rationale: superceded by -3.0nat approximation*/ + *ret_sc /= om->scale_w; + *ret_sc -= 3.0; /* the NN/CC/JJ=0,-3nat approximation: see J5/36. That's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ contrib */ + } + else *ret_sc = -eslINFINITY; + return eslOK; +} +/*---------------- end, p7_ViterbiFilter() ----------------------*/ + + + +/* Function: p7_ViterbiFilter_longtarget() + * Synopsis: Finds windows within potentially long sequence blocks with Viterbi + * scores above threshold (vewy vewy fast, in limited precision) + * + * Purpose: Calculates an approximation of the Viterbi score for regions + * of sequence , using optimized profile , and a pre- + * allocated one-row DP matrix , and captures the positions + * at which such regions exceed the score required to be + * significant in the eyes of the calling function (usually + * p=0.001). + * + * The resulting landmarks are converted to subsequence + * windows by the calling function + * + * The model must be in a local alignment mode; other modes + * cannot provide the necessary guarantee of no underflow. + * + * This is a striped SIMD Viterbi implementation using Intel + * SSE/SSE2 integer intrinsics \citep{Farrar07}, in reduced + * precision (signed words, 16 bits). + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * filtersc - null or bias correction, required for translating a P-value threshold into a score threshold + * P - p-value below which a region is captured as being above threshold + * windowlist - RETURN: preallocated array of hit windows (start and end of diagonal) for the above-threshold areas + * + * Returns: on success; + * + * Throws: if allocation is too small, or if + * profile isn't in a local alignment mode. (Must be in local + * alignment mode because that's what helps us guarantee + * limited dynamic range.) + * + * Xref: See p7_ViterbiFilter() + */ +int +p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, + float filtersc, double P, P7_HMM_WINDOWLIST *windowlist) +{ + register __m128i mpv, dpv, ipv; /* previous row values */ + register __m128i sv; /* temp storage of 1 curr row value in progress */ + register __m128i dcv; /* delayed storage of D(i,q+1) */ + register __m128i xEv; /* E state: keeps max for Mk->E as we go */ + register __m128i xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + register __m128i Dmaxv; /* keeps track of maximum D cell on row */ + int16_t xE, xB, xC, xJ, xN; /* special states' scores */ + int16_t Dmax; /* maximum D cell score on row */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQW(om->M); /* segment length: # of vectors */ + __m128i *dp = ox->dpw[0]; /* using {MDI}MX(q) macro requires initialization of */ + __m128i *rsc; /* will point at om->ru[x] for residue x[i] */ + __m128i *tsc; /* will point into (and step thru) om->tu */ + + __m128i negInfv; + + int16_t sc_thresh; + float invP; + + int z; + union { __m128i v; int16_t i[8]; } tmp; + windowlist->count = 0; + +/* + * In p7_ViterbiFilter, converting from a scaled int Viterbi score + * S (aka xE the score getting to state E) to a probability + * goes like this: + * vsc = S + om->xw[p7O_E][p7O_MOVE] + om->xw[p7O_C][p7O_MOVE] - om->base_w + * ret_sc /= om->scale_w; + * vsc -= 3.0; + * P = esl_gumbel_surv((vfsc - filtersc) / eslCONST_LOG2 , om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]); + * and we're computing the threshold vsc, so invert it: + * (vsc - filtersc) / eslCONST_LOG2 = esl_gumbel_invsurv( P, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]) + * vsc = filtersc + eslCONST_LOG2 * esl_gumbel_invsurv( P, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]) + * vsc += 3.0 + * vsc *= om->scale_w + * S = vsc - (float)om->xw[p7O_E][p7O_MOVE] - (float)om->xw[p7O_C][p7O_MOVE] + (float)om->base_w + */ + invP = esl_gumbel_invsurv(P, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]); + sc_thresh = (int) ceil ( ( (filtersc + (eslCONST_LOG2 * invP) + 3.0) * om->scale_w ) + - (float)om->xw[p7O_E][p7O_MOVE] - (float)om->xw[p7O_C][p7O_MOVE] + (float)om->base_w ); + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ8) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + if (om->mode != p7_LOCAL && om->mode != p7_UNILOCAL) ESL_EXCEPTION(eslEINVAL, "Fast filter only works for local alignment"); + ox->M = om->M; + + /* -infinity is -32768 */ + negInfv = _mm_set1_epi16(-32768); + negInfv = _mm_srli_si128(negInfv, 14); /* negInfv = 16-byte vector, 14 0 bytes + 2-byte value=-32768, for an OR operation. */ + + /* Initialization. In unsigned arithmetic, -infinity is -32768 + */ + for (q = 0; q < Q; q++) + MMXo(q) = IMXo(q) = DMXo(q) = _mm_set1_epi16(-32768); + xN = om->base_w; + xB = xN + om->xw[p7O_N][p7O_MOVE]; + xJ = -32768; + xC = -32768; + xE = -32768; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpVFRow(ox, 0, xE, 0, xJ, xB, xC); /* first 0 is : do header. second 0 is xN: always 0 here. */ +#endif + + + for (i = 1; i <= L; i++) + { + rsc = om->rwv[dsq[i]]; + tsc = om->twv; + dcv = _mm_set1_epi16(-32768); /* "-infinity" */ + xEv = _mm_set1_epi16(-32768); + Dmaxv = _mm_set1_epi16(-32768); + xBv = _mm_set1_epi16(xB); + + /* Right shifts by 1 value (2 bytes). 4,8,12,x becomes x,4,8,12. + * Because ia32 is littlendian, this means a left bit shift. + * Zeros shift on automatically; replace it with -32768. + */ + mpv = MMXo(Q-1); mpv = _mm_slli_si128(mpv, 2); mpv = _mm_or_si128(mpv, negInfv); + dpv = DMXo(Q-1); dpv = _mm_slli_si128(dpv, 2); dpv = _mm_or_si128(dpv, negInfv); + ipv = IMXo(Q-1); ipv = _mm_slli_si128(ipv, 2); ipv = _mm_or_si128(ipv, negInfv); + + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = _mm_adds_epi16(xBv, *tsc); tsc++; + sv = _mm_max_epi16 (sv, _mm_adds_epi16(mpv, *tsc)); tsc++; + sv = _mm_max_epi16 (sv, _mm_adds_epi16(ipv, *tsc)); tsc++; + sv = _mm_max_epi16 (sv, _mm_adds_epi16(dpv, *tsc)); tsc++; + sv = _mm_adds_epi16(sv, *rsc); rsc++; + xEv = _mm_max_epi16(xEv, sv); + + /* Load {MDI}(i-1,q) into mpv, dpv, ipv; + * {MDI}MX(q) is then the current, not the prev row + */ + mpv = MMXo(q); + dpv = DMXo(q); + ipv = IMXo(q); + + /* Do the delayed stores of {MD}(i,q) now that memory is usable */ + MMXo(q) = sv; + DMXo(q) = dcv; + + /* Calculate the next D(i,q+1) partially: M->D only; + * delay storage, holding it in dcv + */ + dcv = _mm_adds_epi16(sv, *tsc); tsc++; + Dmaxv = _mm_max_epi16(dcv, Dmaxv); + + /* Calculate and store I(i,q) */ + sv = _mm_adds_epi16(mpv, *tsc); tsc++; + IMXo(q)= _mm_max_epi16 (sv, _mm_adds_epi16(ipv, *tsc)); tsc++; + } + + /* Now the "special" states, which start from Mk->E (->C, ->J->B) */ + xE = esl_sse_hmax_epi16(xEv); + + if (xE >= sc_thresh) { + //hit score threshold. Add a window to the list, then reset scores. + + /* Unpack and unstripe, then find the position responsible for the hit */ + for (q = 0; q < Q; q++) { + tmp.v = MMXo(q); + for (z = 0; z < 8; z++) { // unstripe + if ( tmp.i[z] == xE && (q+Q*z+1) <= om->M) { + // (q+Q*z+1) is the model position k at which the xE score is found + p7_hmmwindow_new(windowlist, 0, i, i-1, (q+Q*z+1), 1, 0.0, p7_NOCOMPLEMENT, L ); + } + } + MMXo(q) = IMXo(q) = DMXo(q) = _mm_set1_epi16(-32768); //reset score to start search for next vit window. + } + + } else { + + + xN = xN + om->xw[p7O_N][p7O_LOOP]; + xC = ESL_MAX(xC + om->xw[p7O_C][p7O_LOOP], xE + om->xw[p7O_E][p7O_MOVE]); + xJ = ESL_MAX(xJ + om->xw[p7O_J][p7O_LOOP], xE + om->xw[p7O_E][p7O_LOOP]); + xB = ESL_MAX(xJ + om->xw[p7O_J][p7O_MOVE], xN + om->xw[p7O_N][p7O_MOVE]); + /* and now xB will carry over into next i, and xC carries over after i=L */ + + /* Finally the "lazy F" loop (sensu [Farrar07]). We can often + * prove that we don't need to evaluate any D->D paths at all. + * + * The observation is that if we can show that on the next row, + * B->M(i+1,k) paths always dominate M->D->...->D->M(i+1,k) paths + * for all k, then we don't need any D->D calculations. + * + * The test condition is: + * max_k D(i,k) + max_k ( TDD(k-2) + TDM(k-1) - TBM(k) ) < xB(i) + * So: + * max_k (TDD(k-2) + TDM(k-1) - TBM(k)) is precalc'ed in om->dd_bound; + * max_k D(i,k) is why we tracked Dmaxv; + * xB(i) was just calculated above. + */ + Dmax = esl_sse_hmax_epi16(Dmaxv); + if (Dmax + om->ddbound_w > xB) + { + /* Now we're obligated to do at least one complete DD path to be sure. */ + /* dcv has carried through from end of q loop above */ + dcv = _mm_slli_si128(dcv, 2); + dcv = _mm_or_si128(dcv, negInfv); + tsc = om->twv + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMXo(q) = _mm_max_epi16(dcv, DMXo(q)); + dcv = _mm_adds_epi16(DMXo(q), *tsc); tsc++; + } + + /* We may have to do up to three more passes; the check + * is for whether crossing a segment boundary can improve + * our score. + */ + do { + dcv = _mm_slli_si128(dcv, 2); + dcv = _mm_or_si128(dcv, negInfv); + tsc = om->twv + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + if (! esl_sse_any_gt_epi16(dcv, DMXo(q))) break; + DMXo(q) = _mm_max_epi16(dcv, DMXo(q)); + dcv = _mm_adds_epi16(DMXo(q), *tsc); tsc++; + } + } while (q == Q); + } + else /* not calculating DD? then just store the last M->D vector calc'ed.*/ + { + dcv = _mm_slli_si128(dcv, 2); + DMXo(0) = _mm_or_si128(dcv, negInfv); + } + } +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpVFRow(ox, i, xE, 0, xJ, xB, xC); +#endif + } /* end loop over sequence residues 1..L */ + + + return eslOK; + +} +/*---------------- end, p7_ViterbiFilter_longtarget() ----------------------*/ + + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +#ifdef p7VITFILTER_BENCHMARK +/* -c, -x are used for debugging, testing; see msvfilter.c for explanation */ + +/* + gcc -o vitfilter_benchmark -std=gnu99 -g -Wall -msse2 -I.. -L.. -I../../easel -L../../easel -Dp7VITFILTER_BENCHMARK vitfilter.c -lhmmer -leasel -lm + icc -o vitfilter_benchmark -O3 -static -I.. -L.. -I../../easel -L../../easel -Dp7VITFILTER_BENCHMARK vitfilter.c -lhmmer -leasel -lm + + ./benchmark-vitfilter runs benchmark + ./benchmark-vitfilter -N100 -c compare scores to generic impl + ./benchmark-vitfilter -N100 -x compare scores to exact emulation + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for Viterbi filter"; + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc1, sc2; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + if (esl_opt_GetBoolean(go, "-x")) p7_profile_SameAsVF(om, gm); + + ox = p7_omx_Create(gm->M, 0, 0); + gx = p7_gmx_Create(gm->M, L); + + /* Get a baseline time: how long it takes just to generate the sequences */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Run the benchmark */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_ViterbiFilter(dsq, L, om, ox, &sc1); + + if (esl_opt_GetBoolean(go, "-c")) + { + p7_GViterbi(dsq, L, gm, gx, &sc2); + printf("%.4f %.4f\n", sc1, sc2); + } + + if (esl_opt_GetBoolean(go, "-x")) + { + p7_GViterbi(dsq, L, gm, gx, &sc2); + sc2 /= om->scale_w; + if (om->mode == p7_UNILOCAL) sc2 -= 2.0; /* that's ~ L \log \frac{L}{L+2}, for our NN,CC,JJ */ + else if (om->mode == p7_LOCAL) sc2 -= 3.0; /* that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ */ + printf("%.4f %.4f\n", sc1, sc2); + } + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7VITFILTER_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + + + +/***************************************************************** + * 3. Unit tests. + *****************************************************************/ +#ifdef p7VITFILTER_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* ViterbiFilter() unit test + * + * We can check that scores are identical (within machine error) to + * scores of generic DP with scores rounded the same way. Do this for + * a random model of length , for test sequences of length . + * + * We assume that we don't accidentally generate a high-scoring random + * sequence that overflows ViterbiFilter()'s limited range. + * + */ +static void +utest_viterbi_filter(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *ox = p7_omx_Create(M, 0, 0); + P7_GMX *gx = p7_gmx_Create(M, L); + float sc1, sc2; + + p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om); + p7_profile_SameAsVF(om, gm); /* round and scale the scores in the same as in */ + +#if 0 + p7_oprofile_Dump(stdout, om); // dumps the optimized profile + p7_omx_SetDumpMode(stdout, ox, TRUE); // makes the fast DP algorithms dump their matrices +#endif + + while (N--) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_ViterbiFilter(dsq, L, om, ox, &sc1); + p7_GViterbi (dsq, L, gm, gx, &sc2); + +#if 0 + p7_gmx_Dump(stdout, gx, p7_DEFAULT); // dumps a generic DP matrix +#endif + + sc2 /= om->scale_w; + sc2 -= 3.0; + + if (fabs(sc1-sc2) > 0.001) esl_fatal("viterbi filter unit test failed: scores differ (%.2f, %.2f)", sc1, sc2); + } + + free(dsq); + p7_hmm_Destroy(hmm); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); +} +#endif /*p7VITFILTER_TESTDRIVE*/ + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7VITFILTER_TESTDRIVE +/* + gcc -g -Wall -msse2 -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o vitfilter_utest -Dp7VITFILTER_TESTDRIVE vitfilter.c -lhmmer -leasel -lm + ./vitfilter_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "145", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for the SSE implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* First round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + if (esl_opt_GetBoolean(go, "-v")) printf("ViterbiFilter() tests, DNA\n"); + utest_viterbi_filter(r, abc, bg, M, L, N); + utest_viterbi_filter(r, abc, bg, 1, L, 10); + utest_viterbi_filter(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + /* Second round of tests for amino alphabets. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + if (esl_opt_GetBoolean(go, "-v")) printf("ViterbiFilter() tests, protein\n"); + utest_viterbi_filter(r, abc, bg, M, L, N); + utest_viterbi_filter(r, abc, bg, 1, L, 10); + utest_viterbi_filter(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*VITFILTER_TESTDRIVE*/ +/*---------------- end, test driver -----------------------------*/ + + + +/***************************************************************** + * 5. Example + *****************************************************************/ +#ifdef p7VITFILTER_EXAMPLE +/* A minimal example. + Also useful for debugging on small HMMs and sequences. + + gcc -g -Wall -msse2 -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o vitfilter_example -Dp7VITFILTER_EXAMPLE vitfilter.c -lhmmer -leasel -lm + ./vitfilter_example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_gumbel.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in one line awkable format", 0 }, + { "-P", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in profmark format", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of Viterbi filter algorithm"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float vfraw, nullsc, vfscore; + float graw, gscore; + double P, gP; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + /* allocate DP matrices, both a generic and an optimized one */ + ox = p7_omx_Create(gm->M, 0, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + + /* Useful to place and compile in for debugging: + p7_oprofile_Dump(stdout, om); dumps the optimized profile + p7_omx_SetDumpMode(ox, TRUE); makes the fast DP algorithms dump their matrices + p7_gmx_Dump(stdout, gx, p7_DEFAULT); dumps a generic DP matrix + */ + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) + { + p7_oprofile_ReconfigLength(om, sq->n); + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_omx_GrowTo(ox, om->M, 0, sq->n); + p7_gmx_GrowTo(gx, gm->M, sq->n); + + p7_ViterbiFilter (sq->dsq, sq->n, om, ox, &vfraw); + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + vfscore = (vfraw - nullsc) / eslCONST_LOG2; + P = esl_gumbel_surv(vfscore, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]); + + p7_GViterbi (sq->dsq, sq->n, gm, gx, &graw); + gscore = (graw - nullsc) / eslCONST_LOG2; + gP = esl_gumbel_surv(gscore, gm->evparam[p7_VMU], gm->evparam[p7_VLAMBDA]); + + if (esl_opt_GetBoolean(go, "-1")) + { + printf("%-30s\t%-20s\t%9.2g\t%7.2f\t%9.2g\t%7.2f\n", sq->name, hmm->name, P, vfscore, gP, gscore); + } + else if (esl_opt_GetBoolean(go, "-P")) + { /* output suitable for direct use in profmark benchmark postprocessors: */ + printf("%g\t%.2f\t%s\t%s\n", P, vfscore, sq->name, hmm->name); + } + else + { + printf("target sequence: %s\n", sq->name); + printf("vit filter raw score: %.2f nats\n", vfraw); + printf("null score: %.2f nats\n", nullsc); + printf("per-seq score: %.2f bits\n", vfscore); + printf("P-value: %g\n", P); + printf("GViterbi raw score: %.2f nats\n", graw); + printf("GViterbi seq score: %.2f bits\n", gscore); + printf("GViterbi P-value: %g\n", gP); + } + + esl_sq_Reuse(sq); + } + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7VITFILTER_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_sse/vitscore.c b/bioinformaticsProject/hmmer/src/impl_sse/vitscore.c new file mode 100644 index 0000000..9107b65 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_sse/vitscore.c @@ -0,0 +1,552 @@ +/* Viterbi score implementation; SSE version. + * + * This is a SIMD vectorized, striped, interleaved, one-row O(M) + * memory implementation of the Viterbi algorithm, for calculating an + * accurate Viterbi score, without traceback. + * + * This implementation has full range and precision, so it may be used + * in any alignment mode (not just local), and on any target sequence + * (not excluding high-scoring ones). + * + * The optimized profile must be configured to contain lspace float + * scores, not its normal pspace float scores. + * + * Contents: + * 1. Viterbi score implementation. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + * + * SRE, Sun Aug 3 13:10:24 2008 [St. Louis] + */ +#include "p7_config.h" + +#include +#include + +#include /* SSE */ +#include /* SSE2 */ + +#include "easel.h" +#include "esl_sse.h" + +#include "hmmer.h" +#include "impl_sse.h" + +/***************************************************************** + * 1. Viterbi score implementation + *****************************************************************/ + +/* Function: p7_ViterbiScore() + * Synopsis: Calculates Viterbi score, correctly, and vewy vewy fast. + * Incept: SRE, Tue Nov 27 09:15:24 2007 [Janelia] + * + * Purpose: Calculates the Viterbi score for sequence of length + * residues, using optimized profile , and a preallocated + * one-row DP matrix . Return the Viterbi score (in nats) + * in . + * + * The model must be configured specially to have + * lspace float scores, not its usual pspace float scores for + * . + * + * As with all <*Score()> implementations, the score is + * accurate (full range and precision) and can be + * calculated on models in any mode, not only local modes. + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * ret_sc - RETURN: Viterbi score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small. + */ +int +p7_ViterbiScore(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc) +{ + register __m128 mpv, dpv, ipv; /* previous row values */ + register __m128 sv; /* temp storage of 1 curr row value in progress */ + register __m128 dcv; /* delayed storage of D(i,q+1) */ + register __m128 xEv; /* E state: keeps max for Mk->E as we go */ + register __m128 xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + register __m128 Dmaxv; /* keeps track of maximum D cell on row */ + __m128 infv; /* -eslINFINITY in a vector */ + float xN, xE, xB, xC, xJ; /* special states' scores */ + float Dmax; /* maximum D cell on row */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQF(om->M); /* segment length: # of vectors */ + __m128 *dp = ox->dpf[0]; /* using {MDI}MX(q) macro requires initialization of */ + __m128 *rsc; /* will point at om->rf[x] for residue x[i] */ + __m128 *tsc; /* will point into (and step thru) om->tf */ + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + ox->M = om->M; + + /* Initialization. */ + infv = _mm_set1_ps(-eslINFINITY); + for (q = 0; q < Q; q++) + MMXo(q) = IMXo(q) = DMXo(q) = infv; + xN = 0.; + xB = om->xf[p7O_N][p7O_MOVE]; + xE = -eslINFINITY; + xJ = -eslINFINITY; + xC = -eslINFINITY; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpFloatRow(ox, FALSE, 0, 5, 2, xE, xN, xJ, xB, xC); /* logify=FALSE, =0, width=5, precision=2*/ +#endif + + for (i = 1; i <= L; i++) + { + rsc = om->rf[dsq[i]]; + tsc = om->tf; + dcv = infv; + xEv = infv; + Dmaxv = infv; + xBv = _mm_set1_ps(xB); + + mpv = esl_sse_rightshift_ps(MMXo(Q-1), infv); /* Right shifts by 4 bytes. 4,8,12,x becomes x,4,8,12. */ + dpv = esl_sse_rightshift_ps(DMXo(Q-1), infv); + ipv = esl_sse_rightshift_ps(IMXo(Q-1), infv); + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = _mm_add_ps(xBv, *tsc); tsc++; + sv = _mm_max_ps(sv, _mm_add_ps(mpv, *tsc)); tsc++; + sv = _mm_max_ps(sv, _mm_add_ps(ipv, *tsc)); tsc++; + sv = _mm_max_ps(sv, _mm_add_ps(dpv, *tsc)); tsc++; + sv = _mm_add_ps(sv, *rsc); rsc++; + xEv = _mm_max_ps(xEv, sv); + + /* Load {MDI}(i-1,q) into mpv, dpv, ipv; + * {MDI}MX(q) is then the current, not the prev row + */ + mpv = MMXo(q); + dpv = DMXo(q); + ipv = IMXo(q); + + /* Do the delayed stores of {MD}(i,q) now that memory is usable */ + MMXo(q) = sv; + DMXo(q) = dcv; + + /* Calculate the next D(i,q+1) partially: M->D only; + * delay storage, holding it in dcv + */ + dcv = _mm_add_ps(sv, *tsc); tsc++; + Dmaxv = _mm_max_ps(dcv, Dmaxv); + + /* Calculate and store I(i,q) */ + sv = _mm_add_ps(mpv, *tsc); tsc++; + sv = _mm_max_ps(sv, _mm_add_ps(ipv, *tsc)); tsc++; + IMXo(q) = _mm_add_ps(sv, *rsc); rsc++; + } + + /* Now the "special" states, which start from Mk->E (->C, ->J->B) */ + esl_sse_hmax_ps(xEv, &xE); + xN = xN + om->xf[p7O_N][p7O_LOOP]; + xC = ESL_MAX(xC + om->xf[p7O_C][p7O_LOOP], xE + om->xf[p7O_E][p7O_MOVE]); + xJ = ESL_MAX(xJ + om->xf[p7O_J][p7O_LOOP], xE + om->xf[p7O_E][p7O_LOOP]); + xB = ESL_MAX(xJ + om->xf[p7O_J][p7O_MOVE], xN + om->xf[p7O_N][p7O_MOVE]); + /* and now xB will carry over into next i, and xC carries over after i=L */ + + /* Finally the "lazy F" loop (sensu [Farrar07]). We can often + * prove that we don't need to evaluate any D->D paths at all. + * + * The observation is that if we can show that on the next row, + * B->M(i+1,k) paths always dominate M->D->...->D->M(i+1,k) paths + * for all k, then we don't need any D->D calculations. + * + * The test condition is: + * max_k D(i,k) + max_k ( TDD(k-2) + TDM(k-1) - TBM(k) ) < xB(i) + * So: + * max_k (TDD(k-2) + TDM(k-1) - TBM(k)) is precalc'ed in om->dd_bound; + * max_k D(i,k) is why we tracked Dmaxv; + * xB(i) was just calculated above. + */ + esl_sse_hmax_ps(Dmaxv, &Dmax); + if (Dmax + om->ddbound_f > xB) + { + /* Now we're obligated to do at least one complete DD path to be sure. */ + /* dcv has carried through from end of q loop above */ + dcv = esl_sse_rightshift_ps(dcv, infv); + tsc = om->tf + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMXo(q) = _mm_max_ps(dcv, DMXo(q)); + dcv = _mm_add_ps(DMXo(q), *tsc); tsc++; + } + + /* We may have to do up to three more passes; the check + * is for whether crossing a segment boundary can improve + * our score. + */ + do { + dcv = esl_sse_rightshift_ps(dcv, infv); + tsc = om->tf + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + if (! esl_sse_any_gt_ps(dcv, DMXo(q))) break; + DMXo(q) = _mm_max_ps(dcv, DMXo(q)); + dcv = _mm_add_ps(DMXo(q), *tsc); tsc++; + } + } while (q == Q); + } + else + { /* not calculating DD? then just store that last MD vector we calc'ed. */ + dcv = esl_sse_rightshift_ps(dcv, infv); + DMXo(0) = dcv; + } + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpFloatRow(ox, FALSE, i, 5, 2, xE, xN, xJ, xB, xC); /* logify=FALSE, =i, width=5, precision=2*/ +#endif + } /* end loop over sequence residues 1..L */ + + /* finally C->T */ + *ret_sc = xC + om->xf[p7O_C][p7O_MOVE]; + return eslOK; +} +/*------------------ end, p7_ViterbiScore() ---------------------*/ + + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +#ifdef p7VITSCORE_BENCHMARK +/* -c, -x are used for debugging, testing. See msvfilter.c for + * an explanation. Here -c and -x are the same: both compare + * to p7_GViterbi() scores. + */ +/* + gcc -o benchmark-vitscore -std=gnu99 -g -Wall -msse2 -I.. -L.. -I../../easel -L../../easel -Dp7VITSCORE_BENCHMARK vitscore.c -lhmmer -leasel -lm + icc -o benchmark-vitscore -O3 -static -I.. -L.. -I../../easel -L../../easel -Dp7VITSCORE_BENCHMARK vitscore.c -lhmmer -leasel -lm + + ./benchmark-vitscore runs benchmark + ./benchmark-vitscore -N100 -c compare scores to generic impl + ./benchmark-vitscore -N100 -x equate scores to exact emulation + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for SSE ViterbiScore()"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc1, sc2; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + p7_oprofile_Logify(om); + + ox = p7_omx_Create(gm->M, 0, 0); + gx = p7_gmx_Create(gm->M, L); + + /* Get a baseline time: how long it takes just to generate the sequences */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Run the benchmark */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_ViterbiScore (dsq, L, om, ox, &sc1); + + if (esl_opt_GetBoolean(go, "-c") || esl_opt_GetBoolean(go, "-x")) + { + p7_GViterbi(dsq, L, gm, gx, &sc2); + printf("%.4f %.4f\n", sc1, sc2); + } + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7VITSCORE_BENCHMARK*/ +/*------------------- end, benchmark driver ---------------------*/ + + + +/***************************************************************** + * 3. Unit tests. + *****************************************************************/ +#ifdef p7VITSCORE_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* ViterbiScore() unit test + * + * We can compare these scores to GViterbi() almost exactly; the only + * differences should be negligible roundoff errors. Must convert + * the optimized profile to lspace, though, rather than pspace. + */ +static void +utest_viterbi_score(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *ox = p7_omx_Create(M, 0, 0); + P7_GMX *gx = p7_gmx_Create(M, L); + float sc1, sc2; + + p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om); + p7_oprofile_Logify(om); + while (N--) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_ViterbiScore(dsq, L, om, ox, &sc1); + p7_GViterbi (dsq, L, gm, gx, &sc2); + + if (fabs(sc1-sc2) > 0.001) esl_fatal("viterbi score unit test failed: scores differ"); + } + + free(dsq); + p7_hmm_Destroy(hmm); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); +} +#endif /*p7VITSCORE_TESTDRIVE*/ +/*-------------------- end, unit tests --------------------------*/ + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7VITSCORE_TESTDRIVE +/* + gcc -g -Wall -msse2 -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o vitscore_utest -Dp7VITSCORE_TESTDRIVE vitscore.c -lhmmer -leasel -lm + ./vitscore_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "impl_sse.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "145", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for the SSE implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* First round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_viterbi_score(r, abc, bg, M, L, N); + utest_viterbi_score(r, abc, bg, 1, L, 10); + utest_viterbi_score(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + /* Second round of tests for amino alphabets. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_viterbi_score(r, abc, bg, M, L, N); + utest_viterbi_score(r, abc, bg, 1, L, 10); + utest_viterbi_score(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*VITSCORE_TESTDRIVE*/ +/*--------------------- end, test driver ------------------------*/ + + +/***************************************************************** + * 5. Example + *****************************************************************/ +#ifdef p7VITSCORE_EXAMPLE +/* A minimal example. + Also useful for debugging on small HMMs and sequences. + + gcc -g -Wall -msse2 -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o example -Dp7VITSCORE_EXAMPLE vitscore.c -lhmmer -leasel -lm + ./example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_sse.h" + +int +main(int argc, char **argv) +{ + char *hmmfile = argv[1]; + char *seqfile = argv[2]; + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float sc; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_Logify(om); + + /* allocate DP matrices, both a generic and an optimized one */ + ox = p7_omx_Create(gm->M, 0, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + + /* Useful to place and compile in for debugging: + p7_oprofile_Dump(stdout, om); dumps the optimized profile + p7_omx_SetDumpMode(ox, TRUE); makes the fast DP algorithms dump their matrices + p7_gmx_Dump(stdout, gx, p7_DEFAULT); dumps a generic DP matrix + */ + + p7_ViterbiScore(sq->dsq, sq->n, om, ox, &sc); printf("viterbi score (SSE): %.2f nats\n", sc); + p7_GViterbi (sq->dsq, sq->n, gm, gx, &sc); printf("viterbi (generic): %.2f nats\n", sc); + + /* now in a real app, you'd need to convert raw nat scores to final bit + * scores, by subtracting the null model score and rescaling. + */ + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + return 0; +} +#endif /*p7VITSCORE_EXAMPLE*/ +/*-------------------------- end, example ------------------------------*/ + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/00MANIFEST b/bioinformaticsProject/hmmer/src/impl_vmx/00MANIFEST new file mode 100644 index 0000000..7043606 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/00MANIFEST @@ -0,0 +1,34 @@ + + +================================================================ += Overall structure (P7_OPROFILE, P7_OMX) +================================================================ + +impl_vmx.h : declarations, including P7_OPROFILE, P7_OMX, macros, functions +p7_oprofile.c : vectorized profile structure +p7_omx.c : vectorized DP matrix +io.c : i/o of vectorized profiles + + +================================================================ += Dynamic programming routines for scoring target sequences +================================================================ + +msvfilter.c : p7_MSVFilter() - main acceleration routine +vitfilter.c : p7_ViterbiFilter() - secondary acceleration routine +fwdback.c : p7_Forward() - Forward algorithm + p7_Backward() - Backward algorithm + p7_ForwardParser() - streamlined Forward used for first pass domain definition + p7_BackwardParser() - streamlined Backward used for first pass domain definition + + +================================================================ += Postprocessing domains, alignments, and null2 model +================================================================ + +decoding.c : posterior decoding of Forward/Backward matrices +stotrace.c : stochastic traceback, sampling paths from Forward matrices +optacc.c : "optimal accuracy" alignment algorithm, using posterior decoding +null2.c : null2 model for biased composition corrections + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/Makefile.in b/bioinformaticsProject/hmmer/src/impl_vmx/Makefile.in new file mode 100644 index 0000000..c25c21e --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/Makefile.in @@ -0,0 +1,171 @@ +top_srcdir = @top_srcdir@ +srcdir = @srcdir@ +VPATH = @srcdir@ +SHELL = /bin/sh + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ + +CC = @CC@ +CFLAGS = @CFLAGS@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +VMX_CFLAGS = @VMX_CFLAGS@ +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +DEFS = @DEFS@ +LIBS = -lhmmer -leasel @LIBS@ -lm + +AR = @AR@ +RANLIB = @RANLIB@ + +ESLDIR = @HMMER_ESLDIR@ +MYLIBDIRS = -L../../${ESLDIR} -L.. +MYINCDIRS = -I../../${ESLDIR} \ + -I${top_srcdir}/easel \ + -I. \ + -I.. \ + -I${srcdir} \ + -I${top_srcdir}/src \ + -I${srcdir}/.. + +OBJS = decoding.o\ + fwdback.o\ + io.o\ + msvfilter.o\ + null2.o\ + optacc.o\ + stotrace.o\ + vitfilter.o\ + p7_omx.o\ + p7_oprofile.o\ + mpi.o + +HDRS = impl_vmx.h + +UTESTS = @MPI_UTESTS@\ + decoding_utest\ + fwdback_utest\ + io_utest\ + msvfilter_utest\ + null2_utest\ + optacc_utest\ + stotrace_utest\ + vitfilter_utest + +BENCHMARKS = @MPI_BENCHMARKS@\ + decoding_benchmark\ + fwdback_benchmark\ + msvfilter_benchmark\ + null2_benchmark\ + optacc_benchmark\ + stotrace_benchmark\ + vitfilter_benchmark + +EXAMPLES =\ + fwdback_example\ + io_example\ + msvfilter_example\ + optacc_example\ + p7_oprofile_example\ + stotrace_example\ + vitfilter_example + +# beautification magic stolen from git +QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c +QUIET_SUBDIR1 = +ifndef V + QUIET_CC = @echo ' ' CC $@; + QUIET_GEN = @echo ' ' GEN $@; + QUIET_AR = @echo ' ' AR $@; + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ; echo ' ' SUBDIR $$subdir; \ + ${MAKE} -s -C $$subdir +endif + +.PHONY: all dev check tests distclean clean + +all: libhmmer-impl.stamp +dev: ${UTESTS} ${BENCHMARKS} ${EXAMPLES} +check: ${UTESTS} +tests: ${UTESTS} + +libhmmer-impl.stamp: ${OBJS} + ${QUIET_AR}${AR} -r ../libhmmer.a $? > /dev/null 2>&1 + @${RANLIB} ../libhmmer.a + @echo "impl_lib objects compiled:\c" > $@ + @date >> $@ + +.FORCE: + +${OBJS}: ${HDRS} ../hmmer.h + +.c.o: + ${QUIET_CC}${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${DEFS} ${MYINCDIRS} -c $< + +${UTESTS}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h + @BASENAME=`echo $@ | sed -e 's/_utest//'| sed -e 's/^p7_//'` ;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_TESTDRIVE ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +${BENCHMARKS}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h + @BASENAME=`echo $@ | sed -e 's/_benchmark//' | sed -e 's/^p7_//'`;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_BENCHMARK ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +${EXAMPLES}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h + @BASENAME=`echo $@ | sed -e 's/_example//'| sed -e 's/^p7_//'` ;\ + DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ + DFLAG=p7$${DFLAG}_EXAMPLE ;\ + if test -e ${srcdir}/p7_$${BASENAME}.c; then \ + DFILE=${srcdir}/p7_$${BASENAME}.c ;\ + else \ + DFILE=${srcdir}/$${BASENAME}.c ;\ + fi;\ + if test ${V} ;\ + then echo "${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ + else echo ' ' GEN $@ ;\ + fi ;\ + ${CC} ${CFLAGS} ${PIC_CFLAGS} ${PTHREAD_CFLAGS} ${VMX_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} + +clean: + -rm -f impl_lib.stamp + -rm -f ${UTESTS} + -rm -f ${BENCHMARKS} + -rm -f ${EXAMPLES} + -rm -f *.o *~ Makefile.bak core TAGS gmon.out cscope.out + -rm -f *.gcno + for prog in ${UTESTS} ${BENCHMARKS} ${EXAMPLES}; do \ + if test -d $$prog.dSYM; then rm -rf $$prog.dSYM ; fi ;\ + done +ifndef V + @echo ' ' CLEAN impl_vmx +endif + + +distclean: clean + -rm -f Makefile + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/decoding.c b/bioinformaticsProject/hmmer/src/impl_vmx/decoding.c new file mode 100644 index 0000000..6969645 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/decoding.c @@ -0,0 +1,430 @@ +/* Posterior decoding algorithms; VMX versions. + * + * Contents: + * 1. Posterior decoding algorithms. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * + * SRE, Mon Aug 18 08:15:50 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_vmx.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +/***************************************************************** + * 1. Posterior decoding algorithms. + *****************************************************************/ + +/* Function: p7_Decoding() + * Synopsis: Posterior decoding of residue assignment. + * Incept: SRE, Fri Aug 8 14:29:42 2008 [UA217 to SFO] + * + * Purpose: Identical to except that , , + * are VMX optimized versions. See + * documentation for more info. + * + * Args: om - profile (must be the same that was used to fill , ). + * oxf - filled Forward matrix + * oxb - filled Backward matrix + * pp - RESULT: posterior decoding matrix. + * + * Returns: on success. + * + * Returns if numeric range of floating-point + * values is exceeded during posterior probability + * calculations. In this case, the matrix must not be + * used by the caller; it will contain values. To be + * safe, the caller should recalculate a generic posterior + * decoding matrix instead -- generic calculations are done + * in log probability space and are robust. + * + * However, I currently believe that this overflow only + * occurs on an unusual and ignorable situation: when a + * model is used on a region that contains + * two or more high scoring distinct alignments to the + * model. And that only happens if domain definition fails, + * after stochastic clustering, and an envelope that we + * pass to p7_domaindef.c::rescore_isolated_domain() + * erroneously contains 2+ distinct domains. (Note that + * this is different from having 2+ expected B states: that + * can happen normally, if a single consistent domain is + * better described by 2+ passes through the model). And I + * strongly believe all this only can happen on repetitive + * or biased-composition junk that we want to ignore anyway. + * Therefore the caller should be safe in ignoring any domain + * for which returns . + * + * Throws: (no abnormal error conditions) + * + * Xref: [J3/119-121]: for analysis of numeric range issues when + * overflows. + */ +int +p7_Decoding(const P7_OPROFILE *om, const P7_OMX *oxf, P7_OMX *oxb, P7_OMX *pp) +{ + vector float *ppv; + vector float *fv; + vector float *bv; + vector float totrv; + vector float zerov; + int L = oxf->L; + int M = om->M; + int Q = p7O_NQF(M); + int i,q; + float scaleproduct = 1.0 / oxb->xmx[p7X_N]; + + pp->M = M; + pp->L = L; + + zerov = (vector float) vec_splat_u32(0); + + ppv = pp->dpf[0]; + for (q = 0; q < Q; q++) { + *ppv = (vector float) vec_splat_u32(0); ppv++; + *ppv = (vector float) vec_splat_u32(0); ppv++; + *ppv = (vector float) vec_splat_u32(0); ppv++; + } + pp->xmx[p7X_E] = 0.0; + pp->xmx[p7X_N] = 0.0; + pp->xmx[p7X_J] = 0.0; + pp->xmx[p7X_C] = 0.0; + pp->xmx[p7X_B] = 0.0; + + for (i = 1; i <= L; i++) + { + ppv = pp->dpf[i]; + fv = oxf->dpf[i]; + bv = oxb->dpf[i]; + + totrv = esl_vmx_set_float(scaleproduct * oxf->xmx[i*p7X_NXCELLS+p7X_SCALE]); + + for (q = 0; q < Q; q++) + { + /* M */ + *ppv = vec_madd(*fv, *bv, zerov); + *ppv = vec_madd(*ppv, totrv, zerov); + ppv++; fv++; bv++; + + /* D */ + *ppv = (vector float) vec_splat_u32(0); + ppv++; fv++; bv++; + + /* I */ + *ppv = vec_madd(*fv, *bv, zerov); + *ppv = vec_madd(*ppv, totrv, zerov); + ppv++; fv++; bv++; + } + pp->xmx[i*p7X_NXCELLS+p7X_E] = 0.0; + pp->xmx[i*p7X_NXCELLS+p7X_N] = oxf->xmx[(i-1)*p7X_NXCELLS+p7X_N] * oxb->xmx[i*p7X_NXCELLS+p7X_N] * om->xf[p7O_N][p7O_LOOP] * scaleproduct; + pp->xmx[i*p7X_NXCELLS+p7X_J] = oxf->xmx[(i-1)*p7X_NXCELLS+p7X_J] * oxb->xmx[i*p7X_NXCELLS+p7X_J] * om->xf[p7O_J][p7O_LOOP] * scaleproduct; + pp->xmx[i*p7X_NXCELLS+p7X_C] = oxf->xmx[(i-1)*p7X_NXCELLS+p7X_C] * oxb->xmx[i*p7X_NXCELLS+p7X_C] * om->xf[p7O_C][p7O_LOOP] * scaleproduct; + pp->xmx[i*p7X_NXCELLS+p7X_B] = 0.0; + + if (oxb->has_own_scales) scaleproduct *= oxf->xmx[i*p7X_NXCELLS+p7X_SCALE] / oxb->xmx[i*p7X_NXCELLS+p7X_SCALE]; + } + + if (isinf(scaleproduct)) return eslERANGE; + else return eslOK; +} + +/* Function: p7_DomainDecoding() + * Synopsis: Posterior decoding of domain location. + * Incept: SRE, Tue Aug 5 08:39:07 2008 [Janelia] + * + * Purpose: Identical to except that , , + * are VMX optimized versions. See + * documentation for more info. + * + * Args: gm - profile + * oxf - filled Forward matrix + * oxb - filled Backward matrix + * ddef - container for the results. + * + * Returns: on success. + * + * on numeric overflow. See commentary in + * . + * + * Throws: (no abnormal error conditions) + */ +int +p7_DomainDecoding(const P7_OPROFILE *om, const P7_OMX *oxf, const P7_OMX *oxb, P7_DOMAINDEF *ddef) +{ + int L = oxf->L; + float scaleproduct = 1.0 / oxb->xmx[p7X_N]; + float njcp; + int i; + + ddef->btot[0] = 0.0; + ddef->etot[0] = 0.0; + ddef->mocc[0] = 0.0; + for (i = 1; i <= L; i++) + { + /* scaleproduct is prod_j=0^i-2 now */ + ddef->btot[i] = ddef->btot[i-1] + + (oxf->xmx[(i-1)*p7X_NXCELLS+p7X_B] * oxb->xmx[(i-1)*p7X_NXCELLS+p7X_B] * oxf->xmx[(i-1)*p7X_NXCELLS+p7X_SCALE] * scaleproduct); + + if (oxb->has_own_scales) scaleproduct *= oxf->xmx[(i-1)*p7X_NXCELLS+p7X_SCALE] / oxb->xmx[(i-1)*p7X_NXCELLS+p7X_SCALE]; + /* scaleproduct is prod_j=0^i-1 now */ + + ddef->etot[i] = ddef->etot[i-1] + + (oxf->xmx[i*p7X_NXCELLS+p7X_E] * oxb->xmx[i*p7X_NXCELLS+p7X_E] * oxf->xmx[i*p7X_NXCELLS+p7X_SCALE] * scaleproduct); + + njcp = oxf->xmx[(i-1)*p7X_NXCELLS+p7X_N] * oxb->xmx[i*p7X_NXCELLS+p7X_N] * om->xf[p7O_N][p7O_LOOP] * scaleproduct; + njcp += oxf->xmx[(i-1)*p7X_NXCELLS+p7X_J] * oxb->xmx[i*p7X_NXCELLS+p7X_J] * om->xf[p7O_J][p7O_LOOP] * scaleproduct; + njcp += oxf->xmx[(i-1)*p7X_NXCELLS+p7X_C] * oxb->xmx[i*p7X_NXCELLS+p7X_C] * om->xf[p7O_C][p7O_LOOP] * scaleproduct; + ddef->mocc[i] = 1. - njcp; + } + ddef->L = oxf->L; + + if (isinf(scaleproduct)) return eslERANGE; + else return eslOK; +} +/*------------------ end, posterior decoding --------------------*/ + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7DECODING_BENCHMARK +/* + icc -O3 -static -o decoding_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7DECODING_BENCHMARK decoding.c -lhmmer -leasel -lm + ./decoding_benchmark + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ --------------- + 21 Aug 08 3.52u (409 Mc/s) 15.36u (177 Mc/s) 318.78u (72.2 Mc/s) + + The length dependency probably indicates L1 cache missing; because we're + manipulating 3 matrices at the same time, we can't fit the calculation + in cache. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for posterior residue decoding, VMX version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *fwd = NULL; + P7_OMX *bck = NULL; + P7_OMX *pp = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float fsc, bsc; + double Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + fwd = p7_omx_Create(gm->M, L, L); + bck = p7_omx_Create(gm->M, L, L); + pp = p7_omx_Create(gm->M, L, L); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_Forward (dsq, L, om, fwd, &fsc); + p7_Backward(dsq, L, om, fwd, bck, &bsc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_Decoding(om, fwd, bck, pp); + esl_stopwatch_Stop(w); + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(fwd); + p7_omx_Destroy(bck); + p7_omx_Destroy(pp); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} +#endif /*p7DECODING_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7DECODING_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* compare results to GDecoding(). */ +static void +utest_decoding(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N, float tolerance) +{ + char *msg = "decoding unit test failed"; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *fwd = p7_omx_Create(M, L, L); + P7_OMX *bck = p7_omx_Create(M, L, L); + P7_OMX *pp = p7_omx_Create(M, L, L); + P7_GMX *gxf = p7_gmx_Create(M, L); + P7_GMX *gxb = p7_gmx_Create(M, L); + P7_GMX *gxp1 = p7_gmx_Create(M, L); + P7_GMX *gxp2 = p7_gmx_Create(M, L); + float fsc1, fsc2; + float bsc1, bsc2; + + if (p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om) != eslOK) esl_fatal(msg); + while (N--) + { + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal(msg); + if (p7_Forward (dsq, L, om, fwd, &fsc1) != eslOK) esl_fatal(msg); + if (p7_Backward (dsq, L, om, fwd, bck, &bsc1) != eslOK) esl_fatal(msg); + if (p7_Decoding(om, fwd, bck, pp) != eslOK) esl_fatal(msg); + if (p7_omx_FDeconvert(pp, gxp1) != eslOK) esl_fatal(msg); + + if (p7_GForward (dsq, L, gm, gxf, &fsc2) != eslOK) esl_fatal(msg); + if (p7_GBackward(dsq, L, gm, gxb, &bsc2) != eslOK) esl_fatal(msg); + if (p7_GDecoding(gm, gxf, gxb, gxp2) != eslOK) esl_fatal(msg); + + //p7_gmx_Dump(stdout, gxp1, p7_DEFAULT); + //p7_gmx_Dump(stdout, gxp2, p7_DEFAULT); + + if (p7_gmx_Compare(gxp1, gxp2, tolerance) != eslOK) esl_fatal(msg); + } + + p7_gmx_Destroy(gxp1); + p7_gmx_Destroy(gxp2); + p7_gmx_Destroy(gxf); + p7_gmx_Destroy(gxb); + p7_omx_Destroy(fwd); + p7_omx_Destroy(bck); + p7_omx_Destroy(pp); + free(dsq); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); +} +#endif /*p7DECODING_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7DECODING_TESTDRIVE + +/* + gcc -o decoding_utest -maltivec -g -Wall -I.. -L.. -I../../easel -L../../easel -Dp7DECODING_TESTDRIVE decoding.c -lhmmer -leasel -lm + ./decoding_utest + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgrp */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0}, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-t", eslARG_REAL, "0.01", NULL, NULL, NULL, NULL, NULL, "floating point comparison tolerance", 0 }, + { "-L", eslARG_INT, "40", NULL, NULL, NULL, NULL, NULL, "length of sampled sequences", 0 }, + { "-M", eslARG_INT, "40", NULL, NULL, NULL, NULL, NULL, "length of sampled test profile", 0 }, + { "-N", eslARG_INT, "10", NULL, NULL, NULL, NULL, NULL, "number of sampled test sequences", 0 }, + { 0,0,0,0,0,0,0,0,0,0}, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for VMX posterior decoding"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + float tol = esl_opt_GetReal (go, "-t"); + + p7_FLogsumInit(); + + utest_decoding(r, abc, bg, M, L, N, tol); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + return eslOK; +} +#endif /*p7DECODING_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/fwdback.c b/bioinformaticsProject/hmmer/src/impl_vmx/fwdback.c new file mode 100644 index 0000000..8793334 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/fwdback.c @@ -0,0 +1,1184 @@ +/* VMX implementation of Forward and Backward algorithms. + * + * Both profile and DP matrix are striped and interleaved, for fast + * SIMD vector operations. Calculations are in probability space + * (scaled odds ratios, actually) rather than log probabilities, + * allowing fast multiply/add operations rather than slow Logsum() + * calculations. Sparse rescaling is used to achieve full dynamic + * range of scores. + * + * The Forward and Backward implementations may be used either in a + * full O(ML) mode that keeps an entire DP matrix, or in a O(M+L) + * linear memory "parsing" mode that only keeps one row of memory for + * the main MDI states and one column 0..L for the special states + * B,E,N,C,J. Keeping a full matrix allows subsequent stochastic + * traceback or posterior decoding of any state. In parsing mode, we + * can do posterior decoding on the special states and determine + * regions of the target sequence that are generated by the + * nonhomology states (NCJ) versus not -- thus, identifying where + * high-probability "regions" are, the first step of identifying the + * domain structure of a target sequence. + * + * Contents: + * 1. Forward/Backward wrapper API + * 2. Forward and Backward engine implementations + * 4. Benchmark driver. + * 5. Unit tests. + * 6. Test driver. + * 7. Example. + * + * SRE, Thu Jul 31 08:43:20 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_vmx.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static int forward_engine (int do_full, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *fwd, float *opt_sc); +static int backward_engine(int do_full, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc); + + +/***************************************************************** + * 1. Forward/Backward API. + *****************************************************************/ + +/* Function: p7_Forward() + * Synopsis: The Forward algorithm, full matrix fill version. + * Incept: SRE, Fri Aug 15 18:59:43 2008 [Casa de Gatos] + * + * Purpose: Calculates the Forward algorithm for sequence of + * length residues, using optimized profile , and a + * preallocated DP matrix . Upon successful return, + * contains the filled Forward matrix, and <*opt_sc> + * optionally contains the raw Forward score in nats. + * + * This calculation requires $O(ML)$ memory and time. + * The caller must provide a suitably allocated full + * by calling or + * . + * + * The model must be configured in local alignment + * mode. The sparse rescaling method used to keep + * probability values within single-precision floating + * point dynamic range cannot be safely applied to models in + * glocal or global mode. + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - RETURN: Forward DP matrix + * opt_sc - RETURN: Forward score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small, or if the profile + * isn't in local alignment mode. + * if the score exceeds the limited range of + * a probability-space odds ratio. + * In either case, <*opt_sc> is undefined. + */ +int +p7_Forward(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *opt_sc) +{ +#if eslDEBUGLEVEL > 0 + if (om->M > ox->allocQ4*4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few columns)"); + if (L >= ox->validR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few MDI rows)"); + if (L >= ox->allocXR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few X rows)"); + if (! p7_oprofile_IsLocal(om)) ESL_EXCEPTION(eslEINVAL, "Forward implementation makes assumptions that only work for local alignment"); +#endif + + return forward_engine(TRUE, dsq, L, om, ox, opt_sc); +} + +/* Function: p7_ForwardParser() + * Synopsis: The Forward algorithm, linear memory parsing version. + * Incept: SRE, Fri Aug 15 19:05:26 2008 [Casa de Gatos] + * + * Purpose: Same as by calling or + * . + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - RETURN: Forward DP matrix + * ret_sc - RETURN: Forward score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small, or if the profile + * isn't in local alignment mode. + * if the score exceeds the limited range of + * a probability-space odds ratio. + * In either case, <*opt_sc> is undefined. + */ +int +p7_ForwardParser(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *opt_sc) +{ +#if eslDEBUGLEVEL > 0 + if (om->M > ox->allocQ4*4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few columns)"); + if (ox->validR < 1) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few MDI rows)"); + if (L >= ox->allocXR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few X rows)"); + if (! p7_oprofile_IsLocal(om)) ESL_EXCEPTION(eslEINVAL, "Forward implementation makes assumptions that only work for local alignment"); +#endif + + return forward_engine(FALSE, dsq, L, om, ox, opt_sc); +} + + + +/* Function: p7_Backward() + * Synopsis: The Backward algorithm; full matrix fill version. + * Incept: SRE, Sat Aug 16 08:34:22 2008 [Janelia] + * + * Purpose: Calculates the Backward algorithm for sequence of + * length residues, using optimized profile , and a + * preallocated DP matrix . A filled Forward matrix + * must also be provided in , because we need to use + * the same sparse scaling factors that Forward used. The + * matrix is filled in, and the Backward score (in + * nats) is optionally returned in . + * + * This calculation requires $O(ML)$ memory and time. The + * caller must provide a suitably allocated full by + * calling or + * . + * + * Because only the sparse scaling factors are needed from + * the matrix, the caller may have this matrix + * calculated either in full or parsing mode. + * + * The model must be configured in local alignment + * mode. The sparse rescaling method used to keep + * probability values within single-precision floating + * point dynamic range cannot be safely applied to models in + * glocal or global mode. + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * fwd - filled Forward DP matrix, for scale factors + * do_full - TRUE=full matrix; FALSE=linear memory parse mode + * bck - RETURN: filled Backward matrix + * opt_sc - optRETURN: Backward score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small, or if the profile + * isn't in local alignment mode. + * if the score exceeds the limited range of + * a probability-space odds ratio. + * In either case, <*opt_sc> is undefined. + */ +int +p7_Backward(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc) +{ +#if eslDEBUGLEVEL > 0 + if (om->M > bck->allocQ4*4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few columns)"); + if (L >= bck->validR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few MDI rows)"); + if (L >= bck->allocXR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few X rows)"); + if (L != fwd->L) ESL_EXCEPTION(eslEINVAL, "fwd matrix size doesn't agree with length L"); + if (! p7_oprofile_IsLocal(om)) ESL_EXCEPTION(eslEINVAL, "Forward implementation makes assumptions that only work for local alignment"); +#endif + + return backward_engine(TRUE, dsq, L, om, fwd, bck, opt_sc); +} + + + +/* Function: p7_BackwardParser() + * Synopsis: The Backward algorithm, linear memory parsing version. + * Incept: SRE, Sat Aug 16 08:34:13 2008 [Janelia] + * + * Purpose: Same as except that the full matrix isn't + * kept. Instead, a linear $O(M+L)$ memory algorithm is + * used, keeping only the DP matrix values for the special + * (BENCJ) states. These are sufficient to do posterior + * decoding to identify high-probability regions where + * domains are. + * + * The caller must provide a suitably allocated "parsing" + * by calling or + * . + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * fwd - filled Forward DP matrix, for scale factors + * bck - RETURN: filled Backward matrix + * opt_sc - optRETURN: Backward score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small, or if the profile + * isn't in local alignment mode. + * if the score exceeds the limited range of + * a probability-space odds ratio. + * In either case, <*opt_sc> is undefined. + */ +int +p7_BackwardParser(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc) +{ +#if eslDEBUGLEVEL > 0 + if (om->M > bck->allocQ4*4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few columns)"); + if (bck->validR < 1) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few MDI rows)"); + if (L >= bck->allocXR) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small (too few X rows)"); + if (L != fwd->L) ESL_EXCEPTION(eslEINVAL, "fwd matrix size doesn't agree with length L"); + if (! p7_oprofile_IsLocal(om)) ESL_EXCEPTION(eslEINVAL, "Forward implementation makes assumptions that only work for local alignment"); +#endif + + return backward_engine(FALSE, dsq, L, om, fwd, bck, opt_sc); +} + + + +/***************************************************************** + * 2. Forward/Backward engine implementations (called thru API) + *****************************************************************/ + +static int +forward_engine(int do_full, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *opt_sc) +{ + vector float mpv, dpv, ipv; /* previous row values */ + vector float sv; /* temp storage of 1 curr row value in progress */ + vector float dcv; /* delayed storage of D(i,q+1) */ + vector float xEv; /* E state: keeps max for Mk->E as we go */ + vector float xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + vector float zerov; /* splatted 0.0's in a vector */ + float xN, xE, xB, xC, xJ; /* special states' scores */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over quads 0..nq-1 */ + int j; /* counter over DD iterations (4 is full serialization) */ + int Q = p7O_NQF(om->M); /* segment length: # of vectors */ + vector float *dpc = ox->dpf[0]; /* current row, for use in {MDI}MO(dpp,q) access macro */ + vector float *dpp; /* previous row, for use in {MDI}MO(dpp,q) access macro */ + vector float *rp; /* will point at om->rfv[x] for residue x[i] */ + vector float *tp; /* will point into (and step thru) om->tfv */ + + /* Initialization. */ + ox->M = om->M; + ox->L = L; + ox->has_own_scales = TRUE; /* all forward matrices control their own scalefactors */ + zerov = (vector float) vec_splat_u32(0); + for (q = 0; q < Q; q++) + MMO(dpc,q) = IMO(dpc,q) = DMO(dpc,q) = zerov; + xE = ox->xmx[p7X_E] = 0.; + xN = ox->xmx[p7X_N] = 1.; + xJ = ox->xmx[p7X_J] = 0.; + xB = ox->xmx[p7X_B] = om->xf[p7O_N][p7O_MOVE]; + xC = ox->xmx[p7X_C] = 0.; + + ox->xmx[p7X_SCALE] = 1.0; + ox->totscale = 0.0; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpFBRow(ox, TRUE, 0, 9, 5, xE, xN, xJ, xB, xC); /* logify=TRUE, =0, width=8, precision=5*/ +#endif + + for (i = 1; i <= L; i++) + { + dpp = dpc; + dpc = ox->dpf[do_full * i]; /* avoid conditional, use do_full as kronecker delta */ + rp = om->rfv[dsq[i]]; + tp = om->tfv; + dcv = (vector float) vec_splat_u32(0); + xEv = (vector float) vec_splat_u32(0); + xBv = esl_vmx_set_float(xB); + + /* Right shifts by 4 bytes. 4,8,12,x becomes x,4,8,12. Shift zeros on. */ + mpv = vec_sld(zerov, MMO(dpp,Q-1), 12); + dpv = vec_sld(zerov, DMO(dpp,Q-1), 12); + ipv = vec_sld(zerov, IMO(dpp,Q-1), 12); + + for (q = 0; q < Q; q++) + { + /* Calculate new MMO(i,q); don't store it yet, hold it in sv. */ + sv = (vector float) vec_splat_u32(0); + sv = vec_madd(xBv, *tp, sv); tp++; + sv = vec_madd(mpv, *tp, sv); tp++; + sv = vec_madd(ipv, *tp, sv); tp++; + sv = vec_madd(dpv, *tp, sv); tp++; + sv = vec_madd(sv, *rp, zerov); rp++; + xEv = vec_add(xEv, sv); + + /* Load {MDI}(i-1,q) into mpv, dpv, ipv; + * {MDI}MX(q) is then the current, not the prev row + */ + mpv = MMO(dpp,q); + dpv = DMO(dpp,q); + ipv = IMO(dpp,q); + + /* Do the delayed stores of {MD}(i,q) now that memory is usable */ + MMO(dpc,q) = sv; + DMO(dpc,q) = dcv; + + /* Calculate the next D(i,q+1) partially: M->D only; + * delay storage, holding it in dcv + */ + dcv = vec_madd(sv, *tp, zerov); tp++; + + /* Calculate and store I(i,q); assumes odds ratio for emission is 1.0 */ + sv = vec_madd(mpv, *tp, zerov); tp++; + IMO(dpc,q) = vec_madd(ipv, *tp, sv); tp++; + } + + /* Now the DD paths. We would rather not serialize them but + * in an accurate Forward calculation, we have few options. + */ + /* dcv has carried through from end of q loop above; store it + * in first pass, we add M->D and D->D path into DMX + */ + /* We're almost certainly're obligated to do at least one complete + * DD path to be sure: + */ + dcv = vec_sld(zerov, dcv, 12); + DMO(dpc,0) = (vector float) vec_splat_u32(0); + tp = om->tfv + 7*Q; /* set tp to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMO(dpc,q) = vec_add(dcv, DMO(dpc,q)); + dcv = vec_madd(DMO(dpc,q), *tp, zerov); tp++; /* extend DMO(q), so we include M->D and D->D paths */ + } + + /* now. on small models, it seems best (empirically) to just go + * ahead and serialize. on large models, we can do a bit better, + * by testing for when dcv (DD path) accrued to DMO(q) is below + * machine epsilon for all q, in which case we know DMO(q) are all + * at their final values. The tradeoff point is (empirically) somewhere around M=100, + * at least on my desktop. We don't worry about the conditional here; + * it's outside any inner loops. + */ + if (om->M < 100) + { /* Fully serialized version */ + for (j = 1; j < 4; j++) + { + dcv = vec_sld(zerov, dcv, 12); + tp = om->tfv + 7*Q; /* set tp to start of the DD's */ + for (q = 0; q < Q; q++) + { /* note, extend dcv, not DMO(q); only adding DD paths now */ + DMO(dpc,q) = vec_add(dcv, DMO(dpc,q)); + dcv = vec_madd(dcv, *tp, zerov); tp++; + } + } + } + else + { /* Slightly parallelized version, but which incurs some overhead */ + for (j = 1; j < 4; j++) + { + vector bool int cv; /* keeps track of whether any DD's change DMO(q) */ + + dcv = vec_sld(zerov, dcv, 12); + tp = om->tfv + 7*Q; /* set tp to start of the DD's */ + cv = (vector bool int) vec_splat_u32(0); + for (q = 0; q < Q; q++) + { /* using cmpgt below tests if DD changed any DMO(q) *without* conditional branch */ + sv = vec_add(dcv, DMO(dpc,q)); + cv = vec_or(cv, vec_cmpgt(sv, DMO(dpc,q))); + DMO(dpc,q) = sv; /* store new DMO(q) */ + dcv = vec_madd(dcv, *tp, zerov); tp++; /* note, extend dcv, not DMO(q) */ + } + /* DD's didn't change any DMO(q)? Then done, break out. */ + if (vec_all_eq(cv, (vector bool int)zerov)) break; + } + } + + /* Add D's to xEv */ + for (q = 0; q < Q; q++) xEv = vec_add(DMO(dpc,q), xEv); + + /* Finally the "special" states, which start from Mk->E (->C, ->J->B) */ + /* The following incantation is a horizontal sum of xEv's elements */ + /* These must follow DD calculations, because D's contribute to E in Forward + * (as opposed to Viterbi) + */ + xE = esl_vmx_hsum_float(xEv); + + xN = xN * om->xf[p7O_N][p7O_LOOP]; + xC = (xC * om->xf[p7O_C][p7O_LOOP]) + (xE * om->xf[p7O_E][p7O_MOVE]); + xJ = (xJ * om->xf[p7O_J][p7O_LOOP]) + (xE * om->xf[p7O_E][p7O_LOOP]); + xB = (xJ * om->xf[p7O_J][p7O_MOVE]) + (xN * om->xf[p7O_N][p7O_MOVE]); + /* and now xB will carry over into next i, and xC carries over after i=L */ + + /* Sparse rescaling. xE above threshold? trigger a rescaling event. */ + if (xE > 1.0e4) /* that's a little less than e^10, ~10% of our dynamic range */ + { + xN = xN / xE; + xC = xC / xE; + xJ = xJ / xE; + xB = xB / xE; + xEv = esl_vmx_set_float(1.0 / xE); + for (q = 0; q < Q; q++) + { + MMO(dpc,q) = vec_madd(MMO(dpc,q), xEv, zerov); + DMO(dpc,q) = vec_madd(DMO(dpc,q), xEv, zerov); + IMO(dpc,q) = vec_madd(IMO(dpc,q), xEv, zerov); + } + ox->xmx[i*p7X_NXCELLS+p7X_SCALE] = xE; + ox->totscale += log(xE); + xE = 1.0; + } + else ox->xmx[i*p7X_NXCELLS+p7X_SCALE] = 1.0; + + /* Storage of the specials. We could've stored these already + * but using xE, etc. variables makes it easy to convert this + * code to O(M) memory versions just by deleting storage steps. + */ + ox->xmx[i*p7X_NXCELLS+p7X_E] = xE; + ox->xmx[i*p7X_NXCELLS+p7X_N] = xN; + ox->xmx[i*p7X_NXCELLS+p7X_J] = xJ; + ox->xmx[i*p7X_NXCELLS+p7X_B] = xB; + ox->xmx[i*p7X_NXCELLS+p7X_C] = xC; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpFBRow(ox, TRUE, i, 9, 5, xE, xN, xJ, xB, xC); /* logify=TRUE, =i, width=8, precision=5*/ +#endif + } /* end loop over sequence residues 1..L */ + + /* finally C->T, and flip total score back to log space (nats) */ + /* On overflow, xC is inf or nan (nan arises because inf*0 = nan). */ + /* On an underflow (which shouldn't happen), we counterintuitively return infinity: + * the effect of this is to force the caller to rescore us with full range. + */ + if (isnan(xC)) ESL_EXCEPTION(eslERANGE, "forward score is NaN"); + else if (L>0 && xC == 0.0) ESL_EXCEPTION(eslERANGE, "forward score underflow (is 0.0)"); /* [J5/118] */ + else if (isinf(xC) == 1) ESL_EXCEPTION(eslERANGE, "forward score overflow (is infinity)"); + + if (opt_sc != NULL) *opt_sc = ox->totscale + log(xC * om->xf[p7O_C][p7O_MOVE]); + return eslOK; +} + + + +static int +backward_engine(int do_full, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc) +{ + vector float mpv, ipv, dpv; /* previous row values */ + vector float mcv, dcv; /* current row values */ + vector float tmmv, timv, tdmv; /* tmp vars for accessing rotated transition scores */ + vector float xBv; /* collects B->Mk components of B(i) */ + vector float xEv; /* splatted E(i) */ + vector float zerov; /* splatted 0.0's in a vector */ + float xN, xE, xB, xC, xJ; /* special states' scores */ + int i; /* counter over sequence positions 0,1..L */ + int q; /* counter over quads 0..Q-1 */ + int Q = p7O_NQF(om->M); /* segment length: # of vectors */ + int j; /* DD segment iteration counter (4 = full serialization) */ + vector float *dpc; /* current DP row */ + vector float *dpp; /* next ("previous") DP row */ + vector float *rp; /* will point into om->rfv[x] for residue x[i+1] */ + vector float *tp; /* will point into (and step thru) om->tfv transition scores */ + + /* initialize the L row. */ + bck->M = om->M; + bck->L = L; + bck->has_own_scales = FALSE; /* backwards scale factors are *usually* given by */ + dpc = bck->dpf[L * do_full]; + xJ = 0.0; + xB = 0.0; + xN = 0.0; + xC = om->xf[p7O_C][p7O_MOVE]; /* C<-T */ + xE = xC * om->xf[p7O_E][p7O_MOVE]; /* E<-C, no tail */ + xEv = esl_vmx_set_float(xE); + zerov = (vector float) vec_splat_u32(0); + dcv = (vector float) vec_splat_u32(0);; /* solely to silence a compiler warning */ + for (q = 0; q < Q; q++) MMO(dpc,q) = DMO(dpc,q) = xEv; + for (q = 0; q < Q; q++) IMO(dpc,q) = zerov; + + /* init row L's DD paths, 1) first segment includes xE, from DMO(q) */ + tp = om->tfv + 8*Q - 1; /* <*tp> now the [4 8 12 x] TDD quad */ + dpv = vec_sld(DMO(dpc,Q-1), zerov, 4); + for (q = Q-1; q >= 1; q--) + { + DMO(dpc,q) = vec_madd(dpv, *tp, DMO(dpc,q)); tp--; + dpv = DMO(dpc,q); + } + dcv = vec_madd(dpv, *tp, zerov); + DMO(dpc,q) = vec_add(DMO(dpc,q), dcv); + + /* 2) three more passes, only extending DD component (dcv only; no xE contrib from DMO(q)) */ + for (j = 1; j < 4; j++) + { + tp = om->tfv + 8*Q - 1; /* <*tp> now the [4 8 12 x] TDD quad */ + dcv = vec_sld(dcv, zerov, 4); + for (q = Q-1; q >= 0; q--) + { + dcv = vec_madd(dcv, *tp, zerov); tp--; + DMO(dpc,q) = vec_add(DMO(dpc,q), dcv); + } + } + + /* now MD init */ + tp = om->tfv + 7*Q - 3; /* <*tp> now the [4 8 12 x] Mk->Dk+1 quad */ + dcv = vec_sld(DMO(dpc,0), zerov, 4); + for (q = Q-1; q >= 0; q--) + { + MMO(dpc,q) = vec_madd(dcv, *tp, MMO(dpc,q)); tp -= 7; + dcv = DMO(dpc,q); + } + + /* Sparse rescaling: same scale factors as fwd matrix */ + if (fwd->xmx[L*p7X_NXCELLS+p7X_SCALE] > 1.0) + { + xE = xE / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xN = xN / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xC = xC / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xJ = xJ / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xB = xB / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + xEv = esl_vmx_set_float(1.0 / fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]); + for (q = 0; q < Q; q++) { + MMO(dpc,q) = vec_madd(MMO(dpc,q), xEv, zerov); + DMO(dpc,q) = vec_madd(DMO(dpc,q), xEv, zerov); + IMO(dpc,q) = vec_madd(IMO(dpc,q), xEv, zerov); + } + } + bck->xmx[L*p7X_NXCELLS+p7X_SCALE] = fwd->xmx[L*p7X_NXCELLS+p7X_SCALE]; + bck->totscale = log(bck->xmx[L*p7X_NXCELLS+p7X_SCALE]); + + /* Stores */ + bck->xmx[L*p7X_NXCELLS+p7X_E] = xE; + bck->xmx[L*p7X_NXCELLS+p7X_N] = xN; + bck->xmx[L*p7X_NXCELLS+p7X_J] = xJ; + bck->xmx[L*p7X_NXCELLS+p7X_B] = xB; + bck->xmx[L*p7X_NXCELLS+p7X_C] = xC; + +#if eslDEBUGLEVEL > 0 + if (bck->debugging) p7_omx_DumpFBRow(bck, TRUE, L, 9, 4, xE, xN, xJ, xB, xC); /* logify=TRUE, =L, width=9, precision=4*/ +#endif + + /* main recursion */ + for (i = L-1; i >= 1; i--) /* backwards stride */ + { + /* phase 1. B(i) collected. Old row destroyed, new row contains + * complete I(i,k), partial {MD}(i,k) w/ no {MD}->{DE} paths yet. + */ + dpc = bck->dpf[i * do_full]; + dpp = bck->dpf[(i+1) * do_full]; + rp = om->rfv[dsq[i+1]] + Q-1; /* <*rp> is now the [4 8 12 x] match emission quad */ + tp = om->tfv + 7*Q - 1; /* <*tp> is now the [4 8 12 x] TII transition quad */ + + /* leftshift the first transition quads */ + tmmv = vec_sld(om->tfv[1], zerov, 4); + timv = vec_sld(om->tfv[2], zerov, 4); + tdmv = vec_sld(om->tfv[3], zerov, 4); + + mpv = vec_madd(MMO(dpp,0), om->rfv[dsq[i+1]][0], zerov); /* precalc M(i+1,k+1)*e(M_k+1,x_{i+1}) */ + mpv = vec_sld(mpv, zerov, 4); + + xBv = zerov; + for (q = Q-1; q >= 0; q--) /* backwards stride */ + { + vector float t1; + + ipv = IMO(dpp,q); /* assumes emission odds ratio of 1.0; i+1's IMO(q) now free */ + t1 = vec_madd(mpv, timv, zerov); + IMO(dpc,q) = vec_madd(ipv, *tp, t1); tp--; + DMO(dpc,q) = vec_madd(mpv, tdmv, zerov); + t1 = vec_madd(mpv, tmmv, zerov); + mcv = vec_madd(ipv, *tp, t1); tp -= 2; + + /* obtain mpv for next q. i+1's MMO(q) is freed */ + mpv = vec_madd(MMO(dpp,q), *rp, zerov); rp--; + MMO(dpc,q) = mcv; + + tdmv = *tp; tp--; + timv = *tp; tp--; + tmmv = *tp; tp--; + + xBv = vec_madd(mpv, *tp, xBv); tp--; + } + + /* phase 2: now that we have accumulated the B->Mk transitions in xBv, we can do the specials */ + xB = esl_vmx_hsum_float(xBv); + + xC = xC * om->xf[p7O_C][p7O_LOOP]; + xJ = (xB * om->xf[p7O_J][p7O_MOVE]) + (xJ * om->xf[p7O_J][p7O_LOOP]); /* must come after xB */ + xN = (xB * om->xf[p7O_N][p7O_MOVE]) + (xN * om->xf[p7O_N][p7O_LOOP]); /* must come after xB */ + xE = (xC * om->xf[p7O_E][p7O_MOVE]) + (xJ * om->xf[p7O_E][p7O_LOOP]); /* must come after xJ, xC */ + xEv = esl_vmx_set_float(xE); /* splat */ + + + /* phase 3: {MD}->E paths and one step of the D->D paths */ + tp = om->tfv + 8*Q - 1; /* <*tp> now the [4 8 12 x] TDD quad */ + dpv = vec_add(DMO(dpc,0), xEv); + dpv = vec_sld(dpv, zerov, 4); + for (q = Q-1; q >= 1; q--) + { + dcv = vec_madd(dpv, *tp, xEv); tp--; + DMO(dpc,q) = vec_add(DMO(dpc,q), dcv); + dpv = DMO(dpc,q); + MMO(dpc,q) = vec_add(MMO(dpc,q), xEv); + } + dcv = vec_madd(dpv, *tp, zerov); + DMO(dpc,q) = vec_add(DMO(dpc,q), vec_add(dcv, xEv)); + MMO(dpc,q) = vec_add(MMO(dpc,q), xEv); + + /* phase 4: finish extending the DD paths */ + /* fully serialized for now */ + for (j = 1; j < 4; j++) /* three passes: we've already done 1 segment, we need 4 total */ + { + dcv = vec_sld(dcv, zerov, 4); + tp = om->tfv + 8*Q - 1; /* <*tp> now the [4 8 12 x] TDD quad */ + for (q = Q-1; q >= 0; q--) + { + dcv = vec_madd(dcv, *tp, zerov); tp--; + DMO(dpc,q) = vec_add(DMO(dpc,q), dcv); + } + } + + /* phase 5: add M->D paths */ + dcv = vec_sld(DMO(dpc,0), zerov, 4); + tp = om->tfv + 7*Q - 3; /* <*tp> is now the [4 8 12 x] Mk->Dk+1 quad */ + for (q = Q-1; q >= 0; q--) + { + MMO(dpc,q) = vec_madd(dcv, *tp, MMO(dpc,q)); tp -= 7; + dcv = DMO(dpc,q); + } + + /* Sparse rescaling */ + + /* In rare cases [J3/119] scale factors from are + * insufficient and backwards will overflow. In this case, we + * switch on the fly to using our own scale factors, different + * from those in . This will complicate subsequent + * posterior decoding routines. + */ + if (xB > 1.0e16) bck->has_own_scales = TRUE; + + if (bck->has_own_scales) bck->xmx[i*p7X_NXCELLS+p7X_SCALE] = (xB > 1.0e4) ? xB : 1.0; + else bck->xmx[i*p7X_NXCELLS+p7X_SCALE] = fwd->xmx[i*p7X_NXCELLS+p7X_SCALE]; + + if (bck->xmx[i*p7X_NXCELLS+p7X_SCALE] > 1.0) + { + xE /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xN /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xJ /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xB /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xC /= bck->xmx[i*p7X_NXCELLS+p7X_SCALE]; + xBv = esl_vmx_set_float(1.0 / bck->xmx[i*p7X_NXCELLS+p7X_SCALE]); + for (q = 0; q < Q; q++) { + MMO(dpc,q) = vec_madd(MMO(dpc,q), xBv, zerov); + DMO(dpc,q) = vec_madd(DMO(dpc,q), xBv, zerov); + IMO(dpc,q) = vec_madd(IMO(dpc,q), xBv, zerov); + } + bck->totscale += log(bck->xmx[i*p7X_NXCELLS+p7X_SCALE]); + } + + /* Stores are separate only for pedagogical reasons: easy to + * turn this into a more memory efficient version just by + * deleting the stores. + */ + bck->xmx[i*p7X_NXCELLS+p7X_E] = xE; + bck->xmx[i*p7X_NXCELLS+p7X_N] = xN; + bck->xmx[i*p7X_NXCELLS+p7X_J] = xJ; + bck->xmx[i*p7X_NXCELLS+p7X_B] = xB; + bck->xmx[i*p7X_NXCELLS+p7X_C] = xC; + +#if eslDEBUGLEVEL > 0 + if (bck->debugging) p7_omx_DumpFBRow(bck, TRUE, i, 9, 4, xE, xN, xJ, xB, xC); /* logify=TRUE, =i, width=9, precision=4*/ +#endif + } /* thus ends the loop over sequence positions i */ + + /* Termination at i=0, where we can only reach N,B states. */ + dpp = bck->dpf[1 * do_full]; + tp = om->tfv; /* <*tp> is now the [1 5 9 13] TBMk transition quad */ + rp = om->rfv[dsq[1]]; /* <*rp> is now the [1 5 9 13] match emission quad */ + xBv = (vector float) vec_splat_u32(0); + for (q = 0; q < Q; q++) + { + mpv = vec_madd(MMO(dpp,q), *rp, zerov); rp++; + xBv = vec_madd(mpv, *tp, xBv); tp += 7; + } + /* horizontal sum of xBv */ + xB = esl_vmx_hsum_float(xBv); + + xN = (xB * om->xf[p7O_N][p7O_MOVE]) + (xN * om->xf[p7O_N][p7O_LOOP]); + + bck->xmx[p7X_B] = xB; + bck->xmx[p7X_C] = 0.0; + bck->xmx[p7X_J] = 0.0; + bck->xmx[p7X_N] = xN; + bck->xmx[p7X_E] = 0.0; + bck->xmx[p7X_SCALE] = 1.0; + +#if eslDEBUGLEVEL > 0 + dpc = bck->dpf[0]; + for (q = 0; q < Q; q++) /* Not strictly necessary, but if someone's looking at DP matrices, this is nice to do: */ + MMO(dpc,q) = DMO(dpc,q) = IMO(dpc,q) = zerov; + if (bck->debugging) p7_omx_DumpFBRow(bck, TRUE, 0, 9, 4, bck->xmx[p7X_E], bck->xmx[p7X_N], bck->xmx[p7X_J], bck->xmx[p7X_B], bck->xmx[p7X_C]); /* logify=TRUE, =0, width=9, precision=4*/ +#endif + + if (isnan(xN)) ESL_EXCEPTION(eslERANGE, "backward score is NaN"); + else if (L>0 && xN == 0.0) ESL_EXCEPTION(eslERANGE, "backward score underflow (is 0.0)"); /* [J5/118] */ + else if (isinf(xN) == 1) ESL_EXCEPTION(eslERANGE, "backward score overflow (is infinity)"); + + if (opt_sc != NULL) *opt_sc = bck->totscale + log(xN); + return eslOK; +} +/*-------------- end, forward/backward engines -----------------*/ + + + + + +/***************************************************************** + * 4. Benchmark driver. + *****************************************************************/ +#ifdef p7FWDBACK_BENCHMARK +/* -c, -x options are for debugging and testing: see fwdfilter.c for explanation */ +/* + icc -O3 -static -o fwdback_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7FWDBACK_BENCHMARK fwdback.c -lhmmer -leasel -lm + + ./fwdback_benchmark runs benchmark on both Forward and Backward parser + ./fwdback_benchmark -c -N100 compare scores of VMX to generic impl + ./fwdback_benchmark -x -N100 test that scores match trusted implementation. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { "-F", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-B", "only benchmark Forward", 0 }, + { "-B", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-F", "only benchmark Backward", 0 }, + { "-P", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "benchmark parsing version, not full version", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for Forward, Backward implementations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *fwd = NULL; + P7_OMX *bck = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float fsc, bsc; + float fsc2, bsc2; + double base_time, bench_time, Mcs; + + p7_FLogsumInit(); + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + if (esl_opt_GetBoolean(go, "-x") && p7_FLogsumError(-0.4, -0.5) > 0.0001) + p7_Fail("-x here requires p7_Logsum() recompiled in slow exact mode"); + + if (esl_opt_GetBoolean(go, "-P")) { + fwd = p7_omx_Create(gm->M, 0, L); + bck = p7_omx_Create(gm->M, 0, L); + } else { + fwd = p7_omx_Create(gm->M, L, L); + bck = p7_omx_Create(gm->M, L, L); + } + gx = p7_gmx_Create(gm->M, L); + + /* Get a baseline time: how long it takes just to generate the sequences */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + if (esl_opt_GetBoolean(go, "-P")) { + if (! esl_opt_GetBoolean(go, "-B")) p7_ForwardParser (dsq, L, om, fwd, &fsc); + if (! esl_opt_GetBoolean(go, "-F")) p7_BackwardParser(dsq, L, om, fwd, bck, &bsc); + } else { + if (! esl_opt_GetBoolean(go, "-B")) p7_Forward (dsq, L, om, fwd, &fsc); + if (! esl_opt_GetBoolean(go, "-F")) p7_Backward(dsq, L, om, fwd, bck, &bsc); + } + + if (esl_opt_GetBoolean(go, "-c") || esl_opt_GetBoolean(go, "-x")) + { + p7_GForward (dsq, L, gm, gx, &fsc2); + p7_GBackward(dsq, L, gm, gx, &bsc2); + printf("%.4f %.4f %.4f %.4f\n", fsc, bsc, fsc2, bsc2); + } + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(bck); + p7_omx_Destroy(fwd); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7FWDBACK_BENCHMARK*/ +/*------------------- end, benchmark driver ---------------------*/ + + + + + +/***************************************************************** + * 5. Unit tests. + *****************************************************************/ +#ifdef p7FWDBACK_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* + * compare to GForward() scores. + */ +static void +utest_fwdback(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + char *msg = "forward/backward unit test failed"; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *fwd = p7_omx_Create(M, 0, L); + P7_OMX *bck = p7_omx_Create(M, 0, L); + P7_OMX *oxf = p7_omx_Create(M, L, L); + P7_OMX *oxb = p7_omx_Create(M, L, L); + P7_GMX *gx = p7_gmx_Create(M, L); + float tolerance; + float fsc1, fsc2; + float bsc1, bsc2; + float generic_sc; + + p7_FLogsumInit(); + if (p7_FLogsumError(-0.4, -0.5) > 0.0001) tolerance = 1.0; /* weaker test against GForward() */ + else tolerance = 0.0001; /* stronger test: FLogsum() is in slow exact mode. */ + + p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om); + while (N--) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_Forward (dsq, L, om, oxf, &fsc1); + p7_Backward (dsq, L, om, oxf, oxb, &bsc1); + p7_ForwardParser (dsq, L, om, fwd, &fsc2); + p7_BackwardParser(dsq, L, om, fwd, bck, &bsc2); + p7_GForward (dsq, L, gm, gx, &generic_sc); + + /* Forward and Backward scores should agree with high tolerance */ + if (fabs(fsc1-bsc1) > 0.0001) esl_fatal(msg); + if (fabs(fsc2-bsc2) > 0.0001) esl_fatal(msg); + if (fabs(fsc1-fsc2) > 0.0001) esl_fatal(msg); + + /* GForward scores should approximate Forward scores, + * with tolerance that depends on how logsum.c was compiled + */ + if (fabs(fsc1-generic_sc) > tolerance) esl_fatal(msg); + } + + free(dsq); + p7_hmm_Destroy(hmm); + p7_omx_Destroy(oxb); + p7_omx_Destroy(oxf); + p7_omx_Destroy(bck); + p7_omx_Destroy(fwd); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); +} +#endif /*p7FWDBACK_TESTDRIVE*/ +/*---------------------- end, unit tests ------------------------*/ + + + + +/***************************************************************** + * 6. Test driver + *****************************************************************/ +#ifdef p7FWDBACK_TESTDRIVE +/* + gcc -g -Wall -maltivec -std=gnu99 -o fwdback_utest -I.. -L.. -I../../easel -L../../easel -Dp7FWDBACK_TESTDRIVE fwdback.c -lhmmer -leasel -lm + ./fwdback_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "145", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for VMX Forward, Backward implementations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* First round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_fwdback(r, abc, bg, M, L, N); /* normal sized models */ + utest_fwdback(r, abc, bg, 1, L, 10); /* size 1 models */ + utest_fwdback(r, abc, bg, M, 1, 10); /* size 1 sequences */ + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + /* Second round of tests for amino alphabets. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_fwdback(r, abc, bg, M, L, N); + utest_fwdback(r, abc, bg, 1, L, 10); + utest_fwdback(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*p7FWDBACK_TESTDRIVE*/ +/*--------------------- end, test driver ------------------------*/ + + + +/***************************************************************** + * 7. Example + *****************************************************************/ +#ifdef p7FWDBACK_EXAMPLE +/* Useful for debugging on small HMMs and sequences. + * + * Compares to GForward(). + * + gcc -g -Wall -maltivec -std=gnu99 -o fwdback_example -I.. -L.. -I../../easel -L../../easel -Dp7FWDBACK_EXAMPLE fwdback.c -lhmmer -leasel -lm + ./fwdback_example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_exponential.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in one line awkable format", 0 }, + { "-P", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in profmark format", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of Forward/Backward (VMX versions)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *fwd = NULL; + P7_OMX *bck = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float fraw, braw, nullsc, fsc; + float gfraw, gbraw, gfsc; + double P, gP; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Open sequence file for reading */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_UNILOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + /* p7_oprofile_Dump(stdout, om); */ + + /* allocate DP matrices for O(M+L) parsers */ + fwd = p7_omx_Create(gm->M, 0, sq->n); + bck = p7_omx_Create(gm->M, 0, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + + /* allocate DP matrices for O(ML) fills */ + /* fwd = p7_omx_Create(gm->M, sq->n, sq->n); */ + /* bck = p7_omx_Create(gm->M, sq->n, sq->n); */ + + /* p7_omx_SetDumpMode(stdout, fwd, TRUE); */ /* makes the fast DP algorithms dump their matrices */ + /* p7_omx_SetDumpMode(stdout, bck, TRUE); */ + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) + { + p7_oprofile_ReconfigLength(om, sq->n); + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_omx_GrowTo(fwd, om->M, 0, sq->n); + p7_omx_GrowTo(bck, om->M, 0, sq->n); + p7_gmx_GrowTo(gx, gm->M, sq->n); + + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + + p7_ForwardParser (sq->dsq, sq->n, om, fwd, &fraw); + p7_BackwardParser(sq->dsq, sq->n, om, fwd, bck, &braw); + + /* p7_Forward (sq->dsq, sq->n, om, fwd, &fsc); printf("forward: %.2f nats\n", fsc); */ + /* p7_Backward(sq->dsq, sq->n, om, fwd, bck, &bsc); printf("backward: %.2f nats\n", bsc); */ + + /* Comparison to other F/B implementations */ + p7_GForward (sq->dsq, sq->n, gm, gx, &gfraw); + p7_GBackward (sq->dsq, sq->n, gm, gx, &gbraw); + + /* p7_gmx_Dump(stdout, gx, p7_DEFAULT); */ + + fsc = (fraw-nullsc) / eslCONST_LOG2; + gfsc = (gfraw-nullsc) / eslCONST_LOG2; + P = esl_exp_surv(fsc, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + gP = esl_exp_surv(gfsc, gm->evparam[p7_FTAU], gm->evparam[p7_FLAMBDA]); + + if (esl_opt_GetBoolean(go, "-1")) + { + printf("%-30s\t%-20s\t%9.2g\t%6.1f\t%9.2g\t%6.1f\n", sq->name, hmm->name, P, fsc, gP, gfsc); + } + else if (esl_opt_GetBoolean(go, "-P")) + { /* output suitable for direct use in profmark benchmark postprocessors: */ + printf("%g\t%.2f\t%s\t%s\n", P, fsc, sq->name, hmm->name); + } + else + { + printf("target sequence: %s\n", sq->name); + printf("fwd filter raw score: %.2f nats\n", fraw); + printf("bck filter raw score: %.2f nats\n", braw); + printf("null score: %.2f nats\n", nullsc); + printf("per-seq score: %.2f bits\n", fsc); + printf("P-value: %g\n", P); + printf("GForward raw score: %.2f nats\n", gfraw); + printf("GBackward raw score: %.2f nats\n", gbraw); + printf("GForward seq score: %.2f bits\n", gfsc); + printf("GForward P-value: %g\n", gP); + } + + esl_sq_Reuse(sq); + } + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_omx_Destroy(bck); + p7_omx_Destroy(fwd); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7FWDBACK_EXAMPLE*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/impl_vmx.h b/bioinformaticsProject/hmmer/src/impl_vmx/impl_vmx.h new file mode 100644 index 0000000..a452b2e --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/impl_vmx.h @@ -0,0 +1,414 @@ +/* VMX optimized implementation of various MSV, Viterbi, and Forward + * routines: structures, declarations, and macros. + * + * SRE, Sun Nov 25 11:23:02 2007 + */ +#ifndef P7_IMPL_VMX_INCLUDED +#define P7_IMPL_VMX_INCLUDED +#include "p7_config.h" + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "esl_alphabet.h" +#include "esl_random.h" + +#include "hmmer.h" + +/* In calculating Q, the number of vectors we need in a row, we have + * to make sure there's at least 2, or a striped implementation fails. + */ +#define p7O_NQB(M) ( ESL_MAX(2, ((((M)-1) / 16) + 1))) /* 16 uchars */ +#define p7O_NQW(M) ( ESL_MAX(2, ((((M)-1) / 8) + 1))) /* 8 words */ +#define p7O_NQF(M) ( ESL_MAX(2, ((((M)-1) / 4) + 1))) /* 4 floats */ + + +/***************************************************************** + * 1. P7_OPROFILE: an optimized score profile + *****************************************************************/ +/* The OPROFILE is striped [Farrar07] and interleaved, as is the DP matrix. + * For example, the layout of a profile for an M=14 model (xref J2/46): + * + * rsc[x] : striped blocks of M emissions, starting with q=0 + * 1 11 1 1 + * 1593 2604 371x 482x + * + * tsc: grouped in order of accession in DP for 7 transition scores; + * starting at q=0 for all but the three transitions to M, which + * are rotated by -1 and rightshifted. DD's follow separately, + * starting at q=0. + * + * { 1 1 1 1 1 1 1 } + * { 1593 x482 x482 x482 1593 1593 1593 } + * { [tBMk] [tMM] [tIM] [tDM] [tMD] [tMI] [tII] } + * + * { 11 1 1 1 11 11 11 } + * { 2604 1593 1593 1593 2604 2604 2604 } + * { [tBMk] [tMM] [tIM] [tDM] [tMD] [tMI] [tII] } + * + * { 1 11 11 11 1 1 1 } + * { 371x 2604 2604 2604 371x 371x 371x } + * { [tBMk] [tMM] [tIM] [tDM] [tMD] [tMI] [tII] } + * + * { 1 1 1 1 1 1 1 } + * { 482x 371x 371x 371x 482x 482x 482x } + * { [tBMk] [tMM] [tIM] [tDM] [tMD] [tMI] [tII] } + * + * { 1 11 1 1 } + * { 1593 2604 371x 482x } + * { [TDD] [TDD] [TDD] [TDD] } + * + */ + +#define p7O_NXSTATES 4 /* special states stored: ENJC */ +#define p7O_NXTRANS 2 /* special states all have 2 transitions: move, loop */ +#define p7O_NTRANS 8 /* 7 core transitions + BMk entry */ +enum p7o_xstates_e { p7O_E = 0, p7O_N = 1, p7O_J = 2, p7O_C = 3 }; +enum p7o_xtransitions_e { p7O_MOVE = 0, p7O_LOOP = 1 }; +enum p7o_tsc_e { p7O_BM = 0, p7O_MM = 1, p7O_IM = 2, p7O_DM = 3, p7O_MD = 4, p7O_MI = 5, p7O_II = 6, p7O_DD = 7 }; + +typedef struct p7_oprofile_s { + /* MSVFilter uses scaled, biased uchars: 16x unsigned byte vectors */ + vector unsigned char **rbv; /* match scores [x][q]: rm, rm[0] are allocated */ + uint8_t tbm_b; /* constant B->Mk cost: scaled log 2/M(M+1) */ + uint8_t tec_b; /* constant E->C cost: scaled log 0.5 */ + uint8_t tjb_b; /* constant NCJ move cost: scaled log 3/(L+3) */ + float scale_b; /* typically 3 / log2: scores scale to 1/3 bits */ + uint8_t base_b; /* typically +190: offset of uchar scores */ + uint8_t bias_b; /* positive bias to emission scores, make them >=0 */ + + /* ViterbiFilter uses scaled swords: 8x signed 16-bit integer vectors */ + vector signed short **rwv; /* [x][q]: rw, rw[0] are allocated [Kp][Q8] */ + vector signed short *twv; /* transition score blocks [8*Q8] */ + int16_t xw[p7O_NXSTATES][p7O_NXTRANS]; /* NECJ state transition costs */ + float scale_w; /* score units: typically 500 / log(2), 1/500 bits */ + int16_t base_w; /* offset of sword scores: typically +12000 */ + int16_t ddbound_w; /* threshold precalculated for lazy DD evaluation */ + float ncj_roundoff; /* missing precision on NN,CC,JJ after rounding */ + + /* Forward, Backward use IEEE754 single-precision floats: 4x vectors */ + vector float **rfv; /* [x][q]: rf, rf[0] are allocated [Kp][Q4] */ + vector float *tfv; /* transition probability blocks [8*Q4] */ + float xf[p7O_NXSTATES][p7O_NXTRANS]; /* NECJ transition costs */ + + /* Our actual vector mallocs, before we align the memory */ + vector unsigned char *rbv_mem; + vector signed short *rwv_mem; + vector signed short *twv_mem; + vector float *tfv_mem; + vector float *rfv_mem; + + /* Disk offset information for hmmpfam's fast model retrieval */ + off_t offs[p7_NOFFSETS]; /* p7_{MFP}OFFSET, or -1 */ + + /* Disk offset bookkeeping for h3f: */ + off_t roff; /* record offset (start of record); -1 if none */ + off_t eoff; /* offset to last byte of record; -1 if unknown */ + + /* Information, annotation copied from parent profile: */ + char *name; /* unique name of model */ + char *acc; /* unique accession of model, or NULL */ + char *desc; /* brief (1-line) description of model, or NULL */ + char *rf; /* reference line 1..M; *ref=0: unused */ + char *mm; /* modelmask line 1..M; *ref=0: unused */ + char *cs; /* consensus structure line 1..M, *cs=0: unused */ + char *consensus; /* consensus residues for ali display, 1..M */ + float evparam[p7_NEVPARAM]; /* parameters for determining E-values, or UNSET */ + float cutoff[p7_NCUTOFFS]; /* per-seq/per-dom bit cutoffs, or UNSET */ + float compo[p7_MAXABET]; /* per-model HMM filter composition, or UNSET */ + const ESL_ALPHABET *abc; /* copy of ptr to alphabet information */ + + /* Information about current configuration, size, allocation */ + int L; /* current configured target seq length */ + int M; /* model length */ + int max_length; /* upper bound on emitted seq length */ + int allocM; /* maximum model length currently allocated for */ + int allocQ4; /* p7_NQF(allocM): alloc size for tf, rf */ + int allocQ8; /* p7_NQW(allocM): alloc size for tw, rw */ + int allocQ16; /* p7_NQB(allocM): alloc size for rb */ + int mode; /* currently must be p7_LOCAL */ + float nj; /* expected # of J's: 0 or 1, uni vs. multihit */ + + int clone; /* this optimized profile structure is just a copy */ + /* of another profile structre. all pointers of */ + /* this structure should not be freed. */ +} P7_OPROFILE; + +typedef struct { + int count; /* number of objects in the block */ + int listSize; /* maximum number elements in the list */ + P7_OPROFILE **list; /* array of objects */ +} P7_OM_BLOCK; + +/* retrieve match odds ratio [k][x] + * this gets used in p7_alidisplay.c, when we're deciding if a residue is conserved or not */ +static inline float +p7_oprofile_FGetEmission(const P7_OPROFILE *om, int k, int x) +{ + union { vector float v; float p[4]; } u; + int Q = p7O_NQF(om->M); + int q = ((k-1) % Q); + int r = (k-1)/Q; + u.v = om->rfv[x][q]; + return u.p[r]; +} + +/***************************************************************** + * 2. P7_OMX: a one-row dynamic programming matrix + *****************************************************************/ + +enum p7x_scells_e { p7X_M = 0, p7X_D = 1, p7X_I = 2 }; +#define p7X_NSCELLS 3 + +/* Besides ENJBC states, we may also store a rescaling factor on each row */ +enum p7x_xcells_e { p7X_E = 0, p7X_N = 1, p7X_J = 2, p7X_B = 3, p7X_C = 4, p7X_SCALE = 5 }; +#define p7X_NXCELLS 6 + +/* + * + * dpf[][] + * to access M(i,k) for i=0,1..L; k=1..M: dpf[i][(k-1)/4 + p7X_M].element[(k-1)%4] + * + * xmx[] arrays for individual special states: + * xmx[ENJBC] = [0 1 2 3][4 5 6 7]..[L-2 L-1 L x] XRQ >= (L/4)+1 + * to access B[i] for example, for i=0..L: xmx[B][i/4].x[i%4] (quad i/4; element i%4). + */ +typedef struct p7_omx_s { + int M; /* current actual model dimension */ + int L; /* current actual sequence dimension */ + + /* The main dynamic programming matrix for M,D,I states */ + vector float **dpf; /* striped DP matrix for [0,1..L][0..Q-1][MDI], float vectors */ + vector signed short **dpw; /* striped DP matrix for [0,1..L][0..Q-1][MDI], sword vectors */ + vector unsigned char **dpb; /* striped DP matrix for [0,1..L][0..Q-1] uchar vectors */ + void *dp_mem; /* DP memory shared by , , */ + int allocR; /* current allocated # rows in dp{uf}. allocR >= validR >= L+1 */ + int validR; /* current # of rows actually pointing at DP memory */ + int allocQ4; /* current set row width in quads: allocQ4*4 >= M */ + int allocQ8; /* current set row width in octets: allocQ8*8 >= M */ + int allocQ16; /* current set row width in 16-mers: allocQ16*16 >= M */ + size_t ncells; /* current allocation size of , in accessible cells */ + + /* The X states (for full,parser; or NULL, for scorer) */ + float *xmx; /* logically [0.1..L][ENJBCS]; indexed [i*p7X_NXCELLS+s] */ + void *x_mem; /* X memory before 16-byte alignment */ + int allocXR; /* # of rows allocated in each xmx[] array; allocXR >= L+1 */ + float totscale; /* log of the product of all scale factors (0.0 if unscaled) */ + int has_own_scales; /* TRUE to use own scale factors; FALSE if scales provided */ + + /* Parsers,scorers only hold a row at a time, so to get them to dump full matrix, it + * must be done during a DP calculation, after each row is calculated + */ + int debugging; /* TRUE if we're in debugging mode */ + FILE *dfp; /* output stream for diagnostics */ +} P7_OMX; + +/* ?MXo(q) access macros work for either uchar or float, so long as you + * init your "dp" to point to the appropriate array. + */ +#define MMXo(q) (dp[(q) * p7X_NSCELLS + p7X_M]) +#define DMXo(q) (dp[(q) * p7X_NSCELLS + p7X_D]) +#define IMXo(q) (dp[(q) * p7X_NSCELLS + p7X_I]) +#define XMXo(i,s) (xmx[(i) * p7X_NXCELLS + s]) + +/* and this version works with a ptr to the approp DP row. */ +#define MMO(dp,q) ((dp)[(q) * p7X_NSCELLS + p7X_M]) +#define DMO(dp,q) ((dp)[(q) * p7X_NSCELLS + p7X_D]) +#define IMO(dp,q) ((dp)[(q) * p7X_NSCELLS + p7X_I]) + +static inline float +p7_omx_FGetMDI(const P7_OMX *ox, int s, int i, int k) +{ + union { vector float v; float p[4]; } u; + int Q = p7O_NQF(ox->M); + int q = p7X_NSCELLS * ((k-1) % Q) + s; + int r = (k-1)/Q; + u.v = ox->dpf[i][q]; + return u.p[r]; +} + +static inline void +p7_omx_FSetMDI(const P7_OMX *ox, int s, int i, int k, float val) +{ + union { vector float v; float p[4]; } u; + int Q = p7O_NQF(ox->M); + int q = p7X_NSCELLS * ((k-1) % Q) + s; + int r = (k-1)/Q; + + u.v = ox->dpf[i][q]; + u.p[r] = val; + ox->dpf[i][q] = u.v; +} + + + +/***************************************************************** + * 3. Declarations of the external API. + *****************************************************************/ + +/* p7_omx.c */ +extern P7_OMX *p7_omx_Create(int allocM, int allocL, int allocXL); +extern int p7_omx_GrowTo(P7_OMX *ox, int allocM, int allocL, int allocXL); +extern int p7_omx_FDeconvert(P7_OMX *ox, P7_GMX *gx); +extern int p7_omx_Reuse (P7_OMX *ox); +extern void p7_omx_Destroy(P7_OMX *ox); + +extern int p7_omx_SetDumpMode(FILE *fp, P7_OMX *ox, int truefalse); +extern int p7_omx_DumpMFRow(P7_OMX *ox, int rowi, uint8_t xE, uint8_t xN, uint8_t xJ, uint8_t xB, uint8_t xC); +extern int p7_omx_DumpVFRow(P7_OMX *ox, int rowi, int16_t xE, int16_t xN, int16_t xJ, int16_t xB, int16_t xC); +extern int p7_omx_DumpFBRow(P7_OMX *ox, int logify, int rowi, int width, int precision, float xE, float xN, float xJ, float xB, float xC); + + + +/* p7_oprofile.c */ +extern P7_OPROFILE *p7_oprofile_Create(int M, const ESL_ALPHABET *abc); +extern int p7_oprofile_IsLocal(const P7_OPROFILE *om); +extern void p7_oprofile_Destroy(P7_OPROFILE *om); +extern size_t p7_oprofile_Sizeof(P7_OPROFILE *om); +extern P7_OPROFILE *p7_oprofile_Copy(P7_OPROFILE *om); +extern P7_OPROFILE *p7_oprofile_Clone(const P7_OPROFILE *om); +extern int p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr); +extern int p7_oprofile_UpdateVitEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr); +extern int p7_oprofile_UpdateMSVEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr); + +extern int p7_oprofile_Convert(const P7_PROFILE *gm, P7_OPROFILE *om); +extern int p7_oprofile_ReconfigLength (P7_OPROFILE *om, int L); +extern int p7_oprofile_ReconfigMSVLength (P7_OPROFILE *om, int L); +extern int p7_oprofile_ReconfigRestLength(P7_OPROFILE *om, int L); +extern int p7_oprofile_ReconfigMultihit (P7_OPROFILE *om, int L); +extern int p7_oprofile_ReconfigUnihit (P7_OPROFILE *om, int L); + +extern int p7_oprofile_Dump(FILE *fp, const P7_OPROFILE *om); +extern int p7_oprofile_Sample(ESL_RANDOMNESS *r, const ESL_ALPHABET *abc, const P7_BG *bg, int M, int L, + P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_OPROFILE **ret_om); +extern int p7_oprofile_Compare(const P7_OPROFILE *om1, const P7_OPROFILE *om2, float tol, char *errmsg); +extern int p7_profile_SameAsMF(const P7_OPROFILE *om, P7_PROFILE *gm); +extern int p7_profile_SameAsVF(const P7_OPROFILE *om, P7_PROFILE *gm); + +extern int p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr ); +extern int p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr ); +extern int p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr ); +extern int p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr ); + +/* decoding.c */ +extern int p7_Decoding (const P7_OPROFILE *om, const P7_OMX *oxf, P7_OMX *oxb, P7_OMX *pp); +extern int p7_DomainDecoding(const P7_OPROFILE *om, const P7_OMX *oxf, const P7_OMX *oxb, P7_DOMAINDEF *ddef); + +/* fwdback.c */ +extern int p7_Forward (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *fwd, float *opt_sc); +extern int p7_ForwardParser (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *fwd, float *opt_sc); +extern int p7_Backward (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc); +extern int p7_BackwardParser(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *fwd, P7_OMX *bck, float *opt_sc); + +/* io.c */ +extern int p7_oprofile_Write(FILE *ffp, FILE *pfp, P7_OPROFILE *om); +extern int p7_oprofile_ReadMSV (P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OPROFILE **ret_om); +extern int p7_oprofile_ReadInfoMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OPROFILE **ret_om); +extern int p7_oprofile_ReadBlockMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OM_BLOCK *hmmBlock); +extern int p7_oprofile_ReadRest(P7_HMMFILE *hfp, P7_OPROFILE *om); +extern int p7_oprofile_Position(P7_HMMFILE *hfp, off_t offset); + +extern P7_OM_BLOCK *p7_oprofile_CreateBlock(int size); +extern void p7_oprofile_DestroyBlock(P7_OM_BLOCK *block); + +/* msvfilter.c */ +extern int p7_MSVFilter (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc); +extern int p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist); + +/* null2.c */ +extern int p7_Null2_ByExpectation(const P7_OPROFILE *om, const P7_OMX *pp, float *null2); +extern int p7_Null2_ByTrace (const P7_OPROFILE *om, const P7_TRACE *tr, int zstart, int zend, P7_OMX *wrk, float *null2); + +/* optacc.c */ +extern int p7_OptimalAccuracy(const P7_OPROFILE *om, const P7_OMX *pp, P7_OMX *ox, float *ret_e); +extern int p7_OATrace (const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, P7_TRACE *tr); + +/* stotrace.c */ +extern int p7_StochasticTrace(ESL_RANDOMNESS *rng, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *ox, + P7_TRACE *tr); + +/* vitfilter.c */ +extern int p7_ViterbiFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc); +extern int p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, + float filtersc, double P, P7_HMM_WINDOWLIST *windowlist); + + +/* vitscore.c */ +extern int p7_ViterbiScore (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc); + + + +/***************************************************************** + * 3. Implementation specific initialization + *****************************************************************/ +static inline void +impl_Init(void) +{ +} + + +static inline void +impl_ThreadInit(void) +{ +} +#endif /* P7_IMPL_VMX_INCLUDED */ + + + +/* + * Currently (and this remains in flux as of 14 Dec 07) an optimized + * implementation is required to provide an MSVFilter(), + * ViterbiFilter() and a ForwardFilter() implementation. A call to + * p7_oprofile_Convert() makes an optimized profile that works for + * all filters. + * + * Any "Filter" returns a score may be an approximation (with + * characterized or at least characterizable error), and which may + * have limited upper range, such that high scores are returned as + * eslINFINITY. Additionally, Filters might only work on local + * alignment modes, because they are allowed to make assumptions about + * the range of scores. + * + * Here, MSVFilter() and ViterbiFilter() are 8-bit lspace + * implementations with limited precision and limited range (max 20 + * bits); ForwardFilter() is a pspace float implementation with + * correct precision and limited range (max ~127 bits). Both require + * local mode models. + * + * An optimized implementation may also provide other optimized + * routines. It provides specialized Convert*() functions for these, + * which may no-op (if the OPROFILE already suffices), or may + * overwrite parts of the OPROFILE that Filters or other routines + * might need. Therefore, after using a "bonus" function, a fresh + * Convert() will be needed before a Filter() is called again. This + * API is tentative. + * + * For example, here, ViterbiScore() is a 32-bit lspace float VMX + * implementation of the Viterbi algorithm. + * + * A "Score" function might be an additional target for optimization, + * for example. A "Score" function returns a correct score with full + * floating-point precision and range, and works for any mode model. + * + * In the generic implementation, profile scores are 32-bit floating + * point log-odds scores. In an optimized implementation, internally, + * profile scores can be of any type, and may be in log space (lspace) + * or probability space (pspace). (Calculations in probability space + * are useful in the Forward algorithm, but always limit range.) A + * shorthand of "lspace uchar" means log-odds scores stored as + * unsigned chars, for example; "pspace float" means odds ratios + * stored as floats. + * + * A note on memory alignment: malloc() is required to return a + * pointer "suitably aligned so that it may be aligned to a pointer of + * any type of object" (C99 7.20.3). vectors are 128-bits wide, + * so malloc() ought to return a pointer aligned on a 16-byte + * boundary. However, this is not the case for glibc, and apparently + * other system libraries. Google turns up threads of arguments + * between glibc and gcc developers over whose problem this is; this + * argument has apparently not been resolved, and is of no help. + * Here, we manually align the relevant pointers by overallocating in + * *_mem with malloc, then arithmetically manipulating the address to + * mask off (~0xf). + */ diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/io.c b/bioinformaticsProject/hmmer/src/impl_vmx/io.c new file mode 100644 index 0000000..ad88551 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/io.c @@ -0,0 +1,1017 @@ +/* Saving optimized profiles in two pieces: MSV part and the rest. + * + * To accelerate hmmscan, which is limited by speed of HMM input, + * hmmpress saves an optimized profile in two pieces. One file gets + * a bare minimum of information needed to run the MSV filter. + * The other file gets the rest of the profile. Both files are binary, + * stored exactly as the has the information internally. + * + * By convention, hmmpress calls the two files .h3f and + * .h3p, which nominally stand for "H3 filter" and "H3 + * profile". + * + * Contents: + * 1. Writing optimized profiles to two files. + * 2. Reading optimized profiles in two stages. + * 3. Utility routines. + * 4. Benchmark driver. + * 5. Unit tests. + * 6. Test driver. + * 7. Example. + * + * TODO: + * - crossplatform binary compatibility (endedness and off_t) + * - Write() could save a tag (model #) instead of name for verifying + * that MSV and Rest parts match, saving a malloc for var-lengthed name + * in ReadRest(). + * + */ +#include "p7_config.h" + +#include +#include +#include + +#ifdef HMMER_THREADS +#include +#endif + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static uint32_t v3f_fmagic = 0xb3e6e6f6; /* 3/f binary MSV file, VMX: "3ffv" = 0x 33 66 66 76 + 0x80808080 */ +static uint32_t v3f_pmagic = 0xb3e6f0f6; /* 3/f binary profile file, VMX: "3fpv" = 0x 33 66 70 76 + 0x80808080 */ + +static uint32_t v3e_fmagic = 0xb3e5e6f6; /* 3/e binary MSV file, VMX: "3efv" = 0x 33 65 66 76 + 0x80808080 */ +static uint32_t v3e_pmagic = 0xb3e5f0f6; /* 3/e binary profile file, VMX: "3epv" = 0x 33 65 70 76 + 0x80808080 */ + +static uint32_t v3d_fmagic = 0xb3e4e6f6; /* 3/d binary MSV file, VMX: "3dfv" = 0x 33 64 66 76 + 0x80808080 */ +static uint32_t v3d_pmagic = 0xb3e4f0f6; /* 3/d binary profile file, VMX: "3dpv" = 0x 33 64 70 76 + 0x80808080 */ + +static uint32_t v3c_fmagic = 0xb3e3e6f6; /* 3/c binary MSV file, VMX: "3cfv" = 0x 33 63 66 76 + 0x80808080 */ +static uint32_t v3c_pmagic = 0xb3e3f0f6; /* 3/c binary profile file, VMX: "3cpv" = 0x 33 63 70 76 + 0x80808080 */ + +static uint32_t v3b_fmagic = 0xb3e2e6f3; /* 3/b binary MSV file, VMX: "3bfs" = 0x 33 62 66 73 + 0x80808080 */ +static uint32_t v3b_pmagic = 0xb3e2f0f3; /* 3/b binary profile file, VMX: "3bps" = 0x 33 62 70 73 + 0x80808080 */ + +static uint32_t v3a_fmagic = 0xe8b3e6f3; /* 3/a binary MSV file, VMX: "h3fs" = 0x 68 33 66 73 + 0x80808080 */ +static uint32_t v3a_pmagic = 0xe8b3f0f3; /* 3/a binary profile file, VMX: "h3ps" = 0x 68 33 70 73 + 0x80808080 */ +/* the 3/a and 3/b codes should have ended in v not s, to + * distinguish VMX from SSE binary files. caught too late, now + * legacied. (SRE, 27 Oct 10) + */ + + +/***************************************************************** + *# 1. Writing optimized profiles to two files. + *****************************************************************/ + +/* Function: p7_oprofile_Write() + * Synopsis: Write an optimized profile in two files. + * + * Purpose: Write the MSV filter part of to open binary stream + * , and the rest of the model to . These two + * streams will typically be <.h3f> and <.h3p> files + * being created by hmmpress. + * + * Args: ffp - open binary stream for saving MSV filter part + * pfp - open binary stream for saving rest of profile + * om - optimized profile to save + * + * Returns: on success. + * + * Throws: on any write failure; for example, + * if disk is full. + */ +int +p7_oprofile_Write(FILE *ffp, FILE *pfp, P7_OPROFILE *om) +{ + int Q4 = p7O_NQF(om->M); + int Q8 = p7O_NQW(om->M); + int Q16 = p7O_NQB(om->M); + int n = strlen(om->name); + int x; + + /* is the part of the oprofile that MSVFilter() needs */ + if (fwrite((char *) &(v3f_fmagic), sizeof(uint32_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->M), sizeof(int), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->abc->type), sizeof(int), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &n, sizeof(int), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->name, sizeof(char), n+1, ffp) != n+1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->max_length),sizeof(int), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->tbm_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->tec_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->tjb_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->scale_b), sizeof(float), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->base_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->bias_b), sizeof(uint8_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + for (x = 0; x < om->abc->Kp; x++) + if (fwrite( (char *) om->rbv[x], sizeof(vector unsigned char), Q16, ffp) != Q16) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + if (fwrite((char *) om->evparam, sizeof(float), p7_NEVPARAM, ffp) != p7_NEVPARAM) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->offs, sizeof(off_t), p7_NOFFSETS, ffp) != p7_NOFFSETS) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->compo, sizeof(float), p7_MAXABET, ffp) != p7_MAXABET) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(v3f_fmagic), sizeof(uint32_t), 1, ffp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + /* gets the rest of the oprofile */ + if (fwrite((char *) &(v3f_pmagic), sizeof(uint32_t), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->M), sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->abc->type), sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->name, sizeof(char), n+1, pfp) != n+1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + if (om->acc == NULL) { + n = 0; + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + } else { + n = strlen(om->acc); + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->acc, sizeof(char), n+1, pfp) != n+1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + } + + if (om->desc == NULL) { + n = 0; + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + } else { + n = strlen(om->desc); + if (fwrite((char *) &n, sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->desc, sizeof(char), n+1, pfp) != n+1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + } + + if (fwrite((char *) om->rf, sizeof(char), om->M+2, pfp) != om->M+2) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->mm, sizeof(char), om->M+2, pfp) != om->M+2) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->cs, sizeof(char), om->M+2, pfp) != om->M+2) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) om->consensus, sizeof(char), om->M+2, pfp) != om->M+2) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + /* ViterbiFilter part */ + if (fwrite((char *) om->twv, sizeof(vector signed short), 8*Q8, pfp) != 8*Q8) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + for (x = 0; x < om->abc->Kp; x++) + if (fwrite( (char *) om->rwv[x], sizeof(vector signed short), Q8, pfp) != Q8) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (fwrite( (char *) om->xw[x], sizeof(int16_t), p7O_NXTRANS, pfp) != p7O_NXTRANS) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->scale_w), sizeof(float), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->base_w), sizeof(int16_t), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->ddbound_w), sizeof(int16_t), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->ncj_roundoff), sizeof(float), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + /* Forward/Backward part */ + if (fwrite((char *) om->tfv, sizeof(vector float), 8*Q4, pfp) != 8*Q4) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + for (x = 0; x < om->abc->Kp; x++) + if (fwrite( (char *) om->rfv[x], sizeof(vector float), Q4, pfp) != Q4) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (fwrite( (char *) om->xf[x], sizeof(float), p7O_NXTRANS, pfp) != p7O_NXTRANS) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + + if (fwrite((char *) om->cutoff, sizeof(float), p7_NCUTOFFS, pfp) != p7_NCUTOFFS) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->nj), sizeof(float), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->mode), sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(om->L) , sizeof(int), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + if (fwrite((char *) &(v3f_pmagic), sizeof(uint32_t), 1, pfp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "oprofile write failed"); + return eslOK; +} +/*---------------- end, writing oprofile ------------------------*/ + + + + +/***************************************************************** + * 2. Reading optimized profiles in two stages. + *****************************************************************/ + +/* Function: p7_oprofile_ReadMSV() + * Synopsis: Read MSV filter part of an optimized profile. + * + * Purpose: Read the MSV filter part of a profile from the + * <.h3f> file associated with an open HMM file . + * Allocate a new model, populate it with this minimal + * MSV filter information, and return a pointer to it + * in <*ret_om>. + * + * Our alphabet may get set by the first HMM we read. If + * <*byp_abc> is at start, create a new alphabet and + * return a pointer to it in <*byp_abc>. If <*byp_abc> is + * non-, it is assumed to be a pointer to an existing + * alphabet; we verify that the HMM's alphabet matches it + * and <*ret_abc> isn't changed. This is the same + * convention used by . + * + * The <.h3f> file was opened automatically, if it existed, + * when the HMM file was opened with . + * + * When no more HMMs remain in the file, return . + * + * Args: hfp - open HMM file, with associated .h3p file + * byp_abc - BYPASS: <*byp_abc == ESL_ALPHABET *> if known; + * <*byp_abc == NULL> if desired; + * if unwanted. + * ret_om - RETURN: newly allocated with MSV filter + * data filled in. + * + * Returns: on success. <*ret_om> is allocated here; + * caller free's with . + * <*byp_abc> is allocated here if it was requested; + * caller free's with . + * + * Returns if has no <.h3f> file open, + * or on any parsing error. + * + * Returns if the HMM we read is incompatible + * with the existing alphabet <*byp_abc> led us to expect. + * + * On any returned error, errbuf> contains an + * informative error message. + * + * Throws: on allocation error. + */ +int +p7_oprofile_ReadMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OPROFILE **ret_om) +{ + P7_OPROFILE *om = NULL; + ESL_ALPHABET *abc = NULL; + uint32_t magic; + off_t roff; + int M, Q16; + int x,n; + int alphatype; + int status; + + hfp->errbuf[0] = '\0'; + if (hfp->ffp == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no MSV profile file; hmmpress probably wasn't run"); + if (feof(hfp->ffp)) { status = eslEOF; goto ERROR; } /* normal EOF: no more profiles */ + + /* keep track of the starting offset of the MSV model */ + roff = ftello(hfp->ffp); + + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->ffp)) { status = eslEOF; goto ERROR; } + if (magic == v3a_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/a); please hmmpress your HMM file again"); + if (magic == v3b_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/b); please hmmpress your HMM file again"); + if (magic == v3c_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/c); please hmmpress your HMM file again"); + if (magic == v3d_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/d); please hmmpress your HMM file again"); + if (magic == v3e_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/e); please hmmpress your HMM file again"); + if (magic != v3f_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic; not an HMM database?"); + + if (! fread( (char *) &M, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model size M"); + if (! fread( (char *) &alphatype, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read alphabet type"); + Q16 = p7O_NQB(M); + + /* Set or verify alphabet. */ + if (byp_abc == NULL || *byp_abc == NULL) { /* alphabet unknown: whether wanted or unwanted, make a new one */ + if ((abc = esl_alphabet_Create(alphatype)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed: alphabet"); + } else { /* alphabet already known: verify it against what we see in the HMM */ + abc = *byp_abc; + if (abc->type != alphatype) + ESL_XFAIL(eslEINCOMPAT, hfp->errbuf, "Alphabet type mismatch: was %s, but current profile says %s", + esl_abc_DecodeType(abc->type), esl_abc_DecodeType(alphatype)); + } + /* Now we know the sizes of things, so we can allocate. */ + if ((om = p7_oprofile_Create(M, abc)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed: oprofile"); + om->M = M; + om->roff = roff; + + if (! fread((char *) &n, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name length"); + ESL_ALLOC(om->name, sizeof(char) * (n+1)); + if (! fread((char *) om->name, sizeof(char), n+1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name"); + + if (! fread((char *) &(om->max_length), sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read max_length"); + if (! fread((char *) &(om->tbm_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read tbm"); + if (! fread((char *) &(om->tec_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read tec"); + if (! fread((char *) &(om->tjb_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read tjb"); + if (! fread((char *) &(om->scale_b), sizeof(float), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read scale"); + if (! fread((char *) &(om->base_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read base"); + if (! fread((char *) &(om->bias_b), sizeof(uint8_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read bias"); + for (x = 0; x < abc->Kp; x++) + if (! fread((char *) om->rbv[x], sizeof(vector unsigned char), Q16, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read msv scores at %d [residue %c]", x, abc->sym[x]); + if (! fread((char *) om->evparam, sizeof(float), p7_NEVPARAM, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read stat params"); + if (! fread((char *) om->offs, sizeof(off_t), p7_NOFFSETS, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read hmmpfam offsets"); + if (! fread((char *) om->compo, sizeof(float), p7_MAXABET, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model composition"); + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no sentinel magic: .h3f file corrupted?"); + + if (magic != v3f_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad sentinel magic; .h3f file corrupted?"); + + /* keep track of the ending offset of the MSV model */ + om->eoff = ftello(hfp->ffp) - 1;; + + if (byp_abc != NULL) *byp_abc = abc; /* pass alphabet (whether new or not) back to caller, if caller wanted it */ + *ret_om = om; + return eslOK; + + ERROR: + if (abc != NULL && (byp_abc == NULL || *byp_abc == NULL)) esl_alphabet_Destroy(abc); /* destroy alphabet if we created it here */ + if (om != NULL) p7_oprofile_Destroy(om); + *ret_om = NULL; + return status; +} + + +/* Function: p7_oprofile_ReadMSVInfo() + * Synopsis: Read MSV filter info, but not the scores. + * + * Purpose: Read just enough of the MSV filter header from the + * <.h3f> file associated with an open HMM file + * to skip ahead to the next MSV filter. Allocate a new + * model, populate it with just the file offsets of this + * model and return a pointer to it in <*ret_om>. + * + * The <.h3f> file was opened automatically, if it existed, + * when the HMM file was opened with . + * + * When no more HMMs remain in the file, return . + * + * Args: hfp - open HMM file, with associated .h3p file + * byp_abc - BYPASS: <*byp_abc == ESL_ALPHABET *> if known; + * <*byp_abc == NULL> if desired; + * if unwanted. + * ret_om - RETURN: newly allocated with partial MSV + * filter data filled in. + * + * Returns: on success. <*ret_om> is allocated here; + * caller free's with . + * <*byp_abc> is allocated here if it was requested; + * caller free's with . + * + * Returns if has no <.h3f> file open, + * or on any parsing error. + * + * Returns if the HMM we read is incompatible + * with the existing alphabet <*byp_abc> led us to expect. + * + * On any returned error, errbuf> contains an + * informative error message. + * + * Throws: on allocation error. + */ +int +p7_oprofile_ReadInfoMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OPROFILE **ret_om) +{ + P7_OPROFILE *om = NULL; + ESL_ALPHABET *abc = NULL; + uint32_t magic; + off_t roff; + int M, Q16; + int n; + int alphatype; + int status; + + hfp->errbuf[0] = '\0'; + if (hfp->ffp == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no MSV profile file; hmmpress probably wasn't run"); + if (feof(hfp->ffp)) { status = eslEOF; goto ERROR; } /* normal EOF: no more profiles */ + + /* keep track of the starting offset of the MSV model */ + roff = ftello(hfp->ffp); + + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->ffp)) { status = eslEOF; goto ERROR; } + if (magic == v3a_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/a); please hmmpress your HMM file again"); + if (magic == v3b_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/b); please hmmpress your HMM file again"); + if (magic == v3c_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/c); please hmmpress your HMM file again"); + if (magic == v3d_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/d); please hmmpress your HMM file again"); + if (magic == v3e_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/e); please hmmpress your HMM file again"); + if (magic != v3f_fmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic; not an HMM database?"); + + if (! fread( (char *) &M, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model size M"); + if (! fread( (char *) &alphatype, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read alphabet type"); + Q16 = p7O_NQB(M); + + /* Set or verify alphabet. */ + if (byp_abc == NULL || *byp_abc == NULL) { /* alphabet unknown: whether wanted or unwanted, make a new one */ + if ((abc = esl_alphabet_Create(alphatype)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed: alphabet"); + } else { /* alphabet already known: verify it against what we see in the HMM */ + abc = *byp_abc; + if (abc->type != alphatype) + ESL_XFAIL(eslEINCOMPAT, hfp->errbuf, "Alphabet type mismatch: was %s, but current profile says %s", + esl_abc_DecodeType(abc->type), esl_abc_DecodeType(alphatype)); + } + /* Now we know the sizes of things, so we can allocate. */ + if ((om = p7_oprofile_Create(M, abc)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed: oprofile"); + om->M = M; + om->roff = roff; + + /* calculate the remaining length of the msv model */ + om->name = NULL; + if (!fread((char *) &n, sizeof(int), 1, hfp->ffp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name length"); + roff += (sizeof(int) * 3); /* magic, model size, and alphabet type */ + roff += sizeof(int) + n + 1; /* length, name string and terminator '\0' */ + roff += (sizeof(float) + sizeof(uint8_t) * 5); /* transition costs, bias, scale and base */ + roff += (sizeof(vector signed char) * abc->Kp * Q16); /* msv scores */ + roff += (sizeof(float) * p7_NEVPARAM); /* stat params */ + roff += (sizeof(off_t) * p7_NOFFSETS); /* hmmpfam offsets */ + roff += (sizeof(float) * p7_MAXABET); /* model composition */ + roff += sizeof(uint32_t); /* sentinel magic */ + + /* keep track of the ending offset of the MSV model */ + p7_oprofile_Position(hfp, roff); + om->eoff = ftello(hfp->ffp) - 1; + + if (byp_abc != NULL) *byp_abc = abc; /* pass alphabet (whether new or not) back to caller, if caller wanted it */ + *ret_om = om; + return eslOK; + + ERROR: + if (abc != NULL && (byp_abc == NULL || *byp_abc == NULL)) esl_alphabet_Destroy(abc); /* destroy alphabet if we created it here */ + if (om != NULL) p7_oprofile_Destroy(om); + *ret_om = NULL; + return status; +} + +/* Function: p7_oprofile_ReadBlockMSV() + * Synopsis: Read the next block of optimized profiles from a hmm file. + * + * Purpose: Reads a block of optimized profiles from open hmm file into + * . + * + * Returns: on success; the new sequence is stored in . + * + * Returns when there is no profiles left in the + * file (including first attempt to read an empty file). + * + * Otherwise return the status of the p7_oprofile_ReadMSV function. + */ +int +p7_oprofile_ReadBlockMSV(P7_HMMFILE *hfp, ESL_ALPHABET **byp_abc, P7_OM_BLOCK *hmmBlock) +{ + int i; + int size = 0; + int status = eslOK; + + hmmBlock->count = 0; + for (i = 0; i < hmmBlock->listSize; ++i) + { + status = p7_oprofile_ReadMSV(hfp, byp_abc, &hmmBlock->list[i]); + if (status != eslOK) break; + size += hmmBlock->list[i]->M; + ++hmmBlock->count; + } + + /* EOF will be returned only in the case were no profiles were read */ + if (status == eslEOF && i > 0) status = eslOK; + + return status; +} + +/* Function: p7_oprofile_ReadRest() + * Synopsis: Read the rest of an optimized profile. + * + * Purpose: Read the rest of an optimized profile from + * the <.h3p> file associated with an open HMM + * file . + * + * This is the second part of a two-part calling sequence. + * The here must be the result of a previous + * successful call on the same + * open . + * + * Args: hfp - open HMM file, from which we've previously + * called . + * om - optimized profile that was successfully + * returned by . + * + * Returns: on success, and is now a complete + * optimized profile. + * + * Returns if has no <.h3p> file open, + * or on any parsing error, and set errbuf> to + * an informative error message. + * + * Throws: if an fails to reposition the + * binary <.h3p> file. + * + * on allocation error. + */ +int +p7_oprofile_ReadRest(P7_HMMFILE *hfp, P7_OPROFILE *om) +{ + uint32_t magic; + int M, Q4, Q8; + int x,n; + char *name = NULL; + int alphatype; + int status; + +#ifdef HMMER_THREADS + /* lock the mutex to prevent other threads from reading from the optimized + * profile at the same time. + */ + if (hfp->syncRead) + { + if (pthread_mutex_lock (&hfp->readMutex) != 0) ESL_EXCEPTION(eslESYS, "mutex lock failed"); + } +#endif + + hfp->errbuf[0] = '\0'; + if (hfp->pfp == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no MSV profile file; hmmpress probably wasn't run"); + + /* Position the pfp> using offset stored in */ + if (fseeko(hfp->pfp, om->offs[p7_POFFSET], SEEK_SET) != 0) ESL_EXCEPTION(eslESYS, "fseeko() failed"); + + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read magic"); + if (magic == v3a_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/a); please hmmpress your HMM file again"); + if (magic == v3b_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/b); please hmmpress your HMM file again"); + if (magic == v3c_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/c); please hmmpress your HMM file again"); + if (magic == v3d_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/d); please hmmpress your HMM file again"); + if (magic == v3e_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "this is an outdated HMM database format (3/e); please hmmpress your HMM file again"); + if (magic != v3f_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic; not an HMM database file?"); + + if (! fread( (char *) &M, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model size M"); + if (! fread( (char *) &alphatype, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read alphabet type"); + if (! fread( (char *) &n, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name length"); + if (M != om->M) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "p/f model length mismatch"); + if (alphatype != om->abc->type) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "p/f alphabet type mismatch"); + + ESL_ALLOC(name, sizeof(char) * (n+1)); + if (! fread( (char *) name, sizeof(char), n+1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name"); + if (strcmp(name, om->name) != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "p/f name mismatch"); + + if (! fread((char *) &n, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read accession length"); + if (n > 0) { + ESL_ALLOC(om->acc, sizeof(char) * (n+1)); + if (! fread( (char *) om->acc, sizeof(char), n+1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read accession"); + } + if (! fread((char *) &n, sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read description length"); + if (n > 0) { + ESL_ALLOC(om->desc, sizeof(char) * (n+1)); + if (! fread( (char *) om->desc, sizeof(char), n+1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read description"); + } + + if (! fread((char *) om->rf, sizeof(char), M+2, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read rf annotation"); + if (! fread((char *) om->mm, sizeof(char), M+2, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read mm annotation"); + if (! fread((char *) om->cs, sizeof(char), M+2, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read cs annotation"); + if (! fread((char *) om->consensus, sizeof(char), M+2, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read consensus annotation"); + + Q4 = p7O_NQF(om->M); + Q8 = p7O_NQW(om->M); + + if (! fread((char *) om->twv, sizeof(vector signed short), 8*Q8, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read , vitfilter transitions"); + for (x = 0; x < om->abc->Kp; x++) + if (! fread( (char *) om->rwv[x], sizeof(vector signed short), Q8, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read [%d], vitfilter emissions for sym %c", x, om->abc->sym[x]); + for (x = 0; x < p7O_NXSTATES; x++) + if (! fread( (char *) om->xw[x], sizeof(int16_t), p7O_NXTRANS, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read [%d], vitfilter special transitions", x); + if (! fread((char *) &(om->scale_w), sizeof(float), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read scale_w"); + if (! fread((char *) &(om->base_w), sizeof(int16_t), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read base_w"); + if (! fread((char *) &(om->ddbound_w), sizeof(int16_t), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read ddbound_w"); + if (! fread((char *) &(om->ncj_roundoff), sizeof(float), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read ddbound_w"); + + if (! fread((char *) om->tfv, sizeof(vector float), 8*Q4, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read transitions"); + for (x = 0; x < om->abc->Kp; x++) + if (! fread( (char *) om->rfv[x], sizeof(vector float), Q4, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read [%d] emissions for sym %c", x, om->abc->sym[x]); + for (x = 0; x < p7O_NXSTATES; x++) + if (! fread( (char *) om->xf[x], sizeof(float), p7O_NXTRANS, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read [%d] special transitions", x); + + if (! fread((char *) om->cutoff, sizeof(float), p7_NCUTOFFS, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read Pfam score cutoffs"); + if (! fread((char *) &(om->nj), sizeof(float), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read nj"); + if (! fread((char *) &(om->mode), sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read mode"); + if (! fread((char *) &(om->L) , sizeof(int), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read L"); + if (! fread( (char *) &magic, sizeof(uint32_t), 1, hfp->pfp)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no sentinel magic: .h3p file corrupted?"); + + if (magic != v3f_pmagic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad sentinel magic; .h3p file corrupted?"); + +#ifdef HMMER_THREADS + if (hfp->syncRead) + { + if (pthread_mutex_unlock (&hfp->readMutex) != 0) ESL_EXCEPTION(eslESYS, "mutex unlock failed"); + } +#endif + + free(name); + return eslOK; + + ERROR: + +#ifdef HMMER_THREADS + if (hfp->syncRead) + { + if (pthread_mutex_unlock (&hfp->readMutex) != 0) ESL_EXCEPTION(eslESYS, "mutex unlock failed"); + } +#endif + + if (name != NULL) free(name); + return status; +} +/*----------- end, reading optimized profiles -------------------*/ + + +/***************************************************************** + * 3. Utility routines + *****************************************************************/ + +/* Function: p7_oprofile_CreateBlock() + * Synopsis: Create a new block of empty . + * + * Purpose: Creates a block of empty profile objects. + * + * Returns: a pointer to the new . Caller frees this + * with . + * + * Throws: if allocation fails. + */ +P7_OM_BLOCK * +p7_oprofile_CreateBlock(int count) +{ + int i = 0; + + P7_OM_BLOCK *block = NULL; + int status = eslOK; + + ESL_ALLOC(block, sizeof(*block)); + + block->count = 0; + block->listSize = 0; + block->list = NULL; + + ESL_ALLOC(block->list, sizeof(P7_OPROFILE *) * count); + block->listSize = count; + + for (i = 0; i < count; ++i) + { + block->list[i] = NULL; + } + + return block; + + ERROR: + if (block != NULL) + { + if (block->list != NULL) free(block->list); + free(block); + } + + return NULL; +} + +/* Function: p7_oprofile_DestroyBlock() + * Synopsis: Frees an . + * + * Purpose: Free a Create()'d block of profiles. + */ +void +p7_oprofile_DestroyBlock(P7_OM_BLOCK *block) +{ + int i; + + if (block == NULL) return; + + if (block->list != NULL) + { + for (i = 0; i < block->listSize; ++i) + { + if (block->list[i] != NULL) p7_oprofile_Destroy(block->list[i]); + } + free(block->list); + } + + free(block); + return; +} + +/* Function: p7_oprofile_Position() + * Synopsis: Reposition an open hmm file to an offset. + * + * Purpose: Reposition an open to offset . + * would usually be the first byte of a + * desired hmm record. + * + * Returns: on success; + * if no data can be read from this position. + * + * Throws: if the is not positionable. + * if no msv profile opened. + * if the fseeko() call fails. + */ +int +p7_oprofile_Position(P7_HMMFILE *hfp, off_t offset) +{ + if (hfp->ffp == NULL) ESL_EXCEPTION(eslEFORMAT, hfp->errbuf, "no MSV profile file; hmmpress probably wasn't run"); + if (hfp->do_stdin) ESL_EXCEPTION(eslEINVAL, "can't Position() in standard input"); + if (hfp->do_gzip) ESL_EXCEPTION(eslEINVAL, "can't Position() in a gzipped file"); + if (offset < 0) ESL_EXCEPTION(eslEINVAL, "bad offset"); + + if (fseeko(hfp->ffp, offset, SEEK_SET) != 0) ESL_EXCEPTION(eslESYS, "fseeko() failed"); + + return eslOK; +} + +/*-------------------- end, utility routines ---------------------*/ + + +/***************************************************************** + * 4. Benchmark driver. + *****************************************************************/ +#ifdef p7IO_BENCHMARK +/* + gcc -g -Wall -o benchmark-io -I.. -L.. -I../../easel -L../../easel -Dp7IO_BENCHMARK io.c -lhmmer -leasel -lm + icc -O3 -static -o benchmark-io -I.. -L.. -I../../easel -L../../easel -Dp7IO_BENCHMARK io.c -lhmmer -leasel -lm + + ./benchmark-io Pfam.msv + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for profile input"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_ALPHABET *abc = NULL; + char *msvfile = esl_opt_GetArg(go, 1); + FILE *msvfp = NULL; + P7_OPROFILE *om = NULL; + int nmodel = 0; + uint64_t totM = 0; + int status; + + esl_stopwatch_Start(w); + + if ((msvfp = fopen(msvfile, "r")) == NULL) p7_Fail("Failed to open MSV file %s for reading.\n", msvfile); + + while ((status = p7_oprofile_ReadMSV(msvfp, &abc, NULL, &om)) == eslOK) + { + nmodel++; + totM += om->M; + + p7_oprofile_Destroy(om); + } + if (status == eslEFORMAT) p7_Fail("bad file format in profile file %s", msvfile); + else if (status == eslEINCOMPAT) p7_Fail("profile file %s contains different alphabets", msvfile); + else if (status != eslEOF) p7_Fail("Unexpected error in reading profiles from %s", msvfile); + + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# number of models: %d\n", nmodel); + printf("# total M: %" PRId64 "\n", totM); + + fclose(msvfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_getopts_Destroy(go); + return 0; +} +#endif /*IO_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + +/***************************************************************** + * 5. Unit tests. + *****************************************************************/ +#ifdef p7IO_TESTDRIVE + +static void +utest_ReadWrite(P7_HMM *hmm, P7_OPROFILE *om) +{ + char *msg = "oprofile read/write unit test failure"; + ESL_ALPHABET *abc = NULL; + P7_OPROFILE *om2 = NULL; + char tmpfile[16] = "esltmpXXXXXX"; + char *mfile = NULL; + char *ffile = NULL; + char *pfile = NULL; + char *ssifile = NULL; + FILE *fp = NULL; + FILE *mfp = NULL; + FILE *ffp = NULL; + FILE *pfp = NULL; + ESL_NEWSSI *nssi = NULL; + P7_HMMFILE *hfp = NULL; + uint16_t fh = 0; + float tolerance = 0.001; + char errbuf[eslERRBUFSIZE]; + + + /* 1. A mini version of hmmpress: save the test HMM to a file along with its associated .h3{mfpi} files + */ + if ( esl_tmpfile_named(tmpfile, &fp) != eslOK) esl_fatal(msg); + if ( esl_sprintf(&mfile, "%s.h3m", tmpfile) != eslOK) esl_fatal(msg); + if ( esl_sprintf(&ffile, "%s.h3f", tmpfile) != eslOK) esl_fatal(msg); + if ( esl_sprintf(&pfile, "%s.h3p", tmpfile) != eslOK) esl_fatal(msg); + if ( esl_sprintf(&ssifile, "%s.h3i", tmpfile) != eslOK) esl_fatal(msg); + + if ( esl_newssi_Open(ssifile, TRUE, &nssi) != eslOK) esl_fatal(msg); + if (( mfp = fopen(mfile, "wb")) == NULL) esl_fatal(msg); + if (( ffp = fopen(ffile, "wb")) == NULL) esl_fatal(msg); + if (( pfp = fopen(pfile, "wb")) == NULL) esl_fatal(msg); + + /* the disk offsets are all 0 by construction, if there's only one + * HMM in the file - but don't want to forget them, if we change the + * unit test in the future to be multi HMM + */ + if ((om->offs[p7_MOFFSET] = ftello(mfp)) == -1) esl_fatal(msg); + if ((om->offs[p7_FOFFSET] = ftello(ffp)) == -1) esl_fatal(msg); + if ((om->offs[p7_POFFSET] = ftello(pfp)) == -1) esl_fatal(msg); + + if ( p7_hmmfile_WriteASCII(fp, -1, hmm) != eslOK) esl_fatal(msg); + if ( p7_hmmfile_WriteBinary(mfp, -1, hmm) != eslOK) esl_fatal(msg); + if ( p7_oprofile_Write(ffp, pfp, om) != eslOK) esl_fatal(msg); + + if ( esl_newssi_AddFile(nssi, tmpfile, 0, &fh) != eslOK) esl_fatal(msg); + if ( esl_newssi_AddKey (nssi, hmm->name, fh, om->offs[p7_MOFFSET], 0, 0) != eslOK) esl_fatal(msg); + if ( esl_newssi_Write(nssi) != eslOK) esl_fatal(msg); + + fclose(fp); + fclose(mfp); + fclose(ffp); + fclose(pfp); + esl_newssi_Close(nssi); + + /* 2. read the optimized profile back in */ + if ( p7_hmmfile_OpenE(tmpfile, NULL, &hfp, NULL) != eslOK) esl_fatal(msg); + if ( p7_oprofile_ReadMSV(hfp, &abc, &om2) != eslOK) esl_fatal(msg); + if ( p7_oprofile_ReadRest(hfp, om2) != eslOK) esl_fatal(msg); + + /* 3. it should be identical to the original */ + if ( p7_oprofile_Compare(om, om2, tolerance, errbuf) != eslOK) esl_fatal("%s\n%s", msg, errbuf); + + p7_oprofile_Destroy(om2); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + remove(ssifile); + remove(ffile); + remove(pfile); + remove(mfile); + remove(tmpfile); + + free(ssifile); + free(mfile); + free(ffile); + free(pfile); +} + +#endif /*p7IO_TESTDRIVE*/ +/*------------------ end, unit tests ----------------------------*/ + + +/***************************************************************** + * 6. Test driver + *****************************************************************/ +#ifdef p7IO_TESTDRIVE +/* + gcc -g -Wall -maltivec -std=gnu99 -o io_utest -I.. -L.. -I../../easel -L../../easel -Dp7IO_TESTDRIVE io.c -lhmmer -leasel -lm + ./io_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-M", eslARG_INT, "45", NULL, NULL, NULL, NULL, NULL, "size of random model to sample", 0 }, + { "-L", eslARG_INT, "45", NULL, NULL, NULL, NULL, NULL, "configure model for length ", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for VMX Forward, Backward implementations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + P7_HMM *hmm = NULL; + P7_OPROFILE *om = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + + /* Sample a random HMM and optimized profile, in amino acid alphabet. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if (( p7_oprofile_Sample(r, abc, bg, M, L, &hmm, NULL, &om)) != eslOK) esl_fatal("failed to sample HMM and profile"); + + /* unit test(s) */ + utest_ReadWrite(hmm, om); + + p7_oprofile_Destroy(om); + p7_hmm_Destroy(hmm); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} + +#endif /*p7IO_TESTDRIVE*/ +/*------------------- end, test driver --------------------------*/ + + + +/***************************************************************** + * 7. Example. + *****************************************************************/ +#ifdef p7IO_EXAMPLE +/* gcc -g -Wall -Dp7IO_EXAMPLE -I.. -I../../easel -L.. -L../../easel -o io_example io.c -lhmmer -leasel -lm + * ./io_example + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "verbose: print model info as they're read", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of writing MSV profile part"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_ALPHABET *abc = NULL; + char *hmmfile = esl_opt_GetArg(go, 1); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + char *fname = NULL; + char *pname = NULL; + FILE *ffp = NULL; + FILE *pfp = NULL; + int nmodel = 0; + uint64_t totM = 0; + int status; + char errbuf[eslERRBUFSIZE]; + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + esl_sprintf(&fname, "%s.h3f", hmmfile); + esl_sprintf(&pname, "%s.h3f", hmmfile); + if ((ffp = fopen(fname, "wb")) == NULL) p7_Fail("failed to open %s\n", fname); + if ((pfp = fopen(pname, "wb")) == NULL) p7_Fail("failed to open %s\n", pname); + free(fname); + free(pname); + + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) == eslOK) + { + if (nmodel == 0) { /* first time initialization, now that alphabet known */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, 400); + } + + if (esl_opt_GetBoolean(go, "-v")) printf("%s\n", hmm->name); + nmodel++; + totM += hmm->M; + + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + p7_oprofile_Write(ffp, pfp, om); + + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + p7_hmm_Destroy(hmm); + } + if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", hmmfile); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", hmmfile); + else if (status != eslEOF) p7_Fail("Unexpected error in reading HMMs from %s", hmmfile); + + fclose(ffp); + fclose(pfp); + p7_bg_Destroy(bg); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*IO_EXAMPLE*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/mpi.c b/bioinformaticsProject/hmmer/src/impl_vmx/mpi.c new file mode 100644 index 0000000..38b2e82 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/mpi.c @@ -0,0 +1,785 @@ +/* Optional support for MPI parallelization. + * + * Contents: + * 1. Communicating P7_OPROFILE, a score profile. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * + * SRE, Thu Jun 14 09:59:20 2007 [Janelia] [Tom Waits, Orphans] + */ +#include "p7_config.h" + +#ifdef HMMER_MPI +#include +#include +#include + +#include "mpi.h" + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_mpi.h" +#include "esl_getopts.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Communicating P7_OPROFILE, an optimized model. + *****************************************************************/ + +/* Function: p7_oprofile_MPISend() + * Synopsis: Send an OPROFILE as an MPI work unit. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Sends an OPROFILE as a work unit to MPI process + * (where ranges from 0..), tagged + * with MPI tag , for MPI communicator , as + * the sole workunit or result. + * + * Work units are prefixed by a status code. If is + * , the work unit is an code followed by + * the packed HMM. If is NULL, the work unit is an + * code, which knows how to + * interpret; this is typically used for an end-of-data + * signal to cleanly shut down worker processes. + * + * In order to minimize alloc/free cycles in this routine, + * caller passes a pointer to a working buffer <*buf> of + * size <*nalloc> characters. If necessary (i.e. if is + * too big to fit), <*buf> will be reallocated and <*nalloc> + * increased to the new size. As a special case, if <*buf> + * is and <*nalloc> is 0, the buffer will be + * allocated appropriately, but the caller is still + * responsible for free'ing it. + * + * Returns: on success; <*buf> may have been reallocated and + * <*nalloc> may have been increased. + * + * Throws: if an MPI call fails; if a malloc/realloc + * fails. In either case, <*buf> and <*nalloc> remain valid and useful + * memory (though the contents of <*buf> are undefined). + * + * Note: Compare to p7_hmmfile_WriteBinary(). The two operations (sending + * an HMM via MPI, or saving it as a binary file to disk) are + * similar. + */ +int +p7_oprofile_MPISend(P7_OPROFILE *om, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc) +{ + int status; + int code; + int sz, n, pos; + + /* Figure out size */ + if (MPI_Pack_size(1, MPI_INT, comm, &n) != 0) ESL_XEXCEPTION(eslESYS, "mpi pack size failed"); + if (om != NULL) { + if ((status = p7_oprofile_MPIPackSize(om, comm, &sz)) != eslOK) return status; + n += sz; + } + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Pack the status code and OPROFILE into the buffer */ + pos = 0; + code = (om == NULL) ? eslEOD : eslOK; + if (MPI_Pack(&code, 1, MPI_INT, *buf, n, &pos, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi pack failed"); + if (om != NULL) { + if ((status = p7_oprofile_MPIPack(om, *buf, n, &pos, comm)) != eslOK) return status; + } + + /* Send the packed OPROFILE to the destination. */ + if (MPI_Send(*buf, n, MPI_PACKED, dest, tag, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi send failed"); + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_oprofile_MPIPackSize() + * Synopsis: Calculates size needed to pack an OPROFILE. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Calculate an upper bound on the number of bytes + * that will need to pack an + * OPROFILE in a packed MPI message for MPI + * communicator ; return that number of bytes + * in <*ret_n>. + * + * Returns: on success, and <*ret_n> contains the answer. + * + * Throws: if an MPI call fails, and <*ret_n> is 0. + */ +int +p7_oprofile_MPIPackSize(P7_OPROFILE *om, MPI_Comm comm, int *ret_n) +{ + int status; + int n = 0; + int K = om->abc->Kp; + int len = 0; + int cnt; + int sz; + + int Q4 = p7O_NQF(om->M); + int Q8 = p7O_NQW(om->M); + int Q16 = p7O_NQB(om->M); + int vsz = sizeof(vector float); + + /* MSV Filter information */ + if (MPI_Pack_size(5, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(vsz*Q16, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += (K*sz); + + /* Viterbi Filter information */ + if (MPI_Pack_size(1, MPI_SHORT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += ((p7O_NXSTATES*p7O_NXTRANS+2)*sz); + if (MPI_Pack_size(2, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(K*vsz*Q8, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(8*vsz*Q8, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + /* Forward/Backward information */ + if (MPI_Pack_size(1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += (p7O_NXSTATES*p7O_NXTRANS*sz); + if (MPI_Pack_size(K*vsz*Q4, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(8*vsz*Q4, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + /* disk offsets */ + if (MPI_Pack_size(1, MPI_LONG_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += ((p7_NOFFSETS+2)*sz); + + /* annotation info */ + if (om->name != NULL) len += strlen(om->name) + 1; + if (om->acc != NULL) len += strlen(om->acc) + 1; + if (om->desc != NULL) len += strlen(om->desc) + 1; + if (om->rf != NULL) len += strlen(om->rf) + 1; + if (om->mm != NULL) len += strlen(om->mm) + 1; + if (om->cs != NULL) len += strlen(om->cs) + 1; + if (om->consensus != NULL) len += strlen(om->consensus) + 1; + if (MPI_Pack_size(7, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(len, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + cnt = p7_NEVPARAM + p7_NCUTOFFS + p7_MAXABET; + if (MPI_Pack_size(cnt, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + /* current model size */ + if (MPI_Pack_size(4, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + *ret_n = n; + return eslOK; + + ERROR: + *ret_n = 0; + return status; + +} + +/* Function: p7_oprofile_MPIPack() + * Synopsis: Packs an OPROFILE into MPI buffer. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Packs OPROFILE into an MPI packed message buffer + * of length bytes, starting at byte position <*position>, + * for MPI communicator . + * + * The caller must know that 's allocation of + * bytes is large enough to append the packed OPROFILE at + * position <*pos>. This typically requires a call to + * first, and reallocation if + * needed. + * + * Returns: on success; now contains the + * packed , and <*position> is set to the byte + * immediately following the last byte of the OPROFILE + * in . + * + * Throws: if an MPI call fails; or if the + * buffer's length was overflowed in trying to pack + * into . In either case, the state of + * and <*position> is undefined, and both should + * be considered to be corrupted. + */ +int +p7_oprofile_MPIPack(P7_OPROFILE *om, char *buf, int n, int *pos, MPI_Comm comm) +{ + int K = om->abc->Kp; + int atype = om->abc->type; + int len; + int x; + + int Q4 = p7O_NQF(om->M); + int Q8 = p7O_NQW(om->M); + int Q16 = p7O_NQB(om->M); + int vsz = sizeof(vector float); + + /* model configuration */ + if (MPI_Pack(&om->M, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&atype, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->L, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->mode, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->nj, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* MSV Filter information */ + if (MPI_Pack(&om->tbm_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->tec_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->tjb_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->scale_b, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->base_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->bias_b, 1, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < K; x++) + if (MPI_Pack( om->rbv[x], vsz*Q16, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* Viterbi Filter information */ + if (MPI_Pack(&om->scale_w, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->base_w, 1, MPI_SHORT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->ddbound_w, 1, MPI_SHORT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->ncj_roundoff, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( om->twv, 8*vsz*Q8, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (MPI_Pack( om->xw[x], p7O_NXTRANS, MPI_SHORT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < K; x++) + if (MPI_Pack( om->rwv[x], vsz*Q8, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* Forward/Backward information */ + if (MPI_Pack( om->tfv, 8*vsz*Q4, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (MPI_Pack( om->xf[x], p7O_NXTRANS, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + for (x = 0; x < K; x++) + if (MPI_Pack( om->rfv[x], vsz*Q4, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* Forward/Backward information */ + if (MPI_Pack( om->offs, p7_NOFFSETS, MPI_LONG_LONG_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->roff, 1, MPI_LONG_LONG_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&om->eoff, 1, MPI_LONG_LONG_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + /* Annotation information */ + len = (om->name != NULL) ? strlen(om->name)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->name, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->acc != NULL) ? strlen(om->acc)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->acc, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->desc != NULL) ? strlen(om->desc)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->desc, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->rf != NULL) ? strlen(om->rf)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->rf, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->mm != NULL) ? strlen(om->mm)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->mm, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->cs != NULL) ? strlen(om->cs)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->cs, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + len = (om->consensus != NULL) ? strlen(om->consensus)+1 : 0; + if (MPI_Pack(&len, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (len > 0) + if (MPI_Pack( om->consensus, len, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + if (MPI_Pack( om->evparam, p7_NEVPARAM, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( om->cutoff, p7_NCUTOFFS, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( om->compo, p7_MAXABET, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + if (*pos > n) ESL_EXCEPTION(eslEMEM, "buffer overflow"); + return eslOK; +} + + +/* Function: p7_oprofile_MPIUnpack() + * Synopsis: Unpacks an OPROFILE from an MPI buffer. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Unpack a newly allocated OPROFILE from MPI packed buffer + * , starting from position <*pos>, where the total length + * of the buffer in bytes is . + * + * Caller may or may not already know what alphabet the OPROFILE + * is expected to be in. A reference to the current + * alphabet is passed in . If the alphabet is unknown, + * pass <*abc = NULL>, and when the OPROFILE is received, an + * appropriate new alphabet object is allocated and passed + * back to the caller via <*abc>. If the alphabet is + * already known, <*abc> is that alphabet, and the new + * OPROFILE's alphabet type is verified to agree with it. This + * mechanism allows an application to let the first OPROFILE + * determine the alphabet type for the application, while + * still keeping the alphabet under the application's scope + * of control. + * + * Returns: on success. <*pos> is updated to the position of + * the next element in to unpack (if any). <*ret_om> + * contains a newly allocated OPROFILE, which the caller is + * responsible for free'ing. If <*abc> was passed as + * , it now points to an object that + * was allocated here; caller is responsible for free'ing + * this. + * + * Returns if the OPROFILE is in a different + * alphabet than <*abc> said to expect. In this case, + * <*abc> is unchanged, <*buf> and <*nalloc> may have been + * changed, and <*ret_om> is . + * + * Throws: on an MPI call failure. on allocation failure. + * In either case, <*ret_om> is , and the state of + * and <*pos> is undefined and should be considered to be corrupted. + */ +int +p7_oprofile_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, ESL_ALPHABET **abc, P7_OPROFILE **ret_om) +{ + int status; + int M, K, atype; + int len; + int x; + + int Q4, Q8, Q16; + int vsz = sizeof(vector float); + + P7_OPROFILE *om = NULL; + + if (MPI_Unpack(buf, n, pos, &M, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &atype, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + + /* Set or verify the alphabet */ + if (*abc == NULL) { /* still unknown: set it, pass control of it back to caller */ + if ((*abc = esl_alphabet_Create(atype)) == NULL) { status = eslEMEM; goto ERROR; } + } else { /* already known: check it */ + if ((*abc)->type != atype) { status = eslEINCOMPAT; goto ERROR; } + } + + Q4 = p7O_NQF(M); + Q8 = p7O_NQW(M); + Q16 = p7O_NQB(M); + + if ((om = p7_oprofile_Create(M, *abc)) == NULL) { status = eslEMEM; goto ERROR; } + om->M = M; + + K = (*abc)->Kp; + + /* model configuration */ + if (MPI_Unpack(buf, n, pos, &om->L, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->mode, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->nj, 1, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* MSV Filter information */ + if (MPI_Unpack(buf, n, pos, &om->tbm_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->tec_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->tjb_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->scale_b, 1, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->base_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->bias_b, 1, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < K; x++) + if (MPI_Unpack(buf, n, pos, om->rbv[x], vsz*Q16, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* Viterbi Filter information */ + if (MPI_Unpack(buf, n, pos, &om->scale_w, 1, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->base_w, 1, MPI_SHORT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->ddbound_w, 1, MPI_SHORT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->ncj_roundoff, 1, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, om->twv, 8*vsz*Q8, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (MPI_Unpack(buf, n, pos, om->xw[x], p7O_NXTRANS, MPI_SHORT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < K; x++) + if (MPI_Unpack(buf, n, pos, om->rwv[x], vsz*Q8, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* Forward/Backward information */ + if (MPI_Unpack(buf, n, pos, om->tfv, 8*vsz*Q4, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < p7O_NXSTATES; x++) + if (MPI_Unpack(buf, n, pos, om->xf[x], p7O_NXTRANS, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + for (x = 0; x < K; x++) + if (MPI_Unpack(buf, n, pos, om->rfv[x], vsz*Q4, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* Forward/Backward information */ + if (MPI_Unpack(buf, n, pos, om->offs, p7_NOFFSETS, MPI_LONG_LONG_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->roff, 1, MPI_LONG_LONG_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &om->eoff, 1, MPI_LONG_LONG_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + /* Annotation information */ + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->name, len); + if (MPI_Unpack(buf, n, pos, om->name, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->name[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->acc, len); + if (MPI_Unpack(buf, n, pos, om->acc, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->acc[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->desc, len); + if (MPI_Unpack(buf, n, pos, om->desc, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->desc[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->rf, len); + if (MPI_Unpack(buf, n, pos, om->rf, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->rf[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->mm, len); + if (MPI_Unpack(buf, n, pos, om->mm, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->mm[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->cs, len); + if (MPI_Unpack(buf, n, pos, om->cs, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->cs[len-1] = '\0'; + } + if (MPI_Unpack(buf, n, pos, &len, 1, MPI_INT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (len > 0) { + ESL_ALLOC(om->consensus, len); + if (MPI_Unpack(buf, n, pos, om->consensus, len, MPI_CHAR, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + om->consensus[len-1] = '\0'; + } + + if (MPI_Unpack(buf, n, pos, om->evparam, p7_NEVPARAM, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, om->cutoff, p7_NCUTOFFS, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, om->compo, p7_MAXABET, MPI_FLOAT, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi unpack failed"); + + *ret_om = om; + return eslOK; + + ERROR: + if (om != NULL) p7_oprofile_Destroy(om); + return status; +} + + +/* Function: p7_oprofile_MPIRecv() + * Synopsis: Receives an OPROFILE as a work unit from an MPI sender. + * Incept: MSF, Wed Oct 21, 2009 [Janelia] + * + * Purpose: Receive a work unit that consists of a single OPROFILE + * sent by MPI (<0..nproc-1>, or + * ) tagged as for MPI communicator . + * + * Work units are prefixed by a status code. If the unit's + * code is and no errors are encountered, this + * routine will return and a non- <*ret_om>. + * If the unit's code is (a shutdown signal), + * this routine returns and <*ret_om> is . + * + * Caller provides a working buffer <*buf> of size + * <*nalloc> characters. These are passed by reference, so + * that <*buf> can be reallocated and <*nalloc> increased + * if necessary. As a special case, if <*buf> is and + * <*nalloc> is 0, the buffer will be allocated + * appropriately, but the caller is still responsible for + * free'ing it. + * + * Caller may or may not already know what alphabet the OPROFILE + * is expected to be in. A reference to the current + * alphabet is passed in . If the alphabet is unknown, + * pass <*abc = NULL>, and when the OPROFILE is received, an + * appropriate new alphabet object is allocated and passed + * back to the caller via <*abc>. If the alphabet is + * already known, <*ret_abc> is that alphabet, and the new + * OPROFILE's alphabet type is verified to agree with it. This + * mechanism allows an application to let the first OPROFILE + * determine the alphabet type for the application, while + * still keeping the alphabet under the application's scope + * of control. + * + * Returns: on success. <*ret_om> contains the received OPROFILE; + * it is allocated here, and the caller is responsible for + * free'ing it. <*buf> may have been reallocated to a + * larger size, and <*nalloc> may have been increased. If + * <*abc> was passed as , it now points to an + * object that was allocated here; caller is + * responsible for free'ing this. + * + * Returns if an end-of-data signal was received. + * In this case, <*buf>, <*nalloc>, and <*abc> are left unchanged, + * and <*ret_om> is . + * + * Returns if the OPROFILE is in a different alphabet + * than <*abc> said to expect. In this case, <*abc> is unchanged, + * <*buf> and <*nalloc> may have been changed, and <*ret_om> is + * . + * + * Throws: on allocation error, in which case <*ret_om> is + * . + */ +int +p7_oprofile_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, ESL_ALPHABET **abc, P7_OPROFILE **ret_om) +{ + int status; + int code; + P7_OPROFILE *om = NULL; + int n; + int pos; + MPI_Status mpistatus; + + /* Probe first, because we need to know if our buffer is big enough. */ + MPI_Probe(source, tag, comm, &mpistatus); + MPI_Get_count(&mpistatus, MPI_PACKED, &n); + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Receive the packed work unit */ + MPI_Recv(*buf, n, MPI_PACKED, source, tag, comm, &mpistatus); + + /* Unpack it, looking at the status code prefix for EOD/EOK */ + pos = 0; + if (MPI_Unpack(*buf, n, &pos, &code, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (code == eslEOD) { *ret_om = NULL; return eslEOD; } + + return p7_oprofile_MPIUnpack(*buf, *nalloc, &pos, comm, abc, ret_om); + + ERROR: + if (om != NULL) p7_oprofile_Destroy(om); + return status; +} + +/*----------------- end, P7_OPROFILE communication -------------------*/ + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ + +#ifdef p7MPI_BENCHMARK +/* + mpicc -g -Wall -L. -I. -L ../easel -I ../easel -D p7MPI_BENCHMARK -o benchmark-mpi mpi.c -lhmmer -leasel -lm + qsub -N benchmark-mpi -j y -R y -b y -cwd -V -pe lam-mpi-tight 2 'mpirun C ./benchmark-mpi ~/notebook/1227-msp-statistics/Pfam.hmm > bench.out' + qsub -N benchmark-mpi -j y -R y -b y -cwd -V -pe lam-mpi-tight 2 'mpirun C ./benchmark-mpi -b ~/notebook/1227-msp-statistics/Pfam.hmm > bench.out' + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_alphabet.h" +#include "esl_random.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-b", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "baseline timing: don't send any HMMs", 0 }, + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for debugging MPI under gdb", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for MPI communication"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + int my_rank; + int nproc; + char *buf = NULL; + int nbuf = 0; + int subtotalM = 0; + int allM = 0; + int stalling = esl_opt_GetBoolean(go, "--stall"); + + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Comm_size(MPI_COMM_WORLD, &nproc); + + while (stalling); + + /* Master MPI process: */ + if (my_rank == 0) + { + ESL_STOPWATCH *w = esl_stopwatch_Create(); + P7_HMMFILE *hfp = NULL; + P7_OPROFILE *om = NULL; + P7_HMM *hmm = NULL; + + /* Read HMMs from a file. */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + + esl_stopwatch_Start(w); + while (p7_oprofile_ReadMSV(hfp, &abc, &om) == eslOK && + p7_oprofile_ReadRest(hfp, om) == eslOK) + { + if (!esl_opt_GetBoolean(go, "-b")) + p7_oprofile_MPISend(om, 1, 0, MPI_COMM_WORLD, &buf, &nbuf); /* 1 = dest; 0 = tag */ + + p7_hmm_Destroy(hmm); + p7_oprofile_Destroy(om); + } + p7_oprofile_MPISend(NULL, 1, 0, MPI_COMM_WORLD, &buf, &nbuf); /* send the "no more HMMs" sign */ + MPI_Reduce(&subtotalM, &allM, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + + printf("total: %d\n", allM); + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "CPU Time: "); + esl_stopwatch_Destroy(w); + } + /* Worker MPI process: */ + else + { + P7_OPROFILE *om_recd = NULL; + + while (p7_oprofile_MPIRecv(0, 0, MPI_COMM_WORLD, &buf, &nbuf, &abc, &om_recd) == eslOK) + { + subtotalM += om_recd->M; + p7_oprofile_Destroy(om_recd); + } + MPI_Reduce(&subtotalM, &allM, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + } + + free(buf); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + MPI_Finalize(); + exit(0); +} + +#endif /*p7MPI_BENCHMARK*/ +/*---------------------- end, benchmark -------------------------*/ + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7MPI_TESTDRIVE + +static void +utest_oprofileSendRecv(int my_rank, int nproc) +{ + ESL_RANDOMNESS *r = esl_randomness_CreateFast(42); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OPROFILE *om2 = NULL; + int M = 200; + int L = 400; + char *wbuf = NULL; + int wn = 0; + int i; + char errbuf[eslERRBUFSIZE]; + + p7_hmm_Sample(r, M, abc, &hmm); /* master and worker's sampled profiles are identical */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + p7_oprofile_Convert(gm, om); + p7_bg_SetLength (bg, L); + + if (my_rank == 0) + { + for (i = 1; i < nproc; i++) + { + ESL_DPRINTF1(("Master: receiving test profile\n")); + p7_oprofile_MPIRecv(MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &wbuf, &wn, &abc, &om2); + ESL_DPRINTF1(("Master: test profile received\n")); + + if (p7_oprofile_Compare(om, om2, 0.001, errbuf) != eslOK) + p7_Die("Received profile not identical to what was sent\n%s", errbuf); + + p7_oprofile_Destroy(om2); + } + } + else + { + ESL_DPRINTF1(("Worker %d: sending test profile\n", my_rank)); + p7_oprofile_MPISend(om, 0, 0, MPI_COMM_WORLD, &wbuf, &wn); + ESL_DPRINTF1(("Worker %d: test profile sent\n", my_rank)); + } + + free(wbuf); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + return; +} +#endif /*p7MPI_TESTDRIVE*/ +/*---------------------- end, unit tests ------------------------*/ + + +/***************************************************************** + * 4. Test driver. + *****************************************************************/ +#ifdef p7MPI_TESTDRIVE + +/* mpicc -o mpi_utest -g -Wall -I../easel -L../easel -I. -L. -Dp7MPI_TESTDRIVE mpi.c -lhmmer -leasel -lm + * In an MPI environment: (qlogin -pe lam-mpi-tight 2; setenv JOB_ID ; setenv TMPDIR /tmp/.... + * mpirun C ./mpi_utest + */ +#include "esl_getopts.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for debugging MPI under gdb", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for mpi.c"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + int my_rank; + int nproc; + + /* For debugging: stall until GDB can be attached */ + if (esl_opt_GetBoolean(go, "--stall")) pause(); + + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Comm_size(MPI_COMM_WORLD, &nproc); + + utest_oprofileSendRecv(my_rank, nproc); + + MPI_Finalize(); + return 0; +} + +#endif /*p7MPI_TESTDRIVE*/ +/*---------------------- end, test driver -----------------------*/ + + +#else /*!HMMER_MPI*/ +/* If we don't have MPI compiled in, provide some nothingness to: + * a. prevent Mac OS/X ranlib from bitching about .o file that "has no symbols" + * b. prevent compiler from bitching about "empty compilation unit" + * c. automatically pass the automated tests. + */ +void p7_mpi_DoAbsolutelyNothing(void) { return; } +#if defined p7MPI_TESTDRIVE || p7MPI_BENCHMARK || p7MPI_EXAMPLE +int main(void) { return 0; } +#endif +#endif /*HMMER_MPI*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/msvfilter.c b/bioinformaticsProject/hmmer/src/impl_vmx/msvfilter.c new file mode 100644 index 0000000..fa4b540 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/msvfilter.c @@ -0,0 +1,859 @@ +/* The MSV filter implementation; VMX version. + * + * A "filter" is a one-row, O(M), DP implementation that calculates an + * approximated nat score (i.e. in limited precision - here, uchar) + * and may have limited numeric range. It will return if + * its numeric range is exceeded, in which case the caller will have + * to obtain the score by another (probably slower) method. + * + * Contents: + * 1. p7_MSVFilter() implementation + * 2. Benchmark driver + * 3. Unit tests + * 4. Test driver + * 5. Example + * + * SRE, Sun Nov 25 11:26:48 2007 [Casa de Gatos] + */ +#include "p7_config.h" + +#include +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_vmx.h" +#include "esl_gumbel.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +/***************************************************************** + * 1. The p7_MSVFilter() DP implementation. + *****************************************************************/ + +/* Function: p7_MSVFilter() + * Synopsis: Calculates MSV score, vewy vewy fast, in limited precision. + * Incept: SRE, Wed Dec 26 15:12:25 2007 [Janelia] + * + * Purpose: Calculates an approximation of the MSV score for sequence + * of length residues, using optimized profile , + * and a preallocated one-row DP matrix . Return the + * estimated MSV score (in nats) in . + * + * Score may overflow (and will, on high-scoring + * sequences), but will not underflow. + * + * The model may be in any mode, because only its match + * emission scores will be used. The MSV filter inherently + * assumes a multihit local mode, and uses its own special + * state transition scores, not the scores in the profile. + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * ret_sc - RETURN: MSV score (in nats) + * + * Note: We misuse the matrix here, using only a third of the + * first dp row, accessing it as rather than + * in triplets via <{MDI}MX(q)> macros, since we only need + * to store M state values. We know that if was big + * enough for normal DP calculations, it must be big enough + * to hold the MSVFilter calculation. + * + * Returns: on success. + * if the score overflows the limited range; in + * this case, this is a high-scoring hit. + * + * Throws: if allocation is too small. + */ +int +p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc) +{ + vector unsigned char mpv; /* previous row values */ + vector unsigned char xEv; /* E state: keeps max for Mk->E as we go */ + vector unsigned char xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + vector unsigned char sv; /* temp storage of 1 curr row value in progress */ + vector unsigned char biasv; /* emission bias in a vector */ + uint8_t xJ; /* special states' scores */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQB(om->M); /* segment length: # of vectors */ + vector unsigned char *dp; /* we're going to use dp[0][0..q..Q-1], not {MDI}MX(q) macros*/ + vector unsigned char *rsc; /* will point at om->rbv[x] for residue x[i] */ + vector unsigned char zerov; /* vector of zeros */ + vector unsigned char xJv; /* vector for states score */ + vector unsigned char tjbmv; /* vector for B->Mk cost */ + vector unsigned char tecv; /* vector for E->C cost */ + vector unsigned char basev; /* offset for scores */ + vector unsigned char ceilingv; /* saturateed simd value used to test for overflow */ + vector unsigned char tempv; + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ16) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + ox->M = om->M; + + /* Initialization. In offset unsigned arithmetic, -infinity is 0, and 0 is om->base. + */ + dp = ox->dpb[0]; + for (q = 0; q < Q; q++) dp[q] = vec_splat_u8(0); + xJ = 0; + + biasv = esl_vmx_set_u8(om->bias_b); + zerov = vec_splat_u8(0); + + /* saturate simd register for overflow test */ + tempv = vec_splat_u8(1); + ceilingv = (vector unsigned char)vec_cmpeq(biasv, biasv); + ceilingv = vec_subs(ceilingv, biasv); + ceilingv = vec_subs(ceilingv, tempv); + + basev = esl_vmx_set_u8((int8_t) om->base_b); + + tecv = esl_vmx_set_u8((int8_t) om->tec_b); + tjbmv = esl_vmx_set_u8((int8_t) om->tjb_b + (int8_t) om->tbm_b); + + xJv = vec_subs(biasv, biasv); + xBv = vec_subs(basev, tjbmv); + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) + { + unsigned char xB; + vec_ste(xBv, 0, &xB); + vec_ste(xJv, 0, &xJ); + p7_omx_DumpMFRow(ox, 0, 0, 0, xJ, xB, xJ); + } +#endif + + for (i = 1; i <= L; i++) + { + rsc = om->rbv[dsq[i]]; + xEv = vec_splat_u8(0); +// xBv = vec_sub(xBv, tbmv); + + /* Right shifts by 1 byte. 4,8,12,x becomes x,4,8,12. + * Because ia32 is littlendian, this means a left bit shift. + * Zeros shift on automatically, which is our -infinity. + */ + mpv = vec_sld(zerov, dp[Q-1], 15); + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = vec_max(mpv, xBv); + sv = vec_adds(sv, biasv); + sv = vec_subs(sv, *rsc); rsc++; + xEv = vec_max(xEv, sv); + + mpv = dp[q]; /* Load {MDI}(i-1,q) into mpv */ + dp[q] = sv; /* Do delayed store of M(i,q) now that memory is usable */ + } + + /* Now the "special" states, which start from Mk->E (->C, ->J->B) + * Use rotates instead of shifts so when the last max has completed, + * all elements of the simd register will contain the max value. + */ + tempv = vec_sld(xEv, xEv, 1); + xEv = vec_max(xEv, tempv); + tempv = vec_sld(xEv, xEv, 2); + xEv = vec_max(xEv, tempv); + tempv = vec_sld(xEv, xEv, 4); + xEv = vec_max(xEv, tempv); + tempv = vec_sld(xEv, xEv, 8); + xEv = vec_max(xEv, tempv); + + /* immediately detect overflow */ + if (vec_any_gt(xEv, ceilingv)) + { + *ret_sc = eslINFINITY; + return eslERANGE; + } + + xEv = vec_subs(xEv, tecv); + xJv = vec_max(xJv,xEv); + + xBv = vec_max(basev, xJv); + xBv = vec_subs(xBv, tjbmv); + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) + { + unsigned char xB, xE; + vec_ste(xBv, 0, &xB); + vec_ste(xEv, 0, &xE); + vec_ste(xJv, 0, &xJ); + p7_omx_DumpMFRow(ox, i, xE, 0, xJ, xB, xJ); + } +#endif + } /* end loop over sequence residues 1..L */ + + /* finally C->T, and add our missing precision on the NN,CC,JJ back */ + vec_ste(xJv, 0, &xJ); + *ret_sc = ((float) (xJ - om->tjb_b) - (float) om->base_b); + *ret_sc /= om->scale_b; + *ret_sc -= 3.0; /* that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ */ + + return eslOK; +} +/*------------------ end, p7_MSVFilter() ------------------------*/ + + +/* Function: p7_SSVFilter_longtarget() + * Synopsis: Finds windows with SSV scores above some threshold (vewy vewy fast, in limited precision) + * + * Purpose: Calculates an approximation of the SSV (single ungapped diagonal) + * score for regions of sequence of length residues, using + * optimized profile , and a preallocated one-row DP matrix , + * and captures the positions at which such regions exceed the score + * required to be significant in the eyes of the calling function, + * which depends on the and

(usually p=0.02 for nhmmer). + * Note that this variant performs only SSV computations, never + * passing through the J state - the score required to pass SSV at + * the default threshold (or less restrictive) is sufficient to + * pass MSV in essentially all DNA models we've tested. + * + * Above-threshold diagonals are captured into a preallocated list + * . Rather than simply capturing positions at which a + * score threshold is reached, this function establishes windows + * around those high-scoring positions, using scores in . + * These windows can be merged by the calling function. + * + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * msvdata - compact representation of substitution scores, for backtracking diagonals + * bg - the background model, required for translating a P-value threshold into a score threshold + * P - p-value below which a region is captured as being above threshold + * windowlist - preallocated container for all hits (resized if necessary) + * + * + * Note: We misuse the matrix here, using only a third of the + * first dp row, accessing it as rather than + * in triplets via <{MDI}MX(q)> macros, since we only need + * to store M state values. We know that if was big + * enough for normal DP calculations, it must be big enough + * to hold the MSVFilter calculation. + * + * Returns: on success. + * + * Throws: if allocation is too small. + */ +int +p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *ssvdata, + P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist) +{ + + vector unsigned char mpv; /* previous row values */ + vector unsigned char xEv; /* E state: keeps max for Mk->E as we go */ + vector unsigned char xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + vector unsigned char sv; /* temp storage of 1 curr row value in progress */ + vector unsigned char biasv; /* emission bias in a vector */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQB(om->M); /* segment length: # of vectors */ + vector unsigned char *dp = ox->dpb[0]; /* we're going to use dp[0][0..q..Q-1], not {MDI}MX(q) macros*/ + vector unsigned char *rsc; /* will point at om->rbv[x] for residue x[i] */ + vector unsigned char zerov; /* vector of zeros */ + vector unsigned char tjbmv; /* vector for [JN]->B->M move cost */ + vector unsigned char basev; /* offset for scores */ + union { vector unsigned char v; uint8_t b[16]; } u; + int k; + int n; + int end; + int rem_sc; + int start; + int target_end; + int target_start; + int max_end; + int max_sc; + int sc; + int pos_since_max; + float ret_sc; + + + /* Computing the score required to let P meet the F1 prob threshold + * In original code, converting from a scaled int MSV + * score S (the score getting to state E) to a probability goes like this: + * usc = S - om->tec_b - om->tjb_b - om->base_b; + * usc /= om->scale_b; + * usc -= 3.0; + * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda) + * and we're computing the threshold usc, so reverse it: + * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda) + * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda) + * usc += 3 + * usc *= om->scale_b + * S = usc + om->tec_b + om->tjb_b + om->base_b + * + * Here, I compute threshold with length model based on max_length. Doesn't + * matter much - in any case, both the bg and om models will change with roughly + * 1 bit for each doubling of the length model, so they offset. + */ + float nullsc; + float invP = esl_gumbel_invsurv(P, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + vector unsigned char sc_threshv; /* pushes value to saturation if it's above pthresh */ + int sc_thresh; + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ16) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + ox->M = om->M; + + + p7_bg_SetLength(bg, om->max_length); + p7_oprofile_ReconfigMSVLength(om, om->max_length); + p7_bg_NullOne (bg, dsq, om->max_length, &nullsc); + + sc_thresh = (int) ceil( ( ( nullsc + (invP * eslCONST_LOG2) + 3.0 ) * om->scale_b ) + om->base_b + om->tec_b + om->tjb_b ); + sc_threshv = esl_vmx_set_u8( (int8_t)sc_thresh - 1); + + + /* Initialization. In offset unsigned arithmetic, -infinity is 0, and 0 is om->base. */ + biasv = esl_vmx_set_u8(om->bias_b); + for (q = 0; q < Q; q++) dp[q] = vec_splat_u8(0); + zerov = vec_splat_u8(0); + basev = esl_vmx_set_u8((int8_t) om->base_b); + tjbmv = esl_vmx_set_u8((int8_t) om->tjb_b + (int8_t) om->tbm_b); + xBv = vec_subs(basev, tjbmv); + + for (i = 1; i <= L; i++) + { + rsc = om->rbv[dsq[i]]; + xEv = vec_splat_u8(0); + + /* Right shifts by 1 byte. 4,8,12,x becomes x,4,8,12. + * Zeros shift on automatically, which is our -infinity. + */ + mpv = vec_sld(zerov, dp[Q-1], 15); + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = vec_max(mpv, xBv); + sv = vec_adds(sv, biasv); + sv = vec_subs(sv, *rsc); rsc++; + xEv = vec_max(xEv, sv); + + mpv = dp[q]; /* Load {MDI}(i-1,q) into mpv */ + dp[q] = sv; /* Do delayed store of M(i,q) now that memory is usable */ + } + + + if (vec_any_gt(xEv, sc_threshv) ) // hit pthresh, so add position to list and reset values + { + // figure out which model state hit threshold + end = -1; + rem_sc = -1; + for (q = 0; q < Q; q++) // Unpack and unstripe, so we can find the state that exceeded pthresh + { + u.v = dp[q]; + for (k = 0; k < 16; k++) // unstripe + { + // (q+Q*k+1) is the model position k at which the xE score is found + if (u.b[k] >= sc_thresh && u.b[k] > rem_sc && (q+Q*k+1) <= om->M) + { + end = (q+Q*k+1); + rem_sc = u.b[k]; + } + } + dp[q] = vec_splat_u8(0); // while we're here ... this will cause values to get reset to xB in next dp iteration + } + + // recover the diagonal that hit threshold + start = end; + target_end = target_start = i; + sc = rem_sc; + while (rem_sc > om->base_b - om->tjb_b - om->tbm_b) + { + rem_sc -= om->bias_b - ssvdata->ssv_scores[start*om->abc->Kp + dsq[target_start]]; + --start; + --target_start; + //if ( start == 0 || target_start==0) break; + } + start++; + target_start++; + + //extend diagonal further with single diagonal extension + k = end+1; + n = target_end+1; + max_end = target_end; + max_sc = sc; + pos_since_max = 0; + while (kM && n<=L) + { + sc += om->bias_b - ssvdata->ssv_scores[k*om->abc->Kp + dsq[n]]; + if (sc >= max_sc) + { + max_sc = sc; + max_end = n; + pos_since_max=0; + } + else + { + pos_since_max++; + if (pos_since_max == 5) + break; + } + k++; + n++; + } + + end += (max_end - target_end); + target_end = max_end; + + ret_sc = ((float) (max_sc - om->tjb_b) - (float) om->base_b); + ret_sc /= om->scale_b; + ret_sc -= 3.0; // that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ + + p7_hmmwindow_new( windowlist, + 0, // sequence_id; used in the FM-based filter, but not here + target_start, // position in the target at which the diagonal starts + 0, // position in the target fm_index at which diagonal starts; not used here, just in FM-based filter + end, // position in the model at which the diagonal ends + end-start+1 , // length of diagonal + ret_sc, // score of diagonal + p7_NOCOMPLEMENT, // always p7_NOCOMPLEMENT here; varies in FM-based filter + L); + + i = target_end; // skip forward + } + } /* end loop over sequence residues 1..L */ + + return eslOK; +} +/*------------------ end, p7_SSVFilter_longtarget() ------------------------*/ + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +/* The benchmark driver has some additional non-benchmarking options + * to facilitate small-scale (by-eye) comparison of MSV scores against + * other implementations, for debugging purposes. + * + * The -c option compares against p7_GMSV() scores. This allows + * measuring the error inherent in the VMX implementation's reduced + * precision (p7_MSVFilter() runs in uint8_t; p7_GMSV() uses floats). + * + * The -x option compares against an emulation that should give + * exactly the same scores. The emulation is achieved by jiggering the + * fp scores in a generic profile to disallow gaps, have the same + * rounding and precision as the uint8_t's MSVFilter() is using, and + * to make the same post-hoc corrections for the NN, CC, JJ + * contributions to the final nat score; under these contrived + * circumstances, p7_GViterbi() gives the same scores as + * p7_MSVFilter(). + * + * For using either -c or -x, you probably also want to limit the + * number of generated target sequences, using -N10 or -N100 for + * example. + */ +#ifdef p7MSVFILTER_BENCHMARK +/* + gcc -o msvfilter-benchmark -std=gnu99 -g -Wall -maltivec -I.. -L.. -I../../easel -L../../easel -Dp7MSVFILTER_BENCHMARK msvfilter.c -lhmmer -leasel -lm + icc -o msvfilter-benchmark -O3 -static -I.. -L.. -I../../easel -L../../easel -Dp7MSVFILTER_BENCHMARK msvfilter.c -lhmmer -leasel -lm + + ./benchmark-msvfilter runs benchmark + ./benchmark-msvfilter -N100 -c compare scores to generic impl + ./benchmark-msvfilter -N100 -x compare scores to exact emulation + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for MSVFilter() implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc1, sc2; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + if (esl_opt_GetBoolean(go, "-x")) p7_profile_SameAsMF(om, gm); + + ox = p7_omx_Create(gm->M, 0, 0); + gx = p7_gmx_Create(gm->M, L); + + /* Get a baseline time: how long it takes just to generate the sequences */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_MSVFilter (dsq, L, om, ox, &sc1); + + /* -c option: compare generic to fast score */ + if (esl_opt_GetBoolean(go, "-c")) + { + p7_GMSV (dsq, L, gm, gx, 2.0, &sc2); + printf("%.4f %.4f\n", sc1, sc2); + } + + /* -x option: compare generic to fast score in a way that should give exactly the same result */ + if (esl_opt_GetBoolean(go, "-x")) + { + p7_GViterbi(dsq, L, gm, gx, &sc2); + sc2 /= om->scale_b; + if (om->mode == p7_UNILOCAL) sc2 -= 2.0; /* that's ~ L \log \frac{L}{L+2}, for our NN,CC,JJ */ + else if (om->mode == p7_LOCAL) sc2 -= 3.0; /* that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ */ + printf("%.4f %.4f\n", sc1, sc2); + } + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7MSVFILTER_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7MSVFILTER_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* + * We can check that scores are identical (within machine error) to + * scores of generic DP with scores rounded the same way. Do this for + * a random model of length , for test sequences of length . + * + * We assume that we don't accidentally generate a high-scoring random + * sequence that overflows MSVFilter()'s limited range. + * + */ +static void +utest_msv_filter(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *ox = p7_omx_Create(M, 0, 0); + P7_GMX *gx = p7_gmx_Create(M, L); + float sc1, sc2; + + p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om); + p7_profile_SameAsMF(om, gm); +#if 0 + p7_oprofile_Dump(stdout, om); //dumps the optimized profile + p7_omx_SetDumpMode(stdout, ox, TRUE); //makes the fast DP algorithms dump their matrices +#endif + + while (N--) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_MSVFilter(dsq, L, om, ox, &sc1); + p7_GViterbi (dsq, L, gm, gx, &sc2); +#if 0 + p7_gmx_Dump(stdout, gx, p7_DEFAULT); //dumps a generic DP matrix +#endif + + sc2 = sc2 / om->scale_b - 3.0f; + if (fabs(sc1-sc2) > 0.001) esl_fatal("msv filter unit test failed: scores differ (%.2f, %.2f)", sc1, sc2); + } + + free(dsq); + p7_hmm_Destroy(hmm); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); +} +#endif /*p7MSVFILTER_TESTDRIVE*/ +/*-------------------- end, unit tests --------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7MSVFILTER_TESTDRIVE +/* + gcc -g -Wall -maltivec -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o msvfilter_utest -Dp7MSVFILTER_TESTDRIVE msvfilter.c -lhmmer -leasel -lm + ./msvfilter_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "145", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for the VMX MSVFilter() implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* First round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + if (esl_opt_GetBoolean(go, "-v")) printf("MSVFilter() tests, DNA\n"); + utest_msv_filter(r, abc, bg, M, L, N); /* normal sized models */ + utest_msv_filter(r, abc, bg, 1, L, 10); /* size 1 models */ + utest_msv_filter(r, abc, bg, M, 1, 10); /* size 1 sequences */ + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + if (esl_opt_GetBoolean(go, "-v")) printf("MSVFilter() tests, protein\n"); + utest_msv_filter(r, abc, bg, M, L, N); + utest_msv_filter(r, abc, bg, 1, L, 10); + utest_msv_filter(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*VITFILTER_TESTDRIVE*/ + + + +/***************************************************************** + * 5. Example + *****************************************************************/ + +#ifdef p7MSVFILTER_EXAMPLE +/* A minimal example. + Also useful for debugging on small HMMs and sequences. + + gcc -g -Wall -maltivec -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o msvfilter_example -Dp7MSVFILTER_EXAMPLE msvfilter.c -lhmmer -leasel -lm + ./msvfilter_example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_gumbel.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in one line awkable format", 0 }, + { "-P", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in profmark format", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of MSV filter algorithm"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float msvraw, nullsc, msvscore; + float graw, gscore; + double P, gP; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Open sequence file for reading */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + /* allocate DP matrices, both a generic and an optimized one */ + ox = p7_omx_Create(gm->M, 0, 0); /* one row version */ + gx = p7_gmx_Create(gm->M, sq->n); + + /* Useful to place and compile in for debugging: + p7_oprofile_Dump(stdout, om); dumps the optimized profile + p7_omx_SetDumpMode(stdout, ox, TRUE); makes the fast DP algorithms dump their matrices + p7_gmx_Dump(stdout, gx, p7_DEFAULT); dumps a generic DP matrix + p7_oprofile_SameMSV(om, gm); + */ + p7_omx_SetDumpMode(stdout, ox, TRUE); + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) + { + p7_oprofile_ReconfigLength(om, sq->n); + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_omx_GrowTo(ox, om->M, 0, sq->n); + p7_gmx_GrowTo(gx, gm->M, sq->n); + + p7_MSVFilter (sq->dsq, sq->n, om, ox, &msvraw); + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + msvscore = (msvraw - nullsc) / eslCONST_LOG2; + P = esl_gumbel_surv(msvscore, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + + p7_GMSV(sq->dsq, sq->n, gm, gx, 2.0, &graw); + gscore = (graw - nullsc) / eslCONST_LOG2; + gP = esl_gumbel_surv(gscore, gm->evparam[p7_MMU], gm->evparam[p7_MLAMBDA]); + + if (esl_opt_GetBoolean(go, "-1")) + { + printf("%-30s %-20s %9.2g %7.2f %9.2g %7.2f\n", sq->name, hmm->name, P, msvscore, gP, gscore); + } + else if (esl_opt_GetBoolean(go, "-P")) + { /* output suitable for direct use in profmark benchmark postprocessors: */ + printf("%g %.2f %s %s\n", P, msvscore, sq->name, hmm->name); + } + else + { + printf("target sequence: %s\n", sq->name); + printf("msv filter raw score: %.2f nats\n", msvraw); + printf("null score: %.2f nats\n", nullsc); + printf("per-seq score: %.2f bits\n", msvscore); + printf("P-value: %g\n", P); + printf("GMSV raw score: %.2f nats\n", graw); + printf("GSMV per-seq score: %.2f bits\n", gscore); + printf("GSMV P-value: %g\n", gP); + } + + esl_sq_Reuse(sq); + } + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7MSVFILTER_EXAMPLE*/ +/*---------------------- end, example ---------------------------*/ + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/null2.c b/bioinformaticsProject/hmmer/src/impl_vmx/null2.c new file mode 100644 index 0000000..0171895 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/null2.c @@ -0,0 +1,502 @@ +/* "null2" model, biased composition correction; VMX implementations. + * + * Contents: + * 1. Null2 estimation algorithms. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * + * SRE, Mon Aug 18 08:31:11 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_vmx.h" +#include "esl_vectorops.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +/***************************************************************** + * 1. Null2 estimation algorithms. + *****************************************************************/ + +/* Function: p7_Null2_ByExpectation() + * Synopsis: Calculate null2 model from posterior probabilities. + * Incept: SRE, Mon Aug 18 08:32:55 2008 [Janelia] + * + * Purpose: Identical to except that + * , are VMX optimized versions of the profile + * and the residue posterior probability matrix. See + * documentation. + * + * Args: om - profile, in any mode, target length model set to + * pp - posterior prob matrix, for against domain envelope (offset) + * null2 - RETURN: null2 log odds scores per residue; <0..Kp-1>; caller allocated space + */ +int +p7_Null2_ByExpectation(const P7_OPROFILE *om, const P7_OMX *pp, float *null2) +{ + int M = om->M; + int Ld = pp->L; + int Q = p7O_NQF(M); + float *xmx = pp->xmx; /* enables use of XMXo(i,s) macro */ + float norm; + float xfactor; + int i,q,x; + + vector float *rp; + vector float sv; + vector float zerov; + + zerov = (vector float) vec_splat_u32(0); + + /* Calculate expected # of times that each emitting state was used + * in generating the Ld residues in this domain. + * The 0 row in is used to hold these numbers. + */ + memcpy(pp->dpf[0], pp->dpf[1], sizeof(vector float) * 3 * Q); + XMXo(0,p7X_N) = XMXo(1,p7X_N); + XMXo(0,p7X_C) = XMXo(1,p7X_C); /* 0.0 */ + XMXo(0,p7X_J) = XMXo(1,p7X_J); /* 0.0 */ + + for (i = 2; i <= Ld; i++) + { + for (q = 0; q < Q; q++) + { + pp->dpf[0][q*3 + p7X_M] = vec_add(pp->dpf[i][q*3 + p7X_M], pp->dpf[0][q*3 + p7X_M]); + pp->dpf[0][q*3 + p7X_I] = vec_add(pp->dpf[i][q*3 + p7X_I], pp->dpf[0][q*3 + p7X_I]); + } + XMXo(0,p7X_N) += XMXo(i,p7X_N); + XMXo(0,p7X_C) += XMXo(i,p7X_C); + XMXo(0,p7X_J) += XMXo(i,p7X_J); + } + + /* Convert those expected #'s to frequencies, to use as posterior weights. */ + norm = 1.0 / (float) Ld; + sv = esl_vmx_set_float(norm); + + for (q = 0; q < Q; q++) + { + pp->dpf[0][q*3 + p7X_M] = vec_madd(pp->dpf[0][q*3 + p7X_M], sv, zerov); + pp->dpf[0][q*3 + p7X_I] = vec_madd(pp->dpf[0][q*3 + p7X_I], sv, zerov); + } + XMXo(0,p7X_N) *= norm; + XMXo(0,p7X_C) *= norm; + XMXo(0,p7X_J) *= norm; + + /* Calculate null2's emission odds, by taking posterior weighted sum + * over all emission vectors used in paths explaining the domain. + */ + xfactor = XMXo(0, p7X_N) + XMXo(0, p7X_C) + XMXo(0, p7X_J); + for (x = 0; x < om->abc->K; x++) + { + sv = (vector float) vec_splat_u32(0); + rp = om->rfv[x]; + for (q = 0; q < Q; q++) + { + sv = vec_madd(pp->dpf[0][q*3 + p7X_M], *rp, sv); rp++; + sv = vec_add(sv, pp->dpf[0][q*3 + p7X_I]); /* insert odds implicitly 1.0 */ + } + null2[x] = esl_vmx_hsum_float(sv); + null2[x] += xfactor; + } + /* now null2[x] = \frac{f_d(x)}{f_0(x)} for all x in alphabet, + * 0..K-1, where f_d(x) are the ad hoc "null2" residue frequencies + * for this envelope. + */ + + /* make valid scores for all degeneracies, by averaging the odds ratios. */ + esl_abc_FAvgScVec(om->abc, null2); + null2[om->abc->K] = 1.0; /* gap character */ + null2[om->abc->Kp-2] = 1.0; /* nonresidue "*" */ + null2[om->abc->Kp-1] = 1.0; /* missing data "~" */ + + /* ta-da */ + return eslOK; +} + + +/* Function: p7_Null2_ByTrace() + * Synopsis: Assign null2 scores to an envelope by the sampling method. + * Incept: SRE, Mon Aug 18 10:22:49 2008 [Janelia] + * + * Purpose: Identical to except that + * , are VMX optimized versions of the profile + * and the residue posterior probability matrix. See + * documentation. + */ +int +p7_Null2_ByTrace(const P7_OPROFILE *om, const P7_TRACE *tr, int zstart, int zend, P7_OMX *wrk, float *null2) +{ + union { vector float v; float p[4]; } u; + int Q = p7O_NQF(om->M); + int Ld = 0; + float *xmx = wrk->xmx; /* enables use of XMXo macro */ + float norm; + float xfactor; + int q, r; + int x; + int z; + + vector float sv; + vector float *rp; + vector float zerov; + + zerov = (vector float) vec_splat_u32(0); + + /* We'll use the i=0 row in wrk for working space: dp[0][] and xmx[][0]. */ + for (q = 0; q < Q; q++) + { + wrk->dpf[0][q*3 + p7X_M] = (vector float) vec_splat_u32(0); + wrk->dpf[0][q*3 + p7X_I] = (vector float) vec_splat_u32(0); + } + XMXo(0,p7X_N) = 0.0; + XMXo(0,p7X_C) = 0.0; + XMXo(0,p7X_J) = 0.0; + + /* Calculate emitting state usage in this particular trace segment */ + for (z = zstart; z <= zend; z++) + { + if (tr->i[z] == 0) continue; /* quick test for whether this trace elem emitted or not */ + Ld++; + if (tr->k[z] > 0) /* must be an M or I */ + { /* surely there's an easier way? but our workspace is striped, interleaved quads... */ + q = p7X_NSCELLS * ( (tr->k[z] - 1) % Q) + p7X_M; + r = (tr->k[z] - 1) / Q; + u.v = wrk->dpf[0][q]; + u.p[r] += 1.0; /* all this to increment a count by one! */ + wrk->dpf[0][q] = u.v; + } + else /* emitted an x_i with no k; must be an N,C,J */ + { + switch (tr->st[z]) { + case p7T_N: XMXo(0,p7X_N) += 1.0; break; + case p7T_C: XMXo(0,p7X_C) += 1.0; break; + case p7T_J: XMXo(0,p7X_J) += 1.0; break; + } + } + } + norm = 1.0 / (float) Ld; + sv = esl_vmx_set_float(norm); + + for (q = 0; q < Q; q++) + { + wrk->dpf[0][q*3 + p7X_M] = vec_madd(wrk->dpf[0][q*3 + p7X_M], sv, zerov); + wrk->dpf[0][q*3 + p7X_I] = vec_madd(wrk->dpf[0][q*3 + p7X_I], sv, zerov); + } + XMXo(0,p7X_N) *= norm; + XMXo(0,p7X_C) *= norm; + XMXo(0,p7X_J) *= norm; + + /* Calculate null2's emission odds, by taking posterior weighted sum + * over all emission vectors used in paths explaining the domain. + */ + xfactor = XMXo(0,p7X_N) + XMXo(0,p7X_C) + XMXo(0,p7X_J); + for (x = 0; x < om->abc->K; x++) + { + sv = (vector float) vec_splat_u32(0); + rp = om->rfv[x]; + for (q = 0; q < Q; q++) + { + sv = vec_madd(wrk->dpf[0][q*3 + p7X_M], *rp, sv); rp++; + sv = vec_add(sv, wrk->dpf[0][q*3 + p7X_I]); /* insert emission odds implicitly 1.0 */ + // sv = _mm_add_ps(sv, _mm_mul_ps(wrk->dpf[0][q*3 + p7X_I], *rp)); rp++; + } + null2[x] = esl_vmx_hsum_float(sv); + null2[x] += xfactor; + } + + /* now null2[x] = \frac{f_d(x)}{f_0(x)} for all x in alphabet, + * 0..K-1, where f_d(x) are the ad hoc "null2" residue frequencies + * for this envelope. + */ + + /* make valid scores for all degeneracies, by averaging the odds ratios. */ + esl_abc_FAvgScVec(om->abc, null2); + null2[om->abc->K] = 1.0; /* gap character */ + null2[om->abc->Kp-2] = 1.0; /* nonresidue "*" */ + null2[om->abc->Kp-1] = 1.0; /* missing data "~" */ + return eslOK; +} + + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7NULL2_BENCHMARK +/* + icc -O3 -static -o null2_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7NULL2_BENCHMARK null2.c -lhmmer -leasel -lm + ./null2_benchmark Does the expectation version. + ./null2_benchmark -t Does the stochastic-traceback-dependent version. + (This version isn't really dependent on M, so Mc/s may not be an appropriate measure.) + + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ --------------- + 21 Aug 2008 3.00u (480 Mc/s) 5.45u (499 Mc/s) 77.56u (297 Mc/s) + -t 21 Aug 2008 30.50u (47 Mc/s) 44.96u (61 Mc/s) 32.03u*10 ( 72 Mc/s) + + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-t", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "benchmark the trace-dependent version of null2", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for null2 estimation, VMX version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox1 = NULL; + P7_OMX *ox2 = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + float null2[p7_MAXCODE]; + int i,j,d,pos; + int nsamples = 200; + float fsc, bsc; + double Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + ox1 = p7_omx_Create(gm->M, L, L); + ox2 = p7_omx_Create(gm->M, L, L); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_Forward (dsq, L, om, ox1, &fsc); + + if (esl_opt_GetBoolean(go, "-t")) + { + P7_TRACE *tr = p7_trace_Create(); + float *n2sc = malloc(sizeof(float) * (L+1)); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { /* This is approximately what p7_domaindef.c::region_trace_ensemble() is doing: */ + for (j = 0; j < nsamples; j++) + { + p7_StochasticTrace(r, dsq, L, om, ox1, tr); + p7_trace_Index(tr); + pos = 1; + for (d = 0; d < tr->ndom; d++) + { + p7_Null2_ByTrace(om, tr, tr->tfrom[d], tr->tto[d], ox2, null2); + for (; pos <= tr->sqfrom[d]; pos++) n2sc[pos] += 1.0; + for (; pos < tr->sqto[d]; pos++) n2sc[pos] += null2[dsq[pos]]; + } + for (; pos <= L; pos++) n2sc[pos] += 1.0; + p7_trace_Reuse(tr); + } + + for (pos = 1; pos <= L; pos++) + n2sc[pos] = logf(n2sc[pos] / nsamples); + } + esl_stopwatch_Stop(w); + + free(n2sc); + p7_trace_Destroy(tr); + } + else + { + p7_Backward(dsq, L, om, ox1, ox2, &bsc); + p7_Decoding(om, ox1, ox2, ox2); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_Null2_ByExpectation(om, ox2, null2); + esl_stopwatch_Stop(w); + } + + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(ox1); + p7_omx_Destroy(ox2); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7NULL2_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7NULL2_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_vectorops.h" + +/* compare results to GDecoding(). */ +static void +utest_null2_expectation(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N, float tolerance) +{ + char *msg = "null2 unit test failed"; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *fwd = p7_omx_Create(M, L, L); + P7_OMX *bck = p7_omx_Create(M, L, L); + P7_OMX *pp = p7_omx_Create(M, L, L); + P7_GMX *gxf = p7_gmx_Create(M, L); + P7_GMX *gxb = p7_gmx_Create(M, L); + P7_GMX *gpp = p7_gmx_Create(M, L); + float *on2 = malloc(sizeof(float) * abc->Kp); + float *gn2 = malloc(sizeof(float) * abc->Kp); + float fsc1, fsc2; + float bsc1, bsc2; + + if (!gn2 || !on2) esl_fatal(msg); + + if (p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om) != eslOK) esl_fatal(msg); + while (N--) + { + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal(msg); + if (p7_Forward (dsq, L, om, fwd, &fsc1) != eslOK) esl_fatal(msg); + if (p7_Backward (dsq, L, om, fwd, bck, &bsc1) != eslOK) esl_fatal(msg); + if (p7_Decoding(om, fwd, bck, pp) != eslOK) esl_fatal(msg); + if (p7_Null2_ByExpectation(om, pp, on2) != eslOK) esl_fatal(msg); + + if (p7_GForward (dsq, L, gm, gxf, &fsc2) != eslOK) esl_fatal(msg); + if (p7_GBackward(dsq, L, gm, gxb, &bsc2) != eslOK) esl_fatal(msg); + if (p7_GDecoding(gm, gxf, gxb, gpp) != eslOK) esl_fatal(msg); + if (p7_GNull2_ByExpectation(gm, gpp, gn2) != eslOK) esl_fatal(msg); + + if (esl_vec_FCompare(gn2, on2, abc->Kp, tolerance) != eslOK) esl_fatal(msg); + } + + p7_gmx_Destroy(gpp); + p7_gmx_Destroy(gxf); + p7_gmx_Destroy(gxb); + p7_omx_Destroy(pp); + p7_omx_Destroy(fwd); + p7_omx_Destroy(bck); + free(on2); + free(gn2); + free(dsq); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); +} +#endif /*p7NULL2_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7NULL2_TESTDRIVE +/* + gcc -g -Wall -maltivec -std=gnu99 -o null2_utest -I.. -L.. -I../../easel -L../../easel -Dp7NULL2_TESTDRIVE null2.c -lhmmer -leasel -lm + ./null2_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-t", eslARG_REAL, "0.01", NULL, NULL, NULL, NULL, NULL, "floating point comparison tolerance", 0 }, + { "-L", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "72", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "10", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for VMX implementation of null2 model"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + float tol = esl_opt_GetReal (go, "-t"); + + p7_FLogsumInit(); + + utest_null2_expectation(r, abc, bg, M, L, N, tol); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + return eslOK; +} +#endif /*p7NULL2_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/optacc.c b/bioinformaticsProject/hmmer/src/impl_vmx/optacc.c new file mode 100644 index 0000000..013da37 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/optacc.c @@ -0,0 +1,951 @@ +/* Optimal accuracy alignment; VMX version. + * + * Contents: + * 1. Optimal accuracy alignment, DP fill + * 2. OA traceback + * 3. Benchmark driver + * 4. Unit tests + * 5. Test driver + * 6. Example + * + * SRE, Mon Aug 18 20:01:01 2008 [Casa de Gatos] + */ +#include "p7_config.h" + +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_vmx.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + + +/***************************************************************** + * 1. Optimal accuracy alignment, DP fill + *****************************************************************/ + +/* Function: p7_OptimalAccuracy() + * Synopsis: DP fill of an optimal accuracy alignment calculation. + * Incept: SRE, Mon Aug 18 11:04:48 2008 [Janelia] + * + * Purpose: Calculates the fill step of the optimal accuracy decoding + * algorithm \citep{Kall05}. + * + * Caller provides the posterior decoding matrix , + * which was calculated by Forward/Backward on a target sequence + * of length L> using the query model . + * + * Caller also provides a DP matrix , allocated for a full + * M> by comparison. The routine fills this in + * with OA scores. + * + * Args: gm - query profile + * pp - posterior decoding matrix created by + * gx - RESULT: caller provided DP matrix for M> by + * ret_e - RETURN: expected number of correctly decoded positions + * + * Returns: on success, and <*ret_e> contains the final OA + * score, which is the expected number of correctly decoded + * positions in the target sequence (up to ). + * + * Throws: (no abnormal error conditions) + */ +int +p7_OptimalAccuracy(const P7_OPROFILE *om, const P7_OMX *pp, P7_OMX *ox, float *ret_e) +{ + vector float mpv, dpv, ipv; /* previous row values */ + vector float sv; /* temp storage of 1 curr row value in progress */ + vector float xEv; /* E state: keeps max for Mk->E as we go */ + vector float xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + vector float dcv; + float *xmx = ox->xmx; + vector float *dpc = ox->dpf[0]; /* current row, for use in {MDI}MO(dpp,q) access macro */ + vector float *dpp; /* previous row, for use in {MDI}MO(dpp,q) access macro */ + vector float *ppp; /* quads in the posterior probability matrix */ + vector float *tp; /* quads in the tfv> transition scores */ + vector float zerov; + vector float infv; + int M = om->M; + int Q = p7O_NQF(M); + int q; + int j; + int i; + float t1, t2; + + zerov = (vector float) vec_splat_u32(0); + infv = esl_vmx_set_float(-eslINFINITY); + + ox->M = om->M; + ox->L = pp->L; + for (q = 0; q < Q; q++) MMO(dpc, q) = IMO(dpc,q) = DMO(dpc,q) = infv; + XMXo(0, p7X_E) = -eslINFINITY; + XMXo(0, p7X_N) = 0.; + XMXo(0, p7X_J) = -eslINFINITY; + XMXo(0, p7X_B) = 0.; + XMXo(0, p7X_C) = -eslINFINITY; + + for (i = 1; i <= pp->L; i++) + { + dpp = dpc; /* previous DP row in OA matrix */ + dpc = ox->dpf[i]; /* current DP row in OA matrix */ + ppp = pp->dpf[i]; /* current row in the posterior probabilities per position */ + tp = om->tfv; /* transition probabilities */ + dcv = infv; + xEv = infv; + xBv = esl_vmx_set_float(XMXo(i-1, p7X_B)); + + mpv = vec_sld(infv, MMO(dpp,Q-1), 12); /* Right shifts by 4 bytes. 4,8,12,x becomes x,4,8,12. */ + dpv = vec_sld(infv, DMO(dpp,Q-1), 12); + ipv = vec_sld(infv, IMO(dpp,Q-1), 12); + for (q = 0; q < Q; q++) + { + sv = vec_and(vec_cmpgt(*tp, zerov), xBv); tp++; + sv = vec_max(sv, vec_and(vec_cmpgt(*tp, zerov), mpv)); tp++; + sv = vec_max(sv, vec_and(vec_cmpgt(*tp, zerov), ipv)); tp++; + sv = vec_max(sv, vec_and(vec_cmpgt(*tp, zerov), dpv)); tp++; + sv = vec_add(sv, *ppp); ppp += 2; + xEv = vec_max(xEv, sv); + + mpv = MMO(dpp,q); + dpv = DMO(dpp,q); + ipv = IMO(dpp,q); + + MMO(dpc,q) = sv; + DMO(dpc,q) = dcv; + + dcv = vec_and(vec_cmpgt(*tp, zerov), sv); tp++; + + sv = vec_and(vec_cmpgt(*tp, zerov), mpv); tp++; + sv = vec_max(sv, vec_and(vec_cmpgt(*tp, zerov), ipv)); tp++; + IMO(dpc,q) = vec_add(sv, *ppp); ppp++; + } + + /* dcv has carried through from end of q loop above; store it + * in first pass, we add M->D and D->D path into DMX + */ + dcv = vec_sld(infv, dcv, 12); + tp = om->tfv + 7*Q; /* set tp to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMO(dpc, q) = vec_max(dcv, DMO(dpc, q)); + dcv = vec_and(vec_cmpgt(*tp, zerov), DMO(dpc,q)); tp++; + } + + /* fully serialized D->D; can optimize later */ + for (j = 1; j < 4; j++) + { + dcv = vec_sld(infv, dcv, 12); + tp = om->tfv + 7*Q; + for (q = 0; q < Q; q++) + { + DMO(dpc, q) = vec_max(dcv, DMO(dpc, q)); + dcv = vec_and(vec_cmpgt(*tp, zerov), dcv); tp++; + } + } + + /* D->E paths */ + for (q = 0; q < Q; q++) xEv = vec_max(xEv, DMO(dpc,q)); + + /* Specials */ + XMXo(i,p7X_E) = esl_vmx_hmax_float(xEv); + + t1 = ( (om->xf[p7O_J][p7O_LOOP] == 0.0) ? 0.0 : ox->xmx[(i-1)*p7X_NXCELLS+p7X_J] + pp->xmx[i*p7X_NXCELLS+p7X_J]); + t2 = ( (om->xf[p7O_E][p7O_LOOP] == 0.0) ? 0.0 : ox->xmx[ i *p7X_NXCELLS+p7X_E]); + ox->xmx[i*p7X_NXCELLS+p7X_J] = ESL_MAX(t1, t2); + + t1 = ( (om->xf[p7O_C][p7O_LOOP] == 0.0) ? 0.0 : ox->xmx[(i-1)*p7X_NXCELLS+p7X_C] + pp->xmx[i*p7X_NXCELLS+p7X_C]); + t2 = ( (om->xf[p7O_E][p7O_MOVE] == 0.0) ? 0.0 : ox->xmx[ i *p7X_NXCELLS+p7X_E]); + ox->xmx[i*p7X_NXCELLS+p7X_C] = ESL_MAX(t1, t2); + + ox->xmx[i*p7X_NXCELLS+p7X_N] = ((om->xf[p7O_N][p7O_LOOP] == 0.0) ? 0.0 : ox->xmx[(i-1)*p7X_NXCELLS+p7X_N] + pp->xmx[i*p7X_NXCELLS+p7X_N]); + + t1 = ( (om->xf[p7O_N][p7O_MOVE] == 0.0) ? 0.0 : ox->xmx[i*p7X_NXCELLS+p7X_N]); + t2 = ( (om->xf[p7O_J][p7O_MOVE] == 0.0) ? 0.0 : ox->xmx[i*p7X_NXCELLS+p7X_J]); + ox->xmx[i*p7X_NXCELLS+p7X_B] = ESL_MAX(t1, t2); + } + + *ret_e = ox->xmx[pp->L*p7X_NXCELLS+p7X_C]; + return eslOK; +} +/*------------------- end, OA DP fill ---------------------------*/ + + + + + +/***************************************************************** + * 2. OA traceback + *****************************************************************/ + +static inline float get_postprob(const P7_OMX *pp, int scur, int sprv, int k, int i); + +static inline int select_m(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_d(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_i(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_n(int i); +static inline int select_c(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, int i); +static inline int select_j(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, int i); +static inline int select_e(const P7_OPROFILE *om, const P7_OMX *ox, int i, int *ret_k); +static inline int select_b(const P7_OPROFILE *om, const P7_OMX *ox, int i); + + +/* Function: p7_OATrace() + * Synopsis: Optimal accuracy decoding: traceback. + * Incept: SRE, Mon Aug 18 13:53:33 2008 [Janelia] + * + * Purpose: The traceback stage of the optimal accuracy decoding algorithm + * \citep{Kall05}. + * + * Caller provides the OA DP matrix that was just + * calculated by , as well as the + * posterior decoding matrix , which was calculated by + * Forward/Backward on a target sequence using the query + * model . Because the calculation depends only on + * , the target sequence itself need not be provided. + * + * The resulting optimal accuracy decoding traceback is put + * in a caller-provided traceback structure

, which the + * caller has allocated for optional posterior probability + * annotation on residues (with , + * generally). This structure will be reallocated + * internally if necessary. + * + * Args: om - profile + * pp - posterior probability matrix + * ox - OA matrix to trace, LxM + * tr - storage for the recovered traceback + * + * Returns: on success. + * + * Throws: on allocation error. + * if the trace isn't empty (needs to be Reuse()'d). + */ +int +p7_OATrace(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, P7_TRACE *tr) +{ + int i = ox->L; /* position in sequence 1..L */ + int k = 0; /* position in model 1..M */ + int s0, s1; /* choice of a state */ + float postprob; + int status; + + if (tr->N != 0) ESL_EXCEPTION(eslEINVAL, "trace not empty; needs to be Reuse()'d?"); + + if ((status = p7_trace_AppendWithPP(tr, p7T_T, k, i, 0.0)) != eslOK) return status; + if ((status = p7_trace_AppendWithPP(tr, p7T_C, k, i, 0.0)) != eslOK) return status; + + s0 = tr->st[tr->N-1]; + while (s0 != p7T_S) + { + switch (s0) { + case p7T_M: s1 = select_m(om, ox, i, k); k--; i--; break; + case p7T_D: s1 = select_d(om, ox, i, k); k--; break; + case p7T_I: s1 = select_i(om, ox, i, k); i--; break; + case p7T_N: s1 = select_n(i); break; + case p7T_C: s1 = select_c(om, pp, ox, i); break; + case p7T_J: s1 = select_j(om, pp, ox, i); break; + case p7T_E: s1 = select_e(om, ox, i, &k); break; + case p7T_B: s1 = select_b(om, ox, i); break; + default: ESL_EXCEPTION(eslEINVAL, "bogus state in traceback"); + } + if (s1 == -1) ESL_EXCEPTION(eslEINVAL, "OA traceback choice failed"); + + postprob = get_postprob(pp, s1, s0, k, i); + if ((status = p7_trace_AppendWithPP(tr, s1, k, i, postprob)) != eslOK) return status; + + if ( (s1 == p7T_N || s1 == p7T_J || s1 == p7T_C) && s1 == s0) i--; + s0 = s1; + } /* end traceback, at S state */ + tr->M = om->M; + tr->L = ox->L; + return p7_trace_Reverse(tr); +} + +static inline float +get_postprob(const P7_OMX *pp, int scur, int sprv, int k, int i) +{ + int Q = p7O_NQF(pp->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell M(i,k) */ + int r = (k-1) / Q; + union { vector float v; float p[4]; } u; + + switch (scur) { + case p7T_M: u.v = MMO(pp->dpf[i], q); return u.p[r]; + case p7T_I: u.v = IMO(pp->dpf[i], q); return u.p[r]; + case p7T_N: if (sprv == scur) return pp->xmx[i*p7X_NXCELLS+p7X_N]; + case p7T_C: if (sprv == scur) return pp->xmx[i*p7X_NXCELLS+p7X_C]; + case p7T_J: if (sprv == scur) return pp->xmx[i*p7X_NXCELLS+p7X_J]; + default: return 0.0; + } +} + +/* M(i,k) is reached from B(i-1), M(i-1,k-1), D(i-1,k-1), or I(i-1,k-1). */ +static inline int +select_m(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell M(i,k) */ + int r = (k-1) / Q; + vector float *tp = om->tfv + 7*q; /* *tp now at start of transitions to cur cell M(i,k) */ + vector float xBv; + vector float zerov; + vector float mpv, dpv, ipv; + union { vector float v; float p[4]; } u, tv; + float path[4]; + int state[4] = { p7T_M, p7T_I, p7T_D, p7T_B }; + + xBv = esl_vmx_set_float(ox->xmx[(i-1)*p7X_NXCELLS+p7X_B]); + zerov = (vector float) vec_splat_u32(0); + + if (q > 0) { + mpv = ox->dpf[i-1][(q-1)*3 + p7X_M]; + dpv = ox->dpf[i-1][(q-1)*3 + p7X_D]; + ipv = ox->dpf[i-1][(q-1)*3 + p7X_I]; + } else { + mpv = vec_sld(zerov, ox->dpf[i-1][(Q-1)*3 + p7X_M], 12); + dpv = vec_sld(zerov, ox->dpf[i-1][(Q-1)*3 + p7X_D], 12); + ipv = vec_sld(zerov, ox->dpf[i-1][(Q-1)*3 + p7X_I], 12); + } + + /* paths are numbered so that most desirable choice in case of tie is first. */ + u.v = xBv; tv.v = *tp; path[3] = ((tv.p[r] == 0.0) ? -eslINFINITY : u.p[r]); tp++; + u.v = mpv; tv.v = *tp; path[0] = ((tv.p[r] == 0.0) ? -eslINFINITY : u.p[r]); tp++; + u.v = ipv; tv.v = *tp; path[1] = ((tv.p[r] == 0.0) ? -eslINFINITY : u.p[r]); tp++; + u.v = dpv; tv.v = *tp; path[2] = ((tv.p[r] == 0.0) ? -eslINFINITY : u.p[r]); + return state[esl_vec_FArgMax(path, 4)]; +} + + +/* D(i,k) is reached from M(i, k-1) or D(i,k-1). */ +static inline int +select_d(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell D(i,k) */ + int r = (k-1) / Q; + vector float zerov; + union { vector float v; float p[4]; } mpv, dpv, tmdv, tddv; + float path[2]; + + zerov = (vector float) vec_splat_u32(0); + + if (q > 0) { + mpv.v = ox->dpf[i][(q-1)*3 + p7X_M]; + dpv.v = ox->dpf[i][(q-1)*3 + p7X_D]; + tmdv.v = om->tfv[7*(q-1) + p7O_MD]; + tddv.v = om->tfv[7*Q + (q-1)]; + } else { + mpv.v = vec_sld(zerov, ox->dpf[i][(Q-1)*3 + p7X_M], 12); + dpv.v = vec_sld(zerov, ox->dpf[i][(Q-1)*3 + p7X_D], 12); + tmdv.v = vec_sld(zerov, om->tfv[7*(Q-1) + p7O_MD], 12); + tddv.v = vec_sld(zerov, om->tfv[8*Q-1], 12); + } + + path[0] = ((tmdv.p[r] == 0.0) ? -eslINFINITY : mpv.p[r]); + path[1] = ((tddv.p[r] == 0.0) ? -eslINFINITY : dpv.p[r]); + return ((path[0] >= path[1]) ? p7T_M : p7T_D); +} + +/* I(i,k) is reached from M(i-1, k) or I(i-1,k). */ +static inline int +select_i(const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell D(i,k) */ + int r = (k-1) / Q; + vector float *tp = om->tfv + 7*q + p7O_MI; + union { vector float v; float p[4]; } tv, mpv, ipv; + float path[2]; + + mpv.v = ox->dpf[i-1][q*3 + p7X_M]; tv.v = *tp; path[0] = ((tv.p[r] == 0.0) ? -eslINFINITY : mpv.p[r]); tp++; + ipv.v = ox->dpf[i-1][q*3 + p7X_I]; tv.v = *tp; path[1] = ((tv.p[r] == 0.0) ? -eslINFINITY : ipv.p[r]); + return ((path[0] >= path[1]) ? p7T_M : p7T_I); +} + +/* N(i) must come from N(i-1) for i>0; else it comes from S */ +static inline int +select_n(int i) +{ + return ((i==0) ? p7T_S : p7T_N); +} + +/* C(i) is reached from E(i) or C(i-1). */ +static inline int +select_c(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, int i) +{ + float path[2]; + path[0] = ( (om->xf[p7O_C][p7O_LOOP] == 0.0) ? -eslINFINITY : ox->xmx[(i-1)*p7X_NXCELLS+p7X_C] + pp->xmx[i*p7X_NXCELLS+p7X_C]); + path[1] = ( (om->xf[p7O_E][p7O_MOVE] == 0.0) ? -eslINFINITY : ox->xmx[ i *p7X_NXCELLS+p7X_E]); + return ((path[0] > path[1]) ? p7T_C : p7T_E); +} + +/* J(i) is reached from E(i) or J(i-1). */ +static inline int +select_j(const P7_OPROFILE *om, const P7_OMX *pp, const P7_OMX *ox, int i) +{ + float path[2]; + + path[0] = ( (om->xf[p7O_J][p7O_LOOP] == 0.0) ? -eslINFINITY : ox->xmx[(i-1)*p7X_NXCELLS+p7X_J] + pp->xmx[i*p7X_NXCELLS+p7X_J]); + path[1] = ( (om->xf[p7O_E][p7O_LOOP] == 0.0) ? -eslINFINITY : ox->xmx[ i *p7X_NXCELLS+p7X_E]); + return ((path[0] > path[1]) ? p7T_J : p7T_E); +} + +/* E(i) is reached from any M(i, k=1..M) or D(i, k=2..M). */ +/* This assumes all M_k->E, D_k->E are 1.0 */ +static inline int +select_e(const P7_OPROFILE *om, const P7_OMX *ox, int i, int *ret_k) +{ + int Q = p7O_NQF(ox->M); + vector float *dp = ox->dpf[i]; + union { vector float v; float p[4]; } u; + float max = -eslINFINITY; + int smax, kmax; + int q,r; + + /* precedence rules in case of ties here are a little tricky: M beats D: note the >= max! */ + for (q = 0; q < Q; q++) + { + u.v = *dp; dp++; for (r = 0; r < 4; r++) if (u.p[r] >= max) { max = u.p[r]; smax = p7T_M; kmax = r*Q + q + 1; } + u.v = *dp; dp+=2; for (r = 0; r < 4; r++) if (u.p[r] > max) { max = u.p[r]; smax = p7T_D; kmax = r*Q + q + 1; } + } + *ret_k = kmax; + return smax; +} + + +/* B(i) is reached from N(i) or J(i). */ +static inline int +select_b(const P7_OPROFILE *om, const P7_OMX *ox, int i) +{ + float path[2]; + + path[0] = ( (om->xf[p7O_N][p7O_MOVE] == 0.0) ? -eslINFINITY : ox->xmx[i*p7X_NXCELLS+p7X_N]); + path[1] = ( (om->xf[p7O_J][p7O_MOVE] == 0.0) ? -eslINFINITY : ox->xmx[i*p7X_NXCELLS+p7X_J]); + return ((path[0] > path[1]) ? p7T_N : p7T_J); +} +/*---------------------- end, OA traceback ----------------------*/ + + + + +/***************************************************************** + * 3. Benchmark driver + *****************************************************************/ +#ifdef p7OPTACC_BENCHMARK +/* + icc -O3 -static -o optacc_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7OPTACC_BENCHMARK optacc.c -lhmmer -leasel -lm + + ./optacc_benchmark runs benchmark on optimal accuracy fill and trace + ./optacc_benchmark -c -N1 compare scores of VMX version to generic impl + ./optacc_benchmark -x -N1 test that scores match trusted implementation. + + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ --------------- + 20 Aug 08: 13.11u (110 Mc/s) 23.39u (116 Mc/s) 332.62u (69 Mc/s) + + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { "--notrace", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only benchmark the DP fill stage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for optimal accuracy alignment, VMX version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx1 = NULL; + P7_GMX *gx2 = NULL; + P7_OMX *ox1 = NULL; + P7_OMX *ox2 = NULL; + P7_TRACE *tr = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float fsc, bsc, accscore; + float fsc_g, bsc_g, accscore_g; + double Mcs; + + p7_FLogsumInit(); + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + if (esl_opt_GetBoolean(go, "-x") && p7_FLogsumError(-0.4, -0.5) > 0.0001) + p7_Fail("-x here requires p7_Logsum() recompiled in slow exact mode"); + + ox1 = p7_omx_Create(gm->M, L, L); + ox2 = p7_omx_Create(gm->M, L, L); + tr = p7_trace_CreateWithPP(); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_Forward (dsq, L, om, ox1, &fsc); + p7_Backward(dsq, L, om, ox1, ox2, &bsc); + p7_Decoding(om, ox1, ox2, ox2); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + p7_OptimalAccuracy(om, ox2, ox1, &accscore); + + if (! esl_opt_GetBoolean(go, "--notrace")) + { + p7_OATrace(om, ox2, ox1, tr); + p7_trace_Reuse(tr); + } + } + esl_stopwatch_Stop(w); + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + if (esl_opt_GetBoolean(go, "-c") || esl_opt_GetBoolean(go, "-x") ) + { + gx1 = p7_gmx_Create(gm->M, L); + gx2 = p7_gmx_Create(gm->M, L); + + p7_GForward (dsq, L, gm, gx1, &fsc_g); + p7_GBackward(dsq, L, gm, gx2, &bsc_g); + p7_GDecoding(gm, gx1, gx2, gx2); + p7_GOptimalAccuracy(gm, gx2, gx1, &accscore_g); + + printf("generic: fwd=%8.4f bck=%8.4f acc=%8.4f\n", fsc_g, bsc_g, accscore_g); + printf("VMX: fwd=%8.4f bck=%8.4f acc=%8.4f\n", fsc, bsc, accscore); + + p7_gmx_Destroy(gx1); + p7_gmx_Destroy(gx2); + } + + free(dsq); + p7_omx_Destroy(ox1); + p7_omx_Destroy(ox2); + p7_trace_Destroy(tr); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7OPTACC_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + + + +/***************************************************************** + * 4. Unit tests + *****************************************************************/ +#ifdef p7OPTACC_TESTDRIVE +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +/* + * 1. Compare accscore to GOptimalAccuracy(). + * 2. Compare trace to GOATrace(). + * + * Note: This test is subject to some expected noise and can fail + * for entirely innocent reasons. Generic Forward/Backward calculations with + * p7_GForward(), p7_GBackward() use coarse-grain table lookups to sum + * log probabilities, and sufficient roundoff error can accumulate to + * change the optimal accuracy traceback, causing this test to fail. + * So, if optacc_utest fails, before you go looking for bugs, first + * go to ../logsum.c, change the #ifdef to activate the slow/accurate + * version, recompile and rerun optacc_utest. If the failure goes away, + * you can ignore it. - SRE, Wed Dec 17 09:45:31 2008 + */ +static void +utest_optacc(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + char *msg = "optimal accuracy unit test failed"; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_SQ *sq = esl_sq_CreateDigital(abc); + P7_OMX *ox1 = p7_omx_Create(M, L, L); + P7_OMX *ox2 = p7_omx_Create(M, L, L); + P7_GMX *gx1 = p7_gmx_Create(M, L); + P7_GMX *gx2 = p7_gmx_Create(M, L); + P7_TRACE *tr = p7_trace_CreateWithPP(); + P7_TRACE *trg = p7_trace_CreateWithPP(); + P7_TRACE *tro = p7_trace_CreateWithPP(); + float accscore_o; + float fsc, bsc, accscore; + float fsc_g, bsc_g, accscore_g, accscore_g2; + float pptol = 0.01; + float sctol = 0.001; + float gtol; + + p7_FLogsumInit(); + gtol = ( (p7_FLogsumError(-0.4, -0.5) > 0.0001) ? 0.1 : 0.001); + + if (p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om)!= eslOK) esl_fatal(msg); + while (N--) + { + if (p7_ProfileEmit(r, hmm, gm, bg, sq, tro) != eslOK) esl_fatal(msg); + + if (p7_omx_GrowTo(ox1, M, sq->n, sq->n) != eslOK) esl_fatal(msg); + if (p7_omx_GrowTo(ox2, M, sq->n, sq->n) != eslOK) esl_fatal(msg); + if (p7_gmx_GrowTo(gx1, M, sq->n) != eslOK) esl_fatal(msg); + if (p7_gmx_GrowTo(gx2, M, sq->n) != eslOK) esl_fatal(msg); + + if (p7_Forward (sq->dsq, sq->n, om, ox1, &fsc) != eslOK) esl_fatal(msg); + if (p7_Backward(sq->dsq, sq->n, om, ox1, ox2, &bsc) != eslOK) esl_fatal(msg); + if (p7_Decoding(om, ox1, ox2, ox2) != eslOK) esl_fatal(msg); + if (p7_OptimalAccuracy(om, ox2, ox1, &accscore) != eslOK) esl_fatal(msg); + +#if 0 + p7_omx_FDeconvert(ox1, gx1); + p7_gmx_Dump(stdout, gx1, p7_DEFAULT); + p7_omx_FDeconvert(ox2, gx1); + p7_gmx_Dump(stdout, gx1, p7_DEFAULT); +#endif + if (p7_OATrace(om, ox2, ox1, tr) != eslOK) esl_fatal(msg); + + if (p7_GForward (sq->dsq, sq->n, gm, gx1, &fsc_g) != eslOK) esl_fatal(msg); + if (p7_GBackward(sq->dsq, sq->n, gm, gx2, &bsc_g) != eslOK) esl_fatal(msg); + +#if 0 + p7_gmx_Dump(stdout, gx1, p7_DEFAULT); /* fwd */ + p7_gmx_Dump(stdout, gx2, p7_DEFAULT); /* bck */ +#endif + + if (p7_GDecoding(gm, gx1, gx2, gx2) != eslOK) esl_fatal(msg); + if (p7_GOptimalAccuracy(gm, gx2, gx1, &accscore_g) != eslOK) esl_fatal(msg); + +#if 0 + p7_gmx_Dump(stdout, gx1, p7_DEFAULT); /* oa */ + p7_gmx_Dump(stdout, gx2, p7_DEFAULT); /* pp */ +#endif + if (p7_GOATrace(gm, gx2, gx1, trg) != eslOK) esl_fatal(msg); + + if (p7_trace_SetPP(tro, gx2) != eslOK) esl_fatal(msg); + + if (esl_opt_GetBoolean(go, "--traces")) + { + p7_trace_Dump(stdout, tro, gm, sq->dsq); + p7_trace_Dump(stdout, tr, gm, sq->dsq); + p7_trace_Dump(stdout, trg, gm, sq->dsq); + } + + if (p7_trace_Validate(tr, abc, sq->dsq, NULL) != eslOK) esl_fatal(msg); + if (p7_trace_Validate(trg, abc, sq->dsq, NULL) != eslOK) esl_fatal(msg); + if (p7_trace_Compare(tr, trg, pptol) != eslOK) esl_fatal(msg); + + accscore_o = p7_trace_GetExpectedAccuracy(tro); /* according to gx2; see p7_trace_SetPP() call above */ + accscore_g2 = p7_trace_GetExpectedAccuracy(trg); + +#if 0 + printf("%f %f %f %f\n", accscore, accscore_g, accscore_g2, accscore_o); +#endif + + if (esl_FCompare(fsc, bsc, sctol) != eslOK) esl_fatal(msg); + if (esl_FCompare(fsc_g, bsc_g, gtol) != eslOK) esl_fatal(msg); + if (esl_FCompare(fsc, fsc_g, gtol) != eslOK) esl_fatal(msg); + if (esl_FCompare(accscore, accscore_g, gtol) != eslOK) esl_fatal(msg); + if (esl_FCompare(accscore_g, accscore_g2, gtol) != eslOK) esl_fatal(msg); + if (accscore_g2 < accscore_o) esl_fatal(msg); + /* the above deserves explanation: + * - accscore_o is the accuracy of the originally emitted trace, according + * to the generic posterior decoding matrix . This is a lower bound + * on the expected # of accurately aligned residues found by a DP + * optimization. + * - accscore is the accuracy found by the fast (vector) code DP implementation. + * - accscore_g is the accuracy found by the generic DP implementation. + * accscore and accscore_g should be nearly identical, + * within tolerance of roundoff error accumulation and + * the imprecision of Logsum() tables. + * - accscore_g2 is the accuracy of the traceback identified by the generic + * DP implementation. It should be identical (within order-of-evaluation + * roundoff error) to accscore_g. + * + * the "accscore_g2 < accscore_o" test is carefully contrived. + * accscore_o is a theoretical lower bound but because of fp error, + * accscore and (much more rarely) even accscore_g can exceed accscore_o. + * accscore_g2, however, is calculated with identical order of evaluation + * as accscore_o if the optimal trace does turn out to be identical to + * the originally emitted trace. It should be extremely unlikely (though + * not impossible) for accscore_o to exceed accscore_g2. (The DP algorithm + * would have to identify a trace that was different than the original trace, + * which the DP algorithm, by order-of-evaluation, assigned higher accuracy, + * but order-of-evaluation in traceback dependent code assigned lower accuracy. + * [xref J5/29] + */ + + esl_sq_Reuse(sq); + p7_trace_Reuse(tr); + p7_trace_Reuse(trg); + p7_trace_Reuse(tro); + } + + p7_trace_Destroy(tro); + p7_trace_Destroy(trg); + p7_trace_Destroy(tr); + p7_gmx_Destroy(gx2); + p7_gmx_Destroy(gx1); + p7_omx_Destroy(ox2); + p7_omx_Destroy(ox1); + esl_sq_Destroy(sq); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); +} + +#endif /*p7OPTACC_TESTDRIVE*/ +/*------------------- end, unit tests ---------------------------*/ + + + + +/***************************************************************** + * 5. Test driver + *****************************************************************/ +#ifdef p7OPTACC_TESTDRIVE + +/* Failures in this test are to be expected, if you change the defaults. + * The default RNG seed of 41 is very carefully chosen! Most seeds will + * cause this test to fail. (Only 13 and 41 work for seeds 1..50.) + * + * The generic fwd/bck algorithms work in log space and suffer from a + * small amount of imprecision, not only from the use of FLogsum()'s + * table-driven approximation, but even (apparently) inherent in log() + * and exp(). To minimize this, the generic decoding algorithm burns + * time renormalizing each row. Still, it's a problem. See notes at + * the header of utest_optacc() for more info. + * + * Another expected failure mode is when a fwd, bck nat score are close to + * 0.0; FCompare() can evaluate two close-to-zero numbers as "different" + * even if their absolute diff is negligible. (I suppose I could fix this.) + */ + +/* + gcc -g -Wall -maltivec -std=gnu99 -o optacc_utest -I.. -L.. -I../../easel -L../../easel -Dp7OPTACC_TESTDRIVE optacc.c -lhmmer -leasel -lm + ./optacc_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "41", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "50", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "45", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "20", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { "--traces", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump all tracebacks", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for VMX Forward, Backward implementations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* first round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_optacc(go, r, abc, bg, M, L, N); /* normal sized models */ + utest_optacc(go, r, abc, bg, 1, L, 10); /* size 1 models */ + utest_optacc(go, r, abc, bg, M, 1, 10); /* size 1 sequences */ + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + /* Second round of tests for amino alphabets. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_optacc(go, r, abc, bg, M, L, N); + utest_optacc(go, r, abc, bg, 1, L, 10); + utest_optacc(go, r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*p7OPTACC_TESTDRIVE*/ +/*------------------ end, test driver ---------------------------*/ + + + + +/***************************************************************** + * 6. Example + *****************************************************************/ +#ifdef p7OPTACC_EXAMPLE +/* + gcc -g -Wall -o optacc_example -Dp7OPTACC_EXAMPLE -I.. -I../../easel -L.. -L../../easel optacc.c -lhmmer -leasel -lm + ./optacc_example +*/ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-d", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump posterior residue decoding matrix", 0 }, + { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump OA matrix", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of optimal accuracy alignment, VMX implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox1 = NULL; + P7_OMX *ox2 = NULL; + P7_GMX *gx = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + P7_TRACE *tr = NULL; + int format = eslSQFILE_UNKNOWN; + char errbuf[eslERRBUFSIZE]; + float fsc, bsc; + float accscore; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_OpenDigital(abc, seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); /* multihit local: H3 default */ + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + + /* Allocations */ + ox1 = p7_omx_Create(gm->M, sq->n, sq->n); + ox2 = p7_omx_Create(gm->M, sq->n, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + tr = p7_trace_CreateWithPP(); + p7_FLogsumInit(); + + /* Run Forward, Backward; do OA fill and trace */ + p7_Forward (sq->dsq, sq->n, om, ox1, &fsc); + p7_Backward(sq->dsq, sq->n, om, ox1, ox2, &bsc); + p7_Decoding(om, ox1, ox2, ox2); /* is now the posterior decoding matrix */ + p7_OptimalAccuracy(om, ox2, ox1, &accscore); /* is now the OA matrix */ + p7_OATrace(om, ox2, ox1, tr); + + if (esl_opt_GetBoolean(go, "-d")) { p7_omx_FDeconvert(ox2, gx); p7_gmx_Dump(stdout, gx, p7_DEFAULT); } + if (esl_opt_GetBoolean(go, "-m")) { p7_omx_FDeconvert(ox1, gx); p7_gmx_Dump(stdout, gx, p7_DEFAULT); } + + p7_trace_Dump(stdout, tr, gm, sq->dsq); + + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) p7_Die("trace fails validation:\n%s\n", errbuf); + + printf("fwd = %.4f nats\n", fsc); + printf("bck = %.4f nats\n", bsc); + printf("acc = %.4f (%.2f%%)\n", accscore, accscore * 100. / (float) sq->n); + + /* Cleanup */ + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + p7_omx_Destroy(ox1); + p7_omx_Destroy(ox2); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7OPTACC_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/p7_omx.c b/bioinformaticsProject/hmmer/src/impl_vmx/p7_omx.c new file mode 100644 index 0000000..3e420ae --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/p7_omx.c @@ -0,0 +1,641 @@ +/* VMX implementation of an optimized profile structure. + * + * Contents: + * 1. The P7_OMX structure: a dynamic programming matrix + * 2. Debugging dumps of P7_OMX structures + * + * See also: + * p7_omx.ai - figure illustrating the layout of a P7_OMX. + * + * SRE, Sun Nov 25 11:26:48 2007 [Casa de Gatos] + */ +#include "p7_config.h" + +#include +#include +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_vectorops.h" +#include "esl_vmx.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +/***************************************************************** + * 1. The P7_OMX structure: a dynamic programming matrix + *****************************************************************/ + +/* Function: p7_omx_Create() + * Synopsis: Create an optimized dynamic programming matrix. + * Incept: SRE, Tue Nov 27 08:48:20 2007 [Janelia] + * + * Purpose: Allocates a reusable, resizeable for models up to + * size and target sequences up to length + * , for use by any of the various optimized + * DP routines. + * + * To allocate the very memory-efficient one-row matrix + * used by *Filter() and *Score() functions that only + * calculate scores, , , and + * . + * + * To allocate the reasonably memory-efficient linear + * arrays used by *Parser() functions that only keep + * special (X) state scores, , , + * and . + * + * To allocate a complete matrix suitable for functions + * that need the whole DP matrix for traceback, sampling, + * posterior decoding, or reestimation, and + * . + * + * Returns: a pointer to the new . + * + * Throws: on allocation failure. + */ +P7_OMX * +p7_omx_Create(int allocM, int allocL, int allocXL) +{ + P7_OMX *ox = NULL; + int i; + int status; + + ESL_ALLOC(ox, sizeof(P7_OMX)); + ox->dp_mem = NULL; + ox->dpb = NULL; + ox->dpw = NULL; + ox->dpf = NULL; + ox->xmx = NULL; + ox->x_mem = NULL; + + /* DP matrix will be allocated for allocL+1 rows 0,1..L; allocQ4*p7X_NSCELLS columns */ + ox->allocR = allocL+1; + ox->validR = ox->allocR; + ox->allocQ4 = p7O_NQF(allocM); + ox->allocQ8 = p7O_NQW(allocM); + ox->allocQ16 = p7O_NQB(allocM); + ox->ncells = ox->allocR * ox->allocQ4 * 4; /* # of DP cells allocated, where 1 cell contains MDI */ + + /* floats always dominate; +15 for alignment */ + ESL_ALLOC(ox->dp_mem, sizeof(vector float) * ox->allocR * ox->allocQ4 * p7X_NSCELLS + 15); + ESL_ALLOC(ox->dpb, sizeof(vector unsigned char *) * ox->allocR); + ESL_ALLOC(ox->dpw, sizeof(vector signed short *) * ox->allocR); + ESL_ALLOC(ox->dpf, sizeof(vector float *) * ox->allocR); + + /* DP memory shared by , , */ + ox->dpb[0] = (vector unsigned char *) ((unsigned long int) ((char *) ox->dp_mem + 15) & (~0xf)); + ox->dpw[0] = (vector signed short *) ox->dpb[0]; + ox->dpf[0] = (vector float *) ox->dpb[0]; + + for (i = 1; i <= allocL; i++) { + ox->dpf[i] = ox->dpf[0] + i * ox->allocQ4 * p7X_NSCELLS; + ox->dpw[i] = ox->dpw[0] + i * ox->allocQ8 * p7X_NSCELLS; + ox->dpb[i] = ox->dpb[0] + i * ox->allocQ16; + } + + ox->allocXR = allocXL+1; + ESL_ALLOC(ox->x_mem, sizeof(float) * ox->allocXR * p7X_NXCELLS + 15); + ox->xmx = (float *) ((unsigned long int) ((char *) ox->x_mem + 15) & (~0xf)); + + ox->M = 0; + ox->L = 0; + ox->totscale = 0.0; + ox->has_own_scales = TRUE; /* most matrices are Forward, control their own scale factors */ +#if eslDEBUGLEVEL > 0 + ox->debugging = FALSE; + ox->dfp = NULL; +#endif + return ox; + + ERROR: + p7_omx_Destroy(ox); + return NULL; +} + +/* Function: p7_omx_GrowTo() + * Synopsis: Assure that a DP matrix is big enough. + * Incept: SRE, Thu Dec 20 09:27:07 2007 [Janelia] + * + * Purpose: Assures that an optimized DP matrix is allocated for + * a model up to in length; if not, reallocate to + * make it so. + * + * Because the optimized matrix is one-row, only the model + * length matters; the target sequence length isn't + * relevant. + * + * Returns: on success, and may be reallocated upon + * return; any data that may have been in must be + * assumed to be invalidated. + * + * Throws: on allocation failure, and any data that may + * have been in must be assumed to be invalidated. + */ +int +p7_omx_GrowTo(P7_OMX *ox, int allocM, int allocL, int allocXL) +{ + void *p; + int nqf = p7O_NQF(allocM); /* segment length; total # of striped vectors for uchar */ + int nqw = p7O_NQW(allocM); /* segment length; total # of striped vectors for float */ + int nqb = p7O_NQB(allocM); /* segment length; total # of striped vectors for float */ + size_t ncells = (allocL+1) * nqf * 4; + int reset_row_pointers = FALSE; + int i; + int status; + + /* If all possible dimensions are already satisfied, the matrix is fine */ + if (ox->allocQ4*4 >= allocM && ox->validR > allocL && ox->allocXR >= allocXL+1) return eslOK; + + /* If the main matrix is too small in cells, reallocate it; + * and we'll need to realign/reset the row pointers later. + */ + if (ncells > ox->ncells) + { + ESL_RALLOC(ox->dp_mem, p, sizeof(vector float) * (allocL+1) * nqf * p7X_NSCELLS + 15); + ox->ncells = ncells; + reset_row_pointers = TRUE; + } + + /* If the X beams are too small, reallocate them. */ + if (allocXL+1 >= ox->allocXR) + { + ESL_RALLOC(ox->x_mem, p, sizeof(float) * (allocXL+1) * p7X_NXCELLS + 15); + ox->allocXR = allocXL+1; + ox->xmx = (float *) ((unsigned long int) ((char *) ox->x_mem + 15) & (~0xf)); + } + + /* If there aren't enough rows, reallocate the row pointers; we'll + * realign and reset them later. + */ + if (allocL >= ox->allocR) + { + ESL_RALLOC(ox->dpb, p, sizeof(vector unsigned char *) * (allocL+1)); + ESL_RALLOC(ox->dpw, p, sizeof(vector signed short * ) * (allocL+1)); + ESL_RALLOC(ox->dpf, p, sizeof(vector float *) * (allocL+1)); + ox->allocR = allocL+1; + reset_row_pointers = TRUE; + } + + /* must we widen the rows? */ + if (allocM > ox->allocQ4*4) + reset_row_pointers = TRUE; + + /* must we set some more valid row pointers? */ + if (allocL >= ox->validR) + reset_row_pointers = TRUE; + + /* now reset the row pointers, if needed */ + if (reset_row_pointers) + { + ox->dpb[0] = (vector unsigned char *) ((unsigned long int) ((char *) ox->dp_mem + 15) & (~0xf)); + ox->dpw[0] = (vector signed short *) ox->dpb[0]; + ox->dpf[0] = (vector float *) ox->dpb[0]; + + ox->validR = ESL_MIN( ox->ncells / (nqf * 4), ox->allocR); + for (i = 1; i < ox->validR; i++) + { + ox->dpb[i] = ox->dpb[0] + i * nqb; + ox->dpw[i] = ox->dpw[0] + i * nqw * p7X_NSCELLS; + ox->dpf[i] = ox->dpf[0] + i * nqf * p7X_NSCELLS; + } + + ox->allocQ4 = nqf; + ox->allocQ8 = nqw; + ox->allocQ16 = nqb; + } + + ox->M = 0; + ox->L = 0; + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_omx_FDeconvert() + * Synopsis: Convert an optimized DP matrix to generic one. + * Incept: SRE, Tue Aug 19 17:58:13 2008 [Janelia] + * + * Purpose: Convert the 32-bit float values in optimized DP matrix + * to a generic one . Caller provides with sufficient + * space to hold the M> by L> matrix. + * + * This function is used to gain access to the + * somewhat more powerful debugging and display + * tools available for generic DP matrices. + */ +int +p7_omx_FDeconvert(P7_OMX *ox, P7_GMX *gx) +{ + int Q = p7O_NQF(ox->M); + int i, q, r, k; + union { vector float v; float p[4]; } u; + float **dp = gx->dp; + float *xmx = gx->xmx; + + for (i = 0; i <= ox->L; i++) + { + MMX(i,0) = DMX(i,0) = IMX(i,0) = -eslINFINITY; + for (q = 0; q < Q; q++) + { + u.v = MMO(ox->dpf[i],q); + for (r = 0; r < 4; r++) + { + k = (Q*r)+q+1; + if (k <= ox->M) MMX(i, (Q*r)+q+1) = u.p[r]; + } + + u.v = DMO(ox->dpf[i],q); + for (r = 0; r < 4; r++) + { + k = (Q*r)+q+1; + if (k <= ox->M) DMX(i, (Q*r)+q+1) = u.p[r]; + } + + u.v = IMO(ox->dpf[i],q); + for (r = 0; r < 4; r++) + { + k = (Q*r)+q+1; + if (k <= ox->M) IMX(i, (Q*r)+q+1) = u.p[r]; + } + } + XMX(i,p7G_E) = ox->xmx[i*p7X_NXCELLS+p7X_E]; + XMX(i,p7G_N) = ox->xmx[i*p7X_NXCELLS+p7X_N]; + XMX(i,p7G_J) = ox->xmx[i*p7X_NXCELLS+p7X_J]; + XMX(i,p7G_B) = ox->xmx[i*p7X_NXCELLS+p7X_B]; + XMX(i,p7G_C) = ox->xmx[i*p7X_NXCELLS+p7X_C]; + } + gx->L = ox->L; + gx->M = ox->M; + return eslOK; +} + + +/* Function: p7_omx_Reuse() + * Synopsis: Recycle an optimized DP matrix. + * Incept: SRE, Wed Oct 22 11:31:00 2008 [Janelia] + * + * Purpose: Recycles for re-use. + * + * Returns: on success. + */ +int +p7_omx_Reuse(P7_OMX *ox) +{ + ox->M = 0; + ox->L = 0; + ox->totscale = 0.0; + ox->has_own_scales = TRUE; /* default assumes a Forward matrix, with its own scale factors */ +#if eslDEBUGLEVEL > 0 + ox->debugging = FALSE; + ox->dfp = NULL; +#endif + return eslOK; +} + + + + +/* Function: p7_omx_Destroy() + * Synopsis: Frees an optimized DP matrix. + * Incept: SRE, Tue Nov 27 09:11:42 2007 [Janelia] + * + * Purpose: Frees optimized DP matrix . + * + * Returns: (void) + */ +void +p7_omx_Destroy(P7_OMX *ox) +{ + if (ox == NULL) return; + if (ox->x_mem != NULL) free(ox->x_mem); + if (ox->dp_mem != NULL) free(ox->dp_mem); + if (ox->dpf != NULL) free(ox->dpf); + if (ox->dpw != NULL) free(ox->dpw); + if (ox->dpb != NULL) free(ox->dpb); + free(ox); + return; +} +/*------------------- end, P7_OMX structure ---------------------*/ + + + +/***************************************************************** + * 2. Debugging dumps of P7_OMX structures + *****************************************************************/ +/* Because the P7_OMX may be a one-row DP matrix, we can't just run a + * DP calculation and then dump a whole matrix; we have to dump each + * row one at a time, as the DP calculation is progressing. Thus we + * need to call the dump from *within* some DP routines. We'd rather not + * have anything like this in production code - not even a flag check. + * So, we use a compile-time debugging idiom, with conditionally + * compiled debugging code that's added to the DP routines to check a + * debugging flag in the P7_OMX structure; if it's up, we dump a row. + * + * Therefore, the externally exposed API call is p7_omx_SetDumpMode(), + * rather than the dumping routine itself; and all p7_omx_SetDumpMode() + * does is sets the debugging flag in . + */ + +/* Function: p7_omx_SetDumpMode() + * Synopsis: Set an optimized DP matrix to be dumped for debugging. + * Incept: SRE, Thu Dec 13 10:24:38 2007 [Janelia] + * + * Purpose: Sets debugging mode for DP matrix . If + * flag is , then whenever a dynamic programming + * calculation is run, dump DP matrix to stream + * for diagnostics. + * + * When the dump mode is on, the DP routine itself actually + * does the dumping, because it has to dump after every row + * is calculated. (We're doing an optimized one-row + * calculation.) + * + * If the code has not been compiled with the + * flag set nonzero, this function is a no-op. + * + * Args: fp - output stream for diagnostics (stdout, perhaps) + * ox - DP matrix to set debugging mode + * truefalse - TRUE to set dumping, FALSE to unset + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + * + * Xref: J2/62. + */ +int +p7_omx_SetDumpMode(FILE *fp, P7_OMX *ox, int truefalse) +{ +#if eslDEBUGLEVEL > 0 + ox->debugging = truefalse; + ox->dfp = fp; +#endif + return eslOK; +} + + +/* Function: p7_omx_DumpMFRow() + * Synopsis: Dump one row from MSV uchar version of a DP matrix. + * Incept: SRE, Wed Jul 30 16:47:26 2008 [Janelia] + * + * Purpose: Dump current row of uchar part of DP matrix for diagnostics, + * and include the values of specials , etc. The index for + * the current row is used as a row label. This routine has to be + * specialized for the layout of the MSVFilter() row, because it's + * all match scores dp[0..q..Q-1], rather than triplets of M,D,I. + * + * If is 0, print a header first too. + * + * The output format is coordinated with to + * facilitate comparison to a known answer. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_omx_DumpMFRow(P7_OMX *ox, int rowi, uint8_t xE, uint8_t xN, uint8_t xJ, uint8_t xB, uint8_t xC) +{ + vector unsigned char *dp = ox->dpb[0]; + int M = ox->M; + int Q = p7O_NQB(M); + uint8_t *v = NULL; /* array of unstriped scores */ + int q,z,k; + union { vector unsigned char v; uint8_t i[16]; } tmp; + int status; + + ESL_ALLOC(v, sizeof(unsigned char) * ((Q*16)+1)); + v[0] = 0; + + /* Header (if we're on the 0th row) */ + if (rowi == 0) + { + fprintf(ox->dfp, " "); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%3d ", k); + fprintf(ox->dfp, "%3s %3s %3s %3s %3s\n", "E", "N", "J", "B", "C"); + fprintf(ox->dfp, " "); + for (k = 0; k <= M+5; k++) fprintf(ox->dfp, "%3s ", "---"); + fprintf(ox->dfp, "\n"); + } + + /* Unpack and unstripe, then print M's. */ + for (q = 0; q < Q; q++) { + tmp.v = dp[q]; + for (z = 0; z < 16; z++) v[q+Q*z+1] = tmp.i[z]; + } + fprintf(ox->dfp, "%4d M ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%3d ", v[k]); + + /* The specials */ + fprintf(ox->dfp, "%3d %3d %3d %3d %3d\n", xE, xN, xJ, xB, xC); + + /* I's are all 0's; print just to facilitate comparison. */ + fprintf(ox->dfp, "%4d I ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%3d ", 0); + fprintf(ox->dfp, "\n"); + + /* D's are all 0's too */ + fprintf(ox->dfp, "%4d D ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%3d ", 0); + fprintf(ox->dfp, "\n\n"); + + free(v); + return eslOK; + +ERROR: + free(v); + return status; +} + + +/* Function: p7_omx_DumpVFRow() + * Synopsis: Dump current row of ViterbiFilter (int16) part of matrix. + * Incept: SRE, Wed Jul 30 16:43:21 2008 [Janelia] + * + * Purpose: Dump current row of ViterbiFilter (int16) part of DP + * matrix for diagnostics, and include the values of + * specials , etc. The index for the current row + * is used as a row label. + * + * If is 0, print a header first too. + * + * The output format is coordinated with to + * facilitate comparison to a known answer. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_omx_DumpVFRow(P7_OMX *ox, int rowi, int16_t xE, int16_t xN, int16_t xJ, int16_t xB, int16_t xC) +{ + vector signed short *dp = ox->dpw[0]; /* must set before using {MDI}MX macros */ + int M = ox->M; + int Q = p7O_NQW(M); + int16_t *v = NULL; /* array of unstriped, uninterleaved scores */ + int q,z,k; + union { vector signed short v; int16_t i[8]; } tmp; + int status; + + ESL_ALLOC(v, sizeof(int16_t) * ((Q*8)+1)); + v[0] = 0; + + /* Header (if we're on the 0th row) + */ + if (rowi == 0) + { + fprintf(ox->dfp, " "); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%6d ", k); + fprintf(ox->dfp, "%6s %6s %6s %6s %6s\n", "E", "N", "J", "B", "C"); + fprintf(ox->dfp, " "); + for (k = 0; k <= M+5; k++) fprintf(ox->dfp, "%6s ", "------"); + fprintf(ox->dfp, "\n"); + } + + /* Unpack and unstripe, then print M's. */ + for (q = 0; q < Q; q++) { + tmp.v = MMXo(q); + for (z = 0; z < 8; z++) v[q+Q*z+1] = tmp.i[z]; + } + fprintf(ox->dfp, "%4d M ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%6d ", v[k]); + + /* The specials */ + fprintf(ox->dfp, "%6d %6d %6d %6d %6d\n", xE, xN, xJ, xB, xC); + + /* Unpack and unstripe, then print I's. */ + for (q = 0; q < Q; q++) { + tmp.v = IMXo(q); + for (z = 0; z < 8; z++) v[q+Q*z+1] = tmp.i[z]; + } + fprintf(ox->dfp, "%4d I ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%6d ", v[k]); + fprintf(ox->dfp, "\n"); + + /* Unpack, unstripe, then print D's. */ + for (q = 0; q < Q; q++) { + tmp.v = DMXo(q); + for (z = 0; z < 8; z++) v[q+Q*z+1] = tmp.i[z]; + } + fprintf(ox->dfp, "%4d D ", rowi); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%6d ", v[k]); + fprintf(ox->dfp, "\n\n"); + + free(v); + return eslOK; + +ERROR: + free(v); + return status; + +} + +/* Function: p7_omx_DumpFBRow() + * Synopsis: Dump one row from float part of a DP matrix. + * Incept: SRE, Wed Jul 30 16:45:16 2008 [Janelia] + * + * Purpose: Dump current row of Forward/Backward (float) part of DP + * matrix for diagnostics, and include the values of + * specials , etc. The index for the current row + * is used as a row label. + * + * The output format of the floats is controlled by + * , ; 8,5 is good for pspace, 5,2 is + * fine for lspace. + * + * If is 0, print a header first too. + * + * If is TRUE, then scores are printed as log(score); this is + * useful for comparing DP with pspace scores with other DP matrices + * (like generic P7_GMX ones) that use log-odds scores. + * + * The output format is coordinated with to + * facilitate comparison to a known answer. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_omx_DumpFBRow(P7_OMX *ox, int logify, int rowi, int width, int precision, float xE, float xN, float xJ, float xB, float xC) +{ + vector float *dp; + int M = ox->M; + int Q = p7O_NQF(M); + float *v = NULL; /* array of uninterleaved, unstriped scores */ + int q,z,k; + union { vector float v; float x[4]; } tmp; + int status; + + dp = (ox->allocR == 1) ? ox->dpf[0] : ox->dpf[rowi]; /* must set before using {MDI}MX macros */ + + ESL_ALLOC(v, sizeof(float) * ((Q*4)+1)); + v[0] = 0.; + + if (rowi == 0) + { + fprintf(ox->dfp, " "); + for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*d ", width, k); + fprintf(ox->dfp, "%*s %*s %*s %*s %*s\n", width, "E", width, "N", width, "J", width, "B", width, "C"); + fprintf(ox->dfp, " "); + for (k = 0; k <= M+5; k++) fprintf(ox->dfp, "%*s ", width, "--------"); + fprintf(ox->dfp, "\n"); + } + + /* Unpack, unstripe, then print M's. */ + for (q = 0; q < Q; q++) { + tmp.v = MMXo(q); + for (z = 0; z < 4; z++) v[q+Q*z+1] = tmp.x[z]; + } + fprintf(ox->dfp, "%3d M ", rowi); + if (logify) for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k] == 0. ? -eslINFINITY : log(v[k])); + else for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k]); + + /* The specials */ + if (logify) fprintf(ox->dfp, "%*.*f %*.*f %*.*f %*.*f %*.*f\n", + width, precision, xE == 0. ? -eslINFINITY : log(xE), + width, precision, xN == 0. ? -eslINFINITY : log(xN), + width, precision, xJ == 0. ? -eslINFINITY : log(xJ), + width, precision, xB == 0. ? -eslINFINITY : log(xB), + width, precision, xC == 0. ? -eslINFINITY : log(xC)); + else fprintf(ox->dfp, "%*.*f %*.*f %*.*f %*.*f %*.*f\n", + width, precision, xE, width, precision, xN, width, precision, xJ, + width, precision, xB, width, precision, xC); + + /* Unpack, unstripe, then print I's. */ + for (q = 0; q < Q; q++) { + tmp.v = IMXo(q); + for (z = 0; z < 4; z++) v[q+Q*z+1] = tmp.x[z]; + } + fprintf(ox->dfp, "%3d I ", rowi); + if (logify) for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k] == 0. ? -eslINFINITY : log(v[k])); + else for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k]); + fprintf(ox->dfp, "\n"); + + /* Unpack, unstripe, then print D's. */ + for (q = 0; q < Q; q++) { + tmp.v = DMXo(q); + for (z = 0; z < 4; z++) v[q+Q*z+1] = tmp.x[z]; + } + fprintf(ox->dfp, "%3d D ", rowi); + if (logify) for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k] == 0. ? -eslINFINITY : log(v[k])); + else for (k = 0; k <= M; k++) fprintf(ox->dfp, "%*.*f ", width, precision, v[k]); + fprintf(ox->dfp, "\n\n"); + + free(v); + return eslOK; + +ERROR: + free(v); + return status; +} +/*------------- end, debugging dumps of P7_OMX ------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/p7_oprofile.c b/bioinformaticsProject/hmmer/src/impl_vmx/p7_oprofile.c new file mode 100644 index 0000000..d0eac3d --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/p7_oprofile.c @@ -0,0 +1,2087 @@ +/* Routines for the P7_OPROFILE structure: + * a search profile in an optimized implementation. + * + * Contents: + * 1. The P7_OPROFILE object: allocation, initialization, destruction. + * 2. Conversion from generic P7_PROFILE to optimized P7_OPROFILE + * 3. Conversion from optimized P7_OPROFILE to compact score arrays + * 4. Debugging and development utilities. + * 5. Benchmark driver. + * 6. Unit tests. + * 7. Test driver. + * 8. Example. + * + * SRE, Wed Jul 30 11:00:04 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include +#include /* roundf() */ + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_random.h" +#include "esl_vmx.h" +#include "esl_vectorops.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static uint8_t unbiased_byteify(P7_OPROFILE *om, float sc); +static uint8_t biased_byteify(P7_OPROFILE *om, float sc); +static int16_t wordify(P7_OPROFILE *om, float sc); + +/***************************************************************** + * 1. The P7_OPROFILE structure: a score profile. + *****************************************************************/ + +/* Function: p7_oprofile_Create() + * Synopsis: Allocate an optimized profile structure. + * Incept: SRE, Sun Nov 25 12:03:19 2007 [Casa de Gatos] + * + * Purpose: Allocate for profiles of up to nodes for digital alphabet . + * + * Throws: on allocation error. + */ +P7_OPROFILE * +p7_oprofile_Create(int allocM, const ESL_ALPHABET *abc) +{ + int status; + P7_OPROFILE *om = NULL; + int nqb = p7O_NQB(allocM); /* # of uchar vectors needed for query */ + int nqw = p7O_NQW(allocM); /* # of sword vectors needed for query */ + int nqf = p7O_NQF(allocM); /* # of float vectors needed for query */ + int x; + + /* level 0 */ + ESL_ALLOC(om, sizeof(P7_OPROFILE)); + om->rbv_mem = NULL; + om->rwv_mem = NULL; + om->twv_mem = NULL; + om->rfv_mem = NULL; + om->tfv_mem = NULL; + om->rbv = NULL; + om->rwv = NULL; + om->twv = NULL; + om->rfv = NULL; + om->tfv = NULL; + om->clone = 0; + + /* level 1 */ + + /* +15 is for manual 16-byte alignment */ + ESL_ALLOC(om->rbv_mem, sizeof(vector unsigned char) * nqb * abc->Kp +15); + ESL_ALLOC(om->rwv_mem, sizeof(vector signed short) * nqw * abc->Kp +15); + ESL_ALLOC(om->twv_mem, sizeof(vector signed short) * nqw * p7O_NTRANS +15); + ESL_ALLOC(om->rfv_mem, sizeof(vector float) * nqf * abc->Kp +15); + ESL_ALLOC(om->tfv_mem, sizeof(vector float) * nqf * p7O_NTRANS +15); + + ESL_ALLOC(om->rbv, sizeof(vector unsigned char *) * abc->Kp); + ESL_ALLOC(om->rwv, sizeof(vector signed short *) * abc->Kp); + ESL_ALLOC(om->rfv, sizeof(vector float *) * abc->Kp); + + /* align vector memory on 16-byte boundaries */ + om->rbv[0] = (vector unsigned char *) (((unsigned long int) om->rbv_mem + 15) & (~0xf)); + om->rwv[0] = (vector signed short *) (((unsigned long int) om->rwv_mem + 15) & (~0xf)); + om->twv = (vector signed short *) (((unsigned long int) om->twv_mem + 15) & (~0xf)); + om->rfv[0] = (vector float *) (((unsigned long int) om->rfv_mem + 15) & (~0xf)); + om->tfv = (vector float *) (((unsigned long int) om->tfv_mem + 15) & (~0xf)); + + + /* set the rest of the row pointers for match emissions */ + for (x = 1; x < abc->Kp; x++) { + om->rbv[x] = om->rbv[0] + (x * nqb); + om->rwv[x] = om->rwv[0] + (x * nqw); + om->rfv[x] = om->rfv[0] + (x * nqf); + } + om->allocQ16 = nqb; + om->allocQ8 = nqw; + om->allocQ4 = nqf; + + /* Remaining initializations */ + om->tbm_b = 0; + om->tec_b = 0; + om->tjb_b = 0; + om->scale_b = 0.0f; + om->base_b = 0; + om->bias_b = 0; + + om->scale_w = 0.0f; + om->base_w = 0; + om->ddbound_w = 0; + om->ncj_roundoff = 0.0f; + + for (x = 0; x < p7_NOFFSETS; x++) om->offs[x] = -1; + for (x = 0; x < p7_NEVPARAM; x++) om->evparam[x] = p7_EVPARAM_UNSET; + for (x = 0; x < p7_NCUTOFFS; x++) om->cutoff[x] = p7_CUTOFF_UNSET; + for (x = 0; x < p7_MAXABET; x++) om->compo[x] = p7_COMPO_UNSET; + + om->name = NULL; + om->acc = NULL; + om->desc = NULL; + + /* in a P7_OPROFILE, we always allocate for the optional RF, CS annotation. + * we only rely on the leading \0 to signal that it's unused, but + * we initialize all this memory to zeros to shut valgrind up about + * fwrite'ing uninitialized memory in the io functions. + */ + ESL_ALLOC(om->rf, sizeof(char) * (allocM+2)); + ESL_ALLOC(om->mm, sizeof(char) * (allocM+2)); + ESL_ALLOC(om->cs, sizeof(char) * (allocM+2)); + ESL_ALLOC(om->consensus, sizeof(char) * (allocM+2)); + memset(om->rf, '\0', sizeof(char) * (allocM+2)); + memset(om->mm, '\0', sizeof(char) * (allocM+2)); + memset(om->cs, '\0', sizeof(char) * (allocM+2)); + memset(om->consensus,'\0', sizeof(char) * (allocM+2)); + + om->abc = abc; + om->L = 0; + om->M = 0; + om->max_length = -1; + om->allocM = allocM; + om->mode = p7_NO_MODE; + om->nj = 0.0f; + return om; + + ERROR: + p7_oprofile_Destroy(om); + return NULL; +} + +/* Function: p7_oprofile_IsLocal() + * Synopsis: Returns TRUE if profile is in local alignment mode. + * Incept: SRE, Sat Aug 16 08:46:00 2008 [Janelia] + */ +int +p7_oprofile_IsLocal(const P7_OPROFILE *om) +{ + if (om->mode == p7_LOCAL || om->mode == p7_UNILOCAL) return TRUE; + return FALSE; +} + + + +/* Function: p7_oprofile_Destroy() + * Synopsis: Frees an optimized profile structure. + * Incept: SRE, Sun Nov 25 12:22:21 2007 [Casa de Gatos] + */ +void +p7_oprofile_Destroy(P7_OPROFILE *om) +{ + if (om == NULL) return; + + if (om->clone == 0) + { + if (om->rbv_mem != NULL) free(om->rbv_mem); + if (om->rwv_mem != NULL) free(om->rwv_mem); + if (om->twv_mem != NULL) free(om->twv_mem); + if (om->rfv_mem != NULL) free(om->rfv_mem); + if (om->tfv_mem != NULL) free(om->tfv_mem); + if (om->rbv != NULL) free(om->rbv); + if (om->rwv != NULL) free(om->rwv); + if (om->rfv != NULL) free(om->rfv); + if (om->name != NULL) free(om->name); + if (om->acc != NULL) free(om->acc); + if (om->desc != NULL) free(om->desc); + if (om->rf != NULL) free(om->rf); + if (om->mm != NULL) free(om->mm); + if (om->cs != NULL) free(om->cs); + if (om->consensus != NULL) free(om->consensus); + } + + free(om); +} + +/* Function: p7_oprofile_Sizeof() + * Synopsis: Return the allocated size of a . + * Incept: SRE, Wed Mar 2 10:52:47 2011 [Janelia] + * + * Purpose: Returns the allocated size of a , + * in bytes. + */ +size_t +p7_oprofile_Sizeof(P7_OPROFILE *om) +{ + size_t n = 0; + int nqb = om->allocQ16; /* # of uchar vectors needed for query */ + int nqw = om->allocQ8; /* # of sword vectors needed for query */ + int nqf = om->allocQ4; /* # of float vectors needed for query */ + + n += sizeof(P7_OPROFILE); + n += sizeof(vector unsigned char) * nqb * om->abc->Kp +15; /* om->rbv_mem */ + n += sizeof(vector signed short) * nqw * om->abc->Kp +15; /* om->rwv_mem */ + n += sizeof(vector signed short) * nqw * p7O_NTRANS +15; /* om->twv_mem */ + n += sizeof(vector float) * nqf * om->abc->Kp +15; /* om->rfv_mem */ + n += sizeof(vector float) * nqf * p7O_NTRANS +15; /* om->tfv_mem */ + + n += sizeof(vector unsigned char *) * om->abc->Kp; /* om->rbv */ + n += sizeof(vector signed short *) * om->abc->Kp; /* om->rwv */ + n += sizeof(vector float *) * om->abc->Kp; /* om->rfv */ + + n += sizeof(char) * (om->allocM+2); /* om->rf */ + n += sizeof(char) * (om->allocM+2); /* om->mm */ + n += sizeof(char) * (om->allocM+2); /* om->cs */ + n += sizeof(char) * (om->allocM+2); /* om->consensus */ + + return n; +} + +/* Function: p7_oprofile_Copy() + * Synopsis: Allocate an optimized profile structure. + * Incept: SRE, Sun Nov 25 12:03:19 2007 [Casa de Gatos] + * + * Purpose: Allocate for profiles of up to nodes for digital alphabet . + * + * Throws: on allocation error. + */ +P7_OPROFILE * +p7_oprofile_Copy(P7_OPROFILE *om1) +{ + int x, y; + int status; + + int nqb = p7O_NQB(om1->allocM); /* # of uchar vectors needed for query */ + int nqw = p7O_NQW(om1->allocM); /* # of sword vectors needed for query */ + int nqf = p7O_NQF(om1->allocM); /* # of float vectors needed for query */ + + size_t size = sizeof(char) * (om1->allocM+2); + + P7_OPROFILE *om2 = NULL; + + const ESL_ALPHABET *abc = om1->abc; + + /* level 0 */ + ESL_ALLOC(om2, sizeof(P7_OPROFILE)); + om2->rbv_mem = NULL; + om2->rwv_mem = NULL; + om2->twv_mem = NULL; + om2->rfv_mem = NULL; + om2->tfv_mem = NULL; + om2->rbv = NULL; + om2->rwv = NULL; + om2->twv = NULL; + om2->rfv = NULL; + om2->tfv = NULL; + + /* level 1 */ + + /* +15 is for manual 16-byte alignment */ + ESL_ALLOC(om2->rbv_mem, sizeof(vector unsigned char) * nqb * abc->Kp +15); + ESL_ALLOC(om2->rwv_mem, sizeof(vector signed short) * nqw * abc->Kp +15); + ESL_ALLOC(om2->twv_mem, sizeof(vector signed short) * nqw * p7O_NTRANS +15); + ESL_ALLOC(om2->rfv_mem, sizeof(vector float) * nqf * abc->Kp +15); + ESL_ALLOC(om2->tfv_mem, sizeof(vector float) * nqf * p7O_NTRANS +15); + + ESL_ALLOC(om2->rbv, sizeof(vector unsigned char *) * abc->Kp); + ESL_ALLOC(om2->rwv, sizeof(vector signed short *) * abc->Kp); + ESL_ALLOC(om2->rfv, sizeof(vector float *) * abc->Kp); + + /* align vector memory on 16-byte boundaries */ + om2->rbv[0] = (vector unsigned char *) (((unsigned long int) om2->rbv_mem + 15) & (~0xf)); + om2->rwv[0] = (vector signed short *) (((unsigned long int) om2->rwv_mem + 15) & (~0xf)); + om2->twv = (vector signed short *) (((unsigned long int) om2->twv_mem + 15) & (~0xf)); + om2->rfv[0] = (vector float *) (((unsigned long int) om2->rfv_mem + 15) & (~0xf)); + om2->tfv = (vector float *) (((unsigned long int) om2->tfv_mem + 15) & (~0xf)); + + /* copy the vector data */ + memcpy(om2->rbv[0], om1->rbv[0], sizeof(vector unsigned char) * nqb * abc->Kp); + memcpy(om2->rwv[0], om1->rwv[0], sizeof(vector signed short) * nqw * abc->Kp); + memcpy(om2->rfv[0], om1->rfv[0], sizeof(vector float) * nqf * abc->Kp); + + /* set the rest of the row pointers for match emissions */ + for (x = 1; x < abc->Kp; x++) { + om2->rbv[x] = om2->rbv[0] + (x * nqb); + om2->rwv[x] = om2->rwv[0] + (x * nqw); + om2->rfv[x] = om2->rfv[0] + (x * nqf); + } + om2->allocQ16 = nqb; + om2->allocQ8 = nqw; + om2->allocQ4 = nqf; + + /* Remaining initializations */ + om2->tbm_b = om1->tbm_b; + om2->tec_b = om1->tec_b; + om2->tjb_b = om1->tjb_b; + om2->scale_b = om1->scale_b; + om2->base_b = om1->base_b; + om2->bias_b = om1->bias_b; + + om2->scale_w = om1->scale_w; + om2->base_w = om1->base_w; + om2->ddbound_w = om1->ddbound_w; + om2->ncj_roundoff = om1->ncj_roundoff; + + for (x = 0; x < p7_NOFFSETS; x++) om2->offs[x] = om1->offs[x]; + for (x = 0; x < p7_NEVPARAM; x++) om2->evparam[x] = om1->evparam[x]; + for (x = 0; x < p7_NCUTOFFS; x++) om2->cutoff[x] = om1->cutoff[x]; + for (x = 0; x < p7_MAXABET; x++) om2->compo[x] = om1->compo[x]; + + for (x = 0; x < nqw * p7O_NTRANS; ++x) om2->twv[x] = om1->twv[x]; + for (x = 0; x < nqf * p7O_NTRANS; ++x) om2->tfv[x] = om1->tfv[x]; + + for (x = 0; x < p7O_NXSTATES; x++) + for (y = 0; y < p7O_NXTRANS; y++) + { + om2->xw[x][y] = om1->xw[x][y]; + om2->xf[x][y] = om1->xf[x][y]; + } + + if ((status = esl_strdup(om1->name, -1, &om2->name)) != eslOK) goto ERROR; + if ((status = esl_strdup(om1->acc, -1, &om2->acc)) != eslOK) goto ERROR; + if ((status = esl_strdup(om1->desc, -1, &om2->desc)) != eslOK) goto ERROR; + + /* in a P7_OPROFILE, we always allocate for the optional RF, CS annotation. + * we only rely on the leading \0 to signal that it's unused, but + * we initialize all this memory to zeros to shut valgrind up about + * fwrite'ing uninitialized memory in the io functions. + */ + ESL_ALLOC(om2->rf, size); + ESL_ALLOC(om2->mm, size); + ESL_ALLOC(om2->cs, size); + ESL_ALLOC(om2->consensus, size); + + memcpy(om2->rf, om1->rf, size); + memcpy(om2->mm, om1->mm, size); + memcpy(om2->cs, om1->cs, size); + memcpy(om2->consensus, om1->consensus, size); + + om2->abc = om1->abc; + om2->L = om1->L; + om2->M = om1->M; + om2->allocM = om1->allocM; + om2->mode = om1->mode; + om2->nj = om1->nj; + om2->max_length = om1->max_length; + + om2->clone = om1->clone; + + return om2; + + ERROR: + p7_oprofile_Destroy(om2); + return NULL; +} + +/* Function: p7_oprofile_Clone() + * Synopsis: Allocate a cloned copy of the optimized profile structure. All + * allocated memory from the original profile is not reallocated. + * The cloned copy will point to the same memory as the original. + * Incept: SRE, Sun Nov 25 12:03:19 2007 [Casa de Gatos] + * + * Purpose: Quick copy of an optimized profile used in mutiple threads. + * + * Throws: on allocation error. + */ +P7_OPROFILE * +p7_oprofile_Clone(const P7_OPROFILE *om1) +{ + int status; + + P7_OPROFILE *om2 = NULL; + + ESL_ALLOC(om2, sizeof(P7_OPROFILE)); + memcpy(om2, om1, sizeof(P7_OPROFILE)); + + om2->clone = 1; + + return om2; + + ERROR: + p7_oprofile_Destroy(om2); + return NULL; +} + + +/* Function: p7_oprofile_UpdateFwdEmissionScores() + * Synopsis: Update the Forward/Backward part of the optimized profile + * match emissions to account for new background distribution. + * + * Purpose: This implementation re-orders the loops used to access/modify + * the rfv array relative to how it's accessed for example in + * fb_conversion(), to minimize the required size of sc_arr. + * + * Args: om - optimized profile to be updated. + * bg - the new bg distribution + * fwd_emissions - precomputed Fwd (float) residue emission + * probabilities in serial order (gathered from + * the optimized striped with + * p7_oprofile_GetFwdEmissionArray() ). + * sc_arr Preallocated array of at least Kp*4 floats + */ +int +p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr) +{ + int M = om->M; /* length of the query */ + int k, q, x, z; + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int K = om->abc->K; + int Kp = om->abc->Kp; + union { vector float v; float x[4]; } tmp; + + for (k = 1, q = 0; q < nq; q++, k++) { + + //First compute the core characters of the alphabet + for (x = 0; x < K; x++) { + for (z = 0; z < 4; z++) { + if (k+ z*nq <= M) sc_arr[z*Kp + x] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log(fwd_emissions[Kp * (k+z*nq) + x]/bg->f[x]); + else sc_arr[z*Kp + x] = -eslINFINITY; + + tmp.x[z] = sc_arr[z*Kp + x]; + } + om->rfv[x][q] = esl_vmx_expf(tmp.v); + } + + // Then compute corresponding scores for ambiguity codes. + for (z = 0; z < 4; z++) + esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f); + + //finish off the interleaved values + for (x = K; x < Kp; x++) { + for (z = 0; z < 4; z++) + tmp.x[z] = sc_arr[z*Kp + x]; // computed in FExpectScVec call above + om->rfv[x][q] = esl_vmx_expf(tmp.v); + } + } + + return eslOK; + +} + +/* Function: p7_oprofile_UpdateVitEmissionScores() + * Synopsis: Update the Viterbi part of the optimized profile match + * emissions to account for new background distribution. + *. + * Purpose: This implementation re-orders the loops used to access/modify + * the rmv array relative to how it's accessed for example in + * vf_conversion(), to minimize the required size of sc_arr. + * + * Args: om - optimized profile to be updated. + * bg - the new bg distribution + * fwd_emissions - precomputed Fwd (float) residue emission + * probabilities in serial order (gathered from + * the optimized striped with + * p7_oprofile_GetFwdEmissionArray() ). + * sc_arr Preallocated array of at least Kp*8 floats + */ +int +p7_oprofile_UpdateVitEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr) +{ + int M = om->M; /* length of the query */ + int k, q, x, z; + int nq = p7O_NQW(M); /* segment length; total # of striped vectors needed */ + int K = om->abc->K; + int Kp = om->abc->Kp; + int idx; + union { vector signed short v; int16_t i[8]; } tmp; /* used to align and load simd minivectors */ + + for (k = 1, q = 0; q < nq; q++, k++) { + + //First compute the core characters of the alphabet + for (x = 0; x < K; x++) { + for (z = 0; z < 8; z++) { + idx = z*Kp + x; + if (k+ z*nq <= M) { + sc_arr[idx] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]); + tmp.i[z] = wordify(om, sc_arr[idx]); + } + else + { + sc_arr[idx] = -eslINFINITY; + tmp.i[z] = -32768; + } + + } + om->rwv[x][q] = tmp.v; + + } + + // Then compute corresponding scores for ambiguity codes. + for (z = 0; z < 8; z++) + esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f); + + //finish off the interleaved values + for (x = K; x < Kp; x++) { + for (z = 0; z < 8; z++) { + idx = z*Kp + x; + if (x==K || x>Kp-3 || sc_arr[idx] == -eslINFINITY) + tmp.i[z] = -32768; + else + tmp.i[z] = wordify(om, sc_arr[idx]); + } + om->rwv[x][q] = tmp.v; + } + } + + return eslOK; +} + + + +/* Function: p7_oprofile_UpdateMSVEmissionScores() + * Synopsis: Update the MSV part of the optimized profile match + * emissions to account for new background distribution. + *. + * Purpose: This implementation re-orders the loops used to access/modify + * the rbv array relative to how it's accessed for example in + * mf_conversion(), to minimize the required size of sc_arr. + * + * Args: om - optimized profile to be updated. + * bg - the new bg distribution + * fwd_emissions - precomputed Fwd (float) residue emission + * probabilities in serial order (gathered from + * the optimized striped with + * p7_oprofile_GetFwdEmissionArray() ). + * sc_arr Preallocated array of at least Kp*16 floats + */ +int +p7_oprofile_UpdateMSVEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr) +{ + int M = om->M; /* length of the query */ + int k, q, x, z; + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + int K = om->abc->K; + int Kp = om->abc->Kp; + int idx; + float max = 0.0; /* maximum residue score: used for unsigned emission score bias */ + union { vector unsigned char v; uint8_t i[16]; } tmp; /* used to align and load simd minivectors */ + + /* First we determine the basis for the limited-precision MSVFilter scoring system. + * Default: 1/3 bit units, base offset 190: range 0..255 => -190..65 => -63.3..21.7 bits + * See J2/66, J4/138 for analysis. + * This depends on having computed scores. I do this in a first pass, to get the max + * score ... then re-compute those scores so they can be converted to 8bit scores + */ + for (k = 1, q = 0; q < nq; q++, k++) { + for (x = 0; x < K; x++) { + for (z = 0; z < 16; z++) { + idx = z*Kp + x; + if (k+ z*nq <= M && !(om->mm && om->mm[(k+z*nq)]=='m')) + max = ESL_MAX(max, log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x])); + } + } + } + om->scale_b = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */ + om->base_b = 190; + om->bias_b = unbiased_byteify(om, -1.0 * max); + + for (k = 1, q = 0; q < nq; q++, k++) { + + //First compute the core characters of the alphabet + for (x = 0; x < K; x++) { + for (z = 0; z < 16; z++) { + idx = z*Kp + x; + if (k+ z*nq <= M) { + sc_arr[idx] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]); + tmp.i[z] = biased_byteify(om, sc_arr[idx]); + } + else + { + sc_arr[idx] = -eslINFINITY; + tmp.i[z] = 255; + } + + } + om->rbv[x][q] = tmp.v; + + } + + // Then compute corresponding scores for ambiguity codes. + for (z = 0; z < 16; z++) + esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f); + + //finish off the interleaved values + for (x = K; x < Kp; x++) { + for (z = 0; z < 16; z++) { + idx = z*Kp + x; + if (x==K || x>Kp-3 || sc_arr[idx] == -eslINFINITY) + tmp.i[z] = 255; + else + tmp.i[z] = biased_byteify(om, sc_arr[idx]); + } + om->rbv[x][q] = tmp.v; + } + } + + return eslOK; +} + + +/*----------------- end, P7_OPROFILE structure ------------------*/ + + + +/***************************************************************** + * 2. Conversion from generic P7_PROFILE to optimized P7_OPROFILE + *****************************************************************/ + +/* biased_byteify() + * Converts original log-odds residue score to a rounded biased uchar cost. + * Match emission scores for MSVFilter get this treatment. + * e.g. a score of +3.2, with scale 3.0 and bias 12, becomes 2. + * 3.2*3 = 9.6; rounded = 10; bias-10 = 2. + * When used, we add the bias, then subtract this cost. + * (A cost of +255 is our -infinity "prohibited event") + */ + +/* The (uint8_t) (int) cast is to fix an issue with the ibm's + * xlc compiler. The C standard says the results are undefined + * when casting from a float to an integral type and the value + * is not is range. So, if the float has a value of -6.0 and + * is cast to an unsigned char, whose range is 0..255, the + * result is undefined. The xlc compiler sets the result to 0. + * With gcc and msvc compilers the result is 250. + * + * This double cast gives the same result on the different compilers. + */ + +static uint8_t +biased_byteify(P7_OPROFILE *om, float sc) +{ + uint8_t b; + + sc = -1.0f * roundf(om->scale_b * sc); /* ugh. sc is now an integer cost represented in a float... */ + b = (sc > 255 - om->bias_b) ? 255 : (uint8_t) (int) sc + om->bias_b; /* and now we cast, saturate, and bias it to an unsigned char cost... */ + return b; +} + +/* unbiased_byteify() + * Convert original transition score to a rounded uchar cost + * Transition scores for MSVFilter get this treatment. + * e.g. a score of -2.1, with scale 3.0, becomes a cost of 6. + * (A cost of +255 is our -infinity "prohibited event") + * + * See comment above explaining the double cast. + */ +static uint8_t +unbiased_byteify(P7_OPROFILE *om, float sc) +{ + uint8_t b; + + sc = -1.0f * roundf(om->scale_b * sc); /* ugh. sc is now an integer cost represented in a float... */ + b = (sc > 255.) ? 255 : (uint8_t) (int) sc; /* and now we cast and saturate it to an unsigned char cost... */ + return b; +} + +/* wordify() + * Converts log probability score to a rounded signed 16-bit integer cost. + * Both emissions and transitions for ViterbiFilter get this treatment. + * No bias term needed, because we use signed words. + * e.g. a score of +3.2, with scale 500.0, becomes +1600. + */ +static int16_t +wordify(P7_OPROFILE *om, float sc) +{ + sc = roundf(om->scale_w * sc); + if (sc >= 32767.0) return 32767; + else if (sc <= -32768.0) return -32768; + else return (int16_t) sc; +} + +/* mf_conversion(): + * + * This builds the MSVFilter() parts of the profile , scores + * in lspace uchars (16-way parallel), by rescaling, rounding, and + * casting the scores in . + * + * Returns on success; + * throws if hasn't been allocated properly. + */ +static int +mf_conversion(const P7_PROFILE *gm, P7_OPROFILE *om) +{ + int M = gm->M; /* length of the query */ + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + float max = 0.0; /* maximum residue score: used for unsigned emission score bias */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int z; /* counter within elements of one SIMD minivector */ + + /* used to align and load simd minivectors */ + union { vector unsigned char v; uint8_t i[16]; } tmp; + + if (nq > om->allocQ16) ESL_EXCEPTION(eslEINVAL, "optimized profile is too small to hold conversion"); + + /* First we determine the basis for the limited-precision MSVFilter scoring system. + * Default: 1/3 bit units, base offset 190: range 0..255 => -190..65 => -63.3..21.7 bits + * See J2/66, J4/138 for analysis. + */ + for (x = 0; x < gm->abc->K; x++) max = ESL_MAX(max, esl_vec_FMax(gm->rsc[x], (M+1)*2)); + om->scale_b = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */ + om->base_b = 190; + om->bias_b = unbiased_byteify(om, -1.0 * max); + + /* striped match costs: start at k=1. */ + for (x = 0; x < gm->abc->Kp; x++) + for (q = 0, k = 1; q < nq; q++, k++) + { + for (z = 0; z < 16; z++) tmp.i[z] = ((k+ z*nq <= M) ? biased_byteify(om, p7P_MSC(gm, k+z*nq, x)) : 255); + om->rbv[x][q] = tmp.v; + } + + /* transition costs */ + om->tbm_b = unbiased_byteify(om, logf(2.0f / ((float) gm->M * (float) (gm->M+1)))); /* constant B->Mk penalty */ + om->tec_b = unbiased_byteify(om, logf(0.5f)); /* constant multihit E->C = E->J */ + om->tjb_b = unbiased_byteify(om, logf(3.0f / (float) (gm->L+3))); /* this adopts the L setting of the parent profile */ + + return eslOK; +} + + +/* vf_conversion(): + * + * This builds the ViterbiFilter() parts of the profile , scores + * in lspace swords (8-way parallel), by rescaling, rounding, and + * casting the scores in . + * + * Returns on success; + * throws if hasn't been allocated properly. + */ +static int +vf_conversion(const P7_PROFILE *gm, P7_OPROFILE *om) +{ + int M = gm->M; /* length of the query */ + int nq = p7O_NQW(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int kb; /* possibly offset base k for loading om's TSC vectors */ + int z; /* counter within elements of one SIMD minivector */ + int t; /* counter over transitions 0..7 = p7O_{BM,MM,IM,DM,MD,MI,II,DD}*/ + int tg; /* transition index in gm */ + int j; /* counter in interleaved vector arrays in the profile */ + int ddtmp; /* used in finding worst DD transition bound */ + int16_t maxval; /* used to prevent zero cost II */ + int16_t val; + + /* used to align and load simd minivectors */ + union { vector signed short v; int16_t i[8]; } tmp; + + if (nq > om->allocQ8) ESL_EXCEPTION(eslEINVAL, "optimized profile is too small to hold conversion"); + + /* First set the basis for the limited-precision scoring system. + * Default: 1/500 bit units, base offset 12000: range -32768..32767 => -44768..20767 => -89.54..41.53 bits + * See J4/138 for analysis. + */ + om->scale_w = 500.0 / eslCONST_LOG2; + om->base_w = 12000; + + /* striped match scores */ + for (x = 0; x < gm->abc->Kp; x++) + for (k = 1, q = 0; q < nq; q++, k++) + { + for (z = 0; z < 8; z++) tmp.i[z] = ((k+ z*nq <= M) ? wordify(om, p7P_MSC(gm, k+z*nq, x)) : -32768); + om->rwv[x][q] = tmp.v; + } + + /* Transition costs, all but the DD's. */ + for (j = 0, k = 1, q = 0; q < nq; q++, k++) + { + for (t = p7O_BM; t <= p7O_II; t++) /* this loop of 7 transitions depends on the order in p7o_tsc_e */ + { + switch (t) { + case p7O_BM: tg = p7P_BM; kb = k-1; maxval = 0; break; /* gm has tBMk stored off by one! start from k=0 not 1 */ + case p7O_MM: tg = p7P_MM; kb = k-1; maxval = 0; break; /* MM, DM, IM vectors are rotated by -1, start from k=0 */ + case p7O_IM: tg = p7P_IM; kb = k-1; maxval = 0; break; + case p7O_DM: tg = p7P_DM; kb = k-1; maxval = 0; break; + case p7O_MD: tg = p7P_MD; kb = k; maxval = 0; break; /* the remaining ones are straight up */ + case p7O_MI: tg = p7P_MI; kb = k; maxval = 0; break; + case p7O_II: tg = p7P_II; kb = k; maxval = -1; break; + } + + for (z = 0; z < 8; z++) { + val = ((kb+ z*nq < M) ? wordify(om, p7P_TSC(gm, kb+ z*nq, tg)) : -32768); + tmp.i[z] = (val <= maxval) ? val : maxval; /* do not allow an II transition cost of 0, or hell may occur. */ + } + om->twv[j++] = tmp.v; + } + } + + /* Finally the DD's, which are at the end of the optimized tsc vector; (j is already sitting there) */ + for (k = 1, q = 0; q < nq; q++, k++) + { + for (z = 0; z < 8; z++) tmp.i[z] = ((k+ z*nq < M) ? wordify(om, p7P_TSC(gm, k+ z*nq, p7P_DD)) : -32768); + om->twv[j++] = tmp.v; + } + + /* Specials. (Actually in same order in om and gm, but we copy in general form anyway.) */ + /* VF CC,NN,JJ transitions hardcoded zero; -3.0 nat approximation used instead; this papers + * over a length independence problem, where the approximation weirdly outperforms the + * exact solution, probably indicating that the model's Pascal distribution is problematic, + * and the "approximation" is in fact closer to the One True Model, the mythic H4 supermodel. + * [xref J5/36] + */ + om->xw[p7O_E][p7O_LOOP] = wordify(om, gm->xsc[p7P_E][p7P_LOOP]); + om->xw[p7O_E][p7O_MOVE] = wordify(om, gm->xsc[p7P_E][p7P_MOVE]); + om->xw[p7O_N][p7O_MOVE] = wordify(om, gm->xsc[p7P_N][p7P_MOVE]); + om->xw[p7O_N][p7O_LOOP] = 0; /* was wordify(om, gm->xsc[p7P_N][p7P_LOOP]); */ + om->xw[p7O_C][p7O_MOVE] = wordify(om, gm->xsc[p7P_C][p7P_MOVE]); + om->xw[p7O_C][p7O_LOOP] = 0; /* was wordify(om, gm->xsc[p7P_C][p7P_LOOP]); */ + om->xw[p7O_J][p7O_MOVE] = wordify(om, gm->xsc[p7P_J][p7P_MOVE]); + om->xw[p7O_J][p7O_LOOP] = 0; /* was wordify(om, gm->xsc[p7P_J][p7P_LOOP]); */ + + om->ncj_roundoff = 0.0; /* goes along with NN=CC=JJ=0, -3.0 nat approximation */ + /* otherwise, would be = om->scale_w * gm->xsc[p7P_N][p7P_LOOP] - om->xw[p7O_N][p7O_LOOP]; */ + /* see J4/150 for discussion of VF error suppression, superceded by the -3.0 nat approximation */ + + /* Transition score bound for "lazy F" DD path evaluation (xref J2/52) */ + om->ddbound_w = -32768; + for (k = 2; k < M-1; k++) + { + ddtmp = (int) wordify(om, p7P_TSC(gm, k, p7P_DD)); + ddtmp += (int) wordify(om, p7P_TSC(gm, k+1, p7P_DM)); + ddtmp -= (int) wordify(om, p7P_TSC(gm, k+1, p7P_BM)); + om->ddbound_w = ESL_MAX(om->ddbound_w, ddtmp); + } + + return eslOK; +} + + +/* fb_conversion() + * This builds the Forward/Backward part of the optimized profile , + * where we use odds ratios (not log-odds scores). + */ +static int +fb_conversion(const P7_PROFILE *gm, P7_OPROFILE *om) +{ + int M = gm->M; /* length of the query */ + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int kb; /* possibly offset base k for loading om's TSC vectors */ + int z; /* counter within elements of one SIMD minivector */ + int t; /* counter over transitions 0..7 = p7O_{BM,MM,IM,DM,MD,MI,II,DD}*/ + int tg; /* transition index in gm */ + int j; /* counter in interleaved vector arrays in the profile */ + + /* used to align and load simd minivectors */ + union { vector float v; float x[4]; } tmp; + + if (nq > om->allocQ4) ESL_EXCEPTION(eslEINVAL, "optimized profile is too small to hold conversion"); + + /* striped match scores: start at k=1 */ + for (x = 0; x < gm->abc->Kp; x++) + for (k = 1, q = 0; q < nq; q++, k++) + { + for (z = 0; z < 4; z++) tmp.x[z] = (k+ z*nq <= M) ? p7P_MSC(gm, k+z*nq, x) : -eslINFINITY; + om->rfv[x][q] = esl_vmx_expf(tmp.v); + } + + /* Transition scores, all but the DD's. */ + for (j = 0, k = 1, q = 0; q < nq; q++, k++) + { + for (t = p7O_BM; t <= p7O_II; t++) /* this loop of 7 transitions depends on the order in the definition of p7o_tsc_e */ + { + switch (t) { + case p7O_BM: tg = p7P_BM; kb = k-1; break; /* gm has tBMk stored off by one! start from k=0 not 1 */ + case p7O_MM: tg = p7P_MM; kb = k-1; break; /* MM, DM, IM quads are rotated by -1, start from k=0 */ + case p7O_IM: tg = p7P_IM; kb = k-1; break; + case p7O_DM: tg = p7P_DM; kb = k-1; break; + case p7O_MD: tg = p7P_MD; kb = k; break; /* the remaining ones are straight up */ + case p7O_MI: tg = p7P_MI; kb = k; break; + case p7O_II: tg = p7P_II; kb = k; break; + } + + for (z = 0; z < 4; z++) tmp.x[z] = (kb+z*nq < M) ? p7P_TSC(gm, kb+z*nq, tg) : -eslINFINITY; + om->tfv[j++] = esl_vmx_expf(tmp.v); + } + } + + /* And finally the DD's, which are at the end of the optimized tsc vector; (j is already there) */ + for (k = 1, q = 0; q < nq; q++, k++) + { + for (z = 0; z < 4; z++) tmp.x[z] = (k+z*nq < M) ? p7P_TSC(gm, k+z*nq, p7P_DD) : -eslINFINITY; + om->tfv[j++] = esl_vmx_expf(tmp.v); + } + + /* Specials. (These are actually in exactly the same order in om and + * gm, but we copy in general form anyway.) + */ + om->xf[p7O_E][p7O_LOOP] = expf(gm->xsc[p7P_E][p7P_LOOP]); + om->xf[p7O_E][p7O_MOVE] = expf(gm->xsc[p7P_E][p7P_MOVE]); + om->xf[p7O_N][p7O_LOOP] = expf(gm->xsc[p7P_N][p7P_LOOP]); + om->xf[p7O_N][p7O_MOVE] = expf(gm->xsc[p7P_N][p7P_MOVE]); + om->xf[p7O_C][p7O_LOOP] = expf(gm->xsc[p7P_C][p7P_LOOP]); + om->xf[p7O_C][p7O_MOVE] = expf(gm->xsc[p7P_C][p7P_MOVE]); + om->xf[p7O_J][p7O_LOOP] = expf(gm->xsc[p7P_J][p7P_LOOP]); + om->xf[p7O_J][p7O_MOVE] = expf(gm->xsc[p7P_J][p7P_MOVE]); + + return eslOK; +} + + +/* Function: p7_oprofile_Convert() + * Synopsis: Converts standard profile to an optimized one. + * Incept: SRE, Mon Nov 26 07:38:57 2007 [Janelia] + * + * Purpose: Convert a standard profile to an optimized profile , + * where has already been allocated for a profile of at + * least M> nodes and the same emission alphabet abc>. + * + * Args: gm - profile to optimize + * om - allocated optimized profile for holding the result. + * + * Returns: on success. + * + * Throws: if , aren't compatible. + * on allocation failure. + */ +int +p7_oprofile_Convert(const P7_PROFILE *gm, P7_OPROFILE *om) +{ + int status, z; + + if (gm->abc->type != om->abc->type) ESL_EXCEPTION(eslEINVAL, "alphabets of the two profiles don't match"); + if (gm->M > om->allocM) ESL_EXCEPTION(eslEINVAL, "oprofile is too small"); + + if ((status = mf_conversion(gm, om)) != eslOK) return status; /* MSVFilter()'s information */ + if ((status = vf_conversion(gm, om)) != eslOK) return status; /* ViterbiFilter()'s information */ + if ((status = fb_conversion(gm, om)) != eslOK) return status; /* ForwardFilter()'s information */ + + if (om->name != NULL) free(om->name); + if (om->acc != NULL) free(om->acc); + if (om->desc != NULL) free(om->desc); + if ((status = esl_strdup(gm->name, -1, &(om->name))) != eslOK) goto ERROR; + if ((status = esl_strdup(gm->acc, -1, &(om->acc))) != eslOK) goto ERROR; + if ((status = esl_strdup(gm->desc, -1, &(om->desc))) != eslOK) goto ERROR; + strcpy(om->rf, gm->rf); + strcpy(om->mm, gm->mm); + strcpy(om->cs, gm->cs); + strcpy(om->consensus, gm->consensus); + for (z = 0; z < p7_NEVPARAM; z++) om->evparam[z] = gm->evparam[z]; + for (z = 0; z < p7_NCUTOFFS; z++) om->cutoff[z] = gm->cutoff[z]; + for (z = 0; z < p7_MAXABET; z++) om->compo[z] = gm->compo[z]; + + om->mode = gm->mode; + om->L = gm->L; + om->M = gm->M; + om->max_length = gm->max_length; + om->nj = gm->nj; + + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_oprofile_ReconfigLength() + * Synopsis: Set the target sequence length of a model. + * Incept: SRE, Thu Dec 20 09:56:40 2007 [Janelia] + * + * Purpose: Given an already configured model , quickly reset its + * expected length distribution for a new mean target sequence + * length of . + * + * This doesn't affect the length distribution of the null + * model. That must also be reset, using . + * + * We want this routine to run as fast as possible, because + * this call is in the critical path: it must be called at + * each new target sequence in a database search. + * + * Returns: on success. Costs/scores for N,C,J transitions are set + * here. + */ +int +p7_oprofile_ReconfigLength(P7_OPROFILE *om, int L) +{ + int status; + if ((status = p7_oprofile_ReconfigMSVLength (om, L)) != eslOK) return status; + if ((status = p7_oprofile_ReconfigRestLength(om, L)) != eslOK) return status; + return eslOK; +} + +/* Function: p7_oprofile_ReconfigMSVLength() + * Synopsis: Set the target sequence length of the MSVFilter part of the model. + * Incept: SRE, Tue Dec 16 13:39:17 2008 [Janelia] + * + * Purpose: Given an already configured model , quickly reset its + * expected length distribution for a new mean target sequence + * length of , only for the part of the model that's used + * for the accelerated MSV filter. + * + * The acceleration pipeline uses this to defer reconfiguring the + * length distribution of the main model, mostly because hmmscan + * reads the model in two pieces, MSV part first, then the rest. + * + * Returns: on success. + */ +int +p7_oprofile_ReconfigMSVLength(P7_OPROFILE *om, int L) +{ + om->tjb_b = unbiased_byteify(om, logf(3.0f / (float) (L+3))); + return eslOK; +} + +/* Function: p7_oprofile_ReconfigRestLength() + * Synopsis: Set the target sequence length of the main profile. + * Incept: SRE, Tue Dec 16 13:41:30 2008 [Janelia] + * + * Purpose: Given an already configured model , quickly reset its + * expected length distribution for a new mean target sequence + * length of , for everything except the MSV filter part + * of the model. + * + * Calling then + * is equivalent to + * just calling . The two + * part version is used in the acceleration pipeline. + * + * Returns: on success. + */ +int +p7_oprofile_ReconfigRestLength(P7_OPROFILE *om, int L) +{ + float pmove, ploop; + + pmove = (2.0f + om->nj) / ((float) L + 2.0f + om->nj); /* 2/(L+2) for sw; 3/(L+3) for fs */ + ploop = 1.0f - pmove; + + /* ForwardFilter() parameters: pspace floats */ + om->xf[p7O_N][p7O_LOOP] = om->xf[p7O_C][p7O_LOOP] = om->xf[p7O_J][p7O_LOOP] = ploop; + om->xf[p7O_N][p7O_MOVE] = om->xf[p7O_C][p7O_MOVE] = om->xf[p7O_J][p7O_MOVE] = pmove; + + /* ViterbiFilter() parameters: lspace signed 16-bit ints */ + om->xw[p7O_N][p7O_MOVE] = om->xw[p7O_C][p7O_MOVE] = om->xw[p7O_J][p7O_MOVE] = wordify(om, logf(pmove)); + /* om->xw[p7O_N][p7O_LOOP] = om->xw[p7O_C][p7O_LOOP] = om->xw[p7O_J][p7O_LOOP] = wordify(om, logf(ploop)); */ /* 3nat approx in force: these stay 0 */ + /* om->ncj_roundoff = (om->scale_w * logf(ploop)) - om->xw[p7O_N][p7O_LOOP]; */ /* and this does too */ + + om->L = L; + return eslOK; +} + + +/* Function: p7_oprofile_ReconfigMultihit() + * Synopsis: Quickly reconfig model into multihit mode for target length . + * Incept: SRE, Thu Aug 21 10:04:07 2008 [Janelia] + * + * Purpose: Given a profile that's already been configured once, + * quickly reconfigure it into a multihit mode for target + * length . + * + * This gets called in domain definition, when we need to + * flip the model in and out of unihit mode to + * process individual domains. + * + * Note: You can't just flip uni/multi mode alone, because that + * parameterization also affects target length + * modeling. You need to make sure uni vs. multi choice is + * made before the length model is set, and you need to + * make sure the length model is recalculated if you change + * the uni/multi mode. Hence, these functions call + * . + */ +int +p7_oprofile_ReconfigMultihit(P7_OPROFILE *om, int L) +{ + om->xf[p7O_E][p7O_MOVE] = 0.5; + om->xf[p7O_E][p7O_LOOP] = 0.5; + om->nj = 1.0f; + + om->xw[p7O_E][p7O_MOVE] = wordify(om, -eslCONST_LOG2); + om->xw[p7O_E][p7O_LOOP] = wordify(om, -eslCONST_LOG2); + + return p7_oprofile_ReconfigLength(om, L); +} + +/* Function: p7_oprofile_ReconfigUnihit() + * Synopsis: Quickly reconfig model into unihit mode for target length . + * Incept: SRE, Thu Aug 21 10:10:32 2008 [Janelia] + * + * Purpose: Given a profile that's already been configured once, + * quickly reconfigure it into a unihit mode for target + * length . + * + * This gets called in domain definition, when we need to + * flip the model in and out of unihit mode to + * process individual domains. + */ +int +p7_oprofile_ReconfigUnihit(P7_OPROFILE *om, int L) +{ + om->xf[p7O_E][p7O_MOVE] = 1.0f; + om->xf[p7O_E][p7O_LOOP] = 0.0f; + om->nj = 0.0f; + + om->xw[p7O_E][p7O_MOVE] = 0; + om->xw[p7O_E][p7O_LOOP] = -32768; + + return p7_oprofile_ReconfigLength(om, L); +} +/*------------ end, conversions to P7_OPROFILE ------------------*/ + + + +/******************************************************************* +* 3. Conversion from optimized P7_OPROFILE to compact score arrays + *******************************************************************/ + +/* Function: p7_oprofile_GetFwdTransitionArray() + * Synopsis: Retrieve full 32-bit float transition probabilities from an + * optimized profile into a flat array + * + * Purpose: Extract an array of (e.g. p7O_II) transition probabilities + * from the underlying profile. In SIMD implementations, + * these are striped and interleaved, making them difficult to + * directly access. + * + * Args: - optimized profile, containing transition information + * - transition type (e.g. p7O_II) + * - preallocated array into which floats will be placed + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr ) +{ + int nq = p7O_NQF(om->M); /* # of striped vectors needed */ + int i, j; + union { vector float v; float x[4]; } tmp; + + for (i=0; itfv[ (type==p7O_DD ? nq*7+i : type+7*i) ]; + for (j=0; j<4; j++) + if ( i+1+ j*nq < om->M+1) + arr[i+1+ j*nq] = tmp.x[j]; + } + + return eslOK; + +} + + +/* Function: p7_oprofile_GetMSVEmissionArray() + * Synopsis: Retrieve MSV residue emission scores from an optimized + * profile into an array + * + * Purpose: Extract an implicitly 2D array of 8-bit int MSV residue + * emission scores from an optimized profile . must + * be allocated by the calling function to be of size + * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array + * is done as [om->abc->Kp * i + c ] for character c at + * position i. + * + * In SIMD implementations, the residue scores are striped + * and interleaved, making them somewhat difficult to + * directly access. Faster access is desired, for example, + * in SSV back-tracking of a high-scoring diagonal + * + * Args: - optimized profile, containing transition information + * - preallocated array into which scores will be placed + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr ) +{ + int x, q, z, k; + union { vector unsigned char v; uint8_t i[16]; } tmp; /* used to align and read simd minivectors */ + int M = om->M; /* length of the query */ + int K = om->abc->Kp; + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + int cell_cnt = (om->M + 1) * K; + + + for (x = 0; x < K ; x++) { + for (q = 0, k = 1; q < nq; q++, k++) { + tmp.v = om->rbv[x][q]; + for (z=0; z<16; z++) + if ( (K * (k+z*nq) + x) < cell_cnt) + arr[ K * (k+z*nq) + x ] = tmp.i[z]; + } + } + + return eslOK; +} + + +/* Function: p7_oprofile_GetFwdEmissionScoreArray() + * Synopsis: Retrieve Fwd (float) residue emission scores from an optimized + * profile into an array + * + * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue + * emission scores from an optimized profile . must + * be allocated by the calling function to be of size + * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array + * is done as [om->abc->Kp * i + c ] for character c at + * position i. + * + * In SIMD implementations, the residue scores are striped + * and interleaved, making them somewhat difficult to + * directly access. + * + * Args: - optimized profile, containing transition information + * - preallocated array into which scores will be placed + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr ) +{ + int x, q, z, k; + union { vector float v; float f[4]; } tmp; /* used to align and read simd minivectors */ + int M = om->M; /* length of the query */ + int K = om->abc->Kp; + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int cell_cnt = (om->M + 1) * K; + + for (x = 0; x < K; x++) { + for (q = 0, k = 1; q < nq; q++, k++) { + tmp.v = esl_vmx_logf(om->rfv[x][q]); + for (z = 0; z < 4; z++) + if ( (K * (k+z*nq) + x) < cell_cnt) + arr[ K * (k+z*nq) + x ] = tmp.f[z]; + } + } + + return eslOK; +} + +/* Function: p7_oprofile_GetFwdEmissionArray() + * Synopsis: Retrieve Fwd (float) residue emission values from an optimized + * profile into an array + * + * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue + * emission values from an optimized profile , converting + * back to emission values based on the background. must + * be allocated by the calling function to be of size + * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array + * is done as [om->abc->Kp * i + c ] for character c at + * position i. + * + * In SIMD implementations, the residue scores are striped + * and interleaved, making them somewhat difficult to + * directly access. + * + * Args: - optimized profile, containing transition information + * - background frequencies + * - preallocated array into which scores will be placed + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr ) +{ + int x, q, z, k; + union { vector float v; float f[4]; } tmp; /* used to align and read simd minivectors */ + int M = om->M; /* length of the query */ + int Kp = om->abc->Kp; + int K = om->abc->K; + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int cell_cnt = (om->M + 1) * Kp; + + for (x = 0; x < K; x++) { + for (q = 0, k = 1; q < nq; q++, k++) { + tmp.v = om->rfv[x][q]; + for (z = 0; z < 4; z++) + if ( (Kp * (k+z*nq) + x) < cell_cnt) + arr[ Kp * (k+z*nq) + x ] = tmp.f[z] * bg->f[x]; + } + } + + //degeneracy emissions for each position + for (x = 0; x <= M; x++) + esl_abc_FExpectScVec(om->abc, arr+Kp*x, bg->f); + + return eslOK; +} +/*------------ end, conversions from P7_OPROFILE ------------------*/ + +/***************************************************************** + * 4. Debugging and development utilities. + *****************************************************************/ + + +/* oprofile_dump_mf() + * + * Dump the MSVFilter part of a profile to . + */ +static int +oprofile_dump_mf(FILE *fp, const P7_OPROFILE *om) +{ + int M = om->M; /* length of the query */ + int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* counter over nodes 1..M */ + int z; /* counter within elements of one SIMD minivector */ + + /* used to align and read simd minivectors */ + union { vector unsigned char v; uint8_t i[16]; } tmp; + + /* Header (rearranged column numbers, in the vectors) */ + fprintf(fp, " "); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 16; z++) + if (k+z*nq <= M) fprintf(fp, "%4d ", k+z*nq); + else fprintf(fp, "%4s ", "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + + /* Table of residue emissions */ + for (x = 0; x < om->abc->Kp; x++) + { + fprintf(fp, "(%c): ", om->abc->sym[x]); + + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + tmp.v = om->rbv[x][q]; + for (z = 0; z < 16; z++) fprintf(fp, "%4d ", tmp.i[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + } + fprintf(fp, "\n"); + + fprintf(fp, "t_EC,EJ: %4d\n", om->tec_b); + fprintf(fp, "t_NB,JB,CT: %4d\n", om->tjb_b); + fprintf(fp, "t_BMk: %4d\n", om->tbm_b); + fprintf(fp, "scale: %.2f\n", om->scale_b); + fprintf(fp, "base: %4d\n", om->base_b); + fprintf(fp, "bias: %4d\n", om->bias_b); + fprintf(fp, "Q: %4d\n", nq); + fprintf(fp, "M: %4d\n", M); + return eslOK; +} + + + +/* oprofile_dump_vf() + * + * Dump the ViterbiFilter part of a profile to . + */ +static int +oprofile_dump_vf(FILE *fp, const P7_OPROFILE *om) +{ + int M = om->M; /* length of the query */ + int nq = p7O_NQW(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int kb; /* possibly offset base k for loading om's TSC vectors */ + int z; /* counter within elements of one SIMD minivector */ + int t; /* counter over transitions 0..7 = p7O_{BM,MM,IM,DM,MD,MI,II,DD}*/ + int j; /* counter in interleaved vector arrays in the profile */ + + /* used to align and read simd minivectors */ + union { vector signed short v; int16_t i[8]; } tmp; + + /* Emission score header (rearranged column numbers, in the vectors) */ + fprintf(fp, " "); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 8; z++) + if (k+z*nq <= M) fprintf(fp, "%6d ", k+z*nq); + else fprintf(fp, "%6s ", "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + + /* Table of residue emissions */ + for (x = 0; x < om->abc->Kp; x++) + { + fprintf(fp, "(%c): ", om->abc->sym[x]); + + /* Match emission scores (insert emissions are assumed zero by design) */ + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + tmp.v = om->rwv[x][q]; + for (z = 0; z < 8; z++) fprintf(fp, "%6d ", tmp.i[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + } + fprintf(fp, "\n"); + + /* Transitions */ + for (t = p7O_BM; t <= p7O_II; t++) + { + switch (t) { + case p7O_BM: fprintf(fp, "\ntBM: "); break; + case p7O_MM: fprintf(fp, "\ntMM: "); break; + case p7O_IM: fprintf(fp, "\ntIM: "); break; + case p7O_DM: fprintf(fp, "\ntDM: "); break; + case p7O_MD: fprintf(fp, "\ntMD: "); break; + case p7O_MI: fprintf(fp, "\ntMI: "); break; + case p7O_II: fprintf(fp, "\ntII: "); break; + } + + for (k = 1, q = 0; q < nq; q++, k++) + { + switch (t) { + case p7O_BM: kb = k; break; + case p7O_MM: kb = (1 + (nq+k-2)) % nq; break; /* MM, DM, IM quads rotated by +1 */ + case p7O_IM: kb = (1 + (nq+k-2)) % nq; break; + case p7O_DM: kb = (1 + (nq+k-2)) % nq; break; + case p7O_MD: kb = k; break; /* the remaining ones are straight up */ + case p7O_MI: kb = k; break; + case p7O_II: kb = k; break; + } + fprintf(fp, "[ "); + for (z = 0; z < 8; z++) + if (kb+z*nq <= M) fprintf(fp, "%6d ", kb+z*nq); + else fprintf(fp, "%6s ", "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n "); + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + tmp.v = om->twv[q*7 + t]; + for (z = 0; z < 8; z++) fprintf(fp, "%6d ", tmp.i[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + } + + /* DD transitions */ + fprintf(fp, "\ntDD: "); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 8; z++) + if (k+z*nq <= M) fprintf(fp, "%6d ", k+z*nq); + else fprintf(fp, "%6s ", "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n "); + for (j = nq*7, q = 0; q < nq; q++, j++) + { + fprintf(fp, "[ "); + tmp.v = om->twv[j]; + for (z = 0; z < 8; z++) fprintf(fp, "%6d ", tmp.i[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + + fprintf(fp, "E->C: %6d E->J: %6d\n", om->xw[p7O_E][p7O_MOVE], om->xw[p7O_E][p7O_LOOP]); + fprintf(fp, "N->B: %6d N->N: %6d\n", om->xw[p7O_N][p7O_MOVE], om->xw[p7O_N][p7O_LOOP]); + fprintf(fp, "J->B: %6d J->J: %6d\n", om->xw[p7O_J][p7O_MOVE], om->xw[p7O_J][p7O_LOOP]); + fprintf(fp, "C->T: %6d C->C: %6d\n", om->xw[p7O_C][p7O_MOVE], om->xw[p7O_C][p7O_LOOP]); + + fprintf(fp, "scale: %6.2f\n", om->scale_w); + fprintf(fp, "base: %6d\n", om->base_w); + fprintf(fp, "bound: %6d\n", om->ddbound_w); + fprintf(fp, "Q: %6d\n", nq); + fprintf(fp, "M: %6d\n", M); + return eslOK; +} + + +/* oprofile_dump_fb() + * + * Dump the Forward/Backward part of a profile to . + * , control the floating point output: + * 8,5 is a reasonable choice for prob space, + * 5,2 is reasonable for log space. + */ +static int +oprofile_dump_fb(FILE *fp, const P7_OPROFILE *om, int width, int precision) +{ + int M = om->M; /* length of the query */ + int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */ + int x; /* counter over residues */ + int q; /* q counts over total # of striped vectors, 0..nq-1 */ + int k; /* the usual counter over model nodes 1..M */ + int kb; /* possibly offset base k for loading om's TSC vectors */ + int z; /* counter within elements of one SIMD minivector */ + int t; /* counter over transitions 0..7 = p7O_{BM,MM,IM,DM,MD,MI,II,DD}*/ + int j; /* counter in interleaved vector arrays in the profile */ + + /* used to align and read simd minivectors */ + union { vector float v; float x[4]; } tmp; + + /* Residue emissions */ + for (x = 0; x < om->abc->Kp; x++) + { + fprintf(fp, "(%c): ", om->abc->sym[x]); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 4; z++) + if (k+z*nq <= M) fprintf(fp, "%*d ", width, k+z*nq); + else fprintf(fp, "%*s ", width, "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\nmat: "); + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + tmp.v = om->rfv[x][q]; + for (z = 0; z < 4; z++) fprintf(fp, "%*.*f ", width, precision, tmp.x[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n\n"); + } + + /* Transitions */ + for (t = p7O_BM; t <= p7O_II; t++) + { + switch (t) { + case p7O_BM: fprintf(fp, "\ntBM: "); break; + case p7O_MM: fprintf(fp, "\ntMM: "); break; + case p7O_IM: fprintf(fp, "\ntIM: "); break; + case p7O_DM: fprintf(fp, "\ntDM: "); break; + case p7O_MD: fprintf(fp, "\ntMD: "); break; + case p7O_MI: fprintf(fp, "\ntMI: "); break; + case p7O_II: fprintf(fp, "\ntII: "); break; + } + for (k = 1, q = 0; q < nq; q++, k++) + { + switch (t) { + case p7O_MM:/* MM, DM, IM quads rotated by +1 */ + case p7O_IM: + case p7O_DM: + kb = (1 + (nq+k-2)) % nq; + break; + case p7O_BM:/* the remaining ones are straight up */ + case p7O_MD: + case p7O_MI: + case p7O_II: + kb = k; + break; + } + fprintf(fp, "[ "); + for (z = 0; z < 4; z++) + if (kb+z*nq <= M) fprintf(fp, "%*d ", width, kb+z*nq); + else fprintf(fp, "%*s ", width, "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n "); + for (q = 0; q < nq; q++) + { + fprintf(fp, "[ "); + tmp.v = om->tfv[q*7 + t]; + for (z = 0; z < 4; z++) fprintf(fp, "%*.*f ", width, precision, tmp.x[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + } + + /* DD transitions */ + fprintf(fp, "\ntDD: "); + for (k =1, q = 0; q < nq; q++, k++) + { + fprintf(fp, "[ "); + for (z = 0; z < 4; z++) + if (k+z*nq <= M) fprintf(fp, "%*d ", width, k+z*nq); + else fprintf(fp, "%*s ", width, "xx"); + fprintf(fp, "]"); + } + fprintf(fp, "\n "); + for (j = nq*7, q = 0; q < nq; q++, j++) + { + fprintf(fp, "[ "); + tmp.v = om->tfv[j]; + for (z = 0; z < 4; z++) fprintf(fp, "%*.*f ", width, precision, tmp.x[z]); + fprintf(fp, "]"); + } + fprintf(fp, "\n"); + + /* Specials */ + fprintf(fp, "E->C: %*.*f E->J: %*.*f\n", width, precision, om->xf[p7O_E][p7O_MOVE], width, precision, om->xf[p7O_E][p7O_LOOP]); + fprintf(fp, "N->B: %*.*f N->N: %*.*f\n", width, precision, om->xf[p7O_N][p7O_MOVE], width, precision, om->xf[p7O_N][p7O_LOOP]); + fprintf(fp, "J->B: %*.*f J->J: %*.*f\n", width, precision, om->xf[p7O_J][p7O_MOVE], width, precision, om->xf[p7O_J][p7O_LOOP]); + fprintf(fp, "C->T: %*.*f C->C: %*.*f\n", width, precision, om->xf[p7O_C][p7O_MOVE], width, precision, om->xf[p7O_C][p7O_LOOP]); + fprintf(fp, "Q: %d\n", nq); + fprintf(fp, "M: %d\n", M); + return eslOK; +} + + +/* Function: p7_oprofile_Dump() + * Synopsis: Dump internals of a + * Incept: SRE, Thu Dec 13 08:49:30 2007 [Janelia] + * + * Purpose: Dump the internals of structure + * to stream ; generally for testing or debugging + * purposes. + * + * Args: fp - output stream (often stdout) + * om - optimized profile to dump + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_Dump(FILE *fp, const P7_OPROFILE *om) +{ + int status; + + fprintf(fp, "Dump of a ::\n"); + + fprintf(fp, "\n -- float part, odds ratios for Forward/Backward:\n"); + if ((status = oprofile_dump_fb(fp, om, 8, 5)) != eslOK) return status; + + fprintf(fp, "\n -- sword part, log odds for ViterbiFilter(): \n"); + if ((status = oprofile_dump_vf(fp, om)) != eslOK) return status; + + fprintf(fp, "\n -- uchar part, log odds for MSVFilter(): \n"); + if ((status = oprofile_dump_mf(fp, om)) != eslOK) return status; + + return eslOK; +} + + +/* Function: p7_oprofile_Sample() + * Synopsis: Sample a random profile. + * Incept: SRE, Wed Jul 30 13:11:52 2008 [Janelia] + * + * Purpose: Sample a random profile of nodes for alphabet , + * using as the source of random numbers. Parameterize + * it for generation of target sequences of mean length + * . Calculate its log-odds scores using background + * model . + * + * Args: r - random number generator + * abc - emission alphabet + * bg - background frequency model + * M - size of sampled profile, in nodes + * L - configured target seq mean length + * opt_hmm - optRETURN: sampled HMM + * opt_gm - optRETURN: sampled normal profile + * opt_om - RETURN: optimized profile + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_oprofile_Sample(ESL_RANDOMNESS *r, const ESL_ALPHABET *abc, const P7_BG *bg, int M, int L, + P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_OPROFILE **ret_om) +{ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + int status; + + if ((gm = p7_profile_Create (M, abc)) == NULL) { status = eslEMEM; goto ERROR; } + if ((om = p7_oprofile_Create(M, abc)) == NULL) { status = eslEMEM; goto ERROR; } + + if ((status = p7_hmm_Sample(r, M, abc, &hmm)) != eslOK) goto ERROR; + if ((status = p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL)) != eslOK) goto ERROR; + if ((status = p7_oprofile_Convert(gm, om)) != eslOK) goto ERROR; + if ((status = p7_oprofile_ReconfigLength(om, L)) != eslOK) goto ERROR; + + if (opt_hmm != NULL) *opt_hmm = hmm; else p7_hmm_Destroy(hmm); + if (opt_gm != NULL) *opt_gm = gm; else p7_profile_Destroy(gm); + *ret_om = om; + return eslOK; + + ERROR: + if (opt_hmm != NULL) *opt_hmm = NULL; + if (opt_gm != NULL) *opt_gm = NULL; + *ret_om = NULL; + return status; +} + + +/* Function: p7_oprofile_Compare() + * Synopsis: Compare two optimized profiles for equality. + * Incept: SRE, Wed Jan 21 13:29:10 2009 [Janelia] + * + * Purpose: Compare the contents of and ; return + * if they are effectively identical profiles, + * or if not. + * + * Floating point comparisons are done to a tolerance + * of using . + * + * If a comparison fails, an informative error message is + * left in to indicate why. + * + * Internal allocation sizes are not compared, only the + * data. + * + * Args: om1 - one optimized profile to compare + * om2 - the other + * tol - floating point comparison tolerance; see + * errmsg - ptr to array of at least characters. + * + * Returns: on effective equality; on difference. + */ +int +p7_oprofile_Compare(const P7_OPROFILE *om1, const P7_OPROFILE *om2, float tol, char *errmsg) +{ + int Q4 = p7O_NQF(om1->M); + int Q8 = p7O_NQW(om1->M); + int Q16 = p7O_NQB(om1->M); + int q, r, x, y; + + union { vector unsigned char v; uint8_t c[16]; } a16, b16; + union { vector signed short v; int16_t w[8]; } a8, b8; + union { vector float v; float x[4]; } a4, b4; + + if (om1->mode != om2->mode) ESL_FAIL(eslFAIL, errmsg, "comparison failed: mode"); + if (om1->L != om2->L) ESL_FAIL(eslFAIL, errmsg, "comparison failed: L"); + if (om1->M != om2->M) ESL_FAIL(eslFAIL, errmsg, "comparison failed: M"); + if (om1->nj != om2->nj) ESL_FAIL(eslFAIL, errmsg, "comparison failed: nj"); + if (om1->abc->type != om2->abc->type) ESL_FAIL(eslFAIL, errmsg, "comparison failed: alphabet type"); + + /* MSVFilter part */ + for (x = 0; x < om1->abc->Kp; x++) + for (q = 0; q < Q16; q++) + { + a16.v = om1->rbv[x][q]; b16.v = om2->rbv[x][q]; + for (r = 0; r < 16; r++) if (a16.c[r] != b16.c[r]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: rb[%d] elem %d", q, r); + } + if (om1->tbm_b != om2->tbm_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tbm_b"); + if (om1->tec_b != om2->tec_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tec_b"); + if (om1->tjb_b != om2->tjb_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tjb_b"); + if (om1->scale_b != om2->scale_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: scale_b"); + if (om1->base_b != om2->base_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: base_b"); + if (om1->bias_b != om2->bias_b) ESL_FAIL(eslFAIL, errmsg, "comparison failed: bias_b"); + + /* ViterbiFilter() part */ + for (x = 0; x < om1->abc->Kp; x++) + for (q = 0; q < Q8; q++) + { + a8.v = om1->rwv[x][q]; b8.v = om2->rwv[x][q]; + for (r = 0; r < 8; r++) if (a8.w[r] != b8.w[r]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: rw[%d] elem %d", q, r); + } + for (q = 0; q < 8*Q16; q++) + { + a8.v = om1->twv[q]; b8.v = om2->twv[q]; + for (r = 0; r < 8; r++) if (a8.w[r] != b8.w[r]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tw[%d] elem %d", q, r); + } + for (x = 0; x < p7O_NXSTATES; x++) + for (y = 0; y < p7O_NXTRANS; y++) + if (om1->xw[x][y] != om2->xw[x][y]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: xw[%d][%d]", x, y); + + if (om1->scale_w != om2->scale_w) ESL_FAIL(eslFAIL, errmsg, "comparison failed: scale"); + if (om1->base_w != om2->base_w) ESL_FAIL(eslFAIL, errmsg, "comparison failed: base"); + if (om1->ddbound_w != om2->ddbound_w) ESL_FAIL(eslFAIL, errmsg, "comparison failed: ddbound_w"); + + /* Forward/Backward part */ + for (x = 0; x < om1->abc->Kp; x++) + for (q = 0; q < Q4; q++) + { + a4.v = om1->rfv[x][q]; b4.v = om2->rfv[x][q]; + for (r = 0; r < 4; r++) if (esl_FCompare(a4.x[r], b4.x[r], tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: rf[%d] elem %d", q, r); + } + for (q = 0; q < 8*Q4; q++) + { + a4.v = om1->tfv[q]; b4.v = om2->tfv[q]; + for (r = 0; r < 4; r++) if (a4.x[r] != b4.x[r]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: tf[%d] elem %d", q, r); + } + for (x = 0; x < p7O_NXSTATES; x++) + if (esl_vec_FCompare(om1->xf[x], om2->xf[x], p7O_NXTRANS, tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: xf[%d] vector", x); + + for (x = 0; x < p7_NOFFSETS; x++) + if (om1->offs[x] != om2->offs[x]) ESL_FAIL(eslFAIL, errmsg, "comparison failed: offs[%d]", x); + + if (esl_strcmp(om1->name, om2->name) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: name"); + if (esl_strcmp(om1->acc, om2->acc) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: acc"); + if (esl_strcmp(om1->desc, om2->desc) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: desc"); + if (esl_strcmp(om1->rf, om2->rf) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: ref"); + if (esl_strcmp(om1->mm, om2->mm) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: mm"); + if (esl_strcmp(om1->cs, om2->cs) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: cs"); + if (esl_strcmp(om1->consensus, om2->consensus) != 0) ESL_FAIL(eslFAIL, errmsg, "comparison failed: consensus"); + + if (esl_vec_FCompare(om1->evparam, om2->evparam, p7_NEVPARAM, tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: evparam vector"); + if (esl_vec_FCompare(om1->cutoff, om2->cutoff, p7_NCUTOFFS, tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: cutoff vector"); + if (esl_vec_FCompare(om1->compo, om2->compo, p7_MAXABET, tol) != eslOK) ESL_FAIL(eslFAIL, errmsg, "comparison failed: compo vector"); + + return eslOK; +} + + +/* Function: p7_profile_SameAsMF() + * Synopsis: Set a generic profile's scores to give MSV scores. + * Incept: SRE, Wed Jul 30 13:42:49 2008 [Janelia] + * + * Purpose: Set a generic profile's scores so that the normal DP + * algorithms will give the same score as : + * all t_MM scores = 0; all other core transitions = -inf; + * multihit local mode; all entries uniformly ; + * scores 0; total approximated later as -3; + * rounded in the same way as the 8-bit limited precision. + * + * Returns: on success. + */ +int +p7_profile_SameAsMF(const P7_OPROFILE *om, P7_PROFILE *gm) +{ + int k,x; + float tbm = roundf(om->scale_b * (log(2.0f / ((float) gm->M * (float) (gm->M+1))))); + + /* Transitions */ + esl_vec_FSet(gm->tsc, p7P_NTRANS * gm->M, -eslINFINITY); + for (k = 1; k < gm->M; k++) p7P_TSC(gm, k, p7P_MM) = 0.0f; + for (k = 0; k < gm->M; k++) p7P_TSC(gm, k, p7P_BM) = tbm; + + /* Emissions */ + for (x = 0; x < gm->abc->Kp; x++) + for (k = 0; k <= gm->M; k++) + { + gm->rsc[x][k*2] = (gm->rsc[x][k*2] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_b * gm->rsc[x][k*2]); + gm->rsc[x][k*2+1] = 0; /* insert score: VF makes it zero no matter what. */ + } + + /* Specials */ + for (k = 0; k < p7P_NXSTATES; k++) + for (x = 0; x < p7P_NXTRANS; x++) + gm->xsc[k][x] = (gm->xsc[k][x] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_b * gm->xsc[k][x]); + + /* NN, CC, JJ hardcoded 0 in limited precision */ + gm->xsc[p7P_N][p7P_LOOP] = gm->xsc[p7P_J][p7P_LOOP] = gm->xsc[p7P_C][p7P_LOOP] = 0; + + return eslOK; +} + + +/* Function: p7_profile_SameAsVF() + * Synopsis: Round a generic profile to match ViterbiFilter scores. + * Incept: SRE, Wed Jul 30 13:37:48 2008 [Janelia] + * + * Purpose: Round all the scores in a generic (lspace) in + * exactly the same way that the scores in the + * were rounded. Then we can test that two profiles + * give identical internal scores in testing, say, + * against . + * + * The 3nat approximation is used; NN=CC=JJ=0, and 3 nats are + * subtracted at the end to account for their contribution. + * + * To convert a generic Viterbi score calculated with this profile + * to a nat score that should match ViterbiFilter() exactly, + * do <(gsc / om->scale_w) - 3.0>. + * + * must be the same profile that was constructed from. + * + * is irrevocably altered by this call. + * + * Do not call this more than once on any given ! + * + * Args: - optimized profile, containing scale information. + * - generic profile that was built from. + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_profile_SameAsVF(const P7_OPROFILE *om, P7_PROFILE *gm) +{ + int k; + int x; + + /* Transitions */ + /* <= -eslINFINITY test is used solely to silence compiler. really testing == -eslINFINITY */ + for (x = 0; x < gm->M*p7P_NTRANS; x++) + gm->tsc[x] = (gm->tsc[x] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_w * gm->tsc[x]); + + /* Enforce the rule that no II can be 0; max of -1 */ + for (x = p7P_II; x < gm->M*p7P_NTRANS; x += p7P_NTRANS) + if (gm->tsc[x] == 0.0) gm->tsc[x] = -1.0; + + /* Emissions */ + for (x = 0; x < gm->abc->Kp; x++) + for (k = 0; k <= gm->M; k++) + { + gm->rsc[x][k*2] = (gm->rsc[x][k*2] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_w * gm->rsc[x][k*2]); + gm->rsc[x][k*2+1] = 0.0; /* insert score: VF makes it zero no matter what. */ + } + + /* Specials */ + for (k = 0; k < p7P_NXSTATES; k++) + for (x = 0; x < p7P_NXTRANS; x++) + gm->xsc[k][x] = (gm->xsc[k][x] <= -eslINFINITY) ? -eslINFINITY : roundf(om->scale_w * gm->xsc[k][x]); + + /* 3nat approximation: NN, CC, JJ hardcoded 0 in limited precision */ + gm->xsc[p7P_N][p7P_LOOP] = gm->xsc[p7P_J][p7P_LOOP] = gm->xsc[p7P_C][p7P_LOOP] = 0.0; + + return eslOK; +} + +/*------------ end, P7_OPROFILE debugging tools ----------------*/ + + + +/***************************************************************** + * 5. Benchmark driver. + *****************************************************************/ + +#ifdef p7OPROFILE_BENCHMARK +/* Timing profile conversion. + gcc -o benchmark-oprofile -std=gnu99 -g -Wall -maltivec -I.. -L.. -I../../easel -L../../easel -Dp7OPROFILE_BENCHMARK\ + p7_oprofile.c -lhmmer -leasel -lm + icc -o benchmark-oprofile -O3 -static -I.. -L.. -I../../easel -L../../easel -Dp7OPROFILE_BENCHMARK p7_oprofile.c -lhmmer -leasel -lm + ./benchmark-vmx runs benchmark + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-L", eslARG_INT, "400", NULL, NULL, NULL, NULL, NULL, "length of target sequence", 0 }, + { "-N", eslARG_INT, "100000", NULL, NULL, NULL, NULL, NULL, "number of conversions to time", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for the generic implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + int i; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_oprofile_Convert(gm, om); + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7OPROFILE_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + + + + +/***************************************************************** + * 6. Unit tests + *****************************************************************/ +#ifdef p7OPROFILE_TESTDRIVE + + +#endif /*p7OPROFILE_TESTDRIVE*/ +/*------------------- end, unit tests ---------------------------*/ + + + + +/***************************************************************** + * 7. Test driver + *****************************************************************/ +#ifdef p7OPROFILE_TESTDRIVE + + +#endif /*p7OPROFILE_TESTDRIVE*/ +/*------------------- end, test driver --------------------------*/ + + +/***************************************************************** + * 8. Example + *****************************************************************/ +#ifdef p7OPROFILE_EXAMPLE +/* gcc -std=gnu99 -g -Wall -Dp7OPROFILE_EXAMPLE -I.. -I../../easel -L.. -L../../easel -o p7_oprofile_example p7_oprofile.c -lhmmer -leasel -lm + * ./p7_oprofile_example + */ +#include "p7_config.h" +#include +#include "easel.h" +#include "hmmer.h" + +int +main(int argc, char **argv) +{ + char *hmmfile = argv[1]; + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om1 = NULL; + P7_OPROFILE *om2 = NULL; + int status; + char errbuf[eslERRBUFSIZE]; + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + if (status == eslEFORMAT) p7_Fail("Bad file format in HMM file %s:\n%s\n", hfp->fname, hfp->errbuf); + else if (status == eslEINCOMPAT) p7_Fail("HMM in %s is not in the expected %s alphabet\n", hfp->fname, esl_abc_DecodeType(abc->type)); + else if (status == eslEOF) p7_Fail("Empty HMM file %s? No HMM data found.\n", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s\n", hfp->fname); + + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + om1 = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + p7_oprofile_Convert(gm, om1); + + p7_oprofile_Dump(stdout, om1); + + om2 = p7_oprofile_Copy(om1); + if (p7_oprofile_Compare(om1, om2, 0.001f, errbuf) != eslOK) + printf ("ERROR %s\n", errbuf); + + p7_oprofile_Destroy(om1); + p7_oprofile_Destroy(om2); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + return eslOK; +} +#endif /*p7OPROFILE_EXAMPLE*/ +/*----------------------- end, example --------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/stotrace.c b/bioinformaticsProject/hmmer/src/impl_vmx/stotrace.c new file mode 100644 index 0000000..1241cd6 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/stotrace.c @@ -0,0 +1,650 @@ +/* VMX implementation of stochastic backtrace of a Forward matrix. + * (Compare generic version, p7_GStochasticTrace().) + * + * Contents: + * 1. Stochastic trace implementation. + * 2. Selection of steps in the traceback. + * 3. Benchmark driver. + * 4. Unit tests. + * 5. Test driver. + * 6. Example. + * + * SRE, Fri Aug 15 08:02:43 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_random.h" +#include "esl_vmx.h" +#include "esl_vectorops.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static inline int select_m(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_d(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_i(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k); +static inline int select_n(int i); +static inline int select_c(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i); +static inline int select_j(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i); +static inline int select_e(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int *ret_k); +static inline int select_b(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i); + + +/***************************************************************** + * 1. Stochastic trace implementation. + *****************************************************************/ + +/* Function: p7_StochasticTrace() + * Synopsis: Sample a traceback from a Forward matrix + * Incept: SRE, Fri Aug 8 17:40:18 2008 [UA217, IAD-SFO] + * + * Purpose: Perform a stochastic traceback from Forward matrix , + * using random number generator , in order to sample an + * alignment of model to digital sequence of + * length . + * + * The sampled traceback is returned in , which the + * caller provides with at least an initial allocation; + * the allocation will be grown as needed here. + * + * Args: r - source of random numbers + * dsq - digital sequence being aligned, 1..L + * L - length of dsq + * om - profile + * ox - Forward matrix to trace, LxM + * tr - storage for the recovered traceback + * + * Returns: on success + * + * Throws: on allocation error. + * on several types of problems, including: + * the trace isn't empty (wasn't Reuse()'d); + */ +int +p7_StochasticTrace(ESL_RANDOMNESS *rng, const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, const P7_OMX *ox, + P7_TRACE *tr) +{ + int i; /* position in sequence 1..L */ + int k; /* position in model 1..M */ + int s0, s1; /* choice of a state */ + int status; + + if (tr->N != 0) ESL_EXCEPTION(eslEINVAL, "trace not empty; needs to be Reuse()'d?"); + + i = L; + k = 0; + if ((status = p7_trace_Append(tr, p7T_T, k, i)) != eslOK) return status; + if ((status = p7_trace_Append(tr, p7T_C, k, i)) != eslOK) return status; + s0 = tr->st[tr->N-1]; + while (s0 != p7T_S) + { + switch (s0) { + case p7T_M: s1 = select_m(rng, om, ox, i, k); k--; i--; break; + case p7T_D: s1 = select_d(rng, om, ox, i, k); k--; break; + case p7T_I: s1 = select_i(rng, om, ox, i, k); i--; break; + case p7T_N: s1 = select_n(i); break; + case p7T_C: s1 = select_c(rng, om, ox, i); break; + case p7T_J: s1 = select_j(rng, om, ox, i); break; + case p7T_E: s1 = select_e(rng, om, ox, i, &k); break; + case p7T_B: s1 = select_b(rng, om, ox, i); break; + default: ESL_EXCEPTION(eslEINVAL, "bogus state in traceback"); + } + if (s1 == -1) ESL_EXCEPTION(eslEINVAL, "Stochastic traceback choice failed"); + + if ((status = p7_trace_Append(tr, s1, k, i)) != eslOK) return status; + + if ( (s1 == p7T_N || s1 == p7T_J || s1 == p7T_C) && s1 == s0) i--; + s0 = s1; + } /* end traceback, at S state */ + + tr->M = om->M; + tr->L = L; + return p7_trace_Reverse(tr); +} +/*------------------ end, stochastic traceback ------------------*/ + + +/***************************************************************** + * 2. Selection of steps in the traceback + *****************************************************************/ +/* The guts of the stochastic backtrace function is broken out in + * pieces: each select_?() function randomly selects one of the + * possible paths, according to their probability, and returns the + * index of the state we move to next. + */ + +/* M(i,k) is reached from B(i-1), M(i-1,k-1), D(i-1,k-1), or I(i-1,k-1). */ +static inline int +select_m(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell M(i,k) */ + int r = (k-1) / Q; + vector float *tp = om->tfv + 7*q; /* *tp now at start of transitions to cur cell M(i,k) */ + vector float xBv; + vector float zerov; + vector float mpv, dpv, ipv; + union { vector float v; float p[4]; } u; + float path[4]; + int state[4] = { p7T_B, p7T_M, p7T_I, p7T_D }; + + xBv = esl_vmx_set_float(ox->xmx[(i-1)*p7X_NXCELLS+p7X_B]); + zerov = (vector float) vec_splat_u32(0); + + if (q > 0) { + mpv = ox->dpf[i-1][(q-1)*3 + p7X_M]; + dpv = ox->dpf[i-1][(q-1)*3 + p7X_D]; + ipv = ox->dpf[i-1][(q-1)*3 + p7X_I]; + } else { + mpv = vec_sld(zerov, ox->dpf[i-1][(Q-1)*3 + p7X_M], 12); + dpv = vec_sld(zerov, ox->dpf[i-1][(Q-1)*3 + p7X_D], 12); + ipv = vec_sld(zerov, ox->dpf[i-1][(Q-1)*3 + p7X_I], 12); + } + + u.v = vec_madd(xBv, *tp, zerov); tp++; path[0] = u.p[r]; + u.v = vec_madd(mpv, *tp, zerov); tp++; path[1] = u.p[r]; + u.v = vec_madd(ipv, *tp, zerov); tp++; path[2] = u.p[r]; + u.v = vec_madd(dpv, *tp, zerov); path[3] = u.p[r]; + esl_vec_FNorm(path, 4); + return state[esl_rnd_FChoose(rng, path, 4)]; +} + +/* D(i,k) is reached from M(i, k-1) or D(i,k-1). */ +static inline int +select_d(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell D(i,k) */ + int r = (k-1) / Q; + vector float zerov; + vector float mpv, dpv; + vector float tmdv, tddv; + union { vector float v; float p[4]; } u; + float path[2]; + int state[2] = { p7T_M, p7T_D }; + + zerov = (vector float) vec_splat_u32(0); + + if (q > 0) { + mpv = ox->dpf[i][(q-1)*3 + p7X_M]; + dpv = ox->dpf[i][(q-1)*3 + p7X_D]; + tmdv = om->tfv[7*(q-1) + p7O_MD]; + tddv = om->tfv[7*Q + (q-1)]; + } else { + mpv = vec_sld(zerov, ox->dpf[i][(Q-1)*3 + p7X_M], 12); + dpv = vec_sld(zerov, ox->dpf[i][(Q-1)*3 + p7X_D], 12); + tmdv = vec_sld(zerov, om->tfv[7*(Q-1) + p7O_MD], 12); + tddv = vec_sld(zerov, om->tfv[8*Q-1], 12); + } + + u.v = vec_madd(mpv, tmdv, zerov); path[0] = u.p[r]; + u.v = vec_madd(dpv, tddv, zerov); path[1] = u.p[r]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} + +/* I(i,k) is reached from M(i-1, k) or I(i-1,k). */ +static inline int +select_i(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int k) +{ + int Q = p7O_NQF(ox->M); + int q = (k-1) % Q; /* (q,r) is position of the current DP cell D(i,k) */ + int r = (k-1) / Q; + vector float zerov; + vector float mpv = ox->dpf[i-1][q*3 + p7X_M]; + vector float ipv = ox->dpf[i-1][q*3 + p7X_I]; + vector float *tp = om->tfv + 7*q + p7O_MI; + union { vector float v; float p[4]; } u; + float path[2]; + int state[2] = { p7T_M, p7T_I }; + + zerov = (vector float) vec_splat_u32(0); + + u.v = vec_madd(mpv, *tp, zerov); tp++; path[0] = u.p[r]; + u.v = vec_madd(ipv, *tp, zerov); path[1] = u.p[r]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} + +/* N(i) must come from N(i-1) for i>0; else it comes from S */ +static inline int +select_n(int i) +{ + if (i == 0) return p7T_S; + else return p7T_N; +} + +/* C(i) is reached from E(i) or C(i-1). */ +static inline int +select_c(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i) +{ + float path[2]; + int state[2] = { p7T_C, p7T_E }; + + path[0] = ox->xmx[(i-1)*p7X_NXCELLS+p7X_C] * om->xf[p7O_C][p7O_LOOP]; + path[1] = ox->xmx[ i*p7X_NXCELLS+p7X_E] * om->xf[p7O_E][p7O_MOVE] * ox->xmx[i*p7X_NXCELLS+p7X_SCALE]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} + +/* J(i) is reached from E(i) or J(i-1). */ +static inline int +select_j(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i) +{ + float path[2]; + int state[2] = { p7T_J, p7T_E }; + + path[0] = ox->xmx[(i-1)*p7X_NXCELLS+p7X_J] * om->xf[p7O_J][p7O_LOOP]; + path[1] = ox->xmx[ i*p7X_NXCELLS+p7X_E] * om->xf[p7O_E][p7O_LOOP] * ox->xmx[i*p7X_NXCELLS+p7X_SCALE]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} + +/* E(i) is reached from any M(i, k=1..M) or D(i, k=2..M). */ +/* Using FChoose() here would mean allocating tmp space for 2M-1 paths; + * instead we use the fact that E(i) is itself the necessary normalization + * factor, and implement FChoose's algorithm here for an on-the-fly + * calculation. + */ +static inline int +select_e(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i, int *ret_k) +{ + int Q = p7O_NQF(ox->M); + double sum = 0.0; + double roll = esl_random(rng); + double norm = 1.0 / ox->xmx[i*p7X_NXCELLS+p7X_E]; /* all M, D already scaled exactly the same */ + vector float xEv = esl_vmx_set_float(norm); + vector float zerov = (vector float) vec_splat_u32(0); + union { vector float v; float p[4]; } u; + int q,r; + + while (1) { + for (q = 0; q < Q; q++) + { + u.v = vec_madd(ox->dpf[i][q*3 + p7X_M], xEv, zerov); + for (r = 0; r < 4; r++) { + sum += u.p[r]; + if (roll < sum) { *ret_k = r*Q + q + 1; return p7T_M;} + } + + u.v = vec_madd(ox->dpf[i][q*3 + p7X_D], xEv, zerov); + for (r = 0; r < 4; r++) { + sum += u.p[r]; + if (roll < sum) { *ret_k = r*Q + q + 1; return p7T_D;} + } + } + ESL_DASSERT1((sum > 0.99)); + } + /*UNREACHED*/ + ESL_EXCEPTION(-1, "unreached code was reached. universe collapses."); +} + +/* B(i) is reached from N(i) or J(i). */ +static inline int +select_b(ESL_RANDOMNESS *rng, const P7_OPROFILE *om, const P7_OMX *ox, int i) +{ + float path[2]; + int state[2] = { p7T_N, p7T_J }; + + path[0] = ox->xmx[i*p7X_NXCELLS+p7X_N] * om->xf[p7O_N][p7O_MOVE]; + path[1] = ox->xmx[i*p7X_NXCELLS+p7X_J] * om->xf[p7O_J][p7O_MOVE]; + esl_vec_FNorm(path, 2); + return state[esl_rnd_FChoose(rng, path, 2)]; +} +/*---------------------- end, step selection --------------------*/ + +/***************************************************************** + * 3. Benchmark + *****************************************************************/ +#ifdef p7STOTRACE_BENCHMARK +/* + gcc -g -O2 -o stotrace_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7STOTRACE_BENCHMARK stotrace.c -lhmmer -leasel -lm + icc -O3 -static -o stotrace_benchmark -I.. -L.. -I../../easel -L../../easel -Dp7STOTRACE_BENCHMARK stotrace.c -lhmmer -leasel -lm + ./stotrace_benchmark + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seq" , 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of sampled tracebacks", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for stochastic traceback, VMX version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *fwd = NULL; + P7_TRACE *tr = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc, fsc, vsc; + float bestsc = -eslINFINITY; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + + fwd = p7_omx_Create(gm->M, L, L); + gx = p7_gmx_Create(gm->M, L); + tr = p7_trace_Create(); + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_GViterbi(dsq, L, gm, gx, &vsc); + p7_Forward (dsq, L, om, fwd, &fsc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + p7_StochasticTrace(r, dsq, L, om, fwd, tr); + p7_trace_Score(tr, dsq, gm, &sc); + bestsc = ESL_MAX(bestsc, sc); + p7_trace_Reuse(tr); + } + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + + printf("forward sc = %.4f nats\n", fsc); + printf("viterbi sc = %.4f nats\n", vsc); + printf("max trace sc = %.4f nats\n", bestsc); + + free(dsq); + p7_trace_Destroy(tr); + p7_gmx_Destroy(gx); + p7_omx_Destroy(fwd); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7STOTRACE_BENCHMARK*/ +/*----------------- end, benchmark ------------------------------*/ + + +/***************************************************************** + * 4. Unit tests + *****************************************************************/ +#ifdef p7STOTRACE_TESTDRIVE +#include "esl_getopts.h" + +/* tests: + * 1. each sampled trace must validate. + * 2. each trace must be <= viterbi trace score + * 3. in a large # of traces, one is "equal" to the viterbi trace score. + * (this of course is stochastic; but it's true for the particular + * choice of RNG seed used in tests here.) + */ +static void +utest_stotrace(ESL_GETOPTS *go, ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, P7_PROFILE *gm, P7_OPROFILE *om, ESL_DSQ *dsq, int L, int ntrace) +{ + P7_GMX *gx = NULL; + P7_OMX *ox = NULL; + P7_TRACE *tr = NULL; + char errbuf[eslERRBUFSIZE]; + int idx; + float maxsc = -eslINFINITY; + float vsc, sc; + + if ((gx = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("generic DP matrix creation failed"); + if ((ox = p7_omx_Create(gm->M, L, L)) == NULL) esl_fatal("optimized DP matrix create failed"); + if ((tr = p7_trace_Create()) == NULL) esl_fatal("trace creation failed"); + + if (p7_GViterbi(dsq, L, gm, gx, &vsc) != eslOK) esl_fatal("viterbi failed"); + if (p7_Forward (dsq, L, om, ox, NULL) != eslOK) esl_fatal("forward failed"); + + for (idx = 0; idx < ntrace; idx++) + { + if (p7_StochasticTrace(rng, dsq, L, om, ox, tr) != eslOK) esl_fatal("stochastic trace failed"); + if (p7_trace_Validate(tr, abc, dsq, errbuf) != eslOK) esl_fatal("trace invalid:\n%s", errbuf); + if (p7_trace_Score(tr, dsq, gm, &sc) != eslOK) esl_fatal("trace scoring failed"); + + maxsc = ESL_MAX(sc, maxsc); + if (sc > vsc) esl_fatal("sampled trace has score > optimal Viterbi path; not possible"); + p7_trace_Reuse(tr); + } + if (esl_FCompare(maxsc, vsc, 0.1) != eslOK) esl_fatal("stochastic trace failed to sample the Viterbi path"); + + p7_trace_Destroy(tr); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); +} +#endif /*p7STOTRACE_TESTDRIVE*/ +/*----------------- end, unit tests -----------------------------*/ + + + +/***************************************************************** + * 5. Test driver + *****************************************************************/ +#ifdef p7STOTRACE_TESTDRIVE +/* gcc -g -Wall -o stotrace_utest -Dp7STOTRACE_TESTDRIVE -I.. -L.. -I../../easel -L../../easel stotrace.c -lhmmer -leasel -lm + */ +#include "easel.h" +#include "esl_getopts.h" +#include "esl_randomseq.h" + +#include "p7_config.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for stochastic Viterbi traceback (generic version)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_BG *bg = NULL; + ESL_DSQ *dsq = NULL; + ESL_SQ *sq = NULL; + int M = 6; + int L = 10; + int ntrace = 1000; + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile"); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal("failed to config profile"); + if ((om = p7_oprofile_Create(gm->M, abc)) == NULL) esl_fatal("failed to create optimized profile"); + if (p7_oprofile_Convert(gm, om) != eslOK) esl_fatal("failed to convert profile"); + + /* Test with randomly generated (iid) sequence */ + if ((dsq = malloc(sizeof(ESL_DSQ) *(L+2))) == NULL) esl_fatal("malloc failed"); + if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal("seq generation failed"); + utest_stotrace(go, r, abc, gm, om, dsq, L, ntrace); + + /* Test with seq sampled from profile */ + if ((sq = esl_sq_CreateDigital(abc)) == NULL) esl_fatal("sequence allocation failed"); + if (p7_ProfileEmit(r, hmm, gm, bg, sq, NULL) != eslOK) esl_fatal("profile emission failed"); + utest_stotrace(go, r, abc, gm, om, sq->dsq, sq->n, ntrace); + + esl_sq_Destroy(sq); + free(dsq); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7STOTRACE_TESTDRIVE*/ +/*---------------- end, test driver -----------------------------*/ + + +/***************************************************************** + * 6. Example. + *****************************************************************/ +#ifdef p7STOTRACE_EXAMPLE +/* + gcc -g -Wall -maltivec -std=gnu99 -o stotrace_example -I.. -L.. -I../../easel -L../../easel -Dp7STOTRACE_EXAMPLE stotrace.c -lhmmer -leasel -lm + ./example + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump the DP matrix to stdout", 0 }, + { "-p", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump the profile to stdout", 0 }, + { "-t", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump the sampled trace to stdout", 0 }, + { "-N", eslARG_INT, "1", NULL, NULL, NULL, NULL, NULL, "number of traces to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of stochastic backtrace (VMX version)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + ESL_RANDOMNESS *rng = esl_randomness_CreateFast(0); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_GMX *gx = NULL; + P7_OMX *fwd = NULL; + P7_TRACE *tr = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + int N = esl_opt_GetInteger(go, "-N"); + int i; + float vsc, fsc, tsc; + char errbuf[eslERRBUFSIZE]; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); p7_oprofile_Convert(gm, om); + + if (esl_opt_GetBoolean(go, "-p")) p7_oprofile_Dump(stdout, om); + + fwd = p7_omx_Create(gm->M, sq->n, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + tr = p7_trace_Create(); + + if (esl_opt_GetBoolean(go, "-m") == TRUE) p7_omx_SetDumpMode(stdout, fwd, TRUE); + p7_GViterbi(sq->dsq, sq->n, gm, gx, &vsc); + p7_Forward (sq->dsq, sq->n, om, fwd, &fsc); + + for (i = 0; i < N; i++) + { + p7_StochasticTrace(rng, sq->dsq, sq->n, om, fwd, tr); + p7_trace_Score(tr, sq->dsq, gm, &tsc); + + if (esl_opt_GetBoolean(go, "-t") == TRUE) p7_trace_Dump(stdout, tr, gm, sq->dsq); + if (p7_trace_Validate(tr, abc, sq->dsq, errbuf) != eslOK) p7_Die("trace %d fails validation:\n%s\n", i, errbuf); + + printf("Sampled trace: %.4f nats\n", tsc); + p7_trace_Reuse(tr); + } + printf("Forward score: %.4f nats\n", fsc); + printf("Viterbi score: %.4f nats\n", vsc); + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_trace_Destroy(tr); + p7_omx_Destroy(fwd); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_randomness_Destroy(rng); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7STOTRACE_EXAMPLE*/ +/*------------------------ end, example -------------------------*/ + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/vitfilter.c b/bioinformaticsProject/hmmer/src/impl_vmx/vitfilter.c new file mode 100644 index 0000000..15df54f --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/vitfilter.c @@ -0,0 +1,911 @@ +/* Viterbi filter implementation; VMX version. + * + * This is a SIMD vectorized, striped, interleaved, one-row, reduced + * precision (epi16) implementation of the Viterbi algorithm. + * + * It calculates a close approximation of the Viterbi score, in + * limited precision (signed words: 16 bits) and range. It may overflow on + * high scoring sequences, but this indicates that the sequence is a + * high-scoring hit worth examining more closely anyway. It will not + * underflow, in local alignment mode. + * + * Contents: + * 1. Viterbi filter implementation. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + * + * SRE, Thu Jul 31 20:32:25 2008 [Casa de Gatos] + */ +#include "p7_config.h" + +#include +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_vmx.h" +#include "esl_gumbel.h" + +#include "hmmer.h" +#include "impl_vmx.h" + + +/***************************************************************** + * 1. Viterbi filter implementation. + *****************************************************************/ + +/* Function: p7_ViterbiFilter() + * Synopsis: Calculates Viterbi score, vewy vewy fast, in limited precision. + * Incept: SRE, Tue Nov 27 09:15:24 2007 [Janelia] + * + * Purpose: Calculates an approximation of the Viterbi score for sequence + * of length residues, using optimized profile , + * and a preallocated one-row DP matrix . Return the + * estimated Viterbi score (in nats) in . + * + * Score may overflow (and will, on high-scoring + * sequences), but will not underflow. + * + * The model must be in a local alignment mode; other modes + * cannot provide the necessary guarantee of no underflow. + * + * This is a striped SIMD Viterbi implementation using Intel + * VMX integer intrinsics \citep{Farrar07}, in reduced + * precision (signed words, 16 bits). + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * ret_sc - RETURN: Viterbi score (in nats) + * + * Returns: on success; + * if the score overflows; in this case + * <*ret_sc> is , and the sequence can + * be treated as a high-scoring hit. + * + * Throws: if allocation is too small, or if + * profile isn't in a local alignment mode. (Must be in local + * alignment mode because that's what helps us guarantee + * limited dynamic range.) + * + * Xref: [Farrar07] for ideas behind striped SIMD DP. + * J2/46-47 for layout of HMMER's striped SIMD DP. + * J2/50 for single row DP. + * J2/60 for reduced precision (epu8) + * J2/65 for initial benchmarking + * J2/66 for precision maximization + * J4/138-140 for reimplementation in 16-bit precision + */ +int +p7_ViterbiFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc) +{ + vector signed short mpv, dpv, ipv; /* previous row values */ + vector signed short sv; /* temp storage of 1 curr row value in progress */ + vector signed short dcv; /* delayed storage of D(i,q+1) */ + vector signed short xEv; /* E state: keeps max for Mk->E as we go */ + vector signed short xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + vector signed short Dmaxv; /* keeps track of maximum D cell on row */ + int16_t xE, xB, xC, xJ, xN; /* special states' scores */ + int16_t Dmax; /* maximum D cell score on row */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q; /* segment length: # of vectors */ + vector signed short *dp; /* using {MDI}MX(q) macro requires initialization of */ + vector signed short *rsc; /* will point at om->ru[x] for residue x[i] */ + vector signed short *tsc; /* will point into (and step thru) om->tu */ + + vector signed short negInfv; + + Q = p7O_NQW(om->M); + dp = ox->dpw[0]; + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ8) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + if (om->mode != p7_LOCAL && om->mode != p7_UNILOCAL) ESL_EXCEPTION(eslEINVAL, "Fast filter only works for local alignment"); + ox->M = om->M; + + negInfv = esl_vmx_set_s16((signed short)-32768); + + /* Initialization. In unsigned arithmetic, -infinity is -32768 + */ + for (q = 0; q < Q; q++) + MMXo(q) = IMXo(q) = DMXo(q) = negInfv; + xN = om->base_w; + xB = xN + om->xw[p7O_N][p7O_MOVE]; + xJ = -32768; + xC = -32768; + xE = -32768; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpVFRow(ox, 0, xE, 0, xJ, xB, xC); /* first 0 is : do header. second 0 is xN: always 0 here. */ +#endif + + for (i = 1; i <= L; i++) + { + rsc = om->rwv[dsq[i]]; + tsc = om->twv; + dcv = negInfv; /* "-infinity" */ + xEv = negInfv; + Dmaxv = negInfv; + xBv = esl_vmx_set_s16(xB); + + /* Right shifts by 1 value (2 bytes). 4,8,12,x becomes x,4,8,12. + * Because ia32 is littlendian, this means a left bit shift. + * Zeros shift on automatically; replace it with -32768. + */ + mpv = MMXo(Q-1); mpv = vec_sld(negInfv, mpv, 14); + dpv = DMXo(Q-1); dpv = vec_sld(negInfv, dpv, 14); + ipv = IMXo(Q-1); ipv = vec_sld(negInfv, ipv, 14); + + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = vec_adds(xBv, *tsc); tsc++; + sv = vec_max (sv, vec_adds(mpv, *tsc)); tsc++; + sv = vec_max (sv, vec_adds(ipv, *tsc)); tsc++; + sv = vec_max (sv, vec_adds(dpv, *tsc)); tsc++; + sv = vec_adds(sv, *rsc); rsc++; + xEv = vec_max(xEv, sv); + + /* Load {MDI}(i-1,q) into mpv, dpv, ipv; + * {MDI}MX(q) is then the current, not the prev row + */ + mpv = MMXo(q); + dpv = DMXo(q); + ipv = IMXo(q); + + /* Do the delayed stores of {MD}(i,q) now that memory is usable */ + MMXo(q) = sv; + DMXo(q) = dcv; + + /* Calculate the next D(i,q+1) partially: M->D only; + * delay storage, holding it in dcv + */ + dcv = vec_adds(sv, *tsc); tsc++; + Dmaxv = vec_max(dcv, Dmaxv); + + /* Calculate and store I(i,q) */ + sv = vec_adds(mpv, *tsc); tsc++; + IMXo(q)= vec_max(sv, vec_adds(ipv, *tsc)); tsc++; + } + + /* Now the "special" states, which start from Mk->E (->C, ->J->B) */ + xE = esl_vmx_hmax_s16(xEv); + if (xE >= 32767) { *ret_sc = eslINFINITY; return eslERANGE; } /* immediately detect overflow */ + xN = xN + om->xw[p7O_N][p7O_LOOP]; + xC = ESL_MAX(xC + om->xw[p7O_C][p7O_LOOP], xE + om->xw[p7O_E][p7O_MOVE]); + xJ = ESL_MAX(xJ + om->xw[p7O_J][p7O_LOOP], xE + om->xw[p7O_E][p7O_LOOP]); + xB = ESL_MAX(xJ + om->xw[p7O_J][p7O_MOVE], xN + om->xw[p7O_N][p7O_MOVE]); + /* and now xB will carry over into next i, and xC carries over after i=L */ + + /* Finally the "lazy F" loop (sensu [Farrar07]). We can often + * prove that we don't need to evaluate any D->D paths at all. + * + * The observation is that if we can show that on the next row, + * B->M(i+1,k) paths always dominate M->D->...->D->M(i+1,k) paths + * for all k, then we don't need any D->D calculations. + * + * The test condition is: + * max_k D(i,k) + max_k ( TDD(k-2) + TDM(k-1) - TBM(k) ) < xB(i) + * So: + * max_k (TDD(k-2) + TDM(k-1) - TBM(k)) is precalc'ed in om->dd_bound; + * max_k D(i,k) is why we tracked Dmaxv; + * xB(i) was just calculated above. + */ + Dmax = esl_vmx_hmax_s16(Dmaxv); + if (Dmax + om->ddbound_w > xB) + { + /* Now we're obligated to do at least one complete DD path to be sure. */ + /* dcv has carried through from end of q loop above */ + dcv = vec_sld(negInfv, dcv, 14); + tsc = om->twv + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMXo(q) = vec_max(dcv, DMXo(q)); + dcv = vec_adds(DMXo(q), *tsc); tsc++; + } + + /* We may have to do up to three more passes; the check + * is for whether crossing a segment boundary can improve + * our score. + */ + do { + dcv = vec_sld(negInfv, dcv, 14); + tsc = om->twv + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + if (! vec_any_gt(dcv, DMXo(q))) break; + DMXo(q) = vec_max(dcv, DMXo(q)); + dcv = vec_adds(DMXo(q), *tsc); tsc++; + } + } while (q == Q); + } + else /* not calculating DD? then just store the last M->D vector calc'ed.*/ + DMXo(0) = vec_sld(negInfv, dcv, 14); + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpVFRow(ox, i, xE, 0, xJ, xB, xC); +#endif + } /* end loop over sequence residues 1..L */ + + /* finally C->T */ + if (xC > -32768) + { + *ret_sc = (float) xC + (float) om->xw[p7O_C][p7O_MOVE] - (float) om->base_w; + /* *ret_sc += L * om->ncj_roundoff; see J4/150 for rationale: superceded by -3.0nat approximation*/ + *ret_sc /= om->scale_w; + *ret_sc -= 3.0; /* the NN/CC/JJ=0,-3nat approximation: see J5/36. That's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ contrib */ + } + else *ret_sc = -eslINFINITY; + return eslOK; +} +/*---------------- end, p7_ViterbiFilter() ----------------------*/ + + + + +/* Function: p7_ViterbiFilter_longtarget() + * Synopsis: Finds windows within potentially long sequence blocks with Viterbi + * scores above threshold (vewy vewy fast, in limited precision) + * + * Purpose: Calculates an approximation of the Viterbi score for regions + * of sequence , using optimized profile , and a pre- + * allocated one-row DP matrix , and captures the positions + * at which such regions exceed the score required to be + * significant in the eyes of the calling function (usually + * p=0.001). + * + * The resulting landmarks are converted to subsequence + * windows by the calling function + * + * The model must be in a local alignment mode; other modes + * cannot provide the necessary guarantee of no underflow. + * + * This is a striped SIMD Viterbi implementation using Intel + * VMX integer intrinsics \citep{Farrar07}, in reduced + * precision (signed words, 16 bits). + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * filtersc - null or bias correction, required for translating a P-value threshold into a score threshold + * P - p-value below which a region is captured as being above threshold + * windowlist - RETURN: array of hit windows (start and end of diagonal) for the above-threshold areas + * + * Returns: on success; + * + * Throws: if allocation is too small, or if + * profile isn't in a local alignment mode. (Must be in local + * alignment mode because that's what helps us guarantee + * limited dynamic range.) + * + * Xref: See p7_ViterbiFilter() + */ +int +p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, + float filtersc, double P, P7_HMM_WINDOWLIST *windowlist) +{ + vector signed short mpv, dpv, ipv; /* previous row values */ + vector signed short sv; /* temp storage of 1 curr row value in progress */ + vector signed short dcv; /* delayed storage of D(i,q+1) */ + vector signed short xEv; /* E state: keeps max for Mk->E as we go */ + vector signed short xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + vector signed short Dmaxv; /* keeps track of maximum D cell on row */ + int16_t xE, xB, xC, xJ, xN; /* special states' scores */ + int16_t Dmax; /* maximum D cell score on row */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQW(om->M); /* segment length: # of vectors */ + vector signed short *dp = ox->dpw[0]; /* using {MDI}MX(q) macro requires initialization of */ + vector signed short *rsc; /* will point at om->ru[x] for residue x[i] */ + vector signed short *tsc; /* will point into (and step thru) om->tu */ + + vector signed short negInfv; + + int16_t sc_thresh; + float invP; + + int z; + union { vector signed short v; int16_t i[8]; } tmp; + windowlist->count = 0; + + /* + * In p7_ViterbiFilter, converting from a scaled int Viterbi score + * S (aka xE the score getting to state E) to a probability + * goes like this: + * vsc = S + om->xw[p7O_E][p7O_MOVE] + om->xw[p7O_C][p7O_MOVE] - om->base_w + * ret_sc /= om->scale_w; + * vsc -= 3.0; + * P = esl_gumbel_surv((vfsc - filtersc) / eslCONST_LOG2 , om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]); + * and we're computing the threshold vsc, so invert it: + * (vsc - filtersc) / eslCONST_LOG2 = esl_gumbel_invsurv( P, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]) + * vsc = filtersc + eslCONST_LOG2 * esl_gumbel_invsurv( P, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]) + * vsc += 3.0 + * vsc *= om->scale_w + * S = vsc - (float)om->xw[p7O_E][p7O_MOVE] - (float)om->xw[p7O_C][p7O_MOVE] + (float)om->base_w + */ + invP = esl_gumbel_invsurv(P, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]); + sc_thresh = (int) ceil ( ( (filtersc + (eslCONST_LOG2 * invP) + 3.0) * om->scale_w ) + - (float)om->xw[p7O_E][p7O_MOVE] - (float)om->xw[p7O_C][p7O_MOVE] + (float)om->base_w ); + + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ8) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + if (om->mode != p7_LOCAL && om->mode != p7_UNILOCAL) ESL_EXCEPTION(eslEINVAL, "Fast filter only works for local alignment"); + ox->M = om->M; + + negInfv = esl_vmx_set_s16((signed short)-32768); + + /* Initialization. In unsigned arithmetic, -infinity is -32768 + */ + for (q = 0; q < Q; q++) + MMXo(q) = IMXo(q) = DMXo(q) = negInfv; + xN = om->base_w; + xB = xN + om->xw[p7O_N][p7O_MOVE]; + xJ = -32768; + xC = -32768; + xE = -32768; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpVFRow(ox, 0, xE, 0, xJ, xB, xC); /* first 0 is : do header. second 0 is xN: always 0 here. */ +#endif + + for (i = 1; i <= L; i++) + { + rsc = om->rwv[dsq[i]]; + tsc = om->twv; + dcv = negInfv; /* "-infinity" */ + xEv = negInfv; + Dmaxv = negInfv; + xBv = esl_vmx_set_s16(xB); + + /* Right shifts by 1 value (2 bytes). 4,8,12,x becomes x,4,8,12. + * Because ia32 is littlendian, this means a left bit shift. + * Zeros shift on automatically; replace it with -32768. + */ + mpv = MMXo(Q-1); mpv = vec_sld(negInfv, mpv, 14); + dpv = DMXo(Q-1); dpv = vec_sld(negInfv, dpv, 14); + ipv = IMXo(Q-1); ipv = vec_sld(negInfv, ipv, 14); + + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = vec_adds(xBv, *tsc); tsc++; + sv = vec_max (sv, vec_adds(mpv, *tsc)); tsc++; + sv = vec_max (sv, vec_adds(ipv, *tsc)); tsc++; + sv = vec_max (sv, vec_adds(dpv, *tsc)); tsc++; + sv = vec_adds(sv, *rsc); rsc++; + xEv = vec_max(xEv, sv); + + /* Load {MDI}(i-1,q) into mpv, dpv, ipv; + * {MDI}MX(q) is then the current, not the prev row + */ + mpv = MMXo(q); + dpv = DMXo(q); + ipv = IMXo(q); + + /* Do the delayed stores of {MD}(i,q) now that memory is usable */ + MMXo(q) = sv; + DMXo(q) = dcv; + + /* Calculate the next D(i,q+1) partially: M->D only; + * delay storage, holding it in dcv + */ + dcv = vec_adds(sv, *tsc); tsc++; + Dmaxv = vec_max(dcv, Dmaxv); + + /* Calculate and store I(i,q) */ + sv = vec_adds(mpv, *tsc); tsc++; + IMXo(q)= vec_max(sv, vec_adds(ipv, *tsc)); tsc++; + } + + /* Now the "special" states, which start from Mk->E (->C, ->J->B) */ + xE = esl_vmx_hmax_s16(xEv); + + if (xE >= sc_thresh) { + //hit score threshold. Add a window to the list, then reset scores. + + /* Unpack and unstripe, then find the position responsible for the hit */ + + for (q = 0; q < Q; q++) { + tmp.v = MMXo(q); + for (z = 0; z < 8; z++) { // unstripe + if ( tmp.i[z] == xE && (q+Q*z+1) <= om->M) { + // (q+Q*z+1) is the model position k at which the xE score is found + p7_hmmwindow_new(windowlist, 0, i, i-1, (q+Q*z+1), 1, 0.0, p7_NOCOMPLEMENT, L ); + } + } + MMXo(q) = IMXo(q) = DMXo(q) = negInfv; //reset score to start search for next vit window. + } + + } else { + + xN = xN + om->xw[p7O_N][p7O_LOOP]; + xC = ESL_MAX(xC + om->xw[p7O_C][p7O_LOOP], xE + om->xw[p7O_E][p7O_MOVE]); + xJ = ESL_MAX(xJ + om->xw[p7O_J][p7O_LOOP], xE + om->xw[p7O_E][p7O_LOOP]); + xB = ESL_MAX(xJ + om->xw[p7O_J][p7O_MOVE], xN + om->xw[p7O_N][p7O_MOVE]); + /* and now xB will carry over into next i, and xC carries over after i=L */ + + /* Finally the "lazy F" loop (sensu [Farrar07]). We can often + * prove that we don't need to evaluate any D->D paths at all. + * + * The observation is that if we can show that on the next row, + * B->M(i+1,k) paths always dominate M->D->...->D->M(i+1,k) paths + * for all k, then we don't need any D->D calculations. + * + * The test condition is: + * max_k D(i,k) + max_k ( TDD(k-2) + TDM(k-1) - TBM(k) ) < xB(i) + * So: + * max_k (TDD(k-2) + TDM(k-1) - TBM(k)) is precalc'ed in om->dd_bound; + * max_k D(i,k) is why we tracked Dmaxv; + * xB(i) was just calculated above. + */ + Dmax = esl_vmx_hmax_s16(Dmaxv); + if (Dmax + om->ddbound_w > xB) + { + /* Now we're obligated to do at least one complete DD path to be sure. */ + /* dcv has carried through from end of q loop above */ + dcv = vec_sld(negInfv, dcv, 14); + tsc = om->twv + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMXo(q) = vec_max(dcv, DMXo(q)); + dcv = vec_adds(DMXo(q), *tsc); tsc++; + } + + /* We may have to do up to three more passes; the check + * is for whether crossing a segment boundary can improve + * our score. + */ + do { + dcv = vec_sld(negInfv, dcv, 14); + tsc = om->twv + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + if (! vec_any_gt(dcv, DMXo(q))) break; + DMXo(q) = vec_max(dcv, DMXo(q)); + dcv = vec_adds(DMXo(q), *tsc); tsc++; + } + } while (q == Q); + } + else /* not calculating DD? then just store the last M->D vector calc'ed.*/ + DMXo(0) = vec_sld(negInfv, dcv, 14); + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpVFRow(ox, i, xE, 0, xJ, xB, xC); +#endif + + } + } /* end loop over sequence residues 1..L */ + + + return eslOK; +} +/*---------------- end, p7_ViterbiFilter() ----------------------*/ + + + + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +#ifdef p7VITFILTER_BENCHMARK +/* -c, -x are used for debugging, testing; see msvfilter.c for explanation */ + +/* + gcc -o vitfilter_benchmark -std=gnu99 -g -Wall -maltivec -I.. -L.. -I../../easel -L../../easel -Dp7VITFILTER_BENCHMARK vitfilter.c -lhmmer -leasel -lm + icc -o vitfilter_benchmark -O3 -static -I.. -L.. -I../../easel -L../../easel -Dp7VITFILTER_BENCHMARK vitfilter.c -lhmmer -leasel -lm + + ./benchmark-vitfilter runs benchmark + ./benchmark-vitfilter -N100 -c compare scores to generic impl + ./benchmark-vitfilter -N100 -x compare scores to exact emulation + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for Viterbi filter"; + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc1, sc2; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + + if (esl_opt_GetBoolean(go, "-x")) p7_profile_SameAsVF(om, gm); + + ox = p7_omx_Create(gm->M, 0, 0); + gx = p7_gmx_Create(gm->M, L); + + /* Get a baseline time: how long it takes just to generate the sequences */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Run the benchmark */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_ViterbiFilter(dsq, L, om, ox, &sc1); + + if (esl_opt_GetBoolean(go, "-c")) + { + p7_GViterbi(dsq, L, gm, gx, &sc2); + printf("%.4f %.4f\n", sc1, sc2); + } + + if (esl_opt_GetBoolean(go, "-x")) + { + p7_GViterbi(dsq, L, gm, gx, &sc2); + sc2 /= om->scale_w; + if (om->mode == p7_UNILOCAL) sc2 -= 2.0; /* that's ~ L \log \frac{L}{L+2}, for our NN,CC,JJ */ + else if (om->mode == p7_LOCAL) sc2 -= 3.0; /* that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ */ + printf("%.4f %.4f\n", sc1, sc2); + } + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7VITFILTER_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + + + +/***************************************************************** + * 3. Unit tests. + *****************************************************************/ +#ifdef p7VITFILTER_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* ViterbiFilter() unit test + * + * We can check that scores are identical (within machine error) to + * scores of generic DP with scores rounded the same way. Do this for + * a random model of length , for test sequences of length . + * + * We assume that we don't accidentally generate a high-scoring random + * sequence that overflows ViterbiFilter()'s limited range. + * + */ +static void +utest_viterbi_filter(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *ox = p7_omx_Create(M, 0, 0); + P7_GMX *gx = p7_gmx_Create(M, L); + float sc1, sc2; + + p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om); + p7_profile_SameAsVF(om, gm); /* round and scale the scores in the same as in */ + +#if 0 + p7_oprofile_Dump(stdout, om); // dumps the optimized profile + p7_omx_SetDumpMode(stdout, ox, TRUE); // makes the fast DP algorithms dump their matrices +#endif + + while (N--) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_ViterbiFilter(dsq, L, om, ox, &sc1); + p7_GViterbi (dsq, L, gm, gx, &sc2); + +#if 0 + p7_gmx_Dump(stdout, gx, p7_DEFAULT); // dumps a generic DP matrix +#endif + + sc2 /= om->scale_w; + sc2 -= 3.0; + + if (fabs(sc1-sc2) > 0.001) esl_fatal("viterbi filter unit test failed: scores differ (%.2f, %.2f)", sc1, sc2); + } + + free(dsq); + p7_hmm_Destroy(hmm); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); +} +#endif /*p7VITFILTER_TESTDRIVE*/ + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7VITFILTER_TESTDRIVE +/* + gcc -g -Wall -maltivec -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o vitfilter_utest -Dp7VITFILTER_TESTDRIVE vitfilter.c -lhmmer -leasel -lm + ./vitfilter_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "145", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for the VMX implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* First round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + if (esl_opt_GetBoolean(go, "-v")) printf("ViterbiFilter() tests, DNA\n"); + utest_viterbi_filter(r, abc, bg, M, L, N); + utest_viterbi_filter(r, abc, bg, 1, L, 10); + utest_viterbi_filter(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + /* Second round of tests for amino alphabets. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + if (esl_opt_GetBoolean(go, "-v")) printf("ViterbiFilter() tests, protein\n"); + utest_viterbi_filter(r, abc, bg, M, L, N); + utest_viterbi_filter(r, abc, bg, 1, L, 10); + utest_viterbi_filter(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*VITFILTER_TESTDRIVE*/ +/*---------------- end, test driver -----------------------------*/ + + + +/***************************************************************** + * 5. Example + *****************************************************************/ +#ifdef p7VITFILTER_EXAMPLE +/* A minimal example. + Also useful for debugging on small HMMs and sequences. + + gcc -g -Wall -maltivec -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o vitfilter_example -Dp7VITFILTER_EXAMPLE vitfilter.c -lhmmer -leasel -lm + ./vitfilter_example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_gumbel.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in one line awkable format", 0 }, + { "-P", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output in profmark format", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of Viterbi filter algorithm"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float vfraw, nullsc, vfscore; + float graw, gscore; + double P, gP; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + /* allocate DP matrices, both a generic and an optimized one */ + ox = p7_omx_Create(gm->M, 0, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + + /* Useful to place and compile in for debugging: + p7_oprofile_Dump(stdout, om); dumps the optimized profile + p7_omx_SetDumpMode(ox, TRUE); makes the fast DP algorithms dump their matrices + p7_gmx_Dump(stdout, gx, p7_DEFAULT); dumps a generic DP matrix + */ + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) + { + p7_oprofile_ReconfigLength(om, sq->n); + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_omx_GrowTo(ox, om->M, 0, sq->n); + p7_gmx_GrowTo(gx, gm->M, sq->n); + + p7_ViterbiFilter (sq->dsq, sq->n, om, ox, &vfraw); + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + vfscore = (vfraw - nullsc) / eslCONST_LOG2; + P = esl_gumbel_surv(vfscore, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]); + + p7_GViterbi (sq->dsq, sq->n, gm, gx, &graw); + gscore = (graw - nullsc) / eslCONST_LOG2; + gP = esl_gumbel_surv(gscore, gm->evparam[p7_VMU], gm->evparam[p7_VLAMBDA]); + + if (esl_opt_GetBoolean(go, "-1")) + { + printf("%-30s\t%-20s\t%9.2g\t%7.2f\t%9.2g\t%7.2f\n", sq->name, hmm->name, P, vfscore, gP, gscore); + } + else if (esl_opt_GetBoolean(go, "-P")) + { /* output suitable for direct use in profmark benchmark postprocessors: */ + printf("%g\t%.2f\t%s\t%s\n", P, vfscore, sq->name, hmm->name); + } + else + { + printf("target sequence: %s\n", sq->name); + printf("vit filter raw score: %.2f nats\n", vfraw); + printf("null score: %.2f nats\n", nullsc); + printf("per-seq score: %.2f bits\n", vfscore); + printf("P-value: %g\n", P); + printf("GViterbi raw score: %.2f nats\n", graw); + printf("GViterbi seq score: %.2f bits\n", gscore); + printf("GViterbi P-value: %g\n", gP); + } + + esl_sq_Reuse(sq); + } + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7VITFILTER_EXAMPLE*/ +/*-------------------- end, example -----------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/impl_vmx/vitscore.c b/bioinformaticsProject/hmmer/src/impl_vmx/vitscore.c new file mode 100644 index 0000000..a51f5c2 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/impl_vmx/vitscore.c @@ -0,0 +1,553 @@ +/* Viterbi score implementation; VMX version. + * + * This is a SIMD vectorized, striped, interleaved, one-row O(M) + * memory implementation of the Viterbi algorithm, for calculating an + * accurate Viterbi score, without traceback. + * + * This implementation has full range and precision, so it may be used + * in any alignment mode (not just local), and on any target sequence + * (not excluding high-scoring ones). + * + * The optimized profile must be configured to contain lspace float + * scores, not its normal pspace float scores. + * + * Contents: + * 1. Viterbi score implementation. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + * + * SRE, Sun Aug 3 13:10:24 2008 [St. Louis] + */ +#include "p7_config.h" + +#include +#include + +#ifndef __APPLE_ALTIVEC__ +#include +#endif + +#include "easel.h" +#include "esl_vmx.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +/***************************************************************** + * 1. Viterbi score implementation + *****************************************************************/ + +/* Function: p7_ViterbiScore() + * Synopsis: Calculates Viterbi score, correctly, and vewy vewy fast. + * Incept: SRE, Tue Nov 27 09:15:24 2007 [Janelia] + * + * Purpose: Calculates the Viterbi score for sequence of length + * residues, using optimized profile , and a preallocated + * one-row DP matrix . Return the Viterbi score (in nats) + * in . + * + * The model must be configured specially to have + * lspace float scores, not its usual pspace float scores for + * . + * + * As with all <*Score()> implementations, the score is + * accurate (full range and precision) and can be + * calculated on models in any mode, not only local modes. + * + * Args: dsq - digital target sequence, 1..L + * L - length of dsq in residues + * om - optimized profile + * ox - DP matrix + * ret_sc - RETURN: Viterbi score (in nats) + * + * Returns: on success. + * + * Throws: if allocation is too small. + */ +int +p7_ViterbiScore(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc) +{ + vector float mpv, dpv, ipv; /* previous row values */ + vector float sv; /* temp storage of 1 curr row value in progress */ + vector float dcv; /* delayed storage of D(i,q+1) */ + vector float xEv; /* E state: keeps max for Mk->E as we go */ + vector float xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */ + vector float Dmaxv; /* keeps track of maximum D cell on row */ + vector float infv; /* -eslINFINITY in a vector */ + float xN, xE, xB, xC, xJ; /* special states' scores */ + float Dmax; /* maximum D cell on row */ + int i; /* counter over sequence positions 1..L */ + int q; /* counter over vectors 0..nq-1 */ + int Q = p7O_NQF(om->M); /* segment length: # of vectors */ + vector float *dp = ox->dpf[0]; /* using {MDI}MX(q) macro requires initialization of */ + vector float *rsc; /* will point at om->rf[x] for residue x[i] */ + vector float *tsc; /* will point into (and step thru) om->tf */ + + /* Check that the DP matrix is ok for us. */ + if (Q > ox->allocQ4) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small"); + ox->M = om->M; + + /* Initialization. */ + infv = esl_vmx_set_float(-eslINFINITY); + for (q = 0; q < Q; q++) + MMXo(q) = IMXo(q) = DMXo(q) = infv; + xN = 0.; + xB = om->xf[p7O_N][p7O_MOVE]; + xE = -eslINFINITY; + xJ = -eslINFINITY; + xC = -eslINFINITY; + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpFloatRow(ox, FALSE, 0, 5, 2, xE, xN, xJ, xB, xC); /* logify=FALSE, =0, width=5, precision=2*/ +#endif + + for (i = 1; i <= L; i++) + { + rsc = om->rf[dsq[i]]; + tsc = om->tf; + dcv = infv; + xEv = infv; + Dmaxv = infv; + xBv = esl_vmx_set_float(xB); + + mpv = vec_sld(infv, MMXo(Q-1), 12); /* Right shifts by 4 bytes. 4,8,12,x becomes x,4,8,12. */ + dpv = vec_sld(infv, DMXo(Q-1), 12); + ipv = vec_sld(infv, IMXo(Q-1), 12); + for (q = 0; q < Q; q++) + { + /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */ + sv = vec_add(xBv, *tsc); tsc++; + sv = vec_max(sv, vec_add(mpv, *tsc)); tsc++; + sv = vec_max(sv, vec_add(ipv, *tsc)); tsc++; + sv = vec_max(sv, vec_add(dpv, *tsc)); tsc++; + sv = vec_add(sv, *rsc); rsc++; + xEv = vec_max(xEv, sv); + + /* Load {MDI}(i-1,q) into mpv, dpv, ipv; + * {MDI}MX(q) is then the current, not the prev row + */ + mpv = MMXo(q); + dpv = DMXo(q); + ipv = IMXo(q); + + /* Do the delayed stores of {MD}(i,q) now that memory is usable */ + MMXo(q) = sv; + DMXo(q) = dcv; + + /* Calculate the next D(i,q+1) partially: M->D only; + * delay storage, holding it in dcv + */ + dcv = vec_add(sv, *tsc); tsc++; + Dmaxv = vec_max(dcv, Dmaxv); + + /* Calculate and store I(i,q) */ + sv = vec_add(mpv, *tsc); tsc++; + sv = vec_max(sv, vec_add(ipv, *tsc)); tsc++; + IMXo(q) = vec_add(sv, *rsc); rsc++; + } + + /* Now the "special" states, which start from Mk->E (->C, ->J->B) */ + xE = esl_vmx_hmax_float(xEv); + xN = xN + om->xf[p7O_N][p7O_LOOP]; + xC = ESL_MAX(xC + om->xf[p7O_C][p7O_LOOP], xE + om->xf[p7O_E][p7O_MOVE]); + xJ = ESL_MAX(xJ + om->xf[p7O_J][p7O_LOOP], xE + om->xf[p7O_E][p7O_LOOP]); + xB = ESL_MAX(xJ + om->xf[p7O_J][p7O_MOVE], xN + om->xf[p7O_N][p7O_MOVE]); + /* and now xB will carry over into next i, and xC carries over after i=L */ + + /* Finally the "lazy F" loop (sensu [Farrar07]). We can often + * prove that we don't need to evaluate any D->D paths at all. + * + * The observation is that if we can show that on the next row, + * B->M(i+1,k) paths always dominate M->D->...->D->M(i+1,k) paths + * for all k, then we don't need any D->D calculations. + * + * The test condition is: + * max_k D(i,k) + max_k ( TDD(k-2) + TDM(k-1) - TBM(k) ) < xB(i) + * So: + * max_k (TDD(k-2) + TDM(k-1) - TBM(k)) is precalc'ed in om->dd_bound; + * max_k D(i,k) is why we tracked Dmaxv; + * xB(i) was just calculated above. + */ + Dmax = esl_vmx_hmax_float(Dmaxv); + if (Dmax + om->ddbound_f > xB) + { + /* Now we're obligated to do at least one complete DD path to be sure. */ + /* dcv has carried through from end of q loop above */ + dcv = vec_sld(infv, dcv, 12); + tsc = om->tf + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + DMXo(q) = vec_max(dcv, DMXo(q)); + dcv = vec_add(DMXo(q), *tsc); tsc++; + } + + /* We may have to do up to three more passes; the check + * is for whether crossing a segment boundary can improve + * our score. + */ + do { + dcv = vec_sld(infv, dcv, 12); + tsc = om->tf + 7*Q; /* set tsc to start of the DD's */ + for (q = 0; q < Q; q++) + { + if (! vec_any_gt(dcv, DMXo(q))) break; + DMXo(q) = vec_max(dcv, DMXo(q)); + dcv = vec_add(DMXo(q), *tsc); tsc++; + } + } while (q == Q); + } + else + { /* not calculating DD? then just store that last MD vector we calc'ed. */ + dcv = vec_sld(infv, dcv, 12); + DMXo(0) = dcv; + } + +#if eslDEBUGLEVEL > 0 + if (ox->debugging) p7_omx_DumpFloatRow(ox, FALSE, i, 5, 2, xE, xN, xJ, xB, xC); /* logify=FALSE, =i, width=5, precision=2*/ +#endif + } /* end loop over sequence residues 1..L */ + + /* finally C->T */ + *ret_sc = xC + om->xf[p7O_C][p7O_MOVE]; + return eslOK; +} +/*------------------ end, p7_ViterbiScore() ---------------------*/ + + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +#ifdef p7VITSCORE_BENCHMARK +/* -c, -x are used for debugging, testing. See msvfilter.c for + * an explanation. Here -c and -x are the same: both compare + * to p7_GViterbi() scores. + */ +/* + gcc -o benchmark-vitscore -std=gnu99 -g -Wall -maltivec -I.. -L.. -I../../easel -L../../easel -Dp7VITSCORE_BENCHMARK vitscore.c -lhmmer -leasel -lm + icc -o benchmark-vitscore -O3 -static -I.. -L.. -I../../easel -L../../easel -Dp7VITSCORE_BENCHMARK vitscore.c -lhmmer -leasel -lm + + ./benchmark-vitscore runs benchmark + ./benchmark-vitscore -N100 -c compare scores to generic impl + ./benchmark-vitscore -N100 -x equate scores to exact emulation + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-x", "compare scores to generic implementation (debug)", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-c", "equate scores to trusted implementation (debug)", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for VMX ViterbiScore()"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + int i; + float sc1, sc2; + double base_time, bench_time, Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, L); + p7_oprofile_Logify(om); + + ox = p7_omx_Create(gm->M, 0, 0); + gx = p7_gmx_Create(gm->M, L); + + /* Get a baseline time: how long it takes just to generate the sequences */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + esl_stopwatch_Stop(w); + base_time = w->user; + + /* Run the benchmark */ + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_ViterbiScore (dsq, L, om, ox, &sc1); + + if (esl_opt_GetBoolean(go, "-c") || esl_opt_GetBoolean(go, "-x")) + { + p7_GViterbi(dsq, L, gm, gx, &sc2); + printf("%.4f %.4f\n", sc1, sc2); + } + } + esl_stopwatch_Stop(w); + bench_time = w->user - base_time; + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7VITSCORE_BENCHMARK*/ +/*------------------- end, benchmark driver ---------------------*/ + + + +/***************************************************************** + * 3. Unit tests. + *****************************************************************/ +#ifdef p7VITSCORE_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* ViterbiScore() unit test + * + * We can compare these scores to GViterbi() almost exactly; the only + * differences should be negligible roundoff errors. Must convert + * the optimized profile to lspace, though, rather than pspace. + */ +static void +utest_viterbi_score(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, int M, int L, int N) +{ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + P7_OMX *ox = p7_omx_Create(M, 0, 0); + P7_GMX *gx = p7_gmx_Create(M, L); + float sc1, sc2; + + p7_oprofile_Sample(r, abc, bg, M, L, &hmm, &gm, &om); + p7_oprofile_Logify(om); + while (N--) + { + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + + p7_ViterbiScore(dsq, L, om, ox, &sc1); + p7_GViterbi (dsq, L, gm, gx, &sc2); + + if (fabs(sc1-sc2) > 0.001) esl_fatal("viterbi score unit test failed: scores differ"); + } + + free(dsq); + p7_hmm_Destroy(hmm); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); +} +#endif /*p7VITSCORE_TESTDRIVE*/ +/*-------------------- end, unit tests --------------------------*/ + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7VITSCORE_TESTDRIVE +/* + gcc -g -Wall -maltivec -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o vitscore_utest -Dp7VITSCORE_TESTDRIVE vitscore.c -lhmmer -leasel -lm + ./vitscore_utest + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "size of random sequences to sample", 0 }, + { "-M", eslARG_INT, "145", NULL, NULL, NULL, NULL, NULL, "size of random models to sample", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of random sequences to sample", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for the VMX implementation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + + /* First round of tests for DNA alphabets. */ + if ((abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_viterbi_score(r, abc, bg, M, L, N); + utest_viterbi_score(r, abc, bg, 1, L, 10); + utest_viterbi_score(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + /* Second round of tests for amino alphabets. */ + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model"); + + utest_viterbi_score(r, abc, bg, M, L, N); + utest_viterbi_score(r, abc, bg, 1, L, 10); + utest_viterbi_score(r, abc, bg, M, 1, 10); + + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*VITSCORE_TESTDRIVE*/ +/*--------------------- end, test driver ------------------------*/ + + +/***************************************************************** + * 5. Example + *****************************************************************/ +#ifdef p7VITSCORE_EXAMPLE +/* A minimal example. + Also useful for debugging on small HMMs and sequences. + + gcc -g -Wall -maltivec -std=gnu99 -I.. -L.. -I../../easel -L../../easel -o example -Dp7VITSCORE_EXAMPLE vitscore.c -lhmmer -leasel -lm + ./example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" +#include "impl_vmx.h" + +int +main(int argc, char **argv) +{ + char *hmmfile = argv[1]; + char *seqfile = argv[2]; + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *ox = NULL; + P7_GMX *gx = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + float sc; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + + /* create default null model, then create and optimize profile */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_Logify(om); + + /* allocate DP matrices, both a generic and an optimized one */ + ox = p7_omx_Create(gm->M, 0, sq->n); + gx = p7_gmx_Create(gm->M, sq->n); + + /* Useful to place and compile in for debugging: + p7_oprofile_Dump(stdout, om); dumps the optimized profile + p7_omx_SetDumpMode(ox, TRUE); makes the fast DP algorithms dump their matrices + p7_gmx_Dump(stdout, gx, p7_DEFAULT); dumps a generic DP matrix + */ + + p7_ViterbiScore(sq->dsq, sq->n, om, ox, &sc); printf("viterbi score (VMX): %.2f nats\n", sc); + p7_GViterbi (sq->dsq, sq->n, gm, gx, &sc); printf("viterbi (generic): %.2f nats\n", sc); + + /* now in a real app, you'd need to convert raw nat scores to final bit + * scores, by subtracting the null model score and rescaling. + */ + + /* cleanup */ + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_omx_Destroy(ox); + p7_gmx_Destroy(gx); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + return 0; +} +#endif /*p7VITSCORE_EXAMPLE*/ +/*-------------------------- end, example ------------------------------*/ + diff --git a/bioinformaticsProject/hmmer/src/itest_brute.c b/bioinformaticsProject/hmmer/src/itest_brute.c new file mode 100644 index 0000000..ef90646 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/itest_brute.c @@ -0,0 +1,591 @@ +/* The "brute" integration test. + * + * Create an entirely hand-specified profile HMM from given + * parameters; enumerate all paths and calculate either the sum + * (Forward score) or max (Viterbi score). Compare this to + * and results. + * + * The test exercises all possible transitions in a model. The model + * is M=3 because this is the minimum model size that can use a D->D + * transition in the search profile (D2->D3; D1 isn't in a profile). + * The target sequences go up to L=4 because this is the minimum + * length that uses an I->I transition. + * + * To see the models and paths drawn out by hand, xref J1/106-109. + * + * Besides the hand-specified model, the integration test samples many + * more "brute" HMMs randomly, peppering them with zero probability + * transitions where possible. + * + * Viterbi scores (hand enumerated vs. GViterbi()) should match + * exactly (within machine precision). Forward scores should match + * "closely", with some error introduced by the discretization in + * FLogsum()'s table lookup. + * + * This is an important test of correctness for the generic Viterbi + * and Forward implementations. Optimized implementations (impl_sse, + * etc) are then verified against the generic implementations. + * + * SRE, Tue Jul 17 08:17:36 2007 [Janelia] + * xref J1/106-109: original implementation + * xref J5/118: revival; brought up to date with H3's assumptions of zero insert scores. + */ + +/* gcc -std=c99 -g -Wall -I. -I../easel -L. -L../easel -o itest_brute itest_brute.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_dirichlet.h" +#include "esl_getopts.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save each tested HMM to file ", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of randomly sampled HMMs", 0 }, + { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "the brute force HMM integration test"; + +struct p7_bruteparam_s { + double a; /* hmm->t[0][p7H_MM] */ + double b; /* hmm->t[1][p7H_MM] */ + double c; /* hmm->t[2][p7H_MM] */ + double d; /* hmm->t[3][p7H_MM] */ + double e; /* hmm->t[0][p7H_MI] */ + double f; /* hmm->t[1][p7H_MI] */ + double g; /* hmm->t[2][p7H_MI] */ + double h; /* hmm->t[3][p7H_MI] */ + double i; /* hmm->t[1][p7H_IM] */ + double j; /* hmm->t[2][p7H_IM] */ + double k; /* hmm->t[3][p7H_IM] */ + double l; /* hmm->t[1][p7H_DD] */ + double m; /* hmm->t[2][p7H_DD] */ + + double n; /* N->B exp(gm->xsc[p7P_N][p7P_MOVE]) */ + double p; /* E->C exp(gm->xsc[p7P_E][p7P_MOVE]) */ + double q; /* C->T exp(gm->xsc[p7P_C][p7P_MOVE]) */ + double r; /* J->B exp(gm->xsc[p7P_J][p7P_MOVE]) */ + + double alpha; /* hmm->mat[k][A] emission for all match states */ + double beta; /* hmm->ins[k][A] emission for all insert states */ + + double begin[4]; /* constructed from transitions when brute profile is configured. */ + double end; /* internal ends, set when profile is configured */ +}; + +static void set_bruteparams(struct p7_bruteparam_s *prm); +static void sample_zeropeppered_probvector(ESL_RANDOMNESS *r, double *p, int n); +static void sample_bruteparams(ESL_RANDOMNESS *r, struct p7_bruteparam_s *prm); +static P7_HMM *create_brute_hmm(ESL_ALPHABET *abc, struct p7_bruteparam_s *prm); +static P7_PROFILE *create_brute_profile(struct p7_bruteparam_s *prm, P7_HMM *hmm, P7_BG *bg, int do_local); +static double score_brute_profile(struct p7_bruteparam_s *prm, P7_BG *bg, int do_viterbi, double sc[5]); + +int +main(int argc, char **argv) +{ + struct p7_bruteparam_s prm; + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_ALPHABET *abc = esl_alphabet_Create(eslDNA); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + P7_BG *bg = p7_bg_Create(abc); + P7_GMX *gx = p7_gmx_Create(3, 4); /* M=3, L up to 4. */ + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + char *hmmfile = esl_opt_GetString (go, "-o"); + int N = esl_opt_GetInteger(go, "-N"); + int do_local; + double brute_fwd[5]; /* lod Forward scores for seqs L=0..4 calculated by brute force path enumeration */ + double brute_vit[5]; /* lod Viterbi scores for seqs L=0..4 calculated by brute force path enumeration */ + float fsc[5]; /* lod scores for seqs L=0..4 calculated by GForward() DP */ + float vsc[5]; /* lod scores for seqs L=0..4 calculated by GViterbi() DP */ + ESL_DSQ dsq[6]; + int L; + int i,j; + float vprecision, fprecision; /* expected bound on absolute accuracy for viterbi, forward */ + + p7_FLogsumInit(); + + for (do_local = 0; do_local <= 1; do_local++) /* run tests in both glocal and local mode */ + for (j = 0; j <= N; j++) /* #0 = fixed params; #1..N = sampled params */ + { + if (esl_opt_GetBoolean(go, "-v")) + printf("%s\n", do_local ? "Local mode (implicit model)" : "Glocal mode (wing retracted)"); + + if (j == 0) set_bruteparams(&prm); + else sample_bruteparams(r, &prm); + + hmm = create_brute_hmm(abc, &prm); + gm = create_brute_profile(&prm, hmm, bg, do_local); + score_brute_profile(&prm, bg, TRUE, brute_vit); + score_brute_profile(&prm, bg, FALSE, brute_fwd); + + if (hmmfile) + { + FILE *ofp = fopen(hmmfile, "w"); + p7_hmmfile_WriteASCII(ofp, -1, hmm); + fclose(ofp); + } + + for (L = 0; L <= 4; L++) + { + p7_gmx_GrowTo(gx, 3, L); + + dsq[0] = dsq[L+1] = eslDSQ_SENTINEL; /* Initialize dsq of length L at 0000... (all A) */ + for (i = 1; i <= L; i++) dsq[i] = 0; + + if (p7_GViterbi(dsq, L, gm, gx, &(vsc[L])) != eslOK) esl_fatal("viterbi failed"); + + if (esl_opt_GetBoolean(go, "--vv")) + p7_gmx_Dump(stdout, gx, p7_DEFAULT); + p7_gmx_Reuse(gx); + + p7_gmx_GrowTo(gx, 3, L); + if (p7_GForward(dsq, L, gm, gx, &(fsc[L])) != eslOK) esl_fatal("forward failed"); + if (esl_opt_GetBoolean(go, "--vv")) + p7_gmx_Dump(stdout, gx, p7_DEFAULT); + p7_gmx_Reuse(gx); + + vprecision = 1e-4; /* default impl uses fp, should be accurate within machine precision */ + fprecision = 0.01; /* default impl uses FLogsum, tolerate e^0.1 ~= 1% error in Forward probs */ + + + if (esl_opt_GetBoolean(go, "-v")) + printf("%d %-6s %6s %1d %8.4f %8.4f %8.4f %8.4f\n", + j, + do_local ? "local" : "glocal", + (j > 0) ? "random": "fixed", + L, + brute_fwd[L], fsc[L], + brute_vit[L], vsc[L]); + + + if (fabs(vsc[L] - brute_vit[L]) > vprecision) + esl_fatal("Viterbi scores mismatched: %-6s %s L=%1d brute=%8.4f GViterbi()=%8.4f (difference %g)", + do_local ? "local" : "glocal", + (j > 0) ? "random": "fixed", + L, + brute_vit[L], vsc[L], fabs(brute_vit[L] - vsc[L])); + + /* verify that Forward scores match closely (within error introduced by FLogsum() */ + if (fabs(fsc[L] - brute_fwd[L]) > fprecision) + esl_fatal("Forward scores mismatched: %-6s %s L=%1d brute=%8.4f GForward()=%8.4f", + do_local ? "local" : "glocal", + (j > 0) ? "random": "fixed", + L, + brute_fwd[L], fsc[L]); + + + } + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); + } + + p7_gmx_Destroy(gx); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + + printf("ok\n"); + return 0; +} + + +static void +set_bruteparams(struct p7_bruteparam_s *prm) +{ + prm->a = 0.8; /* hmm->t[0][p7H_MM] */ + prm->b = 0.7; /* hmm->t[1][p7H_MM] */ + prm->c = 0.1; /* hmm->t[2][p7H_MM] */ + prm->d = 0.6; /* hmm->t[3][p7H_MM] */ + prm->e = 0.05; /* hmm->t[0][p7H_MI] */ + prm->f = 0.2; /* hmm->t[1][p7H_MI] */ + prm->g = 0.88; /* hmm->t[2][p7H_MI] */ + prm->h = 0.90; /* hmm->t[0][p7H_IM] */ + prm->i = 0.92; /* hmm->t[1][p7H_IM] */ + prm->j = 0.94; /* hmm->t[2][p7H_IM] */ + prm->k = 0.96; /* hmm->t[3][p7H_IM] */ + prm->l = 0.57; /* hmm->t[1][p7H_DD] */ + prm->m = 0.59; /* hmm->t[2][p7H_DD] */ + +#if 0 + /* Setting n,p,q,r to 1.0 makes the core model account + * for the entire target seq: <= 19 paths are possible, + * SNB->core->ECT. + */ + prm->n = 1.0; /* N->B exp(gm->xsc[p7P_N][p7P_MOVE]) */ + prm->p = 1.0; /* E->C exp(gm->xsc[p7P_E][p7P_MOVE]) */ + prm->q = 1.0; /* C->T exp(gm->xsc[p7P_C][p7P_MOVE]) */ + prm->r = 1.0; /* J->B exp(gm->xsc[p7P_J][p7P_MOVE]) */ +#endif + + prm->n = 0.41; /* N->B exp(gm->xsc[p7P_N][p7P_MOVE]) */ + prm->p = 0.43; /* E->C exp(gm->xsc[p7P_E][p7P_MOVE]) */ + prm->q = 0.45; /* C->T exp(gm->xsc[p7P_C][p7P_MOVE]) */ + prm->r = 0.47; /* J->B exp(gm->xsc[p7P_J][p7P_MOVE]) */ + + prm->alpha = 0.7; /* hmm->mat[k][A] for all k */ + prm->beta = 0.25; /* hmm->ins[k][A] for all k [MUST be 0.25, equal to background; H3 assumes insert score 0; xref J5/118 */ + return; +} + + +static void +sample_zeropeppered_probvector(ESL_RANDOMNESS *r, double *p, int n) +{ + esl_dirichlet_DSampleUniform(r, n, p); + if (esl_rnd_Roll(r, 2)) /* coin flip */ + { + p[esl_rnd_Roll(r, n)] = 0.0; + esl_vec_DNorm(p, n); + } +} + + +static void +sample_bruteparams(ESL_RANDOMNESS *r, struct p7_bruteparam_s *prm) +{ + double tmp[3]; + + /* make sure we can get M->M w/ nonzero prob, but pepper zeros elsewhere */ + do { sample_zeropeppered_probvector(r, tmp, 3); prm->a = tmp[0]; prm->e = tmp[1]; } while (prm->a == 0.0); + do { sample_zeropeppered_probvector(r, tmp, 3); prm->b = tmp[0]; prm->f = tmp[1]; } while (prm->b == 0.0); + do { sample_zeropeppered_probvector(r, tmp, 3); prm->c = tmp[0]; prm->g = tmp[1]; } while (prm->c == 0.0); + do { sample_zeropeppered_probvector(r, tmp, 2); prm->d = tmp[0]; } while (prm->d == 0.0); + + /* pepper any D, I transition. [3][II] cannot be 1.0 (k param)*/ + sample_zeropeppered_probvector(r, tmp, 2); prm->h = tmp[0]; + sample_zeropeppered_probvector(r, tmp, 2); prm->i = tmp[0]; + sample_zeropeppered_probvector(r, tmp, 2); prm->j = tmp[0]; + do { sample_zeropeppered_probvector(r, tmp, 2); prm->k = tmp[0]; } while (prm->k == 1.0); + sample_zeropeppered_probvector(r, tmp, 2); prm->l = tmp[0]; + sample_zeropeppered_probvector(r, tmp, 2); prm->m = tmp[0]; + + /* make sure N,E,C move probs are nonzero, pepper otherwise */ + do { sample_zeropeppered_probvector(r, tmp, 2); prm->n = tmp[0]; } while (prm->n == 0.0); + do { sample_zeropeppered_probvector(r, tmp, 2); prm->p = tmp[0]; } while (prm->p == 0.0); + do { sample_zeropeppered_probvector(r, tmp, 2); prm->q = tmp[0]; } while (prm->q == 0.0); + + /* J can be peppered */ + sample_zeropeppered_probvector(r, tmp, 2); prm->r = tmp[0]; + + /* make sure x=A emissions for match, insert are nonzero */ + prm->alpha = esl_rnd_UniformPositive(r); + prm->beta = 0.25; /* MUST match background; H3 assumes isc=0; xref J5/118 */ + return; +} + +/* 1.0-a-b operations below can result in -epsilon or +epsilon. Round these to 0. */ +static float zerofy(float p) { return (p < 1e-6) ? 0.0 : p; } + +static P7_HMM * +create_brute_hmm(ESL_ALPHABET *abc, struct p7_bruteparam_s *prm) +{ + P7_HMM *hmm = NULL; + int M = 3; + int k; + char *logmsg = "[test created by create_brute_hmm()]"; + if (abc->type != eslDNA) esl_fatal("brute hmm uses DNA alphabet"); + + + hmm = p7_hmm_Create(M, abc); + hmm->t[0][p7H_MM] = prm->a; + hmm->t[0][p7H_MI] = prm->e; + hmm->t[0][p7H_MD] = zerofy(1.0 - (prm->a+prm->e)); + hmm->t[0][p7H_IM] = prm->h; + hmm->t[0][p7H_II] = zerofy(1.0 - prm->h); + hmm->t[0][p7H_DM] = 1.0; /* D0 doesn't exist; 1.0 is a convention */ + hmm->t[0][p7H_DD] = 0.0; /* D0 doesn't exist; 0.0 is a convention */ + hmm->t[1][p7H_MM] = prm->b; + hmm->t[1][p7H_MI] = prm->f; + hmm->t[1][p7H_MD] = zerofy(1.0 - (prm->b+prm->f)); + hmm->t[1][p7H_IM] = prm->i; + hmm->t[1][p7H_II] = zerofy(1.0 - prm->i); + hmm->t[1][p7H_DM] = zerofy(1.0 - prm->l); + hmm->t[1][p7H_DD] = prm->l; + hmm->t[2][p7H_MM] = prm->c; + hmm->t[2][p7H_MI] = prm->g; + hmm->t[2][p7H_MD] = zerofy(1.0 - (prm->c+prm->g)); + hmm->t[2][p7H_IM] = prm->j; + hmm->t[2][p7H_II] = zerofy(1.0 - prm->j); + hmm->t[2][p7H_DM] = zerofy(1.0 - prm->m); + hmm->t[2][p7H_DD] = prm->m; + hmm->t[3][p7H_MM] = prm->d; /* M3->E */ + hmm->t[3][p7H_MI] = zerofy(1.0 - prm->d); + hmm->t[3][p7H_MD] = 0.0; /* no D_M+1 state to move to */ + hmm->t[3][p7H_IM] = prm->k; + hmm->t[3][p7H_II] = zerofy(1.0 - prm->k); + hmm->t[3][p7H_DM] = 1.0; /* forced transition to E */ + hmm->t[3][p7H_DD] = 0.0; + + for (k = 1; k <= M; k++) { + esl_vec_FSet(hmm->mat[k], abc->K, (1.0-prm->alpha)/(float)(abc->K-1)); + hmm->mat[k][0] = prm->alpha; + } + for (k = 0; k <= M; k++) { + esl_vec_FSet(hmm->ins[k], abc->K, (1.0-prm->beta)/(float)(abc->K-1)); + hmm->ins[k][0] = prm->beta; + } + + /* Add mandatory annotation */ + p7_hmm_SetName(hmm, "itest-brute"); + p7_hmm_AppendComlog(hmm, 1, &logmsg); + hmm->nseq = 0; + hmm->eff_nseq = 0; + p7_hmm_SetCtime(hmm); + p7_hmm_SetConsensus(hmm, NULL); + hmm->checksum = 0; + + return hmm; +} + + +static P7_PROFILE * +create_brute_profile(struct p7_bruteparam_s *prm, P7_HMM *hmm, P7_BG *bg, int do_local) +{ + P7_PROFILE *gm = NULL; + double occ[4], Z; + + gm = p7_profile_Create(hmm->M, hmm->abc); + + if (do_local) p7_ProfileConfig(hmm, bg, gm, 100, p7_UNILOCAL); /* only local vs. glocal matters... */ + else p7_ProfileConfig(hmm, bg, gm, 100, p7_UNIGLOCAL); /* all else will be replaced. */ + + if (do_local) + { /* local modes: uniform but weighted by match occupancy; + * occ[k] / \sum_i occ[i] * (M-k+1), which + * reduces to uniform 2/(M(M+1)) for uniform match occupancy + */ + occ[1] = prm->a+prm->e; + occ[2] = occ[1] * (prm->b+prm->f) + zerofy(1.0-occ[1]) * zerofy(1.0-prm->l); + occ[3] = occ[2] * (prm->c+prm->g) + zerofy(1.0-occ[2]) * zerofy(1.0-prm->m); + Z = occ[1] * 3.0 + occ[2] * 2.0 + occ[3]; + prm->begin[1] = occ[1] / Z; + prm->begin[2] = occ[2] / Z; + prm->begin[3] = occ[3] / Z; + prm->end = 1.0; + } + else + { /* glocal modes: right wing retraction and no internal exit */ + prm->begin[1] = (prm->a + prm->e); + prm->begin[2] = zerofy(1. - (prm->a+prm->e)) * zerofy(1.-prm->l); + prm->begin[3] = zerofy(1. - (prm->a+prm->e)) * prm->l * zerofy(1.-prm->m); + prm->end = 0.0; + } + + /* Replace profile's configured length and multihit modeling. */ + gm->xsc[p7P_N][p7P_MOVE] = log(prm->n); + gm->xsc[p7P_N][p7P_LOOP] = log(zerofy(1. - prm->n)); + gm->xsc[p7P_E][p7P_MOVE] = log(prm->p); + gm->xsc[p7P_E][p7P_LOOP] = log(zerofy(1. - prm->p)); + gm->xsc[p7P_C][p7P_MOVE] = log(prm->q); + gm->xsc[p7P_C][p7P_LOOP] = log(zerofy(1. - prm->q)); + gm->xsc[p7P_J][p7P_MOVE] = log(prm->r); + gm->xsc[p7P_J][p7P_LOOP] = log(zerofy(1. - prm->r)); + + return gm; +} + + +/* score_brute_profile() enumerates all paths combinatorially, and + * calculates their Forward or Viterbi probabilities either by summing + * or by max, for A* (polyA) sequences of lengths 0..4. + */ +static double +score_brute_profile(struct p7_bruteparam_s *prm, P7_BG *bg, int do_viterbi, double sc[5]) +{ + double b = prm->b; + double c = prm->c; + double f = prm->f; + double g = prm->g; + double i = prm->i; + double j = prm->j; + double m = prm->m; + double n = prm->n; + double p = prm->p; + double q = prm->q; + double r = prm->r; + double msc = prm->alpha / (double) bg->f[0]; + double isc = prm->beta / (double) bg->f[0]; + + double cp[19]; /* odds of 19 possible paths through core model */ + double cL[5]; /* summed odds of core model accounting for seq of length 0..4 */ + double jp[21]; /* odds of 21 possible paths using core model and J state */ + double jL[5]; /* summed odds of core+J accounting for seq of length 0..4 */ + double ap[10]; /* odds of 10 possible paths through flanking states, accounting for 0..3 residues */ + double aL[4]; /* summed odds of flanks accounting for 0..3 residues */ + + + /* 1. There are 19 possible paths that up to L=4 residues can align + to the core model. + */ + cp[0] = msc * prm->begin[1] * prm->end; /* B M1 E (L=1) */ + cp[1] = msc * prm->begin[2] * prm->end; /* B M2 E (L=1) */ + cp[2] = msc * prm->begin[3]; /* B M3 E (L=1) */ + cp[3] = msc * prm->begin[1] * zerofy(1. - (b+f)) * prm->end;/* B M1 D2 E (L=1) */ + cp[4] = msc * prm->begin[2] * zerofy(1. - (c+g)); /* B M2 D3 E (L=1) */ + cp[5] = msc * prm->begin[1] * zerofy(1. - (b+f)) * m; /* B M1 D2 D3 E (L=1) */ + + cp[6] = msc * msc * prm->begin[1] * b * prm->end; /* B M1 M2 E (L=2) */ + cp[7] = msc * msc * prm->begin[2] * c; /* B M2 M3 E (L=2) */ + cp[8] = msc * msc * prm->begin[1] * b * zerofy(1.-(c+g)); /* B M1 M2 D3 E (L=2) */ + cp[9] = msc * msc * prm->begin[1] * zerofy(1.-(b+f)) * zerofy(1.-m); /* B M1 D2 M3 E (L=2) */ + + cp[10]= msc * msc * msc * prm->begin[1] * b * c; /* B M1 M2 M3 E (L=3) */ + cp[11]= msc * isc * msc * prm->begin[1] * f * i * zerofy(1.-(c+g)); /* B M1 I1 M2 D3 E (L=3) */ + cp[12]= msc * isc * msc * prm->begin[1] * f * i * prm->end; /* B M1 I1 M2 E (L=3) */ + cp[13]= msc * isc * msc * prm->begin[2] * g * j; /* B M2 I2 M3 E (L=3) */ + + cp[14] = msc * isc * msc * msc * prm->begin[1] * f * i * c; /* B M1 I1 M2 M3 E (L=4) */ + cp[15] = msc * isc * isc * msc * prm->begin[1] * f * zerofy(1.-i) * i * zerofy(1.-(c+g)); /* B M1 I1 I1 M2 D3 E (L=4) */ + cp[16] = msc * msc * isc * msc * prm->begin[1] * b * g * j; /* B M1 M2 I2 M3 E (L=4) */ + cp[17] = msc * isc * isc * msc * prm->begin[1] * f * zerofy(1.-i) * i * prm->end; /* B M1 I1 I1 M2 E (L=4) */ + cp[18] = msc * isc * isc * msc * prm->begin[2] * g * zerofy(1.-j) * j; /* B M2 I2 I2 M3 E (L=4) */ + + /* 2. Sum or max the total probability of L={1..4} aligned to one pass + through the core model + */ + if (do_viterbi) + { + cL[0] = 0.0; + cL[1] = esl_vec_DMax(cp, 6); + cL[2] = esl_vec_DMax(cp+6, 4); + cL[3] = esl_vec_DMax(cp+10, 4); + cL[4] = esl_vec_DMax(cp+14, 5); + } + else + { + cL[0] = 0.0; + cL[1] = esl_vec_DSum(cp, 6); + cL[2] = esl_vec_DSum(cp+6, 4); + cL[3] = esl_vec_DSum(cp+10, 4); + cL[4] = esl_vec_DSum(cp+14, 5); + } + + /* 3. J state introduces a combiexplosion of paths accounting for + * jL={1..4} total residues in one or more passes through the + * core model: 21 such paths. + */ + jp[0] = cL[4]; /* B [4] E (jL=4, 0 in J) */ + jp[1] = cL[3] * zerofy(1.-p) * r * cL[1]; /* B [3] J [1] E (jL=4, 0 in J) */ + jp[2] = cL[2] * zerofy(1.-p) * r * cL[2]; /* B [2] J [2] E (jL=4, 0 in J) */ + jp[3] = cL[2] * zerofy(1.-p) * r * cL[1] * zerofy(1.-p) * r * cL[1]; /* B [2] J [1] J [1] E (jL=4, 0 in J) */ + jp[4] = cL[1] * zerofy(1.-p) * r * cL[3]; /* B [1] J [3] E (jL=4, 0 in J) */ + jp[5] = cL[1] * zerofy(1.-p) * r * cL[2] * zerofy(1.-p) * r * cL[1]; /* B [1] J [2] J [1] E (jL=4, 0 in J) */ + jp[6] = cL[1] * zerofy(1.-p) * r * cL[1] * zerofy(1.-p) * r * cL[2]; /* B [1] J [1] J [2] E (jL=4, 0 in J) */ + jp[7] = cL[1] * zerofy(1.-p) * r * cL[1] * zerofy(1.-p) * r * cL[1] * zerofy(1.-p) * r * cL[1]; /* B [1] J [1] J [1] J [1] E (jL=4, 0 in J) */ + jp[8] = cL[2] * zerofy(1.-p) * zerofy(1.-r) * r * cL[1]; /* B [2] JJ [1] E (jL=4, 1 in J) */ + jp[9] = cL[1] * zerofy(1.-p) * zerofy(1.-r) * r * cL[2]; /* B [1] JJ [2] E (jL=4, 1 in J) */ + jp[10] = cL[1] * zerofy(1.-p) * zerofy(1.-r) * r * cL[1] * zerofy(1.-p) * r * cL[1]; /* B [1] JJ [1] J [1] E (jL=4, 1 in J) */ + jp[11] = cL[1] * zerofy(1.-p) * r * cL[1] * zerofy(1.-p) * zerofy(1.-r) * r * cL[1]; /* B [1] J [1] JJ [1] E (jL=4, 1 in J) */ + jp[12] = cL[1] * zerofy(1.-p) * zerofy(1.-r) * zerofy(1.-r) * r * cL[1]; /* B [1] JJJ [1] E (jL=4, 2 in J) */ + + jp[13] = cL[3]; /* B [3] E (jL=3, 0 in J) */ + jp[14] = cL[2] * zerofy(1.-p) * r * cL[1]; /* B [2] J [1] E (jL=3, 0 in J) */ + jp[15] = cL[1] * zerofy(1.-p) * r * cL[2]; /* B [1] J [2] E (jL=3, 0 in J) */ + jp[16] = cL[1] * zerofy(1.-p) * r * cL[1] * zerofy(1.-p) * r * cL[1]; /* B [1] J [1] J [1] E (jL=3, 0 in J) */ + jp[17] = cL[1] * zerofy(1.-p) * zerofy(1.-r) * r * cL[1]; /* B [1] JJ [1] E (jL=3, 1 in J) */ + + jp[18] = cL[2]; /* B [2] E (jL=2, 0 in J) */ + jp[19] = cL[1] * zerofy(1.-p) * r * cL[1]; /* B [1] J [1] E (jL=2, 0 in J) */ + + jp[20] = cL[1]; /* B [1] E (jL=1, 0 in J) */ + + /* 4. Sum or max the total path probability of jL={1..4} + */ + if (do_viterbi) + { + jL[0] = 0.; + jL[1] = jp[20]; + jL[2] = esl_vec_DMax(jp + 18, 2); + jL[3] = esl_vec_DMax(jp + 13, 5); + jL[4] = esl_vec_DMax(jp, 13); + } + else + { + jL[0] = 0.; + jL[1] = jp[20]; + jL[2] = esl_vec_DSum(jp + 18, 2); + jL[3] = esl_vec_DSum(jp + 13, 5); + jL[4] = esl_vec_DSum(jp, 13); + } + + /* 5. The total probability, including SNB...ECJ flanks, accounts for + * 10 possible paths accounting for 0..3 residues in the flanks. + */ + ap[0] = n * p * q; + ap[1] = zerofy(1.-n) * n * p * q; + ap[2] = n * p * zerofy(1.-q) * q; + ap[3] = zerofy(1.-n) * zerofy(1.-n) * n * p * q; + ap[4] = zerofy(1.-n) * n * p * zerofy(1.-q) * q; + ap[5] = n * p * zerofy(1.-q) * zerofy(1.-q) * q; + ap[6] = zerofy(1.-n) * zerofy(1.-n) * zerofy(1.-n) * n * p * q; + ap[7] = zerofy(1.-n) * zerofy(1.-n) * n * p * zerofy(1.-q) * q; + ap[8] = zerofy(1.-n) * n * p * zerofy(1.-q) * zerofy(1.-q) * q; + ap[9] = n * p * zerofy(1.-q) * zerofy(1.-q) * zerofy(1.-q) * q; + + /* 6. Sum or max the total path probability for the flanks generating + * 0..3 residues + */ + if (do_viterbi) + { + aL[0] = ap[0]; + aL[1] = esl_vec_DMax(ap+1, 2); + aL[2] = esl_vec_DMax(ap+3, 3); + aL[3] = esl_vec_DMax(ap+6, 4); + } + else + { + aL[0] = ap[0]; + aL[1] = esl_vec_DSum(ap+1, 2); + aL[2] = esl_vec_DSum(ap+3, 3); + aL[3] = esl_vec_DSum(ap+6, 4); + } + + /* 6. The total lod score is then the possible combinations + * of flank + (core+J) + */ + if (do_viterbi) + { + sc[0] = -eslINFINITY; + sc[1] = jL[1] * aL[0]; + sc[2] = ESL_MAX(jL[2] * aL[0], + jL[1] * aL[1]); + + sc[3] = ESL_MAX(ESL_MAX(jL[3] * aL[0], + jL[2] * aL[1]), + jL[1] * aL[2]); + sc[4] = ESL_MAX(ESL_MAX(jL[4] * aL[0], jL[3] * aL[1]), + ESL_MAX(jL[2] * aL[2], jL[1] * aL[3])); + sc[1] = log(sc[1]); + sc[2] = log(sc[2]); + sc[3] = log(sc[3]); + sc[4] = log(sc[4]); + } + else + { + sc[0] = -eslINFINITY; + sc[1] = log(jL[1] * aL[0]); + sc[2] = log(jL[2] * aL[0] + jL[1] * aL[1]); + sc[3] = log(jL[3] * aL[0] + jL[2] * aL[1] + jL[1] * aL[2]); + sc[4] = log(jL[4] * aL[0] + jL[3] * aL[1] + jL[2] * aL[2] + jL[1] * aL[3]); + } + + return eslOK; +} + + + + + + diff --git a/bioinformaticsProject/hmmer/src/jackhmmer.c b/bioinformaticsProject/hmmer/src/jackhmmer.c new file mode 100644 index 0000000..540df2c --- /dev/null +++ b/bioinformaticsProject/hmmer/src/jackhmmer.c @@ -0,0 +1,1729 @@ +/* jackhmmer: iterative search of a protein sequence against a protein database + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_dmatrix.h" +#include "esl_getopts.h" +#include "esl_keyhash.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_scorematrix.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#ifdef HMMER_MPI +#include "mpi.h" +#include "esl_mpi.h" +#endif + +#ifdef HMMER_THREADS +#include +#include "esl_threads.h" +#include "esl_workqueue.h" +#endif + +#include "hmmer.h" + +typedef struct { +#ifdef HMMER_THREADS + ESL_WORK_QUEUE *queue; +#endif + P7_BG *bg; + P7_PIPELINE *pli; + P7_TOPHITS *th; + P7_OPROFILE *om; +} WORKER_INFO; + +#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc" +#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc" +#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc" +#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define CONOPTS "--fast,--hand" // jackhmmer doesn't use these - but leave them for consistency +#define EFFOPTS "--eent,--eentexp,--eclust,--eset,--enone" // Exclusive options for effective sequence number calculation +#define WGTOPTS "--wgsc,--wblosum,--wpb,--wnone" // Exclusive options for relative weighting + +#if defined (HMMER_THREADS) && defined (HMMER_MPI) +#define CPUOPTS "--mpi" +#define MPIOPTS "--cpu" +#else +#define CPUOPTS NULL +#define MPIOPTS NULL +#endif + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "-N", eslARG_INT, "5", NULL, "n>0", NULL, NULL, NULL, "set maximum number of iterations to ", 1 }, +/* Control of output */ + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of hits to file ", 2 }, + { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file ", 2 }, + { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file ", 2 }, + { "--chkhmm", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save HMM checkpoints to files -.hmm", 2 }, + { "--chkali", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save alignment checkpoints to files -.sto", 2 }, + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 }, + { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 }, + { "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 }, + { "--textw", eslARG_INT, "120", NULL, "n>=120", NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 }, +/* Control of scoring system */ + { "--popen", eslARG_REAL, "0.02", NULL, "0<=x<0.5",NULL, NULL, NULL, "gap open probability", 3 }, + { "--pextend", eslARG_REAL, "0.4", NULL, "0<=x<1", NULL, NULL, NULL, "gap extend probability", 3 }, + { "--mx", eslARG_STRING, "BLOSUM62", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix choice (of some built-in matrices)", 3 }, + { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file ", 3 }, +/* Control of reporting thresholds */ + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report sequences <= this E-value threshold in output", 4 }, + { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report sequences >= this score threshold in output", 4 }, + { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "report domains <= this E-value threshold in output", 4 }, + { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "report domains >= this score cutoff in output", 4 }, +/* Control of inclusion (significance) thresholds */ + { "--incE", eslARG_REAL, "0.001", NULL, "x>0", NULL, NULL, INCOPTS, "consider sequences <= this E-value threshold as significant", 5 }, + { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider sequences >= this score threshold as significant", 5 }, + { "--incdomE", eslARG_REAL, "0.001", NULL, "x>0", NULL, NULL, INCDOMOPTS, "consider domains <= this E-value threshold as significant", 5 }, + { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "consider domains >= this score threshold as significant", 5 }, +/* Model-specific thresholding for both reporting and inclusion (unused in jackhmmer, but p7_Builder() needs them set to defaults) */ + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 99 }, // group=99 undocuments them; process_commandline() prohibits them. + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 99 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 99 }, +/* Control of acceleration pipeline */ + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "Stage 1 (MSV) threshold: promote hits w/ P <= F1", 7 }, + { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 }, + { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 }, +/* Alternative model construction strategies */ + { "--fast", eslARG_NONE, FALSE, NULL, NULL, CONOPTS, NULL, NULL, "assign cols w/ >= symfrac residues as consensus", 99 }, // unused/prohibited in jackhmmer. Models must be --hand. + { "--hand", eslARG_NONE, "default", NULL, NULL, CONOPTS, NULL, NULL, "manual construction (requires reference annotation)", 99 }, + { "--symfrac", eslARG_REAL, "0.5", NULL, "0<=x<=1", NULL,"--fast", NULL, "sets sym fraction controlling --fast construction", 99 }, + { "--fragthresh", eslARG_REAL, "0.5", NULL, "0<=x<=1", NULL, NULL, NULL, "if L <= x*alen, tag sequence as a fragment", 8 }, +/* Alternative relative sequence weighting strategies */ + { "--wpb", eslARG_NONE, "default", NULL, NULL, WGTOPTS, NULL, NULL, "Henikoff position-based weights", 9 }, + { "--wgsc", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "Gerstein/Sonnhammer/Chothia tree weights", 9 }, + { "--wblosum", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "Henikoff simple filter weights", 9 }, + { "--wnone", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "don't do any relative weighting; set all to 1", 9 }, + { "--wgiven", eslARG_NONE, NULL, NULL, NULL, WGTOPTS, NULL, NULL, "use weights as given in MSA file", 99 }, /* unused/prohibited in jackhmmer */ + { "--wid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--wblosum",NULL, "for --wblosum: set identity cutoff", 9 }, +/* Alternative effective sequence weighting strategies */ + { "--eent", eslARG_NONE, "default", NULL, NULL, EFFOPTS, NULL, NULL, "adjust eff seq # to achieve relative entropy target", 10 }, + { "--eentexp", eslARG_NONE, "default",NULL, NULL, EFFOPTS, NULL, NULL, "adjust eff seq # to reach rel. ent. target using exp scaling", 10 }, + { "--eclust", eslARG_NONE, FALSE, NULL, NULL, EFFOPTS, NULL, NULL, "eff seq # is # of single linkage clusters", 10 }, + { "--enone", eslARG_NONE, FALSE, NULL, NULL, EFFOPTS, NULL, NULL, "no effective seq # weighting: just use nseq", 10 }, + { "--eset", eslARG_REAL, NULL, NULL, NULL, EFFOPTS, NULL, NULL, "set eff seq # for all models to ", 10 }, + { "--ere", eslARG_REAL, NULL, NULL,"x>0", NULL, NULL, NULL, "for --eent[exp]: set minimum rel entropy/position to ", 10 }, + { "--esigma", eslARG_REAL, "45.0", NULL,"x>0", NULL, NULL, NULL, "for --eent[exp]: set sigma param to ", 10 }, + { "--eid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--eclust",NULL, "for --eclust: set fractional identity cutoff to ", 10 }, +/* Alternative prior strategies */ + { "--pnone", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--plaplace", "don't use any prior; parameters are frequencies", 13 }, + { "--plaplace", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--pnone", "use a Laplace +1 prior", 13 }, +/* Control of E-value calibration */ + { "--EmL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for MSV Gumbel mu fit", 11 }, + { "--EmN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for MSV Gumbel mu fit", 11 }, + { "--EvL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Viterbi Gumbel mu fit", 11 }, + { "--EvN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Viterbi Gumbel mu fit", 11 }, + { "--EfL", eslARG_INT, "100", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Forward exp tail tau fit", 11 }, + { "--EfN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Forward exp tail tau fit", 11 }, + { "--Eft", eslARG_REAL, "0.04", NULL,"00", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 12 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 12 }, + { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert query is in format : no autodetection", 12 }, + { "--tformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert target is in format >: no autodetection", 12 }, + +#ifdef HMMER_THREADS + { "--cpu", eslARG_INT, p7_NCPU,"HMMER_NCPU","n>=0", NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 12 }, +#endif +#ifdef HMMER_MPI + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, "--mpi", NULL, "arrest after start: for debugging MPI under gdb", 12 }, + { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 12 }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options] "; +static char banner[] = "iteratively search a protein sequence against a protein database"; + +/* struct cfg_s : "Global" application configuration shared by all threads/processes + * + * This structure is passed to routines within main.c, as a means of semi-encapsulation + * of shared data amongst different parallel processes (threads or MPI processes). + */ +struct cfg_s { + char *qfile; /* file to read query sequence from */ + char *dbfile; /* file to read sequence(s) from */ + + int do_mpi; /* TRUE if we're doing MPI parallelization */ + int nproc; /* how many MPI processes, total */ + int my_rank; /* who am I, in 0..nproc-1 */ +}; + + + +static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg); +static int serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp); +#ifdef HMMER_THREADS +#define BLOCK_SIZE 1000 + +static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp); +static void pipeline_thread(void *arg); +#endif + +#ifdef HMMER_MPI +static int mpi_master (ESL_GETOPTS *go, struct cfg_s *cfg); +static int mpi_worker (ESL_GETOPTS *go, struct cfg_s *cfg); +#endif + +static void checkpoint_hmm(int nquery, P7_HMM *hmm, char *basename, int iteration); +static void checkpoint_msa(int nquery, ESL_MSA *msa, char *basename, int iteration); + +/* process_commandline() + * Take argc, argv, and options; parse the command line; + * display help/usage info. + */ +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_qfile, char **ret_dbfile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* jackhmmer prohibits setting some standard p7_Builder() options. + * they don't appear in documentation (they're set to help group 99) + * but we want to make positively sure they don't get set. Not + * sufficient to do ! esl_opt_IsDefault(), which only checks that + * the setting is at default regardless of how it was set that way; + * instead, verify that the option wasn't set at all. + */ + if (esl_opt_GetSetter(go, "--cut_ga") != eslARG_SETBY_DEFAULT) { if (printf("Failed to parse command line: jackhmmer does not accept a --cut-ga option\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_GetSetter(go, "--cut_nc") != eslARG_SETBY_DEFAULT) { if (printf("Failed to parse command line: jackhmmer does not accept a --cut-nc option\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_GetSetter(go, "--cut_tc") != eslARG_SETBY_DEFAULT) { if (printf("Failed to parse command line: jackhmmer does not accept a --cut-tc option\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_GetSetter(go, "--fast") != eslARG_SETBY_DEFAULT) { if (printf("Failed to parse command line: jackhmmer does not accept a --fast option\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_GetSetter(go, "--hand") != eslARG_SETBY_DEFAULT) { if (printf("Failed to parse command line: jackhmmer does not accept a --hand option\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_GetSetter(go, "--symfrac") != eslARG_SETBY_DEFAULT) { if (printf("Failed to parse command line: jackhmmer does not accept a --symfrac option\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_GetSetter(go, "--wgiven") != eslARG_SETBY_DEFAULT) { if (printf("Failed to parse command line: jackhmmer does not accept a --wgiven option\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 120=textwidth*/ + + if (puts("\nOptions directing output:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + + if (puts("\nOptions controlling scoring system in first iteration:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 80); + + if (puts("\nOptions controlling reporting thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + + if (puts("\nOptions controlling significance thresholds for inclusion in next round:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + + if (puts("\nOptions controlling acceleration heuristics:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 7, 2, 80); + + if (puts("\nOptions controlling model construction after first iteration:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 8, 2, 80); + + if (puts("\nOptions controlling relative weights in models after first iteration:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 9, 2, 80); + + if (puts("\nOptions controlling effective seq number in models after first iteration:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 10, 2, 80); + + if (puts("\nOptions controlling prior strategy in models after first iteration:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 13, 2, 80); + + if (puts("\nOptions controlling E value calibration:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 11, 2, 80); + + if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 12, 2, 80); + exit(0); + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_qfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_dbfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* Validate any attempted use of stdin streams */ + if (strcmp(*ret_dbfile, "-") == 0) + { if (puts("jackhmmer cannot read from stdin stream") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + if (puts("\nwhere basic options are:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 120); /* 1= group; 2 = indentation; 120=textwidth*/ + if (printf("\nTo see more help on available options, do %s -h\n\n", argv[0]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +static int +output_header(FILE *ofp, ESL_GETOPTS *go, char *qfile, char *dbfile) +{ + p7_banner(ofp, go->argv[0], banner); + + if (fprintf(ofp, "# query sequence file: %s\n", qfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# target sequence database: %s\n", dbfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-N") && fprintf(ofp, "# maximum iterations set to: %d\n", esl_opt_GetInteger(go, "-N")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-A") && fprintf(ofp, "# MSA of hits saved to file: %s\n", esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# per-seq hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domtblout") && fprintf(ofp, "# per-dom hits tabular output: %s\n", esl_opt_GetString(go, "--domtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--chkhmm") && fprintf(ofp, "# HMM checkpoint files output: %s-.hmm\n", esl_opt_GetString(go, "--chkhmm")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--chkali") && fprintf(ofp, "# MSA checkpoint files output: %s-.sto\n", esl_opt_GetString(go, "--chkali")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(go, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--popen") && fprintf(ofp, "# gap open probability: %f\n", esl_opt_GetReal (go, "--popen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pextend") && fprintf(ofp, "# gap extend probability: %f\n", esl_opt_GetReal (go, "--pextend")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--mx") && fprintf(ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString (go, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--mxfile") && fprintf(ofp, "# subst score matrix (file): %s\n", esl_opt_GetString (go, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-E") && fprintf(ofp, "# sequence reporting threshold: E-value <= %g\n", esl_opt_GetReal (go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-T") && fprintf(ofp, "# sequence reporting threshold: score <= %g\n", esl_opt_GetReal (go, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domE") && fprintf(ofp, "# domain reporting threshold: E-value <= %g\n", esl_opt_GetReal (go, "--domE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domT") && fprintf(ofp, "# domain reporting threshold: score <= %g\n", esl_opt_GetReal (go, "--domT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incE") && fprintf(ofp, "# sequence inclusion threshold: E-value <= %g\n", esl_opt_GetReal (go, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incT") && fprintf(ofp, "# sequence inclusion threshold: score >= %g\n", esl_opt_GetReal (go, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incdomE") && fprintf(ofp, "# domain inclusion threshold: E-value <= %g\n", esl_opt_GetReal (go, "--incdomE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incdomT") && fprintf(ofp, "# domain inclusion threshold: score >= %g\n", esl_opt_GetReal (go, "--incdomT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +//if (esl_opt_IsUsed(go, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +//if (esl_opt_IsUsed(go, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +//if (esl_opt_IsUsed(go, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# MSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--fast") && fprintf(ofp, "# model architecture construction: fast/heuristic\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--hand") && fprintf(ofp, "# model architecture construction: hand-specified by RF annotation\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--symfrac") && fprintf(ofp, "# sym frac for model structure: %.3f\n", esl_opt_GetReal(go, "--symfrac")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--fragthresh") && fprintf(ofp, "# define fragments if <= x*alen: %.3f\n", esl_opt_GetReal(go, "--fragthresh")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wpb") && fprintf(ofp, "# relative weighting scheme: Henikoff PB\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wgsc") && fprintf(ofp, "# relative weighting scheme: G/S/C\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wblosum") && fprintf(ofp, "# relative weighting scheme: BLOSUM filter\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wnone") && fprintf(ofp, "# relative weighting scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--wid") && fprintf(ofp, "# frac id cutoff for BLOSUM wgts: %f\n", esl_opt_GetReal(go, "--wid")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eent") && fprintf(ofp, "# effective seq number scheme: entropy weighting\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eclust") && fprintf(ofp, "# effective seq number scheme: single linkage clusters\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--enone") && fprintf(ofp, "# effective seq number scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eset") && fprintf(ofp, "# effective seq number: set to %f\n", esl_opt_GetReal(go, "--eset")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--ere") && fprintf(ofp, "# minimum rel entropy target: %f bits\n", esl_opt_GetReal(go, "--ere")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--esigma") && fprintf(ofp, "# entropy target sigma parameter: %f bits\n", esl_opt_GetReal(go, "--esigma")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--eid") && fprintf(ofp, "# frac id cutoff for --eclust: %f\n", esl_opt_GetReal(go, "--eid")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pnone") && fprintf(ofp, "# prior scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--plaplace") && fprintf(ofp, "# prior scheme: Laplace +1\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EmL") && fprintf(ofp, "# seq length, MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EmL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EmN") && fprintf(ofp, "# seq number, MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EmN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EvL") && fprintf(ofp, "# seq length, Vit Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EvL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EvN") && fprintf(ofp, "# seq number, Vit Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EvN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EfL") && fprintf(ofp, "# seq length, Fwd exp tau fit: %d\n", esl_opt_GetInteger(go, "--EfL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EfN") && fprintf(ofp, "# seq number, Fwd exp tau fit: %d\n", esl_opt_GetInteger(go, "--EfN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--Eft") && fprintf(ofp, "# tail mass for Fwd exp tau fit: %f\n", esl_opt_GetReal (go, "--Eft")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# sequence search space set to: %.0f\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domZ") && fprintf(ofp, "# domain search space set to: %.0f\n", esl_opt_GetReal(go, "--domZ")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed")) + { + if (esl_opt_GetInteger(go, "--seed") == 0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if (fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (esl_opt_IsUsed(go, "--qformat") && fprintf(ofp, "# query format asserted: %s\n", esl_opt_GetString(go, "--qformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tformat") && fprintf(ofp, "# target format asserted: %s\n", esl_opt_GetString(go, "--tformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#ifdef HMMER_THREADS + if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif +#ifdef HMMER_MPI + if (esl_opt_IsUsed(go, "--mpi") && fprintf(ofp, "# MPI: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; /* command line processing */ + struct cfg_s cfg; /* configuration data */ + int status = eslOK; + + /* Set processor specific flags */ + impl_Init(); + + /* Initialize what we can in the config structure (without knowing the alphabet yet) + */ + cfg.qfile = NULL; + cfg.dbfile = NULL; + cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */ + cfg.nproc = 0; /* this gets reset below, if we init MPI */ + cfg.my_rank = 0; /* this gets reset below, if we init MPI */ + + /* Initializations */ + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + process_commandline(argc, argv, &go, &cfg.qfile, &cfg.dbfile); + + /* Figure out who we are, and send control there: + * we might be an MPI master, an MPI worker, or a serial program. + */ +#ifdef HMMER_MPI + /* pause the execution of the programs execution until the user has a + * chance to attach with a debugger and send a signal to resume execution + * i.e. (gdb) signal SIGCONT + */ + if (esl_opt_GetBoolean(go, "--stall")) pause(); + + if (esl_opt_GetBoolean(go, "--mpi")) + { + cfg.do_mpi = TRUE; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &(cfg.my_rank)); + MPI_Comm_size(MPI_COMM_WORLD, &(cfg.nproc)); + + if (cfg.my_rank > 0) status = mpi_worker(go, &cfg); + else status = mpi_master(go, &cfg); + + MPI_Finalize(); + } + else +#endif /*HMMER_MPI*/ + { + status = serial_master(go, &cfg); + } + + esl_getopts_Destroy(go); + + return status; +} + +/* serial_master() + * The serial version of hmmsearch. + * For each query HMM in search the database for hits. + * + * A master can only return if it's successful. All errors are handled immediately and fatally with p7_Fail(). + */ +static int +serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* output file for results (default stdout) */ + FILE *afp = NULL; /* alignment output file (-A option) */ + FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */ + FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */ + int qformat = eslSQFILE_UNKNOWN; /* format of qfile */ + int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */ + ESL_SQFILE *qfp = NULL; /* open qfile */ + ESL_SQFILE *dbfp = NULL; /* open dbfile */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_BG *bg = NULL; /* null model */ + P7_BUILDER *bld = NULL; /* HMM construction configuration */ + ESL_SQ *qsq = NULL; /* query sequence */ + ESL_KEYHASH *kh = NULL; /* hash of previous top hits' ranks */ + ESL_STOPWATCH *w = NULL; /* for timing */ + int nquery = 0; + int textw; + int iteration; + int maxiterations; + int nnew_targets; + int prv_msa_nseq; + int status = eslOK; + int qstatus = eslOK; + int sstatus = eslOK; + + int i; + int ncpus = 0; + + int infocnt = 0; + WORKER_INFO *info = NULL; +#ifdef HMMER_THREADS + ESL_SQ_BLOCK *block = NULL; + ESL_THREADS *threadObj= NULL; + ESL_WORK_QUEUE *queue = NULL; +#endif + + /* Initializations */ + abc = esl_alphabet_Create(eslAMINO); + w = esl_stopwatch_Create(); + kh = esl_keyhash_Create(); + maxiterations = esl_opt_GetInteger(go, "-N"); + textw = (esl_opt_GetBoolean(go, "--notextw") ? 0 : esl_opt_GetInteger(go, "--textw")); + + esl_stopwatch_Start(w); + + /* If caller declared input formats, decode them */ + if (esl_opt_IsOn(go, "--qformat")) { + qformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (qformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + if (esl_opt_IsOn(go, "--tformat")) { + dbformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + /* Initialize a null model. + * The single-sequence P7_BUILDER needs to see this, to construct its probabilities. + */ + bg = p7_bg_Create(abc); + + /* Initialize builder configuration + * Default matrix is stored in the --mx option, so it's always IsOn(). + * Check --mxfile first; then go to the --mx option and the default. + */ + bld = p7_builder_Create(go, abc); + if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (bld, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + else status = p7_builder_LoadScoreSystem(bld, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + if (status != eslOK) p7_Fail("Failed to set single query seq score system:\n%s\n", bld->errbuf); + + /* Open results output files */ + if (esl_opt_IsOn(go, "-o") && (ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) + p7_Fail("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); + if (esl_opt_IsOn(go, "-A") && (afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) + p7_Fail("Failed to open alignment output file %s for writing\n", esl_opt_GetString(go, "-A")); + if (esl_opt_IsOn(go, "--tblout") && (tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) + p7_Fail("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblout")); + if (esl_opt_IsOn(go, "--domtblout") && (domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) + p7_Fail("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblout")); + + /* Open the target sequence database for sequential access. */ + status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open target sequence database %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) p7_Fail("Target sequence database file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) p7_Fail("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile); + + if (! esl_sqfile_IsRewindable(dbfp)) + p7_Fail("Target sequence file %s isn't rewindable; jackhmmer requires that it is", cfg->dbfile); + + /* Open the query sequence file */ + status = esl_sqfile_OpenDigital(abc, cfg->qfile, qformat, NULL, &qfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", cfg->qfile); + else if (status == eslEFORMAT) p7_Fail("Sequence file %s is empty or misformatted\n", cfg->qfile); + else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) p7_Fail ("Unexpected error %d opening sequence file %s\n", status, cfg->qfile); + qsq = esl_sq_CreateDigital(abc); + +#ifdef HMMER_THREADS + /* initialize thread data */ + ncpus = ESL_MIN(esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + if (ncpus > 0) + { + threadObj = esl_threads_Create(&pipeline_thread); + queue = esl_workqueue_Create(ncpus * 2); + } +#endif + + infocnt = (ncpus == 0) ? 1 : ncpus; + ESL_ALLOC(info, sizeof(*info) * infocnt); + + /* Ready to begin */ + output_header(ofp, go, cfg->qfile, cfg->dbfile); + + for (i = 0; i < infocnt; ++i) + { + info[i].pli = NULL; + info[i].th = NULL; + info[i].om = NULL; + info[i].bg = p7_bg_Clone(bg); +#ifdef HMMER_THREADS + info[i].queue = queue; +#endif + } + +#ifdef HMMER_THREADS + for (i = 0; i < ncpus * 2; ++i) + { + block = esl_sq_CreateDigitalBlock(BLOCK_SIZE, abc); + if (block == NULL) + { + p7_Fail("Failed to allocate sequence block"); + } + + status = esl_workqueue_Init(queue, block); + if (status != eslOK) + { + p7_Fail("Failed to add block to work queue"); + } + } +#endif + + /* Outer loop over sequence queries, if more than one */ + while ((qstatus = esl_sqio_Read(qfp, qsq)) == eslOK) + { + P7_HMM *hmm = NULL; /* HMM - only needed if checkpointed */ + P7_HMM **ret_hmm = NULL; /* HMM - only needed if checkpointed */ + P7_OPROFILE *om = NULL; /* optimized query profile */ + P7_TRACE *qtr = NULL; /* faux trace for query sequence */ + ESL_MSA *msa = NULL; /* multiple alignment of included hits */ + + if (esl_opt_IsOn(go, "--chkhmm")) ret_hmm = &hmm; + + nquery++; + if (qsq->n == 0) continue; /* skip zero length queries as if they aren't even present. */ + + if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->acc[0] != '\0' && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->desc[0] != '\0' && fprintf(ofp, "Description: %s\n", qsq->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + for (iteration = 1; iteration <= maxiterations; iteration++) + { /* We enter each iteration with an optimized profile. */ + esl_stopwatch_Start(w); + + if (om != NULL) p7_oprofile_Destroy(om); + if (info->pli != NULL) p7_pipeline_Destroy(info->pli); + if (info->th != NULL) p7_tophits_Destroy(info->th); + if (info->om != NULL) p7_oprofile_Destroy(info->om); + + /* Create the search model: from query alone (round 1) or from MSA (round 2+) */ + if (msa == NULL) /* round 1 */ + { + p7_SingleBuilder(bld, qsq, info[0].bg, ret_hmm, &qtr, NULL, &om); /* bypass HMM - only need model */ + prv_msa_nseq = 1; + } + else + { + /* Throw away old model. Build new one. */ + status = p7_Builder(bld, msa, info[0].bg, ret_hmm, NULL, NULL, &om, NULL); + if (status == eslENORESULT) p7_Fail("Failed to construct new model from iteration %d results:\n%s", iteration, bld->errbuf); + else if (status == eslEFORMAT) p7_Fail("Failed to construct new model from iteration %d results:\n%s", iteration, bld->errbuf); + else if (status != eslOK) p7_Fail("Unexpected error constructing new model at iteration %d:", iteration); + + if (fprintf(ofp, "@@\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ Round: %d\n", iteration) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ Included in MSA: %d subsequences (query + %d subseqs from %d targets)\n", + msa->nseq, msa->nseq-1, kh->nkeys) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ Model size: %d positions\n", om->M) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + prv_msa_nseq = msa->nseq; + esl_msa_Destroy(msa); + } + + /* HMM checkpoint output */ + if (esl_opt_IsOn(go, "--chkhmm")) { + checkpoint_hmm(nquery, hmm, esl_opt_GetString(go, "--chkhmm"), iteration); + p7_hmm_Destroy(hmm); + hmm = NULL; + } + + /* Create new processing pipeline and top hits list; destroy old. (TODO: reuse rather than recreate) */ + for (i = 0; i < infocnt; ++i) + { + info[i].th = p7_tophits_Create(); + info[i].om = p7_oprofile_Clone(om); + info[i].pli = p7_pipeline_Create(go, om->M, 400, FALSE, p7_SEARCH_SEQS); /* 400 is a dummy length for now */ + p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg); + +#ifdef HMMER_THREADS + if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]); +#endif + } + +#ifdef HMMER_THREADS + if (ncpus > 0) sstatus = thread_loop(threadObj, queue, dbfp); + else sstatus = serial_loop(info, dbfp); +#else + sstatus = serial_loop(info, dbfp); +#endif + switch(sstatus) + { + case eslEFORMAT: + p7_Fail("Parse failed (sequence file %s):\n%s\n", + dbfp->filename, esl_sqfile_GetErrorBuf(dbfp)); + break; + case eslEOF: + /* do nothing */ + break; + default: + p7_Fail("Unexpected error %d reading sequence file %s", + sstatus, dbfp->filename); + } + + /* merge the results of the search results */ + for (i = 1; i < infocnt; ++i) + { + p7_tophits_Merge(info[0].th, info[i].th); + p7_pipeline_Merge(info[0].pli, info[i].pli); + + p7_pipeline_Destroy(info[i].pli); + p7_tophits_Destroy(info[i].th); + p7_oprofile_Destroy(info[i].om); + } + + /* Print the results. */ + p7_tophits_SortBySortkey(info->th); + p7_tophits_Threshold(info->th, info->pli); + p7_tophits_CompareRanking(info->th, kh, &nnew_targets); + p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Create alignment of the top hits */ + /* <&qsq, &qtr, 1> included in p7_tophits_Alignment args here => initial query is added to the msa at each round. */ + p7_tophits_Alignment(info->th, abc, &qsq, &qtr, 1, p7_ALL_CONSENSUS_COLS, &msa); + esl_msa_Digitize(abc,msa,NULL); + esl_msa_FormatName(msa, "%s-i%d", qsq->name, iteration); + if (qsq->acc[0] != '\0') esl_msa_SetAccession(msa, qsq->acc, -1); + if (qsq->desc[0] != '\0') esl_msa_SetDesc (msa, qsq->desc, -1); + esl_msa_FormatAuthor(msa, "jackhmmer (HMMER %s)", HMMER_VERSION); + + /* Optional checkpointing */ + if (esl_opt_IsOn(go, "--chkali")) checkpoint_msa(nquery, msa, esl_opt_GetString(go, "--chkali"), iteration); + + esl_stopwatch_Stop(w); + p7_pli_Statistics(ofp, info->pli, w); + + + /* Convergence test */ + if (fprintf(ofp, "\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ New targets included: %d\n", nnew_targets) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ New alignment includes: %d subseqs (was %d), including original query\n", + msa->nseq, prv_msa_nseq) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (nnew_targets == 0 && msa->nseq <= prv_msa_nseq) + { + if (fprintf(ofp, "@@\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ CONVERGED (in %d rounds). \n", iteration) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + break; + } + else if (iteration < maxiterations) + { if (fprintf(ofp, "@@ Continuing to next round.\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + esl_sqfile_Position(dbfp, 0); + } /* end iteration loop */ + + /* Because we destroy/create the hitlist, om, pipeline, and msa above, rather than create/destroy, + * the results of the last iteration have carried through to us now, and we can output + * whatever final results we care to. + */ + if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1)); + if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1)); + if (afp) + { + if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM); + else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM); + + if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + p7_pipeline_Destroy(info->pli); + p7_tophits_Destroy(info->th); + p7_oprofile_Destroy(info->om); + + info->pli = NULL; + info->th = NULL; + info->om = NULL; + + esl_msa_Destroy(msa); + p7_oprofile_Destroy(om); + p7_trace_Destroy(qtr); + esl_sq_Reuse(qsq); + esl_keyhash_Reuse(kh); + esl_sqfile_Position(dbfp, 0); + } + if (qstatus == eslEFORMAT) p7_Fail("Parse failed (sequence file %s):\n%s\n", + qfp->filename, esl_sqfile_GetErrorBuf(qfp)); + else if (qstatus != eslEOF) p7_Fail("Unexpected error %d reading sequence file %s", + qstatus, qfp->filename); + + /* Terminate outputs - any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "jackhmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (domtblfp) p7_tophits_TabularTail(domtblfp, "jackhmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (ofp && fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Cleanup - prepare for successful exit + */ + for (i = 0; i < infocnt; ++i) + p7_bg_Destroy(info[i].bg); + +#ifdef HMMER_THREADS + if (ncpus > 0) + { + esl_workqueue_Reset(queue); + while (esl_workqueue_Remove(queue, (void **) &block) == eslOK) + esl_sq_DestroyBlock(block); + esl_workqueue_Destroy(queue); + esl_threads_Destroy(threadObj); + } +#endif + + free(info); + + esl_keyhash_Destroy(kh); + esl_sqfile_Close(qfp); + esl_sqfile_Close(dbfp); + esl_sq_Destroy(qsq); + esl_stopwatch_Destroy(w); + p7_builder_Destroy(bld); + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + + if (ofp != stdout) fclose(ofp); + if (afp != NULL) fclose(afp); + if (tblfp != NULL) fclose(tblfp); + if (domtblfp != NULL) fclose(domtblfp); + + return eslOK; + + ERROR: + return eslFAIL; +} + +#ifdef HMMER_MPI + +/* Define common tags used by the MPI master/slave processes */ +#define HMMER_ERROR_TAG 1 +#define HMMER_HMM_TAG 2 +#define HMMER_SEQUENCE_TAG 3 +#define HMMER_BLOCK_TAG 4 +#define HMMER_PIPELINE_TAG 5 +#define HMMER_TOPHITS_TAG 6 +#define HMMER_HIT_TAG 7 +#define HMMER_TERMINATING_TAG 8 +#define HMMER_READY_TAG 9 +#define HMMER_SETUP_READY_TAG 10 +#define HMMER_OPROFILE_TAG 11 +#define HMMER_CONTINUE_TAG 12 + +char *HMM_TAG_STR[] = { + "", + "HMMER_ERROR_TAG", + "HMMER_HMM_TAG", + "HMMER_SEQUENCE_TAG", + "HMMER_BLOCK_TAG", + "HMMER_PIPELINE_TAG", + "HMMER_TOPHITS_TAG", + "HMMER_HIT_TAG", + "HMMER_TERMINATING_TAG", + "HMMER_READY_TAG", + "HMMER_SETUP_READY_TAG", + "HMMER_OPROFILE_TAG", + "HMMER_CONTINUE_TAG", +}; + +/* mpi_failure() + * Generate an error message. If the clients rank is not 0, a + * message is created with the error message and sent to the + * master process for handling. + */ +static void +mpi_failure(char *format, ...) +{ + va_list argp; + int status = eslFAIL; + int len; + int rank; + char str[512]; + + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + /* format the error mesg */ + va_start(argp, format); + len = vsnprintf(str, sizeof(str), format, argp); + va_end(argp); + + /* make sure the error string is terminated */ + str[sizeof(str)-1] = '\0'; + + /* if the caller is the master, print the results and abort */ + if (rank == 0) + { + if (fprintf(stderr, "\nError: ") < 0) exit(eslEWRITE); + if (fprintf(stderr, "%s", str) < 0) exit(eslEWRITE); + if (fprintf(stderr, "\n") < 0) exit(eslEWRITE); + fflush(stderr); + + MPI_Abort(MPI_COMM_WORLD, status); + exit(1); + } + else + { + MPI_Send(str, len, MPI_CHAR, 0, HMMER_ERROR_TAG, MPI_COMM_WORLD); + pause(); + } +} + +#define MAX_BLOCK_SIZE (512*1024) + +typedef struct { + uint64_t offset; + uint64_t length; + uint64_t count; +} SEQ_BLOCK; + +typedef struct { + int complete; + int size; + int current; + int last; + SEQ_BLOCK *blocks; +} BLOCK_LIST; + +/* this routine parses the database keeping track of the blocks + * offset within the file, number of sequences and the length + * of the block. These blocks are passed as work units to the + * MPI workers. If multiple hmm's are in the query file, the + * blocks are reused without parsing the database a second time. + */ +int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block) +{ + int status = eslOK; + + /* if the list has been calculated, use it instead of parsing the database */ + if (list->complete) + { + if (list->current == list->last) + { + block->offset = 0; + block->length = 0; + block->count = 0; + + status = eslEOF; + } + else + { + int inx = list->current++; + + block->offset = list->blocks[inx].offset; + block->length = list->blocks[inx].length; + block->count = list->blocks[inx].count; + + status = eslOK; + } + + return status; + } + + block->offset = 0; + block->length = 0; + block->count = 0; + + esl_sq_Reuse(sq); + while (block->length < MAX_BLOCK_SIZE && (status = esl_sqio_ReadInfo(sqfp, sq)) == eslOK) + { + if (block->count == 0) block->offset = sq->roff; + block->length = sq->eoff - block->offset + 1; + block->count++; + esl_sq_Reuse(sq); + } + + if (status == eslEOF && block->count > 0) status = eslOK; + if (status == eslEOF) + { + list->complete = 1; + list->current = list->last; + } + + /* add the block to the list of known blocks */ + if (status == eslOK) + { + int inx; + + if (list->last >= list->size) + { + void *tmp; + list->size += 500; + ESL_RALLOC(list->blocks, tmp, sizeof(SEQ_BLOCK) * list->size); + } + + inx = list->last++; + list->blocks[inx].offset = block->offset; + list->blocks[inx].length = block->length; + list->blocks[inx].count = block->count; + } + + return status; + + ERROR: + return eslEMEM; +} + +/* mpi_master() + * The MPI version of hmmbuild. + * Follows standard pattern for a master/worker load-balanced MPI program (J1/78-79). + * + * A master can only return if it's successful. + * Errors in an MPI master come in two classes: recoverable and nonrecoverable. + * + * Recoverable errors include all worker-side errors, and any + * master-side error that do not affect MPI communication. Error + * messages from recoverable messages are delayed until we've cleanly + * shut down the workers. + * + * Unrecoverable errors are master-side errors that may affect MPI + * communication, meaning we cannot count on being able to reach the + * workers and shut them down. Unrecoverable errors result in immediate + * p7_Fail()'s, which will cause MPI to shut down the worker processes + * uncleanly. + */ +static int +mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* output file for results (default stdout) */ + FILE *afp = NULL; /* alignment output file (-A option) */ + FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */ + FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */ + int qformat = eslSQFILE_UNKNOWN; /* format of qfile */ + int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */ + ESL_SQFILE *qfp = NULL; /* open qfile */ + ESL_SQFILE *dbfp = NULL; /* open dbfile */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_BG *bg = NULL; /* null model */ + P7_BUILDER *bld = NULL; /* HMM construction configuration */ + ESL_SQ *qsq = NULL; /* query sequence */ + ESL_SQ *dbsq = NULL; /* target sequence */ + ESL_KEYHASH *kh = NULL; /* hash of previous top hits' ranks */ + ESL_STOPWATCH *w = NULL; /* for timing */ + int nquery = 0; + int textw; + int iteration; + int maxiterations; + int nnew_targets; + int prv_msa_nseq; + int status = eslOK; + int qstatus = eslOK; + int sstatus = eslOK; + int dest; + int tag; + + char *mpi_buf = NULL; /* buffer used to pack/unpack structures */ + int mpi_size = 0; /* size of the allocated buffer */ + BLOCK_LIST *list = NULL; + SEQ_BLOCK block; + + int i; + int size; + int done; + MPI_Status mpistatus; + + /* Initializations */ + abc = esl_alphabet_Create(eslAMINO); + w = esl_stopwatch_Create(); + kh = esl_keyhash_Create(); + maxiterations = esl_opt_GetInteger(go, "-N"); + if (esl_opt_GetBoolean(go, "--notextw")) textw = 0; + else textw = esl_opt_GetInteger(go, "--textw"); + esl_stopwatch_Start(w); + + /* If caller declared input formats, decode them */ + if (esl_opt_IsOn(go, "--qformat")) { + qformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (qformat == eslSQFILE_UNKNOWN) mpi_failure("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + if (esl_opt_IsOn(go, "--tformat")) { + dbformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbformat == eslSQFILE_UNKNOWN) mpi_failure("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + bg = p7_bg_Create(abc); + + /* Initialize builder configuration */ + bld = p7_builder_Create(go, abc); + /* Default is stored in the --mx option, so it's always IsOn(). Check --mxfile first; then go to the --mx option and the default. */ + if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (bld, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + else status = p7_builder_LoadScoreSystem(bld, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + if (status != eslOK) mpi_failure("Failed to set single query seq score system:\n%s\n", bld->errbuf); + + /* Open results output files */ + if (esl_opt_IsOn(go, "-o") && (ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) + mpi_failure("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); + if (esl_opt_IsOn(go, "-A") && (afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) + mpi_failure("Failed to open alignment output file %s for writing\n", esl_opt_GetString(go, "-A")); + if (esl_opt_IsOn(go, "--tblout") && (tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) + mpi_failure("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp")); + if (esl_opt_IsOn(go, "--domtblout") && (domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) + mpi_failure("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp")); + + /* Open the target sequence database for sequential access. */ + status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open target sequence database %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) mpi_failure("Target sequence database file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile); + dbsq = esl_sq_CreateDigital(abc); + + if (! esl_sqfile_IsRewindable(dbfp)) + mpi_failure("Target sequence file %s isn't rewindable; jackhmmer requires that it is", cfg->dbfile); + + /* Open the query sequence file */ + status = esl_sqfile_OpenDigital(abc, cfg->qfile, qformat, NULL, &qfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->qfile); + else if (status == eslEFORMAT) mpi_failure("Sequence file %s is empty or misformatted\n", cfg->qfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure ("Unexpected error %d opening sequence file %s\n", status, cfg->qfile); + qsq = esl_sq_CreateDigital(abc); + + ESL_ALLOC(list, sizeof(SEQ_BLOCK)); + list->complete = 0; + list->size = 0; + list->current = 0; + list->last = 0; + list->blocks = NULL; + + /* Ready to begin */ + output_header(ofp, go, cfg->qfile, cfg->dbfile); + + /* Outer loop over sequence queries, if more than one */ + while ((qstatus = esl_sqio_Read(qfp, qsq)) == eslOK) + { + P7_PIPELINE *pli = NULL; /* accelerated HMM/seq comparison pipeline */ + P7_TOPHITS *th = NULL; /* top-scoring sequence hits */ + P7_HMM *hmm = NULL; /* HMM - only needed if checkpointed */ + P7_HMM **ret_hmm = NULL; /* HMM - only needed if checkpointed */ + P7_OPROFILE *om = NULL; /* optimized query profile */ + P7_TRACE *qtr = NULL; /* faux trace for query sequence */ + ESL_MSA *msa = NULL; /* multiple alignment of included hits */ + + if (esl_opt_IsOn(go, "--chkhmm")) ret_hmm = &hmm; + + nquery++; + if (qsq->n == 0) continue; /* skip zero length queries as if they aren't even present. */ + + if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->acc[0] != '\0' && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->desc[0] != '\0' && fprintf(ofp, "Description: %s\n", qsq->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + for (iteration = 1; iteration <= maxiterations; iteration++) + { /* We enter each iteration with an optimized profile. */ + esl_stopwatch_Start(w); + + list->current = 0; + + if (pli != NULL) p7_pipeline_Destroy(pli); + if (th != NULL) p7_tophits_Destroy(th); + if (om != NULL) p7_oprofile_Destroy(om); + + /* Create the search model: from query alone (round 1) or from MSA (round 2+) */ + if (msa == NULL) /* round 1 */ + { + p7_SingleBuilder(bld, qsq, bg, ret_hmm, &qtr, NULL, &om); /* bypass HMM - only need model */ + + prv_msa_nseq = 1; + } + else + { + /* Throw away old model. Build new one. */ + status = p7_Builder(bld, msa, bg, ret_hmm, NULL, NULL, &om, NULL); + if (status == eslENORESULT) mpi_failure("Failed to construct new model from iteration %d results:\n%s", iteration, bld->errbuf); + else if (status == eslEFORMAT) mpi_failure("Failed to construct new model from iteration %d results:\n%s", iteration, bld->errbuf); + else if (status != eslOK) mpi_failure("Unexpected error constructing new model at iteration %d:", iteration); + + if (fprintf(ofp, "@@\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ Round: %d\n", iteration) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ Included in MSA: %d subsequences (query + %d subseqs from %d targets)\n", + msa->nseq, msa->nseq-1, kh->nkeys) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ Model size: %d positions\n", om->M) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + prv_msa_nseq = msa->nseq; + esl_msa_Destroy(msa); + } + + /* HMM checkpoint output */ + if (esl_opt_IsOn(go, "--chkhmm")) { + checkpoint_hmm(nquery, hmm, esl_opt_GetString(go, "--chkhmm"), iteration); + p7_hmm_Destroy(hmm); + hmm = NULL; + } + + /* Create new processing pipeline and top hits list; destroy old. (TODO: reuse rather than recreate) */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(go, om->M, 400, FALSE, p7_SEARCH_SEQS); /* 400 is a dummy length for now */ + p7_pli_NewModel(pli, om, bg); + + /* Send to all the workers the optimized model to search with */ + done = 1; + while (done < cfg->nproc) + { + P7_PIPELINE *mpi_pli = NULL; + P7_TOPHITS *mpi_th = NULL; + + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + tag = mpistatus.MPI_TAG; + dest = mpistatus.MPI_SOURCE; + + if (tag == HMMER_TOPHITS_TAG) + { + status = p7_tophits_MPIRecv(dest, HMMER_TOPHITS_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, &mpi_th); + if (status != eslOK) mpi_failure("Unexpected error %d receiving tophits from %d", status, dest); + p7_tophits_Merge(th, mpi_th); + p7_tophits_Destroy(mpi_th); + } + else if (tag == HMMER_PIPELINE_TAG) + { + status = p7_pipeline_MPIRecv(dest, HMMER_PIPELINE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, go, &mpi_pli); + if (status != eslOK) mpi_failure("Unexpected error %d receiving pipeline from %d", status, dest); + p7_pipeline_Merge(pli, mpi_pli); + p7_pipeline_Destroy(mpi_pli); + + /* after the pipeline message, the worker is done and waiting */ + ++done; + } + else + { + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, tag, MPI_COMM_WORLD, &mpistatus); + + switch(tag) { + case HMMER_ERROR_TAG: + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + break; + case HMMER_SETUP_READY_TAG: + status = p7_oprofile_MPISend(om, dest, HMMER_OPROFILE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + if (status != eslOK) mpi_failure("Failed to send optimized model to %d\n", dest); + break; + case HMMER_READY_TAG: + sstatus = next_block(dbfp, dbsq, list, &block); + if (sstatus == eslOK || sstatus == eslEOF) + { + MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD); + } + else if (sstatus == eslEFORMAT) + { + mpi_failure("Parse failed (sequence file %s):\n%s\n", + dbfp->filename, esl_sqfile_GetErrorBuf(dbfp)); + } + else + { + mpi_failure("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename); + } + break; + default: + mpi_failure("Unexpected tag %d from %d\n", tag, dest); + break; + } + } + } + + /* Print the results. */ + p7_tophits_SortBySortkey(th); + p7_tophits_Threshold(th, pli); + p7_tophits_CompareRanking(th, kh, &nnew_targets); + p7_tophits_Targets(ofp, th, pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, th, pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Create alignment of the top hits */ + p7_tophits_Alignment(th, abc, &qsq, &qtr, 1, p7_ALL_CONSENSUS_COLS, &msa); + esl_msa_Digitize(abc,msa,NULL); + esl_msa_FormatName(msa, "%s-i%d", qsq->name, iteration); + if (qsq->acc[0] != '\0') esl_msa_SetAccession(msa, qsq->acc, -1); + if (qsq->desc[0] != '\0') esl_msa_SetDesc (msa, qsq->desc, -1); + esl_msa_FormatAuthor(msa, "jackhmmer (HMMER %s)", HMMER_VERSION); + + /* Optional checkpointing */ + if (esl_opt_IsOn(go, "--chkali")) checkpoint_msa(nquery, msa, esl_opt_GetString(go, "--chkali"), iteration); + + esl_stopwatch_Stop(w); + p7_pli_Statistics(ofp, pli, w); + + /* Convergence test */ + if (fprintf(ofp, "\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ New targets included: %d\n", nnew_targets) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ New alignment includes: %d subseqs (was %d), including original query\n", + msa->nseq, prv_msa_nseq) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (nnew_targets == 0 && msa->nseq <= prv_msa_nseq) + { + if (fprintf(ofp, "@@\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@ CONVERGED (in %d rounds). \n", iteration) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "@@\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + break; + } + else if (iteration < maxiterations) + { + if (fprintf(ofp, "@@ Continuing to next round.\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* send all the workers a CONTINUE signal */ + for (dest = 1; dest < cfg->nproc; ++dest) + { + status = eslOK; + MPI_Send(&status, 1, MPI_INT, dest, HMMER_CONTINUE_TAG, MPI_COMM_WORLD); + } + } + } /* end iteration loop */ + + /* send all the workers a CONTINUE signal */ + for (dest = 1; dest < cfg->nproc; ++dest) + { + status = eslEOD; + MPI_Send(&status, 1, MPI_INT, dest, HMMER_CONTINUE_TAG, MPI_COMM_WORLD); + } + + /* Because we destroy/create the hitlist, om, pipeline, and msa above, rather than create/destroy, + * the results of the last iteration have carried through to us now, and we can output + * whatever final results we care to. + */ + if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, th, pli, (nquery == 1)); + if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, th, pli, (nquery == 1)); + if (afp) + { + if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM); + else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM); + + if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + p7_pipeline_Destroy(pli); + p7_tophits_Destroy(th); + p7_oprofile_Destroy(om); + + esl_msa_Destroy(msa); + p7_trace_Destroy(qtr); + esl_sq_Reuse(qsq); + esl_keyhash_Reuse(kh); + esl_sqfile_Position(dbfp, 0); + } + if (qstatus == eslEFORMAT) mpi_failure("Parse failed (sequence file %s):\n%s\n", + qfp->filename, esl_sqfile_GetErrorBuf(qfp)); + else if (qstatus != eslEOF) mpi_failure("Unexpected error %d reading sequence file %s", + qstatus, qfp->filename); + + /* monitor all the workers to make sure they have ended */ + for (i = 1; i < cfg->nproc; ++i) + { + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_TERMINATING_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + } + + + /* Terminate outputs - any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "jackhmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (domtblfp) p7_tophits_TabularTail(domtblfp, "jackhmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (ofp && fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Cleanup - prepare for successful exit */ + free(list); + if (mpi_buf != NULL) free(mpi_buf); + + p7_bg_Destroy(bg); + esl_keyhash_Destroy(kh); + esl_sqfile_Close(qfp); + esl_sqfile_Close(dbfp); + esl_sq_Destroy(dbsq); + esl_sq_Destroy(qsq); + esl_stopwatch_Destroy(w); + p7_builder_Destroy(bld); + esl_alphabet_Destroy(abc); + + if (ofp != stdout) fclose(ofp); + if (afp != NULL) fclose(afp); + if (tblfp != NULL) fclose(tblfp); + if (domtblfp != NULL) fclose(domtblfp); + + return eslOK; + + ERROR: + return eslFAIL; +} + + +static int +mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + int qformat = eslSQFILE_UNKNOWN; /* format of qfile */ + int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */ + ESL_SQFILE *qfp = NULL; /* open qfile */ + ESL_SQFILE *dbfp = NULL; /* open dbfile */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_BG *bg = NULL; /* null model */ + P7_BUILDER *bld = NULL; /* HMM construction configuration */ + ESL_SQ *qsq = NULL; /* query sequence */ + ESL_SQ *dbsq = NULL; /* target sequence */ + ESL_KEYHASH *kh = NULL; /* hash of previous top hits' ranks */ + ESL_STOPWATCH *w = NULL; /* for timing */ + int iteration; + int maxiterations; + int status = eslOK; + int qstatus = eslOK; + int sstatus = eslOK; + + char *mpi_buf = NULL; /* buffer used to pack/unpack structures */ + int mpi_size = 0; /* size of the allocated buffer */ + + MPI_Status mpistatus; + + /* Initializations */ + abc = esl_alphabet_Create(eslAMINO); + w = esl_stopwatch_Create(); + kh = esl_keyhash_Create(); + maxiterations = esl_opt_GetInteger(go, "-N"); + + esl_stopwatch_Start(w); + + /* If caller declared input formats, decode them */ + if (esl_opt_IsOn(go, "--qformat")) { + qformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (qformat == eslSQFILE_UNKNOWN) mpi_failure("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + if (esl_opt_IsOn(go, "--tformat")) { + dbformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbformat == eslSQFILE_UNKNOWN) mpi_failure("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + bg = p7_bg_Create(abc); + + /* Initialize builder configuration */ + bld = p7_builder_Create(go, abc); + if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (bld, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + else status = p7_builder_LoadScoreSystem(bld, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + if (status != eslOK) mpi_failure("Failed to set single query seq score system:\n%s\n", bld->errbuf); + + /* Open the target sequence database for sequential access. */ + status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open target sequence database %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) mpi_failure("Target sequence database file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile); + dbsq = esl_sq_CreateDigital(abc); + + if (! esl_sqfile_IsRewindable(dbfp)) + mpi_failure("Target sequence file %s isn't rewindable; jackhmmer requires that it is", cfg->dbfile); + + /* Open the query sequence file */ + status = esl_sqfile_OpenDigital(abc, cfg->qfile, qformat, NULL, &qfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->qfile); + else if (status == eslEFORMAT) mpi_failure("Sequence file %s is empty or misformatted\n", cfg->qfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure ("Unexpected error %d opening sequence file %s\n", status, cfg->qfile); + qsq = esl_sq_CreateDigital(abc); + + /* Outer loop over sequence queries, if more than one */ + while ((qstatus = esl_sqio_Read(qfp, qsq)) == eslOK) + { + P7_PIPELINE *pli = NULL; /* accelerated HMM/seq comparison pipeline */ + P7_TOPHITS *th = NULL; /* top-scoring sequence hits */ + P7_OPROFILE *om = NULL; /* optimized query profile */ + P7_TRACE *qtr = NULL; /* faux trace for query sequence */ + + SEQ_BLOCK block; + + if (qsq->n == 0) continue; /* skip zero length queries as if they aren't even present. */ + + iteration = 1; + while (iteration > 0) + { /* We enter each iteration with an optimized profile. */ + esl_stopwatch_Start(w); + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_SETUP_READY_TAG, MPI_COMM_WORLD); + + /* Receive the search model from the master */ + status = p7_oprofile_MPIRecv(0, HMMER_OPROFILE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, &abc, &om); + + /* check the status of the oprofile */ + if (status != eslOK) mpi_failure("Error %d receiving optimized model on iteration %d\n", status, iteration); + if (iteration > maxiterations) mpi_failure("Iteration %d exceeds max iterations of %d\n", iteration, maxiterations); + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_READY_TAG, MPI_COMM_WORLD); + + /* Create new processing pipeline and top hits list; destroy old. (TODO: reuse rather than recreate) */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(go, om->M, 400, FALSE, p7_SEARCH_SEQS); /* 400 is a dummy length for now */ + p7_pli_NewModel(pli, om, bg); + + /* receive a sequence block from the master */ + MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, HMMER_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus); + while (block.count > 0) + { + uint64_t length = 0; + uint64_t count = block.count; + + status = esl_sqfile_Position(dbfp, block.offset); + if (status != eslOK) mpi_failure("Cannot position sequence database to %ld\n", block.offset); + + while (count > 0 && (sstatus = esl_sqio_Read(dbfp, dbsq)) == eslOK) + { + length = dbsq->eoff - block.offset + 1; + + p7_pli_NewSeq(pli, dbsq); + p7_bg_SetLength(bg, dbsq->n); + p7_oprofile_ReconfigLength(om, dbsq->n); + + p7_Pipeline(pli, om, bg, dbsq, NULL, th); + + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(pli); + + --count; + } + + /* lets do a little bit of sanity checking here to make sure the blocks are the same */ + if (count > 0) mpi_failure("Block count mismatch - expected %ld found %ld at offset %ld\n", block.count, block.count - count, block.offset); + if (block.length != length) mpi_failure("Block length mismatch - expected %ld found %ld at offset %ld\n", block.length, length, block.offset); + + /* inform the master we need another block of sequences */ + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_READY_TAG, MPI_COMM_WORLD); + + /* wait for the next block of sequences */ + MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, HMMER_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus); + } + + esl_stopwatch_Stop(w); + + /* Send the top hits back to the master. */ + p7_tophits_MPISend(th, 0, HMMER_TOPHITS_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + p7_pipeline_MPISend(pli, 0, HMMER_PIPELINE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + + if (om != NULL) p7_oprofile_Destroy(om); + if (pli != NULL) p7_pipeline_Destroy(pli); + if (th != NULL) p7_tophits_Destroy(th); + + /* wait until the master lets us continue */ + MPI_Recv(&status, 1, MPI_INT, 0, HMMER_CONTINUE_TAG, MPI_COMM_WORLD, &mpistatus); + iteration = (status == eslOK) ? iteration+1 : 0; + } /* end iteration loop */ + + p7_trace_Destroy(qtr); + esl_sq_Reuse(qsq); + esl_keyhash_Reuse(kh); + esl_sqfile_Position(dbfp, 0); + } + if (qstatus == eslEFORMAT) mpi_failure("Parse failed (sequence file %s):\n%s\n", + qfp->filename, esl_sqfile_GetErrorBuf(qfp)); + else if (qstatus != eslEOF) mpi_failure("Unexpected error %d reading sequence file %s", + qstatus, qfp->filename); + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_TERMINATING_TAG, MPI_COMM_WORLD); + + if (mpi_buf != NULL) free(mpi_buf); + + p7_bg_Destroy(bg); + esl_keyhash_Destroy(kh); + esl_sqfile_Close(qfp); + esl_sqfile_Close(dbfp); + esl_sq_Destroy(dbsq); + esl_sq_Destroy(qsq); + esl_stopwatch_Destroy(w); + p7_builder_Destroy(bld); + esl_alphabet_Destroy(abc); + return eslOK; +} +#endif /*HMMER_MPI*/ + + +/* checkpoint_hmm() + * + * Purpose: Save to a file -.hmm. + * If , start a new checkpoint file; + * for 1>, append to existing one. + */ +static void +checkpoint_hmm(int nquery, P7_HMM *hmm, char *basename, int iteration) +{ + FILE *fp = NULL; + char *filename = NULL; + + esl_sprintf(&filename, "%s-%d.hmm", basename, iteration); + if (nquery == 1) { if ((fp = fopen(filename, "w")) == NULL) p7_Fail("Failed to open HMM checkpoint file %s for writing\n", filename); } + else { if ((fp = fopen(filename, "a")) == NULL) p7_Fail("Failed to open HMM checkpoint file %s for append\n", filename); } + p7_hmmfile_WriteASCII(fp, -1, hmm); + + fclose(fp); + free(filename); + return; +} + + +/* checkpoint_msa() + * + * Purpose: Save to a file -.sto. + * If , start a new checkpoint file; + * for 1>, append to existing one. + */ +static void +checkpoint_msa(int nquery, ESL_MSA *msa, char *basename, int iteration) +{ + FILE *fp = NULL; + char *filename = NULL; + + esl_sprintf(&filename, "%s-%d.sto", basename, iteration); + if (nquery == 1) { if ((fp = fopen(filename, "w")) == NULL) p7_Fail("Failed to open MSA checkpoint file %s for writing\n", filename); } + else { if ((fp = fopen(filename, "a")) == NULL) p7_Fail("Failed to open MSA checkpoint file %s for append\n", filename); } + esl_msafile_Write(fp, msa, eslMSAFILE_PFAM); + + fclose(fp); + free(filename); + return; + +} + +static int +serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp) +{ + int sstatus; + ESL_SQ *dbsq = NULL; /* one target sequence (digital) */ + + dbsq = esl_sq_CreateDigital(info->om->abc); + + /* Main loop: */ + while ((sstatus = esl_sqio_Read(dbfp, dbsq)) == eslOK) + { + p7_pli_NewSeq(info->pli, dbsq); + p7_bg_SetLength(info->bg, dbsq->n); + p7_oprofile_ReconfigLength(info->om, dbsq->n); + + p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th); + + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(info->pli); + } + + esl_sq_Destroy(dbsq); + + return sstatus; +} + +#ifdef HMMER_THREADS +static int +thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp) +{ + int status = eslOK; + int sstatus = eslOK; + int eofCount = 0; + ESL_SQ_BLOCK *block; + void *newBlock; + + esl_workqueue_Reset(queue); + esl_threads_WaitForStart(obj); + + status = esl_workqueue_ReaderUpdate(queue, NULL, &newBlock); + if (status != eslOK) p7_Fail("Work queue reader failed"); + + /* Main loop: */ + while (sstatus == eslOK) + { + block = (ESL_SQ_BLOCK *) newBlock; + sstatus = esl_sqio_ReadBlock(dbfp, block, -1, -1, /*max_init_window=*/FALSE, FALSE); + if (sstatus == eslEOF) + { + if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK; + ++eofCount; + } + + if (sstatus == eslOK) + { + status = esl_workqueue_ReaderUpdate(queue, block, &newBlock); + if (status != eslOK) p7_Fail("Work queue reader failed"); + } + } + + status = esl_workqueue_ReaderUpdate(queue, block, NULL); + if (status != eslOK) p7_Fail("Work queue reader failed"); + + if (sstatus == eslEOF) + { + /* wait for all the threads to complete */ + esl_threads_WaitForFinish(obj); + esl_workqueue_Complete(queue); + } + + return sstatus; +} + +static void +pipeline_thread(void *arg) +{ + int i; + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + + ESL_SQ_BLOCK *block = NULL; + void *newBlock; + + impl_Init(); + + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock); + if (status != eslOK) p7_Fail("Work queue worker failed"); + + /* loop until all blocks have been processed */ + block = (ESL_SQ_BLOCK *) newBlock; + while (block->count > 0) + { + /* Main loop: */ + for (i = 0; i < block->count; ++i) + { + ESL_SQ *dbsq = block->list + i; + + p7_pli_NewSeq(info->pli, dbsq); + p7_bg_SetLength(info->bg, dbsq->n); + p7_oprofile_ReconfigLength(info->om, dbsq->n); + + p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th); + + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(info->pli); + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, &newBlock); + if (status != eslOK) p7_Fail("Work queue worker failed"); + + block = (ESL_SQ_BLOCK *) newBlock; + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, NULL); + if (status != eslOK) p7_Fail("Work queue worker failed"); + + esl_threads_Finished(obj, workeridx); + return; +} +#endif /* HMMER_THREADS */ + + diff --git a/bioinformaticsProject/hmmer/src/logsum.c b/bioinformaticsProject/hmmer/src/logsum.c new file mode 100644 index 0000000..31339fc --- /dev/null +++ b/bioinformaticsProject/hmmer/src/logsum.c @@ -0,0 +1,415 @@ +/* p7_FLogsum() function used in the Forward() algorithm. + * + * Contents: + * 1. Floating point log sum. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * 5. Example. + * + * Exegesis: + * + * Internally, HMMER3 profile scores are in nats: floating point + * log-odds probabilities, with the log odds taken relative to + * background residue frequencies, and the log to the base e. + * + * The Forward algorithm needs to calculate sums of probabilities. + * Given two log probabilities A and B, where s1 = \log + * \frac{a}{f}, and s2 = \log \frac{b}{g}, we need to + * calculate C = \log \frac{a + b}{h}. + * + * The Forward algorithm guarantees that the null model denominator + * terms f = g = h, because it is always concerned with summing terms + * that describe different parses of the same target sequence prefix, + * and the product of the background frequencies for the same sequence + * prefix is a constant. + * + * The naive solution is C = log(e^{A} + e^{B}), but this requires + * expensive calls to log() and exp(). + * + * A better solution is C = A + log(1 + e^{-(A-B)}), for A >= B. For + * sufficiently small B << A, e^-{A-B} becomes less than the + * machine's FLT_EPSILON, and C ~= A. (This is at about (A-B) > + * -15.9, for the typical FLT_EPSILON of 1.2e-7.) + * + * With some loss of accuracy [1], we can precalculate log(1 + + * e^{-(A-B)}) for a discretized range of differences (A-B), and + * compute C = A + table_lookup(A-B). This is what HMMER's + * p7_FLogsum() function does. + * + * This only applies to the generic (serial) implementation. + * See footnote [2] for discussion of why we remain unable to + * implement an efficient log-space SIMD vector implementation of + * Forward. + */ +#include "p7_config.h" +#include +#include "hmmer.h" + + +/* p7_LOGSUM_SCALE defines the precision of the calculation; the + * default of 1000.0 means rounding differences to the nearest 0.001 + * nat. p7_LOGSUM_TBL defines the size of the lookup table; the + * default of 16000 means entries are calculated for differences of 0 + * to 16.000 nats (when p7_LOGSUM_SCALE is 1000.0). e^{-p7_LOGSUM_TBL / + * p7_LOGSUM_SCALE} should be on the order of the machine FLT_EPSILON, + * typically 1.2e-7. + */ +#define p7_LOGSUM_SCALE 1000.f +#define p7_LOGSUM_TBL 16000 + +static float flogsum_lookup[p7_LOGSUM_TBL]; /* p7_LOGSUM_TBL=16000: (A-B) = 0..16 nats, steps of 0.001 */ + +/***************************************************************** + *# 1. floating point log sum + *****************************************************************/ + +/* Function: p7_FLogsumInit() + * Synopsis: Initialize the p7_Logsum() function. + * + * Purpose: Initialize the lookup table for . + * This function must be called once before any + * call to . + * + * The precision of the lookup table is determined + * by the compile-time constant. + * + * Returns: on success. + */ +int +p7_FLogsumInit(void) +{ + static int firsttime = TRUE; + if (!firsttime) return eslOK; + firsttime = FALSE; + + int i; + for (i = 0; i < p7_LOGSUM_TBL; i++) + flogsum_lookup[i] = log(1. + exp((double) -i / p7_LOGSUM_SCALE)); + return eslOK; +} + +/* Function: p7_FLogsum() + * Synopsis: Approximate $\log(e^a + e^b)$. + * + * Purpose: Returns a fast table-driven approximation to + * $\log(e^a + e^b)$. + * + * Either or (or both) may be $-\infty$, + * but neither may be $+\infty$ or . + * + * Note: This function is a critical optimization target, because + * it's in the inner loop of generic Forward() algorithms. + */ +float +p7_FLogsum(float a, float b) +{ + const float max = ESL_MAX(a, b); + const float min = ESL_MIN(a, b); + + //return (min == -eslINFINITY || (max-min) >= 15.7f) ? max : max + log(1.0 + exp(min-max)); /* SRE: While debugging SSE impl. Remember to remove! */ + return (min == -eslINFINITY || (max-min) >= 15.7f) ? max : max + flogsum_lookup[(int)((max-min)*p7_LOGSUM_SCALE)]; +} + +/* Function: p7_FLogsumError() + * Synopsis: Compute absolute error in probability from Logsum. + * + * Purpose: Compute the absolute error in probability space + * resulting from 's table lookup + * approximation: approximation result - exact result. + * + * This is of course computable analytically for + * any given ; but the function + * is useful for some routines that want to determine + * if has been compiled in its + * exact slow mode for debugging purposes. Testing + * 0.0001> + * for example, suffices to detect that the function + * is compiled in its fast approximation mode given + * the defaults. + */ +float +p7_FLogsumError(float a, float b) +{ + float approx = p7_FLogsum(a,b); + float exact = log(exp(a) + exp(b)); + return (exp(approx) - exp(exact)); +} + + +/***************************************************************** + * 2. Benchmark driver. + *****************************************************************/ +#ifdef p7LOGSUM_BENCHMARK +/* gcc -o logsum_benchmark -g -O2 -I. -L. -I../easel -L../easel -Dp7LOGSUM_BENCHMARK logsum.c -leasel -lm + * ./logsum_benchmark + */ + +/* A table-driven FLogsum() is about 20x faster than a direct + * C = A + log(1+e^{-(A-B)}) implementation, "naive2()": + * time/call clocks/call + * naive1: 110 nsec 250 SRE:J8/71 10 Aug 2011 + * naive2: 87 nsec 200 MacOS/X desktop, default build (gcc -O3), 2.26 GHz Xeon + * FLogsum(): 4 nsec 9 + * + * Times in units of nanoseconds/iteration: cpu time * 10 + * based on default 1e8 iterations (-N 100000000). + * Clocks based on 2.26GHz = 2.26 clocks/nsec + */ +#include "p7_config.h" + +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-n", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "naive time: A + log(1+exp(-(A-B)))", 0 }, + { "-r", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "really naive time: log(exp(A)+exp(B))", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "be verbose: show individual results", 0 }, + { "-N", eslARG_INT,"100000000",NULL,"n>0", NULL, NULL, NULL, "number of trials", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "benchmark driver for logsum functions()"; + +static float +naive1(float s1, float s2) +{ + return log(exp(s1) + exp(s2)); +} + +static float +naive2(float s1, float s2) +{ + if (s1 > s2) return s1 + log(1 + exp(s2-s1)); + else return s2 + log(1 + exp(s1-s2)); +} + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + int N = esl_opt_GetInteger(go, "-N"); + int i; + float *A, *B, *C; + + p7_FLogsumInit(); + + /* Create the problem: sample N values A,B on interval -1000,1000: about the range of H3 scores */ + A = malloc(sizeof(float) * N); + B = malloc(sizeof(float) * N); + C = malloc(sizeof(float) * N); + for (i = 0; i < N; i++) + { + A[i] = esl_random(r) * 2000. - 1000.; + B[i] = esl_random(r) * 2000. - 1000.; + } + + /* Run */ + esl_stopwatch_Start(w); + + if (esl_opt_GetBoolean(go, "-n")) + { + for (i = 0; i < N; i++) + C[i] = naive2(A[i], B[i]); + } + else if (esl_opt_GetBoolean(go, "-r")) + { + for (i = 0; i < N; i++) + C[i] = naive1(A[i], B[i]); + } + else + { + for (i = 0; i < N; i++) + C[i] = p7_FLogsum(A[i], B[i]); + } + + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7LOGSUM_BENCHMARK*/ +/*-------------------- end, benchmark ---------------------------*/ + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7LOGSUM_TESTDRIVE + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" + +static void +utest_FLogsumError(ESL_GETOPTS *go, ESL_RANDOMNESS *r) +{ + int N = esl_opt_GetInteger(go, "-N"); + float maxval = esl_opt_GetReal(go, "-S"); + int be_verbose = esl_opt_GetBoolean(go, "-v"); + float maxerr = 0.0; + float avgerr = 0.0; + int i; + float a,b,result,exact,err; + + for (i = 0; i < N; i++) + { + a = (esl_random(r) - 0.5) * maxval * 2.; /* uniform draws on -maxval..maxval */ + b = (esl_random(r) - 0.5) * maxval * 2.; + + exact = log(exp(a) + exp(b)); + result = p7_FLogsum(a,b); + err = fabs(exact-result) / maxval; + + avgerr += err; + maxerr = ESL_MAX(maxerr, err); + + if (be_verbose) + printf("%8.4f %8.4f %8.4f %8.4f %8.4f\n", a, b, exact, result, err); + } + avgerr /= (float) N; + + if (be_verbose) { + printf("average error = %f\n", avgerr); + printf("max error = %f\n", maxerr); + } + + if (maxerr > 0.0001) esl_fatal("maximum error of %f is too high: logsum unit test fails", maxerr); + if (avgerr > 0.0001) esl_fatal("average error of %f is too high: logsum unit test fails", avgerr); +} + +static void +utest_FLogsumSpecials(void) +{ + char *msg = "logsum specials unit test failed"; + + if (p7_FLogsum(0.0, -eslINFINITY) != 0.0) esl_fatal(msg); + if (p7_FLogsum(-eslINFINITY, 0.0) != 0.0) esl_fatal(msg); + if (p7_FLogsum(-eslINFINITY, -eslINFINITY) != -eslINFINITY) esl_fatal(msg); +} +#endif /*p7LOGSUM_TESTDRIVE*/ +/*------------------- end, unit tests ---------------------------*/ + +/***************************************************************** + * 4. Test driver. + *****************************************************************/ +#ifdef p7LOGSUM_TESTDRIVE +/* + gcc -o logsum_utest -msse2 -g -Wall -I. -L. -I../easel -L../easel -Dp7LOGSUM_TESTDRIVE logsum.c -leasel -lm + ./logsum_utest + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgrp */ + {"-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0}, + {"-N", eslARG_INT, "1000", NULL, "n>0",NULL, NULL, NULL, "number of samples", 0}, + {"-S", eslARG_REAL, "20.0", NULL, "x>0",NULL, NULL, NULL, "maximum operand value", 0}, + {"-s", eslARG_INT, "42", NULL,"n>=0",NULL, NULL, NULL, "random number seed", 0}, + {"-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show verbose output", 0}, + { 0,0,0,0,0,0,0,0,0,0}, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for logsum.c"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + + p7_FLogsumInit(); + + utest_FLogsumError(go, r); + utest_FLogsumSpecials(); + + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} +#endif /*p7LOGSUM_TESTDRIVE*/ +/*------------------ end, test driver ---------------------------*/ + + +/***************************************************************** + * 5. Example. + *****************************************************************/ +#ifdef p7LOGSUM_EXAMPLE +/* gcc -o example -g -O2 -I. -L. -I../easel -L../easel -Dp7LOGSUM_EXAMPLE logsum.c -leasel -lm + * ./example -0.5 -0.5 + */ +#include "p7_config.h" +#include "easel.h" +#include "hmmer.h" + +int +main(int argc, char **argv) +{ + float a = atof(argv[1]); + float b = atof(argv[2]); + float result; + + p7_FLogsumInit(); + result = p7_FLogsum(a, b); + printf("p7_FLogsum(%f,%f) = %f\n", a, b, result); + + result = log(exp(a) + exp(b)); + printf("log(e^%f + e^%f) = %f\n", a, b, result); + + printf("Absolute error in probability: %f\n", p7_FLogsumError(a,b)); + return eslOK; +} +#endif /*p7LOGSUM_EXAMPLE*/ +/*--------------------- end, example ----------------------------*/ + + + +/* Footnotes. + * + * [1] The maximum relative error is on the order of 1/SCALE, or 0.001. + * [xref SRE:J8/71]. + * + * [2] SIMD vectorization of a log-space Forward remains vexing. + * Sparse-rescaled probability-space Forward vector + * implemementation only works for local; glocal or global may + * underflow long delete paths. Would be desirable to use a + * log-space implementation if we could make it fast. Problem is + * implementing the p7_FLogsum() lookup table in SIMD; lookup + * tables of this size in current SSE, Altivec appear to be + * infeasible. I considered the possibility of using a functional + * fit to f(x) = log(1+e^{-x}) for x >=0, for example with a + * Chebyshev polynomial, because a numerical f(x) would vectorize. + * Decided that this computation would necessarily be expensive on + * the order of log(x) or exp(x), so replacing log(1+exp(-x)) with + * f(x) doesn't look like compelling -- might as well compute + * log(1+exp(-x)) directly! The table-driven approach is about 20x + * faster (about 9 clocks, compared to about 200 for the direct + * log,exp calculation), and even if we could get an f(x) + * calculation to be as efficient as log(x) -- say 100 clocks -- + * the 4x SIMD vectorization does not compensate for the 10x hit + * in speed. [xref SRE:J8/71] + */ + diff --git a/bioinformaticsProject/hmmer/src/makehmmerdb.c b/bioinformaticsProject/hmmer/src/makehmmerdb.c new file mode 100644 index 0000000..09004f5 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/makehmmerdb.c @@ -0,0 +1,891 @@ +#include "p7_config.h" + +#include "easel.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_mem.h" + +#include + +#include "hmmer.h" +#include "divsufsort.h" + + +#define FM_BLOCK_COUNT 100000 //max number of SQ objects in a block +#define FM_BLOCK_OVERLAP 20000 //20 Kbases of overlap, at most, between adjascent FM-index blocks +#define ALPHOPTS "--amino,--dna,--rna" /* Exclusive options for alphabet choice */ + + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + + /* Selecting the alphabet rather than autoguessing it */ + //TODO: when I make the FM method work for amino acids, re-enable this selection + { "--amino", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input is protein sequence", 2 }, + { "--dna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input is DNA sequence", 2 }, + { "--rna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input is RNA sequence", 2 }, + + /* Other options */ + { "--informat", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "specify that input file is in format ", 3 }, + { "--bin_length", eslARG_INT, "256", NULL, NULL, NULL, NULL, NULL, "bin length (power of 2; 32<=b<=4096)", 3 }, + { "--sa_freq", eslARG_INT, "8", NULL, NULL, NULL, NULL, NULL, "suffix array sample rate (power of 2)", 3 }, + { "--block_size", eslARG_INT, "50", NULL, NULL, NULL, NULL, NULL, "input sequence broken into blocks this size (Mbases)", 3 }, + + /* hidden*/ + { "--fwd_only", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "build FM-index only for forward search (not for HMMER)", 9 }, + + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[options] "; +static char banner[] = "build a HMMER binary-formatted database from an input sequence file"; + + +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_seqfile, char **ret_fmfile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 120=textwidth*/ + +// if (puts("\nOptions for selecting alphabet rather than guessing it:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); +// esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + + if (puts("\nSpecial options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 80); /* 2= group; 2 = indentation; 120=textwidth*/ + + exit(0); + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_seqfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_fmfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* Validate any attempted use of stdin streams */ + if (esl_strcmp(*ret_seqfile, "-") == 0 && esl_strcmp(*ret_fmfile, "-") == 0) + { if (puts("Either or may be '-' (to read from stdin), but not both.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + puts("\nwhere basic options are:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + printf("\nTo see more help on available options, do %s -h\n\n", argv[0]); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +/* Function: output_header() + * Synopsis: Print details of FM-index construction + */ +static int +output_header(FILE *ofp, const ESL_GETOPTS *go, char *seqfile, char *fmfile) +{ + p7_banner(ofp, go->argv[0], banner); + + if ( fprintf(ofp, "# input sequence file: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# output binary-formatted HMMER database: %s\n", fmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# bin_length: %d\n", esl_opt_GetInteger(go, "--bin_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# suffix array sample rate: %d\n", esl_opt_GetInteger(go, "--sa_freq")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--amino") && fprintf(ofp, "# input is asserted to be: protein\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--dna") && fprintf(ofp, "# input is asserted to be: DNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--rna") && fprintf(ofp, "# input is asserted to be: RNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + + +/* Function: allocateSeqdata() + * Synopsis: ensure that space is allocated for the seqdata object + * in the FM-index metadata. + */ +int +allocateSeqdata (FM_METADATA *meta, ESL_SQ *sq, int numseqs, int *allocedseqs) { + int length; + int status = eslOK; + + + if (numseqs == *allocedseqs) { // either first allocation, or increase in size + *allocedseqs *= 4; // we've bumped up against allocation limit, double allocation. + ESL_REALLOC (meta->seq_data, *allocedseqs * sizeof(FM_SEQDATA)); + if (meta->seq_data == NULL ) + esl_fatal("unable to allocate memory to store FM meta data\n"); + } + + //allocate space for the name, source, acc, and desc of the sequence source for the block + length = strlen(sq->name); + meta->seq_data[numseqs].name_length = length; + ESL_ALLOC (meta->seq_data[numseqs].name, (1+length) * sizeof(char)); + + length = strlen(sq->acc); + meta->seq_data[numseqs].acc_length = length; + ESL_ALLOC (meta->seq_data[numseqs].acc, (1+length) * sizeof(char)); + + length = strlen(sq->source); + meta->seq_data[numseqs].source_length = length; + ESL_ALLOC (meta->seq_data[numseqs].source, (1+length) * sizeof(char)); + + length = strlen(sq->desc); + meta->seq_data[numseqs].desc_length = length; + ESL_ALLOC (meta->seq_data[numseqs].desc, (1+length) * sizeof(char)); + + + if (meta->seq_data[numseqs].name == NULL || meta->seq_data[numseqs].acc == NULL || meta->seq_data[numseqs].source == NULL || meta->seq_data[numseqs].desc == NULL) + esl_fatal("unable to allocate memory to store FM meta data\n"); + + return eslOK; + +ERROR: + return status; +} + + +/* Function: buildAndWriteFMIndex() + * Synopsis: Take text as input, along with several pre-allocated variables, + * and produce BWT and corresponding FM-index, then write it all + * to the output file. + * + * if SAsamp == NULL, don't store/write T or SAsamp + */ +int buildAndWriteFMIndex (FM_METADATA *meta, uint32_t seq_offset, uint32_t ambig_offset, + uint32_t seq_cnt, uint32_t ambig_cnt, uint32_t overlap, + FM_DATA *fm_data, uint32_t *SAsamp, + uint32_t *cnts_sb, uint16_t *cnts_b, + uint64_t N, uint8_t **Tcompressed, FILE *fp + ) { + + + int status; + uint64_t i,j,c,joffset; + int chars_per_byte = 8/meta->charBits; + uint32_t compressed_bytes = ((chars_per_byte-1+N)/chars_per_byte); + uint32_t term_loc; + + uint8_t *T = fm_data->T; + uint8_t *BWT = fm_data->BWT; + int *SA = (int*) fm_data->SA; //cast this way because libdivsufsort requires an int. + uint32_t *occCnts_sb = fm_data->occCnts_sb; + uint16_t *occCnts_b = fm_data->occCnts_b; + + + int num_freq_cnts_b = 1+ceil((double)N/(meta->freq_cnt_b)); + int num_freq_cnts_sb = 1+ceil((double)N/meta->freq_cnt_sb); + int num_SA_samples = floor((double)N/meta->freq_SA); + + if (SAsamp != NULL) { + ESL_REALLOC ((*Tcompressed), compressed_bytes * sizeof(uint8_t)); + + // Reverse the text T, so the BWT will be on reversed T. Only used for the 1st pass + fm_reverseString ((char*)T, N-1); + } + + // Construct the Suffix Array on text T + status = divsufsort(fm_data->T, SA, N); + if ( status < 0 ) + esl_fatal("buildAndWriteFMIndex: Error building BWT.\n"); + + // Construct the BWT, SA landmarks, and FM-index + for (c=0; calph_size; c++) { + cnts_sb[c] = 0; + cnts_b[c] = 0; + FM_OCC_CNT(sb, 0, c ) = 0; + FM_OCC_CNT(b, 0, c ) = 0; + } + + + for(j=0; j < N-1; ++j) { + T[j]--; //move values down so 'a'=0...'t'=3; store 'a' in place of '$' + } + T[N-1]=0; + + BWT[0] = SA[0]==0 ? 0 /* '$' */ : T[ SA[0]-1] ; + + cnts_sb[BWT[0]]++; + cnts_b[BWT[0]]++; + + if (SAsamp != NULL) + SAsamp[0] = 0; // not used, since indexing is base-1. Set for the sake of consistency of output. + + //Scan through SA to build the BWT and FM index structures + for(j=1; j < N; ++j) { + if (SA[j]==0) { //'$' + term_loc = j; + BWT[j] = 0; //store 'a' in place of '$' + } else { + BWT[j] = T[ SA[j]-1] ; + } + + + //sample the SA + if (SAsamp != NULL) { + if ( !(j % meta->freq_SA) ) + SAsamp[ j/meta->freq_SA ] = ( SA[j] == N - 1 ? -1 : SA[j] ) ; // handle the wrap-around '$' + } + + cnts_sb[BWT[j]]++; + cnts_b[BWT[j]]++; + + joffset = j+1; + if ( !( joffset % meta->freq_cnt_b) ) { // (j+1)%freq_cnt_b==0 , i.e. every freq_cnt_bth position, noting that it's a zero-based count + + for (c=0; calph_size; c++) + FM_OCC_CNT(b, (joffset/meta->freq_cnt_b), c ) = cnts_b[c]; + + if ( !(joffset % meta->freq_cnt_sb) ) { // j%freq_cnt_sb==0 + for (c=0; calph_size; c++) { + FM_OCC_CNT(sb, (joffset/meta->freq_cnt_sb), c ) = cnts_sb[c]; + cnts_b[c] = 0; + } + } + } + } + + //wrap up the counting; + for (c=0; calph_size; c++) { + FM_OCC_CNT(b, num_freq_cnts_b-1, c ) = cnts_b[c]; + FM_OCC_CNT(sb, num_freq_cnts_sb-1, c ) = cnts_sb[c]; + } + + + + // Convert BWT and T to packed versions if appropriate. + if (meta->alph_type == fm_DNA) { + //4 chars per byte. Counting will be done based on quadruples 0..3; 4..7; 8..11; etc. + for(i=0; i < N-3; i+=4) + BWT[i/4] = BWT[i]<<6 | BWT[i+1]<<4 | BWT[i+2]<<2 | BWT[i+3]; + if (i <= N-1) + BWT[i/4] = BWT[i]<<6; + if (i+1 <= N-1) + BWT[i/4] |= BWT[i+1]<<4; + if (i+2 <= N-1) + BWT[i/4] |= BWT[i+2]<<2; + } + + + + //If this is the 1st (reversed text) BWT, de-reverse it, then compress it + if (SAsamp != NULL) { + fm_reverseString ((char*)T, N-1); + // Convert T to packed versions if appropriate. + if (meta->alph_type == fm_DNA ) { + //4 chars per byte. Counting will be done based on quadruples 0..3; 4..7; 8..11; etc. + for(i=0; i < N-3; i+=4) + (*Tcompressed)[i/4] = T[i]<<6 | T[i+1]<<4 | T[i+2]<<2 | T[i+3]; + + if (i <= N-1) + (*Tcompressed)[i/4] = T[i]<<6; + if (i+1 <= N-1) + (*Tcompressed)[i/4] |= T[i+1]<<4; + if (i+2 <= N-1) + (*Tcompressed)[i/4] |= T[i+2]<<2; + } else { + for(i=0; i <= N-1; i++) + (*Tcompressed)[i] = T[i]; + } + } + + + for(j=0; j < N-1; ++j) { + T[j]++; //move values back up, in case the reverse FM needs to be built + } + T[N-1] = 0; + + + // Write the FM-index meta data + if(fwrite(&N, sizeof(uint64_t), 1, fp) != 1) + esl_fatal( "buildAndWriteFMIndex: Error writing block_length in FM index.\n"); + if(fwrite(&term_loc, sizeof(uint32_t), 1, fp) != 1) + esl_fatal( "buildAndWriteFMIndex: Error writing terminal location in FM index.\n"); + if(fwrite(&seq_offset, sizeof(uint32_t), 1, fp) != 1) + esl_fatal( "buildAndWriteFMIndex: Error writing seq_offset in FM index.\n"); + if(fwrite(&ambig_offset, sizeof(uint32_t), 1, fp) != 1) + esl_fatal( "buildAndWriteFMIndex: Error writing ambig_offset in FM index.\n"); + if(fwrite(&overlap, sizeof(uint32_t), 1, fp) != 1) + esl_fatal( "buildAndWriteFMIndex: Error writing overlap in FM index.\n"); + if(fwrite(&seq_cnt, sizeof(uint32_t), 1, fp) != 1) + esl_fatal( "buildAndWriteFMIndex: Error writing seq_cnt in FM index.\n"); + if(fwrite(&ambig_cnt, sizeof(uint32_t), 1, fp) != 1) + esl_fatal( "buildAndWriteFMIndex: Error writing ambig_cnt in FM index.\n"); + + // don't write Tcompressed or SAsamp if SAsamp == NULL + if( SAsamp != NULL && fwrite(*Tcompressed, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes) + esl_fatal( "buildAndWriteFMIndex: Error writing T in FM index.\n"); + if(fwrite(BWT, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes) + esl_fatal( "buildAndWriteFMIndex: Error writing BWT in FM index.\n"); + if(SAsamp != NULL && fwrite(SAsamp, sizeof(uint32_t), (size_t)num_SA_samples, fp) != (size_t)num_SA_samples) + esl_fatal( "buildAndWriteFMIndex: Error writing SA in FM index.\n"); + if(fwrite(occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, fp) != (size_t)num_freq_cnts_b) + esl_fatal( "buildAndWriteFMIndex: Error writing occCnts_b in FM index.\n"); + if(fwrite(occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, fp) != (size_t)num_freq_cnts_sb) + esl_fatal( "buildAndWriteFMIndex: Error writing occCnts_sb in FM index.\n"); + + + return eslOK; + +ERROR: + /* Deallocate memory. */ + return eslFAIL; + +} + + + +/* Function: main() + * Synopsis: break input sequence set into chunks, for each one building the + * Burrows-Wheeler transform and corresponding FM-index. Maintain requisite + * meta data. + * Notes: Currently depends on the divsufsort-lite code of Yuta Mori, though this + * could easily be replaced. + */ +int +main(int argc, char **argv) +{ + int status = eslOK; + char tmp_filename[16] = "fmtmpXXXXXX"; + FILE *fptmp = NULL; + FILE *fp = NULL; + + + // these will be allocated once, and reused for each built block + FM_METADATA *meta = NULL; + FM_DATA *fm_data = NULL; + uint32_t *SAsamp = NULL; + uint32_t *cnts_sb = NULL; + uint16_t *cnts_b = NULL; + uint8_t *Tcompressed = NULL; + + + + clock_t t1, t2; + struct tms ts1, ts2; + + long i,j,c; + + int chars_per_byte; + int num_freq_cnts_sb ; + int num_freq_cnts_b ; + int num_SA_samples ; + + int infmt = eslSQFILE_UNKNOWN; + int alphatype = eslUNKNOWN; + ESL_ALPHABET *abc = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + + ESL_SQ *tmpsq = NULL; + ESL_SQ_BLOCK *block = NULL; + + char *fname_in = NULL; + char *fname_out= NULL; + uint32_t block_size = 50000000; + int sq_cnt = 0; + int use_tmpsq = 0; + uint64_t block_length; + uint64_t total_char_count = 0; + + uint32_t max_block_size; + + int numblocks = 0; + uint32_t numseqs = 0; + + + int allocedseqs = 1000; + uint32_t seq_offset = 0; + uint32_t ambig_offset = 0; + uint32_t overlap = 0; + uint32_t seq_cnt; + uint32_t ambig_cnt; + int compressed_bytes; + uint32_t term_loc; + int alphaguess; + + ESL_GETOPTS *go = NULL; /* command line processing */ + + int in_ambig_run = 0; + + ESL_RANDOMNESS *r = esl_randomness_CreateFast(42); + + +#if !defined (eslENABLE_SSE) + p7_Fail("The hmmerfm sequence database file format is valid only on systems supporting SSE vector instructions\n"); +#endif + + ESL_ALLOC (meta, sizeof(FM_METADATA)); + if (meta == NULL) + esl_fatal("unable to allocate memory to store FM meta data\n"); + meta->alph = NULL; + + + ESL_ALLOC (meta->ambig_list, sizeof(FM_AMBIGLIST)); + if (meta->ambig_list == NULL) + esl_fatal("unable to allocate memory to store FM ambiguity data\n"); + fm_initAmbiguityList(meta->ambig_list); + + + meta->alph_type = fm_DNA; + meta->freq_SA = 8; + meta->freq_cnt_b = 256; + meta->freq_cnt_sb = pow(2,16); //65536 - that's the # values in a short + meta->seq_count = 0; + ESL_ALLOC (meta->seq_data, allocedseqs * sizeof(FM_SEQDATA)); + if (meta->seq_data == NULL ) + esl_fatal("unable to allocate memory to store FM sequence data\n"); + + + process_commandline(argc, argv, &go, &fname_in, &fname_out); + + if (esl_opt_IsOn(go, "--bin_length")) meta->freq_cnt_b = esl_opt_GetInteger(go, "--bin_length"); + if ( meta->freq_cnt_b < 32 || meta->freq_cnt_b >4096 || (meta->freq_cnt_b & (meta->freq_cnt_b - 1)) ) // test power of 2 + esl_fatal("bin_length must be a power of 2, at least 128, and at most 4096\n"); + + if (esl_opt_IsOn(go, "--sa_freq")) meta->freq_SA = esl_opt_GetInteger(go, "--sa_freq"); + if ( (meta->freq_SA & (meta->freq_SA - 1)) ) // test power of 2 + esl_fatal ("SA_freq must be a power of 2\n"); + + + if (esl_opt_IsOn(go, "--block_size")) block_size = 1000000 * esl_opt_GetInteger(go, "--block_size"); + if ( block_size <= 0 ) + esl_fatal ("block_size must be a positive number\n"); + + if ( block_size > 3500000000 ) + esl_fatal ("block_size must less than 3500M\n"); + + + //start timer + t1 = times(&ts1); + + output_header(stdout, go, fname_in, fname_out); + + if (esl_opt_GetString(go, "--informat") != NULL) { + infmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--informat")); + if (infmt == eslSQFILE_UNKNOWN) esl_fatal("%s is not a valid input sequence file format for --informat"); + } + + status = esl_sqfile_Open(fname_in, infmt, NULL, &sqfp); + if (status == eslENOTFOUND) esl_fatal("No such file %s", fname_in); + else if (status == eslEFORMAT) esl_fatal("Format of seqfile %s unrecognized.", fname_in); + else if (status != eslOK) esl_fatal("Open failed, code %d.", status); + + meta->fwd_only = 0; + + + if ( esl_opt_IsUsed(go, "--amino") ) { + meta->alph_type = fm_AMINO; + alphatype = eslAMINO; + meta->fwd_only = 1; + } else if (esl_opt_IsUsed(go, "--dna") || esl_opt_IsUsed(go, "--rna") ){ + + //meta->alph = "dna"; //esl_opt_IsUsed(go, "--dna") ? "dna" || "rna"; + meta->alph_type = fm_DNA; + alphatype = eslDNA; + + } else { + esl_sqfile_GuessAlphabet(sqfp, &alphaguess); + + if (alphaguess == eslDNA || alphaguess == eslRNA) { + meta->alph_type = fm_DNA; + alphatype = eslDNA; + } else if (alphaguess == eslAMINO) { + meta->alph_type = fm_AMINO; + alphatype = eslAMINO; + meta->fwd_only = 1; + } else { + esl_fatal("Unable to guess alphabet. Try '--dna' or '--amino'\n%s", ""); //'dna_full' + } + } + + + if (esl_opt_IsOn(go, "--fwd_only") ) + meta->fwd_only = 1; + + //getInverseAlphabet + fm_alphabetCreate(meta, &(meta->charBits)); + chars_per_byte = 8/meta->charBits; + + //shift inv_alph up one, to make space for '$' at 0 + for (i=0; i<256; i++) + if ( meta->inv_alph[i] >= 0) + meta->inv_alph[i]++; + + + abc = esl_alphabet_Create(alphatype); + sq = esl_sq_CreateDigital(abc); + tmpsq = esl_sq_CreateDigital(abc); + + esl_sqfile_SetDigital(sqfp, abc); + block = esl_sq_CreateDigitalBlock(FM_BLOCK_COUNT, abc); + block->complete = FALSE; + max_block_size = FM_BLOCK_OVERLAP+block_size+1 + block_size*.05; // +1 for the '$', +5% of block size because that's the slop allowed by readwindow + + /* Allocate BWT, Text, SA, and FM-index data structures, allowing storage of maximally large sequence*/ + ESL_ALLOC(fm_data, sizeof(FM_DATA) ); + fm_data->T = NULL; + fm_data->BWT_mem = NULL; + fm_data->BWT = NULL; + fm_data->SA = NULL; + fm_data->C = NULL; + fm_data->occCnts_sb = NULL; + fm_data->occCnts_b = NULL; + + ESL_ALLOC (fm_data->T, max_block_size * sizeof(uint8_t)); + ESL_ALLOC (fm_data->BWT_mem, max_block_size * sizeof(uint8_t)); + fm_data->BWT = fm_data->BWT_mem; // in SSE code, used to align memory. Here, doesn't matter + ESL_ALLOC (fm_data->SA, max_block_size * sizeof(int)); + ESL_ALLOC (SAsamp, (floor((double)max_block_size/meta->freq_SA) ) * sizeof(uint32_t)); + ESL_ALLOC (fm_data->occCnts_sb, (1+ceil((double)max_block_size/meta->freq_cnt_sb)) * meta->alph_size * sizeof(uint32_t)); // every freq_cnt_sb positions, store an array of ints + ESL_ALLOC (fm_data->occCnts_b, ( 1+ceil((double)max_block_size/meta->freq_cnt_b)) * meta->alph_size * sizeof(uint16_t)); // every freq_cnt_b positions, store an array of 8-byte ints + ESL_ALLOC (cnts_sb, meta->alph_size * sizeof(uint32_t)); + ESL_ALLOC (cnts_b, meta->alph_size * sizeof(uint16_t)); + + // Open a temporary file, to which FM-index data will be written + if (esl_tmpfile(tmp_filename, &fptmp) != eslOK) esl_fatal("unable to open fm-index tmpfile"); + + /* Main loop: */ + while (status == eslOK ) { + //reset block as an empty vessel + for (i=0; icount; i++){ + esl_sq_Reuse(block->list + i); + } + // Check how much space the block structure is using and re-allocate if it has grown to more than 20*block_size bytes + // this loop iterates from 0 to block->listsize rather than block->count because we want to count all of the + // block's sub-structures, not just the ones that contained sequence data after the last call to ReadBlock() + // This doesn't check some of the less-common sub-structures in a sequence, but it should be good enough for + // our goal of keeping block size under control + uint64_t block_space = 0; + for(i=0; ilistSize; i++){ + block_space += block->list[i].nalloc; + block_space += block->list[i].aalloc; + block_space += block->list[i].dalloc; + block_space += block->list[i].srcalloc; + block_space += block->list[i].salloc; + if (block->list[i].ss != NULL){ + block_space += block->list[i].salloc; // ss field is not always presesnt, but takes salloc bytes if it is + } + } + + if(block_space > 20*block_size){ + ESL_SQ_BLOCK *new_block = esl_sq_CreateDigitalBlock(FM_BLOCK_COUNT, abc); + new_block->count = block->count; // copying this field shouldn't be necessary, but I can't guarantee that it isn't. + new_block->listSize = block->listSize; + new_block->complete = block->complete; + new_block->first_seqidx = block->first_seqidx; + esl_sq_DestroyBlock(block); + block = new_block; + } + if (use_tmpsq) { + esl_sq_Copy(tmpsq , block->list); + block->complete = FALSE; //this lets ReadBlock know that it needs to append to a small bit of previously-read seqeunce + block->list->C = FM_BLOCK_OVERLAP; // overload the ->C value, which ReadBlock uses to determine how much + // overlap should be retained in the ReadWindow step + } else { + block->complete = TRUE; + } + + + status = esl_sqio_ReadBlock(sqfp, block, block_size, -1, /*max_init_window=*/FALSE, alphatype != eslAMINO); + if (status == eslEOF) continue; + if (status != eslOK) esl_fatal("Parse failed (sequence file %s): status:%d\n%s\n", + sqfp->filename, status, esl_sqfile_GetErrorBuf(sqfp)); + + seq_offset = numseqs; + ambig_offset = meta->ambig_list->count; + + if (block->complete || block->count == 0) { + use_tmpsq = FALSE; + } else { + /* The final sequence on the block was a probably-incomplete window of the active sequence. + * Grab a copy of the end for use in the next pass, to ensure we don't miss hits crossing + * the boundary between two blocks. + */ + esl_sq_Copy(block->list + (block->count - 1) , tmpsq); + use_tmpsq = TRUE; + } + + block->first_seqidx = sq_cnt; + sq_cnt += block->count - (use_tmpsq ? 1 : 0);// if there's an incomplete sequence read into the block wait to count it until it's complete. + + + /* Read dseqs from block into text element T. + * Convert the dsq from esl-alphabet to fm-alphabet (1..k for alphabet of size k). + * (a) collapsing upper/lower case for appropriate sorting. + * (b) reserving 0 for '$', which must be lexicographically smallest + * (these will later be shifted to 0-based alphabet, once SA has been built) + * + */ + block_length = 0; + for (i=0; icount; i++) { + + //start a new block, with space for the name + allocateSeqdata(meta, block->list+i, numseqs, &allocedseqs); + + //meta data + meta->seq_data[numseqs].target_id = block->first_seqidx + i ; + meta->seq_data[numseqs].target_start = block->list[i].start; + meta->seq_data[numseqs].fm_start = block_length; + + if (block->list[i].name == NULL) meta->seq_data[numseqs].name[0] = '\0'; + else strcpy(meta->seq_data[numseqs].name, block->list[i].name ); + if (block->list[i].acc == NULL) meta->seq_data[numseqs].acc[0] = '\0'; + else strcpy(meta->seq_data[numseqs].acc, block->list[i].acc ); + if (block->list[i].source == NULL) meta->seq_data[numseqs].source[0] = '\0'; + else strcpy(meta->seq_data[numseqs].source, block->list[i].source ); + if (block->list[i].desc == NULL) meta->seq_data[numseqs].desc[0] = '\0'; + else strcpy(meta->seq_data[numseqs].desc, block->list[i].desc ); + + for (j=1; j<=block->list[i].n; j++) { + c = abc->sym[block->list[i].dsq[j]]; + if ( meta->alph_type == fm_DNA) { + if (meta->inv_alph[c] == -1) { + // replace ambiguity characters by random choice of A,C,G, and T. + c = meta->alph[(int)(esl_random(r)*4)]; + + if (!in_ambig_run) { + fm_addAmbiguityRange(meta->ambig_list, block_length, block_length); + in_ambig_run=1; + } else { + meta->ambig_list->ranges[meta->ambig_list->count - 1].upper = block_length; + } + } else { + in_ambig_run=0; + } + } else if (meta->inv_alph[c] == -1) { + esl_fatal("requested alphabet doesn't match input text\n"); + } + + fm_data->T[block_length] = meta->inv_alph[c]; + + block_length++; + if (j>block->list[i].C) total_char_count++; // add to total count, only if it's not redundant with earlier read + meta->seq_data[numseqs].length++; + } + numseqs++; + in_ambig_run = 0; + } + + fm_data->T[block_length] = 0; // last character 0 is effectively '$' for suffix array + block_length++; + + seq_cnt = numseqs-seq_offset; + ambig_cnt = meta->ambig_list->count - ambig_offset; + + + //build and write FM-index for T. This will be a BWT on the reverse of the sequence, required for reverse-traversal of the BWT + buildAndWriteFMIndex(meta, seq_offset, ambig_offset, seq_cnt, ambig_cnt, (uint32_t)block->list[0].C, fm_data, + SAsamp, cnts_sb, cnts_b, block_length, &Tcompressed, fptmp); + + + if ( ! meta->fwd_only ) { + //build and write FM-index for un-reversed T (used to find reverse hits using forward traversal of the BWT + buildAndWriteFMIndex(meta, seq_offset, ambig_offset, seq_cnt, ambig_cnt, 0, fm_data, + NULL, cnts_sb, cnts_b, block_length, &Tcompressed, fptmp); + } + numblocks++; + } + + + esl_sqfile_Close(sqfp); + esl_alphabet_Destroy(abc); + esl_sq_Destroy(sq); + esl_sq_Destroy(tmpsq); + esl_sq_DestroyBlock(block); + + esl_randomness_Destroy(r); + + meta->seq_count = numseqs; + meta->block_count = numblocks; + + /* Finished writing the FM-index data to a temporary file. Now write + * metadata to fname_out, than append FM-index data from temp file + */ + if((fp = fopen(fname_out, "wb")) == NULL) + esl_fatal( "%s: Cannot open file `%s': ", argv[0], fname_out); + + + //write out meta data + if( fwrite(&(meta->fwd_only), sizeof(meta->fwd_only), 1, fp) != 1 || + fwrite(&(meta->alph_type), sizeof(meta->alph_type), 1, fp) != 1 || + fwrite(&(meta->alph_size), sizeof(meta->alph_size), 1, fp) != 1 || + fwrite(&(meta->charBits), sizeof(meta->charBits), 1, fp) != 1 || + fwrite(&(meta->freq_SA), sizeof(meta->freq_SA), 1, fp) != 1 || + fwrite(&(meta->freq_cnt_sb), sizeof(meta->freq_cnt_sb), 1, fp) != 1 || + fwrite(&(meta->freq_cnt_b), sizeof(meta->freq_cnt_b), 1, fp) != 1 || + fwrite(&(meta->block_count), sizeof(meta->block_count), 1, fp) != 1 || + fwrite(&(meta->seq_count), sizeof(meta->seq_count), 1, fp) != 1 || + fwrite(&(meta->ambig_list->count), sizeof(meta->ambig_list->count), 1, fp) != 1 || + fwrite(&total_char_count, sizeof(total_char_count), 1, fp) != 1 + ) + esl_fatal( "%s: Error writing meta data for FM index.\n", argv[0]); + + + for (i=0; iseq_count; i++) { + + if( fwrite(&(meta->seq_data[i].target_id), sizeof(meta->seq_data[i].target_id), 1, fp) != 1 || + fwrite(&(meta->seq_data[i].target_start), sizeof(meta->seq_data[i].target_start), 1, fp) != 1 || + fwrite(&(meta->seq_data[i].fm_start), sizeof(meta->seq_data[i].fm_start), 1, fp) != 1 || + fwrite(&(meta->seq_data[i].length), sizeof(meta->seq_data[i].length), 1, fp) != 1 || + fwrite(&(meta->seq_data[i].name_length), sizeof(meta->seq_data[i].name_length), 1, fp) != 1 || + fwrite(&(meta->seq_data[i].acc_length), sizeof(meta->seq_data[i].acc_length), 1, fp) != 1 || + fwrite(&(meta->seq_data[i].source_length),sizeof(meta->seq_data[i].source_length), 1, fp) != 1 || + fwrite(&(meta->seq_data[i].desc_length), sizeof(meta->seq_data[i].desc_length), 1, fp) != 1 || + fwrite(meta->seq_data[i].name, sizeof(char), meta->seq_data[i].name_length+1 , fp) != meta->seq_data[i].name_length+1 || + fwrite(meta->seq_data[i].acc, sizeof(char), meta->seq_data[i].acc_length+1 , fp) != meta->seq_data[i].acc_length+1 || + fwrite(meta->seq_data[i].source, sizeof(char), meta->seq_data[i].source_length+1, fp) != meta->seq_data[i].source_length+1 || + fwrite(meta->seq_data[i].desc, sizeof(char), meta->seq_data[i].desc_length+1 , fp) != meta->seq_data[i].desc_length+1 + ) + esl_fatal( "%s: Error writing meta data for FM index.\n", argv[0]); + } + for (i=0; iambig_list->count; i++) { + if( fwrite(&(meta->ambig_list->ranges[i].lower), sizeof(meta->ambig_list->ranges[i].lower), 1, fp) != 1 || + fwrite(&(meta->ambig_list->ranges[i].upper), sizeof(meta->ambig_list->ranges[i].upper), 1, fp) != 1 + ) + esl_fatal( "%s: Error writing ambiguity data for FM index.\n", argv[0]); + } + + + /* now append the FM-index data in fptmp to the desired output file, fp */ + rewind(fptmp); + for (i=0; ifwd_only?1:2); j++ ) { //do this once or twice, once for forward-T index, and possibly once for reversed + //first, read + if(fread(&block_length, sizeof(block_length), 1, fptmp) != 1) + esl_fatal( "%s: Error reading block_length in FM index.\n", argv[0]); + if(fread(&term_loc, sizeof(term_loc), 1, fptmp) != 1) + esl_fatal( "%s: Error reading terminal location in FM index.\n", argv[0]); + if(fread(&seq_offset, sizeof(seq_offset), 1, fptmp) != 1) + esl_fatal( "%s: Error reading seq_offset in FM index.\n", argv[0]); + if(fread(&ambig_offset, sizeof(ambig_offset ), 1, fptmp) != 1) + esl_fatal( "%s: Error reading ambig_offset in FM index.\n", argv[0]); + if(fread(&overlap, sizeof(overlap), 1, fptmp) != 1) + esl_fatal( "%s: Error reading overlap in FM index.\n", argv[0]); + if(fread(&seq_cnt, sizeof(seq_cnt), 1, fptmp) != 1) + esl_fatal( "%s: Error reading seq_cnt in FM index.\n", argv[0]); + if(fread(&ambig_cnt, sizeof(ambig_cnt), 1, fptmp) != 1) + esl_fatal( "%s: Error reading ambig_cnt in FM index.\n", argv[0]); + + + compressed_bytes = ((chars_per_byte-1+block_length)/chars_per_byte); + num_freq_cnts_b = 1+ceil((double)block_length/meta->freq_cnt_b); + num_freq_cnts_sb = 1+ceil((double)block_length/meta->freq_cnt_sb); + num_SA_samples = floor((double)block_length/meta->freq_SA); + + + //j==0 test cause T and SA to be written only for forward sequence + if(j==0 && fread(fm_data->T, sizeof(uint8_t), compressed_bytes, fptmp) != compressed_bytes) + esl_fatal( "%s: Error reading T in FM index.\n", argv[0]); + if(fread(fm_data->BWT, sizeof(uint8_t), compressed_bytes, fptmp) != compressed_bytes) + esl_fatal( "%s: Error reading BWT in FM index.\n", argv[0]); + if(j==0 && fread(SAsamp, sizeof(uint32_t), (size_t)num_SA_samples, fptmp) != (size_t)num_SA_samples) + esl_fatal( "%s: Error reading SA in FM index.\n", argv[0]); + if(fread(fm_data->occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, fptmp) != (size_t)num_freq_cnts_b) + esl_fatal( "%s: Error reading occCnts_b in FM index.\n", argv[0]); + if(fread(fm_data->occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, fptmp) != (size_t)num_freq_cnts_sb) + esl_fatal( "%s: Error reading occCnts_sb in FM index.\n", argv[0]); + + + + //then, write + if(fwrite(&block_length, sizeof(block_length), 1, fp) != 1) + esl_fatal( "%s: Error writing block_length in FM index.\n", argv[0]); + if(fwrite(&term_loc, sizeof(term_loc), 1, fp) != 1) + esl_fatal( "%s: Error writing terminal location in FM index.\n", argv[0]); + if(fwrite(&seq_offset, sizeof(seq_offset), 1, fp) != 1) + esl_fatal( "%s: Error writing seq_offset in FM index.\n", argv[0]); + if(fwrite(&ambig_offset, sizeof(ambig_offset), 1, fp) != 1) + esl_fatal( "%s: Error writing ambig_offset in FM index.\n", argv[0]); + if(fwrite(&overlap, sizeof(overlap), 1, fp) != 1) + esl_fatal( "%s: Error writing overlap in FM index.\n", argv[0]); + if(fwrite(&seq_cnt, sizeof(seq_cnt), 1, fp) != 1) + esl_fatal( "%s: Error writing seq_cnt in FM index.\n", argv[0]); + if(fwrite(&ambig_cnt, sizeof(ambig_cnt), 1, fp) != 1) + esl_fatal( "%s: Error writing ambig_cnt in FM index.\n", argv[0]); + + + if(j==0 && fwrite(fm_data->T, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes) + esl_fatal( "%s: Error writing T in FM index.\n", argv[0]); + if(fwrite(fm_data->BWT, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes) + esl_fatal( "%s: Error writing BWT in FM index.\n", argv[0]); + if(j==0 && fwrite(SAsamp, sizeof(uint32_t), (size_t)num_SA_samples, fp) != (size_t)num_SA_samples) + esl_fatal( "%s: Error writing SA in FM index.\n", argv[0]); + if(fwrite(fm_data->occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, fp) != (size_t)num_freq_cnts_b) + esl_fatal( "%s: Error writing occCnts_b in FM index.\n", argv[0]); + if(fwrite(fm_data->occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, fp) != (size_t)num_freq_cnts_sb) + esl_fatal( "%s: Error writing occCnts_sb in FM index.\n", argv[0]); + + } + } + + fclose(fp); + fclose(fptmp); + + + if (fm_data != NULL) + fm_FM_destroy(fm_data, TRUE); + free(fm_data); + free(SAsamp); + + free(cnts_b); + free(cnts_sb); + + free(Tcompressed); + + fm_metaDestroy(meta); + esl_getopts_Destroy(go); + + + // compute and print the elapsed time in millisec + t2 = times(&ts2); + { + double clk_ticks = sysconf(_SC_CLK_TCK); + double elapsedTime = (t2-t1)/clk_ticks; + + fprintf (stderr, "run time: %.2f seconds\n", elapsedTime); + } + + + return (eslOK); + + +ERROR: + /* Deallocate memory. */ + if (fp) fclose(fp); + if (fm_data) fm_FM_destroy(fm_data, TRUE); + free(fm_data); + + free(SAsamp); + free(cnts_b); + free(cnts_sb); + + fm_metaDestroy(meta); + esl_getopts_Destroy(go); + + + esl_sqfile_Close(sqfp); + esl_alphabet_Destroy(abc); + esl_sq_Destroy(sq); + if (tmpsq) esl_sq_Destroy(tmpsq); + if (block) esl_sq_DestroyBlock(block); + + fprintf (stderr, "failure during memory allocation\n"); + + exit(status); + +} diff --git a/bioinformaticsProject/hmmer/src/modelconfig.c b/bioinformaticsProject/hmmer/src/modelconfig.c new file mode 100644 index 0000000..eb7c48a --- /dev/null +++ b/bioinformaticsProject/hmmer/src/modelconfig.c @@ -0,0 +1,1121 @@ +/* Model configuration: + * Converting a core model to a fully configured Plan7 search profile. + * + * Contents: + * 1. Routines in the exposed API. + * 2. Unit tests. + * 3. Test driver. + * 4. Statistics collection driver. + * + * Revised May 2005: xref STL9/77-81. (Uniform fragment distribution) + * Again, Sept 2005: xref STL10/24-26. (Inherent target length dependency) + * Again, Jan 2007: xref STL11/125,136-137 (HMMER3) + * Again, Jul 2007: xref J1/103 (floating point ops) + */ +#include "p7_config.h" + +#include +#include +#include +#include + +#include "easel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + + +/***************************************************************** + * 1. Routines in the exposed API. + *****************************************************************/ + +/* Function: p7_ProfileConfig() + * Synopsis: Configure a search profile. + * + * Purpose: Given a model with core probabilities, the null1 + * model , a desired search (one of , + * , , or ), and an + * expected target sequence length ; configure the + * search model in with lod scores relative to the + * background frequencies in . + * + * Returns: on success; the profile now contains + * scores and is ready for searching target sequences. + * + * Throws: on allocation error. + */ +int +p7_ProfileConfig(const P7_HMM *hmm, const P7_BG *bg, P7_PROFILE *gm, int L, int mode) +{ + int k, x, z; /* counters over states, residues, annotation */ + int status; + float *occ = NULL; + float *tp, *rp; + float sc[p7_MAXCODE]; + float Z; + + /* Contract checks */ + if (gm->abc->type != hmm->abc->type) ESL_XEXCEPTION(eslEINVAL, "HMM and profile alphabet don't match"); + if (hmm->M > gm->allocM) ESL_XEXCEPTION(eslEINVAL, "profile too small to hold HMM"); + if (! (hmm->flags & p7H_CONS)) ESL_XEXCEPTION(eslEINVAL, "HMM must have a consensus to transfer to the profile"); + + /* Copy some pointer references and other info across from HMM */ + gm->M = hmm->M; + gm->max_length = hmm->max_length; + gm->mode = mode; + gm->roff = -1; + gm->eoff = -1; + gm->offs[p7_MOFFSET] = -1; + gm->offs[p7_FOFFSET] = -1; + gm->offs[p7_POFFSET] = -1; + if (gm->name != NULL) free(gm->name); + if (gm->acc != NULL) free(gm->acc); + if (gm->desc != NULL) free(gm->desc); + if ((status = esl_strdup(hmm->name, -1, &(gm->name))) != eslOK) goto ERROR; + if ((status = esl_strdup(hmm->acc, -1, &(gm->acc))) != eslOK) goto ERROR; + if ((status = esl_strdup(hmm->desc, -1, &(gm->desc))) != eslOK) goto ERROR; + if (hmm->flags & p7H_RF) strcpy(gm->rf, hmm->rf); + if (hmm->flags & p7H_MMASK) strcpy(gm->mm, hmm->mm); + if (hmm->flags & p7H_CONS) strcpy(gm->consensus, hmm->consensus); /* must be present, actually, so the flag test is just for symmetry w/ other optional HMM fields */ + if (hmm->flags & p7H_CS) strcpy(gm->cs, hmm->cs); + for (z = 0; z < p7_NEVPARAM; z++) gm->evparam[z] = hmm->evparam[z]; + for (z = 0; z < p7_NCUTOFFS; z++) gm->cutoff[z] = hmm->cutoff[z]; + for (z = 0; z < p7_MAXABET; z++) gm->compo[z] = hmm->compo[z]; + + /* Entry scores. */ + if (p7_profile_IsLocal(gm)) + { + /* Local mode entry: occ[k] /( \sum_i occ[i] * (M-i+1)) + * (Reduces to uniform 2/(M(M+1)) for occupancies of 1.0) */ + Z = 0.; + ESL_ALLOC(occ, sizeof(float) * (hmm->M+1)); + + if ((status = p7_hmm_CalculateOccupancy(hmm, occ, NULL)) != eslOK) goto ERROR; + for (k = 1; k <= hmm->M; k++) + Z += occ[k] * (float) (hmm->M-k+1); + for (k = 1; k <= hmm->M; k++) + p7P_TSC(gm, k-1, p7P_BM) = log(occ[k] / Z); /* note off-by-one: entry at Mk stored as [k-1][BM] */ + + free(occ); + } + else /* glocal modes: left wing retraction; must be in log space for precision */ + { + Z = log(hmm->t[0][p7H_MD]); + p7P_TSC(gm, 0, p7P_BM) = log(1.0 - hmm->t[0][p7H_MD]); + for (k = 1; k < hmm->M; k++) + { + p7P_TSC(gm, k, p7P_BM) = Z + log(hmm->t[k][p7H_DM]); + Z += log(hmm->t[k][p7H_DD]); + } + } + + /* E state loop/move probabilities: nonzero for MOVE allows loops/multihits + * N,C,J transitions are set later by length config + */ + if (p7_profile_IsMultihit(gm)) { + gm->xsc[p7P_E][p7P_MOVE] = -eslCONST_LOG2; + gm->xsc[p7P_E][p7P_LOOP] = -eslCONST_LOG2; + gm->nj = 1.0f; + } else { + gm->xsc[p7P_E][p7P_MOVE] = 0.0f; + gm->xsc[p7P_E][p7P_LOOP] = -eslINFINITY; + gm->nj = 0.0f; + } + + /* Transition scores. */ + for (k = 1; k < gm->M; k++) { + tp = gm->tsc + k * p7P_NTRANS; + tp[p7P_MM] = log(hmm->t[k][p7H_MM]); + tp[p7P_MI] = log(hmm->t[k][p7H_MI]); + tp[p7P_MD] = log(hmm->t[k][p7H_MD]); + tp[p7P_IM] = log(hmm->t[k][p7H_IM]); + tp[p7P_II] = log(hmm->t[k][p7H_II]); + tp[p7P_DM] = log(hmm->t[k][p7H_DM]); + tp[p7P_DD] = log(hmm->t[k][p7H_DD]); + } + + /* Match emission scores. */ + sc[hmm->abc->K] = -eslINFINITY; /* gap character */ + sc[hmm->abc->Kp-2] = -eslINFINITY; /* nonresidue character */ + sc[hmm->abc->Kp-1] = -eslINFINITY; /* missing data character */ + for (k = 1; k <= hmm->M; k++) { + for (x = 0; x < hmm->abc->K; x++) + sc[x] = log((double)hmm->mat[k][x] / bg->f[x]); + + esl_abc_FExpectScVec(hmm->abc, sc, bg->f); + + for (x = 0; x < hmm->abc->Kp; x++) { + rp = gm->rsc[x] + k * p7P_NR; + rp[p7P_MSC] = sc[x]; + } + } + + /* Insert emission scores */ + /* SRE, Fri Dec 5 08:41:08 2008: We currently hardwire insert scores + * to 0, i.e. corresponding to the insertion emission probabilities + * being equal to the background probabilities. Benchmarking shows + * that setting inserts to informative emission distributions causes + * more problems than it's worth: polar biased composition hits + * driven by stretches of "insertion" occur, and are difficult to + * correct for. + */ + for (x = 0; x < gm->abc->Kp; x++) + { + for (k = 1; k < hmm->M; k++) p7P_ISC(gm, k, x) = 0.0f; + p7P_ISC(gm, hmm->M, x) = -eslINFINITY; /* init I_M to impossible. */ + } + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->K) = -eslINFINITY; /* gap symbol */ + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->Kp-2) = -eslINFINITY; /* nonresidue symbol */ + for (k = 1; k <= hmm->M; k++) p7P_ISC(gm, k, gm->abc->Kp-1) = -eslINFINITY; /* missing data symbol */ + + +#if 0 + /* original (informative) insert setting: relies on sc[K, Kp-1] initialization to -inf above */ + for (k = 1; k < hmm->M; k++) { + for (x = 0; x < hmm->abc->K; x++) + sc[x] = log(hmm->ins[k][x] / bg->f[x]); + esl_abc_FExpectScVec(hmm->abc, sc, bg->f); + for (x = 0; x < hmm->abc->Kp; x++) { + rp = gm->rsc[x] + k*p7P_NR; + rp[p7P_ISC] = sc[x]; + } + } + for (x = 0; x < hmm->abc->Kp; x++) + p7P_ISC(gm, hmm->M, x) = -eslINFINITY; /* init I_M to impossible. */ +#endif + + /* Remaining specials, [NCJ][MOVE | LOOP] are set by ReconfigLength() + */ + gm->L = 0; /* force ReconfigLength to reconfig */ + if ((status = p7_ReconfigLength(gm, L)) != eslOK) goto ERROR; + return eslOK; + + ERROR: + if (occ != NULL) free(occ); + return status; +} + + +/* Function: p7_ReconfigLength() + * Synopsis: Set the target sequence length of a model. + * + * Purpose: Given a model already configured for scoring, in some + * particular algorithm mode; reset the expected length + * distribution of the profile for a new mean of . + * + * This doesn't affect the length distribution of the null + * model. That must also be reset, using . + * + * We want this routine to run as fast as possible, because + * the caller needs to dynamically reconfigure the model + * for the length of each target sequence in a database + * search. The profile has precalculated nj>, + * the number of times the J state is expected to be used, + * based on the E state loop transition in the current + * configuration. + * + * Returns: on success; xsc[NCJ] scores are set here. These + * control the target length dependence of the model. + */ +int +p7_ReconfigLength(P7_PROFILE *gm, int L) +{ + float ploop, pmove; + + /* Configure N,J,C transitions so they bear L/(2+nj) of the total + * unannotated sequence length L. + */ + pmove = (2.0f + gm->nj) / ((float) L + 2.0f + gm->nj); /* 2/(L+2) for sw; 3/(L+3) for fs */ + ploop = 1.0f - pmove; + gm->xsc[p7P_N][p7P_LOOP] = gm->xsc[p7P_C][p7P_LOOP] = gm->xsc[p7P_J][p7P_LOOP] = log(ploop); + gm->xsc[p7P_N][p7P_MOVE] = gm->xsc[p7P_C][p7P_MOVE] = gm->xsc[p7P_J][p7P_MOVE] = log(pmove); + gm->L = L; + return eslOK; +} + +/* Function: p7_ReconfigMultihit() + * Synopsis: Quickly reconfig model into multihit mode for target length . + * + * Purpose: Given a profile that's already been configured once, + * quickly reconfigure it into a multihit mode for target + * length . + * + * This gets called in domain definition, when we need to + * flip the model in and out of unihit mode to + * process individual domains. + * + * Note: You can't just flip uni/multi mode alone, because that + * parameterization also affects target length + * modeling. You need to make sure uni vs. multi choice is + * made before the length model is set, and you need to + * make sure the length model is recalculated if you change + * the uni/multi mode. Hence, these functions call + * . + */ +int +p7_ReconfigMultihit(P7_PROFILE *gm, int L) +{ + gm->xsc[p7P_E][p7P_MOVE] = -eslCONST_LOG2; + gm->xsc[p7P_E][p7P_LOOP] = -eslCONST_LOG2; + gm->nj = 1.0f; + return p7_ReconfigLength(gm, L); +} + +/* Function: p7_ReconfigUnihit() + * Synopsis: Quickly reconfig model into unihit mode for target length . + * + * Purpose: Given a profile that's already been configured once, + * quickly reconfigure it into a unihit mode for target + * length . + * + * This gets called in domain definition, when we need to + * flip the model in and out of unihit mode to + * process individual domains. + */ +int +p7_ReconfigUnihit(P7_PROFILE *gm, int L) +{ + gm->xsc[p7P_E][p7P_MOVE] = 0.0f; + gm->xsc[p7P_E][p7P_LOOP] = -eslINFINITY; + gm->nj = 0.0f; + return p7_ReconfigLength(gm, L); +} + + +/***************************************************************** + * 2. Unit tests + *****************************************************************/ +#ifdef p7MODELCONFIG_TESTDRIVE + +/* The Config test simply makes sure a random profile passes + * a Validate() check. + */ +static void +utest_Config(P7_HMM *hmm, P7_BG *bg) +{ + char *msg = "modelconfig.c::p7_ProfileConfig() unit test failed"; + P7_PROFILE *gm = NULL; + + if ((gm = p7_profile_Create(hmm->M, hmm->abc)) == NULL) esl_fatal(msg); + if (p7_ProfileConfig(hmm, bg, gm, 350, p7_LOCAL) != eslOK) esl_fatal(msg); + if (p7_profile_Validate(gm, NULL, 0.0001) != eslOK) esl_fatal(msg); + + p7_profile_Destroy(gm); + return; +} + +/* Note that calculate_occupancy has moved to p7_hmm.c, but + * unit tests over there aren't hooked up yet; so leave a copy of the unit test + * here for now. + */ +static void +utest_occupancy(P7_HMM *hmm) +{ + char *msg = "modelconfig.c::calculate_occupancy() unit test failed"; + float *occ; + float x; + + occ = malloc(sizeof(float) * (hmm->M+1)); + p7_hmm_CalculateOccupancy(hmm, occ, NULL); + x = esl_vec_FSum(occ+1, hmm->M) / (float) hmm->M; + if (esl_FCompare(x, 0.6, 0.1) != eslOK) esl_fatal(msg); + free(occ); + return; +} +#endif /*p7MODELCONFIG_TESTDRIVE*/ + + + +/***************************************************************** + * 3. Test driver + *****************************************************************/ +#ifdef p7MODELCONFIG_TESTDRIVE + +/* gcc -g -Wall -Dp7MODELCONFIG_TESTDRIVE -I. -I../easel -L. -L../easel -o modelconfig_utest modelconfig.c -lhmmer -leasel -lm + * ./modelconfig_utest + */ +#include "easel.h" + +#include "p7_config.h" +#include "hmmer.h" + + +int +main(int argc, char **argv) +{ + ESL_ALPHABET *abc = NULL; + ESL_RANDOMNESS *r = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + int M = 10000; + + if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create amino alphabet"); + if ((r = esl_randomness_CreateFast(0)) == NULL) esl_fatal("failed to create randomness"); + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample random HMM"); + if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to created null model"); + + utest_Config(hmm, bg); + utest_occupancy(hmm); + + p7_hmm_Destroy(hmm); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + return eslOK; +} +#endif /*p7MODELCONFIG_TESTDRIVE*/ + + + +/***************************************************************** + * 4. Statistics collection driver. + *****************************************************************/ +#ifdef p7MODELCONFIG_STATS +/* gcc -g -Wall -Dp7MODELCONFIG_STATS -I. -I../easel -L. -L../easel -o statprog modelconfig.c -lhmmer -leasel -lm + * ./statprog + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_dmatrix.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_sq.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-i", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "sample by two-step ideal rule, not from profile", 0}, + { "-m", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "-u,-M", "input HMM from file instead of sampling",0 }, + { "-n", eslARG_INT, "100000", NULL, "n>0", NULL, NULL, NULL, "number of seqs to sample", 0 }, + { "-s", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-m,-u", "make sampled HMM uniform transitions, as S/W", 0}, + { "-u", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-m,-s", "make sampled HMM ungapped", 0 }, + { "-L", eslARG_INT, "400", NULL,"n>=0", NULL, NULL, NULL, "set expected length from profile to ", 0 }, + { "-M", eslARG_INT, "50", NULL, "n>0", NULL, NULL, "-m", "set sampled model length to ", 0 }, + { "-2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "emulate HMMER2 configuration", 0 }, + { "--ips", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output PostScript mx of i endpoints to ", 0 }, + { "--kps", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output PostScript mx of k endpoints to ", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "./statprog [options]"; + +static int ideal_local_endpoints(ESL_RANDOMNESS *r, P7_HMM *hmm, ESL_SQ *sq, P7_TRACE *tr, int Lbins, + int *ret_i1, int *ret_i2, int *ret_k1, int *ret_k2); +static int profile_local_endpoints(ESL_RANDOMNESS *r, P7_HMM *core, P7_PROFILE *gm, ESL_SQ *sq, P7_TRACE *tr, int Lbins, + int *ret_i1, int *ret_i2, int *ret_k1, int *ret_k2); + +int +main(int argc, char **argv) +{ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + ESL_GETOPTS *go = NULL; /* command line processing */ + ESL_RANDOMNESS *r = NULL; /* source of randomness */ + P7_HMM *hmm = NULL; /* sampled HMM to emit from */ + P7_HMM *core = NULL; /* safe copy of the HMM, before config */ + P7_BG *bg = NULL; /* null model */ + ESL_SQ *sq = NULL; /* sampled sequence */ + P7_TRACE *tr = NULL; /* sampled trace */ + P7_PROFILE *gm = NULL; /* profile */ + int i,j; + int i1,i2; + int k1,k2; + int iseq; + FILE *fp = NULL; + double expected; + + int do_ilocal; + char *hmmfile = NULL; + int nseq; + int do_swlike; + int do_ungapped; + int L; + int M; + int do_h2; + char *ipsfile = NULL; + char *kpsfile = NULL; + ESL_DMATRIX *imx = NULL; + ESL_DMATRIX *kmx = NULL; + ESL_DMATRIX *iref = NULL; /* reference matrix: expected i distribution under ideality */ + int Lbins; + int status; + char errbuf[eslERRBUFSIZE]; + + /***************************************************************** + * Parse the command line + *****************************************************************/ + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) esl_fatal("Failed to parse command line: %s\n", go->errbuf); + if (esl_opt_VerifyConfig(go) != eslOK) esl_fatal("Failed to parse command line: %s\n", go->errbuf); + if (esl_opt_GetBoolean(go, "-h") == TRUE) { + puts(usage); + puts("\n where options are:\n"); + esl_opt_DisplayHelp(stdout, go, 0, 2, 80); /* 0=all docgroups; 2 = indentation; 80=textwidth*/ + return eslOK; + } + do_ilocal = esl_opt_GetBoolean(go, "-i"); + hmmfile = esl_opt_GetString (go, "-m"); + nseq = esl_opt_GetInteger(go, "-n"); + do_swlike = esl_opt_GetBoolean(go, "-s"); + do_ungapped = esl_opt_GetBoolean(go, "-u"); + L = esl_opt_GetInteger(go, "-L"); + M = esl_opt_GetInteger(go, "-M"); + do_h2 = esl_opt_GetBoolean(go, "-2"); + ipsfile = esl_opt_GetString (go, "--ips"); + kpsfile = esl_opt_GetString (go, "--kps"); + + if (esl_opt_ArgNumber(go) != 0) { + puts("Incorrect number of command line arguments."); + printf("Usage: %s [options]\n", argv[0]); + return eslFAIL; + } + + r = esl_randomness_CreateFast(0); + + if (hmmfile != NULL) + { /* Read the HMM (and get alphabet from it) */ + P7_HMMFILE *hfp = NULL; + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + if ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslOK) { + if (status == eslEOD) esl_fatal("read failed, HMM file %s may be truncated?", hmmfile); + else if (status == eslEFORMAT) esl_fatal("bad file format in HMM file %s", hmmfile); + else if (status == eslEINCOMPAT) esl_fatal("HMM file %s contains different alphabets", hmmfile); + else esl_fatal("Unexpected error in reading HMMs"); + } + M = hmm->M; + p7_hmmfile_Close(hfp); + } + else + { /* Or sample the HMM (create alphabet first) */ + abc = esl_alphabet_Create(eslAMINO); + if (do_ungapped) p7_hmm_SampleUngapped(r, M, abc, &hmm); + else if (do_swlike) p7_hmm_SampleUniform (r, M, abc, 0.05, 0.5, 0.05, 0.2, &hmm); /* tmi, tii, tmd, tdd */ + else p7_hmm_Sample (r, M, abc, &hmm); + } + + Lbins = M; + imx = esl_dmatrix_Create(Lbins, Lbins); + iref = esl_dmatrix_Create(Lbins, Lbins); + kmx = esl_dmatrix_Create(M, M); + esl_dmatrix_SetZero(imx); + esl_dmatrix_SetZero(iref); + esl_dmatrix_SetZero(kmx); + tr = p7_trace_Create(); + sq = esl_sq_CreateDigital(abc); + bg = p7_bg_Create(abc); + core = p7_hmm_Clone(hmm); + + if (do_h2) { + gm = p7_profile_Create(hmm->M, abc); + p7_H2_ProfileConfig(hmm, bg, gm, p7_UNILOCAL); + } else { + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL); + if (p7_hmm_Validate (hmm, NULL, 0.0001) != eslOK) esl_fatal("whoops, HMM is bad!"); + if (p7_profile_Validate(gm, NULL, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!"); + } + + /* Sample endpoints. + * Also sample an ideal reference distribution for i endpoints. i + * endpoints are prone to discretization artifacts, when emitted + * sequences have varying lengths. Taking log odds w.r.t. an ideal + * reference that is subject to the same discretization artifacts + * cancels out the effect. + */ + for (iseq = 0; iseq < nseq; iseq++) + { + if (do_ilocal) ideal_local_endpoints (r, core, sq, tr, Lbins, &i1, &i2, &k1, &k2); + else profile_local_endpoints(r, core, gm, sq, tr, Lbins, &i1, &i2, &k1, &k2); + + imx->mx[i1-1][i2-1] += 1.; + kmx->mx[k1-1][k2-1] += 1.; + + /* reference distribution for i */ + ideal_local_endpoints (r, core, sq, tr, Lbins, &i1, &i2, &k1, &k2); + iref->mx[i1-1][i2-1] += 1.; + } + + + /* Adjust both mx's to log_2(obs/exp) ratio */ + printf("Before normalization/log-odds:\n"); + printf(" i matrix values range from %f to %f\n", dmx_upper_min(imx), dmx_upper_max(imx)); + printf(" k matrix values range from %f to %f\n", dmx_upper_min(kmx), dmx_upper_max(kmx)); + printf("iref matrix values range from %f to %f\n", dmx_upper_min(iref), dmx_upper_max(iref)); + + expected = (double) nseq * 2. / (double) (M*(M+1)); + for (i = 0; i < kmx->m; i++) + for (j = i; j < kmx->n; j++) + kmx->mx[i][j] = log(kmx->mx[i][j] / expected) / log(2.0); + + for (i = 0; i < imx->m; i++) + for (j = i; j < imx->m; j++) + if (iref->mx[i][j] == 0. && imx->mx[i][j] == 0.) + imx->mx[i][j] = 0.; + else if (iref->mx[i][j] == 0.) + imx->mx[i][j] = eslINFINITY; + else if (imx->mx[i][j] == 0.) + imx->mx[i][j] = -eslINFINITY; + else + imx->mx[i][j] = log(imx->mx[i][j] / iref->mx[i][j]) / log(2.0); + + /* Print ps files */ + if (kpsfile != NULL) { + if ((fp = fopen(kpsfile, "w")) == NULL) esl_fatal("Failed to open output postscript file %s", kpsfile); + dmx_Visualize(fp, kmx, -4., 5.); + fclose(fp); + } + if (ipsfile != NULL) { + if ((fp = fopen(ipsfile, "w")) == NULL) esl_fatal("Failed to open output postscript file %s", ipsfile); + dmx_Visualize(fp, imx, -4., 5.); + /* dmx_Visualize(fp, imx, dmx_upper_min(imx), dmx_upper_max(imx)); */ + fclose(fp); + } + + printf("After normalization/log-odds:\n"); + printf("i matrix values range from %f to %f\n", dmx_upper_min(imx), dmx_upper_max(imx)); + printf("k matrix values range from %f to %f\n", dmx_upper_min(kmx), dmx_upper_max(kmx)); + + + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(core); + p7_hmm_Destroy(hmm); + p7_trace_Destroy(tr); + esl_sq_Destroy(sq); + esl_dmatrix_Destroy(imx); + esl_dmatrix_Destroy(kmx); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} + +/* ideal_local_endpoints() + * + * Purpose: Implementation of the "two-step" fragment sampling + * algorithm, sampling a uniform local fragment w.r.t. + * sequence coords, by first sampling a complete + * sequence of length L from ; then choosing + * a random fragment uniformly from all + * possible $\frac{L(L+1)/2}$ fragments; then finding + * local alignment coordinates wrt model and sequence, + * using convention that local alignment starts/stops + * with match states. (Thus, if the initially selected + * i1 or i2 were generated by insert states, bounds + * are moved to reach first/last match state.) + * + * The caller also provides an allocated sequence and + * traceback , as storage to be provided to + * . They contain the generated global + * sequence and trace upon return (not a local trace, note). + * + * i endpoints are normalized/discretized to 1.., so + * we can collate i statistics from sampled sequences of + * varying L. Note this causes discretization artifacts, + * leading to underrepresentation of j=M and + * overrepresentation of i=1. + * + * This routine is only intended for collecting endpoint + * statistics (i1,i2,k1,k2); it does not generate a local + * alignment trace. (xref milestone 2, STL11/115). + * + * Returns: on success; returns normalized/binned sequence + * coords in <*ret_i1> and <*ret_i2> in range <1..Lbins> and + * the model entry/exit coords in <*ret_k1> and <*ret_k2> in + * range <1..M>. By internal def'n of local alignment endpoints, + * M_k1 emits residue x_i1, M_k2 emits residue x_i2. + * + * Xref: STL11/142-143 + */ +static int +ideal_local_endpoints(ESL_RANDOMNESS *r, P7_HMM *hmm, ESL_SQ *sq, P7_TRACE *tr, int Lbins, + int *ret_i1, int *ret_i2, int *ret_k1, int *ret_k2) +{ + int status; + int tpos; + int i1, i2, k1,k2, t1,t2; + int all_insert; + int failsafe = 0; /* a failsafe timer for rejection sampling */ + + do { + if (failsafe++ == 1000) ESL_XEXCEPTION(eslENOHALT, "failed to obtain local alignment that wasn't all inserts"); + + if ((status = p7_CoreEmit(r, hmm, sq, tr)) != eslOK) goto ERROR; + + /* a simple way to sample uniformly from upper triangle is by rejection + * this do/while cannot infinite loop, doesn't need failsafe + */ + do { + i1 = 1 + esl_rnd_Roll(r, sq->n); + i2 = 1 + esl_rnd_Roll(r, sq->n); + } while (i1 > i2); + + /* Get initial k1,k2 coords: this step must work in a core model, + * i1/i2 were generated by an M or I. Also record t1,t2 endpoints + * on core's trace. + */ + for (tpos = 0; tpos < tr->N; tpos++) + if (tr->i[tpos] == i1) { t1 = tpos; k1 = tr->k[tpos]; break; } + for (tpos = tr->N-1; tpos >= 0; tpos--) + if (tr->i[tpos] == i2) { t2 = tpos; k2 = tr->k[tpos]; break; } + + /* Enforce the definition of local alignment endpoints being + * match-delimited - roll up any leading/trailing I states. + * Watch out for pathological case of a local fragment that + * includes no M state at all. + */ + all_insert = FALSE; + for (; t1 <= t2; t1++) if (tr->st[t1] == p7T_M) break; + for (; t2 >= t1; t2--) if (tr->st[t2] == p7T_M) break; + if (t2 < t1) all_insert = TRUE; /* sufficient to check both. */ + i1 = tr->i[t1]; i2 = tr->i[t2]; + k1 = tr->k[t1]; k2 = tr->k[t2]; + } while (all_insert); + + /* Normalize sequence coords. + * They're 1..L now; make them 1..Lbins + */ + *ret_i1 = ((i1-1) * Lbins / sq->n) + 1; + *ret_i2 = ((i2-1) * Lbins / sq->n) + 1; + *ret_k1 = k1; + *ret_k2 = k2; + return eslOK; + + ERROR: + *ret_i1 = 0.; + *ret_i2 = 0.; + *ret_k1 = 0; + *ret_k2 = 0; + return status; +} + +/* profile_local_endpoints() + * + * Purpose: Wrapper around , sampling a local + * alignment fragment from the profile's probabilistic model + * (which may be the implicit model of HMMER3, or the + * Plan7 model of HMMER2), and reporting coordinates + * of the fragment w.r.t. both model and sequence. + * + * To simplify the implementation, the profile must be in + * mode, not mode, so we know we + * only have to deal with a single hit per sampled + * sequence. + * + * We want to be relative to the sequence coords + * of a complete (global) sampled sequence that we could + * have sampled this local alignment from; but the + * we initially get are relative to our profile-sampled + * trace, so they are offset both by N-generated residues + * that occur in the profile and by residues that the + * profile's local entry skipped. To translate from + * profile/sequence coords to core model/sequence coords, + * we use rejection sampling: sample traces from the core + * model until we find one that uses the same statetypes + * at *initial* entry/exit points ,, then use + * that sample's sequence to determine offsets and correct + * reference frame. + * + * Local alignment endpoints are defined to be + * match-delimited. However, an H3 model allows exit on + * either a D or M state. Thus, the initially sampled end + * point k2 may need to be rolled back to last M state, to + * satisfy local alignment endpoint definition. Entries are + * not a problem; both H2 and H3 profiles can only enter on + * a M state. (This rollback has to occur after we've + * matched a core trace to the profile trace to determine + * i offsets.) + * + * Then, sampling from both the core model and the profile + * in the same routine introduces a complication: + * conceivably, profile configuration alters the transition + * probabilities in the core model (by adding E> + * transitions and renormalizing the M transition + * distributions, for example; H2 configuration does this, + * though H3 does not). So you can't the + * hmm> safely. To avoid such things, the caller + * provides a clean copy of the core model in . + * + * i endpoints are normalized/discretized to 1.., so + * we can collate i statistics from sampled sequences of + * varying L. Note this causes discretization artifacts, + * leading to underrepresentation of j=M and + * overrepresentation of i=1. + * + * Returns: on success; returns normalized sequence coords in + * <*ret_i1> and <*ret_i2>, and the model entry/exit coords + * in <*ret_k1> and <*ret_k2>. + * + * Xref: STL11/142-143 + */ +static int +profile_local_endpoints(ESL_RANDOMNESS *r, P7_HMM *core, P7_PROFILE *gm, ESL_SQ *sq, P7_TRACE *tr, int Lbins, + int *ret_i1, int *ret_i2, int *ret_k1, int *ret_k2) +{ + int status; + int i1,i2; + int k1,k2; + int t1,t2; /* entry/exit positions in local trace, tr */ + int tg1, tg2; /* entry/exit positions in global trace, tr2 */ + int tpos; + int nterm, cterm; /* offsets at N, C terminus. */ + int L; /* inferred length from 3-part patching */ + ESL_SQ *sq2 = NULL; + P7_TRACE *tr2 = NULL; + int failsafe = 0; + + if (gm->mode != p7_UNILOCAL) ESL_XEXCEPTION(eslEINVAL, "profile must be unilocal"); + if ((sq2 = esl_sq_CreateDigital(gm->abc)) == NULL) { status = eslEMEM; goto ERROR; } + if ((tr = p7_trace_Create()) == NULL) { status = eslEMEM; goto ERROR; } + + /* sample local alignment from the implicit model */ + if (gm->h2_mode) { + if ((status = p7_H2_ProfileEmit(r, gm, sq, tr)) != eslOK) goto ERROR; + } else { + if ((status = p7_ProfileEmit(r, gm, sq, tr)) != eslOK) goto ERROR; + } + + /* Get initial trace coords */ + for (tpos = 0; tpos < tr->N; tpos++) if (tr->st[tpos] == p7T_B) { t1 = tpos+1; break; } + for (tpos = tr->N-1; tpos >= 0; tpos--) if (tr->st[tpos] == p7T_E) { t2 = tpos-1; break; } + + /* Match a core trace to this local trace by rejection sampling; + * this is to let us calculate sequence offsets; see comments above in preamble + */ + do { + if (failsafe++ == 100000) ESL_XEXCEPTION(eslENOHALT, "failed to match core,local traces in %d tries\n", failsafe); + + if ((status = p7_CoreEmit(r, core, sq2, tr2)) != eslOK) goto ERROR; + for (tpos = 0; tpos < tr2->N; tpos++) + if (tr2->k[tpos] == tr->k[t1]) { tg1 = tpos; break; } + for (tpos = tr2->N-1; tpos >= 0; tpos--) + if (tr2->k[tpos] == tr->k[t2]) { tg2 = tpos; break; } + } while (tr2->st[tg1] != tr->st[t1] && tr2->st[tg2] != tr->st[t2]); + + /* tg1..tg2 in core trace is now matched to t1..t2 in the profile trace. + * Calculate # of residues preceding tg1 and following tg2 in the core trace. + * A core trace can only generate residues from M or I states. + */ + for (nterm = 0, tpos = 0; tpos < tg1; tpos++) + if (tr2->st[tpos] == p7T_M || tr2->st[tpos] == p7T_I) nterm++; + for (cterm = 0, tpos = tr2->N-1; tpos > tg2; tpos--) + if (tr2->st[tpos] == p7T_M || tr2->st[tpos] == p7T_I) cterm++; + + /* rectify the t2 endpoint, rolling back any trailing D path + */ + for (; t2 >= 0; t2--) if (tr->st[t2] == p7T_M) break; + if (t2 < t1) ESL_XEXCEPTION(eslEINCONCEIVABLE, "this only happens on an all-D path through profile"); + + /* determine initial endpoint coords from t1 and t2 */ + i1 = tr->i[t1]; i2 = tr->i[t2]; + k1 = tr->k[t1]; k2 = tr->k[t2]; + + /* offset the i coords. */ + L = (i2-i1+1) + nterm + cterm; + i2 = (i2-i1+1) + nterm; + i1 = nterm+1; + + /* normalize the i coords into range 1..Lbins, instead of 1..L */ + i1 = ((i1-1) * Lbins / L) + 1; + i2 = ((i2-1) * Lbins / L) + 1; + + *ret_i1 = i1; + *ret_i2 = i2; + *ret_k1 = k1; + *ret_k2 = k2; + p7_trace_Destroy(tr2); + esl_sq_Destroy(sq2); + return eslOK; + + ERROR: + if (sq2 != NULL) esl_sq_Destroy(sq2); + if (tr2 != NULL) p7_trace_Destroy(tr2); + *ret_i1 = 0.; + *ret_i2 = 0.; + *ret_k1 = 0; + *ret_k2 = 0; + return status; +} + + + +#endif /*p7MODELCONFIG_STATS*/ + + +/* All the commentary below here is archaic and obsolete. + * It is only a shadow of the current truth, and may mislead. + * It is of archaeological interest only; needs to be whipped back + * into shape in real documentation. + */ + +/*---------------------------------------------------------------------- + * Preamble. + * + * There are four search modes: + * single-hit multi-hit + * -------------------- ------------------------ + * local | sw (p7_UNILOCAL) fs (p7_LOCAL) + * glocal | s (p7_UNIGLOCAL) ls (p7_GLOCAL) + * + * Additionally, each search mode is configured for a particular + * target length. Thus "LS/400" means a model configured for glocal, + * multihit alignment of a target sequence of length 400. + * + *----------------------------------------------------------------------- + * Exegesis. + * + * When you enter this module, you've got an HMM (P7_HMM) in "core" + * probability form: t[], mat[], ins[] are all valid, normalized + * probabilities. The routines here are used to create the "profile" + * form (P7_PROFILE) of the model: tsc[], msc[], isc[], bsc[], esc[], + * and xsc[] fields as integer log-odds scores. + * + * Also in the process, xt[] are set to their algorithm-dependent + * probabilities, though these probabilities are only for reference. + * + * The configuration process breaks down into distinct conceptual steps: + * + * 1. Algorithm configuration. + * An "algorithm mode" is chosen. This determines whether + * alignments will allow local entry/exit in the model, and sets + * the probabilities in xt[XTE], which determine + * multi-hit/single-hit behavior. The "nj" value of the HMM is + * also set here (the expected # of times the J state will be used; + * 0 for single-hit mode and 1 for the default parameterization of + * multihit modes). + * + * 2. Wing retraction. + * In a profile, the D_1 and D_M states of the core model are + * removed. The probability of the paths B->D1...->Mk ("BMk") that + * enter D1 and use all D's before reaching M_k is treated instead + * as an additional dollop of B->Mk entry probability, and the + * probability of paths Mk->Dk+1...D_M->E ("MkE") is treated + * instead as an additional dollop of Mk->E exit probability. The + * MkE path probability is subtracted from the Mk->Dk+1 transition. + * + * In local algorithm modes, these extra dollops are ignored, and + * the model is renormalized appropriately. That is, the algorithm + * overrides all B->DDDD->M and/or M->DDDD->E path probabilities + * with its own internal entry/exit probabilities. + * + * If the algorithm mode is "global" at either entry or exit, then + * the internal entries are set to BMk and internal exits are set + * to MkE, and the model is renormalized appropriately. That is, + * the algorithm treats B->DDDD->M and/or M->DDDD->E path + * probabilities as internal entries/exits, instead of allowing + * dynamic programming algorithms to use the D_1 or D_M states. + * + * These two alternatives are represented differently in traces, + * where an X state is used to signal 'missing data' in a local + * alignment. Thus B->X->Mk indicates local entry, whereas B->Mk in + * a trace indicates a wing-retracted B->DDD->Mk entry with respect + * to the core HMM; similarly Mk->X->E indicates local exit, and + * Mk->E indicates a Mk->DDDD->E path in the core HMM. + * + * Wing retraction is a compulsive detail with two purposes. First, + * it removes a mute cycle from the model, B->D1 ...D_M->E, which + * cannot be correctly and efficiently dealt with by DP + * recursions. (A DP algorithm could just *ignore* that path + * though, and ignore the negligible amount of probability in it.) + * Second, wing retraction reconciles the algorithm-dependent + * entry/exit probabilities with the core model. For algorithms + * that impose local internal entry/exit, we don't want there to be + * any additional probability coming from "internal" B->DDD->M and + * M->DDD->E paths, so wing retraction takes it away. + * + * 3. Local alignment D-path leveling. + * For fully local alignments, we want every fragment ij (starting + * at match i, ending from match j) to be equiprobable. There are + * M(M+1)/2 possible such fragments, so the probability of each + * one is 2/M(M+1). + * + * Notionally, we imagine a "model" consisting of the M(M+1)/2 + * possible fragments, with entry probability of 2/M(M+1) for each. + * + * Operationally, we achieve this by a trick inspired by a + * suggestion from Bill Bruno. Bill suggested that for a model with + * no delete states, if we set begin[k] = 1/(M-k+1) and end[k] = + * (M-k+1) / [M(M+1)/2], all fragments are equiprobable: the prob + * of any given fragment is + * b_i * e_j * \prod_{k=i}^{j-1} (1-e_k); + * that is, the fragment also includes (j-i) penalizing terms for + * *not* ending at i..j-1. Remarkably, this gives the result we + * want: this product is always 2/M(M+1), for any ij. + * + * However, D->D transitions throw a wrench into this trick, + * though. A local alignment that goes M_i->D...D->M_j, for + * example, only gets hit with one not-end penalty (for the + * M_i->D). This means that paths including deletions will be + * artifactually favored. + * + * A solution is to subtract log(1-e_k) from the deletion + * transition scores as well as the match transition scores. Thus + * one log(1-e_k) penalty is always exacted upon transitioning from + * any node k->k+1. This is *not* part of the probabilistic model: + * it is a score accounting trick that forces the DP algorithms to + * associate a log(1-e_k) penalty for each node k->k+1 transition, + * which makes the DP calculations give the result desired for our + * *notional* probabilistic model with a single 2/M(M+1) transition + * for each possible fragment. (A similar accounting trick is the + * use of log-odds scoring, where we associate null model + * transitions and emissions with appropriate terms in the HMM, to + * assure that the final score of any path accounts for all the + * desired probability terms in an overall log-odds score). The + * overall score of any fragment can be rearranged such that there + * is one term consisting of a product of all these penalties * b_i + * * e_j = 2/M(M+1), and another term consisting of the actual + * model transition path score between i,j. + * + * 4. Target length dependence. + * Given a particular target sequence of length L, we want our HMM score + * to be as independent as possible of L. Otherwise, long sequences will + * give higher scores, even if they are nonhomologous. + * + * The traditional solution to this is Karlin/Altschul statistics, + * which tells us that E(s=x) = KMNe^-{\lambda x}, so we expect to + * have to make a -1 bit score correction for every 2x increase in + * target sequence length (ignoring edge correction effects). K/A + * statistics have been proven for local Viterbi single-hit + * ungapped alignments. There is abundant literature showing they + * hold empirically for local Viterbi single-hit gapped + * alignments. In my hands the length dependence (though not the + * form of the distribution) holds for any single-hit alignment + * (local or glocal, Viterbi or forward) but it does not + * hold for multihit alignment modes. + * + * HMMER's solution is to build the length dependence right into + * the probabilistic model, so that we have a full probabilistic + * model of the target sequence. We match the expected lengths of + * the model M and the null model R by setting the p1, N, C, and J + * transitions appropriately. R has to emit the whole sequence, so + * it has a self-transition of L/(L+1). N, C, and J have to emit + * (L-(k+1)x) residues of the sequence, where x is the expected + * length of an alignment to the core model, and k is the expected + * number of times that we cycle through the J state. k=0 in sw + * mode, and k=1 in fs/ls mode w/ the standard [XTE][LOOP] + * probability of 0.5. + * + * 5. Conversion of probabilities to integer log-odds scores. + * This step incorporates the contribution of the null model, + * and converts floating-point probs to the scaled integer log-odds + * score values that are used by the DP alignment routines. + * + * Step 1 is done by the main p7_ProfileConfig() function, which takes + * a choice of algorithm mode as an argument. + * + * Step 2 is done by the *wing_retraction*() functions, which also + * go ahead and convert the affected transitions to log-odds scores; + * left wing retraction sets bsc[], right wing retraction sets + * esc[] and tsc[TM*]. + * + * Step 3 is carried out by one of two delete path accounting routines, + * which go ahead and set tsc[TD*]. + * + * Step 4 is carried out by the p7_ReconfigLength() routine. + * + * Step 5 is carried out for all remaining scores by logoddsify_the_rest(). + * + * Note that the profile never exists in a configured probability + * form. The probability model for the search profile is implicit, not + * explicit, because of the handling of local entry/exit transitions. + * You can see this in more detail in emit.c:p7_ProfileEmit() + * function, which samples sequences from the profile's probabilistic + * model. + * + * So, overall, to find where the various scores and probs are set: + * bsc : wing retraction (section 2) + * esc : wing retraction (section 2) + * tsc[TM*] : wing retraction (section 2) + * tsc[TI*] : logoddsify_the_rest() (section 4) + * tsc[TD*] : dpath leveling (section 3) + * p1 : target_ldependence() (section 4) + * xt[NCJ] : target_ldependence() (section 4) + * xsc (all): logoddsify_the_rest() (section 4) + * msc : logoddsify_the_rest() (section 5) + * isc : logoddsify_the_rest() (section 5) + */ + + +/***************************************************************** + * 2. The four config_*() functions for specific algorithm modes. + *****************************************************************/ + +/***************************************************************** + * Exegesis. + * + * The following functions are the Plan7 equivalent of choosing + * different alignment styles (fully local, fully global, + * global/local, multihit, etc.) + * + * When you come into a configuration routine, the following + * probabilities are valid in the model: + * 1. t[1..M-1][0..6]: all the state transitions. + * (Node M is special: it has only a match and a delete state, + * no insert state, and M_M->E = 1.0 and D_M->E = 1.0 by def'n.) + * 2. mat[1..M][]: all the match emissions. + * 3. ins[1..M-1][]: all the insert emissions. Note that there is + * no insert state in node M. + * 4. tbd1: the B->D1 probability. The B->M1 probability is 1-tbd1. + * These are the "data-dependent" probabilities in the model. + * + * The configuration routine gets to set the "algorithm-dependent" + * probabilities: + * 1. xt[XTN][MOVE,LOOP] dist controls unaligned N-terminal seq. + * The higher xt[XTN][LOOP] is, the more unaligned seq we allow. + * Similarly, xt[XTC][MOVE,LOOP] dist controls unaligned C-terminal + * seq, and xt[XTJ][MOVE,LOOP] dist controls length of unaligned sequence + * between multiple copies of a domain. Normally, if these are nonzero, + * they are all set to be equal to hmm->p1, the loop probability + * for the null hypothesis (see below). + * 2. xt[XTE][MOVE,LOOP] distribution controls multihits. + * Setting xt[XTE][LOOP] to 0.0 forces one hit per model. + * 3. begin[1..M] controls entry probabilities. An algorithm + * mode either imposes internal begin probabilities, or leaves begin[1] + * as 1.0 and begin[k] = 0.0 for k>1. + * 4. end[1..M] controls exit probabilities. An algorithm mode either + * imposes internal exit probabilities, or leaves end[M] = 1.0 + * and end[k] = 0.0 for kJ) = 0 + * e.g. no multidomain hits + * + * 2) t(N->N) = t(C->C) = t(J->J) = hmm->p1 + * e.g. unmatching sequence scores zero, and + * N->B first-model score is equal to J->B another-model score. + * + * These constraints are obeyed in the default Config() functions below, + * but in the future (say, when HMM editing may be allowed) we'll have + * to remember this. Non-equality of the summed domain scores and + * the total sequence score is a really easy "red flag" for people to + * notice and report as a bug, even if it may make probabilistic + * sense not to meet either constraint for certain modeling problems. + ***************************************************************** + */ + + + diff --git a/bioinformaticsProject/hmmer/src/modelstats.c b/bioinformaticsProject/hmmer/src/modelstats.c new file mode 100644 index 0000000..1c232f4 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/modelstats.c @@ -0,0 +1,262 @@ +/* Miscellaneous summary statistics calculated for HMMs and profiles. + * + * SRE, Fri May 4 11:43:20 2007 [Janelia] + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + + + +/* Function: p7_MeanMatchInfo() + * Incept: SRE, Fri May 4 11:43:56 2007 [Janelia] + * + * Purpose: Calculate the mean information content per match state + * emission distribution, in bits: + * + * \[ + * \frac{1}{M} \sum_{k=1}^{M} + * \left[ + * \sum_x f(x) \log_2 f(x) + * - \sum_x p_k(x) \log_2 p_k(x) + * \right] + * \] + * + * where $p_k(x)$ is emission probability for symbol $x$ + * from match state $k$, and $f(x)$ is the null model's + * background emission probability for $x$. + */ +double +p7_MeanMatchInfo(const P7_HMM *hmm, const P7_BG *bg) +{ + return esl_vec_FEntropy(bg->f, hmm->abc->K) - p7_MeanMatchEntropy(hmm); +} + +/* Function: p7_MeanMatchEntropy() + * Incept: SRE, Fri May 4 13:37:15 2007 [Janelia] + * + * Purpose: Calculate the mean entropy per match state emission + * distribution, in bits: + * + * \[ + * - \frac{1}{M} \sum_{k=1}^{M} \sum_x p_k(x) \log_2 p_k(x) + * \] + * + * where $p_k(x)$ is emission probability for symbol $x$ + * from match state $k$. + */ +double +p7_MeanMatchEntropy(const P7_HMM *hmm) +{ + int k; + double H = 0.; + + for (k = 1; k <= hmm->M; k++) + H += esl_vec_FEntropy(hmm->mat[k], hmm->abc->K); + H /= (double) hmm->M; + return H; +} + + +/* Function: p7_MeanMatchRelativeEntropy() + * Incept: SRE, Fri May 11 09:25:01 2007 [Janelia] + * + * Purpose: Calculate the mean relative entropy per match state emission + * distribution, in bits: + * + * \[ + * \frac{1}{M} \sum_{k=1}^{M} \sum_x p_k(x) \log_2 \frac{p_k(x)}{f(x)} + * \] + * + * where $p_k(x)$ is emission probability for symbol $x$ + * from match state $k$, and $f(x)$ is the null model's + * background emission probability for $x$. + */ +double +p7_MeanMatchRelativeEntropy(const P7_HMM *hmm, const P7_BG *bg) +{ + int k; + double KL = 0.; + +#if 0 + p7_bg_Dump(stdout, hmm->bg); + for (k = 1; k <= hmm->M; k++) + printf("Match %d : %.2f %.2f\n", k, + esl_vec_FRelEntropy(hmm->mat[k], hmm->bg->f, hmm->abc->K), + esl_vec_FEntropy(bg->f, hmm->abc->K) - esl_vec_FEntropy(hmm->mat[k], hmm->abc->K)); +#endif + + for (k = 1; k <= hmm->M; k++) + KL += esl_vec_FRelEntropy(hmm->mat[k], bg->f, hmm->abc->K); + KL /= (double) hmm->M; + return KL; +} + + + +double +p7_MeanForwardScore(const P7_HMM *hmm, const P7_BG *bg) +{ + int L = 350; + int N = 100; + P7_PROFILE *gm = p7_profile_Create(hmm->M, hmm->abc); + P7_GMX *gx = p7_gmx_Create(gm->M, L); + ESL_SQ *sq = esl_sq_CreateDigital(hmm->abc); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(0); + float fsc; + float nullsc; + double bitscore; + double sum = 0.; + int i; + + if (p7_ProfileConfig (hmm, bg, gm, L, p7_LOCAL) != eslOK) p7_Die("failed to configure profile"); + for (i = 0; i < N; i++) + { + if (p7_ReconfigLength(gm, L) != eslOK) p7_Die("failed to reconfig profile length"); + if (p7_ProfileEmit(r, hmm, gm, bg, sq, NULL) != eslOK) p7_Die("failed to emit sequence"); + if (p7_ReconfigLength(gm, sq->n) != eslOK) p7_Die("failed to reconfig profile length"); + if (p7_gmx_GrowTo(gx, gm->M, sq->n) != eslOK) p7_Die("failed to grow the matrix"); + if (p7_GForward(sq->dsq, sq->n, gm, gx, &fsc) != eslOK) p7_Die("failed to run Forward"); + if (p7_bg_NullOne(bg, sq->dsq, sq->n, &nullsc) != eslOK) p7_Die("failed to run bg_NullOne()"); + bitscore = (fsc - nullsc) / eslCONST_LOG2; + + sum += bitscore; + } + + esl_randomness_Destroy(r); + esl_sq_Destroy(sq); + p7_gmx_Destroy(gx); + p7_profile_Destroy(gm); + return (sum / (double) N); +} + + +/* Function: p7_MeanPositionRelativeEntropy() + * Synopsis: Calculate the mean score per match position, including gap cost. + * Incept: SRE, Thu Sep 6 10:26:14 2007 [Janelia] + * + * Purpose: Calculate the mean score (relative entropy) in bits per + * match (consensus) position in model , given background + * model . + * + * More specifically: the mean bitscore is weighted by + * match state occupancy (match states that aren't used + * much are downweighted), and the log transitions into + * that match state from the previous M, D, or I are + * counted against it, weighted by their probability. + * + * This isn't a complete accounting of the average score + * per model position nor per aligned residue; most + * notably, it doesn't include the contribution of + * entry/exit probabilities. So don't expect to approximate + * average scores by multiplying <*ret_entropy> by . + * + * Returns: on success, and <*ret_entropy> is the result. + * + * Throws: on allocation failure, and <*ret_entropy> is 0. + */ +int +p7_MeanPositionRelativeEntropy(const P7_HMM *hmm, const P7_BG *bg, double *ret_entropy) +{ + int status; + float *mocc = NULL; + int k; + double mre, tre; + double xm, xi, xd; + + ESL_ALLOC(mocc, sizeof(float) * (hmm->M+1)); + if ((status = p7_hmm_CalculateOccupancy(hmm, mocc, NULL)) != eslOK) goto ERROR; + + /* mre = the weighted relative entropy per match emission */ + for (mre = 0., k = 1; k <= hmm->M; k++) + mre += mocc[k] * esl_vec_FRelEntropy(hmm->mat[k], bg->f, hmm->abc->K); + mre /= esl_vec_FSum(mocc+1, hmm->M); + + /* The weighted relative entropy per match entry transition, 2..M + */ + for (tre = 0., k = 2; k <= hmm->M; k++) + { + xm = mocc[k-1]*hmm->t[k-1][p7H_MM] * log(hmm->t[k-1][p7H_MM] / bg->p1); + xi = mocc[k-1]*hmm->t[k-1][p7H_MI] * (log(hmm->t[k-1][p7H_MM] / bg->p1) + log(hmm->t[k-1][p7H_IM] / bg->p1)); + xd = (1.-mocc[k-1])*hmm->t[k-1][p7H_DM] * log(hmm->t[k-1][p7H_DM] / bg->p1); + tre += (xm+xi+xd) / eslCONST_LOG2; + } + tre /= esl_vec_FSum(mocc+2, hmm->M-1); + + free(mocc); + *ret_entropy = mre+tre; + return eslOK; + + ERROR: + if (mocc != NULL) free(mocc); + *ret_entropy = 0.; + return status; +} + + +/* Function: p7_hmm_CompositionKLD() + * Synopsis: A statistic of model's composition bias. + * Incept: SRE, Mon Jul 2 08:40:12 2007 [Janelia] + * + * Purpose: Calculates the KL divergence (relative entropy) between + * the average match state residue composition in model + * and the background frequency distribution in ; + * return it in , in bits. + * + * Optionally return the average match state residue + * composition in . This vector, of length + * abc->K> is allocated here and becomes the caller's + * responsibility if is non-. + * + * The average match composition is an occupancy-weighted + * average (see . + * + * For average match state residue composition

and + * background residue frequencies , the KL divergence + * is: + * + * \begin{eqnarray*} + * \sum_a p_a \log_2 \frac{p_a}{q_a} + * \end{eqnarray*} + * + * Returns: on success. + * + * Throws: on allocation error. + */ +int +p7_hmm_CompositionKLD(const P7_HMM *hmm, const P7_BG *bg, float *ret_KL, float **opt_avp) +{ + int K = hmm->abc->K; + float *occ = NULL; + float *p = NULL; + int status; + int k; + + ESL_ALLOC(occ, sizeof(float) * (hmm->M+1)); + ESL_ALLOC(p, sizeof(float) * K); + + p7_hmm_CalculateOccupancy(hmm, occ, NULL); // match state occupancy probabilities + + esl_vec_FSet(p, K, 0.); // average composition over match states + for (k = 1; k <= hmm->M; k++) + esl_vec_FAddScaled(p, hmm->mat[k], occ[k], K); + esl_vec_FNorm(p, K); + + *ret_KL = esl_vec_FRelEntropy(p, bg->f, K); // easel returns this value in bits + if (opt_avp != NULL) *opt_avp = p; else free(p); + free(occ); + return eslOK; + + ERROR: + free(occ); + free(p); + if (opt_avp) *opt_avp = NULL; + *ret_KL = 0.0; + return status; +} + + diff --git a/bioinformaticsProject/hmmer/src/mpisupport.c b/bioinformaticsProject/hmmer/src/mpisupport.c new file mode 100644 index 0000000..4d9c4ae --- /dev/null +++ b/bioinformaticsProject/hmmer/src/mpisupport.c @@ -0,0 +1,1771 @@ +/* Optional support for MPI parallelization. + * + * Contents: + * 1. Communicating P7_HMM, a core model. + * 2. Communicating P7_PROFILE, a score profile. + * 3. Communicating P7_PIPELINE, pipeline stats. + * 4. Communicating P7_TOPHITS, list of high scoring alignments. + * 5. Benchmark driver. + * 6. Unit tests. + * 7. Test driver. + */ +#include "p7_config.h" + +#ifdef HMMER_MPI +#include +#include +#include + +#include "mpi.h" + +#include "easel.h" +#include "esl_mpi.h" +#include "esl_getopts.h" + +#include "hmmer.h" + +static int p7_hit_MPISend(P7_HIT *hit, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc); +static int p7_hit_MPIPackSize(P7_HIT *hit, MPI_Comm comm, int *ret_n); +static int p7_hit_MPIPack(P7_HIT *hit, char *buf, int n, int *pos, MPI_Comm comm); +static int p7_hit_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, P7_HIT *hit); +static int p7_hit_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, P7_HIT *hit); + +static int p7_dcl_MPISend(P7_DOMAIN *dcl, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc); +static int p7_dcl_MPIPackSize(P7_DOMAIN *dcl, MPI_Comm comm, int *ret_n); +static int p7_dcl_MPIPack(P7_DOMAIN *dcl, char *buf, int n, int *pos, MPI_Comm comm); +static int p7_dcl_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, P7_DOMAIN *dcl); +static int p7_dcl_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, P7_DOMAIN *dcl); + +/***************************************************************** + * 1. Communicating P7_HMM, a core model. + *****************************************************************/ + +/* Function: p7_hmm_MPISend() + * Synopsis: Send an HMM as an MPI work unit. + * + * Purpose: Sends an HMM as a work unit to MPI process + * (where ranges from 0..), tagged + * with MPI tag , for MPI communicator , as + * the sole workunit or result. + * + * Work units are prefixed by a status code. If is + * , the work unit is an code followed by + * the packed HMM. If is NULL, the work unit is an + * code, which knows how to + * interpret; this is typically used for an end-of-data + * signal to cleanly shut down worker processes. + * + * In order to minimize alloc/free cycles in this routine, + * caller passes a pointer to a working buffer <*buf> of + * size <*nalloc> characters. If necessary (i.e. if is + * too big to fit), <*buf> will be reallocated and <*nalloc> + * increased to the new size. As a special case, if <*buf> + * is and <*nalloc> is 0, the buffer will be + * allocated appropriately, but the caller is still + * responsible for free'ing it. + * + * Returns: on success; <*buf> may have been reallocated and + * <*nalloc> may have been increased. + * + * Throws: if an MPI call fails; if a malloc/realloc + * fails. In either case, <*buf> and <*nalloc> remain valid and useful + * memory (though the contents of <*buf> are undefined). + * + * Note: Compare to p7_hmmfile_WriteBinary(). The two operations (sending + * an HMM via MPI, or saving it as a binary file to disk) are + * similar. + */ +int +p7_hmm_MPISend(P7_HMM *hmm, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc) +{ + int status; + int code; + int sz, n, pos; + + /* Figure out size */ + if (MPI_Pack_size(1, MPI_INT, comm, &n) != 0) ESL_XEXCEPTION(eslESYS, "mpi pack size failed"); + if (hmm != NULL) { + if ((status = p7_hmm_MPIPackSize(hmm, comm, &sz)) != eslOK) return status; + n += sz; + } + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Pack the status code and HMM into the buffer */ + pos = 0; + code = (hmm == NULL) ? eslEOD : eslOK; + if (MPI_Pack(&code, 1, MPI_INT, *buf, n, &pos, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi pack failed"); + if (hmm != NULL) { + if ((status = p7_hmm_MPIPack(hmm, *buf, n, &pos, comm)) != eslOK) return status; + } + + /* Send the packed HMM to the destination. */ + if (MPI_Send(*buf, n, MPI_PACKED, dest, tag, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi send failed"); + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_hmm_MPIPackSize() + * Synopsis: Calculates size needed to pack an HMM. + * + * Purpose: Calculate an upper bound on the number of bytes + * that will need to pack an HMM + * in a packed MPI message for MPI communicator + * ; return that number of bytes in <*ret_n>. + * + * Returns: on success, and <*ret_n> contains the answer. + * + * Throws: if an MPI call fails, and <*ret_n> is 0. + */ +int +p7_hmm_MPIPackSize(P7_HMM *hmm, MPI_Comm comm, int *ret_n) +{ + int status; + int n = 0; + int K = hmm->abc->K; + int M = hmm->M; + int sz; + + if (MPI_Pack_size(1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += 6*sz; /* M,flags,nseq,eff_nseq,checksum,alphatype */ + if (MPI_Pack_size(1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += 6*sz; /* ga,tc,nc cutoffs */ + if (MPI_Pack_size(7*(M+1), MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* t */ + if (MPI_Pack_size(K*(M+1), MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += 2*sz; /* mat,ins */ + + if ((status = esl_mpi_PackOptSize(hmm->name, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; else n += sz; + if ((status = esl_mpi_PackOptSize(hmm->acc, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; else n += sz; + if ((status = esl_mpi_PackOptSize(hmm->desc, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; else n += sz; + + if (hmm->flags & p7H_RF) { if (MPI_Pack_size(M+2, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; } + if (hmm->flags & p7H_MMASK) { if (MPI_Pack_size(M+2, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; } + if (hmm->flags & p7H_CONS) { if (MPI_Pack_size(M+2, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; } + if (hmm->flags & p7H_CS) { if (MPI_Pack_size(M+2, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; } + if (hmm->flags & p7H_CA) { if (MPI_Pack_size(M+2, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; } + if ((status = esl_mpi_PackOptSize(hmm->comlog, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; else n+= sz; + if ((status = esl_mpi_PackOptSize(hmm->ctime, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; else n+= sz; + if (hmm->flags & p7H_MAP) { if (MPI_Pack_size(M+1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; } + if (MPI_Pack_size(p7_NEVPARAM, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; + if (MPI_Pack_size(p7_NCUTOFFS, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; + if (MPI_Pack_size(p7_MAXABET, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n+= sz; + *ret_n = n; + return eslOK; + + ERROR: + *ret_n = 0; + return status; + +} + +/* Function: p7_hmm_MPIPack() + * Synopsis: Packs an HMM into MPI buffer. + * + * Purpose: Packs HMM into an MPI packed message buffer + * of length bytes, starting at byte position <*position>, + * for MPI communicator . + * + * The caller must know that 's allocation of + * bytes is large enough to append the packed HMM at + * position <*pos>. This typically requires a call to + * first, and reallocation if + * needed. + * + * Returns: on success; now contains the + * packed , and <*position> is set to the byte + * immediately following the last byte of the HMM + * in . + * + * Throws: if an MPI call fails; or if the + * buffer's length was overflowed in trying to pack + * into . In either case, the state of + * and <*position> is undefined, and both should + * be considered to be corrupted. + */ +int +p7_hmm_MPIPack(P7_HMM *hmm, char *buf, int n, int *pos, MPI_Comm comm) +{ + int status; + int K = hmm->abc->K; + int M = hmm->M; + + if (MPI_Pack( &M, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( &(hmm->flags), 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( (void *) &(hmm->abc->type), 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( hmm->t[0], 7*(M+1), MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( hmm->mat[0], K*(M+1), MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( hmm->ins[0], K*(M+1), MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + if ((status = esl_mpi_PackOpt( hmm->name, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status; + if ((status = esl_mpi_PackOpt( hmm->acc, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status; + if ((status = esl_mpi_PackOpt( hmm->desc, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status; + if (hmm->flags & p7H_RF) { if (MPI_Pack(hmm->rf, M+2, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); } + if (hmm->flags & p7H_MMASK) { if (MPI_Pack(hmm->mm, M+2, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); } + if (hmm->flags & p7H_CONS) { if (MPI_Pack(hmm->consensus, M+2, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); } + if (hmm->flags & p7H_CS) { if (MPI_Pack(hmm->cs, M+2, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); } + if (hmm->flags & p7H_CA) { if (MPI_Pack(hmm->ca, M+2, MPI_CHAR, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); } + if ((status = esl_mpi_PackOpt( hmm->comlog, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status; + if (MPI_Pack( &(hmm->nseq), 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( &(hmm->eff_nseq), 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if ((status = esl_mpi_PackOpt( hmm->ctime, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status; + if (hmm->flags & p7H_MAP) { if (MPI_Pack(hmm->map, M+1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); } + if (MPI_Pack( &(hmm->checksum), 1, MPI_INT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( hmm->evparam, p7_NEVPARAM, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( hmm->cutoff, p7_NCUTOFFS, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( hmm->compo, p7_MAXABET, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_EXCEPTION(eslESYS, "pack failed"); + + if (*pos > n) ESL_EXCEPTION(eslEMEM, "buffer overflow"); + return eslOK; +} + + +/* Function: p7_hmm_MPIUnpack() + * Synopsis: Unpacks an HMM from an MPI buffer. + * + * Purpose: Unpack a newly allocated HMM from MPI packed buffer + * , starting from position <*pos>, where the total length + * of the buffer in bytes is . + * + * Caller may or may not already know what alphabet the HMM + * is expected to be in. A reference to the current + * alphabet is passed in . If the alphabet is unknown, + * pass <*abc = NULL>, and when the HMM is received, an + * appropriate new alphabet object is allocated and passed + * back to the caller via <*abc>. If the alphabet is + * already known, <*abc> is that alphabet, and the new + * HMM's alphabet type is verified to agree with it. This + * mechanism allows an application to let the first HMM + * determine the alphabet type for the application, while + * still keeping the alphabet under the application's scope + * of control. + * + * Returns: on success. <*pos> is updated to the position of + * the next element in to unpack (if any). <*ret_hmm> + * contains a newly allocated HMM, which the caller is + * responsible for free'ing. If <*abc> was passed as + * , it now points to an object that + * was allocated here; caller is responsible for free'ing + * this. + * + * Returns if the HMM is in a different + * alphabet than <*abc> said to expect. In this case, + * <*abc> is unchanged, <*buf> and <*nalloc> may have been + * changed, and <*ret_hmm> is . + * + * Throws: on an MPI call failure. on allocation failure. + * In either case, <*ret_hmm> is , and the state of + * and <*pos> is undefined and should be considered to be corrupted. + */ +int +p7_hmm_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, ESL_ALPHABET **abc, P7_HMM **ret_hmm) +{ + int status; + P7_HMM *hmm = NULL; + int M, K, atype; + + if ((hmm = p7_hmm_CreateShell()) == NULL) { status = eslEMEM; goto ERROR; } + if (MPI_Unpack(buf, n, pos, &(hmm->M), 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &(hmm->flags), 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &atype, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + + /* Set or verify the alphabet */ + if (*abc == NULL) { /* still unknown: set it, pass control of it back to caller */ + if ((*abc = esl_alphabet_Create(atype)) == NULL) { status = eslEMEM; goto ERROR; } + } else { /* already known: check it */ + if ((*abc)->type != atype) { status = eslEINCOMPAT; goto ERROR; } + } + + /* For convenience below. */ + K = (*abc)->K; + M = hmm->M; + + /* Finish the allocation of the HMM */ + if ((status = p7_hmm_CreateBody(hmm, M, *abc)) != eslOK) goto ERROR; + + /* Unpack the rest of the HMM */ + if (MPI_Unpack( buf, n, pos, hmm->t[0], 7*(M+1), MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack( buf, n, pos, hmm->mat[0], K*(M+1), MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack( buf, n, pos, hmm->ins[0], K*(M+1), MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if ((status = esl_mpi_UnpackOpt( buf, n, pos, (void**)&(hmm->name), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if ((status = esl_mpi_UnpackOpt( buf, n, pos, (void**)&(hmm->acc), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if ((status = esl_mpi_UnpackOpt( buf, n, pos, (void**)&(hmm->desc), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if (hmm->flags & p7H_RF) { if (MPI_Unpack(buf, n, pos, hmm->rf, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); } + if (hmm->flags & p7H_MMASK) { if (MPI_Unpack(buf, n, pos, hmm->mm, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); } + if (hmm->flags & p7H_CONS) { if (MPI_Unpack(buf, n, pos, hmm->consensus, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); } + if (hmm->flags & p7H_CS) { if (MPI_Unpack(buf, n, pos, hmm->cs, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); } + if (hmm->flags & p7H_CA) { if (MPI_Unpack(buf, n, pos, hmm->ca, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); } + if ((status = esl_mpi_UnpackOpt( buf, n, pos, (void**)&(hmm->comlog), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if (MPI_Unpack( buf, n, pos, &(hmm->nseq), 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack( buf, n, pos, &(hmm->eff_nseq), 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if ((status = esl_mpi_UnpackOpt( buf, n, pos, (void**)&(hmm->ctime), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if (hmm->flags & p7H_MAP) { if (MPI_Unpack(buf, n, pos, hmm->map, M+1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); } + if (MPI_Unpack( buf, n, pos, &(hmm->checksum), 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack( buf, n, pos, hmm->evparam, p7_NEVPARAM, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack( buf, n, pos, hmm->cutoff, p7_NCUTOFFS, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack( buf, n, pos, hmm->compo, p7_MAXABET, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + + *ret_hmm = hmm; + return eslOK; + + ERROR: + if (hmm != NULL) p7_hmm_Destroy(hmm); + return status; +} + + + + +/* Function: p7_hmm_MPIRecv() + * Synopsis: Receives an HMM as a work unit from an MPI sender. + * + * Purpose: Receive a work unit that consists of a single HMM + * sent by MPI (<0..nproc-1>, or + * ) tagged as for MPI communicator . + * + * Work units are prefixed by a status code. If the unit's + * code is and no errors are encountered, this + * routine will return and a non- <*ret_hmm>. + * If the unit's code is (a shutdown signal), + * this routine returns and <*ret_hmm> is . + * + * Caller provides a working buffer <*buf> of size + * <*nalloc> characters. These are passed by reference, so + * that <*buf> can be reallocated and <*nalloc> increased + * if necessary. As a special case, if <*buf> is and + * <*nalloc> is 0, the buffer will be allocated + * appropriately, but the caller is still responsible for + * free'ing it. + * + * Caller may or may not already know what alphabet the HMM + * is expected to be in. A reference to the current + * alphabet is passed in . If the alphabet is unknown, + * pass <*abc = NULL>, and when the HMM is received, an + * appropriate new alphabet object is allocated and passed + * back to the caller via <*abc>. If the alphabet is + * already known, <*ret_abc> is that alphabet, and the new + * HMM's alphabet type is verified to agree with it. This + * mechanism allows an application to let the first HMM + * determine the alphabet type for the application, while + * still keeping the alphabet under the application's scope + * of control. + * + * Returns: on success. <*ret_hmm> contains the received HMM; + * it is allocated here, and the caller is responsible for + * free'ing it. <*buf> may have been reallocated to a + * larger size, and <*nalloc> may have been increased. If + * <*abc> was passed as , it now points to an + * object that was allocated here; caller is + * responsible for free'ing this. + * + * Returns if an end-of-data signal was received. + * In this case, <*buf>, <*nalloc>, and <*abc> are left unchanged, + * and <*ret_hmm> is . + * + * Returns if the HMM is in a different alphabet + * than <*abc> said to expect. In this case, <*abc> is unchanged, + * <*buf> and <*nalloc> may have been changed, and <*ret_hmm> is + * . + * + * Throws: on allocation error, in which case <*ret_hmm> is + * . + */ +int +p7_hmm_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, ESL_ALPHABET **abc, P7_HMM **ret_hmm) +{ + int status; + int code; + P7_HMM *hmm = NULL; + int n; + int pos; + MPI_Status mpistatus; + + /* Probe first, because we need to know if our buffer is big enough. */ + MPI_Probe(source, tag, comm, &mpistatus); + MPI_Get_count(&mpistatus, MPI_PACKED, &n); + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Receive the packed work unit */ + MPI_Recv(*buf, n, MPI_PACKED, source, tag, comm, &mpistatus); + + /* Unpack it, looking at the status code prefix for EOD/EOK */ + pos = 0; + if (MPI_Unpack(*buf, n, &pos, &code, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (code == eslEOD) { *ret_hmm = NULL; return eslEOD; } + + return p7_hmm_MPIUnpack(*buf, *nalloc, &pos, comm, abc, ret_hmm); + + ERROR: + if (hmm != NULL) p7_hmm_Destroy(hmm); + return status; +} + +/*----------------- end, P7_HMM communication -------------------*/ + + +/***************************************************************** + * 2. Communicating P7_PROFILE, a score profile. + *****************************************************************/ + +/* Function: p7_profile_MPISend() + * Synopsis: Send a profile as an MPI message. + * + * Purpose: Sends profile to MPI process (where + * ranges from 0..), with MPI tag + * for MPI communicator . + * + * In order to minimize alloc/free cycles in this routine, + * caller passes a pointer to a working buffer <*buf> of + * size <*nalloc> characters. If necessary (i.e. if is + * too big to fit), <*buf> will be reallocated and <*nalloc> + * increased to the new size. As a special case, if <*buf> + * is and <*nalloc> is 0, the buffer will be + * allocated appropriately, but the caller is still + * responsible for free'ing it. + * + * If is NULL, an end-of-data signal is sent, which + * knows how to interpret. + * + * Returns: on success. + * + * Note: This was tested against a version that simply issues a series + * of MPI_Send()'s, rather than Pack()'ing into a buffer + * and issuing one MPI_Send(). The packed version seems to + * be significantly faster, although benchmarking MPI + * programs is difficult, and variance on the results is high. + * + * To optimize communication still further, one might try + * to avoid many or all of the MPI_Pack()'s. It might be + * feasible to change the allocation of a profile such that + * it is allocated in one contiguous chunk of memory. And + * once one embarks on that, the memory layout of the + * profile should also be optimized with respect to cache + * performance during DP alignment. + * + * rf, cs annotation is optional, but for simplicity, we always + * transmit the two allocated strings, even if they were empty. + * + * A "typical" protein profile (M=200,Kp=28) requires: + * 8*200 floats for transitions = 1600 bytes + * 28*201*2 floats for emissions = 11256 bytes + * 8 floats for specials = 32 bytes + * 2 ints for M,mode = 8 bytes + * 1 float for nj = 4 bytes + * ~100 chars of name, acc, desc = 100 bytes + * 3*202 chars for annotation = 606 bytes + * 3 floats for ev params = 12 bytes + * 6 floats for Pfam cutoffs = 24 bytes + * ----------- + * 14Kb + */ +int +p7_profile_MPISend(P7_PROFILE *gm, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc) +{ + int status; + int sz, n, position; + int Kp; /* alphabet size including degeneracies */ + int M; /* model size in nodes */ + + + + /* First, figure out the size of the profile */ + if (gm == NULL) { + if (MPI_Pack_size(1, MPI_INT, comm, &n) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); + Kp = M = 0; + } else { + /* This will look wasteful, but the MPI spec doesn't guarantee that + * MPI_Pack_size(x, ...) + MPI_Pack_size(x, ... ) == MPI_Pack_size(2x, ...). + * Indeed there are some hints in the spec that that's *not* true. + * So we assume we must match our Pack_size calls exactly to our Pack calls. + */ + Kp = gm->abc->Kp; + M = gm->M; + n = 0; + if (MPI_Pack_size( 1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n += sz*3; /* M,mode,L */ + if (MPI_Pack_size( p7P_NTRANS * M, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n += sz; /* tsc */ + if (MPI_Pack_size( (M+1) * Kp * p7P_NR, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n += sz; /* rsc[0] */ + if (MPI_Pack_size( p7P_NXTRANS, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n += sz*p7P_NXSTATES; /* xsc[0..3] */ + if (MPI_Pack_size( 1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n += sz; /* nj */ + if ((status = esl_mpi_PackOptSize(gm->name, -1, MPI_CHAR, comm, &sz))!= eslOK) goto ERROR; else n += sz; /* name (string) */ + if ((status = esl_mpi_PackOptSize(gm->acc, -1, MPI_CHAR, comm, &sz))!= eslOK) goto ERROR; else n += sz; /* acc (string) */ + if ((status = esl_mpi_PackOptSize(gm->desc, -1, MPI_CHAR, comm, &sz))!= eslOK) goto ERROR; else n += sz; /* desc (string) */ + if (MPI_Pack_size( (M+2), MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n += sz*4; /* rf,cs,mm,consensus */ + if (MPI_Pack_size( p7_NEVPARAM, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n += sz; /* evparam */ + if (MPI_Pack_size( p7_NCUTOFFS, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); else n += sz; /* Pfam cutoffs */ + } + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Pack the profile into the buffer */ + position = 0; + if (gm == NULL) + { + int eod_code = -1; + if (MPI_Pack(&eod_code, 1, MPI_INT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + } + else + { + if (MPI_Pack(&M, 1, MPI_INT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&(gm->mode), 1, MPI_INT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&(gm->L), 1, MPI_INT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->tsc, p7P_NTRANS *M, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->rsc[0], (M+1)* Kp * p7P_NR, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->xsc[0], p7P_NXTRANS, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->xsc[1], p7P_NXTRANS, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->xsc[2], p7P_NXTRANS, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->xsc[3], p7P_NXTRANS, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&(gm->nj), 1, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if ((status = esl_mpi_PackOpt(gm->name, -1, MPI_CHAR, *buf, n, &position, comm)) != eslOK) goto ERROR; + if ((status = esl_mpi_PackOpt(gm->acc, -1, MPI_CHAR, *buf, n, &position, comm)) != eslOK) goto ERROR; + if ((status = esl_mpi_PackOpt(gm->desc, -1, MPI_CHAR, *buf, n, &position, comm)) != eslOK) goto ERROR; + if (MPI_Pack(gm->rf, M+2, MPI_CHAR, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->mm, M+2, MPI_CHAR, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->cs, M+2, MPI_CHAR, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->consensus, M+2, MPI_CHAR, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->evparam, p7_NEVPARAM, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->cutoff, p7_NCUTOFFS, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(gm->compo, p7_MAXABET, MPI_FLOAT, *buf, n, &position, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + } + + /* Send the packed profile to destination */ + MPI_Send(*buf, n, MPI_PACKED, dest, tag, comm); + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_profile_MPIRecv() + * Synopsis: Receive a profile as an MPI message. + * + * Purpose: Receive a profile from (where is usually + * process 0, the master) with tag from communicator , + * and return it in <*ret_gm>. + * + * Caller must also provide the alphabet and the + * background model for this profile. (Of course, that means + * the caller already knows them, by an appropriate + * initialization.) + * + * To minimize alloc/free cycles in this routine, caller + * passes a pointer to a buffer <*buf> of size <*nalloc> + * characters. These are passed by reference because if + * necessary, will be reallocated and + * increased to the new size. As a special case, if + * is and is 0, the buffer will be + * allocated appropriately, but the caller is still + * responsible for free'ing it. + * + * If the packed profile is an end-of-data signal, return + * , and <*ret_gm> is . + * + * Returns: on success. <*ret_gm> contains the new profile; it + * is allocated here, and the caller is responsible for + * free'ing it. <*buf> may have been reallocated to a + * larger size, and <*nalloc> may have been increased. + * + */ +int +p7_profile_MPIRecv(int source, int tag, MPI_Comm comm, const ESL_ALPHABET *abc, const P7_BG *bg, char **buf, int *nalloc, P7_PROFILE **ret_gm) +{ + int status; + P7_PROFILE *gm = NULL; + int n; + int position; + MPI_Status mpistatus; + int M; + + /* Probe first, because we need to know if our buffer is big enough. + */ + MPI_Probe(source, tag, comm, &mpistatus); + MPI_Get_count(&mpistatus, MPI_PACKED, &n); + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Receive the packed profile */ + MPI_Recv(*buf, n, MPI_PACKED, source, tag, comm, &mpistatus); + + /* Unpack it - watching out for the EOD signal of M = -1. */ + position = 0; + if (MPI_Unpack(*buf, n, &position, &M, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (M == -1) { *ret_gm = NULL; return eslEOD; } + + if ((gm = p7_profile_Create(M, abc)) == NULL) { status = eslEMEM; goto ERROR; } + if (MPI_Unpack(*buf, n, &position, &(gm->mode), 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, &(gm->L), 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->tsc, p7P_NTRANS*M, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->rsc[0], p7P_NR*(M+1)*abc->Kp, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->xsc[0], p7P_NXTRANS, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->xsc[1], p7P_NXTRANS, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->xsc[2], p7P_NXTRANS, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->xsc[3], p7P_NXTRANS, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, &(gm->nj), 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + + if ((status = esl_mpi_UnpackOpt( *buf, n, &position, (void**)&(gm->name), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if ((status = esl_mpi_UnpackOpt( *buf, n, &position, (void**)&(gm->acc), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if ((status = esl_mpi_UnpackOpt( *buf, n, &position, (void**)&(gm->desc), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + + if (MPI_Unpack(*buf, n, &position, gm->rf, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->mm, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->cs, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->consensus, M+2, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->evparam, p7_NEVPARAM, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->cutoff, p7_NCUTOFFS, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &position, gm->compo, p7_NCUTOFFS, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + + gm->abc = abc; + gm->M = M; + *ret_gm = gm; + return eslOK; + + ERROR: + if (gm != NULL) p7_profile_Destroy(gm); + *ret_gm = NULL; + return status; +} + +/*--------------- end, P7_PROFILE communication -----------------*/ + + +/***************************************************************** + * 3. Communicating P7_PIPELINE + *****************************************************************/ + +/* Function: p7_pipeline_MPISend() + * Synopsis: Send pipeline data as an MPI message. + * + * Purpose: Sends pipeline statistics to MPI process + * (where ranges from 0..), with MPI tag + * for MPI communicator . + * + * In order to minimize alloc/free cycles in this routine, + * caller passes a pointer to a working buffer <*buf> of + * size <*nalloc> characters. If necessary (i.e. if is + * too big to fit), <*buf> will be reallocated and <*nalloc> + * increased to the new size. As a special case, if <*buf> + * is and <*nalloc> is 0, the buffer will be + * allocated appropriately, but the caller is still + * responsible for free'ing it. + * + * If is NULL, the pipeline statistics are initialized + * to zeros. + * + * Returns: on success. + */ +int +p7_pipeline_MPISend(P7_PIPELINE *pli, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc) +{ + int status; + int sz, n, pos; + + P7_PIPELINE bogus; + + /* This will look wasteful, but the MPI spec doesn't guarantee that + * MPI_Pack_size(x, ...) + MPI_Pack_size(x, ... ) == MPI_Pack_size(2x, ...). + * Indeed there are some hints in the spec that that's *not* true. + * So we assume we must match our Pack_size calls exactly to our Pack calls. + */ + n = 0; + if (MPI_Pack_size(1, MPI_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + if (MPI_Pack_size(1, MPI_DOUBLE, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* if no pipeline was defined, return zeros for the stats */ + if (pli == NULL) + { + bogus.mode = p7_SEARCH_SEQS; /* that's 0. (some compilers complain if you set 0 directly. */ + bogus.Z_setby = p7_ZSETBY_NTARGETS; /* ditto. */ + bogus.nmodels = 0; + bogus.nseqs = 0; + bogus.nres = 0; + bogus.nnodes = 0; + bogus.n_past_msv = 0; + bogus.n_past_bias = 0; + bogus.n_past_vit = 0; + bogus.n_past_fwd = 0; + bogus.Z = 0.0; + pli = &bogus; + } + + /* Pack the pipeline into the buffer */ + pos = 0; + if (MPI_Pack(&pli->mode, 1, MPI_LONG_INT, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->Z_setby, 1, MPI_LONG_INT, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->nmodels, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->nseqs, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->nres, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->nnodes, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->n_past_msv, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->n_past_bias, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->n_past_vit, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->n_past_fwd, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&pli->Z, 1, MPI_DOUBLE, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + + /* Send the packed pipeline to destination */ + MPI_Send(*buf, n, MPI_PACKED, dest, tag, comm); + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_pipeline_MPIRecv() + * Synopsis: Receive pipeline data as an MPI message. + * + * Purpose: Receive a pipeline from (where is usually + * process 0, the master) with tag from communicator , + * and return it in <*ret_pli>. + * + * To minimize alloc/free cycles in this routine, caller + * passes a pointer to a buffer <*buf> of size <*nalloc> + * characters. These are passed by reference because if + * necessary, will be reallocated and + * increased to the new size. As a special case, if + * is and is 0, the buffer will be + * allocated appropriately, but the caller is still + * responsible for free'ing it. + * + * Returns: on success. <*ret_pli> contains the new pipeline; + * it is allocated here, and the caller is responsible for + * free'ing it. <*buf> may have been reallocated to a + * larger size, and <*nalloc> may have been increased. + * + */ +int +p7_pipeline_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, ESL_GETOPTS *go, P7_PIPELINE **ret_pli) +{ + int status; + P7_PIPELINE *pli = NULL; + int n; + int pos; + MPI_Status mpistatus; + + /* Probe first, because we need to know if our buffer is big enough. + */ + MPI_Probe(source, tag, comm, &mpistatus); + MPI_Get_count(&mpistatus, MPI_PACKED, &n); + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Receive the packed pipeline */ + MPI_Recv(*buf, n, MPI_PACKED, source, tag, comm, &mpistatus); + + /* Unpack it - watching out for the EOD signal of M = -1. */ + pos = 0; + if ((pli = p7_pipeline_Create(go, 0, 0, FALSE, p7_SEARCH_SEQS)) == NULL) { status = eslEMEM; goto ERROR; } /* mode will be immediately overwritten */ + if (MPI_Unpack(*buf, n, &pos, &(pli->mode), 1, MPI_LONG_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->Z_setby), 1, MPI_LONG_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->nmodels), 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->nseqs), 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->nres), 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->nnodes), 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->n_past_msv), 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->n_past_bias), 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->n_past_vit), 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->n_past_fwd), 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &(pli->Z), 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + + *ret_pli = pli; + return eslOK; + + ERROR: + if (pli != NULL) p7_pipeline_Destroy(pli); + *ret_pli = NULL; + return status; +} + +/*--------------- end, P7_PIPELINE communication -----------------*/ + + +/***************************************************************** + * 4. Communicating P7_TOPHITS + *****************************************************************/ + +/* Function: p7_tophits_MPISend() + * Synopsis: Send the TOPHITS as an MPI work unit. + * + * Purpose: Sends the TOPHITS

, where the traceback + * corresponds to an alignment of optimized profile to digital sequence + * , and the unique name of that target + * sequence is . The index starts at 0. + * + * It will be a little faster if the trace is indexed with + * first. The number of domains is then + * in ndom>. If the caller wants to create alidisplays + * for all of these, it would loop from + * <0..tr->ndom-1>. + * + * However, even without an index, the routine will work fine. + * + * Args: tr - traceback + * which - domain number, 0..tr->ndom-1 + * om - optimized profile (query) + * sq - digital sequence (target) + * ntsq - text sequence (original nucleotide target in the case of translated search) + * ddef_app - optional posterior prob alignment line; only nhmmer sends a not-NULL value + * + * Returns: on success. + * + * Throws: on allocation failure, or if something's internally corrupt + * in the data. + */ +P7_ALIDISPLAY * +p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const ESL_SQ *sq, const ESL_SQ *ntsq) +{ + P7_ALIDISPLAY *ad = NULL; + char *Alphabet = om->abc->sym; + int n, pos, z; + int z1,z2; + int k,x,i,s; + int hmm_namelen, hmm_acclen, hmm_desclen; + int sq_namelen, sq_acclen, sq_desclen; + int status; + ESL_SQ *ntorfseqtxt = NULL; + + /* First figure out which piece of the trace (from first match to last match) + * we're going to represent, and how big it is. + */ + if (tr->ndom > 0) { /* if we have an index, this is a little faster: */ + for (z1 = tr->tfrom[which]; z1 < tr->N; z1++) if (tr->st[z1] == p7T_M) break; /* find next M state */ + if (z1 == tr->N) return NULL; /* no M? corrupt trace */ + for (z2 = tr->tto[which]; z2 >= 0 ; z2--) if (tr->st[z2] == p7T_M) break; /* find prev M state */ + if (z2 == -1) return NULL; /* no M? corrupt trace */ + } else { /* without an index, we can still do it fine: */ + for (z1 = 0; which >= 0 && z1 < tr->N; z1++) if (tr->st[z1] == p7T_B) which--; /* find the right B state */ + if (z1 == tr->N) return NULL; /* no such domain */ + for (; z1 < tr->N; z1++) if (tr->st[z1] == p7T_M) break; /* find next M state */ + if (z1 == tr->N) return NULL; /* no M? corrupt trace */ + for (z2 = z1; z2 < tr->N; z2++) if (tr->st[z2] == p7T_E) break; /* find the next E state */ + for (; z2 >= 0; z2--) if (tr->st[z2] == p7T_M) break; /* find prev M state */ + if (z2 == -1) return NULL; /* no M? corrupt trace */ + } + + /* Now we know that z1..z2 in the trace will be represented in the + * alidisplay; that's z2-z1+1 positions. We need a \0 trailer on all + * our display lines, so allocate z2-z1+2. We know each position is + * M, D, or I, so there's a 1:1 correspondence of trace positions + * with alignment display positions. We also know the display + * starts and ends with M states. + * + * So now let's allocate. The alidisplay is packed into a single + * memory space, so this appears to be intricate, but it's just + * bookkeeping. + */ + n = (z2-z1+2) * 3; /* model, mline, aseq mandatory */ + + if (om->rf[0] != 0) n += z2-z1+2; /* optional reference line */ + if (om->mm[0] != 0) n += z2-z1+2; /* optional reference line */ + if (om->cs[0] != 0) n += z2-z1+2; /* optional structure line */ + if (tr->pp != NULL) n += z2-z1+2; /* optional posterior prob line */ + hmm_namelen = strlen(om->name); n += hmm_namelen + 1; + hmm_acclen = (om->acc != NULL ? strlen(om->acc) : 0); n += hmm_acclen + 1; + hmm_desclen = (om->desc != NULL ? strlen(om->desc) : 0); n += hmm_desclen + 1; + + sq_namelen = strlen(sq->name); n += sq_namelen + 1; + sq_acclen = strlen(sq->acc); n += sq_acclen + 1; /* sq->acc is "\0" when unset */ + sq_desclen = strlen(sq->desc); n += sq_desclen + 1; /* same for desc */ + + ESL_ALLOC(ad, sizeof(P7_ALIDISPLAY)); + ad->mem = NULL; + + pos = 0; + ad->memsize = sizeof(char) * n; + ESL_ALLOC(ad->mem, ad->memsize); + if (om->rf[0] != 0) { ad->rfline = ad->mem + pos; pos += z2-z1+2; } else { ad->rfline = NULL; } + //if (om->mm[0] != 0) { ad->mmline = ad->mem + pos; pos += z2-z1+2; } else { ad->mmline = NULL; } + ad->mmline = NULL; + if (om->cs[0] != 0) { ad->csline = ad->mem + pos; pos += z2-z1+2; } else { ad->csline = NULL; } + ad->model = ad->mem + pos; pos += z2-z1+2; + ad->mline = ad->mem + pos; pos += z2-z1+2; + ad->aseq = ad->mem + pos; pos += z2-z1+2; + + if (tr->pp != NULL) { ad->ppline = ad->mem + pos; pos += z2-z1+2;} else { ad->ppline = NULL; } + ad->hmmname = ad->mem + pos; pos += hmm_namelen +1; + ad->hmmacc = ad->mem + pos; pos += hmm_acclen +1; + ad->hmmdesc = ad->mem + pos; pos += hmm_desclen +1; + ad->sqname = ad->mem + pos; pos += sq_namelen +1; + ad->sqacc = ad->mem + pos; pos += sq_acclen +1; + ad->sqdesc = ad->mem + pos; pos += sq_desclen +1; + + strcpy(ad->hmmname, om->name); + if (om->acc != NULL) strcpy(ad->hmmacc, om->acc); else ad->hmmacc[0] = 0; + if (om->desc != NULL) strcpy(ad->hmmdesc, om->desc); else ad->hmmdesc[0] = 0; + + strcpy(ad->sqname, sq->name); + strcpy(ad->sqacc, sq->acc); + strcpy(ad->sqdesc, sq->desc); + + /* Determine hit coords */ + ad->hmmfrom = tr->k[z1]; + ad->hmmto = tr->k[z2]; + ad->M = om->M; + + ad->sqfrom = tr->i[z1]; + ad->sqto = tr->i[z2]; + ad->L = sq->n; + + /* optional rf line */ + if (ad->rfline != NULL) { + for (z = z1; z <= z2; z++) ad->rfline[z-z1] = ((tr->st[z] == p7T_I) ? '.' : om->rf[tr->k[z]]); + ad->rfline[z-z1] = '\0'; + } + + /* optional mm line */ + if (ad->mmline != NULL) { + for (z = z1; z <= z2; z++) ad->mmline[z-z1] = ((tr->st[z] == p7T_I) ? '.' : om->mm[tr->k[z]]); + ad->mmline[z-z1] = '\0'; + } + + /* optional cs line */ + if (ad->csline != NULL) { + for (z = z1; z <= z2; z++) ad->csline[z-z1] = ((tr->st[z] == p7T_I) ? '.' : om->cs[tr->k[z]]); + ad->csline[z-z1] = '\0'; + } + + /* optional pp line */ + if (ad->ppline != NULL) { + for (z = z1; z <= z2; z++) ad->ppline[z-z1] = ( (tr->st[z] == p7T_D) ? '.' : p7_alidisplay_EncodePostProb(tr->pp[z])); + ad->ppline[z-z1] = '\0'; + } + + + /* mandatory three alignment display lines: model, mline, aseq */ + for (z = z1; z <= z2; z++) + { + k = tr->k[z]; + i = tr->i[z]; + x = sq->dsq[i]; + s = tr->st[z]; + + switch (s) { + case p7T_M: + ad->model[z-z1] = om->consensus[k]; + if (x == esl_abc_DigitizeSymbol(om->abc, om->consensus[k])) ad->mline[z-z1] = ad->model[z-z1]; + else if (p7_oprofile_FGetEmission(om, k, x) > 1.0) ad->mline[z-z1] = '+'; /* >1 not >0; om has odds ratios, not scores */ + else ad->mline[z-z1] = ' '; + ad->aseq [z-z1] = toupper(Alphabet[x]); + break; + + case p7T_I: + ad->model [z-z1] = '.'; + ad->mline [z-z1] = ' '; + ad->aseq [z-z1] = tolower(Alphabet[x]); + break; + + case p7T_D: + ad->model [z-z1] = om->consensus[k]; + ad->mline [z-z1] = ' '; + ad->aseq [z-z1] = '-'; + + break; + + default: ESL_XEXCEPTION(eslEINVAL, "invalid state in trace: not M,D,I"); + } + } + ad->model [z2-z1+1] = '\0'; + ad->mline [z2-z1+1] = '\0'; + ad->aseq [z2-z1+1] = '\0'; + ad->N = z2-z1+1; + ad->ntseq = NULL; // Mark this NULL so it doesn't cause problems with serialization. + // nhmmer can reset it if it wants later + esl_sq_Destroy(ntorfseqtxt); + + + return ad; + + ERROR: + p7_alidisplay_Destroy(ad); + return NULL; +} + +/* Function: p7_alidisplay_Create_empty() + * Synopsis: Creates an empty P7_ALIDISPLAY object + * + * Purpose: Creates an empty P7_ALIDISPLAY object, one that does not contain an alignment to + * display but has been initialized to reasonable values (NULL for all strings, 0 for the amount + * of memory allocated in its buffer, etc.). This is mainly intended to be used to create a structure + * that a serialized P7_ALIDISPLAY object can be deserialized into. + * + * Returns: Pointer to the new + * + * Throws: Returns NULL if unable to allocate memory + */ +extern P7_ALIDISPLAY *p7_alidisplay_Create_empty() +{ + P7_ALIDISPLAY *new_obj; + int status; // standard ESL_ALLOC error condition + + ESL_ALLOC(new_obj, sizeof(P7_ALIDISPLAY)); + + // Init fields to sensible "empty" values + new_obj->rfline = NULL; + new_obj->mmline = NULL; + new_obj->csline = NULL; + new_obj->model = NULL; + new_obj->mline = NULL; + new_obj->aseq = NULL; + new_obj->ntseq = NULL; + new_obj->ppline = NULL; + new_obj->N = 0; + + new_obj->hmmname = NULL; + new_obj->hmmacc = NULL; + new_obj->hmmdesc = NULL; + new_obj->hmmfrom = 0; + new_obj->hmmto = 0; + new_obj->M = 0; + + new_obj->sqname = NULL; + new_obj->sqacc = NULL; + new_obj->sqdesc = NULL; + new_obj->sqfrom = 0; + new_obj->sqto = 0; + new_obj->L = 0; + + new_obj->memsize = 0; + new_obj->mem = NULL; + + return new_obj; + + ERROR: // only get here if the ESL_ALLOC fails + return NULL; +} +/* Function: p7_alidisplay_Clone() + * Synopsis: Make a duplicate of an ALIDISPLAY. + * + * Purpose: Create a duplicate of alignment display . + * Return a pointer to the duplicate. Caller + * is responsible for freeing the new object. + * + * Returns: pointer to new + * + * Throws: on allocation failure. + */ +P7_ALIDISPLAY * +p7_alidisplay_Clone(const P7_ALIDISPLAY *ad) +{ + P7_ALIDISPLAY *ad2 = NULL; + int status; + + ESL_ALLOC(ad2, sizeof(P7_ALIDISPLAY)); + ad2->rfline = ad2->mmline = ad2->csline = ad2->model = ad2->mline = ad2->aseq = ad2->ntseq = ad2->ppline = NULL; + ad2->hmmname = ad2->hmmacc = ad2->hmmdesc = NULL; + ad2->sqname = ad2->sqacc = ad2->sqdesc = NULL; + ad2->mem = NULL; + ad2->memsize = 0; + + if (ad->memsize) /* serialized */ + { + ESL_ALLOC(ad2->mem, sizeof(char) * ad->memsize); + ad2->memsize = ad->memsize; + memcpy(ad2->mem, ad->mem, ad->memsize); + + ad2->rfline = (ad->rfline ? ad2->mem + (ad->rfline - ad->mem) : NULL ); + ad2->mmline = (ad->mmline ? ad2->mem + (ad->mmline - ad->mem) : NULL ); + ad2->csline = (ad->csline ? ad2->mem + (ad->csline - ad->mem) : NULL ); + ad2->model = ad2->mem + (ad->model - ad->mem); + ad2->mline = ad2->mem + (ad->mline - ad->mem); + ad2->aseq = ad2->mem + (ad->aseq - ad->mem); + ad2->ntseq = (ad->ntseq ? ad2->mem + (ad->ntseq - ad->mem) : NULL ); + ad2->ppline = (ad->ppline ? ad2->mem + (ad->ppline - ad->mem) : NULL ); + ad2->N = ad->N; + + ad2->hmmname = ad2->mem + (ad->hmmname - ad->mem); + ad2->hmmacc = ad2->mem + (ad->hmmacc - ad->mem); + ad2->hmmdesc = ad2->mem + (ad->hmmdesc - ad->mem); + ad2->hmmfrom = ad->hmmfrom; + ad2->hmmto = ad->hmmto; + ad2->M = ad->M; + + ad2->sqname = ad2->mem + (ad->sqname - ad->mem); + ad2->sqacc = ad2->mem + (ad->sqacc - ad->mem); + ad2->sqdesc = ad2->mem + (ad->sqdesc - ad->mem); + ad2->sqfrom = ad->sqfrom; + ad2->sqto = ad->sqto; + ad2->L = ad->L; + } + else /* deserialized */ + { + if ( esl_strdup(ad->rfline, -1, &(ad2->rfline)) != eslOK) goto ERROR; + if ( esl_strdup(ad->mmline, -1, &(ad2->mmline)) != eslOK) goto ERROR; + if ( esl_strdup(ad->csline, -1, &(ad2->csline)) != eslOK) goto ERROR; + if ( esl_strdup(ad->model, -1, &(ad2->model)) != eslOK) goto ERROR; + if ( esl_strdup(ad->mline, -1, &(ad2->mline)) != eslOK) goto ERROR; + if ( esl_strdup(ad->aseq, -1, &(ad2->aseq)) != eslOK) goto ERROR; + if ( esl_strdup(ad->ntseq, -1, &(ad2->ntseq)) != eslOK) goto ERROR; + if ( esl_strdup(ad->ppline, -1, &(ad2->ppline)) != eslOK) goto ERROR; + ad2->N = ad->N; + + if ( esl_strdup(ad->hmmname, -1, &(ad2->hmmname)) != eslOK) goto ERROR; + if ( esl_strdup(ad->hmmacc, -1, &(ad2->hmmacc)) != eslOK) goto ERROR; + if ( esl_strdup(ad->hmmdesc, -1, &(ad2->hmmdesc)) != eslOK) goto ERROR; + ad2->hmmfrom = ad->hmmfrom; + ad2->hmmto = ad->hmmto; + ad2->M = ad->M; + + if ( esl_strdup(ad->sqname, -1, &(ad2->sqname)) != eslOK) goto ERROR; + if ( esl_strdup(ad->sqacc, -1, &(ad2->sqacc)) != eslOK) goto ERROR; + if ( esl_strdup(ad->sqdesc, -1, &(ad2->sqdesc)) != eslOK) goto ERROR; + ad2->sqfrom = ad->sqfrom; + ad2->sqto = ad->sqto; + ad2->L = ad->L; + } + + return ad2; + + ERROR: + if (ad2) p7_alidisplay_Destroy(ad2); + return NULL; +} + + +/* Function: p7_alidisplay_Sizeof() + * Synopsis: Returns the total size of a P7_ALIDISPLAY, in bytes. + * + * Purpose: Return the total size of , in bytes. + * + * Note that memsize = p7_alidisplay_Sizeof(ad) - sizeof(P7_ALIDISPLAY)>, + * for a serialized object, because memsize> only refers to the sum + * of the variable-length allocated fields. + * + * Args: ad - P7_ALIDISPLAY to get the size of + * + * Returns: size of in bytes + */ +size_t +p7_alidisplay_Sizeof(const P7_ALIDISPLAY *ad) +{ + size_t n = sizeof(P7_ALIDISPLAY); + + if (ad->rfline) n += ad->N+1; /* +1 for \0 */ + if (ad->mmline) n += ad->N+1; + if (ad->csline) n += ad->N+1; + if (ad->ppline) n += ad->N+1; + n += 3 * (ad->N+1); /* model, mline, aseq */ + if (ad->ntseq) n += (3 * ad->N) + 1; /* ntseq */ + n += 1 + strlen(ad->hmmname); + n += 1 + strlen(ad->hmmacc); /* optional acc, desc fields: when not present, just "" ("\0") */ + n += 1 + strlen(ad->hmmdesc); + n += 1 + strlen(ad->sqname); + n += 1 + strlen(ad->sqacc); + n += 1 + strlen(ad->sqdesc); + + return n; +} + + +#define SER_BASE_SIZE ((5 * sizeof(int)) + (3 * sizeof(int64_t)) +1) // Total size of the fixed-length fields in a +// serialized P7_ALIDISPLAY + +/* Function: p7_alidisplay_Serialize + * Synopsis: Serializes a HMMD_SEARCH_STATS object into a stream of bytes + *. that can be reliably transmitted over internet sockets + * + * Purpose: Converts an architecture-dependent P7_SEARCH_STATS object into a contiguous stream + * of bytes with each field of the data structure in network byte order for transmission + * over sockets. The serialized byte stream may be part of a larger allocated buffer. + * If the provided buffer is NULL, allocates a new buffer large enough for the serialized object + * If the provided buffer is not large enough to hold the serialized object and its existing data, re-allocates + * a larger buffer + * + * Inputs: obj: A pointer to the HMMD_SEARCH_STATS object to be serialized + * buf: Handle to the buffer that the object should be serialized into. If *buf is NULL, + * a new buffer will be allocated. buf == NULL is not allowed. + * n: Offset (in bytes) from the start of the buffer to where the serialized object should start. + * nalloc: size (in bytes) of the buffer passed in buf + * + *Returns: On success: returns eslOK, sets *buf to the base of the buffer containing the object + * if allocation or re-allocation was requried, sets *n to the offset from the start of the buffer + * to the first position after the serialized object and sets *nalloc to the new size of the buffer + * if allocation or re-allocation was required. + * + * Throws: Returns eslEMEM if unable to allocate or re-allocate memory. Returns eslEINVAL if obj == NULL, n == NULL, or buf == NULL + * Returns eslFAIL if one of the internal calculations fails a consistency check. + */ +int p7_alidisplay_Serialize(const P7_ALIDISPLAY *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc){ + + int status; // error variable used by ESL_ALLOC + uint32_t ser_size; // size of the structure when serialized + uint8_t *ptr; // current position within the buffer + uint32_t network_32bit; // hold 32-bit fields after conversion to network order + uint64_t network_64bit; // hold 64-bit fields after conversion to network order + uint8_t presence_flags = 0; // Bit-vector that records presence or absence of optional strings + uint32_t hmmname_length, hmmacc_length, hmmdesc_length, sqname_length, sqacc_length, sqdesc_length; + + // check to make sure we were passed a valid pointer + if(obj == NULL || buf == NULL || n == NULL){ // no object to serialize or nowhere to put a buffer pointer + return(eslEINVAL); + } + + // Pass 1: Compute size of the serialized data structure + /* 11 ints: 4 int fields in P7_ALIDISPLAY + lengths of 6 variable-length strings + total length of serialized structure + 3 int64_t fields in P7_ALIDISPLAY + 1 byte for presence/absence bit vector for rfline, mmline, csline, ppline, aseq, ntseq + */ + ser_size = SER_BASE_SIZE; + + // This method will work regardless of whether the object is in "serialized" or "deserialized" format + // it's also blatantly stolen from the _Sizeof() routine. + // Note that we can't just call _Sizeof() to figure out how big the serialized data structure will be because + // the serialized structure has some fields that differ from the base P7_ALIDISPLAY structure + + if (obj->rfline){ + presence_flags += RFLINE_PRESENT; + ser_size += obj->N+1; /* +1 for \0 */ + } + + if (obj->mmline) { + presence_flags += MMLINE_PRESENT; + ser_size += obj->N+1; + } + + if (obj->csline){ + presence_flags += CSLINE_PRESENT; + ser_size += obj->N+1; + } + + ser_size += 2 * (obj->N+1); /* model, mline */ + + if (obj->aseq){ + presence_flags += ASEQ_PRESENT; + ser_size += obj->N+1; + } + + if (obj->ntseq){ + presence_flags += NTSEQ_PRESENT; + ser_size += (3 * obj->N) + 1; /* ntseq */ + } + + if (obj->ppline){ + presence_flags += PPLINE_PRESENT; + ser_size += obj->N+1; + } + + hmmname_length = strlen(obj->hmmname); + ser_size += 1 + hmmname_length; + + hmmacc_length = strlen(obj->hmmacc); + ser_size += 1 + hmmacc_length; /* optional acc, desc fields: when not present, just "" ("\0") */ + + hmmdesc_length = strlen(obj->hmmdesc); + ser_size += 1 + hmmdesc_length; + + sqname_length = strlen(obj->sqname); + ser_size += 1 + sqname_length; + + sqacc_length = strlen(obj->sqacc); + ser_size += 1 + sqacc_length; + + sqdesc_length = strlen(obj->sqdesc); + ser_size += 1 + sqdesc_length; + + // Now that we know how big the serialized data structure will be, determine if we have enough buffer space to hold it + if(*buf == NULL){ // have no buffer, so allocate one + ESL_ALLOC(*buf, ser_size); + *nalloc = ser_size; + } + + if((*n + ser_size) > *nalloc){ //have a buffer, but it's not big enough + ESL_REALLOC(*buf, (*n + ser_size)); + *nalloc = *n + ser_size; + } + + // Pass 2: serialize the structure + + //First, the fixed-length field + ptr = *buf + *n; // point to the start of empty space in the buffer + + network_32bit = esl_hton32(ser_size); // first field in the serialized object is its size + memcpy(ptr, &network_32bit, sizeof(uint32_t)); // Write size of the serialized object into the buffer + ptr += sizeof(uint32_t); + + // Field 2: N + network_32bit = esl_hton32(obj->N); + memcpy(ptr, &network_32bit, sizeof(uint32_t)); + ptr += sizeof(uint32_t); + + // Field 3: Hmmfrom field + network_32bit = esl_hton32(obj->hmmfrom); + memcpy(ptr, &network_32bit, sizeof(uint32_t)); + ptr += sizeof(uint32_t); + + // Field 4: Hmmto field + network_32bit = esl_hton32(obj->hmmto); + memcpy(ptr, &network_32bit, sizeof(uint32_t)); + ptr += sizeof(uint32_t); + + // Field 5: M field + network_32bit = esl_hton32(obj->M); + memcpy(ptr, &network_32bit, sizeof(uint32_t)); + ptr += sizeof(uint32_t); + + // Field 6: Sqfrom + network_64bit = esl_hton64(obj->sqfrom); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 7: Sqto + network_64bit = esl_hton64(obj->sqto); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 8: L + network_64bit = esl_hton64(obj->L); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 9: presence_flags + memcpy(ptr, &presence_flags, sizeof(uint8_t)); + ptr += sizeof(uint8_t); + + //Now, the strings, some of which are optional + // Note that many of these strings are fixed-length if they are present + + // Field 10: Rfline + if(presence_flags & RFLINE_PRESENT){ + strcpy((char *) ptr, obj->rfline); + ptr += obj->N + 1; + } + + // Field 11: mmline + if(presence_flags & MMLINE_PRESENT){ + strcpy((char *) ptr, obj->mmline); + ptr += obj->N + 1; + } + + // Field 12: csline + if(presence_flags & CSLINE_PRESENT){ + strcpy((char *) ptr, obj->csline); + ptr += obj->N + 1; + } + + // Field 13: Model + strcpy((char *) ptr, obj->model); + ptr += obj->N + 1; + + // Field 14: Mline + strcpy((char *) ptr, obj->mline); + ptr += obj->N + 1; + + // Field 15: Aseq + if(presence_flags & ASEQ_PRESENT){ + strcpy((char *) ptr, obj->aseq); + ptr += obj->N + 1; + } + + // Field 16: ntseq + if(presence_flags & NTSEQ_PRESENT){ + strcpy((char *) ptr, obj->ntseq); + ptr += (3 * obj->N) + 1; + } + + // Field 17: PPline + if(presence_flags & PPLINE_PRESENT){ + strcpy((char *) ptr, obj->ppline); + ptr += obj->N + 1; + } + + // Field 18: Hmmname + strcpy((char *) ptr, obj->hmmname); + ptr += hmmname_length + 1; + + // Field 19: Hmmacc + strcpy((char *) ptr, obj->hmmacc); + ptr += hmmacc_length + 1; + + // Field 20: Hmmdesc + strcpy((char *) ptr, obj->hmmdesc); + ptr += hmmdesc_length + 1; + + // Field 21: Sqname + strcpy((char *) ptr, obj->sqname); + ptr += sqname_length +1; + + // Field 22: Sqacc + strcpy((char *) ptr, obj->sqacc); + ptr += sqacc_length +1 ; + + // Field 23: Sqdesc + strcpy((char *) ptr, obj->sqdesc); + ptr += sqdesc_length +1 ; + + // sanity-check that we computed the length correctly + if(ptr != *buf + *n + ser_size){ + ESL_EXCEPTION(eslFAIL, "Serialized object length did not match computed length in p7_alidisplay_Serialize"); + } + + *n = ptr - *buf; // update n to be just past the serialized object + return eslOK; // If we make it here, everything succeeded, so return a pass + + ERROR: + return eslEMEM; +} + +/* Function: p7_alidisplay_Deserialize + * Synopsis: Derializes a P7_ALIDISPLAY object from a stream of bytes in network order into + * a valid data structure + * + * Purpose: Deserializes a serialized P7_ALIDISPLAY object from + *. buf starting at position position *pos. + * + * Inputs: buf: the buffer that the object should be de-serialized from + * pos: a pointer to the offset from the start of buf to the beginning of the object + * ret_obj: a P7_ALIDISPLAY structure to deserialize the object into. May not be NULL. May either be an + * "empty" object created with p7_alidisplay_Create_empty, or a P7_ALIDISPLAY object containing valid data + * + * Returns: On success: returns eslOK, deserializes the P7_ALIDISPLAY object into ret_object, and updates + *. pos to point to the position after the end of the P7_ALIDISPLAY object. + * + * Throws: Returns eslEINVAL if ret_obj == NULL, buf == NULL, or N == NULL. Returns eslEMEM if unable to increase + * the buffer in ret_obj to match the size of the deserialized object. Returns eslFAIL if one of the + * internal calculations fails a consistency check. + */ +extern int p7_alidisplay_Deserialize(const uint8_t *buf, uint32_t *n, P7_ALIDISPLAY *ret_obj){ + int status; // Standard Easel error code variable + + uint8_t *ptr; + char *mem_ptr; + uint64_t network_64bit; // holds 64-bit values in network order + uint32_t network_32bit; // holds 64-bit values in network order + uint32_t obj_size; // How much space does the variable-length portion of the serialized object take up? + uint8_t presence_flags; // bit-vector that tells us which strings are present in the object + int string_length; // used to hold the length of strings copied out of serialized object + + if ((buf == NULL) || (ret_obj == NULL) || (n == NULL)){ // check to make sure we've been passed valid objects + return(eslEINVAL); + } + + mem_ptr = NULL; // set this for safety + ptr = (uint8_t *) buf + *n; // Get pointer to start of the object + //First field: Size of the serialized object. Copy out of buffer into scalar variable to deal with memory alignment, convert to + // host machine order + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + obj_size = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + if(ret_obj->memsize < (obj_size - SER_BASE_SIZE)){ // ret_obj doesn't have enough space for this P7_ALIDISPLAY + if(ret_obj->mem != NULL){ + ESL_REALLOC(ret_obj->mem, (obj_size - SER_BASE_SIZE)); + } + else{ + ESL_ALLOC(ret_obj->mem, (obj_size - SER_BASE_SIZE)); + } + ret_obj->memsize = obj_size - SER_BASE_SIZE; + } + + // Second field: N + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->N = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + // Third field: Hmmfrom + memcpy(&network_32bit, ptr, sizeof(uint32_t)); + ret_obj->hmmfrom = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + // Fourth field: Hmmto + memcpy(&network_32bit, ptr, sizeof(uint32_t)); + ret_obj->hmmto = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + // Fifth field: M + memcpy(&network_32bit, ptr, sizeof(uint32_t)); + ret_obj->M = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + // Sixth field: sqfrom + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->sqfrom = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Seventh field: sqto + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->sqto = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Eighth field: L + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->L = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Ninth field: presence flags + presence_flags = *ptr; // no need for memcpy with one-byte field + ptr += sizeof(uint8_t); + + // Bulk copy the strings into the alidisplay's mem field + memcpy(ret_obj->mem, ptr, (obj_size - SER_BASE_SIZE)); + mem_ptr = ret_obj->mem; + ptr += (obj_size - SER_BASE_SIZE); + // Tenth field: rfline, if present + + if(ptr != buf + *n + obj_size){ + ESL_EXCEPTION(eslFAIL, "In p7_alidisplay_Deserialize, found object (ptr) to be of size %ld, expected %u.\n", (long int) (ptr - (buf + *n)), obj_size); + } + + if(presence_flags & RFLINE_PRESENT){ + ret_obj->rfline = mem_ptr; + string_length = strlen(ret_obj->rfline); + mem_ptr+= string_length +1; // + 1 to account for end-of-string character + } + else{ // not present + ret_obj->rfline = NULL; + } + + // Eleventh field: mmline, if present + if(presence_flags & MMLINE_PRESENT){ + ret_obj->mmline = mem_ptr; + string_length = strlen(ret_obj->mmline); + mem_ptr+= string_length + 1; + } + else{ // not present + ret_obj->mmline = NULL; + } + + // Twelfth field: csline, if present + if(presence_flags & CSLINE_PRESENT){ + ret_obj->csline = mem_ptr; + string_length = strlen(ret_obj->csline); + mem_ptr+= string_length + 1; + } + else{ // not present + ret_obj->csline = NULL; + } + + + // Thirteenth field: model + ret_obj->model = mem_ptr; + string_length = strlen(ret_obj->model); + mem_ptr+= string_length + 1; + + // Thirteenth field: mline + ret_obj->mline = mem_ptr; + string_length = strlen(ret_obj->mline); + mem_ptr+= string_length + 1; + + // Fourteenth field: aseq, if present + if(presence_flags & ASEQ_PRESENT){ + ret_obj->aseq = mem_ptr; + string_length = strlen(ret_obj->aseq); + mem_ptr+= string_length + 1; + } + else{ // not present + ret_obj->aseq = NULL; + } + + // Fifteenth field: ntseq, if present + if(presence_flags & NTSEQ_PRESENT){ + ret_obj->ntseq = mem_ptr; + string_length = strlen(ret_obj->ntseq); + mem_ptr+= string_length + 1; + } + else{ // not present + ret_obj->ntseq = NULL; + } + + // Sixteenth field: ppline, if present + if(presence_flags & PPLINE_PRESENT){ + ret_obj->ppline = mem_ptr; + string_length = strlen(ret_obj->ppline); + mem_ptr+= string_length + 1; + } + else{ // not present + ret_obj->ppline = NULL; + } + + // Seventeenth field: hmmname + ret_obj->hmmname = mem_ptr; + string_length = strlen(ret_obj->hmmname); + mem_ptr+= string_length + 1; + + // Eighteenth field: hmmacc + ret_obj->hmmacc = mem_ptr; + string_length = strlen(ret_obj->hmmacc); + mem_ptr+= string_length + 1; + + // Nineteenth field: hmmdesc + ret_obj->hmmdesc = mem_ptr; + string_length = strlen(ret_obj->hmmdesc); + mem_ptr+= string_length + 1; + + // Twentyith field: sqname + ret_obj->sqname = mem_ptr; + string_length = strlen(ret_obj->sqname); + mem_ptr+= string_length + 1; + + // Twentyfirst field: sqacc + ret_obj->sqacc = mem_ptr; + string_length = strlen(ret_obj->sqacc); + mem_ptr+= string_length + 1; + + // Twentysecond field: sqdesc + ret_obj->sqdesc = mem_ptr; + string_length = strlen(ret_obj->sqdesc); + mem_ptr+= string_length +1; + + // Sanity-check that we got the length right + if(mem_ptr - ret_obj->mem != (obj_size - SER_BASE_SIZE)){ + ESL_EXCEPTION(eslFAIL, "At end of p7_alidisplay_Deserialize, found strings to be of size %ld, expected %ld.\n", (long)(mem_ptr - ret_obj->mem), (long)(obj_size - SER_BASE_SIZE)); + } + *n += obj_size; + return eslOK; // as usual, if we get to the end of the routine without failing, return success + + ERROR: // only get here if we can't allocate memory + return eslEMEM; +} + +/* Function: p7_alidisplay_Serialize() + * Synopsis: Serialize a P7_ALIDISPLAY, using internal memory. + * + * Purpose: Serialize the , internally converting + * all its variable-length allocations to a single + * contiguous memory allocation. Serialization aids + * interprocess communication. + * + * If is already serialized, do nothing. + * + * Args: ad - alidisplay to serialize + * + * Returns: on success. + * + * Throws: on allocation failure, and is restored to + * its original (deserialized) state. + */ +int +p7_alidisplay_Serialize_old(P7_ALIDISPLAY *ad) +{ + int pos; + int n; + int status; + + if (ad->mem) return eslOK; /* already serialized, so no-op */ + ad->memsize = p7_alidisplay_Sizeof(ad) - sizeof(P7_ALIDISPLAY); + ESL_ALLOC(ad->mem, ad->memsize); + + /* allow no exceptions past this point, because API guarantees restore of original state upon error */ + + pos = 0; + if (ad->rfline) { memcpy(ad->mem+pos, ad->rfline, ad->N+1); free(ad->rfline); ad->rfline = ad->mem+pos; pos += ad->N+1; } + if (ad->mmline) { memcpy(ad->mem+pos, ad->mmline, ad->N+1); free(ad->mmline); ad->mmline = ad->mem+pos; pos += ad->N+1; } + if (ad->csline) { memcpy(ad->mem+pos, ad->csline, ad->N+1); free(ad->csline); ad->csline = ad->mem+pos; pos += ad->N+1; } + memcpy(ad->mem+pos, ad->model, ad->N+1); free(ad->model); ad->model = ad->mem+pos; pos += ad->N+1; + memcpy(ad->mem+pos, ad->mline, ad->N+1); free(ad->mline); ad->mline = ad->mem+pos; pos += ad->N+1; + memcpy(ad->mem+pos, ad->aseq, ad->N+1); free(ad->aseq); ad->aseq = ad->mem+pos; pos += ad->N+1; + if (ad->ntseq) { memcpy(ad->mem+pos, ad->ntseq, (3*ad->N)+1); free(ad->ntseq); ad->ntseq = ad->mem+pos; pos += (3*ad->N)+1; } + if (ad->ppline) { memcpy(ad->mem+pos, ad->ppline, ad->N+1); free(ad->ppline); ad->ppline = ad->mem+pos; pos += ad->N+1; } + n = 1 + strlen(ad->hmmname); memcpy(ad->mem + pos, ad->hmmname, n); free(ad->hmmname); ad->hmmname = ad->mem+pos; pos += n; + n = 1 + strlen(ad->hmmacc); memcpy(ad->mem + pos, ad->hmmacc, n); free(ad->hmmacc); ad->hmmacc = ad->mem+pos; pos += n; + n = 1 + strlen(ad->hmmdesc); memcpy(ad->mem + pos, ad->hmmdesc, n); free(ad->hmmdesc); ad->hmmdesc = ad->mem+pos; pos += n; + n = 1 + strlen(ad->sqname); memcpy(ad->mem + pos, ad->sqname, n); free(ad->sqname); ad->sqname = ad->mem+pos; pos += n; + n = 1 + strlen(ad->sqacc); memcpy(ad->mem + pos, ad->sqacc, n); free(ad->sqacc); ad->sqacc = ad->mem+pos; pos += n; + n = 1 + strlen(ad->sqdesc); memcpy(ad->mem + pos, ad->sqdesc, n); free(ad->sqdesc); ad->sqdesc = ad->mem+pos; pos += n; + + return eslOK; + + ERROR: + if (ad->mem) { free(ad->mem); ad->mem = NULL; } + return status; +} + +/* Function: p7_alidisplay_Deserialize() + * Synopsis: Deserialize a P7_ALIDISPLAY, using internal memory. + * + * Purpose: Deserialize the , converting its internal + * allocations from a single contiguous memory chunk to individual + * variable-length allocations. Deserialization facilitates + * reallocation/editing of individual elements of the display. + * + * If is already deserialized, do nothing. + * + * Args: ad - alidisplay to serialize + * + * Returns: on success + * + * Throws: on allocation failure, and is restored to + * its original (serialized) state. + */ +int +p7_alidisplay_Deserialize_old(P7_ALIDISPLAY *ad) +{ + int pos; + int n; + int status; + + if (ad->mem == NULL) return eslOK; /* already deserialized, so no-op */ + + pos = 0; + if (ad->rfline) { ESL_ALLOC(ad->rfline, sizeof(char) * ad->N+1); memcpy(ad->rfline, ad->mem+pos, ad->N+1); pos += ad->N+1; } + if (ad->mmline) { ESL_ALLOC(ad->mmline, sizeof(char) * ad->N+1); memcpy(ad->mmline, ad->mem+pos, ad->N+1); pos += ad->N+1; } + if (ad->csline) { ESL_ALLOC(ad->csline, sizeof(char) * ad->N+1); memcpy(ad->csline, ad->mem+pos, ad->N+1); pos += ad->N+1; } + ESL_ALLOC(ad->model, sizeof(char) * ad->N+1); memcpy(ad->model, ad->mem+pos, ad->N+1); pos += ad->N+1; + ESL_ALLOC(ad->mline, sizeof(char) * ad->N+1); memcpy(ad->mline, ad->mem+pos, ad->N+1); pos += ad->N+1; + ESL_ALLOC(ad->aseq, sizeof(char) * ad->N+1); memcpy(ad->aseq, ad->mem+pos, ad->N+1); pos += ad->N+1; + if (ad->ntseq) { ESL_ALLOC(ad->ntseq, sizeof(char) * (3*ad->N)+1); memcpy(ad->ntseq, ad->mem+pos, (3*ad->N)+1); pos += (3*ad->N)+1; } + if (ad->ppline) { ESL_ALLOC(ad->ppline, sizeof(char) * ad->N+1); memcpy(ad->ppline, ad->mem+pos, ad->N+1); pos += ad->N+1; } + n = 1 + strlen(ad->mem+pos); ESL_ALLOC(ad->hmmname, sizeof(char) * n); memcpy(ad->hmmname, ad->mem+pos, n); pos += n; + n = 1 + strlen(ad->mem+pos); ESL_ALLOC(ad->hmmacc, sizeof(char) * n); memcpy(ad->hmmacc, ad->mem+pos, n); pos += n; + n = 1 + strlen(ad->mem+pos); ESL_ALLOC(ad->hmmdesc, sizeof(char) * n); memcpy(ad->hmmdesc, ad->mem+pos, n); pos += n; + n = 1 + strlen(ad->mem+pos); ESL_ALLOC(ad->sqname, sizeof(char) * n); memcpy(ad->sqname, ad->mem+pos, n); pos += n; + n = 1 + strlen(ad->mem+pos); ESL_ALLOC(ad->sqacc, sizeof(char) * n); memcpy(ad->sqacc, ad->mem+pos, n); pos += n; + n = 1 + strlen(ad->mem+pos); ESL_ALLOC(ad->sqdesc, sizeof(char) * n); memcpy(ad->sqdesc, ad->mem+pos, n); pos += n; + + free(ad->mem); + ad->mem = NULL; + ad->memsize = 0; + return eslOK; + + ERROR: + /* restore serialized state, if an alloc fails. tedious, if not nontrivial. */ + /* the pointers are non-NULL whether we just allocated them or if they're pointing into mem, so we have to check against mem+pos */ + pos = 0; + if (ad->rfline) { if (ad->rfline != ad->mem+pos) { free(ad->rfline); ad->rfline = ad->mem+pos; } pos += ad->N+1; } + if (ad->mmline) { if (ad->mmline != ad->mem+pos) { free(ad->mmline); ad->mmline = ad->mem+pos; } pos += ad->N+1; } + if (ad->csline) { if (ad->csline != ad->mem+pos) { free(ad->csline); ad->csline = ad->mem+pos; } pos += ad->N+1; } + if (ad->model != ad->mem+pos) { free(ad->model); ad->model = ad->mem+pos; } pos += ad->N+1; + if (ad->mline != ad->mem+pos) { free(ad->mline); ad->mline = ad->mem+pos; } pos += ad->N+1; + if (ad->aseq != ad->mem+pos) { free(ad->aseq); ad->aseq = ad->mem+pos; } pos += ad->N+1; + if (ad->ntseq) { if (ad->ntseq != ad->mem+pos) { free(ad->ntseq); ad->ntseq = ad->mem+pos; } pos += (3*ad->N)+1; } + if (ad->ppline) { if (ad->ppline != ad->mem+pos) { free(ad->ppline); ad->ppline = ad->mem+pos; } pos += ad->N+1; } + + n = 1 + strlen(ad->hmmname); if (ad->hmmname != ad->mem+pos) { free(ad->hmmname); ad->hmmname = ad->mem+pos; } pos += n; + n = 1 + strlen(ad->hmmacc); if (ad->hmmacc != ad->mem+pos) { free(ad->hmmacc); ad->hmmacc = ad->mem+pos; } pos += n; + n = 1 + strlen(ad->hmmname); if (ad->hmmdesc != ad->mem+pos) { free(ad->hmmdesc); ad->hmmdesc = ad->mem+pos; } pos += n; + n = 1 + strlen(ad->sqname); if (ad->sqname != ad->mem+pos) { free(ad->sqname); ad->sqname = ad->mem+pos; } pos += n; + n = 1 + strlen(ad->sqacc); if (ad->sqacc != ad->mem+pos) { free(ad->sqacc); ad->sqacc = ad->mem+pos; } pos += n; + n = 1 + strlen(ad->sqname); if (ad->sqdesc != ad->mem+pos) { free(ad->sqdesc); ad->sqdesc = ad->mem+pos; } pos += n; + return status; +} + + +/* Function: p7_alidisplay_Destroy() + * Synopsis: Frees a + */ +void +p7_alidisplay_Destroy(P7_ALIDISPLAY *ad) +{ + if (ad == NULL) return; + if (ad->mem) + { /* serialized form */ + free(ad->mem); + } + else + { /* deserialized form */ + if (ad->rfline) free(ad->rfline); + if (ad->mmline) free(ad->mmline); + if (ad->csline) free(ad->csline); + if (ad->model) free(ad->model); + if (ad->mline) free(ad->mline); + if (ad->aseq) free(ad->aseq); + if (ad->ntseq) free(ad->ntseq); + if (ad->ppline) free(ad->ppline); + if (ad->hmmname) free(ad->hmmname); + if (ad->hmmacc) free(ad->hmmacc); + if (ad->hmmdesc) free(ad->hmmdesc); + if (ad->sqname) free(ad->sqname); + if (ad->sqacc) free(ad->sqacc); + if (ad->sqdesc) free(ad->sqdesc); + } + free(ad); +} +/*---------------- end, alidisplay object -----------------------*/ + + + +/***************************************************************** + * 2. The P7_ALIDISPLAY API + *****************************************************************/ + +static int +integer_textwidth(long n) +{ + int w = (n < 0)? 1 : 0; + while (n != 0) { n /= 10; w++; } + return w; +} + + +/* Function: p7_alidisplay_EncodePostProb() + * Synopsis: Convert a posterior probability to a char code. + * + * Purpose: Convert the posterior probability

to + * a character code suitable for Stockholm format + * <#=GC PP_cons> and <#=GR seqname PP> annotation + * lines. HMMER uses the same codes in alignment + * output. + * + * Characters <0-9*> are used; $0.0 \leq p < 0.05$ + * is coded as 0, $0.05 \leq p < 0.15$ is coded as + * 1, ... and so on ..., $0.85 \leq p < 0.95$ is + * coded as 9, and $0.95 \leq p \leq 1.0$ is coded + * as '*'. + * + * Returns: the encoded character. + */ +char +p7_alidisplay_EncodePostProb(float p) +{ + return (p + 0.05 >= 1.0) ? '*' : (char) ((p + 0.05) * 10.0) + '0'; +} + +/* Function: p7_alidisplay_DecodePostProb() + * Synopsis: Convert a char code post prob to an approx float. + * + * Purpose: Convert posterior probability code , which + * is [0-9*], to an approximate floating point probability. + * + * The result is crude, because has already discretized + * with loss of precision. We require that + * , + * and that decodes to a nonzero probability just to + * avoid any possible absorbing-zero artifacts. + * + * Returns: the decoded real-valued approximate probability. + */ +float +p7_alidisplay_DecodePostProb(char pc) +{ + if (pc == '0') return 0.01; + else if (pc == '*') return 1.0; + else if (pc == '.') return 0.0; + else return ((float) (pc - '0') / 10.); +} + + +/* Function: p7_alidisplay_Print() + * Synopsis: Human readable output of + * + * Purpose: Prints alignment to stream . + * + * Put at least alignment characters per + * line; try to make lines no longer than + * characters, including name, coords, and spacing. The + * width of lines may exceed , if that's what it + * takes to put a name, coords, and + * characters of alignment on a line. + * + * As a special case, if is negative or 0, then + * alignments are formatted in a single block of unlimited + * line length. + * + * Returns: on success. + * + * Throws: on write error, such as filling the disk. + */ +int +p7_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, P7_PIPELINE *pli) +{ + int status; + if ((status = p7_nontranslated_alidisplay_Print(fp, ad, min_aliwidth, linewidth, pli->show_accessions)) != eslOK) return status; + + return status; +} + +/* Function: p7_nontranslated_alidisplay_Print() + * Synopsis: Human readable output of + * + * Purpose: Prints alignment to stream . + * + * Put at least alignment characters per + * line; try to make lines no longer than + * characters, including name, coords, and spacing. The + * width of lines may exceed , if that's what it + * takes to put a name, coords, and + * characters of alignment on a line. + * + * As a special case, if is negative or 0, then + * alignments are formatted in a single block of unlimited + * line length. + * + * Returns: on success. + * + * Throws: on write error, such as filling the disk. + */ +int +p7_nontranslated_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, int show_accessions) +{ + char *buf = NULL; + char *show_hmmname = NULL; + char *show_seqname = NULL; + int namewidth, coordwidth, aliwidth; + int pos; + int status; + int ni, nk; + int z; + long i1,i2; + int k1,k2; + + /* implement the --acc option for preferring accessions over names in output */ + show_hmmname = (show_accessions && ad->hmmacc[0] != '\0') ? ad->hmmacc : ad->hmmname; + show_seqname = (show_accessions && ad->sqacc[0] != '\0') ? ad->sqacc : ad->sqname; + + /* dynamically size the output lines */ + namewidth = ESL_MAX(strlen(show_hmmname), strlen(show_seqname)); + coordwidth = ESL_MAX(ESL_MAX(integer_textwidth(ad->hmmfrom), + integer_textwidth(ad->hmmto)), + ESL_MAX(integer_textwidth(ad->sqfrom), + integer_textwidth(ad->sqto))); + + aliwidth = (linewidth > 0) ? linewidth - namewidth - 2*coordwidth - 5 : ad->N; + if (aliwidth < ad->N && aliwidth < min_aliwidth) aliwidth = min_aliwidth; /* at least, regardless of some silly linewidth setting */ + ESL_ALLOC(buf, sizeof(char) * (aliwidth+1)); + buf[aliwidth] = 0; + + /* Break the alignment into multiple blocks of width aliwidth for printing */ + i1 = ad->sqfrom; + k1 = ad->hmmfrom; + for (pos = 0; pos < ad->N; pos += aliwidth) + { + if (pos > 0) { if (fprintf(fp, "\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); } /* blank line betweeen blocks */ + + ni = nk = 0; + for (z = pos; z < pos + aliwidth && z < ad->N; z++) { + if (ad->model[z] != '.') nk++; /* k advances except on insert states */ + if (ad->aseq[z] != '-') ni++; /* i advances except on delete states */ + } + + k2 = k1+nk-1; + if (ad->sqfrom < ad->sqto) i2 = i1+ni-1; + else i2 = i1-ni+1; // revcomp hit for DNA + + if (ad->csline != NULL) { strncpy(buf, ad->csline+pos, aliwidth); if (fprintf(fp, " %*s %s CS\n", namewidth+coordwidth+1, "", buf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); } + if (ad->rfline != NULL) { strncpy(buf, ad->rfline+pos, aliwidth); if (fprintf(fp, " %*s %s RF\n", namewidth+coordwidth+1, "", buf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); } + if (ad->mmline != NULL) { strncpy(buf, ad->mmline+pos, aliwidth); if (fprintf(fp, " %*s %s MM\n", namewidth+coordwidth+1, "", buf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); } + + strncpy(buf, ad->model+pos, aliwidth); if (fprintf(fp, " %*s %*d %s %-*d\n", namewidth, show_hmmname, coordwidth, k1, buf, coordwidth, k2) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); + strncpy(buf, ad->mline+pos, aliwidth); if (fprintf(fp, " %*s %s\n", namewidth+coordwidth+1, " ", buf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); + + if (ni > 0) { strncpy(buf, ad->aseq+pos, aliwidth); if (fprintf(fp, " %*s %*ld %s %-*ld\n", namewidth, show_seqname, coordwidth, i1, buf, coordwidth, i2) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); } + else { strncpy(buf, ad->aseq+pos, aliwidth); if (fprintf(fp, " %*s %*s %s %*s\n", namewidth, show_seqname, coordwidth, "-", buf, coordwidth, "-") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); } + + if (ad->ppline != NULL) { strncpy(buf, ad->ppline+pos, aliwidth); if (fprintf(fp, " %*s %s PP\n", namewidth+coordwidth+1, "", buf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); } + + k1 += nk; + if (ad->sqfrom < ad->sqto) i1 += ni; + else i1 -= ni; // revcomp hit for DNA + } + fflush(fp); + free(buf); + return eslOK; + + ERROR: + if (buf) free(buf); + return status; +} + +/* Function: p7_alidisplay_Backconvert() + * Synopsis: Convert an alidisplay to a faux trace and subsequence. + * + * Purpose: Convert alignment display object to a faux subsequence + * and faux subsequence trace, returning them in and + * . + * + * The subsequence <*ret_sq> is digital; ascii residues in + * are digitized using digital alphabet . + * + * The subsequence and trace are suitable for passing as + * array elements to . This is the + * main purpose of backconversion. Results of a profile + * search are stored in a hit list as a processed + * , not as a and , to + * reduce space and to reduce communication overhead in + * parallelized search implementations. After reduction + * to a final hit list, a master may want to construct a + * multiple alignment of all the significant hits. + * + * Returns: on success. + * + * Throws: on allocation failures. on unexpected internal + * data corruption. On any exception, <*ret_sq> and <*ret_tr> are + * . + * + * Xref: SRE:J4/29. + */ +int +p7_alidisplay_Backconvert(const P7_ALIDISPLAY *ad, const ESL_ALPHABET *abc, ESL_SQ **ret_sq, P7_TRACE **ret_tr) +{ + ESL_SQ *sq = NULL; /* RETURN: faux subsequence */ + P7_TRACE *tr = NULL; /* RETURN: faux trace */ + int subL = 0; /* subsequence length in the */ + int a, i, k; /* coords for , dsq>, model */ + char s; /* current state type: MDI */ + int status; + + /* Make a first pass over just to calculate subseq length */ + for (a = 0; a < ad->N; a++) + if (! esl_abc_CIsGap(abc, ad->aseq[a])) subL++; + + /* Allocations */ + if ((sq = esl_sq_CreateDigital(abc)) == NULL) { status = eslEMEM; goto ERROR; } + if ((status = esl_sq_GrowTo(sq, subL)) != eslOK) goto ERROR; + + if ((tr = (ad->ppline == NULL) ? p7_trace_Create() : p7_trace_CreateWithPP()) == NULL) { status = eslEMEM; goto ERROR; } + if ((status = p7_trace_GrowTo(tr, subL+6)) != eslOK) goto ERROR; /* +6 is for SNB/ECT */ + + /* Construction of dsq, trace */ + sq->dsq[0] = eslDSQ_SENTINEL; + if ((status = ((ad->ppline == NULL) ? p7_trace_Append(tr, p7T_S, 0, 0) : p7_trace_AppendWithPP(tr, p7T_S, 0, 0, 0.0))) != eslOK) goto ERROR; + if ((status = ((ad->ppline == NULL) ? p7_trace_Append(tr, p7T_N, 0, 0) : p7_trace_AppendWithPP(tr, p7T_N, 0, 0, 0.0))) != eslOK) goto ERROR; + if ((status = ((ad->ppline == NULL) ? p7_trace_Append(tr, p7T_B, 0, 0) : p7_trace_AppendWithPP(tr, p7T_B, 0, 0, 0.0))) != eslOK) goto ERROR; + k = ad->hmmfrom - 1; // -1 so the first M causes k to advance to . + i = 1; // ... which assumes always starts with M; currently true, all alis are local alis. + for (a = 0; a < ad->N; a++) + { + /* here, anything that could appear in the original input + * sequence, as opposed to an alignment gap, needs to be + * reconstructed. So, do not test for IsResidue(), because that + * will fail to reconstruct * chars. use ! IsGap() instead. + * [xref iss#135] + */ + if (! esl_abc_CIsGap(abc, ad->model[a])) { k++; s = (! esl_abc_CIsGap(abc, ad->aseq[a]) ? p7T_M : p7T_D); } + else s = p7T_I; + + if ((status = ((ad->ppline == NULL) ? p7_trace_Append(tr, s, k, i) : p7_trace_AppendWithPP(tr, s, k, i, p7_alidisplay_DecodePostProb(ad->ppline[a])))) != eslOK) goto ERROR; + + switch (s) { + case p7T_M: sq->dsq[i] = esl_abc_DigitizeSymbol(abc, ad->aseq[a]); i++; break; + case p7T_I: sq->dsq[i] = esl_abc_DigitizeSymbol(abc, ad->aseq[a]); i++; break; + case p7T_D: break; + } + } + if ((status = ((ad->ppline == NULL) ? p7_trace_Append(tr, p7T_E, 0, 0) : p7_trace_AppendWithPP(tr, p7T_E, 0, 0, 0.0))) != eslOK) goto ERROR; + if ((status = ((ad->ppline == NULL) ? p7_trace_Append(tr, p7T_C, 0, 0) : p7_trace_AppendWithPP(tr, p7T_C, 0, 0, 0.0))) != eslOK) goto ERROR; + if ((status = ((ad->ppline == NULL) ? p7_trace_Append(tr, p7T_T, 0, 0) : p7_trace_AppendWithPP(tr, p7T_T, 0, 0, 0.0))) != eslOK) goto ERROR; + sq->dsq[i] = eslDSQ_SENTINEL; + + /* some sanity checks */ + if (tr->N != ad->N + 6) ESL_XEXCEPTION(eslECORRUPT, "backconverted trace ended up with unexpected size (%s/%s)", ad->sqname, ad->hmmname); + if (k != ad->hmmto) ESL_XEXCEPTION(eslECORRUPT, "backconverted trace didn't end at expected place on model (%s/%s)", ad->sqname, ad->hmmname); + if (i != subL+1) ESL_XEXCEPTION(eslECORRUPT, "backconverted subseq didn't end at expected length (%s/%s)", ad->sqname, ad->hmmname); + + /* Set up annotation as a subseq of a source sequence */ + if ((status = esl_sq_FormatName(sq, "%s/%" PRId64 "-%" PRId64 "", ad->sqname, ad->sqfrom, ad->sqto)) != eslOK) goto ERROR; + if ((status = esl_sq_FormatDesc(sq, "[subseq from] %s", ad->sqdesc[0] != '\0' ? ad->sqdesc : ad->sqname)) != eslOK) goto ERROR; + if ((status = esl_sq_SetSource (sq, ad->sqname)) != eslOK) goto ERROR; + if (ad->sqacc[0] != '\0') { if ((status = esl_sq_SetAccession (sq, ad->sqacc)) != eslOK) goto ERROR; } + sq->n = subL; + sq->start = ad->sqfrom; + sq->end = ad->sqto; + sq->C = 0; + sq->W = subL; + sq->L = ad->L; + + tr->M = ad->M; + tr->L = ad->L; + + *ret_sq = sq; + *ret_tr = tr; + return eslOK; + + ERROR: + if (sq != NULL) esl_sq_Destroy(sq); + if (tr != NULL) p7_trace_Destroy(tr); + *ret_sq = NULL; + *ret_tr = NULL; + return status; +} +/*------------------- end, alidisplay API -----------------------*/ + + +/***************************************************************** + * 3. Debugging/dev code + *****************************************************************/ + + +/* Function: p7_alidisplay_Sample() + * Synopsis: Sample a random, ugly for test purposes + * Incept: SRE, Wed Feb 28 14:22:12 2018 [Caravan Palace, Dragons] + * + * Purpose: Sample a random, dirty of length for + * testing purposes, using random number generator . + * Return it through . Caller frees. + * + * P7_ALIDISPLAY is assumed to be a _local_ alignment. + * Must start with M, and end with M|D. + * + * Args: rng - random number generator + * N - length of alignment + * ret_ad - RETURN: random sampled + * + * Returns: on success, and points to the new + * + * + * Throws: on allocation error, and is NULL. + */ +int +p7_alidisplay_Sample(ESL_RANDOMNESS *rng, int N, P7_ALIDISPLAY **ret_ad) +{ + P7_ALIDISPLAY *ad = NULL; + char *guidestring = NULL; /* string [0..N-1] composed of MDI */ + int nM = 0; + int nD = 0; + int nI = 0; + enum p7t_statetype_e last_st; + int pos; + int status; + + ESL_ALLOC(guidestring, sizeof(char) * (N+1)); + + guidestring[0] = 'M'; nM++; last_st = p7T_M; /* local alignments must start with M */ + for (pos = 1; pos < N-1; pos++) + { + switch (last_st) + { + case p7T_M: + switch (esl_rnd_Roll(rng, 3)) + { + case 0: guidestring[pos] = 'M'; nM++; last_st = p7T_M; break; + case 1: guidestring[pos] = 'D'; nD++; last_st = p7T_D; break; + case 2: guidestring[pos] = 'I'; nI++; last_st = p7T_I; break; + } + break; + + case p7T_I: + switch (esl_rnd_Roll(rng, 2)) + { + case 0: guidestring[pos] = 'M'; nM++; last_st = p7T_M; break; + case 1: guidestring[pos] = 'I'; nI++; last_st = p7T_I; break; + } + break; + + case p7T_D: + switch (esl_rnd_Roll(rng, 2)) + { + case 0: guidestring[pos] = 'M'; nM++; last_st = p7T_M; break; + case 1: guidestring[pos] = 'D'; nD++; last_st = p7T_D; break; + } + break; + + default: + break; + } + } + /* local alignments can end on M or D. (optimal local alignments can only end on M) */ + switch (last_st) { + case p7T_I: + guidestring[N-1] = 'M'; nM++; break; + default: + switch (esl_rnd_Roll(rng, 2)) { + case 0: guidestring[N-1] = 'M'; nM++; break; + case 1: guidestring[N-1] = 'D'; nD++; break; + } + break; + } + guidestring[N] = '\0'; + + ESL_ALLOC(ad, sizeof(P7_ALIDISPLAY)); + ad->rfline = ad->mmline = ad->csline = ad->model = ad->mline = ad->aseq = ad->ntseq = ad->ppline = NULL; + ad->hmmname = ad->hmmacc = ad->hmmdesc = NULL; + ad->sqname = ad->sqacc = ad->sqdesc = NULL; + ad->mem = NULL; + ad->memsize = 0; + + /* Optional lines are added w/ 50% chance */ + if (esl_rnd_Roll(rng, 2) == 0) ESL_ALLOC(ad->rfline, sizeof(char) * (N+1)); + if (esl_rnd_Roll(rng, 2) == 0) ESL_ALLOC(ad->mmline, sizeof(char) * (N+1)); + if (esl_rnd_Roll(rng, 2) == 0) ESL_ALLOC(ad->csline, sizeof(char) * (N+1)); + if (esl_rnd_Roll(rng, 2) == 0) ESL_ALLOC(ad->ppline, sizeof(char) * (N+1)); + ESL_ALLOC(ad->model, sizeof(char) * (N+1)); + ESL_ALLOC(ad->mline, sizeof(char) * (N+1)); + ESL_ALLOC(ad->aseq, sizeof(char) * (N+1)); + ad->N = N; + + esl_strdup("my_hmm", -1, &(ad->hmmname)); + if (esl_rnd_Roll(rng, 2) == 0) esl_strdup("PF000007", -1, &(ad->hmmacc)); else esl_strdup("", -1, &(ad->hmmacc)); + if (esl_rnd_Roll(rng, 2) == 0) esl_strdup("(hmm description)", -1, &(ad->hmmdesc)); else esl_strdup("", -1, &(ad->hmmdesc)); + + esl_strdup("my_seq", -1, &(ad->sqname)); + if (esl_rnd_Roll(rng, 2) == 0) esl_strdup("ABC000001.42", -1, &(ad->sqacc)); else esl_strdup("", -1, &(ad->sqacc)); + if (esl_rnd_Roll(rng, 2) == 0) esl_strdup("(sequence description)", -1, &(ad->sqdesc)); else esl_strdup("", -1, &(ad->sqdesc)); + + /* model, seq coords must look valid. */ + ad->hmmfrom = 100; + ad->hmmto = ad->hmmfrom + nM + nD - 1; + ad->M = ad->hmmto + esl_rnd_Roll(rng, 2); + + ad->sqfrom = 1000; + ad->sqto = ad->sqfrom + nM + nI - 1; + ad->L = ad->sqto + esl_rnd_Roll(rng, 2); + + /* rfline is free-char "reference annotation" on consensus; H3 puts '.' for inserts. */ + if (ad->rfline) { + for (pos = 0; pos < N; pos++) + ad->rfline[pos] = (guidestring[pos] == 'I' ? '.' : 'x'); + ad->rfline[pos] = '\0'; + } + + /* mmline indicates which columns should be masked (assigned background distribution), '.' indicates no mask; H3 puts '.' for inserts. */ + if (ad->mmline) { + for (pos = 0; pos < N; pos++) + ad->mmline[pos] = (guidestring[pos] == 'I' ? '.' : '.'); + ad->mmline[pos] = '\0'; + } + + /* csline is optional. It has free-char "consensus structure annotation" on consensus positions. H3 puts '.' on inserts. */ + if (ad->csline) { + for (pos = 0; pos < N; pos++) + ad->csline[pos] = (guidestring[pos] == 'I' ? '.' : 'X'); + ad->csline[pos] = '\0'; + } + + /* the mandatory three-line alignment display: + * + * guidestring: MMMDI + * model: XXXX. + * mline: A+ + * aseq: AAA-a + */ + for (pos = 0; pos < N; pos++) + { + switch (guidestring[pos]) { + case 'M': + ad->model[pos] = 'X'; + switch (esl_rnd_Roll(rng, 3)) { + case 0: ad->mline[pos] = 'A'; + case 1: ad->mline[pos] = '+'; + case 2: ad->mline[pos] = ' '; + } + if (ad->mline[pos] == ' ' && esl_rnd_Roll(rng, 50) == 0) ad->aseq[pos] = '*'; // dirty aligned sequence up with nasty * stop codons, about 1/(3*50) of the time. + else ad->aseq[pos] = 'A'; // ... they would only be aligned to ' ' on an mline. + break; // ... they might appear aligned to a match or insert state (see iss#135) + + case 'D': + ad->model[pos] = 'X'; + ad->mline[pos] = ' '; + ad->aseq[pos] = '-'; + break; + + case 'I': + ad->model[pos] = '.'; + ad->mline[pos] = ' '; + ad->aseq[pos] = 'a'; + break; + } + } + ad->model[pos] = '\0'; + ad->mline[pos] = '\0'; + ad->aseq[pos] = '\0'; + + /* ppline is optional */ + if (ad->ppline) { + for (pos = 0; pos < N; pos++) + ad->ppline[pos] = (guidestring[pos] == 'D' ? '.' : p7_alidisplay_EncodePostProb(esl_random(rng))); + ad->ppline[pos] = '\0'; + } + + free(guidestring); + *ret_ad = ad; + return eslOK; + + ERROR: + if (guidestring) free(guidestring); + if (ad) p7_alidisplay_Destroy(ad); + *ret_ad = NULL; + return status; +} + + + +/* Function: p7_alidisplay_Dump() + * Synopsis: Print contents of P7_ALIDISPLAY for inspection. + * + * Purpose: Print contents of the to + * stream for inspection. Includes all elements + * of the structure, whether the object is allocated + * in serialized or deserialized form, and the total + * size of the object in bytes. + * + * Returns: + */ +int +p7_alidisplay_Dump(FILE *fp, const P7_ALIDISPLAY *ad) +{ + fprintf(fp, "P7_ALIDISPLAY dump\n"); + fprintf(fp, "------------------\n"); + + fprintf(fp, "rfline = %s\n", ad->rfline ? ad->rfline : "[none]"); + fprintf(fp, "mmline = %s\n", ad->mmline ? ad->mmline : "[none]"); + fprintf(fp, "csline = %s\n", ad->csline ? ad->csline : "[none]"); + fprintf(fp, "model = %s\n", ad->model); + fprintf(fp, "mline = %s\n", ad->mline); + fprintf(fp, "aseq = %s\n", ad->aseq); + fprintf(fp, "N = %d\n", ad->N); + fprintf(fp, "\n"); + + fprintf(fp, "hmmname = %s\n", ad->hmmname); + fprintf(fp, "hmmacc = %s\n", ad->hmmacc[0] == '\0' ? "[none]" : ad->hmmacc); + fprintf(fp, "hmmdesc = %s\n", ad->hmmdesc[0] == '\0' ? "[none]" : ad->hmmdesc); + fprintf(fp, "hmmfrom = %d\n", ad->hmmfrom); + fprintf(fp, "hmmto = %d\n", ad->hmmto); + fprintf(fp, "M = %d\n", ad->M); + fprintf(fp, "\n"); + + fprintf(fp, "sqname = %s\n", ad->sqname); + fprintf(fp, "sqacc = %s\n", ad->sqacc[0] == '\0' ? "[none]" : ad->sqacc); + fprintf(fp, "sqdesc = %s\n", ad->sqdesc[0] == '\0' ? "[none]" : ad->sqdesc); + fprintf(fp, "sqfrom = %" PRId64 "\n", ad->sqfrom); + fprintf(fp, "sqto = %" PRId64 "\n", ad->sqto); + fprintf(fp, "L = %" PRId64 "\n", ad->L); + fprintf(fp, "\n"); + + fprintf(fp, "size = %d bytes\n", (int) p7_alidisplay_Sizeof(ad)); + fprintf(fp, "%s\n", ad->mem ? "serialized" : "not serialized"); + return eslOK; +} + +/* Function: p7_alidisplay_Compare() + * Synopsis: Compare two objects for equality + * + * Purpose: Compare alignment displays and for + * equality. Return if they have identical + * contents; if not. + * + * Only contents matter, not serialization status; + * a serialized and deserialized version of the same + * alidisplay will compare identical. + */ +int +p7_alidisplay_Compare(const P7_ALIDISPLAY *ad1, const P7_ALIDISPLAY *ad2) +{ + if (ad1->mem && ad2->mem) /* both objects serialized */ + { + if (ad1->memsize != ad2->memsize) return eslFAIL; + if (memcmp(ad1->mem, ad2->mem, ad1->memsize) != 0) return eslFAIL; + } + + if (esl_strcmp(ad1->rfline, ad2->rfline) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->mmline, ad2->mmline) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->csline, ad2->csline) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->model, ad2->model) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->mline, ad2->mline) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->aseq, ad2->aseq) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->ntseq, ad2->ntseq) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->ppline, ad2->ppline) != eslOK) return eslFAIL; + if (ad1->N != ad2->N) return eslFAIL; + + if (esl_strcmp(ad1->hmmname, ad2->hmmname) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->hmmacc, ad2->hmmacc) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->hmmdesc, ad2->hmmdesc) != eslOK) return eslFAIL; + if (ad1->hmmfrom != ad2->hmmfrom) return eslFAIL; + if (ad1->hmmto != ad2->hmmto) return eslFAIL; + if (ad1->M != ad2->M) return eslFAIL; + + if (esl_strcmp(ad1->sqname, ad2->sqname) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->sqacc, ad2->sqacc) != eslOK) return eslFAIL; + if (esl_strcmp(ad1->sqdesc, ad2->sqdesc) != eslOK) return eslFAIL; + if (ad1->sqfrom != ad2->sqfrom) return eslFAIL; + if (ad1->sqto != ad2->sqto) return eslFAIL; + if (ad1->M != ad2->M) return eslFAIL; + + return eslOK; +} + + +/*-------------- end, debugging/dev code ------------------------*/ + + + +/***************************************************************** + * 4. Benchmark driver. + *****************************************************************/ +#ifdef p7ALIDISPLAY_BENCHMARK +/* + gcc -o benchmark-alidisplay -std=gnu99 -g -Wall -O2 -I. -L. -I../easel -L../easel -Dp7ALIDISPLAY_BENCHMARK p7_alidisplay.c -lhmmer -leasel -lm + + ./benchmark-alidisplay runs benchmark + ./benchmark-alidisplay -b gets baseline time to subtract: just random trace generation + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-b", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "baseline timing", 0 }, + { "-p", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "include fake PP line, just to see how it looks", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of traces to generate", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for P7_ALIDISPLAY"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + int N = esl_opt_GetInteger(go, "-N"); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_TRACE *tr = NULL; + ESL_SQ *sq = NULL; + P7_ALIDISPLAY *ad = NULL; + int i,z; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, 0); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 0, p7_UNIGLOCAL); /* that sets N,C,J to generate nothing */ + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + if (esl_opt_GetBoolean(go, "-p")) tr = p7_trace_CreateWithPP(); + else tr = p7_trace_Create(); + + sq = esl_sq_CreateDigital(abc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + { + p7_ProfileEmit(r, hmm, gm, bg, sq, tr); + esl_sq_SetName(sq, "random"); + + if (! esl_opt_GetBoolean(go, "-b")) + { + if (esl_opt_GetBoolean(go, "-p")) + for (z = 0; z < tr->N; z++) + if (tr->i[z] > 0) tr->pp[z] = esl_random(r); + + ad = p7_alidisplay_Create(tr, 0, om, sq, NULL); + p7_alidisplay_Print(stdout, ad, 40, 80, FALSE); + p7_alidisplay_Destroy(ad); + } + p7_trace_Reuse(tr); + esl_sq_Reuse(sq); + } + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_stopwatch_Destroy(w); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7ALIDISPLAY_BENCHMARK*/ +/*--------------------- end, benchmark driver -------------------*/ + +/**************************************************************** + * 5. Unit tests. + ****************************************************************/ +#ifdef p7ALIDISPLAY_TESTDRIVE + +/*Testing function that generates a P7_ALIDISPLAY containing a nucleotide sequence string rather than an amino + *sequence string. This function should only be used for testing the serialization/deserializaton code. No attempt + *is made to make the nucleotide string be reasonable or even valid -- it's just a valid C string of the correct length + * Like p7_alidisplay_Sample, which it is based on, it randomly selects which of the optional fields should be present in the + * alidisplay */ +static int +alidisplay_SampleFake_ntseq(ESL_RANDOMNESS *rng, int N, P7_ALIDISPLAY **ret_ad) +{ + P7_ALIDISPLAY *ad = NULL; + char *guidestring = NULL; /* string [0..N-1] composed of MDI */ + int nM = 0; + int nD = 0; + int nI = 0; + enum p7t_statetype_e last_st; + int pos; + int status; + + ESL_ALLOC(guidestring, sizeof(char) * (N+1)); + + guidestring[0] = 'M'; nM++; last_st = p7T_M; /* local alignments must start with M */ + for (pos = 1; pos < N-1; pos++) + { + switch (last_st) + { + case p7T_M: + switch (esl_rnd_Roll(rng, 3)) + { + case 0: guidestring[pos] = 'M'; nM++; last_st = p7T_M; break; + case 1: guidestring[pos] = 'D'; nD++; last_st = p7T_D; break; + case 2: guidestring[pos] = 'I'; nI++; last_st = p7T_I; break; + } + break; + + case p7T_I: + switch (esl_rnd_Roll(rng, 2)) + { + case 0: guidestring[pos] = 'M'; nM++; last_st = p7T_M; break; + case 1: guidestring[pos] = 'I'; nI++; last_st = p7T_I; break; + } + break; + + case p7T_D: + switch (esl_rnd_Roll(rng, 2)) + { + case 0: guidestring[pos] = 'M'; nM++; last_st = p7T_M; break; + case 1: guidestring[pos] = 'D'; nD++; last_st = p7T_D; break; + } + break; + + default: + break; + } + } + /* local alignments can end on M or D. (optimal local alignments can only end on M) */ + switch (last_st) { + case p7T_I: + guidestring[N-1] = 'M'; nM++; break; + default: + switch (esl_rnd_Roll(rng, 2)) { + case 0: guidestring[N-1] = 'M'; nM++; break; + case 1: guidestring[N-1] = 'D'; nD++; break; + } + break; + } + guidestring[N] = '\0'; + + ESL_ALLOC(ad, sizeof(P7_ALIDISPLAY)); + ad->rfline = ad->mmline = ad->csline = ad->model = ad->mline = ad->aseq = ad->ntseq = ad->ppline = NULL; + ad->hmmname = ad->hmmacc = ad->hmmdesc = NULL; + ad->sqname = ad->sqacc = ad->sqdesc = NULL; + ad->mem = NULL; + ad->memsize = 0; + + /* Optional lines are added w/ 50% chance */ + if (esl_rnd_Roll(rng, 2) == 0) ESL_ALLOC(ad->rfline, sizeof(char) * (N+1)); + if (esl_rnd_Roll(rng, 2) == 0) ESL_ALLOC(ad->mmline, sizeof(char) * (N+1)); + if (esl_rnd_Roll(rng, 2) == 0) ESL_ALLOC(ad->csline, sizeof(char) * (N+1)); + if (esl_rnd_Roll(rng, 2) == 0) ESL_ALLOC(ad->ppline, sizeof(char) * (N+1)); + ESL_ALLOC(ad->model, sizeof(char) * (N+1)); + ESL_ALLOC(ad->mline, sizeof(char) * (N+1)); + ESL_ALLOC(ad->ntseq, sizeof(char) * ((3 *N)+1)); + ad->N = N; + + esl_strdup("my_hmm", -1, &(ad->hmmname)); + if (esl_rnd_Roll(rng, 2) == 0) esl_strdup("PF000007", -1, &(ad->hmmacc)); else esl_strdup("", -1, &(ad->hmmacc)); + if (esl_rnd_Roll(rng, 2) == 0) esl_strdup("(hmm description)", -1, &(ad->hmmdesc)); else esl_strdup("", -1, &(ad->hmmdesc)); + + esl_strdup("my_seq", -1, &(ad->sqname)); + if (esl_rnd_Roll(rng, 2) == 0) esl_strdup("ABC000001.42", -1, &(ad->sqacc)); else esl_strdup("", -1, &(ad->sqacc)); + if (esl_rnd_Roll(rng, 2) == 0) esl_strdup("(sequence description)", -1, &(ad->sqdesc)); else esl_strdup("", -1, &(ad->sqdesc)); + + /* model, seq coords must look valid. */ + ad->hmmfrom = 100; + ad->hmmto = ad->hmmfrom + nM + nD - 1; + ad->M = ad->hmmto + esl_rnd_Roll(rng, 2); + + ad->sqfrom = 1000; + ad->sqto = ad->sqfrom + nM + nI - 1; + ad->L = ad->sqto + esl_rnd_Roll(rng, 2); + + /* rfline is free-char "reference annotation" on consensus; H3 puts '.' for inserts. */ + if (ad->rfline) { + for (pos = 0; pos < N; pos++) + ad->rfline[pos] = (guidestring[pos] == 'I' ? '.' : 'x'); + ad->rfline[pos] = '\0'; + } + + /* mmline indicates which columns should be masked (assigned background distribution), '.' indicates no mask; H3 puts '.' for inserts. */ + if (ad->mmline) { + for (pos = 0; pos < N; pos++) + ad->mmline[pos] = (guidestring[pos] == 'I' ? '.' : '.'); + ad->mmline[pos] = '\0'; + } + + /* csline is optional. It has free-char "consensus structure annotation" on consensus positions. H3 puts '.' on inserts. */ + if (ad->csline) { + for (pos = 0; pos < N; pos++) + ad->csline[pos] = (guidestring[pos] == 'I' ? '.' : 'X'); + ad->csline[pos] = '\0'; + } + + /* the mandatory three-line alignment display: + * + * guidestring: MMMDI + * model: XXXX. + * mline: A+ + * ntseq: AAA-a + */ + for (pos = 0; pos < N; pos++) + { + switch (guidestring[pos]) { + case 'M': + ad->model[pos] = 'X'; + switch (esl_rnd_Roll(rng, 3)) { + case 0: ad->mline[pos] = 'A'; + case 1: ad->mline[pos] = '+'; + case 2: ad->mline[pos] = ' '; + } + if (ad->mline[pos] == ' ' && esl_rnd_Roll(rng, 50) == 0) ad->ntseq[pos] = '*'; // dirty aligned sequence up with nasty * stop codons, about 1/(3*50) of the time. + else ad->ntseq[pos] = 'A'; // ... they would only be aligned to ' ' on an mline. + break; // ... they might appear aligned to a match or insert state (see iss#135) + + case 'D': + ad->model[pos] = 'X'; + ad->mline[pos] = ' '; + ad->ntseq[pos] = '-'; + break; + + case 'I': + ad->model[pos] = '.'; + ad->mline[pos] = ' '; + ad->ntseq[pos] = 'a'; + break; + } + } + ad->model[pos] = '\0'; + ad->mline[pos] = '\0'; + + // pad out ntseq to the 3N length it needs + for (pos = N; pos < (3 * N); pos++){ + if(esl_rnd_Roll(rng, 50) == 0) ad->ntseq[pos] = '*'; // dirty aligned sequence up with nasty * stop codons, about 1/(3*50) of the time. + else ad->ntseq[pos] = 'A'; // ... they would only be aligned to ' ' on an mline. + } + ad->ntseq[pos] = '\0'; + + /* ppline is optional */ + if (ad->ppline) { + for (pos = 0; pos < N; pos++) + ad->ppline[pos] = (guidestring[pos] == 'D' ? '.' : p7_alidisplay_EncodePostProb(esl_random(rng))); + ad->ppline[pos] = '\0'; + } + + free(guidestring); + *ret_ad = ad; + return eslOK; + + ERROR: + if (guidestring) free(guidestring); + if (ad) p7_alidisplay_Destroy(ad); + *ret_ad = NULL; + return status; +} + + + + +static void +utest_Serialize(ESL_RANDOMNESS *rng, int ntrials) +{ + char msg[] = "utest_Serialize failed"; + P7_ALIDISPLAY **serial = malloc(ntrials * sizeof(P7_ALIDISPLAY *)); + P7_ALIDISPLAY **deserial = malloc(ntrials * sizeof(P7_ALIDISPLAY *)); + uint8_t **buf = malloc(sizeof(uint8_t *)); + uint32_t n = 0; + uint32_t nalloc = 0; + int alignment_length; + int i; + + *buf = NULL; + for (i = 0; i < ntrials; i++) + { + // Create random alignment to serialize + alignment_length = (esl_random_uint32(rng) %300) + 50; + if (esl_rnd_Roll(rng, 2) == 0) + { // 50% chance of alidisplay with an amino sequence, 50% chance of alidisplay with nucleotide seq. + if (p7_alidisplay_Sample(rng, alignment_length, &(serial[i])) != eslOK) esl_fatal(msg); + } + else + { + if (alidisplay_SampleFake_ntseq(rng, alignment_length, &(serial[i])) != eslOK) esl_fatal(msg); + } + if (p7_alidisplay_Serialize(serial[i], buf, &n, &nalloc) != eslOK) esl_fatal(msg); + } + + n = 0; // reset to start of buffer + for (i = 0; i < ntrials; i++) + { + if ((deserial[i] = p7_alidisplay_Create_empty()) == NULL) esl_fatal(msg); + if( p7_alidisplay_Deserialize(*buf, &n, deserial[i]) != eslOK) esl_fatal(msg); + } + + // free the buffer here to make sure we've actually copied all the data out of it into the new structures + free(*buf); + free(buf); + for (i = 0; i < ntrials; i++) + if (p7_alidisplay_Compare(serial[i], deserial[i]) != eslOK) esl_fatal(msg); // deserialized structure didn't match serialized + // haven't failed yet, so we've succeeded. Clean up and exit + + for (i = 0; i < ntrials; i++) { + p7_alidisplay_Destroy(serial[i]); + p7_alidisplay_Destroy(deserial[i]); + } + free(serial); + free(deserial); + return; +} + +// Test that the _Serialize() function generates the correct errors when passed invalid arguments +static void +utest_serialize_error_conditions(ESL_RANDOMNESS *rng) +{ + char msg[] = "utest_serialize_error_conditions failed"; + P7_ALIDISPLAY *foo = NULL; + uint8_t **buf = malloc(sizeof(uint8_t *)); + uint32_t n = 0; + uint32_t nalloc = 0; + + // Create an alisplay to work with. Don't really care about its contents -- other tests will verify + // correct serialization and deserialization + *buf = NULL; // set buf to valid value + if ( p7_alidisplay_Sample(rng, 100, &foo) != eslOK) esl_fatal(msg); + if ( p7_alidisplay_Serialize(foo, NULL, &n, &nalloc) != eslEINVAL) esl_fatal(msg); // Test 1: _Serialize returns error if passed NULL buffer + if ( p7_alidisplay_Serialize(foo, buf, NULL, &nalloc) != eslEINVAL) esl_fatal(msg); // Test 2: error on NULL n ptr + if ( p7_alidisplay_Serialize(NULL, buf, &n, &nalloc) != eslEINVAL) esl_fatal(msg); // Test 3: error on NULL object ptr + + if (buf) { free(*buf); free(buf); } + p7_alidisplay_Destroy(foo); + return; +} + +static void +utest_deserialize_error_conditions(ESL_RANDOMNESS *rng) +{ + char msg[] = "utest_deserialize_error_conditions failed"; + P7_ALIDISPLAY *sampled = NULL; // sampled alidisplay that we'll serialze + P7_ALIDISPLAY *deserial = NULL; // alidisplay to hold the deserialized object + uint8_t *buf = NULL; + uint32_t n = 0, nalloc = 0; + + if ((deserial = p7_alidisplay_Create_empty()) == NULL) esl_fatal(msg); + if ( p7_alidisplay_Sample(rng, 100, &sampled) != eslOK) esl_fatal(msg); + if ( p7_alidisplay_Serialize(sampled, &buf, &n, &nalloc) != eslOK) esl_fatal(msg); + + + if ( p7_alidisplay_Deserialize(NULL, &n, deserial) != eslEINVAL) esl_fatal(msg); // Test 1: error on buf == NULL; + if ( p7_alidisplay_Deserialize(buf, NULL, deserial) != eslEINVAL) esl_fatal(msg); // Test 2: error on n == NULL + if ( p7_alidisplay_Deserialize(buf, &n, NULL) != eslEINVAL) esl_fatal(msg); // Test 3: error on serialized object == NULL + + free(buf); + p7_alidisplay_Destroy(deserial); + p7_alidisplay_Destroy(sampled); + return; +} + + +static void +utest_Backconvert(int be_verbose, ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, int ntrials, int N) +{ + char msg[] = "utest_Backconvert failed"; + P7_ALIDISPLAY *ad = NULL; + ESL_SQ *sq = NULL; + P7_TRACE *tr = NULL; + int trial; + + for (trial = 0; trial < ntrials; trial++) + { + if ( p7_alidisplay_Sample(rng, N, &ad) != eslOK) esl_fatal(msg); + if ( p7_alidisplay_Serialize_old(ad) != eslOK) esl_fatal(msg); + if (be_verbose && p7_alidisplay_Dump(stdout, ad) != eslOK) esl_fatal(msg); + if ( p7_alidisplay_Backconvert(ad, abc, &sq, &tr) != eslOK) esl_fatal(msg); + if (be_verbose && p7_trace_Dump(stdout, tr, NULL, sq->dsq) != eslOK) esl_fatal(msg); + if ( p7_trace_Validate(tr, abc, sq->dsq, NULL) != eslOK) esl_fatal(msg); + + p7_alidisplay_Destroy(ad); + esl_sq_Destroy(sq); + p7_trace_Destroy(tr); + } + return; +} + + +#endif /*p7ALIDISPLAY_TESTDRIVE*/ +/*------------------- end, unit tests ---------------------------*/ + +/***************************************************************** + * 6. Test driver. + *****************************************************************/ +#ifdef p7ALIDISPLAY_TESTDRIVE + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgrp */ + {"-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0}, + {"-N", eslARG_INT, "10", NULL, NULL, NULL, NULL, NULL, "number of random-sampled alidisplays to test", 0}, + {"-L", eslARG_INT, "20", NULL, NULL, NULL, NULL, NULL, "length of random-sampled alidisplays to test", 0}, + {"-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0}, + {"-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show verbose commentary/output", 0}, + { 0,0,0,0,0,0,0,0,0,0}, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for p7_alidisplay.c"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *rng = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + int N = esl_opt_GetInteger(go, "-N"); + int L = esl_opt_GetInteger(go, "-L"); + int be_verbose = esl_opt_GetBoolean(go, "-v"); + + //utest_Serialize_old ( rng, N, L); + utest_Serialize(rng, 100); + utest_Backconvert(be_verbose, rng, abc, N, L); + utest_serialize_error_conditions(rng); + utest_deserialize_error_conditions(rng); + + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(rng); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7ALIDISPLAY_TESTDRIVE*/ +/*------------------- end, test driver --------------------------*/ + + +/***************************************************************** + * 7. Example. + *****************************************************************/ +/* + gcc -o p7_alidisplay_example -std=gnu99 -g -Wall -I. -L. -I../easel -L../easel -Dp7ALIDISPLAY_EXAMPLE p7_alidisplay.c -lhmmer -leasel -lm +*/ +#ifdef p7ALIDISPLAY_EXAMPLE +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example driver for P7_ALIDISPLAY"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_TRACE *tr1 = NULL; + P7_TRACE *tr2 = NULL; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + ESL_SQ *sq2 = NULL; + P7_ALIDISPLAY *ad = NULL; + P7_PIPELINE *pli = NULL; + P7_TOPHITS *hitlist = NULL; + + p7_FLogsumInit(); + + /* Read a single HMM from a file */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read a single sequence from a file */ + if (esl_sqfile_Open(seqfile, eslSQFILE_UNKNOWN, NULL, &sqfp) != eslOK) p7_Fail("Failed to open sequence file %s", seqfile); + sq = esl_sq_CreateDigital(abc); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, 0); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 0, p7_UNILOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + + /* Create a pipeline and a top hits list */ + pli = p7_pipeline_Create(NULL/*=default*/, hmm->M, 400, FALSE, p7_SEARCH_SEQS); + hitlist = p7_tophits_Create(); + + /* Run the pipeline */ + p7_pli_NewSeq(pli, sq); + p7_bg_SetLength(bg, sq->n); + p7_oprofile_ReconfigLength(om, sq->n); + p7_Pipeline(pli, om, bg, sq, NULL, hitlist); + + if (hitlist->N == 0) { p7_Fail("target sequence doesn't hit"); } + + if (p7_alidisplay_Backconvert(hitlist->hit[0]->dcl[0].ad, abc, &sq2, &tr2) != eslOK) p7_Fail("backconvert failed"); + + p7_trace_Dump(stdout, tr2, gm, sq2->dsq); + + p7_tophits_Destroy(hitlist); + p7_alidisplay_Destroy(ad); + esl_sq_Destroy(sq); + esl_sq_Destroy(sq2); + p7_trace_Destroy(tr2); + p7_trace_Destroy(tr1); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7ALIDISPLAY_EXAMPLE*/ + + diff --git a/bioinformaticsProject/hmmer/src/p7_bg.c b/bioinformaticsProject/hmmer/src/p7_bg.c new file mode 100644 index 0000000..6a8dfd5 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_bg.c @@ -0,0 +1,755 @@ +/* P7_BG: the null (background) model + * + * Contents: + * 1. P7_BG object: allocation, initialization, destruction. + * 2. Reading/writing residue backgrounds from files. + * 3. Standard iid null model ("null1"). + * 4. Filter null model. + * 5. Benchmark driver. + * 6. Unit tests. + * 7. Test driver. + * 8. Examples. + */ +#include "p7_config.h" + +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_hmm.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + + +/***************************************************************** + * 1. The P7_BG object: allocation, initialization, destruction. + *****************************************************************/ + +/* Function: p7_bg_Create() + * Synopsis: Create a null model object. + * + * Purpose: Allocate a object for digital alphabet , + * initializes it to appropriate default values, and + * returns a pointer to it. + * + * For protein models, default iid background frequencies + * are set (by ) to average + * Swiss-Prot residue composition. For DNA, RNA and other + * alphabets, default frequencies are set to a uniform + * distribution. + * + * The model composition mcomp[]> is not initialized + * here; neither is the filter null model fhmm>. To + * use the filter null model, caller will want to + * initialize these fields by calling + * . + * + * Throws: on allocation failure. + * + * Xref: STL11/125. + */ +P7_BG * +p7_bg_Create(const ESL_ALPHABET *abc) +{ + P7_BG *bg = NULL; + int status; + + ESL_ALLOC(bg, sizeof(P7_BG)); + bg->f = NULL; + bg->fhmm = NULL; + + ESL_ALLOC(bg->f, sizeof(float) * abc->K); + if ((bg->fhmm = esl_hmm_Create(abc, 2)) == NULL) goto ERROR; + + if (abc->type == eslAMINO) + { + if (p7_AminoFrequencies(bg->f) != eslOK) goto ERROR; + } + else + esl_vec_FSet(bg->f, abc->K, 1. / (float) abc->K); + + bg->p1 = 350./351.; + bg->omega = 1./256.; + bg->abc = abc; + return bg; + + ERROR: + p7_bg_Destroy(bg); + return NULL; +} + + +/* Function: p7_bg_CreateUniform() + * Synopsis: Creates background model with uniform freqs. + * + * Purpose: Creates a background model for alphabet + * with uniform residue frequencies. + */ +P7_BG * +p7_bg_CreateUniform(const ESL_ALPHABET *abc) +{ + P7_BG *bg = NULL; + int status; + + ESL_ALLOC(bg, sizeof(P7_BG)); + bg->f = NULL; + bg->fhmm = NULL; + + ESL_ALLOC(bg->f, sizeof(float) * abc->K); + if ((bg->fhmm = esl_hmm_Create(abc, 2)) == NULL) goto ERROR; + + esl_vec_FSet(bg->f, abc->K, 1. / (float) abc->K); + bg->p1 = 350./351.; + bg->omega = 1./256.; + bg->abc = (ESL_ALPHABET *) abc; /* safe: we're just keeping a reference */ + return bg; + + ERROR: + p7_bg_Destroy(bg); + return NULL; +} + + +/* Function: p7_bg_Clone() + * Synopsis: Create a duplicate of an existing object. + * + * Purpose: Creates a duplicate of the existing object . + * + * Returns: ptr to the duplicate object. + * + * Throws: on allocation failure. + */ +P7_BG * +p7_bg_Clone(const P7_BG *bg) +{ + P7_BG *dup = NULL; + int status; + + ESL_ALLOC(dup, sizeof(P7_BG)); + dup->f = NULL; + dup->fhmm = NULL; + dup->abc = bg->abc; /* by reference only */ + + ESL_ALLOC(dup->f, sizeof(float) * bg->abc->K); + memcpy(dup->f, bg->f, sizeof(float) * bg->abc->K); + if ((dup->fhmm = esl_hmm_Clone(bg->fhmm)) == NULL) goto ERROR; + + dup->p1 = bg->p1; + dup->omega = bg->omega; + return dup; + + ERROR: + p7_bg_Destroy(dup); + return NULL; +} + + +/* Function: p7_bg_Dump() + * Synopsis: Outputs object as text, for diagnostics. + * + * Purpose: Given a null model , dump it as text to stream . + */ +int +p7_bg_Dump(FILE *ofp, const P7_BG *bg) +{ + esl_vec_FDump(ofp, bg->f, bg->abc->K, bg->abc->sym); + return eslOK; +} + + + +/* Function: p7_bg_Destroy() + * + * Purpose: Frees a object. + * + * Returns: (void) + * + * Xref: SRE:STL11/125. + */ +void +p7_bg_Destroy(P7_BG *bg) +{ + if (bg != NULL) { + if (bg->f != NULL) free(bg->f); + if (bg->fhmm != NULL) esl_hmm_Destroy(bg->fhmm); + free(bg); + } + return; +} + + +/* Function: p7_bg_SetLength() + * Synopsis: Set the null model length distribution. + * + * Purpose: Sets the geometric null model length + * distribution in to a mean of residues. + */ +int +p7_bg_SetLength(P7_BG *bg, int L) +{ + bg->p1 = (float) L / (float) (L+1); + + bg->fhmm->t[0][0] = bg->p1; + bg->fhmm->t[0][1] = 1.0f - bg->p1; + + return eslOK; +} + + + +/***************************************************************** + * 2. Reading/writing residue backgrounds from files + *****************************************************************/ + +/* Function: p7_bg_Read() + * Synopsis: Read background frequencies from a file. + * + * Purpose: Read new background frequencies from file , + * overwriting the frequencies previously in the + * object . + * + * Note that is already created by the caller, not + * created here. Also note that only reads + * residue background frequencies used for the "null + * model", whereas a object contains additional + * information for the bias filter and for the biased + * composition correction. + * + * Args: bgfile - file to read. + * bg - existing object provided by the caller. + * errbuf - OPTIONAL: space for an error message, upon parse errors; or NULL. + * + * Returns: on success, and background frequencies in + * are overwritten. + * + * if can't be opened for reading. + * if parsing of fails for some + * reason. In both cases, contains a + * user-directed error message upon return, including (if + * relevant) the file name and the line number on + * which an error was detected. is unmodified. + * + * Throws: on allocation failure; is unmodified, + * and is empty. + */ +int +p7_bg_Read(char *bgfile, P7_BG *bg, char *errbuf) +{ + ESL_FILEPARSER *efp = NULL; + float *fq = NULL; + int n = 0; + char *tok; + int toklen; + int alphatype; + ESL_DSQ x; + int status; + + if (errbuf) errbuf[0] = '\0'; + + status = esl_fileparser_Open(bgfile, NULL, &efp); + if (status == eslENOTFOUND) ESL_XFAIL(eslENOTFOUND, errbuf, "couldn't open bg file %s for reading", bgfile); + else if (status != eslOK) goto ERROR; + + esl_fileparser_SetCommentChar(efp, '#'); + + /* First token is alphabet type: amino | DNA | RNA */ + status = esl_fileparser_GetToken(efp, &tok, &toklen); + if (status == eslEOF) ESL_XFAIL(eslEFORMAT, errbuf, "premature end of file [line %d of bgfile %s]", efp->linenumber, bgfile); + else if (status != eslOK) goto ERROR; + + alphatype = esl_abc_EncodeType(tok); + if (alphatype == eslUNKNOWN) ESL_XFAIL(eslEFORMAT, errbuf, "expected alphabet type but saw \"%s\" [line %d of bgfile %s]", tok, efp->linenumber, bgfile); + else if (alphatype != bg->abc->type) ESL_XFAIL(eslEFORMAT, errbuf, "bg file's alphabet is %s; expected %s [line %d, %s]", tok, esl_abc_DecodeType(bg->abc->type), efp->linenumber, bgfile); + + ESL_ALLOC(fq, sizeof(float) * bg->abc->K); + esl_vec_FSet(fq, bg->abc->K, -1.0); + + while ((status = esl_fileparser_NextLine(efp)) == eslOK) + { + status = esl_fileparser_GetTokenOnLine(efp, &tok, &toklen); + if (status == eslEOL) ESL_XFAIL(eslEFORMAT, errbuf, "premature end of file [line %d of bgfile %s", efp->linenumber, bgfile); + else if (status != eslOK) goto ERROR; + + if (toklen != 1 || ! esl_abc_CIsCanonical(bg->abc, *tok)) + ESL_XFAIL(eslEFORMAT, errbuf, "expected to parse a residue letter; saw %s [line %d of bgfile %s]", tok, efp->linenumber, bgfile); + + x = esl_abc_DigitizeSymbol(bg->abc, *tok); + if (fq[x] != -1.0) ESL_XFAIL(eslEFORMAT, errbuf, "already parsed probability of %c [line %d of bgfile %s]", bg->abc->sym[x], efp->linenumber, bgfile); + n++; + + status = esl_fileparser_GetTokenOnLine(efp, &tok, &toklen); + if (status == eslEOL) ESL_XFAIL(eslEFORMAT, errbuf, "premature end of file, expected a probability [line %d of bgfile %s]", efp->linenumber, bgfile); + else if (status != eslOK) goto ERROR; + if (! esl_str_IsReal(tok)) ESL_XFAIL(eslEFORMAT, errbuf, "expected a probability, saw %s [line %d of bgfile %s]", tok, efp->linenumber, bgfile); + + fq[x] = atof(tok); + + status = esl_fileparser_GetTokenOnLine(efp, &tok, &toklen); + if (status == eslOK) ESL_XFAIL(eslEFORMAT, errbuf, "extra unexpected data found [line %d of bgfile %s]", efp->linenumber, bgfile); + else if (status != eslEOL) goto ERROR; + } + if (status != eslEOF) goto ERROR; + + if ( n != bg->abc->K) + ESL_XFAIL(eslEFORMAT, errbuf, "expected %d residue frequencies, but found %d in bgfile %s", bg->abc->K, n, bgfile); + if ( esl_FCompare(esl_vec_FSum(fq, bg->abc->K), 1.0, 0.001) != eslOK) + ESL_XFAIL(eslEFORMAT, errbuf, "residue frequencies do not sum to 1.0 in bgfile %s", bgfile); + + /* all checking complete. no more error cases. overwrite bg with the new frequencies */ + esl_vec_FNorm(fq, bg->abc->K); + esl_vec_FCopy(fq, bg->abc->K, bg->f); + + free(fq); + esl_fileparser_Close(efp); + return eslOK; + + ERROR: + if (fq) free(fq); + if (efp) esl_fileparser_Close(efp); + return status; +} + + +/* Function: p7_bg_Write() + * Synopsis: Write a object to a stream in its save file format. + * + * Purpose: Write the residue frequencies of object to + * stream in save file format. Only the residue + * frequencies are written (there are other parts of a + * object, having to do with the bias filter and + * biased composition score correction.) + * + * Returns: on success. + * + * Throws: on any write error, such as filling the disk. + */ +int +p7_bg_Write(FILE *fp, P7_BG *bg) +{ + int x; + if (fprintf(fp, "%s\n", esl_abc_DecodeType(bg->abc->type)) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "bg model write failed"); + for (x = 0; x < bg->abc->K; x++) + { if (fprintf(fp, "%c %.5f\n", bg->abc->sym[x], bg->f[x]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "bg model write failed"); } + return eslOK; +} +/*---------------- end, i/o of P7_BG object ---------------------*/ + + +/***************************************************************** + * 3. Standard iid null model ("null1") + *****************************************************************/ + +/* Function: p7_bg_NullOne() + * + * Purpose: Calculate the null1 lod score, for sequence + * of length "aligned" to the base null model . + * + * Note: Because the residue composition in null1 is the + * same as the background used to calculate residue + * scores in profiles and null models, all we have to + * do here is score null model transitions. + * + * Can accept a NULL for *dsq, in which case the returned + * value will be (float) L * log(bg->p1) + log(1.-bg->p1); + */ +int +p7_bg_NullOne(const P7_BG *bg, const ESL_DSQ *dsq, int L, float *ret_sc) +{ + *ret_sc = (float) L * log(bg->p1) + log(1.-bg->p1); + return eslOK; +} + + + + + +/***************************************************************** + * 4. Filter null model + *****************************************************************/ + +/* Function: p7_bg_SetFilter() + * Synopsis: Configure filter HMM with new model composition. + * + * Purpose: The "filter HMM" is an experimental filter in the + * acceleration pipeline for avoiding biased composition + * sequences. It has no effect on final scoring, if a + * sequence passes all steps of the pipeline; it is only + * used to eliminate biased sequences from further + * consideration early in the pipeline, before the big guns + * of domain postprocessing are applied. + * + * At least at present, it doesn't actually work as well as + * one would hope. This will be an area of future work. + * What we really want to do is make a better null model of + * real protein sequences (and their biases), and incorporate + * that model into the flanks (NCJ states) of the profile. + * + * is the average model residue composition, from + * either the HMM or the copy in a profile or optimized + * profile. is the length of the model in nodes. + * + * The expected length of the filter HMM's generated + * sequence is set to a default (about 400). You need a + * subsequent call to to set it to the + * target sequence length. In hmmscan, this requires a + * call after every new model is read and + * is called, because is calling + * to copy the new model's composition . [Failure to + * do this properly was bug #h85, 14 Dec 2010.] + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + * + * Xref: SRE:J4/25: generalized to use composition vector, not + * specifically an HMM. + * + * Note: This looks like a two-state HMM, but if you start thinking + * about its length distribution ("oh my god, L0 assumes a + * fixed L=400 expectation, it's all wrong, it's not + * conditional on the target sequence length and length + * modeling's messed up!"), don't panic. It's set up as a + * conditional-on-L model that generates accordint to P(x | + * model, L) P(L); the P(L) term is added in + * p7_bg_FilterScore() below. + * + * Additionally, and not to confuse you further, but the + * t[0][0] transition is dependent on L. The initial + * setting here is just a dummy. When p7_bg_SetLength() + * sets p1 for the null1 model length distribution, it sets + * t[0][0] to the same thing. This is controlling the + * relative expected balance of background sequence to + * biased sequence, not the overall length distribution. + * + * All of this is ad hoc, and little of it has been + * optimized against data. + */ +int +p7_bg_SetFilter(P7_BG *bg, int M, const float *compo) +{ + float L0 = 400.0; /* mean length in state 0 of filter HMM (normal background) */ + float L1 = (float) M / 8.0; /* mean length in state 1 of filter HMM (biased segment) */ + + /* State 0 is the normal iid model. */ + bg->fhmm->t[0][0] = L0 / (L0+1.0f); + bg->fhmm->t[0][1] = 1.0f / (L0+1.0f); + bg->fhmm->t[0][2] = 1.0f; /* 1.0 transition to E means we'll set length distribution externally. */ + esl_vec_FCopy(bg->f, bg->abc->K, bg->fhmm->e[0]); + + /* State 1 is the potentially biased model composition. */ + bg->fhmm->t[1][0] = 1.0f / (L1+1.0f); + bg->fhmm->t[1][1] = L1 / (L1+1.0f); + bg->fhmm->t[1][2] = 1.0f; /* 1.0 transition to E means we'll set length distribution externally. */ + esl_vec_FCopy(compo, bg->abc->K, bg->fhmm->e[1]); + + bg->fhmm->pi[0] = 0.999; + bg->fhmm->pi[1] = 0.001; + + esl_hmm_Configure(bg->fhmm, bg->f); + return eslOK; +} + + +/* Function: p7_bg_FilterScore() + * Synopsis: Calculates the filter null model score. + * + * Purpose: Calculates the filter null model score for sequence + * of length , and return it in + * <*ret_sc>. + * + * The score is calculated as an HMM Forward score using + * the two-state filter null model. It is a log-odds ratio, + * relative to the iid background frequencies, in nats: + * same as main model Forward scores. + * + * The filter null model has no length distribution of its + * own; the same geometric length distribution (controlled + * by p1>) that the null1 model uses is imposed. + */ +int +p7_bg_FilterScore(P7_BG *bg, const ESL_DSQ *dsq, int L, float *ret_sc) +{ + ESL_HMX *hmx = esl_hmx_Create(L, bg->fhmm->M); /* optimization target: this can be a 2-row matrix, and it can be stored in . */ + float nullsc; /* (or it could be passed in as an arg, but for sure it shouldn't be alloc'ed here */ + + esl_hmm_Forward(dsq, L, bg->fhmm, hmx, &nullsc); + + /* impose the length distribution */ + *ret_sc = nullsc + (float) L * logf(bg->p1) + logf(1.-bg->p1); + esl_hmx_Destroy(hmx); + return eslOK; +} + + + + +/***************************************************************** + * 5. Benchmark driver + *****************************************************************/ +#ifdef p7BG_BENCHMARK +/* + gcc -O2 -Wall -msse2 -std=gnu99 -o p7_bg_benchmark -I. -L. -I../easel -L../easel -Dp7BG_BENCHMARK p7_bg.c -lhmmer -leasel -lm + ./p7_bg_benchmark + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "100", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark timing for calculating null model scores"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + int i; + + /* Read one HMM from */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + bg = p7_bg_Create(abc); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_bg_SetFilterByHMM(bg, hmm); + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7BG_BENCHMARK*/ + + +/***************************************************************** + * 6. Unit tests + *****************************************************************/ +#ifdef p7BG_TESTDRIVE +#include "esl_dirichlet.h" +#include "esl_random.h" + +static void +utest_ReadWrite(ESL_RANDOMNESS *rng) +{ + char msg[] = "bg Read/Write unit test failed"; + char tmpfile[32] = "esltmpXXXXXX"; + FILE *fp = NULL; + ESL_ALPHABET *abc = NULL; /* random alphabet choice eslRNA..eslDICE */ + float *fq = NULL; + P7_BG *bg = NULL; + + if ((abc = esl_alphabet_Create(esl_rnd_Roll(rng, 5) + 1)) == NULL) esl_fatal(msg); + if (( bg = p7_bg_Create(abc)) == NULL) esl_fatal(msg); + if (( fq = malloc(sizeof(float) * abc->K)) == NULL) esl_fatal(msg); + do { + if (esl_dirichlet_FSampleUniform(rng, abc->K, fq) != eslOK) esl_fatal(msg); + } while (esl_vec_FMin(fq, abc->K) < 0.001); /* small p's will get rounded off and fail FCompare() */ + esl_vec_FCopy(fq, abc->K, bg->f); + + if (esl_tmpfile_named(tmpfile, &fp) != eslOK) esl_fatal(msg); + if ( p7_bg_Write(fp, bg) != eslOK) esl_fatal(msg); + fclose(fp); + + esl_vec_FSet(bg->f, bg->abc->K, 0.0); + if ( p7_bg_Read(tmpfile, bg, NULL) != eslOK) esl_fatal(msg); + if ( esl_vec_FCompare(fq, bg->f, bg->abc->K, 0.01) != eslOK) esl_fatal(msg); + + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + free(fq); + remove(tmpfile); +} +#endif /*p7BG_TESTDRIVE*/ + + +/***************************************************************** + * 7. Test driver + *****************************************************************/ + +#ifdef p7BG_TESTDRIVE +#include "esl_config.h" + +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgrp */ + {"-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0}, + {"-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0}, + {"-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show verbose commentary/output", 0}, + { 0,0,0,0,0,0,0,0,0,0}, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for p7_bg"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *rng = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + int be_verbose = esl_opt_GetBoolean(go, "-v"); + + if (be_verbose) printf("p7_bg unit test: rng seed %" PRIu32 "\n", esl_randomness_GetSeed(rng)); + + utest_ReadWrite(rng); + + esl_randomness_Destroy(rng); + esl_getopts_Destroy(go); + return 0; +} +#endif /* p7BG_TESTDRIVE */ + + +/***************************************************************** + * 8. Examples + *****************************************************************/ +#ifdef p7BG_EXAMPLE +/* + gcc -O2 -Wall -msse2 -std=gnu99 -o p7_bg_example -I. -L. -I../easel -L../easel -Dp7BG_EXAMPLE p7_bg.c -lhmmer -leasel -lm + ./p7_bg_example + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of calculating null model scores"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + ESL_SQFILE *sqfp = NULL; + int format = eslSQFILE_UNKNOWN; + ESL_SQ *sq = NULL; + float nullsc, filtersc, H; + int status; + + /* Read one HMM from */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Open for reading */ + status = esl_sqfile_OpenDigital(abc, seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) esl_fatal("No such file."); + else if (status == eslEFORMAT) esl_fatal("Format unrecognized."); + else if (status != eslOK) esl_fatal("Open failed, code %d.", status); + + sq = esl_sq_CreateDigital(abc); + bg = p7_bg_Create(abc); + + p7_bg_SetFilter(bg, hmm->M, hmm->compo); + + H = esl_vec_FEntropy(bg->f, bg->abc->K); + printf("bg iid H = %.4f\n", H); + + H = esl_vec_FEntropy(hmm->compo, bg->abc->K); + printf("modelcomp H = %.4f\n", H); + + while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) + { + p7_bg_SetLength(bg, sq->n); + + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + p7_bg_FilterScore(bg, sq->dsq, sq->n, &filtersc); + + printf("%-20s %5d %8.5f %8.5f %8.5f\n", sq->name, (int) sq->n, nullsc, filtersc, filtersc-nullsc); + + esl_sq_Reuse(sq); + } + if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s)\n%s\n", + sqfp->filename, sqfp->get_error(sqfp)); + else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", + status, sqfp->filename); + + esl_sqfile_Close(sqfp); + esl_sq_Destroy(sq); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7BG_EXAMPLE*/ + +#ifdef p7BG_EXAMPLE2 +#include +#include "easel.h" +#include "esl_alphabet.h" +#include "hmmer.h" + +int +main(int argc, char **argv) +{ + char *bgfile = argv[1]; + char *alphabet = argv[2]; + ESL_ALPHABET *abc = esl_alphabet_Create(esl_abc_EncodeType(alphabet)); + P7_BG *bg = p7_bg_Create(abc); + char errbuf[eslERRBUFSIZE]; + int status; + + status = p7_bg_Read(bgfile, bg, errbuf); + if (status == eslENOTFOUND) esl_fatal("open failed: %s", errbuf); + else if (status == eslEFORMAT) esl_fatal("parse failed: %s", errbuf); + else if (status != eslOK) esl_fatal("failed to read bg file %s (error %d)\n", bgfile, status); + + p7_bg_Write(stdout, bg); + return 0; +} +#endif /*p7BG_EXAMPLE2*/ + + + + + diff --git a/bioinformaticsProject/hmmer/src/p7_builder.c b/bioinformaticsProject/hmmer/src/p7_builder.c new file mode 100644 index 0000000..d6b0ffb --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_builder.c @@ -0,0 +1,1050 @@ +/* Standardized pipeline for construction of new HMMs. + * + * Contents: + * 1. P7_BUILDER: allocation, initialization, destruction + * 2. Standardized model construction API. + * 3. Internal functions. + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_dmatrix.h" +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msacluster.h" +#include "esl_msaweight.h" +#include "esl_random.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. P7_BUILDER: allocation, initialization, destruction + *****************************************************************/ + +/* Function: p7_builder_Create() + * Synopsis: Create a default HMM construction configuration. + * + * Purpose: Create a construction configuration for building + * HMMs in alphabet , and return a pointer to it. + * + * An application configuration may optionally be + * provided. If is , default parameters are + * used. If is non-, it must include appropriate + * settings for all of the following ``standard build options'': + * + * Model construction: --fast --hand --symfrac --fragthresh + * Relative weighting: --wgsc --wblosum --wpb --wgiven --wid + * Effective seq #: --eent --eclust --enone --eset --ere --esigma --eid + * Prior scheme: --pnone --plaplace + * E-val calibration: --EmL --EmN --EvL --EvN --EfL --EfN --Eft + * run-to-run variation: --seed + * + * See or other big users of the build + * pipeline for an example of appropriate + * initializations of these 24 options. + */ +P7_BUILDER * +p7_builder_Create(const ESL_GETOPTS *go, const ESL_ALPHABET *abc) +{ + P7_BUILDER *bld = NULL; + int seed; + int status; + + + ESL_ALLOC(bld, sizeof(P7_BUILDER)); + bld->prior = NULL; + bld->r = NULL; + bld->S = NULL; + bld->Q = NULL; + bld->eset = -1.0; /* -1.0 = unset; must be set if effn_strategy is p7_EFFN_SET */ + bld->re_target = -1.0; + + if (go == NULL) + { + bld->arch_strategy = p7_ARCH_FAST; + bld->wgt_strategy = p7_WGT_PB; + bld->effn_strategy = p7_EFFN_ENTROPY; + seed = 42; + } + else + { + if (esl_opt_GetBoolean(go, "--fast")) bld->arch_strategy = p7_ARCH_FAST; + else if (esl_opt_GetBoolean(go, "--hand")) bld->arch_strategy = p7_ARCH_HAND; + + if (esl_opt_GetBoolean(go, "--wpb")) bld->wgt_strategy = p7_WGT_PB; + else if (esl_opt_GetBoolean(go, "--wgsc")) bld->wgt_strategy = p7_WGT_GSC; + else if (esl_opt_GetBoolean(go, "--wblosum")) bld->wgt_strategy = p7_WGT_BLOSUM; + else if (esl_opt_GetBoolean(go, "--wnone")) bld->wgt_strategy = p7_WGT_NONE; + else if (esl_opt_GetBoolean(go, "--wgiven")) bld->wgt_strategy = p7_WGT_GIVEN; + + if (esl_opt_GetBoolean(go, "--eent")) bld->effn_strategy = p7_EFFN_ENTROPY; + else if (esl_opt_GetBoolean(go, "--eentexp")) bld->effn_strategy = p7_EFFN_ENTROPY_EXP; + else if (esl_opt_GetBoolean(go, "--eclust")) bld->effn_strategy = p7_EFFN_CLUST; + else if (esl_opt_GetBoolean(go, "--enone")) bld->effn_strategy = p7_EFFN_NONE; + else if (esl_opt_IsOn (go, "--eset")) { bld->effn_strategy = p7_EFFN_SET; bld->eset = esl_opt_GetReal(go, "--eset"); } + + seed = esl_opt_GetInteger(go, "--seed"); + } + + bld->max_insert_len = 0; + + /* The default RE target is alphabet dependent. */ + if (go != NULL && esl_opt_IsOn (go, "--ere")) + bld->re_target = esl_opt_GetReal(go, "--ere"); + else { + switch (abc->type) { + case eslAMINO: bld->re_target = p7_ETARGET_AMINO; break; + case eslDNA: bld->re_target = p7_ETARGET_DNA; break; + case eslRNA: bld->re_target = p7_ETARGET_DNA; break; + default: bld->re_target = p7_ETARGET_OTHER; break; + } + } + + bld->symfrac = (go != NULL) ? esl_opt_GetReal (go, "--symfrac") : 0.5; + bld->fragthresh = (go != NULL) ? esl_opt_GetReal (go, "--fragthresh") : 0.5; + bld->wid = (go != NULL) ? esl_opt_GetReal (go, "--wid") : 0.62; + bld->esigma = (go != NULL) ? esl_opt_GetReal (go, "--esigma") : 45.0; + bld->eid = (go != NULL) ? esl_opt_GetReal (go, "--eid") : 0.62; + bld->EmL = (go != NULL) ? esl_opt_GetInteger(go, "--EmL") : 200; + bld->EmN = (go != NULL) ? esl_opt_GetInteger(go, "--EmN") : 200; + bld->EvL = (go != NULL) ? esl_opt_GetInteger(go, "--EvL") : 200; + bld->EvN = (go != NULL) ? esl_opt_GetInteger(go, "--EvN") : 200; + bld->EfL = (go != NULL) ? esl_opt_GetInteger(go, "--EfL") : 100; + bld->EfN = (go != NULL) ? esl_opt_GetInteger(go, "--EfN") : 200; + bld->Eft = (go != NULL) ? esl_opt_GetReal (go, "--Eft") : 0.04; + + /* Normally we reinitialize the RNG to original seed before calibrating each model. + * This eliminates run-to-run variation. + * As a special case, seed==0 means choose an arbitrary seed and shut off the + * reinitialization; this allows run-to-run variation. + */ + + bld->r = esl_randomness_CreateFast(seed); + bld->do_reseeding = (seed == 0) ? FALSE : TRUE; + + if (go && esl_opt_GetBoolean(go, "--pnone") ) bld->prior = NULL; + else if (go && esl_opt_GetBoolean(go, "--plaplace") ) bld->prior = p7_prior_CreateLaplace(abc); + else + { + switch (abc->type) { + case eslAMINO: bld->prior = p7_prior_CreateAmino(); break; + case eslDNA: bld->prior = p7_prior_CreateNucleic(); break; + case eslRNA: bld->prior = p7_prior_CreateNucleic(); break; + default: bld->prior = p7_prior_CreateLaplace(abc); break; + } + if (bld->prior == NULL) goto ERROR; + } + + + bld->abc = abc; + bld->errbuf[0] = '\0'; + + bld->popen = -1; + bld->pextend = -1; + + return bld; + + ERROR: + p7_builder_Destroy(bld); + return NULL; +} + + +/* Function: p7_builder_LoadScoreSystem() + * Synopsis: Load a standard score system for single sequence queries. + * + * Purpose: Initialize the builder to be able to parameterize + * single sequence queries, using the standard (built-in) score + * matrix named . + * + * Available score matrices include PAM30, 70, 120, and 240; + * and BLOSUM45, 50, 62, 80, and 90. See . + * + * Set the gap-open and gap-extend probabilities to + * , , respectively. + * + * Use background residue frequencies in the null model + * to convert substitution matrix scores to + * conditional probability parameters. + * + * Args: bld - to initialize + * matrix - score matrix file to use + * popen - gap open probability + * pextend - gap extend probability + * bg - null model, containing background frequencies + * + * Returns: on success. + * + * if can't be found or opened, even + * in any of the directories specified by the variable. + * + * if the score matrix can't be converted into + * conditional probabilities; for example, if it has no valid + * solution for . + * + * On either error, errbuf> contains a useful error message + * for the user. + * + * Throws: on allocation failure. + */ +int +p7_builder_LoadScoreSystem(P7_BUILDER *bld, const char *matrix, double popen, double pextend, P7_BG *bg) +{ + double *f = NULL; + double slambda; + int status; + + bld->errbuf[0] = '\0'; + + /* If a score system is already set, delete it. */ + if (bld->S != NULL) esl_scorematrix_Destroy(bld->S); + if (bld->Q != NULL) esl_dmatrix_Destroy(bld->Q); + + /* Get the scoring matrix */ + if ((bld->S = esl_scorematrix_Create(bld->abc)) == NULL) { status = eslEMEM; goto ERROR; } + status = esl_scorematrix_Set(matrix, bld->S); + if (status == eslENOTFOUND) ESL_XFAIL(status, bld->errbuf, "no matrix named %s is available as a built-in", matrix); + else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "failed to set score matrix %s as a built-in", matrix); + + /* A wasteful conversion of the HMMER single-precision background probs to Easel double-prec */ + ESL_ALLOC(f, sizeof(double) * bg->abc->K); + esl_vec_F2D(bg->f, bg->abc->K, f); + + /* Backcalculate joint probability matrix Q, given scores S and background freqs bg->f. */ + /* Failures shouldn't happen here: these are standard matrices. */ + status = esl_scorematrix_ProbifyGivenBG(bld->S, f, f, &slambda, &(bld->Q)); + if (status == eslEINVAL) ESL_XFAIL(eslEINVAL, bld->errbuf, "built-in score matrix %s has no valid solution for lambda", matrix); + else if (status == eslENOHALT) ESL_XFAIL(eslEINVAL, bld->errbuf, "failed to solve score matrix %s for lambda", matrix); + else if (status != eslOK) ESL_XFAIL(eslEINVAL, bld->errbuf, "unexpected error in solving score matrix %s for probability parameters", matrix); + + /* Convert joint probabilities P(ab) to conditionals P(b|a) */ + esl_scorematrix_JointToConditionalOnQuery(bld->abc, bld->Q); + + bld->popen = popen; + bld->pextend = pextend; + free(f); + return eslOK; + + ERROR: + if (f) free(f); + return status; +} + + +/* Function: p7_builder_SetScoreSystem() + * Synopsis: Initialize score system for single sequence queries. + * + * Purpose: Initialize the builder to be able to parameterize + * single sequence queries, using a substitution matrix + * from a file. + * + * Read a standard substitution score matrix from file + * . If is , default to BLOSUM62 + * scores. If is "-", read score matrix from + * stream. If is non- and is + * not found in the current working directory, look for + * in colon-delimited directory list contained in + * environment variable . + * + * Set the gap-open and gap-extend probabilities to + * , , respectively. + * + * Use background residue frequencies in the null model + * to convert substitution matrix scores to + * conditional probability parameters. + * + * Args: bld - to initialize + * mxfile - score matrix file to use, or NULL for BLOSUM62 default + * env - env variable containing directory list where may reside + * popen - gap open probability + * pextend - gap extend probability + * bg - null model, containing background frequencies + * + * Returns: on success. + * + * if can't be found or opened, even + * in any of the directories specified by the variable. + * + * if the score matrix can't be converted into + * conditional probabilities; for example, if it has no valid + * solution for . + * + * On either error, errbuf> contains a useful error message + * for the user. + * + * Throws: on allocation failure. + */ +int +p7_builder_SetScoreSystem(P7_BUILDER *bld, const char *mxfile, const char *env, double popen, double pextend, P7_BG *bg) +{ + ESL_FILEPARSER *efp = NULL; + double *f = NULL; + double slambda; + int status; + + bld->errbuf[0] = '\0'; + + /* If a score system is already set, delete it. */ + if (bld->S != NULL) esl_scorematrix_Destroy(bld->S); + if (bld->Q != NULL) esl_dmatrix_Destroy(bld->Q); + + /* Get the scoring matrix */ + if ((bld->S = esl_scorematrix_Create(bld->abc)) == NULL) { status = eslEMEM; goto ERROR; } + if (mxfile == NULL) + { + if (bld->abc->type == eslAMINO) { + if ((status = esl_scorematrix_Set("BLOSUM62", bld->S)) != eslOK) goto ERROR; + } else { + if ((status = esl_scorematrix_Set("DNA1", bld->S)) != eslOK) goto ERROR; + } + } + else + { + if ((status = esl_fileparser_Open(mxfile, env, &efp)) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to find or open matrix file %s", mxfile); + if ((status = esl_scorematrix_Read(efp, bld->abc, &(bld->S))) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to read matrix from %s:\n%s", mxfile, efp->errbuf); + esl_fileparser_Close(efp); + efp = NULL; + } + + /* A wasteful conversion of the HMMER single-precision background probs to Easel double-prec */ + ESL_ALLOC(f, sizeof(double) * bg->abc->K); + esl_vec_F2D(bg->f, bg->abc->K, f); + + /* Backcalculate joint probability matrix Q, given scores S and background freqs bg->f. */ + status = esl_scorematrix_ProbifyGivenBG(bld->S, f, f, &slambda, &(bld->Q)); + if (status == eslEINVAL) ESL_XFAIL(eslEINVAL, bld->errbuf, "input score matrix %s has no valid solution for lambda", mxfile); + else if (status == eslENOHALT) ESL_XFAIL(eslEINVAL, bld->errbuf, "failed to solve input score matrix %s for lambda: are you sure it's valid?", mxfile); + else if (status != eslOK) ESL_XFAIL(eslEINVAL, bld->errbuf, "unexpected error in solving input score matrix %s for probability parameters", mxfile); + + /* Convert joint probabilities P(ab) to conditionals P(b|a) */ + esl_scorematrix_JointToConditionalOnQuery(bld->abc, bld->Q); + + bld->popen = popen; + bld->pextend = pextend; + free(f); + return eslOK; + + ERROR: + if (efp) esl_fileparser_Close(efp); + if (f) free(f); + return status; +} + + + + +/* Function: p7_builder_Destroy() + * Synopsis: Free a + * + * Purpose: Frees a object. + */ +void +p7_builder_Destroy(P7_BUILDER *bld) +{ + if (bld == NULL) return; + + if (bld->prior != NULL) p7_prior_Destroy(bld->prior); + if (bld->r != NULL) esl_randomness_Destroy(bld->r); + if (bld->Q != NULL) esl_dmatrix_Destroy(bld->Q); + if (bld->S != NULL) esl_scorematrix_Destroy(bld->S); + + free(bld); + return; +} +/*------------------- end, P7_BUILDER ---------------------------*/ + + + + +/***************************************************************** + * 2. Standardized model construction API. + *****************************************************************/ + +static int validate_msa (P7_BUILDER *bld, ESL_MSA *msa); +static int relative_weights (P7_BUILDER *bld, ESL_MSA *msa); +static int build_model (P7_BUILDER *bld, ESL_MSA *msa, P7_HMM **ret_hmm, P7_TRACE ***opt_tr); +static int effective_seqnumber (P7_BUILDER *bld, const ESL_MSA *msa, P7_HMM *hmm, const P7_BG *bg); +static int parameterize (P7_BUILDER *bld, P7_HMM *hmm); +static int annotate (P7_BUILDER *bld, const ESL_MSA *msa, P7_HMM *hmm); +static int calibrate (P7_BUILDER *bld, P7_HMM *hmm, P7_BG *bg, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om); +static int make_post_msa (P7_BUILDER *bld, const ESL_MSA *premsa, const P7_HMM *hmm, P7_TRACE **tr, ESL_MSA **opt_postmsa); + +/* Function: p7_Builder() + * Synopsis: Build a new HMM from an MSA. + * + * Purpose: Take the multiple sequence alignment and a build configuration , + * and build a new HMM. + * + * Effective sequence number determination and calibration steps require + * additionally providing a null model . + * + * Args: bld - build configuration + * msa - multiple sequence alignment + * bg - null model + * opt_hmm - optRETURN: new HMM + * opt_trarr - optRETURN: array of faux tracebacks, <0..nseq-1> + * opt_gm - optRETURN: profile corresponding to + * opt_om - optRETURN: optimized profile corresponding to + * opt_postmsa - optRETURN: RF-annotated, possibly modified MSA + * + * Returns: on success. The new HMM is optionally returned in + * <*opt_hmm>, along with optional returns of an array of faux tracebacks + * for each sequence in <*opt_trarr>, the annotated MSA used to construct + * the model in <*opt_postmsa>, a configured search profile in + * <*opt_gm>, and an optimized search profile in <*opt_om>. These are + * all optional returns because the caller may, for example, be interested + * only in an optimized profile, or may only be interested in the HMM. + * + * Returns if no consensus columns were annotated. + * Returns on MSA format problems, such as a missing RF annotation + * line in hand architecture construction. On any returned error, + * errbuf> contains an informative error message. + * + * Throws: on allocation error. + * if relative weights couldn't be calculated from . + * + * Xref: J4/30. + */ +int +p7_Builder(P7_BUILDER *bld, ESL_MSA *msa, P7_BG *bg, + P7_HMM **opt_hmm, P7_TRACE ***opt_trarr, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om, + ESL_MSA **opt_postmsa) +{ + int i,j; + uint32_t checksum = 0; /* checksum calculated for the input MSA. hmmalign --mapali verifies against this. */ + P7_HMM *hmm = NULL; + P7_TRACE **tr = NULL; + P7_TRACE ***tr_ptr = (opt_trarr != NULL || opt_postmsa != NULL) ? &tr : NULL; + int status; + if ((status = validate_msa (bld, msa)) != eslOK) goto ERROR; + if ((status = esl_msa_Checksum (msa, &checksum)) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to calculate checksum"); + if ((status = relative_weights (bld, msa)) != eslOK) goto ERROR; + if ((status = esl_msa_MarkFragments_old(msa, bld->fragthresh)) != eslOK) goto ERROR; + if ((status = build_model (bld, msa, &hmm, tr_ptr)) != eslOK) goto ERROR; + + + //Ensures that the weighted-average I->I count <= bld->max_insert_len + //(MI currently contains the number of observed insert-starts) + if (bld->max_insert_len>0) + for (i=1; iM; i++ ) + hmm->t[i][p7H_II] = ESL_MIN(hmm->t[i][p7H_II], bld->max_insert_len*hmm->t[i][p7H_MI]); + + if ((status = effective_seqnumber (bld, msa, hmm, bg)) != eslOK) goto ERROR; + if ((status = parameterize (bld, hmm)) != eslOK) goto ERROR; + if ((status = annotate (bld, msa, hmm)) != eslOK) goto ERROR; + if ((status = calibrate (bld, hmm, bg, opt_gm, opt_om)) != eslOK) goto ERROR; + if ((status = make_post_msa (bld, msa, hmm, tr, opt_postmsa)) != eslOK) goto ERROR; + + //force masked positions to background (it'll be close already, so no relevant impact on weighting) + if (hmm->mm != NULL) + for (i=1; iM; i++ ) + if (hmm->mm[i] == 'm') + for (j=0; jabc->K; j++) + hmm->mat[i][j] = bg->f[j]; + + if ( bld->abc->type == eslDNA || bld->abc->type == eslRNA ) { + if (bld->w_len > 0) hmm->max_length = bld->w_len; + else if (bld->w_beta == 0.0) hmm->max_length = hmm->M *4; + else if ( (status = p7_Builder_MaxLength(hmm, bld->w_beta)) != eslOK) goto ERROR; + } + + hmm->checksum = checksum; + hmm->flags |= p7H_CHKSUM; + + if (opt_hmm != NULL) *opt_hmm = hmm; else p7_hmm_Destroy(hmm); + if (opt_trarr != NULL) *opt_trarr = tr; else p7_trace_DestroyArray(tr, msa->nseq); + return eslOK; + + ERROR: + p7_hmm_Destroy(hmm); + p7_trace_DestroyArray(tr, msa->nseq); + if (opt_gm != NULL) p7_profile_Destroy(*opt_gm); + if (opt_om != NULL) p7_oprofile_Destroy(*opt_om); + return status; +} + + +/* Function: p7_SingleBuilder() + * Synopsis: Build a new HMM from a single sequence. + * + * Purpose: Take the sequence and a build configuration , and + * build a new HMM. + * + * The single sequence scoring system in the + * configuration must have been previously initialized by + * . + * + * Args: bld - build configuration + * sq - query sequence + * bg - null model (needed to parameterize insert emission probs) + * opt_hmm - optRETURN: new HMM + * opt_gm - optRETURN: profile corresponding to + * opt_om - optRETURN: optimized profile corresponding to + * + * Returns: on success. + * + * Throws: on allocation error. + * if isn't properly configured somehow. + */ +int +p7_SingleBuilder(P7_BUILDER *bld, ESL_SQ *sq, P7_BG *bg, P7_HMM **opt_hmm, + P7_TRACE **opt_tr, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om) +{ + P7_HMM *hmm = NULL; + P7_TRACE *tr = NULL; + int k; + int status; + + bld->errbuf[0] = '\0'; + if (! bld->Q) ESL_XEXCEPTION(eslEINVAL, "score system not initialized"); + + if ((status = p7_Seqmodel(bld->abc, sq->dsq, sq->n, sq->name, bld->Q, bg->f, bld->popen, bld->pextend, &hmm)) != eslOK) goto ERROR; + if ((status = p7_hmm_SetComposition(hmm)) != eslOK) goto ERROR; + if ((status = p7_hmm_SetConsensus(hmm, sq)) != eslOK) goto ERROR; + if ((status = calibrate(bld, hmm, bg, opt_gm, opt_om)) != eslOK) goto ERROR; + + if ( bld->abc->type == eslDNA || bld->abc->type == eslRNA ) { + if (bld->w_len > 0) hmm->max_length = bld->w_len; + else if (bld->w_beta == 0.0) hmm->max_length = hmm->M *4; + else if ( (status = p7_Builder_MaxLength(hmm, bld->w_beta)) != eslOK) goto ERROR; + } + + + /* build a faux trace: relative to core model (B->M_1..M_L->E) */ + if (opt_tr != NULL) + { + if ((tr = p7_trace_Create()) == NULL) goto ERROR; + if ((status = p7_trace_Append(tr, p7T_B, 0, 0)) != eslOK) goto ERROR; + for (k = 1; k <= sq->n; k++) + if ((status = p7_trace_Append(tr, p7T_M, k, k)) != eslOK) goto ERROR; + if ((status = p7_trace_Append(tr, p7T_E, 0, 0)) != eslOK) goto ERROR; + tr->M = sq->n; + tr->L = sq->n; + } + + /* note that and were already set by calibrate() call above. */ + if (opt_hmm != NULL) *opt_hmm = hmm; else p7_hmm_Destroy(hmm); + if (opt_tr != NULL) *opt_tr = tr; + return eslOK; + + ERROR: + p7_hmm_Destroy(hmm); + if (tr != NULL) p7_trace_Destroy(tr); + if (opt_gm != NULL) p7_profile_Destroy(*opt_gm); + if (opt_om != NULL) p7_oprofile_Destroy(*opt_om); + return status; +} + + +/* Function: p7_Builder_MaxLength() + * + * Purpose: Compute the maximum likely length of an emitted sequence + * + * Synopsis: Computes a fairly tight upper bound on domain length, by computing the + * probability of the model emitting sequences of all lengths up to some + * threshold, based on a dynamic-programming approach. See TJW 01/14/2010 notes (p1) + * + * The idea is to find the length such that all but e.g. 1e-7 sequences emitted + * by the model are at most that long. The method conceptually fills in a table of + * length at most length_bound (usually 20 * model_length, up to at most 100,000), + * though in practice, only two columns are used to store values; + * + * Letting i correspond to the ith state of the model, + * j to a length j of emitted sequence, and + * T[i][P7H_*M] := transition prob from *_i to M_{i+1} + * T[i][P7H_*I] := transition prob from *_i to I_i + * T[i][P7H_*D] := transition prob from *_i to D_{i+1} + * + * + * in general, + * M(i,j) = T[i-1][P7H_MM] * M(i-1,j-1) + T[i-1][P7H_DM] * D(i-1,j-1) + T[i-1][P7H_IM] * I(i-1,j-1); + * I(i,j) = T[i][P7H_MI] * M(i,j-1) + T[i][P7H_II] * I(i,j-1); + * D(i,j) = T[i-1][P7H_MD] * M(i-1,j) + T[i-1][P7H_DD] * D(i-1,j); + * + * The process of filling in the dp table is done for only the full core model. + * We want to minimize memory consumption, so this is handled column-by-column, + * storing only 2 columns at a time. + * + * Initial values must be set. + * This is simple: + * M(1,1) = 1; + * I(1,1) = 0; + * D(1,1) = 0; + * D(2,1) = md; + * Fill in the remainder of rows + * M(r,1) = I(r,1) = 0; + * D(r,1) = dd * D(r-1,1) + * + * + * Then the next column: + * M(1,2) = D(1,2) = 0; + * I(1,2) = mi * M(1,1); + * I(2,2) = D(2,2) = 0; + * M(2,2) = mm * M(1,1); + * D(3,2) = md * M(2,2); + * Fill in the remainder of rows r: + * M(r,2) = dm * M(r-1,1); + * D(r,2) = dd * D(r-1,2); + * I(r,2) = 0; + * + * + * + * Then for each column c after that, + * M(1,c) = D(1,c) = 0; + * I(1,c) = ii * I(1,c-1) + * Fill in the remainder of rows r based on the default formulas above + * Then: + * M(i,j) = T[i-1][P7H_MM] * M(i-1,j-1) + T[i-1][P7H_DM] * D(i-1,j-1) + T[i-1][P7H_IM] * I(i-1,j-1); + * D(i,j) = T[i-1][P7H_MD] * M(i-1,j) + T[i-1][P7H_DD] * D(i-1,j); + * I(i,j) = T[i][P7H_MI] * M(i,j-1) + T[i][P7H_II] * I(i,j-1); + * + * + * We aim to find the length W s.t. nearly all (e.g. all but 1e-7) of the sequences + * emitted by the model are at most W long. Ideally, we could track the probability + * of emitting each length from 0 up, and accumulate those probabilities until the + * threshold is met. The probability of seeing a sequence of a given length emitted + * by the full model is simply the sum of the D[m] and M[m] values (for a model of + * length m). (I[m] is a false value - see below) + * + * I say "ideally", because numeric instability can lead the sum of all lengths - up + * to infinity - to be <0.99999 or >1.0 ... so instead we keep track of two things for + * each length L: + * (1) the sum of D[m] and M[m] prob masses for all lengths up to L (call this X), and + * (2) the amount of the probability mass that belongs to all L-length-emitting states + * except the final M/D states. That's the mass that will end up being spread across + * all lengths >L (call this Y). + * + * If not for numeric instability, X+Y=1, and we'd want to stop when Y <= 1e-7. Because + * X+Y might not == 1, instead stop when Y/(X+Y) <= 1e-7. + * + * A note for computing X: the final position in the model does not actually include an + * I-state, so all of the final M state's probability mass should go to the E state. + * The value in I[m][] will suggest that some of that probability has gone to that state, + * but this will be ignored when tallying X = M[m]+D[m]. + * + * A note on the calculation of Y: it's not quite as simple as adding up all pre-m + * states. For a given length j, the only way a D[i]-state can emit a sequence of length + * j is if an M[k] state emitted that sequence, with k on success. The max length is set in hmm->max_length. + + */ +int +p7_Builder_MaxLength (P7_HMM *hmm, double emit_thresh) +{ + int col_ptr, prev_col_ptr; // which true column in above 2d-arrays is active + int col; // which conceptual column in above 2d-arrays is active (up to table_len) + double p_sum; // sum of probabilities for lengths <=L; X from above + double surv; // surviving probability mass at length L; Y from above + int k; // active state in model + int i; + double **I = NULL; + double **M = NULL; + double **D = NULL; + int model_len = hmm->M; // model length + int length_bound = ESL_MAX(model_len, ESL_MIN(20*model_len, 100000)); // cap on # iterations (aka max model length) + int status; + + if (model_len==1) { + hmm->max_length = 1; + return eslOK; + } + + hmm->max_length = length_bound; //default, if it never reaches the target surviving density + + + // double I[model_len+1][2], M[model_len+1][2], D[model_len+1][2]; //2 columns for each way of ending a subpath + ESL_ALLOC(I, (model_len+1) * sizeof(double*)); + ESL_ALLOC(M, (model_len+1) * sizeof(double*)); + ESL_ALLOC(D, (model_len+1) * sizeof(double*)); + for (i = 0; i <= model_len; i++) { + I[i] = M[i] = D[i] = NULL; + } + for (i=0; i <= model_len; i++) { + ESL_ALLOC(I[i], 2 * sizeof(double)); + ESL_ALLOC(M[i], 2 * sizeof(double)); + ESL_ALLOC(D[i], 2 * sizeof(double)); + } + + /* Compute max length and max prefix lengths*/ + // special case for filling in 1st column of DP table, col=1; + M[1][0] = 1.0;// 1st match state must emit a character + I[1][0] = D[1][0] = M[2][0] = I[2][0] = 0; + D[2][0] = hmm->t[1][p7H_MD]; // The 2nd delete state is reached, having emitted only 1 character + for (k=3; k<=model_len; k++){ + M[k][0] = I[k][0] = 0; + D[k][0] = hmm->t[k-1][p7H_DD] * D[k-1][0]; // only way to get to the 3rd or greater state with only 1 character + } + + //special case for 2nd column + M[1][1] = D[1][1] = D[2][1] = I[2][1] = 0; //No way any of these states can be responsible for the second emitted character. + I[1][1] = hmm->t[1][p7H_MI] * M[1][0]; //1st insert state can emit char #2. + M[2][1] = hmm->t[1][p7H_MM] * M[1][0] ; //2nd match state can emit char #2. + for (k=3; k<=model_len; k++){ + M[k][1] = hmm->t[k-1][p7H_DM] * D[k-1][0] ; //kth match state would have to follow the k-1th delete state, having emitted only 1 char so far + I[k][1] = 0; + D[k][1] = hmm->t[k-1][p7H_MD] * M[k-1][1] + hmm->t[k-1][p7H_DD] * D[k-1][1]; //in general only by extending a delete. For k=3, this could be a transition from M=2, with 2 chars. + } + + p_sum = M[model_len][0] + M[model_len][1] + D[model_len][0] + D[model_len][1]; + + //general case for all remaining columns + col_ptr = 0; + for (col=3; col<=length_bound; col++) { + prev_col_ptr = 1-col_ptr; + surv = 0.0; + M[1][col_ptr] = D[1][col_ptr] = 0; //M[i][prev_col_ptr] is zero : no way the first M state could have emitted >=2 chars + I[1][col_ptr] = hmm->t[1][p7H_II] * I[1][prev_col_ptr]; // 1st insert state can emit chars indefinitely + surv += I[1][col_ptr]; + + for (k=2; k<=model_len; k++){ + M[k][col_ptr] = hmm->t[k-1][p7H_MM] * M[k-1][prev_col_ptr] + hmm->t[k-1][p7H_DM] * D[k-1][prev_col_ptr] + hmm->t[k-1][p7H_IM] * I[k-1][prev_col_ptr]; + I[k][col_ptr] = hmm->t[k][p7H_MI] * M[k][prev_col_ptr] + hmm->t[k][p7H_II] * I[k][prev_col_ptr]; + D[k][col_ptr] = hmm->t[k-1][p7H_MD] * M[k-1][col_ptr] + hmm->t[k-1][p7H_DD] * D[k-1][col_ptr]; + + if (k<=model_len) { + surv += I[k][col_ptr] + + M[k][col_ptr] * ( 1 - hmm->t[k][p7H_MD] ) + //this much of M[k]'s mass will bleed into D[k+1], and thus be added to surv then + D[k][col_ptr] * ( 1 - hmm->t[k][p7H_DD] ) ; //this much of D[k]'s mass will bleed into D[k+1], and thus be added to surv then + } + } + surv += M[model_len][col_ptr] * ( hmm->t[model_len][p7H_MD] ) //the final state doesn't pass on to the next D state + + D[model_len][col_ptr] * ( hmm->t[model_len][p7H_DD] ) // the final state doesn't pass on to the next D state + - I[model_len][col_ptr] ; // no I state for final position + + p_sum += M[model_len][col_ptr] + D[model_len][col_ptr]; + surv /= surv + p_sum; + + if (surv < emit_thresh) { + hmm->max_length = col; + break; + } + + col_ptr = 1-col_ptr; // alternating between 0 and 1 + } + + for (i=0; imax_length > length_bound) return eslERANGE; + return eslOK; + + ERROR: + if (I) { for (i = 0; i <= model_len; i++) { if (I[i]) free(I[i]); } free(I); } + if (D) { for (i = 0; i <= model_len; i++) { if (D[i]) free(D[i]); } free(D); } + if (M) { for (i = 0; i <= model_len; i++) { if (M[i]) free(M[i]); } free(M); } + return status; +} + +/*------------- end, model construction API ---------------------*/ + + + + +/***************************************************************** + * 3. Internal functions + *****************************************************************/ + + +/* validate_msa: + * SRE, Thu Dec 3 16:10:31 2009 [J5/119; bug #h70 fix] + * + * HMMER uses a convention for missing data characters: they + * indicate that a sequence is a fragment. (See + * esl_msa_MarkFragments_old()). + * + * Because of the way these fragments will be handled in tracebacks, + * we reject any alignment that uses missing data characters in any + * other way. + * + * This validation step costs negligible time. + */ +static int +validate_msa(P7_BUILDER *bld, ESL_MSA *msa) +{ + int idx; + int64_t apos; + + for (idx = 0; idx < msa->nseq; idx++) + { + apos = 1; + while ( esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos]) && apos <= msa->alen) apos++; + while (! esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos]) && apos <= msa->alen) apos++; + while ( esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos]) && apos <= msa->alen) apos++; + if (apos != msa->alen+1) ESL_FAIL(eslEINVAL, bld->errbuf, "msa %s; sequence %s\nhas missing data chars (~) other than at fragment edges", msa->name, msa->sqname[idx]); + } + + return eslOK; +} + + +/* set_relative_weights(): + * Set msa->wgt vector, using user's choice of relative weighting algorithm. + */ +static int +relative_weights(P7_BUILDER *bld, ESL_MSA *msa) +{ + ESL_MSAWEIGHT_CFG *cfg = esl_msaweight_cfg_Create(); + int status = eslOK; + + cfg->ignore_rf = (bld->arch_strategy == p7_ARCH_HAND ? FALSE : TRUE); // PB weights use RF consensus columns only if --hand is set. [iss #180] + + if (bld->wgt_strategy == p7_WGT_NONE) { esl_vec_DSet(msa->wgt, msa->nseq, 1.); } + else if (bld->wgt_strategy == p7_WGT_GIVEN) ; + else if (bld->wgt_strategy == p7_WGT_PB) status = esl_msaweight_PB_adv(cfg, msa, /*ESL_MSAWEIGHT_DAT=*/ NULL); + else if (bld->wgt_strategy == p7_WGT_GSC) status = esl_msaweight_GSC(msa); + else if (bld->wgt_strategy == p7_WGT_BLOSUM) status = esl_msaweight_BLOSUM(msa, bld->wid); + else ESL_EXCEPTION(eslEINCONCEIVABLE, "no such weighting strategy"); + + if (status != eslOK) ESL_FAIL(status, bld->errbuf, "failed to set relative weights in alignment"); + esl_msaweight_cfg_Destroy(cfg); + return eslOK; +} + + +/* build_model(): + * Given , choose HMM architecture, collect counts; + * upon return, <*ret_hmm> is newly allocated and contains + * relative-weighted observed counts. + * Optionally, caller can request an array of inferred traces for + * the too. + */ +static int +build_model(P7_BUILDER *bld, ESL_MSA *msa, P7_HMM **ret_hmm, P7_TRACE ***opt_tr) +{ + int status; + + if (bld->arch_strategy == p7_ARCH_FAST) + { + status = p7_Fastmodelmaker( msa, bld->symfrac, bld, ret_hmm, opt_tr); + if (status == eslENORESULT) ESL_XFAIL(status, bld->errbuf, "Alignment %s has no consensus columns w/ > %d%% residues - can't build a model.\n", msa->name != NULL ? msa->name : "", (int) (100 * bld->symfrac)); + else if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "Memory allocation failure in model construction.\n"); + else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "internal error in model construction.\n"); + } + else if (bld->arch_strategy == p7_ARCH_HAND) + { + status = p7_Handmodelmaker( msa, bld, ret_hmm, opt_tr); + if (status == eslENORESULT) ESL_XFAIL(status, bld->errbuf, "Alignment %s has no annotated consensus columns - can't build a model.\n", msa->name != NULL ? msa->name : ""); + else if (status == eslEFORMAT) ESL_XFAIL(status, bld->errbuf, "Alignment %s has no reference annotation line\n", msa->name != NULL ? msa->name : ""); + else if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "Memory allocation failure in model construction.\n"); + else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "internal error in model construction.\n"); + } + return eslOK; + + ERROR: + return status; +} + + + +/* effective_seqnumber() + * + * comes in with weighted observed counts. It goes out with + * those observed counts rescaled to sum to the "effective sequence + * number". + * + * is needed because we may need to see the sequences in order + * to determine effective seq #. (for --eclust) + * + * is needed because we may need to parameterize test models + * looking for the right relative entropy. (for --eent, the default) + */ +static int +effective_seqnumber(P7_BUILDER *bld, const ESL_MSA *msa, P7_HMM *hmm, const P7_BG *bg) +{ + int status; + int i; + + if (bld->effn_strategy == p7_EFFN_ENTROPY_EXP) { + double etarget; + double eff_nseq = 0.0; + double exp; + etarget = (bld->esigma - eslCONST_LOG2R * log( 2.0 / ((double) hmm->M * (double) (hmm->M+1)))) / (double) hmm->M; /* xref J5/36. */ + etarget = ESL_MAX(bld->re_target, etarget); + + status = p7_EntropyWeight_exp(hmm, bg, bld->prior, etarget, &exp); + if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "memory allocation failed"); + else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "internal failure in entropy weighting algorithm"); + + p7_hmm_ScaleExponential(hmm, exp); + + for (i = 1; i <= hmm->M; i++) + eff_nseq += esl_vec_FSum(hmm->mat[i], hmm->abc->K); + + + eff_nseq /= hmm->M; + hmm->eff_nseq = eff_nseq; + + } else { + + if (bld->effn_strategy == p7_EFFN_NONE) hmm->eff_nseq = msa->nseq; + else if (bld->effn_strategy == p7_EFFN_SET) hmm->eff_nseq = bld->eset; + else if (bld->effn_strategy == p7_EFFN_CLUST) + { + int nclust; + + status = esl_msacluster_SingleLinkage(msa, bld->eid, NULL, NULL, &nclust); + if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "memory allocation failed"); + else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "single linkage clustering algorithm (at %d%% id) failed", (int)(100 * bld->eid)); + + hmm->eff_nseq = (double) nclust; + } + else if (bld->effn_strategy == p7_EFFN_ENTROPY) + { + double etarget; + double eff_nseq; + etarget = (bld->esigma - eslCONST_LOG2R * log( 2.0 / ((double) hmm->M * (double) (hmm->M+1)))) / (double) hmm->M; /* xref J5/36. */ + etarget = ESL_MAX(bld->re_target, etarget); + + status = p7_EntropyWeight(hmm, bg, bld->prior, etarget, &eff_nseq); + if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "memory allocation failed"); + else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "internal failure in entropy weighting algorithm"); + hmm->eff_nseq = eff_nseq; + } + + p7_hmm_Scale(hmm, hmm->eff_nseq / (double) hmm->nseq); + + } + + return eslOK; + + ERROR: + return status; +} + + +/* parameterize() + * Converts counts to probability parameters. + */ +static int +parameterize(P7_BUILDER *bld, P7_HMM *hmm) +{ + int status; + + if ((status = p7_ParameterEstimation(hmm, bld->prior)) != eslOK) ESL_XFAIL(status, bld->errbuf, "parameter estimation failed"); + + return eslOK; + + ERROR: + return status; +} + + + +/* annotate() + * Transfer annotation information from MSA to new HMM. + * Also sets model-specific residue composition (hmm->compo). + */ +static int +annotate(P7_BUILDER *bld, const ESL_MSA *msa, P7_HMM *hmm) +{ + int status; + + /* Name. */ + if (msa->name) p7_hmm_SetName(hmm, msa->name); + else ESL_XFAIL(eslEINVAL, bld->errbuf, "Unable to name the HMM."); + + if ((status = p7_hmm_SetAccession (hmm, msa->acc)) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to record MSA accession"); + if ((status = p7_hmm_SetDescription(hmm, msa->desc)) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to record MSA description"); + // if ((status = p7_hmm_AppendComlog(hmm, go->argc, go->argv)) != eslOK) ESL_XFAIL(status, errbuf, "Failed to record command log"); + if ((status = p7_hmm_SetCtime(hmm)) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to record timestamp"); + if ((status = p7_hmm_SetComposition(hmm)) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to determine model composition"); + if ((status = p7_hmm_SetConsensus(hmm, NULL)) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to set consensus line"); + + if (msa->cutset[eslMSA_GA1]) { + hmm->cutoff[p7_GA1] = msa->cutoff[eslMSA_GA1]; + hmm->flags |= p7H_GA; + if (msa->cutset[eslMSA_GA2]) + hmm->cutoff[p7_GA2] = msa->cutoff[eslMSA_GA2]; + } + if (msa->cutset[eslMSA_TC1]) { + hmm->cutoff[p7_TC1] = msa->cutoff[eslMSA_TC1]; + hmm->flags |= p7H_TC; + if (msa->cutset[eslMSA_TC2]) + hmm->cutoff[p7_TC2] = msa->cutoff[eslMSA_TC2]; + } + if (msa->cutset[eslMSA_NC1]) { + hmm->cutoff[p7_NC1] = msa->cutoff[eslMSA_NC1]; + hmm->flags |= p7H_NC; + if (msa->cutset[eslMSA_NC2]) + hmm->cutoff[p7_NC2] = msa->cutoff[eslMSA_NC2]; + } + + return eslOK; + + ERROR: + return status; +} + +/* calibrate() + * + * Sets the E value parameters of the model with two short simulations. + * A profile and an oprofile are created here. If caller wants to keep either + * of them, it can pass non- , pointers. + */ +static int +calibrate(P7_BUILDER *bld, P7_HMM *hmm, P7_BG *bg, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om) +{ + int status; + + if (opt_gm != NULL) *opt_gm = NULL; + if (opt_om != NULL) *opt_om = NULL; + + if ((status = p7_Calibrate(hmm, bld, &(bld->r), &bg, opt_gm, opt_om)) != eslOK) goto ERROR; + return eslOK; + + ERROR: + return status; +} + + +/* make_post_msa() + * + * Optionally, we can return the alignment we actually built the model + * from (including RF annotation on assigned consensus columns, and any + * trace doctoring to enforce Plan7 consistency). + */ +static int +make_post_msa(P7_BUILDER *bld, const ESL_MSA *premsa, const P7_HMM *hmm, P7_TRACE **tr, ESL_MSA **opt_postmsa) +{ + ESL_MSA *postmsa = NULL; + int optflags = p7_DEFAULT; + int status; + + if (opt_postmsa == NULL) return eslOK; + + /* someday we might want to transfer more info from HMM to postmsa */ + if ((status = p7_tracealign_MSA(premsa, tr, hmm->M, optflags, &postmsa)) != eslOK) goto ERROR; + + *opt_postmsa = postmsa; + return eslOK; + + ERROR: + if (postmsa != NULL) esl_msa_Destroy(postmsa); + return status; +} +/*---------------- end, internal functions ----------------------*/ + diff --git a/bioinformaticsProject/hmmer/src/p7_config.h.in b/bioinformaticsProject/hmmer/src/p7_config.h.in new file mode 100644 index 0000000..4acf982 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_config.h.in @@ -0,0 +1,135 @@ +/* @configure_input@ + * p7_config.h.in -> p7_config.h + * + * p7_config.h is generated from p7_config.h.in by the ./configure script. + * DO NOT EDIT p7_config.h; only edit p7_config.h.in. + * + * Configuration of HMMER, including both system-dependent configuration + * (done by ./configure) and hardcoded configuration that someone might + * want to alter someday. + * + * Because this header may configure the behavior of system headers + * (for example, LFS support), it must be included before any other + * header file. + * + * SRE, Mon Jan 1 16:07:28 2007 [Casa de Gatos] + */ +#ifndef P7_CONFIGH_INCLUDED +#define P7_CONFIGH_INCLUDED + +/***************************************************************** + * 1. Compile-time constants that control HMMER's computational + * behavior (memory and processor use), and output formatting. + * It can be edited and configured manually before compilation. + *****************************************************************/ + +/* p7_RAMLIMIT controls the switch from fast full DP to slow + * linear-memory divide and conquer. Default devotes 32 + * MB/thread. + */ +#ifndef p7_RAMLIMIT +#define p7_RAMLIMIT 32 +#endif + +/* p7_NCPU sets the default number of CPU cores (worker threads) + * used by multithreaded programs. Must be quoted, because + * it's used to set default options. + */ +#ifndef p7_NCPU +#define p7_NCPU "2" +#endif + +/* p7_ALILENGTH controls length of displayed alignment lines. + */ +#ifndef p7_ALILENGTH +#define p7_ALILENGTH 50 +#endif + +/***************************************************************** + * 2. Compile-time constants that control empirically tuned HMMER + * default parameters. You can edit it, but you ought not to, + * unless you're trying to improve on our empirical data. + *****************************************************************/ + +/* Relative entropy target defaults: + * For proteins, hmmbuild's effective sequence number calculation + * aims to achieve a certain relative entropy per match emission. + * (= average score per match emission). + * These are empirically tuned constants, + */ +#define p7_ETARGET_AMINO 0.59 /* bits, from the work of Steve Johnson. */ +#define p7_ETARGET_DNA 0.62 /* bits, from the work of Travis Wheeler and Robert Hubley. */ +#define p7_ETARGET_OTHER 1.0 /* bits */ /* if you define your own alphabet, set this */ + + +#define p7_SEQDBENV "BLASTDB" +#define p7_HMMDBENV "PFAMDB" + +/***************************************************************** + * 3. The next section probably shouldn't be edited at all, unless + * you really know what you're doing. It controls some fundamental + * parameters in HMMER that occasionally get reconfigured in + * experimental versions, or for variants of HMMER that work on + * non-biological alphabets. + *****************************************************************/ + +/* The symbol alphabet is handled by ESL_ALPHABET objects, which + * dynamically allocate; but sometimes HMMER uses statically-allocated + * space, and it's useful to know a reasonable maximum for + * symbol alphabet size. + */ +#define p7_MAXABET 20 /* maximum size of alphabet (4 or 20) */ +#define p7_MAXCODE 29 /* maximum degenerate alphabet size (18 or 29) */ + +/* p7_MAX_SC_TXTLEN has to be large enough to represent a score as a + * string, including \0 and a sign. + */ +#define p7_MAX_SC_TXTLEN 11 + +/* Other stuff. + */ +#define p7_MAXDCHLET 20 /* maximum # Dirichlet components in mixture prior */ + + +/***************************************************************** + * 4. The final section isn't meant to be human editable at all. + * It is configured automatically by the ./configure script. + *****************************************************************/ + +/* Version info - set once for whole package in configure.ac + */ +#undef HMMER_VERSION +#undef HMMER_DATE +#undef HMMER_COPYRIGHT +#undef HMMER_LICENSE +#undef HMMER_URL + +/* Large file support (must precede any header file inclusion.) + */ +#undef _FILE_OFFSET_BITS +#undef _LARGE_FILES +#undef _LARGEFILE_SOURCE + +/* Choice of optimized implementation (one and only one must be set) + * These are also identically defined in Easel esl_config.h.in + */ +#undef eslENABLE_SSE +#undef eslENABLE_VMX + +/* System headers + */ +#undef HAVE_NETINET_IN_H /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */ +#undef HAVE_SYS_PARAM_H /* On OpenBSD, sys/sysctl.h needs sys/param.h */ +#undef HAVE_SYS_SYSCTL_H + +/* Optional parallel implementations + */ +#undef HMMER_MPI +#undef HMMER_THREADS + +/* Optional processor specific support + */ +#undef HAVE_FLUSH_ZERO_MODE + +#endif /*P7_CONFIGH_INCLUDED*/ + diff --git a/bioinformaticsProject/hmmer/src/p7_domain.c b/bioinformaticsProject/hmmer/src/p7_domain.c new file mode 100644 index 0000000..255b2b0 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_domain.c @@ -0,0 +1,827 @@ +/* functions to manipulate P7_DOMAIN objects. Currently, most P7_DOMAIN objects are created/ + * manipulated from within code that processes other data structures, but this is somewhat + * bad practice. For now, this file mostly contains serialization/deserialization code. + * NPC 2/8/19 [Mother Russia] + */ + +#include "p7_config.h" + +#include +#include +#include +#include +#include + +#include "easel.h" +#include "hmmer.h" + +/* Function: p7_domain_Create_empty + * Synopsis: Creates an empty P7_DOMAIN object + * + * Purpose: Creates an empty P7_DOMAIN object (all internal values 0, all internal pointers NULL) + * + * Inputs: none + * + * Returns: The created object + * + * Throws: Returns NULL if unable to allocate memory + */ + +extern P7_DOMAIN *p7_domain_Create_empty(){ + P7_DOMAIN *the_domain; + int status; + + ESL_ALLOC(the_domain, sizeof(P7_DOMAIN)); + + the_domain->ienv = 0; + the_domain->jenv = 0; + the_domain->iali = 0; + the_domain->jali = 0; + the_domain->iorf = 0; + the_domain->jorf = 0; + the_domain->envsc = 0.0; + the_domain->domcorrection = 0.0; + the_domain->dombias = 0.0; + the_domain->oasc = 0.0; + the_domain->bitscore = 0.0; + the_domain->lnP = 0.0; + the_domain->is_reported = 0; + the_domain->is_included = 0; + the_domain->scores_per_pos = NULL; + the_domain->ad = NULL; + + return the_domain; + +ERROR: + return NULL; + +} + + +/* Function: p7_domain_Destroy + * Synopsis: Frees all of the memory in a P7_DOMAIN object + * + * Purpose: Frees all of the memory in a P7_DOMAIN object, including memory in its internal data structures + * + * Inputs: obj: A pointer to the object to be destroyed + * + * Returns: Nothing + * + * Throws: Nothing + */ + +extern void p7_domain_Destroy(P7_DOMAIN *obj){ + if(obj == NULL){ // no object to destroy + return; + } + if(obj->scores_per_pos != NULL){ + free(obj->scores_per_pos); + } + if(obj->ad != NULL){ + p7_alidisplay_Destroy(obj->ad); + } + free(obj); + return; +} + + +/* Function: p7_domain_Serialize + * Synopsis: Serializes a P7_DOMAIN object into a stream of bytes + *. that can be reliably transmitted over internet sockets + * + * Purpose: Converts an architecture-dependent P7_DOMAIN object into a contiguous stream + * of bytes with each field of the data structure in network byte order for transmission + * over sockets. The serialized byte stream may be part of a larger allocated buffer. + * If the provided buffer is NULL, allocates a new buffer large enough for the serialized object + * If the provided buffer is not large enough to hold the serialized object and its existing data, re-allocates + * a larger buffer + * + * Inputs: obj: A pointer to the P7_DOMAIN object to be serialized + * buf: Handle to the buffer that the object should be serialized into. If *buf is NULL, + * a new buffer will be allocated. buf == NULL is not allowed. + * n: Offset (in bytes) from the start of the buffer to where the serialized object should start. + * nalloc: size (in bytes) of the buffer passed in buf + * + *Returns: On success: returns eslOK, sets *buf to the base of the buffer containing the object + * if allocation or re-allocation was requried, sets *n to the offset from the start of the buffer + * to the first position after the serialized object and sets *nalloc to the new size of the buffer + * if allocation or re-allocation was required. + * + * Throws: Returns eslEMEM if unable to allocate or re-allocate memory. Returns eslEINVAL if obj == NULL, n == NULL, buf == NULL, + * or if *buf = NULL and either *n != 0 or *nalloc != 0 + * Returns eslFAIL if a calculation fails a consistency check. + */ + +// base size is 2 ints bigger than required for the fixed-length members of the strucuture, one int for the serialized length, +// one int for the length of the scores_per_pos array (in floats) +#define SER_BASE_SIZE (4 * sizeof(int)) + (6 * sizeof(int64_t)) + (5 * sizeof(float)) + (sizeof(double)) + +extern int p7_domain_Serialize(const P7_DOMAIN *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc){ + + int status; // error variable used by ESL_ALLOC + uint32_t ser_size; // size of the structure when serialized + uint8_t *ptr; // current position within the buffer + uint32_t network_32bit; // hold 32-bit fields after conversion to network order + uint64_t network_64bit; // hold 64-bit fields after conversion to network order + + // check to make sure we were passed a valid pointer + if(obj == NULL || buf == NULL || n == NULL){ // no object to serialize or nowhere to put a buffer pointer + return(eslEINVAL); + } + + if(obj->scores_per_pos != NULL){ + ser_size = SER_BASE_SIZE + (obj->ad->N * sizeof(float)); + } + else{ + ser_size = SER_BASE_SIZE; + } + + // Now that we know how big the serialized data structure will be, determine if we have enough buffer space to hold it + if(*buf == NULL){ // have no buffer, so allocate one + if((*n != 0) || (*nalloc != 0)){ // non-zero values of these inputs make no sense if we don't have a buffer yet + return eslEINVAL; + } + ESL_ALLOC(*buf, ser_size); + *nalloc = ser_size; + } + + if((*n + ser_size) > *nalloc){ //have a buffer, but it's not big enough + ESL_REALLOC(*buf, (*n + ser_size)); + *nalloc = *n + ser_size; + } + + ptr = *buf + *n; // pointer to start of region we'll serialize to + + // Field 1: serialized size + network_32bit = esl_hton32(ser_size); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 2: ienv + network_64bit = esl_hton64(obj->ienv); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 3: jenv + network_64bit = esl_hton64(obj->jenv); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 4: iali + network_64bit = esl_hton64(obj->iali); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 5: jali + network_64bit = esl_hton64(obj->jali); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 6: iorf + network_64bit = esl_hton64(obj->iorf); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 7: jorf + network_64bit = esl_hton64(obj->jorf); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 8: envsc + network_32bit = esl_hton32(*((uint32_t *) &(obj->envsc))); // ow, this hurts, but is probably the best way to get the + // bits that represent a float out of a structure. Boy, will it fail horribly on any architecture that doesn't use + // 32-bit floats + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->envsc)); + ptr += sizeof(obj->envsc); + + // Field 9: domcorrection + network_32bit = esl_hton32(*((uint32_t *) &(obj->domcorrection))); + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->domcorrection)); + ptr += sizeof(obj->domcorrection); + + // Field 10: dombias + network_32bit = esl_hton32(*((uint32_t *) &(obj->dombias))); + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->dombias)); + ptr += sizeof(obj->dombias); + + // Field 11: oasc + network_32bit = esl_hton32(*((uint32_t *) &(obj->oasc))); + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->oasc)); + ptr += sizeof(obj->oasc); + + // Field 12: bitscore + network_32bit = esl_hton32(*((uint32_t *) &(obj->bitscore))); + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->bitscore)); + ptr += sizeof(obj->bitscore); + + // Field 13: lnP + network_64bit = esl_hton64(*((uint64_t *) &(obj->lnP))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->lnP)); + ptr += sizeof(obj->lnP); + + // Field 14: is_reported + network_32bit = esl_hton32(obj->is_reported); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 15: is_included + network_32bit = esl_hton32(obj->is_included); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + //Handle the scores_per_pos_array + if(obj->scores_per_pos == NULL){ // No scores_per_pos, so just record its size as 0 + network_32bit = esl_hton32(0); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + } + else{ // There is a valid scores_per_pos array, and its size should be equal to the N of the enclosed alignment + int scores_per_pos_length = obj->ad->N; + + network_32bit = esl_hton32(scores_per_pos_length); // add length of the array (in floats) to serialized object + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + for(int i = 0; i < scores_per_pos_length; i++){ // serialise the array itself + network_32bit = esl_hton32(*((uint32_t *) &(obj->scores_per_pos[i]))); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + } + } + + //sanity check that length of serialized object was what we expected + if (ser_size != ptr - (*buf + *n)){ + ESL_EXCEPTION(eslFAIL,"Unexpected serialized object length found in p7_domain_Serialize\n"); + } + + *n = ptr - *buf; // update offset into buffer so that alidisplay_Serialize starts in the right place + // Finally, the P7_ALIDISPLAY object + int ser_return = p7_alidisplay_Serialize(obj->ad, buf, n, nalloc); + + return ser_return; // if we get this far and the Serialize went well, return eslOK. Otherwise, return the error code from + // the serialize + +ERROR: + return eslEMEM; +} + +/* Function: p7_domain_Deserialize + * Synopsis: Derializes a P7_DOMAIN object from a stream of bytes in network order into + * a valid data structure + * + * Purpose: Deserializes a serialized P7_DOMAIN object from + *. buf starting at position position *pos. + * + * Inputs: buf: the buffer that the object should be de-serialized from + * pos: a pointer to the offset from the start of buf to the beginning of the object + * ret_obj: a P7_DOMAIN structure to deserialize the object into. May not be NULL. May either be an + * "empty" object created with p7_domain_Create_empty, or a P7_DOMAIN object containing valid data + * + * Returns: On success: returns eslOK, deserializes the P7_DOMAIN object into ret_object, and updates + *. pos to point to the position after the end of the P7_DOMAIN object. + * + * Throws: Returns eslEINVAL if ret_obj == NULL, buf == NULL, or N == NULL. Returnts eslEMEM if unable to allocate + * required memory in ret_obj. Returns eslFAIL if a calculation fails a consistency check. + */ +extern int p7_domain_Deserialize(const uint8_t *buf, uint32_t *n, P7_DOMAIN *ret_obj){ + + uint8_t *ptr; + uint64_t network_64bit; // holds 64-bit values in network order + uint64_t host_64bit; //variable to hold 64-bit values after conversion to host order + uint32_t network_32bit; // holds 64-bit values in network order + uint32_t host_32bit; //variable to hold 64-bit values after conversion to host order + uint32_t obj_size; // How much space does the variable-length portion of the serialized object take up? + int status; + + if(ret_obj == NULL || buf == NULL || n == NULL){ + return eslEINVAL; + } + + ptr = (uint8_t *) buf + *n; + + //First field: Size of the serialized object. Copy out of buffer into scalar variable to deal with memory alignment, convert to + // host machine order + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + obj_size = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + // Second field: ienv + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->ienv = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Third field: jenv + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->jenv = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Fourth field: iali + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->iali = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Fifth field: jali + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->jali = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Sixth field: iorf + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->iorf = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Seventh field: jorf + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ret_obj->jorf = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // Eighth field: envsc + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->envsc = *((float *) &host_32bit); + ptr += sizeof(uint32_t); + + // Ninth field: domcorrection + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->domcorrection = *((float *) &host_32bit); + ptr += sizeof(uint32_t); + + // Tenth field: dombias + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->dombias = *((float *) &host_32bit); + ptr += sizeof(uint32_t); + + // Eleventh field: oasc + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->oasc = *((float *) &host_32bit); + ptr += sizeof(uint32_t); + + // Ninth field: bitscore + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->bitscore = *((float *) &host_32bit); + ptr += sizeof(uint32_t); + + // Tenth field: lnP + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->lnP = *((double *) &host_64bit); + ptr += sizeof(uint64_t); + + // Eleventh field: is_reported + memcpy(&network_32bit, ptr, sizeof(uint32_t)); + ret_obj->is_reported = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + // Twelfth field: is_included + memcpy(&network_32bit, ptr, sizeof(uint32_t)); + ret_obj->is_included = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + // Thirteenth field: length of scores_per_pos array + memcpy(&network_32bit, ptr, sizeof(uint32_t)); + int scores_per_pos_length = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + if(scores_per_pos_length > 0){ // there is a scores_per_pos array, so handle it + if(ret_obj->scores_per_pos != NULL){ // clear out any prevous scores_per_pos array, since we don't know how big it is + free(ret_obj->scores_per_pos); + } + ESL_ALLOC(ret_obj->scores_per_pos, scores_per_pos_length * sizeof(float)); + + for(int i = 0; i < scores_per_pos_length; i++){ + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->scores_per_pos[i] = *((float *) &host_32bit); + ptr += sizeof(uint32_t); + } + } + + + if(ptr - (buf + *n) != obj_size){ + ESL_EXCEPTION(eslFAIL, "Deserialized object size didn't match expected length in p7_domain_Deserialize\n"); + } + + *n = ptr - buf; //update index into the buffer + + // finally, the enclosed P7_ALIDISPLAY object + if(ret_obj->ad == NULL){ + ret_obj->ad =p7_alidisplay_Create_empty(); // need a structure to serialize into + } + return p7_alidisplay_Deserialize(buf, n, ret_obj->ad); // if this function terminates correctly, return eslOK, + // otherwise return its error code + +ERROR: + return eslEMEM; +} +/***************************************************************** + * 2. Debugging Functions + *****************************************************************/ + + /* Function: p7_domain_TestSample + * Synopsis: Creates a P7_DOMAIN object that contains random data. + * + * Purpose: Creates a P7_DOMAIN object that contains random data. This data will be syntactically correct, + * but is not intended to be in any way a "reasonable" domain. + * + * Inputs: rng: the random-number generator to use in creating this object. + * ret_obj: pointer that is used to return the created object + * + * Returns: eslOK, and the created object in ret_obj + * + * Throws: Returns eslEMEM if unable to allocate or re-allocate memory. Returns eslEINVAL if ret_obj == NULL + */ +extern int p7_domain_TestSample(ESL_RAND64 *rng, P7_DOMAIN **ret_obj){ + int status; + + if(ret_obj == NULL){ + return eslEINVAL; + } + if(*ret_obj == NULL){ + ESL_ALLOC(*ret_obj, sizeof(P7_DOMAIN)); + } + + P7_DOMAIN *the_domain = *ret_obj; // convenience pointer + + + the_domain->ienv = esl_rand64(rng); + the_domain->jenv = esl_rand64(rng); + the_domain->iali = esl_rand64(rng); + the_domain->jali = esl_rand64(rng); + the_domain->iorf = esl_rand64(rng); + the_domain->jorf = esl_rand64(rng); + the_domain->envsc = (float) esl_rand64_double(rng); + the_domain->domcorrection = (float) esl_rand64_double(rng); + the_domain->dombias = (float) esl_rand64_double(rng); + the_domain->oasc = (float) esl_rand64_double(rng); + the_domain->bitscore = (float) esl_rand64_double(rng); + the_domain->lnP = esl_rand64_double(rng); + the_domain->is_reported = esl_rand64_Roll(rng, 1); + the_domain->is_included = esl_rand64_Roll(rng, 1); + + // sample an alignment with length ranging uniformly from 50-350 + ESL_RANDOMNESS *rng2 = esl_randomness_Create((uint32_t) esl_rand64(rng)); // This is inefficient, but probably the best we can do + // until alidisplay_Sample gets converted to the new rng + if(p7_alidisplay_Sample(rng2, esl_rand64_Roll(rng, 300) + 50, &(the_domain->ad)) != eslOK){ + return eslFAIL; + } + esl_randomness_Destroy(rng2); + + if(esl_rand64_Roll(rng, 1)){ // 50% chance of having a scores_per_pos array + ESL_ALLOC(the_domain->scores_per_pos, the_domain->ad->N * sizeof(float)); + for(int i = 0; i < the_domain->ad->N; i++){ + the_domain->scores_per_pos[i] = esl_rand64_double(rng); + } + } + else{ // array is empty + the_domain->scores_per_pos = NULL; + } + + return eslOK; // If we make it here, everything went well + +ERROR: + return eslEMEM; +} + + +/* Function: p7_domain_Compare + * Synopsis: Compares two P7_DOMAIN objects for equality within the specified tolerances + * + * Purpose: Compares two P7_DOMAIN objects. Integer fields are compared for equality. Floating-point fields are + * compared for equality within the specified relative and absolute tolerances + * + * Inputs: first: The first object to be compared + * second: The second object to be compared + * atol: The absolute tolerance to be used when comparing floating-point fields + * rtol: The relative tolerance to be used when comparing floating-point fields + * + * Returns: eslOK if the P7_DOMAIN inputs match, eslFAIL otherwise + * + * Throws: Nothing + */ +extern int p7_domain_Compare(P7_DOMAIN *first, P7_DOMAIN *second, double atol, double rtol){ + // compare all the fixed-length fields + if(first->ienv != second->ienv){ + return eslFAIL; + } + if(first->jenv != second->jenv){ + return eslFAIL; + } + if(first->iali != second->iali){ + return eslFAIL; + } + if(first->jali != second->jali){ + return eslFAIL; + } + if(first->iorf != second->iorf){ + return eslFAIL; + } + if(first->jorf != second->jorf){ + return eslFAIL; + } + if(esl_FCompareNew(first->envsc, second->envsc, (float) atol, (float) rtol) != eslOK){ + return eslFAIL; + } + if(esl_FCompareNew(first->domcorrection, second->domcorrection, (float) atol, (float) rtol) != eslOK){ + return eslFAIL; + } + if(esl_FCompareNew(first->dombias, second->dombias, (float) atol, (float) rtol) != eslOK){ + return eslFAIL; + } + if(esl_FCompareNew(first->oasc, second->oasc, (float) atol, (float) rtol) != eslOK){ + return eslFAIL; + } + if(esl_FCompareNew(first->bitscore, second->bitscore, (float) atol, (float) rtol) != eslOK){ + return eslFAIL; + } + if(esl_DCompareNew(first->lnP, second->lnP, atol, rtol) != eslOK){ + return eslFAIL; + } + if(first->lnP != second->lnP){ + return eslFAIL; + } + if(first->is_reported != second->is_reported){ + return eslFAIL; + } + if(first->is_included != second->is_included){ + return eslFAIL; + } + + // comparing scores_per_pos is a bit more challenging + if((first->scores_per_pos == NULL && second->scores_per_pos != NULL) || + (first-> scores_per_pos != NULL && second->scores_per_pos == NULL)){ + return eslFAIL; // can't be the same if one has scores-per_pos and the other doesn't + } + + if((first->scores_per_pos != NULL) && (second->scores_per_pos != NULL)){ // bit redundant, since we've already failed if one + // scores_per_pos is NULL and the other isn't + if(first->ad->N != second->ad->N){ + return eslFAIL; // can't be the same if the two domains contain scores_per_pos arrays of different length + } + + for(int i = 0; i < first->ad->N; i++){ + if(esl_FCompareNew(first->scores_per_pos[i], second->scores_per_pos[i], (float) atol, (float) rtol) != eslOK){ + return eslFAIL; // fail if any of the scores_per_pos array values mismatch + } + } + } + // Finally, compare the alidisplays. If they match, and we've gotten this far, we match + return p7_alidisplay_Compare(first->ad, second->ad); +} + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ + + + + +#ifdef p7DOMAIN_TESTDRIVE + +// Test that the _Serialize() function generates the correct errors when passed invalid arguments +static void utest_Serialize_error_conditions(){ + int status; // Easel error code variable + P7_DOMAIN *foo = NULL; + uint8_t **buf = NULL; + uint32_t n; + uint32_t nalloc; + ESL_RAND64 *rng= NULL; + rng = esl_rand64_Create(0); + + char msg[] = "utest_Serialize_error_conditions failed"; + + n = 0; + nalloc = 0; + + if(p7_domain_TestSample(rng, &foo) != eslOK){ + esl_fatal(msg); + } + + // Test 1: _Serialize returns error if passed NULL buffer + buf = NULL; + + if(p7_domain_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("null buffer check passed\n"); + } + + ESL_ALLOC(buf, sizeof(uint8_t *)); // set buf to valid value + *buf = NULL; + + // Test 2: error on NULL n ptr + if(p7_domain_Serialize(foo, buf, NULL, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("invalid n check passed\n"); + } + + // Test 3: error on NULL object ptr + if(p7_domain_Serialize(NULL, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("invalid object check passed\n"); + } + + // Test 4: n != 0 and *buf == NULL + n = 3; + if(p7_domain_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("Non-zero n with NULL buffer check passed\n"); + } + + // Test 5: Nalloc != 0 and *buf == NULL + n = 0; + nalloc = 10; + if(p7_domain_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("Non-zero nalloc with NULL buffer check passed\n"); + } + + if(buf !=NULL && *buf != NULL){ + free(*buf); + } + if(buf != NULL){ + free(buf); + } + + esl_rand64_Destroy(rng); + p7_domain_Destroy(foo); + + return; + + ERROR: + if (rng != NULL){ + esl_rand64_Destroy(rng); + } + + if(foo != NULL){ + p7_domain_Destroy(foo); + } + + if(buf !=NULL && *buf != NULL){ + free(*buf); + } + if(buf != NULL){ + free(buf); + } + esl_fatal(msg); +} + +static void utest_Deserialize_error_conditions(){ + P7_DOMAIN *sampled = NULL; // sampled alidisplay that we'll serialze + P7_DOMAIN *deserial = NULL; // alidisplay to hold the deserialized object + char msg[]="utest_Deserialize_error_conditions failed"; + uint8_t *buf = NULL; + uint32_t n = 0, nalloc = 0; + + deserial = p7_domain_Create_empty(); + if(deserial == NULL){ + esl_fatal(msg); + } + + ESL_RAND64 *rng = esl_rand64_Create(0); + if(p7_domain_TestSample(rng, &sampled) != eslOK){ + esl_fatal(msg); + } + esl_rand64_Destroy(rng); + + if(p7_domain_Serialize(sampled, &buf, &n, &nalloc) != eslOK){ // serialize an object to deserialize + esl_fatal(msg); + } + + // Test 1: error on buf == NULL; + if(p7_domain_Deserialize(NULL, &n, deserial) != eslEINVAL){ + esl_fatal(msg); + } + //printf("Test 1 passed\n"); + + // Test 2: error on n == NULL + if(p7_domain_Deserialize(buf, NULL, deserial) != eslEINVAL){ + esl_fatal(msg); + } + //printf("Test 2 passed\n"); + + // Test 3: error on serialized object == NULL + if(p7_domain_Deserialize(buf, &n, NULL) != eslEINVAL){ + esl_fatal(msg); + } + //printf("Test 3 passed\n"); + + p7_domain_Destroy(deserial); + p7_domain_Destroy(sampled); + return; +} + +static void utest_Serialize(int ntrials){ + int i; + uint8_t **buf=NULL; + uint32_t n; + uint32_t nalloc; + P7_DOMAIN **serial=NULL, *deserial=NULL; + int status; + char msg[] = "utest_Serialize failed"; + + ESL_ALLOC(buf, sizeof(uint8_t *)); + *buf = NULL; + n = 0; + nalloc = 0; + + ESL_ALLOC(serial, ntrials * sizeof(P7_DOMAIN *)); + for(i = 0; i< ntrials; i++){ + serial[i] = NULL; + } + + ESL_RAND64 *rng = esl_rand64_Create(0); + + for(i = 0; i < ntrials; i++){ + if(p7_domain_TestSample(rng, &(serial[i])) != eslOK){ + esl_fatal(msg); + } + if(p7_domain_Serialize(serial[i], buf, &n, &nalloc) != eslOK){ + esl_fatal(msg); + } + } + + n = 0; // reset to start of buffer + + deserial = p7_domain_Create_empty(); + if(deserial == NULL){ + esl_fatal(msg); + } + + for(i = 0; i < ntrials; i++){ + if(p7_domain_Deserialize(*buf, &n, deserial) != eslOK){ + esl_fatal(msg); + } + if(p7_domain_Compare(serial[i], deserial, 1e-4, 1e-4) != eslOK){ // deserialized structure didn't match serialized + esl_fatal(msg); + } + + } + // haven't failed yet, so we've succeeded. Clean up and exit + free(*buf); + free(buf); + for(i = 0; i < ntrials; i++){ + p7_domain_Destroy(serial[i]); + } + free(serial); + p7_domain_Destroy(deserial); + + return; + + ERROR: + if(buf != NULL){ + if(*buf != NULL){ + free(*buf); + } + free(buf); + } + + if(serial != NULL){ + for(i = 0; i < ntrials; i++){ + if(serial[i] != NULL){ + p7_domain_Destroy(serial[i]); + } + } + free(serial); + } + + if(deserial != NULL){ + p7_domain_Destroy(deserial); + } + + esl_fatal(msg); + +} + +#endif // p7DOMAIN_TESTDRIVE + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7DOMAIN_TESTDRIVE + +#include "esl_getopts.h" + +int +main(int argc, char **argv) +{ + + utest_Serialize_error_conditions(); + utest_Deserialize_error_conditions(); + utest_Serialize(100); + return eslOK; // If we get here, test passed +} +#endif diff --git a/bioinformaticsProject/hmmer/src/p7_domaindef.c b/bioinformaticsProject/hmmer/src/p7_domaindef.c new file mode 100644 index 0000000..3dd226a --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_domaindef.c @@ -0,0 +1,1271 @@ +/* Definition of multidomain structure of a target sequence, and + * rescoring as a sum of individual domains, with null2 correction. + * + * Contents: + * 1. The P7_DOMAINDEF object: allocation, reuse, destruction + * 2. Routines inferring domain structure of a target sequence + * 3. Internal routines + * + * Exegesis: + * + * The key function here is . + * Everything else is support structure. + * + * When you call , you have a + * per-sequence hit that's judged significant, and you've calculated + * Forward/Backward score matrices for the complete sequence. Thus, + * the input data are the model , the sequence , and filled-in + * forward and backward matrices , . + * + * The function then chews over this data, using posterior + * probabilities and heuristics to define, score, and obtain + * display-ready alignments for individual domains. When it's done, + * your and matrices have been effectively destroyed (they + * get reused for individual domain alignment calculations), and + * contains all the per-domain results you need. It returns to + * you the number of domains it's defined (in ), and the + * total per-sequence score derived by a sum of individual domain + * scores (in ). + * + * The structure is a reusable container that manages + * all the necessary working memory and heuristic thresholds. + * + * SRE, Thu Jan 24 09:28:01 2008 [Janelia] + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_random.h" +#include "esl_sq.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +static int is_multidomain_region (P7_DOMAINDEF *ddef, int i, int j); +static int region_trace_ensemble (P7_DOMAINDEF *ddef, const P7_OPROFILE *om, const ESL_DSQ *dsq, int ireg, int jreg, const P7_OMX *fwd, P7_OMX *wrk, int *ret_nc); +static int rescore_isolated_domain(P7_DOMAINDEF *ddef, P7_OPROFILE *om, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_OMX *ox1, P7_OMX *ox2, + int i, int j, int null2_is_done, P7_BG *bg, int long_target, P7_BG *bg_tmp, float *scores_arr, float *fwd_emissions_arr); + + +/***************************************************************** + * 1. The P7_DOMAINDEF object: allocation, reuse, destruction + *****************************************************************/ + +/* Function: p7_domaindef_Create() + * Synopsis: Creates a new object. + * Incept: SRE, Fri Jan 25 13:21:31 2008 [Janelia] + * + * Purpose: Creates a new object, with registered + * as its random number generator, using default settings + * for all thresholds. + * + * Returns: a pointer to the new object. + * + * Throws: on allocation failure. + */ +P7_DOMAINDEF * +p7_domaindef_Create(ESL_RANDOMNESS *r) +{ + P7_DOMAINDEF *ddef = NULL; + int Lalloc = 512; /* this initial alloc doesn't matter much; space is realloced as needed */ + int nalloc = 32; + int status; + + /* level 1 alloc */ + ESL_ALLOC(ddef, sizeof(P7_DOMAINDEF)); + ddef->mocc = ddef->btot = ddef->etot = NULL; + ddef->n2sc = NULL; + ddef->sp = NULL; + ddef->tr = NULL; + ddef->dcl = NULL; + + /* level 2 alloc: posterior prob arrays */ + ESL_ALLOC(ddef->mocc, sizeof(float) * (Lalloc+1)); + ESL_ALLOC(ddef->btot, sizeof(float) * (Lalloc+1)); + ESL_ALLOC(ddef->etot, sizeof(float) * (Lalloc+1)); + ESL_ALLOC(ddef->n2sc, sizeof(float) * (Lalloc+1)); + ddef->mocc[0] = ddef->etot[0] = ddef->btot[0] = 0.; + ddef->n2sc[0] = 0.; + ddef->Lalloc = Lalloc; + ddef->L = 0; + + /* level 2 alloc: results storage */ + ESL_ALLOC(ddef->dcl, sizeof(P7_DOMAIN) * nalloc); + ddef->nalloc = nalloc; + ddef->ndom = 0; + + ddef->nexpected = 0.0; + ddef->nregions = 0; + ddef->nclustered = 0; + ddef->noverlaps = 0; + ddef->nenvelopes = 0; + + /* default thresholds */ + ddef->rt1 = 0.25; + ddef->rt2 = 0.10; + ddef->rt3 = 0.20; + ddef->nsamples = 200; + ddef->min_overlap = 0.8; + ddef->of_smaller = TRUE; + ddef->max_diagdiff = 4; + ddef->min_posterior = 0.25; + ddef->min_endpointp = 0.02; + + /* allocate reusable, growable objects that domain def reuses for each seq */ + ddef->sp = p7_spensemble_Create(1024, 64, 32); /* init allocs = # sampled pairs; max endpoint range; # of domains */ + ddef->tr = p7_trace_CreateWithPP(); + ddef->gtr = p7_trace_Create(); + + /* keep a copy of ptr to the RNG */ + ddef->r = r; + ddef->do_reseeding = TRUE; + return ddef; + + ERROR: + p7_domaindef_Destroy(ddef); + return NULL; +} + + +/* p7_domaindef_GrowTo() + * Synopsis: Reallocates a for new seq length + * Incept: SRE, Fri Jan 25 13:27:24 2008 [Janelia] + * + * Purpose: Reallocates a object so that + * it can hold a sequence of up to residues. + * + * (This might be a no-op, if is already large + * enough.) + * + * Returns: on success. + * + * Throws: on allocation failure. In this case, the + * data in are unaffected. + */ +int +p7_domaindef_GrowTo(P7_DOMAINDEF *ddef, int L) +{ + void *p; + int status; + + if (L <= ddef->Lalloc) return eslOK; + + ESL_RALLOC(ddef->mocc, p, sizeof(float) * (L+1)); + ESL_RALLOC(ddef->btot, p, sizeof(float) * (L+1)); + ESL_RALLOC(ddef->etot, p, sizeof(float) * (L+1)); + ESL_RALLOC(ddef->n2sc, p, sizeof(float) * (L+1)); + ddef->Lalloc = L; + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_domaindef_Reuse() + * Synopsis: Prepare to reuse a on a new sequence. + * Incept: SRE, Fri Jan 25 13:48:36 2008 [Janelia] + * + * Purpose: Prepare a object to be reused on + * a new sequence, reusing as much memory as possible. + * + * Note: Because of the way we handle alidisplays, handing them off to + * the caller, we don't reuse their memory; any unused + * alidisplays are destroyed. It's not really possible to + * reuse alidisplay memory. We need alidisplays to persist + * until all sequences have been processed and we're + * writing our final output to the user. + * + * Returns: on success. + */ +int +p7_domaindef_Reuse(P7_DOMAINDEF *ddef) +{ + int status; + int d; + + /* If ddef->dcl is NULL, we turned the domain list over to a P7_HIT + * for permanent storage, and we need to allocate a new one; + * else, reuse the one we've got. + */ + if (ddef->dcl == NULL) + ESL_ALLOC(ddef->dcl, sizeof(P7_DOMAIN) * ddef->nalloc); + else + { + for (d = 0; d < ddef->ndom; d++) { + p7_alidisplay_Destroy(ddef->dcl[d].ad); ddef->dcl[d].ad = NULL; + free(ddef->dcl[d].scores_per_pos); ddef->dcl[d].scores_per_pos = NULL; + } + + } + ddef->ndom = 0; + ddef->L = 0; + + ddef->nexpected = 0.0; + ddef->nregions = 0; + ddef->nclustered = 0; + ddef->noverlaps = 0; + ddef->nenvelopes = 0; + + p7_spensemble_Reuse(ddef->sp); + p7_trace_Reuse(ddef->tr); /* probable overkill; should already have been called */ + p7_trace_Reuse(ddef->gtr); /* likewise */ + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_domaindef_DumpPosteriors() + * Synopsis: Output posteriors that define domain structure to a stream. + * Incept: SRE, Fri Feb 29 08:32:14 2008 [Janelia] + * + * Purpose: Output the vectors from that are used to + * define domain structure to a stream , in xmgrace format. + * + * There are four vectors. The first set is + * , the probability that residue is + * emitted by the core model (is in a domain). The second + * set is , the cumulative expected number + * of times that a domain uses a B state (starts) at or + * before position . The third set is , + * the cumulative expected number of times that a domain + * uses an E state (ends) at or before position . The + * fourth set is , the score of residue i + * under the ad hoc null2 model; this is a measure of local + * biased composition. + * + * These three fields will only be available after a call + * to domain definition by + * . + * + * Returns: on success + * + * Xref: J2/126 + */ +int +p7_domaindef_DumpPosteriors(FILE *ofp, P7_DOMAINDEF *ddef) +{ + int i; + + for (i = 1; i <= ddef->L; i++) + fprintf(ofp, "%d %f\n", i, ddef->mocc[i]); + fprintf(ofp, "&\n"); + + for (i = 1; i <= ddef->L; i++) + fprintf(ofp, "%d %f\n", i, ddef->btot[i]); + fprintf(ofp, "&\n"); + + for (i = 1; i <= ddef->L; i++) + fprintf(ofp, "%d %f\n", i, ddef->etot[i]); + fprintf(ofp, "&\n"); + + for (i = 1; i <= ddef->L; i++) + fprintf(ofp, "%d %f\n", i, ddef->n2sc[i]); + fprintf(ofp, "&\n"); + + return eslOK; +} + + + +/* Function: p7_domaindef_Destroy() + * Synopsis: Destroys a . + * Incept: SRE, Fri Jan 25 13:52:46 2008 [Janelia] + * + * Purpose: Destroys a . + */ +void +p7_domaindef_Destroy(P7_DOMAINDEF *ddef) +{ + int d; + if (ddef == NULL) return; + + if (ddef->mocc != NULL) free(ddef->mocc); + if (ddef->btot != NULL) free(ddef->btot); + if (ddef->etot != NULL) free(ddef->etot); + if (ddef->n2sc != NULL) free(ddef->n2sc); + + if (ddef->dcl != NULL) { + for (d = 0; d < ddef->ndom; d++) { + if (ddef->dcl[d].scores_per_pos) free(ddef->dcl[d].scores_per_pos); + p7_alidisplay_Destroy(ddef->dcl[d].ad); + } + free(ddef->dcl); + } + + p7_spensemble_Destroy(ddef->sp); + p7_trace_Destroy(ddef->tr); + p7_trace_Destroy(ddef->gtr); + free(ddef); + return; +} + +/***************************************************************** + * 2. Routines inferring domain structure of a target sequence + *****************************************************************/ + +#if 0 +/* Function: p7_domaindef_ByViterbi() + * Synopsis: Define domains in a sequence by maximum likelihood. + * Incept: SRE, Fri Jan 25 15:10:21 2008 [Janelia] + * + * Purpose: Use a Viterbi (maximum likelihood) parse to determine + * the domain structure of sequence aligned to + * model . Caller provides a filled Viterbi matrix + * in , and a second matrix of at least the same + * size for scratch space in . + * + * Upon return, contains definitions of all the + * domains, bounds defined by Viterbi parse, individually + * scored by null2-corrected Forward, and aligned by + * optimal posterior accuracy. + * + * Returns: on success. + */ +int +p7_domaindef_ByViterbi(P7_PROFILE *gm, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_GMX *gx1, P7_GMX *gx2, P7_DOMAINDEF *ddef) +{ + int d; + int saveL = gm->L; /* need to be able to restore original config */ + int save_mode = gm->mode; + + p7_domaindef_GrowTo(ddef, sq->n); + p7_GTrace (sq->dsq, sq->n, gm, gx1, ddef->gtr); + p7_trace_Index(ddef->gtr); + + p7_ReconfigUnihit(gm, 0); /* process each domain in unihit L=0 mode */ + + for (d = 0; d < ddef->gtr->ndom; d++) + rescore_isolated_domain(ddef, gm, sq, ntsq, gx1, gx2, ddef->gtr->sqfrom[d], ddef->gtr->sqto[d], FALSE, NULL, FALSE, NULL, NULL, NULL); + + /* Restore original model configuration, including length */ + if (p7_IsMulti(save_mode)) p7_ReconfigMultihit(gm, saveL); + else p7_ReconfigUnihit( gm, saveL); + return eslOK; +} +#endif + + +/* Function: p7_domaindef_ByPosteriorHeuristics() + * Synopsis: Define domains in a sequence using posterior probs. + * Incept: SRE, Sat Feb 23 08:17:44 2008 [Janelia] + * + * Purpose: Given a sequence and model for which we have + * already calculated a Forward and Backward parsing + * matrices and ; use posterior probability + * heuristics to determine an annotated domain structure; + * and for each domain found, score it (with null2 + * calculations) and obtain an optimal accuracy alignment, + * using and matrices as workspace for the + * necessary full-matrix DP calculations. Caller provides a + * new or reused object to hold these results. + * A is provided for (possible) use in biased-composition + * score correction (used in nhmmer), and a boolean + * argument is provided to allow nhmmer- + * specific modifications to the behavior of this function + * (TRUE -> from nhmmer). + * + * Upon return, contains the definitions of all the + * domains: their bounds, their null-corrected Forward + * scores, and their optimal posterior accuracy alignments. + * + * Returns: on success. + * + * on numeric overflow in posterior + * decoding. This should not be possible for multihit + * models. + */ +int +p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, const ESL_SQ *ntsq, P7_OPROFILE *om, + P7_OMX *oxf, P7_OMX *oxb, P7_OMX *fwd, P7_OMX *bck, + P7_DOMAINDEF *ddef, P7_BG *bg, int long_target, + P7_BG *bg_tmp, float *scores_arr, float *fwd_emissions_arr) +{ + int i, j; + int triggered; + int d; + int i2,j2; + int last_j2; + int nc; + int saveL = om->L; /* Save the length config of ; will restore upon return */ + int save_mode = om->mode; /* Likewise for the mode. */ + int status; + + if ((status = p7_domaindef_GrowTo(ddef, sq->n)) != eslOK) return status; /* ddef's btot,etot,mocc now ready for seq of length n */ + if ((status = p7_DomainDecoding(om, oxf, oxb, ddef)) != eslOK) return status; /* ddef->{btot,etot,mocc} now made. */ + + esl_vec_FSet(ddef->n2sc, sq->n+1, 0.0); /* ddef->n2sc null2 scores are initialized */ + ddef->nexpected = ddef->btot[sq->n]; /* posterior expectation for # of domains (same as etot[sq->n]) */ + + p7_oprofile_ReconfigUnihit(om, saveL); /* process each domain in unihit mode, regardless of om->mode */ + i = -1; + triggered = FALSE; + + for (j = 1; j <= sq->n; j++) + { + + if (! triggered) + { /* xref J2/101 for what the logic below is: */ + if (ddef->mocc[j] - (ddef->btot[j] - ddef->btot[j-1]) < ddef->rt2) i = j; + else if (i == -1) i = j; + if (ddef->mocc[j] >= ddef->rt1) triggered = TRUE; + } + else if (ddef->mocc[j] - (ddef->etot[j] - ddef->etot[j-1]) < ddef->rt2) + { + /* We have a region i..j to evaluate. */ + p7_omx_GrowTo(fwd, om->M, j-i+1, j-i+1); + p7_omx_GrowTo(bck, om->M, j-i+1, j-i+1); + ddef->nregions++; + if (is_multidomain_region(ddef, i, j)) + { + /* This region appears to contain more than one domain, so we have to + * resolve it by cluster analysis of posterior trace samples, to define + * one or more domain envelopes. + */ + ddef->nclustered++; + + /* Resolve the region into domains by stochastic trace + * clustering; assign position-specific null2 model by + * stochastic trace clustering; there is redundancy + * here; we will consolidate later if null2 strategy + * works + */ + p7_oprofile_ReconfigMultihit(om, saveL); + p7_Forward(sq->dsq+i-1, j-i+1, om, fwd, NULL); + + region_trace_ensemble(ddef, om, sq->dsq, i, j, fwd, bck, &nc); + p7_oprofile_ReconfigUnihit(om, saveL); + /* ddef->n2sc is now set on i..j by the traceback-dependent method */ + + last_j2 = 0; + for (d = 0; d < nc; d++) { + p7_spensemble_GetClusterCoords(ddef->sp, d, &i2, &j2, NULL, NULL, NULL); + if (i2 <= last_j2) ddef->noverlaps++; + + /* Note that k..m coords on model are available, but + * we're currently ignoring them. This leads to a + * rare clustering bug that we eventually need to fix + * properly [xref J3/32]: two different regions in one + * profile HMM might have hit same seq domain, and + * when we now go to calculate an OA trace, nothing + * constrains us to find the two different alignments + * to the HMM; in fact, because OA is optimal, we'll + * find one and the *same* alignment, leading to an + * apparent duplicate alignment in the output. + * + * Registered as #h74, Dec 2009, after EBI finds and + * reports it. #h74 is worked around in p7_tophits.c + * by hiding all but one envelope with an identical + * alignment, in the rare event that this + * happens. [xref J5/130]. + */ + ddef->nenvelopes++; + + /*the !long_target argument will cause the function to recompute null2 + * scores if this is part of a long_target (nhmmer) pipeline */ + if (rescore_isolated_domain(ddef, om, sq, ntsq, fwd, bck, i2, j2, TRUE, bg, long_target, bg_tmp, scores_arr, fwd_emissions_arr) == eslOK) + last_j2 = j2; + } + p7_spensemble_Reuse(ddef->sp); + p7_trace_Reuse(ddef->tr); + } + else + { + /* The region looks simple, single domain; convert the region to an envelope. */ + ddef->nenvelopes++; + rescore_isolated_domain(ddef, om, sq, ntsq, fwd, bck, i, j, FALSE, bg, long_target, bg_tmp, scores_arr, fwd_emissions_arr); + } + i = -1; + triggered = FALSE; + } + } + + + /* Restore model to uni/multihit mode, and to its original length model */ + if (p7_IsMulti(save_mode)) p7_oprofile_ReconfigMultihit(om, saveL); + else p7_oprofile_ReconfigUnihit (om, saveL); + return eslOK; +} + + + +/***************************************************************** + * 3. Internal routines + *****************************************************************/ + + +/* is_multidomain_region() + * SRE, Fri Feb 8 11:35:04 2008 [Janelia] + * + * This defines the trigger for when we need to hand a "region" off to + * a deeper analysis (using stochastic tracebacks and clustering) + * because there's reason to suspect it may encompass two or more + * domains. + * + * The criterion is to find the split point z at which the expected + * number of E occurrences preceding B occurrences is maximized, and + * if that number is greater than the heuristic threshold rt3>, + * then return TRUE. In other words, we're checking to see if there's + * any point in the region at which it looks like an E was followed by + * a B, as expected for a multidomain interpretation of the region. + * + * More precisely: return TRUE if \max_z [ \min (B(z), E(z)) ] >= rt3 + * where + * E(z) = expected number of E states occurring in region before z is emitted + * = \sum_{y=i}^{z} eocc[i] = etot[z] - etot[i-1] + * B(z) = expected number of B states occurring in region after z is emitted + * = \sum_{y=z}^{j} bocc[i] = btot[j] - btot[z-1] + * + * + * Because this relies on the etot> and btot> arrays, + * needs to have been called first. + * + * Xref: J2/101. + */ +static int +is_multidomain_region(P7_DOMAINDEF *ddef, int i, int j) +{ + int z; + float max; + float expected_n; + + max = -1.0; + for (z = i; z <= j; z++) + { + expected_n = ESL_MIN( (ddef->etot[z] - ddef->etot[i-1]), (ddef->btot[j] - ddef->btot[z-1])); + max = ESL_MAX(max, expected_n); + } + + return ( (max >= ddef->rt3) ? TRUE : FALSE); +} + + +/* region_trace_ensemble() + * SRE, Fri Feb 8 11:49:44 2008 [Janelia] + * + * Here, we've decided that region .. in sequence might be + * composed of more than one domain, and we're going to use clustering + * of a posterior ensemble of stochastic tracebacks to sort it out. + * + * Caller provides a filled Forward matrix in for the sequence + * region , length , for the model + * configured in multihit mode with its target length distribution + * set to the total length of : i.e., the same model + * configuration used to score the complete sequence (if it weren't + * multihit, we wouldn't be worried about multiple domains). + * + * Caller also provides a DP matrix in containing at least one + * row, for use as temporary workspace. (This will typically be the + * caller's Backwards matrix, which we haven't yet used at this point + * in the processing pipeline.) + * + * Caller provides , which defines heuristic parameters that + * control the clustering, and provides working space for the + * calculation and the answers. The sp> object must have been + * reused (i.e., it needs to be fresh; we're going to use it here); + * the caller needs to Reuse() it specifically, because it can't just + * Reuse() the whole , when it's in the process of analyzing + * regions. + * + * Upon return, <*ret_nc> contains the number of clusters that were + * defined. + * + * The caller can retrieve info on each cluster by calling + * sp...)> on the + * object in . + * + * Other information on what's happened in working memory: + * + * n2sc[ireg..jreg]> now contains log f'(x_i) / f(x_i) null2 scores + * for each residue. + * + * sp> gets filled in, and upon return, it's holding the answers + * (the cluster definitions). When the caller is done retrieving those + * answers, it needs to it before calling + * again. + * + * tr> is used as working memory for sampled traces. + * + * has had its zero row clobbered as working space for a null2 calculation. + */ +static int +region_trace_ensemble(P7_DOMAINDEF *ddef, const P7_OPROFILE *om, const ESL_DSQ *dsq, int ireg, int jreg, + const P7_OMX *fwd, P7_OMX *wrk, int *ret_nc) +{ + int Lr = jreg-ireg+1; + int t, d, d2; + int nov, n; + int nc; + int pos; + float null2[p7_MAXCODE]; + + esl_vec_FSet(ddef->n2sc+ireg, Lr, 0.0); /* zero the null2 scores in region */ + + /* By default, we make results reproducible by forcing a reset of + * the RNG to its originally seeded state. + */ + if (ddef->do_reseeding) + esl_randomness_Init(ddef->r, esl_randomness_GetSeed(ddef->r)); + + /* Collect an ensemble of sampled traces; calculate null2 odds ratios from these */ + for (t = 0; t < ddef->nsamples; t++) + { + p7_StochasticTrace(ddef->r, dsq+ireg-1, Lr, om, fwd, ddef->tr); + p7_trace_Index(ddef->tr); + + pos = 1; + for (d = 0; d < ddef->tr->ndom; d++) + { + p7_spensemble_Add(ddef->sp, t, ddef->tr->sqfrom[d]+ireg-1, ddef->tr->sqto[d]+ireg-1, ddef->tr->hmmfrom[d], ddef->tr->hmmto[d]); + + p7_Null2_ByTrace(om, ddef->tr, ddef->tr->tfrom[d], ddef->tr->tto[d], wrk, null2); + + /* residues outside domains get bumped +1: because f'(x) = f(x), so f'(x)/f(x) = 1 in these segments */ + for (; pos <= ddef->tr->sqfrom[d]; pos++) ddef->n2sc[ireg+pos-1] += 1.0; + + /* Residues inside domains get bumped by their null2 ratio */ + for (; pos <= ddef->tr->sqto[d]; pos++) ddef->n2sc[ireg+pos-1] += null2[dsq[ireg+pos-1]]; + } + /* the remaining residues in the region outside any domains get +1 */ + for (; pos <= Lr; pos++) ddef->n2sc[ireg+pos-1] += 1.0; + + p7_trace_Reuse(ddef->tr); + } + + /* Convert the accumulated n2sc[] ratios in this region to log odds null2 scores on each residue. */ + for (pos = ireg; pos <= jreg; pos++) + ddef->n2sc[pos] = logf(ddef->n2sc[pos] / (float) ddef->nsamples); + + /* Cluster the ensemble of traces to break region into envelopes. */ + p7_spensemble_Cluster(ddef->sp, ddef->min_overlap, ddef->of_smaller, ddef->max_diagdiff, ddef->min_posterior, ddef->min_endpointp, &nc); + + /* A little hacky now. Remove "dominated" domains relative to seq coords. */ + for (d = 0; d < nc; d++) + ddef->sp->assignment[d] = 0; /* overload to flag that a domain is dominated */ + + /* who dominates who? (by post prob) */ + for (d = 0; d < nc; d++) + { + for (d2 = d+1; d2 < nc; d2++) + { + nov = ESL_MIN(ddef->sp->sigc[d].j, ddef->sp->sigc[d2].j) - ESL_MAX(ddef->sp->sigc[d].i, ddef->sp->sigc[d2].i) + 1; + if (nov == 0) break; + n = ESL_MIN(ddef->sp->sigc[d].j - ddef->sp->sigc[d].i + 1, ddef->sp->sigc[d2].j - ddef->sp->sigc[d2].i + 1); + if ((float) nov / (float) n >= 0.8) /* overlap */ + { + if (ddef->sp->sigc[d].prob > ddef->sp->sigc[d2].prob) ddef->sp->assignment[d2] = 1; + else ddef->sp->assignment[d] = 1; + } + } + } + + /* shrink the sigc list, removing dominated domains */ + d = 0; + for (d2 = 0; d2 < nc; d2++) + { + if (ddef->sp->assignment[d2]) continue; /* skip domain d2, it's dominated. */ + if (d != d2) memcpy(ddef->sp->sigc + d, ddef->sp->sigc + d2, sizeof(struct p7_spcoord_s)); + d++; + } + ddef->sp->nc = d; + *ret_nc = d; + return eslOK; +} + + + + +/* Function: reparameterize_model() + * + * Synopsis: Establish new background priors based on a sequence window, + * and change match state emission log-odds scores accordingly. + * + * Purpose: Compute new background priors based on a sequence window, + * and set match search model's match state emission log-odds + * scores accordingly. Used narrowly within the post-fwd + * portion of the longtarget pipeline + * + * If sq != NULL: Given a sequence and and length + * , compute the residue frequency, and modify in place + * to store a mixture of that frequency with the default (passed + * in ). Then update the match emission scores in place in + * to account for new values. Prior bg values are + * stored for return in . This is called by + * rescore_isolated_domain(), which is required to call it again + * once complete to return and to original state. + * + * + * If sq == NULL: return and to original state. + * + * Only used in the longtarget (nhmmer) case. In-place + * modification is done to avoid rampant memory allocation. + * Doing this requires that (a) each thread has its own + * independent copy of and , and (b) those are + * returned to their original state before being used + * outside the function using the modified structures. + * + * The pre-allocated array must be passed, for use + * in p7_oprofile_UpdateFwdEmissionScores(). + * + */ +static int +reparameterize_model (P7_BG *bg, P7_OPROFILE *om, const ESL_SQ *sq, int start, int L, float *fwd_emissions, float *bgf_arr, float *sc_arr) { + int K = om->abc->K; + int i; + float tmp; + int status; + + /* Fraction of new bg frequencies that comes from a prior determined by the sequence block. + * This is 25% for long sequences, more for shorter sequences (e.g. 50% for sequences of length 50) + */ + float bg_smooth = 1.; // will be modified immediately below, if it's used + + if (sq != NULL) { + /* compute new bg->f, capturing original values into a preallocated array */ + bg_smooth = 25.0 / (ESL_MIN(100,ESL_MAX(50,sq->n))); + + esl_vec_FSet (bgf_arr, om->abc->K, 0); + status = esl_sq_CountResidues(sq, start, L, bgf_arr); + if (status != eslOK) p7_Fail("Invalid sequence range in reparameterize_model()\n"); + esl_vec_FNorm(bgf_arr, om->abc->K); + + for (i=0; if[i]; + bg->f[i] = (bg_smooth*bg->f[i]) + ( (1.0-bg_smooth) * bgf_arr[i]) ; + bgf_arr[i] = tmp; + } + } else { + /* revert bg->f to the passed in orig_bgf */ + esl_vec_FCopy(bgf_arr, K, bg->f); + } + + p7_oprofile_UpdateFwdEmissionScores(om, bg, fwd_emissions, sc_arr); + + return eslOK; +} + + +/* rescore_isolated_domain() + * SRE, Fri Feb 8 09:18:33 2008 [Janelia] + * + * We have isolated a single domain's envelope from .. in + * sequence , and now we want to score it in isolation and obtain + * an alignment display for it. + * + * (Later, we can add up all the individual domain scores from this + * seq into a new per-seq score, to compare to the original per-seq + * score). + * + * The caller provides model configured in unilocal mode; by + * using unilocal (as opposed to multilocal), we're going to force the + * identification of a single domain in this envelope now. + * + * The alignment is an optimal accuracy alignment (sensu IH Holmes), + * also obtained in unilocal mode. + * + * The caller provides DP matrices and with sufficient + * space to hold Forward and Backward calculations for this domain + * against the model. (The caller will typically already have matrices + * sufficient for the complete sequence lying around, and can just use + * those.) The caller also provides a object (ddef) + * which is (efficiently, we trust) managing any necessary temporary + * working space and heuristic thresholds. + * + * If is TRUE, the calling function optionally + * passes in three allocated arrays (bg_tmp, scores_arr, + * fwd_emissions_arr) used for temporary storage in + * reparameterize_model(). If scores_arr is NULL, reparameterization + * is not done, and the domcorrection, used to determine null2, is not + * computed). + * + * Returns if a domain was successfully identified, scored, + * and aligned in the envelope; if so, the per-domain information is + * registered in , in dcl>. + * + * And here's what's happened to our working memory: + * + * : tr> has been used, and possibly reallocated, for + * the OA trace of the domain. Before exit, we called + * on it. + * + * : happens to be holding OA score matrix for the domain + * upon return, but that's not part of the spec; officially + * its contents are "undefined". + * + * : happens to be holding a posterior probability matrix + * for the domain upon return, but we're not making that + * part of the spec, so caller shouldn't rely on this; + * spec just makes its contents "undefined". + * + * + * Returns if domain is not successfully identified. This + * is rare; one way it can happen is if posterior decoding calculation + * overflows, which can occur on highly repetitive sequence + * {J3/119-121}. Beware: as a result, it is possible to have + * ndom = 0>, for nonzero region(s)/envelope(s). See {iss131}. + * + */ +static int +rescore_isolated_domain(P7_DOMAINDEF *ddef, P7_OPROFILE *om, const ESL_SQ *sq, const ESL_SQ *ntsq, + P7_OMX *ox1, P7_OMX *ox2, int i, int j, int null2_is_done, P7_BG *bg, int long_target, + P7_BG *bg_tmp, float *scores_arr, float *fwd_emissions_arr) +{ + P7_DOMAIN *dom = NULL; + int Ld = j-i+1; + float domcorrection = 0.0; + float envsc, oasc; + int z; + int pos; + float null2[p7_MAXCODE]; + int status; + int max_env_extra = 20; + int orig_L; + + + if (long_target) { + //temporarily change model length to env_len. The nhmmer pipeline will tack + //on the appropriate cost to account for the longer actual window + orig_L = om->L; + p7_oprofile_ReconfigRestLength(om, j-i+1); + } + + if (long_target && scores_arr!=NULL) { + // Modify bg and om in-place to avoid having to clone (allocate) a massive + // number of times when there are many hits + reparameterize_model (bg, om, sq, i, j-i+1, fwd_emissions_arr, bg_tmp->f, scores_arr); + } + + p7_Forward (sq->dsq + i-1, Ld, om, ox1, &envsc); + p7_Backward(sq->dsq + i-1, Ld, om, ox1, ox2, NULL); + + status = p7_Decoding(om, ox1, ox2, ox2); /* is now overwritten with post probabilities */ + if (status == eslERANGE) { /* rare: numeric overflow; domain is assumed to be repetitive garbage [J3/119-121] */ + if (long_target && scores_arr) + reparameterize_model(bg, om, NULL, 0, 0, fwd_emissions_arr, bg_tmp->f, scores_arr); /* revert to original bg model */ + status = eslFAIL; + goto ERROR; + } + + /* Find an optimal accuracy alignment */ + p7_OptimalAccuracy(om, ox2, ox1, &oasc); /* is now overwritten with OA scores */ + p7_OATrace (om, ox2, ox1, ddef->tr); /*

's seq coords are offset by i-1, rel to orig dsq */ + + /* hack the trace's sq coords to be correct w.r.t. original dsq */ + for (z = 0; z < ddef->tr->N; z++) + if (ddef->tr->i[z] > 0) ddef->tr->i[z] += i-1; + + /* get ptr to next empty domain structure in domaindef's results */ + if (ddef->ndom == ddef->nalloc) { + ESL_REALLOC(ddef->dcl, sizeof(P7_DOMAIN) * (ddef->nalloc*2)); + ddef->nalloc *= 2; + } + dom = &(ddef->dcl[ddef->ndom]); + dom->ad = p7_alidisplay_Create(ddef->tr, 0, om, sq, ntsq); + dom->scores_per_pos = NULL; + + + /* For long target DNA, it's common to see a huge envelope (>1Kb longer than alignment), usually + * involving simple repeat part of model that attracted similar segments of the repeatedly, to + * acquire a large total score. Now that we have alignment boundaries, re-run Fwd/Bkwd to trim away + * such a long envelope and estimate the true score of the hit region + */ + if (long_target) { + + if ( i < dom->ad->sqfrom-max_env_extra //trim the left side of the envelope + || j > dom->ad->sqto+max_env_extra //trim the right side of the envelope + ) { + + //trim in the envelope, and do it again + i = ESL_MAX(i,dom->ad->sqfrom-max_env_extra); + j = ESL_MIN(j,dom->ad->sqto+max_env_extra); + Ld = j - i + 1; + + //temporarily change model length to env_len. The nhmmer pipeline will tack + //on the appropriate cost to account for the longer actual window + p7_oprofile_ReconfigRestLength(om, j-i+1); + + if (scores_arr!=NULL) { + //revert bg and om back to original, then forward to new values + reparameterize_model (bg, om, NULL, 0, 0, fwd_emissions_arr, bg_tmp->f, scores_arr); + reparameterize_model (bg, om, sq, i, Ld, fwd_emissions_arr, bg_tmp->f, scores_arr); + } + + p7_Forward (sq->dsq + i-1, Ld, om, ox1, &envsc); + p7_Backward(sq->dsq + i-1, Ld, om, ox1, ox2, NULL); + + status = p7_Decoding(om, ox1, ox2, ox2); /* is now overwritten with post probabilities */ + if (status == eslERANGE) { /* rare: numeric overflow; domain is assumed to be repetitive garbage [J3/119-121] */ + reparameterize_model(bg, om, NULL, 0, 0, fwd_emissions_arr, bg_tmp->f, scores_arr); /* revert to original bg model */ + status = eslFAIL; + goto ERROR; + } + + /* Find an optimal accuracy alignment */ + p7_OptimalAccuracy(om, ox2, ox1, &oasc); /* is now overwritten with OA scores */ + p7_trace_Reuse(ddef->tr); + p7_OATrace (om, ox2, ox1, ddef->tr); /* 's seq coords are offset by i-1, rel to orig dsq */ + + /* re-hack the trace's sq coords to be correct w.r.t. original dsq */ + for (z = 0; z < ddef->tr->N; z++) + if (ddef->tr->i[z] > 0) ddef->tr->i[z] += i-1; + + /* store the results in it, first destroying the old alidisplay object */ + p7_alidisplay_Destroy(dom->ad); + dom->ad = p7_alidisplay_Create(ddef->tr, 0, om, sq, NULL); + } + + /* Estimate bias correction, by computing what the score would've been without + * reparameterization + */ + domcorrection = envsc; + if (scores_arr!=NULL) { //revert bg and om back to original, + //and while I'm at it, capture what the default parameterized score would have been, for "null2" + reparameterize_model (bg, om, NULL, 0, 0, fwd_emissions_arr, bg_tmp->f, scores_arr); + p7_Forward (sq->dsq + i-1, Ld, om, ox1, &domcorrection); + } + + p7_oprofile_ReconfigRestLength(om, orig_L); + + if (domcorrection < envsc) //negative bias correction shouldn't happen. Stick with the original score. + envsc = domcorrection; + + dom->domcorrection = domcorrection - envsc; + + } else { + + /* Compute bias correction (for non-longtarget case) + * + * Is null2 set already for this i..j? (It is, if we're in a domain that + * was defined by stochastic traceback clustering in a multidomain region; + * it isn't yet, if we're in a simple one-domain region). If it isn't, + * do it now, by the expectation (posterior decoding) method. + */ + if (!null2_is_done) { + p7_Null2_ByExpectation(om, ox2, null2); + for (pos = i; pos <= j; pos++) + ddef->n2sc[pos] = logf(null2[sq->dsq[pos]]); + } + for (pos = i; pos <= j; pos++) + domcorrection += ddef->n2sc[pos]; /* domcorrection is in units of NATS */ + + dom->domcorrection = domcorrection; /* in units of NATS */ + + } + + + dom->iali = dom->ad->sqfrom; + dom->jali = dom->ad->sqto; + dom->ienv = i; + dom->jenv = j; + dom->envsc = envsc; /* in units of NATS */ + dom->oasc = oasc; /* in units of expected # of correctly aligned residues */ + dom->dombias = 0.0; /* gets set later, using bg->omega and dombias */ + dom->bitscore = 0.0; /* gets set later by caller, using envsc, null score, and dombias */ + dom->lnP = 0.0; /* gets set later by caller, using bitscore */ + dom->is_reported = FALSE; /* gets set later by caller */ + dom->is_included = FALSE; /* gets set later by caller */ + + + ddef->ndom++; + + p7_trace_Reuse(ddef->tr); + return eslOK; + + ERROR: + p7_trace_Reuse(ddef->tr); + return status; +} + + +/***************************************************************** + * Example driver. + *****************************************************************/ + +#ifdef p7DOMAINDEF_EXAMPLE + +/* gcc -o domaindef_example -g -Wall -I../easel -L../easel -I. -L. -Dp7DOMAINDEF_EXAMPLE p7_domaindef.c -lhmmer -leasel -lm + * ./domaindef_example + */ + + +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_alphabet.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-V", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "find domains by Viterbi parsing", 0 }, + { "--occp", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output posterior occupancies for xmgrace to ", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options] "; +static char banner[] = "example of domain definition by posterior sampling"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(42); + char *hmmfile = esl_opt_GetArg(go, 1); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + char *seqfile = esl_opt_GetArg(go, 2); + int format = eslSQFILE_UNKNOWN; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *oxf = NULL; /* parsing matrix, passed to PosteriorHeuristics */ + P7_OMX *oxb = NULL; + P7_OMX *fwd = NULL; /* full LxL matrix workspace passed to PosteriorHeuristics */ + P7_OMX *bck = NULL; + P7_DOMAINDEF *ddef = NULL; + char *ofile = NULL; + FILE *ofp = NULL; + float overall_sc, sc; + int d; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + p7_FLogsumInit(); + + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, sq->n); + + /* allocate the domain definition object */ + ddef = p7_domaindef_Create(r); + + /* allocate DP matrices for forward and backward */ + fwd = p7_omx_Create(gm->M, sq->n, sq->n); + bck = p7_omx_Create(gm->M, sq->n, sq->n); + + oxf = p7_omx_Create(om->M, 0, sq->n); + oxb = p7_omx_Create(om->M, 0, sq->n); + + /* define domain structure */ + + + p7_Forward (sq->dsq, sq->n, om, fwd, &overall_sc); + p7_Backward(sq->dsq, sq->n, om, fwd, bck, &sc); + p7_domaindef_ByPosteriorHeuristics(sq, NULL, om, oxf, oxb, fwd, bck, ddef, NULL, FALSE, NULL, NULL, NULL); + + + printf("Overall raw likelihood score: %.2f nats\n", overall_sc); + + /* retrieve and display results */ + for (d = 0; d < ddef->ndom; d++) + { + printf("domain %-4d : %4" PRId64 " %4" PRId64 " %6.2f %6.2f\n", + d+1, + ddef->dcl[d].ienv, + ddef->dcl[d].jenv, + ddef->dcl[d].envsc, + ddef->dcl[d].domcorrection); + + p7_alidisplay_Print(stdout, ddef->dcl[d].ad, 50, 120, FALSE); + } + + if ((ofile = esl_opt_GetString(go, "--occp")) != NULL) + { + if ((ofp = fopen(ofile, "w")) == NULL) p7_Fail("Failed to open output file %s\n", ofile); + p7_domaindef_DumpPosteriors(ofp, ddef); + fclose(ofp); + } + + p7_domaindef_Destroy(ddef); + p7_omx_Destroy(oxf); + p7_omx_Destroy(oxb); + p7_omx_Destroy(fwd); + p7_omx_Destroy(bck); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_sq_Destroy(sq); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7DOMAINDEF_EXAMPLE*/ + + +#ifdef p7DOMAINDEF_EXAMPLE2 +/* gcc -o domaindef_example2 -g -Wall -I../easel -L../easel -I. -L. -Dp7DOMAINDEF_EXAMPLE2 p7_domaindef.c -lhmmer -leasel -lm + * ./domaindef_example2 + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_alphabet.h" +#include "esl_stopwatch.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-N", eslARG_INT, "1000", NULL, NULL, NULL, NULL, NULL, "number of sampled sequences", 0 }, + { "-L", eslARG_INT, "400", NULL, NULL, NULL, NULL, NULL, "length config for the profile", 0 }, + { "-V", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "find domains by Viterbi parsing", 0 }, + { "-b", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "baseline timing - no domain processing", 0 }, + { "-v", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "be more verbose (show per sequence results)", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options] "; +static char banner[] = "example of domain definition by posterior sampling"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(42); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + char *hmmfile = esl_opt_GetArg(go, 1); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + ESL_SQ *sq = NULL; + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_TRACE *tr = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + P7_OMX *gxf = NULL; /* parsing matrix, passed to PosteriorHeuristics */ + P7_OMX *gxb = NULL; + + P7_DOMAINDEF *ddef = NULL; + int N = esl_opt_GetInteger(go, "-N"); + int L0 = esl_opt_GetInteger(go, "-L"); + int do_vit = esl_opt_GetBoolean(go, "-V"); + int do_baseline = esl_opt_GetBoolean(go, "-b"); + int be_verbose = esl_opt_GetBoolean(go, "-v"); + float overall_sc, sc; + int idx; + int tot_true, tot_found; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L0); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L0, p7_LOCAL); + + /* Other initial allocations */ + sq = esl_sq_CreateDigital(abc); + ddef = p7_domaindef_Create(r); + fwd = p7_gmx_Create(gm->M, L0); + bck = p7_gmx_Create(gm->M, L0); + gxf = p7_gmx_Create(gm->M, L0); + gxb = p7_gmx_Create(gm->M, L0); + tr = p7_trace_Create(); + p7_FLogsumInit(); + + tot_true = tot_found = 0; + esl_stopwatch_Start(w); + for (idx = 0; idx < N; idx++) + { + p7_ReconfigLength(gm, L0); + p7_bg_SetLength(bg, L0); + p7_ProfileEmit(r, hmm, gm, bg, sq, tr); /* sample a sequence from the profile */ + p7_trace_Index(tr); /* tr->ndom is the "true" domain number emitted */ + tot_true += tr->ndom; + + p7_ReconfigLength(gm, sq->n); + p7_bg_SetLength(bg, sq->n); + p7_gmx_GrowTo(fwd, gm->M, sq->n); + p7_gmx_GrowTo(bck, gm->M, sq->n); + + if (do_vit) + { + p7_GViterbi (sq->dsq, sq->n, gm, fwd, &overall_sc); + if (! do_baseline) + p7_domaindef_ByViterbi(gm, sq, fwd, bck, ddef); + } + else + { + p7_GForward (sq->dsq, sq->n, gm, fwd, &overall_sc); + if (! do_baseline) { + p7_GBackward(sq->dsq, sq->n, gm, bck, &sc); + p7_domaindef_ByPosteriorHeuristics(sq, gm, fwd, bck, gxf, gxb, ddef, NULL, FALSE, NULL, NULL, NULL); + //Is this even being compiled by any tests? Looks like there's a fair amount of bit rot here + } + } + + tot_found += ddef->ndom; + if (be_verbose) + printf("true: %d found: %d\n", tr->ndom, ddef->ndom); + + p7_trace_Reuse(tr); + p7_domaindef_Reuse(ddef); + } + esl_stopwatch_Stop(w); + + printf("Total domains: %d\n", tot_true); + printf("Total found: %d\n", tot_found); + printf("Accuracy: %.2f%%\n", 100. * (double) tot_found / (double) tot_true); + esl_stopwatch_Display(stdout, w, "CPU time: "); + + p7_domaindef_Destroy(ddef); + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(bck); + p7_profile_Destroy(gm); + p7_trace_Destroy(tr); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_sq_Destroy(sq); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7DOMAINDEF_EXAMPLE2*/ + diff --git a/bioinformaticsProject/hmmer/src/p7_gbands.c b/bioinformaticsProject/hmmer/src/p7_gbands.c new file mode 100644 index 0000000..3cf25df --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_gbands.c @@ -0,0 +1,230 @@ +#include "p7_config.h" + +#include "easel.h" +#include "esl_vectorops.h" + +#include "p7_gbands.h" + +P7_GBANDS * +p7_gbands_Create(void) +{ + P7_GBANDS *bnd = NULL; + int init_segalloc = 4; + int init_rowalloc = 64; + int status; + + ESL_ALLOC(bnd, sizeof(P7_GBANDS)); + bnd->nseg = 0; + bnd->nrow = 0; + bnd->L = 0; + bnd->M = 0; + bnd->ncell = 0; + bnd->imem = NULL; + bnd->kmem = NULL; + + + ESL_ALLOC(bnd->imem, sizeof(int) * init_segalloc * 2); /* *2: for ia, ib pairs */ + ESL_ALLOC(bnd->kmem, sizeof(int) * init_rowalloc * p7_GBANDS_NK); + bnd->segalloc = init_segalloc; + bnd->rowalloc = init_rowalloc; + + return bnd; + + ERROR: + p7_gbands_Destroy(bnd); + return NULL; +} + +int +p7_gbands_Reuse(P7_GBANDS *bnd) +{ + bnd->nseg = 0; + bnd->nrow = 0; + bnd->L = 0; + bnd->M = 0; + bnd->ncell = 0; + return eslOK; +} + +/* Function: + * Synopsis: + * + * Purpose: + * calls must be made in ascending order, + * from . + * Args: + * + * Returns: + * + * Throws: (no abnormal error conditions) + * + * Xref: + */ +int +p7_gbands_Append(P7_GBANDS *bnd, int i, int ka, int kb) +{ + int status; + + if (bnd->nseg == 0 || + i > 1 + bnd->imem[(bnd->nseg-1)*2 +1]) /* i > ib[cur_g] + 1; need to start a new segment */ + { + if (bnd->nseg == bnd->segalloc && (status = p7_gbands_GrowSegs(bnd)) != eslOK) goto ERROR; + bnd->imem[bnd->nseg*2] = i; /* ia */ + bnd->imem[bnd->nseg*2+1] = i; /* ib */ + bnd->nseg++; + } + else /* else, append i onto previous segment by incrementing ib */ + bnd->imem[(bnd->nseg-1)*2+1] += 1; /* equiv to setting = i */ + + if (bnd->nrow == bnd->rowalloc && (status = p7_gbands_GrowRows(bnd)) != eslOK) goto ERROR; + bnd->kmem[bnd->nrow*p7_GBANDS_NK] = ka; + bnd->kmem[bnd->nrow*p7_GBANDS_NK+1] = kb; + bnd->nrow += 1; + bnd->ncell += kb-ka+1; + return eslOK; + + ERROR: + return status; +} + + +/* + * Build the band structure backwards. Caller will need to + * call when done. + */ +int +p7_gbands_Prepend(P7_GBANDS *bnd, int i, int ka, int kb) +{ + int status; + + if (! bnd->nseg || + i < bnd->imem[(bnd->nseg-1)*2+1] - 1) /* i < ia[cur_g]-1; start a new segment */ + { + if (bnd->nseg == bnd->segalloc && (status = p7_gbands_GrowSegs(bnd)) != eslOK) return status; + bnd->imem[bnd->nseg*2] = i; /* ib */ + bnd->imem[bnd->nseg*2+1] = i; /* ia */ + bnd->nseg++; + } + else /* else, prepend i to prev segment by decrementing its ia */ + bnd->imem[(bnd->nseg-1)*2+1] -= 1; /* equiv to setting ia[g] = i */ + + if (bnd->nrow == bnd->rowalloc && (status = p7_gbands_GrowRows(bnd)) != eslOK) return status; + bnd->kmem[bnd->nrow*p7_GBANDS_NK] = kb; + bnd->kmem[bnd->nrow*p7_GBANDS_NK+1] = ka; + bnd->nrow += 1; + bnd->ncell += kb-ka+1; + return eslOK; +} + +/* Function: p7_gbands_Reverse() + * Synopsis: Reverse the band structure arrays, after a backwards DP pass. + * + * Purpose: Our checkpointed DP posterior decoding algorithms that make a + * band structure work backwards in rows from L..1, and so they + * construct a structure that has its data elements + * in reversed order. Before we can use that structure, we have + * to reverse these arrays. + * + * Args: bnd - band list to reverse. + * + * Returns: on success. + */ +int +p7_gbands_Reverse(P7_GBANDS *bnd) +{ + esl_vec_IReverse(bnd->imem, bnd->imem, 2*bnd->nseg); + esl_vec_IReverse(bnd->kmem, bnd->kmem, 2*bnd->nrow); + return eslOK; +} + + +int +p7_gbands_GrowSegs(P7_GBANDS *bnd) +{ + int new_segalloc = bnd->segalloc * 2; /* grow by doubling */ + int status; + + ESL_REALLOC(bnd->imem, sizeof(int) * new_segalloc * 2); + bnd->segalloc = new_segalloc; + return eslOK; + + ERROR: + return status; +} + +int +p7_gbands_GrowRows(P7_GBANDS *bnd) +{ + int new_rowalloc = bnd->rowalloc * 2; + int status; + + ESL_REALLOC(bnd->kmem, sizeof(int) * new_rowalloc * p7_GBANDS_NK); + bnd->rowalloc = new_rowalloc; + return eslOK; + + ERROR: + return status; +} + +void +p7_gbands_Destroy(P7_GBANDS *bnd) +{ + if (bnd) { + if (bnd->imem) free(bnd->imem); + if (bnd->kmem) free(bnd->kmem); + free(bnd); + } +} + + + +/* Function: + * Synopsis: + * + * Purpose: + * Also serves to demonstrate standard iteration method, + * over segments and rows. + * Args: + * + * Returns: + * + * Throws: (no abnormal error conditions) + * + * Xref: + */ +int +p7_gbands_Dump(FILE *ofp, P7_GBANDS *bnd) +{ + int g, i; + int *bnd_ip = bnd->imem; + int *bnd_kp = bnd->kmem; + int ia, ib; + int ka, kb; + + i = 0; + for (g = 0; g < bnd->nseg; g++) + { + ia = *bnd_ip; bnd_ip++; + ib = *bnd_ip; bnd_ip++; + if (ia > i+1) fprintf(ofp, "...\n"); + + for (i = ia; i <= ib; i++) + { + ka = *bnd_kp; bnd_kp++; + kb = *bnd_kp; bnd_kp++; + + fprintf(ofp, "%6d %6d %6d\n", i, ka, kb); + } + } + if (i <= bnd->L) fprintf(ofp, "...\n"); + + printf("%" PRId64 " cells banded, %" PRId64 " total; fraction = %f\n", + bnd->ncell, + (int64_t) bnd->L * (int64_t) bnd->M, + (double) bnd->ncell / ((double) bnd->L * (double) bnd->M)); + + return eslOK; +} + + + diff --git a/bioinformaticsProject/hmmer/src/p7_gbands.h b/bioinformaticsProject/hmmer/src/p7_gbands.h new file mode 100644 index 0000000..ee2fc93 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_gbands.h @@ -0,0 +1,30 @@ +#ifndef P7_GBANDS_INCLUDED +#define P7_GBANDS_INCLUDED + +typedef struct { + int nseg; + int nrow; + int L; + int M; + int64_t ncell; + + int *imem; + int *kmem; + + int segalloc; + int rowalloc; +} P7_GBANDS; + +#define p7_GBANDS_NK 2 /* for IK banding. Or 6, for IKS banding */ + +extern P7_GBANDS *p7_gbands_Create (void); +extern int p7_gbands_Reuse (P7_GBANDS *bnd); +extern int p7_gbands_Append (P7_GBANDS *bnd, int i, int ka, int kb); +extern int p7_gbands_Prepend (P7_GBANDS *bnd, int i, int ka, int kb); +extern int p7_gbands_Reverse (P7_GBANDS *bnd); +extern int p7_gbands_GrowSegs(P7_GBANDS *bnd); +extern int p7_gbands_GrowRows(P7_GBANDS *bnd); +extern void p7_gbands_Destroy (P7_GBANDS *bnd); +extern int p7_gbands_Dump(FILE *ofp, P7_GBANDS *bnd); + +#endif /*P7_GBANDS_INCLUDED*/ diff --git a/bioinformaticsProject/hmmer/src/p7_gmx.c b/bioinformaticsProject/hmmer/src/p7_gmx.c new file mode 100644 index 0000000..0695012 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_gmx.c @@ -0,0 +1,527 @@ +/* P7_GMX implementation: a generic dynamic programming matrix + * + * Contents: + * 1. The object + * 2. Debugging aids + * 3. Unit tests + * 4. Test driver + */ +#include "p7_config.h" + +#include "hmmer.h" + +/***************************************************************** + *= 1. The object. + *****************************************************************/ + +/* Function: p7_gmx_Create() + * Synopsis: Allocate a new . + * + * Purpose: Allocate a reusable, resizeable for models up to + * size and sequences up to length . + * + * We've set this up so it should be easy to allocate + * aligned memory, though we're not doing this yet. + * + * Returns: a pointer to the new . + * + * Throws: on allocation error. + */ +P7_GMX * +p7_gmx_Create(int allocM, int allocL) +{ + int status; + P7_GMX *gx = NULL; + int i; + + /* don't try to make large allocs on 32-bit systems */ + if ( (uint64_t) (allocM+1) * (uint64_t) (allocL+1) * sizeof(float) * p7G_NSCELLS > SIZE_MAX / 2) + return NULL; + + /* level 1: the structure itself */ + ESL_ALLOC(gx, sizeof(P7_GMX)); + gx->dp = NULL; + gx->xmx = NULL; + gx->dp_mem = NULL; + + /* level 2: row pointers, 0.1..L; and dp cell memory */ + ESL_ALLOC(gx->dp, sizeof(float *) * (allocL+1)); + ESL_ALLOC(gx->xmx, sizeof(float) * (allocL+1) * p7G_NXCELLS); + ESL_ALLOC(gx->dp_mem, sizeof(float) * (allocL+1) * (allocM+1) * p7G_NSCELLS); + + /* Set the row pointers. */ + for (i = 0; i <= allocL; i++) + gx->dp[i] = gx->dp_mem + (ptrdiff_t) i * (ptrdiff_t) (allocM+1) * (ptrdiff_t) p7G_NSCELLS; + + /* Initialize memory that's allocated but unused, only to keep + * valgrind and friends happy. + */ + for (i = 0; i <= allocL; i++) + { + gx->dp[i][0 * p7G_NSCELLS + p7G_M] = -eslINFINITY; /* M_0 */ + gx->dp[i][0 * p7G_NSCELLS + p7G_I] = -eslINFINITY; /* I_0 */ + gx->dp[i][0 * p7G_NSCELLS + p7G_D] = -eslINFINITY; /* D_0 */ + gx->dp[i][1 * p7G_NSCELLS + p7G_D] = -eslINFINITY; /* D_1 */ + gx->dp[i][allocM * p7G_NSCELLS + p7G_I] = -eslINFINITY; /* I_M */ + } + + gx->M = 0; + gx->L = 0; + gx->allocW = allocM+1; + gx->allocR = allocL+1; + gx->validR = allocL+1; + gx->ncells = (uint64_t) (allocM+1)* (uint64_t) (allocL+1); + return gx; + + ERROR: + if (gx != NULL) p7_gmx_Destroy(gx); + return NULL; +} + +/* Function: p7_gmx_GrowTo() + * Synopsis: Assure that DP matrix is big enough. + * + * Purpose: Assures that a DP matrix is allocated + * for a model of size up to and a sequence of + * length up to ; reallocates if necessary. + * + * This function does not respect the configured + * ; it will allocate what it's told to + * allocate. + * + * Returns: on success, and may be reallocated upon + * return; any data that may have been in must be + * assumed to be invalidated. + * + * Throws: on allocation failure, and any data that may + * have been in must be assumed to be invalidated. + */ +int +p7_gmx_GrowTo(P7_GMX *gx, int M, int L) +{ + int status; + void *p; + int i; + uint64_t ncells; + int do_reset = FALSE; + + if (M < gx->allocW && L < gx->validR) return eslOK; + + /* don't try to make large allocs on 32-bit systems */ + if ( (uint64_t) (M+1) * (uint64_t) (L+1) * sizeof(float) * p7G_NSCELLS > SIZE_MAX / 2) return eslEMEM; + + /* must we realloc the 2D matrices? (or can we get away with just + * jiggering the row pointers, if we are growing in one dimension + * while shrinking in another?) + */ + ncells = (uint64_t) (M+1) * (uint64_t) (L+1); + if (ncells > gx->ncells) + { + ESL_RALLOC(gx->dp_mem, p, sizeof(float) * ncells * p7G_NSCELLS); + gx->ncells = ncells; + do_reset = TRUE; + } + + /* must we reallocate the row pointers? */ + if (L >= gx->allocR) + { + ESL_RALLOC(gx->xmx, p, sizeof(float) * (L+1) * p7G_NXCELLS); + ESL_RALLOC(gx->dp, p, sizeof(float *) * (L+1)); + gx->allocR = L+1; /* allocW will also get set, in the do_reset block */ + do_reset = TRUE; + } + + /* must we widen the rows? */ + if (M >= gx->allocW) do_reset = TRUE; + + /* must we set some more valid row pointers? */ + if (L >= gx->validR) do_reset = TRUE; + + /* resize the rows and reset all the valid row pointers.*/ + if (do_reset) + { + gx->allocW = M+1; + gx->validR = ESL_MIN(gx->ncells / gx->allocW, gx->allocR); + for (i = 0; i < gx->validR; i++) + gx->dp[i] = gx->dp_mem + (ptrdiff_t) i * (ptrdiff_t) (gx->allocW) * (ptrdiff_t) p7G_NSCELLS; + } + + gx->M = 0; + gx->L = 0; + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_gmx_Sizeof() + * Synopsis: Returns the allocation size of DP matrix, in bytes. + */ +size_t +p7_gmx_Sizeof(P7_GMX *gx) +{ + size_t n = 0; + + n += sizeof(P7_GMX); + n += gx->ncells * p7G_NSCELLS * sizeof(float); /* main dp cells: gx->dp_mem */ + n += gx->allocR * sizeof(float *); /* row ptrs: gx->dp[] */ + n += gx->allocR * p7G_NXCELLS * sizeof(float); /* specials: gx->xmx */ + return n; +} + + + +/* Function: p7_gmx_Reuse() + * Synopsis: Recycle a generic DP matrix. + * + * Purpose: Recycles for reuse. + * + * Returns: on success. + */ +int +p7_gmx_Reuse(P7_GMX *gx) +{ + /* not much to do here. The memory rearrangement for a new seq is all in GrowTo(). */ + gx->M = 0; + gx->L = 0; + return eslOK; +} + + +/* Function: p7_gmx_Destroy() + * Synopsis: Frees a DP matrix. + * + * Purpose: Frees a . + * + * Returns: (void) + */ +void +p7_gmx_Destroy(P7_GMX *gx) +{ + if (gx == NULL) return; + + if (gx->dp != NULL) free(gx->dp); + if (gx->xmx != NULL) free(gx->xmx); + if (gx->dp_mem != NULL) free(gx->dp_mem); + free(gx); + return; +} + +/***************************************************************** + * 2. Debugging aids + *****************************************************************/ + +/* Function: p7_gmx_Compare() + * Synopsis: Compare two DP matrices for equality within given tolerance. + * + * Purpose: Compare all the values in DP matrices and using + * and relative epsilon . If any + * value pairs differ by more than the acceptable + * return . If all value pairs are identical within + * tolerance, return . + */ +int +p7_gmx_Compare(P7_GMX *gx1, P7_GMX *gx2, float tolerance) +{ + int i,k,x; + if (gx1->M != gx2->M) return eslFAIL; + if (gx1->L != gx2->L) return eslFAIL; + + for (i = 0; i <= gx1->L; i++) + { + for (k = 1; k <= gx1->M; k++) /* k=0 is a boundary; doesn't need to be checked */ + { + if (esl_FCompare(gx1->dp[i][k * p7G_NSCELLS + p7G_M], gx2->dp[i][k * p7G_NSCELLS + p7G_M], tolerance) != eslOK) return eslFAIL; + if (esl_FCompare(gx1->dp[i][k * p7G_NSCELLS + p7G_I], gx2->dp[i][k * p7G_NSCELLS + p7G_I], tolerance) != eslOK) return eslFAIL; + if (esl_FCompare(gx1->dp[i][k * p7G_NSCELLS + p7G_D], gx2->dp[i][k * p7G_NSCELLS + p7G_D], tolerance) != eslOK) return eslFAIL; + } + for (x = 0; x < p7G_NXCELLS; x++) + if (esl_FCompare(gx1->xmx[i * p7G_NXCELLS + x], gx2->xmx[i * p7G_NXCELLS + x], tolerance) != eslOK) return eslFAIL; + } + return eslOK; +} + + + +/* Function: p7_gmx_Dump() + * Synopsis: Dump a DP matrix to a stream, for diagnostics. + * + * Purpose: Dump matrix to stream for diagnostics. + * + * control some optional output behaviors, as follows: + * | | don't show scores for states | + * | | is in probs; show as log probs | + */ +int +p7_gmx_Dump(FILE *ofp, P7_GMX *gx, int flags) +{ + return p7_gmx_DumpWindow(ofp, gx, 0, gx->L, 0, gx->M, flags); +} + + +/* Function: p7_gmx_DumpWindow() + * Synopsis: Dump a window of a DP matrix to a stream for diagnostics. + * + * Purpose: Dump a window of matrix to stream for diagnostics, + * from row to , from column to . + * + * Asking for <0..L,0..M> with is the + * same as . + * + * control some optional output behaviors, as follows: + * | | don't show scores for states | + * | | is in probs; show as log probs | + * + * Returns: on success. + */ +int +p7_gmx_DumpWindow(FILE *ofp, P7_GMX *gx, int istart, int iend, int kstart, int kend, int flags) +{ + int width = 9; + int precision = 4; + int i, k, x; + float val; + + /* Header */ + fprintf(ofp, " "); + for (k = kstart; k <= kend; k++) fprintf(ofp, "%*d ", width, k); + if (! (flags & p7_HIDE_SPECIALS)) fprintf(ofp, "%*s %*s %*s %*s %*s\n", width, "E", width, "N", width, "J", width, "B", width, "C"); + fprintf(ofp, " "); + for (k = kstart; k <= kend; k++) fprintf(ofp, "%*.*s ", width, width, "----------"); + if (! (flags & p7_HIDE_SPECIALS)) + for (x = 0; x < 5; x++) fprintf(ofp, "%*.*s ", width, width, "----------"); + fprintf(ofp, "\n"); + + /* DP matrix data */ + for (i = istart; i <= iend; i++) + { + fprintf(ofp, "%3d M ", i); + for (k = kstart; k <= kend; k++) + { + val = gx->dp[i][k * p7G_NSCELLS + p7G_M]; + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); + } + if (! (flags & p7_HIDE_SPECIALS)) + { + for (x = 0; x < p7G_NXCELLS; x++) + { + val = gx->xmx[ i * p7G_NXCELLS + x]; + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); + } + } + fprintf(ofp, "\n"); + + fprintf(ofp, "%3d I ", i); + for (k = kstart; k <= kend; k++) + { + val = gx->dp[i][k * p7G_NSCELLS + p7G_I]; + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); + } + fprintf(ofp, "\n"); + + fprintf(ofp, "%3d D ", i); + for (k = kstart; k <= kend; k++) + { + val = gx->dp[i][k * p7G_NSCELLS + p7G_D]; + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); + } + fprintf(ofp, "\n\n"); + } + return eslOK; +} + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7GMX_TESTDRIVE +#include "esl_random.h" +#include "esl_randomseq.h" + +/* gmx_testpattern() + * + * Write a test pattern into the cells of , and read it back + * in different ways, to test that the memory is laid out as expected. + * + * stores floats, and the test pattern depends on numbering each + * dp cell with an integer, so we must make sure our count doesn't + * exceed the largest exactly representable integer in a float: + * 2^24 = 16777216. Limiting the test pattern to 2^24 cells also helps + * keep runtime down. + */ +static void +gmx_testpattern(P7_GMX *gx, int M, int L) +{ + int64_t i; // among other things, i counts thru gx->ncells, which is int64_t + int64_t n,n2; // test pattern counts cells, so n and n2 also have to be int64_t + int k,s; + int maxL = 16777216 / (3 * (M+1)); + int64_t start_row = (L > maxL ? L-maxL+1 : 0); + + /* Write a test pattern, via the dp[i] pointers */ + n = 0; + for (i = start_row; i <= L; i++) + for (k = 0; k <= M; k++) + for (s = 0; s < p7G_NSCELLS; s++) + gx->dp[i][k*p7G_NSCELLS+s] = (float) n++; + + /* Read it back, via the dp[i] pointers */ + n = 0; + for (i = start_row; i <= L; i++) + for (k = 0; k <= M; k++) + for (s = 0; s < p7G_NSCELLS; s++) + { + if ((int) gx->dp[i][k*p7G_NSCELLS+s] != n) esl_fatal("gmx unit test failed: test pattern corrupted"); + n++; + } + + /* Reading it back via the dp_mem vector itself ought to be the same */ + if (gx->allocR == gx->validR && gx->ncells == (int64_t) gx->validR * (int64_t) gx->allocW) + { + n2 = 0; + for (i = start_row * gx->allocW; i < gx->ncells; i++) + for (s = 0; s < p7G_NSCELLS; s++) + { + if (gx->dp_mem[i*p7G_NSCELLS+s] != n2) esl_fatal("gmx unit test failed: test pattern corrupted (2nd test)"); + n2++; + } + /* and the number of cells ought to match too */ + if (n != n2) esl_fatal("gmx unit test failed: unexpected # of cells"); + } +} + + +static void +utest_GrowTo(void) +{ + P7_GMX *gx = NULL; + int M, L; + int64_t nbytes; + + M = 20; L = 20; gx= p7_gmx_Create(M, L); gmx_testpattern(gx, M, L); + M = 40; L = 20; p7_gmx_GrowTo(gx, M, L); gmx_testpattern(gx, M, L); /* grow in M, not L */ + M = 40; L = 40; p7_gmx_GrowTo(gx, M, L); gmx_testpattern(gx, M, L); /* grow in L, not M */ + M = 80; L = 10; p7_gmx_GrowTo(gx, M, L); gmx_testpattern(gx, M, L); /* grow in M, but with enough ncells */ + M = 10; L = 80; p7_gmx_GrowTo(gx, M, L); gmx_testpattern(gx, M, L); /* grow in L, but with enough ncells */ + M = 100; L = 100; p7_gmx_GrowTo(gx, M, L); gmx_testpattern(gx, M, L); /* grow in both L and M */ + + /* The next two calls are carefully constructed to exercise bug #h79. + * GrowTo() must shrink allocW, if M shrinks and L grows enough to force increase in allocR, with sufficient ncells. + */ + M = 179; L = 55; p7_gmx_GrowTo(gx, M, L); gmx_testpattern(gx, M, L); + M = 87; L = 57; p7_gmx_GrowTo(gx, M, L); gmx_testpattern(gx, M, L); + + /* and this exercises iss#176. Only do this on 64-bit systems, and only if a large alloc is possible (we need 8.6G to exercise the bug!) */ + M = 71582; L = 10000; + nbytes = (int64_t) (M+1) * (int64_t) (L+1) * (int64_t) p7G_NSCELLS * (int64_t) sizeof(float); + if ( nbytes < SIZE_MAX / 2) + { + void *p = malloc(nbytes); // check that the allocation succeeds at all + if (p != NULL) + { + free(p); + p7_gmx_GrowTo(gx, M, L); gmx_testpattern(gx, M, L); + } + } + + p7_gmx_Destroy(gx); +} + +static void +utest_Compare(ESL_RANDOMNESS *r, P7_PROFILE *gm, P7_BG *bg, int L, float tolerance) +{ + char *msg = "gmx_Compare unit test failure"; + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) *(L+2)); + P7_GMX *gx1 = p7_gmx_Create(gm->M, L); + P7_GMX *gx2 = p7_gmx_Create(5, 4); + float fsc; + + if (!r || !gm || !dsq || !gx1 || !gx2 ) esl_fatal(msg); + if (esl_rsq_xfIID(r, bg->f, gm->abc->K, L, dsq) != eslOK) esl_fatal(msg); + if (p7_gmx_GrowTo(gx2, gm->M, L) != eslOK) esl_fatal(msg); + if (p7_GForward(dsq, L, gm, gx1, &fsc) != eslOK) esl_fatal(msg); + if (p7_GForward(dsq, L, gm, gx2, &fsc) != eslOK) esl_fatal(msg); + if (p7_gmx_Compare(gx1, gx2, tolerance) != eslOK) esl_fatal(msg); + + p7_gmx_Destroy(gx1); + p7_gmx_Destroy(gx2); + free(dsq); +} + +#endif /*p7GMX_TESTDRIVE*/ +/*------------------- end, unit tests ---------------------------*/ + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7GMX_TESTDRIVE +/* + gcc -o p7_gmx_utest -msse2 -g -Wall -I. -L. -I../easel -L../easel -Dp7GMX_TESTDRIVE p7_gmx.c -lhmmer -leasel -lm + ./p7_gmx_utest + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgrp */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0}, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-t", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, NULL, "floating point comparison tolerance", 0 }, + { "-L", eslARG_INT, "40", NULL, NULL, NULL, NULL, NULL, "length of sampled sequences", 0 }, + { "-M", eslARG_INT, "40", NULL, NULL, NULL, NULL, NULL, "length of sampled test profile", 0 }, + { 0,0,0,0,0,0,0,0,0,0}, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for p7_gmx.c"; + +int +main(int argc, char **argv) +{ + char *msg = "p7_gmx unit test driver failed"; + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + float tol = esl_opt_GetReal (go, "-t"); + + p7_FLogsumInit(); + + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal(msg); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal(msg); + if (p7_bg_SetLength(bg, L) != eslOK) esl_fatal(msg); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL) != eslOK) esl_fatal(msg); + + utest_GrowTo(); + utest_Compare(r, gm, bg, L, tol); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_profile_Destroy(gm); + return eslOK; +} +#endif /*p7GMX_TESTDRIVE*/ +/*------------------ end, test driver ---------------------------*/ + + + diff --git a/bioinformaticsProject/hmmer/src/p7_gmxb.c b/bioinformaticsProject/hmmer/src/p7_gmxb.c new file mode 100644 index 0000000..b8db1f4 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_gmxb.c @@ -0,0 +1,151 @@ +#include "p7_config.h" +#include "easel.h" + +#include "hmmer.h" +#include "p7_gbands.h" +#include "p7_gmxb.h" + +P7_GMXB * +p7_gmxb_Create(P7_GBANDS *bnd) +{ + P7_GMXB *gxb = NULL; + int status; + + ESL_ALLOC(gxb, sizeof(P7_GMXB)); + gxb->dp = NULL; + gxb->xmx = NULL; + gxb->bnd = bnd; + gxb->dalloc = 0; + gxb->xalloc = 0; + + ESL_ALLOC(gxb->dp, sizeof(float) * bnd->ncell * p7G_NSCELLS); /* i.e. *3, for MID (0..2) */ + ESL_ALLOC(gxb->xmx, sizeof(float) * bnd->nrow * p7G_NXCELLS); /* i.e. *5, for ENJBC (0..4) */ + gxb->dalloc = bnd->ncell; + gxb->xalloc = bnd->nrow; + return gxb; + + ERROR: + p7_gmxb_Destroy(gxb); + return NULL; +} + +int +p7_gmxb_Reinit(P7_GMXB *gxb, P7_GBANDS *bnd) +{ + int status; + + if (bnd->ncell > gxb->dalloc) { + ESL_REALLOC(gxb->dp, sizeof(float) * bnd->ncell * p7G_NSCELLS); + gxb->dalloc = bnd->ncell; + } + + if (bnd->nrow > gxb->xalloc) { + ESL_REALLOC(gxb->xmx, sizeof(float) * bnd->nrow * p7G_NXCELLS); + gxb->xalloc = bnd->nrow; + } + + gxb->bnd = bnd; + return eslOK; + + ERROR: + return status; +} + +int +p7_gmxb_Reuse(P7_GMXB *gxb) +{ + gxb->bnd = NULL; + return eslOK; +} + + +void +p7_gmxb_Destroy(P7_GMXB *gxb) +{ + if (gxb) + { + if (gxb->dp) free(gxb->dp); + if (gxb->xmx) free(gxb->xmx); + /* gxb->bnd is a reference ptr copy; memory remains caller's responsibility */ + free(gxb); + } +} + +static void +print_val(FILE *ofp, float val, int width, int precision, int flags) +{ + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); +} + +int +p7_gmxb_Dump(FILE *ofp, P7_GMXB *gxb, int flags) +{ + int g, i, k, x; + int *bnd_ip = gxb->bnd->imem; + int *bnd_kp = gxb->bnd->kmem; + float *dp = gxb->dp; + float *xp = gxb->xmx; + int M = gxb->bnd->M; + int ia, ib; + int ka, kb; + int width = 9; + int precision = 4; + + + /* Header */ + fprintf(ofp, " "); + for (k = 0; k <= M; k++) fprintf(ofp, "%*d ", width, k); + if (! (flags & p7_HIDE_SPECIALS)) fprintf(ofp, "%*s %*s %*s %*s %*s\n", width, "E", width, "N", width, "J", width, "B", width, "C"); + + fprintf(ofp, " "); + for (k = 0; k <= M; k++) fprintf(ofp, "%*.*s ", width, width, "----------"); + if (! (flags & p7_HIDE_SPECIALS)) fprintf(ofp, "%*.*s ", width, width, "----------"); + fprintf(ofp, "\n"); + + i = 0; + for (g = 0; g < gxb->bnd->nseg; g++) + { + ia = *bnd_ip; bnd_ip++; + ib = *bnd_ip; bnd_ip++; + + if (ia > i+1) fprintf(ofp, "...\n\n"); + + for (i = ia; i <= ib; i++) + { + ka = *bnd_kp; bnd_kp++; + kb = *bnd_kp; bnd_kp++; + + /* match cells */ + fprintf(ofp, "%3d M ", i); + for (k = 0; k < ka; k++) fprintf (ofp, "%*s ", width, "....."); + for ( ; k <= kb; k++) print_val(ofp, dp[(k-ka)*p7G_NSCELLS + p7G_M], width, precision, flags); + for ( ; k <= M; k++) fprintf (ofp, "%*s ", width, "....."); + + /* ENJBC specials */ + if (! (flags & p7_HIDE_SPECIALS)) { + for (x = 0; x < p7G_NXCELLS; x++) print_val(ofp, xp[x], width, precision, flags); + } + fprintf(ofp, "\n"); + + /* insert cells */ + fprintf(ofp, "%3d I ", i); + for (k = 0; k < ka; k++) fprintf (ofp, "%*s ", width, "....."); + for ( ; k <= kb; k++) print_val(ofp, dp[(k-ka)*p7G_NSCELLS + p7G_I], width, precision, flags); + for ( ; k <= M; k++) fprintf (ofp, "%*s ", width, "....."); + fprintf(ofp, "\n"); + + /* delete cells */ + fprintf(ofp, "%3d D ", i); + for (k = 0; k < ka; k++) fprintf(ofp, "%*s ", width, "....."); + for ( ; k <= kb; k++) print_val(ofp, dp[(k-ka)*p7G_NSCELLS + p7G_D], width, precision, flags); + for ( ; k <= M; k++) fprintf(ofp, "%*s ", width, "....."); + fprintf(ofp, "\n\n"); + + dp += p7G_NSCELLS * (kb-ka+1); /* skip ahead to next dp sparse "row" */ + xp += p7G_NXCELLS; + } + } + if (i <= gxb->bnd->L) fprintf(ofp, "...\n"); + return eslOK; +} diff --git a/bioinformaticsProject/hmmer/src/p7_gmxb.h b/bioinformaticsProject/hmmer/src/p7_gmxb.h new file mode 100644 index 0000000..3965321 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_gmxb.h @@ -0,0 +1,26 @@ +#ifndef P7_GMXB_INCLUDED +#define P7_GMXB_INCLUDED + +#include "p7_gbands.h" + + + + +typedef struct { + float *dp; + float *xmx; + P7_GBANDS *bnd; /* a reference copy; caller remains responsible for free'ing banding */ + + int64_t dalloc; + int xalloc; +} P7_GMXB; + +extern P7_GMXB *p7_gmxb_Create(P7_GBANDS *bnd); +extern int p7_gmxb_Reinit(P7_GMXB *gxb, P7_GBANDS *bnd); +extern int p7_gmxb_Reuse(P7_GMXB *gxb); +extern void p7_gmxb_Destroy(P7_GMXB *gxb); +extern int p7_gmxb_Dump(FILE *ofp, P7_GMXB *gxb, int flags); + +extern int p7_GForwardBanded(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMXB *gxb, float *opt_sc); + +#endif /*P7_GMXB_INCLUDED*/ diff --git a/bioinformaticsProject/hmmer/src/p7_gmxchk.c b/bioinformaticsProject/hmmer/src/p7_gmxchk.c new file mode 100644 index 0000000..c5fd0df --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_gmxchk.c @@ -0,0 +1,840 @@ +/* P7_GMXCHK implementation + * + * Checkpointed forward/backward dynamic programming matrix. + * Derived from P7_GMX structure; see p7_gmx.[ch] + * + * Contents: + * 1. The object. + * 2. Debugging and testing tools. + * 3. Internal (static) routines. + * 4. Unit tests. + * 5. Test driver. + * 6. References. + */ +#include "p7_config.h" + +#include +#include + +#include "hmmer.h" +#include "p7_gmxchk.h" + + +static int set_row_layout (P7_GMXCHK *gxc, int allocL, int maxR); +static void set_full (P7_GMXCHK *gxc, int L); +static void set_checkpointed(P7_GMXCHK *gxc, int L, int R); +static void set_redlined (P7_GMXCHK *gxc, int L, double minR); + +static double minimum_rows (int L); +static double checkpointed_rows(int L, int R); + + +/***************************************************************** + *= 1. The object + *****************************************************************/ + +/* Function: p7_gmxchk_Create() + * Synopsis: Allocate a new matrix. + * + * Purpose: Allocate a new matrix sufficient to + * hold the checkpointed forward and two-row backwards + * DP matrices for a comparison of a query model of + * length and a target sequence of length . + * + * Try to keep allocation within bytes in + * memory. , for example, means + * a recommended RAM limit of 128 MiB. The allocation can + * exceed this, if the comparison requires it (if so, + * the matrix is fully checkpointed, minimizing the + * allocation); but any subsequent + * call attempting to reuse the matrix will try to + * reallocate it back downwards to the . + * + * Your choice for should take into account how + * many parallel threads there are, each with its own + * matrix allocation. + * + * By design spec, and are $\leq$ 100000. + * + * Args: M - query profile size in consensus positions (<=100000) + * L - target sequence length in residues (<=100000) + * ramlimit - recommended memory limit in bytes + * + * Returns: ptr to new object on success. + * + * Throws: on allocation failure. + */ +P7_GMXCHK * +p7_gmxchk_Create(int M, int L, int64_t ramlimit) +{ + P7_GMXCHK *gxc = NULL; + int maxR; + int r; + int status; + + /* Validity of integer variable ranges may depend on design spec: */ + ESL_DASSERT1( (M <= 100000) ); /* design spec says, model length M <= 100000 */ + ESL_DASSERT1( (L <= 100000) ); /* ... and, seq length L <= 100000 */ + + /* Level 1 allocation: the structure itself */ + ESL_ALLOC(gxc, sizeof(P7_GMXCHK)); + gxc->dp = NULL; + gxc->dp_mem = NULL; + + /* Set allocR, R{abc}, L{abc} fields: row layout, full vs. checkpointed */ + gxc->R0 = 3; /* fwd[0]; bck[prv,cur] */ + gxc->allocW = (M+1) * p7G_NSCELLS + p7GC_NXCELLS; /* M+1 because we're [0..M] in DP columns in generic mx. */ + gxc->ncell_limit = ramlimit / sizeof(float); + maxR = (int) (gxc->ncell_limit / (int64_t) gxc->allocW); + set_row_layout(gxc, L, maxR); + gxc->allocR = gxc->R0 + gxc->Ra + gxc->Rb + gxc->Rc; + gxc->validR = gxc->allocR; + + /* Level 2 allocations: row pointers and dp cell memory */ + gxc->ncells = gxc->allocR * gxc->allocW; + ESL_ALLOC( gxc->dp_mem, sizeof(float) * gxc->ncells); + ESL_ALLOC( gxc->dp, sizeof(float *) * gxc->allocR); + for (r = 0; r < gxc->allocR; r++) + gxc->dp[r] = gxc->dp_mem + (r * gxc->allocW); + +#if eslDEBUGLEVEL > 0 + gxc->do_debugging = FALSE; + gxc->dfp = NULL; + gxc->dbg_width = 9; + gxc->dbg_precision = 4; + gxc->dbg_flags = p7_DEFAULT; +#endif + + gxc->M = 0; + gxc->L = 0; + gxc->R = 0; + return gxc; + + ERROR: + if (gxc) p7_gmxchk_Destroy(gxc); + return NULL; +} + +/* Function: p7_gmxchk_GrowTo() + * Synopsis: Resize checkpointed matrix structure for new comparison. + * + * Purpose: Given an existing checkpointed matrix structure , + * and the dimensions and of a new comparison, + * reallocate and reinitialize . + * + * Essentially the same as free'ing the previous matrix + * and creating a new one -- but trying to minimize + * expensive memory allocation/reallocation calls. + * + * If is redlined (over its recommended allocation) + * and the new problem size can fit in the recommended + * allocation, is reallocated to the smaller size. + * + * Args: gxc - existing checkpointed matrix + * M - new query profile length + * L - new target sequence length + * + * Returns: on success. + * + * Throws: if an allocation fails. The state of is + * now undefined, and the caller should not use it. + */ +int +p7_gmxchk_GrowTo(P7_GMXCHK *gxc, int M, int L) +{ + int W = (M+1)*p7G_NSCELLS + p7GC_NXCELLS; /* actual row width in cells; <= allocW */ + int minR_chk = (int) ceil(minimum_rows(L)) + gxc->R0; /* minimum number of DP rows needed */ + int reset_dp_ptrs = FALSE; + int maxR; + int r; + int status; + + /* Are the current allocations satisfactory ? */ + if (W <= gxc->allocW && gxc->ncells <= gxc->ncell_limit) + { + if (L + gxc->R0 <= gxc->validR) { set_full (gxc, L); return eslOK; } + else if (minR_chk <= gxc->validR) { set_checkpointed(gxc, L, gxc->validR); return eslOK; } + } + + /* Do individual matrix rows need to expand? */ + if ( W > gxc->allocW) + { + gxc->allocW = W; + gxc->validR = (int) (gxc->ncells / (int64_t) gxc->allocW); /* validR must be <= allocR */ + reset_dp_ptrs = TRUE; + } + + /* Does matrix dp_mem need reallocation, either up or down? */ + maxR = (int) (gxc->ncell_limit / (int64_t) gxc->allocW); /* max rows if we use up to the recommended allocation size. */ + if ( (gxc->ncells > gxc->ncell_limit && minR_chk <= maxR) || /* we were redlined, and recommended alloc will work: so downsize */ + minR_chk > gxc->validR) /* not enough memory for needed rows: so upsize */ + { + set_row_layout(gxc, L, maxR); + gxc->validR = gxc->R0 + gxc->Ra + gxc->Rb + gxc->Rc; /* this may be > allocR now; we'll reallocate dp[] next, if so */ + gxc->ncells = gxc->validR * gxc->allocW; + ESL_REALLOC(gxc->dp_mem, sizeof(float) * gxc->ncells); + reset_dp_ptrs = TRUE; + } + else /* current validR will suffice, either full or checkpointed; we still need to calculate a layout */ + { + if (L+gxc->R0 <= gxc->validR) set_full(gxc, L); + else set_checkpointed(gxc, L, gxc->validR); + } + + /* Does the array of row ptrs need reallocation? */ + if (gxc->validR > gxc->allocR) + { + ESL_REALLOC(gxc->dp, sizeof(float *) * gxc->validR); + gxc->allocR = gxc->validR; + reset_dp_ptrs = TRUE; + } + + /* Do the row ptrs need to be reset? */ + if (reset_dp_ptrs) + for (r = 0; r < gxc->validR; r++) + gxc->dp[r] = gxc->dp_mem + (r * gxc->allocW); + + gxc->M = 0; + gxc->L = 0; + gxc->R = 0; + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_gmxchk_Sizeof() + * Synopsis: Returns the size of a checkpointed generic DP matrix, in bytes. + */ +size_t +p7_gmxchk_Sizeof(const P7_GMXCHK *gxc) +{ + size_t n = 0; + + n += sizeof(P7_GMXCHK); + n += gxc->ncells * sizeof(float); /* main DP cells */ + n += gxc->allocR * sizeof(float *); /* row ptrs */ + return n; +} + +/* Function: p7_gmxchk_Reuse() + * Synopsis: Recycle a checkpointed generic DP matrix. + * + * Purpose: Resets the checkpointed generic DP matrix for reuse, + * minimizing free/malloc wastefulness. All information + * specific to the DP problem we just computed is + * reinitialized. All allocations (and information about + * those allocations) are preserved. + * + * Caller will still need to call + * before each new DP, to be sure that the allocations are + * sufficient, and checkpointed rows are laid out. + * + * Returns: on success. + */ +int +p7_gmxchk_Reuse(P7_GMXCHK *gxc) +{ + gxc->M = 0; + gxc->L = 0; + gxc->R = 0; + /* the following aren't strictly necessary, in correct code, because + * GrowTo() will reset them + */ + gxc->R0 = 3; + gxc->Ra = 0; + gxc->Rb = 0; + gxc->Rc = 0; + gxc->La = 0; + gxc->Lb = 0; + gxc->Lc = 0; + + return eslOK; +} + + +/* Function: p7_gmxchk_Destroy() + * Synopsis: Frees a checkpointed generic DP matrix. + * + * Purpose: Free the checkpointed generic DP matrix . + * may be or incompletely allocated. + */ +void +p7_gmxchk_Destroy(P7_GMXCHK *gxc) +{ + if (gxc) + { + if (gxc->dp_mem) free(gxc->dp_mem); + if (gxc->dp) free(gxc->dp); + free(gxc); + } +} +/*-------------- end, P7_GMXCHK object --------------------------*/ + + + + +/***************************************************************** + *= 2. Debugging and testing tools + *****************************************************************/ +#if eslDEBUGLEVEL > 0 + +/* Function: p7_gmxchk_Dump() + * Synopsis: Dump a checkpointed DP matrix to a stream. + * + * Purpose: Dump checkpointed DP Forward matrix to stream + * for diagnostics. + * + * Caller first calls to create + * the checkpointed matrix ; then + * to dump all or part of it. + * + * control some optional output behavior, as follows: + * | | don't show scores for states | + * | | is in probs; show as log probs | + * Or, passing means no flags. + * + * Returns: on success. + */ +int +p7_gmxchk_Dump(FILE *ofp, P7_GMXCHK *gxc, int flags) +{ + int kstart = 0; /* kstart,kend: make it easy to convert to a DumpWindow() sometime */ + int kend = gxc->M; + int i, r, b, w; + int status; + + p7_gmxchk_DumpHeader(ofp, gxc, kstart, kend, flags); + + for (i = 0, r = gxc->R0-1; i <= gxc->La; i++, r++) + if ((status = p7_gmxchk_DumpRow(ofp, gxc, gxc->dp[r], i, kstart, kend, flags)) != eslOK) return status; + + for (b = gxc->Rb + gxc->Rc, w = gxc->Lb; i <= gxc->L; i++) + { + if (!(--w)) { + w = b--; + if ((status = p7_gmxchk_DumpRow(ofp, gxc, gxc->dp[r], i, kstart, kend, flags)) != eslOK) return status; + r++; + } + } + return eslOK; +} + +/* Function: p7_gmxchk_SetDumpMode() + * Synopsis: Set matrix to be dumped one row at a time in Backwards pass. + * + * Purpose: Set matrix so that Backwards pass will dump it one + * row at a time, in reverse order. (The Backwards pass only + * keeps two rows of the Backward matrix in memory at any + * time, so you can't calculate first then dump the whole thing, + * as you can with the Forward matrix.) + * + * Caller first calls , then calls the + * calculation. + * will then dump the header and each row to . + * + * If is , dumping is turned off. + * + * control some optional output behavior, as follows: + * | | don't show scores for states | + * | | is in probs; show as log probs | + * Or, passing means no flags. + * If is , has no effect. + * + * Args: gxc - checkpointed dp matrix we want to be dumping + * ofp - open stream for diagnostics, to set; + * or , to unset dumping. + * flags - see above. + * + * Returns: on success. + */ +int +p7_gmxchk_SetDumpMode(P7_GMXCHK *gxc, FILE *ofp, int flags) +{ + if (ofp) { + gxc->do_debugging = TRUE; + gxc->dfp = ofp; + gxc->dbg_flags = flags; + } else { + gxc->do_debugging = FALSE; + gxc->dfp = NULL; + gxc->dbg_flags = 0; + } + return eslOK; +} + + +/* Function: p7_gmxchk_DumpHeader() + * Synopsis: Dump the header for a dumped checkpointed DP mx to stream. + * + * Purpose: Write the header (matrix column labels) for checkpointed + * DP matrix to stream for diagnostics. + * + * This either gets called by for a Forward + * matrix, or by when debugging + * and about to start dumping a backwards matrix one row at a + * time. + * + * control some optional output behavior, as follows: + * | | don't show scores for states | + * | | is in probs; show as log probs | + * + * Args: ofp - stream we're dumping diagnostics to (typically stdout) + * gxc - checkpointed matrix we're dumping + * kstart - start on profile columns 0..M (typically 0) + * kend - end on profile columns 0..M (typically M) + * flags - see above (typically ) + * + * Returns: on success. + */ +int +p7_gmxchk_DumpHeader(FILE *ofp, P7_GMXCHK *gxc, int kstart, int kend, int flags) +{ + int width = gxc->dbg_width; + int k,x; + + fprintf(ofp, " "); + for (k = kstart; k <= kend; k++) fprintf(ofp, "%*d ", width, k); + if (! (flags & p7_HIDE_SPECIALS)) fprintf(ofp, "%*s %*s %*s %*s %*s %*s %*s\n", width, "E", width, "N", width, "JJ", width, "J", width, "B", width, "CC", width, "C"); + fprintf(ofp, " "); + for (k = kstart; k <= kend; k++) fprintf(ofp, "%*.*s ", width, width, "----------"); + if (! (flags & p7_HIDE_SPECIALS)) + for (x = 0; x < 5; x++) fprintf(ofp, "%*.*s ", width, width, "----------"); + fprintf(ofp, "\n"); + return eslOK; +} + + +/* Function: p7_gmxchk_DumpRow() + * Synopsis: Dump one row of a checkpointed DP matrix for diagnostics. + * + * Purpose: Dump the row that points to, from checkpointed + * matrix , to stream for debugging/diagnostics. + * Label the row by position (typically 0..L+1) in + * the target. + * + * The meaning of is the same as in . + * + * Args: ofp - stream to dump output to + * gxc - checkpointed DP matrix + * dpc - ptr to DP matrix row: gxc->dp[r] or gxc->dp[0|1] + * i - position on target sequence (0,1..L,L+1) + * kstart - start of dump window on query profile coords: 1..gxc->M + * kend - end of dump window on query profile coords: 1..gxc->M + * flags - option flags passed in from + * + * Returns: on success. + */ +int +p7_gmxchk_DumpRow(FILE *ofp, P7_GMXCHK *gxc, float *dpc, int i, int kstart, int kend, int flags) +{ + int width = gxc->dbg_width; + int precision = gxc->dbg_precision; + float val; + int k, x; + int xoffset = (gxc->M+1)*p7G_NSCELLS; /* [ENJBC] cells start at this offset on each row. */ + + fprintf(ofp, "%3d M ", i); + for (k = kstart; k <= kend; k++) + { + val = dpc[k * p7G_NSCELLS + p7G_M]; + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); + } + + if (! (flags & p7_HIDE_SPECIALS)) + { + for (x = 0; x < p7GC_NXCELLS; x++) + { + val = dpc[xoffset + x]; + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); + } + } + fprintf(ofp, "\n"); + + fprintf(ofp, "%3d I ", i); + for (k = kstart; k <= kend; k++) + { + val = dpc[k * p7G_NSCELLS + p7G_I]; + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); + } + fprintf(ofp, "\n"); + + fprintf(ofp, "%3d D ", i); + for (k = kstart; k <= kend; k++) + { + val = dpc[k * p7G_NSCELLS + p7G_D]; + if (flags & p7_SHOW_LOG) val = log(val); + fprintf(ofp, "%*.*f ", width, precision, val); + } + fprintf(ofp, "\n\n"); + return eslOK; +} +#endif // eslDEBUGLEVEL +/*------------- end, debugging and testing tools ----------------*/ + + + +/***************************************************************** + * 3. Internal routines + *****************************************************************/ + +/* set_row_layout() + * + * Determines the size of the a,b,c regions ("all", "between", + * "checkpointed") of rows in the DP matrix. + * + * Caller has already set allocW> and R0>. allocW>, + * the row width, is something $\geq$ +1. R0> is the number + * of extra rows needed: here 3, (two bck[cur,prv], one boundary + * fwd[0]). + * + * Upon return, we've set the R{0abc} and L{abc} fields in the + * structure. + * + * Design spec says <= 100000, <= 100000. + * + * is the maximum number of rows the caller wants to use. + * We will exceed this for one comparison if absolutely necessary, but + * the next <_Reuse()> call will bring the allocation + * back down. + * + * So there's three possibilities: + * 1. A full matrix fits into our recommended max memory use. + * 2. A checkpointed matrix fits into our recommended memory. + * Make as much of the matrix uncheckpointed as we can, + * using every row in maxR. + * 3. We can't satisfy the recommended max memory, even fully + * checkpointed. Make a fully checkpointed matrix, in which + * R0+Ra+Rb+Rc will exceed maxR, and caller will have to + * allocate ("redlined"). + */ +static int +set_row_layout(P7_GMXCHK *gxc, int allocL, int maxR) +{ + double Rbc = minimum_rows(allocL); + int minR_chk = gxc->R0 + (int) ceil(Rbc); /* min # rows we need for checkpointing */ + int minR_all = gxc->R0 + allocL; /* min # rows we need for full matrix */ + + if (minR_all <= maxR) set_full (gxc, allocL); + else if (minR_chk <= maxR) set_checkpointed(gxc, allocL, maxR); + else set_redlined (gxc, allocL, Rbc); + + return eslOK; +} + +/* A "full" matrix is easy: Ra = La = L, using Ra+R0 <= maxR rows total. + */ +static void +set_full(P7_GMXCHK *gxc, int L) +{ + gxc->Ra = L; + gxc->Rb = 0; + gxc->Rc = 0; + gxc->La = L; + gxc->Lb = 0; + gxc->Lc = 0; +} + +/* If we can fit a checkpointed matrix into maxR rows, + * then the trick is to use all maxR rows, and make the + * "a" region (all rows kept) as large as possible, to + * minimize computation. This means solving a little + * quadratic equation for Rb+Rc given L and maxR: see + * for that solution. + */ +static void +set_checkpointed(P7_GMXCHK *gxc, int L, int R) +{ + double Rbc = checkpointed_rows(L, R-gxc->R0); + double Rc = floor(Rbc); + + gxc->Rc = (int) Rc; + gxc->Rb = (Rbc > Rc ? 1 : 0); + gxc->Ra = R - gxc->Rb - gxc->Rc - gxc->R0; + gxc->Lc = ((gxc->Rc + 2) * (gxc->Rc + 1)) / 2 - 1; + gxc->La = gxc->Ra; + gxc->Lb = L - gxc->La - gxc->Lc; +} + + +/* If we can't fit in maxR rows, then we checkpoint + * the entire matrix; R0+Ra+Rb+Rc > maxR. + */ +static void +set_redlined(P7_GMXCHK *gxc, int L, double minR) +{ + double Rc = floor(minR); + + gxc->Rc = (int) Rc; + gxc->Rb = (minR > Rc ? 1 : 0); + gxc->Ra = 0; + gxc->Lc = ((gxc->Rc + 2) * (gxc->Rc + 1)) / 2 - 1; + gxc->La = 0; + gxc->Lb = L - gxc->La - gxc->Lc; +} + +/* minimum_rows() + * + * Calculate the minimum number of rows needed to checkpoint a + * forward matrix for a sequence of length L, exclusive of + * other constant row overhead (R0: two backwards rows, fwd[0] + * initial row). + * + * This value is a double; if it has a fraction, a partial checkpoint + * block ("b" region) is needed, as in this typical code: + * Rbc = minimum_rows(L); + * Rc = floor(Rbc); + * Rb = (Rbc > Rc ? 1 : 0); + * minR = (int) ceil(Rbc); // or, Rc+Rb + */ +static double +minimum_rows(int L) +{ + return (sqrt(9. + 8. * (double) L) - 3.) / 2.; +} + +/* checkpointed_rows() + * + * Given L and maxR, solve for the number of checkpointed + * rows (Rb+Rc) we need. The value is a double; if it has + * a fractional part, then a partial checkpoint block is + * needed, Rb==1. + * + * This equation is obtained by solving + * L = Ra + (Rbc +2)(Rbc+1)/2 - 1 + * for Rbc (i.e. Rb+Rc) using the quadratic equation, + * after substitution Ra = (maxR - Rbc - R0) to get + * Rbc in terms of L,maxR. + */ +static double +checkpointed_rows(int L, int R) +{ + return (sqrt(1. + 8. * (double) (L - R)) - 1.) / 2.; +} +/*----------------- end, internals ------------------------------*/ + + + +/***************************************************************** + * 4. Unit tests. + *****************************************************************/ +#ifdef p7GMXCHK_TESTDRIVE + +/* Use the "idiomatic" traversal patterns for Forward and Backward to + * write a test pattern into a DP matrix on the Forward pass, then + * read it back in the Backwards pass. The test pattern numbers each + * cell 0..ntot-1, for total cells used in the DP matrix. + * + * This test pattern can catch a variety of bad layout issues in + * p7_gmxchk_GrowTo() and p7_gmxchk_Create(), and also serves as + * a partial example of the "idiomatic traversal patterns" for + * a checkpointed data structure. + */ +static void +utest_testpattern(P7_GMXCHK *gxc, int M, int L) +{ + char msg[] = "testpattern failed"; + int n; + int ntot; + int b, w, i, k, s, r; + float *dpc; + + if (L != gxc->La + gxc->Lb + gxc->Lc) esl_fatal(msg); + + /* The test pattern will count cells in the checkpointed matrix, + * including bck rows 0,1 and row 0/col 0 boundary conditions + */ + ntot = (gxc->R0+gxc->Ra+gxc->Rb+gxc->Rc) * ( (M+1)*p7G_NSCELLS + p7GC_NXCELLS); + n = 0; + + /* Write a test pattern, via idiomatic forward traversal */ + /* The Backwards and initialization rows 0..2 */ + for (r = 0; r < gxc->R0; r++) + { + dpc = gxc->dp[r]; + for (k = 0; k <= M; k++) + for (s = 0; s < p7G_NSCELLS; s++) { *dpc = n++; dpc++; } + for (s = 0; s < p7GC_NXCELLS; s++) { *dpc = n++; dpc++; } + } + + /* Phase one: "a" region; uncheckpointed rows of the matrix */ + for (i = 1, gxc->R = 0; i <= gxc->La; i++) + { + dpc = gxc->dp[gxc->R0+gxc->R]; gxc->R++; + for (k = 0; k <= M; k++) + for (s = 0; s < p7G_NSCELLS; s++) { *dpc = n++; dpc++; } + for (s = 0; s < p7GC_NXCELLS; s++) { *dpc = n++; dpc++; } + } + if (gxc->R != gxc->Ra) esl_fatal(msg); + + /* Phase two: "b" and "c" regions: partially and fully checkpointed */ + for (b = gxc->Rb + gxc->Rc, w = (gxc->Rb ? gxc->Lb : gxc->Rc+1); i <= L; i++) + { + if (! (--w)) + { + dpc = gxc->dp[gxc->R0+gxc->R]; gxc->R++; + w = b--; + + /* A checkpointed row: write test pattern */ + for (k = 0; k <= M; k++) + for (s = 0; s < p7G_NSCELLS; s++) { *dpc = n++; dpc++; } + for (s = 0; s < p7GC_NXCELLS; s++) { *dpc = n++; dpc++; } + } + } + if (i != L+1) esl_fatal(msg); + if (gxc->R != gxc->Ra+gxc->Rb+gxc->Rc) esl_fatal(msg); + if (n != ntot) esl_fatal(msg); + + /* Now read the test pattern back, using idiomatic Backward traversal */ + n = ntot; + for (i = L, b = 1; b <= gxc->Rb + gxc->Rc; b++) + { + w = (b <= gxc->Rc ? b+1 : gxc->Lb); + + /* The current row ends a block and is checkpointed: + * read backwards in both xmx and the checkpointed row + */ + gxc->R--; + dpc = gxc->dp[gxc->R0+gxc->R] + (M+1)*p7G_NSCELLS + p7GC_NXCELLS - 1; /* dpc now on last cell in row */ + for (s = p7GC_NXCELLS-1; s >= 0; s--) { if (*dpc != --n) esl_fatal(msg); dpc--; } + for (k = M; k >= 0; k--) + for (s = p7G_NSCELLS-1; s >= 0; s--) { if (*dpc != --n) esl_fatal(msg); dpc--; } + + /* in most backwards traversals, now we'd compute + * Forwards rows from i2=i-w+1..i-1... + */ + + /* and then we'd compute a Backwards pass from rows + * i-1 up to i-w+1. + */ + + i -= w; /* a checkpointed block of width is done. */ + } + if (i != gxc->La) esl_fatal(msg); + + /* The "a" region of the backwards traversal: every row is saved. */ + for ( ; i >= 1; i--) + { + gxc->R--; + dpc = gxc->dp[gxc->R0+gxc->R] + (M+1)*p7G_NSCELLS + p7GC_NXCELLS - 1; /* dpc now on last cell in row */ + for (s = p7GC_NXCELLS-1; s >= 0; s--) { if (*dpc != --n) esl_fatal(msg); dpc--; } + for (k = M; k >= 0; k--) + for (s = p7G_NSCELLS-1; s >= 0; s--) { if (*dpc != --n) esl_fatal(msg); dpc--; } + } + + /* The R0 rows, boundary condition. */ + for (r = gxc->R0-1; r >= 0; r--) + { + dpc = gxc->dp[r] + (M+1)*p7G_NSCELLS + p7GC_NXCELLS - 1; /* dpc now on last cell in row */ + for (s = p7GC_NXCELLS-1; s >= 0; s--) { if (*dpc != --n) esl_fatal(msg); dpc--; } + for (k = M; k >= 0; k--) + for (s = p7G_NSCELLS-1; s >= 0; s--) { if (*dpc != --n) esl_fatal(msg); dpc--; } + } +} + +/* utest_GrowTo() + * + * Exercises a variety of matrix expansion/contraction, + * writing the test pattern each time. + */ +static void +utest_GrowTo(void) +{ + int M, L; + P7_GMXCHK *gxc = NULL; + + M = 20; L = 20; gxc = p7_gmxchk_Create(M, L, 0); utest_testpattern(gxc, M, L); + M = 40; L = 20; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + M = 40; L = 40; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + M = 80; L = 10; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + M = 10; L = 80; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + M = 100; L = 100; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + p7_gmxchk_Destroy(gxc); + + M = 20; L = 20; gxc = p7_gmxchk_Create(M, L, ESL_MBYTES(32)); utest_testpattern(gxc, M, L); + M = 40; L = 20; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + M = 40; L = 40; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + M = 80; L = 10; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + M = 10; L = 80; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + M = 100; L = 100; p7_gmxchk_GrowTo(gxc, M, L); utest_testpattern(gxc, M, L); + p7_gmxchk_Destroy(gxc); +} + +#endif /*p7GMXCHK_TESTDRIVE*/ +/*---------------------- end, unit tests ------------------------*/ + +/***************************************************************** + * 5. Test driver. + *****************************************************************/ +#ifdef p7GMXCHK_TESTDRIVE +/* + gcc -o p7_gmxchk_utest -msse2 -g -Wall -I. -L. -I../easel -L../easel -Dp7GMXCHK_TESTDRIVE p7_gmxchk.c -lhmmer -leasel -lm + ./p7_gmxchk_utest + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" + +#include "hmmer.h" +#include "p7_gmxchk.h" + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgrp */ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0}, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "40", NULL, NULL, NULL, NULL, NULL, "length of sampled sequences", 0 }, + { "-M", eslARG_INT, "40", NULL, NULL, NULL, NULL, NULL, "length of sampled test profile", 0 }, + { 0,0,0,0,0,0,0,0,0,0}, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for p7_gmxchk.c"; + +int +main(int argc, char **argv) +{ + char *msg = "p7_gmxchk unit test driver failed"; + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + + p7_FLogsumInit(); + + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal(msg); + if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal(msg); + if (p7_bg_SetLength(bg, L) != eslOK) esl_fatal(msg); + if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal(msg); + + utest_GrowTo(); + + esl_getopts_Destroy(go); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_profile_Destroy(gm); + return eslOK; +} +#endif /*p7GMXCHK_TESTDRIVE*/ +/*---------------------- end, test driver ----------------------*/ + +/* + * References: + * SRE J8/109-112, Oct 2011: implementation plan. + */ + + diff --git a/bioinformaticsProject/hmmer/src/p7_gmxchk.h b/bioinformaticsProject/hmmer/src/p7_gmxchk.h new file mode 100644 index 0000000..e810181 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_gmxchk.h @@ -0,0 +1,182 @@ +/* P7_GMXCHK implementation + * + * Checkpointed forward/backward dynamic programming matrix. + * + * Contents: + * 1. Exegesis: layout of rows in a checkpointed matrix. + * 2. Exegesis: layout of cells in a single DP row. + * 3. The P7_GMXCHK data structure. + * 4. Declarations for the p7_gmxchk API + * 5. References. + */ +#ifndef P7_GMXCHK_INCLUDED +#define P7_GMXCHK_INCLUDED + +#include "p7_config.h" + +/***************************************************************** + * 1. Exegesis: layout of rows in a checkpointed matrix. + *****************************************************************/ + +/* + * One P7_GMXCHK data structure is used for both Forward and Backward + * computations on a target sequence. The Forward calculation is + * checkpointed. The Backward calculation is linear memory in two + * rows. The end result is a Forward score and a posterior-decoded set + * of DP bands. + * + * In the diagram below, showing the row layout for the main matrix (MDI states): + * O = a checkpointed row; + * x = row that isn't checkpointed; + * * = boundary row 0, plus row(s) used for Backwards + * + * i = index of residues in a target sequence of length L + * r = index of rows in the DP matrix, R0+R in total + * + * |------------------------- L -------------------------------| + * |-----La----| |-Lb-| |-------------- Lc --------------------| + * i = . . 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 + * * * * O O O O O x O x x x x O x x x O x x O x O + * r = 0 1 2 3 4 5 6 7 . 8 . . . . 9 . . . 10 . . 11 . 12 + * |--R0-| |-----Ra----| |-Rb-| |-------------- Rc --------------------| + * |------------------------- R -------------------------------| + * + * There are four regions in the rows: + * region 0 (R0) : boundary row 0, and Backwards' two rows + * region a ("all"; Ra) : all rows are kept (no checkpointing) + * region b ("between"; Rb) : partially checkpointed + * region c ("checkpointed; Rc) : fully checkpointed + * + * In region a, La = Rb + * In region b, Rb = 0|1, Lb = 0..Rc+1 + * more specificially: (Rb=0 && Lb=0) || (Rb=1 && 1 <= Lb <= Rc+1) + * In region c, Lc = {{Rc+2} \choose {2}}-1 = (Rc+2)(Rc+1)/2 - 1 + * + * In this example: + * R0 = 3 + * Ra = 5 La = 5 + * Rb = 1 La = 2 + * Rc = 4 Lc = 14 + * + * In checkpointed regions, we refer to "blocks", often indexed + * . There are Rb+Rc blocks, and each block ends in a checkpointed + * row. The "width" of each block, often called , decrements from + * Rc+1 down to 2 in the fully checkpointed region. + * + * The reason to mix checkpointing and non-checkpointing is that we + * use as many rows as we can, given a set memory ceiling, to minimize + * computation time. + * + * The special states (ENJBC) are kept in xmx for all rows 1..L, just + * as in a normal (uncheckpointed) P7_GMX. + */ + + + +/***************************************************************** + * 2. Exegesis: layout of rows in a checkpointed matrix. + *****************************************************************/ + +/* Layout of memory in a single DP row: + * + * dpc: [M I D] [M I D] [M I D] ... [M I D] [E N JJ J B CC C] + * k: |-- 0 --| |-- 1 --| |-- 2 --| ... |-- M --| + * |------------- (M+1)*p7G_NSCELLS -----------| |---- p7GC_NXCELLS ---| + * + * Row dp[r] = gxc->dp_mem+(r*allocW) = dpc + * Main state s={MID} at node k={0..M}: dpc[k*p7G_NSCELLS+s] + * Special state s={ENJBC,CC,JJ}: dpc[(M+1)*p7G_NSCELLS+s] + * + * We need to store "JJ" and "CC" states -- the partial path + * probabilities from C(i-1)->C and J(i-1)->J -- because the + * checkpointed implementation does not necessarily have access to + * values on row i-1 when it does posterior decoding. + * from is replaced by in , and + * from 0..4 {ENJBC} with from + * 0..6 {E,N,JJ,J,B,CC,C}. + */ + + +/***************************************************************** + * 3. The P7_GMXCHK data structure. + *****************************************************************/ + +/* p7GC_NXCELLS and p7gc_xcells_e + * + * For main states we share p7G_NSCELLS and p7G_{MID} with P7_GMX. + * For special states, we replace with an array + * that inserts CC and JJ cells, which the checkpointed implementation + * needs. (See note 2 above.) Note that the order of the p7GC_{X} + * special states is not the same as p7G_{X}, so they should not be + * mixed. + */ +enum p7gc_xcells_e { + p7GC_E = 0, + p7GC_N = 1, + p7GC_JJ = 2, + p7GC_J = 3, + p7GC_B = 4, + p7GC_CC = 5, + p7GC_C = 6 +}; +#define p7GC_NXCELLS 7 + + +typedef struct p7_gmxchk_s { + int M; /* actual query model dimension of current comparison */ + int L; /* actual target sequence dimension of current comparison */ + int R; /* actual # rows in current fwd matrix (<= Ra+Rb+Rc), excluding R0 */ + + /* Checkpointed layout, mapping rows 1..R to residues 1..L: */ + int R0; /* # of extra rows: one for fwd[0] boundary, two for bck[prv,cur] */ + int Ra; /* # of rows used in "all" region (uncheckpointed) */ + int Rb; /* # of rows in "between" region (one incomplete checkpoint segment) */ + int Rc; /* # of rows in "checkpointed" region */ + int La; /* residues 1..La are in "all" region */ + int Lb; /* residues La+1..La+Lb are in "between" region */ + int Lc; /* residues La+Lb+1..La+Lb+Lc=L are in "checkpointed" region */ + + float *dp_mem; /* raw memory allocation, that dp[] rows point into */ + int allocW; /* allocated width/row, in cells ((M+1)*p7G_NSCELLS+p7G_NXCELLS) <= allocW) */ + int64_t ncells; /* total # of alloc'ed cells: ncells >= (validR)(allocW) */ + int64_t ncell_limit; /* recommended RAM limit on dp_mem; can temporarily exceed it */ + + float **dp; /* DP row pointers, dp[0..R0-1,R0..R0+R-1]. See note above for layout. */ + int allocR; /* allocated size of dp[]. R+R0 <= R0+Ra+Rb+Rc <= validR <= allocR */ + int validR; /* # of rows pointing at DP memory; may be < allocR after a GrowTo() call */ + + /* Info for debugging mode (conditionally compiled) */ +#if eslDEBUGLEVEL > 0 + int do_debugging; /* TRUE if we're in debugging mode */ + FILE *dfp; /* output stream for debugging diagnostics */ + int dbg_width; /* cell values in diagnostic output are fprintf'ed */ + int dbg_precision; /* dfp, "%*.*f", dbg_width, dbg_precision, val */ + int dbg_flags; /* p7_DEFAULT | p7_HIDE_SPECIALS | p7_SHOW_LOG */ +#endif +} P7_GMXCHK; + +#define MMR(p, k) ((p)[(k)* p7G_NSCELLS + p7G_M]) +#define IMR(p, k) ((p)[(k)* p7G_NSCELLS + p7G_I]) +#define DMR(p, k) ((p)[(k)* p7G_NSCELLS + p7G_D]) +#define XMR(p, s) ((p)[(M+1)* p7G_NSCELLS + s]) + +/***************************************************************** + * 4. Declarations of the p7_gmxchk API + *****************************************************************/ + +extern P7_GMXCHK *p7_gmxchk_Create (int M, int L, int64_t ramlimit); +extern int p7_gmxchk_GrowTo (P7_GMXCHK *gxc, int M, int L); +extern size_t p7_gmxchk_Sizeof (const P7_GMXCHK *gxc); +extern int p7_gmxchk_Reuse (P7_GMXCHK *gxc); +extern void p7_gmxchk_Destroy(P7_GMXCHK *gxc); + +extern int p7_gmxchk_Dump(FILE *ofp, P7_GMXCHK *gxc, int flags); +extern int p7_gmxchk_SetDumpMode(P7_GMXCHK *gxc, FILE *ofp, int flags); +extern int p7_gmxchk_DumpHeader(FILE *ofp, P7_GMXCHK *gxc, int kstart, int kend, int flags); +extern int p7_gmxchk_DumpRow(FILE *ofp, P7_GMXCHK *gxc, float *dpc, int i, int kstart, int kend, int flags); + +/* + * References: + * SRE:J8/109-112, Oct 2011: Implementation plan + */ +#endif /*P7_GMXCHK_INCLUDED*/ diff --git a/bioinformaticsProject/hmmer/src/p7_hit.c b/bioinformaticsProject/hmmer/src/p7_hit.c new file mode 100644 index 0000000..3d85905 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_hit.c @@ -0,0 +1,1060 @@ +/* Functions to manipulate P7_HIT objects. + * Contents: 1) Serialization and Deserialization routines + * 2) Unit Tests + * 3) Test Driver + * NPC 2/13/19 [The soothing whir of the air filter] + */ +#include "p7_config.h" + +#include +#include +#include +#include +#include + +#include "easel.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Functions to manipulate P7_HIT objects + *****************************************************************/ + + +/* Function: p7_hit_Create_empty + * Synopsis: Creates an empty P7_HIT object + * + * Purpose: Creates an empty P7_HIT object (all internal values 0, all internal pointers NULL). + * This is mostly useful as a way of creating a structure that a P7_HIT can be deserialized into + * + * Inputs: none + * + * Returns: The created object + * + * Throws: Returns NULL if unable to allocate memory + */ +extern P7_HIT *p7_hit_Create_empty(){ + int status; + + P7_HIT *the_hit; + + ESL_ALLOC(the_hit, sizeof(P7_HIT)); + + the_hit->name = NULL; + the_hit->acc = NULL; + the_hit->desc = NULL; + the_hit->window_length = 0; + the_hit->sortkey = 0.0; + the_hit->score = 0.0; + the_hit->pre_score = 0.0; + the_hit->sum_score = 0.0; + the_hit->lnP = 0.0; + the_hit->pre_lnP = 0.0; + the_hit->sum_lnP = 0.0; + the_hit->nexpected = 0.0; + the_hit->nregions = 0; + the_hit->nclustered = 0; + the_hit->noverlaps = 0; + the_hit->nenvelopes = 0; + the_hit->ndom = 0; + the_hit->flags = 0; + the_hit->nreported = 0; + the_hit->nincluded = 0; + the_hit->best_domain = 0; + the_hit->seqidx = 0; + the_hit->subseq_start = 0; + the_hit->dcl = NULL; + the_hit->offset = 0; + + return the_hit; +ERROR: + return NULL; +} + +/* Function: p7_hit_Destroy + * Synopsis: Frees all of the memory in a P7_HIT object + * + * Purpose: Frees all of the memory in a P7_HIT object, including memory in its internal data structures + * + * Inputs: obj: A pointer to the object to be destroyed + * + * Returns: Nothing + * + * Throws: Nothing + */ + +extern void p7_hit_Destroy(P7_HIT *the_hit){ + if (the_hit == NULL){ + return; + } + + if(the_hit->name != NULL){ + free(the_hit->name); + } + + if(the_hit->acc != NULL){ + free(the_hit->acc); + } + + if(the_hit->desc != NULL){ + free(the_hit->desc); + } + + + + // need to do this manually rather than calling p7_domain_Destroy because we have an array of hits as one record + if(the_hit->dcl !=NULL){ + for(int i = 0; i < the_hit->ndom; i++){ + if(the_hit->dcl[i].scores_per_pos != NULL){ + free(the_hit->dcl[i].scores_per_pos); + } + if(the_hit->dcl[i].ad != NULL){ + p7_alidisplay_Destroy(the_hit->dcl[i].ad); + } + } + } + + if(the_hit->dcl != NULL){ + free(the_hit->dcl); + } + + free(the_hit); + + return; +} + + +/* Function: p7_HIT_Serialize + * Synopsis: Serializes a P7_HIT object into a stream of bytes + *. that can be reliably transmitted over internet sockets + * + * Purpose: Converts an architecture-dependent P7_HIT object into a contiguous stream + * of bytes with each field of the data structure in network byte order for transmission + * over sockets. The serialized byte stream may be part of a larger allocated buffer. + * If the provided buffer is NULL, allocates a new buffer large enough for the serialized object + * If the provided buffer is not large enough to hold the serialized object and its existing data, re-allocates + * a larger buffer + * + * Inputs: obj: A pointer to the P7_HIT object to be serialized + * buf: Handle to the buffer that the object should be serialized into. If *buf is NULL, + * a new buffer will be allocated. buf == NULL is not allowed. + * n: Offset (in bytes) from the start of the buffer to where the serialized object should start. + * nalloc: size (in bytes) of the buffer passed in buf + * + *Returns: On success: returns eslOK, sets *buf to the base of the buffer containing the object + * if allocation or re-allocation was requried, sets *n to the offset from the start of the buffer + * to the first position after the serialized object and sets *nalloc to the new size of the buffer + * if allocation or re-allocation was required. + * + * Throws: Returns eslEMEM if unable to allocate or re-allocate memory. Returns eslEINVAL if obj == NULL, n == NULL, buf == NULL, + *. or if *buf = NULL and either *n != 0 or *nalloc != 0. Returns eslFAIL if a consistency check fails. + */ + +// base size is 1 int (serialized size) + 1 byte (presence flags) longer than the sum of the fixed-width elements in the structure +#define SER_BASE_SIZE (10 * sizeof(int)) + (4 * sizeof(double)) + (4 * sizeof(float)) + sizeof(uint32_t) + (2 * sizeof(int64_t)) + 1 +#define ACC_PRESENT (1 << 0) +#define DESC_PRESENT (1 << 1) + +extern int p7_hit_Serialize(const P7_HIT *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc){ + + int status; // error variable used by ESL_ALLOC + int name_size, acc_size, desc_size; + uint32_t ser_size; // size of the structure when serialized + uint8_t *ptr; // current position within the buffer + uint32_t network_32bit; // hold 32-bit fields after conversion to network order + uint64_t network_64bit; // hold 64-bit fields after conversion to network order + uint8_t presence_flags = 0; + + + // check to make sure we were passed a valid pointer + if(obj == NULL || buf == NULL || n == NULL || ((*buf == NULL) && ((*n != 0) || (*nalloc != 0)))) { + // no object to serialize, nowhere to put a buffer pointer, or NULL buffer and non-zero offset or buffer size + return(eslEINVAL); + } + + ser_size = SER_BASE_SIZE; + + // name string is mandatory, don't need to check for it + name_size = strlen(obj->name) +1; + ser_size += name_size; + + if(obj->acc != NULL){ + acc_size = strlen(obj->acc) + 1; + ser_size += acc_size; + presence_flags += ACC_PRESENT; + } + else{ + acc_size = 0; + } + + if(obj->desc != NULL){ + desc_size = strlen(obj->desc) + 1; + ser_size += desc_size; + presence_flags += DESC_PRESENT; + } + else{ + desc_size = 0; + } + + // Note: dcl array isn't considered part of the base object for purposes of serializing. Each of its P7_DOMAIN objects + // are serialized as separate objects after the serialized base object + + // Now that we know how big the serialized data structure will be, determine if we have enough buffer space to hold it + if(*buf == NULL){ // have no buffer, so allocate one + ESL_ALLOC(*buf, ser_size); + *nalloc = ser_size; + } + + if((*n + ser_size) > *nalloc){ //have a buffer, but it's not big enough + ESL_REALLOC(*buf, (*n + ser_size)); + *nalloc = *n + ser_size; + } + + ptr = *buf + *n; // pointer to start of region we'll serialize to + + // Field 1: serialized size + network_32bit = esl_hton32(ser_size); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 2: window_length + network_32bit = esl_hton32(obj->window_length); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 3: sortkey + network_64bit = esl_hton64(*((uint64_t *) &(obj->sortkey))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->sortkey)); + ptr += sizeof(obj->sortkey); + + // Field 4: score + network_32bit = esl_hton32(*((uint32_t *) &(obj->score))); + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->score)); + ptr += sizeof(obj->score); + + // Field 5: pre_score + network_32bit = esl_hton32(*((uint32_t *) &(obj->pre_score))); + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->pre_score)); + ptr += sizeof(obj->pre_score); + + // Field 6: sum_score + network_32bit = esl_hton32(*((uint32_t *) &(obj->sum_score))); + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->sum_score)); + ptr += sizeof(obj->sum_score); + + // Field 7: lnP + network_64bit = esl_hton64(*((uint64_t *) &(obj->lnP))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->lnP)); + ptr += sizeof(obj->lnP); + + // Field 8: pre_lnP + network_64bit = esl_hton64(*((uint64_t *) &(obj->pre_lnP))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->pre_lnP)); + ptr += sizeof(obj->pre_lnP); + + // Field 9: sum_lnP + network_64bit = esl_hton64(*((uint64_t *) &(obj->sum_lnP))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->sum_lnP)); + ptr += sizeof(obj->sum_lnP); + + // Field 10: nexpected + network_32bit = esl_hton32(*((uint32_t *) &(obj->nexpected))); + memcpy((void *) ptr, (void *) &network_32bit, sizeof(obj->nexpected)); + ptr += sizeof(obj->nexpected); + + // Field 11: nregions + network_32bit = esl_hton32(obj->nregions); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 12: nclustered + network_32bit = esl_hton32(obj->nclustered); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 13: noverlaps + network_32bit = esl_hton32(obj->noverlaps); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 14: nenvelopes + network_32bit = esl_hton32(obj->nenvelopes); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 15: ndom + network_32bit = esl_hton32(obj->ndom); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 16: flags + network_32bit = esl_hton32(obj->flags); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 17: nreported + network_32bit = esl_hton32(obj->nreported); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 18: nincluded + network_32bit = esl_hton32(obj->nincluded); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 19: best_domain + network_32bit = esl_hton32(obj->best_domain); + memcpy(ptr, &network_32bit, sizeof(int32_t)); + ptr += sizeof(int32_t); + + // Field 20: seqidx + network_64bit = esl_hton64(obj->seqidx); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 21: subseq_start; + network_64bit = esl_hton64(obj->subseq_start); + memcpy(ptr, &network_64bit, sizeof(int64_t)); + ptr += sizeof(int64_t); + + // Field 22: presence flags + memcpy(ptr, &presence_flags, 1); + ptr += 1; + + + // field 23: name string + strcpy((char *) ptr, obj->name); + ptr += name_size; + + // field 24: acc string, if present + if(obj->acc != NULL){ + strcpy((char *) ptr, obj->acc); + ptr += acc_size; + } + + //field 25: desc string, if present + if(obj->desc != NULL){ + strcpy((char *) ptr, obj->desc); + ptr += desc_size; + } + + // sanity check + if(ptr -(*buf + *n) != ser_size){ + ESL_EXCEPTION(eslFAIL, "Size of serialized object did not match expectation in p7_hit_Serialize\n"); + } + + *n = ptr - *buf; // update n to point to end of serialized region + + for(int i = 0; i < obj->ndom; i++){ + status = p7_domain_Serialize(&(obj->dcl[i]), buf, n, nalloc); + if(status != eslOK){ + return status; + } + } + + return eslOK; +ERROR: + return eslEMEM; +} + +/* Function: p7_hit_Deserialize + * Synopsis: Derializes a P7_HIT object from a stream of bytes in network order into + * a valid data structure + * + * Purpose: Deserializes a serialized P7_HIT object from + *. buf starting at position *n. + * + * Inputs: buf: the buffer that the object should be de-serialized from + * pos: a pointer to the offset from the start of buf to the beginning of the object + * ret_obj: a P7_HIT structure to deserialize the object into. May not be NULL. May either be an + * "empty" object created with p7_hit_Create_empty, or a P7_HIT object containing valid data + * + * Returns: On success: returns eslOK, deserializes the P7_HIT object into ret_object, and updates + *. n to point to the position after the end of the P7_HIT object. + * + * Throws: Returns eslEINVAL if ret_obj == NULL, buf == NULL, or n == NULL. Returnts eslEMEM if unable to allocate + * required memory in ret_obj. Returns eslFAIL if an consistency check fails. + */ +extern int p7_hit_Deserialize(const uint8_t *buf, uint32_t *n, P7_HIT *ret_obj){ + + uint8_t *ptr; + uint64_t network_64bit; // holds 64-bit values in network order + uint64_t host_64bit; //variable to hold 64-bit values after conversion to host order + uint32_t network_32bit; // holds 64-bit values in network order + uint32_t host_32bit; //variable to hold 64-bit values after conversion to host order + uint32_t obj_size; // How much space does the variable-length portion of the serialized object take up? + int status, string_length; + uint8_t presence_flags; + if(ret_obj == NULL || buf == NULL || n == NULL){ + return eslEINVAL; + } + + ptr = (uint8_t *) buf + *n; + + //First field: Size of the serialized object. Copy out of buffer into scalar variable to deal with memory alignment, convert to + // host machine order + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + obj_size = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 2: window_length + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->window_length = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 3: sortkey + memcpy(&network_64bit, ptr, sizeof(double)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->sortkey = *((double *) &host_64bit); + ptr += sizeof(double); + + //Field 4: score + memcpy(&network_32bit, ptr, sizeof(float)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->score = *((float *) &host_32bit); + ptr += sizeof(float); + + //Field 5: pre_score + memcpy(&network_32bit, ptr, sizeof(float)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->pre_score = *((float *) &host_32bit); + ptr += sizeof(float); + + //Field 6: sum_score + memcpy(&network_32bit, ptr, sizeof(float)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->sum_score = *((float *) &host_32bit); + ptr += sizeof(float); + + //Field 7: lnP + memcpy(&network_64bit, ptr, sizeof(double)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->lnP = *((double *) &host_64bit); + ptr += sizeof(double); + + //Field 8: pre_lnP + memcpy(&network_64bit, ptr, sizeof(double)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->pre_lnP = *((double *) &host_64bit); + ptr += sizeof(double); + + //Field 9: sum_lnP + memcpy(&network_64bit, ptr, sizeof(double)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->sum_lnP = *((double *) &host_64bit); + ptr += sizeof(double); + + //Field 10: nexpected + memcpy(&network_32bit, ptr, sizeof(float)); // Grab the bytes out of the buffer + host_32bit = esl_ntoh32(network_32bit); + ret_obj->nexpected = *((float *) &host_32bit); + ptr += sizeof(float); + + //Field 11: nregions + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->nregions = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 12: nclustered + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->nclustered = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 13: noverlaps + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->noverlaps = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 14: nenvelopes + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->nenvelopes = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 15: ndom + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->ndom = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 16: flags + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->flags = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 17: nreported + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->nreported = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 18: nincluded + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->nincluded = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 19: best_domain + memcpy(&network_32bit, ptr, sizeof(uint32_t)); // Grab the bytes out of the buffer + ret_obj->best_domain = esl_ntoh32(network_32bit); + ptr += sizeof(uint32_t); + + //Field 20: seqidx + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->seqidx = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Field 21: subseq_start + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->subseq_start = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Field 22: presence flags + memcpy(&presence_flags, ptr, 1); // Grab the bytes out of the buffer + ptr += 1; + + //Field 23: name string + string_length = strlen((char *) ptr) +1; + + if(ret_obj->name != NULL){ + free(ret_obj->name); + } + ESL_ALLOC(ret_obj->name, string_length); + + strcpy(ret_obj->name, (char *) ptr); + ptr += string_length; + + //field 24: acc, if present + if(ret_obj->acc != NULL){ + free(ret_obj->acc); + } + + if(presence_flags & ACC_PRESENT){ + string_length = strlen((char *) ptr) +1; + + ESL_ALLOC(ret_obj->acc, string_length); + + strcpy(ret_obj->acc, (char *) ptr); + ptr += string_length; + } + else{ + ret_obj->acc = NULL; + } + + //field 25: desc, if present + if(ret_obj->desc != NULL){ + free(ret_obj->desc); + } + + if(presence_flags & DESC_PRESENT){ + string_length = strlen((char *) ptr) +1; + + ESL_ALLOC(ret_obj->desc, string_length); + + strcpy(ret_obj->desc, (char *) ptr); + ptr += string_length; + } + else{ + ret_obj->desc = NULL; + } + + // sanity check + if((ptr - (buf + *n)) !=obj_size){ + ESL_EXCEPTION(eslFAIL, "Error: Size of serialized object did not match expected in p7_hit_Deserialize\n"); + } + + ESL_ALLOC(ret_obj->dcl, ret_obj->ndom * sizeof(P7_DOMAIN)); + + *n = ptr- buf; // reset n to point just past fixed-length fields + + for(int i = 0; i < ret_obj->ndom; i++){ + ret_obj->dcl[i].scores_per_pos = NULL; // set internal pointers to known values so that domain_Deserialize does the right thing + ret_obj->dcl[i].ad = NULL; + int ret_code = p7_domain_Deserialize(buf, n, &(ret_obj->dcl[i])); + if (ret_code != eslOK){ + return ret_code; + } + } + + return eslOK; +ERROR: + return eslEMEM; +} + +/***************************************************************** + * 2. Debugging Functions + *****************************************************************/ + +/* Function: p7_hit_TestSample + * Synopsis: Creates a P7_HIT object that contains random data. + * + * Purpose: Creates a P7_HIT object that contains random data. This data will be syntactically correct, + * but is not intended to be in any way a "reasonable" hit. For example, the number of P7_DOMAIN + * objects in the P7_HIT objects will match the value of the object's ndom field, but the vales of the + * object's score, pre_score, and sum_score fields may not be consistent with each other. + * + * Inputs: rng: the random-number generator to use in creating this object. + * ret_obj: pointer that is used to return the created object + * + * Returns: eslOK, and the created object in ret_obj + * + * Throws: Returns eslEMEM if unable to allocate or re-allocate memory. Returns eslEINVAL if ret_obj == NULL + */ +extern int p7_hit_TestSample(ESL_RAND64 *rng, P7_HIT **ret_obj){ + int status; + int string_length; + if(ret_obj == NULL){ + return eslEINVAL; + } + + ESL_RANDOMNESS *rng32; // hack until esl_rsq_Sample is updated to rand64 + rng32 = esl_randomness_Create(0); + + // avoid memory leaks if we're passed a pointer to an existing object + if(*ret_obj != NULL){ + p7_hit_Destroy(*ret_obj); + } + + ESL_ALLOC(*ret_obj, sizeof(P7_HIT)); + + P7_HIT *the_obj = *ret_obj; // get a convenience pointer + + + //always have a name string + string_length = esl_rand64_Roll(rng, 100) + 1; + + // generate a random string of printable characters + ESL_ALLOC(the_obj->name, string_length +1); // +1 for end of string char + esl_rsq_Sample(rng32, eslRSQ_SAMPLE_PRINT, string_length, &(the_obj->name)); + + + // 50% chance of acc string + if(esl_rand64_Roll(rng, 2) == 0){ + string_length = esl_rand64_Roll(rng, 100) + 1; + + // generate a random string of printable characters + ESL_ALLOC(the_obj->acc, string_length + 1); + esl_rsq_Sample(rng32, eslRSQ_SAMPLE_PRINT, string_length, &(the_obj->acc)); + } + else{ + the_obj->acc = NULL; + } + + // 50% chance of desc string + if(esl_rand64_Roll(rng, 2) == 0){ + string_length = esl_rand64_Roll(rng, 100) + 1; + + // generate a random string of printable characters + ESL_ALLOC(the_obj->desc, string_length+1); + esl_rsq_Sample(rng32, eslRSQ_SAMPLE_PRINT, string_length, &(the_obj->desc)); + } + else{ + the_obj->desc = NULL; + } + + the_obj->window_length = (int) esl_rand64(rng); + the_obj->sortkey = esl_rand64_double(rng); + the_obj->score = (float) esl_rand64_double(rng); + the_obj->pre_score = (float) esl_rand64_double(rng); + the_obj->sum_score = (float) esl_rand64_double(rng); + the_obj->lnP = esl_rand64_double(rng); + the_obj->pre_lnP = esl_rand64_double(rng); + the_obj->sum_lnP = esl_rand64_double(rng); + the_obj->nexpected = (float) esl_rand64_double(rng); + the_obj->nregions = (int) esl_rand64(rng); + the_obj->nclustered = (int) esl_rand64(rng); + the_obj->noverlaps = (int) esl_rand64(rng); + the_obj->nenvelopes = (int) esl_rand64(rng); + the_obj->ndom = (esl_rand64(rng) % 10) + 1; // limit this to small positive numbers to keep the size of the dcl array + // under control + + the_obj->flags = (esl_rand64_Roll(rng, 31)); // This field has limited range, keep values within that range + the_obj->nreported = (int) esl_rand64(rng); + the_obj->nincluded = (int) esl_rand64(rng); + the_obj->best_domain = esl_rand64(rng) % the_obj->ndom; // keep this value within the set of domains in this hit + + the_obj->seqidx = esl_rand64(rng); + the_obj->subseq_start = esl_rand64(rng); + + ESL_ALLOC(the_obj->dcl, the_obj->ndom *sizeof(P7_DOMAIN)); + + P7_DOMAIN **handle, *ptr; + handle = &ptr; + for(int i = 0; i < the_obj->ndom; i++){ + ptr = &(the_obj->dcl[i]); + p7_domain_TestSample(rng, handle); + } + esl_randomness_Destroy(rng32); + return eslOK; // nothing went wrong + +ERROR: + return eslEMEM; +} + + + +/* Function: p7_hit_Compare + * Synopsis: Compares two P7_HIT objects for equality within the specified tolerances + * + * Purpose: Compares two P7_HIT objects. Integer fields are compared for equality. Floating-point fields are + * compared for equality within the specified relative and absolute tolerances + * + * Inputs: first: The first object to be compared + * second: The second object to be compared + * atol: The absolute tolerance to be used when comparing floating-point fields + * rtol: The relative tolerance to be used when comparing floating-point fields + * + * Returns: eslOK if the P7_HIT inputs match, eslFAIL otherwise + * + * Throws: Nothing + */ +extern int p7_hit_Compare(P7_HIT *first, P7_HIT *second, double atol, double rtol){ + if(strcmp(first->name, second->name) != 0){ + return eslFAIL; + } + + if(((first->acc == NULL) && (second->acc != NULL)) || ((first->acc != NULL) && (second->acc == NULL))){ + return eslFAIL; // hits can't be the same if one of them has a string field that the other doesn't + } + + if((first->acc != NULL) && (second->acc != NULL) && (strcmp(first->acc, second->acc) != 0)){ + //both hits have acc strings but they don't match + return eslFAIL; + } + // The remaining option is first->acc == NULL and second->acc == NULL, which counts as a match in that field + + if(((first->desc == NULL) && (second->desc != NULL)) || ((first->desc != NULL) && (second->desc == NULL))){ + return eslFAIL; // hits can't be the same if one of them has a string field that the other doesn't + } + + if((first->desc != NULL) && (second->desc != NULL) && (strcmp(first->desc, second->desc) != 0)){ + //both hits have acc strings but they don't match + return eslFAIL; + } + // The remaining option is first->desc == NULL and second->desc == NULL, which counts as a match in that field + + if(first->window_length != second->window_length){ + return eslFAIL; + } + + if(esl_DCompareNew(first->sortkey, second->sortkey, atol, rtol) != eslOK){ + return eslFAIL; + } + + if(esl_FCompareNew(first->score, second->score, (float) atol, (float) rtol) != eslOK){ + return eslFAIL; + } + + if(esl_FCompareNew(first->pre_score, second->pre_score, (float) atol, (float) rtol) != eslOK){ + return eslFAIL; + } + + if(esl_FCompareNew(first->sum_score, second->sum_score, (float) atol, (float) rtol) != eslOK){ + return eslFAIL; + } + + if(esl_DCompareNew(first->lnP, second->lnP, atol, rtol) != eslOK){ + return eslFAIL; + } + + if(esl_DCompareNew(first->pre_lnP, second->pre_lnP, atol, rtol) != eslOK){ + return eslFAIL; + } + + if(esl_DCompareNew(first->sum_lnP, second->sum_lnP, atol, rtol) != eslOK){ + return eslFAIL; + } + + if(first->nexpected != second->nexpected){ + return eslFAIL; + } + + if(first->nregions != second->nregions){ + return eslFAIL; + } + + if(first->nclustered != second->nclustered){ + return eslFAIL; + } + + if(first->noverlaps != second->noverlaps){ + return eslFAIL; + } + + if(first->nenvelopes != second->nenvelopes){ + return eslFAIL; + } + + if(first->ndom != second->ndom){ + return eslFAIL; + } + + if(first->flags != second->flags){ + return eslFAIL; + } + + if(first->nreported != second->nreported){ + return eslFAIL; + } + + if(first->nincluded != second->nincluded){ + return eslFAIL; + } + + if(first->best_domain != second->best_domain){ + return eslFAIL; + } + + if(first->seqidx != second->seqidx){ + return eslFAIL; + } + + if(first->subseq_start != second->subseq_start){ + return eslFAIL; + } + + for(int i = 0; i < first->ndom; i++){ + if(p7_domain_Compare(&(first->dcl[i]), &(second->dcl[i]), atol, rtol) != eslOK){ + return eslFAIL; + } + } + + // ignore offset field -- it is vestigal and will be going away + return eslOK; // If we get here without finding a miss-match, the hits contain the same values +} +/***************************************************************** + * 3. Unit tests + *****************************************************************/ + + + + +#ifdef p7HIT_TESTDRIVE +// Test that the _Serialize() function generates the correct errors when passed invalid arguments +static void utest_Serialize_error_conditions(){ + int status; // Easel error code variable + P7_HIT *foo; + uint8_t **buf; + uint32_t n; + uint32_t nalloc; + ESL_RAND64 *rng; + + char msg[] = "utest_Serialize_error_conditions failed"; + rng = esl_rand64_Create(0); + n = 0; + nalloc = 0; + foo = p7_hit_Create_empty(); + // Test 1: _Serialize returns error if passed NULL buffer + buf = NULL; + + if(p7_hit_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("null buffer check passed\n"); + } + + ESL_ALLOC(buf, sizeof(uint8_t *)); // set buf to valid value + *buf = NULL; + + // Test 2: error on NULL n ptr + if(p7_hit_Serialize(foo, buf, NULL, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("invalid n check passed\n"); + } + + // Test 3: error on NULL object ptr + if(p7_hit_Serialize(NULL, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("invalid object check passed\n"); + } + + // Test 4: n != 0 and *buf == NULL + n = 3; + if(p7_hit_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("Non-zero n with NULL buffer check passed\n"); + } + + // Test 5: Nalloc != 0 and *buf == NULL + n = 0; + nalloc = 10; + if(p7_hit_Serialize(foo, buf, &n, &nalloc) != eslEINVAL){ + esl_fatal(msg); + } + else{ + //printf("Non-zero nalloc with NULL buffer check passed\n"); + } + + if(buf !=NULL && *buf != NULL){ + free(*buf); + } + if(buf != NULL){ + free(buf); + } + + p7_hit_Destroy(foo); + esl_rand64_Destroy(rng); + return; + + ERROR: + if(foo != NULL){ + p7_hit_Destroy(foo); + } + + if(buf !=NULL && *buf != NULL){ + free(*buf); + } + if(buf != NULL){ + free(buf); + } + esl_fatal(msg); +} + + +static void utest_Deserialize_error_conditions(){ + P7_HIT *sampled = NULL; // sampled alidisplay that we'll serialze + P7_HIT *deserial = NULL; // alidisplay to hold the deserialized object + char msg[]="utest_Deserialize_error_conditions failed"; + uint8_t *buf = NULL; + uint32_t n = 0, nalloc = 0; + ESL_RAND64 *rng = esl_rand64_Create(0); + deserial = p7_hit_Create_empty(); + if(deserial == NULL){ + esl_fatal(msg); + } + + p7_hit_TestSample(rng, &sampled); + if(sampled == NULL){ + esl_fatal(msg); + } + + if(p7_hit_Serialize(sampled, &buf, &n, &nalloc) != eslOK){ // serialize an object to deserialize + esl_fatal(msg); + } + + // Test 1: error on buf == NULL; + if(p7_hit_Deserialize(NULL, &n, deserial) != eslEINVAL){ + esl_fatal(msg); + } + //printf("Test 1 passed\n"); + + // Test 2: error on n == NULL + if(p7_hit_Deserialize(buf, NULL, deserial) != eslEINVAL){ + esl_fatal(msg); + } + //printf("Test 2 passed\n"); + + // Test 3: error on serialized object == NULL + if(p7_hit_Deserialize(buf, &n, NULL) != eslEINVAL){ + esl_fatal(msg); + } + //printf("Test 3 passed\n"); + + p7_hit_Destroy(deserial); + p7_hit_Destroy(sampled); + esl_rand64_Destroy(rng); + return; +} + +static void utest_Serialize(int ntrials){ + int i; + uint8_t **buf; + uint32_t n; + uint32_t nalloc; + P7_HIT **serial=NULL, *deserial=NULL; + int status; + char msg[] = "utest_Serialize failed"; + + ESL_ALLOC(buf, sizeof(uint8_t *)); + *buf = NULL; + n = 0; + nalloc = 0; + + ESL_ALLOC(serial, ntrials * sizeof(P7_HIT *)); + for(i = 0; i< ntrials; i++){ + serial[i] = NULL; + } + + ESL_RAND64 *rng = esl_rand64_Create(0); + + for(i = 0; i < ntrials; i++){ + if(p7_hit_TestSample(rng, &(serial[i])) != eslOK){ + esl_fatal(msg); + } + if(p7_hit_Serialize(serial[i], buf, &n, &nalloc) != eslOK){ + esl_fatal(msg); + } + } + + n = 0; // reset to start of buffer + + deserial = p7_hit_Create_empty(); + if(deserial == NULL){ + esl_fatal(msg); + } + + for(i = 0; i < ntrials; i++){ + if(p7_hit_Deserialize(*buf, &n, deserial) != eslOK){ + esl_fatal(msg); + } + if(p7_hit_Compare(serial[i], deserial, 1e-4, 1e-4) != eslOK){ // deserialized structure didn't match serialized + esl_fatal(msg); + } + + } + // haven't failed yet, so we've succeeded. Clean up and exit + free(*buf); + free(buf); + for(i = 0; i < ntrials; i++){ + p7_hit_Destroy(serial[i]); + } + free(serial); + p7_hit_Destroy(deserial); + + return; + + ERROR: + if(buf != NULL){ + if(*buf != NULL){ + free(*buf); + } + free(buf); + } + + if(serial != NULL){ + for(i = 0; i < ntrials; i++){ + if(serial[i] != NULL){ + p7_hit_Destroy(serial[i]); + } + } + free(serial); + } + + if(deserial == NULL){ + p7_hit_Destroy(deserial); + } + + esl_fatal(msg); + +} +#endif + +/***************************************************************** + * 3. Test Driver + *****************************************************************/ +#ifdef p7HIT_TESTDRIVE + +int +main(int argc, char **argv) +{ + + utest_Serialize_error_conditions(); + utest_Deserialize_error_conditions(); + utest_Serialize(100); + return eslOK; // If we get here, test passed +} + +#endif diff --git a/bioinformaticsProject/hmmer/src/p7_hmm.c b/bioinformaticsProject/hmmer/src/p7_hmm.c new file mode 100644 index 0000000..785f31c --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_hmm.c @@ -0,0 +1,1494 @@ +/* The Plan7 core HMM data structure. + * + * Contents: + * 1. The P7_HMM object: allocation, initialization, destruction. + * 2. Convenience routines for setting fields in an HMM. + * 3. Renormalization and rescaling counts in core HMMs. + * 4. Debugging and development code. + * 5. Other routines in the API. + * 6. Unit tests. + * 7. Test driver. + */ +#include "p7_config.h" + +#include +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_vectorops.h" +#include "esl_random.h" +#include "esl_dirichlet.h" + +#include "hmmer.h" + + + + +/***************************************************************** + *# 1. The P7_HMM object: allocation, initialization, destruction. + *****************************************************************/ + +/* Function: p7_hmm_Create() + * Synopsis: Allocate a new . + * + * Purpose: Allocate a of nodes, for symbol + * alphabet , and return a pointer to it. + * + * The HMM only keeps a copy of the alphabet + * pointer. The caller is responsible for providing the + * alphabet, keeping it around while the HMM is in use, + * and (eventually) free'ing the alphabet when it's + * not needed any more. (Basically, just a step removed + * from keeping the alphabet as a global.) + * + * Throws: on allocation failure. + */ +P7_HMM * +p7_hmm_Create(int M, const ESL_ALPHABET *abc) +{ + P7_HMM *hmm = NULL; + + if ((hmm = p7_hmm_CreateShell()) == NULL) return NULL; + p7_hmm_CreateBody(hmm, M, abc); + return hmm; +} + + +/* Function: p7_hmm_CreateShell() + * Synopsis: Allocate the ``shell'' of a . + * + * Purpose: Allocate the shell of a : everything that + * doesn't depend on knowing the number of nodes M. + * + * HMM input () uses two-step shell/body + * allocation because it has to read for a ways from the + * HMM file before it reads the model size M or the + * alphabet type. + * + * Returns: a pointer to the new on success. + * + * Throws: on allocation failure. + */ +P7_HMM * +p7_hmm_CreateShell(void) +{ + P7_HMM *hmm = NULL; + int z; + int status; + + ESL_ALLOC(hmm, sizeof(P7_HMM)); + hmm->M = 0; + hmm->t = NULL; + hmm->mat = NULL; + hmm->ins = NULL; + + hmm->name = NULL; + hmm->acc = NULL; + hmm->desc = NULL; + hmm->rf = NULL; + hmm->mm = NULL; + hmm->consensus = NULL; + hmm->cs = NULL; + hmm->ca = NULL; + hmm->comlog = NULL; + hmm->nseq = -1; + hmm->eff_nseq = -1.0; + hmm->max_length = -1; + hmm->ctime = NULL; + hmm->map = NULL; + hmm->checksum = 0; + + for (z = 0; z < p7_NCUTOFFS; z++) hmm->cutoff[z] = p7_CUTOFF_UNSET; + for (z = 0; z < p7_NEVPARAM; z++) hmm->evparam[z] = p7_EVPARAM_UNSET; + for (z = 0; z < p7_MAXABET; z++) hmm->compo[z] = p7_COMPO_UNSET; + + hmm->offset = 0; + hmm->flags = 0; + hmm->abc = NULL; + return hmm; + + ERROR: + return NULL; +} + +/* Function: p7_hmm_CreateBody() + * Synopsis: Allocate the ``body'' of a . + * + * Purpose: Given an allocated shell , and a now-known number + * of nodes and alphabet , allocate + * the remainder of it for that many nodes. + * + * Returns: on success. + * + * Throws: on allocation failure; in this case, the HMM + * is likely corrupted, and the caller should destroy it. + */ +int +p7_hmm_CreateBody(P7_HMM *hmm, int M, const ESL_ALPHABET *abc) +{ + int k; + int status; + + hmm->abc = abc; + hmm->M = M; + + /* level 1 */ + ESL_ALLOC(hmm->t, (M+1) * sizeof(float *)); + ESL_ALLOC(hmm->mat, (M+1) * sizeof(float *)); + ESL_ALLOC(hmm->ins, (M+1) * sizeof(float *)); + hmm->t[0] = NULL; + hmm->mat[0] = NULL; + hmm->ins[0] = NULL; + + /* level 2 */ + ESL_ALLOC(hmm->t[0], (p7H_NTRANSITIONS*(M+1)) * sizeof(float)); + ESL_ALLOC(hmm->mat[0], (abc->K*(M+1)) * sizeof(float)); + ESL_ALLOC(hmm->ins[0], (abc->K*(M+1)) * sizeof(float)); + for (k = 1; k <= M; k++) { + hmm->mat[k] = hmm->mat[0] + k * hmm->abc->K; + hmm->ins[k] = hmm->ins[0] + k * hmm->abc->K; + hmm->t[k] = hmm->t[0] + k * p7H_NTRANSITIONS; + } + + /* Enforce conventions on unused but allocated distributions, so + * Compare() tests succeed unless memory was corrupted. + */ + if ((status = p7_hmm_Zero(hmm)) != eslOK) goto ERROR; + hmm->mat[0][0] = 1.0; + hmm->t[0][p7H_DM] = 1.0; + + /* Optional allocation, status flag dependent */ + if (hmm->flags & p7H_RF) ESL_ALLOC(hmm->rf, (M+2) * sizeof(char)); + if (hmm->flags & p7H_MMASK) ESL_ALLOC(hmm->mm, (M+2) * sizeof(char)); + if (hmm->flags & p7H_CONS) ESL_ALLOC(hmm->consensus, (M+2) * sizeof(char)); + if (hmm->flags & p7H_CS) ESL_ALLOC(hmm->cs, (M+2) * sizeof(char)); + if (hmm->flags & p7H_CA) ESL_ALLOC(hmm->ca, (M+2) * sizeof(char)); + if (hmm->flags & p7H_MAP) ESL_ALLOC(hmm->map, (M+1) * sizeof(int)); + + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_hmm_Destroy() + * Synopsis: Free a . + * + * Purpose: Frees both the shell and body of an . + * Works even if the is damaged (incompletely allocated) + * or even . + * + * Note: Remember, leave reference pointers like abc, gm, and + * bg alone. These are under the application's control not ours. + * + * Returns: (void). + */ +void +p7_hmm_Destroy(P7_HMM *hmm) +{ + if (hmm == NULL) return; + + if (hmm->mat) { if (hmm->mat[0]) free(hmm->mat[0]); free(hmm->mat); } + if (hmm->ins) { if (hmm->ins[0]) free(hmm->ins[0]); free(hmm->ins); } + if (hmm->t) { if (hmm->t[0]) free(hmm->t[0]); free(hmm->t); } + + if (hmm->name) free(hmm->name); + if (hmm->acc) free(hmm->acc); + if (hmm->desc) free(hmm->desc); + if (hmm->rf) free(hmm->rf); + if (hmm->mm) free(hmm->mm); + if (hmm->consensus) free(hmm->consensus); + if (hmm->cs) free(hmm->cs); + if (hmm->ca) free(hmm->ca); + if (hmm->comlog) free(hmm->comlog); + if (hmm->ctime) free(hmm->ctime); + if (hmm->map) free(hmm->map); + + free(hmm); + return; +} + +/* Function: p7_hmm_CopyParameters() + * Synopsis: Copy parameters from one HMM to another. + * + * Purpose: Copy parameters of to . The HMM must + * be allocated by the caller for the same + * alphabet and M as . + * + * Both core and search model parameters are copied. + * + * No annotation is copied. This is because several + * annotation fields are variable-length strings that + * require individual allocations. The + * function is for cases where we + * have to repeatedly reset the parameters of a model - for + * example, in entropy weighting. + * + * Returns: on success. + */ +int +p7_hmm_CopyParameters(const P7_HMM *src, P7_HMM *dest) +{ + int k; + for (k = 0; k <= src->M; k++) { + esl_vec_FCopy(src->t[k], p7H_NTRANSITIONS, dest->t[k]); + esl_vec_FCopy(src->mat[k], src->abc->K, dest->mat[k]); + esl_vec_FCopy(src->ins[k], src->abc->K, dest->ins[k]); + } + return eslOK; +} + +/* Function: p7_hmm_Clone() + * Synopsis: Make an exact duplicate of an HMM. + * + * Purpose: Duplicates an hmm. + * + * Note: does not duplicate the objects the HMM refers to, + * if any (profile, null model, or alphabet); only copies + * the reference pointers. + * + * Returns: a pointer to the duplicate. + * + * Throws: on allocation failure. + */ +P7_HMM * +p7_hmm_Clone(const P7_HMM *hmm) +{ + int status; + P7_HMM *new = NULL; + int z; + + if ((new = p7_hmm_Create(hmm->M, hmm->abc)) == NULL) goto ERROR; + p7_hmm_CopyParameters(hmm, new); + + if ((status = esl_strdup(hmm->name, -1, &(new->name))) != eslOK) goto ERROR; + if ((status = esl_strdup(hmm->acc, -1, &(new->acc))) != eslOK) goto ERROR; + if ((status = esl_strdup(hmm->desc, -1, &(new->desc))) != eslOK) goto ERROR; + + if ((hmm->flags & p7H_RF) && (status = esl_strdup(hmm->rf, -1, &(new->rf))) != eslOK) goto ERROR; + if ((hmm->flags & p7H_MMASK) && (status = esl_strdup(hmm->mm, -1, &(new->mm))) != eslOK) goto ERROR; + if ((hmm->flags & p7H_CONS) && (status = esl_strdup(hmm->consensus, -1, &(new->consensus))) != eslOK) goto ERROR; + if ((hmm->flags & p7H_CS) && (status = esl_strdup(hmm->cs, -1, &(new->cs))) != eslOK) goto ERROR; + if ((hmm->flags & p7H_CA) && (status = esl_strdup(hmm->ca, -1, &(new->ca))) != eslOK) goto ERROR; + if ((hmm->comlog != NULL) && (status = esl_strdup(hmm->comlog, -1, &(new->comlog))) != eslOK) goto ERROR; + if ((hmm->ctime != NULL) && (status = esl_strdup(hmm->ctime, -1, &(new->ctime))) != eslOK) goto ERROR; + if (hmm->flags & p7H_MAP) { + ESL_ALLOC(new->map, sizeof(int) * (hmm->M+1)); + esl_vec_ICopy(hmm->map, hmm->M+1, new->map); + } + new->nseq = hmm->nseq; + new->eff_nseq = hmm->eff_nseq; + new->max_length = hmm->max_length; + new->checksum = hmm->checksum; + + for (z = 0; z < p7_NEVPARAM; z++) new->evparam[z] = hmm->evparam[z]; + for (z = 0; z < p7_NCUTOFFS; z++) new->cutoff[z] = hmm->cutoff[z]; + for (z = 0; z < p7_MAXABET; z++) new->compo[z] = hmm->compo[z]; + + new->offset = hmm->offset; + new->flags = hmm->flags; + new->abc = hmm->abc; + return new; + + ERROR: + if (new != NULL) p7_hmm_Destroy(new); + return NULL; +} + + +/* Function: p7_hmm_Zero() + * Synopsis: Set all parameters to zero (including model composition). + * + * Purpose: Zeroes all counts/probabilities fields in core model, + * including emissions, transitions, and model + * composition. + * + * Returns: on success. + */ +int +p7_hmm_Zero(P7_HMM *hmm) +{ + int k; + + for (k = 0; k <= hmm->M; k++) { + esl_vec_FSet(hmm->t[k], p7H_NTRANSITIONS, 0.); + esl_vec_FSet(hmm->mat[k], hmm->abc->K, 0.); + esl_vec_FSet(hmm->ins[k], hmm->abc->K, 0.); + } + esl_vec_FSet(hmm->compo, p7_MAXABET, 0.); + return eslOK; +} + + + +/* Function: p7_hmm_EncodeStatetype() + * Synopsis: Convert a state type string to internal code. + * + * Purpose: Converts state type string case insensitively to + * an internal code, and returns the code. For example, + * returns . + * + * If the string isn't recognized, returns . + */ +char +p7_hmm_EncodeStatetype(char *typestring) +{ + if (strcasecmp(typestring, "M") == 0) return p7T_M; + else if (strcasecmp(typestring, "D") == 0) return p7T_D; + else if (strcasecmp(typestring, "I") == 0) return p7T_I; + else if (strcasecmp(typestring, "S") == 0) return p7T_S; + else if (strcasecmp(typestring, "N") == 0) return p7T_N; + else if (strcasecmp(typestring, "B") == 0) return p7T_B; + else if (strcasecmp(typestring, "E") == 0) return p7T_E; + else if (strcasecmp(typestring, "C") == 0) return p7T_C; + else if (strcasecmp(typestring, "T") == 0) return p7T_T; + else if (strcasecmp(typestring, "J") == 0) return p7T_J; + else if (strcasecmp(typestring, "X") == 0) return p7T_X; + else return p7T_BOGUS; +} + +/* Function: p7_hmm_DecodeStatetype() + * Synopsis: Convert an internal state type code to a string. + * + * Purpose: Returns the state type in text, as a string of length 1 + * (2 if you count ). For example, + * returns "S". + * + * Throws: an internal exception if the code doesn't + * exist, and returns . + */ +char * +p7_hmm_DecodeStatetype(char st) +{ + switch (st) { + case p7T_M: return "M"; + case p7T_D: return "D"; + case p7T_I: return "I"; + case p7T_S: return "S"; + case p7T_N: return "N"; + case p7T_B: return "B"; + case p7T_E: return "E"; + case p7T_C: return "C"; + case p7T_T: return "T"; + case p7T_J: return "J"; + case p7T_X: return "X"; + default: break; + } + esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "no such statetype code %d", st); + return NULL; +} + + + + +/***************************************************************** + * 2. Convenience routines for setting fields in an HMM. + *****************************************************************/ + +/* Function: p7_hmm_SetName() + * Synopsis: Set or change the name of an HMM. + * + * Purpose: Set or change the name of a Plan7 HMM to . + * Any trailing whitespace (including newline) is chopped off. + * + * Returns: on success. + * + * Throws: on allocation error, and original name (if any) + * remains. + */ +int +p7_hmm_SetName(P7_HMM *hmm, char *name) +{ + int status; + void *tmp; + int n; + + if (name == NULL) { + if (hmm->name != NULL) free(hmm->name); + hmm->name = NULL; + } else { + n = strlen(name); + ESL_RALLOC(hmm->name, tmp, sizeof(char)*(n+1)); + strcpy(hmm->name, name); + if ((status = esl_strchop(hmm->name, n)) != eslOK) goto ERROR; + } + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_hmm_SetAccession() + * Synopsis: Set or change the accession of an HMM. + * + * Purpose: Set or change the accession number of a Plan7 HMM to , + * and raise the flag. Trailing whitespace (including newline) + * is chopped. + * + * If is , unset the HMM's accession (if any) and drop + * the flag. + * + * Returns: on success. + * + * Throws: on allocation error, and original name (if any) + * remains. + */ +int +p7_hmm_SetAccession(P7_HMM *hmm, char *acc) +{ + int status; + void *tmp; + int n; + + if (acc == NULL) { + if (hmm->acc != NULL) free(hmm->acc); + hmm->acc = NULL; + hmm->flags &= ~p7H_ACC; /* legacy */ + } else { + n = strlen(acc); + ESL_RALLOC(hmm->acc, tmp, sizeof(char)*(n+1)); + strcpy(hmm->acc, acc); + if ((status = esl_strchop(hmm->acc, n)) != eslOK) goto ERROR; + hmm->flags |= p7H_ACC; /* legacy */ + } + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_hmm_SetDescription() + * Synopsis: Set or change the description line of an HMM. + * + * Purpose: Set or change the description line of a Plan7 HMM. + * Trailing whitespace (including newline) is chopped. + */ +int +p7_hmm_SetDescription(P7_HMM *hmm, char *desc) +{ + int status; + void *tmp; + int n; + + if (desc == NULL) + { + if (hmm->desc != NULL) free(hmm->desc); + hmm->desc = NULL; + hmm->flags &= ~p7H_DESC; /* legacy */ + } + else + { + n = strlen(desc); + ESL_RALLOC(hmm->desc, tmp, sizeof(char)*(n+1)); + strcpy(hmm->desc, desc); + if ((status = esl_strchop(hmm->desc, n)) != eslOK) goto ERROR; + hmm->flags |= p7H_DESC; /* legacy */ + } + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_hmm_AppendComlog() + * Synopsis: Concatenate and append command line to the command line log. + * + * Purpose: Concatenate command line options and append as a new line in the + * command line log. Command line log is multiline, with each line + * ending in newline char, except for last line. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_hmm_AppendComlog(P7_HMM *hmm, int argc, char **argv) +{ + int status; + void *tmp; + int n; + int i; + + /* figure out length of added command line, and (re)allocate comlog */ + n = argc-1; /* account for 1 space per arg, except last one */ + for (i = 0; i < argc; i++) + n += strlen(argv[i]); + + if (hmm->comlog != NULL) { + n += strlen(hmm->comlog) + 1; /* +1 for the \n we're going to add to the old comlog */ + ESL_RALLOC(hmm->comlog, tmp, sizeof(char)* (n+1)); + strcat(hmm->comlog, "\n"); + } else { + ESL_ALLOC(hmm->comlog, sizeof(char)* (n+1)); + *(hmm->comlog) = '\0'; /* need this to make strcat work */ + } + + for (i = 0; i < argc-1; i++) + { + strcat(hmm->comlog, argv[i]); + strcat(hmm->comlog, " "); + } + strcat(hmm->comlog, argv[argc-1]); + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_hmm_SetCtime() + * Synopsis: Timestamp an HMM. + * + * Purpose: Set the field in a new HMM to the current time. + * + * Returns: on success. + * + * Throws: on allocation failure. + * if system calls fail to obtain (or format) the time. + * + * Notes: This function calls , supposedly a part of the + * ISO/IEC 9945-1:1996 (POSIX.1) standard, but not ANSI + * C99, so we have potential portability problems here. + * + * A known one: is by default a three-argument + * call on Solaris 10 systems. Our autoconf script sets + * -D_POSIX_PTHREAD_SEMANTICS on Solaris systems to fix this + * issue, requesting Solaris to use a compliant version of + * ctime_r(). + * + * We might want to use strftime() instead; that's what + * POSIX 2008 recommends; but we'd still need localtime_r() or + * its equivalent, and that has its own portability issues. + * + * Note to porters: it really doesn't matter what this + * timestamp is. HMMER doesn't look at it, it's for human + * notetaking. If you have to, set it to an empty string. + * + * TODO: Oi. Time is complicated. Easel should give us an + * easy and portable call to generate time stamps like this; + * an esl_time module, perhaps? + */ +int +p7_hmm_SetCtime(P7_HMM *hmm) +{ + char *s = NULL; + time_t date; + int status; + + ESL_ALLOC(s, 32); + if ((date = time(NULL)) == -1) { status = eslESYS; goto ERROR; } + if (ctime_r(&date, s) == NULL) { status = eslESYS; goto ERROR; } + if ((status = esl_strchop(s, -1)) != eslOK) { goto ERROR; } + + if (hmm->ctime != NULL) free(hmm->ctime); + hmm->ctime = s; + return eslOK; + + ERROR: + if (s) free(s); + return status; +} + + + +/* Function: p7_hmm_SetComposition() + * Synopsis: Calculate and set model composition, compo[]> + * + * Purpose: Calculates the mean residue composition emitted by + * model , and set compo[]> to it. + * + * Returns: on success. + * + * Throws: on allocation failure, in which case + * values in compo[]> are unchanged. + * + * Note: In principle, you should be able to normalize + * hmm->compo[] by dividing thru by the sum of + * mocc[] and iocc[] vectors, and that's what the + * 3.0 release version did. This allowed p7_hmm_Validate() + * to check compo[] for summation to 1.0, as a smoke + * check for bugs here. The problem with that + * is numerical roundoff error accumulation, when + * hmm->M is large [bug #h84]. To fix #h84, we + * simply renormalize compo[], rather than the fancier + * previous version. This avoids error accumulation, + * but it also guarantees that compo[] will trivially + * pass the hmm_Validation() step; it's not really + * validating the SetComposition() calculation at all. + * (For description of #h84, error analysis, and the fix, + * xref J7/7; SRE, Tue Nov 2 14:32:29 2010) + */ +int +p7_hmm_SetComposition(P7_HMM *hmm) +{ + float *mocc = NULL; + float *iocc = NULL; + int k; + int status; + + ESL_ALLOC(mocc, sizeof(float) * (hmm->M+1)); + ESL_ALLOC(iocc, sizeof(float) * (hmm->M+1)); + + p7_hmm_CalculateOccupancy(hmm, mocc, iocc); + esl_vec_FSet(hmm->compo, hmm->abc->K, 0.0); + esl_vec_FAddScaled(hmm->compo, hmm->ins[0], iocc[0], hmm->abc->K); + for (k = 1; k <= hmm->M; k++) + { + esl_vec_FAddScaled(hmm->compo, hmm->mat[k], mocc[k], hmm->abc->K); + esl_vec_FAddScaled(hmm->compo, hmm->ins[k], iocc[k], hmm->abc->K); + } + + esl_vec_FNorm(hmm->compo, hmm->abc->K); + hmm->flags |= p7H_COMPO; + + free(mocc); + free(iocc); + return eslOK; + + ERROR: + if (mocc != NULL) free(mocc); + if (iocc != NULL) free(iocc); + return status; +} + + +/* Function: p7_hmm_SetConsensus() + * Synopsis: Set the consensus residue line of the HMM. + * + * Purpose: Sets the consensus annotation line of the model . + * + * Behavior differs, depending on whether this is a + * single-sequence model (i.e. phmmer) or a standard + * model of a multiple sequence alignment. If is + * non- this is a single-sequence model and is + * the digital sequence it was built from. If is + * this is a standard multiple-sequence model. + * + * In a standard model, the most likely (highest emission + * probability) residue is the consensus at each position. + * In a single-sequence model, the consensus is the + * sequence itself. + * + * In both cases, if the emission probability is $\geq$ + * certain threshold, the residue is upper cased. The + * threshold is arbitrarily set to 0.9 for nucleic acid + * alphabets (, ) and 0.5 for amino acid + * alphabets () and all other alphabets. + * + * The special handling of single-sequence models avoids + * a counterintuitive case where the most likely residue is + * not the original residue. For example, under the + * BLOSUM62 matrix, given an observed M, the most likely + * aligned residue is an L, not an M. (Because L is so much + * more likely a priori than M.) + * + * Args: hmm - model with valid probability parameters mat[1..M][x] + * sq - NULL if a standard model; + * or the query sequence for a single-sequence model. + * + * Returns: on success. The flag on the is raised + * if it wasn't already. The consensus> line is set. + * + * Throws: on allocation error. The is dropped, even + * if it was up to begin with, and the consensus> is , + * even if we had one to begin with. + * + * Xref: SRE:J8/26. + */ +int +p7_hmm_SetConsensus(P7_HMM *hmm, ESL_SQ *sq) +{ + int k, x; + float mthresh; + int status; + + /* allocation, if needed */ + if (! hmm->consensus) ESL_ALLOC(hmm->consensus, sizeof(char) * (hmm->M+2)); + + /* set our arbitrary threshold for upper/lower casing */ + if (hmm->abc->type == eslAMINO) mthresh = 0.5; + else if (hmm->abc->type == eslDNA) mthresh = 0.9; + else if (hmm->abc->type == eslRNA) mthresh = 0.9; + else mthresh = 0.5; + + hmm->consensus[0] = ' '; + for (k = 1; k <= hmm->M; k++) + { + x = (sq ? sq->dsq[k] : esl_vec_FArgMax(hmm->mat[k], hmm->abc->K)); + hmm->consensus[k] = ((hmm->mat[k][x] >= mthresh) ? toupper(hmm->abc->sym[x]) : tolower(hmm->abc->sym[x])); + } + hmm->consensus[hmm->M+1] = '\0'; + hmm->flags |= p7H_CONS; + return eslOK; + + ERROR: + if (hmm->consensus) free(hmm->consensus); + hmm->consensus = NULL; + hmm->flags &= (~p7H_CONS); + return status; +} +/*---------------- end, internal-setting routines ---------------*/ + + + + +/***************************************************************** + * 3. Renormalization and rescaling counts in core HMMs. + *****************************************************************/ + +/* Function: p7_hmm_Scale() + * Synopsis: In a model containing counts, rescale counts by a factor. + * + * Purpose: Given a counts-based model , scale core + * by a multiplicative factor of , where is + * often for absolute sequence weighting. + * Only affects core probability model emissions and + * transitions (, , and ). + * + * Args: hmm - counts based HMM. + * scale - scaling factor (e.g. eff_nseq/nseq); 1.0=no scaling. + * + * Returns: on success. + */ +int +p7_hmm_Scale(P7_HMM *hmm, double scale) +{ + int k; + + for (k = 0; k <= hmm->M; k++) { + esl_vec_FScale(hmm->t[k], p7H_NTRANSITIONS, scale); + esl_vec_FScale(hmm->mat[k], hmm->abc->K, scale); + esl_vec_FScale(hmm->ins[k], hmm->abc->K, scale); + } + return eslOK; +} + + +/* Function: p7_hmm_ScaleExponential() + * Synopsis: In a model containing counts, rescale counts by an exponential factor. + * + * Purpose: Given a counts-based model , scale core by an + * exponential factor . This should be thought of as + * an alternative to p7_hmm_Scale(). Let C_i be the total + * observed count in column i, and F be the scale. In + * p7_hmm_Scale, the updated total observed count would be + * C_i = C_i * F (i.e. the scaling factor is uniform across + * all columns). In this function, C_i = C_i ^ F. The result + * is a non-uniform scaling across columns -- columns with + * higher C_i will be reduced to a greater extent than will + * columns with low counts. + * + * Consider the case where one column has 30 observations and a + * bunch of others have 300. This can happen when heavily- + * fragmented sequences are used to reconstruct a family MSA, as + * in Dfam models ... but isn't likely to have been seen in Pfam + * alignments. Though the column with 30 observations isn't nearly + * as complete as the one with 300, it still has enough that we + * shouldn't be willing to discount the observations entirely - + * something that might happen if uniform entropy weighting needs + * to push the average observations down 10-fold in order to achieve + * the desired avg relative entropy. + * e.g. + * + * C_i F -> C_i + * 3 .8 2.4 + * 30 .8 15 + * 300 .8 96 + * 3 .7 2.2 + * 30 .7 11 + * 300 .7 54 + * 3 .6 1.9 + * 30 .6 7.6 + * 300 .6 30 + * + * Note: the observed counts will never drop below 1 in this case. + * + * After computing the per-column total scale for column i, that + * scale is applied to the core probability model emissions and + * transitions (, , and ) for position i. + * + * Args: hmm - counts based HMM. + * exp - exponential factor; 1.0=no scaling. + * ret_scaleavg - returns the mean of the per-column scale factors corresponding + * to the factor exp. + * + * Returns: on success. + */ +int +p7_hmm_ScaleExponential(P7_HMM *hmm, double exp) +{ + + int k; + for (k = 1; k <= hmm->M; k++) { + + float count = esl_vec_FSum(hmm->mat[k], hmm->abc->K); + float new_count = pow(count, exp); + double scale = count>0 ? new_count / count : 1.0; /* if no counts in the column (strange, but possible), just use default freqs*/ + + esl_vec_FScale(hmm->t[k], p7H_NTRANSITIONS, scale); + esl_vec_FScale(hmm->mat[k], hmm->abc->K, scale); + esl_vec_FScale(hmm->ins[k], hmm->abc->K, scale); + } + return eslOK; +} + +/* Function: p7_hmm_Renormalize() + * Synopsis: Renormalize all parameter vectors (emissions/transitions). + * + * Purpose: Take a core HMM in counts form, and renormalize + * all probability vectors in the core probability model. Enforces + * Plan7 restrictions on nonexistent transitions. + * + * Leaves other flags (stats and profile) alone, so caller + * needs to be wary. Renormalizing a probability model that + * has stats and profile scores wouldn't usually invalidate + * those data; and if we're renormalizing a counts model, we + * shouldn't have stats or profile scores yet anyway. + * + * Args: hmm - the model to renormalize. + * + * Return: on success. + */ +int +p7_hmm_Renormalize(P7_HMM *hmm) +{ + int k; /* counter for model position */ + + for (k = 0; k <= hmm->M; k++) { + esl_vec_FNorm(hmm->mat[k], hmm->abc->K); + esl_vec_FNorm(hmm->ins[k], hmm->abc->K); + esl_vec_FNorm(P7H_TMAT(hmm, k), p7H_NTMAT); /* TMX */ + esl_vec_FNorm(P7H_TDEL(hmm, k), p7H_NTDEL); /* TIX */ + esl_vec_FNorm(P7H_TINS(hmm, k), p7H_NTINS); /* TDX */ + } + /* If t[M][TD*] distribution was all zeros, we just made TDD nonzero. Oops. + * Re-enforce t's on that final delete state. */ + hmm->t[hmm->M][p7H_DM] = 1.0; + hmm->t[hmm->M][p7H_DD] = 0.0; + + /* Rare: if t[M][TM*] distribution was all zeros (all final transitions + * were D_M -> E) then we just made nonexistent M_M->D_M+1 transition nonzero. + * Fix that too. + */ + if (hmm->t[hmm->M][p7H_MD] > 0.) { + hmm->t[hmm->M][p7H_MD] = 0.; + hmm->t[hmm->M][p7H_MM] = 0.5; + hmm->t[hmm->M][p7H_MI] = 0.5; + } + + return eslOK; +} + +/***************************************************************** + * 4. Debugging and development code + *****************************************************************/ + +/* Function: p7_hmm_Dump() + * Synopsis: Dump HMM data structure to a stream. + * + * Purpose: Debugging: dump the probabilities (or counts) from a core HMM. + * + * Returns: on success. + */ +int +p7_hmm_Dump(FILE *fp, P7_HMM *hmm) +{ + int k; /* counter for nodes */ + int x; /* counter for symbols */ + int ts; /* counter for state transitions */ + + for (k = 0; k <= hmm->M; k++) + { /* Line 1: k, match emissions */ + fprintf(fp, " %5d ", k); + for (x = 0; x < hmm->abc->K; x++) + fprintf(fp, "%9.4f ", hmm->mat[k][x]); + fputs("\n", fp); + /* Line 2: insert emissions */ + fprintf(fp, " "); + for (x = 0; x < hmm->abc->K; x++) + fprintf(fp, "%9.4f ", hmm->ins[k][x]); + fputs("\n", fp); + /* Line 3: transition probs */ + fprintf(fp, " "); + for (ts = 0; ts < 7; ts++) + fprintf(fp, "%9.4f ", hmm->t[k][ts]); + fputs("\n", fp); + } + fputs("//\n", fp); + return eslOK; +} + +/* Function: p7_hmm_Sample() + * Synopsis: Sample an HMM at random. + * + * Purpose: Creates a random HMM of length nodes, + * for alphabet , obtaining randomness from + * . + * + * Probably only useful for debugging. + * + * Note: Compare p7_hmm_Renormalize(), which has a similar + * structure, except it normalizes instead of + * sampling each probability vector. + * + * Returns: on success, and the new hmm is returned + * through . + * + * Throws: on allocation error. + */ +int +p7_hmm_Sample(ESL_RANDOMNESS *r, int M, const ESL_ALPHABET *abc, P7_HMM **ret_hmm) +{ + P7_HMM *hmm = NULL; + char *logmsg = "[random HMM created by sampling]"; + int k; + int status; + + hmm = p7_hmm_Create(M, abc); + if (hmm == NULL) { status = eslEMEM; goto ERROR; } + + for (k = 0; k <= M; k++) + { + if (k > 0) esl_dirichlet_FSampleUniform(r, abc->K, hmm->mat[k]); + esl_dirichlet_FSampleUniform(r, abc->K, hmm->ins[k]); + esl_dirichlet_FSampleUniform(r, 3, hmm->t[k]); + esl_dirichlet_FSampleUniform(r, 2, hmm->t[k]+3); + if (k > 0) esl_dirichlet_FSampleUniform(r, 2, hmm->t[k]+5); + } + /* Node M is special: no transitions to D, transitions to M + * are interpreted as transitions to E. Overwrite a little of + * what we did in node M. + */ + esl_dirichlet_FSampleUniform(r, 2, hmm->t[M]); /* TMM,TMI only */ + hmm->t[M][p7H_MD] = 0.; + hmm->t[M][p7H_DM] = 1.0; + hmm->t[M][p7H_DD] = 0.0; + + /* Add mandatory annotation, and some relevant optional annotation */ + p7_hmm_SetName(hmm, "sampled-hmm"); + p7_hmm_AppendComlog(hmm, 1, &logmsg); + p7_hmm_SetCtime(hmm); + p7_hmm_SetConsensus(hmm, NULL); + + *ret_hmm = hmm; + return eslOK; + + ERROR: + if (hmm != NULL) p7_hmm_Destroy(hmm); + *ret_hmm = NULL; + return status; + +} + +/* Function: p7_hmm_SampleUngapped() + * Synopsis: Sample a random HMM with no nonzero indel transitions. + * + * Purpose: Same as , except all + * M $\rightarrow$ M transitions are 1.0: + * an ungapped model. Useful for testing + * as a limit case. + * + * Returns: on success, and the new hmm is returned + * through . + * + * Throws: on allocation error. + * + * Xref: STL11/140 + */ +int +p7_hmm_SampleUngapped(ESL_RANDOMNESS *r, int M, const ESL_ALPHABET *abc, P7_HMM **ret_hmm) +{ + P7_HMM *hmm = NULL; + int k; + int status; + + if ((status = p7_hmm_Sample(r, M, abc, &hmm)) != eslOK) goto ERROR; + for (k = 0; k <= M; k++) { + hmm->t[k][p7H_MM] = 1.0; + hmm->t[k][p7H_MD] = 0.0; + hmm->t[k][p7H_MI] = 0.0; + } + *ret_hmm = hmm; + return eslOK; + + ERROR: + if (hmm != NULL) p7_hmm_Destroy(hmm); + *ret_hmm = NULL; + return status; +} + +/* Function: esl_hmm_SampleEnumerable() + * Synopsis: Sample an random HMM with no nonzero insertion transitions. + * + * Purpose: Sample a random HMM with random emission and + * transition probabilities with the exception that + * all transitions to insert are zero. This makes + * it possible to create a model with a finite, + * easily enumerable sequence space (all seqs of + * length $\leq M). + * + * To achieve this in the profile as well as the core HMM, + * the caller must configure a unihit mode + * ( or + * ), and a target length of zero + * (). + * + * Useful for debugging and validating Forward/Viterbi + * algorithms. + * + * Returns: on success. The newly allocated hmm is returned through + * . The caller is responsible for freeing this object + * with . + * + * Throws: on allocation error. + */ +int +p7_hmm_SampleEnumerable(ESL_RANDOMNESS *r, int M, const ESL_ALPHABET *abc, P7_HMM **ret_hmm) +{ + P7_HMM *hmm = NULL; + char *logmsg = "[random enumerable HMM created by sampling]"; + int k; + float tmp[2]; + int status; + + hmm = p7_hmm_Create(M, abc); + if (hmm == NULL) { status = eslEMEM; goto ERROR; } + + for (k = 0; k <= M; k++) + { + if (k > 0) esl_dirichlet_FSampleUniform(r, abc->K, hmm->mat[k]); /* match emission probs */ + esl_dirichlet_FSampleUniform(r, abc->K, hmm->ins[k]); /* insert emission probs */ + esl_dirichlet_FSampleUniform(r, 2, tmp); + hmm->t[k][p7H_MM] = tmp[0]; + hmm->t[k][p7H_MI] = 0.; + hmm->t[k][p7H_MD] = tmp[1]; + hmm->t[k][p7H_IM] = 1.; /* I transitions irrelevant since I's are unreached. */ + hmm->t[k][p7H_II] = 0.; + if (k > 0) esl_dirichlet_FSampleUniform(r, 2, hmm->t[k]+5); /* delete transitions to M,D */ + } + + /* Node M is special: no transitions to D, transitions to M + * are interpreted as transitions to E. Overwrite a little of + * what we did in node M. + */ + hmm->t[M][p7H_MM] = 1.; + hmm->t[M][p7H_MD] = 0.; + hmm->t[M][p7H_DM] = 1.; + hmm->t[M][p7H_DD] = 0.; + + /* Add mandatory annotation + */ + p7_hmm_SetName(hmm, "sampled-hmm"); + p7_hmm_AppendComlog(hmm, 1, &logmsg); + p7_hmm_SetCtime(hmm); + p7_hmm_SetConsensus(hmm, NULL); + + /* SRE DEBUGGING */ + p7_hmm_Validate(hmm, NULL, 0.0001); + + *ret_hmm = hmm; + return eslOK; + + ERROR: + if (hmm != NULL) p7_hmm_Destroy(hmm); + *ret_hmm = NULL; + return status; +} + +/* Function: p7_hmm_SampleUniform() + * Synopsis: Sample a model that uses fixed (given) transition probs. + * + * Purpose: Sample a model that uses uniform transition probabilities, + * determined by , , , and , + * the probabilistic equivalent of gap-open/gap-extend for + * inserts, deletes. + * + * Useful for testing expected behavior on single-sequence + * models, where transitions are position-independent. + * + * Returns: on success, and the new hmm is returned + * through . + * + * Throws: on allocation error. + * + * Xref: J1/5. + */ +int +p7_hmm_SampleUniform(ESL_RANDOMNESS *r, int M, const ESL_ALPHABET *abc, + float tmi, float tii, float tmd, float tdd, + P7_HMM **ret_hmm) +{ + int status; + P7_HMM *hmm = NULL; + char *logmsg = "[HMM with uniform transitions, random emissions]"; + int k; + + hmm = p7_hmm_Create(M, abc); + if (hmm == NULL) { status = eslEMEM; goto ERROR; } + + for (k = 0; k <= M; k++) + { + if (k > 0) esl_dirichlet_FSampleUniform(r, abc->K, hmm->mat[k]); + esl_dirichlet_FSampleUniform(r, abc->K, hmm->ins[k]); + hmm->t[k][p7H_MM] = 1.0 - tmi - tmd; + hmm->t[k][p7H_MI] = tmi; + hmm->t[k][p7H_MD] = tmd; + hmm->t[k][p7H_IM] = 1.0 - tii; + hmm->t[k][p7H_II] = tii; + hmm->t[k][p7H_DM] = 1.0 - tdd; + hmm->t[k][p7H_DD] = tdd; + } + + /* Deal w/ special stuff at node 0, M, overwriting some of what we + * just did. + */ + hmm->t[M][p7H_MM] = 1.0 - tmi; + hmm->t[M][p7H_MD] = 0.; + hmm->t[M][p7H_DM] = 1.0; + hmm->t[M][p7H_DD] = 0.; + + /* Add mandatory annotation + */ + p7_hmm_SetName(hmm, "sampled-hmm"); + p7_hmm_AppendComlog(hmm, 1, &logmsg); + p7_hmm_SetCtime(hmm); + p7_hmm_SetConsensus(hmm, NULL); + + *ret_hmm = hmm; + return eslOK; + + ERROR: + if (hmm != NULL) p7_hmm_Destroy(hmm); + *ret_hmm = NULL; + return status; +} + + + +/* Function: p7_hmm_Compare() + * Synopsis: Compare two HMMs for equality. + * + * Purpose: Compare two HMMs

and

to each other; + * return if they're identical, and + * if they differ. Floating-point probabilities are + * compared for equality within a fractional tolerance + * . + */ +int +p7_hmm_Compare(P7_HMM *h1, P7_HMM *h2, float tol) +{ + int k, z; + + if (h1->abc->type != h2->abc->type) return eslFAIL; + if (h1->M != h2->M) return eslFAIL; + if (h1->flags != h2->flags) return eslFAIL; + + for (k = 0; k <= h1->M; k++) /* (it's safe to include 0 here.) */ + { + if (esl_vec_FCompare(h1->mat[k], h2->mat[k], h1->abc->K, tol) != eslOK) return eslFAIL; + if (esl_vec_FCompare(h1->ins[k], h2->ins[k], h1->abc->K, tol) != eslOK) return eslFAIL; + if (esl_vec_FCompare(h1->t[k], h2->t[k], 7, tol) != eslOK) return eslFAIL; + } + + if (strcmp(h1->name, h2->name) != 0) return eslFAIL; + if (esl_strcmp(h1->comlog, h2->comlog) != 0) return eslFAIL; + if (strcmp(h1->ctime, h2->ctime) != 0) return eslFAIL; + + if (h1->nseq != h2->nseq) return eslFAIL; + if (esl_FCompare(h1->eff_nseq, h2->eff_nseq, tol) != eslOK) return eslFAIL; + if (h1->checksum != h2->checksum) return eslFAIL; + + if (esl_strcmp(h1->acc, h2->acc) != 0) return eslFAIL; + if (esl_strcmp(h1->desc, h2->desc) != 0) return eslFAIL; + + if ((h1->flags & p7H_RF) && esl_strcmp(h1->rf, h2->rf) != 0) return eslFAIL; + if ((h1->flags & p7H_MMASK) && esl_strcmp(h1->mm, h2->mm) != 0) return eslFAIL; + if ((h1->flags & p7H_CONS) && esl_strcmp(h1->consensus, h2->consensus) != 0) return eslFAIL; + if ((h1->flags & p7H_CS) && esl_strcmp(h1->cs, h2->cs) != 0) return eslFAIL; + if ((h1->flags & p7H_CA) && esl_strcmp(h1->ca, h2->ca) != 0) return eslFAIL; + if ((h1->flags & p7H_MAP) && esl_vec_ICompare(h1->map, h2->map, h1->M+1) != 0) return eslFAIL; + + if (h1->flags & p7H_GA) { + if (esl_FCompare(h1->cutoff[p7_GA1], h2->cutoff[p7_GA1], tol) != eslOK) return eslFAIL; + if (esl_FCompare(h1->cutoff[p7_GA2], h2->cutoff[p7_GA2], tol) != eslOK) return eslFAIL; + } + if (h1->flags & p7H_TC) { + if (esl_FCompare(h1->cutoff[p7_TC1], h2->cutoff[p7_TC1], tol) != eslOK) return eslFAIL; + if (esl_FCompare(h1->cutoff[p7_TC2], h2->cutoff[p7_TC2], tol) != eslOK) return eslFAIL; + } + if (h1->flags & p7H_NC) { + if (esl_FCompare(h1->cutoff[p7_NC1], h2->cutoff[p7_NC1], tol) != eslOK) return eslFAIL; + if (esl_FCompare(h1->cutoff[p7_NC2], h2->cutoff[p7_NC2], tol) != eslOK) return eslFAIL; + } + + if (h1->flags & p7H_STATS) { + for (z = 0; z < p7_NEVPARAM; z++) + if (esl_FCompare(h1->evparam[z], h2->evparam[z], tol) != eslOK) return eslFAIL; + } + + return eslOK; +} + +/* Function: p7_hmm_Validate() + * Synopsis: Validate a data structuure. + * + * Purpose: Validates the internals of the HMM structure . + * + * Probability vectors are validated to sum up to + * within a fractional tolerance of 1.0. + * + * Probably only useful for debugging and development, + * not production code. + * + * Returns: if internals look fine. + * Returns if something is wrong. + */ +int +p7_hmm_Validate(P7_HMM *hmm, char *errbuf, float tol) +{ + int status; + int k; + + if (hmm == NULL) ESL_XFAIL(eslFAIL, errbuf, "HMM is a null pointer"); + if (hmm->M < 1) ESL_XFAIL(eslFAIL, errbuf, "HMM has M < 1"); + if (hmm->abc == NULL) ESL_XFAIL(eslFAIL, errbuf, "HMM has no alphabet reference"); + if (hmm->abc->type == eslUNKNOWN) ESL_XFAIL(eslFAIL, errbuf, "HMM's alphabet is set to unknown"); + + for (k = 0; k <= hmm->M; k++) + { + if (esl_vec_FValidate(hmm->mat[k], hmm->abc->K, tol, NULL) != eslOK) ESL_XFAIL(eslFAIL, errbuf, "mat[%d] fails pvector validation", k); + if (esl_vec_FValidate(hmm->ins[k], hmm->abc->K, tol, NULL) != eslOK) ESL_XFAIL(eslFAIL, errbuf, "ins[%d] fails pvector validation", k); + if (esl_vec_FValidate(hmm->t[k], 3, tol, NULL) != eslOK) ESL_XFAIL(eslFAIL, errbuf, "t_M[%d] fails pvector validation", k); + if (esl_vec_FValidate(hmm->t[k]+3, 2, tol, NULL) != eslOK) ESL_XFAIL(eslFAIL, errbuf, "t_I[%d] fails pvector validation", k); + if (esl_vec_FValidate(hmm->t[k]+5, 2, tol, NULL) != eslOK) ESL_XFAIL(eslFAIL, errbuf, "t_D[%d] fails pvector validation", k); + } + if (hmm->t[hmm->M][p7H_MD] != 0.0) ESL_XFAIL(eslFAIL, errbuf, "TMD should be 0 for last node"); + if (hmm->t[hmm->M][p7H_DM] != 1.0) ESL_XFAIL(eslFAIL, errbuf, "TDM should be 1 for last node"); + if (hmm->t[hmm->M][p7H_DD] != 0.0) ESL_XFAIL(eslFAIL, errbuf, "TDD should be 0 for last node"); + + if (hmm->name == NULL) ESL_XFAIL(eslFAIL, errbuf, "name is NULL: this field is mandatory"); + /* comlog is either NULL or a free text string: hard to validate */ + /* ctime, ditto */ + if ( (hmm->nseq != -1) && hmm->nseq <= 0) ESL_XFAIL(eslFAIL, errbuf, "invalid nseq"); + if ( (hmm->eff_nseq != -1.0f) && hmm->eff_nseq <= 0.0f) ESL_XFAIL(eslFAIL, errbuf, "invalid eff_nseq"); + if (!(hmm->flags & p7H_CHKSUM) && hmm->checksum != 0 ) ESL_XFAIL(eslFAIL, errbuf, "p7H_CHKSUM flag down, but nonzero checksum present"); + + if (hmm->flags & p7H_RF) { if (hmm->rf == NULL || strlen(hmm->rf) != hmm->M+1) ESL_XFAIL(eslFAIL, errbuf, "p7H_RF flag up, but rf string is invalid"); } + else if (hmm->rf) { ESL_XFAIL(eslFAIL, errbuf, "p7H_RF flag down, but rf string is present"); } + + if (hmm->flags & p7H_MMASK) { if (hmm->mm == NULL || strlen(hmm->mm) != hmm->M+1) ESL_XFAIL(eslFAIL, errbuf, "p7H_MMASK flag up, but mm string is invalid"); } + else if (hmm->mm) { ESL_XFAIL(eslFAIL, errbuf, "p7H_MMASK flag down, but mm string is present"); } + + if (hmm->flags & p7H_CONS) { if (hmm->consensus == NULL || strlen(hmm->consensus) != hmm->M+1) ESL_XFAIL(eslFAIL, errbuf, "p7H_CONS flag up, but consensus string is invalid"); } + else if (hmm->consensus) { ESL_XFAIL(eslFAIL, errbuf, "p7H_CONS flag down, but consensus string is present"); } + + if (hmm->flags & p7H_CS) { if (hmm->cs == NULL || strlen(hmm->cs) != hmm->M+1) ESL_XFAIL(eslFAIL, errbuf, "p7H_CS flag up, but cs string is invalid"); } + else if (hmm->cs) { ESL_XFAIL(eslFAIL, errbuf, "p7H_CS flag down, but cs string is present"); } + + if (hmm->flags & p7H_CA) { if (hmm->ca == NULL || strlen(hmm->ca) != hmm->M+1) ESL_XFAIL(eslFAIL, errbuf, "p7H_CA flag up, but ca string is invalid"); } + else if (hmm->ca) { ESL_XFAIL(eslFAIL, errbuf, "p7H_CA flag down, but ca string is present"); } + + if ( (hmm->flags & p7H_MAP) && hmm->map == NULL) ESL_XFAIL(eslFAIL, errbuf, "p7H_MAP flag up, but map string is null"); + if (! (hmm->flags & p7H_MAP) && hmm->map != NULL) ESL_XFAIL(eslFAIL, errbuf, "p7H_MAP flag down, but map string is present"); + + if (hmm->flags & p7H_STATS) { + if (hmm->evparam[p7_MLAMBDA] <= 0.) ESL_XFAIL(eslFAIL, errbuf, "lambda parameter can't be negative"); + if (hmm->evparam[p7_VLAMBDA] <= 0.) ESL_XFAIL(eslFAIL, errbuf, "lambda parameter can't be negative"); + if (hmm->evparam[p7_FLAMBDA] <= 0.) ESL_XFAIL(eslFAIL, errbuf, "lambda parameter can't be negative"); + } + if (hmm->flags & p7H_COMPO && esl_vec_FValidate(hmm->compo, hmm->abc->K, tol, NULL) != eslOK) + ESL_XFAIL(eslFAIL, errbuf, "composition fails pvector validation"); + + return eslOK; + + ERROR: + return status; +} +/*------------- end of debugging/development code ----------------*/ + + + + +/***************************************************************** + * 5. Other routines in the API. + *****************************************************************/ + +/* Function: p7_hmm_CalculateOccupancy() + * Synopsis: Calculate match occupancy and insert expected use count vectors. + * + * Purpose: Calculate a vector containing probability + * that each match state is used in a sampled glocal path through + * the model. Caller provides allocated space ( floats) + * for . + * + * Caller may optionally provide an array as + * well, which (if provided) will be set to contain the + * expected number of times that a sampled path would contain + * each insert state. + * + * Returns: on success. + */ +int +p7_hmm_CalculateOccupancy(const P7_HMM *hmm, float *mocc, float *iocc) +{ + int k; + + mocc[0] = 0.; /* no M_0 state */ + mocc[1] = hmm->t[0][p7H_MI] + hmm->t[0][p7H_MM]; /* initialize w/ 1 - B->D_1 */ + for (k = 2; k <= hmm->M; k++) + mocc[k] = mocc[k-1] * (hmm->t[k-1][p7H_MM] + hmm->t[k-1][p7H_MI]) + + (1.0-mocc[k-1]) * hmm->t[k-1][p7H_DM]; + if (iocc != NULL) { + iocc[0] = hmm->t[0][p7H_MI] / hmm->t[0][p7H_IM]; + for (k = 1; k <= hmm->M; k++) + iocc[k] = mocc[k] * hmm->t[k][p7H_MI] / hmm->t[k][p7H_IM]; + } + + return eslOK; +} + + + +/*---------------- end of the rest of the API -------------------*/ + + + + +/***************************************************************** + * 6. Unit tests. + *****************************************************************/ +#ifdef p7HMM_TESTDRIVE + +/* The occupancy unit test is based on the principle that + * the stationary match occupancy probability in a random HMM + * converges to 0.6, for long enough M (STL11/138) + */ +static void +utest_occupancy(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc) +{ + char *msg = "p7_hmm.c:: occupancy unit test failed"; + P7_HMM *hmm = NULL; + int M = 200; + float *occ = malloc(sizeof(float) * (M+1)); + float x; + + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal(msg); + if (p7_hmm_CalculateOccupancy(hmm, occ, NULL) != eslOK) esl_fatal(msg); + x = esl_vec_FSum(occ+1, hmm->M) / (float) hmm->M; + + if (esl_opt_GetBoolean(go, "-v") == TRUE) + { + printf("occupancy unit test:\n"); + printf("expected 0.6; got %.3f\n\n", x); + } + + if (esl_FCompare(x, 0.6, 0.1) != eslOK) esl_fatal(msg); + + free(occ); + p7_hmm_Destroy(hmm); + return; +} + +/* The composition unit test validates the SetComposition() + * calculation against the composition of a large number of sampled + * core HMM traces. This also exercises the correctness of + * p7_hmm_Sample() and p7_hmm_SetOccupancy(). + * + * SRE, Fri Dec 4 13:04:52 2009 [#h71; J5/120] + */ +static void +utest_composition(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc) +{ + char *msg = "p7_hmm.c:: composition unit test failed"; + P7_HMM *hmm = NULL; + ESL_SQ *sq = esl_sq_CreateDigital(abc); + int M = 3; + int N = 100000; + float *fq = malloc(sizeof(float) * abc->K); + int i,pos; + + if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal(msg); + if (p7_hmm_SetComposition(hmm) != eslOK) esl_fatal(msg); + + esl_vec_FSet(fq, abc->K, 0.0); + for (i = 0; i < N; i++) + { + p7_CoreEmit(r, hmm, sq, NULL); + + for (pos = 1; pos <= sq->n; pos++) + fq[sq->dsq[pos]] += 1.0; + + esl_sq_Reuse(sq); + } + esl_vec_FNorm(fq, abc->K); + + if (esl_opt_GetBoolean(go, "-v") == TRUE) + { + printf("composition unit test:\n"); + printf(" %6s %6s\n", "calced", "sample"); + printf(" %6s %6s\n", "------", "------"); + for (i = 0; i < abc->K; i++) + printf("%c %6.3f %6.3f\n", abc->sym[i], hmm->compo[i], fq[i]); + printf("\n"); + } + + if (esl_vec_FCompare(fq, hmm->compo, abc->K, 0.03) != eslOK) esl_fatal(msg); + + free(fq); + esl_sq_Destroy(sq); + p7_hmm_Destroy(hmm); + return; +} + +#endif /*p7HMM_TESTDRIVE*/ +/*---------------------- end of unit tests -----------------------*/ + + +/***************************************************************** + * 7. Test driver. + *****************************************************************/ + +#ifdef p7HMM_TESTDRIVE + +#include "p7_config.h" +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_random.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for p7_hmm.c core model routines"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_Create(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + + utest_occupancy (go, r, abc); + utest_composition(go, r, abc); + + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + exit(0); /* success */ +} + +#endif /*p7HMM_TESTDRIVE*/ +/*-------------------- end of test driver ---------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/p7_hmmcache.c b/bioinformaticsProject/hmmer/src/p7_hmmcache.c new file mode 100644 index 0000000..318e275 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_hmmcache.c @@ -0,0 +1,225 @@ +/* A cached profile database. Used by the hmmpgmd daemon. + * + * Contents: + * 1. P7_HMMCACHE : a daemon's cached profile database. + * 2. Benchmark driver. + * 3. Unit tests. + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" + +#include "hmmer.h" +#include "p7_hmmcache.h" + +/***************************************************************** + * 1. P7_HMMCACHE: a daemon's cached profile database + *****************************************************************/ + +/* Function: p7_hmmcache_Open() + * Synopsis: Cache a profile database. + * + * Purpose: Open and read all of its contents, creating + * a cached profile database in memory. Return a ptr to the + * cached profile database in <*ret_cache>. + * + * Caller may optionally provide an ptr to + * at least bytes, to capture an + * informative error message on failure. + * + * Args: hmmfile - (base) name of profile file to open + * ret_cache - RETURN: cached profile database + * errbuf - optRETURN: error message for a failure + * + * Returns: on success. <*ret_cache> points to the + * cached db. is unchanged. + * + * Failure codes: + * : couldn't be opened for reading + * : isn't in recognized HMMER file format + * : profiles in have different alphabets + * + * On any failure, <*ret_cache> is and contains + * an informative error message for the user. + * + * Throws: : memory allocation error. + */ +int +p7_hmmcache_Open(char *hmmfile, P7_HMMCACHE **ret_cache, char *errbuf) +{ + P7_HMMCACHE *cache = NULL; + P7_HMMFILE *hfp = NULL; /* open HMM database file */ + P7_OPROFILE *om = NULL; /* target profile */ + int status; + + ESL_ALLOC(cache, sizeof(P7_HMMCACHE)); + cache->name = NULL; + cache->abc = NULL; + cache->list = NULL; + cache->lalloc = 4096; /* allocation chunk size for of ptrs */ + cache->n = 0; + + if ( ( status = esl_strdup(hmmfile, -1, &cache->name) != eslOK)) goto ERROR; + ESL_ALLOC(cache->list, sizeof(P7_OPROFILE *) * cache->lalloc); + + if ( (status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf)) != eslOK) goto ERROR; // eslENOTFOUND | eslEFORMAT + + while ((status = p7_oprofile_ReadMSV(hfp, &(cache->abc), &om)) == eslOK) /* eslEFORMAT | eslEINCOMPAT */ + { + if (( status = p7_oprofile_ReadRest(hfp, om)) != eslOK) break; /* eslEFORMAT */ + + if (cache->n >= cache->lalloc) { + ESL_REALLOC(cache->list, sizeof(char *) * cache->lalloc * 2); + cache->lalloc *= 2; + } + + cache->list[cache->n++] = om; + om = NULL; + } + if (status != eslEOF) { strncpy(errbuf, hfp->errbuf, eslERRBUFSIZE); goto ERROR; } + + //printf("\nfinal:: %d memory %" PRId64 "\n", inx, total_mem); + p7_hmmfile_Close(hfp); + *ret_cache = cache; + return eslOK; + + ERROR: + if (cache) p7_hmmcache_Close(cache); + if (om) p7_oprofile_Destroy(om); + if (hfp) p7_hmmfile_Close(hfp); + return status; +} + + +/* Function: p7_hmmcache_Sizeof() + * Synopsis: Returns total size of a profile cache, in bytes. + */ +size_t +p7_hmmcache_Sizeof(P7_HMMCACHE *cache) +{ + size_t n = sizeof(P7_HMMCACHE); + int i; + + n += sizeof(char) * (strlen(cache->name) + 1); + n += esl_alphabet_Sizeof(cache->abc); + n += sizeof(P7_OPROFILE *) * cache->lalloc; /* cache->list */ + + for (i = 0; i < cache->n; i++) + n += p7_oprofile_Sizeof(cache->list[i]); + + return n; +} + + +/* Function: p7_hmmcache_SetNumericNames() + * Synopsis: Rename each profile in cache with a numeric name. + * + * Purpose: Rename every profile in profile cache + * with a numeric code, starting from "000000001". + * + * The code is nine digits long, left padded with + * 0's. + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +int +p7_hmmcache_SetNumericNames(P7_HMMCACHE *cache) +{ + int namelen = 9; /* 9 digit numeric code: 000000001, 000000002... */ + P7_OPROFILE *om; + int i; + int status; + + for (i = 0; i < cache->n; i++) + { + om = cache->list[i]; + if (om->name) free(om->name); + if (( status = esl_sprintf(&(om->name), "%0*d", namelen, i+1)) != eslOK) return status; + } + return eslOK; +} + + +/* Function: p7_hmmcache_Close() + * Synopsis: Free a profile cache. + */ +void +p7_hmmcache_Close(P7_HMMCACHE *cache) +{ + int i; + + if (! cache) return; + if (cache->name) free(cache->name); + if (cache->abc) esl_alphabet_Destroy(cache->abc); + if (cache->list) + { + for (i = 0; i < cache->n; i++) + p7_oprofile_Destroy(cache->list[i]); + free(cache->list); + } + free(cache); +} + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7HMMCACHE_BENCHMARK + +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" +#include "p7_hmmcache.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for profile database cache"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + char *hmmfile = esl_opt_GetArg(go, 1); + P7_HMMCACHE *hcache = NULL; + char errbuf[eslERRBUFSIZE]; + size_t tot_mem; + int status; + + esl_stopwatch_Start(w); + + status = p7_hmmcache_Open(hmmfile, &hcache, errbuf); + if (status == eslENOTFOUND) p7_Fail("Failed to read %s\n %s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("Failed to parse %s\n %s\n", hmmfile, errbuf); + else if (status == eslEINCOMPAT) p7_Fail("Mixed profile types in %s\n %s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Failed to cache %s: error code %d\n", hmmfile, status); + + p7_hmmcache_SetNumericNames(hcache); + tot_mem = p7_hmmcache_Sizeof(hcache); + + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("tot memory = %" PRIu64 "\n", (uint64_t) tot_mem); + + p7_hmmcache_Close(hcache); + esl_getopts_Destroy(go); + esl_stopwatch_Destroy(w); + return 0; +} +#endif /*p7HMMCACHE_BENCHMARK*/ +/*--------------- end, benchmark driver -------------------------*/ + + + diff --git a/bioinformaticsProject/hmmer/src/p7_hmmcache.h b/bioinformaticsProject/hmmer/src/p7_hmmcache.h new file mode 100644 index 0000000..43bc61a --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_hmmcache.h @@ -0,0 +1,24 @@ +/* A cached profile database. Used by the hmmpgmd daemon. + */ +#ifndef P7_HMMCACHE_INCLUDED +#define P7_HMMCACHE_INCLUDED + +#include "esl_alphabet.h" +#include "hmmer.h" + +typedef struct { + char *name; /* name of the hmm database */ + ESL_ALPHABET *abc; /* alphabet for database */ + + P7_OPROFILE **list; /* list of profiles [0 .. n-1] */ + uint32_t lalloc; /* allocated length of */ + uint32_t n; /* number of entries in */ +} P7_HMMCACHE; + +extern int p7_hmmcache_Open (char *hmmfile, P7_HMMCACHE **ret_cache, char *errbuf); +extern size_t p7_hmmcache_Sizeof (P7_HMMCACHE *cache); +extern int p7_hmmcache_SetNumericNames(P7_HMMCACHE *cache); +extern void p7_hmmcache_Close (P7_HMMCACHE *cache); + +#endif /*P7_HMMCACHE_INCLUDED*/ + diff --git a/bioinformaticsProject/hmmer/src/p7_hmmd_search_stats.c b/bioinformaticsProject/hmmer/src/p7_hmmd_search_stats.c new file mode 100644 index 0000000..b904f3a --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_hmmd_search_stats.c @@ -0,0 +1,777 @@ +/* Functions for HMMD_SEARCH_STATS objects + * NPC, 1/10/19, Havahd, "Sparta" + * + * Contents: + * 1) Serialization and deserialization routines + * 2) Unit tests + * 3) Test driver +*/ + +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_ssi.h" +#include "hmmer.h" +#include "hmmpgmd.h" + +/* Function: p7_hmmd_search_stats_Serialize + * Synopsis: Serializes a HMMD_SEARCH_STATS object into a stream of bytes + *. that can be reliably transmitted over internet sockets + * + * Purpose: Converts an architecture-dependent P7_SEARCH_STATS object into a contiguous stream + * of bytes with each field of the data structure in network byte order for transmission + * over sockets. The serialized byte stream may be part of a larger allocated buffer. + * If the provided buffer is NULL, allocates a new buffer large enough for the serialized object + * If the provided buffer is not large enough to hold the serialized object and its existing data, re-allocates + * a larger buffer + * + * Inputs: obj: A pointer to the HMMD_SEARCH_STATS object to be serialized + * buf: Handle to the buffer that the object should be serialized into. If *buf is NULL, + * a new buffer will be allocated. Passing a NULL buf is an error. + * n: Offset (in bytes) from the start of the buffer to where the serialized object should start. + * nalloc: size (in bytes) of the buffer passed in buf + * + *Returns: On success: returns eslOK, sets *buf to the base of the buffer containing the object + * if allocation or re-allocation was requried, sets *n to the offset from the start of the buffer + * to the first position after the serialized object and sets *nalloc to the new size of the buffer + * if allocation or re-allocation was required. + * + * Throws: Returns eslEMEM if unable to allocate or re-allocate memory. Returns eslEINVAL if obj == NULL, if buf == NULL, if + * n == NULL, or + * if an unknown enum value is found in obj + */ +extern int p7_hmmd_search_stats_Serialize(const HMMD_SEARCH_STATS *obj, uint8_t **buf, uint32_t *n, uint32_t *nalloc){ + + int status; // error variable used by ESL_ALLOC + int ser_size; // size of the structure when serialized + uint8_t *ptr; // current ptrition within the buffer + uint64_t network_64bit; // hold 64-bit fields after conversion to network order + // check to make sure we were passed a valid pointer + if((obj == NULL) || (n == NULL)){ + return(eslEINVAL); + } + + ser_size = HMMD_SEARCH_STATS_SERIAL_BASE; + + if(obj->hit_offsets != NULL){ + ser_size += obj->nhits * sizeof(uint64_t); + } + else{ + ser_size += sizeof(uint64_t); + } + + if(buf == NULL){ // Can't proceed, don't have any place to put the pointer to the buffer + return eslEINVAL; + } + + // make sure we have enough space in our buffer + if (*buf == NULL){ // need to allocate buffer space + ESL_ALLOC(*buf, ser_size); + *n = 0; //always start at the beginning of the buffer if we have to allocate a new one. + *nalloc = ser_size; + } + else{ + if(*n + ser_size > *nalloc){ + ESL_REALLOC(*buf, *n + ser_size); + *nalloc = *n + ser_size; + } + } + + // now that we have the buffer, do the serialization + ptr = *buf + *n; + + + // First field: elapsed + network_64bit = esl_hton64(*((uint64_t *) &(obj->elapsed))); // ow, this hurts, but is probably the best way to get the + // bits that represent a double out of a structure. Boy, will it fail horribly on any architecture that doesn't use + // 64-bit doubles + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->elapsed)); //Use memcpy here because it does the right thing with unaligned copies + ptr += sizeof(obj->elapsed); + + + // Second field: user + network_64bit = esl_hton64(*((uint64_t *) &(obj->user))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->user)); + ptr += sizeof(obj->user); + + + // Third field: sys + network_64bit = esl_hton64(*((uint64_t *) &(obj->sys))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->sys)); + ptr += sizeof(obj->sys); + + + // Fourth field: Z + network_64bit = esl_hton64(*((uint64_t *) &(obj->Z))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->Z)); + ptr += sizeof(obj->Z); + + + // Fifth field: domZ + network_64bit = esl_hton64(*((uint64_t *) &(obj->domZ))); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->domZ)); + ptr += sizeof(obj->domZ); + + + // Enum sizes are non-portable across computers and compilers, so use a switch statement so that we can be sure of how + // much space we use + switch(obj->Z_setby){ + case p7_ZSETBY_NTARGETS: + *ptr = 0; + break; + case p7_ZSETBY_OPTION: + *ptr = 1; + break; + case p7_ZSETBY_FILEINFO: + *ptr = 2; + break; + default: + ESL_EXCEPTION(eslEINVAL,"Error: unknown enum type found in HMMD_SEARCH_STATS_Serialize"); + } + ptr += 1; + + switch(obj->domZ_setby){ + case p7_ZSETBY_NTARGETS: + *ptr = 0; + break; + case p7_ZSETBY_OPTION: + *ptr = 1; + break; + case p7_ZSETBY_FILEINFO: + *ptr = 2; + break; + default: + ESL_EXCEPTION(eslEINVAL, "Error: unknown enum type found in HMMD_SEARCH_STATS_Serialize"); + } + ptr += 1; + + + // Eighth field: nmodels + network_64bit = esl_hton64(obj->nmodels); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->nmodels)); + ptr += sizeof(obj->nmodels); + + // Ninth field: nseqs + network_64bit = esl_hton64(obj->nseqs); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->nseqs)); + ptr += sizeof(obj->nseqs); + + // Tenth field: n_past_msv + network_64bit = esl_hton64(obj->n_past_msv); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->n_past_msv)); + ptr += sizeof(obj->n_past_msv); + + // Eleventh field: n_past_bias + network_64bit = esl_hton64(obj->n_past_bias); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->n_past_bias)); + ptr += sizeof(obj->n_past_bias); + + // Twelfth field: n_past_vit + network_64bit = esl_hton64(obj->n_past_vit); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->n_past_vit)); + ptr += sizeof(obj->n_past_vit); + + // Thirteenth field: n_past_fwd + network_64bit = esl_hton64(obj->n_past_fwd); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->n_past_fwd)); + ptr += sizeof(obj->n_past_fwd); + + // Fourteenth field: nhits + network_64bit = esl_hton64(obj->nhits); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->nhits)); + ptr += sizeof(obj->nhits); + + // Fifteenth field: nreported + network_64bit = esl_hton64(obj->nreported); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->nreported)); + ptr += sizeof(obj->nreported); + + // Sixteenth field: nincluded + network_64bit = esl_hton64(obj->nincluded); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(obj->nincluded)); + ptr += sizeof(obj->nincluded); + + if(obj->hit_offsets == NULL){ // no hit_offsets array + network_64bit = esl_hton64(-1); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(uint64_t)); + ptr += sizeof(uint64_t); + } + else{ + for(int i = 0; i < obj->nhits; i++){ + network_64bit = esl_hton64(obj->hit_offsets[i]); + memcpy((void *) ptr, (void *) &network_64bit, sizeof(uint64_t)); + ptr += sizeof(uint64_t); + } + } + + // Ok, we've serialized the data structure. Just need to update n + *n = ptr - *buf; // works because ptr and *buf point to uint8_t arrays + return(eslOK); + +ERROR: // We only get here if memory (re)allocation failed, so no cleanup required. + return(eslEMEM); + +} + + +/* Function: HMMD_SEARCH_STATS_Deserialize + * Synopsis: Derializes a HMMD_SEARCH_STATS object from a stream of bytes in network order into + * a valid data structure + * + * Purpose: Deserializes a serialized HMMD_SEARCH_STATS object from + *. buf starting at position position *pos. + * + * Inputs: buf: the buffer that the object should be de-serialized from + * pos: a pointer to the offset from the start of buf to the beginning of the object + * ret_obj: a HMMD_SEARCH_STATS structure to deserialize the object into. May not be NULL. + * + * Returns: On success: returns eslOK, deserializes the HMMD_SEARCH_STATS object into ret_object, and updates + *. pos to point to the position after the end of the HMMD_SEARCH_STATS object. + * + * Throws: Returns eslEINVAL if ret_obj == NULL or an unknown enum + *. value is found in one of the fields of the serialized object. + * Returns eslEMEM if unable to allocate memory + */ +extern int p7_hmmd_search_stats_Deserialize(const uint8_t *buf, uint32_t *n, HMMD_SEARCH_STATS *ret_obj){ + uint8_t *ptr; + uint64_t network_64bit; // holds 64-bit values in network order + uint64_t host_64bit; //variable to hold 64-bit values after conversion to host order + int status; + + + if ((buf == NULL) || (ret_obj == NULL)|| (n == NULL)){ // check to make sure we've been passed valid objects + return(eslEINVAL); + } + + ptr = (uint8_t *) buf + *n; // Get pointer to start of object + + //First field: elapsed. Copy out of buffer into scalar variable to deal with memory alignment, convert to + // host machine order, and then copy into correct field to deal with type issues + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->elapsed = *((double *) &host_64bit); + ptr += sizeof(uint64_t); + + //Second field: user + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->user = *((double *) &host_64bit); + ptr += sizeof(uint64_t); + + //Third field: sys + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->sys = *((double *) &host_64bit); + ptr += sizeof(uint64_t); + + //Fourth field: Z + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->Z = *((double *) &host_64bit); + ptr += sizeof(uint64_t); + + //Fifth field: domZ + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + host_64bit = esl_ntoh64(network_64bit); + ret_obj->domZ = *((double *) &host_64bit); + ptr += sizeof(uint64_t); + + //Sith and seventh fields: the enums + switch(*ptr){ + case 0: + ret_obj->Z_setby = p7_ZSETBY_NTARGETS; + break; + case 1: + ret_obj->Z_setby = p7_ZSETBY_OPTION; + break; + case 2: + ret_obj->Z_setby = p7_ZSETBY_FILEINFO; + break; + default: + ESL_EXCEPTION(eslEINVAL, "Error: unknown enum type found in HMMD_SEARCH_STATS_Deserialize"); + } + ptr++; + + switch(*ptr){ + case 0: + ret_obj->domZ_setby = p7_ZSETBY_NTARGETS; + break; + case 1: + ret_obj->domZ_setby = p7_ZSETBY_OPTION; + break; + case 2: + ret_obj->domZ_setby = p7_ZSETBY_FILEINFO; + break; + default: + ESL_EXCEPTION(eslEINVAL,"Error: unknown enum type found in HMMD_SEARCH_STATS_Deserialize"); + } + ptr++; + + //Eighth field: nmodels + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->nmodels = esl_ntoh64(network_64bit); // Can just do assignment to uint64_t field + ptr += sizeof(uint64_t); + + //Ninth field: nseqs + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->nseqs = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Tenth field: n_past_msv + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->n_past_msv = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Eleventh field: n_past_bias + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->n_past_bias = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Twelfth field: n_past_vit + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->n_past_vit = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Thirteenth field: n_past_fwd + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->n_past_fwd = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Fourteenth field: nhits + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->nhits = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Fifteenth field: nreported + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->nreported = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + //Sixteenth field: nincluded + memcpy(&network_64bit, ptr, sizeof(uint64_t)); // Grab the bytes out of the buffer + ret_obj->nincluded = esl_ntoh64(network_64bit); + ptr += sizeof(uint64_t); + + // seventh field: hit_offsets array, if any + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ptr += sizeof(uint64_t); + if(esl_ntoh64(network_64bit) == (uint64_t) -1){ // no hit_offsets array + if(ret_obj->hit_offsets != NULL){ + free(ret_obj->hit_offsets); + ret_obj->hit_offsets = NULL; + } + } + else{ // there's a hit_offsets array + if(ret_obj->hit_offsets != NULL){ + ESL_REALLOC(ret_obj->hit_offsets, ret_obj->nhits * sizeof(uint64_t)); + } + else{ + ESL_ALLOC(ret_obj->hit_offsets, ret_obj->nhits * sizeof(uint64_t)); + } + + ret_obj->hit_offsets[0] = esl_ntoh64(network_64bit); //already have the first offset read out of the buffer + for(int i = 1; i < ret_obj->nhits; i++){ + memcpy(&network_64bit, ptr, sizeof(uint64_t)); + ptr += sizeof(uint64_t); + ret_obj->hit_offsets[i] = esl_ntoh64(network_64bit); + } + } + + *n = ptr - buf; // update position counter to just past the object we just deserialized + return eslOK; // If we make it here, we've finished successfully +ERROR: + return eslEMEM; +} + +/***************************************************************** + * 2. Unit tests + *****************************************************************/ +#ifdef p7HMMD_SEARCH_STATS_TESTDRIVE + +/* compares two HMMD_SEARCH_STATS objects, and returns eslOK if their contents are the same, eslFAIL if they are different + *or if either of them are NULL + * NOTE: this function compares double-precision values for exact equality. It is thus only useful when checking that + * two HMMD_SEARCH_STATS objects have the exact same binary contents, as should be the case when we serialize/deserialize them + * it is not useful for checking HMMD_SEARCH_STATS objects for general equivalence, due to the standard problems involved in + * comparing floating-point numbers for equality. That is why it is a static function and not part of the general API for + * HMMD_SEARCH_STATS objects. + */ +static int hmmd_search_stats_Same(const HMMD_SEARCH_STATS *first, const HMMD_SEARCH_STATS *second){ + if((first == NULL)||(second==NULL)){ // we've been passed bad pointers + return eslFAIL; + } + + // Now, compare all the sub-fields + if(first->elapsed != second->elapsed){ + return eslFAIL; + } + + if(first->user != second->user){ + return eslFAIL; + } + + if(first->sys != second->sys){ + return eslFAIL; + } + + if(first->Z != second->Z){ + return eslFAIL; + } + + if(first->domZ != second->domZ){ + return eslFAIL; + } + + if(first->Z_setby != second->Z_setby){ + return eslFAIL; + } + + if(first->domZ_setby != second->domZ_setby){ + return eslFAIL; + } + + if(first->nmodels != second->nmodels){ + return eslFAIL; + } + + if(first->nseqs != second->nseqs){ + return eslFAIL; + } + + if(first->n_past_msv != second->n_past_msv){ + return eslFAIL; + } + + if(first->n_past_bias != second->n_past_bias){ + return eslFAIL; + } + + if(first->n_past_fwd != second->n_past_fwd){ + return eslFAIL; + } + + if(first->n_past_vit != second->n_past_vit){ + return eslFAIL; + } + + if(first->nhits != second->nhits){ + return eslFAIL; + } + + if(first->nreported != second->nreported){ + return eslFAIL; + } + + if(first->nincluded != second->nincluded){ + return eslFAIL; + } + + if(((first->hit_offsets != NULL) && (second->hit_offsets == NULL)) || + ((first->hit_offsets == NULL) && (second->hit_offsets != NULL))){ // one object has a hit_offsets array and the other doesn't + return eslFAIL; + } + + if(first->hit_offsets != NULL){ // both must have a hit_offsets array, since we'd already have failed if only one did + for(int i = 0; i < first->nhits; i++){ // we've already checked that both objects have the same value for nhits + if(first->hit_offsets[i] != second->hit_offsets[i]){ + return eslFAIL; + } + } + } + + return eslOK; // If we make it this far, everything matched +} + + + + // Function to generate a random double-precision value using C rand() function. + // based on example at http://www.cs.utsa.edu/~wagner/CS2073/random/random.html + // Because this uses the base rand() function, the results it generates aren't + // good enough for publication-quality research, but we're just going to use + // it to generate some random values for structures that we'll serialize and deserialize + +double random_double(double min, double max){ + + double zero_to_one = rand()/(double) RAND_MAX; + + return (max-min) * zero_to_one + min; +} + + +// serializes and deserializes 100 random HMMD_SEARCH_STATS structures +// returns eslOK if all of the deserialized structures matched the +// ones they were serialized from, eslFAIL if not, eslEMEM if unable to allocate memory +static void +utest_serialize() +{ + char msg[] = "serialize utest failed"; + HMMD_SEARCH_STATS *serial=NULL, *deserial=NULL; + uint8_t **buffer = NULL; + double low = -1000.0; + double high = 1000.0; + uint32_t pos, buffer_size; + int i,j; + int status; + + srand(time(0)); // reseed randomness + ESL_ALLOC(serial, 100 * sizeof(HMMD_SEARCH_STATS)); + ESL_ALLOC(deserial, sizeof(HMMD_SEARCH_STATS)); + deserial->hit_offsets = NULL; + ESL_ALLOC(buffer, sizeof(uint8_t *)); + *buffer = NULL; //force Serialize to allocate the first buffer + pos = 0; + buffer_size = 0; + + for (i = 0; i < 100; i++) + { + // assign random values to each field in the data structure and then serialize + serial[i].elapsed = random_double(low, high); + serial[i].user = random_double(low, high); + serial[i].sys = random_double(low, high); + serial[i].Z = random_double(low, high); + serial[i].domZ = random_double(low, high); + serial[i].Z_setby = (enum p7_zsetby_e) rand() % p7_ZSETBY_FILEINFO; + serial[i].domZ_setby = (enum p7_zsetby_e) rand() % p7_ZSETBY_FILEINFO; + serial[i].nmodels = rand(); + serial[i].nseqs = rand(); + serial[i].n_past_msv = rand(); + serial[i].n_past_bias = rand(); + serial[i].n_past_vit = rand(); + serial[i].n_past_fwd = rand(); + serial[i].nhits = rand() % 10000; // keep the size of the hit_offsets array reasonable + serial[i].nreported = rand(); + serial[i].nincluded = rand(); + + if ((rand() % 2) == 0){ // 50% chance of hit_offsets array + ESL_ALLOC(serial[i].hit_offsets, serial[i].nhits * sizeof(uint64_t)); + for(j = 0; j < serial[i].nhits; j++){ + serial[i].hit_offsets[j] = (((uint64_t) rand()) << 32) + ((uint64_t) rand()); + } + } + else serial[i].hit_offsets = NULL; + + if (p7_hmmd_search_stats_Serialize(&(serial[i]), buffer, &pos, &buffer_size) != eslOK) esl_fatal(msg); + } + + // Should now have 100 serialized structures in buffer + // Go through, deserialize each one, and compare to the structure it was serialized from + pos = 0; + for (i = 0; i < 100; i++) + { + if (p7_hmmd_search_stats_Deserialize(*buffer, &pos, deserial) != eslOK) esl_fatal(msg); + if (hmmd_search_stats_Same(&(serial[i]), deserial) != eslOK) esl_fatal(msg); + } + + // If we make it this far without failing out, we've succeeded + for (i = 0; i < 100; i++) + free(serial[i].hit_offsets); + free(serial); + free(deserial->hit_offsets); + free(deserial); + free(*buffer); + free(buffer); + return; + + ERROR: + esl_fatal(msg); +} + +// Test that the _Serialize() function generates the correct errors when passed invalid arguments +static void +utest_serialize_error_conditions() +{ + char msg[] = "serialize_error_conditions utest failed"; + uint8_t **buf = NULL; + uint32_t n = 0; + uint32_t nalloc = 0; + HMMD_SEARCH_STATS foo; + int status; + + // Start out with foo initialized to valid values + foo.elapsed = 1.0; + foo.user = 2.0; + foo.sys = 3.0; + foo.Z = 4.0; + foo.domZ = 5.0; + foo.Z_setby = p7_ZSETBY_NTARGETS; + foo.domZ_setby = p7_ZSETBY_NTARGETS; + foo.nmodels = 1; + foo.nseqs = 2; + foo.n_past_msv = 3; + foo.n_past_bias = 4; + foo.n_past_vit = 5; + foo.n_past_fwd = 6; + foo.nhits = 7; + foo.nreported = 8; + foo.nincluded = 9; + foo.hit_offsets = NULL; + + // Test 1: _Serialize returns error if passed NULL buffer + buf = NULL; + if (p7_hmmd_search_stats_Serialize(&foo, buf, &n, &nalloc) != eslEINVAL) esl_fatal(msg); + + // Test 2: error on NULL n ptr + ESL_ALLOC(buf, sizeof(uint8_t *)); + *buf = NULL; + if (p7_hmmd_search_stats_Serialize(&foo, buf, NULL, &nalloc) != eslEINVAL) esl_fatal(msg); + + // Test 3: error on NULL object ptr + if (p7_hmmd_search_stats_Serialize(NULL, buf, &n, &nalloc) != eslEINVAL) esl_fatal(msg); + + /* Comment these tests out now that Serialize() has been debugged because invalid enums terminate the utest + // Test 4: invalid enum in Z_setby field + foo.Z_setby = 255; // set Z_setby to invalid value + buf = &buf_ptr; + if(p7_hmmd_search_stats_Serialize(&foo, buf, &n, &nalloc) != eslEINVAL){ + return eslFAIL; + } + else{ + //printf("invalid Z_setby check passed\n"); + } + + // Test 5: invalid enum in domZ_setby field + foo.Z_setby = p7_ZSETBY_FILEINFO; // reset this field to valid value + foo.domZ_setby = 255; // set this one to invalid + if(p7_hmmd_search_stats_Serialize(&foo, buf, &n, &nalloc) != eslEINVAL){ + return eslFAIL; + } + else{ + //printf("invalid domZ_setby check passed\n"); + } +*/ + + if (buf) free(*buf); + free(buf); + return; + + ERROR: + esl_fatal(msg); +} + +// test that the _Deserialize() function returns the correct errors when passed invalid data +static void +utest_deserialize_error_conditions() +{ + char msg[] = "deserialize_error_conditions utest failed"; + uint8_t **buf = NULL; + uint32_t n = 0; + uint32_t nalloc = 0; + HMMD_SEARCH_STATS foo; + int status; + + // Start out with foo initialized to valid values + foo.elapsed = 1.0; + foo.user = 2.0; + foo.sys = 3.0; + foo.Z = 4.0; + foo.domZ = 5.0; + foo.Z_setby = p7_ZSETBY_NTARGETS; + foo.domZ_setby = p7_ZSETBY_NTARGETS; + foo.nmodels = 1; + foo.nseqs = 2; + foo.n_past_msv = 3; + foo.n_past_bias = 4; + foo.n_past_vit = 5; + foo.n_past_fwd = 6; + foo.nhits = 7; + foo.nreported = 8; + foo.nincluded = 9; + foo.hit_offsets = NULL; + + // Test 1: should return eslEINVAL if buf == NULL + ESL_ALLOC(buf, sizeof(uint8_t *)); + *buf = NULL; + + if (p7_hmmd_search_stats_Deserialize(*buf, &n, &foo) != eslEINVAL) esl_fatal(msg); + + if (buf) free(*buf); + free(buf); + + // Test 2: invalid Z_setby enum in serialized buffer + buf = malloc(sizeof(uint8_t *)); + *buf = NULL; + + if (p7_hmmd_search_stats_Serialize(&foo, buf, &n, &nalloc) != eslOK) esl_fatal(msg); + n = 0; // reset to beginning of buffer + + // sanity check: make sure we can deserialize the base serialized buffer before we muck with it + if (p7_hmmd_search_stats_Deserialize(*buf, &n, &foo) != eslOK) esl_fatal(msg); + + /* comment these tests out because invalid enum values cause the utest to terminate + //Now, put invalid value in the buffer at the position of the Z_setby enum + (*buf)[40] = 255; + n = 0; // reset to start of buffer + if(p7_hmmd_search_stats_Deserialize(*buf, &n, &foo) != eslEINVAL){ + free(*buf); + free(buf); + return eslFAIL; + } + else{ + //printf("Invalid Z_setby field check passed\n"); + } + + // Test 3: invalid domZ_setby enum in serialized buffer + (*buf)[40] = p7_ZSETBY_FILEINFO; // reset Z_setby to valid value + n = 0; // reset to beginning of buffer + + // sanity check: make sure we've reset the buffer to a valid state + if(p7_hmmd_search_stats_Deserialize(*buf, &n, &foo) != eslOK){ + free(*buf); + free(buf); + //printf("Didn't reset Z_setby to valid value\n"); + return eslFAIL; + } + + (*buf)[41] = 255; // set domZ_setby to invalid value + + n = 0; // reset to start of buffer + if(p7_hmmd_search_stats_Deserialize(*buf, &n, &foo) != eslEINVAL){ + free(*buf); + free(buf); + return eslFAIL; + } + else{ + //printf("Invalid domZ_setby field check passed\n"); + } +*/ + + //test 4: NULL n + (*buf)[41] = p7_ZSETBY_FILEINFO; // reset domZ_setby to valid value + n = 0; // reset to beginning of buffer + + // sanity check: make sure we've reset the buffer to a valid state + if (p7_hmmd_search_stats_Deserialize(*buf, &n, &foo) != eslOK) esl_fatal(msg); + + n = 0; // reset to start of buffer + if (p7_hmmd_search_stats_Deserialize(*buf, NULL, &foo) != eslEINVAL) esl_fatal(msg); + + + // end. If we get here, we've passed + if (buf) free(*buf); + free(buf); + return; + + ERROR: + esl_fatal(msg); +} +#endif + +/***************************************************************** + * 3. Test driver + *****************************************************************/ +#ifdef p7HMMD_SEARCH_STATS_TESTDRIVE + +int +main(int argc, char **argv) +{ + utest_serialize_error_conditions(); + utest_deserialize_error_conditions(); + utest_serialize(); + + return eslOK; +} +#endif diff --git a/bioinformaticsProject/hmmer/src/p7_hmmfile.c b/bioinformaticsProject/hmmer/src/p7_hmmfile.c new file mode 100644 index 0000000..99ac97a --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_hmmfile.c @@ -0,0 +1,2572 @@ +/* Input/output of HMMs. + * + * Contents: + * 1. The P7_HMMFILE object for reading HMMs + * 2. Writing HMMER3 HMM files. + * 3. API for reading HMM files in various formats. + * 4. Private, specific profile HMM file format parsers. + * 5. Other private functions involved in i/o. + * 6. Benchmark driver. + * 7. Unit tests. + * 8. Test driver. + * 9. Example. + */ +#include "p7_config.h" + +#include +#include +#include + +#ifdef HMMER_THREADS +#include +#endif + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_ssi.h" /* this gives us esl_byteswap */ +#include "esl_vectorops.h" /* gives us esl_vec_FCopy() */ + +#include "hmmer.h" + +/* Magic numbers identifying binary formats. + * Do not change the old magics! Necessary for backwards compatibility. + */ +#if 0 /* temporarily remove all the magic; write backwards compat stuff later */ +static uint32_t v10magic = 0xe8ededb1; /* v1.0 binary: "hmm1" + 0x80808080 */ +static uint32_t v10swap = 0xb1edede8; /* byteswapped v1.0 */ +static uint32_t v11magic = 0xe8ededb2; /* v1.1 binary: "hmm2" + 0x80808080 */ +static uint32_t v11swap = 0xb2edede8; /* byteswapped v1.1 */ +static uint32_t v17magic = 0xe8ededb3; /* v1.7 binary: "hmm3" + 0x80808080 */ +static uint32_t v17swap = 0xb3edede8; /* byteswapped v1.7 */ +static uint32_t v19magic = 0xe8ededb4; /* V1.9 binary: "hmm4" + 0x80808080 */ +static uint32_t v19swap = 0xb4edede8; /* V1.9 binary, byteswapped */ +static uint32_t v20magic = 0xe8ededb5; /* V2.0 binary: "hmm5" + 0x80808080 */ +static uint32_t v20swap = 0xb5edede8; /* V2.0 binary, byteswapped */ +#endif + +static uint32_t v3a_magic = 0xe8ededb6; /* 3/a binary: "hmm6" + 0x80808080 */ +static uint32_t v3b_magic = 0xe8ededb7; /* 3/b binary: "hmm7" + 0x80808080 */ +static uint32_t v3c_magic = 0xe8ededb8; /* 3/c binary: "hmm8" + 0x80808080 */ +static uint32_t v3d_magic = 0xe8ededb9; /* 3/d binary: "hmm9" + 0x80808080 */ +static uint32_t v3e_magic = 0xe8ededb0; /* 3/e binary: "hmm0" + 0x80808080 */ +static uint32_t v3f_magic = 0xe8ededba; /* 3/f binary: "hmma" + 0x80808080 */ + + +static int read_asc30hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm); +static int read_bin30hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm); +static int read_asc20hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm); + +static int write_bin_string(FILE *fp, char *s); +static int read_bin_string (FILE *fp, char **ret_s); +static float h2ascii2prob(char *s, float null); + + +/***************************************************************** + * 1. The P7_HMMFILE object for reading HMMs. + *****************************************************************/ + +/* Historical note: + * p7_hmmfile_Open() is deprecated; + * p7_hmmfile_OpenE() is the newer replacement, which includes + * better error reporting through a . + */ + +static int open_engine(const char *filename, char *env, P7_HMMFILE **ret_hfp, int do_ascii_only, char *errbuf); + + +/* Function: p7_hmmfile_OpenE() + * Synopsis: Open an HMM file . + * + * Purpose: Open an HMM file , and prepare to read the first + * HMM from it. + * + * We look for relative to the current working + * directory. Additionally, if we don't find it in the cwd + * and is non-NULL, we will look for + * relative to one or more directories in a colon-delimited + * list obtained from the environment variable . For + * example, if we had in the environment, a + * profile HMM application might pass "HMMERDB" as . + * + * As a special case, if is "-", then HMMs will + * be read from . In this case, has no effect. + * + * As another special case, if ends in a <.gz> + * suffix, the file is assumed to be compressed by GNU + * , and it is opened for reading from a pipe with + * . This feature is only available on + * POSIX-compliant systems that have a call, and + * is defined by the configure script at + * compile time. + * + * Args: filename - HMM file to open; or "-" for + * env - list of paths to look for in, in + * addition to current working dir; or + * ret_hfp - RETURN: opened . + * errbuf - error message buffer: , or a ptr + * to chars of allocated space. + * + * Returns: on success, and the open is returned + * in <*ret_hfp>. + * + * if can't be opened for + * reading, even after the list of directories in (if + * any) is checked. + * + * if is not in a recognized HMMER + * HMM file format. + * + * On either type of error, if a non-NULL was provided, + * a useful user error message is left in it. + * + * Throws: on allocation failure. + */ +int +p7_hmmfile_OpenE(const char *filename, char *env, P7_HMMFILE **ret_hfp, char *errbuf) +{ + return open_engine(filename, env, ret_hfp, FALSE, errbuf); +} + + +/* Function: p7_hmmfile_Open() + * Synopsis: Open an HMM file. (Deprecated version with less error handling) + * + * Purpose: Same as , above, but without the . + * This older version is now deprecated. Use . + * + * When we have squashed out all usage of legacy , + * will become . + */ +int +p7_hmmfile_Open(const char *filename, char *env, P7_HMMFILE **ret_hfp) +{ + return open_engine(filename, env, ret_hfp, FALSE, NULL); +} + +/* Function: p7_hmmfile_OpenENoDB() + * Synopsis: Open only an HMM flatfile, even if pressed db exists. + * + * Purpose: Same as except that if a pressed + * database exists for , it is ignored. Only + * itself is opened. + * + * hmmpress needs this call. Otherwise, it opens a press'ed + * database that it may be about to overwrite. + */ +int +p7_hmmfile_OpenENoDB(const char *filename, char *env, P7_HMMFILE **ret_hfp, char *errbuf) +{ + return open_engine(filename, env, ret_hfp, TRUE, errbuf); +} + + + +/* Function: p7_hmmfile_OpenNoDB() + * Synopsis: Open only an HMM flatfile, even if pressed db exists. (Deprecated) + * + * Purpose: Same as , + * database exists for , it is ignored. Only + * itself is opened. + * + * hmmpress needs this call. Otherwise, it opens a press'ed + * database that it may be about to overwrite. + */ +int +p7_hmmfile_OpenNoDB(const char *filename, char *env, P7_HMMFILE **ret_hfp) +{ + return open_engine(filename, env, ret_hfp, TRUE, NULL); +} + + +/* Function: p7_hmmfile_OpenBuffer() + * + * Purpose: Perparse a buffer containing an ascii HMM for parsing. + * + * As another special case, if ends in a <.gz> + * suffix, the file is assumed to be compressed by GNU + * , and it is opened for reading from a pipe with + * . This feature is only available on + * POSIX-compliant systems that have a call, and + * is defined by the configure script at + * compile time. + * + * Args: filename - HMM file to open; or "-" for + * env - list of paths to look for in, in + * addition to current working dir; or + * ret_hfp - RETURN: opened . + * + * Returns: on success, and the open is returned + * in <*ret_hfp>. + * + * if can't be opened for + * reading, even after the list of directories in (if + * any) is checked. + * + * if is not in a recognized HMMER + * HMM file format. + * + * Throws: on allocation failure. + */ +int +p7_hmmfile_OpenBuffer(const char *buffer, int size, P7_HMMFILE **ret_hfp) +{ + P7_HMMFILE *hfp = NULL; + int status; + char *tok; + int toklen; + + ESL_ALLOC(hfp, sizeof(P7_HMMFILE)); + hfp->f = NULL; + hfp->fname = NULL; + hfp->do_gzip = FALSE; + hfp->do_stdin = FALSE; + hfp->newly_opened = TRUE; /* well, it will be, real soon now */ + hfp->is_pressed = FALSE; +#ifdef HMMER_THREADS + hfp->syncRead = FALSE; +#endif + hfp->parser = NULL; + hfp->efp = NULL; + hfp->ffp = NULL; + hfp->pfp = NULL; + hfp->ssi = NULL; + hfp->errbuf[0] = '\0'; + + if ((hfp->efp = esl_fileparser_CreateMapped(buffer, size)) == NULL) { status = eslEMEM; goto ERROR; } + if ((status = esl_fileparser_SetCommentChar(hfp->efp, '#')) != eslOK) goto ERROR; + if ((status = esl_fileparser_GetToken(hfp->efp, &tok, &toklen)) != eslOK) goto ERROR; + + if (strcmp("HMMER3/f", tok) == 0) { hfp->format = p7_HMMFILE_3f; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/e", tok) == 0) { hfp->format = p7_HMMFILE_3e; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/d", tok) == 0) { hfp->format = p7_HMMFILE_3d; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/c", tok) == 0) { hfp->format = p7_HMMFILE_3c; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/b", tok) == 0) { hfp->format = p7_HMMFILE_3b; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/a", tok) == 0) { hfp->format = p7_HMMFILE_3a; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER2.0", tok) == 0) { hfp->format = p7_HMMFILE_20; hfp->parser = read_asc20hmm; } + + if (hfp->parser == NULL) { status = eslEFORMAT; goto ERROR; } + + *ret_hfp = hfp; + return eslOK; + + ERROR: + if (hfp != NULL) p7_hmmfile_Close(hfp); + *ret_hfp = NULL; + if (status == eslEMEM) return status; + else if (status == eslENOTFOUND) return status; + else return eslEFORMAT; +} + + +/* open_engine() + * + * Implements all of the file opening functions: + * , , , + * and . + * See their comments above. + * + * Only returns three types of errors: + * eslENOTFOUND - file (the HMM file) or program (gzip, for .gz files) not found + * eslEFORMAT - bad HMM file format (or format of associated file) + * eslEMEM - allocation failure somewhere + * , if non-NULL, will contain a useful error message. + * + */ +static int +open_engine(const char *filename, char *env, P7_HMMFILE **ret_hfp, int do_ascii_only, char *errbuf) +{ + P7_HMMFILE *hfp = NULL; + char *envfile = NULL; /* full path to filename after using environment */ + char *dbfile = NULL; /* constructed name of an index or binary db file */ + char *cmd = NULL; /* constructed gzip -dc pipe command */ + int status; + int n = strlen(filename); + union { char c[4]; uint32_t n; } magic; + char *tok; + int toklen; + + ESL_ALLOC(hfp, sizeof(P7_HMMFILE)); + hfp->f = NULL; + hfp->fname = NULL; + hfp->do_gzip = FALSE; + hfp->do_stdin = FALSE; + hfp->newly_opened = TRUE; /* well, it will be, real soon now */ + hfp->is_pressed = FALSE; +#ifdef HMMER_THREADS + hfp->syncRead = FALSE; +#endif + hfp->parser = NULL; + hfp->efp = NULL; + hfp->ffp = NULL; + hfp->pfp = NULL; + hfp->ssi = NULL; + hfp->errbuf[0] = '\0'; + + /* 1. There's two special reading modes that have limited indexing + * and optimization capability: reading from standard input, and + * reading a gzip'ped file. Once we've set one of these up and set + * either the or flag, we won't try to open + * any associated indexes or binary database files. + */ + if (strcmp(filename, "-") == 0) /* "-" means read from stdin */ + { + hfp->f = stdin; + hfp->do_stdin = TRUE; + if ((status = esl_strdup("[STDIN]", -1, &(hfp->fname))) != eslOK) ESL_XFAIL(status, errbuf, "esl_strdup failed; shouldn't happen"); + } +#ifdef HAVE_POPEN + else if (n > 3 && strcmp(filename+n-3, ".gz") == 0) /* a <*.gz> filename means read via gunzip pipe */ + { + if (! esl_FileExists(filename)) ESL_XFAIL(eslENOTFOUND, errbuf, ".gz file %s not found or not readable", filename); + if ((status = esl_sprintf(&cmd, "gzip -dc %s", filename)) != eslOK) ESL_XFAIL(status, errbuf, "when setting up .gz pipe: esl_sprintf() failed"); + if ((hfp->f = popen(cmd, "r")) == NULL) ESL_XFAIL(eslENOTFOUND, errbuf, "gzip -dc %s failed; gzip not installed or not in PATH?", filename); + if ((status = esl_strdup(filename, n, &(hfp->fname))) != eslOK) ESL_XFAIL(status, errbuf, "esl_strdup() failed, shouldn't happen"); + hfp->do_gzip = TRUE; + free(cmd); cmd = NULL; + } +#endif /*HAVE_POPEN: gzip mode */ + + + /* 2. If f> is still NULL, then we're in the usual situation + * of looking for a file on disk. It may either be in the cwd, or + * in one of the directories listed in the string. Find it, + * open it to f>, and set filename>. The + * filename> string will be used later to construct the + * names of expected index and binary database files. + */ + if (hfp->f == NULL) { + if ((hfp->f = fopen(filename, "r")) != NULL) { + if ((status = esl_strdup(filename, n, &(hfp->fname))) != eslOK) ESL_XFAIL(status, errbuf, "esl_strdup() failed, shouldn't happen"); + } else if (esl_FileEnvOpen(filename, env, &(hfp->f), &envfile) == eslOK) { + n = strlen(envfile); + if ((status = esl_strdup(envfile, n, &(hfp->fname))) != eslOK) ESL_XFAIL(status, errbuf, "esl_strdup() failed, shouldn't happen"); + free(envfile); envfile = NULL; + } else + { /* temporarily copy filename over to hfp->fname, even though we haven't opened anything: we'll next try to open .h3m */ + if ((status = esl_strdup(filename, n, &(hfp->fname))) != eslOK) ESL_XFAIL(status, errbuf, "esl_strdup() failed, shouldn't happen"); + } + } + /* f> may *still* be NULL, if is a press'ed database and ASCII file is deleted */ + + + /* 3. Look for the binary model file component of a press'ed HMM database. + * + * If f> is still NULL, this is our last chance to find it. + * (The ASCII base file may have been deleted to save space, leaving + * binary press'ed files.) + * + * If we've been asked to open only an ASCII file -- because we're being + * called by hmmpress, for example! -- then don't do this. + */ + if (! do_ascii_only && ! hfp->do_stdin && ! hfp->do_gzip) { + FILE *tmpfp; + /* if we opened an ASCII file in the HMMERDB directory, hfp->fname contains fully qualified name of file including the path */ + if ((status = esl_sprintf(&dbfile, "%s.h3m", hfp->fname) != eslOK)) ESL_XFAIL(status, errbuf, "esl_sprintf() failed; shouldn't happen"); + + if ((tmpfp = fopen(dbfile, "rb")) != NULL) + { + if (hfp->f != NULL) fclose(hfp->f); /* preferentially read the .h3m file, not the original */ + hfp->f = tmpfp; + hfp->is_pressed = TRUE; + free(hfp->fname); + if ((status = esl_strdup(dbfile, -1, &(hfp->fname))) != eslOK) ESL_XFAIL(status, errbuf, "esl_strdup() failed, shouldn't happen"); + } + else if (hfp->f == NULL && esl_FileEnvOpen(dbfile, env, &(hfp->f), &envfile) == eslOK) + { /* found a binary-only press'ed db in one of the env directories. */ + free(hfp->fname); + if ((status = esl_strdup(envfile, -1, &(hfp->fname))) != eslOK) ESL_XFAIL(status, errbuf, "esl_strdup() failed; shouldn't happen"); + hfp->is_pressed = TRUE; + } + free(dbfile); dbfile = NULL; + } + + /* 4. f> must now point to a valid model input stream: if not, we fail. + */ + if (hfp->f == NULL) + { + if (env) ESL_XFAIL(eslENOTFOUND, errbuf, "HMM file %s not found (nor an .h3m binary of it); also looked in %s", filename, env); + else ESL_XFAIL(eslENOTFOUND, errbuf, "HMM file %s not found (nor an .h3m binary of it)", filename); + } + + + /* 5. If we found and opened a binary model file .h3m, open the rest of + * the press'd model files. (this can't be true if do_ascii_only is set) + */ + if (hfp->is_pressed) + { + /* here we rely on the fact that the suffixes are .h3{mfpi}, to construct other names from .h3m file name !! */ + n = strlen(hfp->fname); /* so, n = '\0', n-1 = 'm' */ + esl_strdup(hfp->fname, n, &dbfile); + + dbfile[n-1] = 'f'; /* the MSV filter part of the optimized profiles */ + if ((hfp->ffp = fopen(dbfile, "rb")) == NULL) ESL_XFAIL(eslENOTFOUND, errbuf, "Opened %s, a pressed HMM file; but no .h3f file found", hfp->fname); + + dbfile[n-1] = 'p'; /* the remainder of the optimized profiles */ + if ((hfp->pfp = fopen(dbfile, "rb")) == NULL) ESL_XFAIL(eslENOTFOUND, errbuf, "Opened %s, a pressed HMM file; but no .h3p file found", hfp->fname); + + dbfile[n-1] = 'i'; /* the SSI index for the .h3m file */ + status = esl_ssi_Open(dbfile, &(hfp->ssi)); + if (status == eslENOTFOUND) ESL_XFAIL(eslENOTFOUND, errbuf, "Opened %s, a pressed HMM file; but no .h3i file found", hfp->fname); + else if (status == eslEFORMAT) ESL_XFAIL(eslEFORMAT, errbuf, "Opened %s, a pressed HMM file; but format of its .h3i file unrecognized", hfp->fname); + else if (status == eslERANGE) ESL_XFAIL(eslEFORMAT, errbuf, "Opened %s, a pressed HMM file; but its .h3i file is 64-bit and your system is 32-bit", hfp->fname); + else if (status != eslOK) ESL_XFAIL(eslEFORMAT, errbuf, "Opened %s, a pressed HMM file; but failed to open its .h3i file", hfp->fname); + + free(dbfile); dbfile = NULL; + } + else + { + if ((status = esl_sprintf(&dbfile, "%s.ssi", hfp->fname)) != eslOK) ESL_XFAIL(status, errbuf, "esl_sprintf() failed"); + + status = esl_ssi_Open(dbfile, &(hfp->ssi)); /* not finding an SSI file is ok. we open it if we find it. */ + if (status == eslEFORMAT) ESL_XFAIL(status, errbuf, "a %s.ssi file exists (an SSI index), but its SSI format is not recognized", hfp->fname); + else if (status == eslERANGE) ESL_XFAIL(status, errbuf, "a %s.ssi file exists (an SSI index), but is 64-bit, and your system is 32-bit", hfp->fname); + else if (status != eslOK && status != eslENOTFOUND) ESL_XFAIL(status, errbuf, "esl_ssi_Open() failed"); + free(dbfile); dbfile = NULL; + } + + + /* 6. Check for binary file format. A pressed db is automatically binary: verify. */ + if (! fread((char *) &(magic.n), sizeof(uint32_t), 1, hfp->f)) ESL_XFAIL(eslEFORMAT, errbuf, "File exists, but appears to be empty?"); + if (magic.n == v3a_magic) { hfp->format = p7_HMMFILE_3a; hfp->parser = read_bin30hmm; } + else if (magic.n == v3b_magic) { hfp->format = p7_HMMFILE_3b; hfp->parser = read_bin30hmm; } + else if (magic.n == v3c_magic) { hfp->format = p7_HMMFILE_3c; hfp->parser = read_bin30hmm; } + else if (magic.n == v3d_magic) { hfp->format = p7_HMMFILE_3d; hfp->parser = read_bin30hmm; } + else if (magic.n == v3e_magic) { hfp->format = p7_HMMFILE_3e; hfp->parser = read_bin30hmm; } + else if (magic.n == v3f_magic) { hfp->format = p7_HMMFILE_3f; hfp->parser = read_bin30hmm; } + else if (hfp->is_pressed) ESL_XFAIL(eslEFORMAT, errbuf, "Binary format tag in %s unrecognized\nCurrent H3 format is HMMER3/f. Previous H2/H3 formats also supported.", hfp->fname); + + /* 7. Checks for ASCII file format */ + if (hfp->parser == NULL) + { + /* Does the magic appear to be binary, yet we didn't recognize it? */ + if (magic.n & 0x80000000) ESL_XFAIL(eslEFORMAT, errbuf, "Format tag appears binary, but unrecognized\nCurrent H3 format is HMMER3/f. Previous H2/H3 formats also supported."); + + if ((hfp->efp = esl_fileparser_Create(hfp->f)) == NULL) ESL_XFAIL(eslEMEM, errbuf, "internal error in esl_fileparser_Create()"); + if ((status = esl_fileparser_SetCommentChar(hfp->efp, '#')) != eslOK) ESL_XFAIL(status, errbuf, "internal error in esl_fileparser_SetCommentChar()"); + if ((status = esl_fileparser_NextLinePeeked(hfp->efp, magic.c, 4)) != eslOK) ESL_XFAIL(status, errbuf, "internal error in esl_fileparser_NextLinePeeked()"); + if ((status = esl_fileparser_GetToken(hfp->efp, &tok, &toklen)) != eslOK) ESL_XFAIL(status, errbuf, "internal error in esl_fileparser_GetToken()"); + + if (strcmp("HMMER3/f", tok) == 0) { hfp->format = p7_HMMFILE_3f; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/e", tok) == 0) { hfp->format = p7_HMMFILE_3e; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/d", tok) == 0) { hfp->format = p7_HMMFILE_3d; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/c", tok) == 0) { hfp->format = p7_HMMFILE_3c; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/b", tok) == 0) { hfp->format = p7_HMMFILE_3b; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER3/a", tok) == 0) { hfp->format = p7_HMMFILE_3a; hfp->parser = read_asc30hmm; } + else if (strcmp("HMMER2.0", tok) == 0) { hfp->format = p7_HMMFILE_20; hfp->parser = read_asc20hmm; } + else ESL_XFAIL(eslEFORMAT, errbuf, "Format tag is '%s': unrecognized.\nCurrent H3 format is 'HMMER3/f'. Previous H2/H3 formats also supported.", tok); + } + + *ret_hfp = hfp; + return eslOK; + + ERROR: + if (cmd != NULL) free(cmd); + if (dbfile != NULL) free(dbfile); + if (envfile != NULL) free(envfile); + if (hfp != NULL) p7_hmmfile_Close(hfp); + *ret_hfp = NULL; + if (status == eslEMEM) return status; + else if (status == eslENOTFOUND) return status; + else return eslEFORMAT; +} + +/* Function: p7_hmmfile_Close() + * + * Purpose: Closes an open HMM file . + * + * Returns: (void) + */ +void +p7_hmmfile_Close(P7_HMMFILE *hfp) +{ + if (hfp == NULL) return; + +#ifdef HAVE_POPEN /* gzip functionality */ + if (hfp->do_gzip && hfp->f != NULL) pclose(hfp->f); +#endif + if (!hfp->do_gzip && !hfp->do_stdin && hfp->f != NULL) fclose(hfp->f); + if (hfp->ffp != NULL) fclose(hfp->ffp); + if (hfp->pfp != NULL) fclose(hfp->pfp); + if (hfp->fname != NULL) free(hfp->fname); + if (hfp->efp != NULL) esl_fileparser_Destroy(hfp->efp); + if (hfp->ssi != NULL) esl_ssi_Close(hfp->ssi); +#ifdef HMMER_THREADS + if (hfp->syncRead) pthread_mutex_destroy (&hfp->readMutex); +#endif + free(hfp); +} + +#ifdef HMMER_THREADS +/* Function: p7_hmmfile_CreateLock() + * + * Purpose: Create a lock to synchronize readers + * + * Returns: on success. + */ +int +p7_hmmfile_CreateLock(P7_HMMFILE *hfp) +{ + int status; + + if (hfp == NULL) return eslEINVAL; + + /* make sure the lock is not created twice */ + if (!hfp->syncRead) + { + hfp->syncRead = TRUE; + status = pthread_mutex_init(&hfp->readMutex, NULL); + if (status != 0) goto ERROR; + } + + return eslOK; + + ERROR: + hfp->syncRead = FALSE; + return eslFAIL; +} +#endif +/*----------------- end, P7_HMMFILE object ----------------------*/ + + + +/***************************************************************** + * 2. Writing HMMER3 HMM files. + *****************************************************************/ +static int multiline(FILE *fp, const char *pfx, char *s); +static int multilineString(char **str, const char *pfx, char *s, int *offset); +static int printprob(FILE *fp, int fieldwidth, float p); +static int probToString(char **str , int fieldwidth, float p, int offset); + +/* Function: p7_hmmfile_WriteASCII() + * Synopsis: Write a HMMER3 ASCII save file. + * + * Purpose: Write a profile HMM in an ASCII save file format to + * an open stream . + * + * Legacy file formats in the 3.x release series are + * supported by specifying the code. Pass <-1> to + * use the default current standard format; pass a valid + * code such as to select a specific + * format. + * + * Args: fp - open stream for writing + * format - -1 for default format, or a 3.x format code like + * hmm - HMM to save + * + * Returns: on success. + * + * Throws: if isn't a valid 3.0 format code. + * on write error. + */ +int +p7_hmmfile_WriteASCII(FILE *fp, int format, P7_HMM *hmm) +{ + int k, x; + int status; + + + if (format == -1) format = p7_HMMFILE_3f; + + if (format == p7_HMMFILE_3f) { if (fprintf(fp, "HMMER3/f [%s | %s]\n", HMMER_VERSION, HMMER_DATE) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");} + else if (format == p7_HMMFILE_3e) { if (fprintf(fp, "HMMER3/e [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + else if (format == p7_HMMFILE_3d) { if (fprintf(fp, "HMMER3/d [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + else if (format == p7_HMMFILE_3c) { if (fprintf(fp, "HMMER3/c [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + else if (format == p7_HMMFILE_3b) { if (fprintf(fp, "HMMER3/b [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + else if (format == p7_HMMFILE_3a) { if (fprintf(fp, "HMMER3/a [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + else ESL_EXCEPTION(eslEINVAL, "invalid HMM file format code"); + + if (fprintf(fp, "NAME %s\n", hmm->name) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (hmm->acc && fprintf(fp, "ACC %s\n", hmm->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (hmm->desc && fprintf(fp, "DESC %s\n", hmm->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "LENG %d\n", hmm->M) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (format >= p7_HMMFILE_3c && hmm->max_length > 0 && fprintf(fp, "MAXL %d\n", hmm->max_length) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "ALPH %s\n", esl_abc_DecodeType(hmm->abc->type)) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "RF %s\n", (hmm->flags & p7H_RF) ? "yes" : "no") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (format >= p7_HMMFILE_3f && fprintf(fp, "MM %s\n", (hmm->flags & p7H_MMASK) ? "yes" : "no") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (format >= p7_HMMFILE_3e && fprintf(fp, "CONS %s\n", (hmm->flags & p7H_CONS) ? "yes" : "no") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "CS %s\n", (hmm->flags & p7H_CS) ? "yes" : "no") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "MAP %s\n", (hmm->flags & p7H_MAP) ? "yes" : "no") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (hmm->ctime != NULL) { if ( fprintf (fp, "DATE %s\n", hmm->ctime) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + if (hmm->comlog != NULL) { if ( (status = multiline(fp, "COM ", hmm->comlog)) != eslOK) return status; } + if (hmm->nseq > 0) { if ( fprintf (fp, "NSEQ %d\n", hmm->nseq) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + if (hmm->eff_nseq >= 0) { if ( fprintf (fp, "EFFN %f\n", hmm->eff_nseq) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + if (hmm->flags & p7H_CHKSUM) { if ( fprintf (fp, "CKSUM %u\n", hmm->checksum) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } /* unsigned 32-bit */ + + if (hmm->abc->type == eslRNA || hmm->abc->type == eslDNA ) { + if ((hmm->flags & p7H_GA) && fprintf(fp, "GA %.2f\n", hmm->cutoff[p7_GA1]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if ((hmm->flags & p7H_TC) && fprintf(fp, "TC %.2f\n", hmm->cutoff[p7_TC1]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if ((hmm->flags & p7H_NC) && fprintf(fp, "NC %.2f\n", hmm->cutoff[p7_NC1]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + } else { + if ((hmm->flags & p7H_GA) && fprintf(fp, "GA %.2f %.2f\n", hmm->cutoff[p7_GA1], hmm->cutoff[p7_GA2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if ((hmm->flags & p7H_TC) && fprintf(fp, "TC %.2f %.2f\n", hmm->cutoff[p7_TC1], hmm->cutoff[p7_TC2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if ((hmm->flags & p7H_NC) && fprintf(fp, "NC %.2f %.2f\n", hmm->cutoff[p7_NC1], hmm->cutoff[p7_NC2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + } + if (hmm->flags & p7H_STATS) { + if (format == p7_HMMFILE_3a) { /* reverse compatibility */ + if (fprintf(fp, "STATS LOCAL VLAMBDA %f\n", hmm->evparam[p7_MLAMBDA]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "STATS LOCAL VMU %f\n", hmm->evparam[p7_MMU]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "STATS LOCAL FTAU %f\n", hmm->evparam[p7_FTAU]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + } else { /* default stats lines */ + if (fprintf(fp, "STATS LOCAL MSV %8.4f %8.5f\n", hmm->evparam[p7_MMU], hmm->evparam[p7_MLAMBDA]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "STATS LOCAL VITERBI %8.4f %8.5f\n", hmm->evparam[p7_VMU], hmm->evparam[p7_VLAMBDA]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, "STATS LOCAL FORWARD %8.4f %8.5f\n", hmm->evparam[p7_FTAU], hmm->evparam[p7_FLAMBDA]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + } + } + + if (fprintf(fp, "HMM ") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + for (x = 0; x < hmm->abc->K; x++) + { if (fprintf(fp, " %c ", hmm->abc->sym[x]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + if (fputc('\n', fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fprintf(fp, " %8s %8s %8s %8s %8s %8s %8s\n", + "m->m", "m->i", "m->d", "i->m", "i->i", "d->m", "d->d") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (hmm->flags & p7H_COMPO) { + if (fprintf(fp, " COMPO ") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + for (x = 0; x < hmm->abc->K; x++) + { if ( (status = printprob(fp, 8, hmm->compo[x])) != eslOK) return status; } + if (fputc('\n', fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + } + + /* node 0 is special: insert emissions, and B-> transitions */ + if (fputs(" ", fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + for (x = 0; x < hmm->abc->K; x++) + { if ( (status = printprob(fp, 8, hmm->ins[0][x])) != eslOK) return status; } + if (fputc('\n', fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + + if (fputs(" ", fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + for (x = 0; x < p7H_NTRANSITIONS; x++) + { if ( (status = printprob(fp, 8, hmm->t[0][x])) != eslOK) return status; } + if (fputc('\n', fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + for (k = 1; k <= hmm->M; k++) { + /* Line 1: k; match emissions; optional map, RF, MM, CS */ + if (fprintf(fp, " %6d ", k) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + for (x = 0; x < hmm->abc->K; x++) + { if ( (status = printprob(fp, 8, hmm->mat[k][x])) != eslOK) return status; } + + if (hmm->flags & p7H_MAP) { if (fprintf(fp, " %6d", hmm->map[k]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + else { if (fprintf(fp, " %6s", "-") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + + if (format >= p7_HMMFILE_3e) { + x = hmm->consensus[k]; + if (format >= p7_HMMFILE_3f && (hmm->flags & p7H_MMASK) && hmm->mm[k] == 'm' ) + x = tolower(hmm->abc->sym[hmm->abc->Kp-3]); + if (fprintf(fp, " %c", (hmm->flags & p7H_CONS) ? x : '-') < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + } + + + if (hmm->rf && hmm->rf[k] == ' ') ESL_EXCEPTION_SYS(eslEWRITE, "input alignment contains an RF line with spaces"); + if (fprintf(fp, " %c", (hmm->flags & p7H_RF) ? hmm->rf[k] : '-') < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (format >= p7_HMMFILE_3f) { if (fprintf(fp, " %c", (hmm->flags & p7H_MMASK) ? hmm->mm[k] : '-') < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + if (fprintf(fp, " %c\n", (hmm->flags & p7H_CS) ? hmm->cs[k] : '-') < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + + /* Line 2: insert emissions */ + if (fputs(" ", fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + for (x = 0; x < hmm->abc->K; x++) + { if ( (status = printprob(fp, 8, hmm->ins[k][x])) != eslOK) return status; } + /* Line 3: transitions */ + if (fputs("\n ", fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + for (x = 0; x < p7H_NTRANSITIONS; x++) + { if ( (status = printprob(fp, 8, hmm->t[k][x])) != eslOK) return status; } + if (fputc('\n', fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + } + if (fputs("//\n", fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + return eslOK; +} + + +/* Function: p7_hmmfile_WriteToString() + * Synopsis: Write a HMMER3 HMM to char. + * + * Purpose: Write a profile HMM in to string in ASCII + * format. + * + * Should produce same output as p7_hmmfile_WriteASCII + * + * Legacy file formats in the 3.x release series are + * supported by specifying the code. Pass <-1> to + * use the default current standard format; pass a valid + * code such as to select a specific + * format. + * + * Calling function is responsible for freeing the returned string. + * + * Args: ascii_hmm - char pointer where the string will be allocated and set + * format - -1 for default format, or a 3.x format code like + * hmm - HMM to save + * + * Returns: on success or on error. + */ +int +p7_hmmfile_WriteToString(char **ascii_hmm, int format, P7_HMM *hmm) +{ + int k, x; + int status; + + int offset; + int coffset = 0; + /* These 3 chars and int are used in the size determiantion */ + int size; + int n = 0; + char buff[100]; + char *end = NULL; + char *sptr; + + char *ret_hmm; + + if (format == -1) format = p7_HMMFILE_3f; + + /* In this block of code, interogate the HMM to work out the amount of memory needed to write it out as an ASCII string */ + /* The number in each row is the number of fixed chars, inlcuding the '\n' */ + + /* The header block containing the tag/value pairs */ + size = 50 + strlen(HMMER_VERSION) + strlen(HMMER_DATE); /* HMMER version text */ + size += 7 + strlen(hmm->name); /* NAME line */ + size += (hmm->acc ? ( 7 + strlen(hmm->acc)) : 0); /* ACC line, if present */ + size += (hmm->desc ? ( 7 + strlen(hmm->desc)) : 0); /* DESC line, if present */ + size += 7 + sprintf(buff, "%d", hmm->M); /*LENG tag, we determine size of field later */ + size += ((format >= p7_HMMFILE_3c && hmm->max_length) ? 7 + sprintf(buff, "%d", hmm->max_length) : 0); /*MAXL line, later formats only, optional */ + size += 7 + strlen( esl_abc_DecodeType(hmm->abc->type)); /*ALPH tag */ + size += 10; /*RF tag, yes/no */ + size += (format >= p7_HMMFILE_3f ? 10 : 0 ); /*MM line, only later formats*/ + size += (format >= p7_HMMFILE_3e ? 10 : 0 ); /*CONS line, only later formats*/ + size += 10; /*Consensus secondary structure lines */ + size += 10; /*MAP line*/ + size += (hmm->ctime != NULL ? (7 + strlen(hmm->ctime)) : 0); /*DATE line*/ + + /* Complicated as it can cover multiple lines */ + if(hmm->comlog != NULL){ + /* Determine the number of COM lines by counting the number of '\n' */ + sptr = hmm->comlog; + do { + n++; /* last line should not have \n, so count before to get count */ + end = strchr(sptr, '\n'); + sptr += (end - sptr) +1; + } while (end != NULL && *sptr != '\0'); + size += ((sprintf(buff, "%d", n) + 8) * n); /*length of all the COM tags*/ + size += strlen(hmm->comlog); + } + + size += (hmm->nseq > 0 ? 7 + sprintf(buff, "%d", hmm->nseq) : 0); /* NSEQ line */ + size += (hmm->eff_nseq >= 0 ? 7 + sprintf(buff, "%f", hmm->eff_nseq) : 0); /* EFFN line */ + size += (hmm->flags & p7H_CHKSUM ? 7 + sprintf(buff, "%u", hmm->checksum) : 0); /*CKSUM line */ + + /* Thresholds section */ + size += ((hmm->flags & p7H_GA) ? 8 + sprintf(buff, "%.2f", hmm->cutoff[p7_GA1])+sprintf(buff, "%.2f", hmm->cutoff[p7_GA2]) : 0); + size += ((hmm->flags & p7H_TC) ? 8 + sprintf(buff, "%.2f", hmm->cutoff[p7_TC1])+sprintf(buff, "%.2f", hmm->cutoff[p7_TC2]) : 0); + size += ((hmm->flags & p7H_NC) ? 8 + sprintf(buff, "%.2f", hmm->cutoff[p7_NC1])+sprintf(buff, "%.2f", hmm->cutoff[p7_NC2]) : 0); + + /* E-value stats */ + size += ((hmm->flags & p7H_STATS) ? + ((format == p7_HMMFILE_3a) ? ( 75 + sprintf(buff, "%f", hmm->evparam[p7_MLAMBDA]) + + sprintf(buff, "%f", hmm->evparam[p7_MMU]) + + sprintf(buff, "%f", hmm->evparam[p7_FTAU])) : + ( 75 + sprintf(buff, "%8.4f", hmm->evparam[p7_MMU]) + sprintf(buff, "%8.5f", hmm->evparam[p7_MLAMBDA]) + + sprintf(buff, "%8.4f", hmm->evparam[p7_VMU]) + sprintf(buff, "%8.5f", hmm->evparam[p7_VLAMBDA]) + + sprintf(buff, "%8.4f", hmm->evparam[p7_FTAU]) + sprintf(buff, "%8.5f", hmm->evparam[p7_FLAMBDA]))) + : 0); /* No STATS */ + + /* Now on to the body of the HMM */ + size += 9 + (hmm->abc->K * 9); /* Alphabet labels */ + size += 71; /* Transitions line labels */ + size += ((hmm->flags & p7H_COMPO) ? 9 + (hmm->abc->K * 9) : 0); /* Composition line */ + /* node 0 */ + size += 9 + (hmm->abc->K * 9); /* Insert emissions */ + size += 9 + ( p7H_NTRANSITIONS * 9); /* Transitions */ + + /* Matrix of probabilities */ + size += (hmm->M * ( 9 + (hmm->abc->K * 9 ) + 7 + 8 )); /* Line 1: k; match emissions; map (although optional just going to add it, RF, CS, MM) */ + size += (hmm->M * ( 9 + (hmm->abc->K * 9 ))) ; /* Line 2: insert emissions */ + size += (hmm->M * ( 9 + (p7H_NTRANSITIONS * 9) )); /* Line 3: transitions */ + size += 3; /* Final terminating line */ + + /* Now allocate the memory for the HMM string */ + ret_hmm = malloc(sizeof(char) * (size)); + + /* Now added the HMM text to the string, remembering to offset the position */ + /* If anything fails, return an eslEWRITE error */ + + /* Header block */ + if (format == p7_HMMFILE_3f) { if ((offset = sprintf(ret_hmm, "HMMER3/f [%s | %s]\n", HMMER_VERSION, HMMER_DATE)) < 0) return eslEWRITE; } + else if (format == p7_HMMFILE_3e) { if ((offset = sprintf(ret_hmm, "HMMER3/e [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE)) < 0) return eslEWRITE; } + else if (format == p7_HMMFILE_3d) { if ((offset = sprintf(ret_hmm, "HMMER3/d [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE)) < 0) return eslEWRITE; } + else if (format == p7_HMMFILE_3c) { if ((offset = sprintf(ret_hmm, "HMMER3/c [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE)) < 0) return eslEWRITE; } + else if (format == p7_HMMFILE_3b) { if ((offset = sprintf(ret_hmm, "HMMER3/b [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE)) < 0) return eslEWRITE; } + else if (format == p7_HMMFILE_3a) { if ((offset = sprintf(ret_hmm, "HMMER3/a [%s | %s; reverse compatibility mode]\n", HMMER_VERSION, HMMER_DATE)) < 0) return eslEWRITE; } + else return eslEINVAL; + coffset = offset; + + if ((offset = sprintf(ret_hmm + coffset, "NAME %s\n", hmm->name)) < 0) return eslEWRITE; + coffset += offset; + + if (hmm->acc){ + if((offset = sprintf(ret_hmm + coffset, "ACC %s\n", hmm->acc)) < 0) return eslEWRITE; + coffset += offset; + } + + if (hmm->desc){ + if ((offset = sprintf(ret_hmm + coffset, "DESC %s\n", hmm->desc)) < 0) return eslEWRITE; + coffset += offset; + } + + if ((offset = sprintf(ret_hmm + coffset, "LENG %d\n", hmm->M)) < 0) return eslEWRITE; + coffset += offset; + + if (format >= p7_HMMFILE_3c && hmm->max_length > 0){ + if((offset = sprintf(ret_hmm + coffset, "MAXL %d\n", hmm->max_length)) < 0) return eslEWRITE; + coffset += offset; + } + + if ((offset = sprintf(ret_hmm + coffset, "ALPH %s\n", esl_abc_DecodeType(hmm->abc->type))) < 0) return eslEWRITE; + coffset += offset; + + if ((offset = sprintf(ret_hmm+coffset, "RF %s\n", (hmm->flags & p7H_RF) ? "yes" : "no")) < 0) return eslEWRITE; + coffset += offset; + + if ((format >= p7_HMMFILE_3f)){ + if ((offset = sprintf(ret_hmm+coffset, "MM %s\n", (hmm->flags & p7H_MMASK) ? "yes" : "no")) < 0) return eslEWRITE; + coffset += offset; + } + + if ((format >= p7_HMMFILE_3e)){ + if((offset = sprintf(ret_hmm+coffset, "CONS %s\n", (hmm->flags & p7H_CONS) ? "yes" : "no")) < 0) return eslEWRITE; + coffset += offset; + } + + if ((offset = sprintf(ret_hmm+coffset, "CS %s\n", (hmm->flags & p7H_CS) ? "yes" : "no")) < 0) return eslEWRITE; + coffset += offset; + + if ((offset = sprintf(ret_hmm+coffset, "MAP %s\n", (hmm->flags & p7H_MAP) ? "yes" : "no")) < 0) return eslEWRITE; + coffset += offset; + + if (hmm->ctime != NULL){ + if((offset = sprintf(ret_hmm + coffset, "DATE %s\n", hmm->ctime)) < 0) return eslEWRITE; + coffset += offset; + } + + if (hmm->comlog != NULL) { + if ( (status = multilineString(&ret_hmm, "COM ", hmm->comlog, &coffset)) != eslOK) return status; } + + + if (hmm->nseq > 0){ + if((offset = sprintf(ret_hmm + coffset, "NSEQ %d\n", hmm->nseq)) < 0) return eslEWRITE; + coffset += offset; + } + + if (hmm->eff_nseq >= 0){ + if((offset = sprintf(ret_hmm + coffset, "EFFN %f\n", hmm->eff_nseq)) < 0) return eslEWRITE; + coffset += offset; + } + + if (hmm->flags & p7H_CHKSUM) { + if ((offset = sprintf (ret_hmm + coffset, "CKSUM %u\n", hmm->checksum)) < 0) return eslEWRITE; + coffset += offset; + } /* unsigned 32-bit */ + + + /* Thresholds */ + if ((hmm->flags & p7H_GA)){ + if(( offset = sprintf(ret_hmm + coffset , "GA %.2f %.2f\n", hmm->cutoff[p7_GA1], hmm->cutoff[p7_GA2])) < 0) return eslEWRITE; + coffset += offset; + } + + if ((hmm->flags & p7H_TC)){ + if(( offset = sprintf(ret_hmm + coffset , "TC %.2f %.2f\n", hmm->cutoff[p7_TC1], hmm->cutoff[p7_TC2])) < 0) return eslEWRITE; + coffset += offset; + } + + if ((hmm->flags & p7H_NC)){ + if(( offset = sprintf(ret_hmm + coffset , "NC %.2f %.2f\n", hmm->cutoff[p7_NC1], hmm->cutoff[p7_NC2])) < 0) return eslEWRITE; + coffset += offset; + } + + + /* E-value stats */ + if (hmm->flags & p7H_STATS) { + if (format == p7_HMMFILE_3a){ + if ((offset =sprintf(ret_hmm + coffset, "STATS LOCAL VLAMBDA %f\n", hmm->evparam[p7_MLAMBDA])) < 0) return eslEWRITE; + coffset += offset; + if ((offset =sprintf(ret_hmm + coffset, "STATS LOCAL VMU %f\n", hmm->evparam[p7_MMU])) < 0) return eslEWRITE; + coffset += offset; + if ((offset =sprintf(ret_hmm + coffset, "STATS LOCAL FTAU %f\n", hmm->evparam[p7_FTAU])) < 0) return eslEWRITE; + coffset += offset; + }else{ + if ((offset =sprintf(ret_hmm + coffset, "STATS LOCAL MSV %8.4f %8.5f\n", hmm->evparam[p7_MMU], hmm->evparam[p7_MLAMBDA])) < 0) return eslEWRITE; + coffset += offset; + if ((offset = sprintf(ret_hmm + coffset, "STATS LOCAL VITERBI %8.4f %8.5f\n", hmm->evparam[p7_VMU], hmm->evparam[p7_VLAMBDA])) < 0) return eslEWRITE; + coffset += offset; + if ((offset = sprintf(ret_hmm + coffset, "STATS LOCAL FORWARD %8.4f %8.5f\n", hmm->evparam[p7_FTAU], hmm->evparam[p7_FLAMBDA])) < 0) return eslEWRITE; + coffset += offset; + } + } + + + + /* HMM body */ + if ((offset = sprintf(ret_hmm + coffset, "HMM ")) < 0) return eslEWRITE; + coffset += offset; + + for (x = 0; x < hmm->abc->K; x++){ + if ((offset = sprintf(ret_hmm + coffset, " %c ", hmm->abc->sym[x])) < 0) return eslEWRITE; + coffset += offset; + } + if((offset = sprintf(ret_hmm + coffset, "\n")) < 0) return eslEWRITE; + coffset += offset; + + if ((offset = sprintf(ret_hmm + coffset, " %8s %8s %8s %8s %8s %8s %8s\n", + "m->m", "m->i", "m->d", "i->m", "i->i", "d->m", "d->d")) < 0) return eslEWRITE; + coffset += offset; + + if (hmm->flags & p7H_COMPO) { + if ((offset = sprintf(ret_hmm + coffset, " COMPO ")) < 0) return eslEWRITE; + coffset += offset; + for (x = 0; x < hmm->abc->K; x++){ + if ( (status = probToString(&ret_hmm, 8, hmm->compo[x], coffset)) != eslOK) return status; + coffset += 9; + } + if((offset = sprintf(ret_hmm + coffset, "\n")) < 0) return eslEWRITE; + coffset += offset; + } + + /* node 0 is special: insert emissions, and B-> transitions */ + if ((offset = sprintf(ret_hmm + coffset, " ")) < 0) return eslEWRITE; + coffset += offset; + for (x = 0; x < hmm->abc->K; x++){ + if ( (status = probToString(&ret_hmm, 8, hmm->ins[0][x], coffset)) != eslOK) return status; + coffset += 9; + } + + if((offset = sprintf(ret_hmm + coffset, "\n")) < 0) return eslEWRITE; + coffset += offset; + + if ((offset = sprintf(ret_hmm + coffset, " ")) < 0) return eslEWRITE; + coffset += offset; + for (x = 0; x < p7H_NTRANSITIONS; x++){ + if ( (status = probToString(&ret_hmm, 8, hmm->t[0][x], coffset)) != eslOK) return status; + coffset += 9; + } + + if((offset = sprintf(ret_hmm + coffset, "\n")) < 0) return eslEWRITE; + coffset += offset; + + + for (k = 1; k <= hmm->M; k++) { + /* Line 1: k; match emissions; optional map, RF, CS */ + if ((offset = sprintf(ret_hmm + coffset, " %6d ", k)) < 0) return eslEWRITE; + coffset += offset; + + for (x = 0; x < hmm->abc->K; x++){ + if ( (status = probToString(&ret_hmm, 8, hmm->mat[k][x], coffset)) != eslOK) return status; + coffset += 9; + } + + if (hmm->flags & p7H_MAP) { + if ((offset = sprintf(ret_hmm + coffset, " %6d", hmm->map[k])) < 0) return eslEWRITE; + coffset += offset; + } else { + if ((offset = sprintf(ret_hmm + coffset, " %6s", "-")) < 0) return eslEWRITE; + coffset += offset; + } + + if (format >= p7_HMMFILE_3e) { + if ((offset = sprintf(ret_hmm + coffset, " %c", (hmm->flags & p7H_CONS) ? hmm->consensus[k] : '-')) < 0) return eslEWRITE; + coffset += offset; + } + + if ((offset = sprintf(ret_hmm + coffset, " %c", (hmm->flags & p7H_RF) ? hmm->rf[k] : '-')) < 0) return eslEWRITE; + coffset += offset; + + if (format >= p7_HMMFILE_3f) { + if ((offset = sprintf(ret_hmm + coffset, " %c", (hmm->flags & p7H_MMASK) ? hmm->mm[k] : '-')) < 0) return eslEWRITE; + coffset += offset; + } + + if ((offset = sprintf(ret_hmm + coffset, " %c\n", (hmm->flags & p7H_CS) ? hmm->cs[k] : '-')) < 0) return eslEWRITE; + coffset += offset; + + /* Line 2: insert emissions */ + if ((offset = sprintf(ret_hmm + coffset, " ")) < 0) return eslEWRITE; + coffset += offset; + + for (x = 0; x < hmm->abc->K; x++){ + if( (status = probToString(&ret_hmm, 8, hmm->ins[k][x], coffset)) != eslOK) return status; + coffset += 9; /*Fieldwidth + 1 for space*/ + } + + /* Line 3: transitions */ + if ((offset = sprintf(ret_hmm + coffset, "\n ")) < 0) return eslEWRITE; + coffset += offset; + + for (x = 0; x < p7H_NTRANSITIONS; x++){ + if ( (status = probToString(&ret_hmm, 8, hmm->t[k][x], coffset)) != eslOK) return status; + coffset += 9;/*Fieldwidth + 1 for space*/ + } + if ((offset = sprintf(ret_hmm + coffset, "\n")) < 0) return eslEWRITE; + coffset += offset; + } + + if (sprintf(ret_hmm + coffset, "//\n") < 0) return eslEWRITE; + *ascii_hmm = ret_hmm; + + return eslOK; +} + +/* Function: p7_hmmfile_WriteBinary() + * + * Purpose: Writes an HMM to a file in HMMER3 binary format. + * + * Legacy binary file formats in the 3.x release series are + * supported by specifying the code. Pass <-1> to + * use the default current standard format; pass a valid + * code such as to select a specific + * binary format. + * + * Returns: on success. + * + * Throws: if isn't a valid 3.0 format code. + * on write error. + */ +int +p7_hmmfile_WriteBinary(FILE *fp, int format, P7_HMM *hmm) +{ + int k; + int status; + + if (format == -1) format = p7_HMMFILE_3f; + + /* Legacy: p7H_{ACC, DESC} flags used to be used to indicate + * whether optional acc, desc were present. Now we just use + * the convention. The reason to use the flags was for + * saving binary files - we thought we needed to know whether + * the acc, desc were present in the binary file before trying + * to read them, and having as one of the first + * data fields in the file solved that problem. It's not + * necessary - the {read,write}_bin_string() convention is fine. + * But write_bin_string() writes a 0 for length for a NULL string, + * whereas we weren't writing anything with the previous + * flag convention - so to maintain consistency with previous + * HMMER binary save files, we use the HMM flags fields here + * and in binary file reads. [xref J5/114] + * + * If binary format is ever revised substantially - revisit this + * issue too - and remove the flags. + */ + if (hmm->desc == NULL) hmm->flags &= ~p7H_DESC; else hmm->flags |= p7H_DESC; + if (hmm->acc == NULL) hmm->flags &= ~p7H_ACC; else hmm->flags |= p7H_ACC; + + /* ye olde magic number */ + if (format == p7_HMMFILE_3f) { if (fwrite((char *) &(v3f_magic), sizeof(uint32_t), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); } + else if (format == p7_HMMFILE_3e) { if (fwrite((char *) &(v3e_magic), sizeof(uint32_t), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); } + else if (format == p7_HMMFILE_3d) { if (fwrite((char *) &(v3d_magic), sizeof(uint32_t), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); } + else if (format == p7_HMMFILE_3c) { if (fwrite((char *) &(v3c_magic), sizeof(uint32_t), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); } + else if (format == p7_HMMFILE_3b) { if (fwrite((char *) &(v3b_magic), sizeof(uint32_t), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); } + else if (format == p7_HMMFILE_3a) { if (fwrite((char *) &(v3a_magic), sizeof(uint32_t), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); } + else ESL_EXCEPTION(eslEINVAL, "invalid HMM file format code"); + + /* info necessary for sizes of things + */ + if (fwrite((char *) &(hmm->flags), sizeof(int), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if (fwrite((char *) &(hmm->M), sizeof(int), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if (fwrite((char *) &(hmm->abc->type), sizeof(int), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + + /* The core model probabilities + */ + for (k = 1; k <= hmm->M; k++) /* match emissions (0) 1..M */ + if (fwrite((char *) hmm->mat[k], sizeof(float), hmm->abc->K, fp) != hmm->abc->K) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + for (k = 0; k <= hmm->M; k++) /* insert emissions 0..M */ + if (fwrite((char *) hmm->ins[k], sizeof(float), hmm->abc->K, fp) != hmm->abc->K) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + for (k = 0; k <= hmm->M; k++) /* note: start from 0, to include B state */ + if (fwrite((char *) hmm->t[k], sizeof(float), 7, fp) != 7) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + + /* annotation section + */ + if ( (status = write_bin_string(fp, hmm->name)) != eslOK) return status; + if ((hmm->flags & p7H_ACC) && (status = write_bin_string(fp, hmm->acc)) != eslOK) return status; + if ((hmm->flags & p7H_DESC) && (status = write_bin_string(fp, hmm->desc)) != eslOK) return status; + if ((hmm->flags & p7H_RF) && (fwrite((char *) hmm->rf, sizeof(char), hmm->M+2, fp) != hmm->M+2)) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); /* +2: 1..M and trailing \0 */ + if ((hmm->flags & p7H_MMASK)&& (fwrite((char *) hmm->mm, sizeof(char), hmm->M+2, fp) != hmm->M+2)) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); /* +2: 1..M and trailing \0 */ + if ((hmm->flags & p7H_CONS) && (fwrite((char *) hmm->consensus, sizeof(char), hmm->M+2, fp) != hmm->M+2)) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); /* don't need to test for >=3e format; p7H_CONS flag suffices (didn't exist pre-3e) */ + if ((hmm->flags & p7H_CS) && (fwrite((char *) hmm->cs, sizeof(char), hmm->M+2, fp) != hmm->M+2)) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if ((hmm->flags & p7H_CA) && (fwrite((char *) hmm->ca, sizeof(char), hmm->M+2, fp) != hmm->M+2)) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if ( (status = write_bin_string(fp, hmm->comlog)) != eslOK) return status; + if ( fwrite((char *) &(hmm->nseq), sizeof(int), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if ( fwrite((char *) &(hmm->eff_nseq), sizeof(float), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if (format >= p7_HMMFILE_3c && fwrite((char *) &(hmm->max_length), sizeof(int), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if ( (status = write_bin_string(fp, hmm->ctime)) != eslOK) return status; + if ((hmm->flags & p7H_MAP) && (fwrite((char *) hmm->map, sizeof(int), hmm->M+1, fp) != hmm->M+1)) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if ( fwrite((char *)&(hmm->checksum),sizeof(uint32_t), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + + /* E-value parameters and Pfam cutoffs */ + if (format == p7_HMMFILE_3a) + { /* reverse compatibility; 3/a format stored LAMBDA, MU, TAU */ + float oldparam[3]; + oldparam[0] = hmm->evparam[p7_MLAMBDA]; + oldparam[1] = hmm->evparam[p7_MMU]; + oldparam[2] = hmm->evparam[p7_FTAU]; + if (fwrite((char *) oldparam, sizeof(float), 3, fp) != 3) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + } + else + { /* default stats values */ + if (fwrite((char *) hmm->evparam, sizeof(float), p7_NEVPARAM, fp) != p7_NEVPARAM) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + } + if (fwrite((char *) hmm->cutoff, sizeof(float), p7_NCUTOFFS, fp) != p7_NCUTOFFS) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if ((hmm->flags & p7H_COMPO) && (fwrite((char *) hmm->compo, sizeof(float), hmm->abc->K, fp) != hmm->abc->K)) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + + return eslOK; +} +/*----------------- end, save file output ----------------------*/ + + + +/***************************************************************** + * 3. API for reading profile HMM files in various formats. + *****************************************************************/ + +/* Function: p7_hmmfile_Read() + * + * Purpose: Read the next HMM from open save file , and + * optionally return this newly allocated HMM in . + * (The optional return is so that an application is + * only interested in whether the file contains a valid + * HMM or not -- for example, to verify that a file contains + * only a single HMM instead of a database of them.) + * + * Caller may or may not already know what alphabet the HMM + * is expected to be in. A reference to the pointer to the + * current alphabet is passed in <*ret_abc>. If the alphabet + * is unknown, pass <*ret_abc = NULL>, and when the + * new HMM is read, an appropriate new alphabet object is + * allocated and passed back to the caller in <*ret_abc>. + * If the alphabet is already known, points to + * that object ptr, and the new HMM's alphabet type is + * verified to agree with it. This mechanism allows an + * application to let the first HMM determine the alphabet + * type for the application, while still keeping the + * alphabet under the application's scope of control. + * + * Returns: on success, and the newly allocated HMM is + * optionally returned via . Additionally, if + * pointed to , it now points to a newly + * allocated alphabet. + * + * Returns if no HMMs remain in the file; this may + * indicate success or failure, depending on what the + * caller is expecting. + * + * Returns on any format problems, including + * premature end of data or bad magic at the start of a + * binary file. An informative error message is left in + * errbuf>; the filename (fully qualified, if opened + * in a directory specified by an list) is in + * fname>; and if efp> is non-, the HMM + * file is in an ASCII text format, and the caller may also + * obtain the line number at which the format error was + * detected, in efp->linenumber>, and use it to + * format informative output for a user. + * + * Returns if the caller passed a known + * alphabet (a non- <*ret_abc>), but the alphabet + * of the HMM doesn't match this expectation. + * + * Upon any return that is not , <*opt_hmm> is + * and <*ret_abc> is left unchanged from what caller + * passed it as. + * + * Throws: upon an allocation error. + * on failure of other system calls, such + * as file positioning functions ( or . + */ +int +p7_hmmfile_Read(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm) +{ + /* A call to SSI to remember file position may eventually go here. */ + return (*hfp->parser)(hfp, ret_abc, opt_hmm); +} + + + +/* Function: p7_hmmfile_PositionByKey() + * Synopsis: Use SSI to reposition file to start of named HMM. + * + * Purpose: Reposition so tha next HMM we read will be the + * one named (or accessioned) . + * + * Returns: on success. + * + * Returns if isn't found in the index for + * . + * + * Returns is something goes wrong trying to + * read the index, indicating a file format problem in the + * SSI file. + * + * In the event of either error, the state of is left + * unchanged. + * + * Throws: on allocation failure, or on system i/o + * call failure, or if doesn't have an SSI + * index or is not a seekable stream. + */ +int +p7_hmmfile_PositionByKey(P7_HMMFILE *hfp, const char *key) +{ + uint16_t fh; + off_t offset; + int status; + + if (hfp->ssi == NULL) ESL_EXCEPTION(eslEINVAL, "Need an open SSI index to call p7_hmmfile_PositionByKey()"); + if ((status = esl_ssi_FindName(hfp->ssi, key, &fh, &offset, NULL, NULL)) != eslOK) return status; + if (fseeko(hfp->f, offset, SEEK_SET) != 0) ESL_EXCEPTION(eslESYS, "fseek failed"); + + hfp->newly_opened = FALSE; /* because we're poised on the magic number, and must read it */ + return eslOK; +} + + +/* Function: p7_hmmfile_Position() + * Synopsis: Reposition file to start of named HMM. + * + * Purpose: Reposition so tha start of the requested HMM. + * + * Returns: on success. + * + * In the event of either error, the state of is left + * unchanged. + * + * Throws: on system i/o call failure, or if + * is not a seekable stream. + */ +int +p7_hmmfile_Position(P7_HMMFILE *hfp, const off_t offset) +{ + if (fseeko(hfp->f, offset, SEEK_SET) != 0) ESL_EXCEPTION(eslESYS, "fseek failed"); + + hfp->newly_opened = FALSE; /* because we're poised on the magic number, and must read it */ + return eslOK; +} +/*------------------- end, input API ----------------------------*/ + + + +/***************************************************************** + * 4. Private, specific profile HMM file format parsers. + *****************************************************************/ + +/* Parsing save files from HMMER 3.x + * All parsers follow the same API. + * + * Returns on success, and if is non-NULL, + * <*opt_hmm> points at a newly allocated HMM. + * + * Additionally, if <*ret_abc> was NULL, then a new alphabet is + * allocated according to the alphabet type of this HMM, and returned + * thru . This allocation mechanism allows a main() + * application that doesn't yet know its alphabet to determine the + * alphabet when the first HMM is read, while also allowing an + * application to allocate its own alphabet and assure that the + * input HMMs are appropriate for that alphabet. + * + * Returns when no HMM remains in the file, indicating a + * normal end-of-file. + * + * Two types of "normal error" may happen, which the caller must check + * for. Returns on any save file format error, including + * bad magic (i.e. this is not a HMMER file at all). Returns + * if the expected alphabet (a non- alphabet + * specified by <*ret_abc>) does not match the alphabet type of the + * HMM. + * + * When these normal errors occur, the caller can construct its error + * message from: + * errbuf>: contains an informative error message + * fname>: name of the HMM file (or '-' if STDIN) + * and if efp> is non-, the HMM file is in ASCII text, + * and the caller may also use: + * efp->linenumber>: line on which the parse error occurred. + * + * Throws: on allocation error. + * if a system i/o call fails. + * In cases of error (including both thrown error and normal error), <*ret_abc> + * is left in its original state as passed by the caller, and <*ret_hmm> is + * returned . + */ +static int +read_asc30hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm) +{ + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + char *tag = NULL; + char *tok1 = NULL; + char *tok2 = NULL; + char *tok3 = NULL; + char *tok4 = NULL; + int alphatype; + int k,x; + off_t offset = 0; + int status; + uint32_t statstracker = 0; + + hfp->errbuf[0] = '\0'; + + if (hfp->newly_opened) + { + offset = 0; + hfp->newly_opened = FALSE; + } + else + { + /* Record where this HMM starts on disk */ + if ((! hfp->do_stdin) && (! hfp->do_gzip) && (offset = ftello(hfp->f)) < 0) ESL_XEXCEPTION(eslESYS, "ftello() failed"); + + /* First line of file: "HMMER3/f". Allocate shell for HMM annotation information (we don't know K,M yet) */ + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) goto ERROR; /* EOF here is normal; could also be a thrown EMEM */ + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tag, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "unexpected absence of tokens on data line"); + + if (hfp->format == p7_HMMFILE_3f) { if (strcmp(tag, "HMMER3/f") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Didn't find HMMER3/f tag: bad format or not a HMMER save file?"); } + else if (hfp->format == p7_HMMFILE_3e) { if (strcmp(tag, "HMMER3/e") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Didn't find HMMER3/e tag: bad format or not a HMMER save file?"); } + else if (hfp->format == p7_HMMFILE_3d) { if (strcmp(tag, "HMMER3/d") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Didn't find HMMER3/d tag: bad format or not a HMMER save file?"); } + else if (hfp->format == p7_HMMFILE_3c) { if (strcmp(tag, "HMMER3/c") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Didn't find HMMER3/c tag: bad format or not a HMMER save file?"); } + else if (hfp->format == p7_HMMFILE_3b) { if (strcmp(tag, "HMMER3/b") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Didn't find HMMER3/b tag: bad format or not a HMMER save file?"); } + else if (hfp->format == p7_HMMFILE_3a) { if (strcmp(tag, "HMMER3/a") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Didn't find HMMER3/a tag: bad format or not a HMMER save file?"); } + else ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No such HMM file format code: this shouldn't happen"); + } + + if ((hmm = p7_hmm_CreateShell()) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failure, HMM shell"); + hmm->offset = offset; + + /* Header section */ + while ((status = esl_fileparser_NextLine(hfp->efp)) == eslOK) + { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tag, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of line"); + + if (strcmp(tag, "NAME") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No name found on NAME line"); + p7_hmm_SetName(hmm, tok1); + } + + else if (strcmp(tag, "ACC") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No accession found on ACC line"); + p7_hmm_SetAccession(hmm, tok1); + } + + else if (strcmp(tag, "DESC") == 0) { + if ((status = esl_fileparser_GetRemainingLine(hfp->efp, &tok1)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No description found on DESC line"); + p7_hmm_SetDescription(hmm, tok1); + } + + else if (strcmp(tag, "LENG") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No model length found on LENG line"); + if ((hmm->M = atoi(tok1)) == 0) ESL_XFAIL(status, hfp->errbuf, "Invalid model length %s on LENG line", tok1); + } + + else if (hfp->format >= p7_HMMFILE_3c && strcmp(tag, "MAXL") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No max length found on MAXL line"); + if ((hmm->max_length = atoi(tok1)) == 0) ESL_XFAIL(status, hfp->errbuf, "Invalid max length %s on MAXL line", tok1); + } + + else if (strcmp(tag, "ALPH") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No alphabet type found on ALPH"); + if ((alphatype = esl_abc_EncodeType(tok1)) == eslUNKNOWN) ESL_XFAIL(status, hfp->errbuf, "Unrecognized alphabet type %s", tok1); + if (*ret_abc == NULL) { + if ((abc = esl_alphabet_Create(alphatype)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "Failed to create alphabet"); + } else { + if ((*ret_abc)->type != alphatype) ESL_XFAIL(eslEINCOMPAT,hfp->errbuf,"Alphabet type mismatch: was %s, but current HMM says %s", esl_abc_DecodeType( (*ret_abc)->type), tok1); + abc = *ret_abc; + } + } + + else if (strcmp(tag, "RF") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No yes/no found for RF line"); + if (strcasecmp(tok1, "yes") == 0) + hmm->flags |= p7H_RF; + else if (strcasecmp(tok1, "no") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "RF header line must say yes/no, not %s", tok1); + } + + else if (strcmp(tag, "MM") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No yes/no found for MM line"); + if (strcasecmp(tok1, "yes") == 0) + hmm->flags |= p7H_MMASK; + else if (strcasecmp(tok1, "no") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "MM header line must say yes/no, not %s", tok1); + } + + + else if (strcmp(tag, "CONS") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No yes/no found for CONS line"); + if (strcasecmp(tok1, "yes") == 0) + hmm->flags |= p7H_CONS; + else if (strcasecmp(tok1, "no") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "CONS header line must say yes/no, not %s", tok1); + } + + else if (strcmp(tag, "CS") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No yes/no found for CS line"); + if (strcasecmp(tok1, "yes") == 0) + hmm->flags |= p7H_CS; + else if (strcasecmp(tok1, "no") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "CS header line must say yes/no, not %s", tok1); + } + + else if (strcmp(tag, "MAP") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No yes/no found for MAP line"); + if (strcasecmp(tok1, "yes") == 0) + hmm->flags |= p7H_MAP; + else if (strcasecmp(tok1, "no") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "MAP header line must say yes/no, not %s", tok1); + } + + else if (strcmp(tag, "DATE") == 0) { + if ((status = esl_fileparser_GetRemainingLine(hfp->efp, &tok1)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No date found on DATE line"); + if (esl_strdup(tok1, -1, &(hmm->ctime)) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "strdup() failed to set date"); + } + + else if (strcmp(tag, "COM") == 0) { + /* just skip the first token; it's something like [1], numbering the command lines */ + if ((status = esl_fileparser_GetTokenOnLine (hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No command number on COM line"); + if ((status = esl_fileparser_GetRemainingLine(hfp->efp, &tok1)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No command on COM line"); + if (hmm->comlog == NULL) { + if (esl_strdup(tok1, -1, &(hmm->comlog)) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "esl_strdup() failed"); + } else { + if (esl_strcat(&(hmm->comlog), -1, "\n", -1) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "esl_strcat() failed"); + if (esl_strcat(&(hmm->comlog), -1, tok1, -1) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "esl_strcat() failed"); + } + } + + else if (strcmp(tag, "NSEQ") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Nothing follows NSEQ tag"); + if ((hmm->nseq = atoi(tok1)) == 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Invalid nseq on NSEQ line: should be integer, not %s", tok1); + } + + else if (strcmp(tag, "EFFN") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Nothing follows EFFN tag"); + if ((hmm->eff_nseq = atof(tok1)) <= 0.0f) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Invalid eff_nseq on EFFN line: should be a real number, not %s", tok1); + } + + else if (strcmp(tag, "CKSUM") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Nothing follows CKSUM tag"); + hmm->checksum = atoll(tok1); /* if atoi(), then you may truncate uint32_t checksums > 2^31-1 */ + hmm->flags |= p7H_CHKSUM; + } + + else if (strcmp(tag, "STATS") == 0) { + if (hfp->format >= p7_HMMFILE_3b) + { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on STATS line"); /* LOCAL */ + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on STATS line"); /* MSV | VITERBI | FORWARD */ + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok3, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on STATS line"); /* mu | tau */ + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok4, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on STATS line"); /* lambda */ + if (strcasecmp(tok1, "LOCAL") == 0) + { + if (strcasecmp(tok2, "MSV") == 0) { hmm->evparam[p7_MMU] = atof(tok3); hmm->evparam[p7_MLAMBDA] = atof(tok4); statstracker |= 0x1; } + else if (strcasecmp(tok2, "VITERBI") == 0) { hmm->evparam[p7_VMU] = atof(tok3); hmm->evparam[p7_VLAMBDA] = atof(tok4); statstracker |= 0x2; } + else if (strcasecmp(tok2, "FORWARD") == 0) { hmm->evparam[p7_FTAU] = atof(tok3); hmm->evparam[p7_FLAMBDA] = atof(tok4); statstracker |= 0x4; } + else ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Failed to parse STATS, %s unrecognized as field 3", tok2); + } else ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Failed to parse STATS, %s unrecognized as field 2", tok1); + } + else if (hfp->format == p7_HMMFILE_3a) /* reverse compatibility with 30a */ + { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on STATS line"); /* LOCAL */ + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on STATS line"); /* VLAMBDA | VMU | FTAU */ + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok3, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on STATS line"); /* value */ + if (strcasecmp(tok1, "LOCAL") == 0) + { + if (strcasecmp(tok2, "VLAMBDA") == 0) { hmm->evparam[p7_MLAMBDA] = hmm->evparam[p7_VLAMBDA] = hmm->evparam[p7_FLAMBDA] = atof(tok3); statstracker |= 0x1; } + else if (strcasecmp(tok2, "VMU") == 0) { hmm->evparam[p7_MMU] = hmm->evparam[p7_VMU] = atof(tok3); statstracker |= 0x2; } + else if (strcasecmp(tok2, "FTAU") == 0) { hmm->evparam[p7_FTAU] = atof(tok3); statstracker |= 0x4; } + else ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Failed to parse STATS, %s unrecognized as field 3", tok2); + } else ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Failed to parse STATS, %s unrecognized as field 2", tok1); + } + } + + else if (strcmp(tag, "GA") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on GA line"); + hmm->cutoff[p7_GA1] = atof(tok1); + if ( (abc->type == eslDNA || abc->type == eslRNA) ) { //if DNA, there's no need for a 2nd value (domain GA) + hmm->cutoff[p7_GA2] = hmm->cutoff[p7_GA1]; + } else { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on GA line"); + hmm->cutoff[p7_GA2] = atof(tok2); + } + hmm->flags |= p7H_GA; + } + + else if (strcmp(tag, "TC") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on TC line"); + hmm->cutoff[p7_TC1] = atof(tok1); + if ( (abc->type == eslDNA || abc->type == eslRNA) ) { //if DNA, there's no need for a 2nd value (domain GA) + hmm->cutoff[p7_TC2] = hmm->cutoff[p7_TC1]; + } else { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on TC line"); + hmm->cutoff[p7_TC2] = atof(tok2); + } + hmm->flags |= p7H_TC; + } + + else if (strcmp(tag, "NC") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NC line"); + hmm->cutoff[p7_NC1] = atof(tok1); + if ( (abc->type == eslDNA || abc->type == eslRNA) ) { //if DNA, there's no need for a 2nd value (domain GA) + hmm->cutoff[p7_NC2] = hmm->cutoff[p7_NC1]; + } else { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NC line"); + hmm->cutoff[p7_NC2] = atof(tok2); + } + hmm->flags |= p7H_NC; + } + + else if (strcmp(tag, "HMM") == 0) + break; + } /* end, loop over possible header tags */ + + if (status != eslOK) goto ERROR; + + /* If we saw one STATS line, we need all 3. (True for both 3/a and 3/b formats) */ + if (statstracker == 0x7) hmm->flags |= p7H_STATS; + else if (statstracker != 0x0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Missing one or more STATS parameter lines"); + + + /* Skip main model header lines; allocate body of HMM now that K,M are known */ + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data before main model section"); + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data before main model section"); + if ((status = p7_hmm_CreateBody(hmm, hmm->M, abc)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Failed to allocate body of the new HMM"); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data before main model section"); + + /* Optional model composition (filter null model) may immediately follow headers */ + if (strcmp(tok1, "COMPO") == 0) { + for (x = 0; x < abc->K; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on COMPO line"); + hmm->compo[x] = (*tok1 == '*' ? 0.0 : expf(-1.0 * atof(tok1))); + } + hmm->flags |= p7H_COMPO; + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data after COMPO line"); + if ((esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data after COMPO line"); + } + + /* First two lines are node 0: insert emissions, then transitions from node 0 (begin) */ + + hmm->ins[0][0] = (*tok1 == '*' ? 0.0 : expf(-1.0 *atof(tok1))); + for (x = 1; x < abc->K; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on insert line, node 0: expected %d, got %d\n", abc->K, x); + hmm->ins[0][x] = (*tok1 == '*' ? 0.0 : expf(-1.0 *atof(tok1))); + } + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model: no node 0 transition line"); + for (x = 0; x < p7H_NTRANSITIONS; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on begin (0) transition line"); + hmm->t[0][x] = (*tok1 == '*' ? 0.0 : expf(-1.0 *atof(tok1))); + } + + /* The main model section. */ + for (k = 1; k <= hmm->M; k++) + { + + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model section, at node %d (expected %d)", k, hmm->M); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model section, at node %d (expected %d)", k, hmm->M); + if (atoi(tok1) != k) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Expected match line to start with %d (of %d); saw %s", k, hmm->M, tok1); + + for (x = 0; x < abc->K; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few probability fields on match line, node %d: expected %d, got %d\n", k, abc->K, x); + hmm->mat[k][x] = (*tok1 == '*' ? 0.0 : expf(-1.0 *atof(tok1))); + } + + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing MAP field on match line for node %d: should at least be -", k); + if (hmm->flags & p7H_MAP) hmm->map[k] = atoi(tok1); + + if (hfp->format >= p7_HMMFILE_3e) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing CONS field on match line for node %d: should at least be -", k); + if (hmm->flags & p7H_CONS) hmm->consensus[k] = *tok1; + } + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing RF field on match line for node %d: should at least be -", k); + if (hmm->flags & p7H_RF) hmm->rf[k] = *tok1; + + if (hfp->format >= p7_HMMFILE_3f) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing MM field on match line for node %d: should at least be -", k); + if (hmm->flags & p7H_MMASK) hmm->mm[k] = *tok1; + } + + + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing CS field on match line for node %d: should at least be -", k); + if (hmm->flags & p7H_CS) hmm->cs[k] = *tok1; + + + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model: no insert emission line, node %d", k); + for (x = 0; x < abc->K; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few probability fields on insert line, node %d: expected %d, got %d\n", k, abc->K, x); + hmm->ins[k][x] = (*tok1 == '*' ? 0.0 : expf(-1.0 *atof(tok1))); + } + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model: no transition line, node %d", k); + for (x = 0; x < p7H_NTRANSITIONS; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few probability fields on transition line, node %d: expected %d, got %d\n", k, abc->K, x); + hmm->t[k][x] = (*tok1 == '*' ? 0.0 : expf(-1.0 *atof(tok1))); + } + } + + /* The closing // */ + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data: missing //?"); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data: missing //?"); + if (strcmp(tok1, "//") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Expected closing //; found %s instead", tok1); + + /* legacy issues */ + if (hfp->format < p7_HMMFILE_3e && (status = p7_hmm_SetConsensus(hmm, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Failed to set consensus on legacy HMM format"); + + /* Finish up. */ + if (hmm->flags & p7H_RF) { hmm->rf[0] = ' '; hmm->rf[hmm->M+1] = '\0'; } + if (hmm->flags & p7H_MMASK){ hmm->mm[0] = ' '; hmm->mm[hmm->M+1] = '\0'; } + if (hmm->flags & p7H_CONS) { hmm->consensus[0] = ' '; hmm->consensus[hmm->M+1] = '\0'; } + if (hmm->flags & p7H_CS) { hmm->cs[0] = ' '; hmm->cs[hmm->M+1] = '\0'; } + if (hmm->flags & p7H_MAP) { hmm->map[0] = 0; } + if (hmm->name == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No NAME found for HMM"); + if (hmm->M <= 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No LENG found for HMM (or LENG <= 0)"); + if (abc == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No ALPH found for HMM"); + + if (*ret_abc == NULL) *ret_abc = abc; + if ( opt_hmm != NULL) *opt_hmm = hmm; else p7_hmm_Destroy(hmm); + return eslOK; + + ERROR: + if (*ret_abc == NULL && abc != NULL) esl_alphabet_Destroy(abc); + if (hmm != NULL) p7_hmm_Destroy(hmm); + if (opt_hmm != NULL) *opt_hmm = NULL; + if (status == eslEMEM || status == eslESYS) return status; + else if (status == eslEOF) return status; + else if (status == eslEINCOMPAT) return status; + else return eslEFORMAT; /* anything else is a format error: includes premature EOF, EOL, EOD */ +} + + +static int +read_bin30hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm) +{ + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + uint32_t magic; + int alphabet_type; + int k; + off_t offset = 0; + int status; + + hfp->errbuf[0] = '\0'; + if (feof(hfp->f)) { status = eslEOF; goto ERROR; } + + if (hfp->newly_opened) + { + offset = 0; + hfp->newly_opened = FALSE; + } + else + { /* Check magic. */ + if ((!hfp->do_stdin) && (! hfp->do_gzip)) { + if ((offset = ftello(hfp->f)) < 0) ESL_XEXCEPTION(eslESYS, "ftello() failed"); + } + if (! fread((char *) &magic, sizeof(uint32_t), 1, hfp->f)) { status = eslEOF; goto ERROR; } + + if (hfp->format == p7_HMMFILE_3f) { if (magic != v3f_magic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic number at start of HMM"); } + else if (hfp->format == p7_HMMFILE_3e) { if (magic != v3e_magic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic number at start of HMM"); } + else if (hfp->format == p7_HMMFILE_3d) { if (magic != v3d_magic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic number at start of HMM"); } + else if (hfp->format == p7_HMMFILE_3c) { if (magic != v3c_magic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic number at start of HMM"); } + else if (hfp->format == p7_HMMFILE_3b) { if (magic != v3b_magic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic number at start of HMM"); } + else if (hfp->format == p7_HMMFILE_3a) { if (magic != v3a_magic) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "bad magic number at start of HMM"); } + else ESL_XFAIL(eslEFORMAT, hfp->errbuf, "no such HMM file format code"); + } + + /* Allocate shell of the new HMM. + * Two-step allocation lets us read/set the flags first; + * then the later CreateBody() call will allocate optional internal fields we need. + */ + if ((hmm = p7_hmm_CreateShell()) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed, HMM shell"); + hmm->offset = offset; + + /* Get sizes of things */ + /* xref J5/114 for a legacy use of for optional acc, desc annotation */ + if (! fread((char *) &(hmm->flags), sizeof(int), 1, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read flags"); + if (! fread((char *) &(hmm->M), sizeof(int), 1, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model size M"); + if (! fread((char *) &alphabet_type, sizeof(int), 1, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read alphabet_type"); + + /* Set or verify alphabet. */ + if (*ret_abc == NULL) { /* still unknown: set it, pass control of it back to caller */ + if ((abc = esl_alphabet_Create(alphabet_type)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed, alphabet"); + } else { /* already known: check it */ + abc = *ret_abc; + if (abc->type != alphabet_type) ESL_XFAIL(eslEINCOMPAT, hfp->errbuf, "Alphabet type mismatch: was %s, but current HMM says %s", esl_abc_DecodeType( abc->type), esl_abc_DecodeType(alphabet_type)); + } + + /* Finish the allocation of the HMM + */ + if ((status = p7_hmm_CreateBody(hmm, hmm->M, abc)) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failed, HMM body"); + + /* Core model probabilities. */ + for (k = 1; k <= hmm->M; k++) + if (! fread((char *) hmm->mat[k], sizeof(float), hmm->abc->K, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read mat[%d]", k); + for (k = 0; k <= hmm->M; k++) + if (! fread((char *) hmm->ins[k], sizeof(float), hmm->abc->K, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read ins[%d]", k); + for (k = 0; k <= hmm->M; k++) + if (! fread((char *) hmm->t[k], sizeof(float), p7H_NTRANSITIONS, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read t[%d]", k); + + /* Annotations. */ + if (read_bin_string(hfp->f, &(hmm->name)) != eslOK) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read name"); + if ((hmm->flags & p7H_ACC) && read_bin_string(hfp->f, &(hmm->acc)) != eslOK) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read acc"); + if ((hmm->flags & p7H_DESC) && read_bin_string(hfp->f, &(hmm->desc)) != eslOK) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read desc"); + if ((hmm->flags & p7H_RF) && ! fread((char *) hmm->rf, sizeof(char), hmm->M+2, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read rf"); /* +2: 1..M and trailing \0 */ + if ((hmm->flags & p7H_MMASK)&& ! fread((char *) hmm->mm, sizeof(char), hmm->M+2, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read mm"); /* +2: 1..M and trailing \0 */ + if ((hmm->flags & p7H_CONS) && ! fread((char *) hmm->consensus, sizeof(char), hmm->M+2, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read consensus"); /* don't need to test for >=3e format, because the flag is sufficient (didn't exist pre-3e) */ + if ((hmm->flags & p7H_CS) && ! fread((char *) hmm->cs, sizeof(char), hmm->M+2, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read cs"); + if ((hmm->flags & p7H_CA) && ! fread((char *) hmm->ca, sizeof(char), hmm->M+2, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read ca"); + if (read_bin_string(hfp->f, &(hmm->comlog)) != eslOK) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read comlog"); + if (! fread((char *) &(hmm->nseq), sizeof(int), 1, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read nseq"); + if (! fread((char *) &(hmm->eff_nseq), sizeof(float), 1, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read eff_nseq"); + if (hfp->format >= p7_HMMFILE_3c) { + if (! fread((char *) &(hmm->max_length), sizeof(int), 1, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read max_length"); + } + if (read_bin_string(hfp->f, &(hmm->ctime)) != eslOK) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read ctime"); + if ((hmm->flags & p7H_MAP) && ! fread((char *) hmm->map, sizeof(int), hmm->M+1, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read map"); + if (! fread((char *) &(hmm->checksum), sizeof(uint32_t),1,hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read checksum"); + + /* E-value parameters and Pfam cutoffs */ + if (hfp->format >= p7_HMMFILE_3b) { + if (! fread((char *) hmm->evparam, sizeof(float), p7_NEVPARAM, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read statistical params"); + } else if (hfp->format == p7_HMMFILE_3a) { + /* a backward compatibility mode. 3/a files stored 3 floats: LAMBDA, MU, TAU. Read 3 #'s and carefully copy/rearrange them into new 6 format */ + if (! fread((char *) hmm->evparam, sizeof(float), 3, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read statistical params"); + hmm->evparam[p7_FLAMBDA] = hmm->evparam[0]; + hmm->evparam[p7_FTAU] = hmm->evparam[2]; + hmm->evparam[p7_VLAMBDA] = hmm->evparam[0]; + hmm->evparam[p7_VMU] = hmm->evparam[1]; + hmm->evparam[p7_MLAMBDA] = hmm->evparam[p7_VLAMBDA]; + hmm->evparam[p7_MMU] = hmm->evparam[p7_VMU]; + } + if (! fread((char *) hmm->cutoff, sizeof(float), p7_NCUTOFFS, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read Pfam score cutoffs"); + if ((hmm->flags & p7H_COMPO) && ! fread((char *) hmm->compo, sizeof(float), hmm->abc->K, hfp->f)) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "failed to read model composition"); + + /* other legacy issues */ + if (hfp->format < p7_HMMFILE_3e && (status = p7_hmm_SetConsensus(hmm, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Failed to set consensus on legacy HMM format"); + + if (*ret_abc == NULL) *ret_abc = abc; /* pass our new alphabet back to caller, if caller didn't know it already */ + if ( opt_hmm != NULL) *opt_hmm = hmm; else p7_hmm_Destroy(hmm); + return eslOK; + + ERROR: + if (*ret_abc == NULL && abc != NULL) esl_alphabet_Destroy(abc); /* the test is for an alphabet created here, not passed */ + if (hmm != NULL) p7_hmm_Destroy(hmm); + if (opt_hmm != NULL) *opt_hmm = NULL; + return status; +} + +/* read_asc20hmm() + * Read a HMMER2.0 ASCII format HMM file, for backward compatibility + * SRE, Thu Dec 25 09:13:36 2008 [Magallon] + */ +static int +read_asc20hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm) +{ + ESL_ALPHABET *abc = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + char *tag = NULL; + char *tok1 = NULL; + char *tok2 = NULL; + char *tok3 = NULL; + float null[p7_MAXABET]; + int alphatype; + int k,x; + off_t offset = 0; + int status; + + hfp->errbuf[0] = '\0'; + + if (hfp->newly_opened) + { + offset = 0; + hfp->newly_opened = FALSE; + } + else + { + /* Record where this HMM starts on disk */ + if ((! hfp->do_stdin) && (! hfp->do_gzip) && (offset = ftello(hfp->f)) < 0) ESL_XEXCEPTION(eslESYS, "ftello() failed"); + + /* First line of file: "HMMER2.0". Allocate shell for HMM annotation information (we don't know K,M yet) */ + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) goto ERROR; /* EOF here is normal; could also be a thrown EMEM */ + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tag, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "unexpected absence of tokens on data line"); + if (strcmp(tag, "HMMER2.0") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Didn't find HMMER3/a tag: not a HMMER save file?"); + } + + if ((hmm = p7_hmm_CreateShell()) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "allocation failure, HMM shell"); + hmm->offset = offset; + + /* Header */ + /* H2 save files have no EFFN; + * COM lines don't have number tags like [1]; + * they have CKSUM but we ignore it because it uses different algorithm; + * have EVD line, we ignore it, H3 stats are different; + * XT, NULT lines are ignored; algorithm-dependent config is all internal in H3 + */ + while ((status = esl_fileparser_NextLine(hfp->efp)) == eslOK) + { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tag, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of line"); + + if (strcmp(tag, "NAME") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No name found on NAME line"); + p7_hmm_SetName(hmm, tok1); + } + + else if (strcmp(tag, "ACC") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No accession found on ACC line"); + p7_hmm_SetAccession(hmm, tok1); + } + + else if (strcmp(tag, "DESC") == 0) { + /* #h106. Allow "DESC" bare, with nothing following. Looks like some SMART models circa 1998 are like this. */ + if ((status = esl_fileparser_GetRemainingLine(hfp->efp, &tok1)) == eslOK) p7_hmm_SetDescription(hmm, tok1); + } + + else if (strcmp(tag, "LENG") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No model length found on LENG line"); + if ((hmm->M = atoi(tok1)) == 0) ESL_XFAIL(status, hfp->errbuf, "Invalid model length %s on LENG line", tok1); + } + + else if (strcmp(tag, "ALPH") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No alphabet type found on ALPH"); + /* Bug #h80: H2 tags DNA/RNA files as "Nucleic"; modern Easel/H3 + * expects tag "DNA" or "RNA", so you can't pass tok1 to esl_abc_EncodeType(). + */ + if (strcasecmp(tok1, "nucleic") == 0) alphatype = eslDNA; + else if (strcasecmp(tok1, "amino") == 0) alphatype = eslAMINO; + else ESL_XFAIL(status, hfp->errbuf, "Unrecognized alphabet type %s", tok1); + + if (*ret_abc == NULL) { + if ((abc = esl_alphabet_Create(alphatype)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "Failed to create alphabet"); + } else { + if ((*ret_abc)->type != alphatype) ESL_XFAIL(eslEINCOMPAT,hfp->errbuf,"Alphabet type mismatch: was %s, but current HMM says %s", esl_abc_DecodeType( (*ret_abc)->type), tok1); + abc = *ret_abc; + } + } + + else if (strcmp(tag, "RF") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No yes/no found for RF line"); + if (strcasecmp(tok1, "yes") == 0) + hmm->flags |= p7H_RF; + else if (strcasecmp(tok1, "no") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "RF header line must say yes/no, not %s", tok1); + } + + else if (strcmp(tag, "CS") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No yes/no found for CS line"); + if (strcasecmp(tok1, "yes") == 0) + hmm->flags |= p7H_CS; + else if (strcasecmp(tok1, "no") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "CS header line must say yes/no, not %s", tok1); + } + + else if (strcmp(tag, "MAP") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No yes/no found for MAP line"); + if (strcasecmp(tok1, "yes") == 0) + hmm->flags |= p7H_MAP; + else if (strcasecmp(tok1, "no") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "MAP header line must say yes/no, not %s", tok1); + } + + else if (strcmp(tag, "DATE") == 0) { + if ((status = esl_fileparser_GetRemainingLine(hfp->efp, &tok1)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No date found on DATE line"); + if (esl_strdup(tok1, -1, &(hmm->ctime)) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "strdup() failed to set date"); + } + + else if (strcmp(tag, "COM") == 0) { + /* in an H2 save file, there's no [1] number tags. The H3 format parser skips these */ + if ((status = esl_fileparser_GetRemainingLine(hfp->efp, &tok1)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No command on COM line"); + if (hmm->comlog == NULL) { + if (esl_strdup(tok1, -1, &(hmm->comlog)) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "esl_strdup() failed"); + } else { + if (esl_strcat(&(hmm->comlog), -1, "\n", -1) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "esl_strcat() failed"); + if (esl_strcat(&(hmm->comlog), -1, tok1, -1) != eslOK) ESL_XFAIL(eslEMEM, hfp->errbuf, "esl_strcat() failed"); + } + } + + else if (strcmp(tag, "NSEQ") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Nothing follows NSEQ tag"); + if ((hmm->nseq = atoi(tok1)) == 0 && strcmp(tok1, "0") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Invalid nseq on NSEQ line: should be integer, not %s", tok1); + } + + else if (strcmp(tag, "GA") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on GA line"); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on GA line"); + hmm->cutoff[p7_GA1] = atof(tok1); + hmm->cutoff[p7_GA2] = atof(tok2); + hmm->flags |= p7H_GA; + } + + else if (strcmp(tag, "TC") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on TC line"); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on TC line"); + hmm->cutoff[p7_TC1] = atof(tok1); + hmm->cutoff[p7_TC2] = atof(tok2); + hmm->flags |= p7H_TC; + } + + else if (strcmp(tag, "NC") == 0) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NC line"); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NC line"); + hmm->cutoff[p7_NC1] = atof(tok1); + hmm->cutoff[p7_NC2] = atof(tok2); + hmm->flags |= p7H_NC; + } + + else if (strcmp(tag, "NULE") == 0) { + if (abc->type == eslUNKNOWN) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "ALPH must precede NULE in HMMER2 save files"); + for (x = 0; x < abc->K; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NULE line"); + null[x] = h2ascii2prob(tok1, 1./(float)abc->K); + } + } + + else if (strcmp(tag, "HMM") == 0) + break; + } /* end, loop over possible header tags */ + if (status != eslOK) goto ERROR; + + + /* Skip main model header lines; allocate body of HMM now that K,M are known */ + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data before main model section"); + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data before main model section"); + if ((status = p7_hmm_CreateBody(hmm, hmm->M, abc)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Failed to allocate body of the new HMM"); + if (( bg = p7_bg_Create(abc)) == NULL) ESL_XFAIL(eslEMEM, hfp->errbuf, "failed to create background model"); + + /* H2's tbd1 line ==> translated to H3's node 0 */ + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data before main model section"); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data before main model section"); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok3, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data before main model section"); + hmm->t[0][p7H_MM] = h2ascii2prob(tok1, 1.0); /* B->M1 */ + hmm->t[0][p7H_MI] = 0.0; /* B->I0 */ + hmm->t[0][p7H_MD] = h2ascii2prob(tok3, 1.0); /* B->D1 */ + hmm->t[0][p7H_IM] = 1.0; + hmm->t[0][p7H_II] = 0.0; + hmm->t[0][p7H_DM] = 1.0; + hmm->t[0][p7H_DD] = 0.0; + for (x = 0; x < abc->K; x++) hmm->ins[0][x] = bg->f[x]; + + /* The main model section. */ + for (k = 1; k <= hmm->M; k++) + { + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model section, at node %d (expected %d)", k, hmm->M); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model section, at node %d (expected %d)", k, hmm->M); + if (atoi(tok1) != k) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Expected match line to start with %d (of %d); saw %s", k, hmm->M, tok1); + + /* Line 1: match emissions; optional map info */ + for (x = 0; x < abc->K; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few probability fields on match line, node %d: expected %d, got %d\n", k, abc->K, x); + hmm->mat[k][x] = h2ascii2prob(tok1, null[x]); + } + if (hmm->flags & p7H_MAP) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing MAP field on match line for node %d: should at least be -", k); + hmm->map[k] = atoi(tok1); + } + + /* Line 2: optional RF; then we ignore insert emissions */ + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model: no insert emission line, node %d", k); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing RF field on match line for node %d: should at least be -", k); + if (hmm->flags & p7H_RF) hmm->rf[k] = *tok1; + for (x = 0; x < abc->K; x++) hmm->ins[k][x] = bg->f[x]; + + /* Line 3: optional CS, then transitions (ignoring last 2, which are entry/exit */ + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model: no transition line, node %d", k); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing CS field on match line for node %d: should at least be -", k); + if (hmm->flags & p7H_CS) hmm->cs[k] = *tok1; + if (k < hmm->M) { /* ignore last insert transition line; H3/H2 not compatible there */ + for (x = 0; x < p7H_NTRANSITIONS; x++) { + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few probability fields on transition line, node %d: expected %d, got %d\n", k, abc->K, x); + hmm->t[k][x] = h2ascii2prob(tok1, 1.0); + } + } + } + + /* node M transitions: H2 doesn't have an I_M state */ + hmm->t[hmm->M][p7H_MM] = 1.0; + hmm->t[hmm->M][p7H_MI] = 0.0; + hmm->t[hmm->M][p7H_MD] = 0.0; + hmm->t[hmm->M][p7H_IM] = 1.0; + hmm->t[hmm->M][p7H_II] = 0.0; + hmm->t[hmm->M][p7H_DM] = 1.0; + hmm->t[hmm->M][p7H_DD] = 0.0; + + /* The closing // */ + if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data: missing //?"); + if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data: missing //?"); + if (strcmp(tok1, "//") != 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Expected closing //; found %s instead", tok1); + + /* Tidy up. */ + if (hmm->flags & p7H_RF) { hmm->rf[0] = ' '; hmm->rf[hmm->M+1] = '\0'; } + if (hmm->flags & p7H_CS) { hmm->cs[0] = ' '; hmm->cs[hmm->M+1] = '\0'; } + if (hmm->name == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No NAME found for HMM"); + if (hmm->M <= 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No LENG found for HMM (or LENG <= 0)"); + if (abc == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No ALPH found for HMM"); + + /* Part of #h106 fix: */ + if ((status = p7_hmm_Renormalize(hmm)) != eslOK) return status; + + /* legacy issues */ + if (( status = p7_hmm_SetConsensus(hmm, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Failed to create consensus line"); + + /* Calibrate the model: cfg rng bg gm om */ + if ((status = p7_Calibrate(hmm, NULL, NULL, &bg, NULL, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Failed to calibrate HMMER2 model after input conversion"); + + if (*ret_abc == NULL) *ret_abc = abc; + if ( opt_hmm != NULL) *opt_hmm = hmm; else p7_hmm_Destroy(hmm); + p7_bg_Destroy(bg); + return eslOK; + + ERROR: + if (*ret_abc == NULL && abc != NULL) esl_alphabet_Destroy(abc); + if (hmm != NULL) p7_hmm_Destroy(hmm); + if (bg != NULL) p7_bg_Destroy(bg); + if (opt_hmm != NULL) *opt_hmm = NULL; + if (status == eslEMEM || status == eslESYS) return status; + else if (status == eslEOF) return status; + else if (status == eslEINCOMPAT) return status; + else return eslEFORMAT; /* anything else is a format error: includes premature EOF, EOL, EOD */ +} +/*--------------- end, private format parsers -------------------*/ + + + + + +/***************************************************************** + * 5. Other private functions involved in i/o + *****************************************************************/ + + +/* multiline() + * + * Used to print the command log to ASCII save files. + * + * Given a record (like the comlog) that contains + * multiple lines, print it as multiple lines with + * a given prefix. e.g.: + * + * given: "COM ", "foo\nbar\nbaz" + * print: COM 1 foo + * COM 2 bar + * COM 3 baz + * + * If is NULL, no-op. Otherwise must be a -terminated + * string. It does not matter if it ends in <\n> or not. + * must be a valid -terminated string; it may be empty. + * + * Args: fp: FILE to print to + * pfx: prefix for each line + * s: line to break up and print; tolerates a NULL + * + * Returns: on success. + * + * Throws: on write error. + */ +static int +multiline(FILE *fp, const char *pfx, char *s) +{ + char *sptr = s; + char *end = NULL; + int n = 0; + int nline = 1; + + do { + end = strchr(sptr, '\n'); + + if (end != NULL) /* if there's no \n left, end == NULL */ + { + n = end - sptr; /* n chars exclusive of \n */ + if (fprintf(fp, "%s [%d] ", pfx, nline++) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); + if (fwrite(sptr, sizeof(char), n, fp) != n) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); /* using fwrite lets us write fixed # of chars */ + if (fprintf(fp, "\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); /* while writing \n w/ printf allows newline conversion */ + sptr += n + 1; /* +1 to get past \n */ + } + else + { + if (fprintf(fp, "%s [%d] %s\n", pfx, nline++, sptr) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); /* last line */ + } + } while (end != NULL && *sptr != '\0'); /* *sptr == 0 if terminates with a \n */ + return eslOK; +} + +/* multilineString() + * + * Used to print the command log to a string. + * + * Given a record (like the comlog) that contains + * multiple lines, print it as multiple lines with + * a given prefix. e.g.: + * + * given: "COM ", "foo\nbar\nbaz" + * print: COM 1 foo + * COM 2 bar + * COM 3 baz + * + * If is NULL, no-op. Otherwise must be a -terminated + * string. It does not matter if it ends in <\n> or not. + * must be a valid -terminated string; it may be empty. + * + * Args: ret_char: char pointer pointer + * pfx: prefix for each line + * s: line to break up and print; tolerates a NULL + * coffset: the current write position in the string (pointer so we can add to it). + * + * Returns: on success or on error. + * + */ +static int +multilineString(char **ret_str, const char *pfx, char *s, int *coffset){ + char *sptr = s; + char *end = NULL; + int n = 0; + int nline = 1; + int offset; + + do { + end = strchr(sptr, '\n'); + if (end != NULL) { /* if there's no \n left, end == NULL */ + n = end - sptr; /* n chars exclusive of \n */ + if ((offset = sprintf(*ret_str + *coffset, "%s [%d] ", pfx, nline++)) < 0) return eslEWRITE; + *coffset += offset; + + strncpy(*ret_str + *coffset, sptr, sizeof(char) * n); /* using strncpy lets us write fixed # of chars */ + *coffset +=n; + if ((offset = sprintf(*ret_str + *coffset, "\n")) < 0) return eslEWRITE; + sptr += n + 1; /* +1 to get past \n */ + } else { + if ((offset = sprintf(*ret_str + *coffset, "%s [%d] %s\n", pfx, nline++, sptr)) < 0) return eslEWRITE; + *coffset += offset; + } + } while (end != NULL && *sptr != '\0'); /* *sptr == 0 if terminates with a \n */ + return eslOK; +} + + + +static int +printprob(FILE *fp, int fieldwidth, float p) +{ + if (p == 0.0) { if (fprintf(fp, " %*s", fieldwidth, "*") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + else if (p == 1.0) { if (fprintf(fp, " %*.5f", fieldwidth, 0.0) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + else { if (fprintf(fp, " %*.5f", fieldwidth, -logf(p)) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } + return eslOK; +} + +/* probToString + * + * Used to print probabilities floats in a fixed field to a char. Based on printprob. + * + * + * given : 4.115212345633 + * append: " 4.11521" + * + * + * If p is 0.0 or 1.0, append * or 0.00000 + * + * Args: str: (pointer to pointer) + * fieldwidth: The size of the number to be printed. Note, a space is + * prepended + * p: float + * offset: currnet position in the strng + * + * Returns: on success or on error. + */ + +static int +probToString(char **str , int fieldwidth, float p, int offset) +{ + if (p == 0.0) { if (sprintf(*str+offset, " %*s", fieldwidth, "*") < 0) return( eslEWRITE ); } + else if (p == 1.0) { if (sprintf(*str+offset, " %*.5f", fieldwidth, 0.0) < 0) return( eslEWRITE ); } + else { if (sprintf(*str+offset, " %*.5f", fieldwidth, -logf(p)) < 0) return( eslEWRITE ); } + return eslOK; +} + +/* Function: write_bin_string() + * + * Purpose: Write a string in binary save format: an integer + * for the string length (including \0), followed by + * the string. + * + * Return: on success; + * + * Throw: on write error, such as a filled disk. + */ +static int +write_bin_string(FILE *fp, char *s) +{ + int len; + if (s != NULL) + { + len = strlen(s) + 1; + if (fwrite((char *) &len, sizeof(int), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + if (fwrite((char *) s, sizeof(char), len, fp) != len) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + } + else + { + len = 0; + if (fwrite((char *) &len, sizeof(int), 1, fp) != 1) ESL_EXCEPTION_SYS(eslEWRITE, "hmm binary write failed"); + } + return eslOK; +} + +/* Function: read_bin_string() + * + * Purpose: Read in a string from a binary file, where + * the first integer is the length (including '\0'). + * If the length is 0, <*ret_s> is set to . + * + * This is a reasonable convention for storing/ reading + * strings in binary files. Note that because the length is + * inclusive of '\0', there's a difference between a NULL + * string and an empty string. + * + * Args: fp - FILE to read from + * ret_s - string to read into + * + * Return: on success. ret_s is malloc'ed here. + * if a read fails - likely because no more + * data in file. + * + * Throws on allocation error. + */ +static int +read_bin_string(FILE *fp, char **ret_s) +{ + int status; + char *s = NULL; + int len; + + if (! fread((char *) &len, sizeof(int), 1, fp)) { status = eslEOD; goto ERROR; } + if (len > 0) { + ESL_ALLOC(s, (sizeof(char) * len)); + if (! fread((char *) s, sizeof(char), len, fp)) { status = eslEOD; goto ERROR; } + } + *ret_s = s; + return eslOK; + + ERROR: + if (s != NULL) free(s); + *ret_s = NULL; + return status; +} + +static float +h2ascii2prob(char *s, float null) +{ + return ((*s == '*') ? 0. : null * exp( atoi(s) * 0.00069314718)); +} +/*---------------- end, private utilities -----------------------*/ + + + +/***************************************************************** + * 6. Benchmark driver. + *****************************************************************/ +#ifdef p7HMMFILE_BENCHMARK +/* + icc -O3 -static -o p7_hmmfile_benchmark -I. -L. -I../easel -L../easel -Dp7HMMFILE_BENCHMARK p7_hmmfile.c -lhmmer -leasel -lm + ./p7_hmmfile_benchmark Pfam.hmm + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-a", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "include time of profile configuration", 0 }, + { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "verbose: print model info as they're read", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for HMM input"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_ALPHABET *abc = NULL; + char *hmmfile = esl_opt_GetArg(go, 1); + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + int nmodel = 0; + uint64_t totM = 0; + int status; + char errbuf[eslERRBUFSIZE]; + + esl_stopwatch_Start(w); + + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) == eslOK) + { + if (nmodel == 0) { /* first time initialization, now that alphabet known */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, 400); + } + + if (esl_opt_GetBoolean(go, "-v")) printf("%s\n", hmm->name); + nmodel++; + totM += hmm->M; + + if (esl_opt_GetBoolean(go, "-a") == TRUE) + { + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + om = p7_oprofile_Create(gm->M, abc); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, 400); + + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + } + + p7_hmm_Destroy(hmm); + } + if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", hmmfile); + else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", hmmfile); + else if (status != eslEOF) p7_Fail("Unexpected error in reading HMMs from %s", hmmfile); + + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# number of models: %d\n", nmodel); + printf("# total M: %" PRId64 "\n", totM); + + p7_bg_Destroy(bg); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7HMMFILE_BENCHMARK*/ +/*---------------- end, benchmark driver ------------------------*/ + + +/***************************************************************** + * 7. Unit tests. + *****************************************************************/ +#ifdef p7HMMFILE_TESTDRIVE + +/* utest_io_30: tests read/write for 3.0 save files. + * Caller provides a named tmpfile that we can + * open, write to, close, reopen, then read from. + * can be -1 or any specified 3.x save + * file format. + * Caller also provides a test HMM, which might + * be a nasty random-sampled HMM. + */ +static int +utest_io_30(char *tmpfile, int format, P7_HMM *hmm) +{ + FILE *fp = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *new = NULL; + ESL_ALPHABET *newabc = NULL; + char msg[] = "3.0 file i/o unit test failed"; + + /* Write the HMM to disk as ASCII */ + if ((fp = fopen(tmpfile, "w")) == NULL) esl_fatal(msg); + if (p7_hmmfile_WriteASCII(fp, format, hmm) != eslOK) esl_fatal(msg); + fclose(fp); + + /* Read it back */ + if (p7_hmmfile_OpenE(tmpfile, NULL, &hfp, NULL) != eslOK) esl_fatal(msg); + if (p7_hmmfile_Read(hfp, &newabc, &new) != eslOK) esl_fatal(msg); + + /* It should have determined the right file format */ + if (format == -1) { if (hfp->format != p7_HMMFILE_3f) esl_fatal(msg); } + else { if (hfp->format != format) esl_fatal(msg); } + + /* It should be identical to what we started with, modulo some legacy format issues */ + if (format < p7_HMMFILE_3e) { strcpy(new->consensus, hmm->consensus); } + if (p7_hmm_Compare(hmm, new, 0.0001) != eslOK) esl_fatal(msg); + p7_hmm_Destroy(new); + + /* Trying to read one more HMM should give us a normal EOF */ + if (p7_hmmfile_Read(hfp, &newabc, &new) != eslEOF) esl_fatal(msg); + p7_hmmfile_Close(hfp); + + /* Do it all again, but with binary format */ + if ((fp = fopen(tmpfile, "w")) == NULL) esl_fatal(msg); + if (p7_hmmfile_WriteBinary(fp, format, hmm) != eslOK) esl_fatal(msg); + fclose(fp); + if (p7_hmmfile_OpenE(tmpfile, NULL, &hfp, NULL) != eslOK) esl_fatal(msg); + if (p7_hmmfile_Read(hfp, &newabc, &new) != eslOK) esl_fatal(msg); + if (format < p7_HMMFILE_3e) { strcpy(new->consensus, hmm->consensus); } + if (p7_hmm_Compare(hmm, new, 0.0001) != eslOK) esl_fatal(msg); + + if (format == -1) { if (hfp->format != p7_HMMFILE_3f) esl_fatal(msg); } + else { if (hfp->format != format) esl_fatal(msg); } + + p7_hmm_Destroy(new); + p7_hmmfile_Close(hfp); + + esl_alphabet_Destroy(newabc); + return eslOK; +} + + +/* Test current (3/e) file formats */ +static int +utest_io_current(char *tmpfile, P7_HMM *hmm) +{ + /* Try to break the 32-bit unsigned checksum, setting high order bit */ + hmm->checksum = 0xffeeddcc; + hmm->flags |= p7H_CHKSUM; + + utest_io_30(tmpfile, -1, hmm); + return eslOK; +} + + +/* Test compatibility mode for 3/a file formats */ +static int +utest_io_3a(char *tmpfile, P7_HMM *hmm) +{ + float oldparam[p7_NEVPARAM]; + + /* Try to break the 32-bit unsigned checksum, setting high order bit */ + hmm->checksum = 0xffeeddcc; + hmm->flags |= p7H_CHKSUM; + + /* Make a copy of the old statistics. + * Rearrange stats params to satisfy 3/a's constraints: vmu=mmu, mlambda=vlambda=flambda + */ + esl_vec_FCopy(hmm->evparam, p7_NEVPARAM, oldparam); + hmm->evparam[p7_VMU] = hmm->evparam[p7_MMU]; + hmm->evparam[p7_VLAMBDA] = hmm->evparam[p7_MLAMBDA]; + hmm->evparam[p7_FLAMBDA] = hmm->evparam[p7_MLAMBDA]; + + utest_io_30(tmpfile, p7_HMMFILE_3a, hmm); + + /* Restore the original statistics */ + esl_vec_FCopy(oldparam, p7_NEVPARAM, hmm->evparam); + return eslOK; +} + +#endif /*p7HMMFILE_TESTDRIVE*/ +/*-------------------- end, unit tests --------------------------*/ + + + + +/***************************************************************** + * 8. Test driver. + *****************************************************************/ + +#ifdef p7HMMFILE_TESTDRIVE +/* gcc -g -Wall -Dp7HMMFILE_TESTDRIVE -I. -I../easel -L. -L../easel -o p7_hmmfile_test p7_hmmfile.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_random.h" + +#include "hmmer.h" + +int +main(int argc, char **argv) +{ + ESL_RANDOMNESS *r = NULL; + ESL_ALPHABET *aa_abc = NULL, + *nt_abc = NULL; + P7_HMM *hmm = NULL; + FILE *fp = NULL; + char tmpfile[32] = "tmp-hmmerXXXXXX"; + int M = 20; + + if ((aa_abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create amino alphabet"); + if ((nt_abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal("failed to create DNA alphabet"); + if ((r = esl_randomness_CreateFast(0)) == NULL) esl_fatal("failed to create randomness"); + if ((esl_tmpfile_named(tmpfile, &fp)) != eslOK) esl_fatal("failed to create tmp file"); + fclose(fp); + + /* Protein HMMs */ + p7_hmm_Sample(r, M, aa_abc, &hmm); + utest_io_current(tmpfile, hmm); + utest_io_3a (tmpfile, hmm); + p7_hmm_Destroy(hmm); + + /* Nucleic acid HMMs */ + p7_hmm_Sample(r, M, nt_abc, &hmm); + utest_io_current(tmpfile, hmm); + utest_io_3a (tmpfile, hmm); + p7_hmm_Destroy(hmm); + + esl_alphabet_Destroy(aa_abc); + esl_alphabet_Destroy(nt_abc); + esl_randomness_Destroy(r); + remove(tmpfile); + exit(0); +} +#endif /*p7HMMFILE_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + +/***************************************************************** + * 9. Example. + *****************************************************************/ +/* On using the example to test error messages from p7_hmmfile_OpenE(): + * Message + * -------------- + * .gz file missing/not readable \rm test.hmm.gz; touch test.hmm.gz; src/p7_hmmfile_example test.hmm.gz + * gzip -dc doesn't exist \cp testsuite/20aa.hmm test.hmm; gzip test.hmm; sudo mv /usr/bin/gzip /usr/bin/gzip.old; src/p7_hmmfile_example test.hmm.gz + * hmm file not found \rm test.hmm; src/p7_hmmfile_example test.hmm + * bad SSI file format \cp testsuite/20aa.hmm test.hmm; \rm test.hmm.ssi; touch test.hmm.ssi; src/p7_hmmfile_example test.hmm + * 64-bit SSI on 32-bit sys + * empty file \rm test.hmm; touch test.hmm + * unrecognized format (binary) cat testsuite/20aa.hmm > test.hmm; src/hmmpress test.hmm; \rm test.hmm; [edit test.hmm.h3m, delete first byte] + * unrecognized format (ascii) cat testsuite/20aa.hmm | sed -e 's/^HMMER3\/b/HMMER3\/x/' > test.hmm + * + */ + +#ifdef p7HMMFILE_EXAMPLE +/* gcc -g -Wall -Dp7HMMFILE_EXAMPLE -I. -I../easel -L. -L../easel -o p7_hmmfile_example p7_hmmfile.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" + +#include "hmmer.h" + +int +main(int argc, char **argv) +{ + char *hmmfile = argv[1]; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + ESL_ALPHABET *abc = NULL; + char errbuf[eslERRBUFSIZE]; + int status; + + /* An example of reading a single HMM from a file, and checking that it is the only one. */ + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + if (status == eslEFORMAT) p7_Fail("Bad file format in HMM file %s:\n%s\n", hfp->fname, hfp->errbuf); + else if (status == eslEINCOMPAT) p7_Fail("HMM in %s is not in the expected %s alphabet\n", hfp->fname, esl_abc_DecodeType(abc->type)); + else if (status == eslEOF) p7_Fail("Empty HMM file %s? No HMM data found.\n", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s\n", hfp->fname); + + status = p7_hmmfile_Read(hfp, &abc, NULL); + if (status != eslEOF) p7_Fail("HMM file %s does not contain just one HMM\n", hfp->fname); + + p7_hmmfile_Close(hfp); + + p7_hmmfile_WriteASCII(stdout, -1, hmm); + + esl_alphabet_Destroy(abc); + p7_hmm_Destroy(hmm); + return 0; +} +#endif /*p7HMMFILE_EXAMPLE*/ +/*----------------------- end, example --------------------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/p7_hmmwindow.c b/bioinformaticsProject/hmmer/src/p7_hmmwindow.c new file mode 100644 index 0000000..7a66f1b --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_hmmwindow.c @@ -0,0 +1,77 @@ +/* The Plan7 HMMWINDOW data structure, which holds a compact representation + * of substitution scores and maximal extensions, used by nhmmer. + * + * Contents: + * 1. The P7_HMMWINDOW object: allocation, initialization, destruction. + */ +#include "p7_config.h" +#include "hmmer.h" + + +/********************************************************************* + *# 1. The P7_MSVDATA object: allocation, initialization, destruction. + *********************************************************************/ + + +/* Function: p7_hmmwindow_init() + * + * Synopsis: initialize the object used to store a list of sequence windows + * + * Returns: eslEMEM in event of allocation failure, otherwise eslOK + */ +int +p7_hmmwindow_init (P7_HMM_WINDOWLIST *list) { + int status; + list->size = 10000; + list->count = 0; + ESL_ALLOC(list->windows, list->size * sizeof(P7_HMM_WINDOW)); + + return eslOK; + +ERROR: + return eslEMEM; + +} + +/* Function: p7_hmmwindow_new() + * + * Synopsis: Return a pointer to the next window element on the list + * + * Purpose: Accepts , , , , , , + * and , assigns those to the next window + * element, then returns it, increasing the size of the + * list, if necessary. + * + * Returns: NULL in event of allocation failure, otherwise pointer to + * the next seed diagonal + */ + +P7_HMM_WINDOW * +p7_hmmwindow_new (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t fm_pos, uint16_t k, uint32_t length, float score, uint8_t complementarity, uint32_t target_len) { + int status; + P7_HMM_WINDOW *window; + + if (list->count == list->size) { + list->size *= 4; + ESL_REALLOC(list->windows, list->size * sizeof(P7_HMM_WINDOW)); + } + window = list->windows + list->count; + + window->id = id; + window->n = pos; + window->fm_n = fm_pos; + window->k = k; + window->length = length; + window->score = score; + window->complementarity = complementarity; + window->target_len = target_len; + + list->count++; + + return window; + +ERROR: + return NULL; +} + + diff --git a/bioinformaticsProject/hmmer/src/p7_null3.c b/bioinformaticsProject/hmmer/src/p7_null3.c new file mode 100644 index 0000000..b6895aa --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_null3.c @@ -0,0 +1,338 @@ +/* "null3" model: biased composition correction + * + * Contents: + * 1. Null3 estimation algorithms. + * 2. Benchmark driver. + * 3. Unit tests. + * 4. Test driver. + * + * See p7_domaindef.c -- null3 correction of per-seq and per-domain + * scores is embedded within p7_domaindef's logic; we split it out + * to a separate file because it's so important. + * + * Approach is based heavily on the null3 approach used in Infernal, + * and described in its user guide, specifically based on + * ScoreCorrectionNull3CompUnknown() + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + + +/***************************************************************** + * 1. Null3 estimation algorithms. + *****************************************************************/ + + +/* Function: p7_null3_score() + * + * Purpose: Calculate a correction (in log_2 odds) to be applied + * to a sequence, using a null model based on the + * composition of the target sequence. + * The null model is constructed /post hoc/ as the + * distribution of the target sequence; if the target + * sequence is 40% A, 5% C, 5% G, 40% T, then the null + * model is (0.4, 0.05, 0.05, 0.4). This function is + * based heavily on Infernal's ScoreCorrectionNull3(), + * with two important changes: + * - it leaves the log2 conversion from NATS to BITS + * for the calling function. + * - it doesn't include the omega score modifier + * (based on prior probability of using the null3 + * model), again leaving this to the calling function. + * + * Args: abc - alphabet for hit (only used to get alphabet size) + * dsq - the sequence the hit resides in + * tr - trace of the alignment, used to find the match states + * (non-match chars are ignored in computing freq, not used if NULL) + * start - start position of hit in dsq + * stop - end position of hit in dsq + * bg - background, used for the default null model's emission freq + * ret_sc - RETURN: the correction to the score (in NATS); + * caller subtracts this from hit score to get + * corrected score. + * Return: void, ret_sc: the log-odds score correction (in NATS). + */ +void +p7_null3_score(const ESL_ALPHABET *abc, const ESL_DSQ *dsq, P7_TRACE *tr, int start, int stop, P7_BG *bg, float *ret_sc) +{ + float score = 0.; + int status; + int i; + float *freq; + int dir; + int tr_pos; + + ESL_ALLOC(freq, sizeof(float) * abc->K); + esl_vec_FSet(freq, abc->K, 0.0); + + /* contract check */ + if(abc == NULL) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "p7_null3_score() alphabet is NULL.%s\n", ""); + if(dsq == NULL) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "p7_null3_score() dsq alphabet is NULL.%s\n", ""); + if(abc->type != eslRNA && abc->type != eslDNA) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "p7_null3_score() expects alphabet of RNA or DNA.%s\n", ""); + + dir = start < stop ? 1 : -1; + + if (tr != NULL) { + /* skip the parts of the trace that precede the first match state */ + tr_pos = 2; + i = start; + while (tr->st[tr_pos] != p7T_M) { + if (tr->st[tr_pos] == p7T_N) + i += dir; + tr_pos++; + } + + /* tally frequencies from characters hitting match state*/ + while (tr->st[tr_pos] != p7T_E) { + if (tr->st[tr_pos] == p7T_M) { + if(esl_abc_XIsGap(abc, dsq[i])) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "in p7_null3_score(), res %d is a gap!%s\n", ""); + esl_abc_FCount(abc, freq, dsq[i], 1.); + } + if (tr->st[tr_pos] != p7T_D ) + i += dir; + tr_pos++; + } + } else { + /* tally frequencies from the full envelope */ + for (i=ESL_MIN(start,stop); i <= ESL_MAX(start,stop); i++) + { + if(esl_abc_XIsGap(abc, dsq[i])) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "in p7_null3_score(), res %d is a gap!%s\n", ""); + esl_abc_FCount(abc, freq, dsq[i], 1.); + } + } + + esl_vec_FNorm(freq, abc->K); + + + /* now compute score modifier (nats) - note: even with tr!=NULL, this includes the unmatched characters*/ + for (i = 0; i < abc->K; i++) + score += freq[i]==0 ? 0.0 : esl_logf( freq[i]/bg->f[i] ) * freq[i] * ( (stop-start)*dir +1) ; + + /* Return the correction to the bit score. */ + score = p7_FLogsum(0., score); + *ret_sc = score; + + return; + + ERROR: + esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "p7_null3_score() memory allocation error.%s\n", ""); + return; /* never reached */ + +} + + + +/***************************************************************** + * 2. Benchmark driver + *****************************************************************/ +#ifdef p7_NULL3_BENCHMARK +/* + icc -O3 -static -o generic_null2_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_NULL2_BENCHMARK generic_null2.c -lhmmer -leasel -lm + ./benchmark-generic-null2 + RRM_1 (M=72) Caudal_act (M=136) SMC_N (M=1151) + ----------------- ------------------ ------------------- + 21 Aug 2008 7.77u (185 Mc/s) 14.13u (192 Mc/s) 139.03u (165.6 Mc/s) + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_randomseq.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 }, + { "-N", eslARG_INT, "50000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for posterior residue null2, generic version"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *gx1 = NULL; + P7_GMX *gx2 = NULL; + int L = esl_opt_GetInteger(go, "-L"); + int N = esl_opt_GetInteger(go, "-N"); + ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + float null2[p7_MAXCODE]; + int i; + float fsc, bsc; + double Mcs; + + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + + bg = p7_bg_Create(abc); p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + gx1 = p7_gmx_Create(gm->M, L); + gx2 = p7_gmx_Create(gm->M, L); + + esl_rsq_xfIID(r, bg->f, abc->K, L, dsq); + p7_GForward (dsq, L, gm, gx1, &fsc); + p7_GBackward(dsq, L, gm, gx2, &bsc); + p7_GDecoding(gm, gx1, gx2, gx2); + + esl_stopwatch_Start(w); + for (i = 0; i < N; i++) + p7_GNull2_ByExpectation(gm, gx2, null2); + esl_stopwatch_Stop(w); + + Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / w->user; + esl_stopwatch_Display(stdout, w, "# CPU time: "); + printf("# M = %d\n", gm->M); + printf("# %.1f Mc/s\n", Mcs); + + free(dsq); + p7_gmx_Destroy(gx1); + p7_gmx_Destroy(gx2); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_hmmfile_Close(hfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7_NULL3_BENCHMARK*/ +/*------------------ end, benchmark driver ----------------------*/ + + + + +/***************************************************************** + * 3. Unit tests + *****************************************************************/ +#ifdef p7_NULL3_TESTDRIVE + +static void +utest_correct_normalization(ESL_RANDOMNESS *r, P7_PROFILE *gm, P7_BG *bg, ESL_DSQ *dsq, int L, P7_GMX *fwd, P7_GMX *bck) +{ + char *msg = "normalization unit test failed"; + float null2[p7_MAXABET]; + float sum; + int x; + + esl_rsq_xfIID(r, bg->f, gm->abc->K, L, dsq); /* sample a random digital seq of length L */ + + p7_GForward (dsq, L, gm, fwd, NULL); + p7_GBackward(dsq, L, gm, bck, NULL); + p7_PosteriorNull2(L, gm, fwd, bck, bck); /* now contains posterior probs */ + p7_Null2Corrections(gm, dsq, L, 0, bck, fwd, null2, NULL, NULL); /* use as workspace */ + + /* Convert null2 from lod score to frequencies f_d */ + for (x = 0; x < gm->abc->K; x++) + null2[x] = exp(null2[x]) * bg->f[x]; + + sum = esl_vec_FSum(null2, gm->abc->K); + if (sum < 0.99 || sum > 1.01) esl_fatal(msg); +} + + +#endif /*p7_NULL3_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + + + + +/***************************************************************** + * 4. Test driver + *****************************************************************/ +#ifdef p7_NULL3_TESTDRIVE +/* gcc -o null2_utest -g -Wall -I../easel -L../easel -I. -L. -Dp7NULL2_TESTDRIVE null2.c -lhmmer -leasel -lm + * ./null2_utest + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_alphabet.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-L", eslARG_INT, "200", NULL, NULL, NULL, NULL, NULL, "length of sampled sequences", 0 }, + { "-M", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "length of sampled HMM", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for the null2 correction calculation"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_GMX *fwd = NULL; + P7_GMX *bck = NULL; + ESL_DSQ *dsq = NULL; + int M = esl_opt_GetInteger(go, "-M"); + int L = esl_opt_GetInteger(go, "-L"); + + /* Sample a random HMM */ + p7_hmm_Sample(r, M, abc, &hmm); + + /* Configure a profile from the sampled HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, L); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + + /* Other initial allocations */ + dsq = malloc(sizeof(ESL_DSQ) * (L+2)); + fwd = p7_gmx_Create(gm->M, L); + bck = p7_gmx_Create(gm->M, L); + p7_FLogsumInit(); + + utest_correct_normalization(r, gm, bg, dsq, L, fwd, bck); + + free(dsq); + p7_gmx_Destroy(fwd); + p7_gmx_Destroy(bck); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7_NULL3_TESTDRIVE*/ +/*-------------------- end, test driver -------------------------*/ + + + diff --git a/bioinformaticsProject/hmmer/src/p7_pipeline.c b/bioinformaticsProject/hmmer/src/p7_pipeline.c new file mode 100644 index 0000000..d0dd231 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_pipeline.c @@ -0,0 +1,2063 @@ +/* H3's accelerated seq/profile comparison pipeline + * + * Contents: + * 1. P7_PIPELINE: allocation, initialization, destruction + * 2. Pipeline API + * 3. Example 1: search mode (in a sequence db) + * 4. Example 2: scan mode (in an HMM db) + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_exponential.h" +#include "esl_getopts.h" +#include "esl_gumbel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +#include "esl_sqio.h" //!!!!DEBUG + +/* Struct used to pass a collection of useful temporary objects around + * within the LongTarget functions + * */ +typedef struct { + ESL_SQ *tmpseq; // - a new or reused digital sequence object used for p7_alidisplay_Create() call + P7_BG *bg; + P7_OPROFILE *om; + float *scores; + float *fwd_emissions_arr; +} P7_PIPELINE_LONGTARGET_OBJS; + + +/***************************************************************** + * 1. The P7_PIPELINE object: allocation, initialization, destruction. + *****************************************************************/ + +/* Function: p7_pipeline_Create() + * Synopsis: Create a new accelerated comparison pipeline. + * + * Purpose: Given an application configuration structure + * containing certain standardized options (described + * below), some initial guesses at the model size + * and sequence length that will be processed, + * and a that can be either or + * depending on whether we're searching one sequence + * against a model database (hmmscan mode) or one model + * against a sequence database (hmmsearch mode); create new + * pipeline object. + * + * In search mode, we would generally know the length of + * our query profile exactly, and would pass M> as ; + * in scan mode, we generally know the length of our query + * sequence exactly, and would pass n> as . + * Targets will come in various sizes as we read them, + * and the pipeline will resize any necessary objects as + * needed, so the other (unknown) length is only an + * initial allocation. + * + * The configuration must include settings for the + * following options: + * + * || option || description || usually || + * | --noali | don't output alignments (smaller output) | FALSE | + * | -E | report hits <= this E-value threshold | 10.0 | + * | -T | report hits >= this bit score threshold | NULL | + * | -Z | set initial hit search space size | NULL | + * | --domZ | set domain search space size | NULL | + * | --domE | report domains <= this E-value threshold | 10.0 | + * | --domT | report domains <= this bit score threshold | NULL | + * | --incE | include hits <= this E-value threshold | 0.01 | + * | --incT | include hits >= this bit score threshold | NULL | + * | --incdomE | include domains <= this E-value threshold | 0.01 | + * | --incdomT | include domains <= this score threshold | NULL | + * | --cut_ga | model-specific thresholding using GA | FALSE | + * | --cut_nc | model-specific thresholding using NC | FALSE | + * | --cut_tc | model-specific thresholding using TC | FALSE | + * | --max | turn all heuristic filters off | FALSE | + * | --F1 | Stage 1 (MSV) thresh: promote hits P <= F1 | 0.02 | + * | --F2 | Stage 2 (Vit) thresh: promote hits P <= F2 | 1e-3 | + * | --F3 | Stage 2 (Fwd) thresh: promote hits P <= F3 | 1e-5 | + * | --nobias | turn OFF composition bias filter HMM | FALSE | + * | --nonull2 | turn OFF biased comp score correction | FALSE | + * | --seed | RNG seed (0=use arbitrary seed) | 42 | + * | --acc | prefer accessions over names in output | FALSE | + * + * As a special case, if is , defaults are set as above. + * This shortcut is used in simplifying test programs and the like. + * + * Returns: ptr to new object on success. Caller frees this + * with . + * + * Throws: on allocation failure. + */ +P7_PIPELINE * +p7_pipeline_Create(const ESL_GETOPTS *go, int M_hint, int L_hint, int long_targets, enum p7_pipemodes_e mode) +{ + P7_PIPELINE *pli = NULL; + int seed = (go ? esl_opt_GetInteger(go, "--seed") : 42); + int status; + + ESL_ALLOC(pli, sizeof(P7_PIPELINE)); + + pli->do_alignment_score_calc = 0; + pli->long_targets = long_targets; + + if ((pli->fwd = p7_omx_Create(M_hint, L_hint, L_hint)) == NULL) goto ERROR; + if ((pli->bck = p7_omx_Create(M_hint, L_hint, L_hint)) == NULL) goto ERROR; + if ((pli->oxf = p7_omx_Create(M_hint, 0, L_hint)) == NULL) goto ERROR; + if ((pli->oxb = p7_omx_Create(M_hint, 0, L_hint)) == NULL) goto ERROR; + + /* Normally, we reinitialize the RNG to the original seed every time we're + * about to collect a stochastic trace ensemble. This eliminates run-to-run + * variability. As a special case, if seed==0, we choose an arbitrary one-time + * seed: time() sets the seed, and we turn off the reinitialization. + */ + pli->r = esl_randomness_CreateFast(seed); + pli->do_reseeding = (seed == 0) ? FALSE : TRUE; + pli->ddef = p7_domaindef_Create(pli->r); + pli->ddef->do_reseeding = pli->do_reseeding; + + /* Configure reporting thresholds */ + pli->by_E = TRUE; + pli->E = (go ? esl_opt_GetReal(go, "-E") : 10.0); + pli->T = 0.0; + pli->dom_by_E = TRUE; + pli->domE = (go ? esl_opt_GetReal(go, "--domE") : 10.0); + pli->domT = 0.0; + pli->use_bit_cutoffs = FALSE; + if (go && esl_opt_IsOn(go, "-T")) + { + pli->T = esl_opt_GetReal(go, "-T"); + pli->by_E = FALSE; + } + if (go && esl_opt_IsOn(go, "--domT")) + { + pli->domT = esl_opt_GetReal(go, "--domT"); + pli->dom_by_E = FALSE; + } + + + /* Configure inclusion thresholds */ + pli->inc_by_E = TRUE; + pli->incE = (go ? esl_opt_GetReal(go, "--incE") : 0.01); + pli->incT = 0.0; + pli->incdom_by_E = TRUE; + pli->incdomE = (go ? esl_opt_GetReal(go, "--incdomE") : 0.01); + pli->incdomT = 0.0; + if (go && esl_opt_IsOn(go, "--incT")) + { + pli->incT = esl_opt_GetReal(go, "--incT"); + pli->inc_by_E = FALSE; + } + if (go && esl_opt_IsOn(go, "--incdomT")) + { + pli->incdomT = esl_opt_GetReal(go, "--incdomT"); + pli->incdom_by_E = FALSE; + } + + + /* Configure for one of the model-specific thresholding options */ + if (go && esl_opt_GetBoolean(go, "--cut_ga")) + { + pli->T = pli->domT = 0.0; + pli->by_E = pli->dom_by_E = FALSE; + pli->incT = pli->incdomT = 0.0; + pli->inc_by_E = pli->incdom_by_E = FALSE; + pli->use_bit_cutoffs = p7H_GA; + } + if (go && esl_opt_GetBoolean(go, "--cut_nc")) + { + pli->T = pli->domT = 0.0; + pli->by_E = pli->dom_by_E = FALSE; + pli->incT = pli->incdomT = 0.0; + pli->inc_by_E = pli->incdom_by_E = FALSE; + pli->use_bit_cutoffs = p7H_NC; + } + if (go && esl_opt_GetBoolean(go, "--cut_tc")) + { + pli->T = pli->domT = 0.0; + pli->by_E = pli->dom_by_E = FALSE; + pli->incT = pli->incdomT = 0.0; + pli->inc_by_E = pli->incdom_by_E = FALSE; + pli->use_bit_cutoffs = p7H_TC; + } + + + /* Configure search space sizes for E value calculations */ + pli->Z = pli->domZ = 0.0; + pli->Z_setby = pli->domZ_setby = p7_ZSETBY_NTARGETS; + if (go && esl_opt_IsOn(go, "-Z")) + { + pli->Z_setby = p7_ZSETBY_OPTION; + pli->Z = esl_opt_GetReal(go, "-Z"); + } + if (go && esl_opt_IsOn(go, "--domZ")) + { + pli->domZ_setby = p7_ZSETBY_OPTION; + pli->domZ = esl_opt_GetReal(go, "--domZ"); + } + + + /* Configure acceleration pipeline thresholds */ + pli->do_max = FALSE; + pli->do_biasfilter = TRUE; + pli->do_null2 = TRUE; + pli->F1 = ((go && esl_opt_IsOn(go, "--F1")) ? ESL_MIN(1.0, esl_opt_GetReal(go, "--F1")) : 0.02); + pli->F2 = (go ? ESL_MIN(1.0, esl_opt_GetReal(go, "--F2")) : 1e-3); + pli->F3 = (go ? ESL_MIN(1.0, esl_opt_GetReal(go, "--F3")) : 1e-5); + if (long_targets) { + pli->B1 = (go ? esl_opt_GetInteger(go, "--B1") : 100); + pli->B2 = (go ? esl_opt_GetInteger(go, "--B2") : 240); + pli->B3 = (go ? esl_opt_GetInteger(go, "--B3") : 1000); + } else { + pli->B1 = pli->B2 = pli->B3 = -1; + } + + + if (go && esl_opt_GetBoolean(go, "--max")) + { + pli->do_max = TRUE; + pli->do_biasfilter = FALSE; + + pli->F2 = pli->F3 = 1.0; + pli->F1 = (pli->long_targets ? 0.3 : 1.0); // need to set some threshold for F1 even on long targets. Should this be tighter? + } + if (go && esl_opt_GetBoolean(go, "--nonull2")) pli->do_null2 = FALSE; + if (go && esl_opt_GetBoolean(go, "--nobias")) pli->do_biasfilter = FALSE; + + + /* Accounting as we collect results */ + pli->nmodels = 0; + pli->nseqs = 0; + pli->nres = 0; + pli->nnodes = 0; + pli->n_past_msv = 0; + pli->n_past_bias = 0; + pli->n_past_vit = 0; + pli->n_past_fwd = 0; + pli->pos_past_msv = 0; + pli->pos_past_bias = 0; + pli->pos_past_vit = 0; + pli->pos_past_fwd = 0; + pli->mode = mode; + pli->show_accessions = (go && esl_opt_GetBoolean(go, "--acc") ? TRUE : FALSE); + pli->show_alignments = (go && esl_opt_GetBoolean(go, "--noali") ? FALSE : TRUE); + pli->hfp = NULL; + pli->errbuf[0] = '\0'; + + return pli; + + ERROR: + p7_pipeline_Destroy(pli); + return NULL; +} + + +/* Function: p7_pipeline_Reuse() + * Synopsis: Reuse a pipeline for next target. + * + * Purpose: Reuse for next target sequence (search mode) + * or model (scan mode). + * + * May eventually need to distinguish from reusing pipeline + * for next query, but we're not really focused on multiquery + * use of hmmscan/hmmsearch/phmmer for the moment. + */ +int +p7_pipeline_Reuse(P7_PIPELINE *pli) +{ + p7_omx_Reuse(pli->oxf); + p7_omx_Reuse(pli->oxb); + p7_omx_Reuse(pli->fwd); + p7_omx_Reuse(pli->bck); + p7_domaindef_Reuse(pli->ddef); + return eslOK; +} + + + +/* Function: p7_pipeline_Destroy() + * Synopsis: Free a object. + * + * Purpose: Free a object. + */ +void +p7_pipeline_Destroy(P7_PIPELINE *pli) +{ + if (pli == NULL) return; + + p7_omx_Destroy(pli->oxf); + p7_omx_Destroy(pli->oxb); + p7_omx_Destroy(pli->fwd); + p7_omx_Destroy(pli->bck); + esl_randomness_Destroy(pli->r); + p7_domaindef_Destroy(pli->ddef); + free(pli); +} +/*---------------- end, P7_PIPELINE object ----------------------*/ + + +/***************************************************************** + * 2. The pipeline API. + *****************************************************************/ + +/* Function: p7_pli_ExtendAndMergeWindows + * Synopsis: Turns a list of ssv diagonals into windows, and merges + * overlapping windows. + * + * Purpose: Accepts a of SSV diagonals, extends those + * to windows based on a combination of the max_length + * value from and the prefix and suffix lengths stored + * in , then merges (in place) windows that overlap + * by more than percent, ensuring that windows + * stay within the bounds of 1... + * + * Returns: + */ +int +p7_pli_ExtendAndMergeWindows (P7_OPROFILE *om, const P7_SCOREDATA *data, P7_HMM_WINDOWLIST *windowlist, float pct_overlap) { + + int i; + P7_HMM_WINDOW *prev_window = NULL; + P7_HMM_WINDOW *curr_window = NULL; + int64_t window_start; + int64_t window_end; + int32_t window_len; + int64_t tmp; + int new_hit_cnt = 0; + + if (windowlist->count == 0) + return eslOK; + + /* extend windows */ + for (i=0; icount; i++) { + + curr_window = windowlist->windows+i; + + if ( curr_window->complementarity == p7_COMPLEMENT) { + //flip for complement (then flip back), so the min and max bounds allow for appropriate overlap into neighboring segments in a multi-segment FM sequence + curr_window->n = curr_window->target_len - curr_window->n + 1; + + window_start = ESL_MAX( 1 , curr_window->n - curr_window->length - (om->max_length * (0.1 + data->suffix_lengths[curr_window->k] ) ) ) ; + window_end = ESL_MIN( curr_window->target_len, curr_window->n + (om->max_length * (0.1 + data->prefix_lengths[curr_window->k - curr_window->length + 1] )) ) ; + tmp = window_end; + window_end = curr_window->target_len - window_start; // + 1; + window_start = curr_window->target_len - tmp ; //+ 1; + + curr_window->n = curr_window->target_len - curr_window->n + 1; + + } else { + + // the 0.1 multiplier provides for a small buffer in excess of the predefined prefix/suffix lengths - one proportional to max_length + window_start = ESL_MAX( 1 , curr_window->n - (om->max_length * (0.1 + data->prefix_lengths[curr_window->k - curr_window->length + 1] )) ) ; + window_end = ESL_MIN( curr_window->target_len, curr_window->n + curr_window->length + (om->max_length * (0.1 + data->suffix_lengths[curr_window->k] ) ) ) ; + } + + curr_window->length = window_end - window_start + 1; + + curr_window->fm_n -= (curr_window->n - window_start); + curr_window->n = window_start; + } + + + /* merge overlapping windows, compressing list in place. */ + for (i=1; icount; i++) { + prev_window = windowlist->windows+new_hit_cnt; + curr_window = windowlist->windows+i; + + window_start = ESL_MAX(prev_window->n, curr_window->n); + window_end = ESL_MIN(prev_window->n+prev_window->length-1, curr_window->n+curr_window->length-1); + window_len = window_end - window_start + 1; + + if ( prev_window->complementarity == curr_window->complementarity && + prev_window->id == curr_window->id && + (float)(window_len)/ESL_MIN(prev_window->length, curr_window->length) > pct_overlap // && + //curr_window->n + curr_window->length >= prev_window->n + prev_window->length + ) + { + //merge windows + window_start = ESL_MIN(prev_window->n, curr_window->n); + window_end = ESL_MAX(prev_window->n+prev_window->length-1, curr_window->n+curr_window->length-1); + prev_window->fm_n -= (prev_window->n - window_start); + prev_window->n = window_start; + prev_window->length = window_end - window_start + 1; + } else { + new_hit_cnt++; + windowlist->windows[new_hit_cnt] = windowlist->windows[i]; + } + } + windowlist->count = new_hit_cnt+1; + + return eslOK; +} + +/* Function: p7_pli_TargetReportable + * Synopsis: Returns TRUE if target score meets reporting threshold. + * + * Purpose: Returns if the bit score and/or + * log P-value meet per-target reporting thresholds + * for the processing pipeline. + */ +int +p7_pli_TargetReportable(P7_PIPELINE *pli, float score, double lnP) +{ + if ( pli->by_E ) + { + if ( !pli->long_targets && exp(lnP) * pli->Z <= pli->E) return TRUE; + if ( pli->long_targets && exp(lnP) <= pli->E) return TRUE; // database size is already built into the Pval if pli->targetlength == p7_TARGET_LONG + } + else if (! pli->by_E && score >= pli->T) return TRUE; + + return FALSE; +} + +/* Function: p7_pli_DomainReportable + * Synopsis: Returns TRUE if domain score meets reporting threshold. + * + * Purpose: Returns if the bit score and/or + * log P-value meet per-domain reporting thresholds + * for the processing pipeline. + */ +int +p7_pli_DomainReportable(P7_PIPELINE *pli, float dom_score, double lnP) +{ + if ( pli->dom_by_E ) + { + if ( !pli->long_targets && exp(lnP) * pli->domZ <= pli->domE) return TRUE; + if ( pli->long_targets && exp(lnP) <= pli->domE) return TRUE; + } + else if (! pli->dom_by_E && dom_score >= pli->domT) return TRUE; + return FALSE; +} + +/* Function: p7_pli_TargetIncludable() + * Synopsis: Returns TRUE if target score meets inclusion threshold. + */ +int +p7_pli_TargetIncludable(P7_PIPELINE *pli, float score, double lnP) +{ + if ( pli->inc_by_E ) + { + if ( !pli->long_targets && exp(lnP) * pli->Z <= pli->incE) return TRUE; + if ( pli->long_targets && exp(lnP) <= pli->incE) return TRUE; + } + + else if (! pli->inc_by_E && score >= pli->incT) return TRUE; + + return FALSE; +} + +/* Function: p7_pli_DomainIncludable() + * Synopsis: Returns TRUE if domain score meets inclusion threshold. + */ +int +p7_pli_DomainIncludable(P7_PIPELINE *pli, float dom_score, double lnP) +{ + if ( pli->incdom_by_E && exp(lnP) * pli->domZ <= pli->incdomE) return TRUE; + else if (! pli->incdom_by_E && dom_score >= pli->incdomT) return TRUE; + else return FALSE; +} + + + + +/* Function: p7_pli_NewModel() + * Synopsis: Prepare pipeline for a new model (target or query) + * + * Purpose: Caller has a new model . Prepare the pipeline + * to receive this model as either a query or a target. + * + * If the "experimental" bias filter HMM is in use, this + * call resets it to use the new model's composition. This + * overwrites the bias filter HMM's expected length! You + * need to call after a call. + * (Failure to do this is bug #h85, 14 Dec 10.) + * + * The pipeline may alter the null model in a model-specific + * way (if we're using a composition bias filter HMM in the + * pipeline). + * + * Returns: on success. + * + * if pipeline expects to be able to use a + * model's bit score thresholds, but this model does not + * have the appropriate ones set. + */ +int +p7_pli_NewModel(P7_PIPELINE *pli, const P7_OPROFILE *om, P7_BG *bg) +{ + int status = eslOK; + + pli->nmodels++; + pli->nnodes += om->M; + if (pli->Z_setby == p7_ZSETBY_NTARGETS && pli->mode == p7_SCAN_MODELS) pli->Z = pli->nmodels; + + if (pli->do_biasfilter) p7_bg_SetFilter(bg, om->M, om->compo); + + if (pli->mode == p7_SEARCH_SEQS) + status = p7_pli_NewModelThresholds(pli, om); + + pli->W = om->max_length; + + return status; +} + +/* Function: p7_pli_NewModelThresholds() + * Synopsis: Set reporting and inclusion bit score thresholds on a new model. + * + * Purpose: Set the bit score thresholds on a new model, if we're + * using Pfam GA, TC, or NC cutoffs for reporting or + * inclusion. + * + * In a "search" pipeline, this only needs to be done once + * per query model, so gets + * called by . + * + * In a "scan" pipeline, this needs to be called for each + * model, and it needs to be called after + * , because that's when the bit + * score thresholds get read. + * + * Returns: on success. + * + * if pipeline expects to be able to use a + * model's bit score thresholds, but this model does not + * have the appropriate ones set. + * + * Xref: Written to fix bug #h60. + */ +int +p7_pli_NewModelThresholds(P7_PIPELINE *pli, const P7_OPROFILE *om) +{ + + if (pli->use_bit_cutoffs) + { + if (pli->use_bit_cutoffs == p7H_GA) + { + if (om->cutoff[p7_GA1] == p7_CUTOFF_UNSET) + ESL_FAIL(eslEINVAL, pli->errbuf, "GA bit thresholds unavailable on model %s\n", om->name); + pli->T = pli->incT = om->cutoff[p7_GA1]; + pli->domT = pli->incdomT = om->cutoff[p7_GA2]; + } + else if (pli->use_bit_cutoffs == p7H_TC) + { + if (om->cutoff[p7_TC1] == p7_CUTOFF_UNSET) + ESL_FAIL(eslEINVAL, pli->errbuf, "TC bit thresholds unavailable on model %s\n", om->name); + pli->T = pli->incT = om->cutoff[p7_TC1]; + pli->domT = pli->incdomT = om->cutoff[p7_TC2]; + } + else if (pli->use_bit_cutoffs == p7H_NC) + { + if (om->cutoff[p7_NC1] == p7_CUTOFF_UNSET) + ESL_FAIL(eslEINVAL, pli->errbuf, "NC bit thresholds unavailable on model %s\n", om->name); + pli->T = pli->incT = om->cutoff[p7_NC1]; + pli->domT = pli->incdomT = om->cutoff[p7_NC2]; + } + } + + return eslOK; +} + + +/* Function: p7_pli_NewSeq() + * Synopsis: Prepare pipeline for a new sequence (target or query) + * + * Purpose: Caller has a new sequence . Prepare the pipeline + * to receive this model as either a query or a target. + * + * Returns: on success. + */ +int +p7_pli_NewSeq(P7_PIPELINE *pli, const ESL_SQ *sq) +{ + if (!pli->long_targets) pli->nseqs++; // if long_targets, sequence counting happens in the serial loop, which can track multiple windows for a single long sequence + pli->nres += sq->n; + if (pli->Z_setby == p7_ZSETBY_NTARGETS && pli->mode == p7_SEARCH_SEQS) pli->Z = pli->nseqs; + return eslOK; +} + +/* Function: p7_pipeline_Merge() + * Synopsis: Merge the pipeline statistics + * + * Purpose: Caller has a new model . Prepare the pipeline + * to receive this model as either a query or a target. + * + * The pipeline may alter the null model in a model-specific + * way (if we're using a composition bias filter HMM in the + * pipeline). + * + * Returns: on success. + * + * if pipeline expects to be able to use a + * model's bit score thresholds, but this model does not + * have the appropriate ones set. + */ +int +p7_pipeline_Merge(P7_PIPELINE *p1, P7_PIPELINE *p2) +{ + /* if we are searching a sequence database, we need to keep track of the + * number of sequences and residues processed. + */ + if (p1->mode == p7_SEARCH_SEQS) + { + p1->nseqs += p2->nseqs; + p1->nres += p2->nres; + } + else + { + p1->nmodels += p2->nmodels; + p1->nnodes += p2->nnodes; + } + + p1->n_past_msv += p2->n_past_msv; + p1->n_past_bias += p2->n_past_bias; + p1->n_past_vit += p2->n_past_vit; + p1->n_past_fwd += p2->n_past_fwd; + p1->n_output += p2->n_output; + + p1->pos_past_msv += p2->pos_past_msv; + p1->pos_past_bias += p2->pos_past_bias; + p1->pos_past_vit += p2->pos_past_vit; + p1->pos_past_fwd += p2->pos_past_fwd; + p1->pos_output += p2->pos_output; + + if (p1->Z_setby == p7_ZSETBY_NTARGETS) + { + p1->Z += (p1->mode == p7_SCAN_MODELS) ? p2->nmodels : p2->nseqs; + } + else + { + p1->Z = p2->Z; + } + + return eslOK; +} + +/* Function: p7_Pipeline() + * Synopsis: HMMER3's accelerated seq/profile comparison pipeline. + * + * Purpose: Run H3's accelerated pipeline to compare profile + * against sequence . If a significant hit is found, + * information about it is added to the . The pipeline + * accumulates beancounting information about how many comparisons + * flow through the pipeline while it's active. + * + * Returns: on success. If a significant hit is obtained, + * its information is added to the growing . + * + * if (in a scan pipeline) we're supposed to + * set GA/TC/NC bit score thresholds but the model doesn't + * have any. + * + * on numerical overflow errors in the + * optimized vector implementations; particularly in + * posterior decoding. I don't believe this is possible for + * multihit local models, but I'm set up to catch it + * anyway. We may emit a warning to the user, but cleanly + * skip the problematic sequence and continue. + * + * Throws: on allocation failure. + * + * if is more than 100K long, which can + * happen when someone uses hmmsearch/hmmscan instead of + * nhmmer/nhmmscan on a genome DNA seq db. + * + * Xref: J4/25. + * + * Note: Error handling needs improvement. The exception + * was added as a late bugfix. It really should be an + * normal error (because it's a user error). But then we need + * all our p7_Pipeline() calls to check their return status + * and handle normal errors appropriately, which we haven't + * been careful enough about. [SRE H9/4] + */ +int +p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_TOPHITS *hitlist) +{ + P7_HIT *hit = NULL; /* ptr to the current hit output data */ + float usc, vfsc, fwdsc; /* filter scores */ + float filtersc; /* HMM null filter score */ + float nullsc; /* null model score */ + float seqbias; + float seq_score; /* the corrected per-seq bit score */ + float sum_score; /* the corrected reconstruction score for the seq */ + float pre_score, pre2_score; /* uncorrected bit scores for seq */ + double P; /* P-value of a hit */ + double lnP; /* log P-value of a hit */ + int Ld; /* # of residues in envelopes */ + int d; + int status; + + if (sq->n == 0) return eslOK; /* silently skip length 0 seqs; they'd cause us all sorts of weird problems */ + if (sq->n > 100000) ESL_EXCEPTION(eslETYPE, "Target sequence length > 100K, over comparison pipeline limit.\n(Did you mean to use nhmmer/nhmmscan?)"); + + p7_omx_GrowTo(pli->oxf, om->M, 0, sq->n); /* expand the one-row omx if needed */ + + /* Base null model score (we could calculate this in NewSeq(), for a scan pipeline) */ + p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc); + + /* First level filter: the MSV filter, multihit with */ + p7_MSVFilter(sq->dsq, sq->n, om, pli->oxf, &usc); + seq_score = (usc - nullsc) / eslCONST_LOG2; + P = esl_gumbel_surv(seq_score, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + if (P > pli->F1) return eslOK; + pli->n_past_msv++; + + /* biased composition HMM filtering */ + if (pli->do_biasfilter) + { + p7_bg_FilterScore(bg, sq->dsq, sq->n, &filtersc); + seq_score = (usc - filtersc) / eslCONST_LOG2; + P = esl_gumbel_surv(seq_score, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + if (P > pli->F1) return eslOK; + } + else filtersc = nullsc; + pli->n_past_bias++; + + /* In scan mode, if it passes the MSV filter, read the rest of the profile */ + if (pli->mode == p7_SCAN_MODELS) + { + if (pli->hfp) p7_oprofile_ReadRest(pli->hfp, om); + p7_oprofile_ReconfigRestLength(om, sq->n); + if ((status = p7_pli_NewModelThresholds(pli, om)) != eslOK) return status; /* pli->errbuf has err msg set */ + } + + /* Second level filter: ViterbiFilter(), multihit with */ + if (P > pli->F2) + { + p7_ViterbiFilter(sq->dsq, sq->n, om, pli->oxf, &vfsc); + seq_score = (vfsc-filtersc) / eslCONST_LOG2; + P = esl_gumbel_surv(seq_score, om->evparam[p7_VMU], om->evparam[p7_VLAMBDA]); + if (P > pli->F2) return eslOK; + } + pli->n_past_vit++; + + + /* Parse it with Forward and obtain its real Forward score. */ + p7_ForwardParser(sq->dsq, sq->n, om, pli->oxf, &fwdsc); + seq_score = (fwdsc-filtersc) / eslCONST_LOG2; + P = esl_exp_surv(seq_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + if (P > pli->F3) return eslOK; + pli->n_past_fwd++; + + /* ok, it's for real. Now a Backwards parser pass, and hand it to domain definition workflow */ + p7_omx_GrowTo(pli->oxb, om->M, 0, sq->n); + p7_BackwardParser(sq->dsq, sq->n, om, pli->oxf, pli->oxb, NULL); + + status = p7_domaindef_ByPosteriorHeuristics(sq, ntsq, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, bg, FALSE, NULL, NULL, NULL); + if (status != eslOK) ESL_FAIL(status, pli->errbuf, "domain definition workflow failure"); /* eslERANGE can happen */ + if (pli->ddef->nregions == 0) return eslOK; /* score passed threshold but there's no discrete domains here */ + if (pli->ddef->nenvelopes == 0) return eslOK; /* rarer: region was found, stochastic clustered, no envelopes found */ + if (pli->ddef->ndom == 0) return eslOK; /* even rarer: envelope found, no domain identified {iss131} */ + + + /* Calculate the null2-corrected per-seq score */ + if (pli->do_null2) + { + seqbias = esl_vec_FSum(pli->ddef->n2sc, sq->n+1); + seqbias = p7_FLogsum(0.0, log(bg->omega) + seqbias); + } + else seqbias = 0.0; + pre_score = (fwdsc - nullsc) / eslCONST_LOG2; + seq_score = (fwdsc - (nullsc + seqbias)) / eslCONST_LOG2; + + + /* Calculate the "reconstruction score": estimated + * per-sequence score as sum of individual domains, + * discounting domains that aren't significant after they're + * null-corrected. + */ + sum_score = 0.0f; + seqbias = 0.0f; + + Ld = 0; + if (pli->do_null2) + { + for (d = 0; d < pli->ddef->ndom; d++) + { + if (pli->ddef->dcl[d].envsc - pli->ddef->dcl[d].domcorrection > 0.0) + { + sum_score += pli->ddef->dcl[d].envsc; /* NATS */ + Ld += pli->ddef->dcl[d].jenv - pli->ddef->dcl[d].ienv + 1; + seqbias += pli->ddef->dcl[d].domcorrection; /* NATS */ + } + } + seqbias = p7_FLogsum(0.0, log(bg->omega) + seqbias); /* NATS */ + } + else + { + for (d = 0; d < pli->ddef->ndom; d++) + { + if (pli->ddef->dcl[d].envsc > 0.0) + { + sum_score += pli->ddef->dcl[d].envsc; /* NATS */ + Ld += pli->ddef->dcl[d].jenv - pli->ddef->dcl[d].ienv + 1; + } + } + seqbias = 0.0; + } + sum_score += (sq->n-Ld) * log((float) sq->n / (float) (sq->n+3)); /* NATS */ + pre2_score = (sum_score - nullsc) / eslCONST_LOG2; /* BITS */ + sum_score = (sum_score - (nullsc + seqbias)) / eslCONST_LOG2; /* BITS */ + + /* A special case: let sum_score override the seq_score when it's better, and it includes at least 1 domain */ + if (Ld > 0 && sum_score > seq_score) + { + seq_score = sum_score; + pre_score = pre2_score; + } + + /* Apply thresholding and determine whether to put this + * target into the hit list. E-value thresholding may + * only be a lower bound for now, so this list may be longer + * than eventually reported. + */ + lnP = esl_exp_logsurv (seq_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + if (p7_pli_TargetReportable(pli, seq_score, lnP)) + { + p7_tophits_CreateNextHit(hitlist, &hit); + if (pli->mode == p7_SEARCH_SEQS) { + if ( (status = esl_strdup(sq->name, -1, &(hit->name))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure"); + if (sq->acc[0] != '\0' && (status = esl_strdup(sq->acc, -1, &(hit->acc))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure"); + if (sq->desc[0] != '\0' && (status = esl_strdup(sq->desc, -1, &(hit->desc))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure"); + } else { + if ((status = esl_strdup(om->name, -1, &(hit->name))) != eslOK) esl_fatal("allocation failure"); + if ((status = esl_strdup(om->acc, -1, &(hit->acc))) != eslOK) esl_fatal("allocation failure"); + if ((status = esl_strdup(om->desc, -1, &(hit->desc))) != eslOK) esl_fatal("allocation failure"); + } + hit->ndom = pli->ddef->ndom; + hit->nexpected = pli->ddef->nexpected; + hit->nregions = pli->ddef->nregions; + hit->nclustered = pli->ddef->nclustered; + hit->noverlaps = pli->ddef->noverlaps; + hit->nenvelopes = pli->ddef->nenvelopes; + + hit->pre_score = pre_score; /* BITS */ + hit->pre_lnP = esl_exp_logsurv (hit->pre_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + + hit->score = seq_score; /* BITS */ + hit->lnP = lnP; + hit->sortkey = pli->inc_by_E ? -lnP : seq_score; /* per-seq output sorts on bit score if inclusion is by score */ + + hit->sum_score = sum_score; /* BITS */ + hit->sum_lnP = esl_exp_logsurv (hit->sum_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + + /* Transfer all domain coordinates (unthresholded for + * now) with their alignment displays to the hit list, + * associated with the sequence. Domain reporting will + * be thresholded after complete hit list is collected, + * because we probably need to know # of significant + * hits found to set domZ, and thence threshold and + * count reported domains. + */ + hit->dcl = pli->ddef->dcl; + pli->ddef->dcl = NULL; + hit->best_domain = 0; + for (d = 0; d < hit->ndom; d++) + { + Ld = hit->dcl[d].jenv - hit->dcl[d].ienv + 1; + hit->dcl[d].bitscore = hit->dcl[d].envsc + (sq->n-Ld) * log((float) sq->n / (float) (sq->n+3)); /* NATS, for the moment... */ + hit->dcl[d].dombias = (pli->do_null2 ? p7_FLogsum(0.0, log(bg->omega) + hit->dcl[d].domcorrection) : 0.0); /* NATS, and will stay so */ + hit->dcl[d].bitscore = (hit->dcl[d].bitscore - (nullsc + hit->dcl[d].dombias)) / eslCONST_LOG2; /* now BITS, as it should be */ + hit->dcl[d].lnP = esl_exp_logsurv (hit->dcl[d].bitscore, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + + if (hit->dcl[d].bitscore > hit->dcl[hit->best_domain].bitscore) hit->best_domain = d; + } + + /* If we're using model-specific bit score thresholds (GA | TC | + * NC) and we're in an hmmscan pipeline (mode = p7_SCAN_MODELS), + * then we *must* apply those reporting or inclusion thresholds + * now, because this model is about to go away; we won't have + * its thresholds after all targets have been processed. + * + * If we're using E-value thresholds and we don't know the + * search space size (Z_setby or domZ_setby = + * p7_ZSETBY_NTARGETS), we *cannot* apply those thresholds now, + * and we *must* wait until all targets have been processed + * (see p7_tophits_Threshold()). + * + * For any other thresholding, it doesn't matter whether we do + * it here (model-specifically) or at the end (in + * p7_tophits_Threshold()). + * + * What we actually do, then, is to set the flags if we're using + * model-specific score thresholds (regardless of whether we're + * in a scan or a search pipeline); otherwise we leave it to + * p7_tophits_Threshold(). p7_tophits_Threshold() is always + * responsible for *counting* the reported, included sequences. + * + * [xref J5/92] + */ + if (pli->use_bit_cutoffs) + { + if (p7_pli_TargetReportable(pli, hit->score, hit->lnP)) + { + hit->flags |= p7_IS_REPORTED; + if (p7_pli_TargetIncludable(pli, hit->score, hit->lnP)) + hit->flags |= p7_IS_INCLUDED; + } + + for (d = 0; d < hit->ndom; d++) + { + if (p7_pli_DomainReportable(pli, hit->dcl[d].bitscore, hit->dcl[d].lnP)) + { + hit->dcl[d].is_reported = TRUE; + if (p7_pli_DomainIncludable(pli, hit->dcl[d].bitscore, hit->dcl[d].lnP)) + hit->dcl[d].is_included = TRUE; + } + } + } + + } + + return eslOK; +} + + + +/* Function: p7_pli_computeAliScores() + * Synopsis: Compute per-position scores for the alignment for a domain + * + * Purpose: Compute per-position (Viterbi) scores for the alignment for a domain, + * for the purpose of optionally printing these scores out in association + * with each alignment. Such scores can, for example, be used to detangle + * overlapping alignments (from different models) + * + * Args: dom - domain with the alignment for which we wish to compute scores + * seq - sequence in which domain resides + * data - contains model's emission and transition values in unstriped form + * K - alphabet size + * + * Returns: on success. + * + * Throws: on allocation failure. + */ +static int +p7_pli_computeAliScores(P7_DOMAIN *dom, ESL_DSQ *seq, const P7_SCOREDATA *data, int K) +{ + int status; + int i, j, k; + float sc; + + //Compute score contribution of each position in the alignment to the overall Viterbi score + ESL_ALLOC( dom->scores_per_pos, sizeof(float) * dom->ad->N ); + for (i=0; iad->N; i++) dom->scores_per_pos[i] = 0.0; + + i = dom->iali - 1; //sequence position + j = dom->ad->hmmfrom - 1; //model position + k = 0; + while ( kad->N) { + if (dom->ad->model[k] != '.' && dom->ad->aseq[k] != '-') { //match + i++; j++; + // Including the MM cost is a hack. The cost of getting to/from this match + // state does matter, but an IM or DM transition would improperly deflate + // the score of this column, so just give MM. That amount is offset out of + // the score shown for preceding indels + dom->scores_per_pos[k] = data->fwd_scores[K * j + seq[i]] + + (j==1 ? 0 : log(data->fwd_transitions[p7O_MM][j]) ); + k++; + } else if (dom->ad->model[k] == '.' ) { // insert + //spin through the insert, accumulating cost; only assign to final column in gap + dom->scores_per_pos[k] = -eslINFINITY; + + sc = log(data->fwd_transitions[p7O_MI][j]); + i++; k++; + while (kad->N && dom->ad->model[k] == '.') { //extend insert + dom->scores_per_pos[k] = -eslINFINITY; + sc += log(data->fwd_transitions[p7O_II][j]); + i++; k++; + } + sc += log(data->fwd_transitions[p7O_IM][j+1]) - log(data->fwd_transitions[p7O_MM][j+1]); + dom->scores_per_pos[k-1] = sc; + + } else if (dom->ad->aseq[k] == '-' ) { // delete + dom->scores_per_pos[k] = -eslINFINITY; + sc = log(data->fwd_transitions[p7O_MD][j]); + j++; k++; + while (kad->N && dom->ad->aseq[k] == '-') { //extend delete + dom->scores_per_pos[k] = -eslINFINITY; + sc += log(data->fwd_transitions[p7O_DD][j]); + j++; k++; + } + sc += log(data->fwd_transitions[p7O_DM][j+1]) - log(data->fwd_transitions[p7O_MM][j+1]); + dom->scores_per_pos[k-1] = sc; + } + } + + return eslOK; + +ERROR: + return eslEMEM; + +} + + +/* Function: p7_pli_postViterbi_LongTarget() + * Synopsis: the part of the LongTarget P7 search Pipeline downstream + * of the Viterbi filter + * + * Purpose: This is called by postMSV_LongTarget(), and runs the + * post-Viterbi part of HMMER's accelerated pipeline to + * compare profile against sequence . If a + * significant hit is found, information about it is + * added to the . + * The pipeline accumulates beancounting information + * about how many comparisons (and residues) flow through + * the pipeline while it's active. + * + * Args: pli - the main pipeline object + * om - optimized profile (query) + * bg - background model + * hitlist - pointer to hit storage bin + * data - for computing windows based on maximum prefix/suffix extensions + * seqidx - the id # of the sequence from which the current window was extracted + * window_start - the starting position of the extracted window (offset from the first + * position of the block of a possibly longer sequence) + * window_len - the length of the extracted window + * subseq - digital sequence of the extracted window + * seq_start - first position of the sequence block passed in to the calling pipeline function + * seq_name - name of the sequence the window comes from + * seq_source - source of the sequence the window comes from + * seq_acc - acc of the sequence the window comes from + * seq_desc - desc of the sequence the window comes from + * seq_len - length of the sequence the window comes from (Available from FM; otherwise 0 and to be ignored) + * complementarity - boolean; is the passed window sourced from a complementary sequence block + * overlap - number of residues in this sequence window that overlap a preceding window. + * pli_tmp - a collection of objects used in the long target pipeline that should be + * (and are) only allocated once per pipeline to minimize alloc overhead. + + * Returns: on success. If a significant hit is obtained, + * its information is added to the growing . + * + * on numerical overflow errors in the + * optimized vector implementations; particularly in + * posterior decoding. I don't believe this is possible for + * multihit local models, but I'm set up to catch it + * anyway. We may emit a warning to the user, but cleanly + * skip the problematic sequence and continue. + * + * Throws: on allocation failure. + * + */ +static int +p7_pli_postViterbi_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hitlist, const P7_SCOREDATA *data, + int64_t seqidx, int window_start, int window_len, ESL_DSQ *subseq, + int64_t seq_start, char *seq_name, char *seq_source, char* seq_acc, char* seq_desc, int seq_len, + int complementarity, int *overlap, P7_PIPELINE_LONGTARGET_OBJS *pli_tmp +) +{ + P7_DOMAIN *dom = NULL; /* convenience variable, ptr to current domain */ + P7_HIT *hit = NULL; /* ptr to the current hit output data */ + float fwdsc; /* filter scores */ + float nullsc; + float filtersc; /* HMM null filter score */ + float bias_filtersc; /* HMM null filter score */ + float seq_score; /* the corrected per-seq bit score */ + double P; /* P-value of a hit */ + int d; + int status; +// int nres; + ESL_DSQ *dsq_holder; + + int env_len; + int ali_len; + float bitscore; + float dom_bias; + float dom_score; + double dom_lnP; + + int F3_L = ESL_MIN( window_len, pli->B3); + + p7_bg_SetLength(bg, window_len); + p7_bg_NullOne (bg, subseq, window_len, &nullsc); + if (pli->do_biasfilter) + { + p7_bg_FilterScore(bg, subseq, window_len, &bias_filtersc); + bias_filtersc -= nullsc; //remove nullsc, so bias scaling can be done, then add it back on later + } else { + bias_filtersc = 0; + } + + p7_oprofile_ReconfigRestLength(om, window_len); + + /* Parse with Forward and obtain its real Forward score. */ + p7_ForwardParser(subseq, window_len, om, pli->oxf, &fwdsc); + filtersc = nullsc + (bias_filtersc * ( F3_L>window_len ? 1.0 : (float)F3_L/window_len) ); + seq_score = (fwdsc - filtersc) / eslCONST_LOG2; + P = esl_exp_surv(seq_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + if (P > pli->F3 ) return eslOK; + + pli->pos_past_fwd += window_len - *overlap; + + *overlap = -1; // overload variable to tell calling function that this window passed fwd + + /*now that almost everything has been filtered away, set up seq object for domaindef function*/ + if ((status = esl_sq_SetName (pli_tmp->tmpseq, seq_name)) != eslOK) goto ERROR; + if ((status = esl_sq_SetSource (pli_tmp->tmpseq, seq_source)) != eslOK) goto ERROR; + if ((status = esl_sq_SetAccession(pli_tmp->tmpseq, seq_acc)) != eslOK) goto ERROR; + if ((status = esl_sq_SetDesc (pli_tmp->tmpseq, seq_desc)) != eslOK) goto ERROR; + pli_tmp->tmpseq->L = seq_len; + pli_tmp->tmpseq->n = window_len; + dsq_holder = pli_tmp->tmpseq->dsq; // will point back to the original at the end + pli_tmp->tmpseq->dsq = subseq; + + /* Now a Backwards parser pass, and hand it to domain definition workflow + * In this case "domains" will end up being translated as independent "hits" */ + p7_omx_GrowTo(pli->oxb, om->M, 0, window_len); + p7_BackwardParser(subseq, window_len, om, pli->oxf, pli->oxb, NULL); + + //if we're asked to not do null correction, pass a NULL instead of a temp scores variable - domaindef knows what to do + status = p7_domaindef_ByPosteriorHeuristics(pli_tmp->tmpseq, NULL, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, bg, TRUE, + pli_tmp->bg, (pli->do_null2?pli_tmp->scores:NULL), pli_tmp->fwd_emissions_arr); + + pli_tmp->tmpseq->dsq = dsq_holder; + if (status != eslOK) ESL_FAIL(status, pli->errbuf, "domain definition workflow failure"); /* eslERANGE can happen */ + if (pli->ddef->nregions == 0) return eslOK; /* score passed threshold but there's no discrete domains here */ + if (pli->ddef->nenvelopes == 0) return eslOK; /* rarer: region was found, stochastic clustered, no envelopes found */ + + + /* Put these hits ("domains") into the hit list. + * + * Modified original pipeline to create a single hit for each + * domain, so the remainder of the typical-case hit-merging + * process can remain mostly intact. + * + * Some of them may not pass eventual E-value thresholds. In + * protein context, these would be reported as supplementary + * data (domains contributing to a full-sequence score), but + * in nhmmer context, they'll just get thrown away later, so + * drop them now, if possible. + */ + for (d = 0; d < pli->ddef->ndom; d++) + { + + dom = pli->ddef->dcl + d; + + //adjust the score of a hit to account for the full length model - the characters outside the envelope but in the window + env_len = dom->jenv - dom->ienv + 1; + ali_len = dom->jali - dom->iali + 1; + bitscore = dom->envsc ; + + + if (ali_len < 8) { + p7_alidisplay_Destroy(dom->ad); + continue; // anything less than this is a funny byproduct of the Forward score passing a very low threshold, but no reliable alignment existing that supports it + } + + /* note: this bitscore was computed under a model with length of + * env_len (jenv-ienv+1). Here, the score is modified (reduced) by + * treating the hit as though it came from a window of length + * om->max_length. To do this: + */ + + // (1) the entrance/exit costs are shifted from env_len to max_length: + bitscore -= 2 * log(2. / (env_len+2)) ; + bitscore += 2 * log(2. / (om->max_length+2)) ; + + // (2) the extension cost for going from ali bounds to env bounds is removed, + // and replaced with the cost of going from ali bounds to max length (or env + // bounds in the extremely rare case that the env_len is actually larger than om->max_length). + bitscore -= (env_len-ali_len) * log((float)env_len / (env_len+2)); + bitscore += (ESL_MAX(om->max_length, env_len) - ali_len) * log((float)om->max_length / (float) (om->max_length+2)); + + /* Compute scores used to decide if we should keep this "domain" as a hit. + * Note that the bias correction was captured in dom->domcorrection during + * the p7_domaindef_ByPosteriorHeuristics() call. + */ + dom_bias = dom->domcorrection; + p7_bg_SetLength(bg, ESL_MAX(om->max_length, env_len)); + p7_bg_NullOne (bg, subseq, ESL_MAX(om->max_length, env_len), &nullsc); + dom_score = (bitscore - (nullsc)) / eslCONST_LOG2; + dom_lnP = esl_exp_logsurv(dom_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + + if (pli->do_alignment_score_calc) + p7_pli_computeAliScores(dom, subseq, data, om->abc->Kp); + + p7_tophits_CreateNextHit(hitlist, &hit); + + hit->ndom = 1; + hit->best_domain = 0; + + hit->window_length = om->max_length; + hit->seqidx = seqidx; + hit->subseq_start = seq_start; + + ESL_ALLOC(hit->dcl, sizeof(P7_DOMAIN) ); + hit->dcl[0] = pli->ddef->dcl[d]; + + hit->dcl[0].ad->L = seq_len; + + + // compute the real positions within the sequence handed to the pipeline + if (complementarity == p7_NOCOMPLEMENT) { + hit->dcl[0].ienv += seq_start + window_start - 2; + hit->dcl[0].jenv += seq_start + window_start - 2; + hit->dcl[0].iali += seq_start + window_start - 2; + hit->dcl[0].jali += seq_start + window_start - 2; + hit->dcl[0].ad->sqfrom += seq_start + window_start - 2; + hit->dcl[0].ad->sqto += seq_start + window_start - 2; + } else { + hit->dcl[0].ienv = seq_start - (window_start + hit->dcl[0].ienv) + 2; + hit->dcl[0].jenv = seq_start - (window_start + hit->dcl[0].jenv) + 2; + hit->dcl[0].iali = seq_start - (window_start + hit->dcl[0].iali) + 2; + hit->dcl[0].jali = seq_start - (window_start + hit->dcl[0].jali) + 2; + hit->dcl[0].ad->sqfrom = seq_start - (window_start + hit->dcl[0].ad->sqfrom) + 2; + hit->dcl[0].ad->sqto = seq_start - (window_start + hit->dcl[0].ad->sqto) + 2; + } + hit->pre_score = bitscore / eslCONST_LOG2; + hit->pre_lnP = esl_exp_logsurv (hit->pre_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]); + + hit->dcl[0].dombias = dom_bias; + hit->sum_score = hit->score = hit->dcl[0].bitscore = dom_score; + hit->sum_lnP = hit->lnP = hit->dcl[0].lnP = dom_lnP; + + + if (pli->mode == p7_SEARCH_SEQS) + { + if ( (status = esl_strdup(seq_name, -1, &(hit->name))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure"); + if (seq_acc[0] != '\0' && (status = esl_strdup(seq_acc, -1, &(hit->acc))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure"); + if (seq_desc[0] != '\0' && (status = esl_strdup(seq_desc, -1, &(hit->desc))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure"); + } else { + if ((status = esl_strdup(om->name, -1, &(hit->name))) != eslOK) esl_fatal("allocation failure"); + if ((status = esl_strdup(om->acc, -1, &(hit->acc))) != eslOK) esl_fatal("allocation failure"); + if ((status = esl_strdup(om->desc, -1, &(hit->desc))) != eslOK) esl_fatal("allocation failure"); + } + + + /* If using model-specific thresholds, filter now. See notes in front + * of the analogous piece of code in p7_Pipeline() for further explanation + * of timing. + */ + if (pli->use_bit_cutoffs) + { + if (p7_pli_TargetReportable(pli, hit->score, hit->lnP)) + { + hit->flags |= p7_IS_REPORTED; + if (p7_pli_TargetIncludable(pli, hit->score, hit->lnP)) + hit->flags |= p7_IS_INCLUDED; + } + + if (p7_pli_DomainReportable(pli, hit->dcl[0].bitscore, hit->dcl[0].lnP)) + { + hit->dcl[0].is_reported = TRUE; + if (p7_pli_DomainIncludable(pli, hit->dcl[0].bitscore, hit->dcl[0].lnP)) + hit->dcl[0].is_included = TRUE; + } + + } + + } + + return eslOK; + +ERROR: + ESL_EXCEPTION(eslEMEM, "Error in LongTarget pipeline\n"); + +} + + +/* Function: p7_pli_postSSV_LongTarget() + * Synopsis: the part of the LongTarget P7 search Pipeline downstream + * of the SSV filter + * + * Purpose: This is called by either the standard (SIMD-SSV) long-target + * pipeline (p7_Pipeline_LongTarget) or the FM-index long-target + * pipeline (p7_Pipeline_FM), and runs the post-MSV part of H3's + * accelerated pipeline to compare profile against sequence + * . If a significant hit is found (within the function + * p7_pipeline_postViterbi_LongTarget(), called in this function), + * information about it is added to the . The pipeline + * accumulates beancounting information about how many comparisons + * and residues flow through the pipeline while it's active. + * + * Args: pli - the main pipeline object + * om - optimized profile (query) + * bg - background model + * hitlist - pointer to hit storage bin + * data - for computing windows based on maximum prefix/suffix extensions + * seqidx - the id # of the sequence from which the current window was extracted + * window_start - the starting position of the extracted window (offset from the first + * position of the block of a possibly longer sequence) + * window_len - the length of the extracted window + * subseq - digital sequence of the extracted window + * seq_start - first position of the sequence block passed in to the calling pipeline function + * seq_name - name of the sequence the window comes from + * seq_source - source of the sequence the window comes from + * seq_acc - acc of the sequence the window comes from + * seq_desc - desc of the sequence the window comes from + * seq_len - length of the sequence the window comes from (only FM will have it; otherwise, 0 and ignored) + * nullsc - score of the passed window vs the bg model + * usc - msv score of the passed window + * complementarity - boolean; is the passed window sourced from a complementary sequence block + * vit_windowlist - initialized window list, in which viterbi-passing hits are captured + * pli_tmp - a collection of objects used in the long target pipeline that should be + * (and are) only allocated once per pipeline to minimize alloc overhead. + * + * Returns: on success. If a significant hit is obtained, + * its information is added to the growing . + * + * on numerical overflow errors in the + * optimized vector implementations; particularly in + * posterior decoding. I don't believe this is possible for + * multihit local models, but I'm set up to catch it + * anyway. We may emit a warning to the user, but cleanly + * skip the problematic sequence and continue. + * + * Throws: on allocation failure. + * + */ +static int +p7_pli_postSSV_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hitlist, const P7_SCOREDATA *data, + int64_t seqidx, uint64_t window_start, int window_len, ESL_DSQ *subseq, + uint64_t seq_start, char *seq_name, char *seq_source, char* seq_acc, char* seq_desc, int seq_len, + float nullsc, float usc, int complementarity, P7_HMM_WINDOWLIST *vit_windowlist, + P7_PIPELINE_LONGTARGET_OBJS *pli_tmp +) +{ + float filtersc; /* HMM null filter score */ + float bias_filtersc; /* HMM null filter score */ + float seq_score; /* the corrected per-seq bit score */ + double P; /* P-value of a hit */ + int i; + int overlap; + uint64_t new_n; + uint32_t new_len; + + int loc_window_len; //used to re-parameterize to shorter target windows + + int max_window_len = 80000; + int overlap_len = ESL_MIN(40000, om->max_length); // Won't allow more than 40K overlap - that's an absurdly long MAXL. + + int F1_L = ESL_MIN( window_len, pli->B1); + int F2_L = ESL_MIN( window_len, pli->B2); + + //initial bias filter, based on the input window_len + if (pli->do_biasfilter) { + p7_bg_SetLength(bg, window_len); + p7_bg_FilterScore(bg, subseq, window_len, &bias_filtersc); + bias_filtersc -= nullsc; // doing this because I'll be modifying the bias part of filtersc based on length, then adding nullsc back in. + filtersc = nullsc + (bias_filtersc * (float)(( F1_L>window_len ? 1.0 : (float)F1_L/window_len))); + seq_score = (usc - filtersc) / eslCONST_LOG2; + P = esl_gumbel_surv(seq_score, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + if (P > pli->F1) return eslOK; + } else { + bias_filtersc = 0; // mullsc will be added in later + } + pli->pos_past_bias += window_len; + + //establish a possibly shorter target window parameterization + loc_window_len = ESL_MIN(window_len,om->max_length); + + //compute the new nullsc based on possibly shorter window + p7_bg_SetLength(bg, loc_window_len); + p7_bg_NullOne (bg, subseq, loc_window_len, &nullsc); + + // bias_filtersc has already been reduced by nullsc based on window_len + // We compute a --B2-scaled bias, then tack on the nullsc based on the new, + // possibly shorter length model + filtersc = nullsc + (bias_filtersc * ( F2_L>window_len ? 1.0 : (float)F2_L/window_len) ); + + //Then configure the model length based on the possibly shorter window length + p7_oprofile_ReconfigRestLength(om, loc_window_len); + + /* Second level filter: ViterbiFilter(), multihit with */ + p7_omx_GrowTo(pli->oxf, om->M, 0, window_len); + + //use window_len instead of loc_window_len, because length parameterization is done, just need to loop over subseq + p7_ViterbiFilter_longtarget(subseq, window_len, om, pli->oxf, filtersc, pli->F2, vit_windowlist); + + p7_pli_ExtendAndMergeWindows (om, data, vit_windowlist, 0.5); + + // if a window is still too long (>80Kb), need to split it up to + // ensure numeric stability in Fwd. + for (i=0; icount; i++) { + + if (vit_windowlist->windows[i].length > max_window_len) { + //modify the current window to restrict length to 40K, then add + //new windows with max length 40K, and MAXL overlap w/ preceding window + new_n = vit_windowlist->windows[i].n ; + new_len = vit_windowlist->windows[i].length ; + vit_windowlist->windows[i].length = max_window_len; + + do { + int shift = max_window_len - overlap_len; + new_n += shift; + new_len -= shift; + p7_hmmwindow_new(vit_windowlist, 0, new_n, 0, 0, ESL_MIN(max_window_len,new_len), 0.0, p7_NOCOMPLEMENT, new_len ); + } while (new_len > max_window_len); + } + } + + overlap = 0; + for (i=0; icount; i++) { + pli->pos_past_vit += vit_windowlist->windows[i].length; + //remove overlap with preceding window + if (i>0) + pli->pos_past_vit -= ESL_MAX(0, vit_windowlist->windows[i-1].n + vit_windowlist->windows[i-1].length - vit_windowlist->windows[i].n ); + + p7_pli_postViterbi_LongTarget(pli, om, bg, hitlist, data, seqidx, + window_start+vit_windowlist->windows[i].n-1, vit_windowlist->windows[i].length, + subseq + vit_windowlist->windows[i].n - 1, + seq_start, seq_name, seq_source, seq_acc, seq_desc, seq_len, complementarity, &overlap, + pli_tmp + ); + if (overlap == -1 && icount-1) { + overlap = ESL_MAX(0, vit_windowlist->windows[i].n + vit_windowlist->windows[i].length - vit_windowlist->windows[i+1].n ); + } else { + //that window didn't pass Fwd + overlap = 0; + } + + pli->ddef->ndom = 0; + + } + + return eslOK; + +} + + + + +/* Function: p7_Pipeline_LongTarget() + * Synopsis: Accelerated seq/profile comparison pipeline for long target sequences. + * + * Purpose: Run HMMER's accelerated pipeline to compare profile + * against sequence . If a significant hit is found, + * information about it is added to the . This is + * a variant of p7_Pipeline that runs one of two + * alternative SSV filters + * (1) the scanning SSV filter (p7_SSVFilter_longtarget) that scans + * a long sequence and finds high-scoring regions (windows), or + * (2) the FM-index-based SSV filter that finds modest-scoring + * diagonals using the FM-index, and extends them to maximum- + * scoring diagonals subjected to the SSV filter thresholds + * + * Windows passing the appropriate SSV filter are then passed + * to the remainder of the pipeline. The pipeline accumulates + * bean counting information about how many comparisons and + * residues flow through the pipeline while it's active. + * + * Returns: on success. If a significant hit is obtained, + * its information is added to the growing . + * + * if (in a scan pipeline) we're supposed to + * set GA/TC/NC bit score thresholds but the model doesn't + * have any. + * + * on numerical overflow errors in the + * optimized vector implementations; particularly in + * posterior decoding. We don't believe this is possible for + * multihit local models, but we're set up to catch it + * anyway. We may emit a warning to the user, but cleanly + * skip the problematic sequence and continue. + * + * Args: pli - the main pipeline object + * om - optimized profile (query) + * data - for computing diagonals, and picking window edges based + * on maximum prefix/suffix extensions + * bg - background model + * hitlist - pointer to hit storage bin (already allocated) + * + * :: the next three values are assigned if a standard sequence database is being used. If FM database is used, they are ignored + * seqidx - the id # of the sequence from which the current window was extracted + * sq - digital sequence of the window + * complementarity - is from the top strand (p7_NOCOMPLEMENT), or bottom strand (P7_COMPLEMENT) + * + * :: the next three are assigned if an FM database is being used. If standard sequence is used, they are set to NULL. + * fmf - the FM_DATA for forward-strand search + * fmb - the FM_DATA for reverse-strand (complement) search + * fm_cfg - general FM configuration + * + * Throws: on allocation failure. + */ +int +p7_Pipeline_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_SCOREDATA *data, + P7_BG *bg, P7_TOPHITS *hitlist, + int64_t seqidx, const ESL_SQ *sq, int complementarity, + const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg + ) +{ + int i; + int status; + float nullsc; /* null model score */ + float usc; /* msv score */ + float P; + float bias_filtersc; + + ESL_DSQ *subseq; + uint64_t seq_start; + + + P7_HMM_WINDOWLIST msv_windowlist; + P7_HMM_WINDOWLIST vit_windowlist; + P7_HMM_WINDOW *window; + FM_SEQDATA seq_data; + + P7_PIPELINE_LONGTARGET_OBJS *pli_tmp; + + if ((sq && (sq->n == 0)) || (fmf && (fmf->N == 0))) return eslOK; /* silently skip length 0 seqs; they'd cause us all sorts of weird problems */ + + + ESL_ALLOC(pli_tmp, sizeof(P7_PIPELINE_LONGTARGET_OBJS)); + pli_tmp->tmpseq = NULL; + pli_tmp->bg = p7_bg_Clone(bg); + pli_tmp->om = p7_oprofile_Create(om->M, om->abc); + ESL_ALLOC(pli_tmp->scores, sizeof(float) * om->abc->Kp * 4); //allocation of space to store scores that will be used in p7_oprofile_Update(Fwd|Vit|MSV)EmissionScores + ESL_ALLOC(pli_tmp->fwd_emissions_arr, sizeof(float) * om->abc->Kp * (om->M+1)); + + msv_windowlist.windows = NULL; + vit_windowlist.windows = NULL; + p7_hmmwindow_init(&msv_windowlist); + + p7_omx_GrowTo(pli->oxf, om->M, 0, om->max_length); /* expand the one-row omx if needed */ + + /* Set false target length. This is a conservative estimate of the length of window that'll + * soon be passed on to later phases of the pipeline; used to recover some bits of the score + * that we would miss if we left length parameters set to the full target length */ + p7_oprofile_ReconfigMSVLength(om, om->max_length); + + + /* First level filter: the SSV filter, with . + * This variant of SSV will scan a long sequence and find + * short high-scoring regions. + */ + if (fmf) // using an FM-index + p7_SSVFM_longlarget(om, 2.0, bg, pli->F1, fmf, fmb, fm_cfg, data, pli->strands, &msv_windowlist ); + else // compare directly to sequence + p7_SSVFilter_longtarget(sq->dsq, sq->n, om, pli->oxf, data, bg, pli->F1, &msv_windowlist); + + + /* convert hits to windows, merging neighboring windows + */ + if ( msv_windowlist.count > 0 ) { + + /* In scan mode, if it passes the MSV filter, read the rest of the profile */ + if (!fmf && pli->hfp) + { + if (om->base_w == 0 && om->scale_w == 0) { // we haven't already read this hmm (if we're on the second strand, we would've) + p7_oprofile_ReadRest(pli->hfp, om); + if ((status = p7_pli_NewModelThresholds(pli, om)) != eslOK) goto ERROR; + } + } + + p7_oprofile_GetFwdEmissionArray(om, bg, pli_tmp->fwd_emissions_arr); + + if (data->prefix_lengths == NULL) //otherwise, already filled in + p7_hmm_ScoreDataComputeRest(om, data); + + p7_pli_ExtendAndMergeWindows (om, data, &msv_windowlist, 0); + + /* If using FM, it's possible for a seed we just created to span more than one segment + * in the target. Check for this, and resolve it, by trimming an over-extended + * segment, and tacking it on as a new window (to be dealt with in a later pass) + */ + if (fmf) { + for (i=0; imeta, 0, window->length, window->complementarity, window->fm_n, &seg_id, &seg_pos); + + if (status == eslERANGE) { + int overext; + int use_length; + int is_compl = (window->complementarity == p7_COMPLEMENT); + + overext = (seg_pos + window->length) - (fm_cfg->meta->seq_data[ seg_id ].target_start + fm_cfg->meta->seq_data[ seg_id ].length - 1) ; + + use_length = window->length - overext + 1; + + if (use_length >= 8 && window->length >= 8) { // if both halves are kinda long, split the first half off as a new window + p7_hmmwindow_new(&msv_windowlist, seg_id + (is_compl?-1:1), window->n, window->fm_n, window->k+use_length-1, use_length, window->score, window->complementarity, fm_cfg->meta->seq_data[seg_id].length); + window = msv_windowlist.windows + i; // it may have moved due a a realloc + window->k += use_length; + window->length = overext; + again = TRUE; + } else if (window->length >= 8) { //if just the right half is long enough, shift numbers over + window->k += use_length; + window->length = overext; + } else { //just limit the length of the left half + window->length = use_length; + } + + } + } + } + } + + /* Pass each remaining window on to the remaining pipeline */ + p7_hmmwindow_init(&vit_windowlist); + pli_tmp->tmpseq = esl_sq_CreateDigital(om->abc); + if (!fmf ) + free (pli_tmp->tmpseq->dsq); //this ESL_SQ object is just a container that'll point to a series of other DSQs, so free the one we just created inside the larger SQ object + + + for (i=0; imeta, window->fm_n, window->length, window->complementarity, pli_tmp->tmpseq, TRUE ); + subseq = pli_tmp->tmpseq->dsq; + } else { + subseq = sq->dsq + window->n - 1; + } + + p7_bg_SetLength(bg, window->length); + p7_bg_NullOne (bg, subseq, window->length, &nullsc); + + p7_bg_FilterScore(bg, subseq, window->length, &bias_filtersc); + // Compute standard MSV to ensure that bias doesn't overcome SSV score when MSV + // would have survived it + p7_oprofile_ReconfigMSVLength(om, window->length); + p7_MSVFilter(subseq, window->length, om, pli->oxf, &usc); + P = esl_gumbel_surv( (usc-nullsc)/eslCONST_LOG2, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]); + + if (P > pli->F1 ) continue; + pli->pos_past_msv += window->length; + + if (fmf) { + seq_data = fm_cfg->meta->seq_data[window->id]; + seq_start = seq_data.target_start; + if (window->complementarity == p7_COMPLEMENT) + seq_start += seq_data.length - 2; + } + + status = p7_pli_postSSV_LongTarget(pli, om, bg, hitlist, data, + (fmf != NULL ? seq_data.target_id : seqidx), + window->n, window->length, subseq, + (fmf != NULL ? seq_start : sq->start), + (fmf != NULL ? seq_data.name : sq->name), + (fmf != NULL ? seq_data.source : sq->source), + (fmf != NULL ? seq_data.acc : sq->acc), + (fmf != NULL ? seq_data.desc : sq->desc), + (fmf != NULL ? seq_data.length : -1), + nullsc, + usc, + (fmf != NULL ? window->complementarity : complementarity), + &vit_windowlist, + pli_tmp + ); + if (status != eslOK) goto ERROR; + + } + + if (fmf) free (pli_tmp->tmpseq->dsq); + + pli_tmp->tmpseq->dsq = NULL; //it's a pointer to a dsq object belonging to another sequence + + esl_sq_Destroy(pli_tmp->tmpseq); + free (vit_windowlist.windows); + } + + if (msv_windowlist.windows != NULL) free (msv_windowlist.windows); + + if (pli_tmp != NULL) { + if (pli_tmp->bg != NULL) p7_bg_Destroy(pli_tmp->bg); + if (pli_tmp->om != NULL) p7_oprofile_Destroy(pli_tmp->om); + if (pli_tmp->scores != NULL) free (pli_tmp->scores); + if (pli_tmp->fwd_emissions_arr != NULL) free (pli_tmp->fwd_emissions_arr); + free(pli_tmp); + } + + return eslOK; + +ERROR: + if (msv_windowlist.windows != NULL) free (msv_windowlist.windows); + if (vit_windowlist.windows != NULL) free (vit_windowlist.windows); + + if (pli_tmp != NULL) { + if (pli_tmp->tmpseq != NULL) esl_sq_Destroy(pli_tmp->tmpseq); + if (pli_tmp->bg != NULL) p7_bg_Destroy(pli_tmp->bg); + if (pli_tmp->om != NULL) p7_oprofile_Destroy(pli_tmp->om); + if (pli_tmp->scores != NULL) free (pli_tmp->scores); + if (pli_tmp->fwd_emissions_arr != NULL) free (pli_tmp->fwd_emissions_arr); + free(pli_tmp); + } + + return status; + +} + + +/* Function: p7_pli_Statistics() + * Synopsis: Final statistics output from a processing pipeline. + * + * Purpose: Print a standardized report of the internal statistics of + * a finished processing pipeline to stream . + * + * If stopped, non- stopwatch is provided for a + * stopwatch that was timing the pipeline, then the report + * includes timing information. + * + * Returns: on success. + */ +int +p7_pli_Statistics(FILE *ofp, P7_PIPELINE *pli, ESL_STOPWATCH *w) +{ + double ntargets; + + fprintf(ofp, "Internal pipeline statistics summary:\n"); + fprintf(ofp, "-------------------------------------\n"); + if (pli->mode == p7_SEARCH_SEQS) { + fprintf(ofp, "Query model(s): %15" PRId64 " (%" PRId64 " nodes)\n", pli->nmodels, pli->nnodes); + fprintf(ofp, "Target sequences: %15" PRId64 " (%" PRId64 " residues searched)\n", pli->nseqs, pli->nres); + ntargets = pli->nseqs; + } else { + fprintf(ofp, "Query sequence(s): %15" PRId64 " (%" PRId64 " residues searched)\n", pli->nseqs, pli->nres); + fprintf(ofp, "Target model(s): %15" PRId64 " (%" PRId64 " nodes)\n", pli->nmodels, pli->nnodes); + ntargets = pli->nmodels; + } + + if (pli->long_targets) { // nhmmer style + fprintf(ofp, "Residues passing SSV filter: %15" PRId64 " (%.3g); expected (%.3g)\n", + pli->pos_past_msv, + (double)pli->pos_past_msv / (pli->nres*pli->nmodels) , + pli->F1); + + fprintf(ofp, "Residues passing bias filter:%15" PRId64 " (%.3g); expected (%.3g)\n", + pli->pos_past_bias, + (double)pli->pos_past_bias / (pli->nres*pli->nmodels) , + pli->F1); + + fprintf(ofp, "Residues passing Vit filter: %15" PRId64 " (%.3g); expected (%.3g)\n", + pli->pos_past_vit, + (double)pli->pos_past_vit / (pli->nres*pli->nmodels) , + pli->F2); + + fprintf(ofp, "Residues passing Fwd filter: %15" PRId64 " (%.3g); expected (%.3g)\n", + pli->pos_past_fwd, + (double)pli->pos_past_fwd / (pli->nres*pli->nmodels) , + pli->F3); + + fprintf(ofp, "Total number of hits: %15d (%.3g)\n", + (int)pli->n_output, + (double)pli->pos_output / (pli->nres*pli->nmodels) ); + + } else { // typical case output + + fprintf(ofp, "Passed MSV filter: %15" PRId64 " (%.6g); expected %.1f (%.6g)\n", + pli->n_past_msv, + (double) pli->n_past_msv / ntargets, + pli->F1 * ntargets, + pli->F1); + + fprintf(ofp, "Passed bias filter: %15" PRId64 " (%.6g); expected %.1f (%.6g)\n", + pli->n_past_bias, + (double) pli->n_past_bias / ntargets, + pli->F1 * ntargets, + pli->F1); + + fprintf(ofp, "Passed Vit filter: %15" PRId64 " (%.6g); expected %.1f (%.6g)\n", + pli->n_past_vit, + (double) pli->n_past_vit / ntargets, + pli->F2 * ntargets, + pli->F2); + + fprintf(ofp, "Passed Fwd filter: %15" PRId64 " (%.6g); expected %.1f (%.6g)\n", + pli->n_past_fwd, + (double) pli->n_past_fwd / ntargets, + pli->F3 * ntargets, + pli->F3); + + fprintf(ofp, "Initial search space (Z): %15.0f %s\n", pli->Z, pli->Z_setby == p7_ZSETBY_OPTION ? "[as set by --Z on cmdline]" : "[actual number of targets]"); + fprintf(ofp, "Domain search space (domZ): %15.0f %s\n", pli->domZ, pli->domZ_setby == p7_ZSETBY_OPTION ? "[as set by --domZ on cmdline]" : "[number of targets reported over threshold]"); + } + + if (w != NULL) { + esl_stopwatch_Display(ofp, w, "# CPU time: "); + fprintf(ofp, "# Mc/sec: %.2f\n", + (double) pli->nres * (double) pli->nnodes / (w->elapsed * 1.0e6)); + } + + return eslOK; +} +/*------------------- end, pipeline API -------------------------*/ + + +/***************************************************************** + * 3. Example 1: "search mode" in a sequence db + *****************************************************************/ + +#ifdef p7PIPELINE_EXAMPLE +/* gcc -o pipeline_example -g -Wall -I../easel -L../easel -I. -L. -Dp7PIPELINE_EXAMPLE p7_pipeline.c -lhmmer -leasel -lm + * ./pipeline_example + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, "--cut_ga,--cut_nc,--cut_tc", "E-value cutoff for reporting significant sequence hits", 0 }, + { "-T", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, "--cut_ga,--cut_nc,--cut_tc", "bit score cutoff for reporting significant sequence hits", 0 }, + { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 0 }, + { "--domE", eslARG_REAL,"1000.0", NULL, "x>0", NULL, NULL, "--cut_ga,--cut_nc,--cut_tc", "E-value cutoff for reporting individual domains", 0 }, + { "--domT", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, "--cut_ga,--cut_nc,--cut_tc", "bit score cutoff for reporting individual domains", 0 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 0 }, + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqE,--seqT,--domE,--domT", "use GA gathering threshold bit score cutoffs in ", 0 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqE,--seqT,--domE,--domT", "use NC noise threshold bit score cutoffs in ", 0 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqE,--seqT,--domE,--domT", "use TC trusted threshold bit score cutoffs in ", 0 }, + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 0 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "Stage 1 (MSV) threshold: promote hits w/ P <= F1", 0 }, + { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 0 }, + { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 0 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 0 }, + { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 0 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 0 }, + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output target accessions instead of names if possible", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of using acceleration pipeline in search mode (seq targets)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + int format = eslSQFILE_FASTA; + P7_HMMFILE *hfp = NULL; + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + P7_HMM *hmm = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + P7_PIPELINE *pli = NULL; + P7_TOPHITS *hitlist = NULL; + int h,d,namew; + + /* Don't forget this. Null2 corrections need FLogsum() */ + p7_FLogsumInit(); + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Open a sequence file */ + if (esl_sqfile_OpenDigital(abc, seqfile, format, NULL, &sqfp) != eslOK) p7_Fail("Failed to open sequence file %s\n", seqfile); + sq = esl_sq_CreateDigital(abc); + + /* Create a pipeline and a top hits list */ + pli = p7_pipeline_Create(go, hmm->M, 400, FALSE, p7_SEARCH_SEQS); + hitlist = p7_tophits_Create(); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + p7_oprofile_Convert(gm, om); /* is now p7_LOCAL, multihit */ + p7_pli_NewModel(pli, om, bg); + + /* Run each target sequence through the pipeline */ + while (esl_sqio_Read(sqfp, sq) == eslOK) + { + p7_pli_NewSeq(pli, sq); + p7_bg_SetLength(bg, sq->n); + p7_oprofile_ReconfigLength(om, sq->n); + + p7_Pipeline(pli, om, bg, sq, NULL, hitlist); + + esl_sq_Reuse(sq); + p7_pipeline_Reuse(pli); + } + + /* Print the results. + * This example is a stripped version of hmmsearch's tabular output. + */ + p7_tophits_SortBySortkey(hitlist); + namew = ESL_MAX(8, p7_tophits_GetMaxNameLength(hitlist)); + for (h = 0; h < hitlist->N; h++) + { + d = hitlist->hit[h]->best_domain; + + printf("%10.2g %7.1f %6.1f %7.1f %6.1f %10.2g %6.1f %5d %-*s %s\n", + exp(hitlist->hit[h]->lnP) * (double) pli->Z, + hitlist->hit[h]->score, + hitlist->hit[h]->pre_score - hitlist->hit[h]->score, /* bias correction */ + hitlist->hit[h]->dcl[d].bitscore, + eslCONST_LOG2R * p7_FLogsum(0.0, log(bg->omega) + hitlist->hit[h]->dcl[d].domcorrection), /* print in units of bits */ + exp(hitlist->hit[h]->dcl[d].lnP) * (double) pli->Z, + hitlist->hit[h]->nexpected, + hitlist->hit[h]->nreported, + namew, + hitlist->hit[h]->name, + hitlist->hit[h]->desc); + } + + /* Done. */ + p7_tophits_Destroy(hitlist); + p7_pipeline_Destroy(pli); + esl_sq_Destroy(sq); + esl_sqfile_Close(sqfp); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7PIPELINE_EXAMPLE*/ +/*----------- end, search mode (seq db) example -----------------*/ + + + + +/***************************************************************** + * 4. Example 2: "scan mode" in an HMM db + *****************************************************************/ +#ifdef p7PIPELINE_EXAMPLE2 +/* gcc -o pipeline_example2 -g -Wall -I../easel -L../easel -I. -L. -Dp7PIPELINE_EXAMPLE2 p7_pipeline.c -lhmmer -leasel -lm + * ./pipeline_example2 + */ + +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_sqio.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, "--cut_ga,--cut_nc,--cut_tc", "E-value cutoff for reporting significant sequence hits", 0 }, + { "-T", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, "--cut_ga,--cut_nc,--cut_tc", "bit score cutoff for reporting significant sequence hits", 0 }, + { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 0 }, + { "--domE", eslARG_REAL,"1000.0", NULL, "x>0", NULL, NULL, "--cut_ga,--cut_nc,--cut_tc", "E-value cutoff for reporting individual domains", 0 }, + { "--domT", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, "--cut_ga,--cut_nc,--cut_tc", "bit score cutoff for reporting individual domains", 0 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 0 }, + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqE,--seqT,--domE,--domT", "use GA gathering threshold bit score cutoffs in ", 0 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqE,--seqT,--domE,--domT", "use NC noise threshold bit score cutoffs in ", 0 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqE,--seqT,--domE,--domT", "use TC trusted threshold bit score cutoffs in ", 0 }, + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 0 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "Stage 1 (MSV) threshold: promote hits w/ P <= F1", 0 }, + { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 0 }, + { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 0 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 0 }, + { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 0 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 0 }, + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "output target accessions instead of names if possible", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example of using acceleration pipeline in scan mode (HMM targets)"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + int format = eslSQFILE_FASTA; + P7_HMMFILE *hfp = NULL; + ESL_ALPHABET *abc = NULL; + P7_BG *bg = NULL; + P7_OPROFILE *om = NULL; + ESL_SQFILE *sqfp = NULL; + ESL_SQ *sq = NULL; + P7_PIPELINE *pli = NULL; + P7_TOPHITS *hitlist = p7_tophits_Create(); + int h,d,namew; + + /* Don't forget this. Null2 corrections need FLogsum() */ + p7_FLogsumInit(); + + /* Open a sequence file, read one seq from it. + * Convert to digital later, after 1st HMM is input and abc becomes known + */ + sq = esl_sq_Create(); + if (esl_sqfile_Open(seqfile, format, NULL, &sqfp) != eslOK) p7_Fail("Failed to open sequence file %s\n", seqfile); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence from %s\n", seqfile); + esl_sqfile_Close(sqfp); + + /* Open the HMM db */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + + /* Create a pipeline for the query sequence in scan mode */ + pli = p7_pipeline_Create(go, 100, sq->n, FALSE, p7_SCAN_MODELS); + p7_pli_NewSeq(pli, sq); + + /* Some additional config of the pipeline specific to scan mode */ + pli->hfp = hfp; + if (! pli->Z_is_fixed && hfp->is_pressed) { pli->Z_is_fixed = TRUE; pli->Z = hfp->ssi->nprimary; } + + /* Read (partial) of each HMM in file */ + while (p7_oprofile_ReadMSV(hfp, &abc, &om) == eslOK) + { + /* One time only initialization after abc becomes known */ + if (bg == NULL) + { + bg = p7_bg_Create(abc); + if (esl_sq_Digitize(abc, sq) != eslOK) p7_Die("alphabet mismatch"); + } + p7_pli_NewModel(pli, om, bg); + p7_bg_SetLength(bg, sq->n); /* SetLength() call MUST follow NewModel() call, because NewModel() resets the filter HMM, including its default expected length; see bug #h85 */ + p7_oprofile_ReconfigLength(om, sq->n); + + p7_Pipeline(pli, om, bg, sq, hitlist); + + p7_oprofile_Destroy(om); + p7_pipeline_Reuse(pli); + } + + /* Print the results. + * This example is a stripped version of hmmsearch's tabular output. + */ + p7_tophits_SortBySortkey(hitlist); + namew = ESL_MAX(8, p7_tophits_GetMaxNameLength(hitlist)); + for (h = 0; h < hitlist->N; h++) + { + d = hitlist->hit[h]->best_domain; + + printf("%10.2g %7.1f %6.1f %7.1f %6.1f %10.2g %6.1f %5d %-*s %s\n", + exp(hitlist->hit[h]->lnP) * (double) pli->Z, + hitlist->hit[h]->score, + hitlist->hit[h]->pre_score - hitlist->hit[h]->score, /* bias correction */ + hitlist->hit[h]->dcl[d].bitscore, + eslCONST_LOG2R * p7_FLogsum(0.0, log(bg->omega) + hitlist->hit[h]->dcl[d].domcorrection), /* print in units of BITS */ + exp(hitlist->hit[h]->dcl[d].lnP) * (double) pli->Z, + hitlist->hit[h]->nexpected, + hitlist->hit[h]->nreported, + namew, + hitlist->hit[h]->name, + hitlist->hit[h]->desc); + } + + /* Done. */ + p7_tophits_Destroy(hitlist); + p7_pipeline_Destroy(pli); + esl_sq_Destroy(sq); + p7_hmmfile_Close(hfp); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7PIPELINE_EXAMPLE2*/ +/*--------------- end, scan mode (HMM db) example ---------------*/ + + diff --git a/bioinformaticsProject/hmmer/src/p7_prior.c b/bioinformaticsProject/hmmer/src/p7_prior.c new file mode 100644 index 0000000..6323e38 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_prior.c @@ -0,0 +1,361 @@ +/* Mixture Dirichlet priors for profile HMMs. + * + * SRE, Sat Mar 24 09:12:44 2007 [Janelia] + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + + +/* Function: p7_prior_CreateAmino() + * Incept: SRE, Sat Mar 24 09:35:36 2007 [Janelia] + * + * Purpose: Creates the default mixture Dirichlet prior for protein + * sequences. + * + * The transition priors (match, insert, delete) are all + * single Dirichlets, originally trained by Graeme + * Mitchison in the mid-1990's. Notes have been lost, but + * we believe they were trained on an early version of + * Pfam. + * + * The match emission prior is a nine-component mixture + * from Kimmen Sjolander, who trained it on the Blocks9 + * database \citep{Sjolander96}. + * + * The insert emission prior is a single Dirichlet with + * high $|\alpha|$, such that insert emission probabilities + * are essentially fixed by the prior, regardless of + * observed count data. The slightly polar parameterization + * was obtained by training on Pfam 1.0. + * + * Returns: a pointer to the new structure. + */ +P7_PRIOR * +p7_prior_CreateAmino(void) +{ + P7_PRIOR *pri = NULL; + int k; + int status; + /* default match mixture coefficients: [Sjolander96] */ + static double defmq[9] = { 0.178091, 0.056591, 0.0960191, 0.0781233, 0.0834977, 0.0904123, 0.114468, 0.0682132, 0.234585 }; + + /* default match mixture Dirichlet components [Sjolander96] */ + static double defm[9][20] = { + { 0.270671, 0.039848, 0.017576, 0.016415, 0.014268, 0.131916, 0.012391, 0.022599, 0.020358, 0.030727, 0.015315, 0.048298, 0.053803, 0.020662, 0.023612, 0.216147, 0.147226, 0.065438, 0.003758, 0.009621 }, + { 0.021465, 0.010300, 0.011741, 0.010883, 0.385651, 0.016416, 0.076196, 0.035329, 0.013921, 0.093517, 0.022034, 0.028593, 0.013086, 0.023011, 0.018866, 0.029156, 0.018153, 0.036100, 0.071770, 0.419641 }, + { 0.561459, 0.045448, 0.438366, 0.764167, 0.087364, 0.259114, 0.214940, 0.145928, 0.762204, 0.247320, 0.118662, 0.441564, 0.174822, 0.530840, 0.465529, 0.583402, 0.445586, 0.227050, 0.029510, 0.121090 }, + { 0.070143, 0.011140, 0.019479, 0.094657, 0.013162, 0.048038, 0.077000, 0.032939, 0.576639, 0.072293, 0.028240, 0.080372, 0.037661, 0.185037, 0.506783, 0.073732, 0.071587, 0.042532, 0.011254, 0.028723 }, + { 0.041103, 0.014794, 0.005610, 0.010216, 0.153602, 0.007797, 0.007175, 0.299635, 0.010849, 0.999446, 0.210189, 0.006127, 0.013021, 0.019798, 0.014509, 0.012049, 0.035799, 0.180085, 0.012744, 0.026466 }, + { 0.115607, 0.037381, 0.012414, 0.018179, 0.051778, 0.017255, 0.004911, 0.796882, 0.017074, 0.285858, 0.075811, 0.014548, 0.015092, 0.011382, 0.012696, 0.027535, 0.088333, 0.944340, 0.004373, 0.016741 }, + { 0.093461, 0.004737, 0.387252, 0.347841, 0.010822, 0.105877, 0.049776, 0.014963, 0.094276, 0.027761, 0.010040, 0.187869, 0.050018, 0.110039, 0.038668, 0.119471, 0.065802, 0.025430, 0.003215, 0.018742 }, + { 0.452171, 0.114613, 0.062460, 0.115702, 0.284246, 0.140204, 0.100358, 0.550230, 0.143995, 0.700649, 0.276580, 0.118569, 0.097470, 0.126673, 0.143634, 0.278983, 0.358482, 0.661750, 0.061533, 0.199373 }, + { 0.005193, 0.004039, 0.006722, 0.006121, 0.003468, 0.016931, 0.003647, 0.002184, 0.005019, 0.005990, 0.001473, 0.004158, 0.009055, 0.003630, 0.006583, 0.003172, 0.003690, 0.002967, 0.002772, 0.002686 }, + }; + + ESL_ALLOC(pri, sizeof(P7_PRIOR)); + pri->tm = pri->ti = pri->td = pri->em = pri->ei = NULL; + + pri->tm = esl_mixdchlet_Create(1, 3); /* single component; 3 params */ + pri->ti = esl_mixdchlet_Create(1, 2); /* single component; 2 params */ + pri->td = esl_mixdchlet_Create(1, 2); /* single component; 2 params */ + pri->em = esl_mixdchlet_Create(9, 20); /* 9 component; 20 params */ + pri->ei = esl_mixdchlet_Create(1, 20); /* single component; 20 params */ + + if (pri->tm == NULL || pri->ti == NULL || pri->td == NULL || pri->em == NULL || pri->ei == NULL) goto ERROR; + + /* Transition priors: originally from Graeme Mitchison. Notes are lost, but we believe + * they were trained on an early version of Pfam. + */ + pri->tm->q[0] = 1.0; + pri->tm->alpha[0][0] = 0.7939; /* TMM */ + pri->tm->alpha[0][1] = 0.0278; /* TMI */ /* Markus suggests ~10x MD, ~0.036; test! */ + pri->tm->alpha[0][2] = 0.0135; /* TMD */ /* Markus suggests 0.1x MI, ~0.004; test! */ + + pri->ti->q[0] = 1.0; + pri->ti->alpha[0][0] = 0.1551; /* TIM */ + pri->ti->alpha[0][1] = 0.1331; /* TII */ + + pri->td->q[0] = 1.0; + pri->td->alpha[0][0] = 0.9002; /* TDM */ + pri->td->alpha[0][1] = 0.5630; /* TDD */ + + /* Match emission priors are from Kimmen Sjolander, trained + * on the Blocks9 database. [Sjolander96] + */ + for (k = 0; k < 9; k++) + { + pri->em->q[k] = defmq[k]; + esl_vec_DCopy(defm[k], 20, pri->em->alpha[k]); + } + + /* Insert emission priors were trained on Pfam 1.0, 10 Nov 1996; + * see ~/projects/plan7/InsertStatistics. + * Inserts are slightly biased towards polar residues and away from + * hydrophobic residues. + */ + pri->ei->q[0] = 1.0; + pri->ei->alpha[0][0] = 681.; /* A */ + pri->ei->alpha[0][1] = 120.; /* C */ + pri->ei->alpha[0][2] = 623.; /* D */ + pri->ei->alpha[0][3] = 651.; /* E */ + pri->ei->alpha[0][4] = 313.; /* F */ + pri->ei->alpha[0][5] = 902.; /* G */ + pri->ei->alpha[0][6] = 241.; /* H */ + pri->ei->alpha[0][7] = 371.; /* I */ + pri->ei->alpha[0][8] = 687.; /* K */ + pri->ei->alpha[0][9] = 676.; /* L */ + pri->ei->alpha[0][10] = 143.; /* M */ + pri->ei->alpha[0][11] = 548.; /* N */ + pri->ei->alpha[0][12] = 647.; /* P */ + pri->ei->alpha[0][13] = 415.; /* Q */ + pri->ei->alpha[0][14] = 551.; /* R */ + pri->ei->alpha[0][15] = 926.; /* S */ + pri->ei->alpha[0][16] = 623.; /* T */ + pri->ei->alpha[0][17] = 505.; /* V */ + pri->ei->alpha[0][18] = 102.; /* W */ + pri->ei->alpha[0][19] = 269.; /* Y */ + + return pri; + + ERROR: + if (pri != NULL) p7_prior_Destroy(pri); + return NULL; +} + +/* Function: p7_prior_CreateNucleic() + * + * Purpose: Creates the default mixture Dirichlet prior for nucleotide + * sequences. + * + * The transition priors (match, insert, delete) are all + * single Dirichlets, trained on a portion of the rmark dataset + * + * The match emission prior is an eight-component mixture + * trained against a portion of the rmark dataset + * + * The insert emission prior is a single Dirichlet with + * high $|\alpha|$, such that insert emission probabilities + * are essentially fixed by the prior, regardless of + * observed count data. + * + * Returns: a pointer to the new structure. + */ +P7_PRIOR * +p7_prior_CreateNucleic(void) +{ + int status; + P7_PRIOR *pri = NULL; + int q; + + /* Plus-1 Laplace prior + int num_comp = 1; + static double defmq[2] = { 1.0 }; + static double defm[1][4] = { + { 1.0, 1.0, 1.0, 1.0} // + }; +*/ + + /* Match emission priors are trained on Rmark3 database + * Xref: ~wheelert/notebook/2011/0325_nhmmer_new_parameters + */ + int num_comp = 4; + static double defmq[4] = { 0.24, 0.26, 0.08, 0.42 }; + static double defm[4][4] = { + { 0.16, 0.45, 0.12, 0.39}, + { 0.09, 0.03, 0.09, 0.04}, + { 1.29, 0.40, 6.58, 0.51}, + { 1.74, 1.49, 1.57, 1.95} + }; + + + + ESL_ALLOC(pri, sizeof(P7_PRIOR)); + pri->tm = pri->ti = pri->td = pri->em = pri->ei = NULL; + + pri->tm = esl_mixdchlet_Create(1, 3); // match transitions; single component; 3 params + pri->ti = esl_mixdchlet_Create(1, 2); // insert transitions; single component; 2 params + pri->td = esl_mixdchlet_Create(1, 2); // delete transitions; single component; 2 params + pri->em = esl_mixdchlet_Create(num_comp, 4); // match emissions; X component; 4 params + pri->ei = esl_mixdchlet_Create(1, 4); // insert emissions; single component; 4 params + + if (pri->tm == NULL || pri->ti == NULL || pri->td == NULL || pri->em == NULL || pri->ei == NULL) goto ERROR; + + /* Transition priors: roughly, learned from rmark benchmark - hand-beautified (trimming overspecified significant digits) + */ + pri->tm->q[0] = 1.0; + pri->tm->alpha[0][0] = 2.0; // TMM + pri->tm->alpha[0][1] = 0.1; // TMI + pri->tm->alpha[0][2] = 0.1; // TMD + + pri->ti->q[0] = 1.0; + pri->ti->alpha[0][0] = 0.12; // TIM - was 0.06 (TW changed 3/19/15) + pri->ti->alpha[0][1] = 0.4; // TII - was 0.2 (TW changed 3/19/15) + + pri->td->q[0] = 1.0; + pri->td->alpha[0][0] = 0.5; // TDM - was 0.1 (TW changed 3/19/15) + pri->td->alpha[0][1] = 1.0; // TDD - was 0.2 (TW changed 3/19/15) + + + /* Match emission priors */ + for (q = 0; q < num_comp; q++) + { + pri->em->q[q] = defmq[q]; + esl_vec_DCopy(defm[q], 4, pri->em->alpha[q]); + } + + /* Insert emission priors. Should alphas be lower? higher? + */ + pri->ei->q[0] = 1.0; + esl_vec_DSet(pri->ei->alpha[0], 4, 1.0); + + return pri; + + ERROR: + if (pri != NULL) p7_prior_Destroy(pri); + return NULL; +} + + + +/* Function: p7_prior_CreateLaplace() + * Synopsis: Creates Laplace plus-one prior. + * Incept: SRE, Sat Jun 30 09:48:13 2007 [Janelia] + * + * Purpose: Create a Laplace plus-one prior for alphabet . + */ +P7_PRIOR * +p7_prior_CreateLaplace(const ESL_ALPHABET *abc) +{ + P7_PRIOR *pri = NULL; + int status; + + ESL_ALLOC(pri, sizeof(P7_PRIOR)); + pri->tm = pri->ti = pri->td = pri->em = pri->ei = NULL; + + pri->tm = esl_mixdchlet_Create(1, 3); /* single component; 3 params */ + pri->ti = esl_mixdchlet_Create(1, 2); /* single component; 2 params */ + pri->td = esl_mixdchlet_Create(1, 2); /* single component; 2 params */ + pri->em = esl_mixdchlet_Create(1, abc->K); /* single component; K params */ + pri->ei = esl_mixdchlet_Create(1, abc->K); /* single component; K params */ + + if (pri->tm == NULL || pri->ti == NULL || pri->td == NULL || pri->em == NULL || pri->ei == NULL) goto ERROR; + + pri->tm->q[0] = 1.0; esl_vec_DSet(pri->tm->alpha[0], 3, 1.0); /* match transitions */ + pri->ti->q[0] = 1.0; esl_vec_DSet(pri->ti->alpha[0], 2, 1.0); /* insert transitions */ + pri->td->q[0] = 1.0; esl_vec_DSet(pri->td->alpha[0], 2, 1.0); /* delete transitions */ + pri->em->q[0] = 1.0; esl_vec_DSet(pri->em->alpha[0], abc->K, 1.0); /* match emissions */ + pri->ei->q[0] = 1.0; esl_vec_DSet(pri->ei->alpha[0], abc->K, 1.0); /* insert emissions */ + return pri; + + ERROR: + p7_prior_Destroy(pri); + return NULL; +} + + +/* Function: p7_prior_Destroy() + * Incept: SRE, Sat Mar 24 09:55:09 2007 [Janelia] + * + * Purpose: Frees a mixture Dirichlet prior. + */ +void +p7_prior_Destroy(P7_PRIOR *pri) +{ + if (pri == NULL) return; + if (pri->tm != NULL) esl_mixdchlet_Destroy(pri->tm); + if (pri->ti != NULL) esl_mixdchlet_Destroy(pri->ti); + if (pri->td != NULL) esl_mixdchlet_Destroy(pri->td); + if (pri->em != NULL) esl_mixdchlet_Destroy(pri->em); + if (pri->ei != NULL) esl_mixdchlet_Destroy(pri->ei); + free(pri); +} + + + +/* Function: p7_ParameterEstimation() + * Incept: SRE, Sat Mar 24 10:15:37 2007 [Janelia] + * + * Purpose: Given an containing weighted counts, and + * a mixture Dirichlet prior : calculate mean + * posterior parameter estimates for all model parameters, + * converting the HMM to a parameterized probabilistic + * model. + * + * If is , then model parameters are calculated + * as frequencies, by normalization of . + * + * Args: hmm - profile structure, containing counts. + * pri - mixture Dirichlet prior structure, or . + * + * Returns: on success. + */ +int +p7_ParameterEstimation(P7_HMM *hmm, const P7_PRIOR *pri) +{ + int k; + double c[p7_MAXABET]; + double p[p7_MAXABET]; + + // double mix[p7_MAXDCHLET]; + + /* Special case of pri=NULL: convert to frequencies.*/ + if (pri==NULL) return p7_hmm_Renormalize(hmm); + + /* Match transitions 0,1..M: 0 is the B state + * TMD at node M is 0. + */ + for (k = 0; k <= hmm->M; k++) { + esl_vec_F2D(hmm->t[k], 3, c); + esl_mixdchlet_MPParameters(pri->tm, c, p); + esl_vec_D2F(p, 3, hmm->t[k]); + } + hmm->t[hmm->M][p7H_MD] = 0.0; + esl_vec_FNorm(hmm->t[hmm->M], 3); + + /* Insert transitions, 0..M + */ + for (k = 0; k <= hmm->M; k++) { + esl_vec_F2D(hmm->t[k]+3, 2, c); + esl_mixdchlet_MPParameters(pri->ti, c, p); + esl_vec_D2F(p, 2, hmm->t[k]+3); + } + + /* Delete transitions, 1..M-1 + * For k=0, which is unused; convention sets TMM=1.0, TMD=0.0 + * For k=M, TMM = 1.0 (to the E state) and TMD=0.0 (no next D; must go to E). + */ + for (k = 1; k < hmm->M; k++) { + esl_vec_F2D(hmm->t[k]+5, 2, c); + esl_mixdchlet_MPParameters(pri->td, c, p); + esl_vec_D2F(p, 2, hmm->t[k]+5); + } + hmm->t[0][p7H_DM] = hmm->t[hmm->M][p7H_DM] = 1.0; + hmm->t[0][p7H_DD] = hmm->t[hmm->M][p7H_DD] = 0.0; + + /* Match emissions, 1..M + * Convention sets mat[0] to a valid pvector: first elem 1, the rest 0. + */ + for (k = 1; k <= hmm->M; k++) { + esl_vec_F2D(hmm->mat[k], hmm->abc->K, c); + esl_mixdchlet_MPParameters(pri->em, c, p); + esl_vec_D2F(p, hmm->abc->K, hmm->mat[k]); + } + esl_vec_FSet(hmm->mat[0], hmm->abc->K, 0.); + hmm->mat[0][0] = 1.0; + + /* Insert emissions 0..M + */ + for (k = 0; k <= hmm->M; k++) { + esl_vec_F2D(hmm->ins[k], hmm->abc->K, c); + esl_mixdchlet_MPParameters(pri->ei, c, p); + esl_vec_D2F(p, hmm->abc->K, hmm->ins[k]); + } + return eslOK; +} + + diff --git a/bioinformaticsProject/hmmer/src/p7_profile.c b/bioinformaticsProject/hmmer/src/p7_profile.c new file mode 100644 index 0000000..e6d6348 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_profile.c @@ -0,0 +1,642 @@ +/* Routines for the P7_PROFILE structure - Plan 7's search profile + * + * 1. The P7_PROFILE object: allocation, initialization, destruction. + * 2. Access methods. + * 3. Debugging and development code. + * 4. Unit tests. + * 5. Test driver. + * + * See also: + * modelconfig.c : routines that configure a profile given an HMM + */ + +#include "p7_config.h" + +#include +#ifdef HMMER_MPI +#include +#endif + +#include "easel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + + +/***************************************************************** + * 1. The P7_PROFILE object: allocation, initialization, destruction. + *****************************************************************/ + +/* Function: p7_profile_Create() + * Synopsis: Allocates a profile. + * + * Purpose: Allocates for a profile of up to nodes, for digital + * alphabet . + * + * Because this function might be in the critical path (in + * hmmscan, for example), we leave much of the model + * unintialized, including scores and length model + * probabilities. The call is what + * sets these. + * + * The alignment mode is set to . The + * reference pointer abc> is set to . + * + * Returns: a pointer to the new profile. + * + * Throws: on allocation error. + * + * Xref: STL11/125. + */ +P7_PROFILE * +p7_profile_Create(int allocM, const ESL_ALPHABET *abc) +{ + P7_PROFILE *gm = NULL; + int x; + int status; + + /* level 0 */ + ESL_ALLOC(gm, sizeof(P7_PROFILE)); + gm->tsc = NULL; + gm->rsc = NULL; + gm->rf = NULL; + gm->mm = NULL; + gm->cs = NULL; + gm->consensus = NULL; + + /* level 1 */ + ESL_ALLOC(gm->tsc, sizeof(float) * allocM * p7P_NTRANS); + ESL_ALLOC(gm->rsc, sizeof(float *) * abc->Kp); + ESL_ALLOC(gm->rf, sizeof(char) * (allocM+2)); /* yes, +2: each is (0)1..M, +trailing \0 */ + ESL_ALLOC(gm->mm, sizeof(char) * (allocM+2)); + ESL_ALLOC(gm->cs, sizeof(char) * (allocM+2)); + ESL_ALLOC(gm->consensus, sizeof(char) * (allocM+2)); + gm->rsc[0] = NULL; + + /* level 2 */ + ESL_ALLOC(gm->rsc[0], sizeof(float) * abc->Kp * (allocM+1) * p7P_NR); + for (x = 1; x < abc->Kp; x++) + gm->rsc[x] = gm->rsc[0] + x * (allocM+1) * p7P_NR; + + /* Initialize some edge pieces of memory that are never used, + * and are only present for indexing convenience. + */ + esl_vec_FSet(gm->tsc, p7P_NTRANS, -eslINFINITY); /* node 0 nonexistent, has no transitions */ + if (allocM > 1) { + p7P_TSC(gm, 1, p7P_DM) = -eslINFINITY; /* delete state D_1 is wing-retracted */ + p7P_TSC(gm, 1, p7P_DD) = -eslINFINITY; + } + for (x = 0; x < abc->Kp; x++) { + p7P_MSC(gm, 0, x) = -eslINFINITY; /* no emissions from nonexistent M_0... */ + p7P_ISC(gm, 0, x) = -eslINFINITY; /* or I_0... */ + /* I_M is initialized in profile config, when we know actual M, not just allocated max M */ + } + x = esl_abc_XGetGap(abc); /* no emission can emit/score gap characters */ + esl_vec_FSet(gm->rsc[x], (allocM+1)*p7P_NR, -eslINFINITY); + x = esl_abc_XGetMissing(abc); /* no emission can emit/score missing data characters */ + esl_vec_FSet(gm->rsc[x], (allocM+1)*p7P_NR, -eslINFINITY); + + /* Set remaining info */ + gm->mode = p7_NO_MODE; + gm->L = 0; + gm->allocM = allocM; + gm->M = 0; + gm->max_length = -1; + gm->nj = 0.0f; + + gm->roff = -1; + gm->eoff = -1; + gm->offs[p7_MOFFSET] = -1; + gm->offs[p7_FOFFSET] = -1; + gm->offs[p7_POFFSET] = -1; + + gm->name = NULL; + gm->acc = NULL; + gm->desc = NULL; + gm->rf[0] = 0; /* RF line is optional annotation; this flags that it's not set yet */ + gm->mm[0] = 0; /* likewise for MM annotation line */ + gm->cs[0] = 0; /* likewise for CS annotation line */ + gm->consensus[0] = 0; + + for (x = 0; x < p7_NEVPARAM; x++) gm->evparam[x] = p7_EVPARAM_UNSET; + for (x = 0; x < p7_NCUTOFFS; x++) gm->cutoff[x] = p7_CUTOFF_UNSET; + for (x = 0; x < p7_MAXABET; x++) gm->compo[x] = p7_COMPO_UNSET; + + gm->abc = abc; + return gm; + + ERROR: + p7_profile_Destroy(gm); + return NULL; +} + + +/* Function: p7_profile_Copy() + * Synopsis: Copy a profile. + * + * Purpose: Copies profile to profile , where + * has already been allocated to be of sufficient size. + * + * Returns: on success. + * + * Throws: on allocation error; if is too small + * to fit . + */ +int +p7_profile_Copy(const P7_PROFILE *src, P7_PROFILE *dst) +{ + int x,z; + int status; + + if (src->M > dst->allocM) ESL_EXCEPTION(eslEINVAL, "destination profile is too small to hold a copy of source profile"); + + esl_vec_FCopy(src->tsc, src->M*p7P_NTRANS, dst->tsc); + for (x = 0; x < src->abc->Kp; x++) esl_vec_FCopy(src->rsc[x], (src->M+1)*p7P_NR, dst->rsc[x]); + for (x = 0; x < p7P_NXSTATES; x++) esl_vec_FCopy(src->xsc[x], p7P_NXTRANS, dst->xsc[x]); + + dst->mode = src->mode; + dst->L = src->L; + dst->allocM = src->allocM; + dst->M = src->M; + dst->max_length = src->max_length; + dst->nj = src->nj; + + dst->roff = src->roff; + dst->eoff = src->eoff; + for (x = 0; x < p7_NOFFSETS; ++x) dst->offs[x] = src->offs[x]; + + if (dst->name != NULL) free(dst->name); + if (dst->acc != NULL) free(dst->acc); + if (dst->desc != NULL) free(dst->desc); + + if ((status = esl_strdup(src->name, -1, &(dst->name))) != eslOK) return status; + if ((status = esl_strdup(src->acc, -1, &(dst->acc))) != eslOK) return status; + if ((status = esl_strdup(src->desc, -1, &(dst->desc))) != eslOK) return status; + + strcpy(dst->rf, src->rf); /* RF is optional: if it's not set, *rf=0, and strcpy still works fine */ + strcpy(dst->mm, src->mm); /* MM is also optional annotation */ + strcpy(dst->cs, src->cs); /* CS is also optional annotation */ + strcpy(dst->consensus, src->consensus); /* consensus though is always present on a valid profile */ + + for (z = 0; z < p7_NEVPARAM; z++) dst->evparam[z] = src->evparam[z]; + for (z = 0; z < p7_NCUTOFFS; z++) dst->cutoff[z] = src->cutoff[z]; + for (z = 0; z < p7_MAXABET; z++) dst->compo[z] = src->compo[z]; + return eslOK; +} + + +/* Function: p7_profile_Clone() + * Synopsis: Duplicates a profile. + * + * Purpose: Duplicate profile ; return a pointer + * to the newly allocated copy. + */ +P7_PROFILE * +p7_profile_Clone(const P7_PROFILE *gm) +{ + P7_PROFILE *g2 = NULL; + int status; + + if ((g2 = p7_profile_Create(gm->allocM, gm->abc)) == NULL) return NULL; + if ((status = p7_profile_Copy(gm, g2)) != eslOK) goto ERROR; + return g2; + + ERROR: + p7_profile_Destroy(g2); + return NULL; +} + + + +/* Function: p7_profile_SetNullEmissions() + * Synopsis: Set all emission scores to zero (experimental). + * + * Purpose: Set all emission scores in profile to zero. + * This makes the profile a null model, with all the same + * length distributions as the original model, but + * the emission probabilities of the background. + * + * Written to test the idea that score statistics will be + * even better behaved when using a null model with the + * same length distribution as the search model. + * + * Returns: on success. + */ +int +p7_profile_SetNullEmissions(P7_PROFILE *gm) +{ + int x; + for (x = 0; x <= gm->abc->K; x++) esl_vec_FSet(gm->rsc[x], (gm->M+1)*p7P_NR, 0.0); /* canonicals */ + for (x = gm->abc->K+1; x <= gm->abc->Kp-3; x++) esl_vec_FSet(gm->rsc[x], (gm->M+1)*p7P_NR, 0.0); /* noncanonicals */ + return eslOK; +} + + +/* Function: p7_profile_Reuse() + * Synopsis: Prepare profile to be re-used for a new HMM. + * + * Purpose: Prepare profile 's memory to be re-used + * for a new HMM. + */ +int +p7_profile_Reuse(P7_PROFILE *gm) +{ + /* name, acc, desc annotation is dynamically allocated for each HMM */ + if (gm->name != NULL) { free(gm->name); gm->name = NULL; } + if (gm->acc != NULL) { free(gm->acc); gm->acc = NULL; } + if (gm->desc != NULL) { free(gm->desc); gm->desc = NULL; } + + /* set annotations to empty strings */ + gm->rf[0] = 0; + gm->mm[0] = 0; + gm->cs[0] = 0; + gm->consensus[0] = 0; + + /* reset some other things, but leave the rest alone. */ + gm->mode = p7_NO_MODE; + gm->L = 0; + gm->M = 0; + gm->nj = 0.0f; + + gm->roff = -1; + gm->eoff = -1; + gm->offs[p7_MOFFSET] = -1; + gm->offs[p7_FOFFSET] = -1; + gm->offs[p7_POFFSET] = -1; + + return eslOK; +} + + +/* Function: p7_profile_Sizeof() + * Synopsis: Return the allocated size of a P7_PROFILE. + * + * Purpose: Return the allocated size of a , in bytes. + */ +size_t +p7_profile_Sizeof(P7_PROFILE *gm) +{ + size_t n = 0; + + /* these mirror malloc()'s in p7_profile_Create(); maintain one:one correspondence for maintainability */ + n += sizeof(P7_PROFILE); + n += sizeof(float) * gm->allocM * p7P_NTRANS; /* gm->tsc */ + n += sizeof(float *) * gm->abc->Kp; /* gm->rsc */ + n += sizeof(char) * (gm->allocM+2); /* gm->rf */ + n += sizeof(char) * (gm->allocM+2); /* gm->mm */ + n += sizeof(char) * (gm->allocM+2); /* gm->cs */ + n += sizeof(char) * (gm->allocM+2); /* gm->consensus */ + + n += sizeof(float) * gm->abc->Kp * (gm->allocM+1) * p7P_NR; /* gm->rsc[0] */ + + return n; +} + + +/* Function: p7_profile_Destroy() + * Synopsis: Frees a profile. + * + * Purpose: Frees a profile . + * + * Returns: (void). + * + * Xref: STL11/125. + */ +void +p7_profile_Destroy(P7_PROFILE *gm) +{ + if (gm != NULL) { + if (gm->rsc != NULL && gm->rsc[0] != NULL) free(gm->rsc[0]); + if (gm->tsc != NULL) free(gm->tsc); + if (gm->rsc != NULL) free(gm->rsc); + if (gm->name != NULL) free(gm->name); + if (gm->acc != NULL) free(gm->acc); + if (gm->desc != NULL) free(gm->desc); + if (gm->rf != NULL) free(gm->rf); + if (gm->mm != NULL) free(gm->mm); + if (gm->cs != NULL) free(gm->cs); + if (gm->consensus != NULL) free(gm->consensus); + free(gm); + } + return; +} + + +/***************************************************************** + * 2. Access methods. + *****************************************************************/ + +/* Function: p7_profile_IsLocal() + * Synopsis: Return TRUE if profile is in a local alignment mode. + * + * Purpose: Return if profile is in a local alignment mode. + */ +int +p7_profile_IsLocal(const P7_PROFILE *gm) +{ + if (gm->mode == p7_UNILOCAL || gm->mode == p7_LOCAL) return TRUE; + return FALSE; +} + +/* Function: p7_profile_IsMultihit() + * Synopsis: Return TRUE if profile is in a multihit alignment mode. + * + * Purpose: Return if profile is in a multihit alignment mode. + */ +int +p7_profile_IsMultihit(const P7_PROFILE *gm) +{ + if (gm->mode == p7_LOCAL || gm->mode == p7_GLOCAL) return TRUE; + return FALSE; +} + + + + +/* Function: p7_profile_GetT() + * + * Purpose: Convenience function that looks up a transition score in + * profile for a transition from state type in + * node to state type in node . For unique + * state types that aren't in nodes (, for example), the + * value is ignored, though it would be customarily passed as 0. + * Return the transition score in . + * + * This function would almost always be called on profile + * traces, of course, but it's possible to call it + * on core traces (for example, if you were to try to + * trace_Dump() during HMM construction, and you wanted + * to see detailed profile scores for that trace). Core traces + * can contain "states" used solely to signal + * a sequence fragment, treated as missing data. Transitions + * involving states are assigned zero score here. + * Other transitions that occur only in core traces + * (B->I0, B->D1, I_M->E) also silently get a zero score. + * This is safe, because we would only ever use this number + * for display, not as a log probability somewhere. + * + * Returns: on success, and <*ret_tsc> contains the requested + * transition score. + * + * Throws: if a nonexistent transition is requested. Now + * <*ret_tsc> is set to $-\infty$. + * + */ +int +p7_profile_GetT(const P7_PROFILE *gm, char st1, int k1, char st2, int k2, float *ret_tsc) +{ + float tsc = 0.0f; + int status; + + /* Detect transitions that can only come from core traces; + * return 0.0 as a special case (this is only done for displaying + * "scores" in trace dumps, during debugging.) + */ + if (st1 == p7T_X || st2 == p7T_X) return eslOK; + if (st1 == p7T_B && st2 == p7T_I) return eslOK; + if (st1 == p7T_B && st2 == p7T_D) return eslOK; + if (st1 == p7T_I && st2 == p7T_E) return eslOK; + + /* Now we're sure this is a profile trace, as it should usually be. */ + switch (st1) { + case p7T_S: break; + case p7T_T: break; + case p7T_N: + switch (st2) { + case p7T_B: tsc = gm->xsc[p7P_N][p7P_MOVE]; break; + case p7T_N: tsc = gm->xsc[p7P_N][p7P_LOOP]; break; + default: ESL_XEXCEPTION(eslEINVAL, "bad transition %s->%s", p7_hmm_DecodeStatetype(st1), p7_hmm_DecodeStatetype(st2)); + } + break; + + case p7T_B: + switch (st2) { + case p7T_M: tsc = p7P_TSC(gm, k2-1, p7P_BM); break; /* remember, B->Mk is stored in [k-1][p7P_BM] */ + default: ESL_XEXCEPTION(eslEINVAL, "bad transition %s->%s", p7_hmm_DecodeStatetype(st1), p7_hmm_DecodeStatetype(st2)); + } + break; + + case p7T_M: + switch (st2) { + case p7T_M: tsc = p7P_TSC(gm, k1, p7P_MM); break; + case p7T_I: tsc = p7P_TSC(gm, k1, p7P_MI); break; + case p7T_D: tsc = p7P_TSC(gm, k1, p7P_MD); break; + case p7T_E: + if (k1 != gm->M && ! p7_profile_IsLocal(gm)) ESL_EXCEPTION(eslEINVAL, "local end transition (M%d of %d) in non-local model", k1, gm->M); + tsc = 0.0f; /* by def'n in H3 local alignment */ + break; + default: ESL_XEXCEPTION(eslEINVAL, "bad transition %s_%d->%s", p7_hmm_DecodeStatetype(st1), k1, p7_hmm_DecodeStatetype(st2)); + } + break; + + case p7T_D: + switch (st2) { + case p7T_M: tsc = p7P_TSC(gm, k1, p7P_DM); break; + case p7T_D: tsc = p7P_TSC(gm, k1, p7P_DD); break; + case p7T_E: + if (k1 != gm->M && ! p7_profile_IsLocal(gm)) ESL_EXCEPTION(eslEINVAL, "local end transition (D%d of %d) in non-local model", k1, gm->M); + tsc = 0.0f; /* by def'n in H3 local alignment */ + break; + default: ESL_XEXCEPTION(eslEINVAL, "bad transition %s_%d->%s", p7_hmm_DecodeStatetype(st1), k1, p7_hmm_DecodeStatetype(st2)); + } + break; + + case p7T_I: + switch (st2) { + case p7T_M: tsc = p7P_TSC(gm, k1, p7P_IM); break; + case p7T_I: tsc = p7P_TSC(gm, k1, p7P_II); break; + default: ESL_XEXCEPTION(eslEINVAL, "bad transition %s_%d->%s", p7_hmm_DecodeStatetype(st1), k1, p7_hmm_DecodeStatetype(st2)); + } + break; + + case p7T_E: + switch (st2) { + case p7T_C: tsc = gm->xsc[p7P_E][p7P_MOVE]; break; + case p7T_J: tsc = gm->xsc[p7P_E][p7P_LOOP]; break; + default: ESL_XEXCEPTION(eslEINVAL, "bad transition %s->%s", p7_hmm_DecodeStatetype(st1), p7_hmm_DecodeStatetype(st2)); + } + break; + + case p7T_J: + switch (st2) { + case p7T_B: tsc = gm->xsc[p7P_J][p7P_MOVE]; break; + case p7T_J: tsc = gm->xsc[p7P_J][p7P_LOOP]; break; + default: ESL_XEXCEPTION(eslEINVAL, "bad transition %s->%s", p7_hmm_DecodeStatetype(st1), p7_hmm_DecodeStatetype(st2)); + } + break; + + case p7T_C: + switch (st2) { + case p7T_T: tsc = gm->xsc[p7P_C][p7P_MOVE]; break; + case p7T_C: tsc = gm->xsc[p7P_C][p7P_LOOP]; break; + default: ESL_XEXCEPTION(eslEINVAL, "bad transition %s->%s", p7_hmm_DecodeStatetype(st1), p7_hmm_DecodeStatetype(st2)); + } + break; + + default: ESL_XEXCEPTION(eslEINVAL, "bad state type %d in traceback", st1); + } + + *ret_tsc = tsc; + return eslOK; + + ERROR: + *ret_tsc = -eslINFINITY; + return status; +} + + +/***************************************************************** + * 3. Debugging and development code. + *****************************************************************/ + +/* Function: p7_profile_Validate() + * + * Purpose: Validates the internals of the generic profile structure + * . + * + * TODO: currently this function is incomplete, and only + * validates the entry distribution. + * + * Returns: if internals look fine. Returns + * if something is wrong, and leaves an error message in + * if caller passed it non-. + */ +int +p7_profile_Validate(const P7_PROFILE *gm, char *errbuf, float tol) +{ + int status; + int k; + double *pstart = NULL; + + ESL_ALLOC(pstart, sizeof(double) * (gm->M+1)); + pstart[0] = 0.0; + + /* Validate the entry distribution. + * In a glocal model, this is an explicit probability distribution, + * corresponding to left wing retraction. + * In a local model, this is an implicit probability distribution, + * corresponding to the implicit local alignment model, and we have + * to calculate the M(M+1)/2 fragment probabilities accordingly. + */ + if (p7_profile_IsLocal(gm)) + { /* the code block below is also in emit.c:sample_endpoints */ + for (k = 1; k <= gm->M; k++) + pstart[k] = exp(p7P_TSC(gm, k-1, p7P_BM)) * (gm->M - k + 1); /* multiply p_ij by the number of exits j */ + } + else + { + for (k = 1; k <= gm->M; k++) + pstart[k] = exp(p7P_TSC(gm, k-1, p7P_BM)); + } + + if (esl_vec_DValidate(pstart, gm->M+1, tol, NULL) != eslOK) ESL_XFAIL(eslFAIL, errbuf, "profile entry distribution is not normalized properly"); + free(pstart); + return eslOK; + + ERROR: + if (pstart != NULL) free(pstart); + return eslFAIL; +} + +/* Function: p7_profile_Compare() + * Synopsis: Compare two profiles for equality. + * + * Purpose: Compare two profiles and to each other. + * Return if they're identical, and if + * they differ. Floating-point probabilities are + * compared for equality within a fractional tolerance + * . Only compares the scores, not any annotation + * on the profiles. + */ +int +p7_profile_Compare(P7_PROFILE *gm1, P7_PROFILE *gm2, float tol) +{ + int x; + + if (gm1->mode != gm2->mode) return eslFAIL; + if (gm1->M != gm2->M) return eslFAIL; + + if (esl_vec_FCompare(gm1->tsc, gm2->tsc, gm1->M*p7P_NTRANS, tol) != eslOK) return eslFAIL; + for (x = 0; x < gm1->abc->Kp; x++) + if (esl_vec_FCompare(gm1->rsc[x], gm2->rsc[x], (gm1->M+1)*p7P_NR, tol) != eslOK) return eslFAIL; + + for (x = 0; x < p7P_NXSTATES; x++) + if (esl_vec_FCompare(gm1->xsc[x], gm2->xsc[x], p7P_NXTRANS, tol) != eslOK) return eslFAIL; + + return eslOK; +} + + + +/***************************************************************** + * 4. Unit tests + *****************************************************************/ +#ifdef p7PROFILE_TESTDRIVE +#include "esl_alphabet.h" +#include "esl_random.h" + +static void +utest_Compare(void) +{ + ESL_RANDOMNESS *r = esl_randomness_CreateFast(42); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_PROFILE *gm2 = NULL; + int M = 200; + int L = 400; + + p7_hmm_Sample(r, M, abc, &hmm); /* master and worker's sampled profiles are identical */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + gm2 = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + p7_ProfileConfig(hmm, bg, gm2, 400, p7_LOCAL); + p7_ReconfigLength(gm, L); + p7_ReconfigLength(gm2, L); + + if (p7_profile_Compare(gm, gm2, 0.001) != eslOK) p7_Die("identical profile comparison failed"); + + p7_profile_Destroy(gm); + p7_profile_Destroy(gm2); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + return; +} + + +#endif /*p7PROFILE_TESTDRIVE*/ + +/***************************************************************** + * 5. Test driver + *****************************************************************/ +#ifdef p7PROFILE_TESTDRIVE + +/* gcc -o profile_utest -g -Wall -I../easel -L../easel -I. -L. -Dp7PROFILE_TESTDRIVE p7_profile.c -lhmmer -leasel -lm + * ./profile_utest + */ +#include "esl_getopts.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for p7_profile.c"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + + utest_Compare(); + + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7PROFILE_TESTDRIVE*/ + diff --git a/bioinformaticsProject/hmmer/src/p7_scoredata.c b/bioinformaticsProject/hmmer/src/p7_scoredata.c new file mode 100644 index 0000000..781b5b1 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_scoredata.c @@ -0,0 +1,472 @@ +/* The Plan7 SCOREDATA data structure, which holds a compact representation + * of substitution scores and maximal extensions, used by nhmmer. + * + * Contents: + * 1. The P7_SCOREDATA object: allocation, initialization, destruction. + * 2. Unit tests. + * 3. Test driver. + */ +#include "p7_config.h" + +#include +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_vectorops.h" +#include "esl_random.h" +#include "esl_dirichlet.h" + +#include "hmmer.h" + + +/********************************************************************* + *# 1. The P7_SCOREDATA object: allocation, initialization, destruction. + *********************************************************************/ + +/* Function: scoredata_GetSSVScoreArrays() + * Synopsis: Get compact representation of substitution scores and maximal extensions + * + * Purpose: Extract 8-bit (MSV-style) substitution scores from optimized + * matrix. These scores will be used in both standard MSV diagonal + * recovery and FM-MSV diagonal scoring. + * + * Optionally, for each position in the model, capture the maximum + * possible score that can be added to a diagonal's score (in both + * directions) by extending lengths 1..10. These extension scores + * are used in FM-MSV's pruning step. + * + * Once a hit passes the SSV filter, and the prefix/suffix + * values of P7_SCOREDATA are required (to establish windows + * around SSV diagonals), p7_hmm_ScoreDataComputeRest() + * must be called. + * + * + * Args: om - P7_OPROFILE containing scores used to produce SCOREDATA contents + * data - where scores and will be stored + * do_opt_ext - boolean, TRUE if optimal-extension scores are required (for FM-MSV) + * scale - used to produce 8-bit extracted scores + * bias - used to produce 8-bit extracted scores + * + * Returns: data->scores and possibly ->opt_ext_(fwd|rev) are filled in; + * return eslEMEM on allocation failure, eslOK otherwise. + */ +static int +scoredata_GetSSVScoreArrays(P7_OPROFILE *om, P7_PROFILE *gm, P7_SCOREDATA *data ) { + int i, j, status; + + //gather values from gm->rsc into a succinct 2D array + float *max_scores; + float sc_fwd, sc_rev; + int K = om->abc->Kp; + data->M = om->M; + + if (!gm) { // get values for the standard pipeline + data->type = p7_sd_std; + ESL_ALLOC(data->ssv_scores, (om->M + 1) * K * sizeof(uint8_t)); + p7_oprofile_GetSSVEmissionScoreArray(om, data->ssv_scores); + + } else {// need float, unscaled scores, and other stuff used in the FMindex-based SSV pipeline, + data->type = p7_sd_fm; + ESL_ALLOC(data->ssv_scores_f, (om->M + 1) * K * sizeof(float)); + ESL_ALLOC(max_scores, (om->M + 1) * sizeof(float)); + + for (i = 1; i <= om->M; i++) { + max_scores[i] = 0; + for (j=0; jabc,j)) { + data->ssv_scores_f[i*K + j] = gm->rsc[j][(i) * p7P_NR + p7P_MSC]; + if (data->ssv_scores_f[i*K + j] > max_scores[i]) max_scores[i] = data->ssv_scores_f[i*K + j]; + } + } + } + + //for each position in the query, what's the highest possible score achieved by extending X positions, for X=1..10 + ESL_ALLOC(data->opt_ext_fwd, (om->M + 1) * sizeof(float*)); + ESL_ALLOC(data->opt_ext_rev, (om->M + 1) * sizeof(float*)); + + for (i=1; iM; i++) { + ESL_ALLOC(data->opt_ext_fwd[i], 10 * sizeof(float)); + ESL_ALLOC(data->opt_ext_rev[i], 10 * sizeof(float)); + } + for (i=1; iM; i++) { + sc_fwd = 0; + sc_rev = 0; + for (j=0; j<10 && i+j+1<=om->M; j++) { + sc_fwd += max_scores[i+j+1]; + data->opt_ext_fwd[i][j] = sc_fwd; + + sc_rev += max_scores[om->M-i-j]; + data->opt_ext_rev[om->M-i][j] = sc_rev; + + } + for ( ; j<10; j++) { //fill in empty values + data->opt_ext_fwd[i][j] = data->opt_ext_fwd[i][j-1]; + data->opt_ext_rev[om->M-i][j] = data->opt_ext_rev[om->M-i][j-1]; + } + } + free(max_scores); + } + return eslOK; + +ERROR: + return eslEMEM; +} + + +/* Function: p7_hmm_ScoreDataDestroy() + * + * Synopsis: Destroy a object. + */ +void +p7_hmm_ScoreDataDestroy(P7_SCOREDATA *data ) +{ + int i; + + if (data != NULL) { + + if (data->ssv_scores != NULL) free( data->ssv_scores); + if (data->prefix_lengths != NULL) free( data->prefix_lengths); + if (data->suffix_lengths != NULL) free( data->suffix_lengths); + if (data->fwd_scores != NULL) free( data->fwd_scores); + + if (data->fwd_transitions != NULL) { + for (i=0; ifwd_transitions[i]); + free(data->fwd_transitions); + } + if (data->opt_ext_fwd != NULL) { + for (i=1; iM; i++) + free(data->opt_ext_fwd[i]); + free(data->opt_ext_fwd); + } + if (data->opt_ext_rev != NULL) { + for (i=1; iM; i++) + free(data->opt_ext_rev[i]); + free( data->opt_ext_rev); + } + + free(data); + } + +} + +/* Function: p7_hmm_ScoreDataCreate() + * Synopsis: Create a model object, based on MSV-filter + * part of profile + * + * Purpose: Allocate a object, then populate + * it with data based on the given optimized matrix. + * + * Once a hit passes the MSV filter, and the prefix/suffix + * values of P7_SCOREDATA are required, p7_hmm_ScoreDataComputeRest() + * must be called. + * + * Args: om - P7_OPROFILE containing scores used to produce SCOREDATA contents + * do_opt_ext - boolean, TRUE if optimal-extension scores are required (for FM-MSV) + * + * Returns: a pointer to the new object. + * + * Throws: on allocation failure. + */ +P7_SCOREDATA * +p7_hmm_ScoreDataCreate(P7_OPROFILE *om, P7_PROFILE *gm ) +{ + P7_SCOREDATA *data = NULL; + int status; + + ESL_ALLOC(data, sizeof(P7_SCOREDATA)); + + data->ssv_scores = NULL; + data->ssv_scores_f = NULL; + data->opt_ext_fwd = NULL; + data->opt_ext_rev = NULL; + data->prefix_lengths = NULL; + data->suffix_lengths = NULL; + data->fwd_scores = NULL; + data->fwd_transitions = NULL; + + scoredata_GetSSVScoreArrays(om, gm, data); + + return data; + +ERROR: + p7_hmm_ScoreDataDestroy(data); + return NULL; +} + + +/* Function: p7_hmm_ScoreDataClone() + * Synopsis: Clone a model object + * + * Purpose: Allocate a object used in both FM-MSV and + * MSV_LongTarget diagonal recovery/extension, then + * copy data into it from another populated instance + * + * Once a hit passes the MSV filter, and the prefix/suffix + * values of P7_SCOREDATA are required, p7_hmm_ScoreDataComputeRest() + * must be called. + * + * Args: src - P7_SCOREDATA upon which clone will be based + * Kp - alphabet size, including degeneracy codes, gaps + * + * Returns: a pointer to the new object. + * + * Throws: on allocation failure. + */ +P7_SCOREDATA * +p7_hmm_ScoreDataClone(P7_SCOREDATA *src, int Kp) { + P7_SCOREDATA *new; + int status; + int i; + + if (src == NULL) + return NULL; + + ESL_ALLOC(new, sizeof(P7_SCOREDATA)); + new->M = src->M; + new->type = src->type; + new->ssv_scores = NULL; + new->opt_ext_fwd = NULL; + new->opt_ext_rev = NULL; + new->prefix_lengths = NULL; + new->suffix_lengths = NULL; + new->fwd_scores = NULL; + new->fwd_transitions = NULL; + + if (new->type == p7_sd_std) { + ESL_ALLOC(new->ssv_scores, (src->M + 1) * Kp * sizeof(uint8_t)); + memcpy(new->ssv_scores, src->ssv_scores, (src->M + 1) * Kp * sizeof(uint8_t) ); + } else { + ESL_ALLOC(new->ssv_scores_f, (src->M + 1) * Kp * sizeof(float)); + memcpy(new->ssv_scores_f, src->ssv_scores_f, (src->M + 1) * Kp * sizeof(float) ); + } + + + if (src->prefix_lengths != NULL) { + ESL_ALLOC(new->prefix_lengths, (src->M+1) * sizeof(float)); + memcpy(new->prefix_lengths, src->prefix_lengths, (src->M+1) * sizeof(float)); + } + if (src->suffix_lengths != NULL) { + ESL_ALLOC(new->suffix_lengths, (src->M+1) * sizeof(float)); + memcpy(new->suffix_lengths, src->suffix_lengths, (src->M+1) * sizeof(float)); + } + if (src->fwd_scores != NULL) { + ESL_ALLOC(new->fwd_scores, (src->M+1) * sizeof(float)); + memcpy(new->fwd_scores, src->fwd_scores, (src->M+1) * sizeof(float)); + } + + + if (src->opt_ext_fwd != NULL) { + ESL_ALLOC(new->opt_ext_fwd, (src->M + 1) * sizeof(float*)); + for (i=1; iM; i++) { + ESL_ALLOC(new->opt_ext_fwd[i], 10 * sizeof(float)); + memcpy(new->opt_ext_fwd[i], src->opt_ext_fwd[i], 10 * sizeof(float)); + } + } + if (src->opt_ext_rev != NULL) { + ESL_ALLOC(new->opt_ext_rev, (src->M + 1) * sizeof(float*)); + for (i=1; iM; i++) { + ESL_ALLOC(new->opt_ext_rev[i], 10 * sizeof(float)); + memcpy(new->opt_ext_rev[i], src->opt_ext_rev[i], 10 * sizeof(float)); + } + } + if (src->fwd_transitions != NULL) { + ESL_ALLOC(new->fwd_transitions, p7O_NTRANS * sizeof(float*)); + for (i=0; ifwd_transitions[i], (src->M+1)* sizeof(float)); + memcpy(new->fwd_transitions[i], src->fwd_transitions[i], (src->M+1) * sizeof(float)); + } + } + + return new; + +ERROR: + return NULL; +} + +/* Function: p7_hmm_ScoreDataComputeRest() + * Synopsis: Using position-specific insert rates, compute MAXL-based prefix and suffix lengths + * + * Purpose: Using position-specific insert rates, compute MAXL-based prefix + * and suffix lengths for each position in the model, used when + * establishing windows around SSV diagonals. This fleshes out + * the model object that was created by + * p7_hmmScoreDataCreate(). + * + * This approach of computing the prefix/suffix length, used + * in establishing windows around a seed diagonal, is fast + * because it uses a simple closed-form computation of the + * length L_i for each position i at which all but + * (1-p7_DEFAULT_WINDOW_BETA) of position i's match- and + * insert-state emissions are length L_i or shorter. + * + * Args: om - P7_OPROFILE containing emission/transition probabilities used to for calculations + * data - P7_SCOREDATA into which the computed values are placed + * + * Returns: eslEMEM on failure, else eslOK + * + * Throws: on allocation failure. + */ +int +p7_hmm_ScoreDataComputeRest(P7_OPROFILE *om, P7_SCOREDATA *data ) +{ + int status; + int k; + float sum; + float *t_mis; + float *t_iis; + + ESL_ALLOC(data->fwd_scores, sizeof(float) * om->abc->Kp * (om->M+1)); + p7_oprofile_GetFwdEmissionScoreArray(om, data->fwd_scores); + + //2D array, holding all the transition scores/costs + ESL_ALLOC(data->fwd_transitions, sizeof(float*) * p7O_NTRANS); + + for (k=0; kfwd_transitions[k], sizeof(float) * (om->M+1)); + p7_oprofile_GetFwdTransitionArray(om, k, data->fwd_transitions[k] ); + } + t_mis = data->fwd_transitions[p7O_MI]; + t_iis = data->fwd_transitions[p7O_II]; + + /* + * Elsewhere, we compute the MAXL of a given model, which is the length L + * such that only a minute fraction (BETA = 1e-7) of emitted sequence are length > L. + * + * In the DNA search pipeline, when a high-scoring SSV alignment is identified, + * we extract a window around that seed. The length of the window is based on + * MAXL, but we need to figure out how much the window should precede the seed + * (the prefix of the window) and how much should follow the seed (the suffix). + * + * Our heuristic strategy is to estimate how much of that MAXL is likely to have + * come from each position. Using these relative contributions of each position, + * we can compute the length of extracted window prior to the seed as + * MAXL * (sum of the expected fractional contributions of preceding positions), + * and do the same for the extracted window following the seed (suffix sum). This + * code supports that process, by computing prefix-sum and suffix-sum values for + * these relative contributions. + * + * We estimate the relative contributions of a position k by computing for position + * k, the minimum length l_k at which the tail probability mass for sequences + * emitted by position k (match and insert states) P(L>l_k) < BETA. + * These per-position lengths are summed, and the relative contribution of a + * position is it's l_k normalized by the sum of all lengths + */ + ESL_ALLOC(data->prefix_lengths, (om->M+1) * sizeof(float)); + ESL_ALLOC(data->suffix_lengths, (om->M+1) * sizeof(float)); + + sum = 0; + for (k=1; k < om->M; k++) { + if (t_mis[k] == 0) + data->prefix_lengths[k] = 1; + else + data->prefix_lengths[k] = 1 + (int)(log(p7_DEFAULT_WINDOW_BETA / t_mis[k] )/log(t_iis[k])); + + sum += data->prefix_lengths[k]; + } + data->prefix_lengths[0] = data->prefix_lengths[om->M] = 0; + + for (k=1; k < om->M; k++) + data->prefix_lengths[k] /= sum; + + data->suffix_lengths[om->M] = data->prefix_lengths[om->M-1]; + for (k=om->M - 1; k >= 1; k--) + data->suffix_lengths[k] = data->suffix_lengths[k+1] + data->prefix_lengths[k-1]; + for (k=2; k < om->M; k++) + data->prefix_lengths[k] += data->prefix_lengths[k-1]; + + return eslOK; + + ERROR: + p7_hmm_ScoreDataDestroy(data); + return eslEMEM; +} + + +/***************************************************************** + * 2. Unit tests + *****************************************************************/ +#ifdef p7SCOREDATA_TESTDRIVE + +static void +utest_createScoreData(ESL_GETOPTS *go, ESL_RANDOMNESS *r ) +{ + char msg[] = "createScoreData unit test failed"; + P7_HMM *hmm = NULL; + ESL_ALPHABET *abc = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_SCOREDATA *scoredata = NULL; + uint8_t scale = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */ + float max = 0.0; + int x; + + if ( (abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal(msg); + + if ( p7_hmm_Sample(r, 100, abc, &hmm) != eslOK) esl_fatal(msg); + if ( (gm = p7_profile_Create (hmm->M, abc)) == NULL ) esl_fatal(msg); + if ( (om = p7_oprofile_Create(hmm->M, abc)) == NULL ) esl_fatal(msg); + + for (x = 0; x < gm->abc->K; x++) max = ESL_MAX(max, esl_vec_FMax(gm->rsc[x], (gm->M+1)*2)); + //based on unbiased_byteify + max = -1.0f * roundf(scale * max); + + if ( (scoredata = p7_hmm_ScoreDataCreate(om, FALSE)) == NULL ) esl_fatal(msg); + + p7_hmm_ScoreDataDestroy(scoredata); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); +} +#endif /*p7SCOREDATA_TESTDRIVE*/ + + +/***************************************************************** + * 3. Test driver + *****************************************************************/ + +#ifdef p7SCOREDATA_TESTDRIVE +#include "esl_config.h" + +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range togs reqs incomp help docgrp */ + {"-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0}, + {"-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0}, + {"-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show verbose commentary/output", 0}, + { 0,0,0,0,0,0,0,0,0,0}, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for p7_bg"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *rng = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + int be_verbose = esl_opt_GetBoolean(go, "-v"); + + if (be_verbose) printf("p7_scoredata unit test: rng seed %" PRIu32 "\n", esl_randomness_GetSeed(rng)); + + utest_createScoreData(go, rng); + + esl_randomness_Destroy(rng); + esl_getopts_Destroy(go); + return 0; +} +#endif /* p7BG_TESTDRIVE */ + + + + diff --git a/bioinformaticsProject/hmmer/src/p7_spensemble.c b/bioinformaticsProject/hmmer/src/p7_spensemble.c new file mode 100644 index 0000000..7508110 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_spensemble.c @@ -0,0 +1,589 @@ +/* Defining domain number and coordinates in a significant hit by + * posterior sampling and clustering. + * + * SRE, Wed Jan 9 07:26:34 2008 [Janelia] + */ +#include "p7_config.h" +#include "easel.h" +#include "esl_cluster.h" +#include "esl_vectorops.h" +#include "hmmer.h" + +/* Function: p7_spensemble_Create() + * Synopsis: Allocates a + * Incept: SRE, Wed Jan 9 10:00:14 2008 [Janelia] + * + * Purpose: Create a new with specified initial + * allocation sizes: for the number of sampled + * segment pairs, for the range over + * which one of a domain's (i,j,k,m) sampled endpoints + * falls, and for the number of significant + * clusters (domains) that will be defined. + * + * The values of these initial allocations are only + * relevant to tuning memory performance, because the + * object is reallocated/grown as needed. You can make + * guesses, and the better your guess, the fewer + * reallocations will be needed; but everything will work + * fine regardless of what these initial allocations are. + * + * A is designed to be reused for many + * target sequences and/or models, to minimize alloc/free + * calls. + * + * Args: init_n - initial allocation for # of sampled segment pairs + * init_epc - initial allocation for maximum endpoint range + * init_sigc - initial allocation for # of significant clusters, domains + * + * Returns: a pointer to the new . + * + * Throws: on allocation failure. + */ +P7_SPENSEMBLE * +p7_spensemble_Create(int init_n, int init_epc, int init_sigc) +{ + P7_SPENSEMBLE *sp = NULL; + int status; + + ESL_ALLOC(sp, sizeof(P7_SPENSEMBLE)); + sp->sp = NULL; + sp->workspace = NULL; + sp->assignment = NULL; + sp->epc = NULL; + sp->sigc = NULL; + + sp->nalloc = init_n; + sp->epc_alloc = init_epc; + sp->nsigc_alloc = init_sigc; + + ESL_ALLOC(sp->sp, sizeof(struct p7_spcoord_s) * sp->nalloc); + ESL_ALLOC(sp->workspace, sizeof(int) * sp->nalloc * 2); /* workspace is 2n */ + ESL_ALLOC(sp->assignment, sizeof(int) * sp->nalloc); + ESL_ALLOC(sp->epc, sizeof(int) * sp->epc_alloc); + ESL_ALLOC(sp->sigc, sizeof(struct p7_spcoord_s) * sp->nsigc_alloc); + sp->nsamples = 0; + sp->n = 0; + sp->nc = 0; + sp->nsigc = 0; + return sp; + + ERROR: + p7_spensemble_Destroy(sp); + return NULL; +} + +/* Function: p7_spensemble_Reuse() + * Synopsis: Reinitializes a . + * Incept: SRE, Wed Jan 9 10:26:36 2008 [Janelia] + * + * Purpose: Reinitialize so it can be used again to collect + * and process a new segment pair ensemble, without + * having to free and reallocate. + * + * Returns: on success. + */ +int +p7_spensemble_Reuse(P7_SPENSEMBLE *sp) +{ + sp->nsamples = 0; + sp->n = 0; + sp->nc = 0; + sp->nsigc = 0; + return eslOK; +} + +/* Function: p7_spsensemble_Add() + * Synopsis: Add a new segment pair to a growing ensemble. + * Incept: SRE, Wed Jan 9 10:28:04 2008 [Janelia] + * + * Purpose: Adds a new segment pair to a growing ensemble . + * The segment pair is defined by start/end positions + * , on a target sequence (1..L), and start/end + * positions , on a query model (1..M). + * + * You also provide the index of which sampled + * traceback this segment pair came from; each traceback + * contains one or more segment pairs. These + * indices start at 0 and they must arrive sequentially: + * that is, the caller must all the segment pairs + * from traceback sample 0, then all the segment + * pairs from traceback sample 1, and so on. + * + * The reason to enforce sequential addition has to do with + * the internals of the ensemble clustering algorithm; + * specifically with how it calculates the posterior + * probability of a cluster in the ensemble. You can't + * calculate the posterior probability of a cluster simply + * by dividing the number of segment pairs in a cluster by + * the total number of traces, because you can get + * "probabilities" of greater than one: sometimes more than + * one pair from the same trace get clustered together + * (because one domain got split into two or more segment + * pairs). Rather, what it does is to count the total + * number of traces that have one or more segments in the + * cluster, divided by the total number of traces. An + * efficient way to implement this is, when counting + * segments that belong to a cluster, only increment the + * numerator if the segment has a different traceback index + * than the last segment we counted in this cluster. (We'd + * rather not have to keep track of a table of all the + * traceback indices we've seen so far.) + * + * Args: sp - ensemble to add this segment pair to + * sampleidx - index of traceback that this seg pair came from (0..nsamples-1) + * i,j - start,end position on target sequence (1..L) + * k,m - start,end position on query model (1..M) + * + * Returns: on success. + * + * Throws: if the is out of order. + * if a reallocation fails. + */ +int +p7_spensemble_Add(P7_SPENSEMBLE *sp, int sampleidx, int i, int j, int k, int m) +{ + int status; + + if (sampleidx > sp->nsamples) ESL_EXCEPTION(eslEINVAL, "seg pair's is out of order"); + else if (sampleidx == sp->nsamples) sp->nsamples++; + + if (sp->n >= sp->nalloc) { + void *p; + ESL_RALLOC(sp->sp, p, sizeof(struct p7_spcoord_s) * sp->nalloc * 2); + ESL_RALLOC(sp->workspace, p, sizeof(int) * sp->nalloc * 4); /* remember, workspace is 2n */ + ESL_RALLOC(sp->assignment, p, sizeof(int) * sp->nalloc * 2); + sp->nalloc *= 2; + } + + sp->sp[sp->n].idx = sampleidx; + sp->sp[sp->n].i = i; + sp->sp[sp->n].j = j; + sp->sp[sp->n].k = k; + sp->sp[sp->n].m = m; + sp->n++; + return eslOK; + + ERROR: + return status; +} + + +/* struct p7_linkparam_s: + * used just within this .c, as part of setting up the clustering problem in + * the form that Easel's general SLC algorithm will take it. + */ +struct p7_linkparam_s { + float min_overlap; /* 0.8 means >= 80% overlap of (smaller/larger) segment is required, both in seq and hmm */ + int of_smaller; /* TRUE means overlap fraction is w.r.t. smaller segment; FALSE means w.r.t. larger segment */ + int max_diagdiff; /* 4 means either start or endpoints of two segments must be within <= 4 diagonals of each other */ + float min_posterior; /* 0.25 means a cluster must occur w/ >= 25% posterior probability in the sample to be "significant" */ + float min_endpointp; /* 0.02 means choose widest endpoint with post. prob. of at least 2% */ +}; + + +/* link_spsamples(): + * + * Defines the rule used for single linkage clustering of sampled + * domain coordinates. (API is dictated by Easel's general single + * linkage clustering routine.) + */ +static int +link_spsamples(const void *v1, const void *v2, const void *prm, int *ret_link) +{ + struct p7_spcoord_s *h1 = (struct p7_spcoord_s *) v1; + struct p7_spcoord_s *h2 = (struct p7_spcoord_s *) v2; + struct p7_linkparam_s *param = (struct p7_linkparam_s *) prm; + int nov, n; + int d1, d2; + + /* seq overlap test */ + nov = ESL_MIN(h1->j, h2->j) - ESL_MAX(h1->i, h2->i) + 1; /* overlap */ + n = (param->of_smaller ? ESL_MIN(h1->j - h1->i + 1, h2->j - h2->i + 1) : /* min length of the two hits */ + ESL_MAX(h1->j - h1->i + 1, h2->j - h2->i + 1)); /* max length of the two hits */ + if ((float) nov / (float) n < param->min_overlap) { *ret_link = FALSE; return eslOK; } + + /* hmm overlap test */ + nov = ESL_MIN(h1->m, h2->m) - ESL_MAX(h1->k, h2->k); + n = (param->of_smaller ? ESL_MIN(h1->m - h1->k + 1, h2->m - h2->k + 1) : + ESL_MAX(h1->m - h1->k + 1, h2->m - h2->k + 1)); + if ((float) nov / (float) n < param->min_overlap) { *ret_link = FALSE; return eslOK; } + + /* nearby diagonal test */ + d1 = (h1->i - h1->k); d2 = (h2->i - h2->k); if (abs(d1-d2) <= param->max_diagdiff) { *ret_link = TRUE; return eslOK; } + d1 = (h1->j - h1->m); d2 = (h2->j - h2->m); if (abs(d1-d2) <= param->max_diagdiff) { *ret_link = TRUE; return eslOK; } + + *ret_link = FALSE; + return eslOK; +} + +/* cluster_orderer() + * is the routine that gets passed to qsort() to sort + * the significant clusters by order of occurrence on + * the target sequence + */ +static int +cluster_orderer(const void *v1, const void *v2) +{ + struct p7_spcoord_s *h1 = (struct p7_spcoord_s *) v1; + struct p7_spcoord_s *h2 = (struct p7_spcoord_s *) v2; + + if (h1->i < h2->i) return -1; + else if (h1->i > h2->i) return 1; + else return 0; +} + +/* Function: p7_spensemble_Cluster() + * Synopsis: Cluster a seg pair ensemble and define domains. + * Incept: SRE, Wed Jan 9 11:04:07 2008 [Janelia] + * + * Purpose: Given a collected segment pair ensemble , cluster it; + * identify significant clusters with high posterior probability; + * and define consensus endpoints for each significant cluster. + * + * Clustering is single-linkage. The linkage rule is + * controlled by the , , and + * parameters. To be linked, two segments + * must overlap by a fraction $\geq$ , + * relative to either the smaller or larger of the two + * segments ( or ), in both their + * sequence and model coords, and either the start or end of both + * segments must lie within $\leq$ diagonals + * of each other. + * + * The threshold for cluster "significance" is controlled + * by the parameter. Clusters with + * posterior probability $\geq$ this threshold are called + * significant. + * + * Consensus endpoint definition within a cluster is + * controlled by the parameter. The widest + * endpoint that has a posterior probability of $\geq + * min_endpointp> is chosen; this is done independently for + * each coordinate (i,j,k,m). + * + * A reasonable (and tested) parameterization is + * , , , , . + * + * Args: sp - segment pair ensemble to cluster + * min_overlap - linkage requires fractional overlap >= this, in both seq and hmm segments + * of_smaller - overlap fraction denominators uses either the smaller (if TRUE) or larger (if FALSE) segment + * max_diagdiff - linkage requires that start, end points of both seg pairs are <= this + * min_posterior - clusters with posterior prob >= this are defined as significant + * min_endpointp - widest endpoint with post prob >= this is defined as consensus endpoint coord + * + * Returns: the number of significant clusters in <*ret_nclusters>. + * The caller can then obtain consensus endpoints for each cluster + * by making a series of calls. + * + */ +int +p7_spensemble_Cluster(P7_SPENSEMBLE *sp, + float min_overlap, int of_smaller, int max_diagdiff, float min_posterior, float min_endpointp, + int *ret_nclusters) +{ + struct p7_linkparam_s param; + int status; + int c; + int h; + int idx_of_last; + int *ninc = NULL; + int cwindow_width; + int epc_threshold; + int imin, jmin, kmin, mmin; + int imax, jmax, kmax, mmax; + int best_i, best_j, best_k, best_m; + + /* set up a single linkage clustering problem for Easel's general routine */ + param.min_overlap = min_overlap; + param.of_smaller = of_smaller; + param.max_diagdiff = max_diagdiff; + param.min_posterior = min_posterior; + param.min_endpointp = min_endpointp; + if ((status = esl_cluster_SingleLinkage(sp->sp, sp->n, sizeof(struct p7_spcoord_s), link_spsamples, (void *) ¶m, + sp->workspace, sp->assignment, &(sp->nc))) != eslOK) goto ERROR; + + ESL_ALLOC(ninc, sizeof(int) * sp->nc); + + /* Look at each cluster in turn; most will be too small to worry about. */ + for (c = 0; c < sp->nc; c++) + { + /* Calculate posterior probability of each cluster. + * The extra wrinkle here is that this probability is w.r.t the number of sampled traces; + * but the clusters might contain more than one seg pair from a given trace. + * That's what the idx_of_last logic is doing, avoiding double-counting. + */ + idx_of_last = -1; + for (ninc[c] = 0, h = 0; h < sp->n; h++) { + if (sp->assignment[h] == c) { + if (sp->sp[h].idx != idx_of_last) ninc[c]++; + idx_of_last = sp->sp[h].idx; + } + } + /* Reject low probability clusters: */ + if ((float) ninc[c] / (float) sp->nsamples < min_posterior) continue; + + /* Find the maximum extent of all seg pairs in this cluster in i,j k,m */ + for (imin = 0, h = 0; h < sp->n; h++) + if (sp->assignment[h] == c) + { + if (imin == 0) { + imin = imax = sp->sp[h].i; + jmin = jmax = sp->sp[h].j; + kmin = kmax = sp->sp[h].k; + mmin = mmax = sp->sp[h].m; + } else { + imin = ESL_MIN(imin, sp->sp[h].i); imax = ESL_MAX(imax, sp->sp[h].i); + jmin = ESL_MIN(jmin, sp->sp[h].j); jmax = ESL_MAX(jmax, sp->sp[h].j); + kmin = ESL_MIN(kmin, sp->sp[h].k); kmax = ESL_MAX(kmax, sp->sp[h].k); + mmin = ESL_MIN(mmin, sp->sp[h].m); mmax = ESL_MAX(mmax, sp->sp[h].m); + } + } + + /* Set up a window in which we can examine the end point distributions for i,j,k,m in turn, independently */ + cwindow_width = ESL_MAX(ESL_MAX(imax-imin+1, jmax-jmin+1), + ESL_MAX(kmax-kmin+1, mmax-mmin+1)); + if (cwindow_width > sp->epc_alloc) { + void *p; + ESL_RALLOC(sp->epc, p, sizeof(int) * cwindow_width); + sp->epc_alloc = cwindow_width; + } + + epc_threshold = (int) ceilf((float) ninc[c] * min_endpointp); /* round up. freq of >= epc_threshold means we're >= min_p */ + + /* Identify the leftmost i that has enough endpoints. */ + esl_vec_ISet(sp->epc, imax-imin+1, 0); + for (h = 0; h < sp->n; h++) if (sp->assignment[h] == c) sp->epc[sp->sp[h].i-imin]++; + for (best_i = imin; best_i <= imax; best_i++) if (sp->epc[best_i-imin] >= epc_threshold) break; + if (best_i > imax) best_i = imin + esl_vec_IArgMax(sp->epc, imax-imin+1); + + /* Identify the leftmost k that has enough endpoints */ + esl_vec_ISet(sp->epc, kmax-kmin+1, 0); + for (h = 0; h < sp->n; h++) if (sp->assignment[h] == c) sp->epc[sp->sp[h].k-kmin]++; + for (best_k = kmin; best_k <= kmax; best_k++) if (sp->epc[best_k-kmin] >= epc_threshold) break; + if (best_k > kmax) best_k = kmin + esl_vec_IArgMax(sp->epc, kmax-kmin+1); + + /* Identify the rightmost j that has enough endpoints. */ + esl_vec_ISet(sp->epc, jmax-jmin+1, 0); + for (h = 0; h < sp->n; h++) if (sp->assignment[h] == c) sp->epc[sp->sp[h].j-jmin]++; + for (best_j = jmax; best_j >= jmin; best_j--) if (sp->epc[best_j-jmin] >= epc_threshold) break; + if (best_j < jmin) best_j = jmin + esl_vec_IArgMax(sp->epc, jmax-jmin+1); + + /* Identify the rightmost m that has enough endpoints. */ + esl_vec_ISet(sp->epc, mmax-mmin+1, 0); + for (h = 0; h < sp->n; h++) if (sp->assignment[h] == c) sp->epc[sp->sp[h].m-mmin]++; + for (best_m = mmax; best_m >= mmin; best_m--) if (sp->epc[best_m-mmin] >= epc_threshold) break; + if (best_m < mmin) best_m = mmin + esl_vec_IArgMax(sp->epc, mmax-mmin+1); + + /* If there's no well-defined domain (say, a long stretch of biased composition), + the coords above might come out inconsistent; in this case, just reject the domain. + */ + if (best_i > best_j || best_k > best_m) continue; + + if (sp->nsigc >= sp->nsigc_alloc) { + void *p; + ESL_RALLOC(sp->sigc, p, sizeof(struct p7_spcoord_s) * sp->nsigc_alloc * 2); + sp->nsigc_alloc *= 2; + } + + sp->sigc[sp->nsigc].i = best_i; + sp->sigc[sp->nsigc].j = best_j; + sp->sigc[sp->nsigc].k = best_k; + sp->sigc[sp->nsigc].m = best_m; + sp->sigc[sp->nsigc].idx = c; + sp->sigc[sp->nsigc].prob = (float) ninc[c] / (float) sp->nsamples; + sp->nsigc++; + } + + /* Now we need to make sure those domains are ordered by start point, + * because later we're going to calculate overlaps by i_cur - j_prv + */ + qsort((void *) sp->sigc, sp->nsigc, sizeof(struct p7_spcoord_s), cluster_orderer); + + free(ninc); + *ret_nclusters = sp->nsigc; + return eslOK; + + ERROR: + if (ninc != NULL) free(ninc); + *ret_nclusters = 0; + return status; +} + +/* Function: p7_spensemble_GetClusterCoords() + * Synopsis: Retrieve consensus coords of one significant segment pair cluster. + * Incept: SRE, Wed Jan 9 11:39:27 2008 [Janelia] + * + * Purpose: Retrieve the consensus coords of significant segment pair cluster + * from the ensemble , which has already been clustered with + * . + * + * Returns: on success, and the consensus coords are in <*opt_i>, <*opt_j>, + * <*opt_k>, and <*opt_m>; the (sampled) posterior probability of the + * cluster is in <*opt_p>. All of these returned values are optional; + * the caller can pass a for any value it's not interested in + * retrieving. + */ +int +p7_spensemble_GetClusterCoords(P7_SPENSEMBLE *sp, int which, int *opt_i, int *opt_j, int *opt_k, int *opt_m, float *opt_p) +{ + if (opt_i != NULL) *opt_i = sp->sigc[which].i; + if (opt_j != NULL) *opt_j = sp->sigc[which].j; + if (opt_k != NULL) *opt_k = sp->sigc[which].k; + if (opt_m != NULL) *opt_m = sp->sigc[which].m; + if (opt_p != NULL) *opt_p = sp->sigc[which].prob; + return eslOK; +} + + +/* Function: p7_spensemble_Destroy() + * Synopsis: Deallocate a + * Incept: SRE, Wed Jan 9 11:42:01 2008 [Janelia] + * + * Purpose: Destroys a . + */ +void +p7_spensemble_Destroy(P7_SPENSEMBLE *sp) +{ + if (sp == NULL) return; + if (sp->sp != NULL) free(sp->sp); + if (sp->workspace != NULL) free(sp->workspace); + if (sp->assignment != NULL) free(sp->assignment); + if (sp->epc != NULL) free(sp->epc); + if (sp->sigc != NULL) free(sp->sigc); + free(sp); +} + + + +/***************************************************************** + * Benchmark and example. + *****************************************************************/ + +#ifdef p7SPENSEMBLE_EXAMPLE +/* + gcc -g -I. -L. -I ../easel -L ../easel -Dp7SPENSEMBLE_EXAMPLE -o example p7_spensemble.c -lhmmer -leasel -lm + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_alphabet.h" +#include "esl_dmatrix.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_cluster.h" +#include "esl_vectorops.h" +#include "esl_stopwatch.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-N", eslARG_INT, "1000", NULL, NULL, NULL, NULL, NULL, "number of trace samples to take", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "example, test, benchmark of defining domains by posterior sampling"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + char *hmmfile = esl_opt_GetArg(go, 1); + char *seqfile = esl_opt_GetArg(go, 2); + int format = eslSQFILE_FASTA; + ESL_ALPHABET *abc = NULL; + P7_HMMFILE *hfp = NULL; + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_OMX *fwd = NULL; + ESL_SQ *sq = NULL; + ESL_SQFILE *sqfp = NULL; + P7_TRACE *tr = NULL; + P7_SPENSEMBLE *sp = NULL; + int N = esl_opt_GetInteger(go, "-N"); + int t,d,nc; + int i,j,k,m; + float sc; + float prob; + int status; + + /* Read in one HMM */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM"); + p7_hmmfile_Close(hfp); + + /* Read in one sequence */ + sq = esl_sq_CreateDigital(abc); + status = esl_sqfile_Open(seqfile, format, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("No such file."); + else if (status == eslEFORMAT) p7_Fail("Format unrecognized."); + else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz."); + else if (status != eslOK) p7_Fail("Open failed, code %d.", status); + if (esl_sqio_Read(sqfp, sq) != eslOK) p7_Fail("Failed to read sequence"); + esl_sqfile_Close(sqfp); + + /* Configure a profile from the HMM */ + bg = p7_bg_Create(abc); + p7_bg_SetLength(bg, sq->n); + gm = p7_profile_Create(hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL); + p7_oprofile_Convert(gm, om); + p7_oprofile_ReconfigLength(om, sq->n); + + /* Allocate DP matrix for Forward, and run a Forward calculation in it */ + fwd = p7_omx_Create(gm->M, sq->n, sq->n); + p7_Forward (sq->dsq, sq->n, om, fwd, &sc); + + /* Allocate a trace container, and an spensemble */ + tr = p7_trace_Create(); + sp = p7_spensemble_Create(1024, 64, 32); + + /* Start the stopwatch. Now we're in domain processing steps. */ + esl_stopwatch_Start(w); + + /* Collect N traces, add their domain coords to the ensemble, and cluster */ + for (t = 0; t < N; t++) { + p7_StochasticTrace(r, sq->dsq, sq->n, om, fwd, tr); + p7_trace_Index(tr); + + for (d = 0; d < tr->ndom; d++) + p7_spensemble_Add(sp, t, tr->sqfrom[d], tr->sqto[d], tr->hmmfrom[d], tr->hmmto[d]); + p7_trace_Reuse(tr); + } + p7_spensemble_Cluster(sp, 0.8, TRUE, 4, 0.25, 0.02, &nc); + for (d = 0; d < nc; d++) { + p7_spensemble_GetClusterCoords(sp, d, &i, &j, &k, &m, &prob); + printf("domain %-4d : %6d %6d %6d %6d p=%.4f\n", d, i, j, k, m, prob); + } + + /* Done. */ + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "# CPU time: "); + + p7_spensemble_Destroy(sp); + p7_trace_Destroy(tr); + esl_sq_Destroy(sq); + p7_omx_Destroy(fwd); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7SPENSEMBLE_EXAMPLE*/ diff --git a/bioinformaticsProject/hmmer/src/p7_tophits.c b/bioinformaticsProject/hmmer/src/p7_tophits.c new file mode 100644 index 0000000..6dccbdb --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_tophits.c @@ -0,0 +1,2198 @@ +/* P7_TOPHITS: implementation of ranked list of top-scoring hits + * + * Contents: + * 1. The P7_TOPHITS object. + * 2. Standard (human-readable) output of pipeline results. + * 3. Tabular (parsable) output of pipeline results. + * 4. Benchmark driver. + * 5. Test driver. + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "hmmer.h" + +/***************************************************************** + *= 1. The P7_TOPHITS object + *****************************************************************/ + +/* Function: p7_tophits_Create() + * Synopsis: Allocate a hit list. + * + * Purpose: Allocates a new hit list and return a pointer + * to it. + * + * Throws: on allocation failure. + */ +P7_TOPHITS * +p7_tophits_Create(void) +{ + P7_TOPHITS *h = NULL; + int default_nalloc = 256; + int status; + + ESL_ALLOC(h, sizeof(P7_TOPHITS)); + h->hit = NULL; + h->unsrt = NULL; + + ESL_ALLOC(h->hit, sizeof(P7_HIT *) * default_nalloc); + ESL_ALLOC(h->unsrt, sizeof(P7_HIT) * default_nalloc); + h->Nalloc = default_nalloc; + h->N = 0; + h->nreported = 0; + h->nincluded = 0; + h->is_sorted_by_sortkey = TRUE; /* but only because there's 0 hits */ + h->is_sorted_by_seqidx = FALSE; + h->hit[0] = h->unsrt; /* if you're going to call it "sorted" when it contains just one hit, you need this */ + return h; + + ERROR: + p7_tophits_Destroy(h); + return NULL; +} + + +/* Function: p7_tophits_Grow() + * Synopsis: Reallocates a larger hit list, if needed. + * + * Purpose: If list cannot hold another hit, doubles + * the internal allocation. + * + * Returns: on success. + * + * Throws: on allocation failure; in this case, + * the data in are unchanged. + */ +int +p7_tophits_Grow(P7_TOPHITS *h) +{ + void *p; + P7_HIT *ori = h->unsrt; + uint64_t Nalloc = h->Nalloc * 2; /* grow by doubling */ + int i; + int status; + + if (h->N < h->Nalloc) return eslOK; /* we have enough room for another hit */ + + ESL_RALLOC(h->hit, p, sizeof(P7_HIT *) * Nalloc); + ESL_RALLOC(h->unsrt, p, sizeof(P7_HIT) * Nalloc); + + /* If we grow a sorted list, we have to translate the pointers + * in h->hit, because h->unsrt might have just moved in memory. + */ + if (h->is_sorted_by_seqidx || h->is_sorted_by_sortkey) + { + for (i = 0; i < h->N; i++) + h->hit[i] = h->unsrt + (h->hit[i] - ori); + } + + h->Nalloc = Nalloc; + return eslOK; + + ERROR: + return eslEMEM; +} + + +/* Function: p7_tophits_CreateNextHit() + * Synopsis: Get pointer to new structure for recording a hit. + * + * Purpose: Ask the top hits object to do any necessary + * internal allocation and bookkeeping to add a new, + * empty hit to its list; return a pointer to + * this new structure for data to be filled + * in by the caller. + * + * Returns: on success. + * + * Throws: on allocation error. + */ +int +p7_tophits_CreateNextHit(P7_TOPHITS *h, P7_HIT **ret_hit) +{ + P7_HIT *hit = NULL; + int status; + + if ((status = p7_tophits_Grow(h)) != eslOK) goto ERROR; + + hit = &(h->unsrt[h->N]); + h->N++; + if (h->N >= 2) + { + h->is_sorted_by_seqidx = FALSE; + h->is_sorted_by_sortkey = FALSE; + } + + hit->name = NULL; + hit->acc = NULL; + hit->desc = NULL; + hit->sortkey = 0.0; + + hit->score = 0.0; + hit->pre_score = 0.0; + hit->sum_score = 0.0; + + hit->lnP = 0.0; + hit->pre_lnP = 0.0; + hit->sum_lnP = 0.0; + + hit->ndom = 0; + hit->nexpected = 0.0; + hit->nregions = 0; + hit->nclustered = 0; + hit->noverlaps = 0; + hit->nenvelopes = 0; + + hit->flags = p7_HITFLAGS_DEFAULT; + hit->nreported = 0; + hit->nincluded = 0; + hit->best_domain = -1; + hit->dcl = NULL; + hit->offset = 0; + + *ret_hit = hit; + return eslOK; + + ERROR: + *ret_hit = NULL; + return status; +} + + + +/* Function: p7_tophits_Add() + * Synopsis: Add a hit to the top hits list. + * + * Purpose: Adds a hit to the top hits list . + * + * , , and are copied, so caller may free + * them if it likes. + * + * Only the pointer is kept. Caller turns over memory + * management of to the top hits object; will + * be free'd when the top hits structure is free'd. + * + * Args: h - active top hit list + * name - name of target + * acc - accession of target (may be NULL) + * desc - description of target (may be NULL) + * sortkey - value to sort by: bigger is better + * score - score of this hit + * lnP - log P-value of this hit + * mothersc - score of parent whole sequence + * mother_lnP - log P-value of parent whole sequence + * sqfrom - 1..L pos in target seq of start + * sqto - 1..L pos; sqfrom > sqto if rev comp + * sqlen - length of sequence, L + * hmmfrom - 0..M+1 pos in HMM of start + * hmmto - 0..M+1 pos in HMM of end + * hmmlen - length of HMM, M + * domidx - number of this domain + * ndom - total # of domains in sequence + * ali - optional printable alignment info + * + * Returns: on success. + * + * Throws: if reallocation failed. + * + * Note: Is this actually used anywhere? (SRE, 10 Dec 08) + * I think it's not up to date. + * + * That's right. This function is obsolete. + * But it is used in benchmark and test code, so you can't + * delete it yet; benchmarks and test code should be + * revised (SRE, 26 Oct 09) + */ +int +p7_tophits_Add(P7_TOPHITS *h, + char *name, char *acc, char *desc, + double sortkey, + float score, double lnP, + float mothersc, double mother_lnP, + int sqfrom, int sqto, int sqlen, + int hmmfrom, int hmmto, int hmmlen, + int domidx, int ndom, + P7_ALIDISPLAY *ali) +{ + int status; + + if ((status = p7_tophits_Grow(h)) != eslOK) return status; + if ((status = esl_strdup(name, -1, &(h->unsrt[h->N].name))) != eslOK) return status; + if ((status = esl_strdup(acc, -1, &(h->unsrt[h->N].acc))) != eslOK) return status; + if ((status = esl_strdup(desc, -1, &(h->unsrt[h->N].desc))) != eslOK) return status; + h->unsrt[h->N].sortkey = sortkey; + h->unsrt[h->N].score = score; + h->unsrt[h->N].pre_score = 0.0; + h->unsrt[h->N].sum_score = 0.0; + h->unsrt[h->N].lnP = lnP; + h->unsrt[h->N].pre_lnP = 0.0; + h->unsrt[h->N].sum_lnP = 0.0; + h->unsrt[h->N].nexpected = 0; + h->unsrt[h->N].nregions = 0; + h->unsrt[h->N].nclustered = 0; + h->unsrt[h->N].noverlaps = 0; + h->unsrt[h->N].nenvelopes = 0; + h->unsrt[h->N].ndom = ndom; + h->unsrt[h->N].flags = 0; + h->unsrt[h->N].nreported = 0; + h->unsrt[h->N].nincluded = 0; + h->unsrt[h->N].best_domain= 0; + h->unsrt[h->N].dcl = NULL; + h->N++; + + if (h->N >= 2) { + h->is_sorted_by_seqidx = FALSE; + h->is_sorted_by_sortkey = FALSE; + } + return eslOK; +} + +/* hit_sorter(): qsort's pawn, below */ +static int +hit_sorter_by_sortkey(const void *vh1, const void *vh2) +{ + P7_HIT *h1 = *((P7_HIT **) vh1); /* don't ask. don't change. Don't Panic. */ + P7_HIT *h2 = *((P7_HIT **) vh2); + int c; + + if (h1->sortkey < h2->sortkey) return 1; + else if (h1->sortkey > h2->sortkey) return -1; + else { + if ( (c = strcmp(h1->name, h2->name)) != 0) return c; + + /* if on different strand, the positive strand goes first, else use position */ + int dir1 = (h1->dcl[0].iali < h1->dcl[0].jali ? 1 : -1); + int dir2 = (h2->dcl[0].iali < h2->dcl[0].jali ? 1 : -1); + if (dir1 != dir2) return dir2; // so if dir1 is pos (1), and dir2 is neg (-1), this will return -1, placing h1 before h2; otherwise, vice versa + else { + if (h1->dcl[0].iali > h2->dcl[0].iali) return 1; + else if(h1->dcl[0].iali < h2->dcl[0].iali) return -1; + else return 0; + } + } +} + +/* used before duplicate hit removal in an nhmmer longtarget pipeline: */ +static int +hit_sorter_by_seqidx_aliposition(const void *vh1, const void *vh2) +{ + P7_HIT *h1 = *((P7_HIT **) vh1); + P7_HIT *h2 = *((P7_HIT **) vh2); + int64_t s1, e1, s2, e2; + int dir1, dir2; + + if (h1->seqidx > h2->seqidx) return 1; /* first key, seq_idx (unique id for sequences), low to high */ + else if (h1->seqidx < h2->seqidx) return -1; + + // if on different strand, the positive strand goes first, else use position + s1 = h1->dcl[0].iali; e1 = h1->dcl[0].jali; if (s1 < e1) { dir1 = 1; } else { dir1 = -1; ESL_SWAP(s1, e1, int64_t); } + s2 = h2->dcl[0].iali; e2 = h2->dcl[0].jali; if (s2 < e2) { dir2 = 1; } else { dir2 = -1; ESL_SWAP(s2, e2, int64_t); } + + if (dir1 != dir2) return dir2; // so if dir1 is pos (1), and dir2 is neg (-1), this will return -1, placing h1 before h2; otherwise, vice versa + + if (s1 > s2) return 1; // sort primarily from smallest to largest start pos + else if (s1 < s2) return -1; + else if (e1 < e2) return 1; // secondarily, larger to smallest end position (i.e. longer hit first) + else if (e1 > e2) return -1; + else return 0; +} + +/* similarly, for nhmmscan longtarget pipeline: */ +static int +hit_sorter_by_modelname_aliposition(const void *vh1, const void *vh2) +{ + P7_HIT *h1 = *((P7_HIT **) vh1); + P7_HIT *h2 = *((P7_HIT **) vh2); + int64_t s1, e1, s2, e2; + int dir1, dir2; + int res; + + if ( ( res = esl_strcmp(h1->name, h2->name)) != 0 ) return res; /* first key, seq_idx (unique id for sequences), low to high */ + + s1 = h1->dcl[0].iali; e1 = h1->dcl[0].jali; if (s1 < e1) { dir1 = 1; } else { dir1 = -1; ESL_SWAP(s1, e1, int64_t); } + s2 = h2->dcl[0].iali; e2 = h2->dcl[0].jali; if (s2 < e2) { dir2 = 1; } else { dir2 = -1; ESL_SWAP(s2, e2, int64_t); } + + if (dir1 != dir2) return dir2; + + if (s1 > s2) return 1; + else if (s1 < s2) return -1; + else if (e1 < e2) return 1; + else if (e1 > e2) return -1; + else return 0; +} + + +/* Function: p7_tophits_SortBySortkey() + * Synopsis: Sorts a hit list. + * + * Purpose: Sorts a top hit list. After this call, + * hit[i]> points to the i'th ranked + * for all N> hits. + * + * Returns: on success. + */ +int +p7_tophits_SortBySortkey(P7_TOPHITS *h) +{ + int i; + + if (h->is_sorted_by_sortkey) return eslOK; + for (i = 0; i < h->N; i++) h->hit[i] = h->unsrt + i; + if (h->N > 1) qsort(h->hit, h->N, sizeof(P7_HIT *), hit_sorter_by_sortkey); + h->is_sorted_by_seqidx = FALSE; + h->is_sorted_by_sortkey = TRUE; + return eslOK; +} + + +/* Function: p7_tophits_SortBySeqidxAndAlipos() + * Synopsis: Sorts a hit list by sequence index and position for nhmmer. + * sequence at which the hit's first domain begins (used in nhmmer) + * + * Purpose: Sorts a top hit list, suitable for subsequent hit + * duplicate removal by `p7_tophits_RemoveDuplicates()` in + * an nhmmer longtarget pipeline: by sequence index, then + * by strand (+ before - hits), then by smallest-to-largest + * start position (in watson coords), then by + * largest-to-smallest end position (in watson + * coords). Correctness of logic of + * `p7_tophits_RemoveDuplicates()` is sensitive to this + * ordering. + * + * After this call, hit[i]> points to the i'th ranked + * for all N> hits. + * + * Returns: on success. + */ +int +p7_tophits_SortBySeqidxAndAlipos(P7_TOPHITS *h) +{ + int i; + + if (h->is_sorted_by_seqidx) return eslOK; + for (i = 0; i < h->N; i++) h->hit[i] = h->unsrt + i; + if (h->N > 1) qsort(h->hit, h->N, sizeof(P7_HIT *), hit_sorter_by_seqidx_aliposition); + h->is_sorted_by_sortkey = FALSE; + h->is_sorted_by_seqidx = TRUE; + return eslOK; +} + +/* Function: p7_tophits_SortByModelnameAndAlipos() + * Synopsis: Sorts a hit list by model name and position for nhmmscan. + * + * Purpose: Like `p7_tophits_SortBySeqidxAndAlipos()` but for + * nhmmscan, which sorts on model name not target seq idx. + * + * Returns: on success. + */ +int +p7_tophits_SortByModelnameAndAlipos(P7_TOPHITS *h) +{ + int i; + + if (h->is_sorted_by_seqidx) return eslOK; + for (i = 0; i < h->N; i++) h->hit[i] = h->unsrt + i; + if (h->N > 1) qsort(h->hit, h->N, sizeof(P7_HIT *), hit_sorter_by_modelname_aliposition); + h->is_sorted_by_sortkey = FALSE; + h->is_sorted_by_seqidx = TRUE; + return eslOK; +} + + +/* Function: p7_tophits_Merge() + * Synopsis: Merge two top hits lists. + * + * Purpose: Merge

into

. Upon return,

+ * contains the sorted, merged list.

+ * is effectively destroyed; caller should + * not access it further, and may as well free + * it immediately. + * + * Returns: on success. + * + * Throws: on allocation failure, and + * both

and

remain valid. + */ +int +p7_tophits_Merge(P7_TOPHITS *h1, P7_TOPHITS *h2) +{ + void *p; + P7_HIT **new_hit = NULL; + P7_HIT *ori1 = h1->unsrt; /* original base of h1's data */ + P7_HIT *new2; + int i,j,k; + uint64_t Nalloc = h1->N + h2->N; + int status; + + if(h2->N <= 0) return eslOK; + + /* Make sure the two lists are sorted */ + if ((status = p7_tophits_SortBySortkey(h1)) != eslOK) goto ERROR; + if ((status = p7_tophits_SortBySortkey(h2)) != eslOK) goto ERROR; + + /* Attempt our allocations, so we fail early if we fail. + * Reallocating h1->unsrt screws up h1->hit, so fix it. + */ + ESL_RALLOC(h1->unsrt, p, sizeof(P7_HIT) * Nalloc); + ESL_ALLOC (new_hit, sizeof(P7_HIT *) * Nalloc); + for (i = 0; i < h1->N; i++) + h1->hit[i] = h1->unsrt + (h1->hit[i] - ori1); + + /* Append h2's unsorted data array to h1. h2's data begin at */ + new2 = h1->unsrt + h1->N; + memcpy(new2, h2->unsrt, sizeof(P7_HIT) * h2->N); + + /* Merge the sorted hit lists */ + for (i=0,j=0,k=0; i < h1->N && j < h2->N ; k++) + new_hit[k] = (hit_sorter_by_sortkey(&h1->hit[i], &h2->hit[j]) > 0) ? new2 + (h2->hit[j++] - h2->unsrt) : h1->hit[i++]; + while (i < h1->N) new_hit[k++] = h1->hit[i++]; + while (j < h2->N) new_hit[k++] = new2 + (h2->hit[j++] - h2->unsrt); + + /* h2 now turns over management of name, acc, desc memory to h1; + * nullify its pointers, to prevent double free. */ + for (i = 0; i < h2->N; i++) + { + h2->unsrt[i].name = NULL; + h2->unsrt[i].acc = NULL; + h2->unsrt[i].desc = NULL; + h2->unsrt[i].dcl = NULL; + } + + /* Construct the new grown h1 */ + free(h1->hit); + h1->hit = new_hit; + h1->Nalloc = Nalloc; + h1->N += h2->N; + /* and is_sorted is TRUE, as a side effect of p7_tophits_Sort() above. */ + return eslOK; + + ERROR: + if (new_hit != NULL) free(new_hit); + return status; +} + +/* Function: p7_tophits_GetMaxPositionLength() + * Synopsis: Returns maximum position length in hit list (targets). + * + * Purpose: Returns the length of the longest hit location (start/end) + * of all the registered hits, in chars. This is useful when + * deciding how to format output. + * + * The maximum is taken over all registered hits. This + * opens a possible side effect: caller might print only + * the top hits, and the max name length in these top hits + * may be different than the max length over all the hits. + * + * Used specifically for nhmmer output, so expects only one + * domain per hit + * + * If there are no hits in , or none of the + * hits have names, returns 0. + */ +int +p7_tophits_GetMaxPositionLength(P7_TOPHITS *h) +{ + int64_t i; + int max = 0; + int n; + char buffer [26]; // SRE: this was [13], not sufficient for int64. + // rule of thumb: 3*sizeof(int) + 2 + + for (i = 0; i < h->N; i++) { + if (h->unsrt[i].dcl[0].iali > 0) { + n = sprintf (buffer, "%" PRId64 "", h->unsrt[i].dcl[0].iali); + max = ESL_MAX(n, max); + n = sprintf (buffer, "%" PRId64 "", h->unsrt[i].dcl[0].jali); + max = ESL_MAX(n, max); + } + } + return max; +} + +/* Function: p7_tophits_GetMaxNameLength() + * Synopsis: Returns maximum name length in hit list (targets). + * + * Purpose: Returns the maximum name length of all the registered + * hits, in chars. This is useful when deciding how to + * format output. + * + * The maximum is taken over all registered hits. This + * opens a possible side effect: caller might print only + * the top hits, and the max name length in these top hits + * may be different than the max length over all the hits. + * + * If there are no hits in , or none of the + * hits have names, returns 0. + */ +int +p7_tophits_GetMaxNameLength(P7_TOPHITS *h) +{ + int i, max, n; + for (max = 0, i = 0; i < h->N; i++) + if (h->unsrt[i].name != NULL) { + n = strlen(h->unsrt[i].name); + max = ESL_MAX(n, max); + } + return max; +} + +/* Function: p7_tophits_GetMaxAccessionLength() + * Synopsis: Returns maximum accession length in hit list (targets). + * + * Purpose: Same as , but for + * accessions. If there are no hits in , or none + * of the hits have accessions, returns 0. + */ +int +p7_tophits_GetMaxAccessionLength(P7_TOPHITS *h) +{ + int i, max, n; + for (max = 0, i = 0; i < h->N; i++) + if (h->unsrt[i].acc != NULL) { + n = strlen(h->unsrt[i].acc); + max = ESL_MAX(n, max); + } + return max; +} + +/* Function: p7_tophits_GetMaxShownLength() + * Synopsis: Returns max shown name/accession length in hit list. + * + * Purpose: Same as , but + * for the case when --acc is on, where + * we show accession if one is available, and + * fall back to showing the name if it is not. + * Returns the max length of whatever is being + * shown as the reported "name". + */ +int +p7_tophits_GetMaxShownLength(P7_TOPHITS *h) +{ + int i, max, n; + for (max = 0, i = 0; i < h->N; i++) + { + if (h->unsrt[i].acc != NULL && h->unsrt[i].acc[0] != '\0') + { + n = strlen(h->unsrt[i].acc); + max = ESL_MAX(n, max); + } + else if (h->unsrt[i].name != NULL) + { + n = strlen(h->unsrt[i].name); + max = ESL_MAX(n, max); + } + } + return max; +} + + +/* Function: p7_tophits_Reuse() + * Synopsis: Reuse a hit list, freeing internals. + * + * Purpose: Reuse the tophits list ; save as + * many malloc/free cycles as possible, + * as opposed to 'ing it and + * 'ing a new one. + */ +int +p7_tophits_Reuse(P7_TOPHITS *h) +{ + int i, j; + + if (h == NULL) return eslOK; + if (h->unsrt != NULL) + { + for (i = 0; i < h->N; i++) + { + if (h->unsrt[i].name != NULL) free(h->unsrt[i].name); + if (h->unsrt[i].acc != NULL) free(h->unsrt[i].acc); + if (h->unsrt[i].desc != NULL) free(h->unsrt[i].desc); + if (h->unsrt[i].dcl != NULL) { + for (j = 0; j < h->unsrt[i].ndom; j++) + if (h->unsrt[i].dcl[j].ad != NULL) p7_alidisplay_Destroy(h->unsrt[i].dcl[j].ad); + free(h->unsrt[i].dcl); + } + } + } + h->N = 0; + h->is_sorted_by_seqidx = FALSE; + h->is_sorted_by_sortkey = TRUE; /* because there are 0 hits */ + h->hit[0] = h->unsrt; + return eslOK; +} + +/* Function: p7_tophits_Destroy() + * Synopsis: Frees a hit list. + */ +void +p7_tophits_Destroy(P7_TOPHITS *h) +{ + int i,j; + if (h == NULL) return; + if (h->hit != NULL) free(h->hit); + if (h->unsrt != NULL) + { + for (i = 0; i < h->N; i++) + { + if (h->unsrt[i].name != NULL) free(h->unsrt[i].name); + if (h->unsrt[i].acc != NULL) free(h->unsrt[i].acc); + if (h->unsrt[i].desc != NULL) free(h->unsrt[i].desc); + if (h->unsrt[i].dcl != NULL) { + for (j = 0; j < h->unsrt[i].ndom; j++) { + if (h->unsrt[i].dcl[j].ad != NULL) p7_alidisplay_Destroy(h->unsrt[i].dcl[j].ad); + if (h->unsrt[i].dcl[j].scores_per_pos != NULL) free (h->unsrt[i].dcl->scores_per_pos); + } + free(h->unsrt[i].dcl); + } + } + free(h->unsrt); + } + free(h); + return; +} +/*---------------- end, P7_TOPHITS object -----------------------*/ + + + + + + +/***************************************************************** + * 2. Standard (human-readable) output of pipeline results + *****************************************************************/ + +/* workaround_bug_h74(): + * Different envelopes, identical alignment + * + * Bug #h74, though extremely rare, arises from a limitation in H3's + * implementation of Forward/Backward, as follows: + * + * 1. A multidomain region is analyzed by stochastic clustering + * 2. Overlapping envelopes are found (w.r.t sequence coords), though + * trace clusters are distinct if HMM endpoints are also considered. + * 3. We have no facility for limiting Forward/Backward to a specified + * range of profile coordinates, so each envelope is passed to + * rescore_isolated_domain() and analyzed independently. + * 4. Optimal accuracy alignment may identify exactly the same alignment + * in the overlap region shared by the two envelopes. + * + * The disturbing result is two different envelopes that have + * identical alignments and alignment endpoints. + * + * The correct fix is to define envelopes not only by sequence + * endpoints but also by profile endpoints, passing them to + * rescore_isolated_domain(), and limiting F/B calculations to this + * pieces of the DP lattice. This requires a fair amount of work, + * adding to the optimized API. + * + * The workaround is to detect when there are duplicate alignments, + * and only display one. We show the one with the best bit score. + * + * If we ever implement envelope-limited versions of F/B, revisit this + * fix. + * + * SRE, Tue Dec 22 16:27:04 2009 + * xref J5/130; notebook/2009/1222-hmmer-bug-h74 + */ +static int +workaround_bug_h74(P7_TOPHITS *th) +{ + int h; + int d1, d2; + int dremoved; + + for (h = 0; h < th->N; h++) + if (th->hit[h]->noverlaps) + { + for (d1 = 0; d1 < th->hit[h]->ndom; d1++) + for (d2 = d1+1; d2 < th->hit[h]->ndom; d2++) + if (th->hit[h]->dcl[d1].iali == th->hit[h]->dcl[d2].iali && + th->hit[h]->dcl[d1].jali == th->hit[h]->dcl[d2].jali) + { + dremoved = (th->hit[h]->dcl[d1].bitscore >= th->hit[h]->dcl[d2].bitscore) ? d2 : d1; + if (th->hit[h]->dcl[dremoved].is_reported) { th->hit[h]->dcl[dremoved].is_reported = FALSE; th->hit[h]->nreported--; } + if (th->hit[h]->dcl[dremoved].is_included) { th->hit[h]->dcl[dremoved].is_included = FALSE; th->hit[h]->nincluded--; } + } + } + return eslOK; +} + + + +/* Function: p7_tophits_ComputeNhmmerEvalues() + * Synopsis: Compute e-values based on pvalues and window sizes. + * + * Purpose: After nhmmer pipeline has completed, the th object contains + * hits where the p-values haven't yet been converted to + * e-values. That modification depends on an established + * number of sequences. In nhmmer, this is computed as N/W, + * for a database of N residues, where W is some standardized + * window length (nhmmer passes om->max_length). E-values are + * set here based on that formula. We also set the sortkey so + * the output will be sorted correctly. + * + * Returns: on success. + */ +int +p7_tophits_ComputeNhmmerEvalues(P7_TOPHITS *th, double N, int W) +{ + int i; /* counters over hits */ + + for (i = 0; i < th->N ; i++) + { + th->unsrt[i].lnP += log((float)N / (float)W); + th->unsrt[i].dcl[0].lnP = th->unsrt[i].lnP; + th->unsrt[i].sortkey = -1.0 * th->unsrt[i].lnP; + } + return eslOK; +} + + +/* Function: p7_tophits_RemoveDuplicates() + * Synopsis: Remove overlapping hits. + * + * Purpose: After nhmmer pipeline has completed, the TopHits object may + * contain duplicates if the target was broken into overlapping + * windows. Scan through, and remove duplicates. Since the + * duplicates may be incomplete (one sequence is a partial + * hit because it's window didn't cover the full length of + * the hit), keep the one with better p-value + * + * Returns: on success. + */ +int +p7_tophits_RemoveDuplicates(P7_TOPHITS *th, int using_bit_cutoffs) +{ + int i; /* counter over hits */ + int j; /* previous un-duplicated hit */ + int s_i, s_j, e_i, e_j, dir_i, dir_j, len_i, len_j; + int intersect_alistart, intersect_aliend, intersect_alilen; + int intersect_hmmstart, intersect_hmmend, intersect_hmmlen; + double p_i, p_j; + int remove; + + if (th->N<2) return eslOK; + + j=0; + for (i = 1; i < th->N; i++) + { + p_j = th->hit[j]->lnP; + s_j = th->hit[j]->dcl[0].iali; + e_j = th->hit[j]->dcl[0].jali; + dir_j = (s_j < e_j ? 1 : -1); + if (dir_j == -1) ESL_SWAP(s_j, e_j, int); + len_j = e_j - s_j + 1 ; + + p_i = th->hit[i]->lnP; + s_i = th->hit[i]->dcl[0].iali; + e_i = th->hit[i]->dcl[0].jali; + dir_i = (s_i < e_i ? 1 : -1); + if (dir_i == -1) ESL_SWAP(s_i, e_i, int); + len_i = e_i - s_i + 1 ; + + // these will only matter if seqidx and strand are the same + intersect_alistart = s_i>s_j ? s_i : s_j; + intersect_aliend = e_ihit[i]->dcl[0].ad->hmmfrom > th->hit[j]->dcl[0].ad->hmmfrom) ? th->hit[i]->dcl[0].ad->hmmfrom : th->hit[j]->dcl[0].ad->hmmfrom; + intersect_hmmend = (th->hit[i]->dcl[0].ad->hmmto < th->hit[j]->dcl[0].ad->hmmto) ? th->hit[i]->dcl[0].ad->hmmto : th->hit[j]->dcl[0].ad->hmmto; + intersect_hmmlen = intersect_hmmend - intersect_hmmstart + 1; + + if ( esl_strcmp(th->hit[i]->name, th->hit[i-1]->name) == 0 && // same model + th->hit[i]->seqidx == th->hit[i-1]->seqidx && // same source sequence + dir_i == dir_j && // only bother removing if the overlapping hits are on the same strand + intersect_hmmlen > 0 && // only if they're both hitting similar parts of the model + ( + ( s_i >= s_j-3 && s_i <= s_j+3) || // at least one side is essentially flush + ( e_i >= e_j-3 && e_i <= e_j+3) || + ( intersect_alilen >= len_i * 0.95) || // or one of the hits covers >90% of the other + ( intersect_alilen >= len_j * 0.95) + )) + { + /* Force one to go unreported. I prefer to keep the one with the + * better e-value. This addresses two issues + * (1) longer hits sometimes encounter higher bias corrections, + * leading to lower scores; seems better to focus on the + * high-scoring heart of the alignment, if we have a + * choice + * (2) it is possible that a lower-scoring longer hit (see #1) + * that is close to threshold will pass the pipeline in + * one condition and not the other (e.g. --toponly, or + * single vs multi threaded), and if longer hits obscure + * shorter higher-scoring ones, a shorter "hit" might be + * lost by being obscured by a longer one that is subsequently + * removed due to insufficient score. + * see late notes in ~wheelert/notebook/2012/0518-dfam-scripts/00NOTES + */ + //remove = 0; // 1 := keep i, 0 := keep i-1 + remove = p_i < p_j ? j : i; + + th->hit[remove]->flags |= p7_IS_DUPLICATE; + if (using_bit_cutoffs) { // report/include flags were already included, need to remove them here + th->hit[remove]->flags &= ~p7_IS_REPORTED; + th->hit[remove]->flags &= ~p7_IS_INCLUDED; + } + + j = (remove == j ? i : j); + } + else j = i; + } + return eslOK; +} + + + +/* Function: p7_tophits_Threshold() + * Synopsis: Apply score and E-value thresholds to a hitlist before output. + * + * Purpose: After a pipeline has completed, go through it and mark all + * the targets and domains that are "significant" (satisfying + * the reporting thresholds set for the pipeline). + * + * Also sets the final total number of reported and + * included targets, the number of reported and included + * targets in each target, and the size of the search space + * for per-domain conditional E-value calculations, + * domZ>. By default, domZ> is the number of + * significant targets reported. + * + * If model-specific thresholds were used in the pipeline, + * we cannot apply those thresholds now. They were already + * applied in the pipeline. In this case all we're + * responsible for here is counting them (setting + * nreported, nincluded counters). + * + * Returns: on success. + */ +int +p7_tophits_Threshold(P7_TOPHITS *th, P7_PIPELINE *pli) +{ + int h, d; /* counters over sequence hits, domains in sequences */ + + /* Flag reported, included targets (if we're using general thresholds) */ + if (! pli->use_bit_cutoffs) + { + for (h = 0; h < th->N; h++) + { + + if ( !(th->hit[h]->flags & p7_IS_DUPLICATE) && + p7_pli_TargetReportable(pli, th->hit[h]->score, th->hit[h]->lnP)) + { + th->hit[h]->flags |= p7_IS_REPORTED; + if (p7_pli_TargetIncludable(pli, th->hit[h]->score, th->hit[h]->lnP)) + th->hit[h]->flags |= p7_IS_INCLUDED; + + if (pli->long_targets) { // no domains in dna search, so: + th->hit[h]->dcl[0].is_reported = th->hit[h]->flags & p7_IS_REPORTED; + th->hit[h]->dcl[0].is_included = th->hit[h]->flags & p7_IS_INCLUDED; + } + } + } + } + + /* Count reported, included targets */ + th->nreported = 0; + th->nincluded = 0; + for (h = 0; h < th->N; h++) + { + if (th->hit[h]->flags & p7_IS_REPORTED) th->nreported++; + if (th->hit[h]->flags & p7_IS_INCLUDED) th->nincluded++; + } + + /* Now we can determined domZ, the effective search space in which additional domains are found */ + if (pli->domZ_setby == p7_ZSETBY_NTARGETS) pli->domZ = (double) th->nreported; + + + /* Second pass is over domains, flagging reportable/includable ones. + * Depends on knowing the domZ we just set. + * Note how this enforces a hierarchical logic of + * (sequence|domain) must be reported to be included, and + * domain can only be (reported|included) if whole sequence is too. + */ + if (! pli->use_bit_cutoffs && !pli->long_targets) + { + for (h = 0; h < th->N; h++) + { + if (th->hit[h]->flags & p7_IS_REPORTED) + { + for (d = 0; d < th->hit[h]->ndom; d++) + { + if (p7_pli_DomainReportable(pli, th->hit[h]->dcl[d].bitscore, th->hit[h]->dcl[d].lnP)) + th->hit[h]->dcl[d].is_reported = TRUE; + if ((th->hit[h]->flags & p7_IS_INCLUDED) && + p7_pli_DomainIncludable(pli, th->hit[h]->dcl[d].bitscore, th->hit[h]->dcl[d].lnP)) + th->hit[h]->dcl[d].is_included = TRUE; + } + } + } + } + + /* Count the reported, included domains */ + for (h = 0; h < th->N; h++) + for (d = 0; d < th->hit[h]->ndom; d++) + { + if (th->hit[h]->dcl[d].is_reported) th->hit[h]->nreported++; + if (th->hit[h]->dcl[d].is_included) th->hit[h]->nincluded++; + } + + workaround_bug_h74(th); /* blech. This function is defined above; see commentary and crossreferences there. */ + + return eslOK; +} + + + + + +/* Function: p7_tophits_CompareRanking() + * Synopsis: Compare current top hits to previous top hits ranking. + * + * Purpose: Using a keyhash of the previous top hits and the + * their ranks, look at the current top hits list

can't fit another state, double its allocation for + * traceback data. + * + * This doesn't reallocate the domain index; see + * or for + * that. + * + * Returns: on success. + * + * Throws: on allocation failure; in this case, the data in + * are unaffected. + */ +int +p7_trace_Grow(P7_TRACE *tr) +{ + void *tmp; + int status; + + if (tr->N < tr->nalloc) return eslOK; + + ESL_RALLOC(tr->st, tmp, sizeof(char) *2*tr->nalloc); + ESL_RALLOC(tr->k, tmp, sizeof(int) *2*tr->nalloc); + ESL_RALLOC(tr->i, tmp, sizeof(int) *2*tr->nalloc); + if (tr->pp != NULL) ESL_RALLOC(tr->pp, tmp, sizeof(float) *2*tr->nalloc); + tr->nalloc *= 2; + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_trace_GrowIndex() + * Synopsis: Grows the allocation of the trace's domain index. + * Incept: SRE, Fri Jan 4 10:40:02 2008 [Janelia] + * + * Purpose: If can't fit another domain in its index, + * double the allocation of the index in . + * + * Returns: on success. + * + * Throws: on allocation failure; in this case, the + * data in are unaffected. + */ +int +p7_trace_GrowIndex(P7_TRACE *tr) +{ + void *p; + int status; + + if (tr->ndom < tr->ndomalloc) return eslOK; + + ESL_RALLOC(tr->tfrom, p, sizeof(int)*2*tr->ndomalloc); + ESL_RALLOC(tr->tto, p, sizeof(int)*2*tr->ndomalloc); + ESL_RALLOC(tr->sqfrom, p, sizeof(int)*2*tr->ndomalloc); + ESL_RALLOC(tr->sqto, p, sizeof(int)*2*tr->ndomalloc); + ESL_RALLOC(tr->hmmfrom, p, sizeof(int)*2*tr->ndomalloc); + ESL_RALLOC(tr->hmmto, p, sizeof(int)*2*tr->ndomalloc); + tr->ndomalloc *= 2; + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_trace_GrowTo() + * Synopsis: Reallocates trace to a given minimum size. + * + * Purpose: Reallocates a trace structure to hold a trace + * of at least length states. + * + * Returns: on success. + * + * Throws: on allocation failure; the data in + * are unaffected by failure. + */ +int +p7_trace_GrowTo(P7_TRACE *tr, int N) +{ + int status; + void *tmp; + + if (N < tr->nalloc) return eslOK; /* no-op */ + + ESL_RALLOC(tr->st, tmp, sizeof(char) *N); + ESL_RALLOC(tr->k, tmp, sizeof(int) *N); + ESL_RALLOC(tr->i, tmp, sizeof(int) *N); + if (tr->pp != NULL) ESL_RALLOC(tr->pp, tmp, sizeof(float) *N); + tr->nalloc = N; + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_trace_GrowIndexTo() + * Synopsis: Reallocates domain index for a given minimum number. + * Incept: SRE, Fri Jan 4 10:47:43 2008 [Janelia] + * + * Purpose: Reallocates the domain index in to index + * at least domains. + * + * Returns: on success. + * + * Throws: on allocation failure, in which case + * the data in are unaffected. + */ +int +p7_trace_GrowIndexTo(P7_TRACE *tr, int ndom) +{ + void *p; + int status; + + if (ndom < tr->ndomalloc) return eslOK; + + ESL_RALLOC(tr->tfrom, p, sizeof(int)*ndom); + ESL_RALLOC(tr->tto, p, sizeof(int)*ndom); + ESL_RALLOC(tr->sqfrom, p, sizeof(int)*ndom); + ESL_RALLOC(tr->sqto, p, sizeof(int)*ndom); + ESL_RALLOC(tr->hmmfrom, p, sizeof(int)*ndom); + ESL_RALLOC(tr->hmmto, p, sizeof(int)*ndom); + tr->ndomalloc = ndom; + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_trace_Destroy() + * Synopsis: Frees a trace. + * + * Purpose: Frees a trace structure . + * + * Returns: (void) + */ +void +p7_trace_Destroy(P7_TRACE *tr) +{ + if (tr == NULL) return; + if (tr->st != NULL) free(tr->st); + if (tr->k != NULL) free(tr->k); + if (tr->i != NULL) free(tr->i); + if (tr->pp != NULL) free(tr->pp); + if (tr->tfrom != NULL) free(tr->tfrom); + if (tr->tto != NULL) free(tr->tto); + if (tr->sqfrom != NULL) free(tr->sqfrom); + if (tr->sqto != NULL) free(tr->sqto); + if (tr->hmmfrom != NULL) free(tr->hmmfrom); + if (tr->hmmto != NULL) free(tr->hmmto); + free(tr); + return; +} + +/* Function: p7_trace_DestroyArray() + * + * Purpose: Frees an array of trace structures, . + * + * Returns: (void) + */ +void +p7_trace_DestroyArray(P7_TRACE **tr, int N) +{ + int idx; + + if (tr == NULL) return; + for (idx = 0; idx < N; idx++) + { + if (tr[idx] == NULL) continue; + p7_trace_Destroy(tr[idx]); + } + free(tr); + return; +} + +/*---------------------- end, P7_TRACE --------------------------*/ + + + + +/***************************************************************** + * 2. Access routines + *****************************************************************/ + +/* Function: p7_trace_GetDomainCount() + * Incept: SRE, Tue Feb 27 13:11:43 2007 [Janelia] + * + * Purpose: Determine the number of hits in the trace -- that is, + * the number of times the trace traverses the model from + * B...E. Return that number in . + * + * Done simply by counting the number of B states used in + * the trace. + * + * Only sensible on profile traces. Core traces have 1 + * domain by definition. + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + */ +int +p7_trace_GetDomainCount(const P7_TRACE *tr, int *ret_ndom) +{ + int z; + int ndom = 0; + + if (tr->ndom > 0) + ndom = tr->ndom; /* if we already indexed the domains, we know the answer */ + else { + for (z = 0; z < tr->N; z++) + if (tr->st[z] == p7T_B) ndom++; + } + *ret_ndom = ndom; + return eslOK; +} + +/* Function: p7_trace_GetStateUseCounts() + * Incept: SRE, Sun May 27 10:30:13 2007 [Janelia] + * + * Purpose: Accumulate counts of each different state type in trace . + * + * is allocated for at least + * integers, indexed by statetype. Upon return, + * contains the number of match states + * in the trace, for example. + */ +int +p7_trace_GetStateUseCounts(const P7_TRACE *tr, int *counts) +{ + int x,z; + + for (x = 0; x < p7T_NSTATETYPES; x++) counts[x] = 0; + + for (z = 0; z < tr->N; z++) { + x = tr->st[z]; + if (x < 0 || x >= p7T_NSTATETYPES) ESL_EXCEPTION(eslEINVAL, "bad state type"); + counts[x]++; + } + return eslOK; +} + +/* Function: p7_trace_GetDomainCoords() + * Incept: SRE, Tue Feb 27 13:08:32 2007 [Janelia] + * + * Purpose: Retrieve the bounds of domain alignment number in + * traceback . starts from 0. The total number + * of domains in a trace can be obtained from + * , or caller can just loop + * an increasing count until is returned. + * + * Start/end in the sequence are returned in , + * . Start/end in the model are returned in , + * . + * + * It only makes sense to call this function on profile + * traces. + * + * By local alignment bounds convention, the domain + * alignment is defined as bounded by match states, so + * and are the coords of the first and last match + * state (in range 1..M), and and are the coords + * of the residues aligned to those match states. Profiles + * do allow a Mk->DDD->E trailer; nonetheless, if such a + * trailer occurs, the k2 coord still refers to the last + * match state's coordinate. Note that such trailers would + * only occur in generated or sampled paths, not Viterbi + * paths; in Viterbi alignments with exit probabilities of + * 1.0, the direct Mk->E path will always have higher + * probability than a Mk->DDD->E path. + * + * Returns: on success, and the coords are returned. + * if the trace doesn't contain a 'th + * domain, and the coords are all returned as 0. + * + * Throws: if you stupidly pass a less than 0; + * if something is grievously wrong with . + */ +int +p7_trace_GetDomainCoords(const P7_TRACE *tr, int which, + int *ret_i1, int *ret_i2, int *ret_k1, int *ret_k2) +{ + int status; + int z; + + if (which < 0) ESL_XEXCEPTION(eslEINVAL, "bad which < 0"); + + if (tr->ndom) /* do we have an index? then this'll be easy */ + { + if (which >= tr->ndom) { status = eslEOD; goto ERROR; } + *ret_i1 = tr->sqfrom[which]; + *ret_i2 = tr->sqto[which]; + *ret_k1 = tr->hmmfrom[which]; + *ret_k2 = tr->hmmto[which]; + return eslOK; + } + + /* else, the hard way. + * skip z to one state past the which'th B state. + */ + for (z = 0; which >= 0 && z < tr->N; z++) + if (tr->st[z] == p7T_B) which--; + if (z == tr->N) { status = eslEOD; goto ERROR; } + + /* skip to the first M state and record i1,k1: + * in a profile trace, this must be the next state. + */ + if (tr->st[z] != p7T_M) ESL_XEXCEPTION(eslECORRUPT, "not a profile trace?"); + *ret_i1 = tr->i[z]; + *ret_k1 = tr->k[z]; + + /* skip to the end E, then look back at the last M, record i2,k2. + */ + for (; z < tr->N; z++) + if (tr->st[z] == p7T_E) break; + if (z == tr->N) ESL_EXCEPTION(eslECORRUPT, "invalid trace: no E for a B"); + do { z--; } while (tr->st[z] == p7T_D); /* roll back over any D trailer */ + if (tr->st[z] != p7T_M) ESL_EXCEPTION(eslECORRUPT, "invalid trace: no M"); + *ret_i2 = tr->i[z]; + *ret_k2 = tr->k[z]; + return eslOK; + + ERROR: + *ret_i1 = 0; + *ret_i2 = 0; + *ret_k1 = 0; + *ret_k2 = 0; + return status; +} +/*---------------- end, access routines -------------------------*/ + + + + +/***************************************************************** + * 3. Debugging tools. + *****************************************************************/ + +/* Function: p7_trace_Validate() + * Incept: SRE, Fri Jan 5 09:17:24 2007 [Janelia] + * + * Purpose: Validate the internal data in a trace structure + * representing an alignment of an HMM to a + * digital sequence . The digital sequence may be either + * unaligned (usually) or aligned (in the case of "fake" + * tracebacks generated from an MSA during a + * model construction process). + * + * We don't pass the HMM that the trace is associated with, + * because we might have constructed the trace during + * HMM construction when we don't have an HMM yet; but + * we always have a digital sequence. + * + * Intended for debugging, development, and testing + * purposes. + * + * Args: tr - trace to validate + * abc - alphabet corresponding to sequence + * sq - digital sequence that is explaining + * errbuf - NULL, or an error message buffer allocated + * for at least eslERRBUFSIZE chars. + * + * Returns: if trace appears fine. + * Returns if a problem is detected; if is + * provided (non-), an informative message is formatted + * there to indicate the reason for the failure. + */ +int +p7_trace_Validate(const P7_TRACE *tr, const ESL_ALPHABET *abc, const ESL_DSQ *dsq, char *errbuf) +{ + int z; /* position in trace */ + int i; /* position in sequence */ + int k; /* position in model */ + char prv; /* type of the previous state */ + int is_core; /* TRUE if trace is a core trace, not profile */ + + /* minimum trace length is a core's B->Mk->E. If we don't have at least that, + * we're definitely in trouble + */ + if (tr->N < 3) ESL_FAIL(eslFAIL, errbuf, "trace is too short"); + if (tr->N > tr->nalloc) ESL_FAIL(eslFAIL, errbuf, "N of %d isn't sensible", tr->N); + + /* Determine if this is a core trace or a profile trace, so we can + * construct validation tests appropriately. + */ + if (tr->st[0] == p7T_B) is_core = TRUE; + else if (tr->st[0] == p7T_S) is_core = FALSE; + else ESL_FAIL(eslFAIL, errbuf, "first state neither S nor B"); + + /* Verify "sentinels", the final states of the trace + * (before we start looking backwards and forwards from each state in + * our main validation loop) + */ + if (is_core && tr->st[tr->N-1] != p7T_E) ESL_FAIL(eslFAIL, errbuf, "last state not E"); + if (!is_core && tr->st[tr->N-1] != p7T_T) ESL_FAIL(eslFAIL, errbuf, "last state not T"); + if (tr->k[0] != 0) ESL_FAIL(eslFAIL, errbuf, "first state shouldn't have k set"); + if (tr->i[0] != 0) ESL_FAIL(eslFAIL, errbuf, "first state shouldn't have i set"); + if (tr->k[tr->N-1] != 0) ESL_FAIL(eslFAIL, errbuf, "last state shouldn't have k set"); + if (tr->i[tr->N-1] != 0) ESL_FAIL(eslFAIL, errbuf, "last state shouldn't have i set"); + + if (tr->pp != NULL && tr->pp[0] != 0.0) ESL_FAIL(eslFAIL, errbuf, "first state doesn't emit; but post prob isn't 0"); + if (tr->pp != NULL && tr->pp[tr->N-1] != 0.0) ESL_FAIL(eslFAIL, errbuf, "last state doesn't emit; but post prob isn't 0"); + + /* Main validation loop. */ + k = 0; + i = 1; + for (z = 1; z < tr->N-1; z++) + { + for (; dsq[i] != eslDSQ_SENTINEL; i++) /* find next non-gap residue in dsq */ + if (esl_abc_XIsResidue(abc, dsq[i]) || esl_abc_XIsNonresidue(abc, dsq[i])) break; /* '*' included as emitted "residue" */ + + /* watch out for missing data states X: can only be one. + * prv state might have to skip over one (but not more) missing data states + */ + prv = (tr->st[z-1] == p7T_X)? tr->st[z-2] : tr->st[z-1]; + + switch (tr->st[z]) { + case p7T_S: + ESL_FAIL(eslFAIL, errbuf, "S must be first state"); + break; + + case p7T_X: + if (! is_core) ESL_FAIL(eslFAIL, errbuf, "X state (missing data) only appears in core traces"); + if (prv != p7T_B && tr->st[z+1] != p7T_E) /* only B->X and X->E are possible */ + ESL_FAIL(eslFAIL, errbuf, "bad transition involving missing data (X state) not at start/end"); + break; + + case p7T_N: + if (is_core) ESL_FAIL(eslFAIL, errbuf, "core trace can't contain N"); + if (tr->k[z] != 0) ESL_FAIL(eslFAIL, errbuf, "no N should have k set"); + if (prv == p7T_S) { /* 1st N doesn't emit */ + if (tr->i[z] != 0) ESL_FAIL(eslFAIL, errbuf, "first N shouldn't have i set"); + if (tr->pp != NULL && tr->pp[z] != 0.0) ESL_FAIL(eslFAIL, errbuf, "first N can't have nonzero post prob"); + } else if (prv == p7T_N) { /* subsequent N's do */ + if (tr->i[z] != i) ESL_FAIL(eslFAIL, errbuf, "expected i doesn't match trace's i"); + i++; + } else ESL_FAIL(eslFAIL, errbuf, "bad transition to N; expected {S,N}->N"); + break; + + case p7T_B: + if (tr->k[z] != 0) ESL_FAIL(eslFAIL, errbuf, "B shouldn't have k set"); + if (tr->i[z] != 0) ESL_FAIL(eslFAIL, errbuf, "B shouldn't have i set"); + if (tr->pp != NULL && tr->pp[z] != 0.0) ESL_FAIL(eslFAIL, errbuf, "B can't have nonzero post prob"); + if (prv != p7T_N && prv != p7T_J) + ESL_FAIL(eslFAIL, errbuf, "bad transition to B; expected {N,J}->B"); + break; + + case p7T_M: + if (prv == p7T_B) k = tr->k[z]; else k++; /* on a B->Mk entry, trust k; else verify */ + + if (tr->k[z] != k) ESL_FAIL(eslFAIL, errbuf, "expected k doesn't match trace's k"); + if (tr->i[z] != i) ESL_FAIL(eslFAIL, errbuf, "expected i doesn't match trace's i"); + if (prv != p7T_B && prv != p7T_M && prv != p7T_D && prv != p7T_I) + ESL_FAIL(eslFAIL, errbuf, "bad transition to M; expected {B,M,D,I}->M"); + i++; + break; + + case p7T_D: + k++; + if (tr->st[z-1] == p7T_X) k = tr->k[z]; /* with fragments, a X->Ik case is possible */ + if (tr->k[z] != k) ESL_FAIL(eslFAIL, errbuf, "expected k doesn't match trace's k"); + if (tr->i[z] != 0) ESL_FAIL(eslFAIL, errbuf, "D shouldn't have i set"); + if (tr->pp != NULL && tr->pp[z] != 0.0) ESL_FAIL(eslFAIL, errbuf, "D can't have nonzero post prob"); + if (is_core) { + if (prv != p7T_M && prv != p7T_D && prv != p7T_B) + ESL_FAIL(eslFAIL, errbuf, "bad transition to D; expected {B,M,D}->D"); + } else { + if (prv != p7T_M && prv != p7T_D) + ESL_FAIL(eslFAIL, errbuf, "bad transition to D; expected {M,D}->D"); + } + break; + + case p7T_I: + if (tr->st[z-1] == p7T_X) k = tr->k[z]; /* with fragments, a X->Ik case is possible */ + if (tr->k[z] != k) ESL_FAIL(eslFAIL, errbuf, "expected k doesn't match trace's k"); + if (tr->i[z] != i) ESL_FAIL(eslFAIL, errbuf, "expected i doesn't match trace's i"); + if (is_core) { + if (prv != p7T_B && prv != p7T_M && prv != p7T_I) + ESL_FAIL(eslFAIL, errbuf, "bad transition to I; expected {B,M,I}->I"); + } else { + if (prv != p7T_M && prv != p7T_I) + ESL_FAIL(eslFAIL, errbuf, "bad transition to I; expected {M,I}->I"); + } + i++; + break; + + case p7T_E: + if (tr->k[z] != 0) ESL_FAIL(eslFAIL, errbuf, "E shouldn't have k set"); + if (tr->i[z] != 0) ESL_FAIL(eslFAIL, errbuf, "E shouldn't have i set"); + if (tr->pp != NULL && tr->pp[z] != 0.0) ESL_FAIL(eslFAIL, errbuf, "E can't have nonzero post prob"); + if (is_core) { + if (prv != p7T_M && prv != p7T_D && prv != p7T_I) + ESL_FAIL(eslFAIL, errbuf, "bad transition to E; expected {M,D,I}->E"); + } else { + if (prv != p7T_M && prv != p7T_D) + ESL_FAIL(eslFAIL, errbuf, "bad transition to E; expected {M,D}->E"); + } + break; + + case p7T_J: + if (tr->k[z] != 0) ESL_FAIL(eslFAIL, errbuf, "no J should have k set"); + if (prv == p7T_E) { /* 1st J doesn't emit */ + if (tr->i[z] != 0) ESL_FAIL(eslFAIL, errbuf, "first J shouldn't have i set"); + if (tr->pp != NULL && tr->pp[z] != 0.0) ESL_FAIL(eslFAIL, errbuf, "first J can't have nonzero post prob"); + } else if (prv == p7T_J) { /* subsequent J's do */ + if (tr->i[z] != i) ESL_FAIL(eslFAIL, errbuf, "expected i doesn't match trace's i"); + i++; + } else ESL_FAIL(eslFAIL, errbuf, "bad transition to J; expected {E,J}->J"); + break; + + case p7T_C: + if (is_core) ESL_FAIL(eslFAIL, errbuf, "core trace can't contain C"); + if (tr->k[z] != 0) ESL_FAIL(eslFAIL, errbuf, "no C should have k set"); + if (prv == p7T_E) { /* 1st C doesn't emit */ + if (tr->i[z] != 0) ESL_FAIL(eslFAIL, errbuf, "first C shouldn't have i set"); + if (tr->pp != NULL && tr->pp[z] != 0.0) ESL_FAIL(eslFAIL, errbuf, "first C can't have nonzero post prob"); + } else if (prv == p7T_C) { /* subsequent C's do */ + if (tr->i[z] != i) ESL_FAIL(eslFAIL, errbuf, "expected i doesn't match trace's i"); + i++; + } else ESL_FAIL(eslFAIL, errbuf, "bad transition to C; expected {E,C}->C"); + break; + + case p7T_T: + ESL_FAIL(eslFAIL, errbuf, "T must be last state"); + break; + } + } + + /* Trace should have accounted for all residues in the dsq */ + for (; dsq[i] != eslDSQ_SENTINEL; i++) + if (esl_abc_XIsResidue(abc, dsq[i])) + ESL_FAIL(eslFAIL, errbuf, "trace didn't account for all residues in the sq"); + + /* No k larger than M; no i-1 larger than L (i is sitting on dsq[n+1] sentinel right now) */ + if (k > tr->M) ESL_FAIL(eslFAIL, errbuf, "M=%d, but k went to %d\n", tr->M, k); + if (i-1 > tr->L) ESL_FAIL(eslFAIL, errbuf, "L=%d, but i went to %d\n", tr->L, i); + + return eslOK; +} + + +/* Function: p7_trace_Dump() + * Incept: SRE, Fri Jan 5 09:26:04 2007 [Janelia] + * + * Purpose: Dumps internals of a traceback structure to . + * If is non-NULL, also prints transition/emission scores. + * If is non-NULL, also prints residues (using alphabet + * in the ). + * + * Args: fp - stream to dump to (often stdout) + * tr - trace to dump + * gm - NULL, or score profile corresponding to trace + * dsq - NULL, or digitized seq corresponding to trace + * + * Returns: on success. + * + * Throws: if trace contains something corrupt or invalid; + * in this case, dump will be aborted, possibly after partial + * output. + */ +int +p7_trace_Dump(FILE *fp, const P7_TRACE *tr, const P7_PROFILE *gm, const ESL_DSQ *dsq) /* replace void w/ P7_PROFILE */ +{ + int z; /* counter for trace position */ + if (tr == NULL) { fprintf(fp, " [ trace is NULL ]\n"); return eslOK; } + + if (gm == NULL) + { /* Yes, this does get used: during model construction. */ + fprintf(fp, "st k i - traceback len %d\n", tr->N); + fprintf(fp, "-- ---- ----\n"); + for (z = 0; z < tr->N; z++) { + fprintf(fp, "%1s %4d %6d\n", + p7_hmm_DecodeStatetype(tr->st[z]), + tr->k[z], + tr->i[z]); + } + } + else + { + int status; + float accuracy = 0.0f; + float sc = 0.0f; + float tsc; + int xi; + + + fprintf(fp, "st k i transit emission postprob - traceback len %d\n", tr->N); + fprintf(fp, "-- ---- ------ -------- -------- --------\n"); + for (z = 0; z < tr->N; z++) + { + if (z < tr->N-1) + { + status = p7_profile_GetT(gm, tr->st[z], tr->k[z], tr->st[z+1], tr->k[z+1], &tsc); + if (status != eslOK) return status; + } + else tsc = 0.0f; + + fprintf(fp, "%1s %4d %6d %8.4f", p7_hmm_DecodeStatetype(tr->st[z]), tr->k[z], tr->i[z], tsc); + sc += tsc; + + if (dsq != NULL) { + xi = dsq[tr->i[z]]; + + if (tr->st[z] == p7T_M) { + fprintf(fp, " %8.4f", p7P_MSC(gm, tr->k[z], xi)); + sc += p7P_MSC(gm, tr->k[z], xi); + if (tr->pp != NULL) { + fprintf(fp, " %8.4f", tr->pp[z]); + accuracy += tr->pp[z]; + } + fprintf(fp, " %c", gm->abc->sym[xi]); + } + else if (tr->st[z] == p7T_I) { + fprintf(fp, " %8.4f", p7P_ISC(gm, tr->k[z], xi)); + sc += p7P_ISC(gm, tr->k[z], xi); + if (tr->pp != NULL) { + fprintf(fp, " %8.4f", tr->pp[z]); + accuracy += tr->pp[z]; + } + fprintf(fp, " %c", (char) tolower((int) gm->abc->sym[xi])); + } + else if ((tr->st[z] == p7T_N && tr->st[z-1] == p7T_N) || + (tr->st[z] == p7T_C && tr->st[z-1] == p7T_C) || + (tr->st[z] == p7T_J && tr->st[z-1] == p7T_J)) { + fprintf(fp, " %8d", 0); + if (tr->pp != NULL) { + fprintf(fp, " %8.4f", tr->pp[z]); + accuracy += tr->pp[z]; + } + fprintf(fp, " %c", (char) tolower((int) gm->abc->sym[xi])); + } + } + else fprintf(fp, " %8s %8s %c", "-", "-", '-'); + fputs("\n", fp); + } + fprintf(fp, " -------- -------- --------\n"); + fprintf(fp, " total: %8.4f %8.4f\n\n", sc, accuracy); + } + + + return eslOK; +} + + +/* Function: p7_trace_Compare() + * Synopsis: Compare two traces for identity + * Incept: SRE, Wed Aug 20 09:05:24 2008 [Janelia] + * + * Purpose: Compare two tracebacks; return if they + * are identical, if not. + * + * If posterior probability annotation is present in + * both traces, they are compared using + * and a relative tolerance of . + * + * If domain indices are present in both traces, + * the two indexes are compared. + */ +int +p7_trace_Compare(P7_TRACE *tr1, P7_TRACE *tr2, float pptol) +{ + int z,d; + + if (tr1->N != tr2->N) esl_fatal("FAIL"); + if (tr1->M != tr2->M) esl_fatal("FAIL"); + if (tr1->L != tr2->L) esl_fatal("FAIL"); + + /* Main data in the trace */ + for (z = 0; z < tr1->N; z++) + { + if (tr1->st[z] != tr2->st[z]) esl_fatal("FAIL"); + if (tr1->k[z] != tr2->k[z]) esl_fatal("FAIL"); + if (tr1->i[z] != tr2->i[z]) esl_fatal("FAIL"); + } + + /* Optional posterior probability annotation */ + if (tr1->pp != NULL && tr2->pp != NULL) + { + for (z = 0; z < tr1->N; z++) + if (tr1->i[z] != 0) /* an emission: has a nonzero posterior prob*/ + { + if (esl_FCompare(tr1->pp[z], tr2->pp[z], pptol) != eslOK) esl_fatal("FAIL"); + } + else + { + if (tr1->pp[z] != tr2->pp[z]) esl_fatal("FAIL"); /* both 0.0 */ + } + } + + /* Optional domain index */ + if (tr1->ndom > 0 && tr2->ndom > 0) + { + if (tr1->ndom != tr2->ndom) esl_fatal("FAIL"); + + for (d = 0; d < tr1->ndom; d++) + { + if (tr1->tfrom[d] != tr2->tfrom[d]) esl_fatal("FAIL"); + if (tr1->tto[d] != tr2->tto[d]) esl_fatal("FAIL"); + if (tr1->sqfrom[d] != tr2->sqfrom[d]) esl_fatal("FAIL"); + if (tr1->sqto[d] != tr2->sqto[d]) esl_fatal("FAIL"); + if (tr1->hmmfrom[d] != tr2->hmmfrom[d]) esl_fatal("FAIL"); + if (tr1->hmmto[d] != tr2->hmmto[d]) esl_fatal("FAIL"); + } + } + return eslOK; +} + + + + +/* Function: p7_trace_Score() + * Incept: SRE, Tue Mar 6 14:40:34 2007 [Janelia] + * + * Purpose: Score path for digital target sequence + * using profile . Return the lod score in + * . + * + * Args: tr - traceback path to score + * dsq - digitized sequence + * gm - score profile + * ret_sc - RETURN: lod score of trace + * + * Returns: on success, and <*ret_sc> contains the + * lod score for the trace. + * + * Throws: if something's wrong with the trace. + * Now <*ret_sc> is returned as $-\infty$. + */ +int +p7_trace_Score(P7_TRACE *tr, ESL_DSQ *dsq, P7_PROFILE *gm, float *ret_sc) +{ + float sc; /* total lod score */ + float tsc; /* a transition score */ + int z; /* position in tr */ + int xi; /* digitized symbol in dsq */ + int status; + + sc = 0.0f; + for (z = 0; z < tr->N-1; z++) { + xi = dsq[tr->i[z]]; + + if (tr->st[z] == p7T_M) sc += p7P_MSC(gm, tr->k[z], xi); + else if (tr->st[z] == p7T_I) sc += p7P_ISC(gm, tr->k[z], xi); + + if ((status = p7_profile_GetT(gm, tr->st[z], tr->k[z], + tr->st[z+1], tr->k[z+1], &tsc)) != eslOK) goto ERROR; + sc += tsc; + } + + *ret_sc = sc; + return eslOK; + + ERROR: + *ret_sc = -eslINFINITY; + return status; +} + +/* Function: p7_trace_SetPP() + * Synopsis: Set posterior probs of an arbitrary trace. + * Incept: SRE, Tue Aug 19 14:16:10 2008 [Janelia] + * + * Purpose: Set the posterior probability fields of an arbitrary + * trace , by accessing posterior residue probabilities + * in decoding matrix . + * + * In general, was created by + * or converted from the optimized matrix created by + * . + * + * This is classed as a debugging function for the moment, + * because in general traces with posterior probabilities are + * created directly using optimal accuracy DP routines. + * This function allows us to add PP annotation to any + * trace. + * + * Returns: on success. + * + * Throws: on allocation error. + * on internal corruptions. + */ +int +p7_trace_SetPP(P7_TRACE *tr, const P7_GMX *pp) +{ + float **dp = pp->dp; /* so {MDI}MX() macros work */ + float *xmx = pp->xmx; /* so XMX() macro works */ + int z; + int status; + + if (tr->pp == NULL) ESL_ALLOC(tr->pp, sizeof(float) * tr->nalloc); + + for (z = 0; z < tr->N; z++) + { + if (tr->i[z] > 0) /* an emitting state? */ + { + switch (tr->st[z]) { + case p7T_M: tr->pp[z] = MMX(tr->i[z], tr->k[z]); break; + case p7T_I: tr->pp[z] = IMX(tr->i[z], tr->k[z]); break; + case p7T_N: tr->pp[z] = XMX(tr->i[z], p7G_N); break; + case p7T_C: tr->pp[z] = XMX(tr->i[z], p7G_C); break; + case p7T_J: tr->pp[z] = XMX(tr->i[z], p7G_J); break; + default: ESL_EXCEPTION(eslEINVAL, "no such emitting state"); + } + } + else + tr->pp[z] = 0.0; + } + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_trace_GetExpectedAccuracy() + * Synopsis: Returns the sum of the posterior residue decoding probs. + * Incept: SRE, Tue Aug 19 15:29:18 2008 [Janelia] + */ +float +p7_trace_GetExpectedAccuracy(const P7_TRACE *tr) +{ + float accuracy = 0.0; + int z; + + for (z = 0; z < tr->N; z++) + accuracy += tr->pp[z]; + return accuracy; +} + +/*------------------ end, debugging tools -----------------------*/ + + + + +/***************************************************************** + * 4. Creating traces by DP traceback + *****************************************************************/ + +/* Function: p7_trace_Append() + * Synopsis: Add an element (state/residue) to a growing trace. + * + * Purpose: Adds an element to a trace that is growing + * left-to-right. The element is defined by a state type + * (such as ); a node index (1..M for + * M,D,I main states; else 0); and a dsq position (1..L + * for emitters, else 0). + * + * For CNJ states, which emit on transition, by convention + * we associate the emission with the downstream state; therefore + * the first state in any run of CNJ states has i=0. + * + * Reallocates the trace (by doubling) if necessary. + * + * Caller can grow a trace right-to-left too, if it + * plans to call . + * + * Returns: on success. + * + * Throws: on reallocation failure. The element is successfully + * added, but no more elements can be added before this trace is + * destroyed. + * + * if you try to add an element to a trace whose + * reallocation has already failed. + */ +int +p7_trace_Append(P7_TRACE *tr, char st, int k, int i) +{ + int status; + + if ((status = p7_trace_Grow(tr)) != eslOK) return status; + + switch (st) { + /* Emit-on-transition states: */ + case p7T_N: + case p7T_C: + case p7T_J: + tr->i[tr->N] = ( (tr->st[tr->N-1] == st) ? i : 0); + tr->k[tr->N] = 0; + break; + /* Nonemitting states, outside main model: */ + case p7T_X: + case p7T_S: + case p7T_B: + case p7T_E: + case p7T_T: tr->i[tr->N] = 0; tr->k[tr->N] = 0; break; + /* Nonemitting, but in main model (k valid) */ + case p7T_D: tr->i[tr->N] = 0; tr->k[tr->N] = k; break; + /* Emitting states, with valid k position in model: */ + case p7T_M: + case p7T_I: tr->i[tr->N] = i; tr->k[tr->N] = k; break; + default: ESL_EXCEPTION(eslEINVAL, "no such state; can't append"); + } + + tr->st[tr->N] = st; + tr->N++; + return eslOK; +} + +/* Function: p7_trace_AppendWithPP() + * Synopsis: Add element to growing trace, with posterior probability. + * + * Purpose: Same as , but also records a posterior + * probability estimate for emitted residues. is assumed to be + * zero for nonemitting states even if a nonzero argument is + * mistakenly passed. + */ +int +p7_trace_AppendWithPP(P7_TRACE *tr, char st, int k, int i, float pp) +{ + int status; + + if ((status = p7_trace_Grow(tr)) != eslOK) return status; + + switch (st) { + /* Emit-on-transition states: */ + case p7T_N: + case p7T_C: + case p7T_J: + if (tr->st[tr->N-1] == st) + { + tr->i[tr->N] = i; + tr->pp[tr->N] = pp; + } + else + { + tr->i[tr->N] = 0; + tr->pp[tr->N] = 0.0; + } + tr->k[tr->N] = 0; + break; + /* Nonemitting states, outside main model: */ + case p7T_X: + case p7T_S: + case p7T_B: + case p7T_E: + case p7T_T: tr->i[tr->N] = 0; tr->pp[tr->N] = 0.0; tr->k[tr->N] = 0; break; + /* Nonemitting, but in main model (k valid) */ + case p7T_D: tr->i[tr->N] = 0; tr->pp[tr->N] = 0.0; tr->k[tr->N] = k; break; + /* Emitting states, with valid k position in model: */ + case p7T_M: + case p7T_I: tr->i[tr->N] = i; tr->pp[tr->N] = pp; tr->k[tr->N] = k; break; + default: ESL_EXCEPTION(eslEINVAL, "no such state; can't append"); + } + + tr->st[tr->N] = st; + tr->N++; + return eslOK; +} + +/* Function: p7_trace_Reverse() + * Synopsis: Reverse the arrays in a traceback structure. + * + * Purpose: Reverse the arrays in a traceback structure. Tracebacks + * from DP algorithms are collected backwards, and they call this + * function when they're done. + * + * At least for now, this invalidates any domain index + * table, if it exists. The expectd order of invocation is + * to create the traceback backwards, it, then + * it. + * + * Args: tr - the traceback to reverse. tr->N must be set. + * + * Return: on success; is modified. + */ +int +p7_trace_Reverse(P7_TRACE *tr) +{ + int z; + int tmp; + float tmpf; + + /* For emit-on-transition states N,C,J, traces always obey the + * C-,Cx,Cx,Cx convention even when they were constructed backwards; + * so we make them Cx,Cx,Cx,C- by pulling residues backwards by one, + * just before reversing them. (Other ways of doing this would be + * fine too. + */ + for (z = 0; z < tr->N; z++) + { + if ( (tr->st[z] == p7T_N && tr->st[z+1] == p7T_N) || + (tr->st[z] == p7T_C && tr->st[z+1] == p7T_C) || + (tr->st[z] == p7T_J && tr->st[z+1] == p7T_J)) + { + if (tr->i[z] == 0 && tr->i[z+1] > 0) + { + tr->i[z] = tr->i[z+1]; + tr->i[z+1] = 0; + if (tr->pp != NULL) { + tr->pp[z] = tr->pp[z+1]; + tr->pp[z+1] = 0.0; + } + } + } + } + + /* Reverse the trace in place. */ + for (z = 0; z < tr->N/2; z++) + { + tmp = tr->st[tr->N-z-1]; tr->st[tr->N-z-1] = tr->st[z]; tr->st[z] = tmp; + tmp = tr->k[tr->N-z-1]; tr->k[tr->N-z-1] = tr->k[z]; tr->k[z] = tmp; + tmp = tr->i[tr->N-z-1]; tr->i[tr->N-z-1] = tr->i[z]; tr->i[z] = tmp; + if (tr->pp != NULL) { + tmpf = tr->pp[tr->N-z-1]; tr->pp[tr->N-z-1] = tr->pp[z]; tr->pp[z] = tmpf; + } + } + /* don't worry about the middle residue in odd-length N, since we're in-place */ + return eslOK; +} + + +/* Function: p7_trace_Index() + * Synopsis: Internally index the domains in a trace. + * Incept: SRE, Fri Jan 4 11:12:24 2008 [Janelia] + * + * Purpose: Create an internal index of the domains in . + * This makes calls to and + * more efficient, and it is + * a necessary prerequisite for creating alignments + * of any individual domains in a multidomain trace with + * . + * + * Returns: on success. + * + * Throws: on allocation failure, in which case the + * data in the trace is still fine, but the domain index + * table isn't constructed. + */ +int +p7_trace_Index(P7_TRACE *tr) +{ + int z; + int status; + + tr->ndom = 0; + for (z = 0; z < tr->N; z++) + { + switch (tr->st[z]) { + case p7T_B: + if ((status = p7_trace_GrowIndex(tr)) != eslOK) goto ERROR; + tr->tfrom[tr->ndom] = z; + tr->sqfrom[tr->ndom] = 0; + tr->hmmfrom[tr->ndom] = 0; + break; + + case p7T_M: + if (tr->sqfrom[tr->ndom] == 0) tr->sqfrom[tr->ndom] = tr->i[z]; + if (tr->hmmfrom[tr->ndom] == 0) tr->hmmfrom[tr->ndom] = tr->k[z]; + tr->sqto[tr->ndom] = tr->i[z]; + tr->hmmto[tr->ndom] = tr->k[z]; + break; + + case p7T_E: + tr->tto[tr->ndom] = z; + tr->ndom++; + break; + } + } + return eslOK; + + ERROR: + return status; +} +/*----------- end, creating traces by DP traceback ---------------*/ + + +/***************************************************************** + * 5. Creating faux traces from MSAs + *****************************************************************/ + +/* Function: p7_trace_FauxFromMSA() + * Synopsis: Create array of faux tracebacks from an existing MSA. + * Incept: SRE, Thu May 21 08:07:25 2009 [Janelia] + * + * Purpose: Given an existing and an array that + * flags the alignment columns that are assigned to consensus + * match states (matassign[1..alen] = 1|0); create an array + * of faux traces nseq-1]>. controls + * optional behavior; it can be or , + * as explained below. + * + * The traces are core traces: they start/end with B/E, + * they may use I_0,I_M, and D_1 states. Any flanking + * insertions (outside the first/last consensus column) are + * assigned to I_0 and I_M. + * + * If the input alignment contains sequence fragments, + * caller should first convert leading/trailing gaps to + * missing data symbols. This hack causes entry/exit + * transitions to be encoded in the trace as B->X->{MDI}k + * and {MDI}k->X->E, rather than B->DDDD->Mk, Mk->DDDDD->E + * paths involving terminal deletions, and all functions + * that use traces, such as , (should) + * ignore transitions involving states. + * + * By default (), the coordinate + * in the faux tracebacks is <1..L>, relative to the + * unaligned raw sequences in , the way most H3 traces + * are supposed to be. In some cases (such as model + * construction from an MSA) it is convenient to reference + * residues in the MSA cooordinate system directly; setting + * makes the traces come out + * with coords for residues. + * + * Important: an MSA may imply DI and ID transitions that + * are illegal in a core model. If the only purpose of the + * traces is to go straight back into alignment + * construction through a function, this + * is ok, because the routines can handle + * DI and ID transitions (enabling reconstruction of almost + * exactly the same input alignment, modulo unaligned + * insertions). This is what happens for , for example. However, if the caller wants to + * use the traces for anything else, these illegal DI and + * ID transitions have to be removed first, and the caller + * should use to do it. + * + * Args: msa - digital alignment + * matassign - flag for each alignment column, whether + * it is consensus or not. matassign[1..alen] = 1|0; + * matassign[0] = 0 + * optflags - p7_DEFAULT | p7_MSA_COORDS + * tr - RETURN: caller provides 0..nseq-1 pointer + * array for holding returned traces. + * + * Returns: on success, and tr[0..nseq-1] now point to newly + * created traces; caller is responsible for freeing these. + * + * Throws: on allocation error. + * + * Xref: J5/17: build.c::fake_tracebacks() becomes p7_trace_FauxFromMSA(); + * ability to handle MSA or raw coords added. + */ +int +p7_trace_FauxFromMSA(ESL_MSA *msa, int *matassign, int optflags, P7_TRACE **tr) +{ + int idx; /* counter over seqs in MSA */ + int k; /* position in HMM */ + int apos; /* position in alignment columns 1..alen */ + int rpos; /* position in unaligned sequence residues 1..L */ + int showpos; /* coord to actually record: apos or rpos */ + int status = eslOK; + + for (idx = 0; idx < msa->nseq; idx++) tr[idx] = NULL; + + for (idx = 0; idx < msa->nseq; idx++) + { + if ((tr[idx] = p7_trace_Create()) == NULL) goto ERROR; + if ((status = p7_trace_Append(tr[idx], p7T_B, 0, 0)) != eslOK) goto ERROR; + + for (k = 0, rpos = 1, apos = 1; apos <= msa->alen; apos++) + { + showpos = (optflags & p7_MSA_COORDS) ? apos : rpos; + + if (matassign[apos]) + { /* match or delete */ + k++; + if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) + status = p7_trace_Append(tr[idx], p7T_M, k, showpos); + else if (esl_abc_XIsGap (msa->abc, msa->ax[idx][apos])) + status = p7_trace_Append(tr[idx], p7T_D, k, 0); + else if (esl_abc_XIsNonresidue(msa->abc, msa->ax[idx][apos])) + status = p7_trace_Append(tr[idx], p7T_M, k, showpos); /* treat * as a residue! */ + else if (esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos])) + { + if (tr[idx]->st[tr[idx]->N-1] != p7T_X) + status = p7_trace_Append(tr[idx], p7T_X, k, 0); /* allow only one X in a row */ + } + else ESL_XEXCEPTION(eslEINCONCEIVABLE, "can't happen"); + } + else + { /* insert or nothing */ + if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) + status = p7_trace_Append(tr[idx], p7T_I, k, showpos); + else if (esl_abc_XIsNonresidue(msa->abc, msa->ax[idx][apos])) + status = p7_trace_Append(tr[idx], p7T_I, k, showpos); /* treat * as a residue! */ + else if (esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos])) + { + if (tr[idx]->st[tr[idx]->N-1] != p7T_X) + status = p7_trace_Append(tr[idx], p7T_X, k, 0); + } + else if (! esl_abc_XIsGap(msa->abc, msa->ax[idx][apos])) + ESL_XEXCEPTION(eslEINCONCEIVABLE, "can't happen"); + } + + if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) rpos++; + if (status != eslOK) goto ERROR; + } + if ((status = p7_trace_Append(tr[idx], p7T_E, 0, 0)) != eslOK) goto ERROR; + /* k == M by construction; set tr->L = msa->alen since coords are w.r.t. ax */ + tr[idx]->M = k; + tr[idx]->L = msa->alen; + } + return eslOK; + + + ERROR: + for (idx = 0; idx < msa->nseq; idx++) { p7_trace_Destroy(tr[idx]); tr[idx] = NULL; } + return status; +} + + + +/* Function: p7_trace_Doctor() + * Incept: SRE, Thu May 21 08:45:46 2009 [Janelia] + * + * Purpose: Plan 7 disallows D->I and I->D "chatter" transitions. + * However, these transitions will be implied by many + * alignments. trace_doctor() arbitrarily collapses I->D or + * D->I into a single M position in the trace. + * + * trace_doctor does not examine any scores when it does + * this. In ambiguous situations (D->I->D) the symbol + * will be pulled arbitrarily to the left, regardless + * of whether that's the best column to put it in or not. + * + * Args: tr - trace to doctor + * opt_ndi - optRETURN: number of DI transitions doctored + * opt_nid - optRETURN: number of ID transitions doctored + * + * Return: on success, and the trace is modified. + */ +int +p7_trace_Doctor(P7_TRACE *tr, int *opt_ndi, int *opt_nid) +{ + int opos; /* position in old trace */ + int npos; /* position in new trace (<= opos) */ + int ndi, nid; /* number of DI, ID transitions doctored */ + + /* overwrite the trace from left to right */ + ndi = nid = 0; + opos = npos = 0; + while (opos < tr->N) { + /* fix implied D->I transitions; D transforms to M, I pulled in */ + if (tr->st[opos] == p7T_D && tr->st[opos+1] == p7T_I) { + tr->st[npos] = p7T_M; + tr->k[npos] = tr->k[opos]; /* D transforms to M */ + tr->i[npos] = tr->i[opos+1]; /* insert char moves back */ + opos += 2; + npos += 1; + ndi++; + } /* fix implied I->D transitions; D transforms to M, I is pushed in */ + else if (tr->st[opos]== p7T_I && tr->st[opos+1]== p7T_D) { + tr->st[npos] = p7T_M; + tr->k[npos] = tr->k[opos+1]; /* D transforms to M */ + tr->i[npos] = tr->i[opos]; /* insert char moves up */ + opos += 2; + npos += 1; + nid++; + } /* everything else is just copied */ + else { + tr->st[npos] = tr->st[opos]; + tr->k[npos] = tr->k[opos]; + tr->i[npos] = tr->i[opos]; + opos++; + npos++; + } + } + tr->N = npos; + + if (opt_ndi != NULL) *opt_ndi = ndi; + if (opt_nid != NULL) *opt_nid = nid; + return eslOK; +} +/*-------------- end, faux traces from MSAs ---------------------*/ + + +/***************************************************************** + * 6. Counting traces into new HMMs. + *****************************************************************/ + +/* Function: p7_trace_Count() + * + * Purpose: Count a traceback into a count-based core HMM structure. + * (Usually as part of a model parameter re-estimation.) + * + * The traceback may either be a core traceback (as in model + * construction) or a profile traceback (as in model + * reestimation). + * + * If it is a profile traceback, we have to be careful how + * we translate an internal entry path from a score profile + * back to the core model. Sometimes a B->M_k transition is + * an internal entry from local alignment, and sometimes it + * is a wing-folded B->D_1..DDM_k alignment to the core + * model. + * + * This is one of the purposes of the special p7T_X + * 'missing data' state in tracebacks. Local alignment entry + * is indicated by a B->X->{MDI}_k 'missing data' path, and + * direct B->M_k or M_k->E transitions in a traceback are + * interpreted as wing retraction in a glocal model. + * + * The state is also used in core traces in model + * construction literally to mean missing data, in the + * treatment of sequence fragments. + * + * Args: hmm - counts-based HMM to count into + * tr - alignment of seq to HMM + * dsq - digitized sequence that traceback aligns to the HMM (1..L) + * (or can be an ax, aligned digital seq) + * wt - weight on this sequence + * + * Return: on success. + * Weighted count events are accumulated in hmm's mat[][], ins[][], + * t[][] fields: the core probability model. + * + * Throws: if something's corrupt in the trace; effect on hmm + * counts is undefined, because it may abort at any point in the trace. + */ +int +p7_trace_Count(P7_HMM *hmm, ESL_DSQ *dsq, float wt, P7_TRACE *tr) +{ + int z; /* position index in trace */ + int i; /* symbol position in seq */ + int st,st2; /* state type (cur, nxt) */ + int k,k2,ktmp; /* node index (cur, nxt) */ + int z1 = 0; /* left bound - may get set to an M position for a left fragment */ + int z2 = tr->N-1; /* right bound, ditto for a right fragment. N-1 not N, because main loop accesses z,z+1 */ + + /* If this is a core fragment trace (it has B->X and/or X->E) then + * set z1 and/or z2 bound on first and/or last M state, so we don't + * count incomplete flanking insertions. A fragment doesn't + * necessarily have X's on both sides because of the way they get + * set from ~'s in an input alignment. + * + * A local alignment profile trace has B->X and X->E, and may have + * >1 domain, but is guaranteed to be B->X->Mk, Mk->X->E, so + * limiting trace counting to z1..z2 would have no effect... nonetheless, + * we check, differentiating core vs. profile trace by the lead B vs S. + * + * It's possible for a core trace to have no M's at all, just + * B->(X)->III->(X)->E, as in bug #h82, so watch out for that; we don't + * count anything in such a trace, even the II transitions, because + * we don't get to see the complete length of the insertion (or the + * IM transition), so we don't want to be estimating the I-state + * geometric distribution from it. + * + * We assume the core trace has already been through TraceDoctor(), + * so it has no DI or ID transitions. + */ + if (tr->st[0] == p7T_B && tr->st[1] == p7T_X) + for (z = 2; z < tr->N-1; z++) + if (tr->st[z] == p7T_M) { z1 = z; break; } + if (tr->st[tr->N-1] == p7T_E && tr->st[tr->N-2] == p7T_X) + for (z = tr->N-3; z > 0; z--) + if (tr->st[z] == p7T_M) { z2 = z; break; } + + for (z = z1; z < z2; z++) + { + if (tr->st[z] == p7T_X) continue; /* skip missing data */ + + /* pull some info into tmp vars for notational clarity later. */ + st = tr->st[z]; + st2 = tr->st[z+1]; + k = tr->k[z]; + k2 = tr->k[z+1]; + i = tr->i[z]; + + /* Emission counts. */ + if (st == p7T_M) esl_abc_FCount(hmm->abc, hmm->mat[k], dsq[i], wt); + else if (st == p7T_I) esl_abc_FCount(hmm->abc, hmm->ins[k], dsq[i], wt); + + /* Transition counts */ + if (st2 == p7T_X) continue; /* ignore transition to missing data */ + + if (st == p7T_B) { + if (st2 == p7T_M && k2 > 1) /* wing-retracted B->DD->Mk path */ + { + hmm->t[0][p7H_MD] += wt; + for (ktmp = 1; ktmp < k2-1; ktmp++) + hmm->t[ktmp][p7H_DD] += wt; + hmm->t[ktmp][p7H_DM] += wt; + } + else { + switch (st2) { + case p7T_M: hmm->t[0][p7H_MM] += wt; break; + case p7T_I: hmm->t[0][p7H_MI] += wt; break; + case p7T_D: hmm->t[0][p7H_MD] += wt; break; + default: ESL_EXCEPTION(eslEINVAL, "bad transition in trace"); + } + } + } + else if (st == p7T_M) { + switch (st2) { + case p7T_M: hmm->t[k][p7H_MM] += wt; break; + case p7T_I: hmm->t[k][p7H_MI] += wt; break; + case p7T_D: hmm->t[k][p7H_MD] += wt; break; + case p7T_E: hmm->t[k][p7H_MM] += wt; break; /* k==M. A local alignment would've been Mk->X->E. */ + default: ESL_EXCEPTION(eslEINVAL, "bad transition in trace"); + } + } + else if (st == p7T_I) { + switch (st2) { + case p7T_M: hmm->t[k][p7H_IM] += wt; break; + case p7T_I: hmm->t[k][p7H_II] += wt; break; + case p7T_E: hmm->t[k][p7H_IM] += wt; break; /* k==M. */ + default: ESL_EXCEPTION(eslEINVAL, "bad transition in trace"); + } + } + else if (st == p7T_D) { + switch (st2) { + case p7T_M: hmm->t[k][p7H_DM] += wt; break; + case p7T_D: hmm->t[k][p7H_DD] += wt; break; + case p7T_E: hmm->t[k][p7H_DM] += wt; break; /* k==M. A local alignment would've been Dk->X->E. */ + default: ESL_EXCEPTION(eslEINVAL, "bad transition in trace"); + } + } + } /* end loop over trace position */ + return eslOK; +} +/*--------------------- end, trace counting ---------------------*/ + + +/***************************************************************** + * 7. Unit tests + *****************************************************************/ +#ifdef p7TRACE_TESTDRIVE + +/* convert an MSA to traces; then traces back to MSA; + * starting and ending MSA should be the same, provided + * the msa doesn't have any ambiguously aligned insertions. + */ +static void +utest_faux(ESL_MSA *msa, int *matassign, int M) +{ + char *msg = "p7_trace.c:: FauxFromMSA unit test failed"; + ESL_MSA *msa2 = NULL; + ESL_SQ **sq = malloc(sizeof(ESL_SQ) * msa->nseq); + P7_TRACE **tr = malloc(sizeof(P7_TRACE) * msa->nseq); + int i; + int optflags = p7_DIGITIZE; + + for (i = 0; i < msa->nseq; i++) + if (esl_sq_FetchFromMSA(msa, i, &(sq[i])) != eslOK) esl_fatal(msg); + + if (p7_trace_FauxFromMSA(msa, matassign, p7_MSA_COORDS, tr) != eslOK) esl_fatal(msg); + if (p7_tracealign_MSA(msa, tr, M, optflags, &msa2) != eslOK) esl_fatal(msg); + if (esl_msa_Compare(msa, msa2) != eslOK) esl_fatal(msg); + esl_msa_Destroy(msa2); + for (i = 0; i < msa->nseq; i++) p7_trace_Destroy(tr[i]); + + if (p7_trace_FauxFromMSA(msa, matassign, p7_DEFAULT, tr) != eslOK) esl_fatal(msg); + if (p7_tracealign_Seqs(sq, tr, msa->nseq, M, optflags, NULL, &msa2) != eslOK) esl_fatal(msg); + if (esl_msa_Compare(msa, msa2) != eslOK) esl_fatal(msg); + + esl_msa_Destroy(msa2); + for (i = 0; i < msa->nseq; i++) p7_trace_Destroy(tr[i]); + for (i = 0; i < msa->nseq; i++) esl_sq_Destroy(sq[i]); + free(tr); + free(sq); + return; +} + +#endif /*p7TRACE_TESTDRIVE*/ +/*--------------------- end, unit tests -------------------------*/ + +/***************************************************************** + * 8. Test driver + *****************************************************************/ +#ifdef p7TRACE_TESTDRIVE +/* + gcc -o p7_trace_utest -msse2 -std=gnu99 -g -O2 -I. -L. -I../easel -L../easel -Dp7TRACE_TESTDRIVE p7_trace.c -lhmmer -leasel -lm + ./p7_trace_utest +*/ +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_random.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options]"; +static char banner[] = "test driver for P7_TRACE"; + +int +main(int argc, char **argv) +{ + char *msg = "p7_trace_utest failed"; + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + ESL_MSA *msa = NULL; + int alen = 6; + int M = 4; + int *matassign = malloc(sizeof(int) * (alen+1)); /* 1..alen */ + + /* Create a test MSA/matassign/M triplet */ + /* missing data ~ doesn't work here yet; tracealign_* doesn't propagate p7T_X in any way */ + if ((msa = esl_msa_CreateFromString("# STOCKHOLM 1.0\n#=GC RF .xxxx.\nseq1 AAAAAA\nseq2 -AAA--\nseq3 AA--AA\n//\n", eslMSAFILE_STOCKHOLM)) == NULL) esl_fatal(msg); + if (esl_msa_Digitize(abc, msa,NULL) != eslOK) esl_fatal(msg); + + matassign[0] = 0; + matassign[1] = 0; + matassign[2] = 1; + matassign[3] = 1; + matassign[4] = 1; + matassign[5] = 1; + matassign[6] = 0; + + utest_faux(msa, matassign, M); + + free(matassign); + esl_msa_Destroy(msa); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} +#endif /*p7TRACE_TESTDRIVE*/ +/*--------------------- end, test driver ------------------------*/ + + + diff --git a/bioinformaticsProject/hmmer/src/phmmer.c b/bioinformaticsProject/hmmer/src/phmmer.c new file mode 100644 index 0000000..00bf4c3 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/phmmer.c @@ -0,0 +1,1534 @@ +/* phmmer: search a protein sequence against a protein database + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_dmatrix.h" +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_scorematrix.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#ifdef HMMER_MPI +#include "mpi.h" +#include "esl_mpi.h" +#endif + +#ifdef HMMER_THREADS +#include +#include "esl_threads.h" +#include "esl_workqueue.h" +#endif + +#include "hmmer.h" + +typedef struct { +#ifdef HMMER_THREADS + ESL_WORK_QUEUE *queue; +#endif + P7_BG *bg; + P7_PIPELINE *pli; + P7_TOPHITS *th; + P7_OPROFILE *om; +} WORKER_INFO; + +#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc" +#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc" +#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc" +#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" + +#if defined (HMMER_THREADS) && defined (HMMER_MPI) +#define CPUOPTS "--mpi" +#define MPIOPTS "--cpu" +#else +#define CPUOPTS NULL +#define MPIOPTS NULL +#endif + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, +/* Control of output */ + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of hits to file ", 2 }, + { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file ", 2 }, + { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file ", 2 }, + { "--pfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits and domains to file, in Pfam format ", 2 }, + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 }, + { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 }, + { "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 }, + { "--textw", eslARG_INT, "120", NULL, "n>=120", NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 }, +/* Control of scoring system */ + { "--popen", eslARG_REAL, "0.02", NULL, "0<=x<0.5",NULL, NULL, NULL, "gap open probability", 3 }, + { "--pextend", eslARG_REAL, "0.4", NULL, "0<=x<1", NULL, NULL, NULL, "gap extend probability", 3 }, + { "--mx", eslARG_STRING, "BLOSUM62", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix choice (of some built-in matrices)", 3 }, + { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file ", 3 }, +/* Control of reporting thresholds */ + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report sequences <= this E-value threshold in output", 4 }, + { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report sequences >= this score threshold in output", 4 }, + { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "report domains <= this E-value threshold in output", 4 }, + { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "report domains >= this score cutoff in output", 4 }, +/* Control of inclusion thresholds */ + { "--incE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCOPTS, "consider sequences <= this E-value threshold as significant", 5 }, + { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider sequences >= this score threshold as significant", 5 }, + { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "consider domains <= this E-value threshold as significant", 5 }, + { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "consider domains >= this score threshold as significant", 5 }, +/* Model-specific thresholding for both reporting and inclusion (unused in phmmer)*/ + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 99 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 99 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 99 }, +/* Control of filter pipeline */ + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "Stage 1 (MSV) threshold: promote hits w/ P <= F1", 7 }, + { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 }, + { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 }, +/* Control of E-value calibration */ + { "--EmL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for MSV Gumbel mu fit", 11 }, + { "--EmN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for MSV Gumbel mu fit", 11 }, + { "--EvL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Viterbi Gumbel mu fit", 11 }, + { "--EvN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Viterbi Gumbel mu fit", 11 }, + { "--EfL", eslARG_INT, "100", NULL,"n>0", NULL, NULL, NULL, "length of sequences for Forward exp tail tau fit", 11 }, + { "--EfN", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "number of sequences for Forward exp tail tau fit", 11 }, + { "--Eft", eslARG_REAL, "0.04", NULL,"00", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 12 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 12 }, + { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert query is in format : no autodetection", 12 }, + { "--tformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert target is in format >: no autodetection", 12 }, +#ifdef HMMER_THREADS + { "--cpu", eslARG_INT, p7_NCPU,"HMMER_NCPU", "n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 12 }, +#endif +#ifdef HMMER_MPI + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 12 }, + { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 12 }, +#endif + + /* Restrict search to subset of database - hidden because these flags are + * (a) currently for internal use + * (b) probably going to change + * Doesn't work with MPI + */ + { "--restrictdb_stkey", eslARG_STRING, "0", NULL, NULL, NULL, NULL, NULL, "Search starts at the sequence with name (not with MPI)", 99 }, + { "--restrictdb_n",eslARG_INT, "-1", NULL, NULL, NULL, NULL, NULL, "Search target sequences (starting at --restrictdb_stkey)", 99 }, + { "--ssifile", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "restrictdb_x values require ssi file. Override default to ", 99 }, + + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "search a protein sequence against a protein database"; + +/* struct cfg_s : "Global" application configuration shared by all threads/processes + * + * This structure is passed to routines within main.c, as a means of semi-encapsulation + * of shared data amongst different parallel processes (threads or MPI processes). + */ +struct cfg_s { + char *qfile; /* query sequence file */ + char *dbfile; /* database file */ + + int do_mpi; /* TRUE if we're doing MPI parallelization */ + int nproc; /* how many MPI processes, total */ + int my_rank; /* who am I, in 0..nproc-1 */ + + char *firstseq_key; /* name of the first sequence in the restricted db range */ + int n_targetseq; /* number of sequences in the restricted range */ +}; + +static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg); +static int serial_loop (WORKER_INFO *info, ESL_SQFILE *dbfp, int n_targetseqs); + +#ifdef HMMER_THREADS +#define BLOCK_SIZE 1000 + +static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, int n_targetseqs); +static void pipeline_thread(void *arg); +#endif + +#ifdef HMMER_MPI +static int mpi_master (ESL_GETOPTS *go, struct cfg_s *cfg); +static int mpi_worker (ESL_GETOPTS *go, struct cfg_s *cfg); +#endif + +/* process_commandline() + * Take argc, argv, and options; parse the command line; + * display help/usage info. + */ +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_qfile, char **ret_dbfile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 120=textwidth*/ + + if (puts("\nOptions directing output:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + + if (puts("\nOptions controlling scoring system:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 80); + + if (puts("\nOptions controlling reporting thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + + if (puts("\nOptions controlling inclusion (significance) thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + + if (puts("\nOptions controlling acceleration heuristics:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 7, 2, 80); + + if (puts("\nOptions controlling E value calibration:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 11, 2, 80); + + if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 12, 2, 80); + exit(0); + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_qfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_dbfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* Validate any attempted use of stdin streams */ + if (strcmp(*ret_qfile, "-") == 0 && strcmp(*ret_dbfile, "-") == 0) + { if (puts("Either or may be '-' (to read from stdin), but not both.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + if (puts("\nwhere basic options are:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 120); /* 1= group; 2 = indentation; 120=textwidth*/ + if (printf("\nTo see more help on available options, do %s -h\n\n", argv[0]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + + +static int +output_header(FILE *ofp, ESL_GETOPTS *go, char *qfile, char *dbfile) +{ + p7_banner(ofp, go->argv[0], banner); + + if (fprintf(ofp, "# query sequence file: %s\n", qfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# target sequence database: %s\n", dbfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-A") && fprintf(ofp, "# MSA of hits saved to file: %s\n", esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# per-seq hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domtblout") && fprintf(ofp, "# per-dom hits tabular output: %s\n", esl_opt_GetString(go, "--domtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pfamtblout")&& fprintf(ofp, "# pfam-style tabular hit output: %s\n", esl_opt_GetString(go, "--pfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(go, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--popen") && fprintf(ofp, "# gap open probability: %f\n", esl_opt_GetReal (go, "--popen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pextend") && fprintf(ofp, "# gap extend probability: %f\n", esl_opt_GetReal (go, "--pextend")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--mx") && fprintf(ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString(go, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--mxfile") && fprintf(ofp, "# subst score matrix (file): %s\n", esl_opt_GetString(go, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-E") && fprintf(ofp, "# sequence reporting threshold: E-value <= %g\n", esl_opt_GetReal(go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-T") && fprintf(ofp, "# sequence reporting threshold: score >= %g\n", esl_opt_GetReal(go, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domE") && fprintf(ofp, "# domain reporting threshold: E-value <= %g\n", esl_opt_GetReal(go, "--domE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domT") && fprintf(ofp, "# domain reporting threshold: score >= %g\n", esl_opt_GetReal(go, "--domT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incE") && fprintf(ofp, "# sequence inclusion threshold: E-value <= %g\n", esl_opt_GetReal(go, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incT") && fprintf(ofp, "# sequence inclusion threshold: score >= %g\n", esl_opt_GetReal(go, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incdomE") && fprintf(ofp, "# domain inclusion threshold: E-value <= %g\n", esl_opt_GetReal(go, "--incdomE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incdomT") && fprintf(ofp, "# domain inclusion threshold: score >= %g\n", esl_opt_GetReal(go, "--incdomT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +//if (esl_opt_IsUsed(go, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +//if (esl_opt_IsUsed(go, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +//if (esl_opt_IsUsed(go, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# MSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--restrictdb_stkey") && fprintf(ofp, "# Restrict db to start at seq key: %s\n", esl_opt_GetString(go, "--restrictdb_stkey")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--restrictdb_n") && fprintf(ofp, "# Restrict db to # target seqs: %d\n", esl_opt_GetInteger(go, "--restrictdb_n")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--ssifile") && fprintf(ofp, "# Override ssi file to: %s\n", esl_opt_GetString(go, "--ssifile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EmL") && fprintf(ofp, "# seq length, MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EmL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EmN") && fprintf(ofp, "# seq number, MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EmN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EvL") && fprintf(ofp, "# seq length, Vit Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EvL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EvN") && fprintf(ofp, "# seq number, Vit Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EvN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EfL") && fprintf(ofp, "# seq length, Fwd exp tau fit: %d\n", esl_opt_GetInteger(go, "--EfL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--EfN") && fprintf(ofp, "# seq number, Fwd exp tau fit: %d\n", esl_opt_GetInteger(go, "--EfN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--Eft") && fprintf(ofp, "# tail mass for Fwd exp tau fit: %f\n", esl_opt_GetReal (go, "--Eft")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# sequence search space set to: %.0f\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--domZ") && fprintf(ofp, "# domain search space set to: %.0f\n", esl_opt_GetReal(go, "--domZ")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed")) { + if (esl_opt_GetInteger(go, "--seed") == 0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if ( fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (esl_opt_IsUsed(go, "--qformat") && fprintf(ofp, "# query format asserted: %s\n", esl_opt_GetString(go, "--qformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tformat") && fprintf(ofp, "# target format asserted: %s\n", esl_opt_GetString(go, "--tformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#ifdef HMMER_THREADS + if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif +#ifdef HMMER_MPI + if (esl_opt_IsUsed(go, "--mpi") && fprintf(ofp, "# MPI: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + + +int +main(int argc, char **argv) +{ + int status = eslOK; + + ESL_GETOPTS *go = NULL; /* command line processing */ + struct cfg_s cfg; /* configuration data */ + + /* Set processor specific flags */ + impl_Init(); + + /* Initialize what we can in the config structure (without knowing the alphabet yet) + */ + cfg.qfile = NULL; + cfg.dbfile = NULL; + + cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */ + cfg.nproc = 0; /* this gets reset below, if we init MPI */ + cfg.my_rank = 0; /* this gets reset below, if we init MPI */ + cfg.firstseq_key = NULL; + cfg.n_targetseq = -1; + + /* Initializations */ + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + process_commandline(argc, argv, &go, &cfg.qfile, &cfg.dbfile); + + + /* is the range restricted? */ + if (esl_opt_IsUsed(go, "--restrictdb_stkey") ) + if ((cfg.firstseq_key = esl_opt_GetString(go, "--restrictdb_stkey")) == NULL) p7_Fail("Failure capturing --restrictdb_stkey\n"); + + if (esl_opt_IsUsed(go, "--restrictdb_n") ) + cfg.n_targetseq = esl_opt_GetInteger(go, "--restrictdb_n"); + + if ( cfg.n_targetseq != -1 && cfg.n_targetseq < 1 ) + p7_Fail("--restrictdb_n must be >= 1\n"); + + /* Figure out who we are, and send control there: + * we might be an MPI master, an MPI worker, or a serial program. + */ +#ifdef HMMER_MPI + /* pause the execution of the programs execution until the user has a + * chance to attach with a debugger and send a signal to resume execution + * i.e. (gdb) signal SIGCONT + */ + if (esl_opt_GetBoolean(go, "--stall")) pause(); + + if (esl_opt_GetBoolean(go, "--mpi")) + { + cfg.do_mpi = TRUE; + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &(cfg.my_rank)); + MPI_Comm_size(MPI_COMM_WORLD, &(cfg.nproc)); + + if (cfg.my_rank > 0) status = mpi_worker(go, &cfg); + else status = mpi_master(go, &cfg); + + MPI_Finalize(); + } + else +#endif /*HMMER_MPI*/ + { + status = serial_master(go, &cfg); + } + + esl_getopts_Destroy(go); + + return status; +} + +/* serial_master() + * For each query sequence in search the database for hits. + * + * A master can only return if it's successful. All errors are handled + * immediately and fatally with p7_Fail(). Where we use the + * ESL_EXCEPTION mechanism and ERROR: block, it's for convenience; we + * know we're using a fatal exception handler. + */ +static int +serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* output file for results (default stdout) */ + FILE *afp = NULL; /* alignment output file (-A option) */ + FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */ + FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */ + FILE *pfamtblfp= NULL; /* output stream for pfam tabular output (--pfamtblout) */ + int qformat = eslSQFILE_UNKNOWN; /* format of qfile */ + ESL_SQFILE *qfp = NULL; /* open qfile */ + ESL_SQ *qsq = NULL; /* query sequence */ + int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */ + ESL_SQFILE *dbfp = NULL; /* open dbfile */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_BG *bg = NULL; /* null model (copies made of this into threads) */ + P7_BUILDER *bld = NULL; /* HMM construction configuration */ + ESL_STOPWATCH *w = NULL; /* for timing */ + int nquery = 0; + int seed; + int textw; + int status = eslOK; + int qstatus = eslOK; + int sstatus = eslOK; + int i; + int ncpus = 0; + int infocnt = 0; + WORKER_INFO *info = NULL; +#ifdef HMMER_THREADS + ESL_SQ_BLOCK *block = NULL; + ESL_THREADS *threadObj= NULL; + ESL_WORK_QUEUE *queue = NULL; +#endif + + /* Initializations */ + abc = esl_alphabet_Create(eslAMINO); + w = esl_stopwatch_Create(); + textw = (esl_opt_GetBoolean(go, "--notextw") ? 0 : esl_opt_GetInteger(go, "--textw")); + bg = p7_bg_Create(abc); + + /* If caller declared input formats, decode them */ + if (esl_opt_IsOn(go, "--qformat")) { + qformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (qformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + if (esl_opt_IsOn(go, "--tformat")) { + dbformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + /* Initialize a default builder configuration, + * then set only the options we need for single sequence search + */ + bld = p7_builder_Create(NULL, abc); + if ((seed = esl_opt_GetInteger(go, "--seed")) > 0) + { /* a little wasteful - we're blowing a couple of usec by reinitializing */ + esl_randomness_Init(bld->r, seed); + bld->do_reseeding = TRUE; + } + bld->EmL = esl_opt_GetInteger(go, "--EmL"); + bld->EmN = esl_opt_GetInteger(go, "--EmN"); + bld->EvL = esl_opt_GetInteger(go, "--EvL"); + bld->EvN = esl_opt_GetInteger(go, "--EvN"); + bld->EfL = esl_opt_GetInteger(go, "--EfL"); + bld->EfN = esl_opt_GetInteger(go, "--EfN"); + bld->Eft = esl_opt_GetReal (go, "--Eft"); + + /* Default is stored in the --mx option, so it's always IsOn(). Check --mxfile first; then go to the --mx option and the default. */ + if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (bld, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + else status = p7_builder_LoadScoreSystem(bld, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + if (status != eslOK) p7_Fail("Failed to set single query seq score system:\n%s\n", bld->errbuf); + + /* Open results output files */ + if (esl_opt_IsOn(go, "-o")) { if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) p7_Fail("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); } + if (esl_opt_IsOn(go, "-A")) { if ((afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) p7_Fail("Failed to open alignment output file %s for writing\n", esl_opt_GetString(go, "-A")); } + if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) p7_Fail("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp")); } + if (esl_opt_IsOn(go, "--domtblout")) { if ((domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) p7_Fail("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp")); } + if (esl_opt_IsOn(go, "--pfamtblout")){ if ((pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL) esl_fatal("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout")); } + + /* Open the target sequence database for sequential access. */ + status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open target sequence database %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) p7_Fail("Target sequence database file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) p7_Fail("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile); + + + if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) { + if (esl_opt_IsUsed(go, "--ssifile")) + esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile")); + else + esl_sqfile_OpenSSI(dbfp, NULL); + } + + + /* Open the query sequence file */ + status = esl_sqfile_OpenDigital(abc, cfg->qfile, qformat, NULL, &qfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", cfg->qfile); + else if (status == eslEFORMAT) p7_Fail("Sequence file %s is empty or misformatted\n", cfg->qfile); + else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) p7_Fail ("Unexpected error %d opening sequence file %s\n", status, cfg->qfile); + qsq = esl_sq_CreateDigital(abc); + +#ifdef HMMER_THREADS + /* initialize thread data */ + ncpus = ESL_MIN( esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + if (ncpus > 0) + { + threadObj = esl_threads_Create(&pipeline_thread); + queue = esl_workqueue_Create(ncpus * 2); + } +#endif + + infocnt = (ncpus == 0) ? 1 : ncpus; + ESL_ALLOC(info, sizeof(*info) * infocnt); + + /* Show header output */ + output_header(ofp, go, cfg->qfile, cfg->dbfile); + + for (i = 0; i < infocnt; ++i) + { + info[i].pli = NULL; + info[i].th = NULL; + info[i].om = NULL; + info[i].bg = p7_bg_Clone(bg); +#ifdef HMMER_THREADS + info[i].queue = queue; +#endif + } + +#ifdef HMMER_THREADS + for (i = 0; i < ncpus * 2; ++i) + { + block = esl_sq_CreateDigitalBlock(BLOCK_SIZE, abc); + if (block == NULL) + { + p7_Fail("Failed to allocate sequence block"); + } + + status = esl_workqueue_Init(queue, block); + if (status != eslOK) + { + p7_Fail("Failed to add block to work queue"); + } + } +#endif + + /* Outer loop over sequence queries */ + while ((qstatus = esl_sqio_Read(qfp, qsq)) == eslOK) + { + P7_OPROFILE *om = NULL; /* optimized query profile */ + + nquery++; + if (qsq->n == 0) continue; /* skip zero length seqs as if they aren't even present */ + + esl_stopwatch_Start(w); + + /* seqfile may need to be rewound (multiquery mode) */ + if (nquery > 1) + { + if (! esl_sqfile_IsRewindable(dbfp)) p7_Fail("Target sequence file %s isn't rewindable; can't search it with multiple queries", cfg->dbfile); + + if ( cfg->firstseq_key == NULL ) + esl_sqfile_Position(dbfp, 0); //only re-set current position to 0 if we're not planning to set it in a moment + } + + if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general + sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key); + if (sstatus != eslOK) + p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key); + } + + + if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->acc[0] != '\0' && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->desc[0] != '\0' && fprintf(ofp, "Description: %s\n", qsq->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + + /* Build the model */ + p7_SingleBuilder(bld, qsq, info[0].bg, NULL, NULL, NULL, &om); /* bypass HMM - only need model */ + + for (i = 0; i < infocnt; ++i) + { + /* Create processing pipeline and hit list */ + info[i].th = p7_tophits_Create(); + info[i].om = p7_oprofile_Clone(om); + info[i].pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */ + p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg); + +#ifdef HMMER_THREADS + if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]); +#endif + } + +#ifdef HMMER_THREADS + if (ncpus > 0) sstatus = thread_loop(threadObj, queue, dbfp, cfg->n_targetseq); + else sstatus = serial_loop(info, dbfp, cfg->n_targetseq); +#else + sstatus = serial_loop(info, dbfp, cfg->n_targetseq); +#endif + switch(sstatus) + { + case eslEFORMAT: + p7_Fail("Parse failed (sequence file %s):\n%s\n", + dbfp->filename, esl_sqfile_GetErrorBuf(dbfp)); + break; + case eslEOF: + /* do nothing */ + break; + default: + p7_Fail("Unexpected error %d reading sequence file %s", + sstatus, dbfp->filename); + } + + + /* merge the results of the search results */ + for (i = 1; i < infocnt; ++i) + { + p7_tophits_Merge(info[0].th, info[i].th); + p7_pipeline_Merge(info[0].pli, info[i].pli); + + p7_pipeline_Destroy(info[i].pli); + p7_tophits_Destroy(info[i].th); + p7_oprofile_Destroy(info[i].om); + } + + /* Print the results. */ + p7_tophits_SortBySortkey(info->th); + p7_tophits_Threshold(info->th, info->pli); + p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1)); + if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1)); + if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, qsq->name, qsq->acc, info->th, info->pli); + + esl_stopwatch_Stop(w); + p7_pli_Statistics(ofp, info->pli, w); + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + fflush(ofp); + + /* Output the results in an MSA (-A option) */ + if (afp) { + ESL_MSA *msa = NULL; + + if ( p7_tophits_Alignment(info->th, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) == eslOK) + { + esl_msa_SetName (msa, om->name, -1); // don't use qsq->name; it's optional in a ESL_SQ, and SingleBuilder took care of naming model. + if (qsq->acc[0] != '\0') esl_msa_SetAccession(msa, qsq->acc, -1); + if (qsq->desc[0] != '\0') esl_msa_SetDesc (msa, qsq->desc, -1); + esl_msa_FormatAuthor(msa, "phmmer (HMMER %s)", HMMER_VERSION); + + if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM); + else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM); + + if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + else if (fprintf(ofp, "# No hits satisfy inclusion thresholds; no alignment saved\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + esl_msa_Destroy(msa); + } + + p7_tophits_Destroy(info->th); + p7_pipeline_Destroy(info->pli); + p7_oprofile_Destroy(info->om); + p7_oprofile_Destroy(om); + esl_sq_Reuse(qsq); + } /* end outer loop over query sequences */ + if (qstatus == eslEFORMAT) p7_Fail("Parse failed (sequence file %s):\n%s\n", + qfp->filename, esl_sqfile_GetErrorBuf(qfp)); + else if (qstatus != eslEOF) p7_Fail("Unexpected error %d reading sequence file %s", + qstatus, qfp->filename); + + + /* Terminate outputs - any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (domtblfp) p7_tophits_TabularTail(domtblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (pfamtblfp) p7_tophits_TabularTail(pfamtblfp,"phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Cleanup - prepare for successful exit + */ + for (i = 0; i < infocnt; ++i) + p7_bg_Destroy(info[i].bg); + +#ifdef HMMER_THREADS + if (ncpus > 0) + { + esl_workqueue_Reset(queue); + while (esl_workqueue_Remove(queue, (void **) &block) == eslOK) + esl_sq_DestroyBlock(block); + esl_workqueue_Destroy(queue); + esl_threads_Destroy(threadObj); + } +#endif + + free(info); + esl_sqfile_Close(dbfp); + esl_sqfile_Close(qfp); + esl_stopwatch_Destroy(w); + esl_sq_Destroy(qsq); + p7_bg_Destroy(bg); + p7_builder_Destroy(bld); + esl_alphabet_Destroy(abc); + + if (ofp != stdout) fclose(ofp); + if (afp != NULL) fclose(afp); + if (tblfp != NULL) fclose(tblfp); + if (domtblfp != NULL) fclose(domtblfp); + if (pfamtblfp) fclose(pfamtblfp); + return eslOK; + + ERROR: + return status; +} + +#ifdef HMMER_MPI + +/* Define common tags used by the MPI master/slave processes */ +#define HMMER_ERROR_TAG 1 +#define HMMER_HMM_TAG 2 +#define HMMER_SEQUENCE_TAG 3 +#define HMMER_BLOCK_TAG 4 +#define HMMER_PIPELINE_TAG 5 +#define HMMER_TOPHITS_TAG 6 +#define HMMER_HIT_TAG 7 +#define HMMER_TERMINATING_TAG 8 +#define HMMER_READY_TAG 9 + +/* mpi_failure() + * Generate an error message. If the clients rank is not 0, a + * message is created with the error message and sent to the + * master process for handling. + */ +static void +mpi_failure(char *format, ...) +{ + va_list argp; + int status = eslFAIL; + int len; + int rank; + char str[512]; + + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + /* format the error mesg */ + va_start(argp, format); + len = vsnprintf(str, sizeof(str), format, argp); + va_end(argp); + + /* make sure the error string is terminated */ + str[sizeof(str)-1] = '\0'; + + /* if the caller is the master, print the results and abort */ + if (rank == 0) + { + if (fprintf(stderr, "\nError: ") < 0) exit(eslEWRITE); + if (fprintf(stderr, "%s", str) < 0) exit(eslEWRITE); + if (fprintf(stderr, "\n") < 0) exit(eslEWRITE); + fflush(stderr); + + MPI_Abort(MPI_COMM_WORLD, status); + exit(1); + } + else + { + MPI_Send(str, len, MPI_CHAR, 0, HMMER_ERROR_TAG, MPI_COMM_WORLD); + pause(); + } +} + +#define MAX_BLOCK_SIZE (512*1024) + +typedef struct { + uint64_t offset; + uint64_t length; + uint64_t count; +} SEQ_BLOCK; + +typedef struct { + int complete; + int size; + int current; + int last; + SEQ_BLOCK *blocks; +} BLOCK_LIST; + +/* this routine parses the database keeping track of the blocks + * offset within the file, number of sequences and the length + * of the block. These blocks are passed as work units to the + * MPI workers. If multiple hmm's are in the query file, the + * blocks are reused without parsing the database a second time. + */ +int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block, int n_targetseqs) +{ + int status = eslOK; + + /* if the list has been calculated, use it instead of parsing the database */ + if (list->complete) + { + if (list->current == list->last) + { + block->offset = 0; + block->length = 0; + block->count = 0; + + status = eslEOF; + } + else + { + int inx = list->current++; + + block->offset = list->blocks[inx].offset; + block->length = list->blocks[inx].length; + block->count = list->blocks[inx].count; + + status = eslOK; + } + + return status; + } + + block->offset = 0; + block->length = 0; + block->count = 0; + + esl_sq_Reuse(sq); + if (n_targetseqs == 0) status = eslEOF; //this is to handle the end-case of a restrictdb scenario, where no more targets are required, and we want to mark the list as complete + while (block->length < MAX_BLOCK_SIZE && (n_targetseqs < 0 || block->count < n_targetseqs) && (status = esl_sqio_ReadInfo(sqfp, sq)) == eslOK) + { + if (block->count == 0) block->offset = sq->roff; + block->length = sq->eoff - block->offset + 1; + block->count++; + esl_sq_Reuse(sq); + } + + if (block->count > 0) + if (status == eslEOF || block->count == n_targetseqs) + status = eslOK; + if (status == eslEOF) list->complete = 1; + + /* add the block to the list of known blocks */ + if (status == eslOK) + { + int inx; + + if (list->last >= list->size) + { + void *tmp; + list->size += 500; + ESL_RALLOC(list->blocks, tmp, sizeof(SEQ_BLOCK) * list->size); + } + + inx = list->last++; + list->blocks[inx].offset = block->offset; + list->blocks[inx].length = block->length; + list->blocks[inx].count = block->count; + } + + return status; + + ERROR: + return eslEMEM; +} + +/* mpi_master() + * The MPI version of hmmbuild. + * Follows standard pattern for a master/worker load-balanced MPI program (J1/78-79). + * + * A master can only return if it's successful. + * Where we use EXCEPTION mechanism and ERROR block, it's for convenience; + * we know we're using a fatal exception handler. + * + * Errors in an MPI master come in two classes: recoverable and nonrecoverable. + * + * Recoverable errors include all worker-side errors, and any + * master-side error that do not affect MPI communication. Error + * messages from recoverable messages are delayed until we've cleanly + * shut down the workers. + * + * Unrecoverable errors are master-side errors that may affect MPI + * communication, meaning we cannot count on being able to reach the + * workers and shut them down. Unrecoverable errors result in immediate + * p7_Fail()'s, which will cause MPI to shut down the worker processes + * uncleanly. + */ +static int +mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* output file for results (default stdout) */ + FILE *afp = NULL; /* alignment output file (-A option) */ + FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */ + FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */ + FILE *pfamtblfp= NULL; /* output stream for pfam-style tabular output (--pfamtblout) */ + int qformat = eslSQFILE_UNKNOWN; /* format of qfile */ + P7_BG *bg = NULL; /* null model */ + ESL_SQFILE *qfp = NULL; /* open qfile */ + ESL_SQ *qsq = NULL; /* query sequence */ + int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */ + ESL_SQFILE *dbfp = NULL; /* open dbfile */ + ESL_SQ *dbsq = NULL; /* target sequence */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_BUILDER *bld = NULL; /* HMM construction configuration */ + ESL_STOPWATCH *w = NULL; /* for timing */ + int nquery = 0; + int seed; + int textw; + int status = eslOK; + int qstatus = eslOK; + int sstatus = eslOK; + int dest; + + char *mpi_buf = NULL; /* buffer used to pack/unpack structures */ + int mpi_size = 0; /* size of the allocated buffer */ + BLOCK_LIST *list = NULL; + SEQ_BLOCK block; + + int i; + int size; + MPI_Status mpistatus; + + int n_targets; + + /* Initializations */ + abc = esl_alphabet_Create(eslAMINO); + w = esl_stopwatch_Create(); + if (esl_opt_GetBoolean(go, "--notextw")) textw = 0; + else textw = esl_opt_GetInteger(go, "--textw"); + esl_stopwatch_Start(w); + + /* If caller declared input formats, decode them */ + if (esl_opt_IsOn(go, "--qformat")) { + qformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (qformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + if (esl_opt_IsOn(go, "--tformat")) { + dbformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + bg = p7_bg_Create(abc); + + /* Initialize a default builder configuration, + * then set only the options we need for single sequence search + */ + bld = p7_builder_Create(NULL, abc); + if ((seed = esl_opt_GetInteger(go, "--seed")) > 0) + { /* a little wasteful - we're blowing a couple of usec by reinitializing */ + esl_randomness_Init(bld->r, seed); + bld->do_reseeding = TRUE; + } + bld->EmL = esl_opt_GetInteger(go, "--EmL"); + bld->EmN = esl_opt_GetInteger(go, "--EmN"); + bld->EvL = esl_opt_GetInteger(go, "--EvL"); + bld->EvN = esl_opt_GetInteger(go, "--EvN"); + bld->EfL = esl_opt_GetInteger(go, "--EfL"); + bld->EfN = esl_opt_GetInteger(go, "--EfN"); + bld->Eft = esl_opt_GetReal (go, "--Eft"); + + if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (bld, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + else status = p7_builder_LoadScoreSystem(bld, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + if (status != eslOK) mpi_failure("Failed to set single query seq score system:\n%s\n", bld->errbuf); + + /* Open results output files */ + if (esl_opt_IsOn(go, "-o") && (ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) + mpi_failure("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); + if (esl_opt_IsOn(go, "-A") && (afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) + mpi_failure("Failed to open alignment output file %s for writing\n", esl_opt_GetString(go, "-A")); + if (esl_opt_IsOn(go, "--tblout") && (tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) + mpi_failure("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp")); + if (esl_opt_IsOn(go, "--domtblout") && (domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) + mpi_failure("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp")); + if (esl_opt_IsOn(go, "--pfamtblout") && (pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL) + mpi_failure("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout")); + + /* Open the target sequence database for sequential access. */ + status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open target sequence database %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) mpi_failure("Target sequence database file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile); + dbsq = esl_sq_CreateDigital(abc); + + if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) { + if (esl_opt_IsUsed(go, "--ssifile")) + esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile")); + else + esl_sqfile_OpenSSI(dbfp, NULL); + } + + + + /* Open the query sequence file */ + status = esl_sqfile_OpenDigital(abc, cfg->qfile, qformat, NULL, &qfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->qfile); + else if (status == eslEFORMAT) mpi_failure("Sequence file %s is empty or misformatted\n", cfg->qfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure ("Unexpected error %d opening sequence file %s\n", status, cfg->qfile); + qsq = esl_sq_CreateDigital(abc); + + ESL_ALLOC(list, sizeof(SEQ_BLOCK)); + list->complete = 0; + list->size = 0; + list->current = 0; + list->last = 0; + list->blocks = NULL; + + + /* Show header output */ + output_header(ofp, go, cfg->qfile, cfg->dbfile); + + if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general + sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key); + if (sstatus != eslOK) + p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key); + } + + + /* Outer loop over sequence queries */ + while ((qstatus = esl_sqio_Read(qfp, qsq)) == eslOK) + { + P7_PIPELINE *pli = NULL; /* processing pipeline */ + P7_TOPHITS *th = NULL; /* top-scoring sequence hits */ + P7_OPROFILE *om = NULL; /* optimized query profile */ + int seq_cnt = 0; + + nquery++; + if (qsq->n == 0) continue; /* skip zero length seqs as if they aren't even present */ + + esl_stopwatch_Start(w); + + n_targets = cfg->n_targetseq; + + /* seqfile may need to be rewound (multiquery mode) */ + if (nquery > 1) list->current = 0; + + if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->acc[0] != '\0' && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->desc[0] != '\0' && fprintf(ofp, "Description: %s\n", qsq->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Build the model */ + p7_SingleBuilder(bld, qsq, bg, NULL, NULL, NULL, &om); /* bypass HMM - only need model */ + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */ + p7_pli_NewModel(pli, om, bg); + + /* Main loop: */ + while ((n_targets==-1 || seq_cnt<=n_targets) && (sstatus = next_block(dbfp, dbsq, list, &block, n_targets-seq_cnt)) == eslOK ) + { + seq_cnt += block.count; + + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_READY_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + + MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD); + } + + if (n_targets!=-1 && seq_cnt==n_targets) + sstatus = eslEOF; + + switch(sstatus) + { + case eslEFORMAT: + mpi_failure("Parse failed (sequence file %s):\n%s\n", + dbfp->filename, esl_sqfile_GetErrorBuf(dbfp)); + break; + case eslEOF: + break; + default: + mpi_failure("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename); + } + + block.offset = 0; + block.length = 0; + block.count = 0; + + /* wait for all workers to finish up their work blocks */ + for (i = 1; i < cfg->nproc; ++i) + { + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_READY_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + } + + /* merge the results of the search results */ + for (dest = 1; dest < cfg->nproc; ++dest) + { + P7_PIPELINE *mpi_pli = NULL; + P7_TOPHITS *mpi_th = NULL; + + /* send an empty block to signal the worker they are done */ + MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD); + + /* wait for the results */ + if ((status = p7_tophits_MPIRecv(dest, HMMER_TOPHITS_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, &mpi_th)) != eslOK) + mpi_failure("Unexpected error %d receiving tophits from %d", status, dest); + + if ((status = p7_pipeline_MPIRecv(dest, HMMER_PIPELINE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size, go, &mpi_pli)) != eslOK) + mpi_failure("Unexpected error %d receiving pipeline from %d", status, dest); + + p7_tophits_Merge(th, mpi_th); + p7_pipeline_Merge(pli, mpi_pli); + + p7_pipeline_Destroy(mpi_pli); + p7_tophits_Destroy(mpi_th); + } + + /* Print the results. */ + p7_tophits_SortBySortkey(th); + p7_tophits_Threshold(th, pli); + p7_tophits_Targets(ofp, th, pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, th, pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, th, pli, (nquery == 1)); + if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, th, pli, (nquery == 1)); + if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, qsq->name, qsq->acc, th, pli); + + esl_stopwatch_Stop(w); + p7_pli_Statistics(ofp, pli, w); + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Output the results in an MSA (-A option) */ + if (afp) { + ESL_MSA *msa = NULL; + + if ( p7_tophits_Alignment(th, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) == eslOK) + { + esl_msa_SetName (msa, om->name, -1); // don't use qsq->name; it's optional in a ESL_SQ, and SingleBuilder took care of naming model. + if (qsq->acc[0] != '\0') esl_msa_SetAccession(msa, qsq->acc, -1); + if (qsq->desc[0] != '\0') esl_msa_SetDesc (msa, qsq->desc, -1); + esl_msa_FormatAuthor(msa, "phmmer (HMMER %s)", HMMER_VERSION); + + esl_msa_FormatAuthor(msa, "phmmer (HMMER %s)", HMMER_VERSION); + + if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM); + else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM); + + if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + else { if (fprintf(ofp, "# No hits satisfy inclusion thresholds; no alignment saved\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + esl_msa_Destroy(msa); + } + + p7_tophits_Destroy(th); + p7_pipeline_Destroy(pli); + p7_oprofile_Destroy(om); + esl_sq_Reuse(qsq); + } /* end outer loop over query sequences */ + if (qstatus == eslEFORMAT) mpi_failure("Parse failed (sequence file %s):\n%s\n", + qfp->filename, esl_sqfile_GetErrorBuf(qfp)); + else if (qstatus != eslEOF) mpi_failure("Unexpected error %d reading sequence file %s", + qstatus, qfp->filename); + + /* monitor all the workers to make sure they have ended */ + for (i = 1; i < cfg->nproc; ++i) + { + if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0) + mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE); + + MPI_Get_count(&mpistatus, MPI_PACKED, &size); + if (mpi_buf == NULL || size > mpi_size) { + void *tmp; + ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size); + mpi_size = size; + } + + dest = mpistatus.MPI_SOURCE; + MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus); + + if (mpistatus.MPI_TAG == HMMER_ERROR_TAG) + mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf); + if (mpistatus.MPI_TAG != HMMER_TERMINATING_TAG) + mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest); + } + + /* Terminate outputs - any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (domtblfp) p7_tophits_TabularTail(domtblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (pfamtblfp)p7_tophits_TabularTail(pfamtblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go); + if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Cleanup - prepare for successful exit + */ + free(list); + if (mpi_buf != NULL) free(mpi_buf); + + p7_bg_Destroy(bg); + + esl_sqfile_Close(dbfp); + esl_sqfile_Close(qfp); + esl_stopwatch_Destroy(w); + esl_sq_Destroy(dbsq); + esl_sq_Destroy(qsq); + p7_builder_Destroy(bld); + esl_alphabet_Destroy(abc); + + if (ofp != stdout) fclose(ofp); + if (afp != NULL) fclose(afp); + if (tblfp != NULL) fclose(tblfp); + if (domtblfp != NULL) fclose(domtblfp); + if (pfamtblfp) fclose(pfamtblfp); + return eslOK; + + ERROR: + return status; +} + + +static int +mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + int qformat = eslSQFILE_UNKNOWN; /* format of qfile */ + P7_BG *bg = NULL; /* null model */ + ESL_SQFILE *qfp = NULL; /* open qfile */ + ESL_SQ *qsq = NULL; /* query sequence */ + int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */ + ESL_SQFILE *dbfp = NULL; /* open dbfile */ + ESL_SQ *dbsq = NULL; /* target sequence */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_BUILDER *bld = NULL; /* HMM construction configuration */ + ESL_STOPWATCH *w = NULL; /* for timing */ + int seed; + int status = eslOK; + int qstatus = eslOK; + int sstatus = eslOK; + + char *mpi_buf = NULL; /* buffer used to pack/unpack structures */ + int mpi_size = 0; /* size of the allocated buffer */ + + MPI_Status mpistatus; + + /* Initializations */ + abc = esl_alphabet_Create(eslAMINO); + w = esl_stopwatch_Create(); + bg = p7_bg_Create(abc); + + /* If caller declared input formats, decode them */ + if (esl_opt_IsOn(go, "--qformat")) { + qformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (qformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + if (esl_opt_IsOn(go, "--tformat")) { + dbformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + /* Initialize a default builder configuration, + * then set only the options we need for single sequence search + */ + bld = p7_builder_Create(NULL, abc); + if ((seed = esl_opt_GetInteger(go, "--seed")) > 0) + { /* a little wasteful - we're blowing a couple of usec by reinitializing */ + esl_randomness_Init(bld->r, seed); + bld->do_reseeding = TRUE; + } + bld->EmL = esl_opt_GetInteger(go, "--EmL"); + bld->EmN = esl_opt_GetInteger(go, "--EmN"); + bld->EvL = esl_opt_GetInteger(go, "--EvL"); + bld->EvN = esl_opt_GetInteger(go, "--EvN"); + bld->EfL = esl_opt_GetInteger(go, "--EfL"); + bld->EfN = esl_opt_GetInteger(go, "--EfN"); + bld->Eft = esl_opt_GetReal (go, "--Eft"); + + if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (bld, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + else status = p7_builder_LoadScoreSystem(bld, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), bg); + if (status != eslOK) mpi_failure("Failed to set single query seq score system:\n%s\n", bld->errbuf); + + /* Open the target sequence database for sequential access. */ + status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open target sequence database %s for reading\n", cfg->dbfile); + else if (status == eslEFORMAT) mpi_failure("Target sequence database file %s is empty or misformatted\n", cfg->dbfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile); + dbsq = esl_sq_CreateDigital(abc); + + /* Open the query sequence file */ + status = esl_sqfile_OpenDigital(abc, cfg->qfile, qformat, NULL, &qfp); + if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->qfile); + else if (status == eslEFORMAT) mpi_failure("Sequence file %s is empty or misformatted\n", cfg->qfile); + else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) mpi_failure ("Unexpected error %d opening sequence file %s\n", status, cfg->qfile); + qsq = esl_sq_CreateDigital(abc); + + + + /* Outer loop over sequence queries */ + while ((qstatus = esl_sqio_Read(qfp, qsq)) == eslOK) + { + P7_PIPELINE *pli = NULL; /* processing pipeline */ + P7_TOPHITS *th = NULL; /* top-scoring sequence hits */ + P7_OPROFILE *om = NULL; /* optimized query profile */ + + SEQ_BLOCK block; + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_READY_TAG, MPI_COMM_WORLD); + + if (qsq->n == 0) continue; /* skip zero length seqs as if they aren't even present */ + + esl_stopwatch_Start(w); + + /* Build the model */ + p7_SingleBuilder(bld, qsq, bg, NULL, NULL, NULL, &om); /* bypass HMM - only need model */ + + /* Create processing pipeline and hit list */ + th = p7_tophits_Create(); + pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */ + p7_pli_NewModel(pli, om, bg); + + /* receive a sequence block from the master */ + MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, HMMER_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus); + while (block.count > 0) + { + uint64_t length = 0; + uint64_t count = block.count; + + status = esl_sqfile_Position(dbfp, block.offset); + if (status != eslOK) mpi_failure("Cannot position sequence database to %ld\n", block.offset); + + while (count > 0 && (sstatus = esl_sqio_Read(dbfp, dbsq)) == eslOK) + { + length = dbsq->eoff - block.offset + 1; + + p7_pli_NewSeq(pli, dbsq); + p7_bg_SetLength(bg, dbsq->n); + p7_oprofile_ReconfigLength(om, dbsq->n); + + p7_Pipeline(pli, om, bg, dbsq, NULL, th); + + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(pli); + + --count; + } + + /* lets do a little bit of sanity checking here to make sure the blocks are the same */ + if (count > 0) mpi_failure("Block count mismatch - expected %ld found %ld at offset %ld\n", block.count, block.count - count, block.offset); + if (block.length != length) mpi_failure("Block length mismatch - expected %ld found %ld at offset %ld\n", block.length, length, block.offset); + + /* inform the master we need another block of sequences */ + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_READY_TAG, MPI_COMM_WORLD); + + /* wait for the next block of sequences */ + MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, HMMER_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus); + } + + esl_stopwatch_Stop(w); + + /* Send the top hits back to the master. */ + p7_tophits_MPISend(th, 0, HMMER_TOPHITS_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + p7_pipeline_MPISend(pli, 0, HMMER_PIPELINE_TAG, MPI_COMM_WORLD, &mpi_buf, &mpi_size); + + p7_tophits_Destroy(th); + p7_pipeline_Destroy(pli); + p7_oprofile_Destroy(om); + esl_sq_Reuse(qsq); + } /* end outer loop over query sequences */ + if (qstatus == eslEFORMAT) mpi_failure("Parse failed (sequence file %s):\n%s\n", + qfp->filename, esl_sqfile_GetErrorBuf(qfp)); + else if (qstatus != eslEOF) mpi_failure("Unexpected error %d reading sequence file %s", + qstatus, qfp->filename); + + status = 0; + MPI_Send(&status, 1, MPI_INT, 0, HMMER_TERMINATING_TAG, MPI_COMM_WORLD); + + if (mpi_buf != NULL) free(mpi_buf); + + p7_bg_Destroy(bg); + + esl_sqfile_Close(dbfp); + esl_sqfile_Close(qfp); + esl_stopwatch_Destroy(w); + esl_sq_Destroy(dbsq); + esl_sq_Destroy(qsq); + p7_builder_Destroy(bld); + esl_alphabet_Destroy(abc); + return eslOK; +} +#endif /*HMMER_MPI*/ + + +static int +serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int n_targetseqs) +{ + int sstatus = eslOK; + ESL_SQ *dbsq = NULL; /* one target sequence (digital) */ + int seq_cnt = 0; + + dbsq = esl_sq_CreateDigital(info->om->abc); + + /* Main loop: */ + while ((n_targetseqs==-1 || seq_cntpli, dbsq); + p7_bg_SetLength(info->bg, dbsq->n); + p7_oprofile_ReconfigLength(info->om, dbsq->n); + + p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th); + + seq_cnt++; + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(info->pli); + } + + if (n_targetseqs!=-1 && seq_cnt==n_targetseqs) + sstatus = eslEOF; + + esl_sq_Destroy(dbsq); + + return sstatus; +} + +#ifdef HMMER_THREADS +static int +thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, int n_targetseqs) +{ + int status = eslOK; + int sstatus = eslOK; + int eofCount = 0; + ESL_SQ_BLOCK *block; + void *newBlock; + + esl_workqueue_Reset(queue); + esl_threads_WaitForStart(obj); + + status = esl_workqueue_ReaderUpdate(queue, NULL, &newBlock); + if (status != eslOK) p7_Fail("Work queue reader failed"); + + /* Main loop: */ + while (sstatus == eslOK) + { + block = (ESL_SQ_BLOCK *) newBlock; + + if (n_targetseqs == 0) + { + block->count = 0; + sstatus = eslEOF; + } else { + sstatus = esl_sqio_ReadBlock(dbfp, block, -1, n_targetseqs, /*max_init_window=*/FALSE, FALSE); + n_targetseqs -= block->count; + } + + if (sstatus == eslEOF) + { + if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK; + ++eofCount; + } + + if (sstatus == eslOK) + { + status = esl_workqueue_ReaderUpdate(queue, block, &newBlock); + if (status != eslOK) p7_Fail("Work queue reader failed"); + } + } + + status = esl_workqueue_ReaderUpdate(queue, block, NULL); + if (status != eslOK) p7_Fail("Work queue reader failed"); + + if (sstatus == eslEOF) + { + /* wait for all the threads to complete */ + esl_threads_WaitForFinish(obj); + esl_workqueue_Complete(queue); + } + + return sstatus; +} + +static void +pipeline_thread(void *arg) +{ + int i; + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + ESL_SQ_BLOCK *block = NULL; + void *newBlock; + + impl_Init(); + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock); + if (status != eslOK) p7_Fail("Work queue worker failed"); + + /* loop until all blocks have been processed */ + block = (ESL_SQ_BLOCK *) newBlock; + while (block->count > 0) + { + /* Main loop: */ + for (i = 0; i < block->count; ++i) + { + ESL_SQ *dbsq = block->list + i; + + p7_pli_NewSeq(info->pli, dbsq); + p7_bg_SetLength(info->bg, dbsq->n); + p7_oprofile_ReconfigLength(info->om, dbsq->n); + + p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th); + + esl_sq_Reuse(dbsq); + p7_pipeline_Reuse(info->pli); + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, &newBlock); + if (status != eslOK) p7_Fail("Work queue worker failed"); + + block = (ESL_SQ_BLOCK *) newBlock; + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, NULL); + if (status != eslOK) p7_Fail("Work queue worker failed"); + + esl_threads_Finished(obj, workeridx); + return; +} +#endif /* HMMER_THREADS */ + + diff --git a/bioinformaticsProject/hmmer/src/seqmodel.c b/bioinformaticsProject/hmmer/src/seqmodel.c new file mode 100644 index 0000000..bc7868d --- /dev/null +++ b/bioinformaticsProject/hmmer/src/seqmodel.c @@ -0,0 +1,302 @@ +/* Creating profile HMMs from single sequences. + * + * Contents: + * 1. Routines in the exposed API. + * 2. Experiment driver: generating HMMs for hmmsim tests + * 3. Unit tests. + * 4. Test driver. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +/***************************************************************** + * 1. Routines in the exposed API. + *****************************************************************/ + + +/* Function: p7_Seqmodel() + * Synopsis: Make a profile HMM from a single sequence. + * + * Purpose: Make a profile HMM from a single sequence, for + * probabilistic Smith/Waterman alignment, HMMER3-style. + * + * The query is digital sequence of length + * residues in alphabet , named . + * + * The scoring system is given by , , , and + * . is a $K \times K$ matrix giving + * conditional residue probabilities $P(a \mid b)}$; these + * are typically obtained by reverse engineering a score + * matrix like BLOSUM62. is a vector of $K$ background + * frequencies $p_a$. and are the + * probabilities assigned to gap-open ($t_{MI}$ and + * $t_{MD}$) and gap-extend ($t_{II}$ and $t_{DD}$) + * transitions. + * + * Args: + * + * Returns: on success, and a newly allocated HMM is returned + * in . + * + * Throws: on allocation error, and <*ret_hmm> is . + */ +int +p7_Seqmodel(const ESL_ALPHABET *abc, ESL_DSQ *dsq, int M, char *name, + ESL_DMATRIX *Q, float *f, double popen, double pextend, + P7_HMM **ret_hmm) +{ + int status; + P7_HMM *hmm = NULL; + char *logmsg = "[HMM created from a query sequence]"; + int k; + + if ((hmm = p7_hmm_Create(M, abc)) == NULL) { status = eslEMEM; goto ERROR; } + + for (k = 0; k <= M; k++) + { + /* Use rows of P matrix as source of match emission vectors */ + if (k > 0) esl_vec_D2F(Q->mx[(int) dsq[k]], abc->K, hmm->mat[k]); + + /* Set inserts to background for now. This will be improved. */ + esl_vec_FCopy(f, abc->K, hmm->ins[k]); + + hmm->t[k][p7H_MM] = 1.0 - 2 * popen; + hmm->t[k][p7H_MI] = popen; + hmm->t[k][p7H_MD] = popen; + hmm->t[k][p7H_IM] = 1.0 - pextend; + hmm->t[k][p7H_II] = pextend; + hmm->t[k][p7H_DM] = 1.0 - pextend; + hmm->t[k][p7H_DD] = pextend; + } + + /* Deal w/ special stuff at node M, overwriting a little of what we + * just did. + */ + hmm->t[M][p7H_MM] = 1.0 - popen; + hmm->t[M][p7H_MD] = 0.; + hmm->t[M][p7H_DM] = 1.0; + hmm->t[M][p7H_DD] = 0.; + + /* Add mandatory annotation + */ + p7_hmm_SetName(hmm, name); + p7_hmm_AppendComlog(hmm, 1, &logmsg); + hmm->nseq = 1; + p7_hmm_SetCtime(hmm); + hmm->checksum = 0; + + *ret_hmm = hmm; + return eslOK; + + ERROR: + if (hmm != NULL) p7_hmm_Destroy(hmm); + *ret_hmm = NULL; + return status; +} + + +/***************************************************************** + * 2. Experiment driver + *****************************************************************/ + +#ifdef p7EXP_J2_1 +/* Asking if single sequence queries (probabilistic Smith/Waterman) + * still follow expected score distributions. This program creates + * HMMs from one or more random sequences, and the HMMs can then + * be tested in hmmsim. + * + * gcc -o seq2hmm -g -Wall -Dp7EXP_J2_1 -L../easel -I ../easel -L. -I. seqmodel.c -lhmmer -leasel -lm + * ./seq2hmm + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_random.h" +#include "esl_alphabet.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_dmatrix.h" +#include "esl_scorematrix.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-m", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "use substitution score matrix file from ", 0 }, + { "-q", eslARG_REAL, "0.1", NULL, "0<=x<0.5",NULL, NULL, NULL, "gap open probability", 0 }, + { "-r", eslARG_REAL, "0.4", NULL, "0<=x<1", NULL, NULL, NULL, "gap extend probability", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options] "; +static char banner[] = "collect histograms of probabilistic S/W for E-value calculations"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + char *hmmfile = esl_opt_GetArg(go, 1); + char *qfile = esl_opt_GetArg(go, 2); + ESL_SQ *qsq = esl_sq_CreateDigital(abc); + ESL_SQFILE *qfp = NULL; + FILE *hmmfp = NULL; + ESL_SCOREMATRIX *S = esl_scorematrix_Create(abc); + ESL_DMATRIX *Q = NULL; + P7_BG *bg = p7_bg_Create(abc); + P7_HMM *hmm = NULL; + double *fa = NULL; + double popen = esl_opt_GetReal (go, "-q"); + double pextend = esl_opt_GetReal (go, "-r"); + char *mxfile = esl_opt_GetString(go, "-m"); + char errbuf[eslERRBUFSIZE]; + double slambda; + int a,b; + int status; + + /* Reverse engineer a scoring matrix to obtain conditional prob's + * that we'll use for the single-seq query HMM. Because score mx is + * symmetric, we can set up P[a][b] = P(b | a), so we can use the + * matrix rows as HMM match emission vectors. This means dividing + * the joint probs through by f_a. + */ + if (mxfile == NULL) { + if (esl_scorematrix_Set("BLOSUM62", S) != eslOK) esl_fatal("failed to set BLOSUM62 scores"); + } else { + ESL_FILEPARSER *efp = NULL; + + if ( esl_fileparser_Open(mxfile, NULL, &efp) != eslOK) esl_fatal("failed to open score file %s", mxfile); + if ( esl_scorematrix_Read(efp, abc, &S) != eslOK) esl_fatal("failed to read matrix from %s", mxfile); + esl_fileparser_Close(efp); + } + + /* A wasteful conversion of the HMMER single-precision background probs to Easel double-prec */ + ESL_ALLOC(fa, sizeof(double) * bg->abc->K); + esl_vec_F2D(bg->f, bg->abc->K, fa); + + /* Backcalculate joint probabilities Q, given score matrix S and background frequencies fa */ + status = esl_scorematrix_ProbifyGivenBG(S, fa, fa, &slambda, &Q); + if (status == eslEINVAL) esl_fatal("built-in score matrix %s has no valid solution for lambda", matrix); + else if (status == eslENOHALT) esl_fatal("failed to solve score matrix %s for lambda", matrix); + else if (status != eslOK) esl_fatal("unexpected error in solving score matrix %s for probability parameters", matrix); + + esl_scorematrix_JointToConditionalOnQuery(abc, Q); + + /* Open the query sequence file in FASTA format */ + status = esl_sqfile_Open(qfile, eslSQFILE_FASTA, NULL, &qfp); + if (status == eslENOTFOUND) esl_fatal("No such file %s.", qfile); + else if (status == eslEFORMAT) esl_fatal("Format of %s unrecognized.", qfile); + else if (status == eslEINVAL) esl_fatal("Can't autodetect stdin or .gz."); + else if (status != eslOK) esl_fatal("Open of %s failed, code %d.", qfile, status); + + /* Open the output HMM file */ + if ((hmmfp = fopen(hmmfile, "w")) == NULL) esl_fatal("Failed to open output HMM file %s", hmmfile); + + /* For each sequence, build a model and save it. + */ + while ((status = esl_sqio_Read(qfp, qsq)) == eslOK) + { + p7_Seqmodel(abc, qsq->dsq, qsq->n, qsq->name, Q, bg->f, popen, pextend, &hmm); + if ( p7_hmm_Validate(hmm, errbuf, 1e-5) != eslOK) esl_fatal("HMM validation failed: %s\n", errbuf); + if ( p7_hmmfile_WriteASCII(hmmfp, -1, hmm) != eslOK) esl_fatal("HMM save failed"); + + p7_hmm_Destroy(hmm); + } + if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s line %" PRId64 "):\n%s\n", + qfp->filename, qfp->linenumber, qfp->errbuf); + else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", + status, qfp->filename); + + esl_dmatrix_Destroy(Q); + esl_scorematrix_Destroy(S); + free(fa); + free(fb); + esl_sq_Destroy(qsq); + esl_sqfile_Close(qfp); + fclose(hmmfp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return 0; +} +#endif /*p7EXP_J2_1*/ + + +/***************************************************************** + * x. Unit tests. + *****************************************************************/ +#ifdef p7SEQMODEL_TESTDRIVE +#include + +static void +utest_normalization(ESL_GETOPTS *go) +{ + char *msg = "seqmodel normalization utest failed"; + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + char *seq = "ACDEFGHIKLMNPQRSTVWYBJZOUX"; + int L = strlen(seq); + ESL_DSQ *dsq = NULL; + float popen = 0.1; + float pextend = 0.4; + P7_BUILDER *bld = NULL; + P7_BG *bg = p7_bg_Create(abc); + P7_HMM *hmm = NULL; + char errbuf[eslERRBUFSIZE]; + + if ( esl_abc_CreateDsq(abc, seq, &dsq) != eslOK) esl_fatal(msg); + if ( (bld = p7_builder_Create(NULL, abc)) == NULL) esl_fatal(msg); + if ( p7_builder_LoadScoreSystem(bld, "BLOSUM62", popen, pextend, bg) != eslOK) esl_fatal(msg); + if ( p7_Seqmodel(abc, dsq, L, "aatest", bld->Q, bg->f, bld->popen, bld->pextend, &hmm) != eslOK) esl_fatal(msg); + + if (p7_hmm_Validate(hmm, errbuf, 0.0001) != eslOK) esl_fatal("normalization utest failed\n%s\n", errbuf); + + free(dsq); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + p7_builder_Destroy(bld); + esl_alphabet_Destroy(abc); +} + +#endif /*p7SEQMODEL_TESTDRIVE*/ +/*---------------- end, unit tests ------------------------------*/ + +/***************************************************************** + * x. Test driver + *****************************************************************/ +#ifdef p7SEQMODEL_TESTDRIVE + +#include "p7_config.h" +#include "easel.h" +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "unit test driver for seqmodel.c: single sequence query construction"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + + utest_normalization(go); + + esl_getopts_Destroy(go); + exit(0); /* success */ +} + +#endif /*p7SEQMODEL_TESTDRIVE*/ +/*---------------- end, test driver -----------------------------*/ + + + + + diff --git a/bioinformaticsProject/hmmer/src/tracealign.c b/bioinformaticsProject/hmmer/src/tracealign.c new file mode 100644 index 0000000..87ffcd6 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/tracealign.c @@ -0,0 +1,1307 @@ +/* Construction of multiple alignments from traces. + * + * Contents: + * 1. API for aligning sequence or MSA traces + * 2. Internal functions used by the API + * 3. Test driver + * + * SRE, Tue Oct 21 19:38:19 2008 [Casa de Gatos] + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +static int map_new_msa(P7_TRACE **tr, int nseq, int M, int optflags, int **ret_inscount, int **ret_matuse, int **ret_matmap, int *ret_alen); +static ESL_DSQ get_dsq_z(ESL_SQ **sq, const ESL_MSA *premsa, P7_TRACE **tr, int idx, int z); +static int make_digital_msa(ESL_SQ **sq, const ESL_MSA *premsa, P7_TRACE **tr, int nseq, const int *matuse, const int *matmap, int M, int alen, int optflags, ESL_MSA **ret_msa); +static int make_text_msa (ESL_SQ **sq, const ESL_MSA *premsa, P7_TRACE **tr, int nseq, const int *matuse, const int *matmap, int M, int alen, int optflags, ESL_MSA **ret_msa); +static int annotate_rf(ESL_MSA *msa, int M, const int *matuse, const int *matmap); +static int annotate_mm(ESL_MSA *msa, P7_HMM *hmm, const int *matuse, const int *matmap); +static int annotate_posterior_probability(ESL_MSA *msa, P7_TRACE **tr, const int *matmap, int M, int optflags); +static int rejustify_insertions_digital ( ESL_MSA *msa, const int *inserts, const int *matmap, const int *matuse, int M); +static int rejustify_insertions_text (const ESL_ALPHABET *abc, ESL_MSA *msa, const int *inserts, const int *matmap, const int *matuse, int M); + + +/***************************************************************** + * 1. API for aligning sequence or MSA traces + *****************************************************************/ + +/* Function: p7_tracealign_Seqs() + * Synopsis: Convert array of traces (for a sequence array) to a new MSA. + * Incept: SRE, Tue Oct 21 19:40:33 2008 [Janelia] + * + * Purpose: Convert an array of traces , + * corresponding to an array of digital sequences + * aligned to a model of + * length , to a new multiple sequence alignment. + * The new alignment structure is allocated here, and returned + * in <*ret_msa>. + * + * As a special case, the traces may contain I->D and D->I + * transitions. This feature is used by + * to reconstruct an input alignment without modification + * from trace doctoring. + * + * controls some optional behaviors in producing + * the alignment, as follows: + * + * : creates the MSA in digital mode, as + * opposed to a default text mode. + * + * : create a column for every + * consensus column in the model, even if it means having + * all gap characters (deletions) in a column; this + * guarantees that the alignment will have at least + * columns. The default is to only show columns that have + * at least one residue in them. + * + * : trim off any residues that get assigned to + * flanking N,C states (in profile traces) or I_0 and I_M + * (in core traces). + * + * The can be combined by logical OR; for + * example, . + * + * Args: sq - array of digital sequences, 0..nseq-1 + * tr - array of tracebacks, 0..nseq-1 + * nseq - number of sequences + * M - length of model sequences were aligned to + * optflags - flags controlling optional behaviours. + * ret_msa - RETURN: new multiple sequence alignment + * + * Returns: on success, and <*ret_msa> points to a new + * object. Caller is responsible for free'ing + * this new MSA with . + * + * Throws: on allocation failure; <*ret_msa> is . + * + * Notes: * why a text mode, when most of HMMER works in digital + * sequences and alignments? Text mode MSAs are created + * for output, whereas digital mode MSAs are created for + * internal use. Text mode allows HMMER's output + * conventions to be used for match vs. insert columns: + * lowercase/. for residues/gaps in inserts, uppercase/- + * for residues/gaps in match columns. + * + * * why not pass HMM as an argument, so we can transfer + * column annotation? In , the + * HMM is unavailable -- because of constraints of what's + * made available to the master process in an MPI + * implementation. (We could make the HMM an optional + * argument.) + */ +int +p7_tracealign_Seqs(ESL_SQ **sq, P7_TRACE **tr, int nseq, int M, int optflags, P7_HMM *hmm, ESL_MSA **ret_msa) +{ + ESL_MSA *msa = NULL; /* RETURN: new MSA */ + const ESL_ALPHABET *abc = sq[0]->abc; + int *inscount = NULL; /* array of max gaps between aligned columns */ + int *matmap = NULL; /* matmap[k] = apos of match k matmap[1..M] = [1..alen] */ + int *matuse = NULL; /* TRUE if an alignment column is associated with match state k [1..M] */ + int idx; /* counter over sequences */ + int alen; /* width of alignment */ + int status; + + if ((status = map_new_msa(tr, nseq, M, optflags, &inscount, &matuse, &matmap, &alen)) != eslOK) return status; + + if (optflags & p7_DIGITIZE) { if ((status = make_digital_msa(sq, NULL, tr, nseq, matuse, matmap, M, alen, optflags, &msa)) != eslOK) goto ERROR; } + else { if ((status = make_text_msa (sq, NULL, tr, nseq, matuse, matmap, M, alen, optflags, &msa)) != eslOK) goto ERROR; } + + if ((status = annotate_rf(msa, M, matuse, matmap)) != eslOK) goto ERROR; + if (hmm) + if ((status = annotate_mm(msa, hmm, matuse, matmap)) != eslOK) goto ERROR; + if ((status = annotate_posterior_probability(msa, tr, matmap, M, optflags)) != eslOK) goto ERROR; + + if (optflags & p7_DIGITIZE) rejustify_insertions_digital( msa, inscount, matmap, matuse, M); + else rejustify_insertions_text (abc, msa, inscount, matmap, matuse, M); + + for (idx = 0; idx < nseq; idx++) + { + esl_msa_SetSeqName(msa, idx, sq[idx]->name, -1); + if (sq[idx]->acc[0] != '\0') esl_msa_SetSeqAccession (msa, idx, sq[idx]->acc, -1); + if (sq[idx]->desc[0] != '\0') esl_msa_SetSeqDescription(msa, idx, sq[idx]->desc, -1); + msa->wgt[idx] = 1.0; + if (msa->sqlen != NULL) msa->sqlen[idx] = sq[idx]->n; + } + + free(inscount); + free(matmap); + free(matuse); + *ret_msa = msa; + return eslOK; + + ERROR: + if (msa != NULL) esl_msa_Destroy(msa); + if (inscount != NULL) free(inscount); + if (matmap != NULL) free(matmap); + if (matuse != NULL) free(matuse); + *ret_msa = NULL; + return status; +} + + +/* Function: p7_tracealign_MSA() + * Synopsis: Convert array of traces (for a previous MSA) to a new MSA. + * Incept: SRE, Mon Mar 2 18:18:22 2009 [Casa de Gatos] + * + * Purpose: Identical to except that the trace + * array accompanies a digital multiple alignment , + * rather than an array of digital sequences. + * + * This gets used in , where we've + * constructed an array of faux traces directly from an + * input alignment, and we want to reconstruct the + * MSA that corresponds to what HMMER actually used + * to build its model (after trace doctoring to be + * compatible with Plan 7, and with <#=RF> annotation + * on assigned consensus columns). + * + * Xref: J4/102. + */ +int +p7_tracealign_MSA(const ESL_MSA *premsa, P7_TRACE **tr, int M, int optflags, ESL_MSA **ret_postmsa) +{ + const ESL_ALPHABET *abc = premsa->abc; + ESL_MSA *msa = NULL; /* RETURN: new MSA */ + int *inscount = NULL; /* array of max gaps between aligned columns */ + int *matmap = NULL; /* matmap[k] = apos of match k matmap[1..M] = [1..alen] */ + int *matuse = NULL; /* TRUE if an alignment column is associated with match state k [1..M] */ + int idx; /* counter over sequences */ + int alen; /* width of alignment */ + int status; + + if ((status = map_new_msa(tr, premsa->nseq, M, optflags, &inscount, &matuse, &matmap, &alen)) != eslOK) return status; + + if (optflags & p7_DIGITIZE) { if ((status = make_digital_msa(NULL, premsa, tr, premsa->nseq, matuse, matmap, M, alen, optflags, &msa)) != eslOK) goto ERROR; } + else { if ((status = make_text_msa (NULL, premsa, tr, premsa->nseq, matuse, matmap, M, alen, optflags, &msa)) != eslOK) goto ERROR; } + + if ((status = annotate_rf(msa, M, matuse, matmap)) != eslOK) goto ERROR; + if ((status = annotate_posterior_probability(msa, tr, matmap, M, optflags)) != eslOK) goto ERROR; + + if (optflags & p7_DIGITIZE) rejustify_insertions_digital( msa, inscount, matmap, matuse, M); + else rejustify_insertions_text (abc, msa, inscount, matmap, matuse, M); + + + /* Transfer information from old MSA to new */ + esl_msa_SetName (msa, premsa->name, -1); + esl_msa_SetDesc (msa, premsa->desc, -1); + esl_msa_SetAccession(msa, premsa->acc, -1); + + for (idx = 0; idx < premsa->nseq; idx++) + { + esl_msa_SetSeqName (msa, idx, premsa->sqname[idx], -1); + if (msa->sqacc) esl_msa_SetSeqAccession (msa, idx, premsa->sqacc[idx], -1); + if (msa->sqdesc) esl_msa_SetSeqDescription(msa, idx, premsa->sqdesc[idx], -1); + msa->wgt[idx] = premsa->wgt[idx]; + } + + if (premsa->flags & eslMSA_HASWGTS) + msa->flags |= eslMSA_HASWGTS; + + free(inscount); + free(matmap); + free(matuse); + *ret_postmsa = msa; + return eslOK; + + ERROR: + if (msa != NULL) esl_msa_Destroy(msa); + if (inscount != NULL) free(inscount); + if (matmap != NULL) free(matmap); + if (matuse != NULL) free(matuse); + *ret_postmsa = NULL; + return status; +} + + + +/* Function: p7_tracealign_computeTraces() + * + * Synopsis: Compute traces for a collection of sequences relative to + * a given HMM + * + * Purpose: Given an and a set of sequences (along with + * an into the first sequence for which a trace is + * desired), calculate the optimal accuracy alignment trace + * for each of sequences. The calling function provides + * a allocated array of P7_TRACEs () into which the + * results are placed. + * + * Return: eslOK if no errors + */ +int +p7_tracealign_computeTraces(P7_HMM *hmm, ESL_SQ **sq, int offset, int N, P7_TRACE **tr) +{ + + P7_OMX *oxf = NULL; /* optimized Forward matrix */ + P7_OMX *oxb = NULL; /* optimized Backward matrix */ + P7_GMX *gxf = NULL; /* generic Forward mx for failover */ + P7_GMX *gxb = NULL; /* generic Backward mx for failover*/ + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; + P7_BG *bg = NULL; + int tfrom, tto; + + int idx; + float fwdsc; /* Forward score */ + float oasc; /* optimal accuracy score */ + int status; + + bg = p7_bg_Create(hmm->abc); + gm = p7_profile_Create (hmm->M, hmm->abc); + om = p7_oprofile_Create(hmm->M, hmm->abc); + + p7_ProfileConfig(hmm, bg, gm, sq[offset]->n, p7_UNILOCAL); + p7_oprofile_Convert(gm, om); + + + oxf = p7_omx_Create(hmm->M, sq[offset]->n, sq[offset]->n); + oxb = p7_omx_Create(hmm->M, sq[offset]->n, sq[offset]->n); + + /* Collect an OA trace for each sequence that needs to be aligned + */ + for (idx = offset; idx < offset+ N; idx++) + { + /* special case: a sequence of length 0. HMMER model can't generate 0 length seq. Set tr->N == 0 as a flag. (bug #h100 fix) */ + if (sq[idx]->n == 0) { tr[idx]->N = 0; continue; } + + p7_omx_GrowTo(oxf, hmm->M, sq[idx]->n, sq[idx]->n); + p7_omx_GrowTo(oxb, hmm->M, sq[idx]->n, sq[idx]->n); + + p7_oprofile_ReconfigLength(om, sq[idx]->n); + + p7_Forward (sq[idx]->dsq, sq[idx]->n, om, oxf, &fwdsc); + p7_Backward(sq[idx]->dsq, sq[idx]->n, om, oxf, oxb, NULL); + + status = p7_Decoding(om, oxf, oxb, oxb); /* is now overwritten with post probabilities */ + + if (status == eslOK) + { + p7_OptimalAccuracy(om, oxb, oxf, &oasc); /* is now overwritten with OA scores */ + p7_OATrace (om, oxb, oxf, tr[idx]); /* tr[idx] is now an OA traceback for seq #idx */ + } + else if (status == eslERANGE) + { + /* Work around the numeric overflow problem in Decoding() + * xref J3/119-121 for commentary; + * also the note in impl_sse/decoding.c::p7_Decoding(). + * + * In short: p7_Decoding() can overflow in cases where the + * model is in unilocal mode (expects to see a single + * "domain") but the target contains more than one domain. + * In searches, I believe this only happens on repetitive + * garbage, because the domain postprocessor is very good + * about identifying single domains before doing posterior + * decoding. But in hmmalign, we're in unilocal mode + * to begin with, and the user can definitely give us a + * multidomain protein. + * + * We need to make this far more robust; but that's probably + * an issue to deal with when we really spend some time + * looking hard at hmmalign performance. For now (Nov 2009; + * in beta tests leading up to 3.0 release) I'm more + * concerned with stabilizing the search programs. + * + * The workaround is to detect the overflow and fail over to + * slow generic routines. + */ + if (gxf == NULL) gxf = p7_gmx_Create(hmm->M, sq[idx]->n); + else p7_gmx_GrowTo(gxf, hmm->M, sq[idx]->n); + + if (gxb == NULL) gxb = p7_gmx_Create(hmm->M, sq[idx]->n); + else p7_gmx_GrowTo(gxb, hmm->M, sq[idx]->n); + + p7_ReconfigLength(gm, sq[idx]->n); + + p7_GForward (sq[idx]->dsq, sq[idx]->n, gm, gxf, &fwdsc); + p7_GBackward(sq[idx]->dsq, sq[idx]->n, gm, gxb, NULL); + p7_GDecoding(gm, gxf, gxb, gxb); + p7_GOptimalAccuracy(gm, gxb, gxf, &oasc); + p7_GOATrace (gm, gxb, gxf, tr[idx]); + p7_gmx_Reuse(gxf); + p7_gmx_Reuse(gxb); + } + + + /* the above steps aren't storing the tfrom/tto values in the trace, + * which are required for downstream processing in this case, so + * hack them here. Note - this treats the whole thing as one domain, + * even if there are really multiple domains. + */ + // skip the parts of the trace that precede the first match state + tfrom = 2; + while (tr[idx]->st[tfrom] != p7T_M) tfrom++; + + tto = tfrom + 1; + //run until the model is exited + while (tr[idx]->st[tto] != p7T_E) tto++; + + tr[idx]->tfrom[0] = tfrom; + tr[idx]->tto[0] = tto - 1; + + + p7_omx_Reuse(oxf); + p7_omx_Reuse(oxb); + } + +#if 0 + for (idx = 0; idx < nseq; idx++) + p7_trace_Dump(stdout, tr[idx], gm, sq[idx]->dsq); +#endif + + + + p7_omx_Destroy(oxf); + p7_omx_Destroy(oxb); + p7_gmx_Destroy(gxf); + p7_gmx_Destroy(gxb); + p7_bg_Destroy(bg); + p7_profile_Destroy(gm); + p7_oprofile_Destroy(om); + + + return eslOK; +} + + +/* Function: p7_tracealign_getTracesAndStats() + * + * Synopsis: Compute traces and stats for a collection of sequences + * relative to a given HMM + * + * Purpose: Given an and a set of sequences , calculate an + * optimal accuracy MSA (returned in ) along with + * three arrays mapping values onto positions of the input + * sequences. The mapped values are: + * - The posterior probability associated with + * each residue aligned to the core model + * - The relative entropy of the model position + * to which each matched residue is aligned + * - The bit score of residue vs the model for + * each matched residue + * + * Return: eslOK if no errors + */ +int +p7_tracealign_getMSAandStats(P7_HMM *hmm, ESL_SQ **sq, int N, ESL_MSA **ret_msa, float **ret_pp, float **ret_relent, float **ret_scores ) +{ + + P7_TRACE **tr = NULL; /* array of tracebacks */ + ESL_MSA *msa = NULL; /* resulting multiple alignment */ + P7_BG *bg = NULL; + int i; // seq_id + int z; // trace position + int j; // position in the query seq + int k; // positon in the model + int x; // counter + float p; // temporary probability holder + int status; + int msaopts = 0; /* flags to p7_tracealign_Seqs() */ + + msaopts |= p7_ALL_CONSENSUS_COLS; /* default as of 3.1 */ + + bg = p7_bg_Create(hmm->abc); + + ESL_ALLOC(tr, sizeof(P7_TRACE *) * N); + for (i = 0; i < N; i++) + tr[i] = p7_trace_CreateWithPP(); + + + p7_tracealign_computeTraces(hmm, sq, 0, N, tr); + p7_tracealign_Seqs(sq, tr, N, hmm->M, msaopts, hmm, &msa); + *ret_msa = msa; + + for (i=0; in; j++) { + ret_pp[i][j] = 0.0; + ret_relent[i][j] = 0.0; + ret_scores[i][j] = 0.0; + } + + j = tr[i]->tfrom[0] - 2; + for (z = tr[i]->tfrom[0]; z <= tr[i]->tto[0]; z++) { + + if (tr[i]->st[z] != p7T_D ) { //M or I + + ret_pp[i][j] = tr[i]->pp[z]; + + if (tr[i]->st[z] == p7T_M ) { + k = tr[i]->k[z]; + for (x=0; xabc->K; x++) { + p = hmm->mat[k][x]; + ret_relent[i][j] += p * log(p / bg->f[x]) / log(2); + } + + p = hmm->mat[k][sq[i]->dsq[j]]; + ret_scores[i][j] = log(p / bg->f[sq[i]->dsq[j]]) / log(2); + + } + j++; + } + + } + } + + for (i = 0; i < N; i++) p7_trace_Destroy(tr[i]); + free(tr); + + return eslOK; + +ERROR: + if (tr != NULL) { + for (i = 0; i < N; i++) p7_trace_Destroy(tr[i]); + free(tr); + } + return status; +} + + +/*--------------- end, exposed API ------------------------------*/ + + + + +/***************************************************************** + * 2. Internal functions used by the API + *****************************************************************/ + +/* map_new_msa() + * + * Construct , , and + * arrays for mapping model consensus nodes <1..M> onto columns + * <1..alen> of a new MSA. + * + * Here's the problem. We want to align the match states in columns, + * but some sequences have inserted symbols in them; we need some + * sort of overall knowledge of where the inserts are and how long + * they are in order to create the alignment. + * + * Here's our trick. inscount[] is a 0..M array; inserts[k] stores + * the maximum number of times insert substate k was used. This + * is the maximum number of gaps to insert between canonical + * column k and k+1. inserts[0] is the N-term tail; inserts[M] is + * the C-term tail. + * + * Additionally, matuse[k=1..M] says whether we're going to make an + * alignment column for consensus position k. By default this is + * only if there is at least one residue in the column. If + * the option flag is set, though, all + * matuse[1..M] are set . (matuse[0] is unused, always .) + * + * Then, using these arrays, we construct matmap[] and determine alen. + * If match state k is represented as an alignment column, + * matmap[1..M] = that position, <1..alen>. + * If match state k is not in the alignment (), + * matmap[k] = matmap[k-1] = the last alignment column that a match + * state did map to; this is a trick to make some apos coordinate setting + * work cleanly. + * Because of this trick, you can't just assume because matmap[k] is + * nonzero that match state k maps somewhere in the alignment; + * you have to check matuse[k] == TRUE, then look at what matmap[k] says. + * Remember that N and C emit on transition, hence the check for an + * N->N or C->C transition before bumping nins. + * is unused; by convention, . + */ +static int +map_new_msa(P7_TRACE **tr, int nseq, int M, int optflags, int **ret_inscount, + int **ret_matuse, int **ret_matmap, int *ret_alen) +{ + int *inscount = NULL; /* inscount[k=0..M] == max # of inserts in node k */ + int *insnum = NULL; /* insct[k=0..M] == # of inserts in node k in current trace */ + int *matuse = NULL; /* matuse[k=1..M] == TRUE|FALSE: does node k map to an alignment column */ + int *matmap = NULL; /* matmap[k=1..M]: if matuse[k] TRUE, what column 1..alen does node k map to */ + int idx; /* counter over sequences */ + int z; /* index into trace positions */ + int alen; /* length of alignment */ + int k; /* counter over nodes 1..M */ + int status; + + ESL_ALLOC(inscount, sizeof(int) * (M+1)); + ESL_ALLOC(insnum, sizeof(int) * (M+1)); + ESL_ALLOC(matuse, sizeof(int) * (M+1)); matuse[0] = 0; + ESL_ALLOC(matmap, sizeof(int) * (M+1)); matmap[0] = 0; + esl_vec_ISet(inscount, M+1, 0); + if (optflags & p7_ALL_CONSENSUS_COLS) esl_vec_ISet(matuse+1, M, TRUE); + else esl_vec_ISet(matuse+1, M, FALSE); + + /* Collect inscount[], matuse[] in a fairly general way + * (either profile or core traces work) + */ + for (idx = 0; idx < nseq; idx++) + { + esl_vec_ISet(insnum, M+1, 0); + for (z = 1; z < tr[idx]->N; z++) + { + switch (tr[idx]->st[z]) { + case p7T_I: insnum[tr[idx]->k[z]]++; break; + case p7T_N: if (tr[idx]->st[z-1] == p7T_N) insnum[0]++; break; + case p7T_C: if (tr[idx]->st[z-1] == p7T_C) insnum[M]++; break; + case p7T_M: matuse[tr[idx]->k[z]] = TRUE; break; + case p7T_J: p7_Die("J state unsupported"); + default: break; + } + } + for (k = 0; k <= M; k++) + inscount[k] = ESL_MAX(inscount[k], insnum[k]); + } + + /* if we're trimming N and C off, reset inscount[0], inscount[M] to 0. */ + if (optflags & p7_TRIM) { inscount[0] = inscount[M] = 0; } + + /* Use inscount, matuse to set the matmap[] */ + alen = inscount[0]; + for (k = 1; k <= M; k++) { + if (matuse[k]) { matmap[k] = alen+1; alen += 1+inscount[k]; } + else { matmap[k] = alen; alen += inscount[k]; } + } + + free(insnum); + *ret_inscount = inscount; + *ret_matuse = matuse; + *ret_matmap = matmap; + *ret_alen = alen; + return eslOK; + + ERROR: + if (inscount) free(inscount); + if (insnum) free(insnum); + if (matuse) free(matuse); + if (matmap) free(matmap); + *ret_inscount = NULL; + *ret_matuse = NULL; + *ret_matmap = NULL; + *ret_alen = 0; + return status; +} + + +/* get_dsq_z() + * this abstracts residue-fetching from either a sq array or a previous MSA; + * one and only one of , is non-; + * get the digital residue corresponding to tr[idx]->i[z]. + */ +static ESL_DSQ +get_dsq_z(ESL_SQ **sq, const ESL_MSA *premsa, P7_TRACE **tr, int idx, int z) +{ + return ( (premsa == NULL) ? sq[idx]->dsq[tr[idx]->i[z]] : premsa->ax[idx][tr[idx]->i[z]]); +} + +/* make_digital_msa() + * Create a new digital MSA, given traces for digital or for + * a digital . (One and only one of , are + * non-. + * The traces may either be profile traces or core traces; + * core traces may contain X "states" for fragments. + * + * matmap[k] = apos of match k, in digital coords: matmap[1..M] = [1..alen] + */ + +static int +make_digital_msa(ESL_SQ **sq, const ESL_MSA *premsa, P7_TRACE **tr, int nseq, const int *matuse, const int *matmap, int M, int alen, int optflags, ESL_MSA **ret_msa) +{ + const ESL_ALPHABET *abc = (sq == NULL) ? premsa->abc : sq[0]->abc; + ESL_MSA *msa = NULL; + int idx; + int apos; + int z; + int status; + + if ((msa = esl_msa_CreateDigital(abc, nseq, alen)) == NULL) { status = eslEMEM; goto ERROR; } + + for (idx = 0; idx < nseq; idx++) + { + msa->ax[idx][0] = eslDSQ_SENTINEL; + for (apos = 1; apos <= alen; apos++) msa->ax[idx][apos] = esl_abc_XGetGap(abc); + msa->ax[idx][alen+1] = eslDSQ_SENTINEL; + + apos = 1; + for (z = 0; z < tr[idx]->N; z++) + { + switch (tr[idx]->st[z]) { + case p7T_M: + msa->ax[idx][matmap[tr[idx]->k[z]]] = get_dsq_z(sq, premsa, tr, idx, z); + apos = matmap[tr[idx]->k[z]] + 1; + break; + + case p7T_D: + if (matuse[tr[idx]->k[z]]) /* bug h77: if all col is deletes, do nothing; do NOT overwrite a column */ + msa->ax[idx][matmap[tr[idx]->k[z]]] = esl_abc_XGetGap(abc); /* overwrites ~ in Dk column on X->Dk */ + apos = matmap[tr[idx]->k[z]] + 1; + break; + + case p7T_I: + if ( !(optflags & p7_TRIM) || (tr[idx]->k[z] != 0 && tr[idx]->k[z] != M)) { + msa->ax[idx][apos] = get_dsq_z(sq, premsa, tr, idx, z); + apos++; + } + break; + + case p7T_N: + case p7T_C: + if (! (optflags & p7_TRIM) && tr[idx]->i[z] > 0) { + msa->ax[idx][apos] = get_dsq_z(sq, premsa, tr, idx, z); + apos++; + } + break; + + case p7T_E: + apos = matmap[M]+1; /* set position for C-terminal tail */ + break; + + case p7T_X: + /* Mark fragments (B->X and X->E containing core traces): + * convert flanks from gaps to ~ + */ + if (tr[idx]->st[z-1] == p7T_B) + { /* B->X leader. This is a core trace and a fragment. Convert leading gaps to ~ */ + /* to set apos for an initial Ik: peek at next state for B->X->Ik; superfluous for ->{DM}k: */ + for (apos = 1; apos <= matmap[tr[idx]->k[z+1]]; apos++) + msa->ax[idx][apos] = esl_abc_XGetMissing(abc); + /* tricky! apos is now exactly where it needs to be for X->Ik. all other cases except B->X->Ik set their own apos */ + } + else if (tr[idx]->st[z+1] == p7T_E) + { /* X->E trailer. This is a core trace and a fragment. Convert trailing gaps to ~ */ + /* don't need to set apos for trailer. There can't be any more residues in a core trace once we hit X->E */ + for (; apos <= alen; apos++) + msa->ax[idx][apos] = esl_abc_XGetMissing(abc); + } + else ESL_XEXCEPTION(eslECORRUPT, "make_digital_msa(): X state in unexpected position in trace"); + + break; + + default: + break; + } + } + } + + msa->nseq = nseq; + msa->alen = alen; + *ret_msa = msa; + return eslOK; + + ERROR: + if (msa) esl_msa_Destroy(msa); + *ret_msa = NULL; + return status; +} + + +/* make_text_msa() + * Create a new text MSA, given traces for digital or for a digital . + * (One and only one of , are non-. + * + * The reason to make a text-mode MSA rather than let Easel handle printing a digital + * MSA is to impose HMMER's standard representation on gap characters and insertions: + * at inserts, gaps are '.' and residues are lower-case, whereas at matches, gaps are '-' + * and residues are upper case. + * + * Also see comments in make_digital_msa(), above. + */ +static int +make_text_msa(ESL_SQ **sq, const ESL_MSA *premsa, P7_TRACE **tr, int nseq, const int *matuse, const int *matmap, int M, int alen, int optflags, ESL_MSA **ret_msa) +{ + const ESL_ALPHABET *abc = (sq == NULL) ? premsa->abc : sq[0]->abc; + ESL_MSA *msa = NULL; + int idx; + int apos; + int z; + int k; + int status; + + if ((msa = esl_msa_Create(nseq, alen)) == NULL) { status = eslEMEM; goto ERROR; } + + for (idx = 0; idx < nseq; idx++) + { + for (apos = 0; apos < alen; apos++) msa->aseq[idx][apos] = '.'; + for (k = 1; k <= M; k++) if (matuse[k]) msa->aseq[idx][-1+matmap[k]] = '-'; + msa->aseq[idx][apos] = '\0'; + + apos = 0; + for (z = 0; z < tr[idx]->N; z++) + { + switch (tr[idx]->st[z]) { + case p7T_M: + msa->aseq[idx][-1+matmap[tr[idx]->k[z]]] = toupper(abc->sym[get_dsq_z(sq, premsa, tr, idx, z)]); + apos = matmap[tr[idx]->k[z]]; /* i.e. one past the match column. remember, text mode is 0..alen-1 */ + break; + + case p7T_D: + if (matuse[tr[idx]->k[z]]) /* bug #h77: if all column is deletes, do nothing; do NOT overwrite a column */ + msa->aseq[idx][-1+matmap[tr[idx]->k[z]]] = '-'; /* overwrites ~ in Dk column on X->Dk */ + apos = matmap[tr[idx]->k[z]]; + break; + + case p7T_I: + if ( !(optflags & p7_TRIM) || (tr[idx]->k[z] != 0 && tr[idx]->k[z] != M)) { + msa->aseq[idx][apos] = tolower(abc->sym[get_dsq_z(sq, premsa, tr, idx, z)]); + apos++; + } + break; + + case p7T_N: + case p7T_C: + if (! (optflags & p7_TRIM) && tr[idx]->i[z] > 0) { + msa->aseq[idx][apos] = tolower(abc->sym[get_dsq_z(sq, premsa, tr, idx, z)]); + apos++; + } + break; + + case p7T_E: + apos = matmap[M]; /* set position for C-terminal tail */ + break; + + case p7T_X: + /* Mark fragments (B->X and X->E containing core traces): + * convert flanks from gaps to ~ + */ + if (tr[idx]->st[z-1] == p7T_B) + { /* B->X leader. This is a core trace and a fragment. Convert leading gaps to ~ */ + for (apos = 0; apos < matmap[tr[idx]->k[z+1]]; apos++) + msa->aseq[idx][apos] = '~'; + /* tricky; apos exactly where it must be for X->Ik; see comments in make_digital_msa() */ + } + else if (tr[idx]->st[z+1] == p7T_E) + { /* X->E trailer. This is a core trace and a fragment. Convert trailing gaps to ~ */ + for (; apos < alen; apos++) + msa->aseq[idx][apos] = '~'; + } + else ESL_XEXCEPTION(eslECORRUPT, "make_text_msa(): X state in unexpected position in trace"); + + break; + + default: + break; + } + } + } + msa->nseq = nseq; + msa->alen = alen; + *ret_msa = msa; + return eslOK; + + ERROR: + if (msa != NULL) esl_msa_Destroy(msa); + *ret_msa = NULL; + return status; +} + + + +/* annotate_rf() + * Synopsis: Add RF reference coordinate annotation line to new MSA. + * Incept: SRE, Fri Jan 16 09:30:08 2009 [Janelia] + * + * Purpose: Create an RF reference coordinate annotation line that annotates the + * consensus columns: the columns associated with profile match states. + * + * Recall that msa->rf is when unset/by default in an MSA; + * msa->rf[0..alen-1] = 'x' | '.' is the simplest convention; + * msa->rf is a NUL-terminated string (msa->rf[alen] = '\0') + * + * Args: msa - alignment to annotate (rf> is allocated, set) + * M - profile length + * matuse - matuse[1..M] == TRUE | FALSE : is this match state represented + * by a column in the alignment. + * matmap - matmap[1..M] == (1..alen): if matuse[k], then what alignment column + * does state k map to. + * + * Returns: on success; msa->rf is set to an appropriate reference + * coordinate string. + * + * Throws: on allocation failure. + */ +static int +annotate_rf(ESL_MSA *msa, int M, const int *matuse, const int *matmap) +{ + int apos, k; + int status; + + ESL_ALLOC(msa->rf, sizeof(char) * (msa->alen+1)); + for (apos = 0; apos < msa->alen; apos++) + msa->rf[apos] = '.'; + msa->rf[msa->alen] = '\0'; + + for (k = 1; k <= M; k++) + if (matuse[k]) msa->rf[matmap[k]-1] = 'x'; /* watch off by one: rf[0..alen-1]; matmap[] = 1..alen */ + return eslOK; + + ERROR: + return status; +} + + +/* annotate_mm() + * Synopsis: Add MM reference coordinate annotation line to new MSA. + * + * Purpose: Create an MM Model Mask annotation line that annotates the + * consensus columns: the columns associated with profile match states. + * + * Recall that msa->mm is when unset/by default in an MSA; + * msa->mm[0..alen-1] = 'm' | '.' is the simplest convention; + * msa->mm is a NUL-terminated string (msa->mm[alen] = '\0') + * + * Args: msa - alignment to annotate (rf> is allocated, set) + * M - profile length + * matuse - matuse[1..M] == TRUE | FALSE : is this match state represented + * by a column in the alignment. + * matmap - matmap[1..M] == (1..alen): if matuse[k], then what alignment column + * does state k map to. + * + * Returns: on success; msa->mm is set to an appropriate model mask + * coordinate string. + * + * Throws: on allocation failure. + */ +static int +annotate_mm(ESL_MSA *msa, P7_HMM * hmm, const int *matuse, const int *matmap) +{ + int apos, k; + int status; + + if (hmm->mm == NULL) return eslOK; //nothing to do + + ESL_ALLOC(msa->mm, sizeof(char) * (msa->alen+1)); + for (apos = 0; apos < msa->alen; apos++) + msa->mm[apos] = '.'; + msa->mm[msa->alen] = '\0'; + + for (k = 0; k < hmm->M; k++) + if (matuse[k]) + msa->mm[matmap[k]-1] = hmm->mm[k]; + return eslOK; + + ERROR: + return status; +} + +/* annotate_posterior_probability() + * Synopsis: Add posterior probability annotation lines to new MSA. + */ +static int +annotate_posterior_probability(ESL_MSA *msa, P7_TRACE **tr, const int *matmap, int M, int optflags) +{ + double *totp = NULL; /* total posterior probability in column : [0..alen-1] */ + int *matuse = NULL; /* #seqs with pp annotation in column : [0..alen-1] */ + int idx; /* counter over sequences [0..nseq-1] */ + int apos; /* counter for alignment columns: pp's are [0..alen-1] (unlike ax) */ + int z; /* counter over trace positions [0..tr->N-1] */ + int status; + + /* Determine if any of the traces have posterior probability annotation. */ + for (idx = 0; idx < msa->nseq; idx++) + if (tr[idx]->pp != NULL) break; + if (idx == msa->nseq) return eslOK; + + ESL_ALLOC(matuse, sizeof(double) * (msa->alen)); esl_vec_ISet(matuse, msa->alen, 0); + ESL_ALLOC(totp, sizeof(double) * (msa->alen)); esl_vec_DSet(totp, msa->alen, 0.0); + + ESL_ALLOC(msa->pp, sizeof(char *) * msa->sqalloc); + for (idx = 0; idx < msa->nseq; idx++) + { + if (tr[idx]->pp == NULL) { msa->pp[idx] = NULL; continue; } + + ESL_ALLOC(msa->pp[idx], sizeof(char) * (msa->alen+1)); + for (apos = 0; apos < msa->alen; apos++) msa->pp[idx][apos] = '.'; + msa->pp[idx][msa->alen] = '\0'; + + apos = 0; + for (z = 0; z < tr[idx]->N; z++) + { + switch (tr[idx]->st[z]) { + case p7T_M: + msa->pp[idx][matmap[tr[idx]->k[z]]-1] = p7_alidisplay_EncodePostProb(tr[idx]->pp[z]); + totp [matmap[tr[idx]->k[z]]-1]+= tr[idx]->pp[z]; + matuse[matmap[tr[idx]->k[z]]-1]++; + case p7T_D: + apos = matmap[tr[idx]->k[z]]; + break; + + case p7T_I: + if ( !(optflags & p7_TRIM) || (tr[idx]->k[z] != 0 && tr[idx]->k[z] != M)) { + msa->pp[idx][apos] = p7_alidisplay_EncodePostProb(tr[idx]->pp[z]); + apos++; + } + break; + + case p7T_N: + case p7T_C: + if (! (optflags & p7_TRIM) && tr[idx]->i[z] > 0) { + msa->pp[idx][apos] = p7_alidisplay_EncodePostProb(tr[idx]->pp[z]); + apos++; + } + break; + + case p7T_E: + apos = matmap[M]; /* set position for C-terminal tail */ + break; + + default: + break; + } + } + } + for (; idx < msa->sqalloc; idx++) msa->pp[idx] = NULL; /* for completeness, following easel MSA conventions, but should be a no-op: nseq==sqalloc */ + + /* Consensus posterior probability annotation: only on match columns */ + ESL_ALLOC(msa->pp_cons, sizeof(char) * (msa->alen+1)); + for (apos = 0; apos < msa->alen; apos++) msa->pp_cons[apos] = '.'; + msa->pp_cons[msa->alen] = '\0'; + for (apos = 0; apos < msa->alen; apos++) + if (matuse[apos]) msa->pp_cons[apos] = p7_alidisplay_EncodePostProb( totp[apos] / (double) matuse[apos]); + + free(matuse); + free(totp); + return eslOK; + + ERROR: + if (matuse != NULL) free(matuse); + if (totp != NULL) free(totp); + if (msa->pp != NULL) esl_Free2D((void **) msa->pp, msa->sqalloc); + return status; +} + + +/* Function: rejustify_insertions_digital() + * Synopsis: + * Incept: SRE, Thu Oct 23 13:06:12 2008 [Janelia] + * + * Purpose: + * + * Args: msa - alignment to rejustify + * digital mode: ax[0..nseq-1][1..alen] and abc is valid + * text mode: aseq[0..nseq-1][0..alen-1] + * inserts - # of inserted columns following node k, for k=0.1..M + * inserts[0] is for N state; inserts[M] is for C state + * matmap - index of column associated with node k [k=0.1..M; matmap[0] = 0] + * this is an alignment column index 1..alen, same offset as + * if applied to text mode aseq or annotation, remember to -1 + * if no residues use match state k, matmap[k] is the + * index of the last column used before node k's columns + * start: thus matmap[k]+1 is always the start of + * node k's insertion (if any). + * matuse - TRUE if an alignment column is associated with node k: [k=0.1..M; matuse[0] = 0]. + * if matuse[k] == 0, every sequence deleted at node k, + * and we're collapsing the column rather than showing all + * gaps. + * + * Note: The insertion for node k is of length columns, + * and in 1..alen coords it runs from + * matmap[k]+1 .. matmap[k+1]-matuse[k+1]. + * + * + * Returns: + * + * Throws: (no abnormal error conditions) + * + * Xref: + */ +static int +rejustify_insertions_digital(ESL_MSA *msa, const int *inserts, const int *matmap, const int *matuse, int M) +{ + int idx; + int k; + int apos; + int nins; + int npos, opos; + + for (idx = 0; idx < msa->nseq; idx++) + { + for (k = 0; k < M; k++) + if (inserts[k] > 1) + { + for (nins = 0, apos = matmap[k]+1; apos <= matmap[k+1]-matuse[k+1]; apos++) + if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) nins++; + + if (k == 0) nins = 0; /* N-terminus is right justified */ + else nins /= 2; /* split in half; nins now = # of residues left left-justified */ + + opos = npos = matmap[k+1]-matuse[k+1]; + while (opos >= matmap[k]+1+nins) { + if (esl_abc_XIsGap(msa->abc, msa->ax[idx][opos])) opos--; + else { + msa->ax[idx][npos] = msa->ax[idx][opos]; + if (msa->pp != NULL && msa->pp[idx] != NULL) msa->pp[idx][npos-1] = msa->pp[idx][opos-1]; + npos--; + opos--; + } + } + while (npos >= matmap[k]+1+nins) { + msa->ax[idx][npos] = esl_abc_XGetGap(msa->abc); + if (msa->pp != NULL && msa->pp[idx] != NULL) msa->pp[idx][npos-1] = '.'; + npos--; + } + } + } + return eslOK; +} + +static int +rejustify_insertions_text(const ESL_ALPHABET *abc, ESL_MSA *msa, const int *inserts, const int *matmap, const int *matuse, int M) +{ + int idx; + int k; + int apos; + int nins; + int npos, opos; + + for (idx = 0; idx < msa->nseq; idx++) + { + for (k = 0; k < M; k++) + if (inserts[k] > 1) + { + for (nins = 0, apos = matmap[k]; apos < matmap[k+1]-matuse[k+1]; apos++) + if (esl_abc_CIsResidue(abc, msa->aseq[idx][apos])) nins++; + + if (k == 0) nins = 0; /* N-terminus is right justified */ + else nins /= 2; /* split in half; nins now = # of residues left left-justified */ + + opos = npos = -1+matmap[k+1]-matuse[k+1]; + while (opos >= matmap[k]+nins) { + if (esl_abc_CIsGap(abc, msa->aseq[idx][opos])) opos--; + else { + msa->aseq[idx][npos] = msa->aseq[idx][opos]; + if (msa->pp != NULL && msa->pp[idx] != NULL) msa->pp[idx][npos] = msa->pp[idx][opos]; + npos--; + opos--; + } + } + while (npos >= matmap[k]+nins) { + msa->aseq[idx][npos] = '.'; + if (msa->pp != NULL && msa->pp[idx] != NULL) msa->pp[idx][npos] = '.'; + npos--; + } + } + } + return eslOK; +} +/*---------------- end, internal functions ----------------------*/ + + +/***************************************************************** + * 3. Test driver + *****************************************************************/ + +#ifdef p7TRACEALIGN_TRACESTATS_TESTDRIVE +/* + gcc -o p7_tracealign_tracestats_test -msse2 -std=gnu99 -g -O2 -I. -L. -I../easel -L../easel -Dp7TRACEALIGN_TRACESTATS_TESTDRIVE tracealign.c -lhmmer -leasel -lm + ./p7_tracealign_tracestats_test ../tutorial/SNORD96.hmm ../tutorial/SNORD96.sto +*/ + +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_vectorops.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output alignment to file , not stdout", 1 }, + { "--trim", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "trim terminal tails of nonaligned residues from alignment", 2 }, + { "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "assert , both protein: no autodetection", 2 }, + { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "assert , both DNA: no autodetection", 2 }, + { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "assert , both RNA: no autodetection", 2 }, + { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert is in format : no autodetection", 2 }, + { "--outformat", eslARG_STRING, "Stockholm", NULL, NULL, NULL, NULL, NULL, "output alignment in format ", 2 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + + +static char usage[] = "[-options] "; +static char banner[] = "test driver for P7TRACE_SEQALIGNSTATS"; + +int +main(int argc, char **argv) +{ + + ESL_GETOPTS *go = NULL; + char *hmmfile = NULL; /* HMM file name */ + char *seqfile = NULL; /* sequence file name */ + int infmt = eslSQFILE_UNKNOWN; + int outfmt = eslMSAFILE_STOCKHOLM; + P7_HMMFILE *hfp = NULL; /* open HMM file */ + ESL_SQFILE *sqfp = NULL; /* open sequence file */ + char *outfile = NULL; /* output filename */ + FILE *ofp = stdout; /* output stream */ + ESL_SQ **sq = NULL; /* array of sequences */ + void *p = NULL; /* tmp ptr for reallocation */ + int nseq = 0; /* # of sequences in */ + int totseq = 0; /* # of seqs in all sources */ + ESL_ALPHABET *abc = NULL; /* alphabet (set from the HMM file)*/ + P7_HMM *hmm = NULL; + ESL_MSA *msa = NULL; /* resulting multiple alignment */ + int msaopts = 0; /* flags to p7_tracealign_Seqs() */ + int idx; /* counter over seqs, traces */ + int status; /* easel/hmmer return code */ + char errbuf[eslERRBUFSIZE]; + int j; + + float **pp; + float **relent; + float **scores; + + + /* Parse the command line + */ + go = esl_getopts_Create(options); + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) esl_fatal(argv[0], "Failed to parse command line: %s\n", go->errbuf); + + if (esl_opt_VerifyConfig(go) != eslOK) esl_fatal(argv[0], "Error in configuration: %s\n", go->errbuf); + + if (esl_opt_GetBoolean(go, "-h") ) { + p7_banner (stdout, argv[0], banner); + esl_usage (stdout, argv[0], usage); + puts("\nBasic options:"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); + puts("\nLess common options:"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + } + + + if (esl_opt_ArgNumber(go) != 2) esl_fatal(argv[0], "Incorrect number of command line arguments.\n"); + + + + hmmfile = esl_opt_GetArg(go, 1); + seqfile = esl_opt_GetArg(go, 2); + + if (strcmp(hmmfile, "-") == 0 && strcmp(seqfile, "-") == 0) + esl_fatal(argv[0], "Either or may be '-' (to read from stdin), but not both.\n"); + + msaopts |= p7_ALL_CONSENSUS_COLS; /* default as of 3.1 */ + if (esl_opt_GetBoolean(go, "--trim")) msaopts |= p7_TRIM; + + /* If caller declared an input format, decode it + */ + if (esl_opt_IsOn(go, "--informat")) { + infmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--informat")); + if (infmt == eslSQFILE_UNKNOWN) esl_fatal(argv[0], "%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--informat")); + } + + /* Determine output alignment file format */ + outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat")); + if (outfmt == eslMSAFILE_UNKNOWN) esl_fatal(argv[0], "%s is not a recognized output MSA file format\n", esl_opt_GetString(go, "--outformat")); + + /* Open output stream */ + if ( (outfile = esl_opt_GetString(go, "-o")) != NULL) + { + if ((ofp = fopen(outfile, "w")) == NULL) + esl_fatal(argv[0], "failed to open -o output file %s for writing\n", outfile); + } + + + /* If caller forced an alphabet on us, create the one the caller wants + */ + if (esl_opt_GetBoolean(go, "--amino")) abc = esl_alphabet_Create(eslAMINO); + else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA); + else if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA); + + /* Read one HMM, and make sure there's only one. + */ + status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, hmmfile, errbuf); + + status = p7_hmmfile_Read(hfp, &abc, &hmm); + if (status == eslEFORMAT) p7_Fail("Bad file format in HMM file %s:\n%s\n", hfp->fname, hfp->errbuf); + else if (status == eslEINCOMPAT) p7_Fail("HMM in %s is not in the expected %s alphabet\n", hfp->fname, esl_abc_DecodeType(abc->type)); + else if (status == eslEOF) p7_Fail("Empty HMM file %s? No HMM data found.\n", hfp->fname); + else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s\n", hfp->fname); + + status = p7_hmmfile_Read(hfp, &abc, NULL); + if (status != eslEOF) p7_Fail("HMM file %s does not contain just one HMM\n", hfp->fname); + p7_hmmfile_Close(hfp); + + + + /* Read digital sequences into an array (possibly concat'ed onto mapped seqs) + */ + status = esl_sqfile_OpenDigital(abc, seqfile, infmt, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", seqfile); + else if (status == eslEFORMAT) p7_Fail("Sequence file %s is empty or misformatted\n", seqfile); + else if (status != eslOK) p7_Fail("Unexpected error %d opening sequence file %s\n", status, seqfile); + + ESL_RALLOC(sq, p, sizeof(ESL_SQ *) * (totseq + 1)); + sq[totseq] = esl_sq_CreateDigital(abc); + nseq = 0; + while ((status = esl_sqio_Read(sqfp, sq[totseq+nseq])) == eslOK) + { + nseq++; + ESL_RALLOC(sq, p, sizeof(ESL_SQ *) * (totseq+nseq+1)); + sq[totseq+nseq] = esl_sq_CreateDigital(abc); + } + if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n", + sqfp->filename, esl_sqfile_GetErrorBuf(sqfp)); + else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", status, sqfp->filename); + esl_sqfile_Close(sqfp); + totseq += nseq; + + + /* Remaining initializations, including trace array allocation + */ + ESL_ALLOC(pp, sizeof(float*) * totseq ); + ESL_ALLOC(relent, sizeof(float*) * totseq ); + ESL_ALLOC(scores, sizeof(float*) * totseq ); + for (idx = 0; idx < totseq; idx++) { + ESL_ALLOC(pp[idx], sizeof(float) * (1+sq[idx]->L)); + ESL_ALLOC(relent[idx], sizeof(float) * (1+sq[idx]->L)); + ESL_ALLOC(scores[idx], sizeof(float) * (1+sq[idx]->L)); + } + + p7_tracealign_getMSAandStats(hmm, sq, totseq, &msa, pp, relent, scores); + + esl_msafile_Write(ofp, msa, outfmt); + + for (idx = 0; idx < totseq; idx++) { + printf("%s\n------------------\n", sq[idx]->name); + for (j=1; j<=sq[idx]->L; j++) { + printf("%d: %.3f %.3f %.3f\n", j, pp[idx][j], relent[idx][j], scores[idx][j]); + } + printf("\n\n"); + } + + for (idx = 0; idx < totseq; idx++) { + free(pp[idx]); + free(relent[idx]); + free(scores[idx]); + } + free(pp); + free(relent); + free(scores); + + for (idx = 0; idx <= totseq; idx++) esl_sq_Destroy(sq[idx]); /* including sq[nseq] because we overallocated */ + free(sq); + esl_msa_Destroy(msa); + p7_hmm_Destroy(hmm); + if (ofp != stdout) fclose(ofp); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + return eslOK; + + ERROR: + return status; +} + +#endif /*p7TRACE_SEQALIGNSTATS_TESTDRIVE*/ +/*--------------------- end, test driver ------------------------*/ + + + + + diff --git a/bioinformaticsProject/hmmer/test-speed/00README b/bioinformaticsProject/hmmer/test-speed/00README new file mode 100644 index 0000000..6cd7ff0 --- /dev/null +++ b/bioinformaticsProject/hmmer/test-speed/00README @@ -0,0 +1,10 @@ +Standard speed benchmarking + + +#================================================================ +# Component timings +#================================================================ + + ln -s ~/src/hmmer/trunk/test-speed/component-benchmark.pl . + qlogin + ./component-benchmark.pl ~/src/hmmer/trunk/build-icc-mpi ~/src/hmmer/trunk > component-benchmark.out diff --git a/bioinformaticsProject/hmmer/test-speed/component-benchmark.pl b/bioinformaticsProject/hmmer/test-speed/component-benchmark.pl new file mode 100755 index 0000000..0602657 --- /dev/null +++ b/bioinformaticsProject/hmmer/test-speed/component-benchmark.pl @@ -0,0 +1,67 @@ +#! /usr/bin/perl + +# Component speed benchmarks +# +# Usage: ./component-benchmark.pl +# Example: ./component-benchmark.pl ../build-icc-mpi .. > component-benchmark.out +# +# For a range of models of different sizes, run a speed benchmark for +# each component of H3's pipeline. Output an ASCII summary table to +# stdout. +# +# SRE, Thu Mar 10 09:07:38 2011 + +$top_builddir = shift; +$top_srcdir = shift; + +#@benchmarks = ( "./generic_fwdback_benchmark -F", "./msvfilter_benchmark" ); + +@benchmarks = ( "src/impl/msvfilter_benchmark", + "src/impl/vitfilter_benchmark", + "src/impl/fwdback_benchmark -PF", + "src/impl/fwdback_benchmark -PB", + "src/impl/fwdback_benchmark -F", + "src/impl/fwdback_benchmark -B", + "src/impl/decoding_benchmark", + "src/impl/null2_benchmark", + "src/impl/null2_benchmark -t", + "src/impl/optacc_benchmark", + "src/generic_msv_benchmark", + "src/generic_viterbi_benchmark", + "src/generic_fwdback_benchmark -F", + "src/generic_fwdback_benchmark -B", + "src/generic_decoding_benchmark", + "src/generic_null2_benchmark", + "src/generic_optacc_benchmark" ); + +@models = ("XYPPX", "RRM_1", "Caudal_act", "LuxC", "Patched", "SMC_N"); + +printf("%30s ", ""); +foreach $model (@models) { printf("%23s ", $model); } +printf("\n"); +printf("%30s ", ""); +foreach $model (@models) { printf("%23s ", "-----------------------"); } +printf("\n"); + +foreach $benchmark (@benchmarks) +{ + ($benchmark_name) = ($benchmark =~ /\/([^\/]+_benchmark.*)$/); + printf("%-30s ", $benchmark_name); + foreach $model (@models) + { + $output = `${top_builddir}/$benchmark ${top_srcdir}/testsuite/$model.hmm`; + ($cputime, $M, $Mcs) = &get_results($output); + printf("%8s (%7s Mc/s) ", $cputime, $Mcs); + } + printf("\n"); +} + + +sub get_results { + my($output) = @_; + + if ($output =~ /^\# CPU time:\s+(\S+)/) { $cputime = $1; } + if ($output =~ /^\# M\s+=\s+(\d+)/) { $M = $1; } + if ($output =~ /\# (\S+) Mc\/s/) { $Mcs = $1; } + ($cputime, $M, $Mcs); +} diff --git a/bioinformaticsProject/hmmer/test-speed/speed-master.pl b/bioinformaticsProject/hmmer/test-speed/speed-master.pl new file mode 100755 index 0000000..a5cf414 --- /dev/null +++ b/bioinformaticsProject/hmmer/test-speed/speed-master.pl @@ -0,0 +1,107 @@ +#! /usr/bin/perl + +# The top level script that runs speed benchmarks +# +# Usage: +# ./speed-master.pl
as a work unit to MPI process + * (where ranges from 0..), tagged + * with MPI tag , for MPI communicator , as + * the sole workunit or result. + * + * After the TOPHITS information has been sent, send + * the each hit as an indepentant message. + * + * Returns: on success; <*buf> may have been reallocated and + * <*nalloc> may have been increased. + * + * Throws: if an MPI call fails; if a malloc/realloc + * fails. In either case, <*buf> and <*nalloc> remain valid and useful + * memory (though the contents of <*buf> are undefined). + */ +int +p7_tophits_MPISend(P7_TOPHITS *th, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc) +{ + int status; + int sz, n, pos; + int i, j, inx; + + P7_DOMAIN *dcl = NULL; + P7_HIT *hit = NULL; + + n = 0; + sz = 0; + + /* calculate the buffer size needed to hold the largest hit */ + hit = th->unsrt; + for (i = 0; i < th->N; ++i) { + for (j = 0; j < th->unsrt[i].ndom; ++j) { + if (sz <= hit->dcl[j].ad->memsize) { + sz = hit->dcl[j].ad->memsize; + dcl = &hit->dcl[j]; + } + } + ++hit; + } + + if (th->N > 0) { + if ((status = p7_hit_MPIPackSize(th->unsrt, comm, &n)) != eslOK) goto ERROR; + if (dcl != NULL) { + if ((status = p7_dcl_MPIPackSize(dcl, comm, &sz)) != eslOK) goto ERROR; + n = (n > sz) ? n : sz; + } + } + + if (MPI_Pack_size(3, MPI_UINT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); + n = (n > sz) ? n : sz; + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + pos = 0; + if (MPI_Pack(&th->N, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&th->nreported, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&th->nincluded, 1, MPI_UINT64_T, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + + /* Send the packed tophits information */ + if (MPI_Send(*buf, n, MPI_PACKED, dest, tag, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi send failed"); + if (th->N == 0) return eslOK; + + /* loop through the hit list sending to dest */ + hit = th->unsrt; + for (inx = 0; inx < th->N; ++inx) { + if ((status = p7_hit_MPISend(hit, dest, tag, comm, buf, nalloc)) != eslOK) goto ERROR; + ++hit; + } + + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_tophits_MPIRecv() + * Synopsis: Receives an TOPHITS as a work unit from an MPI sender. + * + * Purpose: Sends the TOPHITS as a work unit to MPI process + * (where ranges from 0..), tagged + * with MPI tag , for MPI communicator , as + * the sole workunit or result. + * + * After the TOPHITS information has been sent, send + * the each hit as an indepentant message. + * + * Returns: on success; <*buf> may have been reallocated and + * <*nalloc> may have been increased. + * + * Throws: if an MPI call fails; if a malloc/realloc + * fails. In either case, <*buf> and <*nalloc> remain valid and useful + * memory (though the contents of <*buf> are undefined). + */ +int +p7_tophits_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, P7_TOPHITS **ret_th) +{ + int n; + int status; + int pos; + P7_TOPHITS *th = NULL; + P7_HIT *hit = NULL; + MPI_Status mpistatus; + + uint64_t nhits; + uint64_t inx; + + /* Probe first, because we need to know if our buffer is big enough. + */ + MPI_Probe(source, tag, comm, &mpistatus); + MPI_Get_count(&mpistatus, MPI_PACKED, &n); + + /* make sure we are getting the tag we expect and from whom we expect if from */ + if (tag != MPI_ANY_TAG && mpistatus.MPI_TAG != tag) { + status = eslFAIL; + goto ERROR; + } + if (source != MPI_ANY_SOURCE && mpistatus.MPI_SOURCE != source) { + status = eslFAIL; + goto ERROR; + } + + /* set the source and tag */ + tag = mpistatus.MPI_TAG; + source = mpistatus.MPI_SOURCE; + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Receive the packed top hits */ + MPI_Recv(*buf, n, MPI_PACKED, source, tag, comm, &mpistatus); + + /* Unpack it - watching out for the EOD signal of M = -1. */ + pos = 0; + if ((th = p7_tophits_Create()) == NULL) { status = eslEMEM; goto ERROR; } + if (MPI_Unpack(*buf, n, &pos, &nhits, 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &th->nreported, 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + if (MPI_Unpack(*buf, n, &pos, &th->nincluded, 1, MPI_UINT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed"); + + /* loop through all of the hits sent */ + for (inx = 0; inx < nhits; ++inx) { + if ((status = p7_tophits_CreateNextHit(th, &hit)) != eslOK) goto ERROR; + if ((status = p7_hit_MPIRecv(source, tag, comm, buf, nalloc, hit)) != eslOK) goto ERROR; + } + *ret_th = th; + return eslOK; + + ERROR: + if (th != NULL) p7_tophits_Destroy(th); + *ret_th = NULL; + return status; +} + + +/* Function: p7_hit_MPISend() + */ +int +p7_hit_MPISend(P7_HIT *hit, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc) +{ + int inx; + int status; + int pos; + int n = *nalloc; + + /* Pack the HIT into the buffer */ + pos = 0; + if ((status = p7_hit_MPIPack(hit, *buf, n, &pos, comm)) != eslOK) goto ERROR; + + /* Send the packed HIT to the destination. */ + if (MPI_Send(*buf, n, MPI_PACKED, dest, tag, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi send failed"); + + /* loop through all of the domains */ + for (inx = 0; inx < hit->ndom; ++inx) { + if ((status = p7_dcl_MPISend(hit->dcl + inx, dest, tag, comm, buf, nalloc)) != eslOK) goto ERROR; + } + + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_hit_MPIRecv() + */ +int +p7_hit_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, P7_HIT *hit) +{ + int n; + int status; + int pos; + int inx; + MPI_Status mpistatus; + + /* Probe first, because we need to know if our buffer is big enough. + */ + MPI_Probe(source, tag, comm, &mpistatus); + MPI_Get_count(&mpistatus, MPI_PACKED, &n); + + /* make sure we are getting the tag we expect and from whom we expect if from */ + if (tag != MPI_ANY_TAG && mpistatus.MPI_TAG != tag) { + status = eslFAIL; + goto ERROR; + } + if (source != MPI_ANY_SOURCE && mpistatus.MPI_SOURCE != source) { + status = eslFAIL; + goto ERROR; + } + + /* set the source and tag */ + tag = mpistatus.MPI_TAG; + source = mpistatus.MPI_SOURCE; + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Receive the packed top hits */ + MPI_Recv(*buf, n, MPI_PACKED, source, tag, comm, &mpistatus); + + /* Unpack it - watching out for the EOD signal of M = -1. */ + pos = 0; + if ((status = p7_hit_MPIUnpack(*buf, n, &pos, comm, hit)) != eslOK) goto ERROR; + ESL_ALLOC(hit->dcl, sizeof(P7_DOMAIN) * hit->ndom); + + /* loop through all of the hits sent */ + for (inx = 0; inx < hit->ndom; ++inx) { + if ((status = p7_dcl_MPIRecv(source, tag, comm, buf, nalloc, hit->dcl + inx)) != eslOK) goto ERROR; + } + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_hit_MPIPackSize() + * Synopsis: Calculates size needed to pack a HIT. + * + * Purpose: Calculate an upper bound on the number of bytes + * that will need to pack an P7_HIT + * in a packed MPI message for MPI communicator + * ; return that number of bytes in <*ret_n>. + * + * Returns: on success, and <*ret_n> contains the answer. + * + * Throws: if an MPI call fails, and <*ret_n> is 0. + */ +int +p7_hit_MPIPackSize(P7_HIT *hit, MPI_Comm comm, int *ret_n) +{ + int status; + int n = 0; + int sz; + + /* P7_HIT data */ + if (MPI_Pack_size(1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* window_length */ + if (MPI_Pack_size(1, MPI_DOUBLE, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* sortkey */ + if (MPI_Pack_size(3, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* scores */ + if (MPI_Pack_size(3, MPI_DOUBLE, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* lnP */ + if (MPI_Pack_size(1, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* expected */ + if (MPI_Pack_size(5, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* region, envelopes, ndom */ + if (MPI_Pack_size(3, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* report info */ + if (MPI_Pack_size(1, MPI_UINT32_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* flags */ + if (MPI_Pack_size(2, MPI_INT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* seqidx, subseq_start */ + if ((status = esl_mpi_PackOptSize(hit->name, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; else n += sz; + if ((status = esl_mpi_PackOptSize(hit->acc, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; else n += sz; + if ((status = esl_mpi_PackOptSize(hit->desc, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; else n += sz; + + *ret_n = n; + return eslOK; + + ERROR: + *ret_n = 0; + return status; + +} + +/* Function: p7_hit_MPIPack() + * Synopsis: Packs the HIT into MPI buffer. + * + * Purpose: Packs HIT into an MPI packed message buffer + * of length bytes, starting at byte position <*position>, + * for MPI communicator . + * + * The caller must know that 's allocation of + * bytes is large enough to append the packed HIT at + * position <*pos>. This typically requires a call to + * first, and reallocation if + * needed. + * + * Returns: on success; now contains the + * packed , and <*position> is set to the byte + * immediately following the last byte of the HIT + * in . + * + * Throws: if an MPI call fails; or if the + * buffer's length was overflowed in trying to pack + * into . In either case, the state of + * and <*position> is undefined, and both should + * be considered to be corrupted. + */ +int +p7_hit_MPIPack(P7_HIT *hit, char *buf, int n, int *pos, MPI_Comm comm) +{ + int status; + if (MPI_Pack(&hit->window_length, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->sortkey, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->score, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->pre_score, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->sum_score, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->lnP, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->pre_lnP, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->sum_lnP, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->nexpected, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->nregions, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->nclustered, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->noverlaps, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->nenvelopes, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->ndom, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->flags, 1, MPI_UINT32_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->nreported, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->nincluded, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->best_domain, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->seqidx, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&hit->subseq_start, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + + if ((status = esl_mpi_PackOpt(hit->name, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status; + if ((status = esl_mpi_PackOpt(hit->acc, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status; + if ((status = esl_mpi_PackOpt(hit->desc, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status; + + if (*pos > n) ESL_EXCEPTION(eslEMEM, "buffer overflow"); + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_hit_MPIUnpack() + * Synopsis: Unpacks an HIT from an MPI buffer. + * + * Purpose: Unpack a newly allocated HIT from MPI packed buffer + * , starting from position <*pos>, where the total length + * of the buffer in bytes is . + * + * Returns: on success. <*pos> is updated to the position of + * the next element in to unpack (if any). <*ret_hit> + * contains a newly allocated HIT, which the caller is + * responsible for free'ing. + * + * Throws: on an MPI call failure. on allocation failure. + * In either case, <*ret_hit> is , and the state of + * and <*pos> is undefined and should be considered to be corrupted. + */ +int +p7_hit_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, P7_HIT *hit) +{ + int status; + + if (MPI_Unpack(buf, n, pos, &hit->window_length, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->sortkey, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->score, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->pre_score, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->sum_score, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->lnP, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->pre_lnP, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->sum_lnP, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->nexpected, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->nregions, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->nclustered, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->noverlaps, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->nenvelopes, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->ndom, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->flags, 1, MPI_UINT32_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->nreported, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->nincluded, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->best_domain, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->seqidx, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hit->subseq_start, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + hit->offset = 0; // This field is only used when packing search results for transmission over sockets (not MPI) + // and its value isn't guaranteed to be the same on different machines, so just set it to 0 + + if ((status = esl_mpi_UnpackOpt(buf, n, pos, (void**)&(hit->name), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if ((status = esl_mpi_UnpackOpt(buf, n, pos, (void**)&(hit->acc), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + if ((status = esl_mpi_UnpackOpt(buf, n, pos, (void**)&(hit->desc), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR; + + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_dcl_MPISend() + */ +int +p7_dcl_MPISend(P7_DOMAIN *dcl, int dest, int tag, MPI_Comm comm, char **buf, int *nalloc) +{ + int status; + int pos; + int n = *nalloc; + + /* Pack the DOMAIN into the buffer */ + pos = 0; + if ((status = p7_dcl_MPIPack(dcl, *buf, n, &pos, comm)) != eslOK) goto ERROR; + + /* Send the packed HIT to the destination. */ + if (MPI_Send(*buf, n, MPI_PACKED, dest, tag, comm) != 0) ESL_EXCEPTION(eslESYS, "mpi send failed"); + + return eslOK; + + ERROR: + return status; +} + + +/* Function: p7_dcl_MPIPackSize() + */ +int +p7_dcl_MPIPackSize(P7_DOMAIN *dcl, MPI_Comm comm, int *ret_n) +{ + int status; + int n = 0; + int sz; + + P7_ALIDISPLAY *ad = dcl->ad; + + /* P7_DOMAIN data */ + if (MPI_Pack_size(6, MPI_INT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* alignment info */ + if (MPI_Pack_size(5, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* score info */ + if (MPI_Pack_size(1, MPI_DOUBLE, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* lnP */ + if (MPI_Pack_size(2, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* thresholds */ + if(dcl->scores_per_pos != NULL){p7_Fail("Non-NULL scores_per_pos field found int p7_dcl_MPIPackSize. Sending the scores_per_pos field via MPI has not been implemented\n");} + + /* P7_ALIDISPLAY data */ + if (MPI_Pack_size(18, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* offset info */ + if (MPI_Pack_size(3, MPI_INT64_T, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* sequence info */ + if (MPI_Pack_size(1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* string pool size */ + if (MPI_Pack_size(ad->memsize, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* string pool */ + + *ret_n = n; + return eslOK; + + ERROR: + *ret_n = 0; + return status; + +} + +/* Function: p7_dcl_MPIPack() + */ +int +p7_dcl_MPIPack(P7_DOMAIN *dcl, char *buf, int n, int *pos, MPI_Comm comm) +{ + int status; + int offset; + + P7_ALIDISPLAY *ad = dcl->ad; + + if (MPI_Pack(&dcl->ienv, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->jenv, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->iali, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->jali, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->iorf, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->jorf, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->envsc, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->domcorrection, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->dombias, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->oasc, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->bitscore, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->lnP, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->is_reported, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&dcl->is_included, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if(dcl->scores_per_pos != NULL){p7_Fail("Non-NULL scores_per_pos field found int p7_dcl_MPIPack. Sending the scores_per_pos field via MPI has not been implemented\n");} + + offset = (ad->rfline == NULL) ? -1 : ad->rfline - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->mmline == NULL) ? -1 : ad->mmline - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->csline == NULL) ? -1 : ad->csline - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->model == NULL) ? -1 : ad->model - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->mline == NULL) ? -1 : ad->mline - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->aseq == NULL) ? -1 : ad->aseq - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->ntseq == NULL) ? -1 : ad->ntseq - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->ppline == NULL) ? -1 : ad->ppline - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&ad->N, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->hmmname == NULL) ? -1 : ad->hmmname - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->hmmacc == NULL) ? -1 : ad->hmmacc - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->hmmdesc == NULL) ? -1 : ad->hmmdesc - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&ad->hmmfrom, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&ad->hmmto, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&ad->M, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->sqname == NULL) ? -1 : ad->sqname - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->sqacc == NULL) ? -1 : ad->sqacc - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + offset = (ad->sqdesc == NULL) ? -1 : ad->sqdesc - ad->mem; + if (MPI_Pack(&offset, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&ad->sqfrom, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&ad->sqto, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&ad->L, 1, MPI_INT64_T, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack(&ad->memsize, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + if (MPI_Pack( ad->mem, ad->memsize, MPI_CHAR, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed"); + + if (*pos > n) ESL_EXCEPTION(eslEMEM, "buffer overflow"); + return eslOK; + + ERROR: + return status; +} + +/* Function: p7_dcl_MPIUnpack() + */ +int +p7_dcl_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, P7_DOMAIN *dcl) +{ + int status; + int rfline, mmline, csline, model, mline, aseq, ntseq, ppline; + int hmmname, hmmacc, hmmdesc; + int sqname, sqacc, sqdesc; + + P7_ALIDISPLAY *ad; + + ESL_ALLOC(ad, sizeof(P7_ALIDISPLAY)); + + if (MPI_Unpack(buf, n, pos, &dcl->ienv, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->jenv, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->iali, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->jali, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->iorf, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->jorf, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->envsc, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->domcorrection, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->dombias, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->oasc, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->bitscore, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->lnP, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->is_reported, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &dcl->is_included, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + dcl->scores_per_pos =NULL; // we don't support sending this field over MPI, so init to NULL to avoid problems from stale memory + + if (MPI_Unpack(buf, n, pos, &rfline, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &mmline, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &csline, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &model, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &mline, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &aseq, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ntseq, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ppline, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ad->N, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hmmname, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hmmacc, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &hmmdesc, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ad->hmmfrom, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ad->hmmto, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ad->M, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &sqname, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &sqacc, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &sqdesc, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ad->sqfrom, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ad->sqto, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ad->L, 1, MPI_INT64_T, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + if (MPI_Unpack(buf, n, pos, &ad->memsize, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + + dcl->scores_per_pos = NULL; /*this field is used for nhmmer, which currently doesn't have MPI support */ + + /* allocate the string pools for the alignments */ + ESL_ALLOC(ad->mem, ad->memsize); + if (MPI_Unpack(buf, n, pos, ad->mem, ad->memsize, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed"); + + ad->rfline = (rfline == -1) ? NULL : ad->mem + rfline; + ad->mmline = (mmline == -1) ? NULL : ad->mem + mmline; + ad->csline = (csline == -1) ? NULL : ad->mem + csline; + ad->model = (model == -1) ? NULL : ad->mem + model; + ad->mline = (mline == -1) ? NULL : ad->mem + mline; + ad->aseq = (aseq == -1) ? NULL : ad->mem + aseq; + ad->ntseq = (ntseq == -1) ? NULL : ad->mem + ntseq; + ad->ppline = (ppline == -1) ? NULL : ad->mem + ppline; + + ad->hmmname = (hmmname == -1) ? NULL : ad->mem + hmmname; + ad->hmmacc = (hmmacc == -1) ? NULL : ad->mem + hmmacc; + ad->hmmdesc = (hmmdesc == -1) ? NULL : ad->mem + hmmdesc; + + ad->sqname = (sqname == -1) ? NULL : ad->mem + sqname; + ad->sqacc = (sqacc == -1) ? NULL : ad->mem + sqacc; + ad->sqdesc = (sqdesc == -1) ? NULL : ad->mem + sqdesc; + + dcl->ad = ad; + + return eslOK; + + ERROR: + if (ad != NULL) { + if (ad->mem != NULL) free(ad->mem); + free(ad); + } + return status; +} + +/* Function: p7_dcl_MPIRecv() + */ +int +p7_dcl_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, P7_DOMAIN *dcl) +{ + int status; + int n; + int pos; + MPI_Status mpistatus; + + /* Probe first, because we need to know if our buffer is big enough. + */ + MPI_Probe(source, tag, comm, &mpistatus); + MPI_Get_count(&mpistatus, MPI_PACKED, &n); + + /* make sure we are getting the tag we expect and from whom we expect if from */ + if (tag != MPI_ANY_TAG && mpistatus.MPI_TAG != tag) { + status = eslFAIL; + goto ERROR; + } + if (source != MPI_ANY_SOURCE && mpistatus.MPI_SOURCE != source) { + status = eslFAIL; + goto ERROR; + } + + /* set the source and tag */ + tag = mpistatus.MPI_TAG; + source = mpistatus.MPI_SOURCE; + + /* Make sure the buffer is allocated appropriately */ + if (*buf == NULL || n > *nalloc) { + void *tmp; + ESL_RALLOC(*buf, tmp, sizeof(char) * n); + *nalloc = n; + } + + /* Receive the packed dcl */ + MPI_Recv(*buf, n, MPI_PACKED, source, tag, comm, &mpistatus); + + /* Unpack it, looking at the status code prefix for EOD/EOK */ + pos = 0; + return p7_dcl_MPIUnpack(*buf, *nalloc, &pos, comm, dcl); + + ERROR: + return status; +} + +/*----------------- end, P7_TOPHITS communication -------------------*/ + + +/***************************************************************** + * 5. Benchmark driver. + *****************************************************************/ + +#ifdef p7MPISUPPORT_BENCHMARK +/* + mpicc -g -Wall -L. -I. -L ../easel -I ../easel -D p7MPISUPPORT_BENCHMARK -o benchmark-mpi mpisupport.c -lhmmer -leasel -lm + qsub -N benchmark-mpi -j y -R y -b y -cwd -V -pe lam-mpi-tight 2 'mpirun C ./benchmark-mpi ~/notebook/1227-msp-statistics/Pfam.hmm > bench.out' + qsub -N benchmark-mpi -j y -R y -b y -cwd -V -pe lam-mpi-tight 2 'mpirun C ./benchmark-mpi -b ~/notebook/1227-msp-statistics/Pfam.hmm > bench.out' + */ +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_alphabet.h" +#include "esl_random.h" +#include "esl_stopwatch.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-b", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "baseline timing: don't send any HMMs", 0 }, + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for debugging MPI under gdb", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options] "; +static char banner[] = "benchmark driver for MPI communication"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage); + char *hmmfile = esl_opt_GetArg(go, 1); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_BG *bg = p7_bg_Create(abc); + int my_rank; + int nproc; + char *buf = NULL; + int nbuf = 0; + int subtotalM = 0; + int allM = 0; + int stalling = esl_opt_GetBoolean(go, "--stall"); + + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Comm_size(MPI_COMM_WORLD, &nproc); + + while (stalling); + + /* Master MPI process: */ + if (my_rank == 0) + { + ESL_STOPWATCH *w = esl_stopwatch_Create(); + P7_HMMFILE *hfp = NULL; + P7_PROFILE *gm = NULL; + P7_HMM *hmm = NULL; + + + /* Read HMMs from a file. */ + if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile); + + esl_stopwatch_Start(w); + while (p7_hmmfile_Read(hfp, &abc, &hmm) == eslOK) + { + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, 400, p7_LOCAL); + if (!esl_opt_GetBoolean(go, "-b")) + p7_profile_MPISend(gm, 1, 0, MPI_COMM_WORLD, &buf, &nbuf); /* 1 = dest; 0 = tag */ + + p7_hmm_Destroy(hmm); + p7_profile_Destroy(gm); + } + p7_profile_MPISend(NULL, 1, 0, MPI_COMM_WORLD, &buf, &nbuf); /* send the "no more HMMs" sign */ + MPI_Reduce(&subtotalM, &allM, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + + printf("total: %d\n", allM); + esl_stopwatch_Stop(w); + esl_stopwatch_Display(stdout, w, "CPU Time: "); + esl_stopwatch_Destroy(w); + } + /* Worker MPI process: */ + else + { + P7_PROFILE *gm_recd = NULL; + + while (p7_profile_MPIRecv(0, 0, MPI_COMM_WORLD, abc, bg, &buf, &nbuf, &gm_recd) == eslOK) + { + subtotalM += gm_recd->M; + p7_profile_Destroy(gm_recd); + } + MPI_Reduce(&subtotalM, &allM, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); + } + + free(buf); + p7_bg_Destroy(bg); + esl_alphabet_Destroy(abc); + esl_getopts_Destroy(go); + MPI_Finalize(); + exit(0); +} + +#endif /*p7MPISUPPORT_BENCHMARK*/ +/*---------------------- end, benchmark -------------------------*/ + + +/***************************************************************** + * 6. Unit tests + *****************************************************************/ +#ifdef p7MPISUPPORT_TESTDRIVE + +static void +utest_HMMSendRecv(int my_rank, int nproc) +{ + ESL_RANDOMNESS *r = esl_randomness_CreateFast(42); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_HMM *hmm = NULL; + P7_HMM *xhmm = NULL; + int M = 200; + char *wbuf = NULL; + int wn = 0; + int i; + char errmsg[eslERRBUFSIZE]; + + p7_hmm_Sample(r, M, abc, &hmm); /* master and worker's sampled HMMs are identical */ + + if (my_rank == 0) + { + for (i = 1; i < nproc; i++) + { + ESL_DPRINTF1(("Master: receiving test HMM\n")); + p7_hmm_MPIRecv(MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, &wbuf, &wn, &abc, &xhmm); + ESL_DPRINTF1(("Master: test HMM received\n")); + + if (p7_hmm_Validate(xhmm, errmsg, 0.001) != eslOK) p7_Die("hmm validation failed: %s", errmsg); + if (p7_hmm_Compare(hmm, xhmm, 0.001) != eslOK) p7_Die("Received HMM not identical to what was sent"); + + p7_hmm_Destroy(xhmm); + } + } + else + { + ESL_DPRINTF1(("Worker %d: sending test HMM\n", my_rank)); + p7_hmm_MPISend(hmm, 0, 0, MPI_COMM_WORLD, &wbuf, &wn); + ESL_DPRINTF1(("Worker %d: test HMM sent\n", my_rank)); + } + + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + free(wbuf); + return; +} + +static void +utest_ProfileSendRecv(int my_rank, int nproc) +{ + ESL_RANDOMNESS *r = esl_randomness_CreateFast(42); + ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO); + P7_HMM *hmm = NULL; + P7_BG *bg = NULL; + P7_PROFILE *gm = NULL; + P7_PROFILE *gm2 = NULL; + int M = 200; + int L = 400; + char *wbuf = NULL; + int wn = 0; + int i; + char errbuf[eslERRBUFSIZE]; + + p7_hmm_Sample(r, M, abc, &hmm); /* master and worker's sampled profiles are identical */ + bg = p7_bg_Create(abc); + gm = p7_profile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL); + p7_bg_SetLength (bg, L); + + if (my_rank == 0) + { + for (i = 1; i < nproc; i++) + { + ESL_DPRINTF1(("Master: receiving test profile\n")); + p7_profile_MPIRecv(MPI_ANY_SOURCE, 0, MPI_COMM_WORLD, abc, bg, &wbuf, &wn, &gm2); + ESL_DPRINTF1(("Master: test profile received\n")); + + if (p7_profile_Validate(gm2, errbuf, 0.001) != eslOK) p7_Die("profile validation failed: %s", errbuf); + if (p7_profile_Compare(gm, gm2, 0.001) != eslOK) p7_Die("Received profile not identical to what was sent"); + + p7_profile_Destroy(gm2); + } + } + else + { + ESL_DPRINTF1(("Worker %d: sending test profile\n", my_rank)); + p7_profile_MPISend(gm, 0, 0, MPI_COMM_WORLD, &wbuf, &wn); + ESL_DPRINTF1(("Worker %d: test profile sent\n", my_rank)); + } + + free(wbuf); + p7_profile_Destroy(gm); + p7_bg_Destroy(bg); + p7_hmm_Destroy(hmm); + esl_alphabet_Destroy(abc); + esl_randomness_Destroy(r); + return; +} + + + +#endif /*p7MPISUPPORT_TESTDRIVE*/ +/*---------------------- end, unit tests ------------------------*/ + + +/***************************************************************** + * 7. Test driver. + *****************************************************************/ +#ifdef p7MPISUPPORT_TESTDRIVE + +/* mpicc -o mpisupport_utest -g -Wall -I../easel -L../easel -I. -L. -Dp7MPISUPPORT_TESTDRIVE mpisupport.c -lhmmer -leasel -lm + * In an MPI environment: (qlogin -pe lam-mpi-tight 2; setenv JOB_ID ; setenv TMPDIR /tmp/.... + * mpirun C ./mpisupport_utest + */ +#include "esl_getopts.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for debugging MPI under gdb", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "test driver for mpisupport.c"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + int stalling = FALSE; + int my_rank; + int nproc; + + /* For debugging: stall until GDB can be attached */ + if (esl_opt_GetBoolean(go, "--stall")) stalling = TRUE; + while (stalling); + + MPI_Init(&argc, &argv); + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Comm_size(MPI_COMM_WORLD, &nproc); + + utest_HMMSendRecv(my_rank, nproc); + utest_ProfileSendRecv(my_rank, nproc); + + MPI_Finalize(); + return 0; +} + +#endif /*p7MPISUPPORT_TESTDRIVE*/ +/*---------------------- end, test driver -----------------------*/ + + +#else /*!HMMER_MPI*/ + +/* If we don't have MPI compiled in, provide some nothingness to: + * a. prevent Mac OS/X ranlib from bitching about .o file that "has no symbols" + * b. prevent compiler from bitching about "empty compilation unit" + * c. automatically pass the automated tests. + */ +void p7_mpisupport_DoAbsolutelyNothing(void) { return; } +#if defined p7MPISUPPORT_TESTDRIVE || p7MPISUPPORT_EXAMPLE || p7MPISUPPORT_BENCHMARK +int main(void) { return 0; } +#endif +#endif /*HMMER_MPI*/ + + + diff --git a/bioinformaticsProject/hmmer/src/nhmmer.c b/bioinformaticsProject/hmmer/src/nhmmer.c new file mode 100644 index 0000000..9280333 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/nhmmer.c @@ -0,0 +1,1823 @@ +/* nhmmer: search profile HMM(s) against a nucleotide sequence database. + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_dmatrix.h" +#include "esl_getopts.h" +#include "esl_msa.h" +#include "esl_msafile.h" +#include "esl_scorematrix.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + + + +#ifdef HMMER_THREADS +#include +#include "esl_threads.h" +#include "esl_workqueue.h" +#endif /*HMMER_THREADS*/ + +#include "hmmer.h" + +/* set the max residue count to 1/4 meg when reading a block */ +#define NHMMER_MAX_RESIDUE_COUNT (1024 * 256) /* 1/4 Mb */ + +typedef struct { +#ifdef HMMER_THREADS + ESL_WORK_QUEUE *queue; +#endif /*HMMER_THREADS*/ + P7_BG *bg; /* null model */ + P7_PIPELINE *pli; /* work pipeline */ + P7_TOPHITS *th; /* top hit results */ + P7_OPROFILE *om; /* optimized query profile */ + FM_CFG *fm_cfg; /* global data for FM-index for fast SSV */ + P7_SCOREDATA *scoredata; /* hmm-specific data used by nhmmer */ +} WORKER_INFO; + +typedef struct { + FM_DATA *fmf; + FM_DATA *fmb; + int active; //TRUE is worker is supposed to work on the contents, FALSE otherwise +} FM_THREAD_INFO; + + +typedef struct { + int id; /* internal sequence ID */ + int length; /* length of sequence */ +} ID_LENGTH; + +typedef struct { + ID_LENGTH *id_lengths; + int count; + int size; +} ID_LENGTH_LIST; + + +static ID_LENGTH_LIST* init_id_length( int size ); +static void destroy_id_length( ID_LENGTH_LIST *list ); +static int add_id_length(ID_LENGTH_LIST *list, int id, int L); +static int assign_Lengths(P7_TOPHITS *th, ID_LENGTH_LIST *id_length_list); + +#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc" +#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc" +#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc" +#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" + + +#define CPUOPTS NULL +#define MPIOPTS NULL + + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + /* Control of output */ + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of all hits to file ", 2 }, + { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of hits to file ", 2 }, + { "--dfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits to file, in Dfam format ", 2 }, + { "--aliscoresout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save scores for each position in each alignment to ", 2 }, + { "--hmmout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "if input is alignment(s), write produced hmms to file ", 2 }, + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 }, + { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 }, + { "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 }, + { "--textw", eslARG_INT, "120", NULL, "n>=120",NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 }, + /* Control of scoring system */ + { "--singlemx", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "", "use substitution score matrix w/ single-sequence MSA-format inputs", 3 }, + { "--popen", eslARG_REAL, "0.03125",NULL,"0<=x<0.5",NULL, NULL, NULL, "gap open probability", 3 }, + { "--pextend", eslARG_REAL, "0.75", NULL, "0<=x<1", NULL, NULL, NULL, "gap extend probability", 3 }, + { "--mx", eslARG_STRING, "DNA1", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix choice (of some built-in matrices)", 99 }, /* hidden; only one choice available = DNA1*/ + { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file ", 3 }, + /* Control of reporting thresholds */ + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report sequences <= this E-value threshold in output", 4 }, + { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report sequences >= this score threshold in output", 4 }, + /* Control of inclusion (significance) thresholds */ + { "--incE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCOPTS, "consider sequences <= this E-value threshold as significant", 5 }, + { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider sequences >= this score threshold as significant", 5 }, + /* Model-specific thresholding for both reporting and inclusion */ + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 6 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 6 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 6 }, + /* Control of acceleration pipeline */ + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 }, + { "--F1", eslARG_REAL, /*set below*/NULL, NULL, NULL, NULL, NULL, "--max", "Stage 1 (SSV) threshold: promote hits w/ P <= F1", 7 }, + { "--F2", eslARG_REAL, "3e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 }, + { "--F3", eslARG_REAL, "3e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 }, + + /* Selecting the alphabet rather than autoguessing it */ + { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--rna", "input alignment is DNA sequence data", 8 }, + { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--dna", "input alignment is RNA sequence data", 8 }, + +#if defined (eslENABLE_SSE) + /* Control of FM pruning/extension */ + { "--seed_max_depth", eslARG_INT, "15", NULL, NULL, NULL, NULL, NULL, "seed length at which bit threshold must be met", 9 }, + { "--seed_sc_thresh", eslARG_REAL, "15", NULL, NULL, NULL, NULL, NULL, "Default req. score for FM seed (bits)", 9 }, + { "--seed_sc_density", eslARG_REAL, "0.8", NULL, NULL, NULL, NULL, NULL, "seed must maintain this bit density from one of two ends", 9 }, + { "--seed_drop_max_len", eslARG_INT, "4", NULL, NULL, NULL, NULL, NULL, "maximum run length with score under (max - [fm_drop_lim])", 9 }, + { "--seed_drop_lim", eslARG_REAL, "0.3", NULL, NULL, NULL, NULL, NULL, "in seed, max drop in a run of length [fm_drop_max_len]", 9 }, + { "--seed_req_pos", eslARG_INT, "5", NULL, NULL, NULL, NULL, NULL, "minimum number consecutive positive scores in seed" , 9 }, + { "--seed_consens_match", eslARG_INT, "11", NULL, NULL, NULL, NULL, NULL, " consecutive matches to consensus will override score threshold" , 9 }, + { "--seed_ssv_length", eslARG_INT, "70", NULL, NULL, NULL, NULL, NULL, "length of window around FM seed to get full SSV diagonal", 9 }, +#endif + +/* Other options */ + { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL , NULL, "assert query is in format (can be seq or msa format)", 12 }, + { "--qsingle_seqs", eslARG_NONE, NULL, NULL, NULL, NULL, NULL , NULL, "force query to be read as individual sequences, even if in an msa format", 12 }, + { "--tformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert target is in format ", 12 }, + { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 }, + { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set database size (Megabases) to for E-value calculations", 12 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 12 }, + { "--w_beta", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "tail mass at which window length is determined", 12 }, + { "--w_length", eslARG_INT, NULL, NULL, NULL, NULL, NULL, NULL, "window length - essentially max expected hit length" , 12 }, + { "--block_length", eslARG_INT, NULL, NULL, "n>=50000", NULL, NULL, NULL, "length of blocks read from target database (threaded) ", 12 }, + { "--watson", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--crick", "only search the top strand", 12 }, + { "--crick", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--watson", "only search the bottom strand", 12 }, + + + /* Restrict search to subset of database - hidden because these flags are + * (a) currently for internal use + * (b) probably going to change + */ + { "--restrictdb_stkey", eslARG_STRING, "0", NULL, NULL, NULL,"--restrictdb_n,--ssifile", NULL, "Search starts at the sequence with name ", 99 }, + { "--restrictdb_n",eslARG_INT, "-1", NULL, NULL, NULL,"--restrictdb_stkey,--ssifile", NULL, "Search target sequences (starting at --restrictdb_stkey)", 99 }, + { "--ssifile", eslARG_STRING, NULL, NULL, NULL, NULL,"--restrictdb_stkey,--restrictdb_n", NULL, "restrictdb_x values require ssi file. Override default to ", 99 }, + + + /* stage-specific window length used for bias composition estimate, + * hidden because they are confusing/expert options. May drag them out + * into the daylight eventually + */ + { "--B1", eslARG_INT, "110", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (SSV)", 99 }, + { "--B2", eslARG_INT, "240", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Vit)", 99 }, + { "--B3", eslARG_INT, "1000", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Fwd)", 99 }, + + /* expert-only option (for now), hidden from view, for altering bg probs. May not keep. */ + { "--bgfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "override default background probs with values in file ", 99 }, + + +/* Not used, but retained because esl option-handling code errors if it isn't kept here. Placed in group 99 so it doesn't print to help*/ + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "Not used", 99 }, + { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "Not used", 99 }, + { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "Not used", 99 }, + { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "Not used", 99 }, + { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "Not used", 99 }, + + + +#ifdef HMMER_THREADS + { "--cpu", eslARG_INT, p7_NCPU,"HMMER_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 12 }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + + +/* struct cfg_s : "Global" application configuration shared by all threads/processes + * + * This structure is passed to routines within main.c, as a means of semi-encapsulation + * of shared data amongst different parallel processes (threads or MPI processes). + */ +struct cfg_s { + char *dbfile; /* target sequence database file */ + char *queryfile; /* query file (hmm, fasta, or some MSA) */ + int qfmt; + + + int do_mpi; /* TRUE if we're doing MPI parallelization */ + int nproc; /* how many MPI processes, total */ + int my_rank; /* who am I, in 0..nproc-1 */ + + char *firstseq_key; /* name of the first sequence in the restricted db range */ + int n_targetseq; /* number of sequences in the restricted range */ +}; + +static char usage[] = "[options] "; +static char banner[] = "search a DNA model, alignment, or sequence against a DNA database"; + + +static int serial_master (ESL_GETOPTS *go, struct cfg_s *cfg); +static int serial_loop (WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp, char *firstseq_key, int n_targetseqs ); +#if defined (eslENABLE_SSE) + static int serial_loop_FM (WORKER_INFO *info, ESL_SQFILE *dbfp); +#endif +#ifdef HMMER_THREADS +#define BLOCK_SIZE 1000 + +static int thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, char *firstseq_key, int n_targetseqs); +static void pipeline_thread(void *arg); +#if defined (eslENABLE_SSE) +static int thread_loop_FM(WORKER_INFO *info, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp); +static void pipeline_thread_FM(void *arg); +#endif + +#endif /*HMMER_THREADS*/ + + +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_queryfile, char **ret_seqfile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 100); /* 1= group; 2 = indentation; 120=textwidth*/ + + if (puts("\nOptions directing output:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 100); + + if (puts("\nOptions controlling scoring system:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 3, 2, 100); + + if (puts("\nOptions controlling reporting thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 100); + + if (puts("\nOptions controlling inclusion (significance) thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 100); + + if (puts("\nOptions controlling model-specific thresholding:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 6, 2, 80); + + if (puts("\nOptions controlling acceleration heuristics:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 7, 2, 100); + + if (puts("\nOptions for selecting query alphabet rather than guessing it:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 8, 2, 80); + +// if (puts("\nOptions for restricting search to a range of target database sequences:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); +// esl_opt_DisplayHelp(stdout, go, 8, 2, 100); + + if (puts("\nOptions controlling seed search heuristic:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 9, 2, 100); + + if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 12, 2, 100); + exit(0); + + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_queryfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_seqfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* Validate any attempted use of stdin streams */ + if (strcmp(*ret_queryfile, "-") == 0 && strcmp(*ret_seqfile, "-") == 0) + { if (puts("Either or may be '-' (to read from stdin), but not both.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + if (puts("\nwhere basic options are:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + if (printf("\nTo see more help on available options, do %s -h\n\n", argv[0]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + +static int +output_header(FILE *ofp, const ESL_GETOPTS *go, char *queryfile, char *seqfile, int ncpus) +{ + p7_banner(ofp, go->argv[0], banner); + + if (fprintf(ofp, "# query file: %s\n", queryfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# target sequence database: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-A") && fprintf(ofp, "# MSA of all hits saved to file: %s\n", esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--dfamtblout") && fprintf(ofp, "# hits output in Dfam format: %s\n", esl_opt_GetString(go, "--dfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--aliscoresout") && fprintf(ofp, "# alignment scores output: %s\n", esl_opt_GetString(go, "--aliscoresout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--hmmout") && fprintf(ofp, "# hmm output: %s\n", esl_opt_GetString(go, "--hmmout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(go, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--singlemx") && fprintf(ofp, "# Use score matrix for 1-seq MSAs: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--popen") && fprintf(ofp, "# gap open probability: %f\n", esl_opt_GetReal (go, "--popen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--pextend") && fprintf(ofp, "# gap extend probability: %f\n", esl_opt_GetReal (go, "--pextend")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--mx") && fprintf(ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString (go, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--mxfile") && fprintf(ofp, "# subst score matrix (file): %s\n", esl_opt_GetString (go, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-E") && fprintf(ofp, "# sequence reporting threshold: E-value <= %g\n", esl_opt_GetReal (go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-T") && fprintf(ofp, "# sequence reporting threshold: score >= %g\n", esl_opt_GetReal (go, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incE") && fprintf(ofp, "# sequence inclusion threshold: E-value <= %g\n", esl_opt_GetReal (go, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incT") && fprintf(ofp, "# sequence inclusion threshold: score >= %g\n", esl_opt_GetReal (go, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# SSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--B1") && fprintf(ofp, "# biased comp SSV window len: %d\n", esl_opt_GetInteger(go, "--B1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--B2") && fprintf(ofp, "# biased comp Viterbi window len: %d\n", esl_opt_GetInteger(go, "--B2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--B3") && fprintf(ofp, "# biased comp Forward window len: %d\n", esl_opt_GetInteger(go, "--B3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--bgfile") && fprintf(ofp, "# file with custom bg probs: %s\n", esl_opt_GetString(go, "--bgfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--dna") && fprintf(ofp, "# input query is asserted as: DNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--rna") && fprintf(ofp, "# input query is asserted as: RNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + +#if defined (eslENABLE_SSE) + if (esl_opt_IsUsed(go, "--seed_max_depth") && fprintf(ofp, "# FM Seed length: %d\n", esl_opt_GetInteger(go, "--seed_max_depth")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed_sc_thresh") && fprintf(ofp, "# FM score threshhold (bits): %g\n", esl_opt_GetReal(go, "--seed_sc_thresh")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed_sc_density") && fprintf(ofp, "# FM score density (bits/pos): %g\n", esl_opt_GetReal(go, "--seed_sc_density")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed_drop_max_len") && fprintf(ofp, "# FM max neg-growth length: %d\n", esl_opt_GetInteger(go, "--seed_drop_max_len")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed_drop_lim") && fprintf(ofp, "# FM max run drop: %g\n", esl_opt_GetReal(go, "--seed_drop_lim")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed_req_pos") && fprintf(ofp, "# FM req positive run length: %d\n", esl_opt_GetInteger(go, "--seed_req_pos")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed_consens_match") && fprintf(ofp, "# FM consec consensus match req: %d\n", esl_opt_GetInteger(go, "--seed_consens_match")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed_ssv_length") && fprintf(ofp, "# FM len used for Vit window: %d\n", esl_opt_GetInteger(go, "--seed_ssv_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif + if (esl_opt_IsUsed(go, "--restrictdb_stkey") && fprintf(ofp, "# Restrict db to start at seq key: %s\n", esl_opt_GetString(go, "--restrictdb_stkey")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--restrictdb_n") && fprintf(ofp, "# Restrict db to # target seqs: %d\n", esl_opt_GetInteger(go, "--restrictdb_n")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--ssifile") && fprintf(ofp, "# Override ssi file to: %s\n", esl_opt_GetString(go, "--ssifile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + + if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--watson") && fprintf(ofp, "# search only top strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--crick") && fprintf(ofp, "# search only bottom strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# database size is set to: %.1f Mb\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed")) { + if (esl_opt_GetInteger(go, "--seed") == 0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if ( fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (esl_opt_IsUsed(go, "--qformat") && fprintf(ofp, "# query format asserted: %s\n", esl_opt_GetString(go, "--qformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--qsingle_seqs")&& fprintf(ofp,"# query contains individual seqs: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tformat") && fprintf(ofp, "# target format asserted: %s\n", esl_opt_GetString(go, "--tformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--w_beta") && fprintf(ofp, "# window length beta value: %g\n", esl_opt_GetReal(go, "--w_beta")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--w_length") && fprintf(ofp, "# window length : %d\n", esl_opt_GetInteger(go, "--w_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--block_length")&&fprintf(ofp, "# block length : %d\n", esl_opt_GetInteger(go, "--block_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#ifdef HMMER_THREADS + //if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# number of worker threads: %d\n", ncpus) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; + struct cfg_s cfg; + int status = eslOK; + + impl_Init(); /* processor specific initialization */ + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + + /* Initialize what we can in the config structure (without knowing the alphabet yet) + */ + cfg.queryfile = NULL; + cfg.dbfile = NULL; + cfg.qfmt = eslSQFILE_UNKNOWN; + cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */ + cfg.nproc = 0; /* this gets reset below, if we init MPI */ + cfg.my_rank = 0; /* this gets reset below, if we init MPI */ + + cfg.firstseq_key = NULL; + cfg.n_targetseq = -1; + + process_commandline(argc, argv, &go, &cfg.queryfile, &cfg.dbfile); + + if (esl_opt_IsOn(go, "--qformat")) { /* is this an msa or a single sequence file? */ + cfg.qfmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); // try single sequence format + if (cfg.qfmt == eslSQFILE_UNKNOWN) { + p7_Fail("%s is not a recognized input file format\n", esl_opt_GetString(go, "--qformat")); + } else { /* disallow target-only formats */ + if (cfg.qfmt == eslSQFILE_NCBI || cfg.qfmt == eslSQFILE_DAEMON || + cfg.qfmt == eslSQFILE_HMMPGMD || cfg.qfmt == eslSQFILE_FMINDEX ) + p7_Fail("%s is not a valid query format\n", esl_opt_GetString(go, "--qformat")); + } + } + + + if (esl_opt_IsUsed(go, "--restrictdb_stkey") ) + if ((cfg.firstseq_key = esl_opt_GetString(go, "--restrictdb_stkey")) == NULL) p7_Fail("Failure capturing --restrictdb_stkey\n"); + + if (esl_opt_IsUsed(go, "--restrictdb_n") ) + cfg.n_targetseq = esl_opt_GetInteger(go, "--restrictdb_n"); + + if ( cfg.n_targetseq != -1 && cfg.n_targetseq < 1 ) + p7_Fail("--restrictdb_n must be >= 1\n"); + + status = serial_master(go, &cfg); + + esl_getopts_Destroy(go); + return status; +} + +static int +nhmmer_open_hmm_file(struct cfg_s *cfg, P7_HMMFILE **hfp, char *errbuf, ESL_ALPHABET **abc, P7_HMM **hmm ) { + int status = p7_hmmfile_OpenE(cfg->queryfile, NULL, hfp, errbuf); + + if (status == eslENOTFOUND) { + p7_Fail("File existence/permissions problem in trying to open query file %s.\n%s\n", cfg->queryfile, errbuf); + } else if (status == eslOK) { + //Successfully opened HMM file + status = p7_hmmfile_Read(*hfp, abc, hmm); + if (status != eslOK) p7_Fail("Error reading hmm from file %s (%d)\n", cfg->queryfile, status); + } + return status; +} + +static int +nhmmer_open_msa_file(struct cfg_s *cfg, ESL_MSAFILE **qfp_msa, ESL_ALPHABET **abc, ESL_MSA **msa ) { + int status = esl_msafile_Open(abc, cfg->queryfile, NULL, cfg->qfmt, NULL, qfp_msa); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open query file %s.\n", cfg->queryfile); + if (status == eslOK) { + status = esl_msafile_Read(*qfp_msa, msa); + } + return status; +} + + +static int +nhmmer_open_seq_file (struct cfg_s *cfg, ESL_SQFILE **qfp_sq, ESL_ALPHABET **abc, ESL_SQ **qsq, int used_qsingle_seqs) { + int status = esl_sqfile_Open(cfg->queryfile, cfg->qfmt, NULL, qfp_sq); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open query file %s.\n", cfg->queryfile); + if (status == eslOK) { + if (*abc == NULL) { + int q_type = eslUNKNOWN; + status = esl_sqfile_GuessAlphabet(*qfp_sq, &q_type); + if ( (*qfp_sq)->format == eslSQFILE_FASTA /* we've guessed or been told it's a single sequence fasta file */ + && status == eslEFORMAT /* format error most likely to be due to presence of a gap character, so it's really an afa file */ + && used_qsingle_seqs /* we were instructed to treat the input as single seqs, so override the fasta guess/instruction, and force single-sequence handling of afa file */ + ) { + esl_sqfile_Close(*qfp_sq); + status = esl_sqfile_Open(cfg->queryfile, eslMSAFILE_AFA, NULL, qfp_sq); + if (status == eslOK && *abc == NULL) + status = esl_sqfile_GuessAlphabet(*qfp_sq, &q_type); + } + if (status == eslEFORMAT) p7_Fail("Parse failed (sequence file %s):\n%s\n", (*qfp_sq)->filename, esl_sqfile_GetErrorBuf(*qfp_sq)); + if (q_type == eslUNKNOWN) p7_Fail("Unable to guess alphabet for the %s%s query file %s\n", (cfg->qfmt==eslUNKNOWN ? "" : esl_sqio_DecodeFormat(cfg->qfmt)), (cfg->qfmt==eslSQFILE_UNKNOWN ? "":"-formatted"), cfg->queryfile); + *abc = esl_alphabet_Create(q_type); + } + if (!((*abc)->type == eslRNA || (*abc)->type == eslDNA)) + p7_Fail("Invalid alphabet type in the %s%squery file %s. Expect DNA or RNA\n", (cfg->qfmt==eslUNKNOWN ? "" : esl_sqio_DecodeFormat(cfg->qfmt)), (cfg->qfmt==eslSQFILE_UNKNOWN ? "":"-formatted "), cfg->queryfile); + + esl_sqfile_SetDigital(*qfp_sq, *abc); + // read first sequence + *qsq = esl_sq_CreateDigital(*abc); + status = esl_sqio_Read(*qfp_sq, *qsq); + if (status != eslOK) p7_Fail("reading sequence from file %s (%d): \n%s\n", cfg->queryfile, status, esl_sqfile_GetErrorBuf(*qfp_sq)); + } + return status; +} + +/* serial_master() + * The serial version of hmmsearch. + * For each query HMM in search the database for hits. + * + * A master can only return if it's successful. All errors are handled + * immediately and fatally with p7_Fail(). + */ +static int +serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; /* results output file (-o) */ + FILE *afp = NULL; /* alignment output file (-A) */ + FILE *tblfp = NULL; /* output stream for tabular (--tblout) */ + FILE *dfamtblfp = NULL; /* output stream for tabular Dfam format (--dfamtblout) */ + FILE *aliscoresfp = NULL; /* output stream for alignment scores (--aliscoresout) */ + + /*Some fraction of these will be used, depending on what sort of input is used for the query*/ + P7_HMMFILE *hfp = NULL; /* open input HMM file */ + P7_HMM *hmm = NULL; /* one HMM query */ + ESL_MSAFILE *qfp_msa = NULL; /* open query alifile */ + ESL_SQFILE *qfp_sq = NULL; /* open query seqfile */ + ESL_SQ *qsq = NULL; /* query sequence */ + FILE *hmmoutfp = NULL; /* output stream for hmms (--hmmout), only if input is an alignment file */ + char *hmmfile = NULL; /* file to write HMM to */ + + int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */ + ESL_SQFILE *dbfp = NULL; /* open input sequence file */ + + P7_BG *bg_manual = NULL; + + ESL_ALPHABET *abc = NULL; /* digital alphabet */ + ESL_STOPWATCH *w; + P7_SCOREDATA *scoredata = NULL; + + int textw = 0; + int nquery = 0; + int status = eslOK; + int qhstatus = eslOK; + int sstatus = eslOK; + int i; + int64_t resCnt = 0; + + /* used to keep track of the lengths of the sequences that are processed */ + ID_LENGTH_LIST *id_length_list = NULL; + + /* these variables are only used if db type is FM-index*/ + FM_CFG *fm_cfg = NULL; + FM_METADATA *fm_meta = NULL; + fpos_t fm_basepos; + /* end FM-index-specific variables */ + + + int ncpus = 0; + + int infocnt = 0; + WORKER_INFO *info = NULL; +#ifdef HMMER_THREADS + ESL_SQ_BLOCK *block = NULL; +#ifdef eslENABLE_SSE + FM_THREAD_INFO *fminfo = NULL; +#endif // eslENABLE_SSE + ESL_THREADS *threadObj= NULL; + ESL_WORK_QUEUE *queue = NULL; +#endif // HMMER_THREADS + char errbuf[eslERRBUFSIZE]; + double window_beta = -1.0 ; + int window_length = -1; + + P7_BUILDER *builder = NULL; + ESL_MSA *msa = NULL; + int msas_named = 0; + int force_single = ( esl_opt_IsOn(go, "--singlemx") ? TRUE : FALSE ); + + + if (esl_opt_IsUsed(go, "--w_beta")) { if ( ( window_beta = esl_opt_GetReal(go, "--w_beta") ) < 0 || window_beta > 1 ) esl_fatal("Invalid window-length beta value\n"); } + if (esl_opt_IsUsed(go, "--w_length")) { if (( window_length = esl_opt_GetInteger(go, "--w_length")) < 4 ) esl_fatal("Invalid window length value\n"); } + + w = esl_stopwatch_Create(); + + if (esl_opt_GetBoolean(go, "--notextw")) textw = 0; + else textw = esl_opt_GetInteger(go, "--textw"); + + + + if ( esl_opt_IsOn(go, "--dna") ) + abc = esl_alphabet_Create(eslDNA); + else if ( esl_opt_IsOn(go, "--rna") ) + abc = esl_alphabet_Create(eslRNA); + + + /* nhmmer accepts _query_ files that are either (i) hmm(s), (2) msa(s), or (3) sequence(s). + * The following code will follow the mandate of --qformat, and otherwise figure what + * the file type is. + */ + + /* (1) + * If we were told a specific query file type, just do what we're told + */ + if (esl_sqio_IsAlignment(cfg->qfmt) /* msa file */ && !esl_opt_IsOn(go, "--qsingle_seqs") /* msa intent is not overridden */) { + status = nhmmer_open_msa_file(cfg, &qfp_msa, &abc, &msa); + if (status != eslOK) p7_Fail("Error reading msa from the %s-formatted file %s (%d)\n", esl_sqio_DecodeFormat(cfg->qfmt), cfg->queryfile, status); + } else if (cfg->qfmt != eslSQFILE_UNKNOWN /* sequence file */) { + status = nhmmer_open_seq_file(cfg, &qfp_sq, &abc, &qsq, esl_opt_IsOn(go, "--qsingle_seqs")); + if (status != eslOK) p7_Fail("Error reading sequence from the %s-formatted file %s (%d)\n", esl_sqio_DecodeFormat(cfg->qfmt), cfg->queryfile, status); + } + + +/* (2) + * Guessing query format. + * + * First check if it's an HMM. This fails easily if it's not, + * and lets us either (a) give up right away if the input is piped (not rewindable), + * or (b) continue guessing + * + * If it isn't an HMM, and it's a rewindable file, we'll check to see + * if it's obviously an MSA file or obviously a sequence file + * If not obvious, we'll force the user to tell us. + * That looks like this: + * - Try to open it as an MSA file + * - if ok (i.e. it opens and passes the MSA check, including that + * all sequences are the same length) + * - if it's a FASTA format, it still might be a sequence file + * (note: a2m is FASTA-like, but explicitly a multiple sequence alignment) + * - if the "MSA" is a single sequence, then rewind and call it + * a sequence input. Otherwise give "must specify" message + * - otherwise, it's an MSA; proceed accordingly + * - if not ok (i.e. it's not an MSA file) + * - if it's anything, it must be a sequence file, proceed accordingly * + */ + + if ( cfg->qfmt == eslSQFILE_UNKNOWN ) { + status = nhmmer_open_hmm_file(cfg, &hfp, errbuf, &abc, &hmm); + if (status != eslOK) { /* if it is eslOK, then it's an HMM, so we're done guessing */ + if (hfp!=NULL) { p7_hmmfile_Close(hfp); hfp=NULL;} + if (strcmp(cfg->queryfile, "-") == 0 ) { + /* we can't rewind a piped file, so we can't perform any more autodetection on the query format*/ + p7_Fail("Must specify query file format (--qformat) to read from stdin ('-')"); + } else { + if (esl_opt_IsOn(go, "--qsingle_seqs")) { /* only try to open as a seq file*/ + status = nhmmer_open_seq_file(cfg, &qfp_sq, &abc, &qsq, esl_opt_IsOn(go, "--qsingle_seqs")); + if (status != eslOK) p7_Fail("Error reading query file %s (%d)\n", cfg->queryfile, status); + } else { /* first try as an msa, then fall back to seq */ + status = nhmmer_open_msa_file(cfg, &qfp_msa, &abc, &msa); + if (status == eslOK) { + if (qfp_msa->format == eslMSAFILE_AFA) { + /* this could just be a sequence file with o single sequence (in which case, fall through + * to the "sequence" case), or with several same-sized sequences (in which case ask for guidance) */ + if (msa->nseq > 1) + p7_Fail("Query file type could be either aligned or unaligned; please specify (--qformat [afa|fasta])"); + } else { + /* if ok, and not fasta, then it's an MSA ... proceed */ + cfg->qfmt = qfp_msa->format; + } + } + if (cfg->qfmt == eslSQFILE_UNKNOWN) { /* it's not an MSA, try seq */ + if (qfp_msa) { + esl_msafile_Close(qfp_msa); + qfp_msa = NULL; + esl_msa_Destroy(msa); + } + status = nhmmer_open_seq_file(cfg, &qfp_sq, &abc, &qsq, esl_opt_IsOn(go, "--qsingle_seqs")); + if (status != eslOK) p7_Fail("Error reading query file %s (%d)\n", cfg->queryfile, status); + } + } + } + } else { + if (esl_opt_IsOn(go, "--qsingle_seqs")) + p7_Fail("--qsingle_seqs flag is incompatible with an hmm-formatted query file\n"); + } + } + + if (! (abc->type == eslRNA || abc->type == eslDNA)) + p7_Fail("Invalid alphabet type in query for nhmmer. Expect DNA or RNA.\n"); + + + /* nhmmer accepts _target_ files that are either (i) some sequence file format, or + * (2) the eslSQFILE_FMINDEX format (called fmindex). + * The following code will follow the mandate of --tformat, and otherwise figure what + * the file type is. + */ + + /* If caller declared target format, decode it */ + if (esl_opt_IsOn(go, "--tformat")) { + dbformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat")); + if (dbformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat")); + } + + /* (1) + * First try to read it as a non-fmindex format, either following + * the mandate of the --tformat flag or autodetecting. If tformat is + * unspecified and the file isn't readable as one of the other formats, + * will fall through to testing the fmindex in step (2) + */ + if (dbformat != eslSQFILE_FMINDEX) { /* either we've been told what it is, or we need to autodetect. Start with sequence file */ + + status = esl_sqfile_Open(cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp); + if (status == eslEFORMAT) { + if (dbformat == eslSQFILE_UNKNOWN) { + /* We're expected to autodetect; still need to try fmindex below */ + esl_sqfile_Close(dbfp); + dbfp = NULL; + } else { + /* we were told the format, but it didn't work */ + p7_Fail("Target sequence database file %s is empty or misformatted\n", cfg->dbfile); + } + } + else if (status == eslENOTFOUND) p7_Fail("Failed to open target sequence database %s for reading\n", cfg->dbfile); + else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) p7_Fail("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile); + else { + int q_type = eslUNKNOWN; + status = esl_sqfile_GuessAlphabet(dbfp, &q_type); + if (! (q_type == eslDNA || q_type == eslRNA)) + p7_Fail("Invalid alphabet type in target for nhmmer. Expect DNA or RNA.\n"); + + /*success; move forward with other necessary steps*/ + if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) { + if (dbfp->format != eslSQFILE_FASTA) { + p7_Fail("--restrictdb_stkey and --restrictdb_n flags only allowed for fasta formatted files\n"); + } + if (esl_opt_IsUsed(go, "--ssifile")) + esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile")); + else + esl_sqfile_OpenSSI(dbfp, NULL); + } + dbformat = dbfp->format; + } + } + + /* (2) + * We've either been told it's fmindex format, or the autodetect + * has fallen through to ask us to check fmindex format + */ + if (dbfp == NULL ) { + +#if !defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + p7_Fail("fmindex is a valid sequence database file format only on systems supporting SSE vector instructions\n"); + } else { + p7_Fail("Failed to autodetect format for target sequence database %s\n", cfg->dbfile); + } +#endif + + if (dbformat != eslSQFILE_FMINDEX && strcmp(cfg->dbfile, "-") == 0 ) { + /* we can't rewind a piped file, so we can't perform any more autodetection on the target format*/ + p7_Fail("Must specify target file type (fmindex, or a sequence file format) to read from stdin ('-')"); + } + + if (esl_opt_IsOn(go, "--max")) { + if (dbformat == eslSQFILE_FMINDEX) { + p7_Fail("--max flag is incompatible with the fmindex target type\n"); + } else { + p7_Fail("Failed to autodetect target sequence format; --max flag is compatible only with sequence formats\n"); + } + } + + status = fm_configAlloc(&fm_cfg); + if (status != eslOK) p7_Fail("unable to allocate memory to store FM meta data\n"); + fm_meta = fm_cfg->meta; + + if((fm_meta->fp = fopen(cfg->dbfile, "rb")) == NULL) + p7_Fail("Failed to open target sequence database %s for reading\n", cfg->dbfile); + + if ( (status = fm_readFMmeta(fm_meta)) != eslOK) { + if (dbformat == eslSQFILE_FMINDEX) + p7_Fail("Failed to read FM meta data from target sequence database %s\n", cfg->dbfile); + else + p7_Fail("Failed to autodetect format for target sequence database %s\n", cfg->dbfile); + } + /* Sanity check */ + if ( ! ( fm_meta->alph_type == fm_DNA && (fm_meta->alph_size > 0 && fm_meta->alph_size < 30) ) ) { + p7_Fail("Unable to autodetect format of %s\n", cfg->dbfile); + } + + if ( (status = fm_configInit(fm_cfg, go)) != eslOK) + p7_Fail("Failed to initialize FM configuration for target sequence database %s\n", cfg->dbfile); + + if ( (status = fm_alphabetCreate(fm_meta, NULL)) != eslOK) + p7_Fail("Failed to create FM alphabet for target sequence database %s\n", cfg->dbfile); + + fgetpos( fm_meta->fp, &fm_basepos); + + dbformat = eslSQFILE_FMINDEX; + } + + + + + /* Open the results output files */ + if (esl_opt_IsOn(go, "-o")) { if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) p7_Fail("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); } + if (esl_opt_IsOn(go, "-A")) { if ((afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) p7_Fail("Failed to open alignment file %s for writing\n", esl_opt_GetString(go, "-A")); } + if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) esl_fatal("Failed to open tabular output file %s for writing\n", esl_opt_GetString(go, "--tblout")); } + if (esl_opt_IsOn(go, "--dfamtblout")) { if ((dfamtblfp = fopen(esl_opt_GetString(go, "--dfamtblout"),"w")) == NULL) esl_fatal("Failed to open tabular dfam output file %s for writing\n", esl_opt_GetString(go, "--dfamtblout")); } + if (esl_opt_IsOn(go, "--aliscoresout")) { if ((aliscoresfp = fopen(esl_opt_GetString(go, "--aliscoresout"),"w")) == NULL) esl_fatal("Failed to open alignment scores output file %s for writing\n", esl_opt_GetString(go, "--aliscoresout")); } + + if (qfp_msa != NULL || qfp_sq != NULL) { + if (esl_opt_IsOn(go, "--hmmout")) { + hmmfile = esl_opt_GetString(go, "--hmmout"); + if ((hmmoutfp = fopen(hmmfile,"w")) == NULL) esl_fatal("Failed to open hmm output file %s for writing\n", hmmfile); + } + } + +#ifdef HMMER_THREADS + /* initialize thread data */ + ncpus = ESL_MIN(esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + + if (ncpus > 0) { +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) + threadObj = esl_threads_Create(&pipeline_thread_FM); + else +#endif + threadObj = esl_threads_Create(&pipeline_thread); + + queue = esl_workqueue_Create(ncpus * 2); + } +#endif + + if (esl_opt_IsOn(go, "--bgfile")) { + bg_manual = p7_bg_Create(abc); + status = p7_bg_Read(esl_opt_GetString(go, "--bgfile"), bg_manual, errbuf); + if (status != eslOK) p7_Fail("Trouble reading bgfile: %s\n", errbuf); + } + + infocnt = (ncpus == 0) ? 1 : ncpus; + ESL_ALLOC(info, sizeof(*info) * infocnt); + + if (status == eslOK) { + /* One-time initializations after alphabet becomes known */ + output_header(ofp, go, cfg->queryfile, cfg->dbfile, ncpus); + + if (dbformat != eslSQFILE_FMINDEX) + dbfp->abc = abc; + + for (i = 0; i < infocnt; ++i) { + info[i].pli = NULL; + info[i].th = NULL; + info[i].om = NULL; + if (bg_manual != NULL) + info[i].bg = p7_bg_Clone(bg_manual); + else + info[i].bg = p7_bg_Create(abc); + +#ifdef HMMER_THREADS + info[i].queue = queue; +#endif + } + +#ifdef HMMER_THREADS + for (i = 0; i < ncpus * 2; ++i) { +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + ESL_ALLOC(fminfo, sizeof(FM_THREAD_INFO)); + if (fminfo == NULL) esl_fatal("Failed to allocate FM thread info"); + + ESL_ALLOC(fminfo->fmf, sizeof(FM_DATA)); + ESL_ALLOC(fminfo->fmb, sizeof(FM_DATA)); + if (fminfo->fmf == NULL || fminfo->fmb == NULL) esl_fatal("Failed to allocate FM thread info"); + fminfo->active = FALSE; + + status = esl_workqueue_Init(queue, fminfo); + if (status != eslOK) esl_fatal("Failed to add FM info to work queue"); + + } + else +#endif + { + + block = esl_sq_CreateDigitalBlock(BLOCK_SIZE, abc); + if (block == NULL) esl_fatal("Failed to allocate sequence block"); + + status = esl_workqueue_Init(queue, block); + if (status != eslOK) esl_fatal("Failed to add block to work queue"); + } + } +#endif + } + + if (qfp_sq != NULL || qfp_msa != NULL ) { // need to convert query sequence / msa to HMM + builder = p7_builder_Create(NULL, abc); + if (builder == NULL) p7_Fail("p7_builder_Create failed"); + + // special arguments for hmmbuild + builder->w_len = (go != NULL && esl_opt_IsOn (go, "--w_length")) ? esl_opt_GetInteger(go, "--w_length"): -1; + builder->w_beta = (go != NULL && esl_opt_IsOn (go, "--w_beta")) ? esl_opt_GetReal (go, "--w_beta") : p7_DEFAULT_WINDOW_BETA; + if ( builder->w_beta < 0 || builder->w_beta > 1 ) esl_fatal("Invalid window-length beta value\n"); + + } + + if (qfp_sq != NULL || (qfp_msa != NULL && force_single )) { + /* We'll use this scoring matrix whenever we have a single sequence (even in MSA format) + * Default is stored in the --mx option, so it's always IsOn(). Check --mxfile first; then go to the --mx option and the default. + */ + if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (builder, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), info->bg); + else status = p7_builder_LoadScoreSystem(builder, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), info->bg); + if (status != eslOK) p7_Fail("Failed to set single query seq score system:\n%s\n", builder->errbuf); + } + + + /* Outer loop: over each query HMM or alignment in . */ + while (qhstatus == eslOK) { + P7_PROFILE *gm = NULL; + P7_OPROFILE *om = NULL; /* optimized query profile */ + + if ( qfp_sq != NULL) {// FASTA format, each query is a single sequence, they all have names + //Turn sequence into an HMM + if ((qhstatus = p7_SingleBuilder(builder, qsq, info->bg, &hmm, NULL, NULL, NULL)) != eslOK) p7_Fail("build failed: %s", builder->errbuf); + + } else if ( qfp_msa != NULL ) { + //deal with recently read MSA + //if name isn't assigned, give it one (can only do this if there's a single unnamed alignment, so pick its filename) + if (msa->name == NULL) { + char *name = NULL; + if (msas_named>0) p7_Fail("Name annotation is required for each alignment in a multi MSA file; failed on #%d", nquery+1); + + if (cfg->queryfile != NULL) { + if ((status = esl_FileTail(cfg->queryfile, TRUE, &name)) != eslOK) return status; /* TRUE=nosuffix */ + } else { + name = "Query"; + } + + if ((status = esl_msa_SetName(msa, name, -1)) != eslOK) p7_Fail("Error assigning name to alignment"); + msas_named++; + + free(name); + } + + //Turn sequence alignment into an HMM + if (msa->nseq == 1 && force_single) { + if (qsq!=NULL) esl_sq_Destroy(qsq); + qsq = esl_sq_CreateDigitalFrom(msa->abc, (msa->sqname?msa->sqname[0]:"Query"), msa->ax[0], msa->alen, (msa->sqdesc?msa->sqdesc[0]:NULL), (msa->sqacc?msa->sqacc[0]:NULL), NULL); + esl_abc_XDealign(qsq->abc, qsq->dsq, qsq->dsq, &(qsq->n)); + if ((qhstatus = p7_SingleBuilder(builder, qsq, info->bg, &hmm, NULL, NULL, NULL)) != eslOK) p7_Fail("build failed: %s", builder->errbuf); + } else { + if ((qhstatus = p7_Builder(builder, msa, info->bg, &hmm, NULL, NULL, NULL, NULL)) != eslOK) p7_Fail("build failed: %s", builder->errbuf); + } + } + + + // Assign HMM max_length + if (window_length > 0) hmm->max_length = window_length; + else if (window_beta > 0) p7_Builder_MaxLength(hmm, window_beta); + else if (hmm->max_length == -1 ) p7_Builder_MaxLength(hmm, p7_DEFAULT_WINDOW_BETA); + + + if (hmmoutfp != NULL) { + if ((status = p7_hmmfile_WriteASCII(hmmoutfp, -1, hmm)) != eslOK) ESL_FAIL(status, errbuf, "HMM save failed"); + } + + nquery++; + resCnt = 0; + esl_stopwatch_Start(w); + + /* seqfile may need to be rewound (multiquery mode) */ + if (nquery > 1) { +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { //rewind + if (fsetpos(fm_meta->fp, &fm_basepos) != 0) ESL_EXCEPTION(eslESYS, "rewind via fsetpos() failed"); + } + else +#endif + { + if (! esl_sqfile_IsRewindable(dbfp)) + esl_fatal("Target sequence file %s isn't rewindable; can't search it with multiple queries", cfg->dbfile); + + if (! esl_opt_IsUsed(go, "--restrictdb_stkey") ) + esl_sqfile_Position(dbfp, 0); //only re-set current position to 0 if we're not planning to set it in a moment + } + } + + if (dbformat == eslSQFILE_FASTA) { + if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general + sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key); + if (sstatus != eslOK) + p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key); + } + } + + if (fprintf(ofp, "Query: %s [M=%d]\n", hmm->name, hmm->M) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (hmm->acc && fprintf(ofp, "Accession: %s\n", hmm->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (hmm->desc && fprintf(ofp, "Description: %s\n", hmm->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + + /* Convert to an optimized model */ + gm = p7_profile_Create (hmm->M, abc); + om = p7_oprofile_Create(hmm->M, abc); + p7_ProfileConfig(hmm, info->bg, gm, 100, p7_LOCAL); /* 100 is a dummy length for now; and MSVFilter requires local mode */ + p7_oprofile_Convert(gm, om); /* is now p7_LOCAL, multihit */ + +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + //capture a measure of score density multiplied by something I conjecture to be related to + //the expected longest common subsequence (sqrt(M)). If less than a default target + //(7 bits of expected LCS), then the requested score threshold will be shifted down + // according to this ratio. + // Xref: ~wheelert/notebook/2014/03-04-FM-time-v-len/00NOTES -- Thu Mar 6 14:40:48 EST 2014 + float best_sc_avg = 0; + int j; + for (i = 1; i <= om->M; i++) { + float max_score = 0; + for (j=0; jabc->K; j++) { + if ( esl_abc_XIsResidue(om->abc,j) && gm->rsc[j][(i) * p7P_NR + p7P_MSC] > max_score) max_score = gm->rsc[j][(i) * p7P_NR + p7P_MSC]; + } + best_sc_avg += max_score; + } + best_sc_avg /= sqrt((double) hmm->M); //that's dividing by M to get score density, then multiplying by sqrt(M) as a proxy for expected LCS + best_sc_avg = ESL_MAX(5.0,best_sc_avg); // don't let it get too low, or run time will dramatically suffer + + fm_cfg->sc_thresh_ratio = ESL_MIN(best_sc_avg/7.0, 1.0); + scoredata = p7_hmm_ScoreDataCreate(om, gm); + } + else +#endif + scoredata = p7_hmm_ScoreDataCreate(om, NULL); + + for (i = 0; i < infocnt; ++i) { + /* Create processing pipeline and hit list */ + info[i].th = p7_tophits_Create(); + info[i].om = p7_oprofile_Copy(om); + info[i].pli = p7_pipeline_Create(go, om->M, 100, TRUE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */ + + //set method specific --F1, if it wasn't set at command line + if (!esl_opt_IsOn(go, "--F1") ) { +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) + info[i].pli->F1 = 0.03; + else +#endif + info[i].pli->F1 = 0.02; + } + +#if defined (eslENABLE_SSE) + info[i].fm_cfg = fm_cfg; +#endif + status = p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg); + if (status == eslEINVAL) p7_Fail(info->pli->errbuf); + + info[i].pli->do_alignment_score_calc = esl_opt_IsOn(go, "--aliscoresout") ; + + if ( esl_opt_IsUsed(go, "--watson") ) + info[i].pli->strands = p7_STRAND_TOPONLY; + else if ( esl_opt_IsUsed(go, "--crick") ) + info[i].pli->strands = p7_STRAND_BOTTOMONLY; + else + info[i].pli->strands = p7_STRAND_BOTH; + + + if (dbformat != eslSQFILE_FMINDEX) { + if ( esl_opt_IsUsed(go, "--block_length") ) + info[i].pli->block_length = esl_opt_GetInteger(go, "--block_length"); + else + info[i].pli->block_length = NHMMER_MAX_RESIDUE_COUNT; + } + + info[i].scoredata = p7_hmm_ScoreDataClone(scoredata, om->abc->Kp); + +#ifdef HMMER_THREADS + if (ncpus > 0) + esl_threads_AddThread(threadObj, &info[i]); +#endif + } + + /* establish the id_lengths data structutre */ + id_length_list = init_id_length(1000); + +#ifdef HMMER_THREADS +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + for(i=0; imeta->seq_count; i++) + add_id_length(id_length_list, fm_cfg->meta->seq_data[i].target_id, fm_cfg->meta->seq_data[i].target_start + fm_cfg->meta->seq_data[i].length - 1); + + if (ncpus > 0) sstatus = thread_loop_FM (info, threadObj, queue, dbfp); + else sstatus = serial_loop_FM (info, dbfp); + } + else +#endif //defined (eslENABLE_SSE) + { + if (ncpus > 0) sstatus = thread_loop (info, id_length_list, threadObj, queue, dbfp, cfg->firstseq_key, cfg->n_targetseq); + else sstatus = serial_loop (info, id_length_list, dbfp, cfg->firstseq_key, cfg->n_targetseq); + } + +#else //HMMER_THREADS +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) + sstatus = serial_loop_FM (info, dbfp); + else +#endif // defined (eslENABLE_SSE) + sstatus = serial_loop (info, id_length_list, dbfp, cfg->firstseq_key, cfg->n_targetseq); +#endif //HMMER_THREADS + + + switch(sstatus) { + case eslEFORMAT: + esl_fatal("Parse failed (sequence file %s):\n%s\n", + dbfp->filename, esl_sqfile_GetErrorBuf(dbfp)); + break; + case eslEOF: + case eslOK: + /* do nothing */ + break; + default: + esl_fatal("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename); + } + + //need to re-compute e-values before merging (when list will be sorted) + if (esl_opt_IsUsed(go, "-Z")) { + resCnt = 1000000*esl_opt_GetReal(go, "-Z"); + + if ( info[0].pli->strands == p7_STRAND_BOTH) + resCnt *= 2; + + } else { +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + resCnt = 2 * fm_meta->char_count; + } + else +#endif + { + for (i = 0; i < infocnt; ++i) + resCnt += info[i].pli->nres; + } + } + + for (i = 0; i < infocnt; ++i) + p7_tophits_ComputeNhmmerEvalues(info[i].th, resCnt, info[i].om->max_length); + + /* merge the results of the search results */ + for (i = 1; i < infocnt; ++i) { + p7_tophits_Merge(info[0].th, info[i].th); + p7_pipeline_Merge(info[0].pli, info[i].pli); + + p7_pipeline_Destroy(info[i].pli); + p7_tophits_Destroy(info[i].th); + p7_oprofile_Destroy(info[i].om); + } + +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + info[0].pli->nseqs = fm_meta->seq_data[fm_meta->seq_count-1].target_id + 1; + info[0].pli->nres = resCnt; + } +#endif + + /* Print the results. */ + p7_tophits_SortBySeqidxAndAlipos(info->th); + assign_Lengths(info->th, id_length_list); + p7_tophits_RemoveDuplicates(info->th, info->pli->use_bit_cutoffs); + + p7_tophits_SortBySortkey(info->th); + p7_tophits_Threshold(info->th, info->pli); + + + //tally up total number of hits and target coverage + info->pli->n_output = info->pli->pos_output = 0; + for (i = 0; i < info->th->N; i++) { + if ( (info->th->hit[i]->flags & p7_IS_REPORTED) || info->th->hit[i]->flags & p7_IS_INCLUDED) { + info->pli->n_output++; + info->pli->pos_output += 1 + (info->th->hit[i]->dcl[0].jali > info->th->hit[i]->dcl[0].iali ? info->th->hit[i]->dcl[0].jali - info->th->hit[i]->dcl[0].iali : info->th->hit[i]->dcl[0].iali - info->th->hit[i]->dcl[0].jali) ; + } + } + + p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (tblfp) p7_tophits_TabularTargets(tblfp, hmm->name, hmm->acc, info->th, info->pli, (nquery == 1)); + if (dfamtblfp) p7_tophits_TabularXfam(dfamtblfp, hmm->name, hmm->acc, info->th, info->pli); + if (aliscoresfp) p7_tophits_AliScores(aliscoresfp, hmm->name, info->th ); + + esl_stopwatch_Stop(w); + + p7_pli_Statistics(ofp, info->pli, w); + + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + /* Output the results in an MSA (-A option) */ + if (afp) { + ESL_MSA *msa = NULL; + + if (p7_tophits_Alignment(info->th, abc, NULL, NULL, 0, p7_DEFAULT, &msa) == eslOK) + { + esl_msa_SetName (msa, hmm->name, -1); + esl_msa_SetAccession(msa, hmm->acc, -1); + esl_msa_SetDesc (msa, hmm->desc, -1); + esl_msa_FormatAuthor(msa, "nhmmer (HMMER %s)", HMMER_VERSION); + + if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM); + else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM); + + if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + else + { + if (fprintf(ofp, "# No hits satisfy inclusion thresholds; no alignment saved\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + esl_msa_Destroy(msa); + } + + for (i = 0; i < infocnt; ++i) + p7_hmm_ScoreDataDestroy(info[i].scoredata); + + p7_hmm_ScoreDataDestroy(scoredata); + p7_pipeline_Destroy(info->pli); + p7_tophits_Destroy(info->th); + p7_oprofile_Destroy(info->om); + p7_oprofile_Destroy(om); + p7_profile_Destroy(gm); + p7_hmm_Destroy(hmm); + destroy_id_length(id_length_list); + if (qsq != NULL) esl_sq_Reuse(qsq); + + if (hfp != NULL) { + qhstatus = p7_hmmfile_Read(hfp, &abc, &hmm); + } else if (qfp_msa != NULL){ + esl_msa_Destroy(msa); + qhstatus = esl_msafile_Read(qfp_msa, &msa); + } else { // qfp_sq + qhstatus = esl_sqio_Read(qfp_sq, qsq); + } + if (qhstatus != eslOK && qhstatus != eslEOF) p7_Fail("reading from query file %s (%d)\n", cfg->queryfile, qhstatus); + + + + + } /* end outer loop over queries */ + + if (hfp != NULL) { + switch(qhstatus) { + case eslEOD: p7_Fail("read failed, HMM file %s may be truncated?", cfg->queryfile); break; + case eslEFORMAT: p7_Fail("bad file format in HMM file %s", cfg->queryfile); break; + case eslEINCOMPAT: p7_Fail("HMM file %s contains different alphabets", cfg->queryfile); break; + case eslEOF: /* do nothing; EOF is what we expect here */ break; + default: p7_Fail("Unexpected error (%d) in reading HMMs from %s", qhstatus, cfg->queryfile); + } + } else if (qfp_msa != NULL){ + if (qhstatus != eslEOF ) esl_msafile_ReadFailure(qfp_msa, status); + } else { // qfp_sq + if (qhstatus == eslEFORMAT) p7_Fail("Parse failed (sequence file %s):\n%s\n", + qfp_sq->filename, esl_sqfile_GetErrorBuf(qfp_sq)); + else if (qhstatus != eslEOF) p7_Fail("Unexpected error %d reading sequence file %s", + qhstatus, qfp_sq->filename); + } + + if (hmmoutfp != NULL) + fclose(hmmoutfp); + + /* Terminate outputs - any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "nhmmer", p7_SEARCH_SEQS, cfg->queryfile, cfg->dbfile, go); + if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Cleanup - prepare for successful exit + */ + for (i = 0; i < infocnt; ++i) + p7_bg_Destroy(info[i].bg); + +#ifdef HMMER_THREADS + if (ncpus > 0) { + esl_workqueue_Reset(queue); +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + while (esl_workqueue_Remove(queue, (void **) &fminfo) == eslOK) { + if (fminfo) { + if (fminfo->fmf) free(fminfo->fmf); + if (fminfo->fmb) free(fminfo->fmb); + free(fminfo); + } + } + } + else +#endif + { + while (esl_workqueue_Remove(queue, (void **) &block) == eslOK) { + esl_sq_DestroyBlock(block); + } + } + esl_workqueue_Destroy(queue); + esl_threads_Destroy(threadObj); + } +#endif + + free(info); + + + + if (hfp) p7_hmmfile_Close(hfp); + if (qfp_msa) esl_msafile_Close(qfp_msa); + if (qfp_sq) esl_sqfile_Close(qfp_sq); + + if (builder) p7_builder_Destroy(builder); + if (qsq) esl_sq_Destroy(qsq); + + esl_sqfile_Close(dbfp); + esl_alphabet_Destroy(abc); + esl_stopwatch_Destroy(w); + +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + fclose(fm_meta->fp); + fm_configDestroy(fm_cfg); // will cascade to destroy meta and alphabet, too + } +#endif + + + if (ofp != stdout) fclose(ofp); + if (afp) fclose(afp); + if (tblfp) fclose(tblfp); + if (dfamtblfp) fclose(dfamtblfp); + if (aliscoresfp) fclose(aliscoresfp); + + return eslOK; + + ERROR: + if (hfp) p7_hmmfile_Close(hfp); + if (qfp_msa) esl_msafile_Close(qfp_msa); + if (qfp_sq) esl_sqfile_Close(qfp_sq); + + if (builder) p7_builder_Destroy(builder); + if (qsq) esl_sq_Destroy(qsq); + + if (ofp != stdout) fclose(ofp); + if (afp) fclose(afp); + if (tblfp) fclose(tblfp); + if (dfamtblfp) fclose(dfamtblfp); + if (aliscoresfp) fclose(aliscoresfp); + +#if defined (eslENABLE_SSE) + if (dbformat == eslSQFILE_FMINDEX) { + fm_configDestroy(fm_cfg); + } +#endif + + if (hmmfile != NULL) free (hmmfile); + + return eslFAIL; +} + +//TODO: MPI code needs to be added here +static int +serial_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp, char *firstseq_key, int n_targetseqs) +{ + + int wstatus = eslOK; + int seq_id = 0; + ESL_SQ *dbsq = esl_sq_CreateDigital(info->om->abc); + ESL_SQ *dbsq_revcmp; + + if (dbsq->abc->complement != NULL) + dbsq_revcmp = esl_sq_CreateDigital(info->om->abc); + + wstatus = esl_sqio_ReadWindow(dbfp, 0, info->pli->block_length, dbsq); + + while (wstatus == eslOK && (n_targetseqs==-1 || seq_id < n_targetseqs) ) { + dbsq->idx = seq_id; + p7_pli_NewSeq(info->pli, dbsq); + + if (info->pli->strands != p7_STRAND_BOTTOMONLY) { + + info->pli->nres -= dbsq->C; // to account for overlapping region of windows + p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, info->th, info->pli->nseqs, dbsq, p7_NOCOMPLEMENT, NULL, NULL, NULL); + p7_pipeline_Reuse(info->pli); // prepare for next search + + } else { + info->pli->nres -= dbsq->n; + } + + //reverse complement + if (info->pli->strands != p7_STRAND_TOPONLY && dbsq->abc->complement != NULL ) + { + esl_sq_Copy(dbsq,dbsq_revcmp); + esl_sq_ReverseComplement(dbsq_revcmp); + p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, info->th, info->pli->nseqs, dbsq_revcmp, p7_COMPLEMENT, NULL, NULL, NULL); + p7_pipeline_Reuse(info->pli); // prepare for next search + + info->pli->nres += dbsq_revcmp->W; + + } + + wstatus = esl_sqio_ReadWindow(dbfp, info->om->max_length, info->pli->block_length, dbsq); + if (wstatus == eslEOD) { // no more left of this sequence ... move along to the next sequence. + add_id_length(id_length_list, dbsq->idx, dbsq->L); + + info->pli->nseqs++; + esl_sq_Reuse(dbsq); + wstatus = esl_sqio_ReadWindow(dbfp, 0, info->pli->block_length, dbsq); + + seq_id++; + + } + } + + + if (dbsq) esl_sq_Destroy(dbsq); + if (dbsq_revcmp) esl_sq_Destroy(dbsq_revcmp); + + return wstatus; + +} + + +#if defined (eslENABLE_SSE) +static int +serial_loop_FM(WORKER_INFO *info, ESL_SQFILE *dbfp) +{ + + int wstatus = eslOK; + int i; + + FM_DATA fmf; + FM_DATA fmb; + + FM_METADATA *meta = info->fm_cfg->meta; + + + for ( i=0; ifm_cfg->meta->block_count; i++ ) { + + wstatus = fm_FM_read( &fmf, meta, TRUE ); + if (wstatus != eslOK) return wstatus; + wstatus = fm_FM_read( &fmb, meta, FALSE ); + if (wstatus != eslOK) return wstatus; + + fmb.SA = fmf.SA; + fmb.T = fmf.T; + + wstatus = p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, + info->th, -1, NULL, -1, &fmf, &fmb, info->fm_cfg); + if (wstatus != eslOK) return wstatus; + + fm_FM_destroy(&fmf, 1); + fm_FM_destroy(&fmb, 0); + } + + return wstatus; + +} +#endif //#if defined (eslENABLE_SSE) + +#ifdef HMMER_THREADS +static int +thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, char *firstseq_key, int n_targetseqs) +{ + + int i; + int status = eslOK; + int sstatus = eslOK; + int eofCount = 0; + ESL_SQ_BLOCK *block; + void *newBlock; + int seqid = -1; + + ESL_SQ *tmpsq = esl_sq_CreateDigital(info->om->abc); + int abort = FALSE; // in the case n_targetseqs != -1, a block may get abbreviated + + + esl_workqueue_Reset(queue); + esl_threads_WaitForStart(obj); + + status = esl_workqueue_ReaderUpdate(queue, NULL, &newBlock); + if (status != eslOK) esl_fatal("Work queue reader failed"); + ((ESL_SQ_BLOCK *)newBlock)->complete = TRUE; + + /* Main loop: */ + while (sstatus == eslOK ) { + block = (ESL_SQ_BLOCK *) newBlock; + + if (abort) { + block->count = 0; + sstatus = eslEOF; + } else { + sstatus = esl_sqio_ReadBlock(dbfp, block, info->pli->block_length, n_targetseqs, /*max_init_window=*/FALSE, TRUE); + } + + block->first_seqidx = info->pli->nseqs; + seqid = block->first_seqidx; + for (i=0; icount; i++) { + block->list[i].idx = seqid; + add_id_length(id_length_list, seqid, block->list[i].L); + seqid++; + + if ( seqid == n_targetseqs // hit the sequence target + && ( icount-1 || block->complete ) // and either it's not the last sequence (so it's complete), or its complete + ) { + abort = TRUE; + block->count = i+1; + break; + } + } + info->pli->nseqs += block->count - ((abort || block->complete) ? 0 : 1);// if there's an incomplete sequence read into the block wait to count it until it's complete. + + + if (sstatus == eslEOF) { + if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK; + ++eofCount; + } else if (!block->complete ) { + // The final sequence on the block was an incomplete window of the active sequence, + // so our next read will need a copy of it to correctly deal with overlapping + // regions. We capture a copy of the sequence here before sending it off to the + // pipeline to avoid odd race conditions that can occur otherwise. + // Copying the entire sequence isn't really necessary, and is a bit heavy- + // handed. Could accelerate if this proves to have any notable impact on speed. + esl_sq_Copy(block->list + (block->count - 1) , tmpsq); + } + + + if (sstatus == eslOK) { + + /* Capture "complete" status prior to placing current block into the work + * queue, to avoid appearance of a race condition. With only one reader + * thread, there isn't really a race risk, since "complete" is only set + * during the esl_sqio_ReadBlock() function call earlier in this loop + * (i.e. "complete" isn't altered by the worker threads)*/ + int prev_complete = block->complete; + status = esl_workqueue_ReaderUpdate(queue, block, &newBlock); + + + if (status != eslOK) esl_fatal("Work queue reader failed"); + + // Check how much space the new structure is using and re-allocate if it has grown to more than 20*block_size bytes + // this loop iterates from 0 to newBlock->listsize rather than newBlock->count because we want to count all of the + // block's sub-structures, not just the ones that contained sequence data after the last call to ReadBlock() + // This doesn't check some of the less-common sub-structures in a sequence, but it should be good enough for + // our goal of keeping block size under control + + // Do this check before copying any data from block into newBlock because otherwise, the reallocation clobbers + // information that's needed when block ends in mid sequence. + + uint64_t block_space = 0; + for(i=0; i<((ESL_SQ_BLOCK *)newBlock)->listSize; i++){ + block_space += ((ESL_SQ_BLOCK *)newBlock)->list[i].nalloc; + block_space += ((ESL_SQ_BLOCK *)newBlock)->list[i].aalloc; + block_space += ((ESL_SQ_BLOCK *)newBlock)->list[i].dalloc; + block_space += ((ESL_SQ_BLOCK *)newBlock)->list[i].srcalloc; + block_space += ((ESL_SQ_BLOCK *)newBlock)->list[i].salloc; + if (((ESL_SQ_BLOCK *)newBlock)->list[i].ss != NULL){ + block_space += ((ESL_SQ_BLOCK *)newBlock)->list[i].salloc; // ss field is not always presesnt, but takes salloc bytes if it is + } + } + + if(block_space > 20* info->pli->block_length){ + if(esl_sq_BlockReallocSequences(((ESL_SQ_BLOCK *)newBlock)) != eslOK){ + esl_fatal( "Error reallocating sequence data in block.\n"); + } + } + + //newBlock needs all this information so the next ReadBlock call will know what to do + ((ESL_SQ_BLOCK *)newBlock)->complete = prev_complete; + if (!prev_complete) { + // Push the captured copy of the previously-read sequence into the new block, + // in preparation for ReadWindow (double copy ... slower than necessary) + esl_sq_Copy(tmpsq, ((ESL_SQ_BLOCK *)newBlock)->list); + + if ( ((ESL_SQ_BLOCK *)newBlock)->list->n < info->om->max_length ) { + //no reason to search the final partial sequence on the block, as the next block will search this whole chunk + ((ESL_SQ_BLOCK *)newBlock)->list->C = ((ESL_SQ_BLOCK *)newBlock)->list->n; + (((ESL_SQ_BLOCK *)newBlock)->count)--; + } else { + ((ESL_SQ_BLOCK *)newBlock)->list->C = info->om->max_length; + } + + } + } + } + + + status = esl_workqueue_ReaderUpdate(queue, block, NULL); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + if (sstatus == eslEOF) { + /* wait for all the threads to complete */ + esl_threads_WaitForFinish(obj); + esl_workqueue_Complete(queue); + } + + esl_sq_Destroy(tmpsq); + + return sstatus; +} + +static void +pipeline_thread(void *arg) +{ + int i; + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + ESL_SQ_BLOCK *block = NULL; + void *newBlock; + + impl_Init(); + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + + /* loop until all blocks have been processed */ + block = (ESL_SQ_BLOCK *) newBlock; + + while (block->count > 0) + { + /* Main loop: */ + for (i = 0; i < block->count; ++i) + { + ESL_SQ *dbsq = block->list + i; + + p7_pli_NewSeq(info->pli, dbsq); + + if (info->pli->strands != p7_STRAND_BOTTOMONLY) { + info->pli->nres -= dbsq->C; // to account for overlapping region of windows + + p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, info->th, block->first_seqidx + i, dbsq, p7_NOCOMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/); + p7_pipeline_Reuse(info->pli); // prepare for next search + + } else { + info->pli->nres -= dbsq->n; + } + + //reverse complement + if (info->pli->strands != p7_STRAND_TOPONLY && dbsq->abc->complement != NULL) + { + esl_sq_ReverseComplement(dbsq); + p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, info->th, block->first_seqidx + i, dbsq, p7_COMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/); + p7_pipeline_Reuse(info->pli); // prepare for next search + + info->pli->nres += dbsq->W; + } + } + + status = esl_workqueue_WorkerUpdate(info->queue, block, &newBlock); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + block = (ESL_SQ_BLOCK *) newBlock; + + } + status = esl_workqueue_WorkerUpdate(info->queue, block, NULL); + if (status != eslOK) esl_fatal("Work queue worker failed"); + esl_threads_Finished(obj, workeridx); + return; +} + + +#if defined (eslENABLE_SSE) +static int +thread_loop_FM(WORKER_INFO *info, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp) +{ + + int status = eslOK; + int i; + + FM_METADATA *meta = info->fm_cfg->meta; + FM_THREAD_INFO *fminfo = NULL; + void *newFMinfo = NULL; + + esl_workqueue_Reset(queue); + esl_threads_WaitForStart(obj); + + status = esl_workqueue_ReaderUpdate(queue, NULL, &newFMinfo); + if (status != eslOK) esl_fatal("Work queue reader failed"); + fminfo = (FM_THREAD_INFO *) newFMinfo; + + /* Main loop: */ + for ( i=0; ifm_cfg->meta->block_count; i++ ) { + + status = fm_FM_read( fminfo->fmf, meta, TRUE ); + if (status != eslOK) return status; + status = fm_FM_read( fminfo->fmb, meta, FALSE ); + if (status != eslOK) return status; + + fminfo->fmb->SA = fminfo->fmf->SA; + fminfo->fmb->T = fminfo->fmf->T; + fminfo->active = TRUE; + + status = esl_workqueue_ReaderUpdate(queue, fminfo, &newFMinfo); + if (status != eslOK) esl_fatal("Work queue reader failed"); + fminfo = (FM_THREAD_INFO *) newFMinfo; + + } + + /* this part is here to feed the worker threads with new fminfo objects to swap from + * the queue while they are confirming completion of earlier fminfo objects (by + * returning them). They are labelled inactive, so the worker doesn't bother + * computing on them. + */ + for (i=0; iactive = FALSE; + esl_workqueue_ReaderUpdate(queue, fminfo, &newFMinfo); + if (status != eslOK) esl_fatal("Work queue reader failed"); + fminfo = (FM_THREAD_INFO *) newFMinfo; + } + fminfo->active = FALSE; + esl_workqueue_ReaderUpdate(queue, fminfo, NULL); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + esl_threads_WaitForFinish(obj); + esl_workqueue_Complete(queue); + + return status; +} + + +static void +pipeline_thread_FM(void *arg) +{ + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + FM_THREAD_INFO *fminfo = NULL; + void *newFMinfo = NULL; + + + impl_Init(); + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newFMinfo); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + /* loop until all blocks have been processed */ + fminfo = (FM_THREAD_INFO *) newFMinfo; + + while (fminfo->active) + { + status = p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, + info->th, -1, NULL, -1, fminfo->fmf, fminfo->fmb, info->fm_cfg/*, NULL, NULL, NULL */); + if (status != eslOK) esl_fatal ("Work queue worker failed"); + + fm_FM_destroy(fminfo->fmf, 1); + fm_FM_destroy(fminfo->fmb, 0); + + status = esl_workqueue_WorkerUpdate(info->queue, fminfo, &newFMinfo); + if (status != eslOK) esl_fatal("Work queue worker failed"); + fminfo = (FM_THREAD_INFO *) newFMinfo; + + } + + status = esl_workqueue_WorkerUpdate(info->queue, fminfo, NULL); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + esl_threads_Finished(obj, workeridx); + return; +} +#endif //#if defined (eslENABLE_SSE) + + +#endif /* HMMER_THREADS */ + + + +/* helper functions for tracking id_lengths */ + +static ID_LENGTH_LIST * +init_id_length( int size ) +{ + int status; + ID_LENGTH_LIST *list; + + ESL_ALLOC (list, sizeof(ID_LENGTH_LIST)); + list->count = 0; + list->size = size; + list->id_lengths = NULL; + + ESL_ALLOC (list->id_lengths, size * sizeof(ID_LENGTH)); + + return list; + +ERROR: + return NULL; +} + +static void +destroy_id_length( ID_LENGTH_LIST *list ) +{ + + if (list != NULL) { + if (list->id_lengths != NULL) free (list->id_lengths); + free (list); + } + +} + + +static int +add_id_length(ID_LENGTH_LIST *list, int id, int L) +{ + int status; + + if (list->count > 0 && list->id_lengths[list->count-1].id == id) { + // the last time this gets updated, it'll have the sequence's actual length + list->id_lengths[list->count-1].length = L; + } else { + + if (list->count == list->size) { + list->size *= 10; + ESL_REALLOC(list->id_lengths, list->size * sizeof(ID_LENGTH)); + } + + list->id_lengths[list->count].id = id; + list->id_lengths[list->count].length = L; + + list->count++; + } + return eslOK; + +ERROR: + return status; +} + +static int +assign_Lengths(P7_TOPHITS *th, ID_LENGTH_LIST *id_length_list) { + + int i; + int j = 0; + for (i=0; iN; i++) { + while (th->hit[i]->seqidx != id_length_list->id_lengths[j].id) { j++; } + th->hit[i]->dcl[0].ad->L = id_length_list->id_lengths[j].length; + } + + return eslOK; +} + + + diff --git a/bioinformaticsProject/hmmer/src/nhmmscan.c b/bioinformaticsProject/hmmer/src/nhmmscan.c new file mode 100644 index 0000000..62ffb87 --- /dev/null +++ b/bioinformaticsProject/hmmer/src/nhmmscan.c @@ -0,0 +1,860 @@ +/* nhmmscan: search sequence(s) against a profile HMM database, using nhmmer pipeline + */ +#include "p7_config.h" + +#include +#include +#include + +#include "easel.h" +#include "esl_alphabet.h" +#include "esl_getopts.h" +#include "esl_sq.h" +#include "esl_sqio.h" +#include "esl_stopwatch.h" + +#ifdef HMMER_THREADS +#include +#include "esl_threads.h" +#include "esl_workqueue.h" +#endif /*HMMER_THREADS*/ + +#include "hmmer.h" +#include "esl_vectorops.h" + + +typedef struct { +#ifdef HMMER_THREADS + ESL_WORK_QUEUE *queue; +#endif /*HMMER_THREADS*/ + ESL_SQ *qsq; + P7_BG *bg; /* null/background model */ + P7_BG *bg_default; /* The default null/bg model. This should only be set (non-NULL) if bg has been overriden by --bgfile */ + P7_PIPELINE *pli; /* work pipeline */ + P7_TOPHITS *th; /* top hit results */ + float *scores; + float *fwd_emissions; /* to hold residue emission probabilities in serial order (gathered from the optimized striped with p7_oprofile_GetFwdEmissionArray() ). */ +} WORKER_INFO; + +#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc" +#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc" +#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc" +#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" +#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc" + +#define CPUOPTS NULL +#define MPIOPTS NULL + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 }, + /* Control of output */ + { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file , not stdout", 2 }, + { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file ", 2 }, + { "--dfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits to file, in Dfam format ", 2 }, + { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 }, + { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 }, + { "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 }, + { "--textw", eslARG_INT, "120", NULL, "n>=120",NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 }, + + /* Control of reporting thresholds */ + { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report models <= this E-value threshold in output", 4 }, + { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report models >= this score threshold in output", 4 }, + /* Control of inclusion (significance) thresholds: */ + { "--incE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCOPTS, "consider models <= this E-value threshold as significant", 5 }, + { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider models >= this score threshold as significant", 5 }, + /* Model-specific thresholding for both reporting and inclusion */ + { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 6 }, + { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 6 }, + { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 6 }, + /* Control of acceleration pipeline */ + { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 }, + { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "MSV threshold: promote hits w/ P <= F1", 7 }, + { "--F2", eslARG_REAL, "3e-3", NULL, NULL, NULL, NULL, "--max", "Vit threshold: promote hits w/ P <= F2", 7 }, + { "--F3", eslARG_REAL, "3e-5", NULL, NULL, NULL, NULL, "--max", "Fwd threshold: promote hits w/ P <= F3", 7 }, + { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 }, + + /* Other options */ + { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input is in format ", 12 }, + { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 }, + { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 }, + { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to (if 0: one-time arbitrary seed)", 12 }, + { "--w_beta", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "tail mass at which window length is determined", 12 }, + { "--w_length", eslARG_INT, NULL, NULL, NULL, NULL, NULL, NULL, "window length - essentially max expected hit length ", 12 }, + { "--watson", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--crick", "only search the top strand", 12 }, + { "--crick", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--watson", "only search the bottom strand", 12 }, + + + + /* stage-specific window length used for bias composition estimate, + * hidden because they are confusing/expert options. May drag them out + * into the daylight eventually + */ + { "--B1", eslARG_INT, "110", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (MSV)", 99 }, + { "--B2", eslARG_INT, "240", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Vit)", 99 }, + { "--B3", eslARG_INT, "1000", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Fwd)", 99 }, + + /* expert-only option (for now), hidden from view, for altering bg probs. May not keep. */ + { "--bgfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "override default background probs with values in file ", 99 }, + + + /* Not used, but retained because esl option-handling code errors if it isn't kept here. Placed in group 99 so it doesn't print to help*/ + { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "report domains <= this E-value threshold in output", 99 }, + { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "report domains >= this score cutoff in output", 99 }, + { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "consider domains <= this E-value threshold as significant", 99 }, + { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "consider domains >= this score threshold as significant", 99 }, + { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 99 }, + +#ifdef HMMER_THREADS + { "--cpu", eslARG_INT, p7_NCPU,"HMMER_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 12 }, +#endif + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + + +/* struct cfg_s : "Global" application configuration shared by all threads/processes + * + * This structure is passed to routines within main.c, as a means of semi-encapsulation + * of shared data amongst different parallel processes (threads or MPI processes). + */ +struct cfg_s { + char *seqfile; /* query sequence file */ + char *hmmfile; /* database HMM file */ + + int do_mpi; /* TRUE if we're doing MPI parallelization */ + int nproc; /* how many MPI processes, total */ + int my_rank; /* who am I, in 0..nproc-1 */ +}; + +static char usage[] = "[-options] "; +static char banner[] = "search DNA sequence(s) against a DNA profile database"; + +static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg); +static int serial_loop (WORKER_INFO *info, P7_HMMFILE *hfp); +#ifdef HMMER_THREADS +#define BLOCK_SIZE 1 +static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, P7_HMMFILE *hfp); +static void pipeline_thread(void *arg); +#endif /*HMMER_THREADS*/ + + +/* process_commandline() + * + * Processes the commandline, filling in fields in and creating and returning + * an options structure. The help page (hmmsearch -h) is formatted + * here. + */ +static int +process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmfile, char **ret_seqfile) +{ + ESL_GETOPTS *go = esl_getopts_Create(options); + int status; + + if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* help format: */ + if (esl_opt_GetBoolean(go, "-h") == TRUE) + { + p7_banner(stdout, argv[0], banner); + esl_usage(stdout, argv[0], usage); + if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + + if (puts("\nOptions controlling output:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 2, 2, 80); + + if (puts("\nOptions controlling reporting thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 4, 2, 80); + + if (puts("\nOptions controlling inclusion (significance) thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 5, 2, 80); + + if (puts("\nOptions for model-specific thresholding:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 6, 2, 80); + + if (puts("\nOptions controlling acceleration heuristics:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 7, 2, 80); + + if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 12, 2, 80); + exit(0); + } + + if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_hmmfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + if ((*ret_seqfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + /* Validate any attempted use of stdin streams */ + if (strcmp(*ret_hmmfile, "-") == 0) + { if (puts("nhmmscan cannot read from stdin stream, because it must have hmmpress'ed auxfiles") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; } + + *ret_go = go; + return eslOK; + + FAILURE: /* all errors handled here are user errors, so be polite. */ + esl_usage(stdout, argv[0], usage); + if (puts("\nwhere most common options are:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/ + if (printf("\nTo see more help on available options, do %s -h\n\n", argv[0]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); + esl_getopts_Destroy(go); + exit(1); + + ERROR: + if (go) esl_getopts_Destroy(go); + exit(status); +} + + +static int +output_header(FILE *ofp, ESL_GETOPTS *go, char *hmmfile, char *seqfile) +{ + p7_banner(ofp, go->argv[0], banner); + + if (fprintf(ofp, "# query sequence file: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (fprintf(ofp, "# target HMM database: %s\n", hmmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# per-seq hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--dfamtblout")&& fprintf(ofp, "# hits output in Dfam format: %s\n", esl_opt_GetString(go, "--dfamtblout"))< 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(go, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "-E") && fprintf(ofp, "# profile reporting threshold: E-value <= %g\n", esl_opt_GetReal(go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "-T") && fprintf(ofp, "# profile reporting threshold: score >= %g\n", esl_opt_GetReal(go, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incE") && fprintf(ofp, "# profile inclusion threshold: E-value <= %g\n", esl_opt_GetReal(go, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--incT") && fprintf(ofp, "# profile inclusion threshold: score >= %g\n", esl_opt_GetReal(go, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# MSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--B1") && fprintf(ofp, "# biased comp MSV window len: %d\n", esl_opt_GetInteger(go, "--B1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--B2") && fprintf(ofp, "# biased comp Viterbi window len: %d\n", esl_opt_GetInteger(go, "--B2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--B3") && fprintf(ofp, "# biased comp Forward window len: %d\n", esl_opt_GetInteger(go, "--B3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--bgfile") && fprintf(ofp, "# file with custom bg probs: %s\n", esl_opt_GetString(go, "--bgfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "--watson") && fprintf(ofp, "# search only top strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--crick") && fprintf(ofp, "# search only bottom strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# sequence search space set to: %.0f\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--seed")) { + if (esl_opt_GetInteger(go, "--seed")==0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + else if ( fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + } + if (esl_opt_IsUsed(go, "--qformat") && fprintf(ofp, "# input seqfile format asserted: %s\n", esl_opt_GetString(go, "--qformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--w_beta") && fprintf(ofp, "# window length beta value: %g\n", esl_opt_GetReal(go, "--w_beta")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (esl_opt_IsUsed(go, "--w_length") && fprintf(ofp, "# window length : %d\n", esl_opt_GetInteger(go, "--w_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#ifdef HMMER_THREADS + if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); +#endif + if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + return eslOK; +} + + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = NULL; + struct cfg_s cfg; + int status = eslOK; + + impl_Init(); /* processor-specific initialization */ + p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */ + + /* Initialize what we can in the config structure (without knowing the alphabet yet) */ + cfg.hmmfile = NULL; + cfg.seqfile = NULL; + cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */ + cfg.nproc = 0; /* this gets reset below, if we init MPI */ + cfg.my_rank = 0; /* this gets reset below, if we init MPI */ + + process_commandline(argc, argv, &go, &cfg.hmmfile, &cfg.seqfile); + + status = serial_master(go, &cfg); + + esl_getopts_Destroy(go); + return status; +} + + +/* serial_master() + * The serial version of hmmsearch. + * For each query HMM in search the database for hits. + * + * A master can only return if it's successful. All errors are handled + * immediately and fatally with p7_Fail(). + */ +static int +serial_master(ESL_GETOPTS *go, struct cfg_s *cfg) +{ + FILE *ofp = stdout; // output file for results (default stdout) + FILE *tblfp = NULL; // output stream for tabular per-seq (--tblout) + FILE *dfamtblfp= NULL; // output stream for tabular Dfam format (--dfamtblout) + + P7_BG *bg_manual = NULL; + + int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */ + ESL_SQFILE *sqfp = NULL; /* open seqfile */ + P7_HMMFILE *hfp = NULL; /* open HMM database file */ + ESL_ALPHABET *abc = NULL; /* sequence alphabet */ + P7_OPROFILE *om = NULL; /* target profile */ + ESL_STOPWATCH *w = NULL; /* timing */ + ESL_SQ *qsq = NULL; /* query sequence */ + int nquery = 0; + int textw; + int status = eslOK; + int hstatus = eslOK; + int sstatus = eslOK; + int i; + + int ncpus = 0; + + int infocnt = 0; + WORKER_INFO *info = NULL; +#ifdef HMMER_THREADS + P7_OM_BLOCK *block = NULL; + ESL_THREADS *threadObj= NULL; + ESL_WORK_QUEUE *queue = NULL; +#endif + char errbuf[eslERRBUFSIZE]; + + double window_beta = -1.0 ; + int window_length = -1; + if (esl_opt_IsUsed(go, "--w_beta")) { if ( ( window_beta = esl_opt_GetReal(go, "--w_beta") ) < 0 || window_beta > 1 ) esl_fatal("Invalid window-length beta value\n"); } + if (esl_opt_IsUsed(go, "--w_length")) { if (( window_length = esl_opt_GetInteger(go, "--w_length")) < 4 ) esl_fatal("Invalid window length value\n"); } + + + w = esl_stopwatch_Create(); + + if (esl_opt_GetBoolean(go, "--notextw")) textw = 0; + else textw = esl_opt_GetInteger(go, "--textw"); + + /* If caller declared an input format, decode it */ + if (esl_opt_IsOn(go, "--qformat")) { + seqfmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat")); + if (seqfmt == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat")); + } + + /* Open the target profile database to get the sequence alphabet */ + status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, errbuf); + if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status == eslEFORMAT) p7_Fail("File format problem, trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf); + else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf); + if (! hfp->is_pressed) p7_Fail("Failed to open binary auxfiles for %s: use hmmpress first\n", hfp->fname); + + hstatus = p7_oprofile_ReadMSV(hfp, &abc, &om); + if (hstatus == eslEFORMAT) p7_Fail("bad format, binary auxfiles, %s:\n%s", cfg->hmmfile, hfp->errbuf); + else if (hstatus == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile); + else if (hstatus != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", cfg->hmmfile); + + if (om->max_length == -1) p7_Fail("No MAXL field in model(s); is this an old model format?\nnhmmer/hmmscan require HMMER 3.1 models or later."); + + p7_oprofile_Destroy(om); + p7_hmmfile_Close(hfp); + + /* Open the query sequence database */ + status = esl_sqfile_OpenDigital(abc, cfg->seqfile, seqfmt, NULL, &sqfp); + if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", cfg->seqfile); + else if (status == eslEFORMAT) p7_Fail("Sequence file %s is empty or misformatted\n", cfg->seqfile); + else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile"); + else if (status != eslOK) p7_Fail("Unexpected error %d opening sequence file %s\n", status, cfg->seqfile); + if (sqfp->format > 100) // breaking the law! That range is reserved for msa, for aligned formats + p7_Fail("%s contains a multiple sequence alignment; expect unaligned sequences, like FASTA\n", cfg->seqfile); + qsq = esl_sq_CreateDigital(abc); + + + /* Open the results output files */ + if (esl_opt_IsOn(go, "-o")) { if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) esl_fatal("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); } + if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp")); } + if (esl_opt_IsOn(go, "--dfamtblout")){ if ((dfamtblfp= fopen(esl_opt_GetString(go, "--dfamtblout"),"w")) == NULL) esl_fatal("Failed to open tabular dfam output file %s for writing\n", esl_opt_GetString(go, "--dfamtblout")); } + + output_header(ofp, go, cfg->hmmfile, cfg->seqfile); + +#ifdef HMMER_THREADS + /* initialize thread data */ + ncpus = ESL_MIN(esl_opt_GetInteger(go, "--cpu"), esl_threads_GetCPUCount()); + if (ncpus > 0) + { + threadObj = esl_threads_Create(&pipeline_thread); + queue = esl_workqueue_Create(ncpus * 2); + } +#endif + + if (esl_opt_IsOn(go, "--bgfile")) { + bg_manual = p7_bg_Create(abc); + status = p7_bg_Read(esl_opt_GetString(go, "--bgfile"), bg_manual, errbuf); + if (status != eslOK) p7_Fail("Trouble reading bgfile: %s\n", errbuf); + } + + infocnt = (ncpus == 0) ? 1 : ncpus; + ESL_ALLOC(info, sizeof(*info) * infocnt); + + for (i = 0; i < infocnt; ++i) + { + if (bg_manual != NULL) { + info[i].bg = p7_bg_Clone(bg_manual); + info[i].bg_default = p7_bg_Create(abc); + } else { + info[i].bg = p7_bg_Create(abc); + info[i].bg_default = NULL; + } +#ifdef HMMER_THREADS + info[i].queue = queue; +#endif + ESL_ALLOC(info[i].scores, sizeof(float) * abc->Kp * 16); //allocation of space to store scores that will be used in p7_oprofile_Update(Fwd|Vit|MSV)EmissionScores + } + +#ifdef HMMER_THREADS + for (i = 0; i < ncpus * 2; ++i) + { + block = p7_oprofile_CreateBlock(BLOCK_SIZE); + if (block == NULL) esl_fatal("Failed to allocate sequence block"); + + status = esl_workqueue_Init(queue, block); + if (status != eslOK) esl_fatal("Failed to add block to work queue"); + } +#endif + + /* Outside loop: over each query sequence in . */ + while ((sstatus = esl_sqio_Read(sqfp, qsq)) == eslOK) + { + if (sstatus == eslEMEM) p7_Fail("Memory allocation error reading sequence file\n", status); + if (sstatus == eslEINCONCEIVABLE) p7_Fail("Unexpected error %d reading sequence file\n", status); + // if (qsq->L > NHMMER_MAX_RESIDUE_COUNT) p7_Fail("Input sequence %s in file %s exceeds maximum length of %d bases.\n", qsq->name, cfg->seqfile, NHMMER_MAX_RESIDUE_COUNT); + + nquery++; + esl_stopwatch_Start(w); + + /* Open the target profile database */ + status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, NULL); + if (status != eslOK) p7_Fail("Unexpected error %d in opening hmm file %s.\n", status, cfg->hmmfile); + +#ifdef HMMER_THREADS + /* if we are threaded, create a lock to prevent multiple readers */ + if (ncpus > 0) + { + status = p7_hmmfile_CreateLock(hfp); + if (status != eslOK) p7_Fail("Unexpected error %d creating lock\n", status); + } +#endif + + if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->acc[0] != 0 && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + if (qsq->desc[0] != 0 && fprintf(ofp, "Description: %s\n", qsq->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + for (i = 0; i < infocnt; ++i) + { + /* Create processing pipeline and hit list */ + info[i].th = p7_tophits_Create(); + info[i].pli = p7_pipeline_Create(go, 100, 100, TRUE, p7_SCAN_MODELS); /* M_hint = 100, L_hint = 100 are just dummies for now */ + info[i].pli->hfp = hfp; /* for two-stage input, pipeline needs */ + + p7_pli_NewSeq(info[i].pli, qsq); + info[i].qsq = qsq; + + if ( esl_opt_IsUsed(go, "--watson") ) + info[i].pli->strands = p7_STRAND_TOPONLY; + else if ( esl_opt_IsUsed(go, "--crick") ) + info[i].pli->strands = p7_STRAND_BOTTOMONLY; + else + info[i].pli->strands = p7_STRAND_BOTH; + + info[i].fwd_emissions = NULL; + +#ifdef HMMER_THREADS + if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]); +#endif + } + +#ifdef HMMER_THREADS + if (ncpus > 0) hstatus = thread_loop(threadObj, queue, hfp); + else hstatus = serial_loop(info, hfp); +#else + hstatus = serial_loop(info, hfp); +#endif + switch(hstatus) + { + case eslEFORMAT: p7_Fail("bad file format in HMM file %s", cfg->hmmfile); break; + case eslEINCOMPAT: p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile); break; + case eslEOF: + case eslOK: /* do nothing */ + break; + default: p7_Fail("Unexpected error in reading HMMs from %s", cfg->hmmfile); + } + + + + /* merge the results of the search results */ + for (i = 1; i < infocnt; ++i) + { + p7_tophits_Merge(info[0].th, info[i].th); + p7_pipeline_Merge(info[0].pli, info[i].pli); + + p7_pipeline_Destroy(info[i].pli); + p7_tophits_Destroy(info[i].th); + } + + + /* modify e-value to account for number of models */ + for (i = 0; i < info->th->N ; i++) + { + info->th->unsrt[i].lnP += log((float)info->pli->nmodels); + info->th->unsrt[i].dcl[0].lnP = info->th->unsrt[i].lnP; + info->th->unsrt[i].sortkey = -1.0 * info->th->unsrt[i].lnP; + } + + + /* it's possible to have duplicates based on how viterbi ranges can overlap */ + p7_tophits_SortByModelnameAndAlipos(info->th); + p7_tophits_RemoveDuplicates(info->th, info->pli->use_bit_cutoffs); + + /* Print results */ + p7_tophits_SortBySortkey(info->th); + p7_tophits_Threshold(info->th, info->pli); + + //tally up total number of hits and target coverage + info->pli->n_output = info->pli->pos_output = 0; + for (i = 0; i < info->th->N; i++) { + if ( (info->th->hit[i]->flags & p7_IS_REPORTED) || info->th->hit[i]->flags & p7_IS_INCLUDED) { + info->pli->n_output++; + info->pli->pos_output += 1 + (info->th->hit[i]->dcl[0].jali > info->th->hit[i]->dcl[0].iali ? info->th->hit[i]->dcl[0].jali - info->th->hit[i]->dcl[0].iali : info->th->hit[i]->dcl[0].iali - info->th->hit[i]->dcl[0].jali) ; + } + } + + + + + p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + + if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1)); + if (dfamtblfp) p7_tophits_TabularXfam(dfamtblfp, qsq->name, NULL, info->th, info->pli); + + esl_stopwatch_Stop(w); + info->pli->nseqs = 1; + p7_pli_Statistics(ofp, info->pli, w); + if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); + fflush(ofp); + + p7_hmmfile_Close(hfp); + p7_pipeline_Destroy(info->pli); + p7_tophits_Destroy(info->th); + esl_sq_Reuse(qsq); + } + + + + if (sstatus == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n", + sqfp->filename, esl_sqfile_GetErrorBuf(sqfp)); + else if (sstatus != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", + sstatus, sqfp->filename); + + /* Terminate outputs - any last words? + */ + if (tblfp) p7_tophits_TabularTail(tblfp, "nhmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go); + if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); } + + /* Cleanup - prepare for successful exit + */ + for (i = 0; i < infocnt; ++i) { + p7_bg_Destroy(info[i].bg); + p7_bg_Destroy(info[i].bg_default); + if (info[i].scores != NULL) free(info[i].scores); + } + +#ifdef HMMER_THREADS + if (ncpus > 0) + { + esl_workqueue_Reset(queue); + while (esl_workqueue_Remove(queue, (void **) &block) == eslOK) + p7_oprofile_DestroyBlock(block); + esl_workqueue_Destroy(queue); + esl_threads_Destroy(threadObj); + } +#endif + + ERROR: + p7_bg_Destroy(bg_manual); + if (info) free(info); + if (qsq) esl_sq_Destroy(qsq); + if (w) esl_stopwatch_Destroy(w); + if (abc) esl_alphabet_Destroy(abc); + if (sqfp) esl_sqfile_Close(sqfp); + + if (ofp != stdout) fclose(ofp); + if (tblfp) fclose(tblfp); + if (dfamtblfp) fclose(dfamtblfp); + return status; +} + + +static int +serial_loop(WORKER_INFO *info, P7_HMMFILE *hfp) +{ + int status; + int i; + int seq_len = 0; + int prev_hit_cnt = 0; + P7_OPROFILE *om = NULL; + P7_SCOREDATA *scoredata = NULL; /* hmm-specific data used by nhmmer */ + ESL_ALPHABET *abc = NULL; + ESL_SQ *sq_revcmp = NULL; + + if (info->pli->strands != p7_STRAND_TOPONLY && info->qsq->abc->complement != NULL ) { + sq_revcmp = esl_sq_CreateDigital(info->qsq->abc); + esl_sq_Copy(info->qsq,sq_revcmp); + esl_sq_ReverseComplement(sq_revcmp); + + info->pli->nres += info->qsq->n; + } + + /* Main loop: */ + while ((status = p7_oprofile_ReadMSV(hfp, &abc, &om)) == eslOK) + { + seq_len = 0; + + p7_pli_NewModel(info->pli, om, info->bg); + p7_bg_SetLength(info->bg, info->qsq->n); + p7_oprofile_ReconfigLength(om, info->qsq->n); + + if (info->bg_default != NULL) { + /*bg was overridden by --bgfile; we need to fix all the scores + *-First, compute emissions based on bg_default + *-Then use those emissions to compute new scores for fwd, vit and msv, based on bg + *We need to ReadRest now, so we correctly compute fwd_emissions + */ + p7_oprofile_ReadRest(info->pli->hfp, om); + if ((status = p7_pli_NewModelThresholds(info->pli, om)) != eslOK) return status; + ESL_REALLOC(info->fwd_emissions, sizeof(float) * abc->Kp * (om->M+1)); + p7_oprofile_GetFwdEmissionArray(om, info->bg_default, info->fwd_emissions); + p7_oprofile_UpdateFwdEmissionScores(om, info->bg, info->fwd_emissions, info->scores); + p7_oprofile_UpdateVitEmissionScores(om, info->bg, info->fwd_emissions, info->scores); + p7_oprofile_UpdateMSVEmissionScores(om, info->bg, info->fwd_emissions, info->scores); + } + + scoredata = p7_hmm_ScoreDataCreate(om, FALSE); + + //reverse complement + if (info->pli->strands != p7_STRAND_TOPONLY && info->qsq->abc->complement != NULL ) + { + status = p7_Pipeline_LongTarget(info->pli, om, scoredata, info->bg, info->th, 0, sq_revcmp, p7_COMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/); + if (status != eslOK) p7_Fail(info->pli->errbuf); + + p7_pipeline_Reuse(info->pli); // prepare for next search + seq_len = info->qsq->n; + } + + if (info->pli->strands != p7_STRAND_BOTTOMONLY) { + status = p7_Pipeline_LongTarget(info->pli, om, scoredata, info->bg, info->th, 0, info->qsq, p7_NOCOMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/); + if (status != eslOK) p7_Fail(info->pli->errbuf); + + p7_pipeline_Reuse(info->pli); + seq_len += info->qsq->n; + } + + for (i = prev_hit_cnt; i < info->th->N ; i++) + { + info->th->unsrt[i].lnP += log((float)seq_len / (float)om->max_length); + info->th->unsrt[i].dcl[0].lnP = info->th->unsrt[i].lnP; + info->th->unsrt[i].sortkey = -1.0 * info->th->unsrt[i].lnP; + info->th->unsrt[i].dcl[0].ad->L = om->M; + } + + prev_hit_cnt = info->th->N; + + p7_oprofile_Destroy(om); + p7_hmm_ScoreDataDestroy(scoredata); + } + + esl_alphabet_Destroy(abc); + esl_sq_Destroy(sq_revcmp); + if (info->fwd_emissions) free(info->fwd_emissions); + +ERROR: + return status; +} + +#ifdef HMMER_THREADS +static int +thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, P7_HMMFILE *hfp) +{ + int status = eslOK; + int sstatus = eslOK; + int eofCount = 0; + P7_OM_BLOCK *block; + ESL_ALPHABET *abc = NULL; + void *newBlock; + + esl_workqueue_Reset(queue); + esl_threads_WaitForStart(obj); + + status = esl_workqueue_ReaderUpdate(queue, NULL, &newBlock); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + /* Main loop: */ + while (sstatus == eslOK) + { + block = (P7_OM_BLOCK *) newBlock; + sstatus = p7_oprofile_ReadBlockMSV(hfp, &abc, block); + + if (sstatus == eslEOF) + { + if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK; + ++eofCount; + } + + if (sstatus == eslOK) + { + status = esl_workqueue_ReaderUpdate(queue, block, &newBlock); + if (status != eslOK) esl_fatal("Work queue reader failed"); + } + } + + status = esl_workqueue_ReaderUpdate(queue, block, NULL); + if (status != eslOK) esl_fatal("Work queue reader failed"); + + if (sstatus == eslEOF) + { + /* wait for all the threads to complete */ + esl_threads_WaitForFinish(obj); + esl_workqueue_Complete(queue); + } + + esl_alphabet_Destroy(abc); + return sstatus; +} + +static void +pipeline_thread(void *arg) +{ + int i, j; + int status; + int workeridx; + WORKER_INFO *info; + ESL_THREADS *obj; + P7_OM_BLOCK *block; + void *newBlock; + P7_OPROFILE *om = NULL; + P7_SCOREDATA *scoredata = NULL; /* hmm-specific data used by nhmmer */ + + int seq_len = 0; + int prev_hit_cnt = 0; + ESL_SQ *sq_revcmp = NULL; + + impl_Init(); + + obj = (ESL_THREADS *) arg; + esl_threads_Started(obj, &workeridx); + + info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx); + + status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + //reverse complement + if (info->pli->strands != p7_STRAND_TOPONLY && info->qsq->abc->complement != NULL ) { + sq_revcmp = esl_sq_CreateDigital(info->qsq->abc); + esl_sq_Copy(info->qsq,sq_revcmp); + esl_sq_ReverseComplement(sq_revcmp); + info->pli->nres += info->qsq->n; + } + + /* loop until all blocks have been processed */ + block = (P7_OM_BLOCK *) newBlock; + while (block->count > 0) + { + /* Main loop: */ + for (i = 0; i < block->count; ++i) + { + om = block->list[i]; + seq_len = 0; + + p7_pli_NewModel(info->pli, om, info->bg); + p7_bg_SetLength(info->bg, info->qsq->n); + p7_oprofile_ReconfigLength(om, info->qsq->n); + + if (info->bg_default != NULL) { + /*bg was overridden by --bgfile; we need to fix all the scores + *-First, compute emissions based on bg_default + *-Then use those emissions to compute new scores for fwd, vit and msv, based on bg + *We need to ReadRest now, so we correctly compute fwd_emissions + */ + p7_oprofile_ReadRest(info->pli->hfp, om); + if ((status = p7_pli_NewModelThresholds(info->pli, om)) != eslOK) esl_fatal("Error setting thresholds in worker thread"); + ESL_REALLOC(info->fwd_emissions, sizeof(float) * info->qsq->abc->Kp * (om->M+1)); + p7_oprofile_GetFwdEmissionArray(om, info->bg_default, info->fwd_emissions); + p7_oprofile_UpdateFwdEmissionScores(om, info->bg, info->fwd_emissions, info->scores); + p7_oprofile_UpdateVitEmissionScores(om, info->bg, info->fwd_emissions, info->scores); + p7_oprofile_UpdateMSVEmissionScores(om, info->bg, info->fwd_emissions, info->scores); + } + + scoredata = p7_hmm_ScoreDataCreate(om, FALSE); + + //reverse complement + if (info->pli->strands != p7_STRAND_TOPONLY && info->qsq->abc->complement != NULL ) + { + status = p7_Pipeline_LongTarget(info->pli, om, scoredata, info->bg, info->th, 0, sq_revcmp, p7_COMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/); + if (status != eslOK) p7_Fail(info->pli->errbuf); + + p7_pipeline_Reuse(info->pli); // prepare for next search + seq_len = info->qsq->n; + } + + if (info->pli->strands != p7_STRAND_BOTTOMONLY) { + status = p7_Pipeline_LongTarget(info->pli, om, scoredata, info->bg, info->th, 0, info->qsq, p7_NOCOMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/); + if (status != eslOK) p7_Fail(info->pli->errbuf); + + p7_pipeline_Reuse(info->pli); + seq_len += info->qsq->n; + } + + for (j = prev_hit_cnt; j < info->th->N ; j++) + { + info->th->unsrt[j].lnP += log((float)seq_len / (float)om->max_length); + info->th->unsrt[j].dcl[0].lnP = info->th->unsrt[j].lnP; + info->th->unsrt[j].sortkey = -1.0 * info->th->unsrt[j].lnP; + info->th->unsrt[j].dcl[0].ad->L = om->M; + } + + prev_hit_cnt = info->th->N; + p7_hmm_ScoreDataDestroy(scoredata); + p7_oprofile_Destroy(om); + block->list[i] = NULL; + } + + + status = esl_workqueue_WorkerUpdate(info->queue, block, &newBlock); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + block = (P7_OM_BLOCK *) newBlock; + } + + + esl_sq_Destroy(sq_revcmp); + if (info->fwd_emissions != NULL) free(info->fwd_emissions); + + status = esl_workqueue_WorkerUpdate(info->queue, block, NULL); + if (status != eslOK) esl_fatal("Work queue worker failed"); + + esl_threads_Finished(obj, workeridx); + return; + + +ERROR: + esl_fatal("Error allocating memory in work queue"); + return; +} +#endif /* HMMER_THREADS */ + + diff --git a/bioinformaticsProject/hmmer/src/p7_alidisplay.c b/bioinformaticsProject/hmmer/src/p7_alidisplay.c new file mode 100644 index 0000000..836ee5a --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_alidisplay.c @@ -0,0 +1,2218 @@ +/* Formatting, transmitting, and printing single alignments to a + * profile. + * + * Contents: + * 1. The P7_ALIDISPLAY object. + * 2. The P7_ALIDISPLAY API. + * 3. Debugging/dev code. + * 4. Benchmark driver. + * 5. Unit tests. + * 6. Test driver. + * 7. Example. + */ +#include "p7_config.h" + +#include +#include +#include +#include +#include + +#include "easel.h" +#include "hmmer.h" + +// Define bit-vector constants used in the _Serialize() and _Deserialize routines +#define RFLINE_PRESENT (1 << 0) +#define MMLINE_PRESENT (1 << 1) +#define CSLINE_PRESENT (1 << 2) +#define PPLINE_PRESENT (1 << 3) +#define ASEQ_PRESENT (1 << 4) +#define NTSEQ_PRESENT (1 << 5) + +/***************************************************************** + * 1. The P7_ALIDISPLAY object + *****************************************************************/ + +/* A P7_ALIDISPLAY structure originally had two possible states: + * "serialized", in which all of the variable-length fields of the structure + * were pointers into one block of allocated memory, which was pointed to by the + * structure's "mem" field, and + * "deserialized", in which each of the variable-length fields of the structure + * were separate regions of allocated memory. The intent of this was that + * "serialized" structures would be faster to create, as they only require one + * memory allocation, and easier to send over sockets, but that "deserialized" + * structures would be easier to modify and/or reuse. However, HMMER currently + * does not ever modify or reuse P7_ALIDISPLAY structures. + * + * P7_ALIDISPLAY structures are created in "serialized" mode. The only time they + * were ever converted into "deserialized" mode was in hmmpgmd2msa, and this was + * somewhat unnecessary. + * + * Now, we have added _Serialize() and _Deserialize() functions that have the more + * traditional behavior of converting P7_ALIDISPLAY structures to and from + * contiguous blocks of bytes for transmission over sockets. With this change, + * P7_ALIDISPLAY structures will always be in "serialized" mode, and will never be + * converted to their "deserialized" mode. (Yes, this terminology is confusing.) + * + * For H3, we will leave the existing code to handle the "serialized" and "deserialized" + * modes in place. HMMER's output code is being heavily revised for H4, and we will + * revisit how these modes are handled in H4 once that portion of the code stabilizes. + */ + +/* Function: p7_alidisplay_Create() + * Synopsis: Create an alignment display, from trace and oprofile. + * + * Purpose: Creates and returns an alignment display for domain number + * in traceback
+ * and flag new hits that are included for the first time + * (by setting flag) and hits that were + * included previously, but are now below the inclusion + * threshold in the list ( + * flag). + * + * The must already have been processed by + * . We assume the , + * flags are set on the appropriate hits. + * + * Upon return, the keyhash is updated to hash the + * current top hits list and their ranks. + * + * Optionally, <*opt_nnew> is set to the number of + * newly included hits. jackhmmer uses this as part of + * its convergence criteria, for example. + * + * These flags affect output of top target hits from + * . + * + * It only makes sense to call this function in context of + * an iterative search. + * + * The flag is comprehensive: all new hits + * are flagged (and counted in <*opt_nnew>). The + * flag is not comprehensive: only those hits that still + * appear in the current top hits list are flagged. If a + * hit dropped entirely off the list, it isn't counted + * as "dropped". (This could be done, but we would want + * to have two keyhashes, one old and one new, to do the + * necessary comparisons efficiently.) + * + * If the target names in are not unique, results may + * be strange. + * + * Args: th - current top hits list + * kh - hash of top hits' ranks (in: previous tophits; out: 's tophits) + * opt_nnew - optRETURN: number of new hits above inclusion threshold + * + * Returns: on success. + * + * Throws: if needed to be reallocated but this failed. + */ +int +p7_tophits_CompareRanking(P7_TOPHITS *th, ESL_KEYHASH *kh, int *opt_nnew) +{ + int nnew = 0; + int oldrank; + int h; + int status; + + /* Flag the hits in the list with whether they're new in the included top hits, + * and whether they've dropped off the included list. + */ + for (h = 0; h < th->N; h++) + { + esl_keyhash_Lookup(kh, th->hit[h]->name, -1, &oldrank); + + if (th->hit[h]->flags & p7_IS_INCLUDED) + { + if (oldrank == -1) { th->hit[h]->flags |= p7_IS_NEW; nnew++; } + } + else + { + if (oldrank >= 0) th->hit[h]->flags |= p7_IS_DROPPED; + } + } + + /* Replace the old rank list with the new one */ + esl_keyhash_Reuse(kh); + for (h = 0; h < th->N; h++) + { + if (th->hit[h]->flags & p7_IS_INCLUDED) + { + /* What happens when the same sequence name appears twice? It gets stored with higher rank */ + status = esl_keyhash_Store(kh, th->hit[h]->name, -1, NULL); + if (status != eslOK && status != eslEDUP) goto ERROR; + } + } + + if (opt_nnew != NULL) *opt_nnew = nnew; + return eslOK; + + ERROR: + if (opt_nnew != NULL) *opt_nnew = 0; + return status; +} + + +/* Function: p7_tophits_Targets() + * Synopsis: Format and write a top target hits list to an output stream. + * + * Purpose: Output a list of the reportable top target hits in + * in human-readable ASCII text format to stream , using + * final pipeline accounting stored in . + * + * The tophits list should already be sorted (see + * and thresholded (see + * ). + * + * Returns: on success. + * + * Throws: on write failure. + */ +int +p7_tophits_Targets(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw) +{ + char newness; + int h; + int d; + int namew; + int posw; + int descw; + char *showname; + + int have_printed_incthresh = FALSE; + + /* when --acc is on, we'll show accession if available, and fall back to name */ + if (pli->show_accessions) namew = ESL_MAX(8, p7_tophits_GetMaxShownLength(th)); + else namew = ESL_MAX(8, p7_tophits_GetMaxNameLength(th)); + + + if (pli->long_targets) + { + posw = ESL_MAX(6, p7_tophits_GetMaxPositionLength(th)); + + if (textw > 0) descw = ESL_MAX(32, textw - namew - 2*posw - 32); /* 32 chars excluding desc and two posw's is from the format: 2 + 9+2 +6+2 +5+2 ++1 ++1 ++1 +1 */ + else descw = 0; /* unlimited desc length is handled separately */ + + if (fprintf(ofp, "Scores for complete hit%s:\n", pli->mode == p7_SEARCH_SEQS ? "s" : "") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + if (fprintf(ofp, " %9s %6s %5s %-*s %*s %*s %s\n", + "E-value", " score", " bias", namew, (pli->mode == p7_SEARCH_SEQS ? "Sequence":"Model"), posw, "start", posw, "end", "Description") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + if (fprintf(ofp, " %9s %6s %5s %-*s %*s %*s %s\n", + "-------", "------", "-----", namew, "--------", posw, "-----", posw, "-----", "-----------") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + } + else + { + + if (textw > 0) descw = ESL_MAX(32, textw - namew - 61); /* 61 chars excluding desc is from the format: 2 + 22+2 +22+2 +8+2 ++1 */ + else descw = 0; /* unlimited desc length is handled separately */ + + + /* The minimum width of the target table is 111 char: 47 from fields, 8 from min name, 32 from min desc, 13 spaces */ + if (fprintf(ofp, "Scores for complete sequence%s (score includes all domains):\n", pli->mode == p7_SEARCH_SEQS ? "s" : "") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + if (fprintf(ofp, " %22s %22s %8s\n", " --- full sequence ---", " --- best 1 domain ---", "-#dom-") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + if (fprintf(ofp, " %9s %6s %5s %9s %6s %5s %5s %2s %-*s %s\n", + "E-value", " score", " bias", "E-value", " score", " bias", " exp", "N", namew, (pli->mode == p7_SEARCH_SEQS ? "Sequence":"Model"), "Description") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + if (fprintf(ofp, " %9s %6s %5s %9s %6s %5s %5s %2s %-*s %s\n", + "-------", "------", "-----", "-------", "------", "-----", " ----", "--", namew, "--------", "-----------") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + } + + for (h = 0; h < th->N; h++) + { + if (th->hit[h]->flags & p7_IS_REPORTED) + { + d = th->hit[h]->best_domain; + + if (! (th->hit[h]->flags & p7_IS_INCLUDED) && ! have_printed_incthresh) + { + if (fprintf(ofp, " ------ inclusion threshold ------\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + have_printed_incthresh = TRUE; + } + + if (pli->show_accessions) + { /* the --acc option: report accessions rather than names if possible */ + if (th->hit[h]->acc != NULL && th->hit[h]->acc[0] != '\0') showname = th->hit[h]->acc; + else showname = th->hit[h]->name; + } + else + showname = th->hit[h]->name; + + if (th->hit[h]->flags & p7_IS_NEW) newness = '+'; + else if (th->hit[h]->flags & p7_IS_DROPPED) newness = '-'; + else newness = ' '; + + if (pli->long_targets) + { + if (fprintf(ofp, "%c %9.2g %6.1f %5.1f %-*s %*" PRId64 " %*" PRId64 "", + newness, + exp(th->hit[h]->lnP), // * pli->Z, + th->hit[h]->score, + eslCONST_LOG2R * th->hit[h]->dcl[d].dombias, // an nhmmer hit is really a domain, so this is the hit's bias correction + namew, showname, + posw, th->hit[h]->dcl[d].iali, + posw, th->hit[h]->dcl[d].jali) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + } + else + { + if (fprintf(ofp, "%c %9.2g %6.1f %5.1f %9.2g %6.1f %5.1f %5.1f %2d %-*s ", + newness, + exp(th->hit[h]->lnP) * pli->Z, + th->hit[h]->score, + th->hit[h]->pre_score - th->hit[h]->score, /* bias correction */ + exp(th->hit[h]->dcl[d].lnP) * pli->Z, + th->hit[h]->dcl[d].bitscore, + eslCONST_LOG2R * th->hit[h]->dcl[d].dombias, /* convert NATS to BITS at last moment */ + th->hit[h]->nexpected, + th->hit[h]->nreported, + namew, showname) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + } + + if (textw > 0) + { + if (fprintf(ofp, " %-.*s\n", descw, th->hit[h]->desc == NULL ? "" : th->hit[h]->desc) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + } + else + { + if (fprintf(ofp, " %s\n", th->hit[h]->desc == NULL ? "" : th->hit[h]->desc) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + } + /* do NOT use *s with unlimited (INT_MAX) line length. Some systems + * have an fprintf() bug here (we found one on an Opteron/SUSE Linux + * system (#h66) + */ + } + } + + if (th->nreported == 0) + { + if (fprintf(ofp, "\n [No hits detected that satisfy reporting thresholds]\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "per-sequence hit list: write failed"); + } + return eslOK; +} + + +/* Function: p7_tophits_Domains() + * Synopsis: Standard output format for top domain hits and alignments. + * + * Purpose: For each reportable target sequence, output a tabular summary + * of reportable domains found in it, followed by alignments of + * each domain. + * + * Similar to ; see additional notes there. + * + * Returns: on success. + * + * Throws: if a write to fails; for example, if + * the disk fills up. + */ +int +p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw) +{ + int h, d; + int nd; + int namew, descw; + char *showname; + int status; + + if (pli->long_targets) + { + if (fprintf(ofp, "Annotation for each hit %s:\n", + pli->show_alignments ? " (and alignments)" : "") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + else + { + if (fprintf(ofp, "Domain annotation for each %s%s:\n", + pli->mode == p7_SEARCH_SEQS ? "sequence" : "model", + pli->show_alignments ? " (and alignments)" : "") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + + for (h = 0; h < th->N; h++) + if (th->hit[h]->flags & p7_IS_REPORTED) + { + if (pli->show_accessions && th->hit[h]->acc != NULL && th->hit[h]->acc[0] != '\0') + { + showname = th->hit[h]->acc; + namew = strlen(th->hit[h]->acc); + } + else + { + showname = th->hit[h]->name; + namew = strlen(th->hit[h]->name); + } + + if (textw > 0) + { + descw = ESL_MAX(32, textw - namew - 5); + if (fprintf(ofp, ">> %s %-.*s\n", showname, descw, (th->hit[h]->desc == NULL ? "" : th->hit[h]->desc)) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + else + { + if (fprintf(ofp, ">> %s %s\n", showname, (th->hit[h]->desc == NULL ? "" : th->hit[h]->desc)) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + + if (th->hit[h]->nreported == 0) + { + if (fprintf(ofp," [No individual domains that satisfy reporting thresholds (although complete target did)]\n\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + continue; + } + + + if (pli->long_targets) + { + /* The dna hit table is 119 char wide: + score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to hqfrom hq to sq len acc + ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- --------- --------- ---- + ! 82.7 104.4 4.9e-22 782 998 .. 241981174 241980968 .. 241981174 241980966 .. 241981174 241980968 234234233 0.78 + */ + if (fprintf(ofp, " %6s %5s %9s %9s %9s %2s %9s %9s %2s %9s %9s %9s %2s %4s\n", "score", "bias", " Evalue", "hmmfrom", "hmm to", " ", " alifrom ", " ali to ", " ", " envfrom ", " env to ", (pli->mode == p7_SEARCH_SEQS ? " sq len " : " mod len "), " ", "acc") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + if (fprintf(ofp, " %6s %5s %9s %9s %9s %2s %9s %9s %2s %9s %9s %9s %2s %4s\n", "------", "-----", "---------", "-------", "-------", " ", "---------", "---------", " ", "---------", "---------", "---------", " ", "----") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + else + { + /* The domain table is 101 char wide: + # score bias c-Evalue i-Evalue hmmfrom hmmto alifrom ali to envfrom env to acc + --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ---- + 1 ? 123.4 23.1 9.7e-11 6.8e-9 3 1230 .. 1 492 [] 2 490 .] 0.90 + 123 ! 1234.5 123.4 123456789 123456789 1234567 1234567 .. 1234567 1234567 [] 1234567 1234568 .] 0.12 + */ + if (fprintf(ofp, " %3s %6s %5s %9s %9s %7s %7s %2s %7s %7s %2s %7s %7s %2s %4s\n", "#", "score", "bias", "c-Evalue", "i-Evalue", "hmmfrom", "hmm to", " ", "alifrom", "ali to", " ", "envfrom", "env to", " ", "acc") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + if (fprintf(ofp, " %3s %6s %5s %9s %9s %7s %7s %2s %7s %7s %2s %7s %7s %2s %4s\n", "---", "------", "-----", "---------", "---------", "-------", "-------", " ", "-------", "-------", " ", "-------", "-------", " ", "----") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + + + /* Domain hit table for each reported domain in this reported sequence. */ + nd = 0; + for (d = 0; d < th->hit[h]->ndom; d++) + { + if (th->hit[h]->dcl[d].is_reported) + { + nd++; + if (pli->long_targets) + { + if (fprintf(ofp, " %c %6.1f %5.1f %9.2g %9d %9d %c%c %9" PRId64 " %9" PRId64 " %c%c %9" PRId64 " %9" PRId64 " %c%c %9" PRId64 " %4.2f\n", + //nd, + th->hit[h]->dcl[d].is_included ? '!' : '?', + th->hit[h]->dcl[d].bitscore, + th->hit[h]->dcl[d].dombias * eslCONST_LOG2R, /* convert NATS to BITS at last moment */ + exp(th->hit[h]->dcl[d].lnP), + th->hit[h]->dcl[d].ad->hmmfrom, + th->hit[h]->dcl[d].ad->hmmto, + (th->hit[h]->dcl[d].ad->hmmfrom == 1) ? '[' : '.', + (th->hit[h]->dcl[d].ad->hmmto == th->hit[h]->dcl[d].ad->M) ? ']' : '.', + th->hit[h]->dcl[d].ad->sqfrom, + th->hit[h]->dcl[d].ad->sqto, + (th->hit[h]->dcl[d].ad->sqfrom == 1) ? '[' : '.', + (th->hit[h]->dcl[d].ad->sqto == th->hit[h]->dcl[d].ad->L) ? ']' : '.', + th->hit[h]->dcl[d].ienv, + th->hit[h]->dcl[d].jenv, + (th->hit[h]->dcl[d].ienv == 1) ? '[' : '.', + (th->hit[h]->dcl[d].jenv == th->hit[h]->dcl[d].ad->L) ? ']' : '.', + th->hit[h]->dcl[d].ad->L, + (th->hit[h]->dcl[d].oasc / (1.0 + fabs((float) (th->hit[h]->dcl[d].jenv - th->hit[h]->dcl[d].ienv))))) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + else + { + if (fprintf(ofp, " %3d %c %6.1f %5.1f %9.2g %9.2g %7d %7d %c%c", + nd, + th->hit[h]->dcl[d].is_included ? '!' : '?', + th->hit[h]->dcl[d].bitscore, + th->hit[h]->dcl[d].dombias * eslCONST_LOG2R, /* convert NATS to BITS at last moment */ + exp(th->hit[h]->dcl[d].lnP) * pli->domZ, + exp(th->hit[h]->dcl[d].lnP) * pli->Z, + th->hit[h]->dcl[d].ad->hmmfrom, + th->hit[h]->dcl[d].ad->hmmto, + (th->hit[h]->dcl[d].ad->hmmfrom == 1) ? '[' : '.', + (th->hit[h]->dcl[d].ad->hmmto == th->hit[h]->dcl[d].ad->M ) ? ']' : '.') < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + + if (fprintf(ofp, " %7" PRId64 " %7" PRId64 " %c%c", + th->hit[h]->dcl[d].ad->sqfrom, + th->hit[h]->dcl[d].ad->sqto, + (th->hit[h]->dcl[d].ad->sqfrom == 1) ? '[' : '.', + (th->hit[h]->dcl[d].ad->sqto == th->hit[h]->dcl[d].ad->L) ? ']' : '.') < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + + if (fprintf(ofp, " %7" PRId64 " %7" PRId64 " %c%c", + th->hit[h]->dcl[d].ienv, + th->hit[h]->dcl[d].jenv, + (th->hit[h]->dcl[d].ienv == 1) ? '[' : '.', + (th->hit[h]->dcl[d].jenv == th->hit[h]->dcl[d].ad->L) ? ']' : '.') < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + + if (fprintf(ofp, " %4.2f\n", + (th->hit[h]->dcl[d].oasc / (1.0 + fabs((float) (th->hit[h]->dcl[d].jenv - th->hit[h]->dcl[d].ienv))))) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + + } + } // end of domain table in this reported sequence. + + /* Alignment data for each reported domain in this reported sequence. */ + if (pli->show_alignments) + { + if (pli->long_targets) + { + if (fprintf(ofp, "\n Alignment:\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + else + { + if (fprintf(ofp, "\n Alignments for each domain:\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + nd = 0; + } + + for (d = 0; d < th->hit[h]->ndom; d++) + if (th->hit[h]->dcl[d].is_reported) + { + nd++; + if (!pli->long_targets) + { + if (fprintf(ofp, " == domain %d", nd ) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + if (fprintf(ofp, " score: %.1f bits", th->hit[h]->dcl[d].bitscore) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + if (!pli->long_targets) + { + if (fprintf(ofp, "; conditional E-value: %.2g\n", exp(th->hit[h]->dcl[d].lnP) * pli->domZ) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + else + { + if (fprintf(ofp, "\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + + if ((status = p7_alidisplay_Print(ofp, th->hit[h]->dcl[d].ad, 40, textw, pli)) != eslOK) return status; + + if (fprintf(ofp, "\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + } + else // alignment reporting is off: + { + if (fprintf(ofp, "\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + + } // end, loop over all reported hits + + if (th->nreported == 0) + { + if (fprintf(ofp, "\n [No targets detected that satisfy reporting thresholds]\n") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed"); + } + return eslOK; +} + + +/* Function: p7_tophits_Alignment() + * Synopsis: Create multiple alignment of all included domains. + * + * Purpose: Create a multiple alignment of all domains marked + * "includable" in the top hits list . Return it in + * <*ret_msa>. + * + * Use of is identical to in . + * Possible flags include , , + * and ; they may be OR'ed together. Otherwise, pass + * to set no flags. + * + * Caller may optionally provide , , and + * to include additional sequences in the alignment + * (the jackhmmer query, for example). Otherwise, pass . + * + * Returns: on success, and <*ret_msa> points to a new MSA that + * the caller is responsible for freeing. + * + * Returns if there are no included domains, + * in which case <*ret_msa> is . + * + * Throws: on allocation failure; + * on unexpected internal data corruption. + * + * Xref: J4/29: incept. + * J4/76: added inc_sqarr, inc_trarr, inc_n, optflags + * H4/72: iss131, segfault if top seq has no reported domains + * H5/88: iss140, jackhmmer --fast segfaults + */ +int +p7_tophits_Alignment(const P7_TOPHITS *th, const ESL_ALPHABET *abc, + ESL_SQ **inc_sqarr, P7_TRACE **inc_trarr, int inc_n, + int optflags, ESL_MSA **ret_msa) +{ + ESL_SQ **sqarr = NULL; + P7_TRACE **trarr = NULL; + ESL_MSA *msa = NULL; + int ndom = 0; + int M = 0; + int h, d, y; + int status; + + /* How many domains will be included in the new alignment? We also + * set M here; we don't have hmm, but every ali has a copy. + * + * Beware: although p7_Pipeline() must not register hits that have + * no domains, it did happen {iss131}. So we're careful (here, at + * least) about testing ndom before reaching into dcl[] to get M. + */ + for (h = 0; h < th->N; h++) + if (th->hit[h]->flags & p7_IS_INCLUDED) + for (d = 0; d < th->hit[h]->ndom; d++) + if (th->hit[h]->dcl[d].is_included) + { + if (M == 0) M = th->hit[h]->dcl[d].ad->M; + ndom++; + } + + if (inc_n) + { + if (M == 0) M = inc_trarr[0]->M; // unusual case where there's an included trace, but no other aligned hits: get M from included trace + else if (M != inc_trarr[0]->M) // spot check that included traces appear to have same # of consensus positions; iss#140 + ESL_XEXCEPTION(eslECORRUPT, "top hits and included trace(s) have different profile lengths"); + } + if (inc_n+ndom == 0) { status = eslFAIL; goto ERROR; } + + /* Allocation */ + ESL_ALLOC(sqarr, sizeof(ESL_SQ *) * (ndom + inc_n)); + ESL_ALLOC(trarr, sizeof(P7_TRACE *) * (ndom + inc_n)); + /* Inclusion of preexisting seqs, traces: make copy of pointers */ + for (y = 0; y < inc_n; y++) { sqarr[y] = inc_sqarr[y]; trarr[y] = inc_trarr[y]; } + for (; y < (ndom+inc_n); y++) { sqarr[y] = NULL; trarr[y] = NULL; } + + /* Make faux sequences, traces from hit list */ + y = inc_n; + for (h = 0; h < th->N; h++) + if (th->hit[h]->flags & p7_IS_INCLUDED) + { + for (d = 0; d < th->hit[h]->ndom; d++) + if (th->hit[h]->dcl[d].is_included) + { + if ((status = p7_alidisplay_Backconvert(th->hit[h]->dcl[d].ad, abc, &(sqarr[y]), &(trarr[y]))) != eslOK) goto ERROR; + y++; + } + } + + /* Make the multiple alignment */ + if ((status = p7_tracealign_Seqs(sqarr, trarr, inc_n+ndom, M, optflags, NULL, &msa)) != eslOK) goto ERROR; + + /* Clean up */ + for (y = inc_n; y < ndom+inc_n; y++) esl_sq_Destroy(sqarr[y]); + for (y = inc_n; y < ndom+inc_n; y++) p7_trace_Destroy(trarr[y]); + free(sqarr); + free(trarr); + *ret_msa = msa; + return eslOK; + + ERROR: + if (sqarr != NULL) { for (y = inc_n; y < ndom+inc_n; y++) if (sqarr[y] != NULL) esl_sq_Destroy(sqarr[y]); free(sqarr); } + if (trarr != NULL) { for (y = inc_n; y < ndom+inc_n; y++) if (trarr[y] != NULL) p7_trace_Destroy(trarr[y]); free(trarr); } + if (msa != NULL) esl_msa_Destroy(msa); + *ret_msa = NULL; + return status; +} +/*---------------- end, standard output format ------------------*/ + + + + + +/***************************************************************** + * 3. Tabular (parsable) output of pipeline results. + *****************************************************************/ + +/* Function: p7_tophits_TabularTargets() + * Synopsis: Output parsable table of per-sequence hits. + * + * Purpose: Output a parseable table of reportable per-sequence hits + * in sorted tophits list in an easily parsed ASCII + * tabular form to stream , using final pipeline + * accounting stored in . + * + * Designed to be concatenated for multiple queries and + * multiple top hits list. + * + * Returns: on success. + * + * Throws: if a write to fails; for example, if + * the disk fills up. + */ +int +p7_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli, int show_header) +{ + int qnamew = ESL_MAX(20, strlen(qname)); + int tnamew = ESL_MAX(20, p7_tophits_GetMaxNameLength(th)); + int qaccw = ((qacc != NULL) ? ESL_MAX(10, strlen(qacc)) : 10); + int taccw = ESL_MAX(10, p7_tophits_GetMaxAccessionLength(th)); + int posw = (pli->long_targets ? ESL_MAX(7, p7_tophits_GetMaxPositionLength(th)) : 0); + int h,d; + + if (show_header) + { + if (pli->long_targets) + { + if (fprintf(ofp, "#%-*s %-*s %-*s %-*s %s %s %*s %*s %*s %*s %*s %6s %9s %6s %5s %s\n", + tnamew-1, " target name", taccw, "accession", qnamew, "query name", qaccw, "accession", "hmmfrom", "hmm to", posw, "alifrom", posw, "ali to", posw, "envfrom", posw, "env to", posw, ( pli->mode == p7_SCAN_MODELS ? "modlen" : "sq len" ), "strand", " E-value", " score", " bias", "description of target") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-sequence hit list: write failed"); + if (fprintf(ofp, "#%*s %*s %*s %*s %s %s %*s %*s %*s %*s %*s %6s %9s %6s %5s %s\n", + tnamew-1, "-------------------", taccw, "----------", qnamew, "--------------------", qaccw, "----------", "-------", "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", "------", "---------", "------", "-----", "---------------------") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-per-sequence hit list: write failed"); + } + else + { + if (fprintf(ofp, "#%*s %22s %22s %33s\n", tnamew+qnamew+taccw+qaccw+2, "", "--- full sequence ----", "--- best 1 domain ----", "--- domain number estimation ----") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-sequence hit list: write failed"); + if (fprintf(ofp, "#%-*s %-*s %-*s %-*s %9s %6s %5s %9s %6s %5s %5s %3s %3s %3s %3s %3s %3s %3s %s\n", + tnamew-1, " target name", taccw, "accession", qnamew, "query name", qaccw, "accession", " E-value", " score", " bias", " E-value", " score", " bias", "exp", "reg", "clu", " ov", "env", "dom", "rep", "inc", "description of target") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-sequence hit list: write failed"); + if (fprintf(ofp, "#%*s %*s %*s %*s %9s %6s %5s %9s %6s %5s %5s %3s %3s %3s %3s %3s %3s %3s %s\n", + tnamew-1, "-------------------", taccw, "----------", qnamew, "--------------------", qaccw, "----------", "---------", "------", "-----", "---------", "------", "-----", "---", "---", "---", "---", "---", "---", "---", "---", "---------------------") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-sequence hit list: write failed"); + } + } + + for (h = 0; h < th->N; h++) + if (th->hit[h]->flags & p7_IS_REPORTED) + { + d = th->hit[h]->best_domain; + if (pli->long_targets) + { + if (fprintf(ofp, "%-*s %-*s %-*s %-*s %7d %7d %*" PRId64 " %*" PRId64 " %*" PRId64 " %*" PRId64 " %*" PRId64 " %6s %9.2g %6.1f %5.1f %s\n", + tnamew, th->hit[h]->name, + taccw, th->hit[h]->acc ? th->hit[h]->acc : "-", + qnamew, qname, + qaccw, ( (qacc != NULL && qacc[0] != '\0') ? qacc : "-"), + th->hit[h]->dcl[d].ad->hmmfrom, + th->hit[h]->dcl[d].ad->hmmto, + posw, th->hit[h]->dcl[d].iali, + posw, th->hit[h]->dcl[d].jali, + posw, th->hit[h]->dcl[d].ienv, + posw, th->hit[h]->dcl[d].jenv, + posw, th->hit[h]->dcl[0].ad->L, + (th->hit[h]->dcl[d].iali < th->hit[h]->dcl[d].jali ? " + " : " - "), + exp(th->hit[h]->lnP), + th->hit[h]->score, + th->hit[h]->dcl[d].dombias * eslCONST_LOG2R, /* convert NATS to BITS at last moment */ + th->hit[h]->desc == NULL ? "-" : th->hit[h]->desc ) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-sequence hit list: write failed"); + } + else + { + if (fprintf(ofp, "%-*s %-*s %-*s %-*s %9.2g %6.1f %5.1f %9.2g %6.1f %5.1f %5.1f %3d %3d %3d %3d %3d %3d %3d %s\n", + tnamew, th->hit[h]->name, + taccw, th->hit[h]->acc ? th->hit[h]->acc : "-", + qnamew, qname, + qaccw, ( (qacc != NULL && qacc[0] != '\0') ? qacc : "-"), + exp(th->hit[h]->lnP) * pli->Z, + th->hit[h]->score, + th->hit[h]->pre_score - th->hit[h]->score, /* bias correction */ + exp(th->hit[h]->dcl[d].lnP) * pli->Z, + th->hit[h]->dcl[d].bitscore, + th->hit[h]->dcl[d].dombias * eslCONST_LOG2R, /* convert NATS to BITS at last moment */ + th->hit[h]->nexpected, + th->hit[h]->nregions, + th->hit[h]->nclustered, + th->hit[h]->noverlaps, + th->hit[h]->nenvelopes, + th->hit[h]->ndom, + th->hit[h]->nreported, + th->hit[h]->nincluded, + (th->hit[h]->desc == NULL ? "-" : th->hit[h]->desc)) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-sequence hit list: write failed"); + } + } + return eslOK; +} + + +/* Function: p7_tophits_TabularDomains() + * Synopsis: Output parseable table of per-domain hits + * + * Purpose: Output a parseable table of reportable per-domain hits + * in sorted tophits list in an easily parsed ASCII + * tabular form to stream , using final pipeline + * accounting stored in . + * + * Designed to be concatenated for multiple queries and + * multiple top hits list. + * + * Returns: on success. + * + * Throws: if a write to fails; for example, if + * the disk fills up. + */ +int +p7_tophits_TabularDomains(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli, int show_header) +{ + + int qnamew = ESL_MAX(20, strlen(qname)); + int tnamew = ESL_MAX(20, p7_tophits_GetMaxNameLength(th)); + int qaccw = (qacc ? ESL_MAX(10, strlen(qacc)) : 10); + int taccw = ESL_MAX(10, p7_tophits_GetMaxAccessionLength(th)); + int tlen, qlen; + int h,d,nd; + + if (show_header) + { + if (fprintf(ofp, "#%*s %22s %40s %11s %11s %11s\n", tnamew+qnamew-1+15+taccw+qaccw, "", "--- full sequence ---", "-------------- this domain -------------", "hmm coord", "ali coord", "env coord") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed"); + if (fprintf(ofp, "#%-*s %-*s %5s %-*s %-*s %5s %9s %6s %5s %3s %3s %9s %9s %6s %5s %5s %5s %5s %5s %5s %5s %4s %s\n", + tnamew-1, " target name", taccw, "accession", "tlen", qnamew, "query name", qaccw, "accession", "qlen", "E-value", "score", "bias", "#", "of", "c-Evalue", "i-Evalue", "score", "bias", "from", "to", "from", "to", "from", "to", "acc", "description of target") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed"); + if (fprintf(ofp, "#%*s %*s %5s %*s %*s %5s %9s %6s %5s %3s %3s %9s %9s %6s %5s %5s %5s %5s %5s %5s %5s %4s %s\n", + tnamew-1, "-------------------", taccw, "----------", "-----", qnamew, "--------------------", qaccw, "----------", "-----", "---------", "------", "-----", "---", "---", "---------", "---------", "------", "-----", "-----", "-----", "-----", "-----", "-----", "-----", "----", "---------------------") < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed"); + } + + for (h = 0; h < th->N; h++) + if (th->hit[h]->flags & p7_IS_REPORTED) + { + nd = 0; + for (d = 0; d < th->hit[h]->ndom; d++) + if (th->hit[h]->dcl[d].is_reported) + { + nd++; + + /* in hmmsearch, targets are seqs and queries are HMMs; + * in hmmscan, the reverse. but in the ALIDISPLAY + * structure, lengths L and M are for seq and HMMs, not + * for query and target, so sort it out. + */ + if (pli->mode == p7_SEARCH_SEQS) { qlen = th->hit[h]->dcl[d].ad->M; tlen = th->hit[h]->dcl[d].ad->L; } + else { qlen = th->hit[h]->dcl[d].ad->L; tlen = th->hit[h]->dcl[d].ad->M; } + + + + if (fprintf(ofp, "%-*s %-*s %5d %-*s %-*s %5d %9.2g %6.1f %5.1f %3d %3d %9.2g %9.2g %6.1f %5.1f %5d %5d %5" PRId64 " %5" PRId64 " %5" PRId64 " %5" PRId64 " %4.2f %s\n", + tnamew, th->hit[h]->name, + taccw, th->hit[h]->acc ? th->hit[h]->acc : "-", + tlen, + qnamew, qname, + qaccw, ( (qacc != NULL && qacc[0] != '\0') ? qacc : "-"), + qlen, + exp(th->hit[h]->lnP) * pli->Z, + th->hit[h]->score, + th->hit[h]->pre_score - th->hit[h]->score, /* bias correction */ + nd, + th->hit[h]->nreported, + exp(th->hit[h]->dcl[d].lnP) * pli->domZ, + exp(th->hit[h]->dcl[d].lnP) * pli->Z, + th->hit[h]->dcl[d].bitscore, + th->hit[h]->dcl[d].dombias * eslCONST_LOG2R, /* NATS to BITS at last moment */ + th->hit[h]->dcl[d].ad->hmmfrom, + th->hit[h]->dcl[d].ad->hmmto, + th->hit[h]->dcl[d].ad->sqfrom, + th->hit[h]->dcl[d].ad->sqto, + th->hit[h]->dcl[d].ienv, + th->hit[h]->dcl[d].jenv, + (th->hit[h]->dcl[d].oasc / (1.0 + fabs((float) (th->hit[h]->dcl[d].jenv - th->hit[h]->dcl[d].ienv)))), + (th->hit[h]->desc ? th->hit[h]->desc : "-")) < 0) + ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed"); + + } + } + return eslOK; +} + + +/* Function: p7_tophits_TabularXfam() + * Synopsis: Output parsable table(s) of hits, in format desired by Xfam. + * + * Purpose: Output a parseable table of reportable hits in sorted + * tophits list in an easily parsed ASCII tabular + * form to stream , using final pipeline accounting + * stored in . + * + * For long-target nucleotide queries, this will print the + * same hits as p7_tophits_TabularTargets(), but with the + * smaller number of (reordered) fields required by Dfam + * scripts. + * + * For protein queries, this will print two tables: + * (a) per-sequence hits as presented by + * p7_tophits_TabularTargets(), but formatted for + * Pfam scripts; + * (b) per-domain hits, similar to those presented by + * p7_tophits_TabularDomains(), but sorted by + * score/e-value, and formated for Pfam scripts. + * + * Returns: on success. + * + * Throws: on allocation failure. + * if a write to fails; for example, if + * the disk fills up. + */ +int +p7_tophits_TabularXfam(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli) +{ + P7_TOPHITS *domHitlist = NULL; + P7_HIT *domhit = NULL; + int tnamew = ESL_MAX(20, p7_tophits_GetMaxNameLength(th)); + int taccw = ESL_MAX(20, p7_tophits_GetMaxAccessionLength(th)); + int qnamew = ESL_MAX(20, strlen(qname)); + int ndom = 0; + int posw = (pli->long_targets ? ESL_MAX(7, p7_tophits_GetMaxPositionLength(th)) : 0); + int h,d; + int status; + + + if (pli->long_targets) + { + if (fprintf(ofp, "# hit scores\n# ----------\n#\n") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + if (fprintf(ofp, "# %-*s %-*s %-*s %6s %9s %5s %s %s %6s %*s %*s %*s %*s %*s %s\n", + tnamew-1, "target name", taccw, "acc", qnamew, "query name", "bits", " e-value", " bias", "hmm-st", "hmm-en", "strand", posw, "ali-st", posw, "ali-en", posw, "env-st", posw, "env-en", posw, ( pli->mode == p7_SCAN_MODELS ? "modlen" : "sq-len" ), "description of target") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + if (fprintf(ofp, "# %-*s %-*s %-*s %6s %9s %5s %s %s %6s %*s %*s %*s %*s %*s %s\n", + tnamew-1, "-------------------", taccw, "-------------------", qnamew, "-------------------", "------", "---------", "-----", "-------", "-------", "------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", "---------------------") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + + for (h = 0; h < th->N; h++) + if (th->hit[h]->flags & p7_IS_REPORTED) + { + //d = th->hit[h]->best_domain; + if (fprintf(ofp, "%-*s %-*s %-*s %6.1f %9.2g %5.1f %7d %7d %s %*" PRId64 " %*" PRId64 " %*" PRId64 " %*" PRId64 " %*" PRId64 " %s\n", + tnamew, th->hit[h]->name, + taccw, ( pli->mode == p7_SCAN_MODELS ? (th->hit[h]->acc ? th->hit[h]->acc : "-") : ((qacc && qacc[0] != '\0') ? qacc : "-")), + qnamew, qname, + th->hit[h]->score, + exp(th->hit[h]->lnP), + th->hit[h]->dcl[0].dombias * eslCONST_LOG2R, /* convert nats to bits at last moment */ + th->hit[h]->dcl[0].ad->hmmfrom, + th->hit[h]->dcl[0].ad->hmmto, + (th->hit[h]->dcl[0].iali < th->hit[h]->dcl[0].jali ? " + " : " - "), + posw, th->hit[h]->dcl[0].iali, + posw, th->hit[h]->dcl[0].jali, + posw, th->hit[h]->dcl[0].ienv, + posw, th->hit[h]->dcl[0].jenv, + posw, th->hit[h]->dcl[0].ad->L, + th->hit[h]->desc == NULL ? "-" : th->hit[h]->desc) < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + } + } + else + { + if (fprintf(ofp, "# Sequence scores\n# ---------------\n#\n") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + if (fprintf(ofp, "# %-*s %6s %9s %3s %5s %5s %s\n", + tnamew-1, "name", " bits", " E-value", "n", "exp", " bias", "description") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + if (fprintf(ofp, "# %*s %6s %9s %3s %5s %5s %s\n", + tnamew-1, "-------------------", "------", "---------","---", "-----", "-----", "---------------------") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + + for (h = 0; h < th->N; h++) + { + if (th->hit[h]->flags & p7_IS_REPORTED) + { + if (fprintf(ofp, "%-*s %6.1f %9.2g %3d %5.1f %5.1f %s\n", + tnamew, th->hit[h]->name, + th->hit[h]->score, + exp(th->hit[h]->lnP) * pli->Z, + th->hit[h]->ndom, + th->hit[h]->nexpected, + th->hit[h]->pre_score - th->hit[h]->score, /* bias correction */ + (th->hit[h]->desc == NULL ? "-" : th->hit[h]->desc)) < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + + for (d = 0; d < th->hit[h]->ndom; d++) + if (th->hit[h]->dcl[d].is_reported) + ndom ++; + } + } + if (fprintf(ofp, "\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + + /* Need to sort the domains. One way to do this is to re-use the hit sorting machinery, + * so we create one "hit" for each domain, then hand it off to the sorter + */ + if ((domHitlist = p7_tophits_Create()) == NULL) return eslEMEM; + for (h = 0; h < th->N; h++) + { + if (th->hit[h]->flags & p7_IS_REPORTED) + { + int ndomReported = 0; + for (d = 0; d < th->hit[h]->ndom; d++) + { + if (th->hit[h]->dcl[d].is_reported) + { + p7_tophits_CreateNextHit(domHitlist, &domhit); + ndomReported++; + ESL_ALLOC(domhit->dcl, sizeof(P7_DOMAIN) ); + + domhit->ndom = ndomReported; // re-using this variable to track the ordinal value of the domain in the original hit list that generated this pseudo-hit + domhit->name = th->hit[h]->name; + domhit->desc = th->hit[h]->desc; + domhit->dcl[0] = th->hit[h]->dcl[d]; + domhit->sortkey = pli->inc_by_E ? -1.0 * th->hit[h]->dcl[d].lnP : th->hit[h]->dcl[d].bitscore; + } + } + } + } + p7_tophits_SortBySortkey(domHitlist); + + // Now with this list of sorted "hits" (really domains) + if (fprintf(ofp, "# Domain scores\n# -------------\n#\n") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + if (fprintf(ofp, "# %-*s %6s %9s %5s %5s %6s %6s %6s %6s %6s %6s %s\n", + tnamew-1, " name", "bits", "E-value", "hit", "bias", "env-st", "env-en", "ali-st", "ali-en", "hmm-st", "hmm-en", "description") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + if (fprintf(ofp, "# %*s %6s %9s %5s %5s %6s %6s %6s %6s %6s %6s %s\n", + tnamew-1, "-------------------", "------", "---------", "-----", "-----", "------", "------", "------", "------", "------", "------", "---------------------") < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + + for (h = 0; h < domHitlist->N; h++) + { + domhit = domHitlist->hit[h]; + + if (fprintf(ofp, "%-*s %6.1f %9.2g %5d %5.1f %6" PRId64 " %6" PRId64 " %6" PRId64 " %6" PRId64 " %6d %6d %s\n", + tnamew, domHitlist->hit[h]->name, + domhit->dcl[0].bitscore, + exp(domhit->dcl[0].lnP) * pli->Z, //i-Evalue + domhit->ndom, + domhit->dcl[0].dombias * eslCONST_LOG2R, // NATS to BITS at last moment + domhit->dcl[0].ienv, + domhit->dcl[0].jenv, + domhit->dcl[0].ad->sqfrom, + domhit->dcl[0].ad->sqto, + domhit->dcl[0].ad->hmmfrom, + domhit->dcl[0].ad->hmmto, + (domhit->desc ? domhit->desc : "-")) < 0) + ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed"); + } + free (domHitlist->unsrt); + free (domHitlist->hit); + free (domHitlist); + } + return eslOK; + + ERROR: + if (domHitlist) + { + free (domHitlist->unsrt); + free (domHitlist->hit); + free (domHitlist); + } + return status; +} + + +/* Function: p7_tophits_AliScores() + * Synopsis: Output per-position scores for each position of each query/hit pair + * + * Purpose: This depends on per-alignment-position scores having been + * previously computed, as in p7_pipeline_computeAliScores() + * + * Returns: on success. + * + * Throws: none + */ +int +p7_tophits_AliScores(FILE *ofp, char *qname, P7_TOPHITS *th ) +{ + P7_HIT *hit; + int h, i; + float *scores; + + for (h = 0; h < th->N; h++) { + hit = th->hit[h]; + if (hit->flags & p7_IS_REPORTED) + { + fprintf (ofp, "%s %s %" PRId64 " %" PRId64 " :", qname, hit->name, hit->dcl[0].iali, hit->dcl[0].jali); + + scores = hit->dcl[0].scores_per_pos; + for (i=0; idcl[0].ad->N; i++) { + if (scores[i] == -eslINFINITY) + fprintf (ofp, " >"); + else + fprintf (ofp, " %.3f", scores[i] * eslCONST_LOG2R); + + } + fprintf (ofp, "\n"); + } + + } + return eslOK; + +} + + + + +/* Function: p7_tophits_TabularTail() + * Synopsis: Print a trailer on a tabular output file. + * + * Purpose: Print some metadata as a trailer on a tabular output file: + * date/time, the program, HMMER3 version info, the pipeline mode (SCAN or SEARCH), + * the query and target filenames, a spoof commandline + * recording the entire program configuration, and + * a "fini!" that's useful for detecting successful + * output completion. + * + * Args: ofp - open tabular output file (either --tblout or --domtblout) + * progname - "hmmscan", for example + * pipemode - p7_SEARCH_SEQS | p7_SCAN_MODELS + * qfile - name of query file, or '-' for stdin, or '[none]' if NULL + * tfile - name of target file, or '-' for stdin, or '[none]' if NULL + * go - program configuration; used to generate spoofed command line + * + * Returns: . + * + * Throws: on allocation failure. + * if time() or ctime_r() system calls fail. + * on write failure. + * + * Xref: SRE:J7/54 + */ +int +p7_tophits_TabularTail(FILE *ofp, const char *progname, enum p7_pipemodes_e pipemode, const char *qfile, const char *tfile, const ESL_GETOPTS *go) +{ + time_t date = time(NULL); + char *spoof_cmd = NULL; + char *cwd = NULL; + char timestamp[32]; + char modestamp[16]; + int status; + + + if ((status = esl_opt_SpoofCmdline(go, &spoof_cmd)) != eslOK) goto ERROR; + if (date == -1) ESL_XEXCEPTION(eslESYS, "time() failed"); + if ((ctime_r(&date, timestamp)) == NULL) ESL_XEXCEPTION(eslESYS, "ctime_r() failed"); + switch (pipemode) { + case p7_SEARCH_SEQS: strcpy(modestamp, "SEARCH"); break; + case p7_SCAN_MODELS: strcpy(modestamp, "SCAN"); break; + default: ESL_EXCEPTION(eslEINCONCEIVABLE, "wait, what? no such pipemode"); + } + esl_getcwd(&cwd); + + if (fprintf(ofp, "#\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# Program: %s\n", (progname == NULL) ? "[none]" : progname) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# Version: %s (%s)\n", HMMER_VERSION, HMMER_DATE) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# Pipeline mode: %s\n", modestamp) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# Query file: %s\n", (qfile == NULL) ? "[none]" : qfile) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# Target file: %s\n", (tfile == NULL) ? "[none]" : tfile) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# Option settings: %s\n", spoof_cmd) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# Current dir: %s\n", (cwd == NULL) ? "[unknown]" : cwd) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# Date: %s", timestamp) < 0) /* timestamp ends in \n */ ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + if (fprintf(ofp, "# [ok]\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "tabular output tail, write failed"); + + free(spoof_cmd); + if (cwd) free(cwd); + return eslOK; + + ERROR: + if (spoof_cmd) free(spoof_cmd); + if (cwd) free(cwd); + return status; +} +/*------------------- end, tabular output -----------------------*/ + + + + +/***************************************************************** + * 4. Benchmark driver + *****************************************************************/ +#ifdef p7TOPHITS_BENCHMARK +/* + gcc -o benchmark-tophits -std=gnu99 -g -O2 -I. -L. -I../easel -L../easel -Dp7TOPHITS_BENCHMARK p7_tophits.c -lhmmer -leasel -lm + ./benchmark-tophits + + As of 28 Dec 07, shows 0.20u for 10 lists of 10,000 hits each (at least ~100x normal expectation), + so we expect top hits list time to be negligible for typical hmmsearch/hmmscan runs. + + If needed, we do have opportunity for optimization, however - especially in memory handling. + */ +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_stopwatch.h" +#include "esl_random.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-M", eslARG_INT, "10", NULL, NULL, NULL, NULL, NULL, "number of top hits lists to simulate and merge", 0 }, + { "-N", eslARG_INT, "10000", NULL, NULL, NULL, NULL, NULL, "number of top hits to simulate", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; +static char usage[] = "[-options]"; +static char banner[] = "benchmark driver for P7_TOPHITS"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_STOPWATCH *w = esl_stopwatch_Create(); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + int N = esl_opt_GetInteger(go, "-N"); + int M = esl_opt_GetInteger(go, "-M"); + P7_TOPHITS **h = NULL; + double *sortkeys = NULL; + char name[] = "not_unique_name"; + char acc[] = "not_unique_acc"; + char desc[] = "Test description for the purposes of making the benchmark allocate space"; + int i,j; + int status; + + /* prep work: generate our sort keys before starting to time anything */ + ESL_ALLOC(h, sizeof(P7_TOPHITS *) * M); /* allocate pointers for M lists */ + ESL_ALLOC(sortkeys, sizeof(double) * N * M); + for (i = 0; i < N*M; i++) sortkeys[i] = esl_random(r); + + esl_stopwatch_Start(w); + + /* generate M "random" lists and sort them */ + for (j = 0; j < M; j++) + { + h[j] = p7_tophits_Create(); + for (i = 0; i < N; i++) + p7_tophits_Add(h[j], name, acc, desc, sortkeys[j*N + i], + (float) sortkeys[j*N+i], sortkeys[j*N+i], + (float) sortkeys[j*N+i], sortkeys[j*N+i], + i, i, N, + i, i, N, + i, N, NULL); + p7_tophits_SortBySortkey(h[j]); + } + /* then merge them into one big list in h[0] */ + for (j = 1; j < M; j++) + { + p7_tophits_Merge(h[0], h[j]); + p7_tophits_Destroy(h[j]); + } + + esl_stopwatch_Stop(w); + + p7_tophits_Destroy(h[0]); + status = eslOK; + ERROR: + esl_getopts_Destroy(go); + esl_stopwatch_Destroy(w); + esl_randomness_Destroy(r); + if (sortkeys != NULL) free(sortkeys); + if (h != NULL) free(h); + return status; +} +#endif /*p7TOPHITS_BENCHMARK*/ + + +/***************************************************************** + * 5. Test driver + *****************************************************************/ + +#ifdef p7TOPHITS_TESTDRIVE +/* + gcc -o tophits_utest -std=gnu99 -g -O2 -I. -L. -I../easel -L../easel -Dp7TOPHITS_TESTDRIVE p7_tophits.c -lhmmer -leasel -lm + ./tophits_test +*/ +#include "p7_config.h" + +#include "easel.h" +#include "esl_getopts.h" +#include "esl_stopwatch.h" +#include "esl_random.h" + +#include "hmmer.h" + +static ESL_OPTIONS options[] = { + /* name type default env range toggles reqs incomp help docgroup*/ + { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 0 }, + { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to ", 0 }, + { "-N", eslARG_INT, "100", NULL, NULL, NULL, NULL, NULL, "number of top hits to simulate", 0 }, + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, +}; + +static char usage[] = "[-options]"; +static char banner[] = "test driver for P7_TOPHITS"; + +int +main(int argc, char **argv) +{ + ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage); + ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s")); + int N = esl_opt_GetInteger(go, "-N"); + P7_TOPHITS *h1 = NULL; + P7_TOPHITS *h2 = NULL; + P7_TOPHITS *h3 = NULL; + char name[] = "not_unique_name"; + char acc[] = "not_unique_acc"; + char desc[] = "Test description for the purposes of making the test driver allocate space"; + double key; + int i; + + h1 = p7_tophits_Create(); + h2 = p7_tophits_Create(); + h3 = p7_tophits_Create(); + + for (i = 0; i < N; i++) + { + key = esl_random(r); + p7_tophits_Add(h1, name, acc, desc, key, (float) key, key, (float) key, key, i, i, N, i, i, N, 1, 1, NULL); + key = 10.0 * esl_random(r); + p7_tophits_Add(h2, name, acc, desc, key, (float) key, key, (float) key, key, i, i, N, i, i, N, 2, 2, NULL); + key = 0.1 * esl_random(r); + p7_tophits_Add(h3, name, acc, desc, key, (float) key, key, (float) key, key, i, i, N, i, i, N, 3, 3, NULL); + } + p7_tophits_Add(h1, "last", NULL, NULL, -1.0, (float) key, key, (float) key, key, i, i, N, i, i, N, 1, 1, NULL); + p7_tophits_Add(h1, "first", NULL, NULL, 20.0, (float) key, key, (float) key, key, i, i, N, i, i, N, 1, 1, NULL); + + p7_tophits_SortBySortkey(h1); + if (strcmp(h1->hit[0]->name, "first") != 0) esl_fatal("sort failed (top is %s = %f)", h1->hit[0]->name, h1->hit[0]->sortkey); + if (strcmp(h1->hit[N+1]->name, "last") != 0) esl_fatal("sort failed (last is %s = %f)", h1->hit[N+1]->name, h1->hit[N+1]->sortkey); + + p7_tophits_Merge(h1, h2); + if (strcmp(h1->hit[0]->name, "first") != 0) esl_fatal("after merge 1, sort failed (top is %s = %f)", h1->hit[0]->name, h1->hit[0]->sortkey); + if (strcmp(h1->hit[2*N+1]->name, "last") != 0) esl_fatal("after merge 1, sort failed (last is %s = %f)", h1->hit[2*N+1]->name, h1->hit[2*N+1]->sortkey); + + p7_tophits_Merge(h3, h1); + if (strcmp(h3->hit[0]->name, "first") != 0) esl_fatal("after merge 2, sort failed (top is %s = %f)", h3->hit[0]->name, h3->hit[0]->sortkey); + if (strcmp(h3->hit[3*N+1]->name, "last") != 0) esl_fatal("after merge 2, sort failed (last is %s = %f)", h3->hit[3*N+1]->name, h3->hit[3*N+1]->sortkey); + + if (p7_tophits_GetMaxNameLength(h3) != strlen(name)) esl_fatal("GetMaxNameLength() failed"); + + p7_tophits_Destroy(h1); + p7_tophits_Destroy(h2); + p7_tophits_Destroy(h3); + esl_randomness_Destroy(r); + esl_getopts_Destroy(go); + return eslOK; +} +#endif /*p7TOPHITS_TESTDRIVE*/ + + + diff --git a/bioinformaticsProject/hmmer/src/p7_trace.c b/bioinformaticsProject/hmmer/src/p7_trace.c new file mode 100644 index 0000000..7fddd8c --- /dev/null +++ b/bioinformaticsProject/hmmer/src/p7_trace.c @@ -0,0 +1,1666 @@ +/* P7_TRACE, the traceback structure. + * + * Contents: + * 1. The P7_TRACE structure + * 2. Access routines + * 3. Debugging tools + * 4. Creating traces by DP traceback + * 5. Creating faux traces from existing MSAs + * 6. Counting traces into new HMMs + * 7. Unit tests + * 8. Test driver + * + * Stylistic note: elements in a trace path are usually indexed by z. + */ + +#include "p7_config.h" + +#include +#include + +#include "easel.h" +#include "hmmer.h" + + +/***************************************************************** + * 1. The P7_TRACE structure. + *****************************************************************/ + +static P7_TRACE *trace_create_engine(int initial_nalloc, int initial_ndomalloc, int with_posteriors); + +/* Function: p7_trace_Create() + * Synopsis: Allocates a (growable, reusable) traceback. + * + * Purpose: Allocates a traceback. + * + * Tracebacks are growable. A reasonable initial internal + * allocation is made here, and routines that generate + * tracebacks will dynamically grow the trace as needed. + * + * Tracebacks are reusable. Usually a routine only + * allocates one, and reuses its memory over and over as + * new target sequences are aligned. + * + * Returns: a pointer to the new structure on success. + * + * Throws: on allocation error. + */ +P7_TRACE * +p7_trace_Create(void) +{ + int initial_nalloc = 256; + int initial_ndomalloc = 16; + int with_posteriors = FALSE; + return trace_create_engine(initial_nalloc, initial_ndomalloc, with_posteriors); +} + +/* Function: p7_trace_CreateWithPP() + * Synopsis: Allocates a traceback that includes posterior probs. + * Incept: SRE, Tue Aug 19 13:08:12 2008 [Janelia] + * + * Purpose: Allocates a traceback that includes pp[z]> fields + * for posterior probabilities of emitted residues; + * otherwise identical to . + */ +P7_TRACE * +p7_trace_CreateWithPP(void) +{ + int initial_nalloc = 256; + int initial_ndomalloc = 16; + int with_posteriors = TRUE; + return trace_create_engine(initial_nalloc, initial_ndomalloc, with_posteriors); +} + +static P7_TRACE * +trace_create_engine(int initial_nalloc, int initial_ndomalloc, int with_posteriors) +{ + P7_TRACE *tr = NULL; + int status; + + ESL_ALLOC(tr, sizeof(P7_TRACE)); + tr->st = NULL; + tr->k = NULL; + tr->i = NULL; + tr->pp = NULL; + tr->M = 0; + tr->L = 0; + tr->tfrom = tr->tto = NULL; + tr->sqfrom = tr->sqto = NULL; + tr->hmmfrom = tr->hmmto = NULL; + + /* The trace data itself */ + ESL_ALLOC(tr->st, sizeof(char) * initial_nalloc); + ESL_ALLOC(tr->k, sizeof(int) * initial_nalloc); + ESL_ALLOC(tr->i, sizeof(int) * initial_nalloc); + if (with_posteriors) + ESL_ALLOC(tr->pp, sizeof(float) * initial_nalloc); + tr->N = 0; + tr->nalloc = initial_nalloc; + + /* The trace's index: table of domain start/stop coords */ + ESL_ALLOC(tr->tfrom, sizeof(int) * initial_ndomalloc); + ESL_ALLOC(tr->tto, sizeof(int) * initial_ndomalloc); + ESL_ALLOC(tr->sqfrom, sizeof(int) * initial_ndomalloc); + ESL_ALLOC(tr->sqto, sizeof(int) * initial_ndomalloc); + ESL_ALLOC(tr->hmmfrom, sizeof(int) * initial_ndomalloc); + ESL_ALLOC(tr->hmmto, sizeof(int) * initial_ndomalloc); + tr->ndom = 0; + tr->ndomalloc = initial_ndomalloc; + return tr; + + ERROR: + if (tr != NULL) p7_trace_Destroy(tr); + return NULL; +} + + +/* Function: p7_trace_Reuse() + * Synopsis: Prepare a trace for reuse. + * Incept: SRE, Tue Jan 9 13:02:34 2007 [Janelia] + * + * Purpose: Reinitializes an existing trace object, reusing its + * memory. + * + * Returns: on success. + * + * Throws: (no abnormal error conditions) + * + * Xref: STL11/124 + */ +int +p7_trace_Reuse(P7_TRACE *tr) +{ + tr->N = 0; + tr->M = 0; + tr->L = 0; + tr->ndom = 0; + return eslOK; +} + +/* Function: p7_trace_Grow() + * Synopsis: Grow the allocation for trace data. + * + * Purpose: If

€õžæð¢>ãÚã*扎eÛ®¡™VâÁl ë`a ªÛåK¾10¯×:=å&LÇu<ýѤ£xx Àá/ÓPXÖ0¦jÃÆ§íxÕÍ”ZWËÕ¨ôÒÅê쉔Mn’MDÃð #z,ò»å]g˜›!münØÓ´Š"¥òT®Üˆé½Õõ‚wk³*Ï Ò;Þÿg›\ì%®;®çjl°ÒÑxÝsÀÂô4ƒ¼×ÂÝÄ’IÕÃéžÝ¬·k3lj¹!»¹¶Õ t¾B{ˆ.hl – +,¶“ѱڃþ_³îXuéÎÍwv‚{:†ã7×?ruû¤T¹owÙ ¦½:ÖVrkz—zµ"Ï`²\[—2¿X"Ë­}ðˆIg—0&èØ|ò†Ülõ”»ÅŽõš‰Ar×Âþrx¨Æ¢#jvv‘q,êyA}3 ÙÿË`Ú¨ø4>X™¥¶ÛÂÅŸh§UsM>!ÀEøÂâ ¬•ÄÎÓtŽnóH­Óåª œZÕX”#¡ÎHÐ M=ê9ŽË&lîà.›ãò—G™ðSõœb'רoŒé¨X:×ÏÉóÖI»ÜaMã"!Káå*›KâÌ­/-Óã¨!„<*O·3z²ø“:`=;E¾ C¨Ö{Ÿ\Ç#ö¸F­c„ú0&U•ýnÁ3¸ø·V®Ê>}Z6;Ü?·X¦»W™½n¹?ðļÞÌ`nz!7ÐìØ[áÔ[¦µ·W}lV¦œí_œžë.–Ô³Ó¯;à½3,­·žE=8e n?UoÒ}]VéRÛsM^›G­T<_‹mÈšãÒe tgF¯–A—P`7T:Ÿ©[t¹ Õoáñ[l'ŠœM: ‚-ÿpQèd.64Æ6tª²§*+l·„:ùÏç6`ꂸÝ%æLƒŽ˜ÒÝØÄÊyñ,*ޢŒd;.õu`u…«Fr„ó­„ÔPp,ÉFð¨C‡m±èŠ[ôâ° ÔèL5j¡6;xÒBØ’‹ ƒ[XدFö¨µ(±ð ~ ÛpP) žÞ :M´„LŠ +¬lÓ¹!ßH†ËçY|®Ñ’‹KžVæ'‹ù,”Ç×ýÑm­TE&/M(n±gžì_D† #H#Á-Ñð<ŠŽKÌ¥¬­.¢î`ÙX§¾ë $ñ¤%| Gá‰ç\Ô&š… endstream endobj 52 0 obj <>stream +DÅtCÇãW&ÝðâXdé– ;rèÀ?R@ZÁÐé.7ji'hl<Š¥¼tM%.#6ùÅ…¥¾NßKÁ­-\K#´S„λ‚ÇëLê¯zŠÅ,£>ž®35¨Ô輴Τò›Ò÷¼3haP<¸LȽ:ù{®lv}øèR3nu@_rZùœµ ¤æÂ.væîF ±tbn†…¦y t†¥NVÜA•ú¥HR¤SÈ„|8M§M”÷8²¢¤±,—[pÈÛðtê†Ó#;¤Eì|/&<Óáb/¬u¥+ ¨[’N½ +lyµš®!é|‰’„/¶ÒL™4À²:AM·ùT.¥5ˮഈ} dï!{Xx:@#ÒcÁ’гŸ8ÅBYlËöV˜”´<¾½{çì¿ £Ós|°Wc5Ž·Éa­/õ4èB Û‹ÑÑK¾–…bVÒ¦4'Ãòz+·¾¤_ŸÅœuºuÅC4mOn†Šé9|­![<âI›ú·x´¼´fñ '¸ºkïÓ#¦Fl|`É{¸ÝÜóTã–½ÜR×mn%íÊv\6ÙˆÊÀó3”Ì^À˜@!èž¼Ûf3AÈ›5ÈWÄRt@KØBÊ%ÝàV¿_º¦º Pż.Å.²:×ä±MìçIÉØÝ!1âY+¼” `a|÷g8Ä=Ô?”šŽúMŸ=n9Ã-i±{'µâ!¼è|­2ÝÛaJÖÃú+˜Iª[t/£Ðå1:ÈEý¾©îWã¾Ež[ÆpîÄ÷Q`º6‘N]húL`ÃN,ú×¹M<)uŸt/µypñ¸³K$‚'–ð#èx2JÁÏ'Lð ŸCÍ2¨G˜àCÄHˆ|¬ò`_pÁðOÖ¶‚ +_Ð^wØ9ê5‘¬LÝÐ¥‰(Û€ y,ÂleKDo• Âñœ"ÜÔ~Ùea`v¥ëÓ"åÊU¹/#ÈîùÔÏÛåc&:VKR„¹#ìlJÌ,;{Û÷:ÑÅ}Á$2¥r·P NfÆç¨2œnnóL>Sì8¶ìˆuÐtä…—ˆ¸£@ÄE%öйOŒê©Ëuš!h˜”XÆ^ø]§“§êP5ºIf‹NWÚ³©ÁÇ\ù¦'ö¡@y¤¹¡˜À2'ø ^xŽU¨7¨L˜P'kº4Ê¢º^:a†ˆ ºa‚_So['SI§óÿH](¾QO¡«ˆQ +ÈV:ô†ƒpÝéP¡-ˆjjø®Í}u&[vÍøvn’‡g¯±» +p:_E½y y›Û¾´H[/œÖU@n¥}Û:uÁ¦™ô‚Å×"¹:$ý°ÜÅ$]lj\—ŽZú0 R#-uI‡.[sÐnÝbkHŠ;\Ó!JnÅæ˜l‘ ÿvM°}\iVz|u,èXÁ´èqÓSºC‘”3 +=>‰-OGètÄ‘[€ñ•u$/ø 2Æm¨†ÜBÐÍÀ¸„²§LÚÑâsÉÍôT')ËZꪃÇÑLOªbƒxìdî€îèl¾Yxl”Aꎌq4þEkÇФ[cI£ûÿQ?;4iP¢Ï";K“ßÁ‡Í¨•ޝ'á—‚  aŠ­Q(“&±ÏKwuªÐ£óÀèeéLyLȘDäKh”ÍGw@IKÁ”͸¶mÍciTn5“îdgU"#è>¯ ûHhÀzLŽtÛßx’~íVÙ|ˆ;*xÜyžB¥¤ú©ñ(6™´hã„ÑÙ²ï*'M¬¹¶ˆ@ËT3¡i®!?Ä÷<>BFN÷dlÔ­¬’©£0¸ ¶äË’eY.~„5yÓ‚¼±ä¾Í6«Æº!ƒ;Áa?~“{ƒØ¬ˆ]—[?†ÉŽhQ {Çö1¦C‘©à ª rØÂêCp{8¹'賬2¹Ï¤ŽgÑÙz·©c&ŸÇD~Ð4uu…0¨÷²¸ÀÛ6м±\:æJÇ]u:MgŒ© –#l¾×%ŠÓ°Ÿ— £›¤Ø^Y.ø–¶^á[ä¼[|9–kx¬òÉPÆ  P &0å9B> D&+÷_6É?0ü;¿ßûA›E¸dh +l è°WêâQeœÝA±&›"ÄŽë*¡ãfþ-’¸Qt+oÊ"{Þ3„ßòŒiQµ7]#¡"áë65‹ÏrÈfRÔIßVœâ_–ȘDp@\¬‰m!ï §Ï“Ìò=ƒ}"$êwI=õuy‹¼g[tjTÓéþ º"ñýAºåIú„í§ ª=¢Ud?,LwDŒ(Z,v©¨Ñ£Ç6]“LÝ + E{ØL†ã 2RƒñJ¦FìÑaË ¨ Šj®ÀãÏÈ\lðóÔL‰Ô”‘<ê©H#¸›n”Aø¦ÖÿwÕÂ~C¨‚AÍsÓ?ê÷Em½<¢029TëQ•?ö¤s*ÊØå6kèdp¿Z©çȾ±P’àR›kO^ ƒÊ܉lw!7Žm)PàYÀÒxVñWÿªo€õ¨Ñ[VÞÔlàñuyoòªE÷LÊ; ¾x§YÈ{K˜ù ,Þìáéì:ò<·.øºuŒaóí!¦£ŒjõLfƒMK½¾ÙOÑåUÌX÷ÍòÇ~i tX?‚µ˜²aÉb]vt”—©PÀÂ$OšÇêOL`7øóx+¬)B$‡t(#£¸-&[¢ýM˜·ùdºÃ^:5¸3‘<þË¡yŽÒ™VÆX×lO)'›çkÐ%/S˜™µ¿jòÂÑyÔ«Ãó*ÐÌgÑÁ®s\^z—ïö ½Ü j.CzF˜î¡½Á1njWKŽ4ÍËä«5)D¯¬Y<ïO1z—îàKÉãA7âí´@¥wÊÕ6•%Ü–¸Ì5©µE|D¡´‚oÚly~S’š.Y“Ô´‚ôå9ä×`#¥ kñ ÏÃjS¸£¦h,qh–Š—)8O÷ø¨p}–Ûžâ•„¬—¬©C¹Ö*o’à>Ãô!CyЖ²r ^…å-–lxW·ŒÊc¸™›-2{‚sk“G·_^Õ£¼ëçÑg¯Ó38?FÜ}Zw9Wª)ŽŸ,6¯ŽºƒŽ!ߊgQÏú 0dgy²í ŠD ˆ®$mÈW¹E#)î‡@[½)$€Ú\#„¢>>H¾hQÅðs˜ªç±l !óNÍB½IŽ ÍVÈoòC–çÚ¡¿›òÒ bZòM;×j5r¤v]Œ˜ÛþùnBJ_ A6ƒt·ò¦y•e©9ÄIÓ6ù›lÏ +u B4i§Ñ"^€©ç,‡Ÿã†:¼¤tƒ„©½°yŽ:ÐÑ'8¹/ø.BÆJ7ýWJ„"Ð$sAd…"ÈÖry…º*¦Å¨Âîɯ’WJ Ï3äZ’ž('_¥ný®%£4QKN®€Àu +„^ÄÞUVô1ÚIŸÌZ¼ØÇÑ'2ä›6eì™ìL™ŠÁe³èLWdr!¥|ÕÚ–úßñêš­²ªÂ¤&O‘•(rn‚ß¶_àö–âÎ*ñäƒä«|g[à9ìS&ø +ºŸ!ܶŽWœ.ÓC u»$ù/4Cm©ETi¶ªHÅBˆ„¦8‘;"ˆë†ˆÜl b‰ÇE ë)ft5Æ‹[) bäS¾)¢ÏÑ38߸Jœ%ÎP­ µÓ¦ª¦A%ËdÄ šã/’”—ïÐ`jy-á©ošrg„[Cº-“D*3ªÉ¯ê¾Lã^œ.{˜þ"yr}©õ /¹-G“€Po#H%7p§©¼šôË¿¹tZTÒ%¥y|¢BH)øœ%w†Z"3‘S»ÖªŒ—DÂWeèäÝ9¼ 2mQ,I¾*Ùä`ËAnðÁ5ózþtùöOóœrçäfX:ØžaVxÆ0CaÛiÁµ}¹M92V@šOùxÑÔqŽ’ƒŽï¬)Q¿-¡2¨ëxH‰ÓÍ)ޝÄ¿ªæÛ5 5à& S*G0ÒýÁerâË HuPôÕµ,B³ëÔŒ^Eà4òP ò‰‰Ù™ì>)y@:Ž]9dE"ÐS +Œå‹-kŒ# €bª¥c¬€l]Éu–š¾‹Ê‡oF&‹&99ŽQ²\Æ™+P6²$”ØsŸÚ(Рƒ#ò•ŽRB’/®¤éUhBPßeBCI?¾ ‘U¢¹ +,Jè/„—˜½éÈVPOùà†±½ÚTê±ïƒ|‰kÇÉDLŠ´ÁÊ–tIø*÷0 +t-'ôiÌð§‡Íƒ53‚„Á—˜‘E㆖$ +ë>ЗD\EM¡<|ºµ˜@†°ÖÝðÆ0PÛoȈA)7D;òrÍb=¡ù‚ŸÐgÙ™%zª8tŒ›°0B¾O€œ‚ ÀšT€þÚ©Á* ì3¸þÜÔv™^DD\=¦¦îAj¢ƒy$ž0ÔVäXD±I®G¢-|·mP¯â¯¦áëÕÀ¯–u:¼æÜT´ÅÆCf-¦HÏà=eÃdvÆT ¸=?;còe®ò³3Øõ­ª09—R!ÄQño:Çàƒ”*¢rùðsšš›²¹9.ª¦¡D>¦é +eš‘ukz~†&ò“4 iùoê 1žtð!•LŠº#PfjL¾FAϪò*KTÊL ~Âa t_åRÄ!~¦FY¯T™\5WMóÍRN(¿/žyΖ‹«5¦ w!R~¢o…¼Y*Qƒ '§5¨Òä|+‰¬rø*Q£üÉDÙÊ-àqÌJDÕå𞟩ÁŽ rÉU +FåOˆ^µ¸–1ü_ˆAŸàDŠEWÊóDü\ æï O.Ó ¼Næj|ÈÕ€*WC£DÆ×-¾‡!•T¬.G JÕÈ<d +ÆbgÚ)ÏÒ ?Æ—1ÈO6¹”AXLODejÐøB‚¦a¨=%# A~¦FÙ.¦ëgjLi}#Høñuª>GU1{ÈèE˜LÔ˜²º—HS¬`‘¬@>áÛnä9vÛp4Ï÷äl¹l~¢ÆTÛìú‰tÛL^ÈAüDM¨5f«é¯®¥R!ìÐêºäÉç4eóàyééF'‚üD)Ò™®Ÿ¨1¹:˜@~Îï•C°,cð„+‰:çØb:~Æ’Î…)–¡ôiè9º"šF“qK¦#C¸ZÀÐŽ\;™©±de%€T¦&ªdj| §25–ÌI™žŸ©±¤ÑD¬ëùóåxJ|iÛZ2ʆ ™‚ H‡`ª†oÔ ¼@‚C£À ÍŸWMÈÖ" +D¯âOµº~0EÈä|èe¥•á(è-9µÍxÈÚR›¥Ë7•êQ†câ‡R0pâ‹3¥h×ÕCê ·‚€.Ÿ +r <žÍ ÒYS ù&û› +¨P'¿”è^EáÔ)ØÓ¬ +È ËPÙ’_f«*$Ë18,•Š&âõ Lr BüU†ƒnÕ”òÁQ›EöäC…Ü9Ê ©¦ŸëV…Òön(Å¡ù¨’ã CÁw±¸ZóB0ø"O¤â"]=ç'9øô¡¥’>(˜ä¨Uˆˆî]A€F¢«ÅxÅ+á&]‰ÚJ’C¯H8å Ñrù ¹ntð'¼ù†,œ Ó¦âo‘ê$³@¯$ ùP2Ëað5Ê’©£bT²xYŠ-ŸÓUé+@©²¼÷µRΔ’è•çäݧÁÑèÕð¿ª,™Ê丘ŠP°% +Ü÷@¡*ßt•å\n!Y>ºí2ôMC¤‘꣉Jûy ðZ’Uüü»­èSå9‚ EùÀ +å± ѧmK$‚tL-Âôîøtìs'øCeJo ÄR&Ÿ +¾lXÅOtÐAÞ0o›Ò\(pž#¼T¢CA‚‰¦ì;® +ˆ&ü¢ä± 9Jç{ƒ eÒi›ÐþaRN¶T¾Ês m>ºæBD„±YÑkA Îý¼@¢CÇ :ƒ:WØŽê +“›¬TŠ¿æ^ ÑQ#ý>ЦéJ?U:Õ0†T¢:»P2ÔP¯¦Ü¥nöYÇ ÐQ‰à˲ÉKXýó䈙à%2'ø¢ÛÑáå;ÊÂfL{¥&%˜é0 ?ˆ!ÃÜÌÇ\~5›ˆ’Ôü›ˆ’¨††0Ù”=h8“ ‹è;Úò’s'Mr¨‚ŒòY>ç'§ø–"ùdÁWÈ+ï¬PŸ'”ÿâ›…C/ÓÝ…ü ?oÌ톜”‰£)+B¦† Œ˜"÷ +(À Ï>\å ÅcTHa8!N4øh“àXyÀÚ ð5çˆÈ÷E¦°'o¶,œ7§ëåÃ@º=RÁ‚¢!¾ 3tI!çñ‹¹H^4‚|áéC‚"V•ÉfrÇ!„8•Ú3›ç”êÜ ¾ôÇ{åäë¼:ºRäEñôSÄtn'ø²Ku/¡Op=M%:!7~^ªBÀ…ré>På«\òâç«8/MK^IX¹I +mä¸àþÑÉV¤\k’ô‘½çp†á„ê0¸ƒa‡JSøNj*£ [®ZüeeY²аF±2åsÒ̲d/iÒmÖu+’¯Òa¯Ès®¤áÊhg ¯§žOògÇáÂÁ–8p(C᪂Y”Ä ­ +žñҢ뇞¸æÅTñØ‹.ù“ûfúA9Û‘û[‰D°LtÀf›Ua=e¶A"HS@E|–<Ê QüªáFHg§!’ÇBrÇ +1Öò =ÂUݬ&À'ÝÊËnñ?áq׊ ƒPèrJu*@¡&'ïÇ&¤ Ä't- þ|›Ø <çÛØšyÙÅØvø>#§"ÏlW¦lÈš°bP¨‚Óª"W°J%¬RLÁ‚Y>ýØu#´ƒx{„£¥³bé +ŒbyæIÚ%òTÞ·‚ˆ)0 €ÒuI˜¬?Øa“ Gà;ņ|Î?AÀÒ´ocU@V¥>¥tUq&»Ø!«–ÝĈõ«ss¿ •Ì·-M×=‡Ù¼²(A÷ÌÆ®Z1 ß^ì|6¾>Àú†ÔÓ!Ö7¸©kõ ©â YUvPù‹úÅg½K¬ÎÏ„¶ÂaÆÀ–©K`cŠ=E Ÿ¡"4Ì.6{Q´øAE¥L‚@*Ø }˜íŠÐô¨Od !…[º|6¼&P`í*@Ÿg¥ñ„;áªÑ %ü@x“üçÐÎú(Tö_¶¢ ÷CÄ#°ýšR_‘À€ôöÕ•’•Ƨéi¾˜u4…ç5TÌ7@OA¿&A /ÈÕ`j߬ìC`nj¿0ΑBY!Ar +`$ ƒb (¢0ÿeYH»ùÅáM£r4Ö¨Õ+ça¿7sö¶æüÅŠw+VÜ!¬Xq‡°ªw+ZÜ!¬Xq‡°ªw„ŸÓÔÜÂŪRÜ!¬Xq‡°bŪRÜ!¬hq‡°¢Åèy•b .î•c¸ªhCX±âaU)îV¬¸CXÑârù%ÌTÜ!¬Xq‡°bŪRÜzΖ‹-î ê+RÜ!¬Xq‡°bŪRÜ!¬Xq‡°bŪRÜ!¬Xq‡°bŪRÜzŽ‹;„+îV•âaÅŠ;„+îf•âaF‹;„-îf•âaÆŠ;„+îP #ñ©âaÆŠ;Dð®,îf¬¸C˜±âaV)îðcOLHD[f¬¸C˜ñâaÆŠ;„+îP Ÿðm7òwø1ÁJ8O˜ñâaÆŠ;„-îf•âaÆŠ;„+îᣩ\Ü!ÌXqŽŽ_EMå¬RÜ!ÌXq‡0cŬRÜ!ÌXq‡0bŨRÜzŽSÂŒw„pUÅÂŒw3VÜ!Ì*ÅŠw+VÜ!¬*ÅŠw+VÜ!¬*ÅŠw+VÜ!¬*ÅŠw+VÜ!¢çp£¾³0«øÎ +ØRqO‰—þsH +(wW˜1ß™<; +‰ùÎBÍ õ…YÅwF`Äw&¢ ûÎ +ò0ä;‡^fß9ô ö#Saw70eå €â¾seƒE|çК+ß9°7Êwí ûÎ +ô¬†í}gÚ ùÎQ £ôgÄwVÌwVÑ£ïŒÀˆïŒÚ+â;S€*ê;#0â;W†}gÅ|g2â¾3±VØwV lxQâ¾sÈ +ÈŠùÎôÙ°ïLÓ‹ú΄FØw&dþshQ‚ÀˆïXbå;‡¶BùÎ-S¾s`c•ï¬@ß9DÒwF‘ó#²ñ:žù°4I¬˜ïAƒ|ç¶ì‡Ö¤ŠùδÆaß™v"ì;+×$ä;‡vÖG!ê;GŠ}çñ(ï1t¤ÍõŸU~,M/â;ûª¬âè)Šùε« õCû˜[Ôw쪨hà¸ï! v“•yÆ|gûÿÙ{ï…Fvdqø{ÞÁÀ˜ŒéÈŽä!Ç‚± ŒmN¸üžýSUIÝêv·mΞsv¹{ww«UR©TIU%)1B¶U¿J„êW‰*CÈ6îû-çwvÿ¡ã~¼Šªúv³I%Äñ!7œÍ)õºg7ƒ^àð/=»ÙäÌIÕ…Ý åQê”)Gè\ˆ?_b€V €cgü‚ÔT1 ¡E™:ïŽÛÍ&×p¡¨¯+ýGžÝ,=4LïKª4'ìfnÎÁßn&ÖïWmÑN¥GþyžÿÈõQä?äv3ÌÍ]ØÍ&¯¼¡ê’Ý,LTݳ›éV-z䄘|¾Ù k¥™¡fT«TÕ=»Ùäñ0)Ïn†‡ô¥0›=džî™Í&]]€<³Ùä!²xã‹X:SuÏlf\‹zóÍf“'&ÂCÇGƒã¶DÞ©.™ÍÞaÜŽJj â¿ ‡g5[‚9éžÑiñ|VÀ·š½Gšd5K…Õly`Âl¶( ªŽzV³ý <«Ù?öÌa‹‡3«Zà$Óµ û’uíÒn•Ì~b‚ðȳšá ö“g6›¼T]‹À×ÔVè¥d6›Ü*À¢ÐbOФPÏl6yJ.<òÌf“kðÛÍpøNgÕž= í8þ#ð)RBj'˜¿g7›t·!Ø;c6x!pa6›üx¤÷<ñÌfé¡0›¡/Ž]n5D>.Ù’ä7õhžÕl¦¨‘ê3@“¸’d2Ó¥Ïdw‚âÝQbÛÚ„cÉbwÕÀCEŒŒ*6@1k._-‘’­J³%¶°ÜoÃÞ¸Ålq§P`žP@™Ó‡°˜-fÏk4Ua1K|‹Ù{¨ ‹ÙâÎØ{Üb¶„þ¤wä_ßÝÂb¶Ärèž%,1ßbf(A¥ÔÂbx–Dz©z Š!Å£zr*©ºg1›¢þ°îYÌaQÚk1<ÒBÕ±uü*=[§Æu©—Òyü¼ê{R‚ðÞG’‘žISÉ%›\Ê* Ö{â7‚ë=‘òøØB­T•ë=QK5XÞÊõž<±ãgÒú¤Kÿ¡Wò‰ßC'•|²ÄÝrÉ'Ëá‹\?8/³{¿æ&‹Gbþœå’OX|h_ÖTzH>/U®dqÖè›×–bHÜ]Ø[Üö”¬u¶ä›ôþÙÈýšO\I%Ÿ,E¡aÈ5Ÿ,U|éÅosµO®Ü$1áuŠiIí¼Àd.Éüð:•S‡^§ +Éáu”³ Ê¥u(uB• ðxäð:ÿ¡¯#‹IÕ¤ð:ІVµ@x*Ø­^§ølÎ3è1ó4o=¸Š*—~âœ"XûIXÚÒ!–%”"õƒ$’òú¤',^‰@Û²ešzˆà-½mAÎÖÀžòṈuªÉÒ­ó·Š[‡¶Epw›QKnoa©H±uÞ#9¶Î(4¸ŽèÍ3ä¼3®¡ .¬7ù©Q€ À-¢ôe]„zf±×¡kPE¾Yb¤/©üÐU"&ù‘‡ù!ǜߙ^¦¼ ‚"¼ÅòuoIU]sAR’f.Óƒ§7úçÒC™“„›Tü¢ë¼2Õ~iᾇ“{¨Å=÷¡Ÿó©€ø1(в#v¦à¤u]x0È¿ê=õŒPh¼§ô KËR >…ÛR¡»=ý2NI}Ç+á p\=ô ®m”ò\é©âz±oªC)–«F^SôwÛ#™õ ©J)>ƒûçñ/Íå¶“ŽwuyÏ„2…~"ï©—x¦šáïÝ ƒ¡d4ÕxÕÏCV7²jš8Ȇ«q~^p"ăx(!Lô棕²ÖÃèwtU ¯“íäõ¤äNï™@Ú az°hz¡vè95ùóðC<õiäo†­ïUÎDzþXYÍôƒÄHða6]ÂUi =A¦+#j¾"Ћßç U'„mH˦bÕ ÿKžQ©7ŸTd©¡äUä„V„%Š­„ø˜+_È‘¥ìÉ·bRªW»‘öÖíxóÉÓ÷úD6È’EB>¹¨‘%{“Ð0½7°2æ?Ök=üQIæ0¡ÅlÇqÑv±6d ÉMužß~ˆQ˜¡‡üžMDàØ±œÀ¸už ósL¿7©P£OŽ"r’¤LŽ5ù‘ŒTï!ÅQo|uUÏ9ërÊðWRªŸ¿âàÄå+.è‚_û )O¦Ê4¥‹€Tù[~Æî“­.HeêM—ÐdùU#Hú[ÅâOÞæ«Û¤3C]}q©‡aªZˆ ¼Îò˜kÒòQ~Ng ÆðîÕÂ:%ðâxOˆýûIè/ïd7AQL Æyñ¯í0"l>³”¡ 7)kºâYœ”ôªà¶Ò}¶cÑpL‹ª›“—™d£eß Î**ª½ž×šÄ5ÔdRWF Bw Y€QH +^c˜Aæ +UAÑû⮜Ð<]v°ª'~O‰½~Á¢iˆ»ùuoÇ#øy‘,x÷"#_ÙÈ^ú·1S?ª ÌÐ…¿ØÞÝŽ*^IΞ3“ñà i1HCŒ 8€0üðñÐãp¥®T&Ãùµ•hðÀ*ñBââðÅ1Íà_¼þUBÍ]høJðÞœ~Ò>¢à ¯¹ô—.úÔ¥ó2é{5ч5ÏÂ]»*90|kCÅŠ±°RÔ#÷ñÙòêc̆˜©——.ÂA¼| +o¦|ß9~lr‚L©9ýä3Å¿ýæÞ_¢þŽ®ïD>ÓAT¯‘éõ¿²ˆÃ›‡ÿ¶¥.ôgrj`¹”Wiª2âqì5rúÔ[¯×‘àró5bÜÅV¨²¬•D-¼%kÀÄ•A§Ð@&6oy¡¹¼ð3èÝD€‡²óÆŽûBÐ LÄò1 QN€p$”ו/†Ê ®Ã˧'$²à-m6v]7¹©šR•·Ð\^áˆt‰@"ÀCƒ}ycš!üÏ.ópüá¿„ÞÁ2$†èu áQñðd|ñ-®xØ® +q\Èð P—Æ[ZÌ0 Lø¡,xz?@rý"ñ„€siÄa*Dj¦ B…âºærªéy* «¨OÔ(QèðdY$¢T§÷¹Çª{”7ζUÝä_˜pVcø +Lôb‚r-"Qš„Ó£+>QMW÷ðz* ÀˆOR{`àÓ¨R8µ6Ú--°„*ëX¶I¿vïSY|F}bDˆÀÑû©/zÿgÐû;t½¯]ñ¡]ñ^3ͱ  Xð0*C:j$y«ôèá½{ô“ÞÏümIû¤ñôl”ÞŽÃ,fKöN¤çè͉"¡/Eâ.b· +ù±)c÷d Dîƒm¦gÑcv\žñaÄÞŽ¤DÒÁzvDˆ¡Æì½ˆI…?ŒÚå‘x{—:ÿµ#þ™;bx‹ãkß|Ú¾y§å‹ù¸õï•Z±Bët$y»nurÕ@/¶þL,²Gfba«ÞIL¥·Tý ØéTZuy'6+Ó‰9ÖPumpÙ®©(*C¨¦³)© +Dô8®­)6Û† ÛÆ`Ž…£J±¶Wì´ª°/»Çµj©r\*ÖªõÇVµ¼Sù“°Ï2F [›Õ?*µƒJë¡RêÿùzߨåëÅûZåE´V{Çÿ£Ùhu¤Kzm°—nµ\iS«%öß715¸8I²¦Êm¾^&˜øÛ¸Í0„Ôù“©36¢F+Á†þZ™†pöß‹ß).¤QÞì¬ÍŸìÇ6ûã™=€Äk%QfÔqqú(O·r,8“ ¢BÉŽW¥Üä•I¸ø‰Çåâa›ø* j MgÏ\ƒg"Ðy{¢SZZvä $‡_“ËÏrèR?Ô•Sš Ç.– ¡iÌpñX•žP°§B!°°¬þy¸ õ, ªH³٘ǩb+ÍÁ‹@St(gaP>~%x ¯Õ9°lLJçÐDµ$BÉ1ßâô³#pà„™”Ï0-F¢<ü‚ ù œYpõŒß`¼\Ø ¬[„·b«”@©…ÞD¬Òå’Ù ·ð6^“Ja@¬¬Ú”"q­‹'M¶K¦OvDà a1ñP±†S ×RO)Å9hTZÂ1(b ˙؊'}2¤`…R‡§œ2ô¸”„O4W ‹(;x™T4<î¬ÅšãŘp,+ÁƒBWxÄèÀå/x¥-›#÷³'&Öq°Š‡€çzϘ¤¨2•‘3Pn÷6o;D†Y$-çÇPGE4TH3‚Ã'2+ð;H/€Œ¼©Ø¤ï€îáÌ›-‹®é<_Ïom…-ö2¹éx·°Í³§S†É/DacÀû8ñ–+\`‡Â.áf)¼+ÝaÉœ…,(ÌЂI¸†Æck¹`knˆjºlm‡Ò\ qÛ‹ WGØØKpx0f =ºÖΆ$8x„)[P×ÓbœWãc†–¡%üõ³í”aˆ¡`@|ÂFf‰ëÞàÈþƒ6^Ðé²µÆ\IËäW~À×l<–NßBF2–ÆKKÖ!dˆm•×@²\ª·ÌbÎ"|âšnÂtRÃqU•}a:¼2ƒ{ÙµîÙo(ù`ÂÍÙ@édï\5]àÍœáÍäw×[ò¡hðœ‰=à'pÔniôȪ·éÅÕñ†w À¤\C£0®ŠÄ‘iëà,Q‰|JÅýfC¡OÛ ‘ »XL/? +! Á¢" µ£ö D +¥\Ø`UHs1@O ßXŠ#ˆ!øÍ,$ …*~Ø ?¸ F~pûeŒÚB&”Æ€´eÇ‚Ì`¦`/ÓA.2D¤kW#5Ë"sÑæä–¥ÃK±j\°‚Ñ•aYÌ¢A?†éðÊ+@òÀå^¥G*‰ýÝÆÀ)Ì̈6=.¦Eûj¨*ˆÌ„¨Q‡tP™MÈŠË–vîA~Iª&ˆÙTy²¡Žj*âRÆž …8 +Gh—Ä0œ[~z6Jö«‰Ù¢:/ã ðþFÝK„‡G˜_î]ð:¢J…>¬aˆÊ®šM¥c²# :QÝx°Øþ„j*à`À-Ĥº<ôXZÚš"®šQ)ZSy¦¤5¢@\O¼hÈ$‹”÷ñ²6  G\(ñÉšwï€K¶CvDu7fmp(TʈFSS_ ²^-ö…ÎÓè-L—O¨*%1Ê‹ÁɲMGQ`Y]~¿ŸîRjÿ‚ZTÆ,!#ž–ÐÀüF†j6dº&’ÏÆ@lpõ6åòÛ+m¸Æ Q€ºµA®áU'ôcËUä-vëhÈUU 8Ô ÒÄ ó‘î’“ÐDª2—f +ìTtDZ‹. ‹ +œ:‰;ºD=`)¦è$Á-6«Ëo^[‹|v”ÎH‰¡MG§eb1ü¡Ž5¯Â]• +iæ ‡Àg®¸õ\…¢ÀÓyŸ0FÝÁ¬Þ]¿`å8,X Ã+ ƒ•èf„d©‰[¬MÀò0x¦óK#1ïŸíqW#:: 4:æKÞ”m’Þ?ïå× BþùS5lºÚÀ5ßàf•d7§â~½Ž•â¹.—:/\=9·6é*¯•ˆd´ìp5¶2^&‰aé´U4*7j¡Ñƒt‚…®ò;‘õC%H4t‰ÍÀ«Q:83ØÜTXÂk"(5x…m¼úIàÔ%vENIÕ¢ÊÆ¤ôñªSYâð„¼ª¸Ñ[[óªM;©‰œSÜ ªð2÷*¬–B†Kµô˜& j i²¼¸•~ Ü]TÎÍáI¼ åPEœ)ÊV `ÑLлlz âÃ&Ô»Cw'ëÈ$h¦Î-Õ%/tÄk º\[ñÀ1Go0™kTVô!L0MQýS§¢ÑÐ5L*ëONN›ô6X9CGgŒË3[%P¶=¸o0UAÝU%ÃHåõÀ`Y‘–Á2Òð;àjä;¢Bò®Pᙋv“RÑ ×6m7Ö;¥ê2ƒÌ¥Û û±‚n:‡žQ ð‡!8`Õ`D¡ÿ}8p䣡; ]טßÞTÕ=ÃM+ Ý‹:]¥Ad^‚âƒSa+eªäåÕÝ]H5WQ÷£Ò6°]®7À‹À`" É•lO§’d&:|©¢³Î t¦ÒÅ|l…MÒ<8ç„ìløÎæéZ@€ö€WcƒLQ}õ¼ÄXeflj·¤Ž(p±è“”*"ÃÖyI°AlCãÈt±N(èúƒà:Œì-,L¾O¬<BØÖiñ\~ñ ÕçÐÙåp¦?˜s¼ Úç–É/g´Äa#:oÛ´°v²F¾7:kñ‡ÉHš²|€fT…ZѵuLãp±^¾p]° «: F0Áiè.&%ª¸ƒÈñïb9ÿHZ¸˜}©óÇsirZB+rÃÙÚábãÁI€B¤ Î$ªä Ê]T¹žå±#ëü çeÂ=‹¨qêŽ(§“¢k÷øW m€:E -X êB9äøÄ£ ü'°$/W#Ä/7U11JEξ,%ðgaø+ˆjÕ up cõ]ðaýȲ=ÉÿႯ۵„ÿ.k„³3< 3¹¹¨ŠÒðŒ,Õ åcü *œ¼ÁFÐLùN ø€%>JÆ™:E^ð°³Å›‰Î< xè x;pp +ÅâèC:Ý•_Ú¤Aæ2l‰»Î ;PåU7`™T>!ß}ª’Š"Ê&gtЧí˜W*°²¡W” +x°=xRmg]§ÛYá—à ¹gùm߬{SDj6ÕÔÆ2+2},z2èè*ÕQFÖ§‰ý¬ñô4ò—h¢t´g-èæT?_Ŭ²„ÈH%Í+Ý¡æCˆ õqá·¢Ú¾º#‚e'E.Qqà•NЉz™ªK‡g:œ®e;­[]£EÐ"q£épàbÓê5ðÀ!Üà 4$]ãWÚpÅ,4¬./ +¡‡´><•|¾ÄÒi/‚v¨2°wFv1èb`ã2\±É$ªKú ÐtLé‡àÃcäŽ7“óóNÊ -:WÆ“2ÎKAíp 4òëè;À‹rU‹† +õð€IG¡ñâÀÁqi +ÜVn)üöUªJÞT›×™bÊ >$Æ+ÄàpœààåµÍ\ÈÅÅ“^ÿ Y-8U Úã 9sà›Â›ÓñrOÎ aˆ€ K£¤K”³ŽÏ} åŸýaaUT¬÷ +~[X&—ñ/ ¬ZCOÅÁy§ë>Ò@0,r¸¤L¼°0VÅûI‡Ûpz‰Î…‚`7àEè$¤bJPŸÔA_ +m)‘Ýì;i¨^ ‡Ÿ¶Agîž‹t”Á†*ŽÊA>ƒŽ×uœ(àn ñÐÌ¥3>.p6ÍðÌD=Ÿ¼651 @ÒcGäŠE£€( Üêz`š‚TSMÒ!Áè…UPMÜ(  pp-òúºÄU<.MàÙdGØTHx±Á½ª#!A|µZ< ïâdŠ!º#tîbQ¹ˆ,  e *|¨¸ PgÇÁ(¨‘¹èhÏ‚ƒa`å`¥ wÓy‰Ødx;ƒÙBˆžéà´˦Úx„‡gWdÈøføE©Ž¸Jnô~üé 0(´C…,@C'³ýQ¸ÍÉã«òꨂ“ƒyê:Îjt¡ægðÂ{¿ “«ÚüøXV†Ñx ˜© +G /ôñ@h?#ÎQE\«‡<ðY{îQ°à|ng³†áðËkgc¹Ödê[ЀÀ+Ðü îÆÑ4Rq„W v,œßÁQ>&êÀ œÙZœªÑmi¢ûÉÓ21ºD*û.Ýý×shC:9¦R9 SyLíuÜ\àlÔñ + 'ᢖÅö†Kõ:|¦Éx®^4Í´8ˆÒ±ê3áîñüÊ¡êEbƒ½Žh<Љ=±Âo‡˜ˆ œ˜q¼} ªÑ™(“Ñ˄ʌŸKkê³±ªxäc% ì©ÊKѬÂ,Á©PMÅî€â5…¼MXÌd¾Í=³Q€BI1¹}†fp%¤"`3ÀtÛ÷“ ÑQ.)¯h0ÀáÈ+>‡×ü¢.Ëpc0–+ ÇçIîi8¾d€G!ƒw€6¤ð­0 ,•#‰ŒøVüÈi%Qj¼6Ýz9Ñ~*6+‰×F¹"…EÿjÌ8Hm(ù ©†b€»œñh³ é(eo0ánÐYþ9ÑãʧD›ðóö{£~ЪÖ;lÐóóôcÊå#ß›ðÆ¡7µ.ûwÿþ™Í`d*]nÜW™V·ý”Ø+Ö‹•Vb¿U®´¦û¿KÐËl±V«>¶ŠÍ§j‰·]I,[ˆ^Ž;­ÆKeøQhø¢¶ßâ²ee!°Ñ9ª”L!,ÃKjÆñ˜€äTLq€ \°;Øfæh\¨$v¢ó5(Êçå/*¿­.Ê xå!±”ILI€@S^Jà¸òÔ}CÈ£Ä1±ÿðЮt¦qü1ßó¶jµ.Ú.VªØd:ëQ7û¨Âéo*Ðib—Ñb"ÿæk}Rí|ÖZp\Çà]M9ïÇüÔV½]«à±ý—`\´Ý¬ÿ¤ŸÓ„2uèSš¤ø,zíB˜ÏÔ*̆~áúâ;óÑ¢¤¬èZ¨ )cÂGßCÌøÿR2"ø$\xFèi»’ÿ­Rß/—aFHg>†öãÓŒÃ8‚†ŒZ2÷ŒZ§„d`*W¹Zaö°C#w}Î/þÍ@.s&#!ÙÃßN#œaÿ¥4ò_³Âª2-Ì—Ï_á/Z íÑò7ñÉ!ñ®0²ÿ£RêÂð~¥ª%TÛü_P×¾t–^ýM_+NqQR‰f޽OsÙïv©.Ê?Zu¼äKqù«Åšõ¥¹|‰D$Â’ÊÆ?ô¯Ó/öñÅ>¾ØÇ{ÙG¦ò[…­\ã¡óÅ@úMø(¹ý¥û±ïþ#å»þãÛþÓrjMHª…ÛX¡ +†Še±͵LÇ…ºÔP8ʺsŽLÿþz +2)tÿïÿþLìÛ/ŸU6DT€ô‹„ôO±P¨`sbêˆa£Ûþ;jÐäx¡( øY¸t9>lŽÆC»È0ă×ZõušØ +ÿçz§ù_Ÿnn¼2‡A»âs³Îÿ×l®Õh&ŽŸŠåÆï_öß&aÿIûûoÐx‰ë(øs˜tpS '´,qB¡²X‰üÍ"ã™ÊC£UIHf˜0×JíV «NAÍ+Áæ›E|¦‹÷µn‹D Ñ,V[œïS‹ß*­ŽÜí}­ǃ‰G¾¼›û+Ö.ÕºéÉér±õÏS£õwÛ•ƒãÝ ŸÈß^Dëïb¶]Pª¾¸ì¿—Ëþš( +ÿ ¦ø•Æ +\$7­Òmp)û™('­b½ÍXêëg1|©ÃáØ½Âm½ûšm4«ty‹Ç_¿U6o:m®­cÓfµ~ШÖ;ÓòRµ*5&(.Ÿ·b§r›«<¶*^ϼ='×êÿU¢>s‰Í#ðA»T¬Uv«uê®;àßà‹³ÛƒJ«TñåÿL ?<ÔKÎ×½Š%†ÞÞ7›ò›ìÍl‚Ò+ÁË×ÇY_„ñEÿ&§†6œSã?[Ý6þMèKX–êtbž‹Kö¿ºé`½N¸yïK\~qÅ/qùE;aüýâò&-õ¿Äið%*AÎÙ\îk»¦á¨ +܇'9Mœ +30ÙÿjŽ­‘¡é:ÕY؃übÿ1£â…Y_læ?_»Ýá¹m“F®âu)Õuô/ÆòÅXþ+Ë×¥c1‹nk:2Ý4>Ÿ±üµ®"SûKé矰úôŸ_9ý…³ìÿÊóÎB£V->Vn7Ž¿N=ÿͧžÿî¤4ÍÙ¥@ü纲Á‚Œ›×LÃJ)`ꪩ§lË´®Í¿pWÿÐ ¤|±¯Ïc_xÁÝ)‰‹/öÅÂþ…áq¿¥©oiê–¦úeiþk,Í¿‘Y0Z,7º­/mó_ΪÿɾuX}Õ#ÇHU²ýÿ³ºé_édú·Þ"9ìš*) î%VÉEÿ¥hï>‚ížÈ6ZõJ«ÐÍ¿4Û3RM + á³T¥P§ï<únõ=úþ×Ë¡¯Œò/åßÎy~°§Ån­s-1œãêk³æ1œ0æ?H¶´ŒSu¤Ñ$Ó[îm¾^N·:¯ OLxrû½Q?h±ÖÕúãü<=ÎT9`æÓöq÷Ø3ügêÇ{‹ ‰Mø–æ¢=~:rP’&3uþTíT¤‡ÄPËØ(|JSÙ½ËÄQ¥ì5–Ÿ_VjµÆïøJ ½Ú`VYÝ{£Ho²Å 5ð"SëV<ðò‹½â#³€ŠôÄ0œk¹èù‚&+ìÉÞ +XN—+®’ØaŠÑb+Çä}­°Å—+ìÑΊßÊ–VvlezÄ&&4¨rHd‚S +*06jÃ÷/iBW4…7 ÀK™r3ºhd›‘SøN©×Rà1ªs|±?°±‹óôP¦`óÿ ‚·e|8–Ç@tE@7䆶¬…AwØ ðÛ3©NWËo¥Š(L˜çLàrÅ”ÚAKͤ¤vDn´ÔLºª48Ÿ*ƒk&µ1•È6:‘¸núë¡û½é¦¼4Bi^;3Hš8]-°`®Z€èL1[Ã#=¬AKCniðõJq$b[z5LÛôÉÿkIX4½-d)2MÑТQPcƒ…aîF`¸o, ×ðšzåC°e”zC°ÕÅi¼º7'0^ö…ŒË[Z—Û|½ü†¶¿ËLig#µ;ø¿>Ælo65¥\yäçs âà ÁÓ£šƒý>ö[Åú#{Ιú ^BÍý~ +L{­?&Ž_þ؇Ԕ/d«w›L¿€"04ÚÄYõ±Bp`Ïñ_ ¾‡J!Ýk‹¾Ëº—Z/™ÚhÿD#ãàQ–¼´`¤ Ëë”ã²ÿ3zÛ¹Áf6kå8½Íœ`3 z³{›ÙÁf&4‹œjÖÛ ¶ÐcFo›i1£×ƒÍÔ˜ÑkÁfJÌèÕP3#¨)Ö+Óª>>uüóÕ¢ŸÏ†u;¤(ØfD#!€äÎB*‡$•£e²$Ê|‘ÂÅXX¤XœE)ìÿtÕÿ¿±">9Èx*©Ð<}]TVRG¾7IÅ7B¡Ýeʧ¬esë#-ÿžs·@(žDˆ-9{´jÄ@Å:b2ªB¯¨Ìtóÿ1X­F©Òn³–:Œ÷1 dd꬞{¦íV_á'ø^«õb‡;Ä §áܤúÊtØÖK;ñsê÷jç)áÎת¥ÊÏi@Dõþ¾Áâ©Jë¾Ò*Nsø^‘7‚? Žø\£Ô}ejr®Ø)Ž$oÄofÉÀ/É&ƒß{»ßåJäË¥ÄÔ¯µ:{=_ìtZÕûn‡FXÓt‹q°ÿHŸÐ¿ÔªôT­•[•:µesÄ[ø§óg³Bo§&êíÛߊ­öÔßc½3hú[,j ÏÛ1í (Œšñ‘´¿þ¥Ø¹¯ÖAj«C ‡!ñ¸ÒùŽhŒ!¹õÜß;Çz£7dy~µFé…™ÆCÌM´ü¤åÿÅÙ«}g?ÔºV‹÷µÊ0„?p%ÿM}ñ·¡·:4ý›©¦Wê¶;׿—“ýut¸Ø.‚ËdcÃ’ã_¾/ØXþACùoØ¥í‡ßÿÁÒøoÞmP&ÿå«lj^Õ«¸iþ^-cíÄ‹Ëþ½ÜW3µAzª€u9ÌŒDË¿wJó†2pN3?ÿî™ö yü1ù»çáE0ÄMã¾Ñaâ·òÐÙoU™•8̬z¿ùˆzäqÇÌÐ/U2à:øÛe=“H÷^+b™©>¿:÷Ç1^澆a¨Kj<±]LQ±Aµ%o7ü#ïà¼X«rÔ-±£›År9Ôìë`3E¤?–›Õ”7¨ôV"Ýí4GÅv§Òâ‘£lf?ö*åj÷5qTi7j]~ÀºpZ¯–Ø´ÄTÓ[ªšðÜ-Láê6…DfÖ+­ÄA«u}³VõË'¦·ÜÄ^¥ýäÁÅÓZ š4hÿ‹ýn§Ùí ø&‚ y"öf!ÿG³Ñꀆ˜n³ñµyùDâ'Ûj4Ó­J‘¢pzõ¡Pÿ¶ã˜ Ûvy1K ââ™:êÖ*-™‘¹j»Y+þ¹ÇKH2l§[ûF±UN¨½H–ð'pq>¢'–ª%æmW“@Uj'#‹Ã8h´«0^|«‰‘(C¢†Hj«-F{\w¥0îÕÞÜú½w;ŠˆV>ÓÔÅ€Å. +œ° Ñh%ÔĽ·ï¼± Šm•¨2B(v*¬a5B¿24'¾_MêW“ša¤q³ÈXEéÏÄc«ZN´½Ý1°ËGŒ°ºÞv=sqÍ"Þ´«¯ÝZѧèàZb âPØÀ¶^¯1è~©7J/ ¶[n3DØ9@ë·Jâ¤òG'‘/WÙ¶«Öª¾âª¥;º7±I³ÅúoÅö±‡lÅkÑËlv‹õÇnñ±’8h4ÅDûƒJ«Ý¬àÞ`Ëw bý V¬W0`‡q qñý¿*ÔVügŽe« GuÕðæ÷sjìY±^m?1Êô"ýãKÜc«^®üQ¨¶Úü„çÆp@qðÔl$°Œ_±>tÕÔ‡‡¶l¥VËÿÑñä×Уðzèİs?®”õ²Övß3ù“FSž¹­·d0î¨zÞă2^Ò[xM…ɳöq÷žÉ£B£ÞiÁî÷“¼©”ă'`›b{5~«´šp4ÂUÇЇ[\GáÕµ}Ö€ÙBÙ;ÿþÜÙ·¥°Jú¤T«6SwÕŒ©<2¾Öë?o*ÊÀAV€þVÁ­ø®-äÍ.rïzÕ§7j 6‘£J³[k{L×[£L­R)óí+K é-[ߨwDEÞKIvâ¸Û„El'02!±/Ö‘Ðqµ7Ëx½êšmÙý8Ø‘à嚯ƒ…n6˜NÕ¨oJ·jÆ5zÉ2sD 5¶W¿ß,–<¶oHB‡k‹ èv‹°@‰]8ùìOQLèÔªõJ¢MW9Eë}AÛŒé*›Å t¥µ•kKšGLËÝF©XÝEn+78% r-N5RJJ‘L¶½ ÝZM-^ ½í•«–4½b½SM0d…†‹\X…€¤ì‹®“Âa¥DÕn™u‘™¿Ç´ÎAˉÆq`5cI÷L¡Xª¤ñÈ8¸¢Îw+@l7Ûå²zШ±ï _™, Ðmþõ¾R>h5ªµŠÇL㧆}æ=Z*lZßJ´û22oè'Ûü¥§žq:}×@æÕ}ùŸ[Vø"›úL"¦Õ‰ä~(ýŽ!‹/Š#’ ñÄ>SÅqÉs5âÛžU+¿³mǬ«Ž/”†ÖR@0“§?Z™}Öñ1Ú‡?ûø´4ÕèÓP"äøí C»É0;®_$¼àéÇ ñŽÁ⤸õc ‡µ‡UþüÁq" ?ËþQPàËڦץ×y›Ìœé-_*FtB 8;‘ù[hL¢Í±,2d%{"ÏÂmÉÈÚMŒG$à +@ýü²©Woøj[¢ZG Ìî¡ÁဇƒDSÁoPä‚{Š_à€‹‡oˆÒ@p-ù|úyyè#HINÀÝðZá‚÷ïE_ ‹“É.#á¹ØÊõP+§´>ä¤EŸ^l1Ï÷à; š¯/©W®j<<¤j•Á”7î4š!¦ÐÓö8u°ã!¿§ã–¯f +NÛÓ]÷ÅV{@»–”ò1 i³øX©Öƒ ·¼©@$tÜlÊ•XJéÜ-¶Gœ8ßܽ^¾žæÏûäÎ èµ-‚†ë•‚"@ÑÐo¥Êm¹Ïj–Zåp°Z±™z²ÝoñP¡Y‡i‚éĵi—šµÒŸÁ½×Û¦To÷Z۽͘†")fì­GÑÆŒ×äþÒ!zzrT}¨©Tk¥<ÑqOï(Í´8œ1ÃÒˆúïhȈ¹).2Š^jÔáö%8•è³1¡å«gQDµ`$žÂIÛ÷ÕÎk±9ÃWþ¹Jß~ý Ú•+íêc]BÖ¯Ã{~;gfΧÐsÜ Ñï IãŠoö$7‹"÷v§LÜì8ÂJk($ÂgÍfÖ§@fÜ8$§@ ƒ° Ƽá|€aÖWJ†±(68á¨Ô"¹ohPƒpÓŽõ"^>ZôèÍÚl§ÚOÅr¥Ué'žÚ©šZBã6¾ÑÍT£ÙîC©Ø Ôð¦90øëÌ.í;¶w;âÙ·MÈÀiW¯<ý#²!ôIäë1¸ò?1@ÙnN4jå¾ÀëØ·£û*¨[ýûàŒ澫.›b@iŽiÈ»ô]1ô†zéÏÿêT»{ïI@'nU_™2$«Žjì^¤á°&´qã¹(w›û;w§P°l3* Â2rT„SŒA1­¬œ¸ÿ3‘k1 +m PØç>JáËSrM×èßR¢w;Jw` {Ð#³\ë/H©M³õÐð¬ÿ¸?°Õ +7±ü¦Üí£e½¦ÄéCéõÏÉ$‹êë1 3ªK@çÖC±j ß*·ÚAUv@§øA±^ñQt̃€ðÏs¢Ûô_2ôЭ—¨‰oÙ÷4’·U$ë§®¸# û5†­¡Ö#`­uÛ•\£„þ»öÐü~àÆ Â5ïGt ºYƒÜUâ°<)iÑ<á;æ;°ú¨¦µš8ï#oäæC+±¢_Ê–êCØ;ã'Røå«çL;ܨýRm2»¡þÒ¿Y‹ÉâV»ˆŠDõvã~‹Ò¢e¹:ú8ÔÞ{®ïy¡ŽëÅæùÛ÷àaîuRy¯s­âïQ>,f&yàªTj•\];±Lýªà$>®Gé?€‰ƒ\á6â,$ŠèDsH­Í5~¯SFÀNUœ”«‘"@|åŸ6ãa3gw¦5Ð à½'6#ÔZƒÖ§í +ÒÉÉ£^ôÎ]™'RÜÍsß'#ø“§îë}½X­ùÌ©ï4¤3a1£ëw4×oBdG@˜—|p1<„Ë¢‚ØÆ£ˆZUà ’Ù +@ä¼/´¯éVç÷Fëe×Óè°!™—LùshCM|˜«´;U2ŸžçØ9JÈóB9#Ùßã è9iU_aÎ%sшTUÄ{zÃßQ[ Ë¥ï¿õŸžê-aäf4#àqï7B» +&ð€À_¥~[„SbĉÖñ¢YQœ=ôåp±"£­2ãòÕ‡ª`ïÛGGýý qØâ‘ œ¥jQš4”f  ÑÒk%zú2&R¢Ò¥Vã¾ØÙ-þYiõSêbñs",¡þ“ mŠð,ßµ²¾QïðÃòáXo¼U/1Áâ;Cdd°IÌ&èuÑ_º"–‚âõ}«‘‘ÔçAúBµÆ¸º†¾î×§ØX9, Eë½ ðïGyCÐQ`»IŠ#„Â2BÏ›[í9‘îCXýCðbgqÜ)ÖËÌÜècމ{k}{5Pžs£p°>È»fs@C­3Þ¡_?Ô†æú5¥9Uû=žÌd>¯ÜC< çP'Ol L)M0»3Á½ ¶ý`ۉߟ*õD»øð®b]®“™bIÛð˜Šh2^u*Á”dè’ýììÏF7Ñd ›`{¬BÄ‚ ©»G¨þY šK0`Þ§u6×D§]”*‰*µâŸ®Í–.íßv·ôÃÛªçð ÄÕ‰0Ó?ÑxðÁWÛ‰nýj +¦†VK­jsÀ Y`¡†–¼ÄƼ¬LÉÅZ$ÃŽ!3È{h}ÒèãnöX“|[}ŸÃJ«ŸªËž’ +—õÌÉ`7áÀÊ_ÁøWnÚfªÂ¬Mg·¶3Wµƒ—ÆÚþÄÙåó•É¥âÅܶ>±?ŸYom¼>->ÖG· £sS“Ùj1Õþfnæ­ñÅõÓÕ=cmq÷çäÞz«[² ymÏIª†1®(íÜsîqNù¶¾t“šY_žk¶×Û;ÚÂHr}iw´%mw2›‡»ëËFå8[]Y-åR©ÉÇP»åKÏÎ’‹öÕF'÷|1®æçÒ¯Ývzë¸ó4»jw 9ãÛyæ¹6y>’Ì=(Û÷‘}³ÝûìðÇÏôI6uTn·x½¾üR¸^_l§^gssÉnaj£ü0’Ddî˜tÈ=\ŸÛ™Úzíbñ!óÔÉ>ÙWjw¹’ºû¶¾¼6yNý°!·³77 ö×Ä[n«¼5š™wž¿¥çÇë4†‹b¹;’tŸ§fKù’y8•}2n—–ÓI}b6ó}înv=;yZÈVº3«gÛãOK¥RñþªÎævŸ²ª,íVõÛÝbõf»œ©%×&ç[³?»éÝã‰7ÿôúÒö“>’´–ή×ÓõÒäëìÊÞÒ‚ýús¥jÛ í=Ý*m©³/‹ª×c)·Ý>ch³'+ö¹®”«Ù…"[_uoej~®’©Ù¯4ƒËÝäzvkyü+ÿXÔîǯ±ÛÕz’MhÕš‡%ùa[‡uÀÓjæeÚšç¤yVÞUÔëñ½ÜBqy¢0:{Õ(¼¸Á^°ÉHR¹Û2ðïÙÕÂ2ÿkù<¿Cͳsù;êL»Ô¶é^(³««ù9-·ö¸Âû9_Y^*?¿Á•ôÌúÛϘ +k”Ùöpí@Z9‚FŸ™£™Ü-¢šqÁ5ú²žKé“Üólîaaç-_,N~ËX÷§‡îAòâ4½ŸÍ䎫oëo׋#ÉŒqyrKȼ²ÊWù[uö,c\¤÷ ¹çóÛlõÙZXzxM>²3*Càêm•><çøíu'½¿;³SÈM—w7ÑDûlõ;ÍÔáìÚYñ&´j9Åõ¥“ÎXúd»ÓíZ³ÄB\´FEWÇlçìg;#ÉüU9ù¨Ý-¯å”ÂÏuI`ùn¹cÔ137›i¸7áµ +bV^X±D9kOí.b‰ÍEÆÓöîFúv[EŠYžm.ݦvRieùäJ›þv³L ¢Ã깕ÂÔDs:ûd½ägwSŸRÙ¸l‡9ΗB×Ù¦z`SŸÎ>>åÛöRéô(m_içá58جúÛÈÏÏÝ»QKâ¾Tv²#ÉôÉ^y–q˜U7—Ù½|‰-¶”Úm\ÚlÓä5EÛ0öz)§sP˜>¨-ræ•6»ºq7?’ôçÅfUz(äs¦±æ÷Ïá¤Ôͳ9š[¸kÎdž;å×L­~ÖHŸ<]|c]ìÌz4ósïZabÞþ‘>zxšdŸ]Od¬ÙÝ'â–Ó¹‡ÉM‹¶ñD\0v±)X8°s}¢ÖW.€Áßåî§óôi²Ô¶›Hü¨9ϵùeäh¾ `Pü÷me9ó2Õ¬–7Ô)‰·_Íeœ0Y"1kU¹ïæ§VÞÎ}IzË(yªc?²áUŽ{Þ;w³K[íƱKãfFíÖ~¤ï¶³ü­›¾[_Þ̦X“»3Æv'2êU÷6}Ü=1ü·Ø˜ñ1öàu½UZœ Õ’÷çÂåòÚ~¶n=ÕbsÀD:b«,y#<ð˜)¾à{»}?ªûÓ ¢±ˆ=s‹b€85ok¾ iI¼=DÜÇxd9êô>þEè‡iàà៫ ê7“>9Û©Ö'+'LÓÐdá¦ëLV>îîö. £3)&Å`^Žöóߘæ’{Y??}ÌVon×ó¥—· e’:avâÍYí˜=Gs†ÙbAƒš{œŸ^#Õï`kú§/ãÖ–2¾~69åfŸºGW¹·Œ<¡Ìm%}TÏí¯ß´î™[[UƒPfÑvXü®Ôn—çï +ðÛ…±éÌ=kæKs' kN›—ìF5sÿ˜«Ìä7}Ý +4¥í®ë#†ka?}Ét“•fš‚mëÖ +RÏz:¸0Øgó…½£ŸiÓ”˜¶n^ýŠq2„išÒ/'C˜&\ëó(t¦F&sÀö½yñ-§–jmò58M¾pýèb;ƒj¬'¿«ÿ.Ë iaOmþÌíd¬I`ú>s¸þc&s˜¼î : ¬ÂŽÀ“l‹ Ù¯Z;©ÜÖ³]ôÑÆ, @Gº¾iŸÕvOÒû§;ŒÜÙî$âôgT>W-kÆÛ™šõøµÿ‘¤¯ÿ÷´²ŸÛxIVØö:\§F‰ý5×ÙhŽÝ»îì’ñ=ØínŒ‘²·Ýš¹#류Ñü*µôöo ³áv¯f¥'P‚fÐþÕ}§cÿÝ+ v/3Ùj»jWaþÇ‘²ˆzÂÊ—º=e’[ì^©/;5l²¨:£Lç/L_tÒ;—j™–qeç{9W~uçñM1;}MÉe7ÇIÍ7FWSä ïÙùйX¹›¨pÝçÖä “û7—éÆÓþ ÃXXIbû>¯,OÊ<ïÑ¢éZ±§ãpX£¤»ÜÜþ[YhJ/]oÔ²|A(ùÒ˜uÍ,™ÑV!ïm†•·Í£]4”—^'&˜ÙþlùºP„°Ç8v>…‹Í ôÑ)–Îó³û“³ 7óýÚ­î±m¸óA.¤¢ $=Øçë˵´¬ƒ‡;;Žßw°…ß²ßóî +”ÙÕö•ë3GÆ-aJ+S‡Ó—`¡|_¨Ž/.s…V4*ÜÖ,Æ#­Úº}ñ˜O;í}Ϧ¶çϲêék{©²8ñÊæ|4-C^}{E-xòZ©ä–Ý´sß|”D2Ü«Ãâ&ÓõÊÒC·Ò +³ÞÆLnAúÂ;F¢IZoª{ÌôíãBaý‘ùq÷¤<˜~-4z`ì1ò9ט>²¼—>ž[gëò8S—¡ qæKݱ۴3Ÿ…Ð +‘GõJÆx)—­³Óë3Ç^ËnfŸ~”ÇÀÂ[_>Ôor;;ËcÞaqø3¦Šùõ¥ëS¦vÚ‡³Š6÷Vb\þê…É܇fú¨fž˜pñb½=}1–ÛÙÖÙgšQ UœÚ\Ù'·ÝúH’µÌ®äMkly®û³j­¾Íä™4óVX.”85züÉcM‚'q>ÖæFÅÁÄìʺ=–ÃØ6ë¬}\n,3m¼ùífÞwn.–Ë¥“E­8s©Í«'Wu¶.ŒïÍ£&ßoî»…»ëîD[L¢m4_Ÿ;1p!äÅVà!Z‡…ùs¶ð§SéúýcÛãmo´W”RŒE Û3¦¼Þt/“Œ­vý·Dcçé“SûÄÇû²þ¼ËfþzpY–ïΙˆj*í´²ü½)ùDY™Éå“ÜLu¡´g @¾Åa³Œká!¹rѧ6²®”ƒ>—Å|ñîy.]_=(ÜM]k°~æ¶Gx¢ïÛ›¥­ýÍ#kñâôžÍ¥Rà*"#5Î-¶•G¶úLÍ›f~ʾzkqüz¨Ð"Ó½Íïͺl×Íα=tÒΗV7YW§ÍoîiþÇ7÷ñœÙÈld›à—OݤOžJãÿ[õÓ4HIKìc a;‘Ãúàܯžš_uQs¶ƒµ äŽüxì)?„“Bñ JKƒš…‹3É=ôÆ©C@u(ç­Y¬‹Ô÷9hQqƒÕúK­ÝI•ü’Œ"Yo«þ’€›Ô¤<=%!Oß7«Rުș;.þVÙëÖ:Õf­’æCÊõÌ~™u½z{ ™½mWá“ö€fÍbçÉ ‡ìAгtð>8ÀÝå–Ä» ´”ŸDFEήšwöìÚÙý‚²0»7?»öÔÑá/ÍX>\Ô½‡Þ_øbI_;éd˜Ž·ñ²9~´RãlÕ{«Í®YO£Ó߯¦Fçö.r#ÉÑù´~2:w[>MVÔѹ§çãÑÙÕ—BJßuÙ£F[ÿvˆàµý»Ueón{ çò^ieºùÙ½ÝóÜÎÖè±x›{I-´ÍM÷îdƒñ´üy¦r´¾Ð~\^¼>ØssW¹µ§¥5ÕIe¦_'޳×[µ\þÇÝlQe:`ÝÍNr ï˜èÿ0¹ÉæÉLcst¶”JÂÔ~ŒÎi…ãÑ©Íöü¼äS[i&ý©­6§—›lÜÛ¯|’Å£L`º4¡7\—ãfO£ÛJ¶íê'Ú”{ùM)O¨8}é­ŸíG‡Avº©Z{OtëlèçKãìçF}{ÉÖEL}·Ýj-µ¯Z×KûÊ‚q<%/ÝPO»s‘@¯3›±@™ =/Œú`ƒ@ï[7 ³çÑ@¿g¦ÇO›µÝ( íñ+ãIÁn®Úõ³h ÆôÅìRi/ +h«{·85“\½‹Ê,Ù‚²¶3Wkü›³ôàÆ½ü©N2‡‘3+4“ûÕ½#:’ U6Æ»±@'·w½8ôž¶~–´m::’d‹3v®'ÍÎ$ûÐhô¬êâ·Uô`r2´ªÆ‰½QC l7Ýçƒ@¯[×g÷Gh,LJ‹·æiùq!èÍüÉ÷X öÂÃñdБd«µ<:Ýj/ζ£æÚvìA¿=@Û“«—j Póiz2SÙ@ #Éž¹Ó׳ËK¯G‘@Ç +EsüÍêîEU +;‡™( #I\Õ¤é˜kÑ6.o•Bãä$èÆ·•‰ÝÊÓi$ÐCç ‡éAðæÄühꉀæ¾d ËcÓíÉõ9DïLÐÍÛWóm¦©0 vÓʹ¥²»õýšÏõr~*D¿¶™J]E5®2Êîë¡ tk¬ëì^–˜žK@÷k•ÍX ;©·æ\ гÊñî[7”A!°;úÍn¡°6 ôd«º ôxÏ:¹‹šSΔ—A‰œëîüøIùvf)èÙÍJ;èÙTå¶ +P8Ø=å|~-4?{¾î´²‘@¯æNnb>ìfPŠEÍõ§¥\ïf£~?­¾,&¿ÏE½¹¹¸ E(l£²6õtO¹Ëïæ¢NÕ±‹ÎáVÐVëûü8Û•ö^ŸmšYw&¯ÐâXg#°iF[]=«Ð¹ û+So7ù‹ut¥…@™óÀÎ.6.ç8Ðw&4ùðcŒD¹–¹T·‚ìáHÉÿ±@ç{eê÷ù‘ä·º¾tÀÀf;açóÏ)º6•Ÿ ±ÂÉò,çIú·ÅìNVfWœï?èÅŒ¬•[¹ÜÜd@·GC@GµÌþºx˜ +Íô¹±’! k§»»Aô&ó??5Pª2%ê +¿×:¯£Úbý>æmwbT/¿6£ßÓlÓ¬š| {¿ç}‹Ã^5æëË%¿¼Ÿ§·=ºÀÕŠ²»®køÖgïþ®¼ZSvÖŒÐ{ïmZÙ-ïXqo³ÊÞè¹÷6Ï ì—¶ŽâÞß*ÇÙ—NÌÛsÊñÙøhÜÛ”r²¾7Å1ñÞTNGßRÑ_/*­î¨Íßö²ÇMåìtt…ÞzÛLâcÛÊÙãüZè½÷vW9ÿæ¦ãÞ~Wέ|6îíƒr5n_ǽV®/®fbÞþ´•ë燹¸·®rsº¤ Œõ¾_Wn­[7æëÛ–ššÙ1cÞ§T÷NÛ‹ÅØý¸š™¸)Ä|}¬îŽmǼ-5Ôï/Z5æm™i}êåóÎDô{ó¦~²´Ü¹Š~«µF'§·¿ã[mruj3ø6=šÚ\_åëá}Z§6ºll?Ó×ø6;?s$[`Så“ÙL£ýøÙgÆÜ𤠣»JYϪ»ùí™ëc’uÐZS“ë Élád;Ì].OrWùå{¦²™T)›Í,ìÌÊÖÛ]²£Ñ žy\ŸDS¹ÜH,>ï[Øsê“ÊÂÊEöÆÆ–=Ku|¡ºr?ÍöÐX¾í.¸|kL›\9˜'!vN@“ÁšO`é4¢—ñ@Ç +å…X `%1KGâò2P¦Ú2K§ô®Ðy7 •'&Æ}°¨ý{@õ‚Aû_@7jôŽMÉ@ão>P&_ºwjJšk(jÿ1@­qÐþF5.¥5%­ï[Á¯Z,PÔþc‚ö_Ž +²Ò¸¬ÄΕIéËx  SÄ¢4Š[_ Ïõ°gUÇç8xü‹Óùâí–PÜÒø¹;\»éjGÜBÛµ|n)œZÒÖ-t™­=ù#ë;hP‡#æ"0ëïøuuîTóþù!ë¨)Z›ç×lº8’p« hãÇë¸s$ðÛf2‰ÿÀržË*0ë4 [²ñäÀö+`£÷iÕÝ8=`?'’üŸâ…¤1sŸ™Ø¸¬ñœš¿noøÓõ}J0äÕ|’ÿ3·× ìÞòõ±0 +Ì(ã=³ðTÉ%áFkÊ–l%E +IkÒ\~ŽþáøT£Ü‡h#Ot‡@:þÃç‡VuäüF£æ‡1KÒ ñŸ£¨”ÖéÉ{ƒÖï¶;#†n7‰ÆÂ3D¢ò9YC¯ßÒ,›ËûÕ§³¹Ø®F’C»Lì—Ía)˧+cÊRÔ±Ëwa>ï%ÿ2æ•þxé¬ ëI5zXÏå\3À›}`aG†Xì„â8 £ ŒÐ£é|cg"¤«–)·€hA­ïWs/¥•Jçt‰&@Éd¡Dvvߢ³¸®šAßøÚìÙw÷ÚÛÄÐ×%À‰´Õg-o»“L×Û›ó¸àT Y Úu7³ZNÒ” +ÿðÁ“#º—6Øü‚¢:@s™)>$1.¢äÙØ‘)ÙÔ˜IîFia¡% z®îŒ·ž%yqZýyí°¬‡Y¯“+í8Á4@g ÒâF˜«zbi$ùÞõ-o¨Åo“›ïÒžâöþ‹;:Y+÷SC IË\¹Ûq²ÒÏ`•†4;$oï·‚ Ÿ/ßú*ãt~y¨tïX?¥R¼=å'VŸÐÙså¬ÿ¸’‡ì,(PÞ3.ù„—:{˜|»ø$ŒyZÝg`ìaqêêÓ0âhïÅ÷l ?Lgõ-d¸j™‹›X&¯ûcåç/l<›!c°B- 7á|e³/“ìH]Mèeì“vå&œ‚ì¼ÇPžŽYÉÇMýÛÒÎ.âFXâïÇÎ;̾£‘d vnSC»âæâ3…¸ý2Ì2ݰZüpM)r(¸ÀPÑBºå‡p2`Û‹ø6òâ[´ˆê¬¶QÞ oâ¡d ÈHòÃÌã |‡6ÏóãÅüðbœŒ]·ë‘n8ö·Až·bÕŽ‘ä»ņÔ?hÌßr[ŸÆž·¼ÇÞ_gv²?ÊG†Fº¯+ çÏ5ù€¯om*×Qg2Ï…O˜_ûIó9—/ Ÿ›œY<?߆ Oȃ‘5ä5{„•Èzç ‹KþE*´ÁQV¾n·xŒÕ=л¤[ÆCÒ×—ðºÝÇÎëç’íõ¬©ä(ä!ì’eSSi#y”ü7Éë¶¾vv²7„{ƒ8¤Ò¿¹oʯú}¶”³ÆH2Î'1ô„Â25Âï32ÀKÇ–i»äèðûŒ$1æû| 1þšíXM˜’}¾ð4UéµÅƒNH•Ö×N“‘ÎDì~$9„2-°ÜÜù ÏÌÓÇh8éLû™ý”YÍ…z‘yò{ú™—ÜóâÇ¢;Ký‚•ÎIîO÷š”'ŸvÂpúXÐîú°¸qÅúô;ã‹EeyB[x—ú <¹×>÷93]ÌéGcÏïâh±’‹ÓÏàhg=§ÕCkð‘õåh{G;k|£ve¥ý¢ÿòÞ‡ƒø0'úÈÞï~4šHßö3 <šÔ¯Ÿ½b?Á8zyjÌ® ùŒÄ{¶‚ 6ÛÇ‚–¢tO·[lž™pP{6ÌB s•e¯¶bÏž‡ÔÌ.΢˜¬ï›={“¥½ËfÏÞýл™/%kMÇ*(¸jÁ ¦X3°Ÿ!TûØ^@VzýüjõaPGœ¼ìgP|\¯J}š@ýª¯Ú—…¨Ãl̆¥aqlw›f°U}q޲ð->°°†ðf$‡“†¬³!õû>Xèì—õ{8 {\>$ÅŠc{Ÿ"ÅX?Ã(¯ƒGó DØÏ0Žº‘!úQ‡†ýe¡ÇaÔ±ù_‘†=²pqjΗ…”Å©wZ1A€Y6ÐŽ–de xÊÈÓظâÍÑ*qW8}cÆÂ}Õ½~~ììvwh\¡½=8ÖºƬaWRdqÆYDl-φ·Tcóz®Îbmž!ÂéBCФNÉCl¯`Ò2—ó!±Ô91ØŸ+˜.ûiÑ‘k}ì}6²§XGôû6ÃØC65À66` +ºŠtæ óžÓèlh"Œ±Ë±‰÷¨q1ˆ—HÉCû#c6û}»_ðíþ!ÜÒ"hbˆAõu Ço.I"7åmñEb +·‘äÌ׳åV÷Ÿ6jgÅÛÜx¹›/¸ßÖo +'«ùPÝHòsrèúgÐEd }(‡®ÝHòsrèúgÐ$?'‡®]([ðÃ9tý3è  +ågäÐõÏ ëÉü`]ÿ :¨©ò9t@ƒÙ‚Ÿ‘C׿@ùŒºþtËârèzÓXä :O˜C Hî“öêÒ?>>èí]CŠõô²A +ÜÞk •/õânläÃþȵßðÞãé=˜|W,yüß\ÐÅôq<õdÙôFšL®>É`CÅãÎøút6(kàüHƒ"snèùE‘fp¿ ôÛþi¢á!õÉ|ä¹ê3¤pÊyGß—47¯¹Éû¾C²‘?–@µ6¸cCAøÞ ÉÎÙF©ÝäÙ_Ŧös³ø¥ÎV xOgñ§À˜öyÓ cAÇ/•ˆ :=núºz\&×PºìflÒnh«ƒ|yo¾\·ˆí@0œøÌGÜÝêÀÝý¸Ùߨ X|Œ½ÎÚ€ÝíëÎQ”ÎÚįtiXJßÒ(#òJÇádpþ쀊8écóĦ¸ Ø®#àchÿB2à4aPrìÌX0!#vBRµ“©¡Bù§r­pVìuû±Óå”û0€’™è|—Û"l*ùšRŸ¹H®ŸÕ«b|P{ÞbÇûûyr<ž†Þ®ý“´ÂDÇSè'@^†Ý0$083.fHá|ä­÷zdú É£¦á¤X< å‘>LR\Ÿ!…kw¬tÂHIú ÌëöHò—ã¹ôo‹Sßú{d¤3¾þfÃö¯xdBöþëö/{dØÔŒ©øèŽáÓÐÞ푉ÊÜîþ²G’Ф#ð oü}ùyÃ{dbýüŸ×/=gøä†¨¡ú¡ôœey¡WYnî ²Ü?n|eygˆ(öÁ9‰‹‡ÉA ` ¡Á½púÚ©=ùËNž\×9”ÈC¥¡M¿?H.,_v† ]˜W]ˆÍ˜W÷&¡ +yuÃäöÏ«óeÜ€LáÁ"\_¤J¢ä¸ý +Õc\O4”P5?5.ªî(ëì“óᆩðëùp,N)¤ïsóá¢l±¸c³Æ'dÖƒ€8tL$ëJN·"&’u>ÑùPtúLúxˆ«þ¹J§CGBè§odðÐ'¼ØOÐx~Çh|} ûùå{ì¥ç /.~ Gë_8ï<2Ô6Ìÿ\ oÃüÏlJ›Pº•)2ÓëS2¢”‘_Wè½ÎâwN‹ Mž|û@:iXÏöm>eð3ªc?}¶á°Ö+öóámèåçÛ/׺Á~âÏÓ£«iņYŸõ”˜T Mê*¢Z#›aOT<PØ©ŸAÈH-ŽÅ0矙‘zþ™©çŸ‘‘ +4ö ©êØü§d¤²~>%#úùuþ ½|FF*d¯ WZÊ^‹‹ëƒ òÿ·÷¥k©äÚßWÀ=ˆŠ2•š Q™Tœç DÅYTÀsþçË{íïJR35»ÏîÓ»ûi›‚ª$•dý²æå“45¢“áa:ƒq2ì ¦!C“I(œ7ŽÍ2ãX°Gý%£‹ížë2ÓP8œ,„à>e(\D¹rÂP8g¢ó_ +ç®U˜u(œ·~,¤|v7ô& +œù“ýŸìQ2Âñcc©…'N¨†›ú^ £Q ¡@Æ8¡Ð<Ì…3Épã‚#±…0áøeçÅPžwyö^‚ƒ›CrTpñÚí¨Ûñ`ÊÍ’ÙÃ¥?k1ôäá¢l”=oÅsJ®Oo¯ X"ž­žÅ³§í#Z =}\–ð§}|çF<·ÝÙüù›¬ñ„«ŸoÖ!ë'{°[Ò°C½;ô`·ýEÔJ‡–NåâVÞOvÍNÇëñ•ÎÒ_^!`~ÁnO¬g§¸ßMÓ;Â.ñ–?½óê´ëÓiƒ-ØxKg4áÓÖ‚g§ñëéÄkz³~vóõÍ%Ǫb‚Í‘îÉ'½šÝÏC¨ûözŽû¨å}ìÎù½Õxˆ?7kòBüÎcŒ(®&%ÁÓÙ¤ã@õӻ܎q°ûKNGy§FuâО¯ Ë1­‰w«’ªf§Ï•÷ k´øùy˜Òë¬*ɹՑóÈ©¬]ò¬$Y ·¿ºGÓ¹éâ½=í'¦s‹¥óÌ?6q4[SÁB¢FÓ¹û(Î:šÎÍNc=+gMçKç´ŒLMç¦gqä…›A4›®Ý"½Î(šÎ¹14½3‹¦s‹¥súŽNMçvhMïL£é܆4žÙxÚh:·õ3N±™EÓ¹­ŸG…©)¢é\šb‚j +G¦ó™Y4]´›4šÎ¥)n–3ÆO7c‘¢éÜ$¬XXCJèh:·žÆVÏ2šÎ­êÕ9Ëh:7k‰KMá)£éÜb鯤ש£éÜÂÇ–‘DÓ¹ÅÒ/SGÓ¹M†ŸE4›è´¼OMçKç[oz°0$àX}±Ùˆ9ŠTºÕæø-4îb¶õê܆äÏ]LR¯ÎŸ»7O•mm›TŸ¥ñ8ñ›á³÷i ˜ +ÞQÏ®ƒrR`èºÝÓÞ¯ºœÝ0yHšwT$röÒ¸#…/ÂøÌ“ 2õSÌ.ñ‹ê[Þ.m9%¢q7koÍœ­Z–W¡»H1knþŽöü“o…‹|nžçŠ´Q›åš#âl&µg¦£S€,ÜŽw^8‹kM,LdÕ¸sMÄry†g—Æ4î\ƒƒ¥Nü°½–µî[ˆ0¦ALçK“ã +c» PÞiñ/a˜–WŸC¸ z‹íVª„ÆÞBPeˆ ¦s‡ì>\Ù„ b2j +»‡2>'mÆPH ÆŽ1¼:CÒ |;›×ÊùÃÛÂR¿‹¨1®L?;GxŸˆ°Ù¤¦Òflf1®wC·×Éx˜ ÆU=驜ô¯-Ø Ÿ;Ƀ>/È‘2ê98Ɔ䗻#tŒ«I½kâNßµ?m…ZÃÁ€-j!z[êŽã{~=ÆJñÌ=³…Ãú6Hl÷ÔEci—ÃÓ>ÙBÓC”XéSœŠ%h¶y® zº›_òŒ‡üÜ2ÞAx™"÷t`ÃdG6ïêzÂÅ¥_äß+rëè…Æþ=î¹½+­Ã†¶:÷^>øáíVŽlº {hÚpá¹ç§4×¾?Œ7uÄÃ¥\ƒð€^´ ^µÔœcçTv×£Siañðƒk{áÑpC ?fý +Þ6²·§ž.÷’ò³£S£î[1Îø¶–=; OÖâžÆK7¹c«gtÛSõOÚB¤6.>ÂÜ×þùè»ÝGbEÍ;¥…ïví|/°EñYÛwÚ1‰Cd®Ë¦S×È$?\j?ÕÞG”qÐ…t›Ljïb³]UƒJ†…-¨µ¿\·[¬‚\†|ªâÙ]«<‡¤×öT×*OC¡Êº>ž°&ªª§c•CB“tUõt­ò\:×Ê,Õˆ®U>`é™E¥xhêyzCí'§Ñ+ÊûÙbFà }ÒÃFÝÙønz ?顽Ù(Âø Ê[O‘^V|ªÒÓñŒûÆÚáÊ%f»æ¬™2¡(Q ›ŽÖW{‘ùs°a•[8üõ©¿4Ön]›‰•ç"çêRM?V›EÞF8n²Žš×šDFVhŽùŽâ(À€„ÁÞ+µ(ñbARKÍ×K+”~Ìî4‚Æm;wÜwÐ>‡0Ýúìdä;~>ÌB„ˆƒïÎï¸&»Ò¬ “]Ádù¤ÂWÙÑóÓª¼)_β2Nc ?BNd¯è6ç6M ™³žÅeÙgž+ZF ?º çÀ’KüË›êç 7n’¦î´X«' tâ½K(§3Ï•O(`PÍŸõ³[Þß”A` NèÍ0Q+-|cUtÆ¢ký›bÇÍX`,Oø—4‘v3XO'ÊŒù¤… ;¹CËŒM6¿ËäQ€ac¬E†$\ßÄQ€ac­ªÑ£ýc8\ìbE†tñƒèu´xø*Lh›OŸÀñ+Ï阢¢žUFŽè3$[  CFÞ;q«)‹òEªÈ6qQ>GDê/*ÊçªU˜yQ¾ÙfP”Påëæ/.ÊG-‰+àE.Ê窅›yQ>ÿúȳ*ʶ~åTEù¬Z<¨ž'ý–èh‚BƒÝ«úÍ&7ÔÇÖ rC…¨ë:7ÔTuýü«úMâmëV×/ºŸÒ$uý\£î¦Ï å¨ëç¯òÎ ­®Ÿç +ù熊X×Ï¿ªŸ•»Nùì]×Ïß3Ħ¹š¢®_˜H®•ñ¬êg9_¦ªëçÿj.õ+'ªë76dz¨2V×Ïÿ…<üȯ®Ÿ¿½yÌ‹`º~Î5µ§Xž¦_x' ÿz|S'ÓѪúͦ_,&{Ãx]¿¥ø\"R'¯ëç_ÕÏŒš®®Ÿe{¹Tõ›,*-*›ã½Ç¢Õõóes°ïèLêúùGᆯÇ7M®­ßuý,­¸ ï$õø¢GẠåX]¿)‚ᵪ~öúÈ“×õËøVõóÍr¡®Ÿ¿{—Ë)6Q]?G'˜‰êúy¬‹VÕ/8/\˜˜§ÎÀ_lÒ[ÚgÌ»®_D¹rº~þUý¦ò´Ôõóß1ïÉŠT×ÏŸ14í/ÓÕõ󈵜ÈSÕõsN¥½ªŸ+?6A]?_&Hãa¦¯ëš‡™ª®Ÿc%œ€èÚÐuýü‡ (ÎÙıoÞ˜¥‘|çÍ£iç˜LJ#¯ÔãIï1‡j¾õ!gÇ{GØ¢±›(Ž}9¬7°8û&ÙÛT^™¾õ„$aFTw¾¿¡Í§Þ”ÁÃtzƒÁÚáK)?*n•‘rvÄ-¯ÍWÉM8žª™9Þïâ‰ëÌR+‚âËíæsœY}-gVÖ¾ÕLqåð"süòöÉÖj¯y¶öš+°õíƒ*[ÿ|i±5½´6w;lëãñ‰Ý{ï=³G;¼Êo¾œ²'ÃçGö”½³§íÕö,wšd/³')öæn~m·ÏÙÎ!?boùóeöv'y0 jùÁðúseðƒú§ƒŸŽ’.ËKBû‡#Û¹œ{yhî5wÕÇÒéÍåS<½”8ß_TVÞ+‰ý£ÆÖÒó[b~^Íï&Þº´w÷z^-¦õ@ÀøOöKؽ%KBÃÞÊõãã»Ø{ T¹ÿéŠ!ÚºøÒᇓ¶â¹Ê…`)©Õ,T<&« Àdü|ûÜÛ©Á`7—q{WíM…Ôy¦È/—Øze»ÂÖï·ØÆÞîÇp¡-ÝáÈÕ¸ÖßÚw-³ªì^±ùz'ŽcØÚ©Ü‰%H™?6¿×Ë:èÉN>¶’}·ÉSßjy5óô±ÎÃh)–ˆ§Š»B<—_>Å1·ÕøbUÉdz©R ·ÏÌïâ°Û]üÃz ‹S¯q; +|:úBÙ§§5øtúMÄz6ÿ6ϧùEõcIJI&O.1(&µO¯½4<ÑLÑrËß|™!—8ël!™Ã_ä´ß[‚Ö À¨vÿö­²yq“-|¶†åí³³¶y·y^冷¶Q–íßêÃÜNgªÙÄO=ÙÜÜDÙÄñ>÷-? ã'ÆúÃÓªÞßZËÒÈF_mb…,ØBŠ}H& úw¥ ¹9–À··Q­](ê?ÕsF;mâïßµò”IÊ7öX¬ÎйË7N8ÜvPn¤j 8á[²ðGîÃåfÎÐÁâ…î˜ýCn‚·pyÈr7Ã;ðå9m–_?îÓµâR‹LJ[¿‹Í,þ5c]ý‹=Fë…¯(¼²Òk§7ž¥ú^å]YP,ò¾QJ‘6f×9ô>ÐìaÞÑh,1‹fOX³Yédµ°Q>YZ¹Ýx–·¿ÊÇåþ±$¶T®r•n“mÃ¥îÏ_ô-pÌgj§çM¼B·Ö•¾ke¥ë•0ðÝ!ƒ'+‹hRôSwþ4G>¢£4ùÌU.ù&fU.@(n’OÚ"ß=‰øüLâÈç„Á)¬Ÿ²L~€¶ËIú©»¸±ªæ­ËYöØtp²®ÿô$èôy)ïrǯŸÔ1Ox ?H—¹j¾[\*<õ—OêÅšðj9òèØ8?ÐÔZ¼˜®Ðù§VѺ/GWyÏUsWÅÕ¬¾ð<ã‚ï6ÌáSuüIi‚†XÏ»k—Z]VŸü´&$±ÄXÁn­@^#iE¹µÁÌ”~Ãåfžï¶×Çðõkƒ­n?Y¸eÁN6‘ê.èâ5VÓX*|ÈìfȪQŽ«Ñfð1±K Ôø*`Oœ]ø#Ÿ67nßÊ= ï‡Èl9–:ˆÿ +–ÒvÉÂÔØÓVÑÂËŽ+9·ØÇäCžX‘¹ÛÝZU“øôÀø­}F©¦s»‚穬xª->Ki~ß—å+KŸ;š ›_½ð("Ùýoˆs™ÝºeXøwôWôrÆÿ½üp¼—òÒ{I4))pI²)”y“—¹Nó!ëj¤°ìn‰ã÷9îö쬥K¬8 yWߪù—Æ^~ ù—ý«&»õÚOq·Åƒ-@ùjÝ}ÇavÖó\çòµÈ—ïÐìJV…1lVørm[õƒ®·¤£xXæ —ãms¶1´›\õ¸Ó—ýV5ž„,×y(n“1ðåÛ³}2è~{ Ý·¡Ñ¼€ÝÂy®’­à™HqpBÆp¿kÃΘ€kÑK¾ÞAó«2ÖŽ¦Vd2óøp<ÑÚ^½8ҀˮV]»ä\.D>hp©U³‹Áð6ݦÈÉXàKÔÌ}UÉnóŠR0wÛ&ÌÝã6Þm Ly—/ÀÞûØY„#8{  û’$çw”ï2ý¤¯‹È/ÅÕ*ʶ¿š€^× ÊÚk¨É¤«Þõ’¬{~k´WÀax+x-«Ž»MKðÝfeÐK>…²xøä×-"àÍÄîAfb-šr¼æ6t¿øºóž$¹Zq{‹hál÷"¦’“ |¨¥Pã䪖ëuüB2Wã‹MÀ‹—#w­‰eS}\¡»¯«Ø•@H ´—#[ʘ1²©²Ç,j´ÚyüþkZÏ“-,}¦‹u r†K•¤:ér »>®p©‡\eÑUÓ=ÄŸh\ÔùN6Vgر^`5ÿJ¢`{óbÞ„Lò]BØ­°‰~ndì‘)¤‰âú‘¥‰Íë,coâyí¤“®é²ûðÄ–ˆÊÒ ðòC„ÙøÒ%·eÓöL9µâžÙÄÁx?¶&šKM+&Ñ 7DT‚Éßå°¡ó(Í É°Æ߿ɷøðBÙ#àFÉÃ@š¼´ˆÌú;?§Åø­%ǦUŸ“w‹‡×°’B$ñŸ[Ä8ÄlCÊ¿±óÅ•C]Ž' Ô]«p²kÕ‘å$ëRImgŒ Tbó†™=7ÈÔiR),2“ñ¤’ëWïæâPo2c¼¼÷¦eâ~ît^ëô~o³ófz% í§-“p5àïôI( spž 6™„±W·Â·1mëpOx'k“piuFkߎI›‚nqלþê)VK,š2f·F*©ÿI0¦€1÷þyü3_£S0¨\\™SK˜;a|”~ôý7'!. ¯–Œ)8÷Ù4ûáöÜyíµ•|› ¹§CíE-3Øx׿ZN6†Ž©õº†ãnc€w Oƒy½‰‹³ ¶¹sqoÓd_÷][gŒ­ß4íVáý)÷ØQê=FLáÇà¶ÇÞãSî±ÓþÔ{ìâÓz=pì±»Að6½ô{gשtî1ß™xû™pG¶¤‹Ž“`]fÂo wÞÈg9Å|›èyLe¸å$‘õÏÁï?†·€MÏß&ú?Ó¼–«â¦•gÂ×ø™1Jû£¸\X7¼6ˆ/Ÿ>Û²dÞÝ}YNä‰fâ®÷v íâyªM ¼ §EË»þ(Ò9„yKÇIt÷=)‰ë üÄ­—÷ óv»_Z°]¦­—oÏß¶Ë7[î×·þÐvù=²SåÛèÇúûû‚m(ïKó¶Ë”m ïÙE]1ˆÕ¯˜Ó},$US(Š'¯ÒÎmÛy8ÇÚáÖ ïQö”è` ]'±bÂСS2$¥øf"žSrmÃTWÀÎ-¸Ì­ÑÕ_ôÖBZd1¡úb¨¤EàÁKpÒ46ªÐ$¦:jäÖF“¤zP#ƪUˆÒK†´hêÝi‹w­ÍfØûšýìü-G4jXŸ£Þ‹DçMŒšÎûdžXS–u}ÜBŠ«œ_g½«\5׆÷;\æø%žßÆ{ :ƒ®küRMjšïʯŸîn[tÐåÁ=V·±ëù…€²'W%®ß]ánÏ^Žò/ûçU¾\=oSÐÍi×X1¶L¢ÒêUÔd$X(QNÃ(¾¨Ybb-±Ú´}ù5æšbûÁÍÙŸbÜhƒÁ9Ι݈çòKmj±Ê\&Kñùò¼ŸŸ€f¬0ÒØÈR2ÃvŠÉ8ÑÉÕÀ°ñ‰Dºõ´¥ô‚éA7ôƒÊÂ2ÉCLFiÓÎ +|ä;£YÈ~W¼höèQ ø‘f?™eÝXn˜Í÷¯xØho<6Þ-ˆõMƒ8òVÄ«Á2ó„\­J”­j:³>axH&!â“Bš•‡ª•^ +—ëš½ËA›Ë+465Ø +BW€ZíõVà]H;Üígƒ©…H+‡§;DåøAm^ü`W÷rʶ?W³Öý‰Ï! + Øöš¹èÖ¹Û꫈•±m|ô\¨¤1#0m(÷2Æ‘wNOÀÕ5ÿdÝG~`!~©Èn¢{y¹ê„¦åõtƒK½·‹@rû»²ÄuÞ[ +ñ!F÷—Wø‡D ƒ71;J^`«¯ÛgîòÏŸÌ:ö/øòíq Cо>*0ÇŸ»Ôf±G]»Ff”¸"²Éà Ír;|[¶¢.1Ú¯¶&nO±ú•ðGÝKÍ®ev載ò«8x`Vkg•·ãrSºÝͨ"S¨^ÖW¶ÊM>ÿDΜñÓÎÈ e꓇ñ›åªŽü»Y‹uU€¬]¼@¨^4zÑý¨õœËQÿ£îâÇ5õÏÀ¦zøWÎ;³r:P\ñe^7´7— /hb ¦Ÿx d‡’}‡ãMý½ƒ "ÈgŽ;dd5°Â cz~ +itqïÂf¸ýù “]²Q—%°†‚¤Ý¦½èû÷ñÔ4¬–ÀW°C ;šh?¤·ËÄÈBö'œÈúÍÚv¨;¥Ô5„8³Øéü6e n%yáðy°¼ÞZ#~Úqc.ùu¹¹æÊ´¬syV§ÙrvŒ{^3 *ñºy^™’ªù—»n5Zó_É¿lYúÃFLûÞàòT†‰iî» v~ûÐ}Ø„”ƒy„9b æ-EN1«'‹'×àôtu/Òj~û±;Ä _°€ñ‹Å £úÏ//0U‚€ñ‹Å SšH¼`>ÊT?¶b/.²ýY‹xÆ\Ñd¦âP¥ƒsùâ…Šyj‘}9úÂY`;Ø Ç °Â/àõ8qöïŽL~à:÷uɨ•{åô!©ÅÙ +d9ã²dÇå„ÎÈ\¶ó/ÙÖº{ÊðNpÉ‹(IQÂ)aYàÍ ÎLÀæióÕX”]~N…Gí[¶«y=³ Cï|£Â|6jg%¾]Xúä„rö‹-+´¹`/w;+òm2ÄK‹¼Ë.£q;è'ÁÝ”BôBéÅô‡¡Va8Ûp/Sz*£æb‰¥Ÿ€ËDZž+6QÏPyÃêåä"*Á¡®§_½x·ú-â'Æ0­qÔ ÆF¿{ÒAoqMªì§ænw}Uë%ÈŠ@°J„†qªybw4\ÑÛz›™±ýYHòæþ$”ªçµ¶IópJƺñ ÊËOÓ¢l£&ÖÕ‹$æÍG}C5Ø"{Œ—˜sˆ6ÆðVQ]Õ(ÍÚØ—s’q@©¸Û¯U*mæáè(À¡•šÁŒäAƒÜùŕږœ€6ÊTœ—®=Á…@ æúâ›Àí4ÅJˆ UzƶJ› +â –] øh C6¬¶>à8mëD¯ÅÕÒÒæ¸Òœ%ÑØó0··ÛÆéËCcÛÛÀçêTîl.6§VšëÆ=`/¥¹´»ñµT¹Ý¹©U×3wnR®*ýä\)—»¶<•`6ªŒ¢sh©ì½8•Øð.v5¶«Û8‚£+±ñ!ÃØrÑ–Ø‹™(±aÆìjì_¢Ä¶¼K.¬•˳SQ²Á—_v›ãú1låBM©¥âHƒUMÚS€¦ûqãèÄÑ*áQ%¾\\^׎ÎÔJ‘ë4¿€ s¯y<Ñ{ãGçë‰åY•±mÞ?©’£ë¯ñÑÙÝFYuÄA³µú4G§-¿ed”íèÜxظÙÊ·ÊMéx«®üÜÅM‚ÓrCyJ„³9:éù2™;ÒÑIôü¡5Dù NÒ vuwF먚ÌC‚ë¦=:-ZëТèG'¦}»†hGg_É¿ˆ‡ |±d„ø³ž7„¡ånWV°r:åV–¬G§ u»{ÆÑÉÅßn¡û«Ú6T«ìváªj¥}rxb¹r“ +®KƒËº~tž¸êå°O›„ëå¹ÍèG'9ÅBYœÃ+—­rž¤4)=ž° Ò{_¦ÑûŸŸ€‹­Öì½Ôç§³—3°»¸±ÿ1…•‡8Ù{¡…ш”¬þtjÜDJ­o>jÜõÂþhZþVÂVžìj›te+Ï9:©'H<\æt©Ô"„Z'5ñ3\3„P2Ex—í”|æv–bþ·‚OÒ5ó$!4Ý€› í¶ +t<Øõ?I-^73·íXµ£p–~ …Ö×…óººXjÏšRcVZ],llÏÚàKÞÏ»—É(õ¨ïF©˜^BèŠH4KP®7¥Æ¿Äàâ ¢SŠjpYG[ÃH”êfåù–á<1+¹Pê¥Æäž~¬b{ì:9Nñ¥bSçòU"RòK/·¸ª¬¡Ð…SµÖd·Ñ°¡ÇŽ·6ƺÆj,Õ$ÃÂ’b±ñ¶†…YŽJ%vu®!%ÍB¡ë©ÎuËC2b….qÓháüMÕxNɶ¦qÍÀ˜ìcka£ÛZÜ,-šo—­ÅÞËDž—ØD¬iá¢K¥Ä½`,ïÀ×Ǻ™<ÁÔé’˜÷™juÝtº–Š9ÓiuapÈÓ±Êê¡ê£Õ}äPãé¡/¾•×êŽ~ðù)a«KíÑ»åÚÌËÄŠpÄ¡Ê2­¨ä£ªK˜/ûÆ¡ ,òÛùš™M@‹êÆ6좢V•òΕü`‡¨¢Èºì#t/}”&t¨ +áNå"½z9T¥n¯ÑÁQg‘(u«h>:¥N`ÍG§Ô1«(fdÔI)žM»%s ^7z:‡?ö—éì/è¼H´¿Ø* +§f‚ÝÄ碂èŠÄþÂ/ñÛ[8ÝîºÓ©IO­¡À©X¾£µtEâ—ÒµˆÏ›%|»Šr‰Å’…Äÿ"û‹¶åtƒ¡_6C·\†X?6Ûl†n¹ µè§f3tËeHåýYf3tËehÍÙ5›l†n¹ é‰<Ël†n¹ c‰Yg3tËeˆ×e¶Ù Ýrš¹:g•ÍÐ-—!FËÙf3tËeKÌ:›!ë’Ëè“gšÍÐ-—!¡Jïl†è¥W±j‘iøÂÖ‡FR°ÂZhÄüVŠZ"´[±à¨bpTDRãÇh\„!É·‚ĤÖüYý"â é +Z<4`*$¿u`*å°ð•ÂÀu™YËžjQY½}¹¨g5»rÍdÿØ.]i—Œzàqª¾í”ÔÆÍíŒõ»V†úŽnk9þÂòzÂÀ:c08Zß+ïóý:Ê-n>ë{7eMØšg´<‰€hZb2®%›RR=g:ÀPÓ’îÒc̶)…îÚ‰œÆ•ÿßZLVqN–Uq.øóÞì ^ž^úsÙØJ,_ÞDè¤ÿðYôzǽÿU?ï>zýÑ\a._>ÚØÜTÄjïþó¡7—¥ÞŒ²Ã\n ïÅb¨R}ToÍ…ÃÕnõ‘½Xsò­Ë_Çߨ‘¯I<ÿ¾|Ïrõ£x²9ÌâË æm*`Ç”Àd§§ª½Aå§–ÙiU·7ãG±z{Ü>¤vVé–òçb¾Y¾Ü®^ÖOJùû©Ô,V’ÐI ;á]~EÒc› ëQ-›€µ!’›pµ&§Ì¬o°¶š±ü`®µ ëÙ}c…ܵͼ•²VžÊú{È–¡|c5ma,=76²¶È–¾±X•6¢/Rp”¿þDäÒÌÐi´Ý!u1à»:9ÏÓ&Pb|R¨®^Ûƒ¥ÝßËS†W€ËD9zDG‹Ò°0z^´ÌÍ·z/¬ÇáŽ3£¤ó˜Qõ<ñ>Ç–V‰,l‹º€AZLm)ªÒ¨—–{ÇÕ͇ոÎDœ#ý=橊1–K½w´íuÑ,,e{ÝíQ@ãÒîNòÚ¶¿n†âÜ]!툺kskê&ku×Å>ÆÚç4¡-íÛa޲ ¸f\žë<ãÛ«j# K`ÈKðÃoù¡ç;ð.„ó¹ÝùNhïòö!…ÊWMhß`ÅÌ?´Þ™É…Î ½Ük›eÔf‰C |ê"ýÓƒÉÊÜkgÉèU8:­§Sk+òin~§~»“Pµ¬X`“AÈˈ˜Wjl][í©ÖGÛNãÀnê?8gñä>m×ÏÎã©Ýˤ†›?…} ©MÀÒõãxêå}-žë\c,Uí +Í“.Øê…5¡sxi3óèK»©ûqŽw I3¸Û 5L@ËŒ†–˜Y¶ åÅ' ââ–Kñ²ì-7Ì îg ?š914iìK¶!fR¢Lv«gGl¯ŽÕ'¶u]Ò¡•âØF\ßü"Ê’¤Ç œ¼Qf$Û–{†˜Æ‰‰"—ÉŒ* +¢óØ8Iâ#êi/cñ`xÝø‚9’ŒδEÁӂئȥծ0r‡ú&Ìvhaú%Ê™šÇ2ÙT‹µ¶èÈizÎPÕvΚò^Ù¶ø4“ï⣤‘@i¸?–`RH7¡YÖ3.®~ê‘2¶L˜9ZÃ…p\R½àm™0¥…x¢²XÕ›¸·U] Tò–Pý¼l”ì©wûN?ÿ²vR#ÌÞhkdŸëß~ëß] ò/{}‚‹Å[²aÉ–³¸¦ÊðC ¿–ú’&`|N—ÎÒ]=%b2FÆX™…’”žœ…Ò@TÆ%#ÖpÚR0ú%`D!€¹æI2rˆ½)_ú$”xË$Ä Ú$ysðhÞÌ) Õ¼¦@Ïí¶^xëë“NØ'!—‰’t| +VGSæÝ¶õ Dœ·Z,ž{6Rj%Ñf‘$uÛJ>éL©ò7@²­†ÚcM ùLØ1Ðø‚ñ& +Éìt¯±ÁäL’Š%&y“B>ÄjøQ%HÄéiö4Vf h3v&°:1=»+áÆ&¾6X××9•X¢G¤á|£YÑb œñöÛrg£òÒ"óNìépkÝçÝÎò”{ ”ät{¬%0fž{Ì·‰v‰v-?'§Ûcl?å±ÇB7ÑÊd7ˆµòö=Ö–™iVƒ(–Ü€=¶‰Fk>˜\ÝÐ,h˜á }îch3îS‰Ç@òl®0˜ï7è¥ñU˜n50Wë?•ä|ñ{f®6ÆÆ µæÆ§ æú!0†ÁZYNä¦0bNŠ–&îÚ‰é΀»§LF?‘}Gá3†/佩cÐhß9ŠûE97ÕŽ¸Ï­2æTZÐ2tžqt/m¸’¸çÆÑò~}sÝzÙÜ+Y/NÊš RD¤NNÎQæOÉÅï…êz¦s^ýé6Z7[$w¨æ ^2O×ĶEõÖZå’|,›Ä%Vˆp´èÉ-6¹i3..“b¶Ä•‚š¨_‚XÈhR7ÑgÀX饿X¶°L¤Mƒ¦'Cìµt +{fưfjš+ŒÙáÚ|Æa rsk¾k|gµ1dÞ?XvRc3Ö,Rذ¿ô±³¶€ÑöA†ÞDƒ·ÒAÎi°8|ÇÐ[`CRÞò€¥Þë°Ÿp³Z³FÊ K‰5ñ˜*¸”T0&昱úX¼%jY5Õ.­°§‹[–ZñG\;jªh6£NæqÞ¿E·öb ßY«×`~aXÌœ¬ ¤µa·,ß<$©Dêò(®k#¯L=Ú­)<Ç\êçáMõ3ËfáªÍUÌGžÑÝÍU/7©&…«Þïiéêï'œöéçªM½6j©nGûÄ=a¥Û™¨çªê\–p‹— ‰>ƾ4×ù9ÔÚ¾M»í’³ŒævåáÕøA°X.­ïr{ß0#Ž*ïÌSº¼ÿØrXS 7” £Ò’Qɬ¶Tá?›†Æé&¯Y°×• ™W®DíSµk”¼»á),~”£ÙÛ8¾©WßçïˇÇ×˵»\‰Xœ‹Kt­íèKÒ­´ÌêÑæk”_bgR ætõ®‡6›jh±€zh³©†æâ¡a«‡6›jh¸¿zhãÕІÿo-¶K`ke§Ö°Z*c‰|sÔýàÌ›b§Ò{zé·ºÿé bhŽþË¿ø¯¬Î!N™ãD.Dümë.–$÷ΡÔ\«cçʵX¢“/FÕ—ûÑËg¿;øÏ\u¾Ó:Ù¬Îæèx`e. Cb;p7ü”Â6Ò ³ƒ›ÿÎÿ?ôb?0ò|®Â{1vŽþûŸµ+4·cµ‘ƒÿ‹-øð +_ý{±s;sW7ìÜnô0ÆK#Îå8Uÿ}Ä8^5/[ƥȓKýfÇ¥vóÇË\³sùÃ^÷}.Ù}){÷£nÿé½W(l|ú½Áa÷áågX(ðtF’›ýuß_Rsù“þ 6&/ý§±§?úðÃñ¾zÑŸ¦}Ûž 7LnªaF}Ú:L.Ê0ÑTÃŒú´u˜(Ê0Ù©†õië0µgÑ\¾òùé2Ì÷Ïû·¿ {þoSÆÿ£·ðsùÍþhìŽÍþËè¥û~ðÓ}tû#z¯ z´×ì½<=k7!Ž÷¸ëìåaôLoR"yÍ4à]op®ÝÇÊÈ÷¾ èÏ­—õŽž»x¢ö»ƒîÇP›iÛ£îómy´Ùí?¼÷»Ýž{ë$Î%ª2`¶±‹ v5È4±Ùèý½>}þ£_ssyü\¹çù¥;Ä#Áî*,ÏbÒ\25w~;‰©Ú' gýàUe‚|¬LPSàó²¥_"-ýfÇ¥~óÔüƒšPó÷BM^ñGC 5eUñ\‘¿j +%jJŠ 5%ÅŠšÇÛ`Òq)ýá5ÿ æÔü£¦Â +ÿ+¼&ÿ¢&Ï©VÔ¤—&j*‚ &í—úÍPójþAÍ¿'j"–ûAMî¯DM•µ¡&¹4P“DL:.µ›ÿ æÔüƒšSÔ”¼Zû»¡&šjêÿûr`&/qظ£`¼ädFæe™G*Ï‹ª0—C +b8Nå‘—EU–çÞcGã@ŒˆNa$ÀPq,B2‡Ÿ‰XEdN%ÈÞÜp6½Çx1X‘Ì +HdyáÛýä$$òøÈMmF¾Çð2¼‰òË‘ "c$¬$±&=$qž Ä2R‡$Ø-ÒoHBc gÙ‚:Â&ñ¼ÉÖÑñþ¬T ؉<ŠvÒ´`Ç*Ë.oT°£›KF„ד–‡¹EŒl°±Û"óœ Â'|ûðz 2s,ìRIFŠŒU¡Sà9Nd1ŸøA•ã%ÂÂqŒ*«ª ª"eá8^a¢p¶ó€µˆÜØht>ÞEÅÿ:ÚiEF…•ä4$`»—?ÃÌB›p>“Î"—–ÿÛTäÁä‘]¨Þ&þ Þ 9Üý£—ÊàîV Ã9™~ÀÝÈ,9')’,É¢¬à%²nŠçĉ>¼ÜÇ"E°PÇ‘ý ©Œ(òþB ÌéM‰èÈË< ²„xYRŸé/Á‹HEA&76<¥"ûÈŽ¼÷~2Of2 a@NV ¹UE5p«Â\rŠ·¢* +Ãï·Uݸ(ëv$0cî˜nj‚5õ€—?«`†[1PãX$V–X$' ðÊ 6,ó +Rˆ¾Ê‡cáajT¤-EVˆ¼¥ÊŒ +`8/ +}Ïfʰ"ðFœÈLNúã1Q4ÄÁ G†–áY©êï1ÚXàÍ8ž“Y7åˆënU\´"ν**¯¨*²…ürÿn|‹u?š£¹Âû ÌDK:1ÂüƒÍ0bX†G¢ÁÁ’¬ðº^™xT§ÁãÃÃðXzaE8AX%ü,ÇHVÇäaVãa0Ǥʼ¤qHð‹Ì(À~« $iŒN@ÃQ‡­þ%PàVÕ†"Ë0h²ìœ»nT5H·ðû³Ú^ü‹¾M¸QØt™h='—îŠY EÍ»(’Æ»(ðz0oœ¨Q1£€$U!éï‚Í]<ðs²Lù^P, O«ˆ@‹¾{Dݲ¦0  ,Ïs,xüŒÀ¨‚ÀÉ‚!ù„hxÞE%`Æ~lÑÇ̶(Š˜! ·W¡@ÿݪª Ë‹<œœˆú„žÜ‹¶#MÀƒÌk“-êÜË?xÙ, Çæ_dº¤Ø~| B‚fNçà…9øŠGšÝ‡A HV*Ì8bE*\) ¶n +À÷("’,ü‹ÊQþE’@ „$…0"9@o@$ɼ¨ðª"è–.ÿ†£ó/œ¬‚àõ`Œ6Nfþ†T".X–Gˆe$  +YD.·ÿ··ª'#KFå9˜ Vtr査fxááE”TêI9RíR`¡~Qâ­—G±+3KþÁâŒ"Í9¯Iü¹("˜ø‡UU€AoF¡KþäGªÈÛÚ&Ïr¼¥Kx€“­#Ð.épõ‰²¢ +2+@ÇÊsc_ÐfµA®R9)Är"¶É=à Nò«Ì³¶!iwˆ’uHH¤ž6`ý2ìq‚ÈÈøK•eybø§-|'U^›b%ÎÞ6_ÉÒ¥±hú]Æ¥qŽôá,þUQe–ÏìWà¨ÁÏÊ2ª‹ Äòé ú³ígÛ?ζVg[`kCxÛò‚WTÕÛvì,ýÛæÐ3Ÿ8ø’S%ѱk˜m±+-ó +¢-ó‘±/ÌGú!ðÎåú¢ýA´?ˆöÑ"ðñQ]Óä C +\EÄIµ€+Q5¯€ÙäE5ÿ‘ô_ЦŠÈ ý³Œ-h÷1튰°ïúðªêœK["ÆZ­GòùÞŽH%ì7Ò/¯˜Íé¤'xN»”í9š޺í}ïcÃÉPyõ¹ÂüaïÄÑyì @œßý|tß'ùãä¦'7ù8¹HãDÓM>Niœìtãd'çéy5Ы^¸lÁyY••0(/«’ž¬ÿ6ʇuuvqb.ð®³Æ¢]4ÉôASÃH¼cÝ€ ï¼ýE¯$ÙÞ©îöH?ðN/ x§—fÓæô Ò“ït¼ÓjСÛÞ÷¼ÿ÷?ðþ÷…wÉòÿ¼+¿> @‘ðÃDÏ1b9NT) +uªU¤ ?nx€x(¢ŠxV!ñjÀФÅÓqš–»a³šv©¼(p‚ +þ^d^y™žW¢Õlt'Iüõ–¬ÎÚÇ¢(*‹ãÖC»YV +¶F ,¶vˬ*óHpóíûo[£Æ5ræ&É_ß)~–ÃÉÖÒåúÏj…Õ9ˆ¬"DÔ9 ÐùYÝWYdD$ršu<œ¶Åp¸9DYfEVV°Ç ÒƒÑ|žÀÀ#4;%çpt1ÎH8M\êu>WtN$eì€+ñ´/•yZ¤Kn +lt‚e`9>ðèø+„[m,¬‚×è²á])‰G!(IdTAZ’˜½ß”<8=™œÞ)¾ÂíDk9±pûO^- ðqQ/tBhÏd/Hâ¸ÀÃÍmWµ*´dU­ÿ@jJår±Db¿ûÔ;t_àÝcOÃî¿zsÝ~7Õû‚_æž½! ·77|þü7þÑoO$j{õØÿ.æ endstream endobj 53 0 obj <>stream +%AI12_CompressedDataxœì½m“·•&ú ò?Ôý0öư:H݉‰èê—Yíµ-…%{=wbƒÑ&[R¯›lN³)æ×ßç9²2qPÝÕ"5׎%3,“U¨ÌppÎsÞÿáÿúú›§¯ïþ|ýbØö›îþáìþúêáîþ‹|ºùòööÃû‡{~ô«ßÿzc¶ǠÓ/ãË<ð×÷ïoîÞ~±±vÛË——üõ¯~wóꇻ۫÷›³«û‡ëû_o~õk|÷íÍÃí5¾}}uýæîíöêæ×呸ÇùÕ¾3öÄ„7þ‹Þo¾þ-\½ýñêýû›ÿä×ã|¶»ûðöõÍÛïwwÿñÅÆ…Í ×Ûýæ…ñ|‹ÿ~óûë÷O :¿{õáÍõÛ‡¯ïï^]¿vw{wÿþ‹ÍîöêÕ___Þ½}ÀÇ__Ýâ=ßÞ½øýÝ›«·‹ïw}ýúúõQ§_ú——7·×X–7W3p‘N¿4öåîÃÍíëß}xóçk,˜uŽ/å%þðþê{LVþÎÃË/ßà“o®pëïñ¾ýÙoÿõÿY¾9'_¿ú·ß_#û†uý_¿Îw¾¿{÷æêþ/üùæE˜ìf4vÓ§/¿½~ó/~-K5ôãÖo^ ÿoù<Ó‘qØ¥ÁcI'‡%éÛý¢^ÿxsý×/6¿»{{Öáôþá›´‹Îõ}úoúæ÷n¯ïÿðö†+hùÑ”â·w¯¯oóGòûËÛ+™¿\fÿß4àÛ«ûﯰów·„,cyú7W?]sl@x¹Ã"½ÅsÞ>àu_Þ|÷òÇDÌ/¿øÂ„4lzùÕ»ë·ßÞýQ¦ò"®…6vc±Îpøn˜ð¿ùÕÌþ¿ùy§·8 o±È噟úo_¿Ìòúõò!^ÂG”5  ¯AR_Ýß`¾H‘Hí_îo^ï)-ØMLÿ‘uÞbAùǘÉö“Žýd’?a4>gù$-öû³(›f_žývq +úíˆy`ÚgwoHsïɸ«8·wß§ïæ¿Ë7øõ‡wÝ¿uÃtòïî®ßãV·×›i<ùþþêÇkðŸxrúúæúß¼?9½Ç×'g¯®_ßÜÞ^\\½úðp}ò»œÜ듯ʰîäó/®Ò+¹ÛÉÕ«›{‡ïn¯ÿãäj?&ýþJnþªÜüZ~Ù\§Ÿ^/~z=ÿô&Ýþ&¹YŒ¹™Ç¼•Ûw'wiì]{·{7½K¯ò! ý†~ØíN>Ìc__}ÿýõýÉk¼àõõÉ+¬÷É{Pô-gñþúÜÉŸ?ÜÞ^?œ¼»ºç +¼ûá¿|ýç[¬Ò½p%ÜíõÉ«»w?ô~x8—z}M¾t’Þa~ÜöíÝÃëëïNN/N¾zQòC7ôRéÍÍÛûAåÿº~{òæCýq§Æ•ÿ¿»ýÝ5nuóöšsõþÕ‡[þ£ ¸Âçùéÿþáú='ùúî¯oO®ÿãÕíÕù+¨ëæÕÕ-~0ÿê;ð®›·ú5¾Ï¿…ìƒüîaÿ¯´×··7ï8ó÷ï®^]Ÿœ¦Í8ÍÄ–ÿïâäŽ4òö5^éäúüŸ2–XnZþ‘î)ÿÚž>|}óã d^´yÍÿuþÛw÷WiG/>ÜßÉ›ÊI™ß[þ%·ëN¾»Á„3yàÉ'ïðœ»×$Ùëý9ûóÕûëùåúðÃ݇÷ ‘îätA¢‹¿Ÿ&ʸ˜_î"-Í—éó/—äúå<èË4è«4è«Åýʼ¿J#þFüay›?¤¯^s§=N¿NñæêÕ=éRN†]½’‘Žt:ÑÝÉÞ~uÿáÍíÕ‡œC°å¿œ¼ºÂïºo/„/ûÿñòÛ÷—{)9$±tñöÕ¡Ë›—kDQŒ;©œT㓸øöÿM7?,·Þ|{ÿáúÛŸÞ]wÿfF“5 Þp‚å¹þ÷W·øÇxróö;‡Ÿ‡ŽK"À3ݰÞüGg¢áÙÃÙ¸¹º}}óÝw'˜Û!'ïîï^xÎpƒ;>Çáöq:ùêÍõ÷W›ÎLþŒ€çhc¦prõ?øüS<9¿¾}¸‚Ht™xqèþóúí÷×N=ß‚œ_~óÓ›?ßݾ\ —Ø4㬜sÞ.¸è&wêvî Ôsá.±Æ[ï¼÷£>úÉŸú?ô/üåØw£í8Œnôã8†1ŽÓx:îÆ3¬ÑÅxú`‚ CpÁ‡1„ÃNÃ.œaá/Âe죉6ÑÉÛ]^^^à:Çu†k‡ëׄ+â +¸ÆKËápY\WÙó‡üs~ÃxãzqÚ]œ^€œ.@p8mgnÄÉó8îbÀQ´8DzçqD/Îù§‡v‡£ bÄ!Žç¡Úâcÿ˜ã®îØŸâ†Ï$¿ËKÙ™Œ6A¾úØOýicØŸõçXÁKÜÛ‹k0Îx蚣 ÐqÊÍ©Ù0NsÎÕ6—¼o‡‘ü3àrfAF¤bAŒÁâø[œp ~kÁU­l÷;“³‘Kn0àOÇÿ ._>_ãâ +Õ]yÊ™qŸ ]y÷B-`ผðp/EÊŠBg§r‘ôH‚ü!ÿM_ö¨ÔÈ%³ËÉååå +ùŠrMù:¯Ý|urHx¯®‹æõÄŸ%…)ôvðâ“¡ÍvX +òRx|˜ …ÞD@m ›ƒF¿ã6ŒnqÃcFçûZñ&Ž ¶9ŽÛè‡iyãc†§;÷#‡Z;[ßeŒÛrjqËÇÇñ^Éš>Î_Û¸€IÍ/Ÿƒ’¾ùðŽpôäÎÚüñæ{èñ§Ý#ßáYCŠvþŸ)»ßüPÆnÊÿf@8nû`§[a¿2O•…®†mGo,öeÜ ëÒ›0mC0‡o|øÍûO¾A zÎfüáíÛ«7ׯ7ßç6»Ðø>ž]!yrù|9¹¹„ý ÷ø”+Ÿa3;T€§éګxMrÅ|¹F¹¼\._ƒ\Âk©xõé"»éðŸÄÖÎå:ËWzFú3Éóäåòr9¹†tu§ÂÙïxõ¼ +“›„‡N"uyåI¤'$Ï "¯¯±~§6ñÞ¹—{ËïOåC6HÆz©~†e9Å­"ÀéêÀú-àHö{xrv¦2³` 3@@™ÐƒO_ßœa-OñðÜ3ÿ8H ¹×ƒ›_ a•O˜"€ÓåüÐAÒ߃é__aùO·"p×ü…s,f\Ñp|v†9^‹V#¤™ƒ„³zÊ…ç Œ]‡µœ 1¤§‡$ Sí!e. nϰ›§À¢x„Pv™bº'^‚Ø>ã.CcÎêx/ Dg#jc…sžƒ&hZ_P:úYX_]þKl^Só:m^™æ»ò—|5¯óæuѺºžØôrqTOAÝ!ѬIªŽ Y ‚.Ù‹t¿埤ÛÈI r¶\"÷õɨAqØË¤¿{ïJ:Mq „6îùßQ£…†]@¸î|Öúýh·“]²ê£F§ûâlúQFöa´ÕHƒïCXÜ÷˜ÑÉFa¦±§)bÐakÅãã>NôM)ЯĀ äõÕר¸À`:þgq¹Æ5¨Ë6®ü§3û? .ˆ¼ºôiXœ–nþ«>^»Æ¥Olu®;ù¿êjqÅÚ̪Å×4ÿk®ÑÌNåcù¾EFGI Š|£P¢XJ‚ɉ^b…ú, .Äxq&r ¡AEQ•„ÅUXVH¥õâBW];‘Ñ_`I„Qˆ%1f;¡¦^t“‹,ÏÎ9P¦Qª%¹FÉ&² —MâME\rg‚3N;H:ʺ$í(ï’ģ̩'r/I¾sA?;A S–€A´8/úÿØNȶq˜â¹À¥ Œ)ËÅ š%e£eÑ +a÷YFRJ&9 IÙeaóÙ*Gg˜BŸEçE&ÝBšÓLi‰’©Ø.ÓBÚr±W±T$+ÅNÌQ >›$Œ#.Ä ‘LQLT´ü ˜a’ +"Љ‚ ½`FbÅ^Ð!QáN``àçêâõ‚éÎÅ.åÉ‘ø)“íªÚü„ª"û„ªjù„ª†0#¨c8Ã'2ìüpÃOòçxóÝso¸÷µüS·£ûí¿œ¯‹Åu>_góµ›/Aˆ]ú?3%—ijÏöãG»+g»˜a/g»Q±*[Ón6ËÓl1ÏÆÙx5æ+¶|—í\É}Hàf¶ùl™;²åò‹Ò‰%2]c¶H±J¦kÊÖÉS±P¦ë,[*ϳµR,–æ²KfK\yO“scéÊžį̈}ÝÚ™±;KÛ±·îíƒÅB¸´°ÖF®¶ +¦mÑgïÅî >×ÕÊÜʹˆímj%‡¾Oö¹iržxÝÑ “Øl\0Fü•P±ã¸l2´[úV»Ÿóky.y?mtÛ0Dˆ×[,÷ˆºòœ¥ÙqÅ÷ƒ8¢Mu;&Ê_úÞ:gš:̳~õqkj4ŽvÅY£éù y ’¯ y +ÒÙ»”Ãf“ƒ Aß@ñ Ð'p™}VŒÿÉäÄÉUÜ\ÙÑ5»º²³«›ý]ÉãU|^âõÊ~/z¾xO'w̰ä;(|&@ÂãËŽî0á2V~I|ÞôvŸ ¥ŠhÞ æ½X.Bù™‘'àƒÁ'Ï=éÚÁ'OoG:ˆÇœÙc™Å“œåylì ï;ŠyÒ~Á3ò_ɸ–GPÂ2žºžñ§k~z 㘫c°ÈãW² {á£pŠ Ü"N9½.;L“ó4¹R“[•Ö¤)&tf²û‰(qÐ&gmrÜŽÂd‚h¬Q´Ö)»|“û÷LøÎ¹ð^—ÂzáB¸:q)'÷²–ä…-¢ãRËÅ VÂZG2ô«u„‹ZG( +BaCÏgDXQ—£àaEË ©¥Ú£ŸÕ´êI­Ÿn9«o}6wíT`ŸšR[K§æ8 [šÝ«ø•Æ×¢ÅâþT­ žMo)š(ôí}œÌ´Å2ø…'òøßÈ3?J7:(¡He¨Á·þæ¶`o uü¿IÏpLŸÞkèrã‘¶ƒ§êG«’çüèãtñ±©‹ô. ]Ü‚ Gâ)ÈðÂ0Êô"Èî ½±9Щl +»ê¢+”Tµ#EžHMž”ÔÉÙa¿HA¤RO:”ËI*S&'‰œäq‘Æ%tÄ=Õ°(t³‰m†F38*ðÈÏ\hn¶“šs‰ª¹Ì`ÉHô S'˜ÉK˜qSžz*èi'ÞùsÁPbhë%ÜH48áÔñ½À*^¡taM‰‡¦P‰>Mq‡ç³Œnò! R³ÄMÃP͈OQÄÇ ÔKÅlXñeãfä»þ°ŒÚ†Pyyê?:Æ&tŒŸÝ8ŸÝ8ŸÝ8ŸÝ8ŸÝ8ŸÝ8¿¨øï솟Ý8ŸÝ8ŸÝ8êú¯d\Ïvã<ãjßðìç_ÝÇüøco¸;æê޶úÉìx*®§½ûiï‚*N¨½#êtÎä+Y»èf[äåÊ7ÕÏào†ravSG•Ïù†Ù]Õ-|V±¼ÀééÊwµ›SÏW>¬‹9€²ßWº >m¾†…WkïÙ*6—±€ø9ùrZØ_ÄÓ­Ì0g9ó|^纹°Çìcg Ü)è¼$áŸ(.'Ód/Ó0Cî’’gd½ëŠÚEÆÌ#3 +³ÎVó×iù— íÍ–4ü’|ŸÒì“·WäöªÜ^™KÄKjÈBŸëd…‹J—ÊZ©s•R7ÍJÝYQê:ÝÐ5Tº)‹œ¢Î]dÁ“9»wîí•ác« …xïµÌ +q7/ð!ßÓrw%y»µ;†Õ +=Cövêw¨àq„ô}~tô¡;rðÛÉ?Ï™r¬32ú-6Ñ>ËY~“Ÿ!Å@Ob¿u.Hze´îQgä3~ôq¥©iQšhQ²Å¢w«ëìˆëQkeŠÁ?|]º¿Nçbæ«­Ê“¶[—+W·ÿ«h­kl^¡qátu³˜ «EïòÚ­¯–bª1ÞãYÊ&ÐÐû©ëûµodd§¬ìvîõÅÚþ´²Aí­PfiüI–¨neŽR©9Q¤m“š”M +rT›¥*£TÓ¥-Q©RUa]!?ª’”—Rw¬¼Z/Ä]2Jw9Aoêæ„R?çéÙE2iI%=ÓõJÂ^IÙÛ'íIÚ^'y{Ë̽eîÞ2{o]ÁU |s +_7çðµ²øæñ-k!¬ùº*“ïgUC˜SùÖùõn´VÚ·#}Ügª„-ÞÉ-3Ž,Ì}ìã$Y(5~ö „†·áˆ±ÅÊm³v‰5«¸’FI­ÃEµ–eµö…µâ\€MüqÉ=7H¢«Íç¨ŸË \HÚëyö!î$ûõT2`§,*ªZ*ÝáB*‹¨ìTP@ßY@Åì ¨Èµ¬ ²ª¡Ò-ʨԅTJ)•0+7~UPeQTe¯ u{ƒù"Uþ²*±²ç.…ÜUWfŽÓ­j¯,+°”k-ŸÖ¬–sJj¹Ù’°my< ìÚtsPæçtûÇ/Ç_G ˜î(˜³¾v]5Š:úÊÍ„ñH)-òª0®SÆ×IãË´ñUâø>u¼$ïÓÇKyI!ŸU æ{qÔ‰‡o]¿ d©´¯^`æê é´“³VJd!ÕI¸è%Õ²zÁ²~A©` FQŽç*"Ç Éº¹ŽÁŪ–ÁnUÏ .jŒ¢œ»¹²Á @bÎ8îætãe’ñ2¹8g/ê¬ëŠTåC:U)¤* Ò(ý±kúÝÁ‚™P©ÛÑÌ">äæzÜOöl‡Ã/gû¬ë0.]òK§|Ë +±·C¨@ãnöÎïë0SÏÞA¿7óìÃŽ]eáÉö®2𘅷ÞÍæä&(û•}gá´ O·2ñ,'À|N€ù%tÓ¿×~N€ùœós8Ëç˜OƸ>'À|N€ùœó9æsÌç˜OŸãÇmpf|–_£üæs +L25½4Þ,‚þ©3箋£.U*­[iúZßo¥,µý½žŸUû®Òçתúnfg¹ôÒÜšwf„fnØ-â87ßÝ3ÅÄÓÁ^2Æ%k\u‹è±³'í]!ürôó៿0Å=CŒ³ukÉ + ÐUÁšŒ «9ðÐföã/Õ®Sv#¬RÛ‘i+ÚšÔ=‘ºRS”v×û•y(vk‡ýBx.©gM;sSçE/ç™pºåœ7)gO7~:,a‡»™p.º…Pµ(çtE9Kq:ËÒ"IO»švÒÖÜÕš¯«l‹ƒ²2®mëü¦F†Sw„Õñ\GqŽãèTÇž­ì bW¡©‹¢2KRèÖ” A“Á£ÈÊíºBŠ\…aKÎÑU¬ãò6|ý|­öHßäϳ‘´†ÿÒ°HÖ6‹ý[›m[›mZ»:sp•;Ø8{ícæ÷=7çkí-5M!ŽðþNþ28#À*F?‡bKž÷»Ô§/"Žûž´Îÿ=`Û ¬Â0ÇøÊE—¢£òqø¨æ‡OÅGÏÂCuâ ­MÔU2ìIü³Ò¼«ûx)¶æ`]%ÅbCŠ]>.Ų6xžœzÝŒ€–ªPØT†¨C]Ë8ü|ŒÔjŠ[Á¡®BCm$ô˜W­¢¬îI 4VÒî Ô-DÞ!tvZ¤Ó)ä¼~‡ s[þ|º•Yá|Vž—BpM?Ež)hM@]vÇìøz>NR¨H¢î4¤)çP¦7¤kã C(hA{²ˆ cÒi§,J` ' èPÝ#L¤Î¿9ÈB–DÐ-XH›†5ÒI¶l¿?°ý? i¼Ä|$¼QŽÞÇÁÌa·ê»t ËÏ®sЂ( šoÓûÐ߉úf…]˘°ÆK#^z’à¢89Ó_¢‘pD’þ¡XÜgþî8¼ÄHH÷<¼4ÿä£ðR³Fo$Zò‹¥Oúçér ŸÔ}öù†Ÿoøù†¿ì ÷î›ÇXÜ6{—Mí®93µ÷ÓtUxDí¨Ù»j.ê˜Å*d1û·:eÃmÑ*jñÑÔßnÎý-Ž®}ôâ>~±Ž`\¦ÿ.ãW‘Œ%–±D3–xÆÑgði׸l$âi„7^„eçÇâëH;,|7§/Š×—?xúêÿG_üéû²úÓ¨s¥¯î¸aÇ_ÿçÞpÝœåñnQ'bß–ÅÊá/MYxàyÜ]òÊòŒSÁ( YJ¿¨Ó¹_”™µ‡dzØë K×k¶5tÊݲ÷ºB[Zf×kr¾v9°¢´]Y6])¤ÎýVê^+uŸ•Ó.·Y©Z¬äp†}w•}g•eW•eG•ÜM¥[tRY÷P)/u×”V£”Ec”NwCQÍOžê\Òì²qÚ¼v\gí«S}äŸnÑOë“\Ý'Àúû¹á2Qjÿ"I28òŽNw?Ä^²ïc€î4<ÖJå¿YwTñfÛã7Úª”oæÞ*£Ç£ÙRmÞ j£wë6+Íëßܨhcûí`§Ðø}=⿨·Kšzã°J­‹8-ÒÆª¤±}ÎXÚyZé~^½¥‚ïË~.ꩺm˜Ì"Åè±A)¬%8\ðà‘!ÏYãÿùÃÍÃõ?nv·W¯þ‚Å]ýsé¼T¹óœ&7å9?§Çõ95î,§ÅÅœçr6\Ÿ3áÎJ\'Ip^Êâ±$^/¥ðÎ¥Þ©¾kÕò:?\Í«{ºœ×c „:°{<0Wðòs%É~®Ý•*wíKHæ¢ªŠžWc.™‹FvuÕÈC5#«’‘ FvÇTŒ\Gm™¶½ªõ]ªÃñ¬ÌÞƒdŒ^þîîí×÷7onÞ~ÿâÅ‚º—_t¿{Ço†ôÍ×W×÷oAö—w·7Wß_ƒâËß6Æ[vÔ›Fp´Ñ¹1:lü4lÍÑ÷Ʋm†·wnê¨ +_ÿTþû§¿¦\ãÿ>È_MžØŸ~’þüõãÿbI6¿ÝüÛÿê7¯Ó/OnY¿Cý¨ÍŒzò…6¿i*óùMëA~Ù¼ÿ[üïäôþáüæÕÃÍÝÛ«ûŸ6_Ã?ÙÝÝÝn~uúe^î—¯oîî_îÀS°%/¿½¹½~ùûëW¿Þü#~ðãõ¢}•*Û.i7á„,æFàbÂç1nL [´&C¿ BÁF}œ d-l »CVQ t>Bëߘà0Òö“÷Ñ ÈݧÝñ¤ãì”k‡Í™Ü7¤ûâWG¿¢±`ãCCqNoz²OOÌ1ÂãÉ=îk‡ŠFDæûÆm°\b˜ à;¿u7ö´X#oå³u´'à×aÂ=x–ƒÁ”Û [° ÌÎãO\¼{ä¨aÀ®"ZµÅÏ¿ã-ŒI0Óqcñj–¦|’–×X"ü3³Â »µø×Dæ1 P$lø4k0!kà ì8àñ"`¡Ç±}`„ÛRqšÜ`c4"ëbÍvìÁÜÆˆU“·1[Ú¤'Úq¹_%Ügûä}Éÿð¾arƼ&¡ïÍ0l ±1󤋭ëWÎ25áTð6–VÜTU˜\Žxl=xkÿK¯‚k¦Ú8`¬«ïé°Â”Æ-~Š)Qƒë ±òõ0¶o8eÀð©?bwsØ; v%ebNX\Ì„U zOçÌ÷·y‡=4QÎ÷GÞÑ8)ÒÒ´!â>$X +nÞ“v$ÒjdÉwìž¡¬ÀKr°ÿX€‰´yÅ'7 +àäàUpã$Àá!-°²Ðu·ô•D +„üBô@;`$.öâ#@]¤HF?EPþä°]ãûðÛ4'ÁàAE=ˆs€ì&l>>]nÖj}â]ù€ 3I¶6·k‘ÈÉ:°/L „'¨â=f“¦~׃F@®œ¸+K²=ØDЄ±=1z¬ r5Ä ‰1pÄSçlqÂ@C"a¸Ó8˜g ¬@8Ó`a °±/˜ÞäèêüÆ‚Õ!yç@ÞOcß[º~8"½‰õÀ%1â0âœMBá82å~À9ÀŽäëà`­Øp`¬”›@ø·à:˜Ä•¬ äJp#@ª‡2À† ¿µÓòÑê-d —ÎbªÜâˆÀ;áA½x¯ÀFq¨±üÁE¬+˜Ò8aq#‰ + +އ3þHã fLûQãÁ#>–'¹Éâ¾(¯Ç“F¥½ƒK{@ø§‹‡Eò!½‹±“¶ k·qøoÎzxT02"±zž´Éå'ág {N¢ï +²Æ–‘AÞÄm°pštü /b§Lù"}"–ÇÆ‚có0ñ)q=¬ –À'¾F9,GbÅÀý±mØâ8‘¡b„a܇D‰‰9.¡¥ÅÈ@àA±Ã‰¤n£ã·=d:Ä==ˆÜ ˆ*Κè'K3ç¶Ž-q<¨x@HÈ~¼ÇÏ +#äj@š ·z¢éjèYìÎùò©Ž ^‡¥›ÈžÃÔ÷=Ä¡!wžh<7à*ŠŒ,ÕÀUáRQ2›<W‚Á¸¡ï$µ02 D²†¡÷ò¢A>À‹žÝÍÁÉìþ,(¦]óùa#TC-šR‘zhRó½€~½¢¦P‚¢\r¤Íî{<ã…pt ?æ{PÒ¸y‡†v2bAG¾ú2‹ào„^8”›^Ĭ¡XKõ?×ÚÒ8‚‡ÞA <é‘z…ÁŒ7"£y™ƒ©÷ø1iÄʽ0ädø„ô~ÌÓ,ÐH»î 94ˆ¹]6;òÜz+õ­-•X¢Í #(‡lÞÄt¢š³$bOK¨“åÜ,8Ëô){âÓÍ O› L@Ü“fî žFñ `˜&÷`ÔÝ® €O–ÿÞœüîîX÷îþ5HégëÍAÚ8ùýõÕío¯îoþƒ7¿:;ý²h>ß~wwÿ&}•‘3@öë»?_¿<ýrz‰ùæá' ëýã+|m6z]èÛ~ú.ÿbÎë1n~õëÍŸþçÏÿ·2çsù„€›pÔ' +pÃÃ^¶Ü +~À ÅVà¿8¯`±8åó{=Œ N Ø$Ð|Ø€¿ŠÔÁ_ŒAš á‰=WoéDïÄ{¶ß@›‘‚ƒ°AK>og)åñx€vßEœmµ +?Óíê_á$‚Ä'ÜΰÈ'¿†7Å¿A³N^[`2(“nKÉÑ“›o7 |N (y3[¬ ~ÐY‡ƒc¼ÀÁÉ‚BÜÌ ÒiGqÊ“ÅÏé”°så;¾ƒcêh’öÄ#帤 v+h˜¾¿‰/ ±šÐæ¼å2C©ÁQ pÍ-N¡œ…v°qŽ….7S'“N/‡Éèö°Øb%°p \@Àë:Bý¼|¢nÃýd=B7ðP~¢Ó«8že .È¢è°LXÓI~E냭êÁ ¶*NxDOÞ +p’-½©g¤ÁÄøGóËŒiØi/3Æ£z°` Ì,»ã\R4HÐl°&,{”) ²%`ƒq7pK<ˆï  b€)ð€”Ý¡ ÜÓÑÒŒä)° h˜Vªt;ð/OôîÀÌ €ÖÊí€'P5õ£ ô +€B‰Ý¤A¢“æÚŽ|mœ»L¸³ŽXÐY°qà JUÜ +[d¶™Èѹ¢8›|¬2tɉÇk‚›báœeá4¹ág0x·€“‰uÀ“@Gx€jQæœ#^ÅËâ)ž§X1òs?,› N(Díˆ +ßâ71-(XÐHÎÏ31Ðj^˜7”ÛÕ_&í¨iK¯êš?ÄkAYŇ,Y»‰sÛç €ÜQ”x4A„¤@Ì®·²Qêûú‹‘H\^^§þtm‰S9m¦HúqDÚ`;Ð"œ¼(õc¼ÄP4<”PmÞÆ!í1±ìHMºñÄ£<ÐÔ€ã14lWÚš#TXΟ{—÷§ÇÙúà`œ‚}ÐhÅWñÈÈyê¡Ö• àïèí¼â°˜‰u‚|A–ÛNç ñad,Ü Úø(†Jð©#;ÃÑ“÷Ĥå=Áx>±3<$8ã½F¢YÈu`» Zoz4h…@ìz°!jÆò€g“ã p<$œ1ܾ'ÿÁÆ[²O¼ÒÄ|„ÄfÇq–lyO­Žu€‰<¨VGêŸä£øb$ÀÇ'×ÇË‚­¬2¿Y"Ã;!³…zéL²ó“žA04lÐ&ÁMÚX)Sòpy)ì†X¬À‡ +K‡^ ¬š+Ñ ¿¡a8f Éä®@ˆ,ëÊÀ>€°"µaò(›–2—ÔÈzÔè.³_ oH¡. $¼ +¹ÈO´Ü‘S…—(þA×8áu3Wõò¸-5Qð5mg^Î65fÞÝÐP“d I€s£DãVÑ]ƒ Vœ‘'hì™d_hГ—ðù²pr÷©œp0YaP9˜¥„aš ;ì* ú7k˜‰™÷}Oó!¸å4ì)GfKËè¬ä‚U‡'×Zˆ5²†=¼¥¸7C²˜@‹‰¢@MLeù¹±˜}Ÿ¶ÐH kK1çQI_ÜÎ"ÂÑQ~Bb‰7´#qy¡Øð—˜¶ãºpjôÎqjt@àVé<Ÿe«p¤Š ›Ä_M|:Gûcdqüƒ=q‰ú‚v3|fP™ÞG‡TFP'SÔÞç—2 ÞxÀp¼è<˜<ÃÅ<ÍéöõÇËWR_–‰xÚ +À{ñȲ”4sO{(H(b‰sµ\ù\y ŠÛy‘Á °xeOj_lÍÀ–ñHP#z·Ø?L-ß‹Hßì·ÚSs—/ˆf‚à#µà8„aE;r3謼Øñžâ¸––†eßãÄà6…F!òüjh*^Q6¶H.à•ŸÏþe ~Êùñ #p?hT=ñâêÐy':mã½g'ÉrTÅè:M^Œ®`‡óá¦9Îp»Æ‰³r+–@ª …‘15{îáÉû-=m´ÌSg~ã!U >˜&äW\JÞœûÍ7‡ôšyíõž`¤¶pC>¿§<ª—Lþ%Åý·´`† é“­$ØÊù¡=픀Õ$ n¿äê {:_há³t±Ì¢€*,0o†U¸.ƒO ´5Òª)_,Dä:0]bÍY¥²*ZñIø?‡Y´ÑØ Q—Õÿ\@ñòYÁí<¥4(Ð7eô¹n¶"Â(U–ú_€¼/Ѓ¼öÊoo=ù–|¡…xÈt°OJN[‰Ð…²H&ì iͬÑé!”D{²iUÉ“j¸½x‘~…¥‚ÅɉógˆašÕ2.;&ƽÇݱ½E‘׉Ž‘ Ò·õ@® iŠêuQéâáâ-´IæÉ‚1÷µn +´þÂêF*f³FË_aáé•d„È*0O“Àhs=øESöí›Ì­…Ì^ì’IM#ljzišpÃJ·‡pÊo@ÿÍl ïB–’ËÆ íòƒ§c„ö^h¨K»àH‚þ ‡Wàí²‘‚Â8ºBc÷V rolxñvWZé¨ ˜u,f²[Z¸£XÁ‚Š%I;gSÚE¿2ÎÐ_ +g)ñ°qv6éКÖ4Døa6Qt’­Ol³0Ñ·šö'8ŠŠÙÜÄ›¾,-)<%Å@EŸ£@’;È´¥YKýªÃ( + /8ÕÑb=fó×ÒlikãzQêÜøS…$G†Ä4lz^|#<ÜtúªkÛ`z;ìê@èÁ£0L{2žX“zLš4ÁŒ˜HÅÔ­¥»(°Ç¼°×X»‘äMµZ¶×E‹çÚ4¿ìñFâ÷*¿GÉ b„Љ÷Bèqà g4¿ZJéœÁÑ5Ì8’`³çb"#ÇÓ1ùtŠFñAâ>–•­3vð ;¾x¼kh2µ¤{:wœ,‹u rÒNÓ‘ÆC5k/lßòöôÐàöR+ˆBZ¦´àÜ€A ?Êk‚?G¢‡[ï’=ŠhŽ“qDQN´fŒ ôîÀ(;+ÊõÀ”®§ÏÒŒØà^2f_TýsËÛt¢ÕO¶D5`D 뉸HÏP#¹BAö¬àÿª¹ƒIîÐÃȹՂÚq ¼LfÞMb“P»AGšTþð _¸ÞQ>b‰²¬Ã¤)ƒSÀâñ:Pâ¦L5… tàpâ”ÖÞÊ8ñJ[š)ñ>Î}ƒ¶9bÁÛöŽ{ðªœìåÑ0Žo ü‡1Fa£NX þ‚ŽÔØLãbñèvÁß™nçCº>ìñi/Á ü¸)ìN8Â@#I oµð¨cx5JÏ x»§ò2žøã‰pSœIżèþƒ°wtÿ1¢Fó>ú({Ps쩯6™ ÝîôW*fk(؆ÀØ OÝ®æÔô¢Cу&4à)nè²bóŒ0‚t“#º*7JBÐ!CÕ•<ÂhƒÝG™•€•T¢ã-nÍ|^nd-Ïè³Ôù*!h¨kBÔàͨñæ`‚J‚à%ž)P#α'஄¯! c&/gÌjÙmØ"`ŽÄÏ©E?GñÔ’oO‚YcCˆ¤gÐiOãÕäéRÎó¨A +YM2š¡{92p?˜YC!¨d˜&GA5f ¬ÆQ<Œ>yšÁ&¹¹5£·ž†MÐq?ñ„+‡ÛåÀ50t"ùå¦Ù•;[ž¢‡sSEq“÷tÍChYê| +oÒpë ̬Pªð>¹?9¼ ü +à’öÀHº†(sŠ´ErŠý¬Ž×ðš‘ “,(1>ÍÑ527tÔð¤+`/–À‰ì‡'æªõr N{$½×*…¡Ú2á+ Ô&kDx•1ÿJ¡Ñ÷É*Ã]jÞŒ{`Hàþ Æ"öÜcªŒa¥81†b!0QðL­Œéµ.GfH¡61&yfªµ*HVÇÃ}èûi¨˜†Ú:¤+¸É@»ƒ0Òñ‚}÷Lu(£<’)ø gÈÉJWÚ¯„Uâ`J@§^ÖÊ3Ùíå`O Ì>kÝ›L˜Ñ ¸eÂÖFií!‘*ž E‡ª”~2zº ð$°Æü ÚdÀ8MR<ã4­ðÙÚÚÀ˜)À½‘1SS¢6V0RÔ‘ñƒ½M *d°2u˜IB™´„3^b0ioGÌUàLm_!?hm‘ÁiÇð·‰) Ê ÃäáhØK°«²™‰Ñe?ÂAÏ\èÞ¢ÊÔæ'†ýõÊ—ÁÌ¢e½üHþªÚÞÅ/$L\›q0Ú\Æ=Ž*eHOÿXz@em"Úr '‰”"ÓS†:º–‰~Q0veæÃ@‰å<›åÒ6h\RñÄ'›Ùšˆ‰" ±@ƒoÙ y/à ÏÀº¬¢*&^Gdamôd\&­Þx8ðÛ M¦\¡Ë@@––®•Å«™¡dHÈêÚVkQC¨ÎÅûGmé•Ñ;{o +öªìļ & ‚ë1¥Éo”‰9uŠI4*m¡–WñéU "óŠÕöm†£ï‘8§ž¨K™ÆñÉÆUÔFZ‰DÃúŒnöm¬ìñŒÍLŒ CFT›ò%.“¡}ø ÐúR;ˆp qŽD_&R9¸ó‰´EîF{¨´‘®¸§”ã‚ÀDŒÆËdË@íö°Ða1UI Í³©=&\ö$XûYL‰ÂÀŸ‡¡ðíÚKC.•ú{,€i8…xJ-µ;LˆÌ4FõŒ=e.mG‘špí–‚¨7&`í'íÍ¥; ž˜gT9ÃêÛh[ý"zDkBz”Z˜Úù§·öØ$q8–UŽIEř٤©âø¬è1{Gk:VÕÖaPþXu¤jO®:•Ê|àt¯ÝÈ…7(·³b+ÊkÝdOÊé­Øœò—+V™ì->«óŠ]+Ÿ¾âø*$ )9TDA-€t,B]:‚¡%ùtD-AuèD-|UàÅRvëpZô«HT H†¨8gJdJ@*Œ¥‰ŸTŒÂa*~tÓÄ*fGáÈåS§ + RÀõ¬PTp¯ +CR°ùGy­*ŠIÁï÷¤»Š–j)*ÔJé*JKé"*È«©Ó¨1¥©ð2¥_é-=MªÔ½ §Å:„®©o®ƒï”ÒªböŽÑЛ£*µ[*½ŠTlêý*ÌQߥŽT6iÙ²e¤èÌbÿPAœÊt¢b@›&BªL9*úT™ƒæàÕ…IEº*” +’Uf,cÛ´‚©]eMSÁ½Ê"§ƒ„[–=c\ÛUpr1(ªæ–9RDc¦ +¡VVÐxÝ4¢ÖÑÚÊ[»•W…·¬Á*¢¼˜’ëte„Vì ¶ŠzWp0¯Œè*Þ¾iŒWáúʤ¯"ý‹7@å4 úçµSBe&(džJlh:HT^„ò¯èÜŠÚ5£s4Z.ž‘X„Y"-ù¶*W‘̚蘳äÐUÞ&¢*Ùb&ærœ^«‘:e£cÊ‘ õÚûø²%ôŠÚ4h> ©óÆÒq“o;âð¯-+-Df·íÎ I›<1$³ž•K C ­’­Ó%S»Ó&q¤c¥*ŽÃ…‡rŒ ¬C[ ;¸Ô~NA6S Œùáez¯ý¥A kÌAìiyÛ»Z!bDSåvŠ%jé Õ¿ªý»úɵXM v5¿j.Cí²ÖËY»¾%z¼Þ–ä7¯w³v·kšh¹íiÕÞE%p@÷2Ü@¤ Ußðt +ß;e©-¯F¦‰;ªmxvç-—|+¬sBø8z¹ óö'"gK-’5$••€ŠÚ?°ˆ!ZÆf@É` :D#e—zV Ð#dÞdx WߺóL‰-ñ +ôAñ,3\GƨÐc¼ Õý`h$Ó ¥×d]¨ç°n€£¬z¨þ®ñ¾õˆD£õ¼Õ}ÔÚ 1+üδ—K¿ß§ï»l ØEÓÀÅ$:,9>ÔPô›ö('vqbc'IøÊ.ۉ†½ŠÚ¾ü³7¡$ùüõ(Qs‘u@­çªÕû¿*Æ£Õ(šï™6ïÆ¾g- ¾“i¦bÉ ŒðR¡š:!ƒÔ;bɃAå,?̶DGk5¼øã÷©×R¿ËS{òj½‡Ö­"ƒÄR@øRR)âðx)À_h¥SìòÕF÷ˆ§7™™îÔŠ›„ʬûúl Ì ’^bz¿caÁž8CÖ‡†ùôAÊ Ðgf×a;ú×ÕùÔoPm=“‹Ð+¢î£VµfWË}¨OYM‘-—WõåÀ°8ɱ¨kîŒüCÅvþ¢y–ö¿ªÈjÿœšÞòÛ½j}ò8&fiJ§’dG>@=/a úœ•_ÕK4?çÀÚ•C@cˆe$c¢zï×BÆÆlåÄa–ò¥ E°/tz xrHY(Õ.èý$Ö4I(By‘¥aÐ34"rŒÜ&éÃ@ÌÄæ#C‹Dˇe Mäa* 'Y8A¬™4»PKkâD^¯|KoQûGÙëX»Ût l4 °äõ¬`Yù¼EJ d•¤À30åÓV¦ å Ðo1 |Ó&âž¡X”ã´XN£> õ¿PN[u–èíðŒwQÇÁѼ8ÅàÓ €Å‘ß§û¦³?±dÈâŠ[0,±Yø5àJTbͪö?ª¸Üþ15“l¾œb¶õÜÃ.ËRØür µp¨·@ ˜zµ jQx55i¡YS¤¾M…\ ñú|(P1=éÖQÕ°¤>é‡Í!DÖ"XJÁËÝ]»ÜËÚîkbSPˆF/ÇŠãØXŠÄôãúÃŒ£ÝFè´£c‰ÔԊ݃ ÒF™jê,ªÜü·?t¿¥nV ݪ{£úñÊ6^ê ²¡ëɃuU>Ñ$˜^÷ða”ß >)âAÔ714l4bìcŽ z[ SÖóôx‹œI5“—žB#]R¦Hì—]Í@ØÐå•Lj2ˆ•ÐFðòdÊ®u ˆ2•'‰ i#úb1ij„ Ýü€ ÷#H–ú±¢ ö’ºÁ¥d†NðäÞ‹aÅ•š#Œa˜%“ndŠ,‘æÏ9ñ™?&{ttB»l•¡ “Zoïå.Âß$O–Ž7ÜðxÇRÊ1¤j•Åð€å¡*ᬰ$ýó>íåñØ70¢3è”iKæÑgÕOëÃ~EÔÁ`Í)]jù 0¡öìÌØ²åâÓ—B{ gñÉÖÖ1õ]e Ó§ÆöƒAˆ7`#ô+6ɈiÃŒFð0#ÉT‘#Ë2¤ЂÖäBÈR-—üHñÂÆÛøQP½‘ˆ<ý`à~†ë÷‡¤»×09,31‡’\§Bôî–’¢WkI]‰JмJµPb¨jO ,cš|zN½ŸÔ@p¸Å^?%;òšp›)݆bƒžL +EÀ«²´À¾ÎÍš,>I2µ7†2kÒîé<â”®çZ¶9F!²PspÉm\¡×'Lß§>¤ú]ê³ÞžSÍ)ôÚÔÜF-oÍ«š»¤xžÚlÅ7½(þÛ¢;ÍÇkúmH€ê Ôr£xGèxzþ_¾ùûëw×Wׯ)Wbpª €²þ'ç–%\†%Á®U ›€:Ae†´H¾`U ›vOUüšÅÒiVF:e…çVñkŽ?¼#ùF£‹_§ÊÏăf]ü¿“¨HV‰RD¹Qüš€Ÿ^e~F­éâ×,G‡QEaT”ÓůåU˜s>Hh¶i¿Æ«‰7fõ먋_㜦ëºæµeõÚ¥®9MO–Íp¦‰Æ‘ªØµõ>ÅËÖ5®-c·¸ÏÈÑ›v­kË:ª‘ÀTŸt­k Oãϲȃ®u \¼e –e‰k‹·…†ÎU—¸æ}X{Þ—øUW°†Æ(q`lrÁÀñvk®õ[܇µ¶]ãšOJ÷a¹Ñ%®-‹zÈJQ%âZ¶j][ŸÖÀ¤ K]KÅyÑc'–ûh”º~ú襎=]øHå,Õ¼fþ>çjsÉkK›¡a¶òˆ;H¥fßãÐÐ|r¥fËÂç´Wí½ŒøÄ:°"{Æ}Ékf‰P#ÍŒa™˜þF‰èçK†ÈèlÚ-1ÀqO?uÜ 0âAà NI;ÒoJÞ!z‹”¼¶´V28{°¹ä5˜“N‚TŽ›FY zåß\ó$æX¯`÷)'$5Cˆ +2'ì‹^ƒA0>ÛþŸ¡•}¢ª×uÓ&™$éDx ,wß´†™,,TÂL£»×X&Nñš0èî5’dbÖMk˜þ‘â\&¶Eݽ†™#"”Èú?¨»×0aIB5=s’)xÝk$¿d0VòK¼m´¯á‹Ó Ät`°ÄÐn_C{¦%ŸtÒérÔík®_i_C—0ÞµÕ¾†fÇd¥¢‰B,žUûK …™ilç©û×0xˆ‘º#ôGæÖ¶ú×XIoePžec‘º• æa‘ãÑ>[õ¯a RZ(L=Žh³´^Ó§Êܺº$((!lÍ8êÆ3L±â²wJ”.(­þ5B¥Ò,&Xb£Ö}¢$`s4Áqn`Ãýu”S- Ÿžv.°ŸÑ}ky&ÙÐu»æ%aopT°SN,Tíjˆ[䩨´I2¶ªn5†ñ§–¹/£åu«f5x-ñ`Nt­Ûñ@³‹ÓʨšÕ^9&€y'ŠºY Ï¡+,¤‹Ë›¦šÕpvŒ¦WMjhÄÛiÄerŽnRóäñ(ðŸ/ŸÈ{b×lÓöj0¹€-h”3ƒY4°2ºÝ²˜Œrfp-i³ÆZfÌ­œÄì)Ã'Љ§“d™-XRRœ´SCrVzq X&¶`Vf44`j6 Ú©!P›ÁÈ„ÚQ¨²rjö:Éî‰lÙVN aÃ2ËèzjµOƒ÷O£'ÈôÚ¥Á¸#&ÄN´]¦ LÏH,æeÖ.”ØårbWÞЕKÃ0’:v\À™¶KCR*äI˜’lMåÒògN ø"›¬k—$`ÞÊŠi—FJ4満M²üSqiPQcñ *jLØ›]<Þép2‡Ó¶]L‘rȳLtÚ¥ÁTVÏÀ‘$ö^¹4ž>?Û¥qœc÷‡F²¿÷Ùþn›öw¬µT¨$´£¤iû3V¿$l^`#-›Ù dý³F±Ï¬ +)-“O°ò_ÆÏœZÕñ MíðcümøÎ7F»1Œ´š(A˜0o§vc5ƒhÓûéuI+ah=YXH*^)’N5_°zV¤Z«$'|.-‰ãX`8Ž!Ã\“"œ8gbwVÆD- gª_•r›‰§Àô“™ t’gõò é0ùUYOÞ.¡@–s)¥@ D:¸û~0q(—ˆ +™>µ,9J¡í}`¸R h‚å± t.h*øŽ†%š0#“èUPÚ4H~–K§’_þùÔ»Ñ̵ViN‚¬¥…Œi“«­"Jh·•ª©Rµ”u&M0'ùÎûÆ0Ü@Z©½#»X¥ÒÁ)&ÜZ¨rÅYŒ—jÄHÔûÆ0ÌPO+:1Y®UØV@¼ n=ÌEqù´H]†¡Z1îûÂ0­"ålîKîÊsNÔ†Ô®H +õRîIû¢\È7aRŸ0éÛU€•@-E„),“ÖEwR);lä/´§Y‰œZ+æ;ÐS!Õ¥Ø2±”8&†H`…¥’ÁwJQd9ž‰ú`šbkÕT¦e齫ª1©¹”d¦Å“^%ÜÄo÷¥Ÿù&,Aà¤Îö¢ô3''t $í¾,49‡¬-)¢gºr®0­¾X–£Ö_&Å’ÉÛ,qC ¨ãQ-Ÿ³BˆÀ¾À2œÃª,¶lˆa6"”E–Z)Å´™¿Ë3Uªn—/Kt—ÏJ=oQ•{..‚%=Jp¾ŸÍ¼òÈ”¶eÝp.]Úa6 µû^0,—0 ¢…ÚÓ‰–Ê“Kð )»+,ó°¨i.%èÙc»×È*ä¹:5 É\òòR)×N'…%"²šºj +#Fp)œàØp,eÚ‰QäXPÁ®›Âp‡¨ C"„Ôc*W„—7§o΄ÕRCžÉ9ƒÉ@±*<Ï¡„ÄgÌ\®ž¬_WR¸Ü-Õ··ôÝ +/5ô&ºUQ|‘`½ =Pz)¥O&+úö¯çÑ,Å÷©ÑwÃttÏ‚2Ë’ýl¼Š_Õí»ÄŒÒìQ:¢K¢%Ö%X¡‰¹_X:óLéXÈ­ødßSf¬JSÖÜ«€ËÅ&ÄX.ñ-¬p£Åj» HmÆs²é§ôM౤è\6Y ͱæik½oÃGJn69²xjiæ`sã_lOoè1]v€HbŠ9Åšß÷z5ìÌ¢9D^¥Ó„à~ú ù¶8Ëöâ·c-½b¥§•CV +¡rHhQz`ˆ—!Šû¼nZ÷„¡‡€qa¢¿SÁ(ý6 Ãûñ ûúÒÅ—;t°V…h|T—h”]öõ#.jDUüÜ Dî&Ÿ3íI +¸¥æ!ä±Rêhz“_4¥ºgª;+;¡ä%JU.MMŒpÁçŒ7«V(FÜML'cüXêÕÄ".©4HH¥A@JsÃõŲM‹ú2½¶ø[ÆT£ÁyÉóI­`ROò1÷$§Ü9†ž—d`=úQÊxVà2É.HQÃtÿúãÕ;Õ_Î3Æ™,_v0‰Cä©“!1Ÿ•Ýí·^¯|êF(aØ·ŽaÈEdÇQ*Kí[ÇH6 }5´A™a¹“,œ#÷bíêÊî38D¾ Õ’¯œÉ… û6L؇€X‘nÆšE¼ñÕž09*Ú=É´Y×k2ݧÚHó!aÁg˜ÙáæCÅú]`j„±†oy™Íx²rjEjNóé¦õyKV‡´Á…o0È€¥¾d€ÕØ7Wý$ítéÖü‰oÅ“¢Âaæel€ì¦}ëAI4h.»fñô»–[ÀDþEò¸jÚE¹.v„Òà Ë8íY|èEܬ›†¥5š;ŒÑþZ‘QRã!«ve~˲˜Ez)]4ÍRNÀi\IÄIª=ÍÂÓ”˜ciÝ^Ü2Ñ“ögðFúšW X¨¥‰q:•+š°f#HƤ­[µ_™XÇB2_rHI…{ˆ!ïÖp» ¡&¡$Núæe cFI…ÏÕSÇ=è±Vjãð`„Ô‰k•˜À¿Wœ“ñã ‚*ì‰Õ_¬`[ýåŒñˆ4vÈÝ ˆ÷`Ðú¤¼Pa$w[AH¦ëî;¨p]…¯ÓïNÓóÁÏ—˜¶þrF }asVb6ÓŒYQhdƒÛžn—q ¸íœ,fú¸ÿc.hÜ%yìsùŸ¶:`]2=³~h?ؽ6Á„_¡•ž~ϰ×?zŸ·w ¾¿n±"ÜÈ—ðžYÕáòÓ·E~Mì¬1†LøëÄXˆ6ù2¬ ÉVRš53¢t¿-šÕ@Ú—j6”‹¢ NRöɑڥHþÀ¼ Bi©› õºYIe´~/Ѳ¢ÌF)JiWŠ/tFyÎÜ.…Š~o÷]R\bKÝÛÓ¬JôQz¢„­ä³Ï ^¡5HíªeXÆ]±_fn;Òébgƒ‚ÐyXÙÀÂ-w²(‚“ࣹ±­c¹É°²zV sãl"a…VšiŠ-ÈŽ¸tiw)CöM{!¸§½5Gæݺ0Þ„\®˜‡0 ÙNeP"__i`ˆ™?Е„VjR¦ªÖÁwsþ û¸Sß_µá;ãÃu•F ƒ9P§„‘ùŽAu™‘O¥—“FÄ_Ój!2²dCè8í†!†)fQ×€ýIBЪò1ý*ølVÚ€”û©îå-ZM?æw¯*éÌnµøÈK£{”µ¬ Í;Ðlã‘·M7ïHÛ«{vdZh=Êt£J&Í„VW[ÒtÚªÚ4“¹*ú”σ®•O»ÜT>iªZU9’ªÐU>¾Í2Yórq­Â +t9®Ì7šÕ¼2QµÀ +/ReÄ2ßZ•KœM×+Ëp.p–¹d³GF横¦Za½º#FæÓíF™©«Êo…û—ZqEB´ +ÌaRªÒaS—±Ó¢ªU ¯È7UL/ËAU†¯ÈÌf¿"`U@%’U!A-Úu PÕ k(¡ + * Ò,¤¨pŒ*Ȩ P©å8§VÙG·TùH…ÔT Jôš¥,Nlܧ‚˜ª¨fcD£8gcTUä³âÆŒnU(\Õ*U¾®rª´Š¥êQuÑÕ¢o¨z­JKiÖ}UJŽª«Ô#Uƒ6ëT­¶EýRåo‹ž¦ +æVº]³[…Ò KÕ^¥M6»U(e´Ô ÎJ«ª-œõÛfe⢠Ï匓¦¬ëgµº]>9ëàû¢ËIGWÕ™³>ß®íœTÝX¢˜TQélNX•¢ÎU¿º&êÒ׳£U9{6yäzÛµi¤.Ô­ì*ÍzßÊ,£ê†CŽ*9^¬>­‚åÙ@¤jœC’*®ÌOÍ2ëÊx¥ÊµsW)ð®lcÍòðÅ¢¦ªË+\] ¾6൪Ü+ã_]+_› «ûµÅ±YŸ_Ù+Uyeê,”´ÙN@™WU[m¶­[è­ zT=aePÖh•!ºÙôAÙ±Õm”q\½‰Ñœ‘¥V¦¶ÛëÕ­Íþv©òÌ›\¹4yÔ.Š6™)GM¬µkD‘{íXišÚ-£N^íÐч·öµÏ~åMš9Gí}Ò¼¦ò]µYVíùR¬O9Í×T>·ËU;Ű•³Oñúâ"l‹ŠÚ±¨$NñDf ¥Ý–-¹¦½žµXÔþÒZ¢*oëR Ï®ÙZf+g®÷ÊÜ Ê•¬ †òBp¢|×MH£<ß +)§y†Pµ£½ »”›^6åá/(OÅ4;C¨¨‚cÖ±ÍÎ*”AÝ: +BadDÑBØ*CÁs¼¡!~ûÑVêЭrä`­¤”/š:Nù²Ö긭dÕa3me­ºÑJ_®s̈–Þ©GÕúkf¤Uà:H©­J×1Nú>ux”VëU˜UÓ?©lƒuôeÓ²X‡n*»¤ +úT&M3Ú2ˆª€ÓbE-‘©ÊܪâY6Z«ìº*~V™„UømÓ ¬¢w•=Zþ ¶ +nÚ½õÏk«y‰OVvvÕÜ4Ó« heå×Õµƒ@h·ü ÔR“Jù»ü¬ü2YcNÖ5Z °’í™–bÛþ+¥[™…ÍfH±ÑŠWQr ÀvÌXºY…‚±ÿtë7Ý:Ìj—ú' iOƒö + „sàñ"Sj‡qT‚¬ì…î¨øÄWUù°$GHÜî.œ%oŒ×óR´Bùͬص¦ÙÁf©²I’ù°nþ0®vú9µ¿o~ÍV¯‡ynµoQ/M«ÅƒZâäÎÔ{S{?õ·œ§ŠTj׫¢¶â«UĺtìÖ¤^œÀúÔ^ã§³!øÚu2*±E°ì{ +ïØ‡âB'Ìî ÔûFf²¬:³4M® ¯s¬H"#…0ÚÜiÈ÷YáNdug¤¯!@‹´JÒÅä­Hzp}Ö$ª\Õ±×/P×Â×iÕÔ× ¢î£µ®ïpOö(é/¹ ]³çÃþ˪傶F¥f êóf«‡Ã¿NÌiê1tÅ7ž«F4Ú"èQu{ʹÁʶ¶ŠºEƒ~ÇV«"Þ¥Ž·a›éÖ}òêW8°ð¯VûÃð+?­›;°/oª¦V7üˆl7Ý ;©VnÌ$” ¨æ†©Ñ¯aLÕüWU°æÁu{†r{Õp¥¼T»_KžJýå<ùš‹Ô+UÓyM‹ö êËÒAQAi¤ ¾X¶_xäWiÏ÷·Ï4°hg0–{4H,uKÐgmÑc¡AàåWõ:ÌÏ9°@…iMíºµ-!É:@7vÜS„‘²¥AÔï0úFytªô£ˆÚž طˬSÛ6ÔSØl[ô”ºJ;ÑwÒU!æí8éJïÔfMT(‹æÑT& gHêzóRMˆª‹(^\ºd}Rï¦¤Þ ñ@K=Ẅ>Ÿ$åÄ mëêêûIugáÿžæ)×®âÏ÷‘ûÕMˆâSU<<Û…F#–<.4u#&­VCŽb﹉:5 ©~‚óŶŸÚÞêVš|[-8J¼‚Œ ]£¥W@L…£Ã«˜©õ.4ƒ±A‰VÏáUzNŒì–‚Ž‹ÆÒ°%±K«™ž¬–—ñ²,¬°çôXà(±Ë®ÛÆ& Zäûz阮é„%hΦÊt Ñ‚ÜÕ7huRá¨Õ½0Eï–pšïn ¥ šçk(騸’±ŽúØáµÅî„}c]ÞÆÑ­'Úä¼oÙÙ0 F"eá}. ï<ˆùóâ1fÅ!·o+TâÚ¿ªŸW_Woݪá®'_×‚× X—“×ÑR!ô†Öåí )Ô…ñk2j•×W“­«ô+j® ý«C±ì ÎTi* NcÝŽ@êV[ÅJWÅWJÅ–ÍS›TóÃù1Š6ßR±e5ÛÌÑçå©åÀjQ•Q{¢D‘ÚV%ÒšÔ¡D£¢1%^uéÜ$n%ÜÕ!QA45ÙæU€EûƒX§Fd/ÿ÷Zr°X%„áNîs¯…çõZ¨j^“FC`¡Ø(* Ìy“UyZ½†±Ô ¦QY +È08*¥áTÕ†S¡Q²nÆg¸ůTcd@!ˆwŒâ×Ft/£ 'KM:ëñÓÞùuÙe©né刳€_£æµ¸[ƱTyf„‚œ=¥”HçF‰hþFLL`!9\Ö…¦©™Hµ-9£J×.*]S’ÒVà³ô…µ~>äeB +pê\ªf53ô7§1dÁ4HG—ýÐø/2Da§Æ¢Ñ;$Éåè…_­9MH¢–Ñî;&%~ˆ¢œpÌÆf;–&980èá@©kÃè ºVpZ£Ôµ¸ô&.C®øUÈ–•»XP¢<̺cãGU™_ýàºT°ž@«ä°^ˆºt±Z˺ú±Þ‰Ve½£U1fM +u=gMQ­ºÐš0ëúÒš¸ëÕúl´j]«#¦oSRý*õYoO)3µ"Š·Ô‹ª8Sso +cS[«x¢¢Å[›T¦x´¢VÍÝkŠ?$Šê¬p­»žxÙ±À¯7R¦ºÝ(Õ1Æ(àU‡FO 00ÏyÄè†l  z1•ƒ­øerr_i°q€#+mŒî@ŒJˆô j²­«î$—÷pŒ¶(MÔêî@#3ém£)ÐHÇ?­õ€#TätS qJ3 {1çöuª;c§©³>Îe£;Éë60î,¶ºy’Ý<´%øCÝ|y’g±È±ÑˆP–â»XËPwÔ7²À³µ\xy’êDÐ ÍgâÒæAªö@¬G"Æ“F14Ú±Ì5y†ì tªT ‚³HóííöÝ)ˆmPgh+i´ bÈ;m¼X}q"Ë“TÏ Þǃ%ð>‹ß«žA/ů¹Â¾Ñ3¨>=gÝÇõ ’ÂöO…‡Y]S‚©ü#-ƒR=à ôóÐ nÔoÚnz6E`4Ã+ÌŽA|½>ENAkïÏ{Þ üš,Ã;Ik„C-ƒ¤Ê|Ïî—C£#Ò±dl +;“eÁŽÚ-ƒ>ÙÇÁjÕ"C¡ESjïW/†$µ |œ|Eçí÷›_ív§¯^}xóû»‡+ŽM,þ¸2Ö‡ˆéï¹(_]·Ú,ÓZÁT‘Ä@{cz-›nÚ$Ï€ùéÓà,[°€ž?i³õQ¢h#ÃA›-&²Öè$#h,wO»Ü@ã*Ãà è=¸Eb.±ò›ŠZP€JOSÊ>úcåÉÌgÓÉ~1BR¼Élȹ&¼wL=,ÀBŽÎ'¿aÈnü+ÜŤoË’«¬"Ak›05¶~Zĸ Y'õ3þ(· Œ†à%?¡OÖg¡­eóä*–*ÖÞ¤2´ì‚׌ҡadzÍàÀ¤mî)Èš†­º{¤‘2##p,„ôä5AÂÈÓ ½è­ ¾¡h žu3\fµ`lÜeƒÿ)‚—J-ŸÃ6Èë0ûÉ@ü)z +÷á«©”Nø˜^*_˜¢#Ƽ:ÐöX½…Ý F›sYŸËïØ‡hSχ±œ„Vú 1%‡E9GÚSmziqÇÒÝ„´„NlB%BÔ¤Êg…4‰s5ãê×Y”Ój5PØ3hŒæ%±­²Lí¸B™ ÅÜF|‹´³dlœ›o´ $4Ää ‘ËDª‘9ªƒ´–ˆLZ%Þ‰!ðXu:…©RøÊV{–ð&ŒŒ´%£’D>2òؤæ5lë‰Q¬I,ÌN bàÔÝ"è¼'¶÷Œ÷‚ÜÍAà9‰ÈØo¬üd%äØHßd‘ÛLì1ŒdˆŒ”¥ÿ{’™`ÓØ]Vt†u0¹›¡GVêç穆3$'2R¡4lLÌÀYðvœR¬•ÐR鄯›ŒB“ø†8 É}úxìÌíê¢#ýpÚ#Ä9Kml°)[¨DL¹Ø #õOó ŠÆ‚W®+žpõ€™œTÄâ^1H‡‘HŒYÅÌé·ÅMÙîeÀ€(a11V>s©+ ƒè|É/ Ž`§Q\I•Û(IjÖ2°w“žÇjüžáw|«bx'™Î€¡#´€õƒ0F^&RËÙëõo‡˜6¸ÄDÔ?Ž©Ñ q²aÌøÞ–°€óBj= +o4Ô5iG7s¡/¶ >À‚J…A[¾t”‚òL‘—àX¼-ý嘼5¤õ‘u«'¼ÿÀLlè³XV x–жŒIË÷­ûÀ9äÿ¬(Ͷ†Õ­Y•mð ¼Ç¾âA¹E ÿÐ2ÇX‘†¼…&WÖ¢Œ39¦ÁJ¼1æ·å9€l`Æm¤´öÏa:ÂÐgÖ‚#è×;2ì‹%RÙå9pö*A–V#ó,yÀ%˜p'£Øè æ†m‡òA*c°Æ7…£æ0®Fdjà ¤„egÛ<‰Êrù•)ubØg™Ë>0—ˆ1è<³¬|Éø|66föš§à¥KGu¤ïI6œeÄYq~›ßKèRÅç•Ì5—cù < w~'ö]® jLU¬˜1Þól³q3¶Æ¹Ä÷I–EhØ‚Fd`#‰\­ÊûŽ'1ÎaHçˆ2Ø0ò^BeÉl‹ ´<‹žþdKBÿádvóCª“f#SJóæIü‘ØÔ°´¬ÓÀº¬D½ñæF6f˜ˆ%@‰–\Gü ,œÂ +]Æú8±m£Ì•¸cbEéhK6®f¤O§£˜ªÂ ¡ƹ™zç›$ú $܆¸RkO«(™ ›QmAL@éöÒÕgëYl…S0Œ Nkî3ææb¬ñOÖfs® ›ÓQå+2Ä?r€×ß mA\Ëq†ˆ"´îÓ–9Cm“ £°Ð`ùŠôƃüØ~¢Ï™Æ ÚÒ 3û0²RWH=íØ}¦ñ-æ20œÊíÈ]‹Ié7Læ½Ç¹¶Ç䢉xDè BéàYë›TƒT£ëÙMÜÓ5Fˆ[ž9)!µÐ‘9¨Q8®"Y¥I–/c¨'7×0`4cä1ÈìRËpÆ2G#Œ D Òeµü¼é }¡<öëbÀÒ 9fÌ|›$òcƒqìÈB"L$>”⛇it’õŽÌ"â #¨“Õˆ”déæ8(¾…-;e Ãeà*~ <8¢gñ:B[7²HŠ=›Y–}ìÙø¾—ïãP +F1˃y€–ì)‚Qžå–ÇièÓhWey=œÕIž41’ÑO€®¹PÏ$‰Ô,Ù†Óâ(elš%VSfé¸ì*ÂtkSÆYb/ËYv”²ç …·9’,B‘ 4G¹Ô³MYà‹:â9”PÑJH4v”)î4˜°xs^(s˜ú™CÅzHºÄT»Ç²·–!N…Eäù'vy¢µ˜)KAêsKŒ3€§e‚/Ä8J ,Lò9ÐxÇìðOŽð¥~E¸xÆ-máŒ`›V׸“eú{éIÃv2$ÁmL-%nƒÒdňJzKAŽØFƒfJEÌ׉/ü u=0zI=~Nf(¬y/ ¦‘yn”›”m6íóØæŽwÁˆ˜ŒL–Le²àc¿â2G³lº´é£'q @)ü9FÉ„aL>û^ÒeŲšø½@.G-3ŽiHôL}ÊÍ¢$æãIØæH‘:'/Ê #’ÖÀ ) +j·8ÉÔ€~Ø8ˆ0\vä—«$&ØÃE"ì°ÅŒöAР§»l”&?x< Ã •Îùz´ü‘>GVBÐeŠbãPå`tUY*r +á/žÙÕ ôKà¸eЧ‰ÒŒ’†óÈ{¤c(ÙI0±Á¡'POº…$ü1…ŽE ™ÒëÖKÎS¿ÎDþ2±ÛÁ)¸ØKˆè„ÎÈB˜°h"+Ôa9bH:ö1 +,ó,C(’Ó„‚,+sG…¶šcH÷§þš”n„´G¶Ì’"Ç.åÒ×îs«>’é8|$pTë9·—ÍBeó˜ßIºr´˜;Y¬žÍ·QbÈ–Ì*©-—Öb[mBà˜,"ÇeHoÅY‘:r5H~<âj@ ™]JÄd²>§QèQõ4ÙuêÁM1Aß¿öÔZi² èj.ûk–‡~h×®+U™¢'+gâ¿z5¢5%=ª^öž¥w ¯ByÐËËv»âRñ´ˆ)¦¹MµkCm7­!ÌWóž `AÌ£µÒ¿5LL€nQ—gl‡ÜŸA¦Aœž­>eQoƒªù‚Ó=³ámhŸ yPïåAijÅݳ4qyÆíûXŸN`‡¼¤P„ÄvÕ<㑵#*C#“;5¯ 3'ÝG¼,¦Án<“01#°jcm¶å]ʴжA¤ÙŸ˜Œ&–m˜Ø4 õÒ{V;")çÚ¬˜–!Ô->î™ ,qÌ<ID]&FòɜՔ 2_’"ç(\kID%=Å‘^_¦%*iÆwì C §÷ EmJE¼CjV UÏzX4P0óý¼̞Ƞ“Æ%£·%ß=±h/bÁ{I$«að^ê|¸à¬üPC ¾#ÝR¬)1¦ Èâ+ÆÎÝ` +àLACš>IÉÁø€AÃ'Z‘R$±‘bªmôÅûXé­Ø³ÎÈ Qœ§â(ÂÈ&BN#AîÕ¤ ÂuMDI·—7œ9wUJsWÈÔe«Î*{ÝÒ6ÇÞT‘F†‘ÚN ŽÅ…dP#ñkí™÷ª‡EÚz5XÿQÞØIÚΉµ4èç)¥&2ýJƒVÒ¬Cš5sãZXdé*Æ5tº/%72eî{­ÿ‘bEhý¤ pM5ÊÓ¨Ìr(tTͳæi} iÓ¶FëozDKÔ£j}’VZƾÐ]+‚Cé¤äøÉNw9©©¡ÑrºÒËœ,•ŠZ-& ˆñàçZŸ¿«õx2:¦ Ð#}à”-€İ]ú—é°iSà[S$ã­{È6îÃj ÖS 1j¾aÝ`@O¶Ï86äjZI «æXÄ鬬-4¨Ë`glÖ»PfÏzä$:ø`lLÓÜõ˜ƒYµÙHyèkË“XîKŒR…¨mÀâS¡á û@™¿è`H¦ãÊræ’IYŠ•;`óìˆ.\Ì´iKïƒ=¦› w ô¯­ä+‚àǞŦÚFEŸu÷bФs-@ÖÒ¹Ö9•ÓÓùªƒÅÝж†zÆÛÉëÑÿ mªt½ËNI!;ª–Ùë.΂ S¤ÚÚë˜1ɾ欩ØË*c°ïé|d[ZKçcÞLA̳èƒËÜÞMŸ$©=*6…"‹Ä°A›¶‚'HƉ¢oÓ鄲Ãê7FR”Qžî¾ä®¥á×ÅœOñ.‰Ó¡g1 ¦+€ÅDµ€üìIàMytxÓy¯Ê A_œhõ#ßreè»$7å8D)g„<0Úµg†¦ÿ…‹Ï`÷Ú{#^G9:ØéÑ6@Òø[N7±6]ºµ#)½vÉ,eÆôå!ä¨ÏžrN¶Î$d-&9[tl™ ~„Åaž|‰yFîñð¹¶Œ“š ¼ƒ\f~i‰qÙp“Õ̱xo ‚<¼%×Z'ºv^éè!¡ &P#}ô÷1‘^ØRâ.&H‚ûX›Ž¸O5zV{#\°éØ42“1©FdwtÖQ±X5c'‘%sTgz–|(¸™)ðd` Œ —' ¹áIà™L{`¸ ]_ÜÊdlƒ‹R9r–zbqŠ–´á¼¤È>ËÞ2¼Ì…T7޵Ò,ë ¢NÑ$Àª( ]Ç&Ð"Ó6Xpïµ¥¶0õ|˜D¾x6 à >XTC¿K )iª‡ôdžˆžSœ¤oÊ«æ’L}Ò';“¤VK ˆTÇ0©ù¶£Æîã[ÈÌIqÇàjzé#ý Eq«%‡còöZèà ‹ý!²ç/ë¾*áå¸b¹8v¼›5ÕtÌC·P­éÓ096`%G Î0Îê­JJ +;É„ëe¦¦°T%ÌC§ Õ_jy¸m YQ)4á¤î;€XÅ2Tcbtub1qwdE#Ùj(\%+µ/&´RqµÙBWZà ¢JŒÄ–ÌÃD;²ÑŽm5wM1 ‚« Ï$tà™4¢ÊÖ`3R§¦Æ­¥Ž ”ú:­mŒJ 4aZ9N¹ !A »ž  f…o`jð"1yôbàÊQ; +š“ÊsÈìˆØjxOª¤&ÕA’@ÆJMàT™¶Y¼|!?©R7œ”ã1Ãí% ºRY«fz)Þɦö¾¡úLLGäœ ­Š>RkP²ò`ô\yâÄÒœTvŠ\ùaÇZ›S#^eÍg¥êûd…’[ËH_æ`@ÀÅÅ£„þÄ”¥±VC /8qÊù(JéÕ#jÝÔ/_%Â:?ïúJ'3qǧDJwRrX[—Mc„H†Èrû<SÛÀÓÊtržÖÎGe’p<žIgÖkù•pÒÈvEy« $äÎ4b³#k0o”‘…#À¦Øÿ'åiSci»ÈÔ™ž!ùIµÉÇ1x’¹ÚZä PƒR@X;muṙ!i2<LvÞþ•õʱ=†a]9Y¯­`|’ˆO<É3‡JPNmMsôØ9 •aɰQ9ðÑ­ðpFÎjËžc0urM2§>¿qm!ä(‘\,/K´¡¬Œ MÑ}Ø#œÙèÚZéFÚ¯ft°²u:“Ub&h¬í¥@M–Êû(»+GH S¸Ò™®¶ß:æ ‡D‰ñß(°c*1 +h«g;eI†N eø(Ú,Æk‹4HTL€ÛBo›bÌv¤‘ž?’ä€Ê)°eZa#Ã6óÉ«lêŽÉ +"IÙY°ø!–vy¬‹$¦Dv‘ MLÙ÷eݧÙf¹r +8&1ÐY¹HuQ@;~MD®¼|n´<ªÖKAž9 véÝà}è3‰øÃûÔy;&Ã*¸Wµ£E^…Ab[)=i* ‹öbÖRš|£|>ŽEÌ–‚} ´­}GAyðÙMrdö®Ê­^EhMIRKóÿ±÷®»¶$וÞðöRu÷Ìô?±,»e«aA-È £@–©²›,‚*QÐÛ{~cF®½WÌØÚGÕ%K²ÕÝdó쌕׈˜·1ÇXKóñõ®%þ§#XÀú=Œàž 7ø`;&b!L¾‰pÓ6à#¶³?à,â*Z‘a%ÄÇ;+ú86†€= ›KÀ°ìö¨…Ywº€¦ ›åÄâl·Ú€ä [vÝ›}À½±ìK@1ÐP[[PUÁfdV0·àµ5Û(Ì›­DÀ¬m‘€} Í › ¾P@ݽñ¤f/øa÷|¹€Üú„‡|ËÂÜÒ€€ îí×;$ep“"3¸Û¿×.ÈÎà¶ß ÐÛÑ@Òmœ©!Þ Ö³lì6ö ÐÚ5„ +èÜ…Å»h.ŽZ£ÂhÊ¥¼KŸÎ!¸ @é/±‹¯7£–ð<`¿Cd¿ È·ù€CgY±ì!W1ñ›”‡ãéCº$ñCÊ%ú·©›ÐR@±·`M#=ZvY¨ÐÙ°&³BsDH‡…&‹m6-4k„¬\hø™½Ø8²Ë†¾“h ½+kŠ2´Àl3¡•&dLCÎj½{wvùÙµñgævïF¡5º‹¶)åФ2ÓkŸSHn‡v©m’<´]…d{hغóô¡ßk›æíb¡XZÎBÁ!4®m ñ<³î:æBÉ$tÞmK/¡/TnbàR󉽄»ÒѸ ªÍF¯˜-%(=+þ4ÏZµø–*þ—>,¬’UË*ÃÑ'Þ- 1rïךš¹_ŸðÑÌî‡CYî BBmÃn‡–ËmuÏv‹+lÒšc‰PN'~9<ðZf(…ɽ…š¼ÂR­ôTE­ÍœXô§«T™_M‹è£d*÷æ:Dƒh:ÀæÆŠë¡Ìê[‰Ôܦjk{¬»Q5P²j[ýçY«Èñ^ÖJtx’µ ýyûBÖÂx|¯k]=4áû¬…úõ ¯¥þ8Mv0ÛVäA˜°½æý[ðCX6+t"®¼}ñq70²²ë„7Íó]Ú­3Î õÔÉèÚ|0æ…íš…ôv’:=A¯QNe}ö6u݈ +èðÐcŸ°¶¢¨¢ ïñ«ó|uECЇÃ@ƒmÙÍÚ×Áˆ7Ø—Ç«"éOf—@H•ÔpßÜÝ:Âgëúpá<ñ]s!úF/̇/úõóüêg×oñAøj ›+ÏqBÃPœp3Ê P»6I-›@L˜ç/ý1ôS¥Õ¾àç’Ø%z4ÿÄãÊáÀrãŸï$ÔÓ¨Ù4[±ö +Þ·p @ú„]¤É§¹Æ×©þ–õ&í¥ÛtÄ"“ñÌ\d#ËmŽš—øâyÖ—ïå£ñùùã•¶_H”Yªððn€?[çIGoÇܶœ¤¾êu®QféT®òâý9k“Yb'Zyp”…Q¶£jžæL„ƒqýØvõé8°Û*ï †âi|ÍÆ;˜‹;>À›-!>ÿý«øê–=hûÖ×UµL;ú È‚ýz{¢žÝD³é$/M&¸0v#.ýt»˜6?_æ×ë•×ó~?ï¿mPŸp÷ÍIn­—0÷ÍïQH…}nöµLÀÈQaø«ýÑ ö´ÃYÂK ÷ñÎk¿— ™üLfËH}ãžüzFýžKÉPvq”ra¨mÔ]ÁªDþN2.z(›]‰êlàgZnH+xšiRI›¢ ”¬Ódˆµ^„,Šé±­€.è# cñù¡l*ú…`8w^§]8­†4Yqà™ƒR!ÏØ”UHIù4‹ŸÊ©bŒOáô†FÅžæÍCÏ&¿ÓÂ<Î1r¾c}Xúvj"/@Qóš•¿³éã“WèÂá^³–o1Ý™p5éJÓN˜IݵŠÓËÒdy3“T”;!­à…» OR%¹ÔTfï!Á Ú°‘€wiHÜØvªúj$THí”cÉ~-gá+ê%¬—?I¶wî®>2Àf¤üúìô‘$3ÛBbóÖ@ÀˆOZžyÿöÕì)d ¯øñ:ÓÿÜ|wnဳ3-Aƒn¦O—`X8[¯¼»0 û9É«º­jZ&Ö‰ Þg¨þܼñh³ +D×+¨z‹ ÞEÍ!K;PÂZ—áãñvkX@ñªDzĽ6 Ç¥p;}³ŸÀk¤²„r©m@³÷øð<á^È’œXcº1€ßrôy“æzÐIè²¾y(4%–¡ˆÞ!¥ÅcóváMøŒÒKEèbP`{‰ê Iå“/xÄ0Ÿ¤lMŒJB£Í縒2w$ZÔvf2D4&*%.$Ñ2Y€ôŠ8 KU¶Ã¦Ûe/¶Nú̧%9’ƒ;ï… ©–¼ +¡ˆŽGÏ(ËŸvõéäD«èKØ6*ÙIº.€'‘ÇÛÐ}°vÍ‘®öjaŸ6±Íy–0ÞʺŸn$ìÆóñãF¾¾¹Ûl_|4#Ë÷‹–hÑ ífP4ŒëLŒÆu™ÌÑDo#þ`áç‚ +®Áºã£î–tôTÖá ¼½&v§i¹z…O›+Ã"R˜%'J*RU0ñïrÿ%XpµÄõ™›4ë¬<©B–Dº‹àKy4Ι§M¶•ŽRÂÉÔ$ w*ŒÃrPEè3·V;šu-:êL‡s^(Ç·ÿ3ÃItFí÷hêÎ÷öë”% $Å ^¼‰¥Ëî[ZÒnêìFÙ~Hó¹KÈ÷ë·¢<ªÜæ7D–æ3${m‰R#¾ºÎ«¬89ZZ=Ŭg»R¢¶~±=’[!ÊW©óÁÌü?Á-¢H·è«WMÉÙbÂãæ†Óö/Û)üF¼€¢Ã{ªp„Ô‘Ä'Ô?Ý?<,¨:¶x³Ÿx 3Z"ÙQHtƒ9 ±ÔÕŠ#«¡çJ³É•û<)|‰ZígA5ÛqHí¼%0“æ( ;zŠ sÂ[šB“â:UÀEM +/äävQáÀó¶N›M"ÍèPf%E@UÇ8©uít 4¯²PfÇDEÂÚã{XµÌ€÷ÀXuª…ô­ÀÄrl%ùrLF•LÃ6N!Žô~ÌŽ<^ú ÈÉ«ó…qŒ¤„­ÍH¦&.e=ÑÉßu{žgw•}ý³/`in”z’^œèC»Ø@lKºŠû¹ÆßìM4—0µá¸Ÿ”Í¥Âí`3Ïæ½Ýör ÉLïw²Ï"^*ŽÌ³*ŠLDŽŠìS<•˜ÞÈ6Ïøƒ²Qˆ•¹W4‡Z‚‘`d^§ƒíÖ¾\V•¥/ÆGvEö4¨OÁ­.žá<;¤«DÊ(¡™q…ÏRÕàhA?6•BÏ +?=óáãqç¬Ú‡±n°–RY’Cëd¶Š?iñ·ó»DZÌn{þ¤,OÕ«r©sÇlð1@§b>çE6”€?Ü\œ†Ú<÷``¦7§MÛ-›Á¸¼óÜF%Iê×uÔGRï߀ï©o~žü8ƒÛåõ‚Y:}œŠÖ®÷î7Í(ÍΞŽÍcÓbJݦ›u‚Ç=¾9Ûé‘|Þûhï|LyKsƱûŽØ uÁÝЯ×) ò´Ér–Èõ~`Ñ JÝÌD~FOƒÅdÁãlîâ\b‚¬Å)Ú%°7ç9œá9i@\µÞ ÚrpÒ Ê•iV‹Ïä0UåÏsd¬žß±K¥ˆh‹äPÆgy©æ3ˆ@9J-~‹›¤ü›èÙ¹Þð…‰~`‚¤Ý²g¾Ÿ'ÉQÔs`#εÍdN©äS`™_'ÛÓ\w•ÃntwœæcìkhËâÕ«pÞ¢a‘=~¾.ËxåuyïŸ`Ý%â›Xwšø6×kûUÂÎ>nØ4Ãüˆ›oœfq_gëÆ,3þ]3rW|þ¥q\P%ÄŽ¶)E,WÃ;ˆ&{8õQt”í}IÙ+ïΦ#YC0èÒž‚äA@íOdh ±}¾n¤ZVšGE^„úæ ÍXý¢Îôx”Ÿšk¢êV·_€Ätñz§vó¸Ñ&UÄ;.Ä9õD;Îpñv«C¶rx¡i"£úÕUפ=@3×äT¶tÂKJ®¤»V”]Æ.yW2Â¥52wC¶÷Ö¸p¥ìÎ{ñO¤àlßh¨áܾQ7Ã9-ŸûA”ÊH-bÛèãÒaÿíÇf +ÏùI£7錨*„³“®­S\Ôti¢vV4ë,€@÷r®áu&›7uµ’–ŠËˆµ·¹"§¹àØ>Ð C½=p¨ æùIu]q[\ŠëlÆE`¶ú>q¸_‰8ˆÐ×Îãû<Ò6†n<±ß +dTv+—„¬JVS/Dè0 ç €f–üûŒ+̶=>åh)” ÔŸè²(ºáLv‰Ž¸Dm‚F´‚¨F¾* +Ì¥ó˜J³ˆ¦œ°=m~/yÔ—ßð­M*í ´E´ðfnIj›;˜Ž»‰†¢[DrBµ‰².ߌÉ’göbkN;ð9ÒEPÄ“x§—Íõ‚YÌí–{®q¥¡(ÛtrP9õsª8\ƒ¨Æ) -´^„½ɳab iNÆyÙ€w¡¦Z˜ù®‘ö•7š@´èÖš7U |6ûî° øÛ?=m[Dï™ÞIbœ>8œ;þ|fQE•4S‰[£æ¾“÷˜“М|É“Z ¥¯šoô×/pÍÄÄà1É-tÃX„ú ¥=ת ªö?¦0í?)]ÈYZÚ{‹D¼Áç™=Õ÷…ÐG¤â­NÉ‘š%À þð &þµì<Óºa˜â”5•›Á…šÎl)ë.D0Â.s˜\Ô +`¼&wK ÙXâáàº{ _/’'ùpQ|ýfù@'pÁ~bßtï·ãv™ÉÉ—¸_ì¿FÅî|ÓŠ¬×ê·«ÕD÷DV"Ÿ{¿ÛC7ÁŒ\ bñÛuƒJW/î:ðà€6N:J7ô „ïtD]3ýŸ•6Þ«E']×¥¸Òv% ¯W'¿O’Ç«“Ž.‘­sd©Ž•裣 ~É6G¨£Ž½Î³©« ÚüU³;ë MP"ºàª)ÒåZœu~©\™=çÞWGb©“Ê­@ óˆ¾zé3ùfþ¶è«Û{RËo8ªo}õºê{= +ÑW/rÂawDýûvÉ]NºÉI˧~ã«ó¢¶æƒè«ÕŒøÂݶZ OÓW/à¯õ†,ØÕLÝùêeÀQ„M%Ûvܾz® ž}÷៽õWØO +Lûë{#Ó ýF ùv×Í\l6/·Þ *XwÄäòÕU¥‚ª%~6ÚÞ 6•¯WgÆq3PlÚ%-j{û4M4»¿¢®§ ÷ ®ÞË6 Û&mæväu0 @ÂlY=aÓèÞÎP[M_} +ѤCþ…°Ö¼b·T_=õ‚àô +Nû Í®F½‚YJ³y¹Ž:=ŽßŸ +ö/§þðÓE­¤\bí5oýtó6àKÍY˜‹ÕOoJÂãðØ +g ~:ï²ÐZ}ï§ w‚»÷ষR½y»,¯hqÓ!µŸ²=Ï¥b㥓÷¶]\Ëû‚5x風SR½ÀIYö^ºí•Ÿ†ª™/G/ýÃ÷{{éM´Ô T"¿ì½tHÚ˜²wš£—˜8šÀŒ_gtÒE FÎÐ{¢f½óØáä…žhÎFŽ»íñŸØtÔa]Ô»-…Ü9꼎½sÑÑÀ’ͶúÙpQ‰ ÈœžuâÖM×D=ðl¢Öcã¯3³­ku×ù¤ê’ÌÉD2wÛÑ×Âav ëÅ]g¦Š+'òïÕ]otÅ`ÑáŽËObøÐ× Þ«oÜõkxÒ…­:߸ëxX”Þ°Ìjûں딷 @ºÔó´q×!è²(¢BÐÕèžî:5Uñ\Ù¶Œ{²w×™‘@©.·è®Ã%5—ÕKÿxQÜ^z¨d…϶- ÖD2ÓØA«ÙZ¬^móë½?… +×cþ,Ý!Û"0‹ HJ¨ý +ï3D3ÒßYk¿êéºÏ»–|ÕÓÆKäš[%_Ñ·ð o9Ôqú\òõ‚‹]Þ¶-ù" u +‘b>bÉ—ûì¨ &Âxþ°–|âZ$ƒeRö%_^%üÆ"ÿK¾|ÛKäUö ‰˜a­ùr·ðݱÊyÌ}Í—}¨²‡@© Me­ùª/¯ñ®hÔMÍ—‡´Çkoj_óå™à¶£ÈŸEn>k¾®O„"ØQiŽ‹5ßJä‘´³IßXj¾:K‡óÀŠ¿¼_'|ï›âïv§û¯(þ~ähÇêïW^þE¹ÁÖ™ã¥xùµK•›ìɅ븶Å_{«_Ñ¢8(“b®˜àÿä+ÁyÍ;†‚Í÷j¿_Íâ/;š¹ËãG\ê`‡´µ›ˆѬØÕ~š§:ð­…võÿ¿p®lI÷ã´w¦?‰ Ø62ø>ïmž¬ZÂÍ›ÝcÞ;Ãnp§#­8ä½']ƒân Ø÷Öy.˜·ÌD—™5~J|ë^èy³{J·¬‰ï °ä¡|iÞ§½3 D‰|Æ$·¢´ ØT”äÒ¥ÔÎÀÓŸ¼¶!ÉÍÉe2G‡ÿçŠInÝ$¹ž2_uÍvç2Ñí<ÿÝBÒÝ ~$·;+÷x¤»sÎÌFçt!ú¦»ƒîÉø2y£ït÷æçKº;KÎJºÇG#ÒšîÞBŠBº›wEiŽÐȦшén»çOýƒ·ô˜î¶ðÇŒ5 ¹Š*nßç½³m¥0pÂ>BPóÞ„Øã”ReVŒ°æ¿3Êl +io³÷¢G3W/6f½3V£Š»‚»m1ëñ ‰F‡ˆó>ë‰iEûÌz`TþîÃÅñõcîÿ?ü¶íWê<(bD7~YÄÆCجpËݽ6óLub§Ä”:^,so·%ñmÈ¡·­‡Â¼½Pû¦Ód¾Ù7΀á`ø¦¹GLOäU™ÊMûšÍûɌ۶Ùã½uÛÊ>ÁÞlK„)$Ni‘Ý:!‰kMçµ1pÑœµ°ñ¼ÙíVlb˜Çtq1ûó#~>Uc’ö±+1¸æEÖo›/0A4T¶§¡u*Ö +kVÄ …7 BÚCûŒŒm‘A\¾ã{yìÔ-Î*Î{±9Øpz –¾9Í.]U'oˆçȧzh àƒŽqž~†µç@uÆæ„ZJX©6’¬šb-ÅïL{Jr)Ke@º¶¦5ál²ú½õ„êܘp"s ,;a6ÔžåS%Ì€Q•ö|ôTø'-Ÿl­ÇÜz ‘%™Îæ`c9Lµ¬¥Óµá¹{„pðX.Nùo–QÎÚNߪtêD Fž!à$•ÞÍhÉ…’ÄØ%©Íû"—¤mõ æ—T•P¥C¯@„¹hP£7ïˆ6f¦˜9j½n¢›;ÄmëÑ;òafTKu&RT­Â_ÏhT·Iª(ekË’µ@n´š(q‰v*šèSNϾšùÉàk +ì0p[$híãÐ×d1Ïd÷G|IB]äi¶êˆsXu’y'`3(MV'©ÿR¥¹e·&¹Ìt­Q¤l)üDÊNqç¹\BxTÊ1¯äd¡Ê*x~î¸h»*t‘m ÞÄ”£‹µUmßT‹m\ýuÍ.9sIhÇö¼<„@ºðšBEJéÜ·h½@΂(·(°=„µ7%È’MUeÌã*Ï 4KFN$K'¢Ì+tê]ùdÑö`ŠÒ±ÖíÔ=ÕËi‘“øsÂOëÔ¹„¯úüD$×>_§ÓO5áqDᛑFQÏ]éóaÔÌ7Ú?ò *¿ª×¿ml|8"Ý ‚Âþ£½S`nt€nð9¼~Ârò˜À —%‘´ôÐ"˜b0Æð*¨UIpo9À³ +B ª±îÒ0qy‹£N^²6yÉÊôXiüÇ{f''E#lž¦¹ì¥æÖ—ã›ûD;iÛlr6Õƒ†I†IoQÍØ?ùá&mk +Ùu‘c'›Ž§6kö6ô»a(™ËÎ\Ç‚y´)„ö>¯ø!è¬ÉXè§—öҮᓻ³%\r´oQ>,´öa¡¶¶§‡ž+ø;FWñö’9 å¨Ëî”Û¦$2þ¿Öy†Ó´›×fçqÍ4¢Û ¯)Sš?²»æÛXøŠ…RuhWJ¬þ¦¬-ÏöU—QAU÷Ôùm°wE?}; (ÉöOrø‚ +¥Õ|"òdŽ®„ç¶±_Ê~=å³DÀ±ÑH@N0uy¾é”"@iIw€s3"Ôv^s6‹ô¥âGDÚ׺];™¾™c1»=lÛ‚‚}0ÔT̺XYdÎa¢WÓ¬mŒ ެPìa¶?fñЋÔì¾=&‹¶&¶(ZnCÐ'Hò”BÃ%UÛÏ@Ë=û K‰=½0çíÒdÝìJ%jíös`Ä¢n7×£qÌØ&™Ñ$•d¯-aáTÞ¤áÔvŸQDHÕt =Å1G'¯Ø'ä,øŠS‡‚Ðë¨åM'T9tŸ0¢–]{Ó‘Äbd¯ñS/^ªÚYÚÜ:Q>¹ ~wÍ%ó›Îãy”A:¾éF³æa—øtï×!~„y†7JQ6Uàk™}\ŸŠ¤È>öÃq(°Ó›y'¶Ogbœ3ç¯Ðyl~ÞE|¤/­9›+‡Û£ÂsÃÁM o +„}¡µœÔ«r0»7ک×k°/Q\¤`=ÊæëÛMÎ&SÍâ;“§—Ùí›ÐóÌ›IØfn$ƒ½ÂD†ðˆ=€ØA>ÙvAô"®Än°YX”81¤èu%HvÖµ‰¯½ÕíÂÈ:VJIN~Ø(û铬; -i-¿³1eʸy;3#)Ç NY"]d7ZY7IÇb‘”Ã6ÓW¿ÙkÍOqvݨ)+Â@hDå&nö”Æài¤!ˆÉÞhè1™yJD¬èj|lNˆéë›ÕyóÅ=Bof!Xñ½„g8Ih–‚ -È9€ŸBŸ†’[°Ãê +œ©rkÏ‹>ÞÙĽ®_PΨEfpñ-ŠmÓ6 lxtˆ. +;Zåh0®jœ_=R?j~´Ÿ‡Go‰‡¬ÏC+µ³õº8ÏE/lðE¿ä꽉è[©ÁN þŠŽÉC»Ê‚MY´W¯±Wa›„¶^t:ë ºm.B‘à·’‰ËÊÚ SX°¸¿>ÙÚLö&¶èF—CÜœPì!\úð¯û4€¹0”„¦ë^¥(ÅÂkWߟð˜OXÇ>d`M¹6›'3} = ÁÓ6˜aIS¾~ _Dƒ×†êÙ0è>E?ÔðIÌÍ´MðĦ:%8ð3îŠva[uG}0¤8/¤BÀ}ÞdÐÀ1¹öqgƒˆƒÕVÈôåMøjŸXΉ­º +þáKFlBé0*„äN(•RÙ©Ö‹³-À$Yé™MV@Ôƒ´[B=z/ž†ZÖuºIåï||"‡°À¶E¥÷Ò혤"^Ý]ZÄnÔg=Õn¶…%±B?·¦[Pkûô ¾—Šü‘$šÙÀðòBÊÂã…½M/UÄAŽ4»Š=~LSqÛÂ’B5zxMua8QjVþfì]ÆŒú[×V•mµƒQ]ob¿oi‹âлcñƒhºû>Xg8n{¢R÷1—H嬸¶õB©(æ#)ö€RÂòÀŒ¿Ig²-ë>KçÃõ˜ ú­œ·åó©SŠPµH’lŸ—îKÊ-¤u„S¾bP—XSÃØ ¡§ì^((ìSÌØ ›XX*²*5f¨8‡ òGûº1ËíNÑáN‘Mß}¶ǨëJ±ƒÃ÷j¬dΛǜW2Í»Ì~My«DIc…€ó ±ÅòϺ—"U;â÷‹tšÛZE<ÍZóà žõƒeê#”Mðo¼5àL5,ÞU_Ô¹@ѯÈDoª8‚²ÈJ ¸©‰\;B‡k§ÆŠ’¿;PoI Q:Œm@ã&²ÛVEËy¸{ÍC³ãP$.j$Á˜8c‚vš3¦éXºé‰7Xs‹’žÐñÀ¾ô†yp´X+¨š&p}C¿«JÚΞh®K›_¬—By{Vå]]ÚÂtó¶…QA(y¸\¡´° \ªkˆÙ›i€-÷BûôB›o•„Gš¯Ú¹»CaµWe/Åh×Jåæá„^Òþ¥åQo®B,u!›Û„†}5ÙÂ,D.߈f\ò~èý^÷ "צ«mžìvzª!®ùÞé‹Òv6ˆylÚí ßaª-4õüâP.WXÄ»kÍàh>¤Gêý ëiTßDXͳfo¸•îœà´4tàñ‘,PP ªåöFæ>²¼‹zÔfCÒ°ñíà VW>,:ö§©á3K-É€+’šØÃ—#zñÔõ¢°°™1×ÓšÎêy:«ç9ë!=*AJòwД_BŠ•ÝJ(y`¯3µŒ ÿú•ž½µÚx¡yà!Y\gëˆB¢œ˜t†jVMK9#p}eKòš© +2ÈrÔ׸$5^>§ÏÙÅÔr`[-Ú”sÝ-Ix–™[ÑlÍ;ˆžù‚>’Y¡šÏN½Öô¶/}“S;õ}ª+pÚÙÄ,|p3+‰*Óëj…Bù8C^Ón‡¥¤ĉùhh¿¿„šŠî¯©'ʱ"wIFWžšŽwý†‰H›Æ8'SïSåG“–ŽG»ZίU#Jz‡*½uwbh­9áR— å*õÿ«ÏÜ |ð¡ìŧS+Óý¾íµ|†UòùBéETK N[§:¥Ìëé±’Ç«@õ]kþš¸èPäB´cþuy®UE¾Ì¥©EkkÝT'ÙF¼©¼€ê½ ­×üÃK$"»ÌZE†Feh†?ë:ÂVá!ÔµTäß©¯†µÞGã׬W± Ú1ì“ßÍx³®ü< Ðñô÷íÝÝÃíuòø‚Özûþý†Ö´ðf©!~â1°Ÿ*+ò ̸¼'í +‚ØOþLÑŠÇx¬¿€æØ.߀ +Yÿ +, ÛG¨¼Ýt¾%lU#¶»i³Ý5`çÞtÖ'lÓ3´ÝîWèÑj4v)Øú´5[9u½º +ö2€·¶v7€À‚ý@²à<Ú["ÀÙ‚ qÁ‹ к­7t#ó‚3@}Á! ˜À­c·B o§0€£?¹‚ƒ_úõ$ÜÛ€± nòïuŸÂe'; :ƒ£¡;?LCØ@ª1ôX1®Û&`eC(`¶!œŠ8Þ]XG­Ñ] ‡1àŽ·fÀ/¯kÄ@ÑZ¨þ¼}3kÁûñ^×r¹úbÂgYËîñÓ®•ûÇÌØþãÄZqr®„8ÇwX†¸VVLD\o+¬âã†_žÉ[†ß´ WÚº¾p:ÑhZ§Ä¯§ÑR¨p’††VºYDi^DD<—}¨C…@s³¼Û¼2u Lê*aïÌÊ' ü:Ây¡ _(n…ÓÀ“ˆ+Šú:N…]OÒ¿•»Â‘[ªŒ~V8»ŸÚá,—Š+ +7b½³$ÐtØ lgáŸs¾ðóø"/Ç-ˆ¸˜¾ÇëGüÕÏ&ºŸ¶øD.H@I›ÈHAšWnWÄAPŸ*×sd¥5g¦«&_@fþê9åëu€D„~`÷H=öóÌÝí%tQxd.-׋žïúóL]=jÕ‰ãÌ-´M£o¨~Ìy@¹m:‹l®×ûg§ÉøÙöŠúH=J§&ÙWI/þz}oá>zýŸŸ¿VbzÙ)G$±Yl60)eIª¾®s¤‡ ™Äÿ¿Î2⸬êùq Ä½Ÿ¤8þj4üz8Bb0‚)©Æå‚l@Å+c€…ìPBá,ËÒ7²®þø@»Md}-á,ñÅ.»Ø‡ßgY|ë ¥‰Aù´aÊé<ÃqÔ¨RHƒ+0Í£ IDÜ +rŽ­Œ×´è“Öú´ü6¿Z&åæ‚ëˆõÆ?ï¶ z+º8(2Ô3Îêõ´„2)b¢·‘1¯íõ ̇ «AÓE5óüh{Z¿ñçñ ¯·ðá7¸— ä}¶u²Ÿ¨eì윙P24$£Ì_ˆß_ù É4Pá¡3§ +aŠMR¼!cjħ6 O3 fzb®ÏꉶDÒ¶;OÅ”"°Y‰>'®·’òຕjµX´Èf ÆÞ¥• 1™¶q'è¬>;[p±ää-æ¥B÷©Úü X>ÀÑ b BˆŸÓoE n%?ÀžëÓškK¢Í\Û³hã%7Q¤°| +Ì0ºã +Ñ8FØÕó&0ÅYp ƒ™È¥yÅ‚O†enFû¤¿œûr.··³WðÞ*&î.ÉVÕù‘U3MmÚE‰Ño {“Hÿ:)¯ xN&{Ο•§*Ëh‡ƒÍì5ôW˦ƒ+I†?÷0-*«ÚvÓ=à»Õ”••X´†ëõyÆ*rKÊ×ïÜ6‚¢¸Ã +%Ѳ>>maJ¹fÛë CiHO¬ï4ÞyßÝÕg(vYÖ聆‘…Þ3õͧ7Þ ÷{3¨_=gûG¨1NÄ>é®™UVn˜Ì½8yF)GÄÞ»EA¥Ž]A—väÍâêÃAîœ%×Ǻ »[Õ ¶S ¤£7{ƒdíÀ°ô†VrÜ^J›Õvœ¬+ÚÓòŸ%ܪˆ(áJ‚yœ›çÁõ‘!·P§Î\R|¸?´CTt¼Õº¾RŠœ'°?RuºÒúivVüĕғ@6ë%Î’ +Å"‘- gíÚÌ6X²¨[ò(BݳíùÁa›Åäç _³ƒ£Ìl@t½Y8¥{¡³mž•Ÿ¸îT䣅¤€)9_âÚµ+)}eáÞê÷Àgø)”GëÍ+¶’âÊS4Öõ›DD…×ËŽ…»÷°4ùQÉêâÝÆùyç ?›çzaÞ>Ƚ…‡÷6ýð.ƒñØ~“Õ…O»Z±{R¬&p;¥‚% S3Xãuv£¾]$Á9‹-øaÁ®Oº]÷ÁÉY÷ý¤|-¶11<¦ÿ¿?ÿ›Ÿí)KÏú‡sHþBŠRôRi(ö~Q³ò¯„C³Ã`œ”ø´ÍßB€¡ô¯…÷Ǹ¥«Þ°hþ‡wÛÿMPi>½è¯f|Ñÿµ´ô[ÍÀKx4/}àÑŒ¼ô;Í•—>Ðhbú@£¹ÓoX4-ýÊ¢Xéß²h2ú›Eóã—ù. ý–E3ÐÍ•„>hú-£f ¡Œš7 } Ò lô["M§£왎>ð`:ú-f £ßœç™Ž>Ði:ú-f £tšŽ>Ði:ú-fà¥tš+/} Ó\ùéŸè4WZú•N3°Ò:ÍÀJ¿¥Ó ¬ôNóf¥¿Y4?^_¿YFOò“…½ÁfçiÊØ+½ÂÄ›j±è¥V¥WÐ&61i =joQéb¯yà"¥s¯ôš¥]d»@•LumUzeãQ»ÓÖ96J¯ù†(ØrFÕx¦Ä©× (Ùœ+›Sô¦µ(õJ÷µÞnPxä+Ž>÷£ˆ2¥^Sñ\¡_ag\¥^-Z™¼ô1³ÿ®R¯Ü›ïá—¤ÉÖrK½Bzà“¶Ð6^6¢¯ÜîKÐzMÓ-ðozÏ õ*Õ.òßÝ̶Ñz…—0¼é#l¤^Q½”¥™ªì¼Ð*õš‡;`6­l¥åÔkf~ð¦m+ ”Žš¯ë¿Ò*þÊ‹q²-pHµ7ˆ¿Úæ%É0³tCÄ [›w4vÞ{{ *°Ät<6Ü-6¯E–Ægá­1¿7‚°ëŠüúg?¥ ì“Þ'àêNWÕØëÁÚ‚|’ƒECbU05/ïIÀ´¿Qƒ-Â'JÀÔÕA _#\6"c¶û‰ÔÍÂýCO[•±f(Åz»gï{|4›Ívþ .:íÞŠ‹ÙÆ#†Gs”m‡=6âb< ¹[{’!uÅ .&쩚Åm÷:n‘ðU]Œ†|=^v†Š .Æ«§?ÁÝ·Ñ£ð¡9 ¾Ý;ÚbÚ’ ÷›½É*h‹µ)h’ t×F[¬¡SI7¥EUê0Ûj‹µ<¯D¶¯m1´ñTH«¶èzÞŽ +…­¶˜(Ô•i+¶×(-V'¸LXºgÓÆT.htvԽƘ·uo4Æhßqi“‹¨»F±í"ù"Ó³“dúê‘þ~ãGo|¿DXì«[ë^ {i¬AïT÷÷ùޏØóåÈLqr:3-Tæ]š¿ú£.rÊ {cÅw²¤nt¾DbìG>ÞNfìŸïùþ´Æ>š"ÿ +ÌÏ£:Ò5HRcˆúXøOIÔiÁ6$Šx‚:'‹7D™E36m¶ÏØ~2ç”! „1.õ“ÇÕ©Ùm[MŽ$Ó`°áQoõ^¦¦v3Â7pE/ìRa5—ƒô³¼`’„4éT±ïP³½ç¨êèš%áŲ`çFí4¯ÆÒ¹„Ñ"âr€¨Wvñt‰éúÔð‰‚ ¢»bå4r#Ñ 6õD»ƒ +r~ž6I$˜qöZH`ø†­í.™¿Tà©a7 C²âá_ojà‚>E9(&Oóz*s Ûþv̱^N_ÜvL.U„ýík“¿|sr.oö4⃼|}}úºc*í©û×O”$kž9õÍg$nÁTgË,¯SÁnáÐd!®»Þ™Qæ•%¯ˆÐÈtnf&^%sóB€No&5?Q+2ù¢w ¤›ÓÀ:†›mŽÆ¥'Zo·Œ—l{X/Kx"oѾݩç÷A}`êã]ÞØúNù­‚á·rà#„oC¿RçiT¸QáÓRc¯ºO3ëòYÖÙÑ`Ñylçí3̲&ýxZ]3-(¯³,9è€fd@b1X&7Õ7§1/¹¿¸©PEËD¦ûã^Ùëº +?k3\?¬ñí퇭"¼†°Ë„Wv«í' »^ø´aç Ó#îÀof×½o‡)·üuZd9î:…ëý‘6Òp¯*?S­ïÅÃK¨¶ò +;Ƈœíäå)¥q³|Ã9·Åd~pÑ£ó}õ +3l>® £LW°?¼q¯75î•:óp™ÓcÄA»€ÒcbÝ®Àè³mg‹Ã(æ.û­ˆµ¸‚w“’Ãåd3£…ŽÔ)šº;ýBâ\¡îlû-¨ I¹#9 ÎNÒR'/‚n1û/’74>KˆÒ¥„'[K'©ti¦2Ÿ¤Mr}¸/Oæ€ðÛüæÓ9ñyþK=¨£:Âö";e·YÙ©Ã*U8ˆÐ%¤óê ºdý:‹»¸_¨“;¢öÕ<Åj´ùiÂï„„| +ʵôu‡h³yïkE ³ªr;_Ù1Ñ|AèÛ ØI° 2Bˆ’©ÛÂSR”Ï›U½0|i *zx ܶ§Àš~¥Ã?¡ù¾T|õätƒAJB‚Ÿ7U|S”·)B6G›âhÎñîÀeZ¥9- §&¥7ŸéìRè0Þ Ælç‘oêãqwëêê·Iç©sa:‘:ÌGKçG‡G¯‰nãN¼4ed²ß]öÐ(ÀËkJ§)\^B¼+o“63ý‡ZxŽŽr©lêdÜê.‹Âri_ÊÖzùqWûÊ–o÷”{É|×÷´—®lÛñ0~ìÃÙwnžûJ–y'¿ü“=ÜÑ ”üæÔ@~Z¾¨þô_Ug©øòGÿÙB˜ßüêå~þó?þüùï~ýßÿð Æz¸òÅÉ»Ýú7=í•MI)-ÓÕZÉ˧Ǔ´ yR/YålF•dÿ $Ù§C~Ò6KµQÁØR»GцAr‘ºÄDºZ)iRdɓҤ¶OàJ¦rf™¿âíirplK3Ó™ÅSN¯àÕ”[ÜÆåd3å°“ Z\œ^•nÚYî ¿%îÆ*:¡ù™¥+nårÂÁ$²ìK° P²f6áD1Ë Îvé]Ù¥õDr†¢'V¾šÀ@;øKìß\'&K!L¼r¬!¥nNƒHX¾¦Ð™ÊìkP+U4a„‚¶A±… 3ó:aÐpjL˜ŒO—wcÓ¢s±i—ZŒc:Û€®)XÀ]‹› wm«¯sÁ¦ +s‡Ðn(v{‡K·NB1³{„öd Né¾ÝØv,°Ú´÷Û¿f¢©Î +un+uJΞe›ÞðNLîS(Àt8]U] ÇcFù¼³¸âÖmª´'Ú +ô$.!düáÇdÓ¡M.´È-U3.dtRÀ¦E|b¼|‰ÛŠ€MÁÂ\€ËR8ÁÚÍœUÁÎå|q6Â)"Ðz·µ~ØuÌ._#>û @'Oï¬TX³ýü;C^xê;J×$xAE]u4RIIb´ýLÏLÙ’Ä4Úcæ6ýõœ/ª5uÀÞbw¹\–¤˜¬®Çc;uÖs÷É¢cÏ+‹ÝMv`IÕ¾%!§§å“cÅ¡JÔöÊg!&jÍ%RÑÈ€`vQoÜcEû…²«u)ú3ó!CgVš¤76-i*L—WóOÙ¹Ù&“ˆâ.œC®ÄÖ.Ac‹Ù‡ÁãpñÅ¿®kŠDè Ù)‘Q&±ÿ˜3ìÞ #.÷,Ûëd'!ö"ÛP«çl,ê¡ (>e ٨ź üÞÄ C´/̘çyÿѹîìñÅ•Dì|×9A|ÝöÅÍLÇvbߊȉìãð /²'*+ì+“‰i™‡ó€¹í>ˆÌ9|ЧˆÌÜJå]”‡ð]_Ù°kNu¶v›KsAdçMé˜TÄ .sy’äoÜÖÀCdÞÀ –D§Áòn‡ïáüNb«)Cðïé55±ç¸ï# µËL¤xÀ +jd²™*žšIu‹n”™éPe•ºw,óŒ¢Â…€K2,ï¹àÈjŸ¡ÈJ.Ù·HЉ1Y)xwlðuö@¯ºMj.X—{óSë¬ýBÓ×vqBrem* P§³RÂ;tñ¼w\„&Wðá%פ†Tú¯Õ61†÷%‘`g•è„Hd +ŽBׯ©_L MßÞ'—¹i—lë;•˜øq(ÇŸîRÿK"/LÄkݹÑp’­áZ^SLIýðO•‡bļÑŘ}äSÓ+m¹(gt³Z:÷SL¦cÕW¤‚qL.¸¬'±Â>±<½}rÄ!eÀæü8¶£u=kq6¯¸k°êï,ŒZŸ—¯§VA´”zk»tÚd°I{x+øå~&²i­Ý³ Í¤›P „óÐÙýÇæEÞÜK±}¦0*¼Ü/8¯×ÖÆ¼¾ß–¾1ï°AÉøÞwš›Õ 7U¢ë÷†-/&'ÁN}Oêñ¢j¶µÎ6²gÇêü4÷¦±™¯RùrÊ-oæ¼™¹òýU‚°íÒaER• +×vK°5,k×¼$“M$¾ïíd×ͯœ~n®Y9ÚfJ‡È5Å–ïQÒf/» Uж4ö+î¡* L±Ž°Ÿâ5=âž±ßdçÖà}lþæ?2çæ˜œ¥_ïØž…Ių€Û\-L’¶YÖ‰ºA{S‡«ú‰WK C–TqKKô„ ­&å£Fû®”åÆ!@ê÷ì{w‚té5Y’Ÿ¼Òß7}ò“#C˜ |ë VmÜ(µ +WôÀì½íÜûoפ‹_¿|ſŨ¤lÒ|`Q’Ú–l':¢úÚpejTž +Á¡…Uæ_Û:$Í»¸ÅP²‘8!ÿ\½jQh¶C®ç:¶Î<´žÔLÑ‘)$›BH`ËÞ–q‚cítAÃ5¬(X$®òÑöÑI®*C=ByögºŠŸ +ÑP± ¦Â¨‹q7DX4ó07a´gäNÂÄžm£ÁâM’!”´×!÷&Ú›µþƒ›6 +‘1:šÔÛ)y«1º†é˜½ž$ŠÊm^ªè¸¡ófGÞœ§"³ÍÎ/r›]ÂvÐI,ó ¥}‚ ïB +2Þ˜·€S“Dª<ÙïCíägÌ—Ÿ]!ç&×þø‰§ç17ÝÜS>Ÿ†µ1i\BÅ?ìÑZC@lú¸±Bo«X2qž@rÀj®U Í ôÉUÙhæ<€Ûbx¯Í6@Ú"–ßù ÂPÎÕ¼ê2y¾Õfã“X­ÌvrÛè¶iÓ ­ˆ`ÑêëÛv-AøSY‚e³qù“TÅR‚ôÈvæGËWfaÃzP­Á1 ˆ[›FƒÔ_Än^éþmíl9/¯|c‡¯r¡§ÚnÊÉÞéWžDWÕ%,îbÒ°ÃÕRI¤¶u&ÐÔL¯$š£[`fŽ?§’žmuæÕ—Ç5¤ •Ç}Ù–aáˆ/Šû!l}+HÙ-ÅãÑÏÙB»„íÖ¤Âî×u‘̇Â#D;Âý~Å{ŒšEÆÍ:_¿ +·„O”h4ž½ªóK^ÕíXï›äüôô€ã @zÐ…tÏ5‡³û_§ê÷ŸçzhÕ ÑEºo‹QŸÇ\<›óì™­·ˆ¿o¦òÙ^õ¦óúX ']ÜdËü½rPÈ$ÛzNt ÞëÎBÀm 'ì äÛÝÔ*…ÖˆØù§ƒ{®{xß±Hö4t¥Ž§•`í…§ò:æÝ»Šhаå Lþc/’ÊEæµ\}zÔsÛ‚LœØíÞÞ “3º„.sOl´gNû¬¹¹ ´‘J«­?ø*ˆñîÆ 8×â ¼·iîµ¢b÷šïµoîtÓHþÍqDŒì¶fðœÓr4‡Ùßao+Ã1´änsò˜5cŸ8Èù0b"únt˜qÿmú¤‚B¶[0³$¨£…µÉ­~ +6ÀsZØÛ@3ÍâUæq&P˜ÝžÂÖ&¡«½×Û h¸Úöuª$ß΃¦âAÆá–&ø¨4 ƒ€JäÑ}*œ¸Ž–á2)È¢Äê×…$,2^VGŠ9r¢²bA¸d»ƒ?ÆÒ0rRm°5õð“žüº¦¸‰éo{ TýÁ7„¥¡K™1év-¯ìì*ÉvÔÛß[S½ç Xþ—àÜBx‘i¥ÇžG‰Nrñyz–OÎöæ<‹ÃΧ…€é”I:w#ÈÈ‹*ÔõñŽãïÒ'¢ªƒ„Áó9bg‰–°¥¡Å4hA±Û.“º$„?l;Ä®§ZüR‰VSȇ?åš…›$i²XY˜û×>Ÿ dø¤îaÄ¿ƒ@øZˆ€xG4Dì*tBÒs˜îrˆDÙɪð4:ÝÖh–fÆ*#p)îHÕ„vÒ¢Ì!-~þ;|çŒÍ®;Ά†]Í”5H‡wy0 Q®¹<¾ëS¨²+á@eS!@Á~AdT»ZSЗÕy /3iÑèq¼¤þƒ +T½H$PÕ@KØîÖïîÎŽpPÆ€õŠe¾ó)"þ§Œ ñ?¤cwF-¯ÆŒ ä"‡Nb/ ¶;Çã¼$]¨e݉!þ®Ò¡ý½ÞŒf3™Ô$OS‰u/wò ¾ ú•á B‹ö‘±jÈúzF94 ufš &v¢9DaøÔ/w^¬ÙÿH²8¹CxýȦA†·RI·"3'‰Ûóò‰|“½ƒ›P'LßÐ>$õ®®Gêå)sØxñܹF¾´ rدh¹¼3”\Æb`,K‡6ÜÝOkò££M +Fú΃êÊ DùJi×,ª.׊.!ƒ' –d¬˜È¡ ‡z‡; kU—3dÛ~THËbÁ,ŸfƒßCaUÅÛB¶„7·¦Ÿ¡(·ý^ÊXøÅ–þFƒf½°ÓÌX’ápçû”(äêKH¨C"‚´-[ìXyyøLÌ,0ãZ’s›]²ú Ä?{ÞZà=wÍ"›OÜÀZW€’êž#kU¢©±2óUWõNš|Dð³õÚŒ€›Æÿ1Ãý8j}ÊP­µ¥2?¡íhЭUŸTú>x»ËqWH–êQ<ÏZŠ÷FlŸ)Œ +ïf­ªÅ÷»Vçž¾ÎRÛ Ÿv) +>æÄZRÜO©µ4gæZÞŒ³{-“îWÉZn‹m-ØÆ»~÷ë}©Çmc-AÇg©do÷­µ¾î~¡¤öÍPšßÄ6퀸·ùSðÖ$¬@„hP&†!˜¢ØZ²¥†0À1‚ ¨Ž­¾A!Án<Éjñ,eë.xKp6D&ø)jóÆ¹ @à°Op¦VÌÐÖ УàÈøRp *¸’_ïàTÑ%]aYÁµýýÄÑ<Á»¢ƒ¼BÄn—:à˶ŽxÀ©7>`Ýb(°Bæö!ÅŠ¸ ‘ÉÄêÅPæ>°„îƒ!Z!…1[‘‰û n8ÆàpÅH~Áˆm|G­qî‚úŒ¡ò +݇Ü+5žg²Æð?bwY„Ws+67æ1VŒï>²b…c^%ÀCjfE-o3<󼿇Z:¦˜&Øz›˜ +Xí×ZáÞ!!Qã»|Z‡¼\®¯½€ßæŽ>¤ÿN@®þ]Òrí˜yÎÐ>°æECóÁ6«zBRöniÜÐ=±Í‡.ŒCýwÖ9´lSÕ¡{$dºCJH’‡>–mŽ=žg&æï¾™Ám7Û@èÞ õƒØ´Tb#Ñ®nQ² òÂQ8TeYëzD\i‘©¼VNä‚ésRvÅoØ”]ЏdjD¹–y½mh«—OÅfµXîAƒg ŽåÕ®V$9)ú¾«Ú‰k¬4Éó„*Ï>¹£ú×"—û¸vxÃk…ëv UýZËbÐÛ_¢ï÷® ÏæMÑê¾bå­(ñuÅZ¨'1 Bô­šÚ®Ô÷øùZŒW^«Šû]k‘Ÿß>åZÁŒïh-€þõÏ&èúé]¯õÓø½ÖÊküì»Âm˜=kÙ7LÀP0óøm™y]ki:®£µ¦ýqcϱ*²•"iï`&ÎøùÕXÒŒl£„­œy >>sO |’tcå-Úóv]B¨Áã=è©iEb¡Áµ ÔçþäQì3ÒЬ4OY4‰Cd¾¶“«R¿¬ñÇ ˆzÊûñ¯ ñ|•D¸YåÚ7·½Žðé»>u8O|sל]Ð@ÒA÷áxýnjàd¢)AfÓôÀ2Q³iô맃fL”µ[SYýÒ±¸à””èfÄÐOåÌ~ÁÏ/‘È‘;ÊÔü_¯,÷ûy¦žžGÁXÑ ÞFí\¬ì€5â@Xd͉ Êœ\3móöŠ¡ÒDÏ€×üHAй¬ eöÍy滋·ðÎÿüôaÐ;µ»]AvN³ó9~þ¡`~3¡ˆpi7ñ ù}Çz¢9Õ­Súªšß™]¯¿òUö8ý\Ž{y³v7>ÿöú„ËÖðî{Yçõ2ý’`úõöàÅ-m>>:…X[”íÏQ݈K?ÝNðÍÏýã¿^pþ{ÞÝç7«¢ßL}¤X,UèÈY'h|…‹6¿d³ø„[†°š±“Å%,p–ðæÂ}¼ónïLªb”ñÿõL¸xB*ô›9D´/&?ä$À4Kµ²ST{@TfÑ"1&\ë)]'ûïÌyÇ´Iš ¢#êþåIfA1Ð\[A‘1a߸äN*=šÄ v>›²x/šN$,}*dìšBrTÐGƒl6BšJJ +pŽÐé‡B;¼ ™Ÿyûá!Á#Šž@1퇓HO8äÞY|U3” +¬SÏ´ªì@!Û–’°˜øÃ9ß-'¸òÔ ñ T²hQPY-J, f#KR%e x3Dø•¾e)3ï`¢OFY O6ÅaˆÄ=¯ýUdÚéjFpC#œ¼58Åü¤mÍ¿‚ÚsÎèáG€Ö,gÉž“æò Zï#KóÝFdüÁwž5Q=âEBÁøË@¼ž´“EoEèÍð¸ò" Gbïß~rqàMìé?4|Ì:\›Ê"WÀ\çbVÔ\²®ý¤ªlÆ›Y©õû©½Ä<çìó¬.xÞÜž-ýVßYÕNœx q¯¨jf_Õ>P* +‡–µ¸>ÜvE£)F–º+Ì›ac°8S˜ [7]¨ÿ°¹(Ü£øÜ*IÜ8â*|pžõV aB&%‰iÿŠ„‡ {4íþ¾Ö×"wì²¼Sö o”¢Þ±û»H#~W1u§»\ëæpšÑDª6Is»‡¹¤¢! ùvßýòˆfh„!mAÆ*Lé‘Uý‚!’°0T(æ¨<ÊIq©nuÀD‹ÌM{ +ê] áa]>Ý sèúº^ö0âBðçDûÕKØ`ª¦«{lÚy&KÔÉvñt &…í.žgÝ2í„wûDaß¾_ȽӇ7¸Šý—gý Áf…)Lßvfæg0ÃëľmøvY˯ªà3„q»°ƒö‡ý ÷Ü(v¨ÿ—4û®fß%Þ%— â!é;(ë®Ð‹3{ñïš}ÿ$Í>’ÑÕ¥NuzUŠè4• šÛ3'”Jp,Tï)lµ,Ú+OÙd<}v +¸jÜð›Â9—¢P’ :|JFˆ¯¦›k‡È!¢åÆ|u $;mÝfIQµY×½:{Eé ­§éªqþDš݆®.›ì|­â=:wSuuãv‡9Ô·×E! ++£}ò¿ÒyÆÌú#»EÊ-¸ä +¤¥RÄøà}Þª}$¯} µÜä" ã”x‡í@åœ9«c&é¡i&£­ªšT +2Ê/…7 ^•Hƒ *PÿYôttÏÍ8yÐDE:'Jl„ ¯Iz¡uaì$Ü‚-‘ò8Õ ùD{€OPÛyÐ1é~Ǩoâ+M•ydNm¢½ØVÒ^‰@•’7¯kI‚ )¥Ÿ’—Ðç#[‰#C‡l:¦â†›ª>ëÙÁT3˜YÐ`–Úe–ÒÛõæç“qªt+[Š<ã%âr= Ðîhý¸º)DÔDÙ½ÅÙÞÌÙ5y’ æ¼ú.ˆôé SÄQ§r…™v¢ÐQ5®!ñ¡6à“¨¹Ð6E«ªÕ«|iz¡{¥šl|›Îˆ—ƒŸckLm›ª²Îâ…Õ"Ög3)gÀëAë›#%À*ª­¹Bèï~é9.‡¢·Ë_3]DzÎEú “Ǫd'5UVÞ6âb'(tÛ—Ëu›„f†&ÞAO Éž.üÉG‹àë7ËE¸?P®)»fJb¨€¢åb›Ëasþ"eê7„çT /šcÉSªõV»Ð¹AÖwPwaŽ',º4Ñ+‘ŸÍ¦ƒwô4/¼€@m –¬|ïÛNw(`‡(…3mÔÚdTe/¨^¶ÊÄùÈDNó¹«éháDÿ 6T 22™=ϼ +gÉJð° úSõ^3Xo1''/­²ÿÖæœKN `“íQàŽ©t˜I/r)ðŠÚªš’àreòÝ8¥>ÕXþ~wqñhÔy4‹,šú5[ù]»Eÿä,gÙ… h¨•vùå_Ö,º(vO¾ÏÚ§ÎRE¾!e°pÒÜPEåÐ&ÒNé~À¨j_EˆÚékÕÏyÊÜ ¸ýPjšñ öjþjÃÍAÆÑ¯®¤dk +ÞÓ 9¿ºÅ†a ü‚jFÂfUjɸrë›¶*¨ØŒÌ%½óì7·«]¨¨Í•‹’TÖ_ZH¼?É>ÞïÇŒ*Qš9Ú×pž5(J%I¢ Øæ:B¹CÒ^pûx=}ý³q½®|·mS\ +Êç¡ +GÙ¾Ù~–§*Ü…ÕCþVN‹Ô>‹´ ÀözœCqŒÛb§Õ­ÞÚzí—2ŒµUR¦'U_@ 'äî_t- Xhy`E[„ EÈvR{ÒÖ“HJVˇkëÙÞ“ØjË>€_`¡ }j{2I±ÛlEpÖæÍϺ'CØ*Ó†;\ÒQ–»Íþwi½/—ZÔˆ Ûø/¶u9Øeª‰7¼û[uµb¼DíXÜAÝ©‘éŸ*Í™g½š¦õËuqEM×X›—Rì(häõ,˜âl|je¿åf5€˜q>v„$@ a5XÞ!a¦D›6d"ó×\uvü¡ èY7ñ@Øy]Z{ø/uÛ$znôùÈß0Ëœ½6ä:4v‡êêáÔ‘mõ7‹’EE‰À•ŽNª$»<‰9C§À·üŸ“ —;‘-0ro~^çû&[Bpð¸èKzÕń߹Ý:IíðsóÔ`}”ôÊCí×á}!ü\=ÓÔêîß;5cÕX€ÃôÍçki¶ä5å/^?x+N&?& q?_êá*ûi’jQ˜wl—‹= Iæ..±¤ áy“½”ËywÙm“îöïåhÎpcÁZÊàáâ398]E½|çÆÖ7"‚sLÑY^*ݯ’½Ž$Ž¥õÛ˜_>(„Ÿk$Üú©mžÔãáE¹çi‚¥ÎÓAüµÍt;ÚÌ–w€Öù1Ýžgë¸Ë¨ãPçGœècì+íUÒI å@êÞ¼÷ë*{üz]–ñÂëòÞ?ÀÜÂó‡}%¼Ã°?m¿Å½½…O6Ä0âÆº™Tas3îñëüþÐVÜ¡Ñ; ®üòG?ÿþûÿbæñOÿü?üðíï~óÍŸþí7ñío¿ýÅßþSùd_%#Þ9ùSóŒe›ßžôO~ùÝßÿî›?þ»¾ÿÏ¿ýÅçï~ó«oþêg-ÜÁ›ÁÿÃï¾ÿ{ËTÎÒ%P#Â»×øËïÌ´ÿ/ßýò‡¿ñö—?úS³ÙqàŸÿîÛß÷íßóõ÷ÿåo?º—ÿî»_Û¸ß~÷íß~ó?}ûþ³oÿϾùî7ßü÷¿ûþ7?|4ø/¿ÿí2vRï“z/ÿãú¿ýîWóÃ>ë_|ÿ÷óYÿ _ê?Γ§wGózþüÛß}6çèõý´÷n†ÿïÿ‡Ýº½ÑøæÏ¾ÿü¿aJþðS훿ü‡ß~»•ò³ÿæÿ´~ó'¿ùåü±ÿûçßþê»ßÌ¿ü·/ðçßÿú·¿øå÷÷»?üÙ›ÿ-p&›©- ”/™"àòï¡4%K [¡·'‘‰G“/÷Çúïÿõïö$«rû€väôÏÿÑþçÿeüû—œ^þÓËÿö¿§—_ú/ÿâγ½½™õRSìƒzù³Ý¨ð`¶»â—Ú^ñ7_¼×Ìûó_|þ¿™hšÏü°øão^ã+ÕzùŸ•«6›m»­ýçt?š \Z0”q½†ó?üzÄœœkA=Ý›2ˆ•ÖmsúÌr ùÜ/ uÓ, +§ã“Ð'$Æ4ÐÚ¢â~ÁÊ”±äÞÇ‘‡wÿ«³oœfùhêÙ\0œäR(eˆ¤n iÑæèÞRû Ôn›+&¡Ë¨®N€kG¶ž!F¸}£³^B¢F§p¹Œ˜{ÝD÷? -oF»â Ý~J )‰1²{"AŽŠ¸>b2FŒ º•M*Ü»´ÜIî“Ç7·mœâB¡›Òb<@áýŠ';*Màaœ8¨ ˜ÜsôݹG$ôk}Š$3ráT—7(PÒ8Ò1¡ ôs€¹@¾®»ãÓ%/ݧͽ(Àæý 2N„ãNNY4Ò9rB@ér^Ù1îëê"§j—Jå ÐÉÅ%ë*@³Ž"wâüÔD$ü”¼3Ižª:\WVƒ +}36ˆÁc™?‡j…NA<ÇÊfÐU DZ—ÌÚñ8}‡WjFI–Ë&®²ìÑ»š;ìû]Š@©o—‰ 2.Óåjcž¾;žàÀÕCQÚ~ÈBy‚ëh®”ºƒ€ñ¥ýjS#qYš:EK«¿ë¬½9³"¨ì*¨—ÿ†dÕ)²:›¶Â%WN'?™ûvDóbuÞttL|@‚lfå\rwNwiÑ‹€Û_\ÛÖ¿ÖrÀïÿra©ð«á¸!–ozÎë¢oÆ®ìA€ô•|!fZ}ð@a{4ÿÒnèž3ŒÊJ +&z;5*#ï4è,&T`Dåí2ߘý‚z³ßd&£—â¥ÄžˆyO¯ù+0¦ÆÐƒÈ˜ƒŽTáŠ$´Ø»ÎbÓŠ¢ äÌžhÀÑ|€Däµïéx熠in|’œ=‡và©òÛ=ö13&•ZRi}ˆÍ°«¦BúX­ûéÈR=ˆ#Nïf²yŒœÜ¼Ò:Šôé¨ô4÷.Õæ>™ƒIÆu¬( y£8´8Mœ‰B-Ñb€ª}á³Ì¾ Ijò§Î›½ž‡íÂË€Ðr‚?¨¯v“÷>F;S–°1„ÖI +q0,œ¼VM„Çg®ØZ²™å€ 9ÀVÍCc9yÈV›ù0 åòL¸æ}ûÀÕ)è—mSÐü½žu8®CÄ쮨úÿ5)t¾âÅ×§Á0ZÉŠ„XÙb¤²Å>k#¼÷‰N†’ç»<µ`£('h”Ö‰‚ÊÔé%} -'Ä0ÑhyGmhµ- =t!¡iìöAæÊ­“~ Hs ¦²…Y°“F#¦‡çPs9dM ±ƒ…Ó]4ZåÒ,Ë:BW:Çlý` +íÎCï½IôNQ¸†“FˆmØqÝEA¹»‹’¦ æ mÞFZfÃÅ“©Uz\¡qù­õ€Ñª³¢‘£@N¯cˆOHéO¶õì×yzãÝá½Û‚©HK WƒŽ¥ímŠä4Æå‹Gœh¢ SÝlg¾¦âÆä+ä˜ýdž×B/ï,1ÛŒî¶ÿÚy*HaT&¸H껣ŸnfQSñó›kHÁ@NWšiŒJ¨V2JXEÇú # p°f>°Œ h#]héÀ¦f^.dwÁh¼'cÖ–M ^…qŽº,ªô‰ké5p´MÈ€ã+b’ââÙ +j|Vfª6‡™[Œ…+ÒèêI:x>Ò³Ó°*§œ"4Ò¦T1œn´.0¹íìB—Í^wI7,à­‰¨Ðƒíಫš?tâQŒ¤  +X 5bæFÝF±˜“ÌÖ%ô~š7í?UqÌ>i†“ú¾€º-¸Jº²b×$j”Ö5àTÏ3#4åP;ýÔ«†ô|Ãhs!úŸ„~!Ú0ÍEGáZž3;m®ö†šøàj§èr¢È‰sE5üäË´Fî Ä »c>%(ûO0Éù"‚Õ!Ás’€6šËWD÷ D¯È”o +ÉT:ãêFfñÚÍñyÐLm²¹—€Ç;l©I§Ö‡Do³ÿ¸23ý“Nt?<–¸Ùg„ÿʶ]5ÏÊÓy^N%¿ÞÞqƒ1ü> ³dªú…îöšÝ¥¿JÞ(ü10Ÿ+»¹ÍHõàJÍTàm¥>\Z&PËvªˆú‰6½¦_iIÙ"á,%ÒËÛ„«àç<Ë!JŸJ+@¹ìƒñü¡Éb×4¯þ˜°tÑ” ¿ +ÉD5Ð}S]K”t! ×°Âf[£f2™¶šàa’{Ã瘠 °y¦©AŒŽÈ:Eß‹c'ÄY±ð¬ÓäMöEF´º®:2{ÇÜÔÂA[£'÷Þ Ó>¼ jŸX’AÓÍC¶êqÀïÎÞ¸ívªoÒ›_HQg¸D¯ÁXÂúþž(ôs=²#f^p'ö +t´ìq?EÔôÖæ#!æ=QŒ qüS +ê¡_é'¨qû¹ôÐ'ÄB/ÒÞTßjÒ°ÿ„å…Nrʳ~M-í'Ôƒ—t\%B\bç“ðQ‡-cΊKŸ.YhMô<‡\¯á„KØ(¯¤ŽÝÀóI¶4ÇqˆÏnâl4HKaú Ëâí¡xxñƒ½¸ò8àẙbT‰À^жݿ*`Ýx¡¶Î详Záž\ôIðé§[Ú·LHP’ݹ+ŠºqmÒžjP/Me³F;áì à, sºD,u~ü5-?;'•™Ç§¡_ÖŒÆé@‡.Š[^™N'\´Á-æÀØuª7bö)“†­G £ˆ†ÊIwj—²/7‹Ÿ¤³£8pBµIgßåÛ6 ‚¨2ÐL mŸ-Ñâ +4l%ÜDǬ»öíõPÑî®·8Wó‘ýW€‘íÀy€úà€ì <ïÿ¾£Mþ†÷Á`³èC—Ð#q@$2ëâëƒÓʈ[Æ~‘ØH9ä¹÷˜—A:*¥FÜÒÁl3ãñkUŒ("vcS:Jsƒ²5f·ÙAϨ1Þ^jg;zÖ]•³“MÀˆÛDºF„IöhÓ|-[1GŸ5m;—ì³l.f"̺7OPÞ§~¥´ûV“º¸H¥‡{…ƒWQÊ"£pÎÓi!ò“˜¹g, !À­ÓqþØeKf™*å<‡} ZvmŽ"ɰO)ïl˜Kö¡É5ðÜ¢lG÷~ ¿GÞ+ÏÖH16ÁIalÈ„f,}ÂE.A!oƒ`>°ïrþ ú<ÍÚLß“càý9óO…ÀçE^K$±Â[u?@Ì¡»œ:–Ûëé’67 Çëß¼1SÄãõôyz ‡8š˜áDr:%WG–ˆ5ÓN¾M Há=ÙƒÚ%ÿcöà ñºß×Ó1 Œ ÌvKâ8‘p>ªEѰVÖÝ—æFÃnéú8B€ª–F[^v ž'b A¡•äD­4ä“„’¶YÚ“X tÐÕÛË•}R~­Ì)®yQªtgœhétwÑ·Œ€ð|€ƒo<@qnžq’F>â=ûd–[sÛœa ÿЧÀ/ðO¡‡Üå|Ì…§ƒö!.<— +…~âè¦Ü ›v4#$"¶CÔòúwÍü náÝ)qJé÷ Ïç”}Å“¼=Ûú¹9€Øx.÷éÖƒJØÖI:_hæ$v.YòŒÛ=î/O¾€/OàøæWf>Í4ÀŠtð$´•CwÕYaƒ sÁM‡‰°ß3U,Ö)9c›&ÌÔwu@‹…ØÊ¼ÙN­fÀåµ ;0K}P?§SŃì}¶ –ƒ©gýJ|_v‡ t &¿Ž\„A"ÝïNÒOgo¨0—À‚—X„õ‹¨%®J8ý"){öB-Œ1¦jðÓ¢_cl‰p›¼Fr=ÀåÌ÷M­ñcxÖÌþB¨›èqׯ# ÅÝÂr SÚ)2¦y@§ƒÃY;4üVõõGe() B!}ON’=/ «)Ýol=x«ÅøÂ&F¸;¤ñq¾3C—\,5‡Í‚êdð:pOYÞJé>FE J‡ÍEÀÕv™ÿŠ÷X¦îT8ÈV¨ e×ÐG>*¥Ø^Ìè|dÐÒB.¨=ìqÀü."ªåǯèÒ1wÖNqÑ.l­íC°.>´…ÆÅû΄D÷í§Í›£¹MLj8à÷Tž‡üÛ|õr§é%É1Ùcï³ÑóÀÁ,HJ»w¡KŠ&H„,µyhí¿8uÀ%üÌ +ôûÞ˜•¬õÆJ„±i¾¸z¨5ö„b0ÕŒíl­}b9ÁÝ— ×¼øy*剥³)ùöWלˆ™ôG}¡Xv2¯Ãòµ=Œçƒ$ú¦Wb1d¤$ýiq'’»cõP_LaŸQ‰Ÿ®Ý6í-?hþ ~%n¹F öŒDhÕß-äçŸ×Ã]Ñßä`ÐAB?½:ÉÕ¡É.MÒä`´ùÇ=ÕzöÈbpý¬GÜ ¾£" ò± +®aÎ:w°>·Z6!±Ü£Û%ø` 2^©ö«W¹‰$óíö’¸GÄ,-¤à{ý]E>Pt‘I©œÝ÷@Eµrø"r-åÜöÓås*+Iê™<’‡YìÕX}öêAÊòœ)ˆN=›; %lžÍãÀç;uKZü€‡ÈVÃ}ŒØBN‘Ejqu ¯ã·Ûo89à ;L—ÔdH¡ì½ž¶¯`¹l×D[dà’$®wHE}ÐÓT¶1Û¶ëŒ?ø†¶=91I¢wT•F’`ãò€ûÄå&¤µMê˜Mâ°¬¾ÖB•T© ¼Þ&O³Áx!i»ÿ.éX²ÙzØécºƒ³q¨£’FÁ6/’H”²$îj¦O‚ˆéš…iޕӑÊÒ1"5cÇ·ðí>Ðüù˜ehŠ:!¤#IŠ($é€ê_fL†Kô%}:ä®0–[ˆàÔOwJøîT»éñ*ìÇ¡<¤]ÿ~‰õx¦«—c™{Í´*Úþ‚ÿΧsˆ‹í£•Ú¬I,j¤™) µ‡oAOŸ:À +Ld¼Ï*Ì„îºN²@ÈÚ)œéJ¶ŽDÌË®=%‰QѤò eBnBCšøÅ" љʌ×¶4ñ¨::åš¼‹ Ëlý§†Më?ØFTª@ÜJåÅå̉6ÂbªÓ©±{56ñ ]ª¿Ÿ‹<®$^k1òµB1÷’&W·c@¹=¦£Ñ//½äU.g³‘·Ôëˆ:¿P¬m*{ŸþV¬0±ámt9ÝÏFYlÀ©EXã:¢GŸªÖlÿ•öx÷4]ñyº241É£ÏdFÃyÄ@Œg¾`ÂáGÝqAzÙH7n1ÍÑC]$ÝU8Z±#\@À†ã'HͶ9(Üéc¢µ²cqó­#ûH[û$™ e<‰O‰¥ØwàÒºOµ˜Ð¿Ó\:KÔê(ÀPdò×Ýüuç»­bj×(b:‰µÍ.KY¡;ŒƒS‹†•¢9Ï…äsØö$Ž—Ã]JFV|\È·Ý;ï~(£C¨ð:› #àèbn(ñX`véõfNårLM:FÖ)ÊÄxñfüBC2êð*ˆl„‡hÕÕïsZxIŠˆ’4–-¶H’pˆ#&—½„«§ÐIE-ÈmjÄ‹¯KÊô¹b“´hÄåγ¯ÊÙ% ¢3 ði×´É@Ãû_Ï’OIí2¥‰<·2‰¶›4{þ«É[šFBÂá¹cÚÜ&"ÂÉÉ]â,€™¤#ž®{b>‡ªñ)0™"x¢–ÜßJ@¸4ph4î3’„'Ä{©NIbä•ÔÏžuA‘†h>˯<ØŒ=Æ|H7B˜Ê0ÂëæM[à ÿã(^ãÏ' Ù!BBo‚VR5.ޏ&²Íü±Öî +ý: +€/dÎ|%,.N^ù`¦8l» +tOÀ©gšLࢻԈüÀKØ„ÀÛ’jà9 +Ve¾Ù1A5>líµ‰çv´SJT}}„ÇÖ̆îøg5X\•fÖS£47lO}H<bŸ„Õy†Ô/FšÒI.e™ò,Ÿdýz’4`„yfŒ8(vÞ€s@û ö<¦“^ue‡ÞøS_ ñOïxºzû·#%­¬ÏrÜR‹¹ê—´ «>*¼9|Té¿DñÚÉ ü4ÂßUsŸï:lïNÛóŒÙ°`ï”⟸ÑI‡MHÏxô»%¥ËUã–<Ç Æ¡”Æ‚`êìqÔŸÍÛQ{í…kªÖ€Ëyù»ú.\ær1§6gY ›WtnFàÿ³ÛZ¼¦mžF!Ö‡³"ô1 >"¡UkuvH01Îí4\âCjI +5ר¸C-ã¤ý!sÃyÎÙúb[•P'O@•Bf®#Vûì®ì:ª7Çoå^ÝKlJ¨"5ùœÁG +0‰v=RúTä³ئ*̶ÿÆÕ®ËL§—v êž¶%Pÿµ8¦‰:&"³;(R—¤ |ÈòÛ§9ꭓׄ²\ÉÒû6ŠîžüB¼b0ahsÒšÃÜ2d=ËvôŞȭbÿ2š7¨qÁæÕ•¾¦Þ|Â[sÉýw43uTát…?{:¾y²aÀ[ÎÒXKÆh@ ZûéìâGéªYGô…ƒ8èÓÊ?ÖÇ9µ +¯ˆIñ´¾±Iª„Ó-}œÔ…CŠ#K§ÉL+Jv5EÕv¶Ñ%:ã9îw±/78F„tÏÝnà­’íM#¡’èÒq¢Á‚=FeG”˜ Ã¹ñ׳ö gß¼±Øår`"Þã4 jµ¦eX…" F®I©EbhãV²ƒvìË=fo"´Ÿ;lâFO‡«xÏ_ô 5R +dSmñhšçÙïfQ€òlO!Ù%‡GÍ8ÁšiƒDùÆ(mUOO'ŠÄõ9ü¸¤h‰<UMŠø¹˜¾ç1¯#~ñ¾¯×â’Q@Ë}”w:óÛm— p=Æ…—Lem*zO¥ÃØïJ¿y9ÊÙ’EÇN­N jÞ2î`GjÇ+ÁjçP åù¤'ú%Ȉw†`!ë)¼—;-›¶ ІuÚuét¦„$‹-ÓËÅÀH^6Q˜$fkØ‘š\‹±‚êJ(T¢nŽ`P4•mß¼#œQQ2‡ÐJ`¼Gý/B²D§…<¯Ë’GR4a?Htß awG¹OpÕÁv£xátÔ›z‡À$Ht€£«¿«@˜”÷Dqun;oº3ÒÞ +üL]âðŸ+%€“ï#°—ô¬é¸°88°¥Ïã@w9}º«€ÄdpÙ$Ãñ²ÆU³ð:zó"³RA¦goR‚ë ˜EÆyˆ1Î[‚ì\w$NTzd溣—!…§&b×  Ï¡B±Ê5Ê>@Í%¸!‰À®â¼g@ †@Œ98µÞ;ñðб8ø °ÃE݆B:> ¥îüïÒ¨¢†ß'Ô¹Ìþ©:Üœì¬s7í®¼N˜8é…̦qÑÈKÜ`ö‡²»^5HÑõEÍKT ½HêHsL- j1¡,B  Oh%£°tŒ¤çef>‹ÈTŠ>'î(ãÓøRg è5k¬oØSÉ®èBù7Šwmšj¾°td[‰J¡Ã¦ ”øÌ~! Ía—™<6@T-@Öâ@¦p +@£ŒfœLæ¸Ídó9ÉÚÊòëWA@°€Ê ÑEóÝÔ|$P‹ÀTÇe›LY”T®×IÜŠ^çcœeUÕ›rhéÀenF͌ءÕ.æŽ(½àž%oÙ˜jñC]/öLÐåq·I×ò+ÉmçE ŠÖ€+®ÿç·'üFNá/ÿøùk®ÿáã?ýïú—ø§ÿëã/ÿê¯þó/¿ü÷ü¯üÓßÒ÷W: +¡ìmWŒWV@P?`AíùÇ,LÐ ¸ª!ëÏöÎñ¾ñïë‘õõ.‹ýç'ž=°d6Šã™ûÊÆº56±Õ6¼i€ÀLôxŠS] F8z€'?¡Òe¯o¢ß¥C å<Ã~·Ñ0‡k~nþÍhʘÛ6ŠƒìÌP}^••ê™Å˜¹k`ƒk8„ âI(?vÑž˜¬g‡tPeþðÑ·ÞÊ*ã‰ßbòUü&F ñeÝ/Tð|}ó +7ض5J¦$Nø|Ýz¯ša´ê[ñêú7 Ÿ°p¶ßÓ£°jÙÙDßDB¡ñ95Ž„:"G7 @FùY”8›,+&?|ÀÔÓFÝÛ“õ§”)!0ËßW?ÿŽC˜ÔÌ{x|³>—ÕúÉg¬¡èå.ñŸJ*kõ’LÆÂĵ™âñFÒ¨ÙáÞz*ž'Å“唞æYÔK}1y’Ra–¼R‰Eà€^kžŠ;¨,ŽÃ¦”•õ™3´ˆöp%¹f€^ +üÔíW*il\ÇzVFU•{ö´Hݶ¼üˆ;EþøÕ‚æ9XvÎ ‚µ˜Åã²DB&PŸ† ètEˆ«ˆù/%»}ó\çeX£RXkpšö¸{~a¼Ä V¯‚"õêi/½Èt.%b{Q³CaÕh·‡Í{óµ-MX7èqí¢‡òs«G=Æ'çŽý޽Ú6ànzþ‘ o/g”»1Š® õó¦e“·>àÝ”«=·ƒ‡Ý –¨Wâ +"Ä ëP9mxM¸‹ë¸Ú-îq˜§Üztj­LVŒ…\諆ƒx¼ ¿ +0›zÆHVz…i^År%K¨;­CÓÄæ^3`²’ˆÇ”¼šõ¶ò¦‘²c;T$<ÝüNÒ)?ì "6ÓãHÅDýÒ·×<67cò› cqqz•nÚ0!¦(pŠDÖpɇrfƒÃ8—êwÆwØD9s4ºiboØV_zzîM¹¾5âÎg½§:F¥ôRâö̪À=^!yfïMò„÷µU±ïhÓ¯ëBƒëÿݽçeÃ%ùñU"¼UØ©†BöZ×e¯‹!X&Ñ5ã@Ôß»S„¯Óê=0ìN æõÆ× ‘hkÛKµÉ½$ó{Éæ—m‚Üw¯›qVÇiçþ]@ O’4y ­h +hyX+$ZÎ}—„Xþª•DŸj˜»6MÐÿÕ¯‚b"-äUnFHXåŽbÕ‚«bádWã{n1à‚ùJŒ¥Q§ä \ÞÕ£çóözƒmÏ\ê$aP”\Ž÷¹™OÆ€~X4 ƒ<¹á’©A£#ðSi=‹…ÀàYžëpå62„ ƒŸ@Ä—eUK2àÉ™bÅõJ,òoÇ4¿ç&@k+ xù‰]£©j'fíÐÑÙ„Ž… ÇORbíÕ£ÈvD1Xß +èɆ»¡6vÎÕI,ØhA…†¨KuмÑ! ÒÀ~ùfS~2þÝ××á®J§Ê;\ÐH÷<]½Ûœ¡ ÃiQŽ-<÷Ž?ð”Ó«íNÓ8óY²ÀÄHÀ±ÙbS¸–fæà)ÕÿÂ2c‹¡Ü²”®0ÌšùìÓ ?œŒ£KÐ…Ù2-Yû©=„9•Ö¸cÉsFù¨ú-9À«á .§áâ Ñ`„¸Æ2Q¯ñy¸)Ä…8·rߘâ·$SvÔ%8{"„P[5h!/±_¦£DãƒÞ©û­µ½: +èH&ô^b–ÉP3ß=ŒVí0Øvk ›ò 2è†àÓ~êg Yö £þÉÂSbvâôÈe¡h@é’~Ü.Cl¯ m# Æ‘©<ì5­›Œg  ¾éi²ÈóØ€x–34.­ÂÉüDÖàË´¬½jô,¬õˆsè… Òîé¢\†ÝóøAZƒJ.ˆ —5…¼Út9GàK¢âJÄ­Ú'½I [ÜûfIm¬ö]ñ¼®]†r]u0²PWà’‹¾»²ôì ­l±þ·¢¾«XW"Çq6¬›•Cy€º…0¹â¤¿èãTGðXìÈ? „ɪ£Rú½.dD¯i5{ôtŽÙ.bÄ/z‚¦ Õ^ü Ûà·’³†…Éx§ÁmØz6Äö2BÚšgº¨ÍF¤y í+àáÌS¬UmzQÞlš»‡ï/tt‰¯7Yë²ó·Ko?w¿uÕ¡r€ÂDÅ 5ÑÃ_¯Fyä%ævÝá«r«–l7ÚŠ&‘éûRIw_\Áq¨”»žûµQ´7m­0Ú†926_•'DÈ“I‘ÄÂHR@ÛµL¢IP~€5x Ó¬R”0Ñ$C³_’I¼^¿TZôú¥h"r?'‘‰› ,gPá(Ï¡mñ&p"ké!3£ üòQx(©ÒuøÙƒ[èa ½²FáJîÊøí»At÷ýÉ+SCÑÏVñ*±“dÆNRzÑm^3Òô‘:Ḑ1éoY¢²Á2âJ€Ñи·Ókkê¶‹l­qi|™†TâO9Ê%ß3EÁÞŒHa\û<ÛeÁ¯aÓóÊx¿Ð Ðì9œDQXªbøò‰íùœÐ†V#ša”µ~91‘G{²j¨f¿=G¸Þèèú&g\[ÛˆFAû"­@H¶ã1}zf’Ž „ÓTÏP ²Ö©–©ÙJÖ«5¥ö¹_#õÆH‚Y_ÕÊoEKý øS_ìåÕ¥úU-Þ÷öa£ÎxÔ*»R4§~5TBô5§#BECd…fÝi,I!ËŠôŽB+¦¬6u髸[òÖmƒŠ i¨Ýæ… ûüáhŒ0œðÝã¨a *Ý$Á¥ð­Ìh̃U³)©ÕîÜè6’ØQÔ[H„¦/M%°ðÞ99bBh½uå&_‰êÍΔ …3!&ô)L'4ÕJÖ‡““[ÏB©%÷!2|¢ha¢òÜ‚eÑ‘hoÌ¢ëUúz^; û.¦S±|£:L4 j- ü·Î…¾ûîR• +ÌßV,}´ÍÚ ª59‘z€oÙÜ¥Ün3•Tå?Öç{ƒFMyX(YÂ×MMš†ŠÌ)ré€É}ÓSÖXFŠîf§÷€!yeÔ~Y{«C~Â«Ê ¾¤pË"¶¦©…ãšP¬IPþHà'#À`ZsÝû:öG +ܯ[pÊ)ÙŠ‘˜EI‚D®BÜtýrW>B›)0 kç3[²Ô<äkݾ¬ $<^n¥Ý¨?®M™ÀÞw¹€Ù»@ªÀ%QÚ6ß÷Â$É^mf¤C?žZƒ1Únþ.=У›b8úç‰X§)ýã¢ôSz aé}Ã#(Ä2ôì¡}Š|Ìiô2›É)F®µÏ' +íD‚M¤ìî“Á3ÄTZ0% cìá¹z4„uéaFúR̸F®h·°ÂßcìÑÔÔi&T]¿;–:‹"«rØØpS3g±$XpÝKDwtJ‚’I¾^ͪšØ}?„„ÛwNPÿìH4 V­s3SI»L݈Žm-i\~5à}©¿óu\#ŠÕX’/;6ört®Ndå%äÊ·Ùiз½nµƒ “Õ×}|“FKí/Œi.VÚeX%ÇV´#DV—%¼µiæ¿¿‚/Ù¶\îg@óµoÔn}&¬j@Î.ÔGzW"ÅC[cQ¹ã»c$Ž-ú^\5‡)б?H¬h£ëÀ¸Nû€ +rbÂj!¯<#ó +¾™WR¹çQ¢d0uÇDÕ¶ó’!~j‹hñêPºÓ´×šO³}t!åD5©Sõš›ýÄ€â<£î½)¶ÜçO‰)ÇŽéYáû¾$þÓ£ u‚(Qí‘ ™²ƒr=…årmvêŒÀ*QOc9m$“å·Ü¤¬ÁÌO?–%<Øqí„LÖÉÚûTÕ(D¨q–jzií„P $y^eWá¼Dm•ûW6>k‹ 晴Î`!’G-¦›jd"Øø $ç¦Z‹¬-±_qëÕ ÆÛãˆmYó2 {¤Z…Å)åÅ#^*ô@;=ØÑãaäÐëˆîg‰x·¨Ãà Ë“kàæx-b3e¥É0:dù-ºæøG((,l¢†*þ©EeÓËÅ3‘ÿe—²H²2iZC™$ùZäså˪g;èY°å·¾«ê]•ˆ(¡·¢ê0F‘d¨Uc¹Qמ¬ØÙòÊ€c&ËQáÕžIïܬ°Q¢ã©)Eà–9SxZ­¯@§Ë#mõ¼ã ˆÎ=Ž£LHŒ@pºÈ˜ T$"ïù*œ©MM †'I9þ¼H¼^+¤¬S×LÖKøîö@ƬxB<\›ûÍÒ:¾Áw\BÎöhj[`´"ÉZ‚BòˆAynÅÖµÈMÅx0Ž(p0zÛt5Ë­ò½åuxË…äƒe + h¢{‘¨éqܤ­™¬Ö+ž,™HøåûLû +&¤Žô¾VÐØÿ<“8íBmÔN‰ü§@a¨¸0â@t+¡»õA¯ô'‚;ã]^òráÁ鬨¦ð‡!5Ex©Â7UK!ž…¸¼Ž“ }¨Ã]sãžéb=°óT¤Iµ2AyH$g >$ø€Ýá×׸ }1ö‚ Ë +Šsk½NrY0«ÔrNš‘_‡™ Ê:§žixžû‹²’Á¬;㦩¤ÊÙºñ¥öBr×ÃÌôb£@ñ¿þ‹P?jŽ€Ð¸i‰CQ¾­¹="Å“oë_ +b©o™a)!D>¾>±Imjn†ÜÌnú$®/2V ˆÞðÏú8çÌ"†ÜmdëBÀâifjµÌ¹Š]nU’{«çCõ•Ž?á&ëú¢î<õá2x0yÇláTÝáæ­…#)"$g—VÁw†?α† š‰õ4r4rËôÖ\u:¶Ä55iZ«aX¨@nþÑ´¶`ÍÅdÕoc_ ]¤~_j+ί@äí߯("(T„ “*ûÓóöÃv*]ˈuWª‡‡`—s³;KT{5x8ä/˜m„)÷ç—ÌZÆD¹¬_ë ðõs4¶’ã[[ÙkÉZ"”>stream +(Ë´¨MRŒ‘ÁΨœ¤ +Û›ûÂ(Ã<žbï„É\æÌp«BÐñÒÞ{ܤz8w42Ò(zÄê/4P§<$ÑèP\„ÏOÀ–$¸žÁI[©l‚vG~|îKo Ö’˜Ï•u¾óeþn[v·¢ª:XûšN¦>q- /q΢šâ² }gˆœR‚ÎPƒ_ É®„ã÷êLpíÖþ$ÇYÀ›™¹S-ù’½x T–eŒËØñèµÓK¹CéE2”^Q<޵H\ “ƒ¨ M†+éxؘÿæ‚üoÆM˜ðýï£ãYŠ5‘Èë†8û¨†Â èHXá(ÕˆÂ4pŒ2 ç÷…x«¨AU’»#ÜsöcôQu°ë¾hÈð##eÙòŠ,Prb¢ý.•|ä,‡ÚßçICE È»I¿ÚÖ;êl*>7XÓ† ÷B°DŽóŽj}÷ŸÜaÃѨí‚!9Tgù %Æg“ìO¬FXaSLßRŒWQç`‘¥É’¥™ÉÏ܉*l† °Üï¼õæi*§ÎûñwyïuîÂøÏ`.4 ‰Æ tƒKé)köc/Ú.~Iþ®’¢/=~Ù¹ÙÄÏrbgþÍq6ìjA—\‹1’ ûh7ÉåÌlïø­’•Z{R‚våŒm¸ëÃíÂ@§J(N:¨¥·ÐªŒ˜vÆ|ÎÔ£DÄ8¾M¹Â]‘ZUb E3ú«Gßòl·ÐYŒ)/;ä®RíÝÞ̨ )wt=x rŠ•q)jnžÙ™^§&>ª©“ ÓÎ6âbôÎö`^:P¹)jQ +°ç×°°.ö a‚¡Â¡ž‚;7k]‰Io½ +´ëþtí›Þz´ø×Z渟<í×^(ü|È÷­?MÞ%o¼z[óqÀ1‰Ž +·_>ÏÄöظ­ÇÙÅ~ý6…R³¨Í©ƒËwÓ@É©SsX/äKç­—Î2²¦°Iùí3ùwA@8‰7Ý‚Úö±x¨–ç#„"XyÄÕî À ž +aÐG}ÅHá®ÝÈf~ q“É8­y¥ê­ +¹zã›{#ô`-èAGM;cm,šœ‚ú‹5´iðIɬÛ:Jüæ]rá%aÿü 4²ÂPÞ3Ï4QÍw‹?SûnEñ­gk/NsM:eÃ!PHG¤®²^ê»J÷™óïȆ’½î”þ‚Sz±&¬!ÓÉWzça­äëz2sìã¥MÇ«Œ-ÞáÊ×!Wròkn@]¼‡½—ñ8Ó øUÑy>¶ñùŠ–=)¬WT¸Ä¨UVÌKk’`‘Ùb­Gªñ„âä*þ|Dô{î/çÃ[á"òU5GÁ8.Åë>†ò·F±ˆtp$$ ÇõðÁ;ôÌÕ˜‡§±öÜlok`1•[ÔЋÐ{ø?},Þæ¶þêuŒè€!äi§KQ†ÃŒ qùÞe@4 S Pò÷¾¡Go[Ø¥æóÓõØ&êu÷„ƒ·®»ÜnîH1Wù@JE2 ØCÇ{A¨§ ½m|`èU޾Wj'CàV%y +2Ez¸eøŠž`XÖ†å:e쯈Èu9÷ªMœópò§{ÎC1j°ª ¸åkU&%64Y‹hƒ…#ÁB‡-†„d‡}„ÝÈB¼fQ©rßž÷‡Õ †wz9s:CYTdšÙ}îj˜štUà݃˜‰rbÉñydÀº)7™Böêûz˜´èÕª2ÔE•t8N³r^²”éô'YÕ«O9ï~Ð×mêºÈ¢èj;daB×cf”‚Œžò!]ò­G}‚ªï÷óPº˜Êôº–Ø?XgS¸WWË[âŽÙ¬²±„ýÜŸ:}$Õ:ðØç \”A0†m0´8n-ªêÕ×­W?¯8}à–±Tì(“£Ö[CQ0ñ}#¹³V1̰ Ê!’‰Z^ñ7™îWƒ×øÕçiD2™$7Då9x‡ËaFá¦~†óhzŒô ÃGäk£îËb’…Õ…wf…kÅݾ(§hPÀ¡ßÔœ_ÂpÛ’²ÁîñHOÈš?ÈÆÎNýJ'ÕL( Ç4æ,ʲ(‡Œér^*F|ío£O´Çí›NÇVåW çW·Xõ±–´½ýÊÜ0¶(v7bí:È[gØ„ÁÛVìÿ]/jvS¾¦:šUÐû.@—f¯p-%õuTÃnߊÐ$À?lÈ æY½&EjÕ†uLB¦Ì¼“”ôáý}*C漬®É" +¸-ì)³Å{÷Ê…Zк١²â€)ÐÒg½o‡ŒÉ+® ¨Pž¶‡z235Ú徸}ùSÚŽ~ê|´NÌD40S»Y!^·ìšBM%®”;úCÎÕ£›×t´÷y*=æðB¢»P6€‹^#OWŒ>’¸X?q¡Ôˆ«»Æ’ï=Ο¶[‡Ö+ûLo½¨ót±G–Þ"»…$…ªÕ8 ÜÄéd†„}»•B¨{ô÷¹ièÆwYÚ¸¿=ΑâS>3‰Ã,hj}é Q^ +°!{DíÄ 3 ™³Åç*æêý€¦ÔD>èñ!‹ÔNAÕi¼÷x^RD:yIb·ïÇÁ·X:ÌU’Å@µ€³õÛlÄB°“x¶}£õìueVQ—®Aƒ‡ ž/J56žª"ÙdÄE¬ÀÀC•€¬¡˜ü·¹y%0’`Þóˆ{ÉèO,ÕÄREiô]”ïê)“_Py.ê:O(5³1bâïIÝ¥Ûi¨HÊàÆÕÒ#Öi‹f°z¯TÓ>>«íËM˜yç8Æòœ½Ö§{ý„«y•¼àŠüUÖš›T|ow•›§î]õÅU.á{P¢ðAœT;#º¡É:º\z‡Ü;6†Ä¢¸|õ5Xk2‰»CÝv†§]1âƒLÙP?ë%qؘ±"UÔÄTÊ>Q¢Ò9ö·ÙZ%œ° Ï©y ç2ËA‡ËßÔ6`Q!+NŸ|‡äsÂé’î{%æGÆQí~xÚ¦“×t΄÷MK¨ÒzfTAé×^ +Š»®aŒe4ÔÐUpý"N¿æa\ßJÛË¡Aà’¢º{Mxzjõ3‚_à‘3F¯l¥£èÑT~˜ngæN¦¢A67á õN–_«ÝÊ51ç,› ¹P|º®#z¼É£®¾@ÔˆVsmx>XÈùÒã—§´¥ÍÔÙõ~?Å¿°ëÖ‹\²CE¤5øÂþÞáÛµñk']0™›1ܾÈ(» (‚^,°lÖÂ$E´l ¹ðþ?ïÅ.(µ+«½J¸±+¢$q0âÀÛ”±´~ˆšQÔ[©‰ `ÉÒ*Dß2“´=ÄFÇõƒí騱=e'‰`<µHÆE…ó•AðÖã_wrÈiûk#d3%PY÷p¼ÙÐ tK­VV\4‘“¸ÖPYeÃíÔÒižO'6ÆÜ‡1†=Õ¹{Ìô80·ÇLpyéAGñœiÛ"O½Cæ&)’§X:í8ý|»*®‰n„£ ßk}“ýOz ó5Æ'ÔøØ‚Ð“¼ðÇr—ð„ì!ˆy™é\{"²·n Í?Öã™OÀUcû:*S†aC}Ô×eO KŸý^:zu¤`(»>˜Uˆÿ“†Ž³–ÎÙ§x$ +1±KHRçÞøÐÚ˜ó ø%LT)ÕÑnpʤî7s‡ãÁš‚¦=œ.€„]ŸÇe^æ[æøV›"Hƒ +9æ›z} *o#9ªuw¤­ÇÖÁ‡î…þ|2³¼´ð†\‹K¦CîÁΘÐÚö‡ïèm•P—t7Sý=q]Ý^ÉÚ1·ªUÃW¶ßðŽ;$©&©HŽîÓª^ÊÆ{hd*™›^€Ô¹U“éÕµcÕ3ƒÕUd+ž¯ÂËz¼ú(–õ¯bÙjïñ}Hœ³ÅÀ½U¹›[Ëžè‚ä+ñÒ‰ÌÓ}¹Èà~ÕG€wÎŒlÜ}¶½hˆCã!“òŠOáj¸ÈchĈ¦a¡°b(àJ|£?Ì@¢Á–ÏäTÝs“ä€$:2&h~yâKFOÄ2µü«J Ç£˜õSÃyò„ýfWyíˆrEy¼'4¨½ÈŠª@e@!ÚÆ3ßê2L‡4œ* €'¡az–GÃ&lv0¥El*¯l/V¢X0fl<ñô¤&*ž]¨às·Ä®¯›°^…¡ÃˆæõGˆÏ$xë1ª•ˆ A#ŸPûœ·oÉë¨ìÉÙ™Þu5ð!1)7]p>“ö™ÊÅÄ­îù8Éì?æ9!Zæ+Ô35æ,:of#X™ +ö©¼÷Àù£´'·ÿ¥ñºƒí$yn‰öÒI0¶4&ÍsÖöïÇc9*!œÅc~væ9­-A± ýý÷cÎúz–Sº¢1ÔÞ§ö¤ä>úƒ°›Ä˜ëE7vüpS +Ÿ¨NÝç| +!©qÝqŠ¡@¢0õz/×»ä!mòv)ÁœáoÄó•$…³»Qn6[§¸ÿÏ*×…8'®3ƒãê'%U~ÌéÚ¦WW(‘6;•3½"$öÖ‘ù5ˆxû:#oK·N‹í°2OÑT€Ôï÷Þü× ¾4b@#žÈË:ÁÚªMŒÒ¿Ž¸JÊ¢$›¹wÓ÷†S ähû«QÈÔ€¤o>Ä—ß*«ÈA¹ðšPF °„ü{žõÑ ©°_õŒG¶™WÓ:ýÂÑkS{ÿ&­úµÇͦ}~b{pÔ´±Šwúƒ#uZŒT˜„’`¬¸ˆÈêJYò6$Z‹ý…© JÜbEV7—´ªø’/GÞvjð}E¤ìɈëo…³¡B}3Àœ¾Å-r%:Ë'SÁ´óÛ‚÷¡Ó0ê„@š]M|œÎŸk¨OÒåÀŠ´üÚ Ôê9Ø—6HŠ8BŒ8EðÜQU9Ÿ%¯nöéi¢èù<³d2…¸MÅÖ4ªÃ + Ã탰BTû×Ïï,nO¹øW¨#5Z=౫®Ê/ÒÊâW×6ñËz5¼Þ»Øáb—]>¿µfh%>& +Mj‡è.ð@䄽'ÏÆðF•cúYñ]Ý:øÄ~Ùê# —+Ý95$«,/‰4F²©P¨ê§¼WÙ$–m¦b^×Áäé¹^œé5Õñ˜M^cmòæ(gÜ À[ÀL%Í +FS•†¯ŸÏü”ªî€†ÅCŒ- i5‰X}C€Ý?™ +¶\®°þÚ 3¨ž†DgQ¨"'|a>ôúV¹"]LµQBôÈ:92È‹`ÁʤÀC8 ,écÙe˜ísLˆvŠ!)ž%©yCˆNÎäÕ­½"þ ¾VIºÈXÃëKzP£P#Ö>å! +¤Ý%¦slaXðL S«âПßê[íaíÚP28ý׆¾éH9Üׯ…A)i!ÚUODq÷f{*„Ýáe£¯?Ây¬[péóJ£Hv#wjUÀˆùùù”OÙÝ’Êñh¤*†8F ÌMGuÊ-(H$’úÊ@…>q¼0Lõ }C·aȰ*G0q3X¶ÑöoWŠî½§Çïâ­ñŠòêùJ×+Ž˜;÷YÙEP=»4G{5äp5k»9ÜÛß:6õä\k«pEÐMsŽ€N@êÉrl4·®F Ü]ÇúM là›?,AÀ`I‰—=äšDËWQ7o h}>Nz_ T[3çn3¼ë}ƒÌr×À±~¼ÂF!L k=Z÷s³„.mUHe…=“vDd‹Âx)¿5®÷2:´`vLIÅÏì¯%‹§â0P(ÏÅ×G­oA ü¿¥€wp#C +rh »•©JÌÜ—V-ÞuµŠ¤¶óUµuF2fEï01Ù‹l5{/ª3£¬üX‘H\3*Œ^JM¼<mEËÖ2¹©±¯ÙXÅ-÷2­Êak+7ƫᤋÔzhO#rz(õ¢£±‚Ë×ßjüPoÐQEæ§‘ßKÄêê(Fªùô͈؎¦sëuYwF1eµ˜³bK€b†Ì/ìÐÞô7À°\ѾŠÓ{›ì™”Ô=û¡Ÿí¶À‡öTMðÏÁ_~O°dÂß$þ;vàòxþHôÿüÝú?ãã/ÿÃÇÿñß~ûdåã?ýÕÿøÿ|üåþ/ÿÛßþéOÿ/ÿô‡ÿòÿþá¿þý?ÿýßþéïÿîë 9Õ÷ýþ—¿ý‡úÃÏüçÿïü?ÿð?ýÝ?üéþ—?þ÷þÕÅݯ+ø3¼Çÿ•¯A¶~ÌXÿ»ò£¾áA®i>J¦ VÑôh|‚‚Ö 5Q{i0ÕRàDoØ0ØPÖ’Dc‹ôV‚)b%{„…"¦ ÄŠƒÄNžª˜)œ4tÄìÚÎZìo3€‚)¼L'í6<>@$,W'|ÆL:*†9sm>ìÑo{¬Ð9ªke[ô8È—å¤,×1zÙ‰Ë{ë—áVaM~¬P‰ì#¾Œ/=†¿£‘$¤Ç$Ân÷w¤Gï}ˆœàì¡ç7Xy¤áP 6z(ÇŠß [ÀÆþI ¬/*®vòzßa4‹“®y;×]IGÂIçóAy·•í$JÐZu×LaÖWœÊUŽ÷QYR¾bU<ŒÜA#wœ¹£nƒò5«‰d OÓQpá’V3ð4§°Ô=ãÒ7ØùÔSç96‹®Á×ôÉϤÛN¢Ð å>:¡º›NÒ‰‚wM9B%Ÿ™£#v‚¯Úºº~+¾wËyÞ9U¢ÎkûºÜˆ²íãìPŶ¹7åUëÎŒ].Õሌ1Ê>|ì€u‚FkXYMu\¨Ã­oÃ-ÄsxŽ”Ë4åN®BXü±\{>ç¨Å¼¿¤ªÊóúεuNQ@w &dUÎo{ðûy¸‚‘÷áß:ÍmQ1OïAx²J„¯*Jœ¬ó¡>;Õ2A_<ÁŠPĈ¾}ëÎ:¼~ô¬Ú âNró†CvÚ+4±nEÜz +á9lÛµÆR×ÇédK,xåëñ­\wüŠXdæ`^A PBSÁ¡g¦!ö9OÓy±lÝYNÊn€e== +!=F:%±çQœ'dŒÝþleÎt +;‘–´äÚ1m‹¾dUQ÷aóh5Â@«ð¿÷¸Ü0~Iší3}íœvPJGŒ9ï®QZT×éá+ºÆ³ϛԈøï¯=<“áZ]ƶ™·þí8 +,ƒýH½֬dw4òûÚã»aüÖ DV±^ë"Á.ð9(wÕx‡ê¢D<žH®åÁü)†:H?û–´ Yõ6s2ÝL~{Ýžêü@—©q5+þ¯Þ… Ю·Ù)U/åóªpà™z«¾×á BÐ+õW4Ä;â²ñ:ôJ{¨I«×°4z»ÜÞ{̨é*6ŽuîHÓA­Ot”â!ÊfÅaPV¬6WÔ’²”éëNžHõÀË- ldM×cœWIû×;¦à5Z›ï=œBKlàp ã»ãÔ6œÄ Dçµá½$X9¬`–XeóÉlc§ªÎ9ò%6½4À«2&bŽûÍHê uÃ9mOýzý¼¦<'t9ЪK"Ãñl`š–$Ǧ(öE<Üa¶LÅéæ#ÝN¡GyÖnj\‚Böža+¸ÐvVÞÚ)§üyÍ–oƒ9)àyp RnÒ}º {Ük5¤GÑcˆêÚÐT {Ò 8‡&G`âlöÊ2#ôG½Š¸LÐã$!gŠ€«ÇôD·Î th3í³;4OG=ùæpP앤;óÐ$xßZ {s½ Ò.‚U©±&V’ÐkÏ#Éqõ@:(H蘅ýx²âEÀo½/š“I ã¹fF&MET.š\´ªO ú{a Ó¶žüšy×kqF~{gOm(Rµ0:¬™¯™—º‰=äNô‘IRð´A×iÈ`ýÌWxëBJŸ'À†‰^ÖÈ…CÊîjAPу4=‚K£‡£ŽŒõ•K(¡lw®d#?r´û‘Ìp +²%¡Ià›P/Øçjxo À™×{%̦†>þüKòó~©"B,;µ2'«VƒjÞ"ªt¸¡WXͧJ6Ô¨üƒ|} vTÌ¡Á(ø^Îù ¡2:wnÊjÐQò°µDc`Ÿõ’á6®gÈú†äˆ=uâ|û¯q´R-„U60ÀÖûŽãrS¹q],ÖÀ¸(!»²!«|¦Šj+ìù0p)éœ-ÀzñÈÒ«E9òùšø¼ÿi8Ån¬]E +Ð ùGb~<í¨ßT0¸:×µ‚ôvædÃÓÍ®Ÿ®?O1±âîŽÎŸ'ÓP sõoªFõ…üv‹ãÃ[ʺ«%ï¢+×5˜¤*Hy¯íf×2ˆr]Ö„*7Þhy5äêbhĺTqÅ~}«õL?Mj]©]¿}~¸³É±~ÝÔÅÇåæ`h +/ôÍ;2ž'™w„_K^‹¸¬óäÓ!¦ùÀGÏ—`/œ‘MõXühd Ìy!†¹ãUÓ‹ÓÆ;ò±Y¡`ñ¨65b±¡¡ _±,ʵ2W7ø¡¶ºŸþ +¨óƒ TµеFwA¦#º÷†3:e_óQËoBóË®°˜Ç•šoýdÖ´Q{òZ¶P°‹óy~ è…ÙNpò)G}kP9bSÞ%žëpš +¯Å¯­Ð«D⥮õ`9BìÈÖà+òó>ˆHÐÖ“€T;€j +¯gꇯ'CŠŽûÑ´AЇæÑÄɬ©}Q•=ƒ5üB§ç^›o€Èj(‘¨w¼Á`ZB‹7Ý20n^+" %9x&íJÌD"‘´¨(6|LÇ>–Þ]ñ”\ufèC<ñjô^nsg>FbµŠ ×•½½?`k$A k™wTzYôJ_DWˆ´`Ñ PÓ†¢`8‰•úÒœÊt’‡0ƒͤ#£Ç: b¥"Áo­<=‹É·ëØ=BÆë[«7V˜Øç¹M—ËvT)ì/Š}ŠBAC©æJÄÊ(ÒLøìÁöÅ€¯ÃI¯×§T2±Z$~ŠÎÊ”Ž¯c{Û ˜µ–aô•qSÓt<àt•]ɵу€ÖÉAÌ+¯[ +!TÞÐÒ/%Z€%º >€VrÖ8=!²ÈÖZñi2»)š T€½à3FLÁŠàè±çæ~8L¥½»‚z»9JU¼ÅÿãYLekžÜÁÐÃ`]ëMûÁƒ ýö#òf4Z„HîüèæÎuøQD³= XÇ€c©ýóh1aÚ†Œá·ÝÒ§zf½s=Èó¨Ž*Qu|>»ðþ Ï ‡^b›kh9¡’8ºsFNû­XÖ‹å÷¥ Ð=ÈIj—l4 K« %p°&»W•#Œ¸OË—žÀÈÒª&Ëí›ã ƒ‹®dQ7p…æŠyÙJ¶ Õ …Ÿ¦bØN D´b +sÀsшkÜ4ƒÝŠúIQ‡ºâ…n< ù¥W¨¼÷mû[ch?sã›Â sÁ=çGìçÆ6³Ûè¨ãY•ª¸\më:<¡ ~¥AÁ\â.·o¨ú›¬ëkLq~ ú·)õd˜«q…Ìœ{"ÂÊòÀáF6}¥!ûk¿A¬²¾¸Cû4¥lÝ Â?0Neß9¥†qr„[ wÀé=#{Äž…ìÀÓªÈQ`¹Cièó[$^N®ÊçF½5~Q˜¾6N´…›HÒzbÈÉÐÆr¸Ÿ`SUm{¨É^qÖgJòiVG×=$†a›²žö»©½_¡ÊÜ`ú®›Zlx=zsö<|Z³@"¹vî¢G¶Vùa=› +µã/oû’ÙÚL‚l¬¯`TÞJ\)Ù篻6! &ÖJkÀ@ìò‰;ÑßšÄþŠÒPþøly ‹q¢ÞŒ2ùß/iȆ)‚žæ;¾GpÕpqíÅ vÉ™’(tÙTÏÞ8ûAÊ‹Iá¦^¹k§N®`- °®Òæ£(*’"l{} £?¦H 3àÙ÷‚R{køÕ´ûµ9½¹¡ÄPò\KüGäoµj%Nø,ÀÁÔM£ííT;æ“¡‚~V@üÆHúØZ⸤³L€Õl¶±o »þ7 ºìΆD(6a +V‚î ˆmi`]UÅFCU?ÿW7ˆ-Sïo{5­ h T×ËtU#á#»P'¸º qíª„dëZ3…Úvï6Rï6XàŸTçÓП†¾î¨|ÞO)Tjˆ$‘û¥BæZž›ßòf¯†Ú£©,ÂH ñ´¡0eçpëÅaȯû‡±:ò.h¦ ¶«·‰m47žÖ%—RëÐá=›Î5(O„á˜-Žc{豦zv<8ÇAm;1Ú•{p4~L(0æ3s ôô8Æ?ƒ\¢*v¡džxs@¦BêŽûÊçí- ¾˜Ú\Ãvž9šó øt¯zŠy,HBØñŒ”›64I‚€y(ËšÐÓ³µ‘L+f1ÜZ²€ð*°JÇ’wœ‚Þ©ELÖû]fìf.ð›@GFèðROø ¾¡o w t2™›/àÑQ®¹¥Nôîã Ò…"kt3)¡¡·O³"ƒCXÑð `NGb½î¾aí ʘÉÐKW¯³Þ9”päבþAj«­—Ë2#Ë,›G¦kpzëwgjm…ta P| ”¡£¨/Ò¤H)ACPy$pÛô ýZQ?)=fte—í¡'0誋è=Ex´Cï×y ¼Ñ+ž^Lñë#·Nz‹ iÉq?|ƒ•µ]4ÖyÔ;÷¥QðÁ寙øJ5oS WhÂhžÒo\P¬’gWÃkv¬Ò+rÀ¨¿¨í6bNI‹}"λ±ùí&‚i5˜É€7Ï{­ähô`iÖ«¥lGW@ùšÇ’Ü^*‰V0Ñ5ÈÀ™p9ZΛ3! ¹–ü÷ÖhP·{lÞb9Â[ŸOÚdÝO½vjd*Œ Aw8)RëjŸ ø¥†mϨ°ôÓ(W|½ÜÕØŽÒÊhëâH‚/Q©âóºî¿“îŠPÎóË $žò”[ü&GÕ«Ê“{)L|hÂßõ‹¼ü ƒºø¶ 4CŽÒ…$w½È2ÿ¤&ä›ù¥GÃPŠá^ã†JÐ7ǹ¶z ³imY¶ÝÊeÀóßzHÈjÛjn«Ä|Ó«Ä\JØe}h D°D£§nR°%ÝVá^uô#¿kýRR‹^*eÊê™yFìgš–ÆÖ¬@¹`‡À*³í1é!ÙQ…B¦îø<“«îRê04§ªä(zãq`~Ñ“A>Aæ·éáv+fQ…Òao®só(ë†ÈÊ@Uð!#qî*…i¾î©Ý©ŠYÑÝëßô &"´Öôò¸Û¿õÂ*@9‘Sï'L–¯¨Ó€Ãb¶]ïA´©nDy]¿öøeG0J6#íúÍq†‰c W`¢ü¢* ±…Ò÷ǃZ|oS¼¦nñR)êÔ(¢[±¶ ¸¡jk~2 +i˜‚KÁÀüµÇk¢g á§©Öôõ8°_ÁýU¦¯3b…~ëH’Н&t#]Ñöíî¹Ýõ½:< †MQr¨o n\ý¨’ÓƒT–KD[ébê˜çL†¢ /{Jž0˜ž§C/gÜ'Û>Ïw®q>ç¾bзØq#öÀ"íH!ÑCSVY÷ –æ#Ë1ÁsîMÎtA|ã8-¦‡h*Àᬀ; :Ñ–ÚH@Ù'VïÆX_;”}WîÒÏ­ïõÖIÑ­³+º%®kŽš(dmC;õ©€›V4-™­Èñêµ½uÈ`«û4 ”õør”3 ŸµGà÷q‚ƒÚ'$µäíqò +–ÀåÙÍ’Á‡c [‘“ zÉ÷²ÙŸÖfžƒ>kjL0,ÎÀ¾Ýý7ÕCÄ-ïSNM_ô寮çÛe Læ|KÃùekÒ¹³cVpËyíÌŽ£Ú}¿÷H±|nÌï½så×ã šA$œ1³}yN @‰Ü7=î g[¡XïOYþk/à½jÚ®—yx¦ FìXšÚn" IE]þ¦Äv…ÝUz”J¢É%ä»k´1vñæ0ýú4«¯âoÙÚ„¢Òʽé‘M5È”€Ÿed”êëDŠŽ* +æuί'¥>Ê¥€ÀWmõˆRð¡ÚJžh2žÎÝr ÏØúRà|0<ÊôÍÃQïhÔ’ƒµÏü¥×µaEo×T£(Å7=H·µ¶çKã!w¸ +dc&Äv¸åå$A¬>ñáÕ÷ÝcHXü×9ÁL ·^ªpßQ¬“¤5øÃȉ㠆[K–ãz¸(3ñ8šì†¥e•Òôˆ™¢Î†> 8ˆ„þÀ$)bO™ v¤¤L^’d®Rû©ˆò!?:eY“+t i%ó$9sZØRÈwÍ ÂPÝ62 ]k_5cƒH̺Ey¥Š´“8œ‡»C¶~-Œqþ]\¦CÍßì"RÌä…Ú±ˆÁ* R¿•:ËzMÆâ¨Xðš¬Ù6èå)s À»_?NJ&Ãp° ü¦SŒþ]mmW£¶ºz¢ÝøÞƒ5÷Ú—Æí ÅÿôpaÅ—xi‘õša9¬Å´>·²ÊϽ"û­ár †5¾l¥U7¥ +½˜í7ñ. FÖß;÷ÊAý‘áÖ¶Ú.±`¥ÁÙ›w-o]v©ŸNúŒÇ†„E—J%‡iOÈhxz„Ñv¼\Sî€0ZeÍ1ô Eƒ|¼P¸Ç.ˆS k±Ø"ä8rŸ"ðF Ñ'´†c°iu”÷Ít[[wÕxTuBúw²«}–ˆ-5å 5œFøX´Úúò¡@/ÍÆš°–wuÞ² CJrjî3ìñ’-ì±q¥Wïs÷ +‘t[.³z@3÷B@¢P»¦f·>(Z¤rùâ­×¬o`?o*K5o*:³ò0n…°×4_­*¶§ÚÛä¹Êåo+ÜÓ]îLÆËu±9×Ã’ÈÄ)ií#(Ȼٴ”N$x®'®¿ŠÞÔ™8›Xç€ãR‘bÜ:AÝ싲¥.± `ÉÃ¥ÕaâÈTà™S"œNQü*YÔ”#ðsh¼Ð!0Á”Ê+ÛfJpÄð$—N)¹f,õ`–qƒp‰oóëêGV¥!l ,CƒÜ‹Ç€–oXw]Ç=žpÌ^Çn ae®™¯›þ9ÐÙ%»c©^$‰E@x¨m·£ãÅá;hRT3H¢3»ˆñÀ§£Î,‘yZÇÆ/)L1Y<ä#`ë7 ¨ ¿ðÀ©fÈ[‡rœ,{¯µŽ1@ÔPíµ6³.[²ŠØ ;kÀYÖß‘—ƒ±†Ï F·EWãü‚Ûšpˆä4e‰Î\qZ>®QS/Ë +÷´:ßD{ƒS.XZu+­£¢íðè6 u/ü Oʼ2>óöz‰Û¼òõE+BøtZÜŸ¬®m:¸ÜÁõ—@BÝ#Ü6¤S&zɺ õ¸Òk’zÇ<Ý:7ž»`ŠÀh2ÓJT éq¢£‚„§"§TN˙ԥ®ðª?C×§š½^=°•45Ân¿äLÔwéÑ¥ïjÖ‰tÝ5wöÁƒQKB0%ÙÊñZKÆâz«ÈÜšÌä+&¹B®¨õÝ~ä1ÆþExø‚k¸F–挺ùŒ2=ÖäBUðUº‚4IòÛÜìŸDWŒ_„äQ€»õs̯¬±u’™ì€H±:´ïnç%ü*pMyiym n_ksJÒ€ ¾aêÚdzåL<6ÎDVëþ­R´Á žŽ¼Š)Ä\ +¾p«`J? óNõØ)$¸Uº31)ƒ ÔÅrF®×< ˜fô¥ÏE1 ÅF^“ênõŽwøÏ)GJ¤œÙ™z Ëò8oðTÖúѧÖ/‡  ÁwˆÄÞÜZ3¤fbHO{™Õf(¢B ¨™ Ñég­çFêÂE)lä4þÎ5ÒÛƒ°n²¦Ð.§âÈ<ÎÅŒ&øƒKcF;˜M—úÊM§[”x8sz<‘ö¡qSËÅ8ån´¼7ëšNœƒø¡ÎIÎÆŽ ØlŽëÞåX§Å!ƒ ÂPp +NTÝì*ktª©TΦaG¬4Rƒ•¬Ê +ºùžr q²4¦ÁÜŠ˜æ6ÀV6ReÀm¯Wàß0V%òQ.w”Z"9³c#×R£'B +Ž#ó¤àyf‹ño†iOÜ÷{¸Fo*ž:Á‚ëA¯b¶X-üã0ۂز‹s¨o`ûAò ¤#{~â Üx„‚œªoyûCgÒ5—œöåMô÷±ûs)rª§¾0ÁQ¾ Ð4^ùÖÄÏ`ìb ƒÕ‹×À¤“U`nÉ1ä›ËÀŠùœAË%´20`1W’ø]’ù A 0,`Ñ)¯­RKµxM+H~ùàÛb%Š5$Ы¶ëÐFˆÉÂ[\ËÓÕ/¸~‚ã¹Yƒ7ù´ü|SÂdýSTÇÿO0 XR]º=Ï'Ú›Möô§cLµ¤Ûsß(‡‘÷%2ð(¤²9<¡+ÈÃ×rÌ–D¡{¡ +ë"“[öð¥%Ú[³àzò7ÖÏ¿ã&.õæµ*Ôé q`=TÜ#wò»â¶djªè¢i·½îO.G ›u?;“ ÇAçÒ€<ÉQì${˜ç,¡6Ͻ|p#u¯IÅeÔ^HЫ0øíA€ÝÝ1D SuztºÁðR¨¼vür{>ãlƒ‡ó|%î Ú¸`Æ› [¼¡ìÂêÃÆƒ>Šz AG£‹ú&³‚»´ GRÂíaÙÈsš4îæÃ +gëÙÖ¯nN¦*"V]NCœ¶v²M¥xX0 ïÖ÷HVÀÁ€×°z ¯‚^¤´ÀŒƒÂ•Fmõà_öˆƒä¡B“=œ`é!Wº§8sn\ôëDìpèĦ›^Í*3N-×{<êé%êéØüÑu·GééqkP‰Ö‹ãæ]Ñ +è>óνkç­[òÖl=å;”Ð À¹†H~E}\¯2 ¯²‰½ÞÁ7–‡l;QÛ 2³¬ÚÑ0 Æmî²Rp(E™¨ªH‚ýÑÞà¥äî¬(ð@è•<Ý6ßía!b6ë`¤Û‹ \(±¦kFpR•!=âô€W’G‹º +8;o­®Í œs’TfCãëÄV­Î-÷NÓ=àŸ©¶­w:7yE%€õN>¹zd`5;¦µR¨|ÚCåÖ˜ lÜíD1«Gïg0{ÝRõ"Âw~ï[íIÇô:ð¿áõëÂV˜yô½å–ÕP– ½Æ•ƒ8ϯÃb„*+fÉÎQ}Ò~‰ÌCŠá5Xûê¾OÊ“â¤}ÿ*«ëWåae¡$¡éhIÿ\¿“‡ÄP°äƒZŠ©†«Y4°ªÆõPU‡®|Òšp\yU“a9R Æ}1* ’¨4°ïù!` o %E¥²©çìú*)N ý‡ãÊ|Y?8¾ ÔCT9?Ú3B¥t¯z™`DõÓLGQ@IÐ5žVÇé¬ÃÎvOéÑÏHÓku© ´Ú.÷°“knì¬F ã0ŒÊæ4|`gJ®Nóê:í"øö[¿Vä("C²å &JÕV†#ÍD]±mIJØ?šÅÜ! ÒÒzÍE•?@ùkƒÖÀb–Yl5Bñ$àØ´”g nHºôØ@w3t ½`¢C›c<$LO1\HêyS¬çˆ^F0®Q¸'oX >»@\Aä0bí%‘äȺ'ì_eÆ9üÖ@2¯ÝRR˜jŸl%!loὯøêƒÅ>C u+j]$Ÿ®à/¤´µ‰V]ÆÊº³g³¾€Ñ¬×™Œ)2àS¹aw8¨œ¦)&91B™%BÉ\ªYnêg8ÃExÌ/XxÓæšïþT`œÈt\‘³T^"ζÅ7Ù4)rB< ±ñدྵ#•NB(Ã$A%xRcCªQTðMޝ|ÈËa‚°Ä^ç\‚¾°l6Çdjº|vÒ2Rûá3z}H¦ÒpÖ‘¡³ÌðåP\´íÔµaM—¯À»÷„\û YÎ4ï˜#}(ú)ÝõÞ²Õn³™Ã$rÔ ×¼Íȶf$I@Ÿtºò®º—Œ(¢(?Qós¸Içvô3¶]4ý$gQ÷6‹Â\`#«Â7¤;HVTäæ>‡;.½/ ºC4æí#tc³¿®ª…L7>¿ˆoÉž‘ƒ®O !Lµ<^·Zšp f†OÜédu$£;æƒ-(æ7€©IžìQ /Ëz³äÔ…0Lùh¨t(‘N Kvƒ)È©LÊñº_Ç.Ötl±Nü‰ô¾©eJu¤–Q]à[?™@±îÇ ’Ïa#Œ€Û5ª2§þ8#ù¶ÖJ€¨|´ôiHÞàB]é’—Ã ­V#Ÿ6’9¥Au¾5ÁAà÷<ªñØÀêá+¥ºw»^Òœ¯ô‘ WÞºD%°GS“yòZ4[vQª òŽSíó¨Zέ;¨X5ÑlãF½^Uö©äöˆ†) +E›úz…à‹·¡èÔR¢ú.FBS‰ªôˆHÒjf-2—GJ”ô‰)ñ‘š<·ôX$D“­MšýkŠÔ|…žöUo½ø¦_«È†ÉÕ}spd)O–€j»âÎþž¬…ÎÊkèꬼQW-E?ð–Þܘðc‡Û¾=”>Öç{ëR!‡—OŽ +ûƉŠs@W«Sc‘q¨#3s¸Šâ!N]W‚&{3 +¤ç’nÀͺ5DÁ-Jmwó‚Ndó|´#nýÃïC€‘ÊõìNYè@å¬-YCw, +:N*a%9‘Ðag“$SY¤%±!A˜RŸîyxhЏ8ÝßÌBÌÏÙ|‚øØâ¹‘ol0?ÈóìØ1ȇ[„T0+DÁ+þ¶—¶ªôjû0cw˜O/~b삾I0\»û`M‰úç‰Xœy¥±¡×¥\ŠêÔ¹1é¢5«ÎšÁîý ­{^CzŒ\+Ÿ¿NDaˆýçIM0;«¤SúiÂSX%Ý>µÕ¡)•{mëyÒI2è˜GH²ÉÇØƒiDy™'¥Á"ª ÐtPuÖ¹7„þ èöñ1ƒgcwU«7„R1èpq’<î ˰—<´ò`±WPÎË»Ûã´Ð\ʃÏ#´Y$ú©÷’&¸LÆJÏq #Vã¯`Ñø +tÅ +oK.OÈdUãµåÛºÕè„Ù¸ÀCJhÏñM7®Wø5M ù:œú/Èæ¦Ô \!R¥’´R³swP%›•Ë] ŠqB¿èØúLXÔÀõÁ¯ª®äˆÍB[{-ä ø\¬Ù1cyHh®Nï¡p¸åMDй¤Ž§ó£ó5.jD e©÷CPƒclçX¸—DcbS!1Ö–½+Ž8cC»ºå_›C¸ª2?¹#Kd9á ,–­+‰@Th¸=¦9P!rKÍÄ|·} +¥DYrºi*|ß—4~zl›ÍLÃëdè ("—k‹­SO|*þ¼Š3‡;K#)+¿å~©dë¾ôðcMD×Çwæã¡ËÓZ.^Ú$00)诩ÑìQ8Ô´«ìz›8_‚³-|5U®¡àwFø¢œÒ?eå5£µR?éhz© @æ`øóµ8Ñù +À¶Ç‰&ΚŒ:ÚÀ@,K­QUd<‘f$åv–݃Ü=^ôš¶iƒ«eF;ÑÇ’ăCÆB$ë9I`.E°¥¤ t@-cÛ ç=Š‚½¹±çZÑä¥2{µIñ(c}—BSe$]ëÕÊT逕êÔí“ׯþžúp‚6Ÿ3VdnÐæ«ÔP(¡‚´ô1©ô„£(‡Ú8ÓŸ´¡ÌRýÈ(ÇÑ•\(R¨íaT]Á+¢8¥´'{€2g +çêÔD>hk¬ã]µõVwÍ oô!Zø‘ á7Æ }ÁTÎ#†{Á_)C…pœŒà„ùÉžJ>ð¨–!é ÂjÒ£šR7Þßy&õräE\láp¢ ‚o„zR´¬^  •.ÞÃË™Œ',Ňézo~(ASËK§'¥y*±<­@L¡ÂIôÆûl…­]¼+«ø:É7)‹ÏÂ@c¤êÖÏ(iù$׆bF¬âҭĦêmf:©Îß8~¸°•ÔI(Ë›€ë1(›8Y¢c¡& <­º ³ ».9Ôt"XõêÞÜK²çSLᮼoOÆ5  8WƒLÈw„ouJ­Ü;Ī¥Ëí°3 šT#z–\ +V'3’ €ózÄ/8gÚ"rµmn½¶S¼JŸåΠS vN<ÌÀŠá辇8Õ0grSüuÍÀTáayŽ u +:¬D¤µX RPKÌQ‡”Ù[Mé!Nš(ˆG&üÖÇðèŸzD†:k7¦»²[q².a²OHh,ᮇ羃j¾Pa‹Þî ’Ôã%‹·.ÕA"õÄ}ŒèŽüŠ2yÛ<•ÛLûÃì#ŸÂ’Ì;V5RnÁ X‚×oøU4E TWDô»[pº `„”ï-)cîµ,–ø…`CÆÃ"å„_= UI· í[ ½S˜YlprÖ4_G \¹éê™NÕ«Su#)õ±Æêœ¡O³Q8Óa_V²å™ÁÈØvÙ·†‹ÀQ#Ishe„Ñ."{ÑîÌè6Á¼^Økoï>Ñ@š›;×!…!üWÍG*Åžì¥~¯†õ“L§† C„u®cgp5­¯z½CÄÈR7§ò%ŒYJÀT›d«£$Æ%àȈô »è¾%ߊé jóØò2ÄD(ŽaÆ)¬Ú<äAÉrä8nç(­)ŒY±{«û fE"ü}<šB”KÅŽCúš`EØ¡¸ÑQâ£áL´”’Ý燌®†"»¡¯7 +S¯G‘òHŸ¡…`9½ºå*̵îˆlFký¾ž ½ :Ü×¾cTUÙu7Àªô@±xâ­qü€U °AÊe(h+zi8`VN±ò^°bÚ¯Š>’F'K¥£Ei™eð:Èô•Šâš&Uzó(¶Óȱf'Œ²ï3 E˜NÊ"“?µ +qm©!7oã=æIÙE Æk ó‘ó´Úƒ]oMw^97¿ ]ÓÓ2ëÇ›×™„hL¶wœs†Q̉JÖG³L Žp𛀥¿Xc»@Îl zÚ°æÏ{(œ¼¢MTË$AÊ ìkY zoøœ”ön+x«‡YFysÓT)* ðÇ'6VÒŠï/ËÛ*ÊQC {DÒ­&_ò¸Ø×HoEGŒ;ÈšÿÄL&é‡u‡¯þÀZèð‚³‰‡PÝî#uÅ<ÃïÌ×&F=ˆ+Rmy±P…g"Q ˜ã[¶ÓØ¡ÄõléÇV8p‹ÎûwmÍUcƒð=kÜÃTÂG÷4`€½Pv:Îò:¼ÉA%V·EJŒˆÖ2éô‘ýÔ‡´ÙgYO®í3í+PÓ>=ä£!MÿÙ„´ö0ÕK¯­ëI°´41®³9¸–Eé@|t–¤@€E•—HÜ‹÷’)ÒaÈ;Hª½ÚZt³éAâ I|y'A;r}œÜ¸g¶ÀÓ•íã…y皸8iJØ¡6(H°& ·ÝžÛØg ¾ü,Ú¤ 7ñà¡hâÇn½ÈÆØ„æz2@pN%Äðõeƒ'Í¥Q¥1å"Uu#Ií…dî _£¦c™^üõ_„Ôa¾‹¢ +û_¥ÿºó[ôíÐ씑:ÂÇ—ÕÒ·NpÈÛußD-x®ÇD¾ûh…Â@è ¿ðÈ<²´—­£Šþ°ð~¤Ë~äñÊùËúIÑ3e¤ãªBþhŠ%®MQ‰þ¦îñ6W':“ZÙfë?¨(Îm‹Ú|ñ›^€¬´DgÿX©ltVÀÙ¿RyI±§2r‘z&ÐFÄEz­a“Ò¦¢„ÌÅfW8Ëp@Átn=+˜œXÕ®…}íw„«‘Â’ö_¬ÁéßìMœü—Š®+źQÁ%ÞԔΌ´À_(v³z¢k@:¯üÁF§€é5Hßq20TTâ]ú(âN.…#\fš ùA¤þ¨ÆhñDÚq •Nì¶«[}¯˜òµÙdZŠ&ãpËì>Íö#|‚¼òÏpiZch ò†Xú€#¨‘Ž1“ƾ)Ðÿå÷DºüÇßôFüwèϘæŸoL¥uÔ[ GdXÜúKõZï9Þ îźw{ݦU¿ö’¸á vAv´Ã5Ã÷piäóË iÝá=ɶr½V>`ª€uÑ•ãýR¿¡ÀOì¾_VË0¶xƒŠÛ÷! +y‡HÜáNEà¢1Ž4 ,”C‘-Ä:‘ߘû‡ßx•ì<Iks™Nȱšâaʯw$)——NíjÀD̆ûI~öí3Rࢫ8 "­‰ØäŠ˜{eâæ +kT(˜Á ßÙìqg³ÂLïYfê²L´ªUPV§XòèÞCØíÉ\ˆÙÓòå0w]ñÌ:Š˜i}ÐýE•¡~’’eÙOç¾,¯¢Êùã´ªìmÂÔ6qI·ãc ïü\-êû2†¢á?†;åK|úŽ! §®}4 „|N:Zi_µô9M×{ùs*ºcø¾~t5ðñ¬Úúö*õ€£Sç^3Ûáµ]Nlf*POƒ«OIŒGÂPÇìçKæ¦H$6‘S?~°œÿÚH.šÌ\G& º§5'•Û?áÛ’‹.(׸Ұàº$†×G[3²Eëðý‚ ê$pÞ~5*¾6žf¸ìtØÔJ)Ê"ñ°˜>/…­ûÔMeé5† püjDáTЩr°a»Rõm'SÁ¿ú¥&­SG¢{6NCçì&ÚÀ̤ ä(:ÝÛµ•xó˜5^‹´JüˆñQ7å$øäèЉbò©Û3&§¥º  #c‘˜È"£KÒ úäÖY âï¼ b4xͧ!ûõðöžÏ ¡Ý¿O††ÌäœÒÆ—DDò)=ëy Ö­ãQU§—i›‹êOzaÓM/¶³ÇRãê!™…sª x{kÿüüoÆÿN å°ë,´š*$kT´+²þ+¾V=¼5•¢K"(1"~–“cÒ©UšQ=Ù9b;7[?D„ÂU\{gr¥èjI´àz5T´}Qâ6ðâpV×Á˜-w„›ŸÃµÈ ®ÝIÚÛ\@2çHŸÄƒ*-41‹[÷, A!õo¤RÐzV–»ÿä.Ò‡Ð2~NéʧÕ1ç¶'cA»EAù{Yñ˜Ý[QðáJÐ%§Î­èÜ0ÀªÄ‰DEUñÞkªÑOþŒÎî>u'X$G/P¦´AàØúÍbÃÆ?¯†j‚Bǃ½œ{÷L½áÒÓò\$rÉL¬Ïš£áµ [÷ü½œ?Àkç¶®Y³a:¡3i7w¦l&ãêMÿ[îçßql µ5ƒÑ!›¥¸®¢’5í²‡÷M™ˆ&’˜ö꼑 LúÒ¹žƒl1ï:7† m ÊLàÉT l~Dƒ.8ŠÐõ³H)½¤:‹2¸‚E8)oXÆoçn€Þ´pì¨îXÙcQx©û«z®ŒWed›R¯a²–ǰáHqÜøx²ìPqQÿòv ¥Ã2±:Ôx4JrYûAÑïo=²Ý­»¼QÑo‡û)7£3ä °âTØ=Í‹„Ú +yÆ%ùœ‚ï˜Ø?ý Üs¤èu ~\kÒïÊño³ÒãdÅh—ø©MœBx§žÉ”«ïí™ðõ})I 5XÏÐûëN‡ÄÅk¹×…šã€^= Ô¤l2¯W  ÐŠ®AΡ +P=7ïô¹ÙàÏ•¨ÇdÈê,=FÆ™`–ÕPËU7Ù¬œžàØ—æZâgƒ‘<)"íÜ¡<ÂÚ¯ïšÄºsm›„*[Q¼¿ëÑb1K뼟ùàk/¸ÔõæáûÖŸ¦éÀ‚›ý?¶Bã`—ƒžÉ×Ï3Ž·ÕV+Uðà×oý¨øÔ„Pœ˜ºú|m°Ó)*¬ò¥¤óÖK{>R¿Xi@Ááwû(Ïà|@†5Ï</qò|Ä~î«]îl±ÆPº4ä?öÒ"uU9gÔk£rùu8X1mQÞÝš¡è<®nHÑvAÃýEÐl-öÃET×½õ)M` uÜÉ¿T’ûwÌá]sá‚BøùAa$Ér´§ži.š9î[&ùº¢qNƒ=½Ì5ë”]ë¾%ŽÝ®]óÝ?ÕöÌêã pb c0ƒC´¢+ú¾Òê=nÒ£nÖv¢¦‘ã•HÇg•<Ã-SôÉ9ù57V.îÀÇÎÏw¬ÙfTënçwXÌ›¨'¶f–úB +u›á!ÜÂ.“Dìt„®M§lÈq¤Ø‘ aŽ?ýž› `÷²ÿ;,JÆ4¾•€m@w„¿‡½ Xsž · {…»{írÛ¶Kq?×lß7uÛ*×@åV´T¡4蜨ìÐ#P~ØÛË…^2ïû6c¶«½´Btÿ +eÝ!\OÔË™Tf®[–òC@ñóÓµ´m§sV¿’€ðÖ— b÷¸\TD¨xJ/’=“ÓÓ†Þ¿Q™UöÀ°ˆ“½ÖêÂDðºÄÖùF׿Ú2§pǵÖ‘ŽX¯|{È…#Ȉ© €0â5ÓkM®²,,£‘Üïí.Œp¡KÿY‘Àü-kcИEuÉý3F|(—ÊèÖ]¢çs†€hÞÌ ^*Ê‘Axz(³ìJILŠQ‚ùz æ½ê¾g-4(¡0Úc-ôô`jÍâEˆÉj^Óßä—†” Aç>Oºš©.}gMׂv +¸]ƒVR zÃgM8â¼^årH€|ëQŸxd‚z|Ê nÒ^º+l»{h‹šfêÜs`Rׇhf•5Œdß­òq +)}“èH¿^ß ä~UåÿHÁЋx…˜¯[`~>¦=%¶Xˆ`BLÂ"P8K53Ý ÈUå°J¬@ “ÌŠ;úës/ñ«…ÍëKu&©Ý)f1õ’øé*e¸»ÇØ=îǬãQôøÚ¨I²cqs!’©‹æà0‹Äçðö¡Îœ;¿^îÓ½KÊ»ÇÃü•*im:Ó^ýJ/ÅI˜|cð2-d*`\†ÆR~¾vè$ð )Úc`öÞçØ"úêÜñðÎ-.Ýdû3)õÁ3ThˆˆBâ®z¼õxÍTT~ݾù]/ês¢æ±Ÿ¾1w¶^¸±k¡w2ž@£Š‚?–ɺíeõ³Ñ:2,ïì"ÜÜÍqî‰JSaj$5 5?`KQ­ÝX=„@ûÃG\@&r( f¯xï@sWz „û¶z°yNáò ³‚hgðŽSŸ1Ïä¶V'!hÉR ³àYµ=ì²úBÌñaQbA£?l[@†ízï‘ÌØl4dq®] Ÿ×î5òtà$ \S$õ«4 ¶í»çOÛXŠçLo½`‰òtk+&œî ¡6[©i¼AEfâI2ê¾åïb¶×î÷ž D;<10T}|w\Üu."»p‡8ÐÔúÚÃê¶XÄî1ýÖ‹ –!Œ&ÌÙâI¥y£ª0¬äu'm`³•2ÿQŒaÈæì½ÇóšVï 9ïûþæ8(‘ÈvÁž¤d9PÀplý¶{‘Ö"׆äÙk8«¨3¢ Äb’õQž¹CÄ6¥(ŽZÞtä)2°æYrwï=rïz0˜« õc¾ç‘ê‚×Vû¹£©~$š**š§¿æFàÀ—Ô»>YÒŸ%‡l£ÇíšÔ `C„D7¡í†ŠðÆY-=Ì»¬ë1ö­}n ìã󸚴¬^Cœ™¦$£×Ù)pÒC”Íê1û†W%7¸Æ‹:YG"nÑGN `Á>O­ÅYR[DCÕLT¶˜È%>®&×RvæMèø}hBº{œãƒbiè­—tàÄܧ¡¼¥r kK8³}×£Ôv’&‚·NZBqfD:Op0QŸø æÓŠ ¼æJþ¯«»£ÌΚ”K{Ém™ÖiÔH¤\ëùÈ@É>íá6@ø{°ÔÐã‘’ŽÎ¬_ïëu‚ˆn®ð®Î{“w;’'ûL M×/¯9“Y[d™ Úç™ÔýL®ÝCÕŽ\ÀCܼ²Ñ_Áö/O¿3çd^uõ,‰üɸ(»:«ief=øzï=66i9•úÙû§_÷R"ìŒDGÕš²q¨ñ|§N°úý½&½£—ûØ2:w§i±Kds¬‚Ì2+ë*ÝO£<#ï‰[š¹SªˆŠÍM([s˜z:מNÖxWÎÒÙ ºu}ï·šÈâA¼zÇd’„Ç{‡_žÚ–*îsèôü~˜ûzÈs@ºÏlSM!K¸ñÖãÛò­×ZLTGr—zŸ/æ—èî5iKˆ +tšu倖Íò›bØËnŸ=nŸ§©m19ñmdµÂ– õ“йÜ$Ü-H¬\ «,Œã”=¡È“$´Åqí»@$õ2·¯(“°n„ 30`2¾ñÞzüëÎ9u¿}]‹&L™OÅT÷c.FÝOÖ .°lxÌax)ñoÍ/ÿÊ£hy$º²S»›NcîØÃìÞ=fz¬Åm÷˜»G}zÇÑc… ­y•¬`Ý”$L0ŽöH–Ž­Ø¼æÂ{FI~Ý 4»&²¯8z` ¼CkN©£æøµr˜?=Ø?>s^>PlÑÑWrPI6FÌw=÷”à@Ép\kï+*xäö¥u!f?_öÆ5ÖUÇ +Ÿ›¤*Uˆ)Iàê ™¢I½7­­ ²Ø®nÃßs'‹µ_Y½fÖª;e’¡vÇ¥ý@µV¥.ß³ ¬€¿é[Læ$³Ó ‚zDÙ^+P½M,‡Ÿ%Õ&!“Ö`Êp†#$ÅwêÙ‚!³!¨[Rg‰Ñºbàp#¤‡¯‚í*AÓÉ]h%«Ìš>™¸0mì\I¹¯ŒÈmÒ<œWüœÍ Ávzt›¯ýáÿµ#Z¹œ:! Û‚HçåAÔ?²#c¢°ZßWødV4éc_IT|55„fhi ÏêõëîÞa8µrÇ…°Èöp«Qáˆ+6´íÌ—ºdR1àÂYˆDm°î‡)A¥ðKÃF64wЇ›jÿÖæpl eŒÃ%âü¤C罟#øÜ1êëFðÎj¢Ï|›ç)kR¤€rm+‚Až}~Ü?Hà¼}KÎ.0Ò±˜ö 1P‰Éa`RÞొ¡0äù|îQ•IÖ/C6ïó¤3D«ú{m#  <Z~í¡ÀË£þþµñ,ñ‘pŒ¸üŒÀð%‘³„÷M™ùû±(àÅ=6ÏxÝðÏÎ<©©^çïÇRõõ4§Às¥a(ÄϘ:²vüðpŸã‡›â'Q.ÇSYwª™…ú‡ßœÆf¶æŽ6Va>"OãßhÛSˆ%ޏ7ØÍÊÄAÒæ¹çÅÊû²â±uõÓrui©Ü×c’”¯§PíÖª… #¸¯ ¹7_#‰·¯c–£¥;Z ޶#¹5£@–|ïáÍàK#tJÞ³\Ö È“&U«X>aûùõìªÙ鈭@S`EO£ðb9à7Xå®{ìKIªÇ€ûŒB"ùyÏú¨ƒœ¼³bˆ®6‹¨r²™ýÖ¡ú« +žÕG½¿I¯~íqsæù‰óÑ ÓÆ©*ש©7Š­#òÐsè\fæ²vÊBª[øc1âMgªD_[Àz™Å/¡¡(Úé›4º5]}·è=ÕVà­Í¾(ÍÛÙ WËÓ3¡ËQ@š¡” +F¨ÀYÛk\ZeªP%3_rm›DÀá㤹À7}k@ìQ)øÚúŸ=tãf¶Pë÷ªÇÆÖ}ýL“#Iêêç·H{’3BvLY-?EâëçwV¸§vü«ÆG­±éçÍ’ ìñ;‚f¢ŒÁM½íÕðzíâa» oÃó­5C+äAÕ4;»©–µ«Éë-y‚¥ŠúÆô³â«ºåíyŠ~(à‘Ë5nrTË[ËË5_G1U^v©‚ý¨,™Úsr'Ô<œA ªÔ1‰"õ`Øìqïáß(@ ˆh&U“Ûò“üå·Ïg~Ku&¨±ñ¨¦æ£bFì뱀ܗæ®ä¹K 4’ëÕG¸áKem[á:¾¾aG˹5„™“H¥ºR¨Ý{")$<1åoDT )ø uæüy’vëÕ%‘ßûÊŸwö—¤å²»æÿÏÚÙ­J“céù +|ßáØeýKqhÆ Œ±ñ‰=GEÓ݆÷T3nøî­çYRî¯vîžb hªºvJ¡–ÖzN¨× 4‘?0ÍÞæ%å­pê Ú$ž¿Ð&qܳa^ H?†z®ßšGÑOf¾:·´OŸ·Ã=Šƒ}j«!(ï,ÈtûgÒs`Ëö¥udb •è±p±U j9’4h œØ¬Õ®,@L¦¤Éáv@þ‹Ù@ã°³½‡gÙ ?½¿WÞi¦ìåÒÅ1a,¥q’Cê›*à(_0ðl«ÄOWeîís ˜^ÞŸÚV©Ö‹'Eÿšâu{BDXÏiX™¼ëmˆßw€xpJ™ª?¾Uτ侸~É>“Ö×gÇk¨Éê vtѸ„9-ÂI›ýÝ9×ãÔc˜áæq XgpòŸÞö/®ãnØ>5f¸´"fÖ °÷–€Rd¸6:k‹Oܳöž^‘bÐèàÌì)/™™€¶äÔ,¨2Ñ”bªÛHÿNõ÷sckGVöÉaŽQŽ-ØßlŠiœ ªE•p½ªgóèUTŒK!›z†¬†ÃÉTi›ÂmÖfD(1»yز +Dï™@ÍÓÚ_[å—CCJÔ”T jö\lݾ* ÙøŠüý¿ ÙK9»í¿ý¥Dª¸J•TpJl|r`éáß=‚  +½ùÕp±Q‡íduÖÇ·HPí_ò$b³çõ·*>T›¦dÊ«Sx™þ™Ãq†¤¦¡]s.fð UÓÑ2®“—ad\±ÐNÑÙ#Šš¬#vÔüžרÃ~(jžìeow0ߟ³‹RCLcÑøuìËo‰´‘6øW©ƒÿʃ%lû÷¤@ÿãû?Æ·¿ù·ßþçÿøë'ËßþýüùçÿýíoþÃßþ·ßýå/ü§üéoÿÏOÿýþãïþòÇ?ü´¿§úºßùÝ?üãO?þüçÿ÷ÓÏÿë§ÿô‡øËþ§ŸÿïŸqqÏë +~…áø_ù÷bûÇðâ¯øQ_0ç2ûDÆ“½×Ÿâ³ŠÙý :/m0!£ÝšÙ8 7K+qegƒ¤·mÍ7qûæ!ˆFÜ“GO^×Ê+–ûgÌŒ1BÏG¨À+äÀäÜ ûÖ¿oh!ì:DÜzŒ¶yÌÒYJ4ÙûA! ü#ÀX£Þ4¹ ×û{C~躕¼}‹…¥…ã5~ŽzˆëÊ|4Y𵡽ø²æakUŽ&¤À ôØàá¡ZÜCÉ!^«Œ¬òÌ”öbag=ÊÅêü H&Žâà-ÁÎß ˜Bhøå.c ôû“Fb¬þ°7®mRlÀ$Çל^@{eh&Ý>>_v²ÓhwotÚXéQnèÔ(=wÙ†F:îî=ã°I€’d\nð +”ú{cìÆœKÊ0}1(R`v²äû˜ˆŽëÐû[‘ð óùPù†/öΌ$®þ(GÙ'_VÌzøÒ‚û›‘ôCp}"1A=—Šj¹³Îs„Y'ޱ¬õÌÁ@ÃÈä.¹4 + B|^n¯eê>d¤OÅçÝ@)gæ ó•”ùB>Ì§Ì¾ê ‘Yi(p›¡XÉî§£Ñ3£]2ZùýsŽ&Ö¤|шYRŸ¡vÛ›ëQz­?‡ýÃg Y£v8Ff+Ö0èŸ×¹-fÐrðùèþêZ1‚õïphzÖ³¬ ±åǦMtm›“ÇD]uP6Kåh‰"NLUþÎ.jfø²˜tÊë£þMN©ž—+^T7Gâ´opr4` ÊÔ04¦}B;‰¡q6L .™"–|Œù„ðmoÇY܆Π“= û€fØ()::”öDýÒ»(ðrNŒ›ˆ¦êúø¡¦ç(+ÐAÚq 'Šö=\ìAÿ êÏ9P§a¸Ìõ•i¹)^D=ì§Vë€Jêà•vIÁBWuµ²ƒpÔfñÊëæ3í|wh"Òì–(÷ÔC‚ÚÍŠx>C‡ƒ†;Hê¡Iœ’Jñnè}u|œô +¢Þ"ѤÖ콜ò(44‘<¥÷@ÝéâEp$2Ú<²ý–=+.õ îöFúPÁ½#3Ê©Z,‹œÝœijÃûÄtÜÎé%øñ¾2lXñ>{üHáŠGÏxKšMÂôöõT—7 ~ËáÜp÷†£z$4 `Áá „Ò0ÚYšh$Ùª©›‚ØÄº†x ¥D䤬»ø î“ßxùu0QeÅl÷ìÇ« ÇšòÿÒ*Ö0D(`ùEiÕ‰î«Áe„šŸ¢LñXr­9(ݪP‘%ƒ“ªÒ§v8D*OOU$‡T¼3Ùû(´†xÅA¡%7½?sΘÁö_É> +&D‡Šgæ)¡ÓCÒQÝÀ‡¾{ŒÈa|ªÑ˜_5Ì«a[Ä“C'³¤óŽâö÷oÄÿÊÉ¿>Y¦œûØ5I úÉtK´qÿöÒpc™óõmäKÄÛåõñ÷^BTû~Ä&{ú©²ýD\SSÀh*Ýß…`(Ùø¬y“†‹>*9ò®Ôù¤ï†ÚÀ~f6s–4ŒÞsÇâϪðFÿ(Âú2ïûÊ¥FÆáOmý%×ß=˜×~ç|†Ù®Zû ÷Ê%‘§œzÃ}üíXƒ¿ÔÖ볇‡BÝ9‡†âýÛ êáIÜÏd$!ß½ + ÙMÉúÔT˜øùÉ[M”aÆÍ[@QŒ±uoÉCFǃÃ$w'CODòT©ÜfŒ-˜Dâ©»L½™rZØ ¦vÔ)Xž=ˆ…ÔE,4ónêpß$¢³ª²A¥fõ`(é =vT7êùú…ÓØH(=ÁBÊ»æ­4ìÀ“ЋY/Û Whå5"ðÙaBa÷zƒwÑ©|”)‹×*ËÒ¤XÈn@*žñ[6@í>¢3qŠúM#œ}séŠh1--8]8(‘ cjl1É}9ÓÞèrÆ`zl…$,xŠ`ºµˆêCÇ{d?Èeó²d¼FÞ#9œ;ÃE&+׈·CÚåÞäÌ`ÀõžÆfÍ‹QQUW® T­Ìaƒ†µÚL»Ï£¡ä‹£‘yqV?¶q"¿9\™žgÉ¿Xáâë4T2à¦ô˜ò_@7L\—t0êÃÚQ7Ó…ÞW×û­0« ep7Ò}Âø¹|ØñuBììÕ8j"YnEV…Ï´ª'wŠ4ß%–k")ZI›ÇüýM£!¨¹Ç”ò8iJókþ ›É?)a¢]ø7£}žÆ}—m¤NÌÎVÿµ¤ÌÊ0IGj–©Ÿ£Œ9-ýšôñ,ÑgDF„4#ÑŘ_ŽÈ3C=&ëÐÓýÜ\ãnm?·AéUE¢paöη†ü2Å]& ÅH@#N\‡!¸¾èá{³ðV#£¼Ÿ;„·ãÞI¡Û©«ÚÄÁáÈ”¡RÀ~Øœê°Î*ÊÙÑxÜP„‘Úbû©ÑGjœÚ΄…Õ‹º® Ês¨Êñ¹GìÔiRºãµL?õâ!¥xz‹v$pኾ7\ Ë ¿h” ( äfßHµ²« Fž[ˆ_ !öWƒ— û•vÂÝþ|4Â’#»¶×ØV¯%¢õE™á|÷˜o+ªÞàÃÞa’Ãì‹Ã±ò¡p°ßj¦ûù}øƒ]Eçm}|i) ˆ­MÕj¸S©aã„ß NÓ­&Z«ŠÃõxSiLLó#Š[6ðºì†½?7'ü%kšÊ®¥Š›ÀN³D5m{"¥ª4jް¨œ²‘p¸,hX¢a/¾AòËo¼\±øI ­ÊÎ*±§Q‰ìc–õ\ÃÇ\5.°|5z¼e¾>Ǫ[%8rÂÈFn7nÜîéOê!ãüÞP± 9÷ÖxŠÁîK“óK¬ZØÒ5¸•DHãy5ÄO$áqBÓ}ÊÇ·åü&ƒ,÷Ü:¾5 äÂîû܈Zå무 ¸{>Fµ±q˜BƒÜ•öï>¿#—¨öÕ—ÁÑ´±õß‚×Þ?%Æ+ÏÝmjTWnÄ8ÏVâî·½óÀc"HH­h+5ŸWCü<ÝiD8—\çý–~DŠN +6±æÂüÑ»*êqé®?Ä TŠw$T,·GÀMÃ`;‰c  &².\èQ7}® +k†Õ½«Cq‰\¯:í¡^~»š1 ”ªhpëç7Æ´á¿ð#d¢¸ Çã‰×%n ÒP<êgk_~â¶V4 åxÿލñs«²Xìq?:÷n0¤!’2Áµò­dß‹¾ð¹‘iõ„ @;8øH¶UF\àuÜVÇb/’"WìJŒ«6¹ž'`54t f†8Æ)õaO§¤ph»Ê4=ÁIŠùˆFi8)¶v ‘‹ÝÐÅSôlôsÇø9`•Iì¦ØØÄá—æY÷°Ø)Ò%þ6¶ p½­~3¨__5äp¡ûý :ÑØôˆ"ïm,ABC'ëUŽÖÂVJÉnXý£á5>Fà1ÅúW«ÎsiÄ€šóž_Þ.aâ³X౎%ÿQmm¿*ë+ ý±ob^Fˆžy¹á²Î¦:SýâçfG½¾Ûm›2%@ÊqÙ×·pÛ%dÿ)¨¢‡j×[Ã/¦ØÏpÕ” eáíÔr[Ñ/©)C}y’4ä UЯw?E$r'pnÈ?ÍbÉMkì41ƒÉeÁ4GCZD?u,\XG@kb{F*¦›h&UBÍWÑ}2ÇV¦%+ßÏÍ]ã.À̃ÂÙúûâSÕÓ½‚ËŒUè¢>ßñ.â£=’â£!ÀÐê8³Ž·ó÷)ŒÜ\{mQ =‹ðÄ.Ü¿g >÷Zþ(| +€Æïx¼Ág‚§1¯u3ÞµrÝVR¡Ä6+Îb”ûˆ ·êŠo@äÙ ÓieÀñ]dQää3ÓˆÆá‚jæQbp o6AÄÝ4Û1« # äý·à¾Cª‡‹qŠ0è9köŠ†ç£·ì Ü3 M5]ööÒÌ5×ãl†¾±(ï•„xè C>‡ôýûÉ:2;q>·™ðš˜ØIíþiQ2V„ZÂC憿EîÅaÕ0—;'¡#2£*ØÄ°0æ<.ŒIuù÷»–ñ¸‚G w¿!(à¬ÇY`¯5N3$%K Ï)!ïeähŸÐiÏ{låšY9ÓŒ2 ÑR§þŠ éù J„7°>aɸ{ q`¶ô ¼'z,ë­‘òŸ^4%¬ ]¼œ×y/Ç᜼éˆ! ©@9à ©ï× ˜éÐ:ºKnjUôßÀq|-’ÿTßf¶GƒDÖökjÂô´Ã5ùyb†¬¾«î\“`éôªF/ez¸¹ß=@\ »ÙÜNÓ:²Gb?‹²¿Bï\ + ® ¯½ªŽ^{*8Üœ2XöR6ÑÄ|ÍËkÖ6 z^$ÛKöËÚûHëÉ)h=ããa»4“+5v*Á¤}¨5¤ÀàïwŽ+ Q?ÀÊÝå*¯ÞF «ŸcÕñ$D|‹‚°Ý¤IÕ@䪯/Š:íž²CT&×·ªàwˆÚ˽îÒ¿5€„.ZÆ´,ô:VϽÐKk*«šNSËúã6árò^e¢Þ{*òñï=âq±$ñ:‘3/ã‹ãøØyuÒwF.=¬™ØäS€xë!£¡[¦£¸ðE¯büÓûÙÃú(9¹$÷“Å’ËGdªöÍÅ@7&ôá(v¶[®*š%$}‘ªÈ{ˆÔŠ‘ŽÉ’L({¡ +’cò²¤ŠªL¨F‰œ‡,×8g*a´c¡ôu&—ÁÝKЬ×ç‹’}£h!t„DßJ±ML¼(c>f"lÑé04 ¢Hºœ«'|OäÎ\ +?‘nd +9~žkn5½»çÄâ 5±9;Ê«!žÀ§¥ýõ-L±D»Õ·8à­!žl;OöõF~îE| {krt ä²f\Ös¸jjŒ˜8–ëˆ^wl„Ëç¿?%[3†ø¥8G¿†Ò+!¥=EÀË@¨R®Ã±‚œßÞP d°¿·* Ô•A4–¸=rVòf·P§& ‰¥Þß>I™z$eÎë­ʲýÔúJ‰T¬S>ÇˆÑ t¯>SÇbòÌÄ ×6Ö­ƒyGVò÷êar’WÁ,«×Îʰ?vÍëUá8ýx+’1Öš±›MïGný§ôq¦XóÈW6 +9Ÿ (w\ÁYÐC@†T >@YG;î¼!)©Mo#íLžêŒwâBÒ}§¬rnøÉ Ÿt¿™²1ÂF€9¼h +ŠV틃‡8”’¯«â{¯yœŽYÔ*Hµ”ˆÿJ¤AÔ !$$+ÿòÞðûú”©S0¢¡Ï{¯½s‰9è©" D*{ß÷Ñ.þéõ‘Êå(?,½wÜT,´° õŽî¸ßÑã~>"B?÷xÍ ¤7ܶþÅaà‰­È»jÝ1Jigdìñ:÷¯Åý»FCUE†%1CWVßL½òr¶S½Ðf¨+9ÿàJÙ"¯ZEŠ#’PCL–ü²ZÞèU"?öí>=R¸À)·ùýÕSÙD¤(¤ÜìBVà3ì9Ê-‚Ö­¡`Wb”K†`5L'ËMQ·)ÈW±ÏlÃîURÀíB‚~¿JГat+Dâ\ÛQã\ž§=†›07K¨çh×ùqžú„”ý÷¡3’´L)®× „ÄÕb8gÖ7Êjìç‚©¿ClçÞ´æÕ-êÐ0¼Q<Ýs‡Á Þ†Q·ÛóZ;À½*¢©|bN¶ìV€kÄòTÈÁFÇ‹5$þ¾£ÝñÄZÜ(±¡Å¿_T´ï÷•¥Øµ±ÈQÐ^äžKBVíº0^7&‡â.hmß‚Diw/ÑȺLå¶ØY|£X`Xœ#dvÙÃì1°¯¡…6j”ØxOܺý#¢”ûґ͘(gt{‘öëD-jð6w§aZhD®DÃãØ¢x |òÍfë{#Øâì!µM^{ÆqLWà’¨3®=¦2aLy°‚šÒ*a€€Üµç¹jà¢pæRíÐz½ìGÜà±mZ¹LëLìM¼ ÇÛocSVI ÷3´Û[ÅKP ,5uö‹­páö,.ÀKˆ +°åÛw—jz +SVÿ“‚‡WëŠË)VvgGnü%ºS NZ¡!.ƒrlo +ﯢÕjeŠ£Vv)»è >Ý««d9~^a*GOu®xøRM×±CØmK=ËßLå ¥yY‡%ÎFmÑ1Àêe tˆ +ݼÃô cC^³=2Ù™&qãœ@Ù7²â¯Z¢üžê8µ*ÂRweÿ×Ï'›ì³ +écNÔFúƒb64#âÚ/Ø¿áXmðÔØk>{Kª\?E㘦tXµqÁ’’Ÿ¤| Wƒj3*MIjtÕC‘³X—Á,©ˆd<ŽVÓoINFý…%ub_Ö…Ot=ëòyøÆo.¦(@šâ>m {1Œ +2劅ôG:¢—z#Àà9\,Ñ)xZÁÞÁúo“]öŒEdj{5â§ñST5üe˜¸Q¤‘ôe” å ÛñãbZæÝs†ós-2pïKãŨɈÓXæâ¥›”wõ#8›Cp0ÁÀ’œ =½Ö8ü8 +!6Èï]ê( @²!ÏI¾ Ü î3ˆÄ’Ûò]ÔæÜkÛºùø§œ|ó¤.ñl¨¤‰„ÜÉ>Ã¸í¡ …JÍn˜ç+Ý|ªiÄÞˆCeÈ¥¤Ìľ)äÈ®ïà…ð¬yR—É3OÕÀííÀ5Íf$érÌȯD¹s(käß«¬™þjÎw)ªÏ„øÌw CöGdýÜÚêî)‰ýôcŸ¢ƒÄ~Cûk™¤P +~kbðé2ùì)“µ®Q~ I1sfùÀ~z Õq éWjŒ²=}×구0ºï`=æ-k"ȸ%œâSz¡¤1’åq,9Oµ›æÙ±q÷ˆ„o¤À 5ã<ÎÖ-9]ï—èN¬(À iGN]>Vñ8ŒoÚI?ÑÞÎ/:ðxÁÇœ_Am~)œ5eùÒTpí¬lªQM`½ç•îè3¼JõtΚ’˪¦®-«xa™¼^÷«ª¸÷† Ï­"‘!H–‡ydDÛ‰ÐöŒÜ’)²B^ºSÙÏBGöô"äƒÙ´Ã)R“í»ÃJ ñ®,šÍ%­Ìˉ™†^&)´ÈEu¥£>€/Ax™U€ñ’ B…û—4ø„× pJÁû*+ΨU@óe"ƒq`ll„Ô=è—4¼ßrDë!’÷zª5xRïS?㤈ûñ[t ´^¨¸åþŒ‰œ—DÅæ¾vù'¶“¦Þ=Pt™”u¡lø~z{÷›¤,¿(Ÿ'öÔãgñ‰íW¹Hë–ˆ3\6Æ+FšwV²äõ„Hp°y°þmÆFÞÿŽ$k˶,¯ª@¶C¶'£È}åïUÇ«Š\b«r$GsŸÊGF\´ /èΠo·q†®Stß—ëío R‡ƒc_N”µ^ú¥õ(_Aõ¶MoH»k‡ƒù’Ñä³–õ®6 ëQãñL ÔÕ¨/·ö!Å„1„yÖö:®Õ:ŽªE:fí°›;nÐ(ìÿ& û Þúˆ„dË€èŽ'C u*ç§&4Ó÷ph>ÍK:´4Þû±³»€ú]Tþj\Èþs¿“²âo²ç­„š×ùÊœKQ”FRbXúUSK\«Z[#ÔÄnýuÀ†Âô}F艥fRU5$©€ý&íbx¡ÉY2„ÃPÛ%a²_™`:à_…5Ö‡Ø ‰}"¥¿wêM1hô/ÛÂÀÕá<îíû4S®Ð-è…%»o¯ôH,r¦×ÔÊvÖ|CôR"ƒ¢@ï5Èøƒà/{• ¶2œ;Ñü~ö†3K¦ÕrøÂ¹zh¿¨ÏBB^%o1ªM”˜k§HŽƒ:΃—UMጠZßÐp™IðRlŒ-ÉRù·~†Û–j0ÈãWc˜’©ƒe=¸áòƬõŒ8Å+[ '†ê»eùý³H1Mc¾z—”^˜‰äÍïýÄBÃ-i ˆÜb59vÄ?ž³Ï"Ëfù~ÆÚDŒ%ïÕcýCÜ7åëw éf·Ùï,‰L â•bÔ©ÿy€øP{€ùÍ̽4Þró4e°;.×áèò ![q#]âþ8ëò øÊ‹ç;ßI+˜ÍF*fèsz¾â¼°ÎWîö¾• âÞ«r » ‡i3ôRfÙa×4žë”Íä(Kt¸ôéæLÄ—™™\-Òý5ªö3ã7Hí1mS˜`EAU©îc1õßú/ŸÉoZ~¹r€ 8Á)¤ºbÄß/YoMˆüHÊ-úMÅMY´þ]¾©[xu¤ÂŸÖ +Ø÷jâ¤I§!Q„ï7Ó– ¶È‰ +„ý¥.ÏÈìúƒa»¤!iR¯-Zæw-†¼Z¿pÄÁJ³Fñ"ámÅë²|ƒ/ `Õv¡îu‹5ž* ×›Òh¶"û0ú愇].áap…@½¯FSìÅ%Ò:‰`#ÌB÷ôÈ×lŽw F ÐúŒü@Àè 3‡¸Øä‘«<(}ìû¤{ua„™DS·,&„]D’6Í‚½jYÌoÏ·Ÿëäî!œ±DªŠC>@Q«x Ñ× …ÇÑëÊG: ç63£)ºH7"-â6˜›ÇÃ))ŽÜW`Z=a°…å„585§J†DRÅ$;Óø©{ûú%±Àê”=խßù²—¦U%¶-ùêÐÌàçsaˆ—Ñ´¿¹Ô±³‡²H$µã“LؽÆG,M5ÊÞö>çøP3z ÜC |Š+Ä^Ð! ‡ ‰{¢;`ÔÈì€ÝX‡||—ÄcP±C”¦bQ[á¹=H³èëéÉOÂb$ŽaåjÇ{K;ΙX·±)yÔ=æÐ`¶™t“W¢D:·@à^³ø§%¦E™!C´t ÿo çó1œ?ÅO{±Ñkõð LÜÛäqj`žë>Ñõ-6ìaL¤´§ŒQ® éë¸r͇9+]²6¤V뜶0]Ád†{±œ%¨2ùæ±°¡Âv'BAœL$§Û‘Td{°?•ˆ’Nâ|Obf>ƒ‘5µg”P) +î“›‚iðÌ`ÿ×BÃí9ˆÝ˜ú«=Â)ÝxÙ_ìßÇëç¾3_Cìp›ÊVªe°‘ßH$BšHtò¾èÜìâPµ‚Ñ…ËLQ¶ÐRˆï„9êÂe 4: IŒoS¾ˆBÍÓÑ\ûWx¶¶€‡÷)¿`±‹¥ŽÜ°6ˆÝÞ£WðãõúI>bQ'F!­ÌÿO$/S:U:i§á´mkú¨åà˜!+fýKòû§G¯È\7›8“îÖ$@œøF +9hÕ}Ÿ=üXõx4ZGœŸû"nz½hÞ¤;(í¢g  Æ$îtäÁåB–'^•áê+ØÄêN -×ËT?_ù-tp$\R]òÇ*%ÍrEÙ#{œP€"µŒ©‚ø÷¥þ’ ]y¥PÜãªÚ­[]#9Q ·+‘õð)$<:ÀO$™Í`7GÊXÊ.+ +‡Ô©GN:Át‹ù‘ ³‰DòÃU¦}è9ÈgßW2È»q”¨Gʤ:EŸöMòE‹âØ £$›Vcì×WxÔ‘6À©¦ôܨÖ^©¦=èGÆÞp)Œ¨ØòÎYŒ—‰Ÿ5XLEÞ‡ôb8S뺔,ÞbOô0©“Üå^T¸éål—F<˜‰¸úŒ’Lé”Ï€ Œèá8œ¤g{T6à«=ΘӪç=QàuŽŠêaôîTØÔ÷‘ñT`¤G°è?ˆ^l_Sø©‚'*äâL$œuUa§" +}ÈýjÆP; 8úÞW…à‰Þ?àX=v·Îöí£0‰Uq蜣æšúYk¼ÐCeݸ½ŠØsÊ"úÓØùWÓð={Š®g™œèSÎŒ` †¥ÔQîjÊH£Öà9×X ›Ühc`X³\34Ðq9±LýH[šò‡ã6Å»=¼n(k”‡q'GÞ_A~>è +`A Ú +QüóÒb,ôgø'v ‚](Éè‚@D°ÃÅè"3ËïÀþiÃZbÐG’Ow['‰ûÁ n%ÏÄá—â-êX['œq(Ó~o;ÖÜð +ŒºªÕ´¤ï€k +*qéq¦B„šdª–Æ + +äJ„…õãqzz‡SñítH,2¬†+}Ø• +;hì貺å‡C‹…é &±ÔÓ#¡œEWé%Ü*ž°‡ˆ,È­cs¼¡–¿Ž ù[Õ5bI´®ÒÃ…¡SÌ’Í¡òÅ šö'ó×™ÄKPµ’dXdjþráÚîüaÒÊd@Бʭ¶·¨¶?±Bí¥šÊ…6y`dë q=âw]†K›êm³ K™pŠöØ!Kê4£&â–ù=SDv$+-^mèé°V º±7 Füv¤)Ô½Üc«ìélˬY¥_Ð-¤É#÷°×—u9ÿhŒˆ0C&‡îmÔ…Í5Ÿ© gc:®!„«09Îm…úM¼Y;Ü09<È:ðúq^ôçè«íÑK¡ZV®qý›"ùB°n€³9lÖðgPòm81Ú¤]t÷€I‡êút%â@Åç3gÓ¯»I#ŰZhÇüâÊ9AœxÏãêžÐCîþ¿ßÀzøîÕÇQ4NG„zƒ|Wãs|†Ý£™â&7.Qƒ²¡ÉÒ|̓äD ›À½Nk¬¼Ì ¡V­ø| ûðÏêˆ÷€RH1¹ƒwÚ`.¡R¾Ã«ZWÜ^]ëÑ\׿˜Ü5Ø$LŠ¿$ +Ö`+ÝîŠåÊkÓ·x‡Òó*ÍSpˆó‹X¨¢\>°Ô, +ʼn1L¡ k[ &ÀŸæÒ¶ÃG='é!}~È×zF}êQ@“mè"ÿÝ¿ ü´rmx$¨‚§R!dÔ/ªG;HÍúÇÕ)¤¼õÅ€ZïÎ^'È~À^g®ª:@Y7Ú QûQtÕÚ@*˜ùV#¨P'`CËfʘa³l ƒKÔóõmAÍ¿Vƾ¥…ˆœ/H"|ì«%ãÅ.ìjgd@ÃN2Ÿõõ˜5§0kÞ¯Ý<öT‚5ÜR6œ›ÎT³Ç>‰}`¢_Èg‰P¼Eõ¡°™1áÃûW›†‡`¥ JŽ;ì@óu^é*ŽüQu®Žb +ŽÕ4£Ä»è8­¦þþlýÄ£ªÚ YñÀõ‘ÝS¹˜1¤¤j¨¦,  +¥P^X¯LDK¡Ü9Z3lò4Ÿ¬úh+íK²$ïJ6ð¯A;øH,å\Ö·|Ê5³Fñ-¯(-’‚x,j(Wùc೸­hÎk—Gés‹ºÃçâûoYØÿwÕtæ_y _qs‰ÿ}áÞ"²ñ]ÕÕ¼…"Ì Ý d5¯éîµÌ¨~î%tZe¢~w2ù3pj±î†™…ðɸ]求ÃIJžEO7j E “j¤Ìã´À$Æ éöb¶¾öÀ˜!-·öbÜ„1j¥kC³&.®fè-¼šPaPº:O·¶å© ¾QÝ¢ž”MÍÿ½8†èÔš97bÿ„.»Ÿ?7ºB@üðB }þÅ–McawAt;ÙáÅ_hc¾-±E—ɱgÔ™Ik¬ä{Ï@%õèCŒ“D‰ƒ/üÂÞÃË£áÊùz¶D©J4¤ÇEÛËfl²y"L„=fZ ¨þb’ŒH þyÉ¢°ôÙ,÷9% Õó¤Aú&Œ8´etEb£@¤s‹G‹k£¡ÂGWHT•˜ÓÄ)•Ÿß¶`£Mѧ“J¥/;„B§B +¸b0÷‚ÙF‘õ4xeÄq©!(ÅLÀ‡qCù­2È5:yḵ Íø°WP¥Iͧ¨Õƶ-èçó¸4Š¿;L'¾µÒ{¿“ƒ^Š' ä‡I3ð…=,øBXPžz¼´ÁäÛmä¥Uþ¥2fQ% ¼vXPã§Á}7ìwNYó¸‡F(»ñ)q*E² +l]²8¨ZS†ßKpÓŠI0Žru“Šn…#HÀÜëÉ×ñt•ÇÁ +½ž>l;ßëñî-‚ 2 CزñhQ)¨.`5® 3ÐÝçõQ#‹KhÍê!Sþn¤lÞ~ñô?7v1Ħ€Ù)8í…)ÊQT›*Ú)ì›^*§½ëA3’ Ûë@ªYôS¼ý€x €ìßT€:¡ÇÛÿÏ~ku +*pðäomÀ"/9Â!ÅÏõ嫤zä¬îTî6{0g-€ýó\žÇýÒ*aà-î…¢þ®ëšAT+ú@­¤¤¿x0†ÄYÂ7‹¶Ì÷á’w„¨O·™_ ±Y>L™¦›éwßJélב´¤ÊžORŽÚò’´è"YšS±^¥ s¦W—_ƒ¼J¬‡Ú³N ’”á@R]Ü+f‰¼BN1\1Çå4ý‹+ï¿hü+MéÅ%?'K¸§öòÀXAA¸È“ ¡~Ç– Öïà²hToÅ›nð”KØé˜˜›ÖÑôˆøˆåôÚU™j +Â_ ÆlÀ¢…o5ïijq8…Ð {$§äå=\Ôä1T#;ûDn ågn© +Ç_@p@HµbšSÔK š-Œïai°ç¶¼)ûQQÎWiVQP©`”À÷´®‡˜Üæóy‘už¢zT’NG@ê:d•cå-¢¸‚øÕ×U]Å t°åxw3‘Tr’ç[\¶n°)Äw@¢š‘® + +`EcjJYJ†¡J´åk!V†« /Ñ™tþ'"G ”¬+7CÁMëdsªÀmÿ•‘õão9ˆBvç{·RC$H• ?ùŒãÂdEJ<ï¡ukwßÑÌ}¢F®IQ`˜’„´SG@€”„_õúPk.Õxø´ôÊZ!X4è¶5IfÎæH,ËÔD}¨é]`üé#)8™ê[l¦Ah}0²ùœ½y…è< …’'qLÊåp|G‘™ ÷sOû©dÀw·øñ©—Tg©hk €U`¡ÿuCÆãPÊòPÔí9–¸áÔþ¡-ñ‹^í35w†W  ¾¤íªðAJ!ͽ{4°£ô~éÚ#³õRyœÏ+IÔO’üé(yžò%™yƒpað^ITà8€@YL‘´G_¢6Sâ\-wç|Éꯘ$À;M‡(KT#Ó›}©¼påÖçEÉì ‡éÅê¥7èO·Byp_Wýcý¡bÆúÓä±ÓMA ø¹“®[•œMÚn¹§§A ¡ûó=Ñ\5úWc?…ì=ÝÃV%]xb¯C™+ìØ[)ùŒ›¢Ýo¦‰ÓO=~§²(+Wêñs/éˆ)ìd zü;ÀB2sjw—æ~1Ћ’°å‰“³ÆÔX PDAË@D+(ü®šŸO‰ÙužydÌ{‚Ú{8f•ô€X©ùT¤›\hKÕ”ÊдÁ<*`Æ>ÑR>³Kq/ +x¬4^'BŽ^CdIˆ½ [z!¸+Kú¥Ç8†¿ìBã²LgÞ'H/§ßvÆÝ‚¢¾h™B Us°s¤¾£~Dž¢·\y¿}ËÛx¾êQÃåšSî{ý¹Hoö ܧyî=Ô)îY•ËF%tD%ô¹RþŠölzÿ­CLUÇkmnJo‡¡®é¶¾³ázkõÖ(€Ó¹RHo½´'"9›÷ï6Bä–4À<œâr°¦´¡.™Õ“C˜êW +áÊ«T¤nEÓ¬¸3ûø}Q(ÍÌ?[щ| $OÒ¡$¢]Ïž{¸?ž‰ÍÄ o¶PÿBïê&È…Gd<þBš,½¨+˘Âª±ã`±™0‘XWa"‘1üñ"(LšßS8ÒZ¸À™äòAªÂµ œØIàz§fý :d…h Š—ä|VóKb—8£á?¥iÃkB“5<èÙ:­v äI…j°÷Ùi©÷dÂõuÇEåSLj‡ Ö}‰'¼TQã•Èd¨F0À¬lêÆÚ! +BÝ•.þEƒšÜøAL‚‡Æám®MsWrÐKQh »ß5ôŽæö¾´£:ÿÑHÝ]ãÜšI@݈ù p8Ì)=ɧ÷#[ÝúÅ·p=»€}Ô*H¼Bº/σý¾ÄB9jâ¶™ÐWq‡UÛ‰väƒ{ÁÎ5iÈ¡ãÊ[ÃÀ‰@>zÛ~îE +IõH™a‚ O`cù¢XÙ‚4´+¶ŸŒÊ>-ÔZ啯ãÚI¶ ]¸›=ó/–Ü5õ~nðžÖ~ÕÂ&ÏY4[ŠE3\dûñKWõ‡‡«†ŽììA:(a¤6ƒA1EÛáŽ]§R(a–ÜBDÝÏô: +Ñrœ‚˜›S”â·š×Û×|Í’íÄ‘½Ýêe ܃!a-nž×aEËÅkl6™”ØP#žë˜³¡œ†³±îÇ÷å­±×#^  ®øŽÊ'…† ½ð¼bŒWs 6«ÕlúÝ]÷¶oWØÛ…ˆ$üKö]A»Ö\¯sê…#eE^o+V=€êáU.DȦ»‘Æìæ}Ö=\¨-Oi}d`¶Çá PtØq‡ê ¼a9¼ÇÝ1ºw;¼U©#_än“÷Á+®Í°TM­5ö·õ»ø~ä¹ +%žCp»J¢ôDYËtbŸôYƒ;1¡_‰Ù +ûW w +ØR LxÞ}ÔrõlóX‹˜íÍ“""U=c›6Gð8|£|£&òP +ÒI +úß½±¸€O ¿¿Ùx0ùìN4»ÿÜ BAÐ}pùPD”åL#ñQ¦NLŸ{|5m¿÷‚Ô urO’E?ÆrÔ?w¯êù Œ,FkjƒçЗ¯”=iÇ,P ¿sxªÇáéc*9ønB^O:ÙáìEµ™Å¯€#ÅåÕPƒ{&»»Ø[¦c ÅÑŒ†P\žT/Š+²ù­áŸÏÞ7vëk¯ÚùùâëC5ÂöbRO‰!"K$†Äƃ'Yh4 +yÁR’°¶Ÿ|E°jXèØ)ßNl<é4æ9ŒRçé1£‡ +#ö˜§‡¹‹ò=ö÷LǶn÷RSVÎT’3EyżÉ[’ÍŽ¨ví~v|=:- ew(Dí¡yýø<Σû}%šZHÚlÞÉJyŽhïTC—S—pRIÉårT¯ªÓû|M¥÷àuå*=>pV#á›w#† éêp&fs,‘ûÙ)]ƒÝK¦‰¤¥F(€Tå¹ö8Ð5Ÿ;{vÜ{šòž*x¤åWf}œ`±ƒÕžµ‡f.™@¾þÈúª‡zÝÀVZM;%NpÅyaœ j;o* +Ã1MSHï–>†¬Êcù…ÊœRÜ&†÷dÜÉsÛëܾ(aª¬uêSn˪‘EÀíê­T|{ãXdð¾õ€¾"ƒ‹éèo«G!‘^Ø¥™7 bA „:¥¥ò2z„[äYö·€×ß?9«`}“ÈïØ#B ¦ì&D?dÈÒÍB ÛÙG‰ûñ¢F‹ªD›Ü}…Óêh×mDu¥!¯‚ì$0èx]ÛùL‚²vÈŽpŠu2 ¬.|ÁÝÃ…zßdîq÷OÂñåî`u¨pAºÃ‰võë¡=q§Sßb†"½Œ>ÔýIžª+Å8vcøíñÍÆßj2²vÃúæ'¬w#ÊÃ#â<—moc×´tJ2á(ò^÷Qvtô²ö¼š›à°›m±toYØìîm +Òb󸇚™zÌ˘Ùfw¥¸ gdZš„ê/¥ˆ·oIN-8qëeJ3 ƒªùœ¼F2ÓU{ÏpXUxÍ߿•=ÈWÒ¨t¾Øc+ç÷¨uæzs“Ÿ×x26.–‘ 0O9@—Pê>"öÔ!E¾.5”“}z¥¨FòúV˜!ø@:¬”yŠÕŸ>¿`¯‡ú}Û Y‡¬ã¸\ÆÌ´T‹–bç"ˆ{ÂõÑ!ìãþé‘pïRÕ²Õ‹ ]Ø+ˈZ±›}‚œpÁF|ä²¼{ïmã‚@zDÇ¿©V9þŸpaÄAì^‰3䨈esõÓ¬–°fïúNQCG…oÖ}ÒÈïHïfüáÚ{¸m'²xû:¤àëHü≪êA £äyïáã¸ÇýÜ(>0sY-.k„(‹fM¤>j讼ü·Z”ÅŸÐ/¯Æ è6  H­ã·ÀÇ“•0øã‘üÌ~WŒ´ÜDOŽŒØÒÛª„R¯ ýœ°•fÎüœ{ëqýÓ/D!³Ó™Ç•š ™v¨÷¡“¤F|7MµN¥ÏÙïqæaoø:Z?N¬“ÐòÜ†Ž ¢“H¦a/Ê*ïôuCAûs}TjÀïÁœè‡”3¨rÃò^ +‰àýJÊ‚°Ê8"k€dvC%ljºO¿º4€Ï‹+Ôp·hàÃx–L°\¸,Žówú™ÄTFŽÊB?‘r­!éÐÏâÇ.R +‚2¢!FÙs×–w{¾÷›Ž©44“Õzÿü‰uîÆ~ÑxU»¨A%9>{ÀÎ!QèÝQã¡Æ9^Ÿ¿Þ,=ÖœÊöñ%È* ì{S’Ø<*9\`ÈED(7ç†J¨ñ;“¦LÙÕF…Â{Èâ”ÔŠ£¸ôíùœ*dêu] +idÃŠÏ [;@Ö5À&Ÿö« Q…pù˜¾ˆPÃ'nÅyʨ÷på.ãOWÁšï]+£ÅÍö7Ñ"å‹Ïgü„K+‚÷ôòrQ7W¯N¯ÙE ‚*ëî« vâ›ÛyµPTDœœbgYXÏay–jH"T# dÄ nC%è5&jÕ¦ìdš~½ŠÜ¥®ë.²£CÞ¼âvsXUGÛ’À¤‡0ôÛljÏb0Òì–ÆÝ×nïÍpòóyëÝëÔ÷ð§hâ—ò!œ#$ã-„jÕ÷†vh$üÜXC1Kú‹ìôÍ÷ò"Hõ9\³Ç_X¾Ç+L ¼)¨vòV›Êñ×Ö0$ÔŠ€‰Ù0eqM·Ý „_pk­ˆ.<à Hšç©¡¿7Àlæ½æNõ¢c0Ù­S±§©‘SÀxfÀoR>¿9¡Þ¨^¿´­?7®Ðß+ñÆf +:Î׊`ˆì?Z5ÄÆgÅò Ñ „Ûà$¨ºpþ†"ƒe§„ÃDH®›û÷x“cŒÍSÒtˆX’ÿÝ9×6:“8ÕRB‰Ô–…7Ð çoîòu¤<Ÿé4«w_>8RøîûI~¸ŽóÊŸBkÀjz…ŒàГ{;ÉxÞv]?° O4ÀC¿Ó®ßÿܸ߹€gáÊê’©6‚hð|ÙÈ&Lž¡÷w$–Ô‹×R…I±“↋æÃG #;õ'DÞä=Ÿ*†ÞÀâ«ÒY­ƒPf—7D@É—´-pë¢ÔvÁçîBð¯¿O¡ÔÍÈùˆŒ‘6º,úýyý­øÇÒsôÉåÜW#“2ÔàÒ3Õ#™)ñ =\:ô/%Æ@¡¹ÞîûfÁ õ  ªjå¸ÐQ Û#¡‘XR´\ÞKFí×õñß²/‰è¯‰þ•Kø!õï)BþÇȦ~û›ûíþ¿~²üíßÿÇŸþßßþæ?üíûÝ_þòÇúÇŸþöÿüôßÿøç?þî/üÃOû qª¯ûý—ßýÃ?þôãÏþ?ýü¿~úOø‡¿üçúùÿþù÷¼®àWøNÿ•ïá²ÌØÿ¬øQ_ðŸó÷(ú8"Òõ­éWÁ|’@2$´.¦&Œ‹èø­=HühÓHƪ¨Š½ Ž]Ý_Ì…ö[QŒBÏØNÖÙ{ÀA@Y’ÔdáVvn;®´×Œ +yGÂÖ¬­özßC¼&MköÌ…õQ,_{³®!$¯`ư47íIJB9ø “‰fL)éPFô ç%èQžsxÐÁñQ“ñ]Údê,¾´¿†8(=À¸ïÎ5Mg’)f“é+zÀ?¤Ç:«y+AÎÅ[…Ìø¾ 'Û[`Ö½ÛÀñÆ ìÞF"¬ZƒƒNuùÑš·½Z¨TÖ©‰í7ù¡â› ž¯u`>s-i+¥¥é ³ßu‚›ý< •â;_yôè›" ¬H*yÜÖ|XÏäDÖŠW˜°8`¡PˆÝqRø‚f(t1°B¤&y~[xàì‰e‰ÝÉ$á½kª¥Gý:ïø'ˆ½ö®¯Ð‹‰0záòîãŒÓ°ÐcâëˆEÐ ^7 Õ‚#÷“’zO£ƒ^ªäÑK [Jvòãúð0À¬é¹›ƒä¹Wme÷€9b³ÛQÎŽ.ÙftÚqtEDÐH¦ö‘¸á !hµÇ®vŸáQ@µ˜‡U+Ûõµ­½ùîý^cZ}‡ 'ÄÌ´¨¬º¤ívT eÎ{ÂïçJçEþ¢W SÂP5`5ß_F˜$çý^“Q¨Àý}.ŸâPí+_| FÛ~ƒ«‹’.Sè%, +l(î¦j'4ÑÙ!CBš–Sºwˆ^Üf0z¨ïÒKØB–¿Uã8踣¢Ž¶Â(/¯%E >¡·G(E”Nvº +‡^2†H(Àú¤—ˆEQ3.¸Q>Òê,G;új¦¦í½â>ÎÔÇM¡Jvùi·hÍ}Ù‹P'g^Q€'_ÈlH5Lö k€U½s$YÓÝ_~Ñ£‡mñÉåJ†¿÷B “Zódxxb×ÐÖï| ¶Ñ@ÈãAÞ¬*rÐ>û b´|êc¬„›ì~“²ÆÛQ wYO˜šå1z†øjøjèÞÆ½g÷æ’ðtî|„Øa ¬‹ù©_Hô>QyEJ zìå☢VJ·-Ö,êA# î¨)¬LµÊ¾c‘¸¦Z´³Œ@‚H=1;VB=¾N~-3ÐZ±‡êR¤x0©MÏ´E*™öÀNˆìØÎÝœåÙ½24% ìöZ™yöcÌ¢%vö*ÇÏf±º=0 Ç޾ŵì}é¦Y; BÒ“HºS‹UL[Ô¢@Ãp|P(Øã¬OŽÅÿ1LÕqÛã(,ÂÒ¬UôÏ=<ÓÝÈŽ•ª÷ÇiÊåìµùáNàœut/f)¢”¼t4JIF:¹‡½j¸2©ßíàG´ƒJ:=ø­B[ ³11e1¡ôë‘בƒ»Ö¨ìË^ºk³ªß¯ß~õI +·ˆÔPR"™®©¬95ìö +¼(A7Ò Â¹WD#y{†ÚÄK'{s´Óv#Ûö¿hÛ V±­£®¾wb‚í±Ì=cÞVíЇœ=ˆ3èQ!HÒc¢Ü‡®Î:¹µ¶†Ã‘^¤™ì¥dëîµ²âÇØ½uΔQ=‰Téè±_.{ìwq,¡5Þu÷µ¤k”¹§çuxk•â„ó +²úˆ2éc‰à««$äoà”A#5Ì'‚%ÎÌÂVÌà{¸HxÓ½ lÛÁ¡òh“Çûi¿!݃-ÍlªÇ¸*kÈ[’p—ÝC%ä¦V6²ªõn Ùy?û¬{•^êÌç(`—= hðœ%3Ç&£€Þ,"ˆ'«@ù0`©\z^-®I<Ê•¥\Å´V1|^bd75 pÙƒGù؃ç°À’Q¬ö<àý +yÏtOÔĸï[™#ÀÆlqET¿Ôņ›|Iî€áÏ‘|î¿öŠüx^©†Žå²Åõ h©CSÙš?^-QBQê׉âDÌÁ]2Çat„«DöuˆS$_‹ÊñÄ+A—ºµ3Ï ¤Ü7ˆbìæ‰nÁ5%ÿ÷%cbœÁÜzH‘7déÇac…±ß¼2J{’»§„=p4[`S3¬WíÙ€Ž¿ë +ÿB Y-rÈ‘Òb;¡ÂŽIªO=A_æ‡Ww1%RB`þF?(pªÇ¸—ÕCd¬‘“ü¨!†½ª|b„ì×Ù¶ì×!;…~q zêt¨°\ùié9<Æ,Ó‘9ñœ¨;_<{]ÎVÇÙ4™A©áщ0¯É.æAYhÜuvØÈ_²æP€-!“që ?¡<…PP¤!Å6ÀùÃð´µDú^Žç +ÏE¥yö~4Ôùß{àþ;Ql8pžùç^ìMÁ8‚¢\¦hy4¹®Ã­ -©2²—-–¾R]ï¿ {ûÅNÒ¤¾8§fŠ è—½ã/¾A+½uÈHÝ”Ãç¶®`‹÷ù ½:å<aDâl$³˜úˆÑëI¥Ÿóòáiˆ>*¤{¼#ƒâ¾”q u‚­°Žrïv2ÓÏt^jß÷$”˜Ø·ïÁÉ{–)JEÊREÐ}!ÒÿDôà¹5%nÉMì³ÏÔ ®íÙìm ØÇq‰@ÎãúØ*ˆl o•Û‡áÞÅ‚|A¶©äÿÖ£èrÁƒÄZûžé­×Jb”içy¨‚pkdOéKYÝstÍÌ‚ì° ý_DÓÊ{ȦP1RdÚpûâ8`œLö&ä åJÜÕ 2]ïtäB^‚ì){~Ñ oHŒpBL¿+ŽJHÎ~¨ûV"€Ž,CNÑjmá€YÑ¥oÄmùdk€[±t»À)ç˜î8؃–¸º¥Ó^4:)ÕâðP5Òº¾¿>Žz,š ÅÁý+ÛËÊ^‚¹¿ À‡©=90dØ] ¢«ÃòDš ½D"GŽ}(HëÐ7vO2G¾œ^$/v/dGBÍ•¹áÝE&Ž8y/kYº,'] +÷.jJÃ…LI%]wÄõ7—½¾Ç–½ÆÒ+õ½Âú·ìooé±££ýŽì/GÁ8S]YZÍÓC¿pÀs6š4˜F$Îøz‘C­×Æòë#J6¸”.¨¯Ø#Õj¤°£z #9ÛöÐÓ'C8ëý)àƒö(B½=wgÈCczʻή‰·xÑß(a•#ʧÝÒ¯Dw7ÒµX€k«¬ Ëp¸Ûr•Àã :U~†¶ #–Ød`´Ï¸€4@_}|"A'ŽZšXÄëJîìir¯öz8ÓC"ÎîqmGè”Ù•îNK$¥ë+°}H{ôt÷Àø²—}âDáà›&iÉÝcĶDeÄ<ü å%­ΙƳÜcƒCßèñ±Ã¨f§¸ÌÌ)ˆË\a¤i¸ÆùD„¨¸ +Æ•W†´+²–¸¤žÚÑOÑd¹üJºÀ b"|‡Õù˜”¯,å-©bHÆÁ†’×m2’.°¿JëÛ_§|¡šQ>ôÎ9AyìÁª2Þ„Šƒ¥ ŽÚ±ÐøX!Ÿº.#°j¤I§¥Œ\VÌCÝWJ°»pzXK¶Ç+-S”؃ÓaŽ#A‹¬†ì×þqž”¯Ûy ·ó9ãÛûùmðû®X=. ûôwð_®9¬AÑkHY‰@:ÃB¶Î}¬ßèªâa1q?¦ʻ͸DÎ{û/z(­8_Oâ—P/&­gDíMfÄ0’By‡J(GpIß:Fe¾;‚ñ¹‡çqw„¬Ø¾j€UïÇIÚ=b;šø&’·^•@ƒÈ/%qH\ì#Yã1iõ­´“º‘ +³§íŽ4sá~ìáZÙ¾~îq_ÍÈ Ö¡ÛçN¤k÷I×&ô¹”þÅÇì©ö{㞪՛âüÜ =y_† Š{88øvLEÖUìZ0ô³Zäû—ld×’ÌoŠëS¸c] +70ëªCÖÛq*É´Îä­'‰Äú‰Ä¸cõ‰=+‘±Bü&âAWÌ|ˆI㈙Çf…æZü:ºIˆ"¿¤t|fêkf;¸5‡êË5z²i +¼™Gê½0WqR޹ŸìŠGAU‡v|š~K‘œàœÄ–=`5Øãš™vý(˜%u|;Ré<$q’í•àu–K.³%e%¶ šJQ0-’`üÏ=b[–ˆdö[õåqžó6ef´.ØKéé©ÝÀ{•ÏTñÑúŠ^?õjG´©6}‰ª¨ÿ.ö®OHo3¶°ëö'í…•˜¯>þèÝAiz|Ès¹ër»‘’®§KÇÉ}9`_ =v¦êžöïÕ-íñ¼” ¼ßÍÜë븱$vL]^QdßÊ$¾ˆãâ¨Á™Õ[3ÒC¨—pw½6oB!X£—úq %H7%0¸Èÿ‘üÄþ Y[8vN)2è2/%£Øú|Ѳªj6åæg¾õÊáÚÒØQ" —‡C·DX÷OÁ,¿^x‡h à‚Âôë[U9 +Ü’Ù`.Ë 5Ü$÷î°p²ñ¸T«L³D=\¶¿ª^æ"0 ¥{:¹œ<±me]MÒÒ9·@¶¹Ö>JÛÓÚŒ‹¤ŠWëxïñû[R£¦9!ÍÍç½éuêÑ{ƒµ×—“Šu/²êêz¿õøbm|ïÜŽå†{Ã$–šû«±çÞ R µýe²A¢Æ¢|­KA¤·ö(9š=¤4aâÜÛ#€÷¤Z›ú.ä2Õ•fqý¦<ƒçË·†,+yÁÅ®ÕYþ˾Vp#¨wïžUöOPI„ €S³VŒìFç³½þÙ$RŠ9œEqPÔ¾ßÒ) }gÝ{ÂdO„‰<òXàUØšeá´`®nΈF1•\µQÁå°‹$ÊèÁö·ÞI@z½=Zô0ñj¤…»Î{&¶îôÚÑ«q 'ÒÆ*ÿÄqj€'zåvÙóߵ¦Ù6ÊsÝ”ÜåÙ¡4LÊMííyú7µFpôÚÈA5 è1LvBánÈÅ_W[1<&Ψ;ÀºÐÍj©§Ï¢ÿ±ˆÜJ•±SÚ1¼Xˆko7©y¥Se#Í;­@êš2£‘ÿÈÞ/š4Võ—U¢ãs""²úÐ⣌Ójº)ÛÃY‚¼¿ ÉŠIÎ : ˆá{|ó ˆ‰a©K/%Ì`îFß [±1Â]N‹íáç›dÆyÊT†s]ŸˆßãlÀ«HS/WËޠLJL¦ŸŠ/Y­Ò+ Öî!š=v%iGM„Nö‰^ J£‘6ùgOðDšyc\PëÞ7ˆl+¿µž³{dŠÓ^Bò¼–tÚ± +tŠÑƒXD~âDØúr"Pòô“ᥑøÚ Ýü" Y+±Ýz=ÅÅÌøðKt&Ùwº +ßÚ±Xì^MÍïð1à'×½°Í‹¬½’‡Àv¢õ˜ã‰CâŽCÎP“¾CC©xÏ& +9*3Ÿ"%ŸÄ0¾k<ú!7¦_|iîçüÁÖßóˆ¼Ü¶9#;T\Hë“d2-rýíz¢À§¢¡¶ÈÖgFeÝ?÷ˆ‡F~u¯HûŸ¬gÏûq’ˆ «z÷s’UÓ÷ˆØ §–H·Ññ‹^c…¥N“²3"À_CІíÞÏÀŸMyš1…frñóã®ï›A/–H:Y—A2a:ˆ Ú2R½t‡¼i·¹ùÐj­ÓÎ"Âú¯³Dª‘¥yjo¯G´:=ØN/]’ª=04âj‹%zúÛ=Xäwjèí«ÐZ_g2qĤЙ'=e….5Ì#DSFqË´hbd3L£ ÅÞ¹¾wˆiásØövÂK@“€àR(Þ<ÈáéxðÖÃ!Ðbäûþ¾õZ²šôéý\ï<×»ã|„ˆÎ÷â”)PÛÑ#ìƒ3ô{ß œe— ÷ž:üÛq€Eâ›pßé!íÞ!5´ƒqdIdÊDà `„<Öç<.uç)F@Ô4¥CÙpž|xo‘o_õ˜4{P$š‡¨þÞ‹ +ù¾AØ7S@ôàìÙMQu;³O¶‚ +A@ƒƒvghYƒƒB®yöBç¶@0#Öî*©ZêÅu*zˆ…œßjôÈ91ˈ´?XoÞæo+“zÊ2½ßÞ:¼&+ B„ÏG:žsIe¯q‘$ÑöLˆT Z»¾¦SRÜë÷ºÞ*;ü´©ïicßL']ì±ØucG2µtƒ£Áp¶‡ÂØH%¨ö t¥‡Ôâ{¢˜±OÕ ¸¨ÙÃH&Ã\CÂþÀ©÷À©“ϤÃd>Åùâ4QÃåíÀ¤[¿Kƒ2Ë»S +ãP!UD³ð#*‰½=‡Ù ‚z[×½ªµ/z ê]!‹{„ß{ep!í\DI·{h¹”8àúÚÜïUÌ(zD4è‘[âsuÍ)f¿íÔ/Žs*òSˆÔŠÂ§ìß²Xdh÷]d€–xsÉ™Ý2uáy{¾BtúJPöž’IËð}3áˆOÉ¢nÅ™_AQz²å¢ONŠoóÈ3ÅB0÷â+8"S¦íœnL“…®‹Ö7yª=Æ1o{ëЧæô*ðÉN”¿ìTŸ#6–Àæ@ÐJ lâǼwû.;šºÒ'j„ì"EæÑP)ýÐVöë[‚ù˜˜§B¾—„J?h?¹è‘_˜:r_p¬0ë4Ê¡„Xâ~ÄH@çîp¢Äïè;Ø!òŒƒ¢ w±gZ¯MGÔw¯³M lF^ŸÔ”ÈæÖ²(“ïÑ‹½ŠbÌXºÛƒTEž!£‘§¨Y‰Ç)%M©xÏÈ€44~ô4wyW…úïŸ5жþ¢©Òúžþ²1‡úEò aïI=žie²Ÿé¬)àÑcéäøÞ#îU(3B2ګɗLJô7‹2Í\Ÿˆª¬Âx‘;”EHEØ=ƒH@£ÞçGõ´u(l!ôß3óߟª6Zé ·N>‘zìGª¹`V:d/âz —P†Ù h¶}]äÊ?e” }€½}ûø˜O®Íkñˆ8&_yïÁÊ«Ü>üaÿwÒI`_¿²¯ÄÈ>™.0 . (òÒJAà@Š¥«zJ]T€‰:%:/)…`@÷ñ«;u-ø¸ iEaé—¿Žø»Ø@™øï|ô ýü¬say« 32%Y…ï̘áôÃe:   +³œÏæA$ùÝHq2üÔDÈÚÐCâ +±£Ç‹'Ebp{Ý=êÝ><ó \ˆì r $û¿€2PN~E8X7÷l7×}-òa˜£UÅXE]YƒW,5ÇEzÀ2/ŒU‹görbÛ{ǽöw#4™ŒþѨ»VéQˆtàÙÏs&44c_›>ÎTk:è:ž^Á-„—ÇÁ­†ÕQ¥Éø°¡S6¦AÈéÓ‚Ó´ +)ŸstŸTÙÛ¡)³×b:dĉ;PäÀ?È tˤ;xL¯E—“µºL´cè(f¯â+ö÷OÀ®›ðe<@ÆàíADî…À=ýü@:JP¯ÁH#¬mM"£ +Ö<åF¬*X%b#,¢ˆkSú^j´?ŒOE’íKD¹BnÀÈV¹ñ@Þ˜ˆ“|Ó}©ñ cöÌNn-ºˆa¿NV‡¯{õH}ƒbÀ*M*§äaiØ¿˜‹F:õ£Œ,œF +YS\–™' ýÌ ÑƒÕµhvbÑzĺ¥Ÿ@Š9Á °„߯îlš¾«í¸óe@IÈ.r O3ËAøNÕé)ž©€Ög ;ƒ†»_©y·ì”Ëa¿R.ç¼{ÍŒ}Á¹R ,c™¦wýÄŽ<‘,`!»(ì)í;Ãj…»ñ% à䀜. â +à›b^Úo±åï‰++Ù4ô³,g Ù²¢ØaÖÉÙR:ƒdÞ¸­÷C‘B[3]~faÚGAû>ï4¬¹öGÛ÷ï…µÿ',bÅ&ÙšTl‚ZÞ.l«éØÜ$C‘¤¾m*F$¯ë@ ©µÏè@yw˜Â¢¤«$d¿|+Nƒ”µÅ¡ûJƒ¹K]’ý+‚ÇÛ³÷³5NÄfŠR3UÏšœˆ,Óé|‹Cí¦GКd$¬×‰G`®VÙ¹/1¯'Mc"›8"®!YsØ_´ƒµ†j/OÞèa?y‹’¨ +¥’¢Üm«émæv¿Z¼£~£ršµDìȲ¡s‹HîÒ µ½xÿ^t>Vñ»«‘pUøg_kZ¤¨N0S¬gä+ÀYU=“³ÂHz&gbÑü††"èûÆVax…©¡pŒÜÛ>þNÀ'’å–º‰ÚqPk„ÃZ8C0³‚y¼ï”‘¤b>“ë*1É/¢X€[•9z»ñàoáìì÷¯fÕŒ nȺðuX'‹`0ï”aQ!b_èà?Ü#õT ]àt§•¦ì  Ëù‚3É% +­ä>J4’ CæÃxL! áêxu6<Ý£q +çÏ–@¨¥iÏŒš‰®å–òž)VÃýx«˜äSl¨#Ìs¦Gâ_í!O¶I13‰¸ SÓ¹çŒÝø3 -ýÙIÎ𺤥Šà ®'13Å*gNᾎUGü. ~‰T—–1ò»[ŠB:žtKò¬B«Bƒ5G0-œ„ñõ{jÉ$Še›¢DA!¶{Þ©YmG)€H¿E'Ö_~Þs¼/û‚âGóæÒ£85Ð,¸TÞ4‹—;CþÈyÓkÍ8ævìbâ©…Ë/a¯Yí {wh y=>…U®€¨›Ú85-Qdž˴ñÞ–§‚à帯• S—è¸u¯e¡4ÔRýöë¯Ç¿á+If +ü ™)LÕÝ™?,©ìÄÈ(ýéô"ãO¯Š ½¤êáÐó&èg ûèq ïhÈØ´=œ)­LƒT' ]úösRJÄ+ê×T|éEZ"ŽãH d#ä PQ¯ŒׂÂÖ:n`LÈûh¢LìÌ~ R$-G†ÍÚR3Ú›K1Xœc÷ÃPS`HÅ(K½:_å@ºj¡0éž&$¥0Gz"álºt[bî%4".á<¤ðö"ÝMü@·Œ u/ÜWÜš]'Þ ë P¡™¾¤ÞW÷8ÄàôxÀÒ#T“D‘{°ÒCcDzøº¤CÝxioàìEÚ^l?Æ­Ç™Îu?&hrü’9 ÇÓ¶E„™ ¿WþàY'–{"Œqpj G+$ô›òÆl²<uM÷z•ª žFOTâ´– ò»,f3ž’Õœœí謤qp|‘ƒ&xŸVaØ4ª1Ùa­•ªCç!ê—xÊI)6¸-A’ÂÔ&`ÊúíÒà "R׫"ªrÁ(•TEÓÙ¤OâölÈà¬Î >Ÿ{¦}?‡9A²€Q›´sàò\¤v6i!$¢ð¡¡P@”NC|y‚%Jðìc³êCh+½PLHîÑãw„d Ù{R×óÖD¢?Êçô€vƒáõêŸD Þ=GUúˆÏž_LÊáÀ[Ïy®™8öÛ]¸AªÊ öÛIñ™ñ£%f0!Z8ck̼ÆÖް=Ì“ªÓü ÐW6Ò 0Éí£å£šNµàA6ãn™Û^2/CÉUédüàÏ+êC Ú9¡gh€+DŠÙÁ¦eßn€W€¾Èd3þ!z¤æ×îå^*7 +¬!ž¤BÅC­)äƒÍl0ÓÓãÈI,òèöà‘Ñ£½ôyMö"K½x›éu³Â#®4kzéðJ¸àL]…!¡T°&ˆ¤…v’Ëeäùz‚%¤ AlÚöªÆÆ…ÛôÒ~-XBç€$:…yØ?0»(i*!RðBL‚"’i£Áxý~‚/ôû‘êg ë:àTZÈ ˜÷~24« ÁßçÖ^íh—P #X>ýy#4øm©Ÿv޵¸ç0O÷=ÀH«™™ïŠÍLp (Ñá%ê|ÞGdV—¯„  +' Bo=ìÚÙ캢S:f-f¾§ª‡*U=Ä@_À^!»G9ú\QÚ[–<`ß1: × ÀØ +ÜzÉ—$aV‰‘|·A=˜Äp#@šÍ%£byèǾHû Ê1òÖ49™ÈKOtBrâyÂy§1ΫdÒ}wÕ3€` T²’ð¡ÎmÂ{$k!?|›$ þõ;e…§øÀ4Éu0•Ú[‘Aï4j¯Œk„ú"”#ïU)) \M!–P‰½‡ÕœEÎ2y0{ôbeu‡„2Ëàü$ƒ½yj‘ÀÈc©ç•xi…ƒ(ˆ³®·NÜÇÍKob]ƒ?ròo7Ä{dŸ:à˜0¸Z垈œ$uRæÍ©‰X€{rRª²jæ‚0A&„*4×ï1é—àþ €×¸ìš=j­L<=ç›S²Ìäu{Çô‚à R°ÉËR§KÝh%JdúÜ8Ñ‘‰‹Ã_}$Þ +È8ò) ¹«îȱTû`;”¡g:¦ù…”dY,xA’xGúî”v‰+–ãYŒó½\µ,°°-L‡ÄÞ§r@u…äM…q™Ò8  éÆÌ4Ϙ¥…ôi!P}:ÁÀÿ††zeÁ›ÖVèDq?àEe'&Ç}˦ATÉQ™kp„êÅ=v•RK”üzŽ ˆâîz´>Na@®Pqìå|aÙˆ2PtPð€ôMùØú†ßÌq—¦€'°±¤òxdSÝŸÅ¢¶ Ž„ûs¶®ð(ÕÑ=G•J†uÜ—hI7 Ù n¬çÅêË4Ú{T(KÞ6ãÏù3`ÓUü6Û°±²<âXùCfŒÀA +ÞóP²‚°M¾‰ø®2ñÕ@©]§U­ÃÀ:wˆg,HɵҶ‘9 ÂùÈévˆ!5¾®Hz}zz„ÌE›kÍÜÎ=BžbÏDý”Èè%é ëÈ#þ3VçÈÞ)P8txÄÑÓC)4<­S¡bÕðJjʼnR\ìº{wÔáEÉ3(tІ!;‚/!» J138¡ð[U1/f}ÂÅ1YnIÇÕÐΦ›Í=GHšŸÌ9¶ÒÊ…©†¾‡û‘Ü›ZRîû'ÚÚrp ‚[ +%<©(½$(GTY)— |)‰öW‰KGŠ +ÖC ˜÷L’#‚(aaR°ÚùT¬K`qšqöŽ­ë]é…"sB”¼…4¡f»—›-z ûÈ„B(rY®%k7ËI¢ñú«”ÑOÀÒ‘Þ|Hñ„t6Ó£B.ÕË!cK +ì|Ö':„&TF{{”fÒŠÿ‰ƒþî<¼/Ó‘±Ñ%À™®Y›×Ò‘Xð¬!ÌpwdÚAíA1—‘HÙDßUJ°Â=ë õÛW7wÒ¢ªÚ™)r·0žÄ¬‡ûSAFT]z­bKxŠ2Þ(+?çÝ„´0«~ÀXê€î§úˆ†Wn·&æyל|‚®ÜÉÕ[\­O8Ë;`°lPhpXP[GTÁuïX«BDÝuÈØCâ'S·F¶¡®(VÙM ì]0F+ò{>íõB-¼‚v‡‡BQ38ͰúÆÁ‡`ç£Ø2ÁÈg݈TY6óò¾3Ù<ÁˆdÂÞ9KÀàü„‡ N–D€PD)ËG–íÖ—ßÝ@o‡…·oúMÌÓøX>ìüfˆè9F€fš…‡ùwñ"Æ—!93\Þ1ªpM‡©I«g³Ž©šÐ>' ìA|M乫¥N-8aìÉÜ£mÎÜGG£> @)=€_Ãðì¨ìí蜌)K£ù!·RÇC#DÝÁ\²²¶³?ÚßOXÒV¡ïð4÷Â×à þ²+àîmûgD8¢™gU|Êé!ae_¦¸az«¢Gz>Τ;2Ë#d›Ñ°—"ÃíÀ°€|¨Jªh%¥þ¸–C)ÊÉÓaÄŲ"¿NDÚž2Ù€˜æŠÃ-‡v]¹ +ÏÎüŒšªÆ3êDK›’ +Ò"œ“uÎ3šª,lšºÒ¾È8¨±bì!MÐ|yE¨½¨ðÂ\ÔjèOè¦ÉÛèr[Ô„Èl†oD' »;,Ìêk$i@Tq“w”P˜–fè%ôG/e‘¢câ|×( ªYlòò¼706«â½ á²0ä¢I–JöD8s+Íuæµ+6â\"3 TÈe†&Þ¦‡PõÿY{—][–ì<ï ü§)©AgdDdd6íÃ@Æ;’Z„P’–(È2¿½ãûþ‘kŸZs‘U‰âžceΙ—ˆqù/Ïö §Ú¾­ÇA÷O o ;´`j•×O£…M›õ­Ž+ݪ [q¿ùÒ‡Þ(K¡à=cÂ@‹§V”³T{,kÁÁ½ ÇŽìtŽØ3SiÔ:›pÕÉ’W×a¿ð€–˜ç]8PöB9_¶ßn;¯·Lyw ˜ûõl*ü·ËF=ÊyEéõàFÓ•=A¯*oeþõæãˆñ³ÎŸØÖžêƒ <%@¯ˆ{V¯=¸÷D¬ýw¥'€¬²ˆàCà|Èœ†ÍD>°œE\dŽŠðŸUV¸¨è«Ç +ÿMñw°Ù€·ÆA’ƒ›"êû§.´g†çÊÓÃäâÝÝËHkHÏHJ±-…Î{GM£ô7ó$J]¢”¾D—†DG\ÔFˆ@·—ä–ÝFd~¼w<äë’â…Yð„{Pð’‰:¢Ñßôã1 +ŠÑ™3xƒóÌW¡ýµ#Tt ?MD6cèº2VðrßKú-×%¤iCp»ï@õGŽECƱ4<@êFQd4xSf¯]™­­ÀûHú¢¶ ¼C… ¼è7¢c#‘'€½3ÕuX¡!ŸÍÂñÙ™Ë~äv +óE8 Au”bÞ}¼mþ¦Ã g +e´ïâB2Iö´ë|kª„úïaê‚0Þ$D£xX¿è ¤—áRéç5JÄkÄ/ºg¦Çké¤C Øà^ŸÁAb¢0´¯‹sý©~ÀX½íïõŠ)ÜÁ=ÁA6hWéîžÐõXGîY,“‚8 >Uù盀;bÜPy'£Ýë½5Wøòš)ϼØ;Cá%¡¸YÊ99¹Ñ˜¢D+_µA…Nb[g=JMôk§ØŸÙÕ…”hzÜ×½mÞªÁ1*â­_Ö\Wræ§£+ €¸ÌývaVawÐ9Ž»ˆáWÃÉž«Îi„VMF$ ‹r Ñ}²þÁÀ«t®Âœ‡CyÌ@쯭+*] ˜_+•5Ìôú>*Á’æŽâW¹w¡ üý¦E…áÅrY¬•ï "•âs +‘üûׯ£® [,¦ºóô:ÌqË y‰ôE÷È’9šûÇ@¦vªöÉâ&\Y%yŸ•ôðÓPñ—†d~€ç€ÞNK™·D-ðPú—úÉfFaAÔâÁ²½qÛÁ<Ø[( +,iu€$Ó‡; TŸêuTÖ=Ñ3—Ϩêé@¯ó+›Â¤Ã´›Á˜Á(h\w…1­Tô­yVéð˜½?hCd—H}7=lã©|3Õíê·¦yˆg¦¹mý&.•ç–ºD6§fã +¹©£¯¯âíMBycØ}퇉Þí–( ‚«W-âJA]–c>®Ìp§>èŠbô—Ä+:¿& Íž“š«ƒD9]®ã¼%Á÷J„²ˆAƒ#¢¾’ùEw±~…?áˆI‘"!GddFPM1N[vé5pFW“ØâzWÅZÍ˶YyE°ïœo± Qá€É¤+lÈ´…Q¤YÔ=r©~³v_8²\%c1¥#IÀ^K:þáJ„P÷]õ—þ9Xuñk/‡ÙÒ÷«J±ß@çÓ!Ù‡ÙK³à³}\q”+[0˜ýî|ý(<Þú)¥åâ“×—˜ü«AŠGÕ“£eå%÷%ï!ɦÚ=ðd¸L)mL2p»õ-xª|ž:~n’ÊNµ°(µI5ºOëo(:IúÚ¿l¿sR{¬£gÞBÕúë~ œ€è„æ·ërôÁM}IJ¸"0m<0û:g_¼rñõ"<Ó}zúüöüp[ äß µÈ CH‡eÀQù Øp`rÁYxOó-ˆ–[þ  1»‡l âªHÕÂ@UtUgTîß<왲·¥ÉP™5áý+ÔÖUNCÅëÊæÖ¾OHUò§"g9òê"õZ8ñ! ë´pµh WëÌŸSWLü‚®x™­6‹q­TkÌÚˆ`Œ'Lƒ_¿À621«¾ÆDÿnGMßǹ2Cß ÂqJdèߌ°‡;ÅäDÐ8Ñ;Ê›ôuéÙNüÀ4÷: ¼š'ZJp£P³¸ƒÉRÚ†f-OZ6€!h¼ÙµíÅNuÈÀ¨E +½_kI§ô%)q5vS"Õ!bÒÌ£™…]. "RG=˜^!´~FQ µ<¸Ñ+$b¹ñ d›½Ì¨ltšEfük(Z‘Y«ÍቺÅÅ› 6ï*ä)ã¾Õb„æZq•Ø=îó‡ +|9SÄ|PZ‘%Rÿ”ˆöv{1Ÿ°\‡2™Ã”.M´ÖœPt]À¸*„<¸—%‚ní¥AN¶ç)nǯq™3ªŸVøË¯*¼rDM&Ä1H‹¥V¯€ó€ÇëÞözHÂRÎmFà×[Œë¿6Vú±{ƒpé‘[m ’TÇDºÒµ+©ùöŽ;è=ö¬>8owõ€§[ˆ¨âö팸VŒ#?G†s+£°fé³6ðÌcvU.ø[ÄŸj^Éš‰véüé8…Ô¼(€Z¾‹É¤€ àƒ+ˆHIùçá´¨Nð…7–#ˆ½ÖµžKïìjàtÑx Kné2/R_ýÏ‚´Y½ºã=ÓˆJ"#ÃÇ!\SÖÍ&“_eÚ6 lDhV“%¤¨Tå²"›­8`‹ µþ«“×ÍÈ ­¢ŒÏDö8ñg¤•¼"”ÊО¬Üc´Šm´”âó>gw=®ëŠ\ +XÁIË ¬&‹¸Ó­\{Uô÷µ¿´9þˆ(–êÞµ±ý©7ç{„;B°$ëÚO»æ»¼õv"ìÓ“F>Â7íóß³¨½6Ú(¦‹Kþþ×&oj[61KÌ}| ö2¸Ý/¡ÀÏ(,j™Õ<ñ8U½fe$æd•DÎúT’ËW4á|Õ ÷²÷e.ü„¨æ®t‡ûŸ;­R0Γ€îµŸžç—¶ÑŽƒt‡W^Ò}{p/©´é)ö:ò­ÀÁ*SÕ#%Ì¥" +)w ‡ÿ_ºªgˆg§_á¬ív×E×ËÙÌ•ÍPv­<êá8Ú‚VõµÛïe—˜#í.g0ñ®OtØáѲ`×KÖ¿"äˇR³ñ¿ý1ZX33âë’0Ï3ô""\ßäðMyöñe](2êΟ£’ð0Ï}â\#¹åX5M;µÎº ´îÔ¤ÛhS5•¢p~Á¢iPaÄÎI]§ºà˜&cŸ< ûÇj1˜øK¹Ð_³B‚ÀÄ\f§>hPªR‹Øk— ‚¢ìcçÈ^Ž* |L®"ërÕú­ãw­;´Ù,чÒpf˜]RFKûo¢žŒp^Ý õb¢q›± õú~ñÈñWôc’ {"enŸ£Dù°¦ë%9wæwýëDäiÖ +÷H"Ècï .®H³§þ¢Ðš¦Íw„i/n}úÁœã$7ILô—¤.¡~c—L +0.¡Jgd0ÞÛgSygG n;ÔÎQ7ªM&·E »{©v‚êE¸>X0z+,ÀS2ÇO®pT®· =ì5•ôíÊF Ê»ÑÜ>_ýþ«¬…VK¢µ‡ rG @ÅlˆÐϬùôÈ{´7ÂŒéPëÈçí tôëLˆA5êû°j5ÆS”ë©:Ó Ùâç^Nþö”^ÿž Kö8é-Íx6324ZX󢎂ÉRÿ†ò=Ý«ä"ûA¾ªs–¨UQÏK5¢ÁˆlL›v°dŸ[;æS–„ºZfÌéÙçŸ]@ ªË{íûƒVBÏÍ–‚ŽJ¢ƒ.±  0î§FB î;g¹ï<ë—ÿâÑÏÀ!Ÿ8s ¬-C8OÎ]ÀБZr‚h®Au`üгÊó“IÊ>?óƒPÌ\/ãσŸbȵ×è×òÚ´r`âÛ˜ÝÕ;EÎʲQ½½i¹x~xßOh•·ØÇsüp$Ê$Ùñôì +›1?EX?µxÞÜgûÕV}Bìd–%d‹ÞÉ’ØYªtèMO•ÌÕø„Îâl¨öOö^ÛÚü!"¯—`,Íçq^µOøÑãÍ·Æ‘|‹½øY/.mâðåô ÷ +ôe½ÔclÉÿ¿h`"²¦O œ’wm­B/5N¶d”¼™z‡Ìx‡¼E3QúÝ=Hú=9Žù¾ˆà™ã Ü­ÂK¦Ž*ÿäDAâ)%ÈÍòl.VÄW›±E½}ïÅ)12œK{!úT¶‰L¡Xz霾 3æ«Î +¸Ï¯,¥+IÍÏ£_ñ=JySËåǦ®·jaˆÒRºþÑS…³ýBó?£†Nœ|:&I iLÓBÕì»?EéýC"$‹&Ÿ¨™gêKŽó̚·ºÈN#ýóÎÉ­—M&v¡°Ëð +BÆzœÐ½tx£€èaD£êá•æzã•÷Žœoêº.ýË~®’øY玜¹#³ÄÓ +9¡êTŠáÐZƒãÒÆ@šóÙ†`#ï»0²6Ø…Ñ­W¢ô6œÑ/aÇûˆ˜A>hn­·ìùˆR?tF?TõCçˆC=ô>Ýx:†4Ï?âå#ERÛ-¾¢µá5¾D©©ïùÐrô!©·4&BtP({”Ñôjß’½~¯EØÂpf=áÛ‹Îríèïýuv1H«õ&=ÌhóÝ`×¢Þú=âOïO‡MpUÊ›~?Î5_Þîèʆ4‘µäß~Ü¿±›t­†'H)Ú +g ry8®C6ªd£ÏÁá›;G“UVìbÚÇü°ßkˆQ£Ý¤ÈÁø¡¦²=pC…ö~ÓRÓˆ[0T¤59|€j OkQÉ{ÔJþ!è¤tfF¹Ù©SŠéÔu?P¨?¸EÿP-$WîïNm-o<šX´Jü—ºñ_Ì•Ŧ½w«sCAáx0G@>©½¦I+ÉQk¾Q´rºTå:Ží² ‚pE¬Šh«"V"èM%‚4êçm»‘0† …ˆs  eqhŒî¿Ç©ÚräÌ¿C'E þ~òOÚ,Ð{Íø:¾@εKöõäÆ<`ï@b¸ß6D¿™J-ì*Eæ ¥'w}$¼Ê,aR̲Kê +røq¸Ì¿‘¶³/{ÑgQÓ¯5ýÙ<J*µâŽXÞsœC4@Ú +Ùûü:®®¸—M ?S”ðDžŠGæ‡ÅÎÈ ÑzT1“ý»œ|d²U½ \t¤É]R©n‰L§®8i2AJ’·øøë+äYG#Ù]¹ØÓoöI¿\¾´j–œ(ãñ. œê,!šQò´/NaŒï3ŸkŠcônÞQžé„ ”çý¸ƒæôQŠ<»ž=¿ã*ä.¢ÕqÀa—4uEUÚþ†;æ=_ƒ #*9ðÇu½âà%–gIȼ‚ä4Ý¥ ëöÜîI¼ÊŠSŸç*ÜéþÚÇ«÷Ü™òÂgT ލrã+àueL(Dr›±D Ü@Šé—ÝY­È6!HòD ¨Î³Ê)€/½3‰WÑy“µ>²ƒ©ãò§.Àõßó(@å#9“5œ^¿>¸ÓŠÚ‹*ŠJ¿ JÚc»nBw\ðŠͽկ}vž§bº”7¾"awüá27ÿIqÒS­¡×z'Lü%B8 Qo¥*§9Zûâ²'kñß3ìÃKö¯´OZ”•Ê(d=¡ODÈÄyf4¤m“â`î˜__ׄ¼šwû׆à|¢{¦9h•#äÔPåa.‚ó¹Krôûyk¾3¿?þÓÆ’À_Tˆ¢ÃÙÉÐúˆð>ÎÜÇùö?¢ Á»\àØçÛ1Kæõ‰ïƒìWô‘èâͰۑÍzþý‚ÑPWFÕÉÿñ%’JÚTúg^ê”îP÷n¼Ê”ˆ$@Š‹¸Êx¡Îbíïq)ÐUt„ƒ#¾H=v æ:Ï9~hxDÌ;D4«_Èr¢†»(T Á¥ÓžÈ¡#bd"ù#0à2µØŸîŸ°O›fí;2Çñª¬í_ôöLï2ÆÜ©ðMb©qŠ‚rmuvDp›ˆP’ÃHßГDOIG!ý!ýž¿Ž¿¢§$†p.fÏŸëLµ–âAñŠ¿g©¸ëÄñǘ²[”We(ÆÁý® +0ð¨px ‡›éT¢aÈà¾}.ç$@ÊûÞÏ¢Âß#Ð}E¿(»I©iÍ%–Ä0ë"êÜC™ä3ËÔ0†Üè,Í©ríG@6‘c+ê>¢Tù¹´½ 3ßwÄ­ªòç4#Ÿ¬P{å}µ¾E}hl3Ü7 Cy+œëEŸS€]fy×TRg-Å^¾G|­!¸„¡ åæã8{ßSk +fëÕC¦H8 »À™1JÈåÞ‰5—{ß´:‚Q+ÒÛ•¡_è4Ô!9n‹èiûTÞ§9$B©3"ÐÝ b¶¯µ©eú²2"#HßN›»w>âDž(' +¯9%6B€õ~¡Ú¹òKwL[ü¯ƒØU'Z,8MzÝŒ-œähð£ÜÝ‹žøgð¬z :yÞ¦¡QZ£¢¶|æUîð™WDŽ,ç)Ur&…è×Ýó°ˆU‰±F¤lØò(ÒÎ?.磨“ÙÀû#ºËdx«Sÿ‰©xh*à(V±JñðAÛŒõåPWà·À£¬<ã·€ãGI4ü ]C";¢Ç -DA±tdqî"„ÁôïR ™{ß®£GTqf[ˆ\ì?«Œ©hïµÆÌ+ÿCæ2¦Â[Ùêõ +,œUˆúüpœQ:IÁûÌÂ÷Þ‚ké¹ÿÑ^Š+š“ï]ùŒ:"ÃŒ§àzŠxžøy©8}”‘/†ŽÐ¸üMÏ”¼M®áE;5ÛÚoÍ1ß²úÊD_Žt•Q"’ æL(Ïóˆr4ŒñþìäilE€í+èJ¡™!jûËrMz5·NŒöÚÙHËŸ/2„DæQ¼%<¶²­ý3ýyn‡bü¨Ï¿‡‡"%ÖU¥+ä_¥¹ÑâXw® H¯þ^ÓHã^ZsÿÉë¥4î–ä‹"ý5ËB€ZÜ‹§?#ã¤]eÙÀK~ÝY ÇúgDθ¬z ¯’ð·ãÅGd¾ªÜoBЬ ÙJiÅ@EPWžÑóÞ_È¿¯ +F j¨®õÃŽ¢ÃI,¿­ïó„5fR;ö¥¡3a*Ñòa<‘ȉ ôèÖægÎK2¼‚ëhýYÔÎÅ>â¬tõ§rº,lÓ,µ*›žnÏB‘q3cÞ®_%’Ì?ÖÚ !B=Ê¢¬Jg‹¡G xª§xV=ŒÁ©}n´i-j-æ  +…#ïxîÝq•Y@R4¥gÛsoÒÛ¹ÊÙ`ÆÙ`½¢¢%Žu/Ý$$à‹-cœÖ5bjQ,6j‹‚±o)­Žú?N…ï&EREÅqå\|<Ì5ýPmû1á’3)&1¤ŸÂø–ú‹‚Pé½c3± EŸ¼íRÇz¸´#¨¯½êËäÃÅáSõw¹GOÄÙ÷4±ÛïZØSß"^PS°”6äP/ +‘[¥\ï¨:Å~å¸ï‡løtdwuzj™‹ÿ«†-Ó5 ꀪ0¢/-ô©fzœíZÉ=ŸpAú*=ãK0àsw”:—•½¦þMÀ½;S†ÖÔÏ×| 60⿈¼ûkâü¤âÿ£tüæÁœïç‰öþ—ÿ°ÿËõÛ¿ø—¿ýÛóŸ¬ýö?þÏÿ÷ÿ÷oÿâú×ÿÇ¿ÿïÿý?þ·ÿòwÿúÿù»ÿó?þ×ÿøïÿûü·ÿ §ú9îû÷ÿé¿üÝïÿ_ÿ¿¿ûûÿëïþ—ÿðŸþûÿúßþþÿý¯ö垯oðTþwþï~ìö¹öÿÞùQ?¨ÀÊW•á>MD_âÚÓb#)wÿ¶óu®Óbü[”’Ô;4®Q`Ì7 +vx ÐbFÌJ%y×EɉßEŒª)$£Sû¸§Ö[ :Šð]CÔЫ%¨ÿ°qÂì⪆?ð,õ»w è^*ãáö‚ø‡ã1bgJQm _ËbOåŒGö1°sHòÔñ#ÅÊ?)†}*†KÀö=o‰¸\#¡ÖßÕ^ZÕ^éLăöHN0G$|:ìp:þhL©L6åsùB:tŸÿ½çS«Še|Ý˶EãU4ô½»kÚïê&@›€DT£¡½_ìè3v*âï»:¯û|1ÂnÈl$À3g@k-šH'Ú% |*~­~> él6Â#ä/Š¡A–ˆ®R縼èjÏò‰R û…Îu‡öwTqE +ÄDa©¨xàÚUbGÇÁ3ìÿüYù`꽂ÒéÊŸ†¢& ,]#ÕÍaØdñî™®“S<‡H—~Õ7°Í~ä<}­Žæ˜ØYÀÑ ¢ˆ'wвëf‹ûy‡ç‘º'u&bWÿ£6ûïµ®Š_ƒ3ù)è0œ“`œÉQ?Dà£Ë´íœYÇÿˆiv3ÜÏ +1øý#\D[|¦Q?¹®ŸŽC¯[¤öÐ=bªYî6„ñYòÅu’®¦|B¯ñ®›½ÖÍ#ÇG ,C†:ÓT´·/§ ÅŽb2Vëø”Áà(Œù‰èw¨0ó'n XãҧȺ'únpL´°5}-¡‡†³¤ŒC)~ì¢{y»Ñy'…Îâw»]Ó¹GåîýV]º/ÐYãËëÔô¾IŠêÊyÇšc„:uÇ —Z÷žýÞîwgÆn¤ø‘¯Gïq·,ÙhyöûõàûÝ=÷/*ҙǫÀRr7ÊáS=Ò¯ÃcKP7q¢=EŽÒ¡îC›k¨Äq.K¢,{$tÊ÷(@ú€ÅS7¤¨r Õü–ü%¨òcJËÕt¾)²ô~Û™T쬗ø/¿#¿×;%øŸ­é#phu'¨Îôu‚}¨ø~in…Ý#ড -,\õ`ƒºóRæàó·Ïˆü¦§²CŸh±}—y[¦A¦%éÚǨÀ}€D{oÅÇgóo+"½•ƒ„/ñTzi:cÑÖiÆdšª^§kr7¢ÄYÐb[ +¾9R÷óž£h•w–òýµ7Æ;œ…«7TV™U/#¤”½g±“7à`;‚;˵ðR“Ëã@y°]ÐB "ž;gêÒöcKEµ¦Ö¸•Iõ³Lðáj¦p–ºfJñÓÏ]¥" Dƒ‡«ìpjÚøC„s\ ½9ÛgÔbÀ«îtO}Ë{±ÇxȶCô{Ü?À9ßGDV­ÚnŸ9ŸŽsêqûzOp}Í‘L­¥Éã4<Á©yPmßG†àx‡½i_ÐÁmd¦»è•¢1Ú_Òó£D…ЭQøM}èË„éN˜N÷Ú^j¹dÙg¨Á Ð2¾M{Ñó×iÊFVN¯î~à‚ÓÐìX3çG<'¿CRX„ü£ +z¬¯g*Ä}øïWÞ'3z:¾¹¤fô0¡-)#F9#µý`•Ïõu'þüC$˜p2èy¤V< ³Mx–ÇâËš-îz¨ˆàožgÜ2rÐÙûÇD2{²‚µ}ÖIJ ˜02®±ß„Ö·£iùô ¢-ïUÒvÈ ©ˆ§vuzň—‡t +j–Ósl$´Wù‘á'•~SAV³ƒÏã ÝâÝ߯Å\±­Ù׈r»kLúñþ>^¥’–® žžØ!ëIÌ@‘ Téì £|ˆ!›d€ñç)®Ÿhú7<ê±|; +ˆü!…}ª^(•Œ»ã–æµZ§Oé=užïQ¢©|¡öʧjÜÍ`+ô÷ún¨’æ­F¼OÛe7…žËÕ~8ÎŒÃ4º ‘36<§{˹äéÎ •vJ†?ˆ^R75ŠUHŠ&O-.A=ˆÏ°¾Áûí,qÜF&˜¢|8µdÃ9 íµ 52æï‰œ~6-®îDIòèHHOƒQÓòžˆˆ&^ê}D˜Rš¶úIIœzD—r¦&ɼ(ÖÄ4i}ÌCOz<{ÛáãˆÅ¢J¶mÕæ4o»ÆPßr“ +›ýñÇC¿m2¯–=–Íû‘™ùqÄ(Õý®8߃¾m Úc]º³4'™˜mð+‘sÙ?b'°÷ùýó\«)è‹áÒ˜%´ügÇx2ÿ8¼æù¦ÃÍc?émü±2Gd#_÷ä{R¸b!÷ú\ù¶Í³ô .Õ½éÊKÝé(ž^tCÎψ÷ÕL{9ßsþpžpô¶™eܘþ™ºê”ž…ÝÅÛçüu”%æÍö]¯ÇoJ›ÙÄ• +ow +0ò¬ûÒæú‘KvG쎉÷çq´VœÁبtlV:ÆOÕü*§óG|¼©Å)‹è)}Ó|ø Ëa|ÛµC$Oc Aƒ`UœÙ t[#ãZFÏ×™dÂÚy$mœ†Š­ñý9îŸlü3>·38Pü9âüÏÙ#ÀV$ömü]à‡õMvż'»X'Õ¢ž÷Gð‡QM3iYàú:â꺓GŒr¨¨ù‘l£I%¡5øÃq0ºLêl{£õ’ªõ0ÿq·Èh…ÖûW +û-jDrbˆ}%¦µBoËJjÆ¡Ž_(œ_²ü­wùXMÖ¼W%Šß›¬íÂÚ3QbåOœ7n3ã׎}rô}E`œþ¤©öOµTû×qÝ ø+ÚhMÙy;á¼å¯y}=ñòë­´†¦Ou+üéÜ +щ Ù²#¾dÙÈÏíèéuç¦Ó±ÛQ˜¯.éî²zš vDx)Lñ=Œ‰½ó¦Î™>£Z<''¦ W +0f$¡$Ë_pE +‡­41°Dx?øzl¯‰K“à?ü•£+j‡])ÐækYNO¤î™¨éD´ShZüøtX÷b†™äuh~‹<êa/ÿzÚ*óµýš§Ê{,ʬ5¿1NŸ€&h I|É"<¶r¿üé¦ +¡p™ã‡Ãì*ÙÑ´M_Ç™‰E‹¢I?í‰A¨œPö0Wh«ìžèæï­A í=â»@ÕE±ƒBô»¦vÅX1Båì3ÓF¯Ý±Þa¯D“ñÔqìWQ¬TÛ v˜O`ãòÒh„:n8ÓÄʹ&ÖPBâ)ÇÎjÑ\’ðí*/P!sbEÎ}ž¯þÁRÏÚÍšÖ}FÍAƱæ¶ì>stream +Ï×€n$ûŸKuzO[ƒýÒañ©6ÑŸ$î™u4KŒ-ò0³TÐ8¶¸\ ×÷#qŸ^Áõõ½¶‚"}Š_>ð8¹ÆìŠiÙVw¦Gp¯J|uKf,Š’’&S$]¦ÇµˆAíøÏˆ;´ ÐO0?£p—G²*p*í; ¾r7³‚6Úðë×U¿Oâ]Z7v\âÝáCÝ +‚¸?ÏŠ ×Ucàs5vÏ”S~¬uwÓäòë4f1;ˆñS¾Œ;ØNv½ì*’Åaá;'Чnlqg†@AÄ|¹›DÙ°£/å-GCÉ®Àx/W,~½2Ü2ì³Ò'É 1jµKP÷Ûï¹5ßÓ¶ã¬Èa‡ñ;ý*ŒÒöWAíe}øŒ<íëõýD}hº‹†9ëÛ®ú¶üÃyÔÄPÅN„ú¹¶ô`Ÿþñ§‚ÀÅó®ñA¢¡ÄcC5ˆT8#üÿP|ÓÙ–QðÒ–ø0%®d{~=ÔåÅÀð¬.¸jLwŠP϶—žmY}FaÉ3 3…dV‹/ (¯'€~k™“’ùv=Y 1v’"zÝävÐzPÉ5J|9Žˆ!¾/ Ÿî“g Ö'FjLÎ@Ów„2DD̵+®ûu&÷IìÕOƒ/Eyº¾>9"¦38Ùé’R9y¦G!2ÌÛ¢æÊà“ˆcÝ/¼)¬×qŠ;R_Þ6D¢­fŽôðwf†š³…TùW#ùüqÞaL¶}mÎúEŸQ˜%«èrr»ØjBKP3ã Ø+_‘”U/MűïªdI…ðnrþpœ]ÃÇI ŠÊ9ìú=•îñ…CøöY ð]Ƙ|•?qñ™ÙXˆo^dßçËŒ󷀯•¾ +x;¾öÇQPm‘¥ÃÊ7#DNõÀ­ÄÌÆÝeJ¢ñÕëZ\ë×ç›(ØÄDI«' +q_¢"ýDÍY"¤à Z ͈áóΙÌit·¦¬¢¾·ÆÝnÕnÇ[1ª]غ‚M~rZ™AŸwû©F,ŸK:+HÓƒÑ-Ç…ŽæÚäLú%L·š£èÀ’É3µÅm=hzùM;o6)¿œw]¨9¥)õ¤V. ÁEJ.ÌU%Àaã´4›ïh6‹í¸ +°Î{œý3"µFir²8ÜJñ}?Î e&-"Üã"IE’ü€Z™Gœ³¥“ Ír¾u2ŽO`òvq}£m«Ï8â(”7Y߸ÊÕüÒÆdI^ÂÚ[S8©I—¼•UÝ(þú %æÆ¨ +”Œ––LÄè‘¡“6JIÚ‚Œnw=ÂøûòçùÞižŒ—þ¸?¢ u‹ õ©ÛKËyɘH}\Ázïšv^ëÅU}:cmøT§M •p~HWÉ{"»¤É×5ÎE°\£†KDûBÒuuøµ7Ù¼: D<ûÌõ°¹6˜X·VjâR»X”Æèÿ°‡Âì¢Xº¿Î£™AÓ¯9ÂQÑzºUJ·ÂbC͘ˆ€¬G2˜w 5wæé9†-І&~õOíÿ`T;Šåª@)dÙýmó‹¼b"3‹]žá,øCÄÎ0ÞÄîãCž¯wba¤ëúB`;Be‚íˆ&¶8ÌqœÏˆœ`%/ìO.ÞÇÙ¯¸à]ãc…ç÷B¥åÄ“¶Nñ:—¹ØZޤ߅oƒT1ŸÏ¨¿­ï“aâÎ%]þÞÁï¾G,ëÇ÷r¹â £¬öÅÖþüÑ<‹i´$ü=jQZD t%°’;&š÷§²,6„&8×7z?jÏ’Ò4ú>8…hvó¡\ÛŠ7zÚH_ŽÐŽËí½_¼öCÄ÷M9êïQˆ=Êe •›Ea˜ý9¸Â°‚Û—g<隤NÐ}¢E±¾„JåÓõÜ úñφFE¿„BG9©(pA›°s…஘sìáR‹Pµ “ »^ˆÉc£¨ Ê@i ºÉ®!ðúðDÏT…ºúRK©“½eÉAýw5ÃŽÅ +Iò‘MO`£[Üc‘ë„tÇÂ’ äŸÉ\¥`Œµ>ÿ=Sš•.ÆAõøST¬í«cÎ֣Їt´WpäûˆÝ „Â+Ñð4¢§t·žL—°E¾o&_ðÀìCèu +Ža¿.×ñ½^vÍÓf›5¦ž`>5î <Ǹcœ=ª&†\X£>¿ýe”ß‹”‚ÿIDoðÎÿH7ïå¯AZ—F‡ ªpÜà.DsÿsE‰"*¶d¯!oóH/nÐôRùqCM¸Ì‰¢mŒÈÁ™cØ¥µ÷eX^LK™%÷xŽÖÿF'•Ô ¸53¤±KÃÊ=c]Ð}+FqËéÈ£B®d+oDŽÂLU:²®g;':ñëG?B†I©ÜŠT…ÅwÕÏùšêî—…¨eìñë([5<êàjZ©+ŠäðU®8"NÃûßQŒÉPœBð®á()6 +S&;oCwžu‘-öÑ_ŒCWuBi#¥)‘ŒIñVûhwoe¤ ð·€/¥S†Š{•Ž/ã©­ƒnZ”^PrâÅ®à¶;›ŸÒ²×‡NêJ °ÆŠû§=-J`AöHcWÉ.¦íT ÕµP<øXO[×_£]Y‹Ò™«ôÊ?WþTƒË{ñLÇãTÀö7 „ë×ÈØÃŒ×oM”R¾–]¦}wÙ6*b)ÿhˆ„2ŸroÜÔ^Êôî¼9•0[/F:€î)Mô.n à¼)+²Ä\`V mÚÒLÞ°/é:WX·ûMZoÎh\²ôN3ZöÓ™Âì@˜éþÀ™Õþ’‡ä ©Áè퇷Ljšu Æ«»,Õxuo(µS÷òÓÙ+ªÎ<Œvg¯d;ÎÄMãLä+¹PÓÝ£¦æSwµEå|l >°õ¿@æ6b·Ït¿æ¬ÐuE`·0¨i(Ÿø«ùµÂy@W1v€±µ–¸­–ÛëÒ–ølš8¼Üt0§aÇEÊÖÃOPÙ¢r"o&oÿ?x˜öó!ð}_£=ݸ¦ÂHžŠóºææ8`ð‹ëpËO»Î]9“¿u¿ûóeQàak&²×P¹Ê~Öq|Y®'¸’[Cz#lÛ¨qå‰àÖÂâg¨·?@ž N02Ì$ôæ’C+ôÕaxÈKC3û(ÝÜXò:ïjúêï}?Ë_LJþu!âbÿB\Ñ\=„ûÚ ùZý3„!¸ÅÐ@@XïUìŒyÓÔáÖ µ-™WŸ¬¨}yј÷Œä=ºaœwu¡¦VfäVjîdé{ÇŸªQäß©Hþé,íÍû~T\BRsï»ÿ<#û@R…òî}¯"ÎÓ›qWf8›Þ»`‡û¨‹¼þ«HEû®ì¥â Q =ˆZ8™íç&ê~1ù­m¶“1 ~>¤† ‡ùÙ¢ÁÒ=UñH„i(jÂôG 䣀Óð:P9‚¡õž)ÛH0‘Æ5m´¼êL<î‚™ïúë;š3Ý/Î. +Þˆ5¼bdmösS*ȹ®€RDgT4µéE “áq˜üäøýRE#W +ËØÉøqÕÒ1zfäûÚ:U÷ñB8Љ†;G—-r~UìhrÄ|•ðÀÞo*·ïœ«äæ«øÿ€ÕÅ¿²ñò“TßÐ'ŠPñü"Ïjôއ#‹xàáLaçtG„sÆä'g‚“¯¡Ý-Ū ;õ)¿¨þƒD.²³lð½Æ¦|Àóêmª`¹³ìõÂåZ èª)Ùc¸–Èw• z›1ÂòUKh˜’ößþòûñû_ñGôø S¨7Kpø JTÓ:úÏuI%®.ùoŸG\ÓXІîDŸ9Hà±”¦Ò$ ®‘ÜÔ»ë ŠáŸêLi5nm  +Ìs‰"7Èq¨†P°‚KOõÕ±r^=loßFH>†‰÷Bm‰ ŒÒØb¨&ôé\8e»Í$™•WU0 +Îߟ"zN~áì_ÅÙ•¼f¶¦=P똈FM$ŠÓT¶¯±7íýÞÉŠž¼iõüc ÐÌWä«÷ñêù>¢Šµ£.¿Q´ôà tÛ@á%6F¨ór Zd£¡¶ "Ì!Z×â—ñœ¿NDÉ6Ämæë(º‰…˘9Ñy¼~O-~OgË/1™(Rf 6¢£±ïÄÝ~1¨a™Btæ*Ú®cÉaÓ¾§iO +ŽÉ%š³Qö/ëTÚqn¯‹1pt6Ç^ ]÷½°Waôl3k 9ò²SÐðºw&dÜÂñÞBu¯k^Ôsyvj»S£i£²l…k¾ã•âàrÅ2Ú¾Ëdô ÑKíÁj«:bëyÏDî .â¹âÌ ŒæH ä.À!.o§ú…¦¢½Éˆ‡›4ã^ø¦oWÒßþ½1’cIJá£6ó€ª÷‚ß1Vq|0G +4Çôu'«Ó ƒeèc¦|ï…é/÷|ÆK `ÅEÓÜ@äՠ׎fÒz¥‰XY± t*‡”þʰy¤/4A‡jòVý‘t9¢cVRG¬²3ñÈ; ‰ò5IóôH.¹ÿî¯9¥Â ] ×2ˆ_4{̦/-uc Ôšä‡ÚÆŽ7u°ÐZž€´£½ÚÓ&ì ¦’ Ò&ª w„ZÓyyö“‰#™RãVÊÅÐð^‘¨ª#÷Û~ÉK¤Et +Í“! ^•Zä(©ä‚Œó]hâóëÖ8kFÔŠ•AÝÍWíJÈë.Ïϧ´óT]x>ãõN´Dÿ%mÕ¢ây–¶€íZžÊK?€0 >æ1¥ÓJ³–^ÇÅ—àt3~Q«/.™¹ؤþÎ+öö9±{†” z1&ÉþéŒæ¯YÓ V`Š;$×´ÝÒÁ'& ÉŸÐ`˜(ò\±#€±EpHÐOÄY, +¼ž*[ÓHf¢ŒÅWtCÄGŽ‹®Ù(1…¥ph¢\7¢_碒¨®K¶ˆ&’Ÿ˜¥($ÒŠNMîŠnˆ\ôÀ9oÕÚ@¤ì|eB°¹=ïܯ‹Q~áÅâgÄãÄñlËã%~A>(MsÇ ûUb·ãxW•Öõ€EG\Ç3½š¤ –`‹3°A‡â¼c#!:žJZ\áÔkŸeBuã\YO3Úq€Taë%ˆýA`Û‚Á8QdyT¿c#óêÃZ)Jï0‹÷ñÀŒ| —ÏÉh™©ÏW™"©Íð)oïý£TkßÛ;;oL‘¨‰wf«R”xtÚŸTDûqU+lï(óër0Ë¿C/W’Tl”QÄ:Â8ö-¢®¿-!v.àÜò"J’ë vVceš DŽôHײE…2ËIîÔ¿ mŸÌà&¯‹Þ‘ÜšÁ=›(Ügúý"ɪIíípé x;/$gšÍGEYªMc(òDÀ e ýd¨°‚ +Áýuüì•4îï·M­d„{övè=»Man´‚@µÑ +ÒÓ<M}ðLi}Œ®Iã)ñ0¶“… tÝÜ’W÷hß—ë€$’V:yÚºÂâët!»cRÒŸ•‡&:7´GÉ* )uôîj|KVÑÙÕöfÞAšåžåXeåÙ7¡!Ëq ¥Á+¬,Ô,{1í瞨°\þ¬¬Ò?°6ÓÜϱKÌ|Š¢—§¹Â|Ù?ÜI3v”\1e>ö»Bü/Aþmô÷!¾SRî×¾EÆë)™'`ì:WéwÂ4:9̈ö kë ^I¿Q{˜ç¯º×åc_2›Êý¾t+ã¸!ÅôHâÇg.ßÕº­Ö÷Øk)Ô~Y“¹ˆâÛ q.Ö£u¬²•ÖtÍtÈæ™Õç笭EÑ*ŠÚ¡ýjº^5ïVŠa&½Ã—;¢TrNÿZ™ºŸ‚á5óQnb? #κ.(g)¡KîQ.~HQ;„Î%jLº¸¢G èÙ²¬ç‘«˜h–ÜFDºfÙ™ˆÈLìågÎûëL¨Ôïì6òÍ]§&}686]ö^?í¬Ÿv†Àz놺¿U¶.Êø’Ï~•ë; øÎ£hvƒÈ‹>V($0v?ègÇ€¨ýdºÆEƒ£Ý!M ô}®W{¤ÃLõ⪱oM\p¦êd±ñ:Ô¾Ý~™1Æï ×û•N"”#M;±ÿû‰ë_Z’GMT•fµ@LÁý&7IèÈ‘l•'Çÿ·?ž„\µ®dÖ•äÒÔzâgó^ªY›)Ûz© êo0°BªÄ>Wøn‘žÛq3CƒVáÍY9× a8"rÉS&š_'rM&ÛLìgÍAÀ’N¢àõÀ¥éÉy¢î4ÕÕ®òÒ]¯HÐÓÒF?\ÛÆ¯é¤u[ú2ÜK§j¼ßÇ;!…XAÍËÓÃmQT´ƒ¢:E6)LÚ¼÷^“k‘C¯ì·þ7Ý4|2Ús!>UĦˆ‰ØÒq—´ùXèÐ.aEA˜?CU˜:Á^fe#œUYRå—à øß¿“1'Õjó¸S¦ ¢€Re“AAº°©òMUûgÁ Þt³ëq$õUìJÙø£PMÒIWa|Æ®O¨75ömNt¬w +o 4pcdGÎ×*£…›å¡+êÉ¿ zE÷ÍWJ<Í7–†@ÎWÓ.†¦×/qCô˜†ÏÉ.7fdÇåÌ5ÜiÁ-`æÏUa†/$ÆæýGš;Hþ=Å4±³ÞJŸS¦ ·†½â¤Ssý¥ß˳w]^öA#—ç¤Û,Ö„t¦}Ç+n…E°:ðomeÚcCF‘õlê}OsW‚¡Î^Y<ð¡6EZï%õѽك-1Âf(É?ï$ê®órhòÅž28*8”¼‰-dv¯€‹oé˜\…¬ýX-·‰ÂwîØ?éÈ‹±Pæ-ìb‘÷òþ•q¥¼ m5Å+WYAîß¾oÞåq¢µ7•³‹wšƒâ'Hµ ú`ªÚ†|1ý˜=Ff¿[¼¯ + ££áã"²@ïðÌìuí^ÁD  ÕtÃÉ‰Þ Úa ì6ìfç +ëYÑÇ3þÜìÿ– /J†ÈciYš–+\;çùÙçe‰32ec’wÄ~ Y”^…*÷"Àxb³-Þø &ï¤&À˜%jDñŠþ\úWˆ +¤ût¿\ÓR¼»·£¯ù£g +ýsê>èvܵÚA—ý‘ôFÙ»V1½/û2û;ÞK…26£ÖkôΡ(F‹ó–¥ÃAqã‘™ã)ÈÎ}ÄŒaªÄ¢|g8 úŠáìzõ8©Š|o e€øbB½Óe ™HXE pð{ªÔŸ}ˆ¾•±DG~¢nÎózÐgÊ[¸s“îÄ1&/ª$ìÈ4FCïSÅÑçÙÐ5Œ¿úÝ%ø0BÂÈdGæÓ;ÛU8‹ÀÐ-4Œ¡Ö +A_\gÂþóÑELpîö|& åÊÝ‹ã}Ç»#¯þ3 Ò³t’E€„!É€õƒ||“ZIôr3É7¡³z…¹ÜÂmvi¬•¢îÙ#/’ìLvue¦z#d=¡îç8ÓÍ"&fpC0a•j6ÃÝCo¯z® ¸.2S*ÞiÕyØVH?T¸Š2~€Ý8u2:ä²à"ƒé:5÷?“\ÖbIcãvÞÕÀw²k ;Él²,)Xyz(ÒÝTÂÍ!N9™Påd‚ôz3©m >n£q¦i¡ Ý´šÏ;Áþâ˜%q‡òWò–¨$FëJ³U ›q(WøkOgÝÀf—. +ùíü|ïñÒ‘:ŽváŠZ‰wDò™á"kËMj˜âÑ"[=6Ýló¿¶ÚgÁÕ« 1 ¹Ûžá*T2bTGÏq]®ø tŸìõïáB³Ø??=iz»z‘YuSô¸r⥾ÄèIK@}#s‹ý…uü¡Ÿ.%ÀaÖÕ0KôÇŸ‡F«H„^’Òw%gUÝ'ov™‚÷Æ9 Á|ËÌ>GºúI6á÷Ò“¥MDO–uVõn¼Af}>33^I6ž"M0âzÒ\´.î»øéõVè[O6<¢g³]”ú»"/5@"uÄÙ<”"º%BÙ„‘hnÎÒï ïÞ­/½ÀYØôW¦Ì1Ñ1‘žëIüÅpå8–’LÛA-¢‡p7œ±IÉæç·"nÃhXSTõuH±UsEOÊOœ²@öRqé^Év/áâ*æOa‹›õ0—B“Bãù{c|±5Dø` +½œ§é{wòàÙô¨NòJ% 3TFÚâŒ^¹ôƣ릛CnÔ  +(~Lo•m¡ÆÎB›×,"{8øö[ÌÒ!³ÞŠiÍ™žÐ ¦\l¦x‡:MÚ_zȼÁ^Ó–*5\LhT]ÚÊŒ¢'KØÞÍ諺æõ Eƒä‹´àTT´¼¸F²Ü¶~½r®Å9hG•dW© v€2_îR Öðöf ¡,Õó-Z0ìÌ)5ð›ÖË×™D}î3Å’óIwq—r‹fbŸå{u@“¸BªšÇˆ<6 EÚt‚Yÿ½ž·Ð4vJòâE9²©Ûx#MW _+ÀýQb=Ն܋vú3U.Y"gÈIRýRWIɶcQFùYz Jzº\Ìà +2s…° +Þj‹•¡X@0ŒÀl%ŽZûÞO|ï‡þ2ãfúž€ኜ =ßY×qDD£—øŸnE'˜ÇU°& A}ÿ»ªa¥žHÞ;øzŠ¡-^üéD¬ÉdbhøÑ3Û·üÒÝ÷z‘d\¼ª`VÜGNü [שTñÓ9Mè·Œî9Ôn²ÂHZá0ò»öƒâ¦Ç +q)þÜC¨žûû¯Âß­'7NC3ލt™(·'µÛÛ,dþKÑŽ;dܨd9‚wý…_S6y ØKËu¯É¶‹ö9®C³Ï½Õ˜ Ö$@ò·§e+P˯¿ˆÀûkâýþÕ?j?ÿÏ<Ð_ðuÏÿüàã._o¿Pñ®I¦FN Ôb¯ò»f-C{.H4 E<‹’Žçj|ǦŒ bryüŽ}¨¤øHûmú\µàîq‹º@2&u|ìó‘%Á\Hi¯«xØöEáFލêÊή𥂱£º­äÁhæ6ꌦ;)éò8]5Sþ'j*íŠÊïL3ò.;Žqä™ 7–Ÿñu&' ˜ ŒUzºKàþzŒ/ X ó`WÀb6œÍã¤!é»ÍH"ô·iq>MEWæŒ éeG·*l3|[Ó2ºTß®‚ÁàfXþ²þ¶¹îWFûI±(|Ã/0 +šp Ä_$…‘hà;ûî-…ÄHCÊ•@˜“Ø"=çL´|MÚJÀZ©Mú§ŠåyB©…´&¼ó rßòì,‹³øxì|½v°pxÒ?É býepÑ5zt4Ïú™¬¬Dµ1aoè¸kœÂâv}¹ ¢, ŽUß?årÍ @†÷ÉÌ"ö ^ØE[`䫎\%´±ð=|7]fzLweÚ +>ëš6(˜É–žH,ìàAÕ2¬v¯ÁVioŠCHž6—°Mïϳ…–¤œÁ{ ßc£ëÍÔ*K%‰¨ x'Ÿ¬à¹Z¥ šzHüw63BnOçöLñ†2æTF“a|}oô­r1Ö÷¯´»M†t`á–íÛ„´$épè‰w®ˆžjñù‚€Ä-Ðé)ÈnÕ™¿žtÀ¯nLj °&7qAQf¢Þ™ˆ †'Ü_ߟV¯¹°,|»¸"¦âûw[¡BÂ)Ú‰Ëùê«hÊ.‰ŸkaGø³u:r‡Â2åžrÈœ”’G¨ýULø'3°2á,úË?4/°Áf;…cÛ@¬¦ ÖÐLhV::/ž(EFJ”ëYt £üëxó„Û—´\ràÑ3Ï €`½¦€ «€…JÒiÞš—Š^­b–äk‘ëêÎ#¬$ ›tÃ5o1qGZqËQòË{÷3M„~&ï‹c½GP5;J®¶QGþ\I'ÔÊ?Y|+j&Û#ðHp>Z<¡õЉYÕ‹kz¢Á&A {ÒæÈS_ç ŠDór9ÚˆóOÐ\(ÁœÑ|'8¹É £Ít¦·Ð.‚i¢ï"îÈf<4CÃêåŽ +¹Vû8¡ƒwÙ(¨áißÒ®ÔÀ»b„ZÖHÌ ¾ÈÖÜdJ'œg† qjŠ´ë-Bwgésv¾.f·r±2@»]ä9¥>£x¨A1íêöB€[ÚUŒ‘q'j•F6Í@»Ï:Ag7ÇBBH=Ðb…[áèθàVÍt6¾#rºÁ/¥øîiæõ!,žt bº<°ðŸ>ë&êr»"3œcÚ³þôÑqÝ/Ÿ€öuP_)ävº¹Mi€é:y¢ßCæ¬^fSçgu/RÕ>"Òb:kÚa_‡A;JUtgȾÁ éUF/c?Ø´¡)p±™a&&/MË3M„ƒAòxmÝô­bSæ:q”(=nñ‡sËœ)Š<¼ô´w‰à#¢}usÏj"&Ü_]efº¯‚ó+¬H¡7ìq†ê; hãh†E§’»§h¾ƒ&Îóes5³*1¶BÈ";$qX×4u”Ù‘þ$ìn×›tNhÙêñx0ljªéAÀ§úÚSí¸:ÖkÕ”•ESÎ!Šé(ÚŠÁ‡¸+Óª±_ýð¹ˆxû§`\Þ‰ÎGTñô趉!ÃÂOñ8L]áËÀyšâŠÙ¼3p®r~Fü©"ªÏìUs¨Ëôyœ‚`ÐÑï|ÒÅ|@kcpõ@%ØŸ‡ã :ÁG ng ÷ ¶—^ó3 a®@øfa^¦DÊ ïÚL£,è—ÊÆ÷D+º†â¯'Q÷Õ¿ vE#2LÛw›¡ï©ŠÉ¾uFäª.P4WÄÜãBö_úi-zÈ#äuÔ™žÁaƒeSiâWàh§‰o¼)è b=Ï­žÖ‹ê0“ >¡˜eÈU“Ã}éªÙÉ{ø|DãôtzWƒïQðçÄÿtú¹öÓþ¸–g…»ðIËK»ų}þ{䲺n\Ÿëüá¯Á<غ5{;0tøõñx[úÈ r¿Dþ>£¨©ƒhÒ„Toå™Ñ)9ò\Ñv•½Ó^ „óU"\×üòÿ=Ã:C3ÐyFîuéz¶`‰’¡R÷ÇÓ€þJzfl?Ѳ–Aߪˆ:årúâ²p¿W€µ +‹gÚUÊÏÿ¹}gmîGjêBZ€û­ä®:`­tìÙ‰jéQÚÆÙuF¦Ê¨àîmËŽ†Ž¨í²ðÊê*ûi·;\¯¼,¶àZåYs˜òlƒEí?¬*iíëZŠ«ø¿>úÊ᥋ +ã=ü¼#ÈÞ¸ÔLlŸxÌLGI«æe»–t{ñš6»¶Î·"Ňñ~kD£!6ÄÆ¡DvÆ—!å½çCxA­r3ï @ÿ ý5Ë#*U|v6r:ìGyí²9Pü{Zº·Í‚i›ºÏW£A绌k{Œk]Q`qì fÅéW×Ñá¥é]bˆ]½R/ü€oóXêáÈ‹vw:˜Øå)lWzG\Qƒ¹“ +s&a5÷¼GE¼íUo¦öó³¨ôN”¨Ðu¼žyòë×ÀöSñÀG@›™BÊhίÖßéÿ±âÿqÕÐG£Kot7QØ ¥3™}¦M`Æjf÷ñ>YKûœ}ùÖOQ °%ätD­ø®Tg‘@x‘à FŒ}‡¯N(Rûмni³ðwýŸúTœ çhãÌ£ÞÛ#4è“LŦŸÎ†=Sã>‡ñÿ5fwLÛ/k7£bՂΧ:C-dä±Ë••J2"D(2qõY¾¦Æ¶ž)ðó M×_}-/nÐJEsŽB„ê«F°'ôûxª.5F€<æ ûþ³ˆœ`Åyl~™ÃµîŠ’þ„Øø_”š‘Ü{ +uþŒ8ƒÈ$óÊ{}FêE”è“Ò¬l¶[»R”ý(ëÛ>wN¦ÎÆÒýùŒðDpe ¼‚‰T§úã8£—$yÚTË<¿ùeÇÿyÄËÛ…B…NÎô-êtDÈOÚoR.³\Ò€³»Y-4z¤D»ô¦£t¡Ü·ˆ÷ ‘ªfÏóÃqÖÛSÎNv µÊ@ŽŸ",¢Zljî³ýj¬>¡m¢xïŠM±µ ‰ûm›Ïj›§´Q²¬÷Í$ÇS„ºµ"ríF@HXçêåöqœW»"í9fe\úNì­«G¾#8”ýRM]ªZÜ=:Þó—‹5S/JRM·¼Q¯Nàù»Àž¢¦ŽôeÿÄÙ3Ž3ŽÇ×FsÄn |…‹'6¨©G˜ãˆŒCtc(2¥ ¹è“_`Z>DãæL± »X_¥Åicó½§@Èj.1{Å4Ç;D½oÀ­ŠA‡‚ªÏ-´Ëˆ³"îó+Q§: lÕG”¢ I/¹R—Ýêµ½ž¦-hT¤^øýgÔHÁ}žé› rAü+M"ÌbQéå— Î/yÜ2‘¹T\ÝÙÙ—¼æÌºÎ‡:¿Ž#£’5ðñ%§;4fCY£t4ØjˆxUU/œ0_Í£@yÉ”«Š-öÆK¯þÎ|óWpU9“}]dÓo¯þ†7å®[";1hož!-“ŠfíŒÁäåðö?êo´– +¶Œ6CºØxfPÙî"æ „­õV?Q*‚Î(‚¶jßl`­_?ÙñœCˆåO&<>¾\Gªk%Å ² Ë|E˜HÁN„bl<ÎÝ ÔYËàèF„1½Ø·Œ®ßkÖ¿ð׸ÿ¡C¡Édµ=‹/É2^Á¨?ñ§Üù øÓ;Å»lí)\?æ¹_Z.ŒŽ™r–å,«ägÄ{ä÷(6”¸¤LÐQñÛ}y¥27ΖÇ-޾íÂè1©‰ñ~Æ@Ñü^ÃŒŒÐ0g+drKþ¤‡ó’èуD?t!Þ?Ö“ùúûçcJÇRÔ1挒N¼îý.÷ôÞx÷¡°Â:£5©l¼"’d}DüCu’\½?þ¼_i« ñð:o탚/^È]?`GŒS É)]5^_%£zEÕÏ ‘yGu ·k†{ëS«"ô +9ŠoÐuô©r¹N}úvßÈCwšéñ´È9Áq–¬¡yhsK[’œùwfø× Ÿ%BWa¼6æ/ã&±› ­™²Õ|^ÏÅæ…¸x‚ý`*¥°ßH 68qÓ÷CkD¼­ÑÅÛú~ÿ +~3¥|‹"½þ&\ª¼=æ´èâ’ͪk½ŸSÑü«æ{°¦¯Q‚o¶P‘ú+ஃ.¾Ð0V¼p65;jê +¢A±SÇ ©ý2¹a ³n¨/ùוù@LìŠÃ'¢SZŒü¡¬‰£Z+Î`®(cW–(»ÕÛÉ½ÎØt÷¸úŒ%ä©…* Îx:ÒÃvL’lC`&^ÙΫG룮ïpÜ9%ÁSbêp¦Ð°h¾JõÓþ¸í¤ç§ˆýE˜#¸º¾F5GlŒR‰®Ð襶â¾Er½3öˆ@WpìÛg¨ü¦ªØâ.¡¤ ?éR^ù4|rwºjH¢Çd¦—ñ=S1Ò¤WŠ1ÜnE1aS"+£Í@e°éþÞÇkÖÑ[&‰íŠ,·Qˆ“5ï-Î;P…6e‰`W ÏôË^ìm9‚ÈHûxuš£ÄÿùhÜÐ@3ç;Ò1nÈ}ß9zI{#}áC×.eïˆ| ˜õõªàŸacc†|ô(®1yA딯íoÞ‡ó–¬rßf<ÍQô1^‘}jù÷EÁÚQ +«À 3Ë\…£;,Š á:/•$ð#•W¨aÌ_|oÛaÇ¥i7_ÉŽP}è=‘gT-gZ²U+Þœ‰&7g¢ˆUˆ -+„Øf};\˜Ð\gΜ­ºUíëîHŽÙ—øR_‡%p/½C+Mž?®mÛ뀔‡Y¦m´4€ "dtæOK7Üx®¾Æ·ÇÔj¿ÙDÝnåÖz=4õõT‹’¼M}ëùþ»Gý¨¾Iƒšz}ý ‚D²´8¸‹ì ì Q7Eî¿Gà¤ÒìÃq_‚Â÷¨y¥…é4é7pµØN«ÉØJØg_Û´ð‚*ë’°·?xmåu<å‘áÛ+uóñçZoFvÎÔÉ'£·?|p§+Õ©¯?Íeí½D"Ô*K?z„AU±¥ï4ø´ŸïˆyÇ[ˆ¶õ‹\Ne'Q+bš QìtKA½(úºd¢gÙ/–F·^¼‚ÓÖû‹ãxµÔö/zÙ{-Æ–ˆ«¯ãí‡(/¼Ó-»™{n‘ êcÜQ EÏ`HequG‡­”ý€ÿ:þ]ý›NzÙböüy4ö#`#4¯ |–Š»Î º\*ãDlãëÅp¼ˆìðéŽ:Ucà¡q]9ÉîV-ÿ>!þq ]óFûPZ­»©kÄ*l‹`ÊMt´éöÓ¢.° ¥ŒÏˆì"W‰6E©à‡ã êCßQº¥¨ä9—üø€¦$É~Ü÷sóÊ |‹úÏfÐH†Ï{‹ó/ :EØUÎ( +èìŠÅá{Ä×"÷ÆÊíúá80Y™›Ê9maÐ *D>rêú9tnÈÕž§W{ß³:ÂP+Ò啌_H517jhyÜy‰ÜÐgÉqÍR–‚#Ft”IÚ×Ò42…i5+#JN›¼wްÝÎB!}oo GËwÑ¡‰ð \ÕÉÇ´Ûÿzƒ=u&Æi{ó†W7c÷sú<ºùfx~~ ‚¡^ð7žžï.1“&õ´š_šóÌ:]jšßñ¶˜D 4šî}$7€ÕwFä™*5G[þ|‘—YÅt²§€ÑÀý)² ±íP_?<íxbÏ­A[ÃL¢¯ZÛÈm¬à;W¤¾°Ú"øpïeM<ÄGh+EGUú‘þyÐ,GðÚÚÕXüpÔûû­–‚ý`Ïû3"—k^vÑ¿~:N/ò!M}zR$ÍÊ(²éBo<Æus!ú¾2#}ꃆ^Q´6‰b¾þ·õ}ž¬þ汃QßN8{=7ï4y³Áô²ÍÏ\8–´÷‡ÖÀzFu#dµÄκ¯ߟԤX°º*R¡¹Xä¶b›Ó®_UQ8èð/!C¨VôT^Xºð Å“©ÁuV„úU೯Ͻ5™é÷¨½Téµ0(1”„lñÏ;ËDÔ‰‰ÐPæó´=œô~’ߟeU0cU°^¹ÐÒ¾Ú?§é¶s¶`˘¥©¤†9£F¶]½œ˜úŠÒãˆ@?‚ºÃ°ª*Я쭌‹/€‡¹_‡ˆ´bÄgwÿ¦ûâ„%MWtͰÔz?C k$ã›ü¢ÈÑ‘@>uô…~ Lq` ê¤íw¤ ZîÒŽv!°Üžú>³ «y÷öñ"š䘴…ïŽC«[¾4 ±ÂãôÜú¯Ðt†ýÊqßÙãÝž¯ Ñdv@5V$òÊ,î=+¸š˜Ω9Æ0ýZ²èôý^à9E¾C¨œX=òýn‰í˜ˆ!øq¾6bKÙêßþ2ìî¯ ò“tÿïÿ™;°ªŸ¤Ôû_þÃþ/×oÿâ_þöoÿÍ?~²ÿŸµ·Û•&¹Î3¯`îaÊsð9þ#òÐn†6ædÆG ’¦(È´ßýÄó¬ˆÚÝ»6Ù @¤øí\•™•±b­÷'üûÿø‡?üÏ¿ùûßþþüÇýçŸÿöýü_þþŸþùçŸþð/ÿçç?üŸÿÓ?üÓÿó¿þáÿ˯.ú¼Îü¼ÿÿÊïÁ´orìÿ¬¸Ùot&€—þMÂU±bB¨í÷q~ÁûAuÑÔÒ¯7çÂ2 `ùO¾ÇþóÉá +£vÕ>ÖŠ!‰D [âÁg¡¬é3X¹c +DÝR cÊ«â×{¶â@{‚÷åp™üD;]ŒÈz¸€µºý'µ¦KµñÏ•ÕxòT<¨Ý`)ö—3ÎÊÀ’oŒO +㊿£×¤ÈWSÝîQ íG¾Ê=ÁZšöÌDðr¬Ó§¢‘Тƒ'飰<îä†úWh> +³ý:-`(ÇìTÈ…Z.ˆ­ •\V¹vb•?Tß+åäÿ˦ˣˆEƒ(í¤ÊÎ"î†c²¼wÔDÄ:ñ©!‚3&‰tzÓÂä˜.…¦ËÅÁnÆéÂqN õˆp̘8º‰Sª-qsírÖÙW„b5ˆ¼Dó`r:”@j:ña¯Æ&4þ³a Ñó'Õ÷U=š¨û¬º?ŸJ|pãwLlQ”eÇ–\åؼg£C]vEäh:ôþ~ °HûSù›ƒXoê·—Ë5ô[jT…mÉ ü§®ÕjݯÈf½ÙjwíÜOÕ£Lꛥ ×'tT•“6vPì®éÛzdS°¾ñö`­§*ÙÍø;]XÙc¼É8G’O,È!¡±þžöZYú‚G¥‰»R—îþ½GJžYJnYè£]‚rS¦&¤º±á÷«àBÖ¯á#CSªÏÛß}‡¦þv, +¶ªN©•§š¾)ù#§;]x)¿ì~½Óz4EñxeÙ9¶uæ$aôte÷‹NÖ¾"³BøagV‹áK/Zß3gÐ èØ…u?Ï8ú¦=“u~à–ò†1Њ>^ñãpŒ¡MyêÃt{, gèçy°–÷„k¡f´ñë‘7üD?¨±vv›þfó;M…6±|ÊÐïçl×Ê7‡Æ7¡ÇÏ·— ô¹…¹ ìÂX‹0 Ïgá©ÅµH>µš³ÔçXVW´ïÈ›™³z—!jµßÆÃ¢°SmŒN\N3†PHO£³ZrõúNB6ž{ÎñjÿŒªœãòŽºP ?Çs KÈÛFÀÛÛá=ãǽ”øÞ^C˜XÀzöf;‚Þž*4GÕ2< +ƒ ¤Ö‘RÉ'WÂm¯%% FÊ÷ï¨Åˆ&b§Š\©7iŽDÐ=%ØT¤‰(퉈½ -¥Nu\ ^*Oq‡¢O^08†Y¾  Á¾#”;ÆMÉaðin³:ò±ô¿ö’ꦑr9mUdÎÛÆ†!dàÄX©`ü°Õ‚r¦Ä~û„6¨Ç!uOìÔõ†v'aËPÏrÀßÈöó™¶9."#—ÙâCØòuhíÓ€¿m{yô8~*û8³XÕÙcU_¡@GLÁýDà+ÙžÈhÛQPmé°äk£•šfÐN#Å—¸N€|̈s!KØ(»#l"N7!8²Ÿ0eµ`$†¶¯6û7þwà§ûÆT…½;¶S’‘ÚRã‘Ê8¿?QO°Aú/¹è·QØày߸U(ûÕ¯8Ø~–ÕÈÊ\2¼ƒÚé>œÅ—( º`u5GöëJtïõl6ϳ?JyÁn< +íaFݽÊ(÷Jh¯D·„+­ÓüÉÀÛ(94²Šs<² aFh‰- +§:áÀ[ÜyM†ztp§¡¥÷o"\ÅÀ@ª{òåà@O_}…’±ÅÜýÐį́aZÿÝ?íõ;¢3K“ƒƒƒžFWKˆ¹qçï.J,òûwˆÇ3ø;ÍZþÞ–îÕâ×ÎAܯ)û¬z€Övyûáï0ü5Þ°+Ò‹° …ÄqÚëJ¥†€„/N†¼çØ!.yêðtÛª“u¦OÍtÎåcâ)‘Â@4<ŽúýÈ!,ðÂw8§»ËAåRÇ B¯9|¯ŠÕfêà§Ú<0Ókq0œÐP²Ú©Ò ¾ŠDáWÆŠ¶<[U\KV´¯ Îâ½u:UÉ7šaǧŽ7<÷0oš§Mˆ¯Øžª_d«" ^câðt¯ƒOÈ”6»> …7'Eœ(ݧ¦ãÖÔåû›¾Šã‡Ê(oÙ j¼‹&j09ûçßÑ•ÔlïAù~„OCy~¿ pïhÈ(&"¹iл׆úñ…æjªé4€,ǘZ‰¶5ãóCìÁ°ß’CòÍ/¤¾Ë®vñèðË8ä×,£[¨¢³ß!Jê{—„¹EF:¶ðJ% &QEŽš8ºÂ”2‹®ªzÒc +tŒ‰M| Õ:¯TTÀ(Ýa1bÝØoãÞiì©Ä} _:Ùg¨–öÅ¡ï ×‰xÒ´ß_ŒØu«*,UP6J/ÆÛ‚…¤Â´€­¸gëy~ñî  ݈™&µ HK-"À­6â•(ôЈ1ãü´8kêÔVϳè¤ì ‘Œ9µçâ^H›ß”øâ@Åšö ×})T`múª}d} ÷”‹.Äj¹›ŽçóñÛ«õÍ„51c!Ý»½*± êqÒ&yOÁû¡H¢E°£ûò•X;Ÿ£‹×Ó¾"O›Œ­Ò„ÛoL±ÜJ\Åhù%še¢ÈÈ2!Ϭƒ¼(òŠ« A£¶¸qZ**o l˜Ȉ— ù9æ7d":KoH¶yÍ$q ·%V:+˜'i\Ⱦ«‹0Ïq%¬x˜ÝD ¼Bï¿ä`Dt”ÝÍ1yÞ(óŸ+í'±äaî/ÐF4ÓÆ‚ý d<Øî‹UÓqLÆêÇä)2«ÝÆ»h÷Â*Ôª¥Î{e<)>ï—<¹f¢û}F&:Ï ¯Iͧ¿.™Öv…BOäö«ßpâø‚¬`½LjÇS§kЙñÓF©¿ë(ýÕåøûë™›Î:J§iÓ÷nM–å2ž=…ö/DÑG—rR^=!¤Rß#V¹«I룉ß#ékœº»`¤Ó|1Ô̽«Ñãõ2Eïc:ÅâââtŽLÁf‚¶±Åü&ºÚ|ý¿>ˆúJ’ÍäÀJ‚íÏ U¡VüÕô¬€Ëóª°—ïë›§‰EEƒÁÖ²Ûì÷óL’¾¿aR¡éïdôlïÅÌçÖo÷,äÄŽ-¨B‡iŸ\RulÁÙâ¢)ææ¥¡pÞâb+í76I&¯H % ß#¢ì@¯ˆ¦òŽË©¼Gñ‹¦øÍ©šõ°s&÷Æ65•ùMÄW˜ç]¿ŽRò$|R§Rd((ÕZtN¢Nš².Õ%Ö‘¥£hb£EÇì-Ào„Öúü=«ïgÙé}Ó-­uZÚ*–ÖÉ}¼ТÑ÷ÃÙ=¼G‰—ð}‹lÛ £~Æ`ÌÇHz¥0’¦@R„ô£¹¿ÜÑ6ØæïÑ×ï›Ó,ÅãUW½G™³‚ÂÔVÌÉ×”ÐèÃófMC£˜„ˆJ#䢕_ÃUÙˆ¤ät†•ººèâ1È.ri˜2ˆhéÈÐÙEÊñ^h/Yì;ÂðÏ(QÝÍØîiJ˜‹MhôFZÚN%J\h¿œcžó•"ª!·Wj ª‰Âó¶Ä„’Y q*eƒ¾`/·ÿ³üÒ¸§)_¹ßÖu<#ßö2ߎǠ†‚öFcÛö¤”7  +(ñ\Ê1cEh+õï"R˜ ¢Xçu} ú‚ʘ>¦˜v#1±vÆ—DuþÑ`{<_Ç£ZlƒÙíò–·sàq[I³™ãcÜ\CöˆÏíÛˆ ’Vƒ8?É[ò—âžöÀzFÜíc}§ÂÕ{k uO<Ô™2ò€Åç€ÙÈ{À}CÝi¾}º«81f˜Öpé¦|ógv>EFU¢êö5*‹”г…¥qÆ{ú颢 zdKÕDdµ¾ó="žSF× 2ÃÁ÷›óŒ$Õ¹<Œ“‘õ“‘ ê±WÃn=áˆ}|)á;daTáº<(|±§²¥™Êù…B}5òÞ®ZüþyÓ95Agq±cÞÉ¿¨èǘò—Ì\q-ÛÇÙCzÜ¢UC7…o3™½gF‚ äíQü¯æb11‚ý%HæÍ:ô9±E¾Bd$ÇM e°¦$ö_D:Ñxjæ?Ä¿ûxw†>SHöÓ+bF§w «ÉCäá2ÄߣZh¾u\lGdt !Í÷gíÆ=ê8ÊÃôÓ•ÀLhvêFÓ±ƒ~éÀ¤“ŸÑ{tF[Ò¿©éÐ{vO”¡Ô;¶Çz>È­„´ç“V1|¯¯ 8ÿÕ_ç©1!R{ÎÓ§fáÖ‚š" ‚±eÝ…§±ï.…”:vÄK„Ið¯û‘ž«üüá¸ÌÆqÅ$Ì´Èæ ÀE¬*Å…²°õù&Hu†½ÜaOWzÊa ×ÅÍÅ& ÏOËædi@²ðhn½Îß_ãwôà“»…вŸ8ª™Ü”ênÉ´Zžnž…®–_=Ê„{*Û yd‘Ä ]qO~zKhŸÒšÐA—($@ó2¯Fõ4ð(À Üãþ÷´Mò5âw·ŸU”Z¶­’·óTLvvÊ kF@±ä?!pÙ¾‹øný{ Rf€% ÝW†GÙèÐçfznóZâ³ÄtÜ´+ûf;ZÚªñœÑû¢»å³£5eî½ pÙûGÆ kÔ> ½O蛉†„$É-ý á´VpŒ•M§p|ðš õô=´ ¸È>À‚eÛˆxøe¥p^lejE5pŠþù)˜ŸÕrÛnAWs® d$;i}PÓ>u"þæ{çßTd€R< ¶òUï¼°ÇvP˜Ê¦€÷t5$ JØ¢·ìSàS:{{ ¸oE)ÀÓM"…+…"ož®qír 2ïpÿÝY.¤Ñ¨("Õ¹øwÕ®M¿Çx¼ë9=Wxeºôa§³G(.Ü~á +‡ÇB>kÑ! aí%´ÕÙ™Ëgµy¯õ ÅÒ}™+U*ÿ>tìÑ…‹C9àJmxêÓ¸®$áp7È5å+õ¯ÿœâÏ!‚ý È=™mW:,C¤[äÂÖÕhÐêÀ#Ù½(ŸýpÙ>¨ß˜¾e#‘íIµêë‰~kMEŒ1à€,.¢÷ž­ +bN`H¸Q†L%$¤˜X\>¬@"Km:L¤×ÁIá ƒÃ„ðá‡^±=#ªé8,ÑhÉTPR  +úå;½YÉ¢€J£-Z„‡OGßÓb0šØ=$À˜– eƒ€(9M0=òCí 7&l0Ê*#B@"µ'›qSb,c÷¬B”½¢B*ÃiŠm‰ÚÕJÚ%OIâ ËfVÔy¿8IvØWŸpÛëJ¦Ìe¼Dâ~²×øžæ¬ž­¥€Oö$©˜®îy‚Ϙ3XþÁJoè¯ðÌù +òqZʤG)§°·ƒNAG²H“#,ŠšçJvL:öî³h¸`ˆD£y«‚ØU§*2f‹Ö—{ÕÉü~Ü-ÂñõÜ ­÷Bcêl±²½ªNЇÀƒ¦#åñÄ…&kݾe™'`ÿÞ#eŠ_šêÊ}bVE™ßŸÀjzóa¶ŠäÌC<£Ó-[7qô¹âh;£›§(ø:ØŸ0ލ˜ZåøE‘æà:ÍþcÇkö#¶‚ôÍè«Âý~ð~)~RPLeoçÁ®ÛR%šä%¿“0ß#ÆAWÆûA׿GaÉ&Þnãd]œºYö)N^VˆgöÁ¬RƒR¨R÷_"â·…ˆ‰ÓÅ£ö7çqˆðž1­ÖpÊÀ:Nò÷—¶†qò%²¾GÑ‚£X^Åìû-‘Óâ±fÃfŽR¶01:Œ‹„fíÏY3S·žŸ¿É¢ÿ°‚w äzÑÈ`'nÔjÀ‡ í@‹O‡ôà¢*O™ãÑî8׳ÆúÒe°£˜jãn\xhà“§T,~pµˆAJ·œû-‚LʈBÒõПoK"c¿¬&¢,sÑ–£Q”wXÚˆ›áEjSBÚQCj°yž‘òúf‰°qÌÝÊ{Dü6_3ž·óÀ,‘¶øÕ¢ç8ÂZi±|‹p´cŸýzÓ¿F­™{Ü¥ÞÏ Ï¸áçÈDH¨F®—‚:m$P@´Æd*} øÝ0Ù¥Àe”©ÿý4 ]X„AºèŸ€˜ŸüÓýG éü¡u€5¥®DßYõB Ä Å˜˜wPå‚\fÃ"çÊB²¬÷ŠUâ{€êõ¨?· œ@XZ”ÛH'EÉCG'¯³ØóÃa>iô—Š<ÍýÁ€zZyjF© oPÖâ‹%hÿy…è¯O|']ªP‡D`kcD¨V$þ>¯«+í'd~Ÿ©K6sòãy:xj"„6¦XÙáöÃ+±)…À*Gˆ%¿¤ÑÜ<¯ +éü~R£‡»ì \%ÝÔ(ƒ O<À cêZèUQV°Œ 6•û•Þ¢@ùª™e"´œz¥jè«à{ +I¶ý¦ÉBÍY5Æ÷¿;YV¡FÀV‚²ø[Ôƒ£§R^í¨ž±•Ýsñë€6è·%þ”ÞȬ dHê€yf•÷õƒ fòN2~È_^SFƒ8ê­¿ŸÝ‚~ +lRPG`‹&@¨ËÄHe‡×âá]7[‚¨éDC<¤xDЇm*grV‰²‰œ£ñÆ9ä’î ªˆÈý>k¢˜Šçi;)é#¥àsýüÜ·+&]OWôgZÁÂL“‰OΟ‰V&§hešÏœ?Sמñ#­¶sµ=¿G ËZ?Ñ5ã›Ïto&&ùÜ[8e #¿Ýuãk”‚‘ :Šl¤ÎOTŠ03zÖ.]!\Ú÷Ó|ì¯÷Ž(qNóýà‚ö¶Â>Éh:e(rVÀI÷ä^ÎæO“ÀþÏ‹~t‹eÒ;øð…ùá×cAx&XçЂ› /à1\aJÖ@{'•Ø\ô‚{f`&Ûýëßݦ@}=ÖéTçêPΕ„eÍÏ¿€Ç–uŽ3q¿‚ˆ‡"ž’ˆÎv(@/óœ¼Õf;# ä·fÉB +þ&@ÅÖâר“á<ºµò#Ø\û÷¬þK»ü…GîÙ¦?’Æ?$ù!Æex 4å™}R<­K$wÓ“ã­Í ú,3~Tü†”UÊ|\/B}a½Z~qñ‘závñ7~Áý7Q«¡J¯³è¹$tì»?»ýFHfÄ—ƒØ†´Pº[£äøÎf޽/7Ou§Œ$ûލ¦·ƒ—Ú tL™vù2­ ý*Pp)@UAÉÔ@åÏ5 &Zìþu°§ËÒÕl}¬Ðð7U@– 6Ûç« ö¦Ȧ¦>›†ÞÓøæ¢úø5 +;bÑÒèŒgó”f:R’ ¦€¼CI&¢°Èa£.Ò0Gdt€ÀÎ"Ä„LDUßWTŠ¢{Œå£Ó/ü¹îw¶߃ + W>î(ñ|§H +jð6ûMa°4ÁÓí0¥àØOO1 f0}ÀVOm¡ìô½w•ïôßO’œœ*1M\™¬ cZo8þQFß^Œ÷F EZô˜âšH&ÒF\¶öåÆ|ˆzxŠ­8@jqoçщ˜?swŒýÚî·t¿þ¨6LZÍ—eûÔB¹'K–Ê«Mai°l3@‹‡Ð0î6uÖß·J›ãX ãXC`ÞÂT>²/ˆ‰êÓú°yDËՠo]Q/*´ª~¾u^)ßi‡–á/É…9ôÑÆ{$¸®Ò=íÚlà¿?QÂ:äÔ£ÐnR¶ž¨oS&éq¯-£ÙãÅ«¢äÊÞ +Rü*G>;‰›ÉbÚ#6qѰ‡90佯EgÅ5-¬YìÈtG íéo…ôâMv”]°-ŠíÍt°pF¹ué)Dgž³×ÞÃ$¼±íÉ ¶FOÆb*Û(~ ¶QÈÃFƒd1*UôçxÁ¹ÑJŸW‚§AT-G0MhfSæ šTT Ú1ü3iª ìCQ!¾‰²å}P…8ç§vòHe^ Û¥™Î·[½'Âv >º’b(}4aAH‹ìüI.ËYΪ;†˜ö‹¢'8žX:$ #ˆ1.Þ® 6s¥œ§B‚=§F;¹ÏcŸV)2“wm…è}?yþeÉóŸÀôkTA ÔPa£!(c~,ázà%ÁÂj 6àšc„ôòˆU©òù£P QV¼M  +XMXÙ×°\˜¶ËVMqð?çÍ7Û1 +iÙâêa£#%îϪ†tM½"¦ê¾Ï8ˆO¡WtW k3¢\é&1B*qtR9O¶­%æ‡->í²'e÷ #=6ÂW‘•Ò8b%2æ 9Ým¤òl\dºèÞÄ g:|4Š|aÅ6B~ch_€ßp±ˆ¬VâÂ?=-¢‹\ÙjT=•Í›4± +Iði­ŠÓREÂF¦¤ >(!†Ê°Ž"û¯óæQ€í%^ /1 YéZ îTŠ_ AúétöC &åë÷«Ê ­•~Z_}øÊx߇öwWë`©¡¸BZÛÏx¦”/ÑŸ~˜ñ]îŽt §GÀÈŪ¯ èqJf–TÐ^ÁøeñN5®Ä.N(@V +t…xw’À0/X2Î:Ãȃ•0¾^Wzbx± ›>‡˜¾©¤"ÕR…%u‘k|%ZˆIÛÅ'òª@ÔR°ë Z Ÿ‹²¥#˜hÏÄk +[¸èȰ!dÑörvû{Žh;Õì’•(%mÐ,O“±E-䪚X­(|ã#  ÕñŠ‚EóJô¢¹’áŠ$BØõÎtŒ‚Y€`Ñ߆m8Û'L8”‘nc]'=ÈêbfÁH@˜]M-oÖ ;RÀÖéùš{*< ÿÂ|fÓ‡žµ:$¾*À°8 îB‰Ç6|¦²ÓUÒZZ÷)m…™.eo{±4Ÿ,á%Ì̪Q: Ì_-°Éw¥b!g&^D„&•=½êÞ¤¹iÜ?ú­GؽŒÚî½¼rºý0¶pn…±Õ °v¼¯žÖ¥tIG‡¡Õâ6£@•[ŽÐðr¨fï +½.Ieð‡&/MÇIʉá£(ºNì¹XE$A™|”tb{ÀY &4G +ú9VKÀj°Z²Ö¦Z»ùi>äVG”,Iš‘䍿 ç`j×3 ò›0·Œ M¿“ø¸>š•(]h ’™>Vì8þ|vÓºoe12LÏ=ÉþE>ÃĽ ð ðž74Û×IüÊš:Mî--x^6sä&Ïá‚??“+ƒF(\}fÒ±£t|„ùòAÉqP8¥.¤¸=H¡À +k-O›P«D„éfæ~sD¨Øº³ÝÒ¨ÇoÐss}]éYGŸF+uXÎó\€Oy‚Vפ¯Åy%LꚣG^.®ºÑ‘–2¥qF£uÔ‚˜q€O-àuh-œ{¨)(8…ŠëéîÓú„ĸg›vL$dì ÆB ;vj#Z¹ìP”®q€!j @ I±”Q~€ðÌZVåÉEŸ ÊY&·¹ø•,™d +ñ޲lË(_ ƒì¬ž(è¾ç æTÍxqÙb. bO DP % ˜ Z¥Ý$æB5ï\Po‹¥P4 çg…Ä–7 /6>š•RÀs!šwä®ëˆ«©4Vö’z°Nlr;èšîc,“ª”Ôkx¸Ø)€­+¶´j Å Ìn)þÿö{òÓ_ñÝ ÜkìµqdP7”eæ÷qp ”¬¨¨¾…Š×N GšRñ)°š…ÎÆÞ‘È)Eg³*iŠYC»ä<+:Ô»èð^ü”' FÉ0éFIE +µ<þÎh .°Œ’“»Úu O@06á¸Úÿ¦O¬¤£¾¯§ëΦêÑiY® ¡H2m„"‹šUÓgß#ýË aŠ„0ŒÐýfxR#{ÁAÊ_PGRòïÇêR¾Þ°“6dßsZ¥é–ýø×ÙŠ¢q9tÈöÁ„V6Áº“j}‘Ãúcy3K7åÒ`Å˰Lhœ“àøœ°Q†Öf‘W+Þv™¼ …4i:ž[YDf¤Ë)èµ…Û=@Fúg=Cž€D9ƒ•eÞÙ“Z‚Š¥ŸGl"{ú/#v{žJGÁzí'3§ôè-ì±Ò5UhÁ`Ç1ªÂ¼ŒéÞªö‰N8µÍçvÇ2¤ÇI÷a˜6Ðç ³žâ`&` ÐêäjSAp˜§Á€X +tÞØÒ1 d”¯ïWB0«‹J©.ü hðˆc&È\ÎÂÏ7„Æe„¤XÐç§BÅ(Û“Ïž6Zì0—Po‡7ýÀÞæUñGáþôV¡±^=ú©®ç<{PÞ¾aê7Fp_Èì`ª5ªÛëBzïÎÖNn™.Ø.Š]%‚Rí|%»Þ@ÊÞ€Þ>|UVÕŒ[A»çÇ…ór¤—jèàÙÐÆ'’_q"D+)\‰ôàÂ4•¼5júÔ¬PÓÎè„Þdÿt„Î)^U‹bç¦+vºÑBåUüŸGý´ön‚Äis +IaoðøØo3f•eÀ·T=uvä:žï{žÓ)éZ/ã@tÚˆãÇñ?Ía F1j¿æ¼{Ú3¦?‰„]@¬ôBAA@!à0¥“Êé †þSM9µð}égœy¾Öð;m—L‰b§X’ô&ö«óíÕ{Q +ˆ’0º1´•YGÛ²X­i±Xä¯Hr,-ÁQ=±Y«°×C„­…0#u“V„ ûkØøõû¸ã+&›Ó$0‚ó9õ' ã;oA‡Þ™Îg/y<áFQ‚Ô\ä9ño˜‰”ifö@nG²L•cÍ“]b]œ%:‹hÕQúØû{èþŒÁÕ½·?¹Þþ5ndÉŸ…2ë½lɘéYÔñ°ï5*C<åþæ{B7=MÈP£±ç Ô³4P‡{=EÞƒšðŽ9ˆ"lTr(a’Q¤°æC®¤z³Ç3Ôœç€z“p·}ß©§œƒÞÃ>¼žt;K4e¼ õ@-Y—8fÛpÝÓy˜‚LÅ©Ùv%¡í>¼ý–ÍÓSËl£C‹D«ÛxOÅAey©7…Ì®1l‘±h¶Íì’·É_e_öÒÍJA;Ø/°SQ Ëûï#Í BDñUàLçÕW†½Âì’VQ⌉†õäÊNÌγÔýä@‘"»—Ý{6ØUüŠ©ü{-tõ²ûPÃì?! CŠQì/S[f?ðS¡eE…Æ-¶Â6=öàf6©ÞoØ 5mO©.°ÆÉüß{q@^4rGÄ|‰³¤+ ) †¾Yie9úž²¤§“I‡{‡kõ‰z‰R&Sª)ÁExe‡@­—(‡iW2Ž;¬<Å´Ù­-HI‡B(j»vx†.';×`G ’Š&Z/ø‹¿t½i2>€S;ýÊÃ)p°¸ÍU%NÙE×VV M™=yöû€è«Ú@Ûã>)ß±³"fKªpö¹ÿ=îm*й@ lL/õs¸á¬J™†9È^Í(4Q/Ѥ†ŠJä{D ‚&hMðìZ-¢0?Õ7¡l±ßÜ·HjŽB<À¬ÓéÚëñêMTf`öovÊe´öœêUÍaËLW¦ºØÌYMaKNý\Øu†À÷¯çà 9Ë(oǰ—°-uä  žã˜&ºjïmº¦”V,Ò™Xéï"€ù„Ž»í>x3qo¾^a@çÍ’ƒt_hV¦(TXsÇ@’ò»§%N^ùUŽº +‰3¯"‹<÷áI®¨ÏRn/Š;ßYl-r öÝæUeˆ°¾ +”}/_„ÊÆébMP% ùN×÷kxÍ*¡r«*’¶bC0 Éîro'^{ŽlÄy)©ôLÄ[F°m£rj}ÿò ‚b Q`›ÔÝÛ!#˜¯¡³ÜÙ‚q“ÿ˜ŽÔ6^åˆa(*éá}%kψ鰊ìÛ r-u‰ò¹E‘õ:«­F1­®¡wב‹3i΋Jl‘ŽUÚr{~‚A–V°à휊6òyÍÛv€j]Ã_…ZGl<» G‹—ï€PiO]bZ5€f{éΔ£’ér‚ÍgURÔ[ˆ½ì~÷~JñÕ(bUé®\ôãAì‘tÈðš»B¡ùŒè^å…µV€„ fzð§Lbq–xm{ø¡t(°5„¿%¤íßNô|ÀyΖâúën{ö„¡2¦ãÄu¶êÔùaÁ.…Ñãd2X±‡GzFØð^ó%²YP:Z£wéýÂòÈC¡4ºÿ¡ +­b +å!ñ­ ÒËYß«=šìB…]© eíTAm,Ñ8FW µ… À yus§.ò!N·Žî"‚jüø Å{Z¤øTXT ‚G¡bE À.†ÐíÇ=[;ýÿ(™²êt>Ç!.¢NÇ~eéyà´áB¶¿¯u·¦ÐaÐ’º¨Š¡-8o@°ùR +[ÃQW£28šj׫4xŒT,©kŽíJ]à&–Eƒ þµáÅn9?á÷ àèßNÍ@´ö¾¦ÔàÁx(ûûÂ¥½/¿¤-n;”O3tc¾H9_©„£,€pÕn ÈwQúZÛîç<÷U+šd@"./vÔzLDèuÕжø¼]‰5nké¹™ÔÐÓ"DˆàÁ $üsÌ àV3h!˜7”zœóó³¯L¯„ U/¸1 ›%ÊâhPîÚL¹ÂKºkσÒÝÛÇj&.ëÞFÝ×yŒDŠI&ß{1âkÎ×yÕ¾QW¤j×8‚jÜŒ †-W%`´ÛM‘'¦Šž.åT#Âbs¶~m`°9}ÀQ% ¨¤j'jl¯*žR6èØB®ú‘d‡´ÜC¹­èoÒÊþ,Y`úvZ…ujh9çàLÅT°§Vü9²rÁ•-ý ‹J!ÜŸÇU¸V¸)E»Äˆ– NÊê!&*W¾d“>@iº†l¦õ8fˆì)rRǵ[•ßÿy`,`;³ó´fQ;fö‚AËøu…ß#+Ó~¢3¤ƒž…(Wà 0*0ŠœÑòI/5|¤]oŽˆg1S8Â\$wˆÛB = +PôÝ Ù-Fž}Ë:Kvñpu”W:-¨F²Å~´¨d„å;¨¦V£àB„Ö« ¯…×ïcNr{æâÑ‘Ù'Ts‚¾"¹– ÝyÚWаιáê°GgvÝ]¡²±¿JGäê™2Žæ[qe#gOÍh]eºÇ¤ƒœˆP/‚¤Ñì‘<êqõNîVüû‹îA¯‚ÄCŒ v’n&RFM´ùp.jqÝ®÷ðþ†9$TÙ`\Õ8Å]‚³Øj¡G{€±ìS~¤ÑõóZLqp0âgNù—üFÂÎWr9FÒÏ% ’¤ ^¢Œ:wXe°ëÜË©º/©úUƒÞ³˜¾'p0ƒ’¾Ó¿ì­YúBÜ!;ÍåË4"±!*Ýê¤f9^I@͘(äO)Ž}õ•i«¥""a$¤@ÑÝx;²Ï£j=0q£êÒªïJ0Ç+ʬY}èD5`*“/Þ¾ñÊ*댎(—íÅŸºð½¥yµ¤þŒ7ætÍÝæ!dýaCÄ…DÑÉ¡×[ÖéÑÙ?ñ<ç±ôg„QøŒêk…º|¾Q 2$’Ò:W?fÈ43Á{Ô %Õ¼ûŽ¡ºIéª-`²É)–Â|³}.’aŠçÊðãZÌo\™¹[ˆ5,ëÑÇGz¿'ŒØïÎ*Ùs¯ëìàrE!§‡ê7ÕªQ脹_ÄyÈ€‘k7Á~È[Ñ á5RÑ%óŒf­c³­+h뤟 +–T!¡ÀÇ[È.Œ¡Ž¯£0*Y ®*q+LÝ'ϯÆu/*u=b„{ +ôoJSv¦ó\PÝ–cÂ*#NÓŲñN²…E‡ã €7=Y—Lå.-ñ øvxºÕ9ÑWI3ì¤2BÇa &š·Ì6v¯ù(èX©^ÊO!“Âö.»`ÎZ¬uïãâ=èy¡‘À\%A Q¡9®ÈÔ>)6¹¨dLJµkÏMòíoÕ]…ÀvÎ<°«©‘Èꛪ™{îØ«âˆš™:æP£ÝøÁn²6’Ôxú\ÍW5C¯7 ÷b14©’øž„RâÈýÁSìp‡k¼ØšÒz-©DÃ!ª8׳Ë0Õ ÙÀ‚P(êÀiD„à?4㎸ÛȽËJ¿À)™¶Ðýœ#‚¨_B‘têȈ·G¶@"Ô(ÃŽ[J#¦7 û8ìN +m°;Ùº+½ª¢ "%øH\HKˆŸºÂÐØ° –uÜ›†³-<‘B ba¶y‘¶5ÔŸ,ðÊŸ\>"‚øñÇuAogÔ°ÖG$æ$Æf_¿Y¼ö(|„ZF½þJÏQ¤Ý‹Yo³j«o²©í–MC;‹îF%™ºh ´ W…ªÉÜ rr°Ð.Ôø*ÛÓ>íV9J¸9ɰ:ë’Ž¤Þ/àL'Ö\6ϯ ˆ£A¹<¼¤–^Ré0ߌå׺•öÍ!yœè´Ú>DèömñIc_.vuÿ¶TÐ +©n¡h#>ݪa¥ª|AÙ´Ý.ÆlG¥»õ€¥”‹ÈǺZ”Ý÷µâùb^ɈÀ®ÝéVÞ<’"=.ÍݺâñÓ%’û”Aó§#›-:¶C”f >Ò¦_t…-ѧâ}LÓ~6ßÌ…q§µU. +Ó1Å¢}ÝäCÖ!*Ž1Ñql/÷DZìÙÆq”'s$(»Çõˆèí…a}OC#¢°›Ñ™XÁ8ÙÁÞf ÑæýP9t€Õ€†—Ö Ýñ¨`’«–ð5ò‰ºÈ-[ˆ> pfšž=GÉ™eÏù8[*?K®5O½€‚ui¶)“³Låp©b«mË“ºŠ&å¦ÖX%xÃIšlÎ+£ªÀy¨ƒee»v¶ôÒÝma„¼Ú“í¸Ãß±E©%6É ™PµˆY÷R²žÐÓsÇ·6‹ß«wP¨æÅ£÷&–’yìHAÅØO"˜©‡eØF—ˆâD›rÎôAPÜ_“£SŸmt{:[Vmø¢/”’}¡QI\+ÂeTÓZXÎ X¶±HÐÿ~v¾RFUêÊD+PÍåQó‚v>#\,Et@PÐ.N•ÿ'®ápʸʪôÚÍëé+)ˆ«…,‡0‡BÞ µÂ(˜„O7Ô¢½{x`1¦ƒÂ†ð +;´‹5r­Ð\¶iÈΜ¬~Öèi+†¸Ô6ÆJŸ 1ˆ„OÎ>Ù‚TŽ(®÷=«†j·oÝå…­ª9{+õ'‘GMxÓÿý'ý:ÿÂý†afüß7™ÂU¨ @™©¼‹âÔYŠñNÏǬÊ “ÎŽZT°ß¢|J¢Î©©[£Ä~paçñE1'¶?öîþM$¹÷E7G–6κþ²L÷ê^ÁwÛ\¨Z> ‰Ïf•tÏ‚b¦ëAZï| ½¨çËyå1 ¬F•É%%ž§6±4n–øŒRŠÝ-µ§G;cÁ¯·‰š™FÚëBvyµÄs,ƒÚµIQÍ™¡n]ŽÂ£Øtd«¹7"FìR‡4 À½áÖq]B$ï9¥ŒTĉ˜-º»h6p¹£ÜУcÛ¨F’ãyɤ%¶ˆàß½l;muÀ×-Œ%jä@àÆ»7‡Ü…"J 6å¾êìÉ4$NçB¬û<3ª'¡Ê:Ž›L§<âß϶Wzý0oa6>æŒgÒc³òÇâzÌÌéȬ×™=gÚêÚŒŽ ¼ÉžÌ¸³‡6thÂϘ|æ9d”ëb;’pœP|žÙj¼.üôLõ=.ßdB„??ne?(>à˜Ô ZÜJ,“-°æa¸OÅÏ^ëSZƆی¥³ö°Êÿ/ÏY_èýó£¡?¬¬jŽEUwœÝ÷¯"¼@3GZrç㛨bµsújöy~4b±á3Dˆåçs¥·¨´bµÆ†žž:Ø«½FÊ +¯‰^iÂ®Š‰ÉNžkz^â · X¼Ð¨Y¿øTµÌÅ5øDÖØZÖþ¡¬5}«øh˜ãÉE½N­c½.»#Ae t?S‰«‡°z6`ÁŠ +B‘±ÙjìÊvÄDýL +­( :éóXÔÃÔ´œÛèÙMôe+ÎÌþøÑ­WCfã]°NËÈt¹ÀíÙ1u†ä|9à$ªjžž:cµàÊÏKfÏ×APKAP;ªo¢Ê‘Ï]ȃ½Åi°žÈŒèh€A—Â?M jBROD=ý¿êqüvÌÁcC§t;h¨G…™ë׈o‡ä[|ת)@OªÆaÄFïïy9ZŠ“ IDxmº¯7]Ï#`uŒbX¬ôX +œ.aŸìKf +1¯uDkÏtk”€Q˜Q‚êHùùЮ‡C"˜)ÔY?Gl™|W•%îªD†:î}cº¸ž7Öäý§hŽûåç·¼jó\CAƒÌ ´Vðo^ç€\3ÞÀË1ïØsS©5¿\O}œdMù^H.ÄóGE –n-œhû—x ! +<÷÷ˆ(¶+¦ÒùÛó°·³¥ïVÌ%QñÞÇ•¿[—ÌÞýÄžØt¿CÂR®¾Q]Ú,ý„Hˆ!ŠºÇq.*¦LÅ)“âÀØå^¶òŸM½þl¦ùºæ*û]ëìz …zB œŽt¹éˆ :çT ¬Xôp“¼÷ŽSÀ8pNé‘sË-J´„NòoõЦvXFø‹É4Ã2aò±õ(X‰Ž€7cxÊyÚ‘¨S(¢¯Í•”g…z™âJ*•wÈwws˜çÐìÕ¶[ƒQ*ËÇÒ…dN‹Õu<à:®µbVxY”lRòеÅÑÛBÍ‚E¶T,OŽvq‡ÍŒ~§5¸…“˜‡Ï–…vi }?-?‘µmúÈYýãç§esjGtUÖá‚êÎ8W(Ö*dNŸÚCskë f6Õú–´Ä¥ÍØJˆM·c,áïî—wÔ,9 +òö?› +¡úçrËyz ŽcûBå>"‚+ŒE.†û-ÇÊ+.ТKÎAÉbM™3ÿ06ÝÈÄ·ÂÉ¡çLLDuöèÊWEùX«íW;ÅðÖ¸ÔñêÆš¬¦÷° [²oJû<úßz3~úk¾À±iãƒû§y¸&DÏö_Ï®K,7ä÷=¤0ô$ˆ¼— ¦¥Ž¬í%} Sù +dQ d‘º‰I•Ç…/ÿÎ'ÀIˆ´OOÖm€r°GK„Û—éyB›rº 8̳²^BQØ Ï€”—Î9¢^;ÁºÈrZ³¢»(Î.¿S Ð<è‡Ñ3¥ÚFû¿&Ô´N)¼Ð8?R©òذ2™ó5"öEýt>kéÚ"=i’àqW¤ØFÑjëžÈRxžzÆ6VÚ)¢üÐNS¯Ÿî,ĉÂч¨}È©{HçðtqfhG‰˜—÷ lÆ•Bc¡Õ +jí‘_•Û~JT¥©£ób)‹èq¸¡ZØx=qžVTAó5": 4,q%XÂDÐøìxEŸ ME(ŠWÊãqž43LŠÖðBï'7\—‹<\f6-°¤*jVßC|™ôÇ«»ŠÒ^gÑorNÖºSóG P§„¾çb˜Í^Àù³ÐmkŸ06o/à<$'4dÊàc$,)#ñ«d\@sö¯'øñ·k²_J›_"~wšê:èJ²¾‰Rà@e‰ìÐÀPŠ-&دìèuQm7 Œ(ãRrf›Ô£~–{è[N +íZ0Käyð ÍUè!Óg¹õlu¿šŠÕµ7‚ÅA[sdE§ñE8ø”ºDÀ•¢ h/»`ÅÅT¡‚ ^?+ç¨è…Ok°>{DÜõHeˆàòÌ•(NÞÙw‡oWx:×Iè- +v’ˆŠ1i<üNIºIs ;7Sx·˜{)5òó!@Çþk@LSÇë³ïŸˆùøý4€¬7A¨¦a“¨?ß0o£9Ç»}eߣä!‡íšB8Pš-Þ6ûžd¼}†*¢¼~©ÏåêtíUÿåØƒ,¾/Ôä®Ãí_×uPL>à)oyÖOÅ«Òûb‹éQØ+Á/™aÁöî Kº²(*°¥Gc5¤IŸÇ7•Õ½=hÀ*§Ø5uaµv. já·“ôK›Ó>Nàª,}‹ £f§'£¾\@Áè„".÷¥=jl K7¦%YP´9„_£²¦Ÿ¡6£d™–(™CæY…ÿ¤rÙ3øm¥c#ëÀ ¬¯³™Êq¬¾n{y/‰g¢wžIi$¢(PQ¥{ÂXÀ:Ú`á¨ÁŽŽ®Ãࢧàq¸ÅF´¬~ [Áû…„&qž„Œ~Hç †c#àƒÜ)÷ŽÀK«~Ê+¬³ÐodGÍQ;ÚUG³_ËÁ0n?âX¿JûaŒõc¿›'­ÓD††°‡g?¾Ø°­L!$×H³:Ê1Ï9èjáuŸßÕu†:ŸZîœÁ¨®·À Á¥ŸXõTÍ…å”x:ŒmÎbÏ0Ðßb¼ï×UO@¼x÷ïè‹¥,³%òäQ:?#mð´Æz¾ª5”R2û4kÚFÝUw$ÒK pSêWºÜýˆÓZÔ4Ç*st³Léøìä³R’ó BÅ0*–D哨È@°XùPz%%(Mõ,:z ­àhÚ¯69ЦŸ”•uo)¹7UCt ³^±>‹“‘…‰P Ù¢â˜> +ƒ‚ÔË|Àþ&ðÙ}÷ÄòòÔœ<( +ˆu¸½õïØŠ\Ó’Ó~ÈSlʺÿ´A†Žö|EÊZ’e@ôƒÔg¸oô° ò ±Érœžù2k"ã§ø P4¬¥îØVýHöT²’ݲä°ùÕnéå„ôõàH¡ÎÍ×Ûµ'Ê…)KÇù%^“ó'²§*"ŸÚòÞ³BÀ”@`¿…_eìéc h¶¡2s189ƒZ -8ØVºŽ œ€xNW›"!—Û7ÖXS½×&ù×Q +œÏ8ߣ‰žKˆŠWTjXAi÷½’f}?p~Ýédñõ r5 8 åø¹ð$@†™DÒsˆ9ûkLƒhbÞ'T’!R@Z;‡XõŽôTÐý÷Û´@Ìø«°$žóÙXAqRê:§c­„ŽÛ~õt@${Ì)@dŽÞCÆÓ¹^ï‹”“ …ªñÖÀâ_#˜Äâ¨ÉUžø5høÕå„aIàœ›gÙxÆP*½öÞã¤c«º~q bStÄ©º}¤òÉ3NûªÊ”Ä„±Î’EËr¿ã02à‹¿ð+¢|_¿ù”î”1Ò5‹æžá÷ïj8pkH[æs ’;üÜ£lãÐuvî¬Ë#|‹ÃßÛ;v ZrAÑõÍÇ)k©ýwüIiç6 QöYß›Lç»ÇòU{‚e·cZÓ‡†ÌÜù£år…†€Œ.åY?ƒpƒ ¦” +¬~=à3aÛøÝÁP:{ÎÂÚR,¬;5à ÀÔ8‡xwåÑHD‘ r…à)±‹㯠+TèG„Êy•ó»¨?åø”ØŠ¬ë¯ŸjqSù¤ž°roJr8ŸcðÒí«Im»‡þ¯Ï®ˆêRrl².ïeÞf?§½î%qaçrgú~<ÿÞÒy7€ +QwïJ›‰Ï9°{™Ÿ3 ¾6ÔpPgØA]À=8|dsU»a@BCUït¾¸a'#ꌢ2íâSŠ;p%z@ûó+µz©ªâTÑ׃$ÞV”Pâ]ÙOŒf8ѳF5ŠšŸOÌo1ζÙɳ,ñµMÒ§ÇUmÿŒè&ƒ¢)×”-¾¡»ýÀÈJØÎæI_U@ë¡€F]Ôn óëWùý®‡×7ºüwx e`¨Ð2ÉÌlß„‹ *c ¶ô«i0Ï’‹òSÌ2Rêý±C7-gªh{º[·Öxo÷Ofª7ðõÀïnßah³ʧ½GÁï "!îh,ŠäãÇÉÇ_zønæ~‹*¶j˜‘:ÃŽ~ùŽ¢Mn$irK;PràÆD·ÏC|ÄýšŽÿO§8{J¦5¨rà¡9 ÛUÚ©Á⨸à ìÓJ*%}H#în–†¥9$*T€'bšŽË( ?zöì=1LDýörÞüÛÙ!Ç–~­ÞòóÍÇ÷ÔÖæá¦ÑPRIAMþÀYAâÜ»u¶ÆA€dª§ÄޮׂQõDåe`A”:çr“Ä GÄ<z ×‡& +Gµ>"ðï+sgD>˜ äc¦àc%7€1Õéh<„…¢ùf‰Xn; 0ÁöŒùù^GñjjU:D·€Ü¡/Ï2ýè’¼÷>ž ‹Ê‹hØ¡†eã·„ó ˜óëXjjÓ÷èÌQ┫[·©ð)ÏíSMÖ5œÖu QÿÏa_a,×Éf¹:Ԍԧ­FTi¢çZŠòPÔcñ<,”û<ɦås0(H·—ð?뫼.°‘Ø92º²_àaÄ|¡p«%M%/ÀÇ®Á€6‰[±Â]¶AvI#p§$‹nÓW)®ëÊ.}¡ ÍÇæ9´íUÏð®{—©j²Á³Û¬Qhf0õóEÃñÐEì{Ÿ¿ˆî³ÌAó B©$¦ú¶zê;ó­!,dÛáf]ä3—Ùñ…ã mÚ}º™d¶­¼ ðf4dDnpü‚/òÊTêWð>×—·ÕXoFÂôp<“{YÈi–ϣˎG`„ñjpx!S[èù”׳*ïñàMõíã{6²Oå}Ê<›Q⪤ ôhÞ"üe{ü²ýª¸¾Ebw&Q÷97ÚâFÇGÓ{ˆƒÔ)˜|ç…Èýh² ôXÆ{Tà@Ým=ñ¤yÑ‚VAÞ*ÔG`È…b–u`$@ÐrÔ*E ÕT4™&C@Š_ –ï}……È.Û(êD‰»Z .iu2+!é¦CåÙZcÔ˜Ñt3“ + ÚñÑjÚ_èZ$÷ãxE"³rHð醇€:Š4D L›“c’Õâ(_štiQ=@ÉÐËçù]MG†b¡eŸ©TÇI´¨ÀÐ¤Õæ ¨0SÊŠë#þODÕùº¦hÇa$°îl ÈNEõ -þ}$€2OMö^RÓ›/fÑø›4 zØ]Qì)Ñ$¶CU¯p³:s—®H<“Þ:Ìgô¡á¦|ˆ¡ÿ# laJÿæ<(‹À³ä؈Bž±—oP[#/ÙC;§y)Ú_¢ÞDTi^&ùšûÅš# Ç%ËÆk˜çÑèc@tFè×€×,¡ q‚Éß¾9Í^CòfdýòØã†Ú7,0ˆŒ*Ô¤õö|î2:#ÿ\ Õ0ŠÞ~DQ ”0| 6€·$@n£+7BŽÁèJY‡>"* +šéˆ;EÛ}GY5 J.‹–+ÎŒ'”ÄD|äÃÊêW!8CæuîÅ‚x·Š|ʹR–ˆkó½‡;]ûAþȉ}í!@ýêƒÕ¯Žì³îʰ"m6Šö`A9¢è&ÌP]yŸÂÜbÿn’‹mdk1X‹Æ{DŒ©£÷öñÕBå»#~A›'·V{_L%_!ZÙþE°H9T7ú¥ûVÏ&ˆ76Ò઀콡¯3€4á…ÃòxÈ«Á[Ø›Ï6ã9Z é(Fõ€é[œÄnµà§ƒ¹1Ibìô#ö§B=ü«˜j +¯9¯"«1 +ÅÞþžbÇ'`FÀ©Ê‹táíNù›Óä#Õ‚¸çy€ˆK€`W`ø-"_êš'ëbˆß¢RÈŠb!d~™ŽNëh„é‰DNl›*=3¾Òªh¬±÷ ©_d‰Î®`´ðëIç@LbÞããW7=>¡èMtøkŒ(úa‰ +îD°^è[|ú¬„‹ÌÂ0þx"Š&Ý#>æŸò#ÿŠ‚ªÒëõ-ë&©Í¼‡ÏEË£ÚÚÅu§+ÃÀ 8Ú à[訫yí8‡:µòw4†J• Ùº |ûÕtïcù œ•â…‚¾@Á[( +…° +ªF&fHú]-œji—a±’ˆr‰JŸÛ#øF!tw˜q¬ðª­¬¯_â˜UcÓn¸/‹¨ç|‹Bݤ =¶Õ‹Õ3t+p&¯iê r¥çäì{¼<®u]ëyä +Ó‘ßɶعqeYY¨nÐTŸ?¢/Vž ¦¤¡â³Ú]*>«Ÿ)Ðû¶Ô‘ú–\ 'pßø"uR´Ÿ ˜œ+ÖÑèrÈÙE÷Å(2BMØ;¡Û»Žâ˜Òæú쟊¦Ôj@}=pàQ+ørŒÚ³™‹êB0‰<ÜÎÊ9€\™ ÏGœ„g{dåÅņ†"|Ê_-Bú„P ÙwäzñhÁÜ?=üIÕí§@ÜÀÄ# Uœ{iD”ëQ2Ó~üIhÎ_ÿ#÷OÒpÿ“%ÁžjB;Ä›ÜñŠÝ 2zÉ‹ 2žõ%™ÉÚŸOæT†ƒ v_é)Âb(3¡v³ÞDqtbB©9PDñëL6ÅÓŒó÷½[öÓE<QŠúʨ†€½gU6z9îsoï¨+¼Ÿ;€Y˜´-ˆ ]¡ì <Í?(Ë=õ6v ™ÛŠÎïO#)Š.2o‰ +¡Róã¨Ì^ãüݳöæ{*€‰ýõ™v…Tñ ú¡ÄCVÿ}ÒÜü¼ûç[w¥ùôd+ÌûcTUõN Àð²=¼ê½XL£Ñ?×—qÿ;-hå›OQ¶áÉáëо½¢[ÒHÇ÷Œméà© ½:÷7ħ;^e£?–!Ѝ‡ŸÞˆ°Ë…¾ÂïÒcÆÙcª&o%´g¿¯¶D“Ô¤<Ö_’µ‰Ø2Þ ZÏApñ4Ž´öÏ9öÚNy§ûñ§˜úx(D,4Š&6Z÷BPQFPQhÃ5LêZ=}Ò( E¨Î¢Õ¤´m&$lš·ˆÇ Ìd ×[iÿ&Š `ox©)‰ ýà,l½5þèäýN¬ ^rÅCOó·ˆfŠYï/Q;‰Ñ7ç1çat ûûšf¯ßÞ{lB†XÁ¢ð@|F¿óf*{;ö<ðwz iVq9¤Í È(šœ@H‹E¸µ3»øz¼–*ËdÉ̵Uù<Š’ ?…•»©È¦/Ä¢á[Õ^‹40‰À;Ð; J +x#æÚŽËÈ`П‡9$¸£2Pr¢xSˆBëÏóþ…Ùsï_@×€ˆ'ú|&KÜ +f  7{ÞÝŠ}0Zù”bÛ(QûEÒ¼šw¶óŽ‚!̱š7ˆœHä£y2é(ŽGo^i ­¦”æ›ó4@ŸÊÔþæ{ŸØº2æ))ò”¼sªyJ2×)W>Æ(æqž"$Tó”/ÉwDð]ÅÌ¡®kÎÄ”lÎ4"gúó¹×Í’ƒúÛ@e¡d7\(DLÊðŠw™ª1ªÉc¦r<¬8I½µð‡,.c/.㉌j¶“Çέœ<öîö££¯~¼µ8ÖX'¨Áâ1(ºûYâÁQÏÔcÿe°ýÛ±7M™¬2Ï4YÏ4YâüLADä|zhL· F¢(+Åyá—Ð/=ÓvŸNÛ8QV2bdöJÃ,hg-.„·, ÁÂóºn&<ƒØÿV_Ï ›6„ ^Lgˆâ. À?Y„ðš'q€”ê­-§ð,#ÜŒJSëQ•D¼º ÎÅ´žA‰Y²s¿¸ô¤XÆ{¦rCaÆÅNM9Ô)W6­>ß‚B­˜5±:5E°ùprXŸ³`²1ôûkg>•ÂSÙ;U¬aLתMø=<òçÔîDüŠ4({jôãÜ[AD‹LC“6"qŠ!ÆðC€&JÔ¶¼ +6×h°¡x(¯çȯ-e$Ф( W¥±ó´eáŒF3žÅ ïðo½!?jgE.Cû†‘Rb¨š„ ¯®,z¢Zb'AM×¹D3õŒ³<ƒ39tMZ4Ð5A rI–f+ÁÒ¼rÍ4§½'ãÎÀÞÉOÅŠD@LŒ £h„ò°)·¨Ò8¬¾×rŽ>Ö½‰Ì€2/¤µuæ=é1óGž:‚ë }p òÁnB±½§¼Gxˆh½4Yˆ|íÛy¤ –ÄnÂû5·Cš‚V¼~‘%Ö©^jÊ3¬‚¶‚¹ßÁ˜•Äì·pa!ñl/¹Öž3¼$‹WF)Ú Óšdüe$lÕ8pó‰(æ >­iAUúÏ ®é3ݶÀ€‚¤«ÃçG ”¥Z‚?eX¯›Œ=ÝãÙËr.R–«mÖDá8µÇÖž¤¡H±X&)K{:ì¼öˆ °XîUÉÙ +èè´ìž¤™,q-.Å.É×’Â,–D}?+ŒèUãK8I|sž@aûTtï¢%¢Â~å„VÐùmÆT…‰¨„]4Qô ‰êÖíÀ¥IŒžGF8ÇíO¢\3¿ OZç<¯ó#a*°¹wA2Î]€¿0‚es™î#T·O õθ69žÅÌjå*£Â…†êý&[©…j†/ ¢ª¬­&’l–x‰WÑÔUaÒeBÀ8¯ÈOþ|&t7!;Sü,gu5/Hiv:¶%˜.ÒZR¦N—‰õž Î’€*y +ìÂ+-ÿ`Íu´+dÅRVæIt6šÌ‘{זͪŽcM¶““•ÙŠ6s+nZ³£Fõ<kYC€`ÁjÍ•àœu÷Þûý<âõ#™ÀIåa 长 Sí9âüdž7÷ÉCC{xTÞc« \ç|"3T‘ +ãÜzê ]ÒÄM :ÈmÖ@ 'ª­{ðtA@û½|5ª¯HšS³NLJ„°&aÇb ê¶óã¸8󸩫îÓ‹ Mñe@¡ðå1‚5e|M :è!–¥½PÒÞ«páp{ÙwFºdvƒ{¢c;‹+QvÛRu¯kFf”uiðÄ +;±0‚}7áû‡i¸þj±ôóB)#¹0 dŠÛìû'òãèæ¸\õ¸ƒ\Öù"$Y dH@„}} dzÒ¯R$òà´×ãÀE*s…,3!ÑCü ûè¯ DÊÁ@¾ÄwØ÷‡•ÂØO„‚Ä~ê@k>šzü4ÔžvFر’ôå˜M‹´·¯„ ZAêò…ñÝy’Vñ v£Ü½G¬˜®Eµ2LG¬iXM£ÍÝv_,ð=sÎæ<û$¨è£rï‚Â*Á‚ÒYr: +‹n É”&]¡.yŒFîþJˆ­ýXV’úáWªlðñócÉlßœ8jüúK]Õ½®ìDNˆ)мòMØ6hq?wpý*¦bo½'ÕÆ ­0‹èƒ¥oJÈŠ2é¡¥ŒQßa¢üM€J¡Ã½ŸÝ^Ý`¿½JQc§XC —f€”Ô‘Íÿ.Ä”à$íà<¹·(ú PT €®ÐãæÊûNºÈ¢(ßîQàå‡q úq[=[Ãæ›ó€LÁšhi‰Å +‚’ )ý®þ !µ#ð‘,6˜D¹ì½7Õís¥çÌC‹z6JÄ ÅüÇÄy|Á)†¸%<†;bÿÊË»”h³z&¢ÀãH™G·^W²Û9Â[ ¢ Q$gNOS(ÎPŠ•OD@5]2EFªž¯YÊßå~%ôRü{’R`„)…R {œd• Æ #R-„bÄã2“˜c¼íGuÞvs’/q%4!êw'9³¸¶â&UZÅìXÚ7Çú0!Twä÷¨0; 3Õʧ–EÄü™HÝ«r€ hSÍ’…ÿ5Â+af–{ýæ4àÊX-u°qÃú­§#‹ÿ +ŒÈ𲈠}‰jN¦äkÂì ?š=Ö­ÜAwAzFŠbá±ìq[Û|¸ïhÔ‘®èïA–pÉ(ý`ªï˜„¼ÿÙí&v¨.qËœ_£ 3ùVÀùoÙ™Äaˆuhe¨êƒÅBè Ÿ‡NË\_#â‰u•!ÖЛ½}sžJA ÍÅ®çÒÉÊúÉÊxbõ‰Ý먘Ü/“ÌtšàœÊÁs¶8螟}rŸ~ÝŒ1¦óêãofÀ~º¸Kßá:Ê),¨±æ¾Ö›GF)QùAÊ¬Ž Á ížQ/"Ò´…vxû¥‡CþçXF@a2böûMàú3a\A0öGɉ¾$n½;AH-JZæÚÉ>Î ½5Uê Z%¤—Þ"bM[v€Hlö»õíyžóFí+ƒvCDºˆÎ˜l ¾‰X‡Á.˜z½rÙ_G¡å¤b(ã5M‰‘N[tµ‡íì«Àhoå;a¹º¯Ž´@1B·šLk÷æ€í&r€˜N²j°zõ4ŸjG4Ráªyh$ãHW+3 ³b½Î«CÑÜîÞ©ÀuåÛ=/Ù$WVÙïˆ÷Ë„#§÷æC@”I2u‹ê ½yÍé5¹;á&süüÀOwT"Ñù`ey€VXTK€ 3l­ñMÒ‡Õ¾ÊYW#àk€/@éàgdµ¨û`;öÂhq{Dƒud˜óëÀkøîlá[}Ê› Ì)ã'\§S4Š€ +Šq^Ôx,´&Tf`Ö%%ò~ ð-Óg•%Ã3`Ôf^ýä<°C¢#ÅÖý¿lϸGÚx줾üî¶Ô„ÌÙÕ,ùDynôÞïýèˆEiZvü‹Žê[Äw ä[õM¹'´@4†=’Ž}éf—èíâ‘`3£ˆAYÙ&"o‚ðá:Ö4`qNK¡@­Ý§pJŸ³)¹b‹šÄsaëlÍÏCJòCw¸¦[§mjT³‹E|)æ;¢l#ˆêðŒ­'{Å Šh Îö:ðo–“RLᬉE_ŸÒÏQQZ­ ]”Ù=dž͂€¶iø9Yñ”õ°'Ö0Å®LÉ–V&; ûÓˆ bF„Uç˜Ó#b܈V`°éPÒ1x!™M‚ ø NŠ•:uR±ÞFðC’ s¿Gê*¬‘»¥¹FeŸˆ@à Ç׫pu69¨‹Ì8O³­2ç|à™)¦ìoÀ+áR½þ‚é bãùœ§¹46öA ÿ¯†2´gÎKµ ß*"t=Ói³áä3ì¥wEúÖcïîv$èÛö8ˆæÚ>Xl‰aÓEWíY ®fD ×S#œ$(þ[Ç?n6„.ÝÑk&Ê¢:†kÀ õD¢&«tDðÛÐ>£A¨-»-w@övéÁòLQ@t +÷ç– hÁ=h!ÍÍ-µý}~RöA!4ÿ€÷íeZ±õÁWmÐìDÕv;ÏcG&­Þá•Ô7£D]©ñú"¨ªN+Vˆ!ñ +‚YzóR Cœ=Î÷ã]nÃB޲\8á× }i+Û´½»}º#(ðœû à5P¨QзkÚ‘µ:ýPD@ÄŒBâ‚×||–x­£ÿ‡÷ +àH\©jÙ´ieƒˆAP +€¤ãBªþu}b‰Úç==Q±›WO%(Ûˆ;ªùÛÓ[eO€'M "¤ yDô辂0 [# ìW…š %<¯+u[²üú-ŸûÉ~Ü-¾e#Þ¬…ö'†¡£§;‹8éEe/:`ƒôÝÒT3€E`˜ªÑ“ãGz<=RebZŠ=PDÎñì݇ “½v¥4i€óçÒå÷\§¡ÀwÖâAÖ>XE»ßF"(¥±¬õؘ!Þ;`ZÛwïfÓ¨ŠÑÓŽÊb^Ë;U_œ¸ÒÌž§Lá¸E²‘÷F lLà,ˆ5/R÷0K]Ìl°_Mež"Üg‹Mì>ÍNάçÚ–~ç½/Iés#. +ãûéwAN&ùê×J<ÙïÚwR§:v `†„Ý}ù{çS€¿~f¨¯ÄkÉ~×2çõgH¼;Íc.ÜɹÁslç–œAdVÑbÔ³â)wýÞØ.Pìó°­S÷ˆøÁÈEöz´ØŽöÝyB÷ÍŸ{ð"aÖ^³ÑÑû&m,.½@?ŸCãWQUë×äë_èGôÉýÒéñ§kf%)jþ z7Põe­ Àϧ¾QÈD‡†œyÖÓˆ Rs¾G€€804Ì€.ýÑkˆxyw¦s»½ãæ1XÛÌwæ/¿Åü‡öÁC…Íš#€§»Xå?˜ M,§òg½.d”I6_Ou;=>Ö‡j^ ä­Ìc8y lS†it¤Ø:×÷€˜¾¤mï§A›Mü!•}ŸÛ7ËI½!çûá hg\„×[EsÖ.G?7<Ï Ÿ"ê;´íÓï©q§ä°{àæo"~w°p¶`&ªdoç%é "4wPéY!æÈöÈÚ€yÁNP«,^èŸvIŒ•.Øx*Ó’õôyJã ê)ÏþMD+6Søã¢ Þ¢ÐWé@U†*L E}±$ôƒpß[Á† %ägÅnùØÐµ| úPwÓ¨äž`§"$']g»¾MƇ®oü¤lt'ˆÀµfAþê1±9£-˜ÂýóJ±Xv uõLîM*LGÏÃi‰4æØŸˆr_ˆÓåˆpOͽ¸P¡èÿ—×f…ôCˆð¼ä"ÛÏ/ë|D{Øò>k™-˜µ ÃÊ´Åü5â š"@”L_ Þ_EÑá§’ätôèY!dbÊþ.§ðIzGýnÇ[ÄïNÒT†½Ê”µÞ΃à2…Å'ë4b™–Š4ÐÖ!ë-åõöB'üêDa¸È +ÛRñœ1ÄPü÷¦ý/ÊžÝIÿŸ{xM*ÐV€fzãoçAŠA¶ŽZ 5îS.±J{3–š.h¿#yÇÝâq÷Ûuo°å´qz\À¾®@îî ZK;ήbE6¢;æ¹Ù ª|”‘0Â%yÝ4Š^Šiû4á(òRA$*åsÃÌ7D ½o8‘îÉ®›öã€s><Ý¿[&ây!­ú]†ho +ˆˆÂˆb‚Ú®Ÿ woÒkêy%9MŠÀ¼(_#ÏñT`èÜÚ[Ò[4Ò1¢¢hÓZÝtfT,n.²Ë@?‹ °>C&ö% †]‹Ifïæ³á¯gú°UA&# ›©‰.öÚ|©„én˜s;½=a¡øƒ%ØÀqÏ–+0ß{N®¿‚6 Zº£&ÈË3 YúÊ<Ì%>ÎTˆKí^Ï–5£à#Jeˆ»Q aCàÆ”9¶»& áO¥½Gª9ƒÑ†ØÃ¤¾GUErŸvÚéåÒSÓßï"PMŒ;íÀ+½E=šÜ‚¬µE K|ÿó-A€VŒ®9]eºýÒψÈ/|Ý$khpŒuØz òàÇc0 ¡y˜Q îÔ!â¡2ƒ¡“(8^{æ9ʼF94ðFsÐÕvÔ¨#ªWé$´¹D#ƒÛ²,[â^:økv“yÄ9,Yì…+ÝZªÕ !PµD>ã¬%½ýi0~ð[?`t—Õ,r¢!ñ|1\‘o†üJý qïI³ˆ€ß㘠+ûÝî7È'béïüϪE¦øÌx€ßœgòŸ4šìý±Zs„”Côì¦f_Qô¾(áscAg˜Cú»s;p4¨£’]t†Y²°wÝ«$Hí 9oô3£·ç^€=ï4³†“í^œÆÝ@½Eá%F®‚–˜iA²>ìjT[Uò+7µè…“@GÁ[Òï"îV FuR +»ßœgé¤k—Š“ÅäRÒ{ÄÛòÉí×(Äp$9àÌT#Il·iu8qåÃ"ØùïÌQI‰­CªÀPpŸ|i 5Ð&”í°ôbÒ¥Æ^vAÆ@ ‘j2î¢&fò0Aš%º¾I+tÄ"Ά´˜6´üs5Ï®}àªI÷TïÄÒ 9’¸ +‘èTT0–@[àáî•Bú=-î*{¼|‰ÅOä´,J–,·˜€¤% l'%{Zí‡Ø»_ÿ9ú(-JÚžð^|ýì1ž$Õè2i$ô¨¢ëKûô…žR íö¶Þ¢H ¶-ÒäîoÒ¡ëN ¸5Yƒ"? @+4‰öÀÞ_ÿ?ÛÅÍÕÉg!Z<ø–gÎ)5JÀ­:-zco ’SçWÃg‡”ÚgÕ‡Øc|÷xƒͦQ`´)dèÈ8?¡élÇ-C… +1“ ÜÄn}-àŽ °î1µ×,‰p•~]µåÄÚ¢¢Ùõˆâ-ëYd_t:^à™è6uIÁ+Õ¨ÞAÃtÌÃTðož'QZ-“ÊëÈC'§…'}Õôlj¨UxÏð¢Y6 帎ßsŸb^o‡òDvâsþigFßwÃ,A€À“¡œÖõq`÷ÖˆC »""lÿ!¸NqN0]>|^°»©¯â¡ñ`HÝøÿ;—ì‡óMÜ ¤2[L‰‘Vî¼eÞ°° Ì0ýå\t_ÂjûyrhØlÞ[´•7±Ùs§‘5E]³)Oþä™qó&±*Wb;’¢v’"c¢JÕ¤íFZÅÒJZe넳(˜€„S +víŸOànJø­2Àæ“¿Èÿ:¬ÙŒû’óµ!Ì(X(3w ðtbû85€S{s7FC ¿‹Š6ü®‡áØ›‚dpÜù0(hÅ©ÄA +dH÷ ݧ2Áüz^4uSóàÓ5"¢‰(L(@Nšì;Ökqm”ë@…Ç»Lò£%‰,oœ%Б aÉ`Ø *R[â:«Æî“º¶®ÅË@ž•“ŠÐa>Ia]7ƒa \æŸÍçSÂ%TëHò5yÿTz@Â~vöïËÑÆ#ík±e£sÞ}Îʬ‘‰­vRi9á ®'¸TK>$‰KxÛð ·{ÞyZžmG. ð›F%‚ºeÓª(kôøÒ¼¸’¹ ¬AïÙ4äˆ&]󋤇IÐZS¯íÂ#&Ùh+U»™ßÇ‘·òìl@¹>» +4‘ÛZ4üîì‚»%ã½O1ü:¡¾=iKô6l8b.ëöî“þÙ7ã§¿âË(ÒèqøîQlç~/å@è—ŽaÓ÷°êW1D,U¬EˆbLddiKd»ÈØÛƒöMƒ!Ýâ FU°ÉÝ©éÕÂ*ã< œá›hU~ŠX 8_” ÉÞ§o<5]°>v_QÖÿûÊNEoß=Å×JÑ +8~W…}4;Ãõö¥‚ÙÎyB`£bÅmÅ&brc9H={b'e`Wôê\ÕaA•³è€M 'Yëó@)OeHWŽÜ MüùDJãw)Fåìd¸™€I/$/H†ÔcS˜AºCžg{ͳ‰:)ž¸Ï‰°WŸ¨˜ TžêåOc0;¤ÒÃlgÛ­xHÒàÚ ÌbìïÂïÄhˆ–ØB¢:&© ÙvC˜†å1‡ßrm»÷¢ßãöÃ’‰W,·$´¦kàkDN 2-®Š¼bö°ñ][þ<­„Au˜£¯!“v‘/ ‰¡Ùnñu…Ç=2æä€­ØKlÞ›ü$è,”«2„À}pÖµÜÀAvDŽ7È—‘"<”œçŠÑ*A]Û¾:¹)’â•"ø¡ù +ÙÇ"$€Éœ7ñ\q$jèͶyÈ@’زb­“êM ÀB¤)z z¨¹ÖL!ùª@5^0áÀâa_{4I€ÀeW+álˆ…á–Ž„™Ð ¹ ²ƒ*S~‘d’U‘>–”Ù~Îçç-²ø¯FYoÒ7h箯œí$í~©3¡k?$®Ò +[>Qø÷ñ­ÉG®æšQ4¤ÂñHçéþÆ"ŽŽx<Ìü¬ÓkW Ô¿ßnWˆ]¥#vUCò“ü1ë0ªåà*9°ì>ã¸Âˆºs ÎÛy¸4Ým7_3¹ +azÉÐÈ4ø®GТDRòç“›¿æ¾¡ƒ¬™„œ ›Gi~Q“=©ê …V4 Ñ&­nPþŠL•þý]Ý᪛3‘âýG‘$gEKºÎÞóøÜªÄpÕàˆjÜO£ Q4y‰’Y¢ø‰ª– eHåë°±• ÍjÕF¤pfÔ8ŒhWbd>žtЉFyÇ ¹ì¸É5%/g¨yó%ãøß(³UÑXjKôrj0É©éì' Õ³ØÛØ +’{ '©‡kŽ^üž£Ñ—ÚU$=mÒŽ4~‘îPD¶SPmn²*~›Ã*ãëÂ*k¡¡â'„å¥*‹ær š(j=5º"ªØþiÅ}ÜÞ³»UÚŒ¨Ï­YÈ(©Yñh¸r"È,é +×#´©ëCîD ÁNÄhÏëJSì"ådè3Þe£@z¡zÈ€\Cö†‰w\gð&Ž˜RÁÂ""p·…_?%x¤M>AR™ vnOyÍÓˆÙ¿l‡Cúñ$ð~ˆuפ”¾x}æ°Oœö<”›‡ÖX×(UNjN©ª ~…jÚ‚ÛMñ¹Êiá©Ò"n‡@ls`^î^íè™ ¤×á:f_0nê ⥦Fe xÜCAÝd/Ù9f`·H‰~]e …䌎=ÅÕ…®y +NµxÝMƒµ¬§Ú~­é3Å¢ŽXêh3l‘àeØBßzÁ|…9,dWB +":|O±Hû‚Ñ­ÚX;¥Pš†3•1v^eùÿ³ön»Ö+éyÞøÖ¡ã‡µ'“Fp '‰£­"Ëp¹ûÔó¼Åù¯žcJ Z ­|“äà «¾Í»aØ·E%‘öÃAZO’pɾJø7W½ïÞt´¹œ +þ´qzÈJâ\eÙ䪢`ETÁÄn©èCz9 Lµ™@@$•!Ž‚T.P×ðëlå¨PEiÈùëÑ¿‡sÍk23-—ÚÔ€í{´ÌRs…ÐU@¦A"af÷uüì–@-Jv| ùÌTrkßz4˜m"òœI•°':Å{³é€Ì—²ÄSsN¤?X=~ÌvFqCK¸£’¾ÚNÊW$Âꋞö”Ù.Êî?üÓƒx QOK—‚=ˆ¨Æ*”3¥ÿµ7VöžêWÉ»lÿ0—RS®³øð8žÀ]ûm.9n‚T#%A;oþŒ1È“õS$ïþ êYäÓô §âŠr?‡E“: ÈàKäý?Ö;yØ¿ã\ÙÄ ½C@²äQjÌPM9G3£Ùgõw¿!±cU‘ œ ÇgÙ^ʨëðú‘þ,-çAmn¹×<< Háʧ è~áxžP¶x<‚Ëõe•PúUïY¿#PàK :Ž;Ü.EB°$"…B>M›?öÃyÔÈQ­+ñ:Ø< +QysÄï;ÀäF뀔¶z?—sòÀçÁböZ…„MNñUüÚk>æõìCäy7$:tòx©÷ëd>ÿ¨"Õ-Ú%g<Þ Ç„º3!åb¿P2×̰å9‚ÈÊbÝTvîh|ì±z‡íXOןé•kw;:Üî‚¿Á[‡»¯ÊÌ}EMþ,ªª¼Ê!Zþ5i*@ ac +Ù)J…Ÿš¹CÊoÁB…ó61ºRòÑ„iÊèãõØeDþì>jé´iPÕ%Á¿¡ Ÿl ¢E*¤½ +Ñ<íëLßá50Ö+.ür7X2¢†ò¨nîW«ç«P_÷æÂà$lɉ®\ìóïd£GC°;e +5 }м³q\f²a‚ø’æó÷kÙ³^ÙîbÇYîç(éTï +`±©¦Ö@­å(ðéÈ´“Gh…nwà’‘ª¹Þ„Y£È½‡ö/)Ê™!«Z-¸’àïHÖZ¦Zlû‹utð&½‡žt¸Zû2¨YI͕Ч;SÇQL™>§—Ge'ÏïÎÃë²Ï3¯#kY¯D2°èvtd¾µ#<¾/ ŸAކD O÷*G±„†×›ÆB»Wœ Ãꨉ£jšî©y×ÐZK1Ó} +–,2í¡fê¸ó¸unÇ9Á°/-Òj<ÖP! Ai¿‰‡Åop¾6‰ÃˆÒ–špø%¤åŠÖÛÉ•ŠÿOÿ*.° ´hO¯øªhuÉAÕÕ?DÉWz ¸f>~GRëzRëCÅ—4dÔë-ü–Úmthz„£z¨Í` ï=¸N͘jˆ2ƒöa²*W˜.ÍÎÐé$ DøR“JÉ\9Œ@{ærâ‘ +a³}ÖÒž +o\5\¥§j,´ÉÊéº@$R¸ooÙ—œ«®.Ý8÷]Hd0àËJ?Ó1âKò}ìÌ´BE2!-|^ = …K4LÇ«Oƒeæ„òÂØ!mßÏ©W0>Ä…&iYõ-š¸aŠ.:2¼ðÀ#IÙ¢Ž:VJ»#It¥[’¯ºŠFsH[ Qpé½£ÞøSÛQtŠ1ѯ7N_g’³²¿»V"@Zº^õ_g"ÿ’|0£ÞŒÂ€ÏŽZÃý±|\-*×ö¦’§Ñ¶ lf.ϲ÷<³ùWdŠ%hÙ;G) ‘ækÁ®¥:ºã†Á˜ßX#œÝš•DYA`:ÒÌ‹ÿtÊ¥ø°‚A#ˆª2ùi»Ï‡xs&üBf© S ª£qãÎ4ц “…4És©JÛm<‚Ó¨°4ô|<Œ‚˜‘.G =ª ã9Ž{aO¤cçú:®9Þ ªå¯ñòÜ2¦”‡n¦pùc*k•„£ÆOö”Ç9¼ó̽_án\ìY³Û®¸>D"G-Þ^ÌËK¨mM$òw<8…öm)Ž fûÁÉŸ„ øë]µ#‹¤| Ë-Ë;7þ>Åâ©HÇrÕªù#LõvËÓ<æ+<µ"œ%Û£*)µéyv o,„kU¯%$´iS×vV}›¢&Yóz$ôd +¦ÉÏ{3…9Jþ(Uœ4Œôßm"TQPÏ !lU$F9ßè +l)CuËlLß}ý–%Ä2*¤´ØÁARƒ ”LÍKË@³7‰-x¬[e†s"Š#@Ä9}ûy?)&XKîqˆ -¿ ƒÐ#5`¿£ óoeP±—šcá5ãx&ìÜeäÕ®R ƾrÖŒupð7j3*ñL ¶oå~F(±ÙÛ#Ò³yŒ´u—²&ánç—ÅqF¡è0fBŠ¿ì¹ÛÙûÏÇJÀ~Þv‚ôu"7•´ßÝûÄgHâf§P˜­.¬cÊ¡‘'‹† Q}QN„C¯}ŒrôÔÁ¡ž‘°æ¾² ƒÝ·B‚6&J’Ø‹¼¯¼~´Î29ºÏäˆÔºÍ´ÆÏ'‡Ia9AYƒP m)+CeùÜ"ŸCô‡]ÔPÝOc;¢B³™Å_ʦAE»KkEfqvµ¬§ŽVhZ@t§­þ"PÔbT‡½ð&Ê^¸¶ÇÈ‚"‰­€%j¢÷ÑÆ€Ýí(¦{cGì·¬'¢X×4Y± TU¦ãJ–ÝÐx·6ôH @wÁzs¡ :T@=ÓF”ÉÍpïRîi?;ã¥Œà˜‡+ZÅÝ„}ŪP£þé"¹wØU>y8&.pƒ•'*”]›V’èÒxžlþ²îS µhªÒyÜ u‘Õ¨„°ÑÒâdOWk(|èÄÓ„¦| +Æ|ɯÄ\ó(úÓl¤Ÿ´ý·Q‰–“æ',úØp=ö ŒuÆó§óÀ…ɱ_"50 +уtû!PÜÑ$ kMN"Ø^U.w9ƒÏd#|~žè—H ã9Ÿ¦\VI§ûG!}¸‘Ó ÓŽ2,ºKH‹,•zI±ûs?é—,Ìæ¾~•™ÉS;X(LbC÷×u3Ÿ‚jcèK]ž‡`þ¼:jìÛÇøz¤Û‘j¯SßyÁó¢×:j}E²ETõw0ÃÞo™"”/áŽ^¶[ÌŠØâ{|Çý3NëIR5Rì±<Žå^ïj½ã éz³#–r½½W°³Û~",I–FåëLÂäЩgÔT)5ÁsŠ”B$‚Ê߈qîÄÛ³Åÿ%vOó¬$uv YtëyXÍ(cÙi`ÝÇKáÓ†^͸èU®’÷“X_Zì)%z,©&O_€°yJ‚. z ²‹é  QØ«hŸÃõc±Sôšæá”F×”,¶¢ çÝ´gÅ\‘jaï$Ø|£ì„P“u½¢h…ßåQ¦HÐZ²$ÿ”'k?ÿþ_… Ws¬yøwK.~Q‹bZþZ”;`M"äÈI%àýOÖz° ì% 䇘G+8ZLø…zü¶óÙd ¤h +ìëöW[AAX;µ˜á]ÏÛÀ„ª'cŒð;b½wÞ(e¨ÞÁpÙ§ñ HÀqwÿc‡OJiÉ„åý¥0ÇyÔ:ÊZMWÅ&8ÀiÅ{¥UBFiro8™è¥‚ÃoŠ=þ' 'Ùìé~¡F|3ä±OOF°_nPþÎÓhµ>²’Xq’»«-§'À:sìg¢è=ÜÅ áÙÒŠCŽë¨p!AXXµ2Á å ÄÿÃ)i¥%:ÔdnvÏܨÀZÂËq$ìÆá +´²¿o;˜ƒ@0‡š]oO1Óãm²ßü! €RöÑý“±Vô¹ºú}ƒ9<ú¿Ch’§Åjc?*îp*o $ǘà0ÂxUBØÅöïWÐÁá[ÑO[ +Ü]gÛпǪgÔ`LöÒ7DþÑÑy”ÿ@N;*Ç€/†Ê:tûGÏãäB›ÑjÔ~ôË™ÁBvDêqÆ}Æd{}y$ÌÿLï¯ +ü7ÿ¤Ÿý¿ð@`Ÿÿü` /»¯>5xÖm¿ÅÐc«‡g¹Ï•i»®ßb¤î¹,ÏcF.±BúË–ôÈIÐ<•Dû—w¥‹V >¿ƒúÅÊ…n_¹£‡ë¬ fEcâCߎ¤ßNnÎ\^6mÈ/rðŽj6™«:˜FñUõ­!”õŽà +‚♂k”åMCÑr Eæh ”—ŠÏõ0rØQÅq)=r×RT­Ÿ@öEg±ŸÏödKQŸˆƒòvm£Dq½{o9¦3F/ÂÏU°{í?-A¤¬ñd $Kjª=‰ï8m`!<#>¸IæfjÇÙ…ZDxÆ/KÛ S£Â©ú§s:Ê’àlªF8;üÎP™çbß–3ÑFŽmV+c$ pðc·€Òë +֤Ж6v̯0m‡[Þ*1´>ˆeH£&*ñ—”œÔÀ¨2CÔ•¾7šqìÖã2²&a*‹bAÓ7x]ZÚjif”ÚðfN¯²*ayŠ—ÜñhE3,»s-")ûYtÎïÌèoWㆉ¸b–·½Ë1¬GÜÃ ŠžUðXä²÷ÔÑ{bI$Úg„g:ª!7JÎåùá0¶AI¿¡”iƒ¯V‹”×ï b6‘Ž¡á{šïAÃ-Ÿi0€¦}”žAͨ¯Ù"ô‚ý“«‘½ªÁûó‡ ¨h0[fQxÿJs4Tú‹EE´µÛJ®Ó×ñ¬Ç¢WàÏûÊñ!cN†fZC‘_•èΟSV@èaÕ ÄÓÁÝZ©Ö†²Ó‰Ð£wYqê¦yVÖ¹ŒQïíˆyû@ÁG¶Îð0×2jñ8¶q|÷8¨À  ½3½Á#ÊXx/$½Š4y‚ 6…‡9­Èýê@ ôfýçý`R¤5½ßä{"· [ ¹Ÿk +AådÀ8—·x8OÆ´OÅÓ§H+Ép##Ú‰8È ½ìùáà O ZGr¬·ÃÐÜþ‡ÏxV?£@²*^±Ø? „ÓŽ#ÑUb#üL劇îÄ{“˜#±úŽ !žäD-îÀGÅà<ߨ €Ó±8ÖµôAíz¡|¬Qr€ÉS„ݶƒP[«svm"ÆQ-¦l| àgè=÷¤çû¾Lš+U»×ÄjÁÃì*ˆBØD<êZIèõò ×LtväÉÚ‹'ìlþ÷‘ÑÀKWwÇ«dõ¨ý—J6DãçÎ.EØÇø 1[*ñT~>#Ò= _ÿóÏ©í\ ¡p¦+NÛǺó:R¨Oøˆ<$ò˜þÊ´èü.ïlÝ™ðg"Dm^LÔ^î“Ié€3…nÜåcÿlöÙäË<ÿ2ª½ñ¬ú õƒÅ‚8Û’ÚÆtÂ~È¥T)Zº ªcáès')$Ûäè’ëvŽžYGIÏ›z‚nþ,ns;ƒ¹jyñ %þB4ƒuFÅÕeêš2­—Œ 2©Õ:ÃÅØÅÀq8SpD%´úy+]/îu”ƒ¾AW{Æ?fæ”Qt¬!4û€X›J-€RÎvÊ'LG;bõ³†ÒT¥I›˜Û13à…pžj,ÓÕÉŸñÒÎ~_æ~_Ίõø¢{,uMkxÁ?_ö­vØyà +Õ} -ƒ+"çqûÐHmZ¼Æºí]ê[rß¾ž.ªóù·©íì\õ/º…e88ü9âFŘ”¨«¥íëîËa²3=¯kÚŒ m ƒIÚ(["v€~Á—œè>âäOëq¤|œ‹+ÁM—N9`,?`ê¼ÿ\m"±Èj,S¼÷\cˆ)Òñ+,J)€åè€2™Q[Á³T=^­L_Z-ÏoüÊü靸šÊDQ·êV'<'z“¹‘t²šÓV¨6­ŒŠFõ»³½Ëצ‘ª¦ÔSjNAS^ži¸§]/Ò©ûƒ/¨è¾Ž´ó<@&ÑfÐiØ#€ +µq>`Û®=mÇy´ Á{¸öa·¡þ¯1k91^“'äø¢”'Ô´3Ö.±$f§ ЈFS‰^¥<×$»í#"EÔ“aé £õ3J*=ø¡WÚP)Áœ¨m4zEQ v¶há¾@¢P¹˜¼Ê#5sl½àgôX¢¹VÌ#|O„Ûüt²yEÞüa"5P‰è¿wO³Xo’Ï£«C‹]+‡±äBP¤œ–,"–g–ý›ý5s¢À{!zULjV&¦e +`ÕW˜yÞy„uTì")–^ÝDoе×W²ÃümÝÈ(e +výÚXíÆNŒÊzhàê_§‚&JáLÆìoë˜ÉÙÚçŽ_àGðù®ú1ÅÓŠøµÂðS J—~Q¢ƒÉw«¥)âgAò¸`R2ì5ë3âÏg^íš]ëTñqœÙœ|Ó’k‰´Ù MÛf°‘!çße¿Mô(¨ßŽ öÏ(X{‡WzΔ åj¯²Ÿ¯jf¤Ø:iA—°(ô¦š¾ð_ýuå@èë?€ÔõÎÑ’aeܶ#úÑ›Õria"¨Û‹+ƒ\H3š‚ò} šõu¦(qÑœ^‡9>Œšw=gŠY#½ä¹T¦ö|Ù@æxWÕèß Òù8”›á¦ã=ßIò¹#üwÌc}¢¿™ÑâÎÉOVcîý£yÜ÷ˆÃU½m%ùõ}D]%T +ˆ$¿É°m¾“Ðrh†0µ|b©dÿ·ÏÊölïßS>ÝÇ_‹°¡… kó‚‡ñüðø\ü–Àç~I~FQ\÷¤õ©R6+#1G« @ïñÚÑN@:º†»0¯Çá,„ãHÞ‘ÈOÕpñ¬R´:¢þýa@Å%´‹Üw^îýÂŒúÍžÃÁBQ¾˜p X&:ÁŽÇsí(J«jÙ|gÓ6¤Yb#‘=—iÒA«ƒèÊ:û¬â´´ŠÀ§4}^™º3C]ˆo“Ù~~qs««˜ÆÇX½ xÃ’ɇ5l½AydDoG{®æ(á~ˆdÍ‚áîÉŸc§¼¤Ë1mõŽ.â|ðnzŒM°?˜kýb …ÍTí6m7Ô°¥uá9*4¶Fö ÷Éb 0”à¡fÙÕ\§ŒÔþ5èæðM¥OÊË ^Lb;Zˆá2õf’–Ùlá:ÙÂÈDŽíHñ®:³÷^ižÔ4Î"ª¨F#oò6 +ji&{KQ¤ŽÄWÔ=[,?ß™ý•Ð¥uÑíb‚±#Ú 4ê)¶À÷…çz²h±¬Ñ#Ô]]µ–™|pq+Èd¿’ƒöùNø “ÖsÏžŒ`äƒu¨ï®,Üy +md]Í–»ÙÚÏÆü!bžlÄüë´ÏµNÔó’Ž,Ù£q7èÂÐÓZbÍ€:;æ5wx†)ãùgøêò_÷ƒ¿ÈΟHþ´¯0‚"‚ 7¥›….ÔâÙ¥O•°À‚÷Ëï°‡Zñ‰WWàµû뤉âˆêù- $Ž62Ã1—±‹KÆÈ÷/ÿöð{”昃5Á +Ö=œiíµXoÄL„¬x-Ö^‘‡ï“ñ[ñ„lr‹ŽrˆÖŠ2KÔË™af¥O×;ö"â)¿}ÌËËéç0ŒÉ šÁqS¾Q”eÓ¢hÎpédðq× ¦öÃö{_ ÒZdk‘÷§Ð¤ƒGoÅf¨²†ì[ܺIOâ™ã}x¬¨c´ÞŸ‚iKÝyèšSñ®–ÚìFšyÖ¿Ìîý„˜ª®yèTÏíwTõÜêŽ7aª‰˜_Ð Òçqåµe$ *çÓÁHúÁíH|¯'’mÞ¡ÁŽXÏ‹.wF·U¬f…+.0 ÉÌø.Ü;ŠÐuœ)¤ò\"ò4]ò«¬£¾W£×ÃJ [Œ‚&˹M}1£’IÕž RîˆH‘EwÂ:˜÷ø Ãÿ""?J½¼³h- 3‰z„ùͰ€žÊT7©·¦}ÁÊÿñ³+†æµ¯ûˆ’KÑ—b„ÿ¨T(:T±ê'CˆX#Wñ¨NÑ0韹i´?º*lMþÿçq®Lh¸åÇuž—‹eø‡€z`Ó×|û)ßCò°btçbµcä[ložŽÎÞ ‹Ó$ÿT×Û kç÷ˆ÷ýÔ)•54>ŽÓgTo¸¬-»Eì0:í?EP?À´ovÿÕY}Âð¼vO=Jd;3¸ËÛ8iœÓÃ¥ @¤ ÷%¼Öc©ŠÜõãP퇈ܼ`ÒC¾YŸŽóJâñÜßt«_I·æ‘·.egAw˜sº…àu¿{ð³R/=q¹äÿ_dmH­Å®†q/èý^x«-é¤M®;b—8ˆ¼E3Qšßí¨%r”³[Ïá[µrQsŠ ¼dʘFÊ€ÈH<ÇP ޳lÌýÀ¼J+ÊÞÞ÷—¸ÛŽ¡ñÁä)PV²ç¹@ŒM±¼`»9-x^úi¥Ë ü©`Ò^>£”x0¯¬@¥½Õ ÛåàCáúêŒÉþÌCpÎôe¡ÍÐ/ü ˆÙvVšC$ÂJ²`§ÇLö2½@tD¦b­µÝ_’œõèP¶ã'ÇX] úJçøC)ÂÛW¬#0TÕ<7àUTê„ÑÆê÷×ñ£¦…õ±g¡¿NÁ}°+õM\qÄŠx!Ý0gÍ/Ró‹Œ#0˜Fãã3 p„`¡çLõZÆ.lûûØt”jÚÇÁ™¤!ýBË™ô¥ôþCD­Px_ØÎúGÔG–ñ[;ø¨¡bЦcÁ7Gt&x}ô󑥇dÌ-)þD)O»ÿŒ9*FPgå>¤5åöÖã° v#bšÞí%ßëOg ¶&ü€9îhôT8W|Òk]¦¬f³¹¶ÒÐùŒøó;ÅÓmst”#8Î/w¿{%E,ú(Ú •ÿðãÞø=¹ ødûéîrÜgY.”TŸ/â|h1þs’IúaÛšåw~ó=~ó«Æ“VImö•úRí1Á’j/'rÍ_÷šÿŒxK_CšÖ²'§•£tÔŠÀõÛ—éÇÙA/¸ðÑX³˜ýN•пq‹>"þñô\·¿ÕfÊrðt”€­yveV8™EâÑ¢’w †Iª×ÓÇ – 5Þ Ú8锸ÞVÙÄÝýD¬DŒþžh%Bh¬dÒD”çË£éºÂƒšòt¤A_‡}‡Ñtå¯e5*Ô+ÿNi¼ÿÒV‡z—õ‹}Œ-ÐPeJª;ó@,¡ +)MFþÅŒZ›:'ò›/p„ó˜f#MÊ‘'(¯H8bTo1„|¯¶ÒçÕ1•ÝïôþUºÏŽ­êýìÐig°7«ÌÐSÓ6Eðw½ûðB¶^±‰Z¤×;jj IÎ`Å9Nˆï4{ŒX=ž?ãwÇÕˆ{Ú¿ð³ø1ÂUß÷C€þf7<ù;ׯ58’ËÊ3@äq‰’ÌÛ»­Ol?§4ªXLV‚Ô=àÇ&/ +?4^:œÎ°gô$vµœ»¾ò˜Oe)g¼>&»E"Ep9c‚Q€pµË`°ÿ±¯DÆöNŸw:c”gÂ8.¦÷öœWm‡•v4š«:^Á?î}T-Ÿ¬$ ív!¥À ¤Š”9OêÉ¡ ÄL‹ü€äÇþæ:Æ=d ­€í˜kÀ6^ýpN$f"­e‡¦ :¥GÍäÐïLwÔpTMÔ5웫ÏghdÎ`ÛQîô‚jÜ’–Gò"¬cˆÜIÕ¯ +Â:–\èô}RèÙdó%+9AtAn‘àò§ë¸12¨$âH öKµÅvñž¥Yg¡ÞЃ{ZXIee€¬ô´é@[µª«íq9°à:ih-²„\f¶{¡œó—™L™…õ¬wí‰Ô 2„`žíl£·özÞCŒß(ékÔ>Ÿaܲêj$Þl`} k?Žŵkzk,?²ºìCõéÈãž~¤æ‘E:~þ9 üÙ,ÃDÏŸ T¤;{YéËIý®è³þÝJ±ëë•àüUÛÁ\#W$¦fRÍðMî +锊G];¶¸#òõü`æƒ/ŸzP2>*¦8ë‡?׸³[+FŒ©uØ•¿û`¤…Jêüݳ³B¤Yú(^Ov“ûòþ°ŒSóFÏÖ +76o ŽÔ<ø¯›\ü§XhxŸvc¥0Á$z;k™qYò7s´Ãʇ&+ü¿ÏD=ÝmK%yW PÓ&ªCw"$àÀç<þòB"d†[ùº\÷–}YEA@¶$•øö‚¶­I|„0•+x Vp=èŒÙqàôýƒ¼1ß“²?Çžæèß/ÉýüX™1B´ì3Â_qäW|a.ABîY'ºuï¹Î‘.*›]Â$=‘Òóƒ[ æ®.ßãâHÑãlŒÀg”ßÈÔ9-³”"“îÐõ(ŽB g¿ërÛ=`°zXû:¦â\Î}»¬•¦îòmú=îˆ:â>ô ðJÍE²þ u¥M^iiw•³ž£½ÛþT¦óõªΠ+ÇzÖÆ~ +Îs{_Ìïá8§ ‚@ïæüLDô'€¾ýw’HrçQN·1~Åû¯ã߯Ô)ùà^#‹ò÷+…´TýxÖ8Èd{‚Xc 5Ù"ª:4øµðõ^(˼vv­ê2ðиÑÜèD2]㫊õ¢³~ˆXEÃà÷û‡0š€¦¸æôÂ’¦¿‚\MÇG°ZÓ­½¥ý¦3ôù¤¶p…þ¥¾=Bô}D…ø€¤9È]ë/<Á·˜oÚÚLó/½sè†]!À9 Ìrh¼™ZQ+€ìHHPšÀGŠ‹cPøÐšp\3“±ôò%‚Ò—ˆ/!.‚ªÓp'bÄкÑGo5•aô—óÈÛc*Y³˜êý6rQ#P{¾léŸv.ŒCO´XmŠ|ºcÄ +Ëö¼&ܯþðŒRïÀüâ–$HÁ’½«—u¦â3SqQˆ;©Gî]MhªvX‡ŽQ!Üö‘b!úŽŠ´çùá8ÐCµ¬.ºÚN­£ ++¬ÑFáNG0Ä”ýÂÓ3²HÀ§ÄÞqÙ`Bus»¦t¬3ãÄ÷ÍÇe݇ÔQÓ¼…ðØ™†Bnr‡¹Ó} é9NØÛ•·È*Ã0KO ÜNŽ+=¦ÀuöÃê¿„=58·'" +õu?_P¾”_*Þ?§u¤]ÒõëEõÞv6#±"^VkÃzñü*Q û§úõÓ–H?ÊSp¨Õ˜^ñð…V2U à+±èO|VhCU§-ÖãW9 „¾Ef߉†,p×Ãpm ;¹:%JÅC3ÁŸ9®V°ÝKO +­ yŠòuäøá„eko?‡ÝÊŸ3‘ŒÁ”·†2ýøT\Ù¦úð@Äü=öÞâKRš¡ûêÑi¯péƒí½§ÑÄÝ«™bfŸ€«”$ÝÏz{Ïô=ŠÇ̨ýL\€__ˆøt¾-ãø4´ëbRÌîD 5Ð>#r¦z ²8láoǹqìLßKHæ­Ù@)‡t:%/Þ—üÀ‹ÖW÷¢¦FTÓñaGÕûDí5êߟëyÂ#¡e#X-íd>ìóÞp<Opt>í¢¿ @&Aù…`Ûü]»è/¢:²û0Eµ–Û®x³ìÐ,´JTwfáÇ{gÖ_§}‰1Þaú±Ò‚áÚ8)X¡‰»¿”P.ÙEÕj©,’Êç.›^ò÷¨½nÅ‘aï›"<Ç·½;¦£NŠà¨t%,¬—›};×13ÇÌàõžïG ‹Ù^“Qw‹$sO‘eQ¢&ø¥ªö”µ€èý^µfdüÑ¿Ðí‚› Ž¿ª¸û]ó Ôa¸/þ.OìÛl-@; åú†& +ÓZj/JAý£á±Cy•”_@Yða—t7Ôß ”£žÆ>:ÙgI7ZªÊe4±ÛïZSß"^S°Ðð¨j¾GAÑR»’ó íuçRû|€aÐWûÅ=P¯ÙðÙ«oœ¦ºÎ1i.ÑT{‘Õ«Æ#e?)\Q;Æv*ÏÌnú|:X9­ÉéÝE¢³ Háåzâ91ºŠç5{·ì± ùçavMPŸÔû’~ÿ/<Ø…éýø=±ÞÿòŸö™¿ýëÿî·ÿóÿø§OV~ûïÿÇ¿ÿûÿû·ý?ü»ÿí?þÃ?üíû/óïþŸ¿ùßÿö¿þíü‡¿ýO³ÿ §ú9îùÿù¿üÍŸþþ¿þó÷ÿ×ßüOÿé?ÿÃÿüßþþÿý¯qqÏ×üJÀÿÊÿÝOÝþ2sÿï/õƒjÀÞ£Eß`hY?^´êò´‹¢¿;QâiwÖg~FUuÖP‚ÅLÔŒúþtàGU²J5¡:r敺–~ˆxí%Äh™:¤¿UTüfz«”½Psï¤F”×ÞK.áhŒ"îÌ+Ö:‰|ESóÒ£Úä#ƒ%ªí›tx/ŒFôLj^ßÖi÷-gj$Bøç>F/g2òœã ÖýOÊ`ß;—*»öáƒÛòïlÊ@዆Ö×@ú;‚¢y&BØD ÓØÐ¥ß/òÎV <ÈJ)FVËC±]ÑüØ!û"èñ|ÊSUÈTØíék}GÛUüƒLú‘ÑQeà†­Ê÷T0Ùij@ áÔ•ÞZø;kêkü[èý €ôŒ Ô„ÞÁÉ+HºÀ;ïÝ+^?JŠ·½»ýk쯢 JJméÈi‘LiPïß‚í@!ÿFñä ð\´ÕPŸ47Fos ¢iA¢j„_¡Ý€Õ ÿ.ំ9 + ¶ÿ²é‹@Dèƒ9Ðýu|WHÃæ£üÖ/’þÁÈubiCÄ.¿zÀ-Ks©\ÛÒ¸ÔW"O˜çðwl,zP³‚[mÒð»`®U1Œeëû¶j‡]òo#Nœv5Ëlï¿sÔbÓòcUåïëo44Ø›Âe˜vN Í;už?G`rÅÏ b¼œÃ²†¾¬qÉÙ‡AäA÷›ý >QÀÅØ*q"ÖW€ÿ×ùù'à:MùþWOvôý¥÷fßâ,0X˜½8ÅzÄ­"ùûMzÝUýÿDÄœ/®µK²Ô(ËŸ3!ôï(^§=‹f‰W4Ö£ûŒ‚—T4±¯ñu¢†Ò ,Ôqd¾•wŒáaH‰Ø›î¤šÐ‹æù“ˆ)l (ÖßΙ†Ð6ìk{DØV&ÈÏá TžŒFФ†ýFXP?#ÆÐûV·÷7ùˆº#õ˜[ n^Úþ l¦À¤v•»öŽ‚aa¹»î_I˜Âß#<’xØDìׇßú‡ãhHAM@¯šew¥¦OzÇ4ò‡ˆŸžã PŸû†¬øM>à‘I· ÛÄQà‚çÿïÀkÞ¯ËÆéºN^wÁB‡¡g— ‚Aý^m õœþÂ}¨HúÀ&é70Âô.¢È|¡"5Ös~À&°ÿºk,D¿Ky\pS—w¥¡qÇër°i0?¼uRÌ–áC;¼›‰P6}¯oK F"äð2Ö+ÀÄ& â^3Ž2Â@ÆQÍ,B׉ªgÄ6_~õ®A6¡U`õtn˜Ùב»ãn»#çrám}F¸ˆ–M?è~ΟŽS‘©šÝm F,‹“ŒåJÆÒæëšydzRüù¤Ft† ªöÛqRŸFíg´{šD4MðTxNò4“<ýóIØ›.‡çßÊH³«lÓ®[LxÖÍ*$ìÌxPm~Ö¥n‹uj¡4ÿ­Õ#EiX.ï%{Úô ŒøÐr |íeJØŸŠ,z _h¦wF€}+à™µ€Ž{¸ŽË›ÏM1» ·ûÊñ•ÄD£èvƒÒ‹3‹÷¶"þtÌõZ.¡„]z=¹’@¯”¯çYaWz/%éKPä·4„}¿i Ã0E_\ÎbJ5† ´šÿèùÓy£"‚lLû•.´!P‰{”ÜJNw¢pöÅRü¡GÖYÖýW:ŠjÂß«þ…ÍÜ™ÈÚ5¸³FT “j2¾¸¼H,Ιˆaï?ï6ÛvT4P@ÍÐb)ÔZ¼J /µ—[(•wqgk1=ä6:>8 ŸÙëFª1J ˆ\ óhøD¤~ÙËë–)'t“°¿2¾¯ßSµbڛ󠥉0 i*˜Ö›“á +e +êÎó‹N¼£ù*"Ò©ß|…aMÙ×ãZ® Ú 2ØË¹ÂƧ§Ù‹àq&¶òyí÷3¼ÍÔ¾¥q¯1ØÞ«ÛŸ›™-Ç:ôyϾ÷ĺ®vtq«-ATzïöôøŠ¢ý ÞÎ>ÝöH—ò¸¥} È÷‰S*»sÕAøûQp–gf¶Ÿ«¢åÚmºÅu 8“Ÿ)úrôïŸUå½Åz¦ýh)–ÐÃñ +ìŠá  32=T{yŸÏÒ=š%¡¤¢-Çà®Èäzü²sÎÁ}ÿô´ø«ƒž.íë4öðúåÜÖ¨¸öÊÄÓã@y°YÄbÄšãí”¶Ñäù\´"â¸YÇ#íýêy ‹I`nÊZ±Pœ$JÈNh‹ŠXn1ˆÈ±ì5õ‡€çØR²á¼©ÚGÔ3£5ü(@õxÁHñ¥+) XÆpt`a8ØÑÞq/ÆEøÃ÷ˆ¬V-ôܶSt±Ç¡yb³Ï?횇Jø¼C ˆ@C–ý”orE9­³iWdøRz™+xd`TŸŠ ïû£«v@*D€ØOâv5#È­Ï7Ù7€M¯c~ +, J -¦éXÃ{ÐIy5W§Gy­tÚ\u=Á´­«;ȼÞÌûAH³'A+æ¡ +fÙ8/ƨï[^àP‡}ißÎ] ¿8]Fï×|É]LÿA[£¢NÖÖkOéñ’ ±òéÙc±tJu7z£ïtíVÈÙ®é¯ó×XÈ;Ѝõ+—9\m»ÌØlW#Ö4_DöWôú£þùEN»?’ûÌë”D~–Ù»¦s<¼z×KGšnfî Ÿâ’ëúú!þòCÄ–.É‹XX uË×S´ +º°n£Ô<ßx b€¿Ex¦~ËõÛéDåöÃqzQYˆb·>+øÊ©â# Ûšì`0Éí#àò;zÐÂV3§}=ˆ„àÃ+|8¥ÕÿcŸi°"jV´…©¢#ö/A«)åF<È“µ"2ôdj\Ë·¦@õ÷ã kàï ÙŠE R/@¸Ÿ ÷~¯¿ˆÑKù‰—221?Ö&5©+‚ŒÈµ®¢óŽï0Ì4É>"RT?Š÷ï;\É\~8ήœà ðExÿ\-ÞåEù)‚Qm‘ø¨êÞ9Ó÷(qTì,†,:͉VÜæáH#ÞçmÚH¡Ýrزyœ7‰AùÍ Ç¬Ñïú€‘bgxAS€®¼fÁ5K…FÊy@-v|".u$µ-?e¿ÿj±N3û≠'-n¡“ÁjWw~Oäà³°¶¦„ÔáÚéa4hÙ]‰½ýõj$ª l„)%i9ß(™S‰¼RNTdT€ïØ5pÏ¢R´#>È8ÐóF•KÁ,}ðYó¼éø\t;mŸù•ÉþáÏ»îšcÎ’$=>Í8¤´Ÿ–æ¨Ðkw¢òÿ#ê*°ákŒÅéÎ +|9ÒxG}b7¶“ý»~Fäž q_L—ú8ÚÊߎód¢ÿ@Ëw·’ªô`Å/~Ë åœé[”¸šóËëA}I G«¾Ó–B±“¥d¡Õû‚THýŒxßÑ´ñ=¢)y¬½Ù.BöJH1Ÿÿl‰%ƒ7¨ùö:¿G­ø ©[ŽB2Q#§æ^ó÷ydÔûãÒ¾¦­®ï¹e·ú&ÀPõ‹ü<iÊ¥ì÷Ž«ý¤fã¤fOòT+XMÎ_$ñ—ùu•<¤}yÚûœÂŸZyij]!;„ñ´Ÿ¿š*§’K5óÎ1lª¢z÷œþ+QˆºBg/˜ä³ñZÇù|&F¤?8¹»ñ}‡_ì1Æ8ò°GÕÿÞ›`4èo{¡¿ +‹J£é„§€'Dº…´›æ +U@ÑÜ"Å”p±KWäù‘ä£È 5•Ìõqtƒ’ˆt;à¤ÅÖgù)âV& yƸ¿Ú¿ŒB‰·‰ÿ f%}|" +lYUP(˜=‚ ç«,¿ìˆмã]Æø¾Iâgœ Ðò01žñ¶µæI_W„}ƒÌÝ‹À“ÆÚCž ö¡½Ú ~hþª‡.¾ô§û6P+ÈaWQ޶xÇp®§GTK¿ÎOáWç§`Ó ‚ÆËŽøÒb“`e ôÎNׯRWèÈ_±G]g³ñÈfãîù=œXsdÄÐò<]Q{—Çiiü^›Ã8Éÿ}d fÑNÃÖ]p4}Î_íä}ž™=~ý#G+»¦Œ±•5^ f ,‰Öl6-öWOu§(›T⸠èr¢í`¼ëXT¸WÌe(0—éúÞÔÓhE?­ëaã5îëÊïŸÿù¦dR`¹ñý ×È`”&,, ¨)÷->"~Ü¿GEmäVF‹_bç– ·#Ê¥néÇû–^ïJ‰'áÎø/6f‰iã™3]ë&4Gä;µG2ÙØ>ÎuÔÌ*¤WŽs!%K7ž®‹ó†šÞ PÎ5qƒ’EưúØ‹TÙöâ€)OyfQ +©Î‰÷Q÷Gð}ð6“Z–n´öë³ +|mKLj3H¿€šËf@EšYW:·Bvé…Õl]~ø¼ªÖRAáçÏí–!dÇ9+y"æÑOÄsDü©†ˆ˜óëD +˜0Tìwtì/ˆŒZÐÖ4Ýü%áˆ÷ãf +mÄxQ†m¹é”'ŠÏQŠÌ™v’ÆK»Š‚" +,§ýZ¬‹ãåG-ÚZó‘áß¿0 ±rÇÍë:èƒgH¿ß ];e´j\‚êÀ¤:Ou)Ýì’G¿§5gÂÖÕ8 £‰zD ’ TO„`8 è†ÊêÖSD\¤>÷;é}N£Òl?Tk¥aðb6MÄm ê–±¬ÆŒ_ÀšU¶Æ÷Û.[{¾ìM¢lÜÑŸ’ü£l Mýèï÷–¡~¦ºÔT:â±Ð§ÙZÍç4ó¨ÈRÿŒÈó-mû<Ô9ðd yÌá¥(ÃâXLõ÷‚~‚ƒíú¢8e{³å1]õr×¹\øC³D0âFJ—ö×…8?÷œƒBEß"þ|PpN_tnù!HHTõP5*L*Ö;ÍPTÌØåA)a‰+RKvêë¡È€ƒZ"½˜ÖÓWÊɤñC„¶M ÛõôÃg³Úý×¥dˆP‹‹\ ^€.@SÍTêå;Êá(B©ªóý•GB;HЦQÔ*¨‡7òì;Î…(›5 Dø†€‘žw"§ïˆ¨LÌ縢ú?~Ém g5$8'”¬Ü37΋§×Z$ãDP€&&Âr:ŽmáÙƒ âKèµ>!¾î7…5¼d“9¶˜ +ÛÑß»äåÜ…}&¦Õ¸Áô"ž!keÄv¿»…RQÄÿÐýaKØ+n¤–VÔ$A«¯+J²¬!*|DüùäJª‚7ëúÃq&ŽÅKPP¿5*â¸+êêf÷=eîþIø‹Ï¢5Y£5)T x×cßà„þ}àܯçâDõÐuâ{Ä×jifsS†íûqm¹Ù¾XþFôÇ/ýô*Ëâ~6ë?îÓÎíî¹Ý¯¿7Qf%?uy…ÈF¥@³°#‚- +˜Âpx¬çL&6ÏÄîÒù ÛýëLY±ÏèMA3ø ;ê*犑âg³yTÉ”ÇH@½S©[´Œù¬ N/˜å‹‘À‹°ºß½¿!ºOh2Ÿå9€'#-؃©^À$=ØèÜ•LpÎó-H‰ÜÑ#‘ `lÍS ùÿÛx•É+«Aûáa¦ýbãhqB輕àûv”0ÐÞý}§ˆû ŠÙ!ZñXÆ»ìPJ`¼¥2^OÀò Ü'r!á €Á­©iz#ÐÐçñ2רeÂd¢‡l¯4éIQqX/o©Ç¤ƒéîʈ\däÌÆh’5œ<€4%)¦Ð¶+A>* ’óÒûá[DÐOë@˪àÍŽS›Ã° *5w$²òÔFð~ ¿]ºõ3}D=±5Ü‹‡saX€ú÷µì|‹t4¾Hâ1H”üNªÜ#ʧ´ÉÃxãŦ5õøÂwçCñÆÌeúôÏí±u&Ø¥q^4 rÓN€ú:4¢¼öÂs„ âÉ hô£—A~ i/…,6›:Æ;"δk.k-FЪ@¢ám¢‚)Evñé‡ïŠ8éÍœf>ˆOû}H(àŽÆÄb2•ü1e©÷k||Ø•…©Â½1 +€õÝòn:‡@æjxõýD\0ÓúgDN°’6(*ëÇã윀ð®ó‘NñúU1üÜ)ì’=xž+ÙSÞuçÙ×éÁí¨àÝž£­ö=êߟëq²Ø/–Ìl ÌÙ +@wûFU½•²\sâQN»cèÚ?#†x-Ö­½1Í—øUV„É=ÑžÙóay 7­œÄ7YÙ*†ýBewùÿYx– +­ÐýÁûy•ŽCóV,RµŸ¾¢Å˜òéƒøØšÓ±þ…½½´†½N8ÊE½×,ÐiÀ ‘€j"óñkž‚2kÉ”R”lv^BON“ÂCP‚ +hy! …Û€+D|^PÊeÆ«1Ç^&{žõyC¾²¤ 3Hd.rºc<6`À°Øà,ÆÏLäy5û­ä í¶ë™üŒ°V Юˆ'ÐTA2fœñË;PQã¡«*¨ÑFùm?Ð[¾ÿs¦4+} œœæAñ³÷ÓöЉ®£ ßž?DàÄ0”ß—v–ÿϨ+"pQ¿º­ŽçÝÔû¸2hƒÌ꜑ÄfWä®q$g5ÑàeW=åLïâGÝ€ÆÛÖ"ýyˆþ‰’ƒÚºÿö‡˜¿(ÿ“Ž^`ŸÿžtÞŽ©Y!Œš¨¸]dÎñqá)D”RÏëA8ÈrF¦!íÍ.Ídûa^FHK¨HÔÃ>(ãÏò*)àó&¼…qr‹Õ“hÅ 1HÂAÍeË ˆ/Hw±4ý0ÌË.]Û“‚µ*=¸SG@ÐÑu1£+Àü˜¹xäýÇ—¶”©ŒuÐ UPÜ4?ð’’ÝbšBöwǧëJTýL”ìA•sŒ[‰@+Ç+ñ "y\%œ1 ÈåC`Ú—ÏFvŽ?Õ*á­vÔ ùñÁgWÆ 2óäƒr8†[4õêF'³ÑæªÈÿCŸ2+]€ +(¤ù¡µ]¬Y!P5óaÐ]"û8NæA*ñc]ËhšuJ#ÝçH?ª°ÊÃTñ•¸&¨` ŽM‰&ÿ]ìØ>îÜ1 @ÇâTˆ”`ÿe'$8+K¥D© +›<«*qùÊú  It®*ãʘö#zUßÌͨë|¨Í퓼—¦ýî­ŸˆåŸ_ú SñMmø¡kpÒw£b#ëb®Ø1Þm÷ñn»ÆQYÂ.¢¾7P);:à¹÷ÁèD£u%ïvj)ûb)¢Î  QöÒ0Ï –<×'qpuÁ@žÇ¸sF½ 7¦¸Ksº`óh°áýO$ùwbÔ»¢Mø‘H‚Mi*Z7Ê9¯–ù“f‚ƒª¼ÞÌQ¤¿_Fh%Ò ö¯¦‘ŒÔ¬óû9™˜fz‡u «š¢ª+ÏÈŠù]5n÷ËCÿÀð‹© ã ìt[}AÍÅm(pF- +5XÐP ‘ÀÆZÆv“ïr(®ò@y[΄êÿ\JòÿBƒˆÕÝ/D½‹Qê,Ìu¤ûˆ@˜It3ˆÐbG ‘)âoUsÂáÔØ"Ü_HÔôDnp0JõÖ¸”;‹ma Ø(ºh´óð\çí"(á™lUø3ޝr'¿n/L›I2ùÑ"Œ2+-Âx~wF5‘i~xXѧªùJÑ¥C°{~6XjÍßñ9^•{¿<ÖÌîã¤sSö£0ugÞ0U×èžÈ_í¡§Î‰ä'¥“8Aß^þö¸š“gÆ@ñ wnCöz»Mãµf½ä2~ƒHMW¹r¶ôÓÈ@%v^dÞnÔ~ú–sêHœÖ>Êa´>™Q;OÍQ¤îdƒï‰‹u³BÉ["œO$èK$ü0J×îIÿG7ìê¡ ¢Ïa„|è]öè¼DÖ3Ÿ›9‘_tb½¬ +gM·¼Ë%eÙËÁZ˜ÊsØ•í°+y(ééÜÏ:êu¨ “_œ¢6)jž7BÛd––Û‘¿:iyo¨Ífî‡Þ(4t5ãåŸ/ 8ôoF4YÙ§|aK#ž8 ËxÐ M·õëc+jÊСƒ†D„ªÞ-ˆëµ³/ò[’¬mIj®VÒÖ ¯ë4ùU%ìÕ7©O_qDNª;nHúÄnjúdå;Ž3ŠWìæ˜¨½©ßÒK :XHþE&öÁ§ +ìe”²ô눗š¢ä†£è¹ ¸ §øó±?$£ý¶&–yèŒ-o둾zX”¯?âêßÉ(€/·ôÀ “Ã?¯Ë#˜ï:"΢‘3]àþ]¯¢Vù—™Mûu¢lc¿M+^y8âÛ–£ñX±Qòs9+9Oäm§¹qýÈ( p\]d»¯3àÜ +TS9"Ĉj”&r)¢$h/ÒD¬b•Ü>3{˜³¤vk’ï;«‚¬ÏVƒ<…¢óI˜¥y£tx‹BDš#yR ¹7ꌗ®þIÀJj¾Ž@߇-1?ä5j;›ŠÿIÈ^M÷ )ØñžsæZBq"þ¢ã!Èä2F‰`&ÿݜڊ;W`;/zxF§\ÀÕŽt§*–ö›:#Ç€Ÿè#{Üo˜ú8PL[¥íz—Ró*Qâèh¦üá«ñ§¿âÛHï ÈûӅ‹o¨ *TÓOý»…*[êX#]Å`ØCs>ì.:½ŽƒÓç­Þ»1)$5g„Ý"« ûû‹…š–Qæß*Ü¿›æ¨M8˜WÝKY04”ç&ÉØ;(¹¸B2Šw…ޱÿÿúò]ŸƒŠA£¯ÄBMèÇz$™îzØcáô „¢‹«Šð2´Ó…Jvº£ÀÖ…V »ŸGì˜TŸÆtµ£lCcïÖ ®‚Éâ°øâ0!G‚— SBéuÇÓóâWÒˆ¨‚:Vǽ¬%±µ§·£€ÌÊA?©G„)ûýž#ÖTŒ`Ï0B™ÚÛÙ}”õë<”mÑc Ê‘6ºÌ +ù«ëµz*±zê- óþKæÍ‰`½$âWá÷ & éå¡ï¢Mrž~Ÿ¶}KÛÞôŽ[ô>JF;>]Çu’æß×”j<§±Ù÷Š7t»¶ï¾D£ªg—YãLÒí«Ù»­ Å¥î2%«Z‰œ’Ÿïô^qwvb{5½é®×Lx  êËwkû`QÙ.G4£Éä°‰lÒCYüèŽ2\Ø5¦»Ê{¦}7'ð÷¤Œ¸œ‰RDІ®}£þ¬ë8\Eçj&| é °<å9•«<Ûk§aï¬BEÉ!LÉIS±E‚èi{¼5vC›†Ý'B­n¥)ö„»ug?@ý½ýš> +ë"GŒÂ.dguº‚òØ©óÕOÍ-Û—ùœ5L#­TY¦+ü÷ýŠE £'ZÍÒF-ŒG˜P™w†m^þÕÏYù©8k?_‹<`¨×*Fá +ÖŒ@&~%@aöÁ@xmØ^NMœ*rEL'JÀˆb,¡žþ{Ý2Ì‹3w–OÏþØ]¹0QmΊ˜ûÞø¨ÎªbgȳöŸ°—_Ç•XIeF\”…Z2Ç#ªòK㕸2\‹5àŠœ-*‡\­N–{L ÔWÑRk¸è#>ZÌÉŽh´5e÷ËH¯}¿Œc™“^¦i@V—£9õW&Î=Í!xŸå@'oÕÐ÷ŸãCA³#zÔº´L¿£óØÛu¼_2íÜ—9Áγ S—Ò!ä«’AòUµ°z!À7iYãýÓb­G¬ç÷^ +½w1¶<#GuÞHü3XN$•ª Á­GFÚéñz¾°ºUvþ+86º„ Üׂٛ§ŽÜ9Æ”ÏHv¼Ëü-Ù¡VÁÎi”%ÞqÅš?1ä5Ç«­f͚ň"¹à™ïš»ìö.×'»z*ø3ÏSˆ,nPïPK ¿E‰¤'ùcRÉþ.UÁö½bý®óˆ¶6»–=ÇÅ’ —©×S†“w‘\™dDfw&¿wH$Ìàè(œ~Ô|Ÿ?LmþšeMÅl„Dwß±4¾¥®-ø] Sš›H†ˆó€Ä¥#8_qpêNò¤½/Yx;Ÿ°—¨@÷w¼ fª› PRƒKKÆuhH=à¬?Ÿ3í +”A”Dµµ'ÇÀ³–#-Ô™§¨-r’µò2rÐàù}Ô§Q}•C\|ÕñÜ?›ÌÛû\ñŽZ-g2¹æ+ÚÛãZ”ï Õ…@Èé4:Æ­fª÷ç•wHôO;ÚI3(mV¿œ£øÞ%×gi¾ ™àñy‘ÉÊú0ÍŽ‘×ûøÓSº¬DD É–T"´Ô Cú¥«#ç¾_·j ô©R¶A%åoOúJ4¯¦û~”ÉEÔO1ìŒ +3 €ø ~ᯯi´\€9C2E\œ4=+ÍìQ;°ùªåcª;ÐfTã[ú2ñ€ÓF£äÕK‡ÉžgIÆnàÌn¥2vÝ%êN)¥ÎÏ.Þ{ñùŸ…Ðs£ë{€ðh•ÐP¥‚ u„  ±ˆ‰\Dz±èÄ#5x?‹;ùo‚«»$Ÿý —ã`¬\²ÒR{w[š¸§¦ dQ³÷(µ(8‹¹ëFßŨ޼M%ë F¬­^­ùu‚ì•òUCÌ)ÀÒö#6­â¾Pá)¦z +~¡mdàè#¸&pþàšÒ™/‰眩“Š’­ØaDqK Õ××áÝO›S²|0_G³³¤9erFë:õ8qµòhêŠuŽ«'Ê_wýïpýbßט—#›²Ž3l¡xœãßJ4šÍ§µäp 7mY•šžx \Ç‹Q=®þ-1·6ÓÀGñÁ½¿•Ü+†´™yÇÏ[2??Y/—ÐÔß©F‘ +„e œ#ŸjÒ"~QF½]6ÑÌöYýk·é Ç!(ßú˜ôø#ÎK…°Ù1t³8ò67éõÊâg« sŽºeW|½ü¬ã5>ôÒÓ#Üϱ+ š®ˆ¥«r  ðã’q+ï3få6*ü±ïÖtê{ÇHÐáÕœ¯dߢr¿ó%º^óè>4S;Jž{yçe‹Û´:>ýè"ûÇ|r_ÓÌá†û«òÕü­\i+ï‹Ñ´Œã†WùmâÉ endstream endobj 56 0 obj <>stream +g.O.GÝOÁÚÅ@ª$¦eqè³?úÄæÄ(ŠÝiPWÐßÞÏ¥“&,Û^?3Ÿ†Ž[9Ó¤,ö'ÌC×áà#PnbiÊÛ}µoõZïÀÙÌè HÑu‹䤾Ö]ü5÷%c-zšÈÒ³ +–лà¹DíÔ‹9\1=7bšo°˜G›'ò Qøœ@J1æ¨ÙÚѦӾÎ$”}Gu›Ž`;æ½Z|í¸CBl@UÕ¨m‰bœÃ+BÀ7Þ:ë¼ çˉž¯z}¯¢àß}#¶^ÁãÛä(ø‚µÙ.®huÛ#Ù%LlÊ)A§¢UóY¯$wO“Ùòme<7žU¥§vèì—#5Œ®Õn‚8²säòÜ¡C9X‘¸»üEØ=Þüë:U„Uõ`±•‚R@‡šƒ <ík²X+OŽ£½Á¥Nþ~( ÷"ß¿N ­ûô5/”×ÞGö:û(" õ(ž&¡Oz£¼«àø¿Ìb¯¸²––”Ç­q¯g¦¢*ü¾Çö‰lÚÔœá-…ª+ñ¶ÁÍ`·¡@ñÞ¼o·CÖô"å ÷zÀJh_/úEop?´ôí"D®žŠë°ÕÑ1ÑòvÆ…XÛú}ÿñôüdê £1@V­HèÁï,2žÙbå=îj³<£¿NI„Õ#j3¸l„ÒÞ×QìzÂÃЇ]GfÚˆõFà_LÄ×™$¢Ðô»O„N®¬ý×™HºXi4¸¼J¨3a]mEÛâXID¡›ÉÅÈ¥H*F1s±½çaþLKhÜ# ±ëÎaŠtfTö¬š˜*tøÑ@•Ñ%2@•wᥳ”¥P 9'º§Î*Ip¼âñ@^†ÇƒöçÀÚ¡ôÍ]c.\°"½Jù§Û3LA+`·é]11ý"#ùrbvt!<Ž‰Ä Pd´KŸCÿ¯Aƒ¡š\Õ»Wè—ÍÆ‡&vc˜’¿ +ˆËsK‚Ræy?OñPès ‹D‚I„)4©öÞ Àþ^_ʪwª;5wpÈúÆ•‚—ïT‘>bóçMy}[€“‰RþæQáOÂþ Ôé‘úZf°„_‡x[›"Ÿü»°×‹Î^])ïîx¶–ÓWÐ^y±½z_ú­>!ÎÓ/¿ŸNÞ\Á¡–òT´ÐY$Ûb¾Þz”v„Ë“½Žegg降fU™l§ 0$`½»UÜ-Ý‹O<èÀÌ^Û1F@Ûó¨Ó6bǃpç¾I89⯨!4°ON”f 7¨¹Ù/A¥°ù]–‘b¿¢¹§)ѨÇK ìÓäC=Ìø° ?$Yð¯¬[ñA]B„ÿŒÁÿ g ÿŒHÂþÃõÖFj§(‡¶6¤¯»]¸1õ€âœ–+”%1§¹ÞÆliÓt‹ÅY uˆÆ($ëßüfœD©2C[m*’WH al xR~ooú0ÀuQsbLµço=¢Š¾#+$u]"Èôß3]ÑÜo  ¢é/ ‡Œø@€^¹!àŽ-€P¦&ίóçDÝ ×>Dy9¯ÑÊã¬ÒASwëN†…ó©««îbÌo¦ÂùFÊÆU“Ÿ¡ÕZ£¬ÚðÍÄs¿™`Œºô&žÜ\&ç)›!— ^d¨{µä™T©S iyØ ¯åå2Zé#Ãia?…èÍ?ôöµªøµËÇ'Mº4Ú€E0|D‹D³I³üàhNP…ãäÝ¢Ê{Ä¢wI¾2*é´'KŸÖmÑ QYCÔ‚Þ‰öj ÿi©™¿ïŸªE Ã:•v­¦Y°XÕ²¹ÕÏûµµ³vàU£Â)ŠMz„À²°ô k p[Ôw¨#èo¨xŒÚ-¤ö‚EÃaM }äa¼c‰Ñ 6tx×5b¹6 û& &›9®k„ù3ß²He\ùûÛË®%èVJb‚dð¯£xJÍó.?¦ƒ0”/f>Hб/h*?j›¸ëR ØÐé  "ÎPùV™òÐG­F:€¤ZOMKë°*xoœÕ°Ô·ØÔ#þE"÷¤+°NpQE•Eü›ªõ2-oÍ1ìS ¡ÆºJ´ÄŠÓtÈŒ¹xhµ:H²ÓÅmzØ“’hÙpàrÄôn}ÆÁ©/N¹¥(‘„¢kPïËÒ&Pî{ƒW80u»–Ö&¦S÷ý¢·´'ìƒ_ f“Šr x„|# Ñ«:¨7ÝéΓ+,k®¬=­L«W2Žú¦t½T`#϶ǚh[i­ˆ$ή5\BÚÐmïêç‹¶!%ýjúµeã›ÁÊÕ +·ú“û«ö4šÃN^Ú¹wC¹~ÝuQ í/ØßüN>@7Jí,¢@€ªqÕR«}øRÁy‚eCÁtÞDw\b†­½Ë ‚‰ +(u¼D‘;˜ƒ‹.]̓½àS±&ÔL¿]®½ÒÔ'‚&éÖ@]ÖãfdFAg®’T—¾Àó¼Ò®‡xPp{ƒ£ˆ +d8˜DÖK)aºä¾Âwô »‡¿‡ŒHÑ$øÍzóëL"@/O,<§ù–@y‡˜Zó]OVyèUCIÅ’Â&æ]Sú¥ê,Ì?YcßK”dCª¾eÐ…øï‹ÎÌñ‰`sqö:ÿ­æ æÜ/¶N––[hŒê±,y*-ñ¶è+,ñ%Tý#²±náº#jl»>÷“>Éþ‘v®úâü¯(ŠÑ­¸ÿ%{¡û㺕_8nõxrÅ®²3'Î3óúÍ|7Œƒëøž3­yÄÖ÷¥.)ÿãÕöV2k,³£‹OÖrèò5.åÚmÉÃJ4’€L_2µ3=TåîUc;—r<ûEÛM&ˆÀ0÷ 7Å1ô³ ¢2á¥]¦ÂÁò¨L$ˆ1 øW©¢×!”ò`íºøßÿ«°ÜìÌ1˜»ý —¾h¾‚x“Ï1“[¦P\Â~»è,øa? cðu€5j9êã6„º+r3è”+¹Â”K™>~­8ôTLüŒyC_…Ø;f”×}ôÚ‘ÚÍD³Ç‹b8$ ûÇËfô.<úÌ^§NBGò~uáöÐ2pÿÏ­31ØQ€›ì•¤Ò%IäD 9iG"¦\j„[Sµ5L÷?¡ÂDï™ò É^xpÔe°í²\PaÌ/űå}X­ÉlÝß·¸‚µÔeªl=¼úÅ a66ßy×u9ïZ +Š^3FÂØ +†p™ë@ÀÿÃ)d¥VtðkØmaGTÐ+aÞH.\ã,…¦žÔ£nVJ“Ь0h2h™¯ÖìŠ-É^$Ú}´Û™ÖÛŽš3[=ò{û8=Ý’£F[Þ¥Û6 ºB’3¤Òñ*}°ó‘î«èµyÆY¥Á,ŒíwÀ øXªØËø Å^ð^ZP=*xЃyü:Ç7_~Xpâ6ö9&"¦²W£Tž=óP2jæ¡Ç}†™stšÃûk‚þþÍ?éGÿ/<нç??» wª*Ì(øÙsl±ßnÊ™¿;AY5±ÿPï/ƒ¼G.Æûµ4nTMãß×sî{r®Ö>ðåߢMó«b=±:„:R9…¬K} +4ôžÁTˆÞ;œW4ªÅ¡BgûªBÎ_dßµLu±(®bZATÕm†ˆ®ÅߨŠƒÓ™¢gÊLCò>ãÊ1”ˆ£gP^f½ôÎÊÒ2ÐÜ‹.° ©ý‘âqD`­C%&Ø•¢¶0^hF(ªÆ^«"H‰¸Þ ·«F&—7S—+YSĶ‘ŽFŽufXEó†ÇPšÁ‡¤[ý>btX‡Ž\sS Ž[ RñòØâ  Š:v(5’°Uhíùôœ’<•¦Ô.u\K™|a 4¡†=É«Hb‰Øm!c³-˜ Pí5ò¥ùÜ`‰È Çø,æaœ}íY$÷Ü;W=ègh·AõGó| ÉÉÈBà]'ieϼuo,íTvú{dFa ÏosŸtÇëº3úN@·ß¼^“«auK9‰EÜŽ¿TÙwáμ¼b9Ú,i{_+Op^lI”*—3k7›*Û*ûõÍ%è™pF˜,”ääÌßE.|Æf'\Æè*͸Vèë3`q}1Õ`Nót`TØ?Ôü4J‡ÓÄu±yôb)EŸ¡I>ÈÕƒ?‘Ї(zùõWˆ¥§ßëU_G—¿ëô¥¡•¹C¢'fºrâÏKægL1÷gCõ(õÏÀùó×{Ýô¯µßƒ–?–ä}¦oÉOW¼] ÎD:ŒüÐY8?‘¹í÷üê9 5ʈ΋*s;`·¸QíýÉÃHö!âö«ÍýÕx18Ñ ±F*íÌìXBf ­Î—(½„…Að8i7 +f›Çháný§úœHTz)ïߣyÃênÚ†(† Ò´¹™s6su0€s2XÔròž÷‰h'âz Ñ÷Ï<ö>°K.æôÌÔÈð9úçç?=¨Qððl½ +Ц +pSò¯Ò ÙÖ†ajÌñ*M9›ŒAÏLЮY9Gï:;„¸Qf•LÌh¼Ñ" ñ¶Ž€-„~ï$0 +……èS=F~¶ Ô~ÞÔ æª’q0xòãGdUáØÕ}_$>d€ õ­ªèÞõßUÂ\L{¬‚Þ®ƒ~ì%Ê­ î¬-•"4åxÀîó¤/‡ÞqMÀ®’yÕ£ŠCÞ)@ú¼ËKÃ6õ' YÀ~'Üúþ‘.T8øZÚžZlö3?˜oÆî-Ï=2Í)x—L\æå":û«³B”Ê›©k¢4Œçeïm{>¥˜«¤§¥Æð,:ÉþQþõÏf›‡ÿò/cÎ o°ÕÎ8¡Dó%8+h°-9À=TéÕ^§? +¥ ˜:Þ ¢:Xÿó’Ò’6'Ç'ÖâÕšâAÀ8EHÙÕQ}y¡œ^Ùbþ¬Ä¢Eä:è([Fè Ž,&.]Û® 2g€|É™4ß ‹v½PÖ»Z³£$)u‹¯²"jÇKYˆ+hÌÑ|wtŸkÓî™d9wÄêõU•”aÆÒãèr;J¦ç^U}q5çn” %™ ëCáŒA8‰É3O£T0#”¼çËfÕúN’®ìÄ]{´]Jµ+räºr4<åìëŽã®.–‚ +Þ‰´«½W5M(ui„Ñ'¬¸ÉTz‹[SP¢PÀ2@ˆ.ü01ªÏëk†XM1B:ÒŽc&B0&s.+s¢’á9sdÍ¿ˆ’QX"1¹?¸ê9A»Ø™ÍÊlq÷ƒ¤#@žI¡Î{agÇIt/…ÉÞÁ@ã£%n©nÓtEzIY€J+…ˆ?z]þôW|Ee–¨c»_|GÞD"R¬ÑÈË)¶Ÿ„~Ô1#j<"”htÝ2T`{R ‰;LDQ>]hêÄ´óݺ~A|ð'*‚,@”„‘AÕã(c|½²k¸²ŒhÎlŶž?EUˆ\_SÔ~ _û÷»VhîEåMà ÈéÐ +@ ŠŒî9Ó z¼@ýjÚöÕïK¦ÚGDÚKõŒByeׇ™h˜³š#Ì8B÷5s[ê?DÔ*º#â=Ṗ-,Z´/„(:c´[v”*ƒô/Ÿc¬ë:qz"Üá'p±'nì‘å Ñg"XY§¿ó6»âK†v$ˆT›ÙQו㤾’]|ÎMeG,H2¹ÇvA#<|'Ú^¿¦a™@áfwþÕ"Ñ™a^ªm¡£æ¬ô¾»…d¦ï#»(ãú¦ìЦWáמJ¿õqªW¢%pVÑ:'Q׿zNNo˜©ébpYŒ ©éjÃ)<Ä÷¨¶žò•WIûHŒÓ%œ©©~)¦g§XEÐõlïÄÐJýŒøóˆ(Cs¡e®²ïÇq¹´»»ˆÈû|@jŠ~X è1D{ â^Õ±Ï(^ g ³hy5ÏtŠ›§˜Fy×kï…ôçÆVZ㕌!îòBÒl 3ê&gGos´äVgš¶«FRQUO^ìFä®.ÙfdÕÞ›‹nö×™0=*ðRÃFͽ'åLvûvD×Ì€ˆ™M,NJ宇>ކ÷N_Æ«æè–ã-§<Ìè–î®j81õÊèpß:›ø5ú÷ÜûG“·ï‡wzÛ4~Ýô>£®ÚkQ=÷~Ø ' Ǧ«*ÊF~G,*ùQ¾ÿ{äc‚]¸?"¿ÿ5 ›Wâgo'†f˜öÁڹɽ_ÇÖ(¨LcV¼I¥ñ§|2;]"u#ð*‡§%œ£I¸—µú:‘¹Ž[B{ óçdžýZÊàžʈl÷÷Ç©yÚfåÉäæé¡öõ“9ˆÑ4©P^p¥Itî`ÊS¨v Õ¤ò¤G¸Ÿ)1+Џé"~†«Ê±Ú²g;:KÏ;LnõˆLUM¥¢ÄFYMGGøöqôÓê*;–Æiœ­²]ÖÌÙV—jÍgýªÂ†µ ig‰€®F„¦W=‚ó;y=Ã[2n"~ù ‚}º£Í¾?žÜ·Š&õLÌ>ÓQÑ¿€êÚÆÞ'sÝ`“‰e½P60Kw”>ý,k‚[¹€•[«Ê<ß¿Ÿ?Ù}œý5‹$8Jêúì·´:"Ô;rp¯ÃÃ/;­ ;;òýnfG®EšÄoÍ$RúÀÉ舱8yFÿFvÅ\wÅWѯWÈN|Žé¡fµ¸<èp6#5ÚÜì*¾ƒÍãØ˜Þ3²0#!ˆ¾h4QK  +ì¼ü`®õ‹\& +\ô3Çò +@,Õ»§ç>“(b¶Ð¯ãTî£ÛRc=j⨠µ¯cW‡»2ƒbƒ Þ`h6(€mçwWè}N¶é‰Ÿ÷öVj¾ ymfGÑxµlŽ‚¹Éí^µV¹ËÖvÀjK”KGja7/Žü™A÷l²¥¿ôä?ß™R;¯Øíüµ“¨z®‡U‹¨?{§'‚¥5›9&Û9po¿];â+sNP3q¹“²¡ÝâõQ>b`ƒÂ¨Égœõ.„d.}˜'!1{õÔZ'JfWú1„"”HéÁt*T±<³¢Yæ’Äùfù÷ŒûÑÅqsÿúi–Ø:ç…à0óƒvDu&žVWÍsXô~™'â.‡ÛšiÒB»¿3D4%DT½ªY=|ôÔ®»1†…/,Í]X{¦o^ý‡ÃàÇaêÊT¥36f…îi¸ùJp6bžˆçuC{…¼¾¸Ø±ä5ô\ T²+ȃÖÃgÄäGsO$÷PãE#ª>ã‹[ +sã&t÷ã,aaô±Ã#¶C4Ëïìá{ìáyk!Ã<‚\;ß{žøWí»ÊR&ciÖÚ›ÔŠæY6–ÂŽ’uç¾aÍŒ·=³Ž½•ïcV1X·ÿjóAôñ§äÚýñç{s §²«·HÖ¬vêž m“*<òaÀ`‘©ÅfÔëyt%»2¨®D3‡ †ýz;f(õ?'b%B8”ëDÔ7˜?åùrWº®†í™Î×a:ß¡-]a@‡éu©ÝÄ¿Sù²jtNš–pK^t?&{Ûw³‡z*´‹J§òY´@ÕS(Á<Ódô¾#â¨Ç5j£lð„r‚Wø›1å[¡d¢ tË0À|ýèã´¬ ë +(:߃7V=–6éžRNþ®…ã‰xQ{)»Ñ¦x©û»&_ç8OLÒ«`€érÁãwÇuY¾›ñê±)&(¿ý¡5ÙÍ~pç(^sayw|ƒÂE+æmâηÎ]¤Ï&¡ úqÕ÷j©Á"¾Â“ÒlmY²™$wõ@œÇužszX¡¯‚Î…¾úHLÝÿà8ÁÆÇ<¢ŸÕ4¿FÆì3bßR©ÙÈp~Mi®X9E¦ZOïšp;Ä·(¯‹9ß7¨´zÜ;©ÀìqÉR±Ç]âH‘¢“%\æÀ„ò‚Ù mF®ø´N©÷xk¸Ò‚Ý1Ýxg]²#ŒÇ`»ÁžœwéLûâQK戌°-ÚQH­+œ8"´rÑTD ¥KD-ü8ä˜^í~úÀµIÓy±¡|7)¦.\B7à5WþÚnqAñûÎñ£'v‹×›?-–üÿ?kï¶k[rœé=ßaÝ`)χKi·Ü–½Õ-6$Á0 +4YꦭbTI‚ÞÞùý‘sí5箲B È#WŽ1Ç!32â?4r%êaJ°%S¨á#dc‹Œ£‡(“ e)#L}céV z0ef¬r÷œˆï¾A¢6É ŒÃGÄžÜ÷r X%™¼J4Ô;uu¢¨T€xÁİGR_ASyCû==é-*£ ©ë¨tÊ,ù8r(*Oe;H«{šS¡ÎŠ3iû*ñ ``Žt\‰­,N€Ç ¶g¶ãá%&Z º¸C|×mz2 Ê AÔ;j må,`¤ìLMÅLÇÅpÆ&+UL½McÞÂíÓ(YYÝ(»VÐrÊ(çU£¨óBÁSåFêÖ=Ú5*¨GÉ›d8©ãþ zDbTSE5–w1)ÕÔžzð-n&ñ Ã>õQ&2¢D¬©[ÙŸJ¦_˜¦kÔä¦fæ†yúaÂ]âµ^®~­òâÏy¦iΙä)$¦›{ [2 +}®ñîí™FŸ™²A„òã †é¼Mö¾€-Eþ7|)÷1“I—4]zw“­É,DÎSìúa)JL¼*Ã8Ý2¦ÞæRàkøheå "ÚGͨ‡ý•8T¸|ÃkJð“z°¼ÒC2~e›p¿¦Êšïåj})ÌÂúWK€›ÄFìm¤5qî@Æ.e¨Tµ7Ÿ>°›û12{úó3×HáÜ®ÚA"P¤7+ÚriÿØCO±ÛStÌËs'8!š)š6À~]ˆXD«¨aúPÃÚ³{]@¸ó¯q±4«8Ô…I¢½§Pœ +î´Á”²•04±v“¢f"5×h°°îh¬T³®Í¸+K€‹åp*Ör!.Ê~‘ë~êQºù +¡&peëÅfSÈéˆÌ-äD#c å"Ö%5\V’Ø/3 ЬrdÙËÈÇXXšŽZÅ^+óµÜTˆ 1Ív?l@è0³†A!¨»f³SS9Î5ÕÕF®²†·Çø¶DB-aÚ c¶þ\NSiÚn—òžU%dÞ‚Ô˜\*5iÜ~Òz|ƪ'ØìZH‹$xi´Ôºéî|Â|#?)ñ=f–á¯}ÐBe"]§9‡@Ó–ˆÝqVI¸Ç.­äç$"ˆ¬Rà‚}>ˆfSÙObDÃà]†º0Ø9ÄYñÝèÎÙR.zêqçʨÈ>My$}ç,yÊ-S»7‡®°„Ëð]@͈.ì^wéÿ¯Ë¦ÃÉPøÕ¥¬®ì„‡Ô„ämÒ¸ðt@$2KpKWÁ [ex…Ø à`*íw|U]²—ÆèDþ†Nrœ¡‡ÐŒÄž2i•nÕà“¥™óAª× ª2EIÊîû#ÏÛÏ„•Q5ø‰©B•.hêñ†!Ãiy:0³ß‚q &ÖIîH(òRb܉”`Õ=§Ä ³™1…h<ôšäaQ4¾õÜÃ^)—q„¡˜g{1NÏf‘qf´$%¶R…F¬OÍo˜®ñSŠam÷Ó͹<2&Íj‡3) 1±¦[ÝÉm8IÖˆA ÕÌ¥[ªÔ%cÉ%(fèg²v7yÆ1¶6c2Yoi¿PÙÚ&‰‘e4'ïË<…ôÀtŸ©1­ЙôÚ‹:×ãLW@R‰«:²w W;S~Õ!(¬Å@Y}èýfH‘~h2œ®.QzN'P‘GLRMÎö{¶\„)É›ñp‘o³pAY£†2¥ï% r—ÿ¨Ìˆ·¡;“&|êI‚DSÃv¢1%0”«5Éeç5Y„^Ãþ¼ —Ýñ‘²?‡Ê*ÒÜtf¡½ÜÑù(« *“IÉ¢àçcÊ-}õ³ÿ7í}3x þÌ–¾¼¡GWñ[jr·ªqލŒHã?‘&¹ØÑ/:ñ^©ÓÙ$×yB<O~eÐ)ší¿’˜¾è>[æë¹‡Ý°nQ + ¢q?SnH"ÇZŠt˜Œ(sÒœ_zJÅÓÂsÛMXEß +½–À‰‹€Úz•å½NŒþÙ¯gÛäO Ëäo2÷È4€ÄŸ&ˆ~?Õí=OôeÒ.U€É +–í‘'ú¢WC·‚åMT¢%ۇ­&%(ƒY´«›6ès‰Ôó>‚U"Ã*KÊC(³j¦9€/´¦dãWž) >ïlê6Óà «¥{¡¨¢€Zkå4“œóŠ{‡ŠLÁƒ +µÊ0à*°g‹V‹»tw'p»x0ø†ìHY2¹?«˜ÚJ‹J. ¢*Ì[6×CÉ…#¼Ž +-¹¼-ýïwIP|‡Þíù@縀~ª·Tý©ÎâW܇âùÐ<©àqÅ-\fÿ v‚ë?ü”ϑà -d:….Ýw~Ð\í|³º¸ÓhJ†P¼õ-PÕy®€cžz„É€]™àãÝEZ¦Q&’ÇÔ {Õë ˜Fd‡¤(çö!Áf-J)ZZ2ê>6øt~zc8Th5‰—´Hï}r¤œT½štY tÌf¡{2$ ó04‚v؇uY¼ý<Æî‰èÉþ«Dûÿà` —úþžB¯ÿñ›ó?ÆÛŸüéÛßÿÝ×O–ßþì/~øáŸÞþäÏÿêo~õãßýáwßþÕ?û·ßýþ»_ýøÝo¾=`§zÝï¯õÛß}ûé‡ßÿû·?üã·ù›ßþø_þðÿüþ‹‹Û÷ +~Fà¿ñÿÏ;w~Ì8ÿYö£^èLœAyJcÅù"õ÷vå¯çƒy\²Âä–¤ú”á¥Ô7) I‘1}F‡lZw6·(Ó¸ýMZïr²²)ÑTÌ:ßðƒÄu˜K8‘óœ…ïõ¡ó@³A>`|ã@Ûv€`žàt 5/qئ3HVå4Iz å’-cTëÛô9ddlt@N­:КþBü_†[Ð?Ép#å$ý/Hb§¥[î$•  5MÕÓ„=@ ’'Ÿu]m7FˆiØ?»Š+Íà·oÂT K´\Iù+A¢ÌiðdÔ:„rø­û?߬<¾Ï ”•2žä²¸…YÂÓï-,…Žî.&Œ:µCN¦«]4ù‰ê0Sû„å1uÀX½çKÕ9%7Ä›Œñiü+Rþ ª6U“Ñi áÑîëZÓÄÄ„² ާ X°ç­’8’êZXKrSüŸ6múKjMxÏHt5Çïâ2ðÅ%ü%9K»!÷‹§„õqÊ<ƒ²Ð¢‚"…æë"3*”IJïÏ £tþ*¿8(«N] X„|à_ˆÝp¡òµz?ÙÐ×µ¶ª*ZK…Š—Ô•ù°Î3¬¤wÀY9ê@’É”d}4‘Òm6¸=Â,çdñ +%%bVd0ñÀ2 +Ê¥g‹G`‘mDyj)ö*1o ƒÔU?nÊy;ï +Th(;’GqlIÓ ¥œ7JHl»$tÞ®ðW26Ð.ªÜä7ÁP¶¹Jùõ´¯îʇ™ð6¥|øpç`I2·.Ó½ZŒ|Ó2ïÑ#“«~ng4AÚÊ‹ƒƒtÕ4É~Ä—(É?¡¤eëD„ö U¯Ï¾t!ÍÒuæþê<_ìijg±Zì^/‘Ãí:³8A ŹDdÙÏ®Ðá÷š4€û M¬>C4·¥Ìì•ΔRB(qÖ»È*#ž%CÐ3`6=-¼!Ü»°EÔæº0S¯«â¨Â'm>:&øaÃné_P:][=ø"鑳h³É5aÐv‹bè#øGzsp¦‚‡g: C6“¥Nó;è@ÖzËi{[‡ /• ¯–ç.‘HàÁæ‰4sµ/Ê7˜x”÷‡cß$FL¸ÌC?¡ÄØó²ï…y­ÍBê"…ß»jÈÚš<» 8D”ì3[”Ž£Íy‰zNB·ß2C1×·¹SÜsw¦¾nGJÜ¥¦¨xö±³8” ¨«Œ‡Ó¡¤bœ¡$¶ ²3ùqÀ0t*Ø£+à62z¼Ž;tEÿšƒ0e”j’¥ö‰;ϲKuðoaóà';krªfK§áwe71Î=&ÿf\E6rW8«ÇÏ|Ÿâ{AŸ ×ÕÑ UÉHm‰¬­ª·ð{ïÕ’ôPæ2­…â.–«â´ü¦qôz³³˲„hX…®¨hGq¦¬°d@(ê±B$›^Td’¥LÝ ê'@…½5Ž„Ê`åR¼GØ‚öô@šlëLVÅãL²Ñ[Êô3ˆʬPYEÜÖÊ™­eaƒb#|Åf Vä*”Úzz@H:Hsuï/zh k·òóÁܾr×ý+6¦‚†ùÛ è°iŠœÃj2Ãi ü±¬-UfÞþʶøDlƒL@H‚¤Û.Á­Y|}•BݰÊ÷ÙÄ¢ýièà¬êÀ–ž3mBÓÅ!•Q ñÑØû’ØÂÞõ|c ¼¥Œ×«>¤ ™®Þ £Jv‚Ãk¯“u¦»ÍçV‰`'xÏØd£æ„=꣈2•Ò^Ã5j ­K¾ƒb÷›"ätѸšfÂhdV‹¶>¶ëgaó8çÓ1ÀQÊŒA¦%ÿâ8öŒH;ú½¹mE:mÜ¡²Ð>B¼<'|^»¡*DzT¯l[ö'/isK#ãΑzænþdVÿ“*©ÂÆômcéÇÂlV:Z(ŠÃu×ÜîÖΣ8ë¡N5‘"ù˜~)gÙ¥fz[Ûa/IÙïQ÷GÍÏÁ~6Á·9+¿¨J²uj*"²‹¬e¼kßnm;ÛãŠ{p.ÝÒ¹Ù\ÃÂ>®‰X‰–†Í篦ܿ_Ð'ˆ)T•7Z$u fóÂ`zXnBËò=ùû8Á†ü}•ÖÛ–³Mq+Ü&«ÜΓÙÄžÙÔ›Î##Þ„©ødÉUXõô €ì–·M:½¼xB›€V®`®™rfzÀ¸ZF[ê=, hM‡Ä’îLÃgŠÎ@ÜùØK2[Ò¼&QO,E¨,¯úÔBŠr•ÌŠ‹&éu–†>€:U†YëEå£=§° ÊÎRk:© A?±ˆÑƒƒ&zJSõûiXóùY¢Kô"véê%‡Æ„\ìy“² )„â)gÕÉÖC}R¥ˆS¦sèË–¯]µ©sn§rÑ ¥¹ OFÕ¢°>“YÌÚg[DTbd+ÉX.\jv)ËOÒ|vàcMŽ¡¥›¨Ä£{2²îËièÉ^’‚òá‰q[<z™Ž."V±0'±.´RKRMG¬bÔ¢âÑV*ÄV\4¡¼óLÅU +/Ã!?1ÎgtÜh ìBª\Õèêê‘ôNbx6öÀÚ™4±®Í®;i.§”Z퀠Iÿ}XÎ4d Y,.¦Gú³(9À‚¿{ø*Ò‹EŸZ)(Ã`JV +Pû°3•©kYz»¯©¶*¯Ñ¬ª5e`à8Z`“—Èæ®à[’þ+sˆgÂSS…öjXyT­»¬,krecI˜¿,0ýâÑò-.67ábúy@MrÓ­{7+^’˜ÞÖiN ¢T¶)·}¹P*ó«j×D}¿ªÖ‚­c|ê=ƒ®J’`s˜.½æª=—¥ž­yÛz5ñqQ;°•˰¸^ýRáD¹¢ÇðíÒK.dzd\^gEðR=¨Ó’ÚVõ‡¥¤Û€@³’ph<—¨wiÀ¸~v7¬ñIdΰšGž˜’ËgH: Ñ‚¡õ\j )kMxîaÚÌó>‡/BÒFÜÙ6 a¹.L-× £\âùE™Š7KÍÿEÍR¤rr¯v×Oã LHŽl×é™Å¢d+;Ìö I¤™›l%:÷…Ÿm»r1ÞäDqr¦¨MKÔÖì ŠJ¦gœ¬"° ¦lyÐJßÏ=,Û¨!Ábôâ™&{êl[»¬)€v¸ÁJ?÷øüo×}ªPš|(00»Ó³G‘‘;sE,¹pŸ·ûì¹í¸²¿¢¤öÜC¿hÊ9ƒ²bh/zå“ PR¬QUo‰˜qyÕƒ*޼ÆÈÛßßÇ^BT°0%â±JÆš:b× ™Ý]ô4›r„"u´Ðús‡xß_ÈyßJnëÅ0K‚òxtÊM ß–úYBxª™‹'Ór‡‘Þ Üaµz‚Œ6¡Ýf"z%-ÄÉËýY¶É6ŸøéO[=Ì^÷¬}lH²Edƒr…ÛÔQ˜ì²l5î‰ÈPÐi@-9Ú[S§FA¸ˆv¦Gæ¥Ø# <ƒ꙼¸ÞóMê7SÛÕ`D<ûÞ»}ïe>w°÷ø#jà_õâY£̳žº3h¥È©³„úªÃ”AâF_'GFã¹×ÈPÆ2ÙìkÑ ;t1iâÏZ0’±Ÿ{Ø-•Ãë†úÈ./Æ¡@IV4Å.´iEAZLêSÝT!A³—„ˆÏ>zIS6¦‚d]ñVŽ!ˆmòö¤·§æ}~,ä|ÝœHž;ħªÔÕÓ_wÄ(Hc$ýƒÈ?7kT$zÏê™·½¦ùŸHÆÍTÎkoß4ç°>¥Õôláš¿næ°ýàk>ö°ûD’–^x/Š&òqœMâGÊ]£HOÑY÷è éy;à!,n1)ÎprØC³ï±2›ÑnÎÌrºi’'rQ.±M,è™=Š6 BTæQ±Û=ÓêÄbxf¹È£ÍÿìNŠ9*úÒc™šýòÔÕàžš»³±\ÏbšhÃ?aQd|^ÂN…g‘Pú"jòÖ¸þ.…/b„O82€U§ ˆÅûøxÀ¢ !RªZÍ;òéÏ»}7 ­7ñ¹¨AæÁ`öäs%š0/»HÑ·~ÙKúäÐÙ­Xrþ„– Ì O¥û†*CUÆ¢ c´%ób%¦ê‰[ I—^#èO®éµ^@ËfêgÈ¢:{ÂX„gϤi=æ¶€DtÊ"6‘1%Ùlnõ‚!wzuÞ èæ–g:Ñ zœ1³Ó#I¿úôP¶%Ë% +wã\¾éAÚãô¸ +Mê]»“nÞ¬<~ù2gÛPáA‰h騂gÈOA@¨œI·¿è|¤ªlA? è?öªKörqáp¦¢P)Y”‰O•xh«í÷íÝgBùA¹´³· öÖ5io ÈYLÚ‡¶B+Ù’žn‰Ârr'PjãΘ³ôŠyñ”6A~ˆÏ…Õ4Ù + ÉäÑ,}ˆ¤!mµKìîÀzêðë¨ç@#%™m¾qF9w Ì-ŸC•€~æSÅ2éE—‹àÇ^ÒqV•ï¼KçA¼eX–(.'òwinx Üê,k¹É‰ ¯ƒŽYµ<×dH^©nyуҸå¹Ï~@KØ"Å€QDàˆe\5Uò¡|1xeÂ)­ž ¢*™ÁˆMB½Ò ÈÇh¡è, 7–UFå˜%’s¨”™†Íà$…#ª¿Ò)Ÿ>ûí9wÓfhËNþÌõ›õ@Ðû%I+eºÐ_Ñ6ä¿òV•Û6mÛáZ€ˆ… ̈Ñ8•¹BÀQ’“dQÞ¬ödÆFŒÃûõ,N`Ç,§‰dŽ’ÓpHo±ïe­;7b¡yfm4cã!M¹ø·à^âÝyX»Ûø‹Rî…9Á’¬Ôò’Û_ÔÉIò«.³…;“æÝùpòpR“P«`88(æÅ™›¨žxÍBTt#ºn‘EF«v›Š>Èw¹Z¡>‚b7) ² °*Ú×a¤‘}È<ŽáTyEY~ga±’ëRR*–WŽHŸ¢Ó¼±‘ž„Ò¢?¹dX·E•üèùÌ\³{'¡-½ù*6¦`‘Îj±D3×ÉJZì]{7'ÔnKÀ~â Tæ Ï*ðî<5ÃG¡"Mÿ%ª-™ 0ä 6lX7ÒP–MEV$ãªØx×UT·q±h<6{dYf +dBäÁLR/FFù!ÒD%z·PRg»qÁ+Rª›äqšê;MÅ`“©'=@En‰ÖJhÈò“êÌa–ÞŸr%{´ìL‚w%1ûž‰W^J¼Øõdýùƒ†¥kñ¤cR鲸ì ŒÊIü:.|J€Nœqc­oÈöç–B¬¯Ø¡L!](ÃAÙYd1‰¹R±œ2; +’š²Y«R¶óÈ+£c?‰Ç½—ùé±(5ž—BQÆTs)—Âì ºtlµèUQSÀ ÐùíöÊ@ñjÍÎ4Yë{¼ì’`S”"&Ë]Qã2Ë(Wß' è‰Bš|?»ÉÑ0_¥d´Où€.”`Î#ºðºÑo÷ë Â{PT²À…äÒÐD݉ó4JÐYÌH½cQÀd¯—¹§Äõ©ƒ®„`¡:IîFQNG¾ ËòUhšÏªÄåi üç^­Uô²ã$ÐÅôƒ$ǹrŠû²ê–xø¢±ö±‡=W¸šÌÀ[ù°ãèýXšö…âk¾ÊH ŸYäEضÕ<•ƒêúÜ 7UM.‹á3ީܤm̳,æ&_¨îv–7´¥¥G®)s™BÁã™,*'t¬‚ƒ.U4x1˜[5Ž;Pˆ˜@a‹¶äÆÕ£ñv “;üLÅ(úg»ìEGz)8½ ËÇõHbg"!z‰²ð¼°—”Ü4=ˆÝÕ5ŒìS ‘žùR$ ­uO¤t— +tÓ¸¬¶™&Aù¥ð97`!€©ÙgCó#q þ –í¢Ðੇ=Ïó8Ø^‹ÝX€¬,] jK…»Y^ôÐ{Ðü=ÎS/¶ZDÒ Â?à7]ñ´+Þ®#!Öõ"#q".JJ¨’IMïc‡_;ŠI ,H5ó? Ü…5˜Cßâ²ë½ê`s„ QáL¦ ^ùC1Ø ‰eðøæxš¢Æ"mIå”Eψ¤>w0d•0äÜ^jêÜàü-R–äÞ± Hœ‡N^¾#ØxØ¢B|—lïˆ'¾ßSÖÛ&·A/~l©+X®,0Ö š«õÐç’A³,ë­ïé˯z˜2âùKÌÈ̼µçƒŸíTg™¶y“¢^wËh«Æ´²ÊYx3Çqíð¡iãìû†Çù÷ zÕ¬ŸÃìÔÞ@Ñ~’dñ`_°ÙDËy).Èþ!¥ÂOÜÓàiœ¶ cB # MvC‰ÁQI+=õxZD, ù±žÅNc„^-^i +Kªé +³,[ð©ÐY·³–7]b§m˜6œ8Ú´Í&¥VÉÛ,ñ`0«Ñ÷™ ½(Œ+Î!‚*®i;ËJù¸lk6‹cÜ°ØØ½¸%hS·±)ˆ±ÀcEÂ'°ÙašW²€ÿàI,hâ”t¥mFbEt4šÎÅ’)>Ã@bMÚIéhx” í%pN6æSKˆ'ÛŒŸõ2 TñqÙóÈèkÛXÜïv¡ž1^ô8 *šìOz‹jÅS¯d?f%`C¬f©$MÒ¼KçtqÎ1º1ÐÙþó:§îº‚’Õäç·Ü´Âܸûê’eêö„ƒU–ÓðÜ%û…ö1—ðs`®@}‰vùL>Ìp ßS ³‰§óŸ×@«*õS¶ +çcæKýÞ{ ã1`²‚7Ùá7ÕY¤»å¸Á‡1ލx$KÅmëÊߨGfùK²_»¹+{'õë!&á˜ÇÌ=†ò¢Üc`HS@–ò2éŠvÙ£ٔƛ"!uHžzÁ7´H‘/DaÕI»—ž¤OC'M]ç³d¢t Þê­|*)²ö§CåfY‡Lõ^À0·8Ûj½;QÝJ€îZ\APSÍ’Š§£ +O‘×J—¢Ÿº0È«®¿`¿²Äù¬+>>.Û[d¦ÛÁÙDNˆ7YšàªWŸ9°¹ùG¯H KˆP’ãùŸÅW2©:Óf9Yp ·„}·-õO¦¯BI^^}„kÉôè· +ˆ'à‚_ðš:{ -ý&dO™¡B퀀¦0ùÞŠeÑ%‹ x®9j ŠaaÑݶIÑZÑ—'!a’*DVÀÂlonL ”§ºzêÏ¡*4ƒØè€´”ÑRÅüÌþ©ØÐv EüˆuÔ PiƒÂÕììæ²ƒîF17%FN³™*Þcjœ$ ä˜bQV\ÅìÏdLÊ™"‚ÄÇg –ÓƒmùU¢–nÔÈåS…v£$h#þ p–m¶K]ª8 .å'TxðzçähHC¿]F{ª'WJO  XgE¶=M\óº"h" +àªE… Iñ2re§ÁÂ~VÅ&mTÌhºLL&pµVÜ:=²3Ž€Oʘ1Ž#诰àÂæDü X¦¦ܾþÇvìÄãö°âBF˜ ÷šðSo—öjì¢É²£6\Ãó"kEÔAÌ?¨ª±6ƒˆ!`S=Hd*Û¹²z€û¡ÇÁ© è|N Qš[ìÖ²[9‹^bþ^nÁa!5lõ¨¤Àé!ïYàLÂd¹Ù¦E dòÄû³Ý3m{Ã$†¨;¡)\RÇØäa‹&™îUòß´h2ÓE $ƒ(t©[XSf´xÚMÐg´—±£/^ëάÿ ~gý$3Ö%Žú;).âôÀFtp’­©yê•.ǼHÀkÉ"ÿ__—ïû‰®Îk"gÀ"À®É”¸§¡®Qв(`*Îø¸w±­ìm>æ¥iŽ~{²£-rÖÅÒçì¾y²Ôï…PIcG“‚ЛoÕž¥é²yÞL³#P‡­âô:¿‘<)-•APdÆÞ%¼u~`kRÂZC&¦‚L¯¤<^Âz³ª¸zœÕÄ,ÃXÖWÔäÔ£ò¸ +ÎIê€è?ª¼8‘~èbF>J1H[Šv9ÔðáÜFЀÓ²&Ç•>f¥O‚qñêƒô€§Õl•£¨ˆ¯HþÈ“¹eú‡Bœ5ì~l$ùÎbˆ+ùé‘Üi|ºÿQ;ð{fŸÒÌ{àa圅‹5À’ÄB—N÷äû”p“¾PaùSH¤ŽP³ @nÅHñÑmð'ç²p¹Ûꘖ$i¢öYtÔ„ íŠ.ôçâ'Ëÿs¾ý|‘ÝK jñLÿ!/bCbîÕ4Q¾aOnž8B~Xèxš¬ûÙDÁ{ÙÊlç†@¾‰:CŽ””lhR€ÚO¾]Ä/‡ÅHšÉ#ÕzKIÔlpo] À>Í4`æt-Nè(à÷éQ…õ:ñ°8ù®"ò´'Â{¢½\ÏFE1²{þÇCÍò½Ú¢بˆ;3êÙAnë{z+}(v¹‘J]¸˜Zu9¸§i6Mzp +™2-k‡vÖîÿ¨m¸Fâ°ÚF5¾MVËE|¡‰Ó%»sÆA‘ÓCbñF¹ýC—²Äþ"ú9+‘žˆËçëCSö™9c‘d2"1¨„–L•ŒwT½PËrùØYÑaÉÆÓ©òëMHùy3wÒƒ“ÆcPý6ðÌðªÏ…¾½z6ù³®TªcK× O´9O€–ºF›I¸dúiR%;Ù.CèæÍëRÂ3õÊ¢æÜq25ÜZÌp *&O‘Mó‚œ3KàÏ~"Ÿþˆ_%š"»Ú.{ƒ`f~#/ø½iÚ£ÝÏ’È|¬Œ‘ÙU-³g㯠ï!‚1MQ +žj›5`%Ý39ç Ù¬J^r7«›ÊÜäHg'«Ó ylóLC°8#‚T“°Ý¡Oü%šˆlmV±=Uš…¼Zreþ.Cbn—xX¯aÿ`Ê#¹…Œf-ŠkäÏ„ü.ºÙýýX>bÂd1¡„ƒ‚š©£ê ù¯s¤!Û¯­x™ŠvP@Sø‚ÿ²dúG{ënLñŠb s:ŠWg&ã + ¢™;F6w udâ3K7¶LŠaíß2ãìÅ‘@ÐÕ¨ú+Í‹«GQ ŠKƒz±ßÖ0Ѝ2e²³€iâåÈ2™Ä‘Ôy9)áI*|㉾¨ýÌ[Ï7ºÀ«ó̰ ß +¬¡rwn®x¦ <•A·â‰×:Ìǘìó›y`ÔKÃ`2—„¼qéI±×ÏhéC %%p ÐÁ÷KD +Tˆ&a< ÍÍ$ĬäLkHL€¦œÀ6_fÑ V:V~@{` +ÏUµò?š,ß'JÈpï™Ï‡äÇàü{FuArŽtk8’L¸Tº–b”TBš^ÑqJÊnT°Šž +—ª­£Šý”èôm(wXÍ;³@–ïÜÛŽ&É>4õ÷Dº³™ù“vŒÌì±PQ]Šz4ÿI„0ºÊ;HW·šaa…Ö£’´æ*ÎúÎUêÚGx„¼(‚IÏšÀsêíTêD»û¤çJÅJ*åm 3~@– «Ê¨ƒD:—±•Ÿ ØÙ«A#Tðw„·h¸øÛ`wËͶüVŒ(*Àߨ< ÖÃ[+ì ’Ì›['Môó7Ø+¬éîÌ×ûȆ1pÍÍI‹gY‡é ÌLsÏŒÀi­TŒUiS[)$ë$цÒ",ÕK“¤Yqj‚‰ð-ó”6yU-.ŠÉ*³‹%Ýî›Â/’Blü|õoÔjðçjh”eÓ8w@QÆÒ,œüÌ↧ڶYjrâC²½Ã?ë\\W‰¼AÎf‰d“Ó’J~۔Ŭ¬Ö…lÃÒPðÔPÛü›B¾#± +f‘6!Ý~IÚ£By + E:7×/“¡d¿r‰:#w _öñ&ã?¡­Š.í« ï3ænRK1²ªe}Ù.[ÝÙAöj²–¦7ÊÎGà ‹R'²ÕÒŸ8Ÿ9¶ŽÑÊpBöÌFÈv¡ 69dO!%NJÝ +“HR%£º,•'Þ@û~@*•ÀÎèoì‹ÔEðÆW §ª§Î#QÑ&õ¶ÒJ5?n‘ß‹ï&ÏsJ +ÇIÛžk‘@k–9 Ft&0=•®D$ØWñš@Bvª/B€ËåYU©dÑ“)‹QoÄŠ!Wà%xÚ̇‚F/&òÚìò‰Í%»¡÷^–„NÁ8Ù)ÙÏáz­ªÛìÒ›ì˲—ÙÒãÀÏ®aë®#å=u@šÒ5¢˜W%ö‹H¾„CÝ:¯ÈÝÏÅqõ’ +ìv€†ú¯á°Œ‘é}`=«áةԓҒÄ2d.äqY'Q9Áš’Äj•n3©xÔià„u¿ (0‹S^ <— +@¤Äj bFÂè§JNe‰²OB ¹!2×¹K q\a :B+àô;Õ`L‰–[¦(døõb1Ùš W~/>1vÿ‚ä¤Bùª „:l—…ÀÎ48 ú ¼›Z¤ìÉev„ =+ÃŒ ŒÙ¼ÌnÈfvDÆÑµ=ÿ}~3%m½~&0CÈíØ¬)ç!S/Nôè2¢D¯«RÏ›ßÉ ß? þö\êо€f7‰6ò?çCå„KÈNþZ{¨Ên@MÞßd@µoÀ¿ì @QÒrJðvä) +âÿ&í +z}Ðm”d%öýA¾[òQ#FÑT/4=p–óÖ "÷ŧ¬-ë4 s6+à#2$R;óç9ûpÄ-£<L±‹Æd›‹Œnh­Üä’‹FË»’/ ØOÖG9*Ÿ¹†[Æ…mòˆ!Q{ž÷¹ûÄäYÀ>ä´æ’5I–¯Pî®»÷ó*e‘s—d]pwFr…|IGR}cêf´Ë•>t;Yq¸¡Ps’'kv-ˆïžw¦¥ ÓÀðÅ™-¦TfægŽm½Ót²‘ÍlXŽï)׳3…(?P;[–§q¾IhãS©dcß. ñðéNýZÚ’¼ÙšžIÖ9‘x3°èšÃeIÀé@ƒL.z†Ôlq} Ó™k(q>ܘHz!*F`uþ¤J‡˜Ìp{lRD‚=±'»r$ý4KByDÞI9 q‡À‰ÙÂ1ÙHŸÇ·ˆ–ñâ%³««Q°@mƒ×Sn,rQɈ`ž¬4ùb{“ü02m»â%['ƒ6W¢á³X­;ÿפ»ùâYÉIæ$£¡Jþ•ßÞMÎ&”ÖÕš×¾ܽ +p“mÈr„á€ò @Ä +­ÈŸj¸LÎ@ù¢4 8Pc¸´\¯…–*4•V~ã–í$…S™¯) }³b´dçß±ïiÅ42õžhe #áH@ï6·%Ifj/_¥/+ÅfYË©MÖM£›¦:H(F©QزÝ' iš«‚C™QÒý‚#ä«{U‰&k•Âí‘°åœÊêÙ Nú¸˜¡N]¶ÓäØ7Õ3)ú;ÁAcè)år°Qk,MbæhKBtfËè€VBÄ@<Ù¡š…SÒ´¢>Í£ÇüÕ¬LºÀå¶ö¢æj:ÿòûŽ%þ4_+`8lwø7ºj®]Éz®Jk?$.°@"†³7úJ2˜ô{Ø*t·‡L–gÚX¬ ]]ÐÙ¥¥zËMß(±Ï|â¶2ËEÉàYLM“F‚ÛÕÄ+«I+×'âyöh©±æKcvj.5?(°`p-¦æûw%rKäWÜ +‹H™³Ô‰w†3ƒßð1ªUú¬ì„˜2ð±gµ”Ë<›:›, âÚFgKÇæ¢na ¤öIhóo¡ä&ÊP”Ú ýÀ҄稶‘/cPY%/Í<©±««.­OX¤zõdÕDÚÜrVbž´iÞæ\W D8r‚tk7ßl7/CoŠ@09ñm¸oaÔŸPUÊÀØMæh†ÊßmáqîÜ¿zÆ@ˆíÉLúª&IK(Kñ +¿PùõÌ8ÉÀÛÒ?Å*ˆ¨«J®RŸ5`ÃâÓå»è×½˜¦é•Wöqâv&¸' ù’!;Tï¥>÷ö8U‰Ók8fk9ðžH0; s"ð ê!ÍÍ…(­]c„Çy4¦ÓˆT”zäqÏ3>8o™e]Ñ[6 É'q2뢆Ø=*ت‰Dž¤QÓ×/ªò~’î#ÉPt‘¿ùä!m£ôu¦\€q¦>LH€ú°RvEL‘7dq'xÎÈ/ÉÙ‘ø]’2$½Î~Rðf³ìÅK‹•¹ÈزªäzL¬åÂ"ò%ìÚÈ=ÐCTR–âLì¾XÀì—Ø@a\DÜUìO ¡ /3ðf¥TT$m²î‹°ñy<܈¥ÍðöÉR•e[0%¦„’iwR¾áC­ÉËsÀ,V}ÆG²9ZÚ>i?ÑŸ–õX±Àó PÍô™¥1Z¡užØˆYD/¸²›?¿O•B2A9rhòÉáŽ%óã’c}Óë1h`hâKt(k2XeUªn1›(¶L“+èˆvÔ!ÉÍŸþá% °žé¤¤å6¼mbgreûù »:ã4p2‹è‚²Žä Pb‚^-ÿ‚ìŽÅçËržrPRyõQ¾ÆÌá HJ3™ÃnšÈ{ñi¡ÕdªEV1Æý’mK/.o fè)#`¥:T#Š´3Q‡ÒckÒ6ÂhS«Í¨¡ÕŽ%ÓL.QÁ±ZåvŒþN”Íñ—‘°LGBÛ,_!‹\Ä@ªbIsdêCeÚ5¹TB[¾ àSÀŸçf²-k]ºŽ°ÐnèE/£îc=Ímæ¾#¡rðËYöÁaïd¬êÃæBïÀ’ô©pÏ8Ðú¼ãk{!˜5Ç©foŽû0;jvb.á"7ë€Ô¯Vµj|ÏW£+‚Š.3ñy—‰2¼RXòZÑÚ·ZQé#†ü/‘qV„ânÓQ½P˜V'!ò›FÈ9糇 Y¦)Z ÊÏö ¬L…‰Å&( +Y—Fâ ˜½!6!å !D +rFnL¤I€š1á-N±OhH>cZJDB¬ˆmt~[Q„0´ïF±Íã•ܺã†lܳ.m_Š.¿©+å3ð¶®B¬ŸÑ%‚²‚ÄkÖ€ÁM¦-öa‰žB3Õ#LëId¶æ_(Im擞 D©[8…æÅºuBKáŽÛ4°Ç(€©eN<-ùš±­óŸTŒ‰t…(ž½¸k2ï: €R,¾·çe–8‹„¥^˜è)±ç7óî.üo¡MþÝüõ”)ÉÓmXÊG‡ãô"ú•qûyfâÃ8­,gn&íoíOªÛüå—óMÖ4h!—±Ôé!ТÇÊéXCÑ9‡X¤¬f³êW¥[Šrɲ¸ +UËf ƒ¬%I›.+?¤„ ÕÅ®…9¢ënËãÜíyyÕÕE +G‡ž®·^±(r‰Û~x†’æ›a£T ¼]&þ¹¨rl½1ñÉZJ +tWɶ¹ûæöVMŒ*ë s¦b;!ˆ|6«1YÎlÆ,Ô²ùS,Ü}µÕ»J1å­çýݾ'CC1H¾¿T¾L`¾WÌÈÇ$.ÅÚöH{#”ñq êÙ$3~c©Žlää9Mý@ÅM*ÙuÛ"5Í¡%kXÖF;âF”nr/®.h°$?ôXÔ—¥55ÙãË,QPÌZtUÍ8grJR§þ†©Ã$®öq“UXÂȆ~;½€ãЫh:Nþ€™UŠ© –NE¾cœg=„¤]†©jÉ®ßíLޱwC„ª Í²•Öi‰P<šteE=@$Ž¥Ló €EÃH³Q=t±}ÉÓo¬¡Ü°iB· —R=gÞS1\àˆìÒõJÂØðŽ6ÓjX„>Á—pJ‚˜Ÿ±™æ¹C²d)fK‹P°ÐG{š@*Ñ`„.ëÖbލ¼$a\‹£”ëD¸Ï¸àÝðJ'¦r`‘lAÚV”Am±ž(=p£HÃvÀ¶ Ïðú@ÈB Z +¨EÓ-ó01»ž'XÃâ#)‚¸•Ô_ˆÒظ¥õ!`”üºd·[K·Ql3  (–hèÙàÖnaÉ260Ízý%(稩6¥Âõ‰Àè9î:E±ý13£22sšþÔ@ý Á Œ«Üeæ†-ྰè)mÚâ©©—²ª êrµv,_ùkpê@ ¡‰“`—ršùjý‚@ʰžX^…ƒ:…Ð@ÖÄQ®lY»Q– Äס׮£DÐ¥\(w0€³ÀÙ ~¸™Gy!Nص5ÝŠA„[Ñ/1¸ xsí_A«Ô´‘u“YÀbÂO®§-œl3¢¨”(O¶¥7ÅraTªz±×@Oúü4-¤JT\d㫬ÑyœÍlìØ\¼aguûü #”H—J¹Ôƒ¥½ÔKÐ fCÓÓ„2ÝÆ%^¯¥‰Z/ãžœÎ\&U¬Àå˜è˜Ê 4%¤LhªDÈx•V-¢¨¬tL©è?¡ö‚þ“ždõúv¥àȵ°ÏâYS$ßž5€\PQjH.±&¥å"¹ˆ.û``ó7à{xC «B•.KOîæÊª$øMÇX»,´ÂÖãmæ ½ÊÁ˜!KS¨YÂÅ6Ê CU.ó¬45(`Ô¦¯“áÛx)䃔 Æé$8©yìuPøãÜ3®^µ¾)kXq!¶özà-eŽ ñyR6‹…ú +ßÝ¿F^Bµ¡”Tšì«¡¾NeÕ˜Cçk.Æ ýßþŠ4ªT¯Tp0|s¹`àyáÄkp°‡ê =Ô¡»JÎùÔ䫲;'Ͱ'Õ&=øÑ†„ ›´éel¸“‡o&öTeÔYÅïhˆ@TÜ®–ˆ1U"k `©8—ˆERç>œcHCɖѪÚfä„#´ìld³±Ý¡×ŒsrnŽ +B\š7xÑÁó–g+!fͱAWÍIoóxû*üè‰qúO_5úüô3šö/3EAuê –7¤\T¥ÇEë|ãß{'͈ 'Hdì$^ŒðçS%a3”YÐ-ëçÀ°„Ží~à¦ÆþM® I$Csu,Ê"žðùz>Ì AÜöªÍ‚>m…B[FÌ[‚Þª2uHvÅ ‚]odgƒ~>ñ~’T&°Šª^,øôBnRãÔ&4Í™B—!4† yhG­!D§…¬ÖM*! 2ù’X³€yé‹/[I­ÉjŽPMYÛsŠ«= +§¾Iï ûIÃ6©RdU92áŒéË-2ÅJD&‹LUÞ¥MôùVÙDŸ¹VÍAHåðuF`c¼ä8·2¹Ü%AŸöˆ,)Ê +dÕÖÁøËm˜%¨Z”“P =;`]‹Ä>z)fÇŽÝs¢Ð^œ¿ZHÁïnII²S‘ë|U¢Mʯz;É¥lH )Ηo̵nËi/ =» :üŠzW ‹ìEyXÖ ³hª bQæ&»H(¾Û,@‰ @¡_²šÁ‰B’ô‚FßS=“ƒ·Ø/9o¬$ˆéQ¡eBÅ7'yƒqtí­íRl•lfˆÕ|Ú…}5n1B…4Z ºM•êm6c‰†qX¶/0TY:Jy¹È ›i|Z`š|졈,±íÛãE¯¢Œ'¬Î³ÜLhækRa Î=Xw3€‰ÆÂìgzîÕµZË¿-ÃÒŽE㬥Ұ£¼Þ¡ôK–¸äÄÎUMvÀ~0@‰ ­šõ‰.€öèÓœyØ‚’8Æ DñÎygùSsË“‹F„µ„»~69`ày`‘!ò§z°} ‡f  I¶p5o]zhWvz]WCjVS$Ž3)©wzíâ—Ñ3˜ú:„+”¢É–UÍîãÄz‡ E=HÕêDºç@â]a­MæRe%àÖüUõ"5 +ºZvllAsxƒPð²*âŠpuC̓(g49$i×àxî]sˆÝ™€{³z—ôADW”s}1%æI+=VQªë¬¢$¶ 3,VÛ²G y}áŽ5‘Ó(ïànÒª„cåãúÁiT')¿‰-ƒ†¢ÀIYF½èÆ ŸZŒ§Öd+›œ/SÅŒ=~íÅ <`ÄRÖ‹^Ò:Zs[€¨ÒШ¶‹ )nw„y¥jÀ`¯éwöIÝ2éF³œùLÉEñŒ„l¡éÁ†T´‚¸j8zÉ÷ä„¶R†tCÜ2€!õ°ÊWÅ`Y=ä1I@ÈáÇq]¢ä*õ½¤Í@Tî×€¬[S¯!X-äÏ®^r£Ñ8BpUBÔôöÊÄÖðÕÁE¡8”“.ŠÖ ^<"ÇivèJÏàg×dµ8¼Ì7mr×=G˜˜{N>﹇³î–µa*ôÜ+9l‡YÒo~'' mJ…¬9.F²fÆ%YöÎD¿ž;Ø\å. ý<"Ÿ†Å ŒS')5Tå#Ýù|È,&@fCëE/ÐQÔK¦¹±IÕòQ³Ù÷¦Âç8@˜4¢Ø!ÝЉšbW'õëXÍs&n@¡ \°S<~(„Ùp]x*W/^rëžôªrÔ•§}Q‘‰ÝϾ†÷2¾X¡gzþ˜,.h«,,UÆÈÄVM¢T"n€rŠ%øÎ[Óì†Z¬…eY¯Œ‚¶R]·aÍú—(i e*WžAL걈ÛIÚÆŒQPňé¼5Mu*ýx@”V©[µ +¨X:%A§ ù¸ +cJpYô€âD9ºŠº¯ÛǪeií–ëÃ$DÕ;Mh$©*Æ\Nv&¥Ò«G5–´ê^ äøEÁ Ñ6k¨ü!zô<Ã`Nbœ„S°éèQ­™è}+tMî¤|‡A§³©#‚)xûù é¹=j¡ÆqöíBÞA¶âçˆiŒîÛÒæ¢"·žÞÜeJ ª#žFwÃlš«Þ[&:wa±).ÅèÙBkÓ}šRŸ”Ý‘}`Ðå40My©Ø_ îÃÉîAàn†PWÀÀöî|w]‰ +‡{㸀<Äœ—×ÄâoâÛ‹ÀÂXýüb ýœpkgIì…?d‹†i\";ž +Ú'¨ä,S›iQ‹áÀÎW‰b)ÃAj:H)$Ù!³òØYzÖlt_ôXÅ +&çé¾·ñù²“´Î§k#ذBaa²Ìˆ$ýú¡Ý휚¦¿<&kæjH`+ˆÚ¨Ã,‰s8?‡åüÁžU=EJÉ’ù&+!Tõ÷ëRɫΠ¾ vðvôí*ìb}¡œ^ ÒR…kS©MÄõ00 ì•a8}Îó›·Î;ª}5$¾Ö02± ØlÌÍ^ȸâa×ðÅ=eJåŽt<ƒÄ{›õž Í…„¾îy€ˆŒ>lÃl +á>4÷ Ôðk75ü.fÛ´)£û’Êì|?¤Dÿx@¿üú⯿÷‚l¤™iÈ’Þvö©àIÓð]tªVò‡t¯ó7פ6èèYZܰ:[y>ïnQY¯"‹ðâÏÉlI•3˜’2Í™Ëo?'˜6 ò°ìØ6ºÝéÓL Þ”dÎî|±5CizCŠ$ÔŠb¡T…yø’Áx: {2A~¼8h²gÛ×Õ–l]=»ùQ  +LJçg»ÂÁæŸj¢‚ˆË%½i /ªm섘^¦Mb©U#ZP£C•Çá +/ÅI¬h”L€Jm©A⼬MÓ¯A–éù·whÌêNb,"¦w6€&I94@ ·\‘ßm…@(ôùåf‡ˆ ÊÓ°Z"S4Y‘ÃÅðÜÜÂÓÜÃ)MÑâùФӻŒ¤ QÃä&¬OQ^ü5)AqPäG q¶y|U,·ãO¶)‚Ò£¿;"'H”JE³ C99ZŽSßó[—;»ø{ýÌÅ"Ƴ‹õosU·Ï2Õ2È=ð(„Ž(â¸(oŠJlH¬Õ¢’ŠF{Õ2ïÛ’•ùÍÝ™Ð3½\O­/®ÎÊ1`\_¢bbãj˜,\Fšñ‘œÁ?t¬Y ªŽîª±œÿÔìB7¨aŠcÃ÷áØÈß‚hƒ…ž£€ïŽà=põRïi¼áŠj‚³K›•;:à÷d®Ä%9³¥¾ÓÑÌeUôÈÂ8¥³§ä¡TUÿS´x4ž à ÐÏòæ2PÇ8—‘§ý¹2]’ÛžC=L +ej>aÆà%“.9°²ÓÃt¦ w¥PËíÆm¼$ó“ÜÌx)U+œnCÛ_(õfÀÂ0ðÄzx",㧤ä.å7Š/ G°T,†àVÕ£WW/ÖšŽ|$©bÇúÒQ„Üb‡Và T‚ q%¼µ°Q~œG«U5ñæ³§¶É $pNP‹ýÔdè‘mø.ÿ¹s¢E¤üM˜û òÑÑ®bßm“³@̪MÓC–ËÌo¨Ü™5%.c7D4Ó+ 9:m”ÅB_øã(°îÐ_¢0TýkQlä_ÄÁ5§ð³e’gµö¸º¸B%¬j÷o8r™¼ììÎ3-FF–:úSš-rãÚB +ñ¹Æ +‚A¢€ÂÌ_—UÓÀ… K +XÜ´SšÌSÌˈ5^FÒÿSa=®å)–µzKÎÖAOãôj$ÞQò²«ºœ >È­ç_ÚÈÞ—è}iþ+·̪¯ÌKÔ`€»Œ½1•Ç-N¿ÈRíñ<äA[44õq¼Pt7jÀÒ‹¶ÒËÏæŒ¬ÀÛѦu¦1ü ñ ‡øŒþ +×]„,Û3uËð ¸ x›(•4ˆO£æ{½Zi¢¶S?V_ .StdÊ“z, :Ì{•‰6*C*6XJ=<·çvß=R{úó‘ŒO²}ŠoÖ,­…® +‘çz®ÝžkÔïŸ:e$>“ªdì ý:›]çpM4Y€b !çóavÁ@,.. wdaá,ã¹—@df¬½¹hF%ÂeÅØªlÆšì‚¡Š8”e9~4B¶ôä’¯*0¢å‡Vvã9GùÜ£tóu}ÑØêEŽ‚^ÄG PèVaX0’X1-Gy #é&Þ`âbma²,Ê…ñs¦³¶×0“uÃ+•MxÏ\è·éÐcf§ôl +|àSuhï9`ú_ÓÔƒ%šÖãk¢ ‹ðL°¸y´Z’ùS Ä»ª ò¦GGДHÿÓ£Jü@*p˜¤õø˜‡¶7Hii¡-¢óư !#L*rnäRãÀ̲å³)ÔÛØöoÀßL4úB»o‚ªÌÂߪ4Ò;ÈÓLOùñ‘†&¬ùØÃ^ýí.8 ù4xqwÖ›%à—Ó_ Ÿ¦pd•ò¨œ~èóA<5Ke–è ƒahcÆ4dÞQÛãu ŠýÔáNò >w•ça~‘Ú ^uÉ ´†Z†F#ùé)7ñ»ŽvŸÄ¡ú=Ô‹j¾õB7÷¶áa¶ºÔ¦u@ÖI:B•”eÌG6¼ô¸Â@t ÕÝlȰlQ“]§‘œRRM“Ï^RŽlzjÛ»RàŒ±¯é5w ö¦žìþÆmÕ@ac”Â~ÕW0¹Ïfö_>.üÝ:ÉžðtBÐ’”6#D˜*•’Ì›¢Ir/Å,yáZꢘWÖñÜÃ^)—€{úsРeÎʸI\€>6é>}ÎUd_S#(¶Q‹5¸|1²§m}xšÐ +(Dçû„WCû´ä&8,ÛÀùÆThŠK¨%@:^@Ý€ùÑÀíYn¦Ê8 +:Ÿ‡«üI“b˸@ ‡R“ù|`ËŠ<]l&R1L}(¡sx‡i΃¿ $ƒ¶Li#¾&»@  a6ø?\‚NJ%/z[ùϰὠ ‰‹˜#¾¦Ø¨x_ŸæÃ·•ñöü¢mwªˆbÂ\;IR¨äËB^ß„œ & ’ÛÐA2­nrtUB6)}yXõ '%®„±\ Îä{"s¡¤?Ü QÒ³Ž£K©.%=Ä¢A̸?ó¼Å³Aæ.Ék&NÀ~L¸óI&n6ñmùPN#îZFF€ºÖ{N#W=¢•2ôyÓkœéc/Þ.õ‚$+ǰ’²X•¬.©]ÕšBYv‡­?÷°„ò(Z8âFO½…™dÉe@KžÛ|Sø€Mû8ûM^6º/ö„3Á¶ŸŽÃ1L—õ*Ë{(ý³_Ï6gÏÉV¬ªÌWà ¥/IõèL*E@q˜ž(R;ÚL¤$Óy×Úx—â`ƒ:þ(KbIªÀàî ýËsåJ,Z…$\âþ*¿5ãUK•Š +ÇâÞ…ßÎÆò:‘®<Þc[Ö±§Tc>õÂDFQ2Ä ©Ò5óÑ2+†i6·o܆ܭŸ·mäéRÖÝ¥¬Ã6¹Þ®BKèé%ˆ‹º3×I'y™ÉÑ’†.rÂ'ø%O'Å.épü…e>ÓóL¦¿‹º y|%Åî1}… fOäìZ4'rDDœïý0 ¯áp-”zn†¹ÿîüûÛÿúÃïþæ¼´?ž÷ö—¿´æ¿øî¿Ÿ;ñîÀ/þëï9²ìÈ_üá_þùÄ8òüîw¿úþ»ß¼?ýEzûóóŸ¿ÿ·_ˆNþ/ÿúÏ¿ø‚BžÞþ×ó?þŸÓôooíí¯ßþÏÿ+½ý†¿üÛ_ü’ý¶˜(;½}ÿ‹_²23Ñöù˶ øàÌ/Ÿßýí«6ÿÛß=®ê¿ý®(¿ý¿>¤ÔÂUÇ|œ¹K†žVHZÖ(Ä?C }y=°¥DjÍÍxØrç9Ó»°!81*ÂÐoOgÿô‹ÔŸ‹Û¤vvÜ«øe¡UЇußl힀ÅÓ_§ÍOƒ|öÑ…8kq 5|‘¢g,{Ù{[#é#kLg£ðf'\5ùÈU}òë°ç×A(—wæìmW­Bög?]ºÍäRüt³ ™üãÛËëÛ$¦–ß|$Nü‡ U½™âØ›5ŠèàO¤Oo<Á}÷¶Ø;ÞÜí÷üžP*W4¶x£YñÑXêý{rìÑz~±7ŠÌe#þþÃ/xü´/þޟܽٺÇ{üZp²?y]_¶Æ ±¾‘Ö™ÝÊ q—|kh>¡Sñ‡M|ÄKo6D‘Jºkõ¶\ª_mÁ쓟­õø6î3&?·Œ-ÈÛËëút/¸+´Ó—D”ñ½7×Ú½9ïŒ([ó¯ õ0»¥}“?ΧqÃÌJ¸’îÄÏœ°˜>»>ôc—Uý}ïPüÎê_´ø q‹Î6Ëç„Ï£o-+~Æ}>\ØãŠç=`ÙûL>ùÌ–â3±³‹÷Üqi}õw߯J~¨ØÅ»=³¿H]½½¼‚Owþ!ç ¡uÌ?[;~iÂ×%æ‰ÙVô&ýÍ«Ÿ­¨`ùLQ²=?t£úÛ˳ùe Dx?H9j|ïÍ%G3ª=oÖ“Êgl_4#û{…˄ߡm«ƒõ­w¾Ã)eø>Ùù5(¨/jãË {\ñ‡Æ7ó{É‚,ûRIï½ó»—Ù[ !ƒ¯üûõ¸÷¨ ß—hûUó*Ï}_ûaæ-ÒÔ¯·õÃ>ë”lŸÍ¼jß{³Ð”¶BĤCË|^y*³>š?ŒƒãýÏd}pNñ¹Pn|³FYâU–*yùkÕwAÅ'`úÂÞ̹Áù%ûë_ºˆÙ³âòì²â +ØÖú¨yä˜)Ï­}ùâ5¨ïè¥ùÞ›+‘†¿¸sûU”º½QBQ?qiÕlø|bŸñ3ÈõùÓïØÓ|ºÏ{̘g½Ï4±ä~1ÙÒ¸mYW¥ªx#‰JÿJÌü䘧†›ö}ü9?æ_ÿ¦Ø,Ͻ¾½¼°Ç‹ša"¦ßÿô AÊx3Ÿ5žO*&ql¡¼Ñ4ŠX]÷Ž®)ºâó4è‡ëzL1ãse»ÜI€Êλ¥ÈuŠ€Q¿ú+·"ú6¿ +½3wÔ¸Š~'­WÓÅFaÙGæÇ}ï­¢~ªíǘãü7O «­çL1U 'ÔnÆÊô7SÁè^üÛ« øõ½gàþ¼½Öö˜8k\Ù ¬ò8ãíäÕãNô´ýyö^c¦nn.Fö¦Ç‡ôtºÏg·›¯ëRÿþký½wÛ~”-Í_ò˜ódÝmÓxãÎyÛ¥pè@·û>ëjk¿5Ž}'…âdóF—Ö¶WL‚cÅÕÖ=ûï¨ãƨ¾ +¡ÞŸ¨"ð——ÿøD÷¾/lõþ®tŸH1‘¦R?~_èZÇ Ë+Í{e'Ö‹P(&Ýüîæ"/úöòâÊd¶C=ø>šS| ÅCr¬;ÞíþÖŠÆUü7ÅòK£ù¹çŒk@™ô6ö+ÿýãõx?FyJ@ð¸2.ð7{ÇD®Äû²øxãý]pîl¥E ·ˆ?âw·îŸyEÐìˆsÅâ7ïÌEïåõ?Ä}&E\± ÊXHÍ’G²Æ•ã7¤Tb‘›ó±×ŒýÍ;¢¾íŸ¼P¬¾TOäÚ^^À§{ËJöÙßW÷Ñ©Ûf”F¼"­±ÍûîŽ6£±>np ¿2¶ÚÑx£ðýø"¾¼‚Ÿ½´|÷ùÆB¥ÎÅî?ý2x›_¾û\Yü´È§üÄgÙo3»ý¸7-¾õÔúOÿ4ˆ²ö!V²ëý,—ï1)}Ú&[œnW¶0¤DÏ™c.lÞ—bm»}š¥þÌg}§€SÖûÆAÑÈLjÏo#tßoλ,(!ØË4¥Tgso~UhòÞ¿mx†X¨÷=o §ä·gÓã0jÇíñ Ðvò²€€_õ[n–.)žâRãë19}xŸ£y¿³÷«î·åpï̇g4S¼"Ê%|ïÍRgµföÏÑ{÷»,ù áË¥¦úˆÏXò0•ÚìãYú{ÎÇ–K<ËKX®ë6>OÒrǽ_O/ËúòG|¾Sœ„ígÔ~§¸Õ£ÿ¾› ìñË ¸êäxKÚ#æGGÙš«çÊ +ÒŠÅ7r @¯5¢GaÇ,÷‡ä5ìÇþ ¤ˆÃ"ÆO(ûþ¶²W°æÍ¹ìPâ«d™1êë¥Éï2.™°˜/zŽmÏ×fù{±iÅí&m;~ÀØ·ãÞ[8ööæ-¾hÎ);ÄÝ*¤üª±õǸ£Ü‰ð^ØèwzÞißç5o|²çc€»ÜfŸ,8×ûmIüØ{"<÷%F½¡P}÷‰.{~9óãÆ˜é´ÍúåÞÙ±âkÈ»üÌx[›Ë¤òfû™û÷è |({}ñT^<دNåþ‚ºcN3¦½Û/¿Ùwy+NõÇ6 u©"Ä>)h+£ÞFû–® vÙ× „¨û¬s3co/Ïÿ¸°êwR@«}/¬ú +C¾²ÅȱS_@*{Ü[|£ä¾‹5@9Â0p©¾(“1ùìÍÕËM¾€ßæ=½7îb·åY¿¯B‹ÝwãÆW_\Ä» ΊÝ£§ Á˜wLNÚV~~=H,júØo>ê74ר% tãÃJ _ˆÑþ¹ÍñÑö4t‡2‘³—y¸F'Å‚òúgoî½{³T(¼ÑêEB”ãíå¸~³@˜Ú[®|W¬ÑCÚü|öùm ;!‚§@°¡ïŒe†ðrÛó¸~ÂFJï¦wz$\ð´¹…JtTÞ¬ñ±E)öÑ6n/ÞOþ÷k•» ¿Cö®‰iǰ}Üí±ÏËëò –núô9þ³]0ÍžcX–kµÆ¾c6\ÈèzãŒÀ|EêŠVÏ=¶èÚ_Á㻋ÂÑxWÈ™éÝÖ¹y„>ÓÝ#CÙØñEç{½Ú‚}ŠqoJuxAc°ÎËç ˆ›ÖßSêþV|ßïÆµÙ—Dc$`š9ÁÆä›ÚoÜi¢¶w™ •ò®o-»1Ü}T5ƒŒ·—?A¿­%TÊöi0ãÕñ}4·uçQ*ZÖ8E  †§7ZÔªŒ½­Ù&*ÍϷ눮ö½º¿²œn‰tªmÿÕ\fw§œ¥Ì”£‘ç©F$^½1éM󿻩°º pSÎCµWW‰hÔHïv x›¨=ÒG”(½«·ã}õÇŸ^‹ë"Åà‘”³¿fÏË1Uø„i52ì3ò3L›5 +§$ð½@›ÌÈkÞô#í·—WàwS®1|jÖýý>šg®ïš£1bÕûR>ŠÐÞø)¨wÏ=©qGßéÌÓ|ºèÈç|³ûÝ.ׯ .Y¾S_dsö-ý{%<R¹I­äÛÑ}?·÷c~8ýãºòŠàGr¯+ùÓ$Åyßœ”fL±CÁt9‚‚Ýs¹Os·˜4îß¾ Éôöò +—Ö/0f·€tîtTkÜq-ÿô=«Ò¾Èo¬”l?ýaÌÛ¶ˆ_Õ¯œ‰<þþÃ/ð–€—‹}ŠÿÞ›«ƒ((êÛÖ‡Ælû¡}¯Ô‡W4fß "h¹˜Ø‰y£eÑTŽ1è‡ ˆÐ]ÑåqÁ¸55§Íö¢Ñh/;Íö¼4š+f¾}gŽæt0¨V­¡ÍÐj‹òóuùt$å2íöw‘ŠýÞ›³í±UŒÛ1¶oUuëû§O¸=wîPµjØËÓq‚þ§QtÛyÅ’Bx÷½7ûþh“ÉgoÆ>á­z~\W$o¡ì+U$á×"L?½>øQwG7Öa9iÆê™2ýÈ¢,êãLlŸ½y¦XË´W†ÆR¼oí·sol‘{›xM_—÷¶À{J´Æoô½°É  )ÁOwÕG<î1–gØðt«ö¿Ú5yètßzDoîæèñÊNC) iO¤eàïGŠÆøôÙ1ù’ã»-×Wvb©¬ûÎ[Éu¿5 ØñÆa,%[â7¬È"¼»aü½ÕLh̆’ãïWôÄzü»¾d%ÏÞìÄL}6Íèdñt´*Çɺ‹©Ã·Z]™·¶í ²kð·vœ°¿%•U ±È¡Ä{Ç{ûÙ[½À°Ë‹Ò4‰w\ï09ÿYôa1 P¼ÍuÄ%ÌÛ4‹ï¨9$ʨq]9—¯Bn~2­€Ö¸S\'Q¹3D#q^•ædXL[cÝш=7zåI)€úø Úí<6Ovkú»Ñ“ÅÕ4ú]È–³Æ>º_íºoB< ’ñç^Œ¦Ä–áW´fd[á.ZáŽ0 A‰â—C¹úéwe÷Ôâ$ã1€'Räë]ýÆÌ”Ô×ççÓ˜ós¿ßHöþyiÁ°¾‚ú£²]-X,!¥´ïÒË‹)>Þ· z}Ÿ–\ˆÅÉ<Ö£±ÅúQtBIgFßá¨ú–x3¢¨9.>ŒE˜Âl pÞÈî‹L÷7ƒO"nx ¾põ[ñyc@ZsÌmX‰*~‹¹`Äûž¾Ù)÷-»É <&.½£Öˆ¿Œ?…fQZGR>yÀ@Šg8¾š‡èŽËÒß|ˆÀOíȽÊ{Xó¼qx÷”ÄÔ¢Ä3'É L„m÷|Œ½^œÏéA%ò*iÎC ¨mCDéã« ê»:`¾=®+°[+,Œ9#±\Y]âïÏ®ú&„²wMÚ²’¬é;Žs¯Æ„Ò-RæGî¨y¡—}Ä}ÐòÅCÃÚ­ûZü¹@p‹Æ;›+jŒV¾ê.1À¬ÉGÝeÇ/¾³­\¿`x¢™â\X·GØZãz¢Zk—|<½yŒ_×MÉuŸ4“L€ü®xíŠyïÇ´8?¾ùûbì/…·æù.vÆRÓ›G±9Ÿgç»ÜvüÖHK‚Æ«—2ˆÓ§D©÷6ÿšJô¬9žx÷E‚Æ¡‰¦Îûç^dÞòÿÑÍý)°Æá"¿kÄ]Qx1Œ¯wU*YvÜÛˆû²r\@‹aUýÍ3’ŠÓ1aü†×Õ=“×Ñ)ŒF¹ÖǸåþ0e4R.Û~~Y#þ˜âï[TöGYisÍRb>Ë9íÆýÐþàÞÙY-©þzÕ ­õí¶5Æo?ÖY´ŽîÄQØ»Ž«çt´øU‚ªÅÕ97ûq †•1êðGSì>õǤKl1–Ÿhé^bBâEðý8r#AÍ2Öh(„LãÆ°Ã~àsÇß÷Ø6߯öà&¾0K5üRû©6G¤‚pŒûìÍý"bdYg¹Å&«›e¾¾±ôl`¢Ž¯—GÎmÒãïobÛqþrgÔÈÛӱ牴-ËÍÙ•n[+šyìØs´ߦpò€ ¶ÐwA3}ÛÝzúB×$¾êïÛc§Õ¨‘F_©Ÿ{ßÑ^›öѳÎßá`Ä~ßúgoî^Ø7´¡ï¸ÓF±ð7át#áºë·XÆI_ýý@å žU7ô]C]>vê£Ý;3¢*Ä »ý@i)ÝùQÚ9–å7Œ)fG㈈©„ï¾ÚYYȯÆc´ Ñý^¢nR£ä‹A²—éñü¶±Vio KÙ5fˆPäVc©¡NjUKšº·FÅÀŸ½ï£ ž<“Dûú†xR4¹ÇÅ–û… +@hmDÜ‹™kŒšc¦ßrŒ•¥‘÷bç£Þí}óY®¡ZÙb;ÁËTÓbCscoš÷ü¾CÒ¶yNVΧÑw…¼±T´Œ>EÉõ+W_ج´Â]œ±´Ì ŽZ"º[ÛÆ†6¦uÏ ¶eË +"Jžžèʨ°”§×«ÄýEÈqzǧC­Ö6€Ø‰zi‡ÕÆú~x-"7 7G„úÝ‘G§Ñœ%?n×#Í’M¸7è3æõ42j‰¤ýš1h¤B'‚ûþ}0ñ̺/LlYŽÝk²m» E¬=g<±äë8fä3>çH[0ê½u¨‚æÛ@}d~2'‘ µ‡KãcÅžó1€À‘¶f×vûΈ›š¿´•µ&¾»:¢N³ÃXö-’Tv+V bS­T†_–$1@»háôÆtcêbBe½xÄ'‰®+ò 2œ›Þµ÷ÀCì¾>¨wˈQ +Én\Sìâœ>úªB3è®î?=ä¨Ô¢†ÿªäœ;ª†w‘VÜÁþî[.öÆS‹ôÈ$ÊÛ÷ƒFÝ}¥ª–wk2²Æ1V,·QÝi÷%æùÖû÷A Ø—ÑEÍÓáh¬ ÷šFŽYK‰Ý ;fßTF½Q«®Êò^õ*ܰÙ5r!vÿr\¬3_Û:~ëŒýˆRF÷ÌêÛ©ŒTÀóÍØQ«áóí{Ý‘ª¸úG;HEµ^f¡”»â¤\)ÇDT•ÓŽ¾Ãc8u”¶f©$1/Pyp€Ã¥ƒ/¯rçw»èØ}Õ|©à|"»Ü+ˆJ#Xá{²UcÒIÎrã²ÆŒõwíÇO˜—Q*öçøe¾;_ p»Áܺ™ìZ"ÙªüFi÷Þæ§ ºkVÈè^ÔÁ3¯Ä{t?N•Ưa¯ô1S\Àt$î¾Ô°wé FMnÈEø³7ŸÙcGm+Ý*î»2\lЦTžbØd a¾GTvƒ)0q4zÕÆXíQ±ã‘V¯-c,è×µ.ÐÞ怜ý³rÏÍÅýöžÒ«±æ²c€êìÍ­øñ- z%Ex×cOS»‹¨M©¾ÏÞÜFðV¶‡Ée˜±Z;ÂÝ 8®`ßjþ;úy+×å.À-¸¯âiÎA±_ÁÝYïPè¨zyã× +Èë¢ÂrŠ×6^„ñ ÄòM4üÇ[—‘\n×qù¢>ÿ¿ªG߀ãJïËWyX‚ÙÌ’d{{)ÑžŒPã%Ûä•_0b€vÁ¥ÈpþXÐNk\3µåønV  Qëïæƒ)û²*6ºk¡‘nùz=(ÖÍ“ K®ÖËÚw¶íò¿ßÁÆæ9Îû´´÷çhn’:…Oë%¸{×§ç%¼¤ÌÖ•ÁF»pðÍ»±S¬±=ô5|þ«ù¾ö¼ž7>;3x Átö3øºæ¾*`ë-ÞÕµ¼ãMè¯>GóÄ·žúg_ÌÇ]õ¤Òà‹y‰/2Ú×ñZýòŸK±|6ÑTŠï¡vKiHe÷në]q ‰¤¸•lÜ´|·*·Et5…þ@P÷ê¼L¦ªH³Öy±Î‘þR¾GÍ{ $"ù}s¶åx|V¨±m$î~àRîŽ'²â^V4n³ºÏ.^»5ƒÙ-ÆAl¯‚jµVìÙ‚¥ÅöMŸc|i$ÖŒ=[°—Æ­—³A¼Ï±–›Ùšâ}~Пu«€”¼Û¶Lð|“Ãæ`²—ÙJ€§ÈUÜ_ Tnk(áôzñºù.N-%‚æÈ¿–Ac ›â§_~‘W$½ºó7‚h+–¬êø3/«B=o^f>h¬%.Àó2z¿K ð„ö¾ã’#¹Ô/™`ÜM'õ^Álàò$±tð¾ý~ç-¶.ßîòÉ¿Žo^;^š(o´ÝlXÖ/èU$’H…Er‰—¾D.í¬cnÂ9˜†ï­¡ïåOÿó¼0Dø× áœÕ÷‘Šk%ØèÁ©?±A…ÍP#ñ;™ñŽ Ö¦mìdÙâò‘w! 6üiÌ—žÐÇzd9Z+Îä•Ln_Q‹££IÓ¶²ñ÷uAšÀÖ8ÒzHD–4r·Ìl7{Mi.Þä19í®ž ³ÞæYâG”eü¤&sµ¼º¼î±@÷©ü—<К—¨ ¢é²ö#í×S ¨¸_âFsw“)A7Œ_Üó…’Iñp{c„°ÜÜXô‹-âýê=ÊÛ¿GnnO¹pæq¹S½]‰‡éobïW{êÒäúû/éÜëýæÀyeÔsÐÃî S +{¿æ’{òq7ß®õïØOO¬‰üõÉùQÁ{Æ*ukÚqSÇÛÃú´¡Øv“CZ)÷[ü23qc¬}[êÓš}“?”¼@é‹wL6_PÄCøé¸Øn±à re@F` "Hžïª-ƒ¢`²«×'ñòådÞÄ(æG=>5l +ï#ÅD¤…þ³7?²:ÉSîòmòüÖÖzœ ùÚåªéõKõ}+yw(DÍ´Ëña{siÙÚÉ~òæý´gˆÕÈE§-Ƶ¾™­ Èrôwœ0'ZßXçðŠaû•z[wÃÆéÎ8¡HênãÊÍÎ ùäF8íÌÎÑ/#á±úŽn§êû‡}>Gw‹|€»xÅœ7ÆEö²æÇŒ«jóüà`)¼m@Æ•‹èïø„Cÿ¥†Ìw4 `Œêƒõ? +>c]pò0¶ 5>èãÂ'ZcwÚ4/GL(ü>–§šm˜[»_^u›éÝb/p’˜éÝÎh¥wL˜hT>ö—_¥Ç€è¼áF°&×H7¥bI¿™/h›9°ûGªµ¢»¬(àMª”ÜT‰zPAÇ'‘Þ¸‚Žÿ¤€+ŠhW £È¬7ŒNŠ‹iä[F/‹‚. ß:d‡gT)~t^Z!: +‘¦Í’¢‚/³‚©¹@ª:fC¦ÓcEU™Fœ‚E ÙŢ‚)T„4/¹XQD*" Eɪ(§G‹wEü‰CkaYqP‚áVN{£‡+£#Ë‹94ýb1Ñûdbã‡?Ÿí]1‘µä)Õj G+Ä ™ T&܈d‹´]¥ÓùQÿ™o0ÛôÄR‘:ä~¥ã)9¨¢=\LWÓC_PÁ蚈W% O‘WDÑ_À$þ°(I&ÓÒ!ËTF‡Ã$;î2¡?rPS v•”ˆøîô”‘æ0IÔ2DWÂÑQÓ;8ö®Z#dVZ%%.+£íW9•]ÂaÓw i*L„SÎX$Ö®š†6ƒOX…B·…g©ÓJ,® u1“Xø=Uɰ0¹Ôýœò‚'¹¤P ¿ K8e…Ÿ,›³ãa(gtQE?8åtÕ RA¦œCÆ#1‰òtþ‡)ôI&ŽRË«Œö·¡á*c N¤É”WÚYÅ)¥}B…ØsÝÀN* ‚Sº+o—ÍÄ߃˜s,f磫d™Jß>Á)¥©#Š‹™XLÀ/ÀlÚo€î§StéB_è"¿Ý˦Öb ]µ–V¨J™cV‘©„ÖT$¿¦Å¬âA§¯á0µŒÉðqíÅb )§¢'Ç)¦ï¢!ó‹v\S¬2zGÑY`ÈaÆD3ÓAK}šF£ß”s­„µt84rÚщ7T˜ ˆX;»©”Ná°èƒ3ÔW*#–ƒn=¢ËôÓ-R¥)ÉI`<~¬]@›ÎåG—Ù±˜lýM +;ïÎLG_E寳 +÷A„EÌ¢¥Ïc9Ha”1Bú‘SÄ”_ ¯ _F&‘ +ÁhXLñ…":¼•¼Ù‘ÛqÓÙåÅL-zvt±k;³nF_ÏQÒi|hêè<òêØÂ&-f2ÑÙÌ9ç®jäÏ.§5*}¤Èf3É…,æJ6süK® Ê%OÞÀJÃ0]ˆMƻѺ‹*Äfî‹A@e ¢›P ‰èI¦d:)`l™¨JŸ*Ð%XÈÌÒåLe:?”ÒI¢l4¡Ã +&eÎE2J£„rj°”Y‡$c¥`1ièÌGÖ ¡éf-i[I®rê×%(;—­Ô°” XÎB¨ …?*b‚JѰÞ=H‡QG.$Ä(¢ +唓5…éµ\¢k:”Óƒ¨ú‹N½©(Û©óPÆì±Rªt9ä[¼+›ÿ'  ó±™@¬ŠÂ2—PbN!´°ú4'ƒ]ʰ³h¨X¶“`›ÂoLž%B Ø/eB ~Ôº8‰¥vRJ1íP+¡®Ú6O[§„LˆXÉ®ØÈÒ¦Âm)`nZ-È袻?}ÿ²D9¡%;5L eî$´”‰¡Ó I!}ÔDN7%,c¢Ï$‰ÄôÑ]îE‰Ó70™!E´Æ"C”h\BFŸÒb&ðžÍ»2ÅÜÿ]‹µ‚µ+à—¹¦‘šr:yç0±‚†Ô×Ñõ­ICO}Pû“fÑ+ß?K(Š•(*cØ8§œ©}IyÕw¥k‘B:KLªÿð–êO…¢g©ÓtRȤߗ2~Ôƒ]µ$™ê/%ti&RJ[ó’Š‚‰GÂ2º HIE1]Iòç56ƒõèCz6ƒ„ÔTÿ\ÍÉŸëUI +%r±hŠÜžª7V‚  ¯©•(?“XÆd¢ý­¤³R&#‘*àÐÎKúÈø§ï§ ¡!ÔOßwW¾s3{Wà<ûOg°9Ìé7…o‘°˜M‡ÓÒ%ïMDÇþ£cú'u_1{×MRT᤟ök§d>å¬dq +<‡)™Ï¢<Ê‹Ëè +×%LrI9›ªF^Š@$-d®¯Câbú8¶¤bWÉýR6S”ƒªUWÊÔªå0éŽ?í×Î3WZ’HŸaÊqL†¿Ð#Iå×£Ã6•—@ùÖK~ç‚ÄLt^)}qFù®ÓL: d'”ò‡¿.¡ïO¡ÓúÈ4&\ŠUF Ô}ú»Ê™0wvḅ.„Lg±ŸÊE¡bÉÙÌ¢FW0”ÓA"¥l&9ƒT²th]×ÑÇ×¥t]¼Ÿô`§º‡‰¶e. ©` +”3õk‘°‚àg—ÐùtÉ‘²¥9@ýž*BÞ4F…¾1.åŒñǯßYtmWNasÐ UF—@'ƒbè­¶Sª¼¬tGú£6*wj@2K½˜Í*c*gÒÁ5Tº+ÝD—éç :ƒ¦œÅdeRùƒd‘Lz·3ø(‡é"yÖñ³£1_1“¬DU¬PbS‡¾¥ ©« +* +·*„TJ?rçÒ¦²¤˜.â@g!WþüÛvŽÎܦJ ÑWÂ80éà‡æn#ÒûÈäŒR „4è Gh§* +S‚˜©Lº:Kè~ÔƒŒu¯¨ ó^I H[w‡žSN3§ä&¥ 9lš”ý´‘J¦b:§”N¤'ãEéŠé%Å´³jWZÆN0šÉ£œ„²ÖNNÃŽ{’<8*ËKèblÊ™€òX4y)+/ÞIËà3Õà(Ï{)u± EtŠé^ýè vŠÁÿ¨eúÓJ™S&[£”‡LÙê.^ŠjÑ‘äd]Ϭ”ªÄ…„L)βâ¿õ]\ê´z'—L•Pâ +}«NÅÎÉøÎEôÕÏ5QIµ]\ 3%L„3×µÁÿ¢[§îGÁŠå;w„º.¥ŽÝ‹w.¬&]ë?÷.ºúx9]Ü,fH߯‰ÄTµJV!G£’3§•*}¦¼œ¦lȇPQH‰A¡«Ô)«P·øÀÏ¿n纇ö—3”]DƒÒÍC׃/bj¦° +•±*¾ ºñR¦ügq!çFB‰éƒËâBšTAH{Èjz´Gƒö´3A»*­v—§ý§=@ãöú¦ûÝÿ‹¼²þ´ëÖÿg÷Ø“ÒwAü.ëçn´ÿר³Š~t=Õú-€ ,R±wRKwÄ•?³‹ WäTînâg…;  ;íϼƒÎº`É x6P¨äÑ\Ù»è˜vó à¼Ç¡£Âw‘ú[úîIÔé$)&_оîÞesP%TNénqå;5;cPøOÁÞ‘ÕkÐ{*ÐI*jÆ øWx õedj4Å.œEH¨(‚ °K,Þý†SÿÓæE?zêM¤;Z$ï—gœ,ÝÆH8ÚìÂ…ä?’=êüÑÌPeXØ(º¯¼ˆÒï§„…¨;ƒ~ølyá:¹¶º#üAv‹™Þî´ºû³~8?ØÔà¢ÁG¦¼ðM»FŠƒè ¿ÝM2 pçÍ»D;}d„;_³«¹ïÞõæÝcÄAw•”ýäÙâÒrÖZÝþàý»ÅLOwZÝù zçßÔä.ïz§ü‡ÃÇüç?Ûpä ÷«¤,àµ(¸`¡H1˜Ý’‚¸]e#¦v%é´‚g! Ë¢g·,›Œ%…ÿ_Q(×± · “# *@2$Fˆ¬”|vg›£T»á‡Ûœ“ +†jm––ÿ° t|‚ w^§¥÷1 +Y¥{UN:gý°ëlê^ÇÏ<ðNALZ¶Aù‰øÛ,zg÷ÞGˆšÙ¥* ã[\8ñ&Åltú…„ÈÓ^XÔ¬ aY©“ÂR4€Ô•••ºH1Õn9 +Ý#W˜ ZHFÏr¨ELFã•Ò/+C~ŸëíßÚ©l’Fýä»Pb@Yù¾ 6”W”þð»aEôàGß…Ò Pîܾ m„˜ +ß…<Å´˜ŒÓýÁ—±QB`qÅ¿ì§ýý½¿þ›ëââŸ1جw÷Éÿ?Ym2þLE 郣L"qAàB»ÿ¡òGÿ€Rt(éN3?+ÜÕ2Þ»úÈB}„.k=,wï)üOòûÏ´«àÓßÑ‚g޼óçƒÝZAg÷“ 'Þ=WõÎydKÉ&>$ÿ¹9™÷7¿‹NYEåhøÿùÓè_è_Ðÿå€6ƒÿÅ!{Zú.ùówÞ{ìÜÁvuûžwa%³ß9wìϨÎc.“81mlN¨ëÖÇgצd —¬Šë0g÷±Ø÷HÂ!9ð(›1¿Aµ+—GxûÖÇEÇ6ÆdU©mî2ˆ0§Iš˜Öµ'fÔçcUCÌi-j^?‘žZüŽ{hù!÷`lŒ01Î?„ÙÇâ“í¥ÝzAÜyárÌuñóMWq}\×¼öLzlõiמÍgññ®½ÉQé lBßšq™ wÄÇ_=W'ªæõ‰ÎÏÞŒ´•¿zØøçø÷îŸMLp¤f$5i¯º ÷å)‡ìlbJ\›ý “MÊÏm­ÖŒGÓ´«šSNƒ44ª’uûʨðà‹‡-¬µ'ÜϢòª´Ã(ILéÚbc&þÊC} 6Ù«Û†ï¹×Y¼|ïÜo_Þ:õËGÍeé)ÅYÜnàf\áËG­e‹7ëÞ{u»éÃWw›J^Ü©ùÝæpûø†Ó™£86)«ŽO)ë1§ŽKx-Ú´ßÖ³i·*Ö',•QmÓÚ°¢ ÷öô@:Rn鹬O#€?~Æ­éLÚe5ñ)Qe|ZY·1);™˜QœM»%µKjßõä\qÆ-:óè[A£6ë7©1˜“×Oyûß<O¹ÌjÌkѬO‹N¬MðÅ`Œ2A˜ˆ´I¯ŽÿfRT¹ÛøgÌ¡ëŽ;ÕÜ »¸š˜5ró¶Ë™VŒÕÜ´_ÍËT ÿhrš8íœÀœÂSÛax_P/ÃýêNÌ'oIú-Q‡èdÜ)9U])ôlƧfSÚ£yQµgüZ~Ú«¯M ޝLr']ÊV< ìØ +éoçl—·á½¹Y‹ [m›N½pÍ®n_w(›ÐúKù,æMXkX ÿºEø{úp¯I…û´‚lXÅÅ|âÚ”OÖ˜ö+Û³aƒ +‡ßħdg0—Nô_IÊì¬QŸ›³ô¦ƒÊΤ‡ +óñknÞ‰èÿÐÊ(¿jòÒéòàÝ£ö>KÚ£hÙ˜è>ôú~÷ÇkÏćÓ^˰Ō…T]iŸ¤&içO;Äg·B0WaƒrÓ.;óê÷ãW#‚ƒqŸ¶ûÅî§›cŠÓéX#n³"åV·Ç¦x‡¢“܃ëÓš¦…Gê“)Ooæéíݘ†ý7ÖZž˜nûwvJ;º&’êié™M»º%éµâv]ûÊcÞÇ/n5ýaåa[Yt¬}OzR\IØu ‡òü#ë¿ó_oú#ìÅΔKÛ±1Þºçåýc¿Xyrú·˜“,ãQ·án£óŘÇ$MCŸpI–ö)§â\jFxœð)š2>eK6hÒæçL–´Ï¬†5$ÙU›ãªÚ´SÓŠÁú[éúøÅ½Óᆲþõ„µúŸÖ˜„ÉI›l}Xxàͽ¦?.~Uõ‹×ßÕ½Mp÷§¦Ç¢vñÉgƒûÿ~fàø¯°qu;á3)×GÛ*æ¾>òß^Ü©ú÷´»?mçÄA×à>“óêxI¦s›d„Ïj؊؆ˆ N’òê…°dÙÙÞ‹ÙY[Ú ûÙ!?Ÿ”ŸIMÈk·²‘ðÊÎeý²s„GZ“œT˸LŠ´Kt&5Í?–õÁZðh»‰€^œñ$¿Y“ ö¤<&Ŧ]ן1 1E‡Múô¬N– +è%Xçh/¤‚ò–ÙGçÿ´ð°¥$±]Í,ô\ÍDÌ–ìœíBn¾ï "dÒg¼Ê–ŒG\ruïϹ•Ù0¿&æiùtÃÑöY6lÔ`>?:'á”Ö¦ýâ3Ù¨6”Ô%¼Ã+#mÉMwÎwñë|èât@ÃÛt+W§º÷®Ù»÷¥\:îÖ\ß Ø»†Ì¬F˜‹ô}ž ]¼‡¿ˆút„GXw +cU[6Ò{-Òˆa ¹DÐÖ‹ûmfÜo”çÂÊ®¿>×(³aµ÷ë„·ì6ÙýYÊ¡iOøl֤ר$`l‰9ÛPʯh3Úø§å‘ú÷ߌ6|›½×°g ë÷X}ê="ðùÔÚH÷¾ÈÍê]üªñ½Ø¨èX6hP£6Puà~­æNŸšõ¹AŽûÔožˆö½–ÞthZ×Üòó#ÇÿéÕ}áaÂeQæý½½1·´á僚ß,?¬û]tZÝú‘ŸÚ¬1·Ž¿<,„1â–7æ¼²†´ƒwdm¬ýâAó«c£1·IújX|táÛ¶—ïŠöFŸjëÒ“©iÁÑØ8ïÀòãŽò™K§ÿùåî§ñ]ç†]~våYsé꣆ÒäT× "(kÁœ²Z öNþ`íIÿÅŒ¯ÇйÍÒ”KÝ”v‹kr!°^>ØI]ÊǯJ:Õíi·MÑw®è°#7=£j\yÚ\º±ÿï½ÿWÿ…º_ÇŸ˜y£ÚÆ7ÄûV÷n<|ŠMެ<®ÿ ôÕ‰_Î×ðGçõšŸýª‰;õÒèþ•g]¿¼ÓX¾1ܾŸp * Wçg¸Gp +ó(šÖÁ¾ÁZê̇­Ö|ÈlÜŠti¯´.ûš4y´Vf-Ö¤GÕœv©[ó^£â{Ÿ^´×n…¸'²ÁÎ#ÃõEÉQEáîëÝœæŸØkÛ“ ê¤Û“ñ¯K–lH/Oy´Ü”ǬJ^Hzôü”Û$NÁÓ!Ðýsæ^bÞ:DÌYûˆ°Qků'øGÖÀ®À¹˜]°^€¿ÁüRϵ܂íR6Üwöž ÷HkcÓm{0wÛÇIwûgëö†’u{ËX—üÌAÚ§åae ’žÇý¼ã„Ÿ:º•óêqÝï⓲ƜÿÂ7D°ïb­íŽÎ(ãi}Ê«hM¹4íÙY³k¥iÐËù…ÛÙÈÐT §7îÓ‰ÒAžÎÍ*:3a/åã_µ ޝM«š_ƒ®ôüeÁ ÿës¥(å•Õ']ê–œ_Ú°åçKƒþŒ:u]0/<"<ð4ÁæµnΪ’IcÒ+ªºD'—GZ÷¿¨úÍËoy‡²Ákã«Oä•/îu–­ó>Ëzå Y¸6ë—7áE#á7ë2þ[ÚkQ¥ÜFq®jHÛµ-rý©Z_M +N]:óËõae}Ú8kFÕuŠNE'»âNɹ¼ÏbÈLš¸[ÙôpÌë'‚OÓ°n6F§’“ÊÚÔ´¤*í”Ö%fDÕ˜GÕÌšÅÜ=¡¿~uO°wñ¶hï›{¢}ñqYõƈàÀÚÞÇÉiÙ™”K~.r¯…µ|_û³¯ì¸17Eí]{1ø4}Ý” €Îð%iX˜Ë¦Ù‚½¾='kKº»E§Û÷Ägx“NQUt{Ü¡¨ßœTׯʫׇ%°/ÅÇÖ‡;>ZypþƒõG娤²îõÃ6Ö«û\öÆ3é‘×%¢T•Ïo×ýÎqißßÏ~Yõ¯É)E=á2) ŸYój\t46­ëØ +ö^ÊÁ|¬M´òü^Õ¯^=>û»õñŽ×'EÇâNE؉®¤CÕ˜õUDÀlȇ¬V°Ùj< hÇýšî”[Ñ€{49¯^ƒ±ÌûD§r¡î£i_ëÇë£U¿Ûq‡µöòiKÉæHÇÇ[€/ÞΛLoa­$a-'œÊ¦”Ç N¹ | lhÒ-­Áïàa½"»h»‚Ï4ø¬Q‡ÏZza_ ¥ꮄÖBD¯ÜZ0Ù¶ †ìœ^ý³5?ðm6l±e|šîØ´ðxÞ¯•lE´Š|D#ÏÏi¤DHѵ‹*1ÀTq§ð¦ðè¥9Ÿ^‚{dõ˜«ëá“7çÀÞlÎÈê¢öMÚÛcÉ òŒ_'Jzt\ ì_¯hNúÔ[K¶kÙyƒ\”_ê»™—¶Æ܃0ǵ˜OT“‹(¸›.IÍâþ'ÏŸŠfCýW·çL¦­922 Яè4æl,{óô|Ñ›gÜO‰€V”Ÿë½Ž‡{3áÞKéÐ…;D¤ÿ‹(Œmè^óûãܽ„K|&4(³ ¶Ë£­ÑÀÜ3’ª˜0:Ѷ‡p‹Oƒ-¯ÇÜŠók“‚CoÆTõÓ–M‡I”²Ëk“ÓÝû×ÇZJ_=éÞ³6¦<sê¹/Gù‡Â7«ƒN{`Mzt¼Ø”¼&>6ÀÁ?ŸW¥ÝÒ³«c]Ÿ.}×ÁJNjÛ·½½¯º#îVnÚù‡£3âož +>]y*ÜyØVªm{ÿ{(=ò/ÉasWjÒÄMŒIŽÇÆ»>]ýþüAãïço7¾·9*=zMž‚÷€™3 cRÎÖb“õŠO5ü)6ÕR›èü$éVµ,O)ß<åîÛ Ø‘¿Vvüۘèú8:ÑùQb²ûÓçZŠŸõþ¯žkuÌ8,Ê„CV³ò¬…µt»öß—¾=óË¥ojþmå÷ã¥']{z¬ÿcáŠðЖÛfÈ€ÎÈú„§€œÙœæ^âذK@çiy„?{ÄìŠ:¤[òaUwÞ¨ø™ ª;í› +cq_¹“öõöÁØqq¯ª=×¾]ЩòsŠÎ쬤qe²{ÿÊ3YÕÛPßå·‹zãÛq#æ:_<ÏÚœ ;Ã=ñÉê3~uW6dPdC#æïJ®§}pÀ X§1·øTÔ-9 +*Û‰ˆVBÌêw`![_:`!³~kÞly»hîݚ׫ó zm6{6¼Ö2áï$ƒ×‰ÙËOs‘žËù£!;¯•ã0¦°ÿjqŸ²5ãÓ‰Ó^ ïᅵƒ=\€—tÊj@/}|æXÊ#©Ù´ c~³6æTµnÚÅ•™ ^ší¿‘›ë½–_4÷m-™z²ó*‘4‹Z5>¯×%À‰B7²á‹wß>·]L¦‰¹Né¹’X0Xêë¬Aœ®tåù´K^ŸæîNó%\“IŸ´1º ~•™½p/á3k7ZÀǽý߇lý7Ùb.áiÿ­ê_¦\ƒ—_M¹À>‚=Ç]ªfÂ'®‰M7ôòљ߾|RûÞ+ÐÝ/FÍíþÛ¼O¿k/OJO¬MÙÕç£ãÚÀG‡æî7}°x»þ?r!-ðtù©Uà(¸G/Bí¦\¼£Ig×Á˜½©ìùÝÓ¿zq·õω)Mæ×Ë–ó>‰OËÎÆì s`|W†ÛÙKßµ|è½~öß®ðÊþ× Ã™ß%Ç m›#’Ñáî£#ÇÆ‡£ã‚CëÃ)» 26Ý}8áUg:QtZt|u¤ã£õ±V˜‹îÛS]{W†‡wì™þüø¿º.ýåÛ¢s+¬èÀ\À…¦„GÖÆù¢‚CÑqÞ¾OZKüßÖ¿ÿú ïpð\|ö¹]r::Á;¸ü¸ñK·kþcý)÷Ó—:Ê® Øï„¯6íy Xt¥ z :ƃ¶$gÒU;èìf¤W à²`ç;²`>½`sJx<6É?˜]ì‰fO{…'‰ Q—]Ò*qïèÌÁúăʎ”Gp" +¸féaýïV‡%•¹°m0’udò–¼_Úö¿…ðVq N$\‚ã逨&‘·åAOÁ¡›˜oàrÊœÐgRÄÁ&­M n:ÅU›°W6Ü#ÐÇ®íE“ ýŠöÁö‚ÉšèÕ€½tYÀl¹9³þ,i¿Nt¾˜ÔÀIxdà8ÌÖ’ÁðýKóÐö’©—É[â.“{$ó› ˜õ˜G^F!€$`Ž“0î`ʤKZ“öéA¦hˆ¹$§³a½Šˆ˜LDÄlÎ.˜ÌyаG„`GôÙ9³X0¿Y¬Dxð[<Ôï³ åæ¬ƒ9°}ð7H¿Ê¶L_Ox nZëüsk»2~peY]Ê)…µl«ªø˜%;Û÷9`;[øMÜemA»˜SÑ”°Ëëׯ _ÓIÚ×w!áRœKÃ|"»‘w´}òâÁÉ›ÿæø?¯Œ´´fWÖ¿œÐÖO];÷Þ«ç~Ÿ´kšbS’SÑ iÕÊSéáçy{f¿myå‘àÀÖ¬Q¿<*>º2*=|IôâqSñêè¹ÖÆëÞN5²Ö‡YÉ)´†Œ’UÀY¡/[þ„;¬š4ô/éŸY¸{úß‚7ªÿÉ{¡ú=ýgþeí;)àÉißõS¿~}·¹dË«l#\Š úùæqóŸ_Ý?ûÞË{µ¿;°}ÃÚ¨øæÔtd>áWµÇÁ,?i-~õèÜïý_œøÅËÛu%߇Åõð‘4pø8èöè´´*:)>¾:ÜýÑÚ(woÊ)9“ñ*Î']°†ÆÅ•¸×$O9•¯·ù¯Ÿøoo´±Vu±#_4ÿ95¥jß +u)„™ÚΌˬÌylfÂgF¢Ê˜ 84ðÒ\P/Ûš·ô¯¹dçžÃoÓ€ƒ=C¬‹´lÏd3;îä'žË»ñHßõt°wt· +Ý {­=8Œ«¸ŒðÖˆI#¬Yñ÷À%¶#f[. ,%k É/È:Þ¾5¼ýŸ ZÌÙPï"Ôw%ßs]sJNÇ=²ºUÀ™KOÏ]’¨¹ˆ^|‚‡ù$u˜_z›- ¿NÜÈ ÷ áA£2Pu!Àó!ô´ó+[ó‹Zev^«êFvfkq$kO&h1dϳ°W"& ØGY:¨hÍÈÎ n÷©:Ö‚À­a<¾ "ƒßd—lŸã,æ׬O‰N¤¼V[ÎßÓŸ°+›bÓ0V`×3³×¦¯Œ{ç>ØtHk7¦ÄÇ6_­Ž$&•M™ Nój:^OK*_ŸïÕ=OË]íÚ›—œŠÚÖ†õÏïéN½~li…}!&ý±›‹RÀK—œû}l²k?æè—5þ%¢ä°Ï£Ó¯†;8+…G2Ž^SlB×”Ÿ^yÊ?¸1":±ùLxŸ’VãÓÊúךK¼WŽÿ߯ÁþhĦ„G1À1ëÃÜOמ6³¢£-`ÛÚ÷$Ó­ ög<ààvX× ¸[ÏNtïÛkø05Ý\–uv"Ü]û3`oóA਀}6'ÄÇSêFÜ£ ûòaJê7¦Î³bSÊÖ”Ûb\‘ûYŸR´bSŠ:Ü.;ƒNJΈϼmýèùÆp‡NŒ»LrÌ¡ç¥ún̘ɯüeÞd~;gl¬“®9DUÏŸp÷$11;ð%æUs7']‘žM¹µBbQ¯ÇçLfX›¢Ì¬É‚®60Ÿ :áh(N¸Zö$¼¼ã© øltn~ðÅ\ïç¹P?ü Þ̇/|—ŸS‹s ‚š|Dø@Z s(͆m½Èg‰|“È——5¨£ ?Ö§$'Ó>Iý6èëܬV‚yM1§ðD 8ˆGÛµ<vÔ ø*tù!Uñ𼙘•·fÐCªn,¤ê\’ðš xèÊœ ¶Ú'ˆ‡7$œÒÓI—ª÷ZõkÓ]ûÖ§:ö“þë$ßõky€7Ï ×ð€^”ô^o6ÆÀÎd-4t3¼•.´ø/;§èÊ ;¹`² —òÄ`Ô\0ZÄÚ—[€gæ ºì¬Q›ö¥)¯Nè»Ó\þhðè?æƒ}×¶æ.>&"}WAYÓ›á´gÖÆ{´™Ð•á,଴ϤJº¯Üº¾öFý—î$\šÌoàa‹%3kíI:Œ|ÌmÓcî>[Úcû{|šwðÍ$oßʈøîÒ ‰€N²>Ê;UÕc3CÑq›hmÜв<ªª^…µôê~3kõi÷¾ŒË$ì±?ã]ë·èqÐØ¿×O›Š^>l)YŸ Ü]ÆÝןn›œÒµâ3f 6­mA~¥øD×Þw«þuõqãÑÞ>lZ×þêQ{ùëûÍ¥·^˜r鹉iÞ¡å‡Õ¿^¼y⟣ۀW+j A˜r€­™Ô¶À)â“{££u¿OŒýCb¢±›A|KËÍ7|ñ¸¹øõÃö³^³>°õ·Öá5È›“Nù¹\ÆÄ£h]‡ÙuÝÿ•Í Á±å{XÒR–œWa3²³˜Cq>XfuTxxxaÎeoûÒEûôÌÇÁ˜C~6åRžÏÀÞ‰/%@þ _ãþ«OðPß5b¶çb +8A8z­í$Â}WA?êÓn£4í²êrÀrËšñ´!7'oÏÎéTÛ =WAŸÚ»0Áš¶^ê½´=géɆuÒŒß Ë^Úž·]Ì{0„{W§ÝîÕqažâð€-xÐbÊÀ{px.î1É’«>¸örL×üzDz óª:¶æ ÚmX‡ß?7 dç´²dpˆßjNú>ŸŒÆÞL† ŠÜ¬N¾°ZØjI,ú¨‹Wµ>Ö\‘qTÙÀ…¯ ¿ÍQÔÅfkKù5ÜüBï<ØÇܬQ—vßÇ<—oážžtЬfÅ`Nˆù¾/¶‘¯mÞhŠÃ8mΨ›AçîÇܲs9Ã\xðëüìÅûÙÙžA„âvmËÚ¸¬*´öD:Ùò¨¦9æ¼u~þxÍñÅhÔ{õQ*hÔo8ÄÕ¯G‡V§Íêwÿàü%ð]« ”iЩXø“]Ó‚¹ûû6¦mÊõIÝyÂgÑ~“ìº÷ðMV„!×'„‡ccò3qgùõCeel Ö5ŒMÆkÑå`¬`Í©qàÉ/îŸþÍúhÇþ¤G~þùwÝ{°É^ ì=-0ª¿Õ”öYô›ÓÚÎ:ÙËOº*–ŸIŽ.}ÝY‘ç‘ÔÄ'xG³^ä»Swe\Êæ¥»µ¿Yü¦ö?°ysxÌÒ­³¿~sÿÜŸâ£]³0çy–—‚ï|õ°ŽõâÛóÞœÕ,ÝnùpóÖ¥—ox; ö6`>.¯}õ¬µds‚w¸¨bù™¸2ë×K߇5 Ë…õ2Àç¼×£-eKÿ“ŸŽy šð×m^þV^‰M ]Ü‚oÈ{-š¬Û$M9Tçý_Vý{ðê_$Gº%ÚŽ÷¹œø„¾+áè5§Ï€µšöªÛ’nYýâHku’"ã¼s÷ D:î»ô Ž8`#À:F8Ê¥éLNÛT‰©«×““÷iº2!0Vóó ÅÛ:ý÷/´,(:» {óÚLðgÎø-º|¤ç"ÒÅé€I›ûvÁv™©…qwç!„mq§U™²›E˜ÓªEkkk±ìVï F®É¾¡CwÒo1¾±ëxá{ÒÏ’öu6dTe#!æU6m:$§35?» á!³ }µîT5G½è][: \ Ùž€º;áÑ´¶T-?í4+ÖÇu¸×fÌz‡pO_~ÖÚ·µ¨×åÌ}ÀÿE ¾eðZÂ=p!î¶(2¡žì|ßìÂн `¥Ü¼¥/¿ö9lÒ¾îu[ +K{ ’´gàâú”MñrXv<îÚZ° äuêtH+HºŒ¢„S×±1%¯I8tofä­®ËçÞ[y$kÚžþìœÝ»’ø´ääüíÚ÷6'ø•¯ÆºŽ-f—ÕlN·U¤œüÊ”OÞºY÷^Î#oyûÜhÁÃJ.ò“b>eËÊX×gožuíM»tÂu¸Õq±æWË·ôÜ”ëËqÌ<À®jF6psLyÚy©êWÎþÿÚxÂ=úbLtl´çôoS} W®gÂîÆªdWâé™—#ퟬMˆªqÐSúÎØŒQ”ö]}” }™ôõ%íðjyÑIřؤ±+jï5¼¸ XÒi”nÍö\ÞŠô\þþ¹eö‰<ÕÅÜ{{¶Dgôü—O…•ð»†|äÂ=böâÃLxè61ÛwÙàÕmqgÛ§)·° +sø©i‹w]ÌÖ#¿`ÄÛ'|-Ø +ƒÿ&|zéóaiåÜmé§Yç@?:sÁëý&YÑ>Ý‚>¤Ü:¾ÿëónNÀ¾ }ž‚=£jH:´mq»‘ëþ¦ƒ}Gºïï^Üj?†|è)/âKÒ³k3¼Co†;ö,|sîÃèˆèdÖk¥¦j^¸ÛQŒÙ[9T­¸SÑŸTÚ¯×ÿÎÒðáÿ2Ñsº¥k³ßj.VœùÃÙ6ëñÀåûëv“tá®àÓ(Œ ´î± !GöØ‹âÏÓæ7éc“$沨.=/Î"¼€…W/<ë8|½½äSãzÉV¸ïZÊ£îεB Å€qZ2ªçïñößÑîÿ¿œ—j~Ÿ\| +\y÷^ø2궯îÜš³l>Ã½ÊæØ´ütjF×¹ ÂLHÖœ ëp ¬3<Êß¿éÐvÏ=|–t[uøìà­ÌÜEÐí¶ÞD@/{UmSÒS w»Ø«ÃºóHgâáÞ I_ÿE|ÖdÅgm™°Ùœ›Õ+AOˆ–žikŸ?UžÊ†Íø3áÀ»2sƒ·ˆyÛ ŽbÀögÃF]Æ\ßwùîꌸùõd÷át`ðk,tÕð_yï¶âaþ©„K|&ãWwƒ-Ô§¡ÿÉY‹%î¹}“™í¿U\èŸmo84î1k·"7Á&eÀVÆÝšö¤W ¸PÕ‘è5ÛK&dÏÌ講µõGgL‚˜ËÀ[™–T/˜§js\v2¶ãÕãî^~×U›TŸ‹;”õ›ŠÓñiõù uÝÒCѾè¨âÌ÷Aƒúûy½áh0 ð(á³™€»ôD§Ô-늚è”üÌÆ3þ^°h|RY—veÛ»ƒ­ó¬ó£¹› ï½üºî×ëÛJÓ“€µ}F%ŠMì¨Îy{­9_%1%«ML!¿³ðTÊÑöIÞϯ^=Wœ‰“ñõ]I»zL)§Qœtž‚ùÙZÐH¶ä¼­ˆJŒ|U¸»×’v_¹¹®?Ƽ—oÅš¶7O[Š—î´þ9rKü‰ïw/´õÇ<ùkXc±éÏï$×îãþÞþ¤Oݹ6ÕùIÂÁ;˜œ'üZ~Ò'oŒ;·¹û’N£Í®+άƒ>{ùì\ÑÜç5lûºàëò^º•ð_º!|ú"é·Z×Fe'ß<â:ð$Ü?î²jbÞ‹IÿàuX¯ß&aAu7擟ß”ŸUt`¾î£ë“5H;¥ç²¡Þ‹)46îÁ!<ˆxV²5§äg•]˜³ëÈò£³¿ÝVÂÜH1Ÿ–‹Á÷eæ¾NVÛ>— +› Q¯¦{þ wèem~Ÿ.u™äø¬ÖªAI’jøIàkkÓ g°>%©J¢¸'§AðfXQ›Ô¾†5 öf+(©Ïúy'—ŸúãÒw•¿x}çÜRwÌ(ëH¹, +ÄSR^ù7¶BŠîl@Ѷ8ÖCo ÅÁLJO¥VÕʨúÜÊ„ì Š?{ý¨þo7–¥¦äMÛakOÊ.©NÍHN%ì€ùíÚÎÄØ™÷×ÿÕæ“óN'ªNÜ#­Ãf$µ˜SÕ‘šêIMõ(cNÑé…»•ÿ¾1Ú +{Ct6TñsHGº”q§NkëëìœuˆKÏcÞ®ƒ)w÷aÜ#oÌLê쬵Ÿ€5 œÔ’°ëÚ6Ÿ©Î&Æ ñqm3îÕaIc­lNz­:¤»`|„±)cwr¦×˜C˜°sÅ&Ú>ÂOâ ¿¦\êÖ„]z÷D‹á`KR>auì[Ú/>›ôIÏáèl:tñnÔÛ?÷݈{>ÅýC_§æ}šn«hIÌÈêpXoÉ@ö_#ÀÖã³äzú|kÞdÙ +«¸„_T›öñNlE$MÛ³Ò¦´[µé䟌;M"d]Šü}èìP'Ã=²&Ì%9›ñkxÀêW§Ú>IM–ÔlßõX@/Þ˜4 °ØœAŸpg²&<¨jÏ„@ßû¯K_ʧjüòó¸Or6áV½ïøxy’›µ¥çµ +žÉÌ^ÃB_x'Þl5DÌõ^ÍÍ ~—ƒµŠ|y™ˆÙŠ…U][ æÌAßöbÿMäÏØZ0h·µjX·Ê…G¼½°VN§¶þ€F” +ißX€÷Û.sFKv^«JÍrÏ>ŸªûS~aàÛÜbÿ×€å.n­Ú^zX¸–AMÌšŒYÔ—ˆµÅ¤ÒƨødȨÙZ°1šo)ãny=òCçßåB #@ŽüÊ7ãí¥ÜŠÔ×U»¬nþnwi|ÂÈ߆=˜õÉΧ\­ŸlŒŸýã‹Ç~³þ¬åÓÔ´¸>ãÓò—´½×~›þ,vÅÙÕIÁ‘ÉÎOãNq1ÛÖ½¢ÚùG­,ÌÞgƧÜzÁêp+;r³òŸ^Ý?û§´CÚ” èÄë#­e‰é®9£4(ÖŸ~oýqmIzZX—õéD˜[zv}¸Åx}æ^ŸRw.?W%0ßÃm‡ÒN5/‡8®WÕ™˜‘7 3ɤ[Ã…yºu©;+Z¶çäoçdmÛµ`{N#É„%çãîîcq‡¸:íÖó¢ãºÖø¨¡#6!­NûÛäBbÀ&: Žâ榻´zcÜØ»/ß¼ÝúˆàèÆ3áI£—åCzUÊ-­ß˜hݳ6Ú\B@Ÿq¯EŸr¸_ÍÅ<’†t@z>·lÏëÕÛóæÞp–„Çf] öÉfC>í-øË‡Í¶lÆaø¯_Ùx¬#?¯Sç–îà‘¾È?›Ÿ5¿_ÔiÞ.¨ÅoT„³mïÚäÙ÷×&›JaüϬÏð«¢v-/ã½x3ú*ë·˜b3ê¦Í]çꤢ~u¢}_Âg6¬y¬Úà–ÉàÅÛiÀwÄsóP2Ôvµ‘ök…€‰¤ÄSÃ:iÂ-«Å|~nÎÜ·½d°óòîdH\—™St§çۇ2áë3éÈuWt?1ßs9ÿ|ðÁÛ—ƒOóKæ¡LD¯ÆBZI¦° /±þåyï—逸”·e#"à2¢³/žv~¼1-ªLz•í/§xS(îa~ð1?tŸ³ôá + +:R!~}< îÌ/ô}™™µØ°_gæ †Õ‰s¥8ðNàRýiÐÃxÈb†}Ö¥öÆPnΠ͆Ì:ø¦.àQÝx@Õñæx|?ЉÐ:ÌB;ùy£u{Év51£.‘`~=°aýI8Dg0‡Š—q÷\Êû?ß +Úú€7·¿|ØQ¶1!­CñéÀO»S.àú‹.é1é›öS5oXµs®ŽˆŽ&g.²©cúÖÍgò3‰QñÌ k +xÁÊwol¼ëã\@X¿ k!éÒw%íV#î齘ñ÷€×P\v +öFÆÎ;–‹ˆÏ?»yäô‡ÿD8Lº|ØdÀ}^ʧîZ½Ÿ–×㛥ùlÂ÷;Jó Oþº¤–îɨ{ Iž!‹Nc~%áSvÄÜâ†[ú~õrï»Éib{Ñ4øý¢Éö\½îÒv­»es#]­;µühÖ–]Ù˜qõöe]—oçý}âÑ©•‘vöòã†÷7ÆÛ÷¤}FÙʸöüÚ˜¦ŽŒ±=×{c+¢ìÎ@”mi¿ª-‰ü½[OܧmØåç€Ë_Ì…ÌaË  x´èdÔË;ŽÃšÙZT +sKSÖJÒß%·0x7¿h0&¼Òz, êÂüInV)ûïK `ÊÎùgï?¦kÝ„qßœ1ƒéí;ûbŽ+ß&ÜWî‚éßô¥/f´-/&Õxøâý$`£Ä¬Ù‚…M}©@ïåt¨÷BfvéÿË™øì†]p4åÓ)ó‹ýß`s*Q<,¬‰û…§bnþñTDp:=‹âÃ.ä_ ÜÍÍ÷\ÊÁºÝzÑ7ûÜ`ÍBß“ÀýãÈ' +ó• )¹ gç~" ƒ}¢“gƒŠŽ|X#ù~A«ùïKzãöœ^‡ÖlÜ%>õf²£"íU¶ 3àk±ÂZÖ'ân«1‡¾žßpë¸1Ž úǰ 6.–ö äÃ=Cùˆ¥g;bÐeÊ ΀ŽO{/|žïû"·hûhÔa ;$ÍGô*äãNºuð??Ûw#7;t;ì½÷÷d¼f-òƒ¢ø¥´WÖŠ¹%õ »ðxÆÕcMº/}½9cUF]VõÆ”¡+åÒñs0æ™°Fõ(º–íy,­Ûö }Aø´Âõqáѵ ñIàb€­µ"¤ósj~l1Ø÷k««feÊØIúBCdƒ’†ÄL×þõñÎçoŸ~÷õ7Mì¼Ûj͆ 𠨏ÏbÌ…¾ÊƒNÌ¿ üfm +ú™pIë€Èð€ì‚¢ Úþ<á½|'1›; µ¼|Ð^æ¼XókÏåsâ^½&@ú[ÃKúLê §ž—ðiyk.ù¹5¯ºmÅ«jZžUoÁØn%ün& Wäçtr´þWÆÄG—Ç%'€œŠÛ•g³!ÐoAk/`ø†”SÛñõ¢³5<<ô-1×ÿðFØv úæÅ3þñ…;meù°mŸÕ·—4òü‚ZúM/êµè TÀá/d#àÈ  « ŸePÎØH,(9·î×&`ž’!‹ñͤ¢.í¾p#å»ú8¼xpÂg5¤ _جɜœ Û€gõö&ïbákS©PßElÖlÂ"u4¨h]Ÿ<îÓ2s`Ogd ¯ÆÔuqÏÐ ‹.컸vG1NsÖ,ÌçÖ’ä:qÌ¡j Üî¨@>ù¿÷$æ´À[ä-™0èXsÛKFË_^jµß?ר²A/Òʶ­—³Ï­WòÏmײ ¶«°Fz·–z®o¿°ÝÈ.­Ø¬^±6-=ö¸õ_‹Lʘ¯·/º úñÂ@9Àä˜ß¢%B¶Þ,ð®T g ¸ž ^N….?Å#=WSÀaÑ~ÌÌ©å Ïþ´ ".Ÿ +È›7í]£öî£)üüÛyKÏ_—l—ßFŒ0zy:héþ}ìÑõ\H'͇mxPvCü8¢×fçl—£~e{4˜gáÂØŸ°7Íf„ s [ˆ°Š”VmŒHŽÄ¦µIÀ¼(~?í’œŽMnŽ‹¦ÚöaÙ‰ÕÇ‚Oן +÷m…À°Ú ìàmÜ„CQŸp*êaÍtmÏ´Èo÷èù1·å9I —YF¸õBÜ£éDÏm@»1»¬6éV·¯MËϼ|&?þê±ôèÚ˜àPÚ%ªŽNKª7g¤5+c’cãÁâ}Á:8›  Ë£vYý–߬ßòZ¿ªËqýÄ/–ŸJÎÅœfe|ÆÄßòÛ¬Y°]z» ƒ½¢ìFqs°‡NlŒËQfuÚ)=³ÖˆÿèÓ¿À_šÌ “TÁ~©Ï•íi·¬sŠÏnŽó&§ÔçsKw2ÁK€)À®ú€;ÄgR.Ñi" :ƒûùÕ)ª XLØt&šrHêƒ7Oü2øõñ_Ä-ÿ=J î5©0O5 |!å5H³a“0X/`u>ìÿf" ®ÍøäÀí ¢´_ÙŠð.°Z€ë‚M–6ÅÜû×fºöeªÎ,Ø,t¶¦=Pw¼ˆôîÖ ½ s lÎò°øÐÚSáþÿ±d½˜%cÂŒŠLxðbÁv…˜Sò·%Íoá/ëÎú¤uyÐÙ™­b{ÉdÛZêûpзð÷utzvx òã„íYàKqàj`ά;ûúÒ³½`s”|Àk¦ü"`íIK„]i¿¢=êT5ÅC`k_’¡ëÓx¤ÿ‹Èñš›ÉšR>îɔǤMx?.ß8‡½•]èÿ–˜·ô%<Š–tH'Æ#ŠËÉ¿Ä<6k~®ïZ6Üw-é²êÓA ÞÕ•ñÉÚ ?ØÀ¡ùYw+¬“>ÚZº4ž{5ø$ÿ¼çÆÖœ^ ÿÖŽùdç’^i-5b>i#è¬sk3za:Ðw=:0œ‚î +k„ÙìüÆï³—w;Š–uW¼z(üìÅm.;>!«ŠOˆŽÆàß6FùŸ½~ÐQüênÓ^ܪÿ áž"<òÆ´KÕ”þ˜ŸLÎHO¥]Šs„GÝŸPÕŦܤ۬L{-ê¤]ÛŸTÔ¬¢¼IU|JZÞì[åí]WyõTrdù)wOÂÎ?³ ŽÄa]Ç’S«cüýž¯Ný"ômÝoÞ<ƒß;L¤S‹ò„˜CÙ³s÷oL´íI{ĵ›ÓÒêõyeÎe’¼.šýœvŸp)¢cÂC›ÃÜO¢cÜOq·´v;¢~ªÓä#MÊ©iß—V¦fäµ[€í3nyýê³–Òçw—UœÉ8Í +ÐÛzྤ}ú>b²`IMl¼cOrº¹ô-pö­HïU"Dڬ˫OøÇàkþ²¨’ç#Ê®Œ_ÖœžØÎÌúŠn’L›}œhyi¿¤nÃÞþqbFt2ãRžG{'ê5ˆßŒ)ªãNÑIÜ/Î#®ÞixY¯ªw+KöÖ+Q.*òKçLÆ<:ßóh‘¿¡†€oý0Š»Éx,jÀ†—c.°£5/7«äaþßFT¼´S\½>ÞýYÌÍ=œ¨Eyt^ý̆{/°r‘ÞËÙ9£>@œEÞ´ ó³ŽbhCÀ5`\ˆ0²C¦žÜ‚ÑŒ‡dÍ™€ø,î—6¤à]ÀþiÀ‰€I‹…¾[r%;§ææÔ¢ïuê˜[Ѹ XzÅ®iy1,=–t\LúzúW'u/v—gBZøñ®Ø´¨j 8iÚ§ÅìÚ¶WÏTÕ9À‰yÀ1„WÓÆ\üc¸Kt*ëR6¡Óì\ï5|®÷*òKæçûoå`Ì3^½sëy±éé7OÛJ_<ì(}þ ³lcŒ{/'&U&lÖ“y((׃â=ø6FŸ…®·ÿîå·¼²ñ‘W÷»Ë¢#üýÑ1UÍò#ÁgK·›?{­æ_^Ýjü]tLpå¬o8LâÅ;]ìØ˜ðHÚ%«KÀºŽO)ëVŸŠ |ÅgŠÊ×÷„E'•µožŠ¾¸ÕÍÚD¾ÙMXÿ¯ïuÍÝlzoþ›Ž–ïw—''EÇ1—¨êõ³öËGeÑ)ññøŒàXÒ!®Z~óXz(ôeÓoןJŽeÚ¶´C|*5Õõi|¼µ|s¸­4>Úõ1îÄ첚Õaá¥[]E‰ MÓëûM¾¾[ÿ^bœwwÈë“üƒÉiÁÑĤøÿáè»ßšØö~£[÷v«ÛŠŠ+( ‚H¯Ò{/ ½÷„’Ð{ïB + %tBO©TË>ûœóÞ{ÿ;y˜GÄ™5k}?mfÖZ)f1.êBY½P•CΕÃOåLð©‚Yd€ë!㯣I¨ï± +ùíd“t¾èxvEÎøþk‰å˜óÇ\œe.Õñ>è\C-þg…Kû±È(ûgwèµC£ÎgñÉg*B +pOɧ@¾/²àçš +Êù‚€eUR³Îçeßçé6Îêxö Æ'ëEpã$:Ä +ä’“YRú±œ˜ôKCÿŸUò¿ÀñÈ5¦I˜Ÿy|®¢äÿ{£Bøo Cþ½ÄÂÏR Ï•„Ô %>Ñ"F‡ŽÜ7CL:U3NfXEvY9äû«ì\Í(6Oá¿™ÄÈàS&î_ktÄù,9ëû<ú7à?¿õt±Ê¦œžàx…¼Ðr6 Ðz|ʱ“äXçàwÇ7ç?´ä‚ÿÙ¤!þ½ÂDí 8Þ…}_"çÛ5˜Dý4<ôtž‚ø?;ü¦ÿl0 ?–‰oÒÑ?6¨°ÓERŽ蛃q\èv7Úw¯¼?@ù¶P]äj+ýúÀ÷ÿYæ àÏs5"êû<6Ù2CJÖM#¶ÇÑ!§rr.Pp‹ÿíïeúÿns8ÿ^®?KËsx£“9þ|¾’¢°ö†iñÇJ.æHZ^l’’S€ œ`™†X¤P_»ªÈצ€…9~nžbþkµ²ðS1€ÿ.¼F +À{=HoÛ$6üpî»?ó2㣌#Ôxó$3Ý0LŽZo¾Ùh,r=Ɖˆ1{ãäxMmî“y®¦åYd¸çцQ˜ßá*Ø:IŒ¶ˆQf)>n­»Øc±üÂpý¯yJ¾gúØg>vzaû}·sEYèùlI¨MŽI0˸0›œ ƪÄ6ƒ‹9Aúé‡ÑþGãèàŸjjþ¿˜eVÇ\úibÒ±Œ”à9Ò.)ûj»‡ ?è0‰J?ëÅØøù†Ô‡úA°÷¿ÈS%6Ñàø±ü÷fQ‘ð;_N®>S²ŠÌ—#NÈ>SV`ìò +´IFÏÙì.ù°ÖZèºÝWâ®ë…¼?ÃþµH+ùÈáο(‰É¿–hÐ_ËL䩚þÈ·ŽgJÿ¬q™?µô’oqØ€·%Ÿõ¬¦dٔ踃‰bo³Ðè)RÒá!~h“ÓÏTlÀ!1V).Ú:…1M Ga¾[½EïvJ<õýè¯gSä´ÿ·dmàÜ61É*EG˜'óHÑjV™ ø¿û#¥_çj3]¶Ú!îÖ1LÈ~Éǽ~ˆû^ÔÓ4†ÖµCÝ·{Ð~NŠ'Y9«mhïå&èÛ>„à=¡çŠcî|Ö9 ÿÇ2JºAŒûfW:¾­âóþ^ã0/Ïp`Ø"…Ù/`›¼Æì‹qt¢$¤ç]¨Ë˾;ÞqþïÜxàRkîóÕ–\—“it¼ƒãÏÝ¿X¢<Â+?Ÿç‘ì³ÌbÃ86l£©äõZ#ø¹šŸå!gM CγÐßÿWCñÿë!kX8žOµò\¯e:êlž\p¢r›†¾~gì¾Ñ–÷b³¥ð­®òN×}·ß‡ô5}f™Äǜɩ™v19ñhp4ŠôßìÌ èí»µð ã6ì§–G9V³JLŽù΀/;V ""¨÷n©ïVw±ÛRcÆS =âÚjC®«i¾Û[ì¦.ù´Ò”ûbŽ›ö`Ž›y½òú`´Ñ –qŠÏprïÏWŸŸ:c•áãÌ"Tˆu ´!ð`x(&$Ï6g‡Y²ð|Ž>¡ÃL›F†íX¨Éz¼Ú˜ï²;÷­»¯µÂÂhÊ~¤åÆQºnˆÛfsÁó¦¼çÇSØØŸó´b]4Ê.¡•œkêê,Ó¬¢ÝA$ÀÍØ 6ð+7ñÎ)ú÷­–|Wm#øs6ÚyòŸMLžERðÉ$*ö:A€ÚÊ}3W•pÿ` àý…š˜ý/ ÏŸ,”#-j&D?AŒÞê,ýxÐ_êµÛSø~N˜â´ÚýÌ8ÿ²Þ‰qÓ¬S¨”K4ÇZ-°‹|汪,Ø8Zà¶Ó™ñt¥)Éép¢Ôo©­ÀÃ>MÊúµÂ¡Øå¤tãpñ‡ÞÌç‹õ Nc¤€ßÛ¯ŽÐî â’¶;~ú!lÈZäÕzc±ë^7òÓjäŒwovk» êk“P3mSÌ<“„‘¾7€ùª†ù,Õç<ž¯ÊvÞî.õ&„_W–§¿:¥&ÚÅ´´½A|ÐVÚw½©ð…±7ïõ^{¶ëQ_‰ÏÑÂo½¹à¥mЇ8SÕðŽÄôŒí>¨ûj]êýÕªä{kÕiNkµ©N;½à·ÓÜTç¥XÈ^5J×y«„x‡!ƒ«­E¯4ü¬kMù¯'aûð —x,eY$äã&ÀÙ×½þRÏuÀK.Õ';øN=œ §ï‘"-’J´qŒ—§!Emu½Y©Ï{²RŸûL]úTÊ‹{h‘ÓŽ€z2‹A†1¸ß!àm÷‹4N`£, +.üh¦¼ÐºPŽvdËS :n𓪊ô»ó‚|gmMöMEâý•&ð«ntŒPŸÞ'€O3M`"–ªóžM‘¯`b¯¢c¯3Òlö`ƒ÷Gð«-ůíÓ„xë6êdÚ±öKÙgeEôMeêã冼Rv¬ÀÉYçj6Æ4AN´JÈIû¥žËM¹O”Ü´;*NÆ]ueîã.XÔRf¦ën?*ìxš™ovû¡v;ÎølÊy®ë)tîçÑ©„VdœÐV{p!z%õTS]mQ3´õ¹/§ˆß~Ÿ$ÄÞl/ ½… {ÚîË8å~VrÂþÜhËp9›E|;QÀßSì{"C„ýÐàÓͳ1v%íLÃ%k8ÄÍN‚¿®î©kϹڔí²×[ìu6CJS×çÊñyðÛzSvð¯E>w³>]÷P?–ûöp4ç®5Ùi¯'÷Í¹ŠœÕ ~d@gÿü¦q¶Û_üa©1ÅYÛð`¶"þî\Uö³&xðíú¼Ï׌CÈȞ·2vÂM15ñº„–rCÅ˾'!EßC…Þ˜â'ÞEFº\VóÒ½,@M¯ub|´õYÏæ«ÒœÔ´û3¬¤ÛS¤˜k +^ö³>B²K7$ü–aŒ/eç?,ÇõÕº gcÄCÉN¸? ¸º,Œ¹£ëƆ/Ta‚w»(±öéòB€ß Ð;m`×íÖâ·Úêœ' Â,g]ú«Œ }½Z]âàGÿ½~¤yŒ’°Ó‹öÕuÂ>뺡¾2nÈ­Õ–ô—æqv¾aš°ÑŽð0ŽRbŒãøpãòëÁp©×þ 䣮3çõ|m¢ó\Uê£rÐz'!à`ºÓóZk*r]o-z³P—ÿ\ÎÏséBF_!ÅÝ9FEƉÑ+ `—Ya–“”•rG%L{¼X—þd­9ýÅ¡¨ô«ˆëëÍ%ï·»`>@¾ôÒÔd¿²e€ÃíôÖ¢VÛÊ>Ì×€Ÿ­´@Þnâ£%ôL‡Ïš&ÝÝ‚û­¶BÝV›O= _n\¬)x±Ý^â~æÐŒîR_7ïõB-äÃþ9q©¦Øu»ç¿Ô„ü¨àæ8-×¾Øì@~š¼¢$|¼ºÔøÞQl”„™ô@DŒús–xg¹6÷Ùz{‘›YRp>‡IW5¤¼éÆø_]h,þ`U‘6{ÉÑ +aÁë bÒã |²“œGDþk¨8h,ÿ£ió}¡ªæŸ5w¿/ûœr]ɼ¥kK¢kÊpÞl¿Ôuü”5^2~чcyq"ÇÆ A¿è{¡^{½%6:ó_^¾Þ‹Ê’ò³Ü–[‹½.æˆ9€ù´Û‘ã²ß]ðn¹&çíZsñç 9r®Ò-RV¾q’[t0Š Ý‚zl´¼ZªÍy¶P•ä´TüàDIÎ݆~Zo+ó\m$ÍUÁÜV¡¯6ZJßo´c|Fù.¹_Ÿ^’2’|ާ9¥ëݨ/ÓÜàß§¹¿ËØ‘JÈÑ7tMÐ÷3µàWøÂý\.›'©ÓåiwĤȫ +VÌõaòm)-ꦘ~{·¯Ø› ¼‰ }wuQPûÏ"Ÿa’ÀüwúŠÞ-×ç>™f¤Ü@E\UUd>eg9¿ûm–›óþ`©¬Ìz>_•óv±*óÙ .üO »®t—¾»´Õ›î:ÄM{;@‰{jÇÅèGð€¶”zØðXoË}®äÆßA½Ò õ¸¬äÆ8·ãuãSÞXJØîF~Ùî*û¨F~ÙDø®´@ÝÑ Âü®^Û]×û èlØ‘ˆœ~0Œ‹8dž:ž©ýPcÎa“6z2ßΔ'==œàA c¬¬í^tàJ+äýfäÃA?Âo·å7-H{AHtûc„œðÆ:INÖð#o.TÅ:-7d½“¾ÝY¬ˆ|hìOô8èÍøj’â’7‡ÀnV))Ó +d‹5 O®4Cߎ“’n ãbþ˜a&ß±NÀý­3˜hIUÂkrò«k{ƒÔtm ÒW^‘þ@Qwß0PúU?„øºÞVøj½üj»§ôÓZÔg½£ôë‰\@4K¸…C耵¶ÜºŽ\×qjÜíš<Ÿ+RNÒÓVBÜã6tœóÀ3Ë@¦ÑÖ¿X¬Í~6ÅH¸ÓPô=ÑûÒ|S¡[>á56æÓÀí<²ˆðÉÇÓäôS ·˜$¿õŽ˜ûó•¡7Õü¨»›}¥_›0)Ïy…ߨ°qF¢B~Ô÷ç½ÝèÈx/"û^×ud}8QRÁ[=eþy¯ö¡QÛý%1‡#Ƚnðëƒ!¤ßR3ä-+åóÕÆâȧ'3l8 -™€Ž_®My¼VŸùL?õ:Q¢côbxHeiÀm\’ûÕµ~h¸ðÑ«õ/6s]ÖÓœ¥´°Û1!îx†ƒ0M1 ìr.Â4ÃÇîb‚€Œúq¾6牊k¥&áîNWÖKË,!MR•ôx¥—x4ÖÌÜय´¿š­Îz&åæ¾”U@]‡É©o¶;19ÊîV?%f¡)ýÉbS²ójk–‹®òn¿0[[ôºüg4ð* ðBmÁó¥êœgÍà×j^Â_«5YOöº!÷†_„e¡7ɾ­Ô#’þÑòYƉÒ/Û=%v{€?+uW°Óhk‹\é¿}t¾4N‰·5„‹¤ÄÝnƒøþ&Æ…ÿ1Š‹¼Ö^âÿÇ$)à¦a¢ÔŸ]x¿<×ó†Y‚ËÜ‚û¬µå<Õ6f;/7ç=Ÿ«Îv™a&Ü›å$?9èG†T—FÜnEDúKIÕÖƒ_ºå¼ x.]g᛹šôG¨/×e´ §­Þ|¯azÔ“£lú¿–+ël2R†Ð& óžLÃÏäðP“¸øób#ø­ª$x‰à½A\ÈNw‰—qáoEnMÎIqÚj‡›&()³œ¸;û½°Ã(5c§j›@Eÿß%jéÈ`‹¸4p½3ýå¹’·ùmµáµÕ‡ ”qr§èé÷6š +_K‘adz˜eSÆ{zªûµÍRô\M™‡˜šô—’—ä¼ÛYäà9|on—’lb\œ¶)ûÕzW¡YÂ+Û Çî ývJ>ïô•>¬®Íù´Õï¡¥¼î!%¾Ðc‚\ =åö4+éÎ#åá9íÅ83Ëc¹V÷éFÐËû XÄ£sL¸Í±&àçtݹ/7Z“œ×›“_ìtCFΤäøßÈðyy’_ d 0þÑbU,€£Ø»òòÀ›SÔ/·Á~.~„óHS•ãþKË!üÔ²0æI\ÌRm†ójSž«Œ“ô€ýúrWiØ£åX¨¢2ÿãÉ,m™D'œ`ã¢M"xè|CÖËvTèÍ.\¤Óî8&a¦²È7Цqrú±›a––Fì\nNwYjÎzaa@V†P!«=¥¾–)FîÑ89e¿¯ø£qüÁ,‚|6Ùvµ¯4ðPÄ%Ød ‚½anörÚsŠéÜŽús©*ÿ¹]LŠû{±‚þ}®’s$âCõã<èV?.x½3ßu­)㱚—óPLK¸Ñ ½¢kúèÇI)ššâ—Û]”è½^ê·>¤ß•qBøÍ…êì'‹ €ïÏuÖu"ü§8°óYò`æc™¤åM2ò6Ú nÚªœÇ +NæC)#㾄–õb«óÍ0&,[i#„,ÖB>-Væ=×Rïi«2B?[dÔÌù6D¨¶­$ðDYŽØÄê`>{“¤4“’Y¦AÎò³Ì roµ#½5•™k²ßFi)+­p¯.´ßá(!òpbÆ„Q‹ÏLœUÉ,”ú;¹*ôŸµª&û,9ïȼöi|‚MŠ:žÁÅœÊI© -SÛŠ ’ ÞÛ¤\²¦®àÍ(!èšZq{(ãÅ4?⯹ŠT§ƒnT€ÐA^ªûƒ>tÖÏEùbŽ>QáÍhÀ^Oê«¥ÊÀë[]Ùoh¸$ÀÃçÏ7¿Ú#E/5_(9)w¦™ßnõâ¿Üî%ÜŸ¯OqYkÍwÝ$$×@CîO0Ò½Ng¸¤c 5 àØt‹u0”á±×›ç¾\Ÿúp»«øÓÁ(;³÷@^Wèg!§ŠÁKÍù¶{r=õ#%~»ýù´õiÏ–»KüG jÁu½˜ ýa\ä!-l2&d{ .¯.ps²<Øäô|ó4=צ`—íc¹Û[äf-óøéÍjG±‡¶³øÓ\gaÄÎ6KÄN|µP™ñì òõp´,Ì6 K8S‘ çjBÆ¡¸Ô‚qs»»,ìLÅ,1‹±‘úa¸¯ª2åÞ,?ÝIÅO(导8D*ëòý7¶FI0ã8,lð¿»ÅîAâƒQDðèû‹My,v99va“•UàO\Ôþ*X?µÊyÃ(>þh¸Ìg­)ÇU[“þ຀Ÿ‹lô±’ž0IŽ[í&œ(ë„vŸp$ÂFÙsmÇŠ¼Of‹C¬²ÒÀ‹çóB–Ƚk]ôˆµfBÀf;Úw¥¡à㙋~î·ÒZøn³æ£¦ÄJë‹=†ð‰7WëJ<GˆÑGã„(ý(*xw¨ÈW? +ú3÷ÍZc¦óá01Å âB«âg<Ÿåg=Ÿãg>:êG…‹™àÍ^tÄb#ôóÑxVÝ‚ñoƒ\í*óù}N˜øø`îo—3 +ŽÀ¡b•™§±I LÌ÷µªë\%û@LM]ïD~Õµ#}öºP>ºVØGë3ß0B˘æ$Þ[mÉys8AŠÚýqV_ÎN}¨©.tÝì!F5•sª¨ ÿXæ²OØÄãÙÆÆó¹Êо²¯ÊÊ  †ÒÌ ¢ní¶Z ó6K*°ÛƒØˆ…æ¬g»CàŽ÷T@½|9¥&YDì|YEî)3å½}’…³+Xðí‘âf 3[€Ú3a#NDð û4 ¨]\ÂÞ°c]'Tà‰ª©©K{1Iøcµ-ëª6ßSÌIuÝè(øx¦`”-A½ª4侬šv¡2¶; +߬6¦Z º;S_eSÑ‹š +ÞP£Mó^¯´e¿]kOe‘ ¿-v}ñž™gHE¿ú üoÈØ¡÷7{ Þú펔úšÄ¨(ã81—wÛý”ŒSu ß8EÏ^ï(ñÚê)õ–ò’žNP¢nJv-Ÿ=ßOÈ/‰v»»Ò_úíTC/1Kñú Lˆ~² déinÔ£Jèƒc ›Ï4@B‡ 1 C˜X‹Tˆ?’VŽ¤ì¢“9ZÉ™–³Ï“sÍتáâû)Ñ–²ÇcÕX«ˆSd—ÒsÏÕÔƒQ¨÷ÞÌÏ .ÏuÌ]8”SrwK¼‡Ë|7;òÞïd<Å$Ûd”ì³y6Ú(eæìŽ2“öÆøù‹­¨O€ïþb@úmw½0ÿl½»Ì±ùµswˆ˜ê|0ÈÍ?q +–ZK?Nñ’ˆËcï-Ö§½Ùéûé‡àÁöiZÖöáÛB[ñÛc9v(ÂD­´&?#ÝžbÇ=èÁþч º¹ÝCIŸªÇú5ão¨„`Ÿ3õc‘ ¾P“ó-RLÜfØm£7í¥£­?´Œ²Ã)b’EʃÙf«Ù{cô´¹ªœg“”o7%¬„çSå1»Ñ>WE¬0§ÅÎ2ïNrô ;þÉÁ &þhœ” ô5ô\ņËé}q‘Ï¡gW hvE%ý`‚•§ëÅÅ9:`¿ ìq!ÃÆÛ%¸ØÝ~¸ßÁ0"Ü0†¶L±¡ÆIJ¢º>éÑRk™·ADI4ˆH±Ç +ìtNPnV”—íNb¾Yê:¬ó­£Vy9l¯¿ì“¶9繦6ëÙJ[±§ešš èdž²&íù47ÁÉ:MMÒsö`_—›2\ÖÚòßb÷ÇÙæ©J¢qœž½ÖVöù`›à,Ý*#¤8Þ1lõ‚?ÎÖ¤¾”VÄÞ3J0QöY6æh†^´Ú´*ø$‹œ‹4ˆp1ºðçýbϽ¡B¯C:ƶ@‡&O?‚ +³I0IÇ2TôÞ`á… ÁyœvKÂüA}æ‹3%s6W-0+*i–™ZP«“„œ´ÛóÔ6å»ÏµA¿nŽb7úqQ¿Ö*G|ÚvüÓZâãÁ.Ê,ǧšd¸T£›hšcã{8™>¼|ß»†1:õLÛ:aÒÔVêåÐíqtÐÆ ì«U `e™ÏÛ‘3"Üœ@µÈ˜@Û\m«^ÆÃëzË>mt¼ÙÊ~µÚ•ú\Û’úþ×*¿ú|IP»ä#‹’~¾X]w¬ÒlrÜ6͆Çè)ûCÔèõ~RX;>éÉ, ùÙ:ÜD6 òó7Û_·;½¤èÃ1JªUÁƒ›4ì +yúõdš]fžd-S,è±’‹6Ï0 Ì2Rš~ f%GŒ³3Û±ñ©+!ïv: Gƒ”ó(3×8Î-ÖõÑâj o¶{1†©JÜú0%~¶¶ø¥¢ºÈs£ k™d£~j„å¦ILô^_¡÷zGÖËõnˆ§M&À–2\&¨ñ¥ÌÌJ>Øw­d¦ü8þ®±(æöZ !ÿŸåêÇû"ÓÄ{âµ3Šˆ:’Ò¾Ï1JO•ÄŒåÖŒW;=Ìãtoc€•ª¸<þp}’ÿPZžþn¥¹ÐŽáGݯ+ »ók¾’c“á./ 2ˆ ~›}Ežz)2΢¦!,júhš]t8Å;êàx† ¼°Ÿeòõh¬èóZK’ób}ìc«˜yª¬)_ïeÄðëÎ 5ëXÁôš7Jˆ F>Þ('$Zç™pËJ}AÝÔf˜©@é'©éÛƒˆ ƒLŒu†q¬¬Ÿ@‡íÃ¾î ¢£N”|º¶¡ôÃjC¡«®â}0@È=SW0¬ÊrøZ?*FYñÂ(¦gŸ-TWŸk+…‡lÂþ(ìËJ'ØCU—úf¹3'àd–ýüÛ‘”š¿Ð +~s±PS¿hêf7ÊO-Ìyf( <šÀdÙ•Òñ\Å:S^ à½ðXÆ‚ì÷C¼UüøÛÒòØ»RnÜÓŦtw³´,ޱƛ£î&¨™Y=Û4àULOÓu–}˜$}»®äÇÞÝê/p3Ncßâ[$ìã0=ù`€‘xóØ­hˆ¶#Ç{±3Ëcg +»=I.ÚDžkªZÎVê:Q +Yú:øx‘Ãø±.¨9[âótã„8^Iè#QCQæÉFe»à“Ý€ëEȽg˜Âå˜d¤Âï+<ŽUC‡/v¾?œÁ%&IvE}Å‘´–v0ÎË_mÇúVÑešŠxªáÝ4Ò1åÖ +xØ )¸=‰>ÒÕ0£ô½¬¤µä—­QTÐú ì³ABƹ–g’U‘÷D‚Ý3q£‡´ÞFùºÝÅŠÒµ•GÎU“> òÂ/¢²ïÍ H†ÞŠ,C/;e©‘4ÃDºn6QiW$(U4¡?/µÃ-ІÆÑr°ð;§ +AÛ v]¨L¹¿×Yèn`eovW¤ÏW=6éëõ¬ÐƒöŠtëP5ì S˜·$¬Š–âÈÏæh87c‡ àp„[p0Œò7OÐ2l2>Ūêµ*jÊ-2x¥µøƒ‚ŸöX×ÉÏÜjÁëzªr7[¡{=UàÍ6~êf +b¿››´ ´uŒ‚|1ˆ(y´Ì§|3 +Kw_· ÞV>ëdŽA?[i:]iè·jøÔ…ÖBÏåv¨7’­ +.lµ á±ÖXør¿êq8µŒ²Ž%,ðѰ¬­clµ ÓlcMÛX VßÇJÖTæº~0íl™Ç=^©8˜·§Yù{ÓŒ¬C9§Ô>[A<Ÿå“l2NÙÞ.l·«ô£m’®à"b^I<íz2óîr5%êt¼£áT*$ï ”}ÑuùNbÁçKu]gKum§‹UBó «Ä4CË?ì6ñ|‘?œ* Û)ö_ï»m @½v†ðñ Ð8§XÆS ŸðQ?P^|:]/4W¢·Ûˆ¡†^jŒ]T‹ßêa—ÌU»Fðq‡ø8›œQt<Ë*±Ëá òÊðÇbvØ]"ðXU_åÀÈ>VÛQ^[Ý”Ä}ÀãíâÂw†Hº.ò7ò^ņ¼[j$Fh[0ÞËíà÷‹ÍYïW»ò}ÎVyÕ?·šf~mÖ ë%„ì•xÈ¡º’k_n•œ­×vŸ­±ˆ;"Ä7UcÎ+mgî«#&îb¥Bp¾RÝt(å•í R’þ^hêý9×Ü÷c¡¾Õ4U³Üój­/ãí¡w¶RNÜÄ…môsRgj©_ú¨¥÷;ð ’ÿÀÅ„þVä)ÃÓðê%èŃ¿@·¯]=ýëwЗû—H‰¾Ns +žîábÿ^å2®s™%-WÕû<ÝBþ$­Ã½Ÿâ#_Œ–ã\ºp¥÷*‹²®c€sRãÂ/qb/Õe¥ÿÎM‹½F‹ þ”ü[ÔgWP¬ÛëË-°ìgMÈäÇr!Âcw™l—Cu½¤(]1do˜›¹ÜÃKš®¤xôQP/;pðµE?Y)©WБ—‹ý|/qb#¯ðÓ"®‘b¾^ÉþüéRäÛ7  —Π° endstream endobj 57 0 obj <>stream +7O@à÷K]ˆ¬›]åÉF‘q4]ËÚ µ}äyË˵9³µaãLìó>lÑÝ!\éÃq2Þ}‹x>€.~Ô Éº‰ð»ìþä!èÅÝÛ ˆ×Ï/3S#oŒ2 +_ªQ!€nPWx›–Ž2ÈiE‹]poy]þû=µäXSÍßeeŠ9e§Ùˆ³Ôí§ä"½ZKn±Ò¯`¢ƒ®Æ~x{áÿ'96à1òëï+ ˜x»‚³Ì²°Ö… +Ö®”˜°'ÁDoú¦sŠ–Ú¨Aš:šŸT@÷™dÃÝúY.Âü¨ûаÏW!á—ý]Ÿ‚Þ:Ý…¾~v™žîÔ…O~-âåéúQ¹vfåb<ˆû"r‚UÅÁœ.ðÈf-w¥»ÄC)(|6_‹õ™«&|­ÊO¾ öû| àw‰}õõ*11äOZrÔ5 ÝWÂ\Ÿ\J÷þx v«6/þÚÞ%É¢â“ͳ•Œ=·`k²Ò öÛG~[è@y¯öS#:q_¤•e®íÈì›]ü VîòR®ÑÓâ®G{¼ýÍùÆ GÀátóÈõþmP~ Çï“üâÐ+‚æm±…ÖY\Öú`¶·¦-áÃù*“f×VV—LPf v5bRpû"VÁÖµHV‡ˆ¨,Iz^žýWu^ lLàíü¯›ÂÂçIfÒC/ó¹n›öKÇ«ÿŸ#áðº˜âÆÛô^%2ÿ£0÷Jat(ÂËôÆù.ÈåÎmл‡@/Þ]¿ö;èÙ­¿@an® ¼ ïKm°ô;êÊ—3 µÀ²À€jGqA‹#줙þ·Ñ*ʇ&lÞM>$ã+7í +4:ôR¸ûK V]@)î ïžn^» +Š|ÔràûK5Ñ7[ПÔeo¦8dzU˜w«ìè™N@•âR^½ŽLI½”Jñùòwu½¼óÈ÷Ñ#PøKÐç§N {7ÿýîþqh÷MÏSg0Ž¿IXE.k]¸/ºaf‚n¢£êäÅOVÓ½Úp¨'íx´s3v›‘•z¥ ØÿR‚×'P–÷gP¾7(áãÇcgÐ+ ?ܾ úý·ß@/ïþåè /?æwUÒkweT£ׇ!Ÿ[ P0Š|üü +i¢†èÞ„)¹EÉH¼‚ør BE‚¢Üžƒ<Ÿ8>:?ݽvtç+ W÷o‚ž÷öþéÕX¤Ó|Kñ{ý:bk¢ÄG/ÆGot!>­uã¿NV"_÷RËî×ÁÀ71 ñWJ#‚A9~ž ¸oAÎ÷Aoïݹݿ zu÷èÞõ kW.ÿ/Ïy>úýÓãßäÂÿS5Ÿu¾TYe›ãSNøt À¦)é›CÄHeáS ºè&&êw\TÌå,oǃ ÷÷?E¾yôû]ÐóÛw@nœnÜ]¹üèp½”O fVô=uáËö¨°è@ÜQcVÖUͰ[¬tyâÝú´‘q‡˜ ôIØ¥oîn œ@¾Ïž‚‚_¾=ÎwëêUÐsà/î?ݼúÈÝéñ-øw»ÐUSŸÿj{xºÈÀþ³Ã«:[Öè$åùœm)l¦ñvœ ;ÌD~¨‡æÞÅÆ~û-ñ³ç¥÷À5\€šøÿÓ=Ð5`,ïõäé*‹ »BH ÿk¹nœ.‹Z›âƪp¯Ûèe÷ù¨Âë´‚¢«¸Œü+E±É¿|ð¼ôðö]Ð} o_Üzûä9èÛǯWiÙwšÐˆ—3•¤ µ.”¯EE›Õ<Œn²º<^]¢è­Ï­¯¨ôƒ˜•s s)#8äùü èp„»¿}yó·?€>yŠýôñÒ7·ßÈÉ¡÷º°©O'9…ïׇ¨ =Ä@EÁSUÏø¢jfõ”Ã\š‰¨Gµ8âL~þŸÁ^  · ¿×oA/ï;œ€ût8óýC'ÐÓ{÷@ýþ'èéÍ; ÀoAððÄ-°¼w Ø0Ý=^7ÈNÖóDµ ¿^&êiUYΟհâ›Õhø_ø¬Ì«‘^ž ×ÎA®@y9?º¾½yðôøö= 0^Oœîp}óübdÇ]• ¯ 3å…¼1Œ ^í*þh”Q3tbnÁlyüX}¹o-ï\œû[ˆ§è‹« (ÁÃôáÉ ÿÝúýwÐk§§ ûݽ{ôãíw9ÖëÓ•*pâõN|äÑ4=owœðm{˜¶Ú‰ûªí ³±/{Yøç•°¢ÛàȈK)_¿€½½A1ž^ OŸ€þºrôøúu ?>»ºîýu à‹Û H··—²C}osr<,rf鉖_~¼ÂçØ¹D‹º¶3IN˜i({-k$~ªE•<( +½’þÙ”ìñÀ²3è>€åû\pøè÷‡ û7þ=Úýþ± èùƒÇ ·§/@ù¡a¿RbœfÈþ›ƒ¼ ½¸UhRÔÕ¬õQc–zé‘s=äZÉcdrä•°¯AŸ8ƒ|^¸‚žý{ÿÏ.î€^X¼ýçõÿ=ÿ'` =ž½¹=qF„\®-Jú­™p}wûs]Pk_daæ´é*ʪ¾nS"ÄŒñ1¯мk¨„˜ßâ<>\Šýèô7ÈÃå9èÆÕßAOnþ\÷1èݳ' W`,“?½DËθSƒÌ|»Ü Ö4g?ᤎ×Q=&jX>uˆ> +Ç­G}ÒMæ¼­A2_`RËnA¢òn`R wiy°»CåqÓuýð¥¾.ÚîdsùþtÉ d>ó|]q¶¾zs¦ +'â¥Lv²‚†kéž½l–W õ´{ÒŒç¹1òˆOKâJîÅæÝ$fdÝ&$'Þf¦¦>íÆ ½U åºaRÂf_™×î>Ò ¬bíËk˜ºÉ:ÒÊx3U3Ü€¨D¥Ü©Gæ?Õ×ÄwÕÔGqQÔפ¼2'xbîŸEYWýÜ=@oÝjùÈåÞcP’wðUjøIšà£if¬ö0böÅÜBÃt%N?U‰Yæ+Q©÷+Šâ¯‹y¸b!Ë·“Ëv¯¥0]éìÃäà„+¾o>€^ÜùôÀo® OßË‘¾A—Ó#Ò.%\ãÂJ^ŽrQž«”P³²Šn˜âYf¸èSµ°öl±ºÞ6W#Ô«êxêÑú’áÆæ!‰àRœ•u=ÔÇç·woPäçpû wÐÝw@±ŸC¯¢r`Îô2¼[‡õe’Ï +^¨geM »“¼"ÇaV ŒÒ +øöD%li¤¯ì$Œ×Ò¼˜çxH©S~tòÕÔàèËÁ^þÆŸµ{tçÏ[ w. ´°„ß°©Pç.jEüÆhm¹Q^7Êè9ö÷t­iòl½¦ãdµºeWÉA©‡Èßåq½ê«V"éeEĉ’s›™y»,5íN¸oÀ~ï>€¾ùøâB.'»ùÅÿRQzúŸLDÉSi#5L7\<”Ô±§«È·dw¢©ÚØakC %ºQAþ¡Œ˜fR3K­ÚªjóB}‹i¾©ëh¾eàx©¾ë;OæP½”šª£emð²NzÄpsy,6;ý&{Ò[ÓœÐί𮫠l¯¨øÐ\Qã5ÕÊ Ùµ ³ýŠã•Æ›¶¦áx­Yt²Þ0bÓV7:ÞM˜æØÈ}3}œ§ôOÖVñMÑ _ª…¬ˆzkç‡ëJU½´ˆ¹avêT++hðÁ½œ›¼§ =ÕQ¯ægmH«pÖy!ç_+ÂÊ-WTŸªéèÝ l”n”¹;ÎË×O×Ѐ1¥¯ŠÙ9Ú^bÀö5v[ hWm¶Ë05êÖ'Éii€“=76Þ&ím/’tVÆ©jŠ×E-LýLsõ‘R@ÞAÇ(«ãîïŽùž-óß·Ú´¶E&âHAÏ7k´í™ +ÄŠ¤ +1Ó_•1ÕQ'm«Ošnç„Ë኉n®f²…°"b$­ŽQ¢—‡Ia«ƒ˜¯¡Ÿæc×zQ_ÆÑ!¿öêÅö…NÙñbcY]W¥WTÑo°?IŽ—5”|n, ½}<ÍÃÙf+hbrªA‚9˜Ä}3ɬÎÐsl³ô±¶¦îPÉ…[•îæ;$§‹íâóÅÆ®Ó•šz½Š‹9˜¡emŽ¢ƒvDø˜-1!ð +ï‹UBûl­À¦hj— =£äŸÌÓJfˆ)‡ŠòÛlSëÑT½À*’õ +>vGÊÇê§kÙÖÙj¶ILÍ0ŽPbwI‘›C´Ø=qkÅ.pè&jÑ{“õ„q!tk‘h’ðá'ªÊò£iÇbU ßÛ§Ïšú­*6ƪ./;š)/2Hx%ûã¼BûlË®®æš”|‚U]Wgœi)*dÜÒ-)z[DŒÖKié“ä$ã ¶4ÀK[ë©›fú¥öõúaó< Ôj¦IA+2Ë01{#`w‹›ücµ²Æ<Ë'åšm±®Ý´ÔØ¿¥nêØ™mïÛVvõmËØ+#´èÕ1!X'©ÃîË9E'Zî|QÈý®pþwÌ=^•cD“ŠV`Öp‰Ö•êz€óë¡“ëkhïZƪbAô6XV‡úʃƽ¢òuŠž1­´ +¾&gä®N³ŠtÓÈãǺÕM£§Ë5-Gj"ød¹ªãl­cátµ®Û¨dž‹sºø®9`lgÙˬ€¸7IÏÜèCøÉ˶ù†ŽÍA\¸¶üvs²0ŒÖͰ0*k_]Íd¾Y#¡Mš8]ªi=U¢ã§aa& ,tw fž¦çœªxècq±,àÚ8ÄýñR¿½¡Ï®´g éofx‘κžÜ€ãùêíŸ%i, 9—“N×[g Õ56M9V7^$$Ü™©Š}r$Cfÿتî3-×÷J[ÀAáXkò|IXy²Àg<Ý!ÂÚs?®ôzZV*x–õ†á} æyùxIÈ·.p0Ç‹tˆm–”e™!&ï•ù팔|ú¹UÙv¢i´Ê»‡¬ŠŽ~‹ºµ×6[^j‘QÓô"rÜJk©ç¡Œ”9ßSòe®µÔý`œoœ"Æ[gé…V%×,#$«Y0»ŠžwÔÝÙR»ül±UäÀÀùŠ€k˜¥d¤Ä 1áp†š«hÍq— +b½~¬Ôv,6X•5åGr’~¼ÄÇ ‚û;æµ›”\ÔÊ82V‘ï³?ŠË:]h貫[z¬ªæ6“‚‡]ëÊ~»ÓWä±?‚ +ÜÓ2euØxu.ûhºŠ`¨ü\Ëg8ö´:›'æ'!A+]1­*bÑéB]ëá¬1׃ +8Rr0vuUűº®áDUUnS°JwÇ0qûDÄÙ’PxÕ<ƒÉ¸XdΖk;–F±˜§F9ý]W?a–Q2fÉ;\òÊ*öHE…Ÿ­òë/¶$úùšº>vÊSý®ø×*Ÿoš!g+i¹9>a_ñ]îHyu D]lrù'€¾©8ðã¥Úvûrcß¡šO4ÎÓ¦àæ©2¿ƒñboƒý¯Ê³œ‹Zëaçív³òÏÕ mßµLÇ>€f16ì`ã¿Ù_⡬ÌrÒ6•|ÐO0Ó cĨC !fwî»?\âcÂFÿtà—–ùGWQù}¥²îdŽþ ŒÝß»€«(Y%%Û6Ë(Úac·K#­Ö´.Ö·˜gXË=û`þÙ*ÂÇ~Ÿ­ šeB¬²ÑELsÞëGÆü\VØ•<ÌÑ4Ôj‘QBÌ1+›ZÀØŸ©gU#S·Â½>çP.À™”¤4“mV`ã x˜^Tx8CÊØ–0²Vú‰áÆiël¹qرNû¡Œ‹<š¢¦Eˆ ­¾ü÷ùžæYRæ\äÓZ72ât¶¡Ýáí*!Å$//6)ú)l¤YNHvìO»üLÖTè`;ólž/8_­jú¹ÁãkIàïZrñÅ"½L×Wêe‘±±?V‡M*.nŠ 1kj„Gªš +£‚‹ê³éûŸíÐÑ#9>ѱ?cÏn“‚œnÓrN5ôÒï‹umçs@»U¸”aˆïbK±»a‚±È!:ö‚9_ žÍÓKïù JæùRãך R?ˆ1Èqégºf%০-³tØþ$ø³AZ~¢¥@Î×hä‹M^¥^Æ*Ú™¤ež-Wµ˜5,p/TÇwçs|Ú ÀÇj\Úé.ãxŽœ7ÂLv–pò<ÍŽï$¤4£ •hT2•„TÓ,!ét‘^z¶RÕ ÔÝ€A) Û4æ÷%ãû½ì|ŽµÙ“î2Bñº¦ªŒ~u>G‡Ùfù”½1J’yÆ±× ƒxº„M׋¡º!TðÊ>lg±'FFÎPòO—¸d»†Vl_¨ª³-¶ˆN×k{O7+›/6€?W*ëÍicfUÒ +{¢L’âÎæ„œc}¼À¥œ.UwýÐÕMþÜ4Úæ%V5£äl­}ѺÔ4¸/ç!åŒÂtLúutòu,æÿl Ûþg‹ßh˜)GÖã"ûQQ.¿T•u?ÿlŸ‚ä¿ÛnË|ºÚýd§⩟ÀGWæ¼dûݵ3ò/UôŸš +Ò÷9"À§˜T“ `Ï|ó/-áà[‹†‰þµYQ{¬e¢Œ2B²AFL²¨‰©'jRŽ]NÈÝÃ};–î”çš'hIv =Ý4Nˆ:$„˜ÅÀßE„XýÔk«'û¹A„6˹;Cä<«¸¼ä@LMßÇEm ‘¢Ž&y…6)·Ô¦b£2Fž{‹-Ã?_s¶PdEj†~Šœ¼+ÆG¤  –«kNù\Às0Íêšê“ùÚºïstèw .éDYt(Aï‹Ð¡û㨠Ãf‘¶‹b’W2çëì6Ò +ðµÕ±—Œ²:„ jÀD>Ö bÁKu'ÚÚFëµÀ¬D'úm’¡"­€¶ØqÚsJ+Ë"î+jŠ#Ï–›†l‹µG€w2;öT‘ # S¨(ëÈyôôÝ\˜QÌ(¸Xlèùd½Ó¹]ÅÃY¦‰é»Cˆë «Ø ¢$ ““înwÃ#ÿ½Y?úÏ~ÍàÓðÀ‹Z—¥F­ô@¼O–Ê ¶õš¶=9»L/¢¦ÿ{³¦ë]M×¶+Ûÿ½#h?YÀçmÃ|WàÞû丽 BÄÉ,óc±¦ötVÈ:QópV%0~Tø|Cúã rÔÝÝaJ.À5øÉŠì×Êš”×µäÇ*û÷&¿úûZ×¢áâö¤åë|]ûÙJCÿ¡”’·ÖUðf³ üúDä´eö×~8Œ]ªK~4]{–p±ÄÀYÈ(ý"àÂd«FXnQWÒ—¹Â“%ű?ÉÞ=ðw²(üX££m‹l¢i–ðN9âXË¥üبàý\啟h¨¥=”°‡Ú^dÎÏÙÏ5w3Q»’"Ë<*É:‡I½X"AþµYÕeŸç±€Â9^n™¶jjkl³\䱺~¦a–#‚Ž|Ò\Ìw½ õs¶Fx:Ã.9–P3l"bÂnÄÍ Ô¢ELËØB…v’£nU${ܳzk’2 ÷†Q[Ã…îÃ`÷•^€‡‹}þ³$ìL“ÀC‚ÝpYÒߺº¡‹~€[¨ÀÈÖÄWÌ¿ãøHÓŠ ­>5bâMcÔøµæÒ÷Ëõy.ÚÚœg‹Õ–ªSî‡K|MbZ–ªQé~cðÎ$a•Íð6u¬bM!£6û³ÞÄ¥A'ólªENGÜŶ©éP‹‚|<‹‰;Ó ãlJDÔöØo«êgWpɶ¹æþCe9à[É³äœ bQ3­*rúá4!v1ßvÝÃ'i:Ê7z¡þv³Ð † •}:üÞ©”œr¡f”žÍ1þšw¡r~YÁ±îÉá6ÐaŸ {ïH)iÚv ÖÄåDƒŒ…ß—ÒÀ&Àמ-ñhV½øHFʶ*¥f)=Û$&&zg›a•9¾ =™¯žh:O–«k2JŠABNÞéGú©9 w츴óUµÇ'YÕL˜IV^vd™c%w¦fce¸4ý4>óHÁ(ºÐV×ÿ×±fîzuÛÏÕ +Ω–^jS#¢ŒÓ°Àý ˜¯AŒ6ŠÑ!& !Þ*¥fMãÌ3ôÜcàÞÌ +j^„ßBDÚçx´5 LÎùzk­ýs£Q|¾RÝjS³P&!Å0MMø¨ðo­@ý1÷Ťä=%ã@Ì(Ôm×¶€?kksß黑_·Ú +½ £è8“”š»9€ 0ÉÉ…?6„ß79ì-©ÈªÆ%åÅÁYÿ÷bñß›lÚ‘Šž¿Ü[òű„}¹ªþðöß7j:~nUwœ.QËljdìöÄk©3ÿ½}žË;Y¨¬¾Xâ±Î—Êéf ù}ƒÍý¹Á 9r0Ž _ï†z꥔ŒµJæB;/Ë$ëh³«ªNç´3åÿçè½ßÒ̶ÿï9S33™Ì¤÷ž˜˜fªQ£ÆÞ{ïÒ{÷.6P@ŠHìJ•b/IfÎ9Ÿëûü!ÏÍùKáRØì½Êë}ß{¯E-ñ*i®iB’wšæ¯u€vŽ`b=ãÄÌÃYFùFè™}ôz¹»ä™B˜xQÉÿÃX—ÿjs‚˜µÐ}³Ü{m›¤”Ù%,ˆKÊþöm¡¶Æ&ÁçÏÖe>^@dœùÐ Øê¶Âæ™@Æ)EÙ‹m wšVð vÁ»+ö^lº}€œ åßPs²Î+Y™ô¢| ‡åßòLcbíãÔÜ!nѳ¨ kßs2‚¯ïȸx‡ŒÛœ¬N´OC>-õgÝ7v$ßÜ–B#WÇ ŸUµw上o÷ìÍ#S=Ò²ö‘ÜÀÕž„ëóµçÖº +ŸìÍÒ*œ3ØÒ *Ô¿ùtžƒ=Ö¹À6ŽŽ´Ž"C[IÜ‚ÍÖs^ÿ>Jˆº¶hðÍ1lìZwÙ³­ÞÂçn1èµu¸àùÚ`fà‘–Pµ§b ·§QÉû€Ý{åä2Û"q_y´LŹË;OGêz*_¯Ž¢’ôü  /ì2Jáò:Ò5…wŽWÚR +3óûféÅ>€Yöt5 ûF¡°õÒÍQÔ§å¶²溌˾1X”cc­>6ò=[WãUЫWû*#cUQ+ý¥æ¾â'…¿¯T}ÿ‰©¶ýÐ_—Ê\Óx¼È$øûÿºfª#]d”gþy_…IñyÔ%†¾wO ÂHä]hhÞ0Jæ›!¡¦fp°{Ÿ¸Ñzãš„Åñ$qu¸êƒSŠÍ84ÒFlɾ•¹«ñ×ó×8&@¿.“‘>56à¯]WÙ3Û4:Ë«e¡<*fÕ¾žË8Y®iÞVbR}*TÚö :Å;G,Ü7ðø«bTÌ®†=Yê˜?^©Ø_d¶•è4Û4&ns½1ŒˆòÌQJL}°`C9ͧé‘úÔM>µ;G->в±{*R®g¿ÚWôl^˜ty­üf¹½2È1³õÁÞY{h+ ´W~pÏá³ržUg?ûerïÄØÐíUòñnæòÓÖ8"j}¼5}8Ïçlk…l å.00§žø[œ}œ”¾Ü ~¹ØRtÏÔTüÄ.f-õÒ”œ’Ža@ããìCÈÐ>èKCkÑ]EMö•IfÚ¹Nø§ŸW{ˆåÎÉZüÒ<Xû§öIx”ON¬ðÉ€œ1K-\é¿¶4•ÎQ±þžf«ÃjAüJvò¹åÖÂ'î)xÒïU”2Û$:V×ZöÀ:Œüäž$¤ºÆ‰)Ö1RÒÆ *d³ùÁá¿_׉ 66 ÞKèÅÆúÊ÷Ö)\&,º-!Çüªå'œ÷NA‚·'À]ã °Óz˜›ñŸöôY^aÔ‰žÇÛ–€BõåÑúŠ˜Åþ´'ÆŽ˜›Ë½…]BîÖ.uuÿ<éÓÖwsµÖ[8Aÿ£¾üÍ÷aÚÏ ©¸÷ ólož[»!&¦ëjËîéø¹—tüŒójÄÙaLàϺ†¨Û€#¬“Œ’ÍA|¼kŒTâ‘11ÞBæ® ™ðÕ@…ëèƒ>ãXÏç|Yâï< r¨#UéÈ•*bî ³Ücà«MÙ7¬Ý¹wè·„YÀDÙÆÐ1n).É9M±Žâb7êò–»ÀN9îç^-‡pdä1ö5¬êãÓ£b#vÔtرQX·»P+ÚšåA·ç›Zܪæö ½Ð7KH_ë+{µÒ]è•TGíÌ"£mc¥oækã®™ÚÓîžšhø/Kµ]{Lž{öÙ§D§Ú§ÀOB¾ÐnÎP³.MbÓÿ’Ñ +®kø¹·,-…/¶úiÔ‚œ·¿'¥½¿n¢bu¢º¡¼ƒ(þ/S]ÊEûDÙëÓEuoË`e¾m­¹üVaÏŽv‰Ao–겯ª) gç(1¿¯·æÞ;Q +Ý𤂻?+¼ÂßÕÒáëý/µÂ¤ í•/“q¯,PQ»†Vñ’˜V`“àr¿-оèùìoFj•G +‰Øžýï:À€Ô0m3¬R§„š½§dT®÷T¾Ñ Ó¯«YI£>þ4RýöÇFÔ5Û$8ã?V~‡˜ðØÒ[qldN¿>1ryÇà}¤ÐÏsœ¨sæŽÜ§û::bGËÁ9åô²ÍibŠWÍ„èØ$ÍõL„Òc€%Õè,Ÿ•ç'BŽWëFö,ü&×<¹ÐÍPÀ׎YLÆŽWtlf=ó¬j§‚^¶3/ªY³G:!Ïßï@ÉA¸§˜EŽqBâr7è©FX|Ï5N-³¡ãjÒ¯›êÓoùk!Èxñ7VÆðLWGéy›Œ [%'ú÷~hب#þu‰ŠþºL#/bŠ·&*‚ìè¸= ³2‰È2´ûûœóQ‰s äa=\ +à wfh Ì~Ýš&eŽsrÎñ ¼ãÌòíqBÒR[ù“õîIxäBcÎ]¥ õòrèÍ©®¦Î1Œ5uXzË_›»*^¯´W¾ßxëPÏ·Mã“mbjÎ7S}÷?–ÚŽ] lê*y¸Ô•w¹=÷ÀKOÝRrŽULHÖÕƒlõá¢wåL°MŒ _¨– Êî7b~ã|üm™xÅ1LNç—='f¾9£ª-?VÓ* -™7[!A?P’î|7~ó›s¨ð•wšPp +h» ™¹Ðšx¬ãÐN-Â:Ÿ`t ¥ôÈ_ÏYFÈÛ½:Ð0Ñß–DmGyGC*ÜUsðûJrñÎ 6{«¶Ú]òÂØP|oµ6Î(–|º¾ÚpNЊœ¤oŠìǤlõ¡ÒT5E-™FìÉø¼ ¤Ä×7ä<Ù‡}1QPG:É£dÂæÚJCÆÙÉ~æò*IÅÛ“èxÇ*à«8û0À1}•/ ¢òÀ)RêUnú«ǰ1Oþ³ÄªÙ#æmV<·‚>¸§Ñûd涘ìÀ4㨸•TößKÍSGóL’c´(hc ý–}¬ä¥u¬4èØÀfú4|ªcš–ëSpà^£¼÷« ûÿúª¢ÏL“cþ\ëÌy¬"—}³ðE§‹‘óð{…0%äË"¸«Á®ƒÞí/`s·gá‰ú–|€oIào?¹|²º¥êÅê81Ígj™:Xi_ø¶ÂáíJ¡a›]Y7W;³nZ:²îû4°Ì½bÅÆ$Ä»@¨8XmYÿ_½ämðCåÕPË€xµ?ÏÁLРã.þXË#úfY ç$&Ú6Pà¿>T2 16ÚÚ‡ +õNáÓvdØ€)^{&AïÜ€açÈEëRZ¾UÊ(ÞÑp05!oW‡LóiÁ‘þÇ¡–t ©Î812p/Rf›sç„¥áGÚñ1À¦Ç@œuNÂÃ겯«8©—´‚²Ý!‘Yöþ·dÜý).ÒÔZúl÷é·IRØÚÚäËfìRj̹­¾Ê°/p}öÁ:MsÉYÕn±§ åí)ª¢S%ïõÍ·m#蘯¦º¶S£Pè–,6ûèšÄ¤ù$ø,àT6Õ>†Œø_01!Ñfa¥d›$f¬ŽQ3åüÒ›rföE#ûŠŠW8€K¼®šrñôçå^h<`ëD·œRx£©M½Õz{Ž—ø“œ–ð±`WÁ#ë› ¡k] w{J:ôXÇÆýg…'újbSvÕ¤Bï.uOM.öª¸$ë&Ù'£UžZÒ_ÛÕ-|Xj/~ÐQu†÷è_ÂŒ€kÓŸÿm c“˜„]1ï@M«8Örñ»|®w¾:Ã&˜kvlà°¾šúv•´ªü@ ¬££€Ï*þ§Ê3C.Þ„‡º¥Tÿ™šªqZîM Œè›+Þ¬÷”x§ÊC|ÓÐØí HüzoÉ{;üÜÎlU¾ÿºðæPé‹ÍAX$ð$ߡà +äŸåÿõÍiöÎÑ Ú–’û.9ë1u-ìY:æ€yõIª{.~áƒ#v„’ÿg£1¾ñ¥»ªê”“NýáZ£äØÌÀ,,j¤W—µ£&æ¹É+#–èêòŸXä"u;äµcš :ÒŠ8Ž lüjGÎ-Û@þCÇHYÐrKö§´»ÀFoÇ*® +öIÑÉÀ<å{U´ +àu̾Cüßµk=¹ 主£r# ÿ^®ü¼x¼<\²¯¦NúŽ ¢ÚSÀoöæÈÛ“˜Xë 2t­nìÂ†Ì +óî™û Ñ[“¤´)zÚ¹qœÿ¼Îýå6Ôgëµp{‚\¶7G)÷÷‰Y£Âm@¼ô.ðé9¥Ä5]ðl©;þòBcô_Rf读r|î¡äw|öÊ,øÈ›@,ÛWqÑGó¸lç$(hkôÂ=…ˆ°Oàc¥¼â›3ÂÂû›SôÊ-1ß ~2Œ‰ù­­<䇿òðèiOÿ5ÇM¹cbôáRUüó?7úñ©¾YfÅœ˜í‚†™;2f8Ÿoˆiáçöæaéÿ]¯éô÷¯Ø›Ãdl€^m ƒßì«ñ§6óh‰Ãökg·›0 |ož ðìýÆ`Õ»õAøçm).Ë#'ælNâæ+¦1InÓõ”*Mkú]Ucìy}G^À !öö*ú IÐ÷!R‘ÑO[ë. ùÏ:›w¤Ç—¹$àpûTqW0À îïiî”1*€˜ðz[J*Ü×ö)TÌroÙcs{é)#ëJM~ÈÙ®ªðkŽaHüò8„UrÅ6M¨Ø×Ыׇ*ƒÍÝeM]E÷,½y·=2Ї¯‹<î¾NȵJè;*ìdQØø÷аé@K›óª99W[Џ¦qÉÛ2v¥¡ùnWŧkB_ë.l+{ñkäí™YRä/vò_Þ©ê¤ÿÛâµÛ•Õ`QéË?ìøܯƆ®¯F6õ‹[t¢GdÙ' +ÞÛ“nš:’®|]ªiÝ1µM¹”"¡CB-<5ÕvèØ”/îPM­Ø•UÅn å¾pM•ú¶"hqkk³\ô±¦îȦ>@›;Æ`aCè˜+¢ì—¿nÏ ›Ó¤t¯šZéU2üçtÂ7[²Tmõ<ØêʾïBeøïáhÚÊmŽÑò·e¤u +›h›Â&X'Q‘v "ҭ¤ìè™È=]sß¡múÀØ<|bn>5 j¾Zøà§`çÁ"À’jb®SI¯ðhjØ[X¿> 5·BžYZ*k…Ù×V:K?ØÅˆ$soUÐbéÓÖp-xcPÞã”mŒ“’·\….¿8Б˼@ÜÒ‹·eÌŠ]¥ˆíU±«mR|Šg“ ÄøžŽTâP íÓØL¯Õy.Þ§â v5€ϳPþ^]'& +Ì!AĘºÊ­¢Âì3¬ªM)²ØI‹±´°âL5˜— +jÑÕirúemþUKѳBâ9·ì½s‚šoé®|chȼã…,u<35gܵæ?;6!3öuø‚ 1*jkŸt¤°õlüÉ"‡~db‘w½ìœC§™ûŠž¸°øm%¥Ä=͆(»ÄGڮ໠ÖFÀ¯W‡ è[R® Âß]X€‡/`ã:Q1­vT-pÉûó\òŽš ÄA +Ä)C¤[*ߨk +îþcö÷àäír ·úùXÇ¡56ö}ÀÿØ'1ñëCà×n™ï—€¤oGEØ%äü=@ï«™U³lØî4âÅ¥Ì +Sn “nøæØØµalº\˜uÝ9ƒIâ!úÐÌaœ,sX'@üÛÓÕ𶦨E^•€ã’²Êæ©n92ym âµuþis°ê­¿v—}7ÍL{°1‚ÌXÅO²rŸÊÙ¹wíÃðØýtòÑ´'cT¯W$.õd½]îʼs¬§“õ|ÞÆ0$l}(ÿÑÆHNÀb[Îc›ö÷2øS뾑Íææ¾í"f>;]j?6Õ4jUNqu¨¥)ï®Fxss¸$ôŸ5~«i5+‚Dzû×§=rZÉÚ "Щo׆1I{:bw‘ËÜ÷×{×QÁ¶Il¼]Œ‹sL‘3Wüu–Zro.µeÝ™ãF]Xlɺ»Ñã“æ¾ê8¹(ýúÆ0<|gŽXtj"‚OÍ$È¡…ß_ðôBÑ¡±¦öÈPÛøÅÒ<áïƒ÷ÅÌšè(æÓ +ZRvý¹Ÿ”qÃ%¦ØFÈirzö•–’×ß7¼üANŽ9oë-îœ"gè‡È)íäÜûý”ØkcˆÈ¿§â÷´Ä¢C=¾Ø5è‚~t¸m†]í”× ‡(ÉËcÄdû 1oGø…™öm‰ ùÛÂãŸEµÀiû "þ¡±±÷ÈX[``}*\®S + +sH+£ÜJw– ݧfȸà{ý˜ü‡Ý°Äë½Ðس°èóÍ ð?Ç WLµyw¼“´\i]ÙëVLÂŵAR¡g¶†°5Š‹·M@‚} +È'§¤ìåÞ*sWK…;d ÔÑRý OO«ÚÑ‘JwµèlŸ[ä™g¶Ut̞˶ÎâR¬cþû£„rc*Ï=Ã…º¥þñ`Ó|R\šc¾Ò +›?”‡ü¹>ˆŒÛÃÇ/÷U½vNc“Ö‡‘Qæ¾âëã]³è$À‰ ݰÏò¦¢§@Îç]­<ñ׋ԒÊíþÚ’Óˆûtu¢SN.1 #;}´§ãr|ž[Ï6wå=TpR/Î22þêªþxÎØ–õÌ£¤BÄìüg]¨ØKÇ»yµ 0~ØÿöÚé¿Pr1›SÔ»Œ UÖBž¬ á3ö€üí¯¡~0ÏBØFaþº¦jzÜ=ˆ·:+Þ7cRîF<ºø±«(ìŸe2Ê+/‹\Èz¦m̽ÏÍù³ ÿéûHqð·xÍÛ*R™U‚Œô`·|öW OðÏ:“ù÷*º!Î_È^ÅãA™xÜywK<Ôri'jõ?:ñ¿ëô‰…X½:ù¸9LLb+kGÛØ¾£­áïêD úÑŽšGñH‰%#Qö4¸\ï,"Å!® +qŒ#?œ¤k(»giôך+ \dÜ]k/|ꄽÛêÇÄH…éwûp!¿¬öAÃO ,Â3¹êЀÍbu²WIÈßtÆ.3vç9¸/¦Æ¾£€{j䳎üŸe"WîÜçP3*u=„è zi€¹.å=®NúSÁ,Vqò‚,ËŠÁvd¸ àKm„¤Kƒä?<2bñ±¶N´£’Ýrÿ>Ëê§—²9ŽŽqͳWÇ©êÈ ë4 ¼§5îk)•¾9H„[ +wÏÀS€ñâŽu\òNÈÚ× y»ZñØ(¬=6ò…þ¾õûó㓳¶ñ›C¸Ï³5¥ ?=ø>9ðÒwØԻëýèÔÅ–ÊKíåO¥Ìä[rAö“qAÆ­nrÊ=c7!Í@ÏÚ*|S ÜCÞû”Õ‰_VHè¶xM§Ëuý‡–Ú¯Žî¿'L9Yb N—E½G–Æ‘}Smó.W\*J)°¾ÁSÜŒÛø¤+G*óÀß»]IÊÛ—ÓKlCèðÅöÂ;¦¶Ü[kƒÐO)½b‚WpOQWôtG°î<—ätµWCÈóª‰y®9b޲òn¶¡üÝžYظ,lr«ÈùŽYbæöv²ÄáùïV²ªlRBêRò÷@0¶W>]jÃ|ðÔV¯w`Bçy¹7fXI×:àïÏñ žþÊÎ ø¡úîŒu—i$¥ºgñé»Zr‰OC©<6DGæúýÅÚöÝîÄÄe¹¤„Ì}5 èú3‡êžç“¶f¹`û”°j­›,å”ݯ+û|FŒÍ½á›TÙúaËm÷tÉ-í÷×GPa–^Ø{Û(,ühž…tOÓÝZ¾OÉ‚xäè÷,"Ö1 WÖ'ß™¥]²U1Ó©N5²-GÆo˪"¼ +xÒáòo3öïE +ì«¿'³ž…Þ–ÑŠüüìS h{óõn…€hêD„ `ÓÎwÂã/*eºÑi7Ëb/™›±I›cäÜ¥®ª×«½ÕÁ=èÄ+ÓÌÔÛžR‘k†Yìc¦ö3.*êAŸ¶å²Gͨ:Ô“@\é® Ø%6Í£e@= ,侩®ípQPwðò‘¹erßØÐ±o¬kÙÖßÒyeì,fè¨ ZÀå¶"ïI¸é=¬BÇúÓ‚0ùâ;漩9çÉÊ4l”tQ*È}yh>ç 6ÓÜSþÌÜ_þlËßßBC:ƒ½¯¯ë>Ýl”ï˜8Tçî’5òwç»$§KÂ&Ÿ–Æ +ÙÆëï±½o`y˜½ü~¨mêòÍÑÁ®Y\êÚ(4LÛ\xoiî”Q+ŽÌ¼z«WlF%ùtÑÁrm¯wƒõê88ç­Ü øÎ¡IÔäÓ×·nÏ××Z匟º–¨«m:5ÔÔ{•ìê• ZÆ’˜“¿2ÊH·N‘²Œ]àÔì—¿5€C¯î(I(¯ +“e“À¢V†@ïíù÷m3„ìu‰½,fV|I91ÕÔm+9Û +tº]Ý’‚S–‡Šß¹å˜Ü=c ß2ÌÎÓ÷>okøÜV›g÷54?3Aö Lì‘YØ´¯¯i<ÒÕð÷Õ\Ì®’‡ÙtW[[çSrP®9j[FóR½=EHôMS²<3ä×$*ÎКuWW_pÏÒE‰m$œÆ%Ÿ«Í{0É̸3‚Iº8MN¹dn)ybŸ$$Ï·T½´tc“|j!Õ!gVï-pi‡æÆ!Ÿ¡¶Á¡¤•Y¿2\¾5‰MRÔeÞõÍA{ú†vÿ9§„˜fh,ÐýüscÑûïg99W©Á¿’SŸŸ15•†{gñ™&Ù#æÙ' ‘K=¹¯æk#.Ëi!gWÛK^mN2uÙ·jóî­tCBë¯kžÿÏ2©êÄ€+Þš.yåUbr¿qúÛrÃÈ¿-|áÞ $Â;QúzO?Ô11@Ì´Ï S ­%mbZ±CÊÁÌ7W}b/—| +8+*úü§©®âþf7ø™}×ƒŽø£uqµ ïšàU­öƒßN³3nÌÕX!ʦê÷‹Ô‚mu½È©$»f°^% {¨ã2NùÂ#‰°§Å!|È£ÂçzÕ4ØÑRãØÞ¢¨Ù«0WÇIëceï½òªÏ>%&m¡Û†L½§n€GZG8E–VXs¡³2ä‚„}SË‹»fhiyGa0·àÝŸŽä@ÓPï›ç<¿£&ï,à‹V™4‘\¹,Á$öÑ3î·TGÜ<]i=0·Î¶ìïç½Þ_d‡‡{„l€Ð³u%¯º1±—úÀáÛTl¹Æ%!åÚ‡CÉ[±‘[bbá.`÷K“”Ê•at–OSÃÙÑ +Ø;:voQXï]r›†ƒÚVsmÇøÖ4².¦ä{çyt«Œ^:W}Õ‹L¿6ˆI¼µÜ^òP.H¸ÐZ¹1†ÊÀF_qÌÀ³ tÌ¡ÐÝ‹LÆ™FÛÕ`+ãþN)80·Ï횺´û–íÿjCkw´¬êe@/®Í0Kfê@OµíÀ{« º>DᎂtNâíÈàõ¾Š§+íEw•¼øó +AÎínù­ˆ§—¾•|ºå˜À$lŽ">›AË]•O7Ê_XG‹=S„d@ W¦ˆ%]¤¨k^äÕvN8”Ý£Ž¹¦ú­{l5ìË06ne˜ äol¶[F*vL¡cW;áïfYE'©¹w¹z‚ËŽüƒœúñœ¾œ°=IZêν³ÜŸO]ŸtuýöìñÓU1%æöJoE¨®ú®¡*î¼¥…™ë7’väâC-2}G]°%®xë˜*ÞWÁÇ:6Ñ-'æª)åÿ1ÑPÿÿ]æ×~5 +xGZ|¹/ïéZá‹õ l²þùÊ=÷ñz1f¥³êµ±)÷¶ZyœöWøõŸÂ¬'ßϱ2oK¸…O¸Ÿ®.w-vTƬ šX‚KqÍÐJœt†sžº9úè[ô®JT¿3ÇÀìªIåVIAèº8'Ø6 ŽðÍÜha‘}zJ•]ŽL4@ÍWKm× |h@dzˆ„} ¾ïÌQ‹í¸ø•>T°uˆšør®x~ "æm CÃðQWGh)÷g{c}¶3ËVYæ!tè`r#ud @ŽÍTÔðÞv5¾@Ò÷|”üìt¥nÀ©àS3<„WÁ£{¤˜’m1<Æ1 MqK1ùbvöÝ^bRàêHuÎú8>ËÒ‹_îGG¬aâmJöÚÚ_-Ý!'J+ßLð >¸Uu ¾…ÚÿÞF N–º”´b/ào{È«‰z±±êvT¨K]Ã]™bOÒKî4•ÇüÕZúûFOñ#ßLUüž +UÐ…O¼xí‡Éúü¸ÃE.ýÀ `Ùf°YV ÎÙ¥¥!öÉò¨] u ð̓ˆ4 3㒱꞉ö-¢Ž½e~ÇÏIj ªYÕ¦1Jòæ$ äV“›RxöÁ"¯éÈÜ1ÿmµ¶Ç߻ʥ¥Av- ¬Ç_'lŽ”£ë†|Ħ½ùmG%b¸¦…þúí¶AÄǵvð“Ŧ’; MUOzÅWAQ?ŽÒ_ØÆÑqŠšÌrNڅ宊€Áòç øÓ‘†U½£’5ƒˆDXòí_–[*3væ žùÙ©yèØÂ¯94qh~îXŸ¦ç ÔT¾æE\Zl…¥ï)h¥Ûc¸8Û9ÁÒ~¯o¬~6K¯¸¡dWØG(y¦Èk]}Î «¸*te âõJoÉ[»0r¸u¢:ji¤2H^Süh±…™£`¢­CUŸŽtD¨OAƒlOQÁ§ tÌ©žMÞ–¡’ìÓà}¡`G†ÍúÛÀÀÿwEÔvª⻊T´1ú蘨Nݘĥ6¡£nˆyW{ñ‘Ë•ó5Wgè ³øKTúñÏdÂŦʠ~bÆÝÜ×7¿[í¬ß“ù5 2Ö6ŽˆZê†m–·Mb2G©™ÏGÉYý”°§à Ÿ¿2ˆß˜ÄÆ›™äc•pl"W‰{&R¥ÇÄÄ;ýû™Ì/«œÚåaDÄò !iGY#úff³­Ã 3”è+ 5Öû¡ïöää‚=µ|VXüÀØŽ uÏЊܳØLKoÅCkéÃÕ¡Šç6iU˜SA)ÝV2^­€µ1M-skølï‚€íR>¢a—ÙÀsÂ6CÍó×=ôKŪðýARüb{õ{1.áÏ®ªÐ‹Íàw7DeA·[ ‘´`s#ÌbÊ£¡@lR|žsŽwk8¸=ìö×ãUJÜ +R®yòq¾¥ä‘¡½½ ÙÔDœMM¨ôy»šµ)`û¼³ è>§–¶2šèUQP–Aæë¯îŸ-Aû®‰Ž;^¢b¼*dÆ& …7Ç«”­å)©_0óœÓœ²­QR‚¹út’œñWgUܯ]°ÈŸ'Ñq¶Åô²µBÚ4=åœ}°:Ò'Á'{g°‰>ÿ¹A)2yk’®ï%F ‘ó»Æä}K»Òkâóv¼~¸HGíêxTZ@µËkÉâZldcyÒõÕV|ÅÁ,£r¥½ìáF/â¹úTÅÈ»`æ_s££WGI)Ðç -U17}Jf•¿®„[ŽŒ]î/~6ÆHº2@N8oî) ´Š‘‘ƒ¼òˆœ°€³SÔ¸'ÿl4J÷µµ¢] ~hðE澊×ʆô+Ã¥A;*&¬õ×B}QÒ7S]ï) ÙÕä¢=%!Û;ƒK·Ž >-v@Ÿ+ OÚ0™×G—=ØF/0/m¨w–NlØz)~NPö°~¶6ÿõ÷®QTÂBCQ ®.÷ŽW‚Œß™#•ïÈ YGr±¿ÿ0¾h][ÑmSQ G꿆Q×é˜Áe.€Þìú¯wé±ÙG&|Å× m¯œ‹>Tµúäuìm½Ä¿ïc¹-ïž®.ã¦V”~{GA(‘·•~Çü$*úðǾ–…YîF‡[Zªž¯¶C_6ýÆŸŸ½s °WÉE­ˆ¡ñRAÜ-‡šøu ðA ·c`“÷ lêßk5¾ytÎÚäÍ 3û1"ùùU‡?›žY¨ · ÃŽTÈLëhy¨¾1óÁ 2ô—¥.ÄÇN\ÊRæ«sNÖÝqh u„"à÷r/‡\ +b–c–˜ëTñ‰›3Œ2ŸŠGØŸç‘OYÄ¿W¸Â/òðý¡¢çšÆÌÛÚ6XÈ5çQ?<ö·æ¢ÐŸš +Cδ–…Ÿ_j¯ÛW0à£èœ¹š¼'ûŠ}šVä±x·µ-ÃämËÉ%@ -1¨f:ag‘ð©ȹΒ–QXôñZ³ü`©¶Ó=Ï%º´B–×Äö÷<­:]¤`l’êôvxä¥ýy2öÿ¹j§ü=§=rT‚}ün}¨üÅþ<¶è¿6aïŽRHrÏð«¶§UöqfîF>rž—cwFÉL8ç*{»Õ 5·T¼X¨)¼æ™%å. –4w,u–<1wæ>Øìƒ½÷N2‹¿ïË“½kb úÕ\Û¹§a!ôÊæ$2W þ¸£¤Uè設aäg­(ÿŽœŸr±þùÒ6öÖÆPU µ²qyŸÎG?¹þó9ïÃÀ.·åð(— åœ©ŠØQ€¹eÀí€ÙœÂ%9f©‡ÚºÚ]%‡¸5V·3G,qM "µ5i7àþÐ46`Òd||ôk7:õú:é÷HøOJJÜïJ: …¡¿µA#/5VF\Ÿãç>E>¾ø8*à÷- ±2ŽŽÚœ„„íêÈUV.Û2R¼< ‹ØüöÿlܦõTœGÆÆ-6ôXGO6šd_6…=§KTì1£ìc•AV1ü“¦¹8puãÇÆY !¶ÁÊÈ­þÒÐõî·{*.fcÄÂÊWÓ̬ë½X`üE÷f)©Ž¡b£>ÿ*ÁþÍX“~ÝÚ~eè+%¬úx¦qÖ1ŠMvMUÇÌ‹2èë3\âÌ^yþ«C¶øx‘Ç;±øÏ²IG:>Ë_ý@+ í«è J®{šžoh?5ÔÁ^Ìp@/;¡qgÛ+£ÿ¬)øôû2ñü¼ ÷ÞöXu¸w†oG¤mM"“¶,ˆW]Cß×R@NIUÄ\MÚ)'þübGñc×8&a_Ã!º>ñ(YUûšöÞ<è•bÝRЫ8ë±¹à‘aDä©–K:Ðð(ö)jážšGÝS‹X¶ Zæ: ¹š*^Ή*žê›!«ýèÍqV‘º¶ìþ,'ûæ4#ëébGY ‡Ô5/—º«âæ»á5 ÄK­àÔÇ®)Z•¹«âÙ¼¨ô±¡òn½²= ÿt¤e"üg”D,á÷YQÑ»÷e‰Ž=6arŽˆ”#=2àÄM3(ˆ–ú{>ýåžž×ì”àR7ºÊ–š ïÌ2ÿbç2uTXüš]qÃÒƒ.Ý–ÑÊtm9÷gX!çŤW´õ¡—WzËÞ»gi(çA.z}š›øöß«üZ¿ìS—¾§"ä8ÄUáÆÆÜg*nÂm/ Û‡Y9oû^ ášÁç8ÅÈ(ë4FY—÷FLŒ¿¢d\[h)ñȘ¸Q±¿Ï@*Àhœo«üúS3‡é•!¬c ÷ë£/ýgO€õ_Bv’{ckë”Óø,ë !}[Ê, b£”õ €•AbÒ$%íjSñ‡ŸçØ7êJŸo ¢€ïUj•óŒÝ°ÈÚ²Og!‘¾ïB}¾ç–¡²6Ä%¯íÒªäy:Ʀàq½FaËñ¿ÉöŸ-:ke° àŽðËr›êd¹¦ãp‰Ëß_bŒ„Ï,ìóήÀ«$B!ñÎ"È Ä"5'ëz(øç梗ÿ’£Ï;%¤<¥¨àv:ê ¿ðÍ÷£´¬ËÌœ÷g†ÉWõè3 !í/ #寕F@;w?ï&DüÅ/}óÃ1éòÖpõ§µþò*aöÃùºœ@ë@^ÐÞ2ëÈÄ››ÆérÎQ 2f™wN@ÜÕÔзg¨ù1.Ö6Š‹ZøÊÔ{Ö‹ÿƒ—ò£¾ö^ÍÈèÙ—ÔüÌÛúúÌÇ +~Äí)zðÅ…†Ì^)«Ò9ͪ²Ž""ýõ1×ûÁ!ýE/cE/6z³^ºÄåa>5&eWŨ…t—„”íF'«¥û +xªGŽÈÞ–bSµt˜[FÌY4-ÀšÕî¹:Žuœ–m鄼”ó’ÿš¢&ØéÆö42 +`ÌäiVáõùzØ+»˜]¸Ø\þdý§¨(èçvЇ³æÆò‡+ØO[C|Èò³x€”rÉÜANqŒ *íØh÷:Æ5CÌÝlÂ&§äË-£ï‚GxÕ èžž<0R€¦®:X –ì/ÊL]•¯”u¥7ư٧«µƒ.9s¸:|½½Ò‡SðKž ¡.éDùO=³”âzBÆ­ÊØ—gçà¹v)­XQ“pa–y[.Œ ²t§<œçD5ö9_ðîÊ0=ùý·ežà@äO…Ÿ{åks{þ?ñ’ŠŸ|sšœ‡Î¹ˆK ¿çU w5dˆ¾!ëþ8>üO~nàM…Ͼ_nÉz°¯&•ÙfXàŒàG¿ð*"žj(„¿×øÇF +Â:Vülµ?ç®[‹>5×4¹LÌ;둺&ûÑ©‰çß; õ©(Åv1.Ù6Šü¼ÒSödµ¯âź˜œBÉþø;:éù/ í¥Ÿ½@<Ý…Æš;‹>hò÷ þàd¿þaŠsÕ9ŽÝ–¡“¬Sà»j6 ·ûO–ZÀœ ™Y O|^²ˆ}]«µÍRhs­9á‡K òÑ +¿þd‰IÙ×âs¿,R‘Ç&<Ü&C¤94ÐÖ)s½¯:T)È| à%ÞòLC?/ác䂜‹³ÌÌ ¤ì µÐø3˜ø ¦ÈùË­° Ú’·¿ÐRïÿÐ}ýË(ùÓ¯¨ÄÛß c?ý¹> Qv”XñÖ.Á$® Ã?ú4¤Ò]o¦ZÁŽidÜ¿·j¾® +šv5lÄæ%e¾1ïî ?÷´dȾ‰E1õ#‚3Ü*—¬¹Æ9ÛÀñËQ3ßþJHú³{}¡ hê‚':fŒ­Y>|}›º¿À­9^ÖíéøtÛ$1W!*x:×XòTß ~ãSq§K ƒ‡Ý«¢•;¥ô2Û½lSLJµO2 +7$œŠi亗¿;ßÜ»2‚Ã&ýÑSùù§qBêeSsQ Oü¹tmœ‘ Žþðk "þÕ‘†‚ýba3\2tžWvl bõL´[ÉÁÚf35eÏ{á ÿ¶ÖO-ÒPn6eS ÿhƒ¾·BÞñ(ÆÐ‹ A§†ýŒM{ýçÒ´p[ŽÉžfGœUpã.ë‹êÛ+ß™»ËÞí¨1ù‡F.s[!$Ί2®Û$¸’‹°Ñ­Æ:g ŽYL’]F)ðªIß6D}.­€ßÏÌ•vë‡=³ éd­vàÈÌö÷üÎ߃ß. =Ñ÷ßYƹ£´Š›+ƒä”=5­rGVæ+ Z"Uµ »sÜü‹2vÁ¯äš¡¹êér?6T!*½ÓW•ð{8ýÚ$¹è¡ ôÈÜ´ A?¸¦°i¦>T¨˜™}w¹¿:Ö=KɶO㶦ñéf±C.Àïj„.%½.´ç)˧ñ=ó"Žcšž·Ô {7Fˆû³¾àÅO½ðÈ_%´¼‹½´ŠKÁO¯‡Jx}y¥ èùZaêUcSV€¶6ãö06òŒ0?è—ATôÅYnÁmlÂó_Ö;JCŽ•¤²åÖâg^êM ú¯nȳº*^ÿ8…‹ý}Z}/ñåÅï +Þ]ÿÑ'ABýg¾iÈÓybW‚̱¿µtޓוÞ#dGžï'þ5KÉ¸ŽŒµOT$ÙÄÅŸŽæ)Ðýy!cGI)ân¡O…N·OÁ>­Àƒþ3{ã‡-`+mSÕÑ€îA¸%­u^©Ø: +ß…mMT‡{æˆ9¾9ÒÒ‡M¥¤ßXéÅEªêÑáãlÐmcéÓõþ‚ ×d)À#Ðd§›æ¯ãtjÔíëØÄõ z¶{Ž s+pyûz:öË +·öÐȦºæð ¥Ô ü­ušT`"åÛ&)ÙëCø¨õxðŽ‚Zy4/ªñ*xû4»Ü:ÑBÛ©«^î£'.v!ßOÐÒoãã.¬ô#Ãíì"ï,älÒ£áâ¼ÚZѶŠAvʉ ››¾Ú}çQRÊ}ZþÐ`z*rßÈ"ìêÌm·§ ƒ•üüû#¸”¿fY9—–»ËŸx¥Ø´C‡lÅÄúª‚·å”­)|‚G…Ïr)I+£°P›”µ«æ"]RRžÄá"—íÕSá_·§[¢¡ wšÙ\«Œ +Û’±!›Ô »„š²Q?éÑq{Fà‹¥QüÅ\×ùÅÈg¸TŸ^ÈYÓÒlþ~‡SLôs[Á}Ó¯TÓ¦ªÝ—q +./Ôæ^]é…¼\#Æz1Á õ°€å®šü¥î–Š¥.zÌÆ01ÖÔVtÏИs}£·úý¾†òi(åëððµQdÜñbMý©¦fgAÈòÎs0N99×·À%íêDÂ]}c—oAÈtÌ0ŠÓŒ¢õ|ÜbKùs¥(ÿæ(%óR7¾ä3/þ×ndæ=)+ïn;8ä§!tØOï¾ï„Gý*”;°±¦äGÿ}nñçó–¶ÊÅö²gëEÆü)¥%]T +ЕB”¢ þü+##ô¬gW¹6PúÔ: zeéÈÔ}ýSäíOš†’œâ;Q/nOLùs©ñf¾¶ü””KŒÍ¹ÎHûðs~ÐÍïR_ú®äõï… ÈŸS?>øýì{K30-¥O7úJŸè›2n‹Éágk‹ÿ4ˆzuÆ5‹YǦR’ïé‹>î«)ˆ=㚢æí̳¶úŠžHáçÛŠƒS´Â~BÁ[Ë ,k¹±ØT¼Ñ ñƒØGÍò’¯·€Þÿ¸ÞOOÕ6ãÓt-ÐxÇi#dlöU¼ÔÖÇßµU†8$¸¤•)JÀ$Ù)%wuýißÀÀ|Yì~š»Ô·OÂc\€$¸”Ýy*øë†°ýÀÄ$6W䞣–íë¨(‡œXµoàqM|CÜÓ3ñÖYrÁžžË=0òù_̺o‹ÆñäSPòÄ$'àO–.L°FT~wgŽ˜/o'GkšïÖi¦Ôûµ~ð‹ÍÐË•ðk}Gy€¡òte@Phì®É·tÒblã¬Â5ÿ¾íž²ë ì­sî!ãÍ#å/ôÝ•¯÷ ®𠇂 u+¹HŸ†KÙ76ô-6 û¯-lÏ“@V *Î¥ —mŒ’Òìb|ܬ ÿf2öL $þg»òþj+k¡óyŸzy¾ön†û¨i€¿³ŠIÉv ½hm ñ `€°Åžê`@wçÌ7€ü²@ŒMpŽ£Üz¡ `§¥Jœ¡‡©¬¯z¥oF„íÈ9X­Z;øÅRWåÛabâí F^€²ƒ> À¢2¢ÏôV?4u“bGiW¹Ÿ¿§'ú!îí¿ð1o!Æ„ü^“{¡Sv“sVP~v˜š|ƒ“÷ò BĹIrÄ/ý˜ˆß†ñ×U¼'ö r¦»:ÿäÇ.hÔã¯&~ñžÏ³OøûÀ>XZÒ®ÈYqWÖ‡°¹æj6(öÕÙù6PÖá ²ÄNKKÙK ãnoõ‡³í —?Ná#~_!§3J£o”F>þsœœè™Â¥Û†ª‚w¦á‘žÉÒÏô°»MeO‘3n¹Ž"å†&¥ÍÓ(_—Ù¬¯‹”ê}6Û-­JœáGß%ÄÜX„}¼ÀD_šb$ÜŸ¡g=ßìEÅîÈù¶QtÌ* Ì쀭¾ê´m)Ÿ¢kG§m SòõKÞe–nKX`×1ÃÒÃÅÜ ÄÞÿ×&晹š¾ÔSùÞ£ôïßã1wõ, Á0>-å”32aîƒ-1&ÑØ.QÖ—Gn ƒC”¼˜k›}Åϼ³ÀçkH…›£ðÏEmŠAô¨C‚Í_ì„0´@^m"bÜ3Ä¢]%‡tbâ×ü³)ìrΠãÝrbþ¡M;1²y_ÍÑ·~í—%¾ðx‘Ç:ZârOW…¯ ;=JRñW ¿æßË‚†C%¥l­ú~¥¸ÚY´Þ_ý~söñØ@è難Œ’¹Z¶c‚Wa%%š;Ë™Zón˜Ûònn `"V†èÉó­„Ë]øOn™k郾Ÿ¥_Ò7d^U‹Ò®Ú'Qñ^%æS 8>}Ma­ëÇF¸Õ5À¼4÷íûMÑ¡Ž‰s)QÉÛslÉÐé3‚{ŽqfÞê09u±¢á—ÜYï¬~»ÙOŒ_é©ш2¯m 3 +œ³M<€Ï +¶¥Õᦎܻ‹mY77†*‚< +J‘kŽ ]îC|°ÐüE/à_b“SWúQ!‹U¯6F°‘þ³U»qOW[³9M/tʯRÄrJ˜ M §R;"È•õÐ#­˜wKCÌl]?#eºñDL†ÝŸ £^*Eˆ–6|ÌRö£¾®ê©Œ{4Š-¾4/*¿?D/¸ÇÉxf•pÞ¿næA|ìú£Ð*"W¥MtY!¢‘t^Æ) +ò×\[­|c( Xô×4††ºg¨¥k“\ewce-4ÿš]B,wÏ@Â×ú Î×g^@DüÒ ‰<3ŒŽ;·Ø +2Ž0ò`áçÞÞ<ÿ]cÙçkÛãÈ8c}æ}½ îŠóæ 3ýá¿Z¡ŸÏÎò ÚÙ± è7ßs Þ=òÉqäoËl¶u¨øÅbcæU97þÏúÒ§ßkê +‚TЈªäg™éA?}Ñ1p'ó4ø¡Š²MÀ>÷aÂÎñ³®Íü—¥)ÿÅ87ï øÓ½_þŽÞ»/Í4}6³3™’É$3é“^LoFcKb‰½wTìˆô"½#EA¤W©V°¡Ø{Ob2;ûÝÝßóFžÛýÏÂ-^×yîë8”ì×{Ctضƒ)a‰n^ú垆wßÓsžÐâ/{Ë#HEÏþ°qrßþs†ßýu–ßy4E#íúE«vxÚ°´"\KHÿ5¨ÃdbŠc/e>»úýŒ²¡xÇR»¤, _î/<ßWÞY÷äG~ᜄ»[Ã͕ؼ§Ð©ÏÏúZ«ßå²¾ùy‚£1.{oˆßò Š6ìµÑÿY Òfè-„Š7O YÏï­Ù‰„£©û—‰ãß«Bë–Ù]_ÆàåóšÂð 7®¾‘öHCÈ{²0Kï‡Æ,ë‘)ÛN\ÑóϱæÊ6cÍÁj\²2k½ÍÖíܦMàÍDÀß7DøÅ%w,ôü?•ˆÔSÓµËÄ+©~<ÕUóâÀI­ù4D…|£¡Ž êî7g¦•N sæí|ꂳ£mB'lXììxÌm+¡`Ç‚É>ô*·œÈÌ6wÇÙ‚tð¸¤á¡‹Zp¾»6öguSâ)1éìd{Nøž‡K]²s°3ýè÷;nrõ–§¹ôk€†þ:IkÞ£4-Y#íå–uмmOsùXOÃËu;¶éà <ĺã¹ó€¾©ÛõÒ¡ë€G1¢>nq˜«.vÐHA5I»SS¢3.OÈ›ÞÏ‹píÐoåÁrñt?1-d!-9™ 3fvuȨØá¿øy­{Ã$ÈÊ :ð K6vݺ›V·7Ê@Ï Ùs6jÙ¢^¾7zœ÷ƒË]´ÆŠV øÊE­hÑH) öãS|=˜·^Ý+ü`U‡ÍWÜ7’Ò.2 +ᯧ{IYS*fÞpOKŽ·§%{JMÎ<ðÑpG“,æ‚—5«C¥.› W¬ôÚÕAvÅÃkþ~¿«þÕŠ¦þÍÑ8:Õ]>ÑQq+¨lŒÒ‘r®¨é¿{Øå7—ÌT°IŒ~'lH¿`ç—Æ®¹°Åþ®Úû~iýÓ鞦7³ŠæÔ 9>eÕA©ÚòQëçP©«lÅÑ4›w|æ|ÇÌžUW>žú?¤ƒ¼›7‘ +Fû9&>,BC*{°fŖψˮÍHŠoøXig=ìÌ C­å/pÄ¢WzùÝö¦”³ãí ¡>Ô‡©ÎÚÇ3ò¢{.HÖ–—‰µ°j'µ”‚5o mc„Ó¼æ&•¯zðE‹tÆt}䪞¼çE¯º1ù3&tÒ´ —®ãƒž«šÓ/íÒj6,4ð† +Þ¢Á]L]æ3&ôtð`kmôÁ8‹òy¦Eøy†+ø|<{ÏM©^± ÄÜ­xÑÊjïF½*)ÙË!|øÙ+(»1ÙYúp®¿:bŸ{Þß~¹á¤Õê¹ål<ð³azo„‰ÝtÒ!û>Lñ?g`eŸüµ©K¶ú˜ãÿaaP&RP ý¨øÃ“¾=LA(È£Iô` _µáÄäî«ýL˜UÁß.ëÑ7è¬eÝ«€öfÉJ*Ùüñއ…:Îà^=Î\õòY3Fný‚…ݰheÖ…L4ðŠƒÙ¢B&8ìÑzÈÊmXµoò8Ç÷O®ùx´Y;µbÙ†Ï]6 ’¶±ù[ž’¯ ò|D\³ñ0 &FyPAL™×‘s§µ„´ùㄆ^¼ê2§t”Bý:dj§†Ì2Ö’…h!Z北<§Çg¯Éþ(‡º øï5àK}¤Æã³>ëNxoŒM]öpÐcZNYÐL/[÷Ð!ÌÃ]xiÙŒ+Yµàò7ݤÊe;¡8djÎ ô“ÒBvVêWÀß ´õçê-Ùɵ_޳}gù]k#­­ãÚü˜NPçUbâ\²š‡3j ìÛñ=pA÷` V´mkJÙ´¢ ×l„ê ¦ âWH‘Z&"Ö)‚ü5ÍíÚ8nVUùÔÁÊüCMøUM¹´ì'€ óVFÕ¼™‡™³PË—¬Ø¸Ð³rNCÊtc¢rä›y¹h\ÍÈé¥õŒ†íീ'é y«F À1u›Ã­‚ƒ‹˜’&-¯RZ?ªQÐÇú%Y=·f´ ·¨ÄemÚÈÕëƒÌ¦55GŒ+¹Ì­Ným¬“·d$åäà®Ö”‹Ó½E÷Wíäòy‡€°èn㬠[V},Ô²ƒÙ°âb£WÜlÄ’V¹æÀf/b–ìÈŒ•!Zã°–ÅDd\ÁeEþ°ifÖm9xØ5³nÓGkZõPæu!;»aÝ#ào Z7ÇXx€[¨Ç9ž;jýžßfá¶½Lø‚…3ÑƒŠž×2*çM\ˆWÔîk?ôK+ŸZûY°¿:rÉOßðPkG{›’F»!‰{# Üú è©yé—gÝ;©|ûÉ_—º;FBoŒŠ»ç2Ñ‚žÔPK?O·¿Ì´ª ò–ž½åiLÞö  ÷G‰ÕÛ^Rå„òtɈÉ<#Aö|¸’-7¡lÿgbpå«ÖæâÉ^xôº“Ö¸3)ìZô´0–¹ØíQ¡øÐ/”ýà÷Ö î8«$giZ5oá5­‰»FTMYî®Ê˜²â¥!×½$Ȳ½¹bÍImX䦈!1*iÓÝ&™˜•ÁZ^4RÊfÍlج]Äžsv§ÜZ‡ˆò~Ò¬ê ˜úDó6د²%3±t}Ýå2'Z»÷-­ã3NA‘nw’'^óÑ [clòê3ãd@|LÌÆ›¶âa!M ÐÕq%:oÅÃ'/ZIÅ€nXqÀ‹V"hÑJ‡lމzÖÇ%šµQ¡hÞɨßÉ÷&ø[cDØŠ‡T=ÚGü0¦$&MÏ\õ5×ülø”ØfÚú?M ûc<ÑÞñ,a/ jMjZÊCF|Ó#–M‰uKftÆœèÆËš"gÕÈ÷;C|îšSÀØiëÜ–»ƒvië’…]³ó±Ó:N¥­ñÄ×|5©Ä'.YY‹Övöª£K¶5ÔBÙ‚¥¯9)ÇóÒœ2HŒƒ^tûë¨@°ékïYõÊÔËžÎþ€IBÕµA‡{XéSüj_;#%(§m9ù„i=­H/lzàè@½žPSËæ­¬¯ íïkN ëc#×~ö·ð7|\òš—ƒ›Ö7gOiqIK€‰_÷¶ñV=mìe—¶êb#7Ý üÞ“½:DªV54µB_X¸Ðè):ÚÃH_02@{£tä†C^tqkCLä_!ê`Š'Úb·‡Û$Ûæ£ãóÄØ²U+$i^WT׿œ¼Õ¢‡RR 4”²ó³J@O:a¦¯)zAó÷6¼ô´ƒÃñjÛM©Ýð9d UÌh(•Kf,äøìùÑ}8Áå/º¹Øô¹˜½âéTÌ;e]36f~P@ZäRÆ ÊgµMæMØ´5­aËÃD¯Ú› CÚÆhÀû%nÖÆÎiòîÌëëßn: x­M¯W‡ìõ©zÅÝB]8 ðey“JbÊœž\¼3Êo=ðK ËC­Ò.Rñ=$ù‰Ô°1Ü*\á3—FØøI¥`ÑÉA.lÍËçlûÅ} 6ÀW˜ àñõ!cÎÁÃMXÚ°cjs”ÏY÷q Ã-´ý`‡skšËßç·nN·õoÍŠŒ;³ÂþÝIoÕGCÎÙ) €–”Ðò-brJKCæyÀÛ•oûy¼q1d£Vo ѱ+Cl\ÈE­Zb 6FùãªÆ˜ uÝ‹5 ½í”ª / ¿7ÉkÿºÐf=Î XóÒ`ËNjÛ/sΙMÓZbð~˜ëÃ<¥u¢­ok¼M>ïa"fí„üE¥vu„Cœw —¬ïÏŸûeöON÷¿C²r*jÆ”VPçìåJ’`³ö†ø¬m/ ·j¥×ß³¿è› ;¦`Ý+iw«Xe hÊ¥ŠÈ+?ìX¨¸ƒ y`gLfZró)“zј’•㓱SGÕ‚JnCáÙ¶šô{‹:}wTܵ=ÜBÙxÿø3áy3»fJ-)[ËÝ]”o{Í“ ™¾h%ƒÍÌÚ•AaRͯž0tQÆtí°€Žš³hmÅÍ2ά£´p‡åÈ„ ½nÖ(kñõÊÁ^ÖÝÞšµ éÀo˜dÌeC dí`NÐÙ ÖÊ·ûãý!úÀ÷­±nך›ÕÒ’sçu´ÒM½~×G©Ýòj–Œ†€–š;kaCm"Ú¤’”6&ª¾½i£Õ®¹Ø˜u/¿îa–õ“ZRö8 Í·ÜBáq>þŸCߣ"]Í%+&jÝ#j ™Z‰ 'ÅÜ)Êh‡ÎJÅkn±xÅÆäðokåƒ+¾tËÇ&…ôÄr¯ê¶¿»1â Ð*ßžhíÚåR—]-˜%;³vÉF,œ3!W3‡Æø­®nxü  3kíàŽhúèãz~Mð¸ÖkOZˆ ¥S0géí´µ±3Y¥'õ|ÂÆ¤X½`þn°ÝºlÓ¬qè@Í–N#|úÞ$¹íoÏ9Åœ [4äêÕ­x» Sæ©EÞYÙßÖ™Ú/%ºº;*ì-„g=Ì’u¬o{¬C³ãõîLò;–†èð ?¿=)Ø™’ywCž­I-dAdÌ™1KCÒ„•]ë饧¸{¨‰usÚ:ÐÃËClÌ‚›Ÿ2ñ0[ãBÙÞ´tpkªÝ¼2*R, ñùA+¡xÞÉD-¶wn}½õ?mÀ&­z›A[Øâ]? ·;!Ø È¬SzBΜ™R¿íoØ:vülZÈJkñ)³nríö4t8Ï’¬Ž2ˆkÃ|öÎt«bw\ж3AlÜ Ðñ+^‰x´¿ééÕámT«"CMiyî—õÂgÕ +ú°œ›nk¥½ôvð“§ûduÓ­Ð7 v·šø¸×n"åp\bØñ‹+>yTGÏsª¸9ƒý +Œ±{ªÈ¤Üm;“š¿¬ïhÝñˆÛ6½䜙WPJ*íâžl#¯;MÇëÉbḒÂh¨õ›îNņ»[½êî1ŒëÄp§¢nîì­ì“×éÕ­FY_¶Mžëè6c†<>­Ï"·±T-º +[•A¬'Ý#•!t€¸Þá@¥§£ à#¿8ì¿§¹ÂãY!Û‘§l¯”(A®Uµ·³-oÖÂ,Ÿ6`?.XIåë>gèë1amc¼³2‰Çº…4yªŸ™3µbg­<ì’KÀÞˆTß‚í ÇÐ.TÑáTKÇñ-z%mÃýÌ£ûTAÄßtË¥53¶öºOÔ¾ì`AFŒ\ŸŒ˜:ÛO/Y´®Cê—“Ò½Øì †X´ép–\|✭:m!†ÕÂêi#«rÁÉC-8èµ€×Ï +š¥¾öz‹j«) +ì]¥EÄÖÝ]cSè˜Ön#ËÔicvz>ˆ-O|½ˆ9›„¶äiÁÎûø”y@Ã.¸éuë£ ô:à%–}LÄ‚Ðjn>~Ä`ìuiíŠ!ƒ©×¡è©í)’Ò&žvóÐ.)Çk6+Mò®R<Ž”r½y"šá­+ÜGT'©¦¼.†þ=%»QnR«[^IÉêL)½+Û&eôñ BÆ6ôÚh¯wÎÓ«·÷Íy“Ji‚+”\™tÊ£ D(hºD«ÐZk ÔºÅE¹¦k3•õ2i’í¨wµ"yj9‡(cŸVÑÚSÖ<=š­‘Ž¾ UDó*9ùE7DÛmD(änlo·+d›RZHºW­ŒÁ4©p¢QÈvdRš5•äKàòÅɨ=.8ñâzòwYQU§i =Ñj®»Ò%í‡-[ …»#è’­Q|…ßÌkÛ{²»™†)UÝÉê}£“ëªuÙ>¥´(eãæ©¥··NÅm§$Šž +›Ð Éñ¿¨ÐðÄ…†»l—µmŒt(¦D€Ç Qçu5oÖlˆÜ½ñ6EЫŸti´l½LZÐ/Ä«[º²¼*«xܤLY{„£êŽÚ¾–Ö8ZMÍY‘ôÊ#‘æI`”kF–0kf “¾d–²¦T¬‚–V<.‡ÇM÷ó ž-ߥ•£\=(cw[†¡ƒc’÷öu˜J¤Ò±ZNù¨¹yŸG’¥ˆƇOÓæò)–|³óQBµ¬Bôknóûì\ú÷wïŇ…ߊ=YRÐ|–Úĸ×Åà¿w(¥ V}vPD_qµ0BfBù´•Vî³(z½‘ÞÓ£.•µ«³d–r!GŸÀ"(Þ±›%›¡ÔØê‚¦‡M¥”'å9ø‡yéЫeÙ¥—›!•×ú¬è~^H+ê#y´šÎ5¿T½ +è’Ý ^ë—9Aßþ4§egFjٜ촯ŒvöÏx¥ÂQg¿T¯Òà•Rei7G«íê¯Õöép +¡4E-%ZûZ3­½Ìô K+e; sìOˆ•óž6Ã`ìPö{ÙŠ96_<Æ’}uªËH¨ò +¬®û¼tÜIï¡¿äfrÍ+Uþ|ÿ5<ìÏÛ9ß½ŽÿTœ‰>ÅÁpïê%í™~;iS©\&‡A­–‰ÃH†8”Oî¹)hÂèCL“áf¸CDoaû.×VËo”•H.‚Š»ÏæË~ + +»u;',)‘ò=f¿.×úÍFÅŠG*›4òÇõ­p¯AÉëpñ˜]3höl4’2ó¬ªÉv9»°í—Â’î3eåêÓù…Ý'_¼†Ÿ¸v''ìÅ[ì‰çïHa×Ã~ùõiXTdíO¥Å¼?ðО›úvYꌃ›ó´lªVR2P"á»sÙÌÁ"ÅõŒÁ_Ìd°çSü‰<ÕøŽIxË"›"±påõÂ<úÏw®G÷üFLXztÙé’LìB õ…EbÆL-šg;ÙÆÂnù¤Ë>µßn±êºå£8©| !éô7J»VH²ÎB0]À0Åð(öhÉý¢²˜ùcyö—Ê|ü¥ŒdÄOOî'ü–_x§‹¢Èê&2+*tü/S½ÈT»ÁÚ«ì$t÷ø<™¿ Gz ®ë»^Ý ¾ƒ¦NDVÕiÏ¿x þîéÓ’“y%ÂÓ9eÝ?=z»x%%ìòõ¬°× ÔWÔ„E¼Áý€ÅØŸöô“|MçÜPG×ô é5È[4j_›¤g–@Ìd4 7ãÉ?>}Vu2á=öç¢2Õ©ô|ù÷o?POÜ{\G8Ì>qå^uØø°|í—†FóUZ³ê‰J¬,ÒKDi#ýŒìÑ~Jš³_Ž’u¡9í³¥d?± o¿SX.ºT Ñ^©X/$&þñøQщ˗bÂîßË{ ûýzIØÉ“wÂîÜI=®S_þÊ÷*ì~x^Ø›jXø+hØå;Ùa©Q'DÕS•D òj:ݽ-Ùvu?A©rù£$ár:‚¹ÑHñ‡W <’óÛþ {ŸLú.-‹ÿ·IÔ°/ªÂ~®uénaØ“WȰ‡‘ø£Pß—W +Îw·› œJ|Ö*åÌÙåÒ1kϤnu+úŠÉÒ± ~âjtèL^ãtB¾ì‡Çq”°?n‚Ân?¨ +‹Idœxò–víqcØíˆ°èþ‰ÈdáwÞÒOF%°~…½*ÈÒfœmÁA>ÓkébñéíÏ ]ë…5ÜË,íû)2ñCB¶ä—Ôœöî?®{Ñð݇Æ÷ñY‚g®g†ý|:*ìÚÝÒ°ûј°s×ËND½ÃŸÁâ  ½ÃA«Þ9k“µ[Et¦ÆºÓ²e0U¾SÛÈ\|Qƒ¾^¹QUoý#¯Pv26‰s2%KòCä;̉ ~ {ôvïieØ…«i'¢Þ@¿£ázïÈ)”ûÎVd䊃Õw s:¥Ú–ö±|¬`ñ=pÍ—) å…G1Í?>z‹9‘.ø.9CðW1è\¼“âùÔ‰Àc‘ñ”°?ÃAaã›O|¬´Ìªqÿ† ÞtJ­e®.ÄâˆL½:Ý9duúÛ{gHÔö•Bg:FðÝ­Ïç—uüúü5ä‡?ï–¸ù¤6ì°»ÏjÞÅ6ÿð,‘ùÛlùYÕÖó0òøÓQ  ·Ó u è¸ãZ~嬕ö) ‰Jý®zÉnˤˆç³aŒ¥ç¹åêßÞ§²O=÷]LçÄËhBؽGuawVX‡ {ñQv+²ù»‹áÜ{…û.1OõsF­÷ZQ­ò¾L Ê›sréótjÈL-ò¨Ú«ºýim¢‘2®xªCyQ¼ Fù¯–BϦfKþñà%<ìitów/cI'Î^üöÛ±'2[~ŒMÄüZ–‡½å3tãfB‚VÑ]-W˜àí}~·c²”,œMA0Æ_TÀµ—sZ~‰I%ŒLnþþ|xμ »ý¬¨7úwÙÅ-¿5Ã:ß)$¦·NAœ³ ~ %cDMÎtkX¹ýýí=cPF›ç#Ž>ð†ÑÿY¼ñ&ƒpQÃw÷žf‡eðÌ,Sü—->ù,ŽðSÜGÆÕ5ÊÛD¼ü±ºóz¼Ÿž4Ó—4pÈÆCMš¹õf;E!oÏèP8 ¬ŽñBͥ؟Áˆ®9Õêó‰ä_¿®ÿ>6™ðCbç‡ÔBöïu²«ÅÕŸ¬ù6ây×ÁuåezØ’SH Ù›ÒG5Mñn½ÞÝ.uÈÌ b¹»Ž)t'Õ!5×?ä¶~•ÄúñÉ܉ǑP ªN\½_‡;‘Ä»ò¤.ì"ÀQÏ’a ¥î‹¬÷È,gŽY=Ø:ïèh@'x”ЗCzv‰Zmĺ‡ÊY½ÓU˜îâZZðiE£ý<¨Þx&½HôÓ…[…aWn—„Ý »^vñZvXä[䉴láEâS-$ÍkW¤dÖÈ(_pP«Œí¸(‹²ªè±@˜]³=XH”¬æÃØÁ¸r”ñQaµìϪÆÞË ýÍ”òÎË÷£a?EÆÃO$çñN&·ŸO­l»×HÒF0ƒ{ûܘactÎɪÛç2¶§Z{‡­¢FëHúT–l´ŒÊ6¼!S)¬þç‚2¼¤®/<³¼ívZ1óNV ëœaa:b‘LKt‹P§W:õݰ!½ 1çlçL(y³fB^@ל>¬eªÚ)òNeqg¯©‚-ÔD73Uá kDNuÏõ˜ ѹ{o(?ÿù°úÄË÷¸“ E’ßÊzþ(ÂÝ(£Œ<(@k41­ù]šº×¦¦Lé‰YÓšš×Ëv\Åú0¿%`•Ðôz“HªöQùòáj²pä=œ9÷¦7r«9x1»BñÓÝgõ'Ný‘víÀæÚï¢S¡× Xq¤¸UþÁ«Um9Ið­ï6褽I¬Öèq=rce»ÔYÂ;2j~]tpžø«E¥fmˆÇXp¦]"ºÇÐV¯ë&'vsk®É˜û’^M>­Í˜ØDPÞ«§[óKíIPBw<¡Õž@hµ¾gu?´Hâ%J]™Í=h™ëìÚ¦4® B?®{põ{­ª½i©{q¤sÀeUth´}è^eU{—¾@Ô;e·û²IBo2ÀÕ¼ +ñŸ‰ôðœ*îK8•Ó¡‘cœ6)aTOó·EZ)ïn/Úš‹Fû‰E6n” ‡µ­Õn•¤Â£‘Ö;U•ê6á[¥H™Ù'6w‹ŒåêNÄÒ5PçíéMõK!ËZlÇ%æï¶Š·ioŒÇùháîzÐE“ò’{)è=­!¦Î8UKfh€ž?e6OØÚ©>}KÙ€¸ñŽJÐxC+FÞ·õµæ j»G Œü1msRÈÒÎÙt)l{^ýЇÎ߬Y25ÅÎèïƒFÍ‚¯Ç<ïéÑO˜…Èa-«Ð­fäÙ­%êΞBykª¥‰jnV…SèÖÈfRÿCIt›Î–Ŷ´©3Å=ûä²ì «ªmÓ§´­9œE©üÓpkÛ‘¿}àx&Àæ 4sT^öÈ)-¿ëèBDÚU}•Ü’µ*êñ4¶õÃÉœžÈºÌ™ô C¹!låEô÷*Àv•†ä×÷PçuŒ¢m7¡bÛEf¢g{«Þ¹¸ÉW½âÔK>eÕ“Q#§RD¬zN®J9?jb’çÇ%]¶–Ï5Ý"'Æ¥Ä76#iÈ,¨ øôÕº;Ó"þâËf™ŒOcز/|ݧ¡iÛ‡/šs§}’öa»\0íè`ïŒ E›CmÂ5¯€ºîã ×|´º…AR鼃\´ ‘3.¹<èi¥­Ž² «^iÎB.\qQª–1… º†˜YUÝóý!2ê۬ؼuü]»—\=g§U4È!S]Ü¢“T9ááNoèo§½q;U+×¥jŽuë[ŠFœí„i:ë`×oÂϳÂþ-_sÅš ›}0Åd|™ï9œ•úv'y!'æTrJœJzþ8À‡#–nÆ A5ª;À:£žÛ§µÒûU&‚^£BÚõ‚²!1su’'Üósx!MÍ›QaÖ•QiÉûYMõK+£ðÚh&iA+À,¨å³ýðw#íÅwü•÷õ¬òIî§—ôSžmYeâO£í}Gc ⺱.fA~¼ ?[5Ã6l¸ÌY=&KKλìªKÿ{”=pÃÓw±9ۃؼƒabÚ—T5ç`Ö¬xEÇsu{&èýâekÓûAdêÞ¡|ÏKªÜ¦Ô…LøÌUr4ÎÀ~óS‘Gã4Äæ ®x¦?Ù‹|3¥Æ% w£ßõÄÂ9.gNIÞt+Ž3¤WM𠺦„9`íƒÊ¦W3 +äÛi 5o¶¶çÄŸ¡ñ«‡ UÛNìñ\ÓÒý!:juQ¿ g€¦TøŒI%®xv•0.¯—ÃßT͉frTÓÞ8¢äæNk)YkƒÝŠe‡X¸î"6,*ßÍ÷åÜÙ±"ò†Zè_&Z»¿DÊ/Ç9S^hÆÂ@õÛ'³?ÜÂÙes×ÑàyGsé´CL +ØeL–¶·£¢æŒ¬Úu»iÍÚ ^´6å =/®lßK‡×S| p^§VÏëP #’¼û+†ÚÔ#?¦ro˜ +ߤ@&{k#ü]•¯'iÜ=? ½løf•:§lˆßsc@Çó;ö‡U+6hì²þᓟŠù¤R¶\ÐÔáöœ[sǺºw»NTÁ¿fÈØ):qÂL.ðk¨G³ü¾53,i¶«òá¤t×Ã-¸ìªz²çÀ|¦#̰WxmÎ+ÜpQjfյϦzKÂýù·‚ò»ÿ4Cþ;ÃäýkŠ%:Á7|šdоÎIÜŸ'ZÚ—tÕï¦ÚsnúÛóo…ú+^|šh†Íóú¶ÇiÈÏÓìVyýߦ٢ kSɼº8:¨Ì¾Ò€^áÁMÿžap¶GYì…\ºê¦6îOŠöƒ’ÁýAïÖ8›±â$UOéQ‰zBáÊH{ß‚O"™sqà ƒ,È’Q»?LE'ã>‡.LÙ—a\ù×%Ñà|où½-=.Àþ<12ù¦{ÇHÊ_×¢?n›qÙ ýؤy5"nZÙe¥åþ¹gæÀ·íLÔŠ—5#m|³cÂä|rc‹=輕ª×.Aúaùó\ôü—ÿ7Îf~Å”­i‹,ôe]Ù0”?ݶ#RvÝ´º}/§yÕBªZ2ÀþwŸÐ®«¹l߃Ê^5”¿šW•>]öh^ ]ÐcR>!‡^BÕ®“\±a…¦Ì«ê^MuÕ?^TÃÞmÙñ…“½uQ#í › zÔÇiECʺ•¼¦iˆœç^œí(ü3ØY> ª€¤˜Ù÷ŽsDf{j>nhkâ I{ð‡5Snô×q4xß‹/>ðRê=\ÚŽ«…µádÂC:dòª¡4jÛU›²;NÇm°p!üý²úqÏ…¯\ÖÖ¿ ˆKòîìXjcwm ï]Øàwu«dê† ›¹í¥Ô.‘™C„º£ ºeÇlá‰ûަäÿ àþo–ÎÖ¸ps°…°?*îxé°]'´j†Ä¯[áÉ«–¦ä*kÓOY5CßÏkj_ù)èƒ!,èÀ ÍݬM?<žmmJÜq`²ÿšàò¿N³!]ã›%="uÏÍ"} ß2 ’w Ðä3ôオ>rI ‹ß°â‹wœÄ²}'2ã_~b÷abå§ADú¬,çþ²¢øå\WÁýyEAøhœoSdòªžêoÊÜw7×ïÁ ŽME_Æ¡ u{cζ•wœ¹òmŠÅز¢²¦zKßä…ñ».dÍ‘ŸÁø:Žƒlšª?l˜À‘Sjèû57ùyŠ'ùWH¨þ4ÍámûYÔíazÇ.ý9áéÛ¦ªÈUå‹@{ÞPOå _ +÷GI &vþ• ²îõçaRÝ·QqφÎܱB>ìXÀq«šâ¨uüÃæàñ=,Ô´?¯†D­˜š÷|¤š]7®|Q]þ&ØSrgª«äædwÙí¯“$ä²±æíбfª|óÉ‹)úâÁ–þ=Нþï ¹ù“ +ö•†¯[ Ù_ý\ÞŽ½¹tCû°Ú_ój] ~±i„Ä}¢4º›«æ{+^ºéÀšå-õ7|سÂÒæº _¬ TÆ/ö•½ØÒUEñ"Ê—ÔåÑÓÝ¥÷>1(> +ôp‘·ë­O\3ƒ£CJpĶ‘~0Œ-Þ÷áÊÔÕ/¿L`êÞ#ü5ŤízI‹õ1“²Âð-KMÜÞ0ùy‚Eÿ6E‚aªŽ¦[Dû“öo3bãÿb´|,ëÁ¯çû+ž¯›¡ñÆ©ØE#€fØÇ}¦òÐ…¸qÅÇ3€CjPü¦¹úÕhGÞåqéõ¹>È«M=)u™4×]÷tÇ@.ZÑb×´Àºª«Ÿ¬ @ßLtÖ<ô´”]šë½ùìdÀ–•И=;*cß…ÎÝÐÃ3ÿrÃrÿòVÇ~ñ4&/êáq3=5O¾¸IÕ‡ƒ¸¢5ЧŠòp7é÷ÔËœ´÷¿~:¾?ÞK(s÷UG*‰Ù|vàAbËþCx>¬hËO‰³/N sÏ/*`o'ûðIu64È÷‹ÊƘ%MC⊶1vE ‰œ–‚nOH*^¬kš3¦eQ]5ïN*ë’uQó¯Úòo/+ÊíÚ`©kVx¢…Wx¯–ôûÑñœw zÛL,Ø4bÓCÊúWVö9+:öÔbwù)9œ•AâÿøÛÏf|9žce«}gãF]@==»Ô›zy×r|^•‚Ͻ÷½£%çÅç‘fðº«Ã'žÆ¤„ÿŒMÿQÓ÷ÓràL~°¿&œxãçÉ.pÌ¿íþÙ×”½¢)x0%Iºä¤¿;­D¾øiˆŸrqÕˆÍ2Ò +¯x…UO¼-´Ï.BÅŽü:Ô•rI‡{ñ³–zÖLM=·¨©Û±7¥´æÝý<„«ü<迚¨%ÿ×4eo¶ÍåïÇÄé—õĤKûtᜦêÝdGöÕUMÕ‹äõ²º!zg°1eÉM–ÃSϲ "¿z9sÛÞTì-¾ìÝŸöyËX»mkð–·n©õpÒ/LÈr^ü¿y"ñÛ$®àççÇ9…þ¶¢[>nöµ¯$äg€Ï|²²WjÆï_ƨ„ÍÐ9ÛVpüŠ:çæjyÔ’¹k©Nû 0FÙÓ_Ç¥ ˜Ï^rÍ/±bß~yàÁüž¿7OžWäßÄžê‚Üÿ®¯1ò×iUÓ{1&ó´™RvwQMšSÁ£§å5]Ü¢›NVÞ%#ï aÅí%-&Á-,¿ïãæ^Þ¶¢2VT¨«*ø»}[co-¸´a|Ž—¹¦kˆž”¦ži‰9å¡$þ2ÎÊ:¼æý¸¢îu/"þçQ~u$P³e¡^ð“€8ÿú>á4¿*êT+èÙVrúï“òÚçzfþM3-ÿÆœ=..½ã¤§ˆs®û×ðÉ¿vÖÄžâB# Œ‚û¤÷çB=úÆä-"uÛÔœ¿¦‡¥ošÁq Ê’»€–‹U"ãu¸œ›¡îú‡€—õU<›ï)y´¦®xº©©zî¢'ŸÑ!£=î·¹г`GÑ ôÃEEmÔ™qNòÅ]cMô_>\É'7¡"(‡¾怮ïhEÄ ‘¼¥oø°i¨|ååÞ ˆòï-öÕ=ŽÏþËÏamÚÐ9‹èë…>LºòzGW¾¬(¼7Û]tg¢£ìñº‘X¿na4 ‰«î{Žu&.oRR÷ÂKÉ;ë”ßm-~0Ú–sX\xËŠ¯Ü¶ óf»A÷f:KÏvVE¥g:ò®­ªŽóÓ +_ +sÿ v#Ýt¤‹[|ÃAM;àøK Ç_-«c• o6oè=–6Æý±¬…§¯›1™j\ú9vþ³ïº«Þœ4cOû|˜ê¿Y0àòù÷—Éáÿ8nï:°…Îò%ñŠ“–ò‡›–}ÎCK;wà‚PÊ^íB'=Øp6W¬ššs<ôÌ F ñI±¿ùZO;iÑ?¯ëKãÿ=KD¬[ÉûnbU°«âIPZôdNZúb¹·"Àü7þ¶Ü»ÓÙ—ÿ߉°ïC–Mv•ÞÙ´Ô' EG£|Þ¿ƒ æ§X6ࢗµQsºš¨ý +öÛtkÿZ36Æm[kßï9 iÛvHàij¾Ó :5"){uøÇ=GsáqÝzñ¥;ƒˆÿ›uhhüì.y<ÄϹŒ‡ F\z­ô²»¥6rÃB«œÓÀÞv\îÇÆÿ¬DÆþèf瞟‘Õ¿ ©ñɆãsX”ÌsŸ|LÔ6PÛ ½M¯GEé7ìwø[³ÎD'ÛAwæ5Ð8_kéƒÙ¾†·¡¾š'S¢üKÓ¢k+=µÏ6 °#y7 ¸˜Ÿ§ÅàÈm¹ÈÇË?7&.¹¥'çü)¨Š;«lŠ»<Ù~5§E¼WQ³¯èˆ9W)C¢ò'¢Ú·?H뢾W#ã~4`Þÿ8Äλ袤³ë’ÎðkßžÝ2ã«?cS¼G}”_œwcª#çʲªäî¶?"«}Ä*xýÃ0¿dBPTvwMQtoGŠu¥¾ˆ>Üõr/®Ï´R ó¨E¿ipn:1Õ»TÁžò~×T»¡…¼ö*sX’wÓ%,øSܘqCN½¹è +@Û¿x*úÈ…-Ú³`‹ƒ]5oÍ„§7L¨ÌC3hTTõd”Wr#Ð +÷rr¯MuÝÿ è¡];"wLPxXëÛÎfЪþaRTtÃ/Ì8¦œõ°Þž¦_¼Í’žÄ­x÷S+øÍ‹ý ‰Ÿ|ØBç“ÆÚ +ºØ)·'e€Oé®Ú±SV جBÆï}èÔ+ÃmàèÙ.Èë%U}ÄD'8ÂÉ+{&ª9-…Å^="Õ„ÔõoŒäôsxÜ™ ¨ðÁºªúÕzõ«U}]4¯&öŒ‰Sš°é¥!æ5¨^vÑu7;ïñ¨¤$f¶·,bSWöúï1DÅ¿gˆð<~{0ñ‚qÒ ‹ùq¢%ëê(7ë¶_}kËXòò?!|㜶öƒ‘uyÉI[³sPÇ3Y>á*ö| kƪÖúØÃ14èï9v랯¹~ÅT»ïÁ”üg–FþÀTnØ*_oXAÑóªÌ³=…w¼¸ê£Q:zÇŽÉ82ïàx‹züÍ'qè$–Ú:u±¿.bº«"|NÑðtUƒLÜr0jç øÔE}SÜTgõ“qèÎ’úvðõ«&Xܤ´äærouÄW¿@rì­ú Qž–ô‹ž–Ä‹KŠÚˆm#&óÈMkZ4£²ì¼ÜËAESò’¡9ËÅÌÿÝ„KüÕ„O:ÛŠþU‡yýƒ‹òñ÷%ycüŽ•Rb£e_8Î)Ú´’Êæz‘1k€÷|ç›Ñðý±öÊ[ËjTÂ*@t~9ò­· óa[ÿÂ/ª~2'¯}¶6?«$¥ µ×=™ì‚¼ûìia¬Yà kZhì¶Þ Õ.öB"æäewfº ïNv¾_‰Ú0Sê'ð4>°/òÚÈŸçdew¦:JïñAf{cgÉ}ÍYV¤\ر"3Gx)gý­‰g‚Òì+^üùå¾ì‡[úš”/CT”OÞÕZûጃQòê_~^Çî ,}¦#ÿêd[î…¹.Ðí`wå£ñ®ªçVaùíʨKº{î¯!lé‘¿k«Ž™ïÉy`ÂFŸéß;9HxsjÕ‰å7$].{{ë‡Aná“¿†ðà]cÙ³}sá³=Sñ3/+þ-ôå?Æù¹×v]¤ªiyý³™îš—ë&x6àó·Íˆœ<¨“xwù£î¦¤S I—FÛkŸ©ˆé×§zÁQËšúäUUò'²øÛñ w7¥nÕ‰å\©!ÑsŠº˜yy-ÀÉÈ +ë’ž”ôûdgáƒãÏV,¨Ôa øöxgÝËu "kUQ>%ʼ2!Ìÿ3(-¾¾ª«{uàô¾—XVÜÛv ²¿ÏI¦£·,°„uuÑ£)ñûÛSí÷6͈äM;¾`Yy]ƒÈ=³ ‡¦ü=Ng~"C7¤QAҽᶼÈ@wå“u݇ƒ*)¤gBÆeÕOvÜðü‰Èÿ„ÈäÿÌ‘ÿœÆ@v=°ü€<óÚˆ$áܲ¡6ÎÁË‹öµç<ÝBWíàÑŸGaM5£¿Ðà=€}…7÷‡à™Ký ÑËjD̦›~è#×l˜0wíèô €qšš‡DÊg¾xÓB*\Ð`?ºÐåTℸâæLgå9%èÞ0ñü0;á– +w8HƒLIª…:k_|qQëvíÈÔ ,f]mË»µ0PýbV +_Õ7%m:©`¯ ä²‡]ðg@Tþp¡¯æåš¿«k.ÜÖ#r’â‡~QÑÍ=&oÛŽË]€½[Ô6ÆŒJÁO½­•§eu/¼ Ø¢X0Ù XÑpkfhù¡~ÄÛ²æÅXkÞŸ¡ÞŠGë?m™QÉŸ|„Šmõ«u}Üž‹›éÂåLŠjï¹YyW Íq¿;(‰g?9ÙÈM3©Ä~´Ó‹Îoé0iŸ]zèÃoØb=Ü¢«ƒô²k.VñÕe2mÍø¸¬«¸[úm¬…ýÕKm HËž÷!ãΚ(©‚}à§;ƒÍ o£-ìoÇ™žªº«|ᡇÏÚuÐkgº ÑîÖºçV~ux'2û”K´0¶lY[ú`A?¤*‰ÞïÛUeÕó=KÇé¾ò#5û‚èO@×V}ö òçåY·Æ8o¯ÌˆSï†zË£æ{AÏv,IÇÙ» +|òY+«(òÀMªýâCíÚaI#¢¬kjôëßLäÔ?]¼‚Û^!ø¹Wù <áî¯ä¤ð#4#Ø‘{Bð¿Ú¾:Ú’syª³ôþ¶]¤¤çÝÉ~v>Œ”ùäÔ¦_sè#AVÊ#‚ÝY·ÇÛ2ÏOHJoÎ*ê_5Mï$¨çÛj"Noá÷­„‚Cé1óh‡>òÙ3ÿ?{ïÙÝæ•å{¾ºÝ]Õår•ËUå Û’•%Q¤)æœ#H€È9çÈ,*çÌœAä ‚ æ€ÈƒdWwßù3î¹wîÌ«y1k W/n-,ÐàÙçì³÷ÿ÷„sP¹ƒü¼/6§Ð57ÄÝû+|¦c +ž­êÉû«ùQé çxËõˆ_2÷~ ‘wú÷BHúÏÉ¥žW€iúvMØš™e{W÷ãìëÚS‹Ã@GN³«A\^p1‹ý +^³W͇­ôÓÝÓ¤÷(<="Ãç¸'Ð7矗o]ý£ýEËq¿‚Óè˜d”/¾DŸßì'\ñø•Z’SŠ= ×Ì=i8!åæýaéìÆŽ¡Gâ‘‘ó]£„ëî1JžåäÔö8µÌ§`6xeœºÔ:–‡Íßl R +|R~Óòø¹…GÇL½ÅS²þð +“þ/*qÙ×¾iVýÆ£Øþ{.fQ‚zv‹_E«ñH±¹!%¾°e®k”œå™À,/é7Ö(yq½RQ+’f,®ç"œc¸›ëý“Îá¶óž rÁÖ«ì%¹øÏ©9B]“ÌRÇ0æŠcv&ª ·€ö6>iúi„šûû°ŠÝ´=C¯Z>8¥¤ÂÅ·¨›³àlOàiUêü#¯e ˆ;¯Œ $ÌÔz’¦§¨ÛCüš«æÇð¢ý¡à£]ÀK™ÿ ±j¹qqsš_âÞó }ðÓcœÊ/RëÍÞ… ¨D( 6FPiQƒ€›í¥Ö*²¿‚œ’Š +þ ôdmXÃiqMSK¥=Uß)ïÕ¦ù•ü¶µ~âµ7­Çw+¾`ßú›õaù;FJsÂÆ£Í¾EdM‰j¿ßž¦×y”„‚ÍAXÖÚÛúk€n,¼†žRv—~m~Ú˜¦í%»ä‡qí…Õ n‹_ÓNðÉ8 ˯áW&˜y_2nýÕ¯"•…ô춨…‹ÙÖQªÜzju|žC ˜˜¸™Kµ´i¥•eOº¥{NÈØÒZvøÌõÁÖ û‹²¯BF*`‹C }nŸ²,å5y¦S삽RK@Ý+]x9·6„ºj}RõõöSuþQ%)ú +•›0wIœ©õÆd¬ª ”]ízOÈðO0ª#Â5E-²>ƒœ½ßðsŒQ±ÜO.ÐõÖþmñ)ô _—ìÚ®ÌÞi»°þ +}% eÕm ³×Þ ÎÆÌ|Üö î–{yÙ1¿äZ3¢¦”ÇÔˆ_Ƈ(ï@Ž›î5_ +ËY þibnÌ4ËoóÚâ27‡ׂ +zµgŠœ·ò¹LXú§°šO­ï®ì®ýzöaÝ׎1LúúòâüË–SÆ»µÇ£:tcŒZ°:B¾Z3¨e68F€¿ïÑ—ýÓÔò€œßâ5»¦ùw¸LÛkb¦OÙ×áWÝ퉺EËbqTO®r Á.­¼‚œtLQk¦È7’¦3Cüêoü2!Ò5J+uóü“¤Ç(îöææšsš˜6´Óú)æGˆ«¶¸lÓcøí•×­·ãZLùþ"³!†'õß."hvNŠ1¿-¨$—nŽ ¯Ùß´±s!¢cC}*Öð~Öô ñ» ‚T +8-Ý;†Ì<°0‘=±Á!EenŽ¡¯¤ÖÛZcKÕY÷•¶½âë ’x€ZíS*£6Ñ?+ ¿`—ë5^^á·,õ³Ë,Ï õ}m?I¹•_iº«O&ç8„Ë’ŽÝÅ¥!o)IÅ¿8$}»‹<öö$>ÔC-Ðú ž§ŒX™¨šÙh}?o} ;Òs1SüÂoŸC/~j½W÷ÓÚ@ë9_å‘cÖ®®u+soiY©ñ2 ð>©È5…ã²éÌæ8©Ð¥¢¼šnöê¯aTØü…ö1ùÚÊxlc˜]zØ3Ì^xÕtÎ1ÎöjÉ1{Çýȼ¸Ýð´5MÝ ù´k{ÄÌå&í Ðb=¹~é}뙕AØ¿ôÛ«£¤lç µÄc`¶ÆlBÎÆ(=om€ší§1ß tPÐGå!BF6$µ¾óÖ(6}k êEËéàTó™° y-('U"´k‚UêS±Ãs|¼GK­ðÈpYŽáæ“ko*þ¾5¿”váBÊ{×”¹ð–ž¿:¨pÊ(%[¸Ì•7ȳËoZOj{*¿Ðtæº.fP6ÆèåÖçðÆ{ͤ~ö–˜÷·¹û-çµ5Šº2ÿ²ùTXG­[x”€š‹ªÅ˜ˆQHZ~ßrÖÐSúCWÕßt…±?.ù.¦Ä•Dµí$Û+b†º·ú/`ÿ.”Òídºg}kkvik}Ù3C+vË…PÍ\æ}Ôíß{¤Ô²}0~Rë9r=S„Šåwõ'VÞU|ãoKßµI /6&ÚÒ¶¥ÈÛ®idÎÚPcšGŠ)HZD’ƒ5Éc—ŠT­{Ðü½c”Vа€WÛüzFÓæ$>×;C©LͳŸ4 XÛr>}˜Wÿ² ’R Ikƒ˜ ë“Ú¿/¾œÚš€]ô«QY{ &¨K/óÝw×'iÅ {ïcÇ«yþ9ì´¦«äó»õßýÓ8íæ§K¯ÛÒc¶ž'kª¾²¯õ{ÛktFH Éȧ‡ |zÈÀ§†t|¬ä ŠÑŸëìØ˜dUnžMÎ31û‹<æÁRçÃÄœ÷Ûv2nÃ∰fiì.ÑÞ/©_a—&fÐö¤Ø\GçÞJßàþú݉è‚PèÒÐëÖ'%^EÈ§êº òlÇÊÂ&¨­›ˆœõD^ÈD‚$WÄ]@¬O‰`^ýýG±•î‡É5±Ä ˜$hìâô©ùšØMÎ)øÕõá†>)*#¦c5ÆŒÜ6÷4ñ6àøòøß á–kuÍöªæ”õqÙ‰7èË@û>,uÞ 9m~³.5¯¥0ËúüªíIó•õ~T¡sœÙœyÒ·¦xÒ·)í¯0ò^ O›û*>Ÿfåü«Rÿט’X™0wKÖ'zñÖ~Qù|?¯hy€·9ÌÈÝ$ÝT÷”üí5òÊÓò*¾òàn„UôêµQÒÍ•af¹W)FƒZzK·ì‹GèÓÿü ûó?뺯ÿ11ϧºõ"²½Ÿ±9„¹æ“Ѫ@ ËØžB¤ûfZ/[žý}¹¿þt@ r®›½ív¿†‡ŠhÉ5a ¹j¥rÞ£BånN"®¹¦1Ù;Úþvz}—Ÿ1Cz«_Ž+Úh>gVóƒåqÕ·ÛSŒª¨±K¸=ÃjRu×~á%Þª A.ÿƒOµ ÐcøÔ5¡Ó¬†ˆ­÷Éò£|ö%áÚb?%wþeëeÏ©*n”pC¦îž…1f¥}„”2J˜!µ2¿ê˜BßÞ–J‚:$>ËjÝ[”´'æ»zW€&Ù–á +ö—Sã‚VVQ+ý +\ŽO–Z{‰Qï7ôtmkž¾š{Kϵ¾Fž¼Aü7çÝÉÝ%qwä©ä¢H¶0Ñ+‡œ˜òswjï#Ò&DåßxÕ”¦_í÷VÄñ.Ç«ÅWzt´† EÄJ,tÞÙ]¼×™Ð#ól”è•ÄüÝç¿]ó¦é ùUÔÒ +w; ÃÞrc³žÍvA/ú¤ä’„¡ƒ±=EÊ^€ŸQß/ùRÛõéæË¶Ó; ì[9ø ÐaƒˆèS÷pœÓ‚&ýúcƒäôÒuÝú³s•åÓ>¸·4s—¾6ÕÞš5nðª×ú 7VA v´wO´e8&¥ëc°•±{„µÉ»ä­ aãæ05kcˆœ5÷´9u֙͗ðóÛo‘ƒ¨K«ýÄk[“B¨W%Ƹ§H¹sÛ.¼£ßþr€–ñ×·•'ã³L¨è!Ç4«Ü¯¡}Jty õçÍ1èyÇxËùÅ—•'\-Wã&VkjÎÄ¥1z.¨ãÍÍÃG>e; °OVlŽÑâSQÊV_ÃÏ-¾nÉpKiõãÜ*ý=ôñí)vuXÇC¹¥ø×úšé^Ù—Ö{Åß8‡ZÓriˆS¦»Ûtvéº(ªœCÈ4¤øóqfÖô]EŸézJ¾vŒó½*~›âQÛyuOKZÂÈAygà–Ç%_2rþô sí/“¬œ¿,敱!ÎqbÙìÊc®‘Ö+A;C*nkDÏÇ%¬]w¢¶î»kRAóò„²6)j1?ƒYë‡_÷ʨÍAÀÒÛ3¤‚¨™GJ½½5AÉóL ¯úÇÚ.l4Ÿ·?ÏûJ÷Æã³ÒvjÝ÷œ¼å÷´ÛK/[Ï…'a×ÿÍBiþu‰C^šj»ªz\õÃ܋֋^Y'Á1ÑúµÄ1о¢ì.úÌú´éL@vG=½¿=%Alb¯o ®¹e\ˆOÓNZŸ`ëúšÔIÊ?ß@_ÍÐJ£úÔ¼Èä2Ï4>Ë#“ æßÓ³—ÞâÓÖÞ@Ž;ÇWB`#%bìâ¸dŒÊ­±¶ó~%¡(d<2ZÙÊ»ê+o‹òÎ@ÒÜrfuPïaÌôtħã·¥˜»‹b|ž‹s+¨%k#˜[“”ÂÅRæâ å¦GÎiêøh×%?¢åã½RJ‘{y Œ½“æû¹'Ü“ÍçCjjiDÛÅókûºyùŸjûê/l PjRjCÒ@nŠë©õ€›Jæ_@Þg6ú¬ËSàcwÍ_åãªÞús› ÇUì¶°ŽÙ²4Œ»fx;»8@ñÖÓ6 ‰ +Ÿ1K=Ó„â¤MÀý°Úqwo¡£{a£êk>ãS èq CF>Î5‰ËžiÏÿZÞ™ý©k +~}×.íBoxÇ(øó„¸ì' ¹Û€u}JlÎÊ@Ë…•wÐs€Ã¯„õLhÜÚѾÜÏ´>…Ÿ ̰àm=I0æÂj\¹cvÓ%Cd;5|ØšB³pJ&E ©µæ2“F&òßV„°šT’0RãzbÍÊÛ†31«€^èyd&˜^ÖšXhÀp¼ƒµî{K¢F:Ðÿ´Ê°žÝ[ìèò©¹è¥·ÈËóO뿳>©úÆ-%ú5äÀ_„ƒ9>5¬!ÖùÕˆœ]; »­$”n 4ŸZ|TÿÃæ"硵øl ¼ä²¤Ý¡%™ß Ó‚æ¾Ç»ËÆ?8:ŸùM©yiu~-äzÔeQDK¯I˜øè FwI¹5ŽIvÅÜó¶ãº¾–¯5ÝÍߪ:j¿³?ƒ_ò¥®'U§ÖI'ÞrL²Ê¶&Yå³Oj¿‘KnþNÛ÷§9PWÖûÏ&ƒnOK`ÎQ_ +žÇQW¶†j¿ ÎÔƒx)ÿÆò²à/ê…_|Í*»Y®i1lk”žë‘ò¼ +>Ä'£–~[Ÿws\pó“wÄÓÿº=†)Š›»D~}'kcœWéÛº'ˆÙŽwг9±`þiñwƾ¼¿ùf°9^5!»ÛvzööFLǃœŒLZ˜È¨‘RåÓàsgŸ—1÷¸ð‹ÔußqkW»OÝAqI ùÛ“­Wã|YÒÌÇF lxXËl¶½h>-åg}5’ýf£SFÎó+Èe¥8ªc·Ægù$¯’\äš!庤ìú°¾¯{c{u} õŒ¼«ôø{µ¯3ðÂv±0an€¶m¶`3}j!Õ¯á]“ØÌÕweßÓ/üy”™þ…{ ïný=3ÇøyÜøub[)D/õCÏÆ;³ö¶ò»Õץ߸’¸™OMZ{8§(%kcøì„­½sw±£7jdA¢:b™s¬ñüÊ»â/½rrø=tÄÜÛëÑv0VÇ8U>U/Ï-ï$ûÕ-ü»íeË©V@Þ[ìy^ÆïÔ}¥}øN#!…-fÄj³V€ÜÖ +P. í6=|j›¾Çºƒ¸Œ(:÷;k?½h76øzrŽðH›®‡ Ôzj¬jz»Ýê»w–I×7§èeQ‹ˆµp0; BNbÏϲÐn½ +´I›×Ø}Çojç´Äbß æ–oy#f@—î€Ú¶v÷ùL½Ý˼ú­IFí¯Ý/wí<ÎÆ0ìœsvÁö´úÒæPMÖ/Ë ú¿ow¼Ü[òrB¥}–6óEs¯ 9ëÃM@»´•ìÌSÚ@›²|jÊ!å7ï+Z|¹äqë +t[ÙŽ Ûé>„èV à“¤ìµaÌåEÇkÄ››ãŒÂµA~©o¦ 7w°@zÔÔ2—³ãÔ\ׄ Î5-ltL°Jœ”×úrÄD­èé5ÛÓø[ëýðs*IѧJqö¿¬½m:1êg—¦b+¤ã·¥ÆLÂÄlÚ1«ürLöÚâÂâk̹Q2àtLÚæòJBÇC„äÒ„–Rå—"sÖß•Ÿv Cθ'P×b³¤WA.ôÌóB:6$ffµ¦â}ßÎgÆ-äfÇ$ü*ÐZ±…»ïüÖÞ‡›“Ìò„E@ñk±9ñYbùÇ%6ö`i)5n)úÆŽ‰R736D\ )P7|Rx残ú·…ž{çúÅ]< åÊ=Z!nK%Æ­ ‘®»ÆW¶¡Á8Ɉʩµ;†NvT'"€ZÙäš¡í̵ó‚©s0£°‹Ëo«¿_|×pfJ’ýÀä—ü*zyš]kï§åG ½Ý KwgÜHo +ªqyËMg•½yuO7_IÌ1ÚvÛÛCf9b2ví¿Ýs ñ)07JlîÖhËÅá¶Ëa£²cï~1K8^9’:¼k3¢vKXE)( …ŽÉ–k+ƒçRç9>Ìwõ$çÛÅ€—k=2jÃú<{mzižGMÚù¬M µÒô™¶:ÍEùÌÝÝÁ¹aŒ‘ðl;?¶ÐÙ³³,{ÌîܧB÷†pyºq-`ì½·u÷FRkY© ›c­YI+›´¿$îØ±?œòjÄôå÷Г«C¨ôÄRdžÞÔÓë‚zjµWM«Ž€q’LÃX~0±©à#= +BnÂÂFíÚùÔ;z+2/bgù8À4ÈØ,ýaMÜ锫 Z¾÷Éy0ÀÌœƒUa×?68ˆ‰ñ©A]ž£6|\J4O`œês¿Ó?m(þe«óù÷pøA5­ +äl@×Íók$ ßpZúÔ\HlNŽ͉µ¶­à7»‚–­ nÕÊ­`s‚Z¼-g×-’¯/÷CÏ9Æà×RÇòz )  |Ja›_ÝI h»ÀçE V¹ ©ó¯Q#åVð ëc¸LûKè–G-?Ì?ŸrŒPRz« è¨ú(`çøœ„™‘Sk€†õÄ"¿ ò"&Ó bЧàÔûÕœ¦èƒ!¶g¥_l”ã®øÆ9ZuÒ/Ãçùä¬:Ÿ†õÊÙµA½çq¸2T}Â1^û³[¿êž_õÎàrbug±÷ij®Ñµ)zaÌ"¤8¤°kŽé†SA Ä.{säŸ Èé„™Ùº>Í©[Ãf‚<‰¨µ!9`ísA5 îW±! Oj‡³ãÖÞ{m'c{F‚L­ìš"@.c¶,¨%UE tÔ¯+|ÎÁ2‡Ôã+ÖÇZ/9¦p¹É…®îø¼€Ö3ê#ZVkHM*iè1c÷À.ä1VjU÷ÃÒ[è9§” +¿ÌüÛ #çë +SÑjƒ2BiÒÈj=°ŠqŸà×Ðj£©û·4Ì­äe A²¼j\o–‹O,Hº>¬õ¾ù°!¹ëPàËýF&µ–‚GÇBú øÒÕ)Ä•Õ)ô5Ðé‰Ùßֺ⊵¤îmzø>jïy¼¿,äGu„ê p¸œZê‘òvæXøýµÎÇꇃ:zë/¢îýU ·V…¢ˆÏph¸m‹cô<ŠZý­Þ÷¿lt¿ŠÌr³€°·*|Ø’ôí­Š„;6&b[Ë]ŸÂßöhX˜¤íΓ„µ»p†Ð¯&×lËÈU!# š´³±!³o|…¿9ÝSwÖ§%aÙ`3Bèµ _”0±¡;f.*a`6÷‹µ«kßÖÕ·H€{ +–ûQ¶Æ)9^¥Tu³B©cŠ©u g$ð”öYzSóÍÆPݡȫ¢ûUŒªÝ9ãÃbﳃŮ޸…‡ iY jƒênº[ÖMòª$(¿’Ûè—“ Jz9ÈçÅn)½xG/$îÛ:A[J8>§Å«i§4}bBß–Ñ˶eļ•ôEÇá†OɨŸ+_í‡ÛF^ñ+)%€Ï›ãäܵALúÒ{èé ŒZ–´vuMí,§ŒVê˜"çû4<˜ßôgk´bÛ{䥥!\à4ÐõÂT[yT€Ýµ<¨OÅip+èen%µÄ«¢W,àÓÝ +FEÜ"¢&ç9إוß:FNº§áW×F—‚r©ðÔê §fî-1-~7¨bB×[NoAÎä¿Ý[Y7ðñ»Æ¾q# â½ÔÖºÈl;;¨ °;½%f¦×,ñ¨û‹=ac'gþ1Ã#eÕ,ö<Ü]àѽ²¶«ÎñúŸ]“sëCM—¼rtɨ5aƒ˜60 ³ˆ¶´R@ÉöÈÐ7ÖßÂÎÏ>(ûÛÒÈy”Ré׈ˆ³ïÉe°«Ÿ¼¥—œ(YmQ5©"$Ãß΋m»5ŽÏ^DdDf¹‡Œµ¿Æ\Þ³‹yÉ…IÌ, îÛ訸W䞪?³9\sbw±óV/}XuÌ­aPÁxàìÍñ S[éðÕ·uÇÕ=%]Ƈ­†\ Þ|F +äDnÂ*æÅmb¨)âÛv&çuÎqÈ™] ³ö×$ÝÑy&Ô¯£×§úÑ­æ6;•hj]ܨŽBX|SwËö²ö§ä¢ˆ—XäSRˆ•Úä”!2€ÝÃV60ÉÛ䜈·9F.ôk¹¸ë}ƒÉ%>?bb¶:gˆ¹äÛÛ +ZYtž…ûÕ%èü¸Áf»Ȳ˜˜ }#ªÃåþöq¾gâb“=’Š%©Ô9AÈM]ÓçUcó“‹©"jæ"|*Ô3êtL£oØ^×|»>Ô|*1K®Þ³Qìä–„…Ððq™GÛµñ€1±!5êWÒ«]Rr¡WÉkö*8 à÷¡I“ûŸ¨9˯›Ï»§Ð¹Q«%bá¢Ã¦Þ.òñ=§¬0Ð|JÂ5Æ*ÞèÇ_3?ª>¾ôºñx@ÁªºÔ:NÝ–ŒWo~½`xù|×ÏQ­Ò¯ 5lL \@߸UdÀ†ÐõNõ挾4"Á®ŽŠP` ‚Xe´lŽaË,®ç£{\_~Sw|ý]ËŸ ~%¬Åd¼‰Œ[¹XPGêãsBRÂÊņºí“·^O ’Ýè!ÜÚ3 ¨ÖHƒ³<úÚ(ââ¶ŒPÒ ‰¹î®¤½óŽOEkÐö•ÓÜ)úŒÍÖ ZDZ쇟ݚ ¦Öö̰“ ÇgÅìÅ·¨4uwõ7S¬¬ÏW^à +@ßÔÙ^×þÝ9º×s‘;&!q×Ê#|Xò>¬ˆ$ÛJfýÊ%7öÛñ1Î1¿Hï×1 !-·?/‚v7hæ¡=ZFcd¾÷ÙŽ­ç~ÒÄAÄõ¤²ˆ³9Ø–æ™f6ÆÍ]í; =\rPM\ü΂äÁ¶Ûa=ìFÄŒ+ŠÍ+ÜrÄÍM)³õ>ºëNl‹Û[ºó:n|R|ÉÒ«Ús+¯«Ï R.þé~Ë·ÿl}YráWgûÈM@êÞª¤/i°ö–%;v>Ï£ÄÕͽ¨;9÷´áûm)©xoIÄ“÷•ý¸>Þ–Ÿ°2í<ê¯62ª$µÙ_AŠû™Y'¸ßþ·¸Aˆ‹›èM;zSD/Øk<áU ³"F %,µâÃ5`ò|ÊæóyËÅPÃ>. ˜; —D´"¬WA*tIÑ×Ä-u@J.‰ÎyéW°ª^´œßžÀäÄÌ´†Ý&]7?dêépJq9Ko«~ðËÈÅ~«Ö3A¸ý«•Gý¸zç]`VHßš¡—†f»ÄÁÙ¾û¡¹¾‡!Kß%#Î=«>kÛÕóÉ®i jî9þüæ(»Ò+—`¼r|qÌ€«öɱyö-?ÎJ>¥ÝúÜö rmk’V¨è«úèࢰž wŒ nøgðE!=±*` W{µŒš ®ƒ™ëêrHieŽ)bNrQÒ±³ EgŒ°ŽŽèȵ!-½&fæaw–î'í=ì} "á¾MÈŠhù˜˜Q€ƒ~ jð«-§üz:$± `:fZÒC:LiÐÀ€v&E-íâðÜãÉØÂý¡ð<—²kwºî•Œš¥—õ?Ípnü‹±»à¯†;…g–ßUçì/Ñiÿpv½ +€œå7p‘ûkÝÏÃs|’k†R¾6 ¿6÷²æÇÕQhn@M¬:´!aá §; ¿^lÉÞ[äQvgéÀHýy]{Á—Z®ü‹¸öÊ'w‘™Ç@® „A.èiÕahBnÌÀ,ÏAlNânº¤¸,Ï49' gVíÎ ¨¿,ñhÙØ„…ÞPQË +vMÂÈC&M"bXÅnL9°ˆ–Ù3²;³\\HÇjŒÙ->5ô§.ªbC@Cùµ¼–åqÜuãÓ¦ýrjù®…‡óœœ0t°f!`OreÄ„É é1·SLêiEÔĆyµlÀ,̲°F€ ¨Xˆ–X<ÿ´úØüÃúï@‚FÀ ! ëd†uíä°^H én¶0Q3¾Ü#‡g¸ËÆ-Ìþ|ßãˆùÞ“m%ìŸêh÷ +¿s{m°öÂâë‚c~Ðß žtÇ—zŸ»õ|tª¾Ö"ø¦YÍiZ¹{Û#ENÂçFµJXßwÇ5A+rŽ`ÓgT»ð¨ö[ ï b:z]䂨.5†„ߌ7Ši1=§e{‘i{VôÕüÓ¯Ã:lÇÖ÷,1ßÑÔ³ ~51u +€îe&L´º ¬-3¢§ÖúÀ ›ÄÝå» _ß÷›;!KooÐÀ…”Ôò€´ŸŽÙâšd”o 3òr1Æ1Á®\é¯ûÖ1Öôóæ0êÒÖ£È9Æk Ê8Ð°Š‡Øœ ,¼A§…u"6ˆ üÖ(,Í9FÈòkèµ1+ ±»,$¬w‡ÍÂm 'w±vÖïN':¥ä| +_¸;Gƒ}\ðÀ¸IÚºzâ¦væ½÷éÐ~êdc@ûÛ¹—[~°½_MoIÚ:ºw—:ï$ù¬ÝÅž§ñy‰ 6Ç#$m\ZÌÂ%Å@ š ¥ÛжËI'îIÒmç8öÆö4µ)ªçQYl¿ûïln‚®tNS*–(Y‹ï©Ù!ÓÝ^#´YY@ÃlÛ[àwýº"àÌz÷$àßÜ­Í DZØÀhMéÇ.uür~u~si_»®`c–öÎ]ë#±8¤'íƒ1p0ßÎÿ`“ð“s¢CJÈ]lýyý}ãžá¶+q ¶ü`‹ÿ°$~X–ˆvl\lhÝÀ ,-(Cg†T¸¬˜ŽQ»câ"ã žcFNkpÎî¼¶;/¢ÅL,HP‹ËèØM~Ôus½ŠzX+DÅM\ä쀚Uѳšâ&.bÇ"¢„Àx·¼,ÿ~š{é_,Ýù‰) dz`aç×p 9§Þ3%€lS +ìO*¾s€}õŽãnDÌêàÔä,¶c±bó<<ÈOM!£>j!Tø5WüŠÚSÎñ¦SQÀ;–NIÂ|ÿ¥GE«³½­ùi¹¿ú´G +»•´ÐZO6€ÚšoÁ^Ù’2ª«u5¼6ë ÈÉÅ•?&ô¤Ê= ÕÑ ŽITáR?h³QR¶GÕI ¨mŽIBž¢§ø‹)aÞ¿z&¨y À1¨[ã€qfp·w-BÜÄCÔÔêÍáê3U?x¥°Ë‰Y:1wïeÔÜÓÔñ‘ËüÊÔö ®L”Ö€¬%7¢ÆVbÖlÌ0*¢s>0æ–7”]M?ÚŸ4ÿÓ ¯'çÈuûv!7d·eÌŠ€¦èSõ²ýÚÎÖ$>{îIÕ×–‡U_XU} Ærãî|gOÜ*æî.Šù;ów¸}°¿&`'—˜Hç5? ¢c–.ÉN*ží’;-;5'|w¹ïýÞr{ï‡eË5ƒ,šÒðsÒÀ¹¨ë^Â"¹5 è~M'-jêÆÌí{‹âö_7;€q€ ‚\Ò±[?¬ˆÅ±y>h¤5­ZTSkvmlô‡EeÏFk‹êI5ÃÐÓžìí+í÷‚ZZÃò`Ó‰•÷Õ?o³€ÀŸ;³}"†ž>7ˆ¥Ð‚ˆ¿¿ÙûÄ+9ußÉ(£â Ë=ä…8«;&ZKÔÈ$Çf騭ItºOˬÙ0Ïò¦ýeÕw¦G9Ÿƒmvf ¥q® êéž…O8˜ïíÍwµôìfÛû–ã†%ÖõdýëÒóâ¯?,ðH—%’+ñŽ•ƒJݿװ q µ" ‡^vŒB.l Ã.zåÄ܈YÿqIÈý¸,îZĨ)u@Ë%¯’RÚ|×*á&­ήÄ'`[W)ÐßA%¹$ª%W„5´zŸšU¿6ŽÍY|ßrm{ ›—œc@Ó-W—úëv¤Öú– Z}ªn†kšU½òy3o}¢é²_-÷IQ7¼Räu •¿5…É÷h$$¿¾ƒŸëìÚÅœÔ5Œ+ï¡i[#˜\ÐÎ=ŒQrµK†»åU2ª’f6ª8·5‰+hïÝñªzøÖ7¸‚ÅÁ¶Ì½ïB&>.µŽì¾p‰U ´]}Ì" 'æûž'ç»ú‚Zb™[ÏpM·]qË·B:ä­=;¹ù`•EðhàÎøU åYû+½/SsÌ$gSç;IµA ¹r‘…=XŠöÖºŸù,|ü–œ×ôLcLìN·Ýœ»—÷¥¢=ëÏKïkOm+ @çrZ6ÆH…Æ{õ_¯¼‡ÝtÏ +¬bÖ®•ÖT 2O‹9Ð]³„±;×% Y-¶ÌËkäEëËÆÓ ?oýºÊ&,²1ûv.!fbC÷çîÜÝÑ·ÓãZzµ{rvõMÓ çòJHN*ˆiñùû&twžGHÌòÐ;sòÐ|a±Ä«@ÜŽ›0eÉ9Z3“’ õ#zÆ#|;ˆ8ïj=µ9Øz +Äe`—¦˜™‰šxˆÔùG÷ :ôçmÀŠõÎi ‹¥ŒJ÷ ·)¢î¤§îy³=…ü¨î(ûl’zåîQhæGC»úÂæÞî•InKÁm +ÄŒÐ'@@œЋ[Íç3ˆ¬˜õΣ¨µ÷¾OÏÅDÍBŠ[.DnO±ªb:&¢¥×mO·]òÈé~5>?Æ^TÇl ©ð9~%¾`k ™ÓRëSÇyrX†Ô·‚Së’ò¶&y5ëý¸Ë¶Ç°Ÿ¤‚‚?J¹¹Ÿ¯¾l8“4“ªö¬,x@C.uÎà³@ÿµFt¸Ÿ–¾2ÐzÚ1‚J*5IÀ;qSO_'Ä®³WúQm7ã*bqBO©ݲ5™ºÖ{3¢áÀ\cìZãݶ¼3Ø\Àuø½En߯"†´èB¿ŠX33aáY.b¹÷Ì£l§,¼Ãe® #¯¸& WcfRýî³kg£³ô¶-S7§×ãó"®OφnM¢®º§Ñ×ÃJRÅÎ<öëÿqUØ0±i-¥"5ï#‡=`ܶ­öÃ.Î=­?¿2ÉŠjnÒ‹k£Ø\óËæS«Ø’ƒõ‡ª°QÌÜÆfo¼k:í›n: ˜©4aå‘>¬w?Û™p7&Ú.¹dø’‘KKXÙX¯~Ý«†¶'”ºTð«ÛrTÖþ’¸°‘8læ´ÅfÙøý%Aû®KIè 5Q#¡:4ËF{-<ŒÏÄGûÔŒZÏîúꛆÖ‡å'Þµ»Ï ôÔ5(pû;ü Í=è“€¹¿ÒÑ›4 ;FfsDA,ØŸe¡>.Y{³\dÒÂAxµÔ +ŸF‚÷È;  ž‚¸BÞHÌ·ÝÚµ«ì ÄÞ<Ÿ¼oé騘 5µ"¦f7'TBTXF._{[uÜÐuéÓ•'¥ÇÂRYržOÚ_èìJ˜9ðÍ)襅·Å_ø¥çBá¾…Û³ +a=·5º?Œ“ ØŸ •éž1)%æxåÔ’€–Õ˜°´³#³f>:¨¦U®¼‡ŸóÉI…;³|üάˆb~ ùÞÔ‡9»þ–_˜f½J®vŒÕœsOA2¼JÊ%ã7Ç ]ü˜±G²9Ū€³g +öùìÝEè2vÀÄ‚/!Ó¼“èê¿YÝYÿ÷Í÷˜¬DJãi¨µ»V.U“VÅ5Aºå—“òwfy˜¸‘N±ºwém=%/ +ô à"ªO-ÁoM°J—Þ *׆x A”cs wo~±5\sj{žÒÓ›ÂÆþö$¹À?ÂĴBLÃG¯½A]Ÿàå}'“ü°nbµ.…DÍ N™à·< +øõ„•K:Xé{êp‡OE)Ý· ˜—ø¬˜ŽX³ð¨áôÆËÊc˯˾ó«0…¿¬u<ú¸Þõ4¤ãÂ\S”Rе»ffkÜÈ„úä¨ÇdC†k +s˯¥Ô$Ú»ö{EîqƒvókˆUÉy6Æ4i@ +½²c¦4Ƭ\tdž‡ÛŒЧa#«-¨%Õì-sù@+J–iÈ;âUSËÖÇÈ·|JNkÔħì/õnÐÑÉyj³s‘¾9€¸–3ë#JÂ?C) (°y¶—ÕßkÚó>ßxÝtèçÖv°ß&à>&  Â:VÓ®…VѶ\ +©Î”ˆë~%£2¤aÝ*àFÍÖDËYmOîÖÞ@Nø§S÷Åñ@.”öæÀ¯õ{61{×*¤Gµ„’áòã‹o‹¾t ᯅf:°!uŸ0déš*£UÅ5|ÜŽ¹·°Þ=‰¸ê!äú•¼æËw^,w=H‚8ŠXXЄ•ÛI±àë]=VR*\£€ëdä²_—űYdÏÎ%î/qa³)¤æB’³€«µÄ’͡Ɵã:|Å/¶ñŽAÂØEf8Ç!§S÷±mŒ’²6ÇØ%~UqmŠ]¹'¤lɹ ï iÑÔqÀz[“ð+룭g6FZÎ:'7’–®;qÛ3UlNÌõ«¨e©<’4pÚBòÖKŽáÒo–^æxèàæêجÄ +àj³˜éUQÊZju|VH?Xé¸s°Òõ8ØÄæÍíR~Ì$"ÅfyXû{ØÙ¨…GøÇ†¸û×e6È—tè¿/‹D–XÄw:¦Ñ›SÄœÅ~ÈÔò„žƒù8O©ûeú?ÖøÄ,²`éMÍw‹ïPi!#Ÿ4 +¨ëƒè+ŠŽ¢/G˜é´¿j¸7²1¿¬‰»~]¶ÇgY°Ôœ{6>åâ€جè=áø?;o~–cò]ð?lˆ:¼*léÒ`ãñ¸•Ïÿà|høÕÙý.b$4é„iT‹ó>w¤®_ÒЫ¢&´o¦[ʨÙ[2>,q‰@ãV²×Þçüøûã?;'ëOúg·÷<侉Û·°ÛvMÌæÝYBÉÎ,&'n@ßJÌÑ›6Æ 7c¼†€ú^ÇÞ‚˜õq•MØY&ÖøômésÏk¾ôŽ’ +öŒ¬¥\Ö´(÷«„>UWU§ö¨}{ó¤ê ¡Ä'ÃÞðËÕ wuÄ€®Žj‰+ùŸÙ_çü15cÔÈnM]ƒš:¾îÑŠWÇ×·F(¹¿Ì³QÿÛ‹°;O¨õiêÎmN}ò\ÚÇe‘x×&¤û„‚•wÕÇ#u'â*FÍIBß›oçùô¬†ø¬˜º7ß÷hÏÞû0l梓ͧ6ëŽùe¸ÛIs;ûÃR×ýø,·ð±W;îìÎs0!9þöÚÛÚê®ôOæîþÉ4̇yú ýƒ&jõÁŠ€ý릸{ÏÖ.HÖN˜èÍÛ“­ÆÙiÿly˜÷íž™ƒ Hå€cNn7üä‘¢®ÿ0×Áý8/f{ÕäÒÍilFØ $$-BrÂÌl +ë¨ë#­§6†›N؈•l 0VÙÐÔ±u?Ðka5¯5®ã·%Í w›)•è~VýÁ¼„`“ î»ääÂ Ž‡ˆÏ + íÂ$x?hâáÐEËoêšà¤ý“ù~Þ×ΑÆKÿ±ÁÀýïÿE ùÿ÷üeGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡Íþÿ"Vu쿈ýáĉB:¶ÅE})ùäDni:¼®Cq¸8ö'UŸœ@\Ìes H.‰AG±EÇn€·.]¸|õØÅ:ŠzìÔny lt¬šM"èàÍz ŠŠ;}ìØô&x|Ò˜úÞÌÔ÷æ±yb Š >BÿÏ7ópà3ÿ··O5Òé({ì·w·]¾œ~ú“KÇrÁ"Hýû„žÒŽ]úíD^”?Èà-Á±´KÇ*AÛ.涯ûä|Fffú±ŒŒëéÇh©W®]ȸöŸ¯+þ××W{®øŸÛÿ?_ÿ¶=ýÿúyðÄúŸ{‘–Ú‹ßš¯ˆDÅÝøÏ?sîÿlËS§SÛr±Ç'apù•-åÇ UŸ@ÿ­9ó$õÇÿ²C™W.\ÉÈH»v¬íØåKiÀ¯k)g‰ÿo?“úïÿñ¹ÿñœyì*Ø´Ìßöúê±ß¾ã“'~ÛÑTÜ8–™~ùrÆ'Ò߇õhÜ$¡F´R@Åmò)X^ £%bb´ìÚ¨Mq#®4¤ÂG ´ÚÈ,»-n1ƒ:V«KFÈõ))¥~£*¦ç£wL"JÜ(¡G´TDÏ…¦–ÌJMMë’ó[œSôêµA|¡k_R "Jba\G* «Q7f!)l¼ÿ(dzð<`êû”‚6¯”^ê™ÆÞHSË`oGåôò¸JˆHšÚY«CÔ2dz&jä´ùT˜œmòšc¼õbX…/ß±R#*|~LO«OX¸Ø913f`4F4ÔŠ†ZæÃdÄÕLÈG[ggr–‡‹ê8m1£ˆž´‰9ÑY.Ê-'lŽÃÓ¼Søœà £*aÓ"2¤ÝãBx\Ý#ÌF0—]#Ÿ·ú«¿õO´¥'4¬ÆŸ4‰È[ˆôµ7M'°óŽaؕ͡ú“Ô àCmR/¦†ÔŒš°†Ý7 +ð»–~ÂÚÕÐu²|ª²[·ygX°Kw7ØtÌL‡ìÍñHàALšy˜¨ŽQÖP*ÂZv“_ͨŒèY 3­a}¢áŒc +r9i¦ÔîÏ +Hlbþžõÿ é-¿ãʲ-ß7^¾}»nõ킬[Y••Y•TÉà´Î43Ȳ˜‚™"Ë23ɶ$‹)˜IÌ +>’3«ûïxëø}ˆá1dIqbïµæüÍ}öÑÖ+0˜“õöéÍQ^ê4(0Q›ã_Þ™æœKÁ‘¥€ŠhUˆGÍÙœá—Dê¾ÃìjfÚ¡`Å­‚*¬ÕææÍýdP%  +îS°I¿¼=cç\Dæ8çq'÷2æàï…àý1áS´c^Iâ•6%íü+i‡°”Ȩ[TIzU¼¬ß¨ÇÝJ˜y+éSqpJ°3Ç-ØšaGœ²fÂ/kÛ j¤o¢æþ=xß\Øh&B&s¡áíX­1úȨ?Ôk4$ Ö0×M*Øû„òut½œðª¸ÙœEgzÅu¸OÖš iåüLzV\†9Õ\ÜßuèdÙ°N“‹-x@ÖŽ¸9Ř—Sžq±/'g9ç¶&8E3×J ÜežMZ;¸›>v™yný%óèΨà<î±  XPÎÀ½ÂrÄÊ.Àí‚Júˆ x?YÂ*.[e]çžM{U̕׬ã‰Ii)nƒq¤¨KÑššeŸKÎ°ÎÆæ” CŠ+¨ÛÒ¹-–øôßdó™¹–#„ƒy·3Î"vaI|NT–°*šY›¶ª[·†ÙGWž4|±5Ør09ÙzŸRVu[Æ.«2ù­ïVÃWЋí¨SÕŸj>¼úòÒ{[¯Kÿ‰98—H·¢…péx˜G'ÀÜz×D¸õbÜ­å¢ôQ“6^å•6^YS6 Wå£z#î5( †$)«¼.1%¯ÀÊf ê/6Î8ºò¢ôSÿ½’¦M%ïÆ^éyÈŒYãÙ|ÑðÕâý¢÷ÖŸU}‰M³N£³ÜKI«àÊhÏéßÙº >À¦­”W/‹M´ü}xáÏ+Ï‹>Ä­¬Ó¸•}–­!¼z æQ³úhˆ·ÇΘ´»s/P Q†µ Ά-}Ù°¹ ÷@?Û%•éI:-)§\²:Ê#®ÉúÄ5”[TŽÌÈkH§^Š;ùeèçRÖ µàV1)¿F@zµBÒgP’K7êÖKVuKÚfàan£‚é5xX-Fý! uN÷4…‡ê¿]lÚŸ˜o 7ȈÁ˜š¯ÒGñPA½†ôÈšH· u2Og¬ÂlˆSžr7Û[NÒG·a^5ÍÉ8D¸OP– ò+²aUÆÎ>¿5Þò3bS2sÞ¾‡ù`ßsܯd'ì¼ÂíYæ‰+óêT³v£w wµdXÉ£ÿ¤>ì{zî&½j^ÆÍ+J;y…)·¼%KÍT +` YTÀl!|fáÓIr!ã_ËJY6¤à>5t‰k°ú¸sekÆk6!Œ>"ŒŠš{QŸ´us¢îÛñê/7'j¿NÚ¸—Â/jw3¾úí°¢øSÊ{vgœyŠ>Âzñ~ݧ© þ¥l@+¥":î—·>æN“4¹ VBx훯ù§6Ç„çveóŽKR?Þ]ðîÚKÞyÊi”å}KÊ%ª]}UþÉÆ`ÕgÉ9Eè#˜M)—š³1ƃ1MqIêrq-ng_Ø™l9´òªñëíIÞÅ”K/Z\\xÜòÍÆÿDrDU•™]Aç¸SSì3Ãm?Ú®•þeõëxÚ¦n[%•[£¶‡j ³ŒËT@Ü„9Äô/¨=!åëê#½&Ìe¡NEî”ç‚àøŽ° +õrЇ¢w™ÕI›¦=6®©Ål:n“×m4~¼súwž¾óð]­ú(ýÚÀŽO¨ê6‡§¶_ñNÄ_qcÓÜ [ÃÕ_ï_~þYíWŽ[å†ï7"Q´k”qtõyÝñ±ÖÓ”‹[H9ÛOnn1}\A ü j©=2™òAƒn7¢UãQ +}CôÊ<]+a£ qËq§¢9ïÑIñjø{~AÅnu9h¿«þ™ÖR®NKbŽs91Ùr8P‹ö"zÝ¿–ŒÝÙ F‚ºU,Ôm#À ˆ[ÃA]z +ÿâAÐþ¨ÁBÍ›z©¨©“ +éxH%XŸæ\Ø_éË.˜®Â«'¿Ôq3·`¾– u^‡ÞnQEj®å0æj9ЏZOƬµûcÖ¦Ãôñ)˜Ü«bcnYÕ>våã€F7ÿ´6\õYzF\—ó]}D:û2.3i“Ö¥í¢jÔ#mFÊÖlØ`$B*ºœ_è~šô>Gý–´WÍÇýÜ"ÊÏ+Í…¥ídHÊF½¬‚m+·`gNÞ¸>Zá·tÿº ÕükYÆG=âjÄ©hÊùDµ»>Ö%ô3éP3`^ØT¨û.0èÀóš6nâÖ!~EÒÉ¿²1Þ|8p·è“ÕÇìsÙÀÍ©íג•íccì“Y¤6ëTd}’Â-­£|5éë0ã£u髼·ªšÈ·õ'o^›á]œ½Vö~lLV;³lòƤƒ_œœaœ%š¼—>ºN¯L»d ›À1믹Çq¨›ø¸´™‘U sÂ"ÜA+Ì/ÁÜò6ÌoP.¾bÞ©ûhí÷ÄâSþ‰ÍüSé)qI|œ{fç5ûh|Œw63'.C’šÈ‹¦}/ùПàã:Ü/iHZ'0· ”ðˆ*A¯²~Ð NˆC]`N³rz}/*nA\ÌsɹÖÃiû,âàá íi»´:1£¨Þ™”ÄÆ„З‚K±±¶#[¯ê¿Ž µÿˆÍȪÖ[ö­½dŠŠ.¬ +Ï$‡ä…ËO«>³_;õ»ð½¢¿!³ÒjÊ©—Q^ƒr>¶~Nݶ°\ËÁ|ìL·[~QôÁÚpåg±©¶£±þ¥´ƒ>nGÉ@ìòº¬W'§üm>h2g+¿´•ð)™¨KZK¸•m9†›ƒ±Ì{ùŹ ó"îm>›(ú¼£€€Z[iÚŸo;º |ñf^¯µ‚@-g²Ô­ N-E\¢r x‡i¤ÙEóu"ªUaš-н¸_Áȸ¡"Ùî‚Þ¼» Õf£ ý³;ßý82šécîRs¼‚¼O%ܨ¤ùˆR’*ETPÚ’´ò 1`ª´CTF7I¹5¢œW#$ÜâjÌÉ8Cy%9ð›„M\•´v(qO‡1ë×J裗·š…ÿe|ÒFÄ«hÛ]2ßÌÎkµpQ~©óAv^Ôœ¶³ÎÂW`^~y."e%œÂòÅלcË#‚³Ù`×·G"FÕ²lP¯£@H¿sÔÜ©ÿ~s”uœò«øù¨åêè!C–kxðês*Òu7 c|Ñøe|Šu‚r +Êò­,»`îOô™’6`n›°(eåœMN·¦\‚RðòjÌ%­ß™ážÛœ”WÇçº »žZ%Èótl²éÀÚkæáIYYÊ¡a­NpÎ…”¼G€ãn¨I·šš•”§màvÎ…´MP„»D•Û“ŒãKÏÚö!3ªÖ=¿ÅBÒGÁ;x… +ç|Ò&¸¼9Â=¾5Â;l9 jùòŠ.ü30Ð=+3),HM1Žo€¾/¿ªû|þiݧ‰ Q1èš…÷¥€™IÐÔÑ|$5Sýmz¶öÛÔlÓ©éöcˆKÞ´1+­ÛaÚŽväì†dL˜·šø4ãhrºýHf†y|y¨é‡ÑÎóp߬úŠ´e»¸|k´ißÒÓŠ——½¿ô¨üï[C¬£K¯‡;¸ûþcá:ïܮˬ%A3²^^1d‚²Äûüö,ûLÜ*ÍSqó4{¤¬Ò*Z[ò!93ïÈ9d@ÎĽà©0Ö¤ëúsÜk鄱cy+T¼YPËóQi{6,¬ÛšažÞ½ vö¿YÔèÞ,ê0gýäLý¾Ä40¬u†ôŠ«IŸ‚‘ j¥Ù Q‡ù:{ñ·Çw^%€ 2P§)— 8é–¢Y+Q ©°FJs4wâ~­˜ +4»óã›Eƒew^£È/hTÙôlrÔ2åëì¡ü=·¨pÿH.ÒÑŸ_Ði³ó* c +ýWAxeͤW-À=jnÞ×ÕŸƒ€,ÀFârÐ¥#g.¡nayÂÊ=ù ª”CÞœ° + +É€F” wÝÉE-7é£Uv—ôÙy9‹k©E•‚˜×¨?d¢`÷l¨oàͲù0™2å¤9rX¤ãz>bêÆ 0úZÃZ dº*ÐÊzÜ)©NϱN'ç8ç2NÞÄ+ªCA ˆ`Ï}2|õEÆkP%ì*àcK×/As׿æõ攓Wê{Rò>êì¹FçUÔ þH#å”7R^Ayj®ñÈêPÙ?W_W|ºÚ½2ahõ=e[|Öz =#*†üXZõÉ)U-ðѹ舯ŸVœ ª §KŠ·!£nú¨Lø>'û"â`œMY.”~°2Ðü]fVÙ‚ù4âaö±ôœ¸2eÍñÝk=´ô¬éÏ­Ê¿_güÓÚ²ÏImKb\x99Æ<šo?ššâžONqÏÅÆÚF­ÜÂÔó|ÆÎ/!ýj~rŽ_°=Þv$6Ù sÁ<Ÿ˜eœØƒ>ÕvxîvÁßœ}ß”¶ï†¤m˜²Ð,ïÂÎçLrš{.9Å>µòºy¿ïqõ—ë¯Ùçqà¹4}Ü«UXšœfŸÝ®ûjéiùDZÖñÕWmorý¯Ð†Ão€…A+¹(è@r’ ¿KX†»å­ Ù´®ReÁç۲ெ›˜å¤f8gQÐê4°'ÌŽ{xW¨€N]RÉŸ¥›ðwöä >‰€¬ us/'k–«?ÛæBæ4(n#ý’¦¼OÔþßDy€U\ÜË'·÷ó˳IKt’ +ô>À¼Ýý¨2¡W/Mƒ'íÌñ.&‚¢ôJÜκ×ÈØ[Ô›1ÐWºöô¦|D£öRgÙrQƒ ^Fܧæ".à ¿^A'‘îGd˜Ý%­ö—UCïÞ’ÞB%Mi'ë}T ó›ó4˜[R£P 20ÇŒ;L‰8E帗>î\Z›r +K³!œŠèõTÄ`È.è yÐèøˆ&5˜©üŸÑD…zÁx?co.jêÉ÷Á«‡‚|EécVÅu° pÓödûQÌ¥b>=deqêAmÓÞ*o‡ißÈ@†NÛ[Ž­¼ºò÷ùGÙo=²c•U¯N«ªgoÖ|ì¹Qó9bU6¤f…ÅÉiQÑÖˆè<}ÜVøqÓ—[CÜ3»afcBpqkBTy‰¿2ÜðÃöDÍ×;SU_&gëöÅÆêö!³t é„ÛÀYÁ{Mßv“‡ëC\‚²…Ò¿ë¹Zò'wWÙ_wž‰€w„¥Þ[Å­4îßõÈZ(§´ƒëÜnüníeå§«/*>8E† ÁÌ¡lËú•Ê'oMƒl¼nþam¨æsßÝËï­>­ÚÿKHPMAÁ!ÃÓGß%çDEÉAÁöóÈÎëê–‘i=ℚ½uÈêÖ‡›¾÷ݺüçÍW-û¶‡‡"w¿Cgå­»A¥™É®j'YÎm6P^­(i禜¡!—æñî¼±kÇ)®Y†ŸÍÌ:z)¨ ÜÞ3Óx(í`PË&é¼…,½ Ýr ´z­§3Œ³ ² ¯˜ +)¿°jVð d‰½ˆÁL_zT9@˜_·½Yá×¾ýÏŒ†lÐr• +v^GásÀ\W§ÂÒ´[\µ œ¹4Rÿu´$‘ssòó +«0Ÿ¨†ŒŸZÙH› uôŒôËTx>¨€N+1Ÿ¬9¿¨’e畃ÕâlX£@}’fÄ#_×ÊI`Å´<¤‚æMÚÅ;ÓìS)»à +Bk²W+LƒÆïL3O’^Y;ßOEL2¬ÓAswIgÈÍ[nÒþ’7_Íûåæµ:",gÒ>³;Og$S0jIàY* ½ÑÁÅx@Úœ²‰Ëèl”öÊÛvìÜË­a<ºïR‘žGÙ%óm¯§‚òØ,ÿ2ê1™s¾Ž®ŒUÖšƒ±_'Ã7gé\™vKkh=HØEñYÁ¥ðUlœ{!3#k jAÊ£l[ŸúÖºö‚uœðªX;Œ™)aqzBÛ²3¦©[~¡.^66C_Þ®Ç7~B.]zUóyj†qs@ô‰ë~ÈØôyrŽwym¬í§­aÞÒnѧ¦ÕMÉIéÖçl|œ91Ê»@ÌŠJˆ9Yõú«Æýžëÿµ6Ðrú£›å]Ä€cbc¬ã;#û’Màm­‡`ºí1îiÒ­å·B]×. '9Í<•˜¬ýk<˜u0ÏQ.Æiü6€Œ +쓘dfu„[Å¥@ûò!% +«ã³õûR³²fÔeÔíŒ À?ËÓ³ÒflVZEXÅ¥hb”mN4Y¬ýš°«„S/Áì6îÐ01;0“OÅýu^oxÕ«E;v~ÑòkÖaÄ¡Páî{˜GÁJLÓ¾"ªD]*µ¨ÑQ½j“O†õZ<ÔZ­×b^nIÆ^ûCÆÙt8ãa Ae47?|µÜλàÕó ºú,Ur Üò|D +| ª€9eCf ½fI¯MÒkyÙ°V‘ýˆÍ +¯à^aõèu.¬biCÊÁ»œ‚Ìw«6ðQðU° +uÝȆål"(i¤Â’f’þ7(gbAyû–•>Ö× %‚×Ç ÈdÈdN@¯Í8D¥ˆSÞDxLš9Æ©ØlÛ à0!åë¾õ6ïúTlàMúhá×ð³ËuøÌºø I¯£{d#=Oè#Qwÿ²Q)ƒ>²>¿ 7Ò‡z´ •>‚X«3·ß3¯UgÃ:îÕ‰èã´½Ïê¹ø§| óæn´o˜ŠtÞÈÄ ›ã¼3+Cª²©¼>–νz9âº>t>ô$}מgœÊ6̧!£‘ ›:»Žƒ¹ÌÌÕiÆÝFð'èñ9öÙÍö©­qÁ©áQ~µ06Á>“™Wc¶Þîä”™¿3¥mÚ˜—lC-­½lÜ·=Â,³=Á;‡\˜sj{À_ê’t?ƒNÁ|œMÙ%•ôÑá$ôNr)Dù®>$|7^ÁΛT¸£…L„Œžq©Ú©Pç ÐG îÒ‰p§IƒÌ‹¨%DHÜHEµ¹¨¤5UË÷:n€žš] 衦MÀK–k{QcG6¤‘>­8¼´7oî#ÝÍ=ÀÕ¸Ë('ð ‘õ$¼ß—vëňۤAýÝ7W'Õëã¢K˜GÞ¶Õªö YÖwg£*1âñ™ ˆ÷öL;LF´Ò\X-Ù£Y-d2â~£&édÅ&&]ZyÖõ!å3›“6iUʬ  õ)YùË<øc.¬Sã®;S˜»ÿ áïèÀU˜ƒ9¡æ;ïîÑkmó:}Æ)aS4‚æžÆ\⚌a.Ôó0î{™ wôжªšv¦ÄE¹€©#iW‹7&”){ÏÕ¤ãöðŽýîDÒsc è4q» d}‚{n{ΠØruõÌ¿–AÞ5é ¿V†ƒ¦b~ÈOVeæêêŒÏ™e±u=å5ª)Ÿ^ ¾Î#Þ)o6Ñ ›æOMJÊÒŽÃú ¬05 u cCzŒêŒÔœ‚ »~YúIl¢í4â–Ô/?cÆf,Jè=å×É)ŸI{šÄœª}åUû¡×ŒŸ7F…—¶ïO‹!óËÓÓì‹Y½v§`NYãÒ@Å'‹*>Æl’Æ$䘥'•m¾¬ù6=Á8›…9Ï»Ul>çÚ`Õ¾•Çõß%¦ÅåKO›¾I qNgɰÀ›0ø­_y\R±6Ú¼?1;YTº1*(Ìú4¢7ÀãPê\H#>g¯O4\zU÷ErRRšòh•¡‡-ßm<–b³½}»ðò£2ëÒ‹P»¼Þw¯èÃÀ3ï!ãÌKˆCÕ¶ò’õSzZÃÈØ-œÎP«¸GÑ‚¸ÄÕ‹ã û¶g8—IoÏ­”«³;éP³ ïµG!€€utd~Ô©lGæÌòÌì[ˆ]Ï'¼JTòÈ‚“_PJ߬¨5¿¬¨”X€_™€Ä£nÓªf‡^ˆN"ÖE6¨“g#Jæ‘5$ìÂR2¢àd|"hÐcþÞû1‡¼1éÑJAwÍx²í=~3ãV¶[Ê(¿Šƒ; ÒØ”ºð˜u¤ßÒKø::óaSçî¢F_0tBþçgÜ"ø,=73®î«i—QJ;º³ów² ½/H`%ú÷üøsH¯Zk¿xƒýõÿà¡kƒˆ¿ë&îïê§Â:eæ;4ê÷B)½¦å¾_wÈv½åäŽýöĺõæã¥)‹lêc§#€õ„O#E=qÒ©hõ?húõÈš¯¬1ãU´ ô}i·Vˆ»»ûb³fé꘸ ²ôî.»ó‹jTq§ŽŸq¨Ûâ³’òŒ]ݾi“4;ûk>Ý7ìE!ÿ,ÝÀÙ]„K'LÏ ¯Ì?­ø41Í)\›d\Rœ}‡œí»†y;:2%#åP4§òºí)IÉÊ+Æ¡­1þ9ÏÓæƒ#Ê‹ïl½ä톌t-K)¨SÄ-(߯ßï¹yâ/<(ùf×Äg…%ëÏ[sjåÒ26aiòpl¼õÐâ“’OÖžÖ}l=u_|üÈÍÖ {«Ï€ñUD@ÁÁ £¥¬âòÄ\ËϨƒSˆz%MÁUŸæÜ’¦7Ë:#’±èuRÌ+kÚšdœÜeœÀj^Ì-h¶÷•°ñDÃB÷¦0/䫼‘öÀĤ¬Ôq­èG×ùâ¯YW&ù—&:Jÿ‰Nw‚®Ü#CWRvyí+i»¨lu¼õØÎ4¿„͈ÏjÚS6÷ÞÂý½÷¯¥7C{‡GÅNÎHËR3:FÒjÑ® K:t¢ÝpGÿn¤£ÿ—ecô‰ò«R®ö=›’6 gu„W?W›\}A…ûÉPïS*ÜyƒöÈÕ-iGËqÔÅ+ÂìZ:gΫÀl]wò Æ Ø>ã5ª`+ þÍx5¢å1Qaô©èxÖÑÝEßs! ëÿð2n/O³Í¢NA>‰9¥-«à¥I§Ns(Ûc6Q âUñ GuàO&ºOwáP—šã{XÿMbú&Ðûž‚ƒœ!¬§"jÈ +6êÕ’¡ŽžgeTY =Ò Ùä6é¸JF:zr F ôˆ!Ñëb3œòaíéÏÑKw:Ðsoüõu]ËFºîSáÞ§4¿½Y”rHŸ¤aþYÓO ÏYEIϵ5k—feºCsvrÑδJ¶&¹p·¸&5Ã/@=’†p/¬•…1'À×—–‡\¾5%-¿¾»hìÌ.ª¤ðY‰9#ãÐóPà³”[Ö¸<ÖzÈw»ö“ظ¸>í¸–r)‡QòVï\{æT­˜CÆ9»4ª¾ø{b΢‰[U-Û3¢Â”]Z™¥.m“×"vUKÚªc¹µz.:õÛ•'­—è5tÔCç%QåŽ}ns¬íð£šo’ãü+YVŒº5¼ä°ìJÞÖiˆMÊÚ~À¬­ìòfÂ!mHO ­·ª?3Ö~óߦ;J̇Í×.qUÆ-k"=zy>`2þ–S‰éÚï3-?m¾¬úgÞÁ-¢¢â¶mó4êÐ+(ègÌ©f‚'´’­(æà­ 1Ž¡³F-š¹3Ë»µX…ØÌŠÌœYššP5g&•MéYu‹õIãÒ²/~Ÿ3hÿ˘U/ZàO˜P#p±—^ãÈ@­¼œÌÌi¹˜O¯IÙõ”Ó(Ï85ì<}/Â, \½0ÚvþVëþ?¡Sán¨ó&êV0ɀЇÑ{@Þî»P‰© N1ÿ‚}ú¹êô×Ê?ÏGú^¡þëCiÏÕ{I—ruGÏnÔÔ½ |Fxd©9I)jS·a.- Šs!µ”‚ „B¡ž(üþ-çÜê8çDlBY•÷vXP·¸–ð)¹»á®»TÀdD ÃmÚ¥Õ[vIÕú´ py„s:aW1£ÃÜ“ˆË¤&Â=OÈhh»Ù’ñkDi¼%>+*^`ÚS×ÓšI„,WoWÖ›ˆ°¹›  ¹°F:Á_UU,ÈŠ³!ƒ^zríyBÍ›{zx6¤S“^ÈúÞþm› q}†y÷÷<Ä‚wœßõ!xoâgœ‚2Ò§`‚jp¸~$l4¢¡Ž«x¨÷ä,¸>.Ô™ß,êŒdhÂmPíFº€'÷’à•i—²ñ(€ åmÙˆF¹·¤§ýÌ@ßkÅÂæ®¤MÏM9µì­9aÉÂPãwñל“Èœ¼ꈅ@vÊ8LJòL<shÙ‰qÉö˜à0OQbJ|ïXfY}ÆØŸšQÔ¤í²êÄ´´4=§¨O+ª–ù§’Ò²_ZÅ/óÍÑ0 ä()å5ë!»t$gM±iiyrVRåœ €EÓ3²*Ü¡ïÑì^¿9Ú~$ú öÓÕ‡UÅ[à3ÀÚ^ŒÞ›ì¨Èy,¦œ·Ã˜™Wdféug^ endstream endobj 58 0 obj <>stream +1jo9–÷qJ¶&j¾‡Ìôéí¼Ž;;ô¨C'@\ÀS0?» JáÞ‚„½‘ èµ*Âe1â®ëO1ç­aÌÓÿ$mW¶lŽ4ý°ô¼ù»ÈÁ1ïÖ "`îJ¹µ’u¨±ÔÜíçˆãæKÂgéB¼ŠöÙöc;û,bãP>ñJêÒvà6WW7âÐñè{³±)iY ôlu´æûèíò¯÷|:u¸„Þë€z®=Éø®=Åh>ó÷ÞE|&Ó΄øÊæç$hà +²ÚiR¦<Ý}ˆ¯çÔëc2P01¯¤~8(–¶a^æÅØLù¸CT“ ZúPzl\=½D€Î5*ánTÁ͇e ÌÁ¸°1TùÏįæF„yU, >í~ˆ«% Ï¡!ƒ6éQ2ç_³ƒ.«²ðó(dñ¤S/!¨U­2’0PrÈk;s 3nñß'Ì×3AµñÑû¯,àY7ˆÍÀc0·¨G/Ã|=wb.“~cN\’vÞÊѯyË,¼ˆ·{ïø„GÔ˜ u?ˆ9Šm«YùúÉäõEco6¢–‘Aµõ+Øqë"ÒjÉ}dž“{9¿Ðõ`wõêµ`¹Eµ4ŠrþŽ.ðØ{¹ˆ¹36÷ÐëÍù­šŒH/§¸„MET"j^g çM]§š¹ +ÄmPB½‰è=h˜GÚ¼9Å<›!ô¾'‡–»9&-JͨA¯¡&ÁovÂê¬}ec´ø«¥g…ï­?¯ù¥¹Ã&«ÎÐ:æ4J霂zÔlz}c7(efýÒ–]àH¨KŠÞ3#*Æ&ùÖ„¢fkZ\Fï?[ªþjs¸î :+iØ ™:P«°µ ‹3V`~«ª=3Yöel¨àƒÄëúïpÈñ”_ÞN¸EU˜MX9ämèLo:Û!K9ø¥ …Æ'š¡7ø•¹€œ“£5Ò)«K;Ô\¨­‡Ù¨©— +‰ê1ã,êbž'Ü’º¬_¯È†M]Ô,dRcƪnIŒÊ+3“Úöô”ª‘ðò+¨°.ã’5"“šÖ.^jVÇDl0/ceKM·!€' ¿’MßEŠæŒUTJ¸µ|šÅðÔË+AÀßpŸ ñŠjúÞt°o ééêI{zï¤Ý·'_ï=ÈT¼¼Wɤ<Ò¦ŒM\E@½!þèºI×á·õt{w^oÜ ÉY”_{Ù—w#†½°¨÷²ŠΕ´C¯¤‚FÐRz½¾w¨nqæV’>%òBõölË14 7¢áÎ[)¿F÷ë•ð,ªÕdü¬Ò/n òV2zèºAEŒ¨WÞ‚y$õ„WX™±óŠ6§ÚŽnÌpÎcaS/>¯’ð=døú$¼ëN| lÕKE-7rÑžg9¨Uz-ŒLXHÎØ]0tÀ8ˆa:÷»Ðë» ZÕÞ¢Ju+[bŸ€Z)Åý殸_ÉGƒ*` È~#ä~ó5*ª3fçUr4̪\ž­ú6¿Ðý8·ØõX®o¼jo¡÷°>d-­‚ +ëuYúZ"¦.zÏêÕ%'ƒ:åî‚ òˆN¼%K»$Õô:tø.J{8…›S­GP—´¾Öm«¸j~€y =­ãìAf½âzÔÙ|,>UùÕÊ«KŸÄF›Ž£s‚jÒ«â,½j¿TP>³^ƸUZ¹=ýŸi?žvЍh~Ä`ŽyøóCÍû0k§&F]îöXó¡ÈƒÂw×^V~‹ÛE Y¿Zo>˜™cœÉÑ{ôZéÎpé§±áŠýø¯*ëUó1—¨26ÖDïñú:9Ç:›U´o¼!v˜ï±–s¸CÁÎÑ×#oÏØ$µô=IÄ¥dÁ<]K:åÀÎÒ¦½¨¤íMTܲQp÷¢J!Ö§]ÌKi» wiØÉ)uszBÛ–š•à¾Ö3¹ ØD-$è}ó:ý–UTŸÒ1 WÿÌcTÇÆ¹㣼+”[#Î5rÔ%ªŽO7Þ™hÜOÁ5£uj¹„OÁÂÜÂZÜ/ªÇý’¦½yboÞ`IAfɸÍFÐJð'³™^ÓÞ…W>d0g0aÈ¿>Y ðX[~^­È-u?'"wèõÙ|X§ûeQ­|³ ¼Yó2Ž–;3•_îÌ4€ñ/‹Ù8EI«ŠMzú䂽÷³>£>eS4$lêöíiõöt멌נÝq›T[-‘@ßSøŽZ6ô"Á–sôïÀ}*0‘ˆ¤sjH-ʸĘWÉÉE {KZ#5/a"AA•2ñyAÔ`/ºeÃ#·œ8h?5ßÑŸ_îyõfµg$¿dè%#T Éÿ¿´$½_8bêùuÙr÷ jˆ€¤%áC–áW®Œ´Ïñ ¬uu–}¥÷=Ì÷<§æ{_Qc'Q˱´ rªÓ~A{~¡ó6š)ðއdT«Ýž®9@@î„,Õ…ƒA£ú‚®K#ôFo.ªUeƒ5|&ä(&á—·½yßEøÕ|º³ð{òó:ÓÞ’ùÑé’NÖ…ñ¶Ÿ€ù5”ߨƒú+ËØùe˜]Î&]×ò¾žÛ»s'äæÖÕÁ¶ƒñiQ½?ò)uBÖ·Õˆ[¯6ö“7& l[Yg·Çù[ÿ½ä¬Y‘šÖ4'F%e™ A怚‚\°5É:‘šbÍùyÕ{P ˆSÃ@¬&á¶ô‘>K¼FïËF¡7H+ûR."¨}pá‹!Íùo)»^鵄WÉF½ +Æ6èZzNRM¸al‚ÆzÍ&ô²í@ôä_K + åg]IZYg·÷ù¥˜›SHyem)— ö‰æÈÏd'þÌ©¥{‹úž_õfðsEÌ©bÄ\âºè8ãHÌ¡â$ýP[VYé´tfýOó¾Î«i;¿xk¼õÐÆpí—ñ©ÖøW'ÞšRÕïL*«(`Œ½¨åÎnDÆ$ý Ã~Y î“· ôz¯ßÜ‘öªøq«¤²|_.hÐR4[ô£ùW’v5³»(ãå–´ú Ô +â뺞[èÈ/ju¨ó˘O)Ì…eâÿ³¤TS¶ÏÖ}¹<ªnNÀ¸'lð‹%íèêNÙ¯?讀Ït%<:ÑŠMÕ´2#-!B}/`£LØ`ÄBúNÔoéǃ–«d¸›Öÿ~2(¨Œ[¹Q¯Z–_ìz„EåütˆWžöñŠS.Ná–âazصñüJ÷@n¾ãZêvw¥k »¬5eáÚÈþizMæ‹ ÊXGûiÊ/†>QK²i[>¤þ² RþŸ%n/ªQÓ5›v +Š7gÚ~Æ=²&ú +ä %Ô«±`ç-j¾ë5ßó, ׇ4Rįæa£ jY“$\&]Žþ ðýq—š•r«Y ?Ú=ð ²PrX>ÐÑuôæ#ÆŽ½ˆV )¹ô¾`4÷\½ï¼›[4€?êÔ| |H”häô7âRÃ{¨9ùpç\¸÷i.`¹š÷YºIAE¯ƒÒû—p¸s «3V^éì0!®k6“,é4)â³ZêTsr0ædH)Jº¥Œ¥!ðžaQÕž·÷.åUñbS¼‹;Ó‚+Å€­U|ZóQ' ^ þ~sÛnRnÍêÚß®…B†È„µãtlªýèüÓÒ¬?j8”w™LÙ V‡Þ ¼F].Ô}?š˜÷÷Ü¥| +×™qŠª ˆ ¿|AÚ¿ûvÆÓÿ<1 ;sšV_µtô•äî¯ù†ðh”¨ŸÖo%ñêq‡†ñªØ;NIÍŽGѲå‘7lL‹Kvalw!R>%‹ôk¤ù¨ZB×ÿÖ¤àâÆ”ð2ä‘â´UV™ ‚¾L`øZÔ¡b’^K}oõ>¦¢]w!7êÁÛ•èÍÊ(§`áyËÁ|ÈÜM„•¼½%¥$¿ ½¡ïM/jTô}h, •C†¿šÍÀ‘WA«‡©…¾Q’~f< kbvAEæ u›3Ò*Üuõê½1Œø{îÐ98ã5iQ¸.,¬7àƒÉr–Å‚øû°ÐÍY4ØÙ‡… z,¢U$ÒæØð¸WÉ%£à§6qíÚ¤¢*íî½Cû‡èµ·ürïp~Ñr'¿Ôq› +xoL}$°!°ô¥üwìøÂÕa$d¹±a×rw\”·ï†…õ»!qëö4çìd¢_¡¯~‰¨¥ù ¬q‹«“ ;›cÌ“;¬SÙ€¤9Ö*a¾8$ä,xۅ̽i¿Nž/ÈÓkãô¾—¨ÁD¯çRÀ²˜K/ÍØT͈KÕ†xu"< @6c’Y3xj=ýün3J2VUkÊ&¶Uqè=ÿ„_Å£ÀCè, =)'ÃZE~QoÚ]2öQ½lŒz”m8d]¯A sÕƒûu +è¹Jô-ìèAAÿVGØG—Z¾ßnùø¹päI»Š³5))IÍõt¤f;¨SùRÖƒ °2Ö¸?='®È:Œš½°©cþEííqqê6ë²£.=ºU+òQ)ã×e¹ ã–5¬ŒÊŠb³êFúþ;é–7b>äsn)æ¶¶Š*p›¤: ie˜KVGßg¢üp}0ëëê£]·raóÕݨJ–r²/Ñ{4{˜t}!>3xŒVŠx oÓÏ'ÌŠË7™G6GX' ?·q±.Ð÷!³Ák/q_ï}z¿VÜ!©Â€ñs0N¸_-¤ïoÃ7¿Í°žÎ.<(k§×>·§ÅI¸6Ò/¬Ê¸9—R^aý|é5ªsÎ>àÚ^‚Þã5uga>w—4ðuµ e—×ùŸ¶ýL¯Éÿ ²'UAn‘4‘!Ш¹½%ñ×U•ê—e¥<³³A•xwÑÔŸ]6]Ï/›ofÌ7 F,»K·öVÌw²‹:ÖHwæDÅàÇ]D°ëfÚ¯—¥¼–N2Ò;úx•f 09æ3ª¨ Ù’…Ü…ú;º3Áî[HàÆì!"7PȰt?’Q…da´öÛq=7aâKùî:“Ž>àªëðûºsK ¹Àe¹ˆ^G?¿‚Í]IÏ}'ìy€ƒ€?õÐYõKVÆÙ¤•yuKêßÌ;þµdîÑÁXh$xÀØùûøÑ­\P-ʇ¤-D@\Ñù8¢Qe£æþ¤OÖšôó,\}ý ½i0Ðl˜m¡BrvrFT^HÍJ+`^zÿ>î–¦¦¹gS‚‹¸CÕ_ÞæðNí†tJ`X =¹•±K«3i5Ô co^«¢×Òn 'åÒÒÏ9‰(§AL¹4<­l§¿/¿7eW .EëΜ¤luTR°6,º¸3É=‡;ù%É9aIÂ&*ßš^ŠO¹‹/¹gV†Ú~J€þd@Ë“Vqõ®Ï Ùõ˜t¤OΰߺüÞÆˆ°&å0ÈÒ6=g×g6ýº`¾öfA ½"cÒûæ ‡.ǧ$ô>ÌÜ!*Û )ÿôôWxáoŸ A¿Tg²VÜ%®Â‚ÊÄç"2«¨Ïù¯='×€)ÀW½í‚2ÔÉ/¥üü2ÂÇ)AÝòÂoÔSàô=QÔ.¬<¸ü~àaÁ{iGÓÈ¿):‡{ôrÌÝaÂ!/ ­(Òk€Á,ÀêèÿFÊ/¨ ½ÈöZ>î“5Ó¼‹ùMFȺàÉ¢†”«ýôŽq*ë—·gÁ³è{aà5­¸_Á„ÙGëîîŠFOs +¿¬Ô«¨”û¤­I‡¼!¯õßó#Á[sD¤ën¾N,<(n@½¬+¨[¯ÊxnO¤üý/7cè­ìB×cjÞØ™qK›ð Z@D´rz_蹇¹Í¦|´óf6Ôyqš4x@-†÷b^q+åO͇¥¬ÝZ |Ô»»tm*·Öó:¿Üqg7ªQÁÿµb^q âU~qæÕfÕìØ4<Üßy+š §! ]!%/×Ç'Ù'WÚ¾ßbþ¼6È;¹ò”u(=-.JOó/¦àÿ✓ë¯Ú~XhøbåIõ'”‹WL¹%u¸SÞ@B~ÈØW›¨wJk(·¢5=-¯JÍéXˆË Ã=FbU5§g¤å± ú¹aQzVT”œæOrOíL°OìLÉËÖF„6FX‡3VÎù”•{! u¶ ‹·'9§Ý÷‹ß >®úds~Þ®ç!ý<³ËêRVÖéøtËaÜ-¨H̉Jbã’œS/|Y4úŒ; O8¥µÉIÞ¹ÄëXr’uœp‰*ö"Jȧje>¢U¢ekbJTˆÚ$»Àö¤KR½=Út`ùyÝg™ ié0HA·5}ßúÓ/½³ ËSSm‡‘¹Æo ³ïF,7¨à[ßáC]žÙ~͹Ÿ±ü×E¹$‘1HŸ¸±ñ.Ç'yçI¿A“¡÷‰C6ÉÓâ Ç¸_ÅÆ}ª¸µõhÆÆ¿B:eõtï$=ZÁ椴$íà_!|<È<‚’½ ’õÈ›—´XØ[#£ŸE¥×¥s z]ž¾¿çVÑë å|Ö_€ è}7¤Û¨6ìO9ÁGý +v.,çæaþßDälÜ!(‰M1O¦\¬óùˆ‚Ÿ§ï—ÁufC–> +z ±ôg£: â§3‹¤!ó£÷Ð!kÀ¸P!Ú‡ô¹ŠI¿ ’ð‰jQx/Ø†Èøõ*,Ô}¼äz6ªäå¢ +þ/‹jEÊ%­KKoY•M+c¢Kˆ«»ñvtmOK«V™?’AŸ~¦sWjŽ_´™÷jø)«ªemT^’NÌÇP%39Å;99—'¿8ë”5Ð{L³QËM"j¹A¯Kæç»žä`ÌI†‹¹4ì”MTº9Òr`e°íÀò«öƒñIÖúþ2â×ËÉAóö9úy\7½ßƒs&>Î=¼ÕúÙêcöÁø¸àÂÚKæÁä8çtrR^¾1Ä=¹ô´ñóðÍò¿®=©û,9É=C?³·ë‹Ï‡R“¼ ¸S\•ºNÏʪ¶Gøgèçã£ÒÂõ¼#ÉYÅæÿìÊæ¾ø˜à,½6›€ú_Ñö}ôAçóÚ¾ÞxÉü™á`N~ÑúhÛ¡Õ¡¶ƒÉYAAÚÆ½„ØE±qÁùÍaѹཆÆF„—H»ª· ŠÑYÆñôT󉱖é ÆQÂο‚YÅåÛc¼3KOßg¦• ë/¾Y¨þ43Å>KØ%Õ™ÎYdŽ{13#¸²ýšÑ4£³šf®a¤§TuéiUÃÖk!¼ëçõWMßn7ïOβΤÜˈ‹^»’Ô€ž3H°œ~&f—~Ç«—Ñ÷ƒ›¬1çÓËq—²-3h¿¦= +™ff…Wà3¦á0—šØŒRÄiVÇfdåˆCÙ†9M©iÞ…½ö`®1­sŽÆ —¤æÄ%É)ÑeÒ&¯ûůdíÁ ‡\³5Ü~p{˜}™•ÖäCÆŽ>Ì;±ñ‚±ùIû·[¯§×d·‡U%kÏ%§ƒ7š? ]køpó%ïØæèÜÒ+ÉE[OÕ_·†x§«¼zg‚úüìÚ‹öƒ/ÙGbâ³;CÂÓÛc‚ û_»zëþž­'ÒºÏVÚ÷Ñý±ð°ýëåGMŸ#Ómǹ–cñ)î¥í }{|JßsÕŸäŸ[`\}Î9´ùŠs„°Êj²NU[Œ~–~\t99!¾ý|*1ÒöãÖ˺/֟׹ +>°5Ôºoõ5¯è¿VŸÖ}Ÿw)Yé^Áý=/k>Ûjø¾ç@ +´:3£nÄhBEfÆÈML9[ŠÊðý–/7ë?œÔòEäaÓg¯?e]ò–äpèó3©Q!é‘7“^+mUÔQoé5¥\@¯"ÜŠ–|T§¶•d þ“Viy|†sae°ñûí×àÑ£â˃‹ËÏØ?o¿–”dfµLÐs±1þÙØ¨àÜÖ ó§íû£þ¹ø¤å›ÕÇœ3£’â… kÃïŽO‹.ÇÆ8'·‡éçH9'Q«º-?»<Ðú£½§ìýèí¦/b/¹G—·|µô¸é‹¥GÍßl½d‰Ünþbþç ôIãÆ°ºÒ‹ó½·¿ùÓ…GÌ€=››”~v¾ÿONHKÖ^óÏ$fè½U&ЩP`zxgŒq8,Öh?°þŠq85#†TT£VMFßã|ûlãgÏͪü7ªÞOs.Ò€ï£9èˆAƒ8 âÄœªqíïx¨¿åãÀµº¬¦òw‡E—~¾QõA +¼#öZP€XyWþµ$j!=œ‚$0ûÊ0óûNåß"÷j>Ùbüãž¡Ÿí":iÊ¥nOÈËâP‰ I1ýwDž´ï ßmý|ñ1ãû¥âó¨]/"œâšÄ$ódÆÆ-$½¢j”Þsû’ñãò#æÍW¼Kñ1öIĪhí¯LNIK¡öOĆX?o2¬>kû6x³þcwwíÇ+Odg—«.ÌßãXºÏ9°ü€s`áãÛµ§‚£ó÷ßnpì +Ïî@®ÈÌ€¿ŒÉJv^K/o òO¬Òr0>Ö~(ô¸mߤñÊïÖž¶ÙuëDt--=«ý|íEÃ7;#Œ£;£Ì#1èëø˜èbb\P°ñªýPfZÏÎÌvi¶' ­KÏħŠŽEï±¾ ÝløpéQËW±!ÞÙô¤¤lssŒp¨9Ø[¼eHúoXÐëSPkíç.‘^;ãÔ¦¬ÛlZ +ß¿ð¤î‹Ð­ê¿‡oÔ¹ÓôÏÈæ.?bí߆1ÛœËLÉʯ%›/8?m¾` +ß­ùøí?}u_à'ÜiÒªnÙ¢Ÿw.KN³O­5¿ø¸uô~ãçžk¥ï(Nþ»¿¯êíþ‰Å‡Ÿ¯>oùÎ×_õw»¾øOv}كך>^yÊ9ºÏ?2¡køË¤®êŽÎºRà3± Á…í!öÑØ0ÿ\ÃÏ+ÜŸ7^ ç®W‡,YØ¥u›Cœã[´Ç³Ž/>iüÒÙ]þÿµš÷Ÿ0öÏuÖ}¸Ù~·i`å5k¯Ø?Gî7}¾^ûA¨¿úƒä(ï<á7F5ŸNŒÈ[[oïθºañ) ´™w8t«î£Y}ÁïFÅgÿ-z£æC÷µº}xgß]h:ºæVïŒÔ~·5ÔøíÆPÔVÕ'öÎK\yRûjUd!ϧœÖŽUÕ´:(:½ÛúÕÊãÖoÔfï¸òŽ¿¯âoëŒÁ»ÌŸ†ôÅ?ÅFÙWpœþ[-í¨SP–œm;²þ¢ö󅻥ïùú/¿³1ØzÐs«öëĸ¸œô餉)qÉúóÆ/–}àºzé—âŸþí6ó«ÿ> ¸ô‡§üÂwæï2®>ã ô7}¼ÖøáÒ}Öwþþ¦O&´þ0(8þŸó·š÷ÇGdeñQUõÖˆ²dé ÷ÇÕçí?x®VþÅÑYñîüýÖož OüfFSòQò…¬ ñZ^¼ôTp8ú€³?Ø_ÿ÷õ‡Õ/Ý®øpóQ˛Ϙƒ×kÿ503³Ý†Í׊ÒùGÍ_ø{‹þèï,üC «ø@OÑ; ë>×½ëék?ºôHv:r«éÓÕ§M_¯?oúzåiÓ—þ› ÙLå +ô×|¼1È:¾ü„qÖ‹’cʆÉ¥õAî1è³—·~–ô\-|ú»hcPQ²øL|jgÄÂYi¨^ŸŽÞkøÄwµú¯¾«U³v½7f¸ð_;c¢âM¨§í×ÌÃk/7€m—ž6|¹_ÿ¹§¿ø=gÏ¥¿Dï—~˜˜d§¼:yzVÕ´ùš{†þ»‘›Ÿ¬‘ì@mn°Z{Úö}äN͇ëà'¶Ž¢ÿZäÞ™Ö36'5õ1§†CgË´saxrÖXò{‡¹æ]wwÅ_mÆ‚?úúë>ºÏ9÷Ôç÷)à´­AîIOWõßF%¿àžÿÍSÎùß¼Rÿ)ü€wdy@pÒ£ñãĸðbl”w:5Nÿí—¶}3Ƴ¿³YŠþâí«þû˜öü; ÉåˆUËÝ”ÄF$——Ÿ´~ãí¯ú댾øw³ºÒß[-U¹×~úŒ©Ê>\|Ì>žWÕl½]Z|Üüåâ]ÐÜèÏþÊ"ê¿€Ïóçôˆ¼a}Ô,÷?à]’¥m]]ëC²R÷ÕªŒŠÎüÛ°ðüoo·ûOþñþŸùG5'7†ªöÍèŽÿÏЭÒ÷3sÌ3©évàžÆý© æqÜ&(!ZnbBZœ±é…I›N¾+<¹Ãø&r»æþþŠ÷—6~›™[¯Ö|Wùßþ[°¿âé2éÃÛOŒ/ü×ê˪O7^T~¹YøÎÒƒªOYIùÞ‘?Ç9$ðæú0÷øâãÆ/=×®¼ëî»ô§9ãÅßÛ;+þÖÏ8ò¿¯Vïû÷õg¬S¡õŸNh/ýöµ¬à7#ò+ÿ1k¨øÃˆøìo_²ýǨ©à÷¬Sïÿ¿VCÉ·;PÓ»ÜÜWËÿæè,~ÇÚQüÇIõåÿ=*>÷ïÓ†Š¿=¾¿éÄ®½”^ÓÖ¼Èñoé»ëš¾žÑ^úã ÷§ÿîí8÷»È}Þ g'÷Èâ=éùĸ¦ôíçµ'Í_-ܪûpþfã§î®Ê¿:;ÊßÜâü8¡jþØßÕBë㡥Ǭ¶_J/-<äìÜm߹߼Bô?ý7Jþ±ýJ[³öTv)t›ùõú é¹õW‚ë/Y?®òê4+áÎBuγ•Vˆ›]Vp2ƒJ›ªK~׉ò¿¬«/ôØ•TÖº‰Q*AþÛQ|â“QlÒ%-îŽ|sg 0hg$ï“m }¦«ý»Ìæìôd½S2~\Ss"nZÒžÒ]ÖšÁ¯ eÞjQ¾·‚ñ8PV`δLØ¡m€~3uC½·»‹=VÛó_^¶ÒÈœàeº-4zŸÎà³/òy«-ûùNgþ‡QöûåÆÂ/§J.éD+ :&y»cˆq²=õ\mÍ3_ýLW™ø`¾*éᡚ˜³1ý¼ÒRêµTš©,s[¬‡¾Ym*ù¸ÚŠòæå?Ïùîza‚–è{ g—¬t"¾É9ÁÊ9*XWeĨë†èÇÉj𛢸OWËýž_´‘ÓåÌÔ;RBÄe#úšNt{‚yCJ »½ÕSèÃ…Þ€‡|¸<Ç/ŽùwŽG³ÉÊü7{ jsžÊiÉ·úá—§*2³2]òƒ?ü1ÍÉþhBF¨…™/f+³ßÏUf<ëÇ„]¶ëRgɇ ëÝi¯8©ïûH±®»bL´i hK‰€ Ï•–œjNÜ­!ä÷KPÏ‹jN´K+6þq'6ù=€¥øNø·ŽÒO¦Aø·~Ø×Å&¨[?2à¯þ2¿Ë€×v7ô”}t6Ô*!¦1á1:äüwj¿4è„ß3èÄÕ®Œ÷“ÌDWË(jadnt#›‹>®µy{a~[Ý?9?õ%.Áí¯!bü;ç1IË‹¸¡«Œy°P—ùRJøyg®"âÑno‚§±;ý»m“´6vsN2œ@¶Xòäb#ô½˜x}ý×$=éŽs´Üß9‰Š’UÆ¿%&½¹²ÝONÓ7Á¿*+Òª*bï›ûJ¾›`ßWZ +Þ¬4ßlt•|^nƒú®´•|?Tòñv§À8€ XnÉyihËy-&ÇÞåú^š`'º6ãbŸ´ c]ŒÏ,™F_Sør®:ëÙ8-þN]AÐ_ÔŸ ³ n Øø·èèÏç±C‚M:ÓŽ€Üb“ù­´Eߟ†ÜÐð"ï®õ”|o@%¿àü|8U‡ŽÝ•°‹Lð ëPÁ'SoîûÕ¶ôâ×k†¶LC5¼ÞUê¿ZŸûf§¹Ñ[m‚ÿØî¿5Àýæ‹Þ3’¿\®/Œp=œd•Ú’xḅêä'˵ÏLýPïC52Ú$-ÿ!, ¸It¿¼Ü Û|ôRmþ˵úœç+õ©.”ÐÛ).ö`’ ³Óó÷•˜m’‡ÞFõÓluöÓ)vÜ­EQüÝÍŽÌWŽi\ª¬2ñÉb3&Á:ÒHßêc§-6¾™®Ê|6ÁÉy¥¨€¾$¦¼ÛhGeŸªEœõ^R´®!íé\C’ËRsæsCsчnlÀt5ä­¨(øj4 ð*4°®:ÿÅ|Uö³ÕFð[ 7þæ’(óévgѧíØ7AiÈuZÒ×›‹µ°Äõ<ÆîhÉ·®b­.8àÏJÜU¬Ô‡újÈë~ZÚ£ŸŸ\.ˆIqÖ0±ý¤ØÛ-E_ÿbÂþÆD\i-öÿkŒpÚädäT€cÓ2X¤q Ýs»;×}¡6åÑFGágã0+£ûPYSàçœ$¦Y$ðàùÆ<®/ÓP±ßVož‡¾6õÙBg±ÿ0-þ¡®üÉÐ +ÚÄDX€l±§ mŒ ÔUùîRv¦€Ãü=%5Ï.§æì©X¥[ÀYnuCÜv‡K¿üôn©­ÐSß^øy¦½ |s)a%¼Ñ ÓŸ»‹¾[†KC÷äeñÇS艗n‘–øRÃolt–†OÑ‹íRt„i°üë”0ùÞ4/íÁ/íÑ'ú¥q¨(B]“çÏϸ¾>L(Û—….þw«½Ð]ËOx8 þsu®!×Ã`—xµà‰C9œÁåof¸™Å„Û(«ðHQ=Rq;#ˆ`Ó(:Æ©äÂÌÃØ8ë`©ïrCök½(í)Àu¿çXÈ55Ï8FŒ]ê$ªkû*Î*AGî×vâs8]øÃ©( 0¼x2+`˜Ü»ÜA _nĬµ"¿.Öå¿;ÿ‹©¿Üo±¹àÃZw™¯a3Q[è9€M¸±TSìiÂGYŸHÓ0"xkòÕ4 ö3çÝr}†‹eŸl–pŠ?ÅK1ÍË|1ÃËxlíE„Héàµndø\=ô‹U\Ö4¡ü[Ê.w”úþ9#Hxb*÷ßWÒòTÀkŠQj—£OutÔÙresFÈ2JÉ)+íðï†V¸ïvÂ×Ð\öÉ9BÏ3QÒåì„{KMÙï,£„8`ÝŸ¦ùq÷•¬”GÚª‚×k]ø ¦²TÄ_ Ö‘Ž…?˜®¯?™V¬ö”~W ÓJ}8üµÕRhm™]VÞèG‡ë3Ÿm €?ß§êå›u˜œè°ò9ï&èÉ÷ǘ}£|c¨ÐÃdfP{ötø¡¤¾…öhAXê{0R…vJØý jΉ†\`†úl•ù™¥Ìœóï.X”¤œ­þbË`é×µ¶Ü;CYŸŽ¦QI{ +RÖñ, ¹;AÏÞ¦'nðò暟ßýÍÜ÷Ûhƒ|0ÿl¥³Ô®þ½ }wŸâbìçäY$ìüùæ’Oãܤ‡Rf̽¹ÚÔw›`?Ó@y𾜒¹1„û©k)| d—Y$¨ÈÅæ$×bÐíqVìÃ.tà_=è ]¤´ñZ´_cyÔõ)Ø÷XEEüš#‚O5Ä<Ç*v­ì¶Úúê|­¿ô´RË8>Ñ1Á-Û›®bmPSg*³Ÿ‘~Þ1â_Œ3£u"}/K¡æÚK}Ú‰Qe¬¸§Æ~TœULHöz2Å*?PR‹v¤_‹»¯áSöUBªq”‘kèÆD9:`§ìyª@ÇíË01[½å~ÆAX˜yågAwÇH šÚÄÇóÍ¥>f )Á,!ĨØeG3|¦]Å,ÝCýtèjÚœ³ÍÃN%³l»·ô³¾1û…¶:óÙbK¡—CNÎt2W-J}!çÄ?pÊIPë5{»¯ìûBCúóå–¼[#„˜1-Ë>.ÄYË-¥_ŒƒèDgiN.ùüÃz7øÓ´(åÕDE̽]*rš…²NR!K=åNàPràf &ÚÐþ²ÓWèµ=PàmQ £÷tT¨0y¦!Dèž •x @Dm÷|Sñã]Ä”Ð[2:àj3^«Ù¨ã™*¾]%¤8&«@­Âl2bâVW™—¾!Ï}¦ú}m³Ú‹‰ü{¹‚o•aS7:Ê?/·À>G0‘v%6ŦÀ¤ìN l3,l;×›÷õ®y„J>Ö7Ú´ÕB“Š Ý#ƒVû˾;5VxÜu 1=Üí¨¸7SÝlRp±†îÒÏ«ùï6²Þ,u¤¼Ð7¥|ü{‰Wu2ϯ^ò‘CK;™«ª9Ð({JnùžœU´;BMÞ G­ôB[±‰O§ð/ÎÁ¢¹Ÿ—·Ö‚û¾Ñ† 4v¢,#¤§Š[nӲы@æüé÷C9«Ô>Æ;ÆÐ5iŸ¤çÛ„TÓ6ÔJŽ{2AÏx©æ¿.7!€Ì$ŠÙåê!Ñ·—›pyÿ.TÕß/²ùì yoÃ"­2\êÙ ­äHO_hN³ÙEOÞ•7pWû)~þs€Çõc£îQâM0Ó>,6—EèZ±?¸…‘÷k +Bïü=+dï)°—™%P¿µˆ—iëÐP` i•³ –q6ø¼&9e€ösˆ‹¾[G _–›]æjcž8¥¸Œ#µˆ¹ÒM‹<à÷Í~ræŠè5»|W†ßU`ãv•¸ç,½Ü±XÛeÖ4´˜'+¦1rÚF?,È8„ŠvNR‹Î{ ›F‘¡[ƒeß·û‘‘‡jU_Wâ±TWðÚÐTäcìÃåk*hN5³|¹­®J¹+¥f몪NôBE†Žß.û¶ØöœªIy·Ðžp8MþþÍ:AÎÓ5ƒßêDµ;€¦®u"ü4‚ìgæ¾Ò@ë(*s_Í&ÌTœ“ÌBï +FÑNo‘Ï/îö3æî'Öu®!ÍÝ>QwÞãí¼î£ä ‡¢–e›ð*¥¦ÚK=Æ?¯©y1w×{óÝvGñ1çÏâ;d¬âÝAj’±–xó˜õ!è}[¶Ï\{¦çæ8*fcŒYíGœh+›ŽkÚ-çQ ¦I*ø`ŽMûµÂÏó¸1.–[òXRÉ8\¶š>Ùê¸^7ÉÊcÍã˜l›‚Pp¶Èe;µÔò¹Î‚–IL¼y—¸¯ª­°NTSŒbnÞR+Ú°ŠÏåd˜«–wÓ² R­»,ÿQgQþí1ô±AD4u3—ÛàßÖ‡A+ýe_Ì22pÎÕ\›¢’¸-áè «]„ •Ò÷F¤¡…1SEøÌÏ »ØÈº7Ë'xš»+2ÍݬäùzrÐ$þz•óܓԶ$üUòË|+>Ì¡ª«ßf‚M€ß9RñqúFðk0ùþv{»s”‘µÖY‘6+Ä{®ÕSVj!ÆÖŠ4ç@U™±];/¨ŒšÀŸÍP0n»mü|Ë'ß8ˆð·RÒ÷<’sªmØ©1 +x±¹ÐCÅK}bhçe¬4a ]•9kM´í®JðZ /e­‰¾ÓÉI\Ö:B‚¿ì‡?^à‘~Ú‡%›}°ï}E>Î)læá z¼X7p´X×ëÔòȺ毅V¨’œ*NÙR Ìs¹¾àÕN7ÔÓ2Pâã2d °uÖ×0Ö[©{# ¤½ÚÔÃHÒ +sž~0õxË9X¬í3Nó‰rFÞ¶œ–iQ²Kö§+ð'Ó<ž‚]º=„ Ýê(ù´7Fˆ;Qqà»RnqKyêµxÆÝ…*R䑸­îhB@Üî+ýfè„|µŒ¡Á'ó5Çó5-Gs•û$£Ø6IÉ;šåó÷µ,üÉ k/ Ý*ô_i»­÷A½7°quÐØmeé®Zî“©Yx$¯ØÅBäF >ÄÜMŽÞ—Tc×»XÅ3U…næ!l¬e»§¤A¦ÅûÊòx¥0쉔zÇÐ <˜ª­<ÇÈ–ZÞ뤄Àãí cÂ6á†âÏ)NÑÇ)Vчùz|¸¾ å³Ð +þ8טùq©#Ï÷x‰[õ{½aòﵚA“ —µØWþâröšeÇ+ÕÇË ü¦ösª>û¾=çUŠ=]¬àŸ,V5X&¸¥Ûý¤Ät Ý¿g{~éj›mã¥Ñ ­Ño–{Òß[Ô¨ØãE&~½ºÚËN™¬&ë!—ÜoÃæßä'ý…‰ù£$ÈÿBº—(àÍ+Ðˇ7A·¯\¹Þüôíùý „„¯Wåì|×LÌ?Kúïݬ¦äLub¾È›ˆŸ'j0Çyð—ÃLÌóLÉ=!$ó +¸&96ì'>æBMfÚŸœÔ˜+”Øà?iÁD~y Šq{{±©,ëY<é‰RóÜê§'íJ™PC7!ÒÐ…ÿ±=ÈÉXèâ&Ê…$ÏâU¦üa5¤è*#9å2"üb¡ß× ì˜ˆK¼Ôð+„èï—²¾|¾ñþ(è• (ôÝS8ÀýB,óáZ3iW"€YåÕŒ­q>\ßCü1 `y¡­:{ºº"TLG¿èACî`J‰‰X÷4ìE²ðqcQæ¢p¿‹îO^Þ½ +ûâ"=%âú0­à•¦ñÐ òÁ" »§§"ÌJ +d®£ÜGY“÷q[B.>ÐVñÖ†Rvé9 öršðÐò‘~jÜ»¹$þ#5ì**èrŒÇû‹Èpÿ«Ä˜€+øˆï.Ö¡âöU4Œcšvê*[øøm*b[|ÓO“” ™o!ik(~|ªï«Ü­—ù\yúårQXàEÿ×® ÷î€BÞ>»HM{ÐMz+áæz9ûSô2ç4}àÙ(¡¥ïHˆñÎ)6êHÇ%Ú§(9‹Åžj~Á³Ùj´ïLî{e^Ò °ß— п ʨËÈÈï—ñ ?®R’"¯ë¾úúé…4ŸOW±¡·ªsã®lS<¢}ZHÛ–pò×û‘?;Á~bøO]Âg©—®kÇ|›–¾n…gÝèÀa=€Z¹ÃÏM¾BM½åùþ—ë¯7®€^ß¿ Ê ôüsŒWòk‘ßøŸu–À9É\éÏòѶÄ{œ,Ñ)ûza¥YpÉ()Á:‰‹ß×Њl*6lGÂÈ_"C5°paqâ fZÔÍªÜøëèèÀÛyÞ7Ñ.côÄG +nÆ C?:õo·öÿYƒ+R6ˆïÛ(Ð{BxÞZAÎ¥‚¨HP¸·;èË]Ðó;·A=½zttíÊŸ g·n‚BÝ^ƒrƒ|.´”¥ÝѳŸkÉù ªÆÍ ±'Ûx?‡+I èܼ¢ô+ŒœÔKШ aZ}Jötåúù‚‚Þ½¹=¸ŠþôäûáèÆ•Ë ˆ@-~¼ ʺ>ׄü¬©/}7Î.z2]‰ú°ÔΊš¬ctIÏ™Ðkðä” Ù?~€’}¿ü_¿½ºsôõñcPØ«ç /®@÷nüúÝýë2°î _WpŽÈç˘o†Az¼aT„šjçÆUQ½[0ˆ§­X¤K#²ì6-3åR~°ÿ…xïÏ LŸ/ <_Pü'çÐ`?Þ¾ úó?@¯îÞ<ß 7/úÏ©:¸÷–¹«A&¬ }žk4@E+4ªxØÙ~Fâ¨ïÞ€*¾EJO¸ûùã,4„Eº½y=}úäòt÷Ê5п.ÞÜ¿z|žÐ®—ëÊ"Ì6~4#Ã×G‹}MRlÔjìór'öû˜þ¶›\z¿¦ |w©$<”íçŠýôäérôþÞ]Ûý» 7wï€î]»ºréâÿñœ—+°ïŸŸü¡äûixŒ“yaåÞ t¤ãQüQn•“ÒÖðêÜç&$ä!*:òOLdôÅL_çÇ ÷ï‚^¼E¼{ìû]ЋÛw@nƒ\¿ºtñÐ3àý’?{‚è™Q÷4u¸oÈQÚ&²«k„ÖI>z}”‘¦l€}`C]«`éwð©Àž„^øéîòxüôõ™+(øÕ+ÐSàz·._½ÞãåýG —ÿ¹?x‚ý þSÂ*x­­Í{³Ñ_x4GCÿ»É­<^ˆ 2fÞê(;[ßC¬½sÊßÒáµÐœ»è˜Ÿ$|ñºðxç@M„üÿáÁ=Ðà,ïõèå*½„K»¹ÐU¶+/\ç• TbÞ¶PKïó×(ù˘ô¼K˜¤?<¼.<º}tØÛ—÷‚Þ?}úùéû%\jÖ$ìÕ¤´Üøê˜¢‚í.Ê0V]W«ºks†k+ªýÀgÆ]D$D_(¾òzñôx…¹}{÷ +8·¿€=yŠùüéÂOO·?ˆI!÷:Ð)®cì‚+äx]>PUƒóšª¥}›jdu1Ëž7â«1ø‡¨¼¼«ÁÞž  7ßÛ÷ W÷€ŸÓ àÌ€\ïÝÝüó*ÈõÆPàË÷ ò°„ëMe¹tuèPC5ÎÐÏJÒ÷ r%Õ4¿n:µ²4ûjUYá*dùMlfÆåo/Ð[—' ×@y»<¾~z÷Ðôäö=Ðsà¼\¸Üáúéå¢eÅ^Vðáo͓̳Š^D/u~ÚUÓ RNþt/3n¤–ùµƒu)Lˆù㇗èÛëç xO/ÇÓ§À_ÝúóOÐÛ® û7ï€>eS^I2NÕÖ¬É¨ê š{ýG¬§Ç…˜OÞÀÞø€<Ÿ¿]¿ü'èé›Àû>}xöô8ˤ/ß/P²Òïˆàï:˃µY®3Cìq ÙsTÄð­„÷ØníòÓN"û½N‰J)½U™{• ½KÉ-»;À¬•×ô–Ï÷tP¶Æ™;òJ‚È|öÙÑîtmÕÚd%F9ÀMkg VS½ºY oáZàˆ/a ÷—î »×ï€b¾„\Fd—¹PK±n=lÆ·1#x¥¯–¾«h¨ÛãBÎ_æ‰ +ØîDEùƨ°l~¨«îàÇ‹«)>õ4Ô lQɃ¼¨¤Ë)ÁQƒ½ýŒ¿j÷>èÎÕ[ Ï=A©¡ñ S .䊸Õájæ®’Y¾« fïëøœ£å†±ãQÛáRUÓ–šÐ ªú˜±Ýlò›f<áU¤è)+û.:#ãviJê°¯ù}ðýôõÅü¸˜üórÄ7ÿ ´´«tX±ëD=9Ô0X·Èjy%Ѭào2³gZ^úZÜÚx IÑ^‘Xƒƒº Ób®Æûû^ÉŠý ‘‘p+-"èª÷›— /oÝ/eÇç>HŒK¼—p™ +.¾ËG Þusð¾S Èor^Ö£¥®Òà“Eaýñ2—øÃ\ëŸ`ÖÖT­+«éò6FH ñ““ý×ÏϾ"<½A¹aQ ü¨„KÑþ—½ß<%û^Då¦\­Æ–½äRÄ£¼¹¯a£í:Ž`GÕܼ ˜ÍñzÚÚX~©—5Ó‚÷óẈÐ׫í­ðÍÁNÎÖHÅ2QC³)E,³B€1ʸPû´ˆkŸkSÙôÕæi.jGÁ)5©øõÉ +øš²¾<^]j€k;X‘³Ü„•±Nᚸ¯Ê0ÚU±4؈Xí¯/Ûî§ÅMráG¾ÚJ¦UI[dì2Çx}µCÑ=jV××m*Øm¥ˆ¹%¯"¬ö° =œå¾ú⩞¦"Íp?_ÙÛK–Ô7%Ž +ëC»èt÷šRÈ$òåDeUÚúp#Á®l¬ÞS6Öï©jøûÓ\ÜŽ‹?œ°ö¦+ÙkƒŒÔ…NÒÏõaNÁöX|y°ªPÕQ“ªìjÊŸloΔַÄÈëê¢Æ…\ÿA*¹.CÖTŸÜËãúô‰ª"'J×'«©»Jjw’ Ý‘ÒÓ׺à_v%„ô–ë%3\òª±&Ã'j†9© ì€á¦ÊŸ#­­Ù’¶–ìzƵ]Ð_ÕÓÍæžja….Ô†ùy>Õ¦¡—8õ•Uv]m“m¶¡Ã:ÛÔw0_ÛqdÀÃYÔ4AN1HñQŠ–òOŠvjø`#3•vƒUVö´[ÔßÊ«ð¬¶VTx4Vˆ¼Ç›Ù?V%-‚Ýé^ÕÁb}ßž^Tw°Ü(9\©ÚÓWÕŸß›°Í°à;*zÞŠ˜«ôOÑRñSÕÄ ›¨.Z”tWÏÖ”LuSÂgY)ãÍŒ ~Àwó1nÊ®äx[eœf—¹:Q‰qÎ +ØÿYÿ³PQu¤¡"·FÑ‘†aBÄ–˜›g’‹(À™R—¤¬l}7>`cˆ³!´«:ëù 9òÖ(;ñÁ|;kfDÜ2ÑÝ +‘µ c§úD…+’&ºi²±Êªæ7‡ÑêªØû[Ã¯Ç \þÙz‹~o޳ª¨yv-Ÿ²1Y[”UÂ&{+ÓÇÛ„±-µ‰òVv˜²¿¾\5ÚÉÑŽ5á%´Ä¥RÔ !t©õÝ¡ÐLrz¹ñÍ(Fþø{»Vº¯kWÌÕwÙ55•&U%Åxƒ1bœ¢®øK}qÈí9³7]A1J‰)f6Ú8†ùiSX¤fïM³‘zQEÍ)wªÜͶɎæZ¥'sõG‹¢ZÓeœ¤d® #ƒ6%Øèu). ð +Egs•‚ýéjþžª¨]ôh†”w8K)6Nâ“-*fñÞtC³u¼–ïT +ˆ&½9ÁC›äÕ,çtË&%§ï‘b¶ú k”˜misÅð2ŒV#·Çjq›bt½Ÿ–`“ñʧ„L«ü|†XeÝÙ\«üD×Ðëœb¡œf©u’ 1˸Å;bnÁþt%c_Sű©y8§¦¦fw²N`UÕ +Nɺ„µ!ÁG™&(iÆ1bâî$·l¾›ºÜU¶MöNì¯ÔÚgéh V3l* +Ä®@EoÝJtÒ¯%¡È>Í#ì*ù”½¹šVÛ|}ﺦ¡msºµgCÝѳ¡¬c-Q¢–F`ƒ¬½£dCõ ÌÉœ€s¦ç³ÿ¯Gæ6·ò¼¢mŠ’o×rðÎŪZ€óÏû¡Ïûh)EgzÊ9Å(2ÉX`E â;ûqP€È3¨ºFô•åËJZÎ’œ1È+àºó¾Õ ÃG ¢&«>\¨l;^nÓ-Õtîªé…€çb;k8ÛiÌ1ÍÇoQ3V{`¾V%¶7[×¶Ö Ó·‚߯ Âè±Q†IÊ8ÅgìhªX}üŒwK#$ I£Gó¢æ#52î@^j“•…l BírjöÑy âÀNøœ}¿#.ñÛÈ÷ZíH}¦«O{7Ép1tåÌVÕéGx Y}ñ£’I8ZiVëªD{Z&Ú . ’òãïLVÆ<µ*àY¿Ö«zl µÝMà ³‚;ï5y2/êx4€g X¨®5çÓbo—c±‚ëX©ÜÖaŸåæ<§Ž:˜£íM2“ø¤‘R¿Í¡âϿׅ-‡Úæ~§²sÀ©jëuhš»÷¦™%9Õ$!Æ.6—xY„ŒÙ®âo3Í%îF1)nw眦8§H9v.ñ@Ã(ÛŸ¢æuw<ߪ<žk–œcàd‘Ï1OSÀF!Á(ÃÇ[&É9ªæl÷ ~Œ÷¯ÅêŽÃ¹Æ>§ZĴʈ‰&q±¯YRîþ½v›šƒXÓ‹F*ò|w†1™GººŽ}MS—sª±Å¦â¢—;²Þoö@ÓêxŸ³;V´ØýÄ9…‡éjš-ÓÚL"Àªf£ö5•ššºÃ©J枊Q²5‚ŠÝ‘ÁÂ炃™*þ¹ÆXìR«‚^hW2JöµÀêØ8›šøA¤¿y„žu¨mìÚŸ¥!·%eþCˆ )'ZBs÷KOÃüZV×(sL‰§KÍòã•éî\m‡MWßaÕÖÔ•4èî$9Ó¦f—íÏVX˜ÿÝ®ê9ïq{8Ë@Íá!¿–0ùÇs¤›’| ¡BŽ+Xv£|ÿ|غ áW+xÿ.³È{jröj7ü›¾ æc‘±`‡ºêν…êö)ZsYPwh¨ûmuÿÏz…è×2‡·?G-_“äyîë EGzQãñ¼¨áP_):]­éj‹{œçé îT‘2¶†Áž[¹gèˆ 1²Úüa#¥ꘘýÕŠŠã QÏÉjUó®–V$oJq[Á”ï/ÖvoMÐÀ¶ xäÙ,¹äLÞ³™‰v*P ›}Ù;ƒ…Á‡Zjñ®œQ4×”û\[|µ3çÝÞ6Å>‰J?£áŽªÛæ‡Ñ飂h×]%yf¨µ+HÖI\Ò¦ “´8„ˆ±N‘Ë—xµ§u2Ó¬¨¦‡•ìjÇþ½ÄãÙ&‰éjJŽC‰ß‘}]hK~c”Ež®qx‡€¾Y§ØåóÕ­û õ= ¿;IL³Ž—ÚÇKýŒâB³ õŸMa›]ÉA,w±r·:y'šº–3}ý| ]Š5 ü×z‹=ÕÂÌú†bÓ(=Õ<‚´ÈpÑ[ƒå_w‹}ãè¨_€ü­§ýk¨ž- +kgXÈßÀÙý³Å¸Š”éP“²ö¦i- :f£¿$âï%QËÑ\m“}’vŒS³Œ}å_œlÌÙtÞ® Õ-„ð|ªËv/<ú·NP±¯æ¢¬rvP«]>Û®¢Áö4|ÚÎd-£ +žò¤¹<ÁgWÆc[”|ŒMMHµ©PQv:Ö,+5I –IBú†Œ–¹Ø‹Û•óÇ õƒç}Ú- +Ü:NNÛ•À‚Ö{ò>Gó¼ìÓ„Œ™¶¢ÏËðð£éºÖs¸?% Ù”ÌB›š–oGGØ•¸¤óù´›Àß) +ÜlgÏòø'K• ¿W¹Ü=|¦'žÎQK =%Þ ýk±~Ð6ÅÁìŒsŠìZ‘À:%ªØUq°@}6œÍóXç:jUbÎçœÏì¶©ˆi{ZBö‘–Zr6WÓr2¬{ +“¼9Xôu®©ÐÝ<Š;cãÏgÁœèÈdzÔâóû|f)ãd¾‚ö÷2_h’âÍJLÚ±¡Q ø)¹cšZ¶3þbž( ;Ô“ŠN–)ÄÓ5®Ð¤`@6Ç(Ç •Mv- |òùs'3<Ê!ÀLêÑ &ý`†˜;DOr‘±s½ìçÏÈ©» +D®—nQãRlӸģ9jÉñbe#Pw}f5Ÿº§åÓÏæ¹´³yjéÉ .s­+íùÉûÊ”0êÍÉ µlošGÚ!%Ú'ÏgÝÐðGóè4“b@/öaC7ÇPáÛRx„e’”w4Ï!îk)…ûºÊš½¹&ÉÑJu÷Ñš°ñtø¹(¬µk¹„Õl¨SMÉ?Ÿ‰j#ÄÏØZë@Ç!ÍWuü2ÔŒýÞà×ïÍЊZññrëœs¾¡GÉ…[”´‚ têÿ¨Äÿ50èÿo]ÐòÿÖyõæI&¼áÒ‹ˆ|þ÷”°æ7àŸ÷Ç˃­Cy6Z2\—겞n¶y™F±QƒÂìwü,¿»{bZÞ©ª’ú[[A8›Á|ŠJ±)ŠÌâŒwÿÑÓaç|ëÐÒ‘¯UTèéˆ].ɬÀ':4ø”C !{_‰ËÙÁü4ŽJvú˜9öQJ⾌šfã"ý¸v)ðg .Æ4õ^ïÊza–À‚í +ZÎæ1×)e¥ä´u1&r}€iãìMpJö¦XÈ]-÷{§sMƒ¿_s¬«²"9Ý4NLÚ’b#Í4 –«D‡s<à9èv¨êp¶ºæl† +=ÓbÕ%A,xG‚ Ù#‚,“tˆ¾÷æÒfkêöµ,¸àkçùü..yiT‡ŠxbèGƒOçkÚõÕõÎr¾]Lô?ʦ@D8mÙÎiMÊ.–†ßW‰ +#Žöæªë­€w²ŸÏT‘!ÃÍãˆHç ÈyÔ´­!Lè®”–:W×ud½£Š‹qÈñi[°ç$£Ð,!%ïnt–GüÏZíð¿;¢À§a€´.Ó0Zì*ò9œgâöVD-ÛJV©IBNûŸ5QÇ¿QÇ7„­ÿ³Éo=Ôas7Äe_—úÊ}vF‰±Û£¸ðÃiêל¨úhZÀ8Ôp1N5p~2DØl]Ú“QbäÝ­ARÀ5Ø±Š¬·jQò[ǹø×—óϯêl¹‚ãÐr0ÛÌ"çlMëñb]¯e‚”»Ü‘ÿn­üöPä´úïj¹e2_“ôXÎŒ»¿ÑW:OÃ8UðHÓ(ìÀ…IN­€éЩ Áá<…t>Ÿä¿ïø;œãó-S‘{s,¼mšðv ç~­Vp/q™‡ZrI)ô‘¾žý{µIñ{ùœ»éˆ-Äß1‹HtΠRNç EÿY«ìØŸå2€Â>Xh’;µÕ¢½iü@Ã,?ÖÒK¬bXUÅ#Ì´”}]iAGþž Ž&YÅ2rúž¿ÕQäfjÑ!¥¤¯ BÚ‰‘·*’<ï9½µMÐ ¶ëƒ`÷Ån€‡û }ÿ;/àoÊ à~üsÃ`iâ?†šÓE^€[¨ÀÈúPÑW)+ìÎùó@ÚfLH8Ðu·g!Ç-7–|\¨Í}®¯Î~6W•þx¾*ùÞî`ñW›”’9ÕÏp¿Þ‡Œÿ`“1Š­“\ÜÞq0EƒXÇá‘k½™ÍÒ’ ÃYÙ¡¤"îbíi¨P‡ +—t0Š=Ö"c÷Ô°È!°ßzÔo_Å!îÍ4öZÔLÀ·à’N§‰Ù‡*J‘C…ÏpNÓ,r\ÌÎ(6|¶ üzc›¨m+MXí†úï«èf :Ì8PúÙø½£ bò©†VrÐëØ½IFéù3¡‡³U‚C}]ûáBUõ®‚”l–“6{á~vüýQLê¯ÙÊꀓœz™MÁ,=²Ìš‹9Ö°P&Õ$ÇfXU4È©¾ªöÏ{æ®Tµü^ª`é©%{X䮼,pg´ì«Y + Þ•"Ød¸8ç9Ë:†µORs€ÏfW‘óMtÜÎ,b†KY–PÀÄìï·–{pY¿Wë¥'‹UÍ{¦Â%›åä4€ €kê¾#%$mKHéF)­À¬]ßþ¢¯Îù`ê„_o)ð6#cm䜵>x€MI,øµ*¨?[c³õˆSƒIÚU›ùþg‹øÂÖXë5o¡»øÛùüˆý…ÊÚÀÛŸ­ŠÚ~¯WµÍ“K÷4ð˜"ïùö¼û³î¡NXu:ÏeœÌ3©v-~¶Êâü^¥€\dÃÃV:¡^¦ Rúò)C×ÊÍ´)ÚZö§ê*fø”c5 ìPÓ‹,RbœCJ?ïu€ÙÄþ´‹I©Çrfáf;ÔÃÔõYí{(…±÷Õüè›óÕÙÞ[£¤´ÙÖ²/«­0£„ +1ÉØ¥–q.üÀÛ?³¢J£Œ-¯N}¿Ñ‹L9ôÐÔªUyÎ €çEE©«ÒÝ›¡_5M%žœœ¯L]¸dS/%f†Ÿÿtš›vWÍN½7W• hXö3»ûÓ$¦eöWäy„v¹ÈMùþdOQA0+è°- "Ö$- ^éI{=ßïj/ 5 —†M‰RÞîMâ‹þ|Ï•h‡ø™3Ý 1O´¢[ëí¹äô¢Ý .l¥xþó/-wª0í +JŽQŒ ÝBµ»Õ_úY^ëNÊð¹>D w92øÖ0îçzÄc»+÷“mê³3ói½/Õýd†X~0ÅDY¥èøC î“ˆq {¸H(>Y¥áŽírh(]g±a4Ç%œù¤ æ®bB-c¸è]1"x«¿$X-Ly§¯Ëzï”3ò€g9ÐUÖÎ @­l ¡ƒW›!o–ªS:‡aáæÁ²È¡¢ï§ó| ÏVW:” „¡»8Ä<\¾ÖSà¾ÔÿÑ®<Ÿ+UÓs¶ j9>ïKµTYwºÈ"žÏÿµL B-2T¸];œÂ&صŒ”}³"ƒìãLðÉÿÍ®g”ï©ði;Cð õtøB*¸“–æµ%föõu6 · ¬ßd…= ~:_U²P׳5†‹Û#¦:5UUŽÙÚ†M¬m( \h(ùnb7{ _,XÀ'±†r¿Ýq\ÊñÑÐ ¬_Ëc9gjZ€½Zï*teD߬)ürQ#LzaŸ ç7 £Þtà#=´¢ÍR²Ny¥ãg>ÐñSîÊh!7°îêjßuŒÜ‘0Á[}„hË0lW°°Ž bê¾ó·ž?cbŽfùÌÓ9>÷÷"À¿Zz鱎\t¢£M‘2€œe.ñ3Ô§?ÝéÈ|y¬Ä$ØdÜRC/6Ü8Œ‰´ããv¥¸„!üÏ­^¤ÿluö‡Õö’ÝIüœÏ3\âÉçŸyZ¹}¼4Ä:ý¿ß~ÀH%Ë8Á.Ø•ÑÒÔÌâÎâ/:aò“ivÜ1Úÿò Â÷Ò3ÜÅ()Iùï¿u„ó~¹+?ätžE<p}6_Á;Õ×/ SqÃo-µfºêȽ.~w’Ù’’Ó,ø‘ŽC>ï¹þï±àðÇÓ˜4ç$:Ë¡%•žª–ùõ-¥ÈÍeÀ_›åØ”½|Þé›dײ»JdO[U¹1ÂF脼óyxGj.Ò6ÆÊ3‹‰±«P70ÿ•ELƒ˜†1Q³•ÉOj’Ÿ÷BPð¢Ÿa—""Næx\£‚[¢Äž?û}¤á Ïæið¿Wh˜¿Wé”ÓElþöhÑgÓ(&ê@ÃÆ®Iiú–ó9ç|´]&À©y8» Ÿ`áÅ=ææ)æê¶”œ*æf¾Uñs>8ĬB«˜·Ò\øq££ÈË&‡ÎÖe¼T ®¶C¿üÒUV›¥¨Ÿ ­y–» +}–Ú‹|ÖZŠ¿Y¿u‡ ~6)&åPƒJýï6‹s´x1:jmþŸ•†±-‹lÊû¼Ù›üÌ4 öÚ.ø|ªç°œ>Í,¥g:•\¸CÁ,ì„E]¤û]è.¸"¥DÞ^oËö:¢@þYæWýZf³™o/*… ¿¤} .wcúõp—i•Ãcç³K.ùðO%Ÿ2ÝXîi“’œ cGk-³ÿ¬qyûãeAÿ?GoùÕh–½ÏtO{µ”[—v¹+EQ@Uáî¯ÿ¯^²(Rü`‘ +ê©Uû€^í8˜izé#‹€w´ÀÅyÄ‚UãÁ|t —ßñŽ€ŸhPûÑ9ˆzœÅgí(±S< ÌÔ¼ôK†'—­ËhÅN´£ç`:BQØ„Ì +Áñ‘Û¹.m__Ÿs¼ÄÀ¼HQ´ÞŸVÄ»%G›:ëÇ.4æ_Ôr2Ï•wLÄTfå«û‘I7vf¹HKGŃ Ü»gH1?ÒÏJ™‰?˨ ¿l ÖÆ|^×Çë^;§±Y>«Þ¯ä!vÕ¤¢]5ì£g¶ü•¹-çŠkðÅÒØùiI(ô«©{ã›Ád…¤ø¼€àT%6Ó=‰Œû_0 !5rfÁ1}êš!æ¬NRsUüŠË*fþi5#ÿœ–W~—zvŠ’q~u¸.~¥úF+Ì;¯`çÞ˜"fß]ë¨|ó`€/&&ê`…µŒ‚£ôíy¿Xy‚/v~“ÐçxåçdÍK÷Àá2HÌg—»kbb|JbÁŽŽ9Z6nË}wTÌÔFqƩ宊{öQ|R#4ã"$îÞ·öh2°Ö‰~¥Ê3]ý\ßù{kÍ‹_xy÷¿QÑÒþ#–„Õ<²¹úv­·æå®†=2±qÿqðÄ_,lJXG* Îã2wudPPË%9§1é!%­öð’‘Ú®~)äõJèfwí‡ï I·þ)̹óõrCöÿéÏ &%¬&íëhÕGF.>¬Ç õ9.)À\rhÌÑ"‡õÅÚ<ÖÐ`ÃÅ÷Jhò‘‰Ž^«x, 'ƒ6Fàoý2jäL lŠVx±;æ¶êçëýåw‚³UÑ¡9hâö4$y} ü•šûËŽVù\xs´âÑæH]<ð¤Hß¡ƒ +äoûÿúæ´çiPc{ù ŸŠ‰ Xzvm݆}`^CÒz`=ƒù$ะšPþ.ã˾"¬­Ï8vpšÖZ¤GVîx`Ñ%z=Àqy;:bñ!›‚Jb¹©±ø®SM.ÓuAžyæÈ5‡F1Ç3M^í.øÝ5\ü‡g¼ò©½=ÿªW‚N /°Ñ€ÇqJ`Q!:˜§â –V ü³·È!þï³k3rÜŽ‰ŽÝ1¹ð‡Ù‡8~O¶Á¢÷tT§åæÁ£EqÃ' nvçÉ%Û3˜DçòíÚ .v©­]·B>nͲféY¿Lá"çý nØ;QïãÔÒíiråî<¥*Ò'fM‚Šuz\àÓ*J¹o®äÁJ_òÙ…–¿É˜o«ð…‹< ¿ãóÃuQG@ÞÜ´lOËEpùÞ™š§[ã5ü³ˆ8÷4>QÆ]– KolÎÒk·”|„¡ |w “ðcgUô×mU±_Ó³îýsž›qÕ h±æõXòÃ_7†ð™!³z_EÌÎBc¬Ý¹wäœ÷—$´Ø_v uÙÿ]õDúWìÎcr6‡kžlŸïéð%Ÿllæá +‡ñÎ~56`ø® ðVÝ«ØËõøûm./ "lÎàS -Õwæ0i¿nOÁÓ̘¾#ûš¶%ñ¤¹»èÎ!ñÊ0êã% ¤“`Dd"?Þûq­¯"ú?ëlÞ¡_é“‚cݳ §A%À 4x¤§¹Wɨ4áÙ¶ŒTº§2ܳ¨û@åmkWÅM#8úD/,ö‚g ’lG³Ê£Ï¹æÕ{zzýúhm”µ¯ò¶¥·ìºm èJ@YóúË2»grRzÉŽ–Qw¼,lùË!lÝ7RÀKmÅè8ç–ÛA7}s¸ôm%»v±ù2¬åÓ€kB_ëÝï¬|ôà äÅ÷ +RüwzvúoÁÙú´ÿ·ÅërkêÁâŠÇ?»Çp…_–š{¿,±©Ÿ±eÇfDž{ºäùRWÚeKwÚ¹/+¢ŽKç¬O#z¤ÔÒO–†Þc›òy‘…;ÐQ«ÃJXâÖhá#ßlÕ»?‚v¿±¡Å£à¢÷—D‡66uWK, ÞÜ3Y3ŠN8'ÎüöAÀØœ#euÔÚ †9§» ¬%çpíÓ­’›[½ù7‚³¨œÈw8úΪ[›“´âm%éœÅ¦ºf±)ÎT¼[Šˆ÷k1;f&r×Ô6¸¿Ø9·¿Ô6vlmûdˆ¾Øøà§`çþ2À’:b¡WC¯èEì­ilÄŸ¼µv@ØÚko…ù=¯ÝDšuöt¹›ônk¬¼1"oNr*7¦Hé[®×½µƒí›È•A nÈè m%³:¬³ƒZv½K†ÏÌcÒ=€ïšHå5*Õ=‡ÍôZÝ1pñ!-Öñm`¡"½ºŽ-”:‘`é­ºµ:‚ŠqËY°M²ÜCK°µ³’,"Ìc5µìü9û”¦¡ø®¶½ìA?!õ%·ò•wšZlë«}¾Øœ{Õ;^½ÒSòÀÒ–sÍ=QüàÈ‚ÌÙ3áK6$¨[3ø´C³€u`fã—9ôC ‹ü²we,»ëW×%ok(åþ96t_Ó+94öÊ÷‚Z?[+¹inϸ0yj}»2ŽMêA%ü¶Ú]ýôpKÞ3pÉ;:& ƒˆW‰È¶ ×>׉J®ýmôàäÝ* ·FøØÄ¡Yjü Üöç¸g0Éë£àg~edï—€dîBŹ¥äâ]Àï阰}».<Ç„x'p +aÆ¥1RÊ¥Ð<»6†ÍV ó.zå˜L@ÑVãØÎaú·kñ¶f©eA­€ã“±*÷ Ôj¿ +™¾6\ýÌ9·9{©Ýå­KšcfÝÜGæ¬MàA3¬Â{*vá5÷ø´Ò:ud5è0¯¤þ­­µèš^zys¬üíßküË0üƒB ‰.´ ­µÌT´òµÄ[À§¾Xäíêéˆð2—¹©÷n¢‚]3Ød·—ä™%ç:"u–Ú /¯tæ]ç~8µÜžwmcþ<$ ¬ƒõI*qöÅ1xìÎ<±ì“…þd%Al üÞ‚€·oŠ–D ‡‹ -ŸmmÓ‘>xŸ­|Á…Ž +ÑY!3¡Ôk$•GÑï‡H9—|j‰kœœ¥¢çŸk/öUkÉã¯Uä„“®ª‡ÞYrŽy”œÑE.¼1DI¼°1‰ˆßQóð»Zq×H,;0ãA¾yÀ ¡c]rv½WÕ$X¥¤Û'‰én9±hG Ä…™õç +ò—Ç?^7c¤í-ˆùK-‡K Mû‹lbH‹+ôÊjb<²Ú~)¥$¨àB7§¨9J.øú¦ø¾ºÔ‹ÐÄ=uO¶ÕÄþ:IH9gi(ºœ¡Ê+Ÿu`RN¯J +ak—욆D…Ôw^iåãÝTnØH…{” ÔáJÓHÈLƒí˜Ha#:?dÄ– L¶–ŽÙ]ä² +\†s2òý(¡j©Uä—s¡~Yd<ج —åGÆ:†P1 +1è– *ú×õdÒæ$>Ù>{æÃ¦­!?XAÖ§ªßøè4 ‰ }uïU­e÷€œÏÿ²Ú8r©i$U¹#µ%ç î¹úT¯Š\nFÇëôÖ®‰Ë=Xâóüj|¾µ·è5'ó´‚‘ó[oý›_–:ó4Tˆ„]ü •xæ`· ‘Æ_÷¿½v& .4\Ìæ,µÀ­dC5 »k£øœ] Gj¨ïX×"&R×TGOú¹ñâ·ÅžêWm˜Œkq·Nÿc©·,æo;TUƯç=0¶Þà?þVP|ï{÷8(ê¿[¼¶m-©Ò)E&þX·|öOð÷:“ù×*º!É].ŽZ¯Kƃ>´ð¸; [Z—ÜOK|Öaäµ,äÚ€û<:F­©Ÿðqš^qÇÚƒˆ•qËŽÕ§ýªf–Di9EOm-ËJÀ¯w”¸œE –: igFÈÑ?”DБ±Q¼£’ýªÈ>Ëú8¯ —±9…Nð)ˆù«“„L];ä‘sŽÞ5‰[öŒ”ÚÐ<$ί¬‰õËáÀxqG&.yß$dí™…¼°‘C GfÿµÆ9f1ó5¼ +&òØÚ2rl¥â—êòüª¢'Æ“ï$Ä—?nŽW}øbç‰Ö%ø Ë0>ɧå1>[;ÿ±6 üw•NúÓŽ¯ÚÑ#RVjžúgi%A)·vg^@8Zi›9¶·N-‰[¼3¸t[{ÕÍÃEàAàoí]E××úKoEz ,uÕÞ[éļ7Ô¯wcÞx…—䬴 ÝðW¿ðKîýÀ.¸óuôå÷Î \®s†”éWà³ÃFryHO©=Zˆ­MÃ{Ë ]áîØÂeùd„Ü= øúg+‡ê7ðI[ +.Ø=+„­õ±ÓeœÊ•ï¿—` /…¦0× 2ÆÞYrÝÔ’~ÚÖUrc}c¨{嚨‹=4°þYb¶_J+iX€ +âW =sÐXMSúÕyqÖ×duÔg+êÕQ Û*dò¶TÃÓˆ[©uÿ^¦Ô}‰ôd6³ÐÛJZY„ŸC:m×ÐÔâW ˆ–DÌ06ëd<ù´FPy«u¹¥2ñŒµ ›¶9I.\é…=[¨êG§ž›cf^ ÈIe>9³<ÈÌì'æœV7Õ¼ÛV Èv`&Õì/â*Â&4°.±Y#X`!÷,Ë‚ÆC€—­í3{KÍÝ{Kí[Àõ· Až,õT=Xì®}jÆv c/H¹Ù¦Y¥žaô»aúéyvÂIK[Á]Ç04f„”vZ&(|¼x>¯›kí¯z`ªz°éo¡§Õ>ƒ½gnìû´Ù¢Ú±p¨Þy6ܧlᇠ½ÒO+ÂÖ‘Æ + ãôØÞ[dy˜¿Ü?0¶ö†æé`Ÿ—¹61¶•^_AÆz•ÔêC+¯É©Â¬c¨´I Þ·7 8Ø ‰ƒóÎÓª¼@ìXÄ­!sSǶ¡©Á©b”‡t üSCë§EQSPîwLÓrV$œbÇ#Û9KÊ[ê¿¡æ?þ±üöüކ„ +j1y.iÝÇhÍ«¥®â.9!]*@Û%ÌZ€/)ÇQã¶šP°­Fg»UÐÄ-8Ã> +zéWa +w—D|Û»È7 Ä¤”Ø,÷44~¥¿ð‰¡!}bµ«üÉæ4)GݘÿûBCÑuG$𹑺æÅÛI°ãEhk®üIPƒ)üÐé?íÍãÿ¶ñ…»rH\pºâÙ® +ž|`bböÍtËÑ™‹å¸$4GÆÁÚ`¯Å5‰gËßÝ9!.{ÿ«¥±úÆfø{ +™ÔŽûyñáôj/>Ù7̓­_̱s.Í7‚îØ†‘ÑšÖúWËÃÔ’m]“Ø«!ƒ|rlNPظŒOË|á¡…DØ5â!=¡& Åu´ºÃ•–ÉÝeq[Ð$`®N"ÒÖ'+_U°÷! &k¡™Ø‰Ì¼®k†Ç;Ç9e¶Žº§L©žÚèSRâÇËF^Ò×hMÔ¾‘†Qu—FqK^þêgAöõÍM!‡täù ´³€®2i%r­]ŠI¤çÜh¯»üÉÑ<±oíïk9ÒÏ{}¨ò©{ +Pò6B+ËŸôaO¯ ‚c¶©ÞrOJ*t7† ¶`ã·$ÄÒ0°îWf(µŽ1t^H/âìì »»,l +.¹MÏAmë8ˆ€±{jkŽGY—PŠƒÝ©¤WÌ7BŸ ³/Œ`R·w•ÿ¡dÿ±ÐŠß˜D c?žóÈáù‹tÌðÝËLƾ•F ë±Õž©H%æX:wÍ ýn%ùÓo`£Ýj*È©fB|s„—šüݹ!¥W¬OQJö­]óaK¯qÏÖmü_mˆ¥†–#«ÞøÅ59³\ÞXsÏØüo Ù4ˆ(ÝQ³‘ÞiB²{ µ>X}ÏÑUvMÃK>©\éçVýwïÌ?Äåï~÷LcR6'ï–ÚjîØ{kïm W=rN€îf é€?@;f‰å½¤‚JBMÐØ3íÑôMxæ[›vŒBî‘Eܼ·(àØÆ°IŽ12¿±ù~% ä™E'®öÀ_*Xe·g¨…×€¹º‹Ëÿ™œùæs8e{“¶ÒWxÕ>T|]×”v~ýâÄ$ñÝy %áŠc ú­iú²–tÒÖÎ, HZHa5t`DfïèêS¶$Õ/<³UQ{:"øÈÄ&úUÄ¢¥ê?êßÀí¿v~×%ïÐHƒÛ‹î­ •>ZŸÆ¦‹áïÏMÒ o¯=°gK­…WtÂä³Sä˜ßZÁÏ~æÝýjž•{EÊ-½Ë-ywÞÞ zºÜ]›à<±—á“ÓʽRtŽWÏÜœ­y ø[tX+nÚ™g`Â:R•SZòv]RåšÇ… 7ÚXä™s«©€}±5ô~¶Á‹ˆÜ ‘²èûÎ<äžÆ%;QQÎQjË…àñ¾–X´5Æ8?N˸!Öó$£ì½sŒY¹:ÂÈ³Ž¢ßî/L¾DF. GV*jøßn¾DÚ\ôp‚þà“£qØ«æSÏ6€µ¡ãÖ'1É.)%m©Ç–íQKe-µÏ§ù%¯ýÚÆæÐBCsdo# “> âm×&MbñÂ6Q×…zëÓ‰¸ŽYh†^~µµ*á·Žª·?môƒn…ä°ä]-ª¤ŸzþÃý _Ï4',séû‹–KŽÍs:ç–UD»gª>„õLÔ¾YÀ·Ž ²¤Ìœ3K}ˆ·~ƒX¼gwïÚù'éÔ±ê-“”ôÍV_GBlÊàùû˼ÖCk·áÏÕ†þHï*Ÿ‘ ÛØ@¤NØ<©ÀÔyƒÍzþãŽVÌðÍ1J#õÛ]#ˆ7k]à»Ë­åWZaw ó5îükœ”ýÈ5…NR‹r/©8Y§ì½Õw6Fª¤àw‡zVýŽ^HÖ RëÒ¯|go¯ÍÙ1Œ, ýÊ}KÛè‘/:°phîXŸ£ ‹jŸqËâÎ,wÔeïªiÛ“¸$×(9ÅÖ~en©  W_Ò°kï¸Ç)E–vÈ3SSÁ%§öÖ1\ýÌ1PþÂ-A§Œ뜮ÿ°2^ûT%ÝZngh˜ÎQØ»CRÓ Û³Tð§:æ“™MÞV¢ÒÜs¨=-¡dG‰Íûk‘ÿ¯CÜùÉ è»–T¶1RóÆ3]Ÿ¹1ƒËlE¸$aÝ^ÀÇÛ»kïD9çåô”ÓÀ²øM\ñæ×qdÊÕåÖÚ§CÄœk…Ï.ÿcµ§:vWñ0ÈD×âÃJäéÖDùC¯ ôÜ5Sù<  W¬ ×e)mÜšD&.’ÑG"òÐB†|²QëmD@‹L÷)ê>|¶pyûF‘èh©©7/{F:bOG(ñNCßY»‹o«yiÖ†ïm£ø‚FöMSáC× &w‚šûp‚œwðO)»jðøÅŽtìÆ 6áÈÊ$Y¨„# ¹þ`‰X½k!Õ,L¼7²/|™Éü¼Êi°!âì#„´Hü§•ÍvŽÕ¼‘S>ž[åÜ\‚¾ÜU‘KvµÔ*…ts© ÷Ö/§•ùØ\Û@õóÅŽŠ?VG«ºd°¯šR±­a‚FkcŽZé×óÙÁÛ§bDÏ„ØÙÀcÂ%§Eêþ¥zUÄþ)y¹«þ•—òk/ìíé6ðËKâʧWÚ!ñ?·c ã¬* §@\2|‘wž÷ë9¸]ìÔãU“ÊýjR¡uòÆÐ^~kqõq{A véˆ8—ŽPXâqÜ::Ô¥a€Ý!' ø>¯º.Ë1Q|?¨¥ l#$Ì—^ãß[‚®°…Ž;Z¡b‚ZdÎ&à…7§êS4UYÄ0‹¼sœÊ­ Rеzo†œó[,é‡ÞºøogÐI§¶%ôʵqBÖ=ã÷H}|HŠOʱ©¡È¹A2}k†m ~%ßöM2È{¶.MÐÂç…¼~°LG…M·1VñtGˬëF}øm¡©,íOKãÀ'À³èÈe»B~PŽËvŽ#Þ-wCª›!w;1¹Ç 9gÓœº`^:Q/m=ؘõ~Rò¼ ò–šØ ÅϾòM RšËî› ¯¥ÈäyRÕŽŠw¨'ƒ"ýï€ñ}4u–Ý5¶–ÝÈ"Ÿa4öxä¸\ûxÍópäó.36ÿЂ¯þï:ƒé¯TqÑÚ®‘ª‘½­¤—Gö}Ø;‹®›s.ÅÙWvÔ„rUgÅ;pòoÄe¯Þ3²0ö>t¬­öpµ úXÓÏ#ù98Ï5\”CM– ’~÷H¡©_V€\dávÙäÝE6õ¯5QOÈ€.X›„<aæßF¤?<ï‰ìg3 ëõ±®QpÌ¡™ëœ¨zknɽ9‚|ûÝJ/âM.ã.)÷É/RNÞµ}q°H˜eÀýª  C>51Ï£ zµ|⦜QÒò{ùÓ2‹ø—ƒ+ü¼È@±¿1ZöPß’{ÅØY=J-¸5Oü±­ìí7­¥ÑßwTÆž\骎ÙS3àè‚yQÑ%'ÿœ{ŽVä±d¿ ·­Äm«Èå€PWÔ}+°³Ìa¸t ä|Où#ÛDÝÇ£µ6ÕþJCßÀ%úŒBVÐÂŽô<…}Z¦`\Òúì.xü™=û¾†ÙHÏé€ +•âž¿\­z´gÀ–ý×%ØÑI~9¶=+€¹§˜…ýøx¯øÒ46é{ 3åßhå‹­x¢µ½úÑ‚¨ôB@A*\©zcí-¹³ÒS~×ÚSxss°îUp† úx¼Ï+LvØÂ$Ì,Ìž…ÏýÓ¬EkóоI, +¨Øµ; +VÕš[ ×úñVÛ qž^éR3ôÑ >å½ ÿ¸ø–šWpA+.û}¥Ÿ˜ü:&Ô)Ã$ºæÐIÛÀ|2JdIÞê(![«¸O-z{ÚÔVžqhkò*) ÕøÛ- "aWK.;0Ë÷õØâm)©ÄÜ~¼5‚-:4µô±Ä?Z AwæÉ¥›˜÷€>Üw ’>(Z0/;P¥ggh5W#û™MMe×'qqß÷Ô½úW/"ö‡)RîÀ +ý¾Ü~¥ï­‹-‰ºþ/ìû›ßï«p¯@ZqÎùqrô¦®ÄsæîÔ3k#•/wç™ð½…¦]"~m›ùX/ÿŸ‹%ø?‹ÿŸu2òó2¶4¬A&/uW?¢å¿ý…”õòû­i +üxC:T3¡a¡hk– ãäÞW +S–|jg‘î•Qk›ªïøÆ1)A)µ( Çe•¸¼ ’R¿£¦€U¼´SCàÇFð5A2ïÅ…ôTèkCÏ®ž…Ø7s(›3 È|øÍކV½o¢£¶Æïââ«*~Æéøû3ÃØÄß7Faq€×Êǽ;ùñîÅoGÉE¯?ër[ÿàSÂ?xå°¸-˜[ð˜ÍY\šGA-9066„5âÖd}ÒÎ<±Ü7ˆ7в.Ã_ÿ¬oÝoÆdÝÌysë‡>tæÅqtÚOÃØo4”¤Ÿ4tÀ #ÞþØ ?ÓRwqž_xO.,{ûô?Àîü´%%#Sè›3˜°‰ s*qù¶qX”}¦.. Äíÿsq[×ÇQI%¸Ü<¸ok™8ÞhU~ÞöZ¡brOÖ>uJàïôm û«#¨ï6É9 ‰vÔÆo U¼]ï+}±«åb6Fˆ€Ö>™cæÝ\Àã/»® dþ:‰JüI‚zÿƒÿþÇ%QöEçøÉâ`Õ!ìÍ÷uq'<Øtßl}‚Aœ{ÓÜ”sÇ'É}T?9XĂޖy¼c[ä¼!›thâ³"ß«ï´=-½fGN)ôÏÑ‹[Á÷ëÉ95{ I'ºj?þ**y÷Ó02õ¤APx}{²>6(';§Y[3È´m5 Ô‰è{FJW +‹›e“q’O.wƒnû¦0){zÑðI@ÂíéEì]”aRý²š×NIÞmkÀ#cˆøOF.i_Ï£¸g©¥»:uW'f¹¦i¹ë€ç^h­~Y9Ì ‘✬yµ>Qý8röd¸þk£H`^Úš@'zeÄlÏ4>Ï9BÈÞ–q +#Øš¦š;ŽbÚ %ë|+èõ·óìœË 7FÐ)ÀûªpJÉEK}uñ •ïN@âo~Õ‹zݯDåmHÊŸ¹e°ôãRó¸Á%aûÑ¿5röï-:Ë1R ðGøÙÞ©=¶‹ºV¸ü½q‰PPԽߙǕ5DÈò$Ù+'Öø-Òqò.ö×D}ÛVöøŸRâÇ“^)©H#.¹2ˆþð=¿ôùW´¼³Ì‚Wß"ÒÏ›ÐRBÖozFÆoŽÀ;÷öâ~ãW<ÿz’˜vvk¬þÝÚPÕ#­0ÿCcÁ}çpÑÓÝydÞ¡…/>²¶N1Òë§–z•ÌÊༀÖ‹èÛrj±G‚KtMà>¬|ei¯{Ð^—ü3¯ ú_fQÝ+|GIÏ?£ãç^17åÞVóã®ÌÒ£N/4çÞ ÊXµÞ9Ì9ˆÔÇ\Go •=öN–=ÚÈ{ì“TÅ„t˜Œ°–Þ× é>))?8‡N9Ò*öÔðÌ€ +‘¿-Ãféu~%±ÀxZ€5ëýóç-ßÖy¬â¥ÿ6KM;°Ó¥í9ä€1ÓçX¥ MuOÜvér[ÕÝ ìÇ_ÅeO¿íªy}ÂÚRõ‡£ûnk”±2AäŒ3Önr†gRPëÃ|ôÏ¢|rbá°&\*J± +ð2æ^x\PÇ€îšÈý%*ðÔ°ýbùÞ©ÒÒ[ûDÓXq{c›ÿiµaħ$oŽÕÇ®¡?:±Ij~ùÝQTÊ“¸ø^@A5r~¯M||b¾^è–Ñ@jQÊ)'þŠJ˜øÔÖ—ýæÀÀ!,ˆEîy_òòÜ=ýÕŸvž`ßäOudŸ{í3kWñU-?õŒ–Ÿ~csŽ\„Î>ËŠ½Ô +ZÂz2ÄÜœwc +û+¿ðþ×­¥¾²·çÝÜÓ‘*]r8'êÖw¼ê¸z +á¯5~ËÑáœ=X*¸æWÕ}üdµúÔLÌ4;ï–N”ë“…Ù; i) ·—îš@¾wôWÞ]¬~´.!gPòßü„N{øÝBWÅû  §ÐDkOÙk}sñí~TÊÏœüg_ÏÒÎ{gÁ‰ÛJtšsü&¬c~«eèx¥C ÌÙè¡•Åò$Àç°äãe\Í—µÆ —‚B›ï(ˆ=Xaü¦ã&eψ/ü¼LEYðp—‘åQÓj¶¦I¹ëƒõo5‚Ü›j^êï9è{û(>A%(8­`æžš&åŸj€&I~úõ,¹øŽ½£îiCù‹ïh™7¾î‡>ûn‚üîTꕌaßýº>‰Öt—ßk‡Gÿ´ÐTóþPÇ#¨­YäGǵحâvL<ºGÃéqnáµµ |^P# ä¬Ú­1Ì‡ÅÆÒËnáY !õ§|öÉ•Nì»>DöY))çœYPr}IT|ÕÑYòt³¿6Ñ;†Juõ¡¢M ¥7íà§»ÓìÊ „œyé“=Zõt¥%ëòáøã_‹ø’=%*Õ;Zc謁˜®Ã2É7Ù‘×½÷ÎÖÇúe¨„m.-¬aÕ‡ ´SJ)pO3K\ãü*Ské LÌwãȘæ(Ïjùyç[@×={oêD¾í'Xnª}anªx1Žˆ9aâeÞØè©‰æõ½ºr¯›uÞ9ÅA†µBº¹½èöúHõ ·“ꃿ éIa•Ú†‘Qž9dÒ¿·DÃ_V­a=±9IÉ0´][ü箑 Ù³°(–!D”GÎ…ù”m"¯¢™¡äWÞ¢æ¾øýô×~DâŅΚû–^xªG!`l)øðõ)læÞWt´,lÜ5ñé®b¡Z\ro¾¥üž¹ü<¤å +>­4,òèA-­Ê+£Wºfé•›R¦{†Qº!åTω!/u-¸â°¡mÀ1ŽˆÄ¦ýÜ_ûþ›)BæYK[ÙýžÄsÅÚ#üñõíˆä'‡z +ö³Íð)Ñ)»z\åÑ"{`f¢ýÖ%gTËE•—à)ÿv6Í.ÓP~-6cSãš„¾rO@žz”°8€‹FgÆ|‹ÍzöëÊ(´t[…ÉŸcÇPs“ΚZ@˜»j_Zû*_îè0ÅK\æ¶ZHTˆs.º¤¸òc›°Å¯Ã–zå8“æVRJ‚:RõŸâAŸQÀb?)Šùýë]« õx­aøÐÊŽôü.Þ’€_¬Œ”Ý5‚_Ú¦¸Õ´êËŽrÆ®ŽV»£¬ñOV<]›"µ 5׿¹Å§•ì’Sj^ù…Å6Ø=ûö­Z\qu–òS/8û ¹ìæbkÍ-kø¾kúÚ7‹Í² ¢ÞJ˜ù×ìCõ‰~%ß=‡KÙšÃgoH™ J€ß] }z] +xÏiR^H/æ bŽgŽ^´ÒW÷r’ôkSÉ£oàñ?HiE§hÕg¢î]ü*åÙYG'$ðóŒÂÌóK­ywŒ 9Wưñß ‹Ÿ~7‚úxZÁ-¹‚MyøÝzwEô‘†Tiï=Ðó2/ëëƒ<øº·úÙ¿fq‰?Í ò¯§>>ý’—ÿ’"¡‘³F.ÑŸ 4DXŠ,pŽ€^ØúJ¯«+®òãOvƒSSPrÎNcÓOËIyç—Ä?æÈ§€trº¡<æzÆ‹oŒ û2nÁ=fÞãoÐ w~h)󋌖zz¥»öž{ +™èž®NsI@ï èžAÈØÑP@€î–†´èl÷lÝ»Õax”7rfo +à°l­k¶þ#à{~iGcPM9'À±#51[Óõ±ybAhžƒ´ b3&(Ù—¸xm:vŠ]óÜØRqo}¨ä©o¦àhºWÍŠÔqúd4î™ØÄõiz¾žYçWãŠöÌtìg·á`‰MõÍãszJ…ø[ç©Ä9K*vÍPò×GñÖÇáQ;jjí¡A, +ªy÷»Ê9ÝNÛo¬·ÒS—{‘¯¦iÙ—ÇðI§CÈX÷4»,¨`Öø5ÐsqAcƒx[Ë {UÄ—›½:}ÐPªBF~ð`ûf*ro‰E›Ìm-·«¦ƒ5üâ㸌߬‚3ö¾ª»A6ëÀÄ!['0I‹ƒ°¨m¥tkŸÐâó|Dšc¢î­KFÈ ë¸HŸŒTÙ#q°ÌeÍTø—-A÷§-ñè1;¬l®SI­ÛR²!›ÓÔ·”Z|¼Ñ40q»KÁg[‹ä³µ±çóŸ}¸È¥†ÌBκ„–åŠô;œeFê¤ß±v–ܰŒò*ô­ðZQÍ %§äìBCáyÇäñÚ$1iqµÐTwÇÞ+*^ék¯^é¥'lŒ-e×[ +.n Ô¿ÚÓ³Q!=¥j}»6L:Z5í[D¢!+hà`¼*rahK +›Ä°¹¥7´ dzäŒ2Ï£l}Ÿ´Ü^õP#.¾úe™ð«Œ–vZ'(½¿Ôvt>¨[ᯠyQ?0rÞžÌáj׆+î9ÇjžØº‹oõBŸ}Óyñ¾¹üæ0tõã+_S¢]éF<74TÝ”‘Š—` .2²^[üôò?2nŸùGù³«_ kâ¿Í|só+øÇ_ÙÚ€yl¯¸·1Xq×ÜšsEBŽ=ѺýÍêÉ÷¾éº„Õ)lÖ%ýº¹¥ìÍžŽ‚ØÕÒ1¾YjÑŽ‚˜·5XvWƈ=¹Ü zꙥ•J^ØFêòìC5qË­UQ}Èè0ˆÍ1ð/ýb{Í«­Ñ3mø,S;4Ù3“³“.Ki1'Wû³ï,ÀRCjxª£¯`ÐÊØ–‡7÷ +½r|À@°ƒ%bͧe*âh‘Tóy™MqÏ¡³†¹º1LßQ1à¾)tº„wJF͸±Þ‹rŽÂ£6‡ ‰žéFÌÖä™Ôy¤ä Nõú5gkŸxÙ¤ÕAì;ç$1%8/¤¬ ²»a‰fY…o—øM[ð~ Àu‹5½rc‚”å–à“‚âËÝÈÄïÛ!Éߪٵ7VûYy m˜÷cøÌ³†Æº—r~Ý}3ü¥SBJwKéek“ˆwÄ,÷×G¾»ÀÐ ¾¯æWÞ46Å;…NñKé¥>€Vú)I‹ýÄxM쉹 ³£â`‘}h]àG+½µ/ƈ©W¦Ew4Ý”Øaö>*çã÷õ ?,}¤Ä ZÉyAáû¯èéïþIHzñO|Â‹ïˆ Ñ?‰ +O `*/c²NÊbOŒQÓ/qŠÿcnÎ=¯gwÏ ’ƒF]H'à„Ì¢ÆÅqìGÓ6ίóÒ6¸»Ô2t`ˆLLœOƒJߘcK‰Î– K®{¦˜E«cäÌåT´ž_~u½§þÅæ1ÙÑ_­ç^Øc”x­<€ÏJ¶eõ±–îÂkËy—7F«ŸÔ”2ß<jD¼vÐüÙ,à_î’3C¨èånØ“ql|älUXÏ#îšD›sôR¯R@ jÄ,¯”Y³)åÔÇ…Ê~z¼ºóre”™obd̉w%äºÓdÔcñÚÖ‰OXiž17Âî)9u·&° 3qÕQzÉuNΫï'P)'#×Í:‚O\Ÿe”:eB䪬•®ì%ĵ#ÒN*9eO#5×µÏ-ÕwVF"5¡oýrjÅÚL7WÓ×RÛ-¾à–«ürHìÚP醦ܳȸïz ñß¡“~Yî¬yº4Î(ªË‰ýåÅå“ÿh©|a{ +™´Ô”{Ã,H:'Å<ÿž™ýÇ?; ïO(xÛ ]ìĚϿ▼¼RáÈÚÙlç(èÑrKîy7ùצŠ{_éKžj{ q°ôG'˜ÙO¿ùlbàŽ 4ø–Vãš®{?ˆ‰ù…ŸwÿÛ†œûÿ´µ?šâ=¿»þÝ =ëuØÀB|Ôú0â£F”v¡úö_¬œ{ÿœ"Çu €žS Ÿ’ós¢ÿ´‹{?­Š»mLêŽ]èQ Så·'Éi'\®èÝùŒÇ—ÿe†…¤wÎáÒÛ®QЃÁÂÛÝà‡ß‰ n~§æø#`$UàsŸþ„Myò›¾©:þ“IÀý¼$j86 xaÐb +·µQÿÝd°Ží,!¹üÍCXæ“[^…|lëPÙÛ•ÿñ4Êþëâõ™‘ ñ‚ÛÛ¤•zœœûps‘²1 +qM¡“ƒjBáž›ý§™Tá–ãÓ½JnSÆ©± Þû‚z¿ðˆsÀßCŸ/µß”²ò. £R~Zé¨}î’²aºöê¶žš§{jFÍ;231Ç6cÇÀ&¬Í1K–'hÙ +1cSÝѼ,i„:U !m'(#燤¸¬}=¹" Fg„”øœZˆ_8x±zož‘¦·öÝcõRR~³¶eßk §‚·bãCZu@K*ùdab?Y™¤™^ÓÚ@w]xnPK™û¡Ï| +>¯äcö´p¤ï<À7à î<ª}“4ó9žy6~`$Ç2Ö>…IÙT ‚ t„sžU»0ˆycìB=]ãWxå]Í‘¾[“ÔL{/ñ€IçzêR~Ʀ_Xî« üÝ+@×^ñrLЊVF)©ëRZ¡SÍÚçxÕëRvùΟv´$j +©0· +›x†:§œöi˜à°‰µÏ³ÖäŒÒ- 6Eêýr¶Öp˙Հ¨Ø’0 ·fèŽQb²¾=-ß” *ïz$øLSkùjê;ÿ…Väë•j¦m„“kìfëú…Y¶1ZÆžžI8¶r9›RB檓²5C*pËXµïÖŠHÀëç/õ@^¸Ç!oŽ)p[oÅíåŽòëŽáºWjöÅTÚI-tÍ9Ǩœmžm„¦UˆKÞyçñEK=µw–:!Vúë߬‘R–ûˆÉ%½* g@Ö&0))¾üx…'Šœ9iÐY«cV€ø_—ÀÞnÌRóM£üüY1âù8µô®W†Ù[K··]ÕsSÓò2Κ@O-í•Ï·¦ Evi#¦“ó{+äÃU GïënmöÒ§ ä»ÄBÇ*eà˜E$0Œ"2àÙÏ~*‹½w1 ¢ÿ³ÉoÿÛN!þ½ˆ)rîK{ÞõÅö’{†BNþëûßVÅ?<ï7R›>o +,4’{®öƒ¥-í¢ûÓ®‰…ó-ˆX+Ó¬2c.Ê¥`×D´Ù=G+®ýˈŸše]UòA÷\S”âÅIFI?¹è¢\Xù8¬e!#µî¶¦qž9|Ææ ¥`SÑHukÚš]º®>›¬G¤î‚Y&ÇZ3½‚)ZÞ‚(È¥•]“ÕÏ|³¨ÄÕiNù ôG[}òo‹mÐç냘÷¶îÚö¾Â»áyXf@ÇÁ¯J¹µÖIz¾W'dn/ðI^ äÑ ·”Øô•QÈK™Öa‹<\ž}›°2KH“ˆËžŒÒÎ滛5ÛRfå¶œQ403|F1{yŠU©jªÚ[äÒíÂÆC» á0Ò{OC¯v+(ù[3”œM ³hKÆ….öb^;†éY®éFä2p_×PzÕÚ]rom´ú¹Jœsf©§òÙ¶šY;%Ý•‹*‡Œllxƒ÷«Y°]=®èO;¢ô`©6Å)‡ÄDÞæª«Ý0Ä(°Œbâö-VÐHÇì[èèc+¾g&Vm«q9áJ5ÀÏäÕd´k +›´­ÄfÚ‡Á/,È7NµxðÇ!-©Áí‰Ô\Õ‰¹ödSʃnÉ8àõYf¥[É„… øñ2Ÿ2 Yë2Ô·ÐÒ0‰ø‘ý“^½ˆ¹ª`”»äÄ×4*! Âç´Bª¾öd¡þÒ+á6gÙ Ç%yCBËY™$§. Ñ’–ÇYE]#Ç&¡hÛ±¯×gÛës]\§”°³Â>FH\›"¦Gæd×ÄgìþÛ«|©žZ9ëãSS+ÃfÃ¥åcÍ“üRǫԧeÁ¶µl„–WvyÈK®9B±GJÈók¨.¹h}–”c¥¦®+¸P®A²4Fêê9´Ú£HmßUqw¡©iq²ƒh–4€uøØù®š{ö1âsdœƒ+Ø3# +ƒòúd¿ [à•“«ãͰ¥¡Nô$õNÝ‚Èÿ²"èñ9nu¤â‘’›qj +ÿáÄ>ù|¸ž€vB7dìª9nMÚ€q¹Ä-À7§9kãÔtK/.ÊÒ‡~³1M+\cç. 0óSlhpx.àÉקȹ)»È1`¿±©a])@­©©Vi]7Ü 1±Ì£í°Õ)A©»5LÈôËiÕ>§~aŒ‘ÝJ(¾ ¨NùÅÜMÎuÎPó,}•wç›’Ï­ Þñ(h  eyKÓÌ÷…=ãRr îy֭ᡜ +f…W‰ÏrÍ@cœ +tºÛÀ¬3N’39¨ô‹„Ì—ßøç8à€R„÷Ê9`¿žYïÑÒ¡*6x]Áƒú´ âàbC“ßÌ%¹…©ãÒ2 a= ¹kä‚:rSJÎ^îÇDmL²+6f0] ô¶¾©òÞRgÅc€µ;F«_:g‘iÛZF­i >ÁÔ û^`|*j¥¥¿æÙR_æ­ý…Šèƒ%pÊŽ™ŠÝ6µö®)»Z CÜJë8£äp¥mæÈÞ4²oaÓ:dV@[—Ôb vM”ê ŽZ±Ü{äœÁe웩°°žPÐKwÿw&†òÈHEÖd”Oͬ Y{¶´B¶S%ÀM­ûK]_ý¨‘Z%ÙN£jC*ª÷Z{Fê35=1îyÌ­c¢}:*Ì¥ •{Õ ¨[%¦¨ëŸZ1 ~MsÃú,§Â1ÁÌÙ˜a•:f襫s<Ī¢…·¦îh\™Ô*[èñÖ¹‘~Ëì`ˆœ®W©sŽRâS1á;&{¹©7l6"gœ-’«¨Õ«gÂfͳÀÆÙÕlئžƒÛ6ó˜n-=Ë.»¼8ŒÍukÅ´-µhà·’Z¹%£”mÉX0¿¹¥ß·Ø>î55¶l¨Ù ¹¥/¼,î˜)·–Zm¤¼7Sl‘ž«zRÍGóÄ'G»âØÞjiôÑ1ÌœV{¸$oë4¯ŽOX™"eÙ& NÀÄûtÍ"¶™çšodzæyh¿†M /sxb!%Í6ÁŸJð(›¤nêg§mΰËÂ&z[ϧmÍóQ^ýe½adÏ&jÙ6pAcs{ÐØ={9OlÄ•zd°„ 8Ê1y¶x«-¹ˆhfäÓKϬ<p‚}°>jS‚Œ]€>Ó¶UÞ<Æ‹ †^ôy}šYn§W8çð°ÈÙóc»¿,oiøu¹ˆóVž[Û=´¡îê±ËpªªK% ï™Ùt @«“õï7fñ©^%Ðr°©`}². +ð~ýªÚwkã¹77¦ Ñ~%À‘€×òzí14ð| cnáràËr­Ã”äµ)ZQÈ$þÿ9zë¾ÄÖö}ØÙ1»föt·3N;ŽcŽÝÝ**RÒbb ‚” % HжØÝ1±÷¾ãûû<ïãYÞÿ¢.׺®ó>ÿÜÙm8qõXŽœ]*·¾¡Ú%¥%O+Øå&aK6»²àÒH'6õ`¤¥~×V[×3ÊÏŸÙßôÍ–“½iëì°HëALXü"¿{?ïéh¸£Iko¼{pÅÒBR3rÇ%õéönV˜Œ]ÜX™sµ­,éŲ’ÉØkïÝu4Q÷Þ?¿'¼¨e•MË8qIk¡¥—oë({çD%-ë)àemtm¸™8%k)T÷RÇ•p—’–¾¬oÅÏi»æ¬9]cµC€Šš•3Êç5ÝMNJ2,c-­©Kò.üÖ`wݪºíÖwÕͨkÓ–ôÅÁ‡¤Êƒfí€ï;ã|󆥾ƭ d,*éÛfFž +ݱ’ËVŒÌJ—‚–1¯cU-qéSrâ8·ôÙöºafa6m øMk|e˜Y1¥ §MÚ|ÇÂáœÏÇ?r60vÇi¨e3!ÍZ‡Þ´rÛ܃­$cgC¼¶‡›:2Ð[æµoXÚÛ׆à."ÄÖZüjM/ر³Èn©ÐØ\òÌɯö=rµ +v'[{·Æi«æ&ÌŠ¡º2DÊYDF¯ŸÏoi5óáÃ݈y}Wã¨\ĘPµ”Í×:pì)9§ëa/è„=Cm¬”ú¢‚ÛSªâÖT»l Àüý¹ýþ\›|s¼ÔlÁ´†Y´5ÚÂ8˜¢¢vÈ‚©½ar¨ç6 •k6¾zZÛÇÓ zŠûÛzúÙÝÑf~W‘¡‰è=ÙW—¿iííŽwÉ÷œ\áÞTK×ʱå¬ÃïNµìMwÛöÝ]Ö)&Ý­C&/h1Ù+# äI= j2â-}´h—Œ¸ ôðê ³d©GL6cv&8Ý3¼áéíÚW¼2ÒÒ2§'æ-šêЫc=;@_ïüO°Èë6xÇÉÛwÒqû“íÛ®ný´Š˜¾ ¥Vì:;v]ì®='‹îÖÓ! +|ü¼…Ý¡“ë;×ǘ¤ G ko¦U¼?ÁnÛ›$Uï»ø5[gûX?e*ñC=:t«8YFmúàì"æeb†CИ4ÔJÿhëj‰u—ÏÈû€‚3ÌoÍlÁXØÈøã‰Nõž³]¼fo¦Œ)™&icúp¿£áÀÄìî(÷ÌPGËZUuµîYÛÛ¶m ¨ms™KÒYlhïKÓ4ó•Í}©,Ó —Ÿó£œVá»méoYø²uKŸzBÙŽ0‰…m°hX$¨WÉZ5Ý¢rE› ÃÈ×bÖ»|H¤ ÕK›”Eb–4™TA~A¡^u™¾8aœŽ3Plíê…¸ZP_] ¬¿g9çY!».®Ø.é(Í]ÒR[O[æ¼®®pF[Ò“ 7­- k@_+Û‘ú6æg}éí8Ÿ™£cÃb§ûéU ƒ­Øy}3vÅÌfº¸Òos: Çj·ÌèÜã馮ó=Z¶u¶9úëò5ì{1 ÿÄ"à•Íu±6íÜŽUc}Õ˜˜™aï&%Ì÷3òW­kä Þ;ä$—›6''ånÛÙ +æÒÂPlFÍE:dœÒM}ñ’©½dd@¯Ÿ:7È,°tTè¤XWœmèí*°Š{«†øü²!±²NÏ×Ôö Õu‘û"Û‘MïìÂäÂP'}ÅÚ„]´·P »da”oŽ1k7/±j¯C.Ù­fiÁª5B³Â Q +â>(Ÿ+Ža7KC˜Á[|u÷|ûQqBÑ5BQm€¬½­tV͆­˜ZpË#õµsfjÉÞt ï|öÕát»zÛU_·æh$-wv¹,í4«¦§óІD½aqtJßS79$àZÄ|¸U(Å™²“˜‡S¶`\Z2x\ŽMX3³)Û£½ê-§pt¶Ë°;É•L±y§óÍ=ÇnëŸõÁß+-ýgólÑþtC泑¹`ëê˜Òó[ Ì„)mÙ¥o£ 0rfÍÖÞT}Ã’šÑóVÍí;ã½C›£mí3–æÚI3¯Á¦ÕJ£’ö ¯Ñ–É¥«ƒÛ±‚·"’,FÆÌìeª"ˆènÏ*0õ ­´é"Ká1zÓ†:¹i£¢–l·¦­vcLh[° +å†>ŽV.¨‘JbÉdc7oÖLðÓ•ÑzŽjà@-í=¹V®l 댉 ä¡Ïàl܃¢$Ô=8¸éĺ,¥wÄoXûä;£]¢9=—n“4dÅü*_ƒ ,X!ߎå°ã›ÈÊO­ÌáDg²šÃ2¦P rßâlÊH6åvd,ú—7o³/ø<Šý!Õ¿ä2½²/PÖh)6óúá«zbÎþhmþξȩ­ƒ(:úÒøuê(MØS/ R +”¥Ê®ž4»„ŸÓIº'´´†ß–¬îj ô刺óy¼q('yC¨¬{ÙLîŽogk2IqPq6ñiv2úiRlÍͼÔÚ»%™°7llKÐ`Woš]+ižîj^tÛ’…\2«Æ¦89«FLÓˆ´øÎ¸‰®Jo¡+2Z¨º<Áô¦©z*â^ÊH­û)-ƒñÓóá^OC/æg®Òj˜/z™-F ¯rRß͘æ2ÖÌML·–X8£§Úu¶J¥aôõÉ +º;d©Ý]ºBNƒ*ªž(þÌ"tÆ`´ÐÒìš×5Ôw…éø×™I° ´‚»„ªâ‡"v}`sXÁ‘­ +yφ“'[tÉþdsëÙ[t8Óд7ËÓmOõÖÆzúgm<Θ©Ÿ§’Êñž¤€ßЪèí‡*DJœ˜Ã‹—q¸ÑzQkŠ^X—4©k¥îºº‡“í’EkÛ¨ÖtIúm¬.ñ«¥}‚¥Ø}Ë«¥wQ0É=x9ÿzfî—˜Øï)—2 $¿½ @xÜ–þC€?ä×¼”Ú?0ÏU)N%;5$•šj™ÂÑÝ.v ˜íî,:ç0›Ò¸_K{©Q?&ÂÕž$¤æ)¶ZtZ*x Êï¼ Îã_ÍÌëþÕËìñôYºGL4õ'ÜðˆÇ€:µñš•×=¥i©žPµ"ljIsÿ€¹¹®w¶¨–5ˆ¢Îz—Ô ÝMËiû='ŸT(»œ•ÿ耸ðÐ3ÝÃ'{áÃg²Ç£7ß/½÷ð÷ƒþZ×|ë{¢êèN˜5¶à¬MÄ!i+XÒ9ßÙbÉ`Õ ‡¨fofËr +“µÏn™Ìl i>ׂë)ƒ~X„äQN&ã7ÏG?|x⑺œŸ‚õ$–Ñ|tZÌ´F'_2u´¬Õcwì¼U»ÌiÐé•|ÁŽ'Gvö8«y½käîž%b[Ëp›9ÒL5ɟ⼺_ +Ó±¿gáï$Ç"}÷2êÏôðÏ^ª8•Ob>—Á÷¤µá¿O Q µ^( ù}vTs·„cŒ|„”‹•VÊ!?¼Ÿ13Ÿs9Äÿõ7Äãö½x»R=¢hî½*óð ÂýŒÅÞ÷ d»NÞ³0ÒÕ;3܈²©Mr™½­³ožHgÏ&WÖŸ„ES~yï]r1*û[.HúGR–à§àHÚ…oK<üÈcYî½(õðôÁ{d‡~¯¬Ö> ¤ï¤í’\U'7q´Ÿ™6ÖOM4õ Ðݽ㵠ó¶3ºoðÌ)äÞ)®RÜ+«ÒߊŽ"þøöMî…»wB<^¾Hóøà÷¸ö(ßãâEOOÏ„ rÙÝÈ„º?^¼)¾œ˜Dx(¶wNµömŽ4Ò'Õì +«JÓ£SŠGoŸØÅâ‰7š-ÓÉh‚öE-FáE¤X?¢ñ¦wHÏý€â?’“IWâc¡7’c2=%­¬Â¿`©G *%äÎ>} ³}&ß4VNvz¥•J/G¥P~ˆI¦þèQãñØ;×ã·Ÿ<^zezEÑ<¼>Á<îz¦y$Ä¡/2IÒ÷ÒNØ&襁›Ò ²~¢Dj$µôŒ‘9«IȺßjªÓ«m½›Õö£(Ü#"–üCbjËÁ14Ç>%×€cÝyžãñîÊãµþÂkôO…Åì›üm¶I"FÌëy o\ßÛ<(ëóÅ¢< +o<ŒŸ| ¹’Yn¼•ÕýóÛ0ªÇõ'`g¯J.©Ð_ÏÌé¾Óp1>µóg¿Ï˜ ·îÇy¼ñx¼x_ìqëAâÿ ØtœÐS@¥¾4µ¢üÖŒL˜ª—“ÞÃSä4uŒgaÙËÀ1?ƃ%·Þ„~yŒ¹•Äþ!6™ýã§Úo{f]ø„¾ |æNõ¸ïöxN¸W‹¡úT`§žAÐÎUÃWÒ:|õáñ>ðÃÇPò…«·ã<þ¼z!*¥é—ÐhÌ%P&ö©]ÍÇÍ9D…˜_*":DNtc×T…3dNø!w£Ó›~I _ô‹%ütÓ+ã¯W>z<ó.êñCZ^ÓŸxÏgqç`¥E)&-ØH§œš<*£¤XäõýýÕ}ã0f›5ÇxǨîÁ‡%7\TùË÷iiÙ-¿¤€Ä¿‡¥µ_ô#þǼ^Z&yF ÞÊ:&úñsjRÒŠ‘q5£§´Z1+^,èHî«ê»&rpô!_,Õà '™_¥—ÊnúFS~PñSh,ñçèÔ†ŸrXײ˻ä!¥÷«°ÚgtªõsW£9CÓ­‚¯˜84·¡&iL^nQqü¸«[[Ù.°”×q,1å(ù£ÈŒ¶ËŸbêy„»ðÖÔCÉ…/³=|Ãp|cX÷Þ•{Ü8Ê;†íU`ù%¯Rÿ‚RoJ×ʆ[]mµQV ì㈊•/“i0lþHa½p¦ÃßʃÒçÞUn‚+4W’r¹¿ÞzšãqïY¾ÇË0G^Å·¦yø£.$¦q~ÎÎmÿ£‰,0÷uæÏk˜…KFZ‰¦篓ôÁÄ}ºªº¥]Ç\©s= Κ +DkÞä”vß/©ޭĨžÄöÜ}ÿÕ/q!6³ùbt^ÇÍ„â¶Õd…/“='Y0MlÁT_¾5ÑÈÜn:ô$¹ÂÄîìwÑê»Ç@4–:ˆB¿¥Ö÷@%^ùå"¯”¶g‰yuž©ùõOLCPU1U§ lâÈÂT‚b“ŠQu#L 3jjæ¼–˜éR’ +fŽ´ƒ/è‘äõ‹Xy ¡NúÁÔû¦—ö= +IæÞxDýíþëÒ #p£r;¯Eú®çbGƒ¨£¯²kå¯jêôY½òQ†mHFV‘Rgäe«\Ѧ£¥É¥ï¤«Tƒ\žÌNk8J)œÑDÝBP)nôi!jøvZ‘ø×çÞþ¸ïñðÀfè °‡UØv¿öVA¤MÂ-Ù1‘î¡V¼E­äéTƒí2¹ +×'ÐwðLùÍíÆdf³>GR¼F`åoJá’'q9 †Æân%g5?)©â¿k`*“ŒÝÃÔq¥V²dÿí«þdä‚<ÇÄ•~uS‘F)Åvó„©4bÝ3¼î‹3•UCµú*º'&W\BÂÛîÕúŸÁÑÒÇX‚2¤¹Qž)á©Kõ¢^°Û@ŒÊøÂ­aLú¢Ÿ¸¤!$Û¸@ƒ¸%W£–32´H Éô(óy]ú¼†FU ŽÒ÷iÆö¾Âþ-ìî¨öžîÐÎ^al·¢Ä"U‘ܺ>ê¶•C>gâWÍèÌyî4ôõXµJáv€­P‰]]má õ=ï1ýÛ2ŒñU|n×ÍÐøúŸã³Û~÷ª½‡ý)*«ù‡ÈÜÖ_¢AmWÒ*¤×«ˆVŸÞÞq¼Y3Ô6*k®Ú¶Ñá+Ã8Њ‘ÙgQ'ͤþ>v"ÇKh“Nâëxn®Þˆ¤[ÞW’L¯ƒRê®Þ~šzáÁ³,O!È ŸãjÿÈ7?DÀÅ^MTUðP·<%§¤LIa+zr[Í,^4r0cê–¢þnº¿P¤*ãñM®î¡žH_Ú.P‚[Û%Ñlž"‘ÞiK­"öT š=1T7«Ûîí—ç ô5|˜ËЉ=pÖ¾.0-³¸gó ì -Ó¨Ò4ZU«F;@Wˆzód¼®DIOG|¿7I Ò”¤ê*¾HéîÖäöö[H}ƒzÊ€ŠQvÖ~šÖ0rŒ-èÅáì²±iíB|Z¢–mŒ43×FÙ 3f.ên«Pò)ÑüƲ‡ÝlÌËN¡<‹Þ¦‰®!J^T0ôYÈŽ‘Nl5D[õõ]šÈ&Þ@x§D ² ëÆ{z·ÔêµaXܦWq0Ù*=˜áY–G{Ìzq—\!ªJúK:zUÙ\á8ŒÕaO#sl±0W3‹ÚïGg3¼ÒK?"hÍ!]rÆ4Ä#ŽÉð‰ÎŽ\?=õó³å!BîX?)×¥l†Oh:kŠÖR‹´³È*çU˜¤]Ų6N°„+Iµkòø\M¡¬G]¥ë(·õñÁÓý¼ªU¾gno9kmß±2ªædÄÔE9¹øÀÚÀÚ¶Õ¡¦ù6YSžŽG×t£ j5WÚ?PÕ×Ý›$ïdÇûÙyeܪèFÌúš—mmÔ ‡´ak!Œ77œ¸š÷­µ¹S‚ü.øùê 1mFNJ˜U7”¸tm˜‘FÖ´C˜ê ÙUM öjO)»ú±¢õrHÔš9¬è­U3³Æ„·®£aÛ,:°53ŽíµY»Ã!+ƒ5¡³*dÄœŽY¶dïÓ.ZûT“ZÊ¡¨Ï±È˜™qk¾¬§/GÐÚŸÀ©—ûR/*CïG ÷¿&’¹Ï¬îЦ6YJ{W_œHÐ6©—¶mÛ%C&vÃò ¹ðÄÑÚöÅÙ1pž °= K€Þ˜x…ϽH?ƒT„‘ +ŒèN V¹}Öê6¡Aièó+/Ã\)î0ÔÇœÖfß~¡bÊÉNUmQÉÌݵ‹vÍ$È©£®v^XòÙÜûÀÖžpÇ.)y7¦i(æ’J>PJâoŽ ÖQ':{'‡š*­´$€®á‘‚†Ä̘-êvµ0Ö]4ØþlSû©»Eðe¾Žy2޹ðå'.bÍ®_8§&dÌØ;;{ÆØÅÚ›àp·GÚ866mÓÞP»a§—/ “ ”ü95k欭ôõ1qÝÆ$/è(9kfjÉê0&gIY2/-ÿp8BA›o×îœ×n£”.èÅ.9*Ò=X¶l"O¹8€Ó+û;èA“´Ç¨¬Ï0K ¡USƒ8cn€ÍYÛ.6çtžÓ¿c'm˜±iGÓu̳ŮÑãyž}ª¹Ëmªƒ›$ ù& #kàÃQŸ9¬î„id]¥FÕ(RèýÒA¢J.ETlÐÈ)e}ª™sàlhvËË‚Æ8©÷ÆxùóòÒzfÎñ6LÌ’‚YQÓ +çûŸG;ò<]Å/—Uõ…îAÂÑÏÈï§Uzïè»ÛOÆ:D_Æ™¤MMyÈ’òvIñ^×"¢¶†p)ó*Lª‚’ù|®·<éï12ìÈ‚HÚƦïc3¤Ê ¹dÁXW¶fãžç>*\uD ÷óVõ5[脃bá\|è –»ñ)ëÆºª/Lì7' õe‚ŽÜÆåÍö£Â§„¨ i.ÊÁ¯ žS‘rÔ¸ô&vÛD*:Ÿ!½>ˆˆ\RÖD-k?'©ù4+FÏÈi™óýµ‰&LÎÑù;4VJ鱃X²kžçšŽ0ÐëÃÌŠ%<-Å'OIpyóè¨ A…ï„ì’¢'µ\Ô˜¼£zTÒ˜1£ ¦n óÅ«ÆvΦ™T¹¤.þ¼(J÷ÜÓ#3Fšg“­ü¯.®äì|Δ –¼4P¼gªÃ:šÇXõE#¡`ÆØNvºë¬Šˆ¡í¿ ©‡n±j6ôȲ¾&cÏ‚Øp CO|æjzVº¨DGvf¾\SC¾81Åb{˜Z5%„ú:{‹?OÑœôÚU-À7è„Ieø>Ïï8!–¬ ÁBWuˆÈ' ómŽFÝ1ÃéOÎg(Ë?ï›ÐÙÿÌR°{Ó Ò¤–’í”Ó²¿Ì·ˆ6´ð˜ùÞâ×S\ðskcöÓ¹Þ’wFlö‰ƒ\Ò!†æœ‡ jxΖ™Z6/ƒzO ó½œ=YOç9Ïÿí"Týw¶®ùŸézîÑ(¾òdŠIÿºÐi9lêXQ–~žîHâìÈzêî/ò9™$À¾,6‹v'è¨Ó*ö?ëÍýßfXÜ-}Mþ¢,/pN’öÔ-ü2އ|Ÿ$Uÿ=ËlØ«g¹u”‚u ­úpŠ;p8×9|8ËîL°˜k&ré´ +=©"æ¬vˆ–ì æÄÒp}ÕÊzè ÕžMPp§òØŒ9p…_W¸Ã‹ÂÂ;*\€ý™í¨Ø'jbÆË= 9kSQ·«Å¥-õcceȰI¥¿žžqÿ@Û€Ø5Ô¡×T¸ÔY^uÐÞ &ýÄ‚Í;¶Öf® ”˜ÙI÷8…~63²>þk‚U÷m ÚPä¾Z¥ÞÛR¾ß5 ã÷-ôòC[a]G.YQÃÿ÷œÐ¾™:´¢ÓÖÕ…Ÿ¥ï×€=ZT B—T˜øÓQJÕ±X²o¢méañ‹ÒòOÓ½o—eðÏ;|Δ°Ü´üdI…Ž›WÆojбòJ¿éöŒÛó]9÷çz +½æßYR`Œõ‰—— Ñ»Ãtؼ›¸©ªMXU|ÚTÖ„PñC¨8·¸Ü{¸1ý†{iGKÈý6ÑX»Úó='¸™ž{:hèþPåçc36øYùº•°5„MÙµQ¡KTÊѱü‹‹ Û1`³·4ˆèCcMì¿\øÊÍ3ê5ÎÙn"Žq8{6|ß„¯k«Â7õˆØu]M잺m@įka‹rèÇ/NjíÑ|dƒeìC“ŽÏ³ õ5Ñ{FLÚ÷ÉÆ–¯3,¶[Y´¢B&Xê)@ß"vÔÈØ=5,vO ‹[’Vø­(àá[z|Þž‰:4¡’ÿq’*¿9HÅ'ÃȤùîô—«â¼ ½Ù/ÅÙ^ÿY¢7|›¦PÖuˆwMÊ¡…Pq8‚ÈþâªÉ=›€7 Õé»tæùÌ•oÓõÌ=:uZXää„ï›Qe_œLæ× \Õö`iäÖ ÄoZ‹Ø°0Q§ÓÍÿ¸9²“™†æ]g=m×A¯Ý³ÔœŽ+ömÄÒ=+±n$Aö¦›Ø3-+†óYØÐKÈû5iɇó9:Æšø­2Ù»šòÀ-uM¸“õæT_ÒQr?阥{ƒ¤Œƒ!bö\_Å»aÉ«%iéÛUÌeŸ4ÑYá=Õ]ýñPË‚·6â¾X¼3 i‰½á`E_žhI½¿5€LÙ3Ð+74°Õ~ðÛUiÁ›Ã¡ÊðÓyîdyØœ°8pŠ_¬S¹Ï‰\vb§T®*KýÜÂä»Ë’Ìg[š’€=Cmò¡—»o„Ço¨*ö†h€†£W¯«ánq…7 ŸŽ´¦=èÌ}<#(örò!¯{`a×Ö¤ðð"ÂÙœz[‡ ¿4€ ýC ¿<Þœ~ßÞ”|mAYnæAB…°Ø[ÇZéž–½©¨_‘ä¾uq=m¬˜[£Í W'Ûóžîj‰yËòš´%àœ7«Â÷†ñë² +ÿÍþÊO«òª0#ùxÉ-‚&þ=ÖÜ|f!Bfz²_µFÝî »{h‚øÙQ©'LÁ“{>ÃaÇ\Ü6Ô£þ£c¿»ÈÕRÙÿfô£Nìµ¹ ’’÷³ü’×ërJÉž–\tbB$í–ø­I‹}\™Ý}Åï€~É9#W²²îÍIÊNäòocõ¤ƒ¡Ú”=}Uäž¶.ÏóßT#"·‡ÏŸy¬GÏÈዲ*ÿµÁšè;¹lß‚+\–Íõå{N÷æ?™âƒž}"£V5eÁkj°ïÆ`qЉ “{fÅü=†/ýï,…pbGçD^›:XÚWgcóžP°¥‚G®÷—}ÚT@|¶5Uag#ÔÊc ¡dQXplF&k–¹Ò_y ‡'.ðs|6ŠÃ—E ŸeIà™ Y¸"+ œá¼8aRìTر™¹o«ˆÞÐB݈ﮙtäÀæÚq %YédzIL9À{ÄïÓuô}¹zy "dª;ÇkGWvà`ÔNÖ3¾M“_Æ1%_fš¸‡S]†o³íšÿçf6}…g¯ª ‹ýE6µ°p€ÇHG4ì²À -<îÐŒ)>6ãÀG\Þy°[ßÖ–~ëʼ;Ú^ðhATõi[EÎZ@Å,ðËßï©)¹k +Lô†XWY黵XÐdOÙkkèÎB<èÔÄ„¯J`!tò¡¹6cK…Hùng|·•†žY«c—Uˆ°Ù¾²wgréñ0.wMô©¸ÐËÞsmýñg=âÒÉùóñ6"È"*õ“Ò®Ÿñà¿Ç° ïãèœ#keäšôvº=íö4'ãæ²<%ÂÇLv•¿Ú’£"–%Õ!+òÊè5Eu蚬Êo†~6ÙYä³)'$ÏtWû÷–}¾()½d¦e=pµe=[ƒÞìÁ6ôˆh]sÎ <æÚ—óœw9"j¼-ãÎxkÌ+#æÊ(+õÞšòñt?è>úw'ÓóË¡|Jz-ÃÄü¡%'ý9ÌLüS ú}©¯Ð{OÎØ8um &bUŽLßTã«w´¨L)ðO éõVÀÕ9^êý+*yÇ@ÌŸ R–•Ñÿb¾¸(ˆ]KUôšà[iú»…¾œÇ“ GªºJ·5דûxYœût£¿ðõHCÂ1ü •߸EíìäëËÒŠÀÃará’àyù§Eqé{·°àÕ¦<ÿÃ÷Q,à‰EÓ’2%5å꺛y2J…í[ ·´Ì×Ù–ðhC~¿3PôîÐXúÕ‰/³rÓ^Ž÷ä‡þí¤"OíÈ Ör¬5‰ËÒÌîÞ”‡›Š¼÷_Fá9öNp«(àÑ‘SþïYãßÓ”Ú}}MÌÆÀm)ž²ê÷7´•¡ŒÂ€©>w56e}úï ÷×8¾dC^âo#EßÒ"/ÛèÑ—ûÀÀ1‰Ðñ°×Œð}Šˆþ×£ñÀP›qj©ÍÚ¸t¢#ñÞ‚8ëù—,b_V"cwMLä­‰{6Ψÿ¿*þïQ|ͦº"J÷rµÆßúïbSßÑxS÷–‘Tu2‚/>@ØQ…‡Vdöwüe•µ(Ê{?ÍËyzâ ¢Ïg¦ŸŒœk\æÁ0:i®7óñ¶k¤íèQ±Ûš2¿õ¢÷#œ˜:\Äï«LÊdOµïDkÑ“‘Ðk#讫³ÔË-B.IСËbT˜•us¶·ôíº²­ª q‹ó_Lpã¯s®/JÀ/÷õð¨¯ffõ¾–”³(ªü°£Á%îh‘[ª2ŸmUÁ›=$lY +~?\ŸtÍÈÈy°k çúJ?,Š¡>«2è§meðZ?äÝboÉk·&%¦ßâWGþ1ß[¸«%eok°InIÅ'k}Ú }mèËüBÏiÂWBÎ{XóꂞXàu:Díj ANnò- +âÊ%òн)ÿÙÖ ôu´º=ˆMÞÑb’÷iàÝ|Â)oCV4D‹¸¬À\t4§Þö=`UUjkNº¶¥¬ð:yC^üv¤!þÎ,/ãÝš¼ÐoŽ_à9ÕUøé‹­½sSÕΚà"ÍU3ÝeÁ_,ˆÔãኈU%øƒ‹—ïŇG^í® +¿þ·“Å<;ϱ‚~jô¿3€~uE˜pw_wþ¾*:Ÿñâ'cSºÏé(²©­ +Uâ£/câ½~ÃÆzý"¯ûuU8“5×_ +‰~üÛT/$ä߀v?µ×¤­É³_MwÆÜ11>_– |~i‰¿½®Á¦jè9÷lœ’÷_lMôS3±hO p÷ÆßQâ|~3Юji 7–åа=CMâhkæóÓ\ñé( ÿÊüWü߃‚vµ…ãíIwU¤˜;‡ÖÚœyÉç©®´ëòŸ5iUÀª¬2po¸:~e+@$\eeûýôrÊ®¡&wN˜÷r®ürØçMyèîP%€ßðÌM]E¨µ!éÖdwºÏÿ-’Hߦpe?8ŸSèlË}joL{øu’Œ:øÌÞ ú¤£%_;§ÿ™e4ìê!ák²ô'ëý…þ+°ß¾®4úÈ\õß +ÞÔ Ž¡€ýþœV$üµØa=u5¶îj³–¤ÙOÌŒð?;‹__²4%½:uáLÐûKÉ)z¶¢ÀDY8…/íwwõèä5):r]Šø|8TÔfঢìÀ»¯'Z³ïliŸ£Ã¥l(+§x 7F›Bþ°R£Ÿ¨O½üMÄ„¸<@ˆ ÿm¬¥Ô¨Y[yçjÏz4€ºÜRâÿG+Øûg=%éÚ”úAU—õDKÏz¼ © +œh/ð41oºÚÓÙÙÙð±—zÊB/Ž4Â|ÕÌì—äˆî¾"ß-Uu쎙°;HÈÚPÁ“¶µ°%Iþs@Ë…ÎKPáJ\ú7¿"îðÒnQ‘÷b_þ› YÑûmyÉ3#öŠxé¼ßúÀÞs]¹¥°ÈÛb¨ÿ•‰†ØÛûš²Àïv\þ‰…X4'€}v4€í)¸¤92vGU¹­.þääføÅlOÁÛùž’À9^Ñëٮ̇ëÒóùi9ŸÆ8÷çz!¾ÇÊܘ÷ØHK¼ àøG Ç?­ÊªC–%•AÛ€·pñÁoyÕa×Wˆ¤M-&E†KºÁÊòþ_tQ‹¾lðaš ZRã²Zª"îR²½~üâ @öØWO¡ï5úž‰ÝBO»a¥'Þ82#²© OW{kc^m™E냄t+#å–h|rèŸö¦èË&zào›ª‚ðÏ“›zdì¡…T2×[ônŽ—ûnWà³*,Š0?ÈÙ–ñ|¦'íîÿ­‰‡vhª·Às[WõeœÃý2ÖÒüï9fÝÉ(< ð«¨ÿ‚²Ìÿp”Šý6ÓÚdÃ74Õa»zhı*q×Pxš²3€cøÿ?F;AŸŽÿx`$äœ×í± _°7ŒŒû_Ö¡º:rŽŸÿv¤%ýå9.ipI"zÁ]KÔoKG/^Ã?ueßídžÿ&A…þbaeÜœí®øè–ácÕçïaQSnœØëл@m/ kƸIOL¬Ï×­©7\ÜìÛS`ÏE9,ÌÞZðj^T약›æfÝ™áä>\ëƒzo«á‘£]™OÔ¸ßfÚ!~»ƒ”\{sÖñöü§*Jú}vIØUIMØÝ©.ȧ2BJK»§$¥?X@Åp ßq¡Á?óÊý’¡Â~Qc"~aeÞqõR“Xå1WZ ÁWw´øÒ@cl«`€÷¨ðw¶g>žîJ¿·*;«¯ +톾©ÏøÙÑRºxΉŽl¯¥>@ÿð³ÔÇÝì†|Ž|mZ~Ó ¾¬DÇÜÞ¡¢æ¸ çâÜ{*°¯»7ÁÇÅ|nkˆ¾½~ži%FeÒr}ÿ”ã"›0¥ûFtö®*b°"tKQõØ«Ggæ3'û~{uòcYm“@WÚþ3ÀS_ÌØÜ6o®·,XKŒ»¼5ˆNYSÀcÜ’wcÍù]m`/[CÆÃé®Ü—§€Ú7 3ÆÙ9µ~vd"€×eˆÈ)nîc''ù†‹ÕZüÇ'ñæàmVÔˆ˜Æ¢Ï¿¶B‚®/÷WFŸØ±9ÎÇŒ·e¿6³âŸMu>…õß3Ð*×ÔØÔbò5QmÂ=G$p¾·*`EZá;Ùñ55ƒ¼¹!—yðÐÇ#ä2·¬"HCIº!G„]™ãæ¼Ú”–~Úì/ý´®*l. ½2ØPµm£#åèH+÷‘…•ùv¬3?d^òÝV‚þGý{–„XR"Âw‡Io ¾µð_&›RŒ5¦>s²Óžîhò?þǯ^P@#ÕÌÔ»+šªÄ Cú<“åtWt`¯ŽÚДølé+BÇkÁ/°Z섊µÁòÐC+&ÿ?ótÊ7¦xk¨8`K\”¦¼šïËñ<²áJ¿Œ1j÷ ˜T€#3γXôµ ç÷hNìL䱉Thë„åþrß™Þ"¯qåûu9*zÇÈ„.ªñ ˪š°éžÒw\°çм øúõAxØ/ÿɪ°Ô÷«“Ýyî­—D0kSÒmkSôí1ÔwWƒIùb¡×,kÑ©†æŒ»sâšØ5!Õ\—um}isµxI‰ øÙL»¶"¨ßÓSó‡èi·ÎçmëÉ !*dð€ï 낼ï(~º*CG­Dç ‚mm˜ÈáÆ +'·ôÝ‚ê½1€ˆ˜—G:ÊßMõV}>µ617tˆ¨ ,tWM…ì СËÂ*ßÈs–Ÿó|ªðýÜ*ÿ--µbJŒHlöEõûm¡ä9ÝUðr¤üf^X:?€ŒR¬ˆ¿µ§G¥Œ6Ç_u¶F_™ã¥Ýs5‡ß\¥½ÞQ•ÅŸÐÐvA¥+4òŠ‘™ÿégs×þ0õŽŠsmª'çÕÞù½:ÁÑ y6ÑSþqS‡L]ç{MsSîMr²îÏñò­+Ë?Ù½o#A]¼¢»FtÚÙyNºƒQ»£ƒGmÊrßL·G<›îH~±­EÆnðÙÃuÅäÈŒ+KXüߌº³ +l[S3ÆŽyáhËôsñ‹ßÍÊÊ#Fid·ª®j¢»ôÝž‘õ× õ7…òŸ2ñ¯LÕ¾žå¤<팺±ª††›3íéï÷FjKGñµ§c𪦠µ_]µ5€¢œ'‡#ˆ”•þÊÀU2d[‹M:¶Sʶ1qû†Ú¤-5€qò2Ÿc#2þÔŒÏÛÖ‘s–äØÈc3¶:€Žžl/z2ÛSì¹ ¿áDßt°¢níHaaÇÃôªéÎÒ7î¨Ï™™V¾o@%l)á!›*DøX[æÓ¥RŸy1Øk]U³m¢Alìü»VVö}·ðõ’¨ìㆾ¯$äìªé®Î¼×Nnî“#&s×€ËX€^VT‡Œñ ïm­ÅogºË?~±1áËjRöTÂwMÞX6?@Ïr÷#ƒÝ’2ŸñÖÌûnaÑ›M€Ÿv´èØ;±hMQúiMVv`hÄÍöâÒ§¸Ð–úÌ{jBØ5#5úꉉ…Ú67b¦$Ø8#÷掓xèÒc;.ok¨2ÔÚ˜û`˜zh®Ï{°:ˆJÜ0"ãV•7c ¾7±¾ÚhÕ.èƒvušpkNy¿7Lkb};Ÿé)-÷YWãsŽ­-õûFt¶hi-ÿ o)õêA¥ýaæ@-Œ­* +^-ɲ^º¥ùþÀù¯KJ>è*#gD…¾ZÚ- П€®-9µ¢³©OÇ‚ïͶ'öª¾>×ïÈB†žÙks÷ ð˜QnêCYmÀŸƒ”„ûææìg6䃡¹øUaÔóK”¯/VXò\WÖ³IöÿjûÁXSúÝéž‚—»¦Ú\ #Ó3Íû¦9åÝÛZ|Ù±\µ>Pè;ÇO}6Ñ–rs²³àɼ¸â㜼æs':òf[™ïåm "îPOÌ>BÄn©KÃÄyþ›ª¢À#seø‘™êè. ¶ðÞ¶tj­N81W¥¯-û6Iª^U¡ãm-…^*|ÚÕ--¡dMW›°¤® {+‘¤ø˜ç[úê”/¸Ú/Nkv qÀ’\âÒÀ²˜7¿ÓÀ/¿Ï7 OÃþk¬*ëÈ + ŸçxNôe¿žt¤Ž Ôå‡M.q˜ ÚµP n)<`[‡ˆÛV–œ`QÛšŠÐ©žÔ'³}™ž³½…/ö‡‰ùëƒØÔ9~…÷ª´æ3P€E'Q‰;Ö¸ºò¼ô¤˜KóÝoŽ&掻©¬ù¼­BÅ8[Á¯·Ô蔽a\Þ®˜s>CÇÙz¸"CÅíé) ÂÒ÷3ùOÇšoSÃ/ *~53Rîïéð¹+rlâloÕû³q:êp„P¸o®ÍÚÑWE™`‰€·ŒÞT"Ãw4Lˆ“ YêGÅ|¡V™ÑißÇñ/#¤² Uuè²üjc Ä{GƒŒ[SáSøÈÄkç3B7qÉë•~ëý·§jÅ ½G» +ž+ÐÑ¿› [C˜Œeà6ôˆø9Qyè·ôÃtW©ïùüûGrá îv $È‘ƒ‰;Ï“ã•GÊ)Yþ㥠ÿÌШÿ™¥’¿Žâjö‡à Ò2ŸU¹tFN©™"cìÒ7*búóÜ£ äí™^àoÜŠ¢Ü÷ÔAEœM4ÐϳŠfà×zzÜ5Æï·þìw¹9ÿš'c&E^÷>2R¡ßÆXôo“u´ï“8È¥"z¹?ïÍ’ ÀëÌNCî «´ôÔ'›jTÂÎ0¾tLjÉ;´€½¬‰µµ¥x›š#_8y ÎF ÓDÎlOŽ×’¨4þÄJ‚š)åûjÙÞ(n”|膅_ÖÓ2oh)ù‹ýÕ£­ÙO†ë“ÎtƒÞz2ûØJ,ÜÔ¡“õMM­Ù¾û&JÉ’²$,z1ÊI{¤!„ÝžlOõü6Š}&×NˆÊµôì'[:LÎŽ©&nU _å~!d¦¯øµ©1ùþ8/?ð0%|BÒ³~Fö‡E ©pßZW³g æ-ô•úip1÷”ذ[ûfDÊÑ¡äÔIªÜ²£2¶GЙ_¦ˆ¨C®òË8 pi[Z>+A„Ù{j‚Vôµ…ßf(¸eYQÐloʽ£Qlù“Á8ša±·Ç(¨=¹`Gwî]ª"Lð$€÷’gz+ß/ÉËý'»2îo)J}—úË>Ú›â®9¹I·–%%>'vZõþ­z]‡KÚ3RŠ%•>›€ÿ^(ôm»n®ÿÓÌLôUyô×ñæÆyÞ˜Ÿq¨'dnJj‚ö5ØÌ+¹lS‹N˜ì†¼šhË{¸¡Â¦-H‘qöæìÛs¼â·@}œí(ñ›h)ù°,¨ð;ÐãsÖäðˆ%aÙ»³qJõÖPuØö ôÓº¢ôã. 5O,¨Ô3 ¼o €M-àc­ ÇF|Þ¾}æ4ËÿæÚV¯Êˇ1™;ZdÌ€çZòÕc ±ô<ßÝÔ˜}¢=çþºª2`Yõ™â¾åd¿8µ‹WTè¸E2ò<óІË[W×+©ø´¯C§)…›j:hSKO‰«ƒ§ûàÁ{&vý¾™Ótæh¤ÿkÁ8Af¬Ë!Ýð«u-:kFK… +™oå”̇ûtSY›¼­€Çì"âÖ•Õ‘«ªÊÀ <âØQ‡™‘¢ÒÆ;Êü§{«#Æ:K#Ý}E‘_l•©ÿÌ¡ŠÏœH°£+÷ÑLOIð‰•EÛ2Ð`»VlÞ×)|ùŽ©2vuä{8T‘òõüÈAtV/"æêŽWô÷BSçÉ8~dÅç-Ê¡AƒôÏwµ4ÿûëÙïÿ¿%*å/ ¾«‡E|§“ŽGɈÓqb×B*XÂ$ºÕUA3}à—ç³°•Ø„q^õ‡e´1Ȩ<¦”šÉ«ŠŠÀYaÉ v>œØ Å{fz•££ôÝ7ÿñá0"ði»*hð¿œ8èÁ8%—<É “3Õ ~åî/ øÛÝ,ø2ÓØ±7BF.¨*?/(aÁËòâw“] ×WÅ©VÄùÏÖ„”m}]åÒ){MCHÝj[Q²§ƒEœZjâ¿ 2Î{jC Ú³Õ£§ø¥^³ü¼‡óâœÇ³‚ÏXĉ›óÍŽ/<†dÓ@Éß32Êï:ÆI»aoLº¾Ô~¿®©X•{^'vYŽO¶´‚=­MÙ·÷õ4ОVt ¥×¥È~UðØûÊ!êúšòæÈF«œ”¾í,xttþ\ä×1tö‘¹&aA +y×`¿†šýl–_í;Dϸ¹k@$ž9ÈÐS¹øÔ‚ÍÞ¬ +[–¿uufÜ´×Gý¾gD¦˜”cn-5%€oaRLµi§6Rñ¶ö|þøPGŸ6uµ™ß§wŒ€v¬Y“W¬Ëª>™y_mL侉vðÀOçdÕ¡G£ÒCoàÔÑDý6pÁ*ýĈH<1Öfܰ:L„Œ‰+‚gûá‰_ÇêÉ›*hÀº¼èݪ$ÿù<¿ÀëÐè6 u2ÆÄ[K_Œ´Uï 5’YñÍA.9²Â$9/Vä ·Æš”ïcTâW@ÓOK`A›Cµ)ÿšcÒ¿:‰Õ§6Xâ¶¶0h¢;ù¹½=ñ¾³;ÿé¿æ™M›¦ÚB»àùL_Mð©ƒI:!aNF°ý¡š¸uE¡ß®*r_Šßw4ÐÔ ™Ï ÍÙfJÅ‘ZqlþLk¾MÒˆkZTÜ´¸Â÷W&[sž/õ½ß1ÂO'ÈȳɆ†e V\¢Úðó~?£Âö̈„MmЗoWÕˆøM ­|×ÚHXT‘ó”4Ð['2Э®‡¬ â¾zxG˜¼_×UDìÚig³õm'SŒ:¯È×Ò öÖµîdœDú>KeZ¬éÀÌ—½uË o÷èþhuQ‰ˆØB'í8pEgÓ4⊳ԎØTc€ž:(ÐG©GÀçùÎkʪ€µ(À…oµ ·Çhà¡h¦WljðÉ{f|þ±‹Û±¡Óv Õáë WK´k²Ò‡ú†ê#S+sSˀΈ0±‹ +lÚ†•´¦©v ¡ï„E¯lMéw¬¬Äë;€®;s0Q+*LêdO©×h+è ]¹íj+|¿£BÆZYy Ä´«îîâ·9ê©ÛFXÒ¬(ÃsM ý¼,/û°Ú_ê– ã¦„•ìô‡V\éÙƒ° *ñíJ¹9Þšvw]Yæ»§¯ +9¶ R-Ä¢u=!{YCHÞ06À·-”âõAhÀ¼¸ÀÓP}¸1î‰[Z¶oÄ—Ÿ¬£n`±;@-m¢ãlÙwm¬è++RÐë5e¹ßôúØŽÎýâ$£,¤²C £òd”†X¾s4%ßp4dܶ³âoÌv&=>3U'ÚêÓx¥9óp~‡QÉ[ +hÀÎ`EØšòqMQñig¨6qÛH+¶vU·•Gþ¾£G§üôÏyž#p Ñ;Úš´q®—[œöpC]ð×4“zè‹M‰ï–¹©ƒF-Éó}wô•qßtæ¿–˜›fD¦ z²®¬M;°Ê¿Z²?‚-X„Eï¡ÒÏçì§â·ŒÌ9÷±©qd¦!–d•A“]Ùæ„à×kˆÏ¾¥<üï*à¥Þ¯SœåÁÚį³ÍëZ'aºóPy–3%¨þÂ+'µýâ?̬ +ûâ66Ë«ÄÖîª(-A£€‘°õÝI/ß{1ñ¨ á|%a¹ûã¯Ï¼)z ~¹2$ÃÜÌ£ó=“è[€ÏÞrOtŸ÷Í+š^ÚÎ á–czJ~¿âSeÿÍ?l½è9™x°gfaƒ€„5¼O>ÀrÍòÚÔ›Ž¯üw•$ÿO®÷ˆ›>åƒ{é]êúL?r{Zк=Æ©_‡Ë[5Ø5ÜsÖ3Õ“ëœÂUnLôBV'îáÖ§ï·§ø­[ïÉ77G‰7MOÛ³ÏhÚz=»ó~Þ5‚¸°öu{šßí• QžB¡éqϹ7ÔÛŸSrÿ²ùºö‡¸Þí|È9˨ö/ ¾%V÷Êp×÷[Ýg“g—_ÔwOu^Žë]Ù5ÔBPÇÛЇ|KbÐ>7c&Z§OFªZ{ =³ü²3×3GiÞœdשï!¿Û™aÖ‡U„g[àžA^ÕÝ«úÔ|¯ü ×hו€‚wŒ²ªTwÛN;~B–EBœkž£•C]ý—iFÁ¿ØžuþàS 0ú×ø¼aVåŸÔ»NårL' $Œ|rPNn^…ÝÜÚÒ©`¶{Õ÷†L¯1·ªUêÇÔÆŒ,ˆCøŽZ£ª·Æ»ÏgjYHåãúTwk¿t¾‡æºÆ¡·ü øú„A@O˜EÀ=ª”÷Ûyç™®I|•áaÍ1÷X×¥ ÀÎŒÝQs1 ³äNÔÚw}Ž×¾2%èXŸtêŸAN­¿ƒ^÷Γۃ@KïH %Q=¿ïÜË®¥R3` ~ù^¥{sVê“a‹}rJ‹_ÍE®Œa CjrkÊÆc„TŒî˜šLê9X0WÀS×4¾cs‚Ön};ïx9×Ѻþ¾5ô>mgcFz÷þ*·gcc*àÚ˜{_¥}Òñ}q=¤gcÃf. ¡4‡MT¸_MlÙ½I‡H3±IA ²>޼Ò1zöuLìÏ+w^ÄŒƒƒ>åË=G«pOÁs¬?5}õ†|ñ·oˆßÿvQp嬿m?× ©ž9FÍÆ8ùöö©hw +~Ù?Ñsng¬ý¬ýÇ¢ÏÔwó~7ð;Ù>»oYE+o)·/ºÎ„§!×ÿa$µÿâ`3=—eë¾1=ï:ïïÃ9§ÄÝ€¿V8Ç‘—–úËþl~Úv*0‡˜zgFÛA_ßÁ]õ̳;| +1acŠQ®jÿV%ªþxgy1$¥TFÕÙu‘‰U»³Ø›»ó"„å-õ–ã56gýUÇw® ø¥‚´‘€ÑJXîyZíöDÏYÿ®,¤áãvç)U«o꯾.ÿ›WÚ‘ãY ×Õ÷ÆtOÇ|KBìÎ*/½ÌÂÇ-lŒg‘\±>†ÊÛž&•.®-nì.°Z‚*.Ò=C*Ž(¹Xï©Ì3¿ +rïýýÂãžéö³!9¹2¢”püÊ!ɧøÊ¡æs›Ã¤ÆÀ¹%¥!¶ÅÕäf ›*,Ï»¿ßš¤·ú-ƧÀÇþ†¿,ôu|'l>³jq\Æì «èŽ÷˜«š!§—‡ñ ÞÂ:>>aæ#|åî,®¶Ððcõ'¦Ç¥ŸdŸûŽ›%bŸ¼—äžÃïLw]Ž+°U)=Ñ0¡a%½Ýú¼ýä÷æÇQ-±Õ¯¡·ºæ‰EþEbU`‘TU1»â.Á»D,sK …î9fsX=Ô¿9޾¼1ÜujARùÝ[ÜÕÏRh黟Ћy`lÛíÃèk>9Ÿì— °îiôµµ7U_¿§žûÓ8ýÊ'ž)4ÐxwìoéÚGðï´Çw–øHÇ»îS@ãZ]ûÕÚËʯ‹˜Š¸žKN™¸fHëØ[ «¸/½Ü;Õ2:¢*|•k¢õìê›òO½ Ä2pN¯NÚžnH‰µÖ·gÌÏ›Ž;^vœ k¨ÙkÄN¹ã˜àÔZ‡ùM[sýÔÕ J›üqËUÃ3HŽùÇ–ÜS°›9¶ú—uá@àóÖ’í\âuÅLýƒA5âWRê·¦‘W7'`ƒj[Æ!Øx¹9KkP=†ŸØšáöd–%wþ¾%~¸o¡!‚³W6_þE+)ûÚþQ¼£îïS¿"È[þ¶·,’ü›»ÿ;ƒ'>0ÓYO¥w²áüÆxÓ÷!—•í¿½<Ž«î¯ødoSòìÃæÐøžƒÓ”!Ë6ÞANÕxPÉGxyÝžyfãú{ÒmÇ0­`%»¶óˆ¨Ñ=׋({‰^%·ÇñyÁöäøÆ(ñÆŽ”Ó¼>Jºm{Ž»ìãV²! jT£è,×8ñ¦o–ÓèšÂçoŽB²<êüît×)¿ ™Ödç‘Ó”²»·Fáùko[N{fÐ…A·gå â¬kšpÛ ðØü rÑýu{_ÇÅgLB–WNkr¼EçlM’n-wý`zXõ±“˜ÅÅdÔÆ”VHˆƒ9öÏ’+‚RjmÆ, {æQ×=³€OÈзBjbµ_AjL˜Ø 1‚*6dw‘ÓÖô‡ôý}!…Õ°aÎYÈyÏ<ìªkž´qMÊÂÁí.Qk#jzÛ¾…ÆWœGå»&:χ–@{Ó!1¥˜ÕŽéEŒÝEr9ÈŶÀ­qgyÃ; +9V#ª9i}Þzrðv·Œ 3Žç™%Ö†ä VL ä¾Ï‰hÇ0¤Ø=Ýy1¤&5&mý÷Æþ˜^̉ë³~Û5ÕzæÀÎ"Ät,|@΄íÊØkSô&¿fèήbP9£Õ=ƒ*ôHQQ³Ô fXMmõJñÅQUö½¶>qHA¨tNv_2?-ý«õE牒GÌ,< +ÛD¼É;MŸ)úN!"„"zD j³’ßQònéÑ=|j½Ç½»+;ó[ó;jànLpjÊDƒíε]kÈÍþl®*û=ò»wVF×·f¨UQ£€5²PIŸ•°q™aé‘QëÀ˜ôxµýwü:17 Ä—û¤¨|ŸžÓ +“ v†ÍýC>Ý`ÿʧy{šÖøËfÿ‹´ÃÚ|9㆜³>­¿°5Úpóçõßvz_dVù\ç®Ö> +) +ë¹ÓOÝïÛwé©HZH=`L>¹áœã¶ßW¶üuÁ9Ïnv- +ºw–Ĩ VLõ©DxœÝœ&ÜZº¸ âxý=îÆÖ$­t}„[é“JÐq}/Ôaþ®œ\pù¦s’\èžâ5¹gù­Î)F…kŠTàž@^ŒèÈõ5µag›¿ñzF&*ûÃ’ðÖ?­¿nû! bÔ9É¬ÌÆVHÅíÉæLBGoKjˆuþÔ­õQع嗨3›ãD ÓQ9[cðK ^$V&”¤:ÿ¼`ãMõI÷ûŽSž)ÄÕ˜÷.Kw¥ø¢ŠÙÓ3º²ñ¾gçÒãFb»szp­š˜íî¿yðáÖ4½:aä‘üJtAÜ€¯þà`¢÷mLdHIjðÌ!ó’:Rc\OÜv)´ˆÈóÍA¯¥5lÄ?l÷>˜†ŵàrÕ»J>f[&ĬŽ®»'`—¶GºÏƒ<É.“š>fT%ÀZÙæ–RÊ’&1'˜½39¿òºþëå7-§fD·þhò ~¹2Ël´¿£G4ƒý c_\Km Ê1E+Ãm§—‹þâ™m¿”0ÑzÒËbqH/ Fô|ZÚþë;·¾EÔÀºp{¼óüæûž‹a-Ÿ”´÷?ˆèE,ï§#{?8mÒ¢ +fgXFª,áJÓWWGZÏdïsX$)‹Xôrãî<¹ec zk}¤ûž…CNÙ¹Œ-¹V÷ž³6ËFøôýýAS/?r$lsc¶¾äŠ@¸«±M¬Õ+ÜÅÙ!ØÕ€vð^ÜÚ?Éö²’ÓZ¶&ºn¦ÌLžCØ›´?œñ*„Ô•·Ý?¬"®$½vÔ– šÚT“ë½rJ}äI*{cåÁÔÖ"¾»ˆ+L™ˆ´KNÚYØà[‹€4p1@ÓÀcò`]ØçZÀ×iu~í[à@€ffí¯ñ%ßdñ#:B‡O겉Üòa/R<”°êÏüVý´¥üçí¾ÿç.‹”Sêž ª~Ž_!xÃê ¨³= Ø1“ˆ3 i»rdg‘ÛîYäunO±ëVG)%[SäòfÓÊñúÊ»î3Î èÕìµ¼€ZD(y0ß¿Ç/ï#”°¿Ä*»%{ÿ5ªå"<‹œŽ Ì5û‹îoŒ:¿±<žpŽ‘²|« ð¨æ(ÐÎq“ˆ1ˆÙ a5¾Ì¿ˆ¸ˆºæ1è[d5û嬶˜€ÁÖg•Ÿl Wá|_ó…k¼îÿ<¶È·Àhò)¸ÝÞfcPÍÇxA®ŽÖwN6~^öH¡—½RLAL# '—Ÿf×]Ÿ¡–ÆŒ|’srÕ9Ûr"¨€ƒÃÜÚø3Õq2¡§wm̲šV&Ð׎wÄ4äÆÐôfƈ®‰(Ñ%c]g×A<†€~ήi>ÙÛù…{šZɾ׷»Y„Ý:óæÚ0>×9E- ÈDø„q`p{šX ´ö™ œõ˘`NgÆÍƒ÷v•}´©žíì–òa F—‚œ­ +* uQ ñË*—µ¿Â"ÕØš‰® ÎLaÊ&é[x”°šÖQ2ºBrBuHAmi{Ùûv>äX¥ý§¦o¯»Ï¸æÈÐûðkÿ:B+ø<$C•GT¸Æà<®2¥etí›´¸Ž‹ó+(Ñìû[Š>úöü"à 7½rL‰ÏÀÆ&l"ÉÁúૃMÑ]ç"¶Ú¯e¡²½vU ¸_ƒ­\›]Z›A^Ý<=aøµoÔ=Wܨ1ûnÓ÷QûÀã½>7ªÂÕ@‡/+wpEI»·Þ÷Xþ°ãÛ ŠÚõó¦ o ð­5¾ båÒœ +vÏòµhWF®ÿûöàÛŸ7ûŠX°ˆž‡Ë¬ñyÛ¢¡Ìš€Ÿ´Òa;rLáÆ öö®‚JYïØ€¦6S¡k¯›¾“Tüeí=¦¯]äœî8Qj¢z6Ì'ãuïJµÎYdžõe×£í'b}ÆJjÝ·;F\ˇ%måà€ÆD‡äÜnÿµÞ=G,õ.qÚ½‹¬pü‡þUŸÈY­+/ÛÏzf…Q£3bd#úAÉîÒã{®ù~ ‰ç[ÀÜŒòÍwØ«úGõß9^¶~Xd4^j«i{žÓ¬Ž>§yØñ5ø]ßGe”Zÿ"¥es +_âüÆ#ë#mؽ!eÕoI…Pǘ½6.@€±JëÜš@Wí.1:|j!6j‘ô9X-+¸ë[RJ…ç×g·Èe%¹&®!7ÞÓ\¢7¬Å†Õ"²[ +ôð­~s sÅ›½¶@(ލYYjÍÖ8îzDÁ…ÄÕ\Ð×W^5}·ñ¦óœoz)¬Dݸ ›ÙhPGšã&>!af£€†ºí[躞ÐÒ:‚KÌVç.?£ã‘ÖÌ êú8ìüÎ<®*¤æá¦~IÊÞwÇ'£´(‡*)î”} r³+(–ßAOoOJ³}„w¥ÌÖÀñ¸AÈ\~È‘÷×1øùñêKH ˜›&ëËÆ¿º¦ùq5žÔññi3wààsV¢%zóê0©0öëõ1Æ9…Í d¯÷«hÝ!%³gáóA »Ôs»JZkÄ2ø,i¸ŸÒ±`q5¡*¢DlôäìÎÒ[ãz‰8ixà^5QÇÆ&mB€ƒ=·ÃjH^D)‹ð5žØ­9bGÌ:ø#à]wb66&ã¸ó2®åá|sØ +ÇOgV_ÖŸ!ÿãýÎ/c~Qqî—øaÄÊ£€9³&JÙyŒÌЍ/içrv—0M¦çM?˜ž¶|½3G(Ï8œ…¡ªo7&{Šf:ìƒCþÅJƒG—=öŸ:ÊßÑog×|ùßâ>&®£¶%Ô¶ˆ[²5ÑzÜ»ˆ¼Ñ.aä £øßÕ2Ú½räm´ûÚ¾™Ö“2e{À“ËÀü—=[çž%TúæÉ56*ªAù–ÚÏî.tžß5ìà +žXQ +ÐÞEB©{y= `ux@˜#VĀθ +÷/2êmÏ;ÏîL¡ +bzJKÚF‡†u,$àyêS‹‰¹ëždUm¾ÅçÉûË>u޵œ .âÊ=3Äò]9·ksI[™vmMq;ÃrÄ3‹½eÙubuzü.x@+$m/P+·X^Ù]0ï¯&½Šûý!m/Í5ƒÈ3>iøÒ+%ׯtBRÊ.ä¹²ý‰˜Í>]Ÿ dèåfß+vM£o¬¿m=tÆ™œÓ bŽÃ=Ǩ )DDï½.ª 5qeÛ#°¼Í䥭1LnHÆéŒ©D÷±ÈñSljõwç +liD‰) +Ê‘¥žùîÛ®Y|‘OÕÏ éz]s˜ÇëºoüóÄrÿ<£qw +wû3‡üaíΛ€OÝ–R+C‰0hº2 = {¹îy|©éYýiûë–[Q5—èž!L?bÏn3k½ "”w[Ó`ê} è"ûóÎo¥¼Š?Sò?¶>븺=M)]ªûðರšu endstream endobj 59 0 obj <>stream +ŽÁòüRlYH¯ hˆõ^%­!¨êeGL‰sŽRåœÁ¤–E½I›H5ðha QCJjCLÏA'÷'SöGûö¾¡}›€¿gå3"J.*¦åaã`^ƒ +lÍÚpç ¿šÚ‘°ñèNiç• +UÔÐ @;¢F±0lz<³Ý [ØÔ‘ؘ¶Iî—h ŽÍ“²òþIÛ_òÍÒS+oê öTÊß]’Ÿ³ü6|o½ÿǰ‰KpKIÕëï¡WM/¾]ï. Èñõ€‡¶$Œ,øl_é玑Î[™e)m vƚϪÄ%Ÿ>ê¼ôOÂÆKÝ…_;°XPSêÃ2à.¸Â˜† ´< ¶5¹ážÃÜÜ%èui ü³ƒCù°ÌD'ŒÔÖ€Œ\Xd6$´xJ'À‡eÌÖ„–‰(éí1-–4°1!£5¢evúäT0G¬¦¨šåWr:W&1×µOÛ¾õ/«ÓFÆ09¡ée$ô| =‰µª ¤FÝÎjPOk¢:&Ä«dÍB¯ ++xð€ŒÑQâË-OëY6ôNGP ´‡B„ ¨úèa•˜Vó)!5àÍF:,ªÇVï.@s=@ËÆ,ÔžeèqDïÉΜê +p÷ÿ"êöúHã¹å—%Çü`¾A=é;ô¨¹Èl}Z ç›e´f)ÕþYôíÝ98ÐIØÂ¨RD +«‡î¸§(e®1ôÃú/m¿ü¾$¦¢6EDUÙâwø¤¼î¸VH‰©Y;Ó°kÖgeŸYž–~VP!Iëг„¥WT3:ür.&¢ëãÞKOè(MÁùžk5¹Ñr0¬ãáÓ+w‡^ß÷ëûx!ãà`PÆ–ÈÕE0~*z§{šV½ùžVX¢œSÌÚÕwM_:'Ú¾ßz¸°=F+sMpZƒó¬î°ŒÛ𢔨^!sÂ*Äv{’ãšÀÝô+¨13–^áóæ;Ãú>þà“@w1’÷&NÇ»æˆÅ»2liÚD|XæqöAÞ¤¬’¸NLß·>=ãÑpP N¶”¿Þ{É÷ƒíýrjgÊÚÛŸvôÝI-séå§q‹ˆ3qp)+›3² 1Pcƒz\åÎbÏňÏ4á¶k·3Kn‹ª9䟗Åwÿm“ÉN‘µ®YRc˜tsù-ùVHw÷¹WˆnVPÐ{26®ä—U7¸HoöLý+ÅäoMÁrÂZW–?†TÙëwg×ÞCo8ư‹LTØ(îKƒXhñå!5¡läÀ¾EÌ=°Š¸)ïœÃ®t}¿ñ¶õÛÝ÷=—â +tõ¾=pˆø+"AÒÊF× H!9Áyäµ s3¦¢5&ulxÄsLËꊓ¶ð)i‹€Ó1:‚JLq@Åló+Dè ªŸí] †•|D\ÇÃf䌦ˆšÑ×±aI£€ùn|Qýõ,ûÂ?û‹ÿ%ª%Œg@Â*Ư`uï.°šwgx;“¤û“š¯œà\½“˜¼È"½>tjÊÀ¡$­FÌÂÁ|j ©hÍQ#®Æ¯h½ä_l<ášl;Z iì%ô÷_ìÊ(MÖ× [yWrw’Ÿ2Rº€žlµµØ>†¾´=G«Z­?¨àô˜Ÿwü°ü¼öÛ„šP›1²Q¥Û9(u¼c6N¸µ+ë#ä¼ç4®hq ü“~Ñ?ïN‘‹@Äd nM#ÅÜNy¸¸ŽÈÉõ[ïëOm×}ãƒ\LXÈ„éÞ‹¨~@Tqá€eþ¥ìö ®t¤®À|gaDŽZ‰Þ°)¥ÕDM}½>s+ø¼%IÛ·ö'í‹)à×S&bÓžÏiøyzM@!ÆûdƒL¿r€µ=½ezR÷¹ñaÝ'ÆGuŸ‚\nM[úâf!;½,ä&-w¸}°·Îc¦t¸kŠ\Pð‘1£D”ÌÆ³]t' df×Dƒ¦W†ÞfVă+†[ +/³¥á,’ÜKE÷¢:Õ¯è£Du~Lß+Î, Å¿lõ>y€ +, ©˜]«Ba̵”ÀU«ƒrrCÚÊD,³H+¥'ª&4l¾ï>¹+Eßþ°*¾TRZVFÚŽ¯¾­ÿ~{zøHú³7izÑ y@,…lîÞÖà¯Äì{'ã´šOŒ÷àçâ W“:JgTK'Æ TÄö4òŠOIok™Ýø û‹º¯t +>Û´$ ¸Ê¸Sõ4cäâö-½‚ŒE"¨™íÖ·ßiTüI5póŸ?–~`ã>¬ˆD«"aÒÌBdß_Ž+q¹&°Ð}Ñ9Þqnû=ä¼w_ÑЛ?8øì+B~ÚÌÃGuÙ÷:/x—HåAÀÍÓf;e±ÒfŸ@Û\%À|—ˆQ%±&¬ 4ûäŒæõItÁòÛΫ;袔‰Öíší¼ìx×ü½3Ûë{ž×å“õÓܳŒúÕ—ðáYbyh–Pºñºõ¬Œùã7õÇ“F.>i“ FÍwîù5bŠk [´1ÕvÑ¿ˆ®öÍ!ò¼sðë»óˆâíTñ®BDð«{YqS//m²²Ï0®¾íÎÙCîîQAŽëÝó˜|ï­.¥gBSzJ« uËúcå§ÖgÕ_{¥ÐëQ5¥1 â<‹œÖ­Iz¹ý 1ßürÜ3ŽÍ·>iø^%)ÿZ?Tþqpî´‘‹ ª˜­ŽÑî³Öç5Ç£ +XIÚ„«ó.âªvçIõA³#$ãBê»wÂ.Ò3‡Ì·<©þ«”såw;£—³ëEõLXPMíú±Â=ÃjpŽ ÚW"äúæz.Ä ðÛ1=¾:aä“b{Ò¶¾^ "&!ݵÈmŒ’*œãØž9xöz_öšU©W…+Ϭp™åþûq3Ÿ51z>-¬æ!ý2F›ožTë™Ãú•èÒ¤…MØ[xžZ}0ã”ÑýJJcLÏD%ôL¸g +Uh~Ö|Qû¨æÌö4¦: ¼wÇ+àš_aJ–Gz®}Ø|Òq1Ù>²{z KôˆzÀíšcF1aú1e‘ •ø*Ï<4×=ÛsÉ3Ï©àù;±}ÛU@s]RèeÀå{«ƒ/²k̤ Ùû„Æ ‚X»·Ì@ï¯ñ™õþg>#»½Ài|¦5¦ 7g{n˜î}º(¾ù'ÇÛÆ;K8ÀsY›„Rí½æÏWßBnx¤ðÚ}³‘6SÚ‚2ÀAf 9q-«;­ÑÒ&‰( etZ‡Q—Œ/áçÍ/ZO‚ùÌÿeIØ_f¢öìl\LÇìÞ3ݹ›T‹©q%µÞ3ÕqzíUÛq×0üRhPSb‹÷Œôî´…ƒK8Ȥ‰GLÎVá+¼‹°Ûqª*e¢´ƒœ%רy¨Ýy oG`g]£]'¶FºN€¸,Ú¥-¦ç¢¢:,{ÿÑ#Eƒù¼ ´b³kðâ9Z­GÊn‹Èû¨ÙwÞ¬O;¾•÷Výyš|éwžñîk†î/K†ÂúÁþÕiv“{‘ÝÖi1ÀOépMuŸßžj?ë’ÂnÆÌwE̓÷}j6*ªç“< |øÎ £.¦â¡"JjÓÎlÏ…Ýyø¿[œ¹UÑ[C2l [²=¿S’›³×y \¨žEV£{ŽÛ²=ÍiØx‡¹h} ùÛ¯ä÷sìÂ×^´œJé u3P+]RìM0]¦Â·¹²:ÜuÒ9†¸]¤5¤€Þ‰ëü*>zckõ"ws¸çF\†/O¨IõÀ[¶§³Ïú¢oD,ˆ{‚Ù¨½ÛóWŠ.º›Yf`ö¬ |H‰,õËðµ1=6ð0ã½g»Kb’í æÚú{ø%÷T÷嘞М¶ÑPi; 5P{¶¦nÍÀ¯Ç-¶OÍìÞžF\öÌ"¯‡—5I òË&‡ûaßÐ1)N%©&»î#È÷=kï çMO›Ï®wÜŒ*oR yëãèBý‹ökSèŠý‡²°VHß|¾µù¦í¤o¶í4ÐL• 3‡p°Ñÿ,iá±7§z.¸ç±!-›’03ÑÞ%èu¯ +´=®Ò-ƒ^ÞY@ÜÜsÅ@ ÃzVOÌÀÄî9xâ´•MJ¨q Q-®>d`"½Fʧã"}rZãî æúÚ«–ãæ‡Õ?ØÞt–{€žh¨ÙgP ö7Ø<Žîo:}oµw0¥çã’Zz{d_²g` >ØøŒŒ OY0¯’\ãSˆ°» }8POA\Áó–žü´_¿o§Á2.qÏ80‘Ñ["rrMLÎlOÈøˆð<±zýuÝwÉ…?¬>©<VªR.aÏÖ'IèYЭ™î ¶×åŸøçZÏ$4¸Ò=#’1ópa5»+}?äIœOpqÍ3br_à] W”ŒÖ„QÌ™™Ðs‘A9¥võ-ôŒoPš4p±Iƒ€¤Üñµnuzã5·>0Ë|•Xïœh8ã™éÈõ. îyn{L#áÆ´¢­F-ଌÏË,s™éeð2f@Ç€.Âs¼Ó¼îµQn»¼¯ù¯[oQ7Yާ 7¦Í,L¶>¦Ì<’{Šï_ ' T\ËEfµºwyÍ5Þuh”¢(à7@‘}rv{ŠQéxë]å´™ÝÁt¡æîO¶ß7œØ™†æ„ÔÔ¶°¶—»3M,ñK1%Sp‘ë¯×§8E_Í‹J¾Y!ÞØ>ìª90×®Àü¸ñ›ˆ_‘2RÛ3Vt߯@íÎA Œê¿YyÎEܸMÀŒ[èˆ +WÆ4/²„Í®ãýêdÊÔ?èYd¶®¾'Ü”¡ ¢jXo±óšê^þ§Îéî+%©)¨¡tîÅ÷©(õ^®8¢§4ÇuŒN K;¢zP§tÐüÝEèõ„™MØ_z êp¯OFªÜ³òè\FL…o°=j9¹ù¢öØÊ˪¯ü2TéÏë½>lHž†Tlˆ{†T æ±1­§wŵônߢÂ9Ý’ëžAåû•¤†”M,Ù[x¼ÇÆÍ¯À×¥,L”pÒÀ\÷¥¤žÔ3³‘ ·òhI0§a-£'¨$4dVØ\ÀEû+ø¾Üá•“«6&ˆù¾%VWTÇ%í9ž¦ì|–`úÎ<¡È»D©u·p)¶È¥¨‚Ñv ícgT|äà…à;ZlqL¼íœí:õÉ+c4ï.ЪürJ͇&öß¶Ù¬›TdÊBnwMîl ÃÎ…èÍ‘%Ì/%UÑEÖõ_+ÄEo¾l; øsל·ŽtPñ`a£-m¤4E”B²–S%Øuÿ­6¤ =2Ð+´†í©ÎÓÊÂß­¿ê8îŸÍ¾ÇX(âe,4ЯÍ«™6ó©Q%®bó}õw˯Ë>uŽb¯†¤½è|ˆÒñálM§ÔÅ\LR?8´Ö3 »ì•â +ýKœöƒ•;?í¯H¤@EŒŒî„™IfµÐ×i5^"ոǮ›'Vý²"ìh;¿ç`áÂz[HÎîH€®Vâ+¶F[¿«°5?[{…Iˆ¶=ÏuMvœÌ¾Ç¶9N¸¹5Á¬ðËzñë3ÌÚ•1\®WJ*ßÁ—~°² ÿXåsìjà‰‘ZQHX)]¿`}Ÿ+—´1Í®þpÉ‹)}'cíÇM|Òö<®Ðö¦;'š½N´Þö4ôÒÆxשͱÎÓ®)X^Ê(¹·>“ÅLB¶_F®ÊâHJÃê -t]p¾¯üÂñ¢øc ‡òn®ø V€®Ö é^©* $×Ç |êþjïýUÉã8ÐÎ 6oìH Å1€3pÐö·ÓQ#÷÷Maÿ/+L€—Ôî[ |Vw:g‘¹[3ø‚åw0€äꄚ…ú`!5ýû + ùï4lÂ/q¼jøjù "'¤åƒZycyi±·ìÓ1ú•ßÛj9×2Q?¯ %¿lðÅq’]S cå’–y, ÍÊÞâ¾û¶ïÆgáTñ/ë<îÁ¦ ×+CW:FZ¿‹›¹Ü×CÍ/®þ7-®MÅÏù½\Xô±3ûü’‚ZÕ±``|¯yæh Ÿvà`ãÇ­MêÛn­¿-øö%úÛ߸¦›ðKq·÷´øžŽÙ32{Ò:z{Ú€«HPq 2?a¢¶mNâòœœ–€ü^oÆ&d|Xcâ’+øŸºçŠédžO½ã„’Œ¶—áÆÜœ~–Pgë +­.2Ïj<µ/c!Ô'¸ +ß<:Ï¿@«ØÕ¼:ªÄ—¬ÿÙþ²à÷Ùõ£ZfWöÔìõuç<¥|mw}{ŒTø³…‰ø¿Ö¸´×èS4Ùš.û à\·0måSý‹¸’Õ7õÇœcMÇã2ZþNDÍXÄŸšÑ7ÉËУŒ}ðaXÏFº¦ÛOlŽ4óÏcn§ôbæCr?nà¢ãF.úÃZï´…… +-`o¯¿n<.—\ùÈt¿ô>Àa, äßÁøuäúýUó—-aÆ*æ%€ÖNè¨í;Ó]ç&™9¿1>,ú2£gÁs´j c~Øzßò·Ý9ÄuÀ3 ¦^ö‹é•+·fѹa —2ò‰ =½-¬"×lŒuØ|ßv|ߊ¯=°Ò@®2»³×Öý€¯…圮¸ŠÛ“ÒìÖ“j#*àýŒæ}‹ˆ»oñ î»ˆ¥A7ðpû61?¾Ôq0»rRUö¹—Ðè|jÕî äÂúÛ†/7‡;O¦­,ô‡uqf¥·?aåÓcÙû­š~N@ßÇJ®<άJîEgr/ ò<óÈk1­˜ž0Þ¹Úqus=jì﯋ŠžBmñÜcÝg‚*ص[žï•iJ©æGÒe·tP±ßŸº7"o?þÊþªè@ ÞL›D‚ýµÁŸ–ߣoOóªþ¼3ÃlZUøïýÏvp™^iO®s¢ó¬kq) +j9˜+ÂÆ8&o=»Á$¢tÏ,ÿ}EÔ›.¬F–˜_”ÿU1xóQ- þÁ50œ^á³³×C‚RB àNwqõ>9°³I³ŒGãâŒOFkÙ¼håUóߦX9ÿ]¿ès×Xë…ߤaþïÿ"ÿÿûþ¿²#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘Ãfpÿ«;ö_Ä~wüx)]‚`#>ê¨øèxaåø‚ÅÆ0?ªûè8ì|!“]B@± 4*‚)8–¾uáÜÅËÇÎ7aäc'þcËc`£cõLŽ@ßlF!Ș“Ç΀Mo€ÏGŽå»ðëŸÁGgs¯]Ê=—s%çòÕœ ®]¿|,7÷ʵs/\Ïͽz üðê1Jv£ÜKç.åæ^¼z1'çÊåkÿy#rv£Ë¿~ï:ø=W®^¸6ºöë^9—rs®]ιüý§ÃýmôŸ‡ÿ¨ý#êG]?vâ䱎vàU!æ#Æÿv.'ëܯãWF còþãŸE0"ÿï`‚½À6å/Áp (Lqmgõ±Žºº³{gô?þ:ö¿½Êú|ùê¹Ü«ÇzŽ]¼s,çÂÕìâÿÏöÈžÒÿÚë}½vì28…œk¿žñåcÙ}/|tüø¯'™€¼c×®\¼˜ûQGåÿ«YÝqˆQŠ»Í·Èhõ*h­3m%·Åµ˜Ê [ÑP#fOÜ, UŒ.÷<®Ð·Dªô/Òêbj.2©âZ5¢ä!"jvw¶_Vv]Z÷·Ó5C­_Á–º'±%¡E|Id _W*ÃrÄ„žOkï? +éüÐõ }K¼ïµrw˜Ëö@ߎ.P«ã2>,¥3ÖFÉUÎ zCTËêñÉP;óð«ÎÉ®óa¶:i&·FdØâ˜šÒœ0²ÑI“ÓÐZ# +rMHA®rM rãrzÇk__ÊÀÁDU¬ž˜V@MY…¬¨ð,K¶&¡9ÞlAPJ«Kh„”ˆ‚-ŠðžI>4.à¤ÀŸ1ÔE÷XÇ÷Ûïê¿ôOõ\I(­I•›Ò ˆÛS°+ë¯ÚŽ;‡!gï!—¶F›HyÀ‡Æ”ZHÉi a³=®åaÓÆ^nÂ,é¨ú>Y/ѳÀ…x¥ HÒØßÎÓS;2&|ð)=Uњà +RMXÉlóËiµ5£5¡§´lLµœrÎt\LéI{áÀ*äfÌ"v̉kW´3G¬ŠéÄ츱—ãS’ª½2|iŒQÊÊ!§nÔÈÃïÈI Ž÷]çã&¬ecý*rCzY Ø[•€ãî-÷J’ö>I@Ë'zUl„/ÛoÄ_ÌÔ+€X‹[îa­)®ã–;V!3³,äï­ô$¬LTÔ€¯›ðÍ=®:¨À—zðuò‡W­/0%AÕ`oÂí¹Œ)ucò½s䲄Œ¥½W·±Ð ¥9ªÂU%4äÖl pa•ô…ô<¼[Jc0EOïÚ3Ò:\¹wž»5Ñsfw‘XÒ‹¨N)¹bí-ü¬û=évp–Û‘QkcJBEh WìžF^U?lül{{+¬æ¡ü*z«g®çòîTçå¨]¶Ò q-­%r' +> ö(ió)S_\/¦ÆtlHBOnÞ³úhăºCi‹™ðuQ-‘ÐKxA5å›çwÆÕBlBÍêòÌö\°=/ú£ñAÙŸÍ÷Û¾ ψqþn×ιpw‚xÛ?A¸—Ê=Óígl/«¿\é<­}ÖüÍòKHnR˧Fö{æÐùÛ£]WýRDQZO¨IëPI¡>Û«Àêˆ%Ô¾½¯oß&8¼„‘Úy“´Š8ûÙXYîí‹X= ¶o2~1ñI,ä–¶:cE•û¥í¢ ŒÎ´~p  ÄWáy{VõƒC$üÇFïPÆÆ§Ç \lÌ fE_ˆøø˜^Dޝ Àþñ@zµï^z¥o0m²v.Ù%×{A]9ò ³Öw|îîoô?Ý[“<ÌØƒÜ£% Ô–ž×Ãó£zDOÕyɧ‚æe{_„À$L\\ÜÀ„¦mÔî¤W•6ãFî9§Û~Ëi]{æûoÒÖÁ=T3ºÂj{ÌÈ€ÅtDfYÜ›´s© €ËûkCÃǽј¥ lâ‘B]ÚBlÜ[f Rv.fÂVíªU^%«Çµ°Â20ô÷5ÿ›LRÌHkêØÐ=3µóÀŒ­Lü jyh0/¸´}èEÜ*‚š ¨ uQ¥+j$µu¤Z÷<,Ïú¢î»í·¸ÒŒõéÒî ½fk uÅ'ÅdŒôΌܒ1Ó!I£+móRæ~IÂØËŠé…䈊ՙPq¡©_ãsʉЇM_ú¤Ìö„ð,5«'¨%Õåè’¤–Ò±oÊö­qÂz&dð× áVÄžQ•3[bJJ]B›í)LjˆXȸEÌYŸÀæÙžw}ë#Ü^&ÝÞ#†—h þyB±w—ï—K"JZSLGïpŒAsÜã$Ÿƒƒ Ž :$¨BߎÈI#µà5$c˜aR .â: çäú‡<ªÇ”•ˆ¼°WÕ’êÛÃF{@În÷.Ð|R +ÈKr¥Oмá™è>ã›B]Ë™m®IxŽs›ëŸ£–»&)ÅÁ)VÍæpÛš‡…\þ©î‹¨‚ÑžÖ‰˜i“˜ãÌö¬WòÖ‡{`>¼2ÄÍͱº¯œÓ­?ø–ù>9©2¬ÍöÚá £VWÆ$d¥-bÁ¾­¯ÔlvÒÂ@$ÍLLÏèL8È=#Ÿ°ÆrßDªß³a*&X¾o¡î[P;ª’ Ö¶g¡—óÈüÀ/~^‰~±±Ñ2!1ƒ€Ó ðqPC£zjsð¤ÏȬK'Wœä²—\îyq/aa£# >ó`M$9X2+|v +äÏÁêÐÛŒ½W’íqR«öÍ\ÊƒËØwpèû+jÚÆ€U¤š8àTa-µ)Ûk2màS÷L|JÒ@këÐÅi½gÔ›€šÖTõsÆþÞŒE@Ïö]ŠxØ8¨3£'jb#6$O3«Að¢ýÁW™U*,¬Á–€9n‰›HÍ{6 £4¯ÏàonÎ’K2¶;O~퇸Âcfl"aà@ÊHjŒk»®ìÌv_Ø™ÃÞJ[¸¤ý•gI{ÿÝ”}àaÂv4í¸ó"ÆÖ6ÖsÊ¿„½Ö‘›ö­ffMòÈ¿ð /¨œ[M© ©ð%AMÝS$¯ú4àÈ3¤4TØ@ÍvM¡n-÷fýºÜŸsl´{iDŠ1¶îÌÀ\vOÐÓ!?æø”Übç¿ø(n¦«äô|{þ‘¨…9™¾ %¨Cž“ ïÓ¼jìc—²äÊbGæ¥ô9Ï$¯Ìo2ÖúwÜSŒ\—4ÆwcsmáCé}KîÁg„+eýæ•í Ó’C¸ÛÎáŠÛ®1Òç)Î1Tqç$¥¸¦pO<*JFÈ$ 8§(I›Ãå·£h˜ Ü“Iì½!Èácå7§^$ý¤iLøù“…U±ke•û5…&Éñ[cÄGÎqRœsŒð`©}Éø>ÿäj?áIxÎ<ëUIËtޝõZhÏ>âÀß]î.¿ÒLºöë󒛟€…A+I>Ðç(>‹–Ðq0 Ù(DWÃeÁçË#àƒ´3INrMû@«ÝÀžA`ö€žœ6‹‘>;h¬ª šªë¢PŸA3»Ü§#%;kzòÛ¢¥D­Š:Ÿ…Q21KcFz øiX¬¢%%{4¤¤€‰’±3Ëb “asý[¿¡¶Ég€Lh°ÜàI[Sä„55mze[…‡cÄîÍK~ÐW¤öæ$ò˜]ÈöD€Ù¢3R9¼d£€äÕ_˜$ÜpRÐ^û.fwA$ú}YZ¿· © +[˜¥n >yNPæ7j’ +ý:f¾% ÙÀsì…q÷Sz5ôì€yÖ9«Ð¥¡eF¬BNØ.‘„íRidN">@ÁG„‘©"<'†ÿ“ÉÃÖº÷AK%|Ÿ¬>:#¯‹‚÷Á«. ù*dAž±Ê(òè›6G+nûµ|lÈ(¬ÌÈó©éPÛˆ·r* É"¶êÀv +7ä·FDÙ…Ïõ«Y%%3kŽkŠG ªg•`>ßð@†v«Êî,u§œ}—ôýÆ0æÖ–’¿<ÎÏŸl.8¢^pܫ䕸&iéÎqzÚÆý ò¬-ÛûÒ“½¤G»6±pm„š°1BO‚¼DYê+¹¸9Rpzk,ï¤s²è‚c¨è‚w©!1m8ËòºôlP%çàø¼ZjÖ\GæAóËŒýú†Œot5Y?l} ïÐ2 -é‡W;P—võì²°†Uè‡ã\ïC[éÊ=¶Ü™s|àr[#Ôx¿šW1ñˆa#ãXëG_\é-8n|•üãr{ޥ߭Ôü0ä‘dxä¹wÎ)zšs‚š´9„»µ5‚¿çSÓ²BzV±W54FM ê%LŸš]´ÚWzÞØ’üÝzwÙ…Í^ì5û+Ô9ß$³k |3©ø!”Õ)¤aƒˆîTQR\ÈÐK£f!cwVV³¥a,Âïz¦€Í•õa¨‹€¼guÍ­Æ'…™¸ ½º%`®ªíæøA›¡×0$ÃhÊ!ËÓÃVÕc¢AÍR‡,±g—*g—ƒA Åæ埖(…Ÿ@ÿ£f™4b©j[ªŸùà<`®ó]jZ¦[ÇÈÛÎ\(>í-‰Ù9¤¨]ȶ҉¿4ðñ[#Ø{ž1Zº{DT¶5$,Z줯öÉÐÐÔ?ÖcûPç}Kº Ž»&°ýjÈ€FFÑ¿ílBúÜ9EN^*¿¾ÑGŽ©ª$®qA©s‚™¹1@|¼=LIÞ$Ç'éÁ)vþj7ê’þYÒ·+eW ?Šü“ä?pŒcwkuÁ9R +Þ†¹é¦Û"= éDà` ÔuaP+$:ÇqvF Ïø¦PW"j\\X‹}¿™!£ûìŒS“<“Ü¢ ŽO +ƒöŬéß³é§1°±€¾¥¢¤-öãozÕ"jØVûÚ¯çâwÆ_¡çú´|rx^( ÎH¤P›”M" +Xë@«%"¿”áQ^ôhJozô„$Ÿ™šÍÍ_ÌT½ˆZjàU÷6fmø›áR£s¤ì˜|@Ï9¤G¬Š*dÍY›DÖò"6× úᘤ¥ ´ü=Ðë¨OóëY%.59Ù™e[ÇÇ®Mƒj¯,M=akÍóˆCZ˜¨°‰!ÿZ88¿…S±¡Džé+-φƒ BV¹8 +9¼Ð£¦gz5œÒ ^.ÜšÂ>pL–ߣ…µ-ä]#Ÿ¼‰<š4 ){Õ38g± |&„¬£YêßFìumÈóPwÿ"3,,ò¼úØœD†xœO/¢úQ‘çkUGçà=³"AÄ&æ b:ò,mÃGÔÕÞº„obæêæÝ™Æ¾°½ú¹ÇÌ(Y&?ZêågmUòC–gC଀AÂñjŸu85­z§ñéG†Wî7ŠhA«L²É+½*1ѯUýÚjE@'‚Ÿ"<^Ÿ <ئÆ5BrØ$ 9F<#œ|ÿt}­sLAÙ•®p26¡–VºP6pB ØãaHZk” ‘çúÁÿVJÎ/÷”^rŒR“ÃZ™ ¤­®ñB¶õN +ÐÁi)Í?Å/EÖ•ÜãØ{Ki?mövø§˜•^ÌÕÕ.ÔåVHöi„xÏ!n­'ãðüÛäï}e«Y9aˆìS×LðKÃ)Ü÷œ#yÇ=£¹'<ãE—üÓHÞâã# —úPW{0·#z©0jRTA¶M\|ÐÄDyÕÌ‚¨ÆDÇBoAŽó+¸±æÙÎ8)q­³è„£¿ôŠw‚šæŸfäúU¬â(°ÌæùÉ6ä¨FD݃ þRäDút +æã±KÅÌEž‚ÞqC. ƒ… ­Aãóþ ¥º9l«lôA&pBF÷hùakõsÐGa@+¦4rA2CÔ.`­ TÐB/ŒÎ01‘go®ò9è©Ør€jZ¼TõtoFV± +è!£ˆ^Ú›U4†Ì•µ~„{€«Z'¨àaž ÝpÀƒ² Y& Á÷á}n„áÕÉ…>Smóò¨µ:LOôë9å»3"þÔáï‹’ÚÈ Ÿá5‡åR¯áÅ„{˜,h±¢6sa5«\0É„N !Í1ŠºÒŠ8SCkبP8§Yy®i`mÈ`>#›«zŒÚÄ‚€öå˜_×Ô4UVÌR¾˜Õsž­~µ‡¬µÍŠ%n§i. +4÷¡_Ë(ˆÂF­u­1[cWÄVY‡p€[É/Ýc¤EÍòJ§JÀXá¡\ªº§úEß–êÕˆSÿ¼×g ·UÔŒÕRÜæ””»¡­©›ígCÞ•K‚&;šê7A~RòJýÚšêí)Û1!(d‚°QÂ_'ÿxž¼BŽ0¤cœüÄ5ÊÌr«+¥«=ì×(Ô5ŒMH/Da¬ æ¸AäY×]™G#å½:fñâÜMÿDz6‰9a£\0È„;SüŠ¥îŠkkýØkƒ´„…ÖŠKîadZ¶{œÑ#kw\lHÃF-tä—sÄ?ÍD9!Ç,´å^ï*8ëÁ>ŽÀœÇt|‚Îs¥'ïÂÒûâs;ãŒì…öÒ3;½Ä‡¹,ðÉ~kCgæ¬ ¢/íŒâ!‹²Ö©)£þ xj@µ +Àç„Õ‘Ò+ ÝE'œ£ÌL—^ij¶–[{ÏLñOÖ7îÂ9Äô2^D+¡ûTœbãë´Cæç~ôã½j~ùRþº{\ˆõ¨ª¤$g@­ôÜ2¯–‘??\ras‚˜2Ôµ¸´ÕµNµ€4<}D2°°Ž8™ß§áUx§Ïäó¯JB xØ…GY¹ÄØõiI ü}‰Ïó›)¹;Ѓ~½B/iÈ(Ä안L~4öÓœ¢)lá’ÝÚŠ8„mƒj9Û§”Rüj9©­Ýùð­ª:ÿ5Y]¿=-Ây2ñºR@°vÒï{••܈ẺØyd¿ž]²£¢e†ì\bdŽK Z¤¿©þCÍA9õ"è®"`…¬„x‰‹óèxeÀ–ì°‰O ¨¥,ǘ <¨WˆC¦ªú ±²:f“WïÎ ±9i5äŠGG‡s©köhkÜZ+d©¬ÌV¿ŒÌÕw†€•ç·ÇæÀŸ­þòPEÂsÂéƒÖ§=^SMsÀTÓ¶‰yQ˜ï˜E&Ù³ +YÈš–îMѵége÷·T/FV•ÍïƪØkJ1Á ¬G …,Ÿ^Èpj¸ÓÛÒã>=í5°Q·Ì‡\—Ö‰h]m£cRÁZb$ŬUõ»s²Úؼ€°ðI^˜âQ Ê·'™Ù• b}š‰Ö4Ûèe”ìÍ@þ1WÕg×µbš{Š–:Ûžslgœ˜²2Šïå>Þšl|ê7TVzô<¬KÍE»Ôœ¢Í1fÆR7öÚÆ%Nߎ¾2ÀKØ·ÑELÛµÊZf…¡N½:jöúpñ%}ó½/æÞfüâW2 +¶'i«1ׂS|X+¤z¦i™ÈÃŽa̵ù¶Œ£+íEç­=˜ow÷Ù›1ñ{æ†Àøü ™KôCFs)Ù;Se7|jbŠÏÀ,µ¼Í;Õ1K?-ŠeA+¬“ú ìÒQìýõAì½€F@vè¨hUcöµ6!Þ§y=æ7@PrPˆ3ÕOÓ¨kžØîÇ',RG*3õWƒ®´ …¬ .§ñ·Šžµ<Œ¹³5NÉ‚flO ++\ÓbJÀð¼7`ªí5TÕ{ïÐó Î V–kBŒu*«DKÀ’j1}×VÙ´k¯lú}QV} X(y.mÅ=Èž¥Îi!qy€œ¿W³7t†m=!k}{ØVýñÈÕenuÙ]Ÿ–œæW‰ˆ¾)=¨if«y›“Õùí=?lå‡=!}qˆž2ÓN¿Q×Ö ×\‚õÀÈŸCØf^,ñC>qhXeËà¥N˜ãPó*Óô ¯O†ƒ?É‘>Ý…cðiDckñ™qès}kx +z r­8l@–à|FzaÈZY·6!&. òr¡Gê!›¼Û+Böʺ蜬 +zD³KÄŽ bvŸèáqßDU­Û\÷z üÔg¬y±×¼ ÛêÛ~û4Ï"†ŒÌ’Ù¥×ç>âÓœú§+ÊáÒx%Ý¡©”FgjßFíb©SÉ,Ù%ÅtŒ×%ɧg–D{ÃÀZó øºW+"mC.ßc¥ƒ‡?Û—UGæù,8WìΔëQKÈ>à3—ŽZÂ\3¾(<êfÇf*ŸºÔRªK-cþ¡wZÈ=S|Œ_-$Àœ% +¾ +NU ·•ü²Í zŠKÅʃÌRäžæzUü2·RŒ×¾+¿ö‘þàó¥6L"²†îÓ#y‰ž»5Mˆ[*¿9÷®àŒs˜’Ñ‹>ììc§Æ¦«¥ŽQj®£ü¢_ ÙJÅAÕ¬÷8-EÙ’ÿ›¬ðÌÿŒWf^ÙÏv´Œ<Ž]ÒK81³\4•=Ø/<¿3Qv}½+ïטš”ža”oNãúÔnúÙ¯àÀ0!½ˆîP“ÓVz±w|“2Q4sk’œµ˜çVp=S +–k„öŒòJÝ“‚2eê"+ëÄW;CRaÐÔÔåPJès¤»N“°YÜ#«GÖ8<ÐcKÝÔûž)Éo”]* Í¥‘q<!!†\‹Ð WÏ –?iÁ\úÆ7&¤íZ«›}:..dæ“ýÈ?ö]ða‹˜;ÛIxø‘ÿðkõÓìã1{c·Ïô¬×­oxíÔÊ WWÖíÎÈkwÏ‚z6Ê5ÅÌôM ÊýZ9da ¢V+ Èu´Ö½õÁçoLã–‡‰÷#¼¼˜¡²Ê§c<Ò®­æUØ,—y!í«Xù*fÞê85eq€øpGÅÇÍô‘î{µrAÐVךimWTyLBº[Ï)Ûž¤§Ïu`¯m ŠÍ Z«¼†šÆ M"Úµ!«Tµ Ù ”…A~Îâ;=b•Êà% Bî +ÍÔµ…guAdxÄ*„ õ M›ÓTÔêîIÀT×ê·¼ÔxŒÏzá»åA+1Ý£¡f…Œ\x¡0ÇïµÉd>keCÀZÿ.d«yé7sðp|¤ E¬ø4/–…!CuRþ®½ö-xr}¼Ò­åa¼z.p!§+ä#„Å +È.•ÎIn©cœ•íœdfmïEÝì¼€ZÌØCؼ~}°âÖÌÛÂcË­y‡=e—ÀÚ1Ù›ìÈê«äQC¥Ì3ÉÈñL"ëÎätŸªìNÌHÌØ)8™ézÈPý, ©”øÔbªW <ó³;Ç£íÍ1 »vY« +j«dí³v¿¦¥Ï¯ojs«xeë¥>¢ÏÙÛ¨w /ñ÷‚fEK'b®B¹¦^|ôª›»‚ƪ¯[±5YqÇ£"<öNS’ÂF>Ñk`¹UÀmÚšZ¯ZLF®Í:ÆXYгåÁ‚ó3/²OïÅ‚(p ²×Á§Úæ1>m÷#|fªå5Êå[#ŒÔõ^â}ÐÀÔ0d·FÎsék½Æº¨×÷^È@~3ç70‹wƒb6V¹ß€KpLdŸ¨éKU£m]}ÐŒä>mw†KŠÙØX¿¿Ö›ûëÎ9æ†î7ðñ~8¿ÐLmkXmòœÏ*9õ<Ül?þ&è2?¿ïƒ,îÔH˜A›jUÄ‚ŒD‹™yD/äµ­)Зà5=Î)žy,ª×ˆì¿ªϪ~´"Ü <sëÓKØ~cÝK‡V.Y›bdÄfª[¢Èk¶êy^Á?öÞQr‚z:*b­}ëÐȸ›J…Àolê Ù!¯ÏËê#v;d0}&.a[OYE¢Ðœ¤rMCJŽÍÕ¼Ý]n ÏUµ-"„ éQSe xìë¨]Q±)êõæØœH²3±1¸„¶óéáY±44+¯ñhX¿NÊõê¤<¨7:²ͯg¡×Çp“´4/²ïI-"­±Ò\Ðk¨Ið›]3-?b$¤® ¦ŸZøòãêÇ‚>„;¦ÙùDÇ42’S|zYߨµ°p«l8ê¡Ê…샙 §ÔrÎÆ·`cœ‘…ì?[íÍ?µÞWtÅ7É,Ù³Ê+}JZ†oš–îQó+ùžÑ¬“ŽÞ¤;ýÅçãÃ&NEPGÏóOÓrüjN¹o¢¾Ò7YÉv©)™s)‡¶GÐДܨ™CŒ"©a¹ÕÔVkdF^¶Ò‹ýzìcŸ÷$¨cELnÄ&¯ CÍB&•y”‚²AN®gTTá㣂JNØJ+òhÙ(¯^.@´ Ƈìšã¼ÓUb`²G‰s—Ý +OM<rýÕ§á¢=JzfP'¢ ,/ñÈ^𷀑šë5Ð ‚ȵiKc‡S_SçÖ׿të^Œõ¯!S‘c.¬g•z¦yA¨7¯©R4×4‡Á냶?êéÅî¬D¶kåàÃFJNÀ@HÞµÓJölô’€Ÿ¶£&¦ºÕ^Ø"-EÖûk‡FPÇ(ñkh¹!#y!s²ìŽÏ,‘ùlÕ-.“ºm’ð<àþ‘ÐcÂ'…LŒ’ ™ƒ Y@ïÍ5ÏÃvYµÏÀ)óë™ÅA-×£"§­•ß^› >ñÛäõY>+ï Ùžú-¯tÀ‰]ÀVõᙪçÑ™ºQ¨Ud-/d—ÊýVvwNZ ãÀ€9¨Þ›¯y‹¬gìΉø{ó|.Ô-{®—pj%3`RÔl›xŸ… yÃ$ƒÜ¯xžË"³|ŽÏ†Ï]œÌ;›«}¯i–kܯڛ«ïÖ‡¬%â†mq9»¼Ùsà3Ñ‹œjÈ“1owNyD,Þb»µÌ|d: +|µ€F€¹õÄ”õ1Ì-Ÿ–UŽ릒‘7Û»ì÷ #F±Oƒ¾³=–{j©;ñ¨c°ô®oŠš2ð‰ Ýeà·Ôœ°Q!…—l[ÉÊÝœ ÅoOTÜu«©ia3h¾]ªpè)9³½è ~eµÔLìÓ +I›Cèkö·)ûWºrÏTô’ˆI@u £¯x¦°¢È=³ˆµÕ—yÌÑ—s)0E΋¿–žë*EöxvNáŸ8&¹kÝÔ4¯ +æ{¨,. æ¢HÆÕs*<ÓÌB䚤WËÃÃ<=uj8Àάҽfù§FÙžKÚ›áÑBVZ±[‹Kt«¨­à Ý#¢r×8=#`Ä<ŠZ¨À&ZÙ÷0+–l(éÛcb\PÛÔæ×ËŽaRÂö 95¬2b!ǧ¥ço£on .…ᘃz™Ð§‘‚F.Þ¯£Lô Yº7+äîÍJ«\Y<:… ´üI¡@Ö´wá³J3Œƒ ò¯‘]/à}šãR?ÍqÈuÙ½­‰Ü“[%—aü³ÓÄ4§’OéßF-õo"F™Ä5Í-Ù™TlN°ò7Ç1<©hK'ço@¶ôšÛÀwáEi½×R‡|FÀÈ'ÑCHNµ +è-#Çoà£3Ò꽑,<ËÄy-ԼР˜¥A Ö‡¬-Ó{‹&Úž­lŠ-ÖuZ®ˆ-HëCv!×oáÓBÿ?ˆBÈ~a»¼îß‹U¯&jAÐÌ,‹Ø)e(¹K··§()^=³'6+–ï-(ž‡ìb±Sƒß.¿Ì/ ›db¨¿,Š’åWq!måÓ˜±îÅ®YQ ¹³ÜS~e{œž‡ìO‡|Šói ë«d¯N"6öã v l*ñ7‡) Þé¦×ÎI×5.Dï 2³<#Ô,¿j +rÁÆ(þžk {;j"çïA-x5B¬W)uU!cU]x Ù—íƒÞ) ‰Q;µxðmü‰^ᓳa•D³JDAà3p±› kî)f~Pcc‘U"k6Ö®òË1Гÿ,p™a>Õ©Ä?òþq ™’é×SÂv¹KK-lÞ:ð}ïµ7/©û}^¢?ç:4|¬CË(šÆÞr¨ùD§ jKÉ. +iªª#š¦ö˜±ºÁ­¢¤o c®­õžÜÃÜ ÄŒ1~ñÖ(// Œ±7Sõr×ÎÆ…L Ã&vYÀÈ)ó"ë½&E¥ÛÀ§l+™å£©(Œ°¥Y9š’êÔ’‚P3»ólrtA$ñ@­x5Ï¢su±y‘Ø£§çûM¬ßÈ£EmlÆÿ]àñ€)+f‹N. +Ð;0î;ÓRð‘ª*·º¦Ö¥zöÞ£}Ö>S³£Ó—¦ù¥K¬Œ µ±Ë lä±Ie~«¤Úgªj +XªB¶ZDÿ›Bjî¶’”à3رùšwþÅm%g»ät—–˜ä³“26dØÓáØRmGt¶òiêvw©¦#²(’GàØ½ýÝÈš(ÌWÈÂÆ{ÔÃ&ô‰€1³ÊcVí÷9>ïÿ.Å{3BR³n 5}}¢üF@Ï.E®¡@Þà-ßRÝž­yž­ûà†ãX…,¯I@Údr¨e¡x0¨•‹£È9Àû·µ¼K'ÀƒþˆöÀSü…œÃbæÊÚ˜µ²>f—UîÙE‚ˆ•GBö‡@ãú†‘ÙêWÑy)ø£Xà‡ŸÑcv!YãöjðbÌVý2j«oš«bƪÚ^ÊGÖA‘ýK=í×Òò=JrRHS)÷jŸ¶îLËÙNœ»=)Âú4bÆqc”™ášª«tMVr}>äKv™2ÀÒê’{Š‘QË„{6yålgáåÍaF‘O§GÌ2q ztoFÀͰ°ÿ^äP=:vÉÒ ;Í1)@!×ßC:ʯ¦@>'eú5ÀÖJzN`š™ŽŽZEl¿–]„\g +›àøÔbZÄXÓ6×´DmІÝ>Û¥!$"{4{pH}y +ðË«‡¼ÜŸ0ÉÈ^ëÁÝZÀßšHÙ^->¹±<í +ëß ûµ¶ÕÌ6 &÷eü°EQÜå3UÖz,µ-^óó!Ÿ¥i h¯|îƒ ‹ôch†Ëœ,<»6,!í¨ÚŒ.ã+Ó\Ù\õ >¯6ºš \µKÄÈý+~‹¢Æ©£ñ[êÞúAÀŸê,ï31Q;Jìc§—àÓ1‹?ÍÊ*ÿ³ húdÃX™³¬ò÷[𣖨E@YYeA3£Øäc»™Q49lŒÓÌ3×Ð ý ½)•"lm [9ç=m{˜ïšdåxy‘ýû -Ó5Nz¼3FM¨ù˜í!Fòfé®c€ü`×*æÃòCÐ#Ûð+ߣfåCÍ`÷fE|dÝÈ­]ZrŸ=¬‘2ÂZ!9¨ãU ïÛ†Ïu)9^-³5ÅÌZd&­ôѶFIq %Ã9EËØ™¦goŒÒ·Çd¤ù.Ò£¥Þòë; ?Ðr§’‘¿k” +wõrqÈÈÁªZ’\ ¸ÔR¶{ZBÜ5*äÿžS<ý4'€^aã}sÐCÉÛcLdfF@MÏÚ³ò¨ÿôôßð +üqO- ú%?bfcZFž_MÍÝ#&x'¹ÅQÓÓ!óS` +ðUd`5˧¡d†M”¬ ‘˜áÓqÊ‚&™$ ^€\õ©hùæ·É?›[“~t«KoAþM#9\/áøu•òäŸ^DX%B`°*`u"ô?*l¢æ„ LÈö"JÀÈF#¼ë7ÉeuÁ“é%.mÅíi새‰SÏB®…×`&.rd#¢»»KB 2Î.ðœµ!jÜÖùáÿ[7FþØ&f…¬uïÂsŠgá6qwž†ú¯ˆ‘’1Ðób Ù¡9>koA¢Ø]¨nz¯Ö(hzdr ²Žcea"—ÜÕÀ²êêꀭ +<‡M^“Äæµ-~ØÊÂŒ,ŒSÍ)q[ÀkM¯M^KËTÐ^óÊ?Z¸ø€…Qâ3àS}: ߣ1â25u­Ç¡·"s5ïó²jŽU°¨A»ˆƒìË ™ë^ûu +yl¦º9b­nöjä€YÀ€ï† LØž³±ð»Vø¨~wáéXt¥®?¶XùrwFȇÿÃø Œ¯žž41ŠüzhVÁÖ´0U·DAS€á„A3h—•GŽXÅÛ£„ûËåç×zq7VzÈ÷—Úñ×ÜãŒ4÷8%Áÿ·=B¼¿Ú]~q¥£äÄR[þѰ–œÖ1‹NIòƒgššê¦§4¬‚°Ž‹qsò\Sb¼W+eô2®WÉG»'XÙŽä¾Zš{’žæ'?Ù%=Ø!ÜÛãd­ Ðâ×ð7=Jâ—’v«h難ćº7é?ZÞç]„ßWIÈ^5¹ìW±‹\JüÃíñ²›5ggŠžáf¦D5Ú'È¢QÐç€ò„†Uè%Çí áï8GñwƒZzΞùTÀ‹ÙE<Ÿš‡Ù£§ø¦™9»Àö!-3s°ôòâÇ¢ß<#¬¬ZÊÝBöýß~·Kd~-Û5V~Ó;…ºü 2û®½êyØò‡ïP .möá³ÿ=ÏaÆìllÈÈ(ôN““·GÉOB&©Ðƒì‡l¦ €L|BÀHËÛVbn{¦)©! »é§^D]ee¸Õ”Ô ‘ ™‡š±gá"zNiPË*–ö²‘{Q‘uéèœDC®ïéøÈzCvÎõw`dßMH'ã6¹4à£&.!jãb0ÿŸìB@MÍpŒáî»´ø'1;—C®—ÁqF¬Ua訽ª)2#zMHfa–ìÀü8=´È0.a+âC’ÊèœX´0P!57h¤úà»BÀþ`IÂ÷[k_ƒ—<‹ÌðÈÑ.å÷y×¥eíKo(y¥KCôD¯¶¶Ñk¨¬Ùgå-÷ஆ,|JøÉ]®)JÚdÒ€AHq)ùe+ƒœŒ(pb 8&¬çáœcä'~ 11¨¡¤G4ìdid¦ª98SõY—ŒÍÖ´EaÌCz!ɯ\ÓôÌõ²ËK=å—»+®lâ!×—½& 'd• +ÿ¸¹W‡ì÷ >Ú&Ý·´`~[~O¸²=L_éÂ]q:G9Ùk½¤û í¨ã¶æìVÚŠ~sŽ’!÷¬o«$ÔùØk®Qr|@ÃÈó@]»'Ùy›”GÈýŠÛƒ¬”ÕNò-ç;g}€òx© wa{ˆúY›Ýú_í,??ó¶äØì»òÓk]¸«Þ J’_CI[,¿¶Ü[~Å9IMrO“½*jšc˜úd½gy]ò«c€–RñË*jºo{×=†¾º3TvÙ=‚½TQRýJFöæùÑBö¼gœW²ÚUrfµ#ÿ˜gŒð8¨bæ{&ˆ½S¤Ï5u³ŸòÐ7!Dû&…è Jˆuñ‹Üãü’~|þÆjwéÙõ>ô%ç$þ‘KMJöj‘µ+fè96¤§e#÷Äì"÷â$läzwšŠ%œ€–W5s°ˆ_#墦x&i©pN)n8¿V€õNËX^Bà˜`g{Õ¼r¿š[ê'Ç;µ%5e¹{mµxÛ¹Ä5ÅÈpŽÑ“CÓœ¢ßM<ü¼k6ú*®löny'Y1«¬22¬P¼Sìbï-Í7AMÚê'Þ^ëí¥'»Ç™™®QAÉΈ°Ô¯”{•<Ôæ õÑF?þ–{’1sqÞ)f¶_ÍC‡?ýPO>“ˆå&pjxŸNLÛž¦ƒ×SSJR2òw¼0ïÈžó€ŽYøÉÆÁÅŒ|< ¹æ×3 v¦IIËÃØ;n5 ÷ûœ¼i×ʧ ô°K XÙn-#w Æf©›rgö ñÒÂ{ê­Å6Ö#MMÉ¡•.ÌÕ(è}²ŒôÓ«Ä=ô«É)[£Œ{ýþl7ñ¶{Œ™õ€Ý > +ÄÏŠÅ1|ÿ'a#—JJõª«ä.¥B°ð‘“àœÖ‡„¨!f*dàÄ­áŠë[CèK;“%—¶Ç+î"?ßGLUµÀSqÀß(`Tпû oñç·ûÈ÷Ö:±—Û*ÎntS®v°6ûø+™-ÏÑG­OK­w‘ï¬÷Ò㺙 Óuy?lô’x•œü­Jôùã•Ί+k]„[Ž>úã­^ÚÃÍ!j¼ù ê´¶¾èàh}HÍ*@úl¹£âÒs­§ß•÷Ž—ßñN•ÝÙ#%nŽH*¶Ç$0WeÛ£”¸¥ü•åÄkëÝÄ[A%» ¢á—;{é‡éÉÎF*ôóƒò«]E'V?Ÿ\ØèÅ\Xî''¨Ó¾]n/:Óòðî rÒ +òž®‚ß6{KÎÂ{.»@«=T@-ă&äx&d¤1qc„›k{SvÒÜ\|hö]Ù {kéokýØë-§, +9úü‘k‚žÒsÐ!ïVr‹Âo‘5¥¨YÂê¸e±±Ø–éúw*YÙÛÄø¥ÔùÍ~ðèAFòZ-añáÆf?3Ã3)†Ä9†(ƒÔ¸ÜõµÎŠK3­%¿Î·•Y~O¼êd¦ÿÇ +Y>{{œžì"ÞßìCî#%Þ÷)åÛ𻋘«ªº¬Ÿg^”žpt‘n/¾/;µð¾ôÄÂ;ô™.Ü-û ô‰Ù·Ä+Ð'¨µ>A®©…xÞЄ>6÷wØíf!÷Îg{Áÿ#¬Œ•~Ê£ do•\6‹ù>`/ôðÖöæ6°Àö0°FGÅåÕnìM×z›ïS +ËýÈ5Î?îMÀÞÐ7ç0=ÏûÙ5LL@4Þ ¾ïÓs@G¤B¯ZÊØ™â£VºÉw­MeGÌO‹(åÙûû艟ٞçpw8ú©I^%9õ? ô²ž˜äf_êÃ]Ó½ÌýÉþºàèf/öºcˆô¹·+d³\ZAÅö'kêcg„™Žü‘¹¶Š ¶W˜ãóï±ç:O|* =¨aìŒâî{¦I)!=߇ì¹íÂ^]|‡»¼ÞMNÜ"Ü÷*¹% ý¹Î1V&Ôþ=G/þÆföòò‡ò³–æâ#ºÚÂ#KmìÇ‹ïùñ³¯É—Þ//¾%^ž{‰=»ÒN½=û{v½ƒtk«‡öx r…güeˆ±ÕÏJÞè¡Ü[ú€9g{—lD‘ðÕˆ8í+ËËÒ3Ë*nî@O‚û¦ððj{Ö/–æ'ß-@ÝÚ•¯ôñrÜ“¢òí1NÞr'ù.„+í¨3îAÜ=ÏþÁì«ìƒË¸Ë]ÔG›}ô¤íAZÂZêôVúâö@Ù•í¡ŠkÖ÷åFe©_®´cníêÄt¤–>_é,9³5€½½5ˆ»å€¾Þ¢'ì S“Öº+®yÆ%ÏdpsDŠYøÀx8×J¿3óÎÚ\rhá]Ù)G/ù±{”™µÞC¼T ˆþ?<”úC"ÃYŸ‚Z«€<—2p 5³Ð¥„Ü6-"úàýsmE'¬-ùmÏ‹Ù_–þj‰þuñþÒ&ŒÙV5Î3ÆÎÚég&­w¯¯wâ¯Ù^ü~û«¹±èàjùnP'e9•‚² ä~gà2ç8áÁj/úüü{Ì¥™7¨ãú§™?pïÿÕÔ˜wh£ƒro¾u|ùcÙ9cSÞA•$ý•$ëkËÓÒ#KíÄ›Ö7”[#â’ïGÅy_««‹¸Àg#ÔøÍ^ÂmGåÃ¥Òµ~ZÊÔ³œ»%‹½*VÑz/ñîâqÃø»óm¨“šÚìïMO ~žoÃ^šª.:an®¸˜Â8r +Vº 7ìoJÛž°6åp’ŸÕ”ýúáΧÌ;]_¿5,(™oǃ6“oZ[ŠOJ’¾d<þóÌó‚Cº§EÞ‘ï_ì(½½k#åo žÛèE]ë-…ÚÊ;ªªNüz©­ð7Ÿ’ž<ïÒñ[J~érýñÌ+Ì©¥÷˜³óo‹SU¦î35æü´Ú½ly…»Þ+I¿î$¤ôäoµTø4Ô,çdù­ÕÎÂãs¯246%ï[ëÁ\Ñ·žÞfd‡ŒbÖÎ#cõ#êä\kÖmCâ¾.Æõ?¿ÀúS7ñ_í””}³¯pW–?o››J[ž¢-¼ÁŸ35•Åÿ«‡z÷Ÿ³-èKÛì¬íA~þÆ/c¡tuùcÅE}Cî÷êêœý³o0g>Òî}6!Ì8ììd'íôsÒÚ©7gÞ/YšŠ®¶æYx‘shý]ÙÅõ¸+–g…¿lJqžÉZéz?7söú„©>íkSuÊ¿Ì5éûÌuiûæZ‹Ž KÒöë+n/¼c?´·”[n/=½ú±ôôR{éISsÉáiyö7概#k=ø»‹mØÛ¾q Ý9Ä+Ù`&®öî@Ÿ]]x9c–Ô7¤ì‡þN[ëáfÌ`<ب"®vIó—;g^—56äÿ`lÈûIY“öã4þÛ­!zú:ÔÓf?îæJöʰíB{Éiû›âãú¦ô5u‰ßϼÉ<´3Š6ˆ9îI~éz?éòw-ìͨ£KmåçVlÃ]„^9±öpÏ=@OÚ‚Ú\ï \_i/?oYphüdº2íÛÕòíq v}TXìЉH¶tOã''e_©ûuµ9?LË’¾66~CŒÛõyÞœ¶ÑCº¯¯Éÿi™ôYéÉgíÄ'ŸuóÒ¿±½%ßZì Þ7=GÙ¦%8É]ÃÈß~)¿0!{üåtUÚ÷†ÆüƒC¢'û@“³½Ji£‡™ä`&/¶aΚò~˜¤9)ÎüJY•÷ý늇âgšO¸ëælôÓçߣOοÍ­„þlÊ=`[|Îç;÷§duPÁ1½¥Ü^îe¥¹§kjV{Ù™º†¼_éþÜG{òù ÌRîø?³ï +î¯õæ]˜ßý›µ%ógÏî‘k¼¸uÉ5‚»˜¦f„Ô"ÒÎ+Ý3-¡9§ÅtÛ+Ú5ûKìû‹‚_LM9?/´¢ÎzFéʆ‚s¹¿ùKSέV.±½¯¸7,‹ÿv¹+ïØZgîQ{sʾ…·yG½“Ìì—ä[ß9zˆ9!àÍÕ>ÒÝù÷¨“ú§©ûu‰ßLɾRUçüÔ„½õECþ…¿®~À?°¾->6"Jü¼ŸôÙ'õï“Òœ 0ÞE¸ó÷AyÒWø?ÿ·Ršqv jÚüŠtQ×ý“º:}Ÿ²2ýëQAòƒŒ¸¿ŽKs~zGKùùMé½®t±†D?r|fªÏÜ¿ú®ôô„(ñëÒõ?*ã¾´¿!ßÓT“nÍ¿f=Ùƒ¾ÝXiCŸšk):4ÛŒ:¦«ÉýAS™½ßÞB¼:ÂG1Õ”!úxmá=þâf+q®•xÉþªâ‚ý úÒˆäö?MÏ3~Ù쬴³­/p§W;Yq«ÝÔ{«]ø«K1gÛKOÙ_åQ×%íWU§}g}ɼiyE»¾ô‘zgîmÅYsSÉ!KsÉQM}Á1yþϯñÿÚÁˆÿré#áÁJ7ý±±±èç©Êì}C‚Ô/'+Ó¿×Ögü`~–qp­sµWþdëáþQô`¦>KS›±OߘûèÁÁAþãvrî~)É>÷—!Qò!ÿ8+w¹­ôìâ;𽨳3¯óO€×_j{ò“ªúî¿–ú°qÛÓ¬Ç=e<Èø¼âøÂÂE˳²ßf_W\„|yvº6ç dËë͵¢.,wКZÊOªk‹~2>/=6ÛN}¸6ÀÍB8kª2ù«ÅØ+¦fôqÓ3`êÒ=ó¢SÚÚƒ³/ÊNxÏxƒ¹4.É?¢©+=¹ø™¤¯Eš}K¹¦oŸ—äî34´½ÄŸ›Rf%žú“þ)po'ùá?ù›^úÿM‰’¾4ÔåýdyQr|s üºWEʘlL=ú†tíO𧍓«½Õ [+óñxeá‘zò÷=Ô”}c¼„/{i·þ±øus±«àÔF!ί©®šÅ’Åw9GÇ·?›<ø§½%ã{Sæ~[sÑ/ö7g'j ÏŽÈKN:Çdÿ´ç#Ç­@_^nEŸ]h-;i}U\^~ÏÒJÈ’g74£ÎúTô\`‘só/s^|Sø«¡6÷˜ùê‚oLÊòNWr·†«}’’¥NÊ…èÓÖ…‡õu¹?iª“÷ékR¾qM0óf?¢ÏYZÊϘžÒoªª+ŽŸ¢[Ÿc~³¾ ]ì”þœwõÇÿâ%_t‹1–7„ËÃ’[–ÜøóˆèÁߘÿnoBÿ6ZWt¸4áÔß°W~þïÍ>væ°0ýË~ƃ? â>ÓT¦|1Äyøy?óÞóïPç¥èŸãïüú'­¢ìIT+çm T\›{Wò«¡!ï‡a^ê?Û÷ÿ4)Ëú®S”½¿ðÖ¯ÿ3%Éým©ƒø`¢*û€º:÷˜¶:ë§vʽ¿Ápýï̯ÿ5Óšqèƒ$ýX+þÇÕnJÜr¼szã´¥%ïÀ„$áŸÄ«ÿû}ú¿'$qû_P¿{CM=½”8ûyöuù©åøË‹í¸KÆçèãíÄëi¯¸ò'`íöwÀgï®÷23–>Rî¯u“ï kj%9)¨"'[ßf&ÿ¸Ö#E¯t ²g[‰7ŒÍ¥¿Ù^–ž\z»2ßJ¸2¬H?HK:þ—fâQG3eZþàsMõ“}†ÆìƒýŒG_je¾]}Ÿtz©5óêÆ%Åö¡è¸cˆ‘å€la†ÖÍHþûGJÜ_Fù)_:z°×£¤ÇÕ‰G˜)‡ÿºÐÎÎÐ=Ç_“e|3.‹ÿz¥ suù¥ø°åyÑáÙ·˜sæ—è‹–—˜«®1}s@R¼ôxÝÜ’wÐþ2ïP7;þ‹Úü‹ÿ;$Nþ±™ÿ} 1~ÿèŒ2®uP[—óÓ /ñËÆâ›á&ÿ/uSññ&jârܹ¿Àé|·ÕKMq33Ü[6J¯X^Æ}­®ºó¹Rþð+Û;ÌÕ&Rêiñ£o&Éñ«½âÒåø›ëŧ–ßç³¾Ìü­—yé3ûËì“® vÑÌÛòkÖ§ù‡ÛÑgß—Å­uào/¼):²ôEÿ¬ô˜ õŸž¢üèaÁ[²€… u©ß›²~ZnGŸuMã–û±·«0׿ $Ÿø“ù=úÞ*p´©¡ð íiÞÏ–§éû‡8w¿Øê§Å;GŸA~áΘ·1*'/t’nBF=¥®ËýaRœðOcmâWs¯³Ùš¢¥T'ol¦$­w=ãÏ·‰3ŒÏQ‡§j²’äý2"CúÈL;:ûŠ”ë›¨•̼gÅiš2~Ð6¥ì75gÿlo.ýu±•z}ª®äHmé­¿½FßVáiê +èkr²>+:¢”&þÃT›ýÛÒS p—+Ëïü—réÆ\rT'¬ö`.Ͼ-;9ÿ|†91.JÿFWWr¨—ñí£Sûÿ«›•ðëÌJ|;+þ‹–ÒKÿÓO¹÷—Nʃ¿¾(»ö—>ÆõÏWz0×De7¾æùûæ%káö¢¹%÷GÝÓœý†gùT59?òÿ5%Nùaé=þv æþ͸Ç࿬4]CÑað­ý³À\öWÅGUµßµ.6¹¹o¦µàìGîÃÖ;ÈCUýö#s¼ 2Ï ×0ö–g {g£uAû´èØd#þæ¢ðÌz/¯h¡r{îMÙÙÕ¸k«„V`´1qê¾™·6zX©Sâø/[+n¯t²3çÞîl÷ÿ[ÏÆìi˜E[ý˜–W¿x'Xä7ÓÜÙ™w¤#â¼ýƒÜŒY›Š8‡ðwS¤Ä‰¦Ì߸i'þj{Éx¬ª-?ÝÏNþÇ„4yÿü«’ÐÏ÷ÚÉ÷vhÉÛý”x]SÎaËëâ‹›Òòù6î“ù6╹¶² sï0ÀñØ[ʺÜs3ï°÷ÞrR¼e$\î¦?Wäý<ÀMýbXüå /õÛ.fúÁn~öiC+înYü¹¿ßüåëÿó²âþw»üMà9û›¼_¬ÍÉû-ÏRνŒ1ÂÌbå^û{æµ_þ»O^ø2PêteÂwÚê'ÐGO¾Þø|}ù‹¥ö¢+[#”„NÜwÓÕ¹'B:1-¨6û(qúºÌý¦¦üC#âäoXü÷kÌÝï Ï+îŒWœrMñˆ[}ÄÄ5ÐG?åñF/öŽº1û—„;Ÿ¿¦<Ø7ßMJ­*|ƒ>µÑÍÌpŽ‘37‡0÷çÛQ§ Ï2~Ö?Ë>èå•?n›Þb.m òòÖ»™©‹ïP§V?Üì-½°ÙÖôsc­WBÛiT,|”䚈gEYûßþM_]p`§ŸÖʸ~U•x½WŽ^î–¢gÞSnY^27e~¯”æ~ÛÏIüû»Š;ÿk޾¸ÜÍH®Eý2ûšõx¡•ýèþÊÿvÓî}®©ÉùAÛXÜŸ·ßþ +wÍ9(®ðN‰ñKí·ú8¹ë}¼|k ú¸®:÷ûqqÖ·C¼Ì¯8ÙgšIVº*Ë-´ÛÚºÒsÚªüÓŠ´éª3¿YkG_Øag©[pwt-e7\BÜb鎽­ââB#}c‚_nï Þ˜’ç|£Vä}?ó~º*ë{mmα•NNª±{vî5ñÊZ'íÁZ'éöêGÒõ.6Ê3Χ8&øæÚ>ÈUw¢æê¦)fþdÞajâöù¡s”çc¤m p²tÍø›c•…¿mI˜Óõ…G;i7ÿªTÜÿbñCæÁaùý¨diû–Þ®O€JÓNü}é1;¨•2}*N‘k’’´9€¾¾ð6í°¾êÆg3¯sަ% `øu#êðbã±¾©èà„8õËaþ£¶R/ÑJ¿þµº!õgssÁ!k;-¥}ûë^ÆY÷¨„á`§ƒÆfl à.}È<½ÐšÂÐöíìkÔ¹¥NQV#>þ›±úâ+ŽQfÆZ/þ–þYÁÉÙ·yg–;ʮ̿/8©kHÿÉð¦ìZ'/ñM]Ñ){+éæâGʃ5ÈÛ#üÒÙ.â½±šÂýâì3Ї…ÛcÜ‚ÍanÞö¸¨|ær¾µäøjgù%Ч£¦—¨ÓºW¨sªWÅ÷çzÈÙ½¢¤ÃšªÌŸ–ZK¯®u–ßÝ®HôL2Ð^%-s­s­‡{ÿóÙ7åw=“ü²Í~òƒåØK“U©ÿš’gì›”g|;$‰;¸ÔQú`¢¾àš¢ðúßg:«ÝwMÀ¿ó¯P'¦Ißtâný¹“öøkmSþÉ-è]q&'C?I8.­pácÖñ•nFÒFå‘QÝãÂbáÖrù‰cLŠ[é¤&¬,¿hnÊ=¤«Íø´îzP+":'¸K}ÌxÓÆu×D}åθœ¶ÞK~¸ÜkÛUrÞ5…ºíÁ\_]ôª++{ͯ¹÷ÍÏh×m/ˆ—Œ…G‘5—åvìcsñ¯¶ÖŠ‹ö¬'C ¨Ó¨IŸ›êËN¯uЯwÓ.wnÍ(¹´ÜYã™wÔü4kÿÚGzêÊÿÇÑ[·µ•uÿéÍt:S÷Rw–zK[Š»» ÄÝÝHpw—@œ$Dp‡$!!HÛ™ùÝ÷÷zÞÈsrÿq®p8ggïµ>’³ÏZv1Àã´¼ôÛ“¼ÌÛ^ÆÕíøw¯”V°Ø…3Õ•¼Þá¢tÈÍåŸN´CÞüf$\߬øèQQó½jàÐÒ!N9*ñÀHCÎUÖº B榔”2ßû°Ô{³Þ³ÔTþÂ=L˳ ’Ó嬄 ³Ù·FñqÀ¸_Lòã.ª˜)Wô¢Â{‹¸p ¦²}j.áÇ4›é32qÞɺº}ƒ»Ð ù ¦1”zÙÀ8³Ö\pmy°SÆE­ô¡ÂŒ ™7×ú ^øïSñòn{ˆ”è’0óÜœ‡´ä'ž1:Ú£¦W¬ =wžÙÄžs¶+©ñÈñ@ì¢ã×üuàŸwµ ˜¾:õÎ%ì÷ÙæÌ‡Úª¼ )+åÞBkþ‹=5bŒzeÙ׋ +aIêZ@]i-|8[—|Uà ;+¥}>¿Ö›÷Ü3^ñÝ3NH_ÀD ÊCÎ+kò#v´”"c}þãARÄU9/þÁLsÖ£¹–´û."ÒÔþ áÄßt*ñ`_ß÷a?þ©`~»¸Ø•ÿdm¤ìýÚ`Ù[‡aÁ%ëòx¥‡˜îÓ‰yöqJÖ|kéËåβà NbÀ(1âì– æ1ó˜S=ؼҨ§çgzÊ"}zJ©S†³Ž"¿ZGà_/-gG\$~»ì¼¹²¶øÛ6úŠ­ãš`¶'„Øí &x×@.Ý3Ë=S„§ž\àÖ³1=Ĩ«–ÚÌ@ŸŠt)9hŸš^ºœÿ—_àV”~Ý’}ü{–ÉüϪx`×@o޾>4W7šDâ½I.Ö!%$Ú|8.zuߌÿ~eZyã¡ÜØ3AÉÙב +7‡J‚×ËßÛ¤Œÿ³ [*bÎZ_iðÖäíbkî“Á¬¾IdÒŽ‚˜µ7ÅDØ'hÙkC´Äõa^ž© þ +ÐÝïl½°÷+­àÇ@Îßœï€|4uÀ>4b¢Ï÷ãR®mö±ó¶$¬|KSÙ‹qNÒe)#æ‚©&õáj{Á{kÅœœ¹2ˆ46=òªXå[dÄLSRÀ0!äì83ör'êóïݨ¿V:‰iã5¨÷ QjoöÔø¡à@GÈsM c» ž.t¥Þõõ‡™ +ÙÇ%º&8å;“"æú0%ÕP™}sŒù—Œ{œ}¥ñæ„„zÉÔ n#D]–1ãnlö!ã¶GðIÀ\—ìk™^¥xC +~³¥‚Åzt|²G-¤lŽÒs—ºÐÑ€þ´Ñ^x @Åyd蘵žŠ÷›Ðï¶aL”kœYb#&èj¯Zš Á6 1Á&ÁÇxÕ¬rŸÏpªµ1d¤ËXÝêžjr«åë=Wæ†ìÛúªÌ›3ÍEA.9) àÉ\8õ¶œÉ-'–lQ²×{Ë?L×§ßškÎ{²6ŒÙ¡f9Ç…8û%k®òzs•äYš[MößcXî*x1)N¹;Á¹`—!#<“Lä¶’ží®øìVóð.f“ £—: ^oô­÷¾ÜR ¢wŒ”’-@äYá¡;2d¢WZï+|§æÇ_!‡ž‘Ñ}P“qgOÃBîD|§ZHv)«è@¬B2BâZgy¹>¹äÃâ 6f¡ñkŽËß–aRWÚ+^Í5C_l£#œ*LŠCN±O &¦“•ñ†“÷ö¼m˜BÚ37:ôUB«šQ²2‚Yè+ÿàÖ¹2Íã,KéaO/ª`ÑŸw UMV³ÔyµÐ‘ÿpµ?ëþl{ÊmscÊ“_³<Ѿ…_5ø#—›¶oU{uòŽŠS±#gÛ‡)Éý¤¨ù|h &ñÆ$öÚ=PO°õñò›±VZ±Ÿ7»ðQ[ÃÄ·šSáгP3€çôé‡]9⣸Æé%^ áTÒò +|ªuj"DmŽ03ZPq§uÂâÇ«mØOÛ}Äxç-Ç>Â.Zê&ÇÅ%W:±Ñ¶q!z~€7YUtW--´£c\cLøO½€áCF­wÏ·fÞï(ÚQðQ}ˆKmú­QRÜõ ZÆ ¯àí\#ðLbÌ«âq8úì\#6ïßiQ­ÿ~‘c´8xc°øåê4b[†M=4PË|\útSúýÕNZ²]^ÏY襧èøù·¿Ò‡‰º8FŽ»2ÁH{<ÓTnlÁ|åE\¬. =÷kJÈÚQ`,/ ±IJÞ/vƒƒ¬°X—Ž uéXˆm9¼5Î*ðÇWÉ.´ð{×Hñ‡íaðë¹ÆÄk¦š˜ën)6ç3滨рü°ÚGÊôªÙ_³*ì2\¼]‰³«° î)Z…k¦¦Ó¦«o¶)¹pë)m¥²9ˆŒv+)ÅþÈÖQDèÚ@ù‡õ>DÄ®†G1×–=Ÿ­-¼·ÔX¼Ù‹ÍÙÓq©n £b®­¥ß±K)Y{F‘hß,lÉPñCåïfÚ +µÕ)§Û²?íN’K~¿Ûž å› +Å5§.vÀßëÙ7m½ÏÛ£ÈL†…÷¸D·’Qä{¡WA/Þè)ÖòâÎN0bÎO°cLõiÏœ87ÜoŽ’2\ЦC ä«”’ºÔy>†<¥áÅœ_îÉjÅÅø÷â»dÌRû%i³—šhó˜åÁ’¯æÖì`S[fàê82feŒ^èCîë+÷fªÛ¶ü9¢ЭJJ×Ä¢þ˜ç‹÷,<ÎÒ6–Súíª¤œ±» l±x²Ö `½o•UÄÚÆÑÙ¾ðp†Ãrë)¦ŽÂ'[Jt¼m›èQ×p·'ªÈ›#œ¼ÙÔ{@*Þ’“ z….%Ÿv•ç_é(Î?;†,¹º$¦EX»è‰s­°wËCðù¾ò×6 Xç*ŽCQIX—ðK—úi øùf⇕vzÄR3#Ü Â¿âç~?ÚϺ0ÅÇÚº¸™¶.f²¥Ž¢¤Áî-ð±;’jüš„_¦®G¼¶´à¾»Ôµu«CŒ+ w|j>ÖÜPpÏ(L¾¸ÞVøÌ=JÏZìà¦M q‹u”Oó5ôo›-Ü4w¿¨|³MkTFM  7 dôS{+?k¿9ÿè%§ï(xD·¶uÈ­3\ +jÁLSÑs5/õúR/c¹¿³ÔY™³ØHý¶ÞYY°ØÌKYl¤‡mt°§±awú ¥W§yÄHç lµúa¥·8Ø­Åd½™Ú~ßLm[Ï#› +ƒ¦[J‚¿äV³Ëg›¡su…w7ºJ·ú+¾¹F°™^½`{€_`®¦Zn¤î ×w†Å(k7=I/̹èÁÔ½iÛ;SÓ»9É'¬Èéyërjæ–ŠUæ™äâö'yø ²>ˆ]k/{±3†ÛW³av)§´¹"õT7,ãü´ˆái­õMë½wKà·[c¨‚}Kuûž¥ºÙgª8•ôR‡’œç›âó=z&nßÄÄl—…®}œo+xºÜ[òrµW[{©µ<=@Ïþ°ö2Š|òsDˆXiÆ}³u‘¢=’*Ìr'³Ô *zjÄÄnbbwTT°w’^êQUÄ«„߯K™¡ç–º¡Ÿ½ÚšJŽli¶þr¹ƒ˜°h¼!ô÷Õ~|ØR;!RË.~¢e?¶ÔáÂÌÈàé–‚'¦†Ì'³íyoöf9¢ŸËõÊ_‹ÕV6k¦·âë–NÈöL7Éöæ«:öæè¸U 4R[—}ßÜ–s[Œ=˜áò÷gDõ[Èz1ñoc}×OCC÷cM“c=Ý}®;ýÑ–»7ÃÀ-÷¡CzX)Ê*Ò»nRÙÅVLþiA~ÒïèèoÇÊB>I +}ºtçòiÐÙ“ÇA§½»uñ>áírV~ÀF?:æïY6íç<›fÓs´è×òF«‰jô“qìÎ}«]vAÎ<…ÎIŠý~„s¤:3í7vjÌIrì—cø´/Ç"^ßÅ<}p´±<ëf=,éºJ \ë£%Ù¥Œ’¥.|ÄR'îëú;cº““(»‰ð»­èŠËUàâ?èÉ)ÇáaG‹Þ¿=Š ?ÎK ;‰þp<ëõ«#á‚Bî^…>¼*øôìH;4óòb;#É.@·åUôµq>ÌÜMø:äòtkUöd7t„†ºÝŸïG—]!`žõ£ ·{EWŠ3χ½?úìÆÐógAan¥¥„ÿ9D-¼««ƒxƒä¡bv̸ME›Ú+‚UÕyOÖ%¤R¯^Ä[¢gHYër&ôÎ$þ\ÏG¼×°a/›ÊâÏÐS¿GF…œˆyþè("ìㄘO'qá~›©EÆyÔT´k’Žr¹ôµ \üº ¾.}tS¤UÊ[šI!újòû >åͳâi76ó– /âbIèëÅß?ýx/ôèÒ9з7R¾_jÇ$=prB–zà9-­Ü=ÉFy|Þ”PÓ7$„x·–…ô9§–œ3ÓQ¨áÞœªB½1ˆ°*ó’þ*xÿúHɧ÷G1Q'Nà¾þANŠ8 Œûxè½GÒ‚_œDĆž©Ê;¹ÞOLtiy示.aç/÷!¾Ît¼_E[áÁ³=¤0cúÝ„r¯–õW;óˆ•süÜä“”ÔØSQŽ]ûówÐUà¸ô×Iн‹gAyŸã}û1Ãoøg™)pO¢3çû²‚õÍñÏ÷gidYXiSX2JLØVbã=:j±CÍ‚nHèù˃$°¢&,M¼ÍH‹:-ÊÿýùlÞ§— +£¯Ñ¯(8·—úP©¿–85ÿ·-˜—² +»ñ¨•\rAË;I-Ì9^ +{ù ôðÚyЭsgA¯\ݽrtêäo ›gNƒBŸÞå†i.O;§fßÚÓ“ò]Fj‰ybd&*[y‘C•Äçõ¨Ü¿xÅé'é9©ÇK¢¾ùþì.«·@ÉÏ@¹ï߀BÞ=½týâ>èÍã› ¿Nž…?bùó“#âü¨?MˆWº:ÈÃqVñõÉJäãÙ6f”²–õ©D¼Å(,9KN9’ýõ+(ùÍ;ÐÇ{÷@wϽ½zôýî-Ðë€K  ý:Îÿ~÷_ 7×@À:“ÑÁ·æÚÑï–hñK£b¤¶7&¢¼lFÃo´`×åg©™)Çó¿|<ÿò(3ø5(ïM0(þÅsPàõk ûÀ|\>{ôÛ±c »çOûçÄÉ‹þM[ {¹&GDØuˆ„ùâW¦F€ÔÔ¢M53ÕGOãžÕ#KÏÓŽC#¿†~ÁÃ>ƒ"žÞݸzqí +èüÉS s¿Ý¿øè&ðyBŸœ¨-¿4ÕXôÄ:Ž[-}c•b¢Ú¡¯æ:0Æ„°]$ÈÅêò‚¿ñqÇ˾€²ßb_<^»ztá<èéÅó ûçÏ.œútòøÑÿá\P0ﯮS ò?út<ú¾EX¹cà}FðÛrbÚb?.\S}Õˆ_FFGü†Žˆ>šüxù2èÉÅ  Û·Aáó~tûì9ÐÓ+WA—þütüè1ÐMàzɯA´Ì¨ ºZ컕!xSÚ*vjª…ÛJ>jy”ž¦ª‡>îg•ˆ éçp©áÀœ„‰|öôüê%ÐÛ› /wï‚nç;sâè6p;¯€þ:ñ;èÙ¥Ë hä—ß$ÌÂ{úš¼û+}åŸ}&*êßUNåÞ¼@¼$cä-Œ²²ÍÝøPe5ôÑ»âÑ ö¼¦$ç<*&òXÂë #O€kÜbâ€ÿ/]Öò߉AÏ@ðÐãØäï§§;Ë¿Û刹q^y%úA3r‘/f’¹W+©¢¾ï¢Á*!وʋþ!*Nc23N„¿ =¸vtˆ³—×.ƒ>ß{zx9týìÐ-`½.]°ã(2è9ˆš{BÁ‡=°)…65­`aùe¶½è…]AJ_’²ó'{qÃ5Œ·Uh̵¢„˜c_ƒž‚ÞÝ»Š =¿q˜ã?@g~û ôàRèâés ÇW@ÑÁïÆ¼|u¼² áÊ\&|[NÉ]ÁF® `CgÛÐÌ­ÄÏLÔÝ.:æ¶°|¶ <ìHò‡w „à`PtÐKÐó€ ÓÇO€®Ÿ:ÌÇUÐë{OANŸðâ,(üé£#YßÞžaeºT´²]3áá±<&6Î¥c”¯Ž╵Š:Ü«*xéeð÷oÇÓ^¿%¾rùè"Ë? äá `Þ¯€.þyt÷“ë·@·/_= ¸Êûú69úÒd-áãb'Ý*m8ÔÕâ¹nR´¥‹nè$|m%—^‡%…}ñôâÆ5Л;÷@Àü^üãO /ιxöSÿ;ÿ+` oÞ=½q Töõh8ñX7,þÔZ?*æç<¿Êc¢£¶ |òª¼’¸©­©^” Ã<ä}~IîIx|ô±ØÀçGb^¼æ&xë6èÏ¿nüu¸îuÐã›7@÷€µLzýá9+ýœ–ñhº£â‹¾!+À0ÈJ©&ŽŠéoF«aÝDÖÓ64éFõH £ÝA¦@ÎGäþ‰L.9OÎ-?ßϨ‹•W÷TXºÛÉkc Œ y%Þ x>çTµØ>Y#ZTV¢Uýœä±6zÈ@%¨‹I)†Áª¡è ÎSj.. 4¶ô<8&÷/\zæYlRÂYZJJ@¬­e¤/ àã»!/×1á6M%}C%¦-UãgFHúZ¨ž|®–wSR#Žk×D°á¤ø\È¥Š„œ?Àa™'Þ? =ºzˆå« [®ƒƒ¿œ ¥ÜhE`ßèëé³Ôè )»Ð&¢­ãBäô§@O¹ÈÇ’rÐÏ¥úÛ66óY‘vRŒº’ô%þøÛ‡ÏAwì 8àÛ½@Ð× ·GÃ߆M K= +NÌ?É./½;ĆͶ¿95•Û8ìR²> jÏ$ªÙ1ˆVm5G7TS:P×/ÀcoefžúöæÍ±°gÁ ð×ßAÏî<ÿó(æõ·ðìòkæi7‹þnŒGÿ2ß[C³+êkׯ8`ÿa›àBíÜŠ•Qa¹e°£içÇT‘ƒë¨ÈÛ˜â²KyQI'R¾Dýòò#ã·Ø½:÷ÇÐã[ ÔÐøc¨”’kí$nÜÂPîbTØ”l‘ÏöÍÕíÍ‹[wgEk\×OˆT÷2b»X¤ûM8ü].¸ø1+û<*#ã,$%õÜ÷·Ÿ~ÿø9(òÍ{P짯G¾Dž÷ñ8-í´4`¢Žº4À…mɪé[òJ‚MÁ.]edšAænjÜâx5QÑÆM¬Æ–\C¥ÅüÿñÍɬðÐßá gÒÂCþxyÿèõƒgdzãs/%Æ%žÍŒK8A)(=χ#v±qo´õˆwr^Ö•ÙNÈ—ýaÝÞ‡èÃÜm-oÓW‹–UU4y+ý[5~“ý{ä«7GÂ_‚r¿Gò£ŽGütâåýë ¤/oŽ"sSþ¨Â”ßàP¦û…ðM9áѱPN#[°¡njZÌêxuq¬7ÛC‹24ãÞŒða; %÷ÚZ`«ìµáFòÖD5Õ¡3m +zSÆ)qNŠ9NS«Úa®j°Mr +6Īà–•\Ø¢Š ›¯ÂÌ ÖÃôí̈©NÂüX‡pq¤W´4ÚÉh€/ôÕ•¯÷Qc}JÌä—K_ÉØVÑ +¶d¬r×x]•KÑ5jÓÔÕ®*˜u•˜±&ẙ‰KÝœ¹ÞºRmwc±n¨¯êé!IêG…u¡4Ú³jø\3qg¢R”¶<Ô€wªªvT u;êj¾g’ƒõ9¸Ý)sg²’µ8@Oî F.± ×ÇD°¹Q‘º½:UÕÙ˜¯lkÊ”Ö5ÇÈkk£Æ…œì=MSm†¬±.¹‡Ç î‹"&úë!ËÊ*Š]ÅCÚ•¬’ )-}±öÚ.Á§ÿ=W'ñ8¤…Tø¢ —¨b§ö׳> 5VF·´dKZ›³ëˆè€6Vݧ>Q{L‹ÿJÛÌ ë¯-]âçm)p©­Ìm®95Ž©úöí©Æ^¯¥¦ýð€»SÔë)eIŠ‹R4W¼P´QÂ1¨¬´¿˜åå7ºÄ ñ-<îÇjáç.÷yWür¼‰õuAÒ,°Oö¨½3u½;fq­w®A²;_;¸cÕùïM8 L؆š–7?BŠÕü§hæFª9ß-ýUÅ3’®ª©ê2m9Ì0ÀLo¢‡ô:¸‹~ªêlGŒ·VÆéx™ •h÷”€õÏŒ@øÏ4WäÓQk£¨ˆ¥!|øÚ'Ï*“5¥ÌJ™Ùæ.ܧ•ARÌŠப¬[¤ˆ3£¬ÄK–^V–ax¤y¢«,kÆj{ÅEó’FšUÙ ÚÖ𠫃ˆh(öâÚøíÞ4‡¸ÜlÞ1Ñ ÛjJžSÏ'¯(¹ÐY%TÙS™>Þ*Œh®I”·°¾«úê*Ô£lýX#vFBMœ&FMàCgû\zÕ*ç¡æºàï6G_­×H=Æ6…×T×éÔUWZÕ•ä-@lŒâµ¥¯ëJ¿õÊ9èI.ySJH±É0Ñ›cèH‡ +ÈU%%{g’…ðšÅÕ[v…[äÝT«Ìgj‘î›êÚ}3â«–ÜT’3‡!«Lô²›h…âCS¥À3YÅßQ×±Ë,ñˆy»SäÒM%.yKÍ(Ý™¬oÚ¯á»U‚UÍC­NðPVyÓ=)b:¤¤tû 1f­¾ØOŽY—6q×€ci´ +±>Vƒ]”,÷Q2^Å®VÈØ–û{ˆUÖšZäûÆú·–‰tëm%l“qJ7F8…žÉJºG'b;4<¬[W]mWÖ +¶ÕµÂM»lY‚Z‘ࢬä´Í1B¢]É)·ôrRç:EeÏ„g¾fÀ9EC±šáP“ÁN2z}°à™K…Jú1+;'yx»ŠOÞ1U·8,u=˺úÖÕÉ–îM{÷Šª–93HŽš,ɪQ*x×LGï›ìC3Ÿõ¿™ëœJD‡–œïÔ³qîQ €ùþzè=¢}=¹øÐLGºµôb«ŒY ¨†à”Ä>Àó–ÔÃæ‰ÊŠ95gVN/ɹ0¯Ñ_·º~È7-nÜÖá +v§+[÷æZ¾Ù껆Vh.–Ïè.°¶“L¨k’[£d,tCßl«ЩÚÖÅ>ôwsKÁ£ÅØWã&jIIGnjùô ˆÙËÏx8;ŒGœ4곈›|DœW^ê•[†‡:å”lŸ–ƒðªÙЃi>Ûcdá6FÊÞ¯÷ç-´§Þ4Ö¥=Tr¯-uæ|òN‰jÍÃ<º¬®ô릊÷Í7©÷Œ"ñŽžZ„Hùñ甕17¶°¬Ë¢nÇtM×DcAˆMA€úkMî[Â]# +àLÉŠjlÉy1ÓSäšár\óµÀ8œS‚×"à¹,¤×D)Þ™Ägº”¸¤aÈûÕÁÒW?—…Í»ú¦>·ª£ß­níq隺v&e.)Õ*!ÄÎ4•m)ðS¥ï MeÏ6Gˆqöq\œ{’RèÖsœ +l¢WG/÷h)¹{@ÜíYZT{¦&‰?ögølÛ$¹`SOØ”áâ·”¤uSö³ ~ÌË3Uí»¦†^·FÌØ–­#¥ol’ŠþçÚ6|f„V<ÌÍ{³1„ÎôkÛ=ºÆN·¶¡Ù¡æ æÚ³­vƒ7áŸ7¤ä E5*NW‹ÎÚ–WRbì›yTO«½)\Ž}¬8d¦=úº[‹ûŒÕM[“ª¡þi[ÃBzt•\¯®ºvW[ÉØQÓËÖ†‘±2hØžE ðD|?Çl)Xm­È©¢—yôÀYX‡†èAÄGÛ0-kWßÐ院"Ö%åWá!@>¦ìëñ…n%4Šþ1#¬ÎQîÒŠ³Mò½ùz©ÝTÓî0Öµoë«k7UÔ»’”éаÊ=S\ÂÞ4ýßuQ·¿Æíîá3áÀ?fÑù{&b¡C…Oöê(à½.Ó©¦Wxü}À–õÿ]àòþc’v4¤ì….Ø;s#4xKÆ„î«:v¦«Ú6´ÔB÷œ vw©vìç’¸ëÿ-sÅ?æØ<‰R±(É ô˜ñÅ>³¸aÏ"®ß5WŠªû€Øâìëy``ÀÜjbÆÚPAàZîã] ¾2B/t!¾nÓw ´gËÝ[wï/ˆšìzj±¼1åéü0ºÂ3SÓµ6A-pLÀ"§He‡fÍfÊ­@&¬öfÚ(ú²«§”ÚåôbScî-}UòÅ…Žœ‡;ZLŠS‰L?0Q±{ÓU­–!Tú¨ :À®Â"—jF +bƶ›´*C'Í Âc¶µ¤Š½Y^ÍÁJ­Ì:%®îf&XÇÑE¿fy<‡’îÕs\*Lü†¤øítkòýMYqÄÁ"›· ðÛ¶–UáµTµx¦ëº·t<œ]IHÛ¯øì‡¼ß) +¶É`Qÿ¬ +[*6|®“™»ÖAÏÛ×Õ6š¹4@§ºÙü¸ØS¨f^2×—>·ŽÒRmøˆ-6zm âíÆ@é÷8*êÀ¿Ìäâ—¸ÂÃaõ®‰ø ¬Ýßk|«ˆ™. 1kg’ +^“ bVúÊÂÍŠ›}¦šF§’rS²6{+^»%˜˜ÃI.Ω 4Íø°v\êµõXôO£€ëÑpÛrV1«`» —íTS¡;:>uCYCÁR®7U$Ûe<Ö–Švhð©52Ê©FÅÚd¡V øó–Ÿ¾"£fÎôà¾Ûå|úÞtÝ€¿Nû–‚ Û'¥Ù%Ðåî¼'›£yAÎI|†¡µøÕ\,Ì7YÛâ×€­€èP1Šj¾uîTa“üýiW÷õ…OÜÎØ›âñ÷g+ë.p8ûf|Á¡™Pt`¢@–ºË^ºLÔ™º‡–Þg;õbÁ¶V̵«Ù >ë-<¦ŸG·U˜Ïn‡š¶£Çgûô”²CSuó¾·¼:PüÖÔXôÌ6Š‹;0±pþ^0ûFRáÞ¥ÔŸÏ&#fì[¸Ô_s|¡U¶©Ði{K @OÉ]“”ò±‚×¶‰²ï»fbñþ™p°ÈZtðê9coº²Ñ©g¡€ÏBòï»Ø7ðÈ»zuèTŸî5riI×d¬Ü §_€ ŸjWÀìlú–›â˜Ä&úL”²½™Ê îzm>eGϧZ8ÔC ²oÀf.v¦Ý$¾<©FÝß7PÊw&yÄõab¢SéïuCÅù,¨4«úm©þe¦º:† [—·”Ä<Ÿ…MðèÉEceõŽ©Q⛯êò- +€×aSÏÁ/ôcBÝr¾¿'êæ>vÏ `yõ¦×È&ú,¢öKÕc?Wøu;j©[G-Ý›k1¹-õ}*lKE-üw‰Fùï…ðß%:íÿ–Íÿ·Ì«³)°tøµxÄ­_ZaõO@?{Æ+¾læ=^iΘ­Íº±ÚVdÅD ³ò³ÞŸß¡æ¨+)?õ\ü¡à)2Å¡(þdÉxø™õã­KOCüZäVyÍ4¸]M²)p‰..eW‡Ïö¨°9ÃèÈÍaAÙF/#Ç9JNôÈ(iŽlÄfö«S +ü,ÁÆXûK^.wfݶI _œ +jÎj?!×-e”nJIiË#èˆå~|Äö§pg‚]¶£e"ì +j®?÷L?]³gä^‘”n'$­I1¶ *Ë"ñ®‰Ç4Í©‹v§ªª ”’C=:qWS²%ƒ~Ù ¾mŒÀC¶”4°¹ûÕ¡Ò¼SÕµ=æðÚíïߥÀ&Ïö£Bj‘á×—úP–êÖ]sUÛ@Êwj ÿG9ðp7À-`¥¬2!$ì¢Z\¾7]ß¿cªªÛ´“ÓßSE†³Ã#Ü&àó(ikƒèP»”š`ªí<¼žÏ æ{´´KŽK[ë‡~r+éE6 1q€x~¥£"üÿ-Ö ý»!tÆhq€ë2—`!3ÅÁ»vg^ܼ®bB¬RÚÿ[·ÿ»$nÿÏŠ°åÿ­ò[v˜Ü•‘ò·³½Á£„ØõQlØî$ùÃ$®òM +è»:Ú­ÖOÿ>U›v}”q~m€˜` fŒ›õ@#N~àÒ’JÌrØ/òD‡s\¶KÏF¯O0ŠÝSÕ-{3µ=[Äܹöü‡‹ívÕ€O›¦¢~([Ðo–꤫rFÜÅ•Þòø íVÃ"¬£Ð¯&¹õ†K'¤x§Ù‚] ™èïOòw}@þíšøüsÄŽ‰‰sLRÜa@½f6ñÇ—ós–ÃØÕ“Ê:‰¡WÌ]°ìŸ ŠŸs~ì¦Á×dà®)x¢Û€L9°à‹ÿY¬l÷Lqè€ay§ån}•xg’ óê{zZÙö4d[ÍÚËßÎ7£"~NŠ>%³Ô+#¥ïHpñkíÅO@,º¤äôå~ø·6BÄnRàÀ·Ž Záúüóò@á³…‚g3]÷½ùEÀ_•ã úùñ·– ‰/U÷Ìð¸@Þ–¸Y,~+e~?çߤoBã|°÷!ã丹†²'Ó5¹·ÌUÙ7M¢ô«Qòû@é[‡”œ©m……å‡?û³ÿØ!£—n+9Ø- îÕRÁÛ㰈ŞÌ'6iYÈî“äRQàv1wt”—›äDÆîé±;hÄÊ`Áûåî’÷5›°chèÙÒ0Ý‚M:˜$dïªÉÅ.5.í%¤mɱ1£˜°©Æ‚{+ØD}+$a¡«ä£GM+´IPß7û!¯¶½ç› $è¨e{š__sÌÖOÀ+øëžl£¢~³ xïÕ bª¹ˆ5)gSÐ1ä k÷,²[K)ÚVà³Üjj™s‚’å⾎ÝQÒ!þ=¡»S"Á®¹¶mwZTeW“m2BÒj콎Î3ŠNý1UYå0É­£•; È>àe¼zOÇDn)ЩV9&c[M˜E5ÿõ×Ì5ÿœå²|fJÙŽa——Þ-k“B¿Ø¥ˆ¯6Î=AÊÚÃÅ:•”/ðÙœjR¾U‚ŠÛ臆{ òœ„\@Èþpf®›õs¡Nº?#jÚÑÑá56Ù&'¥xô[´ )>i]BLß”R ­ÀØÍ¯ÍU9­°ËÍ…/mCˆXÇ)g±öÉ¡"þXÔ.²˜»f<Ø­C'ÙUE_lŠü‡3¸¢¿™äm-%oº«ô¿„gº²Æ hûÃqëÏeQ«ÏB‚ìè`1+ýÅ/-myOŸ¼§¡¸4´â-)!Î%¥ùk í˜Hç1uOÎ(Zm+yní- ^h/x®Æ^Ôð£O[ª²_®Ó¦ZÊ_/´@ƒ7%°UÆ‚ls`> ßþžWnÊðÙòªÔG+=ˆ”C€]@¬n«ü¸hžQd”F”þl¦©ä­®±,óöе›lí!Çøù7&9iç5¬Ô &Q6ÀaÙ7RL¤u„šÙÇÍ{öêÚQNʇë; +.Þ¦ A×$ðX«òe¾;힥%>`{¼[ꈹ®;³Ü–ûÄ+§Û'8Ðù^Ôgÿ>æzö@'`8äœÍtèÆ ò3+±k}WòªÜgÄŒà? a×v¾6„\n?_ïÌ}á. ÞèÏy±Ü›úlß@¨ðjÈm)*~ˆ{—’ ÞCÄîÎàK÷¨XÀ].=iì( ^DÅûLü!à/¬ +JîÂ:tk mYë+û¢¦<4×f=rËéùn@³x•5»¡ˆõµAÔ—…&ðýÙª”Ëî!h˜m œ7ïùëRÍVÖÌ0 þþ¿[ðÐ-2Ì)‡}ßÕbœn —¿sŒ"BœãŒ‚ýÿõ®§Wì¨qiƒ°å~TØt7òK5-hm„Ž÷˜kÛ:6vÿàvtLØET·?]Û½6†[#¤ºu"‘kª¦~UÆ(Ð×C>O×—}pŒàcW»K^oI QžÄ.õW¼·cSö,4‚Ï‚-Ø5¢R=:Í1cBù¯2Ò=‰Íô×7cøù¦æ2°PN-³b×Äe.TÖok0‰n-*i{àRswÍ<þÒ0*£c`ç[ô‹U=»3 ¶´)ÅD­ "ÃWûaN5¥`º úÁÜFNrë:ÆÝ“uµn-åQSó}6Ö«%e:å¨è¥®¼çzaÜåå®²× Í¥¯l=°Í.èÛ š +žYûKß;Ôø´žšŒçðôç¿¢îZjÚ]>Þ¡bCÝ?­ ÂVú!Ö‡Êßíéùœmƒ `PæÞócŽ'þg!%/´–Í4äÝ®ËbfçÍwÒb4œ‚¶~Àã÷ãc¬}ÈÏ«]åAæÆ¼;ªÊô+fÒ™VØ—ß–:ˆEv‰?ßû ¬ýS«æV‹Ý +€3äÔÜÅβ๺‚g{j*ÖßÓl©?çñ¤ ú´†f¡1÷‰c ·ðý–Þ” #àûýÈ/ !qk„˜°1DŠ[íE}ZëF¾·ùï×µb>XjPïdôüg–êÒwc<˜B˜wKFŽøÃÀ9ïƒ|Ø-û¸5RòcІîç¦<Å'==-ç冚x¼mYÉçSQ¸ÏT1ÓôÄҰЙû`KFÈ\Å%.õã×ó˜nCu‹˜«å΢g£ôèÓÕE¯ê„I·¤üzDÔýv\Äs¯ž+^&&Åà»F~æ%#?弌úí¯~̳ߌ5a·€8FlHk½øè­!RSÁĸ&©2æ—™ +;01о)>ãÀÄçüœðWOƒìIÅûFr©OKÌô>Ë1Tö~©.ýÆF{æ=:Á!ã@–z0a›CèÇ8.Î.Å&l â"×z§ª²/´•}³+™0?ž» ¾…ÇØÕ±àS¦SËFìLÒ¡a•gJ,Z—óÊ·õu m%s{‚žë–’—»À/ÛsŸ¹dð°92|s¨ðµ^umº9éÎiþ缸ͫÃd9äÐïn :Ñ*E¯„l7à +XÌÚ0â;À[©6¹ßOñ¹Þ)&zoЉtÄ­Â$Ú'1‹ýw»Söþlë”gF\»;WÙ¸;[Ùê1\jd mã¨@7$n)Q[*B¦{JÀqÞxÇ(ì͈ÜÅ1޳ ¾›ëòùŸuæÄ_%¦=ýÍT޲ ãÌÕi -ÙO6Ê>È…ñW& ç,µY7Õ Ì¾¥²vKNL±üêçÀu€ü¼Ö‡ølDGÿÐ1q9JI¾¥áä¼s +0s­ˆÔ´Klò9-纎Ÿys®!7p½ ‘´:JÍÉøxë()éÝõ>*fÏ(ªZíËzlEŸ›®J¸hÿ˜aQ½S\N+õM#üÓåÿÛvøŒÄ²­á’×óUéW')1©)®4fÞ=T‘r-í°¸œOwŽ ‹Cz…ï1Ða+ÝÅAaÜ…æÒ S +Î×k¾)*Êcnž¦ålÊp™ψj~šøì¿-Ô +ç8äÛöXÉÿ¾'ô#•ÌÍ V¡]FM÷j¥+¥¯Âä듬¸s#¨'àoŽO0®mJÊRþ³ÁofÇ<šëÌÿv`a¼>´pyfà<ãåßÕœ°3³-™OwtÄŽƒ³+éà5)1Á5É„ùŒl’¿æú¿Ó„Â@KìM¢ÓÜJT–KO„,U xçøu[zr!à›Ë·}m“cRv ¸¼ƒYÑ©gÁí*:xG/ª\f!÷Bž¿žOÃA8Ƙy¶BìB{ÉS0ÿîÖlBGMU&_Ÿ®N¾é¯… àEßX4†S +ß7ñ8› +6tyëßûíÓ±Q‡*ì×<ýkF>˜Á䯿²Ž¢£¼:fQ‚H37ûûœóQN™ãÓð°N.È…Û´˜ÓĘ?Ö¥¤ÔNæ5?ç±k„Y´=Bˆ›o*z²Ò^äÀB§j3îh‰—ÚJ^ÿ0VVÙ¤ÈÈé–¼ÇsEÁ³mÅÁ‹Í¥ï¶½µ7‰ÏÞ”âã7‡©OW·ÿ;'nñèèeÓmæÛ²ï,4gÞôÒSÇ89cc˜o¬.¹¿Þ… ÷(™e›Ãȯ+=ðJø^]IÄ)~ÎÇS=ÈØ+¶~ròü‚˜úú¤Vœÿõ`’VjnH h„¼:F‰» ’¢_Ÿ²÷å¾tI 9?O`U S§ÓŸ9´sÂ*·Ðè:J᾿ž³‚µÖ_òÒ§c¢ÿž5í›9ä)×3ÉÁïjÈù;ØôõnHÈR{A ¥&ÿîR2d„‘ÿJXðåúRì›}”–g Ýc„x÷&a½ •¤­Ì{ÖPüñwµ ÷›WÁçí(h%“‚¨ó¦šŒ'k=e!?§)¨}#‡äÔ0¡ê¦ÂO#ìøÇ~ÍåÒò·%èhÛ*ÐWQÖ~@Çt•šEEÏÆH‰W¹É/a#žügžUéQ³Öz‹_l–¼wHÑ)»:dêÖ™lß4 iFPQ‹¨ôæëÇöõL’m0ïÕjOòMëPAÐÆPá«3›éÖñ©6)-Ó­âÀ\ +FQ4êAúû#]á'¥äˆ³Ë­ÙAZ2øï9¾èÇ‹ÅÈxpT%Løôs†Nôè°¹+ý%ow§°™ÛrX¬©!з¤²¿ý´¥â“'*—FˆIîé†1ßbóÔß‹žg¼»ÆðI; +l )‚’’· aÕ伕qZöÆ8#GÇÁ8' Y#2Ém( õ{&hœOO9´0p€^¤Èë3Ÿ©……_÷ -À6=pÖ.}ªJ¿®å$^2À=„X&øÝ©dÔ½1.rº±ðù îË) )ä´AYÆŒ<=N8³ÞUòÓ,® @ßoŒb“¶”,¸CÁCxU¤,¯ª"Ü6VðÎTŸrksñkºªé‡E(t(-Ö ý¸%Á$¹eø4§ Щ +l¢uùíu† ±þg»Ë_mJˆ)KCÔT%¿0@ÉL¿¨b¤_Ñò +žõàb/P®.õ@Cç;Ê?j…iWåìÔ{#Ää'Ëà? ðËÈDíM±°Ó}et iA¿fy‚_ üj;€+à—C%o­#€‡„üœãr½F&fKAÌØ™¤A̪íqdøb{ác%3ö/ƒ(áÂLsáÓ…>|TUyÂuÈ·§¿-t–G±Nt()E¶Ñâ×:qâͺ’7gxiÏN(iq€þ#æxT<²©®üór[É[¯†^~`dãþ³ÈýšfS<“¤\——è$ç»´\ÒÆ(&Þ­ •^Ò_ÛÕ!ƒ¼ŸoοßRv’õðˆ0åñ±qò‹ÌtŒM‚‰ñ¨ˆY¾IZñ‹÷èð™.=`^Ý28Ïù[Ãeß<*BÁÿ·Icü²à =ZxÂá"§zo¹Vv0ËÀÎZÔB‡:.mg’˜½p“KA,0Ve?ÙP‘ó&›!Á6)¹dß âØF±ÑK-77{²ØÀ¯ÒoÛ‡Ñqž)6zð8ÃÜãèx`ž²]ZZ1ð>f×Ì!þï»ké8nÇHÇînüá? U=@žwï“ú+>íNR ?fjºÌ"ñ o¼jrζ¹Ñ‹ü¼Ü…ûjiÃ~’ ³îÎvAÂ×%¤¤1zÒ™œÿyÿŒ{ M¨ïÔÜíQ2Ø«¦ùûÄ,£¾nxéšâÓJJÁ–4çù|{ôå©ÚðsãÌÏx”øÌ=3àw|úbôÃÀ›>Ëvµ\ô¾—n—”¼Z( tŒ!¾YGñ‘ã¼ü€ aî½µ1z麂Ð×—=éÇDœj*út¬¾èë1zÒÓ#jnÂí #ˆ%ï/UD¿8»ÚOtË™Å>%1Ý5V2Û’úx‚óýÆ0í믚üß•ÊVÿ +¯“²ÖSòr½¿ìõî$>çÇ›¹?Ïaû½³C…M4 Ì«gz únµ·âíJ/ìûö8.Í©$f¬Ið1úÚâÇRLÜÙíXüž‰R¡kL¾£­¥ÌRŸý`’“qe¦!ÿþ–¿­`—š[‘o=Z> Xúr{þ³&pà]7'å¤Ðßuìøs®1xÜÿ­óš­x™¨0è´µ—ùËRÓö˦þ4cóMˆ4ëhÎkKs\ÀtKÜ•_ó•;ÓMc[‘Ð&£æþ˜·Ù”Ÿfno’ZìQTD®÷en}ù{QÐà0ˆkmr.Úg©¬ÚŸcS½ZbŽðæ¶!hH:âŠ(=èm½€±&%%»&©¥. ÃÿœÎ×5 –6zJ_­wæÜ_oK¿çC¥øïá蚊® Ѳ·äÆ6vs ³!A…ZeˆP‡“°cb"½Æú.Ÿ¹Iê³Ô÷ÎÖõÿ˜Tþšã €WÁ.0Nß  %'‰™v ½Ø©«d¯býþäól#äù\Cé#ƒ0ýÚbká{ë0"n¶³âÕL éËz¿¸lµWT¶6įŽâ×=¸<ý¼0è3’Á.€WÇéùÛ +f±G#b»´løæ8>Á©ÆÄxóI6*Ö*Ŧú{­îè¹x·–ƒòè€üÖ³Pþ^]‡Ó¨M†ˆ˜n+z¸Ô‹ +±N°*ÖÆ¹™VZÄ\+jº¤¢æ]•’“/hÄÙO´ yÏ;±g\ð;û(5{®½ôµ¹&õ¶} äÓ|kÎóéú”;ÖÁìçÓÈ”]#>gu¶.ÁÇ훬=8áïO³ÈÀ/ÛÕè¤Ù®¼'4z[C)pHÙå>MÛð¾¡mø,¨å²à¥þœû¦†„k½°·Vz`_ç°Q­¨ˆsK-ůö§¸ä]=—¼3Ép±+És=¥¯'+sîü;ëïÁÉZ•·úõ±‘Cÿe©íú >à¬LôJ_Y°Cáßû% ™šQ߬2r¶ðß»“Ì +Ÿœ õH™û .A.L¸ÑOйáV³±ËýØd¥0íº}“à!zo–Ã8\à°üó+yëcÔ<—VÀÙg}zj±C‰Œ_î)Þè…}Yë­xã¯ÝeíƒFI™I÷W)˃ø| +ó©’yÇÚ‹Ü@Çï«é%^¾Ò_;ß‘öf¡-õö‰NÚ3ñy«ý•¾ì‡«gš2m—„ü³@€ùÔ¸ka³û¹™oÚˆ©ÏÌ×LWÖìéöaøç¹º¬;:AlÀZÁç—ùÓ=°0¹ꚪí>X®•:•´‚å^ÄgÀ§¾YîÇÄyut„g†ËÜõ×{7RË6%Øhë0.Ê6FN]ô×YjÈ ˜oJ»­æ†]˜iH»³Ú{í– ³]ð(¥(ùúj?ì뎚˜÷cšXöc–Ù›càw§<ŸI(Ú³TŠ÷ÍâÚŸsõ£þ>x?gù‚½i:Êi@'¹M„\»”cèCï&¥Üئæl“”ôô+ ÁGër‚Ž)Éç7;‹^ØÇÈ)¦>rB39ó^7%òÚê"tGÅÃ{µ<¢×@ÌÛ3áó·Ô€/èFÝœ`ÃíÊjÁL%~aˆo fíh¼0!“þž'Cþ™ãñ-"10FÚ¿g©íÜ·ˆ«}f6Ñ­ÅeÚÇKBlã¥a%Ç%ç–¯PSܲ»Ý˜ìíÐØë呵BÃÏ×—|=;Dˆ¹2-κí’Ð2Ç«ÀÁ˜˜‹Ë½¤\§¼’°>ˆ‹Þ…|p« _ì2pw +•ê1Pa6µ?_Ýë6Ñ*vŒ¤Bî6`óœz&a[KÇxÍ\ö†—°1ä¿?J(²´¡²ÜrǸ<Ø$÷8.É6€üºØ +‘‹ò +Š>]éEF­ ᣺*‚íRlÜJ?2l¶+?pe¤øã–ä#qªú]Y—÷à|þ¯¥ªÞC½H©Èê¯-)EDX¥ðX»’\0Ûƒâô¡×ÈåîYø<‡ +Ÿ>Û–õ@ÅI¼(g¤œkƒßë:gosg™…ß]fbÍLÒ{ƒø_7û¿5ü½Û¾2Ùúlc +› ÄVÚŽY4°cæ±w-ü®+¿c`b +l-ÀH„=#ª,®‚憤àç¡9Ø+€³ï[ºê/ºE‰Zsõ7—9…Vªn„$m7ň4·àÂ8êù—+ã ä6æ£ >´!+€X×a*v± äŒ]õÑ!oç0?ØÙ´£Äw9ðÍ;÷… ”fË(æí<¹îškš¬`VßžjÏþAK­LÒ3Êï»EËJ[žî¨Q…6À—ú1Ù§$øçßÅÔØšc³¿£ã⣚Ä>Ëö”°•»1O‹¨°%+³˜Ç)ü}Ÿ{Ñ>‚Éwг:Ý‘¼!…¤nH[ŸlëÚß}ôáàÿÞduð +ŇnÁ`ÜBNÜ&¼÷Ð9¼ü±#·hzß!èÙâJDO¨Ö7IÆ,)°¶î‰0ð:ª!Uçiâ¶g«Ã­OV§Û³JHÞ K'T¾<ë7<ßR6¥8†³N[û³Îy&^úª^.÷U¿Ž)aÿZeò|2DîRÓ°Š +{ïIÞ»ˆ¨#{[qTS~OJ¹÷¥ûø›é†7yY¼5):×1ΈèY”®~Õ]cÿ[!ãþö¢vŒÐ,ÏXÓý¨ŒT—3›w–8˜cOÏÂ{o÷ü±/ +/ rܽ —l,@ƒ@^xÊ/®ŽV]Iô@°4ßðô#žnO Ú×/L¬²ß”´ì3ƒ'ß³+o|M/½öÏÐã¯ü3¨"ÿ./ªBìšñµÛFBó±Ã?ruNì;»Ë Ô{“Q`Šö 44 ?È] bÔÄÆmª˜-A¼:BÏQ0ê/ ë_%E–ý¶=ÏÆa/½ý•-¢œ“îÊKkÓ/ÝcmO3mÉG&,*ÃD夊m­5¦gEUÐôÐ"(Y×™óÇ?ÿT`¶1飋L ­[Xæ–œ×B²—±­ÿqÛþã$´ý•èÉl¥Á·Ô¤ê?o8¤=S§(ªå`CЗÈüŸ† ™'uœú+#ðüs¢úôS®döÆ,¾Ì3 ~°2Öž4 +÷ë"5ï|L‰«Ž(Ùç85o[xRÛÙôjKÃÁÇ ð¡×t`CÕíZà€]"ócf +(¶Lƒí;„ý‡NŽðàå#Wï¾½kpß.ìÝÖß-n½gj¸el¾ï@•õÁ’ÏÈ™ÆæiU¡ ø«enÎÉ%zÚOŽžÒë¾ ÐK .û¤‚Sv÷Ð|a%²È5ÚpË%n¸µ™èoa$5:ƒ¾oŽ|Øiv bx‰‰¨Eì]Ó°üƒ‡Û½m&ƒ€±¶îãMôØÞ·Ñ¼†-Ùž𻇷—È-*ouôÒÜSuÑ#%‡ÕÄÆ#«Ó¯AÕ¸¦:²·-þW0_f ã*¼Dj¾sèàwo[;û¶L¿†R»m°-‚î6^g\Go÷Í“ +=RF…o†Rà—áŠíÃ-ψ%w¿éjyqzG‡ëˆëÅyÛßdÓû@Å¥€S²&çÀ½Rj3À—„÷žpK‹)ÝÒ ‚Pú¦¢%×;Yó8ªA”íÙyl÷½Ü*ƼÞ2²™ÿ^éQíI fjÝ·Q‘G.n÷¾•':²ðØû&bWÇBì ºk·uŒŽÈ­cKMhæ¥}K†y·½H(Ž)ñ¥‘…Ž [_ñKgåE÷0!½·5ëû)TöOK‚òË ÔÂ?¦Ù'ñ¹§\½µ×ƒ ˜S/ø®{™½màCjûÞ2“tèMnÛ]!©ÞÄxßT{òæ2[+,º°­Ä6íY»ç`Ârl¾MÔpyôú Qõ“OUŒÒÓÄʤ¯ñy·¿rt×%ÇU袘‘S#óƒó TÏhÙ=“ å éù‰•Ú{ó¸B­°ä÷eAùEßHës@ç&êšWüÛ‹¿·¡j6kïÅuˆ²¿8ý··kú?n6wOÙšŸ¯{°§dZ¨ˆ f•ð<[_íŸ)©&¤` L=à§ü¦ô_j_];Á¯~ýƒCØxic¤åVp–1 +OùnúæäÊ0:32ϯˆ[-Ò [Ö\sOÀžëºÛŸ8'ˆ•[†N~X‡¯‰(‘…q yhaR>8ÙÜ#³gFA·˜¦˜]7ÚŽ<¢Ù='¿'náPWf¡Ùk³õOâðëm"y–ÞË»h肤ú§Õî¾¶ûRDÚÏCÍÏ–cßž3³2Î&›’Ì$„f°*‰Yùø‡Ð4­õÀØÕ¹mbà<¿cÀÕì,£kŽV¨¤˜ßì•#Þ“ /õ¶§œûàëš9põ)[Nôó^×ßÎA’cZL ÀFp•°öÞ"ý¤g¼%`›Æ- ×D串 ðé¨-n 2uSŠ­ÚìÞ³@höMÁ‹·<ÆŽ™Cß±Ð{Nng|ÈmFFÇ–™ç6Y„5)¡"nb‘ýjrÝ’to VpF‚x÷»w öO §àÏ徚ÔõÙŽÒ äÛ_CJHÉ¡Œ8´ºÛI¥¸H¤]#²14—È£ØÂC‡ Ï* ªÉ¨Ä}̨‰j‰5~-µ50Ç®]Ðäïþu9¹nmŽPyàXÚu ›÷݃æÿWÂ.í˜ií^@/®*©µJaÓ óðÙN—eZµ£¥ÃÂó˜Ìà4im¼ñ†o ú‚Ž•ù“–Sz~”Ùð{ÊSŸðk_ýšGdmÌ@_Ù{š®y‡›o¬O4ÜñÏÔÜŒÉ09€>€ûdØÚaÜ›3q5¦)nšéFfBKÝ;f.óØÁïÚ·qî)d†o +äodIT« Éàé+CÇ*ZõÕbÙ`®®£JR¿Ãç=ûÞÚÙ’µ5ÈöŒ”ýáW\4tfŸ–À˜Å¾:-%¤÷5¾°Œƒw3~r÷RËbRnW‹¯94à +v íY›ÒÆG!YCÒ¾Ûrl¡c£lù¡Ðð_©ã?Àã^¶à/;‡ud&A¼ãå7VÅUwÖæ‘9|Èë_gÉeWׯ±i¾!ð{wÙy7ó—9üË»[üÀ-¾þé­è¼œYuYùê´w°æ¾s°9Í7hb9*7¢$Õ†åð° +’·!kz +è[ø®žß¹³DAìp ~yå‹5iiR`±%eÛp£›†ß¶ÀA ì x¹ÃÝØ–C´(®…fíñ}g‰XœGeúÆ;’ü“Ä|À—ËBÀë=¶|s +ôrýæô4)÷’°çYJõkÿµ~EB)vMÂ_Ø&·ã;Žl˜Öc±ãøì ])ï*¿=CϹõÁ'œkÙ„’kYä˜Q»%…¤…¦@¹Q¢BJ/¹0†Í¾¹2Ý^º6‡.v¡“½bxÊÚ,"3 '”¬NÀõØ +Bl•BÔüpž]ù4ªvm/ º{8YÑ‘j‿í¹9ü¸…Ï_C¦:^D <¦OF©Y ×þÑÝöc_Ëo×Gk®l+Á™{úŽÊaô»ÓonžùçBgEÆ¡“I>°qh%²ØĹ ¢îyp¡áÍ®‘Úq`å°]h¾œZxÊ>}5ñùûnþàž—-Œ%8ÉÄA­Ý1KÈÙX 5E 8è†Rràdu¹M¯F½«"fRë®›‚Œ%ê„-áJ-#­Ïù¿ÙÑó)‘EJU¢~{@}¶:ÐrÝÙ]ûÇr7øú¥ætÓ›kŸMã +îæàZ^ÑoFþÏÞáÆkë’†Û1yË«##­}ÇÈÅ%Ðwm9ç¿ôö6î˜$¶˜iT}àè™ðÕ> +JáÙ#'ûçÛßx¦›ïkx5Wœ½ÔR=ñÖ? ~udÁ‚¶µ¤Ö-±åÃ2ñÁJÇo©;²ƒ‹­IûzLåŽYü/ý?¿ÿƒˆïz\õº¤éYh¾=o}•× ó›”R~ue êl¾iâžV’³Nfñ#¿îÙÓ°¬?œÝÍ÷ÅØÂ eÎ}²2Ô˜¼§NhXz`úÆ3Òzs¦övXQó0°Pÿ0¦"×y&ÚòU@lÜœ…¥ÙððcväÀ·~pÛß» И–Qµ½ùè`²Ì<Þ±½s8á/ûf2t߀© σ^¹+®jYÙgV' ¯Ý“èR ¥àš®³ìv`Q4C,º=ƒ/¾ 觬=- +hü +Ÿž¼¾€L;vQñÇ"æØo?´c÷¸æ˜ƒŠ'ö…;©Ô+ w +šâ•`²wt<þß.:Ý?ÕôLIxûë2¯ðòšôxOƒ¯ÜÓTÜšËöÔ‹¨’TU!‹Ücm}u®L6Þ(À/ÃZBÝ–Ž‚‰›9´õEb}ÔȦǗ9ôˆð#r襯)Ѐ’Xž¨{è—Æ)àû\¦s ý‰•õÃ0øÅÉž–Ç¿ñëïŸïmMý®Y–â’b:bFBk@./Ñ Q#µg!´Dõxµ¸Ú¨Wæ’´>3õÖ^±w¼ÝZæð,*`À4Çì,FÐ@t”– ‰ËØt_Xۖ¸×:Üâ/KøïMÎÀ®ƒŒ:öq=¬pÐÂsíYº¾†Ü"¡ ¨åáEFýæ .ËÕ º±€/üqœñõp[ê ðŒŸ·¤äúÕiLþ"9÷û ¤=u[ŽÎ‰+‘ï¶ç°œÍLu ûf_q52KÁï»tq›µ äõC'¹c×Â"Æ bP#ÀKÈTQCöÙ•>tãŠÒì¨ÿs} úØÕº¡§”ÿìâVœ OÁß®ÌàrM¯î§ÛÖQÁ‰ºQ ,Ý+®¹5KÉþuŸõ“k´þ¦_ +K•°RJ_^;!#f\ÿ÷ºH±oðwø}`DW»Æèº +~]Ÿª»¿£§¶ v¼ùq¹³:ûo‡pì Ù øê=¦$®Dø§¡¯œƒ ÛÚ®Öëýˆ¢³Ó˜Â_bóŒ¶õ1`^ú;»‡/×Fq™Kœú?EMÉ'>Ìtd-wUß´ËþˆËa™;K¸† ¦øÈˆ¯Iô¿Æ÷ÖÒ_}ÝÜ]}3¦H\Ã…”¨"ïtÓÃÝÄõ.+²äÈnüß…’è¯×0á‡úɶFHßR“kû>¼ýå-ÂÂsf~Áù-¦VÓ_÷ª%óÚçüê§ßí›iï<ÙÝ ¾½2ºØôÃD~Ž/QZâ:f‡O +ÊTp2~ÉAïþò>h£¡vltüžNü×*ohÛ/]m}(¡–\…æÜ>Jìg³bZ×&š““-/ô°"ÿLà «¨è²öâKÏ0ôÙ*÷:®èÞ÷rFñ… zhõZ0ÕÀó†8‡"ZlqH…- ëÙØ %¥~[ÏÂì›XøNö_>&÷£;|}²ú¶QTtÞÜßö|’XzE Iÿ¦§úÅçÝUÏ¿ê«OþÉ3Ðør_K¬ÏÀK—xå×ÔŒ’_ƒ‹¤J eFðâ-5¢|Kƒ¯âáÈC!¸È˜'ƒ0P`KCµwÜ3moW{4ÁPÔÄÄFÌ\ZÜAOô<py{Á$õÔ¾ ü¿,Ñs:¦éÈ +η<^›l¸³oBVÿ/ÀÛÑqqQ%¼%〃sÔ²õQtª‰UñÛ<2ã+5ëûÈdý£Í1Hº«·ñÎ2¯êLL…+óHž¹†+¯y†j¯»†Ê.oŒ·=‰/Pkþ4ÞG•¾ë bbVbßÁfþílÑÕ%>°ðy1 ½yGEk8Ô2Û5\ìê(úÍJ/&%$aUÙ»@wÐYß9%øW´¬Ò3z~õïžQLVl‰‹‰¨ ¿‘X„glcˆ(‰=$Å+“˜)«î&±üÅIKOmî‘»{.¬&Ô¬H /6¥Ð´==¾úÐŒ­=0"+¶ä¸Jk_ËÝM ²üÈ"|‰}¼Lí,á«6f¯øpÓ7Ž{£!÷uTý²@jú#±ŸÙÒY}q•òÕPۓφ¡É_ÏáŠNRèwgOËãp[reÒÅϯ/u A¼‚©Ñó OOãŸcHÿÕ:øîÔª¤þñÞ²¿Ü)2ôASW§‘y{ùÿ4Îÿ ÐØÿ]ÃÃ>:‘U»:X¦}°ñ©äÅ÷¸üÇ_mÎ ï—¸#-´«À”oJÀi +FÑM57 Ð`™?ïÈ 9a±ÉÖÙx-2Ȋˉå1%*/®FÇÕ„ö-¡EÃÊþy]Üòæ½™E´DS\ËêÑåÛF"è/—`hÏHƒX„Jë’ åÙŽŽÔx`!wlNÁ^›ùhع'‡ ¯OM Ó_Ÿ§Z«Uþê§·×Ï~1‰/ú°Ë- äMD yV‚Svô`n)@; 6d¨ìŠXyh +vu ìæl{ÆÎ¶62M5óòÏM@ž~g쪹مȿ\øìÊ×#ð¼³Óðìo'Z“?×2¾Õ‘- }ñM?(õ”¨9åì»ì†’[}?õêÉOZÞ\ûvSއúæào6Z_îZð`¿Uâž'yÚRv¿ý?f÷ÚtGFLMG9»ÆÜ¢™÷ëÝêÜÑ"òˆQÁÙæû~)䕱§ææŠ¤#-<‡ÌðO´>HšS7Åu/ÖFªí陈u ˆ…Í÷©Å—ׯÀø«/ªy?Ìv¤+íxýµýú;¯à¬_ÜrÏ6Þp ~öU_[ʉР2'"kO3ñ‹.[; ¯E¤Ew⚊{‡6dͱ“ÅzïNœ7¤ãŽ,lZâ¾ú™CÚד›v”„²è"¹ÂÖÝrÃ&l»£d4Ýeœh~û¯òÕ·°w?™8e·fÛ“ãJL…š¿¹ËÞÒÒZãyßLh +ËÁ)K¼ü_ŒÌŸœƒ5W#sˆ¬}#ø$¦£÷<úž‰…+¦§~iñU×À#SÐÔf&îÀÈ"eĪ=‹¸gàÓó¤¢5@s/w7Þ]â7Þ°ö´Þ\ßoÌѪ ‚úK*FɹEJñ ç`ýM ]3ð*ïzFÀ¦aX2¯éÝ©¾–¼« ìn¼eâ×]µ‰Z¯·>ßZ€¼:2S¡‰3:TØ–õ­Š_ýø½ƒŠúè!#ˆÒc;4÷È +Ë8±ÖØÓtŸTþâÛqtÁÝ=+«',Gå­7\óôTý¡¢¾û‘^zû+tæ…OgàO¿ÝVÃòf¸5è5)¿¹Gáu[jR½¥¿ô’’öü')îÞÏæÎ¿øÆêŸDU¤ŽðН~rv‘ùîÑVØ‚D¿ì&yO) IÁÉvQÙ-=3ë|ÐíS´ÒGã˜Â›q- Q¢KÃRØÿ$(M',(ÅfþªçžYîmxSSQJ~M¢Ï@ÀhŒ¿WØ\ j\ ÍòÏ6=Y›i¼›8{r¬ÿê$ °“²ß6gàéa¶ 4.öK0[ +F«G‚|£ëlºæ“`³ù§»kž~±D/<·,¬»½.g¿«Î/Ç—ÛGÚRõ¯N´¦^þt¸ãõŨº£x]Zû ¨çì˜Èˆ€–Ō۹½Ç«ìîÄØo’i>I=À îGo¿þ½—7xèa²÷=ìSSµ½ÞYBUÆuØV§¤53¬Ä6EXd`ŸmJú¢§úî?䨷?…å¸r¿òü8üÍW쪇ŸÎŠ¡–>ùjšsÚÊÝ’cò4Rrô‰í暸åùº¸únx¶úÎúXñ݈´áå¶‘»«§´¸äˆW_„gë1uûZH^L-ÙR óŽÍ䶨[ê4-ÀšíÑ%!Ã?G*qµÞÕ°r~”³OìôÛÖ"ì À˜9‹´ª³¦Î¶{A)½ÊÙÓp}ùö~õý/šžžp‰þô "_mN²[½“Ôš \î)× >74ËiN!ÞFeð´ˆ[¶ ØD@C¨ÐZÆ: I‰( =+v`'BM >XÆÖî/ãêÃÍ÷tº«ë³È’+ID¯Ø˜jO^ÃßúÆ‘ZvíõÉŽ¬S~ŘŠPÓ‰)ü½9ý.HYPAªÑò²~V1RÏk¸é÷Ý#ÏM Ìá2Ÿ\"Е"ç<ùÛËâX€ü©Mìso~à¨øCÏ~wJÏι´±ˆ/‡—ú’”w韣 _Îà_}Ýñîü'SÈW?¬IZŸëkoôBž»ÜÙôúÈÀšˆ­›2Ø[ß±"¨acv,,rHÇÆ¡)RfÙ…Õtq\ÇÁÇ”´æÍ)Ä›°êœ‰Yö‹óîÛtÁOž~ä«hÁ/r\á¯VNåE;¯â_åýÑæôðTÇ»ÀHÇs‹ ê’¯·åþÞ<½>.Åç%údO6Ü÷ˆòÏ-¶¼ý— ]¹¯îxžl{騿[Öa –‘€^î(Û^‡eíÉQEGÚ–•½«£µïšp¿œPœ§V¦Ù –îªK3ˆ—_NÃ^~½Hxû‹ž]|Ú&ª¹Ä³×–~؋ᖌÎÎæGÖκGÓЗ',¬¼KëCMIÀ¼¾Ö +[o !óOûç°]=—lí-¿º&i|”#Þù¦ ϶¸º] í_$U¹'`I¡EXÆ6y­pºwtèÆ,!×$*¿° +èÏ=3¾ußA#8ÄФ’ ލ{xaUEÍ®¿B,zô5¦àþ£Ðô³ËýM7Ãw!‡²©bCÖæyûËLÞ±“+ܳ°Él™–_ycIT{Ã:Ôòp[Ïä|ðtIm,r\Oj+Èõ¹~CŠË .PªÖåŒÆE~ëcƒU±kêóMC“g‘Ùß6¿þ|“÷‹£§úæ¶’øsÝꥤåíÓ¯{¡™÷ŽŒäG7QóöŒ¨úcyh¥Â£:2 ¤4*yõ·c¬ÿø;eGNRGTÌÝBžfAO‚3­x”fC=‡ç½ü™ÿàÏ$¨jKƒ(Y¤§œÐ23~±ˆjþ´4?vÔ?Þ1 *íLê––‹Uñ Ïä¨Ú÷n®(j@V…•­)!";¨&TÆ ¸Æ¿×ùã3‡-¦VÜ+ùû?÷\œî÷«‚‰#=Ñó»bSÚòÈ#©¾noyìžc6ÎÏù$øÜ=©yGÝü2:[wuŽ Ó š.,1+Nªé•?kYµgl=à^1ò…–_÷Ç88ëÛá–‚3 øê˶î¦+®–›IÐÓˆ ™ïïx!¥–\ðŠÛÓ£*BIp•µ¹ˆ.X—SkBzÏÆãFt,øšОó¸âm#Ÿ3ñ¡Er¹g¤íñ,&ã‡ÎÊ;ŸAR¿–“ÊOŽ‘O%Ý8ûIGÖƒ_|ý­/=ÇÌÍ;mï.¾fžŸB¦~Å­¸ÿ¥¤ãíI³ò<2ëö—kƒuÏu¸zo_Í-#+óöÇ‘Ö[ÿn|ð™ •þí"§äâ»»'?©||ö³m9 ”8kô·û`"Awå°R¿¤æ‘{¤ê¢FXwS’úÓ`Ë»U„Â_æ‘9'•¸âÓv~럋øÒŸtrRPûòkrî£ÏÍš› +fé jñÝÏái×¾Õ>û^AzwÒ3Ø|#8KÎ7f¤5¯ŽLо‰KÙÑj€¸[µ­‡em¯V& IáÄ™½9€Ã–‘ÍYû[@÷@£ò>a\‹«ñÏ´$¯Kš^nη'Ç–°¥ÛK ˜{™;C(øÍ7†JÕw“çèMÍ¢ºkâÊû‘…:€G@9a-2?QÇ郛#ܷбkóä’èµ-ªE•ï[ÉÈ>¦àÐN'F–Ð…1#¡. +¼×¿ˆ«ôËpBÉÚ$úÍÚ4$iGKl>2ñyq- \¤7øç{IÓÂvï8ùsödžTpn +ñ³O KÎÓ«ã*jS°É˜‘‰Š›ü-=Ö`›rdÁŠô8¦#4l›è@ƒX‰°}; ³kåP·ôLÔž–Ü¢cW\šFåþ¨¢•žòŽ4\+ù‡Þ5ƒÈ°ƒ“¶4„ªM:+¦GGtÐlßLÛ‹€S¼k`Â" +\ybÄ¡“I[‰¿69ƒ6ù“ïÜqè¢3ýjbÛ¦šÞº1O, ʉï×;b&eÏÎá|t‹¤]¡v6ýÈÆ$n[¹Œ5))?èw(£&ê¤_sõW^rL²êŒÝ[z^Ó%5£ò—eAÙißXëÝÕYl†m ‘´ÜÙvÍ;Ì«ðŒô6z†ÉiëSØtGõE›¨ôìúXû“}#½cÛHhX›‡$¯ÎÀ2޼η³Ì¥ÅM DXƒ/Û^fâv-|î®U4¼½Ì¥†””êÐ"¥zmáìm¸­ãWœ›!A×þL-ÏüzVtQA+¿0ÐòüóIøËÏE?‚¼ùZé½fD¦;FaÏ÷y˜5¯r÷7?wÔßøèû1XÚ +RöI§ê¦]zîļÑvCžbŠ“¾¦¾8[D5¯NÔÝðO5ÝsV\=ø|´õÑçÆ®ÚËŒš?ÞÜ9ÿ)6ëùžAèC“ á²Wñ»Yz–’ÿô‹Šûç>ɽzê“Ú|ÊmJý"ïÙåO!oo}êîæ±·îÆúxÝukwáy)>ù„ æêç’Ž{_EæÛÒVæù3„œ‹VQõ³}º§'#"2bùŽ +[¼9^}]AIþÉÙ_s?$#U‰1•Ü’¶b¯¸)ÅÙÝ´>{¾ bcªåŠ•s¶·éÉgkbrž¹oée†¦!)JzÆ99éåO+£×—Áï¶µw¾‘r€Aë“·õ,´uSV¢ëÚ±MœDè± ×ôÑI'áùÃü±>ËÙÑP ‘9xŽ—ò³‚˜{imœäŸ„$mL`ÒCóBÄæ«&4Ïi É…øõFãÚ±pshÙŒ•qä+ÿ,6+¾Ä%¬N` +Áégd´²Gvvçæ äMTpEÚ^&µøÛ’· ¤ö=+—³"§>Ò04,8‹)Üo¼kî̼˜m~’£²}2B1À$%!¡leþjßFA|ôv¿ˆ)óˆ!ÉÁHZD0‚•»k"¶üµÎ8pPq€ÍUG—ˆõûbGHƒïÛXÌc›yhe`÷¬T´_…¯Ü³2™v6û£‹+üÛÉ /𶵄òÐ<6; ø“{‘dä7\ØYÂVhðoݰǫR¡c°ãɪ¸åÎÆtÓ]ßDËë`Ã5[_ë ß§Ê>«p‘Òs´ªÕľíÑúk~IÛ£ð"¼ ¤†eº¦îXGšìÙ8Ì(à!-Õ1aÛF&aßÞ5zäìžJ\[Ø2ášüòŽŒˆ–\¿>ƒËJÑ*NŹAXúW½­™_héÍ—VFiÅË=ˆ×Sè¼_L¶ÇJvÛ3cä±_ŠË ÊÉÕ«³ÐW¼t޶'º»ÔÔÕrSË®¿ ÄØ¬ð<+*'WEvòŒ2l£ØT]'øžµúrGÃ@šûÐZîx†›Maߟ§”_Ó ’'8È›…o¿k¯ùÓ1‚KŸ!Užæ”½þ”œóꘌGÿ@§=ú›öü[^YúÏcˆúsˆ‚´œêäSÄœßåw¿›Ç¤|¿€OùRŒHùf“yVÏ-¿œÇWGÚSá™×?½¹ú—ƒÝule³‚ó‰þmOݽù¿jh¿®M"Ë\ÓÄ’¦ô{'LýMŇˤÖ} vº{ëï9…ÆÚŸžhºû™ òíÊ4¾€R÷ö·ºÔ«?ÌáónÆd¨‚À$8ig’[¨{=O~y¡»þÆ—JÖpe/¿ŸÂå&™H„¿¼tÚ_NBû¾YU€ß)ÙoÏÏ`Ò~óHÚ^rïL Þž’Q².)ÉÅ·7Æ:ÒwÔ˜ŠÀ Ï9ÔñÜÈ®ýcm¨ýц›émnäYŸ¢T†UÝ,€Ï*·íÉŽÁ² Îþâsë“÷cZBud‰òŽCŸhþhå0ޝ ȱy>qÇsç øÞú425q¶j×ÈÂîY¼ErUXÍ!Äu|ZXNmÚ3šÍÓœ2õ(9UÛ‡x왤–XÄ”ÜEôºßvißqWLJ>u÷£Ó<ÝÈgV!ø†šÑveYsÊÄo¸4I®¼È(|òÕLGÖO‰usIÐék2J•_Á…­(ºÉêaLJ/4û'5£ú~¢æšo¦ù¡c¢þšG’¨i zUëV™ºQ³Tq&(Ç6D•­É«âª?ME¿L@S¾jMýj +žñ½³¿é¾}šRÞV˜üý£s?}"ª}fk–aï,ºdådü*G<üŠZðç?ú@¯O¨X­W—èéMo~ʬ||e[ƒÂÿí¥Óý“5wœ¢¢Ófæu7>5 ++ïë‡@)àœ;'¨÷?ÿh¡ Þ›HC=©)0ßözñò{vñÍ/…7ÿá3Ç,Øòêâ— äü§»&4®bw¬M@ßêxÙgFA/>£ÞøÇ>åßXÍCbÙÝŸ•ìÂç{ùÃVøƒïÝTâŽ^RÁÞ™ûk¯Îâ³Oø¤¨\Tù«Ó¹wÏ}æ•oË[_ù'ª®&kn­—]l¹ý%¿ôò—Zö›?cf\ºèþ·È¬{?;S?X8Ìvžà½•ÃÚ5‘a1=¢lKÕœô¿ +í½—ÆÅ×>» λw%¬"àß»ûTÇÞ^õCBÅÿ¬¡c+¬f}ºôê–Ó:Øñîæ4¾èöÆ 4k}ò20ÏŒk1eûdÁßV\]P‰Î «™m~£É1†{QqÚ£j@#.}zh﮸,§ÿ6Ñ‘õ­§¯ùa@Nzo¹‡šîïk)M‡& +øØJE¼wÐ);&:fu‘Zéœ!¬«ø” m_—S*ù5}‚m½€WàK¶å¨ü#¾.¦…çn«Ñ…ÛZ.Úp°­tc‰Rrj¸ùÕ×Sío¿UÒ~tõ\ÝÕs(~íD¦nëH1=®òƒƒŠüà¢â¶­äv¿ž³ÜSs= …Åõ¸ë(èADņFÕlľžÐ’è;ðMËŽ‰Õ»€Èˆ[ٌн 0’o +–ìCdm¨°¥ñe2Ô¿Dk^G<3tÜ_›b×…•]‰¾›³Ä<ï0ö €I¿µe}?Ì9ãi¼ï ×þVã›!•{& ïÖä¤2¿–ò.²×äôÚe6éØÎëÜ5ÁA 2Ð m~%«%¢£¶ìZèHï>UI©ÚTÑjv-‰z?˜ÂM€5‚Jj# ê6¥Ô²Ír©o›iE=Ÿçµ\Vpꯇ¤èˆÈ:ÒWæµã´š?{Ú3´õ€®#^»›oyGÊ®ï.óbzEÎlvÍ’KÂ.uk™ ëˆ5!=¶lSÌñL¶>Éaé»dyH‡*öÊi&[ʯ¾'ÁeŸÞÓP›¶äÔú-%¥>n¢B.¦DÌ|ºsŽV¯élNÚ·1ÉG^®ðÈË%zïéÈA¡dsP¸!¥–o*˜ Û0â©o‚œ˜œÀsƒ ê×`åÕÉÆ‡~á)ûPýƒ--µyŽSs]É«¿»m¦#w—訖Þ3¢ÊÿöB«íÍY~eëËÄoØÐ ôšÄ”RÇ$"åÀÁ ÅÍdă ï"Bö­Ø†--ªpw™Ðð3~E{˜Cfl©‘yÞ‰–GŽ è3¿‚X±èãm=‘¨ÁJÔ\5ð™ÞN놜ÚT0ZÖdÔú š +Þ5Q ïlÖ¶…K[Sp@‘eQOÌÂc'öO†<ꊊRPb ói1 º8¦ç]à{ËBÈã°’‡ÚÑk|bB溔Tè™Å¿[“2œÓ´òAÈpKÉ¥ú^äÓ5Yemq€é—³¢Öy§0é«s؜ĜìYØ”@‡Õ€.5Ûg}"Zbý®•E èÙHë,»Ê·H«Šèià-=ªgUŸ[òR`S’cŠ£:b]@…/_“á +“Äwk*&(dð·]㉺z~©ù8QÛw…?^îì´Íöa­RA‹a•¼4ÐtÃ;…‚~Lìó19ûVhY\ÙžU KÃJ|£oº l÷Ãg¯´"hÉ_ÎPÈq+’º;jfîÏsè7'æÐ™§cÀz±´® 7¬/òP«r"ä’ ’Ù˜gÔ­Nsè$ÇüÙú<©Ì6E/Z£–øæè ø2ð¿€&_›Ã…äô& Ç´DÍ‚55§cU#$ºä}dÃD«eZL³Nö‚Wæ8M–®ŽäÍ L^TIjŒhíËS”‚nLÅNcÖ÷ÖA|‘Xì©¿¾Ô™ù«g¬ìZHEªYW ð›º.vØ,䆌LD@Í—XÈ ŽÕáWQëÂjt~`ôÒ¯‚çMÔ6ó,>Ñ‘s“÷øóè"£%¦æ¡ÃJFKÔHméÉ u ½eMÅEô~Ü&èŒZ™X ·Pu<·õ”Ö]# ¶gfbâlCŽ/pŽ"’Ögéuë2Ø ]5vÖß°÷×ÝXû®o²ñ±_ËÞÒSš-cíi–aðÛÝe:&¢!Ö;F›ØGò®,×=?´·díX‰È-K÷ðªz@d3ë]Ó”Ê#Oϱ·Srà “bX~Lß–×#K÷,„ƸXçßñ/ r¬Dð®SÓá«öþß™LMH+wÁ’"ZjÛ¶K8´©çÒý:nvØ…ñ;¦Á$j•ø5”†u9¯=bêZ–´çé†ê^—Hà  +ˆà€ +WÖR@A Ÿ ¶?4u#Ò¢º.ÁšŒQ盡®/Ъ| 䪕EtE%b­jû„žN³ZDNu-JF²qѺ’ Ö«Ê¿H¨Œh¨ ‡~àìÞup…±Ä'ŸHºãâu‡TpÌÊ"…–é(¯–Þ02P[V5¨gÂeôês¶ dQPÏ'm*ˆå[7ÕÄúM¡zSAG­¢Ñˆ­w:lŠÖµôÖ¸U4²ëä÷ŬhPOl´Œ^['iîDÏU#®é/_×Ì_¯ê½·kòÐ-ïYy¢ÝD/³€çp«]ÓÜšµ,ªïîïî–ú‘9«ÓÐÇ($Å6Ðþxe +žºmâsÂZ}g¹k0nÑùTý~9VñÑ)»NÙÙqÛØäšÀ¾õ+˜m›ŠVH=43qÉQ4;¬%×&ú¥iÀ/Õ´²K,AÔØ32 Lôƒ“Y/Þ"킘G™Ùî~£±‡žé¡•Å´|¼gŽZ6'l¿®îCqžØŒª +)ÀiëÒ–$ßTë ­6•<¬i‚R2M®:µ2ðÀ Þñö¤ ),Ù>z ï©¿ +hŒGq¹9Äçµyj­wš\ç_DƒgÏß»)È'‡¿©ã ×”|ÀÏ»YAý x];0äU +Pë1 á÷­t2à5+³í¯×eèwa5Ó3!®tm¶- Ð~o£šæW«ÓE—×çZŸGÕGZ+ +ÄëIÀŠ,÷Ou\JÈa€.+rM2WçHåÛ~ç¾½w>`êì"–_€Ó^“A[æNah™Ïð/³°.¹dSˆo 6ðÙq{÷ø†ÐUóŒê ð÷ˆ‰G_Uó0NyÚ±ÐóÉPÇ”Xà’OO/ωyŽ,ØùÚ<&S†)Š鈨…ÏŽ9ø-3—ºçëÓÆ<þ–ßõtMÆVD Û+ÂÉ›2Rá«*rµc–Xè˜å·É»I™\Pî)@ÛÕÄí<Þ–IXSR·L4tÐĬ-Q&zÇ–…?h“´½tNµÜöV‘¶ L쮋×óa£K‘¨6P¡-·h½ ŒvÏ,¡ +#bæqvìÜÎ=g×xÌÖ5²®gt¬¨ðÅ›zrsh™MXWJýж‰óçöÕ¡cP·oï›[S°ÛJŽ{VТã—@•'L½è¼]Ÿ701!­%±g? ðÍ– +U1ôöè$Ì*:$ótí㳟oË)˜}çˆcÛ: óëød×<­Ì:Á,0°²,S‚:¨ôÇ®¦ì+›R:mÇÒ=7sÉÛ@ÞO\^_d5¹§„õÖ‰ÎÝ9ÓÐÓt{MÏÞTª7ÍA ïšâ7:ç‡ÈViÔ!¥l*:±¾ÅöŠº‡å“sÚÌ#ð7ÞiZËÊÂ×¾07¡£u=yÓ}Ø-Ù#0?*XSô1<óÈü EÝó=´k¢#÷ø³/…uÌöµYRẔZ]¢µîÉÍ1=±É¯¦ƒ³”Â9 ¼©Q]ÄwVQ㥨’Ú^b¡"66¢g@ýz«k–˜oØ<¦ +õñ÷ílZÜJo.á*‚z"¢u­É: ê^væâ (Ï4ÓY×ôw‡uÝÝA%ê½4tÖ]*°•1#‹¸6G¨Qó.Ù‡Ûî;:GâÎΡ- ‡Xâ¢ü*F³_I(]•u¼ %jYùKðÍì劢³<=N³Íñ›| [>Û%tøäƒ‚UùØ ²‹•ˬ­üÕ5ÇÇo¹º§¶€˜¿ãëQìøº¦#V6 °ÙJ÷½vk™OÛu‘áq;®~UÛÍv*GûזƤAÃð¼{q´_>2X7Ù5˜5)x»4ÜW«ââï:GýÀxÜÚ7½mm»ø}~ ¶eg`ã®î™m÷€ag­OsÑ©kòŽœÕET‰ßÄ&:¬fý-S7Jyë˜Â½‹>0±P:&Ì-ã¡b6áÀ®§_s÷,-"±ßÄçûøòu-°ô Æ¿Žý?6`C\uÌŒ*ß±S1;Îc@ážÃ¬.’[ãöž™¸CзmgQ×ÔzÛ,6sEGjŽ{¨ÄƒufoÈB'„Í|Ö¶§S¼ctm; m;6hèí¶LÃõcR¬rPŽ˜ìçL‘¹÷ìc°•)1Í<ÂÉVvRúøéžñÏô¬Ð83+Ô w–Êø˜§:AGæ­w~ÛÞ-y$‹”V¤•p +4“bÔÂð D,xÓß¹¤bPŠs}Ûú _]ä59&zëTÝ£ù ¼áwRÞhžM¿Š©(ýç4¥õaT7(ÞÒ O…t£ó6i7L+ƒ-ŽÕjÆGZ­sS ã-³]#…êáE”yF?cœVŽËG”L WZ+fIr­Ä+Ä*øõ¾júÃÌX†\8S§ïª_›áÃ?8جy8ÂD¯¸C$6NôÔiz'ª—ú$†Á®¢9£Æ3ÎØPk"z>;øµUÚݡ袿P0·¬ÃôR¹’‚Weèí_°ö"ÉG_ð1äÖ¢ìÀÍíK¬Ñ¦¡·Ë<ɨX¢ïˆ Ø º‘þ&¯²1Šzj&Ø"¦Y+“´ +?Àºj!ìŽ}„˜íCçû¦ eQ£€í_âV•\ˆg^Ôaž6z˜uZbCMk´~žOF¯4Îô´Ê%3è)‘¸D5ÔW©•ÃÃMJ±”¡^`Ê•Œ>âèëîîmãØ`Ǫ²—ê×sÑëF>y`Ø ­%b¡##€–€Õt|ìòüÂØÒ¬Jlš—©Å£ÍÃ"qš€'yI'ܶ œÆ‚çë²jÂÕ"ŸNuw5zç¿–Ù41‘¾%rö›ßŸ¨}µçîž:˜Œ ™Cذöö9tÝý fQÜ_«ª×ˆ›]ŠA†S9"Ò‰‡¡ú1 F;2Å׊û±)åX$V[§ÑYÁ%)º<4¿e[Þñö©âNÑÄ®Kд¹zñÕ%¸)íô+Ct~ªz¢äT ÐV4"Zp‰K_[Ä×xÔ£|B07·@ªè™Êè“×Ùso˜xñ ®7¡¼j,i¿Ñ^I¾]S€½Q” 9W•_y®û}\ÀLšäuUϊƉúÙéÁ°½*pÉŽ“×y¼*ßó°¹ÛÞ~yÔ5¨ +Z'½†~¡E;Ù?'™ÆNôOT³{_ÍM6ÏŽK1baæ”PôV1Þ™«cd;åä¸c@½çìžX×w Ôó }“VŸx•Åï^¯G“Œ[Ú$gà‰³Ð–áŸ‹²1_¦¥B¾)Ìåœ(ªœøúÚSØ'¿]*øôé“ú¯Ês‘ß²Qœ?çz{ríÒ~´K)‘,ÉÔóS³æn±Nï^+¦ +÷JHœ­L$ÞrÕ>ÿ:™Ð±pÝ6~¦¹q䪊Þ_«Ë‡,*øêêýêO.^*ø$í-ù3Tu¾_dk¶/.ˆƒúþ׿Í6× 3ÌOð&g–xŒ!o-’µ’'{ï6´+Ïä—v}SZ1üCUÍÔwÅ¥Ã_Ü +ûÇï— >¹ÿý{/ˆŸœ¿YÿÉ7'î|òäqóW•弟±Ñ s=Y^5³ªçâ•’Îê‰Þ™Š^¾®Åм$—îÒù›¹tÖz¦€ï,bS^0ð3Ï™ÿ?Gý–躾ãÎÚ{õš5Ýíè„1ŽíØÝ] ÒRÒ)vw‚ˆÒ`7&b€­3«ö~}Þßÿãû¸ò8à¾¯ë ¸ŸëdùRðC/²3Ê~v~ðݧ—ÁN‰ ›yÉgœë5Þ&'/ÊÆEêÖºí‰ +Ê¡cdÛ œUŽ+F{z§¨½Ó„¶®YLG÷«³kƒÑT7™XÏ ®å(,­WQnùi”_Š2i’b?¹¿‹ü=-,Û¹›3˜ÒÃä¿0ÀO¥a¿,öã•REÿÐÀ$£§Ï@¬íœQËŒŸ!Ȱb¡s)wÞŠß÷ú ùÎÃ#¼†›i žŸ>zBœ>‰szü"ÅÉ?’{ãÉ{¸“w õ{ +YéÑ×obÆE]kÆöî¥Éj¢^Ú[#šÚúV¼úå¤âRÕ«Ð(öžÐ"Ã)?瀿&föþ;(‚{ÃÅ êäʸSy㉠ÌÉÙ‹æ” žø¥#Æ£ Ü-C9’¶æó0?uj˜“ î%uvO—Vµ®æ³ëg£JhJçì‚æGEhñ8Zñ *’ñ/·97? +vzç’êôÉçtçEžÓ?8;9;Ç߀ …#âËuùXt3!‘þ|°µ¿hËÜÒv¼ÐØg3Vóæ¥õ(DÖ5.QõŠGLÝ}ƒs•ƒ»5eu‹I$ºÜ¥”,ve°uŸI4µ;Òõ4Ø¿èפ$æ­¸Ľ¤è ç¡ÆÊ‚-emM[Abµõ) ü–¥tZÍj(’5ëš +ÜŒLfÄù—_x‰ÓKϧŸïù8½sÍp +Œä:¹ú`;§:ÅÇ’~à3‚61X/jÇhûkR•ÂaÆ@Ŭëš*d5l'Ê·¼1œY×B’îALfÓ¿üBpNá1¬ïRêþÍuzéuº\ëÑÛl'w¢Ó_Ú~¤Õßïi•g©‡ñ«ŠŽª5eoÇ´¢»vLØ +îÈewL'ióÏr°Æ[HÕÍÈÌÎïÝB9Nw_Þ¼‡:Gño¸±œž»aœÞxœâênøÆ4|÷1¨ì¿ÈŠßð@¯öÖw&,«Û›V&ëÊõãÝue­ŸøüQ¿²j}ŽnvIÎøÉ7’ÿ}djÛ/ñi­ß¿s+tòð.þ."Žÿï°”ú·^$;ý|ÓÏéùÛ|§wd§{/@7ü¾ÐnQ¨Òi¿©}E!Q¯Nt¶Î(šËFE¸ªm¿sÂíµ#0å›^p²éŠd~ E)îfdwþ]õC\JÛ÷¾_È7zòv|jÛ¿ÞÆ;yпûºqûa¬ÓïwCnD&×üEþ ”AymöPWU ñ`¬wp ß:0Kªn_Èg7¬Æø3^…xñ㨴š_‚ãY?øÆÐÿ}ß5ýÆO·>;½ñ„õVö]jnÍït\×—Á¶±bíè sMYO˜q’ÌBv²VT‘>2<Œií›Æò›t±Ô²‘÷8²äi!nòe`R-ÀEÅß¹x¤:¥fÕý˜ ü%4µåÏPÆO¡±ü»0øÐ&­×MØZå?3\·"e&n©xËD-iA^’VÆ ö¶&µªÐí3ÙTÞ„7…£ôÄ15ïÓ`ÂûÞQì_ÜüQÿ‰a|•Rõ}|vå,dç³\‚à)š"Ããè¾´WkÒeÜ–ºkQ–$N‰J´’f|Ok/¸½S^ÜÒ«E–7h£‘DÑ‹ˆô¦›>Ñ?ºRo¸ùbz€Þxö.ËÉ;”zÃ;ºÒé‰;Òé!ÀQžÑõN‘ùÚs‹.ì +uš\8Ù¸®još)Ô a?%•yB¡Œ\ßc,¨è_‚’{ör¼BŒò>%»•˜ÓüÓƒ×ÙNOÞä9½û„uzáZäôðyª“oñFBjÃ÷Y9-¿Ö°Dþš¾¶¼U¿`CÅ…ÊZ©~ãC}ØÁ¾qtyÕ¨_yëJ6³Íš‰«\ - É>fÃ:ŸB1ý‹É’Wq]ßà~ò Ã߈ɨý!*·õ~|Q“ †%öæ×OÆöhÉ&Y;vM]Ü›©æ.6ö›mL‘X]ß6<Ç­èœq+¥lΠ§bø1䚇pM.hz“[WñÏW¢ËU!Äòñ€ša¨d¤·H-éÁ%„5ukÕ’”“±*gdÌÒMb~¶ µ>®·k(·«¬°²A@/|ÀóÞi°¾ÁIÍ÷\9??ý»ñ9œúCdNÛHPßÝŠñ%ˆc~ŸU*z_R®Èì™ËôB΢„™²$‚ûo+©…6S]Íœ¢'‘Œ5w ܺ^ŒÝ`Ç—¯¨æ×Äɇ©…ƒ?½õDÝøõnœÓs€Íˆïâ±ÏєߖÆÞýP3ô@ÍÂ[&iZéhǸd¬E(’PûzeE­ê¼ÚU¿VLeŠ?à)¢0ÜЫØìªßCb¨’2k_AÑ=îUüÑDUç$gzT>´¡ííü7Ù܇ñQ5ƒœ§‹}MÒšBÙ¨€ÒÙÑŸÂe”¿¡ãÊU6,d–pt¾ TçË„$Ôo\Ó“RúðIð’B ®­e uHaŠn°EÉ™ðc­`o’œ¶.¥%lÈèIú^j€r°.G&ñGÄBÒ@ïPNo×h^G»"·ªZ@e÷}À“[\H”î÷TF¯_]}gdKWgH[wÌp§ªH˜–ñ>ξ®u2ͧmkH«Ê2ܬ²¯K'íŸÔ‹%„öö¦°ªŠ.2[á'«ÞÇå´ß‰«ø>.«é¿ÈÒb)ÿŽÌ¬ý."§ñÇ(PÓ­T”à.š¡óêidMfa-z_ÏÃmMRA[*ä`º’3¯ie÷Õ'tttÄ7 æiåµÂ@ài=Š™êÉå·¾N¹ñìM¦“O0áÆ—ØÒ_sÀµÏñ¸A׎$h¢³¼ b'/°þ[ +V¾EÊ/ZW5§¤u…Ã<¿þ ¼£G iïœÈîPÀZzGÁ-CQõâ^›>ÍöGákÉœ^ÏÊN%¸{X”=2ÒW ’õ`ç”m”£Ù +úÕZYÙ›•Í«Uõ3n†JÚÏ•É%2ùO<Ð+ìhOêjëëéNìA{RtÏ€ÒÙ)ËéÖ2ûÆìId´­ÔgQV–³¦ª#­OÖQ6UÕ];Þgs‚ß5ÖòwÌõUKšæ2´ 5ÚÎꩆ?ï¬'¿këeòšdQ%Œ!T™"3ŸÐeô„1•‘ŒFExE»,¢¦c$¬mh4¡_›îêÞ3q0;“ØX›ŽŠ:šo-uh7Í]#Å`»HÊÏ9Ô2 +5Lȹ©¼tµúESóLßÿÈ0uŸ’U53¡ŸØÐ¸ûScåìõ™¶îù‰šbÝ7q¼—&ë`N ò£òz„e®®Ì:ÇÅ:–kZÎ-u½—«åü³i +èbކ<›c”h+Rzú’¡­Õ¤ì­_RµWÚgš÷M »úz®ÍPUºkà!7&Yùë*vÞŠ²¸¬éí]Ñ5ò¬S• «žÏZggïh8ÐíIröÆhqðªùéØÈ&}]m‘\×®gÃÖ”¼¢91Â2† ÝT³ŠæUÍT€Ó‹‡[yZµ K5Z‘®ÐC´’š³º•±¤©Â®ª*Qûsõ ç« Ãzᮆ’z²XοXo7Ÿ®v µíu9N=T•§*ËœøÐ<Þß”¶aeÂvȨLR= V” Æ‘€¨”ÔƒŒÌdëBmÃÑlU­EœjHy2Õ‘¾*‚}Vð³ŸO5‘£7Äõä-)·`uÿÅÜšë<Û^ônSRQ`kÀ›†Ëò†¹ÅžŠÎ–³©ÖËi>Ó&Co n"ˆ§UŽÜ› &¯JÈ)bvÆÛ•ndâŸS,쉟hŸ¤¤NR2NLÌâ]= º¦*‡ï蛯sGæÊ@ïçn+JÂ÷&‰ñGFFÁ‘žUtlâ -c´d«ª}9ç|å/gx„ýIjîò01l¡Ÿ¸(¤FšzJƒV$Ìì5)5mMBŽÙW3 ¯gH[Çð£%‘kÀÚ¯ •ø,ƒ–DÜŒÕáÒ„#59ûäúvjb@Õ”ë\ÓüccÉ:ÉGmHøàE-iaˆš»:BŠœéEyÏôâƒæô¨yy3qJÔŠ1U§/‰9)»“=ƒÛª–›†Y¼!-ú²>ælW2NŒ5eó=WsÍC×s¦ôؤX]]N>6ÕTOUVïN–BÖUôü%U kNÙY®×A”­$¿5YÂ6QY²« C6%év-|¤§‚ŽõeXàzƒsÕ@¯sa룤Hs[Æ»)"þr–\tdââ÷'9è…~„÷lw‘Ïé¯úh–Wº-øf„¿6Tv¤%ƒ¯ó;Ž èÎ6d{q6Ë%]ár4ØxSkÚëµë£È/5)ë¯e6žXÆœ—³³fEܬËÕº]9.zµ»èÃB3ø­®:ëõJ7ÔýHEÉ:3•6ä ˆ²6ûùš—½§áÀW…ÏÅþ<×Ù®Ì×+½Ùoÿ™££ÿ»\^û×bEó‰™V|¶Àç]­µiÏçkZ·Fa_[Ó^Ͷf¾¶ zÍÓ±—뵇3<âù‡òkíð×¥Êæ=EIÞº07`e(õµEþ|9Mƒ|›gbþ\æWNUTZÆÙùV-s¼ÐâØÄ-½˜aSÏML©† º0Q ®¶š'×û \$ÔDû3Zˆ1¯¤Œôwv+Ó&.=”SS7†)ÑëBBèÒP±Ÿ‚—þôH^…?T–“v$Ô”åL }Œœv¦¥äžêJ3vF þšúÄ' Ÿ¾×”e~þ{¦²üë´+Îy¿1òdOZàq¨$Ä9´<ä±¾ŠngA·¤¸ÿrhè c)Õ*-ðYä{ì{´.ƇlHÈqçf6úTÏ€:ÔìÂ=6n]€ôYìF¹m +q_”´ì…~¤Ÿ¹üjCBŠ],޳ÉH1»¢bßÅ–ô‡«íÙOWº +\WÇlˆ)ñªŠ„››#ˆ¨ÃIvµŸ’`“”Ư |l£%¡'JbÜÑ1Ö2ˆôœ¬N»7DŠùí@NÏù:S]qjäâlã¸Ø=lWRR夘# ³`j/-Ou¹ž#²ÚÝÃCOÕÅÑG*HÄîXzÀÕL)äXOË=ÑsP§ºjž]SS±§.Ç[F‰1Vi¾ß¡ç˜)£˜+¨)>|[Œ=ÒЊ¶Å¨/s-yÎ3ÍÎöqDˆc¢øË©†’ü i•ã÷&(ɇzbCFL>12—s,ì’’µ'ÃG«Jbþž£ÿ½ZV¬qöþd ãxª¡Á®/Ã9Ô°U޳)ð1Öñ’»†”²¯ÄÇYåØðuâóå,§ôÄHŸè±éŽIDâéu´¢$Ê®"§~›¯®»Zª¬·Œb·$„ø#mè[ü”c—bcìrlì†å»%Æ…í)h¹v5t¬&&ý5Ë,þjbMW;ÓÞmæ~^ëÎz·>˜åúŸ ^Õ×E6Û:Ž· —$ké¨c#>ër®$çb ¶)1i‡ZRÆõÌ•¯‹ü)e±??p®7;Ì¡!Â/gùü«*z ±7ñ]bÃwµ|âùbmÛ_–áÙRUíál÷ÐÄ+µkKóϧ(‡ž³ëØx«Š ±/ÖÔ-Õµm)¯ga#>o AÌ>ÆL?š`d­ô¡Ü×ú¡ï70·m!Öok„–8Ó†ò\èÄ|>–Wâ¾éª©_,>˜@„ëbî™*£nÎÔ¥<Ý!$Û•¼â]6x{ì¶-ÈÿxAˆ³ +Q~¶ábŸm:T\–ô¤ð›e‘ðçTmí…–YêÊú0Õùx±+ôñ±â{a ¦œiÉùGJrÎõ ‡Ma_YAüsŠGù6Ç™˜ðÿÍè$ÅŸJsÖ† Ë=ÐVj—³ +ÏÔøÄÃ1¨ïŽ Èk®5㥥¯Èè—ìã)VñXeæ“•!¤ÿ¹‰…ü:UÁ<š(M¶+ÐöqH¨U”ëg“â#ö'¯ÏÕÒ¡ëý…þ§B"°f[ÃÅG +\ÂZO¶×îHQØæÈë`p¡'l –zò]Î|Ήƒ=52zTÔ®`‚xª‰'&Jî± +ÚÂ>_Ì“‘ï1¾-–ózfs¼Ð™íz0=2••ŸÏW”}]dá/§ÉÐË¥šæã…vå×åÙÿgá×|5ã²¶%ÿõáÂO696 à1æÉ —²)0CŽ‹=Ö‹N5Tð‰–š{l‚Ãöå0Ÿ©öŒÇæ–ükhŸ} +Ó:BŒ^ëAzØ¥ìœ19jW ¬«æ¾3‚ œï‚ endstream endobj 60 0 obj <>stream +ÐÕ€­õáÏÕ|Üö6øHIJ:Ö”¦ïIðÉß´¸ôozXÈ…³)Á‡.÷ÁÝ/´,Øé$5gGôé`«¡:úÎéó÷j^øog×çãõ væ;ÄL½{®¢ÿœ¢€¾M“²OtÅ;bÛbKêÃņôû›ƒ¸ …Zô|;òýžˆ¾9„ ÞGíˆ1!;B´ïRøÍ|[¡—MDOZêÄøuÿü0„ŒùMÃÍ|6×”ùf{ôÑ1‹ßUà£Æk³]pÑw.¯sÞEøÈé¦ôGÓÑ·teÑ·Ì•)Ov!ŸÏ'ñqK€ŽÐ¢~15d8_ÎБ ½ Brô¯rVâï“ü„ß°¿lôxÚ¤ô]€SwFJ·E„4›”†93$Ì€ßeÌOwŒ•þ·W:RžéˆIJFÞJ/1y³·8ê¿ eÌË96þP‹ŽÚ‘|+Hs_ëË~9ßz±+)/¶ à#Wºr^næ¼Þ.ø`¬Š¿5λhå–üφú¤»›TÀñ$«`Cðé³>ó°ôç¿·‰ò>}3SOD/\‚ûr’o[唌33ëÐÑAÜ{¶)þÅ®ìq0Rè~¬B…\ÍÒàºæÔwÓ]y!ÎrçB2Pk9'º’„MA†‹¥;ù¹MœëqiÆeÚÀþ•…þ/N´dä?Ëeeÿ,²KŠ’èÝ€›’…våÅ!eþ÷R¼ÿ¤ªÉôùï‡úÇ4 º+‚úé™Qä„€›z^ÔÍõ>0pMbºìºÔöÿ¶À ý½VV}¤,M?×–f\:Óšðdm0óíåï0Óp›£„˜C5Ÿp¤¯i¾˜.«ø¿%íO3­Ä&‡l ¤¹Î5Æ=øïzMßÉtM瞊‰>3ÒŠÎgHGbÁ±ŽõmŽ ¾43×r=;²_Ÿ™8¤ë™égÆkÍBÍ8š$%®tg¼<Ò’RÕäÔ1f_÷µŽz¢ïSÃÙ"'Ïwa¼g _ë@ÏtÕ Çsm0WË!`cˆ²9H 5TfÞ_YŸà}II°e0Ïe¦9îîtCüÝõ!ð;‡y¥ácrföú@ñ§5á@ŽØ“À½ö%ùÐMØc²"ñŽª,ûÙ¡’ ^éƒ}ZDxm >òâ aˆûz7ôƒe*`¤=èÁDüºÚ +8”3³öe”DËÊGW‘zOQòëfOób/Þ{ˆ•ûýþ†‚‘ïz>ÁʳÍI´•á·&Ø· 5yoöÆ8 +sgŒ’t ''9ƸàÃZü¥’™»+,œà†ßSý0Õ¦<öÝ[‚Ñ×&ÞÙÅx´+*r3VÅ=ZîHwßø®ôä;/´ø\ê[Úl’–Ê™f‚¿©°Ô ºÔâSN'QáÛ£àOsy®=¸ˆÛè°»ÎVò/®s¬&_&ªý¿šgÏ>3t‚|ƹIw.¦¹Œ¿–˪°aÚ+ëpßÖØ×1‹:Ñ #ÿ»Æ¦©ÛÀÑl°ïï3ý¨ø?Ö[uçsÕ‡ÊÒÌ AÖ+MYØïmE~ÓÖ$¾?Ÿeàø ßf:ÀÁçz6üBÏ,<‡|>Ñ‘s~Ï<šÄǬf¾4Ö‡üÚ~÷ÝÆ÷·%AIx 9ù¦œz»)¤D¯ ðK½p7MuÎ+uEÆ# ?ãî|Cá›-19RÛPðÎPþøPAJÚ"¬ü—ã LP›61ÜàÝ3Yöd€Ï§&ïŽ,tÄß3×ÿªãDý2S‘røŸð™A¤?!ìç©:˜/P³ K?Ä}®%óÅ-òfÔï×F°ç÷ +vâ…^Ä'Iyæ+9/óåÚ:`¦%ßY]–p®%í…¡>ëù-æ·.xÈÆj¬·”Ÿõn„~ÏÒWè½'ÁÄŒâÇè™»\⾺1”÷Ðr!«CİQjÚ+K*öðÒ–BÏõ¾¼»ÂB}ô“¦,æÖ(1à·ë~[ë{®´ç¼`#"ünÍTÅ‹ò¹Ý]ý~OM/´ŽÑÓteÉdT@ã³B~7ÔDÝTó~¶IòÃþYel +Ḇ– ]é.t_éÈq_ëÈ÷Úî/Œ0?p¶)ýíRWêãÿÛb1Ž DÐBw¾óþ8*òrº¡ùrª®öŸ~ù™— +x€€mÂomîwlæP¾.5Ÿèià]&ôP?R¡•èhÀÓÀ/ŽéÁûýjnùœþñHEϾ®ÛS=-ß>Iˆý_Ö¡±Ò“çf¬K{w‡2jâ/ÿ±¶á»7Î+Zá¾Lµg=¦„ýZjÈy¾Ó‡ðÜ—â"Ìí¯¤ÔàŸ—Z ¾‡cìCmæ½é–¼×vÚÓzhèí¡’ÐÇ íŸ51!\ÀM}2ÊL{¶9BŒ36¸7#‚¾ï@úý[H ýQJÿÑX™ñh®›“X‰Œ¾U‡º} §Áα/ÁÞå7Û’ñr±=íɶ ïí¡fîD|¬ÈòÿÞTWâ<çLk–ëF z²^+bïwB>׺³8þ؆ º9JŠ~¸;@Œ\i½ÝÌq±KÀÞ–îx¯¹æˆ·úª¨‡ÖëL«Ab7Çûw5â婚 s¨HYGãèpÇ*dOŒþìU²©-㕦!ëi &饰4þÕ +mÿà©€K %çhœ’»Ò ’3boî‘’w¤tðT3Ô}ª6ïå\ØU_•þ|±=çÝ9 ‡JBút}öK`­ßœ¨é`«±Ðœór¶!éÞ\CÜm]EЯ3 ÷7o³%ÅGW~ù©xws¸8êÌ@Ép>zº)냦2îÍB'àSz~v%·xGJIa$Ý(bj‚¬v£ý·(ïù.ˆ·ºäÙŒ +¾Ù yvjdÁ-BT ŒxO„½µÒœýÞ&€ù؆a>V 2 rk¬*?r_Ï#¬‹HúÊœÚÊ ·©¶¼àÕ~÷þ(ÈÿÏiBá?ËLüÆ(>ìp’ 0ñA/Äû9.øÇùš”gSÕ)ofëS_Èò>ÿÇBì‰R~Êã-:aWYEºÎd9Ÿ¦0‘»2¨×žr:] +þs­²ñÈ@GíŒ!CŽuä¼ÿ¬òØ_çÈE{Eþ{ +pÀº ùýj_¶ó‰ž +»œ*+µ+É)Gfœ\g±(Jã¯?£93ð §jf> ­ã7‡‘ÞKÝ…®kƒÅV1ê@ÅG¬Kiñ›’’ÐÅ.˜ûL3ØyK„ :|½u ºÐ‘÷j»æ}5[ßví­7°~ºšÄ‡ºš¨‡[ƒïC9ùRË+Ù”“R”µéWKb¶¤ôMyæ1jÔoc´èÛä€ßFÉþßk8±w¶z1av'o‚—úàzNѾ‚Zë'ïÞðSíwÓ­E¯·…¤H+@t³½Ä }9b²å5Û s_ëExîŽàÃW‡X ÆV¤ûB7ú˹®†¿;ŽÜcC¥ÈÁ±Ùö^ë9/÷d¿]è|3ÚoOÎA- âê€}éEøþ¼Ö r^lÏg¬\íÇ„¬Žbè)VÄ=°+ˆÉæÚ¸Û³Q·V:RŸÌÕ†ÝßHýp Ç]¹$Co±_#"â–ŠŸçó×lm»c—¸Üžùl¡)ýÁZ7øÍJOÑÇ™nè'ECÁ›¢X·ï‘Ñoï}3Rò/õ¥™Ž Xðz_Úû1JÀ­ˆË“ŒÀ_­2tH]qôcPÐëï'«³Ý¿i‡ äy,Ïö<ËõÔW„Ýc?ÿk¦.ý¹CÂ.õ¢<—{àŸmcøTÀ;gÊ iv>¨“°Ùž‚=%Ñ¿¶G?šjEx +˜‰/û!~Û"T̆s¦!æ~½Îp×rV):ÔÔœöÀ"D¬ "ƒ×{'#Ç+RIXÑwº²ßÛ¯?['Å›Ú ofºŸmã„ë`žëbsò“ù†Ì§+¹/¬£HŸ ÷õLÄ\G¡Ë¡Š”zq“n*+=ÇEÚ„9[Âß,¶&¹ìË 1ûJZÖdyÑ !ýÖF/6îÏ™²ò #»/CGOÕG»˜š2|çzŠÜ—…Ȉ3—e‘”£g:aîv->ó&ñ?6û?k,ÆKd´C‡ËœëM~nn‹¼·-E„ªj3 ­ivc)ôØL+=ŸÂ¡ÿZ¤—^Í•Bv$ d¿:6â“·†‹¶…„à}9%ñÔÀ†ï‘cÊÒÄ=)€q"¸×©Šw®¡åî³²7D”ˆS »=BŠšo)|µÜUä¼6v16DÝ7UF>8`CO'yèÅ6ØGKÂëBÃE:”Äø½Q\°M‚›jÊx½1óZ»Z%%Ñûj.D_Ÿ÷XW™õt®¹àÃÆüóî>Ì1JÏ>”ÒæÚr?Ì6ç¼:R‘3•ÔôíÜ—M1&xªâ¡o,r[êD~¾Ôóq›RfÖBÞ{GT _áeZ† A–!¸×tcÆSKáGÀOrRÌ™Q¸#†ùìQ¡GÊjêr75m¡᢭Èx"¥‡ÞQq¢nŸ©+‰ûšjòÂ%VY–sÿ`”œpèÒS5wo¢8DWól² ô\S‘ûl{Œ˜°«"Än¢n¦ä®©¼Òs1s OÄÐÛcœø+û$üuª¦òëõLOÒË*¥eŸêê*ª2Är76@Ûˆü¤¨ƒ¹vSÕ4@-Lm‹óßo3ßYy~Àë ²A?G, x˸©†€þt-ô\GÊ\ïMy=]ôd¹%þ­¥¿Ào½ìiÇD_ÏÞ¤ÅÜVTäøžhYˆ CiŽC‰‹67§<–úÿ>ÆŽª©Íz£o€|RÖ½/ˆ|ûÛ;ÚõR‡MZiÏ|3_ÿ¿Ú~6U“öx±+ÿÝ¡º4g¨,Ã9Õó¾+Ùý×}9 ~j`¡­#Þ+=)ofš’ïÏ·å¿ZD}^•|i#EÜo‚{ßÜ—ácŒ¬Ó |Ìžº6˜ëg“œhŠÃN „S'<ØÂ'û2R⹦A§}.…gb¶%¤8}]«„–z{ON‡îŒ—ÆoHKB–Š<ÅôˆZôÛ=&ùr†Zz9ˬ\AF ÙѶå¨Ìÿl•UÿeaS­rX¸¦&úÁtk’ë®´àË™ ›87 €Gü… ö÷mµ¦ð4õL¡3Otˆ°ÅÁl百¬+#€Ž§guùÉ&¡&8&Y C-bàü÷Çñ±û£0ÿ3%6r_† +YèJyµÜ—á¼Ü]àâ˜däYÇ()+=(ÏmAÉ þÿJŠ?Q¬™kÏuU0£[í„5Õð”„ÛhÉ—} 1z¶üaOJJ¶ORs•Œìë:³- ç[Bb¬]ÁÎ_ë‡y,µæ½žªMx8É û­·Øÿ'MYòSû8-gKDIXîF{\LóˆÇFzCSšy @G¨± €·Œ²Âd|Èl9xc˜}iä N4¤ÔoÓ4È¥‘ ß•`B6à÷»#PÏ!vGBKî!$ܹžj£&YGŠ}­Ã·s-µhos{þ[1)ê—S =o‚œ¾ ¼‡]>ne2Ó û´Øó>Ò\ÿÈ*ØÄÝ¡’ 91ñ©×y’SÈ;Óoº ÿ×—óŸeëÊL-qLàÒ×p¯íqlIÄ.Yê'D›êa%Œ´G×¹G3 ·#  àoì–é}nâà/fªx×YE˽à +^ì1Ù÷çÝá,÷?æÙ¯²Èó¨Ï¯{ž¨8ˆ¯S•¼¯óåÜoóTÈ‘µ9œûq£7ßõÂÀ%L2Ðr^Ê+›”0Iƒ¨È¹Ç::°—%1ú¦dOum„ËlGü‹ 3tnÄg/we»n ÀâÎtLܱ†th9p»™‡ÓõB?ubÃn*¸/wåì¼õaŒ¿¹1ëÕdEÒó¥N; '³NuŒÛ8)IQ“þRݘåíP³¡\ðF¡‹¹!õ…Œúp¾%Åù«™ºZd•Î ÀÃ伬W{ãäìuIì¶¶1ø…ॾ¢êꤧÓyþ€‡öÐß —e}Z—1 ºò»’‘»Öó•Q£ŸŒRB84øä#z>Ë,Þ3Ó÷¤ŒËñØD-¾œfâ.Í·aËCøPCWIà–¢´à뛺), \îN~rb¦ fËÊN–*ë÷§ØÄ5+ÿ`üÚ» #NÔ¸D€÷’–º‹=6DH¿ùöô§{b˜÷Æ0ü³¡&öÎlsâƒÍ!¨×™‹q¹ë85Ñ®b®{Ùÿ½3RàinŒ½«©ˆû]ÃOô2êjºŠ¿{7¦¤¥+è¶¡’@‡Œ’q¦cÁmrRü|'äýLSîó] %uM@ˆ5Ôf=\é(rúëór+Ôw¦úi³å{¤ eïˆpáýp÷‹i6foº?†ð±ŠaŸ­y¦%¦\h`‡’ V×]¦AŸOU´\Ç8.êÂh–ÿ͵Åm‹àÇ“äŒ9!zÀs%7éö©–»ÎwWWg=iÉ~j•ûoŠ^ =Ì Y.çFÑ–„».&D\ço멹V1ð~‡P>ŽqRÊ‘Š]`“ò@69¼0ˆ ZìÃÙÕõMCÍ…©š÷÷ZYÙ¹‘nA>[zÁï­rRæ’œƒèç绉ØÏJ.Â6Zš´/ÆE;Æð±ÖQLͤ8`w~j*'/ ˆ©Ó­p¿ÅnLøT,ÂÒWq©/Nùk…Xt1K›Ús^,uAƒÎt•Ü=%{¨£ä^-Ðêâ˜í÷ñ*ùêúÈ1Rf7>úö’ZøçZMÛÙ4w¢£å®‹c¼/å\¿§Ö‘,ÿ߇ýÇw¨À†_Nó˜§fþ|š‹?Ô2ó·'È ):p©üîzÖú(%~ºóiSÌ펕M²¡ÇjBÒ¶°ÜýÔΧ3½È®á¡M­0÷©æ¼—Ç“ø$À§ùJAÏRGF\®U Ú– |¯ó¶6€ÞÒTf?Ñ—§>=V—~€”aŸÄ§ÏÒqŽ¡›žüZÀËóY³ VôäÙ®/c=ô­‚™öDWñþÛ£äŸ5~ÅK,¢M‡KØQãþkå×ÿ±Â¢ïac–>ÔZàsÿ#3 ù ð$GzröB7ø½eæÿ§¥¶÷r©ºÕndÖ$Å_ÖF±A›¢"÷ùöø»Ûƒ)϶óÞXÅôä}EyñÆ3kGFO9œj[\ldžŸkKâ¾ñé×=µ+ÇEÚõ¤…˜ërOîóÕÁì—˽Ùλ#Øð3%û«Vp}†Ä¦dçÙUepÀ»„L5¤Þ3T'ÞÝ{Xe(ÿµ¤'àub6E´$m#ØYW“õÐ¡à‚ŽÜÂ#9lÂ{ÐA·Àž·&è‘ww OôÜâ¥^˜Ûr[þ‹“ëç™c®¦HY'š’ø5ĽÀ~'ëÍrÆ{‚—~ÿP‰O¸0±çzVѹ–’µ?†Ý¹Íµ¥ß7TDþbWRLÊÖ4"ß/ôâ‚ö'ÈÉGêÒÔs=³h_~=ÿ ìÔ‘m¼4ãÛBuõ +ÐŽc˜àÆß*Dû\¨é¹Wz>Á¡f‚Mà×+BLȉ¹Mplê97Õp¾.\`$¦©ð gªÒ¬S€¶'©ATÐò0.ájª‚e“ ü­¢B÷í¡¼·«=ù®Çj@·Íq‰gS|²ªæbl*:˜¨<$õÕÄ‚žè°ñkCÙ.["Û‘ª$ùÛ‡qhúÅ!l m¢4ùï>ïj–9×cöå3Io - Og;ó^ÿ½Ê¯±©K Ôõùo—úJ‚ÎM|æ©‘I>3Ò±Ž‰’X«¸À÷háPã¦*®´*ã²6ËÿHÃF8¨S= t9Ã(ù:Ïeìȉ±‹ƒ(ïë,å³™†¶ëï}ìªÒ”C9ð»™*øŸy*òDKÍ›ï…yÎ÷AÜOŒÌb9;îEW‘×­ùÆì·Ã…*lÂù ‹p1_Uµ ÔÊÜ@iØu¿ŸLq°v >Þ&‡}™ï¶-ÅÇÙ´\ä¡®š¾.aåŽrAôm„‹´²5B½ôðÁ8"|©7ßÃ:Ž +?ÔR/–+šÎÊÊM…ÞÚZ°3°®ågÓLæ·eÐb5G&BÎêP¡›Eqs˜è‡¹œ³>Šß %˜¨…‹\ÆÖ(9zc˜n“’ãž:(ÐG)'˜éàë|çQ´ÿÎà‹‚ÇrÛ©p¬ÂÇkx(›Œ–d×ÐòNçØØ=)õ@‰ ³Ž€Þoô§>ÛÂ>+ª0'êF¾M^†X Ǭ‹)©»Jb⎠déG¸¯õ¾×פ=ÒU&Ü=tÝ…‰OÜ’Sæ»`®æFÐ3!9îî.úá\SÇ„£«Ì}©d¤Þ¶t¹ýaªàì«°‰ËéÎ;RÄ—MüÓöpIˆeˆ»Ð_ì?Y™vïXG…]Ì”Ñ× ÞËíÉ÷§S[GáÞv:øTKL>Ö2 +­ +zÖ¦Œž´«ªÂíkÙEÖ1„ÿê`¾³²<îîduì+‹êPÑßæË9ûJlÌPKûc¤X}uÖc}eÔ­-èÃÎ(Òw¡ôáÔ@ʹœe´Lø±¶¬øÌÌů ¸›j’Ò*ãî-·%¾¼PcÏõåøÅ^\ ¶6ãðú>O“öÄÿƒ1TèÎ(äóŽås0Qš°¯âéÚ1AMȈ_¤ä¿€þ¹ÎsÞCÔ¼$um0ÇÕ2˜ú|W +õÿc‘Ï9ôÅ– ê½§@DØÆ‘¢<ïEqì·Yÿï ~›MƒÏ04ƒ^YGKStt8àW¡#%{ u8AL»ž³ÿmšCÛS±É#¬œ—ê*pø‰†‹ßηg=[騑A¼ZdØŸK*ÀKÝW Õ ›c¥ W˵mV9 ´Ðù¨«J¼ßóòiiÈ­Õ>¨ÿÅbMû†¦‚­®/|µØ‡ +<ÑÉÌ&ŸšØä›tb`£w :ÐP@—s•[c´´=ÀÏ~[ ÿµÂ¢þ½ZÙr5ÇeýïqJf›¹*iÀ- ø9›bzÒÕ §X{üÅ\E埖zá_› ²ó%.צ#goŽQ'kxvMU€w¯ó4ôÕ©p[ÜãO¦ðào–²ª-@lÊyCcSë…¥ºåÛFð$Çæ*ö‘ñz^=WóÛÉuµ+ZÞ…™ ÝÇE>>å ø»}¢$Ô6† XìÍü0ß–ìºÕò´É?«•u§fÔ¡¡f_ϵ<<Ëæ0Ìo±ä»)@ÆíJYàí‰öúÉöúmEvCL‰YêF|œ®O½?N‹üU͉yp¡Æ¥]MWó7eµØy/eAÀŠ_¦GoP¢¶…ømMâÃ>„ï÷zVê“ÃaL𩆜±1бŒPSÕe(€KC ÉZQìD¿ûÑPýå÷«6ißÈ#, °Û¢â»²4à°À=9Üß>Qè3ÛÿlMóñH `¡š¾&&†®`·ÄĤíQR≞”ý÷ +›v9Å,±‰‘!æ†Ä'kýî€>´aáëŨ÷©†Qp­ÉNõ¤´Ma~Ð|kü˕û®. É"JÔ„'Gc”t‡¤$tOPä{8 +‹Ü£ÂUåéÍ-¯l€çšíG‡ª³^íŽBwFóÝö¥Oû2L̆nl-x7Q•ùdð¾ÖqJÚbo¾Ë|GžË|g¡×º (ðh›ùm–ÿ¶Äçïøi‘ãÂíúºr‡Ž…<Ó2Ou„t‹ìy AFmÁlãÅá_g¨åAÈÇM)&òrG=1‘ *Lüö0Èc¹3óÍl[ú‹=9%ýÜ\ÅÝ› åkª³YGqÇJî±óÏ"v½.€Ã^Ÿ ݧåž-Ö¶¯I()3=%+bÔBO¡ÏŸ~iæ3O¦ªk–$Ô´e1>ìÄ̧žL1‘ÌÏ*GEì)K 4ðå ­ðÏ~ùÕBU­Ð${JLì_k×}Qš}ª!¥9&1‘våuö%Çaª©ÚÓuôÎ £æûî€ßÀý¿Ý†±?V˪Ïœú¶ÂãœÎRQgó ÂÕ—u5W×¢o‚{Ëx)ϵÄüÿ³–·üi)«¼\b2õØ´Ciîñ,vµTY÷ÇJ£àlŽC>[ #í€^¹Zhèúß™7]Þ¡!%h0GJtè¾èÙp›¤ÈË® $^™*({r|øê0ÌMÛ”øX_vk»úñ+€Í3°Ç€85ñpvm cwœ“olÉ~-$øÿ`¨ +½³;‚ ³ë›W'ÈòjÔÎ/oGÌÊØ”¯¼; õÜ—A­²’¤MIÄ"i,Ùk ìȸyÛ#¤°-!l®t}FËm»æ¹7€ðÚ"?¯ p;cÜ¢CMYñ¾5×ý4HŽx<\ø`k íýå µhÐCÖqZŠCÍCÙÕŒ¢µáÂwÛ’"O«´Às¥'ÍÕ&+𻜢^ÏL\•£éZZíêr<à}Â.æ(v 1y½æ±ÒW¸¯(ÍÙ’2Ó(—=9=ãÔÀBî+°‘69*`ª1ùñ|cÂó]Q¡ÿ‘ŽƒX1’ ù¨øs]YÉ®á­ã'Ü—RÃ~3VÅß5Ô$>µJq1‡6t²ê©­)ð¾23‡°ÀÙ¶ÄÇBJäíÎâ€{c´È{Kïífz<ÌHºcl)t?ÖòHS¼Ò«Y.éXKʱˆàa;€·´êè CccýÜ&b²&å5à³â•˜´‹Y¨CÄÞ,þH[œ²=ZôéÐ ÇfJß–ñÞÐöÂ: Ü……;T¸Œ«õjžÏ´G²¾ ôúPIïJqÉ3-©¯mâBßc;O4ÌÂ3#s5_Uw¾Xݰ¡à€Öd<ðƯ`ºâ¶!€}9T’@Ç€—Þ›ÀÇžO³p¯V5^ÏÒ=1Òà@ýru¥E[cð8»c×–æ:ŒlÔšub$å}[âÐN ´¢ #õuš…ö +ràéî¼%¡€ûá^«ȇË)Jáÿ·]?òÇ2“p1K-úÛÂáüµD#]ˆ€Ö.…ÛÆqÉævð›åaä—“i&ötžQrd*Í9##Fèb‰Wñu•_u1Ç$(QTÐÉ ú÷ûßµºž‹ÙÚZ»¾†aSPm2„÷boöËA’Ïσ„w?OòüÙy\N•‘÷´ÔÍQRÄŽŒ} Cø9$ÐO{bçrWôcCðï—3üÞuÎî#zm¨4bµ§Ðãt òåÿÍAÿ·Ê ¬Ê¡~š¶ô7sÝ…^‡ÊÊ«¬¼Я‰ÖQ”¯º:þî|G¾Û‘²Žs¤ìhÚ“óáÛBô—-aIÀ¾’ ¶ëÊñ›2Z‚¡älà§ÜßFùœL”&¯ç"’ƱaJ>raˆ¾:€õÞè»ìJ¾':àxÄ3s椤íH žuIü‰‰[r ,M¶ f¸ZÞN€½÷UÔŒcccËÅT‡Ø®.Ãî)ŠƒÿXaà.˜˜ýIR↸8xgŒ·2ŒZCTŒÜce“cÎôlì¡‚¿/C½÷~º)Êu äy¢%%é«X}}•sK_Ÿóik˜˜u¤ å~3ò/¤À7%.t½Û–Róì“´ÜÙà=Vg>PU‚]4µ9Û_jèÐSµ`u`ꂸ¯ ã€z«©9ââ®æÙ„3.é`¼$áÛ"‡ùÏzEßKÕKÂ’HM=ÈÍ®á/­xbfclc˜ð‰ò˜§ªÊð[69ìËË<`]ȹƒ”Ø;²²ä·€æ†^×®FGZ† >Y‹<î{j¤]ÎW”¯ °Aó0£ ì?‹•5߀ž;ÕbR¬bHˆM ßÕ±!“<È¢˜‘8ÆË½Îš úf¦"þŸ…Ë=Õâ¯ÌļK#.Ó2ëv1Ï!Ÿ.Õ´.Ž”ÄNõ东OÑP€‡cý½QÝýçjeë¹™ èÿÒ´S#£èÏ•Š*»–‰Z@ø,t伜oO¾¯ÀÅ9t„LÀ•ü=Ç&êpÙ-<òezO]’´3 ú°Òšóf{hו8Ìt<Ð ¬okür«¾$~ºá}<]ßöÇZ³ôke§cêz`i¶Cϰžƒx™w¦'g^M±QÇ:̦`fZÇè©s]PC}ÁS]5è…¦"ëår'ì³ýú<©ö:'j£%ïŒÑRfÚ³ž«ø!?ë«£oϼ²)Èsú¡}y¨eÕ Ð3èà `2âÛ,qn&¦Ûuب™®”Gsmq®Ï}_ÎW•ÛµD›¢$fo¬ÐïR‡Mþ6ÍFŸ™è°S=´Ø ú¨`‡Ý?7ò&jÞ®’í˜$$MÎ ôÂË6þPMˆ·Mà£l +zΩ±¾zkí·9\親Jr* xz4‹ûÏr÷jºœ¬-hyd×rI-kC­&¿!º3Jõ´/C¯¡fyˆinE¸˜[‘®{j.jUPäx<·´—ë}I¯Ž&1‰—ÓlÒ·ùÚæ]91qC‚ ¿Z,¯üc¥¢öÜLŸpÉ»’ÔÙtmí¾‚².a¤Û5µ¬}U%Á¡e›™¨=uqä¾¶¯"%: Lèõ=56.òÔH‡8ttȱš˜üÕLÌýc–\²£ ƒzð€§¦|]®éØœ ¤-xÌwg»®ö?šÈàëψ­Úÿ?{ïýÜØ•¥ þ´ÓÝÓ¥®žU—ʨ”2)¥¤ô>™LC&½÷„÷Þ{té”Jo˜ôÞ{€ÞÁ{2³ª{ö¿Ø½/kgvfb7b~؈etð(ž@ ðî¹÷œï|ßÞ;œ{ŒWo%lYŸ /Ñ:”÷ÛΛÁNYjûn{q%¦Ä×~X†>¯/J±›‹‚ž„e`(¬å‚jZãú$úüÚâtXGïȹÅÒ½õÁ'kÓŒ&Í}ä‘õ)~_Î%þ˺ônÁÆ@…§»Ï­=.ù­^^ñ…óêÆŽv _û”t]1ÔöuÞ%‘ÿëöÀó‚[ ݵ2H1E_µ¼éÄê»–o#>ê¿ízG¨Ÿ¨ú]~Mþhomä]ÞÍë+Ы/a?„µ NâŠCÓ„Ò„‚ޜыII°ÆÁijUx–^Ÿ³Š˜Þ9Ì%ï4à +ìÕˆ–\TQšS&6~hŒ°† ó-ðº£ÆÁˆq ?¢ãâ:.bsvÂ;‡8¿5‰,Ú¸.cã|‹ôú˜–ÙQ°ñÀn„ç0Å[cÝ'"‹$ ½™°„ZÊ‹ëîÜw½ÆŸ_Ÿdµ@µÔ?Çi Í Šý vÞÁÎ,ýÒù]F'aåC÷F Ë·@­¹ØZd4ïL¢/û§e Çê”#ußÛnÿ~ðömaÏ;M®(A¬XXè‚CÈ‹éX$÷+ØíÉîÓ-¥9í¸5 $ŒR^Òqhäµ­‰ö£»N)aàCJ6§àv-O0[‚º‘aŸjˆR‰P!%«}{ +SâÅ\Ø} ±£Zz»–x#®®kë—FT¤êÍñÞ3Ö‡å´?î>Q È9×ཨC"nù½ú' ïTRÔ,aÆô 6«Èµµ­â£½†»íÓ·Øo†§GÿÁú’Þ¸‡ž±0¾™ŽKQµ5åªjhÀ«¼9ìyMº´>E¯‰›Eœ¸™ƒI;„œ”ƒÏŽšXh¯‚Þæ¤Ï¯¤üšX˜Åf‘E º: jgÔ:00 x&x­“Œæk³Ngí-ìèÖ+ØqûÃÆ“ëoš®¼÷0èÿº#{œ[ò7ç õÎ7°Ò¨‘/²üÒ{}õmà.}Ui¥Ì)+ ¡6gøàó*\/0'7縭[ ¢ÞE)&¬—Ò Ñ«À×&IWWÞbN»@¯¼%\^g”¯¼æWf娤QÆuXèSRk._Ù§–lOZ¶§…훬ª­ Êõí1ôé˜ÚÒÒ›v¦ñÅ«/áG’Š_/НþýʳŽï¢ F7ÇÙÕPlE4ü>(gRfGZGnÎc®®¼Aw=Á]{G:sj}y&¥á!¢ äꔚÒœA^_}^ûýöÛ®¼¨ó é_ —ûf‰¥ »+adõ@ñžwò™I3¹ss~p­º„ãæó uèîú$³6eP‚jìõ¤‰X»çfc 6:¢¦4ygÐEi¥9idnˆ8Y@fà³:.ꯎÁ[{–‘{I½œ¸\­O-Äm(ĸ¥7¤KÛcˆ3¯{O€<¹Ÿ§6§uýì¸FDµ²c{–V‘¶Hyaè;˜w°žg_¸ž·ý0%¹úŸ&?TОiv³ó%íFL742ô'õôްWêyÕñãâPéo½ÓgRF_Ö%•FŒ"rÌ(dd¯¹í +,`.‡±%ïºO¬½í;Õ )içÀ˜QÂñÏóº ïƒ³f1#®bwG”ÚÐ"¡|s²ûüÒëö£Ð÷»6ù`Æ&½Ü웣¶­ŽÂ¯®¼î=™·ñ¨'Ÿµ®¢Öž#O-OsQãÀ@Ø"F@ŽDMR~ÂÑ?˜öˆÄ>£„kãÔižNO ·ôC·’ö¡ÔËJÉh[ë¹’±²Iy·X–vÞò«ÄtÏ‹Þï–ߠΥܲ;>½-¬¥·„µÔF¿’Öy’¾ÃðÜ™X_à#} „’”™Ê:ùÔ´“ƒ¾³‰Xa4 2aâ¡wWÄý[óÄݽî/ó<Ð̜²Pþ—5Ž0f u” .[¨m{+B‰ê¬ŒÓxô´Û*ßoôÿô_|~XIkx‚ ixA•à §;¤…zp» ;a3|Jlgßé]toLp–ÞÐÊÖ'¨•;óìÏkò%ÏËÞ£›cðóй¼VB +©ˆÀ¢°/¨ì§†Ôrð~ˆUnôýk\ÏGyx]«c¸‹Îǽ_šïui{?²9JøVàQ­q “ 'f‘¡ Q-±"¸€¸ˆ¹è1Xà´•œŽX€Á]öGÕ¿[Uû§Í·uÚz×ð]p_˜gµTü^ÿ<»9¬âü —Þ4ÞoþÖ;?ë…ŸõÏâ®'t"jÚ5ôº×èʽ§àáPÂZ|ÝêXÏÉÍ)\IÆ!HÚ´¨–ÑS³z"JRmDEoOèeÜ‚SÈ9Víü¥åK÷³Þ£[3TømäÅy͸þ‡ˆSÓšÃs„ꌞÕS°ŠIŸTÑšãÐõ[ª~æÆ(ò4à WüJ\YÀÄŧùîÊÐÓÝ5ÉÍÍ|mPÏÁ@½|2¨ÃW/O!Î,O¡ÏûOO™>öºâŠ7C×6Ý}wÞÏ{„ü¸†ÐV>O­öÍJÓ>¿Ò_y·ë«°†Þó~M4_|kY(ŠÙùŒM·Ï5F/õ)¨Ùzñ~mà—˜‰ƒˆ„ܲP°»!É-‹„i;±£Ä•¬Ná¯ùT,LÆ>ü eè:CT’›væÈ =­7ãdc#F^ÿ þòô`Ë5 û~͈¨zχ•øŠ”Ý›6rQ)³3 rï½U.ÏÛåò¤Yº§Ìóu|cœrÝ¿(„…¬tNêk8+CÜÇý´éOkoZ¾ +)~¥2¨`4d-"Æ®kèQÁ%Jšy˜ˆšÕb 9¬ {çH~…\ä¶çÉå¡Ez-ÀóJï ½2­óö~0—N@Çéö«¤”jDì[Áwæè5;sÄÒ¥W蛄¢À"£¼¯vù%ìèú[ä™à"¥ +èóŽÍqrÉÊkÌ9÷‹ÞïÃsÔšŒUÞ6HY[s´êÍ)ò€Š êy¶2A«´¿@žt¿Á]: x½š+Ÿhw5¯7 à´yè5ÞEj•_A¯óŒâÏyuI³ˆš±q°î'õŸo¾kûÎ; ?»2Š8V‘«}@O-Ïrš,ψ§à¸a³wåu÷÷ëoºŽ†æ?^[Ù’ÔññYýȤž‡ñ^jkKÌ$e‡5DÁÅ€œôî„‘ÞZpó¨yWÿ`TßϱýB¼à›aµ\ƒw³Ý?×wvk¼õÛíÉ®£«o:NúçÑUiPk¢:17ªc"RF-¸RH‰¹ê›C­>ƒ3Ý©ù÷Ó®c¾J}P%"š^kúag?yF¯:ZdõÅ•¤ºÈþZè¼à¶ãø«K¯b&.asŽßë|‚9sŠy‡L’0 +¨y;•Ôâ*¼S­?¬¿m:œuõß\UÒZgî6òªTœœ…OØsMm¥Ã—Ÿµ|£¬úíò[\eÔzçÍ6ˆ·€ž‡˜ÈMYż¤]Ì5Eü×uaÆBhÙïú! xV~E2·1{ƒz+´Ž^%·skQÐ õÅk(×Ó–bûãæ¯3./åâS -f¥vlÍ!.níµ²q@“<ËXD¼õ1ryPÍÅí­Ž¼Î¸ùü˜Ù³5K,Y› _ÛY ÕÄm,܇mAÿÞ›í]@Ö$t ÉÐEq ®äãâ¸@k[› –m~ãUô“6ì]å4®ÏŠáîQ vùrÄ*£{} [ã[du´b|Ü&ïßœç´yÆ—ÖgiUÞ¿Ý¢VÄÔÔº¤ŽÚxOOx‘Ù°ÕJ¨Û³@/2×FqçüÐwaó¤1-¶3M¯[G¸SñaI-´Ç%ÏÓ–oVŸwÌÁÏDÕ˜+7‘I+ êHkÒ"$¥¬\ ÐP×ó=—RzFWx‘ݾ9J(ÎÔÝ•;3a¾òqbgŽPÑ +)Ë€<ãì(hmê‘êCªáŠ/@nö„•"’ë%üÇ R9ÔGØ7ËnÏOšÄl×3Ô)å@㟦XW>]z+kÓbÒüÇ­ TqRËE¦ BbÖÊ#캅¼Ý%‘dg‘ÙºôŠR’øx~L€ÛœÀ… óýFoDÍÆåmB!¨a7ÃFÚ§f´ÇlCÒöÁÛ‘Ô’jbjôõõ×}§|ÓÌö¤Q.M;ïlσšhàâÓ1ÀÁ¾kQ-¬(fÄU$LÄ:ï<âòú ¹+aú ð®á„ƒ‹Ë¹‡Ÿ$õB`_åþ¥ùèÒ“Æ£¯)'þùv÷çg}\uüÖônÌ. š[–ŒdœVÎ#éO;ù<ß"®ÅòsËw–‡m_ìÌ*sno~¤æ«Õñ¾)+±çäQ?ØÈø"©ÏùKWåKæ•ÃܺÏÿ·¤NˆKèi3½#¦Å—­µö/ ¯Äô€K˜yظ‰þ·Çõ¬N¿}Í;Û{±`eôe,PxjXÿ + g¶§IÕ9jÝ®ƒƒ‰ë0¥ÅÎc¾ùîPÃö<f`IL-ÂúHåÛ3èK!§Ë;êÀ ¹*t6ÀUdpÕèø¹ûØÎæzÂHkË:˜ð¨ƒ<¶£ÂZ)Ù«”â·Ç95k/ˆEÊŠÏ6GÛŽ†•Þ)r¥OÉïY[#<âžõ ~wTÉy§ñWOzŽ,½†ŸŸ… éÅ”yzõÆ<§Ù¯¸ Öýé¸_u{ ¢—1¶¦PEæMŸûg©õ ƒ˜’qŠ[PâyvkÀÐ/Š˜d|èºâ­Iìå•í‡Î8QòºAÌq"@clϰ"* Ù?Ãlˆ«Í¡BÅÆkDÑÚkô™õQÜ…ˆ‚×ÐHHÛcäR÷/]GV^vªðå15®4¬D—{çz¯mMKš~Ä0(ÛšÁ]w?kø28G® αš}„k¬<êÞòðóIHߘ¥WGLrqØ4r;b¹1ËøÛsÄrË£ÆÏڮƵ|òö´eù lý»Þ?/Áøçñ• ®10-uþÜýÕ¬ ê7ïhÅŸÚuߘ¤•/Œ4| +xpETË„oŽ"Š‚³øŠˆ–ØÒ‘ýjFSX#ãÆ,rùæ ­fsŠx=ã’ÈÒ‰(n0¢:::¦!7GÔô¦„‘‡M»ogœƒ÷ +Îþ‘‚C$ÌÛ…¬˜šIèø$X×° +_·üªûHPKïJ9ÌÍÙîs ¦:¬cÀ€v&ÅÍRqÔr2á¸ý&jãÒ#frsÖ!/2šÜ[¿žåý½~ ì·ºáò<ϯçÝtÚ_¶ä¿„fu\d~e২…OÚž¥Ô®¼…Ÿ·óÉMäÅC+Q€å!-­1ª£îB(IèØ@Ës듸ËÛ3¸+¾iòõÐ<³!kPß»y´=›2ÓÛC +jMhÝ”ÒóƒˆU°ÛSz,¦fv&ô,DÚÄÅE4¬ö˜žÝPÒÁqZâZ!68TPÍëöŒã.év|œ§ÖfÍ<\`rJ'c¥ŒB =Éõ1æzD‹¹iPOëâ6̯fͬ‰ªÈ‚ÕS+mÙî¶~ ôNWX´‡JBiú™Q”Õ +i-àÍf&"nÄ×úæá¼@Ë&ÍLÞ6r?f¼õ`g‘Æ'@€:‡ܽ.¸€¹¶òºù¸ëIÙ¡ XoPO’¼Z>ªï@kÓ¬ÎÐ4­68½æ›A„/‰«%”¨vdx{‚V±5Š=gºÓø¹ã^óç€ß—%4ô–8À‚¸Ê!aW`VЛԋi -§{gqÑþ¨â÷¶‡åˆªè°´}äQÊ&“†µ¬® ’‹ú€÷2SZKx®ïbLKm€ŒĬçæ+€×·ƒÆ~AÄ<4Öqá¡EjmhÌŸ†Ù½=ɨ]{Ë( Í‹1›ìú¥—-ŸoŽu|»þurc”Q±5ÆkÏqz£ +b}‚VæxŠ>ÕˆØ &ðï`§¶ÆW‚*zsÂÊBd=BAÊ:|?jìî> t+½zkètâÖ ù†O/ÏZh°=—€Wy“±Ë“)³àz¸ æ/¦ãa@l©?~÷Rû•ôîŒ]6u÷g\|VÖ5ø0i“!cçÒf.)jlØH¨ÞYè;qâ$]ÛÇíLS;âZõ½Kzó_רܔ]¿5M©s¿¢\q½ ^nþì×s€›Õ„T̾œƒ/ÿ°$à‡˜­ÞI gqÅëˆSQ£â tþ®ëØò[øe÷(¾yu‰š¥ýYë1=±2¢%UäAlRþ®]ÂÏXÄÍBÉòëžoW_´å{Ûw&©ÂÖ\ü®["ÜõHDi;\74 ;žC_Œ(pWFsÚÀE&A<'ôœž$Ð9Y›–µ‰h «+¬ÆÝiØA•Ö pý ƒô¨ZˆJ¸Àì’ÕÓ²:’."mQ" ßÍk¿˜æžü{óÀÿ×SƳ`Q Tqz}óœVß” kgœRæ|P÷çM0Vÿ8®(¶ÀlLš1ñhi»ˆ•°ñðŸ:"FkÜL¨ ªÚÏšlw‰-6÷KRÆÛ} +Z‹ýYÓמ—ßûf`Å3­èÉ6P[o8G±g6f@« „U¼>ëÏ]ß¹~®ÿ*¥%ÕçÌT\CëÝœD•»_‚9{GºêSôSCJAßæ$¡ta°òwSÂÒôMPKS@$ n3‹»–5 IRR×ß6þ°öªáKÿ ìtÊÄA§,·ǃò°†Œ, .Bûƒ¸2PzBsÝ%1%h%fÓÚ,£.né—@Îy^Šå_9t~P!/e,ä–¼SÈèDÄ9f]H%%Cì z³1‰¿jyÐðó݆ߙï5|r¹=këLZÅܬKÌOۆ︽“_°3n&rk‚z#¤¢f¹$ ųS2R³¡{¢Á³ž‘9th×ÃcmÏ"+lÚ¾Íèø‹ä·RfÉ­¸A@ªúiqƒ\˜0ʤ9—Xúa]vä& °4¢a÷ì.‰Å ÖÓÚW­ +©MY;½ëâPrvZ_\KjZ{Ûû½o{moIz+¬¦µy^w^zÑøíÆ;øà#èOYÚ4r/¦ñ‚XŠ8DüüúÐs¯d躓wŒºß™o!'A®¦ ´î¸žIN˜è¨Iô¹€šÙÕ³a¾)äeçã†?î]ÿìÓ–6ª“\YÔÓœ™O(Ød¢œM. iÙöÝßèîTý'Íà•tÿTù‡]´ç‘Hv—$â´•ƒ‚®_NªX]Iµ.4ß{zó]×ñ·°þybILÇlÝs ¹{±0kãèú€î“þEJepó¬UÂÍX%œ¬Ä'жW)!°ÞáErU\M®‹ªh­%«ue{Ýõ¢ûüζ4caônMwŸu¿lývêõ='è (ÛӬƥ'ÈËÑiredšT¾ú¬ý˜BxöÓÕç‡Óf>1íŭ÷‚:)mk_º:Ñq:¸€­ Ì Šü3ÈK¾9Ô)Ì ŸJB +jeœ¤E&È:Åè7ŒK/zOmŒbJ|€;Ç´d£äÆí9\±‘Ñ1²á#­=¸ˆ¹jÿ©ú3û£Ú/ü³ðKq-­9¤¼ ¼öõqf¥ó9¹ØúvØû_lÐô­F^ù…q¤òÓàÜY3Ö°ÛÝozÙ®;W!ʲBƒP㛣4†쮈RJˆhoGu|´w]l{PûÇYÞ¹_í¼é: Ý(nd#ÂZz/ÐUÛSœ¦ÍQQçÒ/¤ ™¾“IòZÂH¬M™…”Àž¬£_tÃ`Ì"fn-ð«o(U›ïð—½3Hè|tΪܯ!Tæ<|VÎ5p;i2ãV_Ê&dDµtPÁêÌQê½3ø’ [ž¶qIyÏàÏ™¥;S› +FsPMkNÙ˜”‘ôN`J¬ZOëïÕݘÄÕ†Ô·†ýŠA¾õ)®ÌõºïâÞÚÐóˆƒúÈæ@—Q€Ûµ&ÌrÊ6òSÆ& «‰5Þ9ø…íé¾3Þ9dqDƒ,Î9É…eÁ§‚_Øš…Ÿ\ž•_z Ýc&c‚¾ï$5‡Uäú¼‹…-, E¹•G3¿1Ïk|¦=¡b¶†§û.[n•~¶ ½òŸÜ/šì,Ïåt¯‘Êõ·Zÿ°ôvÙ;‹¬/XŬ¬•ÖV2?•Ôsz³F #k‘KBzV·ýæŒù ò„õqû÷`=‹?,³I“wr »7o¾™ÖJéI5½Ñ;ÑõãòÓŽÃ[¯g"󤲄#oföfmî<²<­*¬ÞUDõbæÚ[ìÕµçߦ;~š©:eå‘vW¥mîÚDßÉí9|UDÏ¥¥¬l¬~ɯ„mO¨ÞVÀÏîÌ£®äÝb)ÐF⨑ӗ0±ñy·@šµs))-¡)®'4FLl´ßÌà |t@ÉhöMá.-?m;l½[ûãyw¥èùŽýî|Ž/RÝêý2d0óK²¡ŒQHHë™±bYÞÄBí9„¬œ‰‹Ì˜9¿šZPIð¾ù~¨§ ®E)[_qÖIl,8ˆœOΛ‡b +f[LI­K(Ù)…#×®Žð=P'3–!ï»}é-é*Ðx„°{=®E\,t_ÔÜ*þls²÷\HMi ëhÝ€{ Z£_E¸3ÒZ“V7Ð¥]q#¨Sx±o~)eå’ +K#/@–”ê¼]ÀÜsóY ±Éq¯íûµÇõ‡Íñv&®buìêû¹9½ x!cWJ¿‘0¢¯mN÷ü˜õɯ`µúæ5A%­nÏÃÆÿë—³·FGglÔέIĹõWˆãÑyfklQ€ÎRªC ØRûãÆ/TÒÒOמt|øsÏ®ŒÛÀºƒ iˆ¨†Õ‘5ÓZbêî“EÛ¡EÄ¥à"£>¢a½ +Ð+Œ¦‰îÕƒ%¿ZyÚu88 ]ÇX(äl Я­9»˜µ +éq5¡jímí7®gŸm¾ÁŸÌʰåˆ0¢£PM£5$U|\Ú84´Þ;‰8ëŸ%”y»žá_ +ù ˆ£˜™Õ›²²`iH }Õ²‘ÑEJÝö; ëæÈ5œ´?R$,bnPA­p$£ãôEæ{Nn¾­þ“ûñO*º¹1a‚XºÚ(fú”ššÚ˜4 é…%ÙpaI~? ´3ˆÍË;³¤ ƒˆ”0ñ°Î°ãfá/kâ6ÀKzï¿zD¢]7‹éÎÍiô…õ)âu×KÀ jmJËÁìÙ(-ÿæa ÿm•O™eî§Mv=GŠèùä°^@]}>³ «øl”y¿´OêÙ˜÷+bù‡U¡4ibÁ { +äì|Ê®KÀÚ¬â᛿Ó÷_þ}tsãÊ€¿»&’ùØj÷ëöo’V>wë®îÃÖÀó˜žÐ¡žú'¥¸ôÓMè÷K*zCÜÀA€ù½èa4åBÆ®›K·>m츺òâúWO°_ýÝÖdëwÁYµ¼ž‡Ì8°¼™Ý—50;³&BUÚ„¹žÔ¡‹SzÇÚ8¡hsŒ×RÞ’åbÖÞ2›ö›Ú¾s–Ÿš>ó¿#•åô2–ûîÊ´¨ä÷)-TW ±9Nó.¨}9©1m&Tæ°EÁyF#À.Yð긚X¶ôêÆoœO®ÿt?ƸžÝý:¿¾9G«\#\Ú¥”¼·±Qÿû +‹µšª–£ë“¿8wjÏ#gíBzpP¶ô¼ñÐæhËᤂÑT0Hè9›”вڒ&15g¹—sݹè­ÉÎ#k¯[çp×2F){×-¿4ñ±I3»·,ÎÚ8˜È<þÚʳæÃJù¹O,·Ëÿ98Ì®…þ ˜ÿ°ÚXX°?¬‹rv© ´vÊ@ïÜ™ì9>Î>õw滥ŸçŒdh†Q tÌwëoÛ¾öÍ .žߵȸ{61Û¯$W¯Oc/DuBBÆ,$§ŒÌލ†Z·:ÚsdímÇá‚X¿kg€\e÷BçÖƒ€¯E•¼ž¤†ß—1ì6Rêc::àý¬Ö‚MÂ/Ø%¨ûÛóäò°†‡Hš„‚C*Ì€×ÃΧ¤Ô@¿{‰,òÎ§×ø¦`'W^4}¾öªûû¬ƒÝ[‘ä<²”]ÈL@ß·êx!c?'½4x?·$¿œi{SäC_Lè¥Ì”yøfhÇ¥w¸Kqs¿´°" +©úJô7~½=Ú{4¬A\Œèñ•Ð|{&i废(g·g‡D9çí·i {cÊÎÛcµv>-ý5ЂW²‰¨°<ô‹ë-öÚ¤ æ7;Sìv UÅÿ¶:ðó{7ŸíŸí»°9Ö}lk +u&j9X+Òê;\Ñ +t‚qTyÞ*‘þÅ#‘倆‹jÑeÖÇ•T ]ùu\OAîm ¾Êz„\è|Hx–T¸ÓÍ[²»N.%gb÷ù¨s?E (myÀ‹ÿ=˜¥°u  ?pŸðþÇY;y¨üA/ :y¨þPoßÉCXhÿhôÏA#>÷·™;sþø…ó{^÷ß??ûñ±î¿íÿ??ÿ¸?ýÿ>•Ÿœ(ÃñIÜúîÚC] Ÿô‚÷û0û?xöq²ÏûÛRœ;ÔwèôÉSÀ©ó§Äÿ¥7@ú¯oú¯8uñãxÏ‚Þxò“Ç? +ï¢CÏ>}á“®êÿÕrz“ 5¦–B +nG`ÕîW1ºcFwÖNíHêqÕ¾2¦£5ÇL쾤UÄ kX=Ûs„’À"¥:¸ÀhHhùè´ADIê%ô˜Z€Ši¹½P30覻Ûóüî­)zãÊk|ùö8¾,²@,‹-Ë“RuT‰ºœ2 +IQýí{ßB†q`QÐ矡Wû¦±E¡¨AöZ|ž^›Tƒ”µü†Z³9ÆlŠë9}æúÎòüæxω¨_›¶RÛc +ü„–Öš2s±i‹˜™Ð1Úc*j]DE­ÙÃ\H*™]{öþþŒ‰‡‹k8} ½ˆž±‹9qå'—­ÃOù§ð×󌆔NL‹©ÈÈ‚„è“ÊAAhø3Š9½=ÚõíÆËÆÏƒ}çR*V{Z#Âg "òÆâÜÊӎÛ¯`Ç6ßÂά¿iý.4‹*>4g´bjDÉhŠªØI½Ÿ5Ëø)«| ¤ég2²wžóϲ`ióÀ:a¤wå,<؈#×0Z£*J]TÍî*õ1-«=e¤µ­N´ý°9Õu:c¤4çMÒ®]ÌÏY%Ü$X“­iBéÎ ¹&ar“f/ ¦ÔúÄò˜£ŒGͺEü¸Y@ÜQRšÜo{N$u\TÏÅ5Ô¦¬K$Ê/Éïe|jÚÎŧ¬\BÆÆÁÄtΏšX‘2j“zrãžÏ.d¤­\LÒ„Ç-,xXG©êiÍi;›0ÑÛ3>9g“IR&X*cåSf>Õ¯&Õx•øŠ¸HÛØè]‡õÞ#¿·Ž›wÉäig¿<¤’ý.*5ñ—°È¤!kIÛðìãÖˬu`(m–pÒ>)çäà¡FÝ £'ee£rN' ÞU1Z’)e¾Ÿ²‹Ù9—X˜÷ÈSv6&n"6&-ÄÖ˜‘PV˽óÄåÝæóöǸ²°fH–2A ¥qå[ïpÅþjEÊ æÒ)“&lÊBkk5)µj~ŽÇi-›3øâÍ9RYÔÂÇ­OᯆXÍ)-ˆ£”•0rQ¡<¬Ä—Ô<Øò·>aHšƒj ˆó15òrZ+Oé°eq­)¨¦·„4\xÜ,E5”w’P¼þö½wy.¼€*J)©uYÓ±{'úoüÊúö#ÈELÂÀGEïªÿèjþ6©'VgL\dÚ(&'ÍbjÒ$¡§À˜Ò& #e‘PM-¹&kaÁ26 ŒIÈq¥œ˜%ߨ…ý¸ò¤á[¯;~H*𥠩:¬¡ÖÏÜ,ýgíHÍŸ“‹\TÖ"aæ‘—<Ï*·þ¦áË”_šÒÊÒkÒ 3iâPÓ‹ uúE»nù­¬]@K˜…d ŒœkðNÎ%N™A>ë˜íQ%³%¡`¶f재™Ñ•³2º²&zk\ÉéÊ$¬”Ò’P«s &>.kR3-c•ò2öÁ‘„I +iȨVJNšdÜ´S"L¹Œ„MHË€8‡r!agÂ]½Ç—ÇágrnùƒÌòÀƒŒ[*Ëyä·¡&CY‡D˜1³áµ)aÀ•æìøºœ“Ø1Á¯uÈëPSº¤E@L̉éém)+µ%ç ´åì´Ž˜ŽPáC^Šky¸¼åγ‚ãΛ”GéÈu>îš_ƒ+Iø]ÏÐÏ wE 5 È8îŒ&í7‡-rÌDnˆÈu™ƒšN8xT0‡ø¬]>˜¶Ê¥i«˜™w²±]ã±sN.9m3FFWR 5rç¡byÜ,fCÍϲù­„•…Ú™ï9¾=×ùÃÎ|÷Ѱ–Tíí.Áþø«Inãá¬í'•W5ç^yÒs82O©ÎÙE¬¬[ÌOÙ8è´•Ok',إ¼CÄL[¸˜)JÉÎ,­"¤ã!üFfïÜHÍg›ïÈYƒŒ]°FŒôî±Öo¶Ç;¾ «¹0€Ä”]Þ1 +ˆÛ³d0SŒÌž¼™ÑÒ*ý È ëc}G} 䪈QBßœ¥V-¿@Û~K¹žæwÄôú„šTY$ÜØžDŸ×ÞmþýÆþjT+À5ÌvïLßYßD÷Ù¸ +[›µ3àI=£- r'6{´¬uøNÆ2П4Jé –2R[óPÍDPwh ±!®ç¢RF¹ ¬bsÂî¤VŒOi9=Þé¾“ŽŸKÿÙ|§â7ÖÛ_E§¤„à<¿gg‚Zâ#_ Ž‘®&¤JïdçQÇ“ÚÏ—^wÿ¨Ôú¥ë ìBZ/¤Çö{g°ÅozÎgQ¥Y#©.kÀ\O›HP#†¨o –0gÁ!ïºE‚”™Þ‘y“¶Kx(V\²þ¸‰Ó—2p³˜õÁ"¤ìÙ¨m»|mÎŽ© ÎvžŒÏ³º³Æ¡ÁšXZ@åíúž["þëªl$ç2&>>a’râ€/ÄMBbÂ(¡&Àcʰß#Ì.õßÊzú‡²N17åäS·ÄJ?¨+ Gîä–ûoƒífauàa~Y~7çºr‘6ÑÛ"jdQÒˆ,ŽQךî3 ¼jìk²ð IžuÐ{ÓVBMÖJ¸¸9Ùñ]TÉèÉ[o?ÏÚ‡îÄŒ|\XËê‰êè 3 ‘0ðP9—T–vòé)€Ë…å‘W9÷­7 ÛÀ`Ô" ¤l¤†¬Üœw±0'‹°àk|R_ÍéÛZXaù˲Hø×56%aftÆ \xÞJïÞµâ«S?Ãz¬ !ëyœ´KÅ æ!BZRCÜD뉛)ma¥~{QdÜðÍÆ ByÎþpÑ7Ŭ[Åœ Ì®çÌÌږ³2ai«'k• +2ÖyÊ,ã$ŒbjLÃéNiøðÌÇøã 6•ä*ÕݖϳìΔð,-§/¬§4†•ز´žÖU°@Mù$¼¨‘ Ûm×ÍgÜÀ³¿À§uý¼_ÜHmY~Ûü…ýç¦ÏÌ·›~knùƒÿ5ðZ³åQãW[oûÎìšÙȬÕãÜ™ì;±ù®ýðÆhÛ7 ”@>øç©•I=³ñˆY+u`{ +qzs¢ëˆõqí7^uœùà¤vfI 5õ «é a%µÆ7‹»ìŸÇ_Kèi-3«7n1´H­K›%Ì„žÝ³5 ?i}Tû»1ä)ßö‚ûq߉„ŠƒÚuˆ ˆ3éø˜ŒAÊΛäÒ¬EDë(uÐÐ@—æíBÆî’lØo`t­÷ÆÔ€ÚneA\¤Ì ö(û.Dõøšì—v=JÙoìæ$6ƒ\C¥ c@-CnÌ:yÔ˜Öb–úh‰=·T5fxÔt­°Ì@¿_§t¿øŸ·Ë¤9Çàí¬cè~øÖº3¢§5GMŒà™«Ó½GÃK +n)ïr€ž $-´Ž¤•Þ•vJe1«€´‘(縕¶‹Ù›u>ïPNó’V6¢°Âgç–x@ 9—›°2q3Ôu'¸bTG©5¤- 8oXGmô+%µ>a²ED‹Œ÷+p×36&öϺû3.±8í`ãvWÅÒüÒàC¨¾ä–ä·ó€ûå—Dâ´‹ƒƒêÌú2v™(ølÖrÅ-‘úÈHÙYˆˆ–Ñi£¨…ƒöëHµ@[ƒùyœuß|ž[•ÿ”¶ =µ5 ¢Ô&Ìýò¼u`8¦aÃ"j0W ®g\U®ŒšX]„tô¶ ŠZü*0GªŒ)Ù°Œ]@˜yè-5­Îö¬÷ðæ(þjÚÂÇûç±×b‹´Æè¼éŸö¬ +·&eÔçc'ûN&€.]ë:QbK“z ­Œž¿¸Ù„,Èó°š\»9‹¾è$Wftƒ’ˆB+™ÍÞibYpŽRš!W¦Uô¦´šÝ¹5ÖwÆ|¿æ_6ß"ÏüèIªÈUIÀc³ø«þé¾Sáy8¨m¨¢8àt¾YRiÆ$¢ŒqÝ6 +‰a®$´Ð},¡î;—ÓãʳFliÔÛ‚hTÀ}B +jMLÅíI›ø¤,À¾‚“GÎÚiAU煮ŠHebÿ­ÔÏ֍ЅHªXi £9 0)®¥¶ìÌ#.¯wMëÔ´AÂLê„„”^ˆKêg²òIY’Hß{Ä€ è~¥am +_׋¨Y×È/I3R@u…Þž0òÉÙ¡0í‘HAlR2.‰(å¼ °Z"JZHM1]÷é˜^3jvj{`na ð ÏàOyÇ0Øn>-8o¿.x¸Ôü2©µàf~@okHÏ9åƒÐ9KèÜ$t./çqÃ?*Z}ÊBëÜxwñiI3 Ñ“k#@³M|ì¶ÔQ#àWŽ{ãYçðƒœ‹CH;˜}Y‘\ÒÁÁx5PÃb©(í¸?—š ãì—ž@:¼;¦§7Ç xÚÜ/ô«±%úàa´¬uäÑG½kåß„\Ó6!%ç¼|G@É@çÑ·žæÜ7_BÍ^wÿËyXØ T'—%2¨Æ%Ì"jpT¨¹*àZCùe°Ï’Hs‰ù)‹˜5 +·¼é;?q³ê·ûÐÃ]Ïɬ{èAÌ΀íÌ‘o¬Oð[ü‹üŒãþlð¬”E‰ï¿ ž™ÃÖ»ob:iÑÒN™,ãêˆëÄĤQ.L‡ä)“ Ô'ãjBÙŽ’Pâ£V¦ BrÖ& æ 7bóœÎ¤öÖHxQNñ/ŠàÛóœ&ˆ¥Íw}§|Ó¸’ŒAÂÜ£4£Xk• ¡f§IPÿ¶¦a'7Æág ÔÚ¬Q&ȇ†ã@ÛÆUDZ+¥%Õ|8t^)ªÀ^[Ûð'ßdÏÑð¡$© 6'Pç·ÞõÍ…ä„Aˆ© åÛãM_­<­ý}x t5«-k‘:Pk”|xhЍs-<ßq$¶Ðþ}LÑs&©…ôŸÚp}²ïôÖ8ª8g– +ó6ù ÐÖ‚´‹OÛ˜}q=³+ïsbb!ü@Ç%5\Æ:|?¤ Uoö|˜‚Ÿ‹+© I-£=©cõæ—ñÍ“+‚@æ "êР¾ô„¡|8Ö£,¢c¶CMÑ3 w¢@—fe­·Ÿ¥­¦ÒŽ¡‡Y×ÀÐa ÑcF>&ëzðQ˜2Šé)C¿ 4CÞ-`¦Œ¾´ƒÞ÷0Q9€³·<ðà©p $ ¦û_¼»ç‘ äœzÆ*b_Ú[’ßÉØF’ï¼:e”qÒf¬swøø ,m—I2à8i°_Ô$aÄMý„mäáÆ‚ okŽ^4sлÄá‡5ÉHÎÃgÄm€‡Xû¥qËOÊ0àØ!ÀÉÒv+ï0÷ ®æì—¥l2aØ@h,ô]ÊEœœíö³¬U.kY-àÚ@ƒ%¬<|ayðç¨y—X2þ¼˜4Ý{™¶ ¤ìR~pÖ$X“ìÒÐã=è\Û’XóÒrûæ–&Œ®<˜Ã¼ó泂ëλœkà&Ä¢>Ü¿ÈhÈÛûÂ:c{ž×Ñݼý’ô–ïmë¶÷Ùkï.h»JIÛ´ 7ÌÌ蘙ٖl13“™b;fff1Ë2È b–!íÚçüï3û~Еë2Ès>ó¾Çø‡âÓȾ¼yÊ¡©öø\›œ˜¼5…‹Ø[2wUå•Ë£twÅ‚€žG÷MõéA~’² +}ªò2Û‚„nãä…´"NH'`_Çt|¸'1ÄÖY|¤sššêR”·†èñÎiP×`l‚猨9fú¼R.Y§ŠÃ‹‰Y”¶=NŒ?ÐqÉ5À94q)€Ï1[S…-ƒ¹×ÓÔ§†Ç2µÃïnwRã}óU5ÇàŽ4"ÖJ@öÊyº–Ä †ú¿y&Q1»x}ýÌ5ËEºå¥B?”3@­ú5L¸GEÉZÌ¿¿7‡ j+ª² +‡‚ƒ hk;P†lX‡™ß«d!< †{¾¾Ñ#Z2hdáƒ&&öh…EûcÃýsÍòvЃ>D^ NÄ92—Ô@Zì× Ø‡@cÿX‘Ô…ŒL¼K…ˆ€Ø6 Ó½R!Á§³¡Ú:^-¾UZéû«&˪l2Ê£ñw¤Œ©ŸüÎ#-aùŒ3 ïÓÐóírRJÐÌĬ0 £PàÓWµZŒ‡†Gº+ñ›@V‚¼GÏD¹Õ,8`KzHÏÆúBšu†SÐHøA}iU@WRv´(.;^årŽV„e ÿÜj2¸—Ê·ª¢Ú¥Ñ‚Æ’Šƒå²¦ƒ•ªþ `%è?§?Zþl°7&Ñõ˜[ÿ<€ ˜j‡<úò¿¾¼.´Èg‚ç}d >›¸4hNKÝšûTöþn_þijKÚÐi™)¥oKùàÀzÄ€ŽKój¸‡’Y¤o+¼æÕÐa-½À­e½к´šGò«+j¬óÚÆ%öÈTZu¼"ª8Zå0ýF6ΣäÜ +N±mžšæ–s;2*LY—}yw˜’ÿy äCiàìò€ŠOr-–»Ó/Ûg±ñ›ÓȨaføÉà|M­O[RâÖ°NæT0r÷f¨ÉëƒÈ§»„M7ìñ+úäî6ñØ$‚j™uêQÓv&ójÞ~»Ò–|Þ'¥dÛæIÉ[½EO tHÅ%ºe¤7ÈÃÖÉ¢§«]É—6»sŠÞ·RÞœ47E}6T÷Æg L¬d4§”’f_€?÷*°ñ^-µÐØ–yùPM-üc/ +˜èhhžÔ§¥îN#ßíŒ#ßú•¼UM„ÉkÒÎnwqÑ^eËŒO r€”Qy }šž¢¨M<«(Á¯­öë«Z<ÚÒ*7ä6Æ1GKuÎñ‘i)o½°¤‚O>^,©;6—Ôý¹&ª}Bõ ™Nâ-Èž…»1†¿—sd®î-Ö MUݡŲzÈK@®†»ð7^>Ñ'ça½ "r@Y ˜­¼éhETélïÖŠØÀV>ð¯[Ë%¯Mã—ºÉoåКKd=à?x·š?‚Øf•/ð|bUÒàÀKJ>ê`!¬2r²GËÆƒåC}z ®Á«â`uíy·í³ o UíÀS Ç@Î å…Ì%˜¯Žœ4•TnÏñ±ë㬠Ð#U ›| +™Kªƒæ’ÊÃQ)èá‘YÀ·ÎaÓFxa×¼s¥.CeË>ðS¯®¼öÀ\ÞZ¬ê†øíU6¨£æ/÷>[éE':4µ}›Òrîúl Ùª,.U´šùB‡”š¿;‹ò«)ÙÎ9B¬WCÍ?ܬuÆ<|Ý£âál —ïÎÐ’€‡<^•¬²ià^‘ö>Ò­ཀϜjzÁÚDÑSݧœKÖIJÞÑRI­S!$:"ê_z§¹g]äSp1à™ÅŒs¢¿,”rmR6|oŽï”Ó2AfÉuÉ99î’òѪŽâ§½ä÷_¯wÅ@sè^ ”—Èû2LÄÎDñ‹•ŽìÛŽIB†Gñª¹xÇ=áHV&´N3 +VúŠø¤ [ɰ€‚–ïš%ÅK³®Šrnÿ÷lIÊ“£EÉG»Š’éVÓ ƒãÈ ôð÷öÙœ{ö9ø³Ì+G +\bh‰R¼'C…yfô³OÉAO( +jxd«Ÿ¸9Œ|íñB@3÷çñ1 3=2 Ó½ ¡9§Ø0÷4«Ð5ÏK» +ÐR¯oŸrúº«T@^éýq€1 D€{DUЇôØú ñ{‡óé\§\@r*E ·’‹9‚Ö"4€…W¯ŒG6=üÑ;Ã%›Ê¼j&*h`ã}пö]°)!#Ÿ¹Ü ëe‡PÔ¦];2× zõ‡]šê‡JruIåñ’¸âðY@C/p.PS¼2N±OÅÔ‚C‡È ê,`ªló‚÷ß•a#6&±o­S¬Ì#mI©WMÉ èX¸ãÅòæA,ò€ ·#§eíÊ©™[³Äøµ1l˜]ÎF-àÞyTbN`±²+¸T´]RêÖsÉ. n›''­ô!ŸîMpò Í ˜J«=ÚòšÀ¢@X”TMBáá"—t‚`g§¯Ñ“LBx  w—*»BË’Ê´Gxÿ‰Ï jAÖ×ÖõíɈ[s¨H¿¾²ÝglRºu‡ÁßLØ$·’˜Ô1QÀ ¹~pýžE‘Èk*©ö›ª:‚‹åM> ®0ò%¬òE!¡j!ûØ\Ñ<¹*¼Ò¥by4LÀ…Œâ3—õÙ"€üL­µú%å™çTò0» ¤ä•á‚»¶Qì;Ï#ÔÚ²“[!fy@žqö)xû%yo‚˜'Ñ>CIðïØA½ÜèA>tÎ1³]rz–}––âZ`æÙf™™–!Â{Ç-õOùç2— qt0 ÈQ´V"Ù¥Ä1Ï,´ÎÒÒóÔTÛ8öm°¨kŽžéWð)Ÿ!v^¿3Žx¹Ô–sy£=ó¢uþÈ?X[˧C{;25¥âCm‰È=OIwÏCóÎø$¯þúH‡MÞʾ2Ó³ ¶ì£_Y"ð*øD +ðx>Ç+,Òç*æØÌ BsUU©È¯úØíS6Žø4u].9 ¾3VøÀÒ »kî"¾Ö6¡ß ’r§šGÝ5æ\øÔëQ4 t¥å-±?xí–cÂ=2BlHÇÆz´Ô\—p›ª¼Â£à㡵Yë -Õ +ôlc<ûÞÒ§´[Ÿu|Î!àh¯ƒWSÛåÖÕvû >ÓW5{tbñþ%agûh`Bd—RÌrj*j<ºÊFP¯|&ʧ¥æ:Z¤û´¨hë\Úu¿‚œ}`,­ñBc£ª¬ + \Ã&/1qG‹t¤OŒÚθbŸÁǃgCöiÙh¸¿àRE»°šä9¯IÈshX¨åQô  Ëìðû^ÅJ5°(µÊ£ŒD:2°°×ö€Î¨™¾~2°"ùè6rˆ´ÿªxVY}Àq'à1ðl½ݧ«l²ªÄ‚íJòÑRYã!ôZ.­?¯À_{ïé ¹àÀTÑfUŠ˜{R ǧ« +šA^_U˜9ô ‘Cõê™›4ñxÁAɶw´RÞv¼Q=Z)m y’õ%åÀc[Í’²ƒEI%4ß|´ÂãÍT¤[‹M\‚ ™ÙäÐ2_\—»•¤O-dzÔB¨72´ͧ¡ÁvfP¬ó¤D´ïIÁÃíLÐs × &ßHY:LÂöxÒMKOüo[½Ù×½wÈèYnHÇ”"”S¼šß86ÒPzüp$¨‡R'´fŽœäWˆ»SÌìÝYJ*´ÿlk8ëæÎHîcï<5ÿ³I\â•’’½2R’[ +˜_ÊF¸§SoX‡cÏÚGóîúAŽéˆ€šœé“‘Ò} +F±w®ªÄ;_Bw*)+}ñlS0ЄŒC{i¤’žëRpp ¶Ú–ÄU!9ϧA†{U¨È€šš{ 0Åå!P³ “ŠÜRÜ>ÎÈpOó®vA@KH™H¹n½À£s íãƒwÎóQY)0Þ-EG8gá/€'zZõ*™0·”œPó‹€—xµødð7¿Ž˜áÑ’³ÐÚ´±¦Ï¡)¯tiªš\êOS]U ÈTø#- ÒÐ +Ý2JfÔ›G_"ÊBÀë‹ÕÓ§ãeèØÄ@‡t„t¿wl&å^$çûµèD»›àRX!£h)4ß­r(5%ß§$eu, È Y{óð×^ƒ@ä],ktê¹D›^Àrð-ñ¸n=:6¨§ä Œ¢ 轡¼>d•yµ ¸OCÍ hIn9>qg¦øÕö6Ò·(®ò/³ið3ÁÅÓ>c³pâ`«ªÐRiýáReÏ!¨Uh./hŠ}&òxEXÆžAÙçÕò6h>ãx…Çþ¼Êf‚º¥¯ cÞ‚ZIñë%å6=‹à5²¼¡Ü/© -ñEËl†w±6Ÿyçh¥¢ópµ¼°\Í1ðªÏ+Uƒ€õAÖâ1C‹þt-fq9´çÀ«'ç: Où¬ã1È#|à-ºKEÍ‚æ¡ßFri°ñ;3E/½*Z1t­{RJærê‘k–ý zð@KÉó*a¯m37×c.YÇ ßxˆYA-k„¿%¦‡t!x‰lRZÆÞ.Ê6‡xãRC ùf¡Äª!¤/Ãîû¤eB`b¯Š‹Û›€=5·ÅŸÚȸ㗓óô¢uöؽ€üpíÑ3ðhû#)—­#éý øÌ-‡àS‘3¬…Я[Žt¤už‰Ø$&zäàyOÀ#ü +&æʸÂ-£æ@k’ žS­CÉìL+ü¼D-þc‰ÿlfâ>/±HA)Ï¥BŸäÄd¿Š‹qÌp`®)^±s–œì×}84›pHhßÃ2_°+%'Ûfø¨€ª®Ë§q¬“¸hÛ8>!¤æRŽŒ\†WEβÍÂ^ìO< khD\¯’‡ è˜hŸš”ãדóüzjáçe.óó²°Ô 2‹[-­þ$‘@sÚÇàudJ `AþÕÑá€ÇŠ–9ÌCKEoÀ\ÖÍÏ-òù®rX¬0‰¬0ðnüíþ\Æý¹üG`üS­2l¢CÊÆ55m‡ÆªÖHà”1óí2boŽ–µ7[ôÞ­òöÕbö.È–CM·ð]hMXå1Â# ÷ðëØxÀDä ”SM²[EI÷iYØÃ%aÙg OZ¦¢ƒZð(¹HT̨Kk‚ºÒÊà5h_¶ôFPЉ94óÆÛ¢®s#ï„äΑIÀ hY¯–‰ÜºæZ fÔ`lŒ¢hÎÆ4PüèèÉÿZ˜Ôà¢?xþZC&¤øÔØø–^ìTsº¸/ÏöÐßž÷,phŸW•® +$ÀÏ™V%iUQr—&‘/­ +6Ö¡µ%¥ç•¥eʺî#]YµKNHÚ,zº=’sÃ6Sô¯åSvgØyûÓ¬Ì`ŒÏK¥MÇf:*¨:¬§Ãý:ÜÍ÷ê%%.-›`“R³A–¯94 +y!ˆ- £  &6jæx•Ž?´ðnP+]ùÇÕʾ£Uß­!gùô ¤OÇ".Ò)ÿ×Âb¦D,çÞXçÀì`Üí2!ð‘ÒR—¢¼Â)ÿØéV}ì>Sn×ðÉë2váú-9`ªð6r/ +E>“ Ì«/­óK«ƒ‹þ×Ä ›íÕrèG«å¾%Áe§¹tø$§ +ë5ãRü‹Ðþ°ÚÉ£õоÃå’ÚCP·Çëå}k<ñ¸vÈþ.hN<¯ ‘Žv+a!=ô ‡z` ™X¤?Wجÿkáò?/q9Pͺ”Ĥ¹âç~ ½ZCyƒ0 +8>cYch¹¼#´\Ùã×í7qi=X‰A-sÝ€*1ÿºðó6íTsÐ@xŸ§ø@r€vd(©82•T™E%ŸÍ<Ή…ƒöÆû5ÕŸ–ËšW…Àùøð!ò‘™Ë€æ¸=*øìÑbYÓábU÷¡¡´úHWZÔÙÐ<(´ɯ¡À|*R–[Š *KÄUm»]&¦;”b¦mž‡ô*9ØC0æA‹ìPÓ–aà=#äÌÏڪ斷Îà£÷g‰ ‹¶f M0òX6Эˆhªh=šx¤¯lé„l/¸N·’œ ò% '_ ÁÁ{rkêzÌB!ÈÎ8ÀG…ƒE5iÕuÙ·.Ë«‡ô›…ñhL›‚‹qkÙ˜}%5{_ÄïjùÛ³”äc0¶Ç †t,tPÏ¥-q¨PýïN£·gHq $¹¤ôŒ#Ð7ƒ¸0|ŽWÁFµ¥•ÐÚZÀTÕZ*o¹Q¼z³>Ž]é…?>2I*‹,üg ‹z´Â$ÿ­M¯rÙÐ:´ÏÀc€ _}`IGV­ ­ÔŒ¡3#À#}R¶UNLwƒçä1Šø;s´L¿ªºÉ«­ñè+› ìÖŠy^p]¾EÐrpÐ$9«´Ô£¯éó™æ½Æ²ߢPà3ó˜ f]<®eá‚KÀOe”œÍif¦K]Õ0Ö CsoGkU#G«¥MG–’OÁE&þqM°¡ÇPZãÔ7Éý+Õ#Siý¶œ‡ÛWqÑA#q¼HÊ;6QŠöf±áŸA&úè«?ÍÚ‘‘^äQS²@wv&Pïö§Ðï TØÑ"ž6òŠÏøIá3Iª\z>à ¼àš‡ö½, ÅÐ|n°¬O% ¹el˜GÅ.öhùd¿KÙ ÔÐaÀSó ó~™ˆê–²‹œ2`[6Úóгñ!à!P–=É.ò˜G«ñ±ET\< {5¬b?ÈÇZ! <«J¿žÏ=—úvh,©ôýÛü²ôÁïmÀŸ~Ψ… ‡œÝ¦&;*Kœó%L¯’ ò%n`}¢à¡k’~ q?/ŠK–ûsíMRr½j ÿÀ âý¼Äa-ÑÿYcÝjzþú8=Ñ:Ï)€Ö߃jFOAù—âS¶–’Óý2jÖàèCîSÑs¡u¦\Ÿ‚O:Еׄ 凋’êã%6Ý©ÄÄ@{4÷  úòè$Àcx4ämè|Â<%m{õrg ý. Ç¥yTè(hòÀX;à×UµBûµl +j¦0þ!'¿žC‚Ö·Á3†ý•a5eå~#Í}îÍRÒàÚ‚zR¦[qjIéÐùˆ VÄ94”Õ®­ +@{œ–Äày[¸àë¢SÎÈÕw?‡æäÿdÏÐäjaдÔÜg _ôŸ 6ûÏ5ãÀÀÀÙ”ãUqÝÁšøãÑš¤á`ERj¤ôØRÒøy]Òt°Êû¹´ýrðãò€±¼Á¥ÐÚÒ² ¹ªèc5Ä@‡€É}:;d””€ÜåÕ—T¸Cý„×X70—Ô{A†…ú1¸Ä¤®ŒçÜÙžàìò.S׬tJjW}ïWqhš ¸ìÐ,àCçW|FI¹CÓªô+Û|€A€?UBYÞ«§Ø¥Èp‡íUSóþX•ü¯ER÷‡™Æ‚KõDå ·?j<4rÈG&<` äù |læ²–$u½È¡̳R=úô¦P±á!Ж‰qÌ‘m“¤(ç<-ݘڿïW’Rœ³¸pû 1Ú¯`Ù&(q{#¸7Ö1üûcŸ–=rÚ-§e¹´,P3ÈÏË<64oäRs±N:çD)…”Š‹¨Yèçlà}RJºGÅ,Ú_ ¦nŒSc7GÈÑûÓ¸¿’ìX %Ûeä´ÝiRŒmF„[À}X.~fúãZîR²ŽuBî±FÌêHycÜoÛc¤l§BHwÉØcDüŸIí+Ð+t´oôPœm† +íÃLö+È©ŸM,âÿzúðòÿu&Œ”ú%ëÀ@/ò«(™>1Ã>ƒöÌ3óõµ½AC-` +à«ZåÄT¯’ÒR:l²WÍ€ô"Ax´&ê•“² mqg í±¿¹…/AþA9\#`øÔ%b?È ^ |`pƒ•VÇ‚þ/é‰éA-d{Á¯£Ã ÞõéÅ"u'“ó*Dؾ ùþ@Ï@ςր×ùõLÈ‘5î¯sÐ8;çlO#öÇðaÿÏ"®9økOŸ4Uv„V$CKtìñ*©àð:ÐR´äÌ# ÙÁ6í³E 9¶”µê¯öC é+ ×@ó8&ZÑÈK.Õ€¤ZeeþÅRà9t,à5ÁÑ*`m£€2Ñ~­È¡`仌Àkõ-z±q!`.ovƒ¯ŒL´ßHÉ÷jÑ ^µ€íÖ|šrêëvÇ@o¬”w†–Een5­ÐoäfÚ—4T¶øÔñÑRYé¬Á£sýü-dPK) +逧=Z¤¡M +࣪cKíÌáfåèÑZIÓñ— ¾WäÓR²=rz@OÉõiɹ@³²÷e\¼__Öx407`Úebጔ<Û4æÝF_ñ½íaÔóÍ!ü»õnôS×,%Ñ5Kˆv‚ïÙ¦°ï¶‹löå__ïʺRá“Bjj®_ÉÈ‚üà–<2r’_IË©™E®YF¦sö¨„t¿FÄôHÙ0×-Í:û %ºæÉ‰ŽY|¤m÷~ +óv†‘º9FŠÚC¿pK±‘N).ÊêÚ%'%íMcÃÔ­I¿;3/팃ߗ ð:€÷Éé¹N):Ì6 áWÓí ädë$5þP) ý²è!Ðg¿ä %-Ç1°O _;¦Ño*rúg3 äSëÈÌcy¬"û 9Þ+£¦¶ª¨Y{ã…Özs¯º§h©A…t› ²ï_þô§Y òÉIiΙâž…‚G€Ì~l.­ÿò¨Ë{£ØpiÿYePÌtdPGÉñÈðq¶i|dP/亡}â ›¦õ=öëÙ¿Ž”i“½rË A%=ꇆGÜ™¦%»„„€21ù³‘…9Ð0 +*Z` ÀÞ\:tš—>\ð õ=5šoH {ý0´ï&¨1Ö9•ÀGõLÌá"wžÿfƯ &[gPïœ*tä‘™I8‚ÖËÀu˜JkB Í¥uK|®Gej¾<+´‡Ö²— ò!AÉá +_0R +‚zbF@GÎñ‚¿ìï áÖ Ø>SE ð’K,üá“ðç*‡éTÑr퀥w¥¬Âõ rŒGUQãÑ–”ïÍÒ27†PO‚F6!øÊ]ÎBâ>Ȥ~-—à”²á›ãŒäCÀ‰G€cBÊ1ƒô)±1%!é@Iχö˜,•6–Jë¡yÉ£åò®C0æA çSq1N9eg þh}¨øÑÚ â±mýZ_ö茠IÈýë +tW í÷À~°MâÞ‹®ntbÛ&‰Q›¨ÇŽIl˜cš‘¶=Œ{gé.¸¶ØöëfWîUÇ4îtfÝ&W{‘OÓø(¿’’éuíš§gî>@çmã´ø­~üKÇ=}gŒ¾Þ…ºo› †Cs³vPÿ[ýÅ÷–Úò//wßÚ@=ñÌb}JBâÖxñÓáâÇŽyb¬K†‹ñȉ‰ÖIbäÎ9ÂØ’Å:FŠ ÊÙp¿œ˜äG¾qÍÀžØ'à\SÈW9!Á'¥¤íMà?Xº÷ܳ¬ü­üÛ[}Y—Ý3˜ð€œšåžÃ†{pÑî9bÂÞ(!Ì;Ç…yç¹°€œ‹tͰs]³ìüÝQø{èç[ƒ…wvF`óèN.Σ‚殨Ù@Ï‘A ) :s ÅÑ +èÐzGF/8Ô ~«øÐÀ@B~ y”gïž'%€{Šwkð©8HLDó(%ë=Í£`ûÌBç,>Ê +Í=H‰ñÃȧ[#ØWVKœ ”dÇ 9.(cäþ©g¡?ƒ—äšÝÄã½ÌKÏ<-ûÈ$*92¤á< ô<Ï)Ñ;GŒÝžÚÚ7MŽsÍRSœÓœ|û·Ð'ç{¤¬‚½qâ‡ÝQôK×<.êÀÀDy¨i> üéõäÕóhNÀ%íUóI6x=1Á!ÅÅAŸsàÏÚsîWSsþXd Žtl4¸´æÓP³í2\ìÆ$òµKACý¹"®;6±I~-9'´ÈÄúMt„KEÉØc³>Hx½ÜŠ}hé$¾\ë¢}P–ç_Ø(zrôþd7ÐOæSàã÷§)ñæ!ò»åAì+× 5ÔrŒø!¤å`ÿ³ÌçéÁß_`dAlä” ‰E©Ø)•p,½ŒhÇœ·3Á-Ø &€ ³?‰x¶?{hŸÏh›E¼¾¾7ÎÉ;ЗVžŠü]X#èß;Kúžmÿv»ùp­ qgw¶ÕGÞa'oöRÃŒõ°K¦Úü ;ø×;ÃäË 5ZV™ùëî0þ½GÊÈÚŸ"D€>ßìG<ÞÀ¼´ŽÃ÷‡Ia{Ä(CkÁ-UUî9;Ðú ‚– õÙFâ>Ô+íˆ[k…×<³Å¯= ð×¶\ÌÞ”a› À³‚Û¦ ë}èǽا;ƒØ—)=û@É.¶Bgé'ÉqŽ)Jèç÷ö±â'»¹×·zónlØ.º¿1ŠVÔ$þ´Ñ{ïHÅB»æð±›ÐÏ d_Ýο~æ‘hµ{ŽSàWpÑ@ÒÝs"œ}F„Ýbf,¶Âoò.,wÀ¯›Û ¯n"Ÿ¨ðCÃAŸpΑãƒ,¨e£]Rfnä[hNéÐ `ÔLøÑŸØ–êõïÒÒlsبõ¡‚{{£À£Ç)qÛC¤èµÌó½Qj²{ž‡a „[lj»C¨gÛýˆ‡KíùWV»à·7:±OÜãÔ¤ÿ5¬ ÞÛ6K޳N`ßí@çH±ï¼RN± üîZ_ÑyeꙥO…×­¸Wkð›–ÎÂë–ØíÝÔKó'Øõå6ìcÐ'Û#œ }#öž¶vy¥õ°'Ì#£AgçÓ<ÀÿS´äÍQÂû´·J, øl/`èáý ä `Û$`>Ä£­Aä çô 3Ë+åû 5οÎ& Ÿk2Ïêë3Ï8'±ÑÆ{€ï{5  #B®G!¤ØØ›ƒø7¦:øï†ÚܳRqÚ©rÌ—‹õ™gÀ;¬£ÄXŸð¿2<¨ÁÆ:³¯ žª›2N›[²/í #ŸY'p ³]AŸæTq¶)Fª Ô‡}Šš}ŽÈJâþbsѵÕNä=K?%Ò+JJ¶}õÎ-Ãŵä,/´çvùd­õhgc›À¼óH™ù@û33´Pûo­Ãèç{CÈG=ÅwŒ y¿«+r~_¯u²£–[ð,­ØGkmØG+MÈ;›ÝÄWË-È;;}¸—ûC¤ð}+ÜsÀ_&èÉû£´¸Ý!ÂÛõž¢»‹Y—§$ÑßOñ¿76ÞÞèA¼°ƒž~¹Þ‡¹Þ‹{¶Üšsq«;õ¼±!òçž‚—¶i^ñæ+Ý5Ï+¶Í027úño &Üì.¸íG½uO ß/7§ÛèG=ß ~Ø!ÇÚÆIÑÛ}·ö‡`lcðǶ ÄSSgñýiQÂw›ÝE/Õ|2TK–žœk›ýù·÷ǯöÇQ/­ ¯mähû$1v{ñÔ=+À¸ç˹{SÂ"K%l¥üz©}×ÔÁÒ¿iƇ»¦©©;CØ×ëûËC‰1$ôÐü¨5Ès1A-ãVPsœRÛd<¬üüJWîuScÖ¹Åú¼Ëæ¦Â+æ&Ø•µôÃ=0fû#Ä÷ =Õ>JÝéÇ>ÛéG?]lÎ>üöŠ¡&÷ÜVþM@-¤9¤ø.tÞp™có~kvoµ³èáRkÁ5MmÊocÌwÿÔ×d^Øí#¼]m/¸¶Ñ ¿««Ë<'$ý(¤ž0Öþ¾Þ}aj%¼œâçÿ2ÍÏ<¡(Ë=ë>c"Fí c^YGïÁ5<_ïÃ=ß%Å/|L²džGNËÝƾمÞlkéοenÍ»¦©KúMYóËRkÊû4:2¤å3\óìÂQÜès-Ì —Ö»ŠïnAÙ…zzåúvæ­kŒ»js§ól³»øž¹)ûÂðYIâO[Cø°ýYrgš›gUr±P¶tɰQk€'çEÉß+$Ù§Ôé¿ÊD±'tu¹[±'A}ÞsNÛ½Ӕg§Æ~Ù‡‹ü²ùå +éÇÅ6ü˵>â;}}ÁïöIR´u朄>û¥øþœ(ü;Yiâ/Úš¬s¼È“@“ÓEKrË$‡ŒO^l&=57!o›?eŸ××¥Ÿ±´ÜqOS’¤ÕÙw3üøßƺô—A•X°Ø‰x;)Šúic óòvÆ%sCüIK[æ%Ï<5­ ÿògë6=xsk÷fµ³à†¦6ᔺ&æÇQô÷ò²ôÓuÈ—ßVgÝÿçVú½©-ïò/æëQzì—cŒ„¯æ…é?ŒQ¿À¼þj\û=úý™¿I…ÉwöAMšqÔÕi§eI'¥%I'¦9qߎS"þ9+L?ÝAŠ?ÓZøö›ÍZô/û7€_ê«RNmuÞšãÅœÂ=ûB[ñ¹ÿVY†{¹ÚB‹´Oró€¾=ßì‚Ý\i̽°ÜPpY]žñ«²$픹ûdŠ û]_‡ôñ©¥ý`o€³ÒŽ}hnFÜ7·ÂN ^}£¯O>¿7ÈËÞì¦Ç˜>¡nmõÓ"¶‰o·ÐOÖ{‹î¬uÞ47gü®¨Œ=%/KüÙÔD}al&=[ï%¾^iCÜ1Ôå_06ä_RVeŸgiA‡ÿ³õÝz/æýæ 9\W“{f¡$íä'á»ù’¤_TUÉ¿>&ŸÛ.z2,Ž<5@ ;eŸâ!@¦èÀ{)+’Ojj2~zpnœþM?ãÍw‚´»ÿ˜àÅ]ðÍÒ26º +ï¬ußë)¸³Ô’uxíµõ®ÈÓò²7?¬ #l2Z¾uŠ¿ áô‹sÎd>ùí¿&Xq“ü"c+æÑ¤àåß'Ïÿ>Å{ÿ¯1jøWæ:ØÕéÊÜ‹…Ñ7ÿ…||æo{#ô”InÒw£”÷_Ìr"¾T–Ä;Áûz”úöÛÕŽ‚{BØó¯Ñ¯¯|¡’À#UbÖîâéJGþmu毓¬„oº0リ¥þÜÏK;•óòÊ/2®®÷aßÏ•¦U”e\V•¥žî&¼ý®ÿi-ºò_KíÉzI—»hQ¿m "6úˆÀ[ŠîÞ¸elÌ<;'ˆþ¦ûäZa·þ6'ˆ8õ‰ós+1á2襘åVô£å–⛽èGkݨ‡ºzصnì³t#Xûº¹qøì›ajòz/áÝö þ54§æ—âcr|œ©-õò47î·í!!ls€“¶ÜŽ}®k(¼ºØTxc½õxµóxR’tŽ{í}Ô˜KÖj¼LüþkeYäImMÚ¹QʇïT¢÷?muÆÞZoOy²;Aˆ_ìɽf ¤ZA¶0€<©û»üÒÜ”vÃ9GÏ]j+~jªÍº¸Ö [î„Gl÷¡_YZs_ïA?Ö|,¼ÌI¸ÿEmÁûßœÓ<$ð–TÀÂÑÚÊ„_ Õ©§7ºawœs؈Qä«Ò¢gßâ®a脽Ý­¯Î9·X›yÆX›tj‚ñæÛýQR”cšÚgçØg¨Ýi1ÞÒ{2êMEeƯóüèot1߯´¤ß_ %•Åý¢k Äî |d¯vñ“uõÊÓNO2ÏO‰`z©‰—–›qÞ¹ +ÁR'-BY—ü«ª.þ”¾!팹¡ðÊZ;ñÙBeþï…/ÿÕ{ X…•«¬Ì9«)Ï8mú˜û»Tóo}EÚ¯–Ö›–Ô£’â×_±âþ[WŠ;T‹9[CE–Ûà7VÛЀϊ®Ïò’~TWæ_èf%ÿôáæ©ÿ¤E_Yê!DuÓ¢¾m,|øß£„·ÿè'¼ÿç'øÓŒPž}½9Tô”~‚›yû«½1Bª¥ùÀИñ›º6ý”öcÖYyyú™ivÌ üø_×;ѯʋÞ}Û€ +þKKTWç^¾uj0—¹9ï’¼"ùç.Ì£/§/N.µgßée†ýºÓ‡O>ЖVÙ¦()›À›@æyîœD¾tÏ _ïŽÜWÕæ^ž¯A¿˜äÜÞfåZº ¯VZáw¶zPO·ú1ÏM€Ñfø '—>!^îÑøQß­µ#^möÓSVÚ0¯mC˜ðÿhèEŸ•ÔÜýÑ¢çÆæäóž9Ò +ò›¾ug©÷|ŠŸyjœ™üƒ©.ïwÇúc3W—r•™xýŸ‹M”pyEñ­QzÜ¿ç„q§V›ó¯ƒ~~kéÆ¿µ‘âl£„(u]úEcKÞƒ½1añj3rµ ûx¥ ~¥£p<ò¥´2ãîRòm#á÷6Jì¹Arä¬$óÌ3áÛINÜw㬄Ÿ¨IçÙi·´í¨7ð¨»_½8âÿ4!Þýì—³‘6è3AÏ™[3Ï›âN?ÆŸ[icŠšJËxúUÊÓóç¼(AVý³ª,ôQä÷3Üç_Ó}»ÞûxŠÝLjøYV–q=¨æ“jno„¡©L9¥¯Ëº0Åû‘þûßZŠÞü¬­G¼ž-;é\`a÷G°1Û@¬£„ðÝaäkEMÚùO˜×_·ÞŸ\ÄÅL—æƒ|»¹;HMvÌàSö&ŠÞ­vÜÔ~L>£ù˜vÎ:Í*Ôõ`^éÛŠî³2w© k7·zsoì ÞßÙVßQô|{X@²MÕH,½‚tmöö8/õT'6ì_š²ì³öQJTH%búä¥üa1lcP[ê$¼46g_0Ô¥ü"fü4ʈùªñúÌõ°ƒ”YEÁùåZ¸¥þ¡ýøIo¿V–§ÿªªÉÜŸyÊÜŒzêç#< |ôz7âÁþ#cg„•ej„]S—eü2ËOýi‚•rbŒ‘vn©÷as ¤X×Hz¥ª,¼«*Í:+“$þ .Kùq»vŠžªhD½V7Ÿ;縨µÜksâe„’´;Ç.6÷aŸ/ˆÓTH2Yú„¾'+MýEU‘~y³Ÿ‘ k@ÞYiÁ>Þî'½ßîǽÚêŽÞ ¸gÙë»HRôô$ÈU¯ euöjÖ6ȼöIbŒmæ˜&D¸f(‰ûcŒTuúÅLIÎUÛ„€*«Ê¹ÔOzñO©äÝ·k=)ç&Åïþ-%ž\oÅ<›>(L¼þÕz6- R½rF®sž»7{fiK¼¨)}þåRKúe¿L@ Ÿ­¨)¸¸6@ ×Ôåž›ã'|7ÉþðM;ñÑ·íäg'Õ g ÙLݤø +Ø«C¬ä;®iÅ1FO›¼?† +[ïI¹eiϺ®­Nüi¹¥àîz?/µõãLUÞcë45y{ýRó1ûÆr[æí>øãÕÎìêê¤ÓÚVøÓ~VÌÊÊÜ›ævÜ‹µ^Âûm-lSìÂåìÛ™òœë£ü´Û sl3Ìì½If¦m–W¼ +žåj{þµ­þâ‡@Ÿ.é› +n©› îÊ›óÞ­ áÓ†y±•¥)§×Û Ÿl÷¿±M"bÜó˜GJJÙ-z:Ä|÷õrkñ÷<¾7Š¿Ñ‹|8_šðÂ8ùä¼8ù§ AĹõ¾Â÷sUÙO%9ϾZê§ ¶oô€W› ®Ë$±?ö£^þ½Ÿ~BU—ucô.?ãù¿Zðq Ÿ §œ”céM½¶9H‰Ý⸦DD׬³6€y¹1„´ÎQ›ýÄèÞ↺Œ êŠä_Ö= ¨xXÇ3{}„¥o¥Ö5ä]YlG<0÷Ò"'ª nõc¿ÖWÁom÷‘ÃwIaý˜—«=ù7úsÁxf^2Ô¦žÚî%'l +_ž§œ]§•‹SÞéļuŒ²sÛ±ïTµ°û;ƒ"¼´÷´ñì‹–â——Äþ²Þ‡|jŸaå8fÁkžS¼7‰ó*Ù8Ÿ¡¬Æ*/å­ÒÍè'æOè–Ìsâ¦u€½ÙÇH™äÇþ ¯Ï¸´=D‰×}sA}b†—ø“¬<ïÂbù=¨© ׬ˆê× +x.%ìX¨­õÈKE¦Žâ's¥) †’~”K¾YmÌ^‹¸·7&Â/wãß)?¦^íɽ ­Szy´ÓOÛæeO‰2/M°®ÚG8û,¹ÜWpcdæ}P{{øwÎaä û$Ô.!ÆÒ }®æ¹sž‹–U%a¾û‡¾1íÒ|eöíQ~âSSÎM÷,«X‚zYÑ«S¥°$ïl k¹)ï’¾6áç9á»oGÙÏ¿_íʾaG¾µSS–z‰á%ˆßOWç„Ùæ™ʺœ+}ô°Ÿ'Å1¿ëÓ/>%_ÜÃ~P5ç?Ɯޛ¦ä}}ÜMzúÕïõ‰Åöœ««ƒEWûŠîŽb¶ɱà¹\Y¸¤â­qfº± ~g©­èÞ„0î·!ZØ·Ûcèwvµ˜§è$eÃï}¯ë,úà’1á{c¤è!Ü«AÌ«E¥'a?÷Ñ^ÿèÙ|º¦ðu/)â§Í\äþD qg¢”´3ÁËwÊp·š†°+¨™{2F®U& vÒÂÖÔ¤ÝrÍpqûÓB‚k–÷€÷ª)¹Ö)ø«íá‚§!=w¼RÑë”SóׇòîûÔU>Uy…{ADÚ¥Æm}±2NŽi¤¼ýI[ZüÀ1PŽ·óóíÌL”ž·Þ»géC<ÞåfBg¶gh™«Ýð{۽ś²®®õ¥ßt-àâmS´t·‚‡Ýš`g¬ö³ã,âlUæ.àîG›]èÇËMùW@ÏŸ6¶?Uµ¢ŸÔ#¾ï!'žZïdoós4 E7Ç…ñ?Žr#PU']ZiÉ}¼Ñƒ|iŸd¤-÷‘>( .;føˆía\˜®!þ·ê‹oÇyQ?¶áŸÿ£ÿâëå6Zòx5þñGdøWó%¹ܳLŒ_EÍõJ©Ùû¸¨ÅŽÜk¦ö¤óеúÕ¬âíqrÜþ„a[(çY˜Iò²ŒÓ#´_qbÎŽs#~jÅ>øb˜ó椪¹ø^35üÇ1^ô¯ëݸèAJ<k˜gž‡tÌ0 ×FólÏ £ìR Ã>[Ê\âd™Û  G?[kɽåÂGÛÇ‘«ÈÇ뽨·›Äðýqlk„+­ŽûYÓP|os˜»9L‰tÌò.¹„»7Ë-^Á}ØWV5Y ýÖ.ÂÒY|Wý1㬬2í´®±àöþ$=ødÖ\EÒÙIAÌIë$ ¶3Â̰t!žhëRγ¯®P"×Yé{ã¥ä­Afº¡±øþz/>ôY²uŠ”­1,µçÞ\¨Hf?ü~s€Iw«†ve•¥³\Øò ö…©ñÄ*½¢ —†©)ï®ü?•èˆç6yeÃÆ”hn/¾kj͹´Ò“~Qß’xV]Ÿx5¨—{4’JÈGûs¤dª¼Ê!-aØf„HÛ$¯pk€™°ÖC7vRÞ|"ÆýºÀAß·öÖQ7»ÅÙ‹¤'ËM¤çëí”ðíZ¢uVˆÜ•ññ:yŸ>qNòŠ÷F8¹ûã˜cN€Ý›fçìMQ’6ˆo6û©á냼ÔOøèKK ¯¬4“žítÓböúÙ™[ƒ‚s#JY»´ÜFŠØ/%{iÑ •çgËóo›Z‘û#òJm~Ä·†zRö¡¶¼Z/Ú*¼·ÖWxg¥¶3FJòÉYE®9rж!åâJ;ak²Nhêâ$J%9g€ŽÿÔM ?1ˆþi‚›|E×€x¯üD|%,;Q•÷æ» ¢”o›"-‡¿Ø†=^ìÈ¿½1ŽÚ—2PûR>vg’—¿=ÎÏ…êÀ1-@~¼?Xødg ÿ¾¡>:òë()Õ5WÁ5¶³">Y馧9fÀ¯ùÈ­1rÌÖ1zk†kU°‘ûºê¶Mi]ãæ´³1BO^îF½XïÃEX§™…Ðg o a߬ö"žXº±aÎ91S]StC_“wÁ\_xo½‹”é–ŠXÖ9.ÒЉ‰˜+O9·5ÊLw+ËË=êÒ’í1|ÌZ?â‘®9÷Ö|Uâ%msÆ3çæßÛ™ g+r/y•ÕkÀS[1¥%§7»ŠŸï áÒìs|ŠC.¢Y§¹ ßóSœÂµÎÂ{óâèo'¸‘ßO¢~SÕ%_ß›(ކ>ã ªûõ!zêþT5owôë(3ÉÜ\|c„òáË9qä÷K9×¶†È‘Ð^üý1|«—¿ÞÅJl¹Ô{¥nʸ§jN»µ2Ž‹\¡æ›º±yYY½[WÕ¼ õÈ\ gcš™ëPñY~£¤Â­ ̓¤(!üõÏÃ5ù©NSé§  '«]@ë‡Ñ1cȨÍqBÆî%ϧò­2&RÕšwu{š³9DгÏV‹v&*ëƒÂlý'üc€Šg&é¨ßd|ò5Ÿrc”†¹ÖŽÈù©µ0çÛìgs;l£ghB?ZêǼ0v#îoŽÑÁs®îN•Q-ø¹‡kj£¼06Òž,·pÂÌÜ÷òrÊ]IÖÛ¿ucÒPH(·6ÛEi›í¼M-ýÅ4}Á$!ݲ WQV‡%E³uØûšOä·û³5µ+ýÜÜ À;®Y Iý1÷‚²4á„¥9ïºuˆ“¾Ø*JV”’o-Ö2Ÿ«9¯×?‰’­=åˆõæ’,MIYøzZÎ \Ûj’äl÷ rÖ{1O÷†)¶)1Í:ßÔo­àîO±ru 7fÅI¿˜›Å©K=õDs[Yæb=ëµ¥­,w±Qœ¸XÏy·Ö*ˆÓ‚k ¡Ïu£à?kÅ´{ý%E+]¨'Ë]…÷¬óÄ4§œÅtëjz\ºšN«LLW6äÝÖ~‚Ýy!Þ:+@èQ· µyç×Úa·¶{¯÷IiŽ1NîN¯$W]Åy¶ÔX’d¨£Ù*ðœxYiæÀƒIn­PàÐUw­/H¨Ë“œlË$+m{†_d_‘= bŠmŠ_lé#¼Ym)ºi¡D{fè­Q!¼™ôe:õ{m9-Ì5ØTãš(¡ZºŠ™[ónàs=šª·¦ªÑ¥*+Ù›æÀw§Ù.…Db—ñȸ=^ôÆÒWðÔØœ{m© vg¥‡]‹:Ù„HùM&&ÝÜèâ¸&«KöK±Ëä×›íôûp%q©——\Ûì#Fm£l3¬|ÇnŸAÆÌ”¾ýe”÷æ;sê¹c¾º ê‘5ôŸ0w–Zi±k€ñÖú oWz(ïÌ-Ôó‚«ó¼Â+šZò;u=îžöSîUÕÇ´«ú–ìn½°<°T7\¬êÝ#¥ëº¯¶¥¥»¶aÌm¬lu8ä•aÔ‡ùÚŒ‹êæÌ‹;S¸(¯N$ñèÊë¶'„Å–nÚÿÇÑW¿µ‘v§¶ÛîÖ½¥îT©S ww÷¸» îîˆ; î¢$X»»Ï>ßëýGÞÉóÃ\‘ fî¹ïs>’™9'þ/}}×OmC÷‘¾¦É:Y9Óùh¾;õé¶½7Kìô!ƒ{IÒ*§nBé•VTî9^nÂïÈÈï'J¾K}ãòôtÿÚ9Ð…Ó'A>ç~}º{å6îã1#×g³õדòsI1+ˆYÊä{q#îÝT5òù$rˆ†¼ÛŽ,½Ì/Hÿì“ýã36êXuzÊoÌä¨ÓÄèÀØ”Àaï‚¢^<>ÞXžq§’pKÆ¿^ï£$X&hÅË]ذåNLÐÆ3m¦“/æã_wã¡Z‘ת +ŠÎP“NÂBCŽ~þxŒz’“rùådÆûwÇBŸ><¸ +~r”çï{¬œ~m©–`ãwÄUÔõI.ÄÐ Ò¹<ÓZ•©ªbP÷º—ú‘¥×Gp(ß~ø^/¬ðFCQúÅ¢ÏÇ}o_Ý¿tòøÞqJRèŸCäüê:hÀ„ÝY2Êi AÍ2bÁt{…Ÿ¬:çùÆ¡dW#à, QÓ&e·Ätð}úRÃ…}V0!o›JcÏS“œ„GœŠzùô8,äë\”ÿiLè—ßfká1.9iWQ=›º>…‰ÝÁC7Æ þ€n +7M0 +ŒÍ„M5ñó—ôaœ^ñ¢~——v¥8øý©¢ߎ}èzzõ"èûã;ÇIq?®¶£±²–{ Y.%¥Ü¡b"v|Þ#§nŽábJÜ£gálJbÖlGÉk7ÿŽ® +ñA+@©ÌI8›÷ùý±bÿÏÇpQ§`a_Naâ‚ÎÂNã>üðö±¿W§aÑÁ竲cNoôããíJΦâ“7Ƙ¹+}° ÙŽ¼Ï«#p}+Ôo®‡¢oC~šâ—=ldœmG£^±r‘›xš”ýGÄë§'nþù;è°]={ôðÊPη׿s +¿Írþ^¡ó*dúB_†Ÿ¦9öåþ…è2ð+ÍrKFñq;Rt¬KM.²ÊàÍ1jîÊ ¡@R á—Äߣ¥DœdÇþ‰ˆüv!ÇÿíY^~äÍqJüu +íÞr"ù×2«æÿvx Œ<Ànbõ.(ñµ/(ûóPÀ“{ Wσ"_=}xvtöô)Pè3 –¿=?&ÌøsºöN]Wöd’QtKU 6×FÖ2üÛ ø»´üâ? ‰IÇ2ƒ‚@‰>¾>|zpñèã î‚Þû\]>û;èºôû)`ÜgA|n‚€uÁÏ}NÕ–‡^Õ5>7MÂBVFK>˜&P‹íàwó¨/ã|Èã.BÙ•êò¼³ðؘ“¥! ÌÏo@ѯž‚^ß¼zzùèÅ•K G—.‚.ÿñ'èôÉãÿù7>À¼¿»uBÆËýêQs¨ûF~¥SËÁ{ôà?*vÄø”¥~L¨¢ý®Vp ö2,òxºßÐëk×@ϯ\Ü» +}ò˜÷K {.‚^\¿ºú矠“ÇO€îÇK|÷DI¸¬®EZâlM´ +mŠjþŽ”‹X¥¦ÈêÁÏúÅ>pêELr(0'ÁÇÂ}_€^Þ¸ +úxÇøàè6°¿ó§NîǸå:èì©ßA¾W¯Àá¿Ñójjr­ö•óL“ÿ¬±*÷xÂe-gq”‘ièÆK«ÁOG˜O(—5ÅY—Qá'âÞ¿9ö8Æ] &¾øÿìêeÐi`-/ñÿÆT|øãÜLgù‹¸,l~’SÞ_‰|ÜL*»ÂæÿAÌ-8…LÍ9Y•pÂÿå›c×/\]æöþ•k §·ïÂ_}9‰NθX?ò±óíÐv%)ϦfÁ—ÇÙÅ3#‚yWMÖP Û¿ +àLzÌqh\䱊èÈc©þ 7÷nƒÞÛßç OOëö;0'×@Qï^ ýâ.áûåvD’Ï8#ÿùB?!V߉ù&¯F¿QÖ?)è´ò» è*$æ<'çLàÛ× €/AŸ?=¸rt8Ïf>¿~äsù2èÜog@>g/‚¾Ý +ªø÷gcyö3}-"x¹—³ÜGO0ôò²ÇªÈŸ»(PŸÊ²Ì3‚ò³XÅ9Tzکзo@oÞ=âìíÍk oŸ€ž\óݺptX/Ÿ«7ì¸ +óDΈ>%áB›¥´|³œ’·8œk/|e‘R—'˜¹ªZÌp ícu³0.êDЛ Oï‚b_¿½¼}˜ã3 ó¿ýz|ÕtåÜEг> H¿ÏÇ£Þ¾;Y™w}¾ º#&e¯ ÃWÐÁsmÈ/†Vü·:âAu_^p!/4äXâ—O 8??Pä›· —>·AçNžÝúã`>n€Þ?|º|î<€@¡/žËøþñÂ#óµ]F)u8´ÝYÃ5ÍÄØÕ´òµq\¬´¶ì±¤ó® +Zr­àÇ÷“)ï?‚^¿rù&è +ËW~? äám`Þ¯ƒ®üyt÷ó[wA÷®Ý½ð¹Êùü:1òªª÷u©•jšhâYåÕÂùnB¤±‹ªíĵKnABO¿z zuû&èÃý‡ `~¯œùÈ‹‹ Ç@.^8óÇÿöÿXÃ×w^ܾ Ê :^U¢ûÇz?"êç·Ê5MEìh¹Ä5q%~KYS½$âÁ‡9ðGÜâìÓÐØÈѯ_‹zõ˜?Ðë»÷@žú tûì9ื@ÏîÜ=Ö2áý—cČԋBHÚÓ™ŽŠ@MC†v‘4RMx=*¤~­æ…tã/Ú„Û8ÆS!„ržTv¾(,ûOxbñ%bvù¥~Z]´¸º§ÂØÝN\o mŠ+±6ÀóÙtÕB‹ªF°$­DÊúY‰ãmÔ€*Ò›.:õ­õ©#o7 X/ÈÙŸ’è’KQÙg1©éÐ q(II>p˜Ÿ²––º<€]ê.{»>ˆ +5+*©›2!ey¼;;Ò@Ð Ô‚ùÐÄ‹5œ;c5˜vaMJxŒÍ.»Z—u¦ $ýÔgß× §7.±|t÷ò-P¼_à)BrÞíVúƒ¦ž—:×IŽÜœ`æ›Å|¤i’Ÿ`åñ¡IWØ1L°/'xÔmLºožòT„¸ž{òã“— vú\ðíákPЛÇC?O I>^Ÿ{šY^ò`ˆ }3׆ÿnST’̻̓” ó¨yU{Ó‚§VÈ3)«Yꡚ’º†X}·0=ýï>œñõ…¾ÿò½ï ºôçEPÔûï§ ™å7Ie¨Ý ê§q5p¡·†b‘Ô×®³ +¼›yŠ ¶L±+VGùåÆÁ:”¢;REô«#ÃJ¯æD$œJ +Œ8øö+ã÷€Ø½ºxæ<èÙÝ× äàØˆ¤â›ívÌâPÍ"£UX$¤L—žËôÌ×ï-[Ýs‚ÆuªîÇ…Ë{iÑ] £& ö» è*>#ó"-íBYRòÅýÿüì%(üÃgP´Ðñ¸ÀðS¡Ÿ¾+HI9C—øLÕ‚—ØmQ5u[\‰3K˜%룴Lm3ì¡›³4Y—´±ã«ÑÅ7)Qgb¿~8ü;4-î|JhÀ™·îƒÞ?ö=™›}5>&þBzLÜ)R^É%.þ¤‹‰ù ¬‡}s2®Ïu–îÏòëöæY\@fï(¹X³¦Z°"«¢ˆ[©ß«qÐkȬÌßÃß}8úú-(ûG(7"îdäWÿSoÝ%~8ÏN:S…*8À"…Ìôó¡[b6Ì¥f lz&oSÞÔ´˜µÉ:òÒx-f®‡¡mÆ|áBžuâŠ.¶µ@Ö:˜ëÃÄí©j²U&¤›%<ä–ˆUlS Y¶éV¹ÕPÕ`V±à›f™IÁìHÙ%2?Y…š¬‡hÚéaºVÜÂxi¤W°<ÚÉžh€.öÕ•oô‘£=RÄä—]SIÛ‘Qò¶EŒrûd]•]Ò5jVÔÕ®Ix¨ ™¶.`»éñËÝü¬ùÞºewc‘z¨+ëé!ŒÕ5Æòë‚;)ß겂‹Í0Øý©JAÊÊPÖ&k¨rÊêœòj®KÅBïêY·ŽGwª*KÔä™|øÊ3c\™ÊÛ«“e¹Ò¶¦ô‰ºæ(qmmÄ$Ÿõu€„~¨hªM5Ö%öpX~½BAØT}ÙŠ´Šd‘qà)£xs‚’ºÔ yoæþ5_7¶«eG¡K"L¼zˆ™Ü_Ïðj¬ niÉkmάÃ#}Úuþ}‚ö¨.÷²™<ß_[²<ÄÍÙ–`’­jJ©ÃP)°ék­ºúö]cï®±¦ýð€n¹Ø4EHZžÀDHš+^IÚH! ´(DFÊYzyùí.aCl ‡ýu šÿ­…Í~ÙÀ¾lb-Ž5ó,ªùîl]¯Ó ¬Ýos/Ô: ‚:ïµ «–Ù”SrFÑ€ÿ$Íìpy#뇱¿ªhv¬«J7P]ªì"†hèI“MÔ€>@wq‘/dí°ÉÖÊõ'}qªéÐñÏòøϰ5 ¶>Š[†®°rLb!XSÒÜ=ÓÐ…ñ_$D­NÜU•qw€v~”ÕØËÈÐ4OuµˆÚøÑÊ^aáÂX#Å$mì(¸¸µAX¤B}e}¨àãÞ ‹{¸ÒlpNSÀ;rRŽMÃ%®JÙàYQ%XÚS™:ÙÊžj®‰·0~Èúê*ä£LÍx#zvŒ?7Œ˜ÀÏõÁ¿Ø5<²IÌAÌwA?mÀ‚~mÔL¸ôm’ÝéºN›ººÒ$¯$nÚ`s#©-y_Wòý®˜…tªØÄ­ \’Y„ŠÜG†[e@®JI™N¶kVo+˜wºV‘gºebº®Ý3+¬1)™ð-)1}i°6†Š\™@gZ¡èpº’çRUqòz véÅ->Ç­#–lI1‰ÛrZ‰SUß´3YÃuÈx8“œƒX›â Lâ*ºC% ['©–A|Ôz6t©Ÿµ1ÑÄ^¶åÑ*ØÆx zm„W¼ÒG޳Š8n%Ÿ¶#öö«¬=œnïëë{J:Ü¡¦•íHif«ds„•ïRUR]jÓªà êêj‹´–·#¯åoI˜¥+c؈Õ1L„iŠ˜²5Ž‹·HYåÆ^Vò|§ Ï*í™r-Ô Øt«iV9±À&Gn æùÚeˆ„£9¾Ð¦â`-2.Ñ9]Ýb5Öõ¬¨ë[×T-Ý«ŠöîUY-}v17ÌË[U#6eŒ·ŠÜŸæ1 \Æÿjdn°*½u­Jb®MÃÄ8f5æ{ë¡ã¼õˆö5Ä¢CîPR‹L"zž¤ú…Uý|€ÍY–w¦*+æeä¬91µ`Y̆ìê½u«ë‡<3ÂÆ5&Ï=SÙº7ߪ÷ÌUwX”B@s1‡¬£ß!oí±«›ºœ*Z©]BH6á¢g›JßlK°iºÎ’OÚ¦Rß­|ŒeãP‘òJ|–M‚ŽßUSË]JRöw{ÆÙÞtÓ˜7ög¹L³Š˜·%ÁÆm‰0±ÛRB–¼)ÓwŠõöh¶ªÝ=ÝÐëPi;"\¼i¤äƒy¬â«÷¹v«‚ ¡ ³s>l!Ó=úÚv—º±Ó¡lh¶ÊYˆùöŒ§kݯ7¡ß6'ˆi’jDŒº™±#®$9DÛ7pÈÞžV{:L–e¼(`¶=ò–C‰)ðè«›¶U<²¶ê¿£`À]êJö®ººÖ­¬¤9åÔÒõaxô¦²gäñvµ®—c¶%Œ² ¥Ð&£–º4Àêh«èAØWó0%íiètéȰ±ò¯«ƒÐ “ö5Ø|‡sd #fù•À>ÊíJ!ï`®I¼·P?a™®i·êëÚw4Õµ[2r±EJH·*å.·7CGþwCÐí­qëÖQažiLÁÑ2woŸo•awÕ¤‚½Y6Ý&§V¸¼}ÀVxõÿ]dsþ™§œ +Bæbä“¡ì·-¢ƒÝúªçLUÛ¦’œï˜çÕº—kÇ. »þ³ÂÍ39®iRÅÒXÎk—[ä1öŒÂz·¡Rx°XÝÄË ¬ç–qÈñiëCy¯×û³Ÿ¹µèê©`± ´3ŽOuëiH×"›½·*ìÞ_4Y4ä"qcÒ‹…ad…k¶¦k}Šœg‚„ꥇoÍfÂ!Ç­õfúoº5¤‹˜Z4ݘ}WS•xe±#ë‰S‰J²Iá©ÓdôÞLU«q‘:Ê‹ô±ÈаÃåšQ›Ÿ¶#E'¬‰ ³ƒÐ¨%¡boŽSs°Z+2é„ÕÝôDÓ$²ðׇc•âRwÄ,» »9Vôq¦5ñÑ–¨(ì`‰Éqü¶£dTì«Z\3uÝÛjÆ"Å¥ìLV|³M–}Þ)ô3‹ ¯ñ[m2&t¾“ž½ÞAÍÙW×6Øo@Û"x«þu©§äµ‚Ÿ~ÕP_òÒ4JI6c¶EèÈõŠ›%“ˆˆ#€~ˆEÿ,³ù‡³üj·–û ¬Ý_ë\«ðév>é"¬!¢VûJCÍ ›=Ó56)aŸ$elõV¼wŒ¡¢UlŒMÂC(š±!í˜ä›=ÈŸzÛ¥`ÁwÄŒ" V ,"L¦MN;Õ\ò¦´†*€$Ýjªˆó³ˆ8ŒmiU`“­rx„MŽˆ6‹*‚Mcß¶¥ØÔU9}¶óÃ"æR÷fê¼uÚ·%LÈÎ$!Å2XéÎy¾5šóƦ¦i[‹ÞÍw@B<ªÚ¯t)yx«ŒVhUsM“ˆP› àíO»|'©ÏävÚžŽÃÝŸ«¬ÿ¹Èbí°y‡\áÁ4©l¹»ô­]BGÍÖ X•Läæ$³È¦òv”B¶EÎDñYhäн<º#CÅyûx{v[帧›éÑJ§«›÷µÀ¸•Èĵ¢Ó…¾æQLÌÁ4ãí³¯'äïéH%Þë|f>mßÈ&ÿšçòMbp¤Y†LÙ[nPzJlW‘Ê7ÇóÞ›§J¸ ø¢ýy"î`‰Å7I¨kãÄ´½™ÊF›†Î…à½ïb_Ë!º ÜU#“=Zdê®—=HI¸)bd¿±yï a“-hœENÝV “¬*t¼gšTº7[ÙÄ]¯YÁ%95\Ê¡‘E>4’Êöµèô¥Î”»ƒø·§•üˆGûZR¹SÅÁo ããmRo¯2ÆcD¤˜&Àß—û¡³½¨àµqxÈÆ$t[ŠÏñ™8—†XèÒWV;§Ç< U]ž%~ÃÁ"ð:˯±iXØÅ~T°CAÌõöDÝÇFïiyŒ] ¾«gâ=FAûÑrõøÏUnSK.q¨É%{ó-Óc}ߦŒÙ–‘óÿY¦þ»LÂýw™Jù¿^óÿ­pêÌR¤z³v÷—’_ýÐϮɊÀÁœg«Íi>sµ·×ÚŠÞ˜FQüÌ'܌ϗœ#äœy%駆=Ôb<…'Y%Eþæ‘´'(`/ÞÚ5د%vÕ®µHÐ f &Þ®Æ$¹ÕØL— µ9Œ ßæ•nöÒ²l£Äx—ˆ”bA‡mõ¡ƒlÀû1t”©¿øíJgÆ=ó8Ð&!g­õã²´’­ BÊÊ2l¥¶3ÎÊwN1KJ:Ì"!g{sï`ºqàÐ5{z6à ©¦I\Âú*Ì{¾=÷ÉR{Þc·ði3dÄ/-©b{üÝXpCL‹¹²Ú[{`$#rH˜i`a‚CãÙÕ|Òî “ç6ñÞþ$ÿ¸ëòÏ=ÍåÍ“`Îi:ƪ"¸Cï˜ø£E6ëç‹æÖJ;ñÁ× ]ÌŸ‹’Ÿó^ì¦@×E_í:h¼C O:0b‹þ^ªlwéXTÀ‡0vgÅM•ЩbBvÕ´Š= ¥tg°#ç`µÍåša?UBžGJ/ÙRc˜Øõö¢6 íÄÔ•~è÷6\ØyvÂëËv€o­S”üè·•|ßÅ<ßÙ.‡û +?ükäq×ÄØ¼~nìÝå²ø¿–«ûf9l o‹@ެ }œ ÿ¸è½HÓ„üÎÎûæcéƒÇX‡ 1ó ¥Ïgj²ïª2ïL Ro‰—-%­Äte+$$7Ô÷Ï^Xì3«ˆZ²#e¡JtWI.Ø™„„-õ¤?7O”¸ut‚]F‚ØEwªIÅv9:aWÞÓÀ¢ +pØê`Þç•îâÏ.9çÔ6ôl+h€nA'¨p™n9±È.Ǥ9”¸”m1:js¢kÌ{¸:ŒŠ×´–Å-vuÉ)ùæ1Ä­þ²wÛ€ÞóLáÔäÒ=-Å«¯Yã'à¼uO¶'‘ؼ÷Ú>ÙÐÄÚ c–PQ›SÄ<+ k÷Œ,¢CI*Ü‘`3rr©mŠ”aÀÄ|í”R˼÷„ºužÛPÛæžTY$øD³—°Öù¬fÄ^t"“t•U»&9Ô”r«„V¶x™] ¹§¦Ã·%Èd“•¶#'5ÿõÖÌ]4ÿœc3<R©S ³ˆË¿mŽ–4O€-° «ã˜"dìŒc¢mRRÖ.pn69!×4†ˆÙ쇺´,âü1—ùåü|7:ãçbÝÄþ¬ É©¦B­rt¢YLHð¨ÐoM@üQ6'° cøÔ­ r¾ »¡1。*뙩òe¥9ÿ­ym"d-õBü­2\þÑ"¯îp‰Aw°52Á"+ 4Kr¿Îb +ÿZ¢w”¤œ™®’OÞþ®™Êš]@Û. +[®Z=FB™S ‰Zí/zklËyîÒ1Yn=_p`dQ÷4’Mƒ.Ò™?ÉXÀm@~,t¿1MáSçñiúVºUÒÚìRÖVz´\âž‚œgWPж'p1ö Š·ÖÒ2€ +·à“÷Ĵµ¶â—¦Þb¿Åö¼—2~ô7òœ±*óíú(>E×Rþ~±ì·5F*0‰eÛ“,ˆÈ·¿tÂÊ-6S\•ütµ–tð¡ˆÕ™Í3 +PR}g›Š?ªK_3³>^7u¢M=Ä(-7÷¶Š•rIÁH¾<-È8,óŽmn!§÷±s^†¼»yœ•ôå–SÂÆš%ðú4Ú4Q¸ÐòÐØë³3Y¼„_i/x¹Ñ™ýÊ:\ì·ÙŸõj¥7Ùw_‹«ØUÒà;ˆX7÷v)±`kížÅ–ì/’Ñ€»ì*\ßQâ·<ˆˆõL³°‡€¿0IHÙ‹Èàíqt¤e¸ÞW¨à'=1ÔfˆõüõADàbSÁ£¹ª¤kŽ!pˆy Ë:Túy¹.õöf{úý=2Î*b•-÷ B¶†aÖILŒe·9ˆ _ï}ÕUe>[l+ýn‘Ò!^<·kY¸}#‡æV3 :ݦdœ**øÀȯré„‚ 1§|GS×`UVÒw¦¨Ù1.q¥«àíR{¶¯] qŠá¡[Cùï5ˆ›3Í ÷f(ØŸ ¶]5*Ã*ÿp(ñ¦ ðŠËt¾Ñ*D­Ã~¼•l{ý—½«£#÷tt8 “Ê2T¼e +µÔ_öÉ­c1÷çZu®Ya­{¾²Ñ=WÙê2\ª§!Í“ˆ(@7ÄoKàÛ2\ºCÇcYoìÔóy{³‚‡‚C²NbcÌ#ˆ†ºœ§Þg]†Y±7ð)/~›®/ˆ0cã Õ)>‹-™Ï·J¿ˆù±×§xqµwå4Ô¾±²v[ŒO²üêåÀ 4l{•è͉ŸsÎâ !FWWòl{‚s0˦nŒá¢×z ŸV:J^ÏÕf=Yï*~·<ˆ +d§ß¡$¼<±+a!7QáóÍÙ÷tÕ· u¹tÂôÛúªtŸ¥¶ü—€ÿ-_ÄD.tÁ€ä±-ÂÝ™Âç˜ÇÁ!‹Y‘ßOOÃï¸ÄØ—ŽÏÚQ2=rjÙ¡–M<4 KùÛ#eŸç›n⿞ï(÷[è¨ø`¨-~º3ÌÈ÷(êë­“ô‚¥vèÇaLâŸôÄ ~úÇßD„¸›¦>\¤¤ Ú<·ÔRúÏ4—á<²±6ÿµ¾:ó­e(7p¦)ëÑ0)óþl+2i_OÏ6%Ü\éIe—A¢7ÇJLÃ¥Á9 ê<±¢&癘“úÄ£es~-V÷îO3Ððoë}°o¦Ad䑚ŽqÉhðQRâ]+ë“}”‡šo…}"§\C'^”P²n©¹éwæ²_otÁÖFÉYi_ï'$|ºµÙGFíéUk}Ï ‚È‹3UqWL£~G³ ò®ŽÍêa$h„ú_û¿M~‡G/Ý.~¿P•zCEŠ:+'…ý¹Ú˜þàPFÈ6¶Cb²üïŸà<ô +×¥¥BV»‹Þhù1—›KÞü!aÝôèÈ—¡qxa˜’µ%¤ÿ5+¨ù9Íeþe$WØ&˾ïŒÿïw"@O9RIßšbä[DäÔ]­dµ£ä½žŸxKň¹8‚øzjúáä-äæÖXiÒ¿›Ü–afÔÓùÎÜïF:îÈëC#›s`ö3YþCÎ +9?×’þ­§ÂœZÆ"¥¬Oàãì*:Ä£g¼5×ÿ™ÁåZbO…LqHv ¾ì`¹j`wž[·­!æ¾¹|Ð×f1*É©ÅäÌ1ð6 j‘Q œAåê0¾¯çs¼ýð< +Ì:NÏ1à¢Û‹_¨ù¹¶GȦ!d„®2ñÖLuâo- 'òö2 1lÐÐýikK¯ £½÷~{ÔLÄ¡‘ ùµ@FþZ¤fQ¹£EïL£Èˆ]5µ4K14{ûœs6åQpÐ6&È…{S”¨sSø¨3„äVúc97ë™}„^¸3‚‹Yh*|¾Ú^ôÆ: ÖÕ¦ÝWðâ¯-¶¿?ÒWV™'àá3-9Ïæ; ýæÚŠü–šK>ízkO…ÍÜšÀÆn “Óþš©nÿg^ØâRSKgÚò/´eÞ_lN¿è¥ÖIbÚæ0.V_]üh£ ê’ÒK·†áA«=Ð/R^Áúâ°?¸Y_ÿèG_7÷G¸¯ðÉïO+…¹A*J‰¡!Ù§±ìÝ RÌ=Ðòý–¾ì·ö \Öà Lx²®1Õ÷@Ï¢Íó« +@£«IùûÞzÎ\Æzñ[šŽükAдo`jB¶KźÄ\ç:u£»,`¹=ïµ±&÷Ár<`„–ûŽŸxk¹ òÝ2JɱŒòàŽq\¬c·Ñ…HPVæø6}ý]ÎËþ¾+árœJ±Šqiº&íùzOiÀÏb_Ï"Øt°¼)ß„ûÌ«¹ì +BîÎ2Ò<€ˆôU„©Ð1]%¯ ‚BßqBü vâÛ“Cè°çÿ.0*]r|ÆzoÑ«­ÁâÏÖ d’[ OþwƒÎôÌšf±4€Hý{¡~|_C'˜sÞ­õ$Þ1 å½ÙÊw``Òj.Ù.ãÇùÿœ¥â]jtöjñG·¾#†DO7dú–Pú Ÿ¶e\¢ª¡âõò>Á1Ó0îYjÖýµÄâ¸&ËÖÛR|–[S|æ[R:Ôàä]¾hm´Ìß®Ãy–k†®þ¯^r¥·6øž†°«É…¯Üj”šýð`†Ç9б±ZÞ!f[ÆP¡[=yÏ,½¥~{ +Z¹yºÙ…øfÇ&8%è8@SøÙÆŠ?ZE€†•sV')™›“´\§š…²©p.=<Á¡- ön{Óàšth¤a½H×§ûÊùùAûÚ–á@›8kƒéªRo)YñWµ¼‚gú\4½àÓðˆ‡Îq6|¦1ÿå &ð1BÀ9­0öšˆ~n’v~£«$à§Ç_ÞE'lKP«„Û•2ve¡æñ¼OÓõIw·a¿fªšŽŒ|¾U +h±^ð×í1T‚C„M±‰*AÇ›†àßÿW'lí}fa©»üÝÖ>iyˆœ,åæûHé©Wd´ÔëJNžo&úÚ)îÆr8x¡£ü«’ŸrCÌL~8‚O|¾ÒXðõ' ~ééˆ==ÓWúEÝòæ×‡÷k‘[mpes àíæPñGÓ Ã'Ë~γٻz:j[‚Osª(e~ÕÎ$/4ç>j) 9‹xrŒŸôìĬ0ñÕß*Ê<†ŠrÉð¥è@ËÆºÔØt»š´%4×TyÀÅø5WÓåRP*Öz2}m’òÈ=«øŸ +Û1w­òÍ:Iö>SS1BI÷`ìÙt}ÑûÕŽ¼göñBÇDyøÎhYäjgÞ'3è¼S\‘éý]x½/ÿõz/88ÁÛwhOG*ûgñ}sêírJ¹¶!ïá¶”Ž¶Í´évç[4`^"(Ϲ¯·‡K¿»d¸¼ÿ·E¡ý2bó]JhÜá«zo¥Vt0GÃÎZÔH…:.Å©ÂgîÜd—àóôU™Ï7eÄUs™Ÿy‚X¼¯°Ì£èÈå–´;[=™ÍïRïY†‘1.¹xœÍáŠ/ŽId,0O™v%¥øå6°ðÿûízš +wçÔSÑN=À€?ü{±ªÈó.à{âb…¿[EÆÍÖtÂ# ovåĬ1Tøf/üÛJ&ÈØ†öó3Ìu•…nŒÆ© çG0ÞçýÓ.6!~l³wF‰»rR¡·OÌÊ0"h ÀK»ŽKµIIyÛY/Ú#¯éjC/NÒ¿qI±é{ÀïØÔ¥ð—€7=–¹•l侓j+~·1PüÚ:ûnņOrr}¦øÙ×Ç©%.LS_ú¼öGS¡ÿ‰ú Ô„Çäì¸{›Fà‹?_­ˆ|ua­ïÓ‹{SDÍr*iàÃY~íßKü:–Tj¬Ï|¬b¥]ŸmÈ}´=‰Ý‘0K ­ð.%—¬ u¥=×·©àõ™®²§Å„àßÕÌØ‹öqhÌÿmpšM +h© ÿÍ9S?&ý—±¦í—‘Iþi@çNÃRL£YïÍ1>3-1×-T6:g𯷾YDÎ>š¶ꙤŸfOE.rI*Â7úÒ_oþµÄk°j…µf1é1VVíÏ3É»J|–ðææ!p@2ìº õÍ™ ¶>AH´«È%vÍûœNÐ:K›=%ï6:³m´¥>´#’¼×pÔM…OÖ‡(™;|s½5ŽŽÚC›D°`«眦Ãwõõ]CÓ„ÇXß8W×4Ç«ü5Ïå¯<70NÏ, %Uøt‹‚ZdSW27FÑ^òm®±ìå|CÉS-?õæRkþgÓ0,f®³âÝl !p£_XºÖ+(]b¬b7=¸2þ¶8ûÚ£'Ø\›¤æîHèE.…€iW2¡[“Ø8› àdWOÈ3ËѦ t²·×ªSÃÆ:”,„K ä·†ðöê:œ!Í"XØL[á“å^D€iŠQ±>É.›m¥„Í70"f*QodäœÄÄË +aæseCÎË\ôy »à“e”œ9ß^òÞP“|Ï2Pì¿Ðšõr¦>é¾i0óåÁ <É­Çf­ #B6ư1ûÓ<ÆÞ4{8Ë¢îÏ0ˆ.À/[äÈ„¹®œçV8rGAʳN0Ë=жá}mÛp.ˆ•R¿åþ¬GÓ q7{!/¯ö@‚Эˆ°‹Ë-Eïöul¢[Ã&:UtIe ,q¾§ä½ª2ëþ?sÞœ,¾I +p«WëYÔ_ÆÚ®ŸÀæþÇ4†Š\í+õ³J¼÷~ñÓ͈ï&1sðßn½Â#f‚]ô2Ë &NÌ»ÝOˆºí3Ñ+ýèD)?å–e +à!roŽE;\d1üÛÕWr6ÆÉ9v%µ=É(ðhÈEV)5ºLf?;ýC>ùåÑBÝÈÁLeÍžšVa†~›¯Ë¸¯æEû¬÷ç}ûg…Û8Ó  Ê‚íºÚîƒ•Ú ›”’·Ò ûøÔ+ý¨˜]5æšeÓÝÞzïzréÖ:Ò4Œ‰0“—¼u–Ò}šRîÉÙ!—gRî¯uAÞ;D<Ø\4B*H¼µÖ rÊñ9G3øÒ£9BÙÞ< ëÖñ8ži¾`ÏX)Ü7kÎ×zûàýœãòöf¨›™à˜Æe[´„,mòG7!éöö09kk€˜ ¥¦^oÈó;^—õæ„”vi«³ð•eœ˜4ÝGŒk&¦?ì&…ß\‚;eì®’ƒßÕâsö¦±¹ÛrÀt#ƒ¶¦˜P‹´š7ÛGŠ]ÂÇš¦ðN%Óð„¿ˆeÏs¸‡F#Å­p÷ŒµûFaµÇÀÄ;”˜tËdq€y²$Ä*"eÙÅìòõr’„]ú •ù¸}«³<ül+8ôR}qÐ…!\ÔõaÆ=û%}²ªÀ¯ue¥—mWâ61‘[£e_²²@‹¨àÍ®‘ìÒ’!f ±¿PÝ똦T8õ„|—™êТsl:nGIEíØÌM1&nsÈ{}WhlCdX§ØåÖIïxÐ ŽIL‚y´Ô rŸð +ý/¬öÂ#Ö‡°‘‹]~– tÌj?Ã=Í縴,ü‘/<0rùÞ¾õn  ñGˆ)=¸Èõ>ÌqeþÓìÀGÇc}¯‚úQñ÷W»‘ñ³ %¯š _LÒcïHy©ÏGxIwÚ‰qŒí¸„y@ô¬ ‚Ö‡!ÁëÃeŸ +hôÏ%òŸ NÝÑbU÷Þ¼°Å®§z¯ “˜¼£EAçþ|í€{FXïpe[IÊÖ÷Ë8;én6æú¾R@÷x{·+n)5o«4Ûœ}o¦)ýÎJoy y’Z4ÊÉz «ÊyáTZWÃ&Ø_mWã2ì*|ƶŸ¦h,û(®)ü¸;ÇïÞ[ä×Y•ÄL³Ÿ¼#'ƒX€ß±V£bk¿ÐùæÔ1oI.Ú–b’—{¡qƆüÏËåÁëC æñа &a„“ù¸ÿôàÃm9ok’”i‘Q +z6Á¢`Á6§¨yÛ +&Dß \ÖÀP×c>[¥”Ó*l½üu¥­ìÓÊ4fkŠU.ª†‡“²n-uúïLŸi‹º1Ýå³ÐWøMÕ˜ kÌùa›‚'þ½Â®\GÅÉ›Š_[Ätøá\mïá³o§X¥o‡ioÆüc} 0ä×"§ru7ÓƒØVrh?çšÄÿÎUwþw™Jøk[èTâ:‹ßYÇ)Yv»Ä)çáêÇëFŒ‚ZË&v¾¡ðѾxÈ·ÅæŒ+ÙO¼=ŒÍ%/šPŸBèj ꛆ“~{Šs³òé<7ëÅfÚ³ÍåOob’7ÇñV16Ñ¥%æ9Ô¤’O°?WÝãž6»t,Ìá ›±=‰Kv«XÀPαÈV —°!f—šÆù+íÌØIVÁê‚§‡Ñé·£¼Š­.xÀbSÖ}mì•ù欇«ˆ€ùNð§­Apо†·Žã­"J¦CÁ(³I‘QV1,ܵáWçêÑ1ëCÄô…¶ +¿åNè—dôõ zü]Û!g{Š‹ší¢Çwà“®Èª‹w¤<¢ME«Ø›&{ ˜|— Ä%:Á¦¥•Ût ¸{¦ªio–Wµèåý¹†1·±¦Åm¬jØÖ¾»ì­±µð¥¡¥äÝb&½tSÄN|led›{:~ì93ìÒL}Úó¥žò€^BÌ•I^úàù,Sè乎—sÝ…/7¼ý-Ô”bÀg0ÝÓUíGëµRç ‹l‘3!Û’Z®KÓ&:Zà×9´Ôr`¬e.`¼ÞÛnà5|ªx¿§­ksÈ©¥ÛbLüÊ`y€¶>ûÁB/<È"!íÏqª7¥˜Ü¹~DŒCÏx…v m׳09¥ÐäÎÞŒ Î1]ݸ£©nJiy•»§Ö*«í +&ti”’´0ÌÊ\¤%nŽRŒm¥_É©oþ¨)ývé ìJTÊ–²ÔWüÉØœùpk +—º*â!‡é%€¾$ÎTVíÈpi;2d¢IZ¾1Y·Ø—ûÑ*E¥ï+¹óýÌŒénÜ5—ýÏr½Ø­¦x5S™Û@GïÏñëÜÓ•µûúJ®[ÅF¹”Р.­°Ê¡`!¶å ÄŽ„T Ì tgí˜ ¥Ø¦ˆiÛcˆCcÊ}}uÖƒù6RxCYÔù~LÌ%¹0ãÑ=éÞ*æÊ1îê\CÞsÓ.VÓPñf¾ãPñÉf)º«cSöæjûaYA)Ø0~©´1†Ž‘U%ßwLá‹w§kš½ÏÁXDøCm᣶ò¿Õæ|:.f¥Ý g}9CŒuz¦.?È.Æ&Û$¨X›`-^èH«~¿&¥øŸ]nÎ{»>JH’U¥ÞÑ 3,µ—ù>×[×<óŸEBÅ¡“»1‘÷Ö®@¥ÿàô_‹5ÿ™çòw§Ê¾ÛGóýv¥È==å0Ó4…Œ74æ=Þ¦äš'Y(M}ÅgAqøµ¼Àgg9?.ÌT=\o/}iGt ¿Ÿë‚…\YnÃFnr*–»K?L0“nË«rŸÍ÷ÀýuÐO³=ä¬UµÀ¢ ænO¡“ì +zOϦÍrùû3Ü®s¨qÅ6%6Ý®¢€÷j‡vgõv=¾<‹Y*ød—Vüp(P ºVxx<þª¼9ÀÊ™o¿F…]n-ñ¿,‡úh97·úŠ¿x´”´%û ;ëãó£Ì£®©vhX„=€ç*B®S‡ÍÝ_¦SlFbÉ¢ÝEMzØýîs´T3è™kœò±ìíç½Ú]ðÎ4 ²Ép©€6BŠ«òÞ¶£Â¯,t•Ú¦hàšm!Ýlf½t¾¼1ŒÏvq¿0F*YêG¦8Ô•,§–ÇtêèÝY~µ]p›š…ØQ±`6mËÈÆ‡´:LÊ´k8ÔM 5_^Uþ¶žx³}g±9ï±”—øXט¼6„HëA‡^7OAR÷ TÔÞ4à»gé4Ï…âR£‹Ì#^Å'íÍ›v§…& 㽎iÕ0‘&9wSF/Û4‡Ë(¬ø»iMDÍ_!eyæšå®™6­{¾Eû¿ÚFa­SË€.~qeŠž7UUüBÛ ì[Å«ÑwÁ²2&Ü2Š‹4õþ¬v½Xjι¯àD^’ñÒîv° ï|q$È ¼cEE­ÂõÅÏÛJ^¬õ¾ÞÌõµãb€\ÇçµBnÚ%¸b»¶uÔ¬h4ËëªZ>û`FPã6ðXóý舥~"ÀßèT«„kG†/·B>Š9OÇÈé÷¹zŽI >GŒÿz~ºº4jg³Ðž~o±;óª:æF/òÃÙ!|àaRØÝ¥Î¢oú®ò5—æèé¶áZ‚KFÌÝÓÂ*hÔÆpÑóxá· +_z gâ­R|ÆžŠTøï ñ`ûï"WøËÈãìk)Å®Œ+ÝÙ¯WGѱÈëCÔô§«]ø°¥Ö +?c]ú]?òÚ1àb]©ß~ÊóãrFò];û9;+ðÆbKî»Ù–’°¥À‹0qÛS”<‹™dCâ×Ç‹?þéR +ªrÊ¥"nв¾­§}Ùš(ýîкqžAtL“*LRx4à*Í Û~ÎãK÷ °d» åðÝ)'çšF1‘K]ˆ/›}ä —ÓÍÀgŸ±Ñ_Ѓ ¹1@‰{8Äó-çÇf?½`¹—–2ׇüæ1šÜHDìpesd„Ø·I…ÍÕd¼dƾO°(ŸÆ¸ô°UâÜŠ¥úÝŠ¡6aÏKƒ +p9“JhŽ™–wn\}¿é¦Ýû3ÑÖ!'y€8è¡·‡ˆ™Kzý¦]²@ +?M°Å_&»}ÿÎ ûgW­›ö¦¨¨­Ã>aÃø"¿¬é-*ç寻nuÝD-?ìßVBßÎKLˆ«®ŠÁú©•ëîÿ<ˆÏ}Ö!Rœüü+fÎÙ™Þºû‹ÊÚ'[æÆ_¼ô–]/àUBÓ›3¯˜élÈÛõ)Ƕ|}öOÁÕ×)ÿsI>䎥HÁoxÁªˆ;7ÑÕœ»ï$Wo ¡SÂ*BÚT7âu ½å±RwÅÅh¸¿2H, v6½ð·] iÁïgu/fû«^­h#džô- Óƒ ‘~å݉NZ‘›‹L ©À¾øq '¹iÃHjü>JA~0vxÆŠ©)úÀ-Ûµ£ +þ3FÅüï¬@ò=Äw7¾bQYÿvUß’½h@g‹ W´Ô’{sý˜ø™î†G>~ÞE+%í/À,Ϊßþ1K»>!nˆ”ãòn¿¸1×S»o?Ô0°ä°š0-kŠ\ÖT=Y³T¾ j^nÙ(ÕÓŠæ—‡`É_ƈ¯AìKÐô}ŠÔòmŠÝrÃ2×mÍ ?‚,ö§>ÿëxkï¡¿ŒP lÙšôa²»ôž“qi^ý8¥Â)©¹÷]­ÅOÂd¾†”ÿDC(¸ è§´}' +hüÒY%"vÑ€Jú:I#| ’°_ƒ„–Ï㸺ý ¾a+HìÖ…OÐh?æ˜Â54nF‰ÍØuñÿN2!uý[+1ñÂ(?ïö‚µï ”í»Iµ6^åíq)úý¦•\±iCåOõ×½몾3§ª{¶€cÖœÄê »=Â¥/šH5›^c{”ËXw>â¥A>Ï0€¿©Ð°•TrØ÷Ð/usZÀ÷•øÔ iËk-:í^ðû¿:£®j"¯u6ÅÿÖ‰*Ž›Ôbá[^bSØ‚)Y¦C6½Lô¾ŸØ¸yØ×‰¯Útâ‹'•Mo}UwÇà‰£\A؃C‡=؆­q6sÅC…]ÔÆ¹è¾5gsά¦ôѶ›ŸRâ‘ÿL³Eÿ]æJ÷‚ô×irÛ Ë[´ð’®%ÍÕU›µj9Ô´’5³fYƒO›ì=4òÎô€S~émŽ?n@¤œÝÐRjæ±9&JÖï+Ê–ø3&sÛŠJß9<7he.°¹~\‚ŠPzo}ˆJ8˜’º¶ƒö×?OPà{~6iËÃ%­8„­ß^›qy® S÷ÉFm˜•ÖÜYì‡FMvº©%g'y¥—ÖÔˆÄ9 >‹Yÿñl'8éꎋ>ì+±é€%ÏÈ+Q3.(iNöÕ< +iañJvm\QÌýÓFRʃÿ.¶[F„‚= ~òb*&ê^¸Úr/,ª«#wÝ´ænx™ÑÖŠŒƒ¢þï€fÿì!Tì»°…ÛVtnhúa¢ôÄÙÖô@‚Ì¿<ˆÍ;¿¥g6/öë"GMõ búð©ÃÜš;íõ±§…¥/Ž®kài£mü¢âëÛfXêî0¾v×-øâ%Tο®/Ñ/©x0"®x´e9¼‡!êYµ¢ógë_îÞï +  +¿1uÿ»@¥Î×Þv°ŸÝRåŽCÄØ°Sªë>f$%7ý¢¼«#‚Ük»Nl•CRý¡1õþ1AÅ›ßFèÈ"vªüdN +z +ØôËÃü¼=LmÜv±à³ZPª…›ò÷ª”þÏ4àƒctô?Æ ýgžß³ãCÍ5½TÒ +ïA3Ÿ\\=¬g `› ±aUcÌ7,?¤©}hÏ¿­„½?1Ý }ÛƒÎz€Ïþ»™Yp㓟ý<†oüìÇVk·8´îĬÚpÅknnÉJ­Ùq³±>6áû÷ŸYïÇöðýEUÅo{þµIó;©è®’ükGÅûcâòw'»jbÿœ–ÖÅ8©E ¢h˜_rßÎ,¼°b"—y,uÓ‚(ذ#K6„* ¿LSIŸ&)ØÝ &5ì¡Â†{ªžNiš¿Îw8>M {6},Üú¾dÎ<Ÿ "Ãæ–\)$þÜ€ú¿ëBãáÌé-vé=*夋–öûºªæÕr?$y²³îé(¿üÒ– _<­¬};Ù[vº§êÁdOñí¥æ×ÛZå?€Æû1McìiØ­yä°þlq²MþÉ/ào9 »6zíg'«å³ƒ‡›ïÃ$ÌubãV•ìòñ6ÐS&íw/·ðŽGPz×É.ºäTü=݇MÛæa7=4PÈ‚L›)À5¬[ˆ‡5$s*l®–]ýˆTòþ/GUÖ—)±nÍN¬œSBÞ/k¡IûnBÅç\Õ'/ªtÃŒ/ t5>[V¢J¾øÛe€/q¾Ž’A»Ã„ò% ò#ÍàlíȨ.xùy¹þúa=³¿µâæ:îdOóëŸ{¡±¿èðùç)ô÷DGãkooslYôÍŸQoŸüä@¼‚­t ò.Þýê—&_t§Ÿ›WÖDíÓ £­íž.hüü *û`/ÿo˜Îý¿a:çÿ,`?&På{.XêxwÝSráûßñ9Q'—õDÈ·Q&þ‹“Ú³`K–•à$ 3ÿ‘—h°Ô³»Fhæš…T?ÖZw}™¶m&•lYÑÙÛvtÁ¶Ø²ë$6:Øgå ßFØT@KÔoÛ`Y›nLÉŽ—úgRسï¥C?˜Ä%µiXØøv×E®ûä§À—Õ°#‚ÒëNÖ_=ç¨ä¿Uà8@k¢K>ü™øàòq¡äÍÀ.7„u;$aÍ +ŽÛucµ¥Bí€\2¢3Vm¤²Ï#"áž‹‰[jIÙÆU­ë¡ñ#üœ« +ț߼m•Ú9·óÞÞýE†È¾<ˆÈ8¥hŠ=æ"¦œrQ- }ÿ«®½!îò0§ø¡•W﯈Ƅû§–Í謑°dhŠÙóÀ!;ºpj=chŽÛüöÿ ³Ä ƒð”-;óe¢màÓT»æÛ¢Øþc‰×÷}š„ú +Ĩ•¡†ÈòÁÛQùhN OZÓ¡RBЦwaeCü²¼úý‚¬üÕ¾›…\Tâ€XØðÜD+¸½Ð®¿â¦˜ýÇ<ù”þñ3æã¯ãüÜË!yãó±Úç<ðÛ“]Íq§W5¨ÌucK’O;Кw]›ÿtÛQúüóªòë›ýmêð¼!ÿÅÏ¡þ®þi„K>pSêw­ÄâM¥tLÜøpLÔüÔʬÖJ9-mHüƒ_öá”–þ§[|sc¨%vÛŠ- é 9ËXƆ“Þ´íáSFˆõkfpÜ0?ç‚…™úçDwå½u2íÀËÄm|²å¢ƒ¼|ƾ۶ Ó7-õoBÚ‚{“2€GÔÐøï#,ü'/›¸b$•ï{ؤ}€Ö“óÍ=*®{6,¨{èhz4'G¼[ÒÑ+<š[6fáUµàáDwÍ# Ý÷ðËžMËÀ)¾^X,¿>ý\Wcö½u#<Ù[÷Ø'¨¾7ÖÞµ0ÐônÃùðe„ýtxfÀÅ„ŠšÓNÙQß‚4ôi +êkYôušõ%Ë8±ÊÛQI.yj“ûl?ÀîX3£³{kïOw”_·ÑÒÏ0ŠžœÄ¤Þ8ªA¼9µc‡ekx•/•qW¦úÕvr_RtËJ÷§ÿüìHëûó³ý5¯7mdøÚ0 J¨x}ÙÄJõ?sáá¼ìï~eß-ZÕ‚cÇÛ‹»Yi×¶Ý®¦½Àæ=Úv’¡ëVLÑš–R’\¢’—Z\ê77ïÒhgí»-; mTÎÈùï§õû$“¶m‡¦…†ê_/hêžž=ùìÿ¼ +ØIñ•e "yÍ‚Ë]Õc +BJlÙ4­D%¸ZëïÏ*qbÎEqå›ãÃŒ¼«£¢ê'‹JDð½ªCfBɸ¬9^XóátSüí£½ð77íð‚EmÕ‹ 8s×GA†lÖö8¯óëc«¶lÍw‡ÑeÛ.\Ó„²)uÍŠ«ßb‘‡Yp¹¯>úxGų#f\âŸkf|‰KPvm‘p’Sþò¨†\pžVôú¤ +šy1À=6csÎx©YgfÛí,«|"ÃÆáT¿üi—q~YÝòa^^ûÔÍ+¼ã= +)J"÷‡a_‚Á×Iñà#½käò5;­f{˜‹Ûóò)VRéªÖ ¦¾ +v6?îlNý]ôîç¿ùµ‡ÕxßN)<çáä_ ´æßsrâ®)ѶåßÞ¶ÐÖLtpH?ì¹ o|·(¯x¶6Tñt±¿àÙº¶6fǃÌÚsS?yx”u3¾pÛ„HûêÆV8!Ù[hᆕýu„Ò¼iÇÍš`Í–Ía3¤#Nõ4=s°3ÏI§vº²a‚%Œ™i¢—_öµ6?_Ñ2Ê':jhP‰*"Këßœžl¯½3Ûú°¬â4ͨh• +|Ö¹ÉnBÖê·aELÜ4"’Ö­¸âeÀ&Âb©Ð2^Hܶ‡ +ÚPaŸÆIP@Sƒ?âªFñ5ÁÞ†ç.Qõ½Å!Tá÷9¡rÝN(]R·Ä.ȉ³¨'§ê +žvÎ/(}¸e#V¶bóþnH~vz¸ R¼b!W:ùigmÌøk^rä”,÷ígûyTÀ_&ƒ0eQÔ”Ì×ÿΰ¹Ÿü@þtÖ¹7¼˜”–^wsÒϹ9™·–L„DỿÐ9±7·ÝÜö=/¡)ÐVpK‡‰ýƒSüè'qùã£3·<øš°•Þ˜}÷».îñg/ûŸyNû×q"44TùxN^tcÓÑœø}’/^wÒzFÁ]¿ðî÷ û°v´ã&V®hÑ™a ìãl_̓¹º§ ZB±ðí)DÆ“£ÒêÛ@<]Ô€’'{*ÞxÛJïõÁÓ~c¾øÉHIº¸flLÞ°#2BÆÆ·{ ·Úåߦ»œÀš©¾LÒ©@žøœúm]ÿϼH¶ÉÃ]E±Ÿ§©„/³œÖoÓ4âÁ¦øÇ ö5ˆ„íМU'¹~YÏ_hyïâæßv²ÓÿÞ2>Ψ0InÑ_6ZþY=¾ð¬”z™ù“‘Pz¦«9RXõê9ûÖO} '4„¿ÀÓ¯E¨QþXP6½suW=센;5ÚZÿñ‹‡Møì#5-a‰³:R銃ƒÝõ³)«.&Ø3Ó²ŠoÌk0Û..aËJoXV#ÆDåW}¬âóZlú)&÷Ïi êƒ š{ތϻà–Ýç—^Ÿ•”E.õ5$¯©áéaü_X~k¶³1r_ϨÙÖ²¿ÎÉVÕFN·ç\ýbjLüϦìÀO_S5ÇÌHkîo€}臥¬+A1»ÖækÆ–ØM > endobj 15 0 obj [/View/Design] endobj 16 0 obj <>>> endobj 36 0 obj [35 0 R] endobj 61 0 obj <> endobj xref 0 62 0000000004 65535 f +0000000016 00000 n +0000000159 00000 n +0000052419 00000 n +0000000000 00000 f +0000000000 00000 f +0000783319 00000 n +0000000000 00000 f +0000052470 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000783389 00000 n +0000783420 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000055291 00000 n +0000055104 00000 n +0000783505 00000 n +0000052866 00000 n +0000069431 00000 n +0000069318 00000 n +0000054038 00000 n +0000054543 00000 n +0000054591 00000 n +0000055175 00000 n +0000055206 00000 n +0000055670 00000 n +0000055927 00000 n +0000069505 00000 n +0000069903 00000 n +0000071118 00000 n +0000078649 00000 n +0000144237 00000 n +0000209825 00000 n +0000258615 00000 n +0000324203 00000 n +0000389791 00000 n +0000455379 00000 n +0000520967 00000 n +0000586555 00000 n +0000652143 00000 n +0000717731 00000 n +0000783530 00000 n +trailer <<2C218AF0A1564ED8AEAF08DAC31CD845>]>> startxref 783718 %%EOF \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon.pdf b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon.pdf new file mode 100644 index 0000000..eeaab43 Binary files /dev/null and b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/daemon.pdf differ diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/domain-serialize.ai b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/domain-serialize.ai new file mode 100644 index 0000000..a5ea7eb --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/domain-serialize.ai @@ -0,0 +1,3413 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + domain-serialize + + + 2019-04-15T16:07:12-04:00 + 2019-04-15T16:07:12-04:00 + 2019-04-15T16:07:12-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + + + + 256 + 128 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAgAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7Z5C8heRp/I3l2efy7pk s0umWbyyvZ27MzNboWZmKVJJ6nFUz1Lyh+WOmWjXl/oGkW9upVS7WNvu0jBEVQIyWZmYBQNycVdp nlD8r9UtFvNP0HR7m2YlVljsrYqSpoafu8VUJ/L/AOUlvfCxm0bRY7syxW6wtZ2wJmnVpI4h+73d kQtx6036EYqr2XlH8rr6x+v2mhaNNZfvB9ZWztuH7pmST4uFPhZCDirrvyh+WFppkmqT6Bo66fFE biS5Wxt3QQgcjJVYz8IXevhviqJH5ffl+wDL5a0kg7giytqEf8Birf8AyrzyB/1LOlf9INt/zRiq G8q+VfLD+WNHd9HsmdrK2LMbaIkkxLUk8cVTT/CflX/qzWP/AEjQ/wDNOKoTTdH8janbtcWOmWE8 KSy27uLWMASwSNFKnxIN0kRlPuMVXahofknT7Vrq80uwhgVkTkbWIkvK4jjRQEJZndwqqBUk0GKo HS2/K/Vfq36Og0q6+uGQWvpQQt6noqrvx+Hskit7qQRsRiqZjy35ONwbcaVpxuFQSND6EHMIxIDF eNaEqRXFVKHQ/JM17cWMel2BvLRY3uIDaxBlSbl6b7oKq3BgGG1VI6g4qhvMnlXyunl3VWXR7JWW zuCrC2iBBETUIPHFXeW/Kvld/LulM2j2TM1nblmNtESSYlqSeOKpl/hPyr/1ZrH/AKRof+acVd/h Pyr/ANWax/6Rof8AmnFXf4T8q/8AVmsf+kaH/mnFXf4T8q/9Wax/6Rof+acVSvzTp/lLy/5a1XXZ NAsriLSbSe9lgW3hVnS3jMrqpKUqVU0xVj3+OPySD3EbQ2byWhlS6MOmTTRq8CkyqssduyORSg4n 4ugqcVUvMPm78utMsYL2x8vW2pwTRTTho7RIiUhu4rH4FkiDycppxTgpqisy8vhDKrT57/KG3lYa npdtp8DQWdzbXL2KzxSpfpG0dJbeOaMEGZVI5f5Q+HfFVifmV+RAtXuLqG1sfTM3qQ3WlyRyqsF0 1mWaP0Cy8pkIUMA3YgEMAqyry1ZeTtd0w3sWh2MRjnuLWaP6vC4EltM0LFW4DkrFOSmg2IqAdsVT X/CflX/qzWP/AEjQ/wDNOKu/wn5V/wCrNY/9I0P/ADTirv8ACflX/qzWP/SND/zTirv8J+Vf+rNY /wDSND/zTiqV+avKvlhPLGsOmj2SutlclWFtECCImoQeOKon8vP+UA8s/wDbKsf+oZMVRXmny7a+ YtFm0m6fhDM0bM3pxS/3bhx8MyuvVetKjqCDirzpv+ccPLLL6barfPEI3iVm9EzMklybp1ln4CWT m9A/JqkV3HJqqp/L+UOjPrVlqgvLlJNPvbbULcK7AmWC1gs5FlAIjdZYrKD9ioIahoxGKpRJ+QPl h9ZS5krPaPLe3F36hTm73bF1j9NYhGwWQrL6jHlWOMGqjZVCx/8AOOPl+1aOax1i+iuoRJ6TyGN0 DSx+nUxqqLRASFQUUL8PYHFXq9laQ2dnBZw19G2jSGOpqeMahRU/IYqrYqlXlP8A5RXRv+YG2/5M riqa4q8wufyC8t3eozX13qF5ctcTyTywzCGSICbUX1KSNEZCqq0shB26YqmGm/k3oOlabNBp1zKt /LNYXIvpgrlZdPdJR8KCPaeUPJLvUs7EEfDRVDxfkb5Zi0mw036xcTw6fdvfRrL6RDytHGlP7s+n y9FWZowG5Fm6tiqUWv8Azjf5U/R8CSTz2V7wRbprJkCt6byNChdow8iQRyiNOWx9NGZarirKvy8/ LGx8lestrfTXkTQR2sCz0qkaTTTsSw+0WkuW+QA96qsi8z/8o1q3/MHcf8mmxV3lj/lGtJ/5g7f/ AJNLiqZYq7FXYq7FUJq2lWOraZc6Zfx+tY3kbQ3UNSokicUdGKkHi6/C3tiqWr5D8lpevfLolkt3 Iwd5hCgYsJPVBrT/AH4S3zxVVvPJ3le8hsoLjTYGt9OiMFlAq8I4oSUPpqi0XiGhjYCmxVSNwMVU NS8ieVr/AO3YQxFlhimaKKJTJb27KyW7Eof3XwL8K02GKt3PkLyVcvO8+h2Uj3TM9yxgSsjNKZmZ yB8RMjM1T3J8TiqZ6TpGnaTYpY6fCILWNncRgk/HK5kkYkkklnYsSe+KovFXYq7FXYqlXmz/AJRX Wf8AmBuf+TLYqxzyx+W35dS+WtJll8raRJLJZW7SSNYWrMzNEpJJMdSScVTP/lWP5bf9Sno3/cPt f+qeKu/5Vj+W3/Up6N/3D7X/AKp4q7/lWP5bf9Sno3/cPtf+qeKu/wCVY/lt/wBSno3/AHD7X/qn irv+VY/lt/1Kejf9w+1/6p4qxi7g/IuzTVDd+XdGgl0mWSGe2fT7P15DDGkrtDEFLyIElUlgNu/T FUHql5+Qem6VBqs/lrSnsri1jvhLFplq4WGeQRQliEoPUblx8eJ70BVTTl+RMV7f2F3Y+X9Ou9Ml EF1b31vZ2rgtbpdBlSZUYp6MleVKbN4HFV9p/wAqFvLSG7t4fLTQXCl4GaKxTmokMPJQ4UkGRSoP QnFU00byn+Wmr6bBqNp5a0v0JwaK9hbK6sjFHRxw2ZHUq3uMVRv/ACrzyB/1LOlf9INt/wA0Yq7/ AJV55A/6lnSv+kG2/wCaMVd/yrzyB/1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVS7zH5A8hx+X tUkj8t6WjpaTsjrZW4IIiYgghMVd5c8geQ5PL2lySeW9Ld3tIGd2srckkxKSSSmKpj/yrzyB/wBS zpX/AEg23/NGKu/5V55A/wCpZ0r/AKQbb/mjFXf8q88gf9SzpX/SDbf80Yq7/lXnkD/qWdK/6Qbb /mjFUDr3lX8tND0S/wBZvvLOmfUtNt5bu6MdhbMwihQvIQvAVoqk0xVKJ2/JOHWdP0f9D6PJf6k8 sUEcNnaShZoHiSWF2RSFkQ3Cck6gb9MVQR1b8kRd3dr/AIcsTLZ2VzqT00uBg9rZySRSSx8UJKlo W4nodv5lqqj0k/IJ44pI4vLUgmeKNFjispH5TusUYKorMtXdVNRt3xVVa3/JMtAttp2gXvrzRQE2 kFjP6ZuJfQiaQICQjzlYg1PtkDFU+/5V55A/6lnSv+kG2/5oxV3/ACrzyB/1LOlf9INt/wA0Yq7/ AJV55A/6lnSv+kG2/wCaMVd/yrzyB/1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVSzzR5A8iReW dXkj8uaWkiWVwyOtlbhlYRMQQQmxGKp95T/5RXRv+YG2/wCTK4qmuKuxV2KuxV2KsH1j8mPIWr6r catfWs8l/cvNK8wup1o1xAbeTgofioMRIoB+oYqrXH5S+Trizs7KWKc2llaiySL1nq8SOWj5vXm3 D1JFG/R29qKtat+U/lPULz60LZY3luLee6Dc5AUt1t19KEFwsIlWwt0l4r8aJxI3riqFuvyN/LW6 laWfS2d3rzYzzEmrM1CSxO3Ki/ygClCBirL9D0a00bSoNNtSzRQBiZHILu8jGSSRyAByd2LGg6nF UdirsVdirsVS3zP/AMo1q3/MHcf8mmxV3lj/AJRrSf8AmDt/+TS4qmWKuxV2KuxVL/MOiW2u6FqG i3bulpqdvJaXRjIDmGZSkiqSDQsjEV7Yqxiy/JryHZa1FrNraTxahDdS3yyC6nIM07xPIWUuQwY2 8dQetN8VREP5VeTo7i4nktpJnuIri3o8rhUhuvUEiIFKhaJO6KRuF2riqhD+UXlAXks89sJozHBF ApaUSAQ3LXrmWUyEytLcPybptRaUxVR0j8kvy+0e8ju9MspLaRZIJZAJXZZPqskc0KsHLfCk1tFI KftL/lPyVZ5irsVdirsVdiqVebP+UV1n/mBuf+TLYqkPlfyB5El8s6RJJ5c0t5HsrdndrK3LMxiU kklNycVTP/lXnkD/AKlnSv8ApBtv+aMVd/yrzyB/1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVd /wAq88gf9SzpX/SDbf8ANGKu/wCVeeQP+pZ0r/pBtv8AmjFULY+Ufywv3u0tPL+kyvYzm1uwLCAc JlVXKGsY34up+nFUBe6b+TNisrXWlaJGsMr28hNlbmksUfqyJtGalV60/a+H7W2KonTPLn5Tao5T TtG0W6cQQXZEVnbNSC65+hJ9jpJ6T0+RxVGReRPy4maVYvL2jyNC/pzKlnasUfiG4tRNjxYGh7HF VOy8mflpfRyPa+XtIlWGWSCWljbgrLExR0YGMEEEfx6YqiP+VeeQP+pZ0r/pBtv+aMVd/wAq88gf 9SzpX/SDbf8ANGKu/wCVeeQP+pZ0r/pBtv8AmjFXf8q88gf9SzpX/SDbf80Yql3mPyB5Dj8vapJH 5b0tHS0nZHWytwQRExBBCYq7y55A8hyeXtLkk8t6W7vaQM7tZW5JJiUkklMVTH/lXnkD/qWdK/6Q bb/mjFXf8q88gf8AUs6V/wBINt/zRirv+VeeQP8AqWdK/wCkG2/5oxV3/KvPIH/Us6V/0g23/NGK obU/J35ZaXp9zqN/5f0i3sbONprmdrG34xxoOTu1IzsoFTird15M/LO0sZL+68v6RBaRJ6kk0ljb qFWlamsdfoxVLfqH5L/pOPSzpeiLfzP6ccDWVuCX9NJeNTHSvCVDSv7QHUjFUdbeVfyqudJTWIdE 0VtKeH6yt6bS1WL0ePIyFygAULuScVVL/wAmflpp9o93e+XtIgtoyoklaxt+K82CgsRHsKtuTsOp 2xVEf8q88gf9SzpX/SDbf80Yq7/lXnkD/qWdK/6Qbb/mjFXf8q88gf8AUs6V/wBINt/zRirv+Vee QP8AqWdK/wCkG2/5oxV3/KvPIH/Us6V/0g23/NGKpZ5o8geRIvLOryR+XNLSRLK4ZHWytwysImII ITYjFU+8p/8AKK6N/wAwNt/yZXFU1xV2KuxV2KuxV5x5g/JDQtdvNWurzUbvnqrXDMq+jSE3FuLe sJKckKqKkg/FsGqABiq+T8ldCXTBptpcNa2rT38kscUMKKYdRKvJAI0VU4BoYxup+AFe+yqG138j NAvbSP0pZLi6tdKi0iyF068UWAXCxymRY3krH9ddhH9gskew4AhVC6n/AM45eT71VVL6+tkRgQkT oqkehBblWooJ5pbUY1qQ7CvSirOPJflKHyvpT2EdzJdmSUytPLTmQsaQRA02qIYUDEdWqaCtMVT/ ABV2KuxV2Kpb5n/5RrVv+YO4/wCTTYq7yx/yjWk/8wdv/wAmlxVMsVdirsVdiqVebNDOv+WNW0L1 vq66taTWMk/HmUjuYzE7KtRVgrHj74qwTUvyA8sX93JdT3tzJJI07H1Y7aUVuHR2Y84jV6JwMh+J l2YmgxVOn/K3TZPNkPmF72YNaXkl9ZW0YVRG86xiZedC1HaL4qUqp4HbFWOJ/wA47+VA7WzFmsns r22luaxC4aS9gW1UlFiWP9xEhdGNSZGLEYqvuP8AnHny68s00Wp3izT/AF1JWcq1YtSiNvcJRQgF IXZY6fZovWh5KvVsVdirsVdirsVSrzZ/yius/wDMDc/8mWxVIfK/kDyJL5Z0iSTy5pbyPZW7O7WV uWZjEpJJKbk4q6TQfykj11NBfQ9IGryIsiWn6Ph5FHWRlPL0uPxCCSm+/E+GKpn/AMq88gf9SzpX /SDbf80Yql2reXfyl0cctT0XRrRfRmuS0llbgLBbKGmlY+n8KR81qx2qQOpGKq9p5R/K+8uLi3td B0aaa19P6wiWVsSnrIJI6/B+0hqMVVoPIn5cXCGSDy9o8qB3jLJZ2rAPE5jkWoTqjqVYdiKYqp6f 5N/LPULVbqz8vaTNAzOnIWNuCHicxyIwMYKsjoVZSKgihxVEf8q88gf9SzpX/SDbf80YqkXkLyF5 Gn8jeXZ5/LumSzS6ZZvLK9nbszM1uhZmYpUknqcVQfn78t/LcltpP6L8sW7RrqCHUl061tI5za+h MDQsEFPV9PvirDrry9560+0jgt/y70HUJYYyHnl0+zZ3ZLOSVKmKeFGMtwqROwVAlahXB2VRbaH5 vNAn5b+Xwy+pHRtOteMjIZBFJyFz+6WVo1UrxfgHElWAKYqp/oHzwZ7b0/y78tPA4h+s+ppsMToZ JrgSUpcyA+nFDD9MvLYKRiqF/wALedf0tBcv5F0iS0ZEZrZdKsYo4eXwzcwLqV5WiWrKnMcyBRl5 bKso8i+Vbq9vZo/NnkTQrG39ImJ4NOtkpKjICpPq3PMMHJU0X7JxVknmPyB5Dj8vapJH5b0tHS0n ZHWytwQRExBBCYq7y55A8hyeXtLkk8t6W7vaQM7tZW5JJiUkklMVUrLR/wAn77VJtKttG0d9QgaR JLc2EKNyhIEoXlEofhyFeNaVxVG6j5O/LHTLGa/v9A0e2s7deU08llbBVFaVJ4Yqvg8kflvPLcQw +XdIeS0kEVwosbeqO0ayhT+7/kkU/TiqDvdB/KKxvBZ3mj6LBclrZBG9lbg872Uw2yV9OnKWRSFX qaHwxVE2Hk78sdQiklstA0e4jillt5GSytiFlgcxyofg6q6kHFWz5N/LMacdSXy/pEtj6P1gXEVl byq0XHnzThG3MFdxxrXtiqD1zyP+XsnlfULu08v6SyPYzS288VnbEEGEsjoyp9IIxVf5c8geQ5PL 2lySeW9LeR7SBndrK3JJMSkkkpiqLvPJH5bWVrNd3fl/R7e1t0aSeeSztVREUVZmYpQADFVDSfK3 5WatbvPp2g6RPHFIYpaWMCskigMUdGjVlbiwNGHQg9DiqreeTPyzshCbry/pEX1iVIIAbG3q8r/Z VQI6k7E+wBJ2GKoXTtA/KLUnt00/SNEumuoGu7YRWls3qW6OIzKtE3XmQK4qjo/In5cSSSxR+XtH eWAhZkWztSyFlDAMAmxKkHftiqna+Tfyzu5bqG38vaS8tlL6F1H9Rtw0chRZArAxjqkisPEHFUJ5 o8geRIvLOryR+XNLSRLK4ZHWytwysImIIITYjFU+8p/8oro3/MDbf8mVxVjHnP8AKPS/NWuSateX 80LS29vavbrFbyJwtXndP72Nzu12xPyGKpVc/wDOPflKb0nS9vLeeGaKaOaIwqy+jVQFHp0FUWFT Wo/cx7bHkqjNT/JTQr/QrbRXupEtIbK5sJ3iVLeSRZ5orlJj9W9CP1I5oFbdCr1PIE0oqo+afyS0 fWp/rRnkkvJIrO1eaRlRo47R429VHSMyPJ+5BCM3Cu+KoG9/5xt8lXEdzDBdXdnbT+qIrWAxRxQJ LeNeFIURFCryfh/qqo6DdV6D5U8vDQNI+o/WGupXnuLqedhx5SXMzTNRamgBeg/riqcYqx/8vP8A lAPLP/bKsf8AqGTFWQYqxPz/AKJ5j1VNOGiXH1eSF7jlIRyEUkttJHDOV5xc/TdqAV2LB6fDirC5 fKf5saRpOlXVjq5hvbDy9a6dfrB/phnvrSOZUpFNBOW9SaWLlKCvwhy3bFUXJ5d/Pi3klNr5jtZV lErOZUjc+q1lDGhRTCFRFuFkcINq0rsxAVZX+Xml+Z9P0y9HmKRXvbi6EwWMgoD9VgjuHULsqz3c c04AA2foDsFWVYqlvmf/AJRrVv8AmDuP+TTYq7yx/wAo1pP/ADB2/wDyaXFWM6p+VGmapJdG81G5 eKW8fUbWACH04biRkZ6gofWRlj9NkkqpRmUg12VY7/0Lj5VCPGNQugrRyQg+la8+MsTwfE3o1aiS Hriq5/8AnHTyyZGZdV1COIvcyCBGiSMG7s4rKROKItE9OAUUUp0Wg2xVNLn8ltFnGmxtf3Qi0o6V LasHIl9fSDSN3KkI3qRqqmqfDSqkE4qpXX5JeXpfM8eslfXMupHVL1pfTDfC00qwKqxfvEea4q/N q8URd6YqgbD/AJx48u6YLR9O1S9S4sJbK5tHlZXUS6dH6dvzVRHyXuw26tSldlWaz6NbaJ+Xsmi2 rM9tpmkGzgZzVzHb23pqWPjRd8VTDyx/yjWk/wDMHb/8mlxVfr2i2mt6PdaVdtIkF2nBpIiFkQgg q6EhhyVgCKgjxBxVgXmP8i9K8w6iupajrWoNevzN20Zijjn9SAW7B40RaKYkRSFI+yDsanFUVp/5 MaDY6Fa6Ol5cXMVtctcNdT8VupUltp7OVJri3EErt9XvJUSQtyX4afZ3VQWo/kVoNxoOmac00t82 jWd1Z2qXTqqyrdyeoRJKsckqD9g8OqfCag4qgp/+cbPKM1qIhf3lvK6A3cluYoxNcGFIpbhwEq0k hj5EknjyfjTlsqzfyR5ItvKtrNbw3Ul2JFt4YmlADJBawrDEhI+0dmYn3p2xVMPNn/KK6z/zA3P/ ACZbFUh8r+QPIkvlnSJJPLmlvI9lbs7tZW5ZmMSkkkpuTirGtP8AMX5B3k8kLaPpdo8Vw9pJ9Z0+ 2QLMk8VsVJCsP765Ra9q1NBQ4qnq2n5FuqMsPlhlkoYyF08hgW4DjtvVvh+e2KrJIPyOWyu7yKz8 u3UVlby3dwtrBZTyCGEkOwSJWZqMOOw+1t1xVBvd/khDHcyXWi6Vax2N9Hpd9LNY2qRQXUsQl4SS 8fSASvB25cQ3w1riqIL/AJAi9+pcPLBuRFLcMgjsSEigkEUjOwHFKO3H4iKkGn2WoqirLSvygv8A VE06x0XRbuWSOaSOa3tbOaItbNGs8ReNW4yR+vGSrUNG2rQ0VTj/AJV55A/6lnSv+kG2/wCaMVSL yF5C8jT+RvLs03l3TJZpdMsnlleyt2Zma3QszMUqST1OKp7/AMq88gf9SzpX/SDbf80Yq7/lXnkD /qWdK/6Qbb/mjFXf8q88gf8AUs6V/wBINt/zRirv+VeeQP8AqWdK/wCkG2/5oxV3/KvPIH/Us6V/ 0g23/NGKsV1C7/I6wh1FrjSNGW60tphcad9Ts1u2W3JEjxQMFd0HBiGAoQp8MVQd/rv5G2Wkpqlx 5dsRaNE0shGmW5Mai5NoOfwU+OVHCEEhuJ4k1XkqmZb8ior3ULC8sfL+n3emTCC6gvreztXBa3S6 DKsyoxT0ZOXKlNm8Diq60/5ULeWkN3bw+WmguFLwM0VinNRIYeShwpIMilQehOKppo3lP8tNX02D UbTy1pfoTg0V7C2V1ZGKOjjhsyOpVvcYqjf+VeeQP+pZ0r/pBtv+aMVd/wAq88gf9SzpX/SDbf8A NGKu/wCVeeQP+pZ0r/pBtv8AmjFXf8q88gf9SzpX/SDbf80Yql3mPyB5Dj8vapJH5b0tHS0nZHWy twQRExBBCYqgI/LX5b6P5Fttb1Dy1p0kFrYQz3LJYWzyEemvJqFByO9cVRraJ+TaaZNqj6f5dTTb d/SuL1obEQRyBghR5acFbkwFCeuKoZbb8imuDbLF5XNwAzGELp/MKgZnPHrRRGxPhQ+GKqMj/kDH dRWrJ5YM8y80RY7FqL6frBmKghAY/iBalR0xVZO/5JRzahBFo+j3cum21vd3AtbK1mBW7kaKCNGV eJkkdKBa9x44qp/WfyNE8cUuk6PCkt/LpSXE1jbRwG6hhEzJ6roE3VgFNfiP2a4qqxTf84/y3Ult EvleSWKBbqXgliyJC7KqOzgcFDGReNTvUYqo6ppf5T6hpWu2ulaNo89xbabNcx3Nva2jxsCsiVjl jVhyjkjo46qaeIxVkflXzJ5dTyvo6tqtmrLZWwZTcRAgiJagjlirG5Py+/JuWczy3ULyNK0zE6i2 7NcpdgbS/ZWeMOo7Gvjiq2z/AC6/JezsjY288Edm7ySyWy6iwid54jbzlkEoX99A3pOKUK0HbFUR beSfyhtkvhDc2ok1Gzk0+7na9DyNDL9r4ndqMNuLdqDFVRPKP5ULb30H1u0UancxX18YbtLf1LmJ OHqAQNGqFwSXCgAknFUCv5eflHNZmHUbqwuJGnublmhuFt4w11NDOwESysvEPaQmjVFVr+0cVTTy 75e/LLy9qjajpeoW0Mh+sMIjdxtGJLsxevIAWrycW8a9eg8SxKrKf8T+Wv8Aq7Wf/SRF/wA1YqkH kDzH5ej8h+W45NUtEdNLsldGniBBFugIILYqn/8Aify1/wBXaz/6SIv+asVd/ify1/1drP8A6SIv +asVd/ify1/1drP/AKSIv+asVd/ify1/1drP/pIi/wCasVd/ify1/wBXaz/6SIv+asVYRqXkP8ot Rvb+9ur+NrjUZfXuXGpMvx+ncxfCBJRRwv5xQfzYqmPmHQ/y18wXEc2o6hbFUtxatFFdxxq0aMWj DcWB+APIo36O3tRVA6t5O/K7ULz60L2xjeW4t57oNcLIClutuvpQgyhYRKthbpLxX40TiRvXFUNd flp+SF1K0s7Wju9ebG/JJqzNQkyE7cqL/KAKUIGKsu0O+8oaNpUGm2ur2rRQBiZHuYS7vIxkkkcg gcndixoOpxVH/wCJ/LX/AFdrP/pIi/5qxV3+J/LX/V2s/wDpIi/5qxV3+J/LX/V2s/8ApIi/5qxV 3+J/LX/V2s/+kiL/AJqxVLfMvmXy43lzVVXVbNmazuAqi4iJJMTbD4sVQFvd+TtZ8i2uj6lqdt9U u7CCG5RLpIn4+mtRyVgy9MVSu28pfl7aWUuk2euQ2+g3Fwl7daal1F+8uY2R1kM5b1R8UMZIDfFT epLVVS+w/LX8qrHU5nttStIdFks0tk0qK6MfCVWk/fess4JIjl4KONVpyqTiqMuPy8/Ji4hlhnnt 5Y5phdSK2oMQ0yqq8yDLRiWRXNdiwriqItvJ/wCVNnaXdtYX8FpHdwiABL8MsQS4a7R4kkd0VluX aWtPtE9tsVcnkv8AJ+O3e2ilsYrZ72TUjbxXaxRevNCLeQenG6J6bRDiY6ccVQafl7+Uc1ikOp3d leT+pNNNKl0IY2lnnM7FYhKyqEJ4RipKp8NcVbg8uflr5T8ta2ug39vGJNMnt4oDdpIEUJIxCAsT ydmHLxoPeqqbWcHk/RvJOi6hqGlWzRSxadbF1toWb1bwxW8RaoGxllUE9q1xVGXd5+WVrYWepSJp J02/keK3v1W2a3Jjjklkb1R8HFEgfka7U3xVC3uv/lHaC2Z5dGkW6NY2hFrIFjBZWncrXjCjIVaQ /CDsTiq+51r8qLbUbfT5G0j17iO4lDKtsURLVuErSuNkCvVPi/aBHUYqpTa/+VqXV5aw29hdz2UV pLItrBBMGOoTm2tY0ZRxMksoCha/tDscVWR+Zvync2rGGwjgvL6fTLe6lt4o4GubZSzKJHVVo1KI a/H+zXFVaPX/AMnJZ2hivNBkZIRcu6tatGsLFArtIPgHL1UpU78h44qjNLk/L3VdRmsdOs9Punhi WcTQxW8sToztG3CROQJR4yrr1XbxGKofyB5c8vSeQ/Lckml2ju+l2TO7QREkm3QkklcVT/8Awx5a /wCrTZ/9I8X/ADTirv8ADHlr/q02f/SPF/zTirv8MeWv+rTZ/wDSPF/zTirv8MeWv+rTZ/8ASPF/ zTirv8MeWv8Aq02f/SPF/wA04qgLC08iahdXdrZWen3E9gwju0SCI8GLMlCeNDRo3U06MpB3BxVH /wCGPLX/AFabP/pHi/5pxV3+GPLX/Vps/wDpHi/5pxV3+GPLX/Vps/8ApHi/5pxV3+GPLX/Vps/+ keL/AJpxVDNpXkxNRi01rCwF/NDJcxWxgi5tDCyJI4HHorTID8xiqrcaB5TtreW5udOsIbeFGkmm khhRERBVmZioAAAqScVS+Ifl9JpT6qtnZfUUuJLNpWtFU/WIrk2bRBGjDl/rCmMKF+JulajFW7Rf y8u5oYLWDTJ5biS4hhWOGFi0lm3C4UUXrE2zYqj/ANAeUjO1t+jbA3CoJGh9GHmEYlQxXjXiSpFc VUodI8my3txYR6dYm7tFjeeD6tGGVJuXpvQqKq3BgGG1VI6g4qif8MeWv+rTZ/8ASPF/zTirv8Me Wv8Aq02f/SPF/wA04q7/AAx5a/6tNn/0jxf804q7/DHlr/q02f8A0jxf804q7/DHlr/q02f/AEjx f804q7/DHlr/AKtNn/0jxf8ANOKpV5q8t+XU8r6wy6VZqy2VyVYW8QIIiahB44qlts/knXvIukaV q2o2z2wt7CZ4lu1iPqWvpzx1KurfDJGpp7YqlU3kT8tptGi8uvrcQ8sW5maDSI7qKNVe5jkimPrK wlIcXEnw1oOW3QYqq3fkL8oLu2vrWa9jNtqc811qEC6m6pNNcPI8ruBL1f1mBPhQdAMVUZvy3/Ji dJEnuoplmmlup1k1J3WS4mlM7zSKZSrv6tGqw7DttiqMtfJ35U2UE8NhfwWqSrEI1W+DrE1vd/X4 niSR3RWW7Jl6faJ7bYq5PJn5QxacNOtprG3s0vJtQito7pUhWa4iMLr6cbovpGP4fT+zTFUJH+Xv 5QyaVaWN/c2Vy1sr1dLoRIXlmM7MIhKwAVmKpUkqnw1piqaeTvL/AOWflB5DomoW0MbRLAkTXcbq iKxc8eTVq7N8RrvQe9VUT5A8x+Xo/IfluOTVLRJE0uyV0aeIEEW6Aggtiqf/AOJ/LX/V2s/+kiL/ AJqxV3+J/LX/AFdrP/pIi/5qxV3+J/LX/V2s/wDpIi/5qxV3+J/LX/V2s/8ApIi/5qxV3+J/LX/V 2s/+kiL/AJqxV5zqn5b/AJeajquoalL5mWKXUTN60UMtisS+u5k9VI/TKi4RjtP9vjsSasSql9x+ Tv5YTyNKfMvpSGUTKYbi0iCN8RoiqoARGf8AdJ0jX4V2xV2peQ9JuNL8u+WF13SJvKujXk80rTzo b70J7a5iZEZxNGSr3fwVAKhVPLkK4qj9C8h+TfLOqLrGheYbS51FPrHptqtxHc0N0Y/Uk9UMs3qc YuPLlvVq9cVQGi/lj5NS39fU/MFpb6m15Lcuthc2xt+H1qWe3IWSNf3yLLT1uPMD4A3EDFVa6/Kn 8uLnRNH0aTzSws9Ghu4IFW7gHNb26iupBIerBXt1Cqf174qxnWvyM8pXD6dp9l5jsG0FInivo7ie 3VlMkcMDzQQRx+k0vow1Riy8JKOef2cVZnYeQPImmxX4sfMkCTX1zb3rMZLVEE9tqM+oq/G39A1J umhNCKRhQtCoxVST8tvy2h0Sx0qPXIprXS7241CygnuoHHKdg4hMkglkVVKgB1+Old64qlkP5Nfl idKsbaTX47W6t7eKG4ktLq3HqGJ5HTk7qZJBGJuK8tvgQkVXFWTfl55Y8meSvWW18yQ3kTQR2sCz 3ENUjSaadiWDfEWkuW+QA96qs1/xP5a/6u1n/wBJEX/NWKu/xP5a/wCrtZ/9JEX/ADVirv8AE/lr /q7Wf/SRF/zVirv8T+Wv+rtZ/wDSRF/zVirv8T+Wv+rtZ/8ASRF/zVirv8T+Wv8Aq7Wf/SRF/wA1 YqlXmrzJ5dfyvrCrqtmzNZXIVRcREkmJqADlirvKvlvy6/lfR2bSrNmaytizG3iJJMS1JPHFU1/w x5a/6tNn/wBI8X/NOKu/wx5a/wCrTZ/9I8X/ADTirv8ADHlr/q02f/SPF/zTiqnP5f8AK1vBJPLp dmsUSs8jfVozRVFSaBa9MVY5pfmT8pNQ02LUP9xVnBMpkjF4trbs0akL6gD9UqR8Q2rsd6jFUU+q /lEnqc7zy+vou0ctZLIcHjIDq1TsV5CoPTFUXeL+XFjew2N6NHtb24T1ILWb6rHLIm/xojUZl+Bt wOxxVTspfywvY7p7F9EuY7CMTXrQG0kWCIqWDyla8F4gmrbUxVRXVPyjaITLd6AYWVnWQSWXEojc WYGtKK2xPjiqtdTfljaS+jdPolvN+7/dym0Rv3/91s1D+8/Z8e2KoRdc/Jto/VXUPLpj3+MTWJXZ Wc717LG5+SnwOKoPUvM35b6fqE1hLo8cksTPEskdnCY5JYjbq8UTtxDOGvI14+Nf5TiqKm178oY7 mzthcaHJLfeoYVjazf8AdxRSyyStQ7Rqtu4L9ARiqFj82/lBJdNbINNaRLr6nIRDBxUm3a6WZjTa BolPGU/CexxVMZL38t11fSNKS1sJ7rXI5JtNaC3ilieOJDIX9RFKBWVTxNfiptiqxdU/K2TVI9Ng XSrm5eO4mk9FLaRIo7QKZmmdfhTj6i1rvviqjF5i/KB5LhXm0aBLeRYhPP8AVYopS0KT8oJHosqh JVqVOKon9KflH6In+t6B6DFwsvqWXAmNBI4DVp8KMGPgN8Va07U/yn1LUDp1hNotzfAqq20X1Znc tEJh6YA/efu25fBXFUPqWu/lhp1zq1vdWlmr6GLE6qwtYykI1KVooCzcaUqhL/yjc4qqDXPyfMkK Jd6FIZ2KIYzayLVY3mPJkqqD04marEDbFVY3n5avAk1nFpeoK9xb2tLNLach7tgI+XCtBxPqH/IB OKoVfMP5Qm6uYGl0aNLaKCZ7uQWqWzLcPOiCOZqI7BrSUMAdqb4qiBqn5RmFpheaAYUZUeQSWXEM 4JVSa0BYI1PkcVUItd/KmfVLXTbNdLvbi74em1rHbzRgS+sIyzoCtHe2kTatGoDQstVWSf4Y8tf9 Wmz/AOkeL/mnFXf4Y8tf9Wmz/wCkeL/mnFXf4Y8tf9Wmz/6R4v8AmnFXf4Y8tf8AVps/+keL/mnF Xf4Y8tf9Wmz/AOkeL/mnFUq81eW/LqeV9YZdKs1ZbK5KsLeIEERNQg8cVd5V8yeXU8r6OrarZqy2 VsGU3EQIIiWoI5Yqmv8Aify1/wBXaz/6SIv+asVd/ify1/1drP8A6SIv+asVd/ify1/1drP/AKSI v+asVWTeYvLE0LxPq1pwkUo3G6jRqMKGjK4YH3BrirEIvJf5Swm5aK+iSW8Mb3ky6kwkllhcvHM7 CXeVebLz68TxPw0GKpdd/lV+RV0nCY2hXcD/AE87J6rTKg/efYV5H4r7+woqiLryh5O1TUhJ5i8x 2es6Utg2njTZXiiBUsCpd4pUVwq141TkG+LlUDFVaDyt5K0vTL6w8s+YbfSItSVheI00NzHITEIg eEjgoAOojZa1+VFUF/yrP8nrjS4rTU7u1vJ/Tt/rtz9c4fWLi1VkjuHQyuOYWR0FSfgbhuoGKpi/ k38pW12PXFvIY9SiECJMmosBwtURIl4mUjiqxLt3NSdycVS+P8t/yjt7yxuLO9tI/qpshKJbv1y8 WmxrHaxqXl4oFEahvhPJeSn7ROKp/daT+W15cPNeX1pcVvTqcCNdRqIbpoPq7vEyMjDkvxEEn4/i 60oqkEH5YfklBaC0huIUgC8eA1FqU4XadDJ/LqU+3T4umKqrflv+SjWqWrTW5gjVURDqLHii2wtO AJlJAaFVDeJUHqMVTyw0n8r7HUNN1G3nsFvtJtTZafOblC0UDEllUF6VPI707nFUvtvJv5RW0Fxb R3NubW5spNMlt31AshtJUij9MAy7cY7aJEI3UKKYqgZPy2/JZ5Fl+swJKhBSSPUShX4I0PHjIOIY QLUDbqOhIxVt/wAt/wAmH5FrqFpGSWMzHUSX4zoI5KMZKiqIBirT/lx+T41L9KW2oraakJZZ0u4d TYSJJcNWVo+UjBCy/DVaGlO4FFU3uvLv5V3F9q98bmzhu9cW3GoywXaQl2s5TNDJ+7daOsh5Fup7 1xVLE8g/lI8d3HeXNhNHcyLxSO59IJBFZmxhiNJmL8IWb4id2PLriqronkf8odEkLabdW0KPK088 P1xHSV2inh+MMxOyXctKEdadFUBVASflT+RboELWoCQpbRkX5qkcZlZQh9TbedjXqTiqtL+Wv5Kz XLXU1xBJdMaidtRJdf3ss3wN6nw/vLl22/hiqP03yl+Vum6pFqVnqUUc8bwyOrX/AKiSG1SRYPUV 3YH0zcO4pQ8j9GKsv/xP5a/6u1n/ANJEX/NWKu/xP5a/6u1n/wBJEX/NWKu/xP5a/wCrtZ/9JEX/ ADVirv8AE/lr/q7Wf/SRF/zVirv8T+Wv+rtZ/wDSRF/zViqVeavMnl1/K+sKuq2bM1lchVFxESSY moAOWKu8q+W/Lr+V9HZtKs2ZrK2LMbeIkkxLUk8cVTX/AAx5a/6tNn/0jxf804q7/DHlr/q02f8A 0jxf804q7/DHlr/q02f/AEjxf804q7/DHlr/AKtNn/0jxf8ANOKu/wAMeWv+rTZ/9I8X/NOKu/wx 5a/6tNn/ANI8X/NOKu/wx5a/6tNn/wBI8X/NOKu/wx5a/wCrTZ/9I8X/ADTirv8ADHlr/q02f/SP F/zTiqQ32p/ldZy2sLrpUs95fLpkEMCW8shumZVaMqoJBTmvP+Wu+KpHqHn38rLHUVsZNG9WSSRo oHt9PSYSss8tsfTWMNIw9a2kWoTty+yQcVTye/8Ay5tvLdn5jubC1t9Kvvq5t5JbNUel0yiMtGU5 qKNyao+FQWOwxVLr3zd+U1j+l/rlrZ27aKyR3aSWsSszyySxIsSkVcs1u/GnUCoxVGWuvflDPbxz mfRIBKQEjnNpE9WLBPhYg/HwJXxG4xVba+YfyhntEuZJtGs+YLGG8+q28yAKz/HHJxZfgjZtx9kE 9MVa1bWvy60nWTpN/pdvBOBbv6z21ukJjufVpIJG4gpGLeQyH9kCp6jFV/6e/KH9Itp4n0Rp0h+s TFWsysaFkRPUavwlzKOAP2u2KoWw82/k/etCEGmRCWG4naSeKCJIvqssMMsc7MAIpA91H8DUahxV M/rH5epPqkV1ZWFlHo8sMN5dXUNvDBzuIlljCyPQGqyL9Jpiqhca7+TtvYyX0t7oH1SLmGlV7Rxy jXmyjjUswXfiN8VQujeZvyu1h4ksrKydpL2TTiohtXKSr6npPIIy5SO4ELGJj9rYbE0xVlf+GPLX /Vps/wDpHi/5pxV3+GPLX/Vps/8ApHi/5pxV3+GPLX/Vps/+keL/AJpxV3+GPLX/AFabP/pHi/5p xV3+GPLX/Vps/wDpHi/5pxV3+GPLX/Vps/8ApHi/5pxV3+GPLX/Vps/+keL/AJpxV3+GPLX/AFab P/pHi/5pxV3+GPLX/Vps/wDpHi/5pxVKvNXlvy6nlfWGXSrNWWyuSrC3iBBETUIPHFUR5U1XSx5W 0cG8gBFjbAgyJWvor74qmv6W0r/ltg/5Gp/XFXfpbSv+W2D/AJGp/XFXfpbSv+W2D/kan9cVd+lt K/5bYP8Akan9cVd+ltK/5bYP+Rqf1xV36W0r/ltg/wCRqf1xV36W0r/ltg/5Gp/XFXfpbSv+W2D/ AJGp/XFXfpbSv+W2D/kan9cVYVaflt+WFnem9tW9K4a+/SUjrfS0e5EscoZx6lHHOBNm/WTiqLi8 l+Q45NQdroOupRy280ZugqLBPcSXUkKBCtFaW4k9+Lcfs0GKr9a8seWPMAkg8xajFqmnAym00+Ro Uih9WN4iQE482VJCEZviXqDXFUpk/Kn8rZZrueWeV7i+QRXM51KfmyASDiW9XofXevjXFUFL+Tn5 cjV7S+tbxY4VeT9K28tzJN9dhktpLb0XYzLROMnxVVqiq7cmqqqS/lB+Wy3S3NldLbzvNFNczyXB uJWNvVoQhlkZE4v1qjBl5KRRsVZDrflH8v8AXLe0i1d472SztWsobqW6Yz+lJ6ZfnIHDOzeitWav f+Zqqsfm/Jj8n5rEWEoL2YiFusJ1CXiIxHFCF/vOyWyAV8K9cVRV5+VP5SXjxvcxRTPD6vps927E eu8buByc7VgUAdhWnU4qj9a8i/l3rVzdz6lKs63jxTTW5u2EPqwRrDHIsYfiHEcfCvgT44qxvW/y Z8i3+oabcWuqraW9mksV3C8zXDzxyujMBI8wCEqjISUbY1+0qkKsh03yF+X2najb39rdETW8xnpJ eNKrvylkXmJGaoWS4dx74qy/9LaV/wAtsH/I1P64q79LaV/y2wf8jU/rirv0tpX/AC2wf8jU/rir v0tpX/LbB/yNT+uKu/S2lf8ALbB/yNT+uKu/S2lf8tsH/I1P64q79LaV/wAtsH/I1P64q79LaV/y 2wf8jU/rirv0tpX/AC2wf8jU/riqVea9V0s+VtYAvICTY3IAEiVr6Le+Kv8A/9k= + + + + uuid:31e87cc8-6725-a549-8345-0ef1ef8f60bd + xmp.did:c9bf51ed-ce78-4684-8c6f-79c950f0668b + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + uuid:4316eaae-a239-b343-b07a-ef5c161bbdd9 + xmp.did:5b34e890-bd0a-4c3b-b958-15099ceb3b1b + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:5b34e890-bd0a-4c3b-b958-15099ceb3b1b + 2018-12-04T17:50:07-05:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + saved + xmp.iid:c9bf51ed-ce78-4684-8c6f-79c950f0668b + 2019-04-15T16:07:09-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + + Document + Print + False + False + 1 + + 612.000000 + 792.000000 + Points + + + + + Palatino-Roman + Palatino + Regular + TrueType + 13.0d1e2 + False + Palatino.ttc + + + + + + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 15.000000 + 100.000000 + 90.000000 + 10.000000 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000000 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000000 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 20.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 10.000000 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000000 + 95.000000 + 30.000000 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000000 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 15.000000 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000000 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000000 + 100.000000 + 35.000000 + 10.000000 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000000 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 20.000000 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 40.000000 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 40.000000 + 45.000000 + 50.000000 + 5.000000 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000000 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000000 + 65.000000 + 40.000000 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 40.000000 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000000 + 50.000000 + 75.000000 + 10.000000 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000000 + 60.000000 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 40.000000 + 65.000000 + 90.000000 + 35.000000 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 40.000000 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999400 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998800 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999700 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999100 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999400 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998800 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999700 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999100 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998800 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000000 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000000 + 90.000000 + 0.003100 + 0.003100 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 8 0 obj <>/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 12 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>> endobj 9 0 obj <>stream +H‰|UËn›@ÝóWêKñxÞe“XUÒF‰dÔMSYØž¤´,p#¥_ß ØÄØcÃͽsιO&70y¸¡p}{…æeð5š|™Qx­#¥8‘Ö‚¤Žpæ`¬Á¡òÑìÃ(šÁXXÙ¯“îO4I’æ#y‰ðz{ÈS†·á(á\jHÖÑ8]ÁsüdæŸól•Õ›<}1Ƈø +¾#â´ÊÒEîá›/^·¿žG£ŸÉ}4ÖÄJœhn Y!ÔlYV#fˆƒØ×󝿛²†´ªÒwähÁÌØ'(_Àç~í‹m}ï[_Ov';’iq§Û¨5êoS•>IIЈ)9 +ßQšq¢´Møñ/ÞP›íÈ‘4ù1E´Ð$‰5Å÷§av^XÐ8Æ„%ÊhÊr¤T¬–æÙ1'§Ä1·ZQÅ´íx©êx·=o¯8d”\ž7öá\º)8u/¨7†`ƒÆA–4#T0 +«c¬í’4-Þê%&AʇžÎbù ±íËÛr‰­i›¶öËmVmwQ$Ä£ä6Š¡yŽ‘(¡Ú!’ì:¼Zdi`TZíêò˜žJ Ap¨01D ׉ºÎ¶õÁ¼ ®4Úð\b“ÒÎ;/žOñ æ­£$\ؽã]=o1-bnÊjëW'È]Òl’ËyWŒ0å8H% søÑ6g=ÏŠeþwu„>lÁ~&Ï#²\ Gr–ýóÔ¾w…¹0m!ã™i“Ø ÎîÖ@Y½\ž¶€ŠÚó +cN×õpýhMpñjL$#–ÚÝö ¯Ì¼Ý³¡ÂMð·ñ_€“xñ endstream endobj 12 0 obj <>stream +8;Z\t$P(&s#_il.@6?a*fc"]2"Dl[[RcXR49a*':qd9U.!:Xae/93>i:`n;toJ)h\ +k52R$/AB(Gecmujc:.KLqIl8^);J?Gl*XDE4h?N7)L7)ZUH=;o)IB.>H@EN?4fd2+ +[Gjkh_aA`%j78aPLkaZ^bjYJ^Y#J%hplj#tKR2&YH,YD/%@CRKWL5C:5<\rWi(N35GC8UNI^m/8,O +'ojeh<\Mck`A(-EBUpZsru]f):4$:<[4]r:z!!!#7?h,'7=A:=K~> endstream endobj 13 0 obj [/Indexed/DeviceRGB 255 14 0 R] endobj 14 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 6 0 obj <> endobj 15 0 obj [/View/Design] endobj 16 0 obj <>>> endobj 5 0 obj <> endobj 17 0 obj <> endobj 18 0 obj <>stream +H‰„– xÇÇÿïÌäÄ%¤„pæ;‡ˆâŠ¥·b©]Ñr¥Õk©–삤‰HT,¡Em±ßÒåÒ)Šª«©Ú-±Ô²ÈI޵v®^zNß³´÷yzçyÞw¾yg¾ùÎÌæýÔ”´XTÃTH„÷Úžr-":12¹{PÀuü +¢Ç¥žîçüØYã’G$zÛ-xÌØ éq~ͪg½ãc#cl9×&¿åA/ÅsÀ3~àMvâSÇ{ÚƒjAÉ IÑ‘tºõv e·S#Ç'{úçý›ñndblà®’¡Àü:€ŒJN›êlžcQº«?9%Ö;~Ñ'ìr!Õ!Z(‘'æp$ÓSSZã?x¢dA8ÇÃx+ ÂÓîÞ]çcÓG¿æ•£e‘ZÒûä~Ÿ®¯¹ +»àýã'a†ITqÞžÿâÑÂûÖŸÏ›Š» ¾¨„ʨ‚ªðc¥žCuÔ€?j¢õyÔF¢.ê!õÑfhþmXÑŒÆA¼€¦h†æø Z -ÑŠw  ^Ä_ñÚ" íÐÐ/£:óÊ»¢º£zâôBoôÁ«x }ÑC„ãu¼xÇ@ Â` Á[Š·ñ†a8"àÒ9 +шA,â0ñ‰Q$â]$!c‚±HEÆá=Ö00“0˜Âçñ}|€i˜Žø31 ³1s‘‰y˜O{°‹°Kð|„¥XFÛ)ŸšÎÓN,Ç +U™ÍÆJ¬ÂjÊÃÚ¥*á ¬ÃzlÀ—؈MØŒ¯°_c+þ…møÛñ-Ÿ—ÈSØ‰ï± »±{±ûq‘C8Œ#ø?â(Ž¡Çq'q +?á4Îà,ΡçùÞ¡%(ÅE¨*[XÊXL_^ XÁj¬OùSjHÍ(’Þ£)´€S6åÐfú†vÓ*"ýL÷E$´h#ÚŠ7Å‘$ÒÅL1O,æü½8(Žˆc¢HÜJúÉê²–¬#ëË&²•l'»Ê²¿|]’ir‚Ìsd¦\(³eŽÜ,wÈ]ò<*ËÓ²P^ŲTÞRÃU´­ÒÔµ\­RëÕ×j‡Ú£Ž«ÓꜲ©+ꦺëaþÄü™ùœ¹Ðl3_2ß6ÿ¢}uuý¼n Ct¨n«;랺Ÿ¤‡è¡ú=B'éÉz¦^ —éÏõZ½IoÕûôI}FŸ×7õ=í0ªÕ ³a5BŒ–F£½ÑÉèa$éF†1ŘmÌ7V9Æ‹´øX*[jYj[¬–K3K Ë0ËpË«°š¬Õ­5­õ¬fk3kOkok¤5¶aàìàõÁ‡ƒÛ[Å29j8j;ê:½N÷ªäÖÀ@Õ$35¢æEãÝdÑZÚÄ좽¬A1Ùé=Â,?¥A&k°CìÄ!ñ£8Ë@šXY[Ɇ²¹ “]dw¯©n ¦³óå"¹J~!¿’yr·<, äOOh¥F©µP-UYjÚ¨¶©]ª@RgU™º¬n¨;þÃÍ0jÎb .˜ËÍ—Íw4t%]CjC7Ñ-u˜î¢{ëp¯Ãu¼NÖSõ,½P¬³tŽÞ¬·éú´>«‹ôýÀ†ŸáoF0kÐÚhgttkjL` ¦sŒ,c­±þ) [š²Xƒ¯þn BÜDXcܬ{B°µXƒVŽ^n ø28ï;Ë6Wne{ÄvS9Ôbªf°}8cóV#öfg8g·š8àl'f8 gg§ vÇ9ÇYÀqÌq”ßìÖÁ9Ù‘é~šÄ±õÎuŽ4Ç0ÇN¶+Åg|³ÅR ûýl{Ù¾£\Ñ-DëÛäÿddw¹½¶¼7PžpéÚ¥«åQ—ìåüe»‰ih÷aãÌo÷e#;*ø¼Uðêìõ+æÛC+–ÛGV쭸癧"…ãšg +½¸Æ)]j»[:ƒëñ¶¡¶Á¶(Àö†m·oÍ\ú-ÀVT2ÊÕ.{Pö1GãK¶•‰â¹@ÉÊâTàb~ s°¸eé£â™ÅS +o¿]üÊñÕ¾'Ÿn>]|:ù„øÔU­ÜXšê…LïÍ0¶8¶£Ï®Uüàöù¶b›ÛoeËû<³ˆq‚}á£N¸}ÁïQ—v¶ëÏÌf—«åÎSåV¹Gæó9Å·£L–ËËòª¼.oÈ[®qòÆ“oÉr6ŽË‡€Rl5Ø=}Ê`kñôWT{5P%sí²ÅîÈ +µ]åy{sÿç^›Ú¢rïóÆ·¨­žúÈ:·Ïqû ÿ»KêŸÏ<ÿ60˜n”ÀüºÌŒ›Ït[ΔZM³˜t…̾%¸ƒ»Ì»eL¿½L•ÛXÁ »{xÀlû’‰tYæ¢ìBæì&m>3ꘗQW˜»'ÝœÚÄü½Å¼<í¦U<®ág¦é(&òh¦qó8‹‰<†™ì"r3ÙEä«Ìä Lå‰LäIÌÇl¦r†›Ë×q¹$H’"2‘/~…ƒ*QeªBUá$U£É2ñ Õ£ Ê`Î]¦+BMdÎÐ Ô”ùלÙ8fS(µ¤©ô>µ¡åH™Š2ب-…ÑtšA¨#½Ls)“:QgêB]©uwÑ›zPOúfRoêC¯ÒkÔ—úá£ØA1|×ãhì¸$çJ’UEMQKÈX9†Y}ÑKêR¦v‰)ÌÔŽ’Líi ¥ÐXJ5u 4Çlþ\u¤léC«Mmi ­U(&ÐDÚh +úõjo²:ãßù¾÷=!mi›´I„Ð’4mS{é…@)­–"Š h6Ѝ­— PQ@°À,È/ˆÛPç…²E¶XÔêpxo‡c(Ô;¯Œ‰Û Ýï$ÁuÌgíÉóË9ßïËysÎ{?r°L“éìÖ¿á<ÄÖ¥|ßćä»\ÍA^Ïm¼“ßâÏäA^ÊËx¹<Äoò þ¿à0jí•Èð3Pk¤´‰6ÓVTÝ_ÒÏèj¡_S~BÓ©‘fÒÔD× *\G?¥é&Tè[èVZ@ é6º–ÓÏéZI­´šÖÐ]´–~Aëh==B¿¡ÇèqÔñ6 +¡ŠtÐ.ÚM/¢¢ÿ^¦?Ò^z…^£×Qß÷¡ºìG}y—Ò!ê¥÷èú•g;}DO ê|B‡é¥c¨?ŸÑsè +Þ è>§{Qi}CÐItOÒlzŠš©æÐó4—^@-ë¢ù´‡Ñ«´˜Þ¤%ô­ ·iúŠ;é¢î¸>–®F<ý˜ÕéŸÒ,T¿÷ézDÜ}è9–R7-£=¬Ì÷ñ½¼‘7ð|?oâÍü;þ-ÿžŸâ§9ÄÜλùYîä]ü?ÏâÞÏoóŸyàwøþ˜ñ>ʇùkþŠOñIþ+Ãßòin”Bj’¥!IêÒ$ð=°ÞvØïX°6üVûvëã0?ÁOr:e»9Cº¤[fÈ\9”÷ò+ü*¿Æ¯s.¼aüa´ôÊl™Ç½üäwù/ü¾¼PæÈ|þÿ“ÿÎßñqþ”ÿÆgx_Î3á=Ód‘,”YRÊTžÂSùFøÓÍ2SzÄ*R*S!¹#½êä5Õ·¾Œ®ò%m%¥iÛÄNJ§¡d26ÊwÈNí4 ¢Á4D–Ñdψ½¢Ýø =òWd¡dJ¢Dñ¼x‰ŒÛU§k´KÑÜ;ÂpÜ ªÐõOÐC|Ù*ël²+ên=N\ÍòÇwhæú†§„Xì}+:´š´]¸Ÿ—Ï(èÐD¾Ë5¦¹&$fâAÏ‘ëÆÌÈwÕ†Œ¬Ú˸šÐ A§E°Ã˜|9w᥹2Xìs[Ü–,| ÜϸŒ®3UŒ|袮HmE‚׌|.‰Cq퉭Wë㵤Ê`ŒHRDR?B(B¨ˆƒ1(Jˆd(»·C³õthv ­Gí†Oá”ê o%ÆxŒ¦Þ]¸þ¨7Áı`4aLÁ˜ +h˜;ÔãØêtŒC0í)ö Óâ)÷Gà7Ü€ßä‰À“/Ü)bVŤŠG[/zÔñpùea>)ÐîØyQ‡½}ĤŠ.Žj±0|‡X¸\l[.® ?¤°<¶lO¼Sj¢úÁ²øDi>´s­åÒ¥»;ãó&Ä2é¼jšaÌ®õ'IköúwnZ^'¶™o1ÒˆO°ä×M¬“eëö‰aÂÉÖtJ¸5¾+³[ÈaÉuòâdz’Ì1r€ø\ß»%<çB3o|Ë-Z<ÑT¤¢5zšVZ–"²ú^Ex£„ +À¸Þ訔ã„ÉüÞ²”ȧÜëÎ@½LÒ=)%p*‡Ý?,ËfB5IN¼Òæy¸ôí©ë:â¯5¾b(¤dN­_½cøbQuwahÑôÚœ€7×V"Ä1mÐìùq&3H8(LÕWÅALbEßäpçá=÷^É|U}GŒ¼LsÁ¨â¡N͇¸HƒQ;‘X$(õ!J}ˆR¢Ô‡(õA¾sQêC”ú>ÏB`šæ³XHUE‘ÈÊDdež‹¬LDV&"+‘•‰ÈÊDdeBȳ‘ç¸Èº@t]ëçÖ°.€uÈgd£r^©Òb²rR5³A«•½Ú%ÕÎH´çDœu~]ªÑ©j7ò~©æ¼@90˜\ ܬ6íÀ^àp 8 $7þ?„Ì­ŽÿA!<ª˜ŠÉl@Ÿ‡ÔW(JKÊüÃÒÊ%lv‡š&"^"oF£›/-)Ä£´¥Ú‰x—.ü⤨_tõÑÝ×?1µtdAÃ’ÂÊšÛ,›ÛyåÝ-ÇgO9÷’9+ægΛY{çÄËÖŒ«Ü ¿Y½¥ióºUõ£æÏ-7Wd,›2çЂÆG›ìÙ\Ý2í’›+7]5çÃÚM7L_S7aõÔºÙÓ‘g<š&ͼæ(ĵ+f‡8e‡¸ÿ•g¬Š°ö#R‘ÚÈQDN?"W¹Qã ¥EŒ›ÉDâT´æ&G«¨­(šeì±lãE¶ñ—VêH/;¿PzT9…Á•–x ·!ÿ#Ñž‰^÷б^®ÁM\Wß»«•V¶,KÖËx±eKòzA¶„eÙ26Ø2óŠyÛ˜Pbp€ÚL Ã3†’d ¶¤„&hy´@) M‡™ ˜†´éƒ’δîô•v˜¤m¾$ýÐI'4C™°ôvWF`J¦uÇsGÇÇÚë½çñ;ÿ[4ps³mìl_ÈS3ÿH‹vy`’Û9xëõ¥R~ rÅw–¬b°Ý̰ü`[åu>¹‚µ}ê»Þö³L^^†Ïó8ýa–ÐnÏ(wÚ D‰eì¼Ê/'> Мe¤àDö,6ë +À†êÃqøL臣ÁžGƒÞè‘z$‘푾—@$°A=’@$ôÞJÓßôÞJÏ¥ñ\:û\Ï¥ñ\Ï¥ñ\Ï¥õÞ +sÒõ!® ‰ ëOÏÄŸ)|¦â†Ý» vöœ‘ÞsSzÜ99÷Óãøìés'çFŠ3ˆ½Q†«ÑߨÆ|£(þ»Gïj’BxÛámëIf)Ô¿;Y¥è?õþº@¥Þ@NÞV&è}® y@ZJ=²m³úôßÌN²¹½Zœ«Ýjɳ9+ú*Ãlàà±eõËÖwo>°*q~ÿíÝøáÉÑ{çÔ?Üù]˜»x÷‰¥‹N^ŠN =e?®ã—÷î^ì-°:Y+/Ú§ì]»K þ®¡6*¹&~Ç®§a5“$¹[ħU!1d:–Ít ™Ž!Ó1d:†LÇ阮kbˆ] ²MÏ_Ä]ÅKÁ. +vlÄŽIØIÓn€Ý»ö”ÿ"Û~rø”írr”ç8Bäå8"䈎r•†hP\;U°S;U´Ž +«° +«° +«° +«° +«° +«YŠqƒâ£71)®‚â*(ŽHàÍôæ¢Þ¢ýÔÃñŒb,‹î‹³°º±ú°¶aíÃ:„uëÖϱÞÁúë–~Œ1oBǸß&âFê&d wuS"R—°ù ~ùp¨ +ý“¢æê“|„z©¹=þ‡›ª¬›Ù@ºØ„Eÿd‡{Ïüð7¦öí›8õè†'¿ð£çžš±G»þ·Á]oؤ +9³ý— Ø¡‘αJ;µ?ýööÉ•MÍËOõ‚#?3ÄòŸ÷Ôî|A{B{{&ÈŸG÷£W2ÿ¤n'€ ­HŒ!Tí9=“+U[õ¡@J Õ ;;»v-ìZó;SaO5í6Ømæw…{rÔäèÈqÌ'Ç|ƒŒAÆfsø™ÃÄMî†]m’Âxó‘YŒñUõb%E€äD¸’&jE€³•ÕùlpUŒUhô’&5v¨³ú3û+œÖ<‹Uu[Y)‹ý±÷Ñn—•wµ2gjÚÀ@ñ鈅·lîݺ¤¼Èf"Ší(Ÿ|jú (8¿ë±˜Ãá·M+é¼u¶ •Z ¼»W²Ûûžé »ù´Uò'O´_Y»$ 9%áñUÚ9k¾¥¸½Ý3üafNÄæWÿôâÊ|—'X¿¬æí=j hî÷C­~ãGíУãa£aÂ.„]» v™i‡a‡ãÜÝBä +&GqŽƒ‘ƒådK ‡`8¼.ª„RiˆýÚã1B‘÷9’`ÜÞ@ÏïøÝtí[’y z˜ßì[ýÖÖº‘ßÓiIJóîBo‡ÙدÌÐÙl†Ï«ÝÐj÷=ÝqãÞù6È"6UÜÀ½±ÿ%—@¡§]ýúY™yV!i•2騳zqVBH± xJkËšJ,| ¹åؾ¼%i/,{ŽÌöjOÍp&øÜÑåo k²5b9è­Ä©Ëg»üJpàÎ9‰ûó%(†Ïêÿ²‘Û˜aWÔÿ§–¹#WMG59ªs1rÄ ‡‘séUB’µÚEs´ñ^äÉ2ê>}OùëÊS¸ÔQ[SÃîjqçYì‚E¯¤ëMé÷ÌJ²l`%Oä©Óý¾ ÅÉÇn½¶2Yê¶;ÇČu¶Ð(Ö+û§Ù"eU§_º*ñ‚ÄéZ¥ööûÖñg?ŽN} š4â†),º. B—³º$]„. B—¡K‚‹A]—qn‡®K8 t]¿‹zQz^”˜x÷â.êÅxõfï¢^ÜE½ØÚ¨éè—EŠ®˜“¡BrR¸/B}›BB‡e4‡Œñ-c|ËÐ24€ CÈÐ24€ CÈÐ24€ g…Ä71„ÄèML!!CHȺ%+$ %+$ô¢‚ñ­`|+ß +4€  @(Ð +4€   : +4€  @(ÐJVHŒqCHŒÞ„„„'YÔ@ºA¿¿º¸ŠPDáS¸±–ñ.EÀDLÀâk{®1ÿùo1ç« ¥FkÖ¾}Tûè½ÃJ餯¿¹é›ß<±¤këå Ç?ÚοqŒ9~¿~Åáå™ ýÚ÷´ôÚ«,ø^ÏOfn;Ùq”•vÑžG3Ïk£Fª†³œ€F˜Ê/p-qêz½*eT¥œ­JU)£*eT¥Œª”cY¿Ù’s ªÇg}|¨çúÍ$å"¡J:º«Àw"®;š:•sk¢*m©RstÞ;:î8FÕ±D)Ç%G4,5ä¨ÉqÄÉ7ÔC€³pE:™‹ˆE”)Â;y‡‰ûÔyèCºc¹_D¤I`¹‡ ÓÊ ô«XÅYîµÉêÓgW.t÷„k¸ºy^÷Ñÿñ××vžèžòPzŽoYÝܽsg¿´®g½]§ÒÅ¥!íÜ'v¤­¼ÈÚ÷vŸÛ^RäœãýÕe]_šZ÷WMÒGŸH¹n¼ý¾p<šÌ‡/!(V:/a½9ùtžDÁ“(*3ŠÊˆ‚'QtY4Ë“(xEQ n.ªg—G\„kzÍ8P3ŽlÍ8P3ÔŒ5ã@Í8P3d”åÐ0]iP)°›G2.S.äœô5’£Ñà’”å’„ÿ-h ")")")")")"e¹4ÆM .ÞÄä’.I:—äìÕŒ¸¤‚Kj–K*h ê?X³°º±ú°¶aíÃ:„u "HQHQ5Ë¥1nbpiô&Ä%RµeB¶ŠIõÆøúd $‹?€"+¦@ö«ÊÛç¼Ú\BF t¿8cÍ+óª4W¾;¯¯wêà?öw^]êtÁ:.úù^mYº¹ú‘‡›´×µ›?«]ù‡ƒõSâ+^îš¶²Ùaï.ïúòÂ-¿ÞTm]¿îkÎHiÓ÷÷w®ï©ðŒïعäŠöjÙwûñ$4M-w:[=yT,y9Õã ‡#Çá$‡3Ç"G(Ç!G$Ç¡Cùb&‚äVéšÎN÷¥Ý8„€r\žÞä­%D¥ŠÝ¹(B“ðt؉•ä7IfÃÿZYöÝS_ö±MÜg¿³Ïw±cDZ¿8ŸÁ—8‰ãË›ÃΙ8 H˜/ ‘(ám¥„2^21Fyié6JlíÚVQ´J¨ÝªŽºvBÚÔUÝju*ZµnšöÇ´òÏ*MªT©Iöýýî.u•ý—¿&Ëò“Ÿs¿óýžïóù>OÒe/÷o{sdÓƒSuî²Æ0«²6µÝ_Uyᇞ]öî¹wƒ¢×±õ ëÚ >ïàQþk,¼§´4v~Ó—,—¿÷ÊO°DpæÐZæs_e~›Q)ÿ™¹iŽ™W€UsÛ°Ê5*-žÉÇáË'ô^&?ÿoëÖ#»Ù½ÓLµ[“ }§/+³fÊñ¬^Ä^#®B\…8·0Ià*Ä $ÆÙ¥q5¥NÔIã˜Ó NÔI£†Ò&uÒ Nšv1­¸®ÕØ£½ ß£ga’™°Nr;¤™’<Œûh&:4¬†”i(X «¡ê5T½†ª×Põª^CÕk¨z U¯¡ê5T½†ª×Lt,q‹71С_©#€=êðV³oŸ–žªüÚž§»-wÊõ Ë6×øF6vŽß{¨øÜoáUAxý¥ºïì›ì)¯ÖÜczÃ¥+2ïø“5žHk׺̓ƒŒeþÑü#Îoûµ™cŽ !c¼{-Yã[ +ºspE3‡LµQ=™j÷¾™(ô8€8`Ħ¶H*PÿÉÀ2¦ÿdà?øOþ“ÿdÀß õŸ íGÈ}ÈÝ[°O‹Ñ“ô-•'ô›ÿïv¡…,´è" Cd« ²&„ÿñÒrcsÕ”›Š$«H²Š$«H² +¥¨PŠ +¥¨PŠ +¥¨PŠ +¥¨PŠ +¥¨PŠ +¥¨¦Ü–¸‰.·Å›rS!7•Ê-`LM:×;tÝù*!*7ëKî“öâr³T{uB…‡¢JÓûþ¬“åyN°•º§þ±Í%%ÖÆZ.Ukõ¯îh‰¾F÷lè™\µéÅÒPÃaíÊug7]çNKËì¯oÿòD™ƒÒ¡Þ^"¸¤7NßøÝÅ@ÓÄ[“Ûnj Ïþ\tE|ÀòÂܳ­¡Àò†¿ß:vsè eØÆùO­{¬ï11ö÷As/£›‰€+p%®DÀ•ž8br%®D æëCk!×Yàô仑WÑôq>.š>.ö"¾xÛ¤^V²©H:¡:¡b’!&b’!&b’!&b’!&b’!&b’ME.q]‘‹71)C‘2UdT0 —L̵µ¾ê<ˆÞÊ G*¿”uO}ßÅ-~ÑÓ"Ý‹öŽmïonv:JTˆ±lÅ‘žá©ÞÝ·ö¶í‰FfÿzìNBÚﮩp†‡öÝÎP¬ïúág>y|ÙrÝë†ç?ã^¶½ɲק™U B {` +exa/¢‰=ˆ=ä¿W ®@¼ +±ˆX4Öë úg#™ŒµùéIš>˜„^“xú$}­Æ{„|©ë5 ½&©’k»pm—qÿnÂ-ÎdV‘m•ލ(ÕJåÃDÍ@ ­L”ªêÿV,™¢@‘§Ò˜«„dJ½šY* qMg¦XèLÊYn~q­‹³q‚·aߩ֯óVKýEycב·'²JõoŽ¯ÎžT\ie¢÷ZþÒÚ_é9°±´Ä¶AuJAû–ÿüdöû{¯ÕxíIAè;VóT´òÉÎïy£%4ÙVf…çÄR›}ö»ëû†_=~÷‡rMw ©¶ùY¯Xß…ñ´ZúàZ â-º{9 +¤w¥‡ƒÅM‹ÃÁâp°8ž9‹ƒÐcò{šöF:¹‘þOŸ+Ðq£ë!‡I_m­µ¬ “£&“ +„2hÂ¿Žœzì©ö +ÏÀ†Œ$ÆÇ»kc©º¨íŠ%{kltTn5l¶±%.·xîÓ¶æ?ù|©•·–ŤhæìÁmw¶ÜçzÅ^lÊŸþ€ç'8nî¥ÜkZÄm³ÛÑm«,ërT¶¹X/ûƒC]3û·Óú{œóæ1ö¹ûLž¶9äx¼r¤ó!$É$9“$9d$‡òÎ$9$­ç@’<>©+ԑƈFÍFD)ÐäáHyXOŽ”G…åMGÊÑò¸É %Âä©§´&ô¹Ž€cš-蟻”$L¨Ÿ,ôåxYXW´°‹,ìÒ“¾g ÒÇ…+à瓤'‘L„Â^ˆ|4òãÆþy¬~ÆGX?~Fö“îj°# vdñUìÈâ ³PÊ@Y( e ,”€²Œ‹<ðCÿěɇ… oĤ’¶J£‰&EÊFH/ qÛÑl©“¹á’:çL`èG#cÝžÒ1~ôÏGŽu^œûüÖ¥»ªÃ§:6'Ä–ýÛÇ“û>ßß;•zk¶­c"7rîÜ®ño²ÑkrEpÈæpú^¾|àµQ«”ˆ­Ç*ÒþtûÀ• ¯ÓÒ^åõ£‚“KŸ˜øhjäù¡¦Á¦Î†j%X¹-¶~YÏѾ½?}¼©‰ýÛš ½‡§N_›úò3Îêéäµêþ+[®®[•“VÚ‹ Ã=Ïw2ÛÙõÓÌŽ„Þ=íÀÙIß”øzßäDì¤ñ=fjÆœð‹ hNxxq-âZ#–K´Û"X ;46@Šr³®õ8SЧPÒ—iˆ5c‡!ÄCÆÿì$*%ÃfÀì¥"=¦H‹+ÉÂÊ¢… YÈ-hdA+ZØJ¶-Œ’…Q]Ï PqU1ó_Ö«-6Šó +ÏÅ;;Þõ®g½ë]ß×c/¾Žw½k³6¾-Nº¶ll°.  +„;…¤QÛ´¥¥¤‘•‡¦ä¡*å!€Ý›Ú´i£(ÚVªÒš´UZ)ŠUkÓïÌ?c`J%*8ž£3³ÿÌþï|ß9ØJšzq\@ÇV7l5LÓä}Ä€æa·™ó.Mf&O5µñQÆdv"³œ€å¦kÌF–ÜÜg³¼Noe4<ò½NQŠ"m›ŠÖ¾ìîj\Ÿ%ã) +Û'¯u·.R•`[b˜›¿åœræH‡{èÜ™«¯œQü—È q›í›¯Þ=¸cý²ÎŠœÆÞCós¹‘»cgýxþTÚNsNNã.Ì¢}‘Ái”²œ™‚)ósÓìøHÔ«u4P×½\3¹§˜_l9‰R +”Ze(£À ^ «!¹‰¶ˆ´‚”£œ ZÁSî%6žˆ8Œ€ô@bÕ!Ÿ—i]‰z-‘øÕ/Îù‘7ÞaC:w]Ú¼îCR©ítB«OÐcs×ãþvåûß™ÿ7Ò‘éÊ tXÔàêÅ¢ìlà…r£Bwë¹Ë³øpÉÈ̃ŠYie–º*³ÔU™¥®Èg»|l5ÔP Æ¨£@èäŒÿŸà{_æ IäÍ©ãíÂÎmiœ^osÿ´¤N&nªÆ‰þCü%w’w'*qYºôÁÛ®{CA‘+Kþ²,ìE±Ùs/6É3˜³¶s}LÿmHS§Âü(ü(üüÎ4ãÃ>ø=ð{ üuð·Ã‡?n¬¾þ>Ã>Í®p=`¬}šøÊ«±S +j¬£]ú¤OSè´†)0l l¢À&K`„#–À1 +³NPà„X ¸"|ZPï5* ï×J 9žHêòÝŠÝ !2 +#ÃÆ’ˆ=K>®/XPÅ +L°/@ +âÙL1‰ë‚㈽èõˆuNDp‰ÚmòÆLâ¤ò¶þ¼ÚìäDײ©÷G}@(Ÿ!¼˜/µg¾µ|_…»àmê²ß­3§G‘&OÖמσ{W¬Š,“9¿ñÅÕ?ÝÂo[>ñôÊÝ-`ºç‘&_Ù:¸ˆòÃëFZýN>^Tçp8ì™ [ŽøE—ldGPÎ.8ÚÛøöä—.^’xßžÁ+Çz*&^[e¹!Ë‹+ö9œlì©yjkÛý¥‚cÂe¼ŽZIñ;Nibí±0ÉRÕ‘¥3%ñ®ÉÄK× Í½7ÑTÒ“Œinp•ŠÉÖÌ×àkú“¬G~SšzH¶Z›Qf]Ñïz­5QúÈzX$*# Q@³Â[ÿ½Q5Àw‹ë fÒÄà^ªƒœW'ÏZCÖ¸&µÇÁ™t0Œñƒ/åT=d(÷a³h lŠâLÿšõ¯­É²Ûm¹þÝÛºVœugyŽlL™h{a|Ã#Ѧœ.ILôÔ}ø£³ZI@!Fwº®¼^ÕŸÝwÔ*RL³»ïý%£@|ËæŠ…|Ì]†Œ,Îgú”À”0§”¦”¦”ÒÀ”@À¨_"¥gÿœ¥Y§Ï& +f0R0O(˜MÌ&Š9›(˜M,ÍæÒ…ùC¤C-ó‡ƒ&Y'?ï*CëÛ}˜|˜|à$8&&&&&&&÷ì6ìLý,²¿Ë¹ä"¶)lpΘ0…-!)…ôå6d¬Û¦ð2œ<ØrØ +ØjØ0lvvv vvöØa…Ý…éÛxâEhK-b›j{£\c„£™‰æ£Pe³9 ¬¥n¾ø“ßóò…»¾9QPÿ“þ×7üîè׆Ž}‡ÿàÏ|áüÝß}ý³—û¾Ô¾÷×ÇæÝøÙôí-×tì©sdßåVqùÑ@w)Ø ÂT¦U3¹Çä0â Gš À|“ãÈw§™Q+g¨Mµ)µ) 6Ô¦€ÚP›Â¤tÔ¦p,À/ô.›­€•åZ k3ÞÔf×\¨^H ·z+¡±6¦±OöšÌ$ø yñƵ:õ°£77pvýÍAC[ud&ñaI€* P%õC°°Ã°—`߆}vöì#Ømؘï'\„ÁûáE x'ï$pL=BK½ÕM”:‘,S(!Ò4x²˜7& J°ã?õç¡ÜGH»'*s^B\;¿¨ó¹jÎÁ¯¨N»=“Þ®nÞ{êÆ@q]sžûÐù‚xgdËJ½õ(™ûN|8ÕÆˆ–·É™>åVìBjóÅ¡K½ñç6eKbs‹§Ê+9²lÞâ¼gßð¸>Ùñüø@®kì)9'¯xz® pºD& Þõðã?à÷”yĹËM훾ï›ëëCÞ&ÒdqA“Wr³^Õ¥÷ª.àDF>dù É:CFÀ€=‚´EÀ$6b2d Ñ’zÉ|ü*ßè+ á~qšæ&泬‘>üî¥õ5N¸%ÐJVF³<&ƒ bW®Ÿk9Ö®½Åäq…ÞÙ5±CÊÑ%î~-Ä êèJyÉ^®Ó„.Š‚q¼ÚþLÇæ$Qp•™Úgãëz<%}ÕÕUR¶Ph«ïÝcãeWvɹ«ÇOÇAte¼3ëÍk;Ý‘]Pšã>¿½¡öÔ©‰¶³m™™Lãxî ÷>ƒâû\ÿ§Y@XB0£†öåÔçF»ñ¥Y²Š-YuÂ/I3MtÑ :Ñ *•GÙʳ¨T#Yúd”€^2ŠGÆ›eŒj‘Q2*PFʨ@(£eT Œ +”Q2*PFÊf?á"¬Œ^Ä(ce,ë*•‡­ªôå¤R*TJ5UJÅNUhƒ +mP¡ *F…À¨£B`TŒŠì¨£B`TŒjªÔ.ÂTêáEt•j,±1UÆX” ¿ À/×GY‰ëÛÐl‹ £+yG^¤µ­}Ç‹U½ó+¡k»:ÞŠÚŸÍåoÚØ>¼»4ª½urKË'³ƒ_]+e™_ßÒÝU—/ï«îT[\¹+GšÖž(/xîÀšzµjÙäÓ¡åîªeõ[»_úmÆnwÔô‡õ÷>^ÍøšÕÏâ,$Î¦ó‚ ˆÓÔñ@2 ^ «?ÍîUãZ­1ßlFɯOsLctàUð*x³œ+súÚn‹bº-ŠI>k{þsàçh÷×g|ƒßð¹Ío¨©9 ‰þƪ?`'¾%w„Âv½MðHSÌo¢UšìÊsºÖ)™cÑ{nG,6&‰Ž¢º¦ªÆP–V[™¨‰uDƒ6^ä«"¢R]Yò÷„Zå˜ÿ”xÑ>Êóó».¶ÔØíîPÅrwf^M"Ù½^ñòÓ¬¾ îý-c}Ä6Ü4ޝMP†ÒL„Êbÿ0?f®¹Ë€eÚ!¿ˆfõ²a½âCˆ„ [Î"l9‹°~0ãmf¯@~ü羡[÷or›ô•×"²‘M¸Û¿ßð7Àß`øƒiÖ‘? ØðGàþñQ…Æ>³Wc‹ê¨p*܄РÎÍ…Àã7¹˜Ù_ÄþCzÕÇ6u]ñó>üží|9ß!Nl‚“8!8ŽqI %À2²FY !JQhG…µkø¥Óƺª-”•v´*Ó†¥™D³ª*£¥S;ÔîZ•U‘ÆèÔAɆ¦j++L‰ß~çú=×8¸ 5ÑO¿ëwï»ïÞsÏùs!äÀ€šb@S hŠM1 )4Å€¦Ðšb@S hŠa Ó—œ$.LÓ'±„É€0P †HUü6Õ¤éq«Æ¥Êh·«jþGT'çÎ7¢JmŠ'©/WlWêá'¿ÒÙ¥)­+òóêV¶.ß,÷;YW]9ÕM3?xÈãBµ¡*Zź¥ ëªËÊ‹²åiÝŠªÉŠ$¹Ö‚ë×òo6¬Èw•Î U tú^.XRàÖÜRK‰ár»™38ÖòÎãëTø‹ñ9ßêU=ÓF¬ûU˳{wZw7áó>ó¿êe.ÚOÓrû)Ü“$Ô¼¬î¤¨w[u² œcqà|üy¥ÅÕ\ÝZck¬1µÈõŽê°¤pí48ê ³Q¼çÃn\£!Гzt-GÒ)Ìé>[P–›Ýz´«çÅÍÕ5—Gòú\Ý 5«dãÙ¡…µÙ½Îø‰»?ð–t!äSU¹U×[•¢|ßúØùö5œÝÑ–›•«g)¢£¸²äwg›b¿6ðL½§vÂm(ä_§BëêÊÅQ˜Ã2ÌÙø”Ù»„)8¤KQÒă¿4)l¹Ýxž+wÈ[SÔ'GE¹ÚTTØË¬ÁW°ç"¿Ä›Îã=[[F ›!eËpÉP´$ßë÷ùDÆì™¡Ã¡¼ÚŽ'vnß²!§47hk þ¡,Õ?°õþ5«ÝÑæoÿôãæîÇÚ+Œ©‰—<ùnïüއYó¨´çDoÕ g³®7ëš»Ô3wת¡çVm_*=SïÉÌ/t³)äšK±SòÑù9l‹JÔœ'•£(œîÖƒ0?'=ˆðƒHÜcpÑC²™ìÄ9Ãk)¦7Qy¢êcaϟׄ`äPÄYøø›Ô¸HέŒ;EST T…36´üðbÙà•†M‹³uÕá*hvËNiðo›W´î^Ú#E¾ZäP•‚¼…9Šìš¿:vOý·ÚKÅ_"*º³vë¯óKêt]7:þÛô˜3ÇáPÜm›¶•ä<‘:Køõß{Ò·.§õš4ÃÉ™ŽT¿ú}æ±MWwL¶OVfs­g‹`¬õ†v`ê=¢¬ “íSÛ³Ž‰§IÚ_4ë‘l£…öÉ×i£:N¨D-Úë4 µÐZi˜vÉô“¡”ÓJôo” ù~˜Bxïu\*Äø…ÀwY2r`)Ð ,yÇ»T{;V’`®Äºá»àûÀ›TÞû0w«[Ì`=Ë02FQ<` êqÒå +IÍÓø]ÁmÝC³ñ¼Lí¥võUª»è^¥–ÂJuÊCT¯¾=mv¨@ÿ yð þþu\æ¹ÙÖyß Þ7ïÙÞ¯_¬éà5òú’!wQ­Üe^¥‰µ¥‚ו Œ¥~ð÷T‚öì7.e:4ºk®ÃÙ1ô1êf;¥jö¿^4Lw;^Åy÷Ñœȼ¤Qƒò)•¡o³vÖây¦1—àÝ @«¢.̓³¤ìe|ï%ØbãÜø~Ø«^~Äëzgx‘}Ô¶ÛGŸ¤¯i?'ß39&0nýs…˜#kXÀvç³—VÆjŸš£òQú°[ýçwêØG…_ò;xß~ga1Cøß(l;J¥@…8#F7Öe— qØ'üõ3p®Ø7ÑÁ[ƒŠsí¦=<sÃ·Ì øíööQöö½ÔÅëþ39Gµ°U'pBî§r¿i‚%ÜýÊz ïgsܰïòº9&ÄÜð1ö›ñíåbð©TNkÅdÛ‚ýívl?•EñÌ1e3Öèï¾Î…í2„­c޵bí!Ž{ÄÞË"öÿÜŸÌȉßCìÿ©,Ú¬ˆƒTfíàøMeû\ mñ}3ÏñŠxºSf]bm°ÏÖ>÷Äù§~oœæM^±°Ø + +'Gˆ¦úÀO€öxÿT|ìïBÌ­à3Lœƒe+Û¦¶ì}³¾ ­ƒÚ}¶î°ö‰1¼.Kãì¸S¢R%Ãòû#mk}¼æÜ8ì=MESö±ßˆk¿bœ…Ïÿì|$ö Fì—aÖ àE¡-}æsB‡"æ‡ø 4a Žçp^¤~ý(õ³MØès;Ñæ\²“ +3ê¨0ëÚN¯T¾Y;ÍË)<Á¾Ëþ—Êé45Á·±/×h¢N²8Þ¦ÕÝtœF-.»SÿçøæµÙÖçÛ1kÇqßRϺÎg5D³D]ˆq¢ÆLñ;flÛ'i$ëåA®¡¹zgûi<ö9~Èõ‡½/±&˦¢~娳|R|Óª ˆbë€ï$k*× ®Q9Š÷¾ž®NÐZÌŸ©;”¾ÿÎøöñ»¬ŒÅÒõ[zQk×éýÑQ{c¯¥íOõ‹ÏÏ󖌻Ð5œÃ^ Z½š°ÖIʳÀ•$ÆïòðÔ+À à ðàMàaõnj72bëÚwÇÎo¶6›‚ðé zˆvk†èï±ê©YØïù$jï㔉sž'â`/-vn E:Õ;oP«ÓCËô·¡W ¨é ÔÏk~ÌÍí7€jЏ^¯ÿ¬_€MàîÅ>Š1ê;ïE_ˆâ÷tê:ÚUà«ÈE.êÔ +“7P‡z©^¾F9x·C>aþG¾‹‚òg˜k¥SК7ÑF¿´‡fI˜ÿ’ÏÄÛêò[ïÍ’'QKÿ œI5r5J¯Q}ù49”‚÷`ÜÀ}¤)ç±ç0Æb~¾Ê—ÍO¬»h•2nÞÏäZç³È¾5À€Z Ð\ë>Ûa›/?ÚâyʼÀ\`1‚V_Pø¾`œß†„sªnõL +ÐR)jNâY+ЭzC¶ +”%±ȶ~{-öYíÅXóé/ R/™¨¥2à_õøíKó*çLà-µÉü·ãGÔüöË=8ª«Žãßݽw÷²‰-¯F,‘¹JKó`Ûi©l@  +!t¬0²I›ìN*TêH+´–VªuFÛþÁdŒ2bRí¤3NÑÚ±Á>T‘>§:týœ»7dÙâgÄ?œ›Ìg¿ó;{Îï<~çÀì§±³o$öVksÎóñ#Gõsð)öÊÃæ;‘VÝn?Êyõ•…úÈ_¥=ìç ĉÝá—t¿ýȬ÷Îû]h©ç¿ù<ÞÈЪ¼ÍÓ¿ÁÏþÁ“,·“õô{ÿýepxSœƒtswœ ;(÷Yäçàä=ãß[·Àf¿ž9¯?JÞ?¥p |•z gÈ{iî¿÷ ¾W­3Þ~-·’ø OÜ~+wÛâBb'U>ˆu‚u øez!æl($Ft°_̽fbwéK”ˆn盜‹æžb0g÷Ùqë°2 „‰_S/:šµ5N¯>iˆÖr>ý“6‹½›öoÕZç§èwä^Žcã Þ½ª7ßöbè$ïLžîÝKx¿gæ3Ï ;GŸ?F[Ço9·1‡oЮì{Té×¼È 5 bmd0–B¢qÆø˜3tÈ.­1ØW©¡«Æg“Ï묕¯ã»Ój²ösß0ðm»Œ¼_)é½u ýšlÍ̽íqˆõnðÓÑkéë_5ÚàÕ[L›>±ij0Xó£Œã×è ­‹üYw2îkåk6¶:9Ã+¸=C¬í‹²¨9§§ÚÕÂl¯íÝm°Ïj¥é§÷”È$58Ðß9×¢7°ÞN°~v17÷kŽuL‹ÍÝ?MÞ¡Dx/ö~tGc_fÍ|‹9Ù¥&“ç­™çÈߦ5Öˬ—SŠzk£uñ.±ˆ¶‹pŠmÎÔ‹pŠÒÅõ=›ÒÕöË*‹ÆàóŒýÇ>GñÝÃÀk06EñgDì·*sØqÎSÈçáOp–4Œø›ÊâãàE)~^e%£à¨’ ±,œ¢ì_XC 7¾ˆüHe¾m=É|ô#Ãð.i0e`JäÖ 7°èÛJB™Áá%ë¤éÓÚý%ÒÅÞON¹ï*iüÅ˜üÉ3>5öç)óCì£h/G=p–ÓÞÊ};ýˆ=‹„•â}Œë rr r6b•Ôr%ZhO`]ìç½û4çK%k븾yŸ}u07`‡ôH¸M}ÖW¸?Íø¶çÎ[KµÍZOî>‘Ä»—§‰!;5ÞÞ‹ý ÎóÌy¥™V{x„Êí}Ü“F°W&üoðÆ0 f|Wã7ã˾<«¡š`:Ä` +L ·å^‚û@[î<¼êù{8Öú0ÿ-Ì^QÖr^u©-V®ëmG ‰Ãc}–†÷…®ƒ1Ä‚wˆ%èqä{¾$ž†LlÝáÇÛUÀ]™;Õ>|¹OŸ†ùºƒ¨®¶*Á[}’·›«‘Ä]ÄãG¡ ˆï÷"?c=¤˜¸bW-åÐo‰Ü‰kTeÎþð´JLŒ o¥‰ ŒÁ¬ÿ&ÒF’WOÛ½˜ðgw‹J(G»¹÷`ûXóËzqƒ×Ÿb÷âFÃ…~ƒ7†bü˜–Wî-x=Ž|y?ÞQ~þ›ƒñÑŒýR_ãùä2àN°Èø®ÏÅàWÏ·¯äå?_f +ÉÏG![@£Õ˸7*Ú©Vkoîof-]XOÿNúël8i?¤yÑorWé'ö&Ýç_Dë.M(} ˆzámôpöƒX7a›§Lãð8D×ø·ó|è7ÒÕÇ.fä;<‡NæÓ8Ä5Ò‡_âÚCŒžr7Ï„zžeOIKy¦­ã96Ÿ§}©ü„TÍÍiê¡!|gÆHiQrÎsÒͽyæÍ>Nɱ¸’›Ó‚Ò!r3]ðÿBHŠžÔAÔÏ3)þâRXÖJY^ºTùv) y=¢kHåu }»¯GÑËÇT£ý” Y#HÓI_é¦ÐA_ëªÐ)_`?ëë–n +—ùz}¾¯Ç´>¼±6“ÝÚÕÞvW»×­™;·¦jîÜJwZ"1ËMf³é”[›éÈnîIuUº‹;7T»,>ÍmÜšM¹+3éÍ=í™În¿`2v½‚ÝnWª;Õuwª¥º~é²Õ‹V,oN7÷´wfªVd:š;/ß8˜rÛ»ÝfZmkï¦c©·§«¹%ÕÑܵÉÍ´ºõ”è1=J.R­2Êj«ºÔ®6Ý¥¹Ú 5šËª> endobj 10 0 obj <> endobj 19 0 obj <> endobj 20 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 22.0.0 %%For: (Nicholas Carter) () %%Title: (domain-serialize.ai) %%CreationDate: 4/15/19 4:07 PM %%Canvassize: 16383 %%BoundingBox: 39 -416 553 -158 %%HiResBoundingBox: 39.9880367442929 -415.281456953644 552.988036744298 -158.281456953642 %%DocumentProcessColors: Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 244 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -792 612 0 %AI3_TemplateBox: 306.5 -396.5 306.5 -396.5 %AI3_TileBox: 18 -752 594 -18 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -425 150 1.51 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -425 150 1.51 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:0 -792 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.6 %%EndComments endstream endobj 21 0 obj <>stream +%%BoundingBox: 39 -416 553 -158 %%HiResBoundingBox: 39.9880367442929 -415.281456953644 552.988036744298 -158.281456953642 %AI7_Thumbnail: 128 64 8 %%BeginData: 10190 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45527D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D %7DA8FD047DFD1EA87D7DFD3EA87D7DFD1FFFA8FD1EFFA87DFD3EFFA87DFD %1FFFA8FD1EFFA8A8FD16FF7DFD05FFA8A852A87DFFFFA8A8FFFFA8A8FD15 %FFA87DFD05FFA87D7DA8A8FFA8A87DA87DFD04A8FFFFA8A8FD07FFA8FD07 %FF7DA8A8FFA8FFA87D52A87DFFFFA8A8FFFF7DA8FD04FFA87DFD16FF7D27 %27525252A852527D5227522727275252A8FD15FFA87DFD06FF5227525227 %7D7D527D7D27525227275252A8FD07FFA8FD07FF7D27FD0452A87D527D7D %52522752275252A8FD04FFA8A8FD16FF7D7D52A87DA8FF7D7DFF7DA87DA8 %7DA87D7DA8FD15FFA87DFD05FFA8A87D7D527DA8A87DA87D7D52A87D7D52 %7DA8FD07FFA8FD07FFFD057DA8A87D7DA87DA852A87D7D527DA8FD04FFA8 %7DFD21FFA8FD1CFFA8A8FD1EFFA8A8FD1EFF7DA8FD3EFFA852FFFD07A8FF %A8A8A8FFA8A8A8FFFD0EA87DFFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8FFA8 %FFA8FFA8A8A8FFA8A8A8FFA87D7DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FD217DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8527D7DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA852A8FD3EFFA8 %7DFD3EFFA8A8FD18FFA8FFA8FFFFA8A8FFA8FD1DFFA8A8FD16FFA8FD05FF %A8FFA8FD1FFFA87DFD17FF7D527D5252A852527D527D7D527D7D7D52FD16 %FFA87DFD16FF7D7D7D27A87D52527D527D52FD057DFD17FFA8A8FD17FFA8 %2727277D7D7D52A8527D527D2752277DFD16FFA8A8FD16FF7D272752A8A8 %527D7DFD045227F87D7DFD17FFA87DFD17FFFD05A8FFA8FFFFFF7DA8FFFF %A8A8A8FD16FFA87DFD16FFA8A8FFA8FFA8A8A8FFA8A8A8FFA8FFA8FD18FF %A8A8FD3EFF7DA8FD3EFFA87DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA87D7DFFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA87D7D7DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8527D7DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA852A8FD3E %FFA87DFD3EFFA8A8FD3EFFA8A8FD3EFFA87DFD17FF7D7DA8FF7DA8FD047D %A8FFA8A8FFFF7DA8FD15FFA87DFD16FF7DA8FFA87D7D7D52A87DFFA8A8A8 %FFA8A8FD17FFA8A8FD17FFA8277D52277D7D527DFD065227527DFD15FFA8 %A8FD16FF7DFD0452A87D527D52527D5252275252FD17FFA87DFD17FFA8FD %047DA87D7DA8A87D7D7DA8527D52A8FD15FFA87DFD16FFFD047DA8A87D7D %A87D7D7DA8527D527DFD17FFA8A8FD22FFA8FD1BFF7DA8FD20FFA8FD1DFF %A87DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA87D7DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8 %FFA8A8A8FFA8FFA8FFA8A8A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA87D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87D7D7DA87DA87D7D527DFD06A87DA8A8A87DA87D %7D7DA8A8A87DA87DA8527D7DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA8527D7DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA852A8FD1FFF7DFD05FF7D7D7DA87D7D7DA8 %7DA87DA87DA87D7D7DA87DA8FD05FFA87DFD1EFFA87DFD1EFFA8A8FD1EFF %A8A8FD05FFA87D7D525227FD0752277DFD045227A8FD04FFA8A8FD1EFFA8 %A8FD1EFFA87DFD04FF7D52FFA8FFA8FFA8FF7D7DA87DA8FF7DFFA8FF7DFD %07FF7DFD05FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD04FF %A87DFFFFFF7D7D7DFFA8FFA87DA8A8FFFFFFA87DA87DA8A8FFA8FFFFA8A8 %FFFFA87DFD06FFA852A8FD04FFA8A87DA87DFFA8A8FFFFA8A8FD05FFA8A8 %FD04FFFD0652277D7D7D27A8FD04522752277DA8FD05FFA8A8FD09FFA87D %A8A8A8FFFFA8FFFFA8A8FD09FFA8A8FFFFFFA87D7DFD045227522752277D %7D5252A827FD06527DFFFFA8A8FD06FF52A852522727A87D5252A8525252 %275227527DFD05FFA87DFD04FF7D527D7DA87D7D7DFF7D7DA8A87D7DA87D %7D7D52FD07FF7DFD09FF7D52527D275227522752527DFD09FFA87DFFFFFF %A87DA8A8FD067D527D7DA87DA8A87D7DA8FD047DA8FFFFA87DFD06FFA87D %A8527D52A8A8A87DA87D7D7DA8527D527DFD05FFA8A8FD12FFA8FD0BFFA8 %A8FD09FFA87DA8A8A87DA8FD047DA8FD09FF7DA8FD15FFA8FD08FF7DA8FD %12FFA8FD0BFFA87DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8FFA8 %A8A8FFA8A8A8FFA8A852FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8 %FFA8A8A8FFA8A8A8FFA87D7DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8FFA8FFA87D7DFFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8 %FFA8FFA8FFA8A8A8FFA8A8A8FFA87D7D7DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8527D7DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA852A8FD1FFF7DFD3E %FFA87DFD1EFFA8A8FFFFFFA8A8FD09FFA8FFA8FD07FFA8FD05FFA8A8FD1A %FFA8A8FFFFA8FFA8FD1DFFA8A8FFFFA8FD0DFFA8FFA8FFA8FD07FFA8FFA8 %7DFFFFFF5227527D7DA87DA87D7DA87D52527D527D7D52A87D7D7DFD05FF %7DFD17FF7D527D52527D52527D527D7D527D7D7D52FD16FFA87DFFFF7D52 %A8FFFD047DA87D7D527D7D527D7D527D527D7D52527D7D7DA8A8A8FFFFFF %7D27525227527D525227A87D5252A8FD0452275252A8FD04FFA8A8FD17FF %A8275252FFA87D52A8527D527D2752277DFD16FFA8A8FFFF52277DFF2752 %277D5252277D275252A87D527D7DFD0452272752FFA87DFFFFFFA8FFA8FF %A8FFA8FFA8FFFFFFA8FFA8FF7DFFA8FFA8A8A8FD05FF7DFD17FFFD04A8FF %FF7DFFFFFF7DA8FFFFA8A8A8FD16FFA87DFFFFFFA8A87DFFFF7D7DFFA8FF %A8FFFD05A8FFA8FF7DFFA8FFA8A8FFA8A8FD1EFFA8A8FD3EFFA8A8FD1EFF %A852A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87D7D52A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87D7D52A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87D7D7DA8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87D7DA8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8FD1FFF7DFD5EFFA8A8FFFFA8 %FD0DFFA8FFA8FFA8FD07FFA8FFA8A8FD5EFFA87DFFA8527DFF7D7D7DA852 %7D7D7D527D7D527D7D52A852FD077DA8FF7DFD17FF7D7DA8FFA8FFA8FFFF %FFA8FFFFFFA8FFA8FFA8FFFFA87DFFA8FFFFA852A8A8A87DA87DFFFFA8A8 %FFFF7DA8FD1CFFA8A8FFFF2727A8A82752527D27522752275252A87D527D %7DFD0452272752FFFFA8FD17FFA8277DFD04522752FF7D5252277DFF7D52 %7D5252A85227525252275252A87D277D7DFD0452275252A8FD1CFFA87DFF %A8FFA87D7DFFA8FFA8FFA8FFA8FFA8A8A8FFA8FFA8A87DFFA8FFA8A8FFFF %7DFD17FFA87D7DA8FD047D52A827FD047DA852FD047DA8527D7D7D277D7D %7DA87D7DA87DA87DA87D7D527DA8FD1CFFA8A8FD1EFFA8A8FD20FFA8A8FD %04FFA8A8FD09FFA8A8FD2BFFA852A87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87D7D52A87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA8A8A87DA87DA8A8A87DA87D %A87DA87DA8A8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %FD7EFFA8A8FD13FFA8FD1CFFA8FFA8FD11FFA8FD0BFFA8FFA8FD07FFA8FF %A8FD21FFA87DFD12FFA8277D7DA8FD047DFFA87DA87D7DA8A8FD047DA8A8 %7DA8FD067D527D7DA852A85252527DA8A827FF7D7D52A852527D7D7DA87D %7D7D527DFFA8277D527D7D527D7DA87D7D7D52FD087D52A8FD17FFA8A8FD %12FFA87D277D5252272727A87D52522727FF7D52525227A8275252522752 %52A87D7D5227275227525252277D7D52FF5252A87D525252275227525252 %27277DFF27A8527D527D522727A87D522752275227522752277DA8FD17FF %A87DFD13FFA8FFA8FFA8FFA8FF7D7D7DFFA8A87D7D7DFFA8FFFFFFA8FFA8 %FF7DA8FFA8FFFFA8FFA8FFA8FFA8FFA8FFFFFFA8A8A8FFFD05A8FFA8FFFD %04A8FFFFA8FFA8A8FFFFA8FFA8FFA8FFA8FFA8A8A8FFA8FF7DFD18FFA8A8 %FD7EFFA852A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87D7D7DA8A87DA8A8A87DA8A8A87DA8A8A87DA8A8 %A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87D %A8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8 %A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87D %A8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8FD7EFFA8A8FD2CFFA8 %A8A8FD05FFA8FFA8FD09FFA8FD0BFFA8FD06FFA8A8FD29FFA87DFD27FF7D %A8527D7D5227527DFF7D527D527D52527D7D7D527D7D7DFF7D527D7D5252 %A8527D52A8A87DA87D7DA87D7D277D7DA8FD27FFA8A8FD27FF5227527DA8 %52A87DFFFF7D527D2752525227525252275252FFA8522727525227525252 %27FF527D275252275252527DA8FD27FFA87DFD27FFA8FFA8FFA8A8A8FFA8 %7DA8FFFD06A852A8A8A87DA8A8FFA8FFA8A8A8FFA8FFA8FFFFA8A8FFA8A8 %277DA8FF7DFD28FFA8A8FD7EFFA87DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA87D %%EndData endstream endobj 22 0 obj <>stream +¿¬´¼ó:|Áy!(å42%ü'¡äáLgS¸°òÍ)rÖŸú@¯N© §ÝS¡>þ± h|ïì®|Üyf´¥îÓ7›ðÙKj\6Àfµ¤’;»ëcSVL°{«aÝšWcò·\–…^¿¬BƉʮ{YE5Ø´3zLΟÓ]¨RhÎE>÷’Ÿ[z{œ_rs¶«4|©¯>iMO Iáï}²;³ áû:Fõ¶†õåhN¶²&|º-ûúcCÂÆ0¥6xÚš²)zFRýpKìC?,y]ŠÞµ4}Z34Çlšá‰ftúž“Þ¼çe"‚&b኎VäÔøÄewÔÈèSƒ°è_ŒÄ„‹.Nþå±¶Š[@<ûäë‚}èmH>;ÑRÿÆßRõf}ÖÇκ³ØS ¬ë'‡¨ñq*ûrPË„í¹xGñƒEí›2mV‰Úñà«ö|LLÐH.›’Ã"W°äÿYæËÿ™ãŠ÷< èÒ1ÓÛV|kПû#„ƃA#W-,𺭿fm¥Ú8Õ÷Iyo~Áæ„ÿÑMº:ÚU÷$Ð I[µr©ËVdA‹Ê:eñ¿NðDû>%¤Ç9¥‡Û*û{^ï¸XÜïÓ­ŠÏclʶ‹\³f¦T‡ ”ê% >kEO-[41k‚ÆwºdÏÛÞ?;B¥ÿÖWÿé„›u1Ð^þdÇIü¹j^K-hHx÷K4ååõcŠA]·!R÷=èê¯c$Ôg? ±éd¢Bj­…_ýl¢’ú?Á× 2|Ó…Ê\Ò@¢BC ·+êÆ×@bRZ±ëF–|gÑ6<œU{5dBW~›âµmºQek–ÆØU+2}ÅF,Ývãkÿ] ¬p92ZÉËâè¿ÚŸäŠ¿Í å_&G3¿K–5 o¦åü SZV­š\{}VAÈÜw“ëwmõÑ›CUáóZÌ%¬»5Ì*ùËÆ(=ï`W^k?ž‘¡>8U7À©gzr®è åwÇÄu÷'% OBJлu*;0ÿ ¡Üš‘5'mZ‰+Ft겓³h¢U¬Ú¹˜ý1>oÝÉF,˜í©Ãçïxœ-¯€¹j¤OK›"†°É´”>?щûÅD.þ«Ÿ\{!òñÕ0xê«‹³]Ñ€ž>Â˺<.Î8"̽¡BÅæ•„ŸRÀþ²²Jo RŸZè®zÿÕ‰¯žé¬xêag]÷pÎIŸþÔ[ûêg:錑[p;íÅ_a¥WÞ1Á@Ggþ'þ{ÉÐ=¬0¨¨x3%-»mUÝÆÄýÙÝvÎJ̽¨CeüeÁç_4Þ3 +Ïéä/aeô/”Ì7'FDO̬ÂÇ´ü'‰i«ŒúÝLNûkº»þñŠ–´¢«Mi*>~ñA^u×I¬ânÙŽ ‘³bhú8'‡D®ÙÓ6ŠªšÝÝ4uжøŠ º!fQQ½¬kŽÙÆî 3aS¨L51çÚl?:ÎÕ‚ˆÑ2ê^´U=^•†¯ë«e¬9PÙG}œ¾OqE>nAG)ئ5m:ÐÅ~ +êÇ,KøyœAZÆänyˆU›ÀkƒF|iЀ/ é‰ JLü $r×Aªÿâð·l슑QÔu—EÍ3”´‰^Ø[9çº +“|~V‹YÑ1Ê·­´ºMÀ&·<,ôöˆP°á¢Ö츺 •3'El9‰5;#LÌ! Áý$ØÁ8»ççÒ6\,ô¾ƒÒàä”ÜDgž³Ò /ÌHkm›QÙŸ}L¤™<6ŽÜ°Ë– ˜Ô-&Ý MŸU7}™±ù{nlÝŒ/>ª‘ø<ÁblûI–¹Ýß—Êo@îø<É`m¤¦e£qIGÊ]1‘J¾-¶è·|,êþ8—ûcªMócRÔócœÃø2Æ"íøyÌ 9;t4ïÐ@;ê“þp²«ôN@É®òˆ!O]üº;6féÅQaÑåÙþÆóC¸ä±~dähKÓÙ^~É´´£vº—’¸¨Â%ºÊoµ^]ìo~{àaÀw<Äš$f^ Kþ:Áo9 ðù»£<ú¶—‰\³ŠvFYø=Ÿ€·çoëÝåÑV-ÔòU#µ|AŽIžè¨yæ”\Wó.H1•çiÅ)¿Hay·Íôâ[’†÷'”ˆèmµÇ{ ñ¿Ø¹•Ç»QI>XÔÑï<¬ŠONuÕ¿ŸT?øè÷~Xâfrú_nnÙ“ñ6ÐûÙnl¼C y‡Íü…šûáì–]?/¯zTÕ½œê.¹ß zu¢¯ñÍ Okå]9³âfüóÇq©ïÿ˜î†¾ö +kîšñ%kP…W©ÙïN–„_Ë|p!¬òÕÍ㼺¸“YQwCžŸjÖ±£êñâ@Õ#¿8÷††sVXñà„þòôº®)qN‹ÊV3nûÛÊ£ÜD辋‚\7Šw­¸üåòGfjÌŸ]á«r™ [úfJÑ”?#«‹×D.Jaïw€‹XR5Ä[ÙW;êÞþ¼ £d´c²} ”ÕAH¬…‘|ÝDŽþs®/çáçQpÚŽ’6+-´:fÇÅÆø¥Ø¢5 ¦ +` ðçq\Ý÷ ôë¾îǃ¸bDd ssQ ËØµS!ëZD†{ÞLʼ³ G•È%96iU'B.«Ø«:nÓªIDXT3kT¤Üe5& вÉs¨Á!\êö08/Çætƒ“®èE¾ŒsZ–ÕøM'ÀuclòÎ(¹!hlŠÙp“›÷ý<îœøHÀа•!lîÒ@í‹‘–”[¡¡ú÷«&tú¬˜0IÁª™X47ˆøx0FEþ˜ìÞˆ-š–AbVôÄuÀ&tæž—ÔðÏ"Or á›+ß&UøHðU;|0Æf} pXŸýLܾŸ† Z ¥û~ëpœÃù1Éý;Á¤~%Öí8ˆÅ«:\úàOS½ÈH æÖî0®Ä.!$x݈y97Ð ;/kx¾4X÷bVÞðÊß]óp¬³ññ¬œ[6.å—LõCZzÙüQÝv_õà¢éÍš‘³jƒ¥LÖ<÷Kë_íqY›€O¬: M' ¶ãaÆ[û¾LˆUG÷6¼øº  ž¼î T/ªñÙ+L²•[r½–tº£1夃Qg®ž?ÚŽü¤Âd]ôŠš",œ¦(O+$"¨Ág¬˜(åóCÐDOô5Gº»ÐÛÚðÄÁ©¾ ÄØÔ5-"uÓD)[Øiº˜<Ö‡‹s¶€_úÛ¡Ñ»v&jä¨MÒð|º·þ +—vCG-~èì&ÆÈ¹¨'ðÜ„ÓýÍ÷R|’š\z™[ôé8%ãã1lò›c˜Ä7§p‰ïÏð‹’Î÷#«¯#sÏrËcΪHטÅ/~Óac×bOɱ¿*±)W]¼âG+:B©GÚ‡Hyôs/(þÁ?NëW?‡½¢;šÐônª#û’ž|iA‰*š$Ô%½<ëíªËÿp¡ +6Íà4 'ᆛxmZÑô©Ÿ˜ù\ŽL¸` ¦Þ±PòŸ-õÓvmØ’‘8(­àáò@sö†™CôIÙ‹*b °ËjZÕ†‰Þ°nÀåNI@qCèÄkĤ;Ç”Èħ“ œé¾ú·[Σú=6mÏOG ¹3¦¯Ù©0¯èî²™6.ET:[jâ–U ïìÄ+KO·­Àç{ðeKjÈ'€‡â—4uïýDЪ U2Ñy7ÖÑørY MÜ´àÊ÷œLü·‡ÿß%^ïš‘²iÇ•|c¿3ØÿL2ÿÎr„?¦9¼¯lú—iëû¯û? ¼ž-'¾âŸ)ÿf¸­ŸÄêù~ÐÛÙîº's=àðYóÛ%USÔ×1b£_AÍYRS+w‡…ŒU»6¨Æ§MöTßt_›ì*¾¾,GÆÎ*)ÞNì»™^ÌÇM55zëä\ð·æ]v ²/¯èá)ÛNjÓŽ›ËÜñóEcƒ¨Ÿ »éæëÒ>°?Þ&ûà +>ûhèu'+Ý07Ǻ‹nMtå__TÖ†o9ˆåëà ÐÌôÝ +Í?ü\&Àñ•!.kV?Ñ ~¹8ˆŠ;:[µçaãö}Bþ’‘R¶fã·úš‰V·dbÖ r‹l}”8G'2bZI+ðɨ™F>ô‘†ÐtGG€¿p + ï¦º0‰ÓbT”_~lc6ÝW£*.x5w””ÒÛÌÜ·§ÕðÔ?ömRIZ0PË‚flÎ,¦Øz±±Ðô?mÌòð£žk³êú×yõÃiÅQOcЇM ©j^ßÍrJÛê… ’++&\ͦ¥1f^VvÏÛ’wQ=ÕÓwZ…Hþ}¢«.||ZÜ”óû›ë†µUº²¡…%·äÝñs“/™¯OÓrîë}:ke7>•0’ê^g•FÜß±£ ÿÎ0AeÅ󉶼ËvVÊ-U{D¥á®P,8ãùYZNø‰>*ú›— ùì"×…tMŸÑ¿sòŸœæ>96%.y®e¿nøxû”ž’ýnÏK‡n[9ð94ÁÉO¿Òúð3=÷ñ1-!öâlÅkRÑ‹óNîûg½ßçÝߦh¤]¢hÕ +Kéª|0DH?;«Ag¢‹?^Î|qýç9¨xÇÔø1(/{RV<](zÐÝðì” ðî)'þÞÖ¾ +“~•úòœ§¥6î»Ëú1Î~ósÙ{^ +lË…,Ú°ÖGþï•þm†Î#TF=g½¼¿f%¾MuZ¿ÎtØþϪÈü¿!vÏW?¬bq°ðÁ†ÛØ O{2HÈ{¶¤†¦.*!Ñ!-"eÛ-:p£rþõã«V,˜Œ5«)hfÖúñŸÖ­ÜæM D@߃^‹Kîšèù×äðÔ3Óõ¯C&ØÝQûtª§.üÀA­û쥂¿úiÈou×ËÀÎi¥jr΢U@]rt¶NhD  ½S¸ã2·Í„‚:ûÐC¨Úr 2wl˜Ü3 pðXèñ0µàBoýÇ_TÍ glÄÄs“í9ö\\jÐÊÁÌ(Qq;Nrí– _ú=@C}Ÿ¤áwü”æ  ‘1Ú^ñ(¤äm»ðþ>Ыu+ºiã \Ć£¹óß4ìºéu@£Îè‘ÉÛ~su˜iV‹™Ñ"S—¬¸ÂíQ +48L¯@FHàá *NÕšEÒz47cyˆ”5Ó‹‹0éROSêïrTÆ• ióàuo¸öð·ŠY5¹xZIL[0‘‹‚&hÆÈ®]01*wG9ä¯ãü–½xÅŽÊ4CSÐÂnXwÒö| ÔŒž=o¡–-[é{¾£~?ØÜe€5V,´Z@T-khEËzJᬗâéC¿×ñîš¹ÕV5˜,Ÿ¸ò¡ž”vÅÎ(¸7*†½›î'eM)˜y#}¼w/{JEÎ<ðаß&YÌ%6kNƒL]Öã WÌôúU;³ââãÏ/ïi|³2ØõmŒ™ê­z0ÑYy{VÞôVCʹª€§ÿébWÜ +©Õ1ꃔ~Ñ*(ý¸6Œ)ï©8ÞÕø|º¯9jN†OâRVm”š-µq^L]5a*¿M³ùGgÎwœˆì9UÕÓiÀÿ4à‹ROÉ)0 ¯IeÖ̘ŠqÙß3Å7=¬´s.væEoKEx £úõ²[ò`ŒEù2Ã}™á +¿ÍÞsRjW¬Ä‚e=1wIC+^6³@c½Èw³rJvH'‚Mݲ›“ݥ畵¯í‚Ü ã=Õ¯6´z-·â‘…_ýbg„Úeb6tð¾]üï ´ìóx}jÐÒ}ô–ì’¯ŒZP"cLúöy  ¾M’ ~\͆»7J¬ø™0§€½iQÉ6TÖŒ¼áM@ +šI%»€>Þq±G=¸Wz®º¬=·qÉÄ-›™ ZõŠÞóR!ß&8ì¾`æ‚ÖGÛÚ·||ÎQý䚇O›³R+C\nHOܲcò·\<’§ürT‰X³ðÑKFŬŒ˜²¨!çNÒFeää‰Azñª[ÄœÒP +]¨w †vê‚Q +š8 ѪfTؤy-.ãhMö}ê. ¿×l€.õšŽÎú¬;HÕ{~65äâ üCœ²Y#½lÝEo¸P»üú—BFlɪ ›¿é$U…¬„â>7 $¥-XY U·P°h8ê«´’ë¿õöô¬¶´Œ uâüaƒ[ŽŽ–Ô=žQ¡¡?ŽjàfYÜ?´hÛÒœ²iF®Yµ³ƒ­àqYbˆ ÿèhƒü3ÍíÙrÜœ¢ê¹•y^‹‰?«Å¤\Þöˆ E3£fÑÈGÏ›„ÈKV,\È’ŽY5?HÊô¢#RDÔ¢Ž\4¦bäöÓ +fµ Ðö(ð¿€&_ÐòVMŒ: Ç4lŽ´l\ø¼]Dš4uRÜò®Fß ŒîWv€ç´Ü:_+ž;.j㞇Ûaa·ÝLØ’‰3чŒ\bT-¸`wè§¥úñxWÕ €µ_Ì*k#‚Xú†‹ZïëoNôõ‚öFØu;©:ÐW÷j\šuÿp´êýçñ†Ô]? µá÷ÎÛ$m^«zrZúeº]ÿu¦Eq`·Ü°ì-WSÒ¶ U¸ï#Ön»IURðó yè'÷<Ø’-'¡lÿÿ?ƒ­X5ã‹'ûa‘ëZÓΤ¨gÙÅcí\̶O$>Iþâ÷–{Ô«$'h§Ö,šøÍë^qϨ¢9ËÙS½2L¯¸iˆu7 ²â+×TЊ]@tˆš_{ÅÈÄMg«pÁÀ¬šUÓrõô²Y=¥lÎȆÎYÛØóŽNÑ´ž[ok£ÄM}Ã@Û¢…ö«,h$–®Ûi]—q8ÑÒ»à‰¶ŽÎ8Ͷiv'ùâ5 ¼åg“WGè¼äa¢7ülÚŠ‹…00ʯÉQy+.yÙL*Þ¸aÅFª^6Ë—Ít𦿭o}¬cpÍ'j[t0·ýmÒ½ Aç–Ÿ]q‘j}ÄO~91qêhæª_÷Ïl«úûl‡õÛL«òó”P¶ïç·íÍò +^ùä ¯bA/„mºÄ]ߦĚ •1? ôAbÇ$Ís*DÜŽWÀ]s»£­ÝÛ#R笵«%hâC̴֬†Sei?ót"ÞLÊq A3«iÙÜÎ^µõH¶¼<ʦ𾿠TÍKsHÀÑ6zÑï>¡pÓÓÞ·ê–¨B®neÀÐAðiZ!#}¬ô)µ ÖÓÎH™•Ò‹¶´–V¤5?²u"ßM¨¨e‹f!ÆÓƒ‰À'̪õ±ë¿Œó.yÍÍÁNkñÙSCØÄ â×Ý­üUW+;4,¢­³›Nno‚É^õ’GødC $ÜÄ…DNi„_#}IÏ(ßóÑyy˜_ó2ÿ,Sü¶ /¶=ÒÚ±=Òmøvtžx]¶j'.j"gU¯¦mµláã¼rjÁ ¥ìœà €fš#—4°˜ñ~Ð+W{õ@c¼ÙvRê·ø¼ £UÎ Rª‚F øèìù·)*êp‚+Xvr1 àçböŠ«[¶èôÌX„èE»²s)~ðƒŠ¹¡æO‹LÚšÚr1Q«V|áÂPS$ ý6íõçóî.jßoÚŽ´Ö&¯W½Böúh—jÅÉ£®9 Ðey“rbʼ–\¼ã´ŒwèBÞ–®Rñ}!8éü‚Úi­Ž +˜ÁQ6nÒ@)Xvp˃­¹œíqñÀ’ÐU:fù +ð÷u/Ÿ1oãc'L­˜€¾6kB*™pÒ488ª•ñú6X°ó6{Ù€ÍÛö0›>gÝÃ%lŒðhû³Ž­i®`cLв9ݪܚkÓï̉”»“þª‡†˜·RÊC¤ÜÀ É$&§ð@™mW±=ÎçoŒ±ˆ j톗ŽYñ²± ÃÔš—ßð ºÇMѪ†ð5ÀÞVJ͆›…Û›ä·_j5õ XsÓ ! ¹=.qÌè™ÍÓCÄ2àz˜ë#|îî8¯e¢u`k¬UºèbÂ笄üe¥~u”C\´ ƒæ¦‡GçÏÇ%ÖÏnçÁx§vÁÌi +(¨SCÂG¿ @*=ëíÀdíy¬m7 »j¦7Õì¯|³aE¬»;Ú +V’r¹2âê‰{0! ìø%† S@™ÔÑ‹ürVŽGÂNõ©„U\Pá¹ÖºôûË}×'îÙáQv€¼tOxÑÈ®›R‰ªýò– +g%ÅÝ^÷lÁ€H_6“Ë—Ìú;Ÿ0©ÔNèz(~M;4 ¡æ,›[p³F gÎÖΞ5q›F¤ˆø™AzÜ^Â×kåö~ÆÙÞ’µ4؉Û0H˜!]ŸpÁÜɜ֡²—ÌUï÷Lj =/uÄ÷-ïðš“Õ¼0DÎ]ÔÐJ7‡é»Jý–‹T´1@!j ^¶´Ñ&å¤4[íM ­~m˜^wspë.&4hg4N‘²Ç6ßrŠDGýñÆ9ôm?±<Œ/Yq1‘ë®¶ÖC ÑÖÁI1v·eyÕíE{—xÍ)¯X8Ѐín©z´bÆ•nyؤ-±ÂƯ¹3ÞÛôú Ð"ÝžhéÙðq©¡a:heÖ-ÄÂyjB@…O[|8äe£—œ,Ø”ÞIö¦»ì[SíÆ_›,èfÍ„âEòµwo~½õÿ³›´êÆ—o ‹wÇiØÝ ±z3 1Oi 9óFJãöx»z; ìÜgÓÌ´ê±!\Êœ“\¿=M#.²:V} âÚˆ€½3Ý"Û¶îL›vtÜŠ»CìSö"\ýœ¥Û„T¶È2TÞËqI?lN%£H¹é–Ú+w§ iz@Ò0=8$ò¨‡DöÞ–BƒûÎ)„§ŽuèvÆÅ²ŸìÓÐó +nŽ])Cë{Õ™PßÇÞ±2©ù!mgËŽKÜºéæ æüº€¼£Ê*îËÖó{Ó4ü¾,†ñ[RøÓ µñõ¦³[¶áìU­:ûtc1Ì!뇻û+íÒF¿VÕ¢— 4 µJsm½FôˆÚ¥ö ZLR KÁÓTÊØŠ b#é>© ñ¨³œñZíO6‰ÔU®Îžêµñ=Àaÿgš+:š²h“yäíUöyùp§¢ÖÝÝš7gbVLë0ÉKfRźKÀYüÚ¯ÃÍ­Œf&ñ©¿—QhB’¦”4ð¼¡3gæc‚ÃBö~ Mñc¶ÝøjcYt8Åë<Ú£ewG눒Y¢ažËˆ¸[NiWÝŒ¥“½îikÙX`ŸŒ‘ë‘Sç”ô’ Àº6ìù¸””èÇdÏ‹6=BNpX@œ·ð Óº6øˆJT;­gU-9øÈ%½ÐúY³F©GÝÞhR¨1ª6Yµ§³Ô%ë[z{ë,2 ÓÜ«gº-ÌNRß'1œ÷ÌÓß Ÿ·tЂ.fÑ# , »ä¤7¬û¨u@K„iîm±¶3R'­¤€¹•æUÓ g†EìIgi[6­'‡†Å[þËúh«xÚÉGM wqÜF£Ü åÊÅcˆ.®;¯¦{/ÆHŸU‰*†!¯‡¡# %wÁå”[ÔZÞ›.²*³‹Þ“méhË,è[Qk¾~÷¼«pÌÚ'2J›rL&ŸàJºÆ |šúµŒ¦I0‹ÌõÖ6u½SÜ]ä’A5­†²~¦-C²|(/À^¯LG\…–óþ‚—±SÐÚSÖ\}ƒ[£³æ6š[ÎÉ·ÉzÁC½z¸LêÄô÷z0"¶!…GÒ¼iaØÓºDM"¶-“‚|]U@¾\]@¾ô) yêÉÓ‚cá7’Žg½­ùê‹TqUÃ]JhÈL(ÜE•lùp•ãFfõP{_v/SßEŒìfõGi¤šZMgw¶GÞ5É%cFu—©¿¿AÁmÿ '¶=5£“bU ` 3²AnÈ*iÝí”LµƒF]ÔÔE­Yà¹{c­²Y·vrxpˆ­•t(…ÂX¯'Ë­0‹Ç rᔹOäSuÖðZbhuuçdDÒWGW^”ò·ž%ÊšQwÓƒÆ.Ö”‚U°0D+“Âb¦•|°K=$’"‡Õ}H}ok†®“mötJººüõ ¬ü Ä|È'IRÄB}/‹ª* Ü.È@ÞNOj¾Pœ…ºR“y"Ä¢ =Ù£œ?eïä/ܶä$ÕÌè0™ãÌ¥—QõF\‡ÀZΣis´¡\ÅÃ;ž€àÚëe•mgs³˜?gçÒ¾w?6ìÁí'K +ðç¨ÍŒû= AœMÞš0Kèsö6úÊ0±`$TL›i“\¨Õêé}}ªRI»*KÒiªq´ñ,‚ìß‘Œ‡P?Ö4?n.¥<«ÈÁ=ÎK‡\/Ë.½‚Wý= dE*ù­åCm$×Ð`÷Úx—jà’Ý ~Ë×yáÀþ4‡·3Óeڜ춮øº•3î.‘Ï¡ìÒ*qò.yi/§ããP²~h@ƒ•‰ºRT¢¶ó@K¦¹Ÿ™>aj¡l$¶ý ±|ÑÕ*´éôr¥›Ý)›g ċղçuC“â +"¿ +mè=Ÿ—Ž=•ù57“{6¯TþËÃw°°kwrŽ¿{[}º8u†ƒæÞÓv´gŽkº0“…bØ`Ó©†F$bÙ‚!^ȧ‰ö ÈÜÁ÷ݬ»I€êîáúÛ˜¦+õµÒ›e%—Ê‹{ÏåKN?/»}'',1ò3j½ÑÕ6V?nÔËV\]’I½ iLÛsëä|¥z˜Ï왩D±ç"”™5Í–+Ù…­¿–ôþQV¡ú-¿°÷dø;ر¿ïæ„…¿Ç{ùvãIuدgŸ‡½¨?]ZÌ?ƒôÝÒ¶KRgl켋G°(ZÊåê’3—Í´G)Ã/‚åL{1E(˜ÈãPõ˜õ{ÙÉoæÑ¹{#òøË›Ñaé‘e¿•dbîê¨á¦#zJo\r´ BfËÓ¥yTãV“YÓ+õa»¤~xG÷xSWÏ +IÒ½DhØÓ… C4Ÿb$œáUÅÌS9˜_«òq—3’à§Ÿ=Œÿ='¶ðnE–ÕKdÜSʯ*P±¿Nõ#R­:s¿|ÀNèíó ø’ñ2,ÝûªºaàF-HuEˆ¨iºþªúøóç%'óJD¿å”õž~ò¢:ìÒÕ”°+7²ÂÞÅS]}Tö: +{ƒ¶>ïë!yLƒÝóÞΞi;áÖIyƒ*OkGß&œÉ¡l·bȧž¿¨9‡ù¥¨Lq&=_úóûOÔc÷ŸÖ„½!‹Lb»z¿6ìn8.,¿Üò+¨Éx†W_râi %ìü­ò°;j¢Çž½'…ýý´)ìN8<,2Ep,"ItüÉ{úÉ·ñ¬³0ÀW¥BIÚŒ£³uÖ.`ºM=,½ý%ƒ¡yKçº?Bñ£÷3KNGÄ3NÄgwüššÓ~âáÓʰç¯AÇ?¥0~ŽÍûãFfØ/¿½ ûû^iØÃHtØ_7ÊŽ½ý€ûƒÕ}ÒõtΚµŽ9‹¤}ÌÜF× @9"gCª¦JwꛘËáuè‘ÈÑ›5æóy…’“9'S²:ND|@»x-9ìIxuØýçUa¯§{9NÃöß•R(-ˆˆ¢íåtw òÚýùárðž¯RÊåŸDãO=y>Ÿ.<ž”!üéM4ê§Kwó½ŒBûü-"–víAyØÓXü±ä*Ëɬ:çïpZ ª»Ë\6¬î/JT«ÓÝ^³M§lïŸ!QÛW +áœé(Ás¯¬¿_Öyöå;ð‰k÷ÊŽÝzVv/¼!ìÞ‹ú°ñ'^$0ODeKOdÕš/@ÉcÏym‚þn7ĦÖpdžUsfFµGNH é/øtÅ+v‹?“"^̆2‚/s+T¿Ç¥²O>w<:žsìU$!ìþ“†°»k€X‡ O†ÝŽÀ¿ôüÓý7Øã yŠ_2êÝÕËJ„мy—¾hB¥.©E.E{MP™ÖÚ6ZÆO¡i£á˜É;ÕÈñë¥`û¹Ô쎟½‚…=Äõ‘tìÜ¥ä°ßÏ<ŸÉ;õ1}¶,sÛ£ëÅÎÙD„!Yo­Tf€µŒ#¹“¥dÑ\ +œ1^ º’Ãû5:•t2" ÿó…¹ÇNÿñ*ì΋:ÀÞèdz‹y¿ã¡ÝdS##Î[…ðñAJÆ¨Šœéd媕ʦö>?„ÑêJÆÒÕ híµJ¨ýfTÈE ã÷Ÿg‡eNe–É~ÉŸ|C8“Ì8_['¿CÄIŸªÚ9ïÆ”ô”Y1=h£U/XøÈI#·Ñ(c§È¤í2˜Õ9Vˆ¥Y^c(ÖPâð£œZÕ…× ä_Ÿ¾küùcáDBçDj!ûÏ‚Éõb¸âc¼C£¸>tr‡sõ-4èQ¬Íé¾ÁæX§¶ ÖÛ.-ï”Ab©³)r&6 o|ÊmýíM"ëÔ³(ì±§ÀjŽ]Xö:{ìu";ì곆°K@Žz‘( ‹/už*™ï“YŽ£ÊÞ²hëlS£â]rÈ+¯–]¢RéÑÂ^o«ºÝ»Q\O›}^Ùd½PÞ¨ÿ#½¨íôÅÛ…aW=| »ñ *ìÒßÙaïÇÒ²E' +ŠÄgx¤ÁwÃ}%szFÅ’Z£oǾ5Éû ²>˜ÉѼe¶Ï;Vó¡ìÙ˜ +¤þIa­äZMSÿZ{+¥¢ûÊÃHèéˆXر¤<þÉ„âö ©U­÷›HC¯B{rÿ€=¢ï„Ì;X c\ÆöTKÿˆ¹ƒ88äv(T–ÄWFeë¢ÈÙS +KùN?(ixYÑz'­˜y7«„uưF™¶¦)’'RÅhÕÒ*‡¶êÕJàóŽvÎ´Ž’7g$ä4øô‘!F¡¢]˜"í–w÷*Ù¢ÁHʦKD:ð3p¡adÞœ•·öu»Œš~‹Q-ÒÀ;;[c9¬îçh²ùiÚö(¥¨óÂÇÖ‰”‚Ö_߯£NF&c~ŽÏçÿTÔr*¡¬õìFÅy0ÁÞÓãÇ ë-­£*>xÓMƒíز P½ågS&†Û‰Ê>aZWWWj«bÇìZ(ò<‘pšó9ˆèx•Étg–³ë›ù{Æ–Æ5U{­fú=rªØ'€]ÿÐB~Ð5(,à½'b#÷µ²‚2Bg†ÑËh“'0ÚdqõÝâø¦ž‰Ø®‘©òYµbfkácテÞS`R*Ò·Ü6ê[ëQï?N¨dÃÝÂÉ¡šÁ‘1Hg¯¨°}pÓЩËaµj“1®æWv\K,¬½Ÿ ¼Âs›ßv ûÉÊÙÆü8-}©³8LÆys{g–^ÐêXOµu²çQu¼óÏ·u¸4µÕãŒìm!«Ê§ilpj눫’ÚRíxSÉL/UÜÉJOO·ŽMT|èÍvµ$͵”¨§ºqšÉø5ù@óŽö=gWÝÊ´kß±| ͇¦&WSS¼Ò_zÏÔºk•0rÖ„Ì´õéFˆiæ=Y?Q[°*o¥/Ïvru¢¦ò‰ôÑôÉâƒÙ¡¶|Åd/Ú8Í/X˜¤'™g:ªáYŸ¶¹ö@WSàV ßîJ°Ñë"BÜÆ fÑ H·5¢ei+Ñ0Y_¤ççˇÛJÇ?õ·¥µÖ _Óé£÷9µ²0:kìƒÕ~»¶áCtÓûñ¬Žî”¡þ9˲Ñ÷NÝȬ]ÙÒ¸#aUÚÞŸ,uN3œ +LÖ|ùceOÅݹ^B˜|tˆ<Ú?Gêjµ}@ƒ~?hÀ³Â0òsIæÜhmkËG…¬%Ñw{Š_ìV3*Ý*&øÈPW³9y£$ÿ¦íH»¬<7Vµ3!/ØÔ_æ%uìíÅ®ÞåÙ&”f‚›1ÓÏŒ÷0#g‡ùIzi ÜlzWk3q1Þõ¦Ž#ó»þ“Í:þá¥üØDCšX·ŽV±1MÏ[Óuuäý-ksÝ žÅÖv§þ}«]ÛÂuèkì:¢`•mϱK7ä­ÄuUÿ†¦g›o`Ø´|ÖÖ »hOÅXä"Ëêíæ(â…_Ï&mvH]ÁkíZ6tKΫ2 ‰ñf "fGɪZžk§œŽëäEª•£ç¦êóT£ôhµ¨©Ø¨ìd¬©1›s H§©¥õh³uÌ¥£WÚU”œÀjÿx»Ûx°Ù£ó®4w›•u8åHc©r¤¶`àCãL_1Ý…wƒ§Ä"ÁФ¬vlT G‰rQK¹~–™e[inõ-56›…°ÈùÖì«ó=¥q›Bè+¿èúü{r’e²…¼;Í­Øÿ1v–ÜYê®z°#ª¯0KZñ†±ÚÒ1.ê¹Kö¡ãp¾sèdÏtˆo-£à'!ø¹MŠOØŸ¥fmŠÈÙ“ìü»½ˆŒÏó,L@Ïð((¹n%?``¢ìZdk®¶§mæ>NùLu  ÷K¬2lܾ‚˜æÓ3*|ZV•ßÀA˜%´,Û\]õÉ"Ÿr¶Ä%ž,òNµd}Œ»2HŒ\§&új¢6DÌ¢­ijî–ˆœìT2+ƒ3¤m|¼e +›°¬ýÆ6t}˜µ&äæoŽÕ¤û”ä¢@ð † =00 n%%˜kZæ××’l +>Ò"âƒVGi™+#Ô’Í RÂb?2d±e¥'.KÛ‰óÂN´qD·6Éɶ+ú†­s­e™®z³=”{Ç##äôMµÇËm}§¦ö‘ãàœ)-&Ó2ò(ëÈ~CS£¾A`WÔ€·çèeks,“üCfòXÞIz½%®‡;f°v¼#ÃæyÔOK-÷kk1Àë ›@¯s¡ÛS¤cWþƒ½ixÚɹÊgàâ +NõÊ ït«K}´ÜÔ¹;}³Ú™{s©³à–y¬òåá2s²Ý<ä^äÖ8”?mÍcgk íû2léöxIÄÆHÎ-³ôêd>_f¢?¯óÝóõ æv™MÍEûWÚ'ü] +ÿzË k±¿§dAWE¤Äe£hÏØ9dÑuum©ñE}õî,î7pkŽÙÔ#“p "—¨§»íŠíÁŠ{.5ÀþübòÍiFÞ˜Uà˜¬IqK©9–1JÒö8!fmõZÆË»æ“6âÝò:Òžˆš½ÞƒŽôHȹ‡jJɦ&o®jɸÚZñâoªÚ‚W_êÎæÉåöÉ⇖¡ì«ûÓÏÜrBªWÍCøµtÛ ²;ûÏ}B^½Ü¯!娦+B·GËží{´=‰¶ˆÈ©GFvõ–ñ*Ù•û2Lêö("tµùdg÷Æ%§­ "^;A7-"RÊÚ0*Õ!&%Û…¨°Õ޼_7»‹®m|¬¸¿ <Æ2II›«Oÿ~gžèVð0›ƒ”t‡¨&m{ê˜ÂÆäÄTß,1Å<Œx®ä^!%ç’Ò‹Ïõz.Î1ƒK hé œ’ã–’’}*fÅüpuÚt]νà‘ÍXÊþ$,æ@‰JòÍãí’¼ˆÓŰ_K+ h9È€çQ5Õï+ëðæ)b²mºìµ[Oõ.ÖR]ÆzªygĤøT´*ë$ò©£ôÎb{þÏ <Ú;‹zs ¢ÿCئ‰iû³”,·–·ˆ‰Y=qbba\rJᾟèŸÃ&5ÑP_7kë5.r*šþùÖV¶çUR@6iu¬C†O¶Í`“=*R¶SŽOµI1qÛBø«“%NM@O´˜<¯žqÌ‚–a=säœóeÁ»Óµ†ó:rWDHó©ëÙ@ßâ]Ó„dÏ4&Ù#ŤXF‘a»“¸Ø}­Ä£d–û•ÄÌ/KLÔ™Yu¨ dl~È}`.yµÕ[ø`{¸ðþŸ^ãÙ*›m›Á§™Ç°Y~5é×ã OLØâãE È!GçºÕ¤üàÌ•³Õz¾KFÊ^,‹4õÅzUDØÉŸºH­vJ ñûpØê8&ήæV›»¾˜[Ç×›ÝKõ\·WãQ×”-0^-êѰñ¶9&سÚÔâ[{×µ+Ά¿²Œ€ŸíB^؃stæ°©_­ü·±?]êƒ?oEE}7Ã.~˜áC=fžo–Q¸1€|º5yh…>±Žc^ïNÐ2»ÏW> _ù¥ ¸s€z`±k­—|ÑÐøýâ»ìkû„,œ‡²‹1o­c 'ÖѲÇþYTì¡2˜;‰ˆÙ¬ŠXé«Ö ñòPË‚êØ(ë4Ì<˜yeg$ÿö¾î‘×dúÕÔbï.Õ.B…{f¹€†ã¡m"|¬yùЋ·ôm9·»Šo¬õWÝ_ê?úˆ‰ùioëšÄÇ-5gÿ:Cýn‚ýí49öû…æÜkº¦ÌŸ¶¦±ªpô &ùÒœ õHé…ŽItìîHñS{úmCÒ%csÚË%·ÜRFÉŽ›c>³CRë™%¤ÚÆ‘¯c¨P«°:f²6ój&â;ó<ýó|só±š^ûXøh¾-áÊêǘ+~%8ìXGÌ>T“Ë|rrqp†ƒKUOpÊ뉟çy”s í30aÿ™Ñ« ¥êjŠ·F ÏÖû lB6Ä#eU*ñn $lo´ê¥©3ÿ†y ê)Ð/EþyJÒPpuc~d`!Îæë™¾Ùš,¬:Þ3ޱ K^;¦ññNEðžÇzÒÚ8>v{¼úõž›èÓ±`^5µbg¼"rc ôÎjoéÍ•¾òÛ§+,¢U ‹Ú›…Ø%U‘‡Zrñ±†RöyžýkM?ÔACe÷3˜œÓ%A³GN/Ûáâmc°PÇ$ø¥S\s¬ç ÔtÈö`eøŠ¬Yþî*Þ'Ã¥oõ½´OTÅî •¿tMA"޵„ŠÝñŠˆµ¾²{Gz>' ã` „|¯™h—‚#Ì#à÷!#` ”øuÔrË8ôÕñ2ðã|µŽçÕ²Ð;È·+Šî»f`1>CmÝÑr}íÙ* ²@†œ¬5µûWºågëâÿ6ó›ÎŒ¸B«¾=VùÂ!ÅÄ<Æ ,r);b3¤¸¿Š\u ¢‚jjI0Ø<ŠuJ¡¡óÝùWŒe¿o U‡:E¬Û1i«ñÌ3Í.Þ›$'Ú'u‡>Ý›ÀD.„=Ò4•_ÞÀE)ù8ëæ­ONÊô«jòöEø¬s5.ï\ >Ö “wDø˜õØÓc5 z  ï}:\q_'Húi‚ôêoJ^Üw‡Áû㵌rõ4l„™óóÑ ôyžR~¾@* +hPñ{“åOV;r~]mÍûegµ2DKZîF<ÜãvFÐow…¨Ä½ItôÞxuØZèörWåK‡ž¹öýºöæï#ˆäïTÜ‚ßLï n[‡Ë{gqiv>q¦¹èÞ.é§“`λŸ°ð>ïòB[ÒMmÒcCöÕ½að«#>u Ð"Zâ¿ ­ùwN鈕þòGãä¤o¥¬Œüô†0‘ÿ² T<÷ÈHyv€S÷&°qV!!×1MC»¤Ä|3â1óÅOú†ð7z²¯ù4ÄL—œQºÑOÌÚéG%þµRË<1±ñnuuâžàÛÑܧ[E7–»Ê·‹êPæ!|ÂÆÇâ;ÃÅ·ìcôif±?Zù±y¨ì•®%óçQd„_Áª°Œ| D„nCŸ™Ë:„¥/ÎÀÑ+WG`¯§8Y?Ú¤”üC#ãÕÐËÍ£°¥÷i¿Û… g®‰Ê§þ9dôé ¦iÏy°ð±4úó‡p¤#dµVÐ`ÓwFóï™{³®;&KžqEº.PxCeøï5ñÇzmí«ì¯ ›dŸ8ð}Öqô³¿Û¥¨èÚŠð‹Ù/¯üs®© ô¯5õÓ bB^k™‰—¤„ˆïµ¼Äï·@Àk2à  ûkƒ ðóéëV­À'¯É;R׸.]ìL¿º5\p÷d‚÷i¸)B²[É'ø´MíÇ µõÿ^ãÐ>iX‡½;”{ßÔ–zé¯í¦ÀBÓ‡ý9fõ¡žVu´Hªðéˆ~ ¡ðÜDè‰ÛC%ÏV{Šn8¤àÌôC}P³Pó} +RÆFoþ Ÿš”ãV’s\2b²S ³MT>Ó·&]œ¡ÆýË:BÎZþˆYl«¼©Wþ›FP~ÅÔ½o"DXFHÑ;ÃÄ]CÁ/ë½Ð'¶IÜ[§ûÖ<\zo±=õç…Ö´Ÿ·G@¼2\©ŠöJ™EÛC¨.15Ý%ÅÇï‹`/¢²Ç>8fgôLQŸñÓ\mÑon9´1}±= i‡‡º¤¨¨½1ðÓí^È#ó0>f”‘{©ÿíf/2Â-e:Å” ó2TSŸsQVýíN_ÅÕ~|È«ä:2éáÿ+c”Ý?še—»ÅðÈ¥öÌKꆸ ³ìø º¦ÒÛûNù©±‘ã”P2]Rr¦W¹'hi'rf‰}9Ëû~’þwCsö%`ßí¢êhmsÆOûSè·^gÚ…UOô©—×{òžî +Â6úÊî¬tW„žh;º¢Ž†ÅvB¸¡¹:bí,êDÏ>P ã¬S ¦žÒû}¸ø?TÇþüy©Ì±š…¿™¼¾»Äˆh÷, +Ào\¾c­i̸´ü!÷å¿·™Ì³* àçÁ9…Kï‹oé9×O—YÄ#€ÏtÊCg¸™?/p_ÖkÝ2pìÞxîMÛXÅëÝP˜wšP!þÚbÓ”] $6(ì‡ÅAdÚ§íNÍ‘IÐæ–×XF oªjcèªzôº)ãáÑÇ/öÝbèí‘– ;Ö2+ý3àW ¹à÷ŸŸ¼=\pCßýmoõƒÿ3„ûnm×AÎú^Ê)¿»3NIÚÅG¬õÞ¨Å7•õù—UüüŸ—[+oïN’Ô­t‚¼+n)so”oÅ¿ñÏ¢cÚŒpLÂBÞ}´ØVxy_ øœj–} +±Ò“vÑØôö[ 'ñ_‹õÙçÄ-# ±ßÌ¿ƒ†5[n?5uü>AKøþäõ·m ç“±3~Z釿ÕÜ”ò +nlTG,v”ÝQÖ¦ÿbêÈý]×Rx}‚–üÝGXôßõLÈ4¿ðÁ+î¢y 2d_„NvMÒÜz]„ËpJÁ1–‘Ò»€–‹Þ!ÆNQsošû)€—6U>ß(}l¯|æB^¨j“/L#¾ öÛÖèùFwñQLü¯ÃðדõŠaç:j顚Q¹Ñychýî™lgnô’]"T¼sº*t©=囹½àÞÎ èqZÎùRc½s¶&wGˆ · ‘#Õáž©ÒûÖá¢{›}Åw–»ËŸ8ÄL¤c†Òw@îl u&5¥ ñRËÉÿq©¥âÎ|[ÉÃù÷7 E\2Z•{¦&³toýc͈ٓžÊGëÝù×m£ÁùiE¡ó­y×6zÁ!êZ¢JPrcŽ›þ €ã¯€µŽ£ß"€·0õžô c~¶Nâ3RrÖ85ãbCÁóÿÓ‰ü»”’ø½À‡Õ>p¤ešZð®:î +»ðþÿ=1ÐÁÞ9J‘écEÈ,'ñª’—ú³š—sQÃK¿Pá 9å¡?öÖ$=ÜWÒ+mz®¦6ë’˜ +h|Vôº¦Äˆo¢²Ø?6™‡ŒìW3!½•O7zŠŸnõ”½´V&˜¹ô>ïîÚÇœ+ÿÞe1ü:bùJoÙç 2ád¡µýdþ]óüºC#.ðV1üõÖìµßÈ¡œ­µ´4]ŒŽqËàq¾¹êt·¼: ð4°c€cúð¯¿5v•‡þÑ7G/ +Öí–VæQRþ“u8Žßè+}¢—û ˆ‡15cˆWvEÝÛŸáUm qoæ» ¯ŒQb¿!FÿCÝ÷Ëúä+ó8-y:x‹“uñPWGrµmĆϷgÜT6¼ùy©-û¢©½ðוNÐm!&F×Vöpse‚=]m/¸¼ÖZ|}oþÜ9‹7vçßœ¦¾ýf­æ–°‹uÍ:Jo‰Ø¹×Z 1?Ž`c®¬tƒC·& q£Üœ«SÌÜßv&ˆ©úöЧíð¨¿õ ^ÿ×81æÓä¸èò/›z9 ˆ¤ ïàQ?º¤4è! 1œ" à=¯—:òo¬vç^µŽ–Þu˪càë ÃÿfxWí<çbgá}Ë ú +oèëS~ù~¼vÔO«C Ç]˜¨ï§HI¿Ú‡ˆ íåwíÃÅ÷<"Pˆ¹7í¥©=þ®¶1ñW[0Ój˜˜Ï-ùAH¿q $C½s¤BßLuœW‚ŒÞŸ¬~ìU–¡+ÿ¦ªµðZ:óÆxMÚM +mÿੈ¥Ø7C)Ùè…EI)ßïKHY{ÓtÐ|;äé|sé Ó{Ð}mcÞõÕîâG€òÊ y -E7€µ¾PÒA¶q|üJ{ñ¥ÖÌ‹¦ÖÔ5õQß.¶¦ÿb¼Íî4>IPùæŸmàÈŸwÆP‰‡:J€óI ï ©Ro¯||JüµGÎEíMS²'™? Õ¤]5¼GlöV‡ïŽ"C–?‚C”ÍåÏÛ‘o¿ïÁEÿv gÁÌãÈH1;ã¢sa£½è¡cꃆÚDˆˆfXôIcY‚SË#l IñÚ†âßÕ ùOæ»Jßn–‡8§ÊÃ?/*ÿXgâ-SøX·‚ 0ñR?8äïRÜÛ,7eÿ6/Ⱦ½Ô’sË%.}õ§™†Þš„ÇOó³¯ìŠ«ÓíòFR0“åhZéÓ¡ìbÈË}2ú`¡ôy«¡Í§£#÷$ˆh¿†\úç&}f"WíÏV…ïË@Û£Y7Šî´TèÉ|mGNÎ82?Ìb‘Õ¤£9Ôñ Jf ­ÓvÆ!k½•÷·†QÏlBb¢kŽßž¦¥íˆ°1«¡OÛAwv…˜(7àëm\ÌJOéMë 4ät©¥+è­-C˜×š¦Œ_5M‰¿îÃCÜbrÖ‰š‡Ý‘’²åÍyW6†±É»ÓôlU]ÁOjâwZÒc¤ˆï¦ÈáSqR~ÚíGÇzdœÒY^Î¥àœ"§ŒU¾5H|k¼à;#ç»Á:«nYÇI 6€è–ú‰QÚ÷äx…ùr©út«þÜ>Ûa¥ë;OWz«ßišøö|‚}ížæ€]<øÎ`uÈVùõ¾¢»+ßß^ýz_ÊA® ãÓßûÒûfëCùÕî²úw Ç›ƒèèÍ Bò=ÀŠÔK1ËØœúãR[â…žœ«¦æØ_¬C9\"X걞KÒõ£^·Áã/ÌñKC¿,5w{¸Œõî‚ßVÞç]ÚêÝÞè«z¼Ø y!k­¸]•òäoˆ¤»Ïõ”²mMwúv{ ÷¡„q¡|ïï +Fä·6quô;TÒ•ò¨[SŠžžëi`¯¸ü¹_ZôÜ')y®­ýyóêÿ.¾Ë»îU± kýÈçë}°W >ðÎn)!×3‡Ïê$v©¯âq6éÛnTÒåùNøóQfÆï«ƒà×V!2Ù2 +I>TK΂îjÂ6]chϽd¯ŽØF¼ÝLL˜©Ï¾,b%ý´ò±è¡'øÛÊ )Íо½øñÊ1Cȶ —Þ_mϺºÜZpm£§äwÛ"4 ô¾– 7õTÞsÏ‘rŽƒ9é†Ú× .Á1^üxµ#îöjgæ=§”ì”Ó +uU¿ y,ý˜ÔÏ‹µuÇz6Æ)®NšoIºgxŸfê«zº>Žˆ¹,³¨®zñô©G/ø´Á$þif³ÿÜb1>­‘«½\©?뺱+á¢u3ל¡ëÌ}æÑ×@üFZÍÑ<®úË*½æÔTÞ80TtÓ¯Çg펡"¬ã„·N)%ã@džíKÈ)^yMÆþ4€qBØËƒ9BꑊVâœaY„”øc %.wTÞ\ÿXugktOßšø‹¡!á’ks àU¯vA›?Â_«¸¯œ˜¶?…{ëácçßçß²L@_nƒîÛDØ$§’ Ö¶”^Ñ4^3µW<² Á^ÙGð±Þ)z‘[DÈ5u•Ô1*÷&¡¡{ãÈŸ\@]ï¥æ®´Ãï©ëó¯NÓc~šã$þx¨l :UòÊ%E^[ü‹kŠœ~èÒµd­ÿ¦¨-¿®ª/ùÍ*!¦Ûç)Ö)$ÀÍ”²³…¦†S-mê)1DŒùQÂI»´1~æQÐAgóM gÁ™ž£ˆ—¶iZÑæ]½w®¾Þ‹‰P·!^ÈÞAï$æ|«jZ˜Rn,{h/x`-} |Þ(Ûä…o¿6T"ææ\úе# ©`»?ûÖBcÔÕõŽ´»æÁŠ×Ûƒ çžtRpöî0-ùGY}qX@Í‚ëjнr\’±=ûúxMøvÚ5Usámm+ø…¼¹êaEÂÝï&ØI÷O4˜Ìî‚ÛË-ÿ©íßæ›r¯¬~,{àVÖÔæßÉyþËÿÃÊzú­SJƒèXÕ¶‰Š¾ìÛ‹ï³~Yî*»¹9Œ|µ!ľé"Åÿòò½SŒOñË…³øäýihÌÖpÉk‡¨2" BÅt„lÃØ[` ¯:ŤŒ# :íPU{¶P;[f¢­"Rªö]Å}-çÇ})²7S“f™ÆF¯U=Ÿ¤Çÿ>JKº»/Cg,RkN–˜ ëˆÄqvÒe«Yðçn­à‹™MµI¡qª¦¤K ™÷íÓo ˜ Ó04–ôø_\Pøƒóͦ~ÀÓ´|š¯.h౫ÃEw +mL:r†žÔå ‡ˆšîU°ÊÝj6Ø<Š wÎàSœSÐðC9&Á)FF¯|̾¹>g½·âžWÁ(µI(Ù}ÈçÖQì þÿJJ ÌÓ]Ö˜ºKî˘Ißm~¿=34ñ]rB²c +ûÆ)"&-µíO“²< +j‰[Î( +ÎÐYê(¿¾;NLñÈØe[ƒÐgk¥·æ›ÓUpb¿ëG…ÿSU›uÍ3C+ÞRÒ×{«Ÿ/ðˆ~=½Â«ª)pɪJL:à-S„X—˜^ê#¿µŒ“Nôd@EÊ9_ OôL˜]„ŽÞ=´O@ž»Ä„”=-«þSpF¨CBÍ´M Âlcà'GjrÐÞÆî²»“¤Ä¨èeû³ä¼à;ØeøÔ!Dôb;ôÅj74ħ +^dUXqç–3ÁŸÌ“œïAÄ Ù¯º i_Ö¸œ?×9¬S#ëÅåmÂ^ZgXÐ5!»6HH2´@‹¹—ƒ¹G‹­à'>àoÊî$"äÈÀÁ/6ò‚YEëý G2^ÊO“ä°oìc…O?™E_7Yäå!ä+€×Ÿæ8ð³ùÞÙr÷|™ +ö©‘‰;c%-ýe÷u\‚KÁ¨–ò²o:¦‰i. êš#—ø5t`/±ÉÚ÷YÏ•Íñ÷–zÒ~?6âËôø¢õE÷-CÐÔC çW±^5æ1òpš~È‹˜ØïeÜüv)»t{ nl+¼©¨Ï¼¾ö¡ü) ' 4Œ +Ç )SÖ”wCÙVâU²!–QÜ[Ë`å=ckÎïbz̯ËÙwÎŒÄòÓUVÍâ,VÊ+¼¹?C.r)±)Öqp¬e¨8ð oת)™×zJÃé£gÜ«-|±-fVx5uXœQ²5 S“®NQb.yUø¬€ž9Zb¢öuÄ<§ž”²Â ú TÔÉpi™y»>‚Ñ}ÄFîÊj*ÎÖØÔñÊÈõÞ¬«#á[ª­ ¬5´8çÙÄ-«Ì5ô.Õñ%.à½Ìµ^Ô3‹ñz¹;ïÚþ$4Ä2{¥kJùi©=ãÒÎä塎‹öê¹hÛ 5Ã3Ç®ÜA½tþ{o¢â¹±-ågU}ê*~ ¯‰§ |{0oLNËóËèùŽl¤WLÉ?Ô°`))mùøáâû’ëv%gk”¢k.üu£§ê Ð_¯Ö;!a‹ï /vú‘a>­hOˆ‹³ ž/°Ñû³è§j›„¾rZóPMÌ>V3@^9¤|º7ßVþê`ŽVâÁ%ÍòŸ¹¶è(«áWó]RB’Às97óÇ5ÌwW + +¯-v]³‰Pá;“ð—+}Œ­…÷ŽtŒª])e{’Ìßôk©%¶IàûŽ C½3¤lß»Â1Í+wH9 •atÔê.Ê£l©÷ªZ›Ž Þ×­ÚÚ#=!Ï&¿2÷ƒÚ¤¤‚5)>È/{"dç_÷ʹpÇTM¦s—ä•àSlSèx«aŸÁÅêÈk£Äœ…NØëÕ^tÜ|4ÞB¢5 Ü}9ãÖPJNWh—•l(ñÏ"³Nƒg %¤‚^|Ò.9µòóVS×áÐÐJ¶…ðH ïÍ)÷õ5ÛDá³ÿµpØŸLLœ[†‰;Yà1Œ,üÑïV3ˬ³ätótuäÚèApÖö%m¡ýbg’Sn—Ô¢| +6į$dZ'‘ëƒÇ@í¼8ÔÑ«<*^µ¡út¾½ô†_Ï|Z¸[úºD…ûô¸› e!Ây[ ·T EWµu9×üJ,àHù>÷h‰Žó.r½ô¬[£¼ÒÐIvÅæ(=ké#ö¥¾rWÆÌ½ªä?<71°lñë?­±ˆ .}O‰OÿËÆoù´Á¢ïK0Ékj­ðy¸ÏÈBœžÄ§%­ô‚šÇ áŸÍÍý'k‚NžEØ¡ÞlMa¢v„UO—»Ó~¶gÿ¶;\zÛ6IÏrÊêP– fមžížj{ûÖ3ƒ‰;RcSÏõø¼`OÙ¥¸¶ž´Ò½¿ÞWr}s¸èÆzÑû&îpŽRt¦£Uï!qÈÙ¥ž¹Zà]¢ç[s.ê?[Æ@ÏlbdøÖâ9àu’w„´Lu莦©ðW¯Œ[î“q+}R.È6Jˆë«ŽºÐ +z~a–žðóÞøq@ËE­õCŸ¬w•ý¾‰M8'TØ´­QðÓûÅœÂÛë}èY^Þ/n9>ýØÀ‚iYUGjJ¡SR³3^õÄÔ•÷‹®>á_ž9B6€IEª6ÄÕ~\”s–œåSÖäi™UNipþ(¨£PÇLMþùŠ@àš´£ývOˆ·W‡+é%§Z>Á«d‚ = [ãè耱kÔoè™824qÎV.Ðsçðé‡s5…7X ðü02j} —~:_Ïrˆàá6aåSëHéÝ;²û~% ÛL\âá<Ÿ<×½§ŠrÍ +ÉGžX€“¶5RtoWXþÄ7‡Í:Ÿç0NM¿:‚‰tÌÖd}ÝàóN—è#-&Ý)­ˆ\üyWב~méCé­¯›ü&‡²¦BÙRvwmudà3ôLò¡žŽñÎbSl“a¾™êx¯Œ˜ê54r§óoË› Ã}*62 ã ´´ò“Eöl™ËØ“SV‡‘!Á,åÃÅÖ®àuÏ\M¶[FÎünÁ±Ž +úc™Š¨©¥ËýÐçËà§=%e§þþ±êå…å¶¢»–±Êg®9LúÑ"‹p¼ÜظÔŠi¨&6Øïyƣ§9¤0 /ËžX§ñ©5áÖèÛ"VÉ·ü²¶‹až®ïNÐSN=ìšÇ­õ—=³Í ãÜZBÎñzýûÕÚ:COeˆºtX׺Ã&ó|ôX“Ï@(Þ©|b?ñèp¯±Ž³=…³Ï’2\jåñ*—±;EN²Œ‘âÓä4 çËTè£ì€G#ÌwÞ›ªß›€|QñØ/-r ‡Gøçð©~éÓ2=*Zé‰qiI9.9:Ö6QþÐ2˜óÛÞ8ô…_Öˆ(Ûøi-|mˆœ¼=Iɱˉ{bt”yþtk°ò¡¶)÷²¦!ýg ëŽ |⮈œ½üzߨVþÛ89õç!\Ò¯¦÷Ï\"B²¦¡ä†œ‘ó£ùCÕ“O†zŽs“±>”wgoþfG{aÃF›G)+ƒ¨pECîE¿† +=^¬¥o ABÖ»³~Yh˹b›‚…xdÕoÔÄ,¿šQi“Ñ wÄôLû\#ΩfWÙ$ððÍá²;òºÔŸ‚”›æQXŒwކ8_®ã8å˜dPKN )E+(¼¢mH¼°;Zþho +¶ÒWþè@G*>Yb}j&̯®E¹ø­‘Ч†¦Ì‹†Æ¼_u ©×»2n+ÑGÚ:üj?.RÝœø|/ü +bæþ$<Ü%AÆìM_íM"C]³5éÎ9n•¦õÿ/—Œ”õèŸ`ž#ð]RlÎÖpñ}ópÎuû4$üÓ*ŸãôÅ®²/ƒÇ;fà aiˆK†J9_âñ¿Zø]>_×^~Ó6U“ãÓÐa€_…xõ”2«“èž%æçìŸ/phûslò«ø†²Pqñ–qTärwáoƒ G{bðK¯ûyCx©÷tEк#©I?]oî²Iiå+Á5¿´ßøûtMô…ÍHøñjS·EUÏV¶TÞ\@F´€G2²É69``“:vµÀ —ŠR~bj¨ß•Ðr÷?{¾BE}Ù`Q¿n6tœš¸¬ÿZÝ”ñë<ìoZVÎU÷ú튜o™ÂG›'¨Ùne-àÒ}kÖåNäã|¨~ðàͧ+l’SÏ#¬b"­BT„G^“pXä¾î™­ ]êNûmk´ø±O `N@ßš$ÆlO #w'‰™Ö)RF@K*úºÁ¦Ì3±ŽID´±5ãêÖ`ÅS@Ú°òÖj$ä@Ũj²-)wg¼,j¹3íÆFoá]'€«k£Œ,!%ñ/ýªOBÉóа1û£Uaî)h‚}7W—÷«±£â¦ð\KƒÕ±:AáMû$roªì‰süÂ)F'[„˜8}gÅƒÙÆ‚«vÀûÚf(¹«ýe÷–{Jï-¨|¹=ZéS` +Ηøó5>ß à§YŠ‹óhßÕy5,Ä¡–Pp !ä™GAÏ]*D¢U‹pÌ âΖÈõaðãitÂÉ +0+½sè4ëXù³õ·—ºò~ß—RòŽŒÜýYZ™JPxÙ6…‹÷«(%~:ùU24¸.€Ãï Ý¡•®6wo‰(Ù‹}؈QbâJ_e¨KŠÏ;1ò™yAÓšˆš»>‰ ùÔÀ<aB_Û¤Èø}96ï£Ni•Ÿ7øu§+Íf@“ìËÑ)_¶‚}QSt "åzè<˜½D)öš÷5=ý¦!râòü)à7pÿco•|Ú¬8u¾Áã,Q‘‡Ë Âé +—ujzס} 󲯻ÕIJÛê:>›kNÖ˜ ·“ëÒÕ”ø—x´Óµ†wŸ6ÚFMòá +áôÊéJëÇÿÜó¦©Ç{U¤Ì€ +ï“WÇ8§«ã=çU½ôȧ†zʾ·9}¢~ŸqE+ˆ½`íƒ<>ðàË2ã4À‡ó¨›öN™¾£èÖ8!üïºÆ˜ŸìˆX¶½ms¶•l‘ +{^éÞ$+ß2Š}» p°} òÜ)†DÚÄØÌQ=Ø,jÃZ$­„=1·Ô:AŠÝbM=åÁ{´žXû Ï÷‡à/íãˆWÛ£¸ˆ= ·Ê­ªE9¥øDSäÅ09þÊXMä¥Ý¡Ü‡'‹Ô*; ‡l3´l¯’‡ô(U[c•¬¢ªç¶éŠç}¹÷âŠ×'ó´ÊàÌÄM9àñrŸ¦£Ó£¬ÃÞ'öØD©ð¨ˆYÛÐg‘NYMñî43O߆¼·/¥çèX§ “à"#æÛ²®,·¥_· +Ã}|SÈÈÒµ–=ÝìG¦ij±v!õ«y¤ãy^Íé—äW“ŠÍBXìà-mz¹[ßÖbBÇ+š²o>+Õ-Gç/1ˆ@Â÷g¡i>5*Û:UõÂh¿‘Ôvå?Ôµæþn›€FÚ§ qÞ9\þé"zºÌgÚ#Kû¾ü–[NÙ§qY‹9·“•a~;*f塞>]n|w´*hµÈ8å[bÈ"áU,|?±ŒB߸å¤r?à¥÷gñ)G ,Ü×ÍÆ¶à,Ý€žê—ëÖÔTíJ`©&Ù£®)ñêÙÈ­ILb@O*=_ãÐ:ZÕ±ž‰<[`a€½û<µKp ]¥|uörsüèdžRùßÖ–‰OëLÂñµê«™Ãù²F#눀֮9fpYÆnÐíõ1Ä›Às°ÌÀú 5Å&2Ü«'”¯ñêÏ6ùÇ&&ѯ£€-SȨÀ< òužŽùkë]ßñRs³GÛÄpÈ(1ù;ŽOÞó~_ʇYÇ«ßìŽc#œr&È£©Ãïˆi麖ò;:~ö/ûcÈÐÀlMæ‘>8™åšÁĺä|ÄÊ9nsbݳ‹àa ðF<⡱‘áSr÷Dç^%6-`àb]òš,ópþ}óPú]÷,(Ä9GÍ÷ëÛ:Žç{&=ÊZ̾ õöÓw²ÂD;¤ Ë$êíž„˜º1†Ú'F»æ%~铵lŒ[FLsŠá@ï=\xŸxß))P“2µ,¯¶¥qœ•|AÛRübwŒXè“‘JÎ „²=©ðM+½U¬ÓÔR‚V²Ô|GAÁ¥¹Ð=Usñ3+ÀÅ'*:ä@G­Øœ@G>‚ŸnŒá€zkj:˜çâN—Ù„C.Ó5ƒM?_å0ÿØ®oý¼V/XÇ&¨ZÊŸxTò  F6Ú!AÇÍÖ%_›kˆ»àBß|ZçëB.¦¤ü$®Íº hnˆðºeu‚y¬â…y¸êàÃÃôÔª“åúº­QLÔrô™o–ýsµ¡éè¹5:Û6 ŽvÈaqv lQðÀ«“Œ ¯$˜5un¤ÂÿÇÌå¨ñ§Fbé‰W`*yr¼Ì!¬5u®N`SæûŠïÍÓ€‡c}µz?o6tÉ€þ¯É=Ð3ª>oÔ7zÔLäæxçƒskмZ6€õÀ˼C-¹àtžôk8P‡ŒY`“ÐsL!÷t-×4‚òßUõ…7Ö?@_y‚÷“ªƒ9鸛„–µ'¡e/v^ŸãG£$ýhxeg´ô àɪögø`û$¯À+þN#Âö„…7ü³Å@½d__êK¹¨nOýmc¸*Ò¯Ð3µà½)r¢KÆ.q+Ø œ”íûO>!:zšýý0îñ·û"TÚÉB#Ï«o íN³rÀcb\œm¸êéá.e¥'ý†±%éWÏlu‚[͆É[!?T¿=Ö°¡&ÃÏ—¨ð##1Ï£Á$.~̾lêJ½¼ïûd¹±Î£®':dØä}Iåë &ë|]}h C´ÔòÕÞòÇ2vì/GFB©×@-µË I^!˧ ¦éè•'‹l¼[IHsÌâ2zñ¾E°;Uýzg¬òÉ\cæ½lÄ5ß,4õÏõZîéBXÛòõ±ê(šKòªy‡¤:j{8ëæùÅOSÔðËNq5àñZ›ÖG¨ ÆNø=c'âþ¾’‹Ü­zx¼'–¡ÜÛ™7} +tÆÉ›t¾ÜÜn—3,"LÜéj]çúæ## t¤ÃeÙE¥ÏÍÃéWÜs„4àý‡ ÍÍ.m=e[ÄÈó¨šYι‚Wͪ:22‘ûJT‚S‰ŒuΑ2¼:&$x¦Æ!Ã%èé`¯†ö+‰YgFbɧ%2vOF­ôá=NÍ>[oêÙ™%䮎T<[î-º¿9zq` ƒ‚¿ÛÔ|ô¦ˆ•»:Æ-²Êd³¨¦LÝU±ø²ü±ä¡C ‹=Tc²ÿm©mòølUÖUÛ”œÊc“ Ù¯g‚½Úš|«±+‚…ú ä²Ï›µuZ›vg(º.ø#«” ù¼Ñøî¿­u_W(ÿLEøn_â%ccÚÍõDò¾^РÄ'¨šKî~Ùà7þ¯C0üu“S÷Ç2¨‚dº§ ^îL=˜ØŒ`þöÆ6W"ȸüe·ñß»-S_6Y ~2mgüįgÁýZ.­àT9åôBË1~sŒ’°œí<Î/tÈê>m=Á­eC6'¯ÖúÁ÷w„„èýYV±EHŒ_ëž¶ë~ e‚OM<ÀQ…nÀgÙ§±žV¡]Œ‹Ù‚ƒ:ê¥KRùÄ«BÆ‚ûÈ‚øg™UV!Þàñòp¨cÿužûlªe¸Õ”¢Í‘êë41nc¬ò¡©#ë¯ã›Á&«È…çÆZü °ÇÞR†–œûy™GuÊQoœ3€žPUÇô„l¯†XxºHÇüx ¿Ž v)X M‚À‚ ! ©E˜0Û ø¥S‹°Kà1€7Î9_aa]JrZöu…¬16Ù/GÅØE/J<ཀྵàcmëÈÐÞµ1މ°JhEA.uËÅ>"Æ ÔÃþ8ÌÜ_þðÜÀ§}Ykî:^àÓ\ +R:Ћe>%¥p_‚ŒvÏÀR€ËQ·ä<^í-}¼èv‡Š [4žs†Pµb¢!¿®qY‡~s œìT„ôij5ÁûƒÅ&ÁñBëd!¨¡áñvqé³?ÖøãyΧ¦Ã\*&h[L-òZÞ¹4ÍlŸ†‡ð©i¥)*Ñ9‹J8š§C¢èÉ¥îY\ò‘.x®­¡. ÁgÚ¦«Â–{R[í«xÐrŸ7š:ÖøœéwEWµ§áã–øÔC#ÀÍZ|_ËA84l¤s¾£gu¦.| …¥=ûfy”\ h7:ð>äsæ’•½90нÁ^Õ4 œêÖw[ãø7V)9ëh‰Ç8Zb ÎÖ¸ŒÓ56ý`‘†tªÈyÀš@ÜFÁ;ï|Û§Å¥{fQ1žYøÛc2ó à΃eA‹g¾Y°%fïI(…ÿÞô}Zg1v'ÀÏìcà«=ù¯¬Â‚Ø¿¶(äÿݯïûlæ²msØÜu!8é`Í3õW%ìL”Ú’q¶B„kJó¨y›Œ]¼^ÚÆê•MÎ,¶+xUûÊ:”ßXGöèø8§šÝ•àã,¨Ð  Ž-Øhë4%Õ2ÎÎôÌ6VŸ,ÔÓæºÔ¤,—cmÓ¤D‡˜Sä˜á–ÚÄ´ »˜˜à!CçIù>=¹`³3 +}¦â§]PÖÆýÓ2Töð¨QÛ4=3X[ì™ÓyjÙ™çCÅY„°¨g»SÀ§£B¬“ð°S v  džj‰y^Ó$bä象3-°Ÿ±¹ídUÐ|̲RSJ¬¢ÊØóe:þËfmýÙz‡Ô­©%oT=Ü"ÂO7ëÛ]r‰_O.òëIùnuMþ!Ð'çÁk[íb«‚ w)°‰§Ktħu6él9ôÖá +æ_d£O?^d!ÿ°Ô6Øçpy†ÎŠ›ž9ðÌŒ¯ÛÜÆÿÞepçñ àe©äO —¯é§0òŸ}£ï)Iÿk¯áãÿçb°ýêš<Oª}:Ë«áxèðéƒLб‰O?6ÕR\jx_Á.w*8{bfžYX“b“Ò÷çèE[ã„7[£UÏl"hDð·<Ÿž÷i90’ ñªH>m#ð|P«Ì’àõ×##áT°@;"tÔz_Õí¥ÎŠÛ+ÝÐG¶IbPo•:ªøðÎ'&>ãp‘Gf€èqi^E5€‹¨(7Pƒ£Ø«f”û`0hõCæeëXöuÛDÎuûTÞC¯“䙣y4ì*÷½Ð¯ç¢Ý@š…ù÷mÓ…œrèkç,ôµ{plà‘Î6š{‚³F-Rrêñ—h“#l3%ü8Pcè8ë$€?bÐãÓjåÎ £hKTà8èØ@* ÌAc?/Uçj«Sv&+Ÿ[€z þ98Ó|º¾âºCBÎ> žëSÀÞ*`±€ÏŒÝÃEÚÄäTŸŠ;]jjÞ“’¯ý̯¦A½*:Ø“BÀ‡ÓO–›Û\ÚÊþ,Ì vÌraG§=›å×âóŽ dÄ¿ÍlÆ×-ѯÇäìˆ*_Ù¤èÄóµFÁÉ +§æ@O)>ÔÒ*j|v@C.=6Ö3¿®sY@e®÷ÝÞªzf—‘ ïáQ¿ŽS®T¨ôC¶Ð/Çfži•_—y”“y6Ö«©)< +žßÒ4P÷&á¡€‰u«Ñ)žE&ætßø‡¥yð]~«MÉö¨`–‚KGƒ{ ˜Ìm),l[ŠŒp:ýtñ?¹Qm@]±–‚g›:FŽÖ›º¾lqÙG:l¾_øð9R¦k›tf¢a¾XºÔ ;~¹ò¯]žàË6 ·¶¹¼ÃU6ŦaB6Dä$—Š”ÿß{Í#í +ú°Ãöó6—óÇ¿åó6{¶J…í«Ñ‰;RL¼KCC¯¾ë>]4>ƒëU +ö儼€±¦ê|^Xà`Œý˜è™¦¢§-¾ú¯]:% ©Šð«1i§óôª³&âÔ@-ÿôÞ_Ë_VO–øÀ÷¤l"^ìMÜJ.دÐÁ߃¹†³|hPûl\ßÝñ©°in1Ý«¢ä}2ñ(l4øºÑØ|²ÄB´´  +ýjÙ)àÝ*>«d–zç©>%9Àót§Œœ~¦ç⾬6kÉgx Œ +·¦ŽèÓ´Ôº<辜œµ/Ç%™Ç/mbì[’’¬Iº¶ùü)B1b€'ë8•0ò>> Î3!1e—±ãx­LÓ®¬Qòð{úZâÅ•áúŸãZIÂ*l j$M›ã¼k+£§ÜË?_xY·/i£—eÜŒšœ—Þ´Sª·gD¬´[DIŒjÅM¡ivÙÚ½ 0-ª L ªáõ›R ñ£?Ñ +jfÖØéÈKXx q»°#féUoNß\èOšoZÖ¶ö–W¸øŒü‹õVÙ7þ‡5ß„§xå K€ë•Ë¢*ë}âO¦›õ_Âïú6¡a] M±ª‡¨ùk o64]tð†M ゲ¥qy«ÿµ‚8÷FÖ=µÊiXzK,ÞœæÕrrÂ¥îZ™Tϼ¥œ\gm|¼w‹y9®g– &f%èžÆÈ4·°–3*˜kãà‡§9e‹¯IÇø{a“´Kq£ y}”]²ô†r2®7£Fq;x“3*¿YxÒðSp¢õHLßyp“€:…Dà‘*Ô!¥%ÂNðP烓'“fN}dš_³òšr&c‘0·æoŒEl"öü›¶Ÿ×'(ÅQ£„’tt«SÞ®¾ †U­ï¿²G×wùKèÍÆˆVFó=kýqyˆV€ÏÞçפÇQ›œï{Ü~HÛ]öçÞÙOg6çÃÞTºVüiu¨ý j0‹”švŠ([~©hkV¦XŸæVÍ>gä!¯IH+CäSaüz¿ÓÕóIY—T +6±Š:6õœš¸«÷æî¹ž²ÚP#­8®ï¸°ô¢åÐæ(·µª•˜§çÆÚ$p¢EHÆF+Ìøe¢Éþâ¯Þµ\J:¹mÛ^óƒ›CHLÓZ¼¿Õ>ãžÝ+,ùüFMRja×bvvmÜHÎ_z[³70Õq6n-a6A+ä_“0óêÚŽóãM'rNNKÊÏ€g^†ý¿ ~¶tm”v%8Á,Ùò:¦Î‹Á麛“ ?ç€Ã¶g$\ °$®—S´‚µ±Ž“a ~cx`Œ^„€Ï\%„¦xežû Ö‡:/ VVuÚÃmY óš×5ÒÖ QIßÐ*ÉkïÅ‹O©§´Ý—?[y]½?2E)Ü¡njÅ‹Óò¶™!yãÒ¸!¦4oŒ’Ïy6î›}Ñz~!l–3–'ÙW–'Íìû£wÝõî¨YÅYi?e¿Sþy`œy ±È)¯\²ŠÏ'žäW-]²¨M%Æ?W¼:L<=ÿ´f/øŒýQ­¨jN±6Æ+êôÀ·4¡ãT„§(——_´Z|Ñqdé5éxT#j@ +ÚÚ[úEÿoõûæŸ5üÓ‘ âzÒň¶£`c¢éüê(õbÐÐ-ŽZzT«c¤ þÇ¥_…&è…¡ ^Åæåü§ˆ¹=×÷$l“²—ÇÙW¢6µ#mcׇ_W0(ó?»ÕpäïåG> œØXA‰–‡¬²˜‰ Ú…’‡˜øàåmKäÓkc¤³›£ô áIniÚ%a¾÷‹XÛ>>1igׄ5Ìâð¿®§ºî–íqݬú +üN}Ä ÞC§ „ ]ܘAI¥¬¨t³Û–°’¯nN¶ß/‹ÚYWÿí¸uðÎú´ÎOÒ<× Ú½$4Õy~þEÅO¾‡ù{B°ßÀ'ݨ¿÷× £¸çwðZ”à(¯.<ʺ%žß#€O"ç%ô +FÌØß·6ĺ¼úšxÌv£ìsÏ­ŠÏAßç#ve° aÀ{HZ—4¡f9 1 +Ö‡ÛN¸ï]þƒënÁc:v3æî¿—t©”#¯>¤“â–. è^nÒªŒL´œˆ™AèÁ˜EBMÏ <¼¾²vI¢öÞÞˆIØžf^ OÁú¸ kÜ«‹¯8ÓòΕ!þµÙg•Ÿ¯¼­ývéUûÁåל˫oE5‘ ASL#j[bå{uŠd|¨ òò›æC«o)gC:vâäµ¥g¤’¤³ïvÌÚ%]= ¾‹‡- ¾ŸN]£_ÚÔ ÒVó¶O"ÊAߤÜêÔ¢äæ¼½w·`ýâ&Q'ðdMXÿñ½—3!8>¤e7¤Üªî´¿«/åóÒ¾ž»¨K!A"JÊ-d!v! ŽX)WÖ§Z§ N6†içWßO­2kFó½O9ðï‹|aÒÞqmu”QâÎ8ë{Ê<µ ܘ…m ÍŠÃ:nKÆ#V˜•ˆ#Sܪað¿ã¤3KCm‡b&N#®£üú]ý¹W­§ý¯É SüΘ]Ù•†Z›©…Q#írz çRŠ·Ü +qÊ!¡®ŒQòæ^4~»ð´æëÍW-GPñjÎ#$oùÒ­… s ‰кáñæC‘‰ŽQ é,bàT`!…zFÌ‚F|NÚ%e¥]2báÕGô¤Ka¿6¤S#†na`ª‡ÓKÛQ‹„Ìky•q#¯µÛ0»Œ…~·?¸úå¨ðàßÛ»/ý§„™ÏkŽD¤Nд9)¨Ú‘Ô¯¿cä{ï”|±çxG:Ÿâ–!àSS6 sËxˆKD|ª8U ;¥$¤«9šªØ·ú®v_¼fïR$­×ljX•îÇå™yVöýæXó™”Õ~²¸õ’÷5ñÈò§ ¼ZwD'jqÞ¯ÿÎwÿÚ×I#íZÆ.hOXM+Ãíþg°fohç65]̰VÒ²2L¹8ÕSøûéÅØb^L‚@4À[ïÀ㌓Χí +jÂZfÙÒ«²Ÿ—~k>œ´ :’ŽÁ k:bâ€e¡iüx¨+ £1<Ñ×Á+qËÇ9% G—*=7óœrjZ]ûµ÷NÝ_ádÊA¯Ìz¥Â¨IF]Ÿà–„uJjPÓËé{ËÃäsŽ;¥´ß,ý½ýVégÐË5iWWê” Ó>¹sõÝ‚º½‘—ðS~.auˆy)¬“v vµÃëÙ«è ëùøw¢µ¦gúŸff”½[3"ÞÚ8á²ëNõ·)“°H=˜´+ ;¤ëb%,j)bU)3>¹òÃ’êôAg°4jà7nÍÊåˆK@Ž˜YÕ U¯F´Ìò´›ß±å02nVKÂH+_|Õôýæ8ñüö¬r0¢gUϼ¨Ý;û´ìÛå7­g!GøOfë¿7õôo@-E=2qv©÷ Ô+ÿÜÉNÉï탄ŸPèUÌÂjH˜¹tÄÆn_î8Ôs«bf~óæá´÷Aé–[>…cª1å +j!å#À§»˜’s©d—Z6òëÜO¾1Ý(úCÏÙðÿZøÇ-ˆ¶=£PlÍ*ä˜SÐŽ~ÕñêQ³$<ÙtxåMýO˯šLRóâ&nÕ¶_*Üž‘KÓN 5aÁ?Ðp00Í(Œ€6O;”S!H;¡>ÁÛ®2°ߑizQBO/‰éXUA-¯jþñ‚ïiÃ/ëo‰SNÓêhÃQÿ³ªoWðYß’Æ ¦›³6Ê+›}H8¥FGi kh¤G?]xR¶³‹©˜GÝ›pö †LJÖê4ùâÂPíáÐñjp¬ýT`Œprs¢ýÒòHç¥M‚2ª¨C%I{åüÆÙ§M‡–_wæm‚vŽéУô²µ Ò™À4§4eå·¦¬¬šÐtç9÷¯W>sß»úe`¼õdÂȪå”)QÍÒ;n¡÷ ýŒóNóÞ7ä3î;åßÔ…_Zû ? ƒæNÛŤˆ_ãÙtÀ}¿doB×–ŸvPJS”âÍ FYDïj•”¨q /fwlŒuœqݹú§qѱ߭¿¬?ŠÿPÂÊo‹ÙMà‹ÖFå+¯eu³¿ÑŽÇZ¢6ÂyÄJ½š´K`OÚÓ¥ßÐwȹ«S¢¶…—Œ¢•7äÓcüz~ͪ ` ffļŒ¯û:ê”r^KÒ%åÄŒ’ކWœ`\Û#ç…ôÄÌ%¤egzî§foŒ¬h8!=«±ò;“V>ac¨3Ïy¯ê°ùVÉþåaÒÕ°~°/ é;‘ò}/ZNl/ö>‰ZÄ$|ŽlÖ +¾ÄÚ^Ú® +±KèIWÿ¯)—º?¢§oL´_m9²1A85Îd¼ôºÜ²©k=¾:Þz´x—ZÄ*îLXDmøûã—`?σW¬Z]<ƹ¶1.¬k»ØøgÞÜwë¿ÖªŠÿu˜yäwošNl†æ|êþ˜µ·{vXX¹6%¬™äô è‘úÕ¡¦Ÿ—‡ê¬Ž·Eœ}·ÎÞëA£°3a•26&¥„õ^)btÆõìÊõÑ–ƒ›„c!-ùRz/aàÖD5ä ¡irþò[ÂYDϬ¯ó„'›oGlL *ÖÆÄÕËâò…g¤ÃîÛÍ“äÿã˜0ïÓ¹Õ?¤¬´ÒŒ“×Öѯ¬Ž“ÏÂþ5Æ ¤¢àdó±Ùç߯¼n?–˜â”§Àï –žžAJ\xG=7û¬ýøâó–Ó¨†Z˜42Ê [–‡ñ{}‰§ã:AóÚ[~…y å«À81|9ã㑲n5ªï(i¨×+·9f“âöÁ{›ÓJ†ç éÄü+‘µ¡¦£ˆ•V•öp:Ó^5ac·,¦.N¢.™0hä7-·Ýí8›¦•`.fó‡E‘x{NÚ¶ðY+zF þ½Ð‡=з-sÏšvÜ­:0û¼þlBºÉ(—Ì¿!æYÔí›"ånjbf9wññÜâ“Úµ?‚gº’tŠh[ Ý÷0—D¸8Ôrpm‚\5 YI'Ÿ˜n=ж‚·§\YÓ´]Ÿl?›õË•àä1« ±ñÉY¿D™v I#¥øO³w®ì‰éhÅ)—˜–õt©“VAëÒHÓAÏãÂ߇Æjö'M”‚¬×œqJ(1£°1Œ>ú$ç™l?±159F½˜d…õ¼š¤]ÉÌOZÅ-ëÚìÓÖýÁIZf“1›Œa½]ÿ¥¥¿óÇ…Çâ²ð(ô*½låmùþ‘úãiYûÚ„¸1©Åˆ¹G±4»@ñJ%Ÿ˜Ÿö‰˜ Ëøa ¯Õ÷’p(0,iš{)®ÓvUýiéiçÙ$®ñtÌŠ´S@Âù1å”0Ö†hgB“´K˜MÔ‰šÅ¸W wœX}Óx<ÊÅèðEÌ VA^â]ñ?‘\›)ªŽLñ›"“Ä<ÓÀéß/¿*ß·>Üz(jdׯÌ*ñú0=?4ΫGô +¢wÌ?j?9$ºøÅ„"ÿ«™ôÓKæQÔ¶:F¹à¼]ñU\K-JÙÙu7§5çáun޵^°ß*ûjæ1ñ8bWˆQŒº¸Íq¥ÖôT|šŒcë6ðdÊÑÝ»1ů™}E;Ñ/$Œm‚S ' ƒg>[n:Ö3*#&Vh/iÐÀ* è(—âVVjá5€/­OX§,­g6§ZO&BZn¶ÿ)ð°*¨a\ɺ%Üm¿˜‡¨åž[Õß/>¸¶gæañ!MgÁûyÕ­íõݨAؼ6¸ûX‘¶rQ3·)8Ù^´2\}|m¤óLHÏ(Oy”꬯çVtϬ[HG-M¹øAФᱦ#˜•Qƒ8…q—ˆˆº% ö4fæµDô´òÌŒP ZQ‘›ar^f}@Ë,^xK?œ4&,bFÖßs7å• +‚€éë´‹iÖ5àõ6Ô%fy^4Ièxµ[æ.aÆ íØ]çXŸ4“/!ÖŽó+£?"ÀO ¯js’SÒ²J¶gøä_ +¶Ù)³nu¸íØÒó¶Ÿb“ܪø´¤-4θž"^t?(ûR§¼øéâÃÚïA?7nyá¼-"ðâΰAÒ3ðjÓvVe\ßp0ª©þ!<Ýv24͹5ȈøNùòPÃúž¼ßÍ?ªßÅ?',TH2.Nø×ªŒ[ÎO;¥ì„žR´øêê7¾Ç—?[yIþ%:®"FµýÒ¨INáœ:Á*Eubfíí¯DÞn;§ä…¦Eu[3}¿åfÔ7RPGq;¯)éä5c¸6ò ±iFÉÚðuôâ3rbãÔg¼BjÖ/ ÄLÜÚ¨VXŸ²¯ÖS‹–^Ö|‹È%ïÝ*9fRp–ßޝ¾«ÿÿÛâÚÙ¥·ü¢FEá_›yM9gnŽP ¶ÝBÚßf¥â-¯ˆ< M±Kâ:µ eé–Í¿ תëþ<,¼ú)hÉÃ)k—(ãV)Q‡”±#“mùyTÜw®Œv_¡^ð=k¼`^MÛ.FåÌp:þcCNÚùþGå_øž´ŠšÅôˆYÂ\xÑqdJuù³×Ücÿèý­ú'ÔÌï|?/WX*Q¯ÿNŒ[ÌØòIàÍ.?¥|ówæ®ÓˆMv^ú0/o-ÊT ñŠÿEÍ7¨S,ÞZ½iú°Úý$n¦Ô¤‡þQ+¿øé +~ÿ’Ž]š°Ú`}OlŒqÊ3)gË/¤‚ƽ†YkÏÍ?½ðõCâ×·:\õ]hœr>k²AsÖÎoI[¸ui¥³u^@Mg’víâ;Ê©•·¢ê°vP•ñÈyÛs| +6C-[Ž9~-ÿ,ð†–Ÿ1«xþ礳£²¼?$8¯pJり-ྌ‹V†Ù)EÁ â©Ð$§ °K…€®Nè©ù³Ï/ý«÷á…Ä¿1aæ7â÷ â××W&X…so)'—_3òÞ»øíÿû<’vQ*‚ºÊýK×ÿ8wh{F&O»¥ìÐ%öIÙž•ו{Q §8ÿ´üóÅç ß§Ýâö¼²;3£êNº¥\¿ÕÔ- +[»ØlÏí̬z0šim²óÔÆDÇ Ä¬ä&í}Qð޳oH'ö.en^Ùֵ䙻/ýÓÚë¦ýCÛ‰¨™\ˆ¯÷Ì0«Àô+ãèÚx¯,ã½þ +ß×Öý¼ööêÞGÿ ¼àÙ´C!ËÍõþæ{E9¸çОƒÿ«—}ràø‰£'~:râð/‡O=zðÄ/{Ž?yô§_ž8~òð‰“ÇÚÃú<èÄ‘ŸŽ;x䨑ƒÇ>²‡‰tþîèÉ“'N?úË/Gá cŸuòä¡ã'?þÿrÐÿíå˜ÿ=çÄü„úIÝ'ìO*>9¹gß÷{êë «<Ò'¼ÿ–Ü!<¹ëw™Æ$ú/¼H‚ù¿žÇ~òs>ILë$]ºÖpuO}é'M{>.'þ+|üœÌ‰cÿ-•G÷´ì9|ðОCÁúßõüÿë“þëÏ{ŽÂ :ññ|îùø>Ù»÷ã)âûjωc‡ÿ¤þÊÿ3 +šP‹‚×+ha°68Å« è8 q §!ífÖ¢fÒ•¨†\7±*â6~ ê”q#^ãÚ%/8͸šâ”"Fqf‘1P³‚×KÚãFa>- ÿVÚµIqÃê»lþ¹`í9?:EÍOS PíJLÛ~:i•Òbæë·¢–¿†-Ýòà´¤%0ƾ²9J<Ã'Ï'&ÙWQ´-eQòæ^2‹WÞrËfAKPÓya}‚ðËʻƟcòUÌɬ‰kÈ—#«*i1‡œ‹˜85q³$ªc¯¾í<Žj¹õÛî®®”MDJ-ˆYÆN¹å‚„Mؾ1IÏ_z×z(0B¾ç”&MrV\'!D§ÔwÒVTÛ# C>¯;¯½®ÿvùYÙç¡¡–cI¯3ÈÈ)‹Œ¾<ÔvlþQíÞ•çÍV^5YzYõ]x¼ýäP‘2Ê™Q-§<¦ãסf 9mW‰“NuwØÐÅ jTôIqs`œ×ŒÙ»»á|:+»>ãÑàAMYE §*¦c”ÄôüÚ–s-näÕ$­¬ê…¡êVFꧬŒŠ¬MBÛrËŧBˆÂž¬ŽR.®Ñ‹‹RˆÚU¢ žq5 ¡DaRn3í—‰v u]Ë(÷¿jü5IH1³20ËÓ>™,;«¾•òˆ™˜[HN:…””KÐ7Q‹zê夅v5Ó˶½ðzn)s +;Q·5áàµFLŒk13«s ˆˆ]“rˆé—J‘´‰`_í)§˜š´‹™=­xCK¾œ°ðÛ0¿cË#彟QßÚ†×ÍúTjÌÛ¥›¥ô€AØħí@ý!•2 µ†ºúî¦=ƒÏÒÎî^Ì®`1-ãñIÖˆƒÓ˜tòÛ3^™ƒçÄtœJÔ"¡%]}·“n9?ã“K³3ªž¤›ß™°QËPµ*n¥\訓ÔRíÍŠ_ÜHùC¯*iÃ'.“ +VßÎƘ—“vXK¯J‰zĤƒU•0PŠ“&f >^6p*WÆÈgV&hù1‡˜´4B>žâU$P#V%± +Û£:JADKÎêEÍsCÂkˆ­§µõô„ôÐSm¿Äõ„Ó˜™T4ó&VyHÏ® „­ »Z3HÚ7†)g–ž5¿ñŽp,2Õ~*©e–¤ ’ޏ‰ß4ÔuéwÎ{Í?B/v"qGhºíÔò›+Ú©ø5S¯¤lBf•ÓQ»œ‰Úì$œfSp’6 Á§LéÅi¯9åà·fÜ +qnF¡J:”B¨!nÔ h O ª“fQ +õœ žYz]±×õ[ùך®òÏ‚oô„VÍ ŽÓ/­¿nþqþaéŸV_Ôþ€jÈíJÄÀ¼66pñŸýÅ_ ÓÂö´CÁNNÎ<.üýÒËÒ¯’òŤ’Ö`µK( |*Älj3]²-¿z0í–°»”µÀÉøznd|꾤úÙÄ­‰i¹•ˆ†[•¶òÓvN}ÆÉ©OÛØU ­ >eQð’F%¢§^É8 lbRÚ%e¦2VÊ©¥Ü=ýˆMÁ $„˜QIGm*!æUH“> qIY)¨s¼7·Õ7ÔôÓÜ»Ö#¿úNj®ûNʯTefÔ×ñ)½zþaãÞè$ãJÆ-ã¥ýrqÒ%èÀœbì4çVJ³s;×Gyëã¬Ëa“¨-`å6Mô¶ò†~9mQñsΞž¨•ݰü¶ê›µwµßEôÂfÀGjÒ­îŠZ%Ôµq:¬`Š•Û˜µs’&Ja`Šp|émËþÍ)zQÔª`¯Œ3‹æž¬½bœŒŠkãö5DO+ŠNS.­ wüb¼Yñ‡å·äs1£¤3dàÖlŒµÝj8šÐ¯¦ÝœVÔÌ©F¡wð€Úc¥}7RŽî.Ôªd#asÒʬÊz€íTàV-â –&ÌÂö¤U-‰¥Á ij”““FAãÆhËAÏý‹ÿl¿qù_×k¿Ž()¡Iqãú3oó-ý|è-íª¡n ×í÷<¼úù싆Í÷ª¾ò=l>Ž™¥ì8`ÿÆñÌòËÆ_BãíÓVZIÚÒy³ÑÊðIAà7¨¥Îœ·«+çQÊ·ü2IÒήE o0·B”ÃkŧêJØ-I‹°-g—ó>8¤Œm³zËC¾šqw†Æë&&y ikoOXO½ž"œÊº%ìm¿Bþ·UÆ#å"61±) Ð ›”ŠXL~&=€ý3Êžôl×`z¦«7í• “^1sUC- ¯@ÜÈÌu]‡Ç@n¡ûnvN}3ãí½ ½ÇÁlìꨞp +µÎ$¬í‚††#ACë)|òEö éSP¿5ía7aNJqÚIŒn;±2\û]LËiÌ:¯?I»{oÄ­bRÄÈkŒ™Øuˆ×†XDíŸR…yÅì$àrn®ÿyÆ?øqu÷ÄFÒE+M»èY¯3ååQ¹xÓ@+è-«Ó€®žþ¿Îɤ[ä3;§.a¶fì†-'ùJð3b–a_(ioÿÔ­”çµ…´Ò„Õ˜°3ª#Ƶµ‰¶Sî¥ß,?¥dÜw§7G¸%K¯;Ç)2vnCÆÆ¬Î8¹Í˜×˜v*%)g·:iW «œ7’qkêcý ÚV´ô"ÝÍÊσãüº¤t–QÐ13Ê"Zb>ffÕçøÔ:…(få7¯ƒŽY¡KBÝ„&xe -¿ѳJ“f|¢0£µ :P—R4ÿ–|Ês¿ñë•×´óóÏç×_3òbÓœòÐíR`„r&4NÏë9•ˆ…[ïÝzhí ú³·x\žtq›#âyÔÆ¬ÀììÀëæŒ 0Ã.g%¡.P‹Z´½¾=Ã!$¬¤‚ˆ¾ýTÌHÉO˜¥IÀö˜‰WÖ +ë“Üòà8 ú’y%8ÞqzãmÓþàPç/¨–_»úŽphå ùxhŒ]¸úŽu)2$(Y|^ûéfÞ?û~+ýsBÇ«K[ü´C)ZÁ'Öë%[îž›YØ€¦ýìâëÒ/V†k¾ Nwœ jWbf|ÒŽˆ˜0 3¹ íRÊrž®.àl!æâµcN ±ò0›¨#k—Ò²°–9£,ë!%mg‚“¥_wcPkË£­GÂg¶@_¼ŸU(ÞC­$ –ãf~3b“1‹ŒŠ‡&¬ì*ôæ•ò2óêÛØŒL„ùä̧ê¾Lº„ĸ jÁ/åoÍ)Ô[s2YfF*LAÿlÍö?ÍxUj|Â]TO/Î9Ŭ-¿˜—󋸹;íá"F +š*ffWâ“&Ó6);ë²0§µ/¥Ü–,ðMØÈ©ºEI{·*ã’qñ©K ›„Œÿż–„Cرµ ¾›™•ÉÒ ‹r ½2³ì¶˜‰œ{\:UY?¶°ªæG¨gG™ùOßÓg$üŒG!O¤ìŒ +ÔÜxl}´éàúù\Ú%fäfzîaÞî”·çfÒsýeÚß÷ këyÝòChš|>maVæÜ2~fN}+4y£+bÍmd•F Ôüˆ†p*meV—סV^S@K+XŸÔ…ôýª°IÁ@ Üꄞt18Õzte„t*0ůŒš¥äåIj÷QùŸ0àᤠjÒ&¡Duܪ˜8ÀD-Œ™¥I+»fsŠxnáEÇ¡„VܾíêéIáSàÍô’°z9bd^]¥Û¥çùßŽŠ ?ü¯ïØ…LŒ+‰ˆVAŽO±Š£ÓÄsk€ï‹o÷Í>oÜžd—®qxÝ4hæ` bn;ÕÖýÓ5üÕµþÕtžMX­k:^ãú(9ot$hGê–—O‚}«iˆg"šÎÓq-éÜâPëá±ÞËÿj»[ûcʤâÇMœª±ÖC Ï«¿ZxZùù“ª/7†ÈgFˆ§ºi‡þaî6½`˪–¥32zx‚ʰžrySG¹2°óÄ´®?@{D ¼Z[r^)¯ñ ¨)·€”t§ÂZ§¬·_&=½°vdÌ.hOº™Õïç$‚Ü ¯3ãc5nhI7Æ8¥ï=½·ÞÏKåï瘨¥éhDÛt(¬ k$_J98u)§˜ñÈxJŽ:{“'÷^Ç@Ä¡N£VfYÄʪ@Üüö´_ÌJû¤<\w uoÒ%ã¤=JéÖ¬Rõ~^Ù³5+ææ¤âŒzÖ ¾j9íìH»î¥}·F³þî[¹9¹,3+æb°¦ÐÕ˜ƒß–rH˜I»„–söÝÊB€ $Ìœ*À¥Óàg® 6VUØ@»Œ:•â¨YÐ60KRn);ã뻟鹋OUÙZPtgf ÔÏjHÏ‹…جT’p'òôßÏxo¼z¿¨¾šLµà:|˜¿ûvÎßÕB ø¹údRðtµ€•MI ·.¦'_Œè©q ýZÂÁnD 0ÏÀÔïúë¸C)›Ä {ú>xÔ}›U¨£z…óYùçˆeà&îW ð#>AÊ"hI;˜UQ}Ëéå¡Êo—Gª÷®v/M*ÛÏ)gç_´iÙeૃ°)2-n}T0ó¦yÿüóº¿d=bðéܲMð(˜ Ÿ’ ÇY(E 31?jh>¶øªâ‹¥Wm?Çu"ê”rÖ†)gczNMÔ˜ë»1Þ~|áEëû½š/oSŽýFVù]bJFO°®FÆIg"g¢Ó´Ë‘iZAp¼ó$b •Dõ¤Ëq£<å’0"zFñæDÇéàTìérXG<¿1>|ºã”þ×â?[n}þÞÃëÜòò:P x!½00M½ÑÐ +"Ó”¼¥‘¶#Χu?¬ŽP.'AÏÅðI¯VEDCÉ_nüqáyÕ_‚£äsËo;ŽÝ¥ÿÄ{§ùÔ{Ѐ•4p 2EßŪLÚí€Ù-8®¦ÁËÏwd€â)-¬£GµÔ|°:ÚÍž´Ó¯¥ÝrIfAÌÇœ=ý˜«w õ‰¹ùˆv5ºfá]Ýw›ã¬’¬W=€x8)·5çd7ÿ·¦í U¬´«q ­8ébTeü\Bp2í|„:úo!ð„/œÐÓ‹Âffiz%d"Â9·çjðïƒí9EWÎ/‚ö’d@³eg”]ðP%Z +úÂ¥¦@'aþþ'x˜­™ìòrp{AÑ“öp[cr>%(û›u)¥¨[‡‚FIƒ7ˆÃ'`ÝQД »*éÀ'ó¢VEÆ+¤ý +EÚ¯TfæÊàôxDš™QªÓsrø7UWÚ;ðótÃ멳3]Yà>x ¤Á_¥<ø„UNcÜZtÓæTçÔ*&¦œ +ðÊœZÄÌ†ÚÆ¹UÐ ~L•ñõþ +ÚN³È[ð{Q3¯9nàÖ¦à¼ô"VÒÑ{ŸT–„ýÄy#:f"œ]z{íËÙ'Åؘh?0ðë–5â:ÝÝú¿ØïÔïKDÍQ«,¢a—nŒ²/ã“¶|O[Ø¢]ÚòÉ¥k“Ì¢Iv1ø%ÆÒpóáÍÉúýéÚ"ºÆCÁñÆC ^CrÖ&è,Ïo­?a¦.QÎ/aeVνªøÒ}¿ü3ûõò³õUþ1ð‚ z‡Uá¸Wöõê«–#[v>!má5 pžëÃ-?¯¼©Ù»üºúà<<‡À$³5‹:2.5í´Ç€ÖFÚ¯ Õïs>¸ú§åçµG>x™uið#IððøÔ»ˆž]Ñ2‹7ÇI§“äóˆ™U™²óš¨¡if fWp3¿qu¸õ óÞÕ߯¿%Ú"÷?hùÑ Ú·è¿BüÈIºymQ#§÷F1‡ #`¢]o ëÑÿ íx’YPÿй$œ¨™YÔ1®"ö.uÖÙÝ7ð›£zX+àõ”ï®÷•1¯ǃ°‰]Ò1¯„A_'h…q-¿9å–0£vQǪžUâzÜ´wå5ùæ““ÄóñiVYlRFŒK_KÊV‡UmÐÌ×c‡["àKÞÖï‹j‰Q3x@'§ñ¯~>% }ÑÓ¯®ŒwœØ¦¦L=ЍFÒÑr+6F©ù¡ ÆÕð½Ó±Ë1=¿nõmËûíâÿ¼òŠp ú£ÕÑ‹PÐ1Áqò¹ÀhË¡Èd+p[û©hºÍqÚÅ”MÆÜuÝ€Y¥Ôˆ†”žj8€è[Že̤‚´•x1|›sƒGíÖ0‹ã:a#fÓÒ€}9¯ˆžv³êBº¦CQ¿ ±ªä V1ðgULÇkCu¼ZÌÀ©À“FfåúdÛéÅw û1“„‰Y\Ô$¥$ÍRjÍäÓþ:«P¾Ÿ‘ƒ6–°&FéâùTÂ,c¦}ý¿¡v!9¬Áy…]ƒXÅôô¼TŠÍ(”P›Œ”O!Kz«2ÔA+›Ç-­§âvJ1âfÖdss³ /fz~Ízúà1ð(ç½þ"7#dfçhU9?ô»öñª{ðk–øµIüZ^Æ'F?‚:Öµ¤ƒU· xõ‰Y¨×5Ó¯FÁ³„lbâšxÔ +úÊsë]ÚÛw'ãP0·%íã¶¥ðŸ õ:7 øD_¥ óÜžÀÀ¤¼]jÐ Lðá q3»"a´bö.i@OÌ ê:΃c¥ý÷>ú]§˜zŸMÅ\RFÆßsr–GgRøu4Ï࣌à> u ô_f†GħÕçæ*œã»Œ‰‚Fŧ‚ÖêÍÎÁ1³2IÆ''r6>IÛñ²å—¡¢˹{ïnÍÜNû{ïÄÝœæõ ú¥¥!qe`º[œòÜÏ€ÎJ:‚„õö«ˆå±=â¼ù2nu N óªT)_WwÂ$§¢Vµµöª“6ðô¸ž’¿®¥ämL0 1‹”žvIXÁIÊ¥ø¤ 5öG¦ÕŒÀ´¬umRP¾ µ´ò¦åÐæ()/eQp@{\L™k*)> þ[m>¸ü®õHpŠy5mUIRÖÞ¾xÛ„NÒ†•,T/nů+Å4ÄóK¯Jÿ¼9ܸ?2AÉCõ’ö•¡ö_Vß´MY¥tÄ"%Çõ”‚µwå_Ï?ºú‡È0|5¯:m“ÑpVÜšOÓvžLÖî‹OÕ|×4A¸ß“3à —†[¯¾k?“±+¥Y—º¼µs ɘ‹Û’0së³X¯->5HH)gßí°†veíuã÷Á‘Öc -³5rjP¯) Zfs’~9¾0k‘1·Á¿4Fð~œ‚ýÈš¸5øÔðôN |i0(í¼þsÞÁ<½wÓ¾îx‚xô¸UÜ™ööÞ|”&­rvÒÒ%É‚gÈú%\ÌËiÁ<ì†ì ·=3#lÏußN“Wwá2¨¡_ŽNq+cænåê;~It +êÖ&eWI²°VPsB Ÿtý¦â›àdÇń۴ø‚t +Õöˆ ÷Äi—\vv)’•4¬w.½í<¾6B<¹6Æ*ZxÜy$6ÁÏêŠi(E;~íNHLYø- ¯ª¿™RýÔÈm‰€YxVóõú›úŸb“Äü ìyÎ&¦ çÊ»ÚCKO›~k8U Ï[„‡¨3)w´À{ð­K~œ[½2Öv$¬¡‚å­1K2N)û=èq¨IÖ+å€>§¬N¶[xÛø}dŠ[µËDÞÇ„Ÿ×žrKPÝà-È!gW‰2V1 šœ¿•~å¾séO‰ Ò•„Yܱô†|"¦‘ã¦e÷P«I»°rêæ'šmj©WSŽ{QkoÄ,¡`Ž›O0ÜC€6­#ÇÀó#QgB¯Äuwî%L +æS=åRss"Þû%‰ôÃ’X„º5aèAÔ®VÀC™rª$9÷ ‹“.…8 û~N}+íÒcÖÎ\Ûbæ.>bP2Ps—¯­­ù>à­žôcMö†Œ2R©’¯$ïkö…„¡[˜ñÈ¿ˆŽÚùÍa«"åR3sBæQ*P×ààYбËx€»ê¤¼Î=.!)n@[òÓ.15iVò‚Ó’Ì®–§\=ƒ˜³»7çëêÝš—JrsÊ^ðÿŒ¸ ¹ Ü[û¯Ç¬*^ÊÓÝŸ™í½Ÿ™|­„OoÏÍ?{âåñ΢;”ýŸ€ bޛ﮾»IWß­´O.ÊÂ~ç<*ŶWÊïiÙ67Þ&\˜~\5Ü}º0ÝÃ_3È)1Рõ˜˜SÊCìRNÄ"lw=j݇Øùm ¿%îü}i›Œ•´õßêÔ¼åqNqÎÛ3¸5§êÏÍK„I˜–°Èq³¤#¤ãVÅM’Îu#·Ír«~ïÆ§y{ü»§tvf•³bzÖµÙçÕ{ÃjÉʱpH˜ÿiJwã&êèîŽÛEĨYØ5 7§¹åKo‰Ç7ÆöçmÇFEEŸn¼¡–nyUx-óÒP§ ³j}¢éˆýîùš{T¾5pêC:VùêËöã˜^BN[¥Ì¸‘U?œh?>ÿ¬ü›•ç½ïÚórÎ}ê¿Û^¸í¾þ4¾s ©(x´¨SÖN"fj âà¶zÕîÍÚ¸­ïå*ÌË'ã×IQ¿ucŠxa}Œx>i‘Ѓ6f›éFÕkϤdÄòÛ4ê`´àžâW˜o–~aî»üEh„\´4Ÿ2Ù]ñ-¢é\¹7žò^5 Zq^‰™Ø•ËígF9˜ÒI;£F9#é¸3”t þ–pô Æqî°‹)-¯2ª•#†ÙÒ+Ð’f9{Ë×}kËß}ëâjú„›ô0j£ÖÎóà=[#F)uy”^ÏkÈù¯¿Nûn¼KyŸ§}½wp._Mˆ™ ç+½5ɨˆ^ÅÆ,×A³õÝÏÍ©PÐöq‡JŒ¶BágÜ!e/޳Kfž³ÏeÌý}ø{.x=àzÜ&¦çpm3/W àO‚a¸4b‘ ‚fQgÐÈ.O8ÄtèQ9ðSÞ§[pˆUBu>n:Ö@߸c § ÇÀg°šÒ~ x !q²RÞî5­œº4&ªoòkÚß}=åïÈΩz G”9¿BÔR«†e÷!Úžþ˜{à·ð)âì»™ñ÷=LûŸãúíý<šrr›g_´ž˜{I.Øo¾Z1ôI—4Ýì ¥[™é”õË•·ycŠV˜´qê£ZF1bç6gA÷¦Ake`Í1àõ„UF /ߘ敇ßÞšWõfæÅ<È•Öˉq³‚Ž€>‹Úø-‹ãíÇ¿6|œà4åfºoFÍJfÔ¬â~Ä;+ø½¸5K)°gWÆ$Eÿ‚é{¤!ƒ˜°©e—DM¼Zð,1£ !ab9Ùú¤ãøKvÞï–žµ_Á¯¡#vÜ/±kFJÁúxÇ©¹'õ"Œk»ŒƒØ¤ôÈ0ÿZÎØ« N Zæ^uF à­L‚6ÌÌkŽiX%†{uß©üOšîŠ_r>õí°•S·ñ[Sv… çîêÂ\„¼°¦á`XK8±þ¦öÛœ™VšžátlI³B˜†~F-pB{Ê.cÍôÒ•!âYD§’¥3:ú¨ÅÚ„Q-Œëռ褸->%jé$ó–üÊïÿ%<®”b®[o‚{îí\Ö$íVîQ â×8âÐcKo™âz u*¤Q“‚µ¨q‹”’Ãß‹°ƒ]=7Öqù^û‘C¦¥¬-oï]Ä&$¥Üb:Šßòñ¾ 1'í‘ g_S.¾_üOæ›Uûrþo×í¡˜ýúo« +|u÷ÀÖLWÿè3ÌÎo‰ê¹ˆQÒZeô”‡Ó’õJxið@Ôæx„Àïß0R –'¨çƒ“¢Úœ£»±q0§ˆ¶åë{vw©àáÖM¼º ·vUÃ,Y¥^ ›Ä¤™aÚ…„µK‚ùž¥fn¶«{â.);fB:vÙÜ+âñÍqIŽ™˜·çzÂÑwó)º0Ÿº?åU*³>)p‚±0&®^å—e¼J<ø®ÔÌÀ³ô¬zÃïîÏxå’”¼¾ãÖ«M#³eUKºœt Iùúî£nΆyäê÷órU<4fSŠ·üý€“SÀ•1«¨=a‚.tdüRÑö‚ç3%þ^+êS÷EŒ +ZÔ"£lèYåsC-?‡F¨zAÔ9Þ)nî%ÀÏÄ£Q³ŒÖrÊ7Ç™ yJÃÓœkpÇÊ0éôò ⑨VX3ñëÂ^EL/l +i„µ ïy‘I^å·LøaV*Æut4 ø(^Ú¡V€wéŽè„­A ¯*¢ãV†Æ¨ç1Т1-¿6i–s¶qí\¿>ÖyzæQÃÞåǵ_ߎ&µ µr>~ohGaÖÞÓ•ut«â:Nu\‡_w¦—!&ÂÙœ“Z¾1Y<Ó‰”£÷vÒÒ­@Ìrf +z +ögkNÄÚžãR¶ü&~­ +³ö¨’ÖÛÏQ˽aÔ~ëYÌ$"¬¶^xÙö³ÿó¬ã>ù<æV÷Em2î*ÔXTÿëË„ùîÌÙÓ—p;ºÎ³q%?ad§bjÂÁmŒ™@·Yûúf9o68Í« ž-Õœùµjÿ¶S.É‚.Áïu@ì7ŸÅ7Ÿ£¸>s >H8»º“œkëCÔ €×Òàýc–.QÔÞ#á¸õú4u I¨ƒÛ´:(çãu RQP[õ}ÒÌ®Ïxzn øÚX17îkĬ­!-çãQ3±pm¨æÛð4½ö†:ÄdòKÍô?N‚V ƒŸC¼JYÄ."ÍŽO.‹3ð|¼xÄ¢àb>%ÔªŒ‰•s‹¨ ðk=àŒMHI¸îL`sêÛq„™pâ÷_õgõÞÁ¼¸î={‹Ø|Ô9p?híR¬é9å¹™Þ{ÿ' _ùÐV¶Å›vÚ™NÛ™zK½T)PJ…–âîî ÄÝ=!¸(îî Q‚;$H‚içÞûÞßñvæ}8_B8Ùgíµ~²÷ÚçÔ|Íf—ž€ëèßÞ;BÌÑ9åD“W£“d07Å™œEI‡I üú|FÁ‰–C7©9Ô}%£ŸD˜4<žiNµ&ÁŸÍåÖü\.8žË.?Ró̺|ªÌÊ[uªÍÌ9™ÎÌ7¯7ŸÍñ8&-ic#€.ÁkÙäãY¾Ð4+Ê5H8È™i” Y ßÈæ´ƒ)l}å­%…Í}O“<Üz-lw„ðä$à›Ÿ*Rü‰ºÖn³Ðòpµ9áí¾YwŒÓã f“dÐÌ>eŠƒ1¯oüTÓP'JZÚO #A>dïšû`FÈᇓ"ÆÆ3ac˜eî?[팷Yï‚:ìR“iDYûbRÄþ8)Ü š_ÌF£¬uAO¶»“Þ¬d Žd七qRÌÁ$¾?Rµ?šEß$Dε„Xê` 6±§*öÔŒ‘:to’ƒ¹U{2#*8Ö“¦>ûR”ß‘Œ +=Q +˜'Ó¢Üc³À“fÄœ´í^F¬a‡Øb§É 1ÇÔ ¥§§D3vøàwGù(ãx6h¼AŒöÝNs>zòHɘ÷_÷%L˜ALŽ<’ñf-v¸d_Ž0~;Tcrr‘yoZ]Ô²3•›¿7UP±'û1p¤(¨ž +&g¡Ž§h©†qJÜÈ7£2Kt¤Ê-;\4ýo>ýø9+Èø©a „˜C9&ø§–”ükšœ|(G‡mObC÷&¬cuÀRózŸyïC9’Q’$¤X“‚…~!~s4Íu_%ÈØŸÎ)ßUr‰z¥€e׉q¹y¨ÌÌÕ+Y„}5h à7”À÷gÏð3NfÙŒýitìâhœÝÙ\^ýé|n-ÐrE?Wýš+hZx-óxZÀ?1E+Ê5÷ì+ÉÐIà'Õ|ÖÏ9ð#|Ð[ô=)5Þ¼} +ôÝ©`À¡½)lÈúPºó¾”7uSL‰›mA}Þæc<‘S’ö%0WýP¬ÍR{àK]oªÛþ1Þ$gcÚÓßcŽ™BpeèÅ´ØÍœ¿~á¶7I ;VÌ× +3uS„˜ÙN؇qŽðhâ})·Ùûª­ ±Xi‹µ;œ 'Ÿ(9D]?ÌÁ0†ô>5÷è©x´­®ÈWº®˜O‡cø¸9‡p %ÇêúRÍ=^¶;ch?Ý(±ÖN 3N€ùîKó=œdbNÍwŠ0ŒSÍ{’F) æ©xGÂÚ™–úk† +ÿg†’öKËÄýša‘LRÒž¸7AŒ8”r1;CØÞ¾;LŽ8T¤{Ÿª‰@›pHG澇Y¾`CLŽÐñQGÒ’†ƒ© Ž® ïŇ˸”35—±/%Çë‡aN[)ŸŽÁ˜¦2¸ûîHÁDÈH‰‡JrÒ¡’šúk–Ëü5+ÌޞŠËÌX ø)3Ó¼¦ý\gaæ‰ +Äaø_= è1øÙ,‡yº×|¤Í©0¯ÏžMóùÿ™ç°þ™cÿ™cà “iî[#±Ö[#ÉŸAü£tãØ°1cš*ª9UTŸ(2»ãÌäíqbs„¿9œîi y[2{xK£ª¨ñè»ãEaQæk¾Ç¡‚šˆl2ûT ‡lRbä,ìéŒ0ç×/ãx–Š2ª‰q¦êp–9X`Ò”jË%‡ûg³JÎóÛÿYÎï9[˜´\æšM2ýÿzà™ÌýÂZQþ³«•Ä„#5íDK^†»ÔƒpÑBŒSôôåQŒÏ¾¹ïa6¿ùx¶ íh&#çHËahhð}56~OIDœÍåT™¦32A|wÔšfx¼Íá„ÏGÀw/•{pøH!uaÎË P§3<ö‰ZÈÏ„> +u¤dÀÿó||î‘’C0çá ¸ÏÙ,_ôk!³Ô¤åów$hÿ­~¸#ÐüÜceä_”a‚u0ÁÀ˜¤YÅgŠü?U™9À7§/wÀôÃä8s:ð§¨} ðú£LÀÚh?FÊ6ð›b´Ïf?!À8^Rµ3šÉÜæÂ¶{©Q†bÔÁ$È)à 6Ñî»CH—S%>þÈ£„‹4ŠEü#Yv‘I‘ ôš¹/{Ô†IŒ <Õ“zküßvrýìŽ'œ3€w$gaöåLä&Àµ½1jü‘ ÄF‘e^³Ñ´Á?Ÿ<ùß“z¬D‡îˆÑÞÆ÷ ‘2lȱœß•¸ÎOšèîÏŒcÚ¯yAþ晀ϙ: ©“R 3ýHgÝ$»£¹%¦CM’ìœIIã™"§po‚¾ÑŸþu­+ÑZ?”ît(çS6†ØI[ƒ¬¸c 1~ÍdWüÔÒQ&%Àa%=íPÁH3š×{•™Y{r6A/¦&/_tªòŽÍÚR%>šº3… :9ósžŽ?]à WŒŠÜï§sù-gó<¾aŠ d ,Òé4òX, )³½PëÅ^lÄ}{\x$;{o27owâ{½Aú½ðLîöŸ¼4ÎN]¡EiŠÚŒ@¦…Aξ2»äP]hšÎ3ã‰IMŒÕ‹qûrýl>·î`†AØÓà£÷øð])6h_‹‹<œ6÷‡÷Ÿ-嵜ÎfŸ‚¼ý¹”Ûr²È€±÷ß3¯‰‚ù2©éhÃ$ÂëXIu¡ž¨hð3 ‹ôŸ96ëÿ,pù¿f¸sÎîIˆáë#ðo‡SôTó +ð¬#µ€s Î)?žÍ­;žÍoÚã>ÔpiF%4!¹Ì5=x$ñOÍϾ¯—rл2àïà”à…v€;Seåi² +δY¿´<Ή†…3÷›ÆNþ8™Í©<~äsÀg€‡ÈgZ.üÆm”rÀop°gÓ9§Ó§ªìÂ3EvžiJÈ6¯ƒšû—§(°))Þ Æ™$Y"£´¸v{\Dß‘ˆ˜úQr_ÂÁž‚˜›4,òŽŒ†\èÜÓEŽû%/¨<–³ñº!|ÀÖ01x1 ­Ù3&žÍ0±'€‹¿—mNˆX£|Ä¿k¡ÀCœ¨H‰†q¤—ná2Ûùlµ.ùë™T$:QóXzPGò þ©&¯ú `â™2¿òX!dïƒq$ä8àG(GJ2àZ¸÷ÃTIó‰V(ÞôQêr{ºÃdQôsYI»£).k_iÆoÆ(0õ“\ŒAÎÆlI¨ [SÌ´)FòÚ0%â'ˆíOàG,´IÉ¥Íp¨æüß$¬ ‘‚ ßÓcOÔßT¢l á÷'Ù(“<;ß¼·v¤)¨?žÉ­¾Q¸u ðf©4לæp¦ÉÌ;šfá-°¨gsLò?æ½éy.Û¼} â1€‡/<ÑfdY°ºëx®¨×d>38ò@EJÐMc `žŒê þú-îPZX±//í2*ó+Ì>Ø ñöÁ¸¦ÂCàƒMšLà³²³Ê¢–MÙè¾:§è`Z(8Ðò˜;*L7ô¸œ…3Í>§$® 2ãödGê’NóÚÛÙbA×Ù|vÅÙBÖÓ4ÿÏœ¨È´¡Q•]´«¬˜8œ+ì2j²K×&x¸-)mR3?§II?5”ôÍa¬Ï/à‰þ êê?ZíLMO7Ê(ñ;wÖûP[hÏv6Ícùš€_9Pÿ˜<Ðdì)ù à‚3óÚ¸¹ïeF(2¯ç-{ Ð ãl˜Qʆå|ò¡ŠKÞ eš¢Ã§&™Ï_ŽgP bvúî8 h[6ÖÜó¤d㇘½4¨I†išÇ<›ˆ~.dä›f#ðÆûS,ø!ð?åB˜«üC%Ÿ j.öàÛ©:+àßrÆe¡%Í~­+í ÐÏÉG2!cg‚ݤFìŽågíŽf1÷%là/éi:à–úR>íQbN&3¸¿¦EY³­‰Ÿ7û)Ð}Y&ÿD•Á?5úk†Ã<›¡!ÿ»È dôä¥^z˜n”“bÞ7É)“àÏq‘ ­Åä˜ÃqjüÐѧý@J‡š÷™Ž•`|“|Ò‰"·èX•[~:Yøs†Mß•`Í=š@÷ ÌùeTdŽáÑŒSÀo›Ï'ŒR¢×:PÎë=h#%.Ú(Eû›÷!OÔÅm‡Š‚js¿–~’w4þ)ˆÓ¡’C2ïoƒ9†ýëa§rrÕt„yíss˜³ÆfR’â 2lஜc>a’gpNU9E@×™{œfDy'`>.pÁçâîªl„3¯ÉÿxÏã6ð-ÔT“`ȹ_ üŒÿ.³ÙÿYd1NT ̉šMù9/*9Y}?[Ì,;™Ë,9’ýs!«ü×RfÅÉ<_t0Í¥m‘Ãç©sËö”ú®<;Ǥ-høXhÖ@§@“(2ØÇêÌìà»ö•Yyu^¹QUÚ·¯.é9Òf•îk®GÓ “:×›h·Ö/ÀmO4(v•’UVÐUßÁýòNæ]vªðÍçWÔ™¹;SÕ’u~ÍÐ €ŸòÍ^~_IMÙ#}vĨ€}5éŸÙŒ¬ÿ-d–ü£åƒXp©‡ªŒ\à¿k•Ÿª9ä3 -íHEI:0ûc-—}2“Y²£ §ï(æ™+lõ jS(4kÃS€-Çfg„¦ï'ùïŽÒbŒ@óšû÷%¤ÈÝaœÏö1àp’®ï£ováÜt=xÏŸ> hX¶ ÔðmhÃ-Þ0I‹9ƒü5Ëc›×öd\ì®”g>çD>–)ÇR.þHÆB˜¿§÷ÝSbŒRfúÖ5j¹—´ÒEØÄùJ;c¤ˆíqrôÆ )P?”›oÃy/u·þ–ïˆ)ñ?BîÏ)ߤ` 'ʃ®õv'…ô½qö§"Sôß¹Ìâæ8 Vè(sߨ¡`ýÕ܇q8IŽú¥aÿ/ÀÓÿ‚ëðß3a¤0P/ñ'*zú¡”w0IŒÝÂG™I§Êâf“ªh +À«rà'ˆQûBä±’u¤ÀFìËiGÊ Á1àóžèþ)^UüXUôpo2ո߀c³Ÿ0dY¢Càö§xä€ 4X6ÐêXPÿ)ÇJbŒINÞžG8TÐaf½{ e¯ 8™œ¼+Exm#=O” Ä à,ó^àšôC%|d‘w.qæ8ïÎYë#únõà½þèäßž0>ͤɯ;žËü~üXF…JÉ&à ãÄPã89üPBK8–1Ó÷†q»c|´Q*¤Ne0b6lo„­0Ÿû …í’Ãv†ñ~úAœçÖÆ}kˆµÒCò_ëA;ÄX¿]1ÎäõÞ)|së%«¨®{¹Þ þB€7N²Íçðtè®í¥Ns:”c¶ÇȺ~jÈ©D@úxÑS€Ï‡“ÀOHh‰;ƒxßí>´ëÎ ÚíHJŽù¥eÊaiy¬ýIVúö9dœóh{“”¿Ù›úy±úÆ0@‹2M +i·¹ÀûþËOÿÑ +2&HÑ»Cp'ãXÊç€gÿ©Í.=VÿË;—Þ›ÝØ@ðŒÑÿgPÏ´t¤IAI4Žãƒõƒx?“RÈ5˜ûÄ79šöàñ¡’9TâôâtÃ8!Ô$¡'™kggŠG\¤EìMBxàyˆ¿Ô,ÌÉ#õHJKZho.Ý|Õ¼.}:'àŸ™÷÷dlózCô1xÖÿM`î»1É2˜@–ìJ*™˜Óiî Ìÿ?Zæp’¡ByìJÑ~gZ&á̼_Æy¢É.:5pªÍ.9™ásJ³g¡&oƒùÑ™{hÕÀk€¸kÌ<$È:ã Ô”“’{¤ 'îƒß2í4„A)`hòª—|?™aáOg˜„ÿÌs˜»Rthé 1+u©h”æåY¹›Ã´¸åÔ“šM8úÙì»vÇa[À“ʹ„]1;m¥—q +tâÐ1ÇS,ÔÎÞï@‚ <’ÂO$ôdséÉLvÙÑLv©y]òl6·áÄÜ4ÅÅH¹˜ÝqräzOÚç¥øçÅv„ƒ~ímÞ_6* “FÈý÷Šù<®ÌÜïõÖ÷ã<Ôåéo–ë1ú~¢ÿJÊa§ëµ3Ȉ^ëÄy,4¦XM—E?Xi€¾ÙÄy›Ï¬ë'Äùfä×ÝA¼ÿ¡„gy½7JÛì!x›Ï+ê{i!«­xçzÌzÁg©õAßGô1¯Ínƒü_m…ÛÏÔ$¿š­ƒÛ®µ¡¾GABØj/üër'Üag”´7Ž 4NÃtýD¿õ.²¯º*ùµ®‡hš`§NÃ÷G‘n{C°/Û}iŸ÷.G„Ð1%z³ï½Ð€´7 ³’WÛ’ß­¶Ä¿2 a|Ž&¨ñ†¬q `!†nv¼öG¸°ýQ.ìh‚‹ÜbC÷†ÙÉÝ$ð{èo«í©vë]°O;£hïÝI\°Qj^»¢& ·zˆÞÇrö¿³|þ™üþ#Þ¬v'„Dãd¶hWœÉYhfìŒpë}Ü”>j(ðÀ[ýÇ­>اíÑäOúa„›ùóÍ^NÒ‰2;è)_ ¿S€Öøç±Pƒ¶×wáÝ×Z‘ŸvíD¯ÕzÀf;b¥™ê¥.…½Ô'[®·á]×;ɾ íÔ€ñü¸xO£˜¿5@ðuî³ÒŠpXkÃ8ëºÈ>[$¯Í>¢¿ª:ÅVZ}º °Þ4IK0×Ùr ⃹>æj¶‹u©VÆa¸«q,ÍU?„ Ü ôC˜«4ý Áw©í°ÜŒýºÞŽu>ÓN$l¸Î|–¾Ÿ¼3@ õì¹Ýÿ²Ñ}»Úœd½ x`£3ýÃr7>`²(ìîr#ÔþLÊBïàƒVÌßiKx³Ù™l¾óy`µa„“r8ÉELˆ1Œdඇ2°ÌØéê4kUY’ål]Ú[mm꛵n¤ã‰”‘v +|8¨sïÝrˆiŠ3ÉÙè=1z ü­yMéT%`ɘig3|жTÈÿ1-Z?‚õ_êH±ßìÝK ^ë ,6a¾mvS# £<À_]ÁG×KôÝè@9®µ">ÍÔ&¿žoH{·\ýb襆ÿO¼6¸·~˜¬ëÃzlv™Ï‘b=öŸüïbKú—‰ü¨Ç3?RßêÚp.‹õi6 õ©oê`ï6ÚPÎÚ°·³5XP')k]œXe9Ö^^{5W‡ú´'Ì8N3Ÿ6þß E¬t¼·G̽U"᱊ÏÞšÁjx«é¤Z@ß´F âój;Òiw„j¿/æÂÌ{œÿžM@~›*‹{¢,{¼Û 0c¼ðþþàˆkœR¶ÇØ)+íx7MIÚ U1ô‰XmÑE¼<]÷dp‡®›dãCÿ·@N3Maƒv€f_êB}•UÄ>ÒV%¼ÜìD:êúpÞæ³]&Ÿ¶+å ôŒ(=Èíj¸ù="s ˆÓ•éVóõHû…VŠßþ„€|$¡$l¢< 㸓œ¿oî¹mC~Y¬C}^oÇêû0F13`ìÎ-ä¾»®ým³ùy¹ n§.Kz!ËK|±Ô@÷Y¬gûÏVá?/Tc?/Ö`?ÏU íV‰.³UH»õœóVÉg ø +Ãà—>zÄV7-x£ƒà¾Ô”þ~º.þÕ@fÀ~Ø uEê»å&„Ó6¨IÀ~K-xç¥fœãluâóÕÆ¨gê2¿{ËM)ÎúA|¥‹³7ʃë‡qË­x7³&\iLy·×‹r7ô¡=g+£Ÿ.·¢¾-·½7»ÈAú^RÀZKŠíV죾'ÍA߇øª©‡Ì½¾Ò˜îüSÆ'›si¡)Ñj¥5ùÝVÒe«å¬u­ï#l÷ƒÖÚ_ ÃŒa4—»9 L_h¢xÍÕ’]gªÐï5eÉ– ui6ºN¼ÏÞ 5j½ëz4ÉÁüË¡Ä5¤ùæõ)kàçMr&Æ0IMÜß6ÎÃîƒïÏ5@ßjÊãŸN—&½ÒV¤¾ÖVÀ^/Ö¡?m‚˜mu} Cô¨ínjÐz+Öq½ýuº2áàÛת"èÓÕ¼Û‘LHÛsÒ6Ìç.ÛÆx®vÂìçëÓ?ÍT§XMG>ìaz\RÅYn´ÜçkS¬–›ÓÞ+JâžNÂïL¢n©‹S_,5b4Õç~òýA~Ü­Éè“]À3º¢ÿf'ÆE×Eðcø¶Ô‚û¶ÖM +ûã¼d’q‚]ïĺm˜9®í6ßb-É‹¾¯,Nx<߀ü4–}«*C¸ŽsA +í˜oÚêT«éï‰O4%ñOvzñ~G“ŒmÌk»‡‘f/(Øêç$Ï7¢6ã4åÐ磂 ë½ŸßgJ,eÅÐux‹Å–T—ŸÓ¸ø­žÄ÷)vk© ·â^NäÞZjH|³/&Çœ?¿+ᢷÄìÔå²ÏLeºÍR}ºÝ|MÒ›‰¬ÐÛÊ¢˜G«-ÈÏêJ”c§ ÜQ׋ =œb˜ßÕ‚Ø—£vFáΫ­‰Vs•‘%Á·×:Ò¦Êm·û)Ñ&Ÿ¶=D‰XmN±ž«z"- ¼ÝFqüýÊæb 3ðf#!äöl%Êa¹ ï¢*I}®.N±\¨F¿W–¤¾àùßì ºý=[û¤ï¡Gé{Ùñ=¬ˆ…Ü—åfÄÇ©ÂØû“91³ÕéïšIî—G¸ÏwZéAÛÝŒð…F¢ÓL ö“º$ééjmü‹…1–ëui×›Pêï‰Ïô½B”a4O¸ÞÍŒœ­ƒ½U„ÝRæ„ÜTå†ßVå‡Ýž«…¾ê„YL!\êè^ÚòÔWË©¶«Í©¶K©Öʲäçã¢è;ª’„kh·Å¤Ëþ°€¼ÓÇJÞê¡®và\A}Y¨O§Zrª0ÄÔwØZ3b¾‰â¹Õ“]mÆ/·P¼fª’_* +ã( +ã‰sÃö ýïnõ‘Ã×A>mv£œVÚk@Û.4&Ûj«“¬¦JÂJòïÏTGZn¢ýŽå|ÆÞ(;u½çm~¯…¶,ååRüýª™#PA­¼]k¸ïõƒ¶@n®·`WáöÚŠËUÀ'ãYawW;ð^[Ãäú 7I'ábÍÞroë¿ôähFÄÉÌ Y^̃ñŒ [Šèój¬ïmŸö»@§mtà<¦rãõRƒ.·àü.7bý.·³ÂïL×à[ˆÊÒ”Ûý¤]/Þk·ßüîø‡‘ ŸëãÙa÷åEñOûx~·&GÅ<ÜF5H×C ^lH'/‰{0"¿>ʼ!ÎŽ»_…ðú£e9_qÛég'lt“çëaÖó•s³@}–Ä>ÑÖ$½Ïso¯‡‘¼Ú›ÉPÖ\–;ia{ã¹¹«ôHYaܳ^²÷ï]$¿«?Ò]ÿ&¸=ÌÖ%x¬uÆ}á»ý©)|lCyï#€îIù´;€r;'F˜&y¸íZ¸a\@Úç“§+I_µÈwÚ Ï”%1jSì ƒ”pqaÂûØw~S—Ä8›¤"Át=½?Ãÿîr[Ü«µÖØ—Ú²Û 5q/£Ôè +¼ó=]6ÆôæjÎm¾>Åzª8ÔBVxg,#àÆDNÌ£¤óµÂø—V›Ðžšš¤W¼À«Ýô Ë=ŒÐ+£Â˜›=Ÿ«m×+½¢ hÏÇçÅ»-ÓªJÜGYaô£ÉœðÛâ¬ð[ƒœàk½ßKØGu¤ÇթÑúx 丬,ˆ´X­KµáÞêÀ9^”gù^×VãÝ%98çù*šßv?7 àÛ·•˜Í\9Ôr¶,å•,7ö$+ÚB[Žý2À†½P榙ññëB=úãf-p®ûI[‰ø ­†}¸ü­,x¶ÙÎKXi¤j~ lW[i¾«íD÷Õ6ô—¥æt»ÅÆTmeì‹Éü ‹‰œ°{š +ª“º’ä¸ÔLt«AØ©J’-ÕeÉ/% O†Dñ«Ð>—Z(þ×—š1ž+ídEôñXVôí>NèõѬðûÒ‚ˆªïO×:Ó¿tŠü,Úh^Û<¨ÁH¸—$/âöTQì€O{Ù>·2Ü® ¢ßÿÑÇ ¶<¦Å.7¤Ú-ÖÞkJ±›©Š ¸Öj©ÁïÑDŽÛÍ¥.¤¯~œ–¬ ‡lR”"¬ª1ÕßÓÞÌV!>i7žóxKG³š«Mù°ÜBòR–í'󠥩¯f‰^k=Ì(³ÎË +¾±Ø„tP–Á¬”ߦîÀ¹Ë¿Cm¤y‰Og¤½5˜9£:ýÓ° þ…$?Õz±‰4•—b9[Cø:U‚¶ÄÞ–&=®@¿ËL|N ´¹8U to+Þ«‡|§“ìõç/躒äßžÊ ¹³;B›m†½W—Ãß)‹ÉN9+E1칦4ýæîc«(ñqÜ—‡çúXÁwúùéêjÌç~óïý‚o¿ð<ÿì¡ú\Ñ–ÀÞ æCŸ§Øü‰tx|~³‹ÙÏ ¿ÞMñ¼8Ìñ½,É +¹ÖÇðºÚMu¿6_—b/„}»Šv}}Qš™æw*±6z_çê’_Ë ãô³BÿnÀx\͈º×Ê‹¶Ht~ýÛ˜ öÍR Ös$;úÉdNì+iNÔ£F‚ûŸ \ªÓ_Ÿ›©°l„¿j ù?\m'ø.··¤ÛƒÚ°U—Ç=üÝ‚ýr¡f{~Dàkñƒx¯šú +ÔRàl5úólÜf¹ýy±õIQ +³jÄ:þшp¸´ö[mâàY·õNjÄR3Ác­ïj^S;ノ&ðÁšš¨WƒÜà‡kBØJ'z¶ûMQ–úfº"Õz©å0_‹qèÏ J +²ú£…øR×E y^•äøÝ–E?í¦x_—fxÞ]­²]ªü²ÑG™n‚Zéú(Q:à-TÀO*¾Ã^µS‚¯4|ÿd‡\×u ¿êq>=9/¨!Ï/-4Ò#d¥èOCw†3üo­4¤YnB}Q—'=W—BŸÏÖ¤¿WUÀ>ª+Ò¿ìe’7{IKMXGUyÜSmEœe;ÝÿZ^üÇ }üà‡e$ÿûåX‹%€3ràid)O¥ù1zY׋’œþ`ÙŸ›,I²*!¾Àû¾ÿ<ν­NbÈN?5bø–žTu…ï­Él׫b‘×éºô/%¸Ð'Â$ï;£ExÿÕN~êrÚi½%Éf¹>þ•¦"òM'õÓemE´õî:Sÿª)޾Øóš­Oó]kA»,TC_,5¡¦¾§¾â„~¸Xœâùpw‡Ü´p€Aܳ ˜e35ìål%.v$O0SOó•”D<–„X(Ë¢kËR_/ÖÇò“_ä¥:ÿYsZ…•ä'>™Ê}¤ù}!þ¥Ì‹~°Pj³Ð„úœw½Â +ùô—¢|*qV;Ò?ÏÖ¤YÏ× >K;Ì ¿#ËO¶ldEÜõ¶±8×N x=ÓDðo¤ù_+Oýô[7ÁýV‚ç¥i_ÿè¢8^]éHÿÊKûv‹÷îÊf!j¡ ùQUûPVc!ÿÿd"7æñ ;ðæ?äÁR=Ú%7ÝãZÊð/-LV}xËbh.meÒˉ¼ˆ{ ˜Ï—N·gjìš™^Ö[ð'òìý%rpð<ßvû‘Ά!¤ëFwÊi1ôÕhÚ©/3ñÝz' ºÐHp™«N³[mB}]mÅ|Ó6Ľ=óá¼ÑA ãû__¬E¸¬´Ò#çj0®úŒÏ§èé¿$TèVwú7ueÄ3ã©þMY²›©Ã}àÇYô2#njJ’^ìô¡ÝvÆp#%‘o˜ao/MWP|&òà¶Ýôà¿F„Áó•ÉoA=»/4âÝ·{HÁún‚¿¬$湺*éãf>ßÀô›oÀ:Ì5¤}˜«K:é,Î}?S‡t¯a„¾¨¡=]n'û gÆ=îa†^ëç_ïe…Þm£†?mgGÛÊkQniþï¯8=»©@xÜ;œ`#õæw‚=§­Ž{¦) ¶Py:W <Æ5ŠûõJä×gç»D‰žÀ…ŽgÜ“æø:ò»1Äývµ—þùÚR#Ôak€ÐÂð½7žûÖ$㓎dÜfÁw*?ÒBYo9À¾Cóyq¾*Ýíž¼á:œ`³;ÆÂnua×&èº >H×É¢èg?0®W«ž·çÛqƒÙÉÀßÀl6Ú©;CøÈ;tùÆù÷ˆÇSߣŸêY©Š&Œ‹²&ýÓV/+n½ºX—b³Ú µÞìLý°¼­².ýÛZ§€¤(Ê\hÄÈK°ïzyQõX¯?§ržlwSü¥̃‰lþz§¶Ü.„ÍԜՕ –ª’ÈûbaìÝnFà•:„ëm)ìãr;%t.tQÂ7FØpm öÛ˜(æÎdfÜý™hûñì¨ûÒ¼˜W+­ŒPEÒn® +ë°ÖJò\kʬ6ã\×Ûè)†a6A7ÂNÏLÿzø*×SUNÉö5~ xÞí~b ¾ïµ3HðÝ¢„mõ0¢deh§¡¬Ä7ú>u¼ ñe+Éé’8ÓãÚbSäÓ~‘Ç_a·—ª1Ž#€…ao¯,Õa£¤Bêþº;JÚì9.Ô„=ŸÊþvy¦*æÕḀ4|ÂdQÊóÅ6ŠÏT ôé?ôz?ÛûïZâçkµdÇ[“…¡Ue –šFRHÌåV+ÂnoP@Ù顇ŒØêAy-5EÚ.ÔÆ¿•†Ý­Jy¿ÔÊ‹*Bûß*HrÐ R#Ö:ÑÎS߬gkâÞ-·¤9Ì×'XË +ÃɫӾ¶²ïHò¡6ÚZœÓb3Ás x ý;u¶ ë>”›ø¶›ýÔa¢~ˆ™°ÙÏŒÓóàó`.çk“­V[áŸ>½TV¤ØÊ*SÞOT&yÌuà£;yAÏ%Ù‘–jS¿¬µÂÝôýˆ@Ã(f“"׺ӿv0=®ÎVÃÝ £ì´Ín¼çr3òÓhvèÍ1QÄíQQÄÝ>ïÓ¥–TÏ‘‚„¯™‰ŽWfZ)ˆÕv„›èßùÊ”·ã™AwZQο·’|nIKâ­·@íòc¿ýY…õ$`ìNš£¬VÚ)A¼”½ âÞ°³Ø†q^îÀû醄¨•VbÀz3ü£ª$ÖR–ñ`ã‘”‡Ýa&,uQý•ÕÇÝ‘‚¬íai½ï¥7ŸµmK¶ßKqÑ ¤;®\4NfqV€ïUU1=TßIŽÓ?°ŸE‰/Ík.ËHEYÒëéZÄGm3ͯ¯0Ŷ‰tUYf»ÖBöYo'y-·bœç›’?-·BA<ã^ªŠ£,֚ɡ+‚TÀã¯FE‘OÆDÑO&DQ÷Öë1î;Ýlèt-ÖCZ û°Þž—â¾–#/VÁ?þ>‘t©ùu{ˆ•¸3 ®Q|³¼/aãT9Eº‰lÞR7=L]‰þ¢ýþ¸P…ù¨-CØèÚØ +-ŒÈ~~ÐMeiì˵J·ÍXfÀ­!^ØÝñÜ$Ëé²'ȩؽá ê¡\ÀÛ“ðÈ;cÅÅÆ‰ì MüËHv$È¡ð;™^Ï—'®EØoödàgñ’ïÑæ› 6æ}*/Ÿ×[éÁ[¼„Œ¸—}ìÐ7Û]Âö09Û’b½ <óȽÍ6¼Çn'Òi»Ÿr—¸Ðl~¯æÛî(=^þ´‹éñ‡²<úåh~»n~˜¥¦"ÑÆ0Ì‚O£ž“îrk ¾?œÅš­Hz©,½7"ô¸ÖÍþvc¾!Áz»é¾ÝKœi&úd!œn &zéG™)’’Ä×-t¯{ý¢ÀŠò˜WªÏ·z°ÞÒÊä/ÂÀG›ƒ”d€¯¤¯Wx®·¦kßÌ·§;Ì·¤ÚèÆx­¶“ƒÀ¼¼ž­§Eî‰óD«½ÌuEšÝLMº}Ÿ0øaÍëÚZÚc[&âMÖ“Ò|¬n(êÓ½÷Æ™i›=¤€åœËr;Æexé~×½šëàÍ‹R]›I¾wWšp~[}YÄõ¾lÒz/yw‚‘fÑÛ“Ô¸ÍqT7. ÖÓ|îMEÛî qq[ƒBÂÞ0'Íîo’Q º4—µÎ”¯ÇJïç\^óî5y©#éì ü@š›gË mtSƒW>Žóë%–SÜïʳáwÚrñºN~òv3Î(¦'-µÂìZ+ÝÜ8óÙ…µ!ZÜ|cšýZ3üÓtEü›Å–›½1\ˆ~€c˜äaWûرó­ìà…6Q‚´ óèîÏ+ h‡ÙŠä× æ©«á_¥Õè/¥DßMä0‹¥FAÂZ'?qª,ݦWr§›ëwSZþr® +ê°Ü„tÞîgD϶¼%å)¯v†øˆµNœ—¢,äaÕéZ/ÏÿN þÛux§«³5´ˆÞB¼Ãw¤Ï•Ñ,èGÃ0s(¥B÷ÅÔ„­>œÿtÔJSþÌ<ÖC ¾ÖKÞê"ôc¹¼…6føDNì£.š÷ÕNà“^®ïÝjìÇ‹·ÛÒJ¸}%ÕçN/àÁR#.`½b 3Žò;CÌÔÅîäkChÿmq&c{8›¹ÔÁ‰×Ö|v\¬‚Úîà¶{~óõH‡¥f”ûJÑg«—[í¢‰ ƒïM•ÁíW:iA+¿a>bo"“»9Ì…Ïwá¼·$ºÉ²VݱP/ûûdV•'¼™o£ø-¶³b6{³É«íÌU9üÃR3>ÔY„n€jÞc˜©…ÚŒå…=ëËð»¹ÚƒóÚãáÖ™ÉÊ:ä7ݰˆ²5$@¯t|µ5Ћ )ïš’ìÖ°¾z ¶DÞr ÆM߃ ÞÀø,4&}Î ´hg¸ýÝÃú 0ê©a„3Läfng3¶ó9 WQ=ÔàùÄ;YIÂÛ‰rØ—é’Ÿ¦žàeRed®÷Ãg«ïUå(›¥6‚׿1lc€¶Ú‡Ú˜àkøQ… Ÿn¬´1éYYÇÆx~öò06ÛŽuÒ4"¾èÄ Vä"áL'5ÒÃê6$íûM?‘_¶< $jkáï5Õ‰/çšbž+«ÂžÈJÃÞ˜”¢\ãTf¾ø£­R„Qš[°#Îb臄H}?/uµºØD÷Q×SÜ~ƒŒqÐtÍ%Ô•FQÂt9éËléÛR-Åg­¦"7Æùxð¼@Ÿ~ÙíçÁ7»8Э^lgD€Ýd'nP—ۈn+­TŸ¥v^Ô|À_âìÔ×s•$ÇõFZàf+;nµ]¢­cøKò`/gkH¾+½Ùu3-`,?åÙpnò;MÁo«‹‡9Ïântá|ê’ìÕÑÏÔÕ©ïô™øÅF¬ÓTQäãzÀý>vÔÓô“ª+*¡¶£a/啱޻c Ø!øÛz=AR}¹/É+\œ:]qgÅ>Zi€[ïÀEoð);4Ý 7Ô{ÒÎ'u±>Õ~Tp­ëw£OàÿPZñv³`~Ç›9ï—:èQ[…¼AP¯ÝÌpm%ܺ‹â}yDäwc¦>ÑjµƒìgîÅßêᥭ63C–X@›ûÍ´À\d±öÒÊhÛ¹^œßl5YÓˆM2Žç”•kæÉâ,2¡;R>ëP™g˜ µí$ašë½Î¢ä¨]Möe€'ó ë;ÑË=Hÿ•^BìÆ%é@!äëÆ™HiuÒ›µABàJ)x{¸0c½/Ÿ±Ô.LPþÀ;©ø¸ŸŽz8Î'[ó)ÖÝ4ŒU-"ñnujâµ.ìž6íµ\Ë VU ?Ï´bœÔˆ+=t0ÏùÂêBgf𶉤©¡8©Ëi_f«8^Úr®çD.å}f¼ûùFLÌÍÉLŠíJmFôJ-/tª˜î4ÈF[j2I¶úÎÊ|gfúp öÃÔ²ûÖpQñ\+º ôÎÞp&Iöj)ɽµP™ôV×Á‰™®Îˆ˜Ì&ÛN3Õ…×¥º¦\ÄReVüTVŽOúh‚A°Z­ÈL\k$.5c¾nv0"õ"šn´¢U7œÇÝ`Ae)ÖâðûÚJQÔLS)Q[“7]Êr]¨ÉN—‹Â¦K9‹Õ‚`9k ý´•vO.¢yo¶f¥Ï5 ¾Ì6¤ÚëF‰Ñ»,¦AQÔ´§(ª×‹è’²¤wò0{àBtIJe«*Nz¶X ³]kBºnµ“¢wz8ÐõæL¨¬€ã8Sž®o+¡éÛòðËuœñì¸Ç@†äBÁŽ¢°ai,“:ÛÏIXègE¯ ñÓ·Ç2ÈÆ1E?À‡/´Üæ«Òmô]”ã°½Ú-L+G†_®CGÝçÒ¼öÚ+Šöú²¨ ðÏÚêäOk]x¨qª Ê0UP¾'ÍÉÚä¤m 2ö&33·Çyd£”G\ëMw[hIùª®„ZÍ4ÀìæšˆE0ÿۈȇã"’Ír7e¯¿0k³=;[Nv]©¥ûnwægjxi¹)V+-Dÿµ¢¿~ˆ•¼3ÆIÛBe»ßïæ¹]×Ö¡¾íŒæ˜kd$åŒÝL5-hh¼ÅV‚û\ÅC[Eõ¤¾奾ž*&{ÈJqöòÐ7ÒïÑo”U  JaîÑLÉ iº y¹‡£h@º¬‰³Ûò²ƒ:¿Ú âç:QޣűÏe•qÏ×pþûŠŒL£"·d­O_h¤KJj&¾×J +Ë6zá¾ò¾ÏUu‘¯ÖFpþ—<ÓHpÓÔóÃóéŸëèé·*ˆ‰e%†üAðuý-Ýéë¹ÈwöÇçÏ Oïü¹véäá_¿C>?¾uŽôéÏ~~âÃÅ&‚ß±RÀ>R Ø+#Œ¸Ñj‡þRêû¾›^úi+—ð¸Š~3;9ú2Ü“îï~Nèw® :âwA¸ß%†¿óo”çß¼>XBü¬^œ/EÄ<*A‡ÜÊBÙÎ7²CV»¹0m-ÅK[CvYhDÉk„ÁýÙ4Û:æYy'?9õONhج§Çù‡Oçø~žDá—(¾_.Ä|xÎóÕKˆÓ3 ˆÛ˨ãÛsU¨è;ÓUÜÕÎ,Ôz>g¾7-«£ºL‚Z–WäÇŽåg¸µ³ñOêðÉ7šéwÛ©Ä·MxÔ“lʽï©Ñ×S=ο}pòôÆ5ˆÇ‹'çÙažWZYIÏÄÅÀô‹¨—11+CŒdiÒ~¨ áÍB'=mgj±““8ÓBO(@yd§?áFøü•xïûíZ‚£ÝÕ¬$_‹.vðÝaÔm#>ܤþ³žÕ¬îæCÝxUÁ€ÝÌF'\b%Å]Hòñ‚xؽ…¼´¸y|ýäõÝ;gwo@._úòèï¿ nV–x'ûs刈ëâìØÇ†qzâ–„“µœ¤-¼àÁ +‘wkͺU”y‰~æãzÎýí3«!¡¶o!ñ!N/Ÿ@¬nÿ ñµyùøúäꥋÏ× —¿½9——èsEZŠ}/.†¿ìå§ÞËÁ½VVò|‹øŽUtÚcnì2:4ì\¬‹ $ôãgÈWKKȳëA>Ý»qöòáámÈÍ«@~ƒ@ 7þ¸Æ}òñ¡Ìão=œäǪ*Âgm3;PÛ‘‡­tå2íÊ ˜?ˆX‹ïXÄ5VtØ…Dç¯çíÞC¢í?@>ÚCm¬!¶÷- ÏA<î\»ùý·ß ÏnüeŽD˜àûûhÚn¾ëµ*Æ©›SßKK ³R–†EÄÉFNpGùm .íoZdД·Ë9”›#ãñ âeõòîÁmˆÅ]ÈK—!×ÿ¸y~ë*äx·7/!ìa.*ò:9ÜÄÄíœ÷[+ˆõ½ÛOBœŸ=ƒ<÷ûûâEÈðOoÝ…\½øäíí;”·óï¼$Ëñ„糈o{RþtN˜cPgåi{¸ š~¬¬Žâ6X€zÕ.@¾jf£­ aq7ð~Þ¿}xwî øÇ '\þ¿¾}r ÌåMßÁïÞBàžnH¡îÉkî«ýp/U¯Ñ”CxQ΄ßa’.3“/".$û…üæhýîÜÝk7 ·@lŸÞºyõà ÄÛæËRxÌõ,êÙ`6ÅIU…ù´5Ê„nŠ…8mWLÞž›6\[×Z˜á˜øƒpä{éï{.ÒÙòîÉÈ{p¹¿}ùüò˜·?@Lî@üÞÛœó¶µúâz³ +ö°‹ŸôFÝD”Ô¿ Þ²>~ç9Õp¿“1÷ò ä;¸„„?íl!NVÖ‡¯ Ïn݆ÜÏi0óÍÝÛ‡7oBþúýOÈë×!ßž¾‚ ݃®”"â_KŠðnÚf€¶‘"kÈŠïÌg9Ô²1sà±æ"R®æb‘££.zÚ½ƒ¼°¸±yfgqòÍò%äå‡û×nBƒùzxÛ`‡Äû5„ãq ýbe›´2̆jšqÎʪ›Õz¤¶[8VÏ h+ä~Ê'-R‚ü~sygùlùhûbýàˆñŸ¿ÿòâöCÈ­¿®C^ß{ñµw8ïg÷þB4讪’è¹ÞÏŒŸo'yÏ6“Ü”•„/² +Ú·fþY-‡ø$‘| êéq.ôËgH½=Ä÷ÄúáÈ_.Bî_¾ âqòÁÒ +ró¯¿^\ƒxZ½:ãúéZ;?Övkˆ¾+qw"þ¶T@Þss]ÔÀÁ"ø‹bòû|LÚdw× >ABlm@-[@nZ¾õÇ%P‡@ÜïBn]ù rŒûÍýÇ'wîC¬>…$¸ºýN +õ½=VDý:Ý(Œ\î.ËÚ.ÈSÕÑ}§j™ž5T— +FÚ}tˆç7››O-!A|oýyÔÅuÈ P‹×þ¼üïý߃9´}ôbõà1$ÉÃå|~rðouèÀËóMx¿#ufþ¶”ƒ_ŸÈdÌõçЖF ¦{²pm"ÜóLXü%L ïoþ¶Öçülì@lì!¶Ÿ@®\üòàê_àwïC^?z±sòáË9FLäõ½´†<Øùð:À7K[ˆË»Oç=?9ð?ŸœxI€H{Ö*À¼SVÒ\7Gr˜+½‚ä­AvOœ•oæê'ò²–G „âÖ´æâïYÒã”èèË®?þæñÖþÿqô•Ým]ÛÚ½=Ôö”1Ð@Ó4Ô0ÇqÇ133ʶ˜™Á’™™Y3Z²Ìb&CÒö´wÜ÷‡¼[çÂaKK{ÍùÀÞkÍùÁ›¯?¸yéæ_ýûË2¼ú¤¢õ „¼1E§<^cS^nÍt“Ý’¾žƒ5f}âp‰Xín«mo…×jZèE*Æ89Ë„û½$ØEdcË·Õéùÿ(|™þá˻π¿Äî7|ùñç\»pûƒ¢”œ¿Á ›ÎŒáYÙ¶ÅNª[FmsKˆa=‡³ö­Å·#Q à@A‡¨ç°oå3Ô¬I:þÊ s™Ußø-®¼â+xié Â¢/_?zþ¯'×n}ðöᓲž'˜ûòí?Þ<~ö?õÅÅ“ۛϋzñ);ó,°GØEñˆ;°. £ù`…Z¡‚Þ1N‘²·7ºp’QV^ªé ¼8óãœg?*“ò/HiîçÅo’>¾{åÒ~¾ù÷Šœªoó²ó¾(ËÎý±¶ù+vu’~¨ìƒ>³Ë¿·L€^mòzãV&ЇU^%ãÒtñwedñåUò¢²â_oï=üŸ7·ï~Põ:ýƒšôÜ¿g<{þ»WÎ~ÿòᇰªÂ;‘­?Í3‰©æ9Ä!fAÃj:ܯgpíòÁÁC@Àìoô’¶×zЖirºvýp™¾6múÉ6: ÞŸg, <¢.’O& ¹$\„CÈlò«L¿aDî3vö»TL˜]Â9\ô®”Þ–±ÀÖNäæBX3FKÓ3s·ÖÆyÛË3ü• –e¾b›ím=œ%eŤLp ȯ€¦ƒê•‘k=Bzk`£·3 ™\q)z{ö%\ä¡L@=ó1¶)ZÞίÒ:ÓÛ¬œhT/ÎrdÓÓøÕÞ¼^oÊ™|³ TÿåzIÔÁ/Þ]ìÇøeý!YoHÞÅ «˜¨ˆž‰Žê¸´ªƒ¾=O)2ãÞî.2ê×ø`ë<¿A>ÖU$›¨‘Ž–­÷eŠ{zÒ7xÌgóDÔOŠÁžRá@oÁ4›yFÀOÍõv¥D·Œ sKéMöurÉöø{Sò›µw5¢eâmËð7ÛBtžz‘Q4×G¾8Ðñvix¸bud¨¢‡8?Jï}>ËËœ¤sî)‡h)Ö¹žæENµG‚.ò©É-Ac߯ïðéúƼº™ˆ©{ìð€Q©É)ÂÓ%Cm¿JF‰©óýÔLxyñ§´ÖÖs“‚þœa6ëÙ|ïÅ0‹u«Ÿ%¸»1HO¶­qݪiyd³w&dôD¬ý«Ñ­ž…‘ß›¸7áÓÒÀv9¹zkŸ¥øO2Äz+`¾6Íu6n®Nvêæ»Z”“„Tí<­pc’4 èàIâ†lb º1Ò‘­žg—ÙDˆ ŽKÿ}“ËûÝÌâÇÔDèÁ +soà®Îò óø´ÏWèyßšfèåÚ¥å!Ñäp½p”—¥œ4l­Ò~¾WÁÁî/@3ü¬oëÅÍLÎÉî1d ·{åÄj¿†CØ“²Ú7…íÒ鎒^–h¨;OQ·ºo1f xÕèÚ¨¹c$nÑÇ,]ãn¹Ð\ô˜ Ð]Z`nU´ö€Šƒ>\#–Ú¦ÚzeÔö®gd{ñÚ8\ûËö<8Y?Lß‘R`%‡bWói3œÒ«–% क˜I0S@³#âÖŸ°õÕÁ$Å/&VÄ”LhDÎh?6sa=m_nyr8WsÇ6Vô£¾·øª”ùæÌÎDåóˆŽßc\bS„½ÍÉÛ”Çõ|AHC…ï,ƒ’Ö99_J;2Ïy%àòÓ]þ”ÏÜ=)¨MrI°í‰Z“G&./ªg“œiÚ[mOÑWþº9]w'°Éb¶zæíÀ8ü:&6bⲃz:,b 6†T˜²€o_=Ù_h¾÷n—7Õ ÎeãsAùÈt@=8RQ[|‘s›µ9ØrÇ#Á”ê&šk[n:–qÙî tvPE¬ *q•~ */¢¦´†•Ī8wqÓ°,n\MäÀÑ&‡áRjL®CˆÎñHñ•òÁŠ›"NæÝÓÍα¨¡&¨P½Blžs¹ù¡kµíYb_»OÁ€l.“—XÕ틈²˜¾g,¬˜*û‡|r&Ü:VþËþTýmûä…}P*é‚g«{å^q È!ê‘‘MJô´ŠëÐ•îµÆ¤Í±Œ³A%º>¦ïô¨¸$íä¹WA‡…Õ¬ˆº«'ªì †ä”–ƒ%X–]Øž7q¹-Ÿ“à„òJÈ ~¥%¬ΡžŽò)°€„>s-‘Ë£šþ‰°Ž=\m}¶·Iò±ðHƒ© JÛ³O$Äé&¯øŒÖ€RÀ=¶ Šã[}ënC÷˜Oß;æÕtõ8d¤&·_æSÐ[Ã:6n¦!þ:äO%jÜFuhÌ€®?µ jâ\O†)ˆ¨‰õñMÍ/§´…}Àv¹}ÙXì?¬4|H¯°M‚Úï{„´ö¨¾s>stream +ìÝÀ»WÛ“v§ª¯;VªïøU˜RíHã=ë885¦êNhÀ°’‹óɨ >©Æ¹ã—¡òýi÷÷$}u7€Ü.ëØœ#KGß;“ydÄÔž± Ç"hgªån@BƒŸnöÎû” „}ƒÑè׸^¥€å–3@|ö˜Ø´zeÈÜD‚DÏnŸ[Ò`*bbˉ¡kèH Œ[‰(ØŸo|dh¸éZAgèèD/˜#=¾.®#6'î󹄸Ò#‹ôÞÊá9Åí.¢8¾Ó¯ô”8 "¶Ú×j¸D-¯£F\ã‘•€=ÞfòœJýþ¡4nîðkèpà·àë.Ž´lBÀÀˆQÓ"J"ZlÕ9ÿŒ^uÇŸX Ĺ%\·UâQ  +}*T^Ì@l‰ovôq7ãRpˆ! ‡|bb’NLDБU¶=Q|aw÷#%/ýÊ‘–ØR±q‡K¸<¿4Ñë†„Ž™àÅÎõöW;s—›3È”ý5Xêá:øGЫޙذ†ÐÖwt… «±­ÎÉØ6¯ÿØ–wßiX˜-ÀSX¡O񿆵\zõw#¹=· ú~›Õ1’!n *ß%AçÔè¨S–¡*íKˆ·Ž%n‹}†Zé_!ä……Äbß2*Í1‹Jö¯ÏWQ™Î¹¦»»å]«í/ýRåþ¶*¸Nmv¬ã‹w—i»s˜4ï³.$b´„”4¨[BªJäÞ±a`þÐ5q= ðŠøç6ÿ`™æ‘€Xæ ¢6Ðd¿ZÀê:»N´Ä¦ "/ªhIòÛ_ÚW¡¯ìË$”\oC%ûdX@¤¸×I5džž‰ÀëÅ´NXÉDÄè⃹öçA)¥ÁµŠË›Çæ}µ7Þöæ?ÛÝ‹ØK€NC-p]ÙÎ<8is¢ñ~ÔDE…¶C‡2ȹŠ/þ϶`ìÁØŸ{¼áÿìs†£zdÕÞrë#ËLÛ}û +6ëp•U1`§AgLÅ¥DÕLDPÌŸòZ×S|v›öÕÁ<®Àä«üg… àç€ß|ja2~ÛfóO¬,F@Ã@ЍA]×p|³gÚ#ÂUYÇj®nÕþ•>ÍL‚¿×Û<óí¯L]ù?ˆ©ÙßìÍ´æ›Hˆ œæ\iO°0?¨áRj1bfp£&.ÑŸäOwc@þE Ω• hhŸŠàµ=bdàNm,æ; “Õà[&p)ß'Áïl’wÖv“!Âúg$/¨…›0¿owŒ…uL +àCèó€8¨é„T pDMm‹kÈ-Þåö$¯œÑµ>Ú‚§½S ¸1)­9"Ä—„VÑ9c7ü@,Ö %»sW£Ø´ÏYù·¿|ë‘ëç!/vçënÚækonN8<ÛððO—³/ÆÔÎqr.ì̃ò~Ûéš;Þd³€¼m +9²»ÐøhöúËÄz Í â«öÅy÷,,Û·„϶ö·\7wW]0vVühà—ü`â|ížo~ä['”)GÀ©5onþ{šsÍ'¤4{¥LTHI‡D”¤zï8m{ºìºk½%)ª£á2"À.ZHMl +ÈQù,+®f…íi{ µOv§šž„å lHÛ?íQPÝ‚Ê?Va+¢rBc@Ž. *±Å1*Ó¾‚LÕ Ôþ´·„ÌÓŒ€rm“MÏÂrrkþÚ1ºçô^L„-8V“ZâZrB_3\ú;À+$êžx6à?tÞ{_„+2±¶NE»$¤]D¨õº6nb‚JbƒW‚)ÊI-~±Ü·ŽÎø:+$¥€kB£:>7jìšùn ®À%ÄæïOƒŸ¨é9_†WE§ºŽÎ€IA5¹Õ'¡‚Ž/Q0q5 æ‘ Šœbd©WNª?6ò»ÿJÔÌÝâ½³°è1#±%¤nOs‹[_ØWZ¹ÖÛ_º×¡É>!*;(—{×ÐY~)±2ü6¿_ã\…gÛçÚß„µL‚u•P‹­xú¹u +UþÎÖ»~´É ©)ŸUàã‹<ªôÛ dû:&ÿpWâX'Õ9±j;+¯9ÇÁOw‡êY>¾r{üÜ'ÃÖÚ¸½'ÛtZÔˆ©ªùnYÃK—¤æÙÉ&ºá·mÁ«$V›'›'úG„ÍÝ@ÛŸØ#ïvù#1Rƒ3÷æïšF«¯‡u fTÏ㛘”#•è× Á'6ã„|p£cüzk¼éŽS„+±.àJõÃÌ2Ÿdd(¬ìéˆi9„¸‚TP=ëØìÀ:9QëážG¾õ/ãŠâbjÃþhÓ-çLÓ}ÛXí-/ë'ã3SgÅ݃\±n¸õm¸ý¾c•XïÒAž &8äÛo:A‡Cˆ©wý²7 -<ø0ĪW–À@ó¬ÀÒü’››ƒMÔ-·•¾wN  +œÓ„L-§æœŠYü•‚^ôµ_pXÅþuä[ç2©l–U}+õÞ™™…Oφ$,ŒKBn?X…d9×A/·¦Š2 çœ÷n´¦ì,‚^+…?‡¤èÆßÝÑÀòüõOœóe7wÆ3Ïj¯>ß­º“Ý"fûÖ üEb󩆉:Vs©~ ¡Ò±ŒH±/À^±’u0 º'‰+½ÿïlê™(àÁQowÇêoNTýê[jºoŸ«üuw¦èæ‘ÛQRaÞuxNˆû€”PïXƒfE71ÍG6*pW@CéÇ›ïï,Àsb&æðN ±Ê6Hñ¬¡2ÜË—³-/¼Â«Æžò_‚bJMÐ,}GwÔÄã±^w°i¬¿bé,ü.¸ØžêšoM³/4>=6q?ÛÙQ ;“ͯ\‹m©ÛSu7-“5×ý²D_©®©³`(ž¨Keéè9Þ¤aý="HŠGKõ‹Á¯£Jd®àQÏRëcß +4É¿A­=úoïzJ[HŽ.¶/€“vçà©æ)ØËqRñƒe +&lìó©¨}`üÀ+„Ô4ð±‰ß{dî™:XCeï¯a‹‚j>? ëîÛRk5} æ¾–§¾eLÖþTÓÏj{:€'Y;smOܨ¸‰Œ™PµQ=¼(¬NÔKÔ8ƶ¾·`AªÐ_¯ô£õ·ëˆâ€–÷+imQ‹zbëèó*yA%<ß+Bä个¨‘ÍÙY‚§…ÕTÔÉÖ°æx»s:ºIÅzˆ|Ç:2ý`öfšê—kÍ“íO£„ü z|#¨êí *Yð°œTÓ2P%¾Ì/†gìLVßÒð²¿Ûly`j¾çš'9&ÛÙÇ|¬½éœk~â“cЧ»KoAJnýk‘{ùÄÔ=Pp0>£=ðÓá24uoôôp±õq\Ãazµ<€Aeqyjeó€¿E;—ñ¶‘–;›ý՗ͽ5×KŒê­ r¦‚Y{Î5xü9L¦söb²õŽq ú’¬£äûUZþç#à—ÿÜÇ5¸W˜­Yð `îo8WÁ©A)®1(8CLªÚžh¹oí­½—“P‰žf;s•×T܌όœÏmU×}kàì#€ï•ÄzÇ*â­~ þŠ}öÒ·ŠÍó,ãrí‹øìýøóƒ)ØWâ~Ýò©©þXH©¹iêj~l_cƒ%¼ê BBÚÇZNæW5ÐSïJË3ÏrSÒ©ŽŒ˜cÞÀäßøLÌ®J=1°Ù^aÓ‹cCÛ˜¡1ms*ÿºi8í¼m¢êg[v¸‚ÎÛ™ƯaÓ‚Ú®áp®v'n®P2>ëjx𡚗Ñ/Â×ôAÓ¯Œ¡ÓnE4,Áþ®@/¨¿¬ç”}«ç~%$½útyóŸúîÔ @Cí«ÔÚƒL†g_ë—ж(,e¾7’ÀÇ*"¦ãP æ»M5dP\o<ÒšcJ\Y ðY¾Å–';½%çìce—â2D®OÈíL#S‹ˆ4ß:Û½ŽÊµ/ ßLCŸé:+®ÙF[^¹¥4pÏZ&öÈĦFÕtȱŽKó+ЊÒ~lâu†uþ¡˜ÝêÕôöû”4¯ˆRc v'ëïnUÝ !©!1ìc±îF~Æ<”éÔLƼÛŒFÔÈrŸ¸ýuPÈs®CGlEð> 8ó` úà­"—8á§8¬ˆŽ†ˆëh0@'‚2dž[ÍÜž=Žê˜Œ#ˈ.¼)è‰Z;¢–Ž‘°àR=áÚ€gº!Ï#¥{dز ŽËôÞ8¤çqã›üþ ‚Môm`²]ËðׯÞê_{]–˜9?àŠoüÓÐWŸîZÂ今ÏÛ†+®;æ[žŠy9ß‹¸¹_šzÊ<‘S‘G¦ŽWèø5Á‡BHšgYȉw6Û¶€ÏÖõ6_ó¬ã«7Y”ÃUlÖþ4äñîxómKOåՃɦ{; È”VÙäü[‹H˜ˆÃä[ëPÕE]Wù9co͠윾³ìüöhÝ-Àÿ¶î. 3¶&¡@rY€áxE¸j×Z{ªm¼òÊâÕG"ÂÛÃbLsXÇcz„䊘œ:Ѳ§€fr©Î³ zbÌ?·€{ñ‘u¼õþÖxÛCcOÓ/Þ%z]LÑ×çÛ ÕoA-¡ þM+xô¯ìÑ?…øÜ3ÎYl†dõf’ñÙö0èÍ=xdSOÝm}WÅ]÷bÍKó`å•%bÅ¥ÍDᑞԾ9˜fwºì×€ œe_mNr.µ¤ÄäTHðÄŠîêkbvÉÕ˜–Å~oëš92ÐQ‡ó°³ÐÎDÆ©š†˨°bÁ³òq`…‹´Ž@Ÿ‰HÅß®¢ +¾”+Ϫ9e?Zû«nNBó÷WH•¥Ï.|ˆÏ|Ö>KBÆõüÎýÙòkF~Æ—æÎÜoœ+õ÷O7餈ŽÅœ¦=€<ÿîí¼ñ˜×âYjz°ÕYòƒŠ˜ù©œ˜öï½²Ë'2|•i œ]ùüÒßxI¿z…ÖRÀ{Sw´¼ì¯‡šï|"a&Ÿ‰éHð°q`ik‰\é¢Ë~Ûäw¿3p¿™Hmþ Ð+ïZÓ¯zÈ‘šCD¯s I%µyo¼ùžWpVEÏþrþìó‡QSÏ8V[ +ÿ´s†—™¿X'j^›hØ ¯OL,ö±øœÖ×rfêç–á²Q=Ò2Ñn)¥þ`—PÑÀ1=Ÿ¨¹þ‡[w h‰¸ +Q”ÂËèx§s>båôz4„:À7·z}í# CZtõ±…Žókè·ŒRÒð;ö–è°#=è‡S0¡¾5Zµk›ekº¡æÕ\ö,“ꋈt]GÁYsWÁ‰Zvƹ@cø×!oŽ l¦CÂhß] d%Ö~ÇÔ ø‰‰~¿EB¼·‘ ǛȚÕÆ{ÎDzDMGn¯B‹C‰>ç¸_ÈEÆl”_ˆÎrᢈœù™—ùñá:¾h™Yö³œSy-°Lkð.c³·®ï5Þñ­‚St=¥—ܼïl£MNõ®uØ[ópõ5ëDÃ}Ëhãýí¡æÇ^@oÅU˜ +Ç:&DZD*ýÍÜ5ö‡U0VSZÌ£µ?oV\² •]ôÒ ß¡Ô¾„ÍÑw5]9œD¿ Ki-Ž%XòÞ4ä©”[ÿSoSÚ'œÊgŸLò¾wÍ +–9õ¿âŠ|¤Ô$«ÈÍÆþ¢ó {#f_ü`ñà÷lÕÝÀ:¶òðN ¬H7PróXÏ$ŸZyA ÑÕĺ£D=g ¶ü`®énLMCü¶Å<22 !5¾*¬bb¢ +BMH„*9œ%íŒÕÞ6u×\Þ‡%-Skîñj_žÝ™¿r¯«Ý+\Xp ›\FæNÂó•Õ7ûŸýKέz‘pØ! ¹IÅMÿÊÐ]zý`º%é™?Ò3ñ~­]>X÷|™‘s-¡¹ +|w‘ᚇçú*Ý9è˜ÉæÛF~ÃÍ5|Þ¬‚»_D¥]ÿs‹Þ–ãÊfu,4=ñ­# +£jXÑŸ‡4FÌ hšexúö<¼ä÷­¾µ# ïZ¨¾·?]ð£s±öŽ}±îÞ±‘A ª9$×:¹,(c‚jÃx{úÇÜ’'ÿ3Ùöæ£uBÚ»#wŽ•„ú߬þ©•N§–þü¡Œ—ûüÝ&V£ªöæšEu¨2¯œeè¯ô-¾å7@?yd‚ª¿íöÎ2.?hî_‹mé~Ûf²Ã­I£ÅçwFŠÏ[‡‹ +ªÛ‹":\ãþ +èy@‡mŒít/½Ûûo½äŽDm𸑠+¨I 1¯¢&r…RõÓ±™Ë>Ö±0ÇZ6.(¦7¹W‘oÓµ×Ü3-÷ã +j«k õÆ> XÃä‡$¨\@SÜ÷¯6=ò  +'Tïm+ìÔšš‰ô«°åa=,?¨mIIqC{vL )<1QÑ€^$ŠûÊnÊyuÉGÚá¥c@›8ë^'ë:KÎ*™yßj¹õ×ôÓØ,ZýãOÆaé?…ÖX0ó@Ý­ôËOVñIŸi9ß io?Û ¥}~8ÙœôÎÈåíÍ·?±¯ ò=R:Ä'aC#2|yDÖöƵVûØÐWxÁ1H{oî<5ñx>) ÅfÚŸyV‘ùA!¦Ø/tª•ç\„½úo°%lVbÏÂöTë=Ç*®pg‘T$åÔ—ÒJ¾‘QK¾W²koN£³¾[&æþ°3Ýž²5ÞúLÉ+þAÌ(úiWp}w þÙ;@¼×Óàqežmyªî/¾óÞÂæ¾·qºÜ®ØçëïÚ›9—¾Jzge±"zÒ#Á•†Tdб‘×éÝ€½Ù«»&¥e}ªåç~½9TwÃ6‹IïlÍ= zu㟶‰Ö Öq>)±ÁµÒø@-Èû±·éáçìâ›ÿ’³ý‡« ËØCoë‹ÝѦG¥õXÏ@ÿ¹Íæ¿73ˆa¾* GçET„š€’…·¯ s‚ró à%µ]}BГ­¡š+ÃÍ©aÓ¯þ¯ðÚß6¿þn¤ ]«Ḛ̀ WS‘µ,LX) h …! ¹D­IÇF&ý½¥{2¬ ·íOWÜôKZ3Žõ8ð]õÀÿ´ùE„šýð ß)±§¦m™\v€±k†¾Æ{ãµ×k σë­o½+ Œ½‰ÚÇ2Fòç!q[EâºðÁlÝ탙öà;ð‰¾Cqô‡í¿}súrr«¶¿ö'”†ò›Guë°&œ× ÄsÍmÏRË«° [û2õ½ SVBrO¶™]ñÝá±…Š>Ù´¨‰t\qH…«8¸) ÁÕê;+®Ûe„jÕè¾kÐt¤å3]+¨ŒáÒÓ?»æëïÙúK.º—Ùa±xûRÛÓà"8O%¹x52qÿ½vm ÀÂÇ…ôTHp#à·uNy> ¼O°Íµ=ªHØÓÍîÉc#_p +äMDN¨ô®"ßÚg`/v'ÑɦQÔs1¯ü²eôæpŸ¿FÉÿ|Øï_ú“mþÚ>Oªò®ê#rbC¢OÌî<Ùàe@Ç¡ø¥ÄZÏzå­­±Œït=o¾Ü ½ø8,Å”Ål€ß1%ÛÓíOÞŒXU²Gt‰{µéÞá|Ómßô•sóvƒ]s^Ä«úé`Ò|(á@5}-×çiŸ 6<ÿ[_Còß(ù7þGÎʽh0×ôäÛ¶Œ_¿ØŸÂäŴƘWXkM² ]1_Ÿ["'Ñ´üµ×1’è_‘# ¦›îε<ˆª0•§Víh‹ÉHxgŸ UhpDCôVûãý™¶G{3à×Þ t±_Š+=XÅdjz¯­#³¿ð.ƒsâb›z à’²çíW†áòk3Ø·¦áoÎ\xL¬aš{sã“ݱºçî1ØGL½GØ’ì\«¹@G'zš»%ÔFî{7ðUQ5ê\ƒ§Ù&ê± Õ]Ù ßQñüÓѶä3®9P†m¶å9½öù÷ŽulcTMìÍ6?µŒÕÿb­¾l(¿à—4=y¿ÉfEõ<–]H© )©í'›¼žß·y½1-±ÅÔWñ³ŠYúýfÍÏ::Ç+a4G`ÂJ˜ÊîXÍÍÁúÛO‚~$ƧüKÍÈù2°ÉþßCöSiá×ÝùÌ9‡.{oê}obÞQÕ'h±s¥òi(û¼y8ûû÷[!óàšGÁ繄¤ªS³`ôDÏ ¾3ÒÑq©1,i{{8[vÛ³Öðò·mn¿O+èq‰Yˆ˜©£óÈÊ E”¸Ê àÍ]‹íI³ˆ´ïù%w>öj¸Ôƒu|A@Ej(¨‰}:É@,Ù§›ïNT^9-ù)°/LÜÃQ6\=X$Wx%L˜} •åXCeÚWá)N!4ŧDæ† 4XDß73®ÇL}s'–Þ¹S ·ã½•ùQ`œ±M@Kªpen¥Ñ¯î`® þä…etËÚßü‹–Wrf{¤î‰s šm™h»·9Œy8'hÙŸá·,2ë÷—ñ9‡€Üoa›¯¹ÓêîoPj¼ZcXÁg” ˆc“ë—#s<GôøZ— žå\G%z­†4,LPÉ„‡Õ@~kèðD¯®3±Ý%„¦™G®îÌÀ“œ"zÛÁ ´9BN³öÓÓÍÈ;2Rõë„‚¯‚ŠëÊþê[ãØ¬Ï%¬úÇîR…u¬ù±»è¢{¾éùÖHå-s_á%çBÅ­c3¬0ªÇTî/ÁSW1ÙG.=n``N6™”#3ü²[ŽÈ·LV_÷ÉÚ3¼ +b­oÑSŒ.iGEÀoïηÜß™«¼bèÏ=3~ôõÞ48yk•>Oûrg¸ñÞ‘ŽEˆjX„Šà ä–@ ¬ÓÍT•—þ°$zp2yN)À­ }¬gRÞ›z&ßG øç*2co¶å¾O’XûÅņ௜BBEðßQ­-&f´‡×i ÷:WÌË=7‡Ï<”3P»s¨)¯ø¬[„Ìð·0©'6&ýÀ¿ˆ¾ƒ}¸Fª(¹LϽ>¦!5ú¤°œÝéÆûöð˃™¶‡‰Ú]ÎÙöôuZþ•ýyXáî¦f•^vCÊ(»äœ¿Š9GrJSDB…ìÍ5fm?´]<6Pðq‡½?JÚ›­¸º?_zms°ôÇRSÒï6l;OQƒ1Ç*{8Š+ºuºÕ»|lî莫©mî%È koù%57ëüÁ\í‹?v9æipª˜J èz¦Žw{ÖýRríî ôàSîÎ!³#j +4¼É¢EõÞõ¤Ç**ù„Nw­жu–úËÎo _”³R¿Þì/¾´? ~r¡–IHº”_pvœ’ãªO͸–S ·R1Q—3ðøqS‡àÈ(èygí[IôÁ{gápãf +ܯEä Ø*·_©E¼žÂžó,‘*ó„|)¥äûþÚûöVÞù›”ö•c¢áW÷¡Ð0KÈ"”ý4E|{fš’±1%ÑâªãLGø‚)D²CÄ€¸¥]ÜÍYbŽm—ãáÊCJ / °üß¶ ß­lΉ‰/ÆHŽêøœ¸©gâÈ$芸 ]æÞhJrm4§ú„ÄÊ€˜Õz°L*”°Z.O!+~kÏ:;ÑúöÓ‘ö7_õ5%±ˆÍüÞ,(¿X%—mtÖß@f~³;ƒ¯ò‹;°‡ è Ç +èiPzéÖ߉èàEa- ì’PáG[]3A¹-¤Ç×…µˆ’ Uí×а^%1²v1:×¾˜¸?Šm0ÂË}"V«o#1T~p%oOÁ“Äüš«Ü†ç_ìÍÀÒ1¶É¶ûîuTöÞ,Õ2Ys{o¹ñ™GŒÈò§k-í­¾p>çýNçÌI¢^¤ßàLÔ–\‡¦9×!Yn)¡Ö2HâôjDÏbÅM¶O†)±Œ–ÿ,cæ}#¦~9 +yö¹i°ø–_A-1*nÂß~{ h·€– +Æßþßµvz /,äÁ©Ô)a´* ë»³˜ÂÀ߉ê1 êX€&%ꚪ(éŸC~ii|܇̽ôêê7˜F«“þ°ài}ÊÞtñ-mOÙO¬Š;ÿäVÜøÈ9_óô¯CvŸW‰¯· ai€¿â–ÃxoesÿØ£Ñ~ßA·î/•$ïLW<Ý™o Œqdf³B:6!¬cáâZùDÅ$ýi¥àþÚ#"N¬8ÈÎ,èÙÁ.ÀVzHÛ3ÒvpÂz~wÌÐÁ©ØDÿ®ÐHĈ]Cs]KmÏ]˰—€Î¾§ï®¿líIÔš«¿©ã^Úªºášit8…LÛà\šD?ÿ×Îdkò©‘Ž}g!´Å¨ +«s +lEða€3Â&ú¹gòÄÄeš8ô£Äw™ Í!@÷¹TÔfý8öÍ +¥îšeš¼Áªþu’ý…ŒVùTÉ,¿gí´ìRË“]hri›ýí áùg~ ®æXÛÉ)xŸ4±ÎòʽÎ=XF¤yĸ’ElžªtÛ¾Nn‰èù=Q-±9(½òIš’}"p.0^ô±žEˆéyô¨Çk™¸cOplâð}ë£@ã/Ч±³è×⎺_ª^^ù0çæ·Ì!ó.íM!ò6û›oo 5ÜØ åü(å–\_æþ8FȽlÃæ[ѳ;O>X§,¬wÛxćìÞS[çTÜ*è)‰{ÂÄ“-÷ÔÆŸ8²öÌGÍ‚¾0€+%±˜ß§k¬Â Ó˜ìï”|Z,Ñ»]/J)µŽYDòæPÕEó`Ù»3­/]”ÆvåeYgõкÞøê€[PáÊ=r\©bôHÜÝð(báMÅm¼^Ÿ’Pá㊼rRûÉ“ ð;Ƨ ·96°y[“à!ð–¤F]´3É5õ×=Ù™hM9XlËw­µ¥ +ÑùË슟gÉy¿|èQjÄ +·ŒÜÔ³ðnjQj= +X? y¹½̱wÚ ¼öIÉÕÎedÚÁTû³ÝQÐãÝyH¶CÄlvÁÞ+“ÎnO5<÷Šš^™G30 fžßšmx¡¨JÒ T¿ö‹`¿ï²:¶×¹òÁ¦Ûn1 vbé™9±ÐG¦öbŸ´üîõî¿–p>9˜oH}ocwì-arÍÓ˜t’M}gÿiéšøk‡‚ÿ͆i©¡™[M÷|käÊ€Õ’s±Ç[}«'¶Þ•c¿Ç½ŠÎ±ö7\92²~a*¿¼;^u5ÑÁ4Ô|ckù$8/€ì #_hØeçDôì3ÃàÇŸs*o|Ì(½ö·¡ÖGÙÐEöU|žOŒ)k µA5±ùØÈåYº¦£›‚¡°Ž‰>1³èž lQTEÇþƒòÎÂ$ù4ü¡˜Õâ\ãµíŽ1r6˜õ?uÖ¿þh Uv.¸ÂmsLÂ’lƒ•—õ=9ßX‡*Ú›‡'Y'Ú;Ú“4t˜o Wà’+‚ +:È/EdúÄз®õÖdEWÎE9?ÿ[ÇbãÓw +É­"‚¼RX†WÒö* gÇu8Ð,¤öÿlÛß'z2评\ÐÏA—Ñtõød\œyš4Êÿjœñ‚[u ‘¾§þí·–>TöÁ"¡lk´íþÎäé8"ëûuZÞ¿_íq›“´¼q\á7²®¦—^)—àWQÛâ|S̈® ë@\¢òýZj«_G‡E̓ñMnç —,ý«QS÷pÔÔÙÌ¿u +t×4ÒpË8Ü|Ï6.€%Ÿ² +~ö¯Ð«\Óˆ—:^Î7rFÚWæ¾ÒëÛÓ­I3øìo6¸ewb€çs‹PE–ñ†[–©†[‡‰þjrà3QCçØéA4df’ÜrØ#éá„5£ÂÓ-^oPKiÆ + +ãMôØŽ¯áJ¢Àó¸¶w4(§´xÄè¼Ý…Ö$m_Õå­X²[Bj<²°»ìRtežÔsù1›`" c¢z&Ú-'7¸Ü‰›ù½AC×€WÓ%°K©µA•€× zO]²½B.ÜZbVl/P ìkøbÓhË3RÉOº[^üRàá%²Ø!lOÝžmzlªøÉ!Â–ì ¹Û­ЗÄsG§W†-õÊNiëÛÖ\ÛlÍ#ŸY1up¬sŒrÃöµWÍaý±Ó'ŽªÉ ÍŠi¨# ¯7jèè9Òwp¢*2¬`#£€ kAî‘Óá^ ± 8/ï6+¸N,ö‹¥žUxºq ø’¾«ò²u”ø¶”ùù:û+¹ üÊ*­ðâ<2û›uBî·–þÚëÎUlަ¿íŽu •TñH.) ѱÈqKÏlÐ(èv)Èõvã·ç ɇ«¨lYgÑ¥ ×1t%öÁ¸…¸|cOÕÑÖ×ÿì©~ü¡˜Yú©òéÇ„¼_?2÷Ö%Ę"¿™ã— ò+­)[ãew5‚WßIÉÏ?ݪ½{°‚/”u–ü¨”_Þ=|n¢®yÅ6|Û‰]s¸^{7 @–ýàôo¶îùÿX9¼ˆô*°Rw?"gÄõ4d ÀL§‘g¨ýÙ±D®qm0‘š¾¶'ü¦·ßÕ¾¼ö)¿úõæÎÆŸÆZn9—aéãˆWŸMBS¿ÙÅdxVØm;S-×…çä5׬ӰçŠ^ÈãÍiR¥WÕÅw+5ª0  £âzõt“Ã;2ã±-Tc›üJLY@En?ÚêYŒlòûz.mgš½·Xÿ8 m{T óu#°·ƒ°¼ËªnpŠ}žYmh¿·„Lûz¤ùù×BÜ›óZvúÇlÓÓ˜–Œ”W=eU>úÂ5OÅÔÝ]A x>¤Âׄt˜š£Ùo"4ۄȬIJáOýWçO·»b–Q ˆåD?ゥú{Îep²_†-´BÜY{w ùö›­É–d@Û4z®ññeNàp)h-ÖTÊá®* ÄýÖ*±y{QTw0CZ.#¤§£"›¼®€à65îU1¡~íðòá:›¸·D¬hØ»„R'ïl½;+83ƒÌúÑ6Tû³”[ð³n &e^:zó½K.‰)ȸðÝ›4jÌB&‡Õ¨F×r‚Gq…q³`0bŒ;%tâ>¦OÃ@8e¤»Œòš#ltü=¸/¤Ôí-+c–!yØ<ªZ‡µÿ­ aô„´tˆ ð‹»"Z­¨³é†vøl·[? ­ +É0÷ +6Ã9}º7Ùxc{¨ú’‚ñ•Œ[zaœÕðã«ß~À¯}ù£k™y°}iêkºfm¾±?ÝpÛ¾PsÓ¿†Íüb{ W;ŠO=`›Ú‘—blÁ%ïí +iy¬c3¿;jä2­s¨ôí9ÀߨŸ_ãZC¼Ý?Ó«Y%•]ÎÕutIÊg„¼gŸºZ2½+Èì­±²‹¶©ŠËª®ìf?]Ľüa‰˜va{¢ñ…~²õQw[úWÖ~Z™©–jâZXAHÉ<\j|èZkxUáZŽõ œOŠ+«ˆ šÉðÿÇ_6Žà½‰Ë>Ò’Á¶Éò»SU·÷VP9|ðëï)e¿ìMâÒ¶GÚî›zË.¨xß-’¾ìm¹ÿ¯øú‡rzÑ!«ê:«òå¶áš{›ÃÍiÛÓ€'¢s="r­[ˆ(t‹ÁykMO‹+ù]!9VáìÂÊ{K¥Oë-¯‚@7Zé„ Øæ”²ÐñÞ*}gŵÄТ€ šð=$'Õ8WÐÛ“ð§öYR>Ëe.àuL‰+?œkMšÆ¤þ0OÎýIÄó"µúµ}ŽV¿3C-¶Ì"^ÄŒ€&7àGF,èØB‚Ç€Ïvª0•Âîò_9·N·;§Ý2Ñ%bC26Å¿¬õ.Ó\s­¹¾ dÅ£äÒ.ûæÎ<¤toSlÀ$Û¦¯ö‘!±dw‘¨ÇVà’âª6zš¬p*Ÿø”ÝA ;±¶ÀÉ:‚\ò-båòz>_7z«‚¿ð¨:XÛkÔšUJíÅÞ†´/^ü{¼æjPÔ–QÂ+G1Y?¤Þ<ó·Õ®Šôø&‹3réªØàœs£î¹sµ!5¬¦Ác.Ç2ÍÒ +¿5A_ø4|~ÔÊŽØ8þ„NR8¨¢C̋ĜƒUz“O…‡l€Kb›ìÞ#˰æ·Áx¢w•GK…­T”?Q'LŽ/Õž¡ò|Rò©žujU¢~»cúlw¨åúfoíE]oÛõ jÍM©×þ>/¸íXF¤Ë:ŠÎI™ù_ÛF¯íÏ4üê¶¼Rjýï€ñ½ÑV_×öVßôo$®atޏDè"Û|Óƒpâz—UrdÆ4þµG¥&úk¤,D\94”v2¼Jmb݇m°ü²¾³ð¼–_p!$ÃÖJë^¶d\û¿úÉgQ-iC$[ûÛ~Ýj½ Äôƒ?äÔ–€‚ß^jÍØà¦ÿè¶f½ßrÐHG‡Œ BÄÈ ý¾Û1Ô JwAfh%¿@s~ýÁ•XÏfÀ‚ö¦›“³-IGJX‘}¡á…¡§èÊ ìÅ¿¶F¡ÏFй×ñEw?2‹/Åôh܈o‰ë±ÕÀó†€C®Ø%Æ•¹•܈ZT²±Q ›pºIÇý¾Íâ½3RaG@îïÏVÿªî)º l>K*½:~ûI_õ‹ôV=ÿh >ù«­¡Æ¤¨Œ +Þ_@”Ê;ʯI˜%ß;×É•eø6Å^ ²Ü+%Ô8@<Ú¢’b +6´É¤:TT˜|¤ö¶u¡ýÍñnŸ4¶%ñiX8–G˜‰ž§m§›D¤C)§|ÕPÿç¬%zNû¥ðLçJË£½Ù†ÛQ ªú/o"¤àá}"N›wÛæ\¦•ícR4ìŠs+¨ô´ÌÏ=³õ'Ào-ý·uUgüb|ÙÖLÃ3Ëhåµ­‘Úë–‘²+“í«´š÷€Ç{·Ec„Í4¬ß@GFÍÖo6 -ÝS1=¿Ã/e4‡Äô†¸Œ‰Ky¸ÝqLêN?ö•k†]eên½½ŠÉü\Í-ùYů¸*c—žQò«ÜÇfúå<¬OEkµo ß:Öé^` ž bb IñÎ,¶`‰]w“Tþâ}_mwÙ-!ÖìÌ€_.AÓ"JBu\‹«©Q^!¾Ò0ÐrçpU~¤ïr‰s¬#·†ä„ªƒäknnOâSÅ=ÈGðªïVÉMë™õ]Õ—ѯ>iü÷QhòÇËø¢o+ôãf_Ëcõh{råÓËG½¾òQLŠô +¶FÉ/üažðüýÐÛï ÃYßîÎÔ?ŠÈiਮ«G5MÙGå½âåÿ9èÜÿsÐ9î`ï6QUa,Ã4Üx›\òâs|þ£Wˆà$£µ†7°å‡3miÌ¢›^&àÁ2¾­Asܤ&cWã5Ï<23 $•ûEè¼€]!!±EÊÎþzª%õD˦^¢) †åú”˜ò šÔúÞ"‰¨éИIu- rñ+èmQu#¢aãÈ,ßFÓûRñÿçè¬ÿÚʾ½O;ÓvfÚñvjSwZÚRhqww „„¸»'!ÄÝ=HHp‚»Öç+÷>ÿÉs¸¿ñ +ÉÉÉÞKÞŸd¯µnMÈÑ@Þ}f`?™ø ¡r?À$ìxÔe±0 +hîQÃ#/¯ánHÜroV{½`¤Vøuלôâ‹VrÑÝñžº{@ºàV<š’·¦ õA¸™§»›so­[ˆ­} ÷‡xµ·Æ„-±ÑÁ–×fðÛOÃȇÚ"hË8éäUÅ~‰PߦHˆÏxÉç0$çSš pbMPÜø„Xöæä *ÿÑ~ˆ)^³!sçûêoO‰+/;)™¿ÑJü€J¿rT{yrÇÍÕqªŸÒª/LöÃj7\ĺQiÉ5õõïìã?†;ßœ™¨{±é$v¬y)\Õ‹óVFæóÿβø‡ó²¿Ž2Hû~tɪ¡5!,,½ïgd\Út»†Zò|]poÛC„¬;P%khÒ’”â”=3`Òÿò³ ÎHê_o¹(H¯úpÎ@.ÀhôͲ:¿NÐ)Û.HÆ’¾ñET×ðè°öä°ÿsj(`'¥u°Ô5;&Õ„*ZR¡ó7ìô–)"É×Ùx{F…É2ãóΊª_÷Ò +.ŽjÌ«`Àçª]²áÊÂò¶wüº·§ZÞ]?Ú×ñþꦫ£hÞPótÅÞš½;D‚/{˜Œí0GòyŽ%:¬ýÏ"‰:£ªøÎù6-õ™æö|œb°¦È˜atÍ–³íý®Y±íôŒ«ZÒטÆM èEçû㎋«±a’_³aË|¼ŠKƒ°¤X•ÏŽêˆEg(%/~PC²Ï†Ø û6tÞoArÎo3B@;Ë«Èщ¿±jŸ}§ÇdYÔ´¿SÔ?ôsŠo Jî-)Ëžì{¡EŸ",Þç ‘ð‘¾5/¡rÍE©Ûö²1{A.iÃA(_5 S—uȤ)€¯"’¶û’¶ôŸ™%¯¿qÛ^Í·]¤âÓVá¥Pgá-+ñ’…÷çHWáõm;µiÍJm]ÒAÞöÇŒ*š_Ï+ª­é«Î=Z7ÔÇïà9{~r󇇴nÃo[aŸýèÚ8wË )Þ°#r?“Ú6]˜’i@Ó¬Ù¾éЗŒÄâÉÞ–GnföoBÖ)€.lX¡Icf[©•ç‡:Û¯h•ãâú;:Dò¯¼ª'Çe/OMëoÌô Þ.ªY-ÓjJµ›sz¢—³ªg7­hàÉ›XʺSºØÄ²_î´L¨œ¸ ƒöCdè‡0hêÖ#˜šƒl]¤¯é±OP{k^(þ:ËW­»på šö„¨–<3ˆHó°jî¨;2NòÊïn9ñÕè‚¿›RòvKWìÄj7ã'ýÝ%7'õɤ<ÿÕÇ!:úã»â%‚P±iHÙ/þ5Ídò§çðœ{ÓÓ Yùe?+ó´Ÿ•}mÁŠ+ƒ¿þ™—puÛÏîq-¡®¢kFT¯¬Ò{߉*ï–]?`ë–Ôæ‚¸›'˜ ‰÷?ñèϱ„ŸÃxÈ’¾úþ¬¢äʦ»-ùëW´î¡ÀM´¢›nñͯæáÙaÐŽ_½b@f/ë ïgúëîÌ6<Œp9øâW'aYNŒÈjßoñt^Jè­zì*¿Õß‘ñ3½øéwRÊÙ5Ksê† –µdi~µ zK¨ø2ÕíÖLýi‚Jò$Àç­é_Æ‘ÿÌ tËN<ÑÛ]’ðqŠŒû4Ãêü2EÁ £J¿ Ÿ#(ð² ’·ê!6.š°…ÑÁö7>váu3óï-+èý´•âf—üé¤þaÂÿÁ¥ÿOòW~{º»í ¿æù bîµïúAOOèpoìȼ£A¼ý5ªjyí멹+¿>9ÒÙøþS€‰û8DhY´@“gŒ„ò7 ½;Ê$­úè­AH¢QzeN‡*Úö±q[jÓ¢ž4&¨¼8Ä(=c@gž4£òŸ’"ÞÊ!ùglØ‚¿B슫anùåiÅ“…þ¦Ô5MGæ²¼ãõ(¿òÚŒ¤ùɾ‰V·mÀå~:œ“­®2%Ì»øÉÚœüï1TÅ«#sMÝ?-«»½eöaš¶®Åï:ÚÞ¯YÚ6í)vdÖžÚ¾7D‡-Ùð%+&JŲ–U?*ª¼¦ƒÇŸÐBã´â“ÏøYEgÇ„ÕW€xö~T +}Óלvj¼³éy¨³ö¹j”™{m¾·1X×÷AËÝ^DÞÙ%#ºççB’²[QUÃó¢€Ä­:­ë.1wÍÙEv±ên +ŸÿˆÎòk?$õüˆ´ñ^¤œ¹êd“,pÔˆÈ=ap?sû£,Ò²SêáUÜõ +kî†z›Ÿíøì¯S]ªcLÒ¶ŸX¿f'Õ-[Hu l\9o£7Xy-±!²|oH<0£…$èY?÷7½?fD瞉ˆ«îí¸Ài€?×ÎÉÅÍÉ/”@Ò +âß&iäu,c?ˆ¬û:bÙAnpp대3þ»Ôiù4NìØô#r àWËzЋ]Ë3 ¥Œ _Ãrã#òžþ:¥Un¸áÅVZâ)#į́°úFHÖ;!¯‹Ý ÀË?†” ãäœ_¶!k¾Lr„›D嚣%qÕ ÏZqá+¶؆ÍóׇÙ,¥üqYüßßíO°E_æøÊO´Ã™ß勆æçSªª;¡ÁæØI#£AGl¸8£ÂåìˆM»®¦øM}í“9#êç7^ñ2ÊÿtÑ*þð0kΉ[ïN+o<¼Ú˃­'ûšóÏ™qU×ÇD7'dÍ÷–Õ —ëD^d°ãR|eZÑžºéįX‘‹VTþ¼R½êf£öǸœuµÚÓ„-Ú òX[C<úª•T6%o‹Õ£Ó~í¬xxlüîG±ìÏbÃ鸻çc:2žž™‘¶Äzþá0'÷lXTt{˜_pIƒx÷§üÉ UGòŸNFÅ%DƃÑžÚן}غéîêûAfîÅ ;ù7yËýïúž~oA¦ž´²‹¯f>ú3¦"öü÷;6(è°Öè_a"ôë²gƒ–,©ªŸOÊ+¯ºµWÑÅï~ïiÎü͉/8cBdÿéÀ óZnXq%éäO~Mü¤œçdžÕ÷쌒»”¢GÇ`)·Ö¼úÅNÌüsª§éºbjÈZ6T¿ý4„ qÈ»>|5w+wü°üKÛÛY%8ní°fÏpØ¢iÙÒž èȦ­[°íÁV/éšæUñ‹¦ö„-/¦dÇK‡N"rtøü 3ÈwþNX‚‘ÖølXX{7ª¨x²n®x”½æAäöqú:ÉŒÒ0Q©xÓKiÛô ËB$Ä·ÿc˜FX÷¢ +¶‚øÚMà¹KVlÅ’[¾lÆGÕ¨¤¨·ë!4}âq·=LôŠ•V¿d’´‚öéARæxô…‰˜QƒJûcFMX1Ѫ¶”ÆMÀ&·‚ äö0Ÿ·á'ãÖܘÆe"VŠÝòáëw†é¨€û"@ÂTô^ˆMÙð3ûR³U~M‹ÌùÍI-9=-¯¿³mGä}¥ã&tð´±ÁÖ¸ 7¾rÑ‚ÊØò£ŠÖ}¬]Û›e;ºh/À€®Û±e‡g$>Ž3hÛ!øŸEvÏ×Ežú ;>NÐK.BÛ¢‹Ö²`"¬Øå_æ;Í[£ ò~˜Íþ6)4|›ô~ ³hŸÆ„‡5ó–çZ(‡}ÒoOH+®EÔÌÚ |ßÏm¼æ¢Wœá—žhy4§Ç¤ ÀãF:ÛnO÷q˧䒆©>Rʼ“‘V]–œŸhq¤uìñõQ8aNMû<ÎíüárwG8Ôí!:|Í+Ýa`÷Fyœ½°og„CYu«V­äª¨•6.©àã•_Ôá OËQ5PÊÒ”C ¯Ú©eWdͯ©añÇ„ ±G{ÁI?ºÙ5·Ã=ˆÔH?ôÕáï<Œê÷¿OJ›^Ëêî|ôË4åW;1ëÏ»ò^Xz=ÓƒNòˆÀ/ÑEq?’ ޜڲ"›æ”µw—4'{Êoöžëoy~,ØUs]I¯¾œôðÒQLÆë_§z φøõ×íØò¿ ˆ’óä¼—ÇËŸ\ŒÉ¹u:¦æé壜ÆwÇs_]? +N¾tR ¬£¤öîü`í¨à’—pŠ_}똪ãñ릶”Y#"O‡Ï¾V½:à!û~|ÝB(ÛubŠ«îØÉ ¿K«Ÿ¬Zˆ• +tÅóIU[Ñ´¢1q\T7/‡¾ÞnbAÓœädfŸ—4¾ø>ª å‹Qy£Púªœè ¥]´ãŸíÏ¿ýq¤5sÇΜ‘— Z—°ãg¢BrtéšU 0PëÇ0¦ñë8òy Ûømœ†_±Âò†¹<¯ƒfïºÉàu#,Û€MüÃNȹ•·Æ-©Áq JtêªI_Ô0«WMì¶U›7¯£7D5„‚E*вi³ƒˆ·KzLƶ—ƒŸS¢ó{ZSÏY¨¥o>…Y‹:pÒ¦àº1&qg„ؼdmKØÛ÷Cö¬ +öð‘F€¡¡+ztÁÂ`ãáÎô+Ëú¦×«6dÖŒ_0Iñª_:«…½=#ÿÍvoE—N)À +fpʺ `2goˆÐüÏ„Y¬oÁ¿ÆéäÏ#øÆ¾lÕ„ÉZüi²äÕ_ÙõbÊÝ2\rPS "=/æÍ´f”ÍOC=õ·Çº[îÎ(Ù•a9·|²—˜²l¤VΞÛ½¤j{¾f…寺 éÚú‡!yÓÓý16cð‰U ´éc@w‚ üA¸«ÿÓ¸HsøÝÂÆ¶qÉÖ‘¶î!ÕÍë°y+Tš“]~±šúƒ¤%ý¸‡Ötm¶ŸZ4"†¿× rÏ Úb¬¶WÁ.pì’›½b#UÍé!oˆïotwÉPWó=«î:c3ÖŒ°ŒM©r`§©~|ÚX?毳õqH ‰ßuÓÇçÐdͧúšžk0™—Lä²Û¾|‚’¸×QüÃ@{õˆ›ª#Vœe—¾?JÊ~{öü*åù LÊë“ÜÒÔ?àuáù)§ØU §4„ì ô²G?›Ð‰¿˜q‰'ðÄŸÔèôó~NÙ®"(oK¿ó}(éÖ?V×狹b:œÐörR’÷—›šöWT(ЊSŸ’6}!¶±sRR÷(È.¸2Ðþò”¬ñÑ÷TâÉY-.Ÿ\›|¡öÝ­_¸Ü{[dþ²º5n× +~·e®}o"Å_ÕÝ=á&gü½p¶4þ 6'îÓÿÏ4úÏ8¾ýÀ(Þ´·f:XÉ—tè” Sª¶÷øœ‡Jxòi 9㚃Tô`a #u×…._ÖÁRfå¡ß^lÏÛ°³ð£2XÞ¼_ì_ö¢ŽR»a£6¯[0“2Ð;=2å>õÚ5<åþÄ (ª¿éÅ–ïðü“²¢" ßfR×Üd¨‹Sz}ÑÏ Ëa5¾Îúw‹šæ×>fʹ…ÁêûÛNàýƒØÊø=ÀCI †Æ—BxЪ Q>Þ ~9&iy¼¨ƒ¤l:0U{>:öK„ÅýϧoÍKßtcÊ?ŽÑˆ_Â4æ?tÞ¿fXüoS,Îçq&õÓƒñu–Óóï(§wˇ­þg’Åýï4»ë£_77z1ÓÓxo¶·õITÑþbAÓöêó¾%¤"ç/èÈ5»^>mÕÄlXÒa3'zënFºË.LHË..*á‰3jRöP7úåtêí¦‹ƒ˜½âåŸuž ðòή˜;Ò·}ä¶›¾â +Æ´ˆäQ"q3ÀÖE<¸*>Fؼ£亯#{`ŽE,ßÁ©¸ºj¤”Íjp¹ã½¯ƒ¬šËÑÞöç +LúLûë ¯ðܼ†\±æ1>«Ø°·'DzJ¯ŒK‹.ΫžlyðUë^hzòr€æo!6àøše&wFÑñz¼§õñ¼ñî°¶j/ÈÄìò¹ VRåš‹ßöñ¨k6Jã‚Þ4¬e—ºúIï<ÝðØ)5¥xTAαr!w ¸¶k&\Ç#òrRŠJ™!^…­w]ô¶›:Dõé!^ý55©â*½àÅºŽŒß÷mB…JZÈ•KvtÖ."¹úЉHÖï.zՓÞk3º¦geÝí)ÕaOcЛM¡vÎÜÃðÉ…M|Pù¹¦~ÓÑ’0§¨¼1ÔYxF I<ÑÛòî ,í—qiã“°–\ÖVðËó‹¿ÇëÞŸÛ0BÓÂ…×Bì´¿lðg?Pòoé½?åd¶Ü‘ÑR“ŸeTÄÞÜq#qÿš¦Ñ–ÔÕÇ……gÝŒô_;kï +*žø{A‰­ÙOQòŸû6JF~"‚?ú‰Ë¦¶÷ƒðø_XE÷Žó ?42Êž5¿½zÂLÊ{¹7D…l;YQ%$ÙÇÍ:×zó=µàî#.ñÌÌ@õ3Bé£?¬‚×ÿšæõ}åõ|™¤vƒ°ÒU'4sXZsKË:5c@æ ËÞžÍytñûi%¨lÇÖòvIYykY]}~°ôVO󃼒ë'<¬¤[ÃØZTá““ˆŒÇ¿;Þ}e3¾…¹ü/!6soˆÝòÃK7œMqÿ»@¦~™¦rp5¯´æ>¾¹æÄã¾Lv;?OK\ÿ³*°ÿï2³÷sZ=¯-¹µáC·ôtdÞÓâ +,è ójpü²–¾íA—ùÿ +akW¨ì5£mÉNoŒ `߯;Ùí›.@#Zñ€¾= ‹Ê¯Û¨E”'§º›ž-Ûh­IÃýÉÞÆ'rãÇ!rëçþ%B#ïÑÐsVJÅ¸Ž˜?ïä‘<Ý]ãhÉÝÍßñóéÛv\ñŽ ™÷!ˆ«ÝòÀrv\¨‚5pð˜t×K.>Ý×ôöGM{òI>å· qþ­=?›¼äd¡¦Õˆw;>bÖ[ñ5BA| `wB¤ö%,{D\}gÙ.Üöc«Cý §ëNdÓÅ‚øñ͇sç¾iÞ PÁë€F6ÃÓ¶C,úª—†iFM˜6Â3œ˜’ídÉKm„¿–u<‰jXµkY×áÜŒE=!wº“`Ò_½m¿(ÙçÆåío€ç½âÚsÀߪgtIJ)5>3j#–.yè i+³!j£Õ쎰ˆŸÃÜνaB늑h†¶%³yÝGiÞ¥!¦Í¸¼9¹rÑI­Þ=ì÷ƒ.XXcÅAiô@í¢Rºh&•̨1éÁ~äk·ùº]wgÕ€ÊÕÜ62ϹiÅ7FDЗS„ÜI½p¸Ÿ“èçäMjˆ9A +ú˃¾`CçÎà‹flÉŠÚ´êf¡Vü\,ðþÅáÞ–ç+Ú–W_ÆðàɾÚ[ãÝ5Wg”m/ „ü󪎬ßýÌê+KVrE„x#eqò*Þ®yQeáÞ¦ÛaiËéþöW³ +lƸ“¾ê"ÕoÉ-s:xƪ UóeŠÉ=¬9ßñÁòf5µ÷§ÿZßÌ[Å£jV±…y¦%TÞY³£ª§E•OKÊ.™¿ù™9g†:«ŸD$uÏMè²i›Þ /ø[Ô’tÈQå»›Ó¶Æ®;ÑÅ+NL錱#cà˜—=¤†ä€óŸž¬J¸{~ËÇüÏKòŸi<æ?cð* ç&E$EWÇ$w‡ÐÅ/ï¯÷àìæ0¡óÛgàc„ˆ]±6%EÄY稄“û£Täú—:e¢V ÷"ã–´ÆÃؼb%–{{¨§,ä²Ë.VõÝe#¾|LO®èÇ•wpêíù©ÐÃ^w‹&H⪕³`Æ—,8„Ÿ¸k9 “OÚ{¹A¥¬5¢×ˆfÌ}ìy#±h„[äÒºËú†§ë–ŽÔY½fZ}CÜžþÛ˜ô,:?ÙÓtZ^zgÏÛš» £fmŒ¦ =©x-À¡lŒ°°k>BõªSºèBdO©[bWmÐÔ½¢lÕ‡,š¶ R¦,è,¯ê± +›uvßMiܰQê6äºí! +àbòú06n¤Ö¹;›âƤOÓÁ§i6ÿÓáì=©aʼn/^4ã  ”²E;4Ö9£$å-›Ðqàï¿òòDOÅÝ9uÃ37¯àt¸·î醇ÒddWßqpëí Ó{#tÔ¦‡ÚºD–ýkRù1Ü”±äh‰?ü n™dHA.‰¨á‰"têö0 þ!B‚}™ €B˜ú ²`oßð3nV}½lD¤m¸¹ÓÊæç%äÕ’P¾ èã?~؃{õ°çj€Ç˜6³[lLТÞµPêV\”Ö½!2øË8‹¹3Ê¡FílÐúˆP¼5ÊežŸ\ r)³NrͲS°lêHÙr£Š¶üB°«õñˆ»æà",´ê>}Þ@,˜Òã2GÄ´q-µl5  OH%~ âeÔ"&G­2Æ’°¥vZƒN3b²×d”EÞô÷š Ð¥ABÛa­Ïº‡P·b’—ý,DHϪœ±R+×ýÔÖ ? âgV]œòÒ²]¾jCmúµËN\YÔ‚-ˆ¨ ™Q'´àóv"]ƒ‡}õ–œÄ¦Ï‡½}gy½k#cúnLÈÀo(‘ ^YãÝi òíð Ü ƒ}‚”n;ÚÓ7툒5®aFÛÕVHazzÇ[RüÏ»wÈq³ªÚ‡.FÎFTÒ)#*ýì°Ÿ@ìÍÛiõóV.rÎÆ‡/¹dÅÁ/˜èµsZBv¤‘Ã^Í›ˆ¥cZáÈ¥xÆHm¯4yÔˆ+\µÑÓ¼9ÜɺØsnaÂÖM +(¥-£Z5¤–´ÎÙ£] ‹JtذhÈù"tù9vCÆ/¡\á’™P‘×Ýñv¦ÿ55Pz{ÕI¬žwñq‹¾.ÖÚ°€³dÀ—]tЊ—‰Xñ1;–œ”Ú5*oÙ Š_r²W†(mÃz\.½#û<:7öئ•Þ¼åâ¢ÖôæÍ ¥}ÕOÍ»iÍQ'´îçó¶Çø›!È-äÃ>ž;~rË^ +Ýf ·tè‚ —?Þ›×Ójç-ìÖ€t+ØYw7,­}°ö£uCì’šµá'7´§Œöµ&ïÐÐënB]¤¿ñiXž{óÃHíëáæŒÝ±1*ê›sÉ„C +FÝ„–\ñiJlþ<Ý©ú¡·м-[ê¶Q²?ŠoØjÇå­—ÌÈœ!Bë^]¾åÃUîÿ_M ºzÕŽ-›€Æ­{(m;‚ÞE?‡¶äf£¶G¢aì ~o¹Ñ‡½Jò—Üäúy·}}HÔ;¢jÏõõÖÆ¯x‰­+ +l=@h]vbkÖeòpæjÛøÏL—îëŒÄùeºKýq’¯Øq…{‡³@†ù܈ŠS5¡åTGÍ|è¦_$ý2)2,YÙsZHb¤œ8&kÕÀÞí ñØk>mw¤«g{Xî›qJ;—l\𚓇š2°j‚ݰçJLò’Ѷh3W]½²­!is’µæ!ÕÎKóÈZã]ÔÒk_GùüÍ ¸5 Ó,û{Ô‹7jè÷3²&u¼† ˜–>#§–nyx¸)#¥Ô(h¿ãꆿ×+çí|T°Ä&Ïè€õq›>…9¼ ›¸`¡§ŒØ¼I=:e ñë.‹¹ìPV½Lئ†Ù§3W‡-Ã*lš¥üÄÆÇMøàÑ~ZÖ‚™Vµ7J…mYÄE/«cmˆû'ÊWLr…Ctèöp—d{¸Çòå°žxY¹joM™74ÇÍhZžNÚjÑÁÅ )ÉÅZRåéY%À'L¶Ç-  áÐS¿¸î 1žoûHMÛ@|Žš(5ÓZRí’ÕzX{þe’Œø0Îæ-úب¨ƒø¹ˆ¹âïQÌ{d½Ó>rÞÍ',»Ù¤ƒøAõ¬¾ýý¼•¹æ¢€¶ütĪ[Õ·ÅÚ/yÓÝôvN[x}ÞØòzÓp$ µ6x½:Äg®H5+>yÈa€.+œPâÓçŒÄ²Q^çAXbZê”öÊnò[SÿˆZ áNÁê¾4ÂÄLXHÅ‹l`°µµ .8]e¢W­¯qis..zÜÖ…Š˜» 3>$¢Qð'lZíˆQÁ˜…ÐeÀΣ&tÞ¢]¸¤Á7Gy¬õ ·1Ì¡ìÏt{¶¦Ø¼1^çæT—zkVhÞ™¨w'XÜÕ 6ç$UEô„‚ˆž×fÓ9 œÓ€¶«Þs¹c |ÔAnØ¢¢V†˜è¨—\¿ÖŸ‡eΑßA¸Ûµ³Ú"*rö¤žßìàóA§†$¨Ü½!c;À@¯Ú©Í‡gö×¾Ùp"‹×±OŨ¤ÓÏÖÄž?¶c#£Æå‘̲äã‘&LÔÒ’‘”13F5üZ6¨ä·®Æ¬›‹uwTÔ»=Ì!íyÿð;áy+³qR#¨ );«}½¤ô€¸ñAÔËZ´«­ô¦77¡á5Œ›zI!ƒ1ó혫Œ5ë3glì¶a9,iZKmž5Ë8a³QéP |âÎÜm7fÃ"£/›úùQ{7}Ê„È[°×¾ÞÃö†hˆ ¾o…ú¼k>F{TO,˜7P*6½Ô–Ý ©iËOh\rÑ@=¹`ÖÆl]t)JBfHØpmÓAiZó2‘ëfÝO‡,¹i-zBÞÀæ[>à°?þA˜EÝ‘a‹^lùŠŸ_÷ »¢–N¼KÂJ·ös‡tbð¼[*Zó‰D+$"‡Æ:kï¬Ø1[A&!jÄW»¸õ×Â}mÏ"òíñÎÞQ6yÙËA.9éMK|Éœ¥#yõ°çPˆ×éíƒ&ºeÐøY{7{D;H3ògm¸ö„ß1cëáÏÙz]ÌFMÅ_FncB¤ÙbþîŒØ¾;Ó¥]±¨€ÍVLši5#<êÞ ¶ÆÖÍyD¬qG¿4ê0¬úL“Ö~©MÞS«îêÉPóeÉÞ¾î'÷h¼Ÿ^¾î— n‡ºµ;aáÀί{iˆ +ÝÓ1Û"ÝΤ,°íöoMÐ(Q[GöœY¼4Ä"ŒÛ™Mþjº¯ŸœÑ`3×^b"| 褅‹ÜÈö¦¤î­I±ueT¨Xâñf츲y¾<*îÙüzëÿØ€IX `«¶†‘e»a +zw\¤ÛŒÈì“F\þœ•Ô²ë¶#üî0“µSêÆô˜ôY±i{ŠBø0ϬŽÒðkÃ<æÎT§bwŒßµ3ŽoÛP1+‰hTÝó0Ž\Ý©ÈÖ8òè¬FA–³³”§n^êÔ ¬yJ«uz»¯³ÄÂC¿ôñ;Ò?ŒIL;a‘b%È%ލ…;ß­V Í}:°‚/K’v ¯9éä¢ecwçŽ_Ôµ`Áæ¬ÜƈRRëõ癹}™n®E»…./ùNKny¶éëQløú4«¾~Ó˜Aõ( Öž÷ ¼%dÔtšeƒÍú.y«ÏŠÖùuA­cÐ&w0TC‚©ÊÆ·n*awº«hÏtè4›@Wëïî­‹êx°¯óßSlÁá¬íˆPTŠkÝe•·[Õèé*œµÑ«§L¨´;¡zÝÏc­~2ˆ:ì]´7v:þ~¨VbãƒS'Õ”Ö9K'jÖÎE-yùÌýˆPõmFl| ±á…—~˜ätîÑb@Ò5¬¦—›¨‡ +<æŠO.mœvt3׃Bñ²‹Ñ:ª eøŒY5µ| `]—ú0,'dEPy3Z|éfÏZòòðsxÊ$ì֦̌ھà¢6Z?wÆB«êÄ-6•¥*нÝ~Eo«£¯¯Ñ¡0Ðí}f†¥ÇAï&ô¿upz:æÊ’ŸƒšòHóÃ.ø¨Íë£4Ä: %–ƒôŽ…Àj>fÄdðêŠ!“eÀ¥èoê*Rø\U<(¿i“Å´ò/ÕfÔüŽ­A¼Ôˆº¦M|𒇇^b f¼¤úIžô°÷Õþ¤È´aÐW†Ùø…¤;â‘ýæ´U!­q öÖ¹=Möú¸C.ô)ú þÚ#×ð< +)fÔÀCF¬„ª•±âå7GzMá‘Ýénçö¸P¹7Á—~šåö|ˆR™ÿYeÉÿ½ÄSžåîN²Xëa6m.Ð-ž°÷u:Å´Œ k!bï¢ é¨%Ó^sg‚ÁZð¢+§Ì¸²e¯H²êu¬t‰¦|\ĸWÊ +X­J‹|„­Á¤ì@¡bz-BÉïâ5)𥰗f|‡ƒË®·V‘®8Ï¥DMŽ”Ú›çóFyÅQsbmt 0çÐŽ9ûV­¼]¥´@Êq¶L:æRtÏC²]`or +uM>QO©_®‡º,•tW&‹àxSUŒ¾X“;©âüÙQÉüYE§¯ùûµ[#݃3v!% d¹}­ú>s‡BîC ôQ¦%C0<魯3¥‚ñ6Ó•CÂjŸÕÏÖÿzŸ +?qï~ñ‘'—R澨ÿ™êÓ°}µ^©²lÇ•ìŽ Ê·F15a+½N/îÏ룛’¤dm\cà•Anh0t÷ä•RÈŒM)³ê¤¶f[üF‰>´#î´¦&þ¤B@“§Zö²SÖµ1Ò­<˜ƒBž74¾Zstìu)fÆ ¯VÏ4ʤÅj>?QÃéÍ ¨ì¢1‹’?iïŒjº›9 ”ÆÆßxÂs¿DZ(þ63¹Óºê’UʘT1Š£zJÙ˜š0¥æ¶úuzžW/‡{uýps_W¶©›o‘÷— v[Ê¥ÒP ­¼‡Ños ²tß\ˆÇ*^Õã®gïf¥¶Ÿ.ËEœ«/ßã£x¯,ݽyA«’;éîæ.ܶà#ÔO›P9a‹ê7+ÈæA+FÂsVq(Æ|E_À#Ùâ1XÏ=P‡ñbeðTA.ýû¼ê÷7n&ÆÜºúöxy1ö7r;íf/÷Î¥”‚Æí2ê¬[H]ñrhQ+®zÊN©Ú”|£ÑLíï×TÈÄš\Y·­ZÀ2&1pŠ7L¬$ &¿m(n¿Û^AzP¹[˜¾X™WqÛZû÷ Ÿ§ævUé…ƒ¿^Û³–jV.Ùçv~žãîO±8;ÓRÛæDse´G= +F=j©Q¥Å(¥ÊŠ>–ä­¾Wݤ4 iºF L¶væØèYã¶NÒvDæÚ)çý]|—ÉÜ­T˜ÝŠ9&O4_‡"Ÿ5·©ÎÁÀÊóæ¾? +³Ð'RÞ*ÈaŸ*¬Pþxû%4æÂµü£/_ÔýP–ƒ8ÉB²o%✰AŠšp¨T^‹Ë¤ÑËDŠaM-¢ö‹‰ìtnô.²Ýt1]Çw˜¯¢ÚÏ55È/W–Kþª*ëû­°Löí'U1W¯åǤ$“¾Cœ—¤Â±¦°Õ¬XñKef^Û˜±0)¹j—Kï®A0gã`¤éGõíŽsy%]?•”÷ýZY­ù¹¨¤ïø“—Ð#_ÏyòuäñBÌ¥{u1?zó"¶é‡Š2îpÿ£X–1íâ¡çüœCÕY¥”èÊ%<_“îŽÇ“¼h¼Ås>Ï/d‘Íoè8ÝkÑ‹‚*/•R¼~)îèãËñ1Yq•?—ç ®ãÉOl+rÒlÓ.xļeµ”ê–ƒš°Óf7ôÉGÑRy¨CÒn“ö®d= ¸.ž;‹O³ÄsIÎ8Á÷¤¶Œ~¢:õSmælvjÇn'ý’ŸXr½—¤ÈíÃÓn¨pUçUˆÄŸ&`N“}@9èÆõõa\Y¸MzZת?žôõci¥êdV‘üû×ïÉGnÞ¯y‘€;—ʹ}«0æU9æÖsp̹ëy1iðã4¼ê¡J¢¯ +h»Û|œ<§FSª\x^Ïh A°œÕA_zÖF +ߪûϤu}÷â-$æ]*áhf.ï»×)ä˜ËOêc~®uöFĨ簘»±˜#w_À¿¯®åŸî[‹=JtÖ.eÍ9åÒ½—kш«úƒeDi(» +3~±<ôka³ëç¤"Ù±û ¤˜?®TÅ\»SŸL;òà5!æïûm1מtÄÄ¥óŽÄ¦ +ŽÞ{M=þ"‰q + +øªœ/Ëœötw͸yô€­—Á£ŠÓh†Tvà-;r3§bð‡Ø$Ú±¤<ÉOùâc·ï×Ä<|:ú>ö}b.ÿȯ—rb~üùEÌß7*bnÇ!cþ¼TyäÅ̯(´é½i`¸{ÆnôÌ:dâ1»jÐBX_&M¶\G–ï4µÑŸ4"‡/µÀG.×·Øÿ(,‘›Â:žž+9ûyäÌ…´˜{Oêbn>¬9s1óÈ‹Wà£ôÀu9‰tÛÓ ‹]qÑÀÆ^A~T_‡ŠPüÅwÀ5Ÿ¦W)Ï܋Ǟ¸÷y$)‹45›ÿÝóxÄw]/:òøüÈ{à±ØDRÌ…[U1÷±GÒjÇs}¿tP"¯z¤öJ¯®·cqD¦Yê²»LjñÀ4,^)é`MÅBpÁ­æÓE•ݧ¿l=váFå‘+šbnõ—ªzÊì åDóyÚÒã‚jÍ/ï2˜ÇŸ;ŸÄ:ò4só^sÌõ»õ@¬CÇkÉE©‹:¸ð +»Åª`¦+äâìn…«•Ñ=V‚¦8ž¡HÎG¼÷N~ƒæô³dâO÷_¶|ÿ6w,9—u,£„ù{q³ìbY‡êB+ÊzBò¿éf{ Ì2#dÉ# GíY£ÚöDŸQíË«ºeVHîk¦ |)Í0í¥÷]??Oaœxð +}ä~,°‡ú#oÇØ[u’«ö†ðûØê 72Þ„É\0c³rtœSÁ+5›´4^”+Kå=†ri·½ŒÅ6Æ¡‰ýw¡HÑM8ª÷'ÁãË’D=²·’ÞTµL_ïSñQ[?iÓ/ „h˜e/¼pÖI…„ý=~«aÀaÕñõÆÁŽîî®D£ç!’h¿ßˆtÝI/í>ý6q,½¸ë§Iˆãqi¨ï“ЏGß—vžH®ìú5¯EõG+Îÿ¤·7„ñš]#nëf€Yr£+—\¸º­“4îãÕýüL©TšÑ¥ÇÐ¥ÑJ4#×Añ=á=w_åÐûëj׊bžÇwy“†8YZÅý +QÜ⌯²ª -1gB~¹d'TDM´Úy—9jâÕ¨e”ƒÆFiŸ§®[æ(‘ÚDrCU§H™Ì—ê3)’@n+Ný²ʽŽ$É1eΪ^µ¶D§ë¯v™ûÀ§µf`¿ÎQ©ÿZd +?ϲøcFr¡Ë4@6[f«Ž¢ì-ÓH»3•=âôþ¾Þ,ù ¹^®2µö êëd2si¯Ú‡ï·Ø‰:c_A‚x>i¦–ιxðy7µèbwø»¡Ï¤Æµ!.me„Ïšò +©~SW‹¡˜ÜÇnü[ÆGÞ– h‹(]æävœòf Õ^TÑ!NãúqÎ$\§ý£Ûüž#Õ%J”†J‡Ïm› õôn “ÚVÜà´u?ºeo¼Sµ7%õ-Žôè¼vE·V?ˆPªëŽÆbá@Ìó‚@*ˆ«…5¢ ÉÅÔ[ùõì§P27¾[+GzRܨ“—ÆÚIo®-:°¥£j|iÄÀ…Œ™%ˆa}gƒO%©ñk¥-Uw­¦KðZ)Tæ ŠÌe}Bsµ¦ÇÔjëÕ5úûª&ÕÒÖe½²ãñöG;E[~j댗;¯%ÔîùYÌÍ6i¡–4œ2›”’n’œ&“P¥ÖµöËz³´~ŠKÍ/óº!~½ :åìç.ºHK>~-À#ì…¸¬{×(—ߌH«n,[pySZ|Æ´‰U±u!‡tÔ¢I§;FN¥NÔv]Åo»¬Án;; ÝúÞ¶­(¤Ç¦DmbÖ¦WáØ p©‚ˆ¢mwKü’¥ýí´±ã݌ָì·ÎûûãVlXÏ(ñih…NEg¹¦§¿DÞ©Î0´/°XÕ-Õ‹%¨ïâÂkT¦ì-§K“#êîO”ËòÆíª®Í Ò±æá³-„êÃ]_ÂbÝáL€M78gT^yÏ#­¾áêíˆuª‘*¹ .lUØïoë†Yý±ÍÈ_«À¿â‘¤Ë‚Nî3õ€¢Î©ÒÂÆ~ò¼VºíÃÕl{ñuŸ†éˆÙú7^vêÅ€(ãlPYÿ`Ô̪âëëÓOZèÄù1I︃òëÈY69>Ñ,Å¿r(h)CV~S4£®FÈàÝiŽèS”'ÿ2K§} ¡*?G0Í#¸öí ¦zÆ„-˜ +JÄÃN9ÊÕÍÜ7‡ºk>y=ÈB¬)Í nBż‹X>ãÀ¦½rùŒ¿“²:ÊÄ­h„9±dÅKª_v#K  øYUóãý!"ü۬Ⱥuø[{€Ø0ç¤ÔF´°÷QKs¢‡P;R‹)¯|UËÀ(ðª°o}FNéˆGŒ›ò²À³.fËf„/ø4+Po±5k^TÞÁ$öy¾{äì4¸;ÁíŽzè’UîQR‹Æ€|8b룹M°YÓ]g0Ùƒz;U­²àŒZÌiäW9ð9«\Á^˜Åj_ +rÏJËßÍjžÚi%v!Sô|ä’‰\=«†¾—]w×Þ^42ª£tXM-W“A¶ì2ÑÇQñà— ¿nnŽ_PÕÝ_ÐÖ=ZµB“6èœY#2WO,¼1ÓÛœõïQøÀÍÚq£ò·Ý¨ÂƒaŲK$X÷âA ¦Ú7óƒù×wì…Cêçñξ¯¡òóaŸ©8{A×ðzÇCGîsXû£LöšQ7ïÂVL¹D„ˆSF÷ëyuN1üÅœ™Ñ´î`¶¯Ù±u‹öö‚ªj/€®ÜPÁÀõŸ#lÀ×É óxÒˆ¤ðöŠ©)ãKY»7L†nºI­MϽµÏ?LPØ{a +bÙ +ärÛþ„P·?#qïOó¶Æ˜´¡aÒO7âJVFă A‰dÎË‚.¸­KZÓþ0ñyŒˆþ4ŒïøàEV~FW]ºçªonÑY@ì/ÁR¯˜p·wÌ„¢u="mÛŠÎ[P£Ræ5 SJÐ ;¥àž•ÝvÒá+Ftî´´íÕŽ™ÿч*ûàG®èê_zùYçÕy©EOÿ;ƤEV®éKï, æžß0U?Üvv¤ïú(ÍûvÕF¨_2AþïœÐ®[¹ï‡ç­šªŸÏ«*®{4¯‡¾]0"Ó?[?põ»b͆œ>¯j~>ÙÛrQy³åÄ”L 4¿W]Y0ÂÓ¦ ôu3ð[è–©#uÇNݱ‚ÓT-±KzHâ†S¶ãÁWî{`Ùÿ ãA߆ñµÝY³²üÛËŠ²§s½Å·çÅ·þwÂú6I$®Ú Qu{ξÛ²?-þi/ý<®Zw¶åoûà…‡=W¾M2h[vxîä@Å«ˆ¼$q× kü¦Ñ¾Ž¡[7- ï7,u±“ð»5 öi’+ùOT ù8Åân‡äía +bLJ¨øµìp ;~"tÕ…¯Û™äð÷¦x’%ça/즧 ʺ‡+ªúÇk‡}t\íéÿ]¦ñ·ÍÍq¦öÄp_Ó#èõ)±ôñÖ°cÁì9pÅ3ý-æêï,¨î/kÀ/–t˜¬1IË£ YÛÓ}+òŸþÄâ-GÓÛ!^êŸÃÌäŸÇx¹6t9;N +hÍ Ž_VWÝ_VUÜÛw€?zçN6'Ì ÔÆMôUëÔüäc€Ðø1H-b£Ùç•…×6Ìõ/wœˆì}ºt×I_3‚^î8ÈÃQÚVÐĨ¢åÀ‹W‡:ó®ŽIJ/OÉko…ûêîö€~_QA·ôÐwanî_6tâ)]ÇÛ“&dâÏ!nþ… 'û÷9Cs¢WZ÷vœz惓ܰcůëÛ—”¥÷#ÂÌëfÊ™nÆo㢲«ÛV\Ù¢¶=o¸çuKk⎣#}UÓòb] z¾¬mMÐS³Ï÷ãNE›2ÿ=Êå~öáê¦zŠïŽv&›ìI8·ïùÿ½å[›i»öý¾Ï³n™{|ÚN;3•©ÚB)îîš@ˆ»»¼P£´Šk€ˆ wBâÔff­µ½ÿÆ{f>°õC!rDZïûï’ó€= j(y~%½Ò-£—…÷p°+È6Yå£AÄ8^äáÜ:.âï=z稙~ ­l³¿6b­«ö†y˜_ëœâUûå¤lÇdíÃýš{‹¯ŠÎoõÔÜýRê1ð0“Å¿¬÷£¢:êÈÐÀuÏÐrRl’so.d %ÙæÂ÷<6PW‡H ÛCØGû“„·†‡p)™ÐÝ!èãõžŠK+ï*.,wU]<\æQLDÌþ$Ò2Y󨝦—UŒÊüÏ5>Û¯¡@Ö{+¯Z§ñù‡ÆæV§Œ]y0NL2"XGa÷ll|P+Àø”ìÚí÷ÕQ>9³¢½AL’[JÌÚì*½g©IØí­ºg«ªÉн!hôjWå•€V,ðjxŸŽ\äR£S,S°è­~X¤c–œíÕ1Ê=fÕÎü~p‰Ž¾Ç9^©¹Ô<Üî:vùMéUû4"Þ­««,5Ô­ðH¡yzmhµå…gùµìhí¥ä¿·Ä-Gzb‰iµ=X}×:…O>Æõ.» SÄt‚^ãS0!^%³<<xk’`›‚?0¼.:£Yyn³ûÀ6Î+6PR7»PÎ ~Ùþ(=Å2 +ŽëüöþþñÒ[Ä UKÕéÍâã€\L4õãcÝ2jŽGA+<'å+‰…Çjx\P…KÛ'ůõ n•<¸oŽY¶?ú´zUÓœúãõþ?ä¢ÄoüáûãÕœ*e/üa?7ÿ§À, òÑÀ¨:ž§–zU˜¤ýѪ[+/ó^i/<¹ÛGŒYîe¥.½F]?¦$îöãb÷†1)û£¸¸ý!ìÃÕNÈÅ¥Žê{ÖavÎêÜ£wˆ'ÿìG¥}£ÿ¶ø¼ø¢©¯ê¦k†˜i‘’R¦[K¯ôS …缓’矞ž–ú½ª.õ{}cÞ/û}°û9RÆ*È㬔ÿèÚ‹.…بåîªCôÔ¯§xÙß͉³¾ëÅ?þÏNôŽSJ-´OÝ!$š†ÉÖ Î>E)çF'áÞýQÛõÃzgÞ¯n%Ç.ãT¬wSrw»1).×qC‹|’C‰MÙ—¿(¸½ÙSz~©£êœe¼³ÕKJ^[v~·¯ìwË ô†¶)óûiN +ßÜê­¼¯iËùiwí™ãAw€ £l÷Á#¶ÞW^·WÜ=Ö3±«Wúƹ?˜§E~½ïR±«¶‘Æç™ç,ÃûHõmÏ,:îÐÈB¨^ä_›[÷Ñ( 4ä\Pke^!kw èÊֻܳÖÑòˆžXªé€D5VGó*é¨/kuu_Vø4—”jø<÷Ò.⟖)L\4êDÞ½3ÿžm)~ð窀ùažUk®}¤æ¦œš"G«¥|»Ý¯ÉAο‚\]}‰:^æP?oÖ5»e´Â€’Vl^ºð*ë—;âË¡UÉ¥gwÇÈi¹˜ìV·¼Î×5üµ*`}Ô³ÖaHÜ^oÁÕÅg§þÜnéñη¼9˜åbýZVM` +uk(PŠ\r¼H‡„´”âíÞòˆ•ÎÒßý:5¼gº_Î,Ì"÷5{ý]Ñy·’šïÓóíRJšM‚xh©ŽÐ¶§ž˜f&þÇÔOÏ]z‹‹\xV}Aû´ê7UsՙŸխ^rôN?5n·¯i,>¹ö~Ë…‰Ù„ÝÞ~W{c«?À)8Õ…Kúzã:Ú1Å-±IÙ[ý誆üRZÜ×»]ÐK+ݤÈ~^ùYtêõÿWÊ©¼˜áW9$ÈÇÆ9§”‰ßÏð“¾×´T\<˜Tê›¶IFŽ}ŠžãšB#¬ÌŒ[nÂ<ž&~;ÊŒú§®5ïX÷(Ó86NÝšýãÁ.èuŽe¸æ–¶)ãôZgáíýaèÃõ®ÊK˯¡Bê—Öñ— /ÈQºVlôêDLHIÊóÍ¡Mc»‹W»ˆI?¼Á&üôÑØ(†çXÍ ŸÌ4?:=Bøaï}æ×tøyUj«ðÊͶÜ èÙ0ë6nŒ•ò-=ãêWŒ´«ÿÆÅÿÛÔ žB/^DÄÁRεüûd÷€†¿?\r}¥#õ´¼îÉ·ý”{ÿÖ>ÍøÙ,aäID¥¿¨Ûk#BêQ@Á©vJ`Q[ï2N1ï}%eþ0%Ì<±;ŒŒwÊYúgE—ZfM@òßâÑÐËpÕcÇ4qþeö™qnêiŠVº9\ûdùuþoæáÚ{ûØ(Ó&Ú9‡Ë؛ħu“2h,yø_ —s2BÙúûòkë=kÛ`íTœcô›XdFÇ©š²O-½)¸÷×6—{´ÌD¾Þ§Ðø¼ìwMsþÙÃ%%üLó¦êÁ´0çÇà¼ói­®É!…%ì\0BíõCº¦á)^*ùÏM>KÞIåC~·ðùaû•*°ØüÌ!£ï ”\PÔ%|×QsãeKöõ€‘CWE|³Ð ‰ ¨ùˆ š[홆Ý÷ªèeÀß‹Ýs¤´í¾âóÚ¶¸¯ßa¯ýŸ^ÜÃoV‰/é¹ßN ª.ï1R7Hѫ݈[Šæ² ò†¢Ó +qÑOKíÕ÷FéÉÊvè5Msᇔš³?@M2žxfp  6£­£ˆÀwo,<+9} œ3Í̵Œa¢—;3Oè[b¿V Rþ³ÐwüMâB*ê=9á+ÃSøCP³U[ïa·_Ÿa%û´öÑ×Ï wþ!ågÿ¸Ü¼;^_|aJT|~³½ð²ò’¼.ëäâË‚sš¶’³#¬´oÞ"âþ©mÆGNˆK®ðOlõTGŒãÒìcäLÇ$»Ø2N̶MÁâwú+.ƒ,·ÑOIc\ØêB§ûKoõVßÙiªŽ° ×ÞUÔ¥}?F‰þ&Üo›=;ë¯ËÎà“~îC>ú~¡)íg—}¬aVø•œêõnü]äœsôw½“œfÇ$Ù&j_^X|Q|e·zœ•llj°ÍÐ +v‡ñQ;½ôdk?6Ê9VqÕÔWze£«ìÒÒëª[V mc´/k/­÷„s&³h¹uO-(úÁؽdxV~Ýð¼ø‚îeé5»”U㘦mtA®¬½­¼µñ¶6z½³úÆÚ뢳æðþi¥ í…¿®¿ƒEú”uEsùùYaÖI ã÷A?0 ábwû1m€-» ·:qñ?™FIÙÖ)zî3ûDcñÿÓUûøŸSŒ”o5@Vº`w&˜ÅO±‰gø%WÿoHdž¹f¥‹o¡‘3‚”_䢌Ÿ”¢ü*QÖ ¯‚T"¨zðÃ;Zêõ9»Ú<É.PÕåž’0AÆçÅ}§iIùV.ŠþÊ:^™ðeƒK¶JÉi%·vý]õíõβۛ•÷Lï«Ó€æ?6>/¼¼ú6ÿÌ_{<ŽGC©Z~WyÉ6NÍ·¿ž¶~Y×ûõÄ|ÀÑ& òÑæâ‘G/`­>ôªY‹ï"ݳØ,‡ › +˜ÓEzôµ¾£êð£{–]®[ŸšUéœ#§ÿ=ëp—´ÞUqKû´àZXw$Ìì^Qåe òáÁ´¨fs˜øÄðºäÌ #á«~JÜ¿”…'×Þ ïo ±Ò&ÂÏa rOø5õT¨í÷„(Ëì òÆ'?ŸåX|Qòóò+È¥ía|¼æYåõ^LÌV/âöÊ‹âÓ«íeg÷{wlÄ$ýë¢ ÌØ¯V_Â:&ùešÖâó/+~çüÚVÿC?!þÌòk؃ÍQrâ€0ÿ—1nÁo»#” í èíȘt¢ý×%þ_ôÄi‹N/¾d7¢R¿ŠŒùÁ>Å‚ûAưã{ __y]ð‹i â²CŠMпAÞl(‰ú‡î)4ΘsáUÉÕºJÎkÒO¾Ý¯óãJ/äf>æÛ1jêÏ–^Jòú‹ªË–¾²+ÎqHäÖ»Ì{‹/’.«›R~6‡gZõQŠ„e‘ß 3“Îûät¸k–ZâžÆ&º&Ñq£Ø'`­ruEí%¿¾Ä圢e^pƒ\²ýàSÑ!£Ì=Í(_‡ˆ™â¤{0IÍÝŸ`C /joZ+Î/>‡\U7ž]y]v-òKF.œo+=ŽõE¯œ 1‘’–_”7¶çœXlÏøAÕóõB{ÖÉÀ6{¤Ôæê'ÿ~{üÓî &ůa”O^rCјqqù à”.ä#§LˆÙŸ`äpr~ì¥eþ¢{‹Þx‡Ú@G.½…EÊ[«î¼@Ç~ÛIŒûͧå!¶†Ð%üìäøï×_”^·ÀXáÌã¨èVDÜ÷“M•É6µˆ¼=LMR7–S6Ý2tTÄn¼¯Š´UE}œ'WYã’vÆH Ž9. hâ©nXä?§ˆ±ÿZjÉûÍМwÑØ–ÿ»]Rqÿ-ns™4!Î;³'ÁfYdMÔðL–À<³Ú­Á%[$µ÷¤è8ß< òq³ñ™[ÃFïO¢â<*zÅ"þÑ"½æ`¦&ê@ +‰ÞȽ¾ÑSzÉ«fÂC†:šSFÏYä Ïb‘Ò2Ãçhü1Ù'çV‚l¹;ˆŠ\}W}u³a¦¤ØgÅÈí Væî8!~å-üö ȥ½a|Œp½y’¿ÜYqÁôyhlë³õN/þ‘ª%ûgUKÊÏ{}ÈH‡„žRŠ»SÔBÚÞ;OQ_üã$3å›IVêƒÔèoÆèQÿPÒÜëÆ%8¥‚ŠQþ©ð>E6)¯jó=%ÖØpçcÃkصùW5¿›†¨Éf`tÆnJŒú9=i®}Ïø~{³yÇ2BJÜèçei_¡n/¿Ã> ¨ZÄ–iR²eç˜Àì#"äî{läfwÕ¥µ®ÒËËo÷¿À>:˜ —ûHYOÁºt#~µù¦êÒÊëÊkÚ§›ïqq#ä´^vЊŒSN)%WßšñƒñYÊ÷ëù¿,¶&œ4õæß°#2‚Z!UÓyô ™ôý¬¸âÁ'cëk×1{íuñoËÏ Om¾ƒ\\調¹ð®ö®´z±&ýÖ?P©—Ok•!5­Ø5Ýî)¸>Ɉþ¾ våŸsœÇ_›%ظ§˜Ô3U1¿ÿc®¹ôö±–sIªîx¦Jï¸'Ëï¨~Åßÿ¿ O Ϻ¼ÚÕnôµ.Ä}ë$)°s±cŠ\àœ%å‚:I0vAovR¿~I=mx…¼3ÀÍ>·òöÈ4ŒNÛ¨Mó+(åGáîJÊ<×½(8µ5„ÞìCÅnw#'S’§òNóR\~[zÝ>·2MÍÔuÀ..¼EÝ·N“óÌ}WW^äþ²Ô^üëzgù9óêWò¾š‹\쬾☥æÃsÒuu4û41Ù:TvsåeâÅ•W9WlSä4›ŒU2W_sn˜\øýN7>ããB]}PËÇÛ$ØTC[êÝ󢇋]5·×†PI^½·5^]x¿íT’Š?¬s)lñùlò8VéX—ŠX¼Ø{Vß‘|Â4ŒŸm-ŠÖ¼*ˆpjiµ=‹0±ŸVØ´ÃElè@oé–”»7ˆ‰6 ‘cmSŒlŸ†8˜¤§»d´ìƒ  qÈ{¾YrF@Á*·MóJw†I>…o¡¦,½¬¾°ö¶æÒf?䊶=央1ù”}ï›aW:à7·Þ"ïB”KFÉ<#ÆZÇI †çE¿ïŒÀïmôA®šÇ ©6¹¦n«8£j,ùuñôÆN/â¾¥Ÿ”àc—:ÆÉ‹å7Œ/Ê.¸géE³Ð4B|²;Š‹5tÂ"ÔÏjn­¾AÝ©ÅÄÝ nÉò[Räþp3bcDT¼5HŽÙêGÜ›VôëÖûê›VàOö)jš_éÞ…?ØBÇ»eÍ̵wÌ‚åÈ+ʆ¢_&Øñ?Î +R~ðË)6E3}¹Ÿ‘.«+;i£gùA.õi˜å3˜8UsÙosuUg å¿™&)Y–Yrºi ¼™Qy4ßÒx¨â;«îöRâ˜džZï…E8çØ#CKãQxOÏÔ=ó«Ô§zÚàš­C®½ÃG+Ÿ¡îJŸÂ¯¾¥ä­h‡,̨2V^ß*¾¶5Pñ|Þsí]÷4&iµ)æŸêý rmm@E-ÞîÎû}¾)æ—µ—™—·ÞCm¿‡ÜqNãRÃ{ïö±Ò~6”=ô*yÈ †Væ’Sõ/òÎÑ¢¾›ägþªh-¹¨n‡Ý•µÖ\‡&_þf„Ÿz5¤Â笿.¾¸Ôöwmÿfh)8³ò¶òšCN+ë¯+º”çäÿÃ˽ýµmŠ…ðixXó4r½+ïâÂóÜ“K•6úÐ÷ׇ O:¨I'Ÿ#"¿µIHé)§Ä7CJ;˜€Çoö•?²ŽWG{˜¯†œ§{ƒˆKø‹MBͨp™~¶àhž†8ZââLãÔ õSèÕqVþSìÚýiZæÎ!n­·æÎ(;éÜ+õò—Z`ÒBFnãÚ*eˆŸzÚ4….þc¯®ùÓŸiž‚'*ZROͿʹj™€>ñëðÙ‹}ðhDêÍÿ!Q׎7ZºÓ´}0`‹½*dÂJ_饅ž’ë# GN³‹@]ÞµŽ3³\s¼*‡’Û FÙ¦Ié¶1x”_†O¶IÐqËoó.¬õ]Z{½âšãT˜'yë]è;¦ÂP€_©™ÞYJ–hÍâëò«Rnê7o`±Gº±]FN³ŽžØÆ)©ÆgÔ\ç³Ü!㔆÷Ð1¾¬:»7DIwJù•›ï᫯*~7´fý<'Hø¦õoE]î¯ÎiVÙÞ0#kí6"8/¢x´l¨KA+¶K±)^9> °eŠuŒœ`—ˆaÆ.zìÎ %5¤ ½ +jþñ< Òr–q\Üîäºe¤öŽ]BNßgåv‘³~ ïjdæ˜G0̓°[¥½²·þuååQjÊ| +våÁ ½p|‹””±Þ‹Š[x¿»òéV„¯?ò ; Ü9d\˜W'f†çI:QIÃüâGóðÌO«BÁkÞ¡žIpÍ 7÷LÓ<øê0Ÿ°úžœªkƒßçœÏ=Zh‡Ýr+D( ¿é{£¨È€N@ +.4‰Â³ŠÖº!7¤¢ôG鿲 –Üþ°H.ý¼Á£/õ¢ï_¿ã ¢£¥záñæV¢SvËoîtW^ j„dû;%Ê»` dÚçXpû,½Ü£bƒµ$¤©ŸçÞ‘·&]1vfž êIU-©tíméÕ^x†_Å%z|”K)@8õ"¢ª»öî|·RaÑyË¿b{¥Vra®!çìê›ªÛ O–øT¨ušš#m)fl’WN̾—³ú±3Œz´ôºð׃QxäΠ⾦%ýGã‹ìS»ýµ÷ü!Î¥âÌÓÌlç,¿z»sÏ +ø{zGÿ,ý'ECÆw +q6ÈW¨”Ãù&±%ž=93%|ô«y¤$âwü‹\¢CŠO Í‹¸>=˜’Jn¥i†žµ5}¼Ú¹Þ k{Œ‘9߉»»;*¨²LÖaÜsüZœœcEG¯½¯½ jç®_îq*DXÝ+ømËŠóž9Rà´(Ç82泑‰tk‰åf)*Æ4Ž~ž·µzKÑXú‹º>ÿWœx€Zäœ#Œl¢kA@~ÇÎý}@Tñ`}”Ý`çßîiÛj/K¹¿¨š‹®/r_6Å Vy«Š˜µ/'eýi·}Xç±&ñi«ÀÕ ë?rëy¨cÀ$n5½tùäúÖ <êãVkwhµù•SË#oŽcžlŽácv‡kn/½ÎüÉÔ—÷Û^_ÅEó(;×&­ÇìŒpKö%ì<Ç ¨íQB¬sŸP2޵¤ÂpOY¦ˆÉNuu¹ ~u­«üìF_éùµîÒK–|¢–Qz¤aAÃ÷Xeü +çl°Kœ¡=ÿ„¦9û§AH„Y‚ŽÚìEݬ“¶;ÌÊQ>ƒ\Rµ”üì’ +«ÜRaµ{J1»°1ß·Cî|?ÃNþi¿vÓ«bV»á·Ö:*ÏyÃï³È'¨%^!ssv»h¿DPrq­ 9#*<鑲‚:2 æÕ”ŒÛ$6~w¨æÖbGáIMCòœ³ä< I¥Šg¨ëËÝÄÛ =×-§åÔÜÛTxÿ3ÈPG¬Ó´¢ãåæfû,ÈŽ“¸Øýa\”yû (g—ªÅd—œ ÑuB~_ÂÅyõ]çH@×"8Z^ ¥øgIYþYZ‰xƒiŽ3ô¡cÖ‰Y‡†žue®¾m꯸¼ÑUyÕ#¹mQHñÄôÙgð+Úç˜ûL3`H1úHÇ«õªð™›ý¥Wö†«n¹g ¹Ççdú•~ücë -÷óºXthäàj|–m +úxáMÎeÍˬ_o*~ÿ¼!n±ÊiPy[ååÕBL@'æú´\º_ËÆ»féæQèC÷46É%¥d¸tM‰¦¢‹²Ö’(·‚öjhŸšUZàŽ–„œý)JúJ:2‰ŽßƒÝßE?°Ïвl³ÂÕk\ÌsTÒìRjî'Ð?áyŽà;¤Ø§ù›}eW·úòÏZ&j£>¬ˆn/ö$µ‘Rd’u™¼3\i—bÒ"ñçq‡UA*Ò¼¨º`£å»UlàÕZ—–QišÄ§8f(á}ö笃Y>}„Wv^ÞIô*„¤!Ìã¥×%¿­¿‡ÜØ—Àî¹”¨„«&ð¥w‡ËÍí»“´¬ÃµÖó«jù-즪)ûd{ÙùNÐâ¾ßè© +®´¼ÞQ4ðåmÕVzнjÀHz>ݧãÓ½:>Õ«ác-@ƒì +FUh±±ao’Upxöx™‰ù´Îc~Þh|y¸(äýý{2nùú¨°xc¼¸6 .Ûeç.àØ“‚‹ ·Ú†>í¶K«B¡UE/Ýdd;æZDNES;Ð;ØÑ {¸J­6IÉ»£ˆT¯9ÞªkÚ¹`wJshŸ¿ +n5¿<Þ©[“xôM|·6¼_»Ò2´;R~Õ)E=jXA=·Ö6MLŸçÿïœ!Ä['QÑ+ÝÅ7–:r¯î½G?ÙŸðe£ñ©OÏ©u)˜¥á}-í€YváV^W=Ü@eX&xÓÌë¶¹×m&i~g”‘¶úys¾-ÿä4+ùk¹ íTPN,8œoïJZñK¢¼å^ææ ;Õ4ÂH1 ‘â”-Ù?÷ þCÍËÿÅ1ˆ‹õ)èE;c¤¸­fžC^‡^¯mÏ=ý +}ó_o°×þ¥i~òÝá2ŸjÓŠÈkøÇ¦aL´SF+öø` +圩~`|ùÛæ@ÙM·h¦™½9J‰ßÁ=Þ¥ä˜Æ¨Ù^5µôó:Ÿ2p ÖQTœ¾=û—Í÷ÐÛ ‚lXýûJgm¤OÁ†3™OM-تŒYz•y~ý]ÉeÐÕÕNî0#å»9QÖ/îIF¡kœ0PóÐ1O¶Œ¢gë Ö¿„^°æ2¾Ç&hšK.XÆjïUÞ²MÀîÚ$¸´a|¢öôÚLSñ/À¾æiFÁJw啥Ί+KoªïmÔ|OèÞ4«Ü¿Òúzsœ‘·ÐEˆ^ ¤,wU?°O‘ +Cz1×khnYg¬’¼z1Ókࢶ†áÌSè¤!Û£aAB ¬êëâúÃå¦Ö-Id¸ôO›á¾ •úÔ×.Ù) Ï^b”¹t-MªÎîÅ^zÊRò6à âÿXÚ'?lÔ5€N¯‹>#í_â—…¼Ãŧ/ÕÏ‘QÞY‡’Rù—¹þåÇ­ºÆÐ*—ãPã ìZ¹Ç(b®6>ý°þlÀ¿( û—Ù('È+‡Ëíoÿ¾çMÕ@r)¨9^.É-ÃÆÛ&°‰ Ï&ZÇkî9¥äìC]ã`Š”¸1¿¥|ž}Fݜ𽩫öæЃOK¼dŸNDt*[8–iA¥öeéïCä¨jšâ´Œ œêÏ6fÚé;SÍèýIQÅþ(¯hg€» <Ø2X{Ç&©}l–rvÇ`[ãÏ;“íä}‰°Â4BMØ&',vV…ïѺeê‚ß9èEÞ³ ¡îo£÷'…5EÆ6EJY쨽ÛGO:3H{|j¯·àzhYcyÈ<ÍÊsÉEh§œS³9X}Í4^sÇ<½³ÞUpÕ*> +XÕá=7Æé)Àǫܪ—¯œòz`Ÿ„à"êTPr·{àë=ÐÇ6)­lo‚[¨}†¾r0Å.òix(›ŸlBGžåžYz–uÖ2\åV Ü\M{åíntf@UG° ##U⬓Ì„o´M™?iZ²5OÓ +~íÜ«Ú;Êh䡞ƒrÌÀ;²Ï 1’xƒ‰>1ÉJ>±úzÝ©áæ{‰±ƒœœµ/«o{”"jÐ ¢…T’Z¶5ŒHØliV±«Úgm‹½¸¤¹–¼ßge8d¸‚ ‘Cuˆ<˜gº•˜<ÓXÍ]7È =­î(º®i/8g?¶ŒÁ]³Ä¢ÃópIÌÙ#Wý¼êw‡Œ ±Ls^æÿn­~èÚéUp«ýZ>îp©éi`¥¹}G*¨Ú”ˆ ;“"èüØ­ø‡ŒZå,}0CJÌóˆŸ7šž…÷ÒõjYP¿B‡ŠV³7‰Èp*ðiN%­Ü¥å£7Gñ)^-µâxUÀòjX5A-}4Ïõ‚¹žZ&‰½qFÕÊ{ĽØQýߦ¶‘k\rÐȬù¼%|ZeQƒ +ÈÚ4„uš˜« ¹¸6ˆzâçâ}K‚[G+ó-Ò‘.-¹*¸*j8Ú7¹†ÛCÇx ¬ÚÏ6þÏͧ]Ack«SݱJÙV 2r¥»ô|õÁW}äk_͉¢þ³Ó_2ÔÑmRVþî5i_BIµK\ãµwF«î¬½MýEÛû]hA@:ÏÙíç¤nöÓ’6ºª#|“°'ÿc¤TýµÁ!oLÕ>Rt^\|W}Ï!k$˜%õ5 ¿f›ÇÐåÍ™?-uVÞrËž +ܲÎçSb„iûdoˆm“q!NU=iWÂÊÒ´U]ÒˆóN ¢xgh9mx_dr®}Ÿ`—‰QËýôÄ^|äÎ{ÈË8ò¡WÅl$¢øõM«ŒQ°?^{Ç%'dzuB‚]FËÝê+ººÕ›uÙ1‰´Í2‹<Úg/ƒ†ÎQ§¼ ÅÄ~XçCË\œmŽš½3Š‰ÝŸ¤d¬’bÖ‡(qöYN¹GÃG[§(i~5ïR2md4è½ëóÏS®Ú&«îx•Ô¿º‰çR·5 ñÒ¾W·•Ýݤ”¸¥Ôòc¹2¤¥–nÊ^~WsÍ4Á¬pαÊà;6Ÿšm„\Q´–E˜€‡ìZŸ† ÝÁEëÞÂn¯A½µ´ø BâáŸì×sìÓ„¬ã÷ËvCûÇÕ†æÕ!B²¢­ê–S! ‡@Vôêù8ë$.q¦>í×ÙÆÄï­Sð'ÖDà¸ÐËûé?Jêr/ƒÌ]ë¬ë”c“·¡w·új"‡?ôi™5¡¥†úÍ|ÌR'<Â=Âÿ±ÒØr zΧÄå™GaqV"Ñ¢âÃvæD°•QNö¤¨<Õ§"–º”ˆäk,윳?XucýUÙEÓ â±SEƒºôlèÞñ¦¸Þ¬&dοGFzæÛ:>l¾˜øbn|ã2„÷¤•ºÔ| õ"ðe‘_M/>4ðÑ•n•r‹Í“ìüÅ·µW4mÐ_UÍUç %ç×ÞÀï;Ã÷“*ÃsÒ‰ñæIVîþ$+oáuÉÙYqÜWêæÔ¯ìTÜLVs0-†YFEÅ.)øwõp¸ä¼g¦ ÔKÞYcWú 勌ßÖûj{äÍ,ëtlŒžb—òËs|ˆSFÍsÿ=Ÿ7!ˆû¶xóëƒqLfh¾IäÒ6²ö&x6ð»6 1ÑÜWsÛ?KL_îÌ:¯oKýÙ9ƒMv(ùY{íÍ…7ØØ ŠšŒ<62‘=¥Ð©Â§,¼Í;½Ø‘q:|ßwh©©Þ©l X¥„´ƒÉêG!>÷xžõëØpŸšYµò®ê¦”Ÿp2 'W¸tÌ +‹Œœêš#çºç(Y »:´À'9ääLë )Å*e—ù´mÍ{cØG»ƒÕ·f›r®ô¢uÏÀ3þX«Î× À±­ZÄÆ8•BªK)Â['±1Û}¹FèwcF¶I°€ñÚ[Öú™ÉúWÈ+úW¨«r!zc æ`¼[;½ç·{r.¸çpÙ¡y>õx©õ…eŠ’½3ŽO<\©oü°ÞÐг  1×2^qg«/ëŒc–œ ÞíŸomµ«ÛãœB§¢•g›m$»”¼š€ž‹>c’mrt‚m–šíÒpkÃÏÔX¥ÄdŸ– s©Ø0œ’{¤§”0Ò ûR6d¹‹ò83ïh­¥sw†\°ÒXzWzu£r×§£CÂçˆÍJ1ncœW°2(,5I›é[ã´JeGyôÂXäÒÛòëV "Á¯ÄçýµS×âúl’×cÍrAup±¹Õ£åÂ\jZ‘i½7ŽxàÑÑ+?nÔÕÿajéÙ›fk:7LSüÚëMOÿÛTÿòó2噆Fíu¥œÒ7e^XëG¥h›µïIÉŠÖòËŸÖÅMÿkmîû¼!¨ÿ²Ä ùµ9މâ{»c¥×¼‹|Nxþöú¡`²9ûô§½¦7ìµ}Úà5zèÌÝØ-–‡ô¨…(Çœ Æ&c—ìŒP’6ɛ὇Ä%ViÊ­n ;ÔüÚôýÕnØÕÝarÜÁ ¯lg˜’´úŽðÈŽ»OÍ…. +HÀ£J€³,cäç4¯Ä"!Æï ÃÂ9êž}²ú–KŽ÷éÂëÈ«õÌpkLÃÈøíþòÛ¶)lŠGůÝìCݱL’’¬@—ÞÀXG0IŸ |âÇÅ:ŽCÉ(ÝèÇFš&(‰ëƒÕ×_æžtMââÝÓ„Ô ‚^r¬¯#…À»¦©ÙžzÁÇ%Ó&Ã<±Mƒ<¡À&zµä<—ŠRr¸ÀÆŒáÑpaö9Ô7ßÒìonôªêpaž†Ý³ÉÑ–Id<`ãüãeÁ.§øµÌÊÏË„6M²JÃ^êqÊÜRT¼ÔÃÁìáVwÕõc˜õiµµ#8/fÙç¨Y +ÝrFÉÁ$:Î1H=–¯lË¿¹ò®âæ>ÈíV±2žmš\àU‚ZYd¡?¯ +y~‹´1K³NBxµ”’£Õæç¾…–æà|=/4ÎÐÈ$‹¤"âˇ4pˆn%aWp!Ûf©K×öÔ®jå»U"”[ɪ°NaRl3˜ä€] <ˆíÓÒ+3Ä´€&ü\[c½WEÊ1OÔ<\êÌøm¥ zë?®·¼ò­ŠOKQ¿|§“|F1Ó¯Þ¬ Ô”UÅGÛ /;W¦Ÿ±‡Ÿ" 2#¾Z WƒìÆïC?^d ìÒÊ'>µÌîUUk³MÙþtsˆôÄ4EÏ Eœ€‘ƒ9ZrWùlß mSÐ Á1©u蛟º õ|·š˜åœÁÄ;g±A:çx§o©¹ÍihmÞ”ðÊö'%í5w}XãqöF`–AØÝ•΢û¦áâ„?7ôÿ=hèú¸%ä›g kðTß<_´Ø]“¼;R ²KmöÑ2¥S–S)B™¥üJðz™ëý˜ûf·Ì2'ª9×c<úzºS#&Ú”øÞ$)qgó`ÔñÎ!Î4ÁÈØâç8gš°¡ùða¡]Iͺœ`ž ¦X%‚Rë´°Â,ae[$”dë8úß@-rkéÅÓøøÝx„Bœù½¼.ñß;½•×} FÍìœpmy5üÚpϘ•G:r¡k“¸3Œ¸»Þƒ‰Ø#NÇDšF‘5<„oŽœs¨¦º¤Èäݾ¼›ÖÈ-›\à sä û 1Õ«aC‚ó¬êp½Zã3CFr•yþd­üàj{Ÿk©õ¥i’™whP\jlrh˜÷Çûy•öª)Å6):öÈ@) Í3A6D<ôΡbRxÌõ?«-ÏþXl{Ò7ñ@–˳«…¸}Enk˜ôÄ:Žx¸?TsôÉãÀ,µäH×ÈhDà••ÖZæÑb=Ͼ3»·Ù[ta½¯üÖ”8ñ`òû.…½9Í.Y ¥ùu­Í‡ÆæÆž^éQâR7+oË[SOÙ¦«.2j?¬××{çEdÿ¼ñaíïgn!Î9Lœ[ŽMÙƒÞÛ©}àÓ )GkÍ/üóbŽc– _þ`¬cTl¨OAÉsË æIhôÖPEDø:Ǘ妖ãåú:ÀË%vµ|wž¸3TsÿÓ2z¼Æg™TÔC2r{š‹rÎ77{„^Ð#¾…z~pµ±åhSTgŸsÇ9ùš÷„Ómˆh·¾õYh¥¹Õže¥d”›Æ«Ž—ؤOu Gk/§ª:úfÍõíaTÔáFà »Š^îÑÒK=Zj‘CI+òƒ>9_ÃØ|!1Íñ‘ö9BÊ¡‘ú°Æ§­qð~·üË"–gLƒ .ðÐ_vê-³ÄBÝ+èç,˜™óy[Øôß{¡ß@‚8•À—©åìŪװtNQÄWÚÎò¬?÷ßþvߣ¤=Áº5Í<—J ô†ukÃ3 ¸à¢˜\¬cØ•ØÁ¿Ê6'€îK¸…[ôt“„šu0Ë.Ý"?Ù¨‰0ãÃçòÜZ1É­ œra­KÙHu«›Àß‹@­rËÃ×_z>Ê6ǃìŽãbÖºj._A/.¿†ß0RÂy«䨲`çТ˜ã_‘Ã3@}Zb¦k tã5èœã”¹”œÊ X Á•79§MƒygÍ#ùg-c…×]2|ªs–UêTñk³ìVˆs€:Ü.ºjž(¹f“ÁÙfà3¸ä ND=Zoí ï5º3EÏ…³mž.¿áQ!AáM£@$›‡óÌêÝiNéæ86è8$¨£–xgá Ø|¿›¾;Z}gÔ£ðsxOó‰èYë$=Ï~®oñÄ?‡Hœ™°=H|l–Ð3Ü +1ñÐØÒº?IN¬áQ²à.Ö¤p8;´ÔúÌ®nd̈‘á9ÁÖ!xtèÙ\šTÐÑQmñ9Ÿ79Ÿ¿;^}ß<…K9^mj- h>-£Ì¯fU{•¤<¯Š^Ô7p?¯ y ÇrÖºK/nôÖDX¤TøsdÌÏCŒä_½ +L–_C(ñÈ9ÇzVõç%#dà\*ZI üü–ª‘¹?Š|2H‚C‰Kw.pñ‡«â¦/;­ï¿ì‰ÛÍsø<—žƒ ÏR°kXH—Ÿ³=…x¸=…޶ƒœ~¸ð÷ܨg ®øcøÙ¦—ýµ–ŽO›B~@C(ò¨‡ÏRs쳄ԣEþÓNc‡ò%ä’GC¯þsOÔüiä­m¡È¿Âg˜UÜÚõqzª]A-úïýÖþ?÷š»ý „^@ø¸-|Ù·}Ü V˜ˆ%.ew +ŸdW±0Ç+O_.57κ”äâ¹Ð«§Õ¯±±Þy^ß›n)½íT“°î±^UM´G‰Ï<4°kŽæ¹¨C³êè½?—šš>­45…ŒbàžôÍÔÝý J²C.„yÍ,oøœbx®áŒÎ>ï‹Ïî —^r+™%Ë¥`~X1¾¬·¾ù¼ÞÔ2ò0^5«Ô@‰GÙL·ÉšI…å’s+\³ä ·œžô<Ë&¥gi…ÄO+àXŠ9NêPÕSܪ¶:ûœ~ £çȈ©[ƒè{f !Ö)g‚¿ËÛ€E˜F]rJ6àóJó9egµÑ_sÓ#£æ/55z õ,‹Œ–cž"§9U<˜Kòè³ -k¥yc÷päzaøXÙ€ÝÕ¼§‚Sn›£çÚäÔl‡‚ž¿9вÍ1òCFõx™ƒÝè)8g+¿n›†?ÚEÜ÷¨È9vÀSÛ3œâÅ^bd¼¯GÁ¬Ù‚Þ4 C"ܳ?[YÒññôm/BzÔ{6ðÖRÿB=Û£ >¯3`Ÿ×èÐà<½ìóúi½±Å§oä,wÛ¥¬ÒÏë-/?¬òèYí#ËDÙ5ë$$bw¸ò¾c}¼Æ§«ãútLÄἈöd%·“h—¡cw{aw^äþ¼ñrÇ.¥¸T"âB?9·öèÛ^zö·œUP’ò½2|’pždÛý |âÖâ±K0Ëø5k=˜×êxÇ« âༀúi…Ž +iq™¶©²[¦‘â«ÖÛw•´2éËÂßm*ôçã"ŸðÇ*`ê%:|»·ôв%ûÔö.Ë·ôbØ +êͩ础&r—êx¡•:ð”ºÿ1  ¥– È­ g}Ú7–™5. ½,¼Ž6%·Ê"Ô„çâ4ÂúûÒø•®’ËÇë"Þá:Ÿþñ/Q+-2DŒ°»o‰LÒ{¼(â™ÆÉ.5÷ÇnÛÐñŸï70«-3Ä”= 9é`Ž–Xfáþ² +ÿØc³msÈÜ Ž˜ ÐàRþþuþÑÀÅEt¸V䤋„¾§Ï¡Ä¦š'!÷üR~`ž‹p*5öVy»ÒS|nw¸êÆá¹èã +¥âózh$”ÿ±É£}Xácb½J~KN/²JÉ9¯Ê1Ç)ï_sl`ÿæ%§b³§êŽm +0° ~#í3´6ÙåÏ,²fÀD óÉEë8+ko=ÿªèÊFOÅ÷«äàuœÒ}¯lþö®î%äx­k­À5G+ߓӭ ߨdÀ†5»3œ"ÓL|cTŒÝ¡@‚Ze@MãØ\»œqjëðå¦Fó,§|sœðÄ4C˶ý}ï5Ó¯¦æ‡tÔR{ª=rf1ÐZ¼O+¦ZgËE{£¸(GøZØ,)ͯåÀ¦éù¦1Â¿Š iù(ÀO6ß—^ÙíƒÞuÊà}jLÐMdh‰‹>RZ’—¸ÀPIÎÙê'‡zÄ#gW˜G ñ ê—RϾ3†¸w #äzµÂábsÓñZãS§‚V®nËù]õ4óèÍjRDZ€ßÞ—2Âs„í3ìŠc ã¡…:öz/*RÙ\tvŠ•pr«–Ö¦t¥§ä7‹Òr‘G!ñÃðeCÈû²%È™e[ƒ””àßçÇ8³ëŸï×0j¼j6îÓ²P<¬Ý3ÏCÛÕŒ +ÿr뛣•–çÇ"¤%åúÕèdÓPm¤}šYšoª?ZmyažhàâVë€Ö&ù´°Xÿ<.3¸@Ì·Í"âLR2$¸Òúä®§ÁU.îãÆÓž^@pJñÙÝ%[=EC”{?<‡žû×RWöÝ¿,õ/ý+ø¡~Ü·¯ X7ÅGk|ž]Ž+]|Wz}±³ü””õqCÄ›m˽´;Q›v¸ÄDü±Æ£þµÂ@ä¤ÚµnHÖ3á*7ÿÜ?B:!.d Wé•~->Ý4^qÕ1‡NðëA–0ò°|ÿŠ€žUåP¢“l351Ÿ—µÇ‹áðÔL°þ™€g ­Ó¤§Œšÿe•ƒ è0©NyÕû,ôÞgàal +˜G@KüjÖ1GʰJÑOÜ*Ä6 |@JÎκŠtͱŠVßAïH0ÉÁyZù‡U&Ügà A΃(„p§¶žlSÖ㭜ܽ~b¬²9óŒy´<Â3GȲM‘³ìJ~õž¼±)©«6IøPŸ’³Mã×zªol Áïƒ×Bºõu”ýYzÎþ,§Ä¡hëþ~¡zÞìÕ70,S¨XãëâsŽjAÐPG9^«XÂó‰gÙeNC£È»ÐÀ?Wl™ÄÆíôW\œáUò  æ8^ÀV)«Ð«“Rfa@Å(qÏ2÷‡±{C臦QÜc¯‚ jÄ$ë89u£rcgz×§ÂgøÕ¸Ta“Õ$Y¦‰©NM3ßkhi°Hqɽ…]2r–KÆ*±KI-ñ¨l?ís/éû3ôïBSg¡í¹w±í¥×ØÀ·Êˆ‹oŠn¯õ–'´|²uZŒZ|‹¿cc8fÅÇ,>+¨Ã9g±©kï —fÙ?ÑâO®¼DïOÒ2æÚ +O‚œéÓ2áæQD¬kŸéÕ Ý:r‘CÍ(öh¸þŦ&³”–kž"&¯‹ŽVÅ¢À‚€áÓÑÑ~ ¹Ä«¦çyØ£çÇk-¯>¯5¶}^ ?­Y~5Ô ð!°®>{zÃ¥¥CWLó 4Ê«Áäxt `gRÀX_ç[ì˜ ®>ö-sé^#¹äÃjÓSœQ¼ÑUvy†ûo}sú)ÝÓŒ[›}EÉŸ6è´ÿ¶4u»f¹t\ä§æ·¾E>É:CÉÛG/v_Ú«Iq+‰E ‡–9ÈéÆŒ_7† ‰×y” tˆ{´ìަ>ýÌ+èÃו<ü¶ó;Ð +‚h¹[K+òé¨ »R‚:6`yÂ4‰‹³Jq öir²{–YøaY@ýsƒGûc=4Ò+Ü +j®{Ž]|¨ç! "¢OÁ®8Ôs`~5³*¨g!ޏ8¯†Uá׳¡N%¬§4 b½ C¹Ô<èæ³ò’k–š÷ÁÈÃ9&êX‡óBÀžä¿“ìÕb’ÂLü4?``Ãj6`f®O%@º,ˆ_MÌZî,ú}ùeÙEÀ;°‡JLpk™>M=Ù§Ò¼Z›LD`ŸgŸ…?¶– 9˜OËmþùg¯ä|ðùàsÝó]s˜¤¡’»ë=é¿»Àz?im´¾µiùè°¿Ö"8§YUîiZžk›d—"'áSj1ŧm{j•Ð2-£Ø¨…EçV_•œù>=¨¡—€4áBœ3‚š¾ŽÔr “ˆ˜•7™¿,wfüêSÑaG+mo—ê=ZÄ¥äãü†FȽÌC­Ô#«ñk©%NЃ>ƒ€øa³}èõs×|£Àklmõè¸p·œšçžÇOÄZ'y{#ŒT÷lÆ,al ”ž3W^3 îï22-ã¼ +ŒSãSð& -}õ=:Ò§±AMà÷Ç`‘–qB‚KE/ .±6…‚Ã¥§¾ùFáÈ“€»XG»Ï&§-Rrš]Ïø°Hƒý±.à}}s¼ÒÔ2Ô3?¯µv~Çϯãa€OV¸Õ_{‰wßw)éÐ㕆æO×ù¬ë-¡e± ¸È#¯piA#—ë™'äÌÕ>8ub›$%Y&°±ÓÔÊ€–Gýs½¾ý÷ØÜC#ºÀ2MÉߤ$¬÷S½†öw=²Y®[Ŭý¸ÊoúkKÀ÷Ì1Ël“€gpñ& "Ò§cT‡ó£W>¹³=ÛÅ—ìα1>c}ãPë~=1Ë«%e~=ðy¹žÿeEÌ?^ÍRBÊöPõµÝþŠKö‘Ú‡!6ïó*ÿeC,ü²)­p±uÝ3°H ãUà‚FÉ‘‹ zê9Õ!À9–…´Ë"ZÐÀ‚xÔ¸4·†]éR‰±M3×1×B÷©…¨A€sÍv+Y¥~-«2dà"ŽŒ"Šô»±+ïÂ4÷þ¿Íi'z +Ðx̧áá\*N}–SfŸ@&(ék¯óÏ›ÁguLàbýsÌ¢ àÔãíhEÄ +.óð@Ÿ*½FYÀHÈw©*ºæJnX&*o ŇóÏ»ì +ZéJoñåÍ¢›v),þØH«{í½öš×Ú} öþûœ~çß'ÿýÅ­¹ÉWw÷¦Ïméš÷ñšôýïþÖì•Ü÷>ÛðdçÉ >^Ó6ñͧüË×'þÏ^íœxì€ó@nýlœµÙï_Ù=ÐvaGßâ“;§~øòÔo~iÊ·Ž½1_\ÜÕÛ|qÏó??·óéÕ§¶ô/> ¼ìÄ[ø<ÐÕŽŽ'N®›;áìÆ°•z¦^›o:·çÉUÇáÌ|©íî·VÏúû?ýç7-ö.ïYòøµƒÅÓÛ–µº®§é䦕íÇ7¿{õŠKHÏV<{rs{¢-¼rð¹¯\ùÌçû–~²vñû~:ãŸ.oë^´úù‹»W<nÇ@÷‰MOvÛ±zðüÎU+¯¾³|å?\õ/p2§€—žÞRxâóCË—Ÿß×Ûzj{× ÐU=µ±sÚ•ý…æÏßéí¸º¿kÁ¹­¹i‡_žwçgk[¾ÿÅ¡•ÏŸÚÜ5ãàof;ôâÔúè•…÷Ž`®º´ë¹ŸÝöôsG–N¿½¬ÿڇϼôºëN^É7ýåîç7\€³ziG×ÜsÛ{–œßÕþhM³u|sÏô3Û ó?{mñø?Ÿò·;~|ß7à™—vµ=|aGvÒy§Ww÷·]ß·jÙÕ}«WžÜZ˜½ÿŹÿ¸í_úŸ[ž¾÷¼ûoþõço÷å¾8¸bÅç‡V,¿´·7õË6-saSgÓÉõóÄǯÌiøèåùw[ß>áì¶žé_¼;XüâàòÁ+{ÚÏíÀú€¹Ú±·:<ºù•½+Š—÷®è½²èl[à«'a¿O½µä¡s›—4ÙÔ5ýøÆ¥ÓßÿCË}ï¼8×þô÷-/ïÉÏ;òú\óÝ_Oÿ§ñ®ïuOßðTþ“×—N=ô‹Åãϼ¾äÁÓ¯çîÿàW3ë7 šßøà…©ã.íîo¿ôöêgÎí}öùÛVvy«uâ¯Î'Þlyôø黽±Øûl]ºñ£×2ŸmZ‘;±uUï…=«®XÞ‹9Œ‡^œ§ô»Ì„Ï@w>»u œÑ%S?Y—½çØ[ù)—w^ÞÙ5óÄ[™ïíÿ·‡¿¹ÿgþݱµ ½s[»;¹uyÛÑ7ûf~ø‡ž¼°äž½??îè+­÷ìÿé´Ú²úÁ¿Ûù܃ß8 :÷•ÝýÙS[ +3ßýí¼úýÿÞ4îܦE“®ìi›rìͶG>[×1õԆœÓW¶ÞúƒgÏlëo>úFó=û~úè߬í³þôÓßÎ1±ÿй…E§¶vÏûñ¡O^ëöñï–Í>ô9çø ´ »ÿüÎöG/îì8¼çÊÛO®»áé³{–÷y³oÑ¿íxèãWZÇ}c1úûÐguÿ±-m^=Ø¿ôê;OýðÂÞÁžs{–.¸¸o0fë@ó‰ Kg_×1ùè­Nln¹ÿÒ¾bîÚÁ§ÿýò¡yíã ùÇNlîzìüÎBæâÎÂ⣯f&ìýÙt±ýÇMßýhMöÑ“›Ÿö؆§û÷þ2;éß,p¿8üÌ §wôgñÙk;Á.Ù™ž +ºÝôó»–\Ü÷Ü¿]Þ·ú¹S›Û9ºn¡óÉë Œ£ëßszËâ{®X2ûú{KÛ>Û´Ð9²v¡ ºüÒk‡žù9ö˜¹¼ ã¹ÇNmZ2ùÚ;K[®¿7¸ìêûOýìøîþÖÖ÷Í}fæùM=ÓO½¾`üžç'~óÍ•÷þÏw_|ìŽOßj=·wîáßçîßþüô¿>ôâüñG×.ž|}ïò¥WövÍ:µt×ê¶÷λ²sEþÊžÕ+Nn_:wÿKc÷/ßµ÷ç3ï„ý¼çïr×ß)d®(¶ßQ˜wmϳ?¸´ue÷…ÍÝS¾:ç;ïýrÖ¸#/-6N¯ÏM:¿¹µñÚîžyWöõµ]ÜÕ×|iÏÀ’K óÙÒþб7}ÿÂŽÌ#—÷t͆3¹âèúg·d>[öíoÕùíw|ø›'¶Ë¬ó;û3çvô-ÂøãѵͰŸß[qú‘×A/~#?ùèÚ⬳ŸìÆš·ýÿ:çï7®zä/Ötzô•yîÀC¯¿³ú¹3;ŸyêКâ㟼YœufÛòüyÐO@™säÕyw}ôêìú#kÝ{~ï³?>·÷™ßZÌœÛ9ØqtýàâO_[:åü–ÌÙÍÝúúí³u‹­[/ÂÙ;·¥gæé ­÷x«uÒG¿_|ïùÍÓÑÏsrý|ç(Ȉ£oö>öÉý3>ZÓ7íƒ_gÅþŸÌÿ‡7&ýÙÅ ßxïç3¾}ygnÊÕ½KžÜ´äá#k[ï…ý{âì–ìCÇ×Ï·½ôÄÿ.m{3?í2Ø;v<ýô‰-ƒ-ü¡ý{‡~v¿´`ü… í^ÜÚ1õ$è-­Á\ß–ñg7õÎÿä÷…Ƕÿ`Á·Ž­m™v]ëÕw–f¯í_Ú~zsóý'6´O>¿³gþ™]Ù³»ŸÿÙgo­ìxû…¬ûþË‹O^gžß™›~åí|æÊ|û¹]Ý >žúák‹½ û–o-ÌûhMÚ<úz³wæ­\Ó¥}óÿx¸¯ÿ‹÷Ÿ<¹£ÐõñæŽ&ìûçði8· Þûõü»öüëôúC/͹÷ÜfЛ¶.xÿ•– ;>ûŽ÷^myèú?ÚpfûòžÃ/·|ïð ³î<þú¬ï€ÍôðŽ}¹Ï?xêg—ö ¿º@ûd]ëC§·».î-´{k¡wlãB°íÛþdÃBóÓõé{¯½»|%ØFËÏìì]p~W¡õÚ»+¯ì/v\ÜÚ6íÜö¶©§wšíîËßÑß||cþ±Ï^ËzïýrƸ½?zôŸß~aîƒGÁž?¹­sPx¡õîMÏÏûÖÉ=×­zæòÎÁ¶KÛ{fŸ}³}Òµ]KÓ_¼=¸ôê®ââË»{ÛÜÙt|ÓŠÖÏÖ?ÙòèjñÝ÷-¸çÊö©×ä]Ý׿äÚî§Ÿ9»¡gÆÙMç7f_Ü0˜>³nÉ£ïÿjÊ?n[­ýù¡Ÿ>œ:³)÷Èå}ý¹ko?¹úâÎÞ…¾6O{ûWþå‰7f~÷â¶¶û¯í^:ÿêÞ¶3[‹OœÄú8'§`>§Ö§Ý£¯M¾Ñ~ß±õܼtæÅÝ+ `#.îìo>µ±kò¡~÷øúÜý—võ·^Úµ¬cçOæüÝŽç2ßùàWýSO¾¾ôÕ%S?þý´ï}mŽsì­eéOÖõÏ>¿muÿùíO¯øðµ¥“Aè½z`pàê;ý…+ïôu‚^V8¹céÂw~»X?¶f`Þ{¿íŸ½ñÉéóá‹™{/¢Ž·©ó±+{{³(/ïèøäÕÜ='Öç/íêË\ØÞߌ¶ú±5Íî‘Wž¨eâ9ÐoÀ.ê<¾qEëG¯.}øÝ&¿ÿÛ¾§Þ,Ì;µ¾e¶ŒÿË^žvǧkê§·vÏ:³}Uÿ§k–L:±véœó›ÚÎoêo~ÿ—iïÕ¾‰»nŤoüÍ’ñŸmí[tä¶ûöþä±oÝØþÐåÝݳ¯îÏ/¼þöÒÌgo,¼o÷§~ëà¯Zœó»Wô_x{Yᾞùg·´=kz÷Ù·Z±ãÂ/@N^ÞóÔ3Gß,Ì<ôrî{`ãµÚÐrß¹­‹î;þæ\wËó÷|óã5󬓛;?µ­k.è^ƒÇ·tM=¶©­ñìήév, véœs;ANíXxÏgo.ô.î-æ®zîEëŽoèxøÚþž/Þí_z~Kû´·<ãÎÃ?Ÿœ:ø‹GþöĆÌýÿùþªñÁê=½¥8ÿ“×:†}|ìÊΞ'.lï™w|}ú¡×Ìp>y-sωÍÓ.¿½rõµwžþñ9Ð{ŽÂºØÔ>åò¾Bæ8è¤'ߘg\ÚÙ1óüÞbóÙ}}-öä/ÁžžÙ¾tÁ©Í¹iWûAW\qý`×âë:çÛØùÈ¿_rÏñ·zŸ8·£¿ãÚ»Oÿë僽ǧº.7ñØ[]“A®/º°¯¿ëíßÌ7ÎmZ:ëóíO¯nlþôB˜ãœ‹Û[Ïïlþþǯ?ñó ŸŽmX:ý³õùGNlìjúâ`¡õÿ|Tìýâpwóå}³¬Yd}øÒ¢†3ë{¦Ÿ}k`щµŸ|³eâþŸOý»M+'~ãð/fÝ úóŸ€yï軣?srËÀ¢3[–κ²»ëñ³›çj§7ÌøöÉ·y'ÞÊO>½eYËÑ }`¯ä§}ôêÜïl~zŸ¾ÿË9ãN¼Žuq}À W \Ý—_öëô«û—®ìì>·¹í¡Ã/?úïüêo~üÛVûôÚU-§7>7xzÛòö3(S×uM¹°©?{iç3Oƒ­ÔztÍ"óØÚ¶ 'Þê›ýùÁgÿãúÁÕÿrèèìî¥ó.î]:ÿÚB`__ÙZX|æ­Ž¦O^»nÝ’Gþxpùªó»òs®(¶_{··í̶žY§7ç\Þvõæö‡>üí̺°¥µé?÷¯Z~iÛŠüG¯,vŽüaÎXÇvø•ܽþ¾ðЉ «Úß­0ùàïÚœck;üìµöû¿Ø_Ìý?‡û??Ð×} +øÉ‰7»›ÎnZÝ{yÇSËÞÿM»³qõìÿµ¦øè7@——w>Ùwuÿª•ö v|´®mÂÛ/ÌÓÏ¡Ÿl½Ö,4>xå‰oþÝÜïyuÑÝ—w¯~öÂþŸm8¿gyñĆÎG\ÞÖ»àôú'´_~ø½ûóÆo€=tØÍSÏïZ»zçòžc:9¹¹sê…]ƒÝ×­zöú¡Õ?¹¶3ÐæøO׿ÏïX–;¿«¯åÀ‹ó¿snw_Û^þÔ€_vÏû?—-ûüÝ¥íhw~üz³óákí÷½óëEÀ/:½¸µ7óžŽÇÿû`¾ù¿?È·^ܵxÒ»¿œö·ï¼ÖOoï_rjû@ç¿i6Þ\õÀ7×cýÙÿ˜Ñpa{!óŸï/_ýÇW^صt>ö¸º¿¿ãówzÁ6{àŶü“íOŽÿ«3ë3| ÿóÃËVÛÐò𻿙ùöö÷~äGÛþxä©Îno›µePÿ³Ë'~ãcÌ_ÚÔ=åÜŽÞE°¾îÑ7òÓ®¾=˜ÿüÝb;踓/íœõ½÷_¼ïïÑò÷rdÍô>±¶íû×¶÷-¾¶£wþµÝ…Wvô̾²«í¡K»2÷]ØÖ|ÏÅ=ݳÿ¡íîß7ãäÆçW]}{ùÒ/Þ+´]:Ø>íøÖÖž›öÍc¯ä&]ݾjé»/eï}}Ù„¿º¸åJ~ÊÙu½}²ïê¾ÜÔK»Û:¾®åîëóSw­:zõ¹Íí“½Ôø~qߟa?ÆsÛ O`*ú×?^×õà{¿oó>ú]Ç„ÿÜWHÿ¿ï/m»²¯í±ã›ÿî‡kø+àsú—-¿²°ûÄ›m“½05õñïwaC~Úõ+º¯î[Ùw|ëÒv-Zï¹_=ðÌÎì,6Y3ûŽÃ¿ysrÓ‚ ÛŸjüóO~7ï»§¶,rOoo}×ûàš®û·ý[‡ùÉÚg–]=ð×/Ý{vãì»>ùý£{à—ÿlÁ{¯ìY±ìú{ÏüÇ;/·|ÍÀ#ñék…™`«.ÿïžú÷ÿ|·¿plíçãßÏ­?òZÚ8²ö*÷Á+Ù»ßÇHßmÿupŪ«`ÃÙÚœÏþcägñHOà«úI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸ‘ZûI©µŸÅ'ÆÈÏ”ÔùùÓqãîïn™”.¦ëæ-]„%éösÑ”|÷´B®»˜ën«¯gðÄ,,Uðê¦ôà¿èÿÓôY>ëÄ=¸ËÿÖþ®9“›¦ä[²økhSnøãSw vuvÃ?Õô +¹æ¾b¶÷öµŽ<‘iÏu¶²Ýøï"u×ÃÝÅÒ¿áŠËzh_ïÐÆÝ™ºkfw.Àé0jw[øÁþtg?¹ìæv§»è9˜Ä2šÕðâ‘o^’Í'æûº[`j󃕢ÕJ;{+F0ô࣪k•oZ{6×Ö^¬1õø°ã4ááE:{ÚÓ‹ôJ1˵À“C ƒÏÔôö äZŠíïŽ|zØ1ªŸ!N]—Aõçͧ[+l²ØWh®t +ÙÞ¾ÎÊÏœz|ø·µA³*Å©9Ý›} ]Ú—íÎT."o ;†¢Rôºûº¦fŠéþlå2 øÊ°#†äØ× «š­C~µBÜÔw†«îüôb®˜‚!–pꥧgä:«Ø¶Ð;•p  ¢ß‘òr) rdgT¸¥‰ßd3†y—¦çû +™ìƒ…tO{.S±´î®x‡rÝ#t *Çe¾BFŒ6C­v —|O¶.æ #TzaÄOc¾«'ß›+VqvnÇ<Ȩt +wMʶ¦Æ'&`b&&àP& ™˜€‰ ˜˜€ÃcVìo`żd´Y€­…4|»sJ>כ؀‰ ˜Ø€‰ ˜Ø€‰ x«ÔR/ÆŠ¨›cÒ4š˜íÏvNoO·äÆBŒ¬ŠMR5hÌšHÍ}CpÃÑg"±ªCž‰±¢èTlõ[&eûsiœPÚuð¥ÓL÷õöæÒ݇¤ÉZT°+Þ¢–Ê™IË`-ÓZKåjEˈx—[[{³Å¡©iôq¸j¸vÕ¬m„NÿTÚ­Ñwî+NÈèí+´¦3Y™ Y)k½4ì„ÖÛ“ÍLíbW’ó3’ªA'Z8˜ÝšÉwæ w´ibµ…eÕÐ"?=±™ŠñríëLîìÉwg»+§Äø‹ÃeµH6æ»{‹é[@²ôâh²TÀ\ƒŸJiyÅ«²|$LO½\jÛ{SoUÊWnGßUdZ>×]lªÆÑt{|•ÙéòÄ6I?ú´£1ª@T‰V­ë·ä1IÂ)£,œR+<¡bM§£rë +«Xìu r½–uÏ£rDŒšÞ‘!¼\AḎêŠÓÒ¹¡”ûÑ'8ÇdBÕÚ@­‹Ît!WlïÊ+ߢ¯»=vtõ^ñÑâAžœ-´eq%GŸJT-»Ã[rûæ‘$}5Ÿ*2AjÛuõu*?›9Vù|çÄB6»¼âGí&Xéc.Áʪ¡1›_¥7T\Ñ^H·äú*ç'êñá7ƦM:¦òÅ*G¤¥rDF‚+¶ä:ӕdzG£:9_èiÏwæÛ*Ö•jÇlƒÜmÌ ŽžVy¥OÂÓžö%ÌÛ±’ÿÚ\qXg´ð²*Šýjœ—UWT 3¡#?ZÓw›+×`FË!©œ¶jü”h•«—£³×AåÄWë:MÅYðI׆vI׆Û,™Fs׆!ÒmÛS]UÉ•“4WŒO"lkwoj]U!Uk>çñŠ#(íéîîlçôlg6S» þâðò*'ß*’ñGLMÊõöt¦3Ù®lwqrºgôÉ$-¥þ—Šýª‡~­t[é·ÊÕ +õøð3–Š]C£F|UÎôk]|U׃²†ÅWW†ª8å–lb}X¡:¹ôj‘í5Wl⎚Ã_ù‘©õÃ_ñÞÔú᯼ +xx½ÔÊéëÎwWì~Ig2}]}CÇØ |eøÝœC¨>/'^OU¹w“ŸþrˆŠI3°gêóShþ•n[ø­á­w¤—U¼{Àè‹éBU‚Ÿ¯]on1_¹î‘ D*Þœ–Ê{Nñ³#à‰®&ϵ5×ÙYMnrg- »ÖB¾«rdèáaG¦%³¾b†×Ò’+æú«àuþ #PŒØMW\.”Iwf&ç+/ù¼0B–Iº;×U…¶p›jTFwû»zw¬¤Íd’´™Zµó*ßš$mæ6ïĘK›©‚¶jü”Œý["+§¾š÷÷T$Ig"Ø%‰3IâÌ w©bmtt$ÎdÆ\âÌØ·•ïM­ £*Äj’8“$Î ³8{‰3ú×%q&3ægª`úµ.¾’Ä™¡ñIg¾¹Ä™*ŽL­þ$qæ6%ÎŒ†ÑèIÿ©‚N«=q#´•£¸YaÙvÉfŒÞö£g/nßáo KøÛ¨âo÷¨o {«uö–EBM¸[Âݪçn‰ò–p·„»%Üm¬q·`ØhQuáþ1Æä*Fþë%LQ‡Èù:¢Š‘OQrˆ‚ÅøZʪ8µ‘Ñ~¼ŠìÆÀî–}nV8-7˜íœÖ™^¶¨ºzÌ1ÆÇrOš\wK¶5×=äå¨Á佞lº8©Š67†¿FrŒõÜ©]& w†H(¡†;zåôXûj +Ù®üPMFW£š1ÜÛ¥·»»TŠÙ—êí2Üg*¥ZJ·à¿Z +þ?~‡?ÇÃ?¤n{…͈˜-U7²©Uª¹ŠëÈGK•À¼V²šmªõ‚Ä‹Qó\!“ïêÉ÷‚ 2µoˆó>ú¸CUG©ÆÙÂ-FÚj½„|¨eݶFu¸F_¨ØëÔQ9‰uŒ…Uì íå "úHèÚ#2DU£¦wdˆPbs ÊÎ1×ÐðVƒÑ!D«4j]„¦ ¹b{W¶X¹Zðu¥£'üqK&©B¼…y$ñç$þœÄŸËÅŸ«ëšÄŸ“øs¾-ø$ñç²$™ÄŸG™$þ<ŠâÏÃx·ÈH¨›ÚøªTÏ$æ\s˜ÑâKbÎIÌ9‰9™-Z–íìÌTºO¹¶ö"ü{};tV¼SÑ×j7^ÜlzUMòCï ¿Ø­øŒõZA©ª·ðKµ»o-¹ÖÖ¾Þlc¾LŠîÊ%Wì½aGQÎ`¬Iæ±”ïQå݆»¸jEZ$.¸ÄW+.¸jt‘ÄW£~¸±taqâ‡Küp5à‡c‹n|[!›íjXv=ìUÃ&*·X÷ÇHcÐýa'îZW“ݱâþ¨‘Äý‘¸?÷GâþHÜ_£}IÜ5îþø9 ÐÀ.¦«H‹ìLÅÎ…Ñ¢Ödn_®Ðpç‡6TÜ §9Ý›} ]Ú—íÎT®XGÞþ­ªÎ³UáVˆƒ«â\Þî¾®©™bº¿ŠB÷à+ÃŽYk! ßÏU^vÁ/WˆúÒ°·š^Ì3Cxƒ¾|zF®³Š ½3š¤BÒiôö_ªB$튆Ð`F¨]‘ÖPñõ4Å|åŒ6?¨$—*µ„F¢ñRfk!ßU9:ôðlPÒGŠë/ÓGjD¼IUwSº-ž¤}…æ¾Nœ£ÐÕX…1UãvoÒ#åëP–¸ao&˜Ç%9h£Ì¬kc2­$ QN?òЪأё‡V9>c6 ­:Ö‚Zƒ6Æ}ÿ' +6‡y±B"q—iwyb~ V˜X‰øÄ +L¬ÀÄ +ãV`ÅzibÖ £H¬ÀQeVÜMbt£7ÚŒÀ$k*1G/LÌÀÄ üŠNb~µÔR¯'†àè3­1iÎÎç[Ú +éÊXíZUlÐè°«ácÖ»=)ÆØUU•Ÿ×xùOÅvlÒa#i0:lˆ$6F˜oßÖ#²[·aOûÊú… w²w5wÑ–ãRRµ®´v‚¥TO(ÝÝÜ™ÎtŒO1(ß“ÎäŠËî®Â¹ß[\ÖY¹kX>=bgêDsô©±/Žª;_5.z©7fãXb_¦“SâñeïZa{íUTÂwÊ[Òë+`%о6ü¾¾êXùôLº +yzgØQ«8§·¯ÐšÎd«Ã-üRí¶1ßÝ[Lu__Ðð¾7ì(Vy£íhÑ5Æ’é[í¥Ã_½í[+ÂB7*f7éå¹®¾*‚&þóþ½vŽ›²ð—ª\·7†/’º·¯ÃÖ©Z“rÄ©›ª‰˜Þ¦n“˜/4Ií&ÑýjR÷Ó +Ò-\è›h# ÇV,bÔ†Þ?Ø“ïÎV¡ÉÆ_¬]m]͵ju=þb¢=%ÚÓíÓžåé¶)OÓåQ½ÚÓ–½·€Z­‹à$<ñª߯T,;*'±Ž‘ °ŠuºŽ!ž "¢"•ïÈmŽ‚ˆ5ÈùADÌѰŠÓÒ¹¡´ÿÑ'<Çd¶nµ>ðšéB®ØÞ•­âúD„Ö¨ä©qZ9îqZùŽ$"4¡Ã‰W­KÏ[²§ :Ö$èèqU'—JÖ°ftÛ¹ãèÙ’Û7ÑG•v,}êÀ¼“}Ì÷÷MnÄKz;ÅQKz;}és•ÒäÿÊýæC*ÝDú­òýS;q>¯ö™5úd[õR»ÖE[W†ª¸³Ï-qƳ;ó…É W‹Œc,W6ŽA1i)Ró'ª~Ìô©¯Ø©õ¦"SÇ|÷XvÊÖvè$Æ}™1›PW­y׺d½uQû1™$!ppˆŠkòF ‹¸öWë\B¯üjìDÉS5§5[x WsŽ¡Û/wGO8Z¤*Ž&ÓÍÙYÕy5Cï ûFÓ×Ç¢»ì¾îÌ㣩48)-•Û¨$·G!¹é s¥Ô6q„UÈÂbï…twokå·]Ôõ# +콋:Ü­è§µnÝbyKâ9I<'·´1”7¡³ó¶ó†ÑcÝÓ-A€Qšz;æp+WX›ð°®-º¿»Å¿Ê +ABMÉwOƒ!¨S=ƒ'fÛrÝÁ¨›ÒCc˜üOÓ—u5ç;ëîx0[h6vg–šÿŸ3€¿dëúêJéGs–Á__–h e¦&§æ-ÐR-øøãuõB4x®n¦„Ñ yº›êªÃß\Ûó!M>¤~ÑM×ÿ^9XéÍîÒ|¦Öi šîÙ)­Áqá?¶n¡I×QW¯[ ŽnÀðvƒ¥yŽs¨Zƒ°à¹z§Á–¿½A˜šà§tÏJÍ¥§lÃvRõVƒé9ü¢{ ¶ãÂ/fƒ£¹š·Á²4!šë¸^ª¾h7èÂJÕ žm¹0¦n4šé Ä6Go0-] Àð Ë¢·=ÝÆ ÃÀ)éfƒiÀLðó®c¤â˜4Öµ–VOoÐÛ±q‰µÓÄÅÓa¶†k¤t§Á±ð¯Žgy©Yu0A‡°Ö`Eéc:ŽÂCÓ Zƒn›°Í€‹íY| fhK ¥Á¸„žÂµÃõïП·‚_Ãí|5 ¦.Ì!L¿£Ù–i¤bÓGœp+m ¾cáŠÀ:,,n¦Ó ™:ì€p±u@@– À^y —“t<Ã3-8†0àzŽiëð‡,‡&€˜4OxKw‡q5×Âa-að%·A÷Œ®ÄÜSèR+ÉÍ%ӅеLÇ#‚(yPÍ×ËÏ 6Ë\3DœdÖ¡ey,Pú¥àO‡¤!Ùø%PQú’NGš¬gúœOaÂúÂ³Ž…ÌHHÐk†MêžET‰<·‘–g€åV#­ƒaÖÂ:3RÁ…q¤o#¼R7#E gƒ†ñhÕ™အ–â*T†œþ.\‡8:cÀsN +«E®4bðX ¼Ñ@Ë +“%}ămzÇb醿›ëRÂ4’ˆèÒ –ßž)<´¶)ÕÏBœtËÖI¢³z‹Ú&ئ¸¬bþú3~ÀÐQ€°”"f¯pn,³ètÄ AG}E]u »´a&±Nœ‚ÕOøgRï[к Úle<Œ$<<ÔȲ‘Øàïš,oid߀ÂoHj.“„#5s<‰èÞ˜cêšæ2ä@Û:jÓ @ê2l[ÃÙ =£± õ .X˜ðé øwâÊ,o̤=D©f ûn +ÍMôûw€üqö`zÃq&Üd|è(ÂßäŸ:².‚þ]7<²îamQÍ€EŽ@Ƽ',Úq丆†ß†«9ì°mZ!Ý5ivèäI)g€§ö fí’QÅãæ®2ºp0tªu¡+¶y òàêÂgÈI0‹œ „’ŽN%'J +ž{Z$Éš¼3®EÇ™?irS€ñ !U É#:‹›j1:^"^®2~°°«,ƒÎ3C§GÐK6]CwFöŽB_#ÃHÇ™0í²™ Km ôw6XÑg‡ÂX™ø8 êë`)€âày®†OÀùôwbðÀÇA¹÷ØÇ¥ Q:yMìå„¿³¡ŒRMÊ¡³&à°£Çb•„ÖšôL‹4rѹG×*òØ +á‘Õ&ËP“¸½A¬M=¢¼Dë×2 “}si]Ì…ó±Æý°žtÄhtò‰Ý:Ä5š*,ygek]Ì×E Ó$k:ÒLJ§dëÍ­¾¬³ زC&¸­¬cM[°éèøº$ +Í@›( Õƒ©€œ6"»ÈœÎH£6zzbîR$„˜K5âtáš©‹­GlÅb«š©+ã»ÉCŽôL""|$b‰' ¶pý*ýµÈ¶‰Ðv?L9hÈKÚ_q£Æ¼¬qO,Ÿ{“ט?†Ðé ç¤>ñ=töÒjt¡¨ Y€¶öýO(‰DÆ„#äp2g߆AÞSc©ƒè#HjÚ¸z¤x ¾£žÆº5•§Ã†ýuqtÌcõjÓ±-¤e OÄÙzcõNù2PvÉBÄ B=[x‹»šéÜFÜÑQ‡uÌ©M\MÁ‚4èÁ¦YÕ#ÓA4c{uSŽ;â)Š®B´øËîll̦rîê˜S»©¬ã;ìïG¡,×Ê O 1¶äỺM²Ë·û‰5¸.*ƒºÅÚ=y˜”ïGwQY­› St7iB%‹ýߦÜ_àõü-Üx +ÅäÆ:‹@‡›Ë«b YwÕñ +Ðöhd²Á(|RMiÌÅ&…\-2õ&T~ÈîD‹JCAï*Ï9ú¤P›…›ba@¬žBšõ Rkì1! +ÅgX’)‚:ú¶;ôȳ ‰àpSj‰Ç0î`£ìä{%!¦‘&êÐ)âs6‡ÎÈ„ë 0£š$ØÚ@ XdÈ  †à™'u 56ôF’,… §„8:(I¬)’7×bGž -ŠÞ1ÈYˆzªÃüÏ’Œ˜(ndù°nÐåÈäQB&E>p§l’—FHsT ¯E…,vc“V.ãE¨ö˜Èm’-¸qô!˜µƒßÑ¥/TçwbÑ8$ÑL4Dã4–Ù®¦›qù¸‹_ÆR¢€h° RÈÕÆ”ç(÷7`ÅŽRdè9Y$’¹&=¥@C.‘(; §ê5rY ¦)#¤„ˆF)®©,]F—£¿®\Œ,G+‘*·Š·úëÈšEÃa¤As5 +a.­‹M.CœŽ6Ù¼žÜM›ÙQ$^Õ_W6ª|E‚LÞg ;Ž|Ê@!k• ÷dnêŽFSY&:ë'ÊA 6Î ·'bªöÛô(½@°?V\BÜ éç’f1 +XÈ@,¤Ea¡hà+‹DsËG|Âa¡~t£hd¹R¤Êäȉ e %ˆœ=ß'‹¢P:Rì2K3¥*€ó?ä\Õy-[:*ÊhÁÈRA—ˆ.'›V± !Ï2ü«‰št=ùÈ,Jd˜0d°_°Œ×5‹ã"°Ë1M „N=¥ô1X¦@kL™G³"/ŒË£¹Ë•ÁAe’c霤¢³›>†3… £+_½Øgp%ÍmX’‘É ~¤wc <&C<,ìÅ#Å‚t¶åˆù›ä¥Ôä,¶ ¢ËO¹ìÜõü¸¦ŽÄåq8N¦¥ÄIlWnª‹#Z2@ç»Õ€™ÿÒ¯Ó&÷m=‰ øî\ŠžZèÝA¾aI&kkÃIËB4õö¥qØbΨæ2ÙqÊ“%#¨2š¼„HW©SDC´)b1Ç#™”Ž\ÚEw(A‡µIYç—ˆ@ ž~ˆN<¦¨ +›Œ:ƒ2Tĉ½(ÎA))ÉࣸɬȺ2o /}ls¢È9@ð;Ì= €9AüwÄDBAò²ȃÍÙ) 7 ºj4÷‚eF8=#–¿Éñàù«ƒÅ’™«Fnù¡ðNKqÁ®U5ie˜˜˜}f«òH=°tdpt<ʦ×ÁÊÀÝvY:¡?µƒÝÛ1r`v%™Q… ¯± qF°bÍ…‡-•‚LW§üvGF˜-3Jb '‘´ f ‘ÔŒXòF$Á#C –ŒOÊ4¯â?¨³jŽL4s8M„’ IXÒl0íÀ%?ÀÐ;ÆI¢ÏbmA£`+'*¹2Æ jå³£>BŠœr“ÆgÄâÀ,R‚ƒSñ‹¢¤qs[¤\¶I,#’)Ñ_Í¥ˆåZD³ È,@µ“ò87Ý–†8ز·%Ù¸,Õ[ü6xî¥ûÏ"OÃMŠÝØÊ“„V‡‡bÇ–z›-‹àP"ï@€A~‹ãp¬J“¤‚Áu’“6E™‘1@Ä7‚,ƒÈfEw3²ßL®„…tG’+PgÚ“¯DÒx8½$’êKŠláÍå¨äVp$wè¢d^Rí’µïR¼cq„Z¹UïCl£¢›I`‘]æJÅŸHM{_“f´·‰d½Äòb"©3¼Î|]®B’&FŒ_¼ˆï¹pu©l29"_§ìCŒ] é‚:5žzò÷€J†:†N4„+EAsL;#‚¢H9®!¦G‡!ЫJN–Â,R¢{B,ÞXKx4ŒMÊá²Åèï ªXnüëäv‰Ì0†COö¹¯’Š)L¦mrý +ÑÀJðXRE1BîI‘}ÁX¢[±œòvFÒ~b‰Aes‡$“PÖ'{ˆðÊÑeº±BgŠ•OPL‰cèe¬Àd¶ÎÈøï:UMa˜’Ž€'cÙä7Ö-Sx8Ž t"×?E:]™¢XšQ,)š¬”)9e‘n=srCÈd–5$øv=kĬ5¦m‡¢ä6Ÿ^Lžq1 EcÖdqEÚ¿hdפbkuS¦K…‚}´Ð©?fârZëdh¦;0'\ Ð/xÚ;=öìà hÖ+±eêÊÍ:ŠWuŒ=±MH¹xX'Cn° ÖspÆXŽàQùÙÀ™ +ÛÁãÉãꯋçy…ÒÀnAUVÇ“¨o\š‡R‘’P‰4)lBáz8|±\4ÊI g«E³Ù"ùn´d%¹’o£âˆ"Hµ›N—ÇQ uù¼Xxº4TJ8NKÚqM¯lŒnÜËZ¢Ùb¸Å.FiÑJÑPoÃp<:¬0 ‚E¥­˜ÒÒX€x¼Ç&¹ÁÕt¢ÓÃlÀì#˜EQÏPB R€«ÒÍ„ÌvÔHÈRå +.¥c³PA&…f·-ÍÖH>[],á-œI—kŒ-ÒM’ñ¬S€Ó’]Æè9â çTô#—/“«Mgˆå;Är"2pÔdÆŒN:}ÊRéä$Ö JÏã0¦ª“‡Ó’›JÃð‰Ž„þ‘‘GÒ¢ùeR ‡ŸÉª N8Sþº·ÉO[(’X³þí¾:=5©NÝåq£ÒfÃ%?V·¸^JeEjdv¸n<Ë.SOÅ+“­ÉÉ·"y[±Ì®XöWÓØgHÿ–)Ñù2‘||)–³Ëê‰$ÙP2G8'–ª#/Üž(ÆH4²;øŽM†?%d¡"‡zy®bé)øN8ƒ%–âR.¦\¶L<£&’+‘©+“QϺˆffPB‡tµKärý\8˜O¯Dãýñœ€hœšÕV¦$K†Hõ§“EÉsV™Ð2Ù*Ñt‰Û¸÷_F â1‚x!mˆ…$bA‹°£š?Fë,¤Ó‰æH¾mŠÅœ½üJÔ!õ‡Êô âPR’.=CÆ“¡ÊÀ¢>NÚ¯ˆ´Œ§4ì2£—˜?Zò`{§^KªwQ/½q4E=Q/ +|ÄÑRÆv ÐéòÈãçÈjr p(ߊÛÄ2c(d7G ëˆé^”xeO¸ô'V“©‹¾ue㈳²‘7 +fœB®äÛv@؆Dã.lfFÍЈ)†l;Ví©† ›>(…ÂÆQÔxЍ­„M‡ˆeQ`3¤Ñ"¹³c¥T²)ƒ-Qµ4SW\£ŠmX«#!TJ-µ(WŒ-׈–s„ê=(Ï™” NÄ §LKz%Ö¶%Ú×%¬aJÛ·gª@zjBü> ‰‡Jl Ž-‰QNšìeÐ%‡Çlií8¥A£‚‚E–0/žÎˆÅ¦&&!³ßÊÂJÊU4dâ™M®slè¢2ÔYÁž¶‹ŒÎU­‹üà7iâñÅ]Ñ)Ó õª~Æ­©jðx¼~äÓ”{ˆ4 µOœ.²G$v’ÚäЂ۲šýt¤’R*>§_h$iAp‡là •¬\Š*šb3ÉV˜ÓRg§î¸35g¶ìy¥Q6µŒÝ”6„6•p¸Hg?}—@»¤d¢.iKú)-’‚èaê?¤EϨQ|€üÉ6† Ø0¨Ã‡µ+VŽKû¡@È’y>>HMXÁHfµº\-E~C—²©5<}þ9ô@ É\°ÛÚi¦Šú³2Ki`ØÇ ÓY>dÈ3¥Fñ¥P,&RÚ R¯Ëê°À +(J1žR3öŠà”aƒ²gHRà,ìëÙjV‰Çáy!º©ô:ª™G€ÌêI dKe-ð¢ÿ”?~S™o"äÛC?‰ªA@9»:hMþ3ˆ«Iý¹L§(A,)¦Jo©gL?]>ú-viÀC.m§Ny]È[‚•ËÄŸåc‚=¹È,4Êy ¬À êŸÕ°Mñ/áçÑ€Ó9ßžBÞžÍ-"·C£ÁêIô£¹º-Ë.Ø ÂH¥Õƒ/—žó¿ÒTöÛ4'¡Ž¥XR5+&±Sþ i˜¨{4žC¯×äà7eK•ˆ]ÄÁWÕcê Me¾ÚÄYΖÌåÙdêœäì1[Ð¥;¡)ð˜!A¶ ³‚)m{¡wýçä'šâ_•S1¨:VH4h*œîŒYDIÿ)ìa$E´IÙ¬FdÈå ¼¨ž¥UŠ~QNƒ»)Ÿå{.«¢D-ê)w–AÖЃ S*µ¡ù)5|Sü‹4 Œm°?‘+H(xì*-²©ô”!S5 u‹ŠC rÀÞS©Ñ›â¤YèÔ;‰J¡ÈQNg‡½OÊSÕTzJ™¤Dûf¦‘D£™ùoú©4Å¿Él„ZU‘’ÉM«0¢¨ «§uN±k*=‡¶+œ®ê$B0ÇcýÖW=梩Ìg›¨{ y1§”|>:Mþ3H€¬ÅR BØ»\zK=cø§;ú-þ¾à†“(vÈ.£0 +fº,ài*=&dÖ5ޝ YûZYŠ›©ý§üñ›Ê|“µ$OªG3ëÆ-ºkB¡jÍ;nÑxø¿ÿL©m*7<-ÓõáÎξ®\wº˜mIM-¤»Û²åº¡M©7káö¨ûÆØ%JHMö&U0P©~ ÿD}œáè,æ_8«†J.$¤>új}||N` z½ô‹ú'­ô+Y˜.§SKPl€rŸ™Ø ëqÇÌnlUÛ’j+¤[rÙîbÊwÒÂx¸Fzà"k=5±dðG§~¡:0Bá’L‘Ÿü ïÈõ<ž€ã¸=¬©9]±±€õ:Õe¡évb¦ÌİîÕ<èÍ«rz»P™o Ðb"lÃóÐëUé(ÚŒ¶úöÄ8®è·±àH»µA«x\ÌR…¨G寭z “¡ç•0äàDÖV'NüR¾®%”/)})("Э=Š 4G¡ÛFÅDîjès¶A¼i¦s›‰\pZI‚¯Í»Lòõ•Ò|½"úú›/½ƒŽCt<ºšÃ“)Köõj#+Î010áá“WHPÈÚUO‰H=D¨.0ˆ]ͨ“™š¤$RÙÎä…gU޲tGX Qºžf–T€ejºðð\T14X|†©^+{ªÞŸMøg(¨b}»Oº:ä™êˆjZ\é';œØ®!»´HýYoqä¬ðé˜SÈ`írBpJ~P¿q²qèë£o×—ûD}l"õ±¹0i¬{@& +ø'²«.~†Ëœóø9m¬ 1 ƒ Z§ èýßëBÌÈgJ¥—Ë}!6C `ÒD«‰ýùäçl°ƒÛr{–ý©Ç)?E3¨6Ž™¥¡ÇËÅL*xçÑ0uÔ¿S“Ç2î…ÅSfFtÙÆ-*‡x :4êãÝòð^µè[tk 0nQ7Ê¡ Ýx½êm@-u×Ä|¾|X7¦¥‹Ål¡ûþn¼´ìÁ¾\ _w2n‘º%øÐ`O¾Pœ!oò¨Þ˜œVÈg²½½©Ç³™"˜’7¶%µªmIjþŠ->0][·ä-`ƒ +Â…M67A¥Ô@xª¬%9—`']bX.×ÙÒ¨õa¹·ˆ4ÖD³|HA(°/!4¬e•† h. + fø;M^XБ‰u<‡èz4ÝP1¯R/G×iÊ´dÏè˜ïài/È3Î=.£žè˜¶íšiU<˜­a,¬Ay½\`Ê7:æõj§§ìQÄ鸎ç±=Zé(8üe +@@ÆÐCcØâ´¯¼šRíj¹¥^z XÝ€>‘“[<&bÌœFôŽÈ—Ê»Á0·BÚøÝ°¥iEBåP¹2#&¶—— Þ)•ž¤wXi¤x¬mr±—¸î¸ž«±ÂJ¥ñºç:€…éiY7®…»‰)-’Ê»’=»UnWíf ÞTÓãæÚ²^Ð?ne™S½x+N`Ÿz¬©(Ëž°kŠcT1œb7²íMË®|4dz1ÏêFÃU¬Ï>ohÐcQ‚²÷"} +éò«øÄ­H$ ¨P]pŒ&iNÁ–)Ïšÿ&F‘JlÏVºÀUÇD`bhâŸ?‚'¤”täZTa@Ýá(Ò,èqWÈ¿ÓhòPyVéïêÌÉF1%ô}ÍYWï\‡ÆèÂŒru´â&ų̀•µ<јA³kšU¡=D4¶‹P} ÛÉèXMAû/¥;VMڀ皛Á<Âð{ܯ y´¼ ˆ}RÊÜ·ˆ»lPÓ^s+¹5½K½Z„õ˜£,×Ö¥È/¦Èrk,2©v }‚ŽÍ•7df Ìï Ø-v¬×Lt’»ö—â‹JÔ ìì"ýXÔó‚úf²ÿ!¦ À´Qði\X™¡¶ÛÂÅ:Ź)Ÿ+ÚiÕ\“+8 A˜<¹’Øyš +éè61Ä:]þ ÒÀ©UE1ꌄmàÐÔ£ž£á¸lÂæî²9žQ"YÊ„78ªç;¨X\£¾1¦£:`éœ?'ë+ Ì“v¹ÃšÆIB¦ÂË*›SâfÈÖ—–é±×ÆB–ÊÓ팞Lþ¤˜ÏNž/êõžÃ•+°ñXbkdÐ:F¨}ReßxººÚtz{º';±3ÛÝg¬ýáI|°î˜ÐÔTö¡Ééb¦}F~b¶5_‡ðŽGo8\é¤Þu¸ág'NœÉôu=ž/¦qz#­7žE=8e +neoÒ}]VéRÛsM^›G­T<¬9”Åg² Ë‘-Á]Íø$aëI*>ÃJIÏÁ0“¡y|+‰,A@’peÃ9lùM÷‰Ø8 +%Ñ`Ó{ƒc®#5ÒÄÞ.%ÕpïOí׸¾Û¥%ãÒe tgF¯–A—P`7TªÏÔ-ºÜ…ò·°üÛ‰b'g“ +D°å. +UæR¹°¡¹0¶¡S–=eYa»%På?×mÀÔq»KŒ ˜•˜ÒÝØÄÒy±oQáƒd;.õu`q…«F|K endstream endobj 24 0 obj <>stream +ùVBj¨€8–#óÄ:¥‰‡j!Q1cèX~eÒ /ŽEÚ‘n º#‡ +þ±Hiw@§»Ü¨¥ !°ñ(¦òÒ5•¸ŒØä–ú:|/·¶p- \h§6 œwËëLê¯rŠÙ,ÕƒQŸ +O×™ jT/­3)ÿ&‡´Ç=ï Zd.Sž^ì=W6»À>|t©·: /9 \gG-(©¹°‹¹»H,Ž7àÓ<ƒºNÃR'+î JýR$)RUB.NÓiå=Ž,(i,Ëåò6<ºá¤bd‡´ˆï…Äg:œì…¹®t¥uKÒ©W-¯VÓU#$/Q‚ðÅCš)ƒ˜V'¨é6WåR8O¢fÙ%|€±”ìý#d «4"=fŒ !)9[pÅ)nòb[¶·Â ¤åñíÅØ;G`ÿ]nœãÂ^Å8Þ&‡¹¾Ô?Ò  !4l/F¥—|-3!Ù­¤MaN,Ãòz·¾¤_ŸÅœuºuÅC4m+7‡?à Åô¾ÖÀ-±Òæþ--/­™Aç„”ÜÝ5éìS‰S#6>°dÅn7÷<Õ¸e/·…Ôu›[I»2…—M6¢2°~†‚¹Â (ÈÓ÷bÛ¬&y³ÙŠ˜Šh [H¾¤ÜêWãK×T—ʘ×%ÛÅ£AEçš,ÛÄ~žŒÐ#ÖZá¥\ Ë໇<áÓCýC©é¨ßôÙã–3Ü’»wR«!î‹Î×*Ó½¦“:Ö¢³önSÇL®ÇÄó iêþ ê +aPï<âoÛ@õÆr©Ì•Ê]uª¦cjÃF„å›oÆu‰â4ìç%¨t“»À+ËßrÀÚ+|‹Œw‹/Çr E>)Ê8d +tLYGÈÕ@¤²rÿe“ìÿó[ð½dQ°Z„K†:¡ÀŠ[¥.–*ãèn ò5Ùä!v\W10óo‘Ä¢«h\ySéóž!ü–gL‹ª¥¸é²  _·©Y\Ë!›IQ'}[ÿ² @Æ$‚âbIl y_8}žx¦ïl!yP¿KꩯË[ä=Û¢ªQM§û7têŠÄ÷é–'é¶Ÿn,4(÷ˆV‘í°0Ý1"k±Ø¤¢F{@Œë8tM2u+4ía3öƒHO ú+™±G‡- 6È«A²ËŸñp±ÂÏwR3%¢SSzò¨§"5Žàn +¸Qufà›RXþ;ÜU û ¡1ÏMÿ¨ßµõòˆ@ÉdW­GYþØ“Î) c—Û¬¡‘Áýj¥œ#ýÆBN‚KHm®=y 2(Cp$ÒÝ…Ü8Ö¥@€ <®Ê³ò¿úW}K¬GÞ2ò¦fË×å½9xV-ºgRÞ`ðÅ;)!ï-aBäX¼ÙÃÒØud=·.øºuôaóí!¦£”jõLjƒMK½¾ÙNÑåU̘÷ÍüÇ~j1tX?‚Õ›²añb]vt”—©ÃÂ$‹OšÇâ+&°ƒ|‹ÏX+,)B$‡t(=£¸-&k¢]u옷¹2Ýa+Ü™H–ÿ²kž=‚TÓÊëší)á¤|ó| º<Ëäff鯚¼°wž™õêc÷¼r4s-:èuŽËKïòÝä —»AÍeÈCÏÓ= ä¢7ØÇMíjɦy™|µ&¹è•6‹õþä£wéN¾Ä‘,4óÈßN D^z×)]mSZBÁía锹&µ6°è‘+ÅA­àÆ›6+Ažß…¸¦KÚ$5­`½AqyÁ5è¤i`ÃZ|Ýó°Úä®G¯)*K욥äerÎÓ=>Ê]Ÿá¶§x%!;ëe#kêP®5È›$¸Ï0}ÈP´…©¬ì¨Wny‹9ÞÕ-½òènæf‹|жÔ'øŽW×lY&5y"ˆÌD‘sü¦°…ü··Dw>P'$_å;ÛÏaŸ2ÁŸP(Ðý| á¶u¼ât™©Û%È~¡yjK-¢J³AÝ @@JB$4u¹±#‚8oˆÈÍ– 6H~\ºž:Œ®Æxq+E¡Bìƒ|Ê7Eô9ºqGãWédÉ…3T¡•¡vÚTÙ4¢`‚ŒDsüEòòòL-¯%<õMSîŒpKlH·åbKåƒjò«ºÏÓ¸§Ë¦¿Hž\_jýÂKnËѤ ÔÅÛRÁ ÜiJ/@ &$ýòo.U‹Jº¤0RT¨)Ÿ³äÎPKd&rj×Bñ’Høª ¬;‡·A†M‚ ò%ÉW%Ð"'›Ì`>È >ø£¦:¼ž?]¾ýÙ<‡„Ü9y†æ¶g˜¥3c˜¡Ç°í´àÚ>ߦ ͧ|¼èNÊ8GñAGÆwÖÆ„¨ß–P) Ôu<$ÄéæÇâ_Uóíª†ª?p +ƒ)‡#é®à29HñpÊ;%ò è‹jY„ >,P2"Hx%†CüÈ1Ô¥7ăÐÁ‹ ŽW“Nâ@þ 6¼PNÅ$§wèeŽjÒ' ɘX:ÑT\*ØOQNYqòí^ŽXžÏJ|˜PÂŒ/§D&¶·!5W ÓŽ€ŽÒ HOA'!'´ Å‚„g”€ +wb°aêQ@;¢Ôä s{a¼åI)JìiE/” ¾0 +”Ê -R£ l´ÔØ¥‹ êÊŒ Gíñl„X†Ï3ÙcŒ@ÃÕÕ.ȱh'Ë(qy%"UòZ…^Å"¸Èø”ÐÈóÐÝ’Îâ0̶o¡,oÂÉp#  î% m)±-Wˆ|–üI!wJþrsÀ&´-ò¬7Rî|Âo ï<‹wÇàˆZ§dšòÄmL—tcñ Ì¢À)‚¸E  H/&©®ŠÓf"/éENÂwú!H“R„ï\T ù*ß5zN葱£ |7ëT^dj bl‰€p%í¢J+´$ÿ ®_âZ;“n HáÀn Âb[rÏL_C•‡K ÈdË'–KféÄñ…ða(• +¨ÈGÓìqâGu=BÃJŒhÝ”7#N„É7áÃd²³8|œÌÕ–^ö‰ÿ¾].tªM™M‡_i ”HIh)m\A‚Øû0[.8ghxöò°£¼Ëä$ÝàaR:Jhû¤à +&“/Œî=]æÁxeæÄ€|µq€«cÊ¡é„X¿t›‡E)ƒ¥$Iü%/‰› È—JA ^8˜KJÂáG=%”ªV,%¦É9߱Р%1(Édÿäe²É©6á—Ù$ˆ}nQLŒÕ‡´“­È ®aR¿úaí¥Iij¬«)MÍv|EJªL”ohùÚSàWÛ¹M­êÜ’k·1“B8JQcÅJÄyšÏ™ø^W¤ŽíjüjI:Ñu§²c€ +å5×UfŒB!á’Åãû!ääø²?¶Pm ®’ÕÔkE‘ØÁçÑ‰à“ Â¤òà'¸^-<³ï ÌØ”†H¯HœÐVoªÁÔZštóRxÉM™cØ““rƒhò½Ç>((û¬3 ³³Ä™ø‚y,4u(PøDtØ;é}Rü€d»ÄrH‹D §ó[æG@ÁTJÃX ÙºâëÌ5$|•‹oF*³&99öQ2_Æ™+P&²$”ØsŸÚ(Рƒ#ò•ŽRL’/®¤é•hBPßeBCq?¾ ‘U¬¹ +,J è/%„—˜­éÈVPOùà†±¾ÚTê±ïƒ|ŽkÇÉDLŠ´ÁJ—tIø*ó0 +t-'ôiåÌð§‡Íƒ53‚„Á—˜‘E㆖$ +*ë>ÐçDœEM¡,|ºµ˜@†ÐÖÝðÆ0PÛoÈĈA)7D;èòrÍ|=¡ù‚ŸÐgÙ˜%z*TÆMX!Û'@NAP`MJ@íÔ`¥ö¿Ünj»L/Â" Î SS÷ 5Qa±'tµD%>lR†ëo ßm”«ø«iør5ð«eÝ‚ ¯ú·äm±±È¬Þôá¼§Ìa˜ŒÎ˜ª·çGgL¾Ì•@~t»^£ö@å&çT*„8ÊÿMu >H‰"J—?§©¹)›ý¢jŠuPõ1MW(ÕŒ´[Óó#4A¤ MËSgˆ¡ð¤ÂK„”"5ÊëŽ@©1ùe•,«È+-Q (#5ø ‡1Ð}‘KS„ø‘¥½PEjpÕ4^5ÍWK9D @þ¾x^ä9[.® +Ô˜ÒÝ…Hù¼Fðf©@ ‚<žœ +Ô H“ó-j0?ÈáO¨@²S$5f·€Ç=0KU—{À{~¤;‚Ê%W!?Q zÕâ\Æðs|!}‚)])Ïñc5¿3<¹LƒòN@Z8«ñAn VªX Fé_·øV„”B52»*T#ãd’!‹i¤,K/ü_Ä ?ØäRXA" 1<©Aå uš†¡ö””4ù‘¥»˜®©1¥ö áû×)ûAVIí!¥a2PcÊìR\"M‹tdò ßv#ϱن£y¾%gËeó5¦Úf×Ô Ùfò‚F âj@¨1Lu- +a€V× 0$O>§)ëy¤—¸iœò5¦,¥3]?Pcrv0ü˜ß+‡ aŽŒÁ.j¨Î±ÞtüŒ% RG†Â§¡çèŠhMúI,Ž ájÁväÚÉH%3+¤"5P)Rã=©±dLÊôüH%•&:ºž?_ög Ç—º­%½l’!˜w†jøF½Às&]FÄ ŸqSF #­äž W2 §«Ô#€Ri3xïk ¤Œ)ÅÑKÏÉ»Oƒ£QÕð¿ª4™Òä8™ŠP°% +Ü÷@¡*ßt•æ\n!Y>ºí2ôUC¤’꽉JûqtðZò¨øñw[ѧŠsAŠò%Êc&¢OÛ–Hé˜Z>„éÝñéØ?à(SZ¡#er%Pðe3pTü@ò†Ï¶)Õõ€—î9ÂK:$èðaJ¿ãÌ¡kÂ/Ê3TG©¾7x Lª¶ íåD`Kå«<ÇÐæ£i.D„›%¹êÜ/Ì :t¼ 3(p…í¨¬0¹ÉJ@¤økî%PÐÓï}oš®äS)СScH$ªÚå€è”®®€x5å.…d³t¼Pò•J_–M^ÂâŸK#j‚CšlHà‹nCJ‡#”íH?«1M¥œ”`¤Ã4|'†tWp3ßsøÕ4nÁKRõnÁK¢bv@eSú áT6L6Bb@ ohËKÎ@4É¡^ +<àÏò9?8Å·!È' ¾B^|c…ú¼8¡øß,z™î.äOøqcn7ä„Ô HMY25L`Ĺ—@cQúLJ³<¤Î%RNè$\ÚäN¬,°vçšcÄ +äÛ‡¢SØ“5[Ž›Óõòa Ý©` AÖ‰Ÿ‘º$€ÃóøÅ_$+A>óô!A«€Je3¹ãBœRî™Ís run…@Ÿûã½ò òe^])ò"ÿ‚ú!bªÛ ¾ìRÞKèœBS „NÈŒG ûçæ„—ÊðA¡XºTñ*—¬G„øñ*ŽKÓ’—V.y’B[#O\pÿ¨²Õ)Óš8}dïÙa8¡< îã`ءԾ“€JiÖ«YéE–Ì4ì€Ò†%V¦|NªY–ì%@ MšÍºn@òU*öŠ<çJ.Æ~úªQ2ê¹’?8;v÷¶Ä] +WåÌ¢ fhU°ÆK‹®ZâšRÆC`G,ºäOî›é;ålGîoÉÁz0Ñ«mVéè)µ-Gš*â³d)[€Dñ«†!eœn„HÉ+t00—_è‘S…N +pÔäø¤[z¹tZüOxܵ"xÀ(t9žïwñ˜ Ú¾Þ ´åªs¸+À¡`äw 12:®:UÊ9ÚC)Ç‚§ +戴m?—…†Ø±ÅõŒ1 YÖþßÕ3$p*R¤–¤…%—dŠ¿è%Áù*”‚Ì’䀸ÃîPº’Ð÷*‰OK¦£„¬%³vBÚ?=A mÉlóÐË +(Hw–’Ð¥Íæä“€Rmt”€öÎä.àÖešÊ8¨tØÔ® ?)@†¬“P ÆBD¨ »­IFTrmxŠmø®$àÚð*jL³y}¥¼@å P““÷c +’üº¾Nìžóul͈¼ì¢o;ü ÿ §"k¶KS6dNX±(”ÁéU’«?X)V ¦`Â,W¿öFÕb„vïoœhi쇎t F¾< ó$íy*ëŒ[AD€äP@éº$L–l°ÉG'À7Š ùœ_AÀÒ´¯c•@V)?¥tUr&›Ø!­–ÍĈö«ss¿ –Ì·.M×=‡yiQ‚æ™]µb@¾½Ø Øl|)|àèRN‡Ž¾ÁM]ƒGß"žUi%¿(A OP\ëXbU?Ú +Cº[¦|,5Júü¡ LàÓéb³å@ щïTTÂ$¤„ÝЇY¯MúDFÑ’ù—°¥ËgÃkRÖ®ôϬTžp'\5š¡˜¿po’ýÚY…ÒþËVta‚bç~ˆx¶_3b@ê+Þ¾¸R¼’Ýø4=Íg³Ž¦°à¸†òùè)ò×$ô¹L-pà›¥}ÌMíúÙ#|B(-$HNìƒ$aYÆ_£À / I7?¹#œ i”JcRi¬^ª‡ üjÜJímÕøÉŠ'w+–Ü!¬Xr‡°Ê$w+šÜ!¬Xr‡°Ê$w„ŸÓÔÜÂÉÂ*“Ü!¬Xr‡°bÉÂ*“Ü!¬hr‡°¢Éhy¥d Nî¥2\•´!¬Xr‡°Ê$w+–Ü!¬hr™|fJîV,¹CX±äa•Iî=gËÅ&wPvIîV,¹CX±äa•IîV,¹CX±äa•IîV,¹CX±äa•Iî=ÇÉŠ%w«Lr‡°bÉŠ%w³Lr‡0£ÉÂŒ&w³Lr‡0cÉÂŒ%w(ò‘xáÇTr‡0cÉ"X‡+“;„Kîf,¹C˜e’;|ßÑ–Kîf<¹C˜±äaÆ’;È'|Û<ÇɾO°äÎf<¹C˜±äaF“;„Y&¹C˜±äaÆ’;D¸4•“;„Kî@ÅÑñ³¨)}C˜e’;„Kîf,¹C˜e’;„KîF,¹Ce’;BÏq(P˜±äŽ®*¹C˜±äaÆ’;„Y&¹CXÑäaÅ’;„U&¹CX±äaÅ’;„U&¹CX±äaÅ’;„U&¹CX±äaÅ’;D´7j; ³Œí¬€õ%ó”ÎòÿÏÞ{/4²#‹Ãß ðÆdLç@v$9ÁØ Æ6'Ü?~Ïþ©ª¤nu»Û6 çœ=»sww.V+–J•TU +êÎ* Ô]ÍèÑQñÂ%=º³&B³…ug͈С0¤;#RugQÐEa@w4&Ý90éΡ©º+MYèÄÒ¤¢^ÝÙ‡“ÔYHwÀ\èÎÒÞÝ9°ƒ¤;‹"Yweµ`⎬; ÓN@wÚ‚†tgÍìÑ…õ( ;CaHwîÒÑ@Ö¡0¤;ã© êÎPÔ£;£ÔñhugQT +¥Ww2{tg6¨;ãôº3.#¨;ãbƒºs(raHw–@,tçÀVÝYÚ2¡;K+tgQ$éΜàº3¬Ý9T‘„¿p¡íÚ¡¹HböèΡe îX-éĘøE=º3Â8¨;ãNug¡štçÀÎzKëÎ!„"Ý9€EÙG}½Ù¤âXÈg3EB½îéÍ 8¼¥§7›œ8©ºÐ›!#2B"娈î…x‘h‰ZztŽñ+SÅ4„eê¼;®7›\Â…¤¾®¸8ô‹<½Y*4L¯%ešz3Wç Ä×›… +„ùûU[ÔS©È¿Ïó‹\D~!×›a¨¾èBo6yæ U—ôfqa¢êžÞL¯jQ‘wbòøj3ì•f†ªQ®RU÷ôf“û[À¢<½ +©¥P›=Æî©Í&=]€EžÚlrY|ñEì ]©º§6³"×¢Þ|µÙä‰PèØâjP@\¨Ã–ˆ;Õ%µÙ»,ëQJ ‚è¯EŒæáiÍ– Nº§tZ<žàƵf¯H“´f©PhÍ–&Ôf‹"Á 먧5[ðÐÂÁÓšýë`O¶¸;³ªn2]› /i×.VIí'"EžÖ ytž<µÙ䩪èY¾§¶B%µÙäZ&…gR…zj³ÉCr¡ÈS›M.A@!×›áòîª=}Úqü"ñÉSBª'ˆ¿§7›ô¶Ø»c6x"p¡6›ü(Ò{J<µY*j3ôš˵f‘ÏKÖ$ùK=š§5›)ª¤úÐ$ª$©Ì@tÉAÆS™Å› øv”8¶6ÁXÒ˜Å[5P¨ˆ™QÆHfÍù«%B²UIc¶Ä–ëáKcØט-n +¬(sü³Åôy–*4f©Èט½B]hÌ7ÀÙã³%ä'¨#oiüt ÙÛ¡{š°D|™í•R=pKpˆàYɦì5Ȇëɨ¤êžÆlŠüú§1‡Yi¯ÆlpO U øÖñ¨ô€oB×¥`Ü]JçþóªoI &tÀw‰Gzz$=L%§lr)ª4˜ï‰¿Ì÷DÂ[ ±…R©*ç{¢–j0ß½•ó=ylǤõ‹$—K¿ÐKùÄß¡“R>Yâí9å“åpŽE¦\—ÆÉ½Ÿó‰“E‘X?GB9å&_'Ü—µ• +Éæ¥Êyƒ,N}õÚR ‰º }‹ëž’¶.Ü–|•Þ/‘•9s“¸Ä¸×)¦%Õó“9'óÝëTŽ’{*`$»×QÌ‚*§Ö¡Ð UNÀãÉîu~¡p¯#IÕ$÷:ò†Vµ€{*È­ï^§ødÎSèÑ=LÕ¦—cQ`÷]~eï:J‘¤? †"%~Ò\¾ÿ¦gõ9ñTNÖDOï©rB'Cq¥"Ï€Ìa Õ³ù6ú½Q^@5˜úÉ“düÙÑ%—*ç~®wÜO޼d¨PŠ 5”êÇÔzË< ÄÛ.¢Ê©Ÿ8¥æ~š¶t‰e %Oý`‘„R^¡zBã•Tý"[¦©‡ÞòÙ;dl œ)ïÆ,à[§š|#}ß:ÿ¨x¾u¨[O·é!µdöšŠä[çɾu~¡ð¬%ß:•óЀDªÚš8Rp)§øƒÊ[Í›*†¦²àtj¸!zlúì-Phsç{ש*VC°þ k]˜ø’•ÌU<°ë’w_${—y…žwj*A†g’ˆdŒ&½Ð(3P¸ u¸Îí9È)–§aKGŠNO0ÿEøI!¡–Êy¹ïbÏÁðÄ×øƒA¾TAz…,zP¦ãÀòÃÂL¯sæ ÌÞƯ0%„Ðxš m@è8"]àË?2‚(ÎÑÆ³+ù%ÒWè_xùÞ ¾U^šœ°ÞkܯV:–Ï=8Òâ"!p¦ÅUB€ÇªþŒ]:þÂ˜Š«F]¿H2êú…ÞásL.´ûV]GPkɨë¸BBç[¦ñ»Kic5zÎ+gÊá„@#BùWZMx!<:Ths»¦?.›KžgÁUðGÜäÅRŽêHü" t~¡G(·n„#zó9ïŽ@£ghƒë­Áß~ÊC@(0‹(½EQ¡BO-ö:lÍTQ…mÖ»!#‚XÉK*¿t•I.ò "rÈùùàõÆ”·A`„·Y¾,àm©ªkN"ˆJÒÊe|ðäFÿ~@*”)Y€¹IÉÁ»ÎKSí'‘æ{¸¹‡LPÜrú9ÿ™ ˆŸåS^vDÎ\´® ÙW½ROùÆ+¥2L-K9ø„?K…ÞôäwŠ8U$ñŸü… ¸z¨ žm”â\©Tq=ß7Õ¡‡ÇËóU#«©ò»í{‰Oƒü…”¥Ëà½Çy|ÄKs¹î¤ã[]^™¦ÐNä•zgªnïèfx +FSPŒWý(0$eð"«¦‰‹lxÊ×ç9'ò’ D¡0Ñ›VŠZƒßÑU5¼O¶K`÷“‚;½2ÔÂø`Ñò" +!wÈ95¹y¸oýD!M’ìÍpô½Ìù˜Ö3«™¾“1>ÌÀ¦Kð¢,m¡$º2!ç›!½ø{ÎuB膴m*fð[êTF©Þ|$P‘¤ +€’U‘ ©KŠ£„hÌ…/¤ÈŒÆTvŽd[1©?ÕËÝHçóö ¸yEòò½B߃‚ÐI²È'5’do†÷vFÃø§Àþq©‡•d +Ú|AvugákCš\UçñMáBô òw6ýaÇróÖy,$¬Ï1ýÜ$"@Ž>UŠÈH’29Ôä"¨^!ùQo|wUÏ8ërÌðwR¢Ÿ¿ã`Äå;.ð‚?ûÀ)§Ê8¥ ‡T¹-¿c÷ÑV¤2vƒ¤K`²ü¬Ä ý£â—ø‹÷Ë|q›dfÈ«/õ0LU !”—ÂYÞ“CMÚ>òÇ ”.²ŠP¸TÔý„¶ŠÎK5nF#yt(g"<ÁÉŠl^ÃPjàU„™Ôf×+Òp Ù=H0Åi£N™™ez ðR©L5…'‰¡p–ªÈoÑK ˜×ÃJWŽ™s¡*yeçðK=›öù7ê…8–îVŸ·‰,-2 Ô¹ÿx…êôúsˆ…êä}lNw 0Œá½«…yJ âxäO ˆý÷Iè/ßd/A‘O$ ÆuñÖv6Ÿ‹ YŠÐ„—”5]ñ4N +zUðXé>Ù±h:¦EÙÍÉÊL¼Ñ2„mg• +Å^ÏjMìr2)‚*£P¡·‡/@/$„1Ì q…¬ hýQWŽhž,;XÕ¿'ŒÄÞ`Ñ4ÄÛ‹ü¹·ã,Ä"Ï“ß^ä_ä'ÙGÿ5ÆcêG5ºðâÛÃ{ÛQÅ'ÉY9SiðZH“ÌAšB`Á „Ç>~ô8X©+•ñpþl%*<°K<‘¸¸|qL3ø¯„•PrÒ~4W§ŸtŽÈy«.ý¥‹>ué¾Lj¯&zÆaÕ³ðÖ®J _ÛP1c,ìõÈm|¶¼ûè³!VêÅ¥ w/žÂ[)?wŽï›œ •EªN?ùJño¿º÷—¨„q«k ½‘臯tÖk¤zý¯lâðêá¿m« ý‰œØn1Ê›´TpŠ8ö)5õöëm$¸Ý|u±Êì{%a ¯É*0veÐÅ)T‘ÍÛ^¨.o|Dc6º„7ÃC…ÚysÇs!ðbù0'€8È‚ûÊ7Ce#®ÃÓ§'$´à5m6w]7¹ªšb•· P]ÞáˆÆlt A"†‡ +üòæ>4AøŸÝæáèà 2|€dHÑë@‚£âÁ1H.øæ[\ð°]ü88“á;À.×´˜&`Ò0áB™ñô6@tý"ò„ç܈©ª™Z ÞÄ5tÍåXÓS*3«¨&jÔQàðxY$ T§·Ü#Õ=Â'Ûªnò&ÜÕ¾½†À\‹PG¤&áøèŠ&ªéêu*>*sƃ9vÃÃeHFI>*=rDø`EÄù¤·™Ì#qŸ$žžƒÒÛqø€ÅÉÞ…ô4Œ:ü‘ òR$ì"N«àÿ‡2öLÆ`Aä9è‘fz6=æÄõÈI #Îv$&’ Ös""†!jÌÙ‹XT¸aÔ)„Û‡Äù_'â?óD ¯qü:7_vn>¨ùÄB>nÿ{¹V,Ó:IÞ-¤[\µ£[&Y‘’XÈ4µÄTzK5ªTj•Öc¥Ô9þóí¡QË׋µÊkåÏéÄ«­º6Øí ×T•AUÓÙºTÜz×֛ńm£GÇÂQ¥XÛ+vZÕ?XK@?(v:•VÝ=®UK•ãR±V­?m´ªå1€™Xتw•e˜üÙ¬ð™Hó5i²Ýj¹Òöj…»ËÿÑl´:~GKì#nbj:qq>’d•»|½L«Ç߯]†Í ÎK¦Îl­›õ[eÜAØÿ.~'¿nÀ=DI«R 9{*äkéQA럇7‘ðZϲ ‹4›‘qœ*ÖÒ|4E—r:åc3ˆ(ÁGx-ÈÎicR:MdKRÀ•=ñ-žA?;NI ã¦Å°“»_°Iâ5äÛ žžÑ  æÁÀ˜ˆÀ¼Eø*¶JtZèàKÄ*=.™±À} _ã5)øàŪmA*'ѺxÓd»¤údG4|p6/Õa0Õp/õ”b‘ŸƒF©%ƒ<Ö`31-‘‰µxÐ' +f(uxÈ)KAX¢¹ˆ˜DÙÁÇô £À `ç`–(VÆ„kYi:J¢¡B˜\>ÙYí ¼"Jð¥b“ÚÞÃ7Û]Óy¼"ÞßÚ +¿ZìAe@rÂ/ðma›1fn§ “?ˆÂæ€ïqâ+W¸Á¹]ÂËRøVºÃ¦ 9 L(ÌÀ‚A¸†Æ}kp¹`{nj¹08ØÚ…¹âµžŽ°±—àô`΀zô¬# œ ApP„)[×ÓbDWãs†ËÐ~#†ýì8eG`ÈKØÌ,ñÜüÑðÁÆ:]¶×+i™üÉhÍæcéÔª0”±4žZ .Cìx¨<’åRÖ xec¡‰kº ÓIÑŽ«ª¬…éðÌDl|8˦ÈuÏ~CÊ^ÎL· zøª ä_æ4n&»Þ—EƒßxåLä›Àu<`»¥Q‘ XoSÅÕ±@Ã7`Q®¡Q#ô„§"qfX³í'†S<®k45h¥ D›í•É“­™½ôiBNmÖ, +¼«Y ›ÜùL¸•6YŸvÊF£´©Q3늙©’—¶!÷tS˜蕜dà¹,E†™HûBÑφFOgX @3ÁÙÇt ç#p\º±î™ÏÊàY¤Ù–ºŽhg»øÀ&¤ÐÍt +¸šà¯o‹|Z"_d6(®‘›¬…éß°còØ·À *€ÏüÀÉÀç%(ˆKÔŒ]1˜6&ŽVø£;¦õc%ôÌ…)ÞzÕUŠòÚ§ó¬Î-îµ¢Á+ð +žO/ (Á‡Š†Èp€àSàS…{Ê%eôƒÄð€ +ô‹±1øü;«Ó3Â@—B†h*¹61@ú_ð\cE¶È41g&änÂ<Å69’™àokÈ1ô×"SºJd‚/f†—A…â´‚51Àˆ!!ÅÁ7ÆÂ\€ 4˜¾”†DhÞ€À +ê‡ò¹:m> ƒo×€;©†Mq +ÐÈ&Ïc|‚š‰ÀW Fìè] )…aÒ‹®ÐÄ¥ì1Ã80)ð2,:xP€1¾¬3h. ,6Dîq“§ld½‘G$;xŸGÏ"ï3¢Å&F¡#mÀ'¡3xÈDÀ"éÔ €JcŽ#S$BÅÄ ö[wP Ò)d†‘ Ì*mØ1ÌäžZ”ìŽQ¦éètšà Á¹6j¢ÓÞ–Á£c ÀC6>“ft,ÀÜû s4RˆõØ(QmCB2ž[ H€¼6hF×Baý±5íÁ +LÈ`eãs1ˆ +&å­¶!Ñ#S›žÛ±!> Œ %l›´˜vLÓ!:j€ö‚û¬QeS?Ò@ +åt` tgäÖ1áC +t_“F2,J_ŠB¾4„Z5ôkáÛA&AL0ÄY²ÙáóJá'v«ãypìà(œ@øg]§÷€"Ò3mhn´u<–pP] +T|ÙQƒ Í”éÜ¡®lƒž¿£Ã )6» ÿ·Ø¯ ãs„¡ø€;ºÀþè8{Ù˜tˆž“ Ô®ƒØ†%LàgˆCdJ·(~‚xOzÀÓ.¬Oƒä?Ý aÉ‚„ÀØ«E¹ß,žL@ <h9´Ñ)éð`ÓÓ9\ÐЉ3Ì3}ß³ƒ¶ÉÛ`æ‹Gléü5RÞ°ÐüÕ" +„) ˆ+0ŽÆj*@¸€pX$e +˜'°H¡€(H‰ð¤°$&FÜðQaô1<’soòâì¢íZã/½[ ž`Ö:•T#à…”Ä¥L¸ XÙ(‡Ìk +:CZ˜tOÇ´Lè$nAº:L·Gì†è[Žolp†™8l"‰ó(FØö8™NlÞr)¥Œ£PŒ34…3 +Ò-(HÈunÑ£8ž:Èö˜ôÔumpûµ‘:À–²áT¾·ybh£©1e‰ 94lœ£³`ŠJ¤S*ž7}êX•d85@`9øøQˆ%y©¥o@RHåÂ&«B˜‹rýÆTÀ Áo¦!"(”ñÃùÁM0ôƒ×Ø/Ë`ØÆ„Ô¶ì8Ô ãe2ˆÃY†pt`¢ íj$f9€d.êœ\³tx*V3VPú!¢2aŽºƒ X½·~AË£á0aB2 Ï0 Z¢C’¢¥&^±6HàLçFbÜ?;â­F4t@j.4 +È—øPøR¶Irÿ¼_ƒ@øSâOqÔpèiWä|ƒ˜UâÝl8Køó:VŠÇ6ºœ{è&= dt•ò(#éÓÄyÖxz ÙK4‘: ꂱdsÊŸ¯bTYBD¤’ä‚™îPò! Ä…ü¸ð[Qm_ÜÁ¶“ ‡W—(8ðL'hD¹LÕ¥Ë3nWˆ‚²ƒÚ­®Ñ"H‘xÐt¸p±éå(pv`ð I×ø6ÜD1 Í­ æ —Bhái†OO%›¯A7±tÛ‹C;”Ø»£ƒƒ +§d1Ðq¬ØÉdÕ%ùp :¦ðC°á1tÇ—Éù}§Né `ÈÝ+ãM™ ÷¥ v8ˆY‡u´àà +™ª‰DC†z(`ÅQh¾8q0\šv •[ +}X…ª’5Õæy¦˜0dƒ ‰Ñ +19œ'xyn3bqñf…çÿBR FUƒÎ8Ș9°MáËéø¹7gˆ†0E€†¥QÐ%0ŠÙFÃŒ÷>òÏþ°0+*æ{»-”L“Ëè—Úí¡Š·â`¼Óuh \R&>؉Œ +«b€‰Žý¤Ëm¸½DcŠBÎpð!4R2%ÈOê -…Ž”ˆnö4 +d/†ËOÛ ;w ïE ºÊ`SWåÀŸÁ×ëº F0¹p—îb9Èl´„Ø[®-T<ä x±ÎŽ¢“¢˜U' ®¸~¡­oQ`óµ’ËTŒ_É v$‘T + )©Ã˜€‹ýÆ|c½ Íœ¨…àDA´Òqq°ó‚‡ŒM¯mØ\R* ä~iAŸ¶:•ð\`Ñ€õ@’,É\¦A:ÛXXx[€ÄË`@Àóú~ÿ]žA Ö×HöAÿ-ù˰5^бúðì,TöÍ +`H³ˆúü‘ÞìÉ¿t.ƒ}Ð\tþƹşäB‹ ‚nûØVHq5Àh•í6ØeP6„[ +Ru žên·Ñ¾&¾k*[6Ø|@Ï*h’pÍ÷Ã^«£îhñ,¤`”À“ëT°#U•0 Ô-èØâ#äfE'S)z›è]Y!á$\äÃ@²ØÙp)_‡O4Ã]Ǧ™TQ:V@y&Ü=Þ_9”½H°·{1±è üvˆˆØ@‰EÀ×— ‰<­L(ÌXŒº$0§>›«ŠW>V"< {ê¹ò’7«PKp)dS²;ÀxM!k&³žosË,z SRL®Ÿ¡šT ±È Ýöí¤‘è*—„WTàrä ‹Äå5¨KÅ4ÜèŒåJÓ±Àxg’y®/ =dð †~¡(KéHâ<¾…O´’(5Þšn½œh?›•Ä[£,»E‰Ï8°nÈû ñ†b€ÍœjC!þ(…p0 ¶\þzïqåïò7áçÝ÷Fý U­wØ|çç©}Êå#ß›ðÅ¡/µ.ûwÿá…Aud*]nµŠÍçj‰×©v>³^+U§®·êí*©`Q[Å·"f[Ô”óñ™#Âxìx&‘m7kÅ?égÜÞ… Ÿ©U˜9üÆõÅQìÌ_·’²¢Ch!/¤¼T~1óÿKÑà«`}ù Ø'*²}Ï<0´œ,€ÉVåj…©´MiÞõI¼ø7AË™ŒMoLOs>mWò¿Uêûåò?Ž#àœaÿ¥8òïÛaU™zÊß¶Ãÿ°Ú_–ˆN Ÿ€‘…ü•R怰m”¨–PmóA\û—Y”Ë,¤[q‚‹ÊД2 0míc’Ë~·ó.ºóKpù2¶fý’\~!‰„$B'Ê$²¤©±YÒ"pï3ÙëþeŠÃ/ËäßHy®Yi±[ëÜHç¸úÖ¬y'¼!ŸD[ÚžF©:Òl0½f¾^ö“kÌÐyÀ¦=á,F(±«š˜º–ó§ßÀÖ\´GÂ¥#%i1SçÏÕNE*„è ZFFx¡01Me÷.wG•²WY.¿¬Ôjßñ“ú´Át±º÷E‘¾dÿ,ŠjàC¦Ö­xÃËöŠOL+Ò7àÎpŸå¢! ª¬°’½Ðß.W\%±Ãþ³ÅZŽÉûZa›5.WXÑΊ_ rκZv¬ez Ä*&TQå:ºÙ3 + +˜RP¾€¹Q-˜¾7yQI“º¢)¼J`¼”)×1£ëØJ¶YÉ1…YQÀÔ!˜z5L¢:‡û+»¸Ndz`lþÿ‚ÃÛ2<0å¯ðy Ñ1º!W´eá ºÃjßžÅHµp)¸[~-U¬@ñÆ„uîÁ.WL©žJ¹¯ð©¡›55Ó_®*MÎÇÊàžIuL%²ŽN(®›þ~è~oº)ïÍPZ…WÏ ¢&.W X«@:S¬ÖðPÖ ¦!×4ø~¥8±®½¦ÛôÑ4Å3ŒyP4½#d)2 MQÑ¢YPe˜ƒ…•aíF`º¯,M×ðªz•s€ zS°ÕÅi¾º7'0_1: –)Ž´.W¶ù~ùmÿ”™ÒÉFlwðÿû³½ØT•BᑞÏ%ˆ‚'M¾wVöûØoëO¬œõA½„ªûý˜ôZJ¿þ9°©*o/x]³w›L¾€d.4ÛÄYõ©Lp`Ïñ-a ¾wL!ÍÝ«‹ ?¤ôKµ‰–Lm´Š¢’qð$s^:Ž‚ +0Tù5¾¯ç½õÜ`5›ÕrœÞjN°š½Ù½Õì`5ªELÎ +Uë­akè1³7‚Õ´˜ÙëÁjjÌìµ`5%föj¨š=¨)ö+Óª>=wüóÅ¢ŸÎ†e;$(ØfD%Á€äÎB"‡Ä•£y²ÄÊ|–ÂÙX˜¥XœD)ìÿtÕÿÛXM2žH*$Ïd‹ße§,ecä#5ÿžû¶@6' ð){¤jœÄgRß« +}¢W‚ ›ÿÕj”*í6›`©ÃhÓ@F¦Î*`¯gÒnõ ~‚mà­Z/v˜²C^Î`™ Ûzm'~Lý^í<'Üy|éÇ4¢úðÐ`ñÔF¥õPi§ÃoÑèñ«à€Ï5JÝ7&&çŠ"¼ %~ãsPŒýžºÞ«”«Ý7¶–v£ÖåšÃÂi½Zj”+"W'›‡šðú9®tºM|e¥Sa›–8hU 1 (O Š%ïT?›Ub¯Ò~NÛLE¬þª!ÒhÔBW-ö»f·3 ÍÂÅÞîw6ÉÈu-%¦þx«ÕÙçy6ÍVõ¡Û/E-¤[ŒøR«¿¸‹/è_ªUz®ÖÊ­ +_¾ÈÜ#¾Â?ï­«©‰zûî·b«½$¥\•«þV%‹êBy;¦^ÝÛU>“và׿:Õ:êÀa@dOÈ=Brí/BÒÏ®±Þ¨ÇMY^_­QzeZýk5¿hûrõjßÕµ¯UxDnĸ“ÿðA/uÛÆÛ_uÔÿMTlñ·¡U‡Gå¿ÛE°6»f¤cXtüËÏÅ1$7ÿ™ÊÃ)m?þþÌÿácÐ9ø_¾Ëó< í¨† oýZ†—m1nѳÍþÓTX3mTùÿiƒVõ\]y˜¥‰šÿìúLU—×gZßïÕ2¦à¸<^ñŸ]<8í8ŠnÙTkÕßqÕÒÝëXœÐl±þ[±},cÂúL­R)c;+ÊÁæ•V»YÁ»Áft'½­z¹òÇq¥Ô¨óu;ª«&ÃPÃ6Ü ŒuP+ÖÏžêyų3 ]µ†î"[©Õòt<Ê9ô$Ž@ºŒžÅ°‹/T[m1¬e³aaìa†=+Ö«ígv†´Pk4Z8OtžÂm>_ÿþÍ<E¶ŠǼ›öe!ÿG³Ñê€zn·™‚½Sùsh5O‰;wL¦ù(áƒc)d¾8'hgÕÊïlã™dÕñOˆ_wC> +ÁÍ"R+íÜ[š/Ä<¹e¸Ê‰'–Ë\:rn!е2¾¸¿VØ ÐR±ÇÀ >®–žZÇj­â^]³-»æe$qRè¼»-ñÏ‹ÙGö›Å’'DÎ3ÿöP)džØ¯„ÉÑ=È`® ãd%þ4a¯¡ã¿6ÔÆå¥ù"©ªÝ3½( "×^£Ü+ç3GkÕz%Ñaò”P‰âb¢¼-©Çb½SM05¬È)ü”j¤””"é‚ N…n­&ø.ÏâϾF³è 9©›Åk»Û`Ƕ$òÇÔe ©´¶rrMùó ð{µ?°j£k=_ž!ɱüòyØ-®'vÁCcÐnlg,žÀ&d]qô´ø^7LsmÔ7%kâÀãç Óqµ}Ž8§ Zvâ¸ÛÄó™@/ºÄ¾`÷è ’³{h«Ã¾ð! ¦˜2µ|Cd”g È…¢ŸÓ5‚×S±jáFÁ‘ÔDþàøÃCQ«ÁcÅ8—¼J §>®$²p‡+$CÅw·ÉÈR]ðœBÇi8¡i8¡žF+WÂ÷9®Ÿxt!¨ˆA?¢Î±|z«eAFÍrõH–QUYù¬7|á0Q­£T VƒÊ°PÃy÷Z`âé…ƒ‚ë~X\ Ãi¨ÅA×GMJb‚»lÃ…Éc+׋ú!Ñ"¸-öÇ€ó+·à[ˆ^©‡jç­d"x#j7ŸÞ^S @5SÝv…å)>Ï:ØÓè Ê ™¯C2Yürõ!z¯U;CWî4šCÏÃïxˆÊé¸å³ƒ¨ýÁÊh¯y(¶Ú굤 šU› ‘«õÇÆ ‘[æ€*¸^üÏãV\®<>K×MS½¶ÐÞ  ÓƒÃ·a8ÝÆo‹°¬˜}*µÊ) µb3õÛ€¾*uYÊCöö Z»Tª·ûàÔé0)Vâ1ý4k%!Á(±³Â\bNñso= Uç·!Çãõl-nöL\‚0ªþ¸ Z5ÅOþ¥B¸V“›¼ûôUk¥<–÷@± ýê–ux" +n=ÚC!'ÐÚºÌÿ"»}“•„Hz,¶‰lÒȪüFn`Ÿ ÿœÅÕ+WÚÕ§zpW"¶™I©ç†dãˆ\-ÔBc³)¤(Ç>pdäî%Ø|ibèÛ-±ÒªË×-=s‚ŠešE³Ù÷<Ãä——8¨;¾!a¹ãý9‘´”Õª¾1ê-±¤!O{K\Í2 b­?ÆþÑL5šíAJýøL;U +[bêÕÔêð=â~¨^û¹X®´Â2]hV ÃRwôìØÉ¨ »Î`±BâèjÌA‰­³÷·^y*ú”z H|…6¦†ŸC ÷P¹1•ÈÅC‰¹/pyÍNì®W«ö‘/ëT»û x!j…Q½<õÈ®ŽŽ' yW«½5e·ŸHY˜ÕáG»¯JÔ瘱©û§+Š„³ +m®Áÿ +¼˜ö#”L–*'þLäZ GZÄ"6×À9Ž#Ù•€4Gõ|Îtþ–ƒmÆÂšê†TƒhRR«PÀJÔ¾R•ký¹,Õi¶²ªÙËÀÞRâ&¥ôöç«D–¢fÖ +c)\îÇdx)ç0€q·Ê­vˆ]ë±[/ 5.Ö.ÖëÂå# +}ÙÜ€çyö&ß>ÐÓS€ñEwåoY$Y¥és{C?Z'íZƒÞôàH~¥ ´¨žð탬c}¥µZMܾ÷Á'¹úÐ¥è—â·úÀ{gçLª'å„Õs³®Ô~­6™˜\ï#&CµãP­v êíÆÃSDßãz±yþÌP®^d£Pèó^ã7öõ®]ysMØà®Æˆç°SRz‹é!ž½ç úG¥vPiÁ·½æsÈŠÇÅß*{Œ;T›µJ:¸ù^­ž;¦çÆï›U矰çT믵v‡m`×7ò´·ê¯ Î Ú3–‡Œ]Íb]È<‘ÐA®Àx `7š²­M~l3ûôI¶ÚA ©\ë¸×µ¤(u¡æ,dªéãìÖ–cæ*p6ࣱ¶?q=»|¾2¹T¼˜ÛÖ'öç3ë­·çŧúèvatnj2[-¦Ú߬Óͼ5¾¸~º±ºg¬-îþ˜Ü[ouKv!¯í9IÕ0Æ¥{É=Í)ßÖ—nS3ëËsÍöz{G[I®/펶D¥íNæiópw}Ù¨g«+«¥\*5ùÔ3Ônù’gç +ÉEûj£“{¹ÉWósé·Æn›¡IçyvÕïrÆ·óÌKmò|$™{T¶";ûf»öÙáõôI6u?¨\oñf}ùµp³¾ØN½Íææ’ÝÂÔFùq$‰À*Üßíws7çv¦¶^»X|̲3*àê½m•þxÎñûÛNzwf§›.ïl  ÷Ùîwš©ÃÙµ³â;-hÕrŠëK'±ôÉv§Û»´d%8ˆ¸hŠ®ŽÙÉÙÏvF’ù«ròI»_^Ë)…ë:¢Àòýr!ǰcfn6ÓpoÃ{„¬¼±b#sÖžÛ]„[‹ §íÝôݶг<Û\º/L=î¤ÒÊòÉ•6ýív™&‡Õ=r+…©‰ætöÙ:zÍÏî¦ +>¦²pÙ +sœ/†®³Cõ6Á–6>}zηí¥ÒéQÚ¾ÒÎÃ{p°Y; ô=¶‘ŸŸ{p£¶Ä}­ìdG’铽ò,£0«n.³{ù5[¬)ÕÛ¸´Ù¡ÉkжaìõbNç 0}P[*äÌ+mvuã~~$鯋­ªôXÈçL;cÍïŸ!ÁI©›gs8hná¾9“yé”ß2µúY#}ò|ñu±3ëuÐÌÏ5¾k…‰yû:}ôø<ÉšÝLd¬ÙÝg¢–Ó¹ÇÉM‹Í¶ñLT0v±)H8`çæD/¬?­\¿Ï=ÏçéÓd©¬7‘>:¹®9/µùe¤h>#`£øßÛÊræuªY-,o¨Sm¿:š)Ê0a¼D"ÖªòÐÍO­¼Ÿûœ&ô•aòTÇ~bÓ«÷|wîg—¶ÚŒb—ÆÍŒÚ­]§ï·³ü«›¾__Þ̦X•û3Fv'2êU÷.}Ü=1ü¯X™Ñ1Vð¶Þ*-NÐnÉçsárym?[·Ÿ¦Ô‡ÛÓ´>1ú-8U7²»ëðת²½¡®(•‡Å5un*»æ•­ú-F’~M,…Ÿ …Ylˆ?­ã]í¾®Pk1@Ê2ÔYzy¾`›ó¹#í‡*ËX~æF’Þô2Pé»ßã»X÷&¿êµXÂ*0›œ’·Ü4Nd$‰Ë¤äìƒÍ½([ÂÎüQ°‹0ˆÄ”ÃâO¯¿c>Š×Û,Áw\ÆšJ¬ŽÓ#(ÖŸ–=#<½Q–C[Çv?¸Q[û‰m…Ú°ü¾q§ 8VpUþOìÌy#bë‘kY¼%4eüËë‘ þ$´`”?1bÑ*ïz«òQ%Xøar/°Vh­xr8Vü5Cåý( †NªÀ‚Xh™“Å`kÁÙd½‘ §CƒbeÿÔ1Löw+°««>Öbu€D:â¨,y3<ðˆ!)~àg»ý8¨ûã ‚¡ˆ=s‹"€¸4ïh~ iK¼3DÔçxd9êô>þEà‡eàä៫ è7“>9Û©Ö'+'LÒÔd†á¦ëŒW>íî÷. £3)ÆÅ`]Žàöóߘä’{]??}ÊVoïÖó¥×÷ be’8avâÕYì˜=Gu†ébA…'š{šŸ^#Ñï`kú‡ÏãÚ–2¾~69åfŸ»GW¹÷Œ¼ Ì]%}TÏí¯ß¶˜[[Sƒ£Ì¢î°ø]©Ý-ÏßᯠcÓ×L =kæKs' kN›—ôF5óð”«Ìä7}Ù +$¥í®ë†Ka?œ}Iu“…¦š‚nëÖ +GÏz:¸0X³ùÆÂÞÑ4Ì‹IJLZ7¯~F9B5Ié'•“!T.õy:K#•9 ûÞ¾úŠSKµ6ùœ&_¹|t±A1Ö‡“ßÕ—fŠ´Ð§6äv2Ö$`ú!s¸~=“9LÞtPRaGÀIÖEíW­TnëÅ.ú`cšŽƒ?]ß´Ïj»'éýÓ†îìtrú‰S*ž«–5ã€LÍzºFé$éËÿ½­ìç6^“v¼—Á¨QbÍu6šc®;»d|v»£¤,O…ÙH×ÖgYë§wµt´¶¯­ŸŽº\S=™©0`½”~íêu<ûüct‘MøîNìþMŠ-7ÅÎ~æuo–)"†w@A1¸Í¼j+£þÙ•Åò[MmÚèÈV¦°œÿ‘òz± ·73ã…|½ËN¥–t߬¹o ׎]ÚÝά3nqùöO´{™L~?>][|8Ñ9ŒŠýÚ}8Pv›©ÚF{¿Ò +ÌOehì¯y$é¡da½Õz>5÷Î×p€%emé´»¬òèf·¤¾÷›™ÍŒÑÍ(êÜi{4°×·iwigÞûpb¼§ªiÔÅòsë­±íÍÂÌôœÁÈÕ9ÓoæÊuÆŽ +…»éÑgX©¾¾üp[_??œX|ž=®2æç¾ žKԹǀ±9ŸÛnÍÜŽõbÌh~•jzç7ÐÙp§W³ÒÈÁ3èüê¾Ñ±ÿé•&§—©‚Çlµ]µÀª0}¤lçß³¡‡Ðò¥nGç§WgâËN «,ªÎ(“ù Ó—ôÎ¥Z¦m\Ùù^ΕßÜ9|ScLO_SrÙÍqbFóÑÕÈzv¾b.Vî'*N› ™ZêHe×QìIÒˆßO›üÝmòšMþitý=s;åq¬gïÕµ¾%$Ü-à9Où‡…«jP†AŠ}º;ç×»OLR²Ï÷šÇAÞM5íe=_Éßî?Ü1Ùd Îãt¾4«üHSî!#çÉ|x}|}yít"·õV½Î˜g©ôáÌÁSúèd–iÉ;óª–[²¨B ee!·u½;ÂÆVaÔyù8jòÎÉÄ·ãÂÝøÄeî‘Á+Ss¾Íå¶§¦§P¸ñÎ>JOÉW†îØÒã·ãçˆA ÆDÚùÙëQfo°WÍ»ÌíúÙ·NÇy—mñÓ¨ÕÙ-1L6ORóO“£ÊÖõÆ2ïÂã¯h¡Ý{y|\¬Nî1‘n.]È]nÎD--PÏœI.Ý4®ô«t6c/-퇪,Un§_ÑŽ¶øýi©šŸk\©Œ2šjúØ,Ül¼uf&¡Þ‹ 0=X4Þf¼dï™™5ëb#û={¶ ~{ѽfbóûÛäõwI:ä]))ÞóæH/@"ö ÅÎçŽe­Þ7—sµ]Ó‚ù&ÞŽæïÙêØ7“!¶±Ÿ®¯n5¢pön¿Qjº{ jz1¿³¾”iÊ’7ŸÙòÔzkÞíM^OÛ7åï¹G÷~!UéL„àé¾´&Oß¿½L7ž÷gÄ‚Èâ‰Køó‡?y6©µ- KVW,= +AÜ×tþ$m»G(6ÞåÛŒ#©à³Ý/dÓ7O…ìúÓÑæ·u+í.¼¦£«¤g^ÖÏN¶Š…å\Gš £Äãcë‹ç•§u§ÙºC»dï(L¡›Á½bXtð<ìJIÌ ö²¼QÛ{›]µ76y¿Zºô6Jg„2ß3ý!ÃŽ—‰õ³Ç“®Ô÷ªµÝÍ¥ŽÊóë‹ß_^%áœýsbêY~õâ×÷4h¯™7ÆýàŸ¬-35혭¥s&m¼¤÷ÕŒÎÔìµ×õåÕæ¸|…Äþ*/HPTÚsWÖê©‘O›ó;‡@(ÔÞQ°Nô¶ Dò¤±Ân=_2ëläùÔt°&Óöñ^íÁåAº‘~œŠ…A~ljëbŠIOÊÓâÞ¬Î8éÉÄèP'5€ö´/qˆïß•;Ä'õ´¢­RÝ+ùÒeËÌ­o6ßEå¹t!ÒÆåz /¹t1»²}µ-A‡q›LÍ^ÿ†ª¿È´àrÁžé½8Zœ\ny+•M{›ÓJ¦VkÞ‡xÇ$¶ýP–'e ž÷hчt­X[‰q¸¬QÒGÝNnnÿ½,$¥×®7k™¿à(ùÒ˜uÃ4™ÑV!ïm†…÷Í£]T”—ß&&˜Úþbù²P„°Ç(v>…›ÍFé#S,çg÷'goçûÕ[ÝcÇp繊y$é}¾¾\+LË2x¸³ãøsGø=û=ïÞ#C™]m_¹>qdÔ–´2u8} Ê÷…êøâ2hE¥Â]mÁb4Òª­ÛOù´³ÑîÀÕ÷|aj{þ,«ž¾µ—*‹olÍGÓòÈ«ïo(EM^+U‚Ô²›všOK@‚{uXÜd²^CYzìVZaÒÛ˜É-H-¼‹aDš‘¤õ®ºÇLÞ>.ÖŸ’wOʃñ×B¥ázÀCŸsÉ#Ë{éã¹u¶/O3uyDÎ|©;v—væSc Z!ôbì¨^ɯå²uvzsæØkÙÍìóuy 4¬±õåCý6·³³<æ]‡›1y¬PœÈ¯/Ýœ2±Ó>œU´¹÷£òW¯Œç>6ÓG5ó<@„‹ëí鋱ÜζÎÐ~<ÓŒ"¨âÖþàÊ>¹ëÖG’¬fv%÷dZcËsÝUkõ}&Ï´ ™÷Âr¡Ä±Ñ£Oi4‰Ó±6W*&fWÖí±ú°‰Üdíãrc™IãÍo·ó¾qs±\.,jÅ™ƒLm^=Ù¸¸º¨³}éd|kUù~ûÐ-ÜßtŸÁÛbu£ùú܉!o¶9µi7æÏÙÆŸN¥ëOm¶z¼ÕÞJ>nϘðzÛe¼L2²vØõ¿ާONívîëúË.[ùÛyÀd P¾?g,ª©´ÓÊò÷¦dE`e&—Or3Õ…ÒòÜåN&íÌmAU¶<«ž@y±9\ÂË3a*SJïïlÂuéÓ%ÀA LépŒ1‡ÊõRñ¼ñ´ׅüK²wÕüíÅó)#8ó—Õï­ÓýëNav ?bû.Lw–ù’5mfö¦§«v}ëp4ñ°5úñý½Â$CçoWùùKç)cœëóÒîWoçžÒ'¹öŒõ¾S\[aºñS®–Õàx^/3+ì¼<,¾®änª—ã¢yý ZÏxÎ[\úaöy½<ŸÛªeÏC,_ÑŒ¦v2Û—ƒ«¹†´þ€Üò(CôO3ÿp’7}Êù +‡Í2¬……äÊE› +èȺRÚ\óÅû—¹t}mô p?u£Áaø‘Û}Tü鉾ïn—¶ö7¬Å‹Ó¶–J‹ˆ Õ8µØVžØî31oš ðC¶Õ[‹ã7C¹™îÝl~oÖe§nvŽ¡“v¾´ºÉº:h~sOó×ßܧs¦#³™m‚]>u›>y.u`ŽÿoÕóÒ ºÆå0yœìéöŒ£ f˜Ôd(Á©ké9ÀÄç£m¢=ñÁÍð W¸Ã\¹ÆïuÊÜÜݧé^£Þ(=·o¿ýNU$vЉø:¿‘á­)›OÐ'èC4¤L.6çt«ó{£õš‘ÜØ5Ó¨ðoíÉiªÞ?GD̺&Kˆi§ÁÜx +Ž­z‰! ¦i©UE0á¯dÑí ${¨wxw> +iZ” +mA|@ú¡ñ[¿(œØ 9i4ï¿He–.µÅÎnñÏJ+”S¢?ÂJÈãclÿUÎÅ/²ßl>_ƒ®G~„ƇöާĈʭ2ÛßêcU¸wñy²úS– ÀÂÇ{àQ‹Ü¢‡íˆ>ýü"äù¶H˜P ñÎÈÀ¢F_ÀšÆcZ\ܶh}Òª¾A2ËóÊÏâÊ`ºÃØp§Z癡>Lr¤ÖCÇ†Š¶ü Ê?ý†;H»^nõå›0L±S9yî¾=Ô‹ÕZŸÈ›ÐÁ9‘òLöm„€;mW'Rä{ö +ë rW526KÔ÷“ÜaŽ»ád†H9¥ïîÉB1ÖO$ +SŒÈ`¸á3 öÃ×&.ãí0lU’;!M(ÛÁl±IÉB«ýuÃ$hˆªŒ¸mÉ©-âϰHê7lÕÌ€EQ™‘i²ýé97FC†„̰Ožxì%:Ï•GM0,·¿?Wê‰vž%ßOÀF&Šm(öã{DnÜT‚6è’ýììÏF7Ñd¨“`|«B‰CSwOðÂy50Ð\‚ æ5­³ù': è¢TIT1³P1Q+þ yx‹Í&C*â‰ín馷UÏaÆ¿­Î@Ôe³k<úÃWÛ‰nýÞMN Í-J­j³Zh±ós^y€D„ƒ·•RÙVEl\¿ª¡œ\«Lß<0biŒ¶6›•þôÛ@ð >Ãbßp\î¸S¬—‹-ÿ&VHBRÖS'Å·-Õo:øJ̃^ƒœHâÛÎO.‰ ›]5ïíÙµ³‡eavo~ví¹£Ã_š±|¸¨{½¿ðÃ’¾vÒÉäÝ×Íñ£•"ÜR­z_µÙ•#ëytúûÕÔèÜÞEn$9:ŸÖOFçîÊ'£ÉŠº3:÷ür<:»úZHé».ûcctÂhëßqxcmÿ~UÙ¼ß^ƒÉ9t‹QieºùÙ½ÝóÜÎÖè±øš{M-´ÍM÷þdce$™?ÏTŽÖÚOË‹7{nî*·ö¼´¦:©ÌôÛÄqöf«–Ë_ßÏÕ™´]7G³Ó‡|Ð, .B`q“Í“wXÆæèl)•„¥]Îi…ãÑ©Íöü¼äK[i&ý¥­6§—›lÞÛo|‘Å£L`¹´ wÜ—ãfO¥»J¶íê'Ú”{ùM)O¨¸Œ}è­í'‡ìt9PµöžèÖÙÐÏ—ÆÙÏk{ÉöE,}·Ýj-µ¯Z7KûÊ‚q<%oº¡þ0.žwç"½yÊlÆ:’´´—…QØà ­Û…ÙóèA¿g¦ÇO›µÝ¨AÛã·VÆt$vsõЮŸEjL_Ì.•ö÷¢muï§f’Ë£÷QƒŽ$•‚²¶³Vkü›³ôèÆ zùC)œd#W:Vh.&÷«{G8èH24¬²1ÞØtr{ר‹ïiëGIÛ†A§CƒŽ$ÙæŒëI³3Éž]]ü¶Ê=˜œ íªqboÔpPvšòÁAoZ7gG8(àX•ïÌÓòÓBä ·ó'ßcµ'£I¶ZË£Ó­öâl;j­mçÀ¾øÛ3h{rõRÔ|žžÌT6pБdÏZé›Ù奷£ÈAÇ +EsüÝêîE ªv3QƒŽ$qW“¦c®Eظ¼S +““èA7¾­LìVžO#Ý8tÎpP 0=Þœ˜M=Ó ù¯yÐå±éöäú‚w¦gÐÍ»7ó}¦©°Aí¦?(§–ÊîÖ÷¾ÖËù©þÚf*u=¨q•QvßíèA·ÆºÎîeÉa§28, º_«lƺ“zoÎÅ z=«ï¾wCƒ²QhØýv·PXôd«º;èñžur7hN9Sn]6JäZwçÇOÊw3K‘ƒžÝ®´c=›ªÜ5CƒÂ(|Ø=å|~-3h~ö|Ýie#½š;¹ôeìd7ƒ\,j­?,å¦x?=è÷Óêëbòû\ä ··w¡Aq>l£²6õ7èžrŸßÍEZ8UÇ.:‡[Qƒ¶ZßçÇÙ©¤aôéС™ugò: ZëlÍèb««gt®gÐý•©÷ÛüÅ:t¥…ƒ2.æ ;»Ø¸œãƒ¾º3¡A“×cÄʵ̥º$GJþûõ :ßËS¿Ï$¿Õõ¥6l¶p>ÿ’¢Aצòs!R8Yžå4Iÿ¶˜Ý ÂÊìŠóý]ÀA1õ€?¬•[¹ÜÜdƒn†Õ2ûÏ|ÐÅÃTh¥/•ü+ ºvº»o(ÿËs¹*¢²òw­ó6ª-Öb¾v'Fõò[3ú«1ÍͪYÁ¯pö{¾·2ìUcZ_(ùåý<}í‘®V”Ýu]ï>y÷OåÕš²{´f„¾{_ÓÊnyÇŠûšUöFϸ¯y6Ê~ië(îûrœ}íÄ|½žSŽÏÆG㾦”“õ½)±ˆï¦r:úžŠn½<ª´º£6ÿÚK7•³ÓÑúê3‰Žm+gOók¡ïÞ×]åü››Žûú]9·òÙ¸¯l”«qû&îû‹rsq5óõ‡­Ü¼<ÎÅ}u•ÛÓ%]@¬÷ûºrgݹ1­ïZjjfÇŒùZœRÝ{m/bãjfâ¶ÓúáXÝ9ÛŽùZj¨ß_µjÌ×2“úÔË—‰èïæmýdi¹sýUkŒNNoǯÚäêÔfðkz4µ¹¾Ê!ÖCû´NmtÙØ~¡Öø5;?s$k`Så“ÙL£ýèégÆÜФ ûJIϪ»ùí…Ëc’vÐZS“ë Élád;Ì].OrWùå+S +ÙLª”Ífvfeíí>YƒÙè4ž4ò¸>‰ª R¹‘$h:×>í[Øsê“ÊÂÊEÎÆ5#Ëž¦:¾P]y˜fgh,ßvT¾5¦M®Ì=' ÉÚϠé4¢5./â+”b-‰i:•—e¢-ÓtŠqƒÞ÷tcÞ Èc剉qX”þ½Aõ€Aú_ƒnÔà›’5Ž¿ùƒ2þÒ½WSÒZƒƒ¢ô3¨5ÒÿèAKiOIêûð›;(Jÿ±ƒ‚ô_Žx¥qY‰]+ãÒ‡ñƒ‚L ^(î|y,¼ÖÞ]_œãÃã_χ¬·„òØàšÆÝáêMP=¢Ú®åSKaÔ’Žn¡ËtíÉë¬o AŽˆ‹€¬â×Õ¹SuÎûçZVÖQR°6ƯÙ:tq$àV&0=Æ×ñäHÃo›É$þÛy.‹À¬Ó€lÉæ“ݯ€•BÖ§Uwãô€ýœHòŠ’ÄÌmfâà²Ê×95ÓÞð—ëÛ”`Ê«ù$ÿgn¯AÐ!¹=dëc+`˜ P†{fá¹’KÂ? !×”-YKŠšV’ö <¥¹üýÃá©F™QGžètü‡¯µêÈõŒF­ƒ7¤â?GQ;(í““÷íß]wFLÝnŽ…WˆHåmr °†Þ¿¥Y¶–«Ogs±]$‡@wÙ7.›Ãb–WĘ¥<ªc—‚|,Ü%LþiÈ+ýá>ÒXAÒ“jôžË¹f`oõb7ò°Œ © oÊÒ3=Xw*/ç:ý烴ÿá°‹ºaØåœF‘í~§’T—ˆ¥­©;»ZÚH²1.çLJµR9HMÐmB$Œ7ÞüUp,°ª ZU4½Í+•öëù° Š£0 w‚°J¥xwÊo¬¾ ³—ÊYÿy!&ÙY¡|d^ò /uö8ù~ñE󤺯€ØãâÔÕ—A,DÑ> +1nÙv˜Îê{HqÕ2·±D(^:öçÊï_Ø|ž6CÊ`6šAoÂýÊf_:& Ø‘²[ÐëØÊM¸Ùùˆ¢<³“O›ú·¥]„ÐÄ?¨}G#ÉèÜ¥†6#Ä­Å' +qçe˜mº µøá’RäTP¡&¢…dËOÁdÀ±ñuäÅ÷hÕYm#¿^3ÄKÉ€“‘d‡™ÇIùm6Ÿ—-FŠùáˆ1j0:vÓ®Gš5âÈGÜyÙŠ;F’š›Rgüã@Â1ÿÈm}xÙBð}?v}ÙÉþ 辬0œ=C–ä¶¾µ©\Gɼ¾`}ígͧ œ¿ P|btr¦ñlüx?#ÖGmÅÞ=)™]œEYßÿ12{ö!"Kg?–Ìž}Üû¡÷0_2LV›ŽPpׂNM±f`?Cˆö±½¯ôúùYê%B¡Ž¸yØÏ ÿ¸^‘<ú6:ûY[µÏ Q†Ù˜ sÃâØî:Í`­úâyáOj| a aÍIÇ YgCÊ÷m°ÐÙOË÷p¶¸|Š‹Çö¾„‹±~†^Ïæ <ˆ°Ÿa u#Cô£Á ûóB¨có?à {xáâÔœÏ ½Q§>¨EÄ8fÙD®;¡-ñÊ€ó”ï†' °yÅ«£Pâ©pûÆ”…OÚª{íüØÙOœîмBg{°¯uˆYÃâŒÓˆØ^ž ¯©Ææ ´\Åêðñ‘@ïšR¬¥—Mjãö^c¨x©Ww+ #Úö:”~ÃSúˆ¥÷`òC¾äñw|×¹ ‰éópꉲéõ4 ¨\}‚Á†òÇ ÜñõélÖÀõ‘;DäÜÐë‹BÍàyèwýÃDÃSêù8ÈrÕgJá9²Ž~,hn8Zs›÷m‡¤#.€j?¬pǺ‚ð³ç ’ÿš»9ôR»Íÿ´½Š-íÇxìÒ$¯›ÁnAOÈ=L†`·Ÿ°{Án‘v–^-iP°Ûg\ABÔ’¦3ˆ¬šTC +Í øþÇ: E3ðûG¡Íþû7Ø~ø8¾¹>Dz` Á^ÞÙ€›Ì+|gñS Ìð‘Îâo/>1íë ¦ÿÄ‚†_JptzÚôeõ¸H®¡dÙÍØ ÝÐQþòÑx¹jÛ 8ñ‘xºÕ§ûi³¿²Ðø({µ§Û—£:€Q:k?Ó†a)}S£ŒÈ;“Áñ³v(âf¤Îâ6ฎ Ž¡í qÀ€Û„AÁ±3C\`Á‚ŒØIÙN¦†råŸÊµÂQ±7í§NS ïÂLf¬óCf‹°ªäKJ}ä"©N|DT¯ˆñIyìekˆïŸw¤Éñpú¸öÒ +{}N¡[œ +xvàÀàȸ˜)…ã‘·>j‘é7%›†ãb}à4”Ef wú0Aq}¦ÎÝ±Ò [d $é+,2oÛ#ÉŸöçÒ¿-N}ëo‘‘îøú« Û?c‘ éûoÛ?m‘aK3¦â½;†Cû°E&*Zp»ûÓB“®Àƒ¶ñÅç o‘‰µóC|^¿ðœáƒsl ‡ê§Âs"„å…^a¹¹ƒÂr¿ña„å!¼ØÇ$.&€Š·Âék§öäOuxp]¯çl#†6ýq'¹0ÙÒua`\]Àu!6Zp`\ÝGˆl´‡*ÄÕ ?Ú?®Îçq"…;ˆ@p]|’* “ãÎoÈUÑÈɰÛ:+€ È褘÷XǤŸ‡ãþ0?íS×?îsùÇ>ãýÅñp?ç¡:l<Ü Õ¯‰‡#šü1?à¸ÙÄ{Ædýâx¸o(!j~i<\TÞQÖÙÇà “%àçãáQœ’KßׯÃEébq×:g/ˆ¬7 +phŸHÖ•:œl9„O$ë,|£ó)ïô™ôñ7Výc•N‡ö„ÐO_Ïà¡ox±Ÿ òüÙøòöóÓ1öØKÏE^œü@ŠÖ?pÈßyd¨c˜ÿ±:>†ùÙþ”¡ô*Sd¤×—DD)#?/Ð{ÅŸœ8:ëš<ùþ‰pÒ°4žíïÚ0|ÈàWdÆ~úÃaµWìçÓÇ0ÐË÷ŸÎuƒýÄß§GgÓŠu³>ëI13(šÔUD¶F¶Â¯"(Ø©ŸBˆH-ŽÅ&0€ç_‘zþ•©ç_‘ +8ö©êØü—D¤²~¾$"úùyú ½|ED*D¯ —ZŠ^‹óëƒÒ'iêŒP†¹kõûÖÏCÿb(\<ûÊP8 cƒ=z‚‹ü¸Ú»/_ +™Á†PÜ2îƒzå'CáÂ9ˆ.þ’P¸h«ÂW‡ÂÅÛdžÔÏÚ}ÓÿßÞ—v%Ï,kÿþƒ¨ÌSæyAQä–IPQq`8ûì/ïo»:S'$!\ÏÙ÷ö¹×ãbÝNWuuU]u ª@Y?Yø$O0S~ÃÛ(-¼sA5hêûÔˆGÑ€[m±„ Û0]e‘a3Á@lB8zÕyA•[ž¼—íàfÅ .Z+‚ðŽªmÒ¹9+{¨ôG’¡;[§‘ö¼nõE}«ûQÎ[„· SŸoä“ìæTv¸ììv ÈY–áΖŽÓO’UvsŽO[o¨3×=„Ýq¹ïÓì”*çÃMNÃ'2XÔ&®¯v³†´;­T]±S%ËbÓÁ%­:$jWÙÑ©‚..ñÞnHnòñeïÜ_Z°®Øí™ÒìøøªÚ;Û[àv¬ÕéH§Ó +—Ù–J4áóÙ‰f§Ö?'á¶ÖôzõvÇåš]ñTA`}¸{üJ`³[O ]×<™*®ã"ïW7SV-.Öƒ7²x!Üó†!Š—?%¡_{Š UÏw¼=åv½´Ï•‰òJêÎО¯mù–^m«¬~©feΕö ¶r´èåyH§×C1É©ñÈiÔTÙî]Òd’3í…»t ÉÕ„Ô«#®ÈëÓ#‘Û–×gb=éÈiÞŸïÛ6²£÷§¬¥¶ó¤H¥”×RÛ?θ¼POõàCóD†ŒÐm÷ôšEÓíì‡1…¦S;^¸¡éÔ°tZõavGÓ©ùÕäe?4–nä£:šNͯi¿+šN K§Ylg4ZSÛ+„˜EÓ©ç(M§§!÷ÊàéÔ°tÊÈÈþh:5?‹¢.ÜÐtj¾vâôz 4šq#zz†¦SÃÒ)sG÷GÓ©mÚØÓ{P4Ú6+S{~â.v04ÚóÓ`˜ÚM§Ò”§°y4.fä`h:s3¶+šN¥)æ3Æî7c¦Ðtj',‹Ñ@Ša4ÚÏa«‰¦Sk€Ëê<$šN-Z¢Â)¼'šN K·qzÝM§SDF€¦SÃÒmì/{£éÔ&CnM§vTFÞ÷GÓ©aétùøö?Æ—ø¸Á/v€˜‚¤R›Ã ðɨ¶à­‹ÃòÕ© Iߺ؅¯Nߺ06O[™me‹T˜¥MœøÃòE{7µ$€‚6êYuP*CÚ +]—gÚë±ËÉS¦‡ÄgwÀ L‰³Þ6)t5ŒÎ<…M©La“ŸˆØÓØ[@~":Sžˆ6Ó¬µ=s2¶,-¢;S˜5µ| E+c&¹iš; #Ýísk8 JÉeHw€êÙg¦R5oÐè[‰îö¦¹3äQܛ掰a´‰î a•ôhî$ì›ÑáàÚNÔîÙ\«óâ,¾Î”¢„níXžsC¹h}Zlú@:ýÜC#ë=qv›Þn[î¯ÅAv‡QTæ¦Û’Þf,‰ f'bh%`Øâp`›x¢kÍN«6”F¼\ó;»6²¡Ð@ƒ[¼ÃF³¡°Í¨l(Œýß{¡ù6(|Û…àV4Ê‹Oß`;»myŠÌ.hgO ä[‘aµÂÛ±ì\c[µz ìJ`íëÔ¹¬}n‰%Iî°mU¡1C”¿º‚†A¹ )3bïÒœÊëÅTá{Õ -!km3ƒúVQôV•%ÓPõFæÈnÈ”öá Û‡d0lkLÉþíçŽ@%òѳ·9[ÑÍê4ÓÎþU¸vöe«æHé<‰&‰x¢ d0áE¶×¦¢Ït †=ð{1ÜøJUŽ»ÝÄPÉp·oµq†;=kæû0 wÛþb¸áÎSÞx"SÞÞb¨Åp§‚K2€1Ëp·•ïu'†;£UÍ+¾ìÒÃŒ˜ÖÒÇ[°°ÀZúxW–tòqª_|ËòqÝn¾ÎnǤ7KµFÄÝA€µwR¢Ó–³Øöv´ë©5#ȪÍä“tybf—cÚL®°T[Ûâ×"yß À˜ ‚˜:ŠH“bÛcÚD„·8ïxü‹“#õb ]PûØNJ%jìÍ€T1ug÷}Εƒ…Q“È)¬3ôëì´& C‘jÆdÌ0/†!î}zŒk¾3Y«=X.ïÂ,Ƶà7’g§¨¯ƒ;Li*~Ɔq/Õ®»Ù0¿ª{RÓ9©Ï-80^;IC>»xË3ˆzÞŽqECÒ«Ýaã*Io:tñ¡Úÿ„êËÅ‚Yò½³Xp|/¯7ð'kõ<úÏÖWÀØ>?[ŠÖ®ÿJM[,iÛ‚”O9e±qønÈÌ.Ôí4& ¿â„«p?™¹®¿ž¨]‡±¢Ò•á“ï~©ÓÜÚbè…_wü6 ™?9…Ñ)xdœsî§òz¡½E‰Á´I'/²xP¯¸2Ì(¡Ö¥£,XmKÒaÅ“§ViIàÖ”‰Ô*Í@–ʲ~=£!ª¢fb•ÂkÀ“Ô+j¦Vi>:Uf–¢ÉÔ*˜û`¨´-šB^CëIô2s2̺í9éFQw2»[E^ŒOºál6NÃè JÛOlR^:¬ôÜx6scåêJ¥f¿¤äLÙñ(Q2ZŽV×Ûõ®ô-X£Î-¨ÿçVÿ4m4n]:H”§ëSM©1ç+¢n#`7CÖfëZc i‡æFî( ·ìÜž½R2ƒÛvj)éfiòÉ“FèÍØÎ˜ùÞ¶Îi˜Qùpgä1{läAÀÁŽ/T‹]ñѓŮÐdé”ÂßtÙq3¦çUy‹~)ie”Æ­öÞ‘µÐm2Ëm ™’ÏbZ¶¨²Î©-ÍÂÆ†ëHCRÁ¿¼Å´ë°ÆeCâÝD´zW( Rß«@9•u®t €Û8otžŸ<òþ]lê^ \iÆÛÊ¢³®Õkl¿1c[±<ÆoRÒ´˜±­|:ffL¶VZ‡ÄŒí€4Š„{Ùh(VÕØ hˆ­¾Q€F1€d†ªy >†C%.¶ +Ð(P%Ö +PkkÑÈUØ(›O à&ÆJs:ö`Ô#ÏÈæQ€:C’agäf[ý®ö$å3Åȶ3)Ÿ‘úC¤|ª^…ƒ“ò`d;)–Ê×Ú“òq‘D“ x¦IùT½p'åÓçG>)ŸQþʽHùH¯ jª)¿Yn4Û Áê¬~‡© 5?;@m(¼~†kCíÅë§Ïê·K¶­¯Ÿù<¥]xýTQwû׆Rðúé{…´kC™ãõÓ|Búµ¡Lòúé³ú‘ÖÅö’ÏÚ¼~ú™!2ÏÕ¼~F\¢Ñdõ#ö—½xýôoM…¿r'^¿9>ȯŸþ id¨šæõÓÜ…¯ÜNþ!àõÓgõ#mË}xýô7:l€×Ï£Ëêgº•¯ŸþQW3 Ú$¯ŸLrk´)^¿½0ï†yýŒðñíÏë§Ïê'«Ôº¯Ÿ>pV ‘º ¯Ÿ†©É³ú)ò.væõSIƒ#Xý¤<¥]á)7†™ŒöçõÓgõ³ØTŒˆxýô®ˆÔyýäø-å=«Ô¹Ú‰×O-âõÛ&û‡áõÓ›âãÛ¹Š‡‚o܃*«ßhŽM^? ܃¡l[S¼~ú–<çƒÝŸ×O ÷ aÛ”‘Ä]yý¶!†ŒÃôxýôãÍY;òú)Ÿ©¼Äò>||Æ“4ôùøö.¦Ã³ú†oÛYÚHõ†M^?T|*ˆÔÝyýôYý$ÄÐ~¼~ÄòRaõÛ •fÖÌÑ^cæxýtÍÈ=¯Ÿ> +×8ß>(\ß¼~D+*Úw>>ó(\m¹Áë·žgõ“ó#ïÎëçÑeõÓ­rf‚×O?½KeÛ‰×O?ÑI%f'^?ç³úm¯ gó4XèÛ·ù-å3¦Íëgò\¹#¯Ÿ>«ß^Ùƒ¯ŸþаhO–)^?}ÃPŠ¿ìÇ마%vä½xý”S)gõSµÇvàõÓ5‚xf^?Ã6Ì^¼~Š'©àlA׿õÓß¶¡8ˆ±o•éF¤¦m£ñûÂFƇ¢®ÔS;kLáÚEŸêˆ³~â½¶(®&N})¢7èá\$±—¹¼<ä‰a"jtüQàçShJ´aÓÂb‘nͲUò,GGï®Gú¸ˆ/ðñß׃|H ¬Joß1*ªQ¹ùg}™;¿»{ ªãZ§ÊFÓ¾ë©ð.7óïÑ“(qÞ©¹Æäþ#…ß5Û +(µØÑl›’š ·SñB®mO /‘ó¯ÜMîãGë1&ßs÷ñ²a\™°nXOé¶S…'4$Ÿô¸îÝI‰Ž>kùa²¼ qq¯FÇ·>ü +g]»ñk&ÏVÁTé¢ã@²†_ñyü‚Kà7¶w$>m?”@¢Ñó‹:ð¨íœ“{5:-¤øÑ¼bQíŒðÕsPÏûx/c6Ó.ƒM8D_„ï}ÅÀ(i?8Úåd)øJly܆Xé\ñn/&øû©ž$×媀1º˹¹W¥?gî1îÕ3‹?cò]OI1‹-|?¯¾ŸlË›l2Ó æÎ;Ô ºè!„¬‹+N}°ö™ÍŽ¥RnDH›M%©AET‘7ÎëP š„Wgð'éQï÷WS]ƒ* ˆÜŒ8ùÚåxoNݜȉkk](ô¨! +7ÁfîJ#¼4AoúA:9)˜.ß C¼êµ%}`оž)Å”Wxð <‘Å…>+øÁÂëpîôÇÅ4B债w ©V•§¿Jpò“Ê.Ç·á$µ\:‹ue­oô¶ Bãó̆~ý*Pųä'….iÒh%‹š‘ó]p¯’rÓȤ‚M¦áÁO³¸*}?l n› +_qÈÄi ?‘Ûjaø–›òú®Ò¢¥–-6$Ö5Ò‚Y·üd¡n òæi=Iز›NΛ[ÜWèJ½¶8êÅž¤JèO7Q ògsanÅIçf9àAz,˜bíl)Š–x£ÌæMõ‚,£{~O?úžÓÔÙêõÜ“aì43¨¾V„´gžZ%&E¥ò„·‹‡ã ãŠPMOú$ã ÌÒÙãºo Ôsz‰»›*fãN:wÚ‚hÈOç¬}ñTç]c©nf'ˆOjò¼ ìYµ3._uÕ‚4‹Ê Þžîs‰Í;}5Ù³5ÓÌB©4kOôbl®ËRg•BÉ@Ïܹò˜Í¹“gt5âC·^ýÊ#ã`TПj<Ñè!ŸWÑÅstPv%b0‹!¦Ä6b ÏÛü²Hu¯-¼óOá LŸ$]t…F‚4}+¸…ž'FzV{Äœ¥dî!cY4wñ8ãZOÆ['šªàú0¶ºu+@·•¦}6GÕØšözÑè ’ÔIÝskä(‚ÍÍí²„„Ï—¥žnO Œ«Wm\Óh]•|y$û¹dþ =î*šêËÞí­:Û¦:™¯^žâYfX|M!›wžeŠ“|‹WÖ›=+ãÈÇh)5óôø¹—G=7¼H4_«t5\l}ÈŽ2ºxRfŠÕTm'ý4ã²ÖE¿åVIFÏ¥Ÿ¥«~+ÜsÉä¸S4pÏÌðî½ T@–Òཥž +£3˜g.xÏÇÖùÊ¢IO¢¶OÎÑÆúäO²y»c¢žÙ%×!çha;chÖ êyY@«»™ç“¬¶õì Ãó"››ÝÔQÏ7 ºçVž~ÌÔúêQYÏÉ:º¼æû±CóÝCJ¿tuɧ¤nmô‹z2ˆÆÍŠ‹EêÓMnoØ'–ô]ð+ìcœ±.+=FÎ/dËŸ…&íMäRt¹S¡%§HKuÎGÛH»„™7žÆ á³Ûoá³î"0k~ Cx29Ä68Z*séd!º†þ dbÞmɹ\øêDpFµ¤ã;Yà†p=,±¨’;{ç¡C“§Œ¾ ýx˜ø —3Ó{'õ÷@ñ3`#Í7¾ ³¦¡Óc¾ÓÇæœ6Ž7ªr %HðŒu¬Ÿç”[ä»=Áz±ØœãÓÖdÍ+ÜxHÛWSà&¡ONó|%NÁ=9h4ä`ì?š‹ µe‰I°%­Ca‚i`4où/ÇèOA&þö§õ‚V£M> >qøN¥eâ$èM†Úൿ¶â)à+¶YƒËžÝÈ:ฃðÂλÎÅ)¨>ø_ÛÂà#¹äYÐË7—°”â´ÆRÚh‚ô¶;¾ÝjkÑb3ºáüéÙq |üÌXï~·Qðû4E +W¡Ù~íxÀüÓI%2yÄÉÜeMƒÒ£Ú€8X^tF¾Lß¶Û%Rl  39Ä_ôF¡?•´ï´Fã–Ç•jÞ#V—s÷ì·lÆ*ùo%”A¯´ÅáF¶ÿ^kŒã+ÙgÕƒ~ͤ5¦ÛD?Kí»Æ/ÎýÖõáÒo¯1Ý&êïÖB6°±Hû¿´Ævyàšh€%©6Q©oW½1TÚN´‹ít•¾_}*U'®nºù4Сx«Äëá+N,lˆ%É2¢>ëc°˜ñ :ÅõÿΕÉùËCY)Äø»ÀùÃáO†¸©ðlàsO¦öŠÅV¼/O;¥»|·‘}jß4òƽYÌ8=OŒ½ñB/«½y¿¶z*ß-…\Z}Q_ÙO9ž {ý%¿ý‘K냣(ÜUÃK8ñ…˜Wv¶e|jÞQé(¨hžË¶ýD–õÇMö‚ã礼“ú"˜“p†.:ô×ëbø DÇGÇ/–ƒð–ð V䇬N|Æ—gu*‡'¤[áWÈ'V­êÃ¥'ªÜ3x¸xÇ0 +½„/»ø r)a( 6s³‚3rÕÁçgËcùØI¬Mtkã zå«1CkæL¼ûŽ]á ¨,ŽœoÝ6ä½\áîá€ë—:RN’àŽÙÜËWNL`v9º€ „— óˆ‹ëo–z*Z›B¤-äf†§&ïg}ßqGAÊu¥˜ÙWЉ‘Iè©®†—&.yû­˜±Ëäàüüäð’lÎMÕ骟 +3Îçç›KfÂ*èà +‡àŠ{2ŒmÅ î³atÏ—aô6t +ÎÐp½u1§KbÚ1œ=¿î©NzqrZ¡ÎÞzgàÄ3ƒê¼@{ã¯ApŸWÁËZä\›”ÓÑ‹,3¨VX{£E—$Ïpü¥™cJ‰yš:?gèLj»„sEÑŒÆó`q=xpRˆ(ÿAC8зÎ$k_ÌRHõDÜÒâp!DCÈ•ž*,ª7&þAr.Y‹)/Ùâ°ÀNëmŸ°œqܺ}‰5ÌÂF´kBþ ºò婆U/‘uƒa™zÇ5± áEÌë1¼ˆ#¯ŽjZÏ15#L‰}¸ö¤WŸêlÕ.¡ÍêÒG.¾ÎÛ-”î\ˆ¾ÐÓ ùàÕ-‹TÍ{ÂŽâHóç;JÀ#ÿYB¹˜1›·_ÕéÇV¦O(‚š#‹X,ÆÚ­ì9<É4<°(õ4pCùÛIŽËÌSú™KœkíI@P(…D©ŸF–és{kÙܬTdŠ-kŽ‹²£ƒÔ\H ºdbvé%ïâÄò@¼—ƒô•2UOáEÆŽgfî¶ú®3C«çÊÚ´ºŸ?/é‡ë»uö<~ß*ÇNÞ.K‹‡ +²“­Ç…ܱ^ÞÙ,É?P)ี +xþqwz 1ã!„S)¬’[°¥¼žøÄ1ÕÜ‘2í\u(N7V×\|_ÅçKÄ­‘KðöCª{Mj¹Ëã.L‹GM1^ô@ýÎ#Æ¡Ô)1®¬¯ŒW¤IqM2a ªûJ­—Û( À§ø +}QdP÷qb=A‘Ë€¸ž|êb†ïÛ#Dý¾ÁçZKbÊí4óÁ™dBa‡ŸAÕyq™?Âã$÷ºåKJ»Š48œÛó’ ÌÒõ +M\Ü„îñt@QØ[4YÎ5”; iÏA}9ß”òù=DxÉ™‡m¤_dJÌ3Òâi¥¯9NHíîS¤¢ëËè¶?ªQ—âÜ~km$ÐÅn4‹Ož$ìR)è¥=Ï cü¶·ˆk +¸\ö5E|B±Vw±z“*dØt¬ž{gýq\jJ¼$ïDüå`ùçK‘Kd¢—mò*$^’wþ$n@âÙÓxáœ*å'EiÙÇ'÷™®h­ÊvÍ‘·ÅŸ_dJ72Òµ +j–FÛC#YaJÉ« 5kΨ-ÇÕ‡ÙÕš3jË¡•¬jÍ¡'hÀšÓµåÂXáÐ^ºV°Ú†Ó5ŽŒ»'ÞZ;1l´±vWl¸D nÚÁ Ë`á]ÐFµ~.¼%CdêY(gE‚zr޲Lɼõ£¦—>*š VÛ~K÷RàQtÖSH¦»,N^`\óRc*¨‰³ÕåSЖoRáâì3q +Ò¡s'ÒØÒ-ê_©çð4q_OøðI4W ?63ôi½6ð+ôÅK× ³ðíÍYÞ5?iåK”ÿi˜öÍuôVßÇÕ2žÁLX\?ùJRÿŠ}y÷ßÒVL1óó÷ÇÔãø\)ö0<¥ÒvÆ¥˜£$ìzáŽYòp)ç +”OwüM*´A“!¸T÷Ì„„_lf©ùø)‡%™¢],|5=MóJJ&ΑÆ(“¢€w~#–ßm¥W-y…ÏhG•ØÜݹ¶-w›ÖÀ¡m´#«XlìÆ5j ðÈ”M­tË2E¿µÂæ†71•Ã^²Ñ6Áx­¬ýâ9‡½ˆ'½öžà6îì'¼ã/|ßõY¡äV [ÌÐÕ‰3+[ܼ%¡¦P/œ8ÐW­óà©Âr-ðG噃ý×OSgã>ËÚY*‡, [œi HvÈÒ•oß¹dGXl‡¶$Ôìë°$¬`?ÔAT}³Ç × ½6*ï·_¬WÒí‡N_Î>¶a”é ÅôÂ*BhðÙOd?ÔüܦŽâöŽßh9«â®7׋‡ôHñs%iÉÈ笴•ùÝnÌ|ÒîBït÷½ô …÷gÜ 8¹#È’Œç( +@a- pÆ ?+Ê@áKfÃ0þX9Ÿ)Oa±Æ8¾mX°e“N¡IÎÐÞöü>î2_REêìõƒEâZOÀ@ŠB^ç +`ì,=®×ãŒÛz•€\À +€cãࡎSÓ·z‚LÂHë8Ãh7ì$°Áè)éäƒH÷†lÏÃÇ’l[l‡‘n}ÙÆòréÖ—mÞÓ»·t‹`EUÙÆ½èJ7 dÒÝ£½ñÔ,hå‘}M3Eß²Nû£Àê¾{ïûÓN‚DíT¼›Òý½VH·¾lKõù9鯓že†¥F&=…&ý ýÁõtëFf×ðDÓ–‚ÜÂ2kOÆŠøÆq¾Ÿ Ù?ƒqˆµ‡gÌ`Æ\iè°@Wèz51LÁ¸¯³J¯,ÔŽßÏÉKúÇ4å\ Ô9Pç5„–ò€¼9¶o§SMÀqŽâ¡D\!à⩚«¤À޹·èÈÅoqRúv‚Ï)ØÒѤ®d­\ô!P}ý‰e1PV˜ÝŜ• 8dÑ[Û­üéÑ[—ÈZYÈppp¼ê0Añ1ÌÁ2 ö + † ¨ºÚE2 u¢¸)Ö~;£çr÷Gµšˆ Ë³ßd +‹|•xÛ½]©÷‹p :ì¼æW6Œ 6 †L¯9ØêÃÑ×1²l¾Ê´×ÙLƒo•…](ˆG4†J€Ì1Å«B„öÖûIPu-¾¾QˆvŠPyׯr|c<²°Š ëÚeÜmÁ± HãêeóÃF覴xøsÁgÜåªìËÕÏE/Ęl„òèä¤g½P q²Ä»ußè…ƒKnƒ›¤u±=¼éB¿ö:Èf!÷­’ +õT…°y²‚žs³ =ÉM©v²8€£RᦔÙösTÂg´f²9cÚŽÊLÂëGö_§¤~Äñ•A­’HÌ¢62_S#Eìƒ5j)ŸA¬ ‰UPWà£üØæM•3iJî0\·¬óXQlIÐa8ï%W+ßÄŽJ ½…^žKšT—¨Eö*a4®)X}{˜AjFPáá,}¸h'AÔYΆùÁP%~e‘ ;Î=l¨ .®xðgïP¥Cô$©f2à¬=aGc´Ëáü„åjtõt - ‰ ©`ìÇš1 1Oé°Â®u¼ÆvvήÓÍL”DàåQF%W/SGê1íQú-aû'C§œ‚_ÀÃ<,?¬j[>ÞÒ¹ºÖ=µ¬#0y2ô¸?/aï:’”ÓÈŒ¸@ìKÙI¹ +!Ï”° Oy‚èD+ ©X*­É&lê p²$‘Øw´Ï–ª$lÝÔ léZ¾‹-›zûíç—5œ:_\¦·è$C? #N8«–0dßLÊüNçŽWæƒÝ-Á]3½«#yGwIpÏįüFñŽŒ÷a>Qd# ö@ê ÑáÚî²Ì²›6w; @ŠD‡v…¨ã +!F„Ý ·Qa׊ŒT®((ðQERDUï¹M½¸î% «1D/С"…\ˆ >TJ5€=pЈ£^V¶n6T®0{š(m5)@Vy­tG’Ú¯­ð6ßR˜}%Ø×³RÞ]y±æ©ó¼†{qF˜âý×±è ß0P€'ˆÎS•Z'1f¡l¦ãiÇw3`Úë‡0^y×ÂuzŒS™õ›ãTJY´ØI‹?¤Ÿÿ‡Ø¿áÍ<´/“·.àxœgŠYkE=e1\ˆ`+ISÎ)ø2ßÖxȬЅ,ýx:GsÙ‚ÆÓp!(O“„ÀE\iÔóMÌÉ—É=µ—ÏxR°Xtñ]…??C¶ô*„l†f +²2ØwM#ᮢ£~‡:tz¢Æ¾¯eÆG«É¤­˜ñ¼ôø}¹<5 +…;ŒGqpm/¢"²£GQ(Žl‚ íëÀÀã’Ç_{íìÏ9º¡BhÙÜÕ<­RýŸ½S‹ÐŒdg×ß׉X’€Ñ¶»ëćdÛQU$pùc|r>#C°Åös9ƒ’üq¬?“3(å8‹Ýrƒß€J,„š^Û3‚æ {åÏÇ-G«mÚÀ]KøÞ ”žU÷½Á¦-½_¦6mÕjÀòŒ`_‰}³ÆÇåÁÆòÛ`[žuSPT B™Ïþ© "çîŸæ‡÷Åü°Á\×£?×8o(à;Ì“wÕKé.?meËQ¼ðpvREúÀ• ƒ[¾ÄÄ&?é…ë~¬Î ¥á…{ªS;{๒xä–ÿ: zìÖ—dîykéG?5Z*@êå'KÈòúôáPÛlÇRAÄÃC¬íñ«À[¾ ŠA_'YDÐi?:ļ¬À!†Ê).w ÄàKpÙ@Ã;k +ý,ˆ©èÐæ€Àò†¼¡Ÿ|gMã8ÀŠñ?——sîÁàÊê"²‡ˆVÚ[­„ô˜«ÃÙ¿˜ySfs¤žl…)NØ—W#ÔÉPÓK +¨S昇HL¯ +U°b\ÙiûpvÇÁËó»:ýh³V³Ÿ(> P3âé•+Á\ƯÍâæYq©EsúÁ ­J¤z'^X>ŽÍè;à·~ž¾£}Ì_NBQç.Ä„ï +¿åm +´’ñ[þÜÊú¸·Ë)Ö0©1$ë<‹LEœ›„ãyP0rH\E +Zé iC_”ýÄ}+;àÙ”¾ +\X*Ïibb*ùoP3 ’c©ÒvŠK /ùÅsPdX‚ …òúäŠâh¦ª¾2T©kÐBÍ®j¦\‘mŸ=PrôŠ÷Ž>žFâ¼ä½À|™y@àC™¸«ö@ñ7ˆ_Ñü/®Ú¸QÖ‚ø'ø|Ž­žÉ]sã“:…¢n É`È¿ûŸ‘ð<>Õ‹ç5ëµJm¢€¸6Ï{Òü’;6«Í[ñJ‰ÍæC«ËÓiåá>úœ»^ŸÎJ÷“KÀBÜл2 úYâ©Ï +±ó› 1ÅLäQbþºãí£âUêÞxf‹Ðj{ü…¥ïhóæotŸðŠ_¹J‰9RV¡{¾=¤Ûðs Ý„_ßSâ+bÝA{‘©éž%¿(¾òòùö Âä¦ö~žKÉsõ³ êö”tF sÞÄóäØ ’Bð`°, ˜Ô0Ôî ,õ@ãWø^òÊ‹ç |TŒFsUÞv EOÔU.—.n£üþ²š‡ÐÞc½"j{°."„¥d玽PªË±$‰¤Qna‘}Ï]‚t–Šœߌ‚9~ìÙ3'xsÒ>à­ gvÙç$O[÷ÓÏ묬õWM¿—Û‡à*0ë¬üÜ2yã±Á¾'5Jyì/¶Ü tÀ§¤Ÿ".B£q›q:å!>×¾Ðg¬<Àvö–?þ(C­Ù©¨21ÂŽgš(XÜ`\à¹ÅÖ7‹H£ÉöÜ$3ÏA?¯Ç°²BöObTiRØ&„<ØÄsNh[dqã1™WÁÏÿ—¶D¢ÑÐQ$ Zë÷颹˜=Ï>޼–„%«ÑtûcòY^L§7Óÿ]?×óéÇê(~È]jµh¨8}üœL¼œ½QT{MJVËÇÄ)‰âS¬òV=i¥FÅ'ª›VÞŽ¯›oÀã¡]bÚ6¨ÊÓùµÕY]zám—+ÿ.#ÉÂfØfsŸ§‹üºä¹¨ß)Ԫņ7•’MÞfNª¹ûóâ}ùÌzêSp©V°azDµ—wwpzD9"±=4=¢‚,LôˆM›B’¤;Pˆ“D؆dŠ`æz ‰æÒµAŠH,ùt“–qygB%%Y%}²gt’’±%}ƒ¿™fndìýñpÇ­‡åëSzá·——Øö3h£ÏÊØ|r#M8Íã…<±QÎE +£‰íe3À%/1zÛÆÍºyj¾Ë‹ìÏ70n<„ÑÀÑJtëRÕ¡Ð Ogg±£×“8?”äz1QV‡®Óÿ†[5¸E×Yô*­”³ŽéM±6IYyiêvhÑàö/‹7†Þ'üòꎂ"±¼ÆMŽû×Ñãv€_öãEë5zÕ£ùhÜgÒ±ƒžÕxõÁø×“ n‚´o-Ü¢³£·+ó­G ¯úÒj“fíÛ„%¾³–ó’3ËoÁ—ñ6‡?mfK,û"¥ô‡ÛÆ$öÉUÇOÈË#¿XV}Š®ÐYØoG´ðjÂH×ñæÿê5¸1šÐê¶ìv¥‘[ßñEyxaÃI´À3  +ê¬â eV¤Ü Î>mN;Vÿî‡2zú°t¬ÞÛ~ )Å»ŽÕÕ¸wòzs¿•ZEº4scuÍÞÓÍütiLîkÝb¤ˆÌõ»›)Œ\Oo?3Å€‘ŸÈö1S )¸NÈ~fÊ#…8)kRk*f-Qy~‚xˆ«{@PýñŦ,ëþÄCÀÎ#£úâ!±º‚@=ô#ÄC<D=ô#ÄC;O=ô#ÄC:Ü$ÂÜ»Ð`™"â™ 6š8,ñ&wÆA‰‡6¥ò'ˆ‡î Ä,;ɸ3€zèGˆ‡,6õÐi¬±íÂÏbžxHeýñY~–݈‡äk¬ÑfqÚ‡xHÁ˜¦K¸³;ñÀÏ"RýñÄf¥÷4ö%‚ìqõз±xh+›ÕAˆ‡4ÓL`çt/Hü›S77‹|õž/ög`=n Š×Sw¥‘àëCÆ;<’ª“s ¢3+Àªn>B/ìÁÉû¢[ч +Ðg:VivÄP°K™—|Â!R„ÂÑŽ£.‚ž£ð¶ó_¤ƒN._Ež¥ïT‘ Á99å™®¨ÐøœËº<÷“Ê•xož2Ö‚Ö7³•”ÙG¯iNHqÛ„P)ÂGàÌ@w±Ñ)ÞUp˜Ej[еpØïÌËòÿ¥- ‹ ¢•ƒÒÇ„ŒTZl6ôÉõtµþ‚ BƒüôyöQý{º°ÐGÜ? +ýƒ¿‘ØÍD˜P½ Á§õ±Å‰¯=¢]Gõ u”+Ylƒ@n±*ÎW³ÏÑâßGqø¨sQo׊Gñ#îôƒÄ‘ ‰ «ÑW.ˆ‘Ð0Ð ú¿ó/4‚ÜzUDÿ·,?s Å +]óoôæ ½xEý눦Ž.ŽzÔÑ~ß²„BŒ?Rl8 2±Ð‘2þH”†Â±2GsK"¯‰U.ª«]¢”©tgè¢Íî–³¨xïÍâñÖôq5úx~ŸºŽí„›¯W‹ÙÇóþº>ûŸéõËèkWG“÷é¢1šO¹ÙV¶Ç2GÖtô~$oýr:{~Yq?¢ùÏÏÍk +ïŸoÿš-ù¶£t”–n”Õh¸€ÖàtÑá~‚.ª}¬6®©}ÌV³ÑûÕz4YŒ>øQP 渙àF¦É‰ÕB—ûMˆ¦ý1é¿°Æoîf“Õ ÷ gíãFﳉúì“ý|.>¦‹›Ó Lþ¶õ¹þ˜ /d¿Öš®£Öh2[/ÍwE“Þk˜´™ašíŠ&³×03Ã4Û9Lv¯a²f†É_œØP—£Åh¾Tÿ–ÐÀ +%å4Y˜Q&Œ„£ 8ép”¼(¬rQ]í":ª¼H¥;Cmv÷7(N&ú§'#'Öˆâd£A?%ý§5ì_Åù«8ÿfʼnSÁÀFjõ‰ ˆ.Àï©}L¦ÿ‹ÞÓ‘£Àõêsñoá¤Bà‡¹ÙÙh wY†ØðíL,á#§ë¨sg¢‹èŽ= û{jY+Œn¤»v+£ômi&¦r‘Ò–Æ…¢Ê‹Tº3tÑfwÖ@…XòFÿ=! ÇÌÓL(Lî Zò»'üî óžÐ¶ÄxŪ0a#ª:ÔR3¤Uº3tÑß©CY*öÏšÕ¿*ôW…þªÐŸ6«Ù7«iægíj†Ù⣓yã"U»ÚÐÆaä"•îþ†=៷«£eÚIý»)ün +¿›‚®]­¢C )5CêÑÉl`L‡ýÇíê_ú«BUèÛÕÁ7«C;[Õ¤9­ˆ7‚–†õÍi6ªr‘Ҝƅ‚Ê‹Tº3tÑfwÁV‰Eÿñ­ 2»ÐL”Ü +èß­àw+ø/Ü +–oDUqÒd†t¢Jw†.ú+g”¦#ÿñŠó׆þUœÿŠ3Èyi*ŠÓ&3¤Uº3tÑß©8ÿù\¹_Åù«8ça’ŒÕŽêrM¦nqª\´©Uº3tÑß©8Ùû¯8µ~ó«8ç߬87­;€KèÕÃ*©¡3¶kW oéö1ýŠóŸ‡µQ±Èžá®_tƯâüoTœ›žIŹ÷QÑd†"H;zKÿNÅù!8d^qþ‡~ç¯âÔèêÕ5§cÒÐ)ÜÀ˜þ +Åùᨾ“âüÕ•¿ºò¿PWšüxNõã=„¼‡ŸÇIÇ~2òó‚Þu5mËŸÛ¨a¤zDÚ,tdèeèôc`LÅNÿàˆ•?~H¿Ûþï¶obÛwR¼¸@sËçsëyës5u±“}°;ÎPG£³?\¸C¥;Cý• s¹Fÿ)Üñ{xûÕâÿuZÜìámWDŒxX%9E¶¢’ú·yÑV˜cØèE›ÝýJZŽÿgl,û‹`üUØ¿ +û° ðMjH§ÒކðÝÆôw¨Ðÿ ð½Uè¯çâW…þ7ªP6ï®m]ìPÛÓ›Áá -S¼Á {¼)íi¸H¥^¿J,ÚÈE*Ýýc›Ljÿÿ3&é˜é­AÁ å¸ùÝ~·†ß­Ôô®e÷êyŽw¦ô1ÁÄ0>ŸÅf»=Oo£RY–çåè¦G£ð¤O¿Ð7GÏ‹éõ5=Z¾|þ >A?.·ÙJͲåÿá•p endstream endobj 25 0 obj <>stream +%AI12_CompressedDataxœì½ms$·•&ú ò?Ôý0öÆt1HíÄD°ø2«½¶¥°d¯g'6:ènJâšÝìa³åñüúû<@V&Š,ª[ûN3C-²*ßœóœ÷ø¾þæÅéë»?^¿¶ý¦û‡8»¿¾z¸»ÿb#Ÿn¾¼½ýðþážýⷿܘ°íqÒé—ñe>ñ÷×÷ïoîÞ~±±vÛË——¼ú¿¹yõÃÝíÕûÍÙÕýÃõý/7¿ø%¾ûöæáöß¾¾{suóöÅûëû›«Û›ÿ¼Þ^Ýü²<w;¿zÀYîÄø3mÜ}Ø|ýk~õöÇ«÷ïqÁ3qÀg»»o_ß¼ý~w÷_l†ió™qãý°ya|Ä÷ÿãæ·×ï«“¶SŒý0çìd念Ñ8?N~ÃõvyN”›-O±¸óùÝ«o®ß>|}÷êúýû³»Û»û÷_lv·W¯þ´øúòîí>þúêc{{÷â·ûÛÅ÷¿¹¾~}ýúÀY§_ú——7·×˜Ô7W3pŠO¿4öåîÃÍíëß|xóÇkL·uŽ/å%~÷þê{ÌüÎÃË/ßà“o®pëïñ.ÓÙ¯ÿõÿ]¾9f4¿ø·ß^#«Žµø?¿Ìw¾¿{÷æêþO¼|ó"Lv3»éÓ—ß^¿y‡¿NóÛ[¿y1Lüßò|.†#çLkðvã'‡ùéÛý¤^ÿxsýç/6¿¹{{æáôþá›´ôÎõ}ú7}óÛ·×÷¿{{ôühJñë»××·ù#¹þòöJÆ/‡Ùÿ›NøöêþûëËÝí‡!êXž€‰þÕÕ_®¹¾F ¼Üa’Þâ9oðº/o¾{ùcÚ +/¿øÂ„tÚôò«w×o¿½û½ å…³~c<ž¹õfc½‹XÐÉp"ø&V(ÏÎogöÿæGžÞb+½Å<—Çþ ϸxûúeÞÔׯ—Ïñò>¥ÌD} ÂúêþSñE"‹DpÿrózOoÁnbúGf{‹iå1“í¹üd’Ÿ0b/gù$ÍVý£(Kg_žýz±úíˆq`ØgwoHyïÉT¸¶Ø·wß§ïæßå\ýá]÷oÝ0üû‡»‡ë÷¸ÕíõfO¾¿¿úñzcl<9}}s}oÞŸœÞã듳Wׯono¯N.®^}x¸>ùÍöïõÉWå´îäwóWé”+¹ÛÉÕ«›{lŠïn¯ÿãäjNºþJnþªÜüZ®ìN®Ó¥×‹K¯çKoÒíoÒ97‹snæsÞÊí»“»tî]:÷nqîÝ|î]z•éÔéÔûS»“󹯯¾ÿþúþä5^ðúúäæûä=ˆú–£xýŠÛîäno¯NÞ]ÝsÞýp‚+À _ÿñ³t/¼ w{}òêîÝ_@z?<œ€W½¾&w:Iï0?nûöîáõõw'§'_½‡8ú¡›?zÉöææí‡ýIåÿ¹~{òæCýq§Î+ÿ¿»ýÝ5nuóöš¿¿¹zÿêÃ-ÿ('\áóüôÿpýžƒ|}÷ç·'×ÿñêöêü +êºyuu‹ 櫾»y«_ã{pþÛë7w¥ß=ìÿJ3q}{{óŽ#ÿîêÕõÉiZŒÓLlù'w¤‘·¯ñJ'×oäBȘb¹iù#ÝSþÚž>|}óã dž´yÎÿuþí»û«´¢îïäMe§Ìï-Éíº“ïn0àLxòÉ;<çî5 DÖz¿Ïþxõþz~Aù§>üp÷á=H¤;9]èÅâ÷ÓDóË]¤©ù2}þå’\¿œOú2ôU:é«Åýʸ¿Jgü.ñ»åm~—¾zÍ•j9Y\âÍÕ«{Ò;dœvõJ6DÚÒiGw'?|xûýÕý‡7·W°Á–ÿtòê +×uß^_öÿóå·ï!4÷²rHÂéâí«;¢ž/6/׸¢†ÿvRpRŸÄÅ·ÿ;Ýü°Üzóíý‡ëoÿòîºû73š¼­‡LÏõ¿¸ºÅãÉÍÛï°=þ²Øtœ9<¨óÍ?: ÷öþ áë›ï¾;ÁØÞ9yw÷úÃ+p†Üñ<·ÓÉWo®¿¿Útfò'`ÜG3…“«w¸à?ò[LñäüúöájcËÄ‹M÷Ÿ×o¿¿|êyò-Èùå7yóǻۗ'éÿ«‘û,ó1Í_c(@ºß¼ë}û_ýËý݇w_¾ýî®ûEÂÏ¿KÃ.þÏë×›¯þøñ€°€1LøúÛïñ÷|Pð»_>z;H²ûëMúWÊŸåÿO_}~ý`äþòôéÅÛ¯oïÞ-n›Î{ú~_ß^½½ºßÈçóí~uø5ÐýÃþ†<ñúáGܸâ¥Àåuª»?rÂâ«§ô+°çúòèîÏw÷š¸P€¶ ‘ÇïúÍŸ®^ýPß7úqwj¼yÿf¾|ùÉ×Ü-¯n¯¿ù $ã ÷Í+¢ûÍîþÃû6ßÞÝÝîo»új^Áü±|Êóÿ6žñµ\ðö«·øå‡Ö“ò õ“  ¤kþFŸ5_Óz¾ü{yÆÙЈ@¸›W­Ç4¾ŸŸ·üîyË„ÝÛ¼Ÿ“þÜßš,*}vô²o€°Q0¥GÏùæÏWØþ¿ºùã£Oã{CF¾Æ¶øæÃÍÃõ~ŽîÞ¼£õbóÍWï®e³—3¿™oèEm[È¥/X¶ßìÞ.¾ÿ +M/ I®Dªó§¿ü²[þAÕq³{ :þs]ßýSíøŸ;³ù‡—»ûô 40'U·!)–ã†Ú(vœöM÷/Ÿ:m÷~y'ÑNå»Ö –ßâºÝù<eLía~u¹ÿ›\¾û3†Z}€Ûù4\ ÒÿÄclÝâׯýw»ÝÙî|w±»<ëÏÌ™=ÎÜ™?ÏÂY<›ÎNÏÎÎÎÏ.Î.ÏûssnχswîÏÇópϧóÓóÝùÙùùùÅùåEa.ìÅÐ]¸ 1^„‹(÷ÇÙÇîé£[üúÏ ƒ¼þ˜¨á‘Ã=ÿèÔG«ù•ÁE}cˆ1Nñ4îâY<ñrê'3ÙÉM~§0Ñ,p:í¦³é|º˜.OûSsjO‡SwêOÇÓpO§ÓÓÓÝéYwz~zqz¹ëwfgwÃÎíünÜ…]ÜM»ÓÝ.MhxÖ1>utkRM²ý´G}ÃÇÖðÑC¦fˆÃ4œ»ál8.†K,šqÖ Î9ïF\t“;u;wê¹p—XFã­wÞûÑýäOýΟaØþrì»ÑŒvF7úqÃÇi<wãæèb¼ }0Á†!¸àÃBˆa +§aÎ0ñá2öÑD‡èäí.///pœã8ñÃqŠcÂqã¥Çáp 8,ƒ£¿ìyáÎ/°/°]/N»‹Ó Ó»-`ÏØyûÏ] ØŠÒ`[ö|"¶èÅ9°›±iwغ Flâxª%>öÇwtÇžø)nøLò»¼”•‘ÁXa䛡ýÔŸö؆ýY޼Ľ±8㌇®9š]»Üœšã4çœmsÉûv8“?gAaddA*ä@›¿Åö·ØáüÖ‚«ZY.®w&g#‡Ü`ÀOÇ—Ÿqq„ꈇŽ<ä̸υ.ȼ{¡0pNx¸Š"eE¡³S9Hz$A^È¡é˾•9dr89¼£!QŽ)§ó±›³N6 óÕqÑ<žøYR8‘Bo!>Úl‡¥ _!…ÇO¤Ð›(° ƒK'~yZŒÛ0ºÅ 9;ß×òoâÈ3ÁÀ–gŽã6úaZÞø˜ÓÓû‘§Z;[ßå·=äÔâ–ŸÇ{%kú8mã&5¿|JúæÃ;ÂÑ»ï’Skóû›ï¡Çœv|‡g *Úù?SV¿ù¡œ»)ÿÍ€pÜöÁN¶ Ã~fž>U&º:m;zc±.ãf0˜—~Ø„i‚9|ãÃW4ï?ù ?vÒsãwoß^½¹~½ù>´1X…Ƈ˜W + $QŸ'Ç ‡°¿3សräý/lf'‚ +ð4;bÕpIŽ˜ Ç(‡—ÃåcCx-0>d7þIlí\޳|¤g¤ŸIŽ˜ Ç(‡—ÃÉ1¤£;ÎxÇ£çQ˜Ü$}|s†¹<ÅÃ#pÏüã e,ä^n~€t†Y>`ŠN#”óCIg|¦|u†é?ÞŠÀ]#ðö°˜q=DÃðÙæx-BZfÎBèA*Cžƒ2vær‚Ä ž’t€L5¶‡”¹€¸=ÃjžBGˆâBÙAdZˆéžx bûŒ« AŽ1C¨ã½€!œ¨Îyš8 ah}Aé Oèfa}tù—Ø<¦æqÚ<2Íwå—|œ5óæqÑ:ºžØôr±UOAÝ!ѬIªŽœ²8 ºd/Òýx”?I·‘do¹Dîë ɨAqXˤ¿{ïJ:Mq „6îùßQg ; º€pÝ!ø>¬õûÑn'»dÕGéG9³£­Î4ø>„Å}9;Ù(Ì4ö4EŒ£Ã:l­xü¼}S +ô+1 (y}Du„Æ160˜Žÿ,×8uØÆ‘:³ÿipDäÕ¡wÃb·tó¯z{í‡Þ±Õ¾îä-6ÔÑâ,е™U‹¯iþל£™Ê>Æó})Š(Œ(Ž’@:ùF¡D±”“½Ä +ôY@]ˆñâLä:B'‚Š¢* +Š«$°¬J/êÅ…®$ºv"£)¾(À’£KbÌvBM½è&Yž r L£TKr’Md›Ä›8Џ$äÎgœvt”uIÚQÞ%‰G™'ROä^’|ç‚~v‚¦,ƒhq^ô;þØNȶq˜â¹À¥ Œ)ËÅ š%e£eÑ +a÷YFRJ&9 IÙeaóÞ*[g˜·BŸEçE&ÝBšÓLi‰’©Ø.ÓBZr±W±T$+ÅNÌQ >›$Œ#.Ä ‘LQLT´ü a’ +"Љ‚ ½`FbÅ^Ð!QáN``àçêâõ‚éÎÅ.åÉ‘ø)“íªÚü„ª"û„ªjù„ª†0#¨c8Ã'2ìü¸á'ù9Þ|÷Üî}-ÿÔ­Äè~ù/çãbqœÏÇÙ|ìæCb—þg¦ä’xöÞ~|kweo3ìål7*V¥bkÚÍfÙbš-æÙ8¯Æ|$Öï²+™  ÜÌ6Ÿ-sçM¶œ~±B:±D¦cÌÉ VÉtLÙ:y*ÊtœeKåy¶VŠÅÒ\vÉl‰#¯irn,]Ãóµ/£[;3vgi9öÖÁ½}°X—VÂvÂÚHØÕVÁ´,zï£ØÔçºZ™[y"¾M­äÐ÷É>7Mίû1ša› ƈ¿Jâ v—M†vK¿ÃÂj÷S®–ç’÷ÓF· C„Hóz åQWžsQ]ðW|?ˆ#ÚT·Óh¢üÒ÷Ö9ÓÔažuÕÇi4®©Ñ8Úg¦?ä/8ä-H¾‚ä)H{ïR6›M‚N<A|Å/@ŸÀeöX1þ'“'WqseG×ìêÊήnöw%Wñy‰×+û½èùâ=@Ü1{À’ìT ð™8 /;ºÃ„ËXñˆ ¥é^GñMºwâ!;˾D‚òKñ•õY¯#l:qS8qyqŸâB âF‹âJ›Äv*.µtd‹âìݼ˜Ën济¤tͽùgÉ Ö;~i§Y›aÖ†–Ù’Ò-Œ'E%Uqæ8å§0Ù¢™º&3»YŽO/\]sö=w_rø‹$”»ìŸÙs¼¥_þ «Ã­¿?ºìØZA±yL­£›=}êÐ&¼ýz:žrÇG°R³B„Æc¶Á®¡ð?v´m‡‹£{ú”G ŽêèŽ=±ŸÚkø©ðêGýüÝ*í.ai‰vx4&æ@²;„$HÎ0òÑè¥Ý2~©;&€i¿$>oz»Ï…RE4ïó^,¡üÌÈ“NðÁà“çÇžtíà“§—#mÄcöì±ÌâIÎò<6v÷Å<i?ãùk2®å”°Œ§ŽgütÍOast yüHd/\bN„[Ä)§×e‡irž&Wjr«ÒÁš4Å„ÎLv?Ñ%Úä¬MŽÛQ˜L5ŠÖ:e—orÿž ß9ÞÃãR8P/\G'.åä^vÂ’¼°¥Qt\j¹±ÂJCXëC†~µŽpQëEA(lèùŒè+êrÜ#¬h$µT{”â³V=¨³µâÓ-GÕà­Ïæ® +ìSCjkéÔ‡aK³{¿ÒøZ´XÜŸªµÁ³©‚â-E…¾½“™¶˜¿ðD<ƒñ£Ôx£“%©œjðí€ßÜìm¡Ž?ãšô Ç$êm°†.Ç!0i;øqª.Z…”<ç¢ÓÅǦ.>Ò»8,tq ‚AЧ à ÃP(Ò‹ »3HôÄæ@g¤²(ìR¨‹®PRÕŽz"5yRR'{T„õ"‘~H=i;P.'©L™œ$r’ÇE—8ÐYkXôæd@½TÒfܘaãfä»þ°œµ ¡òòÔtŒMè?»q>»q>»q>»q>»q>»q~VðßÙ ?»q>»q>»qÔñ×d\Ïvã<ãhßðì§ÝÇ\ü±7ÜstǶºdv<×ÓÞý´wA'ÔÞu:gòwÔÙ¬ƒ]t³-òrå›êgð·GC9‹0»©Š£Êç|Ãì®ê>«X^àôtå»ÚÍ©Œç+ÖÅ@Ùï+]Ÿ6ëµ÷l›ËX@üœ|9-ì/bƒéVf˜³œÆy>Ïs Ý\Øcö±³ît^’ðÏ —i²—i˜!wIÉ3²Þu Eí"cæ‚‘‡Yg+‰ùë´üË…öfK~I¾OiöIÛ+r{Un¯Ì% â%5d¡Ïu2ÃE¥Ke­Ô¹J©›f¥î¬(u nè*Ý”ENQç.²àIŠœÝ;÷öÊð±UŠB¼÷Zf…¸›'øƒïi¹»’¼ÝÚÃj†ž!{»õ;Tð8Bú>?:ú¯èŽüvòÏóFæKŽuFF¿Å"Úg9#Ë5ùâP ô$ö[炤WFëuF>㢳(MM‹ÒD‹’-¥¸[gGZ+S þáãòÐqøu:3mUž´Ý:\9ºý¯¢´Ž±y„ÆÝÕÍb66®½Ëc·>ZŠ©Æxg(›@w@ï?¤®ï羑‘²²Û¹×kûÓʵ·B™¥ñ'Y¢º•9J¤æD‘¶MjR6)ÈQm–ªŒRM{”¶D¥BHU!„u „Tü@ªHR^Jݱòj½wÉ(Ý彩›Jýœ§gɤ%•ôtN×+ {%eoŸ´'i{äí-3÷–¹{Ëì½uW%ðÍ)|ÝœÃ×Êâ;˜Ç·¬…°NäëªL¾ŸT aNå[ç×»ÑZIhߎœôqŸ©¶x'·LÌ8ædaîc'ÉB1¨ñ³!4¼ GœûQ¬Ü6k—X³Š+i”Ô:\TkYVk_X+ÎØÄ—Üsƒ$ºÚ¼ú¹ Â…¤½žgâN²_O%vÊ¢¢ª¥Ò.¤r°ˆÊî@ôÝ‘T̾€ŠË +*«*Ý¢ŒJ]H¥”R ³rãWUEUö +R·7˜/Rå/«+{îR8ÌYUpeæ8ݪöʲK9Öòi-Áj9§Ä¡–›- ۖdzÀ®M7e~N·üHqüq‚鎂9ëc÷ØQ£¨£€ÑLÿˆ”Ò"¯Ú ã:e|4¾L_%ŽïSÇKòø>}¼$—òiQÅ`®a°GxøÖõ B–Jûêf®^p±N;Ùk¥tAR„‹YR-«,ë” +qQÁ`åx®b r ’¬›ë\¬jìVõ ⢦Á(ʹ›+ $æŒãnN7^&/“‹sFñ¢ÞȺ®HU>¤S•Bª’ Ò{°Ö¨ïÑ,èñ˜ õ‘ºÝÁ,âCn®ÇýdÏv8ü|¶ÏºãÒ%¿tÊ·¬{;„ +4îfïü¾c1õìô{3Ï>ìØUžlßé*YxëÝlÞIn‚â°_ÙwN{±ðt+ÏÒȳ4ó, =-÷½ßÛ{º•ÿ€iþI~ü†?;ñ»^ü½ÿ~öÝ/Üö&G‘Y±ž¤CXLô t/å_F1ª1¬¤Ÿ"x LЪtM³Lëšjo[³mê°µâÚ=¡©>[=íi¨ ÃñcÇŒjºg† ].ëê_k_]]4ºv×Õ;qÙ¥R`‡ª 4ê"r6Їµõh =䘓“媃¤§‡h¤ç¾èå°É<{o²:æì\:l0v-pï¬Y«2äŸ>õ£T¦Á·T&|º¨ÌŽE{¢ÎM®x\‘GW‹ÇÑøu1ÒÀº›Ã²°ÂÁSR½Ò­«ª™[üiyƒg|Ôô5‹ +¸•é°?.­ŠÖÈê¤Õüd_÷yBÏóuw­Øã§ƒºtHWX™Úª€.Î_·0¨- iKÚ2ˆëpY•l!ë2]Sei[ZÂÖ‘X~ö>Éjíc¬æÐ©çG=• ¥ÿ„¨G£Ÿ:í©?`=2ª©kÅ)ýÍ}D4Á§ +O8ì6ZÉýͱ΢µ<îüãM‹>ýD²™KÙÃkïè7ĸÐN¦ÊM½wR-e¯§È[uùÅTáøÌ,ö¦òŠè´BoÑzç­\]剨KÁ¦ò•G쵟LÉê¤GÙkLE4)?ÒJ5Ä„}ÜéG×¶I×vQ•µÛ{ï'Lù*#§dJ±þE^Çœc×êË‘j‰ai ~­n–òTí3gß0z{ž=îÉÚÝñÅSíÆu_ŽT.~KßR™7ªíCéÅ‘;qœç—»¹ GÈ•.}7; L.xy9÷ÞØÍe/ãìp²mÝK)%áðÀ¿$õð0>Zlù9å.åͤ'‚±ýºyA]zù9åŽ!H­fOŸÒXðÎquA]Ùì9•¾ +N +® v<¦RhÒD¡YÑ옳?Š÷456ÿ9æsÌç˜Ï 0Ÿ`>'Àüºéßë ?'À|N€ù)œåsÌ'c\Ÿ`>'À|N€ùœó9æşO€ñã683>˯Q®ùœ“ŒGM/7‹ €êÌùãâ¨C•JëVš¾Ö÷[iKm¯çgÕ¾«ôùµª¾›ÙßY.½4·æ¡™Å„v †8ÎÍw÷L1±Å´±—ŒqÉWÁcÝ"zììI{WÈ¿lý¼ùçí/LqÏãlÝZ²ÂÂtU°&#èjN <´Ù°íøC5€ë”ÝH'«Ôv¤EÚŠ¶&uO¤®Ô¥Ýõ~eŠÝÚa¿žKêYÓÎÜÔyÑËy&œ®A9çMÊÙÓŸƒKØán&œ‹n!TíÊ9]QÎÅRœÎ²´HÒÓ®¦´ô÷£Zóu•mqPVƵ­qßÔÈpꎰ:žë(ŽÃq +ãØ³•=Aì*4u±BTfI +Ýš!h2xY¹]Wh@‘€«0Ã#¬cÉ9ºŠu\þ̆¯Ÿ®Õé›üi6ÒƒÖÐãâ_ÉÚfq k³mk³MkWg®rû{¯½Íü¾çæb­½… ¦i"ÄqÞßÉ/ƒ3¬bôãp(¶äy×¥>ExqÜ÷¤uþô€m3° +Àã+]ŠŽ¾äãðQ3ÌŸ>Šž…‡4êÅA5 +Z;7š¨«dØ“øg¥6xW÷ñRlÍÁºJŠÅ†»|\Šemð<9õº-U¡*:±© P‡º–qøù©Õ·‚C]…†ÚHè1¯ZEYÝ“h¬¤Ý¨[ˆ¼Cè í´H§SÈy-üAç¶üùt+³Âù¬ßðó ?ßðç½áÞ}Sâ‹ÛfﲩÝ5r¦ö~š® +¨5{WÍE³X…,fÿV§l¸ ZE->šúÛ͹¿Åѵ^ÜÇ/ÖŒËôßeã*’±Ä2–hÆÏX"ãì>­â÷‘D<ðÆ‹°ìñüX|ci‡‰ïæTâeBñúðQÝâpôñÈO÷Ø—ÕO£Î•>ºãN;þø¯{Ãus–Ç»Eyìˆ}[+›¿4eá†çvwÉ+Ë=N£4d)ý¢Nç~QfÖ’éa¯3,]¯ÙÖÐ)wËÞëz8mii˜]¯ÉùÚåÀŠÒveÙt¥t:_ô[©{­Ô}VN»Üf¥j±’ÃöÝUöU–]U–Ur7•nÑIeÝC¥¼Ô]SZRQ:Ý E5?yªsI³ËÆióØ=rœµN}ô‘?Ý¢ŸÖ'9ºO€õ÷sÃe¢ÔÜ1Eÿ"I2ØòŽNw?Ä^²ïc€î4<ÖJå׬;ªx³í±ÉmUÊ7so•Ñã‹Ñl©6oµÑ»u›•æëëî +T´±ýv°Sh\_ŸñWê퇦Þ8¬’Eë"N‹´±*ilŸ3–VžVºŸVFo©àû²ž‹zªn&³H1zì¤Ö’O8\ðà‘Sž3Çÿ뇛‡ëÜìn¯^ý “»úsé¼T¹óœ&7å9?§Çõ95î,§ÅÅœçr6\Ÿ3áÎJ\'Ip^Êâ±$^/¥ðÎ¥Þ©¾kÕò:?\Í«{ºœ×c „:°{<0Wðòs%É~®Ý•*wíKHæ¢ªŠžWc.™‹FvuÕÈC5#«’‘ FvÇTŒ\Gm™¶½ªõ]ªÃñ¬ÌÞƒdŒ^þæîí×÷7onÞ~ÿâÅ‚º—_t¿yÇo†ôÍ×W×÷oAö—w·7Wß_ƒâËoãÆ-;êM#8ÚèÜÆ˜6~¶f‚Šè{ãÙ6Cˆ[€;7õÔ…Œ¯*ÿþáÏéküïƒüjòÀþðùóâ×ÿ‹ÿŒ)Ùüzóoÿ§ß¼NWþ–ܲ~‡úQ›78ëÉÚüªuVϯZzôËæýßâ¿“Óû‡ó›W7wo¯îÿ²ùBþÉîîîvó‹Ó/ót¿¼x}ópwÿrž‚%yùíÍíõËß^¿zøåæqÁÇõ¤}•*Û.i7â€,æFàbÂç1nL [l4'C¿ BÁF}œ d-NØ@w‡¬¢è|„Ö¿1ÁáLÛOÞG3@ ó èöØíŽ;÷`§\;lÎä¾!ÝWEl5^EcÁÆ;††>bìÞôdŸž<˜)â '÷¸¯z(8#2 0ß7nƒµàÃußù­‹¸±§Å"y+(­£=W‡ ôàYn ü^n3lÁ&0:M>qNðî‘g VáЬý+.ÿŽ·0&€±˜~ˆ‹W³È0Eà“4½Æ)àZŒÌ +'Ù­Å_™Ç48@‘° àÐt¬Á€¬ [0œ`ǯˆq =&8ˆíg¸-§É 6ö@#2/ÖlÇÌmŒ˜5y³¥Mz¢gûðU‚Á}&°ßIÞ—üï&çq˜ç$ô½† 46fƒt±t=àÊY¦&ì +ÞÆÒÊ€Û€ê1 “ëÁ1o`ãàéU0C`ÍTœÁIkÇì{:¬0¤q‹K1$jp}!!V~ÂC Æöm§ >õGŒgàÝÖN‚]I™&#aÕ‚ÞÓ9Æóým^aM”ãÅýÆ‘w4BŠ´4mAˆ¸ ›‚‹CÁ÷¤‰´Yò«g(+ð’\¬?&`âm^ñIÀBØ9xÜÇ8IpxH Ì,tÝ-}%у!ÿ€=Љ‹½ƒ8Å .Ò $£Ÿ"(rX.ƒóûpm¶`ð ¢Ä9@ v€.·k5€>ñ®|@‚™$[›Ë9‚Hä`؆ÂTñ£IC¿ëA# WNÜÆŒŒ•%Ùl"hŒ؞=Ö¹bÄxÆSçl±Ã@C"a8 Ó8˜{ í¬@ØÓ`a °±.ÞäèêüÆ‚Ù!y8ϼŸÆ¾·týðŒô&Ö—àŒ›ûl +Çî”!÷†ÈìH¾NÖŠ…GÁL¹ T€¯q ΃I\ɺ@®äwpH5`3pC¦3°àÂoí4„¼µz Y©³*—8bðNxP/Þ+°QljLpó +¦4N˜ÜH¢Á†…‚ãaO€?Òø‚Qã ¦ýƒ¨ñàË“Üd±‰ _”×ãI£ÇÔ€ÞÁ¥=7 H|‹Ý‹ÉÃ$ùÞÅØÀA[еÛ8|€7g½<*9#±zî´Éå'á2=Ñ€wYcÉÈ oâ¶@X¸ M:~1C& +‹|‘>Ëcc±xø”¸fË`„ßg9LÏ;ÅŒûcÙ°Äq"CņuLp%æ8…–#A‚}Å$ºŽßöé ÷ô r ª8j> Ÿ,ÍœØ:–Äq£âu!!ûñ +S<+Œ?ªÒH¸ÔMWCÏbw†Ì—;˜Huõ:LÝDö¦¾ï! ¹˜ðDã¹WqPddªÎ +§Š’Ù䑀ఠ8ÓDàÆ }'©…‘ñ ’­ð¨0 ½— ò^4pïnnH>`÷GA1íšw/ ôö ¡jÑ”B ˆ¬ÐCʘïôk¬55€ +å’#mlvßã/쀭ý0߃’ÆÍ L084´“:òÕ'Y#ô¦ܼð"f Å*Xª¸\kKsàVz=0p§Gê#ÞüŒæF¦ÞãbÒˆ™{a ÉÉð éý˜§Y + #VÝrh/(r«2lvä5¸õVê[[+1E› FPÙ¼‰iG56fIÄž–P &˱Yp –ÿèSöħž6A˜€¸'ÌÜ< Œ4â + `˜÷`ÔÝ® €O–oN~s÷¬{wÿ¤ô³õæ mœüöúêö×W÷7ÿ“7¿8;ý²h>ß~wwÿ&}•‘3@öë»?^¿<ýrz‰ùæá/@ÖûÇWøÚlþðºÐ·ýô]þbÎó1n~ñËÍþ×Ïÿ·2æsù„' +7-`«Oà†›¼l¸ü€ Š¥(À¿Ø¯`±Øåó{=Œ v Ø$Ð|Ø€¿ŠÔÁ_ŒAš á‰=WoéDÃUâ=Û€o ÈÍHÁAX‚ %Ÿ·³”òx<@;Èo€"ζZ…ËÇt»ú*ìDø„Ûùã·ÀPà¦ø4ëäµ&ƒ2é¶”0¹ùvÃÀga×€’7ã°ÅÌà*€&È:làH.ôzà†d¶1N¨ØŠS,.§SÂN˜\Œ•ïøŽ©C¢mHÚ·”㔂ح aúþ&¾4ÄjBó–Ó ¥[-lÀ5·Øu†rÚÁÆ,86¸Ü LL:½H$£ÛÃb‰”ÀÂq2à"^ßÐê7àåu®¿ ëüº‡ò^Åq/qAE‡iœNr9Ì–ª'Xª8áq=y5(8 HÀI¶ô¦Bœ‘ãÍ/3R¤a¥½ŒJèyÀd€5l0°l¬ŽsIÑ ]@³Áœ°ìQ¦4È–€ÆÝÀ-ñLT ¾ƒ6ˆ³L?¤ìeàšŽ–F`l Oe@ôR¥Ûy¢wff´¦Pn<ဪ©M PJ¬& Š}4çväkcße˜uĂ΂_PªâVXr ³ÍDŽÎÅÞä«`–¡KN܆˜Üç, §ÉÍ?ƒÁ»ìLÌž:Â+T‹2çñ*^OñÜ ÄÒ€Œ‘ŸûùcY\pB!BhGTø×Ä4¡`A#9?÷Ä@«yýE`fÜPnW™´_ ¦-5¼¨kþ¯e²dí$ÎeŸrDQâÖ’1ºÞBÈF©ï;è/F"YpyyúKе%Nå°!˜"éÇiƒí@‹pò¢ÔñNCÑpSBy´y‡´ÆÄ²#5èÆ·ò@S¶Ç@>Ò °uœiGhŒ8P9`9c|î]^Gì>þ޽ôÁ“±ÿ öA  C^Å-#ûI¨‡ZT&€[¼£·óŒSÀb$Ö òX.8ƒtƇ‘°p7hã£"(À§6Žì [OÞƒ–÷ãøÄÊp“`÷²‰f!×í&h½éÑ }°èÁ†¨ÓžMŽg€PÀñ°Çpûžü oÉ>ñJó›ÇYV°å=µ:Ö&ò Z©’â‹‘Ÿ\/ ¶0Ëü"deˆ ì„Ìê¥3ÉÎOzÁаA›ic=†LQÈÃ奰b±*,z°nh®D[ 0 \CÃpÌ@“-È\Yæ ”uaEjÃäQ6oL7d.©‘õ¨Ð]f¿@ÞÞ;‘B]H>xr‘Ÿ &h¹#‡ +=.3PüA×8áu3Wõò¸-5Qð5mg^ö65fÞÝÐP“d I€c£DãRÑ] Vœ‘'hì™d]hГ—ðù²pr÷©ìp0™aP9˜¥„aš ;¬* ús˜‰‘÷}>ŸæCpËiØS¶Ì––'ÐX/ȳ)N® ´ jd9 { yKqo†d1Eš˜Êôsa1ú>-¡‘Ö–bÏ!¢’¾¸E„££ü„$ÄohGâôB±á•¶ã¼phôÎqht@àVi?Ÿe«p¤Š ›Ä«&>£ý1²ˆ8þ`@G\¢¾ Ý ¤Ô_¦·Å–Ŧ•Ô‰Æ#äÔ0¥÷ù¥L‚70/:ŸÌžŠÓÅ<ÍéöõÇËWR_–xÚ +À{ñȲ”4rO{(H(b‰s5]y_y ŠÛy’Á °xeOj_,ÍÀ–ñHP#z·X? -ß‹Hßì—ÚSs—/ˆf‚à#µàØ„aE;r3謼Øñžâ8—–†eßcÇà6…F!òøjh*^Q6&¶HNà•Ÿ÷¾ +2?eÿxи4ªžxqµé¼¶ñÞ³“dÙªbt&/FW°ÃysÓg¸\ãÄQ¹K UÐÂȘš=÷ðäý–ž6ZfÈ©3¿ñª†F ò+.%oÎõæ›CzͼözOH0Ò€ [¸!ŸßSžÕK&ÿ’‡âþ[Z° +Ã…ôÉVlå|áОvJÀj P·_ru=/´ðYºXfQ@‡7ì@\áÁ§ÚiÕ”/"r˜Ç.1ç¬RY­ø¤ +|‹Æam4vB‘ºÚRò*+ΔÏãÆIÂÓ’ŠÙ³L#c‘¶œ¯Â†ÒÒz·’Ñž ÃðÍ¿i@(’Ýô&1ÐjQ°mÁ޶iÐb†6‡´š!®±SI=mà#,%D€y.åGy&üDé7.¶eh—dž¡PzëÞ[l…›H‡ÑðñP™›Á¶ó–è /Ž›òƒŒÎ¸á1ZÉñÔȘδ_OÒÐ:ÓŒ=5 +Š,pï8Y3cGõÅqª/ N¥©žfs¼DNU-ùŽè^˜hnƒùê!ƒgääc†Î\ò²úÏ/ŸÜÎ]Jƒ}sÐQöHŸóf{ (üRe©ðÈ«ñ=Èk¯<ñöÖ“¿aÊZˆ§€Lëd ä´•](‹džÖÌ:BI´';VQ•<©†Ë‹èWX*Xœ8ÿ°w¦Y-ã´c`\{ÜË[9qˆàÉ }[äܘ‘¦¨^å‘.NnÑ2A›d^‘,c_ë¦@Kà/Ü n¤b6k´¼ +O¯$ #Ä@V¹›Æ@›ëÁ/šú³Ï¾hÝô`h-ô`öb—Lj:9v<ÐûHÓ„Vº=„S~úof{}2\†0¶Xh—<#´÷BC]Ú?@ôg8¼o—t˜ÆÑ2»·j{cqÀ댷ø²€ÐjLGø`À¨c1›ÝÒÂÅšTì,IÚ18›Ò.ú•q†þRÀ8K‰‡…³³I‡Ðä°¦!³ˆÂ “l}b«˜…ሾմ>ÁQTÌæ&ÞÌðeiIá.)*úú3ÜA¦-ÍZêªb £(€¼àPG‹ù˜Ígœ7J³¥­óE©S sâO’Ó°éyñpopÑé«®mƒéí°ª¡·^ÀI`Ú“ñÄšÔcÒ  fÄ|D*¦n-Ýu@=Æ…µÆÜ$oªÕ²¼Ž(Z<¨Ð¦ùe7¿P©ø=¢Hn#TL¼÷B ïh8£ù-ÐRJç ¶®aÆAÔ›=9žŽÁ§]4Š÷±¬l±ƒOØÁðŃà]C“©%ÝÓ¹ãdZ¬³vŠ˜Ž4b«a[{asÀø–·§‡·—ZAôÒ’0¥€ç jøQ^ü9=ŒXz—ìQDsŒ#Šr¢5ã¼@ÿ±á +Œ²²¢\<ƒRØõôYš œÃKÆì‹ª/·,±M'ZýdKTF²žˆ‹ô5’+dÏ +þ¯š31˜äq9·šP;n—ÉÌ{£Ilj5訢C“Ê>á ×+ÊA,ñA–u˜4epHX<^JÜ”)£¦°œrØÒ{X'^iK3%Þg¾oÐ6ÏGð¶½ã¼*;{¹5ŒãÿaDŒQبÝÖ‚_0Ñ›ilRLÝ.øé6qÞ¤ëÍNŸÖÌÀ›Âè„! 4’úV /:†W ô ‚·{*_q ㉯q>nŠ3©˜ÝöŽî?FÔhÞGeÊÀdŽ=õÕ&¤ÛþJÅl Ûä©ÛÕœš^t(zЄ<Åí]VlžFnaDWåFI:d¨ºÒ!ƒG-`°Úà(³°’J˜t¼¥Ã­™ÏË…¬å}Ö:_% uMˆ¼5ÞLPIP¼Ä=jÄ>öÜ•ð5¤a¬ÀäeY-» [ŒÂ‘øây µèçYܵä[Á“`Ö˜Á€0"©ÆtÚÓx5yº”ó8jÂI–@“Œfè^Ž ÜÆ…3k(• Áà(¨Æ¬Õ8Š›Ñ'O3Ø$·†`ôÖÓ° :î'îp…àp»¸†N$Ÿ Ü4»²qgË]4bsnj (nòž®y-KOáMn}™JÞ'÷'‡„_\Ò8I×0Eãc‘¶H±ŸÕñ^32a’ %Ƨ9ºF憎îtìÅ8‘ýbóÄYb¸Ë@Í›q ÜÁXÄžkL•1¬'†ÀP¬1& +ž©•1}F­Ë‘R¨MŒIž™j­ +’Õqåpú~*¦¡¶é +n2Ðî OéxÁº{¦: ”QnÉü…=äd¦+íWÂ*±1% S/kå™ì‰ör°'PfŸµîM&ÌhÜÇ2ak£´vž!‘*ž E‡ª”~2zº ð$°Æü ÚdÀ8MR<ã4­ðÙÚÚÀ˜)À½‘1SS¢6V0RÔ‘ñƒ½M *d°2u˜IB™´„#^b0ioGŒUàLm_!?hm‘ÁnÇð·‰) Ê Ã3È9x†£a/Á®Êd&Fl”ý7=s¢{?Š*S›Ÿö×Kh(K\3‹þ•õ +ð#ù«j{¿0IpmÆÁhsÏè±U)CzúÇÒ*kÑ–s8I¤™ž2Ôѽ0Mô{Œ‚±+3N”XγQ.mƒÆ%ßI|ò¸™­‰˜‘(’4ø– ’÷2 ò Œ Ë*ª2aâuDÖFOÆeÒꇿ ÚdÊ1 $aiéZY\1 P¹PJ†„¬®mµ†5„êœ ±Ô–^‰¸2±÷¦`¯ÊNÌÛ`° ¸CšüF™˜1P§˜D£ÒjyŸ^"2ÏXmßf8*ð‰sꉺ”io‘l\µA]`¤•H4ÌÏèf߯ÊÏØÌÈ01dDµ)_â2Ú‡­/µ#€Ç'`Kôe •+ŸH+Pän´÷JéÚ‰{J9.L4Á`¼L¶ Ôn C™Ú<0šÚcÂiH‚µŸÅ„( üy +ß®½4äR) ¿Ç˜†Sˆ»ÔR»Ã`ÈLã r ž±§£Œ¥í(R®ÝRÕâÆÄ ˜ûI{³@©ÀŽ€'&äUΰú6ÚÃV¿ˆ>£5 }–š˜Úù§'·öX$q8–•UŽIEř٤©âø¬è1{Gk:VÕÖfPþXµ¥jO®Ú•Ê|`w¯ÝÈ…7(·³b+ÊkÝdOÊé­Øœò—+V™ì->«óŠ]+Ÿ¾âø*$ )9TDA-€t,B]:‚¡%ùtD-AuèD-|UàÅRvëpZô«HT H†¨8gJdJ@*Œ¥‰ŸTŒÂa*~tÓÄ*fGáÈåS§ + RÀõ¬PTp¯ +CR°ùGy­*ŠIÁï÷¤»Š–j)*ÔJé*JKé"*È«©Ó¨1¥©ð2¥_é3Zzš>«R÷J4œR뺦¾¹¾SJ«ŠÙ;挆ÞÜ8«R»U°¡ÒØ«HŦޯÂõ]êIeƒÐ‘–-[FŠÎ,öÄ©L'*´i‚Q!¤Ê”£¢O•9h^]‘T¤«²A© YeÆR1¶M+˜ +ÑUÖ4Ü«,r:H¸eÙS1Ƶ}P'ƒ¢ +in™#U@t1fªje-×M#j­­l±%¼[™qUPxˬ"Ê‹)¹AWFhÀ¾0a«¨weWóʈ®âí›Æx®¯Lú*Ò¿xT~@Ó™ /¯*3A96TbCÓA¢ò"”EçVÔ®£ÑrñŒÄº ´ÈiÉ·U¹ŠdÔDÇõ ›®ò6UÉ31wíÔðZÔ)SŽ­×Þ/À—-¡W´€Ô¦á@ ôiH7–Ž›|Û‡¿¶¬´™Ýj´;O0$mòÄÌzV.A& %´J¶N—LíZL‹Ä‘¶¦ª8Ê1&°m-LìàRû9ÙLA€0Ƈ—é½ö—1¬1±§åmïj…ˆM•Ë)–¨¥ƒV_Uûwõ“k±@íj~Õœ†Úe­§³v}Kôx½,Éo^¯fín×4ÑrÛ+Òª½ÿŠ:Kà€"îe¸Ú%HAo«:¾áé*¾7³Ôþ^ÓÓJ5Ý];W5öCŽÉF[d Ì—wÔ_±}œi_Ï@pI՚ȆUYÀ`¢ +a©N³ø‘äôYÒ Pf¨6€*¡m1BÜN=Ë%è3„ Ññj‚Øg}ë>L¸%ÈÆ+ÐÇW°Lõ¬C×ùbÓîO†j6 RƒÞHú‰z (8‚Ž©7‹•/knÀ…êUÍFYj"Hº“í:¢M_]qlý5³×#i =#ê>jVk¶\‡Ï|÷ß­9R¤ÑÛev[}90tVò°êº\#•ƒ›eÚ ¯hr×ýU£Ù?§æ@ùí^5…Å?“75ï£!Å4„@Øš¡„ŠkÎ[®ª§h~ιûÌ+Z£åØ2쓤½÷k jc6 CdѪò¥XX­j²^PÖ Åc +5+¥ì ´Q¹ÀP*æ&iãd…&0öÌcËrbFn“Œ‡ú“f‡)&ÉqXƒÆÐ+Oñ­ìÄIÊb×mÔ4i5•j)$±<&ó¶xãĪæ PÚ)©ÕœªÕ±¨©ZºLM¤6EдúIÖ|6ÕæÀX–¨]²¦˜på¢h ¸<&_.ѬÄ%LP¬‡ÑJxúB ëÏAÄ,"Ï3rÜx01º{##ŸsDŠÓ`þYIìŒÉÌRôÓy/  ?E6L¬Væšèn¤?z<¦Ú/=îâWâCã>P-¢LIý +¹ ]{qLn,o@,¦5tƒÐ ୡ͵1›ŒÝã,0vo¢}¯µ*<ËK("”“dM©»c›J UôÀW@vŒá 5µéŠÀ¸=d"kúô1W[b¡6EâŒU”:TޥبÖNñ´ðõä݃˜8õŽótQѽB·¡%¬ÞµóP[{^Âéᣦ؃*ÞÁúj)ºnÂëû=Ûñ’§'¡{ ·éO¡i‡®R4Ìò4UX$ý6¿/‘8 Û…>@Ì+«†K4.‰GX(c ·þÊÖ ÷B2"@ÖTÐ#h—¥6±™¡»#¥“ºÉâªÁˆE OÉ +.?‰…5ã$µˆƒÔ¦àöá/‘iœè^ +3{ }`µ™tZ¹ŠwLçÀjå16¯ y› %S𷸜 oE—[1&&ë †ûJM )-<͆±,R©ºg`¾MWK¥\Pú …:†T´wÄðzšX©C"Ú Öœ±ÔOîˆÒœ˜·ý4&éT1I‹é3Cñ q¸g°³®ÆÉË»yÁ²~ŒŒxÂ0/¼—Ú ó$á õEƒH f„’§žå¹¢[¦áM˜7W.ǹºt ÁÝi˜ ôkbèÞÿ´ça’±á cCˆ¹¦\‘³¾Ô`J˜˜‚Aä—™Ÿ<>¦<»ì~Þñ28§0iÌ–ñ}”~ŠFþªr¶Hû8ƒ¦DWó¤?u©Ë@¬LM}îÈØðAŒßRú‰ðwb@9°éhÄlÞFªBôܶ€é¬'%QULÅœ¼t¢ÈP`zŠÃzyQZ „ E ›J%1 Âô^žlZ¸¢—Z§¢V‘Є¡lA@Õ´›ä~Ô¤ê¸hŽ$ü1°5¹ª’rïÅÂäJ¥*Æ 28Ÿ©š2DH–HÏÀ\.ƒ“=:†.¹lž¢yŸêïå.Â߀¥ºÃ5pœ€Ç;˜Q¦˜!Õ8.Lu*g…%éËû´”Çc?6ÞÀˆ¡€© +Lv=0Ž>ëˆxZö“À°Y¢†øLVÓ ¹—F$/'ŸŽgZˆ=K·–ŽS$½Ò0É}j,?¤!x6Âh”&±ØcØ<ÌH2UäÈ"ÙL´ £¥2…ÔX§“/2Êháþh\%2ê‘8ný`(@Lò¢’£€ÉÁüªC()Ùj"D‘b™úžÁŒ)Gf5—Tªœ„~@[“W©ÚmÑY\%=§^OªbØÜâÊš’gaM¸Í”nÃv5±AO&°áUYf_mM– ºgäÕX&ÀhÒîé`æäíZFJÆ®³¼p)ب$Ѭw˜¾O½Iõ»Ô{½=¦šS蹩¹šÞšW5WIñ<µØŠo*zQü·Ewš×ôÛÕ¨åFqÐñ]`¾|ÿò·×ﮯ®_S,®ÄàT—fÕh Î- 3x1JZv«u‚Ê „”,óª Àªe[lоŒ +tʾ­– Þ_\®ž Ók—³ÅŒ ˜+Ñvi˜‚0=có˜Í_»4R:°ËéÀyAW. ÃèXpgÚ. IÄ“'aH²4•KCÈŸ™à‹‘~gåÒàƒòÌ[™1íÒHå)8/`“,X\TÔX²ˆŠÓ¼g—·wÚœÌü·m—S¤òì vi0’5—°¥ÉØR.§·ÆOviçá>Æ¡‘ìï}¶¿Û¦ýs-u í(iÚþŒÕ•¤ƒÍ ,¤e9 öÐYÿ¤‡Qì3×ÏJ"ää¬<Æ—ñ‡ÖpeüLCûü¾óŸÇÑn'&Íç&J–Y±S»˜€šA’8èýôºô°•x¼ž,,$•<I'HŒš/X=ë®J“‡>—2ÈÄq,KÇvÂa.œLNœ3±§7ƒÃ–å–ÕU¥H3Ácâ)0ýdæ²ÎäY½\2&¿*ÍÛ%ôhÀ"`¥€4HC'wßEL åQ!“n—…ª)´Ý¢{g*M°<6Èe°ßѰDfdêõ¢v¶@»‘æÉêµsÁmòkÀ?Ÿ:þš¹B7ÍIµ´1Ù~UÖ[D í¶RK&õ7bàÀ¤Éæ¤Jƾ×€VjïÈ.–%Ç©t0XŒeZ -T¹N9ΗAÄHÔûvb¬k’"ftbŠu«º€yÜz˜K©ói‘º cÖbÜwcêUÊôßj'”%木? ©É”w§Ü“¦w¹ü{¤>aÒ!¶kÇ+ZJÏSX&­ ‹î¤R¬ÞÈ/´§Y ![•¸ç;ÐS!5 Ùh·Æ'†H`…öÁwJ)}9žå]À4ÅÖªÄOË‹BL¬ÅÉR¥?-žô*á¾ ~»oÀ7aq!¢'Ý 88¡K h÷ÍÈ9dnI=‹\ä¾ê‹eýeR,Yòƒ…ÑhuܪåsÖ•ØX¼yX5S1Ìa‡²È]¥«>pO•^ åïec‡òYé!ªrÏÉA°TéÁWã³Y$2zÙm‚S—V˜-¦í¾ƒ‹ìL‚h¡öt¢¥¦R9bB+,´è„!…}èÙc“ðÈÞ¹5 ©wä奪^î¸A +KDd%FwÕJLŒàRnDZ—ìXš{;¢È± ]·ã +QA‡D©3aî#"oN :ßœeJç&ð ²%YĪ] Óg\ 1s“²~Q\Iár·ÔÅÒw+¼ÔЛèV­TD^€ELô&ô@é¥ ™¬èsX¿ž[³´l¡BDß ‹˜x–![6z¡`»n\ET·ï-F0J³Gé#Cˆ.éù˜—`…&ææ3|aAê¬N@ÇBnXÃ'ûž2`UZyç7œ.¶®Çt‰oaÕ‡ -VƒÜ;G*:1°•¥ I?¥Û·%Eç²5iŽ•RIs˜ë}1>R*zà‘#Kn—@6·‹Çòô†Óeß $Ö¨˜S¬ù}·!©rÆÞñ,µFäUú î§Ïo‹ý¸lj$~ ÙFÑÒ+V:!Q9d})*‡„¥s’x¢¸Àë¦u'1z&ú;ŒÒ¥É0¼Ïϰ<]|¹¯+‰ÆGu‰FÙe7(Ùâ¢ATQÅÏ-¤änò93¥ìgj9E+€F¡7ùE›*Qª{Hbeÿ¬ÜØJ©Ê¥–Î øœ×aÕ@ˈ»‰™–ŒKþXú+” +© HinÓ¥¾X6÷R_¦×˘*û8/ O©Ý,0A%™½‡s¿1z^’Y€U|èG)çc³2™ù§AJá¦ûׯީþr 0Îdù²ƒI" ‰e[X”Ñ~ëùÊ»n„r†}Ã1†\DÖþ¥á¾á˜¤ÕÐWC”–+Érkr/V ¢¡®¬>ƒCä Z-ùÊ™\Xæ…À†e^ V$†›±ÒoF|µ'Lžíž‚‰Ædج9™ŠîSE½y“°M€œ˜ââæMŪ`j„±†o¹YFƒñde׊ԜæÝMëT–¬ i ß` D2ȳ±o&®úIš°Ó:­ùߊ+'¥èÃÌË€ôhÓž™ž $4—½¹{È]KcF`¢aß¿‘"y\µz¤\;Bi ‰iœö,>ô"nÖ­&ÓÍ})é‰N§–”ÔxȪɥ߲˜r‘^A +ÞM³”pWq’³ð4%¦[··Ì¦ý¼‘¾æUÛ.jibœNEîæ¶]†i’ºiëVM»&V?’¤ð„RšébÈ{…5Á*C¨I(‰“n«ØQ +¨äšÛãôX+Õ¸1Bê߸€JLŒ`¹ø‚«ÎÉø±QAvÄê/V°­þrÆxD;änÄ{0h}R^¨0’»­ $3Ù÷}·8¯Â×éw§éùàçKL[9#a†¾°ùkÈ1­kÆÎ¬C7²-zO·Ë¸ÜvHÎ ––4}Ü_Ř wG @^û\4®­X—LϬ:Ýv¯M0^h¥§ß3ìõÞçå¨ï¯sÉ7²Á%¼gVu8ýôm‘_Ó;+GŒ!þ:1â@f¾ « 3¤†õ÷fÍŒ(%Ó‹æF5¶ð¥š‡¥Ã¢h‚“ 4Ec¤v)’?°l;ƒPZêfB½nVR­ßK´¬(³QJÛ•â Qž37Ù¢¢ßÛ}o-—˜ÀR÷ö4«}”NZa+5/æ¶àФâá²u8ã®Øe9·ét±³AAè<¬l`á–+Y ÁIðÑÜݱHqXY=ëLºq6‘°®7Í4Å–dG\º´»”Sö­Þ!¸§½5GÆݺ<Þ„\®˜‡0YNeP"__i`ˆ™?ÐËŠVjR¦ªñÄwsþs(„ÝxÖ «øD³ïSÅpF}ªAÂ`T·bd¾cÐc]KäSé@Ťñ×´O¬!†F¿):ÎF{ Í”a®]Ô•ÃD’´ªèX¿ +>›O+Í£ÊýTϨò­VQó»Wõ׿·Cå©Ñí Ê\Öeãæh6Ê˦[>¥åÕž2-4KåeºQ…öfB«kôi:mÕú›É\• +ÌûAWÌ›§]¤0ï4Uã°lIU1oßfqÅù¢\’±°]Ä1óf ÈÌcTÉ‹TñÉÌ·V+gÓU.3œËbf.Ù쬔9ªªÄYX¯î£”ùt»}Rfêª^háþ¥Âh‘­²¤E˜”Z¦EØÔÅOµ¨jÕP-òM•`ÍrPo-2³YûµXU:V‰dU~V‹öEõZTÍÛJ¨²¹ +ˆ4Ëï*£Êø*T*ÏÀ©U,XÁ-UtX!5U¸X½fd…÷© ¦*ÅÜ8£QÒ¹qVUºâÆŒn–¦V(\U¸V¾®­Oh•ØÖgÕ¥º‹¾¡ª|+-¥Y-\)9ªê¸RTåò¬SµÊžõKM/zš*³^évÍGJ/,µÞ•6Ùìq¤”ÑRi>+­ª"}Öo›õì‹.<ÁOš²®šŸÕêvÑý¬ƒïKõ']ÕôÏú|»#@Rýu;¢b"P­²9aÕÀ T׃b˜¨&ÌVŒV¿…Ùä‘»4Ô¦‘º½ƒ²«4»D(³Œê6Q 9ªQE±ú´Ú\d‘êŒQ Iª©†2?5›s(ã•jòQÌ]¥-ˆ²5›Š‹šêI¢lpu[“Ú€×ꢌu‡m6¬:³ÔÇfWe¯TMa”©³ô“QÒfe^UÍl´Ù¶nˆ£Ïh5ÖÑgÕVeˆV¢›­‚”[ÝFÇÕ›¨3š#Rg©™©íözvk³ÿUª¼ó"WnMµ‹¢MfÊÃQkíQä^;Vš›¦v˨W;tôæ­ýAí½_y“fÎQ{Ÿ4¯©|Wm–U{¾ëSN3Å5•Ï­År•ÇN1låìS¼¾¸Û¢¢v,*‰S<‘YBi·eK®i¯g-µ¿´–¨ÊÛºók¶–ÙÊ™«Ä½ò7Á‚r%+¨¡¼Ðœ(ßuÒ(Ï·BDÊiž!TíhoÂ.å¦W Myø ÊSqÍ~B*ª`Ƙu,B³Ÿ +eÐ@·Ž‚PYQ´¶ŠÀPð\ohˆ_Ç~´U…:tD«9ØD+)勦ŽS¾¬5¤:îE+YuØL[Y«ƒn´ÒW‡ësFKïÔgÕúkf¤Uà:H©­J×1Nú>ux”VëU˜UÓ?©lƒuôeÓ²X‡n*»¤ +úT&M3Ú2ˆª€ÓbE-‘©ÊܪâY6Z«ìº*~V™„UømÓ ¬¢w•=Zþ ¶ +nÚ½õåµÕ¼Ä'+;»ŠjnšéUP´²òëÀêÚA ´[þj)I%Žü]*ŸV~ +,1ë¼öp°’…í™–bÛþ+5l™…Íz±ÑJÈŠWQr ÀvÌXºY…‚±ÿtë7Ý:Ìj—ú'kÌOƒö + „sàñ"Sj‡qT‚¬ì î¨øÄWUù°$GHÜîÞA%oŒ×óR´Bùͬص¦ÙÁf©²I’ù°n4Ÿ\;íôsjßüš­AóØjߢžšVc 5Åɩצö~ê5n9O©Ô®WEmÅW«ˆu騭I½8õ&©½ÆOgCðµ?a?Ј[Œ2l ‘â\öU²HqIyqÃÐûFg ¦Q²õÓ(ÁáÍHVD²‘Š í&´ €,õ'–ug¤-0ЛtÔ '¬@ì8(8}XïU}qÕëB¿@Ý/C¤ÕwCOˆºšÔºÈÁ5ùLÉÍÖ&7³mv +ÚY5êÑöÉÔâG}ÞltøêIÊ ÐøgœÑx®:£ÑLGŸU7å!ò¬œÁ™Q7öÑïØjD(D)q‰á›÷ÉS¨_áÀÄ¿úL¨-Bed¢ŸÖ- ¦\(Õ8 +—õ F$ Œ9Ð÷‡¬#ÄFÛ Z€ÂÔèò3¦Ö'«qóÉuSŸr{Õ¸­¼T»ï[Jýå<øZ®Ô3õ™óà|5—X4íQ_–f:Š/”ö;ê‹eÓžG®J\`ûÌMpæÏrÇœÓI=v4÷]tæi°¼rU=ósLÐgUM¯£]7ä¡Ù8™Ró÷<ÂHç ¶Ê0úFS Ú?GÑKzZ |»9M“†FOË[ßèÈCSE2ìA'²ã¤ûƒÐôgrDµRIéKJ5åÀU% ¬îR"¥×hç+i©nt’laS²… ñ@#=àºñ +Ÿ$µ9%¡ëž-ÉÎÉv1=mù®Ýû…ï#÷«[ÇÐä‘JˆâÙ.4Úϰ>œ„¿ŒXZ±ÿ·ÚØð,¶wžh€dõ4ÕGŒ"âeûÙØhÄ£÷q«Ï’ +†›®Ñˆ‡3 ~•ÑáUÌÔzú ØßËgs,ªÓ`¤zŒ£{·15˜M1¬c6Ó“Õô2¸L¦…åHÝÎ<•§¦ cTŸ;Ð2ÁH _†¡c±Ñ2ÁˆYÂèrûR Ž!^¸´w~]¬_j"{áu,ûÚè” Núq,½×&Lˆ¥Œ%?¦ÑX€×ˆc|1$7ýº=uU©Ñ(̪ÑA#äEêÇR‡­Ë‡<íCR7T½€K5ǨŽ1DÍa YBÒm?t xQØ©1iôÜ I„;Æn­æœövQÔéCõ“Âp„“NDGc± È“$Õp A‚aL)ò¸H­Ñ AA&NC®YÈ–õYRVbͺ»u㢪8¼~p]`^ U¨^OD]ð^Íe]3_¯D«ö¾^Ѫ„¿&…º €¦¨V7M˜uWMÜug½7ZÔÓ·©7©~•z¯·‡”„šÅ[êIUœ©¹6…±©¥UBÝ_Žª4Ðëh4j4šc¢Ý˜} =’'©Ns¼Kà}&¶LQæ$wJZ&p†}£Ó\½{κë4'åêmŸÊÕ³&³„àúGÍ¥²¬†uKzŒC·ES×´û¢õl¥ÃPå™}æøz}Š·]ûÿO{Þ \͸:oŸ¤¡Î¡FsR›• ¾góè¡ÑGïØ2¢Œ%ÀŽÚæ>ÙýÇ"C=ª¥Á/^ IjAù8ùŠÎÛï7¿ØíN_½úðæ·wW<7±øãš"¦¿çR®u·°L³US D '̱ìYm“<æg$Ø °{Ù‚ôlœMãµ’{™D0Øl2‘ª'9ƒ†áÈ&)4P´23x‚Þƒ[$æ+°©¨´§ìcðŠ<™YÐx2Ù/Πd6ä\Þ;¦Î5`!çt‘ß0P ·a¶.îbR^e¡nÖ¢ÙQ˜;' -be‡¬“ªK¿—Ûf˜@ð’Ìë"ë³ÆÐè´yrKïoRñröÂkFéë32)sp`Ò6w¢eÙe`±È KëH™‘q›&BZÚ› aÄäé†!G­ Ù¤h žÕ–\fµ`l÷hSÆ(‚—J*ŸÓ‰D<Èë0gÖ@ü)æ÷á«é¯Aø˜^*_˜¢gŒyv í±æ{àŒ6W@+÷ÈË![lê40’ÐJ÷<&r²”óHòM¯ QÙðð&á‰m£¢DˆšTyÿ¬&q f\]E9Íw…=Cig#3‹ûÑ -”ÉÁ aÄ·H+KÆÆÑ±e“@ *ABCLÙÚI°L¿YٯईÖÈ6ÀØí‰‹½ +Rr…¯,µgãÁÈü â0*Ià#óU,@jyÆ®Ø8‹•ì…Ù TLœº[÷ÄöžQ»9uH ã×™1„™Ÿ¬$ªÉÅ$·™jö™_ÁÐpìIF‚EcsvÑiÇ’ XµÒu%0œœ‘ùM ÀŒ´­ãÀÛ±K1S´ÚBKe|Þdš Ä7ŒÛd"ÇÓÛãl–íšÔ#ÃñÛ#Ä9 4m°([¨DLÔØ?)uÝôL¥Á¿Á+gŒu²8{ÀLNê(r­ÚÉøUf:`äôäã¦l6à„(¡F1m1ÖËt©—C¯}©J"ÁN£øÔ*·QR›­e:È8&==\<ƒ¶ù ÖRòNêc†ŽlëÖÂY®ŸH-×<©¯bBØàQÿ8¦öXÄɆ‘¾à{[ÂŽO©ô(¼ÑPפCÁÌå…¼Ø&ø *mùÒQÚ°°Š¤TàmAÁ[CZÙí`Âû¬ß}Ó +Ï–‘Ìùþ¢õ`ØVüŸ}ØìȰ'Ëg³yž#éZXW<(7£Zæ똑·ÐöÌʃ”q&‡ûXÉRÁø¶Ü ¬ÛŦ” Ç®kLbù'Ö‚-è˜ 22X˜…µ'†sô*A–V#³ó¹À%˜¦-ga0èÌ Ë +åƒÔSbg +%æZ1–нðÈÔ†AH ÓÎÐo6•7ä¢]ì%¢L12½&2s‰{–õ’™Õe˜‚—ò¼ôí`«ŽtÂÉ‚³ù˸2:Üañ±%¸’¹’–Ï/*ùÎ$.Ç¢Kx@ïpìÖ%\ Ô˜j²ÎHϽ ræÒ8—ø>©Ó²t—‰ìl?”kºQ2¦ð$F¾ iQækIÙ ùБÁä–{ÑÓ±nIèà?,#Ò¸wHuÒ"id\#­hä¼Ä¦†Éý˜Öe% ,ˆ[;²ÏD,J´ä:âpa¹-Öu4.ÐÙ‹ee¬ÄûD[j88ñäF:·°ûq¹!!ÔÀ87# ¶àù&‰~`‰DcûFæ¨F¶!bÒØ@‘[Í‹\ÖäÇ^*óôl[ Yl…S0{˜Nkî3æ–”ì CÖfs†%[šRå+21,ò¯¿Ú‚¸– ã EhÝ%¦%s†Ú&6@Fa¢Áò…é3˜yòcÓ¢>»¦'Ñ–mœ9ë‘õCê„Êžeo1–AøPnG®ZLJ¿ajù0¯=ö¥°=¦¤NÌÛ&BJßÇÈŒ-¤†iϜ䞮q†Ä'0“1¤Æk2u¶«HVi­(%/™ ÀÅ5L3Èy 2:FKD¦€ cQƒtÙc%/:h_(]Â6Hf2óåÀ&‰ü0â-vdù)¦’U@ñÍMŽ4:©•‚3˜{ÊFP'³)ÉÒ.Ì‘q|) +[öWþ +†Ët\ <xFÏ’§„¶ndiO2!{¶@ +,  í¹5Y¤c(e™ÈìqKv¢ÂYžEúÇièÓhWeQVìÕIž41ƒžñp€®¹¼Û$å7 Xè»ÅQÊØ4J̦ŒÒqØ‹ŠI Ö¦Æ^:™± ÉGp ·Ai²‚bÄ% !Gl€£A £¥ŽÆëDK8 u=0zIX~Nf(Ìy/e "³£)7)ÛlZf©²9*ï‚3b22Y2•iÈ‚]ˆ˘RÃfÒÜYŒžLß„¤\ô%’™\ì–Lg”Ëjâ÷¹µÌ8¦ Ñ3a(7—õ‰RÎO¢0³LJ›:yQF[‘Œ0NHQP»ÅN¦DðÃvs„á²j$¿\[7ÁNa€u(f´‚=Ýe£´†ÃãéÁ×£åô1ˆ8²’¸$C{߀*ÃĨºÈT‘Sñ¬É‘@¿¤Y0QZÓpÙ™•t %; &¶…#ôêI·21£@L¡cC¦tH÷’)ů3‘¿L¬ È&bAÊôöR7(:¡3²¦¹›Èº¦˜Gž1$ë…G‰y–±Éi@A¦•„¶šcH÷§þš”.„´G6Z”Òø.e§3èÀço|$“8ùHਠÖs./[LËâ±*éÊÑbîd²zè$œ,Æ¿aSa•ƒT$Ms1ˆ-‹¶‰Ì!pL‡í2¤·b[ÅH¹$?q5 †ŒG]Jßg÷Ê>'ßé³êa²¥öÔƒ›2t„¾í¨Û{Ód+0ÐÔ\Ö×$,ý6Ðþ®] VjùEOVÎr1êUÔ­!é³ê©aÇrz—ð*T‘=½lÒ..O€˜bšËT»6ÔrÓÂ,gïÉôÁê Vº~‡‰e3ZÔåä"÷gÐ…i§gƒh9ƒ¨·AÕ|Áéž5Tlhï yPïåAĽÅÕ³4qyæöøXïN`‡<¥P„ÄvÕÜ㑇*C#Kh^AgNºxYLƒÝx¦îcD`+ÔÆÚlË»TŸ%BÛb(•fb2šXì'``CÐ,ÔKÇNZ툤œk³bZ† Sn´ø¸gY ‰#`¾ºHê$è21R…HQjM "ã%)r¼Âµ–D´QÒSéõe2»’f|Çž0zzϘܦTÄ;¤¦šµPõ¬¢ƒI3KÜkÁìÙ¾Š1i\ê@´ä»'VíELx/éÇ5LÞcUr>ÎzA5Ôà;Ò-ÅJDc:£Y<ƒæ ØD0p¦ ¡MŸ¤dœÁø€AÃ'Z‘RHµ‘ÜmôÅûXéÈÛ³:Õ Qœ§â(ÂÈÖsN#A®Õ¤ Ã2§MDI·—79WU:TÈÔe³ÎÚ¬ÝÒ6ÇŽ†‘F†‘ÚN ŽÅ…dP#ñkíY-$ÕœŒ´õj°þ£¼±“êO´kiÐÏ]JLdÑ( ZqH£iÔ¬¨ÒÐ:¸Á" nQy4®¡»Ð})õ©Þ‹×ú)f„ÖOÊ×T£<Ê,¢E÷ð@Õ<+ažÖB ‘6mk´þ¦Ïhéú¬ZŸ¤•–±/t׊àP:)9~r‡Ó]Njjh´.+³E²Tz(jµ˜4 văŸkM|þ®ÖãÉ蘔DŽtU¶.ã—é_¤Ã¦MoM‘Œ·î)ܸkøXO1Äô†uƒq=Ù>ãØÆ±i%®šc|§³²¶Ð .[ÀGvµ™Æ³‹‰Že¡Ó4÷pnÄÁ¦Ç¨^m6RúÚò$–{Á£Ô®k°8ÅTh¸è>Pæ/:’鸲œyƦcCR–bæXà[°¹ÉÅÜH»‘¶äñ>XcºÉpJÿÚH¾"~ìY¢°mTôYw/¦H:×d-k}-QY1=ï J0X\膶5Ô3ÞN^þmS¥ë]VJÊŸRµÌæXǸy–Ib˜Â =bÖ\ǬjˆÛÈJ¼½< 2ûžÎG63·t>6ìÉļ1KY±ÌíÐôihA‘Ú£2aS(²´Ûº’±i+x‚DaL(ú¶1>A(;¬™f$GBåéîKîZ~ýPÌùïRn#ô,!×tС˜H °‚œŸ= ¼)·o:°H€rBÐ'ZýÈ€€Á·\ú.É B9QÊÉ!Œv pîÙ·§éáä3ê¿öÞˆ×Q¶Vz´ ™æ »›X›.ÝÚ‘”^ÄC‡ôHvÊ9ê³§œ“¥3 Y‹É_ö€-ƒarX]¥ÇÀ¶<#÷¸ùÆ\‘ÌI¥gÞA.³ú¿´Ä¸lÓ̘ +¼7ÐAÞÀF­]; ¯tôШ‘¾GúûX~EØRâ.&H‚ûX›¶¸O•kzÖ%\°éØ42’1©FdwtÖQ±Ä5c–´’)sTgz +*¸™…SÈ4À˜J OrÓ$"À³‚Mìá&t}qq(“±8 .JM,X m'(bXã’Ö,,–Îð2RµQVØ´¬&7ˆ:E“kiv[AˆÌ_a™"¼×–ÚÂÔKðaú>âÙ$ ƒø`)&ý.1¤ì±Ò“ 3zLq’n[¯šS2õIŸîL’ZM- :PÀðT1žê’ê“EŽ€Ò«Ì Brz\+ݦjjáHˆf{F˜L,5ÑÑÒ@ÔÑ÷)ÈL®ë@LöÇ #6Õtï$Žt%îUá +ËÝãh²bp"ËÌŽÄoõŒ.UÂè0 +ߨÇRÉqä¬)læ}¼æôʲZKÜFxÎz•‘ЦgœÙcR!Æ%²¡Ü¶æ^Ž‘ ÃÈjªµŠïñãØ`šŽ‡HAÍal³MG+ÁÔ_cǬšo;Ja¬>¾…Ìœ÷w ®¦—>ÒŸP·Zr8Væ"o¯…6ºØ";ųZ¸^Ž3–[*„Á»Y3\ AÇ ª5}&Ǭä¨c™2Æ9B£UIIa')½ŒÔ–ª„¹cè´¡úK-·­ñ4+J"…&œt ð£«X†j,“]]GŒDÜYF¶ +W ÄŠ +7Å„VC*Î6¯cÆQUÂ`$°dn&Ú‘FplÆÄ¸kŠ©X\ ¹'1¡÷¤U¶“9:55–h5(u¥Ô×imclT¥ ÓÊv +Ì jÔhØõL€`è4C(|Sƒ‰É£WŽÚQМœPžCfGÄVÃ{R%Í0©zž2Vj‡Ê´•È’¯à ùI•ºá¤°$·)n/aЕÊâXkÙKÉg¼ǤTŸ‰y™¤UÑGj JfŒž3Oœ¸QZ˜“z€‘3?0ìXksêŒWYóYi…ú>Y¡äÒ2Ò—9pqñÅ(¡?1ei¬ÕPGà 6Aœr>ŠRzõµî ê—:á’aŸW}¥ƒ“Џc¹l"¥Ç;iÔA¬-ܦq†H†È&-ÜSÛÀÝʼzîÖÎGe’pÜžIgÖkù•pÒȧEy« $äÎ4b³%+÷o”‘…g€M±k\ ÊӦǂ¨‘©3=C.ò“j“cð$-rµµÈA¡&¥€°v4Úêä˜CÒdx"˜ì¼ü+ë•cS%Ãj¤2^[Áø$Ÿx’g• œÚšæè±s*Ã(’a£,rà£[áØàŒœÕ–=Ç`êäšdqüƵ…g‰äbQr¢ eemŠîéz`=`e­t#íW3:XÙ:Ɉ*1´@ÖöRž@M–J€)»+ÏÊ× q¥Ÿim¿uÌ ‰ã¿Q&`ÇTbÐVϲ¨Ê’ @êIðQØ´YŒ×i¨˜<·…Þ6ŘíHÿ"= .’ä€Ê)°eZa#Ã6óΫlêŽÉ +"IÙ¶ø!–vyÌ‹$¦Dö¢MLÙ÷eÞ§Ùf¹r +8&1ÐY¹HuQ@;®&"W^ >7ZnUë¥VÕ»ônð>ô™D üá}j‰¼“aH\«ÚÑ"¯Â ±­”Nf•¿†ˆƒ¥Þ1jih±Q>ÇÒ—KÁ¾ÚÖ¾# ÜøìÁ +92ûÿ?öÞu×¶ä¸Ò{¾Ãþc@j Žò>çô?±,»e˰ –Û ƒ Ëê²›,‚*QÐÛ;¾9×Þ+#·öQ¹hIíšlž=sÍkfd\FŒñTÂøÃãqBƒYxßk«ÕKXd¬*ÞM¬†µÉ Öö;Íø¶¨fÇçܲõx u¹ÆÌ•; |åPÞ3Ë~¡Il~àu—÷–â`ƒô£¾ÖyóÂîZ̧XË“ ‡íÖ^Š›ø•Úìv’hÖiYÔÁ§0-õÚŒ8²àÔä%ò¸faÔú”kÍ·!»Éd>ûòäÔÖÒ1Ð3¼b:Ùæ#-%èpžPÆ·Gì)Ž +¯f-ÍÇ×»–øŸ>Ž`ë÷ 0‚{&Üàƒíü™ˆ…0ù&Â!LÛ€ØÎþ€³ˆ«hEj„•ï¬ègàH0 {ŒKÀ°ìlT€Â¬–. i‚±œXœ­© Hž`²è6öCôf‡¤°¿SØ£j»×TUØ32+l·àµÝ¶P,lÿl¶z³¶uDö-847l.øBu÷Æ“ +˜½à‡Ü_ðå~pëbð-ocpK2¸·_ï”ÁMˆÌànÿ^7º ;ƒÛ~ƒBoG?I·qB¤†x#€ZC̰±ÛØ'@k×* sCG좹8j +o q(W”ò6.}:‡à6¥¿`Ä.¾ÞŒZÂó€ý‘ý‚ ßæ=žeŲ‡\EÄÄoRާé’Ä)—èߦnBc@HÅÞ‚5ôhMØe¡BgÃšÌ +Í!š,¶Ù´Ð¬²r¡á#döbãÈ.CúNB¢1ô®¬)ÊгÍt†Vš1 ]8wªõîÝÙågׯŸ™Û½…Ö\pè.Ú¦”C“RÈL¯}N!¹Ú¥¶IòÐv’í¡aëÎÓ‡~¯mš?´‹…bAh9 ‡Ð¸¶-\Äó̺Gè˜ %“Ðy·-½„¾P¹‰M€KÍ'öîJGã&X¨6½b¶” ô¬øÓìÎ( ĶBž?ÄÙD“Ì'y§à0òj?""H|Ñ?ÍÓ­î€2²1æ‹Ê™DJ僞sgŒÜŒ2—¤]›4§™Ah,”+·1ôS%Z¿àçà`ˆQšó¸r8°Üøç;-ù4ê@~Õl¸MØ‚ÿÍ-\C#PcDŸøiÁÒuªãi½I›}¶.ñÑÈçGvºQ÷0×Ý‹¾ñ<ëKŒ÷òÑÇøüÓ,ÞÎâÒö¦• +d´ J ™«åèIÀSfåÀj}¨@v@%£þŽ3ó&õ²ñaèûÂ(sv>5¯$2%Ñ¢ÚNþé8„±Û*ï€éâiÜŠÇ;˜æ>>À›M">ÿý«øê–]iûÖ²³ïØÙÅÑ‹D¦ü×ÛƒyíLE +¨}—³qé§[óºùùbq^¯¼˜÷ûy·ØÞý‰”€Òmú²Vkh±‘Ò.„ÚçfWP[¬=ÐÚÝ¢O¶9œ%¼Ôpï¼öŸ é2MIK”c?Fê›Xî×3Eê‰ç ¿ÑG)¡{³3g®+³'í“ô4ìG*ýUR`¶Cò3YJ:*àÃév&ðäf´ +{Y§ÉʦÕB-jßQ”@„-³¤¬³E(*=!à}¢ÛÙjm¨ÿG骋2Š2M)Ø”T|hf‹OÎH’νw+Q×,*-—é=µBh?Æú°49ÖD•ä]ÕëPiJyá…¥4meƒ»Kÿ +Yœg÷ñHÙ±_iøÔ +2‚¹³lK”|6­’°]M ×>5;a".§…W{c&o~vOÇðPËàóRQ¢™¬£.ÂnáRw®½´º/87þ$uYÄj{W}õŸ„:é`W(,gá+ê%¬—?©§´wîbSÊe¹üúì4hRQ0·‹tíæ­•)êä$woŸQ](ÈBI劯3ýÏÍwç„;Óèüfúti¢6ÃÅ» ³°Ÿ“éÏl$la"Žë4ïÒÜ,˜]s W)I?$µÈ`À,y 6».ÃÇãíÖ°P‡"ižäˆ¶ê4ñq;}cO SöÍÔ6Žûð<á^H)Ÿøg´®ÑŸq?ÊÑçMšWNÛµ?Êú"ä¼ÓÁ²ÄGx‡à0ŽÍØå‚ÂgDif„oÛ†‰@)› +\‚öðv˜OÐý)yIö·Í縒š;íÉd¥Õ£f2¬¶tÊ'ʾ%.²Iâ°Ë½?àYaa ’pØt»ìÅÖÉ5ü´$Gr$ü½a ”Ÿ)Èåñh°gùÓ§¦Æœè« f£RÊ¡E ,'EÏ`~èsf×éj¯®Æ“Ûœg1„ñVV{º}`çãGC¾¾¹{ؾø¸,ß/îDëˆÚnÅq‰qs]&sÜ¢·éѰÃÏ\ƒu)ÆGÝ-é詬á ¼½¦Ï[íÿ[‘ˆN›+ÃbGê=õyêÏÒâ±=â'‘™ŸDf¾àmÐA¤Fê>+Z榨º¦ 6Q$!/!bUÚ­-ö¢F™–Ô$:|*ÃÁ +n&™ έՎ«‚{)è„Ù’TÀa±ÛÿÍL‹E…€XÄhâtqÒŽdŽ_V¢… ]FMÜŽvß]Dªh7€ÎºðVPÝê÷ˆ4O‘)ÑM÷% C·ZF@lÎcÉ(W4ÚÕu^ÕR©ìA >V3Ï þ„dÒ6 n…L hœ]†˜vVÉû )HÞǶƢgëg‹bÉ5÷ Ì›ÉôqÞ +`í +­BŸƒ> ]ÿt÷‹ò°`±yØâ-âb¿ÍHqeÇ®Â'rò€úXWô·¬6Ð+Mj€Yó¤°ìÊìI²lMÙ€5@Ú›Çdœ„.M<À¨!SF>dAklJ„Ö° OEpxw4—ù`±Ù$êéŒþà²g`Aˆ’žOç]B22 ›|L,=¬Ò=ð±‡U£%(AvíÆ„nGø{ÁûÈç#_Žä«Skìˇ͆S8U½ÛP/ý똮³ÞB»Tº;RI²Ceáéº=¯Î¾»Ê¾þÙpû·LoS’ܪH§»8¤loPOÂ(s¿±M´$2µQF™Dÿ¥Âd3Ïæ½ÝöbïH’íØöY UÈàT %/¶½*D¥v¹`/¶flç!Åy5ðÄ U vZÀøŒÃ愳ü#È@/|˜)IÛ°î¥Ê¬´P>¼– ¦[ ½m¿ö _õ!ÛŽ.G£O†:N.ÀÐb€–¡‘Òaì*ˆ·|ɃdŠˆŠM¾C(³4Ф6“'½ÿñd_¡ÚýÉ^W΄8©Ã¢Â¶Y€Ðó—pûÑŽõÞ¤øW@ØÿåóúŸ!“Š­ }®KPD TéñæåQµ6ªÌ5?“–B’ðØŒ¬(Øq 8·p¤Û—+q³ôÅŒUĦñ@}êUv±«©; CÕíÑ41rý™˜à,UmñÅÌJW}ÑéÈOO à8»Ü9‘»ì0»Û#¾`‘äÙ;ºqˆaìn0ša~Dã§Y´áëlÝìËŒw¹‹¡@A5×ãFH¸# N}×5Ô`œƒš%t€$?h¶ùA{åÝ9ؤ +Lç’ ¡|[BaÎÐÎ4§›D}Óî[¼ ²O»*!¥£ +Æï’`"M]&ò54ié"sÅÜg4:t@ÚF(/æËUÎý§ÌËIÌ0NÒx´GÃ#1k—£Fõ½)%`ϼë4E:QÛªÐIfôOäMÓ<‚7Ý?A¯±xƒ³«µëJè÷émXF‘‘¾‰ufà‹ºz,Àéš“ø¤¹ÅŸLz"æ)Od&t$×[—˜Ï /d"ó9½qî7w€È¨ubiœm‡×íó!ZŸí4èjñ‘…¾ƒQsY?é&¿W¸-Pgi¦¡Âò UøÊÉÒÖb§±K“~Õ7ðTª¯Cy7X®^œjN’ˈþðxºŒ6c õŸVLS³Â(Rýá5qGû€¾ULûñïx¯9¥,éù“bÚ¢˜F/‡Ò~—Òuu¿[QVâE3 +õa·º.§œ¸@?_u³[™Ó†nlKªïlV$³°«ÉÌFNçf³:ªº€ñX +"‹q×¢à@ d&Ó~×ÌÝ6 `îv¦Í®e±„|ÛTé«›]ËœS:m/ȆòΦ%?˜ç¦[×Îw­“R‡ ôfØSÛl[v³M„/wŽw¶-Γ²¢£a7´Ù¶ð`mG³×âôBaÛ"gÊ.`«ÐLgÛºf1õºè‡>7ÛÖuz‘éÂÒ =¶-ah›¹¯+ûmKe}J”õíDqߢýÆ6¿¸]©}„.=ÚGhÛnWöd67ˆgíì¥^íŠTùV›ò—­·«—ÎÞ»^ó=6ùžeëú‚ëY›ò=CÛȶW‹zÊ{»ÖÓïŠ(ˆéhF “^å.âö¥¾²Ý¸ŒN¶RÛá&ý v¬ôX›ÝêòXÿ¢Õ?=qþ-ïSæú·D%†þØ ø¸)L#¬­mŠ÷Ë"PV|B¾øLNšZPÖ„¼¥O‰^úñéÔ-ÂÛ4HçÕ­ƒº3eeóv¡íIØñÓ¬r„7?‹éBó"¦Ž‰Æ©ú7•(¤@qÑ›}2UžDûÒÀœXÜÎj#¨>egŸ³êN”}"“@#¡Ùùð—j™]LÕ²®GB³y@N!–ç>ÊOÍ•´u+ƒÛ/`ƒºÔ R»Ù?i®-R«PŸõD'ݘ(Wž¸ëì à +­v­È®ºÖ íAëGMN€ŠHKºkEÙÅO“sY w ½Ï¡ínèÂöÞ®àx/þ©FŸ‘®-µ<³)OËþAg¶ô-I-²·Áþ¶ÅþÛy*l+<"'ô ¤ØDU!œü'ôúžR0 ·eɳ¢túàŽ-t¿ø ×éÊg’FiɳT®T/ ïU—6J(.ä|æ»¶U¡$£,xUIG¿œ4‚ƪýùÏ#¹x¸M;Ú Eö X"Æêƒ2Ëa¦lÏèDôªÍƒ¶-V*ìMä2êÄ£Í9ëž, æµÐøòáRû‘*]_=êð.u÷ª#ŒB¥.{Ûfµ‘°6¬Z\’D¢ÅæÔW^¦é6Âeé-Æ Nƒ‚'~•œ¯NÌ>MÕÔÖìËõ[å{¡ZÍrWGlÕ~ ÕŠJ@_e ©¸¼’uó/º\§½Õ&<JVØÿ´Í„&øyÊð}Aõ.š«áüBö+¼’ +¨°×òÅO—幑6.t@´Õ¤9MíÜñ~¬§;ð›J'ƒóAé1b3•šêö¼?BÑë£ùñ¯`7û‘Ê^«j5â3ì W©b†âr]3o‡g“Ù}Ûì.AMµ}…`Ô&Uõä悳÷f"vï €C¥™„ŸT¡ælí6YƸÈöafÔír~%â B_;Ûy ´mÊö Ýyb¿( íV.É–,*ä3àÎAHUóSJ¾ã +Û[BT…ò dÆJPêOtbÝp&»Du¢6AûrAŠ)_Õvl)Z³SÙ–ËÂM9a{3~/Qí—ßð­h-Å ´Eb"¶Ý’Ô6w0w1åE7¶ ˆäï“Ð ðé’ÿ$ÏìÅÖ2œ^|às¤‹ ˆ'ñþ`›5ê ¶˜Ûw:ös+ ò¦“+€„°ŸSûç’„Põ0nLÁqÄô"ìÝHÔ“-jÿÕ¨— x¢b@Ïi_y£ D‹n­yêÀg³ïG¿ýÓÓ¶E‚#žéÔ÷¹ìyÕâÏgU{ÃÁ¥¸5j ?y9 ÖÊ—<©•Pñ:¡ù` ý×üHL “ÜB˜Eø§ÏPHp­ +²Ójg +Ó4~ð“Ò!†Ü»¤7À|žÙS}_hà$EÑꪪY²=RÈ`‚`íÌ®N †_TYS¹\¨‰Ó–¹îòHSP!ì2‡É%Gå ÀÕ€.ÖÓ§¶ˆ¬tl +ɉŽ4<<,夋ƒ1”;Æ…Ó£ÈÝ¢°X`ù¢/¸A +G} €Jlr·¤«PÀgŽ¡ñ ÉŽ"Q«Å×o–$4œYöM÷~;n—m9ùc˜½óà·ÓZ¤ØoZƒ\ýv5éžÈJäsï·sb{è&˜‘+-~»nPéêÅ]/ôØÖIGfTå𣓎x†5 Bþpµè¤ëºpHT:¥üøê¤ã÷!œtÔìl˜#Ku¬D…qðKf!<ö>:ϦöŠjóGÿ6A¿î‚á¬HÍqqÖù¥>peöœ{_a¾N*·%Ì#úê¥Ïä›}tZ?£¯nïIm½¼áD¨¾õÕ ¸ðR¨ï4kD_½È c„ÝõïÛ%·Í&aÅ…ÎM>õ_×(4¹Yør¢¯^T3â w3µ@ž¦¯^¢ë Y°«™ºóÕË€Ùá²J¶í¸}õBßÂ%œúQ܇öÖ?^a?*0í#ÐóLC*ÂfÎÃ]·í +„·y¹õUÁÕ&þ¯¯&¨*%T-ñ@âö!†²©|½:ëèTØõÀ¦ÙÄûDÇ$ˆfè¿ÊEÍ\O÷ ®ÞË ™I›¹Q66  ´’¶¬ž°ip~d§¯>P#b¬_úhkÍ‹!vKõÕS? •O¯à´áÑìjÔ+˜¥P””ëá¨ÓÌÒa†ÿ±ÐiÿÒxê?]„|Ê]Í|’¼õÓÍÛp€/5ga.V?½) Ãc+#ütÞe¡-ùÌ:úÞOî(»÷ষR½‹ íÓ,¯hqÓ¡B ¿=Ï¥b㥓÷6+®å}ÁÚ¼t³*©^`2.{/Ýlå§¡*BÆòåè¥ø~o/½IÌ€Jä—½—Õd¿âàNsôÒ!‘³˜ñëŒNºÈ$ÉùzOÔ¬w;LŽ"^9æÈÑc7ÿ©€MG®^½ ÐÒì;G×Ñ£w.3´5 1 ÃV?CÑÚ™Ó3 Üݺ隨^€MÔzlüuF°më…ÅZÝu>©Ú§$Ž5‘LÁ]çvôµp˜E/¸ºëÌT‘I³ËI2bu×íAXtGó“».z1>ôu‚÷êwýÞu±WoÜu<,JoìÌêۺ딷 λÔüµqסu´(¢BëØèžî:5U±#šYÆ=Ù»ëÌH ÔW˜[t×a”Øê¥¼(n/=T²ÂgÛë"™iì çn- V¯¶ä\ôÞŸ‹ÀB…ËÀ˜?KwȶÌ"’j¿ÂûÀ' =™TÛÖÚ¯šÛîó®%_5÷1ǹæVcÉW¤_|#H¿µÞ>—|ÝBp±ËÛô¶%_OÁã ßÍG,ùrŸMÚDÏÖ’/@¼C‹d°LʾäË €Ð‰ßXäßcÉ—o{‰òÐ43¬5_î–TV9¹¯ùb‡*6¶•µæ«ÅÆ» Q75_ÒG\s¼©}Í—g‚•"–$Ƭùºª:’G¥K0Ö|+‘G’ÇHßXj¾:K‡óÀ3Š¿¼_'*!›âïÖÒý¿(þ~ähÇêïW^þEïÇÖ™ã¥xùµK•›ìɅ븶Å_{«_Ñ«9(“²]1ÁÿÙWB)w S½ªïÕ~¿šÅ_,š¹Ëã\êÀBÚÚMDŠ(íj¿?ÎSø‚ÖBÖ}Œÿ_8×?´¤ûqÚ;ÓŸDPl†Œ¾Ï{›'«ÞxóÀf÷˜÷ÎðÝÜéòyïÉ[¡†¸[8<ä½už ¾FÛ¢ËÌ?%¾u/ô¼Ù½ ¥[ÖÄwØ?òP¾4ïÓÞr*:—:VêˆYï|ºÛ¸MvgTÒÇ&Ç^ç»Iî ±¤­ÛSp>öInSjÕ"Ò?c’ÛQ2'Èü%¹t)µ3ðô'zHrsrm™£CuÅ$·n’\Ï@O‰¯ºf»s™èvžÿæén?iƒ•{<Òݹçó¤…¼a]ÓÝ‚Á ÷d|™jwº{óó%Ý%‚^lIdakº{ ) +énÞ¥9B#›F#¦»íž?]ô7 oé1ÝmámÖ€ä*Zê}Ÿ÷ÎfJám††… 0æ½ ±Ç)}ã¬aÍg<”Ù8ÒÞ¶ß‹KÒ\¼Ø˜õÎìU$Üm‹YïŒOH4:DO›÷YïL,H3à(²ÿ1ë €Qù»Ç×/Üÿ¿û{™íWžQ¸r$RqYÄÆCجpËݽ6óLub§Ä”:^,so·%È¡7ÓCaÞ^¨}?v² ßìgÀpèBÐÜ#î/òªLå&»fó~ò©7íAv@joÝLÙ'8ÿm‰0…¤D fPP'$qm¢é¼6Fy˜õ³6ž7¶ÑnÅ&†yL³??âàçóP5 i»I¡D/f| ¢Ü“h~ΨO¥$áVĉð BÚCûŒŒm‘AAKe\nñ‡½<,uK§kQð^l6œÞÂNßœœ®ª“7ÄsäS=4°•Bâ;O?ÃÚs UfsB-%¬TIVM±–âw¦=%9óDѦ‘º‡iM8›¬~o=¡:7&œÈÜØüNxç͵gùT 3àá¦=U„€ÊIË'¦õ˜¦êq’àl Ë™à7g-Rs¸ J¹{„pðX..c;£:µ¾U©ÉÕ‰Œ¹;&á’£}Kqña¡•°‹ ‚=5Ð8TÀÁß1ºŠíÌ)G=Xv§ÜŒ’$\þFç.îan4^›Ç•6‰Ì@^SÜ&58.dwÍ·±ð•J9Ô!«”XýM#X[ží«.¾…û©ó›°wƒ° }Í’K¢(‰ù'¹G|A…Ò€ê>‘4Ç W +™ 3ì—2¤_ÏD¹$‘ým4L]žo:¥£PZ‚OàÁ|‘ j–לÍ"Uyi¿Ѱæ5‚n×N¦oæXlßf¶®@UÒ5³.V™sôKÔ4k†1âÃqƒ fö1K½D”¹¶ïÛcÒ¹hf4a¢`h¹7‚>A’§t}.ù¨2?#ƒ‚÷–v6½0çíÒdÝìJmJÔÚ3šÀ ,ˆEu®%Fã˜a&™Ñ$•´%^Lb©¼IéYŸQ$W2%¬D .”Q%£õÒ¼„†8•dOˆ’ ¼ÊÞd#Ÿ¥Íx”$ rº —&q¡êlÓ/×5mhºFØ'[÷{yÓ0]ÀþÈ0·^’ë~'§ß {àŒ“)ɧ÷QRÔN¼û‚MùZ‹òÈë%zªñ¬’³Â˜!´­KÍçÇ<Dc` JõyøX›À±ƒ€™4¨MkØÞ2mÌ!°ðÝÀ†0Ƕ-àh"jábã¾·Û +u ¨¬Ì{Dת:“!9~ûïùe˜ä.¾@òÉF¢@ X®¤6§+í>œu6zŠ¢ÙO^±Oˆ ñ§z¡×QË›N¨rè> àÈ-»ö¦#‰ÅÈ^=º§^*ÊT¼T ´³<´i:Ñ˺ ~wÍ%ó›Îãy”A:¾éF³æa—d+"!×!~„yª;JQ6Uàk™}\ŸŠ¤È>öÃq(°åy'f‹§31ΙóWè<6?ï">RŽ—ÖœÍ•Ãˆí‡Qá¹áà&†7¾ÐZNêU9˜ÝíÔáË5Ø—(.R°eóõí&g“)oòÉÓËìöM¨@çÍ$l3· ’A^a"Cx„ vO¶]½ˆ‚+a 6 ‹')* ’um"Ûnou»°bÀ•RD’“Ìe?}’ղВÖò;†)SÆ=ÈÛÙ6’r4pÊè"»)ÐÊj$‹ER޽™¾ú­5?ÅýÙÕPSV„ЈÊM4ö”Æ ¬¤!ˆÉ~ÓÐc2ó2Üì¢ëæcsBL_—جÎ3l_Ü#ôf²ßo‚0ç! -ÐRØC "@à§P5£äöáõN‹‰Ô?¹ÝÏ‹¨NÞÙĽ®_PΨEÛàâ[3Ó6 lxtˆ. +;Zåh0®jœ_=R?j~´Ÿ‡Go‰‡¬ÏC+µ³õº8ÏE/lðE¿ä꽉ú]©ÁN þŠŽÉC»z´MY´W¯±×"kt:ë ºm.B‘à·’‰ËÊÚ SX°¸¿>ÙÚLö&¶èF—C$¥Pì!wýð¯û´ áVraèÏM×½J‡ÂkWߟð˜OXÇ>d`M¹¢%Æ“™¾†ÐàÉ fXÒ”¯_ÂÑൡz6TÂOÑ5|A³@3m/ Ü—”[Hë +=¦²Ë .±¦†Ùƒ„ž²{¡ °O1³ÙÄb§"«Rc†Z€s¸ ´¯³ÜîîÙôÝgËqŒº. ;8|¯ÆJèã ¹y¶óJ¦y—Ù¯)Ï¢c•”u¬p~!¶Xþ@÷Rd jGü~‘NBŽy[«ˆ§Yk¼ÁS ~°L}„² þ·œ©f€Å»ê‹:(úmÑ›*ŽàŸ,²RÁn*A"I—EèpíÔXQòwê- 4J‡±hÜDvÛªh9w¯yh,UAâ¢FŒ)€3&h§9cšŽ/6¡šÅ¬¹EIOèx`_zÃ<8 +ÞTM¸¾¡úX%ˆjO4×¥Í/ÖÆK¡<Â~Vå]]2aºy3aTP'J.W(-lÁã—êÊ“öfÚ`˽Ð>½Ð榒ð¨QóU;ww( Œ¢öªì¥ØíZ©Ü<œÐKŠñ´<êÍUˆ¥.ÄÖ›ðÀðáñ&[˜…ÈåÑŒKÞm´ßë~AäÚt5㉵ÓS !pÍ÷¦H_”¶³ DÌcëÐng¸…©¶ÐÔó‹O@¹\aï®Q4ƒ£ùе÷'¬§Q}9N[Ìš½áVº“£ÓÒÐÆG²@A=6µ Ó9íÈòf,êQ› IÃÆ·/X]ùD°½"Ïù7:Ëò™Æ¥–dÀIMìáKƒ½xêzQXØÌ¨ˆDï°3Íe½N¼ïê³ Aâ%Î]¤(H@V\(®:Ú“šyP*ž;Ų’n—»[Öõ£Ý¿¹÷¬@9,jZU?¨w×Û ÆŠ¸G”\ êÙÀ˜—.ÿÚ¾¼mQuc¨.Z€ÛÚ¶–jD-ÏöNú d†x¦mL/bg@ª‰LÞh{mŸš†ÈÍŽúŽíEoX()û¼n•}Á–âÁäcL#_«˜™27ðq§=ˆ·€÷‚$4Ïh^›–ä€AN !OçjØó,¢!×B¦™G,ù¼w"SÔeï™ùö_['•à×&BJê`[öqžñ€‹¥h·z4°=¹UèŽßÀm[®S¢ÿouõ×ε'÷WÕ\\ÕJWUpˆQdY(uŠ;{õ UOÅù‚H×™rY=1ÛÈÍ9&£`Ï/Olõæì‘|í&Å®¯P$w—òâSÒr§>(X‡…=»¥´Ú<ØX]½[PIÞˆÑÀ¨Üîíê%Οlæãêš«!/S¿5›2nÌêác',ý9&€àõ ðÀñ€•/ÄQ bvë•„*D(6ÔK‚xfÁ.Û쫼%!HÌBêº}cÙm¨ÏþÇá†%N«Ä§]èMï…Y.qãæÇŠ©åÀL-²­sÝ-Ix–™ï¢ Øšw=%ò}$³B5K½Öô¶/}“S–úÎ>Õ8 í‡1 |›•V—6Óëj…ªÌ*ÈkÚÍá°ÔC˜´ƒ81ͦÑùj*º¿¦ž(ÇŠÜ%]yª|Þõ ‘6qN¦Þ§Ê&-vµœ_«F8”ôUzëîÄÐZs¤.ÊUêÿWŸ¹-øàCÙ‹O§V(¦û}ÛkùŒ]Éç ¥Qy,%85nê”2¯§ÇJ¯¢wML„+æÆ½V¹­Ãl‡º<ת"_æÒÔ¢µµnª“˜o*/ zïBë5¿ÄðÒ@‰ˆ•Yë¢(ÐШŒÍðg]GØ*<„º¶8 ô¶¾8Ôz_³B\Å60hǰO~7ãͺòcð,@ÇÓß¶ww ·ÖÉã Zëíû÷ZÓÂw𥆸‰WÄÀ~ª¬Èƒ0ãVðBœ´+b?ùW0E\D+ã±þšc»|*d]ü+°$˜Pykt¾%˜ª€‘ ænEÚl­fìÜF7`}‚™˜¡­¹_¡G린Kaß¹¡OÛm+ §îM/€®Â~À[Û}7€ÀÂþ€dÁx´·.D€³$@â‚ u[oèFæg*€ú‚C0[Çn…ÞNa%Fr7¿ôëH2¸·cÜäßë>…Ë Nv@tG= Cwþ~˜†°!€Tcè±b\·!LÀʆP(ÀlC8q¼»°,ŽZ£»bÀoÍ€_^ÖˆþxÄ.xÞŒZ‚ðÎâ÷¾ÿW y ÿü<¤"Œ}›Òpø55õ3«ñø»¤L@ó‡ÜNh¸ÓB¡Ÿ`—UŠ} lŒ¡af¯B3Ä6ù›*Ö$ZlÌXq±ÁãM/ö‡¬YÀØc²fC‹Ê6#¹4º„¼fh• ¹ÑÐró6µ:vBf6týܹܻWh—ŽFk9v+­¹èØõ´ËiÇž©57Ú®BZ=´omÓó¡ ,d÷c'ÙZ!ˆi»JC<ÏZ±ˆÍqkÕ#6Ùíª'±Yo­ÂĆ¿µ’w¡6•[ ;i^[*Kzjñ¨¨8÷X’¦omÏޱ­q1£Á`Ø œ^ýZ*ƒï¸B¦cFD,·5ŠØÒ]±YQ l™Ù0­Ç¢ïžZ¢ûÇ ‡øåø³kÕñvÑŠ¯Œ‚‹ÅË6 ØÂk5çGüàk TÎA±§z’^c-µ)fSæ@dŽjÏZEßDlôöšÈÒíªºñ,kq8ÞÉZ`ŽO´ª?oßÌZð~¼×µ\®¾˜ðYÖ²{ü´kåþ13v…ÿ8±VAœœ+!Îñ–!®•×Û +«ø¸á—g¢eøß*Ä.^ÞöKWúÛAA:«Zׯ¯çî­˜é$¿v³ÐÚÜ'™øÀ6cUDÍßô¶ûÊ‚;ªÃ.ÅÆoîNÂÓYG¸µKböaª|á4Fâ“›KWð®ìzÒ@®Ü [•6²âúýg¹¼b^Ùªñ§Öû°-¾ ¦…Íã¬#|^Ï·~_äå1XÀ†óÑ÷øi6‡Ùü·?›ý%$²ƒ‚ΚiCÔâ4 ¨œÎ$‚ WÙ¿#+Ñ=sŸ5¹I5‡¨žå|=@jJ?°E…þóÌæî%¼ q"uQp-׋žïúóLf>jÕ©-P°m¤oÈŸÌD˵B‹u¯×ûgïɤ|²íõ‘Œ–rQ²©¯"oüõúÞÂ|ôú?ÿ4m·Ó6apló…¯&ƒÚ˜_b~HFAy%V«Qчge(4^í)Ž,`Éq R¿7[ÄÄêÁPžÖŽp46Dî‰X±ÑEQbj  gYŒy¼‘u?ˆ´ÛVÖ×Î_첯}ø}~2Çûy½Ú,”s*ÎEG*púÜ=Ú‘M%ô .ÑÊx=@«˜~q­Oyó«ÅLm.¸ŽXoüón#¡ÿª‹§&COåÌOF5SF"Ã32.x{}‹3È|Ò˜eŸÿ®Ê,=þ<¾áõ>ü?åUùŠôvˆÔöÞ¶xƒt6™{ ®¢EPr˜>ºM çÁ 7sö %·Ø²I·ü"¿–É<gLCƒÉlP9«W%®îàeU^QgQ>ÕìbÆä)TÁ¤ Fu©ó˜”ÈæÄŽ}ü/õvÊ –c ¬}¶e¢M㊋ə®,¤‡Y#äÀFš¤qÎL¤à‘§ßŠè.a– ã×§ùU‰«â#©‹›Ô©äèO!¿Fw6‚ð¨`{’ZÍz§w&~^±z3&=7#|˜Ím."p9ñeƒßΫ^ˆ*Ù‚.}k¢Ð _=ÀÚWIhÞxAv+1¤vòÃ^Fõvö)&H%éÑGæÚkè¯NÛq79+‚߇×% Šm@ݳc÷¯šJXYu¡±×ë Š2ULÀ`}Þ¹mÔ—É(³&=«õñé¡U}âÅÒ^_²lzb}§ñÎûî.Õ¦¢{‚gýnʱq£p!§¾ùôãf=Q+xoõËûtpPµ±OnÀDŠ•&s/.Þ‘“ +ÂnQk`;@ýªy³¸úðŽ Nƒìõc]†‡Ý­êeå)„âHgߨi€øë aùh^J›Ð$â+zX7zîŸ>K¸$d‘ —^ý87ÏCT ×î¸h}˜/l}DôŽÕ³o¢__)ˆŒ4u ]iý4»¬TüÄ“@›÷Kœ%>ZÒ€tç¶k3Û äÁ{ b϶ç‡zq"ož'|ÍŽ$µmU€ÍÂ)ÝQ!FY&ëNˆúí +¼ó%®]»’rý-÷.8Úºx®`IêMÂLIq™>º鋈FHŠË7gß6,M2iJ`¸Ê·—òlùÂσñ\ï ØàíƒÜ&<¼‡`ôû ›Çö›¬{Pø´ë.vOŠu ÜN©°“†©vãuv‡M}»H‚s[ð+‚]Ÿt»îƒ“³Úý¤|­Ï['oÇï¼øœ—¦ûjØûEúϼþÂáÝ{R•ÈŒ¿…Cµ²nñð¸uþþ  þÑé÷?ÿô6þ9b&[öå fØ—ƒšI`_Žj&;öåUÍ$/9“@¾¼Ê™l¸—ƒ˜Éʽ´LÞr/ “›{ùã—ù®tÉ–{9H—îåUº$P/é’-s. <Ì·tI _&[úe1 œËAÄ$°'“-ùr1ÙœçYÄ$0“- s1 $ÌAÄ$0“- sP3‰$Ì«šI a^UMžH˜W1“•„9h™æ e²%aZ&„ùÖ2¹¹—?^_¿YFO¢ÅäŒæðÐʷׇ¿=1­{‘®úà`mbB&pÔÞ¢>8tV^)ÇWLç^·×S™kö°íoÇüëea‚ÇmgË¥Š°¿}ùËóÆyy pnj#>ÈË××÷ij;˜¢Bj°ýDIÚ­hþH}ó‰[Ø*ȳeuw¬SÁnáÐd!®»Þ™Qæ•%¯ˆÐþznf&^ØóBè3ÙLj~" òEï ¬7§«7ÛKO´Þ +n/ÙlX›Wx"'ö¸Ý©ç÷PÝx€]ÞØúN‘†¯jÞjåÀG߆.×Î=ÒÞvÃ'§lPuŸ¶­ËgYgGƒ«Jç1ƒY@˜e _nó”®Ú_gYrô /Ä}³Lnªo.~Qr‹ôS¡ŠF»LÏི×u~Öf¸~XãÛÛ¦"¼†`e« ÖjûI‚Õ Ÿ6XÎ0=¢~3»n»¦d4ùë´þhç¸ëX`®7ûE…®[ù9øÍÝ/¡ÚÊ+8ìl>ä¼ !)‡¨„(ÛÎ7\©AÌqæ=:ßW¯0ÃçŠbJÁtûÃÛ½{S»w©3]œæA´)=&­†jLAtÁ,ƒ¸F1wÙoE\÷àŸô.§(¥(t`¤NÑÄ àSug³å$åŽPøHK¼zŒí¿HÞ@—!ݰZ—ž˜"–ORéíOe>I›’,0&Ÿ:ÍL„ùͧ+©ðü—˜ Fu¨ñEvÊn³b©Ã*U8ˆP‘&¤_Â9¸ü:‹„VÜ/ÔÉÂkž²k´ùim¨|ÚƒOA¹¶€ÇïÐ37gL¨È:WUnç+;&¬ +!}›§ûEƒÂÖeEéê¶ð”Ƈ”P@gϪ^¾4 Т>¼qú³éÔª_éðOh¾/_=9¼€±’zÎ[`¤©oÖ›Û¡(¥¹}4Wqàˆ2­‡ÒœáS“Ò›Ïtv)ttR„ç¶óhŸoêþ•ÜCëâ‚1‹¤óÔ¹0HS죥óƒÃ£×Ä ·q'^Ð:2ÙÓ­ ±‘‡F`A ^Sh>M¡ùòâ \y›pwÚÖ¨Íïèè] Ò§þw]{bQ¢@¸‘íKÙZ/?ìj_Ùòížr/™ïê‘C Œ®‡Þñ0~èÃÙwnu”J–ùçȇ;zAÈÅœ(³ËÕŸþè«êœaõ_þä?Xó›¿}ù£ŸÿüO?þû_ÿÕwßÿ’±®|qòn7‡þMGO{=l@RJËt²\òòa -CžÔKV9Û¦J²P’ìÓ¡HjÆR†ð|Õ„õ(2$ç&£“TTÝ•’&E–<‰°jûT®d*×i– -ÞÂ*ÇLšmYê4V_­Q@¹%Ñ\„¬1S;¹0ÖÅI¹á`˜åžð[ânö @E'äТ€£tÅ­\NS›$±p –\ضM˜´lgçÉFžl]\`hº6fïÔùʪ:hûmÚëOcÒªa;j.”ò¤š£ oŠ„œŠ¹Pð›ç/o&‡–Ä W¡W(zëjOk?di´gGGÛV#bïJŽ—;°ÿˆ±I½'^ Š7ÍA뢌¹ ÕâKì´ 0 Í^)¤[´;²‰Ñî8äž.Me®S‘º½êÑ­Ö)KøíW¼æ +Ea•kTž¸ +jÝÔmNeæ°¢ 7§RH’=- Ù“&<5¯šÞê,D•K5ÙY]pΦL«)¶Ó©÷ +è.´›\µc` ³RÎò´ÎË¿|/@šgËI#q)×Üùpåt£mt%š™¸6ÉÐ|b[«S J{Q—š«]ÉPs p•àÕ¯®?”ð²4ð<@¶IP*©%ŸÝRä³Õÿ¹dÄ`äà¾;8¾LB³L¨ëPÁ©ÈPh$Éw»`ð$HKëü >µS.‚(ÃA¤ä‰aÛša/äkU"M’פ/±ÃA~´"jõꌈÓÕœseNgåæufÛÆÔäqOî ›±:æÀP’°[óB"Πԩ$)G¯$õ»Ûù•£*ͻܵû@!fžâÓ•]UÔ˜`(Jq:þ«‰7´ƒ¿Tõ?˜ëÄd‰#„途5"£ÔÍi67dc+t~KûÆJ•pYa (LȰ­q^' N¨ ÿý颠-zY›¬Ô:`ÓÙ}NÁÆsÜdÏ[} 6U˜ <„¬¡8Áì.ø=i(mß#´'KpJ-ô>€Ù°€%´iï·ÌDS +8êÜVš:” œsÑŒÞðÞ\îS(Àt8ÉaÉ!ÄQÇcFù¼³¸âBUVÍ‚Bb&¢KAX•1¢AË…~ +¹¥êS‡ÂTºi{é‘O6/_â¶"àà±0à²t±ØífΪ`çr–QáÄBvÐvpÄjÃ׈ÏþÐ%7:+®EB?ÿÎPÞžú·Ò5 6iT’d¥’øfÍžé™)[’˜F±Òܦ¿™óEµ¦Ø[œ`—‹Y“ÕUÜÌRg=wŸÜköìpyÙÝd–TÙ-©Ó9©9Ÿœ]‚]™W> 1Qkþ+ÑV‹| +°‹rx#+Ú/”]ãQÑÿ˜™mtf°Ò¤J³iI¯Taº¼nÿ”›™Dwár%L;I$Û +QÁ\’tbäDˆ~]×&I—@³SX©L9˜1!&¶±{§@²ÈϯKBìE¶¡VÏÙXÔCP:,ü’?û@ø½‰MŒh 6±1Ïó*þƒÝÂ5GŠëOÙù®s‚øº(ìJE€™ÎÞÉþVüã@ig‡ox Ö ¨¬`W&uÓ2gô½ø4ÒcçLðAº% [(”wQ­¾²aלê˜v›KsAdgÛêl©Hà\æ*ò$É™A¹­‡È¼#€M2‰„‰å%ÜÞÃYÅqV†àßÓkjâ\sßG›—m‘b,hXjÏTñÔ¶$~éF ‘™U»R÷vžQêÐ6J\†å=ùAÙЬÔé’}‹ %“•‚wg/¾Ž ô +¡ïIÍeNso~ +2Ââ*·_húš'$÷WÖ¦ÞÜ•q:—1luoÁÙDƒeq^"êÌ¥#_mcxƒ9,«¤Šô@"\qº §B~ñG7}{Ÿ\æ¦]’=¯sœ†ÒoÁ¡ ºK36‰ò6¯ugÔ<àMK¶†kyM1%1$P±<½}rÄ!=Ùæ¬jfѺž5Œ8›W\5ØGõwF­ÏË×SÏ$ +|½µ]:mòEؤ=¼'þr?±ÍÖîYÐfÒÍ6PÉÌ„óÐEýÇæEÞÜK±}¦0*¼Ü/”×–a^ßoKߘwØ ò}ï;Mc5hÒ•Ñú½aÔLà‹ÉI`©ï©B=^ÿ¶Ö1#Ûy†Ü¸ÎO—s›ùj!• §ÜòfÎÛÖ WÞ¢¿J¶]:¬HªCáÚn ¶æà‘eíš—äo²‰úý= €¬BÝØHõssÍÊÑ66(¢d–ÆŠGIA½ mµ„hûö+ÚP¦ÄS0Á§Ø°hÁ3û7Ùù£5ØÆÆ?ÃKæÜ“³ô뽃gaRñ,à6×þaÉ¡­›Ö‰&Nû­án5V¯;%¼ŠÒR[öX +X"µÝìÐêÖ>jÜß•²Ü8ÄŸ}ïN.½&·þ“7Búû&Ýrd3Áƒoý !šÃ¥V¡óŠ˜½·£{ÿíš"#«ó—ï Ø¼›”mã@š,"k39Àv¢#ª¯ òFå©Z¸hé‚6Ó!A÷Å-†È“œÀ eôêU‹x¹mr=×±uæ!ƒ¦fŠúX!ÙB[ö¶ŒÌœ§Ëà®aE™À")\Œ¶NrUêÒÈcŸi¯|*DCaÄ6˜ +£B,ÆÝE°£™‡¹ ã Ë$w‚|2ûÙ6,Þ$BI{rà/¿µN>° iࣾLmà0KÉ[Ñ5üø Àìõ$oƒôR%â€ysžjAì!º£]ÂNéɰó ¥}‚?õB@ +÷˜·€NY“G ‹´ Ö,)f4òy§¤i3ì Ûå±QñGöûP;ùóågWȹɵ?~âéy¶¿›’ò)ŸOÃÚ˜|6¡ +€N,ûÑZC8óœvkõLä/°škC3(}r-Oš9à¶l ¼×æN mÉ‘H%ãa(çj^u™êj³ñI¬Vf;¹ú‡mÚtGÃï"Xb,ú¶]KÖm– AÙl\þ$Ùmѵ X²ù#‡ÆÑÃò•YØ0gTkp Hâ֦Ѡ’ö×ç¡äºº[;›EÎÇ Á+ߨá+€\è©¶›r‰ú•'©nu ‹ñž4¬ÃpµT©íD ô5Ó+‰ïé–%›ãÏ©¿j¦Î\ úò¸b¸´ó$¤ò¸/3Žø¢¸ÂÖ·€”}§x<ú9[ˆ Ù0kM*ì~]É|¸LØ„hG¸ß¯ØòÑ@ʸYçëWá–ð‰ƳWu~É«ú~Ö»@½;?==à8(PNt!ÝóDÍáXÿëTýþó\­ºŒ†¤Zl ÷˜‹gs +JÛë-â|v‡$B½é¼>V‰²#7™¥Mr¯th2Ôú¶žƒ÷z£³pÈ {ùv7µJƒ@¢M—‡àtÈ&ÌuZ;’= ]©ãiå#sD{᩼ŽùF·U­@¶<ÉØ"É7¡wg^ËÕ§G=ÍÄn·yC¸FüÿЮºL›ØhÏœû³:äæ‚!• +±ðUãÝ–Æ 8×⩽Í4÷ZÑ–²{Í÷Ú¿;Ý´is‘°¼wd–xιs4‡B·°÷.Ã1Hïíä1kÆ> pó±‰I¢Ñ¹ bbÆý÷Ö'í,â)û/´*î-’ïcÖ‚‰hO  ì°6¹ÕO<ç{oÐÌcÛñ*ó8(ÌÝžÂÖ&¡«½×Û h¸Š8ö6UýlÓyÐT<èÂ8|§ ~Ú>ˆç íCyt_˜ ®£e¸L.¶è±úu!ÉQ—Õ‘bŽœhsYN¯]ôÇxBFNª ¶¦~Ò“_×71ýÍÆ ð|CXÌjC·‰ôcu-¯ìì*É,êíï­Ž©ÞsFý¥vþ—àÜBx‘i¥g?=Žä0âóô,ŸœíÍy‡O Õ)«tîF‘‹®êãÇß³ÄÙ ƒçsÄÎ,aKCÁoЂb·]&uI0;Ä®§ZüR‰VSȇ?åJ·›$i²XY˜û×>Ÿ *¤îÑQ¹ƒ@øZB®G4DX:¡N©Mw9D¢˜C²j'¼N·5še„mc•¸w$ŒÖN;iQHæ?ÿ>‹sÆf×gƒÕEik Ò!©ÌB´ék.ïúêC†ƒXd8pºÅ”¤kн‚hqÕ®ÖÔt ä%EucÞÂËLZ4z/iÆ¡XïDÂ:T5P ·»õ»»³#ÔfÀzeg¾ó)’‹¡Œ‹\ ìkwF-¯›!ÈEÄ^TtwŽÇyIº<ÐX¼Cü]¥Cû{½©Ýf2©IÔ +¦ê^îä|ô+Ä‚ù#cÕƒ/ôŒrhêÌ4úDsH‰ñ©_î¼X³ÿ‘´ãäŽ:À#›= +ÜØ5}™988I|ï1(ß™È7Ù;¸Iu"‹Ð íCPïêz¤^ž2‡W`ÏkäK»Œ“ýŠ–Ë;CÉe,fgéh,¸àiM~T`¢´éQÁHßyP]”(_‰"íšEÕåZÑå dðdÁ’Œ•lz °"@ïpçqa­êr†ÌÌáG…4°|!Vz$i6øÝ9dVU¼-Ä®xskú=³÷Ò[b‡Yl©654)ú;Í|€%ŽâŠO‰’A®¾„„:$"ÂÙ²eË!/Ÿ‰m ̸†ñ4³KV¿øÇæ­Þs×,²ùÄ ¬u(©î9²V%š+3_QuÕXÿ€á¤ÉG?[¯Í¸p±iü3Ü£Ö§ ÕX[*óÚŽ]ÐZõi@à1„Ò¾w…d©Åó¬¨x/aÄö™Â¨ðnÖªZ|¿kuîéë,µ½ði—¢àcN¬%Åý”ZK“qf®åÍ8»×2é~•¬åÖ¸ØÖ‚m\°káw¿Þ—úq4k :Zœ¥’½µ[k=|µ~¡¤ìf(Ío­n(ñ£Ð·™¿1o·„ˆ7”‰a[Q€@lw²¥a€c„=4 :¶;ð + ûvÀ“¬;~€¥lÝ…o ÎF€È?%@mÞ87¨<¢ö ÎÔŠÚºbz¹_ +.`€AWòëœ*º¤+,+¸¶¿Ÿ8š'xWtWˆØíR|ÙÖ8µàƬ[ VÈÜ>¤Xw!2™X½Êܶ‘Ð}0R+¤0c+2qÔ­Ç®É/±Oã¨5Î]PŸ1T^Á£û{¡Æó¬@Öþ@ì.‹°âjcbÅæÆ<ÆŠñÝçCV¬pÌ«¸qHͬ¨åm†gbž×üP@KÇÓ[oS«òZ+Ü;$Ä"j|—O  ó— Àõ5£ðïÛ|`Àчtb€àß ÈÀ¿KZ®]3ÏÚÖ¼hh>ØfUCCHÊÞí!º'¶YàÐ…rÈ¡ãÎ:‡ömª:t„Lwè@ IòÐDzͱÇóÌÄüÝ72ø¡íf[Ý;¡~;€–ÊCl$ÚÕ-Jvw8 +‡ª,kýCˆ+Í#2•×ʉ\0}NÊ®ø ›²K— ¿è3¯×¢ mõâò©ìY-–{#ÁYAŒ¤Ayµ«Ii¾ïªvâ+Mò<¡Ê³Oî¨þµH…Çå>®ÝÞðZáºCU¿Ö²<ÿ—t ¼††+óyS´º…¯Xy+J|]±VêILƒ}«¦¶+õ=~¾–ã•תâã~×Zäç·O¹V0ã;Z  ó³ º~z×ký4~¯µò?û®pfÏZö 0ŒÃ<~[f^WÁZšŽëh­iÜØÇsü¤îõŽî-6ý[}ºŠ®TN×ÀƒHÿ4ië‹ ê>p­ð Ï¥=êÍs@ËY²p†ÅÇÂ!Æû Q‘ žßy:NH"y'È ¿ŒzzŽ~tô‹®ÍkT–“nÑö+P¸œgNÍôácÖኆ£w×M^爨ÉH]ûIUÙž73²ŒöS{‰yÎÙçY]HSp{f[}gqTWƒr–:\†{EUó ìí¥¢ÜѲׇۮh”()IR¦8†œ`f릫E*åÆ@ê´JÅ+ޏQ]œg½ëДJ’%¹âá<ë^§¦…¿¯õµÈ“¦ÑÃNÞÁH„7 +âØ}]Z&~Wѹuçe¼\ìpNæD] õuš×¹$ù2’©í¾ûå©bÓ5HŽ—ô~˜Ò# *&ªMaaÕù@VçQ{ LEþÚn4ÁÚKX™ð”ÓGÖõèÓÁ´Xô´¯ëÅ>ÐP£v§œèU} ¦ŠŽ¿ŠÞÌìÐC‡ðÌŠ§[].˜»xžÕd†[ –wûDÁnß/ä¶ôá ®ÅþK„ gý aÏ +S"l}Û™¶Ð0?Ã6¼Nì{ß.‹°óß«*ø aA†GÜ.ìàÃûð±ôžõyë¹ýA”^¯—Òë%’:×Wã!i«=¨“ÛÕ‹³ýâ'¥×Ÿ”^¿$n]•^)aVì9Õ\^ÑVZ2=@žf¦Àއ…f³:)|ªÑÝæ^Î?æ̳ûQ»ŸwfžÐ”º€‘J+ˆ¨4@»<Ý mTǪ*êxWÞ-HUY)Ù®³/‡£Df,KÀ°M4²Õ9ª¨jͰLŸ•ó'Š»¨ýtõffgù.еÂ÷ªÄíQêöî"ž†Ë×>ùÔyƬ#ÖH~H T×ÒQúà}ÞZ¯”<}  äÒQã”ä“™b{2Oð³´ ¹?uPa1¤m“Ñ#z)¼)¨Sq/E5Áí€0Öâé£{"Û)O…A-Rdžh#lÈx-íªÇžgp8vU!kÐݵødÎÁ°ó ~ÕýŽÑlòQWªóõ˜'ž èÅlj{¥Û¡jk•ÄW¸T…à”l€ª+5ÞK”Bì¶ð*¤cê4Ù®[ÅÎ1û^k99ËàÌR[£ÌR:‚ßü|rê +y¹Ã@ Mqœ©ËUÀ¤ß¾#ƒåêþ¥ÞÉpwb {3g×äIjPâÕwñ¥O§€cèËì˜ø-*|æF‹Š”0 a(‘GœäQ +Ͷ£R£Â—†A­t4(}ÀÒ쬹¸{8|¶ÆÔì/lÎ,y‹çWÅ}RЧLS=^Ѱ%∠£"Csé9.o`j—¿f¸*䦩öLöÃ’ +[µ\Û‘Š ÀÑR.WÓm’'šxääA»P‹-‚¯ß,¡ÅéHÙ•nTè¶XKew-3.‡Íù‹Bg§ü‹/IñJŠ:j؆ºGÔÑCÃ/Ö]˜÷:Ô+*ÿfsn@É{M 6Yš ècs‹³}$IçCDôò a³ +Ú5‡ƒ]†ÊVG>$M”ÓµÒ€ +÷³Úmƒqäó$[Ì CrlMGdR¯Iûì²)CÐÓb²óð®Ÿá eS4B£;Tþ†íÌÙ˦®^fwø |EúÈVßqÃw©†Rv²Q\ï¤n¶K™3tªeƒÿ»‘ü(€àÙYýæçu¾oÒFëÙÖ]]‚þÛ­3£V̓dŸ O BTÙ¿@ ºnläúIQÁv”ÔèeÚçi‚бÎÓÁ‰·Ít;Ú,tÚsòcº=ÏÖq# Æ¡~Á8ÑÇØ£qª÷ÀWÓßq«¥¬«ìñëuYÆ ¯Ë{ÿÓ8„çv%¼Ã`Ÿ¶ßâ6oáSƒfC4¬›Iìs˜›ÑƯóûýâÞIpå—?ùùwßýgÛÿü/ùý÷ßüî7¿øó¿ûÅ_}óÛo~ùý7¿b«|Ú_…†Þ9_{ù“?· òÍéþìWß~ÿÝïtÊï¿eè/þúûŸõÝÑü¿ü?l‹þú»ßþã/þâ»Ï¿ø¾™›tO¾óo~õß|ûë_üå7¿ûl[ôëxRÛæ«¿÷›?ýûï¿û¿ýåçoó·¿ø<³zá¼üßýwòÞÝÿåï¾ùý·ßüƒÝüþ; +±bÎ’âQïÝ»·ó×ßÚCÿ/ßþêûÿôϾûÿÑÝÿÅ7ÿç÷¿øö7¿øo÷Ýoæg԰Ǥ†Íÿô}ýûo¾ýÛÿôýG—ùëï~»\åÃõWßýÃß}tZ>®Í†o¿ù»×o»ÌÊ?ûÙõ§^ñg¿ùÕü­ÿûçßüí·¿™ù¯_þè/¿ûõoù«ïþþwü³7ÿ[~Œ©-ø/™jè^ü¡4µ[ [¡·'‘‰G“/÷§úïÿõ~ö$Æuû€väõÏÿÞþçÿeü‡—œ^þÇ—ÿíO/¿ò_þÕg{{3륦pä7ôò»QáÁþbwÅ/µ½âo¾ØÖÌoûó_~þ¿™Âše|¿øão^ã«@LzùŸ”«¶=Û¬­ýçt?šÆ=\÷”q½†³ýzd;9iÇylÊ V?Ì鳡(Dâ9¨°ƒ »s:t¯¥K!1[ ‘âè\~™Ü»ÿòpÎõƒÓv>šwkö¶H6Nr)ÔtDm:PBjóôüªéfŠØÍuöPóè†Bìv:FøþF?8f:…¤ðNus0b¶eé&ºÿI=V¶i·C 2¤ÛOéç%ñ¬2BûÞ@¶ÎG£b®†€Î’c°èå!U·TKUîyܶqŠ•În¡ÐGZŒ(¼_±ëpGEè<Œ5ü‚±”nmµ–þZŸ"iÂqª7—Lm阘º€ÁÀw#_×]ŒñéRóœͽ(P-æý 2N‡ãNN1MÒ9rBèíä¼²ÄÝ×ÕENq•Êô´:%¨ b¹ç'0ÀÇa5æI([µàájäTè¶´A<Ëüû9T4µøsʨz‡Eo§J¤u‰sÓwx‹qàÝ`”Ämâ*Ë®½«%Ðþ·ß¥h7™Úùv™È ã2]~¡6æé»ó§ª‰¤z(J³(Y(OpÍuæR÷Ö¼E)†ÛÔH\*‘™ëï:koÎÇK/OøÏC²êÅ©M[¬è$gžÚšÊ};¢yc' ±:o::&P"Á9³r.Ô>§»”åè`Ãí/®ˆî_k9à÷¹aøÕpË·Ò°Äë¢ÛÒ®ìA€Tù|!fDñ@á6ÿÒnèž3ŒÊJ +&4*# +8࣠T`Dåí2ߘýjÂÞd&£cŠêļ§ƒŽG+$cè\gÌE‹˜À®³Ø´â(ùÛO4àh> Ëa–P|ñ§À—|^AÇ!ë„]~»Ç>¶IÛœTZâÀíª©>áK:²´râˆÓ{`m#B:¯´Ž"}:*LŽ}‰¯‹Ö™d\GöšÓ‹@¦ÖÄ´+øi•0fá³Ì¾ Ijò§®¶°žóNáe@ƒÆrĨ¯v“÷>F,ºNM;Pµ“®Fâ`¸›-x­´'ª‹‹¹bkÉf–#£æ[5³¥–Í]![m^äck(—gÂ5oì;Ø®NäC—í°h›‚æïõ¬Ã.¢º¢[üפÐùŠ_Z +ðóã ÔÌâŽuNY*[ØYá³ô¿•<ßåáð E9A£´NlØNJì&´œÐ‰iDƒ(á̡Զ0àÒ…+²SØ™+·NÒj3Íw0•-l;iOezx…1—c÷D£0X8`MÆðòiˆN–e¡+c6 2…vç¡ã–ŽV:n)\Ãd¦®8ÕÝEÉ'+H.Jš[0ÍxsP˜ )`ÿO&‚HÉp…Æå¶ÔÕuy¾FŽŠ&˜U~z@ +«…­gw¸ÎÓÛµgü^G +œ¸ô¹6È"in'§1._%}ŸàõEP‚+5}4—¯ˆ$HÐf;)ß’©ð©ÕÛ1mÇk73ô‹Ì Éæ^¢aÂaKMêÎp%1üïà¶ÁÚéŸð—ø9`?ÆÍ> Ô5øWfvE¹p(O _Ëy9©¢üz{Ç ‰û€Î’©ê8Qjv—vþ*y󏀨À| +$àXs›‘bn›©ÀÛJ}¸´LÀ·í CõÍÝM¿Ò’²ErgìT”H/'—¨‚Gœó,‡Ô|v*­ ³Æó‡°*‹“Ù¼úcâóEn…j7ÔDU„r÷Mu-Eàâ¨( õ +›mÚŽéã·ÕS“ÜiXìÀŒm€:ÍH 9 óéᣴïJ…ºš,>Ô9 !û"Ú;ÖqÖcµpÐÖèÉ=€7è‰ /ˆÚg–䛂0úæ![Hõ8àwgoÜ,…*Á¶÷æW RÄ'B8—Ip……¿'!+ý\χlÁˆÏŠ—ƒáî„­@FË÷Sô~o÷<`$ļ':CÐ|j¢Ýâ@=ô+ý¤¶Ëÿê}BG÷"Åö)!ju8œpƒÁ?ByÖo ‰å„°öÒƒ®ÌDˆKì|>êâp,ÍYqéãí–žçP'‡«üœ0PŸå•Ô±;@Ác’-ÍqâNµ›8´("›«;–ˆ¢$ Gü`/®<x¸n[1Zö /È>ï_°n¼P[g´‚×­0¯ú¤…öÓ-í[&6HP’ÝŠ8lÒž¢5)Me³Fïõl‘à,ít‰¸›êüøkZ~vN*3OË‚m§ºˆÑye:ØÓLS wL M }N#†)d‹£†QD^èTmµKž›ÅOÒÙŠQ8!h¦û÷r³M1Z>P0@6ÃgK#À 'åsÉÍ7‘øë®Ý¼*Ú8gø?²ÿ +T¶8PЂ”çýßw´Éßð>l;úÐ%ôHu’¶u±¼Â„èÄHf¿HØRyÚó2HCÀ׈[:àuf<~­ŠEt ¥£4ßP¶›ÙíAvÐ3¢S±—Ú1ç@Ϻk9w² lbÄ’a’=†ùâ€äNPè’EÓqôYÓfù»Ä™esp0°­K¦ùî~êWJ‹a·š4ÙÀE E0Ü+¼ŠŠ¼"…sžnÌ:9?‰m÷Œ¥3†¸u: ¦8»ìqi[¦J9Ïa_~[€f¿5²øæ@úœçìp,ŸäxîNQÖÂ"qèTP™-Ï®añüÁddØÐšÙé».:p +yo滕°Ñ n»Íô=9FãÇà«äàÉ¢ÐX Ék‰Z\x«îˆ9TâÃʉޡ½ž.ɸþ÷Á¼1SÄãõôyz ‡8šøDE¨u:%Wd5—¦|›.î¨Â{²µKÒÁ¶Lˆ×ý¾žŽeL`¶ÍÖ0 O„¿ ƒ Wä]€•u÷¥ù¦a·Ø@Ä„ºç4ãó:ØâyÒ).:5ÌÒ:½74.$†¡¤K{ ”:Äz{¹²OʯUü:¥P""®îüÓ€ÍNw7.àù ! ñÅÝÆIùˆ#ôнY˜æ¶9 rDþO_`-$B‘Êù˜ OíC\x.ò- +ýÄÑM¹x™íhF¨§ÌBÔòúwÍü náÝ)ñ Jé÷ \S¡}Å“¼=fýÜèd}Ë}ºõ 2DfÁ:Iç ¥µ„Õè£ ϸÝóqàþòä øòŽo~eÛ§m pé< Ô$v@VìA€á¦Ã_Ûï™*딜±Mfê»: ÅBleÞl§¯Z3àòÚ…¥>¨‚ŸÓ©âAö>[PËÁÔ³~%–H»CÐ :P“_G. ‘îw§ÒOgo¨0—À‚—X„a˜‰®J8ÍK¶P cÌ…ÁV5øéŠÑ¯ƒÙl‰p›¼Fr=ÀåÌ÷M­ñcxÖŒ}!ÔMð`Èðh‡ânáF†_ó…ß< ÓÁü/ +b}ýQJJÂSHß““Äæ…´w¥û­rµl¾pPî)C(…xIºœÛì°YP]BDî)ëÑ»ðÝÇH£ˆwï°¹¸Ú.Óã_ñËT+ 1…šPv }ä£RŠ#ÌÜÎG--ä‚úäüAÁïrð("èüŠv%s7lé—zd¯5;ÔëâC[h\¼OHt7G8m¶Øì]~:FìÀ¿§ò<äßæë¬—;ýöIÄÏ~@{ŸžfARÚm….é`q ²Ô桵ÿâÔ~µ] ß÷Ƭd­7V"<óÅÕC=Â'Ä´„©Î{ogkíË Æ×)ó}ÀMä©”';MÉ·¿ºæD̤?ê Ų“y®íá`<$Ñ7½‹¡ °&éOkŒ;‘Üt†ú"à—ü4ˆJütíÞ£QlôƒæêWb$(˲Ÿ‘­ú»…üüóz¸+ú› :Hèò W'9Øuàõ³K‚49m>4m£êÀqOµž=²\?ëÀ,ú‚ï¨È‚|¬‚køÏÝvŸ{Z6!±Ü£G2ø` 2^©ö«W¹‰$óíö’eGÄvZ&HÀ÷ú»Šè¬H†“R9»‡o@EµI‘"JFå|ï§ËçTV’Ô3y$³°ÕìúØêAÊòœ)ˆN=›; %lžÍãÀç;uKZü€½ÎVÃ}Œ…NQ kqu ¯ã·æ7„Rö„Ó~dj2T‚ö^O³+ì\f5Q¤¸äÄ$‰ëRQô4•f3»Î‡ohæÉÉ‹M´ª4’—Ü'.7!­©cB6‰Ã²| UR¥&ðz›<ÍO&4Öíþ»ÇÐVÀô`écºƒ³q¨µ”F™—I$JYw5Ó'AÄtÍÂ4ÇÊéÇHeé‘¿ˆÐ·ã[øvh~€|„Ì24E¸|Þ‘$`—’t@õ/ÛL† »&}:ä®0ntˆÛOwJ.õTßíñ*Ë¡5±G$ÑR?ï3©ÇA6v°®6 ßá‹ ŽJÒÓ¶;pÐéT9¡B!¥qã1̇ ] `Šì¾¸b~NPjßpH>V*±™V%îÀûÚùËñ×3ßR µµÝ¬ÓÒáÕ¨ôÈÆÂ°lÁ«úðvýû%®ü™®^Žeî5ÓªhöÿOç³£•Ú¬d¬,j¤™) ÐŠoAOŸ:À +”d¼Ï*Ì„îºNŠY(> )œéJ¶ŽDçŽÕ€Ô˜Ä¨Èµù…2!7 .l➇SeÆk[šØ·rM¶^er PÆl#*U n%‹ûãr¾]a1Õé‚ +½IP¿ø….ÕßOä¨W’‚x\[ž·“õsù°kÇ„4ûy5}ø@ØÄ<¼irkÃ…|¶ÄÐÞé%=±Ú\©UüéEŠ·'¼—*²î:Pœ£©È,šì¶í“hpž ˆël½Þ~¡6qè:Xõë*ôù(²'ÊâÉ8ŸÀFÐù.2zOøœ&‘…êdCÒsâ3ªÂÏn£ ]f”ϵÏW¿Ò‘užrô[¬ÖŸ@öI¨ø#6¥í§¼ÜÇ' £;­€’,k®¯§ò¶šTs¸gèëx üº=q¿Gó W—’ ¸y"ŒÇw½$öÓH—Sº7Wëþ·'¼’ 1ƒ‰Èbó¢‹ÿÓv\ ÔIPz˜×ÇršC…@®JPBÝ´.žbF»¯@ ÌšuúrÌIDv¾Äþ\óû´ÿd„©7çI“YÛ¾T?\YEƒV>qo¯#ðT×xœózýâÏ£&Ó·M­‚e†fQŽáiŽ”è”ï”Lžs;+Eß¡/„S̺Ú]îd”½ FÑ,É .¡¸ëu8ç$’¦†ŸÃU#š¾)¶éœ#0霢Žü¸Žoæö3z7u7+£%2#slDÃø0B¤ÚõŸáH:ضJW+„„$Aj¯³F¹êq à5#3zÙ€!c8©BÙ¯¹çyZ¢œúø»¯èÅ?yüHM íE +¡T;¥ ü³¶ùYïuF\< á:ËÎ=©»2“g¾§úÇ!¼iìc*#ØÌoF|ž…¥@A­´oÎà ™`o6ÑyÉkU}U¯átÉeÚ~f&«¿ÐÓBîëëYž•ÈzÓ³ª¾‡âb2ä‡çÇzØ)£_t‡ÜbU0¼ætžž7´À  +/gKþ¦¸m9À‰‡wyÌŠ +ÄšÄ}dd4ŠZ©Z. „#š¸:ÅÞÅÎÃëÕˆLšÆ â9¡¦µäÀ¼¯ä{XÇøû(„ÐÕ$.Ä àI;¸ ,cBóìæÚðй¸—4I“¼¡†1~yéí$¯r9­Ÿ ÂPw®’#Á•B±¶©ì}BP@ø[ °Â$¢†·Ñåt?Se±k¤a«ÏHTÃíâ…éÌø¯„´¸V¤Ä4 #>OW†&&yô™Ìh8xëÙÁ™/lá¨j€î¸ ½ìF¤·æè¡.i‡*­Ø. `Ãñƒ¤ffáú˜hí…"_l눇½ikŸ$“¡Œç!ñ)‰-û\Z÷©úwš .JÝ0ŠLþº›¿î|—¢ULíELÇ i}`ì²ôxºÃ8 ðð1ÌX)šó\H>‡™'‘ÝîR2‚´âãBnvï¼û¡Œm ÂSè<FÀÑ!Ä $Yâ±`Û¥×"œÊ嘚tŒ¬S”‰ñâÍø…(×dñ*ˆl„‡hÕusÕïsZxIŠˆ¸l²`IÂ?qÄT@éWn}ÊcÅQÔ‚\­fA¼hñº¤§C˜ëüIÁ| wáê,ªœ]R®;ßvMF†,Øÿz–|J )u€q<èò MJï@ÿÕä-%˯<ØŒ=›ùÚ0•a„×Í›Là ÿã(É$àÏ' Ù!BBo‚VR5.ޏ&²Íü±Öî +ý: +€/|%0/vV^ù`¦8l» +tOÀ©gšú"@ÕˆüÀKØ„ÀÛ’Öì9 +Ve¾Ù1A5>líµ‰çv´SJT}}„ÇÖ̆îøg5X\•fÖS£47̦>„±Oƒê^Ú^¨{šI þkqMuLDfwP¥.éBøå·ƒ»+N]¡?jÈr%HKì[uŠîžüB¼ÎÝåô鮓yÀe“ ÇË k-âuôæEf1Å‚LÏÞ¤ »ƒ`ç!Æ8o ²sÝ‘85R©XšëŽÊ’t›n/€>‡ +Å*×(û5—à†„e»ŠóÒùž1²bæàÔz[âácqðA`‡+Š&* èJu|@ KݤlH ¿ N¨sÙþ§êps²³ÎÝ´»ò:aâ¤2F㢑—¸ÁöÊîzÕ ýidD  HQ%ô"<Í1¶44ªÅ„²u‚N$<¡•Œb§cÔ =Ç(ÛáೈL¥èsâŽ2> uÆ€^³ÀúÆ~*±.]hü?¬½Ý®4Éu¦wº‡}¨À=?‘y8jÆ2lŒÆ:"„–l¶DAæðÝ;žç¬ýq×nšM6¸+¢2³2##V¬õþ`JÑá©MSÍKG¶•])ºàÐ@Ù_%'Òž”u™Á³:(Õ²öˆµ¤Èh”bÆÉdŽg™ì“¼[Ÿþ«,X@sBР ß­‹Ú? Ô"ðë¸L“GQ’*.Ïì[qy~ ƒ+ðPÞÑjU½›À Q÷µ¨­Elúö Ñ<ˆÒ^ò–'ÓA-~ÈzY¿ ¹<®öð\9Ó<²¦ql%\1!»šèNÎÄcãLøå)¨yã¨Ýå¬lG'§d¬)Í8©­¼ œ&XÇÎ-URëd~J@1LknTÿ">éܾ¼ãÄY¹úÂh®‹&%ØšŸ7šî¦º»f?á½õ8ŠV™^ÀE$~~ €àÆ…Ñá‹o-š^Ò·ØWù[’ôR(è±Þ.út ‘”MJÍ• žý'Í0ps&Šœ «Þ‰I†+浯å6 |cÑ àÖÕ£ÂA®½ÇÊ1=Àw1L»˜˜#•¶>Ln`DI…q.q×)·ò +uøë¼í'üíA²„íHæ vFÚ¶Ü©I1Uà +² ©y +îÓçæ’³âD2Énj)ÕâÞlÚqOIÒànv4Þ^ÑN‘8©¡uÎ ILÔwL0÷B¸œì˜É…•¨êû(Ê®¸ZüŸ ßžxð9…¿þàç¯E¸þ‡ÿô¿ÿáßþé_þ¯¿þ›¿ùÏ¿üòßÿù¿þþOß?ÒQe/h»b¼²‚ú#jÏ?ï`a‚nÀ‹¶wŽ÷_¬¯wYì??ñì%³QÏÜW6Ö­±‰­¶áLf ÇÛPœêJ00ÂÑ+<ù •.{}ký.Í‹(çÙà¦í†9\ tõoFSÆÜ6ßdg®€êóêô¨(ÙÏ,ÆÌ]\sÀ!lWaBù±‹öÄd=;¤ƒ*ó‡¾íðVVOü“¯ô91ZŽ•(ë~¡úƒçë›_X¹Á¶­Qâ0%qÂçëÖ{ÕäÓ ÁëŠW׿iø„…³ýž…UËÎ&ú& +Ï©qä Ô9ºa2ÊÏ¢|ÀÙdé\1ùᦞn4êÞž¬?¥4H Yþʸúù7¤f&ØÃ›à›õ¹ôÈ÷Oþ;cG/w‰7øTRY«—d2&®ÍŽ5’FÍ÷Ö\‚ð<9 ¸ï®Ÿzœ)=ͳ¨—úbò$¥Â,y¥‹À½Ö<Oi!X‡M)=*ë3ghíáJr)̼ø ¨Û¯TÒØ¸Žõ¬Œ:ª(*÷ì#h‘ºÍÜùwŠüq9Ís°ì œ…k%0‹Ç€Œ„L > AÑé ŠWó_Jvûæ;¸Î˰0Ž+¤°Öþà4íq÷(üÂ8x‰¬^EêÕ Ò^z‘é\>JÄö¢f‡ÂªÑn›ûäÞnoÖ z\`»è¡üÜêQñɹc¿c/öâôj:Å’ o/‹˜õ1£¡èºP?oz§0y³É¡OòŒðJ¦'X¢^‰+ˆ`|'¬CQ@ä´á5­ÅúÔ§»[Üã0+N¹uvžwªQ WÈŠ]¯âñ&ü*Àlê#Yé¦xË•,¡î´AN³·m!OVñ˜’W³ÞBÒ4RvlÊ#ƒ§ìiB:å‡]˜AÄfz©³k‰ç07‡48ØÁu¥ÅõuͦŒÅ ÄéUºiĘ¢À)YÃ%BÊ™ ã\ªß·zåÌÑ覉½a[}é½7}äúÖˆ;Ÿõžê•ÒK‰Û3;¨÷x…䙽7ÉÞ×Vž£M¿z¬ ®¯3UÌ­¾|²Ûx¨’Ê娰S …ìµ®Ë^%B8°L¢kƨ¿w§úÏ_§Õ!z0`ØÌ/ê¯"ÑÖ¶—j“{Iæ5ö’Í/šË ¸ï^ÿÑ÷iym9íÜ¿ ˆáI’æ!o¡M-oÀk…DËù£ï’Ë_µÒƒèS s7Ц ú¿úUPL¤Á‚¼ÊÍ «ÜQ¬zBpU,œìj =¨O pÄÆµ«ŽÉÙ²äy»eã(7Zsi»¸.³ +’ÛËíº¿˜8GZ°(ȲbÞë_z0kÝ·¬Q!ƒ²^ûC¯u-eÖÓUhCD[&ÛªÙ»ürñÖ,adDªf\õzÁ;«´ÊGYD‰áA¶h£ÍêÞyQî†ë¸dcÜ€X\pÚ”•^Á¿(üàùÕÄí™Û.È¢Í!âÁ£æëNs¨€cécÔ)ù—wõèù¼½Þà#Cf}i’0(J.·Œ–ßÒb F2È“.™4:_0•Ö3ñ¸X žåá¹>Wn3 C¸0ø D|YVµ$žœ)Vܳ¯Ä":¦ù-7z|iÛÎOìòMU81{œªDÔB2RŽ#ÎÄÚ«!f² ìˆb°8¾Г; 1vCm윫“X°Ñ‚ + Q—ê y£C¤ýòͦüdü»¯¯Ã]ñZ :N•›}¸4 ‘îyºz·9C†Ó4¢[>xîWù)§Wÿ¡¦Ý<–åd‰‘>€%â7Ʀp-ÍÌÁSªÿ…eÆ+B¹e (?\a˜' +4ó/7•ØK³ùŸ®­KÐ…Ù2-Yû©=„9•Ö¸cÉsFù¨ú-9À«á .§áâ Ñ`„¸Æ2Q¯ñy¸)Ä…8hTÉfÑ ˜²s .ÁÙÛ!„ÚªA y‰ý2%¢w ðNݯ¦šÎ¸) #™x Ð{‰Y&CÍ|÷0^XµÃ`Û­ÛvÊ3ÈH r‘%'£É¦ùˆÖ…ôO˜Ê³ë§G. E3J—ôãvŒžV7­{jÔ[ öšÖMÆ3Pßô4YdŠyl@<Ë"¾æ ~"kð‚eZÖ^ 5zÖzÄ9ô +i ÷€tQ.›Èêþ ­A%D‚˺cÞ?mºœ#p%Qq%bŠVí“Þ$†€-î}³¤¶Vû®x^×.C¹®‹:Y¨+ pÉE_€]Yzö„V¶Øÿ[QßU,„+‘ãÇ8ÖÍÊ¡<@ÝB\ñ€Ò_ôq*#x,väPÂdÕQ)ý^²NÂο¨™Ø£§CpÌvyÔ#~ÙÐ4ýh©öjäÝϸ•œ5,LÆ; nÃÖ³!¶—ÒÐ<ÓEm6"Ím_Égžb­jÓ‹ÊðfÓÜ=|¡£Ë™Äð}êí@ãíÒ[ÀÏ]Àï@]u¨ pQqBM4Âð׫Q¹D‰¹]wøªœÄª%Û¶¢IdúƾTÒÝ—N_p*å®ç~míÍ@[+ŒþiŽŒÍ×Då ‘òdR$±0’”Ðv-“h”` ^Ã4k…”ð%ÌF4ÉÐì—dÒ¯×/•½~)Ú„H€ÜÏÄIdâfËÔ0@(Êsh[¼ œÈZzÈÌ(Cã@DJªt~ö ÁúA˜0H¯¬QxA…’»r~ûÃnÝý@?FòÊÔAô³U¼J|5Y£ñÕ”^t›×Œ4}¤3ÄrMú[V„¨l°Œ¸`44îmyÛšºí"[@k\:€æ‡!UøSŽrÉ7ÂUR°·#R4¨4ÉvYðk˜À4ÄÅ3Þ/44{'B–ª¾‡ü@b{>'´¡Õˆæ_e­_NLäÑž¬ª™ÀoÏ®7:z ¾É™×Ö6"‡QоÈG+R íx @Ÿž™¤c$á4Õ3Ô‚¬µDªejÊGö’õjg d©}î×HkÁ1’àZXõ4\§GÑR?(¾ÅÔ§€x4A©~U‹÷ý}بE µÊ®Íéƒ_ •}ÍéˆPÑY¡YwKEȲ"=‡£EãŠ)«E]újî–¼uÛ bCj·‡yý'ù‡£1°L<Âwµd„-¨t“—Â7¶2£A2TÍZ¤¤V{¸s£ÛHbDQo!š¾4•TÀÂ{çäD ˆ ¡õÖ°ž|%ª7;S‚fÌ„˜Ð¤0ÐT+YL:Ln= ¥nõ‡Èð‰¢…‰Ês –EotF¢½1‹®Wujpzí€v@LÅòê0AÒ,ªµ4lðß:ú"ì»J T*0[±ôÑ66kƒªÖäDê¾es—Bro¸ ÌTR•?þXŸï} 5åa¡d _75i*v0§È¥$CxlôMOYc)º›Þ†ä•Qûeí­ù G<;'ø’À-‹ØZ˜¦^–lû¹aHÕ³ãÚl˱ٖ%âX Òã„g_W¨×!¨èu«È—$Ô9Æ“Àc8¨øpa»é³eã65©C²ÈdŸê >fÐV­AÏÛuÄkYÚ)d(…ÉuÛWò<œ-@·"œ5—]ñ!°ö>äbó£YXQöU¼{ä(k•¬ƒš[b¡·‚ZnAèGqÕÀ†ááZ¶à»'ÏadbìÎÇÆB4Õü©zbMæžÞ=´[‚ZÆ5±K?ú§œ‘*."Ä[nÈåo÷¸¡ *@A¯‡¿#ëS¹¬9Ü( “#§Ç?¯ÀFú£OÈ9k"8Ý*^¸S\¦Á>5WX”™¹žIwµ CÖoÚO¶^1rÓ`gÔ‹#(˜z7_Yü¯Ù•ܯ¥‘^iÀxV«Ñ² Ìœ48&‰•/ñ¿vâ4’Ú|-ˆf O-ç4²&Àa)…í2(E¹9'²®Y€ÏôØWd0°ÌÏf¡-k=•9€Žeù %›©úa“pöº·òeqIˆ,¯AvíMÞ'Bˆ)œõñ¾QÐP˜T­HfÐÞUÔU˜ÉFÂ8,4åµ£ÎÈÒpì„îI YÕ Ä,4+êDûzŠa@Hë4 °Ž³¦J&h0œª,¹‚gusB²ÀêZöq×Ý^#;¶. ‘‘ /ïì±€-™šw7îÇ]å6‚TT†¤Ð­ˆa½©’ÇßÇ£EOeÆøŠ—‹»C!wëç2%†š”ù·Žò¥?#i䢙—ž †ÕÂ\y~Ç´°O§zï^Ý +–JæÑçŒVaØ4ot2èÁÖÆ;F©•æ8öXññ>÷qü€«UHPoj/­k9?¾ö`á¤Ç*oõÀ°ƒëQÏœé6w¨¾t7[ áu<°ê3UF¼[J¡„—Pé1•ñÖ£¢wŸÉk(Þtªp¶*’‡3ø«@.˜BéC5u·€ß¹%¶(·ä„”’sQ¼³lFÓ¢Õ¯69¯3yáëL·œtF™QÌ9Šxÿ¦Ä=™¡Ë›H©¸6rªjxŸq5\sÜmdëBÀâifjµÌ¹Š]nU’{«çCõ•Ž?á&ëú¢î<õá2x0yÇláTÝáæ­…#)"$g—VÁw†?α† š‰õ4r4rËôÖ\u:¶Ä55iZ«aX¨@nþÑ´¶`ÍÅdÕoc_ ]¤~_j+ί@äí߯("(T„ “*ûÓóöÃv*]ˈuWª‡‡`—s³;KT{5x8ä/˜m„)÷ç—ÌZÆ endstream endobj 26 0 obj <>stream +D¹¬_ë ðõs4¶’ã[[ÙkÉZ"”q- /q΢šâ² }gˆœR‚ÎPƒ_ É®„ã÷êLpíÖþ$ÇYÀ›™¹S-ù’½x T–eŒËØñèµÓK¹CéE2”^Q<޵H\ “ƒ¨ M†+éxؘrAþ“ñG&|ÿetªN£bÝÀm  @~ddƒ¢,[^‘JNL´ ŸÃ¥’œåPûû<"i¨y7éWÛzGMÅçkÚ°áÞB–Èq¾Âñ@­ïþ“;lX"µ]0$‡êì"? ¡Äøl’ý‰Õ+lŠéÛBŠñ*ê,²4™G)Z3Utbs¢P«¬‚u®ÎÎáŒ|ïVu{Š+ÄHT¼¨ÜØÀ¼Ï·ns‹™ª%¥°'ÕvItøÒ øi6ìÐZÐC¥‘¾1y‹õ9u?¿T@^!>J`VlxáqûöÄ!úwÆÅÒùv”¸!¹,É#ì²æ8eà~eÐýüŽo¡¹¦AªÎØ•g²ò]ö&)‡¤"„@ç­<˜¿S`×Ïå¬iÐ6ÒU`gŠ®˜ÀÔÙ|À +L”õ³”_ô€#ü‹p±pRÿ°ØßÎÝ%j5ÀÉ£!¨ +d8ûþ*%qN0^¥“mtž'q:2 7&¡ŒÏ è‹Õ`s¯;ßth-kЈ¤øV'óo=ÎÞ)€Œ0`Þ{¦vµ<ßÖQÈt$ ¤A%Kˆm kn‰l:GãMÝŽOËY«ƒ×Œ<ö}òµzÁsõ8¾¶ãz½Ï$ÉW®™áÊ·Ù” £ÛNHÿ÷U/¹Íc‘Ãlê÷‰DNò®„Ê£)b—ÃP‡…רÕd±Û Æz89zz¬?)äšYƒ¤{•ó´9ÿD>€=I«H„Z€K®€£ÈÀè2}·—Î %qxEÝ%¤q~.Iä~ ŽÈ@0NÁ§Cò±4ó1ù™;Q…Í0–û·Â8&1ÐQáöËç™Ø·õ8»ïߦPjÖµ9upYãîo(9ujë…|©ñ¼õÒùOFÖ6)¿}&ÿ.'ñ¦[PÛ>Õò|ƒP+¸Ú¢8ÔS! ú¨ )¼‚Àµ Ù̯ƒ"n2ÇA€¢5¯T½5A!Wo|so„>¬eý"è¨ig¬åQ“SP±†6 þ")™u[G‰ß¼K.¼D"쟔FVjÃ{æ™&ª™ânñgjß­¨#¾õlíÅi®I§ìb8 +éˆÔUÖK}÷Oé>sþÙP²×Ò_p +B/Öä5dz ùJã<Ì¡•|]OfŽ}ü¢´éx•±Å;\ù:äJN~Í ¨‹÷ð±³÷2g_£*:ÏÇ6>_ÑÒ£ç/…õŠ +—µÊŠyiML"2[¬•ãH5žPœ\ÅŸˆ~Ëýà|a+\Ä@¾ªæ(Ç¥xÝÇPþÖ(‘Ž„$á¸>x‡žù±óð4Öž›ím l ¦r«‚Ú`ú`ÿ'¢åÑÛ<ÂÖ_½Ž0„<ít)Êp˜$.ŸÂ» ¨€&a*JþÞÂ7ôèm »Ôc~¢ÛD½ îžpðÖu—ÛÍ)æ*H©¨Qf{èx/õ´¡· =£Ê‘À÷JídœÀª$/@A¦H· _Ñ ËÚ°\§ŒýÕ¹.ç^µ‰s>RÞâtÀy(F V5·|­ÊĠĆ&kía°p$Xè°Åì°¢Y‚×,*UîÛÓâþ°zÁðN/g`@g(‹ŠLB3»Ï] S“®  +¼{3ÑCN,y86 øO7å&SÈ^}_“½ZUfƒº¨’§ÀiV.ÂK–r þ$«zõ)'àÝúºM]Y]Cmr‡, Bèú`ÌŒRXÑS>¤K¾õ¨O0Bõý~JS™^÷ÃûKàl +÷êjyëAÜ1›`ƒU6€€°ŸûS§ ¤Zû|€‹2Æ0  †Ç­E5@½úºõêçãµ§Ü2ÖƒŠE`rÔzk( +&¾o$wÖ*†6A9D2QË+þ&Óýjð¿úâÖ’6£·_™ÆÅîÆC ²]yëñ ›0xÛŠý¿ëEÍnÊ×TG³ +º`ßèâÒ쮥¤¾ŽjØí[ºƒø‡ ¹Á<«×¤`£H­:аŽIÈ”™w’’>¼ß¡OeÈœ—UÀ5YD·…=e¶xï^¹P Z7;TV0Zú¬÷í1yÅÊÓöROf¦F»<÷/JÛÑRÖ‰€™ˆæfj7+¤Óë–]S¨É¢Äu‚rGȹztóšŽöÞ#O¥Ç¼^HtÊpÑkäéŠÑGë'.”šqu×Xò½ÇùÓvëÐzeŸé­Õ`ž.öÈÁ[d·¤PµÇ`›8̰o·RuþÞ#7 Ýø® K÷·Ç9RàB|Êg&q˜M-¢/$ÊëB6d诘a† !s¶ø\Å\½£ДšÁ= #>d‘Ú)¨:÷ÏKŠH'/iCìöý8øK‡™ J²¨vp¶~Ûƒí‘Xvò϶o´ž½®Ì*ê’À5hðÁóE©ÁÆS5P$;Œ¸ˆx¨5“ÿÖ#7¯Ar,Àûqq/ ý‰¥ú‘Xª(¾‹ò]=åbò *ÏE]ç ¥fvC#FLü=IC¢»¢t; IܸZzÄ:`Ñ Và•jÚÇçqµ}¹ 3ïÇXž³×šãt¯Ÿpu#¯’\‘¿ÊZs“Šïí. róÔ½«¾¸Ê%|J>ˆ“jgD74YG—Kï{ÇÆX—¯¾k­B&qw¨»ÃÎð´+F|)êço½$3VÄ Šš˜Š‡¬Ý ÂÀßõˆl<šv¯ö½Âê Y@%»˜ª2ñ³¢(kþ¡€.˜Hl%X‹@{ÉsÕLé4ê­Â +ï2æYQÈsB¹CDÔŠü+ +ºkµÓÜuz¬èõz? +oÔ°W3½×ÑGÙ'JT:‡Ãþ6[«„váy 5äÜbCf9èñpù›Úì!*dÅé“ï|N8]Ò}¯ÄüÈ8ªÝOÛtòšÎ™ð¾éq UZÏŒ*èà ýÚKA±3‚b×5Œ1£Œ†º +®_Äé×<,€ë[i{94h\RTw¯©OO­~Fð $&å¦ ÎgÒ>S¹˜¸Õ='™=CâÇ<'DË|…z¦ÆœEçàÍl+SÁ>•÷8”öäö¿4^w°$Ï-Ñ^º ƖƤyκÓþýx "Gå#„³xÌÏÎ<§µ% (6¡¿ÿ~ÌY_Ïr +AW4†ÚûÔž”ÃGv“s½hàÆŽnJáÕ©ûœO!$5®;N1H¦^ïåz—<Äà£MÞ.%’3üx¾’¤pv7ÊÍaë—ãÿ¹B¥ñºçÄufpb\ý¤¤Ê9]Û4ð +á +%Òf§r¦W„ÄÞ22¿o_gäméÖi±Væ)š +úýÞÛÿ:Á—F hÄyY'X[µ‰Qú×W©SY”d3÷núÞpŠm5 +¹‘ô͇øò[e9(^Ê€–ϳ>º!uv૞ñÈ6óJbZ§?@8zm +rïߤU¿ö¸Ù´ÏOlŽš6¶Cñ®Sp¤.¢!BK€‘ +“PŒ×YÝB)Ë@Þ†Dk±¿0uA‰[¬ÈjàæÒ€V_òåèÁÛN ¾¯ˆ”=1bý­p6T¨ïq˜S·¸E®À£Dgùd`*˜v>b[ð>tFH³«‰Óùs õIºX‘Vƒ_„Z=ûÒ @Gˆ§ž;ª*ç³äÕÍ>=M=Ÿg–L¦Ð·©ØšFuRÄa¸}VˆjÿúùÅí)ÿQã#êHVx쪫ò‹´²¸ÅÕµMü²^ ¯÷.v¸Øe—Ïo­Z‰‰ÂD“Ú!º <9aïɳ1¼Qå˜~V|W·>ñ£_F¶úHÃåJwN É*ËËc"M£‘l*ªú)ïU6‰åDÛÁ£©˜×u0yz®gzMuåSv·ä€ò_ü©Š!ŽQsÓQr JÒ‰¤¾2P¡O/ F}BßÐm2¬ÊLÜ –m´ýÛ•¢{oÀÃéñ»xk¼¢¼z>€ÒõŠ#æÎ}VvTÏn ÍÑ^ 9\ÍÚ®EN÷ö·ŽM=9×Ú*\´EÓœ# :E²ÜcÆ­«(w×±~øæ E0ØCRâe¹&QÀòUÔÍ[ZŸ“ÞׯÕVÄ̹ÛÌßï:dß ³Ü5ðD샆¯°QFÓÂZÖÇýÜ,¡K[RYaϤÙ¢ð^JÁo뽌-˜SRñóûkDÉâ©8 ÊsFñõÑFë[Ðÿo)àÜÈB§\Ãneê†37Â¥U‹w]­"©í|Um] ‘ŒYÑ;LELö"[ÍÞ‹ê Á(+?V$Ò׌ +£—RS/OF[ä²µLnjìkvVqËýL«rØÚÊñjxà)Å¢µÚÓˆœJ½èh¬àòõ·?Ô›tÔG‘ùiä÷’@±‡º:Ê„‘j>}3"¶£éÜz]ÖQLG-æ¬ØR `‡˜!ó ;ôŸ7†ý 0,W´¯âôÞ&{&%uÏ~èg»­ð¡=Uüsð—ßl#™ðW …áÁ\Ï©‚þŸXÿg|üõøø?þÛ¯Ÿ¬|ü§¿ùýïÿŸ¿þÏÿåûû?üáÿí_~÷_þßßý/ÿOÿò»Ÿÿ¯ÿßï~ÿþîú‡úÃÿüo¿ÿïÿš“~ÿÿúÿúÿ‡ü‡ß­SüÑÅݯ+ø3¼Çÿ•¯A¶~ÌXÿ»ò£¾áA®i>J¦ VÑôh|‚‚Ö 5Q{i0ÕRàDoØ0ØPÖ’Dc‹ôV‚)b%{„…"¦ ÄŠƒÄNžª˜)œ4tÄìÚÎZìo3€‚)¼L'í6<>@$,W'|ÆL:*†9sm>ìÑo{¬Ð9ªke[ô8È—å¤,×1zÙ‰Ë{ë—áVaM~¬P‰ì#¾Œ/=†¿£‘$¤Ç$Ân÷w¤Gï}ˆœàì¡ç7Xy¤áP 6z(ÇŠß [ÀÆþI ¬/*®vòzßa4‹“®y;×]IGÂIçóAy·•í$JÐZu×LaÖWœÊUŽ÷QYR¾bU<ŒÜA#wœ¹£nƒò5«‰d OÓQpá’V3ð4§°Ô=ãÒ7ØùÔSç96‹®Á×ôÉϤÛN¢Ð å>:¡º›NÒ‰‚wM9B%Ÿ™£#v‚¯Úºº~+¾wËyÞ9U¢ÎkûºÜˆ²íãìPŶ¹7åUëÎŒ].Õሌ1Ê>|ì€u‚FkXYMu\¨Ã­oÃ-ÄsxŽ”Ë4åN®BXü±\{>ç¨Å¼¿¤ªÊóúεuNQ@w &dUÎo{ðûy¸‚‘÷áß:ÍmQ1OïAx²J„¯*Jœ¬ó¡>;Õ2A_<ÁŠPĈ¾}ëÎ:¼~ô¬Ú âNró†CvÚ+4±nEÜz +á9lÛµÆR×ÇédK,xåëñ­\wüŠXdæ`^A PBSÁ¡g¦!ö9OÓy±lÝYNÊn€e== +!=F:%±çQœ'dŒÝþleÎt +;‘–´äÚ1m‹¾dUQ÷aóh5Â@«ð¿÷¸Ü0~Iší3}íœvPJGŒ9ï®QZT×éá+ºÆ³ϛԈøï¯=<“áZ]ƶ™·þí8 +,ƒýH½֬dw4òûÚã»aüÖ DV±^ë"Á.ð9(wÕx‡ê¢D<žH®åÁü)†:H?û–´ Yõ6s2ÝL~{Ýžêü@—©q5+þïÞ… Ю·Ù)U/åóªpà™z«¾×á BÐ+õW4Ä;â²ñ:ôJ{¨I«×°4z»ÜÞ{̨é*6ŽuîHÓA­Ot”â!ÊfÅaPV¬6WÔ’²”éëNžHõÀË- ldM×cœWIû×;¦à5Z›ï=œBKlàp ã»ãÔ6œÄ Dçµá½$X9¬`–XeóÉlc§ªÎ9ò%6½4À«2&bŽûÕHê uÃ9mOýzý¼¦<'t9ЪK"Ãñl`š–$Ǧ(öE<Üa¶LÅéæ#ÝN¡GyÖnj\‚Böža+¸ÐvVÞÚ)§üyÍ–oƒ9)àyp RnÒ}º {Ük5¤GÑcˆêÚÐT {Ò 8‡&G`âlöÊ2#ôG½Š¸LÐã$!gŠ€«ÇôD·Î th3í³;4OG=ùæpP앤;óÐ$xßZ {s½ Ò.‚U©±&V’ÐkÏ#Éqõ@:(H蘅ýx²âEÀo½/š“I ã¹fF&MET.š\´ªO ú{a Ó¶žüšy×kqF~{gOm(Rµ0:¬™¯™—º‰=äNô‘IRð´A×iÈ`ýÌWxëBJŸ'À†‰^ÖÈ…CÊîjAPу4=‚K£‡£ŽŒõ•K(¡lw®d#?r´û‘Ìp +²%¡Ià›P/Øçjxo À™×{%̦†>þüKòó~©"B,;µ2'«VƒjÞ"ªt¸¡WXͧJ6Ô¨üƒ|} vTÌ¡Á(ø^Îù ¡2:wnÊjÐQò°µDc`Ÿõ’á6®gÈú†äˆ=uâ|û¯q´R-„U60ÀÖûŽãrS¹q],ÖÀ¸(!»²!«|¦Šj+ìù0p)éœ-ÀzñÈÒ«E9òùšø¼ÿi8Ån¬]E +Ð ùGb~<í¨ßT0¸:×µ‚ôvædÃÓÍ®Ÿ®?O1±âîŽÎŸ'ÓP sõoªFõ…üv‹ãÃ[ʺ«%ï¢+×5˜¤*Hy¯íf×2ˆr]Ö„*7Þhy5äêbhĺTqÅ~}«õL?Mj]©]¿}~¸³É±þ¸©‹ËÍÁÐ ^è›wdzçQU¢êø|váýAž½Ä6×ÐrB%qt猜ö[°¬ËïK {“Ô.Ùh–VAJà8`Mv¯*GqŸ0–/=<‘¥UM–Û7ÇA]É¢oà0 +)Ìó²•l-@ª +!>M"İ&ˆhÅæ€ç¢׸i»õ“¢uÅ5x²üu~k³Ì™öMÔaxæEU²ž¿6·ÏñćR)l=ÞhÛ3þ¨QýL®ÐRÑÂl­Ü´ Xµì¾±®§~I#øMàI +<i`d5 ´vÌÊxžÇ$ŸÂÛˆªæ4@·qéð« «‚B?ÙT§C_‘Wƒ\ðÓ[ŒÙgç®p«–1@Å‘ ÏþÞ€iÞC kÜx¦ä-çæÝ¼œz²N1(õ¬¥o"}òOq$ƒ™¤øÖDåá½ñ"4}k8¾nÙ—FÑ€ª4åËØï–õ‚P@}¶dr ý=phë«á²ÙÀ£Ó¶ç×·ðÄA„°°(a4°V÷O‰ ëã/øµQ•l†€qó)õŸ2ŠÙ ÜÊ­pûºñ4ä—^¡òl|Ü·ío¡ýÌo +7Ì÷œ±ŸÛÌn££ŽgUªârµ­ëð„6ø•Wp‰»Ü¾¡êo²®¯1Åù-è?Þ¦Ô“an¬Æþ1sî‰+ˇÙô•†ì¯ý±ÊúâíÓ4–²u'4:ÿÀ8•}ç”ÆÉn1Ü5§KôŒì{²OC¨"G奡ÏoaDx!8¹B*ŸõÖ@nøEaúÚ8ÑJl"Ië‰!'CËá~‚MUµí¡&{ÅYŸ)ɧX g\öR„mÊzØï¦ö~…*sƒýé»nj=²áõèÍqpØóði͉ äÚ¹Oˆ6ÙZå‡õl*ÔŽ¿¼íwHþek0 ²±¾‚Qyo(q¥üeœÔص I0±VZb—O܉þÖ$öW”†òÇgËkXŒõf”ÉüxIC6Lô4ßñ=‚«†‹k/N°KΔD¡Ë¾ z.ðÆÙ‡ RvXLÒ§0¥ðÊ}\;ýÐ(prk}tý–0EQ‘|aÛëKý1E‡Ì¾”Ú[ÃM»_‘cÑ›J %ϵDÀDþV{¡Vâ4ÏLÝ4ÚÞNµc>*ègÄoŒ¤­%Q!.€[A:ËXÍfû²ÛèªËîlH„b¦`%èŠØ–ÖUUl4TQõówƒØ2åðþ¶WÓÚ€Æ@u½LQõ8>² p‚«»×®JH¶®5S¨m÷n#õnƒþIu> ýiè»áŽÊçý”¢1@¥†H¹_*d®å¹ù-oöj¨=šÊ’!l€ÚO +Sv·^†üº«Ó(aŠj»z›ØFóqãh]r)µÞc °é\ƒòDŽ)Ðâ8¶‡kªgǃsÔ¶£]¹GãÇ„c>3BOcüc1È%ªbJæ‰7d*¤ฯ|ÞÞÒà‹©Í5l癣9ïЀO÷j çѨˆÇ‚$„Ïx@¸iC“$(˜‡²¬ ==[É´bí%믫pì!yÇ)øçjQÄd½ßeÆnæ¿ td„N/õ„ŸàúÖp—@'“¹ùÒåš[êDï>¾ ]È!R±F7“zûT1+28„  +æt$Ö éî ÖΠŒ™ -°tõ:ë3A G~餶Úz¹,3²Ì²ydº§·~w¦ÖVH¶ðÅ·@Ú9J€ú"MŠ”4•w@·M"ѯõ“ÒC`FWvÙzC€®ºˆÞ(ÐS„G;ô~ʽâ™áÅ¿>r;ष˜–×ñÃ7XYÛµAcG½s_\þš‰¯Tó6µp…V Œæ)ýñÆź!yv5¼fÇ*½"Œú‹ÚÙÞi`#æ´Ø'bà̱›ßn"˜Vƒ™ xó¼×ê@ŽF–f½Zʆ°qÄpäÑ‘¯y,ÉíÕ¨’h]ƒ œ —£åL@°9Âà‘kÉ/pou»Çæ-–#¼Åñù¤@ÖýÔk§F& 2Át€“"µ®öÙp€_jØöŒúK?rÅ×Ë]í(½¡Œ¶.‰$ø•*>¯ëþ;é®å<Ÿ±¼@â)O¹Å?arT}°z¡<¹—´Á‡&ü]¿ÁË2h ‹o B3ä(QHr׋\!ó)AjB¾™_zä1 ¥î5n¨}sœk«—ð8›Ö–eÛÍ¡\<ÿ­‡„¬¶­æ¶JÌ7½JÌE „]Ö‡¶`@K4zê&[ÒmøÈRÑ’¢|ß¹&{!ÔSY/”PFþA å1 -èaÁù-q&ô€‚ÄôPë&’¶C¬Ã¬Þ¿NäZ^õÙ™¹òä€dXòìq¹™¾¤¹Ðw8LÙdCU•?†R7û%@Gÿ6檃TŠ•2n”* U,ú„dÔQï®WßYÚKOÃWCÀ—øäõ-VOªèmMP¬’@ËÛçy¬}?Ö×kö¥SÙÁNÍ×4÷5¡žPgT‘Œó©È¨{r»¨BQÙýÚã—]ò7û© +ó7,ÿI(*šÄ¤Kî”6»·eUs˜ÐóCÙ{™­P”%Mwo/•Þi1›ÜxMVì<ß"~Õ¶øÕ³%|ëEE…0µ$]X1:S¨¯GþŠ-'M}j©)¡ˆ²îãUGA?Âñ»Ö/%µè¥R¦¬žéagÄ~¦iilÍ +” v¬2Û“’ýèU(dêŽÏ3¹zá.¥CqªJŽ¢7æ=0 ädxû‘n·bU(Vñæ:7²Þaˆ¬¡ TUŸ2ç®R˜æ[1ÐáÚª˜ݽþMb’!BkM/»ý[/¬”9õ¾qÂTaùŠ: 8,fÛõD›êF”×Eñk_v£„`3Ò®ßg˜8¶p†!Ê/ªÂ{P(}ïq<¨Å÷6Åkê¯!•¢N"ºk[‚ª¶æ7 £†)¸4 ÌÁ_{¼& +p¶~šjM_ûÜ_eú:#Vxà·Ž„ ©øjòH1ÒmßîžÛýXѫó`Ø%‡ú¶àÆÕ*9=He9°Dä°•.ö¨ŽyÎd¸! +ò²‡¡ä ƒéy:ôrÆ}²íóŒpççsî+}q m7b,ÒŽ=4euÏ`i0²ã<çÞäLÄ7ŽÓbzˆ¦Î +¸“ m©˜}bõnŒõµCÙwå.ýÜú^oÝ:»¢[âºæØ¡ùBÖ6´SŸ¸iEÓ’ÙŠ¯^Û[‡l¶ºOÃ@IQ/G9ÃðY{~ï'8¨}R@@RKÞî'¯à` \žÝ,9P`,|8öº9 ª—|/›=ñimæ9賦ÆÃâ ìÛÝQ=DÜò>åÑôE_þêz¾]ÊdÞÉ·4œ_¶&;;f·‡ÐÎì8ªÝ÷{ËçÆ ðÞ;W~=¢DòÈ3Û—çÔ”(Á}ÓãÞp¶Šõþ”å¿öÞ«¦íz™‡gÚ`ÄŽU1¡  í&ÒTÔåoJlWØ]¥Gy¡$š\B~°»FcoÓ¯O³ú*þ–­M(*ý Ü›ÙTƒL øY6ÀAF©¾N¤è¨¢`^çÜøz‚Pê£\ +1|…ÑV(ª­äé€&ãéÜ-ÇPñŒ­/ÎãHß<õŽÆA-9Xø<À_zQVôvM5ŠR|Óƒt[{a{¾4r‡«@6fBl‡[^NÄê^}ß=Ö‰„Åí‘Ìzëu¡ +÷ÝqÅ:IZƒ?Œœ8Îðh¸µd9®‡‹2£ÉCuó²×UÀb=ï÷^»¯Ç=S?tùueœÊ€+&;Hù“€™N:³†kÊ,úÞƒZ +ó,IÇûÛ|í)Œ8E1/=ØÑ©'šu×»Rë6€ì›€zá·ZVì°ÀŒ“ëBqß”°Ê&½TS³SÀ$ù\÷aÅüÚãëÚœ,é×^8÷)~«TuâÃnXZV)M˜)êlèÓ€ƒHèLÒ™"ö” bGJÊä%Iæ*µß˜Š(òS S–5¹¢@’VB0O’3§…-…|ל Õm3!ÃеöU36ˆÄ¬ûP”çPªH;‰óÈy¸;dë×ÂçßAÀe:$ÐüÝ.Ò)ÅL^¨Û‰¬Â õ[©³¬×¤a,ŽŠ¯Éšmƒ^ž"0×`¼ûõã¤ôg2 »Ào:ÅàßÕÖv5j ñ «'Úï=XsÏñˆ }iœÑÞPüOV|‰—Y¯–ÃZL+0às+«ü¼Ñ+²oÐ.gjXã áËVZuSª0ЋyÑ~ïòbdý½sߨÔnm«íëVœý±yײñÖe—úé¤ÁxlHXt©Tr˜ö„Œ†§GM`'ÁË5壡UÖCßP4ÈÇ …{ì‚8º»-BŽ#÷i!o +}BKa8Ö›VGyßL·µuWGU'¤q'»Úg‰øØRSÎPÃi„E«­/ +ô²Ñl¬ kyWwè!K2¤$§æ>Ã/ÙÂWzõ>w¯H·å21+¡4s/$ +µkjv냢E*—/ÞzmÁúöó¦²Tó¦¢3+ãV{MóÕªb{ª½Mž«\þ¦±Â=ÝåÎd¼\›s=,‰ Iœ’Ö>‚‚¼›MKéP@‚çzâú‹¡èM푉s°‰u8.)Æ­Ô}À¾([ê +–<\Z=&ŽLõž9%Âéů²‘EM9?‡Æ ãAL©¼²m¦G Oré”’ûaöÀRf7—ø6¿®~dUÂÊ24Ƚ8p hù†u×uÜã ÇìuìÆVÖèšùºéŸ]²;ö˜êE2AxP„‡Úv;:^þ±ƒF E5ƒ$Z1³‹|:êÌ™§ulü’Âd“Ń@> ¶qÃ0€ +ò œj†¼u(ÇÉò¸÷ZëD Õ^k3ë"±%û¨ˆÍ°³œeýyy0køœ`tëQt5Î/¸­ Wð‡HNS–èÌ÷¡åã5õ²¬pO«óM´78å‚¥õP·Ò:*ÚnZ÷bÀò¤ÌÛ(ã3o¯—¸Í+O@Q_Ôù°"„O§ÅýÉêÚ¦ƒË,P $Ô=ÂmC:åa¢—¬kP+½&©wÌÓ­sã¹ ¦ Œ&3­D’':*Hx*rÚHå´œImPê +¯ú3t}ªÙëuÐ[IX#ìöKÎD}—]ú. F`H×]s÷`Ì1µ$4S’­¯U±d,®·ê€Ì­ÉL¾b’‹ äŠZßmàGcì_„‡/¸†kdùgΨ›Ï(ÓcM.T_%p +H‘$¿ÍÍþItÅøEH¸[ñ0ÇüÊ['™Éˆ«c@ûîVp^¯×”—–çѶàöµ6§$ Èম}<[QÎÄcãLdµ>àß*E êéÈ èB\Áe¡à · +¦ôã±0ï$PB‚[¥;“2XJ],gäzÍ“€ `F_QŠð\ÃPlä5©îVïx‡ÿ¼‘r¤tAÊ™©‚±,óOe­mpjýr +|‡H@ìÍ­5ÓIjÖ!†ô´—Ymöˆ"!Šš¹ÎqÖÊqnD¡.ñ(\”ÂFNãï\#½=+@á k +ír*ŽÌã\ÌÈa‚?¸4f´ƒÙt©¯Ütz°E‰‡3§Çi¿§1µ\ŒSîFË{³®éÄ9ˆ*áœälì¸€Íæ¸î]ŽuZ2˜ ×È¡à´AEÑ;¡²F§šJålvtÁJ#5Xɪ¬@ ›ï)'KcÌ­ˆié`le#UÜözþ cU"årGÙ©%’3;6r-5z"¤à802O +žg¶2L{â¾ßÂ5zSñÄÐ \z-³ÅjáŸwx€ÙÄø“]œC}Û’o Ù+ðgàÆ#ä¼P}ØÈÛ:“®¹ä´/o¢¿ÝŸ›H‘S=õýƒÉèŽò¦ñÊ·&~cël¬^l¼&¬sKŽ!ß\VÌç Z.¡•‹Ù¸’¤Àï’Ì…1€9`ûˆN™xíl•ZªÅkZAòËßv+Q¬!^µ]‡6BLÞâZžÖ¨~ÁõÏÍì¼É§àç›&럢:¦ø²€iÀ’¢èÒíy>ÑÞl²§§8cª%ÝžûF9Œ¼/‘G!•Íá ]A¾–c¶$ +Ý Uˆ\™Ü²‡/-ÑÞšGГ¿2°~þ Ç09p©7¯U¡N_ˆë¡â¹“Þ½·%SSÍ@M»í…pr9JجûÙ™L8:—äIöˆb'ÙÃ2!kº/7ÛI6ö–k¦€Ž[/úš#j(—§•ëW CP2á‡õûÛ3Ž]pm}ˆd¯JÄÛ ¶²!u`J»@¹3T‹¼úë n{Èð,JT¸Ø¡e ÜÕ1p”|«F ûeµÔHov—ø?•Õ£Ì_rcò.Œ—œD‹âh—äë–dÓÚˆ_:1—+¿çÏF4¿å€-°èºcØ”«@JÚ°iý²õ°ñìï•©d+g¨íÍ#žE~&$÷ž,\ÇÍÖö)ˆm#–-ÀþÑ,æiàQªE}žt÷†V•JE4û§Ä"È·ÓØ•¡íŸa€‹¯9Ö€œ§›¨)MÓ@̇Ù]‹*MÛ#l‡\]“«ÛR*Ì•`åPÛbÈ®²kÇßXvD„ßs4Ü}ÖØi÷K +¿†ˆ˜zC®µ>|ì’°ôˆ®OTYRê€k1ÚBߨú¹½ÌåçX úy°ºÌ6Õ†G,”FËÉàöH#),Ä\ôAò¾ô6DÜÀ”ˆ / DÛæ±ÁQgƒ†Èf…ÕÉ“Ý-E©Ä?ÀÉG“(,,ÙrT¬%²KaMá©6ñŽˆ5„Yz{ÿäÔ– ÙzKnB6@òô‘–Ök.ªìøÊ_´†³Ìò`«Š'ǦE <‹`pCҥǺ³˜¡[€ìÚ㑨 azŠáBRÏ›b=Gô2‚qÂ=yÃXðÙâ +"€k/™ˆ$GÖ=aÿ*3Îá·’yí’ÂTûd+ `{ ï}ÅW,ö2ЈL¨[Që"ùt!¥­M´ê0VÖ=›õ­àŒf½ÎdLáQC߃µÇd‰Ú` ¬Ñ.¥Jâ¸ýÅ §ÜçT_ù’ß[— +9¼|rTØ×0.HÌPœºZ‹ ˆC™™ÃUDqêº$0Ù›Q =—tnÖ­! +nQ‚h»›t"›çs }Øqë~—ŒT®gwÊB*gm‰ÈºcQÐqR +ɉ„Þ;›” ™Ê"-‰ø 8À”útÏÀCSÄÅéþfb~ÎæÄÇÏ|cƒùAžgÇŽA>Ü"¤‚\ Ú^ñ·½´U¥WÛ‡»Ã|:xñƒc÷ôM‚áÚ=ØkJÔ?OÄâÌ+ͽ.-àêPT§Î°H­YuþèÐ vïmÝóÒcäZùüu" +Cì?Ojr€9ðØY½@ ÒOžÂ*évð©­M©Ük[Ï“N’AÇÆL#ÊË<) Qm€¦ƒ +¬³Î½!¤ð_@7°<»Ó¨Z½– ”ŠA‡‹“àqoX†½ä¡ ”‹½‚rXÞݧ…æRÎ|¡Í"ÑO½—4ÁeÂð0VzŽk±|‹ÆW +Vx[ryB&«¯-ßÖ­v@'̶ÀRB{Žoºq½Â¯iÍ×áÔA¦07¥^à +1*•¤•šƒl¼ƒ*Ù¬\îbPŒøEÇÖg¢®Îx}Tu%GlÚÚk!ÅçbÍŽËCBsuz…Ã-×h"‚vÈ… u<¯¯qQ#b(K¥àøó¸‚c;ǽ$› +‰±¶ì]qÄÚ Ð-ÿÚÂU•ù‰ÈY"Ë ßµ `±l]I¢BÃí1ͺÉ[j&æ»íS(%Ê’;ÔMSÁàû¾¤ñÓcÛlf^ï$ûCO@¹\[lzâSñçUœ9ØYIYù-÷#H%[÷¥‡k"º>Ƹ3]žÖrñÒ&IAMmŒ&`ÂÙ ¦]e×ÛðÀùœmÙà«©r ¿3Âå”þ)+¯¹­•úIGÓKm2߯ʼnÎW¶=N4qÖdÔѲ`Yjª"ãéŒ4#)·³ìä~èñ¢×´M\½(3Ú Œ>– 2"YÏIs)‚-%¥jÛ^8¿èQŒìÍ=׊&/•Ù£¨MŠG뻚¢È(#qèZ¯V¦J¬T§nŸì¸6ö÷Ô‡´)Ʊ‚ sƒ6_¥†Bᤵ I¥‡$E9ÔÆ™þ¤ e–êGF9Ž®äB‘Bm£êz^Å)¥=ÙC”9S8W§Þ òA[cïʨ­·ºkNx£Ñ ¿15è ¦jt1Ü ¦øJ*„„ÓèàdÔ'ÌGHöTòß@µ IO€V“Õ”ºñøÎ3©—#/âzd“‡|#Ô“ê¤e%ð +­tñ^ÎdL×{óC šZ^:­8)ÍS‰åib +öH¢7Þg+líÊà]YÅ×1H¾IY|#U·.xFIË'¹63b—n%v0Ul3ÓIípþÊñÃ…­¤NúëDY>Ø\AáØÄÉ 5áiÕM˜MØuÉ¡¦ƒÁªW÷æ^’=Ÿb +wå}{2®ŹdB¾#|«SjåÞ!V-]n‡Õ¤ѳ„äR°:ј‘œ×#~Á9Ó‘«msëµâ5Pú,w…œj°sê¼àaV G÷=Ä©†9ã”›â¯k¦ +Ës©SÐa%"­ÅJ‚Zbˆ:¤ÌÞjªHqÒD1@¬82á·>†GÿÔ#2ÔY»1ݕ݊“uÁ“}8xBBc w=<÷Tó… +[ôæpO¤/Y¼uù¨6©Ð îcDwäW”ÉÛæ©ÜfŠØ–`ù–dÞy´ªAp ÁD¸~ï¢)¡º"¢oÜÝ‚Ó#¤|oIët¯e±Ä/2)'üêi¨JºmhßjhèÒÀÌbƒ“3°¦ù:ZàÊMWÏt"¨^ªIب5Vçt}šÂ™û‚ °’-Ï Fƶ˸5\ŽIšC+#ÀˆvÙ‹vdF· æõÂ^{{÷‰ÒÜܹ) á¿j>RÉ8(ðd/õ{5¬œ˜d:5dê$¨s;ƒ«i}Õë"F–º9•/aÌRò6 Ú$[%1.G–@¤Ý•@w ð-!ø~PLgP›Ç–—!&Bq”˜3NaÕæ!J–#Çq;GiMÉ`̪ˆÕØ[Ýg0+r‰àïãÑ¢\*ÞpÐ×+Â%ÀŽ g¢Å ”ì>?dt5qØ }½Q ˜ +x=Š”Gªø -ËéÕ-Wa®uGd3:Xë÷õthè]Ðá¾ö£ªÊ®»V¥ŠÅoãì¬J€ V,CA[ÑKÃ{°r‚Œ•÷‚#èÐ~U<ð‘Œ0:Yª(-JË,ƒ×ñ@¦¯T×D0©Ò˜×@±FŽ5;a”}ŸIh(Ât*P™ü¨UˆhK ¹yè1OÊ.j0^[˜œ§ÐÜèzkºóʹùmèšž–Y¿8Þ¼Î$Dë`²½ãœ3ŒbNT²>šejpÌ€ƒGØ,ý ÄÛ2ppæ`[ÐÃÐî€5ÞC)àäm¢Z& R^`_Ë‚hÐ{Ã礴w{XÁ[=Ì2ʘ›¦JQi@€?>±±ÒV|YÞVQŽ9Ø#j”n¥0ù’ÇžF¢x+:`ÜA–èÐü'f2I?¬;|õÖzD¿€œÝHÌ 8„êv©+æ~`¾61êA\‘jË‹…*<¡ˆZÀ—ز=˜Æ–%®gK?¶Â[tÞ¿kk®„ïYã¦>º§ìÕ€²Óq–×áM*±º-RbD´–™H§ìÏР>¤Í>óÈzrmŸi_šöé! iúÎ$¤…´‡©^zm]Ov€¥¥‰q­ÈÁµ,J⣳$,ª¼DâÎX|œ¸—L‘CÞ‰@RíÕÖÊ ›MgHâËÛ8 Ú‘ë3àäÆ=³ž®l//̳8׬ÀÅISµù@A‚5½í.ðÜÆ>ñåg9Ð&ḉçE?pëE6Æ&4¸Ð“¢€s*!†/¨?(˾¬–¾u‚Cö8Ø®ûþ jÁûs=®0 òÝG(Bý…Gæ‘¥½lUôŸ€…÷#õXö#W&x|Ì_ÖOŠž)#WòGS,qmˆJô7uŸˆ·¹:Ñ™ÔÊ6ëXÿAEqn[Ôæ‹ßôd¥%:›øÇNe£³ºÎþ#¨‘—{*#©gm”A\¤×6™!m*JÈ\lvp…³ LçÖ³‚ɉUíZØ×Îq—AX°š19!,iñÅœþÝÞÄÉ©èºR ©\âMMéÌH ü…b7+ 'º¤óÊ/ lt +˜^ƒô-'CE%Þ¥"îäR8Âe¦™šDêjŒO¤RéÄn»ºÕ÷Š)_›M¦¥h2·ÌîÓl?Â'È+ÿ¼—¦5Ö"o(U¡8‚é3iì›ý¯P~K¤ËüUoÄ¿ð@Æt0ÿ|c2(­£ÞJ8"ÃâÖ_ª×zÈñq/Ö½Ûë6­úµ—Ä g° ²£®¾‡K#Ÿ_nHëïI¶•ëµòS¬‹®ï—ú ~b÷ý²Z†„±ÅT„ؾQÈ;DjÔ àw*qô h`¡Šl!þóЉüÆÜß8üÆ«dç¹HZ#˜ËtBŽÕ'S~½“ I¹¼äp‚hW&b6ÜOò³oŸ‘]Åi\iMÄ&WĤØ+7WX£BÁ føþÈf;›fzÏ2S—e¢U­‚²:Å’G÷ÂnOæBÌž–Ç(‡y¸ëŠgÖQÄLë€î,ª ð“”,Ë~:÷eyUΧUÍ`o¦¶yŒKºcxççjQß—1 'ø1Ü)_âÓw i$8…°pí£!äsÒÑJûª¥ÏiºÞËŸSÑÃ÷õ£«ˆgÕÖï°W©:÷šÙ¯ír +d3sPz\}Jb<†:f?_27E"±‰œâ)ƒOxû| …²•ßÚJV^¦”ÁmÉòû•%ˆ­Ë’šÏs]‡VŒTcLh=ßA¯´NµûnF~ÉÅÒÔü'$#[æÊ&“(yAæàBmÌŒÉ5’ì*K‹§ †5ØðB›ÑHÚr4ºbZ.ázMåYý|ÞJäŸLïÝ´JT×^¾{´G¯“;؉á‰u[v»Ñ¤m˜Q¤rƒŸƒ­þöùñƒåü×FrÑdæ:2YÐ=­9©Üöø ß–\tA¹Æ•†-×%1¼>êØš‘-Z‡ÇèU'óÖðG£âkã `†‹ÁN‡M­”¢œ!/ ‹éóRØJ°OÝT–^cØpǯFN*¶»±!Ußv2ü»_jÒ:Up$ºgã4tÎnb¡mÌL€B~€¢Ó½][‰7ŸYãµHÛ¨ÀuSN‚OŽŽh &ŸÚ¸=crZª»:2‰y,2º$ ¢OAn• þÎQÀ» Fƒ×|²_oïùÌÚýûda`ÈLÎ)m|ID$ŸÒ³n‘×`Ý:Uuz™¶¹¨þ¤6Ýôb;ëq,5®B‘Y8§Ê€··öÏ/À2Þø -”î³Ðjª¬QÑ®Èú¯øZqôðÖTŠf,‰@¢ÄˆøYNŽI§V=jFõdçˆíÜlý +gTIpíÉ•¢« $Ñ‚ëÕPÑöE‰ÛÀ‹ÃYY\ c¶Ün~×"3¸vk$iosÈœ#}ª`´ÐÄT,nÝ<°,8<…Ô¿‘JAëYYîþ“»hHBËø9¥+ŸTǜ۞ŒíåïeÅcvoEÁ‡+A—œ:·¢sÃüs¨'UÅ{¯©F?ù3:»øÔb}q¼@™Òcë[\4‹y ÿ¼N¨U +örîÝ3õ"„KOËs‘È%3±>?jކ×z0lÝóôrþ¯Ûºf͆Mê„ΤÝÜy˜²™Œ«K4ý¯ ¸Ÿñ-ÔÖ F‡l–⺊JÖ´ËÞ7e6"šHbÚ«óF‚2éwJçz²Å¼ëÜ‚¶1(3'S-°ù ºà(B×Ï"=¦hô’ê,Êà +᤼a¿»zÓjÀ±£ºceEá¥î¯êý¹N0^•‘mJ½†ÉZÆ#ÅqããɲCÅEýË#Ø$”ËÄêPãÑ(ÉeíE¿¿õÈv·îòF9Do¼ì§ÜXtŒÎƒÂŠSa÷4/j+üå—äs +¾cbÿô3pÏu¢×5øAr­I¿+Ç¿ÍJG£]Rà§b4qRáz&S®V¼·gÂ×÷u¦$%Ô`=Cï¬8Yl¯å^jŽ^xõ€P“°9ȼ^-€BkðØÌ—YÌ™)ƒ,0c¹6uŸ ç*±8T²@£Àí±¤;©¤Óün,ðdŠ\ï+2´çÚ“Ý¥ì\ß{ü²“¯r½¤Dƒóí8Oµ†&åk¯Åº  ìÑfnÁ-ÉËLl…ø­¸f­7©0»„ïL87Ÿ"‹°¤ð´0¸)FêðQQRð¯%V`Öó9ÑŒv,º8oCC‘%UbÜ$Ò„ýÚû1rõâ·®'dP²¡‡RV#E ú(º<9C„*@õܼÓçfC €?W¢“!«|°ôg‚YVC-WÝd³rz‚cs\šk‰wœ Fò¤ˆ´sC†òk¿¾këεmª\lEAðþ®G‹Å,u¬ó~惯½à"Pט‡ï[š¦ nöÿØ +ƒ]b nx&_?Ï8ÞVkX­TÁƒ_¿mô£âSj@qbêêóµÀN§¨°^È—’Î[/íùHýb¥‡ßí£<ƒóÖ<ó@¼<ÄÉóû¹¯v=ºkh°ÅCéÒÿ|ØH‹ÔUåœQ¯Êå×á`9Ä´E¹“&~xwk†" óL¸º!E[Øm _ôA³µØQ]÷ÖK¤45Ôq'ÿRIîß1‡wÍ…c +áç…‘ $ËÑžz¦¹hæ¸[l™äëŠÆ 8 öô"0׬Sv­ûv–8bt»vÍwÿTÛ3«4À‰ŽÁ !Њv®èûJ¨_ô¸YHºZÛ‰šFŽ_T"ŸUjð W´LÑ'çä×ÜX¹¸;?ß±f›iP­»Üa1o¢žØšYê )Ôl†‡p »ÈÇ)¤ôM¢G ýz}ƒ<’ûU•ÿO C/â5VP`¾nùù˜ö”Ør`!‚ 1 ‹@áH,ÕÌt7 W•Ã*±1LL2+îè¯Ï½Ä¯6¯/Õ™¤v§˜ÅÔKâ§«” àvìc÷¸³ŽGÑãk£&ÉBŽÅÍ…H¦B,š€Ã,ŸÃÛ‡:sîdüz¹O÷.)ìóWü©¤µéL{õ+½'aòÁË´©€q +KùùÚ¡“À7¤hÙ{Ÿc‹è«sÇÃ;·¸t“íc̤ÔÏP¡ #" +‰»êñÖã4SQùuûæw½¨Ï‰šoÄ~úÆÜÙzáÆ®…:ÜÉxn( +þX&è¶—ÕÏFëȰ¼³WˆpsS|4ǹ$*M…©‘Ô42 Ôü€-EµvcõíIp™È¡$˜½â½Í]éîÛêÁæ9=„Ë7Ì +¢5žÁ;N}Æ<“sØZAž„ %K-p`Ì‚gÕö°Ëê 1ćD‰EuŽþ°m +´ë½GN0c³ÑŹv5|^»×ÈÓ€€rM‘ÔO¬Ò€Ø¶ïzœ?mc ü)ž3½õ‚%ÊÓ­­˜p¸ƒ†Øl¥¦ñ™‰'É «ú–¿‹Ù^»ß{x&íðÄÀPõñÝqpq×¹ˆ ì +@ÀYâ@SWèk«wÚF`»Çô[/‚Z†0š0g‹'•æªÂ°’×´ÍFTÊüG1† ›³÷ÏkZ½7ä¼ïû›ã D"Û{’’å@À±õÛìD>X7zˆ\’g¯á¬¢ÎˆV$‹IÖGyæR Û”¢ü9jyÓ‘§ÈÀšgÉݽ÷ȽëÁ<`®6ÔùzœGª ^[í玦ú‘hª¨hž"üš!€_RïúdI–X²·kRƒ€ Ý„¶*Âgµô0ï²z¬ÇØ·ö¹5°ÏãjÒ²z qfšVŒ^g§ÀIQ6«Çì^•Üà/êd‰¸9D9Ql4.€û<=´g}xHm U3QÙbR ”ø¸ +˜\KÙ™7¡ã÷¡!=êîqŽW "\ˆ¤¡·^Ò7rŸ†ò–ʬ-á<Îö]PÛIšü vÞ:i Řé<ÀÁD}⃘O+n0ðš+ù¿®îŽ2;kR.í%·ufZ§Q?4"‘r­ç##%û´‡Û|}à ìÁRCGVH::³~½¯× "ºA¸Â»:ïMÞíHžì3%4]¿¼æLfm‘e‚jŸgR÷3¹vET;rqóÊFÛ¾P<ýΜw’yÕÕ³$ò'ã¢ì>ꬦ•™õàë½÷ØØ¤5æTêÿeïŸþ¸—ag$ÂÐ8ªÖÌCç;uz„Õïï5é½Üǎѹ;MkŒ]Ò ›c¼`þ“YYWé~åy‡¤HÜÒÌRETlnBÙšÃÔÓ¹öt²Æ›¸r–ÎÑ p¨Ûè{¿ÕÜ@âÕ;&“$<Þ;üòÔ¶TqŸC§ç÷ÃÜ×CžÒ}f›jú)X·ß.o½Öb¢Ê8’Ó(¸Ôû|1¿Dw¯I[ +@ T Ó¬(´l–ßÃ^~pûìqû<%Hm‹É‰o#«¶\¨ŸTìÌå&ánAbå…Xea§ì Ež¤ ¡-Žkßj$©—¹}E™D€u#¬™“ñ'ðÖãßwŽÈ©ûíëZ4aÊ|*v ºs1ê~²N€teÃcÃK‰k~‘øWEË#Ñ•êÜxÜtsÆtîd÷î1Óc-n»ÇÜ=êÓƒ8Žã9Óö.^½NS7òyˆkæHZí?q› ƒA^W]>òC˜èñ‚÷-îŒ÷@ +‰a%,!zPd†í§Sç´7Í;RÆG;^AØ0ª<†ÓB}Ò‚Z'%ÄgO¤>…WJƳ +e­O:šøüŒ¿õ)iÍ«dë¦$a‚q´G²tlÅæ5Þ3Jòë¡Ù5‘ ð8xÅÑá}òXsJ5ǯ•ÃüéÁþñ™óòbËˆŽ¾’ƒJ²1b¾ë¡¸Ç J†ãZ{_QÁ#·/­ 1ûù²7®±®:VøÜ$=ÀP©@LIÚWgÈMêè½im‘…Ävuþž;1X¬ øÊê5³VÝ)“ m´;.íªµ*u‘øže`üMØb2'™^Ô#ÈöZêmb9üœ(©6 Á˜´S†3!)Îp¸SÏþ ™ AÝ +:KŒÖ‡© =|lW šNîB+YeÖôÉÄ…°h»`çJÊ}eDn“Fàá4h,¸àç|h ¶‹ØÐ €„ Û|íÿ¯ÑÊå ÔAˆIØD:/¢þ‘…ÝÐú6¸Â'³¢IûzLú êà«©!4CKcxæøS¯_w—ðé•;.„E®°‡[ +@ÜX±¡mg¾Ô%“ŠÎB$jƒu?L z,…_ +6²¡±¸S<ÜTû·îŒ0‡c[(c.ç' „:ïýÜÁçŽ T_7‚wVƒ}æÛŒ8OY“"”k[Ø òDèóãþAçí[r¾p‘ŽÅ´gèŒÒHL“òïŒU …!Ïçs +¬L²~²yŸï !ÂXÕßk“Í`à Ðòk^õ÷¯ˆg‰„cÄ•àg†,‰œ%¼oÊÌßE/î±yÆë†væIMõz„„<?–ª¯§9ž+ C!~†ÄÔ¹ ´ã‡€£Èø?Ü?‰êt9ž¢ÈºS}È,Ô?üŽà46³5‡xp|´± +óyÿFÛžB,qĽÁn6°@Ð@P† ’6Ï…8/VÞ—­«Ÿ–«KK従  |¥8…j·V-Á}mȽùI¼}³-ÝÑbp´ÉÈ­²ä{oþë_¡Sòžå²N@¶œ4©ZÅò ãØÏ¯gWÍNGlš+j|…ßË¿Á*wݳ`_JRå8ÜgÉÏ«xÖGäÜàCtµYD•“Íì·}ÔXUð¬>êýMzõk›3ÏOœ^˜6NU¹NM½Q´ˆh‘€žCGà20—ÿŸµ³[•&ÇÒóø¾Ã±Êú—âÐ.Œcã{ŽŠ¦» î©fÜðÝ[ϳ¤Ü_íÜ=Å@ÑTuí”2"2B!-­õþì²êü±a(Ä›ÎT‰¾¶€ô2³_BBQ´î›4tkºú©¡?v«­À[«}Qš·³A¯:–Ý3B—£€4C)Œ8P^êk\Ze*P%3/¹¶U"àðqÒ\`ŒÀ›¾5 vU +>·þgO'¸™-Åú³ê±±5FŸ@¿Û«!¦ÉIÃTÕo‘ö$g„왲’ˆÏŸ?±ÂÝÚñ/¯ZcÕÏ›%Øñ;ÍEƒ‡zÛ«áõÚ…‡í~€¼ ÷[{†Vȃª+hvv1R-KS“×[rƒ¥‚úÆô³ì«zäíyŠ~(`ŠË5nrTËÛËËš¯£˜*ϧTÁ~T–Lisr'T=œA ªÔf1‰"õ`ØœñœÃ¡_)@ ˆh&U“Çòƒüå·Ïgü–8T ÆÆG ššŠ=±ïÇNlr_š»’ç.5ÐHÖ«!á/å½m…ëøú„-çöfN"•êJ¡voG&RHxÄ”=¼Q1¤àƒÖ™ó7æIÚmìW—D~k(ߟØ_’– +È~lÍêõ#MäL³…·¹@‰Gy+œz‚6‰ç/´I÷l˜Òä…¡žëÇ·æQtÀ“™/NÄ-íÓçípâ`ŸÚjHÊ; 2ݾÀD€ôF'ز}i™Håß#z,\ìFU‚Z€$ Ú'6kµ+KÓ†)ir¸ÿb6Ð8ìlDïáY6(äÏ@ïïã•wš){¹tqLKi„äú¦ +8Ê <Û*ñÓU™{û¦—wŧ¶BªõâIÑ¿¦xÝžQÖsV&ïzâ÷ œR¦êoÕÃ3a#¹ï®_²Ï¤µÀõÙñÀj²zƒ]4.aN‹ðÆFÒfwÎõ8õf¸yÈÄÖœ¼À§÷†ý‹ë¸¶O.­ˆ™uì½å ‡®ÎÚâ÷¬½À„§W¤4:83{ÊKffD -9u ªL4¥ØŸê6Ò¿SýýÜØÚ‘•}r˜c”cËö7›b'ˆêDQ%$\¯êÙK+qegƒ¤·mÍ7qûæ!ˆFÜ“GO^×Ê+–ûgÌŒ1BÏG¨À+äÀäÜ ûÖ¿oh!ì:DÜzŒ¶yÌÒYJ4ÙûA! ü#ÀX£Þ4¹ ×û{C~躕¼}‹…¥…ã5~ŽzˆëÊ|4Y𵡽ø²æakUŽ&¤À ôØàá¡ZÜCÉ!^«Œ¬òÌ”öbag=ÊÅêü H&Žâà-ÁÎß ˜Bhøå.c ôû“Fb¬þ°7®mRlÀ$Çל^@{eh&Ý>>_v²ÓhwotÚXéQnèÔ(=wÙ†F:îî=ã°I€’d\nð +”ú{cìÆœKÊ0}1(R`v²äû˜ˆŽëÐû[‘ð óùPù†/öΌ$®þ(GÙ'_VÌzøÒ‚û›‘ôCp}"1A=—Šj¹³Îs„Y'ޱ¬õÌÁ@ÃÈä.¹4 + B|^n¯eê>d¤OÅçÝ@)gæ ó•”ùB>Ì§Ì¾ê ‘Yi(p›¡XÉî§£Ñ3£]2ZùýsŽ&Ö¤|шYRŸ¡vÛ›ëQz­?‡ýÃg Y£v8Ff+Ö0èŸ×¹-fÐrðùèþêZ1‚õïphzÖ³¬ ±åǦMtm›“ÇD]uP6Kåh‰"NLUþÎ.jfø²˜tÊë£þMN©ž—+^T7Gâ´opr4` ÊÔ04¦}B;‰¡q6L .™"–|Œù„ðmoÇY܆Π“= û€fØ()::”öDýÒ»(ðrNŒ›ˆ¦êúø¡¦ç(+ÐAÚq 'Šö=\ìAÿ êÏ9P§a¸Ìõ•i¹)^D=ì§Vë€Jêà•vIÁBWuµ²ƒpÔfñÊëæ3í|wh"Òì–(÷ÔC‚ÚÍŠx>C‡ƒ†;Hê¡Iœ’Jñnè}u|œô +¢Þ"ѤÖ콜ò(44‘<¥÷@ÝéâEp$2Ú<²ý–=+.õ îöFúPÁ½#3Ê©Z,‹œÝœijÃûÄtÜÎé%øñ¾2lXñ>{üHáŠGÏxKšMÂôöõT—7 ~ËáÜp÷†£z$4 `Áá „Ò0ÚYšh$Ùª©›‚ØÄº†x ¥D䤬»ø î“ßxùu0QeÅl÷ìÇ« ÇšòÿÒ*Ö0D(`ùEiÕ‰î«Áe„šŸ¢LñXr­9(ݪP‘%ƒ“ªÒ§v8D*OOU$‡T¼3Ùû(´†xÅA¡%7½?sΘÁö_É> +&D‡Šgæ)¡ÓCÒQÝÀ‡¾{ŒÈa|ªÑ˜_5Ì«a[Ä“C'³¤óŽâö÷oÄÿÊÉ¿>Y¦œûØ5I úÉtK´qÿöÒpc™óõmäKÄÛåõñ÷^BTû~Ä&{ú©²ýD\SSÀh*Ýß…`(Ùø¬y“†‹>*9ò®Ôù¤ï†ÚÀ~f6s–4ŒÞsÇâϪðFÿ(Âú2ïûÊ¥FÆáOmý%×ß=˜×~ç|†Ù®Zû ÷Ê%‘§œzÃ}üíXƒ¿ÔÖ볇‡BÝ9‡†âýÛ êáIÜÏd$!ß½ + ÙMÉúÔT˜øùÉ[M”aÆÍ[@QŒ±uoÉCFǃÃ$w'CODòT©ÜfŒ-˜Dâ©»L½™rZØ ¦vÔ)Xž=ˆ…ÔE,4ónêpß$¢³ª²A¥fõ`(é =vT7êùú…ÓØH(=ÁBÊ»æ­4ìÀ“ЋY/Û Whå5"ðÙaBa÷zƒwÑ©|”)‹×*ËÒ¤XÈn@*žñ[6@í>¢3qŠúM#œ}séŠh1--8]8(‘ cjl1É}9ÓÞèrÆ`zl…$,xŠ`ºµˆêCÇ{d?Èeó²d¼FÞ#9œ;ÃE&+׈·CÚåÞäÌ`ÀõžÆfÍ‹QQUW® T­Ìaƒ†µÚL»Ï£¡ä‹£‘yqV?¶q"¿9\™žgÉ¿Xáâë4T2à¦ô˜ò_@7L\—t0êÃÚQ7Ó…ÞW×û­0« ep7Ò}Âø¹|ØñuBììÕ8j"YnEV…Ï´ª'wŠ4ß%–k")ZI›ÇüýM£!¨¹Ç”ò8iJókþ ›É?)a¢]ø7£}žÆ}—m¤NÌÎVÿµ¤ÌÊ0IGj–©Ÿ£Œ9-ýšôñ,ÑgDF„4#ÑŘ_ŽÈ3C=&ëÐÓýÜ\ãnm?·AéUE¢paöη†ü2Å]& ÅH@#N\‡!¸¾èá{³ðV#£¼Ÿ;„·ãÞI¡Û©«ÚÄÁáÈ”¡RÀ~Øœê°Î*ÊÙÑxÜP„‘Úbû©ÑGjœÚ΄…Õ‹º® Ês¨Êñ¹GìÔiRºãµL?õâ!¥xz‹v$pኾ7\ Ë ¿h” ( äfßHµ²« Fž[ˆ_ !öWƒ— û•vÂÝþ|4Â’#»¶×ØV¯%¢õE™á|÷˜o+ªÞàÃÞa’Ãì‹Ã±ò¡p°ßj¦ûù}øƒ]Eçm}|i) ˆ­MÕj¸S©aã„ß NÓ­&Z«ŠÃõxSiLLó#Š[6ðºì†½?7'ü%kšÊ®¥Š›ÀN³D5m{"¥ª4jް¨œ²‘p¸,hX¢a/¾AòËo¼\±øI ­ÊÎ*±§Q‰ìc–õ\ÃÇ\5.°|5z¼e¾>Ǫ[%8rÂÈFn7nÜîéOê!ãüÞP± 9÷ÖxŠÁîK“óK¬ZØÒ5¸•DHãy5ÄO$áqBÓ}ÊÇ·åü&ƒ,÷Ü:¾5 äÂîû܈Zå무 ¸{>Fµ±q˜BƒÜ•öï>¿#—¨öÕ—ÁÑ´±õß‚×Þ?%Æ+ÏÝmjTWnÄ8ÏVâî·½óÀc"HH­h+5ŸWCü<ÝiD8—\çý–~DŠN +6±æÂüÑ»*êqé®?Ä TŠw$T,·GÀMÃ`;‰c  &².\èQ7}® +k†Õ½«Cq‰\¯:í¡^~»š1 ”ªhpëç7Æ´á¿ð#d¢¸ Çã‰×%n ÒP<êgk_~â¶V4 åxÿލñs«²Xìq?:÷n0¤!’2Áµò­dß‹¾ð¹‘iõ„ @;8øH¶UF\àuÜVÇb/’"WìJŒ«6¹ž'`54t f†8Æ)õaO§¤ph»Ê4=ÁIŠùˆFi8)¶v ‘‹ÝÐÅSôlôsÇø9`•Iì¦ØØÄá—æY÷°Ø)Ò%þ6¶ p½­~3¨__5äp¡ûý :ÑØôˆ"ïm,ABC'ëUŽÖÂVJÉnXý£á5>Fà1ÅúW«ÎsiÄ€šóž_Þ.aâ³X౎%ÿQmm¿*ë+ ý±ob^Fˆžy¹á²Î¦:SýâçfG½¾Ûm›2%@ÊqÙ×·pÛ%dÿ)¨¢‡j×[Ã/¦ØÏpÕ” eáíÔr[Ñ/©)C}y’4ä UЯw?E$r'pnÈ?ÍbÉMkì41ƒÉeÁ4GCZD?u,\XG@kb{F*¦›h&UBÍWÑ}2ÇV¦%+ßÏÍ]ã.À̃ÂÙúûâSÕÓ½‚ËŒUè¢>ßñ.â£=’â£!ÀÐê8³Ž·ó÷)ŒÜ\{mQ =‹ðÄ.Ü¿g >÷Zþ(| +€Æïx¼Ág‚§1¯u3ÞµrÝVR¡Ä6+Îb”ûˆ ·êŠo@äÙ ÓieÀñ]dQää3ÓˆÆá‚jæQbp o6AÄÝ4Û1« # äý·à¾Cª‡‹qŠ0è9köŠ†ç£·ì Ü3 M5]ööÒÌ5×ãl†¾±(ï•„xè C>‡ôýûÉ:2;q>·™ðš˜ØIíþiQ2V„ZÂC憿EîÅaÕ0—;'¡#2£*ØÄ°0æ<.ŒIuù÷»–ñ¸‚G w¿!(à¬ÇY`¯5N3$%K Ï)!ïeähŸÐiÏ{låšY9ÓŒ2 ÑR§þŠ éù J„7°>aɸ{ q`¶ô ¼'z,ë­‘òŸ^4%¬ ]¼œ×y/Ç᜼éˆ! ©@9à ©ï× ˜éÐ:ºKnjUôßÀq|-’ÿTßf¶GƒDÖökjÂô´Ã5ùyb†¬¾«î\“`éôªF/ez¸¹ß=@\ »ÙÜNÓ:²Gb?‹²¿Bï\ + ® ¯½ªŽ^{*8Üœ2XöR6ÑÄ|ÍËkÖ6 z^$ÛKöËÚûHëÉ)h=ããa»4“+5v*Á¤}¨5¤ÀàïwŽ+ Q?ÀÊÝå*¯ÞF «ŸcÕñ$D|‹‚°Ý¤IÕ@䪯/Š:íž²CT&×·ªàwˆÚ˽îÒ¿5€„.ZÆ´,ô:VϽÐKk*«šNSËúã6árò^e¢Þ{*òñï=âq±$ñ:‘3/ã‹ãøØyuÒwF.=¬™ØäS€xë!£¡[¦£¸ðE¯büÓûÙÃú(9¹$÷“Å’ËGdªöÍÅ@7&ôá(v¶[®*š%$}‘ªÈ{ˆÔŠ‘ŽÉ’L({¡ +’cò²¤ŠªL¨F‰œ‡,×8g*a´c¡ôu&—ÁÝKЬ×ç‹’}£h!t„DßJ±ML¼(c>f"lÑé04 ¢Hºœ«'|OäÎ\ +?‘nd +9~žkn5½»çÄâ 5±9;Ê«!žÀ§¥ýõ-L±D»Õ·8à­!žl;OöõF~îE| {krt ä²f\Ös¸jjŒ˜8–ëˆ^wl„Ëç¿?%[3†ø¥8G¿†Ò+!¥=EÀË@¨R®Ã±‚œßÞP d°¿·* Ô•A4–¸=rVòf·P§& ‰¥Þß>I™z$eÎë­ʲýÔúJ‰T¬S>ÇˆÑ t¯>SÇbòÌÄ ×6Ö­ƒyGVò÷êar’WÁ,«×Îʰ?vÍëUá8ýx+’1Öš±›MïGný§ôq¦XóÈW6 +9Ÿ (w\ÁYÐC@†T >@YG;î¼!)©Mo#íLžêŒwâBÒ}§¬rnøÉ Ÿt¿™²1ÂF€9¼h +ŠV틃‡8”’¯«â{¯yœŽYÔ*Hµ”ˆÿJ¤AÔ !$$+ÿòÞðûú”©S0¢¡Ï{¯½s‰9è©" D*{ß÷Ñ.þéõ‘Êå(?,½wÜT,´° õŽî¸ßÑã~>"B?÷xÍ ¤7ܶþÅaà‰­È»jÝ1Jigdìñ:÷¯Åý»FCUE†%1CWVßL½òr¶S½Ðf¨+9ÿàJÙ"¯ZEŠ#’PCL–ü²ZÞèU"?öí>=R¸À)·ùýÕSÙD¤(¤ÜìBVà3ì9Ê-‚Ö­¡`Wb”K†`5L'ËMQ·)ÈW±ÏlÃîURÀíB‚~¿JГat+Dâ\ÛQã\ž§=†›07K¨çh×ùqžú„”ý÷¡3’´L)®× „ÄÕb8gÖ7Êjìç‚©¿ClçÞ´æÕ-êÐ0¼Q<Ýs‡Á Þ†Q·ÛóZ;À½*¢©|bN¶ìV€kÄòTÈÁFÇ‹5$þ¾£ÝñÄZÜ(±¡Å¿_T´ï÷•¥Øµ±ÈQÐ^äžKBVíº0^7&‡â.hmß‚Diw/ÑȺLå¶ØY|£X`Xœ#dvÙÃì1°¯¡…6j”ØxOܺý#¢”ûґ͘(gt{‘öëD-jð6w§aZhD®DÃãØ¢x |òÍfë{#Øâì!µM^{ÆqLWà’¨3®=¦2aLy°‚šÒ*a€€Üµç¹jà¢pæRíÐz½ìGÜà±mZ¹LëLìM¼ ÇÛocSVI ÷3´Û[ÅKP ,5uö‹­páö,.ÀKˆ +°åÛw—jz +SVÿ“‚‡WëŠË)VvgGnü%ºS NZ¡!.ƒrlo +ﯢÕjeŠ£Vv)»è >Ý««d9~^a*GOu®xøRM×±CØmK=ËßLå ¥yY‡%ÎFmÑ1Àêe tˆ +ݼÃô cC^³=2Ù™&qãœ@Ù7²â¯Z¢üžê8µ*ÂRweÿ×Ï'›ì³ +écNÔFúƒb64#âÚ/Ø¿áXmðÔØk>{Kª\?E㘦tXµqÁ’’Ÿ¤| Wƒj3*MIjtÕC‘³X—Á,©ˆd<ŽVÓoINFý…%ub_Ö…Ot=ëòyøÆo.¦(@šâ>m {1Œ +2劅ôG:¢—z#Àà9\,Ñ)xZÁÞÁúo“]öŒEdj{5â§ñST5üe˜¸Q¤‘ôe” å ÛñãbZæÝs†ós-2pïKãŨɈÓXæâ¥›”wõ#8›Cp0ÁÀ’œ =½Ö8ü8 +!6Èï]ê( @²!ÏI¾ Ü î3ˆÄ’Ûò]ÔæÜkÛºùø§œ|ó¤.ñl¨¤‰„ÜÉ>Ã¸í¡ …JÍn˜ç+Ý|ªiÄÞˆCeÈ¥¤Ìľ)äÈ®ïà…ð¬yR—É3OÕÀííÀ5Íf$érÌȯD¹s(käß«¬™þjÎw)ªÏ„øÌw CöGdýÜÚêî)‰ýôcŸ¢ƒÄ~Cûk™¤P +~kbðé2ùì)“µ®Q~ I1sfùÀ~z Õq éWjŒ²=}×구0ºï`=æ-k"ȸ%œâSz¡¤1’åq,9Oµ›æÙ±q÷ˆ„o¤À 5ã<ÎÖ-9]ï—èN¬(À iGN]>Vñ8ŒoÚI?ÑÞÎ/:ðxÁÇœ_Am~)œ5eùÒTpí¬lªQM`½ç•îè3¼JõtΚ’˪¦®-«xa™¼^÷«ª¸÷† Ï­"‘!H–‡ydDÛ‰ÐöŒÜ’)²B^ºSÙÏBGöô"äƒÙ´Ã)R“í»ÃJ ñ®,šÍ%­Ìˉ™†^&)´ÈEu¥£>€/Ax™U€ñ’ B…û—4ø„× pJÁû*+ΨU@óe"ƒq`ll„Ô=è—4¼ßrDë!’÷zª5xRïS?㤈ûñ[t ´^¨¸åþŒ‰œ—DÅæ¾vù'¶“¦Þ=Pt™”u¡lø~z{÷›¤,¿(Ÿ'öÔãgñ‰íW¹Hë–ˆ3\6Æ+FšwV²äõ„Hp°y°þmÆFÞÿŽ$k˶,¯ª@¶C¶'£È}åïUÇ«Š\b«r$GsŸÊGF\´ /èΠo·q†®Stß—ëío R‡ƒc_N”µ^ú¥õ(_Aõ¶MoH»k‡ƒù’Ñä³–õ®6 ëQãñL ÔÕ¨/·ö!Å„1„yÖö:®Õ:ŽªE:fí°›;nÐ(ìÿ& û Þúˆ„dË€èŽ'C u*ç§&4Ó÷ph>ÍK:´4Þû±³»€ú]Tþj\Èþs¿“²âo²ç­„š×ùÊœKQ”FRbXúUSK\«Z[#ÔÄnýuÀ†Âô}F艥fRU5$©€ý&íbx¡ÉY2„ÃPÛ%a²_™`:à_…5Ö‡Ø ‰}"¥¿wêM1hô/ÛÂÀÕá<îíû4S®Ð-è…%»o¯ôH,r¦×ÔÊvÖ|CôR"ƒ¢@ï5Èøƒà/{• ¶2œ;Ñü~ö†3K¦ÕrøÂ¹zh¿¨ÏBB^%o1ªM”˜k§HŽƒ:΃—UMጠZßÐp™IðRlŒ-ÉRù·~†Û–j0ÈãWc˜’©ƒe=¸áòƬõŒ8Å+[ '†ê»eùý³H1Mc¾z—”^˜‰äÍïýÄBÃ-i ˆÜb59vÄ?ž³Ï"Ëfù~ÆÚDŒ%ïÕcýCÜ7åëw éf·Ùï,‰L â•bÔ©ÿy€øP{€ùÍ̽4Þró4e°;.×áèò ![q#]âþ8ëò øÊ‹ç;ßI+˜ÍF*fèsz¾â¼°ÎWîö¾• âÞ«r » ‡i3ôRfÙa×4žë”Íä(Kt¸ôéæLÄ—™™\-Òý5ªö3ã7Hí1mS˜`EAU©îc1õßú/ŸÉoZ~¹r€ 8Á)¤ºbÄß/YoMˆüHÊ-úMÅMY´þ]¾©[xu¤ÂŸÖ +Ø÷jâ¤I§!Q„ï7Ó– ¶È‰ +„ý¥.ÏÈìúƒa»¤!iR¯-Zæw-†¼Z¿pÄÁJ³Fñ"ámÅë²|ƒ/ `Õv¡îu‹5ž* ×›Òh¶"û0ú愇].áap…@½¯FSìÅ%Ò:‰`#ÌB÷ôÈ×lŽw F ÐúŒü@Àè 3‡¸Øä‘«<(}ìû¤{ua„™DS·,&„]D’6Í‚½jYÌoÏ·Ÿëäî!œ±DªŠC>@Q«x Ñ× …ÇÑëÊG: ç63£)ºH7"-â6˜›ÇÃ))ŽÜW`Z=a°…å„585§J†DRÅ$;Óø©{ûú%±Àê”=խßù²—¦U%¶-ùêÐÌàçsaˆ—Ñ´¿¹Ô±³‡²H$µã“LؽÆG,M5ÊÞö>çøP3z ÜC |Š+Ä^Ð! ‡ ‰{¢;`ÔÈì€ÝX‡||—ÄcP±C”¦bQ[á¹=H³èëéÉOÂb$ŽaåjÇ{K;ΙX·±)yÔ=æÐ`¶™t“W¢D:·@à^³ø§%¦E™!C´t ÿo çó1œ?ÅO{±Ñkõð LÜÛäqj`žë>Ñõ-6ìaL¤´§ŒQ® éë¸r͇9+]²6¤V뜶0]Ád†{±œ%¨2ùæ±°¡Âv'BAœL$§Û‘Td{°?•ˆ’Nâ|Obf>ƒ‘5µg”P) +î“›‚iðÌ`ÿ×BÃí9ˆÝ˜ú«=Â)ÝxÙ_ìßÇëç¾3_Cìp›ÊVªe°‘ßH$BšHtò¾èÜìâPµ‚Ñ…ËLQ¶ÐRˆï„9êÂe 4: IŒoS¾ˆBÍÓÑ\ûWx¶¶€‡÷)¿`±‹¥ŽÜ°6ˆÝÞ£WðãõúI>bQ'F!­ÌÿO$/S:U:i§á´mkú¨åà˜!+fýKòû§G¯È\7›8“îÖ$@œøF +9hÕ}Ÿ=üXõx4ZGœŸû"nz½hÞ¤;(í¢g  Æ$îtäÁåB–'^•áê+ØÄêN -×ËT?_ù-tp$\R]òÇ*%ÍrEÙ#{œP€"µŒ©‚ø÷¥þ’ ]y¥PÜãªÚ­[]#9Q ·+‘õð)$<:ÀO$™Í`7GÊXÊ.+ +‡Ô©GN:Át‹ù‘ ³‰DòÃU¦}è9ÈgßW2È»q”¨Gʤ:EŸöMòE‹âØ £$›Vcì×WxÔ‘6À©¦ôܨÖ^©¦=èGÆÞp)Œ¨ØòÎYŒ—‰Ÿ5XLEÞ‡ôb8S뺔,ÞbOô0©“Üå^T¸éål—F<˜‰¸úŒ’Lé”Ï€ Œèá8œ¤g{T6à«=ΘӪç=QàuŽŠêaôîTØÔ÷‘ñT`¤G°è?ˆ^l_Sø©‚'*äâL$œuUa§" +}ÈýjÆP; 8úÞW…à‰Þ?àX=v·Îöí£0‰Uq蜣æšúYk¼ÐCeݸ½ŠØsÊ"úÓØùWÓð={Š®g™œèSÎŒ` †¥ÔQîjÊH£Öà9×X ›Ühc`X³\34Ðq9±LýH[šò‡ã6Å»=¼n(k”‡q'GÞ_A~>è +`A Ú +QüóÒb,ôgø'v ‚](Éè‚@D°ÃÅè"3ËïÀþiÃZbÐG’Ow['‰ûÁ n%ÏÄá—â-êX['œq(Ó~o;ÖÜð +ŒºªÕ´¤ï€k +*qéq¦B„šdª–Æ + +äJ„…õãqzz‡SñítH,2¬†+}Ø• +;hì貺å‡C‹…é &±ÔÓ#¡œEWé%Ü*ž°‡ˆ,È­cs¼¡–¿Ž ù[Õ5bI´®ÒÃ…¡SÌ’Í¡òÅ šö'ó×™ÄKPµ’dXdjþráÚîüaÒÊd@Бʭ¶·¨¶?±Bí¥šÊ…6y`dë q=âw]†K›êm³ K™pŠöØ!Kê4£&â–ù=SDv$+-^mèé°V º±7 Füv¤)Ô½Üc«ìélˬY¥_Ð-¤É#÷°×—u9ÿhŒˆ0C&‡îmÔ…Í5Ÿ© gc:®!„«09Îm…úM¼Y;Ü09<È:ðúq^ôçè«íÑK¡ZV®qý›"ùB°n€³9lÖðgPòm81Ú¤]t÷€I‡êút%â@Åç3gÓ¯»I#ŰZhÇüâÊ9AœxÏãêžÐCîþ¿ßÀzøîÕÇQ4NG„zƒ|Wãs|†Ý£™â&7.Qƒ²¡ÉÒ|̓äD ›À½Nk¬¼Ì ¡V­ø| ûðÏêˆ÷€RH1¹ƒwÚ`.¡R¾Ã«ZWÜ^]ëÑ\׿˜Ü5Ø$LŠ¿$ +Ö`+ÝîŠåÊkÓ·x‡Òó*ÍSpˆó‹X¨¢\>°Ô, +ʼn1L¡ k[ &ÀŸæÒ¶ÃG='é!}~È×zF}êQ@“mè"ÿÝ¿ ü´rmx$¨‚§R!dÔ/ªG;HÍúÇÕ)¤¼õÅ€ZïÎ^'È~À^g®ª:@Y7Ú QûQtÕÚ@*˜ùV#¨P'`CËfʘa³l ƒKÔóõmAÍ¿Vƾ¥…ˆœ/H"|ì«%ãÅ.ìjgd@ÃN2Ÿõõ˜5§0kÞ¯Ý<öT‚5ÜR6œ›ÎT³Ç>‰}`¢_Èg‰P¼Eõ¡°™1áÃûW›†‡`¥ JŽ;ì@óu^é*ŽüQu®Žb +ŽÕ4£Ä»è8­¦þþlýÄ£ªÚ YñÀõ‘ÝS¹˜1¤¤j¨¦,  +¥P^X¯LDK¡Ü9Z3lò4Ÿ¬úh+íK²$ïJ6ð¯A;øH,å\Ö·|Ê5³Fñ-¯(-’‚x,j(Wùc೸­hÎk—Gés‹ºÃçâûoYØÿwÕtæ_y _qs‰ÿ}áÞ"²ñ]ÕÕ¼…"Ì Ý d5¯éîµÌ¨~î%tZe¢~w2ù3pj±î†™…ðɸ]求ÃIJžEO7j E “j¤Ìã´À$Æ éöb¶¾öÀ˜!-·öbÜ„1j¥kC³&.®fè-¼šPaPº:O·¶å© ¾QÝ¢ž”MÍÿ½8†èÔš97bÿ„.»Ÿ?7ºB@üðB }þÅ–McawAt;ÙáÅ_hc¾-±E—ɱgÔ™Ik¬ä{Ï@%õèCŒ“D‰ƒ/üÂÞÃË£áÊùz¶D©J4¤ÇEÛËfl²y"L„=fZ ¨þb’ŒH þyÉ¢°ôÙ,÷9% Õó¤Aú&Œ8´etEb£@¤s‹G‹k£¡ÂGWHT•˜ÓÄ)•Ÿß¶`£Mѧ“J¥/;„B§B +¸b0÷‚ÙF‘õ4xeÄq©!(ÅLÀ‡qCù­2È5:yḵ Íø°WP¥Iͧ¨Õƶ-èçó¸4Š¿;L'¾µÒ{¿“ƒ^Š' ä‡I3ð…=,øBXPžz¼´ÁäÛmä¥Uþ¥2fQ% ¼vXPã§Á}7ìwNYó¸‡F(»ñ)q*E² +l]²8¨ZS†ßKpÓŠI0Žru“Šn…#HÀÜëÉ×ñt•ÇÁ +½ž>l;ßëñî-‚ 2 CزñhQ)¨.`5® 3ÐÝçõQ#‹KhÍê!Sþn¤lÞ~ñô?7v1Ħ€Ù)8í…)ÊQT›*Ú)ì›^*§½ëA3’ Ûë@ªYôS¼ý€x €ìßT€:¡ÇÛÿÏ~ku +*pðäomÀ"/9Â!ÅÏõ嫤zä¬îTî6{0g-€ýó\žÇýÒ*aà-î…¢þ®ëšAT+ú@­¤¤¿x0†ÄYÂ7‹¶Ì÷á’w„¨O·™_ ±Y>L™¦›éwßJélב´¤ÊžORŽÚò’´è"YšS±^¥ s¦W—_ƒ¼J¬‡Ú³N ’”á@R]Ü+f‰¼BN1\1Çå4ý‹+ï¿hü+MéÅ%?'K¸§öòÀXAA¸È“ ¡~Ç– Öïà²hToÅ›nð”KØé˜˜›ÖÑôˆøˆåôÚU™j +Â_ ÆlÀ¢…o5ïijq8…Ð {$§äå=\Ôä1T#;ûDn ågn© +Ç_@p@HµbšSÔK š-Œïai°ç¶¼)ûQQÎWiVQP©`”À÷´®‡˜Üæóy‘už¢zT’NG@ê:d•cå-¢¸‚øÕ×U]Å t°åxw3‘Tr’ç[\¶n°)Äw@¢š‘® + +`EcjJYJ†¡J´åk!V†« /Ñ™tþ'"G ”¬+7CÁMëdsªÀmÿ•‘õão9ˆBvç{·RC$H• ?ùŒãÂdEJ<ï¡ukwßÑÌ}¢F®IQ`˜’„´SG@€”„_õúPk.Õxø´ôÊZ!X4è¶5IfÎæH,ËÔD}¨é]`üé#)8™ê[l¦Ah}0²ùœ½y…è< …’'qLÊåp|G‘™ ÷sOû©dÀw·øñ©—Tg©hk €U`¡ÿuCÆãPÊòPÔí9–¸áÔþ¡-ñ‹^í35w†W  ¾¤íªðAJ!ͽ{4°£ô~éÚ#³õRyœÏ+IÔO’üé(yžò%™yƒpað^ITà8€@YL‘´G_¢6Sâ\-wç|Éꯘ$À;M‡(KT#Ó›}©¼påÖçEÉì ‡éÅê¥7èO·Byp_Wýcý¡bÆúÓä±ÓMA ø¹“®[•œMÚn¹§§A ¡ûó=Ñ\5úWc?…ì=ÝÃV%]xb¯C™+ìØ[)ùŒ›¢Ýo¦‰ÓO=~§²(+Wêñs/éˆ)ìd zü;ÀB2sjw—æ~1Ћ’°å‰“³ÆÔX PDAË@D+(ü®šŸO‰ÙužydÌ{‚Ú{8f•ô€X©ùT¤›\hKÕ”ÊдÁ<*`Æ>ÑR>³Kq/ +x¬4^'BŽ^CdIˆ½ [z!¸+Kú¥Ç8†¿ìBã²LgÞ'H/§ßvÆÝ‚¢¾h™B Us°s¤¾£~Dž¢·\y¿}ËÛx¾êQÃåšSî{ý¹Hoö ܧyî=Ô)îY•ËF%tD%ô¹RþŠölzÿ­CLUÇkmnJo‡¡®é¶¾³ázkõÖ(€Ó¹RHo½´'"9›÷ï6Bä–4À<œâr°¦´¡.™Õ“C˜êW +áÊ«T¤nEÓ¬¸3ûø}Q(ÍÌ?[щ| $OÒ¡$¢]Ïž{¸?ž‰ÍÄ o¶PÿBïê&È…Gd<þBš,½¨+˘Âª±ã`±™0‘XWa"‘1üñ"(LšßS8ÒZ¸À™äòAªÂµ œØIàz§fý :d…h Š—ä|VóKb—8£á?¥iÃkB“5<èÙ:­v äI…j°÷Ùi©÷dÂõuÇEåSLj‡ Ö}‰'¼TQã•Èd¨F0À¬lêÆÚ! +BÝ•.þEƒšÜøAL‚‡Æám®MsWrÐKQh »ß5ôŽæö¾´£:ÿÑHÝ]ãÜšI@݈ù p8Ì)=ɧ÷#[ÝúÅ·p=»€}Ô*H¼Bº/σý¾ÄB9jâ¶™ÐWq‡UÛ‰väƒ{ÁÎ5iÈ¡ãÊ[ÃÀ‰@>zÛ~îE +IõH™a‚ O`cù¢XÙ‚4´+¶ŸŒÊ>-ÔZ啯ãÚI¶ ]¸›=ó/–Ü5õ~nðžÖ~ÕÂ&ÏY4[ŠE3\dûñKWõ‡‡«†ŽììA:(a¤6ƒA1EÛáŽ]§R(a–ÜBDÝÏô: +Ñrœ‚˜›S”â·š×Û×|Í’íÄ‘½Ýêe ܃!a-nž×aEËÅkl6™”ØP#žë˜³¡œ†³±îÇ÷å­±×#^  ®øŽÊ'…† ½ð¼bŒWs 6«ÕlúÝ]÷¶oWØÛ…ˆ$üKö]A»Ö\¯sê…#eE^o+V=€êáU.DȦ»‘Æìæ}Ö=\¨-Oi}d`¶Çá PtØq‡ê ¼a9¼ÇÝ1ºw;¼U©#_än“÷Á+®Í°TM­5ö·õ»ø~ä¹ +%žCp»J¢ôDYËtbŸôYƒ;1¡_‰Ù +ûW w +ØR LxÞ}ÔrõlóX‹˜íÍ“""U=c›6Gð8|£|£&òP +ÒI +úß½±¸€O ¿¿Ùx0ùìN4»ÿÜ BAÐ}pùPD”åL#ñQ¦NLŸ{|5m¿÷‚Ô urO’E?ÆrÔ?w¯êù Œ,FkjƒçЗ¯”=iÇ,P ¿sxªÇáéc*9ønB^O:ÙáìEµ™Å¯€#ÅåÕPƒ{&»»Ø[¦c ÅÑŒ†P\žT/Š+²ù­áŸÏÞ7vëk¯ÚùùâëC5ÂöbRO‰!"K$†Äƃ'Yh4 +yÁR’°¶Ÿ|E°jXèØ)ßNl<é4æ9ŒRçé1£‡ +#ö˜§‡¹‹ò=ö÷LǶn÷RSVÎT’3EyżÉ[’ÍŽ¨ví~v|=:- ew(Dí¡yýø<Σû}%šZHÚlÞÉJyŽhïTC—S—pRIÉårT¯ªÓû|M¥÷àuå*=>pV#á›w#† éêp&fs,‘ûÙ)]ƒÝK¦‰¤¥F(€Tå¹ö8Ð5Ÿ;{vÜ{šòž*x¤åWf}œ`±ƒÕžµ‡f.™@¾þÈúª‡zÝÀVZM;%NpÅyaœ j;o* +Ã1MSHï–>†¬Êcù…ÊœRÜ&†÷dÜÉsÛëܾ(aª¬uêSn˪‘EÀíê­T|{ãXdð¾õ€¾"ƒ‹éèo«G!‘^Ø¥™7 bA „:¥¥ò2z„[äYö·€×ß?9«`}“ÈïØ#B ¦ì&D?dÈÒÍB ÛÙG‰ûñ¢F‹ªD›Ü}…Óêh×mDu¥!¯‚ì$0èx]ÛùL‚²vÈŽpŠu2 ¬.|ÁÝÃ…zßdîq÷OÂñåî`u¨pAºÃ‰võë¡=q§Sßb†"½Œ>ÔýIžª+Å8vcøíñÍÆßj2²vÃúæ'¬w#ÊÃ#â<—moc×´tJ2á(ò^÷Qvtô²ö¼š›à°›m±toYØìîm +Òb󸇚™zÌ˘Ùfw¥¸ gdZš„ê/¥ˆ·oIN-8qëeJ3 ƒªùœ¼F2ÓU{ÏpXUxÍ߿•=ÈWÒ¨t¾Øc+ç÷¨uæzs“Ÿ×x26.–‘ 0O9@—Pê>"öÔ!E¾.5”“}z¥¨FòúV˜!ø@:¬”yŠÕŸ>¿`¯‡ú}Û Y‡¬ã¸\ÆÌ´T‹–bç"ˆ{ÂõÑ!ìãþé‘pïRÕ²Õ‹ ]Ø+ˈZ±›}‚œpÁF|ä²¼{ïmã‚@zDÇ¿©V9þŸpaÄAì^‰3䨈esõÓ¬–°fïúNQCG…oÖ}ÒÈïHïfüáÚ{¸m'²xû:¤àëHü≪êA £äyïáã¸ÇýÜ(>0sY-.k„(‹fM¤>j讼ü·Z”ÅŸÐ/¯Æ è6  H­ã·ÀÇ“•0øã‘üÌ~WŒ´ÜDOŽŒØÒÛª„R¯ ýœ°•fÎüœ{ëqýÓ/D!³Ó™Ç•š ™v¨÷¡“¤F|7MµN¥ÏÙïqæaoø:Z?N¬“ÐòÜ†Ž ¢“H¦a/Ê*ïôuCAûs}TjÀïÁœè‡”3¨rÃò^ +‰àýJÊ‚°Ê8"k€dvC%ljºO¿º4€Ï‹+Ôp·hàÃx–L°\¸,Žówú™ÄTFŽÊB?‘r­!éÐÏâÇ.R +‚2¢!FÙs×–w{¾÷›Ž©44“Õzÿü‰uîÆ~ÑxU»¨A%9>{ÀÎ!QèÝQã¡Æ9^Ÿ¿Þ,=ÖœÊöñ%È* ì{S’Ø<*9\`ÈED(7ç†J¨ñ;“¦LÙÕF…Â{Èâ”ÔŠ£¸ôíùœ*dêu] +idÃŠÏ [;@Ö5À&Ÿö« Q…pù˜¾ˆPÃ'nÅyʨ÷på.ãOWÁšï]+£ÅÍö7Ñ"å‹Ïgü„K+‚÷ôòrQ7W¯N¯ÙE ‚*ëî« vâ›ÛyµPTDœœbgYXÏay–jH"T# dÄ nC%è5&jÕ¦ìdš~½ŠÜ¥®ë.²£CÞ¼âvsXUGÛ’À¤‡0ôÛljÏb0Òì–ÆÝ×nïÍpòóyëÝëÔ÷ð§hâ—ò!œ#$ã-„jÕ÷†vh$üÜXC1Kú‹ìôÍ÷ò"Hõ9\³Ç_X¾Ç+L ¼)¨vòV›Êñ×Ö0$ÔŠ€‰Ù0eqM·Ý „_pk­ˆ.<à Hšç©¡¿7Àlæ½æNõ¢c0Ù­S±§©‘SÀxfÀoR>¿9¡Þ¨^¿´­?7®Ðß+ñÆf +:Î׊`ˆì?Z5ÄÆgÅò Ñ „Ûà$¨ºpþ†"ƒe§„ÃDH®›û÷x“cŒÍSÒtˆX’ÿÝ9×6:“8ÕRB‰Ô–…7Ð çoîòu¤<Ÿé4«w_>8RøîûI~¸ŽóÊŸBkÀjz…ŒàГ{;ÉxÞv]?° O4ÀC¿Ó®ßÿܸ߹€gáÊê’©6‚hð|ÙÈ&Lž¡÷w$–Ô‹×R…I±“↋æÃG #;õ'DÞä=Ÿ*†ÞÀâ«ÒY­ƒPf—7D@É—´-pë¢ÔvÁçîBð¯¿O¡ÔÍÈùˆŒ‘6º,úýyý­øÇÒsôÉåÜW#“2ÔàÒ3Õ#™)ñ =\:ô/%Æ@¡¹ÞîûfÁ õ  ªjå¸ÐQ Û#¡‘XR´\ÞKFí×õñß²/‰è¯‰þ•Kø!õï)BþÇȦ~û›ûíþ¿~²üíßÿÇŸþßßþæ?üíûÝ_þòÇúÇŸþöÿüô_~÷ÿøÓ?ÿùÿýôóÿúé?ýáþòŸÿéçÿûç8é×ßøïüó÷—?þá§}Š_\Üóº‚_á;ýWþ½‡Ëþ1cÿ³âG}ÁjÌߣèãˆH×·B¤\{ð=JÉк˜š0.¢ã·^ô ñ£M#«¢*>@ö€8ztu1ÚoE1 +=c;YgïeIRÿ‘…[Ù¹í¸"Ð^0r(ä WtX³¶ÚëAT|ñš4­Ù3ÖG±|íͺ†tBH¼‚ÃÒÜ´Ë +äà'L&š=0¥¤BуœC” GyÎáAÇGMÆw hh“©³øÒþâ ôã¾{8×4I¦˜M¦¯èÿë¬æ­9o2ãû6œl?n€Y÷nÇ7°{‰°j :ÕqäGhRÜ6öj¡bPY§&¶ßä‡BŠo6x¾Öù̵¤}¬@”–¦7Ì~× nöó€VŠï|åÑ£oŠ4°"©äqwDXóa=“Y*^aÀ B!vÇIá V˜¡Ð=ÄÀ +‘šäIPømá³'–=$v&K@>„÷®©–õë¼ãŸt >ôÚ»¾B/&Âè…Ë »vŽ3NÃB‰¯#AƒxÝ4€pT{ŽÜOJ +è=Œz©’G/~l)ÙÈëÃó¦än: ’ç^´•Ýæˆ=ÎlG9;ºd›ÒiÇÑ]@#™ÚGↃ€„ iÔ>»Ú}„GÕbVU¬l××¶öæ[¸÷{iýõR,œ3GТ²ê’¶ÛQ–9ï= +¿Ÿ( œù‹^-\L @ÕT€9 Ô|G|a’œ÷{MF¡÷÷¹|jˆ@µ¯|ñ-4hmû ®.JºL¡—°(°¡¸›¨ÐDgw† iVXNéÞ!zq›Á衾K/a YþVãp àŽŠ:Ú + ¼¼–5ø„Þ¡=P:Ù=ê:(zÉ"¡ë“^"!D͸àFùH«³íè«I˜š¶÷Šû8S7…(Ùå§Ý¢5÷e,N@œyEž|!;x°!Õü1Ù'¬VõΑ@fMwùE¶Å{$—+þÞ =0LjAΓ=àá‰]C[¿óÚF!y³ªÈAcøì7ˆÑò©CŒ±n²û!LÊoG1Üad=aj–ÇèNà«á«¡{ôž=Þ›KÂйób‡1°.æ¤|!ÑûDå)è±—‹cŠZ)ݶXs<²8¨,¸£¦°2Õ*ûŽEàšjÑÎ^0 "õÄìX õø:ùµÌ@kŪK‘âÁT¤6=Ó=¨dÚ;!z°c;ws–g÷ÊHД€²ÛkeæqØ1‹–ØÙ«?›=ÆêöÀ|€{ûײ÷5¦›f=ì€ +IO"êN-V1mQ‹ ÃñA¡`°>9süÇ0UÇl£°K³VÒ?÷ðLKt#;VªÞ_§)—³×æ‡;½‚sÖѽ˜¥ˆRòÒIÐ(%éäv öªEàʤ~k´ƒCÑ*éôà· +mÌfÄÄ”AÄ„ЯG^7FîZ£:°/{é®Íz@ª~¿~ûÕ')Ü"RCI‰@fº¦²æÔ°KØ+ð¢ÝH30ç^]äíjC,ìÍAÒNGØYŒlÛÿ¢m/XÅ¶ŽºúÞQˆ ¶Ç2÷Œy[µ@zdpFô ΠG… I‰rº:ëäÖÚGz‘f²—’­»×ÊŠc÷Ö9SFõ$zP¥£Ç~¹ì±ßű„ +ÔxWtÖÝ×’®Qæžœ×á­UŠÎ+È>ê#JȤ%‚O¬"¬’¿KPÔ0Ÿ@–\83O[1ƒïár áM÷6°m‡BÈ£Mï¤ý†t¶4³©㪬!oIÂ]v•d›ZÙȪֻ-dçýì³îUz©3Ÿ£€]ö4 iÀs–Ì?˜xŒz³ˆ< ž¬åÀ ¤rQ\èuxµ¸&ñ(W–BpÓZÅðy‰‘Ý Ô€ÀeF=väcžÃKF±Úó€÷+ä=Ó=Qã¾oe޳ÅQýRn>@òAD$¹G†?Gò¹ÿÚ+òãy¥: +”ËÔƒ¢¥LdkþtzµD E©c\'Š1wɇÑI®ÙsÔY N‘|A.þ)ǯ]êÖ>hÌ<36rß Š±›'ºÔ”üßK”Œ‰q:së!EÞ¥‡Æ~óÊ(íYHîžöÀÑlMͰ^µg8þ®+ü 1dy´È!FJ‹í„ +;&©>õðY_ô °¢œ_GÖNIl'rhe¡pHR¶ð„Èct7U?KVά¶RH&GqƒáGqôl¯qçhZÓ‹ú|™t\ÝÅ”hH ùCý À©ã^V‘±FZLò£†öª"ð‰²_gÛ²{\‡ìúyÄè©Ó¡Ârå§¥çð³LGæÄs¢î|ñìu9[gÓd¥†G'¼&»˜e  q×Ùa#ÉšC¶„LÆ­C6ü„òB]@i†ÛçÃÓÔé{9ž+<•æÙûÑPçïûïD±MàÀyæŸ{±7ãŠr™¢åÑ亷&´4¦ÊxÈ^¶XúJuqDü½Gü&ìí?8I“úâ8œš)‚¢_öRŒ¿pø­ôÖ!#qtSŸÛº‚-Þç'ôê”ól„‰³‘Ìbê#F¯'•Nh@R|Î{XTLÈ `„§!ú¨îñ^Œ ŠûR:Ä1Ô ¶À:ÊY¼{ØÉL;<Óy]¨}ß“Pbbß¾_$ïY¦t(e(KA÷…Hÿ=HhЃçÖ”¸%7±C:ÌF[öK¯ÔKô +ëß²#¼½¤ÇŽŽö;²¿\ãLuei5OýÂiÏÙh>Ð`‘8ãëEµ^˯(ÙàR^¸¢¾bT«=ÂŽè-pŒälÛCOŸ á¬÷§€Ú£õöpÜ!é)ï:»&Þâ}D£„UŽ(ŸvK¿ÝÝH×n`®­²‚,ÃánËU'têTyXøÚ‚ŽXb“Ñ>ãÒ}õñ‰<8jibÿ­+¹³§É½ÚëáL‰8»Çµ¡SfWº;-‘”®¯Àö!uîÑÓÝã7Ê^ö‰…ƒoš¤%wÛ•kððƒ–—´F8g7Îr |£ÇÇ{ šâ2w0§ .s…=¦áç¢â*W^Ò®ÈZâ"zjG?E“åVð+é/ˆ‰ðVçcR¾²”·¤ŠA"J^·ÉHºÀþ*­oòU„jFùÐP8ç屫Êx:(–&<8JhÇBãc…|꺌Àª‘&–2rY1u_)ÁzìÂéa-ÙO¬´LQv`N‡9Ž-²²_ûÇyR¾nç5ÜÎçŒoïgä·Áï»bõ¸€îÓßÁ ¸æd<²E¯!e%é Ù:÷±~£«Š‡ ÄÄý˜V(ï6ãý9[ìí¿è¡´â|=‰_6B½D˜´žµ4™ Ã`H +å*¡Á%}ë•ùjì HÆçžÇݲbûªV½'i÷ˆyìhâK˜ðP ÷Ö1á— óŒU®uÅÛÃ^ã9F>gx·&2d-U²!ög;[Äýnb§S°9Àµ³B›ü$¢¬ÌW’ÌõÖß„< [0À\ÍÛa@Ýų_:RœÔXÛ*yÒ2¿èÖhQ9ß¿§ÏÁõË^øþNï—]©^áTTr1GŸ"”zÏà-€¤ÖqÁ–ýÜîiÐà-ï‰Ç,Ô烥k€rj¨ü)°Aª» .ã­B<-Ÿ×kë­e†éÛ”‚*Lqhyúi“òŽ\e°s_ºÞ{Ü¡6Ø|ékÀ;ÿ~L­vð@ºËÛQ`F°·Øãk)Ź£=Œ¢6ñ·æ&¬©¼ëÒmž3-0yÙ^Á +Ì—wÙ¾Ü$DØÛ–#WÍÌ–œ–*Ñ—ÏIôÀ¸äu&KžTëö×£ƒm‡Õ™â = +|,\SšJƒ5Ü1óÑ©Å@i¼™G0 É}÷<ƒmߪó®ü²Cœ‡íJýâËÄelõÙ µÏÙÐSª ¸ôUc(´_ïKM}ï„2• +ÌÈÿó+˜v¥xÂ6‰‰9‚ýÞ %ÞI‹dÓñ§vO‚÷ë$òúvŠB¬(U–Ú\9Ž î=fÔÁÍûHÞzU "¿”Ä!q±dǤշÒNêF*Ìž¶;ÒÌ…û±‡keûú¹Ç}5#7X‡vlŸ;‘®ÝSt&]›Ð?æRú³§Úï{ªVoŠós/ôä}&(îáâàÛ1YW±kÁÐÏj‘ï_:°‘]K2¿)®O=âŽu)ÜÀ¬«YoÇ©$Ó:“·ž'ë'ãŽÕ'ö¬@DÆ +ñ›tˆ]1ó!~$#f›}škñëè&!Šü’Òñ™©¯™íàÖª/×è!Ȧ)ðZd©_ôÂ\ÅI9æ~²+UÚñi>ø-Er‚sGXö€Õ`kfÚõ£`–ÔñíH¥óHÄI¶W‚wÔuZ,¹Ì^””•Ø&@j*EÁ´H‚ñ?÷ˆElYþ!’ÙoÕ—ÇyÎÛ”™Ñj¸`/¥§§vï=V>!½ÌØÂ®ÛŸ´Vb¾úø£w¥éñ!Ïå®ËíFnHºž^D,'Sôå€}ôØ=šª{Ú¿W´´ÇóR&ð~7s¯¯ãÆ’PØ1uyE‘}+“ø"Ž‹£gV_lÍH¡^ÂÝõÚ¼ †`d\\êÇ” Ý”Àà"s<þGòûG€f=láØ9¥È¢Ë¼”ŒbëóEȪªÙ”›oœùÖ+‡kK tbF‰€Ht_ ÝQ`Ý?W°üjx à¢1€ +Ó¯oUå(p Hfƒ¹,7Ôp Ü?@¸ÃÂÉÆãR­2ÍZõ pÙþªz™‹À€:”îéäVpòĶ•u5IKçdÜjÙæZû@*mOk3.’*^­ã½ÇïoIšæ„47Ÿ÷^¤×©Gï Ö^_FL*ֽȪ«ëýÖ㋵ñ½p;”î “Xjî;¬Æž{/zH5Ôö”ɉ‹ò=l´.EL‘ÞÚ£ähöHHTÒ„ ˆsoÞ“jmê»KÈTÿUšÅõ›ò ž/ß²¬ä»V#dù/ûZÁ Þ½{VÙ?A%‚ +NÍZ1²Ïöjøg“H)æpÅAQû~K§$@öuï K=L$òÈcWak–…Ó‚¹º9#YÄhTrÕF—ÃJ,z(£Ûßz'uéõöhÑÃÄ«=’î:ï™ØºÓkG ¬Æ%œH«üÇ©žè•ÛeGÌ~ךfÛ(ÏuSr{”g{h„Ò0U(7µ·çèßÔAÀÑk7"]Ô4 Ç0Ù A†» q\myÄð˜8£îëB7«¥zœ>Gˆþ?Äz r+UZÄN=jÇðb9@b ®½Ý¤æ•N•4 ì´©kÊŒFnü#{¿HhÒXÕ_V‰ŽÏ‰ˆÈêC‹0N«é¦lg òþ&$+&93è0 †ïñÍ3 &†¥.½”0ƒ¹~'lÅÆt9-¶‡Ÿo’Iç)WPÎu}"~ó@UéKK¹%¢Ÿm4jŠFÇ/z–:ULÊ>̈i (j¶{?6uäiÆšÉÅÏ»¾o½X"éd]ÉT„yè 2hwÈHõÒDò¦ÝææCªµN;‹èk¼Îa ¨F–æ©}¼½Ñêô`;½tIªöÀЈ«-B”èAêo÷`‘ß=@¨¡·¯Bk}ÉÄ“*f~œô”JH¸ÔL 0MÅ-?Ò¢‰‘Í02{çúÞ!¦…ÏaÛÛa,M‚K¡xó ‡§ãÁ[‡@‹!ïûûÖkEÈjÒ§÷s½ó\ïŽ?ð":ß‹S¦<@MlGD°ÎÐï=~€p–]&Ü{êðoLjoÂ}§‡´{‡ÔÐÄ‘%‘ (ub ƒ€òXŸð¸Ô¦dQÓ”eÃyòá½E>¼}ÕcÐìA‘h¢ú{/*äûaßL!Ðÿ³g7EÖíÌ>Ù +*! Ú¡e  +¹ +äÙ ÛÁŒX»«¤j©שè!nr~«Ñ#óL•qªöp:Ó®~œ)VKĵjôz%K +P{0Ã.,d â ˜e?ÄîÉ3±«æZØ¢Ùc… +pº.û¶4cÕÐG©HBçØÑUvS3#¡¿«,Md˜~tb·UåÏ=ŠÄ= Î{*¼?é­WË¡JÍrÆ¥ì÷ ü~켩d8ˆïÈ:s›ßzüþDMøÝºÚSäÇ)Ö’XþÔ⨬,XÖFr~Ñc‡'³ùE[ .êxÎ%•½ÆE’DÛ3-R1h=ìúšNIq¯[Üëz«ìðÓ¦¾§}3t±Çb×ÈÔÒAŽÃÙ>Od`#• ÚƒÐ•R‹ï‰bÆ>U7à¢fs ™<s =û§Þ§N>““ùDçˆÓD —C´“ný. Ê,ïN)ŒC…Tͨ@$ööf'^èMl]÷ªÖ¾è|¨w…,îQ~ï•ÁIt„´s%Ýjì åRâ€ëCjs¿W0£èÑ Gl‰Ï=bÔ5§˜ý>"´S¿8̪È{L!R+ +Ÿ²Ë:`‘¡Ýw‘IDZâÍ%gvvËÔ„çíù +Ñmè+A=Ø{xJ&-_À÷QÌ„ >%‹º;d~EéÈ–‹>9)¾Í#Ï ÁÜ?НàˆL™´sº!0Mº.Zßä©öǼí­C@ŸšÓ¨À';Qþ²S}ŽØX{˜A+‚°‰óÞaì»ìhêJŸ¼÷*²‹™GC¥@öC[Ù¯o æ`bž +ù^~*ü ýä¢G~aêÈ}Á±bÀ¬Ó(w†b‰û#»Ã‰ ¼{ ï`‡È0zˆ‚ÜÅži½N4Pß½Î45°Yx}RKP"›[GtÈR L"¼G/ö*Š1cénRy†ŒþEž¢f%§” 4¥â=#ÐÐøÑÐÜå]ê¿Ö@Ûú‹¤Jë {úËÆêUÈ7„½'MDôx¦•=Ê~¦³¦€7F¥“ã{¸W¡ÌÉh¯&_gÒß,Ê4s}"ª² +ãEòà¡wv±Ù@1}®‹K¿ÜÁ~ànʘõ÷^w.nÆîµ¹î”‚ó l¯©£"+jïÅy™ñ¡’“÷ ‹„Ô=j`ö’ Ýà#õ‹^&+©ƒ³pL²G­Þ1­´ÊÄJÀÞ ÅDIú‹w”)UÛ/޳{tÏQµ»‘kBÈ„+„·Ÿæˆj?÷B¯DfÃR"„à°™Ò¦Èá”Õ$È$€bÒ+v {^À™FËÖ€–LŠm:ÛŠH#Ž"ùf¡¢Q8ÀC"Ñ&U¡F6ˆ:oÒò4aÃz…:vøq´$BNrúì8P} a÷ " xŸÕÓ +ÔQ °…ÐÏ̪Úh¥/DÜ:ùDêi°©æ‚Y齈ë\Bf'd =`Ørôt‘+ÿüy”QZ$4ôNôöíãcFg˜‘äw#ÅqÈðS!kC‰O(ÄŽ/žŠm@ÂíANt÷¨wûð̃r!²ƒÈ-\ìÿÊ@9 ø5á`ÝÜ_°Ýx\÷µÈ‡aŽVcue ^±Ôé˼0V-žÙˉmï÷Úß=ŒÐd2úkD îZQl¤G!Òg?Ï™ÐÐŒ}mú8S}¬é ëxz·^n·zTG•&ãÆNÙ˜!§O NÓþ)¤|Î Ð}BPeo‡¦Ìv^‹=è'vì@‘ÿ ƒÒ-bìà1½]lLVÔê2ÑŽ¡ ˜½fˆ¯Øß?a»n—ñƒw´¹w÷ôóé(e@½vK °¶5‰Œ*p@ZCò”±ª`•ˆ°ˆ"®Mé{¨Ñþ0>I¶/å6 +¹ [åÆyc"NòM÷¥Æ7ŒÙ{0;¹µè"†ý:Y¾îÕ#õ Š«6=¨œ’‡¥aÿb.éÔ2²p)pdLqYfž€ô3'DV×¢Ù‰=Dëë–~z)æ7À~»³iú®¶ãΗ%!»Ê<Í@,á8U§§x¦ZŸ-ì î~¥æÝ²S.‡ýJ¹œóî53öiçJN°ŒešBÞõ;òD²€„좰§´ï «îÆ”€‚rº$ˆ+€oŠyi¿Å–¿'®¬dÓÐ?̲œ-dËŠb[„Y'tdKé ’yã¶ÞE +mYÌtù™…i9ìû¼Ó°æFØIlß¿jÔþŸ°ˆ›`dkR± jy»°­¦cs“ E>ø¶©‘D¼®5¤Ö>£9äÝa +‹j®’Hýò­8 RÖ‡î+ ^Dä.uIö¯ oÏÞÏÖ8›)zHÍT=kr"²L§ð-A¶›Ak’‘°^'z¹Zeç¾Ä¼ž4Šl∸†dÌaÑÖª½pè&jÇM@­kIà ÁÌ +æñ¾Sòĵ§9²"ÚOR©Ê_èWì›Ï¼‹Â1…ò=õå¥.˜Ôç¨â€Ó|2Üfæ9‘¥ÛÇi w—¥~zÉVt؉Ì:Hu8}?ÂÁP¼§\%zÖBœÑáy !C9NäOÝýû`‡%Dp2\0×¹´š?Ããê|){tê($õ *n==xÜŒT&zXüÃÀ~œ_j|Ãr+½Òy‹(2ò~Ô:0$|“ž…Ç—œˆBo1#Tî«\é¸ôíqó˜¨!<9Wœ \ ‹NÁšmÆÞ£H»‰Åf†&5J¬Ófcg)؈šƒ$ÌPÌÖ)"¢v""ûD’ŠuúDL®«ÄT$¿<Šb dVlUþåèíÆƒ¿…³{°ß¼š W22T¸!gPèÂ7Öad,‚Á¼S†E…ˆ}¡ƒÿp|ÔS%t?ÐVšF°'€.ç Î$—( ´’û(ÑH‚ ™ã52…0„ªã9ÔÙðtÆ)œ?Z¡–¦=3Rh&º–[Ê{¦X ÷ã­b’O=²¡Ž0Ï™‰|µ‡<Ù&Å4Î$â‚@LMçž3vâÏ€¶ô?d'9 ÀëZ +”*‚w&¸žÄÌ«œ9…û:Vñ»$Pø%R]ZÆÈïn) +éxÒ-ÉW ° +­ + ÖÁ´pÆ×ì©%’(–enŠ…Øîy§ft¶¥"ýXùIxÏñ¾âÖ½–…ÒPKHõÛ¯¿?þ†¯$™)ð/d¦0Uwgþ°¤²#£ô§Ó‹Œ?½*.ô’^¨‡CÏW˜ {œì£Ç4¼{ !cÐôp¦´2 bP€véÛÏI)g¬¨_Sñ¥i‰8x@Ž#%9Œƒ@@D½2 +\ +[ë¸1!_죉2±3ûH‘´U>4kKÍho,Ä`qŽÝCMe€  ,õê|•骅¤{š”Â鉄³éÐm‰¹—Ј¸„óÂÛ‹t7ñÝ2‚Ö½p_q#hvx/¬ƒ@…^dú’z_ÝãƒÓãwHPME>ìÁ:Héáë’uãu¦½³iz±ýt·g:×I ü˜ ÉñKvä@6OÛ=f&ü^ùƒg[ìyˆ0ÆÁ©%t­ÐoʳÉò8Ô5ÝëUª‚x=Q‰ÓZ‚Èï°˜ ÌxHTsp¶£³’ÆÁñEšà}Z…asШÆd‡µJTª‡¨_â)'¥Øà´H +S›@€(ë·KƒƒŠH]¯Š¨BÊ£TRMg“>‰Û³!ƒ³:3ø|î™öýæÉFlRÐÎË p‘ÚÙ¤…ˆÂ‡†BQ8 ñMä –(Á³Íª¡­ôB1!¹GŒ?Ü’5dïI]Ï[‰Rü(ŸÓÚ †sÔO¨A¸›^6|x÷X}Té#n<{n|1)‡gl!<ä¹ffàØowà©*{0\Øo'ÅgÆ Œ”˜Á„hጭ1ó[c8ÂöP0OªNó€𼼸œwž–•àÜ1ÔÅD¢SEy‡mÀjf:Íëli7…²’E‹ŽÂÇ&¢âWµÙ2:¿¨R9n?Ì–„4™¤¡p–V#dFÒ«NâäœIµeÒùpVzàâ‘FYCfÞGAqª4  eR¯T.$ ²·=B¯¢úEÈn©8…19ørK¸{½;õj¯ îà#^E’ð–9EM#b4°¬Ó’•ï!q‹$ÑÞY¤‹ÙfˆlH7/¢\I¤¨.*ó¨?ÖZs:qž¥ˆgÞª–ÎŒøqÿÔÑ^tü´¬xrhEQæ4öA€k ®%з{¼Ï H%ßH+ ŠˆòÑ9•µì10sW–.ª™¤ý#NÆB$sC)%àr¶“> 2€Zº;—EÀO"ý·”p" Ä`Ëê/\òþz4Ö¢Qöè¡.'ë ÎqVKp98;ÈäÁìÑ‹•ÕÊ,ƒó“ ôæ©ADw"OŒýi¤>žKTâ¥9¢P z<̺Þ:q77/½‰u BþÈAÈ¿=Üï‘A|ê€c6Âàj•{"r’ÔI™7k¤&bbìÉI©Êª™ ™\ªÐ\c¼Ç¤?Z\‚û3^ã²kö¨µ2ñôœoNÉ2“×íÓw/HÁ&/K.u£ ”(ésãDDG&.õ‘x+| ãÈ#¤08䬺#ÇRìW€íP†žé˜æR’ad±àMHâé»SÚ%®XŽg1ÎcôrÕ²À¶0?zŸÊÕ’7Æ gJã0€¦3Ó<`–vÒ§u„@ôéÿýê•MoZ[¡G9Äý€ ”˜÷-›Q%Ge®Áªw÷ØUJ-Qòë9‚P ˆ»ëÑú:…I¹BÅ}°—ó…e#ÊD@ÑAÁÒ7åcë~3Ç]šžÀÆzHÊã‘MuB‹Ú68îÏٺ£hTG÷U^(Öq_¢Y$Ý€f/¸Q°ž«/ÓhïQ¡,xÛŒ?çÏ€MW=òÛlÃÆÊòˆcå™1 (xÏCÉ +Â6ù&â»ÊÄW5¦vTµKëÜ!ž °t %×JÛFv|ä`$dç#§Û!†Ôøº"é9ôéé2]l®=4Op;KôyŠ=õS"£—¤'¬#øWÌX {§@áÐáGO¥ÐðX´N…ŠUÃS(a¨'Jq±ëîÝQ‡%Ï 4ÒA†ì¾„ì.(ÅÌà„ÂoUż˜õ ohÇdY¸%WC;›n6{ô= i~2çØJ+¦úîGrojI¹ïŸh7jsÈÁ%n)”ð¤ + @ö’ Qe¥\6ð¥$>Ø_%.)*X; %`Þ3IŽ¢J„…IVxÀjçS±.ÅiÆÙ;¶®w=¤ŠÌ QòÒ„š!ì^n¶èQ€ì# + ÈAd@¸–¬Ý,'‰Æë¯RF?KGzóu"mÄÒÙL +¹T/‡Œ-(°?òYŸèšPííQš=d8H+þ'ú»óð¾@NGÆF—gºfm\HG +`Á³†0ÃÝ‘iµÅ\F"e}{T)Á +÷¬'ÔoC\ÝÜeHˆªjg¦ÈÜÂx6³vî;LQt鵊-á)Êx£¬üœtÒ¬úc©ºŸê#^M¸Ýš˜ç]sò ºr'Woq´6> à,ì€Á²A=¢Áa @mQ×½c}¬ +u×= c‰wœLÝÙ†º¢`Xe71°tÁ­Èïù´×Cµð +ÚZEÍà4Ãêz€{ŒbË#Ÿu#ReÙLLÌËûÎdó#’ {ç,?‚ó28Y@¥,Y¶X_^|w½Þ¾uè71OÿÖÞe×–%;Ï{½ÃiÊjЙM»`hØpÇV‹J4 ÀY&à·w|ß?ríSk.ò€@U¹çX™sæ%b\þ >–•? ɞÓ043Äø8ÑW/}4 +\ÉÕ(pyǘÂu4Ž´&ž­S·¡]' íA|Mä¹W )J>F8aTƒtîÑ6gm€££‹Ñ?VPJàמ•ÊÞÎÎ防5Ú²”*ˆºƒ¹dgUí¿?°¤íBßáiî;„¯‡_øÇ(vÀm»Žs%ŽDÐyVÅç¬ +ûkŠ&‚^ÇóëLÚ¸#³|E¶m£Ãò¡(]ÑJFýù.E9•“'àÊ—eGþ:m{ÆdK8bšw#´Úur ž®ü'5UWæD·6%g¤E8Î9ëiê:°P4M¥}‘q"Qc#ÅØCš ýòŽPû ¨ðÂ|ªÕ0Ÿè¦ÉÛ˜r[Ô„hÃoD„Ýž¬êk$i@T±È+¥”–#†½„ùè%p;$ä‡è˜¸¾Žk–GÕ.6}y^ƒ ˜bU¼7H\V@(š4©dO2¨à<êN†ûÌWUlÆy“ˆ¬>¨Ë +M¾M„P’àÙ>!áTÛ·õ8(ãþéaá-a‡–L­òúi´°i³>°Õq¥[t+Žã7_úÐei ¼gŒ@hñÔŠr–je-8 ¸wáØ‘®¸7{f*Zço®:Yòêz#ìÐó¼ Ê^(çËöÛmçõ–)ïns¿~€B@…ÿvÙ¨G9ï¡(½ÜHbÚ£²'#èãUÅâM Ì¿Þ|1~ÖùÛÚS}0§èqÏêõ¢÷žˆµÿ®TãU|蜀ÓР™È–³ˆ‹ÌQþ³Ê +}õXá)^à6ðÖx#HrpSD}ÿÔ…öÌð\yz˜€\¼»  {iMéI)¶¥Ðyï¨)c”þfžD©KC”Ò—èÒ㈋Úèö’¼Ó²ÛˆÌ÷އ|RR¼0 žp¯jb^r QG4ú›~;sÙÜNa¾g!¨ŽRÌ»·Íßt¸áL¡Œö]\ÈC& Ã~ƒv=oM•Pÿ=ìO]Æ›„hë=ô2Ü@*ý¼Fi˜pøE÷Ìôx-tHÜë’#8HL†öuq®"Õ«·ý½^1…;¸'8HÃí*ÝݺëÈ=‹åÀcR°gÁ§*ÿ|pGŒÊ!ïd´{½·æ +_^3å™{g(¼$7Kù!''73@”hå«6¨Ð‰ÂBl묱G©‰~íû3»ºmC¯‘ûº·Í[5#FE¡õËšëJÎütte—¹ß.Ì*ìã:Çq1ü*b8ÙÓbÕ9ЪɈdaQ.!"£OÖ_#xu€ÎU˜óp(σˆýµuE¥ Dó«q¥²ƒy˜VßG%XÃÜQü*÷.„¿ß´¨0¼X.‹u¢Rã½A¤RœbN!’ÿúuÔ•a‹Å”Cwž^‡™"ny!/‘þ¢èY2GsÿÀÔNÕÃ>YÜ„+«$ï³’ž~º*þÒÌðÐÛi)ó–¨JÿñR?Ù¬À(,ˆZA±ÿ©¸p8öoDT®¹fLû¥fn'„ã ”È"º¥çyêÍ*cŠN$þHäÒYýE €ì‰Ì+X‰j¤,'‰J´¾ÝÆiÉ–¥úŠ3Dz§½/Äd›Naç™6 TÙã리h^<´3@õ Á$4<Þ\÷r6(‘?pj[i-«µš×¯¤%»¤`aû¨¯Ærà‘d?ÇoÍ;-^Ô²¼¤³ÄóqÈ.f½¯Lª5üóN}j€zâùæõ*âŸQÄ—1ÕîxY6q‘ķ޼T¤«Í޵ID}€±Ag–ˆãµ EÈ  !zDE“_Îî“+Å÷äe6C+؈;@QÁô]¾–KÊq:%¬óখ$=Qõj’±ìô¨.ˆëSq84²EmqéVsæÊ½L¡}{ìáóÈ@ÎhH£ïɤä5I€e®Ár± Û^R»W¹t”ÄÎÒþAyÿ’ÏZîã€jþyÙªbªÈÛw,Ñü ìƒP’á@1¤9´#¢§°Åk÷ò0+Q¬pDí4âoÿUpg€¬wñ‹DlDÒòÇÌdv„(:½ dÆ‘~ùþèP°ß0`E'^)ù'à +`µä €ß‘Äé°’w±bÎpG…^}?oÚ*Uw³ RªgõšÚY’0*ñNgûžõ +%ÜÊDÖuŸW–ê‚ÊÞâu±Á'¥´\B|òú“¿c5Hñ¨zò`´¬¼ä¾ä=$ÙT»ž —)¥In·¾O•oÂSÇÏÂMRÙ©¥6©F÷iý E'I_û·ƒíwNjuôÌ[¨ÚBݤƒÐüv]Ž>¸©/I WÆ¢f_Çáì‹B.¾žGˆÔjÂñI@áÿ®ªYéˆÎ3Ù.ÛS| ýõN 9Î"˜g¬l‘òíÉ뾄=‚] +fv^/h_3ôýøz’­¨§Îiú0dÍ5 ‘ãV'øªnBt¤àÂ)yiÿ ©éöÜ_ðxÕA´ÉeC„—?<3W*oõìŽÚö¹ÙPÀ>`²WòA^ªiÕ£îÚñI)¿½}žâ € ·sô<6^vÞDD5œFk8J«ŒÔ>ÇiA”'þ‡½¿&ðßü“öõÿÂý/|þûƒ¼¬¾óQ¼yiFg ƾÇÑbˆ(«Ï¥éªç3HΞëò¥v’´üÀMaez×S¥@Û*ᦆYÍâbÜXTŠ©uÓ¢îþ>t°)¢¹hÍä%p€eh_NŒ'qäÃAL0Ç~2¢Ozº<ŽÊb 1&ˆ`x®(Ïô%gœ!B!ûˆðL÷ééotðÛóÃal’7Ô"ƒ!”Gå3`? €Égá=Í· Z"lùƒz€Äìh°-ˆ«"U #UÑ!TQ¹?ð° dÊÞ–&CeÖ„÷¯P[W9e ¯+›[û>!UÉŸŠœåÈ«‹Ôkáćhp€®Ó Ô^ 5\­3N]1ñ ºâe´Ø,ĵR­M0kw"‚1ž0 ~ýÛ|ÈĬúý»4}çÊ }G€ +OÄ)‘  3Âî_AàDï(oÒ×¥g;ñÓÜë,ðØE£ˆÃT+r¢`Z^ƒ€™??àqwŤSýjŸ|F%+Ü‹ +]Ë«™µÓto—5±b M×]aVr¿Õ*¢WDÑaf1î>>¼ðü¦ÚÞßK12À­NÛ†-ùCÄOOëgÔ DPGI¾÷ÛÄÍ#–Éγ‚Aƒ‚Ç•í•÷iÙ¸‚ùðjžh)ÁBÍâr$KišµÀÙö¤é’ GUS¨b-:~ÇE?¤—þ [\…è“{éæré–‚1ÛT½ÜÕpuãc"¿_²CµÌVšÎd#gÒƒ®ßý‚^g+à JÚW|cæ‘?WJçÐ6ó>”$šh7!”¢&^#§°Œ +ôz)çF27µ‡Á~ž3– Ih0瀷nD® ñßñŒ„lÜÆåz™ê‘6¡Mÿ²jµÅΛ‰Pð¨^k8ÈÜÑ6ÅÚ¼¨ÔÜ1s%j¼ÞRûö÷ÁrAU +¼ý·âM_²……8¼r Øø1%ÕÊã‰V¬;0Çqw"÷‹GW:êé•0z"âd‡°s¦4³¤Ÿª :Ô¹‘âÛWýù­ Ž©‰@[™Þ=·Dð£ +xÝžr#¥ +¾M©n¹y”-âéG0 ᕸÏ‚ÃúÇ/ÍŸþŠ/ªLUqOÍéDæDmr, ßЋ >‰ 0Ž‚‘%4–¦¡¹8ï¢ÔQR~\®Rì;õ“µÚ_Åñ ¤]-A°tTo¡Nt†—ÇQ&¦¿âmòÁ¢^4Šã£þ, ø§/ +F±aH©<¡ÄëŽ( 8ÈÁ÷JhRúÀ`Œ®ºCûU“溃¤·}D¤Žz20½BhýŒ¢jyp£WHÄrãÈ6{™QÙè4‹1Ìø×P´"³V›Ãu‹‹7lÞUÈSÆ}«Å͵â*±{"Üçør¦ˆù ´"K¤þ)ííöb>a¹e2‡)]š>h­9¡èº€qUy"p/KÝÚKƒœlÏSÜŽ_ã2gT'>­ð—_U"xåˆ šLˆcK­^ç×½íõ„¤œÛŒÀÿ®·×m¬ôc÷ à(Ò3"·Ú$©Ž‰t¥kWRóíwÐ{ìY?|.pÞîêO·QÅíÛ!p­ F~Ž çVF3`ÌÒgmà™Çìª\6ð·ˆ?×¼$’5íÒùÓq +©yQµ|“I?ÀW‘’òÏÃiQà# +o,G{­k=—ÞÙÕÀé¢ð–6ÜÒe^¤¾ú%ž5i³{uÇ{¦•DF†C¸¦¬)šM&¿Ê´m@؈Ь&K +HQ©ÊeE6[qÀ9jýW'®›‘A[EŸ‰9ìqâÏH+yE(•¡=?6X¹ÆhÛh9(Åç}Îîz\!!Ö¹°‚“–XMq§[¹öªèïkisüQ,Õ½kcûSoÎ÷(w„`IÖµŸvÍwyêíD0ئ'|„oÚç¿gQ{m´QL—üý¯MÞÔ¶lb–˜':ûø íep»_BŸQXÔ2«yâqªzÍÊHÌÉ*‰2œõ©$72–¯hÂùªîeïË\ø QÍ]é÷?wZ5¤`6œ'Ýk?= Î/m£é¯¼¤ûöà^RiÓSì+tä[ƒU¦ªGJ˜KE:Sî@ÿ¾tUÏÏN¿ÂYÛí®‹®—³˜+›  ìZyÔÃq´=­êk·ßË>.1GÛ]Î`â]Ÿè°Ã£eÁ:®—¬EÈ—¥fã?~û7b´°f:gÄ×%ažgè-DD¸¾9>Èá›òìã˺PdÔ?G%áažûĹFr˱jšvj3œtAiÝ©I·Ñ¦j*Eáü‚DӠˆ;(’ºNuÁ1#LÆ>yöŽÕb0ñG¹Ð_³B‚ÀÄ\f§>hPªR‹Øk— ‚¢ìcçÈ^Ž* |L®"ërÕú­ãw­;´Ù,чÒpf˜]RFKûo¢žŒp^Ý õb¢q›± õú~ñÈñWôc’ {"enŸ£Dù°¦ë%9wæwýëDäiÖ +÷H"Ècï .®H³§þ¢Ðš¦Íw„i/n}úÁœãw$7ILô—¤.¡~c—L +0.¡Jgd0ÞÛgSygG n;ÔÎQ7ªM&·E »{©v‚êE¸>X0z+,ÀS2ÇO®pT®· =ì5•ôíÊF Ê»ÑÜ>_ýþ«¬…VK¢µ‡ rG @ÅlˆÐϬùôÈ{´7ÂŒéPëÈçí tôëLˆA5êû°j5ÆS”ë©:Ó Ùâç^Nþö”^ÿž Kö8é-Íx6324ZX󢎂ÉRÿ†ò=Ý«ä"ûA¾ªs–¨UQÏK5¢ÁˆlL›v°dŸ[;æS–„ºZfÌéÙçŸ]@ ªË{íûƒVBÏÍ–‚ŽJ¢ƒ.±  0î§FB î;g¹ï<ë—ÿâÑÏÀ!Ÿ8s ¬-C8OÎ]ÀБZr‚h®Au`üгÊó“IÊ>?óƒPÌ\/ã/ƒŸbȵ×è×òÚ´r`âÛ˜ÝÕ;EÎʲQ½½i¹x~xßOh•·ØÇsüp$Ê$Ùñôì +›1?EX?µxÞÜgûÕV}Bìd–%d‹ÞÉ’ØYªtèMO•ÌÕø„Îâl¨öOö^ÛÚü!"¯—`,Íçq^µOøÑãÍ·Æ‘|‹½øY/.mâðåô ÷ +ôe½ÔclÉÿ¿h`"²¦O œ’wm­B/5N¶d”¼™z‡Ìx‡¼E3QúÝ=Hú=9Žù¾ˆà™ã Ü­ÂK¦Ž*ÿäDAâ)%ÈÍòl.VÄW›±E½}ïÅ)12œK{!úT¶‰L¡Xz霾 3æ«Î +¸Ï¯,¥+IÍÏ£_ñ=JySËåǦ®·jaˆÒRºþÑS…³ýBó?£†Nœ|:&I iLÓBÕì»?EéýC"$‹&Ÿ¨™gêKŽó̚·ºÈN#ýóÎÉ­—M&v¡°Ëð +BÆzœÐ½tx£€èaD£êá•æzã•÷Žœoêº.ýË~®’øY玜¹#³ÄÓ +9¡êTŠáÐZƒãÒÆ@šóÙ†`#ï»0²6Ø…Ñ­W¢ô6œÑ/aÇûˆ˜A>hn­·ìùˆR?tF?TõCçˆC=ô>Ýx:†4Ï?áå#ERÛ-¾¢µá5¾D©©ïùÐrô!©·4&BtP({”Ñôjß’½þT‹°…áÌz·åþÚÑ;ßûë.ìb(VëMz˜Ñæ»Á®E½õ{ÄŸß!ž›àª”7ý~œk¾¼ÝÑ• =2h"k;È5¾ü¸=~ b7éZ OR´Îäòp\‡lTÉF1žƒÃ7wŽ&«¬ØÅ´ùaª!Ft "㇚Ê^ôÀ ÚûMKM#jlÁP‘Ôäðª<­E5&ïQ+iø‡ “Ò™åf ¤>L)¦S×ýüA¡þà}Dücµ\¹¿8µµ¼ñhbÑ*ñ_êÄ1WF›öÞ­Î „ãÁù¤öš&­$WD­ùFÑÊéR•ë8¶Ë.±*¢­ŠX‰ 7•Ò8tªŸ·íFÂ&"ÎE€>B€–Å¡1ºÿ§jË‘3ÿ-øûÉw°]GÎÓ"ÛrQ»žJjÀ|„ÆUßÄÎÖt’¯¸­’VíëÎÈ—Ù—w1׎ÕOjýˆ7‚‚u‹{öÄa^5"øŠ:EZ¯RyëðÑÞ‘íÇq ºÚ&d Q·Zs"T(3à®k3rÕØfµ¾æûÏéå¯èž¿^‚T‘¾ìm¥E'´Âo¸ô~D( AµG+8)Ç÷(t3iFt¥êº|xçÕ÷i˜‘<ÂÑFBüý7ȵçƒ+|Ô³Zù¸@?ÖΣ•wŽäLvÖpzýúàN+j/ª(*ýz€V(5jíº ÝqÁ +6÷V¿öÙyž^ˆéRÞøŠ„Ýñ»ËÜü'5ÆIOµ†^ë0!ð—á<€D½•ªœæhí‹Ëž¬Å̰,Ù¿Ò>iQV*£PMdô„>!ç™ÑF´MŠ;€¹c~}]wòjÞí_‚ó‰NüíU˜æ  UŽSC•‡¹Îç.ÉÑïä­ùÎüþøsLKtP!Šg'@ÿé#Âû8sçÛüˆ‚ïrcŸoÇ,™×'¾²_ÑG¢‹7ÃnG6ëAø÷ FC]U_$ÿÇg”H*iSéŸy©PºCÝ»ñ*S"’).â*ã„: ˆµ¿Ç¥@WÑYŽø"õØ%˜ë<çø¡áý1ï8Ѭ~!ˉî¢P1—N{"‡Žˆ‘5ŠäÀ€ËÔb|ºÂ>mJ˜µïhÈÇ«²¶ÑÛ3½Ës§Â7‰¥Æ) +ʵÕiØÁm"BH#}k@O=%y…ô‡ô{þ:þýŠž’¹˜=®3ÕZŠÅ+þž¥â®ÇcÊnQ^•¡4÷»*ÀÀ£Âá1n¦S‰†!ƒûrô¹œ“) ì{?‹ +s|@ôAþþ¡ì&¥¦5—X싨se’Ïd,SÃr£³4¦ÊµÙDzŒ­¨kP|øˆRåçÒö‚Î|ß·ªÊŸÐŒ|²Bí•÷ÕFøõ¡±Ípß, å­p>®}Nv™å]SIµ{ùñµ†à†&”S˜ãì}O­)˜­W™N á<‚îgÆ(!—{'Ö\î}ÓêF­|HoW†~¡ÓD@R‡ä¸-¢¤íSyŸæl¥Îˆ@wƒˆÙ¾Ö¦–éËʈŒ };mîÞ9Løˆy¢œ(<¾æ”ØÖû…jçÊ/qÜ1mñ¿bWh±à4éu3¶`p; Árw/zâ_|À³ê%@èäy›†FimŒŠÚò™W¹{Àg^9²dœ§TÉ™b _wÌÃ"V%Æþ‘²!`;È£H;ÿp¸œ¢VLfï`è.“á­Ný'¦"à¡©€£XÅ*ÅÃm3v"Ô;”C]ß²òŒ7ÞŽ%Ñðƒv ‰ìˆ$´ÅÒQŹ‹Ó*ZÈÜûv=* ŠÃ0ÛBäbÿùXeLE{¨5f^áø¢ 0—1ÞÊŽP¯W`á¬BìÔïä‡ãŒÒI +Þg¾÷\KÏý‡ˆöR\Ñœ|ïÊgÔf<×SÄëðÄÏKÅ飌|1t„Æåoz¦ämr /Ú©ÙÖ~kŽù–ÕW&zür¤«Œ‘¼1ç8`Ú@yžGü£aŒ÷g Oc+l_AW +Í QÛ_–kÒ«¹ub´×ÎFZþ|‘ $¢0â-᱕mí_è/Ès;ãG}þ=<)±¦¨*]!ÿ*ÍÇ +¸sEzõ÷šF÷Òšû§L^/¥q´$_é·¨Yì Ðâ^´8ý'í*Ë^ò#èΊ9Ö?#r¦ÀeÕkx•„¿ç(>"óUå~{RdÍVJ+*‚ºòŒž÷þBþ}U0ZPkDu­vN¢` üm}Ÿ'¬1“Úá°/ S‰–ã9ˆDNd G·6?#pîX’á\ÿ]ëè/¢nt.öqg¥«?•Óe!`›f©UÙôt{ŠŒ›)óvý*‘dþ±ÖNêQeUÚ8[ =rÅS=ų"èa æHís£Mkù{Tk1gˆP(yÇsïŽû¨Ì’¢¡(=Ûž{|“ÞÎUÎ3Îë-q¬{é&!_lã´®S‹b°Q[ Œ}KiuDÐÿq*|7)’*ú+Ž+çâ äa$¨é€úkÛ —œI1‰!ýÆ·Ô_„zHM(úäm—:~hÔÃ¥A}í¥P_  w†(Ÿª¿Ë=êx ξ/ø£‰Ý~מúñ‚š‚å ´áÑû…,ð!‡zQˆÜ*å +px?@•Ð)ö#p(Ç}?dç#»«ÓSË\ü_5l™®QT…}i¡?H5ëDÐãl×Jîù„ ÒWé_ꀟ»£Ô¹D¨ì5õoîÝ™2´¦~¾æc°ÿ!òó“ŠÿOÒñÿ…;p¾Ÿ¿'Úûü‡ý\¿ýëÿî·ÿóÿø§OÖ~ûïÿÇø‡ÿû·ý?üÛÿíßÿ·ÿö÷ÿõ?ÿÝ¿ýþîù÷ÿñ?ÿÝŸþá¿ü÷ÿ×ßýOÿá?þ·ÿù¿þÃÿû_rÒŸÿâÿûÿò÷ÿþ¿ýýø»}Š¿ørÏ×7øÕ€ÿ•ÿ½»ýc®ý?w~Ô*°òU¥G¸OQÄ׸ö´˜ÅHÊÝ¿í|ë´ÿ¥äuçŽkD`³ÁÂC ´˜³RIÞuQrâ·GD£j +ÉèÔ>Äî©õ¨Ž"|×õôj ê?lœ0»¸ªá_Œ°2 ðÌÐZ‹&Ò‰öA ŸŠ_«ŸOCz›ðù‹bh%¢«Ô¹0./ºšÃ³|â@DgÈ>A¡sÝ¡ýU\…1QX*$ê¸v•XÇÑqð ûß?V>˜z¯ tºò§!OÐg+„–Q¬¨‡ EK×HµCs6Y¼{¦ëäÏ!Ò¥_õ ló£ùO_«£9&vðEt‚èâ‰Æ¢ìÀºÙâÆþAAÞáy¤î‰D‰XçÕßç¨ÍþûA­«âß×ß` ÅL~ +: ç$çGrÔxçè2m;gÖñ?¢FšÝÌ÷s§B ~?G$ Xân¡q<,e>~ÿÀP¹‚]ÿø«';úþÕ+û @$C¨èÒlOLEà6é4ýz}Výî5­å9ÝëÇ·9ΰhjEÝk—Mzü +=è,د(z¹85ÉóëL$ÚÓ³t¿ŠÜ0˜;@¦H@?ï@ÐLÉx–ô@…šÝãS;§™BÝP¿‘d;2.ÀÒšÕ>™É<죄ï¡qÄ [÷ú)bZHñï‚ò½%ߣHõ.°;ôöl¯œAºÓÌh5KÛ€õ5»…õ‚ÉIùàyÖŒU„F¼÷ßbª½—¸I¯š5øs”†˜`Rëï?=ÄQ4µZäØ%@'#{ñ&¦rÀù+0lô‘DýýJ)þÉ—¤dÏZ/»¢#¢‹ŽÓ:Í~¢Ñ ¡Ôæ^çnÊô2„4‡´\Ao˜¹û{ÀC?†v—J¹³Qžì¯wX‹#œzZªqR¯îQÒMC¹£/œNÁ‡.¼g§ÅK+F"È©evÝÓHÙDDèë)g™±Å»ÎD³„(”Ì[¶3è“lglÈ>0Ìgy×½>ØÖ‘;Å ÄXñÖI f_Ÿ.¢->Ó¨Ÿ\×OÇ¡×-R{è1Õ,wÂø,ùŠâ:IWS­Bÿ\‰QÐð F’öÌË( yÊÖûö0°?“:Áx!u‚WùÇ)Ø›,‡òß-±]˜k í‰8ØlzBkáÁæYµû x—ª-ªÐàWxYæ7¨ª®¼sÍÞ¶í\µ²‹T+>@i½¹d4£¸ùx’Þ$`®EXÛd»•îŸÐk¼ëf¯uóÈñȋǡÎôíÅíÁËiB±£˜ŒÕ:>%D08Jc~"ú*Ìülj[Ö¸„ô)²î‰¾mlM_KhÅ¡á,)cÁPŠ»è^ÞîFtÞI!¤³øÝn×tîQ9Ä@gÁ‡{¿U—î tÖøò:5=o’¢ºrޱ昡NÝqÂ¥Ö½g¿·ûÝ™±é~äÃëÑ{Ü-K6š@žýþ_=ø~wÏýAAÅ‹Štæ±…Ç*°”ÜrøTôëð˜ÁÔMœhO‘ãŸt`¨ûÐæ*qËÁCG„(ËÉ]…ò= +>`ñÔ )ª\C5¿% ªü˜Òr5]‡oŠ,½ßv&;ë%þãwäOõN þgk:Oî¨Æ©\Êa§ÿTQxüJ¸f¤å3Ü—ãaxê÷a¦4¢dîÇØŠ7å›ÌÍ*©áC„QùëÁu#JAÒܵFyϯòžï³"HµwÄ-_bþÍ“¯¯ý#Ç¿kXÉúÚ´™¤²P¤ªUêÈrà +Ìâ_©-˜µGÜ ÜTÀ!(ÿü="J ’°_Êúýp_S¿Ûïk–‡ æV}E* /–GÓ`ò“u„E& úM‹w”æŸõ ˆº˜ÓdÇéõhï²!})‘=T«íÌõèFûïltüû,ˆ¦Õ ½µµD™j]VýóÔ/û£c&€9'~e=®ŒØNò¹–þ +v@fw¯Zõ‰°¦ÒSÌ펺œ ӯŒ±«a¯ôEœÀðF›»ûBj^®è‹3`•cÎVTèÊ«Í9cÅÛ†2Ÿ£o¯A¨1ªŸÏZ‡À ª3}D…`*¾_š[a÷¸ihÇB G=Ø î|§”9øüí3"¿)Æ©ìÐ'ZlŸÇÁežÅ–i‡iIºö1*p ÑÞ[ññÙü›ÀІHoeÄ ¡ÁK<•^šÎX´ƒuÚ„1™¦ª×éšœÃÆM€(q´Ø–‚oŽÔý¼ç(Zå¥|íM‡ñgáê •Uf•ÅË)eïYìä 8ØŽàÎr-¼Ôäò8DlW´AgƒˆçΙºôŸ½ÇØRQ­€éÆ…5neRý¬|¸š)Ü…¥®™Rüôs—F©(Ñàá*;ÜŸš6þ!ÁWè@oÎöõDðª;ÝSßr`Å^,Çqr§íý÷pÎ÷‘U«‡¶ÛÁgÎç‡ã\‡z€jÝÜ‘ÇPµçÎ"y=aëªÿ‡(XtŒåh¡° c(´³“–Tˆg´’ÏÏ\fÃÙÆi‹ ü*ûSÁF\£:ÑPÁò쇖ç ËvR>”«‹¼Ð¥ä.›KïÍLZê‰À]#»| %ÁÙÞQÛ@uhÆïäÔqˆ7&ÓÃÌÊ"§ÿýÄ™úoS©_ƒóG3ð“¾g«zò­æO +öN•¡RÝ©n@`”â’žsZáõí+ªy CZó©6Tí½‡ ÐÊO¯§NаŽ`•Qmæóù¼.t'Ú.Óˆx(CÎ:Ňì7w|žî9îp‹ï@»kœ ¿Ë 5B‹x€çXêpF?‚ÙãÁ‘ „º•G+­æ¡'£E–’Ü'SHZ{)Š30 ‘ÿçs¡·“ ”Îòè ’ú­ÜŸÉš€EèSØhTÜö,Øç®BÀWcþM³’ÖÈgß;óqëUz(‡)üè"cŠ€º#ú™å(GR˜s3_\C‚ЩÖ[^»J-PŸD¸o ÆïxÔS•q·djvÀ4~ÝW‰Êñ­¬Q =>”dæ=¨‡hË{•´A§rFC*â©]^1âå!ćšåô íU¾GdøI¥ßTÕìàó8h·x÷÷k1Wlkö5¢Üî“~F|€¿×_F)€¤¥+¨§'vÈ:GcsDP$(U:;È(bÈ&`üe@Šë'šþ zA,ߎ"HaGŸªÊE%ãî¸å#€y­ÖéSzOç{”h*_¨½ò©w3ØŠý}Ä€¾‡ꄤ9EëŸïÓvÙM¡çrµŽ3ã0îBäŒ Ï)ÇÞr.yº3HÆG¥’á"‡W£ÔMb’¢ÉSK‡KPâ3¬/Dð~;K@·‘ ¦(ßN-ÙpNh{íƒpÂBŒù{"§ŸM‹«;Q’<:ÒÓã Æ@AÔ´¼'"¢‰×z&¤”¦­~R§Ñ¥œ©I²Àoç;#+Š51ÍCZóГÏÞvø8b±¨’m[õ°iÍÛ®1Ô·€Ü¤ÂfüñÐïA›Ì«%Aeó~gdf~F1JFu¿+Î÷ oÀ@[‚6ÂX—î,ÍIE&füJä\öØ ì}~ÿ<×j +úb¸4f -ÿÅ1žÌ?¯y¾épóØOz?F¬ÌÙÈ×=ù…®XÈý„>W¾ícól'}‚‹FuoºòRw:ЧÝó3â}5ÓDÎ÷œ?‡'½íF¦A™7懦®:¥gawñö9¿Ge‰„„y³}×ëñ›ÒfvqD¥ÂÛŒ<«Çþ‡´¹¾Eä’Ý;cDâýym£Ug06*›•ŽñSu ¿ÊéüÅojqÊ"zJß4~ÂrßvEíÉSÀCÐ Xg6Â]ãÄVÇȸ–‘Ãóu&™°vIA`§¡bk|Žû'ÆÿŒÏí Ž8¿Ãsö°†‰}8Ä¡E=E“]1ïÉ.ÖI`µ¨ç=ÂüaTÓLZ¸¾Ž¸ºîä£*j~F$ÛhÒCIgh þpŒ.“zÛÞhý$…j=ÌÅ¿GÜ-rZ¡õþ•Â~‹Ñ…œb_I…i­ÐÛ²’šq¨ã— +ç—,ë]>V“5ïU‰â÷&k»°öL”XùçÛãÌøµcŸ}_‘§?iª=dÆS-Õþu\7þŠö#ZSvÞN8oùk^_O¼üz+­¡©ÇSÝ +:·At"h¶ìˆ/Y6òs»zzݹétìvæ«Kº{„°¬„‡æ‚Ñ^ +S|#Fcbï|€©s¦Ï¨Ïɉi•ŒÙI(Éò\‘BÇa+M ,Þ¾Ûkâ’Ã$øwåèŠÚaW +ôùZ–Ó©{&j:QíšV?>Ö½˜!Çc&yšß"zØ Æ¿ž¶Ê|m¿æ©ò‹2kÍoL‡Óg  ÚH_r§­Üo~‡i‚B(\æøá0»Jv4m“ƒÆ×qfâEÑ¢hÒGÄO{âG*'”=ÌÚ*»'ºù{ëGPC{xà.PuQ¬Ä ý®©]1VŒP9ûÌ´Ñkw¬w˜À+Ñd<õGFûU+Õ6ƒÝ#æظ¼4¡ŽÎô±ƒr®‰5”xʱ³Z4—$|g»Ê˃”CÈœd‘sŸç냴…Ô³v³¦õ_ŸQsñC¬¹-;Ï•r¬éb¦pJ±Ã endstream endobj 27 0 obj <>stream +ÿqúêñaD39Õ‡—.0P®óç6ÉK¢ÓÛߥ¼É}©ˆQOÉùÃë b”­½Œ9ÄLz$æã&ӹݻ~êOŽãÜç(g›bÓöe{ˆ&åf03*ŽÒÌ™8=kOgþ¾Œ +¹·íÅ@_Ц)Ox>/ü{çkw¬½Ž²ˆIù¤Î´ã¯¢·ä•œä]§}ºqöÉ£x㛇lCÉàc•ØÜ'<ÆïZ÷ácÝéóm ²¨ß‹–þ^šF.}Å4 4ÂeöÌôÚ¢ ²¯ïýJ¥ÊS£ÃO횉RïtG]ÅccÁæóu ÉþçRÞÓÄÖ`¿´GX|ªMô'‰{fMÆc˃<ŒÄ,4΃-®èõýHܧWpE}}¯­ dŸâW„&ì×ö(B1†;P•èt 䨆·-¬±ï©ºÅÌès?7ìX!o#¹¨“‘d$s~;Ìu&,‚ÖU"Ÿ£¸ÆºgZ $e'….cn´†ø²1t÷€b°j%çW`{2Ÿ¬×òŽqÌsꈥ°<:³ï›ûäDË8‘¾MOxP~5z^8õ¸”*býÞåÚ¼wÀñÏé˜ýµÜÏGÇN1t*šxAïBYýVÈeäûiÈ—Xå÷Ù\Ù–¿ÓÎß¿ŠØ²_¾û%½ŸÁ#ûýCç0»&¢'D44 +Ò)ß{N½Èß"rÏ.•Ðr]k?ã­ªC6›úNíÁ(µ·~ +@2 Ç4þåëFáMÇ¿‹E‰/;é}Äãžl{T„¦OûNƒ¯Üͬ 6üúuÕïS€x—Ö—xwøP÷€‚ îϳ"@ÃuÕø\Ý3å”kÝÝ4¹ü:YÌbü”/ã¶“]oÄ{ŠdqGXøÎ‰bã©[Ü™!P1_î&Q6ìèKyËÑP²+pÞË‹_¯ · û¬ôÉcòBŒBíÔýö{DnÍ÷´íã8krØaüN¿ +£´ýUP{YŸ>#@ûz}¿Qš°î¢aÎú¶«¾-ÿÀÄp51T±¡~®-=اFü¹ pñü…küCh(ñØP "U Îÿ?ßt¶e¼´%>LI+ÙžŸEµDy10<« ®šÓÝŸ"Ô³í¥g[–DŸQXòÌÂL!™Õâ (Êë  ßZæ¤d¾]OhŒä£ˆ^7y†´ƒTrREŽ#â_ˆ¯Ã è§ûä¨õ‰Q…“3Ðô¡ÌsíŠë~É}»GõÓàK‘Dž®¯ÇA€ˆé Nvºä‡TNžéQˆ 󶨹2ø$âX÷ o +ëõAœâŽÔ—· ‘h«™#=ü™¡æl!UþÕÈG>?Dœw“m_›³~ÑgfɪºœÜ.¶Z§ÐÔÌxgöÊW$eÕKSqì{ÄŸ+YR!¼[…œ?gÆð1AèÆ£b£rŽ»D ~@¥{|á¾}Ö¼E—1&ŸCåD\|f@6â›ÙwÄùrãÇÃü-àk%¯ÞޝýqT[dé°òÍ‘Sg=p+1³qw™€h|õºÖ#×úõù& +61QÒê‰BÜ—¨H?As–)8ƒH3bø¼s&sšÝm„)«†¨ï­q·[µÛñVŒj¶®° ÇA“¤Ü£V¦FÐçÝ~ªËç’Nç +Òô`tË1F¡£¹69“~ ÓFÆ­æ(:°d²@çLmq[š^~ÓNÄ›MÊïç]WjNiJ}©• Hð@‘’ sU pØ8-Íæ;šÍb;®‚ì‡ógÿŒH­Qšœ,·R|ß3CF™I‹÷¸HRF‘$? Væçlé$H³œoŒã˜¼]\ÂhÛ*ÂóŽ8 +åMÖ7®r5¿´1Y’—°öÖNjÒ%oeU7Š¿>C‰¹1ª%£¥%1zdè¤R’¶ £Û]0þÀ¾üy>‚wZ…'ã¥?îÏ£hBÝbB}êöÒr^2&RW°Þ»¦×zqUߣÎX>Õih%œ¤ÒUòžÈ.iòusц,רáѾt]~íM6ï‡ÎÏ>s=l® &Ö­•š¸Ô.¥¤1ú?ì¡0»(–î¯óh&@ÐôkŽpÔd´žn•Ò­°ØP3&" ë‘ æhÍyzŽa‹¢¡‰_ýSû?ÕŽb¹*P +BvFÛ|À"¯˜ˆÄÌb—g8 þ±3Œ7±ûøçkÅXX麾ØŽP™`;¢‰-3F$çã3"'XÉ û“‹÷Ãqök.x×øXáùý„Pi9ñ¤­S¼Îe.ö–÷éwáÛ UÌç3êoëûd˜¸sI—¿wð»/ÀËcÆúñ½\®8ˆð(«}±µ??Eôðbí šG”Ç]‰¬äމæÅý©,ˆ ¡ ÎõÞÀÚ³¤4¾N!šÝ|(×¶âž6Ò—#´ãr@{ï¯ýñ}SN£ú{brhåfQfŽ®p¬àöåOº&©tŸhQ¬/¡Rùt=÷‚~Gü³€¡‘CÑï¡ÐQÎF*Š\ä&ì\!8‡+æ{A¸Ô"T­ÆÂ$è®$bòØ(*¨2PZƒn²k¼><Ñ3Uᆮ¾ÔÇRêdoYrPÿ]Ͱc±B’|dÓÅè÷X$¤Áz !ݱ°¤ùg2WD)c­ÏÏ”f¥‹qP=þk{À꘳õ(tÅ!íù>"@·0¡ðJ4|hÀ)Ý­ç#Óål‘ïã›É<0ûz]‚‚cدËuF|G¯—]ó´YÀf©'˜O;(Ï1îgªI„!Ö¨ÏoŒò{ñ€Rð?‰è Þùïéæ½ü5H áÒèDŽÜ…hîª(1@DÅ–ìu"ämIàÅ š^*"¿Â"n¨ —9Q´98s Û ´öÞ¡ Ë‹i)³äϱÂúß褒z·f†4ciX¹g¬ ºoÅ(n9yTÈ•lâ(ÃQ˜I£JGÖõlçD#~ý ãGÈ0É"•›@‘ª°øŽ úá9_SÝý²µŒ=~eK¢†€g¢B\Më 1õo%B‘¾ÊGÄÉ`xÿ;Š1ùŠóOÞ5%¢ÂÀFaÊdçmèγ.²Å>ú‹qèªN(m¤4%’Q#)þÑjíî £Œ”¾àVðÅ¢T`ÊPQb¯Òñe<µõaÐÍB‹Ò JN¼8ÃüÑÁvÇcóSZöúÐI]©ÁâvÃXqÿ´§Å@ ,È^biìª3ùïÂÅT¢]‚* º +Ëáiëúk´++â`Q:sÕ^ùçÊßjpùc/>éxœªøÃþ”pý{˜ñú­‰RÊײ˴ïà.ÛFE,åà ‘PæSî›Ú+B™Þ}‚7§fKâÅHÐ=¥‰ÞÅ äœ7eE–˜ ¬Sà +¤Í@[šÉöE"]ç +ëv¿Ië­ÑK–ÞiFË~:S˜3Á8³Ú_ò‚œ!5ø½'ˆئýøL! Z¿œTægMg^w,Lét´Z@ÞPÅåGfÕRžàÐÐ^§$¿Þiù 1ó=lñŸöM‹ŸÌ\š^ï_·&ð/°b§Æ¨Bï‹o§Ú?0¼ö·CøäÈÃ]ð€Bu'f1 +8˜2é}Õ#D ù,#h3vòt#Zqˆñ8ôä<(â9þy_e âr;ŒÜf”„AÓúž3Q61‚o»ƒ‘?d÷T3ÇÓw‡s®ûëDO„'V@^˜,ãG; Êl‡è Ã΃ÓóƒÔ÷Ç 7W8Ì1£ a’¹Û‹ÉFF|ü¾Ü EÚh2õ÷f6 ç”—ygþEöù@Êçð–IM³®Áxu—¥¯î ¥vê^~:{åAÕ™'Ñîìõ‚lÇ™¸iœ‰|%jº»`ÔÔ|ê.°¶¨œÏ€­ÁG¶^ãÈÜFìñö™îלº®ì5 å“ãÿ`5¿V8Hâ*Æ0–¢öÀ·Õr{]ÚŸM‡—[ƒæ4ì¸HùÃz8ð j"[TNäÍäíÿGÓÃ~>¾Ïàk´§×T˜ÉSq^7ÀÜ,£~qnùi7ù+gò·îw¾, +^çC1Ñpçò²EBί¢ŠMŽø¯Ø›âMåös•Ü|ÿРºøW6^~’êúD‘*ž_äYÞñpdQ <œ)ìœîˆPbΘüäLPbò5´»¥Xd§>åãÕˆÀEv–-¾×Ø”¯x^½M,w–½^¸Ü@‹]á!%{ ×Ùã®rAOâq3FX¾j SÒþÛ¿ú+¾“∟a +õf A‰jZGÿ©¢.©¤ÀÕ%ÿíóè«`zKÑÐÃà3Ç ¼#–Ò”@š„Á5’›`w½ÁB1üs)­£Æ­ Ty.Qä9ð +Bp驾z VΫ‡ííÛÉÇ0ñ^h£-11P[ Õ„> §ì`·™$³òj¢ +FÁùÛ@àSDÏ Â/œý«8û¯’×,ÀÖ´jѨ‰DqšÊö5ö¦½Ã;YÑ“7­žlšùê‘|õ>^#ßGT±vÔå· Š–üoAƒn(¼Ä&Âu^D‹l4Ô–A„9D+ãZü2žó׉(Ù†¸Í|E7±p3':×ï©Åïélù%&EBÊlÁFt4ö¸Û/5,SˆîaÀ\BÛ5`,9lÚ÷4íÉBAÃ1¹Ds6ÊþeJû/ÎMãu1î‘ÎæØËÝô´ë¾¶ã*Œžmf 4G^vÊ^÷΄Œ[8Þ[¨îuÍ‹z.ÏNmwj4mT–­ðbÍw¼A¼ÜAŽ£XFÛw™L‚$zI =ØBÍaUGÌa=ï™È½ÁEŽ»\›EâªÇL‘oÄLñbgw0`è‡Í03·fާ¼'G •›yºŽ=™vì‹tNÔ§ÐT´7ñp“fÜ ßôãJúÛ¿7FrŒƒ€X6|ÔfPõ^ð;¦ÃÊ€"î€æH显îduza° }ŒÀ”ï½0ýåžÏxiÌ ¸hšˆ¼ôÚÑLZ¯4++6NåÒ_6ô…&èBMÞj ?’.GtÌJêˆUöq&yÇ!Q¾&ižÉ%÷ßý5§T´ ôºCñ‹fÙô¥¥n, Z“üPÛØñ¦ZË0ƒv´W{Ú„]¢ÁT’AºÂDôŽPkÚ /Ï~2q"SJcÜJ¹Þ+Uuä~Û/y‰´ˆN¡y2Ô«R‹å1•\Q`¾ M|~Ýg͈Z±2¨»ùª] yÝåï¹âù”vžª ¯Àg¼ Þ‰–èÿ£¤­ZT<ÏÒ°]Ë@yé†ÃÇ<¦tZiÖÒëñ¸øœnÆ/jõÅ%“#÷›ÔÃßyÅÞ>§¢#vÏ€D/Æ$ùÁ?ŸÑü5kÄ +Lq‡äšÁ [:øÄ4ù Ež+v0¶£ ú‰8‹E×SekÉL”±øŠnˆøÈqÑ5%¦°ŽM”ëFÔàë\ôQòÁuÉQÃDò³…DZÑ©éÀ]Ñ ‘‹ƒ¸"ç­Zˆ”¯L6·‡âû•`!Ê/¼£XüŒxœ8žmyœ£$Ã/È¥iî8Ô`¿J ãV bïªÒº°èˆë£`¦W“€Álq6èPœwl$DÇSI«Ñ+œzí³L¨nœ+ëiF;ê l½±ß l[0ø'Š,ªâ·cld^}ØB+Eéfñ>˜‘¯á²ó9-Ó õã*A$•'(àŽ¬"*b€ÜÏ^&!” À…ŒPç}¡ 9¾Îã˜À!¸*jªNÜu1£•sÑQ„¾®£#ÅוE²#•3¸ýX¶¯½üúrBĤ’±Þ´ËNçÍ.ü´®˜È©]@"v˜Nh=ïË®çÉ“ø‚B®#vÐ^:¦MŒ¼c&©¥=Êô˜› r§Ã$$>~¨“·_< ´Ñ#y%Ò¡ï$§…'Ž«ÊbìÊyÈÊ}ŠIº/Ê#vágD}@À# ´ÿ:kùþ–vS)ÜÂaûÏx4º!½X¨qìçY6°E ^\ ¯7ѧ>òí½”j­ã;`{G`ç)5ñÎlUŠNû“Šh?®j…íe~]fùwèåÊA’Š2ŠXGǾEÔõ·%ÄΜ[ADIrx•ÁÎjL L3È‘éZ¶¨Pf9Éú·¡íï3€™ÜòuÑ;ÒûB3¸g…ÛãL¿ÿN$Y5©½.½oç¥àäL³ù(°(0Kµi Ežh˜¡L˜!¡Ÿ VP!¸¿ŽŸ½’Æýâ¶©•ŒP`ÏÞ½c·)ÌV¨6ZAzZ‚g¢©ž)­çå ÝÏ‹-†;"!b)@úÄõx,]vr¤˜{Å™Ðö¨Sut:[šRÅå@3ï=Q¬¸*m³l?úA®:Qþš5ÎNˆþ±êEƺ¦­²cÂM¨/ÞÌyD§Í\¥'®b8t®˜qÝRÜöiˇÑ5i<%ÆÂ¶B`²p"¡ƒ®›[òêíûrÝDòÀJ'O[WX|.dwLJú³òPÃDç†ö(Y…$¥ŽÞ]oÉ*:»ÚÞÌ;Hs¢Ü³«¬<û&4d9®¡4x…µƒ…še/¦ýÜu–Ë_€•UúçÖfÚƒû9v‰™OQôò´£"W˜/û‡;iÆŽ’+¦ÌǾbWˆÿe"È¿þ>ÄwJÊýÚ·Èx=%ó,€]ç*ýN˜¦C'‡Ñdm}aÄ+é7JÂ`¯óüU÷º|ìKfS¹ß—ne7¤¸“IüøÌå»:P·Õzø{-ÅÚ/k27Q|4ÎÅz´ŽU¶Òš®ã Ù<³úüœµµ(ZEQ;´_ÍC׫æÝJ1̤wørG”J.Ðé_+óA÷S0¼f>ÊMìgtÄY×å,%tÉ=ÊåÃ)j‡Ð¹DIwBô(=[¶ƒõü1"rÍ’ÛˆH·Ñ,;™‰½üÌyé5‚úÝF¾¹ëÔä±Ï'Àf ËÞë§õÓÎXoÝP÷ã·ÊÖE_òÙ¯r}'ßyÍnyÑÇ +…ÆîGý쵟‚ì@׸hp´;¤‰¾Ïõêct˜©^\5ö­‰ ÎT,6^‡Ú— Û/3Æø=áz¿²ÓI„r$°¢i'ö?qýKKò¨‰ªòѬˆ©â ¸ß„Câ& 9ò€­òä8â?ð6ðÇ“«ÖuƒÌº’\šZOülÞK5k3e[/•Aý VH•Øç +ß-Òs;"nfhÐ*¼9+çº! GD.yÊDCóëD£Éd›‰ý¬9XÒéQ¼¸4=9OÔ¦ºÚA^ºë zZÚ¨ã‡kÛøu"´îb+C_†{éT÷ûxç ¤+è¡yy`z¸-Šê€vPT§È&…I›÷Þkrí"rè•ýÖÿ¦›ÆƒBFa.DÃ§ŠØ1{B:î’6 Ú%¬(ó'c¨ +S'ØËŒ ldƒƒ³*ëBj£ü¼áûw2æ¤ZmwÊ4A@Pªl2(H6U¾‰ jÿ,Ô›nv=ޤ¾Š=Â@)ŸbTª‰NÆ„I©ÏJ©û]¼Ò;¼Òþ²;÷÷ÉÚB z13O(Êô®B~b“ÑL0v–@JDð„Îë]ææ¶ƒìì/ôþ‹t¹*×t¼ ;ºMµ°·8ñâ[ÐÉ^µhê…7£·\×­¾Z-p‚TÝ»Ï}Ì;½9õwð5¾Ò<³¦ØöΙçmÿÎû:Òt^Fû¨’†²J¯âpA±™.Ÿ8ãøV΢:Ív0<’}†¬ÐÙ-IŸàA®>!1Ÿûûµzµ„–•-FTÙzÓVG~«øªG䦞é˜zù…ŒbãÛQKŸÒUòÒF¬7‚f3j<÷Y²PèûÝA{Šˆãùu&r/–Ì-‰ºu’?ô„Jûæ;®2‘Pšût¬_ý@ÆŒT4ð©|Yvä¯Ѩ§14ýr½sñâ¨êY:=Ê>9Üâ¹Q»ûˆ¾;Íw¹Ã¬fB—'›õ0]å©‚sÔQÞg´Åo­:žÂµCçE%&_4ì©ZÔf@DÁd…T#x»Q¿¹QÒo/”›Qá]ð"RÚ=Åû§°L&HüÈ.pÓ +`_$`?x_ghäò¼‚t›ÅڃδïxÅ­°VþM¡í±ÌCÛclHÀ(²žM] ¢ïñ©cîJ0ÔÙ+‹>tCãæH뽤À ±3º7{°%FøÏ %ùç½€DÝu^ C¾ØSB‡’× ±…Ìîpñ-“«µ«å6QøÎýû'™b1ʼ…]¬ ò^Þ¿2N¢”—¡­¦xå*+ÈýÛ÷Í»ºˆ îÏÝž¯Ód#¡\¹{q¼¯âx÷`äÕ†Az–@ò¯ $§N„+”ßu¢“Gye©ÜÃÇ™GÕÔ§~aR+‰^n&ù&tV¯0—[¸Í.u¢RÔ={äEÒ€iÀ®£®ÌTo„¬'ÔýgºYÄÄ n&¬RMÀf¸{èíUOØd`×EfJåÁ;­:Û +é‡JWQư§NF‡\\`0]§ÆãïþgÒƒËZ¬3ilÜλøNvma' ™M–%+OE:°›J¸9Ä)'ªœL^o&£ ÔÇm4Î4-´¡»Â€Vóy'Ø_³$îPþJþ•Äh]i¶*a3å +í鬸ÓÌâÒE!¿ÝŸï=^:RÇÑ.\Q+ñŽH>3\dm¹I Sé.îRnÑLì³|¯hWHUóø‘ǤH;ƒN0ëªç-4ÏÒïŸfdwü”«°%ÈãH)->ù<Ï/K@úæþ BWë%š¦„éB©×Xá[èù%¬ñÄ!Ê9Â*Ëh¼íçûxo +rÂû÷"p¶ø%káñÞº“lXpÅŸò²¥,`?oþàà™AX‹»°Lª3¹±‚2FxKžÿ]µE&EäïÍYB“ç®'å¨/W›æµÛËÄ÷ø6O•´/³3m)›ŽhÚ[BÂâ:lzÔb³#ðä6¢¾FY‰iw§k¯?ÙcSg¢ñˆŠ¨~X8ˆoúž¼k dhq'ŸµIÓ»ù’Ö©ÃÖ‰šÀíYBĈl÷P1âV¾[iu©-È7eZpå^2ë è¸óŒ EC˜s!ð Àz‚! H * Å*ßDKQk‹W€t•ÃÒF#Ôv†Tl¬*Q°Ê ±ÿQ¹ßÆü—ïXB#ø=ÙQ–à›í…¨y@ùùSm‚ºæ…¦Q<ÌDí»÷·ÿ*Ü6rŒän?:0Mcé‹Ð+òáùË]wGP~ÅÌ!œ·ƒ†‚/&ûßÀ{ïè°ØW!|;hküìö”L´LÉÑrÏoã(œµRúsþ· €aI!²†týèdß³}üpx!W¸Úó¦>ò¥[„½¼xQŽlê6ÞHÓÕÂ×Ê#pÿGÅc”XOµ!÷¢ÝƒþL•K–È™rÒ‡TF¿ÔUR²íX”Q~–^‚’ž.ó°‚Ì\!¬„‚·ÚbEe( #0[‰#„VÀ¾÷ßû¡¿Ì¸™¾çàD¸"'HÏwÖuÑè%þ§[щæq,‚ HPßÿ®jX©†'’÷¾žâDh‹:$k2E™~ôÌö-¿t÷½^$¯*˜÷‘?èÖu*UütN“ú-#‚{µ›¬0’V8Œü®ý ¸é±B\Š?÷ªçþ~Ç«ðÁÆwëÉÓÐŒ#*]&ÊmÅÉFíö6 ™¿ÄR´ã7*YŽàÝpoá×”MöÒrÝk²í¢}ŽëÐìs/$F5&¨5 Åü-Çi™…Á +ÔòëxM¼ß¿ù'íçÿ…ú_÷ü÷wùzû €ŠwM25rZ {•ß5kÙBØsA¢Y(âù[”tÐÏde% ‚¬•ˆy{CÇ]ã·ëëøÈeeYp¬úþû)—kN2¼Of±OðÂ.Ú#_Epä*¡…ïá»é2Óƒ`º+ÓVðY×´AÁL¶ôDbaŸª–aµ{ ¶J{SBò´¹„mzF˜-´$å ÞYø~Xoö VY*I|@]À;ù €` €ÏÕ‚,}ÑÔ@â¿3°œÑúËp{:·gŠ7”1§2šì ãëƒ|{ 'hý‹±¼¥Ý h2 µlß&¤%ùK‡CO¼sEôT‹ÏÏ$ŽhNOAÎp«Îüõ¤~u;nD5¹‰ËŠ2ðÎD5<áüúþ´òxÍ…eéàÛÅ1ß¿ãqBNe`"N‰I ÷›·?mÐ:Nr"ø œèÕ Pú²ÂâÏUÀjà Ý Ž“v#^Χi"×¶>àX®‘´£ ôöCÔYð,»PbÄ!G^àLÌ‘ã41N8x牚K‚iND¯ˆ¢¸ŒSǡτ+z¢û+LoÀq¦!Hºüñã£úu|Õ÷f—2ðÿaŽŽSÉÈù0 ´ ‡¾Á·H¢Ë\¶~ð§zt¼äv&ûÌÚ¹—÷Æ‹Ö-õZ¥ùogk¿Þ÷U£àþÓ×>fi\•6ÄE‡Ýˆ‹¹oUÊ/…ïù€ü—ö·7Íñ¾Iº5{4­àÝ.ïźË?g”DDW¡DY/víK„>ˆN:9z¯G}9îFQèÑî«È²2}exy™—=lê8yFÓ9¹Q5‘Rô="}¨pï?>´´AµìKŠ÷Lç[mþG +åè³*$œ¢¸œ¯¾Š¦ì’ø¸v„?ÛQ§#w(,Sná)!‡ÌI)y„Ú_Å„6ûg΢¿üËHól¶3Ph1¶ Äj +b Í„f¥£óâ‰Rd¤D¹žE·0Ê¿Ž7O¸}IË%=ó +Ök +º +X¨$æ­y©ˆààÕ*fIn±f¹>ñ¨î<ÂJ²I7\ów¡·%¿¼w_0ÓDè·1aò¾8Ö{U³£äjuäÏ•tBA­ü“Å·ò f²=ç£Å3Z˜U½¸¦'l”°!}aŽ<õuªH4/—£8ÿÍ…ÌÍ×x‚“›<2ÚLgz í2 ˜‘&ú.âŽlÆC34¬^î¨kÅѱ:x—„ñ-íJ ¼+F¨eÄ ê‹gçëbv++´ÛEžSê3ЇÓ®n/¸¥]ÅYw¢VidÓ D°û¬tvs,$„Ô-V¹Žî,Ì#²½JùeºWÃ$ð`GfÆ©Ömœ._‡[A€ñ ØÿÛ¿0ú+¾¤2KÔ°Åpg•Ƚà÷Ôd0ùû;ö ‘4¢[M³ë– Ý£ÀG=à#ûnÕLgã;"§üR_àžf^ÂbàI· ¦Ë ÿé³>`¢.·+2óÁY1¦=ëO×ýò h_õÕ©‘Bnש›ÛÀ‘˜®“'ú=´aÎÙèe6uŽpV÷r!Uí#"-¦³Æ¡íöõq´£Tå@—q†ìŒÐɰ^eô2öƒMš›fbrñÒ´<ÓD84œ‘!‹×ÖMß*6e®G‰Òá8·Ì™¢ÈÃKO{—Þ8"ÚW7÷¬V!bÂýÕÅQf¦û*8ÿ°ÂÚ‰zÃg¨¾Ã€6ŽfXt:!¹{Švá;hâ<_6W3«c(„L!²C‡uMSG™­é`@Âîv½Iç„–­æV š4 xª¯=ÕŽ«c½VM9PY4åB¡˜Ž¢Í¡|ˆ»2­ûÕŸ‹ˆ· +Æåè|DOn›2,üÈÔ¾ œ§)®˜Í;à*çgÄŸk ¢úÌ^5‡ºLŸÇ)æýÎw!]Ì´6öWÔQ‚ýy8ª|DÁàvÆp¸`{é5?Óæ +”1ŒkæeJ¤œð®Í4Ê‚q9p¡l|O´¢k!þzu_]ðË`W4"ô}×¹úžª˜ì[gD®êEsE„Ô*7ó +4üƒdè¯YQá¨â³³‘Óù`?‚Èk—ÍâßÓÒ½mLÛÔ}¾-:ße\Ûc\ë*ˆ‹cgÈ0+N¿ +¸Ž÷(MßèCìê•zá|›ÇRG^´»ÓÁÄ.Oa»Ò;âŠÌT˜3 ã9Ë—†uu^Š!rýUõ×ùÔ}ßȤ‚<÷ž=àAW«®¿Nð`êÆ{äÓÑú +¯f ¾zŽÛ‚Á,ùWÙJÜeE㞆û•d@Ý2ô.nËž»ôÚÚ´qªVªñ ¼³%XsMû^.Hs~ßÌaAá•ó¶“m:âõâÞJÍÎŒÞܑߩÅw›æDçz5ZÐYØí»„¨ŒQŠÐSÞáõ;•e„§"5#è‘MVá ùZqŸï ©V4Îú¯3Áê$ê¬ï“e‹Q÷Sj ÒÑFkgm^ÂÞžþ +–©`Ä¿gˆ¿ÓÞùÿü›ÀNgRCô mŽïÇV"<ž 6¯YΖû¯ìgVIG@&½¬T£VE­³hDt•ËP¥è¿ jS9œà˜çš=HוÎÏq”›÷¯¿‘ÈI!Œƒ0^ømT›gɯ]Wµ´Ë9Ë.çY¿Ìõö"»½Ò¡<'…0š´t€š§Ç‚…da\n›0(Ìï~ýSÁÃ`\ÉLe03féÃ8Ö¶ÈsãHVWE<¯ÿÙ»V|ûP´lzôwL +µ‡Jl“Ë OÇ®i‘CTg\õ©É¸ç8*âmרz3µï˜§˜u@¥w¢D…®ãõÌ _¿°Ÿ +Œ>ÚÌêTFs~µþ"Hÿÿ«n„>]z£»‰Â^(Éì3m3V3»ˆ÷ÉZÚçìË·~Šb€-!§“ jÅw¥:È‹þX0bì;|uB‘ÚWäuK›…¿“èÿ¤ Ð§â=GgõÞ¡AŸd*þ3ýtþ0ì™ð9Œÿ¯1»cÚ~Y»«t>Õj!#ïˆ]®¬DP’!B‘‰«Ïò55¶õLŸ_hºþèk)xqƒV*šs"TÏX…0‚=¡ßÇSu©Á0ä1_(Ø÷_Dä+ÎcûðËž¨uW”4ð'ÄÀ? ø¢ÔŒäÞS¨ógÄD® ™WÞë3 +€T/¢D˜”fe³õØjÜ•¢ìGYßö¹s2u&0–îÏg„'‚+åL¤:ÕǽŒ ÉÓî z\æùÍ/;þ/#^Þ.*Dpr¦oQ§#B~Ò~ ”r™å’®œÝÍjé Ñ£ %Ú}¤7¥ ½à¾E¼ohŒÜP5{ž޳ž(Øžrv²c¨U’püaÕbSsŸíWcõ mÅ{W”hŠ­]HÜoÛ|VÛ<¥’`½o&á8ž"üÓ¨ý‘k7BÂ:W/·ã¼ÚiÏ1+ãÒwbo]=òÁ¡ì—jêRÕâîÑÐñž¿|\¬™z¹P’j’¸ äz}pÏßö5u¤/ƒü'Ξqü˜qü8¾6š#îtà+\<±AM=ÂGd¢£@‘)eÈEŸüÓò!7gŠ]ØÅšø*-ŽH£˜ï½8FTs‰yØ+ 9Þ!Òè}nU´p:T}n¡]FœqŸ_‰Š8-ÐI`«>¢mHzÉ•º”èVÿ«í…ð4ÕøˆhA£"5ðÂï?£F +îóLßdâ_ia‹J/¿-p~Éã–‰4È¥âêÎξä5gÖu>Ôùít•Œ¨á€/9Ý¡1Ê¥£ÁVCÄ«"¨z ä„ùj¦ʃL¦\Ul±7^zõw替‚«Ê™ìë"Ø~{õ7¼)wEØÙ‰A{ó i™T0Ëhg &/‡·ÿQ£µT´e´BÐÅÆ3ƒÊvÿ1g „èh­·úùˆRtF´Uþ„`kýúÉŽçB,2áññå:R]+)N]^ä+ÂD +v"cãq¦èn ÎZŸ@7"Œéžetý©–aý ?pû:ZLVÛ³ø’,óçŒúÏqÊÏ€?¿S¼ËÖ>ÂõÃažû¥åÂè˜)gé1QβJ~Fü¸G~bC‰KʿݗW*sã,lyÜâèÛ. “Ú˜ïg ÍŸj˜‘æl…Lnéßôp^=bè‡.Äû§àÏz2_?cÿ|LéXŠ:ÆœQÒ)‚×½ÿÎåžÞï>VXg´f •WDò÷ ¢ˆ¬N’«÷ÇŸ÷+m$ž@ç­}PóÅ ¡ëì(ƒqŠ!9Å£kã±Æë«dT¯¨úy!2郞±áñvÍpo}*bU„^!Gñ ºŽ>A.שOßîYcèN3=ž9'8Î’5ô1mNciK’3ÿÎìÿzá³Dè*Œ×ÆüeÜ$v³¡5S¶šÏë¹Ø¼O°L¥ö)ÁG#nú~Èbˆ·5Z£x[ßïñ_Áo¦”oQ¤×ß„K•·Çœ]üC²Yu­÷³s*šÕ|Öô5JðÍ*RåÜuÐÅwÆŠΦfGMCa¢â@´#(vê8!µ_&7ÌdÖ õ%ßãº2ˆ‰]ñRcøDtJ‹‘"”u"1`TëqŬÀeìÊe·z;¹×›ÎãWŸ±„<µÐ@ôÑÙ¢ OGzØŽI’mÌ$Ã+Ûyõh}ÔõŽ;'¢$¸sJLÝÎÍW©~Ú·ôü±¿³cW×ר戃Q*ÑU½ÔVÜ·H®wÆè +î‘}û •ßT[Ü%”`!ò']Š Ã+Ÿ†OîC·Q I4à˜Ìô2Þ¡g*FšôJÑ#†Û­(&lJde´¨Ì6ÝßûxÍ:zË$±]‘å6 +Qb²!â½ÅÁyGª0¦,ì +ä™~Ù‹½-Gi¯Ns”ø?ßhæ|G:Æ ¹ï;G/ioD¢O#|èڥ콑¯³¾^ü3llÌÅ5&/(`òµ=ðÍûpÞòƒUî[ §9#Š^ Æ+#²O-ÿ¾(X;Ja8af™«pt’Eq!R祒~¤ò +5Ì‚ù‹âm;ì¸4íæ«#Ùª½'²“〉åLK¶êcÅ›3ÑäæL± +±¡e…Û¬ïb‡ šëÌ™‚³U·ª}ÝÉ1û_êë°â±î¥wh¥Éóǵm{ò0Ë´V€D„Ì€Îüi馀ÏÕ×øöã8Zí2›¨Û­ÜzC@¯‡¦¾žjQ’·©o=ß÷¨ Õ7iPS¯¯¿AHöw‘½=!ê¦Èý÷œTš}8.ãKPø5¯ô£0&ý¦N£Ûi5[ áìk›^Pe]öö¯­¼Ž§<2|{¥n>þ\ëÍÈΙ:ùdôö»ît¥:õâõ»Gh…H£ÂØ~™ÝX@2¬"pRÓr×]«¦\IBik¿»Ìù'åÃÉRµGnÇ;m +Lv÷æ“¶!§´ÍúÓ/ÞzRÿ‡onÕÄÑÞˆa·YØUÈMZ«Žâ‰85w\‡fC‘Ípî˜__×]ædMô—Y™»XUê-º®ÁyxŠ+ú-v<¾«ûäýñç8Ï€>ß—kê² âe +÷uŒ"¼3÷q¶W"æ{”¨{Œ…õèS_´t5ÇìoTªy|pKd܋݋©ÁeBÈË^oмߣüIdÒ ªÆ“[´RË8שgF‘š%EEê5^Ù§Y ¬½—H„ZÅcéG°"¨*¶ô}‚Ÿö³ñý1ïx Ѷ~‘ˉ¢ì$jEL4ŠnÉ ¨E_—L4ð,ûÅÒèÖ‹WpÚzaq¯–ÚþE/{¯ÅØqõu¼ýå…wºe7s¯ÓÍà T}Œ; +ô¢è ©,®îè°•²ð_Ç¿«ÓI![Ìž?æÑ~lăæ„ÏRq×™ABB—Kex”¨qC‚m|½Ž‘>ÝQ§j <4®+'ÙÝÊ ¥àß#Ä"Ž¡ëoÞèoJk¢u7uX…m±lC¹éa‚.‚60Ý~ZÔ¤”ñ‘]ä*Ѧ(üpD}è"êC·•<ç’Д$#Ùû~n^„oQâÙ úéÑðyoqþ…A§»ÊE]@±8|øZBäïÞX¹]?&+sS9§- :A…ÈGN]?‡Î ¹Úóôjï{V'@jåCº¼’ñ ©&æF -Û"/±“ú,9®YÊRpÄˆŽ²1éOûZšF¦0­feDiÀi“÷Îq¶ÛY(P#¤ïímáhù.Z 4¾«:ù˜vû_o°§ÎÄ8moÞðêfì¾`NŸG7ßlÂÏÏT0Ô þÆÓóÝ%fÒd£žVCó+CsžYÇ KMCó;Þ“ˆFÓ] ä°úîψ΢¤P«è¤˜ó´7^v=]ã—*o70wH!i€…&´+Péf j/ ‘¥±@Çu ‚|¯t– «ð}Dâ[%]OÍ}¯xQ„ •ÿ/A«`•Ó¦ÈD|=¬{sø‹÷ºõ޳J É—µÆ÷a‹ög@{ù¬ÔÕï­ø:¢«Œ; è˜U:Sð¦×*>»"˜BÝ+ùAÏ” =Ýp¡N­³Ö.æ[R?é! „2ŸQb’wí®mÉų¤çáª/QˆÏPÞµâ#šÖT¥ÌP¬ýå –Ëñ($ÓgËŸ/à2«˜Nö0¸?E$¶êë½Oì¹5hkø‚IôUk¹|ç +’ÔV[‰‡øm¥è¨ªC_8Ò¿ šå^[»º‹Žrc¿ ÕRбìyFärÍÂË.úà×OÇéE>¤©£¯C@ŠD ÙCE6]èÇx n.DßWæb¤O}ðÃÐ "ŠÖ&QÌ×ÿ¶¾Ï“Õß<öÿgííVìI®üì+xï¡Ç>hÇwDÚ1clÞÛGd°FÃXðÝ;žgEìê®]R#ƒ4úW®™;wdÄŠµ~VߊJ8k=‹wš¼ŽÞ@£{™û{.SÚûCiàg5£_D-„,°–ØY÷˜áû{R,˜])ˆ¦¹Xä<Ã6'Ï]QpÐá_B†P;ìÐSya©ÂgþîßÿýýÍŸþôûù§ŸþþÿôŸóÿôÓüçÿûÓÿçOÿñwÿø§ÿô/ü?ÿü‹‹>¯3ÿ +ïÿ¿ðß{0í›û?+nö€ ॄ“pU¬˜jûC¤_ð~P]4µôkÀÍy°AFLDXþ“ï±ÿ|r8B…¨]µ¤õ†bHgbQÖøAðY(k:Å Vî˜Q·ƒÇ˜†òªøõž­8О8 æ}9\&?ÑN#².`­nÿI­éRmüse5ž<j7Xʇý匳‡2p…ä㓸âïè5)òÕT·û@TCû‘¯rO°–¦=3¼ëô©h$´èàIú(,;¹¡þšÂl?„N Ê1;rᣖ âD+He—U®XåÕ÷J9ùÿ²éò(bDÑ J;©ƒ²³ˆ»á˜,oÂ5±N|j„ ÃL£I"Þ´09¦‚K@¡érq0…›qº°AœÓB="œ3&Ž„‡nâ”jKÜ\»œuö¡d "/Ñü˜œ%šN|Ø«± ÆlCôüIõ}Uæê>k§îÏç’CÜøÓŸ[eÙ±%WùlÞ³‡Ñ¡.»"r4z?X¤ý©üÍA¬7õÛÆK‡åú-5ªÂ¶dþS×jµÇîWd³^Žlµ»öÇî§êQ&õÍÒ†ëˆ:ªÊI;(v×ôí‡zdS°¾ñö`­§*ÙÍø;]XÙc¼É8G’O,È!¡±þžöZYú‚G¥‰»R—îþ½GJžYJnYè£]‚rS¦&¤º±á÷«àBÖ¯á#CSªÏÛß}‡¦þv, +¶ªN©•§š¾)ù#§;]x)¿ì~8z§õhŠâñʲslëÌIÂèéÊî¬}Ef…ðÃά×^´¾gΠб ë~&&žqôM{&ëüÀ-å c }¼âÇá C›òÔ‡éöXÏÐÏò"`!,;ï ×BÍ(hã×#o(ù‰~Pcíì6ý!˜=ÌïH4ÚÄòu(C¿ÿ³ \+ßß„?SÜ^‚Òçæ‚° c-€>Ÿ… ¤ ×þ!ùÔþiÎR7žcIX]Ѿ_ ofÌê=\~Q«ý6Æ…€jctârš1„Bz¥Ð’«×w²ñÜspˆWûgTå—wÔ•€’hø9î˜]BÞ6ÞÞï?ćðöÂÄÖ3°7ÛôöŒxT¹ 9ª–áQ!µŽ”J†<¹l{-)1R¾G-F4;UäJ½Is$‚î)Àƈ "MDiODìm h)uªãJðRyŠ;%xòz„Á1Ìòeö¡Üq0nJƒOs›Õ‘¥ÿµ—T7ÌËi«"pÞ66 !'ÆJ㇭”k4%öÛ'´A=¨{b§®7´; [†z–þF¾°ŸÏ´Íqñ¹Ì–¯CkŸømÛË£ÇñSÙÇá˜ÅªÎ£¨âøº:b +î'_ɾðDFÛ†ˆ‚jK‡• _­Ð4#€v(¾ÄuäÛ`Fœ YÂFñØõaqº Á‘ý„)«#1´}µÉØ¿ñ¯¼?Þ7¦*ìݱ’¤ˆÔ–4@PÆùÉBx‚ýÒ!ÈE¿Ê8ÀÏãøÆ­BÙ¯~ÅÁö³¬@VæBá <ÐN÷á,¾DÑXЫ«9²¿XW¢{¯g³yžýPÊ vã‰ÐPh3êîUF¹Wz@ x%º%\iæOÖîØ¶@É¡‘Uœã‘Íh3BKlQ8Õ ÞâÎk2Ô# ƒ; -½á*RÝ“/zúê+¬ôÀˆ-æî…ngF Óúïþi¯ßYšô4ºZB|È;wQb‘ß¿ã@<žÀßiÖò÷~°p¨Fx¿vâ~MÙ‡dÕ´~°ËÛï ‡æ­±¸ð†]‘^„)$îŒÓæXW*5$|q:0ä=ÇqÉS‡§ÛV¬3ýØxj¦³Ðp.O‰¢áq4Ð÷è?;@a¾Ã9Ý=X*—:å) k±¼€SˆóÜ6•Róû¿bâs¾ÄíÚª¼Y÷Ð @þ<€ ñ}@¯¿uÙxáyÔBxôM «•‚’–ScˆsuÌÃÌUÍö6ììñ÷z>"ÛO¥õzÍá{U¬6S?Õæ™^‹ƒá„†’ÕN•õÕP$ +¿2V´åÙªâZ²¢uxqï­Ó!¨J¾Ñ ;>u¼á¹‡yÓ5·¦.ßßðU?¨Œòv½ Æ»Hh¢“³þ]IÍf!ñ”ïçAø4”ç÷Ë÷ކŒb"›¦¸{m¨Yh©¦Š‘NÈrŒ©•hQ3>?Ä û-y0(ßüBê»<áj¿ŒC~Í2J±…* +9û¢¤¾wI˜[d¤c ¯TbU䨉£+L)³èªª'=¦@ǘøÑÄ·P­óJEeŒÒ#Öý6îÆž*pAL Ñ'Úø¥“}†jIa_úzˆ'MûñEÁˆ]±ªÂQE`£ôbl°-XH*L ØŠ{¶ž‡àï~šÐ˜iR›€´Ô"Üj#îðW‰Bý3ÁO‹³¦Nmõ<‹NÊŽÀɈ0S{.î…´ùM‰/.T¬i +pÝ—BÖ¦¯ÚGÖ·pO¹XàÂH¬¡–»éx>¿¾ZßLX3Ò½Û«Û 'm’÷¼Š$Z;º/_‰µó9ºx=í+ò´ÉØ*M¸ýÆôË­ÄUü–_B¡Y&ŠŒ,“òÌ:0È‹"¯¸ +4j‹×Y€ ¡¥¢ò–À†i€Œˆp ‚Ÿc~3A&¢³äñ†d›×L·p[bõ§³‚y’ƅ컺óWЇ9€ÑMÊ+DðþAFDGÙÝ™ç2ÿ¹Ò~KæþmD3`,ØÏ@Ƴí¾X5Çd¬^qL^"³ÚmL!¼‹v/¬Bí¡Zê¼×QÆ“âó~É£‘k&ºßgô`¢ÓùÌðšÔ|úë’imW(ôDn¿ú 'Ž/È +ÖËô všHñ=’¾Æ©» F +0Í×CÍÜ»=^/SPô>¦S,..NçÈŒ`&hÛ[Ìo"¬«Í×ñ˃¨¯$ÙL¬!Ønñ RjUÀ_QÍAÏ +¸<¯ +{ù¾¾‰pšXT4l-»Í~?Ï$é ù{&šþNIÏö^Ì|nMñv_ÀBNÜáØ‚*t˜öÉ%QÇœ-.šbn^ +—áý .¶Ò~c“dòŠÄpQ²ð="ÊôŠh*︜Ê{¿hŠßœªY;grolSS™ßD|…yÞÑõË(%OÂ'u*E†‚R­Eç!ê¡)ëR]bY:Š&6ZtÌÞüFhý Ïß±ú~–Þ'P1ØÒZ§¥­biÜÇ[-}á0œÝÃ{”x ß'¼±È¶½0êg Æ|Œ¤W +#i*$EHa1šû{Àmƒmþmpý¾9ÍR<xQeñpÕ{”9+(L=aÕÉœÜqMé݈>ÆÍ5døÜ¾˜Ñ i9ˆó“¼E!)îi¬gÄÝ>Öw*\°·ÆP÷ÄC)#X|˜¼Ü7ÔæÛ§»*€c†i —nÊ7fçSdaDQ%ªn_£Ò±8A©8[Xg̱§Ÿ.* +r G¶TMDV;à€à;ß#â9et  3|¿9ÉHRkÀÃ8Y?™ð¨{E0 é&ØŽØÇ—ÎÁ±CF®ËƒÂ{*[š©œ_(ÔW#ïíªÅïŸ7sPã$q;æü‹ŠþqŒ) 1ÀÌײ}œ=¤Ç-Z5$pSø6“Ù{i$È@Þ>Åÿj.“#Ø_‚d.Ñ\¡CŸ#[ä+@FrÜÔPækJbÿõ@¤§fþIü»÷xgè3…d?½"ftêpǰú—‘<ÔH.Cü=ª…æ[ÇÅvDFÒ|p¯qÖnÜC¡Ž£Œ1L?]‰Ì„f§n4;è—L:ù½Ggôq0°)ý›š½g÷DJ½c{ü¨çƒÜJH{>ÙiÃ÷úº€ó?QÝùuž"µç<}j¸a-¨)² [ÖýQxûþáRA©cG¼D˜ÿºéá¹ÊÏŽËlWLÂL‹lž\ĪR\( [Ÿo"€„PgØËöÔq¥÷¨r]Ü\lÂð !ñ´l~ÑI–$ æÖëüý5~G>P°{P-û‰£šÉM¹¡î–L«å¹áöçYèjùÕ£L¸§²Gù(@ Ò÷äÇ¡g±„ö)­ $p‰ÂA4/ójTAc¼À=îOÛ$_#~{û9PE©eÛ*y;OÅdg§Ì°ftDKþ—í»ˆïÖ¿· eøQ¸Ð}ex”€}n¦ç6¡%>KLÇM»±²o¶c¡¥­Ï½/º[>;ZãQæÞÛ‘½±d¼°FíÓÐû„î0€±±™hHH’ÜÒ?±NkuÇXÙt +ǯPЩÑPOßC{Š‹ì,X¶ˆ‡_V +çuÀV¦VT(¡èŸŸ‚ù9Q-·ít57@àÊ@F²“Ög5íS'âo¾wþME(ÅÃ`+_õÎÛY{h÷…©l +xOWC¢„-zË>>¥³·‚ûVQ”ò8Ý$R¸R(òæé×!— ó÷ßåBŠ"R‹WíÚô{ŒÇ»žÓs…W¦Kv:{„âÂ퇮px,ä³Òö×^B[¹|V›ðZR,Ý™ù±R¥òïCÇ]¸80”®Ô†§>ëJwó\SN°RÿúðÏ)þ"ØÏ@Ü“Ùv¥Ã2DºE.l]€­<’Ý‹RŒÛ—íƒú]0€é[Ö9yÑžT«¾žè°ÖTÄÈâ"zï QѪ 憄eÈ„PBBЉÅåóÀ +$²Ô¦ÃDzœž08L~HàÛ3¢šŽÃ–L%Ú© _¾Ó›E‘, +¨4êТExøtô=-£‰ÝCŒ9`™P6ˆ’ÓÓ#?Ôžpc£¬2"t!R{²7%Æ2vÏ*DÙÛ!*¤‚0œ¦Ø–¨]­¤ýñPð”$!¾°lfEýx‘÷‹“d‡põÙ·½®ÔišÁ\ÆK$î'ûñqïi~ÈêI`ÐÑúQ +(ðdO’Šéêž7 øŒ9ƒå¬ô†þ +`Áœ¯ §¥Lzp”r +{;èt$;À41i0âAÁ¢¨ip®dǤcï>‹† F±è@4šç±*ˆ]u*¡‚ c¶h}¹WÌïÇÝ"_ϽÐz/4¦Î+Û«ê­qì1h:RO\h²Öí Y–yöï=Rö¡ø¥©®Üw!fU”ùý L ¦7f«HÎ<ôÈS0:ݲpóg@Ÿ+޶3ºyŠ‚¯ƒý ㈊©UŽ_i®Óì?v¼6`?B±a+Hߌþ·Ê!Üï×ï—âw!%UÀTövìº-U¢I^ò; ó=bôwe¼tý{–lâíö8NÖÅ©›e‘âäe…¸qfÌ*5(…*uÿ%"~[ˆ˜8]<:as‡ïÓj Gp¡ ¬ã$ïpik'_"ë{-8ŠåUlÁ¾ßù1-k6læ(e £Ã¸HhVÐþœ53uëùù›,ú+xJ® vâF­|˜Ð´øtHÏ.ªò”9ÞháŽs1kœ¡( Q&;Š©6îÆ…‡>yPqJÅâW‹¤t˹ß"ȤŒ(”!]ýù¶$2öËj"Ê2m9Ey‡¥ø°ŽP¤6%¤5¤›çÙ)¯o–ÇÜ­¼GÄoó5ãy;Ìi‹€_-zŽ#¬…;À·GA;öÙ¯7ýkÔjá¹Ç]êýÜðŒ~ŽL„„jäz)¨ÓFDkL¦Ò׀ߓ] +\F™úßOÒ…E¤‹þ ˆùÉ?ÝÔÉZXSêJôU ”@ÌPŒYyU.Èev1,r®,$Ëz¯X%¾¨þXúã1ðx ¢Á „¥E¹tR4‘òˆP +>7<ØËÏ}»bÒ%ñtE¦,Ì4™(ðäœáñ™herŠvQ¦ùÌù3uíy?Òj;WÛó{Ô°¬õð]#0¾)ñL÷fb’ϽE€Sö±0òÛ]7¾F) ¢3¡ÈFêüD¥3£g]áÒÂ¥}?ÍÇùz?àˆç4ß.ho+쌦S†"gœtOîål.ñ4 ìÿ<°èG·Xö‡!½ƒïP˜~-0„g‚5| +-¸Ù`ñ"æ4` ´wR‰ÍEŸ!°g6f²Ý¿þÝMa +„Ñ×cNu¡å\IXö×üüûxlÙYç8÷ë ˆxÈ â))èl‡rô2ÏÉ[ýa¶3B~k†,ô¡àoäQl-~=Σ[+?‚͵Ïê¿´ËPxäžmúsðÉ!iüC’b\†BSžÙ'ÅÓºDr7Ý89ÞÚÜ Ï2ã÷HÅoHYU ÜÈÇõ"„ÐÖ«åg©nãܵªô:‹€žKBǾû³ÛoT€dF|9ˆmH ¥±5JŽïhæØûrãñTwÊH²ïˆÊ`z;øq©½@Ç”i—/Ó +Ú¯Õ —T”LTþ:ýŸë~'lû=¨Pq…áãŽÏwФ o³ßK<ÑS +ŽýôÓ bÓlõÔÊÁNß{WùNÿãô ÉÉ©Óĕɺ0–¡õ†ãeô½áEÁxoR¤µA€)®‰d"mÄek_nÌ÷ˆ¨‡§ØŠ¤Gñvˆù1ð3wÇØ¡í~pK÷믈jÓɤÕ|Y¶oA-”{B±d©¼Ú–Ë6T°x­ãaSgý}«´9Ž2€5æ-Lå#û‚˜¨>­›G4¼X JðÖõ¢‚@«êWá[è%‘òv˜aþœ\˜Ca¼G‚ë*ÝÓ®Íöð‡%¬c@N= +=á&eûá‰ú6€0e2œgðÚ2J=^¼*J®ì­ ůrä°“¸™,¦=b {˜CÞk\tP\ÓšŎLw”О®ñVH?,ÚdGÙ[ТØÞL g”[—žBtæi1{í=LÂÛž bkôd,¦²âÇ`…¥­0Ó¥ìm/–æ“%¼„™Y5J'!€ù«6â®T,âŒÀÄ‹ˆÐ¤²‡ò±WÝ›47Í‚ûG¿õ»"¢—QÛ½÷ƒ×aCN·Æέ0¶šÖŽ÷ÕÓº”.éè0´ZœÂf¨²qË^Õlâ]¡×%© þÐäã¥é8I91|E׉=«ˆ$(“’NL`8ë4ä ‚æHA?Çj X VKÖÚT b7?͇Üꈒ%#I3’Õœá|ìB òzD~æ–Q#¡éw×GS£¥ D2ÓÇŠÇ_NÂnZ÷­,F†é¹'Ù¿Êg8Àƒ¸wd`>Ðó†fû:‰ßBYS§É½¥ÏËfŽÜä9\ò'ðgreÐ…+£ÏLº v”Ž0_>(9 +Ç£Ô…·)ÔXa­%âIbÓj•ˆ0ÝÌÜoŽ[wV [:Uàø zn®¯+=ëèÓh¥Ëyž °ñ)OÐêšôµ8I]sôÈËÅ•@7:ÒR¦4Îh´ŽZ°B3𩼭e€s5#§PQ`=Ý}ZŸ÷lÓŽ‰„Œƒ½ÁXˆaÇNmD+—ŠÒ50Dá¨!)–2ÊžY˪<¹èä@9Ëä¶"¿’e"“LÁ!ÞQvƒbå+aõñÀÝ÷Ôœª/.[ÌDì ”j¡sA«´›äÃ\¨æ êm±±Šfáü¬Øò†ÁàÅÆG³òB +x.DóŽÜuq5•ÆÊ^RÖ‰Mn]Ó] b eR•’z ;°uÅ–Vm¡xÙ-Åÿ_O~ü¾›”{½6Ž ê†²Ìü!”’Õ·PñÚiáHS*>V³ÐÙØ»#9²èlV%M1kh—œgE‡ƒÚ`Þ‹ŸRàÄ(Y&Ý(©H¡–Ç_ ԖQrrW»ô©Æ&WûßôiÀƒ•tÔ÷õtÝÙT=:-+Ð5!I¦PäcQ³j˜Bbòì{¤Y#!L‘†ºß Ojd/8Hù ê(PJþýX]Ê×vÒ&ã€ì{N«4ݲÿ:[Q4.‡Ù>˜ÐÊ&XwR­/rX_`,O`féæÀ£\Ú¬x– sŸ6ÊÐÚ,òjÅ›Ã.“—¡b¡&MÇs+‹ÈŒ‚t9½V£p»gÈHò¬gÈ(g°²Ì;{ÒBKP±ôóˆMdOÿeÄnÏSé(X¯}âdæ´€½…=Vº¦ +-ì8FU˜×€1Ýû @ÕÂ>Ñ©§¶ùÜîX†ô8é> ÓútÖs@œ,ÂŒzX•\m*3ð40KÎ[:fŒòõýJfuQ)Õ…ä q À™ËYøù†Ð¸ŒP€kúüT¨e{òÙÓF‹æ2êãíð¦ð…·yUüQ¸?½Uh¬WÏc§~ªë9Ï”‡·o˜úÜ2{#G˜ªGêöºÞ»³…µ“ÛE¦ ¶‹bW‰ @D;_‰Æ®7²7 ·_•U5ãVÐîùqaļé¥:x6´ñ‰ädœ‘ÆJ +W"ý¸0M%o‚>5+Ô´3:¡·ÇEÅ#Ù?¡³GŠWբعé +D„n´P¹¤@Õÿç‘ÃA?­½› qÚœÂDRØ<>öÛŒYeð-UO¹…Ž'äûžçôFJºÖË86âøáøŸæ0P£µ_sÞ=홋NÓ‹DÂ. + VHz¡   p˜ÒIå +ŠôCÿ©G‹¦œ ÈZø¾ô3N‰<_kø‹¶K¦D1ŽS,ÉzûÕù@Žöê½(DI]ÈÚʬ£mY¬Ö´‹X,r‡× $9––ਞØ,UØë!ÂÖB˜‘ºI+ †ý5lüú}\‚ñƒMiÁùœúÐñ· ‰CïL牳—„<žp£(Aj.òœø7ÌDÊ43{ ·#Y¦Ê±æI‡.±.ÎE´ê(}ìý=tÿGÆàêÞÛŸ]oÿ– 7²äOŽB™õ^¶dÌô,êxØ÷ +•! +ƒró=¡›ž&d¨QŠØóêY¨ŒÃ½ž"ïAMxÇD6*9”‡0‡É(RXó!WR½Ùã‡jÎs@½I¸[‡¾ïÔSÎAïa^Ϻ%š2Þ„z ȬK³m¸îé¼GLA¦âÔl»’‚ÐvŸÞ~Ëæiˆ©e¶Ñ¡E"‰Õm¼§b„ 2„¼Ô›Bf×¶È¿X4ÛÍì’·É_e_öÒÍJA;Ø/°SQ Ëûï#Í BDñUàLçÕW†½Âì’VQ⌉†õäÊNÌγÔýä@‘"»—Ý{6ØUüŠ©ü{-tõ²ûPÃì?! CŠQì/S[f?ðS¡eE…Æ-¶Â6=öàf6©ÞoØ 5mO©.°ÆÉüß{q@^4rGÄ|‰³¤+ ) †¾Yie9úž²¤§“I‡{‡kõ‰z‰R&Sª)ÁExe‡@­—(‡iW2Ž;¬<Å´Ù­-HI‡B(j»vx†.';×`G ’Š&Z/ø‹¿t½i2>€S;ýÊÃ)p°¸ÍU%NÙE×VV M™=yöû€è«Ú@Ûã>)ß±³"fKªpö¹ÿ=îm*й@ lL/õs¸á¬J™†9È^Í(4Q/Ѥ†ŠJä{D ‚&hMðìZ-¢0?Õ7¡l±ßÜ·HjŽB<À¬ÓéÚëñêMTf`öovÊe´öœêUÍaËLW¦ºØÌYMaKNý\Øu†À÷¯çà 9Ë(oǰ—°-uä  žã˜&ºjïmº¦”V,Ò™Xéï"€ù„Ž»í>x3qo¾^a@çÍ’ƒt_hV¦(TXsÇ@’ò»§%N^ùUŽº +‰3¯"‹<÷áI®¨ÏRn/Š;ßYl-r öÝæUeˆ°¾ +”}/_„ÊÆébMP% ùN×÷kxÍ*¡r«*’¶bC0 Éîro'^{ŽlÄy)©ôLÄ[F°m£rj}ÿò ‚b Q`›ÔÝÛ!#˜¯¡³ÜÙ‚q“ÿ˜ŽÔ6^åˆa(*éá}%kψ鰊ìÛ r-u‰ò¹E‘õ:«­F1­®¡wב‹3i΋Jl‘ŽUÚr{~‚A–V°à휊6òyÍÛv€j]Ã_…ZGl<» G‹—ï€PiO]bZ5€f{éΔ£’ér‚ÍgURÔ[ˆ½ì~÷~JñÕ(bUé®\ôãAì‘tÈðš»B¡ùŒè^å…µV€„ fzð§Lbq–xm{ø¡t(°5„¿%¤íßNô|ÀyΖâúën{ö„¡2¦ãÄu¶êÔùaÁ.…Ñãd2X±‡GzFØð^ó%²YP:Z£wéýÂò‡Bi>tÿ1BZÅÊCâ[¤—³¾W{4Ù… +» RÊÚ¨‚ÚX¢qŒ8®j €òêæN]äCœnÝEÕøñŠ÷´.Hñ©°¨@BÅŠ€\ ¡Û{¶vúÿQ2eÕé|ŽC\DŽýÊÒóÀiÃ…l_ë:o-L+ Ã %uQ+C[pÞ€`󥶆+¢®F;dp4Õ®Wi +ð©XR×Û•xÈÂüwJ•ºti)¬¼æ4yÍÁLœ. +OðXɇS Y¨÷´óÑéd kvÁ;ÌþØ2üCÊ|õª-;P5yR¼Á­k¤ÕÌGY< +ù•î_ [¨ð‹ÚKq=¬ †ž#?˜¾÷¼ß´]2úMÔ§˜Õ¨ÀÔý¼h8]ÀÃe¯SA(ÕO²ÎŒ9«. r¨·0Žå %QÔélP¦Ù[Y)ñƒ>Î,ZqÔ&=pí“4’=cëM?C"§â7bËÝX*ÁƒN~àY¢¾¿ÞÎí~¾Å~^øÙ,P­u-å!^6M¡}ºÀM,‹AükÃ)ŠÝr~ÂïÀÑ¿žšhí}L©Á‚ñPö÷…-J{_<þ~I[ +Üv(ŸfèÆ|‘r¾*R G!X᪠Ü@<ï¢ôµ¶Ý5ÎyîªV4É€D\^ìþ¨õ˜ˆÐ몡mñyº;jÜÖÒs3©¡§y„¢aÃ1#±Íbo-îà@„GÓ-“ˆ÷ÈÊñºÐ@õz1W”*‰â%ÌJ!@R¥Îo4(±³Å0b¿(|# Hã6ÈÝTÔ|.D&ˆÁƒAIøç˜À­fÐB0%n(õ"8çæg_™^ ª^pc@7K”ÅѠܵ™(r…—tמ¥»·ÕL\Ö%¼º¯ó!‰!“Lþ¾÷ cÄÖœ¯óª}£®HÕ®pÕ¸ [®JÀh·7š"O M=]Ê©F„%ÄælýÚÀ`sú€¢J@QIÕNÔØ^U<¥lб…\õ"Éi¹‡r[Ñߤ•ýX²Àôí´ +ëÔÐrÎÁ™Š©`O­øsdå0‚+[úA•B¸?«p­pSŠv‰-Aœ” ÔCLT®|É&}€Òt ÿØLëqÌ+ØS䤎ÿj·*¿ÿóÀ2XÀvfçiÍ:¢vÌ샖ñê +¿GV¦ýDgH= Q®†`T`9£å“^j ùH»ÞÏb¦p„¹Hî·& …@{ 0軲[Œ<û–u–ìâáê(¯tZP,2.d ŠýhQÉËwPM­FÁ…ÿ¬W^ #®ß52ÆœäöÌÅ¢#³O¨æ} Dr ,Aºó´¯a8œsÃÕaÎ캻Bec•ŽÈ1Ô3eÌ·â ÊFÎþžšÑº$ÊtI9¡^I#¢Ù#yÔãêÜ­ø÷݃^‰‡@ì$ÝL¤Œšhóá\Ôâº]ïáý sH¨²Á¸ªqŠ»g±ÕBöcÙ§üH!¢ë!"浘 â à`ÄÏœò/ù3Œ„¯ärŒ¤ŸK$I¼Duî°Ê`×¹—1Ru_Rõ«½g1}Oà`,%}%¦':~Ù[³ô…¸CwšË—iDbCTºÕIÍr¼’€š1QÈŸR+ú ê+ÓVKDDÂHH¢»ñvdŸGÕz`âFÕ¥Uß•`ŽW”Y³úЉjþÀT„' ^¼ |ã•UÖQ.Û‹?u àzKó2jIýoÌéš»Í#BÈúƈ ‰¢“C¯·¬Ó£³*âyÎc'èÏ£ðÕ× +uù|£dH$+¤u®~Ìif‚÷¨Jªy÷)Cu)’ÒU[Àd“S,…ùfû\*$ÃÏ?”áǵ˜ß¸2s·kXÖ£ô~O±ßU²ç>^×ÙÁåŠBN;Õoª/T£Ð/s¿ˆó#× +n:‚ý9¶¢Âk¤¢JæÍZÇf[WÐÖI?,©BB·]C_Ga$T²\UâV˜ºOŸ_ë^TêzÄ÷.èÞ$”¦ìLç¹ º3,Ç„UFœ¦‹eãd ‹Çoz².!˜Ê]Zâðíþðt«s¢¯4’f6ØI=d„ŽÃL4o™mì^óQбR½”Ÿ>B&…í]v;À6œµXëÞÇÅ{ÐóB#¹J‚¢B r\‘©}RlrQÉŽkמ›äÛߪ» +íœ!y`WS#‘Ô7U3÷ܱWÅ53uÍ¡F»ñƒÝdm$©ñô¹š¯(j†^oîÅbhR%ðÿ< ¥Ä‘ûƒ§Øá×x±5+¤ôZR‰†CTq&®g—aª²¡PÔÓˆÁhx¤Wª®– ô{\é냂v¯8fÍ¢GDYBI ¥ú¤áØ¿:ÉàåWfKS]/'a…T÷@ÐÖÓÖQ¾b 6×bžû!€\ÁÁ\1nËhȶ£øòÀC² ;Ê\Ѭ*=Nã.’V ê[9l$ò°¤CÑK°—£’#\±6ÕÞÛ½ü`WÀ­!Q”Ø#©¯ûV?:¢Ÿ6Ä?YNPµ§I­6•´{`wwÞ)ŠªhG>:¥æãbfœ‡öZÕz9]sÿ­¼YèC±ðûNW Ifù*˜ÉUœ4޼ub-gß5R[uÝCdW6ñí$V7m%Ë-›ä€+5¶•ÈО„ºPýëƒØc*£5…;&3a¼ÈA ‘¦®:Ûqú£ÓEb[¹^áuð¾½ ÌŠ˜UÚ¥+T›Bs‘eš—LŠ~`/Ü2š²Neœfê¾X(½®$«à<Ãi˜rí)…éǶ¹HNô#ºL†® U‹íMWº-ËõPá–¶°ÑÏ€ ŒôCÉ|…Q¿„"éÔ‘-ol.D¨Q†7·”FLo öqØÚ`w2²/tWz7TEADJ𑸠+–?u„¡±a?,ë¸7 g[x"…ÄÂló"mk¨?Yà•?¹|Dñãë‚Þ0Ψa­ŽHÌIŒ+̾~;²xìQøµŒzý•ž£H»³ÞfÕVßdSÛ-›†v023ÜJ42uÑ@i® +U“¸Aåä`¡\<¨ñU¶§}Ú­r0& ”p9r’auÖ%#H/¼_À™N¬¹lž3^GƒryxI-½¤Òa¾5Ë5þ®u+íÿšCò8Ñ=h3´}ˆÐíÛ â%’ƾ\ìêþm¨ RÝBÑF|ºUÃJUù‚²+"h!»\ŒÙŽJwëK)‘+tµ(»ïkÅóż’]»Ó­¼!x$E*z ]š»uÅã§K $=ö)ƒ4:çOG6[tl †(Í|¤M¿è +[£OÅû˜¦ýl¾™ ãNk«\¦cŠEûºÉ‡¬CTc¢ãØ^4þáÿ ‰ +´Ø³ã(OæHP*vëÑÛ -Âúž†FDa7£3±‚q²ƒ½Í¢Íû rè5ª /­ºâQÁ$W-ákäu‘[¶}àÌ4={Ž’3Ëþž?òq¶T~–\kžzëÒl R&)f™ÊáRÅVÛ–7&uMÊM­±Jð†“4ÙœWFUóPËÊvíl饻ÛÂ2y!µ'Ûq5†¿ b‹RKl’2¡4j³î¥d=¡§çŽom ¿Wï PÍ‹GïM,$ òØ‘‚бŸE0S˰.ʼn6åœéƒ ¸¿&G§>Ûèöt¶¬ÚðE_(%ûB£’¸V„˨¦µ°œ°lc# ÿãì|¥þŒªÔ•‰V š5Ê)¢æ ì|F¸*XŠè€ " ]œ*ÿO\Ãà”q•Uéµ›×ÓWRW5: +Ya…¼j…Q0 Ÿn¨E{÷ðÀbL… áv:ikäZ¡¹lÓ9Yý¬ÑÓV q©mŒ%”>b4; Ÿœ}²¨8Q\-î{V ÕnßºË [)TsöVêÏ"þ–ð¦ûgý:ÿÊýŠafüß7™ÂU¨ @™©¼‹âÔYŠñNÏǬÊ “ÎŽZT°ß¢|J¢Î©©[£Ä~paçñE1'¶?öîþM$¹÷E7G–6κþ²L÷ê^ÁwÛ\¨Z> ‰Ïf•tÏ‚b¦ëAZï| ½¨çËyå1 ¬F•É%%ž§6±4n–øŒRŠÝ-µ§G;cÁ¯·‰š™FÚëBvyµÄs,ƒÚµIQÍ™¡n]ŽÂ£Øtd«¹7"FìR‡4 À½áÖq]B$ï9¥ŒTĉ˜-º»h6p¹£ÜУcÛ¨F’ãyɤ%¶ˆàß½l;muÀ×-Œ%jä@àÆ»7‡Ü…"J 6å¾êìÉ4$NçB¬û<3ª'¡Ê:Ž›L§<âß϶Wzý0oa6>æŒgÒc³òÇâzÌÌéȬ×™=gÚêÚŒŽ ¼ÉžÌ¸³‡6thÂϘ|æ9d”ëb;’pœP|žÙj¼.üôLõ=.ßdB„??ne?(>à˜Ô ZÜJ,“-°æa¸OÅÏ^ëSZƆی¥³ö°Êÿ/ÏY_èýó£¡?¬¬jŽEUwœÝ÷/"¼@3GZrç㛨bµsújöy~4b±á3Dˆåçs¥·¨´bµÆ†žž:Ø«½FÊ +¯‰^iÂ®Š‰ÉNžkz^â · X¼Ð¨Y?ûTµÌÅ5øDÖØZÖþ¡¬5}«øh˜ãÉE½N­c½.»#Ae t?S‰«‡°z6`ÁŠ +B‘±ÙjìÊvÄDýL +­( :éóXÔÃÔ´œÛèÙMôe+ÎÌþøÑ­WCfã]°NËÈt¹ÀíÙ1u†ä|9à$ªjžž:cµàÊÏKfÏ×APKAP;ªo¢Ê‘Ï]ȃ½Åi°žÈŒèh€A—Â?M jBROD=ý¿êqüvÌÁcC§t;h¨G…™ë׈o‡ä[|ת)@OªÆaÄFïïy9ZŠ“ IDxmº¯7]Ï#`uŒbX¬ôX +œ.aŸìKf +1¯uDkÏtk”€Q˜Q‚êHùùЮ‡C"˜)ÔY?Gl™|W•%îªD†:î}cº¸ž7Öäý§hŽûåç·¼jó\CAƒÌ ´Vðo^ç€\3ÞÀË1ïØsS©5¿\O}œdMù^H.ÄóGE –n-œhû—x ! +<÷÷ˆ(¶+¦ÒùÛó°·³¥ïVÌ%QñÞÇ•¿[—ÌÞýÄžØt¿CÂR®¾Q]Ú,ý„Hˆ!ŠºÇq.*¦LÅ)“âÀØå^¶ò_L½þb¦ùWºæ*û]ëìz …zB œŽt¹éˆ :çT ¬Xôp“¼÷ŽSÀ8pNé‘sË-J´„NòoõЦvXFø‹É4Ã2aò±õ(X‰Ž€7cxÊyÚ‘¨S(¢¯Í•”g…z™âJ*•wÈwws˜çÐìÕ¶[ƒQ*ËÇÒ…dN‹Õu<à:®µbVxY”lRòеÅÑÛBÍ‚E¶T,OŽvq‡ÍŒ~§5¸…“˜‡Ï–…vi }?-?‘µmúÈYýãç§esjGtUÖá‚êÎ8W(Ö*dNŸÚCskë f6Õú–´Ä¥ÍØJˆM·c,áïî—wÔ,9 +òö?› +¡úçrËyz ŽcûBå>"‚+ŒE.†û-ÇÊ+.ТKÎAÉbM™3ÿ06ÝÈÄ·ÂÉ¡çLLDuöèÊWEùX«íW;ÅðÖ¸ÔñêÆš¬¦÷° [²oJû<ú_{3~ü[¾À±iãƒû§y¸&DÏö_Ï®K,7ä÷=¤0ô$ˆ¼— ¦¥Ž¬í%} Sù +dQ d‘º‰I•Ç…/ÿÎ'ÀIˆ´OOÖm€r°GK„Û—éyB›rº 8̳²^BQØ Ï€”—Î9¢^;ÁºÈrZ³¢»(Î.¿S Ð<è‡Ñ3¥ÚFû¿&Ô´N)¼Ð8?R©òذ2™ó5"öEýt>kéÚ"=i’àqW¤ØFÑjëžÈRxžzÆ6VÚ)¢üÐNS¯Ÿî,ĉÂч¨}È©{HçðtqfhG‰˜—÷ lÆ•Bc¡Õ +jí‘_•Û~JT¥©£ób)‹èq¸¡ZØx=qžVTAó5": 4,q%XÂDÐøìxEŸ ME(ŠWÊãqž43LŠÖðBï'7\—‹<\f6-°¤*jVßC|™ôÇ«»ŠÒ^gÑorNÖºSóG P§„¾çb˜Í^Àù³ÐmkŸ06o/à<$'4dÊàc$,)#ñ«d\@sö¯'øñ·k²_J›_"~{šê:èJ²¾‰Rà@e‰ìÐÀPŠ-&دìèuQm7 Œ(ãRrf›Ô£~–{è[N +íZ0Käyð ÍUè!Óg¹õlu¿šŠÕµ7‚ÅA[sdE§ñE8ø”ºDÀ•¢ h/»`ÅÅT¡‚ ^?+ç¨è…Ok°>{DÜõHeˆàòÌ•(NÞÙw‡oWx:×Iè- +v’ˆŠ1i<üNIºIs ;7Sx·˜{)5òó!@Çþk@LSÇë³ïŸˆùøý4€¬7A¨¦a“¨?ß0o£9Ç»}eߣä!‡íšB8Pš-Þ6ûžd¼}†*¢¼~©ÏåêtíUÿåØƒ,¾/Ôä®Ãí_×uPL>à)oyÖOÅ«Òûb‹éQØ+Á/™aÁöî Kº²(*°¥Gc5¤IŸÇ7•Õ½=hÀ*§Ø5uaµv. já·“ôK›Ó>Nàª,}‹ £f§'£¾\@Áè„".÷¥=jl K7¦%YP´9„_£²¦Ÿ¡6£d™–(™CæY…ÿ¤rÙ3øm¥c#ëÀ ¬¯³™Êq¬¾n{y/‰g¢wžIi$¢(PQ¥{ÂXÀ:Ú`á¨ÁŽŽ®Ãࢧàq¸ÅF´¬~ [Áû…„&qž„Œ~Hç †c#àƒÜ)÷ŽÀK«~Ê+¬³Ð¯dGËQ;ÚUG³_ËÁ0n?ı~•öÃëÆ~7OZ§‰ aÏ~|±9`[™BH®‘fu”cžsÐÕ Âë>¿«ë u>µÜ9‚Q]o‚K%>±ê©š Ë)ñtۜŞa ¿Åx7Þ;®«ž€xñîÞÑ?JYfKåÈ£t~FÚ>0àiõ|U1j(¥döiÖ´'Œº«îH¤—@à¦Ô¯t¹û §+8´¨'hŽUæèg™ÒñÙÉf¥$çA…ŠaT,‰Ê+&±'`±ò9 >õJJPšêYuô@[ ÀÑ´!^m4r L?)+ëÞRroª†èf ¼b}'# ¡@²EÅ;1}©—ù€ýMà³ûîßq‰å ä©9yP05êp{ëß±5*¹¦%§ý§Ø”uÿiƒ íùŠ”µ$Ë€è©ÎpßèaAäb“å8<óeÖDÆOñA hXKݱ­0ú‘ì©d%ºeÉ`ó‹ÜÒË éëÁ‘B›¯ ¶kO” S–80ŽóK¼&çOdOUD>µå½g…€)À~ ¿ÊØÓÇÐlCeæ6bÞ”äp„?Çà¥?ÚW“Úvý_Ÿ]Õ¥äØd]Þ˼ Ì~N{%ÜKâ:ÃÎå8Îôýxþ½¤ón>¢îÞ•,6Ÿr`÷22?g|l¨á Î °ƒº€{pø +È +"æªvÃ<€„†ªÞé|qÃNFÔEeÚŧwàJô€öç:WjõRUÅ©¢>®I¼­(¡Å»²ŸÌ.p¢gj5?Ÿ˜ßbœm%²“gYâk›¤!N«ÚþÑMES®)[|Cvû=€%•°)Ì“ ¾ª€ÖCº¨Ýæ×¯òû]¯otùïð@!*ÊÀP e’™Ù¾ 7T ÆléW?Ò`>ž%åǘe¤Ôûc‡nZÎTÑöt¶(n­ñÞîŸÍToàëßÞ¾ÃÐf”O{‚ßDBÜÑXÉÇ)Ž“#¾ôñÝÌýUlÕ0#u8†ýòE+ šÜHÒä–v>¡äÀ‰nŸ‡øˆû5ÿOqö”LkPåÀCs¶«´%*R‚ÅQq‡ا•TJúFÜÝ, KsHT¨OÄ4—Q~&*ôìÙ{b˜ˆúíå<¼ø×³CŽ-ýZ½åç›ï©¬ÍÃM!£¡¤ (’‚šü³‚ĹwëlƒÉTO‰½]¯£ê‰Ê7Ê:Á‚(uÎ#ä&‰Žˆy"ô@¯M„Žj}DàßW:æÎˆ|0ÈÇLÁÇJncªÓÑx  EóͰÜv@a&6‚íó)ò½ŽâÕÔªtˆn¹C_6žeú¡KòÞûx2,*/¢a‡v–GÜÎc0t`ίcq¨©Mߣ3G‰S~¬nݦ§<·GLA6Y×pZÔ5Dý?‡}†±\';˜åêPc0BRŸ¶Q=¤‰žÐR”‡¢‹ça¡ÜçI6-ŸƒAAº½„ÿY_åu¥ˆÄÎé”ùÐ ”ý¿#æ»…sX-i*yÖ8.p $°±HÜŠî² ²K;… YtؾjLq]Wvé{mh>Ž0Ï¡m¯z†wÝ»LUË ø  žÝ~dâ)ú°Wc­Z¤ÝTÔ{Ä~¢ô¶dš·ÜlÔvmL>”h:d…†pæßšV?"ÿòZ¥@͸Q¾v_aC­Ø>4­-˜Y»÷[ÚE¿xJø×ˬ™öVàŽ]Jl‹†G_B-# +‰EÖhᧈËkqÏÝR¤.§ŒDÝY«z>)N 3÷“lŽR +û=Ê*æyŒ—bÛO[íÚ…EDˆQ!ØÀ+Ì9bœC¨8lQå0öüŽŽ\©AÀñ}U¯q.RHÐ`Ö"d- Q™=ç ‡Õ)[+%ë»tßD…ïÌæÅéõø:îó®~£zDÁ1"¢É“Ú¹É(ál¬QSvh ÈÁ@á Ô›² €XžÏ+¹S¦­&wîd×â²ÿ÷j‰¯¢˜ÌŽ  dD×zŽ/Ÿ#"P*Éä×Ï#,íÊ^€*(óÜž_[è,(k*B_„–^-Èæk†©¢Àh&YPGç¨Â¹rßoç}gõ… +ëù™Û +{RÞDàAz„ïÝ“P°ø{€ëQWÀbài¯Ï q"‚™íì‡n +­#¨yoŒ¸*Kí’<¿Fu¡Ê€ç!9-%O{j4e²âHùˆ§@§–u«fTÓÏhò‚1"¢üÌ”=FŠô›ç›ó0à/0RdæµÈ‘j—xõMÀÿØ×Húy|Y=d…RmÁRyP¸+,DÝõA3ƒ©Ÿ/އ.bØëøüEtŸ­`šJ%1ÕÇ°Õ Pß™oa Û7ë"ïø›¹Ìއ(iÓîÓÍ$³½hàM€7£!#rƒà|‘ŸP¦R‡¸‚÷¹¾¼­Æz3ꦇã™ÜËBN³|]v<Ò#ŒWƒÃ ™ +ÜBϧ¼žU)xˆhªoß³‘…x*ïSæÙŒW%M Góá/Ûã—íWÅõ- +»3‰Š¸Ï¹Ñ7:Ž8š ØC  NÁä;/|@îG“¥Ç2Þ£òèþhë‰'È‹´"ðòV¡>»@.3ð€´¬#‚–£V)Z¨¦z¤É4òÈPüZ°|è+<(D¾pÙFQ¯ JÜ-Ð2HpI«£Y IÇ0*§pÈ֣ƌ& ›™ŒPhÐŽVÓþB×"¹Ç+™•C‚O7<ÔQ¤!õ`"Øœ“¬@ùÒ¤KëˆêJ††X>Ïïj:‚0¬ -ûL¥:N¢E†&­†4_@…™RV\ñ"ªÎ×5E;#ug h@nt*z¨Ohñ·è㸠” xj²ð:šÞ|1‹Æß¤YÐÃîŠbO‰&±ªz…›Õ™»tEâ™ôÖa>£ 7åkD ýçY` Sú7çAY„ž%ÇFòŒ½|s€ÚyÉÚ9ÍKÑþõ&¢Jó2É×Ü/Ö=>(Y6^ÖÏðÀY)^(è ¼…¢P« ¡jă´cˆÒÊL–¸*G_£:«ŸsþÈü`åW›pO1‡ +—"ŕυ|å¼1óÀrâQeEŽ$ÿpîç {Ïé–Ìž_Ñço˜0SõñlM4˜Ð¹¿Xq‘J‹ªWýY­ˆƒ .}Sêcb&€tA ßÕ©–p)a+‰(—¨¤ñ¹=‚oBw‡Ç +¯ªÑjÁúêð%ŽYu0Ö1íö‡û²ˆzη(ÔÈAÚÐc[½Q=C'±gòš¦Î WzNξÇÛÈóèZ÷еžG®0ùl‹W–•…êMõùCôÅÊsÔ”4T|V»KÅgõ3zß–:Rß’‹áî_¤NŠö““ƒsÅ:]9»èþ ¸EF¨ {'t{×Q\3BÚ\ŸýSÑ”Ú#C ¨¯#j_ŽQ{6ÓcQ]&‘‡ÛY9+³áùˆ“ðl¯ƒ¬¼¸ØÐP„oXñ«E@Ÿ +4ûŽ€<@/-0˜û²‡?©ºýˆ8x¤Šs/ˆr=J¦`Ú? Íù[â¤àþYî_y²„Glÿ9ÁÖÿñ;4÷o>þûûóËÿî?üñÿëãïþýßÿ×ßüéO¿ÿ—úéïÿ÷Oÿù7ÿøO?ýøÇþ¿?ýñþô÷úOÿòÇÿóÏqÑï?ñÿÿþŸÿ›?ýþw?íKüâæž×ü +[ø¿ðß{í/3öV|©oØÃ¥pØ/cû|4v!ŠÏïÝ;˜˜?œ¨=-hb¿ÒoQDPIÖæžxÓÍ«ņPfDßIªx¹4÷J|”Ä÷°ajvö‡æ8â=Ù7q¢x,÷öŽºrÀû¹˜…IÛ‚¸ÐÊžÀÓØüƒ²ÜSocǹ͡èüþ4"A¢è"ó–¨*%@0?ŽÊì5Îß=ko¾‡ ˜Ø_ŸiWH`o° JÓm ¬(è¡Aº:Œq~´@‰Pª%øÓY†õºÉØÓ1ž½,ç"e¹ÚfÝIŽS{líIŠ‹e’²´§ÃÎkØ‹å^P•œ­€ŽN˾áIš!0Ér×àRì’|-)ÌbI„Ñ÷³Âˆ^5¾„“Ä7Çá ¶OÉó3¦Þ£V §!› Úãrÿ2zX ”'íÔÌTen×½R]IÝßâû Ô¼ø²IræûYhDÑ`¦Ÿ½±.ô¸PعÚ%;½+jùˆížÁÀIìÚÆ²àö’ ×Ø¢’°EÍç”ø®R@˜Ð½ßâèL h¬âÑ—žÃ*]›9–s Ÿ<©yvÁÓ€u‡OÓÏõµ…Bb5J+-•-˜ÿåÄöï{`¸S¶£ Uˆ¨Ö$jÏq§B½Øo÷#TU•ª¥5 rØgÄ0a%OP“û!IæÞ†e‹'L<¡y?¾ 8¶hšÝTí-êЉúT6¸a8g<ùÚ>*^ +~(h?¡á®ú[DQ莫cÒ¡}s°hÖx +JÔÔ:z(^S>õ±Žú6yЫzû…ð{C3iŸGåö¾bÔ}©\<¸kWjI…ÍGq“_qÏIÈVÕu*°ó‡pm(²?ã€îÃ~Õ`FëÛH©¢ĺGòþªççÙûÒ£ºØÄ1îùƒm¥[Õ£••D"XD*n)ºÉ '±•j’Üð'#e÷‰pœßÔÝ3n*%°ÁDQ²@維特2}Ŧ¤¦ØÜˆue4…Á9ià©üÁ§‚î]´ÄATدœÐ +:¿Í˜ª0•°‹&Š$Qݺà¸4‰ÑóÈç¸=ðI”€k¦ów áIëœçu~$L%c6÷.Hƹ ðF°l.Ó½b„êö)¡ÞwÀ&Çs ˜Y­\eT¸ÐP½ßr+µPͰâTT•µÕD’Í/ñ*:º*LºLçùÉ_΄î&dgŠ?ËY]Í RšŽíA ¦‹´–”©Óeb½g`ƒó£$ Jž»ðJ`Ë?Xsí +Y±”•y&sä^ãµe³ªã˜D“íä¤De¶¢ƒÍÜŠ›ÖlÀ¨Q=ÅZÖ F°Zs%8gݽ÷~?¸FýH&pAy(DEz¥¹DÂT{Ž8?™çÀÍ#Å}²ÃÐЕ÷Ø*(×9ŸÈ U¤Â8·žzCW£4qˆr›5è‰jë<]Ð~/_ê+’æÔ¬“$!¬I˜Å±Xƒ:…íü8.ÎúkD‘r0ïñö=Áa¥ðö¡ ±Ÿ:К¦Þ#? µ§v¬$}9fÓ"í-Â+a‚Vº|@a|wž¤U|ƒ‡Ý(wï+¦kQm§ ÓkVÓèEs·Ý×Ë|Ïœ³9Ï> *ú¨Ü» °J° t–œŽÂ¢[C2¥IW¨ Gg£‘»¿âAk?–•䆾Eø•*|üüX2Û7§Ž¿þRWu¯+;‘b +4¯|¶ ZÜ£ÄÏ\¿ˆ©›CïIµ1H+Ì"ºÁ`Eé›Ò²¢Lzh©cÀw˜(à…Rèpïg·W7Øoo§RÔØ)ÖÐÂ¥ e udó¿‹q%8I;8Oî-Šþ€”( +ô¸yò¾“.²(Ê7¤{xùa\‚¾DÜÁÆVÁÖp§ùæ< S°fZZb±†‚ äBÊp¯«?ÐÚøHL¢\öÞ›êö¹Òsæ¡E =%b†bþÎcâ<¾àCÜC‹±åe„]J´Ù=Qàq¤Ì£[¯+Ùíá-Q(’3§§)g(ÅÊ'" š‰€.ˆ ™"#UÏWЬ åïr¿z© þ=I)0”B)=N²Êc©B1âq™IÌ1Þö£:o»9É—ˆ¸šõ»“œY\[ q“*­bvŠ,훀c}˜ª» ò{T ˜F‰™jåSK€"b~ŽL¤îÕ 9 À´Œ©fÉÂÿá•03wÅD˽~spe¬–:XŒ¸aýÖÓ‘Å FdxYÄ…¾Dµ@'Sò5aö†ÍŽëVî » ŒN=£FE±ðXö¸­m¾GÜw4êƒHWô÷ K¸d”~0ÕwLBÞÿìö +;T—ƸeίQ™|+àü·ìLâ0ĺ´2ÔNõAÈb! tP‡O€C§e®¯ñĺÊkèÍÞ¾9O¥ †æb×sédeýde<±úÄîuTLî—If:MpNåàÎ9[tÏÏ>¹O?ŽnÆŽÓyõñ73`?]Ü¥ï€påÔXs_ëÍ#£”¨ü eVÇ…`Ævσ¨iÚB;<ýÒÃ!ÿˆs,# 01ûý&pý™0® û£äDß 7ÈÞ ¤%-óíä?g†Þš*u­ÒKo±¦-;@$6ûÝúö<Ïy£ö•A»!¢G]DgL¶ßD¬Ã`L½^¹ì/£ÐrR1”ñš¦ÄH§-ºÚÃvöU`´·ò°\ÝWGZ ¡[M¦µ{sÀv9@L'HY5X½zšÎOµ#©pÕ¿<4’q¤«•Y±^çÕ¡è +nwïTàºòíž—l’+«lˆ÷€Äûe‘Ó{ó! Ê$™ºEõ…Þ¼ŽæôšÜp“9~~à§;*‘è|°²<@+,ª%À…¶Öø&éÃjß嬫ð5 +À tpŒ3²Ú Ô}°{a´¸=¢Áº¿2Ìùuà5|w¶Æð-HŠ¿>e‹ÍfŽ„ñ‰“®Ó)EÀÅ8/j<Z*³0ë’y?ø–鈳ʒá0j3¯~r Ø!ÑŽbëþ_6„gÜ#mð‰ÌSö·à•p©^Átбñ|ÎÆÓ\û „ÿWCÚ³ç¥Ú…o•ºžé´ÙpòöÒ»"}ë±ww;ôm{Dsm,¶Ä°é¢«ö¬W3"€ë©‹Nÿ­c7B—îè5eÑõà†z"Q“U:"ømhŸÑ Ô–Ý–; û@ »ôÀ`y¦ˆ( º†•ûsK† ´à´ŒfŠæ–Úþ>?)û šÀÆûö²F-€Øˆúà«6hv¢j»çŒ±# “VïðJê›Q¢®TÈx}TU§+D€xÁ,½Îy)!ÎŽçûñ.·a!GY.œðk¾´•mÚÞÝ>ÝxÎŒýðˆ(Ô(èÛ5íÈZ~(" bF!qÁk>>K¼ÖÑÿÉ{p$®T5ŒlÚ´²AÄ (@Ò‰q!ÕGÿº>±Dís€Žž¨ØMˆ«§’F”mÄÕüíé­²'@ƒ“¦HR‡<"zt_A†­‘v+‰BMОוº-Y~ý–Ïýd?îß²‘NoÖBûÃÐÑÀÓEœô¢²—°AúniªÀ‰"0L +ÕèÉñ#=ž©21-Å("çxöî‡C†É^»Rš4Àùséò{®ÓPà»kñ k¬ˆ¢]o#”Ò‰XÖ‰z +lÌŽ@ï0­í;Èw³iTÅèiGe1¯åŒª/N\ifÏS¦pÜ"ÙÈ{£¶H&ð@Äš©û ˜%‚.f6د¦2O ‘î³Å&vŸf'gÖsmK¿óÞ—¤t‡Î9ˆ…ñýô» '“|õk%žìw í;©S»0CÂî¾ü=Šó)@Œ_?3ÔWâµd¿Àk™Çóú3$Þæ1î‰äÜà9¶sKaÎ 2«h1êYñˆ»~oì—NŽ@(öƒyØÖ)wÝË{Dü`ä"{=ZìGûî<¡ûæOŠŠ=ø‘0k¯Ùèè}6—^ ŸÏ¡ñ‹¨ªõkòõ/ô#úˆä~iƒôøÓ5³’5ÿ…N=ƒ› ¨ú²VàçS߃(ä¢CÃÎ<ëiÄ©9ß#@@æ @—þ肵ND¼¼;Ó¹ÝÞqó¬mf‰»a ÓΗßâ ~Cûà¡ÂfÍÀÓݬòLÐ&–Sù³^²€ʤ +›¯§:€ëC5¯…¿òVæ1œ‡<¶)Ã4:Rlë{@L _Ò¶÷Ó Í&þʾώí›å¤Þó}p´3.Âë-Š¢9ë@—£Ÿžç†O õZˆöé÷Ô¸ÓGrØ=pó7¿=X8[0U 2·ó€Žô;¨ô¬sd{díˆ?À¼`'¨U/ô»$ÆJì@<•iI‡zú<¥qPõ”Ægÿ&¢•›)üqQoQè«ô *C¦„¢¾XúA¸ï‹­`Cò³b·|lè‰Z¾}¨»iTrO°S’“®Œ³]ß&ãC×7~HR6ºDàZ³ õ˜ØœÑLáþy¥X,;ºˆzH&÷&¦£çá´D sìOD¹/ÄérD¸§æ^\¨ˆPôËk³Bú!Dx^r‘íç—ƒu>¢=lyŸµÌÌ +‡ZÐaeÚbþñM J¦¯ï/¢èƒðŽÓIr:zô¬2±e—Sø$½£þ ·ã-â·'i*‹ ÃÞ eÊZoçAp™Ââ“u±LKEhë¿õòz{¡~q ¢0\äF…m©xHÎŽâ(þ{Ó~ŠeÏî¤ϽG¼&h+@3½ñ·ó Å [G-†÷)—X¥½KM— +´ß‘¼Îãnñ¸ûíº7ØòÚ8=.`_ W wwP­%€gW±"Ñó\ÈìU>ÊHá’¼îE¯ Å´}špy© •ò¹aæ"Þ· +œÈ÷ä×MûqÀ9Ÿ@žîß-ñ¼Vý®C´7 DDaD1AíG×O†»7é5u¼’œ&E`^”¯Œçx*0tîFí- +é-éQQ´i­Æn:3 ª 7Ùe ŸÅXŸ!ûîÅ$³wóYÈð׳@}ت “‘†€ÍTŒD{m>‡T‹t7̹„Þž°Pü‡Áìà¸g˘ï=' ×_A›-ÝQ“Hd匄,}eæg*Ä¥v¯gËšÑ +ð¥2Äݨ„°!pcÊÛÝ“ „ð§ÒÞ#ÕœÁhCìaRߣª"¹bÜ +;íÀôré©éïw¨¦ ÆvàΕޢMnAÖÚ"ƒ%¾ÿy€– @ +Fל®2]ƒÇ~égDä¾n’548Æ:l=Pyðã1ÐÐ<̨ÀwêñÐN™€ÁЃI¯=óe^£ˆx£9èj;jÔÕ+ˆtÚÜ?¢‘ÁmY–-q/ü5»É<â–,ö•n-ÕjШZ"‚ñ Ö’Þƒþ4?ø­0ºËÇj9Ñx¾˜?\‘o†üJý qïI³ˆ€ß㘠+ûÝî7È'béïüϪE¦øÌx€ßœgòŸ4šìý±Zs„”Côì¦f_Qô¾(áscAg˜Cú‡s;p4¨£’]t†Y²°wÝ«$Hí 9oô3£·ç^€=ï4³†“í^œÆÝ@½Eá%F®‚–˜iA²>ìjT[Uò+7µè…“@GÁ[Òï"îV FuR +»ßœgé¤k—Š“ÅäRÒ{ÄÛòÉí×(Äp$9àÌT#Il·iu8qåÃ"ØùïÌQI‰­CªÀPpŸ|i 5Ð&”í°ôbÒ¥Æ^vAÆ@ ‘j2î¢&fò0Aš%º¾I+tÄ"Ά´˜6´üs5Ï®}àªI÷TïÄÒ 9’¸ +‘èTT0–@[àáî•Bú=-î*{¼|‰ÅOä´,J–,·˜€¤% l'%{Zí±w¿üsôQZ”4´=á½øúÙc°—e¥BˆÈˆ=9Ú+¸hÑÃTÊCDCÅ<óz½ŒÀ ¨HØY¾qEšN ð†¬«'9šÙ’£ØaâœnúH[ߥá0¥P­Æ¡ï ­˜í-êÿñ¨!ϰ_ô¸¿0`醎27Áèda‘ôÌ@ýNÌW.îaÅÂÈ6ƒR QØF†>¨MûuÀ‡èuÍ šl¡î•€Üû!}‹¸ÐÀ|uý‘_˜Ѽô'ÙÁ‚ìAa0î…WÃLÀŸ•íÊŸqksõw‚hŒ§Œ4A¢SUzAUÛŠQ‰ÊBËunh™RAaLýî±0a òüJ{‡ X_ßüaÿú­ŸìÊ¡LÇ+õ¼¥Å÷tE½`Hâgý£‡Éïˆg.ïhÉñ‘¡+ðþ |~¶Š›«“ÏB´xð-Ïœ;S,j”,€[uZô"ÆÞ@$ ¦Î¯†Ï)µÏª±Çøî9ð.šM£ÀhSÈБq~BÓ-ØŽ[† +b&¸‰Ýú8ZÀ;`Ýcj¯-Xá*ý"º:kˉµEE³ëÅ[Ö³*Ⱦèt¼À3Ñmê“‚W†+Q¼ƒ†!蘇©à_=O +¢´Z&#8”ב‡NN O,úªéQ«ðžá/þD³lÊq¿ç>żÞå‰ìÄ1æüÓÎŒ¾ï†Y‚'C 8¬ëãÀî­†vEDØþCPЊ=R‰ƒÈîºOe‚ùõ¼hê,¦æÁ§kDDQ˜P€ œ4Ù)v¬×âÚ(× +w™äGKYÞ8K #Â’Á°T.¤¶ÄuVÝ8&9tm]‹—:<+'¡Ã|’ºnÃ@¹"Ì?›Ï§„K¨Ö‘äkòþ©ô€„ý"ì:íß—£GÚ×bËFç¼ûœ•Y#[í¤ÒrÂ\Op©–|H'–ð¶áAn÷¼ó´<ÛŽ\@á7 Ju˦UQ"Öèñ¥yq%sAX5‚Þ²+hÈL»æI“&. µ¦^Û#„GL²ÑVªw3¿#oåÙÙ€r}vh"·´høíÙwKÆ{;žbø tB|'z$Ò–0èmØpÄ\Öí#Ü' ü‹oÆ×Q¤ÑãðÝ£ØÎý^ÊÐ/æïaÕ¯bˆXªX‹Ř ÈþÈÒ–Èw‘±·3ìy¤Þ¡'ôPÃ…#zû0PíM_uQ£,%=á4×”ÍH€ÃŒóä<,+D€=%"å ,•¸ >áCˆ òÍ:€3C…eµBp§R ‹-( +ÄNÁœa°5‡äeï##¸ýãpû¯øvÑW;BŠž MhJ¡ðX¬6[çxPôaËIF$ªvµ=ĻƂŻÖíPà—y+õÅûÈö¹ßf¢˜B"ŠRöìÀï]4d™ÊšºØóãÔ§Ô—zx +¤P°q5Èòü¼fnI€g\ L¢òŽí¹ËH‚Þóq¨òAœË#âqnW  +ïÞ~ÞÒ‚ŽUÜdÒmë”ô›bÜì²<½Í}šCºÅŒª`“»SÓ«…UÆ)x8Ã7Ѫü±p¾(A“½Oßxjº`9|ì¾¢¬ÿ÷•‹Þ¾{Š=®•¢pü® +úhv†ëíK³ó„ÀFÅŠ)ÚŠM,ÄäÆrzöÄNÊÀ®èÕ¹ªÃ‚ *gÑ›N²Öç0R"žÊ®¹šøó ˆ”ÆïRŒÊÙÉ"p3“^H^6 ©Ç¦0ƒt‡<ÏöšguRQ1@¨<'6ÔËŸÆ`vH¥‡;ØÎ¶[ñ¤Áµ™yœ¢ +{roô9%*¸±ówM’îù“ÀÁ½f1Ýgk6­XA"â¡+(u§E©³ëòþrÝy¾©À„Çx[nûë#Ú {G|Ĩ߅߉Ñ-±… +DuLR²í(† 0 Ëc¿åÚvïE¿Çí‡%¯þXnIhM×À׈œ@ eZ\yÅ<6ì`ã»,:·üyZ ƒê0G_C8&í";^0 C³Ýâë +;zdÌÉ[±–ؼ7; øIÐY(Weûà¬k¹+€ƒìˆo/#Ex(9Ï3¢U‚º¶};trS$Å-*EðCóAW²EH“9oâ¹âHÔЛmó$±eÅZ'Õ›€…HSô0ôPs­™BòUj¼` €Åþöh$’Ë®VÂÙ Ã- 3¡rdU¦ü "É$«"},)³ýœÏ Î[dñ_²Þ¤oÐÎ \_9ÛIÚýR5fB Ö~H\¥¶|¢4ðïã[“\Í5£hH#„%â‘ÎÓýE3ðx˜ùY7¦×®¨¿Ý®»JG쪆ä'ùc ÖaTËÁUr`Ù}Æq#„ u%æ@œ·óp'hºÛn¾8fsÂô’¡i(*ð] E‰¤ä/'7Ë} BYÿ2 9A6Òü¢&{R)Ô: +­h@£M ZÝ ü)˜*ý3ú»ºÃU7f"Åû"IΊ–t½çñ¹U‰áªÁÕ¸ŸFA%¢hò%³DñU-Ê Ê×ac++š#Ô«Hą́qÑ®ÄÈ|„!=é òŽrÙq%’k"J(^ÎPóæKÆñ'¾Q*:g«¢±Ô–èÿµwÛµ^IÏó®À÷°8¬=y˜4‚À€ƒ9I|$m0Y†£Èݧžç-ÎõSZÐjHhýã›$YõmÞM=½˜äôtö†êYmì I½‡“ÔÃ5G/~¯ÑèKíˆ&’ž1‰iŽ4~‘w( "ûé ¨6·¨£ªßæ°Êøº°Êz4 Tü„°|«Ê¢ù‡ƒ.ŠZO¡ˆj¶ZqïìÙÉÝŽª}%ªç>PšEFIÍŠGÕAfÉT¸¡¥¤®¸;³?_gZb)'C_y—éI„ê J‹ì+ ¯¸­ð&Ž˜RÅÂ"¸[€Âo¿$x¤M>! ©LÊ â)¯ù5³úï·‚r8Òˆˆ_ï§XwMJ™k€×g û…Ó^‡ró0¥ÊI-×UIUP¿B5í†ÛMó¹Éiá®2"n‡@l÷Á|¹{}ö£g‚’>^‡÷1û‚qÓV4Šo55{Àc5uß½e—¬À–H‰~½ëD +É{*š«7ºæW8Õâet7 kYOµýZ3gʦŽXêhóØ"ÁËc }ë æ+ÌáFv%R™ðM<ÅZöO·jc#vZ¡ ×uTƨ¼^”%Ã~¸Åx(*‰´Òz’„CHöU¢À¿¹ê}÷¦£ÍàPð§½ ˆÓ£@Vç*Ë&W+¢ +&vKí@‚ÐËqeªÍ"1¨ ql¤rº†_g{(G…*JCžÈ_þ=œk^“™ l¹Ô¦lߣ-`–Ò˜+„®2  3»¯ãg·jQ²«à Ég¦’[ûÆÐ£Ál3à‘o¤àLª„=Ñ)Þ›íLd¾”%žšs"ý™Àêñc¶û3ŠòXÂÀÝõôÕvR¾"VÇX ô´§ÌÎèpQvÿùàŸÄKˆzZºìAD5V¡œ)ý¯½¡°°÷T¿JÞeû‡¹„Š˜rŇŸÀñîÚosÉq¤) ÚyógŒAž¬Ÿ"y÷QÏ"Ÿ¤9EW”û9ü+šÔa@_"ïÿ±ÞÉÃæøçÊ& fè’%RË`†úkÊ9šÍ>«¿û ‰…s¨Šlà=>ÃÈöRF]‡×ôgi9B8hsËõ¸æáA +W>½`@÷ Çó„²Åã,ÀX®/«„Òר"xÏú_jLÐqÜáv)‚%)òiÚü±Σî@Žj]‰×i4ÀæQˆÊ›#~ß&7Z¿¤´Õû¹œ“>†³×*$lrНâ×^ó1¯g"Ïó¸!Ñ¡“ÇK½_'óùG©nÑ.9ãñ=&Ô )û…’¹f†-ÏDV릲+htGãƒdÕ;lÇzºþL¯”X»ÛÑávü 6Ø:Ü}Ufî+¢hògqPUåUÑò¯ISZSÈNQ*üÔ”0ÈR~ *œ·yŒÑý’&LSÎ@¯Ç.#òg÷QK§Mƒ’ ¨. þ ùœ`-R!íèUˆæi_gø¿ø¨±^qá—»À’5”Gus¿Z=_m„úº7· aKNtåbŸ·x'=š‚Ýy({T¨axÐèSäãŠ0“ Ä—4Ÿ¿‡\ $ÈžõÊv;Κp?G!H§~U‹Mý0µj-GOG¦Ý™8ŽbÊä™ãÝ ‰B—yGql£†<¹Öú:)þΫyDŸÕÆPß¼Ôí¬§‰†‹«O[=Ù +úR§ë˜¬ö>Y­ÚjõÌE†ÑÃã0dwQžDD& +_ÒçÐVŠöñ9½<:(;)x~w^—}žyY°Èz%’E·  #°ð­áñµxÁ`ø r4$JxºW9Š%4¼Þ4Ú½úàdVGMUÓtOÍ»†ÖZŠ™îS€°d‘ih 5˸PÇ­˜Ç­s;Î †}i‘Vãె +IJ+ø…H8,Öx€ûðµIF”¶Ô„Ã/!-W´¶ØN®TüúWq€] E@ƒ|zÅW@«Kª®ø! +H¾ÒkÀ5óñ;’ZדZÒ(¾¤!£^oá·Ôn£CÓ#ÕCmcxxèÁuÂlÆTC Œ´“U¹Âtiv†N'!—ê˜ÔPJæÊaÚ3—¬P›è³–öT¨xガá*=Uc¡MVN×"‘Â}{˾ä\uuáèÆ¹ïB ƒ_Vú™Žá_’ïcgn¤*’ iáëôZèY)|0X¢a:^=x,3'”Æiû~N½‚ñéÀ .,x0I˪oÑÄ StÑ‘á=€‡IÊuÔ±ÒPÚI¢+Ý’|ÕýS4šCÚjˆ‚«HïõÆŸ¢Øþˆ¢Sœˆ™ˆ~½p:ˆø:“œ•ýÝE°ÒÒõªÿ:ù—äƒõf|vÔîˆàãjQ¹Ž°7•Ô8ž°EX`0s±x–½ç™Í¿"S,AËÞ9J‘4_ v-ÕÑ7 ÆÔøÆá´èÖ¬$Ê +{Бf^ü§S.Ň ‚ AT•ÉOÛ}<$À›3‰à2KJP5ˆÏp¦‰6,¤I¾˜KUÚnãœF…¥¡ÿããa ÀŒt9bèQMÏqØ ƒ|";××qÍñnhT-ˆ—ç–1¥‘Ç£ ¦ŠkNЂûaQõ•=·ûW³øÑŽ—×ç?«¯0©çO‹u:I*v°;ãA…Õ†ïÞ['È8ƪ¨48CW©¾º¿ºîнM‚îAõXäÉþ)äõ2ìêa}ežD)OC”–ÈÓ4QôXT#‚n!‹¦¨)É€þà5¢ê ›Îv"æ%‚Œÿ=ÓÁþgÑW¡ìmä ñD $O1ʵˆG£'€ö4ÙŽy¦ßã_!Å-v_©ù{í1Ó¹Ýzö«¯ ögÊ\µ[=ì.»¥1©Îg%"áD¦ šê ;“}\2è“¶€ãUtDÎ,†"3ˆ=tj/Ùš÷Y«z-!¡M›º¶³êÛ´5Éš×#¡'S0M~Þƒœ)ÌQòG©â¤a̘ ¯øn¡Š‚z a«"1ÀÈùFOP`Kª[fcúèë·,!Q!¥ Ä’\ ìdj^ZŽš½LlÁcÝ*3œQù"ÎéØÏûI1ÁZrCtXhù`à8„©ûM@˜+ƒŠ½Ô ?¨Ç3aç.#¯v•b0ö•³f¬ƒƒ¿Q›Q‰gj°}+÷3B‰ÍÞþ0‘žýË‹`¤­»”5 w;¿,ƈ3 +E·€1ªPüeÏÝÎÞ>~Tö󶤯¹©ì ýîÞ‡$>C7;…zÀluaS<ÉX4Lˆˆò裈r"zíc”£çÉâúz_èDdL‰\×<ëX¸CQÉÜt¦z>î,^Ë]xÛK˜Ñ² +Ï™ŽJ/ùC'5°#;Ò‘=D•,ø–Ä@ãQ„qLÐd¥ë‚é{t©0Ð+ÒgÇj ²ÔÜ3K%kŽ:Ÿ‚šZ*~U ç,«*Ý<4ªxUÀï×ðûÉ‘ß0 t-.{¼5 %TúèÁ¥@˜Ž*P +˃uêŒøÄI¾{¨tÎG´z×Ëä+«Ò²ƒ&´;T*7ª(‚WBZêSu$‰‡A +¹xêŒÖþk$pnõ÷~mîìgÕ¿ÅÐô³ä³ã¼ªFTËÚ…KœXN7.%'@·WØR8£m´ýlR~ѤmUëi芳|#‚C_DI3PÛj + ΟáW þ¥¦á8G€“°´º›þŠªãs/‰Ù×÷2kUŒõ6Jöq õŒ„5÷•mì¾´1Q2Ä^ä}=àõ£u–ÉÑ}&G¤Öm¦5Äx>9L +ËxàÊ„iKY*Ëçù|² ?좀ê~ÛšýÈœ(ÆøRF˜0Í‚°(Ú]Z+2‹³«e=u´BÓ¢;mõ¢£:ì…Ÿ0Qöµ=FIl,Q½6ìnG1íÜ;Ð;b¿e=źv Éú‹M ª2W²ì†Æ»ý°¡GZðº Ö›ËõÐÑ¡Ꙟ0¦Ln†{—rOûÙ/`‡À<\Ñ*î&ì+V…õO1ȽîòÉÃ1q¬<áP¡ôèÚ´’D—þÀó¼`ó—•pŸ­ES•ÎãàN¨‹¬F%„–‡ {ºZC‰àC'ž&4åS0æëL~%æšGÑŸf#ý í¿zL´œ4?á`ÑÇþ€ë±!`¬ã80ž?.LŽý©é\‰¤Û*˜àŽ&YX£hrÁöªr¹Ë|~$áóóD¿DŸÈù4å²úK:Ý?úéÜN˜®p”aÑåXBZd©ôÐKŠÝŸûI¿da6÷õ«¬ÈÈLžÚÀz@aº¿®›ùTC¯x\êò<óçýëÐQcxØ~<Æ×#ÝŽT{úÎ ž½ÖQë+’-¢ª¿‹€yöþ{ È¡| wô²ÝbVÄßã;îŸqZO’ª‘ª`åq,(÷zWëoH×›±”‹èí½‚ÝöaI²°4*_g&‡H=£Ž :H© žS¤"TþûFŒp'Þž ,þ/±{šg%©³[È¢[ÏÃjƨ@ËN‹ƒè>^ +Ÿ6ôjÆ¥@¯r•ܸ—˜ÄúÒbO)ÑcI5yÂø„ÍStYÐk]L_@hˆÂ^Eóø®“ˆ +¤Ô4§4º¦d± <ï¦=+æŠT {'¡Àæe'„š¬ëèE+ü.2E‚€Öz”• ù§AªŽ»û;|RJK&¤(ï/…ù;΃ öÐQÖjº*6©À©N+Þ+­2Jû“{óÀñÈD/~Sìñ?i8ÉfO÷ 5â˜!}z2‚ýrƒòwžF«õ‘•ÄŠˆ“„<Ø]m9=Öɘc?å@ïéà.nÏ–Vªp\G…ã ê„Ī-€ f(!þNI+-Ñ¡&s³{æDÖ^Ž# `7W •0ø}ÛÉÀ‚9 Ôì‚x{Š™o“ý攲µ¢ÏÕÕïÌáÑÿBë<-VûQqÿƒSy9 9ƇƫÂ(¶¿ª€ߊ~ÚRàî:Ûþƒþ=V=£c²—¾!òŽÎ£ürÚ1P9|1TþÓ Û?z'ÚŒV£ö£_Î а#R3î3&ÛëË#aþ`zMPà¿ù'ýìÿ…ú£øüçcxÙ}õ‘¨Á³nûE(†[=<+È}®L³Øuý#uÏey 4r‰Ò_¶| GN‚æ©„ Ú¿¼+]´JðùÔ/V.tûÊ= 8\gM0+zúv$ývrsæò²9hC~‘ƒwT³É\ÕÁ4Š÷˜¨ªo  ¬wWÏ\£,o"ÒxŒ–c(2G¡¼T|®‡‘ÃŽ*ŽKé‘»–¢jý²/:‹ý|¶ç [ŠúÄ@Œ·°#h%‚„œˆëÝ{Ë1}œ‘0x~®‚Ýkÿi "e'K$YR£PíIŒxÇi áñÁM27S;Î.Ô"Â3~YÚ0Èh ˜NÕ?«Ð‘P–gS5ÂÙáw†Ê<û¶œ‰0*pl³ZÓ a€ƒ¯»”^ŸP°&}€¶´±cFx…i;ÜòP‰¡õA,C@ +5Q‰¿¤üã¤F•¢®Äð½ÑŒc·5SY š¾ñÄëÒÒV;H3£ÔÞ€0s‚|•}T ëDÌS¼äŽGƒ(šaÙkIÙÏ¢30p~·`F»ú7LÜÀ³¼í]Ža=ânPô¬‚7À"—½§öè0ˆÞH"Ñ>#<ÓQ ¹Qr.χ± Jú ¥$H“|µZ¤¼~X³Œt ßÓ|nùLƒ4í£ô jF}Í¡ìŸ\tèUõÞŸ<,à`@EƒÙ2‹ÂûWšë ¡Ò_,*¢­ÝVr•˜¾Žgå8½ÞWŽs24ÓŠ| ø¨Dwþœ²B« ¶ˆ˜îÖJµ6”ND€ÆÈ½ËÈŠS7ͳ²ÎeŒèxoGÌÛ +>°u†‡¹–Q‹Ç)Àxˆ° ä»ÇAíé QÆÂ{!éU¤Ésd°)<ÌiEîWJ@ ×0ë??è“"­éý&ߣ¹]ØÍý\SÀ*'ƹ¼ÀÃx2¦}*ž>EZIþ€ÑNÄA èeÏNxZðÐ:’c5¸†näþûð?|þóúõ’UñˆÅþI œv‰®ág*Wâ(çùF] ˜ŽÍÀ±®¥j× íàû` Œ’Lž"ì¶„ÚXã°k1®ˆj1eã?Cï¹'=ß÷eÒ\©zܽ&ÆP«fWAÂì âQ×JB¯—½f ³#HÖ^Öב"@}âÀGä!‘ÇôW¦Eçwyÿ`ëÈ„?!jûð +`¢örŸLJ˜)tãþ(ûg³Ï&_æù—Qí@؈gµÐ_¨,ÄÙ–Ð6¦öC.¥êHÑÒUCGŸ;I!Ù&G—\·sôÌ:JzÞÔtðgq›ÛÌUË‹g(ñ¢¬3*®.S×”i½d„`ñH­Ö†,¾À.ŽÃ™‚#z(¡Ðσ\ézq¯£ô ºÚ3þ1ã0§”ˆ¢c ¡ÙÄ‚ØTjDr¶S>a"°8Ú«Ÿ}4”¦z(MÚÄÜŽ™/„óTc™®NþŒ¿vöû2÷ûpV¬Ç}Üc‰¨kZà þù²oµÃÎ{Pø¨îkh\9Û‡FjÓâ5Öàh¯èRß’ûöõtQÏ¿MmgçªÑ-,ÃÁáÏ7*ƤD]-m_w_“éy]Ófdh[LÒFAرô x¸äD÷'Z#åã\\ nº„tÊcùSçýçj‰EVc™â½çCL)Ž_ücQJ,G”ÉÈŒÚ +ž¥êñúheúBÐjy~ûãWæOÅ×T&ŠÊ¸U·:á9Ñ›¬(ȼ “Õœ¶BµieP4¢¨ßí]¾6ˆT=0¥˜Rs + +œòòLÃ=íz‘NuØ|@E÷u¤ç2‰6ƒNÃT¨óÛvíi;Σ Þõ—»%õYˈñšwü?"€ÏwÕé(žVÄ÷¨†Ÿb˜Pºô ŒL¾[-M? ’Ç}“2a¯YŸ>ó’h×ìZ' ŠãÈæä›–\K¤ÍfhÚ~0ƒ 9ÿF(ûm¢DAýv±~DÁÚ;¼Òs¦ù(W{•ý|U3#ÅÖ™H º„E¡7Õô…ÿê¯+—B_ø¤î¨wŽ– +ã¶ÑÞ¬–K AÅØ^\äBšAДï›HЬ¯3E‰‹æô:ÌñaÔ¼ë9SÌé%¯È¥2µçË2‡Ä»ªFwø^ÎÇ¡Ü 7ïùN’Ïá¿c«èýÍŒwN~š° +sïÍã¾G®êm+ù˯ï#ê:(¡R@$ùM†mó„–û@3„á¨å L%û¿ý{V¶×`{ÿžòé>þX„ -lÐX›<Œç‡Àçâ·>÷K2ð3Šâ:¸'­O•²Y‰9Z]zGh,ÐŽvšÐÑ5Ü…y=g‘ G‚ðŽ@~ꨆ‹Ç`•¢Õðï*.é¤]à¾órïfÔoîôŠòåÀ„Á2Ñ v¬8žkGQZUËæ;›¶!í̉ì¹L“ZDWvÐÙgåYŒeá8*ÕäÑ}%hìò>Fa_ŸDʦE¯úµà³ ì% + C=ž kðr¨#Bì21‰h+n‘°/rü[¹/C±Qwþ±O.†@9¾Urß6ù };ÚŠoE?æKã¶/bWóŸG}±fÎK='¢5P9Ïa,ìD…#þQJô׬“(u TÃnŸäÞÞ6ñÔ;Ô}Z½k@ɱÑ^õUx‘œ}Ür[Ürû:ú-Î¥+?Gó§¥U>¥éìóÊÔå˜êB|›Ìöëô‹›[]ÅÌ0>ÆêmÀŽÌH>¬aëÊ##z;Ús5Ç@ ÷ëD$k wO6ø;å} ]Ži«¿ptçƒwÓkdl*€}øÁ\ë-l¦òh·i»¡†u(­ ÏQ¡±5²g¸OK€¡5Ë®æºx8e¤ö¯A0‡o‚Ü(} +P^^ðbÛÑB ©7“´<Èf ×ÉF&rlGŠwÕ™@¸÷JûðÜ ¦qQE5y“·QPK3Ù[Š"u$¾2 îÙbùùÎ쯄.í¨‹nŒÑ^@ QO±¾/<דE Œe¦ìꪵÌ䃋[A&û•´ÏwÂ_˜´ž{öd#¬CŸxw}dáÎSØh#ëj¶ÜÍÖ~6æód#æ_§}–¨u¢ž—tdiÌæ»A†žÖkÔÙ1¯¹Ã3LÏ?»€ÀW—ÿºüE†tþDò§}…\¸)Ý,t¡Ï.½xª„¼_~Œx‡=ÔŠO¼º¯ÝßX'MGTÏoi qü(°©޹DˆX\2F¾Gxù¶…ߣ4Ǭ9V°îáLko¨Åz#f"dÅk±öŠ<|ÿ˜tˆÜŠ'üc“[t”{ˆ@´V”Y¢^μ3+}ºÞ±Où%èc^†XN?‡aLnÐ Žë˜ò¢,›6Es†K'ƒˆ»f0µ¶ß{çýeÖ"ëX‹¼?…&+¯-#U9ŸFÒnGâ{=‘ló vÄz^lt¹3º}¨b5+\qYHf¶ÀwáÞQ„®käL!í<ç‘§è’_e½õ½½VÝb4YÎ-hê‹•„Hªö‘rGDŠÄ(ºÖÁ¼ÇþùQzìÍàEkiIÔ#Ìo†ôT¦ºI½0í;Vþ§ˆ'˜]14¯}ÝG”\Šv¸#üG¥BÑ¡ŠUÇ8 +@ĹŠGuІùHÿŒÈM£ýÑUakòÿ?seBÃ…ø+?®ó¼\,Ã?Ô›¾æÛOù☇û ;«; ßb{óttöfXœ& ù§ºÞÎ];¿G¼ï§Nq¨,¨¡ñqœ>£z‹ÀemÙ-b‡ÙÐiÿ)‚ú)¦}³û¯Îê†çõ°{êQ"Û™Á]ÞÆùHãœ."]¸/áµKU䮇j?Däæ•“òÍúüpœWúçþ¦[ýJº5¼Ep); ºÃœÓ-ç¨û݃Ÿ•zé‰Ë%ÿÿ"kCj-v5Œ{Aï÷ÂsõP]mI'mrÝ»ÄAä-š‰ÒünG-‘£œÝzߪ•㈚Sùà%SÆt0RDFâ9†JpœecîæUZQ®ðŽð¾¿ÀÝv —&O²’=ÏblŠà-;ðØÍiÁóÐO(]^àO“öò¥ÄƒyeE²(í­^Ø. +×ÏPgLög‚s¦( m®€~ à_@̶³Ò"V’;=f‚°—é¢#2k­íþ’ä¬G‡²?9ÆêÕW:ÇJÞ¾bÕ¡ªæ¹¯ê R'Œ6V¿¿Ž5-ä¨= ýu +îƒ]©oâŠ#VÄ éèî€Î$ éZΤ/¥÷"j=€Âû†ìpÖ?¢î<²ŒßÚéÀG S4 ¾9ò 3Áëû£Ÿ,=$cnIñ'JyÚýÏ`ÌQ1‚:ó@(÷!­)·'´‡m°Óôn/ù^:K°5áÌqÿC£§úÀɸâ+^ë2e5›Íµ•†6ÈgÄŸß)žn›££ùÃqæxù»ûÝ+)bÑ@Ñ­ü€÷ÆïAÈmÀ'ÛOw—ã>kÌr¡¤ +ø|çã@‹ñŸ“LÒËØÎÐ,¿ó›ïñ›_5ž´Jj³¯Ô—j –T{9‘û‹hþº×ügÄ[úÒ´–=9­¥£V®ß¾L?ÎözÁ倯šÅìwª„þ[ôñ§äºýýCè¬6S–ƒ§£lͳ3è(³ÂÉ,E¼c0HR½ž>µ­ñÑÆ!H§Äõ¶Ê&îî'b%bô÷D+Bc “&¢<_M×Ô”§# ú:4è;Œ¦+},«Q¡^ùwJãý—¶:ŒÐ³¸¬_ìècl†„*³PRÝ™ïb UHi2ò/Ž`ÔÚÔ9‘ß|#œÇ4iR&0ˆ¯Ž©ì~§÷¯Ò}vlUïg‡>H;ƒ½ \e†žš¶)€¿ë݇°õŠMÔ"½ÞQSHªp>+†ÈqB|§ÙcÄêñü¿;®FÜÓþ…ŸÅ®"ø¾ô7»áÉß¹~­Á‘\Vž"¯ˆK”dÞÞm}bû9¥QÅb²2¤î?6yQø¡ñšÐát†=ë4 '±«åÜõ•Ç|*K9ãõ‰0Ù-)‚Ë#ˆŒ„«]ƒý§ˆ}%2¶wrø¼Ó£<Æq1½·çŒ¸j;Œ¸¨´£Ñ\Õñ +þqï£j9€üd%Yh· )^( U¤ÌyRO½!¶`Z¼à$?ö7×1î!llÇ\¶ñê‡s"1i-;4]Ð)Õ8j&‡¾xgz¸£†£j¢®aǨØ\}î8C#sÛ†ˆr§Tã–´l<²amC„äNªæxUÖ± à2@§ïËBÏ> ›(YÉ ¢;r‹—?å±#*‘„GùJt#¬žÞÁ}»EÊHd5yC‹/œÒî#ñG^¸öbӢ억ØSS`ofDìíà|ÜQj¯@„ÒªÙ(Ý 3³ASBýÔ7ËÏÕfA÷YÇ‘A%Gj°_ê¬-¶‹÷,Í: õ†ÜÓ’ÀJ*+d¥§MÚªU] hË×ICk‘%ä2ƒ´Ý 圿ÌÈdÊ,¬g½kO¤f!ólg¸µ×»ðbüFI_£öqø ã–UW#ñfëkXûq(®]Ó{Xcù‘Õe‡ªHG÷ô#5,ÒñóÏià¯Èž`&zþ¥"ÝÙËJ_Nêw8@Ÿõ‡ìVŠ]70X¯ç÷¨Úæ¹")05“j†orWH§T<êڱő¯ç3|ùÔƒ’ñQ1ÅY?ü¹ÆÝZ1bL­Ã®üÝ#(TRçïž"ÍÒGñz²›Ü—÷‡eœš7z¶V¸±ycÈp¤æÀÝäâ?ÅjDÃÀû´{+… &ÑÛYËŒ»È’¿™£½V>4Yáßø=x&êéÖhƒ´X*É»j€š6Qº!>çñ—ù 3ÜÊ×康ìË* +²%©Ä·´uhMâ#„©\Á±‚èAgÌ&ˆ§ïäùž”}ü9ö4Gÿ~IîàÇÊ„Œ¢eŸþŠ#¿â sùrÏ:Ñ­{ÏuŽtQÙ´è&鉔žÜb0wuùGŠg d>£üF¦Îi™¥™t‡®GqJ8û]—Û† èƒÕƒÀÚ×1ç:pîÛeõ@¨4u—oÓèqDÔ÷¡a€WjÖ(’õ­‹(mjôJK»«œõíÝ&ð/ 2uØx˜¯–àPu–P8Ö«°6öSpžÛûøbî x¯Ç9z0ˆàg"¢? ôí¿“D’;rºˆñ+þØÿ~¥NÉ÷Y”߸_)¤¥êGÀ»°îÀA&ÛÄ©ÉQÕ¡Á¯Í€¯÷BYæ…´³{hU—‡ÆæF'’é_U¬·õCÄ*ç¸ß?„Ñ4Å5§¿–4ýäj:ž 8‚Õšníõ( ì7¡Ï÷€ì í´…«(ôÏ(õ}è¢ïã r(´øÃ4 ÍAîZá ¾Å|ÓÖfšéC7ì +àÎa–ã¡¢”~ë3âk‘ÄK_<ñÇqೂ]¨µð炼é^f#Å›ÍÄöA»àʹЊZù°dGBê€Ò>R|x\40ƒÂ‡Ö€ãš™Œ¥—/”¾D| qT†;#†Öž8zÓ¨¨©|£¿œGÞSÉzìœÅTï·©‹ÚóeKÿ´saz¢ÅjSäÓ#VX°ç5á~õ‡`”zæ·$A +–ì]½¬3Ÿ™Š‹BtØI8ªpïjò@Sm´ëÀ:tŒ*á¶Ïˆ ÑwÔP¤=ÏÇú¨euÑÕvj¥PXa%ˆ6 +w:‚!¦ìžž‘E>%öŽË*¨+˜Û5¥c'¾o>.ë>Œ Žšæ-„ÇžÈt0r“ó8ÌîcHÏqÂÞÆ¨¼EþS9†Yzávr\©èè1®³Vÿ%ì©Á¹=Q¨¯ûø‚ò¥üR ôþá8ý¨#í’®¨_/ª÷¶³±‰ýñ²ZÖ‹çWùˆÝ?Õ¯Ÿ¶DúQž‚C­ÆôЇ/´’©J_‰E⃴Bª:m±¿ÊY ôõ(ê4ûN”0d»†kÙÉÕ)Q*š þÌytµ"€í^zRheÈS”¯óh$Ç',[{ëü9ìVþœ‰dܦ¼5”éǧâ‚Ì6Õ‡"æï °÷_ŠÒ ÝWGˆN+x…Käèlï=&î^Í3ûŒ\¥$é~ÖÛ{¦ïQwÙô’¿Gíu+Ž {ßá9î¸íÝ1uPG +aa­¸ÜìÛ¹Ž™Á8f¯÷|?jXÌöšŒº[$™{âˆ,‹E0Á/Uµ§¬Dï÷ª5#ãþ…nÜuüUÅÝïèš_ “À}ñwybßö`kÚI(Ö54Q˜ÖR{Q +ê Ê«¤üz:È‚ »¤»¡þ¡õ4öÑɦpÓçûÓÁÊiMNï.]@ +/×ωÑÅP<¯éØØ»eÉ?³ûk‚ú¤Þÿ“ôûáÁ.LïÇï‰õþ—ÿ´ÿËüí_ÿw¿ýŸÿÇ?}²òÛÿ?þýßÿß¿ýëÿáßýoÿñþáoÿÛù›÷ÿüÍÿòÿóù›?ýýýÿþæïÿ¯¿ùŸþÓþ‡ÿù¿ýýÿû_sÒŸÿâÿÛÿú·ÿñþö?ýÍ>Å_\Üóu ð¿ò÷S·¿ÌÜÿ{çKý °·ÃhÑ7ZÖW ­º<í¢èïN”8DÚõ™ŸQU5”`ñu£¾?øÅA•l¤RM¨Žœy¥®¥"^»G 1Z¦éÆo¿ÞÇ*eï#ÔÜ;©åµ÷’K8£ˆ;óеN"_ÑÔ¼ô¨6ùÈ`‰jû&Þ £ý1¢×·õEÚ}Ë™‰þ¹ÑË™Œ<çøG‚uÿ“2Ø÷Υʮ}øà¶üß;›2ÐDø¢¡õu'þŽ hž‰6QÂ4öté÷‹¼ó„(²RŠ‘ÕòPlW4?vȾ…z<ŸòT2v{úZßÑvÿ “~dtTx a«ò=U'LvšPC8u¥w‡þÎÚ†úšÁÿVz?( =#(µû¨ ¡wprà +R†.ðÎ{÷Š×’âmïnÿû«¨0¨’R[:rZäSÇû· A;PÈ¿Q£à%Mìk|¨¡t u™¯CeÀcxRE"öߦ;©&ô¢yþ$b@ +(ŠõÄ·s¦!´ ûÚ¶•Iòs8(•'£4飄áA¿ÖTàÏ1tƾÕíýM>¢îÈp-惛W…¶?(›)°©]宽£`XXî®û×C¦0Â÷Ï„$6ûõá·þá8RPЫf™Æ]©é“Þ1ü!â§çø#Ôç¾!+~“xdÒ-È6q¸àùÿÆûðš÷ë²qº®€WãE°ÐaèÙeB§`P¿WÛB=§¿pj’~#°Iú Œð½ ‡(2_¨Hõœ° ì¿î ÑïRÜÔÅå]©GhÜñú€,GÌoÃG€³e¸ÀÐïf"”MßëÛÒ‚‘9¼ŒõŠ0± ˆ¸×Œ£Œ0qT3‹Ðu¢ê±Í—_½kDEhX=föu$Àî¸ÛîˆÇ9Ç£\x[Ÿ.¢%FÓºŸó§ãTdªfwÛ‚ËâÅ$c¹’±´ùºfÞ1À¬>©!ƒªývœÔ§Qûí†æM<Õž“<Í$Oÿ|ö¦Ëáù·2Òì*Æ´ëžu3‡ +‰;3T›Ÿ€u©ÛbZ(ÍkõdQZ –Ë»DÉÞ€6=(#>´\_{™öÄg£"‹^ÂÇÚ†é`ß +xf@- ã®ã²ÇfÄsSÌîÂí¾r|%1Ñã(ºÝ ôâÌâ½mÈ…?Ý„Æry´[#bÐÿ5B‚² ÅØø@Ëñ<} +âSZÝóГU ‚¡¬D݉šý*Íw²Õ°Ð÷;&C, IfÁ”iöê”-ÉKL7{ŒqüáGŠäƨûmÐ>ú.ÐX{D#/}L)’×+BÝ­y(ÅLñGaÕŽgOaýVRýþ·¯A£N°üäJjXèΊ~Bþ\š×ýÃQ»~ÀC‹UIÑu˜ÌMÆíÙòë8ÀÕÌ›hOÍý˜xz~DK„s½–K(a—^O®äÐ+åëùEVØU…ÞKIúù- aßoZÂ0LÑ—³X£R!­æ?zEþtÞ¨†ˆ Ó~¥ mTâ¥wF†’Óß(œ}±è‚uÖ‡u?Æ•Ž¢Z„ðÆ÷ªasw&²v î¬U䚌/./‹s&bØûϻͶ P34O™™2ãODWPm_þ®ê¯aë‹ãkùHé}zU+C’Û]XÂÑ‚ˆÌqQ^ÓߪÒ.1õœ´<.ØÜû­«áØRèéÇ +ë[Dê“"xp¿—ƒ.ñÇiM#}íõƒ"t Ž=ÆEDÙ¯ódÜÌä‘§iɃ¾^7/¢´ü¤ª@>B +µ¯è E­ÃåJ@å]ÜÙZLù€ŽN‚ÁgöºQ†jŒ"×Â<>©_örÀðªeÊIÝäì¯L@ïë÷ÀT­˜öæ­ˆ¸@nÖñH{zÈb˜›²V,'‰²Ú¢"–Ä„†[Œ"r,{Mý!à9¶”l8oªöõÌh ? +P=^0ÒE|éJ +C–1XvA´wÜ‹qþð="«U =·í]lÀÇqhžØìÁóO»æ¡>ïÄ"Ðe?%šÁÿCt9æqûGßyóo•I,ÐÖñ:†Ø]ÃìA-µ³È›¦*Äh»©?ãC€oe š??ÈÉ\NLF)}öŸÕlk!£ÜG"IÚí9k ׈µˆö¿ß!›ÜþÈJÓé«´ëž 3$£/·¢ýÀ§rÚ_tó13®˜™×`¤‰²uQÑ/gìä~ÜX¾ö™ðN½0*eˆâà‘ ++òuIá£ÑXðªaš¯|!÷wÈ×%™åÁ(ת^Ó®&u›¼. ºù|ĺN¡|XŸˆo“ae¶¼ÈM”ÅÔ²ã·?N‚ÞDÃC];öSØô…J3´{ÜÛC²%${ô%,ô'naQÇ\˜ ÉG° J‹vÎÕÉ}Kh:$lNà©An#.JêÞ„tGÅ€t—)cäº/·2¢Ü•®cO‰&©‡*úÉ3ÍžõÙb„ˆ»$A«bš½ÎžÏ›\QNëlÚ¾”^æ +XÕ§"Ãûþèª + ö“¸]ÍrëóMö AÓ똟‹¨ÒB‹i:ÖðtR^ÍÕéQ^+6W]O0mëê2¯÷óðnÒìIЊy¨‚™Çc6΋1êû–8Ôa_Ú·s@ÃoN—Ñû5_rS£Å?FÐÖ¨¨“µõÚÓCúp¬dB¬|zöX,AÝM„Þè;]»r¶kúë<Ç5òŽ"jýÊeWÛ.36ÛÕÈ€5Í‘ý½þ¨~‘Ó®Ãχä>ó:%‘ß…eö®©Å¯ÞõÒ‘¦›™;Èg„¸äº¾~ˆ¿ü±¥Kò"ÖACÝrÅõ­‚n¬Û¨5OÆ·¨àož©ßrývzQ¹ýpœ^T¢Ø­Ï +¾rªøHö&ûLrû¸üŽ´°ÕÌi_"!øðJ#NiõÿØgZ§0¬ˆšmaªèˆýKÐjJ9€òd퇈 =™Çò­)Pýý8Èøû#C¶bQƒÔ PãnÄgÄ_½ßÇë/bôR~⥌‡L̵‰FMêŠà#rm†«è¼ã; ³M²ˆÕâýûW2—޳+'x|Þ?E‹wyQ~Š`T[$>ªºwÎô=Jû‹!‹Ns¢·y8–èê¼ëG]ŸµÏˆ÷y›6Rh·¶ì_gÄMbGPþG3ÃñkôÅ»>`¤„Ø^ÐAã +¯YpÍRD¡Q…r^ÐCˆŸˆKÉGm ÅOÂï¿Z¬Ó̾x"èI‹›Cèd°Ú•Àß9ø,¬ƒ-‚)!u¸vz ZöFWbo½‰êaFJIZÎ7JæT"¯”à;v ܳ¨-À£Æˆ2ô¼QåR0KE|VÇÝNÛgD~¥@²øó®»ƒæ˜³$IO3)í§€¥9*ôÚ¨¼Çÿˆú† +l8ÂÚcqº³B'A΀ôÞQŸØídÿ®Ÿ¹gCÜÓ¥>޶ò·ã<™€è?ÐrÅÝ­¤j'ýCXñ‹_ç2C9gú¥®fÆüòzP_ÃѪït¥ÐÀAìd)„@hõ¾ R?#Þw4-BD|hÊ_k/D¶‹½RÌç?[bÉ Å j¾½ÎïQ+>Hê–£ÌäAÔÈ©¹×<Â}žYõþ¸´¯i«ë{DnÙ­¾ 0Tý"?Cšr)û½ãj?©Ù8©Ù“<Õ +V“óIüe~]%i_Þ…ö>§ð§VñlWÈa<­Äçã¯f„Ê©$ÂRļs ›j€¨Þ=g…ÿJb‡®ÐÙ &ùl¼Öqþ…‡‰éNîn|ßá{Œ1Ž<ìQuà¿÷& úÛã^è¯Â¢Òhzá)à ‘n!í¦¹BP4·H1%\ìÒy~F$ù(òBM¥s}Ý $¢ÝN£8i±õY~Џ• Hž1ö/£Pâmâ¿ð‚YIŸˆ[V +f@ Ãù*Ë/;â_…"ïx—1¾o’8Æ'´ö"UA¶½8`ÊÓGžY”Bªsâ}Ôýü_ü£Í¤–¥›­ýú¬B_@[àSÚ Ò/ æ²™P‘fֆέ]za5[—>µTPøùs»e$ÙqÎJžˆùFôñª!"æü:‘& ûû "£´5M7I8âý¸Ù„B1ÞD”a[®E:剅âs”"s¦¤ñÒ H£KEãi¿ëâ8EùQ‹¶Á|äCø÷Æ/ H¬Üqóºú`gÄÒï7H×N­— :0é£ÎÓG]J7û€äQÄoÆiÍ™°u5USóYûÇï8bÊÆòCI^ '’áŸ/P»}¿#Eƒ^=2ÙÎ?«DB&Ë$h¡9¿Žo»a5E‡®‰Sv3öæD”jwŒ•ú1ÅÚÃñ"3b+Ϭm +ÐMŸG‘´ô¸Ãè–[SMƒRÀj»Rÿ€`ßOÅÎgjìiÕOgй³P|­`Mßç +«]‘äö  y~¦"à#gû¸°*’,°n?”€!g¦H¹Œ i¨Û¸e?Œø×=5†Ìiƒê4Ù=#n𠟢À:')Õ‚Ð:…Ç€6 +*ϱ¹g(Éä{žçxeø¹ð™äLÔ>ûDàÒQb® û‚“tqD†œ¦ê¾#Ù¥ö{6"ÙÚ„s¿ì/l‡¨*š²Hc^Ál££1Ÿ£–±?§E:1ÔIe|˜ót܆vÞO9PÔ+ ›÷<"ø€riéÕÿ|æ~P°6‰ÍvÙù žCþB½²z4S «Y¼Š-u¿¸ü½kÝA«}Hû(C ‘ÐÀbªÓO„1xæ*sn4u/šQqqýÜwz¾ö×Õ9×<j¥EïñÏ톒‘É/›"ây· b*Ìžáû +Ê[eÕñkƒu°<8­ˆúôLpË8ÓP´&T(¯öö<Ѳ¯±ÎTûã˜@U{؅ǡȕÑÚªsÈ|ŠW89“¾à×°püÊBõç±y?¬SÓìNvÕÌüþu\eÁhHG‘ae8ÚëÇ¿§5Ô)¿}ÆÞ*ü/ çï?·ðZ4ê~¹Cïg8NŠÅeæZÛ/¹I¼¢â~̦–;bo!‹a}^µ2¿Eä÷š*Ÿ=èB*Üãø»ï7‡ß½]£‘ JñŠóøÄ¿LýÏ(æ®È£1¿Õ¹¢Ãd^<ï'íþ]‰ L²–Û±Z¾×ïRÙß´f¹Ïh"‚$Õ!Nºa„²º5Å”©ÏýNzŸ“ƨ4ÛÕZi<¤˜MqÛ‚ºe,k…1c…Á0€æ_Õ-„ñý¶ËÖž/{“(wô§$ÿ([CS`?úûß½e¨Ÿ©.5•Žx,ôiöVó9Í<ê²Ô?#òã|KÛ>u‚(AÙÞlyLW½Üu.þÐ,Œ¸‘Ò¥ýu!ÎϽç PÑ·ˆ?œÓ[~ÕDA=T +“ʰ‡åN33vyPJGXâÊÄ’úz(2à –H/f‡õ4Ä•ò@2iü¡„mSÂv=ýðŬvÿu)"Ôâ"¨  ÇT3•zùŽr8 +†Pªê|å†Ð´iµ +êá<ûŽs!ÊfM¾!`¤çÀé;"*ó9®¨þ_gr›ÄÂY $ÎI#%+÷ÌóâéµÉð( ‰‰°œŽc[xö ˆøz­Oˆ¯û @áD /ÙdŽ-f†Âvô÷.y9waŸ‰i5n0ý‡ˆgÈšDٱݯÁî_D¡Tñ?tØöŠ©¥5I AÐê늒,kˆ +>¹’ªàÍ:¤þpœ‰cñTÔ/BŠ8ºÙ}@™»Aþâ³hMÖhM +Õ‚ÞµÅØ7¸¡@ß8÷ë¹€8Q½ôcøñµš@ZÙÜ”aû~d[n¶/–¿ýñK?½Ê²¸„ŸÁºÅû´s»{n÷ëïMT‡YÉO]^!2„Q)Ð,술AKÃJ¦p'\ë9“‰Í3±»4Bg¾EÂvÿ:SVì3zSÐ >ÃŽºÊ¹b¤øÙlU2å1’Pï”@êV -c>+ˆÓ fùb$ð"¬îwo€ÀãoˆîZ£ÌgyàIÀH@ ö`ê0‰Cö#€:w¥œó| R"wôHä[óHþ?Ç6^å@òÊ*€DPÀ~x˜i¤Ø8Zœ:o%ø¾e„ ´wß)â~ˆbvˆV<–qÅ.;”˜0o©Œ×°¼(÷‰\H8`pkjZÞ4ôy¼Ì5j™0‡è!Û+MzRTÖË[ê1é`gº»2"9³1šd 'Ï# MIŠ)´íJÊD‚ä¼ô~øôÓ:в*xó‡ãÔfÅð,ˆJ͉l`§<õŸ¼_Âo—n}çLQOl ÷âá\$ þ}-;ß"/’x %¿“*÷ˆò)mò0Þx±iM=¾ðÝÇùP¼1s™>ýs{l v)GE\† ˆÜ´Ó ¾(¯½ð!ƒx2ýèeÃDEÚÄK!K€Í¦ŽñŽˆómÁšKÁÚÆ_B‹´*hx›¨`J‘]|úá»"Nz3g ™âÓ~’C +¸£1±˜L%Œ@YêýveaªpoŒ`}·¼›Î!¹^}?Ì´þ‘¬¤‡ ŠÊúñ8;ç ¼ë|¤S¼>@U ?w +»d†çJFö”÷GÝyöuzp;*x·çh«}ú÷çzœ,ö‹%3s`6†ÐݾQUo¥,פx”Óîºöψ!^‹ukoLó¥~D•¡ErO´göã|XÈM+'ñMV¶Ša¿PÙ]`þž¥B+tð~^å‡ãм‹Tí§¯h1¦‡|úàß#>¶æt¬¿Gao/­a¯ŽrQï5 t0C$ šƒHà|üš§`€LàZ2¥%›—ÐÓ…Ó¤ðG„‡ Z`^há6à +QŸ”r™ñj̱ׄɞg}Þ¯ìéhÄ ‹‚î 0,68Ë£ñ3y^Í~+y@»í:A&?ã¬UD´+â 4UŒgü2ÀDÔxGèªJj´Q~ÛÏô–ïÿœ)ÍJ'§ùCPüìÅý´½bG¢+Æè·ç81 å÷¥åÿ3êŠ\Ô¯n«ãyE7õ>® Ú 3†:g$±Ùù‡kÉYÍD4xÙUO9Ó»øQ7àñ¶µH¢¢$ä ¶î¿ý!æïJÄÿ¤£Øç¿'·cªAV£&*nY‡s|\xÊ¥TÅóz²œ‘iH{³K3Ù~˜ÄÆ—Ò*R5ǰÊø³¼J +ø¼ oaœÜb5Æ$ZG1Hc ’0FcDsÙòâ Á],M? ó²K×ö¤`­JîäÅt4d]Ìè +0?fnyÿñ¥íe*ctBw†Í¼¤d·˜‡¦ýÝñéºÕE?%{PeçãV"ÐÊñJü‚HW g (rù˜ö峑ãOµJx«uB~|0ÁÙ•ñ‚LÇ<ù ŽáM½†D ºQàÉl´¹…*òÿЧÌÃJ Ji~¨Ã@mkÖATÍ|t—ˆÀ>Ž“yJFüX×2š‡fÒH÷9Ò*¬ò0ÕG|gE%®I*ˆcS¢É;¶€;w DÅP`㱆8"%XÅÙ ÁÎÊ’D)Qj Â&€ÆªJ\~ ²>(C«Ê¸ò¦ýˆ^Õ7s3ê:j³Fû¤ïe£iÿ„»pë'bùç—>H ÂT|SþDèÚœôÝĨØÈº˜ëvŒwÛ}¼Û®qÔE–°‹¨/Á TÊŽÎxî}0:Ñh]É»ZʾXЍ3(h”½4Ì3ˆ%ÏuÄI\]0ç1îœQoÂ)îRàœ.Ø<ìÁcx¿ÁIþõ®h~d#’`SAšŠÖ²CΫe>Á¤Ù…à *¯·séïׄZ‰4¨ý«i$£5ëü~N&¦™Þa]ꦨêÊß3²b~WÛýòÐ?0üb*Ãx;ÝV_Psq$ +\£QK£‚E 4”ÀBäÀ0 1‚–±Ýä»І«"&@Ý "t€ØCdŠø[Õœp85¶÷u=‘ŒR½5.åÎb[Ø6Š.í<<×ùF»€Jx&[`ÕþŒã«ÜIÄ¯Û Óf’ d~gt £ GãJ‹0žßQMdšVô©jþ„Rté잟 –Zów|ŽWåÞ/€5³û8éÜ”ý(LÝ™7LÕ5º'òW{è©óD"ù‰Ç„G©Á$Nз—¿=®æÀ$À™1PüÂÛ½ÞnÓx­Y/y‡Œß RÓU®…­„}ç4r ÅE‰—™·ÛµŸ¾åœ:§µƒr­OfÔΓ@s©„;Ùà{âb]Á¬Pò–ç$ ú ?ŒÒµ{ÒÿÑ »ºÃC(¨ès!z׃ý0*/‘õÌçfNä݇X/«ÂYÓ-ïrIYör°¦òve;ìJ$Jz:÷³ŽzjÃäW§¨MІçÐ6™¥åvä¯NZÞj³™û¡7 + ]Íx¹Åç ½Æ›Í@V6ä)_ØÒˆ'Îè24CÓmýúØŠš2tè !¡ªw âzíì‹ü–¤k[’š«•´uBÄë:M~U {õMêÓW‘ӆꎒ>±›š>YùŽãL…â»ù&joê÷£ô¨’‘‰}ð©{¥,ý:â¥&†(¹á(zî$n‚Å)þ|ìÉhÿ€­‰e:cËÛz¤¯–åë¸úÁw2 +à‹ó!=°èäðÄëò滎ˆóƒhäLD$¸×뀨UþefÓ~(ÛߨoÓŠW^Žø¶å(AÓVEi»Þ¥Ô¼JÔ„8:š)øjü靸6Ò{òþt¡pÅâ*ƒ +ÕôSÿîDáÀA‡Ê¤:ÖHW@1vàЀ»‹†N¯€ãàôy«÷n@Lg +IÍa·ÈjÃþþb¡¦eT ùw£ +÷ï¦9jæU÷R å¹I2vÄÎJ.®PÇ„Œâ]áã‡cìÿ¿¾|×ç bÐè+±PúıI¦{$ö˜@8}¡¨Åâª"ü… ít¡’î(°u¡UÃîç;&Õ§1]í(ÛÐØ»õ‚«`2¤8,¾8LȤà%è”PúcÝñ4¼ø•4"ª ŽÕq/kIlíéí( ³rÐÁOêaÊ~¿†çˆ5#Ø3ŒP¦öv6E@eý:eAôˆr¤n#³Bþêz­žJ¬žz˨Ƽÿ’ys"X/‰xçUø}ƒ Czy(Æ{ h“œ§ß§mßÒ¶7½ã½ÒÀÑŽO×q¤ù÷5¥Ïilö½â Ý®í»/ѨêÙeÖ8“tûjön+hq©»LɪV"ç‡äç;½WFÜØ^Moºë5ƒúòÝÚ>XT¶ËÍh29ì@"›ôP?º£ vé®òžißÍ <Â=)#.çG¢‘¢¡F£kߨ?ë:W¹€š _Bz,OyNå*ÏöÚiØ;«PQrSòEÒTl‘ zÚoÝЦa÷‰P«[iÊ€=á.EÝÙPo¿f Ï£ÂºÈ£°ËÙY® çc ÓH+U–é +ÿ½G¿„bQÃè‰V³´Q ãfTæa›—õsV~*ÎÚÏ×"X êßµŠQ¸‚5#Ї‰_ F˜}°^v€—S§Š\Sʼn0â£K¨§ÿ^· óâÌåÓ³?vW.LT[ 3‚"æ¾7>ªó€ªØÅò,€}1.ìå×q¥VR™e¡– „@ãñˆªüÒx%® ×b ¸"g ‚Ê!W«“åÞAõU´ƒÔ.úˆ³G²#mM™Çý2Òkß/ãX椗iÕåhEý•‰sOsÞg9ÐÉ[5ôýçøÐDÐ숵.-Óïè<övï—L;÷eNp†ólÃÔ¥tùªd|U-¬^ðMZÖxÿ´Xë«Åù½€—Bï]Œ-ÀäQ7ÿÅŒ–I¥*Cp+Ç‘‘vz¼ž/¬n•ÿ +Ž.!÷µ`öæ©#wŽ1å3’ï2ÿFKv¨U°seÉw\±æÄO yÍñj«E³¦Aq¢H.xæ»æ.ûƒ½KÆõÉ®ž +þÌó"‹Ô;Ô’À#ÃoQ"éIþ˜‡€T²¿Ë_U°}@¯X¿ë<¢­Í®eÏq±dÂeêõ”áÆä]$W&AA#‘ÙÉïD 38: +§5ßçS›¿fYS1!ÑÝwìo©k ~×”æ&R…¡â< qéÎWœº“W¼£VË™L®ùŠöö¸åÃ;EBua2A:Í£Žq«êý9OÓþ?õe $Tº +ðôë~#‚©ÒõŽŸ„0ùrD;öá‹çlÎÙ ÉAD¬*¢ž,>bÛ¨öà*ÿ`{<»¿öcÒ#êš•ÐLYI•#í¡Í¼Óee½zÉ<ÄEî…Y¤‘Ô¢€©O%@ÀýÓŽvÒ J›Õ/$ç(¾wÉõ_çYšïB&8d|^d£Äp¢²>L³c`äõ>þô”.+H²%•-5È~éêȹï×­Z}ª”mPIyÇÛ“¾Í«iç¾erõS ;£‚Æ  >C„_øë+d-à_ÎL'MAÏJ3{Ôl¾jGùØ£ê´Õø–¾L<à´Ñ(yõÒaò€'ÁY’±8³[©Œ]@w‰ºSJ©ó³‹·Ç^üpîg!ôÜèú „ôíí¿ç†gŠ7QÜlÁÏ3G¡6F–õ×èbÁyb#F*½Þbè[x¿Q*CîÚ½›Ò“o…„ì{pú¶Š HiqYUæ•÷æU «§?X 04Ö³¤àá‚ÅÈ.À´“ÃÐå½Í+´OñH ÞÏâNþ›àê.Ég?Èå8+—¬´ÔÞÝ–&îé)($YÔì=J- +Îbî:ÑwñªwoSÉú‚k«—Dk~ {¥|Õs +°´ýˆM«¸ïTxŠ©ž‚_hxú® œ?¸¦t@æËFâÁ9gꤢ¤G+vØQÜ’ÇFõõux÷Óæ”,_#Ì×Ñì,iN™œÑߺŽF=NÜF­<šz†bã*ä‰ò×]ÿ;\¿XÆ÷5æeÆÈ¦¬ãÌ[(Þçøw†fói-9\ÂM endstream endobj 28 0 obj <>stream +@V¥¦'^×ñbT«?GKŒÅm…Í4ðQ|pGïo%÷Š!í_fÞñó–ÌÏOGÖË%4uÆwªQ¤aYçȧš´ˆ_”Qo—M43‡}VÿÚm:èqÊ·>&=>ĈóRD!lvG ]Å,΃¼ÍMz½²øÙꜣƒnÙ_/¿ëx½ôô÷sì +ƒ¦+béª(ü¸dÜÊ»ÁŒY¹ +ì»5úÞ1tx5ç+Ùw§¨Üï|‰®×<ºO@ÍÔŽ’ç^ÞyÙâ6­ŽÏE?ºÈþ1ŸÜ×ß4s¸!Åþª|5+WÚÊûb4-ã¸aÇU~›xò™Ë“ËQ÷S°‡v1*‰iYgúì¾D±9ñŠ¢FwÔô·÷si㤠˶×Ï̧¡ãVÎ4iç‹ý óÐu8ø”›Xšòv_í[½Ö;p63:R´@Ý¢9©/…u¿@Í}ÉX ž&²ô¬‚%4Ç.x.Q;õbWLϘæ,æÑæ‰|EC>'RŒ9jv…vt'„é´¯3 eßQݦ#ØN„y¯_;îPU5j[b†çðŠpã †·Î:/èùr¢ç«^ß«(øwň­WðxÅ69 +¾`­F¶‹+ZÝöHv ›rJЩhÕ|Ö+ÉÝÓd¶|[ÏÇ ‡§GUé©:»ÇåH £kµ› Žì¹}Í åµ÷‘½Î>ŠC=Šƒ0§4µxï/-›¢öE=¦f jDºfw 8„“”¢Þ6#ÆÑ; +ˆk¢œ„P*¢?”½† J>×¢àžVÏ -Ý˧üofó1‚BÕìùu"ÆÙœ¨ó#<«É¾—×{9 y¼[Á v|¯9#­Ž8Òê¾’½Dz„&×Ù?PÖŽö·N8Í$€bÚÊÒVÎUF­ ;"‘EÍù˜é0X#ÛÄ µ‰·è×kŃî|•½Óž¨Õñ/¤ëþøM0|„ð»ë߇~ÍÉûÄZ ˆê Wx§<2WÔœ’ªúÏ”ínÔ/¶³˜’‘݇¹Ê©ŸðªYCNÆ„¢ú`“u Ýïz O÷6_†g¹²²tZlš™z6ÅïiCøy›Lg‚±Óƒ—ÂÑkó]‹Q8§yÐÞæÁCÎý‹§Iè“Þ(ï*8>Åïó€À+®¬¥%åq+dÜ+䙩¨ +¿ï±}"›6µgxK¡êJ¼mp³Øßm(P¼7¯ÀÁÛí5½H9Ƚ°Á×˰nÑÜ-}»‘k§§¢…Ç:lutL´¼q!Ö¶~ßÃ<=?™:èh U+zð;‹Œg@G6„Xy;†ÚìÏhǯSaõˆÚ .¡´·Åõc»žð0ôaב™6b½øñu&‰(4ýî¡“+ëCÿu&’.V .o $êL`ØF×A[Ѷ8VQèfr1r)‡Ò‡ŠÑDÌ\,FFïy˜?Ó÷hìºs˜"•=«&¦ +Ý~4Pet‰ PåñkéÃ,eE)DCΉ +E¯x<—áñ`£ý9°v(}3Fט‹¬H¯Rþ©‡Æö S +ØmzWLL¿ÈH¾œ˜]ãD"ñíÒçÐÿkÐ F¨€&ÅFõ.Åúe³ñ¡‰]Ŧä¯âòÜ’ ”yÞÏS<zàÈ"‘`aÊMª½‡w°§×—²êêEÍr„¾q¥àåÅ;Ud€ØüÄyS^ßà$@¢”¿yTø“°?5Fz¤¾–,á×!ÞÖ¦È'ÿ.ìõb„³WWÊ»;ž­åôÇ´W^l¯Þ—~«OˆóôËÁ/À§“7Wp¨¥ü#-tɶ˜¯·¥áòd¯cÙÙÙ»j¢Y•@&ÛiC I XïnwK÷â:03‡×vŒÄãö<ê´Øñ ܹoN·ø+j 쓃¥È j®GöKP)l~—e¤Ø¯hîiJ4êñRBûtùP3>,ÃIü+ëV|PD—á?cðÁ?ÃÈ?#’°ÿp½µ‘Ú)Ê¡í… éë®FnL= 8§å +eIÌi®·q'Û_ÚôÝbq¨@¢1 +Éú7¿'QªÌÐV›Š$ÆRC¨ž”ßÛ›> p]ÔœSíù[¨¢ïÆ +‰@]—2ý÷LW4÷èƒhú È¡Â##¾ W.E¸cË UôÅÉyÚËP•Â…Ø¢€Âü·dÞ ðqé&h4¨0bÊ4¹Ý ®Q!§’nC£Efá¥)25e%c–wņäq­ %ÊXóé‘dÜü\‚Žg@y;lJdÌ"Õ¯<åÓþ-ü'J©/þØ¡œF¯Ó×H?ÿ²ÎçLaŽt ¸ï\–ÞØZy«‰(ÚDÍv(ßÓ¶ :L¯äP©í¢«?8ÍUÛ rw¦ÎΊ ø1À¤ð‹´-ee™r“°ç€u«±ðê¤]«…uL›òj¢TÏBRŽ79«È¨~†ø˜É€(]œY§”©„„‰óë<‡OZÕòViôŠèÌ^/¶½ª÷›™‹ÆÞkÿ< +ÜîêƒöµLë_†÷Q.oY/ç·Å¾{FkèV(_BÖ— CƒíÇã‡ð¿Ÿ9Æ ï‰²¡hòÒß{†ï­VäÅL®A»Ò€¤a‘"!@h2Þ²Ï9QwµQ^EΫGt§ò8«tÐÔݺ“a¡Ç|êêª;äãƒó›©0›J.ßCPîˆ3‚¸‡$Ás¦£´[ÛQ3‰)¢¿O¾‘²qÕäghµ–Ã(«6|3±ÃÜo&£.ý…‰'7— ÄyÊfÈ%ˆê^-y&UêèCB6hÄky¹ŒVúÈpZØO!zó½}íƒ*~íòqÅI“î6`ÌCÑâÑlÒ,?8šÀTá8y7‡¨òÞ±è]G’¯ŒJúmçÉÒ§uB4HTÖµ w¢½ÈZjæïû§jðN¥]«i,Vµlnõó~mí¬xÕ¨°GŠb“!°,,}ÃÜõêú*£v ©½`‘ÇpXÓByïÆXb4‚ÍÞuX®MÃ~ É‚ÉfŽëšÅaþÌ·,RW¾Åþö²k º•’˜ üë(žRsç¼ËÏé å‹™’bì ‡ÊÚ&îºT6t:(¨ˆ„3T¾U¦¼ôQ«‘ ©ÖSÓÒ:¬ +Þg5,õ-6õˆ‘È=é +¬\TQ%Bÿ¦ªG½LËFs ûC¨±®-±â4òc.Z­’ìãtq›öäD€$Z6ܸ1½[ŸqðDê‹Sn)J$Ä¡èÔû²4‚ ”ûÆÞà @Ýî„¥õ€‰éÔ}¿è-í ûàH†™Ã¤¢ˆ!_ÀHôªŽêM7FºsÇäŠË‚«kO+SÁÄꕌ£¾)d/ØÈ³í±&ÚVZ+"‰³+GM6tÆ»úù¢mHI¿š~íFÙøf°rõ£Â­þäþª=æ°“—vîÝP®_wÝD¨Cû ö7¿“ÐR;‹( j\õ£Ôjß>€Ô@pž`ÙP0wÑW€˜akïr‚`¢J/Qäæà¢KWó`/øT¬ 5Óo—°k¯4õ‰ Iº5P—õ¸Y„EЙ«$Õ¥/ð<¯´ë!ÜÞà(¢Â&‘õRJ˜.¹¯ð$=Èî¡Äï!#R4$ ~³Þü:“Ð ÂÇ Ïi¾%PÞ!¦Ö|דUzÕPR±¤°‰y×”~Féº ÂóCÖØ÷eäªotaGþ;Ç¢sFs|"Ø\cœ½ÅÿF«ù‚9÷‹-‡“¥å£z,KÞ…JKD¼-ú +K| Uÿˆl¬[¸îˆZ›Ç®Ïý¤O²¤«¾8ÿ+ +†btk îÁÉ^èþ¸nåŽ[=ž\±«ì̉†ó̼~3ß #À`Á:þçLk±õ}©KÊÿ8@µ½•ÌËìè⓵º|K¹v[ò°„d ÓÇ—LíLU¹ûcÕOTqñ1·–¼”‰¸4‡êË–;Nç¹³!Ä«ð¿fqŒÎD·uÑéG‘gËu27_ÀdO™]Ï2@6ëk¹Ôj¨¶ÄIÝrñÄÑ뽿¬¶š÷òñRð´Ñ¤À@]×T˜÷rö¯Ãößï˜Sðów ©È„€ì ,H5-V¬tqno ›Ô‹|_ÇçaÁ·ša¸ë É ÏÎ¥Ï~Ñv“ "0ÌýÂMq ýlƒ¨LxiW„©p°<* bÌþUªèu¥³×©“Б¼_]x„=´ Üÿ3F`ëL và&{%©tI9hNÚ‘ˆ)—áÖTm $ÓýO¨0Ñ{¦DÀÄüB²u™ìD»,TóKqlyVk2[÷÷-.„`-u@Ù‡*[¯~qC˜ÍwÞu]λ–‚¢×Œ‡Q…0v…‚!\æ:ðÿp +Y)‡üv[ØôJ˜7’ ×8K¡©çõ¨›•Ò¤â+ š Zæ«5»bK²‰vív¦õ¶£æŒÀVüÞ>NO·¤Á¨Ñ–w)䶇͂®$Ä i t¼Jì|$…û*z-GDžqVi0 cûp>–*ö2þB±¼—T +ô`¿Îñ̓Ǘœ¸M£}މˆ)‚ìÕ(•gÏ<”Œšy¨ÇqŸa&Æ&ÄÂðþš ¿óOúÑÿ ôFïùÏÆîÂê£ +3 +~ö\[ì·›ræïNPVMì?ÂûË ï‘‹ñ¾G-UÓø÷õœ{ÇÞœ«µ|ù·hÓüªXO¬¡ŽTN!ëEŸ ½gE0¢÷çjGq¨Ð™À>‡ªóÙwGíS],Šk£˜VUu›!¢kñ7ªâßàt¦è™2Ó¼ÅǸr %âè”—Y/½³²´ 4÷¢ ìBj¤xX@ëP‰ v¥¨-ŒšŠª1ת†’p"®wÃíǪ‘ÉåÍÔåJÖ±m¤£ÑcVѼáñ”fpÁ!éV¿Ö¡#×ÜTƒãƒT¼<¶ø(Fƒ¢ŽJ$lZ{>=§$O¥)µK×R&_(M¨‡aO2„ð*’Xbv[ÈØl fÂ@{ |i>7X"rÇ1>‹¹Gg_{É=÷ΕEúÚíDPýÑß<hr2²x×IZÙ3¯CÝK;•þ™QXÂóÛÜ'Ýñú€îŒ~A€Ðí7¯×äjX]çRNb‘…·ã/Uö]¸3/¯X‚6KÚÞ×Êœ[¥ÊåCÀÌÚͦʶÊ~}s z&ÜŸ& %99ów‘ ‡±Ù —±º +D3®†úú XÜA_ÌF5˜Ó|X•öõ0ïÒ!Â4ñA]l½XJÑg¨@’rõàO¤â!Š^~ýbéÀé÷zÕ×Ñåï:}ihe.ä艙®œøó’ùSÌýÙP½J}à3ðpîüõ^7ýkí÷ å%yŸé[FòÓoƒ3#?tÁOdnû=¿zNƒA €2¢ó¢ÊÜØß-nT{ò0’}ˆ¸ýjs5^ N4H¬‘J;3;–P„‡YB«ó%J/aaÐ#ïòÒ°‡Mý h°…ßÄÆÉ#·¾F¤ þLJV¶§›ýÌfã›±{Ë3ELs +Þ%—y¹ˆÎþê¬e£òfêš( ãyÙ{[ÇžO)æ*)‡Äi©1<‹N²”ý³Ùæá¿ü˘óÂlµ3N(Ñ| Î +lKÎ0GUzµ×é¤B馎wƒ¨Öÿ¼¤´¤ÍÉñ‰µx`µ¦x0NRvuT_^(§W¶˜?+±h¹:Ê–zƒ#KF„‰K×¶k£̙„ _r&Í7è¢]/”õîÖì(IŠF]Áâ«ì„ˆÚñRâ +sô#ßÝçÚ´{&Yαz}UåeØ€±ô8ºÜŽ’é¹WUßG\͹¥ÇhIfGÃúP8cNbòÌÓ(Ì%ïù²Yµ‡¾“¤+;q×m—R특® O9ûºã¸+‚‹¥ ‚w"íj/ÁUM£GJ]á_ô +n2•ÞâÅ”(° ¢ ?LŒêóúš!VSŒŽ´#Ƙ‰ŒÉœ ÇÊœ¨dxÎYó/¢d–HLî®zNÐnvf³r[Ü½Æ égR¨ó^ØÙqÝKa²wð#Ðøh‰[ªÛ4]‘^R ÒJ!â^—?ý_Q™%êØîßQ€7‘ˆk4òrŠí'!†u€C`̈%]· Ø€Ô@âQ”OWÅ#šº1í|·®_<Æ‰Š %adÐcFõ8Ê_¯ì®,#šó[1¤­çOQâ××µè×þý®š{Qy$8r:t ¨"£{Î4ˆ/P¿†š¶}õû’©ö‘öR=£P^ÙõÃa&æ¬æ3ŽÐ}ÍÜ–úµŠnƈxóa ‹í !ŠÂŘí–¥Ê ýËçëºN\G žwø \ì‰{dy@Cô™VÖ©Çï¼Í®ø’¡Ý "ÕfvÔuå8©¯dŸ3ASÙK’LîGDZ]ÐEÆ߉¶×¯iX&P¸ÙÃõ…HtfØ—j[è(9+ý€ï.@!™†éûÈ.ʸ~ …);´éUøµ§Òo}œê•hÉœÕA´NÅIÔµ¹ž“ƒÓfjº\Ö#HjºZÅp +Ïñ=j…­§|åUÒ>ãt gjª_ŠéÙ)Vt=Û;q´R?#þ|"ÊÐ\h™«ìûqœƒÅDníî."ò>š¢Öz у¸Wuì3ŠWÂÃ,Z^Í3âæãi'¦QÞõÚ{!½Åy„…±•VÀx%ãAˆ»¼P‚ô[Â㌺ÉÙÑÛ-¹Õ™¦íª‘”GGTÕ“{§¹« G¶Eµ÷梛ýu&LмÔpÀ‡QsïI9“ݾÑ53 bæA ‡“R¹ë¡£á½Ó—ñª9ºåxË)3º°åƒ»«NL½2:Ü·Î&~þ=÷þÑäí{ÄáÞ6_7½Ï¨ë€€öZTϽ6ÈÉȱ骊²‘ß‹J~”ïÿžù˜`îÈãï èÁæ•øÙÛ‰¡™ÃǦ}°vnrï×±õ# +jÓ˜oREiü)ŸÌN—HݼÊá)G çhîe­¾Nd@®cÀÖ†Ðèüù±a¿–€2¸ç€2"Ûýýq`jž¶Yy2¹9Dz¨}ýdNb4M*”—Ei;ذâªh5)A <éîgJÌŠ¢nºÈ‡Ÿáªr¬¶ìÙŽÎҳē[="SUS©(±QVÓѾ}½Ä´ºJÀŽ¥qg«l—5s¶Õ¥ZóY¿j€°aíBZÅY" «¡‡éUàüN^GÏ𖌛ˆ_~ƒ`Ÿîh³ïφ'÷­â‡I=3¤ÏtTô/ º¶±÷É\7Ød"FY/” ÌÒ¥OF?ËšàÖc.`åÖªòÏÁ÷ïçOvßçDÍ" Ž’º>û-­ŽõÎÜ«„ÇððËNkAÂÎŽ|¿›Ù‘k‘&ñ[E³‰”>p2:b,NžÑ¿Q„]1×]ñUôëDzŸcgz¨Y-.:œÍH67»Šï`ó86¦wÄŒ,̈C¢/MÔãRC„;/Ï1¹qºðF‘®Ñt›%ù íO€6p§¯un¿Šà Åy9½HT§?˜ký"—‰ÂýÌã1¼Kõîé¹Ï䊘-ôkà8•û趃ÔXš8jBíëØÕÄá®Ì Ø ¨7Øš +`ÛùÝzŸ“mzâç½½•š/H^›Ù‘@4^-›£`nr»W­Uî²µ]°ÚåÒ†ZØÍK…#¿DfÐ=›léo}ùÏw¦ÔÎ+vD{FAí$ªžëaÕ"jàOcÄÞé‰`iÍæEŽÉvÜÛïÄ@×N§ø +œÔL\lh·x}”Ø` 0jòg½ !™Kß#æIHLÁ^=u£Ö‰…Ù•~ ¡%Rgz0 +dlϬh–ùƒ$q¾Yþ=cÄ~tq@ÜÜ¿þdšå0¦Ây!8Lçü Q‰§ÂÀUó½_扸Ëáöfš4Ðîï M UïjV=µënŒaá Ks`Öžé[€Wÿá0øq˜º2UéŒY¡{Z#n¾œ˜'âyÝÐ^!¯ï.v,y Ï•1êrÅ·0¬[ý'Œã̇ö"04ÕzÇ\ÇÊ/“3Äo˜çgj÷=à}¬–N:àú~ª +åðšÒìÖ”¯Yž!ØV(ZeñÇ‹Wáî{¦Ô¾ÓíwÄso\ÿ'õDÜ*èiȳãn5x…iLÍ:Z2UH³¢xH•ïלÝAms2ÞŒÒØ¦áPn¨„“¼#v½²!!g‡rˆ<Ëü_e fæk"– Ì&¹` JšJv8þXQ™eŒ8e­‡òõI€¬4]h÷gDN°bD†f¶I#Þ7´zg°ÍxžŽƒ d:<ÚJö %Ë.?FPD®D#õWoõ ñ{”(‹è]À¬sŪnG ]ðìÖtÖWŽÓýe UåÍJO5ÀœœCô™Å9 ±õW¨Gâé| ¥-ºYŒ¦TØdM Yd=ñeUN`äEèXœÙ¸jAíѯõ•¥ˆÓ›D+ð#Já†ä–`§*Ý*€í¼é¦ß#Êëk‚û6î?£4qâ +ìšt¤1! ˜B¦f=E0éòþ&-Á'¡›èþ’ØGX²8†êâ‘Æ«‡ƒ +Ç0‚NØ '‚N ¯” ˜j"pAù:A²Hc¿´kŠÝ¦íœ)Ùë3ÔG’ðéÊü«­¥žå>6DôÍ8›%÷Ïr£“ZUþÎ~¼ï ªß(¬viÊà5„Ha¡õLƒ|çgæ‰t†'oéóuÑÉËä :Jìú¥–ù“%âûÏÏF<>¾¨ÀtÖÍq‚”›ÝÿJUЯ#Û‰PŒê©55÷sFZÙ–ÈÈcz³—¤®?E¸jÂp» ØXÇÀ¬!a’‰Rðt\—9«ùìÿqz"Ÿ~ÇxÓæþlEýùï‡á½=×B'•ìŠò õðñãùÅÜÉ=ÔxшªÏøâ–Âܸ… Ýý8ËAØc$}ìðˆíÍò;{ø{xÞZÈp ×ßÎ÷ž'þUû®²”ÉÆXšµö&µ¢9E–¥°£$GݹoX3ãmϬcDoåû˜U Ö-Æ¿Úã|g}Düãi#¹vüùÞè©ìê-’5«ºçBÛ¤ +|˜0GäGjqçÁƒõz]É® ªëÑÌ!ˆaE¿ÞŽJýωX‰eÄ:õæODy¾Ü•®+d§a{G¦óu˜ÎwhKWÐÇaz]j7ñïT¾,„¦%Ü’—ÝIÅÞÀöÝ졞þÿ¬½Û®mÉq¦÷|‡uc@j€¥<.¥Ýr[öV· ´! †Q ÉR7mmA•$èíß9×^sVEî¹rŒ9™‘ÿAÐlXT:%ŸE +Tz +Ù0Ïä)½Ÿæ(kÔFY à Ù Bø›2elˆP2‘ tµb€âYôW@ïž²F€¬I@Qõ=xÓhÕcicÙS¶“ïRøf<1 F¯3•ÀݨCx©Ó÷zœ=ùôq¶™¤†¦ ôwãjZNˆ‰ ójfSLß^ö5Ùb=Xö $^“°¼sß c‰¢IÜQÌ­ólÒG¡ úq‘ïÕ”“ø4ž”Ì6ØK6£1cÁ]qˆsOþž“Ã2ú*è\è«[ÄÔÓ r‚ÃE?‹Âüb2fÏ=Î-5Î[¥Ifå ^DªÅsÏЄ«ßLy]˜ósƒruÐãYILÀ—({Ü))RÔÂd .ã°pWÂPž1$ÍÈo@ûà”ª»ïÀ[ÕìŽÂ-qVàÑÙV¤Œñl7ØÓ€ó’œiš­ŽH Û E§W©•ŒGY9ƒhÊB Y:–%ópˆ1uµçí×&š6°ÈÄ‚æønBL¹p݀לö×Êg¿—oz‚`·ø¼ùÓ¬-#W¢¦[2…~1B6¶È8zˆr0™P–²1ÂÔ7–~`¢SfÆ*wωøî$j“ Â8 qDìÉ}/—€U’É«dAC½SW'ŠJˆÜyÑH {$õ4•7´ßÓCØ¢2ººŽJ§Ì’Ó(‡¢òT¶óˆ´º§9êLÀ¡8“¶¯ÏFáHÇ•ØÊâØy b{fË1^b¢Å ‹;Äwݦ'ƒÀ œD½£æÑÐVÎFÊÎÔTÌtÜX gl²RÅÔÛ4æ-Ü>™•Õ²kõ-·¡Œr^5Š:/@"RÈ*å.øÐçƒh6•ý$F4 Þe¨ ƒãAœß.áœ-墧wþ ŒŠìÓ”GÒÇqÎ’§Ü2µ{qsØè +K¸ ßÔŒèÂîu—þÿºl:œ …_]ÊêÊNx8@MHÞ& O4@"³·„qœ°U†Wˆ- +¦Ò~ÇWÕ%{iŒNäoè$ÇzÍHì)“VÙé6P >Yš9d¡z ¢*S”¤ì¾?ò¼ýLXUƒŸ¸‘*T邦oØ82œ–§3û-—`b䎄"Ÿ)%ÆHIQÝsJÌ0›cQø€ÆC¯ÉA@ã[Ï=ì•rGŠy¶ãôlgFK"Pbû(EPaÄúÔü†ùç?¥öØv?ÝœË3 ÓiÒ¬Æq8“ÂkºÕݙ܆“dÔPÍ\º¥JPQ0–\‚b†~&kw“gck31&“õ–ö •­m‘˜q YFsò¾ÌSHL÷™Óz @Ÿ¡½ø¨s}1Ît$•¸ª#{—pµ3åW‚ÂZñP ”Õ‡NÐo†é‡&ÃéêR¥çtyÄ$Õäl¿gËE˜’¼ùf1 ‡”5jx Súð^"wùÊŒxº3i§ž$H45üa'SBC¹*Q“ŒPv^Ó˜Eè5ìÏ»pÙ)ûs¨¬"ÍMg6ÚË]@² +¢²!1™”, +~>¦ÜÒW?ûÓÞ7ƒêÏl)áËzt¿¥&w«çxÑʈ4þi’‹ýªï•:=@rw!ÄÓ‰ðäW¢Ùþ+‰é‹î³õX`¾ž{Ø ëõ¡À ÷ó8Õé†$r\ ¥A‡Éˆ2'Íù¥' T<-<·ÝUô­Ðk œ¸¨­WYÞëÄèŸýz¶MþİLþ&sLHüYa‚è÷S}ÑnÑóD_w íR˜¬`Ùy¢¯z5t+XÞD%ZÒ ±}(|ÐjR‚2˜E»ºiƒ>—H-1ï#X%Ò9¬²¤<„2«fšøBkJ6~å™ÒðáóÀ¦Îa3=ü°°ZPú±Š* +¨µVI3É9¯¸w¨È<¨P« ƒ®{¶hµ¸;Aww·‹ƒoÈŽ”%“ ù³Š ©­´¨ä’ ªÂ¼es=”\8Âë¨Ð’ËÛÒÿ>q—ÅwèÝžtŽ èPà zKÕŸê,~Å}(î É“ +WÜÂeöÏ`' ¸þÃ/Lù JÐB¦SèÑ q7àÍÅÑÎ7«€»1¦dÅ[ßUç +8æ©G@˜ ¸Ñ• ~1ÙmQ¤ee²!y@mаW½Î€iÄAÖxHŠrnlÖѨ”¢¥%£.áàSaã€ßIç§7v€CuV“xI‹ôÞ'GÊIÕ«I—Å@ÇlVº'CÒ0C#h‡}X—õÀÛÏcìþ˜ˆ>‘ì”hÿ,áRßßSèõ?~sþÇxû“?}ûû¿ûñ“å·?û‹ï¿ÿ§·?ùó¿ú›_ýðÃwøÝ·õÏßþõ¯~û»o?}ÿûÿöûüö/óÛþ˾ÿ—ßÛI_ÿÅß~÷ûï~õÃw¿ùöœâ«‹Û÷ +~Fà¿ñÿÏ;w~Ì8ÿYö£^èLœAyJcÅù"õ;ˆò×óÁ‰<.YarKR}ÊðRê›”†¤È˜¾ £C6­;›[”éNÜþ&­w9YÙŠh*foøAâ:Ì%œÈyNÂ÷úÆÐy ÀÙ Ÿƒ0¾q m;@0Ïp +:š—8lÓÆ$«rš¤F½NЃrÉ–1ªõmú226: §VhM!þ/Ã-èŸd¸‘r’þ$±ÓÀÒ-w’JPš¦êi ‰ɓώ:ƒ®¶#DŒ4ìáÝb…fðÛ7aª…%Z®$„|€Ç• Qæ4x2jB9 üÖýŸoVßgÊJOr ÙÜÂ,áéwƒ–BGwFÚˆ!'ÓÕ.šüDu˜©}Âò˜:`,ƒÞó¥êœƒ’›FâMF‰ø4ˆ +þ©PU›ªÉè4ðh÷u­ibbBYÇÓ,ØóVIIu-¬%¹)þO›6ý%µ&¼g¤FºšãwqøêÀ’@þ’œ¥Ý{ŒÅSÂú8ežAYh QA‘Bóu‘Ê$¥÷ç†Q:•_”U§®,Â@>ð¯Än¸PùZƒ ½ŽŸlè‹ëZ[Õ­¥¿BÅKêÊ|XçVÒ;à,‰u ÉäNJ²>ŒHé6Üá?–s²ø…’1«2˜x`åƒÒ³Å#°ÈŒ6¢<µ”Î{•˜7†Aêª7e¼wª +4”É£8¶¤é†RÎ%$¶]žÀ9ÊD‰ü-»ÃGòã}Å` S>˜„9Vî}¢î`zùV$Ãæ·œ|.š¡"f> #$=C Z;þÊ˾Ù,v¹OJÂ×ccv& ›¥ª¼t!ž&£P-c4IÍU%Û(ÙËOŒ6óT?0sæ+LÒÙ„ãU3–]ŠƒB:Wø+èUnò›`(Û\ ¥üzÚWwåÃÌx›R>|¸s°$™[—é^-F¾i™÷艑ÉU?·3š måÅÁAºjšd?âK”ä‹PÒ²u"Bû…ª×g_ºÎfé:sužŒ/vâÙ³Ø -v¯—ȈaŒvÙœ Šâ\"²ìg× +èð‹& à¾h«Ï Æm)3{¥3倔PJ@œõ.²‡ÊˆgÉ´Æ ˜MO‹o÷.lµ9‚.ÌÄÔãÄëê8ªðI›Ž ~ذ[ú”N×V¾HzäìÚlrM´Å¢úÈþ‘Þœ©àařΠÅdD©Óãü:µÞrÚÞÖaÂKåDëå¹K$R8„A°y¢Í\íK ò &åýáØ7‰.óÐO¨1ö¼ì{a^k3¤ºHá÷¶&Çn%ûÌ¥ãhs^b¤ÓÐ-Áw£‡ÌP̵ÁmîÔ÷Ü©¯Û‘w©)ªž}¬Äì#NåÂ#êêãát(©g(‰m‚ìL~œ0 +ö(ÄŠ¸M‡Œ¯ã]ÑÀ¿æ L¥Ú…d©}âγìRü[Ø<ø‰ÄΚœªÙÒiø]ÙMŒsÉ¿W‘ ‚ÜÎêñ3ŸÀ§ø^ÐgÃuu4ÈGU2R["k«ê-üâ½Z’Ê\¦µPÜÅrUœ–ß4Ž^ov6bY– «ÐÕí(Δ– ˆE=VˆdÓ‹êƒL²”©T½à¨°·Æ‘PÙ¬\Š÷h[ðžH“mɪxœI6zKB™~¦Ñ@™*«ˆÂZ9³µ,lPl„¯Ø,ÁŠ\E‚R[OIçi®îýE-a àV~>8ÛWîºcÅÆTÐ0=6M‘sXMf" „?–Õ¢±Å£ÊÌÛÂ_ÙŸˆmPƒièÏIt;Ð%¸5‹¯¯R¨Vù>›X´ÿ1 ü‘‚UØÒàÂsF£M(cº8¢2ª!>{_[Ø»žo ”·”ñzÕ§ƒt!ÓÕtTÉNðqxíu²Ît·ùÜ*ìïyâ›Ì`Ô<°G}4£Q¦RÚk¸Fíã ¡uÉwPì~SB„œ.WÓLøÌjÑÖÇvý,lç|:8J™1È´äÿQÇžñqiG¿7·­H§[ TÚGˆ—§ó„Ïk7TåX–ê•­cËþä%mnI`dÜ9RÏÜÍŸÌêR%Uؘ¾m,ýX˜ÍJG EÑc¸nâšÛÒÚyg Ô©&R$3Ð/å,; ÔLok;ì¥1)û=êþ¨ù9ØÏ&ø6gåUI¶NMEDv‘µŒwíÛ­í`g{\qîaÂ¥[:7›kXØÇ5+Ñò°ùüÕ”û÷‹úq …ªòñàF‹D ¢.Ál^8LËMhY¾‡#!Ø¿¯òÏzÛr¶)n…Ûd•Ûy2›Ø3›zÓyd$À›0Ÿl8± +«~ƒÝò¶I§—OhÐÊÌ5SÎLWË(pK½‡­éXÒiøLш;R{bIfKš×$ªñ‰¥•åUŸZ¨QQ®’Yq1À$½ÎÒpÂP§Ê0k½¨|´ç4TÙ™@jíA'•!¨ñ'V1zpÐDOiªb¿3 k>?Kt‰^Ä.]½äИ‹=oR–!…P<å¬:Ùzè£OªÑaÊtcÃòµ«6uÎíT.z¡4·áɨZÖg2‹Y[ã,`‹ˆJŒl… Ë%€KÍ.…`ùIšÏN|¬É1´ÔbÓ•xtOFÖa9í½#ÙKR0P>¼#1n‹çO/ÓÃEÄ*æ$Ö…VjIªéH€UŒZT<: ÓJ…ØŠ‹&”wž©Ø *@áe8ä'ÆùL€Žm]H•«]]=’ÞI oÂÆX;“&6еÙu'Íåô‚R«=4é¿ëÁÂÙ†Œ!‹ÅÅôèB%Xðw_Ez±èSë"eLÉJjv¦2u-Ko7ðÕ!µÑVå5šUµ¦ ÇC lòÙÜ|KÒ¿be1ãLxjªÐ^ +ªu—•eMî£Lb, ó—¦C.j¶Ò`׫_*œ(Wô¡]zÉ%‚LŒËë¬^ªuZRÛªþ°”t»höCçõŽ ×Ïî†52‰ÌVóÈSr9£ãìI§!Z0´žK­!e­ Ï=L›yÞçðõAHÚˆ;"Û&Â`‚!,×…)£eàÚt”K<¿(Sñæcé¢ù¿è¡yB*ƒTNÎãÕîúi„’ â©À‘í:=³X”le‡Ò>!‰4s“­Dç¾£ð³mW.Æ›œ(ÎCÎTµii˜ÒšDQÉô,“U–Á”-Zéû¹‡e5$XŒ'–¡À‡^<ÓdOmk—5À7Xéç_ƒ?ãíúªO•J“æfwzö(2R`g.£ˆ%îóvŸ]#··CöW”Ôž{èM9gPÖB íE¯Ž³IüH¹k ò):ë!½"Oc<„Å-&ÅNî{hö=¶Qf3ÚÍ™YN7MòD.Êe ¶©‚=0ó£GÑ&Aˆ +Ò< *v»gZX Ï,y´ùŸÝI1GeB_z,S³_žºÜSsw6–ëCLm¸ã§ ,ŠŒÏKØ©ð,rJ_dCMÞ×ߥðEŒð G°ê”±xXt!DJ•B«yG>ýy·ï¦¡õ&>#È<LÀž|î±Dæe):âÖ¯{IŸ€:»5ËBΟвä©tßPe¨ÊXdŒ¶d^ ¡ÄT=q«!éÒkýÉõ3²Ö«hÙLý ¹BTgO‹ðì™4­ÇÜvˆ@YäÀ&2¦$[ƒÍ­^0äN¯Î»ÝÜòL'šA¯€ fvz$éWŸʶdy£ÄCánœË—à =H{œW¡‰@½kwÒÍ›•Ç/_æLb*<(-Uð ù)•3éö€T•-Hà‡ýÇ^uÉ^ .œ£¢ÎT*%ë€2±ñÉ¢m£ý¾½£áL¨1?(—vö²ÁÞº&í­ù!ËIûÐVˆb%[ÒóÃ-QxBNî„JmÜYs–^1/žÒ&Èñ¹°š&[A4™<š¥‘T"¤­v‰}ÀXO~õh¤$³Í7îÃ(çn¹ås¨ÃÏ| +£8@&½èñrüØK:Ϊòwé<ˆ· ˲åÁåDþ.Í /[e-79‘áuÐ1«–çš É+Õ-/zP·<÷Ùh A[¤0jƒ±,@€«¦J>”/¯L8¥Õ³“T@T%3±I¨WºÁù-…!àÆ²Êˆ ³Drî•2Ó°œ¤p¤@õW:òÓg =çnÚ mÙÉŸ¹~³z¿$i¥Lºó+Ú†ü@Þª³R`Û¦m;0ü@‹±°1§2W8Jr’,ʛ՞̘ˆqx¿žÅ‰ì˜å4‘̱Bòoé-ö½¬uçF,4OÀ¬£fl<¤)ÿÜK¼;¯K`wQʽ0'X’•ºS^rûë:9I~Õe¶pgÒ¼;NNjj ż8sÕ¯YˆŠnD×-²èàÀhÕÀnSÑù.W+ÔGP ã&¥AVEû:ì€4²Ï™Ç1œ*¯(Ë¡â,,VrCJJÅòÊéStš76£Ø·€°±BZô'— ë¶h¢’=Ÿ9‚kvï$´¥7_¢£@åÏÆ,ÒY-–è`æ:YI‹½kïæï„Úm ØO„ÊœáYBÞ§fø(T¤©@ã¿Dµ%&ƒuÐÕ‚P,4@'É]ãÃ(ÊéÈwaY¾êMó¹C5¸ö°ç +W“x+öb½KÓ¾pâ@|ÍW)á3‹¼èÛ¶š§rP]Ÿ{ᦪÉec1|Æ1•›´y–ÅÜä ÕÝÎㆶ´ôÈ5e.S(x<“E%ℎUpÐ¥Š/s«Æ1p +1è!lіܸz4Þtr‡Ÿ©Eÿl—½èH/E§—aù¸I, àL$D!Qžö’’›¦±»:°†Ñ} +$Ò3?PŠ„¡µî‰”îRn—Õ6Ó¤#(¿>çf,05ãlh~$ÄÔ²]<õ°§ó!âyÛk± •¥kAÍ`©p7Ë‹zš¿ÒyêÅV‹HzAøü¦+žvÅÛu$ĺ^d$NÄEI U2©é}ìðkG1©b©fþ§a€»°³`Hã[\v½WlŽ$*#œÉ´Ñk#?p(›$± ßOsBÁX¤-©œ²¨ñ‘Ô熬†œÛKíO€œ¿EÊ’Ü;vi‚óÀÉËw[@Ò€ï’íñÄà{ÊzÛä6èEÀ-uË•eÆDsµú\2h–e=°õ==pùUSF<Ÿ',õ8“-®Ô:„ÚHÍTG©YùXµzmw(´,Ÿ2“—ÎÄ–¢«ÔQè±´¢–« ˜‰~ÏŸ;5´:ëùI¬¯ úÊ›£¤8`âØ w|Åi¡½èA¼=@t6âÏq £_õ:ï‹Kje¤ð«æ_Ñ:ä‹î.º ’•mq÷$Öø|à×d•)¡,ðS¯-Ä]3Ý3i¢aÌÂd’Õy5™P[1¡6{Ù’£uAƒ­¸;7*I+–ÝÝxîq§Ñ á†þb–y.$‚eŒ‚µWäªE'ÄkeùýkvÿÂí–N窉NõÀƒ~—ÈrêA²­t<³é±Ð³:=º½ÅÙJqŒq¢TõƒÕÌ2MºgÒ|<½ +¤O²ÕLˆÙ/s€MøHè/±èg)$©!=ÎwgCL^-’ãÂá†Ø‰Éd†™æÅ}þŠ™ç¼8¤žÀ(‚Q†ó¥ÜŽ”/º‰Ï=xEí¶à½éû¥ç^Ò“ìÍô$Id°ÿ"W„ þ^!lº\Ø´€©h–|l×+…T]žOÇð-¡²Â9iªfrÛ‚ý':xß_Rt5øsd4èÇ¢-¢aeIŒË¡àlÏŽ LKa‡ }:‰`J¬¢k–š3 +Ó¼ð/©Øæ¢{B6"9޲ÃÓm “žv*ׂ3 +-]ÈBvä ×/ã”Ù”ÁïÁ-WñÚ®‚hÎ<ó¼ä¡È_£2È@©A>ƘÈìšâ茯…ëÚŠ&Á[?Ñ6Å”DŒ&a²>ÜÔ3á&Ê·ƒ©+üÕÐvç0Ñy’~Eçé2·ç›ï³¥HІ—=“„.&‰lpg¡Ù1L(}PØz}æ°;ok€Õtë àÜê\É|Ù¬=8RA"!|8ˆ·™ƒ5…¶®v‹í±Ùm…Òg‰™™·ö|ð³ê,Ó6oRôcÂËànYmÕ˜VV9 oFâ8 >4mœ}ßð8ÿD¯šõs˜Ú(:àÂOÒ,ì 6›hx1/ÅÙ?ä¡Tø‰;`<Ó–aL¨a$¡³Én(18*i¥§O‹ˆ¥!?ö³XÀiŒÐ«Å+MaI5½Aa–e ~2:ëö`Ö²ã¦Kì´MÓ†G›¶Ù¤Ô*y›% f5ú>“a¡…±bÅ9DP¥Ã5mgY)·€mÍfqŒ‚»;¢·mê661öx¬Hø6;LóJð¼ I€Mœ’®´ÍH  ˆŽFÓ¹X2ÅgH¬ÉB[#  ¤½$ÎÉÆ|ê` ñd›ñ³^f*>Ž"›b}m‹ûÝ.Ô3Æ‹g#AE“ýIoQ­xê•LâG¬lˆÕ,•¤Išwéœ.îÀ9#F7: Û^çÔ]WP²ñ£šüü–›V˜W`_]²ìBÝžp°Êrž»d¿Ð>æ~̨/Ñ.ŸÉ‡®á{Ša6ñtÞàóhU¥~ÊVá|Ì|©_¼—0&+x“~SEº[Ž|㈊G²Tܶ®üzTaæ¿$ûµ›»²wR¿bBaNyÌÜc(/Ê=†4ådÙ( “®h˜=*Mi¼)"P‡ä©|C‹ùBV´{éIú4tÒÔu>K :@—à­Þʧ²‘"k:T~a–uÈTQá s‹³­Ö»Õ­è®Å5Õ,©xÚ8ª°ñy­t)ú© ƒ¼êú ö; KœßÁºâãã²½EfÚ¸œMä„x“¥ ®zõ™››ôвdA€%9žOñY|%“ª3m–“×@qpKØwÛ²!Pÿdú*”„á5àÕG¸–L~«€x.Øñ¯©³ÚÒaB&ð”é*Ô.h +“ï­X]²˜€çš£ÖШæ±!`Ým›­}yR&©Bd<,Èö&áÆByª«¡þªB3ˆHK!UÌÏ쟊m·PÄXG½•6(\ÍÎn.;èns#Qbäô8›©â=¦ÆI2Á@Ž eÅUÌþLƤœ)"A,q|b9=Ø–_%jyàF\>Uh'À1J€6âgÙf»Ô¥ŠâR~‚A…¯wNކ4ô«Ñe´§zr¥ôÔŠuVÔaÛÃÑÉ5? +‚&¢®ZT¸/#Wv,ìgUlÒFÅŒ¦ËÄdWkUÀ­Ó#[1SÜ Øù¤ü‡éã8‚ñ + .lNÄ¿€ejjÁíèlÇNHxZÍFP9ŠŠøŠä<1™[¦(ÄYÃîÇF’ï,†¸’ŸÉÁ§û5±¿gö)Í|°fQÎY¸P,I,tY1átO¾O 7é –?…DÚé5 òä6QŒŸÝr. ‘»¨niI’&jŸEGM¸Ð®èB.~²ü?çÛÏÇaÙ½ÔÑ Ï„ñò"6$!æ^Måö俉#䇅~€§ÉºŸMT¼—­ÑÉvnᛨ3äH©AɆ&¨ýDáÛEürXŒ¤i4eŸ™3I&#ƒJhÉTÉxGÕ 5°,—–l<*¿Þ„”Ÿ÷8s'=ø0é`<ÕoÏ ¡*ð\èëÑ«g“?[àJ¥:¶t½@ðÔA›óh©Ûi„°™„K¦Ÿ&U²3‘í‘1„nÞ¼.%QB†{Ï|>$?çß{4ª ’s4 [ÑdÂ¥Òµ£¤ÒôˆŽPRv£‚UôTÀ¸Tmõ hUì§„@§oC¹{ÄjÞ˜²|çöØv4Iö¡¨¿'Ò=˜ÍÌŸ´cdÖ`Lj…ŠzìRÔ£ùO"„ÑPÞAÒ¸ºÕ +¬°…”¤=0WqÖwv8¨êPצ8Â#äELzÖžSo§R'ÚÝ'=W*VúS)o1˜ñ²dXUF$Ò¹Œ­üÅÎ^ ¡‚·¸#¼EÃÀ5¨ÀÜþ»[n¶åǰbDQyþFå±ÞZ 4`‘dÎØÜ:i¢Ÿ¿ÁÖXdMwg¸®ØG6ŒknÆHZ <Ë:L_afš{fNk¥`¬J“°˜ÚJ!Y'‰6ì©à`©^š$Íò ˆS|H„o™§´9È«jqQ”HV™],ép(Øìü~‘,bãç«£Vƒ?W£@£Ì(›Æ¹ºˆ2–fqàäg7<Õ¶ÍR“’íþYçâºJä r6K$›ä˜–TòÛ¦,feµ.¬`–†‚§†ÂØæß²ð¨ð-‰U0‹´éöKÒ½ÊS)ªй¹~™Ì 0¸%ûKÔ¸[ø²7ÿ mUti?ºðþ1cî&µ#«ZÖw‘í²Õd¯&kiz£ì|ΰ(u"[-ý‰ó)cë­ 'dÏl„l +â`“CöQâ¤Ô­1‰!U2ªËRyâ}´ï¤RIìŒþÆ.±øA]o|Õpªzê<mR_aÛ)­Tóãù½ønò<§¤pœ´í¹ ´f™Ó`DgÓSéJD‚Mq¯ T dG ú"¸\žU5‘J=™²õF¬Ø 1r^‚§Í|(hôb"¯Í.ŸØ\²zïu`I茓’ý®×ªºÍŽÑ(½ÙÁް,{™-= ùì¶î:RÞS¤¹Á)]#ŠyU"`¿ˆäkA8Ô­óŠLÐý\W/©PÁnhX¡ÿ*Ë™ÞÖ³ŽJ=)-I,CæB—u•¬)I¬Vé6“ŠIÖ NX÷ ‚r³˜1%ÐñàÅÉs©DJ¬"f$Œ~ª$àT–(ëð$Ä"s»´Çª#´N¿S Æ”X`¹eŠB†_/–“­Épå÷bàc÷/ØIN*”¯ +J¨ÃÁvYh<àLƒ¢»©EÊž\fHŠPÑ3°2ÌÈÀ˜ ÉËì†lfGd]Ûóßç7SÒÖëg3„ÜŽÍšr2õâ$A.#JôÚ¹: õ¼ù|ðýÓÐhàoÏ¥í;hv“h#ÿs>TN¸„ìä¯e°‡ªìTÐäýMTPûü˾´%-§oGž¢ þoÒ® ×ÝFIVb/Ðäá»%5bMõBÓg9oÍ r_|ÊÚ²N°1g³>"C"!µc0ž³GÜ2ÊóAÀ»øp`L¶I°èÀè¶ÖÊM!¹h´¼+ù’€ýd}”£ò™k¸e\Ø&µçyŸ °OLžì3ANûg.Y“dù +åÞá +°{?¯R9wIÖwg$WÈ—t$Õ7&¡nF»\éC·“‡Û  +5'éq¹fׂøîyG`Z +2 _Ü‘ÙbJeö`~æØÖ+1M)ÙÌ†åøžr=;Sˆ€òE°³eIp盄6>•J6öí’ŸîÔ¯©-É›­é™d‰7‹®9\–œ4Èä¢gHÍ×Ç0 °†çɤ¢bVçOªtˆÉ ·Ç&E$Ø{²+GÒO³$”'Aä”wœ˜-“ôy|‹`/¾QÒ9»º Ô6x=åÆ"•ŒæÙ™ÁJ“/¶'0É#cѶ+^²…q2hs%>‹%ѺóMº›ß(ž•ŒdN2ªä_ùíÝä\hBi Q­yíÁÝ«7ц,G(¿D¬ÐŠü©†Ëä $/J³€5†KËõZøh©BSiå7nÙp@R8•ùš²Ð7+FKvþûžVL#Sï‰ÖY¶0Žôns[’d¦öòUú²R]¾‹~Ý‹iš^ye'`gÂ{’/²CõPêsoP•8½†c¶‘0'¿ ÒÜ\ˆÒÚ8FxœGc:HE©G÷<éƒó–YÖ±eÃ|'S±.:`ˆ=У‚­šHäIz5}ý¢*ï'é>’ E÷ù›OÒ6J_gÊgêĨ+eW„ÀyCw‚çlü’œ‰ß%)CÒëì'o†0Ë^¼´X™‹Œ-«zA —ÁtÁjP.,"_ÂÞ¨Ü=D%e)ÎÄî‹ÌNp‰ ÆEÄ]ÅþÄà:± ð2oVJEE‚Ð&[ᾟ‡ÁÃ-XÚ oŸ,UY¶S2`J(™v'å>Ôš¼<ÌbÕg|$›£¥í“öýY`YÏ <ßÐLŸY£ÕZç‰ ø—Eäð‚+»ùóûT)$”#‡&ŸîX2?.9Ö7½s†F!¾D‡²&ƒUV¥ê³‰bË4¹‚ŽØ8aaG’Üüé^²@à™NJZnÃÛ&v&W¶ŸÏ°«3N'³ˆ.(ëH +%V èÕò/ÈžáX|¾,ç!%•Wåk̾€¤4“I1ìÖ顉¼Ÿ–ZM¦ZdcÜ/Ù¶ôâòöb†ž2VªC5¢H;u(=¶&m#\á6µÚŒZPíX2Íä«UnÇèïDÙ Ët$´Íò°ÈE ¤*–4G¦>T¦]“K%´åK‘>üyn&Û²Ö¥ë í†^ô2ê>ÖÓüØfî;*¿œeŒ öNÖÁª>l.ô,IŸê÷Œ­Ï;¾¶‚9PsœºaöæX±³£f'à.r³HmðjU¡Æ÷,p5º"¨è2Ÿw™(È+…% ¯…p­}«•.1bÈÿgE(î6Õ …i`ñq"?±i„œs>{¸eš¢Õ ü,`ß0 Ì:Á4P(‘Xl‚¢ð—ui$¾€Ù bRÂÂA¤ gä&ÁDÚ™¨ÞâÛñ„†ä3¦¥D$ÄŠØFç·ECûnÛ<^É­0nÈÆ=ËáÒö¥àò›ºR>oë*Äú‰]"(+H¼f}hœÑd +Ð’a–è¹!4S 1´žDfkþ…’Ôf>éÙ @”º…Sh^¬['´î¸M{Œ˜ZæÄÓ’¯Û:ÿIÅx‘HWˆâÙ‹»&ó®ú¨(Åâ{{ÞXf‰³HX +á…‰ž{>p30ïîrÁÿÚ´áØÍßXO™’ü0݆¥|t8N/¨?2®q?ÏìC|'°•åÌÍD¢ý £ýIu›¿¢ür¾Éš¦-ä2–:=úCôX9k(#ç‹”ÕlVýªt BQ.YW¡jÙL‚aµd"iÓe凔´ºØµ0GtÝmùoœ»=/¯ººHáèÐÓõÖ+E.qÛ’ÏP2Ã|3l” +„·ëÃÄ?UŽ- 7&>YKIîê/Ù6 wßÜÞª‰QetÎTl'‘Ïf5æ ˙͘…Z6Š€»¯¶zC)¦œ õ¼¿Û÷âdh(¦ÉÀ÷—Ê‚ ÌWâŠù˜Ä¥XÛio„² >nA=›dÆo,Õ‘€<§©¨¸I%»n›@¤¦9´d ËÚ(`GÀˆÒMîÅÕ –䇋ú²´¦&{|™% +ŠY‹®ªàLNIÊâÔÀ0u˜ÄÕ>n² +KÙÐo§pzMÇÉ0³J15ÁÒ©ÈwŒó¬‡€”¢Ë°3U-™Àõ»É1öãnˆP Y¶ÒÃ:-ŠG“®¬¨ˆÄ±”ižÁ°hi6ª‡.¶/yúÑÃâ5”¶3MèôRªçÌ{*† |‘]º^IÞÑfZ ’ЧÂ"ø²NIóÓ#6“Ã<—c("@–,ÅÃli +úhOH%l€ÐeÝZÌ•—$Œkq”r÷¼^éÄT,’-(PÛŠ2¨-Ö¥nixÀ®Ø6á^YDKµrºe&"`×ókX|$eC·’ú Q¢´>Œ’_—ìvké6Šm&Å =ÜÚ-,YÆæ¦Y¯¿Åá•#Õ¦T¸>Ø=§À]C§(¶?ffTFfNÓŸh¸·!¸q•»ÌܰÜ=¥M;@<5õRV•‡ +NU’  +Ì%˜6Î6ÐVkvïšöá[^fês52>­Ç™š«KbóÛíL'z)Â÷c¢¬èÔUÙíÐC +3€•H—èLҪ˜Ì:¤DåèL\¥Gú$v©±¿DÇ B˜+ª‘ª^ÚRN¹™[¢pmÛ&ØÔ¥ÔfD ŠnÉ „³{^úi˜Ýµyɱ*3ÑD!…Yƒ–<ô´…jåŽjë¸D…“¤Ó41†J÷L‚c1‹ä3”—#‰”ô-«vN˜ +@ZÔØh@›msº¼V³8È7ÂpfFp`ír¤4?QÕQ¬F¸Öy‚ä5˜|Ó8’ˆ•у@­šßÚ”„=fñçàÕoa‚€²¸%œÂMcLØUš(ªvƒ¨›tq»w0®ç–Na3‹$%I&’ÔñTÑäe5¦|°•B‘IÜôtµ¢7œ4ªym˜AÒé¿õ•Vÿþ`jË:FÒ4ût°]©ö¬f½9vU¸—†#<ßNvQáæÏÜŽh$Ø9¼f;V…hÞö+8¶Í‘ƒê¤|°TØžúsm(¡µ­f¶GšfN±êa'žfþª¢ÎMXRùž@p¹d36J.'KݧA]®ÖŽå+ A(!4qìANÓ!_­_HYÖëÃk¢pP§Èš8Ê•í"ë`7Ê’á‚ø:ôÚu”º” àp8į·à ó(/Ä »¶¦[1ˆc+ú%wo®ý+(c•š!²n2 XLøÉõ´…“mF•ƒåɶô¦X.ŒJ@/öèIŸŸ¦¥‘T‰Š‹l|•5:¯‘³™­“›‹7ì¬nŸa„éÒB)—z°4£—z ÄlhzzƒP¦Û8¢Äëµ4Qëeܓәˤ +€¸£s@9¦„”‰ M•¯ÒªE••Ž)ý'Ô^ÐÒ“¬^ß®¹öYOÊÆa±P_áû£û×ÈK¨6”’jC“}5Ôש¬sˆã|ÍÅØa¡ÿàÛ_Q€F•ê• +†o.  ½›Ô8µ Ms¦Ðe!HEÚQkÑi!«u“JDH‚ÌA¾$ÖlE`EúâËVARk²š#TSÖö܇âj©oÒ{Ã~Ò°MªYÕAŽL8cúr‹L±‘É"$E•wi}¾U6Ñg.‡UsFRù|Øo9έL.wIЧ="KвYµu0þrf ªå$ÔÂGÏX×"ñŸFŠÙ±c÷œ(´ç¯Rcð»[’A’ìTä:_•h“ò«ÞN²@)hÊ@§óås­Û2FÚKBÏî‚¿¢ÞÈ"{Q–õÂ,šê‚X”¹‰ð®Šï6 ÐCbPè—¬fp¢$½ Ñ÷ÆTÏäàíöKÎ+ bzTh™PñÍIÞ`]{k»[%›b5Ÿv@a_[ŒP!ˆnS¥z›ÍX¢a–í •C–ŽÒD^.rBÀfŸ˜&{è"KlûðæxÑ«(ã «ó,7ÓšùšTˆóEÖÝ `¢±0û™ž{u­Öò¯G˰ô„cÑ8k©4ì(¯w(ýR‡%.9±s•G“°@ PâB«f½û«l¢  =ú4g¶ $ŽqQ¼sÞYþÔÜòä¢a-ᮟƒMxDdˆü©lè¡hR‡-\Í[—Ú•@×ÕÚÕ‰ãLJê^»øeô ¦¾aÀ +¥h²eU„A³û8±žÆaBQRµ:‘î9P£xWXk“¹TB ¸5U=ÏX•ô6[%0¡/4Gn˜Ã¸{-1]°¦üTa%g2Äû±éÄÆº4~Šç{!ljC&7ô¨Þ#à.Göó±‚e榺›ea"0!…4¢uF>þê…|êµ)ZñbÏÙS6 +°'"‘Îø–Å©^H´øhº>î=uà“¿çlÏOKÊùj% b=bõ0O˜.C\kkd]´Ù´p`®ôjÓŸcÏc=ÄYŒi”rÏòU¢F¼W¾_ƒ1L];XZNTÚ¢IÛ‡ÓÙxbT¶-Êæ'¶T«!0›@*ÐÝŸ{X +ÈY¯Ì„ùå8ìì”B³œ\ú©JxS†Õ¢c‰à«ÈÁŸ XZHí ó'ölÝV=:á4`ð4°™è¡¢þ‰˜ŠåφÉ1eBùŸ ¼~2ÌüÚÀ;}Lƒ²ìò2 +ƒ9Á\«ìe¶QžÒf¢Íí1š LBP8˜üR·€;Kp4gs +:KîP•m³1Ôj†ÈbqŽ˜ÐËèVž^ÀôMÃ~Hj}TYpJ<KßTÅ”>QzF¾Ü"g’P«ð]v&É–Ÿ¬Ä™ GƒHÒåôJ –z +±ä?€™­ˆmB¯&:ˆ…œ÷À¿áô˜Í×M¡W`»Ž–Û *ÆÔk‹‚—Y•R–"‹1J‘‹s +˜ü?Ñ·m2—3uÙý1¿Epÿl3Áý£“ÂÆdÏÊ …N$¤¯°€µ†Þ(¼=érŒ^].;ŒÃ·ÁFÑCUCÉm,©”rQÜØ†ö1„’¦ú–'C‹(Ç ‹K+Ð>Ò¨$â’‘&fTð02yamw¼¼äc ÚÁ™Ò­—Nƒx)1Û·x«ÒëµZì[†“„ _¿ªÛ >dq±|ÇRÙˆl(d€4øØÃ6EÝ«žµHaî©{œ&&<ŽÆÈœP#3>Å»6a竟v¼«©(ÝD:¶G¶³Q\ôËlUéx‘ÜÍÜ]434W%¦‡V÷ÓsDõ0 ”ȪixHoí½#L27—E‚XJÒtÀí:Ù8¶:Ï„…[ãÀ=8=&Å_õ€H „‚®–[ÐÞ ¼¬Ê„¸"\ÝPó ÊMÎIÚ5øž{×bw&àÞ¬Þ%}Ñå\_L‰yRÇJU”ê:«(‰mè ‹Õ¶làQhž@_¸cMä4Êû¸›´*áXù¸~pÕIÊobË ¡(pR–Q/ºqÂç€ã©5ÙÊ&çËT1ãC_{1C±”õ¢—´„ÖÜ ê߆44ªíbBŠÛa^©0Økú]Ć}R·LºÑ,g>SrQ<#![hDDz°!­ ®šCŽ^ò=9¡­”!Ýw£L`H=¬òU1XVyFLrøq\—(¹J}/i3Ð#•û5 ëÖÔkV ù³«—Üh4Ž\§G•5=†½2±5|õFðFQh夋¢5ƒÈqšºÒ3øÙ5Y-/óM›ÜuÏ&æž“Ï{îᬻ¥Dm˜ +=÷JÛa–ô›ßÉICA›R!kŽ‹‘¬…™qI–½3ѯç6W¹ h?Hǧa@1(ãÔIJ UùHw>2‹IÙÐÀzÑ tõ’inlRuÀ€|Ôlö½©ð9&(vHw4B¢¦ØÕIý:VóœI Pèì +a6ÜEÊÕ‹„ܺ'½ªuåi_Tdb÷³¯á½Œ/V虞?&‹ Ú* K•q2±U“(•ˆ œb ¾óÖ4»¡kaEYÖ+£ ­”AWÅmØD3…þ%JÚB™Ê•g“z,âv’¶1cT1b:oMSJ?åUêV-Å +*–NIÐ)ÈÅp®®Â˜\= 8ÑCŽn "„îëö±êDYZ»åú0 ÑDõDIê…Š1—“‡I©´ÁêQ%­º×y~QcpC´Íêˆ=Ïp#X “'ál:zTk&zß +]†C“;)ßaÐélêˆ` +Þ~>HúcnZ¨qœ}»w­ø9b£û¶´„¹¨ƒÈ­§7w™RƒêÈ…§ÑÝ0›æª÷–‰Î]˜@lJ€K1z¶ƒÐÚ´CŸ¦Ô'ewdØt9 LS^*ö¨;Æp²{¸›aÁÔ0p½;ß]W¢ÂáÞ8. 1çå5±ø›øö"°0V?¿XB?'ÜÚY{!‘L8åÜ+jQD¶ùwS3Ï +1O ‡þõÁà_@9µ†CŽÚFulT¨ºŠ£±ÍŠ@ZùFtP8Éÿ$ºò²Il6y¥ùa½Ö°¼ÿ9PAÇA‘Í0‡x!ó±è¯ºƒû‰ÚXYIípqR*ç€ÕÀÏlî>^r ©ÁP8_Éz@n +Tàdó$õ¿80<P4ã‰'¬Œ0ú,Géç^e²@2i¡GüŸ*‘‰Ë~{ÌZ‚âÀŸ¢R°'A§!aÏàXùˆ .‹ì­dcpQÀ ð1·UjqÒNg¥'ñ™aóÕ®èÚ"}<8’Ku7D†ySè†ûÀ81Ü›Xu ›ÏÙ¢a—€Èާ‚ö *9ËÔfZÔb8°óU¢XJÁpš†RÊI`¶@Èl†ÊO=^MÛϽX…"rzÃ-×1׸r%“ ämù¡dóCº½9R»á‘ßY‚V·Ýâì ¯ x©.Q‹ (ÎS›2kHiQOR‡3¹‡ð˜f¹ +ûëØ&wÅÛT¡1'â\›­²Ùc+@þxà_}{lzƒê½øs™Ecp1ewjú‚ +>Oü$® (+”ÞÎV]jâA6Þ-ò¡áˆPÍ Prtbsª¤éòa„¸¡–1½Ç´½Å‰¦÷ ˆSPÈôÈûz/Èä!¦—i“XjÕˆTãèPåq¸ÂKq+Z%“ RBê_8/kÓô«Eƒezþ-À³º“‹ˆé  IÒC è-W$Æ·F[! +}~¹Ù!bƒò4¬–ÈMVäpq<7·0Å4÷pJd4„øA¾"éô.#iBÔ0y‡ ëST£CJPùhœmŸEËíø“mŠ ôèïN È ¥R‘O¹ê)ZØ£=äQ‹žš’NÀúÆ Âd@X0T!"Y…ÏlĆANEŽ–#ÆÔwÆüÖåÎ.þ^?s±ˆñìbýÛ\Õßís‡Lµ r< +¡#Š8.Ê›¢kµ(¤¤¢Ñ^õ€‡Ìû¶de~sw&ôL/×ÅSkà‹«³r ×—¨˜Ø¸& —‘f|cE`$gðkV‚ª£;…j,ç?5»Ð j˜âØpÅ}86ò· Ú`á†ç(àû€£x\½Ô{š0oø„¢šàìÒfåŽø=™+qI@GÎl©ït4sÄ#d=²0Néì)y(UÕÿT -'8(A4ų¼‡¹ Ô1Îeäi®L—ä¶çPS£B™šO˜1xɤK¬ìô0)è])Ôr»qDA/Éü$73^JÕ +§ÛÐöJ½p0 <ñÀ^§Ëø))¹KùâË謋!øŸUcõèÕÕ‹µ¦#_IêDÄ£˜Ç±¾t!·Ø¡Õð• d\ oíl”çÑ*@UM¼9äì©mr œÔb?5zd¾Ëî\ h)æþÃBD€|t´«ØwÛä,³jÓôåð"ó*wf A‰‹ÀXÇ ÍôJBÂDŽNe±Ðþ8 +¬;ô—( UÀZùqpÍ)ül™äÙcí†=®.®P «Úý$N„\&/;»óL‹‘‘¥ŽþÔ£f‹Ü¸¶B|î…±‚`( 0ó×eÕ4p!è’7í”&óó2¢F—‘ôÿÔcXkyŠe­Þ’³uäÓ8½Ɇ·D”¼ìª.gƒrë¹Ã×6²÷%zßGšÿÊ­$³ê+ó5 Æ.c¯BLDeÇÀqË…Ó/²T{<yÐVÀMM}/ݰtÄ¢­‡ôrÀ³9#+ðv´)„Ai ?ÈC<Ã!>£¿Â5A!ËöLÝÁ2ü.èÞ&J% âÓãĨù^¯Vš¨íÔÕÆˆË™ò¤ ¨ó^eb‡‡ÊŠ –RÏÏí¹‡ÝwÔžþ|$ãÓlŸâ›5Kk¡«F乇žk·çõû§N‰Ï¤*;H¿Îf×9\M CÈù|˜]0‹‹ ÈÝYX8ËxîeÙ@ kïƒA.šQ‰pY1¶*›±&»`¨"eYŽ-=¹ä« +Œh9$DÆ¡•ÃxÎQ>÷(Ýü@]_4¶z‘£ ñQºU–Œ$VLËQžCBÄHº‰7˜ø†B[˜,‹raü\§é¬í5ÌdÝðŠ@ceÞ3úmz#ô˜ÙÆ)=›øTÚ{˜þ×4õ`‰¦µÇøZD‡hÂ"<,n­Öƒdþñ®j‚|àƒéÑ4¥Òÿô¨¿D +&i=>æ¡í RZZh‹hã¼1¬DBÈ“Šœ¹Ô80³lùl +õ6¶ýð7¾Ðî› *³ð·*tÄò4ÓSþD|g¤¡ k>ö°W»‹Ž0E>^œÀõf ø%Çôȧ)Y¥<*§ú|OÍR™%úÂÂ`ÚØ± Y…wÔöx¨b?u¸S„<ˆÏ]AFåy„_¤vƒW]2­a –¡Q@ÆH~úDJàMü®£Ý'$qèß°nõ¢šo½ÐMŽm8ÂF˜­.µiu’N P%eóу /=®0@Hu7['2,[DÔd×i$§”‡TÓä³×„”#¤ƒÚ6Ç.…8cìkzÍÆ]g‚½©'»¿q[5PØ¥°ßGõLîó™ý— ·N²'<´$¥Í_Á¦J¥$ó¦h’ÜKg1K^¸–º(æ•u<÷°WÊ%àžþôh™³2n MºOŸsÙ×Ô +…mÔb ._Œìi[ž&´ +ÑÀùÁ>áÕÐ>-¹ Kã6p¾1âjA ŽP7`¾@4p{–›©2ŽÂ£Îçá*Ò¤Ø2.è¡Ôd>ز"OW ›‰T SJèÞaZ‡óà/É -SÚˆ/†É.Ðh˜ ¾Á—`“RÉ‹Á–Cþ3løc/ˆC"Æ"戯)6*EÀ×§ùðm%FD¼=¿hÛ*¢˜0×Î@’*9À²×7!gƒI‚ä6tL«›Ü]•P€MJŸÃÆGV=ÈI‰+a,ˆ3ùžÈÜc(é7C€ô솀ãèRªKI±h3îϔӈ»–‘ À„®õž“ÅHãU¤h¥ }ÞôgúØ‹·K½ ÉÊÆ1¬¤,–D%«KjWDµ¦EÖƒÝaëÏ=,á°,ʃޏÑS/@a&™ArÐ’ç6ß>`SÆ>Î~“—î‹=á†ÅL°í§ãp Óe½Êò^'Jÿì׳ÍÙs²«*óxBCéKR=z“JP¦'ŠÔŽ6)ÉtÞµ6Þå‡8ؠΟ?Ê„X’*0¸{Cÿò\¹„‹Ö_á# ׄ¸¿ÊoÍøEÕR¥¢Â±¸wá·³±¼Nä…+÷ØÖƒuìiÕ˜O½0‘Q” qBªtÍ|t† ÄŠašÍí·„!·Gëçmyº”uw)ëp‡M®·ƒ«Ðzz ⢅îÌuÒI^fr´¤¡‹œð ~ÉÓI±K:ÏÎ’½ðºÌ¿šÕ¹àZ Eèuþb\Xn+£ÀÒÅ;œP£¢# ‚Qç–,—Y,´IИRìÖ-å§a‚Çô<“éï¢.H_I±{@L_aB@ Ù¹»͉gÇ»D¿D#LÂk8\ ¥…ž›a.Ïa‘jûdðš^ܾ»É +éï.I@“¢Üþ(íö?8X¶¿'Ôêü†’ÌÛŸüéÛßÿÝŸ,¿ýÙ_|ÿý?½ýÉŸÿÕßüꇾûÃï¾ý«þö¯õÛß}ûéûßÿû·ßÿã·ù›ßþð_þðý¿üÞNúú/þö»ß÷«¾ûÍ·ç_]Üþ¹+hoöW¿ûáýpœðû?è¿~õÿüÓwv!Ÿ¿ÿõ·ÿÇwÿî×Þþìo¿ûÕ?½ø«ÿüÛ/ßþÍwøõw¿ûáÑ¿ÿØ9þæßýëo¿û·sŠúgšRˆù«xïÇNôß{.íï~û›þçÞïùù»üáÛsCÿ×?|ÿ»îY~zàÿí»ßþÿùÃÏüß¿ÿý‡ö—þí÷ÿöÏ?7,÷ðÜôß~÷Ï[øáqþå/þ—?ÿ«úí_þî7þ·ü»óïoÿë÷¿û›óÒþpÞÛ_þÒšÿâ»ÿq.óÝ_ü×ßsdÙ‘¿øÃ¿üóÿŒqþäÿüÝï~õå»ß¼?ýEzûóóŸ¿ÿ·_ˆNþ/ÿúÏ¿øŠBžÞþ÷ó?þßÓôooíí¯ßþ¯ÿ;½ý†¿üÛ_ü’ý¶˜(;½}ùÅ/YÈhûüu[|pæ—ÏïþöU›ÿíïWõß~aW”ßþ?Rjáªc>ÎÜ%CO+$-k⟡„¾¾ØÆR"µæfûèBœµ8šN¾HÑ3–½ì½­‘ô‘5¦³Qx³®š|dª>ùuØóë ‹Ë;sö¶«V!û³Ÿ.Ýfr)~ºY†LþñíåõÆmSËo>'þCªÞLqìÍEtð'Ò§7žà¾û[ìoîöû~O(+Û ¼Ñ¬øh,õþ=9öh=¿ØEæ²Æÿá<~Ú×ñ'·Do¶îñÿœìO^××­ñB¬o¤uf÷Ÿ2HÜÇ%ßšOèTüÁáGßñÒ› Q¤’®ÆZ½-—êW[0ûägk=¾ûŒÉÄ-c òöòº>Ý î +íô%e|ñæZ»7ç½â‚ekþ•¡æc·´¢oòÇù4îãq˜Y W²Ñø™Ógׇ^c첪¿ïŠÿÂYý‹$nÑÙfùüƒðyô­eÅϸ/Ї {\ñ¼§,{Ÿ©Â'ŸÙR|2v¶Óbñž;.­¯þîÛXɯ»x·göW©«·—WðéÎ?¤ó|¢!´ŽùgkçÁ/MøºÄ<1ÛŠÞ¤?£yõâ³,Ÿ)J¶ç‡nT{y6¿ ”ï)G/Þ\r4£Úóf0©|öÈöEÓ8²¿W¸LøÚ¶:Xßzç;œR†¿á“=‘_ƒrú"¡6¾¼°Ç8a\q3¿—,Ȳ/•ôÞ;¿{™½±Åò1ø‘r¿³÷5áûm¿j^å¹ïk?̼Ešúõ¶~Ãg’í3°y€Wí‹7 Mi+DL:T±Ìç•§2ë£ùÃ18ÎqÑÿLÖÙ'០åÆ7k”%^e©’·‘°V}T|ò¦/ìÍœ¬_²¿þ©‹˜=+.Ÿ1À.+®€m­šGŽ™òÜÚ—?!^ƒúî€^š/Þ\‰4üÅÛ¯¢ÔíŠú‰K«fÃçûŒŸA®Ï˜~Çž®àÓ}¦ØcÆ„8ë}¦‰%÷«É–Æm˺*UÅITúW‚dæ'À<5lÜ´ïãÏù1ÿú7Åfyæhìõíå…=®XÔ ûx1ýòÓ')ãÍ~Öx>©˜Ä±…òFCPÐ(bMtÝ;º¦èŠÌÓ ®ë1 Čϕír'*;ï–"ÿÕ)Fýê¹Ñ·ùUè¹£ÆUô;i}¸‚˜.6 +Ë>2?î‹·Šú©V´cŽóß<-¬¶ž3ÅTJüP»+ÓwzÜL?¢[xño¯.à×÷žûóöZÛcâ¬qe'°Êw⌷{W;ÑÓöçÙ{™º¹¹Ù›ÒÓé>?žÝn¾®KmüËõ÷ÞmûuP¶|4=ÈcΓu·MãuŽ;çmo”¡O5Þîû¬«­ýÖ8ö"ˆ“ dÌw]ZÛ^1 ŽW[÷ìw¾£Ž£ú*„zo|¢ŠÀ_^þãÝû¾°}Ôû»Ò}"yÄDšJýø}¡k7,¯4ï•X/B¡˜tó»›‹¼èÛË ˆ+“ÙF ôàK4§ø@ЇäXw¼Ûý­«øo ‹å—FósÏ×€2émì9VþûÇ.êñ~Œó”€àqe\àoöމ\‰÷eññÆû»à$ÜÙJ‹@oÄ=înÝ?óŠ ÙçŠÅoÞ™‹:ÞËë,ˆûLЏbA”±š%d+ÇoH©Ä"7=æc¯û%šwD}Û?y¡X}©žÈµ½¼€O÷–#”ì³9¾¯î ¢S·Í(xEZc›÷ÝmFc}Ü2à~elµ£ñFáûñE|}?{iùîò…J=>ŠÝúe(ð6¿~÷¹²øi‘Où‰Ï²ßfvûqoZ|ë©õŸþieíB¬d×ûY.ßcRú´M*¶8Ý6®8l!`H‰ž3Ç\Øþ¼/7ÄÚvû:4Ký™ÏúN=¦¬÷ƒ¢‘5ŽŸßF,è¾ßœw XPB°—iJ©Î:æÞüªÐä½?Úð °Pï{Þ@OÉoϧÇaÔŽÛã íäd¿ê·Ü,]R<Å¥Æ5Öcrúð >Gó~gïW5Ü1nË)àÞ™Ï6:i¦xE”KøâÍRgµföÏÑ{÷»,ù áË¥¦úˆÏXò0•ÚìãYú{ÎÇ–K<ËKX®ë6>OÒrǽ_O/ËúúG|¾Sœ„ígÔ~§¸Õ£ÿ¾› ìñË ¸êäxKÚ#æGGÙš«çÊ +ÒŠÅ7r @¯5¢GaÇ,÷‡ä5ìÇþ ¤ˆÃ"ÆO(ûþ¶²W°æÍ¹ìPâ«d™1êë¥Éï2.™°˜/zŽmÏÍò÷bÓŠÛMÚvü€±oǽ·pì;ìÍ[|ÕœSwˆ»UHùUcëqG¹á½°Ñïô¼Ó¾ÏkÞødÏÇw¹Í>Yp®÷Û’ø±÷Dx(>îKŒzC¡úî\þöüræÇ1Ói›õ˽³cÅ×wù™+ð¶6—ÿHåÍö3÷ïÑøP4öú⩼x°?:u”û êŽ98͘Nôn¿üfßåq<®8ÕÛ€XÔ¥Šû¤<¢­ŒzíCXº‚Øud_3¢~ì³VÌÍhŒ½½<ÿãªßI­ö½°ê+ ùÊ#ÇN}=©dìqklñ’ûò„<~E‰9ÿÝÞòõOÛá]ý­cØcдúýi+CDâ÷¦Þl!åîô/¯Ë/XºéÓç øÏvÁ4{ŽaY®ÕûŽÙp!£ë3ó©+Z=@ôØ¢kó¸ ŠôØÞX÷cŠ]÷ïQEô®ív¼5WcÐ?àñ˼$Ê×_ãeë; +#L—ÌVŸ½9Yx´à3ÄBüs›–|þ~×O8|Ç›ÒnEê4Ë€‘´È1ALÀßå6Û{Œ^¦/[ñóå°~¾*÷ìˆnª£BbŠJ9j¿ üq§‰ÚÞe&T +üÉ»¾=¶ìÆp÷Q=^Ô 2Þ^þý¶–Pa(Û§ÁŒWÇ—hnëΣT´¬qŠ@@# Oo´¨U{+0Z³MTšŸo×]-ì{u~e9Ý +éTÛþ«¹Ì(îN9K™)G#ÏSH¼zcÒ›æÍwSa;uজ‡ +j¯® Ѩ‘Þ5ìð6Q{¤(QzWo!Çûê?½2×EŠÁ#!)g‰fÏË1Uø„i52ì3ò3L›5 +§$ð½@›ÌÈkÞô#í·—WàwS®1|jÖýýÍ3×wÍѱê})EhoüÔ;€çžÔ¸£ïô æé +>Ýôäs¾Y„ýn—ëW—,ß©/²9û–þ½©Ü¤Vòí辟Ûû1?œþq]ùEð#¹×•üi’â¼oNJ3&‚Ø¡`ºAÁî¹Ü§¹[L÷o߈ dz{yKë³[À‰ +:w:ª5nŒ‡¸Š–úžUi _d€7ÖGJ6Ÿþ0æí +[įê‚WÎDÿáø‹ +KÀËÅ>Åñæê +Šú¶õ¡1Û~hßß+õáÙw#¨Z.&vbÞhY4•ãG úá"ôCWty\0nMDÍ©G³½h4ÚËNc³=/æ +D£™¯Eß™£9Ý ªE£Ukh3t‡Ú¢†ü|]>I¹L»=Â]¤b¿xs¶=¶Šq;Æöí¢ªn}ÿô ·±çΪV {y:®CÀÿô/Š`;¯XRï¾x³ï?0™|öfìÞªçÇuEòʾREžq-ÂððÓësшuwtc‘Ó˜f¬ž) SÐ,Ê¢>ÎÄöÙ›gаL{eh,ÅûÖ~1Wñƹ·‰×dñuyo ¼§DküFß K‘ â‘üt÷X}Äã^cyf€ O·jÿ«]“‡N÷­Gôænޝì4”Ò†ñôGêPþ~¤hŒOŸ“ïñ 9¾ÛrýÈN,•ußy«q"¹î·&û/Þ8 ‚¥dKü†Y„w7Œ¿·š ÙPrüýŠžXßb×—¬äñÙ›˜©ÏÀ¦,žŽVå8Y÷q1u¸ãV«+óÖ¶TC6p þÖŽö·ä¯² +469”xïxo?{«vYbQš&ñŽë¦q 3ç2‹>,&Š· Ž¸„Ùb;‚fñ5ǃD5®+ç’ãUÈÍO¦ÐwŠ+ð$*w†h$®À«Òœ ‹ik¬;±'ðF¯<)P?A»ÇæÉnM÷#z²¸šF¿ Ù²qÖØG÷«]÷MèTR þÜ‹Q”ØÂ2üŠÖŒl+ÜE+Üñ¦!(Qü2p(W?ýN£ìžZœd<ðDŠÏb Hk޹  +Q@Åo1ŒxßÓ7;Eã¾e7yÇÄ¥wÔñ—ñ§Ð,JëHÊ'8Hñ Çæ!ºã²´Ä7"ðS;2E¯òÖâÆ¾Nhùâ¡amŽÖ}-þ\ ¸EãÍ5Æ+ßu—`Öä£î²ã ßÙÀV®_0<ÑÌq.¬Û#l­q=Q­µK>žÞvê£Ý;3¢*Ä »ý@i)ÝùQÚ9–å7Œ)fG㈈©„ï¾ÚYYȯÆc´ Ñý^¢nR£ä‹A²—éñü¶±Vio KÙ5fˆPäVc©¡NjUKšº·FÅÀŸ½ï£ ž<“Dûú†xR4¹ÇÅ–û… +@hmDÜ‹™kŒšc¦ßrŒ•¥‘÷bç£Þí}óY®¡ZÙb;ÁËTÓbCscoš÷ü¾CÒ¶yNVΧÑw…¼±T´Œ>EÉõ+W_ج´Â]œ±´Ì ŽZ"º[ÛÆ†6¦uÏ ¶eË +"Jžžèʨ°”§×«ÄýUÈqzǧC­Ö6€Ø‰zi‡ÕÆú~x-"7 7G„úÝ‘G§Ñœ%?n×#Í’M¸7è3æõ42j‰¤ýš1h¤B'‚ûþ}0ñ̺/LlYŽÝk²m» E¬=g<±äë8fä3>çH[0ê½u¨‚æÛ@}d~2'‘ µ‡KãcÅžó1€À‘¶f×vûΈ›š¿´•µ&¾»:¢N³ÃXö-’Tv+V bS­T†_–$1@»háôÆtcêbBe½xÄ'‰®+ò 2œ›Þµ÷ÀCì¾>¨wˈQ +Én\Sìâœ>úªB3è®î?=ä¨Ô¢†ÿªäœ;ª†w‘VÜÁþî[.öÆS‹ôÈ$ÊÛ÷ƒFÝ}¥ª–wk2²Æ1V,·QÝi÷%æùÖû÷A Ø—ÑEÍÓáh¬ ÷šFŽYK‰Ý ;fßTF½Q«®Êò^õ*ܰÙ5r!vÿr\¬3_Û:~ëŒýˆRF÷ÌêÛ©ŒTÀóÍØQ«áóí{Ý‘ª¸úG;HEµ^f¡”»â¤\)ÇDT•ÓŽ¾Ãc8u”¶f©$1/Pyp€Ã¥ƒ/¯rçw»èØ}Õ|©à|"»Ü+ˆJ#Xá{²UcÒIÎrã²ÆŒõwíÇO˜—Q*öçøe¾;_ p»Áܺ™ìZ"ÙªüFi÷Þæ§ ºkVÈè^ÔÁ3¯Ä{t?N•Ưa¯ô1S\Àt$î¾Ô°wé FMnÈEø³7ŸÙcGm+Ý*î»2\lЦTžbØd a¾GTvƒ)0q4zÕÆXíQ±ã‘V¯-c,è×µ.ÐÞ怜ý³rÏÍÅýöžÒ«±æ²c€êìÍ­øñ- z%Ex×cOS»‹¨M©¾ÏÞÜFðV¶‡Ée˜±Z;ÂÝ 8®`ßjþ;úy+×å.À-¸¯âiÎA±_ÁÝYïPè¨zyã×E…å¯m¼ãAˆå &šhø·."¹Ü®ãòE}þU¾Ç•:ßׯò°³7>˜%5Èö÷R¢=¡ÆK¶È+¿`Äí‚K‘á +ü± Ö¸f jËñݬ@£ÖßÍRöeUlt×B#ÝòõzP¬/š'–\­—9´ï2lÛ心'Ìs œ÷iiïÏÑÜ<$u +ŸÖKp÷¯OÏKxI7˜­)*‚v'àà›wc§Xc{èkøüWó}íy=o|vfð0‚éì fðu/Ì7|UÀÖ Z¼«kyÇ›Ð_}Žæˆo=õϾ˜»êI¥Áó_d<´ÇkõË.ÅòÙDS)¾‡Ú-¥!•ÝK¸­wÅ$’â>»xAìBÖ f·±½ +ªÕZ±g þ•Û7}Žñ¥‘X3ölÁ^·^Îñ>ÇZrlfkŠ÷ùAjÔ­RònÛ0ÁóM›ƒÉ>\Nd+ž"Wqm€RQ¸­¡„ÓëÅëæ»8µ”š[ ÿZ6V5@lŠŸ~ùU^e<ôêÌߢu®X²ªãÏh¼¬ +õ¼y™ù ±–¸ÏËèý.1À +ØûŽKHŽäR¿d‚q74Ö{7²e€Ë“ÄÒÁûöû·H@غ|»Ë'ÿq|óÚñÒDy£=èfÃʰÞxA¯"‘D*,’K¼ô%riÐ`usÎiÄ4|o }/|úŸ?à…!’ÐÀ¿ 笾T\+ÁFNýiŒ *l†‰ÇØÉŒwd°6m d'Ëϼ Y°áOc¾ô„>Ö#ËùÐZq&¯dr#øŠZ=Hš¶•¿¯3x Ò¶Æ‘ÖC* ²¤‘»ef»ÙkJsñ&¯ŒÉißpõõ6Ï?¢,ã'5™«…àÕ°Ð…äuºïHµà¿äÖ¼DmM—µi¿žAÅýº7šÛ¸›´L1ºalüâž/”LЇÛ#„åæÀ¢_lïWïQÞØþ=rskxÊ…3ËêíJÖ¾ô••å†þP^b®jêgjÁ¯Y°#˜ÒJ¹ßâo”™‰cèÛRŸÖì›ü¡läJ_¼C`²ù‚"nÂOÇÅv‹å+2Aò|Wmƒ”]½>‰‡/'ó&F1?êñ©aSx)&"-ôŸ½ù‘Õ¹Hžr—o“ç·¶öÿ“öžßm]Y¾à‡ù0kfÚkú½éž×ýª«Ú]]îªr•«&€r•EQEŠs@䜳²,Ûr-+f9LÊŒˆ)W½÷wÌ>÷\Ò¡Þ›YóËU[çž{ÂÞ¿ß>{ïSß…Ê×n¢°Õô*ØTÑʲé[%Ì9o% Q1™fÊñ¡koØ´lšÉîcà²[›‹‹Õзè”á´¦ÖW%òlá9œYY±#'ŒI,>‹íº+7[Á–z㱄 Å8±×€@AR,+e½s•ô=¹N3™•lF¶õ­¬(8•1ü¡Šm ’ÑÑElÄ4À/¬ó*+ÙÈ^d9Û=¨¬ÄVµœñV"SÈnZêTÉ–‹¨Ø‘OHWÅÌŸM áîHÁ •ÛQÈþãŸJœ\YÌ, +·ÓÇéøÄ¢°‚I›F‹«TáwÛt0©æ•UŘÛâx1§nÜ’ÆžN¢à–ì`F¼’™0XHûcßû›é1(¢“…8k‹\±»©¤´èôãrØ m¤+˜M†¢ZKqD9NBA5¬Ùº¥Œ Ù²K\ö [¾ÃÑÁct‘˜ÍI£}±˜ÇÃÀçjr+v(Õªòâ.ãV°Q=Ü?±ę́Ž:{2^ZÜMô²x‡”0Åâ°‚M‰ça–ŽJxs\èUEg“”ØçîÈVÝv;‚¸”ƒ=²tÎíÂ5¥¸ì¡(ªŠÍV&ÄÑmtÁe߱ʉY®Â­à°Ï²Lo'tÉrYùNËL7ÀÛNwáâ¤rR¬˜–2a*¼Râ¾€ƒÅýa{Q^‰ã_¡‰ªR\­¢’QUèReö½âƒNª'TÊhº +¶J +z–ñ‹ /fñ,‡Ž{1êc"›@†ë€r‹•&ØßW`3BT©fļ’m«Wt=¢‹ŽKñ7àš¡ôíÇX/oð*Øtw.K„yܪ‚qâðx,f«D·22v„ÇÛQiu;ÑvG +·XÙ ‹Ë+Ù×1–“‡Âp +&¦ÝÁÁ žó}¸ÙR¼FqÍHúnc¼Ù nÞ64¦^U‚#]wPÔ§me gKàê¯ÅK‡ðï1š@Ü;§xt’&½šT3Ooת)z««JXºÄ-&¥…Ü2¼›K88°UZg¹8¶ºè¾è*Ì÷p…$ô$«“hÖÎ6P‚Ý‘8¼«Š> f+]2Uœb"y±NÉv<¶ª í»¨fÄL„=‰X×U¡³Œ*@ÃÌѵ•ØOYUž®Š=î¥7 UÑå"ìPÀÉ!Ul”ÍŒŠP©Š®3Ú7L«¶\\¡j;U˜[ +ABú)ŒÕØÐÔ*šBc +SEW•0ƒq<¢ù\®-Pºã÷8 ¯’ưHÆeí÷*c„•<¬ÑÊYÖ\E)°5u˜àí$èL,º‚™-õSÁ7¨¢ï½Å/++¢‘*úFÖj9LÙ3ôÊ,þ¸ +GР”N?,AÍØ#Ž h!GÓ¾Œ¢g±(fkT3÷h!—Eº%t1Ýâ“\|ˆRÊ”¢³(·K±•(-å²Û“+FÈ‚uú¼ ËŠŠ€Odš-Ûá}*ÆÐÂmbQ¬ÎV|’-6SÊ„^‚¸‚­tPÉT!·h8‹ +¹´˜lY‚b*تbîA áé`.ó,ݴŜ翙eñBñ¦øl9&Æz»…v 0gÀ´]’Â4ÀD_‚˜Ã ýt±œâ™JñYúh˜®`¾Í£Êª˜ãЖ•‹7g1r~˜ÃÔvb¶GñÙRöP²ˆi‹Âb„ÞŽº»<{O‡®09¯8Ï¡ÈÄè‘0ãYß"-.åàp6tc1ó,“›O‡£`ÙvÂL9·8Rü=›*@³É¢°„ƒ;[¬/BÖ%Dóp¼¢ÕbB-«˜/a@ó4³¸XO£8¹Ñ‹Ž9̧ðÊÙ¥È,¦R͈+ÊØ¨J:¿n§Юf-—³¡sŒ»—”â“ÿbÆ+q½Eô,]þ¬Ø6Š>hÄ 0)–¨»¥ÌËÊv„TÐõ™is€AG’½Å­W…;ËŽ-Ë%éЬ*¼IÑ¥Pø[+·(eÓ¸Èï[͈KªØ¸ÀŒ• +ƒ#“ÊK˜C×áES< * +™ãÖUÌ&áSQÉ<Ë8ìè„ó +6áüǹáXÙU0b:¶kV<âH1”Ëfìq8<ö÷LÊ.žQÅÜ4PÂÁæªt;ëÝ£SÅ&ý-´aǶ ;õѽB8q¦”ƒhƒUŬã E7mÇv2§\UÈ9VŽØaýƒ¦¡´”ƒèŽ"6@‡ TUîˆ#­bÊz#‹]Ž“þh;‚Ûeª¬ÒarÅ㻪 +\½-|Æçƒl;§ð8Ûˆ1ô~*z‚ªPi:ÜYLÉ«*Ø„îªâIT±r ‘P¿JpŒ2ˆ+€€ÎN¹ hÁ¢*6&¾ŒŠ—áƒhz¸8^“ËœDWÑ·€áH¢b&jºWOSVü}vÐÒ9eEÿÀ+|âËÆ)V¡j=8‹¾1 ?æ67:¤¼³¡Ñí8œWUÊž8¡Nᘱ*úVU6>©¿ Ÿ]Vñ&ÓÆ î ªD=¨ÂñI´7®(ÄñŸø¸ª»ZèEv½qp2:-.ÅÈ·/‹¢."ß2œ²Í3ªè?œ—VŒŽBäm³¬¤èˬbk.ÐjǬñèT`YB_…¿€Müá0 ’N¦Å!ËLFÇ&;–ï2ÁŸÀ8(K™»jF D|gzJ‘Hóؤf¢+áKpÔôö»£Ö•V͈+*°ýªd²Kx\|' +fÂDx•¬Eâì¨iÈã²ø„S,t[|–9í`”añÁÒ*¬‹é˜Äâï™J†ÅÉeîàU=ÉeÅbøE]«(þ¬hѸ¼mC%«‹*úÁ«ÄU3hUœrÄ&Êãü/[è“Ne–Wö·¡áª``N¤é”Wì¬â•cŸP1öœ‡Ø®ÃdAðÊwäírÙø{c0Çaw>ºJ–] øö ^9f´Ž(-eà°¿³±ßÝŽStq¡/t‘ß¶îå2k± W­Åê`Ó@9›"ÂcÍ*ò!•aMEók,æ”n:¾"„ÇÖ2¦ÃÇ9Ø‹ÅBR^U1NŽWŠï¢¡óK¶]Sœ +¼£pr˜±ÑÌ8h‰ÇÁ§iýîcœke,¨ÅáÐÈi‡o˜0q¶wS9NáqðÁê+“ËC·á2=¥¸E¦4%= ¬Ç³hã\~t™‡-ÁÆãáoâ1Øygf:ú*&7žS¼¢(,a->å!…QÁ +ñ!#¯„-¿@_9€_Æ&ÑŠÁh8lñ…ÞJßìÈ6“W‚iÎ7`žÝNï`B}×´‚ÝbÛéøíºpŒi)ÁAnôáa-Eõìé’òp~G ³´°ë\õªt‡>ÛvãìòR¶=· +]ìØÎ\–›áë9ŠBœÆ‡¦çÐWÇ7i)›‰ÎeÏ9w¤P#v%Ö¨øH‘Ëe“ 9ì•:\öø—^ŒKž¾Ã0® Ä¥ãݰîbÊqÙûbÐ0ƒè&Ôb@"z’-€N +X[A'ªâS\ÒƒÌ,>@¨d+ƒàtþPŽ“D¹4¡Ã +6e爢FY¥QÆ8µ@XήCš±â8lzóÑ5H°â¢Ý¬E!¶•ô*g~]†²sYÐÊ K‚ål!„*,üQTІóö~æ<Œ9r¡!F S(§’®)Œ×r×t¨,ÅTýƒSoª*¶ë.ˆUU\æRFÌ+¦Ò–‡Oó·s1¸åì;CÅŠík„¸ ~có,ò`Á~9bð£àâp4–ÚH)eÅØ¡VÆ\5´#lž)¶ÎÙ±²±‘åel…Ûr`nZ-ÊpÑÝŸ¾]"‡žÐ²í¦Å2wR,ec@p$-ÄGMôt3 +6úŒE’H\…Æp¹%ZŠoa3CJ°Æ¢C”0.¡£O±˜ ¼ç²Ç®l±À÷Çb­âìøe¯)A¤¦2o&VÑÀù:\ßš&0x:ðAíOšE¯|÷ Q+QRÁ²q^%[û’ñªïH×¢…8KNªï”êÏ„¢g™ÓtZȦߗ³~Ôƒµ$Ùê/e¸4-ÅÖ¼¬ªhâ‘°)«*Å•$^c³XÒsÙ$d¦úçjNþ\¯˜JR(‘‹ƒ)p{¦ÞX2\^3+Q~6!°‚ÍDû[IgålF"S5ÀÃÎK|düÓ÷ãBhõãûî*·oæácÿqö—Çž~3ø K¹8œ—¼ÿQ4ŽýGÇ8ø's_)wÇMRL᤟ök»d>ã¬äðŠ<‡-™ÏÁ•¥¸Âu›\RÉeª‘—#‰…ìõuH\Šc˪v”Ü/ç²E9˜Zuål­Z›îøÓ~mp){¥%ôñ3Žc:ü$“_k¸L^ã[/ûaœ ³ÑyåøâŒÊ§™8 d;”ò‡¿.Ã÷§à´>:„ —âT`ế«’ sç[p!dœ=Äe}b(…‰%粋]ÁP‰ƒDʹlr­dqh®ëˆÎðñu9®‹÷“lW÷ã±Ñ¶ì%!Ul¡ƒJ¶~-Vá~nÎ7À%G*Š”fó{¦}Óú^ºT²Ä¿~{!àÚ®¼âæÀ SK ÓA1x«m—*¯(ß–þ¨êíìR/år*ØÊ™8¸†IwÅÙM¸L?øà šJ›•ÉäÒE2ñn)e3ðQ +Û;"}Öñ³د”MVb*VH1‡-‚ƒoéCB檂ªâ­ +E!“ÒܹØT–•â"8 ¹úçß¶=p8s›)%„®Œu`âà‡2ön#ÚûÈæŒ2 „tàÚ®ŠÂ– f+Ó®Î2ÜÀz°µîUU8ï•¶€ØºóxxNyUìœÒ˜Œ2äq1)ûi#ÕlÅt^9N¤§ãEqÅô²Rì¬Ú‘–±] 3y”“P±íÁÚÎiØvOÒGEae.VÁeœ (OƒÉKEeévZ¯”­ÇxÞË™‹e¢SŠ{õ£/Ø.ÿ£–ñ§•³§2l¶F9 Ù²#Ì]¼ Õ‘ät®gVÎTâBB¶gEéßú.>sZ½KH§ŠJqߪSµ}2¾}‘>°ú¹&ª™¶K‹d¦Œ 2b1{]ü/Ü:sG8 +V¬Ü¾#|;ô Ðu9sì^º}a5íZÿ¹wáê㕸¸]Ì߯‰ÄLµJN1G£‹ÙÓJ“>SY‰)ò!TSbPè*sJÄ)Ö-Þ÷ó¯Û¾î€ÇÞàJ–²qK0h¡Ý<¸| [3…S¬ŒUýómàÆËÙòŸ¥Åœ)#Æ—¥Å4©¢{èjzØ£=-¥lÆßn€I«ÝáiÿiÐøŸy ßt¿óÑWÖuÿàÂúÿÙ=ö´ôm¿Íù¹íÿÆ5öœ’ÝcÏ…Dµþ@ LJÖ_\à]ÅÔÒmqõÅÜÒâ9Õ;›øYávèNûSo¡³.X2(ž *}4Wñ6:fÝ| 8ïQè¨èmä„þ–¿}µE;IJéW ¢ïÅ»w¹ã”¼…--³[V—£«l$Ì®¤Vðát9xvKÀbpéXRøÿUÅrð·xÛ0=È $Cb„ÈÊég··9:@@õ°¸Í±˜V0\Tk³¼ò‡M ãt¹ý:ÞÇ(d÷ª’.tÎùa׹̽ŽÛŸ¹ï­¢˜¶lÛƒòð·XüÖν4³CUÇ·´xâM‹¹èô ‘§½¸˜YAŠ"R§…åh»˜ ª(/©(v‘&4¦ÝJºG¯"0AXHGÐÏò˜ELGã•ã—U ¿ÆÏõöoíT.M£~ò](1 ¢òGß…*«Êø]Ȱ"zð£ïBé(wîGß…6BLÅïBžb,¦ãtðe\”XZõÃ/ûiÿ_ï¯ÿßæº´ôg 6çí=ŠÿOV›Î°/G#SUFûà“ÈC\¸ÐΨþÑ? FºÝÌÏ +w4Œ÷Ž>rPá£+ÚöJzvÿ'ýý§:ÔðéoÁhÁ3‡Þúóþ]oWϾãÇÞ>[óÖ9dËé&Þ£ÿ½9Ù÷·¼N9%•h„ÿó§Ñ¿à_àÿò@›ÁÿâÑ=-›þù[ï¼Cwn‡¦c×Û°K¹o=ò¿'fÔç·Y’œ6÷nLhêׯ”gV§äI·¼‘ +Iê WÏ‘øÿPÒ)=™ôªZˆ€Qs(›^=ìYY“פgt¤Û(&\fYrZß‘œÑœ‹;Õq—IüjT×øòìÄâ7ü¯îò÷ÇÇ„û“ã„£÷Hb²ãýŒÇЛp¿w_ødÃÝgZ×·¬>’YyؽkãQgUb¼{wjTvŒ˜0´eÝå·’£/î(jS.uËÚD×ǯŸ´W¾¸ÛôçÄÿœINð÷¥g¤§3>M7é7)ÒNù™ä”¤:>%9úòN—˜TœÝ +ÙlY¯¶'åP·¤]FY6dR§¼šŽåQÑþgw[9«øÇËk2N“49¥o™…Ëw ­Äd¿~ã1|Ïw]¥¯¾;ûÏ¿>ñËõ{-™)åÒaägÝFÑó{m‹7êßyq³ù½·šËž}{ú·;vÁ7œÌΘ$ñIymbJÕ@¸ô|ÊgÕeö¾ ‡M¹6a-êšW+›I__ô§3í‘Íùµ½ð'Ìz´])‡ütbJ\˜VÕ¯OÊ'g”g2iÝÒ½ºw_<8[šõˆOæ½úÞÍI— ˜5Ìɡ‚½¯‰Ž¦Ý á³jצÅÇV'„â0FÙVBEº”O/|=)®Þjú3áÔ÷$\þºCRKÍùyû¥lX'!C~& dƒê®¤Sx85-<˜q÷#\¢[x_È 'š.¯hMù•­1§øxÂ%=I†ÔÝi¯ìLÖ¯å‚VsÆ«…yQwd:aƧ“¬N÷]žäL¹UmdPÕ¹6(ßÌÙ/mÁ{ó³V;±Ù7\ѪCÓ±æT5£õ—ö[-°ÖˆààU*<ò5è }f5é×õæ"j>á—Ô¥ýò¦L@Õ‘‹Õ$ü&1%?E¸õ½™ààåLȤÊÍš ù9k&¤êJy…'¿ðtÒ#8›XÖL^éÙ½Qû/‹Ÿ7½É…ŒJ*jÒe‚êN2 ë…¹3BC>lT~M×ëâ=¯Kn8µm«Ź'CGÿéÅmÑAÊmUýýq¬ñùÓ¿yu·þ·±iM3èGa&d·Å=zá«Ç"Ð)ESÞ'oÌ8‡VÇÚ¹Ïî´üqeLt8î1Ë^<–^øªý½W·Ä»cuõÉ Ùñôtïáø¸`ß«û•3Oþóó;ü3ú®u‡âÌò£–ò•{å©©îcTHÞJ¸äuìüÁÚ“RÁ YŸðXdi·¦9㑜·Á>ú„`w¤õi¿°&åÒtdݾ‹ð´òt|¼æh,[s´î‚u)ŒÃdü:áUµRaÙ92 8J„ £Ûx/î×ÿ61)oÊÎI….$=ºžØŒ²)á”5¤}ʶ´[Û‘›µXɈN–½\Xº™‹Ž|›öõ'üzq&Ø[CE'ó³Ê®lD)HûùGW½GW§Õ-/ÇAWû‡þ²`4üõ©JœöÉRnMk> kÜ ðd@Æ\ún˜ú”YL`óÚ6fzkR^iSÊ'®‹¹ÅÇ_=iÛú´æ7Ͽȅ®Ž¯è³g|VuÚc’$êÆŒCך¥×ŸºíŤèðÔÅS¿\{¬jȸgͨ[b.ñ‰Ød÷~Ò%=[ð[¹ Y›ð¨š_Žyù ÷£ ¬›õ'Ê©IU]zZZ“qÉê“3âZ«î$‚íâþ®ðõ¦_¿ø®w÷âMñî×߉÷$ÆåµëOz÷­>|°þX´?9-?•v+ÎF¿k强-†ý90vÜ” *šcŽîÝ„Wr’ôÉ΀¾nÎAgøLÒ ¬ Âm×nÂ^ßš“·§<=bÓ»3‚ý)—¸&º=áT6lLjVGµk¥°/%GÖw¾¿|çÜ×îuU“ªú—wÛ9/nó¹ëd‡^Þ•î‹ÝSW?½Yÿ[çÅ=?ûYÍ¿¤¦” ”Û¬¢üí‹qñáø´¾s3Ô1ó±:ÑñáÓïj~õâþ™ß®w~°6)>’p)ÁNt§œê¦œß¤¦‚c!l³ÍÖAeÐö¤=ÊFÒ«íÌû ½yË‚_|"î9œñ·}°6Zók°GIXk϶–m<éü`ðÅ›y³ù ¬•¬å¤KÕœö%i·QH€ Myd§ À;dÄ Ì-Ú/“sF-9kÒ“³Ö~Ø#™ ¦;é…µ5¨6ÌöÍ£17gÐdaÿlÎ}•‹XíY¿¶'>-:Z褛Q²Õ* +sZV¶Çâj0UÂ%|£m§¼YÞo’^yáîÞGù-y°73òú˜£O›ñõYsA£"ЋS^=Ÿû— ([R~Mçæ’ýjnÞh¤–näæem '?ÌqáŸÎG•ü ·ôôâá‡OJöçƒW¶æÌæÍ9½*6›(ÐYŸø$ájªxýð\ÉëGü¨ N\˜ë¿FFú†³‘þ‹™ðùo©èà§1Ûðw-ï®ówSnÉ©BȨÊ-Ø/­^°ÅfsÏHkâáþØDû.Ê#9 ¶¼ð(Ï­Nöx=¦nXŸ²n8Íâ´CQ—šîÙ»6ÖZþâAÏ®Õ1Õ©¸ËÀ>*<¹Qû ìpÆ kÒ«ħ§3`œÂC‰IMÆ#;³2ÖýÑÒ7œÔ¤®c+ØßŸõi:.Qõ†Cx06#9öúaïGËE{¢wÛËuíïþowe‡þkê±¥;=iæ'ǤGããݽýþôNÓïæo6½³1*;zM‘†÷R€™³ cÒ®¶÷ã“ JL5þ)>ÕZŸèú0åQ·¾šR6½~Èß³8°£p3¢êy;»>ÑýAl¢ëýädÏGOïµ–>8øŸ½WëÿuZUI§üôò£VÎÒͺ[úêÔ/—¾<ý¯Ë÷ø,=èÞÕ×Ëù?.‹lzìÆ,茜_t8Á©iÁÁ•)Á¾u‡tž®·€ð`¸CYtK!¢î)À»sQµ0R÷dü`Sa¬³žËßfüý0v|Ò§îÈ„$uoôꜲ+7+mZžìÙ»üH^ó& åTØbØœ·Xß,Zú7ç šÂ‚A—‹Âž /‚µL†©àð5jöÒÃ|´ïRaÁdÌÍë$Œ)ì¿:Ò¯jËúõ’ŒOß[ ^ÊÃ. H¹ä§A/½|æHÚ+=½áè=H,º¸KݶáTgCYnvðz~®ÿjaÑ2°¹dîËÍ«ÅDTÚH-ê4ä¼AŸ +' +]ÏE.ÜzóÔ~ 0™6îF8xX´ïr!j"`¨¯³FpºzЕç2nECbš¿76-îü>lüë¼Ùw‹N¾®ýeÚ=|ñÕ´ì#ØsÒ­n¡ü’Óñé–÷Ÿß;õÏÔ½ót÷³QKGà¦àÃÅo:Ê“²ÀëÒ͹ظ®ðѹÛÍ\¼Ùðïù°xºâÄ +pÒk£vÓnÁᔫ{ÜÑ\ñôÖÉ_=»Õöçä”¶ä¯î >LLËÏÄ s`|—wp—¾i}ÏwíÌ¿^Tü¯ÆS¿MÛ7žHÅ÷|{ÒõA|¼÷`l¼÷ÀÚ㮪´£·:>Ýs0é×fƒzqlZ|tåIçûkcm0=7¦ºw/?>Þ¹kú“£ÿâ¾pø—oÂʮ͈²“pšZî‹Môˆ ö<{ÐVøªáÝ—3€çÓ°ÏÒ“± ÁþW÷›þ°tóô¿¯=äôüNgÅÕ^î[‘+Í»Þ]Ù›=@[ÒS¯ºtv Ò«pY°ó9°I¿¡wcJt4>)ÜŸ]ìIfÏøDÇ©IŸ[Ò©È@ÿÎÃú$CªÎ´·÷X pÍÒ݆߮<–Vç#öátXÞ™ *Z Y3ØÿVÊXÅÓ{,éî=š ŠO碊öèI*4rƒð]JûúÍÊؤÕiÑá —¤föʺ“úؽµh¶ _Ñ>ØZ0Û +Qƒ°—>˜-?g±ÁŸ5Ð÷¦<€/‚fMpú’³¹d4~ÿÜ2²µdî§ÂŠÖ„› îâÊÂüæƒáU4€Q(àI˜ãŒ;˜2å–Îø S6ÆÝÒ“¹ˆAMEÍf*j±äÌ–èØ#"°#†ÜœÅN-˜à߬6*2üîƒ÷YGòs¶á<Ø>ø¦€_e[¦€¯'}€7­Œu}@xtÝÙ€¸²¼>í’ÁÚF¶UÝ|Ìš›ø°=ü&á6Š7¡]Â¥lN: «cЯi­4ã8Ÿt+Ïf`>‘ÝH‡N8Û?|vçø¿ÎyôŸ—Ÿt¼¿êP5<ŸÐ5L]=ûï¾+g—rh›ãSÒ± YÍòCÙÁ§w»f¿j}wù^ï¾ÍY“áÕ¨äðò¨ì(ð%ñ³ûÍ¥+£gÿ¸:^ÿnlª‰³ö¸‰“šBkÈ$]œþ¬õO¤Ó¦Í@ÿRÉ©…['ÿ5t½öŸ|çkÿÑ;xê¿®~#¼#=é¿vâ×/oµ”múTí”[ÙH@?_ßoùó‹ÛgÞyþ]ÝoÀìAß°:*9D¸´¹ VHÔ °¯´•¾¸wöwOýâùÍú²ï#’ +øH8|t{lZV›”]yÜóþê(wÚ%=•õ)ϥܰ†Æ%դϬH»TM/ï·–®û/¯ï´sVîus£Ÿ¶ü9=¥îØ ›ôi„™œº®¬Û¢Ê{íÊo”Åœâê¸84ðÒ|È ßœ·®ºågŸÂo“Ó€C}#¬‹ŒlÏd 7á⥞*zÈèÀµL¨t·šÝ {­#ƒ8Œ»¸ŒèÑJ’Ai¬YÉ÷À%¶¢{>¨,%o -,È;ß<7¾ýŸY-¹pÿy*#?…¸Q¯î\uön ã1ô)þ2·dÿ„ êåq—äôÚ”øXÚg³ç}ƒI‡ª9> cv=;{u +ñÊ„Wyéƒ §¬n}JrdðÕÚ“ÞCÉIUs6¤—Ä}ÚΗÓÒêàçÞyñÿ#ү㯎vïNŽKO$Fí« MO¿ÓŸxyßÚûBBûcï·”¤—.Ý9û»ød÷^Â0 oúKT% `ŸÇ¦EÇ^<îä-ßÊ:ûÍñ }klRqrù¡pÿúñ±G¢C䔬–œV5¼¼ÓRæ»|ôÿ~q«½öG1%:LŽY{Ìÿhõa '6Ú +¶­cW +0ÝÊãÞ½Y¯Q 8¸Öu#é1c={6ÆßKO·Tä\=(O÷Þ,ØÛB8*`Ÿ ÉÑ䔦‰ôêz)Ð}…ˆVD…¤ ëSç8ñ)U[Úc5­>‘ûy:1¥l#¦”õ¤C~’”š‘œz=ÚöþÓ»$z é6+§Aqz'`¦€®÷/ófË›9`c½lÕ)®yú€¿+å2J¨Ù¡ÏŸ†¿1ìŠìLÚ£Q‹9g¶ÀÚggÍÆLdtµÙHø{k“ÎÆÒ¤»uWÒ'8šIÎäAçæ_Ìõ’ÂßðBäü7…9$¿Ð{ºU>ÕÁÊr{?òY"ß$òååfšèµ)éñŒ_Ú°ú:?«“>esÜ%:βîÕu¿š;ê|¾t—Š ^ÉͪdXÑBÍ*Ú²è¿auVw-Iú,F2|ù œ ±Ù'H€‡7&]²“)·º•ôÙ «ÓÝ{Ö¦:w“R¡k4ß è€7ÏQ ×È Aœ‹ö_†o6ÅÁÎd‘-½ÈÿmKå½áÃÿX \Ýœ»pŸŠ\I†äͯŸˆö=»§;µ:ާˆ/?ÎÎÊøÍê”çò­˜û _,pñÛ¤[ÛIŒR2bµfgm})§IHxìÂ3`Ïx­`Ÿ`O ö¿žìY~"9Dº "*¨—® +ö%GÕ ÄÌÈPlÜ.^7¶¾U×®ÀZzq»…³ò°gOÖm–öØ›u‚® X $è ìߡÍ%Ïï¶–­IŽQ«>ëL·MMéÛÈ‹”˜Öµ"¿Rb¢{÷³[5ÿ²r¿é±'‚=Ä´¾ãŽŽÊ—·[ʳƒ(í6ð“Ó‚¯îÖþzñƱŽÝo^­¬£¼FQÚ ¶fR×J§HLvíŽÖÿ.9væ÷ɉ¦2bñ-?ÜðÙý–Ò—w;>Èù,†|ÐÞÜZO5|2¨hI¹góa¯²mxáÐ÷dƒ—7&z¼ú®é÷kZ+R“’bF~†p*ÏåˬŒŠ®/Ì»’-à`_šbh?ƒž‚ùØw*ΤݪsYØ; à¥è *pþ 2på¸JÍö]H'ˆGOzt]Tdà +èGCÆc’eÜ6}8C>ªWy –5æç¹9½zk¡ï +èS;`àfXÓ6ÀKý·æ¬}¹ˆ^– åÀK[óö ÙPßpàêŒÇª&}z>Ìsc¾ð • YÍYx Ï%¼fyÊk3¤ƒCWŸé[^>‘!|êÎÍ9£n Öá÷OÍC¹9<°YRþO&c€±7“‘!£2?«Wl!¬±Y3A«!æÔ¬µTe=Fu.xþ *`·Çf”õñÀÚÀÁÒ-¿°Ð½ö1?kÒg<×Ç ï¥¯É`__&dÑ%³0'ÔüÀ§[È×6o2'`œ6f4- s÷ùÙ<Œa>2üEaöÂíÜlß0 ‡®uu\^“ÙúbN½üÕ¨¶%î>s}rÕùéhÌwå^:d2¬;%µ/G{¬L[4ËžÁáù*à»634ª2 S‰ ð'‡¶•ð ¬OÛUk“ús”ߪ§f-Øu0)á›lC®MˆÆÇ§®>ËË»ªêø¬k›¬ÏªÏÃXÁšÓÀ“ŸÝ>ù›µÑν)¯âÜÓozv“ýZØ{:*hRS›9ã·6¦u]Ïîtq_=è®zõHzxé‹®²Ä9pééÄ„àp·|wšî¬[Õ²t«î7‹_Öý;1£h‰Yúú̯_ß>û§Äh÷þÌyÁ«¤á;_Ü­ç<ûêÜŸ7&ä§—n¶¾·qO¸7ç6(¶ ¼™{4WÔ½xÔV¶1!8\Tùꑤ:0ÈÞ‡5 ÏG rÀç‚—£­Kwš~SœŒûŒÚÈí~õ•¢š˜¹° ßPðYµ9Y–vªÏ>«ù·Ð•}¿H=é9’ré:ŸÝæó†î¤³ß’A<ÖjƧiOyä ‹Oš9+“ÂcYÿðµ¸g`(æÒ HÿÅ/IÄ!Ö1‘ÀùÓnmWjÚ®NN]¹–ršÅ¤_Û kEÙˆFXXÐ*ß<Ó¾¦Ó!ñ™ ؃„Ïn†?K6`Õ¢}.Îͺ<èØ7 öKTX#Jxº lKºlª´Ã"&\6Z[›‹ƒ`·ú‡ zMŒ¬Ï{R«éµC/ˆ|'û8åèÓäÂ&u.ª>Uó†Sz2Õs 1¶˜‰àÈçk.uKÌgT‚Þµg"À•í jz’^m;`KÔ 3.‹rm\ßIúì¦l°„ ô fm›‹}aÁ2ü_œôÊà[†¯&=Cç«2îÊÍ\Ï-Œ|—¬”Ÿ·À>G̺ç»_üñ-ÀB2rñn*8x5¼DÍš´y˜ïBØjÞŠ”ȧåý¼‰;s¹ýãUç'£/W¿ZïW½r˜ À€õ$dÀ Lû ò˜[Ó¼Ñú»´OÕ–ò«Z’~M{K{ÒŒwèÂÚ”]ùü±üh!Ò?²¹`*,ê5™°®7å6‰“.}çú”âtÒ©ïz=£hs_:ûÎò=yóÖðŸPÿàìAÒc’&¦¥ÇçoÖ½³1!¬~1Ö}èžfÿ?d§.\$ü}}IŸ¶;îÒ´Å]ꦕqEí³;ÝÜåÇâ¾›mµ‡ÿaù¶°f3bEkYIÁ:My%§_?9W滺ûÿ\¸Qû6áŸ]Ÿ’Ö¾ü¶ƒKNëù”Ç IÎHO&¯=éà.~]û›7›J"w;ö|.ÿè¢W;m…Î_G†4B8ZÜ!?½1Ý^•v «Ó~EkøFý;y¯¢õÍS“•Œ¨øÈOJøU­ËcÝ¿~Ô½;ãÖ‹Ö¼’6ç…Ó¿zõµŸv6Nø8Ô-ÈnŒ©Nº.ÖüÊ5xðWëø‡Ÿ‰ŒöüôÄè•k³‘ó·âNu+²+ §ìÔó'®NˆkIÐëS†®øŒIœñ_¹— Ž|–ò÷$‘íðé±I婸¤©;æè7>»XÒe’mÎö]ÚŒö]úþ©uö‰"×Ç=]»{¶Æf ÂçEÕð»ÆBôüwÔì…»ÙÈÈMjvà +²%À«Û®öÒQ á4 +ÓÓVé>˜mðzaÁ:L¶Oú­:°ÿMú ²§eÕs7eå\CƒèÌ…®öG”ôêD„mMføÉš[ÙþliÌmR¯¹´]k3²Ú”_'‚=jûdCûtúöè…/ν·1û&4ò x +öð é9*ª.¡¤²Æl¤oøÕ¤Iøì‘ö ì‘à&ŸPѾóÙhßp~ÁÚ{ÄRˆšMk“ÂÓ÷{—žìJ„†?[{š ^ÌE?§fGn"üöfQ)ÌÍóß´ò¾å×Ä|o½p žMôÉÖÜ}–üÜÐ|Ôd‰9ÍËc½‡2^ùÙø¤øhÚ§hÎî¥kå`ÌI°ë)±wxùò¸òØðË›‹ÖÜ¢N ßÚ½1mêNºÌ¢4೸WÕòôq7ðIãoÖžÈÏæú.Æ]IÜeUÐúμgZ×A¸ ˜³#ô‡ÿ9ÝoXwèÚW&eÕq§²8KSbFݘrêÚßóe'÷[Ùž¿{öuÇäCOû_’Yxý¸s×—gß‹=ÏùŒò´× ŠÝW/Ì XÖÆÔ- ·:K p+§ºt)›Òjǵ†ßZßû_&úNVfí—7<òú¤WÕšõ™Õ…ÍFÛ÷lL4–lL¶ó^ß®ÿ‚«·†š“w®ÌôìM»Ì +ö3áÖ÷€MèÈúŒ²5—¨æÅ½îÓSV#:suJtÖb}jÆ®INÛ•ñQ][rLÛš˜Ò·;¾n)UžúýÚxl1ÁK·×fÙ­Þb0&TÈ +¸Ç:‚|IØcÏîH>NN{‰€Ùwš¥q·Uttá, ¸záQçÁkeÿ˜7H7#WÓ^MO6¤(„Ž»ÐÉ©°I3ÿ`ï·º½ÿ—ëâéߢ—ï%|ç?‹y¬À«û†7çlC›€ÏHŸª%>­8™žÑw£(–·ä#z%( 댌 ßHCûË3ÂÏŸw¯jë þ¾þ´WÞH´½›³ƒŸR!›5îµSÙ°ìTÔ¿œT?}(Ü»áÔõÌÝïý8å±éÉÙ᯳s@·Ûû“Aƒ,áS·¯OÉN,Üêæ®<ÖŸC:“ŒôŸOù/³f9kÊF,–ü¬AzB¼ôHW÷ô¡êD.b±ÂŸ™Þ•þšš·“(Fl.bÒgýÀõý—n­ÌHZ^Nö̇¿ Â×ÝÉÀå{ðnžHº%§²MØBCúŸšµZÓ‘¾ó™ÈÈ—ÙÙÁëDH͇þõ’a“ýÍ¢ÉJ‡&½ÝftèØä‘,ØÊ„GÛ‘òiª;sQƒvkɌ왵³öÁØŒ¹7î6 +–§¥µ ÷Zþ¼þ@øqjZÝ눟î”tÙ´)à3I°Ñ„Ë(ؘ”×®<–ÌS³1.?žÛñâ~ÏûÏ¿é.‹OjÎ&œª† åÉÄ´æÜú„¦~é®xOlTyêûQóý¼A‡p4x”’òÛÍÀ]úbSšÖµ å騔âÔú#án°hbRUŸq™ä[»ƒ­ý¨ëý¹ï<ÿ¢þ×kwÛË3“€µý&ŠMì¨ÉûúmyŸ59%¯KN!¿³èDÚÙþa! ¬]=[œ‰—õ\θûÌi—I’òž‚ùÙ\ÐJ·‚ͨZ‚|U¤§ßšñ\¾I¸¯Ý'|—¾N8µí¯¶–.}Ûöçè×’ý×ù»É}0î5*^‹OòmÊuõ6èLù5]«S]&‚ý©ñQ* ¦üЦ„p›gp(å2‰ÐÙìÚ¸òÔè³çΖÌ}rú[“>¸Å:¤}¿N.Þ$> Ž|š +Øl«£òã¯ï ?xœîŸpÛ´qßÐ…T`ø¬×¯RÀˆ¦‡ð+Îm*Ì*; ÏáµÉӿϸdgsáþ i46žá2„xNº9§é-̪º W÷¡W÷ÎüÇÆ¸¨æFFøu|¾/;7ôE°Úð¹tÄbŒù´=óø»@/ërðû4pñ˜Û¬ g-°VJàHÒBH+L_[=ãÕRÁ+OÈûådX/IPüU?ج+dáNÀc0·iŸYE†¯¯ylæWÓòÚÂÜÀµ<ú›ï¿’ƒ?’޽ב>YK.2tcÍmÕ¬8ìz"pén6 +|}Ñ:’‹êUÙ°^‘jë.þálÄhÌ.˜û^¹{ol>??J-ô_#ÃF„ eù`ß ØØÏòQû@nÖ>ŒüÍ…£>Ut'ýÂZÀ%*ª“Qó&KvÞ6˜të» ¯E“òZ´°Þd(ð)Û^÷ì[›’Ö¤PÜ“ËØûú±²&>©} kìÍfHÚ Ž¿ztâKßTÿâå·gŸF¸cFÕDzÌmU"ž’öéÈ¿±Vöä‚ÊöMÀ‘°úã(fRv"㲩—G5g—'ä§PüÙË{ x}¿©"=¥hÞŠØúÒimzFz"éÌïÐu%ÇN½»vïè¯6œûsx<Tw‘^Y=1#­#\êÎôäH_zªOw‰O.ܪþ·õÑ6Øâ3ùZ˜G:Ò­jJ¸ô½°¶¾ÈÍÙF¨ˆìáëÞŸöô$½Š¦\ЬÉÍÚ)X³ÀI­I‡¾}ã‘úLrÌØ•×µ~q‘6%=ª–”ϦGº ÆGŸ2õ¤fúM€9DIÿ@|¢ý}ð$Ô +ÐùkÚ­iK:d'I¯QŒ° ¶$íÕ¦À¾e’3)¿ì,‰Î¦ÃnÅ|ƒÃ ßÈõ„÷“Q20òp*QÁ¯í¡|ÊÖ䌼ž„õ– +öÙÈÐàU +l=9K¯§O6çÍÖ͈šOÄu¿àØfTÚ¼5+kÎøù5.áñ„ˬ¥ÂVÐ¥È߇ÎõrÒ+o&ÜÒ3Ù€V|¡aeªýÃtÈlMÏ\‹ ’õ Y›;@Ì É ÿh6(o&CêŽlô}hð +µ¤ýêv§8Gú¥g’NQÍëñÎ^M +³¶‘̼NIÂ3ÙÙËcDøS/àÄÛ€­F¨¹þ+ù¹áoò°V‘//µØˆˆº{sÁÒã ‡9ØZ¼ü› FÝÖ¢NëVµpO°ÖÊÉLÐ>¸ÔŠÓa` àA+ð~ûEjÎdÍÍëÔéYþ™§Sõ*, }•_ü°Ü…M°U[ #wë×2j¨Y³)‡úµ ¢˜ƒtPÖsŸ ›´› 6à#&3à-U£h@~è<à»|tè¡„OXýz¼ãý´GÙ‰úºâ×Ïßê)OL˜„[°s~ù¹´»íÃõñ3xvçÈoÖµ~”ž–4dý:áÒv°·’:*`·ÀŸuÝ¡<³2Ù{h}²ë£„KRC…@çG-ö5Ÿ¸nþ^‡p XÀÄi¡wåq7z£úŸ^Ü>ó§ŒSÖœ ê%kOÚ*’ÓÝûò(F/dT®Þ?ùÎÚýº²Ì´¨>ç׋ ìÌÚãVãõÇØ4ÿàÚ”¦ëÕIMÊ óý¸ý@Æ¥äÇõ©»’3ŠFt&™òhù0Ocn5`geëÖœ¢óÍœ¼}+ªéÝšÓJ³鹄§çHÂ)©Íx ‚ظ¾-1jìŒOÈj3Ž}ù°°‰^J¢¸‡y“yÙ!«]7õžK_>«~íIïáõG¢ã”× /„ ê´GÖ°>Ѷku´¥Œ‚>“>«!í6ö’ ŸðJ3AÙ¹LPѺ5oÐlÍ[úãÀY’^»t%Ø'»ù´7ᯱØs!‡Yà¿U;à±Î¼^“_ú–Œ\GþÙ¬Éôý¢^ûfA#y³ %]í»W'ϼ»:Ù\ãjmFXsèYß…ùðÈç¹€ÕŸÑ4oÌè»V&• +{’~‹qÕkÓ-·L….Ü̾£žZFRáö¨L@'L$Ë"žÑË’yá× +ós–­%£•šWô¤Â’ú윲'3/i‚58’\›ÉD¯¹3 û©ù¾K…§ÃwÞ<~XX²Œd£ ÖI³Åý`Ì¢xá¨mø/Oû?Ë%gÉ¢=—Ÿyö°ëƒõiquʧêx>%ØŸFqóÃßRó#·É9ëÕ«‰ˆ²36$‚’®ÂÂÀgÙY«‚ñÛñEvÎh\™8[Nï.5˜=L†­Øh]ZaoŒä猺\Ø¢‡oêÕCÕo`^€Ç’A½­Ã´S˜7Ù¶–ìW²Q“)ææZ}ÒÉÌo ‚V¬¿SI§øáT ²ž¾‹…Àð'›!ûðæŽçw;+Ö'dõ(>øiOÚ \ßiÕ§¼f`SÀ~ê– à+þþ•'âé™KŸÅ¦ìšø„¡mã‘âTrTrŠpÁš^°<Æßïþ 5lÁZH¹ Ý)‡ÍDzû/dýÃà5—†½‘uŽä£’snúý=ÃÁ?QN³¾1I¿VökºW@¯%¦ ¤Æ&líC>›ÈíÎòè“¿.iT<æàïKÑgÈâ“„WXMùUq¤ñkÃû¿úFµûíÔ´^¹µhþ~Ñl{®Ysëº×<ò¦¹'ÝﯹtÂXÖ–CÕ”u÷äÜ—nçNñ‰å'ÜW÷ß]ïØ•ñ›äËãºs«cÚz +0ÆÖ\ÿõͨª'=Tµgêöò÷í} ¿N¼îPœ.!¶)„-CfàÑâã1Ÿà( kfsQ%Ê/ÍIX+©ÀàåüÂð­Â¢Ñ”ôɈ º›h¥ùY•ü¿-iµ€)»æ5½ûô‘¾mÆ}cÆv¤¿?áŠ;/•ô\¾vfpÃg’=›Ñµ>›TÖ’‘ ·S€’³+1¤ƒý—2áþóÙÙ!¤ÿ/eÃ’3ëŽÞÃi¿^UXü’˜S‹ÑéD@t"îMG{OffQ|ØÅ'…gC·òó}ó°n7Ÿ ÞÊ=5ÚrÐ÷pÿò‰Â|eÃ*~ÒÕµ— +ÊaŸè¹²³ÑJ¿_ÐiÿÛ’Á´5gУ5›pKN¼žì¬ÊøT­è ø†– ›õDxà5?ø%5?üMú‰”© ^DÎZm°– IÀƒ¤ÇfÊ£o€ç×=z~Ü«çƒþ1nM!€ Å€‡B}C…HßH!jíÛŠõ¹ˆ¶ÅgAÇg|ç?ÉÍ|š_´€}4é ’¢5òq§‹ùAQüRÆ'o#<Ò†¤Ct4ëî³¥<¿Ø˜±©bn›f}ÊØvë…yólD+‹y•ÝK÷ÀöÜ—ÕoùG>¥ü:ÑÚ¸èðê„ä8p1ÀÖ:1Ò‰…90¶ìûÕ§M»j}~§£Âuáô¯½—ξGú Útéo­ å7kÖ]AÒ¯¬ºgW}šöeŸºùÕ„¼vÆvø(Ðò³Aƒ²0§W õ¿<&9üj\z øÈ‰„Cu&ý²õ†oL»t=Yÿ0:[###_QsƒŸo4ƒm×R ož=]ø¶½¢±‘³ZÑÖ’VQXÐÈÞ ³éEƒC!£8üù\Ôjytõ}já£,ÊI„¤gל’º$ÌS*l5½žTÖg<篧ýWî§‚Ã×NúmÆ4ô‹˜5[2Àƒ³;ð¬þþTðÂ-"ru*¸@ÌZÌDÔ¨‰…”mkÓ€ÇýÚÞìØÓyã‹1M}Â;r _º‡|o…§#÷ ‹ý× K}Ÿdg5¢7 ¶ YÀ†©Pÿ…xðº3³pþ~*Òå•ÓØ»ê1ð³au׿¬ôÜfDÞ±2!Ü¿œè/°¯¾ê•…°ª#å•7Ä@ï¼~Üóñê(O.¤h+̵0_Â,ð"ü‰‹ˆØGA“: ¶ €|ã(îeÎbCþ\ +°,á1+“3º¶”G×™ò›d™Aܬ'ëSµM=‡ò/23VEÒ¡ëˆÏ(Ûê„(æŸ êDØÄ¥aOª³³FMaÑlÛ\²gçÌæpã´OÛ™®±é·ha®†3A“öÜô[>Ü7œý÷ü¡àƒ¥[í%¯î·W~n&½uÌ©.)jãÓÃ}ñ©>MÚ­~©j_ðìqKYbZ^—sY [³¶¾ùïËWžÈ›Ò^»)²š +°G·æôšÂœ²û/OÕ’¤WÕü쑪fmJß‚Îß³^u á?ï=I¸[;du™ECpt>bTU:g¢‚Ð?—Iš ^ Bƒ×ò³öó›s:UÜ-8‚b4÷ô õ• +ØÁÆ•)ðm”Ÿ0%?ýênÏû¯ò?&ƒ½§Sþ!t™ _¼ Œ|ŽâµÖ]Šz0~Æ)ÔKÑù6ÌqÍa}ƒ™°ª ù>W&äu1è[6(­Oz…Gâ~iÊÈú­ú|hààÚÅ8ÍÙ†r0Ÿ›Kë%q§º)x³³ +ùäÿ +Ü“šÓoQ´f# ;`Ím-™¬y®Ó}ÿT«Î…Ô‚\X'ß\´]Ê=µ].<µ_Í-دÀéß\ê»¶õÌ~=·h²³åê´ìØãA2ó}î&ÂÃ7À `Ÿ†—O-Žîý1GÏá´Wqîͼµï¯KöKo¢& ƒ"²ÿ¾öèZ>¬—"Êv2$?G ~5èrsöK±€ª#̳pþìOØ› †yÐ-TD-ˆMÊjÖŸHŧ”u)À¼(~?ã–žŒOôîß—θtëåÇVî÷~´öP´g3bÒ†Õeaoã'ʆ¤KÙk¦{kÞ¨C~£„× Œ{Œ(ÏIF¹-rÊc‘^mznÚ;äu)¦cuZqêù#ÅÑ÷e‡WÇzdÜâÚØ´´vcFvzyLzd}ÜÚ»x»wß³{¼ Ð?IÐå1‡¼a3`1lúl¦l@Ýí¼vì¯JÏÆ]UbÆ,Ü ØmY°_|³ ‡½¢êAqs°‡Ž­+PfmÆ%;µÑJþ;èÓ¿À_†Î “ÖÀ~iÈ…T¼žpIÎlŒ §¦4çòÁ‹ßfCS€]õvJN¥Ýâ“TP|Š kÓ^u;´š)°èL4í”6„nûeè‹£¿H¸Zßþ{˜B<ÜgVÞ>[øBÚg”å"f`°~ÀêBØÿ-TPR—õ+€ÛÅ™€ª á]"h³×›,kŽ{ºö®ÎtïÉÕ]9°Yè, lMG&¨éyéÝÍg3ç8ØœW%VŠöþ÷%Û…fRf#Ã_R öËÔœJ¸¹(my¹€ødÎ/«/€ÎÎ.è”[KfûæÒÀ€ƒ¾‚¿/ò Ós Àk'¢ìÈ_JWpjÍ50™í›£^3k‡Í:*¢ìΔ1—º9[ü,˜ +_›&£ƒŸ&AN†5üLXÞœöó§½f]Ò÷Éh[r97§åç4âïõš¸GÙ´XzÙ¡m}öXv$åºò÷ ®L(ëŸßí©Ì†ub +ð3â]ñiqÍ*pÒŒß Ž;tí/©kó€ €c(Ÿ¶'6.:H¸…GH·øDέjF1¦¹¹þ«ä\ÿä—,Ì~‡1Ïú ½„Ç ˆÏÈN¾~Ø^þìngùÓ;]ëcü}è|94«³‹ÎCAù¸^ïñÿpôÝoMl{¿Ñ­{»ÕmEE+( ‚Hï½÷ Ò{OH! ½÷Þ „ôÐ{èI)tË>ûœóÞ{ÿ;y˜GÄ™5k}?mfÖZè(›¾ÞVúAßòµIñq†1„ï‰y"§eŠ0á{ƒÅ®›­YÏ à'rL”}κm–‹ß†ûʱq?æI¹ç@]Ÿ©©¹f1.Ê>_Ñ6MI6ŽbƒNTÔl“}0€øb“à£íÏfú7Ž–ymõ½Ûî+s?C|»Pá¿ÏãRÓe~zQ™ï‰Ÿx¦Å$\ÌâS­R|¬i’³ÞUôÞ*&$üše–ü˜Å§]ªá¡g +è·cIÉ×3<øç,.廆”e–`£öà^çJF‘q¬ÈÃ8’÷î\Šþ9KÎ;W¡£/f0ñç*|Šy +y©*‡^ªË¡?gËág +&øLÉ,:š"×CÇ!ž¦I¨Ï‰u:‡IºX°?»"ç|ÿµDȲωù}.Î2—jt¡¥ÿ³Â¥ýX`”ý³FƒÛõÚ®Q3øäs5!¸§ä3  ßXð måb^À²ª¨YsŒ²ïstÈ©gµ?{Ðà“õ"¸ŸqlrÉé )ýDALú¥¥ÿÏ*ù_àø䚣I˜¯yt¡¦äÿ{£Bøo Cþ½ÄÂ]ÌP /T„ÔK>Ñ2…>¸ONL:S’3N嬢cY9äû,«ìBÃ(6O㣎¦AgjLÜ¿Ö舋rÖ÷9ôoÀ~êér•M9<ÁÉ< y¹È!Ø´D@ëñ)'L’}ƒ `ÜíßœÿX$üÏ& ñï&hÁþ.ìû9ÿX‹IÔKá!gsÄÿÙá7ýgƒIø±L,ø{“Žþ±A…-r,@ߌãB¶»Ñ>{ýø ýJÔ|u‘‹a¬ôÛ?ßÿd™s€?/4ˆÈïsØd‹œ”¬› †o£ƒÏä\ à1>êïeúÿns8ÿ^®?C˳{£ÓYþb®’ª°ö†iñ'*.Æ$)/>’S€ œ`‘Âü-¨Ï±ºÈǦ„…Únžfþkµ²ðS1€ÿ.¼F +Àá{=H/Û$6ìpî³?ó<ÇGG¨ñæIfºa˜¹Þ}»ÑXäbƘDƽqr¼¶6÷Ù‘q¡¡åYd¸çцQ˜ïá*È:IŒ¶ˆ‘f >n­»Ø}¡üòàú_s”|;Îô#°/v|ìôÂÜ÷û ®ʲ‹™’›“`–qa6ŒU‰MŽ‹9Aúê‡Ñ~¦qtÐO 5ÿ_óÌ2«}.½”˜t"#¥xŽ8—};»‡ ?ê8•~ÑOaãçRëÁ^ÿ^` ÏTØDƒýwÆò?˜EEžÀï|=¸ú\Å*þ1WŽ8!û\U9VT dôœÍî’k­….Û}%nº^ȇÃ)¸ÿ¿h%ÿ9ÀyÔ©Š˜ük‰ýµÌDžièà¿|k¦ôÏ—ùs‘^òï-ð¶äs þO4”,› +w0Qìež4zš”t8AˆßB˜§Èéçj6à«mÆÇM üGa>[½EïwJ<ôýèoçÓä´ÿ·dmàÜ6%1É*A‡›'íóHÑá—V™ ø¿û#¥ßfk3·Ú!nÖ1Lð~ɧ½~ˆÛ^Ôãh ¤k‡ºm÷ }œN²rVÛÐ^ËMÐw;}oÀ{B/´ûÜù¬ @ÿOd”tÃ.êXeÿ¶ŠÏû{ü<Àa‹h¼€M +xØWã8<ðTE0HϻԔ—}·¿ãüß¹ ð€¥ÖÜ«-¹Î§Rt¼ã/Ý¿\¢<Â+¿˜ã‘Žg˜Å†qlèFSÉ›µFð ?Ëq’˜ps³%÷Å) Ö)|â…›òÿöˆ%¿–Љ'€g?˜Dø-vä<×uå¿5‹àþV &Ê>·ëׇrºÀ‚Ùd´LPÇ2rš}‘Ø—ÍÎR×Ý~¸×Þ()ör–Kü9OÊ?–#Âϵ˜ä_ËļKû7·cðoû}ˆ¯¦ql‚M‚ +¿ÐЋîÏ9QP2€Ú³Šæ øWýP™çzká›Åš‚7Ôèý~fÜvöë^7úë~úëNÜÓ0ˆÞî‚{šF0A– B´Èç*@_$ÔtË%éhv0Túy³/ïL_ÆI½¿ÞñÐÁLz{0‚ :Æøow¼6f¾Zo}¢*²ÉÙe†IFö™š]fSÐrõ£ØP»'4 {œM#ÂÎ%Ȉíά—úQD€~ ež$&Ú¦ ñ‡#Åî– ¨·M\âk“Àü6ú˾È+RîKƒþ³È!Úkio¨ÀÕ0ZäaÃ-Óˆ +€k›„,Å'ŽÃüΕ\Ô¹ººÜ,ã•î ‘"wz‰![]ÈÏ­E.{}%Ÿ¬"lô™œœiš@‡üœc¡¿ÿ¯†âÿ×CÚ×°°?Ÿj 乄_ËtÔù¹àTä6-} üþÎØm£-ïåfKá;]ä½®ú~¿écúÌ2‰9WP3§È‰¦Q´¿ié·Ù™ÿ +ÐÛ÷k à—ÆlèÏEåDÃ*9²Ïw|Ù‰aA½vûK}¶º‹]—3œÄôð« ¹.G#¸°ÝÞbWýpÉ畦ܗ³Ü´G³Ü̇ë7ƒèÀn\ŒSôTÎÉ}8W~q +èŒU†3‹PÁÖI\І€ƒLÀá!y¦9;È’…³°I„=²kœº;Püq¾&ëéjc¾óîÜg¦ +ì¶Ö + û¡-ú‘–oGèº!®›Í/6šò^œLccÎÑŠu}ÐÈc1­äB[Wg‘²Šv‘7c7ÚÀ¯ÕÜÄ{Ó¤èß·Zò]Á_ú°ÑŽû#àÿlbò,â‚ÏG¢bÏC¨­Ü·³U  +>\jˆÙÿòüé|9Ò¢aBôÄè­ÎÒOý¥ž»=…f…)« ÙÏ#ð¯ë7Íß:Jù±D³¯Õ»œÇgž¨Ë‚Œ£®;N+MI‡¥¾KmîÇRRÖ¯åXAJ7ÜéÍ|±PŸà0Fòÿ½ñéú=áÁ .Ùa»á«Â¯5A^¯7»ìu#?¯6AÞÊØq&ð¡w¶Û >615Ó6ÍÌ;3Ò÷0ßôÃ0ï¥úœ§sUÙŽÛÝ¥İ›ªòô×'£ÔÄã)ZÚÞ >p«í³ÞTøÒØ›÷f¯=ÛÅÔWâmBø®7¼²MóçêžiŠž±Ýu[­K}¸Z•ü`­:Ía­6Õa§üNÊMu\j€ïõQ#umwúAˆ»qâ~0ù¸ÚZôZËÏz´Ö”ÿæpº?¾Tr‰'F‘ELN0N`Bœ}Ûë/õX¼äR}²#€ïÔà zúî)Â"®DÇxyúRäVWÑÛ•ú¼g+õ¹Ï5Õ©N^Üc‹„˜fêÉ<…4ŒÁ}o»7Xä®ë.t]jJsš¯MxºÕár,GÆþ½Ì¡©™Ó&ʾ®…®µøíÁ@Ùg£]#ÞV܇Pagbb¢¨MÓÊß0Xæ¥ëÈw1z¢¦>6N`#-J.Ü$//´Î—£íÙòL‹ŽÛü¤º"ýþœ ßq±&û™¶"ñáJøu7:ƨO¯SÀ§M`—ªóžO“oŽ`bo¢coŽ3Òmö`ƒöGðá«-ÅoŽ¥„xë46òTj_û¥ì‹ª"úž¶2õérCÞK ;Öàä¬ s4AN´ŠÉIû¥ËM¹ÏTÜ´{jNÆ}MeîÓ.Xäf¦Ën?*ôDÊÌ?š"&ìöC?îvœ+ðÙ”óB×SèÜÏ“31­È8- ­öà‚õ"Jê™¶ºÚ(¢f,Ö羚&Fý>Iˆ½Ý^rú´Ý—~(Êý¢â„þ¹Ñ–á|>ƒˆ:UÂßSìs*C„þÐâÓͱ1Ç2JÚ¹–K8Ñrˆ›?]ÜCמÿjµ)Ûy¯·Øó\NJÓÔçÎñ~ôÛzSvЯ>w³&­ˆ{¬Ë}w8šóVךì°×“ûöBMÎêÀ=±N ³~Ó8‰ Ýí/þ¸Ô˜â¸Øðh¦"þþlUöó&xÐÝú¼/7ŒCȈžÂw2vÂí)jâM1-å–š—ý@Lо=† +¹5ÍO¼Œp¾ªá¥{Z€š^ëÄx/Ög=Ÿ«JsÐÓÊYIw§I17”¼ìç}„dçnHØÃ%^ÂÎw,ÇÍÕº GcÄ]ÅNx8ñ¿¾,Œ¹§ëƆÍWa‚v»(±ÇÒòB€ß ÐO;m`—íÖâw‹Õ9Ïæ…YŽº6ô7úfµºÄÎ~{ýHoó%a§í£ë„}ÑuC}dÜà;«-é¯Ìãì|à 5a£án¥ÄÇñaÆ1ä·ƒáRÏýAÈ']gΛ¹ÚDÇÙªÔ'äÀõN‚ÿÁ0>d§æ¹ÖTä²ÞZôv¾.ÿ…‚ŸçÜ…Œ¾1BŠ»w0ŒŠ0Œ£WÀÎ3Â, +åžZ˜öt¡.ýÙZsúËCQé7?ÖqŒéx,cà f¬çš¯IwXjÈyðÁËifôQZè=nÖç?$ì$—ïJJŽ~â¹ßèÞP±çVWž µ®±Ïg«BLÂclZJ‘UFL>4h¥æº×ò^o.ù°Ýóò¥§¶&û%-ýí>h§·ø‹~„¹ÚVöq®ü|¥òn{y(¦gÚ}ÖŒ0éþþÜwµêºÚ xê LØr3øÓBMÁËíö·s»ft—ú(¹yoæk!÷‡È‰K5Å.Û=8¿¥&ä'%7Ça¹¾ðåfòóŒ à5%áÓõ¥FÀ÷Žb#Å̤G"bäŸ3ìÄ{˵¹Ï×Û‹\Íâ2ÿ‹YLºº!åm7Æïú|cñG£¨Š´ÙKŽV + ÞL“žNà“Œø{"BÐ_ûCÅûcùŸŽ&Q1ßç«jþYãp÷û²ß*XÁ7U܈;º¶ôgº¦ ÇÍVð+]7ÌSUSà)ã}‘rJ×»Q_¥Ü ß¥Ü€ßeìˆ?Åäè[º&èy-ø5$þÓŸp_ç«æIj†´<íÞ)⺒ss^˜|WB‹¼=E»»ÛWìŃÜF†¼¿¾ (‰ýgÏ8ÃüvúŠÞ/×ç>“2Rî  Â¯«+2ŸŒ²³ ‚Þÿ6ÃÍùp0‚ŽPUf½˜«Êy·P•ù|ö'Ð]׺Kß_ÙêMw⦽ Ä9Çq1ú< -¥^6Ü×Ûr_¨¸ñwFÐß®uCݯª¸1Žíø„'Ýø”w–¶»‘_·»Ê>金_÷>+-P×A´ÿƒ0ßë€×vÓõÁ¾:j‘Ó†qá‡ãØû3µlâÏYlÒFOæ;yy’Óájcem÷¢VZ!6; ú¾»½(_© í%!ÑõrÂ[ë$9Y˸=_ë°ÜõrŠuo¡"â±±?Ñý 7ãÛ‘—¼9vµJH™V [¬yr¥únœ”tk󇜙|Ï:÷³Ê1Ñ⪄7ää×7ö©é‹-HEEú#eEÜCÃ@é7ýâÛz[áëõðëížÒÏkPïõŽÒo§ +Ñ,æ ¡ý×Úr_ê:r]Æ©qwkò¼¯I8IN­„¸§mè8Ç€g–L³XWür¡6ûù4#á^CaàôD¯+sM…®Mø„7ؘÏ·óÄ"Â'ŸHÉég@n9C|×;bÎU†ÜÖð#ïoö•~k¤¼àF=R7`ãŒ"D?„ 4~Ò÷ç½ÛèÈø "ûÜÔud}×B=OUèý<¸²Ôÿ..ÉíúZ?4ÌøèÕú‚—›¹ÎëiŽZè]Ë!îDÎAM3 Ž\Ä‘œÝÅõÓ\mÎ35'þÎJMÂý®¬W–Bš¸*ééJ+.Ñ4ÖÌÜय´¿ž©Îz.áæ¾’U@]†É©o·;19—ªîV?%f¾)ýÙBS²ãjk–³®ò~¿ï?S[ô¦ôg4 ð* ð|mÁ‹¥êœçÍà7^Â_«5YÏöº!Ÿö†_…e!·É>­Ô#’þY䳌¥_·{J>îö Vê¦d§=Z¬-rd¤?Žúäxeœÿ~k7H‰»Ûñùm +öÇ(.âF{‰ß“$ÿÛ†‰R?vIÀÃò\[f1.soî½Ö–ã´Ø˜í¸Üœ÷b¶:ÛYÎLx0ÃI~vÐ ®. ¿ÛŠˆô—’ºX~ è–ã6à¹t…ogkÒŸ  ¾Þ”Ѷzó=‡é‘ÏL#Øô-WÖÙd¤  M@æ 8•ƒÎð£©â/ àwêd DPàa1À{ƒ¸àîOãÂÏ8Š +Ø<š‚“â°Õ :š ¤Ìpâîí÷‚ £ÔŒTˆmý—¨¥ÿ'ƒ-S¥ëé¯.T,¸Èo«ÝÏ­>L€Œ“ë8MO°ÑTøæD‚ =™Á$¨š2>ÐSÝnlv¢gkÊܧ¨I©xIŽ»EnžÃö±aÇbB’m +·Ø”ýz½«ÐÛ,æ•íÐcwо;%_vúJÒÔæ|ÞꃇõÐRÞô_êlj±JA®³˜žrWÊJº7ÍHyXÈ5] Ô[?NJÑÖ¿Úî¢DïõR£ú¾×Æ a·ç«³Ÿ-4¾?×Q׉ð;™æÀ.f8ȃA˜·e’–cšdäm´A]«rž*9™%ŒŒ‡bZÖË­VL”aLX¶ÒF^¨…|^¨Ì{¡¤>X¬Êxt8ýb‘Q3çÚ!‹m%§ªrÄþ&D7óÞ›$¥©˜eºtÀ ?ûÑœ ÷éV;ÒK[™ùt¡&ûa”–²Ò +÷ÜéBûŽ"G1ÁÆaLˆiŒZ|®dâ¬*f© ÔÏÈU!ÿ¬U5ÏóÌ{,Å'Ø$ØÈ9.æLAJµˆi™‹­È@…°àƒMÂ%kë +ÞŽoháw÷‡2^JùáÍV¤:t£üU€òRÝnô¡³~.ðÈ—³4ð©—hCý÷zR_/UÜÜêÊ~÷CË%>®¡øõþ)z© üRÅI¹'eFÝéŽÛKô8WŸâ¼Öšï²1HH®?œ`¤{žÉ¹¤15 àØt‹y0”á¾×›ç¶\Ÿúx»«øóÁ(;³÷HQWèk•“ÓEÈ ¥æüÛ=¹ú‘ßÝþü‹õiÏ—»KüF ækÁŸt½˜Àýa\Ä!-l2&d{ ¦¨.p›âdy8,°)èùf)=צd—íc¹Û[äj-óøéíjG±ûbgñçÙÎÂð l–ˆøz¾2ãùA/äÛáhY¨M +K8W“ BÆáT©ß=üövwY蹚YbžÂFè‡á>êÊ”3üt5?ý±„óò`¡ªË÷øßÚ%ÁŒã°ÐUÀÿîv»i‰FA¿¢.4å}´ØåäüÙ…MðĥΠ+ö†3] ã¤Ä£ vñ™¬¦ä¢öÇPAú l¬UÁCFññ¦á2ﵦ—Åšôg×ùÿ\`£OTôüƒIrÜj7ÉÿTU'+ oíÏ\ôƒpß•ÖÂ÷›½0oÝ0%VR_ì>„O¼½ZWâ~8BŒ6"õ£¨ Ý¡"ý(èÏÜ·k™Ž‡Ãăˆ tüšŸñb†Ÿõb–ŸùÄÔ +;™b‚7{Ñá Ð/¦ñ +¬¦ã×ó¿ÞUæýû¬0ñéÁÜïXÁ(8Q‡šUf–b“.癘ïkU ÖÙJöÁ5u½ùM׎ôÞëByëZaŸ¬cÌ|Ã-CÊI|°Ú’óöp‚´ûÓŒ þ¡‚úX[]è²ÙCŒj*çLYAþ±ÌeŸÍ³‰'3³•}eßT•@ ¥=šDÞÙm+´æeW`·±áóÍYÏw‡ÀŸìï©€zùj¥&YDì|YEî[ 3åÃñ$ w¬dÁ·GŠ?šÌljÏ<† ?Á¥$ vq {ÃöuP§êr¤¶.íå$=üÕ¶¬·êÚ|)NªËFGÁ§s%£l êU¥Áe•дK¥±ÝQøvµ1削~wŠpw ÿãñ4<ìxšœ±5ŒÂïËë "mjzñ|SÁûjä)?áÍJ[ö»µöô×1:j¡³è›ˆ—ðÜ,'üê;Hð»%c‡<Üì-ø°;^ê»;Rês4…Š4Žqy¿ÝOÉ8ÓÔðÓôìõŽÏ­žR/ /Éi‚y÷PŒ ?^ä³çú ù%Ñ®÷WúK£Î´ô³˜¯ŸÀëÇQÁ›@––r#ŸŒPBÙ\Þ &Ä<6 ab-!Þ$©$˜$ì¢ÓYZÉù"v%L~ù¾X×ö}¡ºæ|¦‚p4EN2üh\ÌÎ41¡öx¹²Ìûd¬kqŠŽ%ôÜ µð`êµ7ó5L•çÚç.*(¹»ƒ%^‡Ãe>›yöG²?Í`’m2Jöùm”0svG™I{cüü…VÔgÀw5 }·;ŠÞ˜¾Þ]æ·ÐüÖ‚¹?DLu<äæŠ8K­¥Ÿ¦yɦÊc,Ô§½Ýéûê‡àAÇRZÖö!j¾­øÝ‰‚;a"WZ“ÆÈw§Ùqz°ôaoo÷PÒ§ë±¾Íðè[j!Øû\IGýX ƒ/5ä|‹·ÙvÝèM{eoëEFÙá41É"áÁl3Õì½1zÚlUÎóIJÔm1+áÅtyÌãn´÷u+Ôa¡³Ì«“ýHÌŽv0ˆ‰7“’¾†^¨Ùð²?Uä}¨@Æk´ce%ý`‚•§ëÅÅ9Ú¿ ì~)ÃÆ‹q±»ýp߃aD˜a m™fC“”DM}Ò“¥Ö2/ƒˆ’h‘bO”ØÙ¬ Ü¬,/ÛÄDYæë:¬s­£VE9l¯¿ìóbsÎ mmÖó•¶b‹”š èdžª&í…”›à`•R ¦IzÎÞìÛrS†óZ[þ‡Ý1Rìþ8#Û<]I4ŽÓ³×Úʾ c“œ¥[e„û;†­^𧙚ÔW’ŠØF1&òx†1ÉéE«}ð«’O²(¸Hƒ£ëÙ(öØ*ô<”¡clótè!`òô#¨P›“t"CEï ~U +Çi¡wÄLÀÔg¾Œá"Í +|ê‘ —j”`fÙøN¦7/ßç¾aŒN=_l8ÒÖVê•åÐíqtàÆ ì›U`e™ÏÛ‘3Â]@µÈ˜Ûlm«^ÆÃëzË>ot¼ÝÊ~½Ú•úb±%õïU~õÅ’ vÈG!ýb¡ºîD#¤Ù<¸MʆÇè)ûCÔèõ~Rh;>éÙ ùÅ:ÜD6 òó7Ûß¶;½¤èÃ1JªUɃi9Ø óþôÛ©”]fžd-Ó,艊‹6Ë™f)M?†5Œ’£ÆÙ™íØø¿4•÷;Ó %Á<ÊÌ5Žs‹u}´¸ùèÛíBŒaº·>L‰Ÿ©-~¥¬.òØèÂÅZ&Ù¨ŸZaùÑ$&z¯¯Ðk½#ëÕz7ÄÃ&`÷ÑK ÎÔø§fæKì³Ö‚2S ~œßXsw­…ÿÏruƒý}ÑÑÄkâ¹3Šˆ4‰ ißg¥g*bÆrkÆëfŠQÚÄÛ`¥jÎ?ÄG?œ¤Å?–”§¿_i…EÌ·ãƒyÅ‘ë +Cïýš«äØdx€ËK "¨ïf_‘‡^‚Œ³hh‹†ƒ6IÙE‡Ó°½Nä\à…}-ão¦±¢/k-IŽ õ±O­S„Ì3UMùz/#ð€ßv©Y'J. ×¸QLL0ÊðñF!Ñ:Ç„[Vê{ š¦6ƒ¼¥Ÿ¤¦o"F01V9b_Y?݆}ÛDGžªøôņҫ ….ºˆ×Á!÷\SÁ°ªÊáký¨UuÆKã=û|¾ºúb±Rx(Æ&ì¾®t‚ÝÕu©o—;süOghÐÀ¿™$ÔüùVðÛËùšú}@S7»Q¾aÎsÃ@Y€i“u¬âNf+(Vyy1€÷ ²ßñRóãïJÊcïK¸qN MénfIY¼}7{ÝLP3-²zö‘Àë=M×Yöq’uSŽ¿Õ_àjœ ÆÚ¿Å·ˆÙ%ÆazòÁ#ðæ±[#ÐàÅŽ¯…Î,÷iLìö$¹hc]x¡­j9_©ë<´cD%déåtðɇñc]Ps¾ÄçéÆ q¼’'¢†¢ÌÓÊv=À'»׋ z1<Î0Ë9’‘ +¿¯ð8V-¾Ð]øáPŽK0L’Ž•õ&I-í`œ—¿ÚŽõ¬¢³”ŠpÒrˆ®ZéãåÚ +xÜ )¸;‰>ÑÕ0#õ½¬¤µä×­QTàú ì‹ALƹ–w$«"ï‰%º!fâF)p½òm»‹©k+˜­&}ä…]De?˜Ü ½Y†^vÊR#5PÎDºlî6QiW$(U6¡¿,µÃ,ʆÆÑr°ð;gJa±ì2_™òp¯³ÐÍ:ÁÊÞì®HŸ«$ºo6Òý×ëY!íéÖ¡jØA§0oIX-Á‘ŸÏÒp®ÆAÁá·à`ågž eØd|ŠUÝ1jUÖ”[d ðJkñG%?í©®“Ÿ¹5Ô‚×õTån¶0BözªÀ›müÔÍVø~77ihëùrQòd™O‰2 +Kwß¶ ^V5>ët–A?_i:[iè·jùÔùÖBåv¨’­J.lµ á¾ÖXøj¿ê~8±Œ²NÄ,°iX^¬cùoµ ÓlcMÛX VßÇJÖVæ:~0í|™Ç=Y©8˜·¥¬ü=)#ëPÁ)=ž© ^ÌðI6§loºÛUúÉ6IŠ¿Pr‘Æ)^I<íf2óþr5%òl¼£áL"$ï ”}ÕuùNbÁKu]çKumg UB³œUr$§åŸÍ ÇZ6ñb?œ. Ý)ö[ï»n @=w†ðñ Ð8‡X†“–Oø¤(/>“Ö Íã•èí6bˆ¡—s,ªÅoõ°Kf«‹] #ø¸Ã |œMÁ(:™a•+à ŠÊ°§SìÐ{º>DÀ‰º¾ÊŽ‘} ­¶£<·º)‰û€ÇÛÅ…í ‘Âu]ä(5òA͆¼_j$†/¶`¼–ÛÁš³>¬vå{Ÿ¯òªn5ÉmÖ ëÅ„ì•x𡦒{¼Ü*>_¯í endstream endobj 29 0 obj <>stream +>_cwDˆ(ucÎëÅÎÜ×&&îr¥Bp±RÝt(á•í R’þžoêý9ÛÜ÷c¾¾õhº,f¹=æõZ_Æ»C&î|¥œ¸5ˆ Ýèç¤Êk©_û¨¥;ð ’ÿÀÅ„üVèw%Ãà äÿúè壿@wo\9ýõ;è«óÃ+¤DŸ?¥œ§ý!\ìß«\æÏu.Ó ¢åª»q_¤-äÏ’:܇i>òåh9ι Wú ²(ë&8'5.ì +7!öJ]VúïÜ´Ø´¸ ßHéA¿E~qź¾¹ÚË~Þ„L~ª"Üw™ÉÆ©r¨®—©ë!ï s3—{xIÒJŠ{õªT[ù“•’z ~µØ×ç +'6â?-ü)æÛµì/Ÿ¯D¼{ +|å +}û öw»Ò…Èz´ÙUžl &i-kwZ€\ì#ÏX^î¨Í™©­gb_ôa‹îáJ“ñnCXÄ‹tñ“fHÖ=H¸ïU·gA/ïß…¿yq•™qk”QøJÓˆ +tƒz²ÂÀÛé(ƒ‚V´Ð÷RÔåØQKN´ÕüÍQVæ§ì©”x9#@}Ô +о*.Ò³µ4á+-ì&:ðzìÇwWÑá~’cýo#¾ý¾Ò€‰?V2p–Ö:_ÁÚ•öĘˆ=ÒðMQú)NÑR5P[Gó•èÞ“l¸k!ËY˜ùúå:$,ટ‹èÃ=PÈ›çWé‰a]øä7"^n ®•{¬f¬3\ì €ç#c_DN°ª9˜³yÙ¬¦å®t—¸«…Ïçj±Þ³Õ„oUùÉ·Á¾_®@ý}¯c£¯£#¿]'&ÿIK޼´ûZ¨Ë³+é^Ÿn ãBïÔæÅߨ¢$YÔ|²y¦’±'âl ¢ƒWºÁ¾ÛãȨù”×j?5|¾÷URYæÒŽÌ¾ÝEÀjåž /å=-îf´û»ßoýz·o€\Þå¸ÿ>É/ù±"hþ×[hÁe­f{iÛ>^¬2iÇ‹•U%À%”D“œp¬a@Ž”ľˆU°5B-’Õ!Â+K’^”§GÿU—p p7ßßó¶°0Æq’™ôXÆË|¡ĦýÒñêÿÇ$^Ÿâ€¸ñ®ƒ}P‰Ì¿Á(̽V +÷t½u¼r¾wôþñ#ЫÇ÷A7oüz~ç/P¨« (/ÐëJ,ýž¦2Çù\K-°Ì3 ‹£¸À…v’¼ƒ5ZEù؄ͻ͇dÜ`å¦]ƒF‡\ s{Ôª3(ÅÝ ”çë +|ûäêpóé5ÈûýsÐí×AïZøp¥¦ úÖB ú³¦±ìí4òt¦ +ó~µ“-oàøwQ)Îå…ЛȔÔ+9ÁÁ ï¯ ?Ы{|ž<…½r}qr=¸ýè7tÿë@»oƒ¼AÀ8þ&f9¯uá¾ê†™ º‰Œº“?YM÷lážµãÑŽÍhØ]FV굂 ¿+ žŸAY^_@ùÞ^ „OAîOA¯þxt÷.è÷ß~½ºÿ—½/@¼ü˜ßÕ HÏ]):Ò¨A'®C>/´ d(ùø¹AVÒD Ñ­ Sr‡’‘x |êB…€"]_€<ž9€>9>Ý¿qtïk ×oƒž÷úÁéz,Âa®¥øƒ~¾5Qâ­ŸÂGot!>¯uã¿MV"ßôRËÖÁÀ·1 ñ×JÃ@9¾ ¸Oï@îŽAïܹ>¼z}ÿèÁÍ[ ×®þ/Ïy8ýþùéo +aß™†ÏºXª¬²Íò)gó|:?à&)%}sˆ¡j"|nA=ÂÄDþŽ‹Œ¹šåå rôôááPà‹ ˆ·o~¿zq÷Èõñí[ kW=®—òÙÄÌŠ~ i |ÝLuÔ˜Uu•&¹»5ÁJW4!Þq NÕˆŒ{Ä´ OB¯D¹¹‚>>qù| º}ý›Ã#"*èw»ÐE[Ÿÿz{p¶ÀÀþ³Ã«:_ÖèÄåùœœÅ>R¨¼ñnœ 7ÌD~¬‡æÞÇÆFý–øÅãÊàÎ@M„üÿÞáè0–€úNòp•E„^#¤„ýµÜ 3JË"צù°¡*Ü›6zÙC>ªð&­ è:.#ÿZQlòoþ=®<¾{ôèÛ—Þ={Šúôí!-û^ñJ^I +\ëBùXÔt°YÃÃè&+ ËãÕ%ÊÞúÜÑú +ÿZ@?ˆYñWQ‰1Wàq1W2‚üA/ž>G˜ÛÐ×·¯€qûè“G ØÏŸ®D¹»þFNyÐ…Mušä~X¢&Ì÷”uu=㫺™ØSsn&¢žÔâˆ0ùùyºƒ]?‚|ß¼½zèrîÓàÌ@N€þúýOÓí{ €—ï@ð°Ä[-°¼÷ó ØPÝ=^7ÈN^æ‰j¾½L”SUYΟհâÛÕhø_ø¬Ìëž 7ŽOA.@y:>¸¼½}äzz÷È/'G€;AQAŒì¸ë2òA^^hP2ÁØ Õ®âOF5C7Å-˜é/«/÷©Åá‹c öp}uq%¸{€>>{ôñŸ ;¿ÿzãàzø×=Ðû'N /ß«±žŸ¯U¯uâ#LRzÞî8!j{˜ºÚ‰û¶ØA fc_õ²ð/*aEwÁáWR¾}%zyb<ë&sÞÕ ™/1©ew ‘y·0)Ðû´<Øý¡òÆ8i]?|©¯‹¶;Ù\¾/­"™Ìgž««1ÎÔWoÊ«pŠ!^Êd'+p¸–îÑËfyÖ QNuܳf<Ï•‘Gt*‰+¹_›w›˜‘u—œx—™šêÔA{©Ê3tä„;2ÏÝ|„AUÅÚWÔ0u“u¤•ñfªv¸Q‰J¹WÌ.ª¯‰ïª©ä¢¨oHyeðÄÜ?‹Â³®ûº¹ƒÞ=¹Ôò󃧠$¯ ëÔ4ð³4Á[Û$ÌXíaÄìOq ÒJœ~º³<ÌW¢RVÅßœâá>N Y>\¶[-…éB‡`'%\óyûô +àN§{¿¹¸ƒ‚=|®Fø^MO»Z”Tpƒ +y5ÊEy¬vRB̪*ºaš[d‘sÑgaíùBu½m¶F¨W×ñ4£õ%ÃÍ BÁ¹8+ëfˆ·÷oán^ ˆ/a ·—n û·îb¿„\GåÀéex×>ëë$Ÿ´>PÏ4Êšv'yEöà ©@%ðí‰JØÒH#^Õ%H¯¥y520/ðR‡üèäë©AÑWƒ<ýŒ¿j÷!èÞŸw@ïÝAi¡ ¿aS¡Ž]ÔŠøÑÚr£¢n”ÑsŽçܳµ¦ÉóõšŽÓÕê–]¥"G)Êãz9Ô×­DÒ«Š"ˆ%;ç>63ónYjÚ½0ÿ?|ßEyû‚âüƒ¯&E]øêw¥(=ýO&¢ÄIÒH Õ W Åu¬CiÙ ã–ìN”ç̶¡=ûñ›ÓuYgERêˆMý3ÁÏûFvDè¨ÌÄ;éz¾~ úòÆíZNBžCR|ÒݬøÄëtpÉ} +ó¶—KôV7¡¿JùÙW{Ê‚.V*Ï×xÀæ™Ô’A[W½¥¨eJ;X!udÔ#\nÎQŸ½¯D¸{‚ò¢Aщ×büü¯{¾~ +Jò¾ŠÉKý³sæÑׇ*QÒ +ô±†ƒ5Ïs…ûÊÖÖ=ÀÀìL726'ˆ«ýÌèÙ6¢÷¸ù¾‡ uÙèlGî wswÇZh‡’:Æ‘¢†m qbÔs`–éÆZ‹¬w jlØ‘ ñ{Ššò]i5i£¤ë«Ì]h,Q÷µ@4£ƒE?UÔØ’4QÙÚÃdºÕ•ÝkC£_JªªÓ·F›IfEs­MÑÜhSÖ Žgx„“yñtNȶÍTq6‡YiËÝ”¨­QnáÞd5rm¸ºXÙU—¦èi)w¶fM5¶ÅJ¢§+y~Ãt‚‹ªµ!SÜÒ˜ÒÏçy ÔTGJ†šÊ¶äµt£‚1Ê9Ðý)fÆfò‹QDÊø{­Qt2Ë£nŒc#6ÅÄ$Í(7m¨‰ã?ÚR5ÖÞž#êhËi¤àœ:9þƒÕ]±½Águ;tm¨¡D7*È?”ÓŽ4ÌRëbUµy¾¾åh®©Ë4×2p²TßõÈ€§s ¨^BMÕM£emðO²Nzøpsy,6;ý6{Ö[ÓœÐί𮫠h¯¨øØ\Qã9ÝÊ Þµ 3ýÊ“•ÆÛbMÃÉZ³èt½aĶXÝh7q4ËFî+™ùëãÔ8- ²¶Š(e /li¨²"ê­®+U÷ÒÂg‡Ù©Ó­¬ÀAÀ÷ +p®Šž.ôtGU¼f˜Ÿµ!©ÂY焜­+ÿµ\Q}¦¡£w'°‘ºQRÄî8/_/­¡cJ_bç,öý·G¨±ÛS€vÕf;S#ïLp’–8Ù³cãm’Þö"qgeœz ¦x]ÔÂÔË›«M*yg£ªŽ{¸;Zäs¾Ì|ßj[´-0&%=߬жåˆqBÞ_•1ÝQ'i«O’¶sƒpåD7W;ÙBX1’VÇ(ÑËäÐÕAÌ7‹VÈÐKùص^Ô׃qtð¯½ú©ãùNÙÉBcYSW¥WVÑo°?IŽ—5”|i, ¹{"åál3´ƒ)rªAŒ9˜ÄE)¬Êé9¶úd±¦îPÅ…[Uîæ:Äg íS ]g+5õz5s §emŽ¢wDø˜­)B6à ߪ„Ç3µ›² ¨]6ôl–’:G+9S•å%¶™¦VÓt½Àª’õJ>vGÂÇꥵlëL5ûhŠša¡Äî’"6‡h±{S­»À¡›¨EïMÖvƅЭAF⑘?UW–›¤ö=ξ/´K/æ›ú­j6ƪ)/3ÉË‹ b^Éþ8¯ðx¦Šu¬©æ©ø«¦®Î(oš” •2né–ˆ½-"Fë%´ôƒIr’Q΃- ðÒÖzªÁGò~Éñzý°yމj5óHI+2Ë01{#`7‹›ücµ²Æ<Ã'šm¡®ýh©±KÓÔ±3ÓÞ·­êêÛV4°WFhÑ«cB°N\‡ÝWpŠNY¸‹!÷û¢€ó¿kdîñªìë ©if-—h]©®8ß¾:پх–ù¾ÈÂXÕ,ˆ^ÌËêPßxиÃBT¾NÙ3¶(©‚¯)¹«RV‘NZ<™·¯[Ý4z¶\ÓbÒÁ§ËUçkóg«uÝF³ð\œ³%ÀwÍc;ÃFXfĽIzæFÂÛ¤(GØæ:6qa‹íàw›ÃÈàùa|´NΨ¬}M5{@ùvuŒ„4iâl©¦õL…Ž?‘ÂBİÝ1T¨YJÏ9SóÐ'J.ârYÀ=žç÷ÇK}÷† +<6ºÒžÏ7¦¿•ó"u=¹þ'sÕ ‹c|–¸±$ø@QN:[oUžÏWר´åXÝxYà” áž¼*ö™I†Ìþ±UÝw´\ß+idd„}­É‹%aåé<Ÿð t[„oÏý´Ò_èaY©àYÖ†÷v˜çxä“%!ß:ÏÁœ,Ð!¶R–ENLÞ+óÝ)ùüs«²íTÛ:hUtY•ýMk¯m¦¼Ô"£¦éE丕ÖRC)s®§äëlk©ÛÁ8%Þ8MŒ·ÎÐ ­jJ®YFH:Ѱ`ÇjzÞ9PwçKíŠó…V‘+®a†>‘ÄÄ„C95WÙšã&ÄzþX©í:]h°ªjÊMbr’~¼ÄÛ ‚ûÙ絩¸¨•q&d¬"ß{—u6ßÐu¬i鱪›ÛŽ”<ìZWö»¾"÷ýTÀþ-SV‡×4à²MÒ*€¡ò‹E>þ§Õù1×8 \éŠyjU‹ÎæëZg„ŒÙ”¿IÅÁkª*N4u §êªr›’Uº;†‰Û#ÂÏ—„“Ùj]ceœ2“ŒYlV°Jµ@ÎsG*2àÑ~†1fö©¶¹çxŽÞÁü¶GPS/´¤B«ÿc‘û±RYœfQ×/W[¥çëMSÆ…ú®£ùÆ.“¶®á@Á€åÔ¬#v_fãþ»WÝg_ãötŽ…>[ ýXÅœ/P +¤” ½è|¥‚mV²àÇö}À¶„Mÿݨàÿ³Æ¦ÚTÔœ^ä×Å„ס˜8¯í¶-×vî«…Ö5aé®aò§®¦÷ß[5?Ö¸üã:|S”ï~¼H‚œ-Ö4Ÿ/Õ4.VÕ\nÔ µÅ;Æór¶iUR2wGÁî»CyïOg™¨íqzÑF/:Ø4IÉ8/ÇoTTœo×ô]lT·µ ˆ´%Õu} ?^©ïÝ•0ÀGdä÷9jé÷EûšÍåX« “¸3ã¿?\tª¥—¥,ÈBKž³¶6åáFwî[›Ÿj–c2.„óåÚŽ¥QlÆ„0ÆÉ¨  ¿ëê'Ì2J¦INHÞã’WFP±&5~¾Ê¯¿ÜnëçjêúØ)Núi\ñ¯U>ÿHNÎ8QÑr- +|¾â³Ü‘òú@ ‰¼ÜäòO}3©9ð“¥Úöã対C Ÿh”“ÓMÓðót™ïÁx±—AŒŒþ×Ne‡YÁE­õ°óv»Yùš†¶ï‹Lû>€æ)lèÁÆo³¿Ä]U™å°ØTòQ?ÁL3Œ#Å„˜Ýa¸Ïþp‰·uýÐ_‹4È?ºŠÊï+•u§³lôO`ìþÞ\Eɲ¨(Ù¶FÑ®»=Xñkµ¦íl¡¾Å,`-Óôìƒø«û}¦‚h– ±ª6Rx1Íq¯ós^Xq¬âaLR¨Õ"£˜˜cV26€±/¯gU#SŸ¶Â½Œb>çP!À©HiGJL´Y‰3ˆá¡zQQÀ¡œ”±-fd­ôÃŒRë|¹qؾNû¡Œ‹4MSÓ"DàV_þ‡ƒ‰|ó )s¶òy­~6ÓÐn÷€Çj!åHQ^|¤bè§±f!Ù¾?íð3YS¡+€íÌó9¾àbµªéçw±H_$_.ÐËt}¥žûc¥qøHÍÅíOs!fmФ®©0*¹x >›¾/ñÙv5)ð‰öý ì{v)Éé6-)çLK/ý¾P×v1 ´[KÙ†ø,´»&ˆñ— ¢}/˜‹yjáù½ÄþžÏ ¦d^,U0~­ *õRDŒAK?×5«?%µÌÐaû“à/IiØé"r±F#_nò*õ2VÑÎ$-ó|¹ªÅ¬å`{¡Ú¿»¸˜åÓN<ÑàÒÎfq'³ä¼f²£˜“ça¶ &¥e¨D£Šq¨"¤Í’Îè¥ç+UÍ@Ý TºM+`~_â1¾/ÑË.f Y›=éÎ#ÏêÊè׳t˜m†OÙ£$™åö½nij%lº~ +¢B­ àCw&1á{SȈC9%ÿl‰K>ÖÒŠç«êl -¢³õÚÞ³ÍÊæË àÏ•Êz³–GÚ‡ZU´ûž¨“¤¸óY!çD+dŸÌs)gKÕ]?tu“?·¶YF‰UÃ(9_k_°.5 î+xÈC£ð“þ_ü_‹ù?[¶ÿÙâ7äåÈz\„c?*Òù—º²î'àŸ§áA¦‘ü÷Ûm™N« ÙÏv:!ú |ôpeÎ[A¶ï}Û8#ÿRYEÿ©­ }Ÿ%|ŠI=’Aü ã™oÿµÈDØùÖ¢e¢mVÔž,2QF!Ù #&Y4ÄÔS )çXAÈÝÃEŒ K÷ÊsÍ´¤c1=ýhœy0H6ObõCPÏ­žì"È,cäî ‘ó¬Så%SÔô­q\äÖ)Ò4É+´I¸¥65m”1òìØ»\hþøšóù + +R3ôÓääÝ)|¤AÂj¹ºætÏ<Ó¬©©>«­û>K‡~×â’NU¥‡bDо²?Ž +<”3‹»ÁGŠJæÉ\]ñ–´|mµïß%#¤¬a0OuƒXðåR]Çébm£u–Z`V¡ý>’¡"¬€¶ã´9Å)­, ¨¬)Ž8_n²-Ô6šïd¶ï©"F‡¦Q‘ÖY6óèé»#¸Pã£àr¡¡ç;õÎfkÇjÎ"%¦ï!ü­rV±ADI&'Ýßî†Gü{³~ôŸýš1À§á-€´.K7Œ \éx.•lë5m{ +v™^DMÿ÷fM×?ºš®ÿlW¶ÿ{GÐ~:ÏÛ‡ù¬À½ö'Èq{„ðÓ.æÇBMíÙŒuªáá¬*`üĨ°¹†ô§äÈû»Ã”\€kð“ÙoT5)o,jjÉU÷ïM~õ÷µ +®EËÅíIÊ!Ö¹ºöó•†þC %o­«àíføÍ©ÈiË ì¯Y:üp²T—üDZÿp{–p¹ÄÀY•ÈHý"àÂd«VXnÑTÒO–¹ÂÓ%ž?ÉÞ=ðwº üX££m lâÑ àrÄÉ"—òc£‚÷s•W~ª¥–öPB/ö"s~n´È~®Ù¹›‰ÚùYæPIÖYLêå ò¯Íª®ã9 È!œ“å©U[[c›á"O4åðs-³Ô4Ž4)ù¤Ù6˜Ïz6òçLðLÎ.9S3l"bÂnÄÕ Ô¢eŠ–±5„ +é$GÞ©Hv`ôöHÂ,ÜFl ºm ƒÝVz,öþÏ’P°#%‡ κᲤ¿uuC—+ü +·P+€‘­ˆÏ;ìžý{ m+.¤àdÄÄQãךK?,×ç9/Öæ<_¨Îx²TòÀ8\âs4EËRw à "Ün  Þ‰Y%&9`SsP'jF‘i¹ÙŸõÁ0Ux:ǦZtÀ]l›†µ( É'3˜¸s-:ΦBDn€}·ú ¾ÇJ.Ù6Ûܨ*| !ùr†œsª¤A,Jb¦UMN?”b÷'ðás-`—í1|’¶£,q£êw¬dDذƒ¡²Ï‡€ß;“S.5ŒÒóY¦Ý_ó.…œŸ@V°¯{r8tØûÈÞ;JÚb;PkSåDƒŒ…ß—ÐÀG€¯=_âѬjz±IFʶ*¥f =ûhŠ˜èuœMÎ*³z:W-<]lè<]®®5Ê()19y§é«á$Ü;žÀ¥ý˜«ª=8ɪaÂŽdåe@–9Qñpç6æP†KÓKñ™&%£èr±ºþ¿ö5s׫Û~®VpÎé¥6 "Ò(…ìOÀ| Sˆ ã:øHLˆ·J¨Ù¦IbœYNÏ=ùÿ½ç[šéöþ½÷Ìž™ÌL&3é½Nbbz5jÔØ{ïAAzï±÷Þņ +Hi‚Ø©RD¬IföÞßã÷ü!ÏÍ~Áa9T.ï{­s}N¸®µ€ÿͽH,±M#“-£ÐŸšM2M“Jñ!çLƒ˜ü/æ–Ù£aÇžŠVëZÄd؈ـ•üÖÄÕ2‹Kß™&äXg)e6`íºöÒ7º†Â [,d£³ì¥}žäš'® ÃB]2|Ù©™ßr²Ædøu¸r¯ +•îU|²KJ>ž¬`+¾­1H» +r±a ê}`~„ÏP×´°ý‰¹¾ûˆ°û@O„ì©`‰›£•/õ=Å}Ë,¶_#ëÙ´#=ì^ÂÂNÌ Ö3øàJë$ìójè…mžc'äjºØy.Iw§OÑ\w æ‘å”RœZéœÅ'{f©^(Ç:Î=IÈ:\ Wlõ€žÚ†A¯Í½¥Oe‚¤‹r^Âoú†‚—ÛS„ìå®ê7æ.èkë4¹Ü&fBœslØoß–ëë¬b\ÁBCÖ£Í!xæ P=@¬îʺ0Ï"^.Ì ^é½SµƒŸ³ +ß]±õc2lC¤D5¯ä†’}^Î̺ 5¬à–{g›¤äpŠŸF¿ºö;3äúž„ƒ³K¨ÐíéÚ$Û,äÓê`ö}}WÊÍݹê¨õ ÈgE}æŸ{Rlå7€{ö—iî¹ò¶±¼àõ¾ÄëKõ‘ç6zŠï/P+ólèê02,°ùt‰9Vñén ©Ð:‰Š²Œ#€XIÚ¼Zh( +&ä¾þu}Íxðí LÜFoùÓþ¢g.èµe´ðÙÆpVð‘_³¯ #vg‘)~ î=RR¹užä_ÁU™)˜ vy–hM_ÕëõqdÊ–;ü…MB.2¡¢œ3˜Çdí§íð'¹ ó¡®9ÿ‘wVâ˜e_S×ä× ø@¬—m#?™;Ê2/{' Ñö±êXËxeȱžøÙ†:ŒV»>PiŸ¨‰^, 6”0ÿ×9_å#¢Ý °Ï~:Õ ÔQ§¨ú½k +—ýov=­fo›m‡…oŒ"£ ƒˆO}”ìÛ“4œO×ÜëR±0[Àú€WØS1`ÇzaË‘¡yp{“¼5ƒÏòª„BÏrSë–˜^ºÔ + 3´‚C\“¸¤­AÐç44Г¤õÑšŽ9L桞Š?ÐcJýd–Oè9èqŒ¯þj&!¼JL.À_‘šžò§ÖYT¶GÍDºŒ¿–C?1×µîÊÑi^2}w•êY$ùu\ÞºëSÑ1'«]KÇk Cþ:~WŽJ·Î¢ã·Ç1[£ðh÷"¹Ô0 ÑõÒ½ª¾9¯²¥Ù«à }‹”’5 ³¯ æ¹ ëÅO—É—7ÀoÌU¯ìC°pëô¥ȇŽÒ`ÛhÕ×".{¨)÷imÎÓŸÆQ©÷NôM½9ç’± ^ >íL£7G!!;Õï—xì]µ€hPÞá2}jâ +€ŸÅÚ&‰ænð‹•¶â{†–’Ç6«xµŸš(g—Þ°—hA„m T¿Ðµß•Õå\™f¤Ÿë†}úq½PᘮǭŽÀ€{ÿÄ6 ‹öJ •^ P3(Ekýàצ–ÒàÃE +&0Ól}´0HÉOøMÎJ9gn/zìš%õþXA.·N£â4íå,£ˆO®i|šs’j™ &o #C·ì÷ëºÑ!ú&ä{1­$XßXõÞ2Ã…IŷŤ؟ռÄóžHÈîø£s~ºLEr2ŸàÒŸü¶À-Š>Ñr¹»bPر¶"æ@[»2˜þXß{ÓÜ_ô§SŒÏۙ¦­ë_â2¼êÆ®àZmôWOÑ~k¬xóJ~Ç=O,i…Ç?èÅÆ>Ý_âÔo‰šúò{^Þ% /ó¼˜yvü£¦)ú6ÇpË4½t{—àœ –º% ´gŸå“ ¿ê(°c-u°Ì£kyì/+€þ.Q!‡b呆Tu  ä>Ë5þ°Þ’sÃÒ›w÷P†Ju‰Ùõ!t´uëšÃ&;f1©–qlÜöüãrCA¹é2`=÷¨Ùø#=—îW1k—ù ·‚ßSÒ ÇzAƒo¹^¸³À­Þ]jis)ê»ó´"ï>cc üåZoQ°G\½·€ˆ±N”½Yª¿fèL¿{j â¾¬Ö÷ì«Ðù®èg¯•f›…ñ^À7º$°Ämü3P·²ì ?Åãì/3P‡Ë ÀI¯ 昇'®BÞû—Ù¬#c÷²o¥¾Ùoªk÷ëº}: –jè(û2à†4§ï”áó¼Ë|¶ ðÆ{ÿpEØæ•sÉ®9\²}ùY×Rü(pÖEÄN¹JÈ~ò£¶µ<Þ.Â¥ê³oš» +[ÇÀ! ‚”+óüÔ?ôÍù·Néè#}]³séêk îˆkcsèŒ@N|1r¹æqbòrKUs–X|¼Â¡íLã“¶†jßoôU=76>ܽZGGsònQÓŸ~¿/a£vÆÑq¦Î¢;Ëù7t-%–ëónhòn®õ”=üoõÆ86auä Ÿ°owžPlŸF›û +Œ£"ÏÌ“ânùpU¾eÛ)¦,Ò 'jé` —Êœ“¦Žôã„°3¦¾ê׫}5ouÍ G»"fÙ¼µÕ5Ç(_ë­}'ÂfüÊÈx÷AÞ»ÅÄÔk¶|‚¤Ó^›ðÛZ$æo-¹xd}sÙsMcÁKÇDÉ'CGá¹àîJ7*óHC®t¤_ÛÊ{æ‘Á’,ÓUá68ê`‘^ë<±¼©8h›óð@Íá~57i™˜1DØö<Ì6ŽJ8U1°>1Eθ-g¾÷LñѦnøÇyJö¥iLÆjáu/ï–©­èùÎ<}kŠR˜ûñöwÄô÷×-#ô¡Fذ5’¤&üahH½h›*}ºÂ¤ì/sØC̬·íµ¡—ÿÏ"è;ÐÀNèÍjCÎU%9ñì"9ö×Íö¼{'2b‘¾–\z÷{Aeø#€Wx>5 ¶9XùB-H¾ÐYõâ ;âÚÁ2éÓµ‹VEÔB«›÷mEØôEËc}ÓSjÜsÈÝÐÿ^'xÈ‘:†užYæSröåôªÍ¾ª7AÆu%3ùIäÇÆjßþkž}Í: Îü…×%b%>2õ—Dëø ¯Oôî±ø;sÕŸÙÑçŒ]yOü|OÍÆ:¤´òíYBªGÉ€hXÄ@Ïõ¿ ø²c€%•¨l¯™ïY"@Ž×ÆöM¼ç© ðÍÕN€¯í èÌ=5¶øØÈ$¸—˜µ­|oIX·)b"Ž4n`Þœ wÍ0Ší“ø$s/è‰JPrÏ9I)·M â—ë2®3nz!H¸ 7ÖÆpÏÖÆi¹l«„Ý'%ö~¨XÈ=öu•‚új¦’ŽWÐ%;S•¯lS¨ø}½6 ÏÖuæœón1} çbÜbl* w橉¿ÍÞ™%fM²óþ\äy&»“øäÕŽŠÇ›½•/\Ó°¨åæÜ»r~ÚesèÍ©¦®Á>‹ˆ3t™ú+^{*_¯uV½ßxëP‰+°ÎâR¬"Jî7Ccïߦú.ŸŠ6ô”þ¹ÚSp×Ü™wà¥'®9R®E„OÑ4‚ì `c|RØ*BDlÕ†Hùå÷[@±¿ð +?þ2„Hºb%eLòÊŸ²ÞœQÔ—D+©Uº¶¬›íWß““ïücõæÇHÑKÏ,¾ðð6 "k¹='øXæžš ^9Àè*rÙQ Ÿ³Ÿ¿= +zy b ¾­ +;ŽtlÒžŠXäS²q~9©do“³3 _ï-}®o*¹·Þ‡Ÿ¤—¼”~º¾>‹tLQ‹S|„wŸâD§î ÓuÅÁm•ZäEîKxÜ= ¤äÇŸ×6å>Þ‡1‘G6Ñ-g@;ÊB'Y)Aæòȉ%»Ó¨û2 à«xÛ(À1UÏuŠàbÚUNÆËM`bÿg•Yç[$äoW>³Žƒ>¸fQ™~"ë?; Ö`šIdüÚ2ç¯ÕÖ™£%Ñ>^üjk(ã–m¢ô…e¢ìÕ±ŽÅðªxû,5Ï+cÃ<zE4þg~·ÔÄœ™%Åþ¾Ñ]ðâXA*ÿfâ OML&=÷Ïïd‚ÔÐ/+4‚O…)Ú½ó/còv`IÚ¶€o‰ào?9e<’²­æùú$!Ýkh›9Xë\þ¶ÆæúæªÃ·{²o®wgß4ueß÷ª Yû˄ʭ)H¨g_y°Þ$ú²ù¿~ÉuÞà‡::Ò£¢Tzå_b£§hE÷ |îñ2w¬æ¼ Lcc* r ƒ_ÊéÕv&Æ2€ óÌàÒ÷$˜T€)^»§Aï\b€aIÅ›sÔ˽dOÅF»•ø|Ÿ‘îUƒ£C-4ù@U›y¢§c^$/´æ/ +Ê"ŽÔ]¢c€MuLÃ"–r®+Øi—Ôüò Í>‰Qþþ—>Düý½ÂÐ^ötûé—ibøoêú”ËbFÜos”Øs;Uá_t|Áæôƒe +“î”2k].|_FÌß—ÕÄØgJßk[3o[ÇP±_ §zÀ%XlúÑ9N÷ŠqÙn1À©Lšmù¿>a"|RàÌÂÚ`õ+ë4!s}‚’%å•Ý”2r.Êè9WÜÒà!lÒåIrêÕõ!hÔj_õG… ûê+ëþ$!ãñF{ùÇ/|Õ0‡ËLŒa¢jË~ñÕÈå5ó€®XÆÊ_Z&@ïl“‡ÏA¿˜8œ} í”r÷”TȱNа;‡ˆYë- ’2’Ϊ…©V:Ëž˜Gpñ Õ©×!‘O~4÷W'±NpIÉö©Ê7ªú´[- ·ç¸ÙÁ?H©Éÿ +}2.IÛR¶Ñz·/§UkXØÿ¬q…_ ,²OI,ò,bÓö•¤‚C´L¡S¼jÕ à%½]]bȇÕÎ’]UÑgðñÿ)È ú~¥>ãÙ_:Ú>NôÉùJj屚ƒó©pyž¥ÚL«`®ùêðc›ùÕØ4à“Sk¶† +‚Ý’ê„c Ú¯cþ÷Úµ–†ð5nOCÃìi€ÚøÃ¿Ì C@žß'™GkBýJ +þt¥iàX'¬?òf‘T¸;޳ #Â6°úLè‚ ÿžq³3MLŸ¡¥Ÿ›ÄÎûçÞ7w ?[Æ(E»S¤òýErE`N̆aôҳ̣¹¥äRçláÓÕÞ„ËËÍ1Ì1Â~öIqy‡:.Pßq9kCÐc nZæWpPGKØÇ4èÕÎè¹ki›ÂÅÍqKnÎ ŠîoÏЪv$<øR+øñ(:ö—ŽŠÐï[+"¾§¥?ùç"'õŽÐèÃ¥š„g¿o âÒ¼ ŒÊ)!Ç3SnìÊ +šg¾!¢FœÛ_‚füw³®;0¿b¹=z¹3 +~ãWâ +OM,ÆÑ*›ðÎ.&`Øþà-èû­ášw›Ã°Ï»sØl·”»=K\j® šE'ÿ¾; K9Ô’kTíwÍqçµ]ùAÃø¸ÛCȘ@-H<&^;OCÄ<ùe£·,ô?›,î‘Wîƒ#l3%¯<€–©°ÀLs‡„^ hÂëÝ9b‘_% Ûf±æþòGÆÎ²sôì+u¡g{j"®ÙG! æp(³4ôŠu_éWÑj7GªBŒ½å =Å÷Lýù·ÝЇ¯+\Ž_#àXÄ´Â=z²"hþkMÐr &ƒõ­*Ù¹WVÚJ8g±)»V•®ñΧàQ{BÛè- î(þóäí™bÔO*VÊž™ÚäÿÛávÚäµ`aÙ‹ßl£Ø¼¯ú¦ž¯zå‹S|¢…gÛ¦ +ßè;“oº’¯|]­kß3tÌ8åB]L):5Ô÷œhXä/:&öPI©ôIjâvFòž;g*>}[ã·¹ÔõÍöê@_×pdbQö„B/àÍíÐðTìa΋Ÿw—øôíYb†GI©òÈés:Û@,Y†ª^íô>Øéɹï™AfÞÃQuT<Üž ìJØË &É:ƒI´L#£lbx”KNÝÓ2ûšÖ]Çì¾uôÄØ2zjä×}5ñøÀG¾XçÁ +À’JBžCN«t«êX;S˜€? 3¶CžšÚª©9×ÖºË>ØDðdcÍ«•.â§ÑzðÖ°¼=Á.ßš$¦ì<¸1 3•¹åQ°j­s¸T÷":Ðؾ†Xj—!“l³˜¬À¬Õ½%Ϋ`#}* ¿—˜ÈÀ¬®jÃc =ׇ‘á¶yfÍö²ÒM5µ1ã uè2JñÕYRÆy}ÁcE[ñÓ>|Ò9 §ü½cŠR`ê­z£kʺã…®v>5´fÞµ<=6 2ý\á–½3K>Òò™‡Zîd…M;20I>À/;QéÆâÇ.4aWN.uͲªä=¢#uÏ<ð¿ 7ÆÀ¯×G hÛR¯ ÃÞ]Ø‚E¬Ža⻑±¬wU¾:ZæüKÒž’è âÀ3LCUo”u…wÿ6fp²6)P[|¬aӾ꛾àwlÓè„Íðk—$°÷‹OÔv"#mbRÁ>à¿ýJFÍÁ ê›e@ãØÔAêQbâ ï" ³1ŠÉ +²¯;æÑi€¢lú‰™Í<ôo_SÇÝ™¡{|¶sŽY~°D©tI)C•¯-ðOÛÃ5o½»l#ÐøYFúƒ­1DæÆ8®dš™÷DÊÊ»k…ÅùçQ)G‹4о„^»9Z™´Ú—ýÖÜ“uçXK#jyÜ­QHøæHÁí±Ü •ŽÜGV(ü/3 +äS»_ÏbròÞö²žž®¶LêšUô‡¨6ÌÔ’WÅOº¹=Zö÷¯Ý0‹^B¢<Ë̓Çͳn)µtcøÔ·£èä} î[á0ü~ï +Ø:I°‰°ñöRÖZ ÏR[ÞÍÕŽì;‹œè +mÙw·`o¼b>Ü8P/f\ß…Eì-ŠO ð©‘94Ñqþe>÷@+êëêtõÍ_L­S9x_Œ<þ¡†t«Qé^-¾È¡&ªGPŸ‰™7œ"J¡uŒ”.¥å\i+}ý]Ká‹ï¥¤ØóÖþŠgŽR¦v„”ÚIÊ»?HŽ»¶5Ú“qqû +.a_M(>ÔâJœ‹€/DEXçYµi#e„œbž ¤Øæ ù{ + /´ˆôo«$È_&.ïD/¬ÖHõ/ y‡úæþ#}}ãŽEð*°yŽ9P¸}®*Ú%&z8ÕÛ“”L |o]ðg/4ézuÜÙnhÌùVPÄïøÄ+†úü;žijÞ\CùëvtâÅab‘{¡¿3ŽM°NAB¼2È'‡¸üÅþ22˧¦Àì:òhµqØ«¥Öìiˆe>5*ǫƻ—ø] ½¯ã°, ØTËDàýQ|…¾™ïšçT»æëÁ¤{ç°éö1DÄÚ 2|AXò_úûæ0"~{—`¨yí˜Å$oŽ"¢%Ï7'+?:PÉ@>–{¡Ÿ¥-ÅO€šÏûºÞ0|è©&Vؽ%gá±¶ÙÚ$‡”TjBEqúp_Ãáêy\— —cìÉÿSÆN»¸@Ïü£§öã9}GöS·œ± +žö ã.ìæQÓáÀú¡ÿÛk§òBÎAoÏPrmVµ¼òxc—¹Ôï@õƒ%&Ü:ô5UÒâ냿ýC×]ù¾z7òáÅè{ŠÃÿ6“iyÔæPöSusÞ}NÁ‹ùOÎØÆJBþ»ÃmÝUË-bD,à屾š¸ü¿7Œ¿Ö±Õ[¢œˆõ¡‚õ1h°Ô‘ËÙ[æ’|Ë¡šC=Q²)ÿ1ÑÿÝ$£NL„ÚõÈÇíQB2 ­Ì=us瞺ŽçÓ›´uÂ=%—ìž#”ŒDÞWaó< ðT»¨&Ô>‰øpö+MSù=Ss ×\yð2?óîFgÑû0ôÝÎ :vNqwúÓú@uĩމÿb$Õê0€V§xäøà3|@Íð-±±_ Í'z>çTÏcžË@ªÚ¸Ï®¤Wiúð1S´² c7=ø.%øÒ?FÑiw7Qi+mUÏW;+žÌ1RnIù9'ù™·zI©÷ô½øt=cȈm,j[yï•×&}Y#¢þÞá¶œšMõ] -ðž0ùd•Å?5 ûLÍc~C}«Ð§‚\ÜßNæí!\ò•#…q˜Ý.'æû¥´Rë*b¥³èŽ¡#ïÖÆpõ'û­rŠ[xOÖPüdO°î‡è|µG…Ï÷( ùÎEB®¼òn¡©âݾQ0xh´¸¤û!kw‘=YesúŽsÉ™5Ö9|Úê,lo™ xKJ¥SŠÍZ®MÕ·•}X﯎ڞ¨I·ÏÔÄé“Ü‚?G¨iŽzè”SJ­s䇌ZáÕpˆ9n™§•:å,˜¦«öÓš¸º–!ðµKJ-¶M¢c·¡7z ï7Æj“­óìjq#"Ž\~}m°"twièI¼ªíH¼¹:R¦l/ +_n/þìžGdüµÁ©[›A§.v€ž;ˆcóð‰‘‚=ÒC³]Òü—"úËŸD„w¿lUD5së6E¸TÃ.Þ©àÒ¿;þclìÿï:øÍŒ«ØSÁWûA¯\3ÔB˜Sµ·Èǯ¶NŸ˜[¦ŽõÂfÇ46ÅÔVñàHÇ<,ÌÜ™o£¯èa`‚¾³êÉjúƒw¬¾v³ ¶ÄÍ»1ÏL¾Ö{ŽWøägVnÐ÷ÕïÎXƱY–ibšk—áS“J½*rÕ±Ž/<26ùWê;}Ëlì‰ÃtÎá³üJ&ð´/F6ŵÄ#î,pÀ¶AÍF/+eŽ]~¿¡üó&ï†wŠ_c@„›; +ïišS.š: ïoŽ!ÃMýÐ÷ÖqhÄÑáš!d¸ÄÔ¯œ qKQ‰®xœ}¶:BÞ˜rgQ˜~É:QòÅH£8”dÈ®‘°+©‰ôÈ`ɇËÈ¿è¿WÈЯ™ÌZ&jWB-ð³Wɧî/56»d|‚¡>„I?ß K¸(ç—?ìE¥ßl.»dlÅ$oOòV{j^¯÷׆ô¡’®Ì2Òn»ç‰ÅÎyze€‘ÖGȼ(k}Ú•òIn%½æPKè°e> +ˆKLº[M¯v/3~CCÇá +¿áàå#cÛ´_ßÔå×7´í÷ß4y©ï®xªëªzeÂæµ#"®‰9º§˜Eö!Ô§eAÊÅEVìyCkî㵡êðabòÅ9~Þ‹Àó9æ1YÆ¾Š§ÆÁЧ;ù**ð,¿¶¡÷t»Yºg`S‹,˜SÒÌó-õˆOW-^5­X+Ĭ70cÛ¯cuã>?T·ôxi`ç6mc¼:\ÝZtouáP*ŒÜF‹[bE&{5|á¹¾ß³ÌÆx4l¬c‘ZárçÐ lñjÛw—ë-Rz©WYÏ;ÔÔ·œêê=rVíÚ5sUÄ.X§gXfˆÙúðGJ΋_šÀaW÷äD¤GÎ¶Š¡Ñk# ÷ú΂ûÖy|Φ˜2‹U_’O u »2|î® •a“VÇíÌSÍ#%ï\RtÞ¾¾ŽgeåkñŸwU<Îßë­ ~5ÀL¿Ž92 +ZüÚºæ#Mϯä }r.Ú0¨O]ßà•³‘ÎE&rWB×¥vwŸä%g»çI¹Îid¼®=û®¦±ðž©‡×I<7ŠM>¿XŸÿ`š‘yg |q–”zÉØVúØ6OYj«yaêÅ${•Š]ʨÝ_æPÍ#^]}“]N-·¿6Z±3I–5dÝõÎ@ûÚ¦ÎÀ9‡˜®k®xÐSýùÇæâ÷ß-°s¯R +C~&¥=;ch)‹ð,à²ÜtŠ[‚I·MUG­öå½\ª¼,¥†ž]ï,}¹=EÌ”5äÜZ®Ï¿·Ö |n ¯yÁßfb͉[²3[úÒ#Gç}tú›¹iìß&ž`é™*{½/…%jè@3mó¨4]{éŸVµÄ>ÇF/µÖ|‚â.—~ +:+,þü»¡¡òþv/ø©m߇Šüm}q½—àœâÖ¬‚ßβ2o,6”™†¡ò–Ú÷+C”Â]e£Ð!'•8ç1™9s¨áÐOWx‚#¿¯ÆÂ½*<È­Àåy”TèÑjóÄþаգá3Ö'àÉ›åï=ÒšÏ^9:}¹×H»§l‚EYÆØÅ¦vè+:öBwUè1!榚Í: +9PSÑÒ®¢Ná»ßícLȪ©Ñ»Ä&u~OI,Ù[Æ•­3¨n=©Ê,F' Ð2ï·ÕFÞ<]k?0¶Ï±˜ç½9XþÊ6 ‹pËð9¡J_ö¢ã.®€#¶©ÜjSL̳»œ6 c¢vD„"÷«Ó䪵QT¶WUÇÞSóY{&fEÐèYj›ŠÜU²ánu×äÎ,—¼)"x–¸4‹„V¶ØPý²‘qmtËÜYú§”Ÿñçr{IÔÖ2wsÅ>Ë9ÔÑЇZÀw¯0èF*Õ§ÂTÚ'u”yh¨ïØ×Ö÷Ù$4là}L× e“QJ,2Ä 0‡O_ßÔïŽ-1­ls’\x`ì\ôzÔ~S—ú½!ôõÍ{jf­ð‹óŒÒùÐu'ð·•ü&ͼhOÆB8¦ð ¶QxÈæ@哵Îâ»rnÂy?÷v§âVä“Kÿ–~ºeŸB'nÃ?é[AA枪'[CÏ-ã%Áî| +àPk3„Òbô5ò¨»§ìòÞqûbKãžZÀ96›ü:>Û4Љ_%õ“ã’Kì3¨¸õnØ»fñ£iJÞ]àZ=ÆæDýFJûxNÛNÜB'¯öæÝ1ÜS6&_F½=;AøtUD޽½Ö_¦¨~×TÞÔÆÈs‹š‰>©äPÈØSÖ&îˆ*ßÚg*BüJøXÃ"¸¤„üC%¹â?*òßÀã¿f^ýW=Ÿ{¤¦ÂÌùO6‹žoNaR„°ÏW&hy6±kÝ5¯õ-y·•‚„Ë“¤ð?ZÀ¯d?þn‘™u[Ì)zÌ)ütÕÜUòj¥«*vmðÄblªsžZê£2 °´íÐÀߢ| +aãÞ"íS+,â°MQnˆué]¸ÑÄ$yµä›‘x€º¯¦úž/&øPÏòÈà‰~@ß÷)%¶)lÂÚ2Ä2BIr9Ï|}  äïŒV‡᢯ŽQSïÏñ] UÞ³ª‚lcä|C䵦1÷†ET¶6Tùz­¿ô­M„J9Â2U½:VõJZWòp¥‘«à£c,#5ŸŽ4„j¯Œ +Ù¡€O—ièS-‹´+A&Ûf!!~¾pO‚ÉþKGÇýwMØqªô]A,Þ}´OÕ¦mMcÓZPÑ7DôüGëý¸(sWUðR]æÕyZâE ,þ–}ü} ‘xg¥¥êÕ !ónÞë›ÿXﮌؗ< "Î: ^í…¼Ú/}æ˜+yc.ã^ •­AÓmÜ™@ÄéH¨cqd ANM”ÚîV Rœ Ðè/÷@]Ww¬oì ä‹_Mƒû•øBÇTõ'cWÁ#7ùÚÆü³i—;LÏ’7æ=³N£³Æ)YÏÆIÙÿ”¸/cÃ_°6ŒŠØšÆÄ¤cl Õê •ûb•ÛÀÀ9ûÂWŒ/ëìzó(<Ò<ŒOÞ“× ¿Y,Ë(èã<9æÊr]æƒÍÁêwûRRᾂR± (y ïùæ©Å®L–©¿ò®½ìÏõ‘ÊgÖ¹šp‡Œ\¶+§ã=j>sk–RîRñXže>Ë)rDÅ€šYÀ×t¸už’è{ø—ÊuûÃÄ„•ÎÚ÷"lâï=5a[ÁïnË_ÝnƒDýֆɋ4ŠðH·Š ±Îáò‹L˜KÅÆîkÈ`W ¯ŒXê’óŒÃKm¥uȘÝe¾Ðª$`­J|•[ÏeÛ”´j«œ¶- Ø>À÷9dÐôµñ‚`‚Œ4 Ñ_W¹ ïð;}öx•‚ö(™Û€Þž¬M”·W¤Úç¾€‘ï˜e—ïŒmÕO¦I™t×ÄÿÜúqaWD+ßçÏÒRÏÙ†k£¼b\Šg“ä œœC¤ìLã3´ý„èRÁ#çä7uÊ=×ÔõÃÒ§áRÜJ>Å&­'‰ê1QÍÉ××Ûq• ôªµÎò?·úáïŒíÕOôü FAÁ5Ç(*f}œ˜Ê}¾ÐV{Ó+gÔúJ¸¤ˆ8ó`ÉÓ zò•!Râyc_y°E„ˆæVD憡Ä?þ{«yί®úý>Pን¯åMW¶FË^í)Ð.dôËÅÉß ý§€g?T’Š÷åøÏ<6Ã2ÿ´ÒUýLÖyÜκ>†Ï¼ìžbC·úëÒ|gêÆ„oöùå6ƒ"ÎÖ¼þÎ9ŽL\n*Ö4äÝñˆ {‹ÄŠ=)>ûHE* ֣̿é(~¬n)vÏ^Ãhè¶Ïc³Ìc 7¾Àë]ZLΑWùßM:=0_Û#å Ã^ikWB+ ìû0wäßÓ4dÞT 3nïÉð¥Ò޲Oà„ „Å~ó«™hs/*ÂÔVól½³ú9ÓoõÙ³H{ä䚨:aŽË.®Núº +ä Ž‰ÝÓ±Hû:寺nï*wcòf˜‘óžòìª=°ŸM‹‡lUEXGÀáG +D–e¼"LÛœõ`öÓjüc76õ11ëå91;ûî†?ÔÁ‡|1ðy…Ð!§Œm_ ä9<Âö<½Ü«àâýK\Òé +“ð×GðEGG¹¿5RüLÕœu[Ý ¡ä>„ÅýÒZöCKQè™öòˆó«•á~¶5ŽÊ]¬Ë’°s®Øf©…@KpÍ¡²w%èü])©ÐòÑ*r`¤á÷VØt«’ŽXì.}n‡Æo´JVë»]K‚S-`z ¬ÀÌÓšÓ2Ú*®Íè„E]ò/‘0ÿÏY?˜9í–"mSàw›#ÏýK˜âÿZý{rÑ5Ï«Ùáר&y[}¸¨%nÁ)Lü9#ñœs¤üíN?,ÎØVù|¹®èš{˜·:\ñÑØS´Ú]úØØ÷`{úÞ3Í(ù +x¼/« –ÏÀÀ»µL´ßÀã|3±hl<ÐëÜRVÕÞ³âPÆ©=” +}¸èõ6|¤}˜[¤oª~>K<§âçü©<”qs¯)„Å·Vûð‰îEÞ¥dT[æÐqÖYTü.°ç9°‡${}Ÿ!â–SòÃ.jZKSL-“ ¹d}¶#‚Çî+HŇjBé +S°+&jÛÁ/v†1ùGšæ^ —xÇËÔê½ERÑö8ú3 ÁkÄè…fô»vdÑåi*èN`?³¦±øÞ6òL7ôý¿zà?O³.VèÖJ+ø½ªQrï_˜ÏÎH±¯àKÂÌ«c¤Ð_4qW´]I—6†Ëßí/2`þåÆfe;9›°3Q¿·H(uNÁ£Ôué7‡`~S5•7¡Ód~|øs/*íú*ù×!HÄrrü¯rà…áa¿tTG]j®Š¼¾ÈË{2/(~õèâ?ÀÑA¿îˆIðµITôö4$ܧ!ÕX$ØÓXMˆyéòöÿ¬œ–Í1d¼[­4 ˜šÇO¶Z$_¶}§«Ì1 Q¶‰ªW쓪µ$x}ë˜ÄÄ[† ¡Ö᪨Á²°ÍÞ¢·û +zk˜haÕËYFöƒÍ~ °þâ{ ä´ß'q¿ŠŸã>ÿ¢¯Ë¸n¿Ô T¼Ô|<Ó…˶ ã3vçØÕaL´¼´6LHž&§_m)ùðã"+óærCÙ³­aT"ð•YĤ|}/4ª¾üÓYHÔƒïzŸï¹$Èì-QékÛ\MÊÞ m•q9½ íxƒ×8û÷¹6\ð[ðÅÜ¡81×u®rxþU:á@/u/@?ï-b =rde’à˜'€\€)ÙÙ×û@!?¶¿ø§˜sÞ!&æË……·PÑgxEo¾§f_fä¾?3O¹ªåW?ãÓÿPÑSÿXk¼soɳ^|ä¼²7ßO’/ïŒÖ~Ú¬x®äü¹Ôlʵ¿ˆÈ>2ð„ÇÆ– Gz‹”"‡„QîYä|ª:Úî<¥À.ÂÆYDZѫ_Ú OÛ  ¿qsCÿ¥­ƒ¾WrÀAZÎ%%/ë¶¶1둌y{†rq¹)ëgŽYå˜eÖXÆáQþ˜›ƒàЭÁâމâç[ýÙ/œ¢Šp¯êSÐÁJÍ)&æxfQ‰Ç +|™_KsKá9»s˜´c5 ê’rÍ€§X³ÖµØÀ¶LRsLÝRnÊ3”ä³;ÝØEDŒ™2Ë,º¾Ô}i±ŠVZ+cb~¿ú±ôᬱ¹âϵ.̧Ä<Â("¦^2v‘Ríü*Û(:Æ5ƒŠuÎòv€˜°JÉRÀËh{`‘%½z_KGè)pÀS×,JýËÄrCOÕKyCÙ£­ LÎézý°SB*Ø­ØDŬ `âe¼ÒÇ#ÈÄKaÁ÷¹¤Ÿy«*îÅÙÅ&XžmŽZ"«K¼°ÀŽº-Ľ2õf|<\bã—…u¶Ej5®ðÝ•QZÊûof.ÿ@ÔOY`Ÿ{ÕkcgÁ/é’‚—r{–”Ê ½ˆM¸çQð›}*DÛ”}ñ;//øû–¢§ß™Û²ø•Ärë<œòð'neäÓCÿׯùXO†[&Jž®æÞuI¡1§Æº§Œžbe?TÖå<<5p{‡«½ +r‰M„M±Ž#>¯õ•?^¨|¾)"¥’s>þŠJ~öÓrgÙg §[ãÕqÆî⪦‚G}ÈÄߨ9¯¿Ÿ¡Å^uÌ€ãv%¨dË ø£OÉüVóàÉj» ¸f#GF&¨“Ÿ×$œ¬`A_7Æ­ dêb{nÄá*t´Ækþ÷ÆÂç?ôâ~Só/öS+/…<¹þdâëËkpÀÏ?W Ò®ê[²ƒÔõ™·G1Qg¯~FÆ\\àÞÆ$>ûi³«,ôXN,7·—-‘«ýKúžœ\èn‘WʰÍ@?­ÁB3{“‡-cª¬3µ1€ï»Äí ±Ä2ŽØ…ïLÕF¸ ¹ÞE6Â4€I'gÜXëÇF)Q“,ÐusÙ“ÍÁÂWÎé2€GªS2Lz Ó©‰ßà×°›S´×"ê’aóýZæË§þPÏ¢8q™n¹Ìü¬e–Xh™!X§É9›#¸èÍ1XÈžŒRu´$¬óȸxÛ,«Â2ÕFÝk¨5Ð’Vz裡7GqñÖ¶)V±gr1éVq°u½pWA'9¤UŒÉX¬~ç–“+¼j6îð`Z +¯gâ}Z>cWÁÁîËh`9¯àþ6õfî%soÅcÏ&ýPÃ&ÇÑñºš])¹hg—èVà²rxòÚ84Ì:‡Ïö)9ç1?°Gâp…Ãòh)°¯;ü®ÓáÈ P;,ŽEBîHXí)J¦ML)8Ùjœvk8ô}=ŸÿÅÔ,úblèþ¢ç±ŽtŠW+`oЍéÖÀ¼ÃF Oz±£ð¾a„[¦j=UÔîKØ…——ëó®®õC^lLâuýèåFh¹§®`µ·­rµ‡»5Jˆ3tßÓ5ç^ßê¯}ïW±^¹bs +±1Žˆ?^©k<0ÔÕí- ˜ž%6Ú!%åy—9DŸF(ði›{¼Ë†}ž^lŸ¥oáâWÚ*žÉ…7ÇÉY—zq¥ù ?÷"²îÍ1óïv‚CA…ÿÐ\ùî»nXôÏR~i¾ gèC| ¼ÏÃ)ù|ÞÔQºÒYþà£sýˆØßç¨É•ü¢`}suèZ>ZÖû€Ïù™žvÖ=‹­Ú*{b½4u<ì©~ýCäíª¦ÒCì’;ÑÏoGH ý}µ þf©¾âÁ±à–“{žþáÇ‚W7ÿ‘úèÒ?J_ßùNŠú1íãƒï`1O¿3µ×±­ìÉÖ@ÙcmKæm)âl}É£†‘/Ï8§ ±ë“˜ôqrÊ=msñG¿’ ßWÐÐÎJþÞ!{g øñ=âüJGÉ+û µh_øÖ4 Í6‚"WZ*B¶z¡^`Û£àènÊõ6ÐûmÒÒÔ­¸tM[u‚} 9ÏŠ¿)¦†Ÿ_ïË:\®IòÊ`Ik½ùƒ–Gx\œ¶Ÿç˜Ç• Ts¨'€NW(ðcôe…E¶Í¢Ò†¹³5ŽHÙ“ÒaÎITŠˆyaŽ’z³·&Ä2 ÙÂÇÙ§Ð;£Üûj7¶ÆÙ•›£”Ìq\àeã×0Ÿ,„DÏ¢€¼1„Ï誉»6ÃÌ ;ÒówÆaÑ.9Àu:.Õ»L[f¡»Jjí¾VÀ_FE9a›ÀgnT¾P7&ܵNT…ÚÅØäµr6À$9ö9rÞúê“_GGYâ~Ÿ·:‹°MÃbb€ÄØTßüuKÐy``˜+v-RÊý +Ò.%Ôøu\αÇ9Ô² ûZβ@*Ü×r8zï‹QÐðm…M?^&ƒ¼2r¾}ŠìòÉÔƒQ +îî- +¤¤U âÝÆ05ÓÐ…|¿1~¾=z±6~­íªÒµCž¬ ñ‹ô½u¦nj¬u’Y´Ø·ÝWd†¾uÌ¢2ìD‚q¬â¹¶·êõ¾ŽÏq9a—±ª]r«âýú¦¾£•–ÑÀk »KDEŒŒwÊhå[ãÄt›¿À/¸Ù…ˆ;ÓIøQƪº¿ÞÇÌ^nEÅ¥]^j€¾›çA?ªš`ï,"bŠML+Þ˜€ |¥¯6ðݹKMà`¯ü ±‰ŽIT¢KL+rì´ÚGŽ×õ¢ä5/µ­ðð=)£ìCë?_í©z;JHº=EÏ’w‘#†ø˜`dfÌ™þÚ’? ½Ä¸qjáU~Þçïh)Ÿþ‰ûO\ìÛŸ±¡¿ÖåÅ]èG—ßDgÄžåGœ¥¤Ü`ç¿øm +ynšùÓ :ò—|Âu… ÿ±mŠT¨ê­B%<þWOuô£¯^Ó±–ǵMæ@?˜ÚÒ¯H™ñW6G0yÆ1J(îåÙ¥Pöá2â´ÓÔVþBÅϼÛ_ûál'èÅ¿fp‘¿®‘2èe17Ê¢ý>IJ vÏ`3¬#5!{³°(÷tÙç)ZøÝ–ò'?I鉷œGóÂÏSCŽ–¨ä¯fóë +¹Ö¯À䏿j’æy1·Çñ±7V‡¡ŸûɩχÐ1—fè‰÷çiÙ϶û‘q{|u»”Œ‘´3P›¾;Ç#k:Qé[£äàþ¥ìŒ3ÊvÅL°s†iꬎšÀÆÞ ÇÝÿç:ö©q :cµ¯ê½[Ø¿Çeø´L,àÁÐ^5—éÒAÞƒ:Iß‹*•7VD팂CåÜØkÛ%O= Àó«ˆEÛã°ÏEo‹@´äj»S°Ò û kƒ¼Ü‡Çºæ Å>9›xbàÕý½-èqÌ£\RBÁ¡ŽE=ѳ¸_lá·5^ý—Užàx…Ë+Ü«0tåÝ]éȾ¹5RùÊ-#;YÕæøÍ_´|6Àñ¥V1!mmºÒUórk 8[åSq ûšúºíYZ‘CÂ'{äB¦CÌm‹ÙUê1~ž¤%kG¿[aäh驳uðÇ"ôþ ùB.„0uàbW[0µ 5O$lèÃqLÉ¥%aÅýZáÿÏÑwþ¥•nm›93™’d’Lú¤Óc4&±$–Ø{GÅ +"MŠôŽTT@Þ»Š‚]ì½ÅÔ9sžsÎóþ#ïöùæa‹÷½ÖU`ß׺ÅÌ‹þe™vöhß&•Ø”‘Z¾liEÌYÄ{/.¡žqÖÎEe®ÍÕEàûÓÊ£LcÈÛ-+©jÞÐÍrËDuHéåU3¾zËÚ?//¿;Ü–AOø¹§áÝ/*Ô‡ß'$µ5µ¤1/þ÷—Wφ‰Àï/oêmù·Ç¸.šÑ‘¿Ðrï낼?ic7„J)µI‘?°Ê¢îí:0„Î0˃O'Dù—¬ÔÓmUð Ë"<=hæÓ“´ÜˆŸ¾û©˜¯ÃdØ'¹vEßø~û;§àÑqAÞ£cSâÒ§:VId}Ü­Ÿ ”œWûÃtøŽƒ )àIn^Æå>ÈÛéyé fû+"IÅÏþ°ròÞüs†ßûmŽßýuŠFÚó¡Š×lˆôIe¸†qrV‹É”Ä]ÊzvõǤd×Ü·¬(_¬x¼0PÞ]ÿäg~ÑŸœÄ»Û#-UØüˆÍiÏÏøÚjÞ}ósYß<Á×1.{˜‚Øö ‹7mu1ÿY¤Ò¿ÎÐ[ •¯Ÿ@³Ÿß[· _§ºl_f:íÿ^Zþ³Âîù2†¨XP…oºq ÝÈôGjBþ“Å!xÚ ,vE‡JÝqâŠ?z›sÿ9ÖRµjÅf®ÛYËfm°¿åý†Û´e<¢‰ø{Hd@\zÇL/øSL;1ÝU¹bf@½5§zj#>:©µŸ†©Ð/c4ô× ƒº7ÌÀÍ›heCäÜŸºèìjŸÐ +!ËŽ.Á®GÀܱ +w͘œC¡jÛ‰ÊÚµcóv­Øi@wBº¨…ç{ëâ~U5%°“ÏLvä†ï{¸Ôe;3Øün×M®Ùö´”} Òš¿MÒZvÇ(MËfTæhGŃ-,ÇÓR1Öy±aãÀ·ìôG±þhî< oê÷¼tØàQg è;cæš‹4Ò¬ +?£C§-ÚðE;£ø²‹^7:€~="EF„Tœªu«´ýhnÆ’†”=Ó‹OdÒŞƴßÍ™—'dMoçE¸öè·ŠÙ!rÉô 1=d&/;™»&dfTîrÈ_¼¶ýtÕÑœx†Æe+»~ÃM«ß÷3šg „œy+µ|ÉF¯Ø÷åýàò–­±j¥Õ~ jIK+^2PŠfñ©¾>Ì=¯þŽ… ~°¦ÅfûÅ•÷ ¤ôËFáÝQ1âÕt?){JÉÌékÍõöµæL©ÈY}4Ü×Isь˞ӢӖ -E«zÝšƒƒ]õðZ€¿_èix¹ªnxýuœ›ê­ +Ÿèª¼5«hŒÖ’r¯(‘g=슛Ë&*Ø(n~+„d\°ñËâÖ]Ø’@OÝý€¤áét_Óë9yKÚ„ Ÿºf§Toû¨ óCè´53¶òë4›wtæ|×Ê™SU=žú?¤…¾]0’ +ýƒœB#©&•?X·`+fÄå×f:KnøXég<ì¬ ÃmÁNpä’W2c¢»Ðy×Ä ‰7Ž*=ên^ Ú°á +WmøâY2mÐ1»AwxžË}qÿðʶƒˆÿ÷"§ó_3Dü¿ÆÑ €sƒ·Æ;Ë÷ãò +_=:^ýîÉ¥­RÛ÷ÅÖþOAr˪©.1Ø‘qņ?qà§c6Fyôi=4Òƒ‰Y±1j°yÕD.ö>êÈO©%7윊‡+:b鸆ZÖG(¹bm?Û÷ÐGYwKzxš ›µh -Ú„¤UwGûŠW*›²ôð| +)4¨Q‰g ½Ü¹`”Wp)øÉЦæÅ†™2§gVÐ+îv4¥žï€D†Ð狀ëÏÈŠì» ÙÛ^&vÎ̪›ÔP +×½­´ÍQN˺›T±æÁ/Ù›3§¢Ö̈”}osÉšS0clNž6â2´|ÐseKÆ¥­vÓLoZ©àaÐÅÔ>cBG;Úêb>޳(ŸgZ…Ÿg¸‚ÏG³÷Ü”šU±pÉ@Ì[ÔÒJ–,,Èx/úÕ¬‚’³¢"&€Ÿ½‚ò“Ýeçk"ü¼óð‹M'­NÇ­x`åŸíŽ0š÷G™Ø-'zàÔüs^þ)P—¶lmˆ=úÒÎa9µ(8ˆN8 2é;#ôa‚ú:I‚}ÃWo:1yû£Ä@?攈7+ºæ›öæìEýË þzÙB*Ýüñ®‡…>Êà^;Ê\õòY3nâ™ Y²0ëCFxÕNƒîSa_'8ì]+=dáB6FEÛ~çèþÉu6g£V®Xñy+zdò¶[°íi%ùÚ¡ÏG…°¨u+³hdTÌʉ© ZrÞ´†>*'˜PÓKÖ¼Bæ”–Räél~2vPC&)kÙÌ´­jF…K™×á3ÖäÀÏ¡îþ{ÝøR©ñè¬Ï†“ÞcSW<œæ1 §|ÖD/ßðС›ÜÃ]xiÅ„+]3ã +¶Ü¤ª¡$dlÉ ’ÒC6dÍ+àïÛŽrõ–mäº/GÙ¾süžõѶ¶qM~L+¨÷*0ñ.iíÃþýè¸Y÷ã¼xÇÚ”ºei.Z·jfÕíЀ\‚Ò0‘qN¼ð¯inÏÀqsʪ§vVÖ:lâI6õÒ6°ŸvB,Œê3o W.Yµra‹zfÕ¼š”ìÅÄe¨× zrñ¸Š‘?ÚO+œÕ1 ;£ÀkOÒò×ÌŒZ€cê·FÚ!;9ï’&Í]¯BÒàWËécƒÐ9·ÖߎŒ_Rಷ¬äš ³iTEÍãJ/skÒ~ë&ä/HAø«-õâtñý5¹bÁ. ,¹Û9ë#ÂÖ5 ½bgBV]ìæU7¹l£U­Û±9+Hì² •¹:LkѲ™ÈÌ+¸ì¨Ÿ¶LÌúm;»neÖoùhMk +dÁÁ¨ÙØ €¿3.hÛcán¡åxîz¨ û>:â`„…Ûñ2‹fBîD:fAèZ0r¡^$Ü×~T=´ö³ÙÁš¨e#"cÓC­ó÷7%û{¡Iû£ ܆ƒöÕ¾ȲïŽV½ù¨OÛ#5oúŽóv©hXÎOª©eŸ§; _fÚ”‡AyÛ‹ÈÙö4¦ìxš‹üÄš/©jB}ºlÀdŽ‘ û>\é¶›P~ðgbpk––’É~D̆“Ö¸;)ìYò´2–\ìŽ_(> ¥ø½íÀe•ä.;¨Õ f^ÓÆ°¸gTÙ”í]u‘¡«^jÃK‚®ØZ*×TȪƒOt +›"‡Åèä-w» ddVÍÑò ôòY¥|ÎĆÏÙDìyg—pÚÀ­³‹(ï&Mʾ q@´`å@ý*_6Ë64ØžŸË8œhëݶ +·Î8ÍŠ´{“<ñºÝc“×F˜'ºècb6ÇØ´U ed€®Ž+šóW=|ò’…T² è†U; ¼d!‚–,tèÖ˜¨oc¼S½îŠœŒ†1‘l‚ßµ=F„¯zH5þâû11yêh檯¥ö¯Ùö¡o³¶¯3탟¦òƒ1žhÿhȈ€T¶‚&Õ­!ƒ±åK¾N‰µË¦æÌy5³W=Ýò§´gÆ*À,8¤—òqŒAú bNÓô~ÁˆM_·Ó Ûfóš­¥(¤iŒ¼_Ò–£.n^gA×ðfËèHÀkmx½6,`oŒJT«îVêÀa€/ËŸTSçuä’]?¿íc S¿2Ü&é!•Ü@SþIÍ‘6áÚ(Ÿ¹<ÊÆO)…KNj Ð`ë^>g' X´¾JÏ­o óóvnÂÜŽ Ú³F<¨’ &Íjõ¨NÎ Dˆ ÎCz\Î’—¿ãc ·ü|ΆKØi¥Ìv9·§¹üÍq~ÛÖtûàöœÈ°;'Ü›äðÖ|4Ô¼ +jHyA ¿Ñ,&§¶B²ÎÞ®b'Àãm޳ˆ!+µfs˜Ž]fãB.jõÊ0¹éçw+c'Tõë>@{Û(Õ›^~’×ñm±Ýr”°î¥ÁWœ,ôN@êœ10›¦5Äràý07Fxܽ@kÛÁDûÀöx»lÁÃDÎÙKJÝÚ(‡¸`'-[ß?HmŸ‚Ýî.]ÈÂi *©™SA½³Ÿ_(€”îÄfïóY;^nÍB¯?ºgÐ7›6Lᆷ³Ã­d•3`©—*£®ü´k¦â>NÈ‚»cRã²›O™ÔӋǬ\Ÿ”æW ª¸¢3íµ÷–´ úž_ܳ3ÒJÙxÿè3á»vJ%)Ú*Ü=”ToGí“•±d!ƒ–L̺U0©â×Lè{(cÚxPKÍ]²´ágMRΜ½ƒ=kæ6ŽÈP‰3jzýœAÚ0èŽ~9ÖÝÑ–½¨îÂo¥Ì}Ÿ débNë›s-UoƉýaFóGß·Çz]ënVSHCÎ[ÐÒʶ\ô†=¥nÛCª]¶3 A 5oÎ̆.YE´I)}LTs{ËJ«[w±1^~ÃÄ/; “RÎ8 Í·ÝBáQ>þLJ¾3FE-¹ZJW=Lô†GÔ2¶íœTS·({x¨¶àˆ×Ýbñª•ʱ޶ª«|Ù¶M +éˆv^õí@ocäÇ`›lg¢­gÓÏ¥®¸Z1Ë6fݲ•X4oD&­eñÛ\½ˆ‡;gé⎪èã:~íìQ­מ4 ³ænÁ¼¹¿ÛÚÎÎbU–]œÔñ ›“bÕ&€ù{³–½ÙvõƇÔlÙ”Q¹9ʧïORP;ð¼SÌ™°öIB®~íª·W?eꓘeÝUƒíÝiƒi’«·«ÒÖJx6ÑÇ,ÝðHvƺԻQÿî$¿ky˜ŽØ 0ñ;“â¡Ý)©w/ÔåÙždÐBfdæ¼ S¸<Ì!MXØuž~zª»šTµ¤o=¼2ÌÆ,ºYˆ)#³=.”îOKÛS¦U¿H¾<ÌçÏZ% N&zÅßѽ ôõöÿi6iÍÛÚÁ”ìh¸½ ñÐVPj™ÒrçM”†@ÇÐNPе`ÓBx\ƒOs“ëv¦i¤ÃV皟A\á³w§Ûä{ã‚öÝ bã^Ž_õvŠýƒ½(O¿oí6£Ûä™*Jëó€´1§’ÓGdÜ kí…·‹Ÿ2= ­ŸVk„¾!ÐÑÛVdäã^¹ÈÔÃñNýn@,_õñÈ~-=ß©äæ:åCïL.&J¸Û6&µ`E×Õ¶ë·oy9¨y¯6¨è¬²‰ûr ¼Þt-¯/[ˆe„ãJ‹þ¡¦6Dn¹»å›î^Õš»O?®#œò~„©»¿Ò1 kÓ©Ú ÒzM»,ÏÞkÂŒ y†|jë€Yfe)[µ•r¶2“Ø@ºG*G=è1"‡pýÌ¡*OW84ÄG} rØOs…G³Bv‚"¹OÑQåèT€\]Êow{þœ™Y1­Ç~X´*6<|Î*Ð×cZ1ÒÒÎxkaõ2ŠÌXÊÔ :olÃÎYxØe—€})¿Ïv˜kÞt¡‹§Z»ŽöhÉÛÙ>2È,5±OåDüM·LR;cíboøD+vÔ/gäù¤Ä´¹Azé2 uíBÄÓ€Œ”ìÇæÌª‰Å[>gÙÅ'Î[[aÓzrD%¬™6°ª<ô¢^xýìY#£Ì7ÔÑ`VaU"y¡­§«Ì#ïZ{{k­r-ÓÒk`»­Ì.Rß{1²õ‰¯¿9oí¤-{Z± >>eа‹nzý†ŸÑ¼x‰¹è´š›Õú]›|Xoì·ËûêzEòdOË Ë㥗ðPÁõª´Ê³-•ͯTâöš½¶ìäã–†Yͳ.Jõî_r”}u0%ÖoYÌÕ.qq¬³+èS=†nœI.©´ô€òîºIK7sÂ*¹å½pO¿甩øN¹ï×ò1A 4¦Æ¦­ºä­Ñýf to¦Ë¶3!RìO +$Ÿçx݇!:û_kÙßËüÁ/s‚½)g#ÀeÌ{»:&-½m¶FÚ¤©´´Ó†‡èE3.!{w’ÅYtáʧ „’—¸s{¬Çº1Ú.žvóš'\Ž×dRe£\…x%ázóE4ý1Vöx€¨JV1Œù= Ý;Zz +¢Ü¤Ö´¾”UYzO޵S”3:À/ Ú›×ýýÞyO¿zÜÖ'4©eMJ…!WLp¥’q6)§i“,BKM4Tçw{d¸¶ÝXÞÏ´§sHÖ· BÜÕÊ Ô8¨õ²œ}JIëH]÷ô©·G»f-"šWÁ)°Ë{¡š^R.scû{}X!Û˜ÚJÒ¾lc8Ò%‰F!ÛžEiQGV’/ Éß§ ~ô¸ðXÄõ”²£«OÑ }1*®»Ê%„¯XE{£Í¥Û~|eÀÄk:úrz™úD UÓÍê­•ik´]Ý9>…>kVHÇMCs½’ÛñVA=65?€¦$ü¦lF$ÍÈÕÜ›´}s´KñqJx uA[ûzÝŠÌÛo—Ïzu“.µ†­“J +‚UkO¶Wi‚)KŸÐ¯êªhm‹§ÕÖž‘I/=’üN8åš%Ìžê¦/›$¬)%«0¤¡•ŒËñÓƒ<¨gHÃwidh×PÚÐÛž©ïâÆe}E]ÆR‰d¬ŽS³º{~¸«gÚÁEyõ²VµÊ×ÞÙ7G  f2!Íö›ñI䟟>«>žøûkq¹òDFìÇ7ï©Çî=®‹Ž'‹Ia»r¯&ìN>¬dý ÒhºJkQ>QŠźNQúè #Ç?HIwÊÐÒž±fNÇ\YHjÂÛîUˆ.UA5Wj¡– I‰„<~T|ìò¥Ø°û÷ržGÁÃÎ^/ ;~üNØ;iÇÀõªËïÓ˜'î=ª:•žÑrMÞÑ_µ<*î<˜lëÛæÒ&ô‚ÎÐmÖÙeš¡‘ž>y-‘¯·ÒùS™èÓ½fŒ&œ@ö¼@ãOÀàî?c_UÈÌ$žNM©;—™œGÑÆ®X¶ ñónʨU:û,Õ ñt¾u.¾žÏ©QžJÌ"ÿœIùGô»¦°ÏŠÃ~=÷2ì~x~ØëDjXøKXØå;9aiÐÇDåSe§äUw5ºû[slªA‚Bi'ò»ý•$áJ’¹ÙH „W¢=R +Úÿ{—Bú!=›ÿ7ÉÔ°Õagk]º[öä%*ìaþØÃhôU‚ó½¦B§BŽ˜³H8ó6™dÌÒÃ3ª:@½ò²d,„Ÿ¸Z >_o?•X ýéq<%ì› °ÛªÃb“Çž¼!…]{Üv;“Ê?•"üáÑúñèDÖIЫ24}ÆÙÕ>ëà3½æŸÞñœÁÐFÓ¹Þ8xË转²_¢?%ætþ––ÛñÓýÇ•aO#!?¼Oeü˜-8vúzVد§¢Ã®Ý- »ƒ ;w½üXô[üi,Nÿ^ß?Ò5kÑ9ç¬ÒŽq‹ˆ®UÀ9Bw:Cº¦Êvë™Kµ˜‘ë èÑÕ –?ò‹¤Çã’9ÇS³;Šz‹9váÏa"Àa÷žV…]¸š~,ú5ì®ÿŽŒB¹ïlCE­Ú0]0·[¢)jí+À +–Þ×|‘ +R\xÛòó£7˜c‰‚R2ÿxÛü‹w +Ž=>öx,*ög8(ìqB˱UÖãÙµîß‘´àën‰¥Ü5Ôƒ\•ªÖ¦»‡-vý`Gÿ ‰Ú±Z„äLGÁ ¾»µPÃù‚ò®“Ï_Aúónù±›OêÂîFÔ‡Ý}Vö,®å§gIÌŸ^çÈ~Ê®±œ‡“ÇŸ¶Š‚…ýÝ^˜}HË×ð«æ, °OAHRèÏxtå vÛXE¼g,?Ï«Pýþ.}è¹b9Ç^ÄÂî=ª»ó°À:\XÄAØ­¨–.†Cÿqï%|寙uÞkÅuŠûR2ÞÉ¥/˜›ÓB&j±GÙQÝ#Lo–sÅSÅÚhDvò6¸ZuœIËéüǃˆ°§1-?¼ˆ#;sñCØïÄKÌjý9. s²<{˧ïÅÍÙ…¼·F&7":hn×dY8—ŠdŒGT"4—“r[‹M#Jiùñ|xÞ±_N¿»ý¬¨7ú9%­¿·À»ßÊ;·VNœ· 5%sTEÎr«YyCƒƒ}c0F»çŽ>ôŽÑýY wÜxɸòý§9a9…üŸ³Êå¿Åçˆ?‹'üÿñGM­â6/{¬ê༤§Îê‰Ëv8då¡'MÜ“œ*—udvÉíPV×xŽfÄRlÏàD׃ÜÕùÈ$òo_5ü—Bø))›óSZûla½ôj Rù'kºM£xÞvq]y©¾ìRC¶¦ ¿º)Á­!z;d .© "–¹ë™Bwr=J}ý}^û©—ɬŸŸ¼Æ{ê¡úØÕû…a‘ñ¸c‘Éì°+OêÃ.õ,Y–Xæþ¹b¹Gf9sM*GÛ‚½«}|¨9Ñ£€½Ö±KU*FÐ;\Á꟮Æôn–ÔÑfŸV6Ú΃ §3ŠE¿\¸UvåviØýç°°ëáUa¯å„E½AKÏþTX,>ÑJR¿rõu–΋vjµ¡mVôÁä}f(“£fvÌ;× +àìÙø +´áQQôÏêÆþËŒîfjE÷åû1ð_¢ÇRòyÇ“J:ΧUµßk$i"LJþ7fÄЛw²ê7ǹŒ©¶þK'Q­q +:ƒT–Ô_Neë_“)òÇÖàs$A^Z?žUÑ~;½„y'»”u Á°½†2íq(¦9¦U¨Š× ɪœº^ø°NŠœwvp¦õ”ü9!?¨mÉÑ0Š”‚TY·¢¤»ßXɪcZ˜Ê‡†%2·¦ïzl¦èܽה_ÿ|XsìÅ;ÜñÄâγ‰å}c‡o”SF6«41-=êQº×ª¢LéˆÙÓêÚW+6\åÆ¿5hé¤étF‘Då£òe#5dáè;sþu nôVÊq1§RþËÝg ÇNü‘víÀæºbÒ`× Xq”¸MöÞ«Uo;Iˆµ ïÖk%fQ¬Rëp}2CU‡ÄYÊÛ3á0´v©ƒ2¦5)ݲ~ÀcFû_ÚEåwürHÔˆ¾µÒ Ub¥’þl*y»μÄN4Qóûcbï‡÷Åm?'•·ŸÎiPþ%x"zzÆð.ƒµ}TŃnyiðe®|ÙNo±)®â`Ÿ ]"‘¤µ+'ðLI¨ÇòÅ iî§¢óáë,晋·²]½]ö2yìí‡æÅ Þ5\ÞJѽ±JûA“jrÖ¤öjÙB* éU v!ƯçWJiÑýºZI¯Ü%µI,5b™Ô&V$ $štZ§7J|Õ€àÝÁPdÏØR¨gP]44ÔWa7ô‚¶Nì~€ÕòmžNÿç[ôeŽ#×Qóíú~ªÁ¤k3˜†hšž•¤+]ÑÝ‘Ú×Û“!0TË”zhï€,•Š{ÝÄ>£…<¤ëk;›_NèÅóv>zÁÁÇ.Ù¹HOâå’•R»>Ìc¬Ž +8Ó.Ý£ooÐö’“z¹µ×¤ÌýÎ~u­ÝÔDPÜk [ +ÊÉ0Bo¡Í–Hh³¼cuÞ·J†:Úr«ÛažëîÙ¡4®:`6<¸†ý‰6åþ´Ä½4Ú=ä²È»Ôšæ~Å`uG®PÔ?cwørHBo + ÀÕüJñŸI…ôðÜjî •Û¥–aœV Á¯Â§:Š£,”··—¬-ÅþAbqP˃:›G4m5neg¥G-ip*»ªTíÂ7 +‘"k@l(é*TÝz¨¹g¨ÞÛ× š”@W4"ø®KÌ?ð·‰·=t謊½ &Uí{8ì-/5e¤—zU­%f -ÕÐAJ´éõ"åà´OÚ“¡î$Û%nmÜ£‘"¦m}¼%o;eÙ-$®{ù¤ý1çS°•»çi.ž”•Þ J@wWŒ„œi51mFÏ©šÛ1ÃCô‚)›°eÂÚAõéZˇÄw”‚Æ1ê¾u -ß¡éiÕ3 +Æ4-É!sgË%·î{yôC_sÁŽ£!vÙØ7£C¾›53j}}¦OŸnÂ$DhXEn#ß&o+Uu÷ÉÚÓ„,utK‹2œB·DµH¢Ût¶4®µ]•%îêû0 “æLX”í[>…uÝ)à,IŸFÚÚ¿:†Žfl9`Y~Yù#§¤â®½eS`”2;º¨UQŸ§±½AæôEÕ×bNׂ`§‰Ê a/r°_¶)Õ¤€®º eï¸ •;."øó³y®¿ú­‹›rÕ+N»äST?ñ8U"bõsruêy¿‘I^ïì™°¶B|Ŭ¾%oÚ×Ù1b“ ¦í]ìÝq¡hk¸]¸îP7|œæu­~ÑA*[°“KgmBÔŒK&›õ´ÑÖülš—Aš7“‹V]”ê¦hQ ‰SÖ??&£¿Ï‰MÛGßµ{É5ó6ZUPz2ÖÇ/9IUvàtÈ`íµÛ©ì¶kYy.eKœ[×Z<êì L»8°9;»a+(~žnûZ*×]ØœSLÆ—…®ÑÃ9‰oo’×r2áN§Ô© Œ|8jîe8ô0ƒª ¬5è¸ }Pi$èÔJ”M'(¶³Ö&yÂý‡R×¾ö ³¯ø%¥ïæÔ5/,Œ¢kþvLò¢F€YÖS+æoG;Jî/éX!£12H/¤Bžm[¤âOþޝc ↡>vQ ~¼¨?[3!7­¸¬9&[Cο;ÛSŸñ·ŸûèFdì:°¹;lþÇ"dÝKªž·3kW½¢£¹Úý “ô~ÉŠ¥éݦ•¶?L¨Ø÷’ªF(õ!#>kÍ΄~g`¿¨¨¯ã4ä–W23ˆJ˜ìG½žRáGz›ßÌêˆEóz\²å$VeH¯ïµM‰óÀÚÏ*š^ÎÈQo¦ÕÔü¹Áæô}'¦èãѹæp„P½ãÄÍ5-;¦£×Œ†E4¥ÄgN*p%sCèÄqYCä¸ ñ&¨lIš0‰P~uG㨂›7­¡d¯;zå+v±pÃE„,ê«Þ. äÞÙµ ó?·Ò¿L´õ~ Š_Žr¦¼°ÌÅ¡š7»N&æ`¤•sàgs×Íà{KÙ´]L +Ú¤L†¶u £ç ¬º +»iÝÒ^²4åíº± }/®üÀK‡ד r^§Ö,hщ£ù÷Wõui_˜ªý*bËANö×Ezª^NÒ¸ûZóŠ à›!tÚ¼’°ïÆ€Žæw ªW­°¸3âý§ó}–JÙvÁÒF:roÍehëßî9Ñ…ÿš!cw§èÄ ¹0 ¦~㬛àÉs=U'E »ná­Ùžê'ûvlá§:rÑDÛxE׿õð¢M¥vNU÷lª¿4<Ð]pkVVt÷ßÁèg˜¼M±DGñO“ Ú·ùN÷ç‰ÖŽemÍÛ©ŽÜ›Ž‚[¡ÁʈO-°¯ ¼qêó4ûŸ5Þà÷i¶hÓÒTº *‰™UäÜ +©A/¾ŽáÁMÿžapvü,vÈL.[sS&EC³ŽƒAÿö8›±ê$ÕLéÐI:BÑêhÇÀ¢¯³sÞÅA,:XÐe+£î`„ÚüeœŒûfSß”è­{&„¼9i&?ÿhfÔì‰yûVBál_Óùþê‹ÊšÇ+*Xôò>c¼³áÙ¤´ñʼn ÿËÃÅ}°xÛZ7ÌO97ÂN:5ÎÏþss™µk£AÖ °Ø•AÐãeÙ£+$á“óhîd}ülUÌdo°NõŸ¼¤ÚO>2dE[êϼ¼¤È¿½i¨~µkkÎ +ìp™¿çmHZ7cB +p䎙ñq[ràÕ/ªj^|™ÀÔ¼GøkŠIÛó’—†b'¥EáÛæÚøý:óó‹þ}Š„ø:†©þ:Ý*:˜ì²}Ÿþ_ˆÑú}^¸¢¿Z¬|¾a‚%•W„û¸Ég‡Ð/~rÒÞütt¼—PRsþølǃþöcËÿC}ô@Þ¯jÊO‰s.N óÎ/Éáo&ðÉ]õ6Õ¨wKŠÆØe5$iUÓ·ª‚FMK@·':+#6Ô-™ÓÒÆèžÚ·Çõ)']Ô‚«Áö‚Û+òòG{VxÚº‘dæÝ€'Ÿýz4ç]HkÏ»4Ö–|ÚCO>=Êξ²*¿øì@¤N:B‡OúmD˜çëxKý¤¬ü¡ +“|ÂDÊøÝÁHÿ}öú·Å¾Šg»tÞ:À©«CMïVÔÈÜ =¾qÛ„Ê×c~7ŸŸf¿:3+Éþs߃ÊܶJge¨¬%$é¿“tâ× ±ã†&­¾Uæ>™ï+º1ÑY~}]Ç„„‰³ÝÅ7–äÅ·Ö+sÒN› g­ü(4PöÂ'ÈücIÙsà U,*>P׿\×< õ—=ØP—>ÿk x¢–Ê)Em´–’ufÍ„Íÿ4JíyZÊCÊÚÈ@{Úõu5èéöPå“{CÜ·¾Ö#ʹ?Ö]÷w€‚üìCfµVüÑÓ”¾¤Ì¿êɺ¶¡)yúu^äë½bW¾ºþÑ©ÿ÷ þï)róž¥)y}àÀö¬;ªÆ§Ç×M8zÅ«sÙ—±·¼üï4÷Ï1|õºº:ÚKLº`BÆœòÒ’N-ô€kêÆ:@áÓý WMÐÿ3OçîÛšó>»› ¶.ïH¿2//¸ûu‹ØÅ×´È”'¹ïm}£³þwš‚ÿ{ß´¡Å-ä†ÛR/üw¡µïãX«tÓN„~ÆW}GWìûPdá_A èë0ª`a ä锤èÖ§ +ú(3ýÓð‘fÁåï;г=ù7öÝèœ'&gÛ‚JÙ2ÔF­ U>&Ÿ3ãÞý¶¢ÀdMt7FŽ·UÞæ—_õpË/;kÂCȘE:nIŽŠ÷± ÎÏôÔ<^ÓÀc·tM±!yé½qQêc´? û{xâ7£qÏD,Z€<ß6àÒ·Mˆ÷›ºÚˆ-]Ù£} 8~I zê`eœµÓ‹®î؈ Ù¾šç òºˆUÝËmäÍê øÉBOõï$ä^èm|b®§!fÇD,Ü2`3BІ—VÎ9Ks܉¥ÞŠ;S2D¤‚Tr­!ùÁ1 ¡,ü³•\¾c¨{e^p³ß¶’ߟöµ–ÞÞ4RÊ¿r([Flæ¶ “¹g¤‚v†ði_mÄ’u䵕úî”÷êø/û°ï¯VtÐ8//ã즶1ÀëÌuuÕãaNê¥IÞ“UuEÔloÙɮЗ_½âÎ ˜=.B¾áAc¦¥µo¾ºÙ‡Ž†w+ZÐó ¤4¼þþŒšðÇß6ãËÑ+kÝ[+7úÒúé™åþ´Ë{æ£óªèT|Þ½í­¹ŸG[À&hœŸt +“þ+6%ügucü/+`€S0³ƒµqिNö€cÿ h÷Ͼ¦œUuჩÎäKNúÛS +TÄ/ÃüÔ‹kl¶VtÅ+¬~úÕÛJûì"TîÀ¯B=©—´¸ˆ_m´´3&jÚ¹%u]ü®­)}´-ÿîça\ÕçQ@ÿ ÕF/ø¿®.½cªx7&θ¬#&_:ð4Í««ßNvå\]SWG¬*¡¯VT˜]Gcê²–"C¤aFýôrÖŽ­©x¶¿äþlèþ°ÏÛ†ú¸+Àoxþ†¹!ÎÃɸ0!Íøß"ñû$®àççG9…öâ[>nεo$Ôg€Ï|Òò—fjæÙ/cT¿fèœ 8aU•{sm°"zYŠÚ3×$}tÕ'þwžŒwv‚’É ¨ßÇûÒþ¹Ðáùä¶íØš •…7]ô„ß;«žt·f<ø ÀåOOŽK@±Ÿ½äÚ/^båüâ£S ð{Á¾‘² /¸1,ˆ;ѽÿÃ@cÔÉieÓ;1&딉R~wI…MžW"b¦eµ]Üâ›NVþ%#ÿ aåíe &Ñ-¬¸ïãæ]Þ± 3W•è÷kJÄÛkcP›1šÚ—ï>o+¼´i|Ž—µ®…ÄLJÒζƞðP’~geŸ^ón\^ÿª™ð«Ÿ_Ôly¨ü$(.¸>„O<ůŽ>Ñzö“…œqvRV÷\Ç,¸i¢ܘW@cÆÅewœôôóAqîuŸ ðÚ>ådwmÜña.,RÏ(¼?Dzw.ÔW¹©kLÙÖ"ÓvŒ-ë:xÆ– ¿¨(½ h¹¸9*A‹Ë½êmøpxéÐ@å³…¾ÒGëªÊ§[êêç.zÊi-*æäQ¿Í÷žÍvßPÂÞ_”×EŸç¤\Ü3ÔÆüåÕ~r*ge°·#Ðõ]ˆ8+A¦lë ï·ôU/¢¼›AQÁ½¥Z Çñ98¬-ksî’öjq“¸¡€¾ÚÕ–†¯È‹îÍõß™è*¼a 6l˜aqõÙ¾#‰ËŸì¬ðRòÏwüm%üí7GÄE÷·-øªssþ\/èÞLwÙã¹îê˜YIåÙ®ükkÊ£ü´¢—~aÞŸ³=àÈC7åâ–ܰSÓÏ8þèñ—+ªÆØ%äõà-‚½ Ç’Æø?V4ˆŒ &K…Ë8Ç.xöCoõëã&lÒ)€S½à׋z\úî2¹0ü_GZÀ{vlQ°»"ÒJIºâ¤¥þá¦åœóÐÒÏ}t! +)å/Ïô4'?Øt¶T®[r=ô¬  ñIq¿ûZ“N9i1¿nèÊþ=GDnX)nbõlOå“YIñ“yIYÄJe +€ù¯íyw§»s.ÿï2‰pàC•Oö”ÝÙ27$~оúù¼Ï2˜ŸFá9€ˆY1ÔEÏkk£F)ØïÓmƒ½xк¡1~ÇR÷nßMß±A“OSûà˜^Dô‰ÑÎò—‡€Ü··Õí¡_¶ë@~ø¿Y‡úÆ÷³½¥‡ù¹÷ðpрˠ•]v·ÖEmšiUójø[WáåAl¯ +TÜÏnvÞùiË +Ÿ¢?:‡EÉ:÷ÉÇDïµ½ØßôÊ/ʸéd¿ý#Ж}.(*¼8Ùº³ †ÅûÚÊÌ @Þ„jŸL‰ +.M ‹¯­öÕ=ÛÒÃßvåßÔãbƒ£vŒäb¯àܘ¸ô–Žœû§ :þŒ¢)þòdøå¼ùNI͹¢%æ^]B¥‹*žˆêÞü$©þQ…ŠÿYy÷ó0;ÿR°‡’Á®O>ͯ{sfÛ„¯ùhŒ- ð Ñqþ©®Ü++ÊÒ»;h¨´î«ðÕO#üЏ=ÀsŽw†/öú§·ðÆ0ëÃy)øpí7g§@:aoNiÑÉ×P‰³¢ò»ëòâ{»:Pd¨'-"(z×ËIº¸v4ÓJŽÊ§Gþ®Æ½¿qèÄÔìÙÑ…ûfè»=cCܦúØ«¬‘Îü›.aáŸâÆÌªæ´›û€®´ý[€§b¾º°ÅûflÉlOíáéM#:kUßò‹ªŸøy¥7‚í p/'ïÚTWñýÏ€Ú³!óÆE7€µ¾ýÑÙZS!ÞOŠŠo„™ç‚ÂÔ3Ö›ãÂôó‹€·YÖ#’¹•oi¿þci’ôɇ-p>y¬½ð¡‹z{R +ø”Þºè]²ªÇf2Ï4§]iÇÌõ@_-+"'ºÁ‘N^ù3QCì) <îêá0©6¤jxm gœS#âOÏŠŠl(k^n Ö¼\ÓÕÇðjãN9e‰[^rA~ïe_w³óû;KcçúË#·´å¯þCVþ{†ˆXÔ"vD0€‰dàÈã&xìÏ­ÙWýÜìÛAέmCé‹ÿ„ðóšº÷zFöåe4}ÝÆAÍdù<†«Ü÷5&®ª#6- q‡cÍ ¿çÙmû¾–†Uc}ÜSúŸ9ù{Sµi­zµiÅ,(³ÌõÝùèÅÕ|õÓ›wm˜l€#ó?Íb±4§}FóÉÇ@:‰e€¶N[¬œî© Ÿ—Cž®©QIÛvFÝ‚Ÿ¶¤kŠŸê®y2.ÝYVÃÞì¾~ÍŸ””Þ\鯉ütyëÅX´§5㢧5éâ²¼.rÇ€Éúê¦5-™ÐÙ6^ÞåYySʲ¾%ÛÅ,8kÄ%4â“Ï ¢cNj1¯~rQ>œ]–5&ìZ(¥VZÎ…£œ¢- ©|¾»xÀw¾öwïuTÝZQ¡×¢ ÈPo¼í˜÷nCD@Tód^V÷l}ñnNAJî¨2Ù}ûÙÓÊX7#×5°¸=¼=D«[ê‡FÎËÊïÌôÝì|¿½i¢4LÊé|`_duQ¿ÎKËïLu•ÝæƒÍõ7ÆÍ !SZ²¬H½°kAeòRÏÚ’NÏJr®y çWrnëjS¿ SÑ>$º­îýi;£ô忼®=vAVp2*ÑÌʾ¤#%Ÿì.z°{ôÙŠ6Ò ¾=Þ]ÿbÃŒÌ^“—†O‰²®L þœ•”\_ÓÖ¿üèô¾—X”TÞÛ±£s¾ÍI¡7o›á‰ªâGSâw·§:2ïm™)[6|¡ƒYu]Ì;½(ƒ¥þ=Ng~&ö Ðd¿ ùÞH{~T°·êÉŒªþýÇQ*)¤cBÇ¥5Ov݈‚ÎQÿ ‘Éÿ™'þ9îyàAYÖµÑÎÄs+úºx;/?Æ×‘ûtw¸¹ú`ßüÙ‡þkª¥ù[°¼ªp` èæÁ0"ky³¢BÆn™°‡>rí¦óaÏÖœ±©0N]qhG¦~váK¶Ì¤¢E5öý¡‹[B'Mˆ+oÎtWÝ™W€î “ΰ/l+añ‡tª³æQ¨».â‹‹Z¿gC¥mjá±:D‚¿=ÿÖâPMÄœ¾¦kJÞrRÁ^Aée»ðÏ ¨âáâ@í‹u"aOÛR´£Cæ;KDÅ7÷í˜ü.oeþvIÓë—€ŸzÛªOKë_|õ2àKzbád7"rUÍ­¢„‘oBŠÚˆ±¶ü?Cý•6~Ú6¡S>ù•«šš—«ª†ø}7ÓƒËÕÝs³ò¯è[âÏÚ)Ig>9Ù¨-3©À~°Ñ‹Ïok1éŸ]zèÕlZ!qnñU½üš‹UruňJ_·#?¬hnÆ–}keóRƒ’òç¨ø3FJÚ…ÙðÓ]G 軿•ýý(ÓSY±¦Çzø¬=;½n¦ãn«náׄw£rN¸„`@ cËW4eU÷CÊÒhàý¾YST?ß7CÞOTD¨9@º¶ú³]° ˾5ÆyseFœv7Ô_½Ðz¶knL>ÊÞýÿì½çWÛY¶÷9ožÛ·ïíêê®®îÊU®*»œ¶18sÎ !¡œsˆlœs"gÊ !@ä å,D°«ºûÎü3G¾ó<ó̼š³Ö°îb{i É?I¿}Î>{?¿pN;çOÒÖškÑÒk¼2R¶áaÉ·ôä?Nò¿VvUý¨¹¿$낆fþü‡!Aö©¨šP´ô´òGK÷ÇØþÆØYöå‹ú_Ü +zMosÅO¥?ÿ_øÅçÿÝ9ÉFµ|œmš´ôªäÇÙÅŸ[žÔÿ°Üƒ¹²4H¼ù„–ñùdÒ'Îqr®_Ê­ +N“svÆwVzj¯;Fo”Ø´€–R¢޼ºð+ç8­0¬Æç‡”¸²]¹káá·Fiyš»ÐS£ìÒ?íLrš¶§èùëcÄÛÖw°‹ÃœŒïúØÙ?ïHñÅÑY=jæµY‡ÐY‚ì/¶&1•6›;V,Û$"]Ù™ýWÓã¢Sö1èÍžP8׃¸Ì>ûo"Hò/ñåÎ×€iº÷Œ¸Ê€•¶ÐSýÓ웪3KC@GNq*@\^rŒ² +¼3ü·J_í#%;§È¹ÎDrHFÈtŽcnÏ¿(ùÁú¦â'ëKèIï ·Î6Á,Yz…¹¸ÕG¼ âð+-? §¸@®™{Z{JÊËþÃòsø­]}§Ä%£ä8Fˆ7£Ôló}È™1Z±g†Uë–q«sè˜5|»9@ÍõHõ+o×0vümF˜ö‡×ØäU6í™b×l2 ¬/q"&1Õ¯ã@½Jz¥KŠË +(€-³#”4׸n~ŸµÞO͎ꄘ€’V7±áQiÅßÞ胜¶5]tSr·GÙů(NÌê˜`Ù†°×lýðsa•³ ´·áiýÏô¬ *9õ;ÓŒò àƒ]JÎ[z‡¾=ûqiá)"ɧLœäC׸sËxð€^ÂJ¬'i|†ÎT^7=Aä,Š„¬B~ÌÀ"z§Iå+}ÈË[S|Äâ €¸ø–’­ïFœå–}‘X÷höüœO)Fƒü›»9ŒN +ë…äÈl»8±V‘õ5äŒTœûçaƵßÛû«ÎïÍQª—ù Ë;ÌP×/äBÔ®±M¼kiÅ-,¸O…ÉÚè¯=»þºþTD+¢¸f¸¸IqÉŽ1j¾k†pɵ~5ô%1Gó ø¢¢+ã¤ùYþw¹!¬#W[_TŸZ‡È ©y$¿R€öª„HALR¿nºôœö‰TTñ½}RP·ÖO6ܯúa¦µèÛÅç 瞬 +ª¹PÇ­HÚYþ½â~U’W!hZï#ÝZÛxÒp¯ô»qοY•ü´k 6ÄøôÙwÈ´IqÕ;SŒj—‚˜»5O[Wsð­Å7°3ŠŽ¢¯MÏê’Ã4½âþØß\uimœõª[ˆ·vå âÚ8+û«æ¿z•ä‎Ó6ó°;Zj¹SG«ˆÎs©~= 5ñÈ –Ö¯ö¡Ó¬½ä;ÚÄ”M)º»(`m 4¦X_00Ñ>sss`±­ÛiPW¤üz×T‚]p©Ô½¢Å—Ø ëƒèë–§å_ï #’Öû‘W´¹6?,üëFoÓåV„÷êDxÛ«Ð#4®õb/;oA/îç~¦lÍû£RRô:+fj—ØëÉØå~)§ÂÑKLñŽ3+Bj>Ò1IË·<‡Ÿž}Pû­}”YºÒGÉÕvUýméì_W¬›®ÍÞmº´ñsÍ'eWo’Ò×ß"ÏGLüÎ4þŽsuÕ6Œ¸âZ3¤¢–DT\ˆW&€(îBNï7\ ÊÙµÞ)RVD4ËÇymñ©[ƒÈþF…k’’½ò¹LTô§ Š‹H¬ï®è¨úzöQõ×¶QlòÆ0êòü+èýª“a-¶9JË]¦d$ÖßôkXµ¶aào/æªwŠVâ“  Ž1qƒcR™ïÁ§.¼!¥zÝ­^å½Îˆ¾C|¸ÒÜÖQÊmƒð+«¯!§m“´ÊÅI!ê­¤þÜ  â[¯L„rŒÐ‹œÃ¤lï9×6‚ÏØÅÞ°O‘ÒƒúÆbµÔôy}á%>Ýø‘±ú¦1#ªÁ–,Qa3¢ZóÝ⋦ԺM´#Üjfmlžv)°9[C IþiLq,qä­ò%9ûO.«q¥óIÈ$ ÔìÚµATÊ„øæ—“¢ë_Û†ª.üs](Ø›ã‘ÜRBzÔ$æ |rØ$"»U¼ú­iFÁê.eñ ä—Ä\Xk#Ì|Ó3ü¥aaƒ}¢ë›4ù”¢­aÌ ëÛ¦³ v.…´˜G)Æé#ÎÖ}ïŸ!NKv¢RÍ,”OGªµIÑ©[£˜k‰õ¶ÖÁØR¶U¥i)ýÚ¯  UxfÈea3‡äR^rŠOô‰ë®.  Ë}œbó âe]wÓÏR^ÙWꎊÓñ9.ñýФuo‘Ou¨IÛ +rÁ¯6I÷ÞŸ³3AÈYõP´>¨çÉ>LâÓ0ªç_BN¯ö#’÷W»^G;{t|ÊÊ(öæÊ!ucvÞò4ÿ³­ž’o6{ê~´ sŠÒìú¯j{œSâž±=L¼å™"¤‡Uļ¸Ž\žSöIR¦GÓJ›…8e}UûírOõ÷Ö×Õ?Ù‡é!9³zWˆ&®!qÈuy3°Ëmã½Ò¿h; +?[ï‡\°c’WÞ¡/ÖÉÙd©îC~RwVýÍ+5ø¤¢Fߤb룤¿Â¥~zrñÓiNægÛïàgvñ5âœõIýwÄïÌ (1#­* $æ¯ôÁÏ¿¹\Xõ£õ>iZ\þ¹[F.ˆèù¨°† «˜UÎ Üع¹'åŸk[3ÿÍ#§”€œT­¼>=ÿš”êœfûôÒ°†sN&æ?ƒ\qtÕ1E¯ˆÏwt¸ä@;Nàomâ“m¸«§6¦‘P¼ +Dÿ rbi;`xÒç×? +ë;…»ó è¨e!9¹ $§WAmØšáÂ=˜Tk?© flå;FQɶÁÆó[½u?/¿ª?åWÝ6'¢†Œ†ü>â¤î6Õ5ÝR‚ÙÕó›jBþJoõÉÍÁ†s>9±8nrc@Ó/ôRÓôâÃ%‰8fæâÃBsš2û¼ègí£‚¯ÍÏëN.K: +:TÑ]ÿóâbjX/áu¥Ð +1A »!:Ë%îZDÜíIjîB&)±–rhöÞ“Äyœ^â–2JïVF´,È{ P±ê,¯-oàç:vR÷Ý ØåO-÷«^ïo¼à’ +³|JÄÒÞ¾beî=-1ÞF!Á£$ç;&‘`\ÖŸÛ#ç9T"´[ÝÁYå׎ˆ¾Ð<¡ÜXk…oqr£@»¦P鋯ë/ئ0én ¥4bm}šonÑ?kLRuA~íÚ2ñxq«P´X§OO©Yîm<·:?çÕsP^C‹pm„œnŸ¦ºô¬ÆÈ‚ˆ»9ÂÈ^ï§¥;Æù`Ì7T ôQI䣀I¬ï¼=‚KÞBz=ëŸl8”¡nøåä<¿RŒqŒ³‹Í6Ôpzýmé7ÛˆK~i;> ¸/qL6£ß1rÖ†™¥vµp{Ÿºúu~åmãiMgÙê¶‚Ï\@×Eôêæ(£ÄòqÊp¿á›FÞgïHÙ›{½à¥ä¨Ûj¿—qKÿ´úvnOß*tÊ …Öwå?m¡nn "/mõo¯öRrçßb“gÚÊþâW³‘ÙfÎÊ»¦$ëÓâÏM÷K¿´ “]W¶ +Ý?,¼Á¤4€‘ FP/`ôZ@+ÀÙAr)™ ѹ¶ÖÍ vÙàÙø< {°Äg.·=ŠÍ‰ø·“ñj—†E•Ë£÷HÖ>IÍÆ0§(6+$‚¶'GæZÛöW»6î‡E"‡šQ½1Á,tÏtŠ=Êö{ ßÁw-l\l‘Ö¸5ŽÌÜFfŒdH|µ¹}è‚I1Ü­{ð8²Úñ(¾Þ,±&ñÚ>]b¾&N½}q}c¨ö”GŠN‰hÙu¯É9EÊ_ÿï™&ÞqL o,¼®Æ‡lM?í^ŸyÚ½%m'¬3s_¢ÎšºK?Ÿbgþ»B˜ó׈‚T3uH6Æ»–>qÉ|?¥Ÿ“½5ÄÌÚ ßVuþí êÚÓðK¿r÷ão•ŒŠõòíÕ!V‰[ÑŒµôŽî^ñ1g÷÷Ëï´7ÿ›М:1ÅÚGHÙÄÞðÈèå †¥ìL"“=ÓWÍOó¿Yé«9ëS¤íଠSï¬ áS6‡©E[#´Â€†V}¸$`G<¢c}Ûp¯ð«•·Ðó@mØxbáYSRPÉ…&4YPC+Û¨Oµ<Îÿ~éeÕÏNWû¸ÅƒÌ¬?Έ ¾òM0˽£Ä;;}°kîD¦}“.o)ÿ›áô`.ó[\š¶£êûHSÊöHý9çü’sŸ³>HH×=†þ2Ý^ù•°¯mŠY¶ðºþ¤åYÝIËóÆËk}°ß ¡2næ’㋉äÏÕIRºGs·Å«æ£CJePM)_íƒ\t)ÑY[ÈŽ)lú®™‹±öÀÏnŒá3£óbV@ÏhôÊñù[ý ¬Ï+4?)ÿng’Y6´‹v¦ÙõÊŽª/l#¤ ¿’YëWâsÞ/0‰vzŒ¸&tsŠ]Zèzº2Ê,™}E¼±ÔGÍšÕxÕ5I.$¼€±£sq”Uf&§ VÀÈC¯"®Û&1;2b¡_ˆDgÙûK’–Ø|{×*Ð$;2|îÁJb\ЫƒJZ™wŸé‘%Ö^bÖxõí;êg¯çÞ1²,oPçoþa¿7±·ÜÜy*¾$Í,LÈÂ¥ÄæEüØÜÝGšȤqqÉ·nµþ7[Ë£ýÕæ¶è"ëÖÊ\Zz­ß,fÇÛîî-Ýï Í ¡yÚôJlþÞ‹×¼©[É^%­( Ägød¸;Î1\:гéŽQØe”RÓ·2w&ÉéËýˆsª…_j:Ò>ÝzÕtväƒ —à ¨“<ªN®}JX¯{T}b€’ü/Úö;¶¡Ó<š‡÷—§ï1Ö';0Ûâºía~ÅzñÖ¨Áöþ¦‹Îñ¦Û8±hc´¾:zŸ¸>q²=.ªÛ¢¥mRÒæž5$®Ñ:·õ +qqçê²}}e­tc{Bs+›±ÎIrÖÜ“¦K=ŒŒ/ûé)Ý|Wv::˂ٲM±K¼ +1Æ£àÂVúÙ…]´A/.½*;å‡^Ù‰9—GY Ž7øÔ{-dÀ>i‘9&Ô£¤¯½A\XzMqJé5›c¼rÝ}ÌÉINEPËG;¥„LÇ$æ†ñ~ñ—–ûßÚ“}j!jy[¬½W~ù5&?¬n&ÚQIjIÁçc¬´?èÚó?Óv~m#帕‚¦™ÇMUФ˜‹vO#RÌO +¿`fþé9öÆ_&Ø™Y|=íÑŠñ¦w¤[ýÜ¢?ë5ž÷«Ä´ˆQL™E4¿ŠV³:ˆLÛliSsܺûÝsïð3%'gå¹eø²ˆ™KqˆÚ™FäûTØ’­Ø%Ð ~£yRqZ{¯ì;Û"Å>‚H÷ÊI±Y1+f‘ðö(ÖOí$Èæ(³aá-òòrüLÔÈlüûV÷О•G‰˜Y°ÃU¡ð`‘M‹h©@kÓ‘Ž)R±á)äGk?úfÀÄ#-\¢OO¯ Î1P^¥!²(nÝ]–´GæxT¿– _Á¤Œì¦C#‡ðëÊÝWsW—GÓÉuH™…ŽqTÒÂëêï{hWßCùå÷3âä[ïm¸563œRvéÆ-c{œšíG]÷Ž6]Ún¸h}‘ý•îÞ­?Fg…äÄ:»½Üì•^zÆò«Æ Á øÍ˜© ¿-s)Ë“MוOÊœ{ÙxÙ-k#ÚÆ[`@¿ÚF0×ùŸYžÕŸóÉî +}²gv&%È­ÜÍÍâ §Œñ¨[ÈãìmwÃOZIÉç;ý˜«izQX—˜™Rìš"¤¹dô|/#}ù!iý-ä¤}u- æ6SC†v®CÆ,ÛmºèUózÑ%£¯öTœZ}Wð³{’䔳*üºû"ÆgÃE3aGнµ·Ä%Eçyxç ­p}{k{‚š·ÔON] Þvɹµ~­ã˜¤æ„4‚[JÍwŽ£n€±wÚô ë”s¢áb@E+ +iÚù^Mwû?çSMwÍ¥Í~j•OJ«ë)õQ­pSáüKØ/[c¬:Ï »Öü øØQùWy䤲«æÂ¨ÅQ%§)¨eA—‡ð7ô/àç—úI Þ:;ƒF)fPBzR‘kŠX_òÞ¯µÞÛ_líX f*»Îy”BFhÅ€A€wLàÓ§[r¾–·¥ê˜DÜܳŠA»0j{˜¹o.þhî&`]—¹Ú½´Ú»8üZPÇ‚E-­-+}„TË3Äß4ña¡­3Æ\P…/± Ão;dÈt»Z_ŸÃ†¹…âÚÄZs©q õU‘(¨"Æ Ôº¨ŽT¹ú®ö\Ä"d;/ s¯jN†l `8þázÇËýå¶ÇaèzYPÇ…í/µ¶{T<Ìò;ÔÕùg5ß[ž–ë”’ò¼jJ%à/âᜀT“ª½*dæž•ÛQ‹¶ûÎ,=®ùq«™âQÓ¡^‡ Æ?¾"i±iˆù¦·¨$¿©ûÉÞÊñ÷¶¶ç^cb@zµW#¹^HuYÒ0*cFƯ"R^¥m‚S:÷¢é¤¶úµº£á;ekÕ÷Öçˆ+žÄõ¤ªÄ:é¤;¶ vñö»döiÕ·rÉíßk:²ÿ4êÊF_Ý9Àd°) Ü>,®ôJÁóúÚö`Õ÷þé/%ßš_åþEõ0XŠ_ÑÁvL5÷GY.© Ö=#€xd´ßÇõ ñ·Ç„·?é!ý÷Ql~ÔÔ.öêÚØ›cü2'ØÖ9NJ·õÀ·ä¤Üùgߺ³ÿæ™ÆeºU¤ì^ÓÙÙç¸[µr2*nf¡Âj¹GMÈš}QòÅÜ“¼/×}G-í-U+Õ!%æìL4^ª Åq“ÒsA «aáeÃY© íó°RçÕ³êì2J¶w†R웡„µœÆè¬€ìVPòÓä,‡”SÔuwlŽà®oô7ž“·ì%ÞøÚ7Èû`mÅL-Bж Ö~\ªG%¢yUb‚c—ºÖSüÃãÒŸGXÉ_8Çq€ñîuZ{Y™†Ç¨“†ÇèS; +f¹v0Þ¹õwe߯½)úÁ7ƒ/Œš´¸¥ë¡}’Z¸>JH-´´í-µv… lHXK*¶Ö]\í)øÒ-§äƒßÄL]].M+sm”[îQvñò6ŠWŇ… <ÌŽ›éT`ÒœrZ¡WËkJÜSã’2ƒ:Ü«æÀý +jñ®Z»gf·¥Èü+2Ð㬒]kç³iJÙB/ô‚åeõ©å7KA=’8FlSIðË£ü²…~Qõ–´ƒ±:J¯W=©½1ûždyQ{Ú1ŽL ©%¿­7wúA~ÞR´àl +acd®£Ë¯ãÁ½zÅÖæÆæ(òª_Ϩß_nnù°ÕùfsŠY©}‚:³5)hÚ_j¿û÷­–G‡óL´ +š¼ù*믆öü¬½èœ]G›î-9SÙUûóÁ’¤ýŸŽŽžÃeaË{ “R6¹Ç*/oŒTÿ˜pëo/Ë&: +¿8Ølþa³{ä`™ßæWbò7úàçü:>ʯ¡Ý3B˜SÆ©Z¢f,÷33Ws;HªÒV´OÓJqkMËC˜+‹¯á§6)·w¦ù5ëƒÔŒÅ—ÄëvÐîA ›’AªrβPÒµíS±ë“Ø,ç463lä4Ä êuîiRNX›¸¯­­% &ÙÆ`×,Ïò¾Yx=Ð)ûKƒ‹áØÝê¯4/ß©%ä Y +@mÖQ;!Ú¡`œÆGϦîsï"¯"ó/üÞÒÇhÚ~‡Ÿc"]Òú›A=­Æ›«ê®§êÞÝ•òÍ­IFqØ,æ†Í\ì[p‚³lŒSÉ(mÒä6tÜõ[> ©À3½ã™FÝŠè1E» v-ÝcWÇÊ8¿f{‚YõÛfÇ«=+Ÿ»9¿`ï‡_ZxVqek°2í×&ãŸ;­¯öWE›œXf„gMñÜkXæÆP=Ð.M…»óÔ&ЦlJŒ¶Iõàûò—z±Wl2^}F ÛQ´`ý††G+!9UBÄæ9}}{u ÄñúñöÖ3o}@Pä™nÇEM­lP‡E.­äå4Û-Ë1.¬vL‰êlãìBû85Ó1й2Ò*|:FåÎáÎFâ‚R’ÿ©¢9ý_×ßÕŸ‚µqŠ±Ð +šc&fdÕïê)å^96}}yié öÂæp:6iku-¦å#ƒ3”¢˜†Zî•¢27zJÎ:† çœãè‘Y.Ê=CÉsM“²Z$bb7&âýÀ*`EÍ”Ûâ:ÐZ¥‘Å{=^K×£­ VIÌ,¤z5¸Ìè,©äÃ2w¸ÈÁ4ÔJ§sk×H­ŠšX@"¯fзÐr%.¿­lƯ’o:F‘×¶`—Á8I ËiU»ú6NX+&‚ZYçïεðý‰s0#ðË+ï*~Xê©=7)Iÿ `ò+^¥³2Å©²öÑsBú®Ž˜¹£-j`ÔûUøì•þúóŠ®ì¿:§®Åæ˜M{K--“˜2‰˜{Ö÷ÜB<3ØÛ>.k{zys¨éjÐ ¢îZ;†L®[·$Îï™›™a5TRK| +bžmzcu îBâ<ÇûùöÎø|K3àå*—ŒV»1ŒH_€]9˜çÓâV{KM+3ö ’Ö¦xh©£Ã?×* +€1œmDÛ:wWÄÍ.“„77Ê-Õ¾%^êFÞðºîG:ºB‰µ¬TÌÚ­ÑÆ´¸…C>Xnnݵ>št«›+½°ÓkƒèäØrëC—šQë×1ªý:Z…[E¯qOœÃXy8¾5#@¹fˆY13½gÐv­\Bè­Ð¼˜íŸàÓ "³|Ìûõæ6»œT® ýÁ#çÃ3s×DíßäŠBF2Ä£uyŽVûa]$Q?…çr+.ü^÷¬¶à×í¶ÿ«‹+ð«èå Ÿà|Ú¾W-ù† õékð ‘9 '2×Ìt©„ðAƒsFÝ畯Òs·Æi;rNõÊåæJì‚mq#q,ϧ“}!Ò£5yUm4Ÿ¦|^ b•W›8ÿ6ÐÎ>dcŸj}ûÑüúãüSÄÛ05¡·êŽª vŽÎI¸¡Y1%±hPGÊ÷Îà@^ĦºA zf¸5^·>úä`ÈÂó¢/¶úK¾µ •~k)?핲=rvµG-€¹åœ*¿N„wƒ8\¬8e«úÅ)C\wN#®»§ñ™½˜¶»Ôõ,1×èú$#/bQmRø ÛTí¿b Ÿ¾5 òÏ8älÌÄjܘâV¯ŒâRA‡Dô´ª€‘¶oÆ•†4¸ÜáÆ‹ë €ŸsšµB¿uL0JB‰ûúf7C3È4À™iký¤Û8#ϧ”bæÎ®í J`í ~áUr  Oª‡s¢–®û.MsgZ‚J¬ì˜!AÎc¶Ø¯!—‡õ ôo«îá +—ê×J7F¯Ø&ñYñÅöŽè¼Ô1kBvc@E. ¨uC+ïÐ*âƒ1Vd}]ýãò;Ø»”†x€JýÛ3óë€[Ò«ü2bQÜÀn<´ˆ™Q£€èUӫ‰û·Ôm¬íaÔU AÒÜ*|®g–Gˆ-JÚ߯w½}¿)¹g›!”x \lb-—–òê Ek“Èkk“˜. Óc³׺âJ6'îmzÔ¶v>9X ÂZb…_ 8\N+rɉٻslÂÁzÛÕ#ÈO~-£ñ×MqÇÁÐ[k"qhAÀ´©yMK£Œl—’Vñ÷í®Þ_7;^‡f¹ÈIHÜ_ ßoKº÷×Ä¢ÝrG…ÏÚ˜$d¸Ôll|áîÓ˜¥£ p†È«¢TîÈ(å·rp“`xM¸=ÕY}Þ£!ã~Ýä0jØ ¿Š3r`»&:¦g5ì±÷«¥½ý`¡½=j–0÷ä®ô¡/mQ3Ý +ܯì`ÇëNK í³ü¶òÛÍÁêŸ|Jb¾[I-ð*™å{sbæû¥®ç‡Kí]Q3аkA TùU §¬ƒìVJÐ^¯Î+§äùŒÏ œRFÁ®ND:Xhm)ázô\¨[ÝBõ©»›]3bÄŽŒQ¼##e¯öc.ÛÆ‰·< +f9ø\ÉZüÂÖêšWA-|^o£d­`“—{agý2ZqÜÒÞæ7¶°í2z‘m’’ãQóá^=Ð`œ­Ó zQW–ñ)€Ó@׋måRv×ða%·Ö9Ã(v*h…n%£te˜ìœa–FÍbZ|ž‹[~Söm¤ö´s +q}}yů¦¹O­Ms+çÞ‘’"àwýJl}zvkrÁ'ÿxoeuT/ ìºF |ˆ÷BP[«C³-¿Vˆ<\b­ hÄĨ9\æÓ–Ú:ƒ†6îükRŠKÊ®>\ê|´·Èg¸eM×íc5¿8& 6미å˜Â]Pk‚úf^PÏBÆLbú>ÐJ>6Ý%ÃÜÚx¿8û°øoËo!]Rj™W-&ÍöRŠÛà×?yÇ(¼èS°›Â*ri@FÈÎ m»=FH_@¦„fyD›L³¾Á^Ý·6óã‹­’ˆIH;X` £:|¾s²æÜÖP婽¥¶{*zôQù §šIã»?' ~XLma ÖÞUŸTuþum_´<t€xóøhy1K3?ºÐÌ5¥ù[¢¶ø±Ú>9·tÖÁº¤#<Ï‚yµŒšD?:U¼»BK¬‹ÖR‰Ko«ï,¼ªú9¾$æÇ–ÔÄ#d¡ÕÛeÈT;`÷ …ƒLò.>'æoRò¼þÃF÷@|Y YöiRÖæ8%cg†^žgãsÛ>lr8ÎTqDÏL†¹Öâ³>>@œïy¸¸YÌ%bEA.²³×ô¹U¸lÛärHK. ›xHRsM³ËlS˜[ o*¿Ûl8›¥Tì/Pë­hÌL¬ý°Â§ï-ð‰€1q•æU0*RJž[ÁopÏpkÁïÃâF!î#Ÿ¨¸u+o.:'1Ya#2ó0AcW»Kñä¾]Ö˜h>…éelön˜Wœ\~SwÒ7îºÔ:nõ¶Œ_cz‰»¤ù|×/a%½Ì;C¯Ý'å:€¾q*Û(€ aÓÜŠ­éfÄò°·6"Fƒ1b• ÝÅ»lˆG×LÏ··ÙäÜÚ•QâÍ­iz¡óãµ[´ü†VÕÓªîiô+X• ׂ: Í1 xXÁ¬ØÆ'»çÂä䜎 ß™b”no†ÔxT'@ö¸¹ò¶úäFô’G†¸Ô`Ó@ÞDE-<¨#5Ñ99fáaCexä7c&įàÔÙ†‰wöBÚûõ‡Rÿ,Ÿ±>‚¼¼##tBbl®£=nm»ëQÒk5ÝE'Ôwóc³Ñ¯“—úç·ÇÉy‰u„]Óœº8ÈãÑÙfÎÒ;t’ª£âÛIvÚç«o๠oªÞT}cG߉êx¨]£ˆ´gáß/‹øïWÅ’«fµŸšùx|Lˆ·nùÇûµLX@ÃÁÌ‹D †Ýó›ø—†Yšïz¾»Ðù nä"£:rqHƒÉÜhJrM±ê¢¦ö–ÝÅ·9¨‰Faw±äÁ¦Œ ~+dÂçGfI¥N9òö–”‰,t½ºënd‘‡ß_¾û&j=RBáòëª «o*. P/ÿéô»ßY^^úÍÞò(´ ¤ƒmMÒ· +Ùû+’¶]«€ïRà«ç^VŸž{VûÃŽ”\°¿,æË»‹ÚkʉYXÈV>í·&*¬ 7Y_C +úXi§x¥ßý·¨^„õ»fF}HGÈÝ­;åžÁ¤… @K˜ù¸ð,ü¯ Ø n&Ã9 K=´0›âs‰5àiù ÿóÏ–;¦ÈE­ôý"Öc³=І‹.9ôò!¨aV„¬]KB1Î=CÎsH17}j.Ä)u@J)ŒÎyåaW,¾„^ÜÇfFLôÚ½E"häb€Îƒï(E®…âTµcÜâÍ^Ò-UGþ—¶áÚ þbs’RàR 7ÍÈ•ñæÆ­q4¨âÂS„të›Æ3«ˆ+à»P>C3u[Î(Ú–s«ÜÊ{ ßߎ¹Õ:†V¦}}Ëü´ò;÷4­,bl¦Æ­ÍB{b}b9§Æclf[‰ûŠí¸Ûë½u§g\¨øPsÜ` ‡”]PK(n)«<¬fVùfˆùÛÈ[›˜k[Ãø”€’h%dÇ(%{ù5äÌzôRPMÈ iðÙ~&Ï)ƒeاHÙm‡ `ìlµKñ™ËïÊôÊ(^»Ê5NÌøÍ§}X»Ûã›1¶§EÙöfÿl÷ƒÀ\÷£€¹Uà‘òæžWœ·¾«MëÇ”=÷‚pqk„Sæ–K°n9¡ ¢ÇWxä¸lëKèOÓÂÂÏFèw>_x¹±=AÏ›é.ÿèàü Ž…° #oy§ ù©Ü§§T¸5ÌJ¿¶•ško·IéŶIRf|IÒº»(‡g…Ì ž i)U £2bâãv—ŒÅ­­m݇‹bÑÁ‚ˆÒ°ƒýêWJ×ú¡g¼:$¶(dÙ¦¡É-¶È¯gÂ;“Ãæ–æàÜ“‰ÈâƒÁà<0SªöÛïúÌÊåW5?Osoý«¡#÷¯ú»yçVz*2–ô¿ÛÛ_û@Îòêy¨ƒõŽÁ9Ù1M-YBܘ{UùÓÚ,˧"UZ3sQSmy_/@Ó÷—øÔ½YÄ7\sQÛ’ûåcèµm®ºöÉ=Tê +ˆAË}:zEPOÚ…˜ÑsËs‘[øÛ)>Í5EÉôÉYå{óBÚ¯Ë|ú‡%.ffÔù”´bß §2fà£âF1)¨äÔÅ \xHÃjˆØÈÝY> e×… ¨GÅ}Ä­ëD¸ÐP^ º2†¿ixVÿ“WN+Ù3óñ“cúVvÌ$ìI) ±™6#Á ž–†¸[ÃÌÂ*ª…(Ÿ’ iHóÏ*NÌ?ªùðÄoì¡–}Ú6VPÛB êDô€èf3 6J\rDаlÔÌÅÌw? ™î?ÝQÀþ ‘ Îav/õÎ`3Öª.-½É=áý êIGt¹ë…S'À$ê;`-¢gŠÝà›¢—x§p.) +p!+¬‘Pƒºî»Žqz¾}—<û°â»ÅÇUß}ŸÑ2ªÃ „µ‰1$‚x¦…°¨¡™Ñq¡;ÈÔ…çù_Í?Ëû:¨fÀwºŸÇæ[[ü:6Ä«àCÆ6!н¬˜‘^í—5¥†t´*ƒA£´·r¯äë^S›0`îêòëyŸ‚Vâ›í§eAÌ’Í!f¶OÞŒµsÊVûª¿³Öÿ²5„¾²=ÌÌ·òëü2.,¨ä#·Æé¹‹o1IA­˜b‚°=O²Ó¼jFUÄÂFî­ˆ„1ËÝ'AS›hèIÀ]ìÝûc€ÓIv)%Ç¥$äíÍÑá–„üC0nâ íQc ëÐÚõì=h¿žu²Î§ùxîåŽlïU1 ñ…ÖŽ½å¶»ñ%{o©óYt^"ŒÌñ‰ñ=bæ‘# ÆúMÄ¢™¦«q'Î r†} wkgŠVÖñi¿.µÜûç&‡3cÊìSÔÒå~jÚR/-=`¼÷Òmà!6+ö©YMû‹‚ößV…ÿ «Æ9øwgk™Ô3ú1 M¿ƒ\\BÜ^&TmÌp°AsKÛˆõTБóÀ8œo¼_âsB’MJÌZhüe£·î'×PÓµ¨Wr¸È#¼_–ˆÞ¯HÄ» <œh]ß4<É/䔸´ˆ–Yµkä¡¢ ž#ncpÎÞ¼ˆ¾7/¦GŒlˆ_ƒÏñi9õ^µç×vðÜ3Œ F„Ž…xÈÙ>»:¤c×G<ä®YL €ñn~UòÃïÊ¿š;rþ6PAŽgÃZ>Þ«æÂ\rnkRÙ£æZŸ–~oûêÃß +Ͱ*"€Sã³|ú™ç@~ªh™5a3±Ô«®»æ©:c«?,°kn“ÄL^¹”ôê…w•?¯ôUœuIáwâfz#àÉZP[s¬Ã¸kÛRf`µ¿šßdy 9½ô²ì§˜Ž\¶oæ¢ÃZ:Ì6Î[îm6BNw)Ûh>•°É6AÌžé,øbR”ýï®qZv p@D êÖ`œi|ÆžYHŒù(ŸŠV±5Tqn³¿üG·~56ËÅÄæî¿ +›:ÛýZ*r™W‘ØÄ•‘Úè“A³B*`%Våæ4³4<×Öêcn¥ŸxKÑ^ÿ“õiÃÏ5êf|ŽR}`ñz1iGÆ*õ©[HeÇ«éänOÒçž–m~Tþ…ùqù—`,×íÍ·uF-ͼ½¥fÁîüÝÇ n¬ 9ñeÊ>NËñ©E˜ˆ¹]²›ˆg«ä®OÃỈ†Ø[éîÝ_iéz¿Âg;¦QùóOk‰ë µß™%÷ÃF!ën£‡í¢ˆ©µe©¹å·­Ö‡``ý —´œÆ÷«ÍÍ‘y.Áo ×­ZâWÑ*÷8˜÷K\êþ½)¬#WnÁκ¦qV[îû5ôÚ•úS«½¿l Ò€TÀŸ­»³ÝCúÎn'ˆ¥À¢Xp°ÕÕâ•’¸ïd„Yú…ù>êRŒÕ]#6°(‘Yz{“ìѰj‚Ü5‰ºm}Uþ½ñqæç`›ÚÝYbQԈπzºoç[Åûóí->§a¡zRÿ°ðÏÚδ_~QðõûE>ùÊDò~UÒ¼ká¢÷/GÕlHTM+õÉaWm#KÛCðËn9)+¤gÕ|Xñ>¬4‹ö,BRؘ¸?zÅ­ ø6ß³Hxq‹„»gñ ØäUªô·_A) k(¥A5½Æ£b׬á2—z¡7vFqÙñ9&Ì>½¾ÜWó‹-±Ö·LØèQv0SìŠÕ7¨ÛÁ)JA`Šœ·ñ®î¢RtýóžŠS»fiw±½+l¹{ß«o¡Û„ìñú«Þ\‰Gо喢nºdèœíIlŽK-!{u­Üè\«pÏÚÌM\Ã¸Ú KÚÆf¹€vé(`ŒR*2ü·‚Y7qq½Î«À¦/¼(úráyÉîiÄͰŽ^åÓ53üº­1Vµ‡rÇò~Ê9B¸³ð´òm{Á¦î‚Ï}@sï™x¿–S·<»¸ð²ôTXÌÝ›#–»gˆÅ.µÂ¯ä@ªb@wïnP/À8¥˜;óOK¾™æ'ÿagr=1ÿPØÄAúu àÇBÇ$·Ò6,nX}MNñH›®DgQ©$fQ# ÷ì-¶µnè Í5³ì3|äÆ µÐ6B¸í”¢ÇûǬòÜZbÁþŠ€½¿Ôñ j±Âsì¦Ø¼ˆÔ 1^%»Þ#£–9¥„,¯—·;Ï#¬t¾Œ¯>œ´)™U^ ½*bâ`c&Ê9ŽÍ²<¯¹jx\za{_âÓÜ¿ëVv +,oñ¹KM©6»zF>±Žì p‰ ]´]MÄ,¤Äæ»_ÄçÛ»ýR±S†HqL5]sÊPwZÔ}+¥ápMt©)öiÄu åÙ«]¯sÌÄgç;ÉU~5¥ì`‰;\‰÷×;ž{̶œ_ôL]DͪñO5Ýž»ŸýåLKÚŸ—{«Îì(ˆ@çr¡›£ä<Ãýš¯W{á·Ó¨²CK3{ÏB¯÷+™D$E \ØžIÂÜ›k—ø lèB?öšù ê²åUÝYПw~[ã—8Ø+1r`swïíêZQ £Â99¿ö¶þ”½u- 'çF4„œ3 ¶7Ï'Æfù˜Ý9!eh¾ –TèžAfDØâø½ŒIÉ.Ðú!ë’¾@^´6žÙh<â2°K}Ä$À†|dâü£s“ú3°b} +èb)³Ì9Í«©Ú‰{ÞžA~Rµ6A»öç,õÈ¡‡KíÝASWÇê¯Ú1ëê›™ O€ØÇa—·Ç.Ú§‘iËÝÇaK×އ ›DT§\„Ú™d—G´BlHèޙjºâ’¡’½*BN Œ½°–UP2½ +Bîö(*-¢¡Õ$Žóøäð'¨În•C*¨ÝžàWnôá¯.<ÿ,æþQÊËú|íUí¹¸‰\¾oa#|jJ‘}šú¯1¤ÅzäðäÕþƳ¶atrx†Y¼5vvzµ"ÜÆ)}µ²Ùßt;ª$ÄtÔ +Ð-Û‰k}q·Cj.Ü1Ê©2ÜkúÑ=Ë\GØ_bãؤ€“çU’Ê"&<8+ćÌ÷Ÿ»-ÔÅ|êúêšcv=b"×ì-2±{V&)<ËhÚ9uku3:/æytØöúºs +s3¨ —îÎÓà¿mòÖDm>#‡nÓPKó>‚qØ ÆmÓZüòܳš‹«ý´°è&]³p}—ezÕpfmWx¸ñH44³6‡pé›=õg=Sõç3Å,|òûŽç»óBÞæxÓ‡ŒP0ðè1 çV nºUÀöÄ"‡q}GŽN;XnnlÔ4q›"³ÂÁ²°eoG鈕a±"0ËÁ¸Í|¬Ç(ÀxTÌ*×$þæÚÛÚS–G%§{ NÀó>=#q +ÂÚC¸¥¾ûÑg²V[»â&q×ÀjÍrfÙè‹"öþ,7s‘n ­Ô£–\ò6"¨§ ®P·bóMwö¬¤ŠC+¹?/ ˜;»BJVmHE+¨8 1¥”QJÖß•ŸÔ·_ùtõiщ š\ŸÛÚc&.bkveñ]Á^iÝ…˜ž˜w`fÃ÷-BbPÇkô%îãÄöÇ/G§:'ALJI™n9­Ð§a×ÅÌ-ÀÈœ˜I€ñ«èe«½ˆ 99owV@ØSMO ?»±ç7Þ *|Sl W)¶ÑÊ ÎIHŠ[!F;d‚†ˆ¾]1tJ¶&Ùe@p÷­"áþ’€³·Ä§]ÆñÙˆ¥AT’{B[4¨Új¾ÙêŦÅOM«Ú³pñ‰ú·©Žqò¯œœ³;ËÇF L‚ÕݘTûHãEÀ(Ùa oÑ<* a{œ]´Ü#,[ä×úg80¿—¥¿wû‹í¡Ê3;ˆ¤€ŽQ4´ +v&(¹Þi6$¢#jfý-úæ8?û{™$÷Ç•Êí-àƒKÇGÚ¥ÄLË“ªC*RaÜÌhØ_`"ÙX—‘i~\ñãÊ;\JÄ,DÅœè< Ò A›Þ +)‰y@ŒÏut9g8u«CätÀxD¿—Ö!3=3ÐTíý;_Ú&`É> µÚ¯§Cöy´ô +·š˜2Ñk¢F6p)$luʈ¸ãšAÜŒYxäÃÕî^P‡[=JjÑÁ‚õaYÀŽhI•‹kÏn¾*;±ò¦ø{¯›÷ëzëãíÏZÜ1I-ýXµgb5F ,˜GŽ.´MÔ¦8&±w¼je|±¥ý`©óqè'h7¯šTŸç`=@“ú¤°k»&j]ÄÂÄæù¸è‚¹ ú4h`7ù5äÊýžhEÉá +uh¥AÜ*ZñÆ(åŽGÁm ÔƒåÎgq«ˆë9}GFÎv+èe ®#£óúâüZXÍ®ohãíkE˜÷@‚}„Ä „œˆ “a›j<õÉ­d׸äÌb¯Š^úa…Cøç6ûa“‰ÏÓìÈä­~䥠œUR‘Þij‘o—½ðªâuKöç›oêÏýÜøÞ +öÛÈÜ!Àú´BdPË®ß3Ó«Cè•€²öœO¼éU0ËZ1Ωä^aVnCÏk:³þ°þrÊ;•¸/Žr¡D¸?ÏD~­Ù_hæìYDŒ°†X¸9Trré]þ—¶AÂÀt+. êôͤ`¢¦ÊèåQµ¿kêê¬DpN ¯»§‰Y^¿áýÊÝׇ+íã ŽBf6,faÃw,øzOÇAÔRÇà:¥ø·•æÖÈ,²oå‘–¹Ä žUPñ ñYÀÕRáÖ`Ý/Q-¡ô×…Öæ]½„¹=‚J±AÎ&îcÛ!§mr +½ÊVÒú$§le˜˜âž¦¸&Iyx䬊ï­|†äï £4¤nçÆâõRŠª½áÛ ^Éç@K^›Úøû ­-Ñ9u[FÌZì%…ÇIëmO ®mŒ4žÛ†ž·#oÅÍíw£ Ï•‘¹fžWI+N䑸žÛ7^± }»ü*çsÀCw7WDfE VW›šYn%µØ§¡UDgEŒÃÕÖ»‡«íO¢€AlÞÞ™&çDŒbrd–³öÂχÍ|âß7›;~[á€|É€ýsE,~¿Ì&%¸Ó6…IÙš$e.õ!A¾ •Ät\ì‡yjõ¬01ÿ±Á$ÄfQ¹Ëo+¿_êA' Šß ¤m `®Í´æ9ÌJþ£õuí¥¨ƒýu½¹ý· QKt– OÌ)°¿  ¾_r›å÷OþÎÐvû« ›óÛºPð~SÜêV⊖êNF-Á{û#ýoöŽžX¯%ýQÕœý¹-qý’šQ6r‘ }SRfåþ¢ˆù~™G·l×TŸ¾Þ›ùÓÜO¿³OÔœöN3 |Ô‘ ?0sšöŒ¬†½Ybáî,63ªÇ܉Í1ê7Lj·l£üZŸê~ëþb3ûǸ»Bªôèš’ç^T~é!çîZÙËýø´)qÖW1]¢®0ËC2nÕ{PûöçÉ»fb¡G†»å•3+@îj]ÖrWûs>³¾Éücb>ưӘ¸5q|Ý&£¬onS³~ç ÿ·u6qožXåQW_ØšÈÿ +乤+âæ½Ã;CÌ]í©8a®>U2+Æþ| ߣc×Fg›iûóÝ÷­]‚&Æ>Ñpfs ú„W†Ïˆ›Z8ï—ÛDg¸¨Y€û°Özwož‹ È ëïªN©Ú“?™{÷'Ð0ïçÙ˜¿ƒö÷i‡«BÎo[Íû -Â`협Ѱ3ÑxiŒ“ô;ó£ìïöM\”OÊ,szk¨ög—}è Äû¹VÞ‡ùfŽ[E)ښ¥õ"bÜ,¢ÄL¬ú –Vº1Üxfs¨þÔá©ìýŒU,qlÝ ôZPÅoŒjMqÈÝ&jYHϺŸ]s8/.HD1P÷rJž_ËGFg…ÄÃÅQ¼ï7òñ.µ8qÝK@!œÏ(vM¯¬÷V~·Ù=»·ÀÅ}XoéØ_iíˆ-ˆX‘ÄùV}ßgjãî®v>Ù_m¿šÉ!ÇÞrÊ0©C +f¾{/Øqu3lnk9\oéò©›² 9Ÿ:†aüZdjÀ@(H´÷Ê=Oÿ‚zÝ1Ý%Þ·>ÚÜR5\vŒ–|o}›ý)`Á´½9‰øp­ëõÒ.cBXüÙÎ$§°jólt¼üuYÀqO7¥ØF¡í“èkaPËA_‘7Fð·ÖsŒ¡ó,’–¿¯HZ÷Ãu˜\Ë«‚oÔ]iŸ† TÔ{gÿÞŠˆ—8âŸ&—ítï7{ëÓ÷Vu–ÓÚ£tù-ú‚Gɬ=ºhåmÍÏãܤ1=ÈþÚ>\wå?6™øÿý¿ˆ¡þÿÞÿ¯ìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Êû_ÄÊOü±?œ:•ÇÀå¢yèO …ŸœÊ*JF‚×Õh.Ïù¤ü“SÈËY^.Ë#3hŽøÄ-ðÖ•KW¯Ÿ¸\GÓNœùÏ-O€NTpÈD2¼YƒEÓðgO\›ÞOêß›šøÞlŸKªDóÀGÿùf6|æÿöö™:MÇãN||÷xûÄÕ«Ég?¹r" < ÂÄøOøà)éÄ•ÿ bð¢üAo O$]9QvÖtå.±}õ'SRS“O¤¤ÜL>AO¼¸vãRÊÿ|]ú?¿¾þñ¹ôlÿÿ|ýq{Æÿõóà‰ý?ö")±›/ŸLÃßúÏ??:÷¶å™³‰m +>¹œ‹±øœ2hÉ Hù'°?6çGOüO;”zíÒµ””¤'šN\½’üº‘p–ôÿö3‰ÿþïŸûïÏ©'®ƒÝHJý¸××O|üŽONú¸£‰ ¸u"5ùêÕ”O EÿÔqaQ£„ÒHÈ>%¯Þ3îs«™Ð‘ Ý[ ÕG ø¢€’PÒÓ«B³œ¦¨EÌòkÙ1Ë£ yg˜å³kS£ #¤¢C:,±dVbjZ‡\µO2*ÖyŽ1Bn`†”Rò¢ZrQP…¾3‰ÈAÃÇãÃ>cG³G!lrKE®)Ü-Ÿ4±Œ.#,g”D•"dÜØÂ^¤ÛFY•a·É£ÄfîÈP7lc—ƒJBÉ®…VRr":zMÌÌÃíÎ5³"zf]Hýôžßq]×–ï£Ç»Ýí¾Ýmß+ßk[–lÉ’•ER”HŠ9‚ rΡrÎ9 ‚9'@d P9'äŒÊ'W@ÙÝÇ[‡ïC ލS{¯5çoî³¶ 8mm¼î<‚ÍIêöƒ&éQ2›¼ujEdP'G<Šöí)Þ¹Õá–»oX§RâÜ¡f­ê¶ô´ž³=¬iÁæ,êä|ž—?l¾¬ûûÚÓÒ#͇q«´š°iY¤KË[i=¼ô°æÓõgM߬5\}QùYr¢ý(|†rÒ®¤çÄe«¬sªY”רÂý殤Í$ÏyÛSª¦Ý iáíê‚ëé@Ý¢ºœOÉ…‡t+;›¸2cågæe5‰9ñÕ¬]Z»…UË#U_®¿©ûtóËó5w/¨Såüzs²1Æ>³5Î+B]æ5*ãóü+»³œói#2¨PQ­ +ñª9[sü²èPÃw˜CÍÌ8¬„MPFE´Úü‚y ©DPÁÂý +6wfœKÈ<çîâ^Áœ¼Òý0¼_P#&üŠNÌ'iA|Ò–”ƒ5ã–A9õˆªIŸŠ— õ¸G ó"o'ý*îU vç¹EÛs¬ ˆKÖJd{!ômÌ<¸ï›ÍDØdN:5¼]›¢=N¹õ‡úŒ†$Ôè¹E…úŸRþ®n«—>7–³èã¬QŸ¸÷ËÚsa­œ€ŸÉXŘKÍÅ=7ð N–‹è4ù˜Ñ‚eˆ‡SŠù8•Y7ûJÊÊ9¿=Å)™»^þcðó\ÊÖmÄ=ô±ËÌó¯˜ÇwÇp/ŒeØhÀBrîV"6vîTÓGÁûÉ’6qÅú8ëøú$÷\Ƨb®¾aHNKËq;ÔˆÛ EÝŠö´•}>5Ç:ŸW6-Ž(®¢Kæ±XóÐÓ­?fçÛŽNæyÜÁ8‡8„e‰yQEÒ¦hA¼fmƦnße_}ÚôÅöpÛáÔtûQ|NPLÙÔY‡¬qÄtö_ý·›¾‚^ìD]ªŽÄLëѵW—ßß~SþwÌɹLzm„[Çü:æÑ‹p¸&£ã-¥š´óŠ(Ÿ´‰ôÉZrA½ªÓqŸA5$IÛä ÉyîT¶bPñIÆñÕ—åŸî—}³ ñêdôaTÌÜú¥í[S ßnNÖ~¹5UÿuÊνyY´—ñÕ¿Ž*J?¥w¬»“ÌÓôÖK>MOñ/ç‚Z)Õ©ð€¼ƒð«¸0wšBРɇ´§èÜzÃ?½5!¼t([wÝ’ÆÉÞ¢?¬¿â] \FYÁo±¤Ý¢úµ×•Ÿl×|–šW4>rð Ù”v«9›<з¤!ï×ãöÅÝé¶#«¯›¿Þ™æ]J»õ¢õ Á¥Å'mßlñO¦ÆT5ÙYÑUtž{)=Ã>»9Úñ£ýzù×^³Ndìê΄MR½=Þ|hg¤þbe\¡‚âÌ)®Â wxAí )Ïéë2anƒu)šp· 2ôrÀw„5¨S‚8í¸Û¬NÙ5ñIM=f×±p»¼a{¬ùûÐÝ3¿õ\ø7ÿµš3o ìÄ”ªakDpzç5ïdâ5÷6˽¸=ZûuèÁ•ž×å¼]ùQäAÓ©eAû·ÇÇ×^4ü˜˜h?C¹¹Å”«óáá–ÒÇÄÁß –: a“©2èö¢Z5îÕ Ð7DP¯,е1š¼w)Z ^ôWŸ†¿Tí…XWrÁ΋‰‰Úï‘)i=åî¶$ç9W’ÓmGóAµh?ª×ýsÙØ› i$¨GÅB=9¼€x4Ô­ ð/í,Ô‚©ŸŠ™º©°N‡U‚YÎÅ]ðè‘Ü¢é¼ú +Ë]·ò‹æë¹p÷ è=1áU¥çÛŽbî¶ãˆ»ýTÜV0nk9J‘†9À}*6摵P!Q#ágQ~htëOë£5ŸeæÄ yÿµÇT°{ ëV1SviCÆ!ªE½ÒVÔ¥lÏE F"¬á Ë…ÅÞg¹hÿ 4ÐeÉøÔ|<À-¡¼ò|DÚI†¥lÔÇ*Ú±q‹vçåÍ3 Kï?µš®Èø¨W\‹¸-y¿¨~ÏϺŒƒ~¦œjÌ › +÷ÞÂx^kÒÎ-A<ÂÄ˯J¹øW7'[ï•|²ö„}>¼5³óFR¼ú²óp|‚}*ç•Ôç<‚ªœ_ÒDx¤ ”ß &ý]fÜk”£n k“×ã6U ù®þä­ës¼KÖëÄ'dµ¸ 8Ë.oN9ù¥©9Æ9Â)¬+øè£ëôÊŒ[Ö´³ñ†{‡ºILJK‘9Y:/,Áô±Âü2Ì#ïÀåÒkÖÑÐ݆×_rO.=ãŸÜzÉ?™—%&¹gwß°'&xç²óâ +Ô%©‹¾l9°ùŠýÙÝ >®Ã’¦”qóÊ ¯¨ôº)Íðê„8Ôæ2+÷ ×÷câ6ÄÍ<Ÿšo?š±³Ï!N~ ÚžqHk“sŠÚÝ)IY|B})¸Ÿè8¶ýºñëøHçØœ¬fc¸íÀú+֑ĸèâÆ°ðljD^¼ò¬æ3ÇõÓ¿Ü/ù3b•ÖR.½Œò”ëô±õóꎽ åzæcw¶ý—•—%®VŸé8Ÿã_Î8éãv” Ä!oÈùtr*`ÐB&x¶‚HÛ ¿’‰º¥õ„GÙ‘÷j¸yË‚_š1/á¾Öãñ©’Á;Ѝµµ±–ƒÉÉŽã{Àoôú·P+ÔrÖ)kB=ZêÒr0ðPÄ-ªÄ€wˆ°Fš[2ß bZ%Ñ©‰ˆÑ}ÑŒ¬j!ª‘í-êÍ{‹Zm.¦QÐ?{ ½Ora£™>æ.=Ï+*øU½¨JZˆ*%…˜RD…¤m)¿¦Ê8Eôq“”G#Êû4BÂ#®Å\Œ³”OÒœ¿IÚÅ5)[—÷vs­„>z ñ¨Yø_Ö/mF|ŠŽ½eó­Ü‚VK–»æD­ëÌqæãWæ£RVÒ%¬\zÃùeeLp.ê¹ùîHĘZ– éuèéå—cΆÃ[cßo³NP¿³Ü&Â]}dØr]{AE{î¥`lC/›¿L̰NR.AE!¨•å̓‰©SÊÌm–¤mœs©Ù¶£”[P^^‹¹¥»sÜó[ÓòÚÄ|¯1éÐóQ›¤ +™gž‰O·ZÃ<º;-«H;5¬µ)Îùðò÷ ðaÜ5éQ³ÓVIeÆàà\ÌØ%¸[T½3Í8±ü¼ã2§jßX,$}¼“Wœ´q.¤ì‚+[cÜÛc¼ÓÑá¶Cª¶/ÿû°è⟠Ó³²Ó¢ô ãÄ&èûÊë†Ïž5|šœ•‚®IPx_ +˜™A­ÇÒsµßf¬õߦ­-?¦g;AÜò–M«´akŒuz8Ø‘³–1aÞ곌ã©ÙÎcÙ9払‘–Æ»/ü›çVÍW¤Ã(Ë:Ä•Ûã-–ŸU}´ü¤âƒåÇ•Ùa_~Ã8ÚÅ=ð?oðÎï¹ÍZ4#çã•B&¨Hγ/ìXÙg6!hžŠ[ ùØ#m“ÖÐÚRË™xï\TÎ!ƒr&îO…±&Ý7^à>K7Œ‹ðÊÛñ  êí¢Z^ˆI;saÃöóÌö¸¸äm¨{ðí’F÷vQЀ¹¥æ$gaí¬³¤O\KúŒ\H+Í…Œ:ÌßÝ¿;.¸ûL…:M»¥)·° ÊÚ©¨JHE4Rš;°¹hÅTÈ Ù[0ß.,{ EaQ£ÊE¡gƒ‹ –)wè»MEÇòÑ®Á¢N›[PISè¿*Â'k%}jîUs þžÁ<ôd6âW‚.ƒf¹E­²·¬ïÊ-ÈùXTXO-©Ä‚F …zïæÂCoWÌ·É”iÍéâ]7 +QS/u€Ñ×Ñj ÓÕ€V6â.Imfžu&5Ï9Ÿuñ®">Q +Z@„ú‘k/³>ƒ*éP[z~ ™{þ¹ 7§]¼rÿÓ²PWßu:¯¢.ðGú)—¼™ò *ÓóÍÇÖF*þ¾ö¦êÓuÐîÕ)C»ÿû—¥çí‡2s¢RÈU¨MјšQÕ½júzéYíßò!ätIédÂC• ßçb_BœŒsi[Óá•¡òW‡Z¿ËZ•m˜_#Þeÿ’™W§m 90¾ÛíG–Ÿ·|ã½]ý—ìÃÿuV[ñ2­mKN +¯¤&˜ÇS“ÇÓ3Ü ©îùøDçϨ[œžg^È:øed@ÍOÍó‹v&;ŽÅ§[a.˜’VÆÉí Èá3GçïýÙ5p郷!iç^XÚ¹ Yywg8gS³Üó©öéÕ7­ýOj¿Üxþ€Ïeèã^mÂòÔ,ûÜæhÃWËÏ*ÿcX{Ýqø÷Èÿ ßl:úX´’‹‚¤¦Ù𻄸GÞšÝLë*Y|¾#þõi¸I+¯(=Ç9‡‚Vg€= `vÜË»JuêܲJFø-½D »/õIe¨‡{%\³<\ûÙ΄°86÷¡!q´ü¢&ðÿÊ ¬âæ^ɺ¸Ex€_™‹JÚ + “T°ÿ!æëD} }zi& Ãì-kµ¿®ú÷—õ*$iɸXç飂H˜ß|À Á<’Z …‚l…9F`Ü1`JÄ%ªÄ}ôqçÒú´KXž käTT¯§¢CnQo(€>@ðÀG4¹˜ÁL-êàÿŒ&*Ü÷„uÁûûó1S_¼^}ä+2D³*nÈz›v¦;cnƒôë!+‹kP§j›öVy'ä1c.Ò}ØÎœ|“qiù{ð{1§´)k“ÔîNÃuÍ+…¸¯û}\óIûF2tÆÑöËêë«Yx\ôÇíÉöc»6YíÚ¬ªÖz«îoÞ›uŸ#6eSÚ*,MÍŠJ¶ÇDèã¶"OZ¾ÜážÝ‹è4›S‚KÛS¢"ÈKüÕѦv¦ê¾Þ©ù2em8Ÿh8€XéÒ w€³B÷[¾%&%ׇ¸‹Cå Þ-ûƒ÷ZÙï==Ú}.Þ–ûn—~¼1Ô|pÏ+k£\Òz ®sk´ù»õWÕŸ®½¬ú|à4ýv§1§²#Pr(¿¼=>°ù¦õ‡õ‘ºÏý÷®¼¿ö¬æà¯aA-y‡ O}—𕤿E;Ìc»S¬“¨SXAz¥ˆ jhFPLxõÔ)kØmùÞûÊn½n;°3Â8½×üj•·ï…tj”f&‡ª“tdyÙ@ù´¢”ƒ_œvA††\šjÄ{ Æž]—¸n~6;ìê§ .p/xÏ\󑌓UD­H˜D´û6´ôƒvË1ÐfèµvœÎ0®È2¼R*¬d¨YÁ¯%ö£3}|9èQäaaQÜñv•_ÿô?4r!Ë5*Ô}…Ïs]›v +Ë3qÍpæòXã×)Ð’BTÎÍG5rÈlÌ'¬Áü¢:"l0fýj!d#m.ÜÕOu22 gP!àùZ:­Äü²ÖÂ’J–[PBV‹sõKZ¯|]+'3þð*˜7å”îβO§‚«­É>­0¿;Ëɽ˜“5‘Aµ íUvlÌ ‹?]É:AøT¬Ý)ÆÉ쌰43¥mÛÐ4¬¼T—nŒ[¡/ïÖcG›¿G!—.¿®û<=Ç8ƒ9!úÅ ÿˆÊØôyjžwe}¢ã§íQÞEÒaѧgÕ-©9Iùöç\b’%9λHXEeļ¬vãuóAï¢ÿXj; ýÑ€Yy—0à˜øëÄîXóÔT x[ûQ˜ng‚{†ôhùÀÁíP×õ„[ÃIÍ2O'§ë¿Aç›çœÌó”›q†¿-!£û$gEY«¢ð¨¸h_!¬äQAamÂÚx m•µ¢n£nwRXþY™±J[1«´†°‰Ë Ð$Ä.¨Øšj=¶2\ÿ5áP —^‚94lÜ©ab`&¿Šû½ámLl¬í:ø%+oXG§V@Ezïc^+9KûЍu«xÔ’FCÄô¨M>Ñkñphµ^‹ù¸eYGýYWËѬ—]„ÕyÐÜÂðEÌr'êWßÃBøÚóBL!È/r+ Q)ð¨ +æP” ›-ôš%½6I¯åå"ZE +ô#n^Å}ÂÚ}Ðë|D%ļҦ´“w% ™%áQ16íà£nà«Ðà0î¹™‹ÈÙDHÒLE$­$ýoHÎÄBòÎm}¬¯AK„nL 顃 œ €^ŸuŠÊ—¼…ðš4»óŒÓqkÇIà0!åï½ý.ïúUlàMúhÐðsQË øÌº4ø I¯£…úæ¢}Oé#Q÷€ÿr1)ƒ>²¾°¨7Ò‡zµ •>‚X«;¿ß³ Uç":îÓ‰èã´}/šé»ôûB°ûÖ^l`”ŠvßÌÅM[“¼³«#ªŠÝ™.º1‘ÎÂ}z9â¾1”r=ò¦ü×_d]Ê̯a£‘Œ˜º‡Žƒ¹ÍÌÝmÆ=Fð'èñyö¹­9öéíIÁEÂ¥áQµ0>Å>›’×böþÞÔŒ™¿;£mÙœ’—í@-­¿j>°3Æ¿9\öñÒÃ+L¶A®–VQ-u€×Ì©Z(È™¹Î“©©šÏ³ÓÕ_dgbv:o©X9Ȇ«£Í?l ·Ïy š|Àll­& +4#NI]>câ‘¶îBŽÃlj&é﹑œå^Þ|ÙðEüMËadNP‚ÙÅÕ˜CÚ˜–Ù™â]H@.Ì»´‚}Èà/ )ºŸA§`>Î¥’júèpz'¹” ¢ü×þ›oˆP÷-*Ò5€B&HAFϺUT¸û&è£wëD¸Ë¤ÎCfÈGÕ",n&B¢ú|LÒž‹©åû‹]7AOÍÀ.ôPÓ&à%Ëõý˜±+V‹H¿V\^Ú_0Á®^ŒæàjÜm”^5 æ¹>ŸxÐHzÞ‡€ïËxôbÄcÒ Þ[kÓêæIÑeÌ+ïØ‹iUûP‡¿®è{s1• ‡øMÄwg.Œ&#‚Zi>¢–ìÓ¬6ñ€Q“r±KâÓÍ?“n­<¸öˆò›Í)»´&mÖ† †ú•¬Â¢ånü1Ñ©q÷ÝÌ3ø”tuáAƒ*ÌŠÁœP Ý÷öéµ¶>ã”´+šAsÏ`nq]Æ0î{Tˆ ¼ÊEºúhÈØT-»3â’|ÐÔ•r¨Å›SÊæ´£ïZÊygt×qo*å½9‚uš„CP¶1Å=¿3oPl»{úÞÈ ïšôD@+ÃAS±ä'›²s÷t'æÍ²øœº‘òÕ”_¯_ç7›h†ŒÏò.¤§%g—acXVœž†º†±!½FuÆ +jNAÐÇ]¿*ÿ$>ÕqñHWž3bs%ôžŠ +èä”ߤÇ}FMr^Õ¹úºóÈæÆÏ›ãÂKË:f&Åy„•™Yö¥œ—^»S0H—¬yy¨ê“¥ÇUÃì’æä˜å§Õo½ªû63Å8—ƒ9/xTl>çúpÍÕ'ß%gÅ•ËÏZ¾IŽpÎä\É>°ÀÛøm@y\Rµ>Þz09˾YTº9.(Îù5¢·ÀãPê|X#>goLµ^~ÝðEjZRžöj•áGmßm>‘cÖþ=ø ¯Q™sëE¨CÞè¿_òQðæÙ÷‘IæeÄ©êX}Åú)3«adNç ¨UÜ«hCÜâڥɦ;sœ+¤¯ïvÚÝÝ›rªÙ„ïúc‚ÎÀFÀ::2?êRv"ófyÖzó6âÐó Ÿ’A†”<2¬à•Ò·«jͯ«*%äW'¡1¯Y/é7ª Ñ®Z‹ñ€^•}»h¤B +^ÆÝyžf[Âi’¡6sšTtmí-õ€oYú°w5ÙÝŸ°k™ˆß¨Û²©Ùá—¢Sˆ­K‘ é乨’‡yeMI‡°œŒ*8¹EŸôX ÿAÜ)oNyµRÐ]3†¬D{O@ÁÌz”mÀ–2* âàNƒ4>£î ¼f°ôþ®îBÄÔ½·¤Q ÝÿùY>Kß­¬»÷ZÆm”’¡®ÞÜB÷ÝÜbÿKX‰>½°þÖ«Ö&:/Ýdý?8Døú0è¹…z©ˆN™‡ù.„Œúý°FJ¯iy4±ßh;µë¸3µa»õdyÆ"Û´éØà`=á×HQ¯Fœr)Ú[>G½²VÄ'kÎúm(}_Ú£âžÞ¸Õ,]›–þ½EcoaI­ÀC*.âÒñ³NuGÂ*©Ì:Ô[vI«k°îÓíqÓ~ òOÐÒ œÝC¸uÂ̼ð곪O“³œâõiÆÅŹ÷HëÀuÌ×Õ•õ*i§¢5í”7ìÌHÊV_3ŽlOðÏ{ŸµS^zoû§d/l¤kYJA"AåÖdãAï­“ÿ{ñaÙ_1›¸.a–m¼h?BÌ«Y”[#ÈÚ…åYÈÃñÉö#KOË>YÖð}x¸ýôñ‰÷¢·Ú/î¯=ÆWAƒŒ–¶‰+“óm?£NN1ê“´„Ö|š÷HZÞ®èŒDXÆ¢×I1Ÿ¬e{šqjkœqw©yq Õ1PùáæS uÝŸÁ|lòfÚ“Ó²rçõ’=>L¼a]Zæ_žê*ÿ;:Û ºr{‚ _J;ä-´¯d¢ŠµÉö_vgùehFªéLÛu|ÜwsôßG|–þ,í^;5'­HÏé)›E»:,éÔ‰ö"]ƒ{Ñ®Á_WŒ}Ð'<įI»;OBölIÙ5œµ1^1ü\}!zí%&ÃýϨH÷MÚK W·eœm'P7¯sh9è¼QD¸®³õÜ-,û0`û¬Ï¨"€­0ø7ëÓˆV&Dűg¢9go}Ï…€¬þÃËzT¼Í6K:=ù$î’¶­—¦\:yÜ©ìŒÛEeˆOŃÕ?™è>݃k@ÝjŽÿQã7ÉYè›`ÿ#x +z r†°‘Šª!K(ب_TO†»ú6çtœÕqe5ôH?d“;T´ëíêË/-Ð#†BT¯‹Ïq*Gµg>Gç,½™`ßý]ðSÔßs=íy@EúŸÑüövIÊ!ý’¦…ç-?-¾`•¤¼×‡Öm=šÕÙ.QÜÕeÈÇzæ£:CÊ&iÚžæ^Ä=âºô¿õJšòÀ½°VÆœ_GÜZnrùöŒ´<üÆÞ’±;·¤’Âge$çuŒ¬SÏCÏÒYóÊDûÿúOâ“âÆB¬ëzÚi¤FÉ;½sCî™WµcN æìò¸úÒïˆy‹&aSµí̉ŠÓi d–†Œ]^8Tm›Žå~Üqä…èô¿®>m¿L¯¡£^:/‰ªwíìó[G×}“šä_ÍyµbÔ£á¥FeW önC|ZÞ¼8Ôñfƒlå·NiSfVXl»]û™±þ›ÿ2ÛUþc!b¾‘t‹k²Y éÕË A“‰´NÎÖŸœkûiëUÍß Nn wìØ™gP§^AA?c.5<¡ôjEq'¯d}„ñ j5j)ÐÌ]+ï2Ôb b7+²ófizJÕšV¶d¬ê6ÛÓæ¤_ü.9aÐÁWq›^´8Ä=‘‚1¡‚Fàc?½Æ‘…[}-8•×r1¿^“vè…i—QžuiØú^„X¸zq¼ãÂíöƒ¿Gg4½p÷-Ô£`’A£÷€¼Ûw¡S!bá%ûÌ Õ™w^¯ü¼xnŒd¼×î§ÜFÈÕ]}{1Sïðá•5§ç%å¨]ݹµ<2$n·ÕR +2 +uF„û¢ðû·íœók“œ“ñ)eMÁ×eA=âz¯äîEzîQA“ ·åÖn;$5³‚â•1Ι¤CÅŒrO!n“šˆô=%c ífK6 e¼ò¶„UTº8Ä8²3¡n¤5“[®!¾ž"¢7s/6ò t‚¿<®ªZ“•æÂ#¼ôä.2Ö÷”Z0÷ôðþ\ endstream endobj 30 0 obj <>stream +X§&}õ}ƒC;vAóÆóè{„…þ#ðÞ&"Ì)ͺ¤_Á/ÔàpýHÄhDÃ]×ðpÿc2Òs ÊYp}\"¤3¿]Ò)ÈЄǠڋö>Oî'Á+3ne;âUÊ;rQrYOû™¾×ŠEÌ=)»ž›viÙÛó²őæïo8§yy=Ô ì”uš”ä™,x4æÔ²“sâ² Áy`ž’äŒø* +Þ±>Ê<¶öœq0=§¨Ë8dµÉYiyf^ј˜UÔ,óO§¦¤¿µŠ_4*š£)`@ÈQRÊgÖCvéJY-ñYieÊ*©HŒsNÀ¢™9Y îÔ‰÷iv¯ßï<{XÿéÚ£šãÃm‡ð9`mŸNFïMvTä½SÞ×eÌZÅUY+½îÌ+Em¿üœ²í©ºï!3ýDúºoà®.=êÔ 7ðÌÏÞ¢R¸¿(aïEåz­Šp[Œ¸ûÆ3Ìu{ó>Í8”m[c-?,¿hý.úTð‹ï.ë$4÷¤=ZÉÔXzþÎ Äyëá·ô >E箵󗬃}±ó‹(¿Šƒø$ p›»§qêxô½ÙøŒ´"z¶6^÷}ìNå×û~:\Bïu@½×Ÿfýןa4Ÿúï!~“iwJ|uk„s +4ð*Ù?ã2)ÓÞÞÄßwêõ  *˜˜OÒ¸TˆH;0óR|®ò Ü)ªË…,(=6î¾~"Hç•p/¦à"2æd\Ü©þ{r†W s#Â|*ŸŒõ>ÂÕ’çаA›ò*™ oXGA—U9øy²xÊ¥—ÔªV +IX*9äµÝyЂnN‹æÙZ€øéýWð¬î›D˜æNà1˜[Ô«—aþ¾»q·I¿9/.+ĺoçéׂåf^Ä»½wü*Â+jÎ…{Æ]FŎͬÆüƒÃdòú’±?UËÈZ‚ì„“u‰ kµä¢¾kÓŽRXìy¸·vmŠZ´Ü&BZš Eù@Wxìý|ÔÜ‹˜ûèõæÂ¢VMF%Œ¬S\¦¢*µ 3 ¦ž¬KÍÀ<â1(¡ÞDô4Ì+mÝšaž[…%½ïÉ©ånMHKÒsjÐk¨I𛽠°6çg_Ý/ýjùyñû/ê¾@iî°Ëj³´Ž¹ŒR:§ ^5›^ߨ I™¹€´m8êÁ’¦÷Á̉Jq§I¾=¥¨ÛžWÐûÏ6Fj¿Úm8ŒZ%MûaSj–¡vaiÖÌoSuf§+¾Œ}˜|Óø9ž +È; ¨³ «0§¼ëïB­]²´“_¾8TüQbªzƒ_Ê9yZ#]²†ŒSÍ…Úz”‹™ú©°¨ó2ΡnæÂ#iÈôŠ\ÄÔCAÍB&5fmê¶ä¸¼:;­íĮ̀š ¿Š + ²nY3â5©ií‚ñᥭ:&b·è€9xYë|z¶í^þ†ûÕˆOTGÐ÷¦CC)oO_ÆÛ7ã¹3EøûïC¦â|J&å•¶díâê t™ˆ`Ï- +¼žˆ¼«§;{ zã^X΢üü*ÜǾ²6íGDM¸U’tr®fœz%2‚–Òë}ô½Cµ˜ðˆ›0—°šô+Ùjw¬m¿ A½tßN4‚D@¯Ì‚`1­&`‘q”·“!Ðû`ÏM*jìF}ò6Ì+i$|ÂꬃW²5Óq|sŽs‹˜úñ•”€ï!#7¦±Ð=pâ+`«~*f¹™õ=ÏC­ÒkydÔ`ÂÂrÆÞ¢¡ ÆA sн¿Ôó^ÏØ[Ôªö—T +¨[Ùâû$ÔJ90÷$J>RAÞ!÷›¯S11· ’£VõеæÛÂbï“üRÏ#`¹=ðªýÅþ×Àúµ´ +*¢×åèk‰šzè=h@ÔrBž é”{‹&È#:=ð–,ã–ÔÒëÐyà»|4t(ãåoÍ´CÝÒúZwlâš…!æ¡Ì¬Ž³=˜ó‰QWë/‰™ê¯V__þ$>ÞrÔ’>gùuø­ Šò› ð2&lÒê9îÅÄ\牌SPBAó£sÜ˯Zi=€Ùº 01êÖpw&ZDÿaýUõ·¸CÔ” ¨ñÉÖÃÙyÆÙ<½G/¨•­:ˆÏójr>5s‹ªã-ô¯¯Só¬ q«¢sóµ qÀ|O´Ç +vžÎ¸^ygÖ.©§ïI"n% æézÊ%v–¶ìÇ$ocâ¶ý¨‚»S +ɰ°1ãf^Î8e¸[ÃNͨ[3SÚŽô¬¨ ÷·ŸÍ‡À&j!Aï{XÐé·m¢²ÄŒŽI¸Ÿb^£:>ɽ”ç]¥<q!¤‘£nQmb¶õèîTóA +®™ð5¨KË%ü +æÖãQ#´ì/hû K2KÖc6‚V‚?™Íôšö¼ +aƒ9„qˆ@þõËÚ€Ç: + jE~¹÷í¾K¯Ï":ݯKjåÛE…àí¢œ—u¶Ü«þrw®éŒEÜÎ)IÙTlÒ;ð0êóõi»¢)iWwîÌIkwfÛOg}í®Ç¤Ú†l‰žáÀwÔŠ¡ µ§îWñ€‰D$SÃjQÖ-®Â|JN>fèÞ_Ö©  jȘ”‰/ ûÉðm;½íÂAû©…®ÁÂJßë·k}c…eC?Õ(°JHþÿý %éýÂQSß?V,÷ñ€ ŽJÚrQ>d~õêXçñÄ<¿ñÊÚ׬ìs(½ïa¡ïµÐÿŠˆ»‰¨ZŽ…¥hˆS› : ‹Ý÷ɈÑLÁø€w<"cZíÎlÝ!r'd©t˜ Ðt]¡7úó1­*2¨á31 G1‰€¼ã-Ì äø" æÓu˜ƒßSXЙö—Í7ɨN—r±.îNvü̯¡FÔ_EÖÁ¯Àr6éîº^ð÷ÝÙ š»!7·¯ wNÌŠjèýéO™¨ ²¾Ã¨F%õ); k™yI-á± »è5›ð«ŽCГ.+$T€u5ecEÞÝCæ—cN1å“u¤Ý‚ú§šc>—ü+2¯–î/éû~]Ò›ÁÏq—Šw‹b“Œcq§Š“ +@mÙd ¤ËÒs >+ø»¯eüÒíÉö#›£õ_&fÚâ>x{FÕ¸;­¬¡€1öc–»{Q“ €dm¸_Þ†Ðë½sWƧâ'l’:ÈòùAKÑlÔCŽæ_MyÙEÔÌÞ’Œ—_Öê³P+ˆ¿çF~±o¨°¤Õe½¢Z, g`~¥0‘‰ÿϲR LÙ¹0Þðåʸº5 ãž´ÀG,–Œ³§7í¸ñ$ë¾1>Ó“ôêD«vUËꜴŒ¼B€²ƒ ë»Ñ€eY®‘‘^ZÿÉ :aã^B}jYa©ç1“ó3a^eÆÏ+M»9Eh”[ŽGèýa×' «½Cù…®ëy¨Û½Õž¡ÜŠÖ”ƒkG ûgè5Q˜/2$ceg¨€úD-É¥…°Røë¢Jù–5ºý˜FM×lÆ%(Ýšëø÷ÊZè{(7”DH¯ÆBÝ·©…žÇÔBßó \7ÖH‘€šGDŒ&¨eMxp›tyú3À÷'ÜjVÚ£fþh÷ÁS0ÈB)Èa…`Wo!ÜÕ_ˆ»ö£Zu.¬äÒû‚IÐxÜ{íNn¡û^~Éþ¨Scð5ð!Q!ª‘Ók܈[ ï¡æ"Ýwó‘þgù åZÁoé%½½Jï_½âVÌ-¬ÍÚxE¤«Ë„¸¯?JÚM²”ˤHXµ Ô¥æäaÌɰR”òHË#à=£¢š}_ÿ=ʧâÅgx—vgW!‹[«ø´&b +N¼üý֎äܶê:ß­…B†È…õY;ãL|¦óøÂ³ò¿nÜû šXôÝ£ü +×™u‰j ˆ‰€|AÚ¿ûNÖ;ø"5 ;sZÖ^·vT~ì¬û†ðj”h€Öo%ñé §†õ©Ø».IÝ®WѶí•7mΊËö`l÷ R~%‹ h¤…˜ZB×ÿö´àÒæŒð +ä‘ÒŒMV ¾M`øzÔ©b’>K}o÷?¡b=÷ 7êÁÛ•èÍê8§hñEÛáBØÜKD”¼ýe¥¤°¨½¥ïM/iTô}h,¨•C†¿–‹ÍÀ‘×@«G©Åq’~f< +ëâAUæ u[sÒÜ}í.ê»9ŠúîÒ98ë3iQ¸.,¢7àƒÉ°r–Å‚†°ð-+êÀ"=Õ*RAik|xܧä’1ðS»¸~}ZQ“ñôß%Bƒ#ôÚ[a¥´°d¹[XîºCF¼·‹¦Ø ZÒ»|ñÚ(¶ÜÜth¹»n ‹ É;÷"ÂÆ½°¸}g–sn2Ñ? ¯~ª¥…¬ñˆkS ;[ÌS»S¬Ó¹ ¤µÑ*a¾8$ä,tlj…Íý™€Nž/(Ðkãô¾—˜ÁD¯çRÀ²˜[/ÍÚU­ˆ[Õøt"<¨@6c’^Y+xj#ýün7J²6U{Ú.¶Uqè=ÿD@Å£ÀCè, =)'#ZEaIoÚ[6ö‘1½lŒz•8d=ŸA sÕ‡t +è¹jô-êêCAÿÖÆØÇ—‡Ú¾ßmûø¹‰ðä)‡Š³=-)KÏ÷u¥­] +Ô¥‚|)k‹CXh>˜™WåœFÍ~ÄÔµð²þÐΤ¸õ˜u¹ QW€Ý©…˜”ñ¹ ë‘5­ŽËJâVu3}ÿôÈ›1'ò9·s[ÛDU¸]R[ŽÎ‡µ2Ì-k ï3Q¸>§N˜ó÷ PÁžÛùˆùÚ^L%K»Ø—é=šÀ=Lº¾¿K7í}¼F3P˜óUTÈlÉAîB]½ÙPïm$xs ŽÑ®›(dXºɘB²8^ÿíæ¤ž›t<õ§ý÷\©`×pÕ ø}½ùeÐ\à²|T¯£Ÿ_ÁBæž”÷ õ=Ä€AÀŸúè,$ÍIã\ÊÆ¼„z$oŒ]ÿ\6¾ê`,4¤ÂÒ6"(nÄè|Õ¨r1ó`Ê/kO€y¯½†þ„Þ4h6̃¶Pa9;5'*IL +/¦­Ò*˜—Þ¿»„åéYî¹äŒàîTµ'&ÄWvF¹'âc¼Ó{aVEB@nceÒÚ¬SZ 5ÃØ_Ъèu£ŒGÃI»µôsN"ÊeSn ð(;éïKÀïMÛÄUˆ[Ѿ;/©X—­Š.íNsÏã.~Yj^X–´‹*·§…—3FîÒ+îÙÕ‘ŽŸ’ ?YÐò”M\»ç7hö¼&é—3·¯¼¿9&¬K; ²Œ]ÏÙó›MÿX4_»¨†^‘1é}sÐCW3zfîU쇕‚ÿ zúxáïž –@¿Ô悲vÜ-®Áœ‚êä çbU4æ×_ÁëÀà«>ÈÀAêâ—S~á甡y0ê)ðúž(êÖ^ù ø¨èýŒ³åäßKýz9æé2áP¯V” ë5À``uô3T‘> d{-÷ËZiÞÅ&#d]ðdQSÚÝyf×Î8 È;sàYô½0ðšv< `BŽ uwoU£§Ç9 ž³9!8¿;Æ;ó—M¹w{ÂtR2Ü÷˜Z4ß b2ÎÞ’°ù-¼r~~yÎ'ª)€f“‹*éþ²Þ¼·Üý8è ¼åAÓs‹kèuœ°´=y)Y < "îìîÆ#ðxM_XÖéUTXÊÀýÒö”SÞ” ×îÐíy"Ús/ _'B +7¡>ÖUÔ£We½w¦ÒÁW[À1ôVn±ç µ`ìÎz¤-xH- ¢Z9½/‡ öÝÇêß[¾>“_ï{SX麻Ó¨àÿÚ1Ÿ¸ñŠªˆ€¸ó‰@³êvíè¾M†ÓAЮ°’— ‰ÓìSkCßoŽ0^æZ}Æ:’™—dfù—Òð‰)Ω×?¬5}±ú´öÊÍ+¥<’Ü%o"!?dí‚«ˆ]TŠ»¤u”GÑž™•פçu,Ämá^£±©Z3sÒÊøý܇°$c•¤fyÓÜÓ»Sì“»3òŠõ1áÅÍ1ÖѬs!mã^Ì@]gÂÒiÎσÒ÷COj>Ù‡ŸwèyˆSE?Àò†´u&1Ûv÷ª’ó¢²ø¤¤8ïÒ ßB̓>ãNÈ.i}jšw>9Áú%5Í:A¸EUûQ%äSµ²Õ*Q§²=9#*Fí’ª=`{Ò-©Ýo9´ò¢á³ì”´‚t¤ ÛȾïüéרވ9„•陎£È|ó¡·Ù÷¢–›Tèïð¡.Ïî¼á\†ÏXù%¹¤•1H¿¸±ó®$¦yÈ€A“¥÷‰C6ÉÓâ Çx@ÅÆýš„­ýxÖοJºdt祿ZÁÖ´´,ãä_%ü<È<‚²ý’óÊ[·´XØ[#£ŸE¥×¥ó‹z]¾¿çQÑë •|Ö_ è}7¤Ç¨6L»ÀG +v>"ç`þßFålÜ)(‹Ï0O¥Ý¬ …¨‚_ ï—ÁuæÂ– +z µ æb:  3‹¤) ó§÷І kÀ¸PaÚ‡ô]ùE‰›É€ šð‹êQx/؆Èô*,Ü{¼äF.¦äåc +þ¯KjEÚ-mHKoÛ”-«¢Ëˆ»wñuõìÌJkÖ†™?’!Ÿ~¦sWzž_² ™÷iøi›ªm}\^–N,ÇP^%35û€¹8— ¿4ç’5Ñ{Ls1Ë-"f¹I¯KzžæaÌI¯†‹¹5ì´]T¾5Övhu¸ãÐÊëÎÉiÖYúþ2ÐËɰAóî9úy\½ßƒs61É=ºÝþÙÚöáĤàâú+æáÔ$çLjZ^¹9Â=µü¬ùóÈ­Ê?­?mø,5Í=K?³žpèK/GÒÓ¼‹¸K\“…ºÎXe5;cü³ôóЉqiñÆKÞ±Ôœ¬jkŒnõ)ó@bBpŽ^›MBýo¼ìø>ö°éÓ…Ç_o¾bþˆÌñ‹0¿dc¼ãÈÚHÇá”UP”±s/#AI|RpakTt>t¿éïñ1áeÒ¡jÂRÔÊ8‘™iý19Ñv(3Å8N8øW1›¸rg‚wvù)ãû쬲iãUÓ7CµŸfgØç‡¤6;Ç9‡Ìs/eçWwÞðÏ sšVÔªi%FfFÕ™U5m¿Âû±~ÞxÝòíÖhëÁ”•u6íä^AÜôÚ•¤ôœAz…•ô31{ô³8>½Œ¾„ØeÍy¿^Ž»•ù œAû5íQȼ 8k^…ÏTœkÀÜjb7J—YŸ“U"NeæT´¤gyãôÚƒMP¼6Â8²1Ê9‡\’ž—¥fDWH»¼á×€’µ/rÍöhçáQö1Ä*­+„]È”WÍGæeÈœ°í¾áß| Ú7-º’™•”§§ÕMÉ)M æPw 6eóθàìöÖ±Œ•{1T0‘yI%æT¶RÀŸÔÐJÓÀ)—š…zt„]^/¸š²q¯Ðçy§÷œãIýÛˆœYð«XpBú^æ•Ô%íÜ¢µIÆ/§”ùë¢ip/¬â>Q=Qpð°¬3ãWïÂØ¬¾æÿ²ð€spù‰àØÊSéYWOÓGë¯Ú̃Þç!ËdA?ó æäïN‹‹£Ã¢S ¯9Ç33’¨Æî˜à,åSsþ± ÓðþóòZšÒƒqZLi›Y½üB~)5§çnMhš·'$W!_Þìüiw¢õ`ÒÚt01Ûy‚þúθº1°ôOþnÖ¸ +úwjù!ëûÄ(ïäæKÆÁ•§ßn¿œÙ’]ÚU•­¿œ Ýlý$|½é£­W¼_¶FDç—_K.Ùûjþ´=Â;Øäµ»SüóÐççÖ_vÞ|Å>ÛžÙ™\ >hþÚÝßð—$h=é”ÖÑ}¶6Ôy€îÅG_¯jùló ã§œ[Þ–‡}~6='*&½òVÒ§belŠ +ò-½¦”êU„GÑVˆé´À¶’,ÔÊ&­LÌq.®7¿óˆÝiù"þŠ{|åIÛWËOZ¾X~ÜúÍö+æ±èÖ/rCŸ4oŽª«·9ßû[?]|Ìüس±Kégç+ðÿÔ”´lý ÿlrŽÞ[e2PA +f@ ‡w'GÀ‰I`¡ÎC¯GÓsbèAE-jÓt`ô=ÎwÏ&0~öÞªù0p³æƒô$ç­ñø>ꕃŽ4ˆÓ NΫš×_óN„Ûþ¼Þð¡ÍTù‡QÑåßDnÖ|˜!6ÞÕ.‹ÚH/§(̾:Ê<â¹[ýçèýºOvF?Å'¸gég»È Nšv«;SòŠÔGrJRJÿ‘ŧ"÷Ú?_zÂø~ù¥øêЋ—¸.9Í<•µs‹IŸ¨¥÷ܾbü¸ò˜yhë5ïrb‚} +±)š@û«S3Òr¨ý“ñÖÏ;ÃŒCkÏ;¾ Ýjü›§·þo«OeçVž¨..ÜçZ~À9´òshñ.ãÛõg‚ã ÷ßn qí ÏíB®ÈοLÈÊvßH¯lóO®>oÿ.ò¸öÓ)ó¥ßMéJ~ºÛòÍÚóΣIèIðƒ «C¼c«/¸?-<¨ÿxãYÅ_C·.üçÚóæc‰imÇú¨²*cÕv$fä5k/y'h&\ÖüMfœy2;Á:½p¯ò/k/™?¯½œÝ%Æ…—6‡š¿Þný!1Öv81Ñy$ü¤ãÀ´ñêoןµÛóèDt--?¯ÿ|ýeÓ7»cŒã»ãÌcqèëÄ„èRrRP´ùºóHvVÏÎZ{4;S†öåçâ3‹D¿Äî³¾ ßjúhùqÛWñ޹̴¤bk˜ó áTs°w*xÇôß° ×§ Ö:!Ï]&} +vÖ)©OÛ ·Ùµ¾ñiÃáÛµ‰Ülü4z·åïÑ»­_yÌ:¸c¶;*8Ÿ‘U$ßHж^r~ÚzÉ:¹W÷WðÛ¿þ²1Ä;Ax Ò”MݶM?ï \–šeŸÞiý~éIûÁ؃æÏ½×ËßSœúo𶇸'—5¾ö¢í;ÿ`Í_úÒß;ôÿºÞò·Õgœ£áücSº¦?NëjþÝÙÝða|&>%¸¸3Â>埆køyuˆûóæañüª%‡´ak„sb›ö¸IÖ‰¥§Í_ºz+ÿ¸^÷ÁÒSÆÁùî†/‚·:Oâv Œ£¼ný5ûç胖Ï#7ê? Ö~˜ç] œòæèãÖ3É1ybïïßT7-=c6óކo7|lÕýv\|î_b7ë>ò\o8ð˜wî+C-Ç÷"ÜÚݱúï¶Gš¿ÝiÚªùÄÑ}ùßWŸÖ†ÚDU9Èói—†µkSµ¬ ‹ÎÅîµµú¤ýÛ¥‡Ÿ9º®¾¨úóÆãPèó§}éOñqöUÜ+§ÿVK'êT¤¬Ç6^Ö¾x¯ü}ÿà•÷6‡Û{oלW’~49#.ÛxÑüå⣊Ý×.¿÷JüÓ¿Üa~õÿ).ÿÛ3~ñ{ ÷˜‡×žóŽ[>]oþhùë»À`Ë'SÚ‹ÿ6,8ñ¿n·LŒÉ*ãªÚí1eÙòSîk/:ð^«þ£³»ê Ú¿y!<ù›9MÙÇ©—²¢äyéò3ÁÑØCÎÁÐ`ã_6ÕþmùNÕG[Û~ØzÎ<ºQÿ×ĸ™µö¶Þ(Ê·~è/ù÷@wñ¿{Jß ö•¼·ø¨áÓI}ɼǗËÎDo·|ºö¬åë-_¯>kù2p«éc»©ò÷ÁÁº¿m³N¬gŸÌŒ‰Šv¡6·†Ø?­?ëø>z·î£ ð{WÉl óÎìÎê[ӚƸKá³eÆÎ¹¸~À9ÿÔç÷ià´íaî)oOíŸÇ%E¿â^øÍ3Î…ß¼V–þ>òwleHp*p³ùoÉIá¥ø8ïLz’þÛ/æŒç~k·”üÑ7Pû— í…÷@“+›–»=,)ŠI®¬ZzÂ>‘šTÕm¿]^zÒúåÒ=ÐÜ.èÏÁꣿ€ÏóŸ™1yÓÆ¸YxÈ?¾6"-ÉØ{z6Fdåžk5ý—Qá…½ÓþËÿâŸøðÿYx\wjs¤æÀœîÄß.ÿ ;Ï<›žíîi>˜žbžÀí‚2Ò©å&§¤¥Y»^˜²ëD‘{Â#Ñ»Œo¢wêþ¬ú`ùQó·Ùiq©íZÝwÕ?üþ¿„«Ž‘n“>ò¤óä¤ñ⬽ªùtóeõ'Ñ[Åï-?¬ù±J*ïòŽýg|˜SEonŒrO,=iþÒ{ýê<—?o¼ô;GwÕŸÇþ÷µÚÿmã9ëtøaã§SÚËÿúFVô›±ÿ£¯~K³}ÿgõ¬»ÜœëPçœs³gÎîDPQº»$»»EA@A[LJÂÖíyÞÏ'Žï?ò½ýüÀáŽmÇÍÅu¯ò¾9OjÒÍ)^æ)1òÖ2øæ8?þ>"Ü墚—êijz¹í­«Îx1[žòH-Ly8ÉL¸;NŒº¦äe¾èÂ'º´CCȱì\gÀrÜXªJs2wA=T츇#hÿ+ ¨{úvL¨¶´ÕFŽÞ—±ò~ 0õÀ>o6ßl4|ÐUd=× +3œôM(_9ön©¢ðœý¶»Þ¶!rÜf'껾þMßû.çþ¼³ÔúÚ6ÌÎ5õRâV›K=̃ä(ó0.Ô<„ð5ôyîôB?ë[³ÞÍVÆ;Í”'?]m!®´âý ý¸à͸çräÍJ#ä½¶*÷¥‚ŸãÒ†ˆ¼6@Œ¹gèG†›† ‘‹5`—iaÆ£ fÒ½)aʳ¹ªÔçËõ©¯,’"_ ?Úiˆá´/gà ¦-×ÒŠSÍ×d=øàÕ8#òÎ 5ä7ãëÕ v›3%9ËØõÜét¯¯Às½-Ç ÐZWCOô‹™ò†Ñ’¨= â­€-6À]·Û‘Þ+õ…Ÿ6ÚàÞ@¾ôÔˆ3_ÙÒÿÜmv|3à#–šŠÝgÅà‹ Ð½¸‹”–~… ÷wúJ|–a®Kõ€§A‡.Ôƒ?ωó^m4ºŸkF{Ñw%7ç¶ê¾ÓGŠŸ¼ÙèÀúÍ×!>+¹Yªó_­µ ¾N òÞ’ã>_™¯|ï &BÊHx,!D\ŸfÇß[¨Ì~±Ò qµI‹ýOfЩS5IïÛÑ~W´µîfI9q­“©æ½!$<Á%>RÐcïIðA·wú +w†r?[G‘QgÚrñ¿ËîNWæ{óç 7ü޾)õ¹¾.Íi­üZß÷T‰ó<å|ˆû¢ {¦a•*0Q»}°ÆN˜çvg¡ûjk.àË‹CW:‘ü ×…ÆÏÓBàE¾nµd¹ì´ç}\g}X®/øvªà‘O4Bš}‚™kåB ƒØàí>˜ÇjsÞÛùʬÚò„Gó‰U¤ì~Ø×•¦â/Kµ„À™r¸ëb-ìíjCѧÕf´÷ ?Ï%Û×ùÂ=Áû@Æ)ZiGþqƒþ’qþ’³Ã¯KI‘7õu°O“•à·ÐØÏ×K|\.ÚF)i2Vʽ1bø%3ê†V˜xw‚qkŒzw««À‹ ¸…þxeNPýïŸn•Âý6» ª³ŸËèIwzaW¦ÊÒŸ²3œò‚>^šæf}2  ÂU¢Œ—³åYæÊÓ_ôbC¯Ûu¹½èã…õÎÔ7}Ü”=ägó06Ê8€´¥È À†ÇJSöK7öÎÊ÷r;Ì㢊åÔŒ‹{ÚŽKú`)n£ñc£­ø³±ñc§·ôûb̵åµîsðÚnú.ø7@gCv%¤TC?6Ì2Œ >ÿÚo5&þÏ &aµ#ýÃ$+ÁÙ2ƒ™†˜¨€ÅFè§µ¨»¡»Ôg«é#¤¼ÂÇ»^ ŽwŒ’5üð[ÚòèG 5¯Æˆ¿îÍ•…?1wÇ{:Ó|­ØÄµ>°«c‚˜î²Å2'ëa†‰ 7û±QW'‰÷#%~ŽIt¤´<î)ñíµí^Jª®ñ]Q–úXYóÐÔSäkì+õ]iÊ»Ò~»ÑQôu¹æ½ÒRä{¨lRn¾¡å¿Ü”ýJß’ýf˜sWœã}y‚“à܈yÖ„Šq2<³d]UÁ«¹ÊÌãô¸{5ùWiñ^fëò]ëpqï0Q_¯ç©]‚K<‘R€Üb•B}VZ¢Ί‚o©ù÷׺Š|ëÐI/yù¿OÕ`bÌÔØ‡ÜÈÿlìÎù°Ú’öIBú~Cß’á~¨¢€×;ŠýVksÞîôÂ"6º £,ˆŸÛíàw†>„Ï|=ô3éÛ•Ú‚pçÃIv  -逎]¨Lz¶\þÂØ óùõÙéÂ09öãz6¦—s· úýÒ6ôê 6üZs¡ßÕQ¢ÿ-ÓH‘»0à!+ûËM››¾ÝWâ½Ü”嬫ÍtZ¨Ïy9S‘é2Ɉ{0ÍI|nèFü¬( +»ÛX è/9YW ~ è–Óà¹ô­ùïgÄ©O{?nÈ©Ö;s=ûiÏw0©ÿYUíɉi&@›€Ìp(+ :V”[Ç +¾ÍÕ‚?LÕ 'y_v%tðv/öçf{¡§¹¯ÔÏ<ˆ X<š‚“ôh½d!'Msbîítš)i›Èà½däÿ›§ý–¶¬´¦¾>Q1K@~[j/õ\ïBÈ9ÙNã´Ô«uùï&!Óè8U]Ú'Z²Ûµµb䌸ØcŒ’p[ÅKpÚj…¸xÝîÅ„îKñ {cØ]]æÛ•¶|o›”W¼ÕC‹ÞêAùlö~Ûì*||Iº2ëëzWIh5é]1þ•q˜­d»HiIweÌ„{ãô¤'C¤”WÃŒ …ÎÒ˜¯7_?µÀÞþža”ì÷üœ¾=ûõjc‚ÓJ}â«Ív cÈIéä,¿›i~¯/Žò󠔤Æ>+p}_Á +¸5Nùq×Ð ö±Ë±±Ô¨§šò,·¿uümÅFÍW¦9-Õ弑s“#ß]l+ +yºÐVŠr?NÓQöQTœàÇ6Ò*) ž­ÉxÝŒ ¾Õ† ´5ŒŽ›A€|ûl&¥(0i¶‰¢°­Þ‚Ï õ©.óõ¯“tèbòçRGÑwû8={w˜”´ÓUðÙÜv·I ß¬@¶]ê* +°H¸ø=y`»Ÿ›¹P‡ú2ÎNwêFE\Ÿ/Ï}¹?FŒùg®Œv6#âìJø0ã0¶Þ ZiÍ}³\—öLÍËz2F»Ù¾¬o€y‡‰IqÁë6räv'åWÂçò0>ô–¶"óù\Màû³ô­¥~ãøÉ4aè…{ÛG©Y»£ôœÕ&˜«®<ë™’“þd‚žöPJÍxµÞˆþe/6áÎUB¿Î‰r^jÉtåi-½°ov9%}¶©4X×Tp¨b•î ¡ƒõ=pïíQbŠUÅ(Ö ¦ù™gÙÏÖ›^Qú³9qæÓ 5i±±Äs³ åcć[Ñ?ÍýèàÝ!JÁ±’u¨E‚"¿G@® +þw¹¼nš”c2ï¾ ·7‰8˜ÄF)ˆÉv)5]׈Tó>íMpIšª¼÷ƒøÀkjAØÝ¾´W2~Øí™²äG†v¤¿ +ÐA^²ÛMC*ãÏt:CNaãmR˜ÿvGòÛyQÀõ¶Ì¿5\"àásgk +Þî #çëÀ¯Tœ¤{2Ư;¸w; þg«“\–s߬öâŰŸG詞G“\â”’plª]ZaèKóØîÌq[¨N~²ÑVðÕ0ÈN¯AÄ×}£#û‹q Ðg«;×]Wòb¡½Ðo÷X[ þ¬ïDîôcÃ-@¶Ø“3 C¨PEEžÛ'㠀ü=-×&£eï)ÙÅ[ÀYnuB\̓Åß~z¿ÔRà¡k-ø:Óš¶9‚ɰãßjEi/ P_Ë`qÈž w%Jz0ÍO}4ÅO}2Áze€†«ªrýyþ7׉pó0T°“Ÿh*ò߬ušÊ:R–‘~/pÙGZ6á`º¶ödFT¶ÚUì«¥5”òxFqg«)ÐZ¸—MZ†ÙèÅ„ië3^lõ?Ÿß§êåÇî %Á.açÊ˲ßO0’>í2±ûJfÉÆ@» ÈÌv ölC˜°CIIྌÔ.6n»ÿ¼¯2àpŠ…ÐT¥¼¥…]]jÊx?U™ûeŒ“üfµ%ïó±’^<õò¢Ÿå"XÊ©RHßhÉ¿T›ôTÅ »;Ƹ¿Õ“ë¾?^º?NJ[ïÇE +á÷'«ó"ö¦hÚº¼”ˆ§2~ܻŦÌËÍ©oíRÔ¯¹Vˆ¯„÷Â6I„üêÓ‹÷»)g?\ëÌû´5\ä³5PôÝ:†Œ0âsù¸ÑMN;R‹ùæqZæJK¡çzG‘×/Áy„q×"E„íëøìÙn|na¤ëýÅî¢_GZ¡MŠ5Ž ‡‘?×€,-ãF< ?>²ùd 4¸õÄÔ‡Ž¶Oq»"üîr8C-<Ö‘áû³¤l›† +vh¸¸nräÓùš # mŸäa”ÌÂàúëˆ`‡¼ð§ERà÷Ï›ýß›âþÃÄ0’ÿíLWÕt6W!>ž.Ã[ÇH &€‹Ú'Ä5CŸ,ˆŠ½†*0 ²?AË>QSò ƒ0¯í¸iŒ•}þÝ‹‚œ½Õ[èeé/þ¾Ö’óig óóÑ4:qONÎ<že£ÌŒ¬­AFÂö?w®ùðÝ?L=ŸÈGó/VÚ‹ýæÚ¾ ¸¨û}„d'C/7×"áäÍ7}ç%>cE?˜«Ny¿Ùö1ö•í˨ø_Ú¦‚ +Ü"AG,6&:‘cw`®vaomtSÇ«1>õ%‘7§„`ïc% ù{Ž>U“rí蘵.°ëjgÊëóµþÖÑ‹-ã„û¾7]ÁÞ¢¥Ì”g½%ÿº%eƽgE=iGy_‘0C͵{µ’"KÙ±Ï ½èØÝab"°×°“)vɂ݃x[ˆ˜}µ€º¯Ñ #Ì}'6 +ÈÑþ;m`S9&v_ŠÞê.ñ1ô—†š†p‘öq6ÌÑ®à"Ll”¾üm§§àËv_¾§EŽŠÚÓÒ`Àä!{Rt¹ݛÿC)ˆs¦†Ü‘2PþêXÅAÏTlJÕ>YÉjµÔ*%%luÀ¿èêrÝfš`¾køèÕnlÄßËe‚]).e£­äërSégÃ6¦À%[åØdó&Þ:ÃÆupÒ½y¹ßh”c]ãˆUS)2*Y°aTàj/Üס°²Àç­KHia®@•ˆ¨€½™ÊF£œ‡Ów]mÏ{¿Ù—ùv©-ù¥®!ùÓßKüŠ“yAå"ì*|êÉ\EÕZHÝSðJödl¨yˆ–´ÓG‰\é&†4ãžO3ßýu$S/?w­ ï»Ñ‚0t#-Cäd‡’WbÕp0‹@æü©ï¡Œ]le‚íãLØŠ‹²M2òlrbŠqb$E†Ùé͘ØÛjôãf+Þ·—gdd›‡¹ú.jŒV {¿Ñ2‹°+ýäØéÊ‚×Ê +È—Õ6l´}”ü£²¬£èÈí®|¯•–Œ×+íÐ/{rf§8_“æ2B‰}6ÁH¥âƒ¿/7 Ì$Æ sJ>ÖB¢î.7àsÿ]¨¨9¿_dzí @=7K#v¥ø”³zÑ‘Š¶Ð˜öv³ƒ‘d–ÕñV{˜ÉjAž ÀãOzq‘G©±O&X©ááÚfÜO^AÄêü{ÏŠ8{rÀå…& Ìg­ òÅ8ˆ±«©¥v5µ+cC,ãðyLrá€ö±C}w‡ ß–œæª£Ÿ9ÆðéG*1k¥“x@ßÍ^JÆ’ è5§Ä,%Ä™å¸X³ï˜e”Ø«;Lêº&ÓdÒ8JIÝè- 4  £“4èydã*d«î»Ý‹Š8Tñiºš"÷¥šü7ú¨—¡Ÿ}¬.£;T¬’ånd”ª"í•yŒ–y¬­¨8щ„)&ngþc±ì1U•ü~¡5Ëÿpš +û üÛî%WÛ~ªW֎ôQ ³^˜zŠvGÐû*ñ`¦Œì˜dxÏ?3¡;ÝP¯)~ìÝ Vôý nŒó\]ª›m¢8ö¼ÇÛyÝF(évy5Û: àuŒ–¢o-v%þº¡âGß_ïÎs5¢ÏŸÅ·KÙ…æ~Z¢¡‡ž +xóèõØO]K–×\k†Çæ8:zc”YíEåŸhÊŽ«Z-çQ ™ÆIø`ŽCÿ½"Ïóyúa| ¯0ø©¤’~¸*j6|²Õp½g”–ĘƱYV91ÿl‘Çqhh%síùŸ,“Ø8Ó>a_Y]¶;QI5 ór—š1>€Ut‘QJ5‚«†Ct##];áyOÚ¡ywGѰ§z1#ÂØÉLXnAüXD®ô¿™¤àœ+yVy9i["(Ô÷1âW;ˆ+Mdß6f„¾‰>SAü*È ½Ø‹Ì|0+ z˜:Ë2Lì¤ùZJà$ñfU€÷Ø“T·$‚"eêÛ|3!Ô®¬©Ýd€ß9R +ðºzð­(éávk¾›c„™¹Ö^–:+"x¬ÕÒüWª™Á†æ²TG_ÜÐ*Ì™–GN`I/f¨XWs‹ Ï2ÀÍ3ô#ýl#Ô´=9Ÿì˜jt(Å,»œ^l,pWòSžé[ùéë} 8}GyöZ=x»£¼ÖÄO^k`†í´s€µ‘¯zK Ÿ.ðÉ¿lƒÂ¢ÍžRߨ—c +—q8C§/Öô-Öt;4|ж1ÿËB3Ì È ‰%¾ÔTê±\›ÿz§æaé+ ¶ã3¤Lðn¿¬«bú¯7 Sö†êÈ{CbŒ±‹™¨e»~0åxÇ=X¬î1L H2fî¶ŒžaQpŠö§Ë'Ó|âžœS¼=€ Ùj+ú¼7JŒ=Qræ1^aSIÊ.Dúý… +rÄÑpKÍÑ„´ÝSüCßùnÅ€Oæ«ÚŽç«šŽæÊ…¶If¡u’š{4+ìkØ„“96Î2^²=Pà·Ò +v]ïynöábk`1ZàiÎ>þ³±‡Up$«Ú†E¨&B°©“µ/©Ä­w° g* +\M¸Ë.fOA‡L3 ÷%q +Qè³1vÈ=}WiÀÁTuù9Fv€€´ÔŒô\o'ÇïogºÙG Ó·‘~Mq¡Ÿ¦ØÐóµ„0]Úk¡üi®>ãÓR[®÷ñ¯âÏzÝäßkUýF)>s±§ä§E-âî/4JW*Û—™„MI鯩ڬ·ºÖì·»rtÌéb™àd±¢Î2Á+Þî%'ü£­ëü3Sßõ[[Ýh/ŽZhŽz»Ü•öÁ¢BÇ/²ë½ØÕnNòd%åG¥èa .ï¶0/ñ*6*øRQ ß…´/^ ÿ·¯A¯ßݽvä|û/З‡ˆñ߯Ë8yÎ;}Øè–¸Œ?+\†IEÍžjÇ~“5¾NTa?ó¯YX—6lÑ$ã¸&%&ô7.úBUFê_Ü”èkÔ˜ KÄÔ KßÞ€¢]ß]l€g¾¨C$>SK=¶z‰æ1LßIŒÐw~n÷sÓ:x 2Ù£‹Œ|Ý‚-y\ ^g&%_F…‡],ðù~~™Ÿvå{9óÛ× áÞƒ_;BÞ?ýÝ.´•f<^kc%š%ÂÒ]Y%sk\€Ðu‘~ÎX^h©Ìš®, f`^va ÷û°EO†I8·>LéËTÁÓzhÆ=h˜ÏE·çO@¯îß…½{y‘‘~sžÿZ]‹ü èå`‘ŽÛÓÑ&2×V⥨Êý´-¡h*økƒÌô1Nñ3»ôÕ´é® |T\„gcQÜfJèetdà•h÷Qa~×IÑþ×á¾-Ö c÷•t¬}š‰qh˘[„¸m):|[‚ð|Ó/ã2ßD ÔTQ}&4ïQv‰k>ÃE˜ñòí +44à¢ßgЇG÷@Áï^\¤Å‡>jÃ%¾“ð²õÝÈìý)Ü1ÍÅx6Hèi;RœcŠƒ>ÒòH¶)jöb{¡‡Jÿb¶ã=S÷-ÏM¼öùvæïsyá{…ÿó:51â°îË!ož_Hõú| r§2'öÚv9Á>Å'Ù¦Eôm 7o½õs±ì³1Œø¥mAz-uS´­Ø¢â7͈Ì[mxœ;P+÷9I×h)17"=>\rºyôx=ºu ôæá]Pn€Ç_£ü‚àß‹‚úÿ¬³…ŽilÆJo¦—¦)Îýd‰AÝ׉ÊMJ€KFÈñ»“ø¸}5jUrJw$̼õ +D^U&*LxÉJ¼]‘wp7×ßó–0?Êi”‘ðDÎK©ïŤü­çUÿï®°eŒâƇ*ì‘{žŸ}9?2æézïtärï.èã“Ç ×Oîƒn\û ôâÎmPˆëPN ×…&xê=µ(ËåXCɳké0Ý 6pn€0ÙÂÿ5XNv¯ÃäÜâCÓ®1³S.Ã"ƒ/„º½jÕ”äáÊññ¾ r}tõù-Èûã ЭkW@áZøtAœys®õU][ü~œ}6]Žþ¸ÔÊŽœ¬áø·QÈ.¬|Ø DRò…¬Ÿ?AIÞ?@~oÞ€^ß» úþô)(ôµ è›ó#Ѓ[WA—@ Ðý«W€ußy;;€s¼$eB\–Û°?ôýŒ8ýˆ=ÕÊ‹­ y6a‘Ï›q(§zü.=#ùr^ß…8ϯ  ¯o \o/PÜgwÇ3'Ð[`?ß½ úëÒ%Ðëû·Ï÷ÄËúkªá¹%CE˜Õ¨ø•~è×¹@”ôƒ’›íe&Œˆ nuèÂ;ä´øË¥¿~^( ñ!Ã@®/A_ž?}vzºíèÞÕË ·o^Ÿ'ä“ó•xø£Ù†‚OÆqTØúH¡·q ¹ÚVúu¹ç;*B¼ë¤?¬‚ƒo¡ãb/…²|¾€b>y8=}xpäúð>èíý{ 7n‚®]¾ø<÷ÅØ÷¯Ï.)„y~Gj>ód^T¾7Ã'iù4 ”ìÊÈ©k}„pUþk +òñ6"êb†—7ÈãñcЧ‡@/_‚Âß¿öý>èåÝ{ ×'OAnÞ]¾x ôx¿¤¯ FFäu þÇÆ bkÛTU¢ÝIf}„™ª¨+ýØÇ9W”¦Ý#¤„{rá—›+Èýé#Ð÷Π ×¯AÏëݹrôxWŸ€n]¹ +r{ôTú+è/ ;ÿ¦:÷íF/<àhŽŽùw“W~¼"륬ÜÕN–®‹2YUúa˜[ò¡Ÿp¯†eßÇDÿºÿíË…OÀ{¸5 ðÿÇG@×€³|ÔwÂ7PqxÈe|Rèí…x¨YV±<·÷•cß5ÑŠò‘ù7¨y+Ø´ÜËèÄKþî_.<¹{ôØÛWƒ>< úõÙ÷2>%ó^ªôõ¤ˆ¸Ü†ünŸ¢mjZ?Z[®(TvVgV—ùWúAȈ½ˆŒºPu!-ÈôååsÐWàêö ôãýkàÜ®{òýõó…_®—H‰ÁÚ0ÉΣœüO+}”8m!@Y…ÿ2UMÿ1UÏì`Á]ê ȧ•XÂctnîõ OP «;ÈçÝÐë‡@€Ïé +pæ§'@΀nÿuä|ë(àÕPIhüÍxÎGm &DßC‹Õ÷²u=ÂI%ݧ“t./κ^/¸U*¹ËH¿îùôÎéè PgžNAoÞƒÞ?v=»û䜗ó#'€;œ@¿¾¸ƒè™1WäÄ;Ó$+ߤd€WûÑAKmŸÍrJš~Œ›7ÝÍŠªf}¯Ä✠+â£/ýüâ +úñÆçñäþü9°Ç×Awþú ôî‘3èáí{ OAQ^>£=¿^.Ç?YnÅ…ïÊh9[Ãø_ýø¥V¬¯®…ÐÏÆ¼îdâ^Šà»àð° I¾?@ñ^^ ¨/ž wçç Û—¯€žÝ¸ìÇSз7® ·ï|qîúáBfð÷»Ãœ,»‚Qt¨ã³ùœý9.Á®fÁ7GIq“5Åï䵄¯•ÈÂÇÐà˩߾ƒ=>Xv=°üðê5‡Ï}zxó6è)°îOÏ\@/?¹:¿å‡ü…OŠz4]Cò[ëå¥Ç…Ve•x¹‹5ßI Ÿé ýl¡>C$†_ùüôù¹ÈûÕ3°¿¯ßpqôÀâÝë7þïú_3ôxñäúÜ”öób%$áR"îÆV&úÏŠ rމÙP7eådÃTuÕšTˆâ£ß +`9×qQ—b<Ü/DööÆ äáòtóÊ_ ç·nïû ôñÅsÐà,¿ù^ f¦Ý#Ò?,´—iê3g8ÉÃU1Ó{¤JÖE渶b)ÏÛIœbã:¹ø4"ç&: vŸš¿ßǪ‘Uu—ÌwµQ·FëY;²r¢ È|¶Ù*±yººbm²«èã%¶2û+i_:ÙLO1é\UŠ}^ã¹ÒsÎ…1…÷!Ñ9·iwñ‰ñwÉÉÎíh”×T +MßOŒ[ë*öÜÀ…›TåÌ…˜¡­".×S4ý5¥"dÒ½jDî Iµ8¶M\ÁERÞsŠ•Äg_‡„e\ñqó}xz¨å§ —Ï@ ^AW()àç-(¼·¦N˜¶ÔAÚãæ›d"¬q\„^èçEÈä‡eØc<¬û˜ù½•Ëv«$3ÞР˜'‰Aq—¿¿w½¸ÓùÀoo<@?¿|¿þ=ðbjXÊEHBÞ5.¼ðõ ùe©•lS•ÓLã\ˆ}’‹:R +ç*ª÷fÄBãTO=X]Ø_['$â] +22n{{_ +só… ¹½rÝ¿yý-ø +2 îD+ƹvq˜?FùÌ •žj†Y^W³5ʃœ¿Le¥æ‰²’|~ §jÄ WR½jéè—8hÑ£ÜÈÄ+ÉA‘ƒ<ýŒ¿j÷!èÞõ; . ”¸K˜d˜S¥,vu°’eV°JÌrZÖ¾VÀ=Z®=^·.U4l©8Hué—²‡ÓÉ¡¼m$_—A È™Y÷1ééw‹“Sî…~÷¿êóÑôËÛãÿób|Я+á?ü.@RS¯3J 'j)!úþ2„EZÅ´ÈÊI&9·pk„•5Ó„ú¢ë¢Ç®W‘å­e Ux˜&5úzœŸ÷µÌð«Èôø;©á×=ß¾}{çv9+.çQBlÂÝŒØø+4pá}ý¾“KðžªCýñ3Ÿ,u,Šj—yÀæìN ˆ&MUꢒ!kaW‘±ÙYW}õ¾îá Ê åEÆ_Žòó¿âùö(1Èû":'ùz%þ¦ŸG [è! ²2Ô¾šƒ±i¹Âecã6``6Çkék£5„¥nFäLÁ{X€øØA‚½YmmFlö·s·†¨–‰*ºU!f›äB¬Aʃ٦Å<Û\‹Òª«¬7MóÐ;rn±Q%$¬O–!ÖeˆåñJÜâ@BÓÆŽ˜mçůŒ¶‹Ö†{*ô#eKýõÈÕÞZøv/=æh’‡8ðe×”³v °EÊÛÇk+íòΓª¶fS.Äm+Ĭ-Yqµ‹ ïe/÷ÔNu5@Õƒ½Ew7ERÛ0"ª é`0ܪŠ!÷šP¨Wå©ëƒõD›¢¾rOQ_»§¬ìOóðZápVÈÞ›.ç¬õ3SÚɿֹùÛ£ˆåþŠe[UŠ¢£!o²µ1c¬¶)ZVS9.âùõÓðoT5éÒ†Ú¤n>Ï«G\1ÑWW¼>YI3+øhó$¶3ÆH[ë@|3Kˆiÿ,×Jfx”ÕaLøš” ä¦ôÕqüÊ 57gIZš²jÉXçVN­oE[t'Gðuª‰²ÜWS¨äZä„«šQäЕWØ´Õ ÖÙº¶ÝÙ†žƒùê¶3 ÎÒaÆ J²~Œ)o*ù,o¥…õ׳¢1™©·ØpøóNq}\3¿Ì¯¿JÐ\Væ^_&öoäü\•4 ÍÓÝʃÅÚž=¸æ`¹^r¸R3°§«¨=¿7aa#v”ŒÜ•aJŒÐ?ySÙ/e/t¾¯º(鬜í¯*šê¤†Íô³“Ç™½€î`]m¨ñ–òXu??cu¢ë˜rþ³(ýg¡¬âHMCm`"ôƒÄð­a^®Q&¦gJ[cgé: þ”è1@»*3]ú)wF8 æ{8™3CÃMÍi«(fªG\°"i`'ë+vUÒæ*JUópkòýx'8[oÒíÍ1Jw•´\›F@ݘ,+]”–—Nv—§·ˆb&šªdÍœPEom‰r¤«mÀ/Jè KCäÈ…~bÈR/Ú×®Ò2>f¹ùÃ0Œúù÷võؾ¶U~0WÛaSW••åT à vFI±òšÂoµ…Áwd<ìÞtÕ0FJ6IqQ†Qì/«Àê$-košƒ:Љ«,*n‰Càn¶Ez4×%ž.5ÊŽWêÆÌsÕmVmmÛ®¦ªÆ  ÃÌ“” «Šߟ-#/°±ÿ³]ÑuÞãöp–‰:š#@~/aóŽçÈùV1é@Mƒ/–±mJfÉþù°uaÝÿ¬–ñÿ]fSöT”¬ÕNÄ]C©—EÊ.=ÔV¶ï-T¶îLÑóËšC}Í轸ó¿ÖËÄ¿—¹üý9ZÉš$×c_G„éÄõÇóâºC]¹øtµª¨-Þ!pž§3,„CINß{lõå|<œa 7†iÕNÔÏÝQrÚ¡–…Ý_-+;Þw¬V4š5t¨¬!Ùue[²¿Xݹ5A['g³”¢3ÝyÏfÆ!GÇoödùïôjh…f:×㢩Lz¸Úžý~o +—l›D§ÎÑñÇ •-󃘴a”³YGé«Glrrúî$>qSŠM\@FïNQJŽ—øÕ§5R㬸ª‹älÇü½Äç['Ii*j¶]‹Û‘@¿/´$½5H¡§k\þ! o»Sœ’ƒùÊæý…Ú.‹šO0O’RwÇKlãÅ>†á/“ùŸMQ‹MÁE.w°s¶Ú™¹'ꚦ3]ã| m bèCû­uz¨Dtu…îÆFŠiˆa‘⣶úK¾ïôz;Æ1‘¿ø[G…þ«/-Šªgب?ÀÙý³%¸ŠœaW‘3÷¦é- &z£·(üï%qÓÑ\uƒmR€±Ó2 =%ß\ôÙtÁ&bTMİ6BŠÓv7"êVX¶¯â¡we(P«³”eSÒK÷ÔúÎd5³‘ü¬±$ÞË,ås, +Öª"¦X•èH›c’–„%Ë$1mCJÏXì&„šeæñBmÿyŸv‹œ‹Ø§¤š%¥ë]¹Ÿ #¹_lÓÄô™è×åvDØÑtMó¹ÜŸ’­ +VUEÏ3ŽcÂm +|âù|ÚMàïäuù®¶Ógù‚“¥òº?«<Þ‰Ž>Ó‘ +NçhÅú®"O»œù½XÛoâbwƹP›F,Ü—™•\PŸugó|ö¹Žî*pñçó Îgv[•¤Ô= 1ëHC+:›«j:™Ö=…MÚì‡~Ÿk(p3bOç8„óY0'ZJþñ,­ðü>ŸIJN?™/£ÿ½,e¥Q&6õX_¯ü”Ì>MƒïŒ‚¿™&ŠBudèÉ2•tºÆåLÈæ(5ýx¡¼Á¦á`€ÏB9îâd†O=8ð@M9šÁ¦Ìr‰NRNÎÛùsRbŠYŽŒ7«ði>Ù:O8š£/–×u×cR h{ãlžG?›§ŸÌà3Ö:R]ȞצD‘oOfhð½i>y{ˆœ`›<ŸuC'ÍcRc¥Áú>dÐb.ds¶=†·L’s湤} µ`_[^µ7× 9Z©ìT³öøì!ì/ðh§‡•m¡&ìKi©Öa|„¡ÿÓ6üY‚6öÁ<×;2_š$¥A69={³”ãcÆ(©ëÃØˆõ>bÄî(/o‚[´7ÅF™åôœsìÎ5ôÿ|ͱ¶ ÈŠ”4ã8)qk aš µ\!>œãsÏÁ°©Å‡³•Ug34Ø™›p¨* +´HKƒv$¨àad e’ѵáZ"ÆÁlU;†p|í8Ÿß%Ç'-õakÐáÏô½ðé|UË¡®²Ö1Cɳ©Pñ€þGZåÈp -ûÀ9­qŠDÅa•â‚ðã…º¾½¹ÊÚ]À;ÙÎgªHQa¦qd„c† äÔâr6†áß—zJ¼vFH1Û#ø°Ãi.ú÷œ¸òhZÈŸä¿Þ=ðw8'ü^¦¡öæØë4àVéŽKþ½ZÆû³Äcj(Eä'ºNDÖŸÕùŸåsîf ·¤?û,2Á1ƒN>'Bÿ³VÞ¶?Ëc9„s°Ð sh*Å{Ó\ÄšUr¬aí—î*ùÄ™&ø÷•&LÄŸi±ðh’]x ¥¤íIq[mPWP‹ö1jÚz2¸•q§,ÑãÐ[ë#»°ÞŸï¶Úv[ìx¸·Àû¿ç…‚MÜ'ˆsÑ÷'ü£¯ê;]ä—¸…9Œ¬@¿±Cï?¤iÄ—œÍ½èXë%v¹¾èÓBuŽ‹®2ëÅ\EÚÓùФæþÂïÖ1jÆT ",/Üíf*î£UÊ,Üäá÷¦8ȃ):dw±ÖñÉ4Vx8˦Ø4$À]ì=5 fWâ¦Ñ1ÇTÌžª4bcì³ÞóÙWrI{3õÝ ð-øÄÓiRÖ¡’ +µ+ éŽ)RªE†ÞÁ…Í6€ßl á4-Åñ«0¿}%#ß$Á„úŠ¿Z¿w4AJ:UÓ‹ŽgçþšwªrþYá¼ï‰eè°·ÈÞ›ä]3Pkc,‚IÎÄíLPÁVÀ×Ïó¨Ž)ZÁ®œ˜éPÒ‹l´Lë!Ð똽Ifñù3¡‡³ÂC]MëáBE¥YNN2II‰›Ý5'îÞþ6å÷lyåÀI5n•³ŠO€,s âaÕl´EŽM1Êpé»J:äTWQý?ç=sW*šþ,•qŽt´¢=ui„YØ7•™ÇP?­R|¬c‚’¹;Jˆ±MÒ²€ÏfSRòŒLìN_iøþ º,¡‚IY¾w–»ð™VkÇN+÷ÔL¤U‰O2É(©AÿÖÔcgŒ˜¸-!§ÆèùF`íºð7]eöGc;Âw½)ßÓ4ˆŠ±NP²×zþV)ÿ÷ª°ölÃ>Ô!56Ѭ(2ÉóüÎ ÿ¬±©»S´Ü…ÎÂçó#öÊ«o¶*nù³^Ñr4O)ÞS#¢7ú žó­¹Ÿög¹¼C­¨âtžÇ<™gÑlâl•Íý³J'9jF„®´Ã¾'ÈiËätm3/Ã*oiÚŸª)?šPUt°]Å€ZÆH±ö1Æy¯¬¹÷Ë6LN9–± +6[aîÆ˜×jØ]!Šy¨DÝž¯ÌòÜ!§Î6ÿ­6—z$4ˆQÊ)¶ŒóGÞþ™—¤Ä,YeʇnTò ‡v Vwç¼xžt¤ª"Ím±ö]ÝPäÁÍþþÄØO2vS£gyϧy©÷Uœ”sY€†e½°á~‡é½e¹îa_.ò’}ŸíÉˈ&9£tK‚Œ1Ž­t¥¾™oŽsÞ‡‡è‹C§ÄÉïö& Ðßs A'ØÆ!>Æþ 7}{ô38øÎzkΧjžà•®ô`Οcþ­ááOÕB–MNÍ6 cCvÐ@­Älõ•U渑ӽnœ ¾5ˆÿµÞqßîÈùl‚yíôe^ïIq;™!•L±Ð»c˜¸C îí“Tˆas¸H,ù¿ÙõÌ’=%!ug¸Þ‡ [èBµÓS¿l 3‰ûºš6«š‹ßÖo²Âžš8¯¨=Y¨éÚÅÇnŽ’RêŠ +ûluݦ”ÖÔ,ÔùZ‡‰1›]°oIi$À'1ú¾ó8>ùxžA:šÇƒµ˜”}õyϱóÇ$øß«T´cŸø¯`m+ÄÝ0†MµÏp0¶)vÉá\ëlµ¼nW…KpLaw'°ñv%9çPÇè‡0ûjþl¥YsºVÙ}¸È"íª°‰†1\äÖ:|³fSÒÀ ¥¾ºVj¢CÝ>­qL•aö•ô¼£.þ`Š’a“a¢ô¹îQìãõ΢o«M…_M݈@Cgé÷v`7c_¡UILí®NwG¦¹_ÀÆ¿>›¯n³«D«‚[êôi{¶ÑWì»=ÿq¬ðvgD\€ƒ2ŽgY¸ßË|ð ÆaJÒjKÑ—ÅúÜ× µyŸŒCÜÜ•F´Š~nê2~1ÚØ‹Øì„Ñ5ä¾R”§=‘°ï´ ‚þÒ·“ Ì1q¥œ½«Q‚sL’¡9 2zÎZG‘×r-ØíXIÇŸÏ4Ó÷eœFÝVqãî¬6ä|²Ž"bO½?¢A ì/mäíN:È*!%X†Éñ;ƒ”ØÍŒÿVÚÇt~¿®ç;_ù!eæ¹ÍWþØå#ä¢\)5âúŒ ú¾}´Øww¤ÈÏ2 ü=ËÀö•%»]oËø9ags|þ®p:W~4XìJü4ßá¼Ú‘óÎ"%elôÝÀú5|¶c¦ªùØ«õŽ·fÔíª‚oբė¶ J^*òm!Âý@S&Þ"'iÅ×ZAÆ#­ ù¾”|«çö—¶:̨cÔŽ„Þê!FY)`›œ³ORöåèè¿utÄé {4+`Î xþÕ0е艖Zx4EÎ8r–u°ÈG_›ö|§-ãÕ±o•òŠõݸ0à 6Â:Nˆ5áãw¿¶ºQ~³•YW[‹‚Í“lÄ9ŸÛgx¤“y>ëPÍAžÎ +Ù¶).jošYz:/ªÜŸWlËøð]Mm½uªœ½;ÁÌqÈHIëϵ¶7»¶'C‡ó¿iÄ‘N M‰¯~/0ˆVÄ­j\¦UVêPaŒc(à')ËäF«½5„ +t+Å$;ÏS‚²ƒY6öx–|R±CK0O ¢×úŠÎò¸'K-³û‹âšÃåò†Ã¥ò–} ¥ZÖ4މ|C‚EŽŽ´(HŽY!Ï +dã=­Hx¼XQïPñiÖqb¬iª«Íýpþ]—!^ÜSrªë_suHÓ1^W•ê¼ÚœõÉÐ_ä+Å=™Æß›¯É|q¦dáNæËk,2r²Ð×s Ü–"#,㸤sLüYâóW(±³µ…-c”ÜÓÅ2æ¶„³Ùü±Þ^è±T“ý~«öU?€ (ËxÁHt¿t ça·p¿–›r^ÎVe>×Õæ½g<×Vf8¯µæ»ù¾>@ˆZéD–^D°;AÎ5–†­¶g¿À_› þz±/#îÏŠx)#ëHÉ,>›)£þ< €¥|Ëp±ÏrcâórÀµåv¸×J{‰·®öawˆ“¤ª«³Ž³!kmÈïC„¤›ì¤ï QÆ÷¿¤”x'c/)JÞˆo@FÝ^k.ÿwNÀÙ2ò|M¾‡¶*ËÓ<˜´Ð˜ývˆ–õj±›|¢¥—.6&:­wg|¶+1;’Â@ãPQÈ‘’…<2±ª:÷£ŒŸöþh¦Œÿ÷jUÏÉ¿ÝØêE°Q¿Õl¾‚…¡%¹¨xÙ?ì#BÜr Êo‚žúH‚Oº'gd?S 2^,×çxlw¢7GèÙé~.)‰?žíôÒqÇÚŠÊÍÞÌºŠ¨{ •ñ#¯ß‹úÁl¯›“âÝ€ôü¿;¢ö#-¹È2û¶R™ötš}KI‹¸¹ÑñúLAÉ™oCÄfû¿º$‚~üŠ`†‰Øè‚~™Å>h*ürCÎûét4KÇìë†V†Ù)!ãŸÅŠê?sî?óôÛxqðî(ìÿ~Oø #ålÃ'ß,¥§¨X…í…ß´¢¤gÓœØ{ÿ+ýHïˬ0'ƒ¤(ù¿wÍCÜèËyÁ§ólÒ€ë³ù2þ©¸Î8“S¾]›çýÀ°³”’59½Ð!g‚¶õ\¬_G,QA$6üØ7U§ìék²Ž™x€©Šæü³¢²èC‡ô`ÓC Îz&Ñóu¹µÜô3aù]ã1™Uþê—TÂí)ÊÜZöpÿþ—IrÔo†ÚÔ³2VüorZ܉;ª¨/ BÑÚHõkÇ.ëb×ø”|䎚\°£†rO•¾25g]qŽ`⾚ëÚ>/ŠD>ÀbƒÕo½“ØŒ Œã—œªÄ¥»ÆP1ÿ«&%&‡Ï,ØûaÎIRÖÊ-[%(»¬båžV3sÏiù¥ðÉgÇ©içWªc—{`oµ¢œó +NöqRæ½ÕÖò·_øjd¡÷çÙ8óä¾%çÉW _øÕ&¨÷qÅ1RþÔ1~é8\úbåñvŒ,¬WIÊÛÖÑ¡‡ ¢º-9ꓽ»ì®Š•|Ü I;µÔ^vß6DH¨ƒ¥]„ÆÜÿÑÖ KläSQ+Ü•Ïõµé6_œàç<øAEOøTRó)¦&Ø»Õ.ðË vhäàÿcçK¾š9ÔŽ\˜Å§ïè( €–GvL`SƒJzÕ %õ]}2èëåvÐÍŽªÇˆ ·ÿ%ʺûÝRm棿X÷$6)¤&ìé蕇!¤'äæj²œ2€¹f`Q‡ \öWKC_HC‡¯>ð+a‰‡F¸V9ð¸†ZD¼óÉiá35ðqzþe ŒÝ55W>_ë)½˜ªˆ NÃâ·& ‰k½¥¯ÔœèÛ +xaø{ᡲǃձÀ5Èá¾CûóTè?¶ÿõÍiÌÒa†–Ò^ ç7wÍïX;æö€y Êj{=öJ!1!5±ôÿœtæ×EBYH[“vdçÖï¯6Ê-LüÑÀ¢‹Œ€ãr¶u¤Â 7”¤Rc]á=‡šR¢k‡>sOSÀ ×=K\éÈûÓ9PxË=Rakɽê‘bRBóÌ: qRø› “ +ÌSa@K¯~Ý]à’þ÷ݵ‰ +9nÛÈÀmÜèÿmu€Ÿ÷¿§Ø†á‘»:ñóRCßႤö3à7;³”¢­Il¼cõnµ½Ø…‹Tˆ +®[ú Ÿ6'ÉSŒŒãøðyÿ¼¶6ôÇ­xk‚R¾3K­÷‰Y•¢£@¼ Ì ~µÔ;]ôp¹;ñì|ã§?ä¬w?‡T„üý>ß ¹öê7‡@ÞÜbÙ®–‡9˜Ãçz&Á›#àǾ)dŒk‚/çƒ.ψŠolL1ª6•ä\3äÞ06î—¶ŠÈïš+¢¿cdÜÿ×,/íªˆ$ðë3ðÄG¿¯÷Òƒ +V垊”˜‚EY:²ïÎp?\’Ò£OìÌUgþwMÜî_±3‹ÍÚ?݆<ßÕŠ>[9¬ƒe.'¬}j\À,ˆ9À[Õ¯Öá/×¶äø¿Š”·1IHšk¬¼;Mù}k‘ºo¢Âõ­™×´ñ'Mw‰ñWП.¹ ИDS2õéþ/«Ýe‘ÿYãðL„r¯ íšE”ÌÓážæ%³ˆ ϶ääâ]½ˆéšBÇÙzËïXÚËnÊ™9çÄ…‘Ç»àÑÜÃÐDÛ$’]yÎ9M¬ÜÕ3jÖ†ªÞXºËJ®[{ ®ø•à×_—ø¼]£ˆç1жµÌê£%QãßvQÓž +Yl.¼¥ãæ[jÝôNãS·”œª…NÔËV@Ö„±Ú zÐVþøç>è‹c +rìOzN꩚”ÿ·Éowij ’²'¿¹†ñù_º¾.rh_p%G&dŽk¢èùb{ÊesGʹ¯ËâÖmsÛ”W#¹e´âÏæÚ®##‡úeß×Ñ*CJxüæPþcïTÅû¿ìŸ¡¶Ñ­àaöÅuVmGK* +ÚÜ=V5„‰;'É}òóÖœ¹1MÎ èhU 3|N'z°%Ç@UÄfoÑÍÍ®Ü)tVø޾­âöƽpKÉE9¦pÉÎ)\’cë’!c}ZlÚ¶‰…Ú16÷í-´Mï-6Yš†?[„â¯Vø)Üƹ·°¤Ž”ïÑ0*ýz1gsÖ'ï,­Ð‡Ö–ª;Qî{gÙk—™bé…G,ußo×BÖ%1nùú89uàÁÕ‘êw¶Ðã=#¥<äÀu9´¥dU†4N@Ë©qÊ iþYl*;Fr©[NvMã²Ã½V·çx„ –‹éÿžc£Ã½ºŽÌÔj· g½2ˆŽrͰárt©“gma'˜ÅØ'jZÉùiJæ)Mmá=mKÉÃbò %¯ü•g‚Vhí®z¾Ð}Õ3Ž\î,zhnκæ-|xhFeí EëRôÇÍIBÊIÈÞ7qGK\Æ™M zÙ3‹É°ô•Üó©«·4ÔRß4¶§é’ºf€Ï‚^<[.ºijI»0ˆxyjm½<‚KèDÇý±ÒQq0Ï£ìÎñ(Û:©P™i¨z®]ûÇîÁɹT@n ó±‘ËøºØØ÷xìïqMb׆ Ï|ÊðÞ/!ÙÔŽŽqÉ(…;€þÞÕ±à{ +NuhšõŒâÓ¢´KÃä¤KÁYnu—©å\ôÌ`ÓxˆÙ·p™G6.ûˆ;F1sŠVÐ +¹^9»|oŽVéS¡RW*Ÿ9ï7á/µ»\CÕ Ó¬Œ›ë#¨¬ÕQh’_ÅÉ¿æFÄïÎ`Rfà%³fm¸2y¹'ç…­+ûꡉAÞ7 øëÃШµ¡ÂÛë#yw—Úòî8¥à¨¿mÄjÀŸZw9œa^þ‹.RöÃÏËMã‡fqþž ÷HkÞY› +®é…É—7†Kßý³*h5 >*$ÐØÀ|cÿájã´_E/]D¾tê‹ÕalÊŽž -ñX»ázïFÄ9‰KtIñ î)J¶=\g©%ÿòr[ÎÕYÞÇSK-9×Öûσ2!ÒÒW“ ’d^\FDoÏ’J>›IÏ2tßÊ$ìÎ ù{&‘dQ\{°PÛøÅÚ<îƒ÷Å"î›h¿“4‹=r‘aó¡ŸœuÉ+¥9G(*Fî¹–Ògß6=ùNE‰;éì­x䙢d™†(ií”üýÔø ëcÈØm5Ÿ°£å“v ¤’}ätA?&Ú9éñ¨ê…KCÔTÛ)Õ5C*ØÖ~aBeüµLþmå Ž%µÀé»óÁþbcïÁbmýÞ‡Ôâó=rp”[^õÑ'£<ØÆ8-KɃ\ïÇÞê®N¾Ø ‹?ÞYýéd38ú÷1bÒ9smÁÕÀ$=_^Wþ¬›tzu\ìWˆ‰›£øDçôMP }ï‘•?Ù™Gg‡ 4„[ÉD,×Mtø¶‘\2`rƒ\‰ŽEÜÒ2°; <ŽCOsŒ…ï+»Ð¾Ì'—”ã3Ü#¨h{?:J!ÝVDþ¾6ˆJØ#$ÚúàÏ<Ó¸”µaÔGKèñÚxå[¯“ø#i¾»úƒª©ä>ó_WêÂõ" ä +W¸¶ä42Î5]“ìQQJ-˜XÀNoïy¼ýEß§&äZº +n©¹é§̬?ºjÞžXlËyè×РRNáÃ.tü™C€Ý&õÿöÚ¿Ðð°S´<—’ÓÔBï­²v€ü®¡¾7ÇF:G‘QẦ:FÂo=È,tV¾jƦ]‹¹}ú›Å®’¨lt@U»6óÐИƒWøäGaáýc®Лÿnò›·´är‡ è;Ànœ¯V¾ðŸ5ëï%8Ú7ƒHÆ‹?4ò({F{×$⇠\ÒᢨöpQ +÷­ßœ’³9@LÜÂPˆËî¿¿ùmêƒ3ß cÓ¯­õcÒ—Zª/·WÜ—³RÿT sï ³þ즤]_ì&fXèYAGoH±Rè« ¦&ù‹Œùg“ßôÙV׿o­íá{ÂÔ£eŽð³MÒ{`mÙ5×6‡€¸âÕRË€õ}3Å˺2@H9w •°ö½Û5ä‚]£Ô9„‰^j/¾jnËÿsuöÞ-gTNð‹®«ëJîokÖã‘ý€®è‰©À;KÊÓ´B_**^îXDýû6Q“OK)t+HÙ[³´ê£e.È wʉéË}ˆwÛól@[Ò*½*|öÊ`MÚbKÙë•^XìÆ<Ã=Û”á3Æù…·†èéw|èÕÐJrj¡GM¯yd†‹tÌ0J½ÂØQóÞ.Ö`¡iÀ¼ö©è%®qlÜFõÛÕ.è«Õ‘šç &«GÅS‹¢.Úû+"·fÀ1殤󦶤ËËCït­ÅQó­%ü3¨Ì¿Wybû6m¶ üØ£`¡Ž,ƒGþ`±:ǧ*x*e>ýIJzùËÆHÅǯ6¾xMJH3¼Z>ó‹¥MñK}ïWä¿l„Šm=2i¹ᛢd¼ªíY!ñp¹yòÈÖ4q¸(iôLâS­-7ø€A¼³µ\_í)¾î°Ø^u¹ û:8R[³Ö}7ÇÏ¿4ÃN¹ÐxuBPtÿgNÞÝïÚa/9FñÙŽIrºOAÈ (¥A=µêpA(9°Ôì.Õ¶‡æ¹ø#3핳wul ?_,\šoN@ÞTð ®)|µ›“*ç–ߨ+ÿpLŠË¿œÂ}¨([[Ñuccêik{ѵt”µ·ú•s´:ú`ŽòM‘2}2zaPÆúU˜$ŸEkêS¯ÎJ2Î8Ç*ß|±0hº¥B%n)á15"ežý·…Výï%jõ×pOf³¥¤—„ù9¨Òwæê}j!É܉ŒÀeœìD$žÖËowc2.7–ÇŸ±4ãR6Æ(ùË]ðg+½5oz0Éç¦YéWü3äÔÇJï!eV׃ßo©„¿Ž ß7‘Á{ ø²Ø%.Ão`ÂüólÔ®¹®mIXwðò¥erw±¡cw±®eXk?ôébgÅÃ…ŽªÛ>¿}AÆË¼åŸ`»0ïçE©§g9q'ÍÍy÷ì°¨ArÊi¹0ÿÉ ù<3¸lKOÅCKÅÃÍp = è ή©®ûóF£jÛÌ¥yf9¯²Qšë’}^5 0Vho¸ÇöîÈk¤Ü]àù¾¡©+8Ë€xøôÕQX”¡¹øúò *Ú£¤UXøõdF§BÉž­¶70ÏÅŒ\¼g–^á|gß,i +šê[·æêk*fiPW+Ø7Ö6}^×4œû=kYÊ-´23SäœÅ.È[Zî“_ ïÎokÈ耛ã”U´_-¶ÞpÎs×dBŒMʪø’zd×m©‰y[jL¦K‹ß”CÒlC —>6gQ,°s +LýÄ[zfÅ®žf&èî w`5íšÄF±`WÇÆ4|ì.À !Cm]PÃE{gÙè-% ÌKÍÖ198MÍñÏPò¼“è„…ÖœkÆú¢ëÖ.j| 4éÄ0>åälmÁÍIVÖÕlÊéiJÚKKé=×$1u®þÄÚK êD4·ŠU³3Ï£ï[‡‚ µ n ½ÜÄxûpMôæ$.E]—}-8Cï˜ÚÃç`<2RÆBcÅÍ.؇K^}«àæ§½ù™’þ蘹©,:  dû•ØT¿— Å.÷ä?«9«¢G_i/}º1AÎR×åþ9_[pÝÞ tn¸®yá?62ühÚœ.}Ð`óÿâô_¶†‘[¢hL`¢ìÙŽ +‘¸oda÷€˜éšÁ¤/´–ÞrJé ·œ‹k†¿–€ãÏ–¾¿{\Ròáws]ånÈC×8*¡ó[òãé•.B¢w‚_釼˜æd]š­ݵ "5M5¯–hE[ºz‰GCygpY ·oä1?/ Df2qÇ€GõD°_KÈèèÕËc;K’æ€QÈZC¦¬•¿ +¨à‚lÆ|'*¾ •~]×€ˆuŒpK¬­ÕRlܩΪÈS2Ò§Ë~ÂçøÍžŽUu¿á½üÝ=†îéêƒs\ò>ç·udÐö<t°Â¢û)U66¹‘u£¥&æòg{Ã螥uf°åp?ïµþò×8"Ú¯&æl„QÔ•>íÆÆŸ^îƒDlS¹ä¯Œœïn bÄÅnJIÅ!Àî—'©UöaLNP/æn„œm#·³$ªÌ¹MÏEoé¸H¿¡c|sšO]“R s|†CÉ(›­ƒ=íEe^Ä&ÿik/½¥fÞšoÅ®¡ópŸÎ¹g¹û ì¾ ÐÝK,æž…Néq•îñp%eí›kÛvLµ=.%¾é›ã`\jÈ¡fA½s„k€üݶ.c”­S‹ö,í³!s—a×Úaø_mˆÅÚÆm»ÆèÅÕVéLø¾¡øß:aƒ±Y¼­æ <ÄD×0òÍZ_å}{{É5 ?ñ¤Z˜w¥‡WñgÌý3ßHJßÿéžÀ&mŒ"ß/6ƒïÚºªî¯TÀاH¥]äJ"8`èœpkºGݳMõÛïÐ,iØ]r­Ã¸û0È߸\Ÿ’ rOaâW:/ì’;“´ükÀ\ÝÃçÆþFI{ÂTIÚšÀ¦,wç_µõ^×Õ§œļ8>Fz^J»bï­|g샽l€'œ´¶°òýÒFrHMíP™Ûºš¤Miå ÷TÅ›] rhä|*RÁ¾ŽZñ3ýoàñ_› öë¢` #l}÷Wû‹¯MàR%ˆçÆùwÖúHqöNø³Å¦ü+:QâÙqJÔMg¿‹rî};Ëξ"ãßã½?oëE,uTÅÙM,çygè¥&Ë£@¤oL_úÒJê·g™ØŽ\á½[“æ½qNCb‚s7ZÙ” ‰ +w©PÉ€µÖv}±’ û È쀙´ Ä÷íYÈ5O´÷¡ß8†h€/ç»×{ZRÁæ0,j€ðñü=íÆ `ÏcÌ’ŽaVùÊ 3Ç2„y··0ù"}°@„Zhè=à»t„"YCÁ£QNêÃÏöºZ@uÏð‘5Ÿá—cK·¤ˆ8÷0,Í'ÇJ9¹×zI)VFjòÖÆ 9Ö^B´­³6†Mtʨ¹«˜p=¶L·ŠT,o¬z>!(zíÓÖ5çkÂ{8YæÕÐAÀßv¬BIÀ(‘Ì÷ââuíèw^˜gŸb‚&¥W›*âþh­x÷ëzèvpž¸£Eu’Ï|pá»Éú„ý%coAÈvÎàr@œsÉË"]“CzzÏ$X‘2VÖ™Ånä;ßœD²k•tìØuþ0'é€8¨cטǨ©“l°OGFnȹ{Kü¦KÇÜ_+µ=áÞU^²2qþp°Yrž±ú—ñü—m­„éf‡ë·;‘oWÛ!÷–šJ¯Î7Áïõ2AçÁï~?BÎ|ìÇ$¨ÅÙ—TÜŒS¶®Ê»ëƒü2Èû=»f[/¢è‘ÉÕ©W~²µTemÏ .øçz”{ææ¡C«@¼oæÒÃܱ6ÍÈW=ã•ÄœYj­ÎÜQÓ˶Æð Î!J’µóÊÔXóPÁ¨¼¤áTÝuP Ì-ÐgÆú¼K)ü} ò™½·ô…KŠI9Ú1Qóqy¤*B%Ý^jaåi…ØOŽ!øû# TÓ¡[S4Èçyö³‰CÙR¢S\ÓÐ7»ZbѶ—ó÷“ð_»¤í³ ˆïZrÉú ø­{¢&}}ŸÞ„ùxIÊ,¸³ÒKˆµuT=˜gŸa$ÌâIÙÛßGPIW—šª"úIY×òŸ]þf¥³2zGÖ0¨xç8òãr74bs´ô‘Gzîœ,îW0Ê–ª3@lÜCÅ,P0‡fêÀL~¶ÒjެT¤_‹Jõ*ª?~1óø{±øp±¾+ì/»rWG,òLÀÞ[: +ï¨ù)V¬C„¼Afæ]M}þ#ç$6{”–ýh”’sÐOI;j.Ðø…öALôú$.îТšiÄC3¥f‘T¹c&WùÍ,‚'¼/|‰Åú²Â­µ #clƒÄ”mXò—…Ãq ƒßÎP?›gÝ\뇽ÜQQŠv´´ +…ts±ÿÎ7C/ñ)pÙÖÞÊç ­e·V†*9åð(šZ¶¥a!{}šVîÓ 8y!Ç«|DÏBìÛ8Àk&Ò9C+×=ôKåŠðýArâR{Í+)>é÷.ø»ÓÍ——$åWZ ±¿µàòc,R"Ú¯§BrBg–ðé¹ø#â ×ãU“K}jr¾eúv®¥ôöBúÓÖ¼PâÔ‘ðN±Ê¿Èçºt ˜SĸæDÜ û<êê ûhჀ–ж’±_—ùuÿl +ÛCfþp™† hQY€Þ¯IÒ´V¤¹åa]À*ðLsË7GÉI–ØýIJÖð„Ÿ»ªcœÄ$œÚ’2ÊWGˆÓŒ´®ÁšØ Œ˜Á%Ãçå¨ÔÍIb¦©—ôqˆRxÇ;ƤìZÛ5³€òúþ2òi~æRÕR¤µ¸ØÆŠ”‹+­„Ê=³ÊÞ^~k½ùÒÒ +»¯eœ²ˆ +/x†1ŸVFÉi\ð‡S-ð¸ËA ®+áS¡âmý ‡cÌ”s”¤“–žò)*v_“u÷ø-áÞ?ëò]C­$Äï==¡ÄÒWùLÓyn}¸,b[˪î@üc¾¾$å/s]ïg@³ïë(%;bn`ŸéA¾_ê€=R7@ïµa³/޳Îú'¸Õë½À¼´¡_Z;qQk=äÄYaù­FpôñÚÂgßzGÑIó %ŒuùW2Tâö,¹b[EÌ9ÐS@áþwÀø>ÛJîšJøåáï0ê:Ý3ølÛøy(ü}— —{`&TþwÉ ÷רx˜}mû`PUÇÙR2JÃû>lm×uY— ’Ì+Ûjb©ª­ì=$ñî’’׿íØX[7&ÚÚ´Ò{ Øôóp~Ì2! m—Âå„?Ý2Xò×eÀØøíegCû{UÜœÃä­ŽAŸ²rï Sw‡÷³™ˆÐµªhç$ê@‹ÊvŒV¼35fßD½ûi¹ ù¶Ÿvœýô„Œ›smÏHAî/!ûFb ð¼"Ä!¯š”ãVò=Zic†YÔò‰»s|Êç%6éo;Oôe‰:|}¨ä‘¾1ûŠ¡­:rˆ–w»ÿKsÉ»šŠ#µ–GŸ\n¯ŒÚU3룘¼YqÁ]%7÷œkš^ä±DŸ“³¥Äl©(¥@ ,3i{q{‰Ët꘨ÙÎÒÇÖÑêO‡«Íª½åÚNßä5ˆØ3'Üóþy‰ŠuÊj2Û±gvç(¸ÿóÖN…{NûUè$×äåÚPÅãÝ9\É¢Þmˆì›À·¦„p×8+½‡;Ç/¼4K8¦a%ð•¿ØìEÄ[Z*Ï‹‹/øäüåÁŠ·–®¢»Ë¥÷,ù77úª_&Y ¯€Æû²Ìâ„Ì,¢ßÄÆîš¼¿l€-Zú÷Œ±_Å©ÚV°+öÕ¼š}•ˆ´ÚCø¸ÒBŒqò‹`' I'ôÂÜ[:Iám5?ï‚VRòçr1É?+"út,˜CŽwNc¶€1xåÔ𒜕!b¦”_ö€Vðî´±¹4íÀÚ4îQRA+ƒˆw›RdÜŽ–R²o •îéq…[2r‘©òdsWp`lì|Ip8O‡mÏRŠ7F±€øðÀÞGþ¨hľlEŸ¤ƒ¯†÷3ëK®ácŽuV¿ú¾ ýó89û …þ\j†¼ÒwUG½¹þ=îÃÍc{*<À+DV’u~„ù‹±=þœ©#ùÌê`ùËYbw¾¾Q׊Œ]Á¥ìåÿs²…ÿçd þ³FA}Y‡4¨ÄÅŽÊÇôÜw'È/mNPGó\òš ɉ›ƒð897ûR”h°ÄSÛSÈTœ^¨¯¼ëÁ&d´ÿ >= Äç”Ôšm5¢â§œZï‡|<2𙀖¨4Ÿ–PÔÓ`_-µ;z6rÏÄ¥nL2¡³µ·Ûzåž‘ÞF}0H +¯ªi§;Î àâÿ\‚ÇZ+_ðþä§{¢¼þØå– +ñÑ«D|ôÌÀc¶µD`n™@;`7¦ð)n­hßPWÒpI›c5 Û³¤Rï2Ö Î¸<€xý›¾ô ›q3ëíퟻ1éG0)¿@£ÐP~Õ0-Œ|÷K,öLcUÌÅYAþýQIDìÓß@>ÞýuSFAÚÇ17&¡Q!#îPâs­#ð7¶Éê˜à·ÿÏÉkZA'ø•ÂÁRCßžµqôh½IùeCÔóy™†;b”k¬*Â!E¼×7ƒ¬ ¢ã<ã¸Ç4Ò9X»Ù_ön­»øÅŽ–‡]$±°êé4+çæZ/Éu5ý÷1tü¯Rô‡Ÿe„¿,Š3/:ú!Oú*žŠàoµVÇwâR½S5qs’웦ú¬»^iö〪ðéþt¸ÄçYÃç 9䣀¾¯¾gÒwµ ðö 5ß7Í(\h‚Ü_¨«~<Ã?é„%o¯úô»¸èý¯¨ä“sÂüë[c5Ñb¡c™±9‰JÙR³¡˜±k ‚=2x̬8㜜›xr©tÇ;ŽMÚÕsI>€Oü6|W/æìÌñI96Ù'¿vHsîXºFÆ~6ðÈ{z>Õ5E+ÞÑñi;: Û9AÏ^4÷|Så“YIå}S3ôÁJ?&rcœ]¢«-¿¡àæ^žfæÜ_ê(ä¡»:qÑ“ånxÂ\*Z N>Ó +I¿ã¢Ã-]•ç$ew¡/×ú ‘[“ˆ÷r/|f@ÃEÖU'ýª”¼<2³ð_–¸C36ïp™v`B¥œXªoGÐ ÞýÚGÈ|²câ7{døôõ®Š»ËÍÅW¬ä?8yޝ};ŠyýkP‰Jžq@1—¬=˜²-%½ÜØ–wc†yRJ~zÊPÿ·ü•OAG{fYHJÉ«‹Ó¼äÿ^Ô†ûe6ò;Zbž[ +^l̨å%] º}˜÷¢˜õ  ¦#½3„<õÑ1‹ÓÔ<—’Ïi…Yæ[*"ýJ~F +÷Hû׊ þ³…Ë +(‘IŽ1ð«µÑÊ'á³'{Àú¯¡;É¿´9Љ÷ÈI™î BŽc˜¹%çB—q5õà»öARÊ$5ã|èõ³œ¬ËóueÖ1IÀç*sÈ(‹ÝÕ±µåïCco~Û…þpݧDç¬KKŸ¹äðÔí9Ö©æó‹¢–ÃUASø ì?› ¶}°à®è‹­M{dwì/ó»ËLÒÞ"±Ô¯¨þ°=‹/ +hHÐ¥Ah¢g†ö±HÇ͹Ø~ócsÉ“ÉHŸNzdä¤èJæã1AñóoGé9gYy¯Ž !SÏ›„°‡2bÆzfÚöF@;wƒucþ”=ÿnŒ”rvs¸æýjÅc­(÷Ö\]ÞÇ@AÄÎ,*çÀ,ZšÆéòÌÒŠ=JVy`VH +éÅŒ­Z¡[ŠwŽâ?.|en©~ØRø?/ò{“¸ú•޹«däžÑ ²¯˜ê³ï¨1W¦oNÏ7dß ÈÙUži6Ü1ŠŒ ×Ç\ë‡D®÷—<ñŒ•<^ïÍyâ•VDuØ´– ÙÓ‰^970I:ÔËvÕˆt¿ +™»%Ç¥Õ>%)ÏhZ€5k|³u\Ç8=×Ú }¢â§þ1EK9°Ó¥­iÔG€1S§ÙÅç꫟º¤œâ¥æŠ{£¸O¿KJ"~l¿>ni¬¸eïÀ½ß@mC,Ð9팥ƒ’æV¹†±Ÿ|S˜8ï )° §ŠZ¨´Œ© Ð1a;&&jo‘†45|ožTº;O.7wU=ÕÔ•ÝYÃå~^©ô*)…Ã5Ñký˜Oö>\‚ZPzotÆ()¼ïWPAõĬ?«âŸŸm@ä»ätZœtJÁ½¢ÅGX»3ßîÏq‰ûó±k–#½<7ÌH}õ—/Ü3ùSÞç^õÌÒ^xU+H>£¤Þؘ¦`r#Oã3¢¯´ÂÆž55äÜ'Dÿ.Èð]SñÃom-97wuärç ’õæöOüʘ‡ûz*ñïUAãá"é=\éÏ»æSUúl7yÕ,ì'ç¶Nœ{û³™Þ; j© —ŸêE}°÷”ß[é«|¼&¥¤QsßþŠIyôÓ|{Ù‡O×Gañ–Î’×ú†Â;=è¤ß¸¹Ï¾›bÄ÷LAâ·”˜ÇämHÇôVcÿÑr«˜³¡ › äI€Ïá‰GKxð×ÕºQ§‚JŸmÍ‹Þ_fRì‚ú£eu×@Èÿ²DCš §™áVÓÁ›äìµ¾šwaöM5?ùOÿ4ìƒmˆ§æV°²OMsOÕÂa#¾›¢ÞµµVGÔ–¾ø‰ž~ã»سŸF)ïF'_ùf÷þ÷µAh¤¦£ô~ "ò×ùzð‡Ÿ²?GƒnN¡>ÙÇi….•€¸mä3Ü.\ׇŒ‘òò¯­Žr!Å?îÚÆ~\¨+¾<ÇË?+%&ÿ:IÈ<¹Ü†{ßÌ<+#g3 ‹®/Š ¯ÚÛŠ"6zªâ=Ãèdg7:ÒX[|ÃÞ‰Ø™à”¤”ôƒpŸì¡ŠˆåÆŒËÓO/Šv•èdÏPu”­½ü®X‡^T‚wµ=SýÁ3Uí“£ã¶äø”†]šãb2jžk‚UäT›ŠoŒb£~AEý çœaVΈË-õ"’þí¨Ÿ:X¢£}Z\Ú†ñÖ9{å…>âQÜB/>“õ#.ãÙïËC°â-6wšs\ÍK8klÝ2µW½´t—¿ÜÖa ÷y¬-µˆ¤d]tÊð¥GVQ£O‡+öÌ@cÜ +lŠKI- +èÈ•­Kú¼¡ ŸUø´ êÏïv,¦£ÕÚ 'Üó»pS +y±þ×iaîõä'§¿)zyñû   Ÿ5úk‘Žú³7pØ<®Ê9Uó Ð=HŸ¬µ. &ƒ£èõApÔæDM´–”œå¢¬}¸´Qjæ%{/>V[‰瀟Ëî¯õEx'Ë¥zÔ¸Œp§ÏVaÝ®‘CZ›`äúfYÕ>5¾`×ÄÀ}±ój÷94ï,!˯§–ù€¿uL“‹SäBç$5wmˆðqmñf[M«:˜“ˆj>Ñ5Í©pL´Ð7Fêjl}Œä¥.Ô« zæåaBÂ){?*Ú5Á) (X``“~=0ÔJ¶´LŠGE;e¸Ì•~ØK¿†Z4p {€Û3ÑP»‹lbÈ$dmiyø5¢ÞÁ§ý¡`ç±uWÜ ÈqûF.Å2ŠMX胿ÙRQ‹7§I~-!Ç«A¦ØG«ß9åÄœŽ‡òÊÉá=ûKôᤵ­*r©½ü!ÀG'zQq¿Ëé)§uÂâ‹°H{ñ£º ñš˜óægfÖ»ãþi|Õê@Ù}Ç0ø©µ£ðvìÙ=Ð?èJopAW?>¾ò-))ò÷åäó¹ÚŠ›rráŸR\ÞEfÆë #.“vçÌ7¥Ï®~+Çþ˜þöæ·ˆO¿µ6óØRv½¯ìž©)는}¼tç‡AôÓcމ긕q\Æ(5õº©±äí®ŽŠÜÑ2°Þ)ZÁ¶‚”³ÙWrOÎŒ>¹ÔŠpOÑ‹û‰E/¬ƒÕ9¶~pÌRSÅ›õnTdÄÆ0䣂Ÿz±üêûµ~Fº¡™al%ºG13œ„Ë2zÔÉ•žÌ»ûóðä ‘lï.´<:¨åLÝÄ|Ï ¡ ` øþ" üy‰†<\ ƒ¿,q¨®iLÀ0W×GQ©Û*&Â;ŽI•’cNÉii7ÖºáoCˆ7Äx÷Dvs˜rO«Ý²:Êú(·rm˜–µ9Jˆ´lÂJî½cŒ”˜QWˆ™ðø Sìüw‹‚úÍQÄGŸàº>=8O‡8¦«£·tôš“H¸2ˆ‰| 04Ê5FÌÚè«|b¨O¼æ«ŠtËð)ö)jÀ$¹n95eó~w‰ýbì~š˜¿ÜˆvM"â¼2€dø´Ð òu]Ô¾gf‘›+ñÍÒÊw4´[E‚ï.ðy‡foßÄ%í˜X‡‚R´câñö‚/QÝ_K\æá<TS ܤàOÖ.콤âÚö,©PÕNù¤oB½\¤g™;ЯVû!7FÀOìg¦ŽŠ» ­Ðûöañb·¸ÐÚIs޳‹WÃû¶{Êï:«_x¦1™n%*Ñ2RñØÔ]õlgAÈó>áVs`> Ô󨻋 =KMÃáï¶æÈ`‡ àU3Ê×GÉ.)!A!,¼ÜŠ?ÖMüQÍ©º±ÒÃΙoÆ~&¤Ÿ««~9#¨~«o@¼tHÉ©.£du ù`€¨¥žš7€îΛk€Þùj4š|×D¸@õkkKÆ9;áÜÚ.ß2BËÇ?=>×ÎÙŸ§CwØim)¢f]ë­y}¼üäû)B̯+#”LfÙ§Ke±w~§¤?ðOá3Cð7ÛÓˆXÿdÙ‡ FÔµ¦òû?©˜IzŽ"çG&§½9˜£S¿Ú8ì¯KÔš]-.×'‡'Ï>]%Æ]Z¬þÐKM{<€ýtfŠ™tc†‘óh£¿­$:G1q+@€R³rïnöÕdlÉTc;&c}˜Z¬_êæ(«lKƆx§HYÖvXì>î5þÆ¿†°q-}°Ì垪W~MxÿŸ2±ñ€Ã |¶GÅD)Eù77¥ØäÅnL©¦¾"vs©áÇ]Øè= (€ëëÉÅ£ˆ}Ü‚_0· W¸Ô‰x½Ð}º9ŠŒóÍJB.ùÈ,ÿ³!êòÌ`}*Ráþ‡~´Èáµp%Ùµ_–¢Ã%>û`™Çû¼"êø{MÔé×A_­ñ¿m†} µ|µöÊÞ~°Ò Xë¯yµ1\ýöp +5 237F™¥Û³µ÷¿Ò1JN¶t–ß6·\²´\ÞÀÆØ‡©s­Ä×¶.Â{ŸR„³öÁ^ÍI2Ϙ²Ïë$ç]“èÄ€†YÔ ¹A“¸na÷ÉØ‹ñéÄÀ¼4÷í,6öï›…’}# ïÕ S·æØTb2gDE×Ý㬂•aJúR':R/(½ºÖYób£Ÿ”h爫ÔK²/¬3‹<Š&>ÀgE[òšhsGþµ¥¶œËëC•~5µÄ;ËÙú¯]41 ¹Ç—:e¤t{?:r©þt}>[ÒóI;ÆZñÆ4£Ø£R Û#c7dÜ*È0_ÙÈU·b_.±rýÌ´i1òž”R}c‚‚~¢‘ _[ÛqËM¸·¦:ø}%·úö(tfNRqcˆQt›õêØ(:édxÝ,ƒ„øµ)f±C.B­È›Ê.bL 2夒[®¹f­zn(¿»<®i {盡•­Nvð4ÝUµ°Â .©Â7^í/¾5WŸ}vóS'4öØ0&áÄR8bq„YP}âÅå“ß4–¸°5ŽJX¬Ï¾a&œ“aŸceÞúW+ìÃqzg¾þôü[^ÑËÛAžò—Ãq /5fŸWñ¯/»ÿ­¾®(BÛ ‹§>>ÎÊŒøá‹‘‰?š£#öµt°s¢úC6ê„ çÁµYþem*|<Î+xyý§IFÆëÐPÐkÈOqÊ…Ø»ïÙY÷ÿ5N‰9kï=§å?95#ÈŠüË&éú¼"é8²²hÛzL¾[J6´•Þ£¤·Kñiø‚÷çÓž\þÞ6+Ê ïÅwœC ‡ë}ùw: ~’äÝüI-øxËo —²#~Å%=ýC__ûÙ(ä}Y×™„üÐå×bó·Uoþ»ÁdÙØ"JéÛGðô§·= +*åÈÚª8´µ(ÿ㮓ÿ×Éï<4¡@ë#yw¶4Dh:ùÁ%ûÑÆ(2i}åÇ$ÔÄü].ó/¹Ì5CHõ(yÕ9lî%ð*„5>% §©€¾‡=_l*¼)cç\@'ýºÜZõÜ)ãÀu-•­àˆ]5¼?Ç„šXØ#3‡¹=Ç!®N³Š–Fé™ë + sCÝÚ°$­ƒ9T­µAm-7 §äeøŒ==¥Ì¯Æ¤•„¬ ZDX8x¡v–™{¦«êýÏÃ5Ÿ~URãþ°4gÞ i…L‡B@° ábƒz¥_K.úlfá>[Xä ‰QãaRç›A÷œRDv@K™z`ϼ +Ò§`wµTH¸ï<À7má4ªm›0 ¸îYa`$û0*Ú6ŽMÚPòó ¤c–]5߇}khGG¬ Ê<3í á¾›c´t[é#€Iç:«“N àR/,u×¼þî×^þ²Ò –‡¨Ék2z¾CÍ…Ù¦ù•k2Néö¼€~¸(®hp— +—h†jÇ âÕ° !#g›¤d¬Î0‹7lPÈ®÷CÌÚXÃ5êô@Ù¦”•¿9Éȳ‘õ=øÈ 1ä¦\X~Ï-%¤›JïNÒ’/¨8¹·æ›P¯—{iéÖAn¶¡G”©ëeX‡éi»zñÈÂãnȈé+RlÒæ$9Ï%gW¹U‚K+&×Ï]섾p@ß-PÖ®²;K­¥×íÕ¯¤´Ì‹ƒè”“Z>èšcšY>Õ„{WK9«½÷Ì +;«î.¶A/÷Ô¼]é''-u“ÝJF…_Ï„®Žb“Ü2BéÑ2_>sÔ`2V†Ë.þ¿&…¿[Ÿ¢å‡¹SäóZñ=œ²5ÿik)¸ªç%ÿ¡å§«E˜[ÊŸoN l²:l+6ëÏ&èÇ«@Ž*ÜìnuþÒ« 溤|û8:ià˜ Y,œB¦!2ŸýZ}ÿ¢_E%ýgCÐòJúg[äÜæ–œë -E÷çz‰Y¹¯üXûè¼Ï@«ÿ²!êÝ7ÓÉ®éªææ”‹ +Bô¯;F6Þ;/f/O°K ø7NŽÍ®iz°ö/ÃzjŠYpU)ÝwŽS ƘE=”‚‹3¢ò'!-®u·9ŒqOÒ6&©yŠ:šKÓÜàÔµw[åbý@;Ü<6ÜdŸì®ÓsæÅ9@.-ä«|æBǯLpKûØ [Í5‰,4Þ¯õa?X;ªÚºóï…fáé~—°"ãUYƹˆµ5/ {44[KÊßTâR—‡ /Ý2T|H‡+pkð9¶)\Üò1E*)y:HN9¿£b·d¬ò­fy`Ž…¸˜é5H8KãìrU}Õ›ÝãÀ&ª;° k½÷4ŒJ—‚š»9IÍÚ² +6å<ØBöµ}€‘ᜨC-ÏuµÅW-E÷W‡*Ÿ«$Yg;ËŸm©YUãBнqù“ ƒ Ís >5¾£ÇüeCï/V%9f Qáϰ¡jo™ëg晇°1{f.;```÷Ì Ì‘…†Ø5‘*¶Ôø¬Ð<µàgÊÊ *Ò9ŽKØRâÒmæä[‡œV¸ èã –‡ ×àv‡k®ê$<Û¤º!ãÃ6å\ÈÚ«Ü¥dÁCsLÄÑ’€4ŠØkr!Ì;ߨì7Šáý“½˜µ¢`–:gHYÎ tœ_EÈñkE4}üé|â¥gFŒß˜â€ìýÔÄu)=kyŒ’<ßOOXa¸uu\«”‘§mÁ½^›jf®M·ó2ÀB¬2Û01~uœ”ž“£€¹ èoÐ¥zZuø¬WM+™øL§V€3 ŠíÓìb¯– ßÒrZ~Éå /9§‰…n1ǧ¡•9”‚µ)r–yˆ–¼¦àÁܺZIÐÜЮ«çPЫõ}W$žùúú…±V’IZ Ñ à£gÛÁ÷mÃxä—ð8;O¸kBæfj}r\žg†Rii€/ö·aƸè÷êFdî×ea§Èq+ƒe•¼´Sã„ÇÇ ‰çýÀz±¶.çT¬O‹ñ«²Z¬È%®!bc‚[¶:BK5wáߘ»1o×'èù Üìù^V®}œ Ìï4ùÚ8%Û-ã€ñêk×”BôªªŽf‘µ2tmPãH?Û4Ô_‚ èèÍbºo†^éUqk懙™MÄ Âʤ¦J¶c’–cî.¿7[Ÿxn¹7ÿ®[A­+k)›šÇP'rëyX§’ sÍòq. íP°ÊgÏ®™=ÝíŒÓŽc;vw¨¨XHI7Š…Š +R‚”¤¤`‹Ý­ãÌœ}êýy}ÿïòüŠº\<Ï}_빯 6>ÀL^V3Á‡ã Ô¶½‘²bnDnŽÖ£~¸Ù’ã™Îöh=bÏÑѽçè>¿8OìÀ€6tÕ±KŠŠ yiåçYÀ[­è[ð£bZŽŒ +º½ ô 愵AË +D¸SPõÙÚñ<†ßž… +ÝðÙ­¢Ïɨ%«lõÅÙóóZÝÉTS능 ëÖ·}ÞÉZ·ö‰–L½ýsz6fi„M^i¢O0©@-Èk£–†±I›FzÕ®µ¾nÃ@ÈuËk‚ï³3 [”ey.)+CvŒ€Ž¼Ö€×£lÖÖWºni¦mø²¬i1)aQIÉßom?vv«ÖFÛ¹ýäüWì긛îarÕ¶£½mc¬µ~uŒ…Ÿ¦æ¬˜Q+€Û´µ6î9;…ËzÀW©êÁëÀë[£-ÌEc nJÛu©;óÃl¸K*bOke²1¥¨Å¥æ Ö€:w«pé+ø¬=;½3ÞÚ¸eo"n;šéGó=¦ÝÙ¦ÖíÉÖöÙŽÁÝŽz¡mð`º±eÃNG-¨`—œœé’·Öh;) ÍU©·oW´çliÙžl ¹õ´²íQv}”…s›i¥k£Läöxkߤ¤&tJZá³i´·ZºmkÀN·t}[îÐ]Ì Ø´Ñák¦ôž³×4§®¯•“@ÀýÔo9ZšœÍíGSÂÝÉþ’µ¹` f¯X©Ð±FÒ’‘”»ª«ùrrqþÜÙk8uõYŽ=J·®±Æ%¡¥ÌÈÙ&Ak»ªðÊh76íp´µaÏÖ€ÛÐ1*.žÙßôͶ“³eëî²H@LX½bÿ?ïki¸ã)¾k¢wxÕÒJV1ò&Ä ö^V⸔]ÒT•{½£<ùÕŠ‚É8ïìßs4S÷Þ¿øLxIÃ*Ÿ‘¶A&ÄíE–~j‚­«üƒ{•¼¢£€W4õÐõ‘â´´µlJÕOPtÁ] +ZÆŠ®?¯ém\0v±æµM5>*zNƨXP÷6;ÕJñˆ@„µtµ§-ËzðÛýõkª¶[×S?«ªK_Ö•„M’ªG™uǾïNðÌ›–†Z·œ’¹¤ î˜•v*t×J._52«\rZæ‚–U½¢çЧÅä¤ NÙ‹=ºifa¶lø-k=|u„Y9-'§OÚ|×ÒÖv1ÿØÙÈØ› ¡VÌ„‚uk=zËÊép·“ŒÝ š>NÚèPli„Û¹iéì\×7Â]|D¨­½äͺ_¸kg‘ÝJR‘±¥ô…“Wã{ìjçïMµ÷o7ÑÖÌ͘UC=tUOÊ]FÆl\Ìšhm7ó#½ˆÐ]OÓ˜LȘT¶–Ï_Ô:píi-9¯íc/j}úVjCqáÝie+q{ºSº `þÁ|—î`¾C¶5ÑÈj¶pFÍ,ÞkeNSQ{NdÑÔÙ8¥àºÍź§šÑ pµü¾’Á޾ÄAvoŒ™×Slh&zO ÔlY{…{=²}'G°?ÝÚ³:Ê@l;ëñ{ÓCû3½¶wuwšIwk‘)‹LÎêh#yJÇ‚ZŒË-Æ%%$m=¼6ÊÂ,[3Ã-˜ÝɶÞÃYîÈîL—f}œ#Zmm×ó—Lõèµñ®¾] ¯wÿ§ Xä ¼ëÀä8鸃©Î¡W¯nFIÌXÔP+÷œ]C{.vϾ“EwëèI9>aÁBîÍÒÉ'K ÝãLÒ¦£•µ?Û.:˜dwìO‘j\ üº­»s|‡² +x}Ÿ=Ø.J‘R›?9{ˆ©ˆáà7%ëÛéŸm=­q³ÂÞŠY™¼Í>$oáµç·â-ldÂÉd·jßÙ)Z··PÆŒ,“¤)cdP„Qó†`"vo4‰{a¨§e¯){Ú÷­;¶FÔ¢¦¥Ü%î.1t¤«[xIŠ–´6,Ó Wû7­ÒwÇÒ'Ú¶ð¤–Õ¤¢a š>Añˆ_9¡”¶«{…ò~¦‘§Á8†¬Cv™^¨åë$ÍŠbK’Bª$¿"ƒPozÀLß!œ ^Û6Tbí釸‡ZQß\¬¿f›Ú.²Bö\‘]ÜU2Ò-›{$e¶¾Ž¬m}Ѭ +¿¬#mY[×¾žPt"uÌ/ºzÒû 3WˆÅÍ Ò«‡Û± º쪙Í:rq$ßç»´@Õm›Ñy'3Í={´bëîp Ö¨Û°E$ü3 Ÿ[>§ïamÙ9]kƆêq3ÓÞKJ\d¬Zר†øèä““]lú¼Œ”·cg7®š[I‹úfØ¬ŠƒtHÛÊfÕ %˦ô²‘¼~Úü0³Ð>ÔU©• a¥QŽ¡¿§Ð*ê¯Öóxåz‘¢^ÇS7 ÷éë{ÈQÈævArQßM_µ6c—ì­Ô%@Ã.[[ã̺-ÀK¬Ùë‘Ë6@«YZñc*µÀ,7ˆFUãhÊãˆbÙ-’P&…ÿ_Ó{_Í~R’X|ƒP\(íì(›S±a«¦VÜÊhCݼ™Zº?Óʽ˜}u4Ó©Úq5Ô¯;šHËÝ=.K'ͪîÃiDÜb½°2"êƒNëúê§ô|ŽEă[œ‰/m5‰¸øqE+Æ¥!ƒ'dØÄu3›²3Ö¯Úv +Ææz {Sñá4›{¶ÐÒwâf°þ¹ÑÈÿkµuðë[x0ÓØ¸ålb.Úzº¦u¼vC3qZÓAvé:è£CŒÜ9skº¡qÙŒͪ‰ùkæÎî݉~ýÖXG笥¥nÊÌm´i4âaþX“¸sÅm²eqèªN,ÿ½$•2‡³ú™ÊH"º×³L}F+köãR¤©\Fº¾›“>&lÍq«;ê6ǶE«@6ihÓÈøµñ0B$žjêåNÂZèC¾"º"Fצƒ8CPKg_ž•/‡+:†A‚zcR#Yÿœƒ{TœŒz7ßB‚XW%ô®„Më€lw¬G8¯ãÐmâÆl£ˆW-ç©‘"¾+àÙ±m¬á„f²Â¯9’Äm›ªicS©™oIå$‡r7*ýË»÷9—|žÄý”Pz•^5$m²”˜¹ƒð51÷`¬®`w_ìÔÔCä]é¼zU4—& êk+øŠ2EO_º]Ì…ÏkŽ“š!®V ¨4u}“8ÛjëÞTÇEü.©CÄ̉dMk†ÞŽí±ññ ðtÚ’¢Æª†Û0#iÈqËéù“|Døì`KµuHÞj–óÑæ¡´š×‘¢êi +æä +{† ¸Ü ('~G¨ªÝBîMèd«³HQpIñyN +úyr\ííü´ºû¥Y°wllkðpOº]#n™éiYtÛ²…\:§Â¦:‡ÛVµˆ¦jðÝ­p3]™ÑJ—g¶Rµ¡x‚é]RùT̹’™Vÿ÷ôLÆß_¾Šððzv¹ ‡pVË|ÕÏl4йUSº^ÆÂ‡±nnfº5Ä¢Y½È®³•J5c`@ZØÛ%Mëíѵ5*£ˆ¢/,Bw<F +Ë©}[[HýP”›• {J/¼O¨.y,d7 ¶t€å!Ù*—õm:¹Ò @—Lµ´]d f›÷ç¸Úé>ÃúxßàœÛ6nä*%2¼˜+.ä5v‡Éû¡r¡'jã&HÛ81:a{ªNPŸ<¥m§î¹zGSâ%kÛ¨R÷ˆm¬Ñ"«µs ‚¥Ø}+j$÷Q0ñxïfV2î—ØHØï™©MW² +Å¿½Dx<|‘ñS`ä×üÔº?1M/•Ý]©N;­—HÌÃF•Tîèí9PÌNw6½í(‡Ò´PG‹©U=%ÂUž$¤ú9¶FxZÆ +*è¾ Îç]ÏÊïýÕËìñüE†Gl õï0¸á —3 ujÔ¢u+·wZÝZ3©lGØTâ–Á!sK}ÿ\qk!Eó.­ÕßOÏíø=·€w T$½šË»ìˆ¸ôØ3ÃÃ'{éӲǓw߯|ôð‡þZ˜ßrx¦ìêMœ3¶â­ÍD½¤,î*ènµd²êGBIT³7³u%•ÉZJ`·Ne5ÒÔ_ê‰C! ”a,Bü$7‹ñ›ç“ Ÿ>= õH]-HÅzËi>Ún fF­•-›ºZ×ô Ø];whÍ.u´:?Žãò'Ý}Înÿ:¹·o™ØÑ:’Ìf‡¶P AD²Å§$¿þ—¢ ìï%Ùø{)qÈ_?¼Žþ3#"׳Ÿ*J㑘/%DðI]Äï3T¢A¥ˆ…#DÞ€ÕÒëᣟ!Â'eURÏ:Ú”i…ü¶ÏgÈO?\Î*h»šâýúÎâq÷A‚Çý'iÑ´KÞ”{øã~Æb ²]+ë[íéŸiBÙTüf™ÔÞÑ=°@¤³çRªêŒÏÂc(¿|ô.½‰ý-$ù#9›ÿ÷(Ú¥WïK=‰—‚âX—¼*óðôÁ{dƒõ¿WÕhÑ ’’Nqž²›“46ÈL¤&™ùèÞþ‰ºÆ®…B +ÛS‹7xæqî•TË”WëîÄDÿöþ]Þ¥û÷B=^¿J÷øä÷¸ñ¤ÀãòeOOÏÄK +éý¨Äú?^½+¹š”Lx,ꔬŽuvM·l6ѧTìJ«RݧUùò!Gÿ€ÈÅâŠ6›­3)h‚æUFîE¤X?£ñ¦HßÃÐÀ’?RRH×â ·Rb³<Åí¬¢UC~ÑÒ€VˆÉݺRfçl&¾y!¼‚ìôJ/“\N¥ü›Bý[@d­ÇSï<ßnùy¼öÊòަyxùÁ<î{¦{$Æ£/3I’’n9Ø&멱šÓ ÒA¢Xb$µö“ÛÖ’‘õ«¾5T§W1Úz'.»ãoapÈ8òOIi­ ‰¥y<õ)õ¸\ëÞË\~(·þøKoÐ/*aßæuirLbbAÇm\4ð¹ºþ–ai˜'æS¸)`üÔ£<Øèµ¬ +ãÕèìޟ߇S=n>{¼xSêüô!„ìñø}Ç ¤GPBë%ÿ¸¶ŸÞ…0.D7\A½Êg÷&Í™z:æGZëmÚþ†VF×'&SÀh²…Á c¯R …¿úG3ŽNïþ=1£ëç×ï‹=>úVý•Àü{DûÒµ'©¿] ðxü²ÐãuÆãÖÐ¥€/økXœ*J%pôÌ딦}oפŽÃPÈ„ðÆ6K³w BãïCkêW|Ê1Ž'•è±§¥•º›Y¹½—Ãb/'¤uÿìÿséÎÃxw>WK<î³Ú'R©Képæê§Ì"韑‰¬Ë@ÏýÝxésÑãÕ» +Ï·¥Öá<|âÙÏý ?ÝõªþÛ+?ÜO1Y’ßR ¶ÇyPñë^¶$kÑÔÄXÒÖ%º5´<«¤«´Ÿ=˜ÔÁ5uÎäaèc>•Øé´óQaõÈõÄôùŒðøDøésùÒõ»ñÞ »ÚüKX æ +( ûÜ®âáŒmD¹ˆWÆ #º„NtSÏt!¥m!Éœô)FÈïÇd4ÿšH¾ìGøûm¯ÌK¿^ûìñ»¨7ÆOéùÍà}_DÝÃU…ˆ´h`#2jʘ”’j‘5d Öt LÀ˜Öxcè £|X yœÒpQÕO¯>¦{¤ç´þ’ +ýžÞyÙ;œøkx<ófY¹ø Ï/íj œd$Ì«HÉ«F:Ä­oAOkš*5"V‚ˆß•Ò#2V7ôLæâèz_,Õà '™ßd”IoûÆP~Xù÷°8âÏ1i?'æ²näTô>ÊGJVc5/èTë—ž&s¦ºW _5µÑ܆ÚäqYm„EÉAðºøàž^MU'ßRQßf‰­@ÉžDev\õ‹møåC0îÒ{P¥—½Îñð Ç]òey<øPáqà(ïX¶Gt¡å—ü*Ý+Jƒ)C#i_2ötLÕE[ŰϣJVTªÆ°y£E ‚ÙR o;JŸÿX\c¸ ®T_KÎãüzçy®Çƒ¯?Á<žx•xÜ}œîႺ””ÞösN^çÍdY y »`AÍ,Z6ÒJÕ]¸­x&ÐV×7*ê»æsIÝÙpÖ|xZý.·¬÷aià~Fù,¡¨ïþë ø¯þˆKqY-—cò»n'–t¼ª!Ë}™ì‘xЂq¨{`‹¦†ŠíÉ&æÞL»À¡ë&Éä&v÷ ‹ÖÐ;¢±TÁªè=µað’(ö*¨z¥u¼Hʯ÷L+hxŽ`‚«ëa¨zmPs›4\9Ä/1)yðQe/rÑÔÕ8«¢f-hˆY.!Ù!gæJºØ ü>q~Ÿ`¸˜Õ& "ÔKÞ"˜:ߌ²'¡)œ[¯‚©¿=|[vés$îrt^÷hÐÀÍ<ìèSuìMNìMm½.»_6ưé¥Ô%)mVV¸fÀo9Z›]ºnºR9ÌáJí´V¾£ŒÒ6‰¨_ .Ã=/BÜM/ýúÒ»òÒ7<¿‚Ø ý)(ö¸ÛéßÙβ‰9¥»&2­oÇ[T +®V9Ü)•)q|uI×TÐÒiLa¶èBq$ù[Vö® .~ŸÛøgXîNJv˳ÒjÞ‡F¦"ÙØ;BPhÄ˾ðߘ±?#ä9.ªòw¨š‹Õ + ¶—+H£ë_àõ÷XmÓÙµT«?¨²÷iRJå$¼ãAað-yŠ%(B[šdYb®ªL'ì» 4ðá(©üÈ/ÚÁd,©ðIËjBŠ 2ˆZóÔ*sH.E ùâ<~Ÿ¢€Û£ËolRá(o˜ÎWhlÿ‘ÐÊîîìë ëîÄ öÊK-%É­ îXÛÈÇLüšµ``À†>«F!Ðk†Ør¥ÙÓÓÑØÐ÷Cѽ/Çß$äõÜKhø9!§ã÷€èºËAñØ¿Gg·ü•×þK ¨ãZz¥äf5ÑêÓß?7«õcÒ–ê¾:‚­‰Ý uÊÜE`'q¹ÜÄɾžëáìAHºåcÉô68µþúÝçi—½Èöð E^ú_÷G¸å1.òj¦*Cô½𴌒:-®êÈ…n³dÉØ†WµöÒBe9—g‚ôôês¹B]Y'_nïǰ¹ò$z·-­š8X‰hñÄPùÞ¬^¸P–;44PdTó`.C7öÐÙ@ø¶È`üc…ÅùºÐÈžTÒ²Œ*M­Q¶«5Ct¹°?_ÊíI÷u% ðú“ùBu)_¢ªæ åÞ^u^ÿ …40¬£ )yEwߌš‘·hlE/´bWŒMHkÂoEO-ßma®±g͆UÕQ©àQbxMå{Ù˜×ÝY6½CSK¿ªdè² ‘]±0"/‚Ønˆ&¶ë"zÔQÍÜ¡ˆn±¤·Œh'úú·ÔšõXü–Wy8Õ.9œåZVÆú†Ì:QL.¬ˆK»ú•9ÁŒÕeO'·Ùâ`®fw>ŒÉaxe”6}FÐZB{d|ŒIÏ%ŽKñIή<õË‹=!o|”çR´À'ÕÝuy{™EÒ]l•q+M’žiG[ˆ˜#Nvªóyu‘´OU­íª° ðÀ3ƒÜê59¾oîl=oïܵ2ªç¥Ä´%¹äÐÚÈÚ±Õ£f†6is¾–KOPw‘£ *G28T=ÐÛŸ,ëfÇÙùEÜ*ïEÌZVlÔUKiÓÖJ>œhi˜ØÖ $^T†ÎŸ@|K$s^0X½aÍÒÔΞx!¿7}J'騱‹õ›&vãÊ0¹èÔÑÞqîìºÈØ¥ŽóAïLÜ¢—Æ~¤¿A"ÄHøFt7P«œkM‡À 4øW”c®•ƒa×HêÓ¶ößAbÈÈNåmIÁÌÛ³‹÷Ì$È™£¾nAPúÅÜ÷ÈÖ™xÏ..ý0®n,áJ?QJn×S–&»û§ôÍUÖ!Z²–OŠPsIÁz3vTƺ]­Œ  v0×ÜyænåŸ/Ô3O'° ¯.|Å©‹X»gÇÍ«™³öî.‡Ïž5ö°ö'Û8;£m›66mËÞX·i§W, —Œ”‚yCjÎÌçÏ[Ûéã,â†I^ÔRr×ÍÔÒµLî²¢*tARñéh”‚þ¾Ð©Ù½ø®ÝF)[4ÐK\2T”{¸"|ÅD.™2rp§W vу-&IŸQÑi–Â,Êæ¼1SqÖÜ[0²*w\ì¶³…¶Á];¡xÓŒM?ž©g~]ê;YàÚ¦[zܦz¸IÜX`3²'>Óò˜#ªn˜ZÚQ¨•MB¹Ž1(&*e”AÉêI©Ó-m‡ÎÆ·¬Ÿdb¿;i¨óI:rg—?7ˆŠ˜ ‚g¤¸h¯.d^IÊ]Tá2•˜¸©øb†ôÆ0"jYQ½¬ý¼¸ÖoN„ +™•Ѳë’M˜Üã‹34VJÙ‰ƒXºgÂ^äš2Ð#ÌÊe%<#Á§L‹qù CèèI~¥ï$â’b¦4Ô¸¬«fLÜ”9+§¦mŽðDkÆÎ¶-3©jYUòeI˜á¹¯Cf63¾Nµó¾¹8â¯s¦l°”塲}S=æÈÑÜx4ÎjÚ©ƒ, …³ÆN²ËÐ[o•·B ]è€EutKϪÝÔ +ºÚÌ} |hÃŽl p=ÑWWÐë´²%:z¬;ëõº +šxîÄ”:hˆjõ´êëì/ñ;™¦7:éuk€o†Ð‰‹âªˆC |‘ßq4J,]×ÃÂÖ´ˆ¨S' ó}žFÝ5Ã]Ï/f(*¾˜Ð9ÿœ£`÷g¤) %Ç)£åœ/´ +75ðØ…þ’·ÓðKkSÎóùþÒ‡FlΩƒ\Ö!†–ÜÇ‹*xî¶™Z¾ …zÏ +¼œ}ÙÏçù¹/ÿí"Tÿw®¾åŸ3 œã1|Õé4“þm±Ûr6Õܵª(û2Ó•ñÌÙ•ýÜ=Xìs:E€/µ÷&騳Y*ö?-ƒßgYœm]mÁ’4?h^œþÜ->ŸÀC~L‘jþšc6î7°ÜZJᆅVs4Í:šï9šc v'YÌu¹lF‰Ž™Rs×Ǻ„ËöîîEs#by¤¡zUÏ„9hu_')¸3 ybÆ€¾:pEßV9#K‚¢W»J\2€ýY¨¸g*bæë}59{K^¿§Á¥/bc—¤ÈðYqU€ŽžùðPÓˆØ3ԣו¸´9nMðþ0&ãÔ‚Í?±Öe­•šÙÉÚŠ>ýlfdþ×$«þû8´)Ï{³,L{°­*ú¸g@&XèG¶F†–\ºª‚ÿï9¡3tdE§o¨Šü–$…×=Z’#–•˜„³1Jõ‰Xz`¢oë` K’ +¿™þÊ÷+Rø—]>wZP0Ö~¶¬DÇÏŠª¶Ôè¸MY•ÿLgæÝ…žÜ‡ó}E^ Àï,˱‰Æ†¤«+CИ½:lA€MÚRÖ%. +ý¶µáÇT¡ïUx4eÜ£ã®ìjyß'›NFið--<þØFï°é{tÜ¡™T4.ªNTÕ§¿º˜#²0P¿-/?1UÅ!Q›Ã™Aß&ë G6|þ±Zybm¢ï››¶Mõ··¡* Ø3C&¸Ý±œ[…ˆ\“ÃâÍø’5yåWgç$'Ës_ ;ÐW}91cs€ŸUl¨P‰Ûzlêž +]V£RG‰ç.2l×€ÍÙV#bŽŒµqÿrá«þµÀhÖ8wg¤™x4ÞÖ¶ocÀLXð†¦:bK‡ˆÛÐÖÆí›Ñi;D†¹$ƒ~>wRëŽG±àc,ó`š|r‘­«Ù7bÒL5µ~›e±ÝŠšàU%2ñÐÒ@ú±«BÆí«`qûXü²¤ÒUØÖáó÷M$Б •òO'©ê»ƒTr:‚L^èÍx½&Êÿ¼ØŸózI”ãõŸezã÷ +eC‹HtÖ¦Y•G£ˆœsWmÞ×IxËP“±gAg]Ì\ù>ÓÀÜÕ¡Óf…Á.~nÄU~îd2¿Mâªw†Ë¢¶‡!þ3RX䦅‰:›iéþ§»Mz:ÛØ²çl í9èuû–ºÂ³ båX¶o¥ 6Œ$ÈþL3ûp¶µ{Õp1 úyY ù¸.)ý´y1GÇX›ð¯5&{O]´­ªpò ÞmU!W´”¼OÇZfÙþ0)óPOÌ™¨ü°((}³,){¿&…¬á“'»+½§{k>iXðÖ&Üw‹wõаÑÖ¸[VÌÕÉÖ´‡ÛCÈÔ}½jS ]¿_“¾;ÒWEœš.r'+Âç%AÓ¼"`*|NmäòS;¥jMQæï¤Ü_g½ØV—îêRŽ,¸¼#Úžþ|²;ïé,¿ÄËɃ¼íƒ…ßX—À#våˆHgKÚ]-.âÊ2ì&âêDKÆC{sÊEEE„™ ÀâîœheûBΖ¼&bUœ÷ÞÅIò´±b$^Ÿê̾§!æ¯ÈjÓ—{Þ®ŽØ×#6¤•[ƒU~k²êp9#åtÅ-„&ý5ÞÒòÕB„Ìöå¼o¾?Ó~ÿÈñÿjG¥Z0…‡LÞÅ ‡]srÇЀúkœŽýá"×:Håÿ›Ñ;‚N<µ×å-ŠK?ÎñJßnÈ(¥ûrñ© ‘¼7\ê¿.)ñque=u”|ú%÷hœ\5ÌÊ~0/®ÂT¼Gü1SO?°‘kV†*C§{s½vµåá‡FýÙTãû q>)=ŸmæM÷¾ÏuªÿŸ›Ùü} ž³¦„. ÚÒÀ"#OÒ°+j34ðø#3¦äÄŒ[pùÀn)8bGSæ7Þ“u¬³ðÉ¢°ÚoGIÎÞBÅ.ò*>î«(yërL̦XWiÙ‡õ!XðT_ù[k3èÞâ<øÌÄ„¯‰a¡‡tÊ‘¹.s[‰Hýagþ°•…}µÖÄ­(áså¾ZÈe'#¸¼u)Ч¢"/{Sì!ôçŸMôÈ+§ÏÇÛˆ ‹°Ì_LJ¿yfăÿÇ‚~L s­UQërÐû™Îô»3m™·WDði!>vª§âͶ ¹"® ]•UŬËkÂÖ¥Õþ³\ð‹©îbŸ-!e¶·& ¿üËeqEÜ3-û‘«#ûÅšôî@OÜÔ!b´-¹¯„ðØç9ï2DôDG潉öØkVFìµ1VÚƒuäóÙ"aÐJ|Ì,ÏóIBÅ4ôVЉýCCNþs„™ô§üûò@‘÷¾¹ pêúPmäš ™±¥Â×ìjPYJRПjÒ§£¬ÀëóÜ´‡‡VTÊ®X0ÏG¥®ð«bþ;Í »(ˆ=Ku̺à[IƇÅܧSÝ '›Êú*·=ß—÷tE”÷|s°èíhcâ5-1â •ß¹……Ÿíì”›+’Ê £rѲàY…ß’¨ì£[PøfKVðéÇðD„âqy€‚šz}CƒÍ:£Â¬[RîëìH|²)Ü*þpd¬ ûæÄ—[9é¯'ú +ÂþrR‘gvd*PkyÇÖÚ¤IÖ+wêã-yþÇó1x®½È*|rlÁTü{ŽÁø÷ ¥î@W»9p`Gª§´æãåMMU£(ðVšÏý_ÍÙ~ÿ¥âþ1/Ý”•ØH1w4È «6zÌÕ¥0pM"t¢ ì5+þ˜&¢ÿµÈh:4ÔežYê²w.ìJz°(Ê~y>‹EŒáá+ +dÜž‰‰<´5s¾N0þo–Šÿk _»%‡­ +3¼\í wþ»ÔÚ3ÀóeŸ–DPŸ5)ÔoWS²>ù°Ô_úÖ-B„Kˆwx5Q,ôWíiH9;jl²[\égmH¿¥« ûc…Wä9ÃGøŠÉù+cß\Ò ½ÎôОìä¤Ü±°"¯é)Q×ìÍ/¶‡© ocÔalÊ®“r0Lï áÏ ¤üMiU°žyUŽ ¼ìhI»ì{àš²:ÌÖ’|c[Q +àuʦ¬äýhc½9næ‡uY‘ÿ<¯Ðsº§ÈïÜÖÙ½¥ìdMrŽ–ê ÙÞòs "íd¤2rMþäâxñàQ×{«#nþåd1¿^äXé¡_ôM÷†Ð¯¯ +ïh/Ϋ¢ð™¯þnlÎð9#@¶4Õa +|ÌUL‚×oØ8¯_d5á¿® !§`²çËà 1O›î‡„þÐîgöÚôuYΛ™îØ{&Æ—«b”ϯ£­ w7ÔØ45=÷­­ôã¹­™~f&ï«!îþ„{ +œÏozâu -ñÖŠ ¾o¨MkÏzy6Š+9ôßPyÀ*€ÿ›2Pðž¦(r¢3ù¾’{ïÈZ—»(+ý2Ý“þhCVê³.©\“VíÔ$¬ÃâøˆÄë¬ÿ¿½œºg¨Í›俞¿^öyW]¶§¯ðžµ¥­ ³6&ß™êÍðù¿%éû4®àçOs +yÏíMé¿M‘QgŸÙ{A~ZZʯ4â?ç{:Hĺ4ãÙÆ`QÀªì -‹96WDÿw‘‚7uƒc)`ÿ?'•‰ÿX겞¹šÚ÷ uÙË’œgfFÄŸÝ%o¯Xš“ßœ9‰p&èã•I.8ôÌF)ÿj#i!Ÿ­˜<€ß³GqK¢ì§£ì°?ú«_ÿ$¬ñ¿2+©ìĤ^ÕPA/W¤ØØE "h–_þÞÜ”÷ÌÔuÏÌ̺9ÕVübUމ¶´½¶7eÞßÓ¡SÖ%è¨ âË‘¾&¨Í -y¹À»o'Ûsîm«Ÿ£Å¥n*ª‚¦¹‰·ÆšCÿ°Rc~ŸlH»üM䤨"P€Œøm¼µÌ¨Y[ùàêÌ~2„¾ÚZðG;Øûg%ùÆ4úIYŸýLCÏ~º(®šì,ô41’n»:3žØÙ9‡ðqWúÊÃ.6Á|UÌœ×CäÈ[îbßmeMÜ®™¸7LÈÞT“w4ðeqÁK@Ë…-ˆQ +\Æ37¯2þðÒna±÷Ò@Á»MiñÇYé'3#îštå¢ßÀÞó=yO%°¨»"hÀµÉƸ»êò v\Á©…X<χ}q4‚ŸìË9¤y.2nWYµ£*ñsr2Ÿ¹8Ù¯V„å@ãÓ8vôu+2Xಽ%®ÜWx­‰r_-ðò<§z@ï·Ô¤Ê--³j´³Ôs~àBgⲦ»+|lÔ¬ëNv‘çx{þ›ñŽìgŽÎÜ×»:|Éž¶.k~5×Wø~¡¯4hž[üv®'ëñ†äb~Z®ßx[æÃù~ˆï‰…27å?5Ò’n8þèq¿5iM芸*xð.ø=·&üæš‘¼¥Á¤JqÉ·XÙÞ?ñJƒ/k°1Wí>Ìð ÁË*\vkuä}JŽ×ßÎÈ›ëê+òÕSc˜è 7-ôô[VzÒ­c3"‡ +ò»Þ_ûfÛD(Þ&dX©wÔ8@ã“Ãþ´7Ç\5у~ÛRFü{„ÜÒ!ãŽ,¤Òùþâóܼ‹ÜBŸ5Aq€ùÁÎŽÌ—³}é÷ÿo•L<²£@Óý…ž;ÚÊèó‰6ÎùxkË¿ç™õ§cðtÀ­©¡‹Šò€£1*öûlûà± ÞTׄïé ‘‡Æê¤=Cu,àiÊ¿ÃCü1Ö ò;üã¡‘{Q·'6|áþ2þY‡ªš¨y^ÁûÑÖŒ×x¸¬Æ% é…÷-ÍPÿm-½dQÿ2Þ“sñ›ö‹…•y{®·ò³[ŠS]œÃ¢¦Þ:µ×£÷€Ú^ÔŽs’Ÿ™X_n:ÛÓn¹89w§»ÀžK2X¸½½ðÍ‚°*Ä-,ÿ0Ãɾ7Û–÷x}ê½£‚Gõd=SáB›í„øï Sòì-Ù·&: ž+)Ù¥á×ŵá÷§{ ~‹rd¤„–þ@AÊx´2„Jå}à@C~æVü]Š +ÿE…‰üe”•uÏÕOMfUÄ^k…†\ßÕàËN±£„Þ£2ÀÙ™õt¦'ãÁš¤àåž®:b¬ú®!'ðgGkQØà9'»r¼–ýÃËy:Ú»ò¸vÈ!ø]7,äª{wSˆŠžç€^nŠò^í+Á¾îþD'ꥭ1æîÆE¦••EËóýS†‹zzb”Ñ9‡Úêȃáʰmyõ`¯RÝYÏÌm9;kRžJ럺Ðö_ž +:7cóµØüùþò 1þêö0:u]EsJ?Œ·Öúű‰Þ"¢¦9yOm)·\m ×­ !L¶%Ý^¼Íª +ÛTüå×vHðÍ•Áª˜S;6ÀùØ‰Žœ·fV‹é^À§ð ûZÕº +›6DL¹!¬K|àè€-ôW®J*}§ú ¾¦7§2ô*öèd”\î–V«)É·dˆðkóœÜ7[’2¿­Á2¿ eEPKyصáÆÂè¹$CGÙXyO,¬¬÷ãÝ¡ ïŽø×²øßs$IJ±7B‚˜x‡ñ½¬‡þ2Õœöh¼)í…“þ|W]ðù?n|Í¢¥b¦Ý_UW'mÑ™,g¸âC{Mô¦ºÔg[Wv2Qþk‘Õ~h'T®W„Y1ÿY S¾»0%Ûú’Àm8hI’úfa ×ó؆+;gÔí0iGf_d±èê/>£9µ3‘'&R! ­W+|gû‹½EU7d¨˜]#º¤Â'®(kÃgúÊ>LrÀž«2XÈàë7†ááÓÜ‚gk‚2ßoNv÷…·^¬ÍÉw­Í1wWEPß=5&õÜB¯]Ñ Ó -™÷çEµq«*Bš¹>ûÆ0.æÊ0>öú :èŠø³™c•_±¯£èééw.æíèÈ E*tð€ï >è*y¾&EGoDçä£Bl˜¨‘¦J'§ìÃ"ê½9„ˆ\““F»*>L÷W9³637µˆèM9,lOE…ìÑ¡+‚jßE>ÈsŽ—ûrºðýœê€m µrZ„Hjö…õÿm±ä9ÓSøz´ünAP¶0„ŒÒ¬H¸³¯C¥Žµ$\w¶Ç\›ç¦?pµDÜ^¦¿ÝU–'|¥¡íüª€vhÔ5#³ÀïŸÎ–žƒxò\Oö£éŽÌ;‹ýàó¼’w“ý¥ŸtmE/Jâßÿ\ûòÖQlá¹­.û@_º4ñftyuy„üdžº:¬µ*ö>(äùÏ#M¹~Œâ!j÷‘&×ûp8ßÛÖqSûü·ÉÖÌÇfré,¿Ò{ŽWþyk‘xçì= 2c߈Hê$ÂÉ+zÇ«ý£§*öÞxÔ[BJ~2#€¬É*ã–%¥q§fTþ÷‹ w µbCUîàdÜqK«ƒE¡K|(ÀɨhmCÚ=%9öÆt_î›ý‹ÏV´èDG7äÅd_Åç--2mCTà5ÃI}0Õ–ýpž›ÿdCQáwlô¾uq‹_íÑé_/rÒŒº]-ì[Ùÿ˜'¡þã¦Pþ³H&þcS}`…g»ø©Çº£o­© áÆ–¬ {WÆÇýѺң1|ÝÙ8¼úŸ3„ºo®:ȺÀaî³£QDêê`UКº£Á&ŸØ)åÛØøC]ò¶ +À8Y¹Ï‰™pfÆçïhɹË2lÔ‰™ [BÇLu?›ë+ñ\ƒ_¶ÅÜv°¢ïìJ`á'#ôê™î²wî>¨ÏW3­âÀ€JÜVÀC·”ˆˆñެçËCe> "°×†²6vÇDƒØØ÷­¬œ‡.NÑÛeaùçM1"â@AÈÝS"3\Ýùoœ¼g‡FLÖž—¹6ÿ²"¯ çB>ÚÚKÞÏöV|>·1á+*RÎtÂw]ÖT¾0DÏv"CÜârŸ‰ö¬‡nAñ»-€Ÿv5è¸S;±x]^æ·.­ ?44áæúqÓè+KCÖ!ü†‘sýÔÄB혛0Óbl¼‘w{WI:t鉗¿­¯ +³6å=a€›ò­ £’6Èø5E%ÀÍØÂïͬo6Z‹ ú$D…_¦&Þ™B>îÀßÇ›Yß/fzJ*|6TøÜkkÑë‡YÚ+>éZ˼úPé˜Û €Æ‚Öä…o–¥Ù¯Ý’‚à~C6Ä¥ŸµUQ³Â"_5-ýŽèO@×–žYÑÙKü´ç!æ:_ºEK°÷¾¶&öbö®w]×çl!C¿Úëò ðØ1NÚci]àŸÃ”ć斜¶6È'CKÉ›¢è—W†(±^çVXÊ|Oö‹)öÿjûÑxsÆý™¾Â×{¦º<1#Ë3Ýû¶9õÃ;|ù‰\½1Tä;ÏK{1Ù‘z{ª»ðÙ‚¨òó¼¬öK7:êvG¹ïÕ5"þHGÌ9Ñ#â¶Ueá‹¢ü€-eqб¹*âØŽLsô–‡[ø`GN>³Ö$žš«3¾OÔ•Ÿ"Õ¬)Ñ ¶Ö"/%>ýú¶†Pº®­K\VÕ†Í K¼å„¨'|ìËm]Mêù$®îÜIbÍ UÄH)±÷Ö4•ÙÿYe4ýÓMÁmhÊ"Íͱw&ºR¼6UE_N°d—¨,¨<öÝï4pàë Í|ÀÓ°ÿ1^}l…F̈r='rÞÎ:RKÈêòÓ–—t0BíY(·¸£EÄï(ÊO °èueØt_Ú³¹,Ϲþ¢W#Ä‚alÚ<¯Ò{MRû¨?À¿¢¨¤]k\=ù^:Rì•…^HèwG3s×€ŒÛRÔ~ÙQ¢bíà·Û*têþ.Ï@̽˜¡ãì=^•¢â÷u”ÂEAÙÇÙ®‚çã-IwG¨WøU¿š©÷µø¼U6i®¿úã× :êh”Pt`®ËÞÕUÇ›`I€·ŒÙR #vÕLˆ“‡ ]DÅžR+ÍèôxÈù(©|SY¶"¿Ù*õÞU#ãוøT2éÆÅŒÐ­a\ÊÆP•ÿÆ äý™…Z¹hﱞ—rtÌï'fBá¶“¹¼‡M"a^X6É)û4ÓSæ{h¾øþ‘\´ ˆ»= rì`â.ò$ǹQ2JvÀDwYâ?giÔÿÌQÉ߯pµzx梤ÜgMK.›•QjgÈX»ì’˜qï"÷h² òþÐL¯ð7~U^á{æ "¾N6Ò/²Šæøà·:zü 9Æÿ·ÍÁœÿp!sÿµ@ÆL +?¼î}l¤B¿³èß§êi?¦pCKeÌÊ`þ»e~¡×W; ¹;B¬ÖÐÓžm©P‰»#ø²]#&ÿÈJö²6ÎÖ‘êmj‰zåä&>ù:†"rçúr½–…e §VüÈL©8°PË÷Çèp+¿ôS/,⪎–õtSC)X¬ kÏy6Òòx¶ôГ9'VbÑ–¢kÎ|jjÏñ=0QJ—%ðÐeAñ«±¶ô'jBøÝ©Î4Ïïc(зrݤ°MD9pUç$À¥…nIEÄœnï« ^ÕÕ}Ÿ¥àV¤ÅÁsý©ŽÇ°‡Nãx–ÅÞ§ uäÂ]í…w©Ž:6Á“ÞK™í¯ú¸,«˜êÉ|¸-/ó],ÿloŽ¿áä$ßY—úœÚi5£´š -.yßH)^Wùlþ{}¨È{¬=þ¦¹!áO33ÐW1ß&™›yc|摎µ%® >Pc³N­äò- :qªòf²#ÿñ¦›¾(AÆÛ[rîÎsKÞýõy®«Ô²µôÓ +¿ÒÿP‡Ï]—Á#—å¾NPj¶õ5á;ÃP¿ yÙç=@kžZPi_-Dð6µ‚_·ƒ>ŸñùZxÌW Yþ7×¶&dMVt4‚ÉÚÕ c—<7ÐR®ŸXˆeùœ‡“¹7”U+r¨Ï4¯èíX[Ϋ3;±dU‰Ž_’#£.ò7l¸ü 9ð~Å•~ZtÚ¡‘R´¥¢ƒ¶4Tð´¨&df²ob7˜Ûš¿:šèÿZd0ÎF‘™2Èg7üfCƒÎžÕP¡fá{%ëñÝRÔ¥ìÈá±Èø EMÔš²*hS  À­øü%4x˜þ徆ðpc(çãÿ·L¥üÃE‚ïé`‘çtÒÉq6ACìYH…kzL’[U<;~}1 kIMœàÖ|Z‘SA›ÃŒªÃJé‘ ™²&¯ š”¾jçÓ©P²o¦W;ºÊ>Œs +ž RŸ¸§„†üˉƒŽÂó7t!kÊJÿ‹¼­e ·Ì¬Ü¶úô‡G¦ZÀ ³öGgNü`’Šì'¤>—Ð üæå”¢ !ÕÙWë3Ê.}©#e<°6e½ùá"Öþ{‘ÙðY2jË +OZ7!’þ»ÁdÿcžL؆ÅÍ|h´>Àç‡c䊀'9´ar§ûÁo܃e¹[øç³M]û£d䢲êË¢²"+ù0Õ“xsM”öhUTðbCNHÝÑÕW-‘rÖÕ„´==PÛòÚÐ}-,òÌR›ðc‘yÑS›xô¾­=Í+óšãå?^å>ãçznÁ"OØÜïv|ÑÅ3$[JÁ¾‘Qx—°ñ¶ô[ö¦ä›ËƒàêÊÀEa…7àuâVdøK;ØÓÚœs÷@GêhŇxC‚ŒäU‡\k{_Ó¢o® !ïŽm´ªY~Ùû¹îÂ'ÇÿÇEA~Gç›k%ö«©9/æx5¾zzæí="髃 =³‘KÎ,ØœáêðiÉ{Wwæm{CôïûFd€I¹æöŠ7Ó|xÈŽ“zhªK?³‘Jv4óÏÀ~@ùmië²~L75íí8\º.« ÜVû}5ò¿Ù˜È ìà‚ŸÏKkŽǺ%GîЙ£™ú}à‚QTÆ©‘tj¬Ë9¸am„U†Ì “¾7·”ÐÀ Yñ‡5qÁË^¡×‘ Ðm.êtœ‰1¶—½í¨ +ÙÕ7’YùÝA.=¶ÂʝVe ÷‡ÆÚÔãTâ7@ÓψaÁ[úºÔÍ3éߜĚ3,iGS<Ù›òÒÞ™ôÐÙ[ðü_ Ìæ-S]‘‰]ørv 6äÌÁ$Œ’0§£ؾ6~C^䨭Ž:С4UcÖ CKNà¡™Ryl§VžØð óIbí÷)q]ƒŠŸUú^d)ŸN¶u_|ï³o¬KÛÓaÒ¿›ýÕŽÿ{ +WqlÁLñ˼§ ŽGIUJ“¾ŸkSí¹/—‹?îaIg“dä×©ÆÆ V\ºˆ‹~?§Âö͈Ä-M9З…ï×Tˆ„- ­bÏÚDXR’ó4Ð=[72È­j€¬âÏ=¼«…FÎò ?nh+#÷lÈô¯s §ÓŒz·Ø×ÒöÖµþt‚Dú1GeZ¬ùÐÌ[¿wK!ïèÁX=uIˆÜÔ£“w¸â¯34⪻<ˆŽÜRaž:(ÐGiÇÀùÎëŠêÀõ!(ÀEïŽ4 ÷'hБ‘pd¦Wn©ñ)ûf|Á‰‹Ûµ¡Ów 5C 7Ë‚ôGëÒ²OGºÆšcS;sKÀΠ+1qKrlú¦•¼®® q  ÅolÍ÷¬¬¤›»€®ûê`¢V•˜´©¾2¯±vÐ#)&á¦{×ÕQôqW‰Œ³²òŸˆé×ݽ%ïÿáh îaÉsÂLÏuôËŠ¬üÓÚ`m˜[ŒŒŸTް2nYqe_'„Ea©ï\Oêí‰öôûŠrß}]u艕zd!oè9+jBʦ±¾c¡”l CD…ž†ú„›#MñÏÜ’òð#¾âÇT=uÇ‹ÛjigokʹocÅ\[•€Þ®+*ü§y ·'vtÞ¹“Œ:´Ê,ŒªÓ1bQ\ôÁÑœrËјy×ÎJ¸5×üô«©&ùÌV˜áÃ--Y·€ûût4‚JÙ–CÿöÞó+®3ËýôNOÏ´;»ív;ÈnË–d%”’‘sŽEåœs†„r°eE@d(Bå)2UEåÙÝ3ïý/î}Êsß÷Ë|y?ܵ.k[«„çpÎ~ž½û÷;áÙ—½3È Èùq䯔RáYä÷(ž`®ÞGÜúï<¹zäO®Ÿ#ð¡Ø;‹«]}Ýr|íuí§®©ÞË«ˆübkº7ow~Ë=/ÚkËóΣJÓFhCôØ-#4¨t|ᜠÔLЫ½5­}{[ì“’êrëì§õ<Æî"—úŽÓòù²¤ófXÆ'lŒ¢òÍOšþºò²óÄÎ4ä\@ޏ‘µñè .ý´ ÜÝœ¡T$íC³ŒË÷“ +Iå‡w[>ÿ§)Êõß9^ô^Ž[ŸlÈú¸ËÃÝ_X_ óÃJ ‘´\jDÃ¥†5\rXÅE»ye´Ž„©¿ok†Q· ôlÚBGí­pèûŽþ‡IŸóËv ìÖ•q~£cò.ÞþVÔ²9άJx80ö„¸©¯?»6<º·yw:fãóÝ +jóæ ­Ò·4(ðË$wÞARf:i#woOÊ6Ça%a¡3½&”l^°9+€øÔ÷Åצ7„"Ð$!­„TçÖkb¶»f¡—6ßµ÷Ï#òã*F[\ËîõÌáo_?÷Kq…îÄë'Ì«o½D^Üwàè¿Ѳz2zsn]K/Ð,›#ÐKÖ'7ß"Ê\SœÎmé“á¥'ÃÛóìÆ8í¶íøIýpí‡sŒ¢]æÝþS|_—Ôˆ6§‡°æ·‚Ë[Nùê³dû­x{”p]>Xùçð‹ÿCÉ©ý‹oS‘Q6&××ÞÑk|ËB$¨¥…ê»Õ=BžüÕ3ô7¿R \ûmÒÂ%{Ô¢ý-6{ uÅ¿@©5,wvÙ/í¾`|Rþ×Õ·-'ƒr€Aªæê8©pý&kœTµ=A® +ÉÍû+\FBÇÆ¹Ç×µw+ÿ²ú²ë;À7ì>f}Ú›‘±ºrœ,¢$×m޶_5?*ÿ|処¿y®ÚÞ²ªÇhÅ¿]Tü%8C«Lâ +wßö\ôM@‹\ãÈ›‹âú?kv}ášËø}C5Ðô…k¢7g¢ý”g +rÖ3¹½1†½©~ÔõTÒøоÎ9ZõÇö¯ÍOÛ¾6?ë>·þ¶'?¸„mLY„´M$òü\›Åßô+ïˆ +"ª$6FÄúµ·g¼2Dñö ìŠ{u3ed!í¯!'7§0E ‹€ÖP»‹˜ò푎Óög_×¶;K«i%ü])£]6Ðô‘s+$£µ†d˜ÛV*47.€asÏ„nÍ1Z£Ö¡'«“´ÃsÜ••·¤bËóî ÞYB}B+b‡uƒ¶Iz}œp#¬ÑÃ:6bm zÉ9‹¼µ»€« © £;»"'-’¡5ÀIv0¥{«¹¼ 4GdäºÀ¦È¿ë½Dk h%»Š§?š^Q‹Í/àß½ÿ‡ëîLÆ!ˆœJ¯x#5³ˆI Ÿ“4Ýy¨¼Ë›Ô|ê““ÚvŠfׄý ›åSbë¼*JkÈ(`$mýw2+÷ÞFMB@F® +Ë0·‚ èBÏú&à³7Ý“=çüóÄʤ¦¶;K¸éž’߯üX9pãwÛÏ{O¦ì™YØàï—²\s¼võÃæc£ÄËÿ¤’þÁõqï|pÏ!½Kݘ@îÌÚvÆ9 oqë »FzÏx¦{óÓ¸ªÍÉ>ÈÚä=ÜÆÌ]âÎ4¿mûùÆÖñ†éiGî­SÛÏ¡gv_ÁϹFç×ßâ¯ìÌð{|2!Ê3K(6=î=ûšzëãJþŸ¶^Õ}›0Ð{\€9ç5eÒ¿ÌêYéþf{²çŒsªëÌÊóºãîé®K £;·f¢c’Z êxGPñð‘YLÚçFÜDëòËHÕë/ §W^tå{æ)-[Sìzõ=ä×»³Ì†ˆŠƒðÌc‹Ü³È+º{Õ›ïU|êë¾TðàŽ1VµênûwŽ‘å1…çƒç)DNÑoüF-)ÿ£j°òçþ¶OÆí]zÔ{F>Ø•—Ô²>)4ßø¸òãQZÑ®üÛ £èßlϺ¾õ«ý+|Á«êê‡Ýß…är\' $|rHNnYƒÝØÚÒ©`vøÔ÷†M¯0·–kŽUæ[ÀÔÅ,ˆCø®Z”£j¶'zÎgiYHåã†oUwë>s¾ƒæ»& 7‹ø†¤A@OšEÀ=ª•÷;Žù˜®)|µáaí1÷x÷ÅÀΰŒÝUs1I³äNÌ:pwcž×±:-èܘtéŸANm¼…^ó-;B@KïJ ¥1=¿ïÜË­¥V3` ~ù>¥gkVæ—aoûå”Ö€š‹\LJÕä¶´Ç«=q5™Òs°`® A€§®|çÖ$­ÃúvÎñr"¡£uÿ}{ø]ÆÎ&Æôžý5oÏÆ ÇU$Àµ)0÷¾Zû¤óKûâZXÏÆFÌ,\PCi‰˜¨ð€šØ· úR‘$nb“B*dcy5¬côîë˜ØŸVï<‡†üÊA–{žV鞆çYlþü5ù¯_¿ùõ’àò¿l¼é8Ð ©žyFíæùÖÎ4©Ä; ¿˜ì=»;ÞqÆþ}É_Ôw ~›0ð»¹>»oX%«o(·Ï»OGf ×þa$uüì`³½—dë¿4ýÐ}ηÐsN‹{­tN /.”ÿÑü´ýTpá/¸ðôþ=о¶5Š»âY`wúbÂæ4£B5Üñ•JTóáîòBXJ©Š©së"«½sØÞÂò†zÓñ +›·ñ²ók×$übXÁÚH@Šj%,÷­ng²÷L`WÖðqÞJõÚë†ãk¯*þæ“væyé !õ½‡qÝÓqÿ²»;*Ȭ°ð ãY"WnŒ£ +vfHe+#„«+£¤ëÞEVkHÅEºgI·£J.Ö7O*÷Lï€ÜûV¿ø¸g¦ãLXN®Š*%œ€rX2ʹý;åpËÙ­RSpžÜšÖÛjr ÐM•–z¾Ùž¢·ù—­Æ§ÀÇÆ?-öw~-j9½ jqBÆì¨è]Žw˜+šï!ß­ŒàA¼ Ft||ÒÌ%F5ø*ï®"må±Öûîfm}¶Q\‘l¸ã”_Æ£&W k¹÷ æ¦T|û“Åþ›¿sÏB¯eì0.ÔÖ×´Ò?L «ÿ8woh]ÿ2ºhm¤ëìÚëžÓ@‡_Œ¨é= sŸxõ-öªù)ôtPÊ€¾·ö¦AÎEä˜ç8äº{vÓ¥àB6–ë8«rFКë5w5­¥Ãÿ±ÆçGä„ʤ–Ô–Pã×^µžŠ›yÔˆmð‘õ®T÷¼å똎޳¿1ðCÖÑÿ(¦¥þO©‹¨Y=Ù•>‰_ÎF:^Á/Xž¶|n~Rÿ©g_PþÂ훸äˆßÊ2vzwWµ3ÒqbåQË—Û#°|¿‚ÒÐ2 8éU‘ةĕë_ÂóBúáÇ™ÕSÎþg]n@Js@ÉXÏú,ˆ*©IRð îyv£s†Ykú¾÷kÕp×'ŠŽÏd}MŸÛŸAÏûsÏ“Ês}Òñ…ÎFõÎ £Æð¤éÓEÑõ_+J~oueómÛ) ÉzvçD׸ 10¾N!.îŒ5}’¶€x©ùÔø¼ôßäÊþºòº'?´<ÀpÏ !;Ôbï<·Õ·Äíô/k‚¿ô'Ä\Ÿâ]ÿà5þä¿îN¢Êz‰  îglMqê<`[Ï4þ¦óuÏwÑE|©åiÅçÚá’?û¥è"Ÿœ [¸Û{Òð ]Wp¡“ái#Ó’êý +l±áûšLË>Ê=÷0KÄ~yÉ=»½;Ó})¡ÀV§õ\tTÄF”ôë'ç¹7>Œi‰m ½Íµ@, ,«ƒK¤Š˜ŠÙ0p ¾eb¹[J(vÏ3["êá­ ô¥Í‘îS‹’ª¯ßà®|”BËÞÛ…ü¤^ÌcÛaA_õËùä€\€uÏ ¯®¿®þâõì&è—?òL£Æ»;hC/Ò>‚­}„8¾»ÌG:ÞöœïÔÆ«ºÏ×_T}\ÂT&ô\rÚ<ôÀ5KªÜ˜ÄÞLZÅý™•¾¡˜–ÑSá«]“mgÖ^W|ì[$–ƒã!£ú¡!¯²¶>ɪ÷ˆ8žÅ~b@Îé‰iÙÈÝeT‘gyóH® ¨Ø½¹wjÜóø¢ˆš (˜Ð2©:¥%µfŒTÜÎ<³Óòœø8½&e|º)%ÖYßt6ÿÐ|Üñ¢ólDCíÌ]#vÊEÇ$§Î:ÂoÞž ®MRÚå[¯žAòÌß·~랆݈ʱ5?oCŸ·—Åhç2¯;n +©Ù€’Ò°=ƒ¼²5 »ÒPÛ³¡øýöà‹­9Z£ê1üÄö,·7»"¹ó÷mñÃ} šëº¼õ¼øOZIùö7ˆÛ»ê~õKB‘l¨õo{+"É¿»^ï;xâ3•õVù¦ÏmN46qY¹þÛ+¸º™Êö¶$ÏÞo Oì98ý!²|ó-äTH͇”|„o‰×ãY`6m¼#ÝrŒÐŠVsk;ŠšÜó}ˆ ²èSr{ïçm?BŽoޝïJ9-c¤[¶p—\`Ü#J6$iâ@jòåš ÞðÏqš\ÓøÂ­1HŽGóÎtŸ +È…Mn9½!)»g{ ^¸þ¦õ;Ï,º8¤àö®¾FœqÍn¹›ŸA.¸ß¡níë¸ø¬IÈòÉiÍŽ7è¼í)ÒÍ•‘îoM«? Ì` +ƒs¸’¸ŒÚ”Ö + 0Ç9reHJ­ËštÏêšgð úfXM¬ (HMI{4FHņx—8]ýà@X?ÐV11 會œó,À®¸fà…@צ-œw™ZUÓÛ÷-0ƸۡT¡k²ë\x™´7WŠ91̓Ç+£Ø+Û3Œæ\-õ-°Z‚óˆBˆ‡Ý Èŵ;¾MkDŒ=ÛÐã¸^Äð.‘+@.¶—iM»3Èë¾9X)ȱZùpíIëm'wowËØ03àxž9b]XbÅÄ@îÛøœ¨†ApŒ@n»gº.„Õ¤¦”mà~Ä08׋9 }ŽCÃo¹¦ÛNØY„¸Ž…Ê™0¯ŒÝ¹>Moh†ïxCÜ B€ÊmîYT±GŠ*Šé˜½ 1#jj›OŠ¿SåÞk뇄*çTÏEóÓ²¿ZŸw+yÄìÊࣈMÄ›ºÓüå÷@ß)D„ˆQDjAmVòà»J­à"=º‡O­s÷˜cw``å§m~KíÜ ŽCM›h0ï|ûµˆ†ÜÈåªbhÀ#¿{gu”pm{–Z3 +X1# •²ñYI—10µŒI¯O;p' sƒJ|…_Š*ôKáq ²*jgÄ<0ì× ¬NsZvfhM?o <ÏØ9¬­wÓ®ÈYëÓ†óÛc7~Z¥Qÿ}·ïyvÏu.âêìc’ˆž+0ýØS´ù®p—ÞÊ”…Ô Æ”á— Îyn;ø}å+oPç ì×’ gwYŒ +iÅT¿J„÷ÈyЭÂÍw¨ + Ž7Þá®oOÑÊ6F¹U~©Ð÷1@æ{åäj€Ë7œSäb÷4¯Ù=ÇosN3*]Ó¤"÷$òBTGnª©»sØÂÍ·ÐÓ2Qùï–…7ÿyãUû·£Î)fU.¶Â*no.g’:z{JC¬,¢nnŒÁή¼@Þš ŽÊÛ‡_Lª8°È±*©$ÕæáE›¯kNºßužòL#®Ä ,¸o‰Xæ•âKÂ*fg\ÏèÎÅûžKO‰Îè%Àµjã¶»¯桇Û3ôš¤‘G +(ÑE ¾æ½ƒ‰Þ·1‘a%©Ñ3,HéHM =pCØÅð¢À?½šÑ°ÿ° Þ{o~”ÐJ8€ËÕx•|ÌŽLˆY#\sOÂ.îŒöœy’[$7¥4ý̘J€µ²Ý-¥”§LbN(wfrnõUÃ+¯[OÍŠnþÐäç2ruŽÙdK¹Õ $ý -µ=$Ç”¬Ž´·uÏPk¢¹÷ú–`×¢K°@gÞXÁç;§©eA™Ÿ4íÌo­}:$g@2f'˜“& Ã™ óÐ=¯²Ÿ¶+Ás}‚ÝR> Ôè2³Õ!%¡>¦¡"~^ã²öWY¤[»9Ù}Þ9‹)NÛ$ QÓZ¢JFwXN¨ +¨mqm{ßÎ瀫²ÿØü¥ãUÏi×<z~õÏ£´¢OÂ2TET…k +-àªÒZF÷¾Y@K踸€‚Ò˽¿¥è§ïŒÃ/rÃ'Ç”ú llÒ&’l ½<ØÝu.akZ*×KÁ«bÀlÕú,ìâú,òŠðô¤á—¾Q÷@\qcÆÜ»MßÄìƒ÷Vùܘ +×R¾H®ò.âJR&vo£ÿ±üaçW!µû§-ÁÀÞ:à[ë|AÔÊ¥9ìÞ•Ij‰WFnøûÎЛŸ¶~ŒX°¨ž‡Ë®óy;¢á캀Ÿ²Òa»rLñæ,ö–WÁ@¥­wž$Íý@gðrbãî±>¬¥ô¤íLtXÏÃjÄ^Ÿlþί$ ÚbÒŠž+!9¶<©cö¤ôlDRCïÈ€ÜûÉ,‘ìY%’„QDº§tõ-âìΩȷ̇„dŒpîšb®¯¡TÍqÇËÆO·Æš¿ +Êpå>©" £ÕgLÚÁÊгýÉPÂÈA…•ŒVM!ùÕ³0@ðÉDˆÀ2»-°H, .SkžWxæ©)5¿gíc)bù5¬.ŸBL +*†…Þ%twZ½»€/YAžsNã +üË´z°_Íú[Èéíwð‹eR%ÐçíÎ)bñÆ(ê²ãMÏÉй:m–ô‡tb†kRåœ%Þö+8€ðgÓ” +ëøyÇ&è4àõüÜXye@»+9=~«Õ³D­ö,“+}2jíê8ö²g‰V›0 +Èi íxQ÷™s¢õ[ÏôÒÆ8ì|HA¬ò=µ.e5š^áóâà¸!½gc´ëäöXçéàâ/ïV6'4\lF;ü ¡å A¼W‚ÚÚ5ˆ™!¶¿BƒìÛ©]q=µeßÁ!ï­ôF´ý,Ëø|ï<£yeðaÆÆ¡úz/¹¦Z¾qÏtžÞk?ï[DV¦@­‰h„숆Kê”,àJA9ê¦wY°ù +rÆð úÏŽ—g¼ó¤º€B€7¼!V÷C.}ðŠZy&¸ÌèÉ µáì­ÐyQÀmw¦°7×FaùQç\àöØ_ .díBNÚÖ'Šëyä=+‘PcÊ=³-§¶ß5ϬôßÝ”SZæÖó(hd¬¬‰‹{ošÚL…®¿jþZ>Xù§õw˜ŠˆùÁ˜Ä›_ËALd'ÍBNÂ*䀚"üÇ6¿?mÂ5»¦:OeÏÚÛ Ä,ôž€ŠÚ’›GœÝáZæõäúâÆT$ÜÊËæBë󦿥Wœä +—”ûDÍäv×ìª h÷ˆ™‰šäUÚ$àlOËJ6æýæðhÚÁåFuôn—_¼5M¼µ»D©ŽY˜ŸÝ¼þ÷[L¦g ^×°€&CÄT˜â_> γ:6:mP£¹XY&T¹¦qŹgú|rt‰s¦ó\TE¨éÙ0¿Œ×ã•2êœsÈë‹ÆÏ6Ç:N$ Ƭ•Ô¶o'v%¸Ö÷«JÆÊÁ‰˹=ejƒ{žXæ[ætø–X­àø=iý‹>‘³ÚV_tœñÌ"‹c:FWÔÈFFtCïòã{®… ‰ç[ÀÜ“ŒŠ­·Ø+úG _;^´}\b4^j«ygÓ¢ÿ}Vó°ó 𻾉É(u%JëÖ4¾Ô øGÖOÚ°gSÊjØ– +¡Žqz}B€9b•Öµ=‰®ö.3:ýj!6f‘ô;Y­«“¸kÛRJ¥ç—g·ÈåQ%¹6¡!7ÞÓZ¦7¬ÅFÔ"²[ +ôð2­aksÙ—»¶H¸U³ »sÔÚí ܵ¨‚ I¨¹ =®­¾lþzóu×YÿôbD‰ºpž0³Ñ Ž´$L|BÒÌF uË¿Ø}-©¥u†–™mÎq\aVÇ#l<˜8Ô Ø¹Ý\uXÍÃ%M’´½ÿŽ_FiUWSÜ)ÿäfwH. ¬¼…~·3M(ËõöJ™mi€ã ƒ¹ò +‘'høt–qãõR07ÍÖMuM# +j6<¥ãã3fîÀÁç¬ D»Ëô–µRqü—ëc<Œs[Ì]ïWÑzÂJ&fÏÂçƒv7¤ç ½JZ[Ô2ô,e¼ŸÖ±` 5¡:ªDmöæyçèm ½Dœ² >p/‚š¨ccS6!ÀÁÞ[5¤ ªÇ”Ç øZÏ"ìúö<±3núð®;q“uÜy‘Ðòpþyl¥ãǦÓk/N’Îýþ~×g¿2?¯<û³Kü0jåQÀ‡œ] §í&¡£¶§ŒÔö¨[º=ÙvÜ·„¼Õ.aä cøßÓ2:|rä-´çê¾™Ö›6åzÀ“ËÁü—=[ïž#Tùȵ6*¦A•ø—;Îx»Îíƒö~•GO,‰*hß¡Ì=¼T°:=‹ Ì+ã@g\…– ¶ºÎìN£ŠâzJkÆF‡Ft,$ày]êW‹‰¹ëžbUo½ÁÈÊ?vŽ·ž-á*<³Ä +¯œÛ½µ,„­N »·§¹]9 â™ÃÞ´¿ endstream endobj 31 0 obj <>stream +è>±6 +=~<¨’v©U;‹¬&Ÿì.˜÷—S>Åý°¶æšEŸ4~æ“’ëâ:!)mò\¹þċ̿®_6ôqsï»fÐ×7Þ´:ãtXÎé1Ç +ážgÔ‡"¢ož^SК‚K¸òQXÁÖ(òâö8&?,ãtÅU"‚{’Xâø±óÄÆÛ®³¶,ªÄ”„äÈ2ÏBÏ-׾įà†uƒ}®yL‘ãUý—bE`ÑäÆÝúÙÌ!¿_¿ó:hàSw¤Ôª°A" †ï‡MÃÃÆ>®{_fzÖðýUë͘šKtω¦ï±g¶'˜u¾EÊ·ˆ­ˆk0 þEt‰ý‡®¯¤¼Ê?NP +?´>ë¼²3C)[®ÿðàòˆšuŽÃ +RlyX¯jˆ >%­1¤êcGM‰sžRíœÅ¥WD})›H3ðh U›ÂJjc\ÏA§÷§ÒöÁGûöþá}›€¿gå3¢J.*®åa`^C +líúH׉€šÚ™´ñèNi×å° +UÒÐ @;bF±0bz<·Ý‹XØÔ°‘Ø”±Iî„–iŽç-“² +þY;Pú'ͲS«¯ŠöTÊß]’ƒ³6|ocàûˆ‰KpKI5ï WLÏ¿ZŸè)Êñ €‡¶&,ø\Ù'ŽÑ®›Ù)c vÇ[Ψĥ?êºøÏ¦‹Ü…_=°XTS"2à.¸â¸† ´< ¶=ƒ¹îžÇÜð΋‚‹ôúŒ…GþÉÁ¡¼_a¢“Fj[PF®.1“Z<­à#2f[RË‚D•ôޏ–Kؘ°ŠÑÕ2»ür*˜#VsLÍG‡‡ +(9]«S˜kÚ§í_É5#㘜Ôô1’z>Оĺ¨UV£nå4¨§µ1âS2f¡WG"¡ãa‚³ƒrFsTÍhOèØ°”Q@ +ƒ|7>¯ùbŽ}þŸ·ÿ-¦%Œg@"*& `õxY-ÞY^çî©Ôþ¤ös'8Wߦ ºDoˆš6p()«€·p°ŸÚÃ*ZK̈« (Ú.–šN¸¦ÚOÄ€HûEIýýç^¥Ùúªño«oNzç!…i#¥èÉVP[oÛÇÑwæi @« „œ^óß®üP÷URM¨ËYˆ˜ŠÒãœA”9Þ‚1› ÜôÊúÉA9¯×9ƒ+Y¬øh–_ò¯ÞirI耸 Ô­) q¤˜[#—ÐqàA9¹aû]é­‘ú/}ó I ™4Ý{ÓJB*.< +°,°œÛÄ•ŽÔ\è*ŽÊÑ@+Ñ·¤´Ú˜©¿ÏrnuW°,iÿÊþ¤ãoqüZÚDlÞ³óÙa¿»@¯ *Äx¿lˆP²vf°7MOê?1>¬ÿÈø¨þcËmKÿ`Â,dgV„Ü”åÎ#·ö6xÌ´ƒwM“o|dÜ(¥rñlÝ *™¹5Ñ ™Õá7ÙUñÐÁ*‡á–ÂË-OZ¿Ik¸‹$÷’Fѽ˜ŽG (ú)1„×÷‰³+BñÏÛ}@ BKÃ*f÷ÁšP·°°!-¥pÕšœÜ˜±2‘+,RÖJé© [ïzNz¥è[ï×Ä÷BJJëêhûñµ7 ßìL@oI@ö¥ âšÁaˆ¥°MÀÝÛz ╘{ïd‚Vû‘ñüläjJGéŠiéďШ™A^ö+é--â…_·?¯ÿ\÷¨èC°MkÊ€«Jè0¥qPO³F.nßÒ'ÈZ$â šÙa}ÓõµæAåTƒ7þÕñ}Å'6áýªHt°&¦Ì,Dîýå„‚Ñ™Pkƒ‹=œgwÞAÎùñÅQ ½å½ƒÏ~¿*ägÌ<|L—{? ë¼o™TÜÜ|Ýp¶>«ùÂ'…^‹©)MAµçYâ´mOÑ+쯉…æ'ãž l¡õIã7*IÅúኃ€sgŒ\LHÅlsŒõœ±þP{<¦€•fL¸z߮ڻ@jɘa¹Vß½Ñp‘žyd¡åIÍ_¥œË¿Ùë¼”[(¦gÂBjjЕîYV£s\бö#!ß?ß{>a€ßŠëñ5I#ŸØ“±õ÷Ý05 é®%lsŒTéœÀ^÷ÌÃs×ûr׬Ê|*\Ev•ËÈ® ÜO˜ùô˜‰Ñ›´ði51Úý ¤:Ï<¶8 D—¥,lÂÞêàéµ³N­) ¤4ÅõLTRÏ„{¦QÅæg-´jOïÌ`j‚Ê{w|²A®ù%¦te´÷êû­¡×a“ë#»§ºDhÜ®%nä“–áïÓÉpH‰¯ö,@óÝs½= ð° +^˜µ;ö×8¯šï’B/.ÏØ[zž[c&mÈÝï$4…ĺ½z/Èn <ó¹ØENà3mq½%4×{Ýt¯äã%ñ?8Þ4Ø]ÆžËêÚš$”iïµ|²örÝ#…×í›…ŒŒ™Ò’2 ÍKhY=½ˆ–1IDA-£Ë:‚ºh|?g~ÞvÌgáÏëLÂþ +µggãâ:fÏžéÎÝ”ZLM(© žéÎïÖ_¶wÀ/† ¥q%ööž‘Þ“±ppI™2ñˆ)Àù"*|¥o v+¡CU§M”“¢àúQ5å]úvvÆ5Ö}b{´ûˆËR ]Úãz.*¦ãÀr÷=Räm0Ÿ·€VlqÍ^kf@ƒ +b•Kнæ¯;ªÂTú!—×FºO:Ç—cK´Æ4Ð; Ýà`@ÅGoNáo®½Eäoô^OÈðI5©!xËÎLîY_ôõ¨‚qO2›´w{¿ôIÑÅ@×a³+ Ìž•+‘e¾.®§C"&j¼÷Ì»,&Ù^c®n¼ƒ_tO÷\Šë - •±Óð1µw`êö,üZÂ"`ûÕÌžÄ%ÏòZd™P›²!?oq¸ï×ùýA“âT’jsë>‚<yÛ»þrÎô´åÌÚHç˜ð&µ·1.Ö?ï8±>®Üß|(‹h…ô­wè›[¯ÛOúçÚ¿š©*iæ6ž¥,<öÖtïy÷¶2¬eS’f&Ú· ½æ“C¶ÇU¹eÐK»‹ˆ{¡h#aDÏê˜Ø=Oœ±²II5®1¦Å5„ L¤ÏÈAùu\¤_NkòÎb®­¿l=n~Xó­íuW…èù †š{j-PÜëù2¨ãÑ÷Öú†Òz>.¥¥wD—ð¥{â½ÏÈØð´‘ó)ɵ~…ë]ìÇz +â +^´ôfìø†}; –µp‰{ÆÁ¡¨ŒÞ•“kãrfGRÆGDˆ5¯ê¿ÖHÎÿníIÕ±ˆ‚P¶p {¶~IRÏ‚nÏöœ·½ªø(0ßv:©Á•í¬™‡‹¨ÙÝÁÜû OBà|B‹ˆ«žY“óø"ß"¹2¨d´%b&ÐÈ̤ž‹ É)uko §ý‹„²”‹M$ýãÎ/tèï6_q‚s ÀW‰ ÎÉÆÓžÙÎ|ß²á^àvÄ5n\;(ÚžeÔÀÊÚù¼ì +—™Yá/cu èÊ<Ï7ÃëYãvÈû[þºýu#™ãx +rSÆÌÂäêcÚÌ#¹§ …EÂ픃Jh¹ÈœV÷Í ¯º&ºÏRüè"²_.ÂîL3ª¯yucœÖг'´ˆ.ÖܽþÑλÆ»3м°šÚÑöqwgˆ¥)£3®äáâ +.rã%âÚ4§äóQé—«£ÄëÛÀ¯šsÍãŠÌ›¾ŒÊñ•i#µ#k¥A÷m ”wZd|Ôðåê+t~Ü(â&lfÂB‡DU¸J0¦ÑelnGè{P'Ó¦!ϳmíá&Ðx¸ ]SÊüK]WU÷ +?vÎô\*IÍ! ¥ p/¾_Eið)p·£zJKBÇ躴3¦uJ-ô.A¯%ÍlÂþÚðP‡ûü2RÕž•Gïà2â*|£íQëÉ­çuÇV_T¡Ê~Úè{ô~Sò4¬bCܳ¤*0M=½;¡¥÷ø•ΙÖ|÷,ª0 $5¦mbÉÞÊà£à=0n¾>ma¢ü€“ç{.¦ô¤¶¸™ŒZ8è„•GK9h½!%¡1»Êæ®(Ú_¥À÷íäNŸœ\½9I,ô/³ºc:.iÏ1ø4mç³üÓw%¾eJ¨ë°„…K±B.ÆŒöm?;«â#/çØ™ÔboÇõÈ[ιîïâ >ùdŒï"­: §Ô¾_ebÿ}‡Íz¿EE¦-ä× ìòöìld‘Þ]æÁRRUp ]b}Þð…B\òáÖ‹ö“€?wØÁyë8@wpQAQ1Ú3FJsTÙu>,k=\†] ,ÓêÂ*Ú#ã½BkÜ™îúN9Xü›—Çs¹÷â8 E¼¬…úµ%k23f>5¦ÄUn½«ùzåUùÇÎ1ì•°´–óÃ!>’«© ”ú„‚‹Ié‡VÂzf`—|R\q`™Óq°zçÇýUɃ4ˆ£¨‘Ñ“43 ©œú:£fÂ#ˤZ÷Ðu ÄêŸW…}q­3kgã÷,\DCoËÙiÐÕJ|åöXÛ7 ¶ö'kŸ0¥Ñv&àù®©Î“¹÷ض&7¶'™•Y~c–Y·:ŽË÷IIÞY|Ù{+›ð5>÷ÀΡ†ž–¨µQ…„•Ö 6FñùrIǧ3ìš—¼Ö÷s²Ö>qÂÄ'í,àŠm¯{òb¹ë$@ëíÌ@/nNtŸÚïúÎ5 +H%wÖg²¸IÈÈÈÕ9IkX½áÅîóÎwUŸ:žßþè¡B ›â>ˆ «õBºOFª*É Ÿº¿ÖwgMò8´3ˆÍë»RÂí¸N@ˆ8hûÈw1#÷÷-áÀÏ«L€—Ôž_ |Nw:çùÛ³ø¢•·0€䚤š…zo!5ÿÇ* ù›4lÒ/u¼lü|å5"/¬åCZysyq©¯üãqúåßÚl=›Ð2Q?m%?oòÅ ’[S kå’Vx, ÍÊßà¾þ•¶ÿú_"‹¨Û?oð¸[‚>Ÿ ]åmû:aær\5?»^Gµ¸v?ï·raɇÎÜóK +j}LÇ‚ñ½ê™§5fm|Úƒ·.¥o¿¹ñ¦è«è¯~åšiù6 ÅÝÚÓrà{:dÏÈìÍèè®2e@%4Ȥ‰Ú¾5…+pNrZƒò{}Y›ñ~‰K­âýêÞ˦ï?öMJ³Ú>†cscNPü—¤:WWhõÑVÓ¨}Y ¡!eÄUúÐEZÀ®¾8àÕ1%¾tmäöí/Š~›[1¦evçžAÍ]_w.P*Ö'q×vÆIÅ?Y˜ˆÿkƒËXpM~Eóéí™ò¿œË{¿*f¬|j` Wºöºá˜s¼ùxBFkÜ׉¨Y‹˜ãW3Z!9k~”µ=ŒèÙH×Llj­ÑæcÌ­´^Ì9±j{Ñðqi#Ÿ˜ÔÓÛ#*ríæx÷‰­wíÇ÷­øº+ ä*³'wm=øZDÎéN¨¸½i=Àn=©.ª¡ÞÏhÙ·ˆ¸ûV? ê¾{‘XRq` ·oóÓàû!ã•“ªsϽ„—¹@çS«½³óo?Ûé:™±²Ðï7ÄÙÕ¾¤•Oçî·j8A}?+µ6ø8»&¹œÉ½ˆ*ð, ¯ÆµbzÒxçnhǵ ̵˜±_¼¿! +*z‹µ·çï9RÁ®†µØŠÜx¯ÎPÊ4ß“.¹¥C‚¬ýþ»нQyÇ9÷dÍçö—%¿ZðFÆ$ì¯ý¸ò}k†WýÇÝYfЪÂÿØøá'—é“öæ;'»Î¸fc –ƒ¹"lN` +6rkL!ÊöÌ"ñßWE}Y á"jd©ùyÅ_C7~Ó’àï]ƒ#™U>;w=$$%Ôît÷gWß“;›”50{ÁxÔ:^"Nûe´Ö=À‹V_¶ümš•÷Oúû%Ÿ¸ÆÛÎÿÇ óÿ71øÿß'ðÿ•9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6;rä°Ù‘#‡ÍŽ9lväÈa³#G›9rØìÈ‘ÃfGŽ6ƒþ›Xý±ÿ&ö›ãÇ˨èRñAgåÇ‹«.ÃÀÿ›,6†ùAýÇa犙ìRŠM QLÁ±ð­óg/\:v®ƒ ;ñŸ[k`p*øf +AÆœ8,ïØù_þt +>8“õbþÙ¼Ëy—®ä?õÚ¥cùù—¯ž½pþZ~þ•«à‡WŽQrå_<{1?ÿ• yy—/]ý¯‘s]úå{×Àï¹|åü°ÑÕ_öÊ»˜ŸwõRÞ¥ÿÜè¿îÿh£ÿr8üP?húàÚ±'uv¯Š10þ·sy9ç~¿rSðŸÿ,Á€ùì¶©øà\)†K@an×uÕë¬ÿ '·wn@ÿó¯cÿÛ«œÏ—®œÍ¿r¬÷Ø…óyÇòÎ_É þÿlÜ)ý¯½þ×׫Ç.SÈ»úË_:–Û÷üÇÿr’¹(8võò… ùtVýKDÍêIèDä¨RDÊØíþ%F›OAëŠêh]+¹=¡ÅT…eØŠ¨†Ò50{f=¤bt»pÅþeRU`‰VWs‘)€”Њ¨Q%U³{rý²rëÒº¹]®YjÃÆ(¶Ì=…- /áK£Ëø²„ŠP‘#®'õ|BD{ÿQX÷àû n@è_æõúæ©UÞ9tAp>×C}+¶H­IÈø°´NÌX#W;'é1-«×/Cí.À¯8§ºÏEdØš”™Ü•aoÇÕ”–¤‘N™„ô¸†ÖUkà +rµk•ŸÓ;ß[ûûÓ&¦bõƵjÚ*dÅ l„g‘Xº=ÍóÍb‹BRZ}R#¤D4¥ÕBrXNkŒ(˜ -›1öq“fÉ@PÕÏðËúˆžE.Ä'e@RÆp>ȸžÚ™5qàƒOë9¨˜ŠÖQj#Jf{@N«‹ªmI=¥usºõ”s¶óBZOjÚ3ðV!7k±`N\s¸’Ýybu\'f'Œ}¿’Tã“áËÂ`ŒÒV9ãpcF~WNjt¼ë>—Ðð0-P‘3+ÁÞšäQÚÆ%§¬llÒÌÆ¥-,TTƒ¯Œ)ñåI¡&¡%6¼·ƒãYù´”™J˜èИ‰ iHu-¥)ee¡ãj[ÚÄ%f-}¢¤æ……H›¹ø¤‘Kö) Õ9¶<¦cÂR&òÀÆgü´*yôwo¥O’²÷K‚Z>ѧb#ü¹~; þâ¦>qÄZÂrçiÆvïmÆ<0”2ŠX)—µ³°¹^Öq­;if"²v+ö‰(hÍ ´Üyœ´ +™Ù!oµo0ie¢b|C„o‰êq5!¾Ì³ˆ¯—?lºb}Ž) ©†ú’†\ÏeL™kSè›'—'`,í}â„…Nš(-1®:©!·åúã1ƒ*Z³s[è\ ”FL\Ìö,öfp‰Ñ”TƒÑ‹q=VàÊBrl©_ɬO³ëâ†Á„ap0 ù·»U¯§´˜²¤]ÓPJjsPņƌADÅCxfp…Ûo!'=SðË¡%DARN®Í¨xȨ†Ù3Ýû7ægï@.¢â:.2° +Ø™¨ú«g¶é›„_•6°á)½˜0 +É ƒˆšç”2ˆhIƒ€Ïõ™T«3&$mbB³VwUÔ—4‰Ù †èa«;¸ÌjMj9°ˆ?ÿºp{¼é¸åÇÆ¯dýû'EĘ\BóK‰·wÇ!ßm¼¨ÿ«k´ýTB†-‰+U!¹nþnÉïÕÃÕŸ'–ÙˆŒIÄô/¯­¾ªøh{¬þˤ +[’TáJSkR&=aäáb¹¾¿ôœé8$÷2V%näA,в+ƒ²+’;I#Èg ½-"§7Çeô–ŒžÙ1Ò:³fZgÆ@m‰ÉYiˆ‘Ô‘šãJ|UÖbÁÀÅd,|rÚ$ ¤ÍbNÚ:87ˆAQ‹‰ C;eñ“+™xĨXÑkÃ<›ëË`ãÁb3VÉ`Ê,§ÌBúž‰þLJ™µ³‰)3˜ÖÓ:ò\¯s"j’ôÇŒBf®?XfUr/nf v»Ïº:Ní.v© U+ã]Ãèï~3Ãn8ž±|¯ð-`Šsý«7^t/’ª²V#ãr“2eæÀÜñ÷­bþžM@O™Ø¨ÝYRñ®”RÔp`>=½ga¸úcç±<£ëcî›Ãzj×ÎdË×î©öoCJ6à#>i•ô‡õ<¼[Jc0EOïÞ3Òº’\…o ž¿=Ù{Ú»D¬ ëET§”\¹þ~ÆýŽt+4Çmʨuq%¡2¼Œ»ížA^Q?lúËÎ$öfDÍCTô6Ï|ï%ït×¥˜]“±Ò  -­5r'> ö(óiÓ@B/¦ÆulHROnÙ³úhăºCi›ðõ1-‘ÔKx!5å_àw%ÔBlRÍêöÌõž·ýPò{ãƒò?šï·™ã‹ÜîÝir±w’x+0I¸™*<3§m/j>[íúNû¬åË•ü”–Oì÷Ì£ wƺ¯¤ˆ’ŒžP›Ñ¡ŠRBC®WÔ7K¨}{ÿ¾M,øÜÝßxº·.y˜µ=¹GK¨­a%¼ ¡‡Æôˆ"¿ªë¢_-Èõ¾ƒ9Hš¸¸„ ÍØ¨=)3®:cÆŒ†]uδ‘Óº÷Ì÷_g¬C¢z.&¤ftG4ÔŽ¸‘‹ë8ˆìЏ/eçR“—÷ׇG²Ž{cqËÀ`ÄÄ#%-„úŒ…Ø´·Â@¥í \Ü„­öªÕ>%«×µ °Â28ü÷uÿ[LRÜHëˆéØÐ=3µëÀŒ­Jü iyh0/¸Œ}øyÂ*‚š ª õ1¥;f$µ†t¤:÷¬Àú¼þë7¸²¬õé²w–^»=Žºì—⊲FzWÖ@nÍšé”Ñ1‹yió€$iìcÅõBrTÅêJª¸Ðô/ñÇ‚9åÄJÅÃæÏüRfGRx–šÕÒ’BrtiJKéÜ7åúÖ‰8=² xŒk–p3 â&°ÀhˆÉ™­q%¥>©Íõ&5& ,dÂ"ælLb l?tå'ÜÚ!ÝÚ'G–iÂmß,®0 %–F•´æ¸ŽÞ釿¹'H ?‡†@&-tHH…¾•0›RFjÀkHÖ0Ã(¤$A\$tÎÈõ÷«4xL) )5®4¦%Õ'¶G4ŒŽ œÝá[¤7ú¥—ä*¿yÝ3ÙsÚ?º’3Û]Sð<ç6?0O­pMQn‡¦Yµ[#íßjÿ~åÇúOc +FGF'bfLbŽ3׳^ÉCXîùðÉ7¶Æë?wδ}ë_Fú太ˆ6×k‡ƒŽiXÝY“•±ˆû¶þ~P³Ù) ‘2s0q=£+eà ÷Œ|ÂË}©aφ©Lš`…þÅú¯@í¨NXÛ™ƒ^ . ¿øiM$ú ÄJ ÄrTË„Ä r\'À'@ é©- ÀwRv>#»!yœZpR+B^j¥o䎤…Ž@,8øÌƒu‘ä`] È®òÙi?kÃo²ö>I®Ç]XI¬Þ7s).cßÁ¡ï¯r¨R‘j€SE´Ôæ\¯ÉŒOÝ3ñ))­#¡CßΘè½{ ÞÕ´öj€“4ôe-z®ïRÌÀÃ&@ý‹š½1y°)yš]2€ío½Ì®Qa ¶ÌqkÂDjÙs0°A¥ecckŽ\šµÝyòK?ÄU3k 3ÒFRSBÛ}yw®çüî<öfÆÂ%í¯>KÙî¦íƒ“¶ûcÇç!0¶¶ñÞSeì­ŒŽÜ¼o0³ë’GÅý!5àÜjJ}X…/ Éà=¹ ÔòŽ„žÑã“Êv—Xåp_P#"ÅUôÖ˜Sâ_‚^rÎb +|KÌæ°–ÝYÄ—Ù_6þ5êpÒbÒÀÃ…ô–ˆÔ ¾"¢&×'õÔ6ïúææ(2/&ç"Þ[Ó¹>ðZbmP…/©É5»s„›ž9b±c +~‰ ?õë)jÅ'1©—‹°Ñ%Jux}Ó ð}k²ûÄÚH÷ñà"µà=Ž›œ9 0&®…]Ë;ÎF]gà +è•° u#¦gAÝ +F÷îÿCÒ{¿µu¥kÿï9gæÌL&3I&Nâ4;vìÄ-î½7lÓ{Gzï½ÐÁØàŠ 6¦÷&Ô»DïH¨w3ó¾Ç÷Ùùþ Ë×……´÷ZÏsߟ{íµÙƒø;»À‘ÀŽÄ+óVäšÀ^wOT]óMân.ö•Ÿª}ð/]kÁñˆJÆö©¹Cåg:ó,¼ÍùqáMîþ>üõ…ìÕjÒ™¿Ï=!'íh¢hFÌ@΄L³=Mx°9E¸çRÒ@óø¤ÂÀ%«Ñ–„•ƒKÀwÇìbÄÌÁ… à©0Öí“÷!CM-Œ>¬ç`BfjÞÇ9'á`UÅl´’IÜÝ!FÆGKmËÇy¡øãµ$¨)=ïž,=³= ;ƒ¿10 +#F.6f±b™8h¬m ýñ¬àÚ¦00êÔ£¥fºµ´ì€™‰Úù´¨MÈB¸#hQÔ†L"FÔ"îÌJeç¥5;³BnbNÈÙ¡gÍ‹ –£ÆÚ†¨©¡-jkŒÛ«[sbQl–Ï Ã˜Bÿå… ltÄ  †ôRÂXׇ€,@𫹠K× Ï$t´Üm%éAÐ(å{Ôô¶’š1 é1[Ý󸣦y®Ê΂¤:6Ë¡í´âè<Ÿž +ü&ÈD–úç1ks×ÇEE0Ï£A8r˜½úIÂ.¯B‘cµ‰„é +@+KCf¡w×=MLòiÈé~½$Z¶4¼ŠØš>ø Rþ¶Š|\S÷»EQ÷ŸY‰Â£!g;²~ h#y5 Dž!¥á ¢j®gum¹/ç—å¼Ã+ ÝK£RŒ±“pcþæ¼w’ž ù1/ ä–ºÇùÅÀGIŽî²ó…?Ç-|ÈéÌÌMÈ(aòœLxŸ†ðȯÆÞ÷(Ë.,veï[êBŸòMñ*‚F!c­ŸpÃ;ÍÈ÷(As`|7†1—Þ•ÿ¦oËßÿ„pá/¢œ_ýc¢ŠíZª{wÝ=RuÝ3Nzà'%9‡«®”¤4Ï4îOEÉŠ˜÷4%es¤òšs s{°=…½µ1 9|¼òêô³”4Í~ühaUíXY•A d¡)òíqâ=÷)É=N¸³4€>g|[xlu€ð <çEžõª¤e»'÷×úKŽ/tæþìÄß\ÐJºôëÓ²«…A+IÐ÷>‹–Òq0 Ù(DW£eÁç+cà>ƒ´=ENñLï@«½Àža`öžœ5‹±>;l¬©›jâPŸa3»2 #¥ºkz ݦ¥Å­Š†€…Q11ËFzøyT¬¢%¥ú4¤”‰’³3+ “Qsãë ¡¾%`€Lh°¼àI[ÓäGÛjjÆ6ôŠK…Ljݗ(‚ ¯HìÎIä » ì%ˆ³ÅR9¼d!£€ä×_˜$ÜpRØ^ÿ& fgA$ú}YÚ¸» ©‰Z˜å^ > yNPæ7n’ +ƒ:fa% +ÙÀsì‡qSú5ôÜyÖ9«Ø£¡eǬBNÔ.‘DíRilN"M€>@ÁG„1‡TÃÿÉäQkÃÛ°¥¾OÖwÈâà}ðjˆB¾ŠXg¬2J|z`Aà¦Í±ªëA-1J +3 +j:Ô6â­œ*Èc²˜­ö°Â ùÆ«QvàsƒjV™OÉ,ÜƒãšæÑB†Ú&äYe!˜OÄ7|¡½ªŠK=éûgߤ|»1‚¹¶¥d.Oð §Z‹~Ö?-:âWòÊÒ½›X¸6J}´1JO¼DYê/;»9Ztbk¼à˜{ªäŒs¸äŒ +©!1m8Ëò²üdX%ç…àøüZjÎ\Wö~óó¬½ú¦¬¯tu9ßm½£ïв m™W»Pçvô슨†U„ã\ïGZéÎ?¼ü!ïøÀä¶F©ƒj^eÌÄ#FŒ|`m}v¥¯èˆñEê÷Ëç~·R £GBá‘çÞ¹§éîIjÊæ0îÚÖ(þV@MˉèY¥~ ÔÐ85-¬—0jvÉjùic[ê7ë=g6û°—ì/P§SÌŽE, ̤âWE4Rv\§F "º[EIóh CC.›…ŒYYÝ–†Q´¿ë›4W7F¡.BzðžIÔ%¯Ÿ]dâÂöÚ¶¹¦´›m†^Ä £©„,CÎŒZyTŸ‰V5Ký²Ä®]ª@ž]zT9€–˜cT~\¢ý›eÒ˜¥¦)j©}€ó€¹.ô¨iÙ^£`8sa°ô„´$açâv!ò!h ô¢°U*ó4ÈF¢˜µº1l³#&6jž·¨ Ó¼ ‘NÌóÙ±Yä`#frF&Ú¯g€¯‹8`E¯Š’ +’æu«¨™[„;5Ýh²ADó‚ÆoMànG 쪼?j—×DlbqØÂÆí,ˆ¥ñÙšVÄ_b³Š¦8°_|V$Û88Ägvf‘Œ$¯Ž˜e¢ðlÔ½b—ÈÀ!3 í™aä ÙÈkàTn©H©­a<ê_Dí ob Šga“€áQSsS”Ô€^®ˆ«ë|Jv™gÆ +|=bkBr¥WÇ*Bô`[EÏsMQ“·¯œ#¤‡¾IvYÄ, zô¼ÊÕiZš©½ôðÊüͰßÅÞòÓ2½£¢Š­aaÉâAæj¿ }Aýc=¶u:¹t¡§èˆg{7¨† hd”üÛÎ&D¡ÏÝÓäÔ•áÊËýä‡UÄ3!(wO2³7‰÷]#”Ôí!òÃð=+<Í.\íAÓ?Iùz¥«âôGIpŠü(ãÆßÜDq–ƒ·a®úé6‡Iw#:8u]Ö +‰î Üí±âßÓ¨ 15.)ªÅÞ€ß&ÌQ}¶'¨)¾)nIXÇ'EAûV9j¦º¦JÏx¦Øè€V&Þ¡¥€æz§Xèà« ¬dd‡A“ü3ÔœõQôµÅÞâa•€ÖH˜A•R qA0“‘Oú÷¬DúÑ!6зT”ŒÅüU¿ZDÚê_õ\üöâ+ôü€–OŽÎ …a‡D +µI‰Ø$¢µ´Z" +HY>UñYŸ¦üªOOH ˜©ùqÐÜÄ,ð…£æYÜR¯†× kÓ»„ƒKÏ‘rvð=æ³*j5KdmYË‹ÙD\7è‡sŠ–2Ð +wA¯ã6>-¨g•yÔäTd—Ž]›Õ_YZz£Öº§1‡¶0QQAþµppA §jC‰<ÓW* +[žŒ„!D¬rprx±OMÏök8åa½\¸5½ãœª¼F‹ëÛþÈ»F>xy41lRböš'pÎbøLYG³4¾ŽÙ:ç¡îÿÅ,,ò¼úÄœD†x\@/¢Q‘çkÕÆçà=³"AÌ&æ‡ b:ò,mÃ{Ôž†G_%̵­;Žæþ¨½ö©ÏÌ([!ß[êãçlWó#–'Ã1à¬AÂñkŸt¹5íz·ññ{Ÿ†W4Šha«L±É«ý*11¨UƒÚZEH'‚Ÿ&Ü_Ÿ$ÜÙ¡> k„ä¨I@sŽîùF9…Á™Æz÷¸‚²5.*_ådmB-­t£ÎlâîD4°Ç݈ +´Ö("Ï ‚ÿ­–^î-?磦Fµ2AD[[ç‡l럠Ã3RZpš_ެ+y'°·–º2~Øì/9á!Ü N 0+}˜‹«Ý¨ó­Ðñ¾iBÒZoÖÁùשߺû+ W³ò¢:9 ¯™ä—G!Sx'«n¹G ŽøÆòú&JÎg¼ÅÇÇ .õ£Î®öb®ÇôRaܤ¨l-›¸ø°‰‰ò«™Eq Œ‰Ž…Þ‚T +pcÝ“í RòÚ‡’£Îò þIjFp†‘T±JãÀ2›£ä.È…qˆº ü¥Äô3èÌÇ}Š™<7<½ã…\ Š›ÚÃÆ§aKmkÔVÝ€Là†ŒîÓò«¢ÖÚ§ ÂVLiä‚8d†¸]À [¨°…^w011‡€³;WýôTì9@5-^ªy¼ëUǬzÄ(b$€—vgÍsu}áàêVÆ ëx˜çb/œð ,l–I"ð=axŸW'aøuraÀTߺ<&@­ŽÐ“ƒzNåŽCÄß…:ü}QRsð~pˆQ.õžMº±·ÉÂf+n0wV³Êe!“LèÖ2œc¨+­ˆ35µG +…{†Uà™Ö† 0òð‰¹šç ðǸM,iŸu-aSuuÈ,å{Yƒ0'ÑÙÚ»ÈZÛ¬Xâ…qÚžá¢@s﵌¢8ŒaÜÚО°5wÇlÕ x•üò­qFFÜ,¯v«ŒµQÊ£jhr«Ÿõo©^ŒºõOûf±Ð¥¢f­Ž’’6§¥Ü m]Ãìò®\6‰Ø!ÐÔ  ò“’WÔÖÕº¦l礠4j ¢F |þãyò +9ÂÎ òÏ3Ç«®–®ö²Ó• j}†‰Ö´Þèc”í: ÿ˜kê³ëÂZ1Í;MKŸíÌ;¼=AL[Ã>ìãÞß™j~4TWûô<¬GÍE{Ôœ’ÍqfÖRöÒÆ0%I߉¾0È{´g£›˜±c•!µÌŠBúuÔÜõ‘ÒsúÖ[ŸÍ½Îú)¨d¹¦hY«ï1—ÂÓ|T+¤úfhÙ>ÈÃÎÌ¥ùެC+%§­½˜;¯7÷Ø[1wÍMï€ñùa3—„ŒæQ2r·§+®ÔÄ´€Yny]p8®c–\ËÂV6Y' ØåcØÛëCØ[!€ìÔQѪæÜ}kB|@órŸœ@Øf^, B>qjXËà¥n˜ãTóªœ3ô,¿O†ƒ?É‘>ÝchDc{éoÛÐ7æÆö0ðôä ZiÔ.€,Á%Œô∵ºamRL\âåC4B6yµW7EìÕ ñ9Y ôˆ4a—ˆ“ÄÜ~ÑÝ#Éšz¯¹áåøiÀX÷8f¯{µ5v"üöqžEŒ™e³ïÊ/ϽÇg¸õ»V”uÂ¥‰jºSS-;ê_Çíb©[É,Û#= éEžIJJ@Ï,‹÷Fµb0æaðu¿VDrA.ßge‚‡?Ù™—ÕÆæù,8Wìö´ëSKÈà3ŽZÆ\2>+>äa”&Õ=j)Õ£–1ÿÐ;-äži>&¨`Î’‡¾O×]J~Åæ$=Í£b@f)ñÎpŠý*~…W)ÆkßT^zO¿óéR&YC葼DÏßš!$­W^{Sô›{„’Ó‹ìîg§'fj¥Î1j®«òlP ÙJÅA‡Õ¬2ï-MÙVø«¬ø·ÿ™¨Î¾˜°)žlk>»<¢—pf¹hÜû*0.¤íXk[:..b擃È?ö]ðQ‹˜;ûp÷=ÿî—êǹGö枀éIŸWßôÒ­•A®®nØqÈëw€ÏÂz6Ê3ÍÌÌ*ƒZ9ba âV+ +(u¶6¼ÀçoÌ“–Gˆ·œ£¼‚„¡º& c‡<ÒŽ­îEÔ,—ù!í«X…*fÁê5mqxw[ÅÇ9úI·ýZ¹ lkèˆ8šAÛ5>“îÕs*\Sô̹.ì¥ÍaA)¢™akM“ßP×¶Iäa›¢>b•Jã6!t‚²0ÄÏ[dgƬR¼$aÈ]GCGtVÑFö€÷ǬbAÄYßÐÒµ9CE­Nâ„L íAËsÏø¤¾[¶3}jNÄÈÅ +Cpü~›L°V7…¬o"¶ºçA3ÇG +[ÄŠóbY2tX'åïØë_ƒ'7FÀ+½ZƯçr*cv!owA‚ø™¹Ö´)êÜ3’G#"lLÓ²æúP§\ÄÛþiN1ÔÞÙɧ–óüg|àÑAµˆ°=ÉÈÚ¦&ódl3Òà+ý¸kËï°ç<“Ü"¯Š]¸=ÁÊöNsK]Ü‚…^Ê÷(+çw³ˆûû¬ptr+jPH »T»§¸åÎ V®{Š™ã"Þ +‹z'Ù!µ˜±‹°;xýúPÕ5ÇëâÃËí½çC“ÀÚ1Ù›ìÈëkäqCµÌ7ÅÈóM!ëÎäÌ€ªâFÂHÌÚ-: ™érÄPû$¤©–Ôbª_ <ó³3Ç£íÎ1 ;vY« +kkd!í“Π¦­?¨oéðªxëƒågÞ£OÙ;¨7 Ïñ·ÂfEG'b®By¦Ÿ½÷«[»ÃÆš:¿[µ5Uuç"Ü÷ÏPR¢F>Ño`–xUÀmÚºz¿ZLF®Í:ÇY9Nг塢ӎg¹'vbA¸ÙëÐ?îðw>35¾ðåò­QFúzñ6h`z²¿W#çyôõÍ~cCÔë[?d  ™‹ ˜¥;ÀA «2hÀ=rNæ ©éE1KMsmCcØŒä>mÇÁ%%lllP}¸Ö—ÿËö89 æ†4ðñA8¿ˆ£¾=¬¶ y.`•ŠÜznvt™ƒß@wk$̰M +µ*bAF¢%Ì<¢òÚÖ4茎K𛞎„çO|ÕoDö_Õ€gÕ> [ è%ì ±á¹S+—¬M3²ŽÚ¶8òš­yƒWø½w”¼°žŽŠYë_;52î¦R![z#vÈëó²Æ˜]ÀŽXÌ€‰Kp©ñ"V‘(2'©^ÓRsu¯w–›F£s5ma‹áBzÜT]û2nWÔÆlŠd½91'DìL¬Ï@Ì.!Dí|ztV,ÌÊë|6¨“rý:)êŽìA êYèõqÜ=ç-Ãì{R‹Hëì ϤôjüfÇL+Œ ékC™ÇÞ¥}¿ú¾èháŽv¡Ñ1Œ…䔀^@@Ö7v,,\ÌĪØŽ„z¨ñ û`&é™!µœ³1Ê-Ú˜`ä ûÏVû +¯÷—\L1Ëv­òꀒ–˜¡eú”ÀüJ~•o,瘳/eßö@é©äø¨‰SÖÑ ‚3´¼ šS˜l¬LU³=jJö\WÚ×(zƒ’7sˆqD#5ì¯Z@‚Új9äQ+½4¨ÇÞhqÂ:fIÌ$áÆlòº(Ô,dR™O)¨ØâäûÆDUÞq>*l äE­´Ÿ–òëåD»`|Èž)1Î?S#æ û”ø$ÏDŵ0ðdØÄ# ×_.Ú§¤g‡u" +Âba𒀜å ©ù~½(Œ\›¶4w¹õu ^}ãs¯îÙhØØø29aàá¢zV¹o†Q†zó›ªåas]k¼>lû£žžíÌJd;V>j¤ä… „Ô;­l×F/ ðÛjbºW-áE-2ÐRd½¹v(`„uŒ² †–1ò +7§*nÌYÀVÛæ1 ©.“„ç:DBŸ Ÿ11ÊÂf&b½7×=Úeµ§"¨g–† ´|ŸŠœ±>^y}m’ø h“7†fù¬0¼'b{2´¼Ð'v[5F5O㎆wq¨Ud-/b—ʃVvgNZ ãÀ€9¨Ý¯{¬gì̉ø»ó|.Ô-{®p j%;dRÔ¹Lq¡§ü–š5*¤ð’¹”¬üÍIÒC×dÕM¯šš5ƒæÛ¥ +§ž’7Û‡>TÖJƒÀÄ­´9Œ¾d¶w¥;ÿdHE/‹™Tçú‚o{/ŽìÑ3‹X[ýÙ‡ýyçBÓ䂘A@ jéùÎárd× ÷4þsŠ[µÖCÍð«`¾‡+’Bj.!Žd\=§Ê7Ã,F®Iúµ<<ÌÓc·†ìÌ*ßu0+?:»v.i×Á£E¬´R¯—ìUQ³BZ!Á=.@{GE•ž zVȈ¹·PM´0²ïaV,ÙPÒ³\ãb\XÛÒÔËÎÒ#×9=ª2!' ¥º&ÐW·FQç¢pÌa½LЈHa#ÔÑŠC&ziÈÄ,ßrwg¥5È,>BZ þ¤P kÚ;ðJX¥Š˜ÆÁù×È®«LÌ +¸ñ…ú÷a{ísd}6a‹Ÿð>Îq©ç8dŸºâÖÖdþ±­É²ó0þ9Îb†[É'DôÍ¯ã–ÆW1£Lâ™á–mϪ6'Y…›˜;>ƒT´¥“ó7 [úÍÍ!à»è¢´Ño©HB>#d䓉è$§ZtŸ–‘4ðˆq‡´vwA$‹Î2q~ µ â`áB³Ô¨Áƈµm&doÓ„@û£³Õ-‰Å†žË ƒ‰icÄ.ä-|ZäÿïQÙ/l—7ü{±æeÈD- +›™1;² %i°êºkš’æ×³1ËS„ûdßÃlÃûèlcwØ!« Ûœ •U° ½&jUb®öeÄ&SDa|À;Ú#‘hs¢è|r'd©ºèpØ"“B_ u)ƒÞhŒ;Dü˜E*€sÂBŽÂ…MœÊ0/ãëÂ&©Ã|NbV,ß]P<ØÅb·ÿpk¤ò20¿0j’‰¡þr|*JNPÅ!D´ÕƆg;fE-äfÌroå×½ÙŸùÐ@ÖWÉ~Dl +ìÇAmCØTâïoŽPùgZ^º§\Ï„½=ÄÌñRs‚j¨)Ècø[žqìõ¸‰\¸ µà×±~¥\ÖÕ4GŒ5 Qà5d_vz#¢$$ÇíÔÒ¡×ö œŒª$‚„U" +x„€‹Ý]óN3 Ã:‹¬Y³±vWžO€žügËŒšðén%þžÿkȔ젎˜5°+=Zjq‡ðÚ¾wì[?ù§¬ÝyIÃïóø9שácZF‰c{Í©æÝ&¨-%»$¢©©iZ:ÆÚ&¯Š’¹1‚¹´Ö_|Ì5޹2ˆãüÒ­1^Ac×Qó|ÇÎÆEL Ã&vEÈÈ©ð#ë½&Eµ×À§¸”Ì"ÈòÍq‹TEØÒ,MIwë )a¨™y69¾ ’ø Vüƺ'ñ¹†®Ä¼HìÓÓ ƒ&6häÑâ66ãÿ.ðxÀ”U³C%LJèm÷í)øHMW]WïQ=yëÓ>韩ÛÖ‹éK3üò¥IVVØÚÜí6òÙ¤² UR0Õ´„,5M[=¢ÿ- 5ߥ$= +ìÄ|Ý› ƒCñZɹ^#9Ó£%¦ì¤ì Ùöx$±Tߟ­~‡ºÝYªëŠ-Šä18v?d/²& +ó±°ñ>uÕݨ‰}"`ÆÌ¬Ê„•Gû}ŽÏû¿ Bñ®C(@jÖ«¡f®OV^ éÙåÈ5ȼ°E"ZjÛ¢³uo¢³ ï¼pÜ!«å7 Èa›Lµ,ô†µrq9x¿K+À{t<èh<%YÈ 9,a®®OX«vYõ®]$ˆYy$d_p4>¤oz›­}Ÿ—‚?ŠAøø=ar5n¿Vß! &lµÏã¶ÆÎ¸¹¦)a¬©è¥|dÙ¿Ò3ÐA-­Ð§$§D4Õr¿öqûöŒœíÖȹ®)6 ã0æ+îÖ±° }à=ýô‚]C㋨OvŽ“mMPÓ!‹[ó)ˆ&&\b ¼ü½uS%çmL‰«þX … 3ÓŠ}3Ø»Îñªë³Ù?­¾)»”ÐÊå1‹ˆç‚Þd⸵þU41ajx5Jù8NŸ†^y„6ÑÁXðÙÏ|ú–÷1»T +Ù™|T¾Üƒ¹ nÎ=¨k)ú-¬ò&D¿y¿AÂu©…ŸOØÒ0‹¶ôÜŠ =§lm‚‘µc»y4jäá#&!+á0‘úߣ>Z§¥BÉô*Ùù1 è›Y^ _PóqCMrm-lm|uÔ½€Ü(oçEAo–†ˆ)sï+.$¬Šú°GÞ]à1s\úGäÚô¼\‡šEÈðM1»LÙZÝkŠ ÷Œ€GÍ´"§Ššçƒyò[dâõIVAHÛô<`xÚï75äfyÄ +Ú5·» –ý{™Ïÿ}‘lj™9„˜…ÏØ™—·ÄåO‹ŠÖØœâ)ÔHÍÎBuÛî’âyl^,Ú„¬­iz&øq]ØR×ê5IØCMmÄÞØúØ„0P˜`b¢¶•Øûn%îQ@Ç,ý8+«þÏ‚¢å£] c!d†Ì²:È߯ÁÚâ=aeU„ÍŒÒ ’íB~Ì¡hqÙ· ˜g®©úzS*EØ0ÚµrîIz†k„öÐ3ÅÊóó"û÷CZ¶g‚t{œú(¤æc\ÃŒÔÍ~ÒMç ùÎŽŬåG G ·á}*V¡OÍ*„šÁîΊøÈº‘W'$z´"ä>'zT#eDµBrXÇ«BÞç‚Ïõ(y~-³5ÍÌYb¦¬ôÓm‘’BJ–{š–µ=CÏÝ£%»Æe¤ùnÒ½¥¾ÊËÛ ?>Ðr·’Q¸c” +wôrqÄÈÁªÚR¿_¤yÔR¶wFBÜ1*äÿžS<þ8'€^aã}sÐC©®q&²3+¤¦çìZyÔÿzúox…þ¸'Œ–ýR3³1!-£ ¨¦æoù§¸¥qÓã÷óc` +ðUd`5' ¡dGM”œ°‘˜Ðq*Â&™$ +^€\ ¨h…æ×©?šÛS¾÷ªË¯Aþ}Er¸^ êªå!È ½ˆ³J„À`5ÀêDèTÔDÍ‹˜íE”‘Fx7h’Ë ë‚'ÓË<Úª»[3Ø;1§*ž…\ ¯Á„L\äÈfDww–„dœ=à9kÃÔ¤­AòÝÿ· oŽý±'LÌŠXÞDçO¢6qgž†ú¯˜‘’3Ð  Ù‘9>kwA¢ØY¨mz ¯ö8hzlr ²Žceab—¼ÕÀrœêÚÚ­<‡M^“$æµ-~ÔʆŒ,Œ[Í)óZÀkM/M~KÛtØ^÷Â?[¸ø…Q0àÓ: ß§6ê1µt¯Ç„¡·bsuo£³²ZŸŽU²¨a»ˆƒìˉ˜^u +yÂQÛ³Ö¶ú5raÈ,`Àwa#&jOMØXø«€|Ô¸³ðx<¾Ò0X¬~¾ãòáÿ0A£È¯§ç…MŒ’ ^šU´5#$‡LµmqÐ`8aØ Úeå‘cF©kŒp{¹«òôZîÊJ/ùöR'þ’w‚‘á <òÀÿ¹F‰·W{*Ï®t•]ê(<Õ’3£:fIHÃ)‹@~ðÍPÓý3ô̆UÕq1Þ NgZŒ÷k¥ì^Æõ+ùhï$+×9ŠÜ÷AËðNÑ3Üä®1Ò­Q­­qNÎÊ íáÚ þªOI|àQ’z¡®½*Zææñ®îUæ÷–·‡Ö‡à÷U²_ÍGîG Uì×5Qq5¤£æmOÓ³œ#Ì´¸FBûY4úRCžÐ°ŠÝcä¤íaü ÷þfXKÏÛµó Ÿ +x »ˆPó0Ûãô´À 3oØ>¢en•Ÿ_|_ò«o”•QKY ÛBȾøÓïv‰,¨¢åzÆ+¯ú§Qç?Bfß±×qÈ&1`ÚèqÈÄ'„Œ´—sÝ7CIhØ¥Hï¸õ"êú+Ë«¦¤‡dÈ<Ô¬] ÓsÊÃZV1°°·Ü‹Š¬KÇç$âr}OÇGÖr£p®¿ ûn":ذţ5q q‡”€ùÿhçBjj–swÛ£Å?Hع”r½ Ž3f­iŽBÄí5-1‡Xè7!™…Y¶ óãDöÐZ kÀ¸D­ˆIªãsbiØÂ@ELÔü°‘^€ïŠû‡€!|& ?h­ ^ò$æà‘ã.å÷y×£e•lKo(yåKÃôd¿¶¾Ùo¨®Ûœ`,÷â.F,|JøÉ]žiJÆdÒAHñ(ù+Cœ¬8pb8&ªçáÜãäA 19¬¡dÆ4ì2diÌQÓvÔçžÂßó¨I©~-²vÅ,=ÇFô´\䞘ä^ƒ„\òϰQq£„Òò*ãfñkÄ£üÓÔ4ß-Î)Í ÇÔ +°þ˯Qœ“ì\¿šWTsË=ä‡NdíAIM[îÃ^Zí'^wB.ñL3²ÜãôÔÈ §äw¿ ¯äšþª ›ý„kþ)VQÂ*«N@†Œêÿ4»Ô?IËLRS¶ˆ××z@ûÆè©Þ f¶gLP¶=*,ª•~%µ9D½·1€¿æ"=Œ™¹8ÿ437¨æ¡£ÀŸA¨§€IÄò¸5|@'¦¹fèàõÔt·’”Šü?Ì;²ç<¤c´qp #ÇAC®…õÌ¢íRÊòö†WÍÂý>'oÙ±òi!½8jãCVv•WËÈß‚±Yê¡Ü˜}E<·ð–zm±ƒuOSWv`¥s1z‡,ãýô+qwƒjrÚÖ#ÍÞK¿=ÛC¼îg@=`·©÷¢ñß³bqÂß?Í)DØÈ£’Rýê¹G©,¼çû{r½‹tm«—v r…oüe˜µ5ÀJÝè¥ÜZz‡9e{SxxTñè‹QqÆ–çå¿-¿«ºº = ~ð`©‹|mé=éòì«âƒ«9?YZ|³üuÍ5&ª\éçåy§D•®qNÁòòM„ W:Q¿y‡p·|Ãø;³/r÷/À]Yî¦ÞÛì§§¸†hÖºP'¶zÑg]ƒ\ÃU—¬o+ÏŒÉÒ?_éÄ\ÛщéH--¼+>²ò¡ì·­Aìõ­!Ü5'ôµk˜þh{„š²ÖSuÉ7!!ø¦ê„›£RÌÂ;ÆÝ¹vú ÇKü)kkÙ…7Ç}äûÞ1fÎz/ñFX- ÿðPê ‰ü d} +j­ +ò\rÄÀ%øÔÌbrÛŒˆ€÷Ïu”µ¶î·=-=l^þ‹ý9ú—Å7øs›0f[ýÔ$ß8;g{€™²þxyýþ’íEÑOà·¿˜›Kö¯v‘o†uR–[)¨Ø@îw.sOî¬ö¡OϿŜs¼BÑ?Îþ~{û¯¦æ‚]”[óí¨#Ëï+N[ +ö«$™_©$9_Z—ÿ¼ÔI¼j}E¹6*.ûvL\𥺶dŸ|Æ9J}¸ÙG¸îì§Üc¸²ÔEº²6@K›~’w²d©_Å*Yï#ÞÜ@ÀÍž}ƒ>jjÌøÒT›ö/s]æsCÆž¹ö’Ã#’Œ½úæªë oØwím凗;ËO¬¾/?±ÔY~ÌÔZvpFžû•¹¥èçµ^üÍÅìõÀ„„îæ•m 2“W{I7 Ï..¼Åüf–Ô7¥í…þÎXëåfÍ¿cÜÙ¬!®vK —»w/Ë› +¿36ü ¬Ëø~Xúðë­azæ:ÔÓæîêJ7ö°íBgÙ û«Ò#ú–Ìï5 Éß:^eØÃ?ˆÄï¿|}€tù»öVÔ¡¥ŽÊS«ˆGvàÎB¯]{G¸å¤§lAm®w.¯tVž¶?/:° +~2Sñõj/ùîÖ„»>&,uj„D$[zgˆ'§dY_¨E{uõyßÍÈR¾4¶”|ELÚõyÚœ¶ÑKº­¯+üaˆ™òIéÁ'ÄŸôð2¿²½&_[ì¢Þ6=Eý¼=B{ä"ßõŒ û¥ò̤ìþç35ßš ÷‹ìMÎõ+E¤^fŠs™ºØùÍÐRðݤ$óó)qöÊš‚o_VÝýË0?çÀü[ÂM÷¿hc€ž<ÿ}lþhn5ôgKþ>ûëÒ£p>ßx9e«C +Žé5åúr+Ã;SW·ÚÇÎÖ5ü4D¿÷¿ý´Ÿ>ÃÜø'åæ¾ÿ3û¦èöZ_Á™IñÍ¿YÛ²ôMãîy&ª€{Pç<£¸›¡jVD-"m²2}3š{FL·½ ]²?ÇþfVô“©%ïÇ…vÔIß#SÙTt*ÿìWÿciÉ»ÑÊ%¶·U·Fd¿^î.8¼ö!ÿ½5mÏÂë‚Cþ)fîsòµoœ½Ä¼ðæj?éæü[Ô1ýãô½ºæä¯¦e¾PÕæýЂ½öYSᙿ®¾Ãß±¾.=<*Jþt€òÉ 'ýïSÒ¼ 2îÚM¸ñ÷!yÊø;?þ·Ršur jÚü‚tV×”ûƒº6s²:óË1AêgCŒ¤¿NHó~xCKûñUù­®t³ ‹Š¾äøÄÔ˜½wõMù‰IQò—½¤Ë6T'}nE¾¥©%]›Éz°=",}»²Ò>>×Vr`¶uXW—ÿ¦:w¯½xq”þÙTWè㥅·ø³›Ý¬ä¹vâ9û‹ª3öWès£’ëÿ4=Íúi³GT´ÒÉN¶>ÃXýÀJZí¡ÞZíÆ_\z9¹ØY~Üþ"ÿguCÊ^UmÆ7ÖçÌ«–´ËKï©7æ^W4·”°´–Ò4í—þøÿ¯]Œ‡Ÿ/½'ÜYé¡ß76—ü8]»gXþùTuæ·ÚƬïÌO²ö¯õa.öÉìífÝÝ»=*ª‚Ì6Âgiê³öè›ó¿=Ø?Ä¿ÿÏœ›ŸKrOýeX”z 8ÁÊ_î(?¹ø|ïê¤ãeáQðÚ#K~PÕÞü×R?6É5Ã*sŽÒÓ6ÀƒŒO«Ž,¼"œµ<©øuöeÕYÈ—'gêóöC¶¼ŒpÐ\;êÌrí®©­ò˜º¾äãÓòóԻkƒÜ„³¦«S¿X|‡½`jE1=¦î%Ý2<)9®­/Þ?û¬â¨ñŒW˜s’Ÿ5 åÇß1Sôõ¨³¯)—ô-øã’ü=†¦Òý¶çøSӊ⃬äãÖ?îý@¾;ÈOýª~÷oÓ¢”Ï ?Xž•Ù¬¼ìW‘²¦šÓ½"]ú³æ1êØj_-ÃÖμ?Q]üs/=õÛ^jÚžqÞ£Ïûh×þ±øuu±»èøF?!)¨©­›Å’Å7y‡Æ×?™”Üù§½-ë;{Kö^[kÉOöWU''ë‹OŽÊËŽ¹Çe”àŒç''­¿CŸ_nGŸ\h¯8f}Q\^yËÒNÈ–ç1´¢NTô|`‘SóÏó\|Uü‹¡>ÿ°ù êL`\ÊòÏTs·†E«ý’²¥” ïÐ'¬ÏŠêòÐÔ¦îÑ×¥}å™d̾GŸ²´UþfzL¿ªª­:b|Œ>h}ŠùÕúŒtöƒ¼øÇ‚‹ßÿ×0/õ¬{DŒ±¼"œ‘\ûßÉ•ÿÝùÛ óþßí-è_ÇJ–?:þ7ì…ÿ{³Ÿ="Ìü|€qçÏ‚¤O4ÕiŸ sî~:À¼õÙüÔi)úʧø¿üY«¨x×ÊyƒU—æÞ”ýbh*øn„—þÏÂí?OÉr¾ù ÊÝ[|í—ÿ™–äÿºÔE¼3Y“»O]›X[›óC'åÖß`¸þô +óË9Ú³¼“dî`=ü~µ‡’´ÜEoÁœ†Þ8ai+Ø7)yôÏ.âÅ?½BŸøïIIÒÞgÔäo^QÓC/%ϾŸŸ}Yy|ù=þüb'îœñ)úH'ñò_:«.üXû¨ýMÕðÙ›ë}̬¥÷”Ûk=äÈšZHIN «È©Ö×9‡Ç„©ß¯õJÑ+Ý‚ÜÙvâckù¯¶çåÇ–Þâ.Ì·.Œ(2÷ÓRŽü¥‹™|ÈÙÏL›‘ßùTSû`¡9wÿãÞçZÙ¯WߦœXjϾ¸1LI³½+9âfä8![˜!OŸ ÷0Rÿþž’ô—1~ÚçÎ^ì%çéþ`mòÏÌ´ƒ]èdgéžâÏ˲¾š=ür¥sqù­ô åiÉÁÙטSæç賖瘋žq}sPRºôŽxÙÜV°ßþ¼à@ûágõ…gÿ4,Ný¾•öðÛ6âýK 3È4ºFÔ~mCÞC¼äÏ›K¯þ…›rú¿Ô-¥GZ¨É?““NýNç›­>jš{„™å…ܲ1X~Áò<éKuÍO•ò»_ØÞ`.¶Ò÷IKï}5ÕL~¸Ú'._~‡¿ºÞUz|ùmáaëóì_û˜ç>±?Ï=æ™d—8^W^²>.<¸Ø‰¾;û¶"i­ }áUÉÏKïðôOÊ ÒÏüù1êÎ÷ž1¼%Xø‘¡!ý[sSÎË蓞IbÒòöz æòg”Ô£6¿EßZŽ65ï·=.øÑò8sï0çæg[´‡î11ncˆ_¼=.ÁmŒÉÉ HW!£W7ä7%~ôOc}òs/sÚš¦eÖ¦~kl¥¤¬w?áÏwˆ³ŒOQ§ër–ü4*CxÏÌ84û‚”˜¬—8Þ²’4-Yßi[ÒöšZs´·–ÿ²ØN½<ÝPös}ùµ¿½DßVá•hŠ÷éëò°>)ùY)Mþ‡©>÷»…WåÇÞáÎWWÞø;/íÜ?ŒM¸Ô¸N.XíÅœŸ}]qlþ5ø stB”ù•®¡ì@'/ëë{Ç÷þWëÑ/Žw”‡¬‡Ÿµ•ŸûŸÊ­¿| Üù볊Kég\þt¥sITqåKaÁoߤä,¼Ãž5·å¯{œ·×ð¤pŸª.ïÇ1~ò¿¦Åiß-½Å_¯ÃÜþ¬wü—•¡k*9¾µw˜Ëþ¢ôª>ë›ÂùOF9W÷8Ú‹N¾çÞýn½‹œ3Ô4ºFÙ+àMy®xF°×|ãØ¨3ÚÇ%‡§šñW‡Å¿­÷ñJ:)×ç^Uœ\}‡»´úpÅ +Œ6.NßãxVum£—•>-~øùb{Õõ•ìì¹×„®^ÂýëÙ˜] ³dksÅò"ë'ÿ¤ë„üfz…;éxCº2*.Ø;ÄÍú—µ¥ôg÷0þ¦{š”<Ù’ý+7ãè_mÏ÷Uõ•'Ø©ÿ˜”¦îQvúùÖB'ùÖö -Õ5@y¨kÉ;hyYzvsPZ9ßÁ}0ßA¼0×Qqfî 8{MÙÊñ{ë5'ýç׌”ýË=ôŠ‚¹éŸR?â¥ÝÍÌÜßÃÏ=ahÇݬxxêïWúòÿ<¯ºýMHÅǺ¿ bŸÿl©³äÂÖ(åQ'é›™Úü£˜Ö H›ý”$}Cö^SKáQqêW¬û?ÿ÷KÌÍo O«nLÔ÷Lóˆ[ýÄä5ÐçåþFö†º9÷§g„Ÿ¾¤ÜÙ3ßCJ«)ƒ|ƒ>¾ÑÃÌr“³7‡1·ç;QÇ O²~Ô?ÉÝïã•ß®›^cÎm ñ +Ö{˜é‹oPÇWß—Ûì+?³ÙÖôse­OBs6+ÞKò -Ä߆D9{ßïþM_[´o{€ñ0ª•qƒªñzŸ½Ü#E;ÞR®Y^0·d«”æ=ÀIþû›ª²?EŸ]îa¤ÏÔ£~š}ɺ¿Ðξ÷áO=´[Ÿjêò¾Ó6÷쵿À]r‰«üÓbüRgÕÙ­~Nþz?¯ÐÚ†>¢«ÍÿvBœóõ0/ûËANî~G+éÞJwu¥±v]ÛP~J[S¸oF‘ñ/]möWkè3[£ìu­âŠgRˆ[ì&ݰwT]ègdnLò+í]Ä+Óò¼¯ÔŠ‚oÏð§gjr¾ÕÖç^ùÀI7¶bOν$^Xû@»³öt}õ=éÆz7å›àSœ“|ŒsiäªqsmËö4³p 2ïö5Ù5L¾ë£$yÇ[ƒœ]+þêxuñ¯®a s¦±øÐÚÕ¿*·?[|—½D~û*YÆž¥W„Ë“àƒÒŒ£_zCÌ k¥Ì€ŠS♢¤l¢//¼Î8¨¯¹ò‰ãeÞáÐŒ„ _¤nF\ìfÜ×·”쟧>¿÷ÏvêùÏÚé—¿T7¥ÿhn-:`í¤¥Õ£¯ÙËË:é“0܃ìLÐØ¬­AÜÝ¥wÙ'Ú š2¾ž}‰:µôA”ÓŒøÕxcéç3k­Mÿ¤èØìë‚ß–»*.Ì¿-:¦kÊüÁðªâÒ^òWš†’ãövÒÕÅ÷”;k-\£üòÙnâ­ñºâ£âÜß ‹]ãÜ¢ÍnkBT9s9ß^vdõCå9ЧC¦ç¨º¨Sª¥·çzɹ}¢”ƒššì–ÚË/®}¨¼é©JöM1Ð~%-{ms©—{ûÓÙW•7}SüŠÍòå÷ØsS5éÿš–gí™’g}=üÿqôÕome]Û©ÍtfêÞRwZÚR§”RÜÝ%8qw7ÜÝ%$' Ip—$ÄHÒvfÞç}¯ïùNžÎ®çì³÷Z·Y‹}o{¨8\]“÷™—ô×ê0®Â:Z:èßö"/áê0äëoبËƆÜN w™Ù_þè@&ùÄ"íé1ù›ƒÏ-£¸û£È+ç ½*lköÕ<†Œq)ÙË0:Î6Xþn¡!ûI”v Àº ŸFÜ£&çmãcç;qA{ê¾[ÅÅØÄȈ]ß»¶#àÀ½©¢—¼,ÈàâÁ4Ÿf|ïB9l¡´Ü +?W—ÿØwÍÅÜ_ùq®¹ðérwÅ»•ABÌdmQÀ:áÌ|MiÀÎ6Ê6Љ0þn €ß›‡ €ùÌy¼PŸqcg›l³Š¢á¦ßâfÞÕs3®Ûzaß=jÁr7<ÌX_òÖ6ÊAj›Ÿ[*‚Nu”¿ûMÏO¸¹=TùÙ­¤ä{TÀ¦¡•;dÈÄCq´PUçÒ ÛbÊb;ôÓJ+ôÝfìÝJsÅK×5Ï2DJ—1.Í7e?ÞÃÅã~9Å‹»¬d¤\Ó ,waØÊöª8ø³,†×ÀÀz¦êëôÎROù'µ ˆ¡Ô«z^Ĺ–B€k+Rr­fh̼½1PðÒwŸ +ˆ—¶ab¢SÌÈ“srOR“Ÿ¹Çi(·ŠV¹6TôÂxf'{ŽdØž¸2Ø-ñ‹ŠßôÕu‚}ÙÓСºšÔ{ãä°ßç[2kªó^I˜)–Úò_î«(å3€Q¯* ¹,”¤ªø”µ¶ÂÇóõÉ×Õì°óê—‹}y/Ü•ßÝøôÕAt¿"ø¢¢6?bWC.24ä?"F\—qã͵d=YhM{è”Â#íàObvüm‡ðõc?æó_rÆ·ËËÝùÏ6FË>n •½·K`ÖQl°.O×z é^­ˆk g-¶•¾^í* œd'ú"ÎïH¡an—1Ý‹É+z~q®·,Ò«#—:¤˜8ó"Ä< + Y¼´Œq}ˆðíªð抺âoƒ˜èk–DŒs’¶M +0¶IxOO*Ý7*ÜÓø‡ŽTàұн„¨ë3u™^%áT°Q^­ôØÿ/®À%/ Ù}þ{žÁøÏºhpOo¾=2Õ´…¢ý)Æ.Á'Z|8.z}ß‚û~mVPþÎ3"DºÄL°{’œs %n—nU|´Hè9¾wv”„œþÒÀÁò÷Ëm¹Ï¶†²^z§I»rBÖþ4n¤fo S7G¸yÆfØ@w°ôA?®µŸ9{±³ü³±ú© }q›rc»Ÿ•·#fæÏ4—½œ`']•Ðc.kS¯w|4T~uËH™kC˜HCKÑ’Y±#FDÌ5'ùàƒÏO0b¯v!¿üÞƒ >³ÖEH›¨E~l¬ŒúKÃ/x·¯"Ã~ñ‡Z|žs»ÜSð|©;õ¾o¬?L”ò l¢s’]±;%dlŽSõUÙ·Ç ‘g¤´ø»ôèkðw§Ä´Ð+ÆöòÀv|ÔU)#îÖv?"Î6ŠKæºä@èô(ÉÅ[ð»%4Ö­å‘Ü*y{Œ–»ÒŠ|tÐVGAÀ¡ç–¢b6z+?nB¾[FÐQÎ F‰uœ ­M¼>Ó\h,b\ŒGŬðêyt‡Š^¾1ŽˆtjÚ\ÓÍÃ.%½b³·ü©1û®®:óö\KÑ+§Œ˜ðd®Z”zWÆŠ¿â’Jlãäì;ŠO³ éwZòžmŒàb¶F)YŽ Ö:JÎZh)»=ˆLò,Í%Ç$ûî1¬v¼œ¥ÜŸäÄ\²Jî)¦ ƒç{*¿¸T\œSÉ‚ZĨ蕮‚·[}E¯6 +_ïÈáÑ»rÉ òÌC°Ð])"Ñ#‡Emö~PñâoŒ’BÏI©€>¨Í¸·¯f"öõBžC% 9Õ4 V!v)>q£«â•©!Ï_ßRòiy³Ô‹ŠøµÀáÙ¤èÔµŽÊ7 -—Û#¨‡b—£R¬“È»žîbf¼c罿h!÷MÍcv]µÀ¬¢—¬Âƒ—ú+>¹´@®ÌrÙ«b|zØó+ jhô—]}u³YÎF¯t—¿Yê̼>õp¾#宩)åÙ¯y®ð`†W=ø#§“v`Öx´|Ò®’]¹+c[GÈÉ[ĨÅ^\h+:ñÖ úÖ5Ø€·ôsó–[0ŸÖÚ0_¶»qQ;#„—Š]i×1‘s€çôé§=£Ü1N+pNÐJ.÷€_™'¡±N- âÔ2á6¼3Á,ðÅGÁª´ðGçhñ'ÛøíBSâ cmÌM—“áU‹è‹Ý”h@~Zï'fzT,€¯™•V)6Þ*GÇY•˜×4µÒ9WÛeÑ6´X˜yœ˜¶Ö ÞBD»äb_ dóXi*ÜîÃäìk9—š^¹Ð ‹V ÓïY%ä¬}ƒPx`ðw¤Èø­áŠsíšš”dzíÙA{S¤’Àïl“ÄdÈåÙ¶êì©jNè(y· ¾8€*»6ŠGû !wûàE׋3/‡}<îëèÞÅó °GwSSÂÿ¦Þ×ÖÃBÞ zæ(è]fQ’ÀÆŽÊ@eMÞ³M1±Ô£r—‡ifùMroŠ{¡ãÁ?ªYÐ×Íeñçh©ßO"¢‚Ożxröù|LÐilø§ßæêqn圢!]mc¿)E„oŠ¡A€nŠ4K˜à™b°®†ôq’G~7Ψ|ރɼÃÏ‹¸\úöTñ÷/Ç??ð=¹rôíÑíãä„ïW:ÐIÄìœà•^XŽ[C­pM± Ÿ·Å”ô-1>Þ¥a"¼6Þ¡!åÌu–¨y…·§«‘ïôB̧ª¼¤3ß+ úx u +ñé6!äRRÄi`Ü'CÜ:–øò4<6ô\unÜéÍB¢SÃÅ;¦”M1+µ2×YðqmihƒÎ÷à í¨“‚ò­Ð¬3ô V.ðr“O“ScÿŒ +xrâÆ_¿ƒ®Û•3§A.Ÿå} ømœ[ôíǯñŸUß5…Ê\ìÏ +ԵĿ8˜§’Ü&A•E`É!Á¦ÀÄ»µ”b»Š ÙÓòW‡ˆ`y $LPšx—žuV˜ÿ2úËù¼ ×gø…Ñ7Æ©‰×ä쌻+ýÈÔ_+ìÚÿ³ñ%ÌÀn®ž?úíÄ Ðý‹g}sbçEÿ¦©ƒ¾ÞÁ#¬ZxÂâ`ñcÀ*JÑ¶Š‹žî§%މ°þ ˆÒs„ô„“ÈcÐ ,ì (âù]Ы[W@/o\]<ý'èÂï'A/ŸÝÎ'ô™ß©ºŠð+ÓMEÏÌð°Õ±Òwf :j©òf¡ýi\}ÔM,¿\SQpw²,ì+(ûã+PìË' €—AO.]=¿|ôðâÐ¥?ÿ>yü¿8÷ʘ÷77O(ùùŸ½Z.í`FPµ«ç¼.ð•6!my®nÀ¼i‚ƒ¯"¢#~CEDÏ | +¸zôìò%PðÝ» ðÇy¿º{þèùµë +ý:yüè6p¼ä7 jfÔ%mæÃÚ0¼-i9Ô5›‚‡\£¥) O˜%~BHúlj80'¡Ç"ýŸƒ^\¿zÛôõþ}Ð-`çNÝŽqïò5ЙS¿ƒü¯\A"¿þ&f>ÐÕæ=\ë¯øâ5Rÿ®³«öù¢)=oiŒ™mêÁ…*j OFY•O©Ðµ%9‘1‘'Þ¾:ö 8Æ &¾øÿôÊ%Ði`-/ñøÊTz“üýìlWÅw«¬_v,ùÓPB` (úÕkÐ ¿[ ³'Onþù'0×Ao<]:{À‹ó ðçOŽe}{~”™àTRËöL\ºgŽËtYX§–^±>ŽWÔ•?’×cßTÃJ¯‚¿;™öö=()à%Ë7@—\¾üûi oó~ tù¯³ ëÀ¸ŸÝ¼º{õ&è¹ß=PÞ·Ðß0ÉÑW¦êðŸ—ûÙéfI3ß®ª-ô£gºÉáú.|H©ô&4)üdèËG —·n€ÞÝ{òæ÷òyqôÈÅóüùßý¿Ö0àöCÐó[w@…a!Ç«Á‰'z ñn c~.òªÝFÒ¦ç‘ÖeU„mMmͲ”á"òJrOÃâ£Oļ8óò507 €;wAú tëÌYà¸7AOoß=Ö2éí§c¤¬ô "hÆ“ÙÎʯºÆ,?ý3e´†0&¢½«á‡õ˜ÏÛQÄ[xæ”z‘R~®8"÷/DrÉERnÅÅz}¬¬¦·r¦§ƒ´1ÞHß’Uá€çsL׈¬SµÂeEJ9ÀNo§V“_u3h¯EP˜_ u«Í~NÉÅú•Æ–^ÇäžÁ¦gžÇ$%œ§¦¤øu"àš:zúÊ .~¹§üõÆ:Ü¢®¢m)EÔ•ñÜÜh#Q7XÀ’/ÔBón‹kEq¢ÚŒø—[~¥2!çpXæ©þ '×/±|tçÒMPbà×SÄÔ‚[mpÌ;]?}¾‹½%aZd”yB€˜d`)—9à¸?%lÔ Ÿö¾Åð¯&P‹‘×’¾ÆŸ|ÿøè>€~|{ +yõþxøûàãia©ÇÁ‰ù§Y¥÷‡Y°Wóí„ouÙ2Á;,¸W˯Þ7 +kwõ"¾YSÃÖ×–Ö7Æóq˜;E™™~{÷îD˜ (üíwÿ=ÐÅ¿.€bÞ~;Ë®¸A.G?ïaÒ>Œsi_ûj©VyCÝÆ8ìÛ,“ˆu’S¹6&¨˜ªG«;xñ£Õ¤Àz +â.º¸ìJ^TÒ©”¯QÇ¿¾þ äø] v/ƒ.üqôôN(54þ2¥äF‘·4\M·*é•V99Ûmà±¼ ãû‹¢¶½yaÓ†š Óà#U}ôØn&ña3wŸ.¾BÈʾˆÌÈ8_ž’záûû ß?>}Š|÷r<ákä©ðŸÓÒþ BJý&뉡+ƒ莴†¶#«Â[ä¬Ò1z¶¾þÊÔC‰[ž¨!ÈÛ9‰5˜’È´˜?â?¿;ú;,#á\Zxð¯Þ½}ä2;>÷Jb\âù̸„Sä‚Ò‹<âq7 ûNÓÿ ãf]›ï*ÿz0'¨ß_`ó}˜kÓðp]pUYM•µÑ¾ÕàaWQ9Ù¿G¾yw,<à5(÷{(?*ádôç S¯Þ%}}w‘›òG5ºâÁ ›6; €mË8p·–‰tXü-Usó& `Ö'ê)ËãuØù^j”¾ûn”}Ú…/y°ÔÞ +]ìdmŒ4‘v&k(v¥ˆa‘óQÛRv‰cJÄvÛTvSu£eŠØ’³ÊÍj>vUÁ.+9Ð…‰jôÜPT×Áˆ˜îd',Žw +–Gû„+c]œùÁFØR}Åf?%Ö«`C½@~9uUt›’Z°#eV8'ê«òî1‹º¾n]ÎGo*Eô ™·ÔÃH\éä,ôÕ—jzšŠµÃýóŸ9¾àŸYŽÐ«%Ã7Æ+øðQvžY&"kJž—0²MÝØ µ!bÌšà®ê¬;ƒÄˆscÌÄ+3}Ì,ýÈhËdw+XÚ.ˆÕô‰ŠÅMT³¢QhSóðëCðhµ0öòÆ0øýþ,›w´ÚbÚ5R!69Ï¡ã‘ÖÈœ´ +¢è­JŸhÄN¶Ô&ÊZ™ß•ýõ•ª±N–n¼ 3'¦$΢fq¡óýˆONŸb–q‘ ݰÛ£ð_›µ·¡]î1Öw9´5UfUiÐ[ãø8y]éÛúÒoç=26jwŠCÚ–àS,Rtôö8*Ò®rUAÎÞbÂ=&QÍŽšUéRy7Ý&õ[%Æú֬a!¶¤Ìåaxðº½*ÁdZ¡øÈXÅwOUóvU @ì2J¼zBÞÞ4©t[MÞQÑKw§šmµ<—’7«¸ÈõI.Ò,«f¸¦„ »„˜n"Älôã—H1›’fΰ­ŒUÃ7Çk1ë£ü’Õ~J‚]Ê­ÜÓè6™¯‡XUÝ‘±Uv`hèui—–^nSÐÁ)»tk”]螪¢¹µB–]ÍŸ´55VEߦªlËYe«b\Ôšež$¥mã­ +vÅL;u¡KX`WôNºkÓT$«v ì#¢7‡ +üJdÒyÈ1ÅÅY•<Ò®±¦Õ>Sß»ªmh[ŸjíYSwô¬)ësC¤¨ù~ÁŠ´¹¥d‚÷L4Ô‘Ï:2ñ˜ÿ­‘¹É®òÕA´kHù ëšÖ˜ï«‡Ž÷Õ#:БŠL4„KC+6KòØ'vIì³A>,oEÕ5bš¬ª\PRræe4ðŠŒõ|u«†½³¢&›[°7[Õ¶¿ÐfðÎ×tZÕÔ"@s1½3€îÒk;Å€8§xØÍqrÆRäMI‡ìN×µ-÷£¾›Z ž,BC ƒè¨ ±­áѶ´BF/ãñüpÒ˜wFÔìUÃã<²ŠP»´âÛÆ,Ô!#g{5l¸GÅ‚ÎòXn»5Zöqs ÿÕRGêmC}Úc;üÆJWNgZXgáÒ¤õ¥!ÛJ:λجÚ7E»::re´wû3­Ê}c³Ø—s<–eŠT°-Ç%lK±ñ; +bŽª9Û’óúÇ\uÇž±±Ï¥ÑmR|¢y´ôE\ùÙ÷^»]Í‚ÍR‹G8yﶆQ™^C]‡[ÛÔåÒ4¶ØUläBGÖ“õpÀÖìË–„”!¯AÆiëPY6YÈ!ú‰Kñõ´ÚŸÆæXÇ‹ƒç:¢oº4X°×PÓ¼3ŧè»`A65áÖVq<Úšº=M}WE+ÛAÄnI!aû3|¾G/äù8fGÎ,·É©E%­Ì­æÐÀÄØÕx@Â?[F¨Y{ºÆ.÷4¾)®ø¼6 ò1å@‡+t) q?LÔ9A° +§FÄ?œo–í/6H¬ÆÚ»¡¾Ã¦«©ÛVRJ¬ +b¦]ͬpOsðû³ Ôÿn +{|5n÷¦ip¯ þ1Êß7 +íJ\²GKïÏq­Òíë¶Êoøß%÷ßqWMÌ^ê†~05Aw¤ Èž¡ºsw¶º}KC)t-ðëöVêÆ®ˆºÿg•#ú±ÀâºäÊeq^€Û„+öšDû3¢†=S•èp©¦ˆ-ö°ž‡z:Ô¥"dl l ä>ÝÓSak£dðR7<Ä6NHß3ÐQî%gMÔs°$l¶ê(Ų¦”ç‹#¨J÷\m÷Æ$¥À> 8š&–™|5›éH—‘°Þ—´5XôuOG.µÊhÅÆ¦Ü;ºêäËK9w5臑~h¤`ög«Ûf†‘écüh?«?Z©sÈ 6&i]ŠJš‚ÅØ4ÄÊýyníáZÔ<-ªéa$û™'PE¿æ¹\»ŸîQ“rœJtü–¸øýl[òÃmiqÄá2‹»ð›MìôÌT·ºgë{v´\¬UO³MT~qL”Ü- +´H¡Qÿ¬ ÚJl¡‹‘»ÑIË;ÐÖµ™8T_@‡º=€ø¼Ü[ d^15”¾0QS-#؈)&zc°òýÖ`é;×2êÀ¿L¤âW8‚£9AÍžžÿ ¬Ýß<«™N5!kwŠÞ#cÖúËÂÍ‹Z¼ÆÚ&‡‚‡tN³¶û*ߺÄ蘣)Ö!ç#Õ-¸°lêÍ^hôOŸãV³6³ˆU°UŠÍv¨(]-²¥¨¥ ¡)7›+­R.sGÉCÙÕ¸T» +åP!c-ÒÊP³üeGK_“R2çz±ß­2m¶~ÐW§}G΂Ú&ˆiV1$xµ'ïÙöXÞ+Ç.CßVüf¡æªkõi@·†O°+éEv5%ß< w(1I¾þ´ëÀwò†Âç@ngìOsyóU ?—Øì®àÈ„/:4’ËWzÊ^;å ä¹úA»†…Úš`;t"¾M#âXU,4Ÿ G3\†GmJt‚¯?¯g·]…OÛÕá²½:rÙ‘±¦å@Œ[ƒJ^,~ol*ò·ŒaãL¬¯ÌX¸?M.õÝç³H 3ʯžÀ,ƒD[”¨´ý•F5 §dÎ)rÅÖxÁ[ËdÙ÷=¡ø`„?\f Ìrx}œ”±?[ÕäÐ1‘À¹}Ï]蹤==ZTªWJ÷èñ¹CÔ¤Rfî+‡ï¹).Õ*‡%XÕ˜ô5&Å>…IôÉeûsU@ÜõYÔ<ò®ŽG=šaSŽfÈåzLærWÚ!ÂëÓAÔÃ=¹bwŠKØ!$:¾^7¬w™f–@¾­ À¾Îõ¡C×Ça›høŽ‚çaáÝ:R‘ÛPU³kl{«»½Ë‚ÆÃ%àsNPëбqKèP—š”ï뉺=Ž‹Ý×ó™Ÿá1°ÞaÇ•šñŸk¼ú]=¥Ô¥¥”î/´]3 ý[J6tGI)üw…Jþß2þWhÔÿ[å·üß*·Þ¢ CkQá7zaw~i5?ý잨üjÊ{ºÖ’á7_—uk½½ø•y 5(È~ÌËúxqw”’w¨ª"ÿÔqpGz,€§ˆ»¼8È2šñøâÃ[§Ž +ÿµÌ©ö˜¨0«“d‘cZlÊž—íVbr¶FP‘Û#ü²­>zŽcŒ”è–’Ó죘ˆí~LˆCü,ÆÄ˜J^¯veݵˆ!_rJÎú>×%¡—nKˆi«£¨ˆÕ\„mœ]¸;É*ÛÕ0àV9%×—{‡Æ¦Á€®Ù7p¯HL7Oà“6$èË$ˆe¡hÏÈešƒêЊ„{ÓÕ5GzrÉ‘•¸§. Þ‘B¾n‰áß¶FaÁ; +*ØÔ ±+TÏtM[Ç€º¼vùúwÉ1ÉóÈà:DøÍ•~dÁáLMÛž©ºÞ¥'æ;Ôð€ÿ£ìrX¸ à7°NËf™ <ì²JT¾?Û0°k¬®·ÚÉáë©"…‡Y&`.=ðyä´!T¨UBÉ?4Öu^Ï«ñÜ6Ê)æm @‚\ +Z‘ELHÄ'^\ë¬ ÿŸåÚá·D#€NC;-p]æÊ 4x®«8po†ŽÙ]µl*åf11í–Eÿ®ˆ:þ³&hýŸu^ëž»6Zñ~¾¯2pk »9† Û›b!~EÕÞ)>mOËF¹ÔÀúIaß§ëÒnŽá#.n r¬As²©EÉœbéy6ëïe®ðhÃrêX¨ÍIz±kº¦u®®wg’»Ð‘ÿx¹£àÑž +ði³ä/=¹rgòm¦&麌wy­¯"þp†‚r© æ1H€…I.ŸîÔ +ÈžYo†Dðõ'ù€»^ ÿöŒ<Þ2|×ÈÀÚ§(îÐ!‹ðc‰Ãþ9Ϧïéˆe]„Ðk¦nhöÏ¥&ùÏvSaRðgç4,Ñ¥G¤ÎàŠÿY®êpO³i€azf›d.]µhwŠõhé•û:j™mlSqqú–Š÷‹-ȈŸS"¾WÁ(õH‰é»blüFGñs‹N )}uö­qŽ“pÉ ð­}’Z¸9û²:Xè¿4Xà?× àpÑ»ÿÌðyë2\Á/þÎÊ`yâß+5‡s\·%. GV‡ŠßKß/øžÒ5£¾q +¾øYûqöbÜBcÙ³ÙÚÜ;¦êìÛFaúõaò%ë`é{»„”©iƒ†å‡ûÿÕj—ÒJm +6fWÄy4°m±Ü›ùÌ") Þ›fJ2 À.Æ®–\âTa’ó'à|uOv&ѿۼ÷ú$!ÕÔ +Äš„޵Èiè­IRеû3l’KC.²ÉqY.¥Ì1IβK° _Çî*hå¾gB÷¦…ü=S]ûÞ¬°Ú*'$[¤ø¤õ^èG-3þ‚{ •úcºªÚ`’KK­°Ëé倗ñ¨Ù¨}-±#G¥šeè ›Š>4 kÿ×W3wQØòsžÃôšÈe»ZH„UVñek¬â½Eùj•ÀCìRLœk’˜eÇÆ:äpn1ß,FÆm @ÂÝz6iAL*Àg:·ÐƒÉú¹T/9˜6ïji0» +“l‘Ó<ú­ˆ?ê–—´)&¤oK(…f`즦‚·¦êœ§æNè§Õ–Â×–ax¬}’˜³Ü ²+ñ…?–øõGËLÆž viQIVeÑW‹<ÿóѶèïeɦ!çÍv—~ðõpÏVÕzm´$jû¹*lóÎËwµÐ˜µâ×3íyÏÜÓ,öžA <œaÓfèd‡ =Zb°~.Qp€.Þ…~_ì,yež$¤/ 2 ­ìL»¼­Å­©«òêy¤}5¥À©¦ïHðqN ÕWëeDG:F ©û2zÑz{É s_IàRGÁ ¥ ö²š}v¦:ûõÆ!mºµâíR+$p[L›¥Ìò 6Ô äÛßÓ¢ªm).[Vúd­žrð¡ˆU›Ò‡ €æCD©…éþsÍ%ïµMe¬œ÷×Ì]˜ds/)FÏË¿5ÅN»¨f¦^2 +³˾í #Í£”Ì~NÞ‹°77޳S>ÝÜ•sp9²!†Åš%å_{ÒÌ´ÆûÙ&*BW†Ë¿kD)vØâ¿ÝãÑ!àæÁLÿ•Θ›:Ñ·s«í¹Ï<2j±u’ YìC~ñ=ÇüCÇÆjùt‡œ”³=Š +ÝB|b%v£¿ü¬:ןø×>ìÆàÁ7†1‘«à›]¹/í#%[9/WûRýôøJ†Ž°Iñ{@Ü;$ðö8ÙGq±ë=%owÄ(ObW*?Z'0)û3T¼wS°g@¦ºµ¾šc¾ÇøŠ_K$„k +“è¯o†vð‹m *Í©g"Fåž‘C?Zªj°©Ñ‰. 2É6‰Jpª¹{&.oeáÖÒ1G‹­ºÃåêÞ½9:Þ¦F%mKÐQCˆðõx˜CE.˜í†|2µ“’\ÚÎ ×T}KÃAºU”|¯ž…ñhˆ™2z¥;ï…Nwuµ»ìíRKéK/4x»ò~«ȇæó@éG» +—Ö[›ñ–þâ÷!TÂý£™Ú§š‡³+YÀO›£ð°µòO›Ãöu<¶M/`”¹?MGÿXà +€¿ÅšG‰ÉKme¯æóîÏÖç?3°ò»¨1jvÁ-Ëàñp1æ~Ä—õîŠW¦¦¼{ʪôkbFÒ¹6è×ßV: EV±·Øý¬ýs³æRŠ]r€3d”Ü宲À…úÿ}ãëi¶2ótŠ}VÍŠ?·Ô”ûÌ>;øþPCo‹Q‘†&ðíÄW»Ÿ¸3JHØ&Æ­÷!ƒ6z-¾ûumèO3µÈRZ¾ÿLM釭q.T.È»#%Eü¡çÅ\tŽ—²•}Þ- þ1ME pRžã’žŸ•qsÃŽŒ\®MZòåÐXî5GÌõ$=›ið[êÊ}´#ÅgnŽaWzñë¸ —¾¦Õ ÌÕjW‘ÿ-úlMÑÛãZAÒ]Ç$1¿õ°ñ£ãˆÖGÉø¾—yÅÀK¹(¥|;3€öÿÍPvˆcø–˜^°Ñ‡‹Þ&8ä ´sŸê–#b~™(ÐC#åæÑ<öÏ9uÔò}±øÀ@*õj™^ÀgÙ‡Ë>®Ô§ßÚêȼ·¯D%Ø¥ìò•^tØö0*Â>³J0 [CØÈ^øçéêì§Kíe߬ +Ô‡çN=0Ã¥ïi™°Ãi>áaÁw§hÃAµ{Z$Ü”q+lºúF»¦Ša›¤åºdøäÕnðëåŽ\§¶+C„o¾Õ‰¢n̶$Ýû1KÅý\µ{´è,» òÝ¥F%š%pàŸí|£]Ùx+Õ"óù)Ç3Í@íO3€N*w)щÖIxÌò@ù‡½i6ë`¾mÚ='ªÛ[¨jÚ›¯js›.5ÐQ– d  w䈨%>Ó5ÍgÛo¼kð÷ç„.5—lŸÀÅYF‘ßMõyO|ﺌ°ã¯ÒžÿflGYFp ¦š4¿¥ÖìgÛƒeŸd‚øk“ü„ 3uY·TtôÁLUÝŽŒbøÕÇ›RXÄÎ:Ù—?ç¹Ü¥!bÜt}éÓ 1ïpŽCÛãc×{aV;Kæërot—¼YB‡q2oS“^œðÈÙ¨Í!täBKîÝ隬[¦úü‡Ó¢Ì[†êL¿åö€ÿ­XÂF/vÃäs-³Mò,㰥Μ‡C¨o§'I‘·Ý2\©{ZÀÞ‘R³½*Zù‘žCúh — +wFË?.4'Ý"|9½ÐY¸ØYùÎTWòÄ6Â,ôªì ðrìý6ù/Fò{ óýoRb s?>ZÞŒ o‚EŸ]n-ÿ×Ècîy¦®0ÀP“ýÚ:œÿu¶9çá9ûÞ\*åÀ@Ì5'ÝXíÍ|éTBc·Ä¥Á摲P¯ŠÛ<±º6社›þØ«çp-Õô™˜ÍAÄ—~øó*ú‡–u+éˆ1rò5;çƒsŒ^hƒž¤¤]c’/È©97µ¼ÌÛ ¹›Ýð¤õ1JNÆç;ljInnõSÐûaõzÖS“0úÂluÂeó8ðÇ“â™æ°{™©ïš`AWÿoKÐé5ÊvFJÞ.V§_Ÿ"ÇœQ‘#þZkʼ¤$æÎt@ãr‚î?ô +Ï­§A×zŠ_éq—ZJ_ý)g‡ÜðNSnSÓÈâ5g[ŠÍü{NXûÓÈcý=C©tL”³—ü÷: '€©blO2 ­RJºGM/]ë,}k$ßœbÆ]E~>5{wr’vc[\–òŸ-^ë+æÉBWþ·ÃþÈë£÷Ðìg¢â»Švn¾5óùžßÕ³±V ¼!!$8§P¯EôÕ\ÿw_xh‰ý)TšKÌrêå‡+Õƒž^ýŽŽTøæŠ@_[dè”]=6ïpžIpè˜0«’ÞÕ «ÖF˜ˆƒ€ëë‡çU³áöqFže»ÔQò\+È¿¿3J›‡QQÓUÉ7gk’oûj!ȹѷVáÀÂŒ\ö¶œY"ÅúžýöjYÈ£ +ô×"õk‰J:œCçoŽ¿1¡¢ÍåTómbT´e™è«(ó cºKLÂ"ÿqbâuNòë“ØˆgÿYdV¹U„¬¾â—ÛC%íTÊž‘úŸMË; hšQdÔò 2ýŸÅ†ñƒhÊ{³Þ›|Û<\ðjk¸ðÍ¡‰Åpiy‹„šéR²¡N9½¨õ?ýã±îÊðÓRÄùÕ¶ìW‡øïžðÇ“IÏxt\)Hú9G#¸µ˜Üµ’÷{Ó˜L› klÌô-±ìo@?í(y¤©ÆÊ€•QB’k¶qÜ»Ü2ý÷2›ëž¨ÞhOó[iKó[hM{àÒBR=Ó„âõ±ò ç4¾Ø»R;òsí¿õ’«|µÁ÷Mt¤SK)òxµ§c£Çh¹gùÜÃiîPÏ%¸dÌ«¾Ý[ðÔÚW¸¯¦WXF0á[ÝÈ/Îq\Ò®“hŠ@‡¸ä½] +hX)om‚š½5AÏßղю)|–Û€HréËB}Û¾çÕÂRŽfèX@/’e ™þ*AaȾuäЦ‡ÎZÅÐéêô›vâ=üÔЋe€?üÙ‰ˆz°;ÎAÌ6¾Â~ýSL >«Å_•2"ÏNP"Îmv—ÿ4ñkƒ[c˜¤f—sá%1Ë£¬ ·Œ|06¤ÜÙDEüš­nþ1#Ø€ëƒ|Þ£“\R\šC +èT9&Ñ<Œøöß:a#øXß; Ë=o¶Å„”•aJª‚Wè§`¤_VÒÓ¯i¸þ½ØØ«£ä„ë+½ÐÅΊÏAÚu+õÁ(!ùÙjøóO@ü20ûÓLÌlÙ'mcÚ«_ó\þ¯%^À•­Aðë­á’÷æQ@‡O”ÿ\àp<zGNÈØ¢–šÕ¶ DørGáS#öŒ^˜pi®¥ðùR?.ªº"áfù·ç¿-uUD±N°+ÈE–±â·ZQâíú’wç¸iþ§Ô8@ÿrÜJ.ÉX_ñeµ½ä½GM«84°°ÿYæ +ͲÈî)b®S…MôL‘òqk ï’SK/é«íj—–\lÉØZvõø˜ åé‰9QòËL4´EŒŽq+ YÞ)jñ¡žƒskq™N,e[ +h®ÉŠàC›ùk¾¶Û­¦V®÷fû;äч8øŸJÇ$)½úÅ>Añ½SS9JÍô`쩱¡øíZgÁSçxQKRi+^ë*ø d…œÛ•Ufû® oôlôABc}}‡ö§Éåÿ.ý·oNƒSE­Ð7<ØQ00ŽÙöiÏB«Î Ì«K +â9?`g¤ì›[‰/øÛTú¯\¡[K8Zf×ì¯ÖIç騣9@‹ÎÐ`€ŽKÛ"dÜä” + ÕÙ϶”¤¼©–ò@‹„Tr ²-c˜è•ÖŒÛÛ½Ù,ƒà7Kéw­#¨8÷4 µxœ­‘ÊO® T<0OÙN µø½gbþ{íÚHC¸ŽÛ5Ð0»€øÏRu/çÝÀ÷¤¥Ê ½) +þÇ\m÷¡I(úäGEʱ‰Ñ‘[}ˆ/«ÝØ™vLLu¾»<|SLL§%ÅúÞ÷Ïx°ÔŒü¾5Hɵ‘À¹È×'fu² à¥sšGs(È;’œ‹ÑW§ëÂ/L0¾üáVà2÷M\€ßqé˽O‡oz,ÛÓpP:lºU\òfs°$À>ÿfÃENpóý&¹6Æi¥›r\×PölñgsQЉ†¢´¤çÇTœ„»[FJ>^©Œ~y~½—è’1н +Bºs¼"x¾5õé$ûû­jÈ9’ü¿kUm¾þ:e£·äõæ@ÙÛ½)\Îã`‘Íòyg»“h¨GÇôäÃz_åûµ>èwÛ6Í¡ dlˆq1ººâ§tÜyÛ(4~ßH®Ô6%ßÓÔE^4¶f=íÃGÞéE†ß¸ ð˜xc7<þüÏՎ ÿ¬±¸FxGZbÏã”`š +õõ4·ÊéÅ&Ú&ˆ¹{ZÝ<ŽŒXê?™o)|8AO»V•t¦½2ä†e þšãrö Ζ”–³«¡CŽæuÿ, ê½zrÙLCö£)vƵ¹Æü‡;l¼MÎ*5µ!Þ»5<*°&´ÕŽ|ÿfpÀÝåïNˈ¡¿kYñœã°¸ÿÛ䶘հ2a᫳æl毙Úö_3,ÊO&ïÈO3å¼i‰ó›m»ök±ªiw¶y|G-X¤”ܳ¢ö#‹üÓÄÄîOQŠÝòÊÈÍþÌ€ñ¢¯/óízQEÆAygªªX†ã¼¹eÜŠ¸&Lõ‡MǧoHˆÉÎ)J©SM÷½§²ÄÒVoé›Í®œ‡›íéœãÈß=msÑãaj¶MÎFlcb·Ç11[bd¨Y +µkÐ »FÂchèöšš%Þ™†£ùúóüª_ <>ðÉ߯é´ä!Óª¦;´U¬Í1ŒÏŸ|™o*±ÐXúD/H¿±ÜVøÑ<›ïª|3×Jüº9 *[ï–m ³Áë£ÄøM@®B¾, æx $°àÀõ Z¾MÎ(v«…,§†ÛžÀ%8Tèx ±À¢DÆš%˜T_¯Õ]çÒ°‘n-ß:&Ò׫ëh– ±Há³íEWúÁæIf寧|®±ÐÈŒš­B¿RRò®KHÉ—Ô¢ìg𯼸ØsrøƒuŒ’½ÐQúÖT›z×:X´Ø–ób¶!åžy(ûÅá,"eÏ€ËYA†mŠqqF>sßÈÂͱi³L’ðËV*i¾;ï™] ‰¶©Év «Â«n9зOç‚\, \ÈyhlL¸Ñ}i­²8ˆ‰jCF\Xi-~s0Í!íé8¤Ý)€ƒär«ž¼Ð[úvª*çÞ¿ó¾œlYp«OØ´_3uÝ?Í üYŒŽ^ë/ ´Ë}Ï~ñ‰Æä7³””íü÷Þ£Ò+cAÜF¹u› $Ü ÆÜr©X˜ÕL²BvÓ:‰Nðµ?Ϧ-±™Gþy UÜÍqJžSÃgïL0Á^¥Ø®@įönõA¿nôU¾óÕî2÷C¢$Œ¤‡ëƒˆ”Õ!\¾˜™ù\Áʼg€FîM¢âT´œ[(Ž]ìL{·Ôžz÷ÐH#îyÜõòàµþìÇëƒOçš3žl”ÿ³„‡ùÔ´7Ãb p2ßµR_üX¬=œ­ªÝ×Ò+­#°/ õY÷´üX¿‚/ÿ®òšf{¡a2ay¨sº®çpµNâPP Vûà_ŸúnuçÑÒàî9cÏWïÝ@)Ûc¢Í#Ø(Ë8)uÙWg©1Óo±9í®Švi®1íÞz7ô­KʇÏwâÂä›ëÐ]!ïÇ,¡ìÇ<±|ŽÛ›æs½Fp¦Jt`Õý\hóõÁû9ÏãïÏÒ=*ÉeÄçZõÄ}?ê{1åÖÎ%g{”¤ ¥_k,<^Ÿóê„‚qq»«è¥uœ”bì'%´2ô#o¬ÃCw•\œGÃ%xô„¼}#.Gø‚TÈö$ fUÔðçúÉñKÄxó$!kWä…‘ô÷"©üŸ.ïhF(ÆHÝ›òögêºfD5^‹àÒ`3­%Á–‰Ò0»”œã”q*6F))rNÙýtö£HìÍ®ŠÈ3mð‹ %!ç‡ñ1×fEYwbjæD58° syµ˜ëUá7‡°ÑÛcåŸ\Êò¯V)ø•g™êÖS 9y°XÓç2R+w ÄB·•îÒcò:Þ¦¡¡=&kK†MØöÝÅÍ´#³ì“œ +û„o<˜$×6É2ˆYîAË„ùùEAç×úQøè¥îÊ@«·6ðÿ9zï·´³íwΜ©g25™I2™Lʤ÷j£&±÷Þ»‚ +Ò{ï Ø;XQ‘.Uš4E¥ +Ø5ÉÌ™sÎ}îýCî‡ï>ä1°Ý{•×Ö^ úÖ1QsÏ;ßø"¬„eþˆYm{£î©¾ä|ÖŸk‚É÷ñ~‘&lC Þ[r ’XêÈ +©qµ1,°ÓkûfãÈÆbF4¨ÇHùzÞi%¹ð‡‘ŽßÙŠïDµ„V ­âÎHgÚ™€Ýb&2XÛÿÕÚ™¿Ð2à›RBi@Eiù­7×§P…û@þŽ÷P?4R!þYHb¼¯©ž”þíäÉÖáÆg½ðÜKÉ×Nb©NüÛ댩ëS¼ââ;&aÙFÅý/Ø·¾ +ÌÔ$üo‹Ù»­ÃÖûdÐT@ßvË¢ýéd²ÿöR(ÿ^C‚6$%Ik⊄µ™¶4`=°c;“±»ÂÄí­00G&ñ½žNø¯“„ùŸ{ïÄt¬Mµ¾ØœÆd±•ºk¬=3¯ûÐÂåíê™ø¨S 0~߀,‹)!¹A øepúàì‡æîúËNa¼×\ýívá¥õÁª[Áɶ§["xªœSpiùò˵ PÒ+ýÑY@¬Î‰iÑ{€ÎØrÆž‘ŽühN¼·±l,êqü½ì¸æ]€û‚zr³y ýnTwÃ1 I’3ªïNwd¯¡T&èèåB€e%-ÏwUÈB+àKèì3“¸—ßFU˜š“€·«åà"êxeGrHŽÌÝœ‡¥†•˜’µ9tž¾¯õžo‰Ø²oæ LøæåÖ䈪))¢hÏÖ‹<13p‡fõÀÂaî™è˜‡bcqâsëŒãÏ㊷ÄèŒÍ)ä%·îzÕ뫟æÜ>óÉ4<ï’WË[ík¾çl¸%§äü¦f—Üœgþ6ŠË½lEç;èYŸéLÚ”´§lJZŸíh;²>z°°¿·˜=ÜÑ‘“?3“âß ãß»hìnÞø±S8s`ç÷îq%¬Ã×ç› e^£²9Öñ(‡ñÙíZlùšT럂%­Výn(ûm}ô:('5.0+/kÕ·vuëØ( «ctyL)/cJµý­O•Ý O÷Ñ‘›ÓÑá*‚JLÑö2¡í½‹Îò;*¢¥‚ýrtžk¢ýÕî +Ж„ưY´6Ù‘kë«{¾6JÙœç¥àÔ-2žYñÇ1ïú ÃZB­_ޝiˆ ;f6¤¥C| +RmXKk7u¼öH€3°öˆCÀóˆšX˜‡§nŠÚ^¬´>[ŸéÈö+è Y4 _™xÞ#jx¹­hJ¶džµ d^pM5¼Ò÷W%®ôW¿‰* ÿ^gp=Rxîò@Ó½’}ïN¾wǶ¶âˆºü„üàK æé¿6gÞþéfr½T®]ŒJë˜äŽå]ãÿ[#aÿr£v L×xÓÈ”X“1šw—ÙèWïâ{wω' -"sœ} W­L@ƒ´¿r–_^«ºŸ`l¾å€?ß™áwx‡à¯ŒÌ²_ÔìsCíϾcUÞúšVz㟃 §_ùf‘E¾El^D‰*Ø3ájw øæ+›wìè¬ò÷VèÈ÷v5,Gè©(@>:脈‘…ÝR2ZRx}”–#§×_Ô¿ùJ‚(ûug öO@Ý•—ÍœÓÎÁÊ+Þ™ÎDçxÛ3ÿl[Ò±‘ +H1±bGKmªa™%$-¸JÒvåü¾ÌË?ãŸkLøè Bz|ë¶š±­'Ç4íÙG+˜Öÿ8mÿYÅ·ýŸÉl¡Â¶UÄê8?ïèÙÄ}c—0¢acìÃD1"ÿÇáöŒÓZvýµQXþa}ÚG/"{sWæ?ZïHƒeý²DÉ»U`«Ã +|u‚’7†)<­éjz½­fã¢z2øÈ‚m:´"ëöÌ0À.ùQ]¡Bì‚£U¶ààåcGßâ­{èÀ&èÛÎß)j}`n¸cj~è#Ëú¡IçdŒ‚?¢ Ôª öz…“sz™–ú£½·ô¦G JœÄfŸ–³Ëîš/¤@9Æî8D w¶âó- Ä&@gÐ,‚Ñ›Bõ®N-ÓÚÃ*!kÏ8"ûàâôì˜H `­­{Àzã3¶¬4 ¯aJ€ÇG¦ž‘eRKX‰Ì[Ÿ%šz«.»&¡I!¡ñØÁìò©‘5ŽéÎì3›wèæÇV舘™Ž -B€ïÙy=;–®þmcß§&×îèù¬#3¿çƒ•ÛÓÒ:< ÄB—„^á™%ø¤ØbÛHË BÉýu·¼:»«ÅvÆtðb¿¬í­gªé™m°âŠ_.ñÊØ0·„Ò ð%þ½+ØÖ K·5°‚€”¶%oÉuOÕ<¨áeû6.Ë9M+·ˆÐo¶ ,Æßk½Ê1ÎL­V +âØÁé9°p…Çf.ë@Ï€ïi™ð€A÷L|ÁŽ–Þ^¦vn«ðMÀ¾tlKÑY;Køâ¨W^ìL·ö_2wU^vŽàÓúZ3¿›Ffÿ¸Ì/¿ºH)ü}ž}z —{ÆÑW{3°ˆÎ1öï;GÙ;z!¨¦tì¯0ˆGáÔŽ•ßÔë}@Œ÷Lw$m-"²5‚¢K; +LÓ¾¥{0~&$Ãä[… WG@o¾V?ûTI/=K¨Lø—w÷+{O]RL‰*Šªà9Q"?°Jq•=0ò“V_žZ¬}°¹€-ÔJ~[á—_öŒ¶¾tn¼¯yÅßn,ø½Y³µTû ¦…—ýÄé¿ÜÝ3ÿq²8ûŠÖäØBÝ£}u{Æ‘™?bf@˳ö×þá—k‚r:ÜØ ~ÎkJû¹öõS¼ê7ßÛW6G[îæ¡éc°äo' oO¯ 2 Lðš¨åÉ­ð×eAÍ §úRÛÓñlUL¨ÜÖwñBZ\MX(Œi©ˆ#3ƒüa•Å9¶cÑû&$dÇ€nŠêPe1=±íØ%œÛ_åõÆÌlÊÚ$Û;Wÿ,¦¿ÙÑÂóW†¡iмËúîöß ½ÚÙßöPOýi¸ùåO2Ì» &fú9ÿTS¡‰WU%0*Ÿ~œ¡¶º»vŒtìçwõØšÝTÍñ…µášÝ2xÖ©ðJ_Gò…žîÙCG¿â°åø ¥5 0Çžß äï ©Î;¯ëªy¸:ÔœêšX†Ì +ˆµ!¬0¤lÏÛ”6=ô-lOÇëÚ]&Ã÷ôØŸ¬ò•WRšà_jIÞ1Üè¤âv,xp@ Í4÷O'ä£Órd…Å4Ì ¾ï.j È ÏDg‚oŠørYx~¨Ã”oMƒŨ·ggˆ¹W€=Ï‘«ßø¦)õk“äbÇìÕ¡`r®óØŠn=q:×èQ•²îò»³´œ;<qHÃÂLHLÃ$EåðÚmI{jp”‘Ã+$´’Kã˜ìÛk3¥ÞyT±s•äÁ’½sð ¿ _².†Åû±Õ˜*¹°ùñ«òyD'èÞYáwÇk8YÖkb€¿í;Ù¼˜™Ç[G¤é;_…õ\†GJ®Y$ÕþÞÓúCëo6Æj®í(ÀûºÎÊTÖÙ··Ïýs±«"ýh•A:´²©~¢ØĹ€¼îe`±áížÒyha³“|¥ðŒmò*bäñœ¼¡}7Ks’ˆƒzj‡}Ÿ³¹HmŠè±My{Éá*³çØ1dük?Ÿ]6[÷œdD4Þ'l[jm}Èü¯]^"WÅû·û'!/Ö[n®öÔþ¾Ò¾9N®9ÛôöÆg3Ø‚{þyXº†[ô«šžÿ“{¤ñÆÆdÃݨ¬åõ±Ú±kàà “¬¶œ‹_ºûš w“Ö¨qLuhï:q²¸Gv:1ÎÞ%R©˜ÛüˆQ|fµ¿­`_C¬ÛžC¦û§p™Î!Ø3‹°ãŽ’Ôø«–Ö|#0ƒ/·÷µ>2w•þê“€_yÄ<ãµOX6ÀÈI¾…Ž·®™æ‡jn͵Õ>J©Ž 盿>6c@;bë¶”Ðòa…ÿ`¡á¶UÙ¥Ö„ºrW…(þ·•ŒúŸ‡7ðÁÄw¶zc²éEp¡#oc™×{û«„\~}m•âj¾mäžU2Ofñ¯îÅ÷3ÐÌßW{šŠ0…—Ê]ødm¸1i_×0Ð4ÿ<ä­k´õáÖlíݼæ±±þqTIªs‰Ûò•@lÜšƒ¦[q°;zlǵ~p:Þ;ñ¨šV¶½ýhg0M\k$î/&ä@® -€^;†*®k˜ÙçÖÅ7Î)Té$¹à†¶«ì®^4K(º;‹+¾ +è§Ì} hü +Ï$,ic‘zâ àNìô‰×qdÃ4îÛ±ÍQ;Š×…¯R(×è|÷4$Ù=‰ÎÞÕry9h4ßtÓ þÝ/+Ü«^èé¾W¹¯#4(95WmƒÈW±:¢D9Ç[ûëþX›j¼ë—ƒC|ݶ–ŒŽ™ØÔ%B}ÄÀ¢ÅVØ´°ð¥ýÈMž“!~¡<Þ÷Ð/kÀ÷'±«ƒÏ$ÈÌïGÀ¯N÷¶<ý•Wÿðb_kÊ·}ˆ²d‡Ý5à[ýrTyh™Ú1Бûf|K$ÞWƒ­h°eŽÉÖƾÚkÖ‰ÎwÛ+lž_Aúõèæ¨IèI ¿–Ü0rè{€î iÚò=³·c:|§s ÿÓÅü½Åܳ“'.<¦ƒnZxs¾#SÛß”Çu¥<´D¯ßšÅf:ú@·q…? ƒÓ¿iKùb–þÓ¶„T¿>ƒÎ_"å~˜ìHÙ‘¡rb +DÖNüÞ š³µˆ.°ŒcÞNá*®‡çȸç 6fg1÷€¼~´JêÜ33 Q=›Póq>"EØ}~­Õx¨$7{ëÿ؇oˆß‡Tµc¢ñ‘¶»à—麇»:JÛPçÛVºª³ÿ² Æ?šýH«Þ×¢Kb +doòzutWÓÝzs^t~]østÞ¶1ìË@çSç0"Ñ;†ÍXf×ÿ!lJ:ůxôix¶3s¥»ú¶YPö{LÍØ]Æ6ìªÑÅÇ\M|þ°¾wæê›¦žêÛQyü3 ÁpP,rÏ4=Þ‹ÞeA”ÛQÿó’ÉñùÚ15v¤œÜQ hÛ*Rm¼îÃ=P~Ù,(¼`â\ÜÕ kÕu¯[2n|Ϋ~þí‰ +wÂ’œ}à»kƒ {€M?ŽççØ2¹%¦etz$  9;ý·  ”õ§ ðA+¹k¥áö­4¿׹Ã;FXéú\ëãIJÉuHÎݳÁx=›Ýê7'ù§ZuÐ"ßlÃ+‹°èê$ôÕ—®È‹adîMlуïdôâK‡fäÈŠm92£«Ç 1 …5˜â SÒ±0› +rýŽŽ‰>02qV©˜{œV2ôðý©ê»aÑEÓ@ÛË)Bé5Q{Ú¿z«_}ÞSõò«þú¤]ƒ‰rûÆ,¬t™[~CE/ù%°D¬òXFD+ÞVÁË·Õ¸Z à]d¡ƒ„Þ]¥“ýz2ty¸öžs¶íÝÉz¯úÐÅŽ˜°‰CÙiñ™§à«x¸_ÖQ0ØžræÀˆCü¿a¾4>s:ªîÌ ,´<õN5Ü;0"ªÿççŒïj9؈‚Þ–²ÁyJÙÆ*ÅȬøu‘þ•–’ù]xªþÉÖx{š£¯ñÞ +·ê\T‰-sM6¼pŒTÞp ×Þt —]Ýœh{[¤Ôü h¼. +mÏNAG-TøÅøË Ø¢£[thæq£jZó®’Úp¤at©9˜õ1ÔÛµ>trp’YeëÝ[De~g`—ü¡çU\Ó0KÏéxÕ¿¹ÆÐ™Ñe:¢§€|rxš –¾ ¬!,ÇÇkHŠ×¦ÐfÝmBù«ÓæÞÚÜcgÏ|H…¯Y›lµ%¤îëpÕG&Lí¡Q±-ÃVZú[îoM"ÊÍÂQÀ—X'+DÐî2®jsþˆ·=Ø·J!üigÕϋĦßãõÌæ®êËsÈ䯆۞}6Iúz[tB¿­ö¶<3Œ´%U&\þ ñæêW‡j$À+è¯ðì îå¿Ìƒi¿X†²Î¬OÖ?Ý_¦´¬t õý”õDÞGÀ^þ??•ýÿú©¬ÿzqЫˆª=-4Ã6ÔxXòê;lþÓ¯¶ðíïWèØc ´'G—oM‚Såô¢Û*N& Á2~Ú•BrBrB“µ«ñFxž“Ê£ +d^L…,Ž©ð»|‹š™ýÓ†¨åí{“ h‰¦˜šÑ¡Êw Пþð¾ +9´Ðñ›‹äÖe~Ë‹]-±ñÐLêÜš†¾1ñ*~W³rO·¿9#F¤ý¶1N´V ²üõïnžÿb +Wþü#`—Ûêö·aUûÛœ¼«C{Kn´|SŠÌ* •G&OKÇlÍu¤ï.cjà 7ÿ‚¸ýù·†îšÛÝðü«…/®}= +Ë;?ËþFÜšô¹Ÿþ–haÈ« €RΛ“Ï/³Ên)8ÕS®Ÿþ¤åío¶d8ˆgövs±5qÏŒûTÈç 8Á½Ø–¼øíÿãgôxg:Ó£*êxµ{âÐ)œ}¿Ñ£ú¸Éûà" N€˜k~è“´¿6ôÖÜ^›ìL Í#Ò}âÖ—þÉæ”-QÝ+ïhÕ“}¾1‰baóƒ%JñUï8Xõe%>ïû¹Î´o$o¾–¡ÞüËÆ-8ïµ<°N4<à€_|Õß–|*8‹È K;R¼¢«–®ÂaIѽ˜ºâÁ‘Qs²Êd¾wÆïÒ°Çf5þ½ú¡‰M<Бšvø²È©ÂÚÓrË*h»§ 7Ý¥Ÿl~÷=·òõ7bhÖFvÙåí¹Ž¤˜]ᛇäo-B³·5ÔÖ˜žK:0á›B2pò27ÿ9=ãÇÕ¡šëáyx掉|ÕRÁ.mßÈÄÄä𬈼é¹OR|Ý1 +ðÈ4$僉=40ñ)¡j_Ï$ìëyTÿ±È hÆû˼Æ[–ÞÖÛk"ØËÍyjµž_EI/¹°D.¾µ:TÈC7ôÜÊû®QpºqšÄmÊ:Óß’w=,%‚#wŒ¼ºëVaëSïDëËíÅö×Ç& +ä0~g@K‡Ú2¿QòªŸ¾·S]$ĉ^zbƒä[ y'Öz›Ë_}3*¸¿oaö†dȼ‘†®Þªß•”¬h¥w¿Be\útöü›4o–SóˆV“ü«s V·­"Ö›J¯(¨/”`üdêzõ³g¼þYDIì -S ¸êgç—YOþ³ÆâÇçe03Hû:tiPN² Ëîè™c€nŸ¦–>™@ÞŽiˆ°U’@ßú¦@©ZAùc &ã»ðÜJ_ÃË¨Š‚TðjâsòF£ÿµÆêúà Sb*H¦o®é™w¶ñ~üîÉ!pþëSPÀNÊ~Ýš…¥…䘂àªØ7‰.Ø–Ó[]“ˆ·Ú®¦žILö">ÿlOÍó/–i…Vuw7&a™ÀßUç“áÊm£m)üú×§ZS®~:ÒùærDÕY¼!©}ƒsv$¸_ÃdÄlœ¾“uVOüìß[$ªg²à:ç£{@÷ÞÍ:r1X.2æÐ†®*ÛÞì.#+cZLëêdkFHiбHO/>?Ö”ðEoõýÈ0ï~ ɰåZ^åÅ ØÛ¯XU?%ÿL)}öÕ$笅 º#Cçÿ` çþàÚy´æî(:ùVÝãÎa²Þšîx½.j¸§ã”üa”Þö‰Ëî/C‹í,Þ‰£gð‘‘Ð2¡*¤¢ÔÇ–Ù˜=—´­ T%È4ÿ,ò­ à+{_Û¾¶Œo™¥/?³pÛžé-7T¤’3zVÑEKWÑu +ù¢””pz¥»èjLNm-QÁ¾YHJ¼?¦WÔòrCT}?4W}oc¼ø~XÒ¸£‡çîéÈ-‡z),ÖĖ`™':tݦ=/ª†”lËy'&R[D…)uš`͎Ȳ€î›'–8‡[ï«™9?H Ù§vúu{ ú`Ìœ%jÕycWÛƒ€„VµÚÛpsñî{^õÃ/›žŸrþð !^oM±ZÝS”16÷Œc—œc7¦áï"RXjX)Ûl¯ÆW¨-ciOŽéÉ } zh#@M >\ÁÔ¬`ëí#Í´‚ºësˆ’küɰ +W±9Ý‘äÁÞy&éVíÍ©ÎÌ3f^Å­¨_Ó….ü­9íþ©åîö²€œX£áfþ¤¤§\TsÒ:G ^éè£7°L¡*Ÿþ2MÊyö—›É>4ùS¯so~䬸]ÇÊ:£cå\Ù\•ÃJ^žFæ']ŽéØÂ=®ÕÒ]|e•ô=«ìö?{ªî|êî+¾z ÇÖûԖ„k_2“ïð诳„'6<Ä7WsgMTz)¢n{÷ÁÁí k(ðZñ5=·äÚ;3^; ÚÑákdŽúÆ3Vsm¢ñžW‚ËÅ—¼ø–}÷Ë•Áº71 žnÌ‚ÒÃÕÏ Ý×Ç:3¿¥—<ú§””z6$mIÛVÁ²}Ò–{z ·„¢÷®~ °gSÇ*È“Ÿƒ3Þ¯"›þ\Ìú•xâriÒ‘‹Œ;ö°ºÞ»(øªìã*zbGµûUü †Ø´µ€-òNt¼Ò²‹®j˜Y¿E—@oÜS¨T5»ô´’RôÓ¶ä'>(ã+xÆÃJq7ÜýmùµO¾$æ]ùçèÑ—³¸×_wf]üdñú{ïdëKíPí­¾ö—߬t5½9Ö3qGFBë–úÎ3O¨¨Yè]3“ÔÒÁú H²„Qvi}UÓ²qQµykþÖ*¨º`d”ý,Ag}³ˆ*øÑ5€x= +)øY†-üÅ®¼lãVüî¨|¸9ÖœšîÌòv¾4ó«®xúZî/Ðêc\Þq|NöTÃC—0ÿÂñRË»[Q•ªÎ¬ÐT[¢{°þFt8‡qhzx”¸«h{’v$Eä©Ûrdöž–Ú±g¤Ã|2|i`RéŸa5˜{ª®Ì¿œ&~½„÷³ŽU|Ö*¬¹ij7æè«‘–ôS«]ÍO,]uOf ‰§Ì̼+ÃM À¾¾ÑZo #òÏúæéÐ=‡dé+¿îl|Á³<Óí/v غ=3å["V9ÅЄà4ý?[\ñŸkìž= ²9‡Ï5 +Ë/­úsß„k=°Sñv$!¨`€Ãª^nHÙMV±ê¯Šž|.xøý$íüÊ@ÓmûH{VPÉ&o)YíÞyDÞÁ +ƒ{²Êì›Y$ÿ"¦Lë¼µ,¬½eny¼£c°?¸º'¬LRLGlÉIõ~)©~S‚Í ,’«6dôÆ%^ëS½Y±gì÷Ì@’æÙߎ5¿ù|÷³½·úöŽª=ðçºõyrIË»ç_÷A2ðˆN9¬‚eîõ'VâÈBE´t„_AnTpëﮎ·gþÇ×%=^%vFtˆÜMIû ÿèY`¶õ1R­ãÈ—°¼Ä/ù¾wMª¶Õð’%Zò) #ýg³°æË`óSÇhýÓ]=¼âÈÆ lk8%¯ð¼_†¬}ïä#zDUHÑšT³*|eLmükƒ76±Y"JŃòÄßþ¹ï`÷¼_ç‹´øÌïŠ-IË×dõMËDËSç<£q–ØxÁ3‰ËÝ×›wU͉‘¹º‡ëó¨Žßti™QqZE«üIì=gíßr‹¯4¼ºß'À™ßŒ´œ[ÄU_µö4]s ¶ÜöOž‡¥ˆ|ûDç+ ¥ä’[Ô‘QâKKÈÌ­%TÁ†ŒRT³QûV.'¬e¼2@{.`‹w ÞžòµŒX~zœØx&áÖùO:3ýìhMôü='שּׂ§ø†‰_xq‘ò§âá—“ïN+•™w¿ôÕ½<ÑbëÝý5w ̼ ö»F[ïüs¤ñÑgRdÚ7Kì’ËY÷ORùôüg;2((~×è/úÁH„ìÉ ¥¾Éš'ÎѪËjAÝetIÊC-Y?(ñ…?/ rN+°Ågm¼Ö?–p¥?éä4¿6ñkRî“ÏM‚šÛrFé-JñýÏa©7¾Ö¾øNNÌ:íj¾˜‡¦³ý’š×ÇF<èÀÈ!ïjñ5@Ü­ÚÑÁ +Ò¶×kâö„PüÎÞ<Àa+ˆf¿´ã { Y¿ ¦ÁÖøf[’6&›·:’¢Ë˜Òe:Ô9ÈÅüêG¦èº`Ió´¦Ç&aÝ-¯¨òax±àPNHƒÈ÷qúàd Ì4ŒwTY¦´E4Èò ñÑÃàÙh„ð2ª0jÀ×E€ßõ-a+}Rl…_âB½õδ'ìjÍÇF7¦a¢K´ßBqsFÐáž e­Ž@Ÿ- .L£Òòˆ IZuLIiŠ6501Ÿ·­#ãBjL“_†(XžFµø†uh°C z`£¢÷,lʶŽÜ×Z´¬Š+3ÈÜ”ÔÒ3îц›19"ÿÈLÇ9fáéÖ p¶_µ%EeFu¨â°’í™m{å—£‹÷ô hXŽ-×H­2h1 ¡ýÏ-öЇ-ÞÔ{ w9h ŸŠÐ¶¥¢µn. +2BÅû®Å¨™AÞ·±ÙBÉG‡`ø£E;¶2;Ý+!æûãó¥”xŸôŽÊ+ö)f¡§ýŽŽÛtEE¯üy…_vÖ3Þz}“n‡'¬tµÝpp+\£}®RêÆ4&Í>P}Ù*,=¿1ÞñìÀ@ëÜ1༠íIë³Ðô“UnסËÝ]áPcF:<¤Æ•í¬0°{fgÏ"ÙYáP‚ +rup‰\í£ÒWûîjyfñEgFQµ?QÊ3¾…]–SË/ ¶¼ü| +–ø¹°ñé§Ãío¿V³ko؆iö1è‹ø÷<Œš7?:š_®Ößøè»qhê÷rböi=»ê¶MzéB¿Õô´?G'|M.|u*º„l^×ÝòM7=pU\=ú|¬õÉç†îÚ«bzÍïoï]ü“ùò{×䱑ßpUŽ­øM‚(=OÎþEÅà Ÿä^?óIí£ß?å4¥|‘÷âê§íïî|êìö±¯îÖÆDÝMKOáE .é¿æú瓾 +/´¥®Í#ògñ9—-ÂêzqN¶»EMÉ«= £Ð—;À"6§[Þ*™9çûšž}æ‘òL½¨|s(#8Óž¬ ¥_\+¸q´ÎÚÑ´gyFË­OÚÑ1Q–QtYHª|dÃ4}X%@N¬Ø¦«4|` –0Ìï³Ðœ]5¹=<Ë‘`“’r¯xGÁ ¾©ö„M1:-¸ €oM3k‚ ì¶ L€Û˜¥7z§ …[³¨4@˦¯M ^ûæ0™±e~]Œ.§“RË^ÛX][³ío#Z€ë¬LâÎ +±Å·Ô–´­'vì[8ìµIX +à#MCCsèÂ͉Æû¦®ŒKþ¹æ—A2Û#ÅLR”ãËÖf`¯¬døG`÷Kè2—¨=)°Øž–Œ Cæî -npí,`sÕ‘eBý™ÐTcÀV&ãÄÎbYè˜} åSâ*÷- Æ¡ÅúèàþZ¥“OVðM;|yp“üÉ9O0ð.í.c*Ôƒ¸w†èÓõIb¡}¨óÙº¨åÞæLÓ}¸å‘e¨á†µ¿õ–GÌ®²r+œÃÄTÿ<µj=^·=VÃ7Ùö$´+ª Ž™†{–ÑæGûV6#øDPCE´ èŽ?°u¯öLÇ?[Ø6b›|²Îô°†T¿1‹ÍHPéJvÅ…!hÚW}­_hhÍWÖÆ¨Å+½ð7Ó¨¼Ÿ‚¶§ +VÛ CwûSŸ›‘ª×ç ¯H\ëHtw©±»å¶†Uˆ±™¡yXfDFª +ìäç[Ç0)Ú.ðK/$qWMG˜âuhƒ-÷\#ÍO¦1YÈå7´Cø$1q»³ðÝWã5ØG±i³Äʳì²7Ÿ’r^ÿþä¨Ô'_bR_~Ã-Kûi^^zŠ]tjšó+½üþ· èäïqÉ_ŠàÉÿšBgœ×qÊop•†ÑŽXÆÍÏF@o¯ÿiguŸXXÌÀB|~@Ûsg_þ/jjú/Þ)D™c†PÒ”öà”q ©øh…ØzÄNg_ý}»ðÒxÇóSƒM÷?“¢’¿Y›ÁëÞýZ—rýûy\Þí¨YàŸ'ì.µ§DëÞ,/õÔßúRMÎü- p¶,ñ»iln±‘ˆÿÓM£þ¹Šï8Ð!J"rp–‚õîâ,:õW×dÛ›q|î=1üÝ)9óŠ‚T|ws¼3mW…®ðÏÂR×€¥¡”ÜØšèÈß–³ðæAXþÆ4¾8¿œ­YJݶŒÚ–b +ƒ ”9dê¯ø´+ÿ˜‚§ÞqL€ +\cÍÏ¢Úxý“²g¡" ß11©!5ªâ”]Ý’À³l£°ZmWCÊÖtËK-3õÜæD͘x¶js¶ý ÀCo7%MÏ-xPP†¨Xnník}°5 I(0Õ{Z:ö½Åý{“3RÀ2"jLÅ‘•F|o£1ÿtÐyyXü.çd•I=v1Ö8Cÿör†£ZlÍŸN÷?nv÷‘_¿>zæjº½6 ~èu<Ûœn{qbÅ·Z&É›³äÚÝe>-¸ÀlôÍb³Ãõ×ìýå¿:Ê/l‰áÉž)RޱýÜ=‚zQqÎ Ð3#¯àŒ¥»è¬ž—6°Ø™Ó’ÛvôlúŽ…+°Î Þ™Eˆäˆž ìKïľM(:²³yGf +2¬íÌÙ˜cK+Pp*/ç)åkÓ¸¼ÕáΗVíïÞáŽ'›"L†g¬ã¥Wtncš\Rö0>«Ü–w$Ù‡Ê.­_ؘj|Õà«ÃË4{ò<@óG ›p|­_†Éóˆ:_®lÌ Râw«ö L̾™ÏÝ\"U…Tl|LË£†d”¦M½Ù4Ã.S‘R4ýð§®)J‰YDÎ]âBnJpmWp÷µ<Èsç*ÕÕƒxa€o©èm×f5gŒ¼†+S¤ÊËôÂg_Ívfþ?7Ç$*Í+%Wùäèš¼‡¤A'÷A²TÑ«Æ{®yf›ÛÅõ7\“ñžÆ W¡n}qˆ¡6óAç2LCDÑš´.ªúÃØUô³’üåpkÊWÓ°ôïVšÚfÈåm…Iß=¹ðã'Âú7ç¶ç¡é¶®¢+vú/2øã¯(ü£ôæ”’Ùz}e–Öôîñ§ŒÊ§×vÔHÜ_nÍ7UsoUXtVÍÈø¾«îÖ§AåCÝ0(œsï¥àáçÍdä{#±ýHGlò/´½™€'~Ç*¾ý¿ðö?œ=÷æå[^_þr‘”ÿ|ÏH…Ä”¬N¯òNËÍ>7zõµðÖ?æqÉ?{ÆkÊîÿ¤`¾üËÍù°Æzï¤v °² še¨½>‡Ë>å‘ s‘å¯ÏæÞ¿ð™[ *ß‘µ¾ö‰«®û§jîlL”]j¹û%¯ôê—ÖÛ?¢&lªèá7ˆÌ?ºS>˜ÙŒ6.ÿ½…ÍÜ3’ Q¼l[Ùœð¿M2õ½›ÊÁÕ¾¸ Î{p-¤ÄãÞ;û•'î>ÕƒùÿüÌá ´fc¦ôú¶Ý:Ô™u{Wtws’¹1՞蟇eÄ4è²=¢à/ ¶. @å„TŒ6ŸœÞdǾ +Ù —ð€¾=¶õT\•Q‹wf~ãêo~ì—ÑÀú¾Æ;ÎᦇrÓ‘‘ >±Pàïí4ò®‘†^_¢T®Î 6”<ò¦¦¿{U"ùÔýüŸ“ãJvdÈüC®.ªåî¨P…;Êp°µtk™\rf¤ùõ×Óï¾QáSpô\ßÓ±É>% åžB¤ìh‰Q¶òƒ‚øà `w,¤Ÿ –³Ò[sÓ/i/Šé°5–1У°’‰¨Xð¾%>wà›–]=µ= hT÷"<=faуË4Ô +ÀHžih’{ž¹©Ä”ÆVHß2µyeþÂ4ØùÐ;ͪ )»ãs3¶æyîÌ[“~nËüNŒÈ9·:Úñ +ø½g@\{ø[g–XîšÂgyeÄ2Ÿ†r/1½2Zíî +‹xbãví™à€‘ h†6Ÿ‚ÙÖRZöÌ4„{—¿® Wm)©5{æx¿táÀ¥Ðu[JÙÖ"©Ô3…É0Œ!_.p[®ÊÙõ7ƒTž¹§öÆ"!뜚VòÇJô¹kœçœ¤™Æ8ú1N¾sš˜{`  ß;ôM:oMÏÜZÄ–äÔæ š… +è¸XàýKlíO3­/Þ[ñíΑºë«ýµ—=â¶gBÁùÉÎìuÌšK¾%r½´ñJÊþYÉ«|ZF•Û†›oØZï¹Æ:^¬‰°™«£˜Œ ŠÔ5[×gá™Aªö½‹Éß9ßÑÂòצëî¸ÿ÷JÀ¯6¤„ó«Dʃ<ž!TÝ ÉQ5ßÜ}å¿Y?蘹?»jÚûêo- ËÝ2¼^ø[OëÛßUqØÝú øiX‰. (1ežùÎÌ]€cvì\¶q +’Û^ðè›ê¤[ç£j<æ¿›¬¾¿ÝxÌßVx5sßÚûŠ/[û*oÇÑ…%ÏoÑr÷lÄDèú¸É?²±¥æ·öÞìóJTÒ7ûf*2¼Â¥º¨Õ¦ad‚_IkŠÇæÀ±8û§q=%%—ÿ®bÕÜòÏã+¬säÊ1\ùy§þþžŽ +÷ºÛZ€$—P¹›‹øÒM¥€Ðövûõƒ£Nù0× Ûç¦{<‹#ìybñ +·È¥õwýsÂÒδµzíµæÞŽŒ¬½ ÇÞ øçPó÷hÙͽep^TOG­ÉÍŽ9RIHÏ¡l¯°°!-¡&¨Ã”m©9®©Ö§A4mO(j‘Ån)"Õ%EgKxÕ&±Ùg÷Õ”¦m¥~[A®)€‹Éa¶:O­Ww5'X¤c7Gpìfóã³÷´¤Æ€_²µˆ/Ü”PÊ·ä uþÜ#&åûÐU౞_õ»c¨òÖúTãc5¯ðŒm¸þѶ†Ò<Ï®¹©àÖßß1Ñ{+tTDCïå¹!UG¶æLŸ¢51þ7lªûŒ"r©} +ž|h§Sc&üÐN‚½wÚ,˜†m ²poßð3nmúÒ?HßV!òÜâ–'v1ä…ON¨ØôñŽŽ÷àÆ{®êy ÷"»uSÆmÉé-^)¥> ¢€÷Œäö÷«,掙CõÊÙ ðа7jæ²âõ“!—²¦$×ú˜BÿBgjT*Žê8C7øÁŠ ýiHÁEnJi5>cCB,tÍá²VDÄôÕjyP/ ;%¤R]â¹WÚKö. 2|2ÀB”:÷4:m}“ß“}3‹¼ èï +Ð¥B[ü®OXC¨ß³0É~ a™cUy–¨Ua¼­£AtÌê k@^ò/¡+‚2tqDK¨ó+qå^)¶Ð>EÈò*  žÏÛ±wOÄûêù”Äæ“xoß5Þph¥«Ë:×±Hø-z12iy°é–{ ù¯ó0ØHYLÑ‘‘#JC +\£g¦l Àæè¯5BHÉŸ.öpÈqk“u÷TŒÜŸæQoOÍ£2ÎFób'hCNkØXâ"×e|¸È%»}s^·>Cȱ 죰 Ä2ë4­heœRâ™§b+Àÿ4¹wW”Ñš€Ó1uñ½*vçºZ@pÈúIzñ@«yFDµLõ׿ÙMæîΤ-1:/¢ 6†ÕôŽ•irAºâ»1ó;ˮȷH(¶Öß\îÊøÅ5^v#¨$Öl¨ø¸-m7+dp‚ܯ¢ƒËLD@Ëìô))u!*ß¿Jô)a9#¥Í4‡Ë£wæœGç=ý<²Do‰ª¸¨‚Þ1P:‚:hCMkñ*™ °ŽÏ‹Yù] är¼çŽŽÜºg B÷M tLO‡nÊp«cð„9Z݆” Ö A× ]õ·lu÷Ö¾ï™j|ê“B³·uäfóxGªyüno…†« õö±¦G¶Ñ¼k‡+u/l-™»bÛÜ3²®EŒzÇ ¹òØÕ»xâîš<´ÓˆQ=4?ªkK‹é¥ûf|cLO¨[ßó-"s-ðž]ÕâªöÿïN º&(Ç–;Æ¡ a ¥mÇ!ÞÒqh>53 zm‚Á?øU£ã½J +|jrÆŒÛ6ö ¯Lväi‡ëËDp@O…õ°_‰­ iÈ €š‡×:{à©m7ß+¥×yf)…‹Ô*Ï"©jm‰ YS +™ëš~k‘ݬ’RK“cvé„pCÁçUå[ÂW†Õ”ö]3›v¸Ú5²gç¢ñ;N¡d×Áí (ਅI ®Ðn ¼i #·-LJ@Ç€IiÕ¬bDQ@Ç#nÉ åÛ7T„ú-9¾zKNG,±°µo&d74´Ö˜E8º·ÊëZð€ŽÐhžÀ¿±ˆñ©ÎøÌU¶éOO÷ìOŸò½»{êÈÉí[¸Â½ø,ŸkŸäT;f85ÞE>4¢ëxïì‘ø–9ë3dûX{²u°ãéÚ4,eÇÈc‡4|ÚîJ÷PÌ4ªõ(º|2n{HÉC¹$¬:EWç]C?ì‰CŒyç“3Ú¶ä½Ì jx0jä"FHvHCªÏKÓ ‚UÔ²+Ì|~ÄÐ;ÔNûuCSviÎ,én71²³¼FC/-Ã3J-‹jx8×<¥l^ÐqSÕ¾:M®ÚóQ†aT‚mûÎ3 ì‚Ø|lãð¶ lbHÏB»æ±ùÎ9tªña}77¨ëfú—”à2ÑÒ0{«tfÐHh5MbÓ¥]íeìö§„ßn£eo.Òª÷ÌTضEÜZfu†ŒtØŸ^þä“+Ü6Ò¡1Sw_Ì4$}¿OlBVåàÔ IK‚gºõ‘ ÐV[ +.Æ(&—̪ά‰ž8Á=Ñ‘°)&ÙÆAt½õ×ñ$¦%5Ç€øì] ÔºgHu¾%8~÷ü½“Œ8\eó¶´l”WÁü¼‡Ð ‰64ƒÃn¹¡æüj6éÀB#~P³6×ñfCŠÊ +©( ¨ŽŽ*±¥Þ¹¶@û½‹¨›_¯Ï]ݘo}Q h­¯ƒF>3¼20ÐrÈA ‡º¬È!Æg¬ÏËw̼®[߂ߨ50L(¿Æ§ýä•@Û¦.Ap…G÷­01)©dKÂm ÒóX1[ÏĦÐU ôêðïa#—¶®â¢WeÝ(ûb7Ô#åCìÓ"¾C63³2/âÚ…P?`çÞtþ–]3Ðà36°qÛ&eßÓ¯‰ºØ¼m+¯+â꞊® wÖS»7h ÀÖ•¤jû¡Ð>Çk“õ38 Ü3€¶«‰Ù¸Üm+ïU·TTÀÈD{—É ~#­sÛ̲N¶%®N·< öV’¶õ ÌžƒÛûa³[ïÒS ~ ³ jÜ‹ô×¾ +X=lâ²wmœ®ýÕµ{tCGï\S⊷t¤æà + ¿¡Â—úäm¯ã÷ÏmƒÊ#ûöÀÖ?Úì“äç¿E3Î+áƒ*OûPy{F#¦g ƒrjK¼f?ðͶYÖ÷õj'U´öŒ³µOϾ##£VGí;–A©OË#9¨e1£À0ÈÌ4OóëØ Òº›²¯mIhÔ]sÏpÌÄ!íy?þ™ðƳÉ9-¨·ˆ»j´Ã¤ }oÓ]¯–½%'Vo-Ñ›j.Î1Ík\]&Y$½»„\°%ïÂx–Ykª^¦GÆn3ÂÞºg¨-k‹ƒÛâ¼X=.Bi{»ò6gú1ÛÒAºaŒï•÷Ó] ˆüMyÝË}+´g¤!€øµŒ,‡´Œï±pCB©Œ,S[w ¤æ¨ŽÐäSÑ@ö9rᚌ ÞR)1!Ë"l¼QPšCËLdXÏ„utˆOMkuÌò­›GµA¼?þEYȰ­elE@G‡‡uÂn¯´ ¯êce, 󌳽íêž¶§' `Aì£ÐD}WÝÍ€S50 Þy|ŠÛpÅ6ÒöøÀÞ5[íÞ6³ÉþeÒ§¤7ûøÒuiç»`¼ç…×µ<MVB×äýì•™ ªuž×ä‰Û:ðÚ¿Ó#â¯ËƇÝÌ\Fmå/ŽynÛÑ3½ Äü]O¯|×Ó=¶°¨€ÍV:iµÛ+<ꞃ‹Ù°õëšÖªblÀ»<. èGœKc²Ñ¡º©î¡Ì)þà»å‘þZ%wuŒ^Ö NÄ,ý3;6áøŽƒ×ï3R¡Û6:&æè™Ýqêw½ýº¨ƒFñÊ:sÖ—%>#‹°*g6ëÆ©Ú1ò;û46+ ø°ßÈDnjP§”‹ŒZƒ{®uÔÙ»0 E>#ç‘ãÊ74t¸ßÜ;ü:úlÀ$õØê¨ Y¾k£ wW{f#öA¹sW°¾DjÙzgcv~ÿŽIñÊ)õÖ9LÆš–ØsQ‡Œ¾ ™†™xÌW—h×ÊïÞYÅ·íÚ©˜€¾¯Ç<5ÓK0Š!|ªK”3Mâ<° ŽCצETÓ(;[ÑEy¤ï祹&[\3sÃìœ@=ÒU*塟kù‡Ö¾…[(`àÍj‘f’] ž!GfÛEüÁ·è+J:¹Ø?ßßµ£ëéŽèY°õ%n“]ÜW§ìË_äŽdI¸cyí:º¢ôŸ3äÖÇíh[;2ÔŽ-X%=Phº44^«žmµÌOw-N´ÌuªF–¦YݬaF1!U0&9’Zs2ßJ¸F¨‚Ý쯦=žE§Ë³uºþázï,öÁÎbþÛÅÄg…ÄìB‘AÜ[§îW/÷O6ꇺ‹Ödô×*}SN¨ ëx¬à×IO§¼›öJNÇß±ŒÐJeüö4ç¼.íB­É¹(ß2Ÿ¹oN~ôôÊCl/ÃËœþøméûºMSôŠEêž¹¤hr+ú™aƒ°×¯b€Í"Z¡aŸ¹6E­ð¬«@ïÙF ÙöqT¾g_1ðY¾e~]Áiw-;MÓ‚F×"£nSÃ…oª¨Í€ÖÏóHi•†ÙÞVÙä,jZ(*Q÷WêDÃ`ÅÈH“B$¡ËGÒ!½Ÿ0ö¦§“s×0>Ô¹®è£øtÔ†GÚvSKm ›iˆ0 %üzç¦`5-³²°8¾<§¤ã*ÑXóˆP”ÊçN&Òˆ£w0mƒg1`þźÌÚ±µˆçÓ=Ýî~»OÃCoÏ2©aÇɈ÷¾Úwö,Dì zÀÄÆoZúúíÚ²nq½$¨UL ׫ECÍù}U1*ÔŠF ºñI´ftš§ `ÌÒ¾D¨¶Ì 2Ë|bdexaÛ6¾²ëîWÆV…â=àx;tè¥2ÿ²FÿíãM¬ñ'v,VØÆ¦­ëû{ò‘.e/-Ó±ÔM°Ë»)ÆYj©{YÀÜq0X›Ëè*×"®Ü¿ÜÓµ +Â+Ý=.-±º<ÀÒ/-‰¥£+lq6ÀÖ ) /{P£w&ðÓ©Ó4iÑ0m>¼ +®&]"7rž §s¨ÃùŠ>aþʯĻؙÇõëºñ«rL°43Ú1)–BEâUöà€µK™},¢HÞÉòf¥p¶YÛ3T¦ƒHº¥UãtU‹ xU]‚¾P› ;©æœî¬b~;IéÍéÆf¢+ý¹¢³ŠU¢ðÜÈb§hT‹1 Li‡ yÒESg VÛLU. ;󸮄x¶¾„øË›4ø—·ï”üãáÅ´Oóž5|K%L³µuËS¿Wº»‚¨ˆš1µ¶%zý\ïXþ}áíy&aˆ1þB2*i”ôåÄLNÏ^•u‘böAÕþjxC×ÍW-,ö‹§ôÌ~Ñ:“׳Q"·´Mžƒµ‹ÏCZF~*ÊF™šÒþ¯Â\ö©¢Jñ×7žC?ùõJÁ§ÏŸÕUž‹ø†…dÿ1ÿÿsôÖo‰®ëû°³ÖžY5³¦»0Ʊ»» TZ@ºSì[LL°ufÕÞûûyÿ÷qÿäq>òÜ÷u7×ÙÜ”8=ÔJ +µÃj™Hbnkì3–t~íQ§b7†ÌœøH)’½bâdŽ,‚ü ÓûëzÊi~Î–Ýö³³ØáÍÛ‡Èî¿°8ÕËÖ†)Ä´BÞ·¥om›“Wc¦¤uxƒ¬¿j`P[UÒ±˜O.[ö#rÝ¡E£O’3ëÍÌé¼ ÊÝJÏì¼áá‹¿öÂ1ÅÁ#€zíóW¶ÃËO‡_oº9øx#~ÎÍ®ºGÇv¿–6µÅ.ª«i+úJ樰Üß<˜Ó\­K-+ dqµî‚êõDAÙjLMõlZ9Oþµ„9PÊö¦âû_f¦ÿâøÒï‡Ï¯âý@·r©ŽL8Ïc¤YA™—ˆ×4MÕ›£¥Ô}cëà¦Q4­QuvMÐZ»& ÍíÓ˜ÖŽ-v[û³¾z,¾F0XÅUù1Ù:‚ì’ŸòR¨¿¤Ó'D~v}þ{JH¦c·/©“%x'd‚Ÿ +É!¿Î÷cU2eOï³³ÛH¬j›ÑŠM_ ÈÞ—°B‘#™7ë EJx|üàæ–s#-§öV +¨óçOî‡GOcž¼Lrð ç]{úîàéO»N¥¨Üº{Ìl㈸}ÅÔÒ±0VA4Ⱥ*Å"c}s÷2“_³˜PHV¿Žàüäæ½Jý% $ü->½ë_a¼kN.PŸ`æ5¿¨²kO`Žt‡tð诅Ås>Cè*lìÏ’67Ä’'¸qš.R[Ç$¹¼i9—S3QDW9fæ5<.@KžÂÑʇáÌ]>e]{ò8Ðá½S²ÃgoœÃÝ—97n8:8:Æ^ƒ EOÂbK~súTp+.žñ¢¯©§`c¼±ùh®®{ÇTÁŸ•Õ ôRyûˆTÝ%4wt÷Í”µömWWÏ' +'2EâÌäè¿èW¤ýY oÁo ¬Û1Qˆû ‘iŽýueyªZúŠ®”8<ÔÏnîVB ©ôÊå`${Ú9&¼žÈù!2û£Oh‘Ã+÷,‡_î{9¼wNsðç98{až8&;ÄF“nXB7a³l·`t=•É*ѳ_¨fU·Oä³k7ã %žî´s>Iÿ0*½þGŸ œChû‡¸¤ê"y¯< wk=~—éàêEtøèM¿öчô¯¼‚šMŠ M~YÙZ¾¢êjTvT ‹šÀ}½ÙœÖÉ0}öyÖt; ©¾žÞvÝ%˜ëpï5Øáí¨C`„àškÛá… Æá­ÁÁ/¦úšwT퟊oø„—ÞĽÚUÓ·¨i©_«.1Œt”V7}†|Š+ A8ƸSbnïÏÞá‚ëáÉͿƦ4]ï’ïàæYøCXŒà_!I5×n¿Ltøå–Ëw¹ïý(÷_‚®ù|¥ß¦Òda²sË’RªYmkšR6‰{q嵺8AÛ&„×eC`JÖ=àóKiü¥¼—–Ùv#(²üFLRóuﯔkŸE;|ò€88¹8<|wÍÇûŸÖãØÅå¾×Ô½·Ô¬´£6¥½U’YÙ4™N­Y®ù%ÜÿðS ã§O”káñ5?D%ÔüèHþñ‘cúµÏþ¤kaÀï¼C¸ÏœÁ.!ŒkÑ£7’àºß üÿöV%H;ØAXoYÚMJµl ©g‘ÍkÚÊ$”/xã˜Æwp´üA:¨åæg_ôõgï@×^»"Þy Þ¹#܃×Ý#J®û'w]O‚)à8Sn• 3=í¬zp¨bJR]°¬@Œý̈þšb÷ªbá—²ºÉDnãj2N°ñ95Oô{hlÙ  ç~ /¿öÅéàô éàø +`ÍÁ#ºÆá7ã‡GÎè¼h?D¤ I@^d!úß·ÕÓV4Å«#äX‹‚—¥6A;jâêÆAóYþ¸Š:÷Bš~ž‹»›Üüã‡/x7?Æ_‚Ø×î<Švøý^еðÄÊŸ‚"(7AiÔ7FY'mY]Ë”ôuºú†ñM½Ó¤Š–¹\Nír A0å‘—<‰H©ü50–}Ã;Šñ¯Ω×~¾ýÅá­;¨·â’³+gàÚ¿ö5ê†úX+ª´˜›0.â$êÄ¥©ƒ˜¦îI¬ ^M+ü€£HŸåãÆ^ù'T\Tøƒ“[²CrFõO‰ ¾_ƒ“o¸3Ž܃Áûß²è].¢¦rß©â˜%+~C͇XF«HsŠ +”¢¯,¦¯«)¡¥O.m™Ê¤ñG=©\•;Ž¥ý=ðŒàüêâ‹úWPózDRùõØÌ²»ȶçÙá34Uñ–ÏÕm©Ð¦ÊÛ¤¸ M-Ï¢*ŠŸ…è¤ øÎ¦.pK›¢°±K‡,©ÕE"‰â—a©õ·¼"Krõ§]sñÆõ½öü}†ƒg0íšgd™ÃSW¤Ã#€£Ü#kÂsu?e*8¥š…h¬nUÝR?5H×÷c¿˜¤e9"‘œRÓiÊ+íY€R:w³ü%·|Œê%¿ŸÕðóÃ7™Oßæ8¼ÿŒuxé\àðèE²ƒwñZ\ríõŒ¬Æß*Ùb_mwsβ\·¦æAåM4Ÿ‘þnl_÷º¤|ȧ¤i)“ÕlMÇ•-ç‘äŸ2amÏ ˜ž'…é똼ö'ïýp?{‡à¯E¥U݈Ènz[Pï„aK<5cÑ=½:ŠYÞ‚]Ñ”"w§*óu=fe3K,ÑÔ4ÌðJÛ&@¼2™?‡ÛçÂ-øL`ö;ç {óê߯e—8&唾Á Tþèu±dį²V,ì*ÐH;q&iaEÓT¾ ã¦-+˜i3CŒx³D)lª‰éjïÏnïÎ/«û1J„ñ¥g +¬ûe`BÃ}'î/Ï>®} ¥ÝÏj¾ê¾—E5½qÇ?dÅŠJ”éâñbèˆ;/e%-ˆá¾›*Zþ޹ºrFÙÌ—J‡ZEF^u—Ʃŗ¬øÃhãoòˆc’óû~~玺öÛ½‡N›?øÅb_ ©Þu]a†þ辆·ŒÖÑu²¡Öép£H,¥uwÉ šZ59UêA•2Æ’|ÄSÅŸ`¸þ×Ñ™å¿EÑ&¤W½†¢;]ËCñê¶1îä¢M×ÕøoÊx7ÆKÝrœè+ô6Ë*óåCBj[kOYò–+y\V;—^ÄÕ{ƒPm¯âP7 ¸ú§dÆÀ[IøŠÊ +¬ª§õ·Ê`ÊÞ°EÅšXð#3=owŒ’²*£Ç­É †.šŸª¯:K. %"RoWVWûPNk‹2»¼BêGãtÄSHÔŽ4f—OuM[xc{[PsGOÔ@›ªJY–‘nîž¾–}<) ojIi˪bÜ´ª»]¯êU ÖH¤½„––úòÒv7 +G駨?Ädµ<Š)½“Qÿ«O8ù†_4õ_áéU?„eÕýª¿ŒÞC3õ“t­|´~\T…Þ3ðqc4Іš ÙŸ,ãÎj›XÝ5q­­­±õÂYzI«D+5úø:·B–æ£bÉGo’®=›îàH¸ö5šü[¸ê×ç\É•Œ¶õ€çÄœÄ9!ÖwCÉεÈ«êZÊ„¬: ïÓÓ+…·vj -m£™­½JXc׸®±?¢¦UÇo6$¡™¾(|•#…Ûå^Ö¦w ˆ3»óÔòN쌪™z8]ʸ\).þc½¬á|¹¼fJÊKSËzxr…´N®äKz;²E­-qýíM1Ýñ]½rh—P†îì•@ÚÚäY:V÷°’3(í„ 5“½æåÅY+êjÒêX5u]]Aзà½ÖG¹ðmS•`k¼¦|AÛP¬—Õ£†:9ðm5”÷Í=ât~½<¢ˆÙï„*V¦çš"±ÌÎf*œY§ -m‘‡U¶†4÷Fuc#+“í»f.fk ½£§¡g넇 ­ºõñöA­²¯E,é%÷ô@›:¤ =“ز&c2»Ö…p5-¿ñYDF±s +´â žWØ"î¢hF[™"zÜtS–·’ûõíú(#kb€•53T…›’7“Í’:˜NØœ¯·¢4–Q}m@Cbo£<»³Až'j—¡G:‘†îNðü@+zSÒ€³i«&ê÷õÅè%3iUÌ.8Ô——íJˆóÃÅ9QeöH+?FÞÄWÉd ÂAtw[G¼¸¹&R=P“­jÁé%møUwÕº¡ž»¡«emªÙ‡“Uå§3•v=9k®+Çi¦üns˜™¼ fÅ.ÊÊ¡3#õÓ`qú¼ª–1;ÚÄ3J+AƒGa 敤‘ø~´·.mLÒ— Ò'%ŒHËHSùž¶oôÐPU|b$§Œ¡7†‹‚¥„Ð¥|ÍØ­XÕwKgµD³¤4S'¤©úêrDíÝ™]u±µ¥bCèÌ-Vz3ؙ솷ÅemA•õ¢ÄÆ–îèÞ®¶äY¥°~ÏØ?º­©)_fçšëê/¦›¯2öư‰] OšÖ¼wê‚·JØKv©IÍ@­6të1õ=f<§¼Û §Ü†ƒ±·Yî«Úº*Ïž>ˆJ(fOK»y«C‚¬3ÿ@Ë‚œ™KÈË=Яڊ¨ç†ÆØÇÆ~¨ë„¼¼ ýÌÆ<˜.á¬N5wÌŽVêyñ#]¬y+Ë´OiRÔ ,3ÕÅÖÖ¾XÙxf©îºX.œNRAç3täé ³èÀHÏ[’1RŒÍMfUWÍ‚º¥Ì6UÛ°gª¯Ý6ÔðvŒåäm#¹6ÆÎ]Usr–TµÄEmW×’¾Žo(cZ öÊ'sKË…nŽQ2׆ +—…ÈÏG&éÛr£bÿê³v¶¢â̈‰a–adðº†]0«n œ^8ÐÄ÷×i„íê¡ÒT­¤“Vfkš˜ Úr첺 µ7SS{¶\;°odäok©ÉÇó%‚óÕ–ñ“åV£}®ªÅ¢)ÁiúËs4ýÅéSŽt +ÆdÍX¹¨2$—VôJ”ÅÂa¦T,$ª¤5 Ó(+Ñ:WU{8]^eÃý'j“žN´æ„.‹a_”‚Ìõ”È5I eCÆË[ÀoÊvœn)x¿.-ͳ ×âÍÅ9¼B÷}e[ãéDSïŤ€µ#G® !.kbˆ»Uߥ%.K)INÚ»¥düŸlì±o£¦ŒQӎͬÂmº¢.o®r‡gJ˜@ïgo*‹BwLj±‡&fÞ¡]pdæ"-ÃôD«º}1% ~›æ/¦ø„½1Zöâ1d®‡è?/¢…›;ÉKRV抌–²"¥DíiXùW3¤­Ãø°µ¡¢ð`í—ú‹¼ûˆ b^Úò9îPCÉ<¾úž;13¡êU®iî‘©˜d Ö¤ð¼ž0×OË^$…Ou¡<§ºð3BFĬ¢8!nÂŒ÷W¤.H¸IÛc}›êÆÚ-«pMVðuµ7ÅѦ$¤›*‹Ïgë:/gúϯæL° kƒ°›¦„rd®,?š(«Ø#CVÕŒÜu#{FÕV¢—TCTM$Ÿy)bg´¬h[É€¬+‹Rm:*øÐ@бÀõúÎg*€^çÁV‡HáãÍiï·dˆØ‹iJÁ¡™‡ßã¢çzžÓ^'süŠÃi>ySðÍ )v¥¿0äPG_åw™˜Ð­QlÐæ>ìtšGù¶Äãîk±±æ¦”7+W3 †_íRÆ_‹ªm¾˜5«àdL‹yËÕ½Û +\ärGÁǹð;}EÆ›¥¨ë¡ššqj.&¬)˜UUæ‹.sWË…/‹îó=9ÎÓíéo–º2ßý3Ã@ÿg±¤ê¯ùÒ†ãqzá需¹Ò¬;›­lÚ‚}oJy=Ý”þÆ2ïq:ËÀ^¬VõLñ‰g \ê¿­UßÊv•E9«¢l¿¥þä71øËÅ$ò}–…ùsQP~0QZfáäZu<ÌÑ\ÃàÑRóØÑbMÏþT™`KÆÍKI³RfæÖxSïš±¹yE[Ž_+EoŒ +Gfù|ŠC;3³'Z +èÜLË»Üh[íÉsÚ—ÒâìOk$F½–1SßÛäìô 9ú@AK^ F®ŠÁ ý…>J~ê³CE9þ@UBÚ’Ò’[1þ¶aJÊ©Žš}¢'§m B}µ5ñOkó>_×§ù{ª¬äÛ´-Éú°Ö›ôtW–çv "ÄØu|ä‘¡œaaC7d¸ÿ²k #=)Ù*ËóZæºm{´*Á­I)1gãô‰ µk8ù»Jl̪é5ßrYá¾î«è™s=HŸñ&ðë5))z¡¯0fGNŠÚzÏ7¦>ZnÉ|¶Ôžç¼ 60À65ù@AŠ:Ô²ò&úб²’d§«9"ËÝðè] <øDSy¨†„m§ú]N‘!Gzö±‹:ÑWðmÚÊÒ]M Þ2DŒ²Êr}´ˆûT1m¼”f‘áC7%ØèC-½`S‚ú:Ó˜ã8ÕæhAÙG ¿žh©ÀcH«Œ»;JM<0pkrbⱉ‰¼˜ac÷UÔŒ]9>âH]õ÷ ½ðïåâR`3÷Æ*™Gµµ6C1ή¡‚­ +tÈŽe)вiII{*|ŒU ]#¾\LsÉÇ&*øØ€Mµ!âO®² •E65%ùûlEõåBYeã¿!%ÄêJ9@ßâ÷e„(› eS`£×„(ï .dWI϶iX # 1á¯iVá73«àtŒ¿Ü–ò~³/ûËJGÆûÕ¾ ç¯ñË¿Ís8Ö|¬e (ñHÇ@™ð3EYçSXðŽ +“r #¥]Í\ù6_*ØW’’æ{rýgº2CìZ"übZ ¸œ¢¡÷†aa»Ãïy6t[' žÍW5ÿe©.”WL—òÌ|²MGÎ=›d¢ì&̦çà­jÄ6_Ys¸Pݼ¡ºš…ø²ÖqÛB?o_ÍÑQÅü½)¨9#ýveE!Ó÷Ú€›#œ¬ÏÇ#˜m˜•z8ÊÌXêF¹®ô@?¬ a.›"¬ÏÆ =~ªå>׆ùr¤(Ã}×WоX¼?Š2UGÝ7—EÜšªNz¶;HH´©ø…ÛrlàæØeS˜ûéh´0äTs•;‰ ^ê)ð›ëÌÖ éqj`ÃOœÂÍ!˜·¥'áÉzÚÛ]9Ôצ"'éhYv5.f[ZèkåޱJñ!–>”; ߘê’ßL5g½Zè*pžî„|lÇßÝâBö%øÐ骤G#´›ƒ„ ßd”[“U)ÏŒ• wW†!ÚVHP6êቊ³);LÈF–ËLCœ£¡,òáxUìÙÆì7 +föº¸(y xÍ;ÃèÛ(!Æ*Bùì zmŠÑÁ’â„§X¿›–^DÜŸUUç:&d¡=ããD]ø“ùöà'Gˆ÷¹‘˜tª£äª(YW3öµ¥„=U)ñÏ >õû shfÁÿ7£wŒ{j$g­ôCÝ;¡­bÔ¦`çŸjðñÃPï-aÇLSÚ+Kw+Ð/™GìÂá²ô§KýHß33ùm¢”u8JN´)Ña¶H°Uœí³#Çí]y,%-ˆð!«"´ÏÖpQÄ¡‘ ·ëhyë¢<ÿ¥îÇùŽœ×s ·—sl⦰%{nøŸ(Yçzj endstream endobj 32 0 obj <>stream +îŸtØ9ŒS#¼Ô›ë¼3‚M¾œ®¨²©¹»R\˜uîµ#xìÉÑÁç&n቎]íÉ÷=Ñâ5KÛ( ;TââV:3=¶ BÖ{AûCP¿s!oC”ç·Ð™ëtfp\쉙f7 "¶?K?Äó@Mˆ?6S³Œ4Кöå|–‚xù}¾„o7°1냨À¹¶Lçýx𡹸äl¶´øÛ<1I^,T6͵¨¾-6ÊÿŸEPùm—±)…ø®äÞQ`CcOñ¨ër3¸è#-¥àDKëhÙWÀ8dOóšhI{2Þ˜ûr¥íµ'e§[‰‘+H7›Œ“µ%¡DlK€uÁ\·±þ³íðúJÐã•nœÿ™F€ÛìǪH GZrꮟø]‡Kýn€ë1QëR|ðb7Üõ\džŒÑ²¶D@Ÿöå9+"ï’¾\×ðCož^70Aº^˜w?+ùÞ™šþs‚ +ú>IÊ<Ö†mI@.óÉækS¬÷áæz鑳-È»bbèz?&pC\±%Ám‰ÐÞ ­à·³Íù;bFÂBƧþõF?2ꦖ—þ|¦>ýífè“}»­ÄGŒTe:õâ"ï^\弋ñá“õ©'ë"oë‹#o—%=Ýêƒ|9ÃÇ,:BJøÕ\›æx1Å@Îu>Š(‘¿)Øñ¿ â~ïÅúÿºÖçnS’R·NÝ, +ÝRvdt̾‚˜&eùý.g}¾k*ó½³ÔšôìPOLØW1s–ºˆ‰ë]…ÿ™+f]Ìpð:tÄ–à[aŠëJwæ«ÙfÐËmiI¡¥¾Ôžõj½/ëÍö@ÞGSyìífÈ]@+²ôæ~1Ö$Ü[¢üŽÆØykB€ÄH¯Õ>˜›¥'÷ÃŽ8çó÷q*à‰ùóýpŸ!nâ«‚šv:ÎÅÚõ E÷œ®}¹-»í滩QA—Ót¸¾!ùýd{NПÓ\™‘ÔZÖ±¾(n]˜ædéH|±#Év»Çe›Á¾eù¾/uä?‹ÅÅÿÌsÈveQäö Àõ‰Ž"ŒÛmEaPqžïý$'?«+Ó½þ³À¥ý1I‡n‹¡>VÄCÁï–qkµ \“‰˜l;/ô€}¿Ï1I¯WªÈ©g:rú>À¥SMqOWúÒß],Pñöq:n}ˆu  • ç“Å¥ÿ]àÒÿ§íˆÁA½)Î3u1ÿ³ZÙ}ïË‘A£…~ãÒvFPAúòø‡³m)ÿ]e±¾ÍÑà?¾šS8]ŸõÆX‘üâr–M<øÌØòá%Ü=Ÿä1ÿZ,.?PBB¶D)¯­y>ý`oû,âX‹ ÿÏ +‡®iGrÀÞ¿Oõ bÿXmÒŸÍTÔ¨ÈékÂŒ×Úâß› >ÞÔUÆ8›fâ ·›S­àÀ3~n`å@¾ë)Y¿§Žá£VûÒ_™j‚~ë@¿ÿ¡ã}sAXÚHI¼¥à‚Þ­‹¨‘+B¼ßBÜE[‘õZSšöX+H»7[›ÿvCB ×Õæ½7V¤>9P’¶„¤0«ÿõhԦߎîðîÇ©ºŒÇ»rÀçŒÐ·‡ +ýæZcïWþ¦çFü:Uštø›Ð©>¤o!ä—‰j˜7P³ KÄu¦1ýå =üV5Ôç·:°ûu%'þî\â³´$ýµ‚Ÿþj¥í7Õ˜ë¨)Ž{0Ó˜òÒX“ñbu³tÃTõ” 2Þ²Cï[ºó=w¥˜¨ý!BìÁ0#}[Š‹ßS@‚×úsÞZ.h¹Ÿ2DKyméDEŸ^ÚÒ›ï¾Úói[”ï¶'†~ÖGÝ"úݼ귕n°ûRKÖ+!6ìQÂçöTyÔ#»î÷ÝHË9Õ1ó—º°_Íåà—6Ik©•µ/- Û“xM7¤¾žiHwZï…=NOþ>]^º7JNYc}×z)á;ýh_ÛPŽóf_¦Órg–ãl ÈeGÎBíŒ +MPÇ¥î+IK›kFz¸iw¦kò'ê²?LÔ§¿67f¾ßWÒ FÈiË`§Åö\—åv¨ßRkþÇÅ–´VáÕü´L¯‰ÚÔgKÏ]1Q[‘ýJÍ‹{àø Ç½6E˜ÀõþBÿ=À[Ìt‚]Z1Á÷6%øø%QD‹¿_–îþC'Ôÿ†‚qËàÃ|'ÄMFK¯F‡>ád8ÿxaf@ìjjæL{žç(7⩆sOÇO¾¯çÇÝ?Öâ3¸ ¯;äÈ»F¾u˜‘¢/N|(§Ÿô»±2â–†ï÷ËŽ47äŸeaGIˆ:Ò± Kù®K­Y®+­¹›=ùQæûO×§¾[hO~òß 6óÈHÍuä:î Â/&k.&ª«þY”œŽã’à·)Gø¬ Á}ŽÆ¹Ôo uÇ:x[Ž >P"BÕè¸:ð4ðs€c:ñ>¿7ƒ¼Nÿx¨fd^Õ퉞k#Dÿ/ëP† [êÌq1U§¼¿ÂÃ59-¾—ŸûDW‰ðÞᬈq_'Z2ž PC~é'ý¤+K}°Ø†úbÑ£dWßÃâ&Þ?5–€Ú^ë)òhˆ­)ûzoº.éþLCÆ£¹&°ãªl¬Ëý°Ü[`é…»Î7¤?^¨Íz±Õpß“áÂÆ[Ò^Ëh¿,4B¼†9Yƪôû“9o¤œ”g5Ðà;ýEÁOæZ ^+B¨—ütˆ•ò|}cjÈsm@\oEúüKD þIF ýÉT–öx¦ƒ_†Œ¼]¸³¯ ÃN±'ÅÞå3ݘöj¾%åé¦0çÝ2Þ†øTšá{Ý\d<çTS†óZ7 :3^™J£´A¾×¸;ß þÔŒ ¸5DŠ|´ÝK _j½ÛîËr²IÁž–ŽX™†°w†òˆGÖ«L«>b/Ëów1-ìÕ‰†³«I‡#èPû0*hW‚þ +ìU¢¹9íµ¶6ãY#&ᕈûúЀ¶ÿ +ð”ß…–šu8BÍ^ê€(˜Ñ·v‡I‰[2x¢ê:Q•ój¦ìl(O}1ß’õþ ÐCv!u²&ó°Öo5 °U„›kÈz5]›p¦6掾4à·©Ú¸k€·Ùá#+ò¿þ\ñ¿·>Pqj¤f89YŸñQ[óv® ð)›ŠW¸%£& 2îö’cŸšë!~Ëhß !Ês¶â©©¹7 oµâ‚žŸ˜Øp‹å/çÄßãƒo/5d~ؼv`^V)Ò¯ +t{¸<7|ÏÀ'¬ŠIa†²¬—º²4—‰æœÀåçÞÈ÷ÏIBþ?‹,üÚ>ä`Œ0ñaÄó†øÓleÒ󉊤·Ó5Éoöå9_þm¡cV$ˆ0™ éɆ·­*']e²œMÒò˜ðm9ÔcW‰ +:™$ƒÿ\)«;42P[ÃÈ #=%çßË|ηJÁîhï®ì·*Lü°Üéxl Á.&ŠÉ6% àÈ´ã«,%9öê=šS£€p¢aåÚ:v}é¹Ð‘ï¼ÒWèf#öÕĪŒ».- +žo‡¹N5€7ÄØ€À×[‡qÁs­9¯7{`ž—Ó5ÍWÞz­룯Œ¤¯Œx´Ñ‡ðb½í¹Òr\ìÌ|7×øþ´Ï®‚‹šëÃÇUûÒ…ðþe¥ ä8ß’ûÞT þ´Üƒ Z$Dõ2’¬ˆyhSÇ«bîL×EÜ^jM~:Sò`³7ùã¾sn⑌]…>uˆ°ÛjAŽ×_ÓU-ö1\übKúó¹úÔ‡+à·KŸ¦: Ÿ•µyo ¢]®##ßÝÿn¢æ^ÈéöQXàjwʇaªßíNˆÓ1¦ÿoV9:¨º0ò (àÍõ±ŠL×ï&:Ä.¹)2݇³Ý ¥!÷$Ø/?NU§¾°kÙÐ….”ûb'üËÎ0>ðÎé +BŠMOê$dº3ïSgQäo-…‘'šîBVüËùˆÏ¦µ&„Fj‰Ùß®2Üu\¤U†67¤<´ˆÐ~+}ÈÀÕ.ÀÉÄð‘Ò¤ÇRväݹö̶«÷VFH±æfÈÛ©vä—B’µ/Çy¾!ñélmú³¥Öì—Ö!¤×±Ðûb¦5ßé@MJ>¿ÊI7“÷Gpá;¢¬Oó¡o盜ö„¨==c¬¤à¥˜z{­ óçTqɹ‰ƒÝ“£#'j"ÌõiÞ3®‹"dØñ8m‘– §Ú`®6>ý%ñßçß+læ ´]KŸéJ|1Þ~S†VW¥ù›RÜl&2ôhœN>›À¡ÿšg/gÈ-)€½™¯LøÄB¿M!pOA?1rà»Ã”h»Š¿+0N ÷8Qbδôì½v暘v¢`7I³ù¯Û WúÁN¦Úˆæ²ð‡ûBlðÉ=ß ûdiGxœkyH»Š»;„ Ü‘âC&êÓÞ¬ Â<–ûÀÎViQ䞆1Ôä<Ñ—e<›iÈû¸Ö ÿ²Ý±12¤„”™æìÓ Y¯Õ”´-us÷u]‚ œh…¸ê +\Ú_. ܺŒ•1׎÷ÜWÀ—ùé–B€¥î1Y—öÌÒ“ÿià§})êÔÈÌß’À¼¶D¨àCUm±ƒ–2×€pÒ•¦=•1‚調wN5eÄ=me®Ÿ­*Îz°?D‰;t鉑–½;Z¤¯Èz>V z¡-Í~¾9LŒÛV¢7‡P7Ss¿MV–]x˜™VÐç^bðanìÃ¥^ˆ›mŒþ6QYöíj¦§éa•Ñ3OôÕ¥vu1b±ë§«C~VVÜۉɿik!€¦‚6%¹ÖDéï-ÂàõXû¡ŸG +Ãzó<å¼ä‡ý@ºz¦'¥¯v%½™,xºØûÎÒ“ç³Úv·`"¯fïöÑ£î(K³¼ulĹ‘œeWá"Ç’^ˆÈ¾¿sbŸi«2Þj!ŸUUòÂßÝäD:_è± K-éogkþWÛÏ'*SžÌ·ç¾?гú‹Ó“Ý8°]ÛSÐá'F6Ú:˜ç¹Ô™ôvª>ñÁlsîëå>Ô—%qÑ×fR؃z¸ç­=9>úHÉÌ8ÅGíÊ`Á+}Ù>;Ò|¿cmaȱ‘dnƒ[øtONŠ?ÓcbOµè”o“dø·YfSJŠ1Tç9KéÉwv èÖ9vMV´Ø[à.a„½Ò#ßí*1‰S4òÅ4«lq!âD>ÞT Òÿ½Q\ñ—…C³*`¡ÚÊȇ“M ÎÛ²¼¯§flüLÌùéWØ÷ý÷åÊ.ÀÓÔü1N?Ö#Bæû2§º3>. :r„‘Ôåç)-Î>Æè8‹ç»7‚Þ‚ùžª°á{rTÐ\{ÒëÅî4ÇÅŽ<'û3Ç:LMZêD¹o +‹¾õøWR챚·`ÍLK¶³’ys¹ øÍ\)ØW¢v†Š¾îI‰‘Óuà»2R¢mŒ–} bf^ÍЙn½Ø£mJNîJÌm¡)çÍDUÜ£1nÈÍ®BߟµÅ‰Ïl#ô¬ 15n±ív>É'™yv-9}_‰Ž8Ö`ão±3DÙ— Ó”Àµbä…‰‹:Ö’’¿OÒ!&|[Š Z‚?lBÝ÷å„è-)=±“w÷jFèÎ0-Á:Xèm€¸œé¸¨-@{·ä¾“"~=Ñ2rwG)©ëÀ=l+ñ1K½È ©Øçù˜ç¡öêóGvÞ îT,ȱY@»Ê“œhE†‰9é>“ͰؿxÜ/rÙ—ã´"û(.uE÷ØaÃÄœ¢…B¤¹öIÊLy|•{4U q9Ôò‘þFoHžgf.þ|ªœ•U´Øþ¨äGß•P¼ÙÈpýc†ù÷2›2Û‹úðºû±š‹ø6QÆÿ6[Âû>KƒêPëÙŸÖºrÏ<Âþ­à'½Þ‘c÷Çè°}5%ûHÏö²(ÊPŸè®© +sšn}y>Ž™ð™‹í™Îk½°˜S= w¤å í:.Ü6ÎÇé» ŸÛ°!·”¼´WÛ +NÎêÆw¼.ãõXi‹…6+ '3Nô̼R‚²2õ•¦.ÃÓ®á@ׄ¸Àµž|§ñÚä—rFð£ÙÆ$ÇoãDÐå<›<Õ Qð3^ïŽP2÷5EÑ›"HÈZo–ຠ>j*žM¶æøÚɈ;PœñyUÎʳëKŠl*föJ7Ì[N‹|:D ~h×âM èÙ4«p×HLÝ3‘Ò.æ˜Ä#3­ðb’…¸4×"D†,öãƒíEþJrÞ·m]”ï¿Ø‘øôxœŠ<œ..>^(«Ù›àW”ìÜý‘+ï‚;ÖàâÞKXè(t[#}f[RŸíJ`žkð/ÆÊè»Ó ñ×û¡§FÆnâa¬#´x›š“¿Ú_è±øï­Á<÷ñºè{ÚҘߵ‚x@_!#.'ËÛWyc*zê‘’‘¶Ó_äo—SÓNõløŽ‚;Ûù0UŸýb[JM^¢U–Z \€þú²Øõžª†~^ïBy*é™[b\èZÜõ|’ƒÙÅï #¼¬Ø—@kžêˆIç:&Ø®â€5Õ`§‰:З5=Û>‚‹87šåsm1›b¸ßÑ%m_Aˆ\ð\ÅK¸s¢c®òÝ5Ϧ3ŸY¥…¾ë„Ç\gÞÇñÚ §3#³`CJŠ^•®ò7 ´l«¸ß~”—}„”t¨æäíÈø <ׇ ˜ïÆØ45¥vmmå¹¹‚ÿ÷Jqñ™‰jC¾XºÀ¬ +Rú‚‚‹è予9i/ì*bgˆœ°'ÁEÚ‡ñÑÖ!Lئ´Ðo{zb.¡,‰É“MpŸùLèD3,ÌÒva(Lúk‰Xp>M›[²^.´CNõe¼]{ §f_ÎÑ‘ûšÂ¨ÍAçÑ(*ñòê;äô|ä}-ÿÏ•ÊæÓIîXOÏ^#ü‡ù_Ÿ(x>Ϭƒnÿß—óÇ w Ä†^LòY'ãlüÙ$ cånŽRâ,2´ÿB7øýÕ,¬Õ!jìd+æóº„ Ú..<ã@4„„M Êo±ú ¨Ï§FFMËG››`® 9¯ŽÆð €Oó="þž¦!M¸l«°)Ey_åm­½¥-Ë|j(I~v¤)ü)Í6†O9›fàìS\B#ñŸãµ$áä- ‰ÓíE¦è;%+婾"íÃ÷fÑ?+‚Ò?ØÄ=.nKƒûUPóÇ›±;ŒZøÐh}€Ï}ÇÙÈï€'94P2ç:À,0ß?-U] M6›°"-üº2„ X¸Î¶ÄÞÛìKz¾Ñ—óÖ*a$î)K +×Y[rFÒÁ(PÛ’¢@Û6ôLWóÝ„O½ê©m.Üf(%Íuœ;³_,÷e¾ZìÊtÜĆžª©™ßŒô¼«3$;*NŽM] ¼KÐDmò}cEü½µ°›UŽò]éEº^'j]LOÐÕõ•ìJèPÉË?TðÀV!!´p»ì~{”~o«òéØÀ+\肹,6ç¾<¾ú?3Âå)ãX[»"„¸vØ/çf¼]ìÄxŽòS¨ðqçf6âÌÀ.8ÓQ3ö†ÑÁ뢗™æÔÆÒð_mjB€I™Ú:䇹.\ÀÞ(%ñPCN>3° +öWóÏÀ^@yíŒÓ¾ÏUTì«í8Œ Üc|­"´×¹†‘}iìØÜ +~³$Â7 Ì­ƒgæJî·9€ LÄ”S5>îTMÎ8¸asŒ ™èC,àâ.'JÙ;R„¯UœïºÙŸón¹3×ùHè¶ñtB@Q×ÁœLõ…û£€‡ ¾™ÙÐc=6v¥?ÓiC r9T%~Ÿà2/M?ßõß%'þ½$à_N31glÜž"Ϫ-á±1îÙt[Λ¿—•;rž¦&÷ÝBwQÀ™YÀ:1±(§&Ö>Zm•äyŽ ÃìJbŒÝ\Γ•§½UUeøj9¨c#ub ƒ.¦˜EßfyÌ-1z¾åy•¥|:UÛ|õ¹MMN:PR’¿›~n¤ÿ™¥!u´œÙ.˜ûl7ÄõØÄ*Tpb^¶xÜž­Ë|·6ï¶¯ÆÆM± ç³ååë@­Ìô’C®úýx‚‹µiñ±; +8З¹.›2|ÌŽŽ‡<ÐW0V¥ìì!象™àg‘•B6Ñ€ÞA„.tåºYGP¡Bòùbiýé\q‰¹5ßSWvÖµät’Åú¾ÈZ¬òÐLÈZîÏw±ˆ .v3a/á®áC·GIñûfZþù<¹1D‰\ …îÈ(±@σ” 裤cŽÇà«|ç­!´ïÖ à‹¼OG +ˉ +áw¤ÆÇiù¨9=Á¦¥çœÌp°ûRò¾ +b}XëI~¾%‚}>R–cŽ5u‚E1b¡—µ*¡&o«ˆñ[rL€¥áºÒ“ÿÁP™òX_woÐuçfqCJIšm‡9מ‹(1÷zq‘fêóÜö¥„(}Yö+3ùŽ¥­Àås)wO_ìMuÜ’!¾®‹áŸ7Š‚,ý„蹞Bß±²”ûGzì|ª˜±Ò õ\lI|0Y—üÄ:÷´)Ñ':b⑎™oU22Ö匄mu9nOÇ)°#|—ûrU%1÷Æ*¢_[„ð`»šŽü>[ÂÝSa£öZÚ&E*2žÊ"noA·†Þs 'FRÖÅ4›x¨cÁtÅ…§ã<üJž«¹2á¾¹<õ‘±,æþbsü«s &þÌP‚ŸïÂùëªÒî¯ïóÑ1aW‚ðÝFo A¾lIP^û£ä¸=5¯@ß‚ ¨G†ýº¯$%þôÏUž#pûТ䕾,gK_ò‹mÔ÷y÷Ðr¨ç®¶3‚_çxî+ £¿Oó¯ šw´ø4cèµuˆœ|¨gÀ¿ +µ›¨¹›Ã؈ƒQbÊÕœýï“\ú®šCdg½Ò”ƒCµ<üš¨Ð¶%ãùRøã–âa×!Cþ\àÒ^긜«¨]&Ç].V5[tÐ\;䓾<þAmÖ«2rÐíån¨ïù|eËš¶”£©É=ßò?6iœC91s(ÇféØÈAo´¯¥‚.fÊJ7†é)»€Ÿý>G+ük‰Mû{¹¬ñr†ÇþßóT¬ì% /}YZ‹[ +²Ö%Œ„Ë)n°öøó™Ò²?-5¢¿Ökåg <ÞŽž’¹>L?«äÛ´åµÞA¾ÍÒÑ— ¤üM9<|]<žÀƒ¿[ŠË7]°®àCLõMç–ŠÆïkÅ‚mÀ“—sMWóš¹Û +˜Ïú`¶³M‰ô?7ÒsÎÇYн\àã“NÇm£EÁ;ÃH¿ù®ô³Í‰Î=(/@ûý³\V}2΄ڵ´Ì«¹–û€gY€ùÌ·€¼×…Șm¼9ÚR³6ÖR³©,Ç®I¨Q ˆO“5ÉFèá¿i¸QÏ5¸”ËÉ +Áº¼ +;+ä'Í Ù±+ŒÈÍAjĦ¤«ŒÔð¾n`'?=Àžh)ikCø Ë -é@SŒ¸4ØT›ø¸ õé§6ôûŸŒ_¿œãöL|¢ë¿).ô³©È©‡ùï*ྶÑ|¯é–Øç+¬O‡:ƒŒŒ 1xuã¿!!&l‘⠤̿—8ô‹ VÑŽ4^ÿt¥'ÏЇ€6Ì3ß +õ<Ñ2ó®4Ù‰”².Ê ˜mŠ}µÔ‘ñnÀÕ!3QLø}Œ÷ôp˜šj—ï + ¼†`áÛT¨º$õÑxcÞëÀsM÷ CŒ¯·‡ þ[C¹.{2Èç=9&jMŒ 55å½-Oº x_ë5e¾+×i¶5Çi¶-ßcUXà8†Mÿ>ÍÄ_öü´(p¡6Cu‰]ÏFžé'zBªEvß×"#6‡á~;#…¡ß¦™¨Å>ȧu&übŽO;6SòíjLìæÈm±-ýítsêË]5õl¼œ·;JÏÕVd<¶áÂŽ´Ôì#-&êŸy +ìj]=†½:º1BÏ>¯jY‘R“¦:‹ü–„Ĉ¹Î|¯}>õb\À:ž¨¨\ÒR%øãqíx‚…´ˆa>V*lWUd¤ƒ/¦èù. J.çÊ«,€&ÙUa¢ÿZ¹ê r扖”bÄÛTWÙKÔ,»¹²|WßÚ5ÓK‰˜íF¸~÷ÛµÃ,Wœ8õ}‰Ï=™¦¡Ng™„Ë9ûr¦ºÑP÷”ó“^船ÿµ–4þi).»X`1 Ø”}#9ûhšO¿\(«þc©Nx:Ã¥œÎ16@¯\ÎÕ¶ÿïÌ›¾o×’޵˜°C:xO†ôl莴Àæ$Ä_šK©» +|èòÌEWÿÄPr{³úé€Í2±G€81óq6]%s{„›kjÌ|#"øÞ0–ßÝD†Ø uË£µ”5Ejk˜Ÿ³%a§­ ‹WÞ€ºïÉ¡þVyQº´b‘Ö­ ׶伜ÍARȆ˜2Ó +º:£å²Ù sßíExl‹_V…8¿­a^Á¶¸pO˜i†~= û?ÜèMùp1E+Øôu„žd×ðQ6 ³`e ÿý¦´ÀÝ*Ës_êLqÞ‘çù\LÐó¯f&.K)ƒõM6M ð>!ç3Ô<›–˜¸Ú s[êÎóßS’³6d¬TSÊiWÁH;1²‘{JløŽå7Q—ød¶.îŶ8ß÷PÏE,‹™‰ÆÚ\×å.T왾¸h[ŒðÔ âÈh!7Må±÷Œ•ñϬ2\Ô–k‚ºë*óùršG:Ò‘²,bxÈà-­zèÀTW3Ó‹ «Lzø¬˜&å|šIê±; +‹=Ô&m|>4ÃÑ8ehNû`¬Myi„ùoÁBíj\ÚåŸv9+`Ú#ÑPzs b€·e¸Ä©Æä7;’|ï#;µ¬üSs9[^}6_Q»¦ä‚Vä|ðÚ0?o² â²&„}=P‘@G€—ÞÅGŸM²q/—×]ÍÒ=6Ñá@ýòôä‚axŒM‹²éÈÙvµ"ÁF›H9߸ôc#½àÜÄB}›dc½‚xº=ŒoH© ù¸Ç²òñb‚šÿÿ6kÿXdΧi[¸Ü¿è¤s#ÐÚdøÎ.q¼üvqùõx’…=™ešÉY'3„ÝD/ðK¿- ÊÏgXÄ##²6„ +8ž Cÿž``ÿ³RÝy>]Ue3T2w”Ôø9Âs¾+óUÉë—>Âû_Æø¾¿®õƒÜ.&Š){Jzòú)lKNŒÜ—#|ìRèç] È}±=ò©©6ð÷‹).~÷*g·Ÿ¹ÒO[îÌw;†|ý¿i"è¿ËL²ê£mN};Ó‘ïq *+²ÊK +ýoByk*bïͶ溪ª¹‡ªÖú]…¾)BÝùí©X`›¾¿.§Çk@ŽFA҃ݔ×ñ(9áÌt5™¸?‚ ÙW sý”Ðå^¬çZØi[Šð>Ö3oÄ'žŽ—3wTÔ”-)ÔÝ®)Š=6óŠöUäDK_š³¥7îÝÁ(ØsOMK;2Õ5žO´Jlšb쮲0ð%&îbŽ…Ù#ůI +·†‰1Kø€%1h_ÍÌ>2rP; +bÔ©ƒ=Pc÷ä? ÷>LÖG8ï ƒÜu¤„SC9Ûn¨)±£nj²>o 3•¤ìïfBî…‰”ø¦ø¹Ž‚÷›2ZŽmŒž=Ý +ÜcEúCuØI[•å¶ pñ…–=1Òò–1~ævˆëÒ¨·ÊÊ“ îr–C85ãöGŠâ¾ÏsYÿ¬–Öþ¹PZ± * +×Ö€\lZ.åЊÇãÌÎ0&t´$ꙺ,ôöŽöõE>°.”ì>jô]yqâ;@sC¯kÓ Ã-yŸ-}n€÷>1Ñ +.fKKV„Ø€ÙV˜Ûá(öïù²Êï@Ïè0IV $hGÝÖs kc|ȼ„?ÌϾʚ ø>NCüŸ…Ç;Ñáã/lj9&\º¥7Ûå|–K9Y¨lš,ŠžèÌr:› £Çþ{­¢ãÏ岦³q + ÿÉ)'&fÁŸK¥å6 µÜ‹ðškÍz5Û’úbO‰‹±ë é€ÿ*ú{†C:Ñã2í:xø‹tô®¦(akôq©)ëíæÜߦ'çÙÇx ØßW%VCQìdÂóh²¦ù•Ù?Ö²6ûÄÕ@r¦ÝÀ°ž‹x™j ¤_NpPGz.lGÉJ·3’gÚ¡NÆš¼gú +ÐKmiÆ«Å6ØÛÕyRÝUN:.Ø:LOܦ'Mµd¼P ‚~1TDÞ™xe]˜ãx²‚Ýd[ÂO·+Ÿ2¤÷–8ãÕÑhP/I/¦;£ïëbž/õøi*è;#Å­!Jľ’“}0ÆÛT¤¤Ãÿåb‚dÜ [}¸O¿íJ c/&ËùvS}CÆNÙž»'Ç…Zû +\OÕ¸è¹Ö¸Wã5‘l£è𮪅~šjCžë90“ß§iˆ³qbªM˜jOz<ÓóøêÜ÷Åly‰MWJÜQEíçû\豉ß'9èS3vb æ;@Ÿ”œgã„»™–³­"DÚlj‡cĸ3##ÿbŠƒ?ÐbwFñ;JFÖ‰©¦bcí³>ï¢.Opê/úÿÙ{ïçÆ®,Mð§îÞ.uuרºTF¥”I)%¥÷Éd2é½· ¼÷Þƒ Ko¤Tzä'AÂ{Ð;xïIfVuïþ»÷eíÌÎLìF̱ŒÅäÞ=÷žóï{À{çü³ðò=—X˜6I`n;]¯°ƒ*!5¤á·&±—ž×|ñ–~ü_Þ1ÏýÎ7ïæ ëóºáòÃ=Ôáí!Úó²÷ ñ~X~Vÿç¥'Õ_„çqU)Ÿšµ ÝÙœ¢T-᯦Òþœ[6”0°ºZbÍæXû±Å畟ä +p¿:†8ÑÓ;ò±tomðÉê4£I{ydmŠß—wˇÿ²&½»cg "ÓÝçV—üÖ ¯øÂõuc[7Я{Jº®jûºà–ÈÿmkàùŽG ݵ1Hqe_u`¼éÄÊ»–o£V>ê¿í~G¨Ÿ¨ú]aUþhouä]ÁÃë(Ñ+/a?Dto1}s˜K¾iÀ'”Ø«Q¹6¤¦4§Ílü.Ð-æŸçuÇLƒQÓ@T-Æ%ô\ÄÆ4ì„oq~sY ´q]ÖÎ#øèõq³cÇÎsL¸™ÃoŽuŸˆ.€öfÂ’)/¡¿sßý~m’ÕÕÒÀ§5<ƒ*€xØ~;³øKçwY½„UpÝOš$,ÿ<µäbGxѼ=‰¾˜F”«SÔ}ïø¹ýûuÀÛ·”\„ p<ß4¹>ª±be¡wœB^\Ï"y^ÁnlMvŸŽê(ÍçÀí˜yp i’òR&ˆC#¯mN´ÝuqHI#‡V±~%·ki‚ÙÒ ûÕCü°Z„ +«Xí[S˜ß,æzÂÈî5ˆÓÑÛ³Ä -t][¿4ª&UoŒ÷ž±=,ÿ£ãq÷‘¨F@λïÅœÁøpËï5?}§–b 3nµY#@nk¨-5í3Þ}蘾Å~3Œ8¨8ú¶—ôÀÝØà8ô¬•ðÏt\Šé©­!(WÕC>ÕÍaïkÒ¥µ)zMÂ"â$,LÆ)ä¤|vÌÌBû”ô0'}ÃÀpÈ(å‡5ÄÊà,¦88‹,JêÑÕP;c¶‘ qhÀ;Ák]Ÿd4Xxœsñ8«oaG7_ÁŽ;6ž\{Ótå½—Aÿ·mÙãü¢¿¡ Ô»ÞÀJc&¾ÈúKïõ•·€»ôUeì”>0§¬ J„Ú˜áw€Ï«p¿ÀœÜ˜ã¶n΋z·¤˜ˆAJj%DŸJ_$]]~‹9íq¼ü–pymœQ¾üš_œ•cS& Ôa¡_E­¸|ecœZ²5!hÙš¶oL°ª6'(×·ÆÐ§ãFjcXGoڞƯ¼„UJ*~½ ¾ú÷ËÏ:¾‹ÝgWC±Õòû œI™=¹!¤À\]~ƒ8î~‚9ºúŽ t:æÔÚ(òLZËCÄæÉÕi ¥!4ƒ¼¾ò¼öû­·]?ø&Pç“f20O.÷ÏK£ZvWÒÄêâ½àâ3SrçÆ$ü,àZuIçÍç!ÛÐݵIfmÚ" „4Øë)3±vÏÃÆî8Ù訆Òä›AeŒ”攉 ¸!âLtUœ_Ì鹨¿:oíYGî¥ ràrµ~·®ãß.m!ά¿î=òäBBAmÎèûÙ ­ˆjeÇÖ,­"c•ò"Ðw0ï`'¼Ï¿p?oûaJrõ?M~2¤ ½Óìf×KÚ¸~h mèOè®ÔûªãÇ…¡Òßú¦;Ϥ­Œ¾œ[*šDä¸IÈȹ>^sÛœÇ\/`KÖßuŸX}Ûw:fR2®;q“„Pðº ïƒs1#¡fwÇ””Úð¡|c²ûüâëö£Ð÷»vù`Ö.½Ü쟣¶­ŒÂ¯.¿î=Y°ó¨YŸµ¦¦ÖŸ#O-MsQAÓÀ@Ä*FAŽÄÌR~ÒÙ?˜ñŠÄ~“„kãÔiŸNO · C·RŽ¡8ÔËJÅh[ë¹’µ±IX–qÝ +¨Åtï‹Þï–ޠΥ=²;~5½-¢£·DtÔÆ€ŠÖy’…¾ÃðÞ™X›ç#ýó„’´…ʹøÔŒ‹ƒ¾·‹X34 2iæ¡w—Åý› +bƒþ^÷A43ggI(ÿË*G7’º‚*P—­Ô¶½e¡DýVÆi<úº‡m•ï×ûúßü~DEkx‚ kx!µà §;¬ƒzp»’V ;i3ü*l{žßé›t¯OpßÐÊÖ&¨•Û +v‹÷5ù’÷eïÑ1øyè\^X'!…5DpAØRõSÃ9x¿Ä*· úþ5aà£|󼮕1ÜE×ãÞ/-÷º¿´?€Ù¥@|«ð¨ÖÐÎ)«„7‹ÈPИŽXšÇ\Ä\ € ÎsZC*NG¬Àà.Ç£êß­½ªýÓÆÛº?m¾kø.4‡/ *X-A5¿7 `7GtB\Äáâ›ÆÃãÍßúæàg}³ð³YÜõ¤^D͸‡B÷]ž¢—'-BÊÆ ìüÆtÛ‘ˆ b wumàÏD×÷i³gešÓâÃ^8Þ•ÔS›£ +ø•¼[×`ËVF{Ž-ƒxŒý ÝÓ|\Öý§­Izmº®oq)>¸tæ•¥WÄ ôò°RBL[‡Ö'É7€Ö>Q±à!%» ¬I3Ðáì”mè–_ÓÏØž• ¡>Á[³B¨Ñå gk"RCBOG}Xäsv¼JD‡¯[ë9¹1…+É:å)»€Ó1ZãVOTEªªéíIƒŒ»ãò@ŽU»~iùÒó¬÷èæ ~yñ__3®ÿ!ªÄTƵ„æÈ¡:k`õìØDŒ”‘O©iÍ èú-u?s}yp+®,hæâÓN‰|wyèéîªäæÆ<¾6dà` ^ +~- Òã«—¦g–¦Ðçý€§§ÍûFÝqÅOX k›î¾H¸ï¼B~BKhŒ¨WP«ý +BiÆÊ–ûï«îv}ÑÒ{Þ¯Š +K€o- EqŸ±¡æö¹Çè¥~%µñ/ëC/Þ¯ü7sq“€_ +v×%#ù%‘0ã`"¶U¸’•)ü5¿š…É:†¤mý@gC*rÓö¹!j õf]llÔ$À~Á_žlù1¨!a߯²Quïùˆ +_‘6²{3&.*­gvæ@î½·Éå‡\ž²H@÷”y_¢Ž¯S®„°ˆr€…Î)B} g%pˆûxž6ýiõMËWa%¡" ¤T†”Œ†œUÄØu=ÚqˇR&ªaµhލè¾¹R@)A…¸í!¹<¼@¯x^雡WftBbÁÑæR ê9ݵ”Vˆýó"øö½f{ŽXºø +}bc‚P\`4€÷Õ.½„]{‹<Z T}Þ±1N.Y~9çyÑû}dŽZ“µÉû#F)ksŽV½1E¾Tó`!=à Ï–'h•ŽÈ“ž7¸ @§!¯BsåWí®áõ•œ6ß<½Æ·@­ +(éuÞQü9ß<£.eQ³vÖó¤þówmßù¦ág—G'#jrµè©¥YN“õñT7¢dö.¿îþ~íM×Ѱâ㵕-)=Ÿ3ŒÜIxXïU ¶¶ÄÍRvD+@츰½;i¢·îxxÔ‚»0fèçØ!^ðϰZv܃wsN=0×wvs¼õÛ­É®£+o:Nèª ¨51½˜Ó3i“ˆ–\)¬Â\õÏ¡‹VžÁŽ™ïÔü«çi×1ÿ ¥>¤Í/È5ý°³Ÿ<£W /°ú*R]t-t^pÛõqüÕÅ׈ q3—°1Çïu=ÁœÎ»Ä¼¬S&IšÔ‚ƒŽJép¾©ÖÖÞ6ιûo®¨h­3wùÔ *ÈNÞÊ'ì9¦¶ÑáKÏZ¾Q Vývé-®2f»óf Ä[ÐÀCLä¦mb^Ê!æš"þëš°?k%´lŽwý<«°,HØ™½!-½ZGŸŠÛ¹¹ è…úâ&´‚ûiK±ãqó×Y·ˆ—vó)зQ;6ç7vÙØ8 Iže­"ÞÚ¹<¤áâöVF^g=|~ÜÈìÙœ%–¬N¯mÏÓjvîÖ o•ÍöÍ#k’zÐd袄Wòqqž7r±Y‹ˆ‡beT½9A(~ÓPaK7&»Nĵ¤º„‰‹*½þYVýÆ4ºÈñ¤éó•7GÒfrcÞAißq‘»ÓBÛž—GË9x 1±Q¿7´@oÜš!—xyN8~oÖ(À~Ô'*N»÷Iç1ߺ$aduÇ-\tÌ8$÷/Ü¿µ974à| "ÄÖ«rõ%þ¼é^ã7ž'íß„çYM€—€ZÇiYŸãµš~Æ×ßíú|Ö· %­>4Ok[ –m~ãSö“6ì]™å4®ÍŠážQ vérÄ*£{m [ã_`uub|Â.ïßPpÚ¼c„Kk³´*ßÇßnQ+âj]JOm¼§'²ÀlX‹é$Ô­Y ‡«£¸sè»0éF\ÇmOÓëÖÞ.ÅÕ|XJÇGíqÉû´å›•çÝǃsð31 æ +ÀMdÊÆÅ‚:Òš² +Ii4Ôµ ¢çRÚÀèŠ,°Û7F Åy£€º»|g&bæÑ—ß!NlÏj¢:!mg]ýÃA%­M3R}H=\ñÈÍžˆJDr¿„ÿ¸>A*‡úûgÙíY€ã)³˜í~†:¥hüÓëʧ‹O`e`mZOšÿ¸9*Né¸ÈŒQHÌÙx„]·»(’l/0[_QJ’Ï pø¢0t¾_Ëèjظ‚](5ìfÄÄCû5Œö¸}èQÆ1x;kä R:RM\ƒ¾¾öºï”šÙž2É¥çà-¨‰F.>ãì»ÓÁŠâ&\EÒL¬ó)—×fÈ]IÇÐO€w '\\Þ3ü$e‚3ø*Ï/ÍGŸ4}M9ñÏ·»?ÿ;Ûãªã6¥wã lÔü’d$ë°ò^IÆÅçùp-ÖŸ[¾³>lûb{†T™÷ˆxŠ‘š¯VÆûn¤mLÄž‹Gýà`  ¤>×/]•/™Wsë>ÿ_Rz!.e¤wd,ôޏ_¶6Ö~80¾7.aáaføßž0°:*ô5ßlïÅ£/k…zÀS+ÀúW=Û°5MªÎQëvLB) .tó+ºO쀶ç03Kâ60O*ßšA_ +«9]>¨3äª$ÐÙW‘¡yV£óçîcÛ˜ëI­-çdÂcFð<ضRê¤dŸJŠßçÔ¬¾ ©*>Ûm;™'Tú¦È•~¿guAŒðNˆ{Ö&øÝ1æ›Æ_u=é9²ø~|2lSÖôêu§9 ¼ Öýéx@}{ j16§PE–MŸf©õI£˜’u‰›Pb»5hìEÍ2>t]ñæ$öòò‹öÃ@gªxÝ æ8Q 1¶fX Qµ„˜a6$ÔŒæð<¡bý5¢hõ5úÌÚ(îBTÉëNj%¤­1r©ç—®#Ë/»ÇÔøò¸WQ¡Ë}s½×6§‰¥Aí?j”mÎà®{ž5|š#W†æXÍþ µ6uoiøyØ,¤¯ÏÒ«£f¹8b¹µŽÜZdü­9b¹õQã®gmW:>ykZ‚²þ„?¶öŽ]PH0¾2©Ç5ØR×ÏÝ_Í +ª~óŽVü©ãQ×ùõIZùüHç€WÄtLøÆ(¢(4‹¯ˆêˆ a=¹1 a4E´2nÜ*—oÌÐj6¦ˆ×³n‰,㔈f#¦§£ãZrsTCoJšxØŒçöxÖ5xoÇÕ?²ã !+®ác’>Ö5¢Æ×-½ê>ÒÑ»ÒNsc¶û\T‹©Žè0 I ‹T³ÞŸL:o¿‰Ù¹ô¨…Üœsʇ# Œ&ÏãÖ¯g9Eo(û­~¸üïóÆëö—Mù/a€Y!=YXø)få“¶f)µËoáç­›¾Zz×[VmK[8Èéþò?x^w_Í»y”œ™Þm=¦•–}v¯ûÌß‹›Ï|ryñÀ +B `yXGkŒé©€»J’z6ÐòÄÚ$îòÖ îŠš|=¬`6äìê{¶çfcÓz{XI­ ϳ›Ò2kcJv{ÚÀÅ5ÌΤ…Ș¹¸¨–Õ7°»ƒ*:X#NKB'ÄF‡ +ixÝÞqÜ%ÃÃŽ¯B +jmÎÂÃ&§õ2VÚ$Ú“\7b®Gu˜k&õ´.adÃ6Ð,Ìš˜Z€ +Y]q ±Òþ°ñýnë—@ïtE @{¨%„°¶ŸÓJÉ1ÕÞla"&|­_¿àZ6eá` +ö‘ûqÓ­Û |0>Ô9 àîu¡y̵å×ÍÇÝOÊ…Àzƒz2ò ýäÓñÑP}Z‹œfu†§iµ¡iì5ÿ è$|IB#¡Ät#Ã[´ŠÍQì9óÆÏ÷š?ü¾,©¥·$$´P »‚³‚Þ”ALKê8ÝÛ“ˆ‹ŽG¿·?,ÿCLM‡e#Òv™4¢cu…T|\ÜØ/¼—™6ÒZ"s}ã:jsä`Ì( æ¼7_¼¾2õ ¢–¡¡ˆž /PkÃó`þ´Ìî­IFíê[FiX!ÆlL°ë_¶|¾1ÖñíÚ[ÔÉõQFÅæ¯=2Çé)yˆµ Z™ó)úTL+bƒ˜À¯¿ƒÚ#\ ©éÍI ‘ó +iÛðý˜©_¸ ø$Ð]¬ÌÊ­q Ó‰›3ä~%¾˜2J™;®¡‡»`þâzÔÉö°æãw/Å!°HEïÎ:d9OÿpÖÍgå܃Sv‰ iå².-iá’’ ÆFL„êíù¾ÓY'¾IÒµÍqlÑö4µ#¡ãQß»¥7ÿm•ÍM[Ðõ›Ó”:Ï+Ê÷ êÕ¨ñæÏ¸YMXÍìË;ùò‹~džÙê›úwW¼68Ó3z þÕBçﺎ-½…_öŒâ›WæÙ˜˜EÚŸ±7+£:REäÀŽ]ÊßuHøY«€¸1C(YzÝóíÊ‹ö¯üoûÎ¤ÔØÚ'¿ë‘w½QÆÁÅF× ÏÂNEæÐ£JÜ•¤–Ñœ1r‘)ÏI§'tNÎ.¤åì"ZÒÈêŠhp7ÂZvGH-ÁF´ÜÀü =¦¢RF. 0;¬bµÄu¬Ž”‘‹ÈXD”(ÈwËãÚ/¦¹'ÿÞ2pã?' €ñ,XLËÃ…Ôœ^¿‚ÓêŸtmSÊ\êþ¼ÆÇÅç™I S³f-ã±’vàSGTËhMXu!uû™Ð|ó‘ÍñŽ#  2–~IÚtû±_IkqKQ§ˆ_Xzâ• ]wòŽQ÷;Ë-äñÈÕŒ‘Ö00ÉI3µ>‰>Ô0[c6Ì?…¼ìzÜðgã½ëŸ‚}Ú2fBuʈ+K‚zš·ð ;v™(o—KÃ:v§ãE÷7ú;Uÿ¢¼òžŸ*ÿ°ëä‘ö¼Éî¢Dœ±qPÐõË)5«+¥¦Ö…½§7Þu_ ;PKâzfëžGÈÝóŠ…9›€˜0B×tŸ ,P*#€›çlnÖ&áäl >¶¸J ƒõŽ,«r]LMk ªX­ËãØëîÝç·Ç°¥Y+£wsºû¬çeë·P¯ï9AOP9ÀØšf5.>A^ŽM“+£Ó¤ò•gíǔ³Ÿ®3 ,Nr[¶æ¹1½˜‘üð‘®Í‰ÞëÇ6gW’¶á{ ÛÐí Ž‹I˜„ŸBˆÜžb5$µL\CoÙžî;éŸCž ©ð7Ò ÷Zf{T‰¿ZÀ—­!¯$5ÔVèibÂbf.n¹õÈ¿ ¥8Ÿã..¿EžÙšè=›4‘ZsN&çbfzß:ÀÔµ)䥔]Ä êØ½ë“¨³¾iô¥Ø©.c§Â>¬òø{KÂþ°‘MÛÐPê û>‚<yÛ·ôvÂú°õØâ«®+ àM:±`ù¶Äô¸óÈÒ¶jgå®2f3Wßb¯®>ïø>8Ýñ#ÐLÕi´»2ð(cpW'úNnÍá«¢.-mcc ðKh{Bõ–~v[ºRðˆ¥@‰c&N_ÒÌÆ<iÎÁ¥¤u„¦„Ð5³Ñ 4òÑA£Ù?…»´ô´í°íníwÎçÝ•> çÃz:ô¸ë9¾H}«÷˰QÀ,,ʆ²&!!c`vÆç‰e3 µç²òf.2ká j]P-ÁûýPOA\!‹Òö¾âœ‹Ø¸ãb òv>¹`Š+™mqµ.©bw¦•BTlŽ\»ü¬á½üä¯TŠ©I5Y;ŸTpöËÓ&|mª÷¤óYåïB3íGÓzByÁ‚åmBLÇí C×€<‰€ñD¨‹¾)“3Äëµ*¬aµ§-R6ÐÈì´‰Ž¨hõ‹/àGƒ +RyÆÌÇgÌ"Šé~ׯÌ+Ïøáià«äƱ¦£¾©® jkŽß™ÔËùIàdmŠU8'ï +òn>;çæQ/c‡,¸û òT`Rлô†ß©êoýãÚ Ì•4ÄñÔÔæœƒƒêcÖ& lMŠC +ÒŒ™‡IøhH«&Ñ7ßõ¥4ø ÐEÔ J‚_Ÿ`U{ž ê—ßðÚ"óìÞˆ[¢¿yùwëo›ŽlOÂOEuôŽ˜AÆßž$—…fY]I€TóÑËOQ—&x¥ž“”}é}M¾¼|ðëxˆÍÂuÛýæ/ã*bUÖBïÌ;ð' ãŸ_·ÜküÒû {!i‘ðSN;egÂâZB˜Ó¢øº#|Ôɬu`È7Ïn_|Kº +4!¢Ä^Oè׃óݵ·Š?Û˜ì=ÖPZ"zZ7à^ –ÖPnÄM´Ö”‘Õ tiWÂê”^쟇_JÛ¸¤Å‘ Ë‚JJuÁ!`îyø¬¤–Øä¼×öýêãúCÞ'5)1åï—e÷öVä£Z.lkŠR Ö±9gbö¤ ÌÞ Uµ1Ùvak +SÒPš²N©¼à¼—¼Çæ-¤&6dílLpÒðL‰Òž´qÑq;›r°¦1«/¢!5å½\>àŠ’/ ¹ã¢vTÔš•1rqpÓ“0ò)ÏàìKÈ Lßž#•hõ ®#Rv>Íùv&¡fuìú¹y­½ x!cWÚ€¿‘4¡¯mL÷ü˜õ) dµúŒšŠV·çeãÿmËÙ[¥£³vjçæ$âÜÚ+Äñ˜‚Ù_ B³”êð<¶Ôñ¸ñ µ´ôÓÕ'ßþܳëã6ò€îàcÂZ"¦euä,´–¸¦ûdTÙöCxq)´À¨jEXŸ’ô +£i}¢ûGÍ`ɯ–ŸvMC×ÅñJy;ôkkÞ!fçlBzBC¨Z}[ûûYÅgoð磳2lT5"ŒêÅÄTSçh )5—1 ­„÷M"Îf %¡^ç®wø—¯üNÄQÜÂêMÛX° ¤…€¾ÎéØÈØ¥nëÐusäš^±,iftå]\bÁÃ!ÄôÌŽ¨ŠÛ•5]­!V­½iÿ6¥Å×½wÈĽ„±þyas¼ë{è:¶Õw¤+kcìªRF\žb×{G ³”Jÿ±|ÏÁ%ýuQÈßuñè€'¡yz]\-çd¢å×Ä *yçŸ&¹µŸ.y:kêçå2iÊ*¤¬ÏJœÏ{O% ó$@ë­OÂϬ¼ëùau´ûÇÍ DQÖ"N9)“V17¤¤Ö@8’Õsú¢Šž“o«ÿäy|ãS ‡ŠnnLš… V€®6‰™%¥&¬¡6¦ÌBú΢lxgQ~?´3ˆÍËÛ³¤I£ˆ”4ó°®°á/«â^6ÀKzï¿yE¢]‹éÎiô…µ)âu÷KÀ jmZÇÁìÙ)-ÿîe ÿ}…O›‘ež§Mv?GŠøäˆA@]y>3/«øl”yîŸ\¿´Oؘ÷Ëbù‡¡4efÁ { +ä|Ê®[ÀÚ¬â᛿3ô_þ}L¹ñaYÀß]ÉJlµçuû7)Ÿ¿»yWÿasàyÜ@èÐ +Oý“J\úéôû%5½!aä Àü^ôÍ0šòN!c×Ã%Ž[Ÿ1u\]~qý«'دþns²õ»Ð,áZÁÀCŒXÁÂîË™93¡*cÆ\OéÑÅi+½cuœP´1Æk «nÉòN1ko‰MÈx‰MA]ß9ëOMŸÞ‘ÊòËó +weZTòû´ª+Œ†ø§yÔ¾¼Ô˜±ª‚sØ¢‚ѰK–¼:¡!–-¾ºñדëÿÝ1a`÷@¿A…ίoÌÑ*—Æ—ÖG)%ïílÔÿ¾Ì"äì„æ ºåèÚdÅïÎÚóŠÄ9‡š'”->o<´1Úr8¥d4í%ô¼]Ê êXm)³˜š·ÜË»†îÆL\ôædç‘Õ×-‡Bs¸kY“”½ë‘ßN™ùØ”…Ý[’ çìLT¿¶ü¬ù°J~îëíò³kg¡ÿæ?b¤6î, +ØÖÄy‡TZ;m¤wnOögŸú;ËÝÒÏó&2<è:滵·m_ûgP—Ï€ïZeÜ=»˜P‘«×¦±bz!!k’Ó&fGLK­[í9²ú¶ãðŽƒX¿ë`€\e÷BçÖC€¯ÅT¼ž”–ß—5ì6Qêãz:àý¬Ö»„¿ãÓ îo)Èå-‘2 ;N©0 ^y8¿ŠRýî%ºÀ:Ÿ^㟂\~Ñôùê«îïsvoY:÷ÊÒ!3 }ߪà…MýœÌâàýü¢üVp¦-¦È7‡¾˜4H™iËðÍ(ÐŽ‹ïp—–~éβt(¬î+1 ÜøõÖhïшq1jÀWBóí¤•ë¢œÝšå]·ßf€î«:OlÕþÙõ´ô×@ ^ÉY%¢¥¡_Üo±×&5¿Ùžb·­*þ÷•Ÿß{øìÀlß…±îc›S¨3 PËÁZ‘VÞኖ¡{Œ£Ê 6‰ô/^‰,4\L‡.³=®ü£zèʯ +rosðUÎ+äBçC"³¤:Àn~Ø”=Øuq)y3»ÌGç)êhPÉh+^ä}ÚúõçÔ2Ý.ýÃæhûÉ_eàþÿ †üÿ{ÿ_Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~3dè?ˆ5úb¿:|¸œŽ-CqQŸtU}r¸¤ú{èD E=täo{;jd“$:x±ƒ¢â¾?tìzlŸœ9váâ…3ÇÏ\¸púüéS§Î½xèÂ…KgŸ=sîÜ… g.>wñíÿq§sŸ>yéÂ…ó/\túôùïÁ,•€­Kýû„÷ßÏÚÉC5à2xIpèÔÉCõ‡zûNÂBû·@£¿xñ¹¿ÍÜ™óÇ/œÿÛóºÿöùÙuÿuÿÿñùÇýéÿ÷áÁ뿎â4ŠáQA¢âŠþöçGçþ¯XSö©üäDŽOÂànÔw×êjø¤¼÷ØÇ€ùÛÿÁ³“}îÜß–âÜ¡¾C§OžN‡<%þO½ÐyÓy¼xè,À©‹Ç{öôÆ“Ÿ>üqˆPxºxîôé ŸtUÿ¯1§7e”Pã )¬ävçYí5£;ndtçÔŽ”WUâ+ãzZsÜÌîKÙD̈–Õ³5G( .PªC󌆤ŽÎE””ABk¨¸ŽÛ 5ƒnº»¥àwoNÑ—_ãË·ÆñeÑybY|XžÒ’ªc*Ôå´IHŠnß‹ïü6ˆƒ ‚¾À ½Ú?- +Ï@ °× +zmJ)DdRÖÒjÍÆ³)aàô•˜ëÛsÈóã='bJ|mÆFm+ñ7’:ZkÚÂÅf¬bfRÏh«©uQ5µfs s!¥bví9úû³f.¡åô% "zÖ!æ$Ì\”OA.[‡Ÿ +Lá¯Gf i½˜W Ñy Ñ7.„§Tƒ‚ð,ðgszk´ëÛõ—Ÿ‡&úÎ¥Õ¬öŒV„ÏEäõ Ĺ姇7^ÁŽm¼…Y{Óú]xU|hÎêÄÔ¨ŠÑS³;S>g‘ñÓ6ù@XÛÏ +*edŸ‚ ̲`ËÀ:i¢wå­<؈Y“Ð2ZcjJ]LÃî©õq«=m¢µ­L´ý°1Õu:k¢4ÌÒ®CÌÏÛ$ÜX“ÍiBéö ¹&i”rS/¨¡Ô”Äò(˜£¬ƒGÍyDü„E@ÜVQš9o—IÒfX*kãÓ>5 !ÕøTøŠ„‘ÈØÙè]§õÞ+¿·Ž[pËäW¿)ïâà¡FÝI+£'mc£ò.'ÞS3ZRF)m¾ŸvˆÙy·XXðÊÓ6&a&6¦¬ÄÖ¸‰PQË} +bƒênóyÇc\YD;$K›¡†Ò¸òÍw¸âÀ µ"msé’ISN6m¥µ&´„š´žÚ5?Çc‡µŒ–|ñÆ©,fåãÖ¦ðWÃ󬿴ĈIÊJš¸¨¨šPQáË‚li‚[Ÿ4¤Ìƒƒ! È¿yÄù¸y9cÀ•§õز„žÖÒÐ[ÂZ. ŽIÈ •œœ%ߨ…ý¸ü¤á›¯;~H)ñ¥I5©:¢¥ÖÏÜ,ýgÝHÍŸS \TÎ*aÈKÞg•¿[{ÓðeZ‹/Mk e€5«„™² ¨éÅdž:ý¢]üVÎ! %-B2ˆFÞ=x'ï–§- ŸõÌö˜ŠÙ’T2[s&vOÎÂèÊÛ]93½5¡âteVÚHiIjˆÕy+ˆ3—³ ©Y«ˆ–µIyYÇàHÒ,a…µdL'%§Ì2nÆ%¦ÝFÒ.¤eAœC¹t0áî‰ÞãKãð3yüAviàAÖ#•å½òÛP“¡œS"ÌZØð¬™Ú”4âJó|]ÞElšáWCzäu¨)]Ê* &æÄ ô¶´Ú’wRÚòZG\O¨ðÍ!/%t<\ÁzçÙŽóΛ´GëÉu~5îZ@‹+Iø]ïÐÏ wEY7 5 È:7G¬rÜLnˆÉuQ3™‡šN8yT0‡øœC>˜±É¥›˜Yp±±]å±ó..9c³&FWJ5rç¡âVyÂ"fCÍÏr^ù­¤…ÚVôßšëüa[Ñ}4¢#U»G»‹F°?þj’Ûx8gÿI˜Ã•@͹—ŸôŽ*(Õy‡ˆ•óˆùi;±ñI`í„;©°à13V.f{ŠR²=K«ëyˆ€‰Ù;7RóÙÆ;rEÎ(cïØ£&z÷úXë7[ãßE4\ÀGbÚ!ïšÄ­Y2˜€)&fOÁÂèNë •yä…µ±¾£þyrUÔ$¡oÌR«–^ m½¥\‹Ló;âJz}RCªŠ.nlM¢Ïëî6ÿ~} 5¦`BZf»o¦ï¬¢ûlB­Í9ð”Ñ–¹“ˆ=ZÎ6|'kèO™¤ô¤‘ K›¨­'¨"¨;´Ž¤•Ø0pQi“\Ñ 1Á9awJ'ƧuœßtßIçÏ¥ÿl¹SñÛ펯bSRBHÁïÙž –øÇÈ×Bc¤«)%©Ò7ÙyÔù¤öóÅ×Ý?µ~é~»1éq€ý¾lñú›žó¡YTiÎDªË1×3fR#Ôˆ!êˆ%ÌŽ«¿Ç)ïzD‚´…Þ‘y“qHx;P¬¸eý 3§/mä"v,bÖ«²g§¶í:ñµy¦24Ûy2¡`uçLCƒa ±6<,*8ô=Dü×ÙHÞ)d&Í||Ò,å$_H˜…ĤIBM‚Ç´`¿W:˜[ì¿•óöå\bnÚŧn*‰•PW@ŽÜÉ/õßÛÍ•‡…%ùݼkè>È=FÆLo‹jE)²8aB]j»Ïµð"¨±G¬AÚÊ'¤ÌlxÎIïÍØ59`4ââÆdÇw1£§`»ý<çº7ñq«'¦§w&-,DÒÈCåÝRYÆÅ§§.ï,¼Ê{n½IÚcV%m'5äìäæ‚›…ɺX„¤_ã×’jNßæÀ +ûàÈ_–D¿®²)I £3aä 6z÷® _ø1°`]9×Èã”C*5Ö‘fZOÂBi‹)õ[sˆ"Çã†oÖ_ÊóŽ‡ þ)fÝÚ(æ\p–p=oavçÍÔ¶¼ ˘Y=9›Tµ ÈÓ'iSãZNwZˇg?Ʊ¡"W©ï¶|œew¦€gé8}¥1¢Â–e ´®+Ô”O‹™Ø°mÀc6§HWÓ nBs¬Æ„ŠÝ–ÔÐÒ¨a2¥)eæ Sv)oy _äü¹ç«QÒµåW”kÛ£”’Ø£)4Gº˜"‡fÉeq £%idvyFá§¶ÞQ@~ :.NÛ™°ˆ{-e¦6g,ôv€×°¼`†ELKƒ¸Hå¼]ë{^2a•G4¨¢˜ŽP–0PÒÛczVgXÅí (˜MÁYÈKjup}Ù7Ö{489ŸR±;6Ç‘§6Þá/„f蕛㴑 NÝ꫎ïôwKþÙýKßjVgÎ(aç¬RÞÆ¥*ª wƒw `=JÔ•Õц?oL¶\@U”ê˜j$ÄÃ&ôœž¼UÌÉÙ¥¢g?¨ÙÜŒ…ÊØx¸¤‰Õ1óЋTs¹c¥4œ¸ª´QT4|jGMÄÚú4üLx]¼ øÅûE‰ä=ˆ•ˆå¸ KšEÔ¤QDLš0Ñ[S€ïd\BV~Y~?ãñ2n± ã– ‚¼¸•¶s±q3ˆ½»$‘ï.‰Dy¯›ù³»8ò"ï’É¡~Q ¹fÇÆ§ízø¬¹ãåÑsN2¢¥Ô¥§Šè-P#ÍœYH/X…´Œ™Ñ™2boä¬Ì¾¨7a£#¢à¥-²¼]Ä„šJ%Ì| +Ô¿¸Õ—°rÑ»+ò‡ùE‘(xÑÎÊÐÓü"ÓãËÀ·¥¬”Ö‚‡…i­ËSÄ+«ÓÔ²¼søÁÇf^;s²JsÊÐsn{º÷äö þjÎΧìxe\7³®Á»içí79Ïðã˜[çhß¡üµœ‘Ú²ã±óKò{!Åþˆpn­!ª%–E”È¢œ‰Ú jygÊÄê ¨HåÛóœÎfDÖK(I-³-¡Á•çág7¦pEyvKÔ Ä¯+ˆå®§MÌ€:œ6ƒ˜4 Q5³5¦5@O¬Œé¨ i½Ý?½ºò}*¡â£ö샃Y¨É½\Ö+":jíö4éªoš\âGžå#ø‡qzå³RlR%ÁÇçi5ÑìÕ-€ï«c=G_õ+èטIpÜàÌY€1IârTÕy<¦î>UÃÏG•˜+ ¾¥fõlOãKöÜ‘¸ëbãÀºu…”Øâˆs9®Â]]€ŸžªøùaÇY½Œ×3Z}3ðS+¯Ú¾\yÑòùÊóÖ/|øâ•)lÑéÔ?.Ý'—ïšä¢,ÀŒ¼•Ü4AKXC¨ð« 7BZÀ<>iâ€{Dµ¬[v\Ü8vÞÃ!f\Ú +j*˜ë¬éþ›´upÌ>cá ÒjÛû%gÇËÂäÝ´Ÿ +Wê›a4¼wÝ{¿,¿_¢ö¤Œ½g#ªÞSa%à°:ü¬•Ñ™µq±y§ˆ•wÊÄ)ÛЭôÇFÈC·3€ÄAœFMÔÆˆ‰Öœt°Q9Ÿ–s YïH9åCi»ˆ‘sJ…»‹RÙûeéà³$äç= g@XÎÙ†næì7åÜ÷¦ ž{;KbQ~‘ÏÌ€9ù×–±²Y«€š¶H;¶á{@ F+À¥Ë@ÏT'Í´Ö°–T‘²IùQÖRë²!=ïþ¹à|5Ù]‘ ä9””‡Ö[æs3‹BAÂ4‘säç¼ëÎÛ÷«òG€“ñ¢Fˆ§æ¸¿ãéI8HAcu‹„@Óu¬ìM™1 ¾4¢!–Çäú„•Þ“XqÞ|’uß[¥ü°žøñàð§|ø¯‹yÔHn¶½lú†>÷tá×XÑ{À…V’’"óðY´–´™ƒ˜ÝájhYPçÑyPâV!)¬&×DUIJ$ÀêàžÀÙÓr}Î!äWøìŒmp$cºYñ™q°ÑI3©6xÍÊxçwþYZ]Á%¿™t2ÐY;¾c£Ã@ý‡ç,€«˜Hµq#©&m§´æ=LäÀÉœãÖÓ”uä^Ò +4¡UŠšЫÂjCäJH¯cÄî-Kä)€¯Pì-Iúw¸¨9 GÒ@ÃCMý"zCDE­ñÏâ.økI­%kaõ&Œ †¨u‹„™4°{6'á'mj·=†<åŸÀ^ð<î;‘TsP»N± q&=“5JÙ³\š³Šè=¥.jèÒ‚CÈØ]” ŒŒ®UðÞ¸ð@ÇÀ­ˆ‹´ÔUß…˜_“[eâ2ž¡GiÇà-€ÝœÀfk¨4¤aŒh eÈ9·Óz@ÌR?-±ç‘Ê¡Æìz€ í,1Ðï×(Ýïþ2iÞ9x;纟~€µîŒhÍ13£ÃxæÊtïÑÀ’‡Tð9@ORVZGÊFïʸ¤²¸M@ÚH”w ÜÊ8Ä쬃Í9Ÿw +¨§y)±³Ìgçy@ y·›´1 Ôu' ¸bLO©5¤-8oDOm ( %Q=µ>a²UD‹Œ(q׳V6& öÏyú³n±8ãdãvWÄÒÂâàC¨¾äå· €ûE⌛ƒƒêÌî"¤‘ú²™( ølÎ rÅ#‘úÈH;Xˆ¨ŽÑi£˜•ƒèIµ@[ƒùyœóÜ|ž_‘ÿ”± Qµ5¨¦Ô&-ýò‚m`8®eâ0W ®gÝÕ®Œ™Y]„õô¶šZü*8GªŒ«Ø°¬C@ZxèM ­Îþ¬÷ðÆ(þjÆÊÇØkñZcL!Bf…=«£‚ÆÍIäõãùØÉ¾“I KWƺŽDUØÒ”h@£ç/6!ò<¢!×nÌ¢/ú&É•Yý $ªÀ#*f³ošXš£Ô†gÈ•5½)£awnŽõ±Ü¯ù×·Ès ?zRjrU +ð˜à,þj`ºïTDµ U”œÎ?K*ÍšEÀƒQ ®»3&!1¢Ä•„ç»%5}çò\y΄-Í‚z»ãpŸ°’ZWs{2f>)°oÇÅ#ç´Îº÷TTÍF$M2q`ŽVêgkLÍB¤Ô¬ŽŒ–Ñœ˜”ÐQ[¶ˆË«ãÝG3z5c”0Sz!!mâRzÀ™l|Ò_%Ò÷^1àÆz@OiXÂ% "jÎ=òKÊÂŇ•P]¡·'M|rnY(Ìx%R›”¬["J»n¬–ˆRVRS\ß}:n„Å-„š¤ƒÚ^˜»³ø…wð§‚sl7Ÿî¸n¿Þñr©…%R뎇ø½ ¬!=ï’Bç,¡s“й¼¼[Äüªiõi+­sàuÁͧ¥,,XÔ@®Í2ó±[:PGM€_9ïç\Ãòn!ãdöåÜLDztrp)'ãÓB ‹¥¢Œóþ\h‚¬«_xèðî¸Þœ0ràK¿0 Á–Õèk€‡Ñr¶‘Gõ®O|jpMÌØ…”¼gð>ðYu& GsÞzš÷Ü| 5{Ýü/ïea³P\’È —´ˆ¨)ÀQ¡æª€k –À>‹"AÞ-æ§­b:Ô(Üú¦ïüÄͪßî8†îzïLæ×ʶU„ßµ2c’sv-¨ ܈+8)Ý­‘È‚œXÁ·œ&?ˆ¥w}§üÓ¸’¬QÂÜ£4«Xk“ ¡f§)Pÿ6§a'×Çág‚óÔÚœI&Èš††@Û&ÔDF'¥¥4|8t^)¦Ä^[{Ûð'ÿdÏÑÈ¡$¥ 6&Pç7ßõÍš„ä¤Qˆkå[ãM_-?­ý}d t5«-g‘“zPkT|xhŠ˜ +s-¢è8Ÿoÿ>®ì9“ÒAz‹Ïm¸6ÙwzsUœ·H…»|hkAÆÎÅgì̾„ÙUp‚91³ ãRZ.k¾V’ª·F{¾NÁÏ%TÔ†”ŽÑžÒ³z €ËøäŠÐ…£ˆº4¨/=(ŸNõ(‹ê™íPSô,ÈÐ¥9€A9ÛígÛƒ©ŒsèaÎ=p' 4Ahô¸‰É¹†|¦MbzÚØ/(ÍPð˜£/ã¤w¼LTÞ+àì- <x*Üè ˆé~À—ïîyÿO’Þò;®c[÷¾gŸ“ IvÐIœÄ;vbffËbf–ZR33£,Ébfæf1«»ÕLRËÉ>÷þo­¼ÖðR«{­ª9çó{ªfµ…’#›ÔqÉaÀKWÄuAƒ¤Êqàj¿JHhØ(0Ïy.ð€…ƒŸ¯s©ùdZÄñ꫚¶fÙE;Ó¤8Ÿ†^v²Ìe}qøç¿êh™Eöè‡èDöÂ0ö!`²€K=6³)!V3‰„~½ãP¢“m³EOƒ*.ýH_ÛÒ‰Å5Û)¬ <˜WÇD…WË[Â@Í<¶_Õ2çS7ôô‰ß `¹³úÀœ„V*Z?Bkm+<¾ ŒÓ¡ŒQjn„OEÎ=cxlªî ›ë†ŽÌ’jˆ\RV±uŽœ|lIr6yw†Yä”W×:ƬòÖ‡¦qÔkàqìrBêÎ 6ê`IÀØWUV¯ŒÓ€ßñz.ÍjªOü“”YìSUVØ—Ä4Û» ¤²C:>è:. ãQÁ3‰ †´Í㢳”t—B"Ø¡%:gA\ƒ± j„ìc0V æè?òJ»d›)‹ð¨)}Èg¾…r&È=VHÏ£‡t"¾_+ä.±à›Ãðǻ㈧»“ÄØõNø}×4xb†k{¤Ö’V´>yi­+óWŸŒRä>f½'ëâÞPî-× "òÌyXÍB{ÁsndßÝì.¸}8OÎXï-¾y8Љ8Rr( üaz«ç?NÉÜž„Ý?œGÇ/JÝ$$é8¤?ƒ`›8dÀçè™â‡ëÃùW³”4§†Ë4u–ÜÞí¦$úkêNÀ3„5B摊OòÊéº¶ä †Æw?{¦‘q«lsõÄ5ÏA¸åå?ä3@¬ú5ŒŠœ³6]x÷`“ÔV7;UUÐÖw ذ/<¿WÉ„{–Ät÷bc³GÎÇ´LDÐÈÄM Lx•Iýc“Íùs“ÅôðY‡ }1\‚ NÈ[$uP-öëù¬cPcÿX7„Œ œK‚Ø6 ѼRÞ§± Ø:Y«ºU^íû+&+jì2.Ò£òö¤l´iôÆ#•0ŽŒ<ú‘…‰óih…‡rbZÐÂÀ­2ð£€ïÓ×´Ûô"‡†KuWì7¯ižt«™%€-i!= ãW¨¶9vY@#æõå5¤"lUœ¬qØáUAðÿx·šž¥ºÉ­ªªu©„Ô QRu´RÑr´Z3¬ýçôáU Ï&>kk +Ûˆ¾ñoÀ˜€©~Ä£¯lòë+BfóÌwØ(ä4q¨Ðš–º=ÿ±ì}É«üÃÌŽ´©{}®œ¶+å¡]€#ë:Õ«áJF©¾£øŠWCƒy´´"·–Qâ…ö¥Õ\¢_]Ug[S·¦ÈñaSyÍɪ°*¼Æfø,¬GÉûì2û"%Ã-gÃ÷d˜²!÷òþ(¹ðã2ð?†ò*ÀÙ•èZ"&­ôf^>œÇ$nÏ"bF‘§‚‹uõ>­DâÖ0NæTÐóæ(©›ÃˆÇûSø(M/ìá3öÔþ&ùÄ$„b™qêQ2ö¦ îkš^¹Ú‘ú‹OJε/SwúK–بŠCpˈinà‡mÓ¥×zR/m÷æß1”¾m'¿:ei*ùh¨íŒÏ +ðhN)9ãp©ä©WIôj)ÅÆŽìËÇjJñ-­xñfoñÚ¯dãljL^—qn·‡ƒò*Ûæ|Zà¤ô"HgiiŠúäsŠÊèsöqTìæ,>nF’ö›w¾Ô•æ© ©vÀ)§Cºâ’“Ò·¦K_Zçñ©P3싸SÆÃûµ£~}M›G[^ㆴCÃB;¨éÎÂ!-çn–TðH'fIÉEÒð熰ä ÅoÄg;Uð×À{;dÌÖ.ü]^ØR;2×M5½!sE#¤%ÀW—¸%¯¼*\²OÎÅx—„¤€²0[eKxUXílïÖ +YÀV>ð¯[Ë!mL‘—{I¯ŽU•ОKx= ?8·š… Cl³Æãû€?±)©%[@KJݦ`Âm2RªGËÂå}AyzîÁ«bct7çAÞj:€§@ŽŸA,YØÀK0Ð^)/h’Tï.ð0›“Ì,#5À›|Y$µA‹¤úxUXrD¶ðy¶LÆ7âŠw¡¼Êe¨n³=õê*ë,•í!sM/Äo¬Q1A¥p¥¯øÉj?*Ù¡©Ø–Vr6ç%$›R"8^®ê8¶ð)¥pãW“s øx¯†Rx ¸7XëŒyèºGÅÅÚ/ߟ£¦ ²&¬8ZcQÁ³"—x·‚ó>sªiES¥uò.Ù¦ÉáeI½S! 8BÊ_õN|ϫԧà ÁœÅM²c¿,•sìRVÉÁ)Ñ)§fÏ’ï’Ñó% 4¡4¨á’l +\òö(â¥wQÈ ši]ÄÅXÌöÈÄ ÷’˜êœaÁܳÌb×"»DÚStš~õëÃ)' o²Iù¤Õì+“A¸GX­q¸AŽmÞ¸—¸XŸŽÏqÊùD§RHw+9è0´¡, ¸zu²,º¹ôþwÞ9ñÄTÑäU3A çƒz@þê»`‘CFceÑÏŠøVQŸq%l©öêߺ4µm•øjIõɲ¨êðY@C+r.QÒ¼2v™OÅÅä¢c›È â,`ªîð‚÷ß—a¢¶¦1¯m3Ìì°VRîU“ó:&öÄ\Ù2ˆ„àáöäÔœ}9%{gž¸1‰8”³ËcØ7•ˆ0W÷—ë@m—»õ’KC/±/’RV¦ØPÍ ˜Êk=Úʺ€™/ +˜ÅUA“@plæÐ@À¯O²27&h)G&\üð]ÁåêžÐЏ:õí?2ñØA-ðúÚ†¡hgí×WwúŒ-J·îý(ølQÀ„Iq+ éA ´ã÷ï1 …^“¤Öoªé +š+[|: +Ü6`ä‰ÿXã CÀCÔÖ‰¥ªhrMh¥KÅ,õh€ éeGóã:Ò3´×ê3‹+2>Ö©ä¢÷—ˆ©«£E·íã˜7ž%zˆ#”x'·BÄô?ãíSpч äÔƒ)B`žäÃ9r’hÇöòùVâ¾s‘ë’Órç©i®%F}ž‘½>‚똡¦ÿià2þ\á° Ž>ŠÒŠùÀ»H‹ŒbÛ<5ñHI·Ob^‹ºhÙ~übw õ{“ðçËy—·:³/ÚFJøkky4¨7°#ãXS.:ÖJ„îEr¦{ZwÆ¥xå%/Ã:LêþLîà™žµïýJ ß«à<*ÀS`~NV™Ä«ô‰…N€Öªªr¡_õ¾×§lóiz\rfÉÞDñ½õ~ØmK᥶õ:`W:Õ\ʈ1çÒ‡~¢i( +¯ôhpë"ü¥[ŽŽôÈðñ! ãÑRò]rÀmªÊ*‚‡ƒöfmsÔt¨g[“¹w–?dÜø¨ã±—@½^M}[WßëƒøL_ÓêщDÖrÒÞ(æ ¨I!àý]JÓ©©ªó誛A¼v{€òHŸ–Rp8(l¦–ù´ÈXÛBÆU¿‚”{d,¯óBc£ª®  _Ã"ž,3°a3 áS bvG³~;œÃ%‚¹!ù´,”<_p¹ªÓXíø9¯IÀuh˜È•qÔ3P—YGàï½À‹;”|JÀ,±Ê¥D ˜ðkÖ%PgÔ ´Gß8X¿wÙê¿*šUÑ0AÜ x Ì­WçùtÕ-6•ˆ¿»DN /W4C×Jyã¸õÞá3RÑ‘©ªÃ¦2¤b¶O×0´¿¾&¬9²°iA#›âÕ3Ðv*6hârƒ«|É®›^­ì8Ùª ­–7Œ\ˆ IÇzI%ÐØ¶c‹¸âÈ,®†Ö›Ã«\vÐBA¸µ˜TÀ%è…E +­ðÁQ¥[ÉFøÔ†G-`‚x#A=h> ¶7‡|g[$&{ ¾'»7EMv.°A½1 ôæÄ@Ì9Ò¡“v'S®¯÷%þ¼ÓŸ{Õ q‡Œ–ã†ê˜RH…|ŠWÃFCë'F*òHO-9 â¡Ü õÁ,Rü +}†‘»?ON‡úÏvFs®ïå?ô.R +?šD¯”˜ê•SÜRÀüRÜ=›~Í6îp¼à¶øøž¨IÙ>1Ó§ —yj$ÞE Í©À§­$^°ÏÀ@n೎ tÌ1T#•´|—‚±Õy´,ª ™H> "Ò«BFÔ”ü#=ŸqdU†@ÌO*tKÙ%‡“ô,÷,îšc´øÌ‰˜ïVÑŠ<ª]`|pÎEÒ#+çæÀ¹¥¨(ç|ÉóàÉ€ž‰†ö_½JÌ-%¥Ô\<Äb %^-.Õôͯ#dy´¤Ü´7m¬ph*«]šš—úÃL@WÓ<.¬e"Cj±[F΀xóè%¢€¡²)´>`þ+ž>œ¬ð…'&:*¤Ãgúµè„ ±ð£™Tè×¢’˜$—‚Ï … –Bë}ÐÞ!›P“ }JbVPÇD¿s°XòÒkà ½æŠf§žC°ëùL7Ðß2—ãÖ£âƒzraÀ@/ A½7T6†, +¯–^âÓP +Zb–[ŽKÞ›+{±»€‰ö™E5þ5^4¿Ÿõ[Õ€‡[Õ„–Ë—«ûŽA¬BkyA‹@ä3Ñ'« 2˜ƒŠk•ÐzÆÉ*—õqÅqK[E¿±’æ×‹+íz&Þkd~C/¾_\Zæ VXt¯•µ±˜}+¼ZÕ}¼VÙ X®îhÕÇÕšaÀúÀkq!3ŸwÝ‹ET õxõ¤|‡øI#y²*~„ǼEs©(9Ð:ô1à»c#¨ ¹4˜Ä½¹Òç^µ º×)9{eùÀ5ÏÃ|9x¤%x•°—ö¹¬ë›Ãq—l“ů¼K„œ –…Y.zKÈ éÄp íRjÖÁ6ƾåR’CPó-±MƒÏ\…ÝõI+>ÀÄ^{0{léH<½=”uË/'éÙÛ4ì¡{ ñîêÑ3p©Ö±´Ë¶±Ìûþ%\ö‘–÷©HY¶©b¨Çë†c m[dÀw‡ É9˜ï©’(¿‚>†<®†wË(yО¤GÅDyªw(逩Å—)e,“K>ZØËLbÐD,p©q.9!Õ¯â sl˜k†[æœ'¥úu¥ïŽÀ&lbê{Xáñ÷¥¤TûP5ôø4B¶mkŸÄ%…ÔrØÈ¡{U¤û<ì™u¦è~Üs@#äx•\l@Ç@ùÔÄ<¿žTà×SŠ?®pWåNàYÜj±ÔJ Ob1´¦}®°I >2€q0ÿ«£•+ ¯°ÇëUýKE ´>6óx®±™¬2¬ÒqnEÉkëBÖ5ëBá0þé6&Ù!e¡ƒšºŽccMû‘NÈwÊ…‡26ü`šs0_úÖ­p­jkxK¡®×ø.´!¨ñK¢ ÷ðëX8ÀD¤ äSMl’[EÎôi™˜ãeAÅÇu®0´BAzŒ„ìà2é_!䃬 šše~K³ÒjhEÒÞ¨þc«z"¼.¨ Z8 Ÿ‘E þÿùÀ BýÂQõ6ÊÛüzBnÀ@)9²à—ÁgmNÀ_Ø—ð‰ ­tké…úVªûC+5CeaEÀ¦ûLÔ2¯“ãÒàáÕŠ¶ Y(ñÚÑ\æræs€ï^ªÒêpÀ(€¼€âRr£æx™Ë:2 +Øà™ÀG!zzÙ`^€¯ èÙx(Àû„Wx¢ëâÆ …Çs(Q1Öé²'€ù9!½â/Ý-ǧûättP%©ëª?œÄÀ7—n”=´Ï“²¡þtàO‘^%ðúr!Û£æs›ö£p EELãc=²†6Ç¢˜áœçÀ')éîBºOb +ø‚ýYÔkçâű—óÄ‚GÉAx¤"^@]^Ô•W‡¯A}Ù^A):îØB(˜ìˆ¹:ʉ¾’óÙaŸÐ2Ñ^-qêšk‰’Pƒ±1 +%Кi¨ìAÔ“ÿ]gPBzT’CŠzçùkŸæScCZZ™SEÈëáeºôñîXÞ5û\é3¿–GÞŸcXg™Ù!À—Ë[N,4dPê°žVâ×ÑK<Ðz¯^,qiYx»”’ ¼|ݱQÀ AliàOrhÐñ3'k4Üñ:—ï±âÑU¾?^­¯qyn )ǧ§#|:&ñØL#ÿßu&0%|e2ÿÚÆ$vÆýP&:R^îRTV9åï»Ýª÷@g*5<Ò¦ŒU¼¹@M ˜ê†<€ÜfÐgâWxõå ~cymÐ\Õÿ† ‘e—bc½Z6-¼VÙå[¦ã]&\†K‡Kqª0ñ^ 6Ío†úÃê§Ã›UÇ+’úc·'›•G\Ѹwðþ.hMÌWÐHC¹ðˆž ò„M92PËÂ&&ñÏUóÿ®sx—9l(f]JBÊÞBÙS¿†V í¡¿Á ùlŸ±¢9´RÙZ©îsûö›8Tž ˜…"Ë7àÁ€JÄ;†ž¼Þ®b£œj6 +ÔîG )>à…À‡… ’ª°IR¶%-\ö‘‰‰…ú‚ƒ Æû5µŽV*Z×@yløÐ!RØÂ¡CkÜ|6W´›kz åµa]yUP#`Aë Pÿ’_C†ùTÄ·TJDU}ç¡LDs(E û"áU²1Ç`̃&&É¡¦"ÖGöŒ‘²?jkZCZÎ6‡‹µÎ’€lÍÂC51¼ÌÀ-úÞt 1÷yð¿ÖB‡82óÜ2D„mþb¥7í—®ÂÇa•Htdä2í 7Z!ïØTÕ51¬¯n é,/¸O·’” ü9 '] –€÷þàÖ4ôYà±€Š·†K*ê2.ªro4¦WÕo&Ú£å3ì +Ú­e¡­JJ®UÃ(Ù×Ð wçÉ©'`lO€ 阨 žC /³)PüïÏbwçˆ À¤¸¤´¬##¨oQ9`ø<¯‚… jË«¡½µ€©¦;´\Ù +|#h;3êÍæ$&~µ¿äaØ$® +˜™¸ëLJx•AúÚ›^ã° }hŸK¾öÈ"ެµz,´Z7„ÎŒôˆ¹69!Ó æÉcòö¨Ù~Um‹WÛ8æÑW·@>Ø­q½à¾|f¾À|pÐ$>«¼Ü£¯ð™š½ÆŠ:ŸYÀ÷Y¸ ‡ +³-×2±Áe §2rÞö,#Û¥®i F¡µ·ðFÍXx­¼%¼.ù43p¬Šê‚€ =†ò:§¾Eî_­ó˜Êwå\¬UÅAtø‰™Xpb"—Ìc"?OôWZØÔ°‘VêQ“s îìM!ßXgPo XØÌe‚ùÂ_ñ?(|&qKÏ£»„¡µq¨ïeY ‚ÖsC€e}*>Õ-cÁ<*V™GË#ù ðfÈ †šZ¿ðË„·”Uê”QÛ²0PÏ@ÏÂ…€†@^ä$=hæ2Âk|Ñɺ°:¸Ìç{€7öj˜e~à5N´&˜«j¿žÇ9—õíØ(©ö‚ú·5~±>Prgw¬äàç€Z@wÈY˜ýYJªs©Zâ\”0¼Jð—´ð›SE÷]KäÌ#…óÑ,’¬ æ=8˜&ç{ÕbÞ‘AÈ ƒý¸Ìf„—©ˆÿlÐ n5­ps’–l[dAûïA5½È§ÀŽMó)[KI™~%' 8úØÄ¥ùT´|hŸ)¤÷§àt•u!Ceó±Y\{²Ì¢9•è8¨GpŠ/N 4†Kõh€ß†Î',’3vGÏ÷&Pozl†G…Šö!ŒõC~]M;Ô¯eWP²}€ñÁ8ùõl"´¿ æö—‡ÕTTú48´öy0OÎt€{ ê‰Ùn5&Ω%fBç#‚Z!ûØPQ¸¶&õ8-‹ªŽÀ|ž¬sÀÏÙ§œž¯ï-{ +­Éÿ/ðž¡eð-”â  Ôs×yÂÿl±Xn0éG:úÈÈ"Ÿ¬‰Ž6DïÃ⦣Uq#ˆ‘ò“uIóÇMqËÑOä3s¨Ö%R +ÐãÊ€±²É¥çÓœÚòŠ ¥fÔÇZˆŽ“ûtBVÈ(.?¾Ë«—T¹UÍCã”ר0°H½ÀÃBù\fPV'óníNó±‡òSתt$u€«Þƒ÷«:^5pÙ±…σίøŒâJ‡¦]é3Vwøƒ}ª†¼¼WO):”""Rd¬WM)øcE(ùßuqà ÅoVÿÝô¨ùØÈ&…MÔ’€\àƒü±…Ã:Z78t´R‡0Ïjí0ÈO›ĆǠ¶„Lt´c”lŸ&Æ8©™À¼Pÿ¾_ILsÎc#ç±~«Ô>EN8þ²MàÞž˜xLÀ°¬ ÈàÛPn95Ç­ æ€˜A|\á² u#—šƒqª¸Ð9'RH) ‡T\@Í„C¯³ƒ÷uJÉ™£ÔºDIßš¤Äo‘b­³Ø(¿ŸêX"¦ÊHû³Ä8ûœ»6„}·9ZöäÔ7¨å)9çD'àœhD¼ ŽŽ7'ü¼;AÌu*4—Œ9щEÿY×ÿ±Ê¹BCB}s ‡ìs¨3Õ¯ ¥41 ÿÔÓÿ€Ëÿ×™0b2È—œ#­Ô¯"gû„¬Ã9L¬g‘Qp¬¯ïêS]Õ,'¤{•ø´ŸÐaR½jzI@/䇀@{¢^91ÇБpÖÐÿ³KQüøßØäÃ5|ºO-ù_ðj¸¤#Ÿ¬°:äQHOÈ j)ÀÛsñ~ ñ®O/¯ 4™TèTÁ#¬2ÄÛ#=~4 Ú ZSê×3ÀGÖAu÷d“ÇÆÙ 4gwŠeÀEü¿uQÝÑ_=a+d¢"ü:j©CA/tÖêÛôcóRÀRÙê?(¿‘\èÕ¢’¼j>Ë­ù0ãÔ7 íŽ €Ü:Z­ì­+Üjj±ßÈ&,\:Ô—4T·ùÔbQx¹¢éÈTÑäQŠ8~› > Ô’KC: )€CÃf*êÄÄ&>ª9Y¯Ÿ;Þ®oHZN–9,ð»RŸ–œëÑ2zr¾OKÊ5+×*ãàüúŠæcPSÃqP»LLÜ‘‘\`ŸE¿Ù(»³;Š|º=‚{³Ù‹zìš''»æñ±Nð;û æÍÎpÙ½í«›=9—B*\JHMÉ÷+é…AàÜ2B’GFJñ+©¹!5£Ô5OÏv.ñP•€æ×) æZ fØf sÄd×")Ù1‹¶ÏbßZgЯ­sôôí bÌîê™[ЉvJ±1.×.91å`¡nOùÙØ}ioü½œó(XÐyœONËwJQöù’g~5!óp‰”j›¦$+ùÄ?€=õÙ¯~BIÍsÌ⢧P/³¨W)ó£… ü)›¶p™^³ôpŽ”è•Q2OÛU”œƒÉâýù¿»g¨éA…€ +ê6xß¿ôéO _è“3œseÏqàMŽÓúA=öëYh¿Ž˜m—–¾pËðIA%­Ê‡†KØ›¥¦ºø¤€<!õ£‘‰>ÒЋ*j` ÀÞtZ—>^åóÂÐþžš­7d„À³þ ˜ê» ª… À† N%ÐQ=}l¦cÃ`þÿ°ÐÑ~!Õ6‡|ãT¡¢Ã> í—û<2•×…@[ÊŽ–yò,”ÂC0?6¨‡Ö¼— Ò!¾äx•'ÉEA=!+ #åyÁgûûC¸õ|–ÏTÕ´äýÑ2w¼ÌÀÿ¹Æf8UÔüCÀÒûRfñæ)Σªªóh%•óÔì­䣠‘…~†|—s ŸlžÔ¯åàRVÉö$=õpbpLHÃD:æpÑ>%&. Ä§)i…PéÑryS`¹¼Z— ¯Töƒ1j8XŸŠƒvÊHi{%6GÊl ÃÚgQï ýežOšœ¿Î¡@çqÕP¿æ}ûÆØ\úûV7ú¡}š³=„|è˜ÆD8f黣Ø7ë½EWÌM?m÷äÿî˜Å¾ƒÎ¬Ûå|ÂZ?â±sãW’³Ý ®]‹´ìƒ ü;è¼¢}’š¸3ˆ{îX eîMà#7{wíS„HhmöÄÿÎ`ÙåŽÂË+]e7v‡< øxŸŸ¼3Yöxk´ì¡c‘ï’aãüéñäÕs©NÀ%åUóˆv h=!É!Å&@ßsàóõœûÕ”¼?ÌtdXÇBû B{a> %÷P†ßšF¼t)¨È?WE '&ѯ%å…Ì ŒßDƒ»Tä,+›ÍaüË•vÌýõnÂóê;eeá…í¡ÒGÇ Þ/ãõÓ#EFø¸Dë,9Ñ2Bz³2Œyᚣdƒx@X'ïBZ6æ?+<^X>‰ž±‘S. xå"§TÌ^ï§Ç:øØ½)NÑþ% xà8ë4ü‰u +vÿp±ð¾}þ +úùÁ$»àH_^x* +ðw`$PÿÞ¬w îØÇp¯w÷7zà·ö‡ ;´Øƒ1Vêv?%ÂØ»dª/¼°7„{¹7JŠZ¦Äʪ³ÚŽõHé9Ö|ÈóÈíAøÃÝ!ôsÛ)Ò:JŒ8˜"ÄÚ‹n¨jòÏ‚ZTPs¡<ۀ߅òcµ~c£«øŠg¾ì¥g©ä¥}w0ÇÛçøp0W%öY|ÔæêáV?æñÞ0æy@JË=R²ÊlÐYúiR‚c†œòùíáDÙ£ý¡ü«;ý×¶€ì–ÞÝÇÅ*ê’¿ßêÍ¿V1Q®\ü6ôš¡ÜßF o×+ f”„—y\À¶7ˆ‡”ša_ÀÄlŽÝ9=INØ!Ænô¡ŸŒSRÝ‹\$¨!Q¶)|¤m’µ?‚|²;¿¿ÜYøÛZOÉÍ­nÌ#÷$%åMÀkƒ÷¶Ï“lS˜7cÐ9R̯”]f»1PúH^~vùCñUÛöÅFwÉõõîâ«ë]°›ûCÈç–°«+˜‡ OŠvÇØYúfÌmìòjò`O˜GF…ÎÎgx€þ;f¨©Ûãøw‡ Po•H2ðX^À ÃÖ)Ä3;`û4`øƒaÄ3çä #Ç+å”ù =οÎ& žjš²Ïé³Ï:§1±P÷Ý÷jè Ž8…€|¸Ä*Úƽ25”üj¨Ï?'eœ#Å}jnÌ>çÚa'Ä{¤¸¤ÿ]'•5˜x`öÍ1äcuKÖK[QÄÛöt¶+hàQ*6Ü>CO·ƒø8œ¡¤@ß#²Ú¿kn-½²Ö¸³>HŽöÊù¤€’œ{8‹|ã–aƒZRŽê¹B<ÚèB>ØÆÅÙ§Ðoø³C“@¢7pÏ7û±OVÚó.îô¦ÿblŠþa«¯è¹}–[¶=ÆÌt-rËìsôì­AÜ+ˆ ·{‹nº&‘¯ÝS¨·+­ç·‘O·†ïÆHñöIbìî@Ñ ëìž}¢ä¡} +þØÔ]vwV˜ôÕvoéó5ÅÒz_Þ•íÁÂ›Ö Ä ë$ò¹ äµ}Š{8Mˆß†?vÏóÑîÅJÎÁŒ t½±ÚIz¹Ü†ºmj*¼°ÞUrÝ6Š‹tÍRÒ÷F0/ +6Æ÷—†þbHè;, õ)kpàçâ‚ZÚ­ ä9¥À·É¸/xýjOþUSsÎyscÁeKKño–Øo]¨û`̬c„(÷-ýpœ¿7ˆy²7ˆzlnÍýèío†ºüó;¸Wµ€ê²Kö¡ó΀Ëóè·;£°;kÝ¥÷—Û‹®hêÓ~ž`¼ù§¾.ûÂþþõZgÑ•­þ’Ûº†ìór~Êwr~ú·Æúâ_7{1ÏLíøç3¼ÂgyÙß**òÏ9ÎØf1£è¶1ü[pO7°Owlj‰Kï3_/Yà‘Só÷F1¯ö!›F½Zë)º¦¬ÊøQ_Ÿ{v­q©"ÿª¡ þÚ/ã€q¤çn£ŸZÚ‹¯˜ßç35äœsL⢠+z‘¥ q8A/ñÈjj¬Óìµ^¨Í¸g¦æü‹‹üø¯&É‘_n̽ ®Ï¿Û…‹<½1PüâČͱNäÝÞ-ºµ;Z b+û’¼"îÛÍž¼ß½RRæðóN%e•²Š·FH‘Ë­¥×7»Ko­uü.—$Ò×ežÙ@<0¶"ŸŒòSžØ&ÑI~ ú®¸WIHw,–=ßÌ»²Úšö³®!áÔîHéCMsÞÃirFPÇ£ΑSwú‹®­v¦ŸSÕÆ"?ùûäõOqßôâO­´"nõá^Š/ë‹.¬·£nëŠ/Ípc¾!¼úb¥vß>AK·O²rö'˜©ë=ØG[ýð{šÚ¬™§WÚKoö_ºÀI½è¤ÅŽÓSÖ{ Ï–;0÷ çw:s~]ÿya¯«äÞ^ò¡ñ}Þ/öIÒ½X%Øg¤­tÁ®êk’¿ÕW$~c¨L9e¨N>µÚ™yšŸ|ZS±ÞE‹°4_Þê-¾±Ó_|c³·øš¾©ð¢L”ñ¡!÷×ÝÔ«Ä ï<Ÿä˜bZ'(q;#Ø— Ï­w—Þ4–ÔÔ&žù¼;ÂH]ë#¿µN”cv†9[äˆå¶ÂKºÚœŸtµÙg¤•É?O b¾·N‘Rö@<Œ#Ÿm!î¶]ï-¼ai/¸¢iHùYY÷ãr{Ú…ÃYTtHË£»YÅ{ãØwÐ÷ZXšŠ.mö”ÝÞ4²yäÊÕÝ>ôk×)Þ +bsoýd»·ìŽ¥%÷ÂЙ$ùû\„užØ›åØ” ä-]2LÌàÉEaê× +qîiuUæO2aü·º†ü‹í˜¨S >ï8§í`ßh*sÎLRâ?ÀFÚ‹‰þt˜™ò¹÷|c€ðFßXôëá41Ö6‰‹pNCßýRvwAù•¬<ùGm]Îù)nô)P“3ªD|s7üõ´0æû­¡ìË»ƒY—,M‰§Ö;²/y)-¸ç?ØF0™AÀ›;cØWkÝE×4õI§Õuqß- c¿–Wdži@<ÿ²6çî?wúPoM—g¸qŸÓâ? '}¶(Èüf‚ùùúåg“¢ø¯QoÏþM*H½e1mhÅÞS×fœQT¤œ’JR¾e'|9IŽúç¼ óL1ñl{ñë/¶‡¨±SÜÜŸr|ª¯I;½ÓU|c÷íöÉ'ZIÔW–vÜkeöùZ5úpšSêÛÓíØõÕæü +ME—Õ•Y?)%§-͘G3,دúʨ>>^ïFÝ;¢Æ­vbî[Záw-í°û3ü_èS9ææn÷ÒâL7v©Q;Ä×;C¨G›ý¥·6z‹¯[Z³~UTÇŸ–W$ÿ`j¡<3¶Ÿlö^®vÀo +/› +/)krÏ͉rζ¡"ÿ9@Žùj³ýv{˜©«Ë?»$É85ÅNújQ’ò£ª&õ'ÃûÔ󻣥FEѧ‡¨§g¸pƒi:ð^ʪÔSšº¬Ÿ@=8?ÉŠübþê+~ÆíLq.øæ©Y[=Å·6º€îõÝZn˹ +´öÊfOôyÅ«o6ÇQvµÐ6CJܤk„_YoGß3¾/ù}¥ ~øË[²ªÌóÀ[>8hµ³èîÖ1Bß\vMQ•F×X|y¥—±;ÁH‡8kI’ðõF⡾ vEÿ0õöµö}þuUUÞù•%WÝf´—ÞŸççüª¬.¾¶ÑG‰×T]XéÀ?Ö4 ®Ïó³Nik Λ[P·—Äy©q×?ÑÔîÄEL°¾%Eük‰ÿ•¶:ûŒñCᕃ‰²'96u±.éR;öñ'Êú¢k;£ds'%r^’÷ë)áÇBâ©9fìW£ÄçÿÞè+z¶1”{} åSVTxü®ÌKsìŸ.ðß~aiNýÉÒvÚÜ”ÿ‹¥~k¡*ïÖŒ¨ðšcNˆ÷É8Hç.j¯ö`«vk½³äš©5pyÙkc':cJ”qEÛTtË+'e¹½Ö’uv£=ï7mUÖeÃû¢»Þ9Õ#“0¬SìÜ1~áæ þåzì†éCÞEMuÖeEÂ)MeâwÎJöJ?ì¶±¹ì¦¾žôL^¿¢«‡]45–þnú€½7(Ê;›ýèçÿšb&ÜsLóJíèÓüçŸæ?ýû ÷í¿&(‘ŸY`¿ÏVç_,޽þ/Äó;£¥MsR¾'¿ýdžõ©R’øå=âóqÊë/׺Šî`O?G½ü핸$úX%bîOÀ¯vþ¦­Íþiš™ôEúÍ'‹Âô¹§óžÿößKü¬ß70oÊ3Î)*².«*ÒÏôâ_ÿ ×ÿ´—þö_Ë©úø)—{¨1?ï 㣶@[Jï€Ü¸alÎ>·ÀýbóèÚa7þ¶À:ý÷C;!é2È¥¸•vÔƒ•¶²ë[ý¨½ÈûºFØ•^Ì“ôÂ~Xûª¥ ~è쫽QJêf?þÍî0î%´¦æ—ââr\‚©#ýò,'áçÝl{ˆ±Ò‰yªk*þÝÜR|m³ùp­ýpZœržå”¸K¶1J¢LôöseEô)m]Æùqò»¯T·ßïtÇߨìL{´?…O4÷å_±M‘ÓmÀ[€ŸÔ½‡]&'|ÖúÇ,+ñ+Ûâ±m9Q÷+%ñâ?×{i©êFÔý9aêwó˜o·{Jmõ!› .ó/®t”Þ6´Àî[J9çĤƒ ~Áf扡9û¼¥%ûÂ0-æËªœ{ÿ3ÅKø¹‰óc3&æô&¨3ZàiÔ5EçUÕ™g&™q_Õ<û#þÎ) +®4â~ÅEÝþxœ¬£„DÇ4%Õ|ËþDñCcKÔ·Šò—ŸKE_›»J5`“Î +Þ}·X‡‹Ùåoõ¡ží \ßêιljIû}”rÿSKKÆ5ç-¹£ì±©>çâF/,b¥»$jwõb½=ÿ×Í>ÔCÍûâË줻ŸÔ½ýÙ9ËEmI,«­NúÑP›~f«v˹€‰ÚG¼(/}ò%>áê'†nØëÀÑúÚ¼óæúì³Æú”ÓSôW_Zlj1ŽYr’•w8ÇGîÏŠpëƒØgÀ£^WTgý´È‹ýBW÷õj[Æ/Ö%bÊDEº&|üÞÐ{ÖZ/U×Xtq©2ãÌ?û—!ìB?%ùÒJ+6Ë»PÅ_î¦F)RR5$žÖ7eœµ4ÿ¶ÑIx²T]økUñóµÁ^Vaæ+«óÎi*³Î˜Þçÿ*Äý[_•ñÓz{ñõõ>äIÙËϘ‰÷ÿ­«E&«Eì‘Ò+%×Ö:P€ÏJ¯ÎsS¾SW^èe¦~ÿîúéÿ¦Æþ¶Ü‡é¥Æ|Ù\|ÿ¿Çñ¯ÿ1ˆûÏ%ÿ1F~òùöHécnÉÓo9Ù7?;˜À§¯÷!îš³~V×gžÖ¾Ï9'¯Ì<;ËŠûf‰—øÓf7êEeé›/›‘@©ÉêÚü‹@·N¯æ²´\’W¥þЃ~ðé ýÙ©åÎÜ[ýŒˆŸöp©GÚòû 9mhð=ÉHýÆÔPð«c +õʱ„[hHû‘|õŸær¤¼ªìÆ8-áß ‚„Ók­…WA>¿^ïŽ>œ &ØÇñ1ê†Ì‹Æ¶‚{‚²µFôZæájOÉÝÕ®RÀñˆçÒê¬ÛË]ˆ×ô¤_;Èñç·†IÑóâ쳌¤/§Ù _M2“¾¢¤œfeÜÐv"_•ÄÜþìÙ/ßþŸø›ürÂ}'à9K{ö/¦¦„ÓÆ÷‰çWÛǘ¡¤S³–öø—¿‰òÞ”$“Äþ ªˆyýõçéç“´_nöæ?´ÎàcèQ?È*²®ÕÊ5GN¶NÐÓÕM¨gs’¼ßíS|Ь&ïÒ ñÙ?¥â7_nô¥Ÿ½ù·\˜|j³ýdè  ùêg›]˜Œ€J@ñÊéùÎE|üÁìÉzGòEMùÓO—Û2/ûe|2`ø\E]ÑÅ!r¤¦!ÿü/é«iÖ»/: ¾ì$=ùVQ›tÖД{ÁÔKL¬‚½øv„™zË5Ë';&h) Æ¦Z'›}i7Ö;s®jk“¿_i+º½9ÈM¯CÅ|7WSðÐ6KIÝE=׼Ͻ¶Ò‘}sk äáZwî5umÊm{ÉãAfÜwÊêüë–Nì³~üÛ]à-ì3¬â•!Ìë¹Ê¼«ã¼Œ› óìsŒÜƒiF¶}ž[¶ær­³ðÊÎ`Ù}PŸ.é[Šn¨[‹nË[ Þ¬Žà2F¹ñ•åig6;‹í–½²OÃãÜ‹d˜GJLÛ/}<ÂxóùJ{Ù+÷"«ä`÷v«q±<é›%Qê©EQê÷Sü¨ó›Åojr‹óž|¶ÿû 1ò[UCÎ5+È]^ÖÓµá@>ñéN91o½?ýÊö09~„[äš\ó|ôÆúùÖ.Ú6'@nb÷úËî².¨«RµîI@ÅÅ8¹›c”};ù‰s¡Fr8/"îâ"ìÐYÛ¡Â;Î¥¢¶™Ò'Û .zö6ð½†6ÆÃ{âóÌ}]]Þ%hÍe«ñP×Tð›¹~ÏÒOžª-ºÑGˆÿ\_Srcw€¹7LŒØD?_ë+¼¿5˜Æ3û’¡>ýôn?)i{”_ tüò¢(íÜ’(ãœ\”þÃ^7úµcœ•oîļQÕÃîî qÒFìãfø“OÚÊîý].‰ÿqsñøpŽ™ç˜×"»ì`—àU²°>CEM^Îݧ%,P÷ÖÛÐ÷,Mðë¶!Vîö=mšÿ¾1ëÒî9Ü÷õ%qì·sÜäïe•̤· ¦²\óBŠ_Ë纔\’c©¾Þ#/šºÊ-”§JùN.Žøb­¹h-üÎÁ„·Ò‹{£|Ÿqf­/ÿ:´OâåÁÞ -Á:ÊÍf_šb%ý~8ÆÆγ+E×€g¶‚Ø;½qŽ"žN“AìâãÖû¡ïuB?u.rP²š”ócŒ7ÿÐ7g\Z¬Î½9ÎK¾`jÉ»îžg–i€Q¯(}ñíL9,Å;/a®´\Ò×'ý° xóå8ëé×k=¹×'¯')iËý„H üÙ׳µyöEF‘²!ï·ZÄÓ¢¸_uÍ™— R/Z'0ïT­…FqgfÉ… ¾>ì%>þl†ûò[sgÞïkÃ¥×Jïï£#v†Iñ`^~[馦¹¤U¢IF¦±¥äÖrGé)AÂÏ#Ôˆ/w'PoÕ"®¢›˜[yåk]wé;—ŒQr0AŒÝÁ¾ØF¿0/=Íøa€úò;ðæ³uÅ/û‰Qßo÷a£­SÂÞT9qoŠ[è”ÓKÜj*üPAÉ>Ñóm2>¡›ùƒ¦.ã†kŽƒµÎ +ð®yv‰¼PMη͔¼Ø-zÒs¹'«UýN9¥ps¤à®O]ÓìSUV¹—„ÄýqJÂ6¨@ã¢V'IqÍä×ßkËËî9†*q¶Q^áá#Û#¥lÂî¬Àns²¡³ »sÔìµÞ’;»ýe÷Í-9¿o d^w-aí3ÔL·‚‹Ù™be­ ²Ö‡D¹ª&ômÀݶ{PWZ +9ÆØ^öXÕŽzÔHˆúº”|z³—Ÿ»;ÊËÓ4•^Ÿ$~7ΉþFU›riµ-ÿáVâùá4=ce€øNÙ\tÙ1ǃïŽb#tM‰?Qž}9Éù®÷ô]¸gŸ¯tPS'kqß#"?[”äßsÏ3Ð~%ß+¥äZ§°1æ®ü+¦Î”_ {õ«™e»“¤ë”n_ªä®1RäYgƨï>Ÿ`Ç›äD}ߎ¹÷É(ûÕ)UkÙVJäwÜØŸ6{±±{ÃäD0Ö0Ï"á˜coŒÞÛCÅJÅôÃùrÆæ;ÇÒ‰>úÉF[þ ï .öp½Öx¸Ù|½=Dˆ´Nra;cÔximš¦²;Û£ÔøíQr´cžwÉÅœƒyNÙÚöUYÓbS4 Úæ8ðõî²Ûê÷YçdÕgtÍE7­Ó´L “9 U)ç¦ùq§lÓTØÞ#k½þHÛvÖМûûÚ9zc˜™y0YNÚfdšËînöã@ž¥ÚfˆIÐÃrgþõ¥ªä_¦„ÑßìL`#—¸Ø½YF¡¾ ñÔ6/"[çø¨íQ|”¥#ÿîFOÑÍõ¾‚[»3˜(»’Û·5€~eŸÀ&8fБë½æÅq§‡é¯¾˜`>¨M?ï^àaÝòJñÁ|9Ý:[ͱŠÜŸ $¬uÀoªr¯Ê›aÌÄhS7>"hŠ÷&)+mˆÛ†fäõÍ!|ÄÁ!yŸ¼3…‹ß—s ¼ô{‚Üû_o1hnuÓȾ¬º|kž[Æ<3õÂÙ¤ W´"Áò(%íÍ•Sÿ§õÔ.¯nÚš,e·Míy—Vû2/êÛ’Ï©“êE•¸Zü‘u˜êQUÖ8¤º}N€°Os‹w†I}´Hc7ùÕBÂOKlÔ][e»W”kn&>Zi!>Ýì$GîQ“móľŒ‡ÓÏ øô‘sš[v0ÆÎ·N²aŽ>æ`–•w0CNÙ"¼Ú¤DnsÓ?àbÿ--/þmµ•ød¯—w0ÈÊÞæYºè1Ê*Ø¥•bÔöd9ÞØO]ª.úe¾²ð¦© mã¢2 g ¹ÞUpÇØ’ñ‹±½ø¦}FŒÛèÅ<ÓÔ¥¡Åþ8ÅJ?¿ Ê¿ohDÏTEæ!~«/ŒúÒÐHÌ=ÖVÖAûEû#Åw6Šo­"#ö&ˆ)>9³Ôµ@JÓ6¥]\í`%íL7L=ìd©8ï,¨ãß÷"¿£Ç~?ÅIýM׫ü@x!(Šø¶¦àÕWAE9Ï>Cµ¼äÙö(졹«ðæÖ*Æ*¥#­Rfoš[¸;ɡâÀ1ˇ~h.~´7Tx×ИpZUý£mœ˜îZ¨â;™Q€­öÒ2ó| ×<ÄÎ)ng†»3GŒ·)X«®¶c[Úм=+DoÑRWz‘Ï6°Q¶YF1ôÈ[#˜WkýðG뽘炈¡®+½¦¯+¸`i,¾³ÙCÌvK…LÛaèFG-T¦ßgdº•••u¹dw·1 kÍ¿±X“|IÛšõĹD‡ùÁïö¦h¹Ê¦üK^eUíÐTs;ú¡T’uf»§ìéÞ6ãpGvÈ…TÛ,§ä{c†]¼Ñ]|gQûå'úë)~ÌϪ†Ô«Se±Ðw¼Aq¿9BK·ÎÔr÷gA¾Ž3R,­eׯÈï>]E½Üweg„ õâ['¸%;ýŒÄÍf*`óèåØ uKÖUkÆÕIlôÊ¥ÐÔ‹)ðÈ*ݺšÖ](G$ì­YF¾CÅcúâ*·F$° c%/­+LwšÊ?lz²Öjý(*nk³=‰ÏÚŸ!øtžMÆ@¨Ú ~ßÅÇmçk…{SÕôÍaA®þî!@ųÓ4äÏ2銌G¾6NE_é„ç}ß^œ÷åöƒ¥Š±ÕÉN0´ ,¢Ÿ{áw·'h`ž«û3”õQq‰¥oê ?36S­´±#,Íœ·òJòmqÎë¿õ¢3¿QˆÉ7¶;…ÛÜ$M=íÙ, uÁ$&Þ°Ö×FÅ¥ó ˜»š¤×ÖùºúÕANþà×¼˜¨~ŸAYžôízkÁUÛ;ÓÜ.LU”“n˜ëOŒµì—›„©¶¾Jøf«$G#©ˆœÂSÎÈéø+;-â¼Ý~Þf?úñÁ=Í>#¢Ú[móUë 3_×Ttm^”ò£¥U”¾Ü×H°tTd›™/×;*òÍÍ¢ds#ûÍF;?A îuˆŠ:ß‹,ùA+¢¾;””®ö ­ôß±-2œr&í«ëséêºm2MÙTpSûvø…DÛ<®oFÞ0Ôü²Ñ »±Û‡xi&f8&Øù{ýâ|u ûÉr³$Å>Ô@µUᶺ؉²òì³€SÜZß¡«íÙ\SV¦Ù¹ëÓÌŒÝ9^éá’äY‘í3¼²õü«µ¶Òëö1r¬gžÚ”4#R>íB¥­­¤F¸†[ê\SÊzOÙK{áýÝ1\¾GSÓæÖÔ4»T’ƒYvÉÿÇÑW¿µ‘v§¶ÛîÖ½¥®P¥Þ¥¸»»ÇÝÝHpww‰»àI J‚µ»ûìó½Þä ò9÷èãÝ+ǰqΈ¹>›ýȨ¿æ˜”Ÿ LŠYNÌRt ߉qo§«‘ϧ8ûC4äÝvdée~Aúp`Ÿ„èǘ±QǪÓS~c&G&FžÀ¦ž{÷åûøxcyÆzHÂ-)üj½’`™ /waÖ;1AÌ´™NV¼ˆÕ‡>hEV\«*(:CML: 9^øéÃ1FTèINrÈiläç“ïÞ }úðà&(øÉmPÞW¿cíàôkKí´Ë¼#ª¢®Oq!†n\Èå™ÖªLe;x„‚¸×(¸Ô,½>‚Cùõ#À÷za…7ŠÒ/…|:îwû:èþ¥  Ç÷ŽS’Bÿ"ç?PÕAƒÞ ìÎ’QN j– ôíþÒêœçc„’]µ€³4DM›`”ÝÑÁ÷•\è 5öI΄¼i*=OMþqp*êÅÓã°/gpQ_OcB?ÿ6[ qÉÈH»’ŠpèØÔõiLìÆ$ §W/‚¾?¾sœ÷ãj;*áñ++`¹šåRPÊJ&bÈç­1rêæ.Ö¡`À=:Φ fÍv”¼’sóïh«ï5ôçÊœ„³yŸÞ+þúé.*â,ìó)L\ÐbBØi`Ü'ƒÞ>–âÿò4,:ø|UvÌé~|¼]ÁÁÙ”|òÆ3w¥4Û‘÷iu®k…úÏõBtmÈÓü²‡-Œ³íhÔ V.r³O“’£ÿˆxõôÄÍ?ݶ«gOƒ^¹Êùöê·qNá÷£YnÃß+tžC‰L_èËðW7Ǿ؟£]~¥Y`É(>nG‚Žu©ÈEV¼9FÍ]$ˆ«Á!ü’ø{´”ˆs‚ìØ?‘ß.ä|}s–—ysœ]ÌJ»·Ü‡HþµÌªù¿ÞÀÂ#°O[‰Å—ùœÓäü¬“ùa 7~ '7/î^¼zvýèÁõK ?Nÿºsþ(Ø÷!(;ÀÿXsyÊE?óîžškב‹ CÈý =^ÒÊ ªÄ¿¨GdŸå¥ž¦f%Ÿ,Žø~ì‡ß Vï‚_ù²?½<¹ò½zùòèý³; ³§OBŸ±üíù1anÄŸúFØ[U]Ù“)FÑ-e%üÙ\=BRËøÚNÀߥåÿIL:–J|ÿôåáCЃ‹ç@nÜýxpôÎç*èòÙßA'@ Ð¥ßOã> zïs¬ã‰IjÁÝùväÇåJìò¨®hcÅŒ Hoš‘ÐÛ-(ØÍXùrzÒÉÜÀ/Çbß¼¥û¿å¼÷ž|zuë&è0×.\ývâèÁ¥sÞ¹±r"SÔBÞ¬‹`a,na è­¾à¹pKÆAiû¨ñ£BŒ_=¼ä<>5î$8<è8ø+ò æ{ôúöUÐË›×A—NÿºøûIУ+gAw€ó ~îsª¶<ôª¶±ð¹i +²2ZòÞ4ŠXl¿ï@}çCwÊ®T—ç…ÇÆœ, e~z Š~ùôêæÐÓË—@¾W.]ººüÇŸ Ó'ÿç^ûóþöÖ )/÷‹GÅ¡îù•N ïÑqH€ÿ¨ØáS–ú1¡òzôÛFXÁ5xdØoȰÈãéþïA¯®]=¿rpï(ôÉ`Þ/î]¸ò½~tõÏ?A'ŸÝŽ—øöˆ’qYU‹þ¸:Ä+ØšhÚäÕü ±2JM‘ÖƒŸõ3Š}àÔ‹˜äP`N‚…ûù‚^ܸ +úpÇøàè6°¿ó§NîǸå:èì©ßA~W¯Àá¿Ñóªkr­ö•óèɈÖX•{ <áò$-gq”‘ièÆKªÁOG˜O(5ÅY—Qá'âÞ½>ö8Æ] &¾øÿìêeÐi`-/ñÿÚT|øãÜLgù‹¨,l~ŠSÞ_‰|ÜL*»ÂæÿAÌ-8…LÍ9Y•pâë‹×Ç®_¸ºÌíý+×@Ooß…¿ü|œq±~ ácæÛ¡ì +RžMÅ‚/³‹gF%²®š¬¡ö×*€?0é1Ç¡q‘Ç*¢#¥~½¾wôØ~ø=}|òX·ß9¹ŠzûòXø+߸„ï—ÛI>ãŒüç ý„X]'曬ýZQCþ¨h tÒÊï6` 7ª˜kðœœ3o^|_€>=~ +zpå*è*pž¾f>¿~äsù2èÜog@>g/‚¾Ý +ªø÷gcyö3]-"x¹—³ÜGO0ôò²ÇªÈŸº(PŸÊ²Ì3‚ò³XÅ9TzÚ©Ð7¯AoÞ=âìÍÍk oŸ€ž\óݺptX/Ÿ«7ì¸ +ýDΈ>%æB›%´|³Œ’·8œk/|iR—'˜¹ÊZÌp íCu³0.êDÐk_ÐLJwA±¯^ƒ^ܾ ÌñÐùß~=¾êºrî"èÙ P¤ÿ§ãQoÞž¬Ì‹»>߆ +Ý‘²×GÐá«èà¹6ägC+þÛñ ‹ŠºÇ//¸r,ñóGPœ¿?(òõÐ ŸÛ s'Onýñ07@ïú‚.Ÿ;àÅP¨ïÓcß?\ad¾²K)¥n‡¶;Ëa¸ôLŒ]E+_ÇÅJjË‹ë0o« %× +~|?™òî(áÕK —o‚®¹|å÷Ó@Þæý:èÊŸç@7€q?¿utïÚ-¯Ï}PÎ÷àßЉ‘W•µ¸/K}¬TÓDÏ*«Îw"]¤PM'.¨•Xr ’z2øåcÐËÛ7Aïï?ùó{åÌŸ@^\=rñ™?þ·ÿ·À¾ºóä{û.(?$èxUAü‰nHìëýˆ¨Ÿ Ü*—žŠØÑp‰k¢Jü–¢¦zi’æÀq‹³OCc#OD¿zq,êå`nüA¯îÞýyê7Ðí³ç€ãÞ=»sôXË„wŸ3R/ +!iOg:*Õ >šAFÒH5áÕ¨ú~´šÒgø¶! ·;pŒ§Bå><©ì|QXöŸðÄâKÄìòKý´ºhQuO…±»¸>Þ@ÛUbm€ç³i«…e`IR‰”ö³ÇÛ¨U¤×]tê!êS FÞn@±|ÉÙŸ’è’KQÙg1©éÐ q(II>p˜¿¢––º<€]ê.{³>ˆ +5Ë+©›R!ey¼;;Ò@PÔ‚ùÐÄ‹5œ;c5˜vaMJxŒÍ.»Z—u¦ $ýÔ'¿W §7.±|t÷ò-P¼à)BrÞíVú½ºž—:×IŽÜœ`æ›E|¤iŠŸ`åñ¡IWØ1L°/&xÔmLº_žòT„¸ž{òÓ vú\ðíá+PÐëÇC?O I>^Ÿ{šY^ò`ˆ }=׆ÿn“W’ÌSÌ»„ ó¨xU{zAS#ä™Õ,ÕPMÉ@]C,‹¾[˜žþÇ÷÷ïO„øùƒBßýùÝ÷]úó"(êÝ÷SÐÌò›¤2”o7ƒúqœC \è­¡XÄõµëã¬ïfžfƒ-ÓìŠÕQ~¹q°%oçÆŽTýëÈð{¨¢Ò«9 §’#޾ùäø= v¯€.ž9zv÷(98ö"©øf;³8TE³Hi1)Ó¥ã2=óõã{ ÂV÷œ q]΀ªúqá²^Ztƒð¨ ƒ}À.(ºŠÏȼ„HK»P–”|ñLJ¯¿zöþþ(úkÐñ¸ÀðS¡¿+HI9C—øLׂ—ØíÉj궨g3KÖGi™šfØkC79fiª/ncÇW£‹o"R¢ÎÄ~y:#4øwhZÜù”Ѐ3oݽ{ìw236ûj|Lü…ô˜¸S¤¼’K\(üIó^Qû(âd\Ÿë, ÜŸå×íͳ¸€>ÌÞQp±fuµ`EZEµR¿Wã ×Y™¿‡¿},ôÕPöPnDÜÉÈ/_O½yt ”øþ8<;éLªüá‹2Óχn‰Ø0—Š°é˜¼MYSÓ `Ö¦êÈK㵘¹J„¦ó~„ yÖ‰+~¸ØÖYè`®7·§«ÉV©nó[“¬b›RȲé[eVCUƒYÉ‚oŠ™e&9³"aC–¤lÈüTjv°¢n§‡i;Xq ãü¥‘^Áòh'{n ºØWW¾ÑGŽöHX_vu%mGJÉÛžd”Û§êªìâ®Q³¼®vMÌCmH…´u‘»ØM_îægÍ÷Ö•(º‹TC}\iOa¬®1~”_ÜI¡øU—\l†ÁîOW +RV†°6iC•SÚPç”Us]JzWǸµ<ºSYÉX &ÏtàÃW†˜ùãÈü€ PÖ^,ílÌ•´5¥OÔ5G‰jk#¦ø¬/$ôCySmÚdc]b‡åß+„M÷×—­HªH)n‘0Š7'(©Kw–1lê_óuc»aqº4‰‰W 1“ûë_‡+Ç[Z2ÇZ›3ëðHŸ6FÝ×>A{TƒûVÑLžï¯-Yâæl‹1ÉV¥Ôa¨Øt5Vm}û޶±w×XÓ~x@·–\lš&$-O`"ÄÍ/Åm¤Z"#å,½¼üv—°!¶…Ãþ2PÍÿÖÂf¿h` ßL51‚Çšyelw¶®×iÖîÎ7Œ¹jA÷Ú„UC‡lÊ(9 #„h5Àâfv¸¬‘õÃØ_U4;ÖU¥¨.UtC4ô¤©&j@ ƒ»¸H_ig;lªµ2F5ÀI_œ®D:´<Æß³<þß3lGE‚­"–‡°¡ë#¬“HHÖ”47AÏ4ta¾®¢V'îªÊ¸;@;?ʈ¿jìedh†Gš§»Z +&ÛøÑŠ^aáÂX#Å$iìȹ¸µAX¤\}e}¨àÃÞ ‹{¸Òlpê)à)ǦæW%lðìd%XÒS™:ÕÊžn®‰µ0~Hûê*d£Lõx#zvŒ?7Œ˜ÀÏõÁ?ÛÕ<²IÄAÌwA?nÀ‚~mÔL¸tmâ]}]§MU]i’U·m°9ދז¼«+ù~aWÄB:•lâÖ.É<‰ŠÜG†[¥@®JH™N%¶kVoË™9wÚÖI¾eb__×î™Ö˜Lø–„˜¾4 XCE®L 3­Pt¨¯ä¹”U\§¬ˆ]z±GƒÏqk‰%[Lâ¶ŒVâTÖ7íLÕpRÎ$ã Ö¦9“¨ŠîP +èÖ BªeµÞ‡ ]ê'FmL4±×my´ +¶1^ƒ^á¯ô‘㬓œ +·‚OÛy{ˆUÖê[Dûºú‡‚w¨he;Zy’U²9ÂÊw)+©.•€i•sÐUuµERËÛ‘Õò·ÄÌÒ•1lÄê&Â4MLÙÇÅ[$¬rc/+y¾Sg•ôL»jlZ +ˆÕ4«ŒX`Ã#7óüìRDÂÑ_hSr°)—èÔW·Xu=+ªúÖ5eK÷ª¼½{UZKŸ$FÌ óò–'«›RFÛ@EîëyÌC—ñ¿™¬JoD«‚˜kS31ŽYA €ùÞzè8o=¢}5±èÐ@…;Ô"Ó$=O\ ýÌ*Ž~>Àƒæ,Ë:‡ Ó•óRrÖœˆZ°,bCvuÞºÕõCža㎠+“çž©lÝ›oÕyæª;,rJ! ¹# »4ÀÚ*é`»’‹Ù'¥-vƒßïHi`§¶¶u©ùÃÐ’÷ti¤@E,K¨ð-—º©Ð{¹iO憱0€“F=Fa“G‹Ù•['Ë¿¯Cƒm"R¦GÁ‚íʘàƒ.Ó¥c`6GJ?môç¾^lO¾£«Ky"a…Þ\îÌúº«Ô†9Ôɺ’ -) ëYh’íéB§š†X) ˜àÆ^”TFÝÞC2ŽVÝÖ™š®éƼ³öÖšÜ7òøn‡ àLñê8X×’õr¶'ÿµ}–Ͳ/Ôlã°iY¸]#ãÐ1à»zR‘S‰M·K0 ›ÃeŸÖKÞþ\á7»ÕM}iG¿CÖÚcW5u9•´R»˜lÃEÏ6•¾ÞcÓ´%5M¥~[#øË&Æ¡$å;ø,›¿«¢–»¤ì= îöŒ-Ò=}Ó˜7ög¹L³’˜·%ÆÆmMbb·%„,YS¦ß47êÍÑlU»[ßÐë i;“¸xÓHÉ{óXÅïsíV9:;B)fç¼ßB¦{tµí.Uc§CÑÐl•±óíO׺ ^mB¿mNÓÄÕˆU-2cGTIrˆ¶oà½=­ö´˜,ËxQÀl{ä-‡SàÑU7m+ydM'ô뎜w©*Ù»ªêZ·¢’æ”QKׇáÑ›“à=#·«p½³-f”íˆ)…6)µÔ¥æPÇ@[å8@¾˜‡)nuC§KK†mŒ•Y„ù˜´¯Ææ;$à˜#y4˯öQnWysM¢½…ú ‹¾¦Ýª«kßQW×nIÉÅ !Ý*g”»´lÜÞ ùß A··Æ­[K…yô˜‚£9do•bwU¤‚½Y6Ý&£V¸¼}ÀVxõÿ]dsþ™§œrBæb䣡ì¿=I»uUΙª¶M9ß1Ï«u/׎ÿ\výg…-<šgr\zRÅÒXÎ+—[ä1öŒÂz·¡Rx°XÝÄË ¬ç†qÈðiëCy¯Öû³Ÿ¹5èê©`± ´3ŽOuëhH×"›½·*ìÞ_4YÔä"Qc’ïÂ0²Â5[Óµ>MγNCµ„ÒCƒ·f3 áÃãÖz3¿nºÕ¤‹ˆZ¤o̾«®J¼²Ø‘õÄ©@%Ù$ðÔ=½7SÕjB¤Žò"},R4ìp¹fÔ&ƧíHÐ k“È„ÙAhÔŽ‚P±7Ç©9X­4i…ÕÝôDÓ²ðׇc•àRwåÄ,»»9Vôa¦5ñÑÖdQØÁ“ãømGÁ¨Ø5Vµ¸f꺷UŒE‚KÙ™ªøf›*û´5Rèož„Dü½ÆoµI™ÐùNzöz5g_UÛ|h`S¼}mˆà­~ø—¥ž’Wr~úUC}É Ó(%Ù<Œ ÛžDG®T|Ø(yï˜BD<ðË@,úg™Í?œåW»5tØO`íþZçX…O·ËñN%¹`} µÚWúkNØìÑ×4Ú$\„}Š”±Õ[ñÎ1†Š:T²161!oƆ´c’onô@"êxl—œß1Š€X-°Lb2m22Ø©â’7%5T$éVSEœ¿e’ÃØ–r‘V96Ù*ƒGØdˆhódE°i¬àÛ¶›º:INŸíÁü°ˆ¸Ô½™ºoöm1²3EH±ŒVºsžoæ¼¶)±išÖ¢·ó²¶Å«] +Þ*¥Zåä\Ó"Ô&E'xûÓ®Ÿ‰ëó}ÜNÛÓr¸ûs•õ?Y¬}6ïЀ+<Гʖ»KߨÅtÄÑlÝ€UÁDnN1‹lj!oG!d[dLŸõ‡FÝË£;RTœ·?·g·U†Kqª±™5©ôP_ݼ¯Æ­@&® }Ð7ú™G11zÆÛ f_GÈßÓ’J¼×ùÌ“ø´}#›ükžË7‰À‘f)2eo¹Aè)‘]I*ßÏ{gž.ýá6à‹ö牸ƒ%ß$¦¬Óöf*mj8‚÷¾‹} ‡è0pW…Löh©»\ö %áæ$#ûµÍ{_À$6Ù"†ÆYäèÔm9:ɪDÇ{ô¤Ò½ÙÊ îzÍr.É©æR,ò¡‘T¶¯A§/u¦ÜÄ¿9­àG<Ú×ÊJ~co“x{Ý1#"Å4þ¾Ü œíE¯ÃC6& ¡Û|ŽÇÈĹÔÄB—®²Ú©oó,Tuy–ø ‹Àë,¿Æ¦faûQÁ91×Ûuk½§á1vÕ<ú®Ž‰÷íGËÕã?W¹uN ¹Ä¡"—ìÍ·èÆú¾M) ²-%çÿ³L!ýw™„ûï2•ò+¼æÿ[áÔ™%4H 2ôf4ìî/¿ú' Ÿ]S;ƒ9ÏV›Ó|æj3n¯µ½6¢"ø™O¸Ÿ.9GÈ9²JÒO5{¨Áx +O²Š‹¾šGÒžüm €½xkWS`¿–ØU» +Ô"F'˜Å˜x» +“äVa3]RtÖæ02|k˜WºÙK˲ã]“¤ë:l«d›Þ¡£LýÅoV:3î™ÇÀ619k­—혠•lMRVFa+ýذqV¾sšYêTÐa19Û›{úÆ#@×ì騀W$¤š¦p ë¨0ó4ˆeЭç0ÍA±©„·¶ªúPC*>T#ãÝòÒ€íIpàæìûæ4`[B)0´£ƒ¬R>eW[]ëRÓ!¯Þþ]btâ\?" zk¹‘w`¬nuªêB®M‹ø?Â*††:nqë´4Á(å—…\‘ C÷fêûúªº@;Ù¼=U&a!æ)h˜CC|)e}l™ çèk;¯çѹ. iaRÖûÁ_j¡y ?€‹¿´ÚQúŸ¥š¡6…ÀNCÙ-p]úò$`¶³Èßm¤¡ Âæ )½Ì4FHùÏ’°ýŸeaû¿«ü–ÿ¬q[Ü:TöêHù‡¹Þ +ÿÍQ\ôÆ(:Ä­dÂôÂ*’Gu«XH‡X¿IèmmÊ­Q\Ø¥õ|€5¨qvÆc¹0ñ±]A(9šc1ÿZâçÙL»š‰Ü˜¦9´Õ-{³µ=ÛÓøìùöÜ'KíyÝ2À§Í¿4¤Šíðwcu -æÊjoy쑌tÈ a¦Qp€… 5fWñI»3LžÛHÄ{û“ü à®È?·žË=š'Áœz:ƪ$¸Cï˜ø£E6ëç‹æVJ;ñÁ× ]ÌŸ‹âŸó^ì¦@×' ¾ØµÐx‡žt`Äý½TÙîÒ²¨€aìÎ4Šê*¡SÉ„ìªh{jJéÎ8`GÆÁjšË?,4#Â~*…<„^²;IHuŽab×Û‹|m@,Ú'ˆ©+ýÐïm¸°óì„W—íßZ§)ùÐo+ù~‹y~³]÷¾ÿ×È㮉°yýÜØ»Ëeñ-W÷ÌrØ@Þ;€Y,ú0AÿqÑ{?º ù÷ÍÇÒ±bæJŸÏÔdß5TeÞÑ Ro‰—-%¬ÄtE+$$7ÔïÏ^Xì3ë$µdGÂB; 讂\°3 [êInž( pké»”°‹îT‘Ší2t®½§†E;åà°ÕÁ¼O+ÝÅŸ\2&ΩièÙ–ÓÝ‚N8Pâ2Ý2b‘]†Is(p)Û"tÔæ(*DÛ˜÷pu¯n-‹[ì*þâ’QòÍcˆ[ýeo·½ç™Æ%¨È¥{ŠW_³ <ÆOÀ+xëžlO!"~¿xïµi|²¡ˆµ Æ,¦¢6§‰yV@×îYD‡‚T¸#Æf8däRÛ4)Ã:‰ø:Ú)¡–yï uk<·¡¶Í=#¨²ˆñ‰æI\ÂZ䓊{Ñ5ŠL>ÒVVí˜äPQÊ­bZÙ>àevå,䞊ß#“M"TÚŽŒ\p`Ôü×[3wAÐüsŽÍðH¥N8Ì"*ÿ¶9ZþÁ<´LÀ‚¬“èÇ4!cgm“²vs³É¹¦1DÌf?8Ô¥açLjy¸ÌÏçç»Ñ?ë&ögMNj•¡Í"B +€G€~kâ²9MØçnMóMÀØ yï UYÏLÏ+ÍùoÌC°hë4!k©òÕ*Åå-òê—t·[àP!,ÒÂ@³8÷Ëá,¦ð¯%:qGAÊ™é*ùèíáš©¬Ù´ýᢰõ犠Õc$”9U¨Õþ¢7ƶœç.-“åÖñFußH#ÙÔÈá"ùs‘Œ|pÑÖäÇBGñkÓ4>u~Ÿ¦ka¥[Å­Í.Em¥GÃ%îÉÉyv9¥h{cŸ xk -¨pÛ>yOD+\k+~aê-ö_lÏ{!åG_‘s#Ï«2߬âS´-åï[Àþ[c¤Ó$£l{Šñùö—VX¹5‰ÍU%?]í%|hbuGêÅ@óŒÂ#ä‚T¿Ù¦âªÆÒW̬×MèDS1JÃͽ­d¥\’3’/뙇eÞ±M ÂM#äô>v΋·7³’>ßrŠÙX³˜^ƒF›&ʺS[b}v¦Êƒ—‡Ê~(„ILÑ_€îÙUÃãmSŸLé~ËQ·ÔÂïçWÚ²ŸïŠ(E–ix¡ñÍ{ó‘š…>Pñh611kk¼9ÿÄJôz_Ù[QU¶>ÍÿÏA\ÈM7àÁׇÐá+í/6:³_Z‡‹ý7û³^®ô&ûíkp» +|gëâÞ.!lâݳؒýE2Úp—]M…ë:Jü—±= {ø “˜”½8€ ÞGGZF ë}¥r~ÒCmÆS‡ˆšë4Ë®®²Æmäó€XÏ_D.6<š«Jºæ‡˜ÊÃ6‹>¹€Ÿ­ª´K©Ðå®’ïæ¡Š¥î|¿¹®Üç6©·¯Tu÷ጰyÏ[—j®²ö`–ŽóöÿÝž†oOÂCl"È·gxt{¸ü£u`›¢åíÿ¯w=µÂ)älBVú!3ÝðÀrÊëõ*Öe¨m·ª˜è5`üÛ€Wpªè£ n¦¶{}³6ŽKv¨»¶¦~m’–§®/û6S_úÙ:‚^ë.~·=Žð$z¹¿â“e +´g¤à4åù™úK>YeØ”žš´ÐÔ¿"ãkÚír.Ö*e‚?mŒÀBVûË>o •ÜSsY;>À ô=- u4Ïáÿ‹1[K_Ï6ä<˜©Ë}nfæ,tR¢ä¬¼Ûæ~Àã÷c£L}ðok]å¯ 9÷¥•©×Çè ç[!¿-wà -cBìBä°ö¾¦1HˆC‚/rˆÎ‘³—:Kýçëòüödd´·§ÙrÖ3%/òœœ{~±1û¹u³ðý‚T°5† ×5<Úì‡ZÇpñÛ#ø¸Í!BÌZ/âëz7ü“Ù{½®õÙXƒø8IÍõ3V—|Üç@Äüœ»“İ3nÔ%ûxÙçÑÒ/Û#ÅGZ +²Ÿä‹Mð='âd‡ê9œÉâoúÂP¾(l¶;á¹±%Ìg±3ûñö$.}c¿ÜŒ_Í¡;4Õ-`®V: ýF©‘çª ßWñîÙ¦ ¹õ°ˆG혰»j¶pmŸ¨<ÐqÓ¯ê¸I—&ÉßÏö£ü~ÓÕ„Üâ¶9FË[ïÅFnòlb:Ê>Kv‰áQ¿ dÈž†ôh¹´=—õsÀ_5¥lOG(Ú×K< +|ºðYÖ¡ÒOËu©·7ÛÓïïI‘qÖIVÙr*dkfÂÄX&Ðq›ƒ˜ðõØmUæ³Å¶Òï âÅs»†…Û7rhnz åÑm +&Ì©¤‚Œü*—V(ØqÊwÔu VE%}gššíáWº +Þ,µgûÙ'¡!Nºµ,æþ\«Ö5+¬uÏW6ºç*[]€Ku4¤y +è†øm1ooVÐàsHÖ)lŒyñÃP—óÔû¬Ë0+ö>Å÷7}}A„yg¨NñYlÉ|¾5PúYĽ>Í‹»h¬Í¸s(£¡ö•µÛ"|’àW/nLBö§P‰Þœø9Çá,b´u%϶'9³lêÆ.z­úq¥£äÕ\mÖ“õ®â·Ëƒ¨àAvúJ‹»brc>ßœ}O[qÛP—ûH+L¿­«J÷YjËøßò•ALäB ÈAÐ"Üi|Žy²Ø‘õhùýô41üŽK„-qiù¬íIJ¦GF-;Ô°‰G€fr){¤ìÓ|SÂíAü·Óóåþ ï µÅOw†ùy}½uŠ^°Ôý0ŒIü“žøÄOÿðÛ$!)nB‡6B#Ï-µ”…þ£ç2œ€G6Öæ¿ÒUg¾± åÎ4e=&eÞŸmE&íëÈàÙ¦„›+=é/íRHôæXI€i¸4Ø#£AÝ€'–×ä<qRŸx4lίÅêÞ}=½1ÿ¶ÞûfDF©è—”%%Þ•³²>ÚGy¨ùVØ—irÊÕ1tâE1%ë–Š›~g¾!ûÕF,am”œ•öåîqBÂÇ[›}dÔžNPµÖ—ñÌ ˆ¼8SwÅ4Zà4Ë ïjÙ¬FòûFè×kÿ·Éïðèð¥ÛÃÅïªRo(IQge¤°?WÓJ ÙÆvHLÖ×û'øEO½Âui¨Õî¢×~Ìåæ’×ˆYA7=Z2Âeh^¦dmMbÒÿšÔüÔs™É¶©²ï;ãÅÿûÐ@ŽTÒ·¦ù–IrꮜV²ÚQòNÇO¼¥dÄ\A|95}ršrsk¬4éßMnË03êé|gî÷#wäõ¡‘Í90û™*ÿ!c…œŸkI÷uë¨0§†…±H¨ëø8»’ñè˜oÍõfpù€–ØS"SD†]/;X®ØçÖm«‰ù€o.ßôµY„Jrj09s ¼MÍ€Z¤Ô§ZP¹:Ì€ïëøo?<œ³ŽÓsÌ#¸èÅöb_?÷Áö¹À4„ŒÐV&Þš©N¼ã­… æDÞ^4†mº¯ç°¶ÄLðÊ 1Ú{ï·GÅDÉ_ dä¯E +ñ`•»1ZôÖ4ŠŒØU1PKc°C³·Ï9a›ä¡êÌÆ!y„•þXÆÍzf¡îŒàbš +Ÿ¯¶½¶ŽA‚µµi÷å¼øk‹mÅïŽt•Uæ xøLKγùÎBÿ¹¶"ÿ¥æ’;€ÞÚSb3·&°±[Ãä´¿fªÛÿ™¶¸TÔÒ™¶¼Ç m™÷›ÓïzÉ×:ELÛÆÅꪋmtaB]zéÖ0ùÝi…07è@I)14$û4–½=Aйš@¾ûÃÒ—ýÆ>Ë:XÐrßòóo-wA¾[F)9–QÜ1Ž‹uŒ â6º ŠÊ¿†¢/¿ËxÙßwÅ\ŽSL)Vò".ékÒž¯÷”üœ!!öu,‚MNËšò¿Ž0cŸy5—]NÈÝCFšñ€¾Š0õ:¦«ä•APè7Nˆ¿ÁN|sröüßF¥K†ÏXï-z¹5XüÉ:Lr«àÉÿnЙž@ÓŒ "–©/Ôï«éó`ÎÛµžÄ;¦¡¼×›Cùo LºCÅ%›'(é) bÓ +;Àgx©ŸŽuU„žž †]XiÍ|}  ü5ÏÍ3´´ÇÇ¥ü¸¯?g©x— +½Ú_üÁ­E§ïˆ Ñú†L@ßJÿôÓ¶”KT6T¼ZÁ'8fÆ=KÍÚ¿–X×TyÀz[ŠÏrkŠÏ|KÊC‡ +œ¼«Å­–}µkqEžåšáŸ«ÿ«—\é­ ¾g !ì*r¡À+·š…¥f?<˜áq´l솃wˆÅ–1TèVOÞ3Ko©ÿžœVnF‡nv!¾ÙDZ N1:Ðþ¶±âÖI@Ãʈ9«S”ÌÍ)Z®SÅBÙ”¸ —žàД{·==8Æ£‚&i@/’Dõé~2~~о¦eøÐ¦ÎZÆ AÚªÔ[ +VüU ¯à™®M/øøG<â¡sœ ŸiÌ1ˆ ücŒpN#Œ½6I?7E;¿ÑUðÓÀ㯀?mŽ¢¶% ¨UÌíJ »ÒŠPóxÞG}}ÒÝ­dد™ª¦##Ÿo•Z¬üe{ •à˜Ä¦Ø&*FÇ›†àßÿW'lí}fa©»üíÖ>iyˆœ,áæûHè©W¤´Ôë +Nž_&úÚ)îÆr8x¡£ü‹‚ŸrCÄL~8‚O|¾ÒXðå' ~éèˆ=-=ÓWúYÕòúׇ÷k‘[mpes àÍæPñӠçÊ~γٻ::j[ŒOs*)e~ÕÎ^øÕ1Q¾3Z¹Ú™÷QÊ :ïUdz^ïËµÞ ŽAðöÚÓ’ÊþYü_ßœz»ŒR®iÈ{¸-¡£m3mÚÝùµ˜WÇ$ˆçÜWÛÃ¥ß]R\ÞÿÛ¢Ð~±ù.4îp‰U½·R;y0GÃÎZÔH…:.Å©ÄgîÜdãótU™Ï7¥Äes™¿y‚X¼¯°Ì£èÈå–´;[=™ÍoRïY†‘1.-¹xœÍáŠÏŽ)d,0O™v¥øå6°ðÿûíZO…»Žsê¨h§àFÀþ½XÕäyð9q±¿â«[IÆÍÖtÂ# oveĬ1Tøf/üÛJ&ÈØ†þ*âg<˜ë* Ý#$ŒSÎ`¼Ïû§=\lBüØ gïŒ ve¤BoŸ˜•aDЀ—v-—j“ò¶'²^,´G^ÓÖ†^œ¢;ã’`Ó÷ €ß±©K=àÏoz,s+ØÈ}5&Õ2Vüvc ø•uöÝ4Š ŸâäúLó³®SK6Ä\˜º¾ôy?*ì¦Â¯'ê ƒNP|ÉØq÷6ŒÀºZùòÂZ76Þ!¢y$øTûxyÀ\Kò³iÖÛÔ ó»jpâW+[½ý+ve¨¤õžâ7ý¥ïÜJlÖÑ<“¾¿Àbz½³UŠN4 dWMôøãZoŇÕ^È)LŠM‚O[ÃF©k‹žM b.ìŒ@b÷ô¤ +Ucâ}Emø%}KƳ^\øÝDèm€ ¢‰ÓwÁâ᡾¬´çýw•ÉÙ×c ¶'KƒLã¹oíb@h)oOs‹˜V`‚ÿÎ!Û­âÓL㈰Å΂§sÍù¦h)×+3¿žm«ºiî/‹\ì+ýÊÈûz}kWäVQ¡«}%ŸçÚ žÎ´å<˜ï̸kú5Ëa»u|öæ$5Ë© gùµ/ñë<R©±>ó±’•v}¶!÷Ñö&vGÌ,1´Â?¸\ +°&Ô•ö\¿¦‚WgºÊÞŸ‚W1c/ÚÇ¡1ÿ·Ái6É¡¥‚ü×çLý˜ô_Æš¶_F&ù§s¨‡¥˜F³Þ›c|fZb®ÿZ¨ltÎ4oË|ó$9ûhFØv¨c’~˜=%¹È%®ßèKµ=^ø×¯ÁªÖšEl¤ÇXYµ?Ï$ï*ðYÀ››‡À}Ȱë‚Ô×gvÔ<Úú!Ñ®$—Øå4ïs:Aë@,mö”¼ÝèÌz´Ñ–úÐ>ŽHò^ÃQ5>Y¢dîˆYðÍqtôÖ8:js lš„[¨8§žßÕÕwy Mc}ÿá\]ÿѯò×<—¼òÜÀ8=³€–TâÓ-rj‘MUÉÜE{ýÉ·¹Æ²ó %O5üÔ›K­ùŸLð˜¹ÎŠ·³-„À~aéZ¯ t}ˆU°6BˆÝôàÊøÛâ@î+ŽX`8pmŠš»#¦¹ä¦]Á„nMaãl2T,€]!Ï,ED›&ÐÉÞ^«N5ëP°.ßjÂÛ«ëp†6OÂÂfÚ +Ÿ,÷"LÓŒŠõ)vÙl+%l¾1S‰z-%çܘ &^– 3Ÿ+r^tà¢Ï‹Ù-£äÌùö’w†šä{–⯠­Y/fê“î›3_ÌÀ“Ü:lÖÚ0"dc ³¯ç1öôLìá,‹º?à º¿l‘!æºrž[¥àÈ9)Ï:Á,÷ÈÛ†÷5mÓÀ¹ VJý—û³éânöB>\^í-  #Za—[ŠÞîkÙD·šMt*é’Ê,bXâ|OÉ;eeÖýæ¼=8Y|“àV¯>Ö±¨¿Œµ]?Í|Ç4†Š\í+õ·Š½÷~ñúfÄwÓ$1sðßn%½Â#b‚]ô2Ë &NÄ»ÝOˆºí1Ñ+ýèD ?å–eà!roŽE;\d1üÛÕUr6ÆÉ9vµ=Å(ð¨ÉEV YH{6Û”ötk¸8àïEȧF·‘Éìg§¿oÃ'¿8Z¨9˜©¬ÙSÑ*,ÃÐoóu÷U¼hŸõþ¼oÿ¬pgz !"AY°][Û}°R;a“PòVzaߟú~¥³«¢Â\³lºÛ[ï]G.ÝCGš†1æqbò’·ÎRCºÏBSÊ=;äòlCÊýµ.È;Ç$6×o­õC‚œ2|ÎÑ ¾ôhŽP¶7Oúµ<ŽGÏì+…ûaíÏùúQo¼Ÿs\ÞÞ aÓ z\¶ECÈÒô!t’no“³¶ˆ jêõ†<ÿãuY¯OHˆa—¶: _ZƉIú>b\31ýa7)üæÚ,Ø)å`wü®Ÿ³§ÇænË_Ð ÚšfB-’jÞl)vqkšÆg8@^èá -Ëþžçp!0FŠ[+àîk;÷Âj‰w(0é–©âóTIˆu’”e±Ë×GÈIbvéƒnTæãvpô­Îòð³­àÐKõÅA†pQ×g„÷ìc”ô©ªÿFTÔ••^B¶MT‰ÛÄDn–}vHË-“¯wµˆd—† 1‹iˆý…ê^‡žRáÔò]dªCƒÎ±©é¸µk`37E˜¸Í!ïõQ\¡± ‘af—[§¼ãA'8¦0 æxÐR7"@$È}Â+üzaµ±>„\ìªð·L cVûá!s]¹¯VGоl‹1@>âµíà’º_€ó¹¿–«z½õ"5„B“·¶ä,Ì4¶Hˆys=È` NŸìêØì=#—c•bSçÚ2KYñWD´¤‹mÐ/çM)/lrrÙ03óE"üê Ýì ?ø÷Ú逼³Qëãä4“˜Y.–=_éÃ&íüí­¡îQ3`[ƒ°o]S%5â\ìýECkÑÇzTÜýïO®€Œm9ÿ,vIAðjOÊ MmúCvæëßx™¾§M¹Ÿÿ»Á©ßQ +6'áa€¿â–Ëü5Ïáý³J§ÿ½Œ)_N ZîÉü¼<ƃܟá°ZÑ¥eã÷4lÊ¡’EþwžŠÿï* y8‡.÷•}YïÇÇØÊpjj›šJ®K'¨ñè+N%‡d›Â牴«Â¤ÛE°8ópÅWó<ÐÙou5æk½µæ +ü´¼¤û+ÍÙ¾æ^ð‡nTØ?ñ~æëïË]åAGîç±bπΰ:Ö.ÇeºŸá8Ã¥fa~ÎÔvyì##—±ï=Ö ±Ä è>³’V¢ëÀ…ŽRóŸÍµÂ‚¦Ø9/û¡1¤ô¬Ï +VÆÛùZ@Ë—~rŠ1I —šp1W{‰_ÏÙÄøÜM•À)ç­ï}–Ðï–)LÜú2l[„O]ÂÅ+Ê^mNPJwu‚Z·†Tâ•}·Š‹ƒ¬Ó8`¼˜›èÑñn=ŸãÒ°ðF¾ðÀÈå{ûÖ»Õ€Æ!¦lôà"×û0?D•ùO³õ» +êGÅß_íFÆÏ6”¼Zh.ô¢ÇÞ‘ðRŸð’î´ãÛq ó€èY@­C‚ׇË>:äÐèŸKä?œº£Åªî½ya‹]Gõ^&.0yG‹‚ÎýùÚ÷Œ°Þàʶ‚”¬ïçqvÒÝlÌõ}…€îñön—2ÜjÞV2h¶9ûÞLSú•Þò@óµh”“õ@Z•ãëTZWÍ&Ø_mWá2ìJ|ƶ Ÿ&o,û ª)ü°;ÇïÞ[ä×YÄL³Ÿ¼##ƒX€ß±V9£bk +¿ÐùæÔ2oI.Ú–`’—{¡qƆüOËåÁëC æñаILÂ'óq%þéÀ‡ÛrrÞÖ)Ó"¥:tl‚E΂mNSó¶åLˆ®¸4 ¬¡®Çüm•PrL#¨°õnð—•¶²+И­iVùd5<œ”pk©»ðëÎtñ÷™¶¨ú¦(Ÿ…¾ÂoÊÆìmcÎÛ4<ñïvåÒ8*NÖTüÊ"¢Ãçj{çȘ}#8Å*Éx3L{óû0þÃë…!¿9•«Ãظ™lĶ‚Cû9×$úw®ºó¿ËTÂ_‹ØB§ +µÐYüÖ:NɲO²Kœ2î`¡~ìp±nôÀ(¨µŒabç +í8€|[lÎx°Ò‘ýÄÛÁØ\â»Ð„úäBW[PßÔœôÛÓŒ˜›-ç¹Y¾g˜iÏN4—8½9ˆIÞ#Ä[EØD—†˜çP‘J <Áþ\u{VØìÒ²0‡3lÆö.Ù­d`ÿAý9Ç"[Õ\†ˆ]jçW¬´3c§X« +~œF§ßvŒò*¶ºà‹MYtµ±W曳® æ;Á·ÁAûjÜ:ŽO´NR2rF™M‚Œ²Š`áæ‰ò yuì=™ áêÖPÑçŸsT²EI*Û‘À#wÄßíRHÌž_öŸ92ø?³$ð/oOf=¹#¦äxõ³Cɣ쪫k­R~¦ЃN¸Ô +‰¼"çšï¿+Dîéè(€™¦id¼¡1ïñÖ0%×<ÅB©ë+> ŠÃ¯å>;+Èùqa¦ªèáz{é Ó<¢ùý\,äÊr6r{”S±Ü]ú~‚™t[V•ûl¾þU^ý8ÛCÎÚQV ,rbîö4:É.g ÷tlÚÑ,—¿?CÀíj00‡ +WlS`ÓíJ +x¡vhwVPo×ñèËC°˜Õ¡‚vIŇ• m…‡7Áã(k Á›¬œùFðÛaTØåÖ’¯—'ñ¡>NÄÍ­¾âÏ %iÉþÌÎúpÁ<À(ó¨jªjaày§’ëÔbs÷—雑X²8‰Šî¢&=l€~÷9ZªôÌ5N{€Xööó^í.xkÙ¤¸T@!EUyoÚQáWºJƒmS´pÍö$!Ýlf9½t¾¼1ŒÏvq¿0F*YêG¦8T•,§†ÇtêèÝY~µ] p›Š…ØQ²`6MËÈÆ‡´:LÊ´«9ÔM15_VUþ¦žx³}g±9ﱄ—øXÛ˜¼6„HëA‡^7OCR÷ TÔžðݳtšgŽBq©ÐEæ/â“öf„M»za‡ILÅx¯cZÕL¤IJÎÝ”Ò˶Íá2 +kþnZ›¤æ¯Ž²¯rÓ.ÆÛ5­£fyû YVWíÔðÙ3‚·ÇšïGG,õþF§ZÅ„\ó82|¹òAÄÈy:FN¿ÌÕsLjð9bü—óúêÒ¨QTÌB{ú½ÅîÌÊ꘽È÷g‡ð7†Iaw—:‹¾éºÊ?ÔTD\šo §Û†k .)1wOOt*¡QÃEïÍã…ŸÝJ|鎉·Jð{JRá¿3Ä€í¿‹\á/#³¯¡@»2|Wº³_­Ž¢cׇ¨éOW»ðaK­þƺô»J~äµbÀźRÿ ü”çÇeŒÿÏÑ[¿µ™v}¿´3•™vf:z§îJ[Zh)PÜÝÝBÜÝ @Œwb@pMp§:sßÏûìãÝȾؿ%!¹ržK>ß+ë\+UöˆUúñòLwEøDw}â¬ÐÄ&t溅\¹fBä®Y!YK†ºw€¾Eì¹-»ÃTäž_4•~XÐF†Œ ±;^€§è„?¼b‡¥€ÿÏ”°÷Ç®áó4oÛM=âûî0©bE‡N™€G•¤lÀ—‹Vç‡.\ñ² +-ÇÄ_$gÞ±öçyH‹Hvðó®Ù™Ùçgzk.*jžm™>~ñЛw=<‚GMkʸqj¦£>w׫ÛòöÙíʯSþç“|Ä FJ¡œ_ÿŠU{a¢³)gßA®ÚB'‡”„Ô©nÄ[[óS+¥öš“QÿpeXèh|åk)¼Ô€?ÌÊk_ÍöW¾YÑ ÒFŽ êšã§ëÃíüŠû´B™T‚?~ñá@;rã†Ôð}”‚üîg6lðôccä [ºkCåÿgŒŠùßYA×w?ß]øòEE]Ôª®9kQÎ#â¯i¨Åæú1q3ÝõO¼üÜËJê_€YœTEý1K½9!®—áro½º6×S³o;Ò0°¤?-m _VW>[3W¼é«_oY)UÓò¦l+—‡`I_ƈ¯ìK€Ðø}ŠÔümŠÝrÁ2Ö­Mñ?,öáŸÿu¼¥÷È_F(Ð7¶tMú8Ù]òÀÁN¿2/‡~šRb +Ôœ‡Î–¢g!=2OMÊ{¦&äßôS꾃 4~ɬ³¨G%~¤¾HدBóçq\í~_¿ aÖŽêÂ'h´sLጠ+;£À¦ï:ù‚'Œ ª.ÊBL¸4ÊϽ» EìÛ ¥û.R•Wqw\‚þ°i!—oZQySýµ¯Ç:«îÍ)kŸ…Ìàè5±jÃIÅnpé‹FRõ¦‡ÃØå2Ö€xhÏ3 à9²Šúú¥vNø¾Ÿ2!i~«A§þÑ þðW{CÄ5AuøŽÆ¸ß:PE±“,|ËCl ™1ÅkÃtȦ‡‰Þ÷6úñ:ð•›|Ѥ¢1ÊÛQylž°1Ê„Ü8tÈ­ßg3WÜPÈImXñò˜{€î[s4eϪKžl»ˆð)ùÏ4[ôße®d/@A&!·]°Ü%@ /i›S5™«æ#]@+^32«—ÕøÔÉÐc=!÷\8ù—Þ¦¸“zDòù ¥z~›m¤dþ¾¢hŽÛ1a2¶-¨´£sƒfXƲ›ãïÇÅ+ %Ö‡¨„ƒ)‰s;Àaïyýó¾çc“¶Ü\ÒŠ]HÐQqm5éWç:1µ‡Vjý¬¤úÞb?4b²ôØE->?É+¹²¦B$Ì©ñ™ÌºOç;À‰×wœ4ðQ_‰M;,iFVñtˆš~INHýs²¯úIP‹S°kb £ž5’ýw±Í|0"ìñûЃ)Ÿ¨}ål͹´¨ª +ßuÑšºáñçF[ÊÓÿ ˆú¿šý³›P¾ïÄl[Ð9ÁAèljnÐ3Gkã£.dÞÕAlîÅ-³i±X—.xÄT*z¡Ÿ2Ì­¾×VsVXòêøºž:ÚZþÄ'*º¹m‚¥ìãkvíØü/BÅÑü;àú|]åFÄåO¶ÌG÷0D=«tÞÌ`Ýë½£û]~TÁ—¦ö¨Ô£ùÚÛvâ³K¢Ø±‹6JåQÝÇLWñmŸ(÷úˆ çÆ®[iïªúØòð„ üÝo#täŒ3Õ~6'=lúõQ~Þ¦6l;YðY (ÅÌMþ{ÕJûgðÁ1:zwŒAØcþ3ÏïÙñ" +ç‡_+h Ï.¯Õ³ù± òú˜²!ú‹ –T×|ð·åÝUÀ>œšî…Fõ 3áó^þnbæß:ô ŸÇð Ÿ}ØràqÍ6‡Ö¸üU+®hÍÅÁ-Y¨Õ;.6öÀË&|Ÿ ãþ3Ëâý£Â¾¾¿¨,æiË»1ÒÕô^I*¼/ƒ$ýÚ^þᄸìýéÎê˜?§%µÑ*dQ(æ?´1 .­É¥@KÙ4#ò7lÈâ ;¡ˆÄ/ÓTÒá$»;Á¤†ÜTØpOåó)uSÂ×ùvûá´°gÓË­ðèÛÆÑÌSð÷ "2djΑ@â.x ¨ÿ».4͜޲ÃSWt  Êšç^Tùÿ†xý»N~ÓÂo¸à-­h±çe—\Ó¡’O;i©¿¯+«ß,÷C’&;jŸòË®lYñEÓŠš¨ÉÞÒ‡Ó=•&{Šî. 4½ÝÖÓ*þ4Þic/@Ãnùéȃ‡õï `‹“­²CŸ€¿egÔïZé5Ÿ¬æÏvn¾?×]U°ËÆ[AÏõ˜Ôß=Ü‚{nAÉ}»ðŠKPþ÷t6uk˜‡ÝtÓ@A32)dD$o×°n&ÕäÏ)±9vÕRñ‡¿|í•™_¦ÄÚ5±bNù°¬&î»åŸGp•‡TɆ _êïlx±¬@ñµI_â|%ƒv‡ eKjä' ><™ÀÇ[Ûð²‹zrÝÍ£zf_Kùí!tì鞦·?÷Bc~Ñâó.Rèï‰ö†·žÞ¦˜ÒÈÛ?£>Ý=}hG¼‚­p r/Þÿê“$]òw§]˜WTGìÓ £-mîNhÜü *ë`/ÿoˆÎý¿!:çÿ,`?&Pe{NXÊxwísrÁ‡ßñÙ§—uDÈ·Q&þ‹ƒÚ3c‹—àD33 +h°”ó»hÆš™T7ÖRûp}™ºm"oYÐYÛ6tþ¶Ø¼ë 6ØÙéçe ñßFØT@KÔm[a™›.LñއúgRسï¡CýLâ’žÚ8,lˆÚu’k}ø² +öiDPrÓÎÉü«òé‚•ô÷¢ h­tñÇ?]=©$¿ûØå†¿nƒÄ¯YÀ±».,°¶T Ktúª•TúyD$Üs2qËCÍɻøÊu4n„Ÿ}]y÷›§µâI+2ûnnÔý_¤ˆ¬«ƒˆô3òƘNbò'ÐÂпvâ.´ÕÇ^æ=¶ðÊÃãüÖÿð̲‰Õ"â—ôÑ{>8hCL ‚#gôM±{€ßþ?!–xaž¼ec`¾L´Nµ©¿-Šm?–x}ß§I¨¯@ŒZªj =íOæðÄ5-*9(o|RÔÇ-˪>,HËÞì»XÈEˆ…õ/´ü» ý(àúËo[‰Y Á“ÎhàŸ~1a>ý:ÎϹ”5¼¨yÉGîlŠ=»ªFe¬š½‚¼»þ–܇뚼çÛö’—ŸÇP_'ØìoSGç ø/>ýèwõÃ.ùÀE©Ûµ‹6”’1qÃã1QÓs ³îE(ù¬¤>á~éÇ3rXÚŸ^nÑí¡æ˜m ¶$¨…f/ëaézã¶›O9!Ö­™À±ÃüìKffÊŸÝÖµÈÔ· ðÉ–“>ððû^6nÛŒLÛ4×½ jòLJQAã¾°ð‡6qÅ@*Ûw³Iûn=¤#ç-š{T\ûbXPûØßÞødN†x¿¤¥—»…Õw¬Ì‚ëFjþã‰îê'@zèæ—¾˜–‚“½½°~]څΆ¬ë2x²·ö©WPõ`¬­1ba ñý†òñË zxtfÀÉ„ŠšRÏXåß4ôi +êkYøušùÅË8±ÒÓ^N.þpf“óbßÏn_3¡³{kN·—Ý´ÒÒÎ1 +ŸÆ¤Ü:®F¼;³cƒe©y¯±×¦úU6rµ¯«ðŽ…þþO þåù‘–gû«ßnZÉðµa”Pþöª‘•öææ8£yÙß},ʾ [¸ªÇŒ·=u±Rolº]E/|3€Í}²í C×-˜Â5 ,>¨%:Eů5¸”K.nî•ÑŽš÷[6Ú"¨8š30óß9NË÷I&mÛM Õ½]P×¾8:{rìÿ¼ØIѵe5"iÍŒËYÕaòƒ +lΆ™Ù8­@Å;[êÎ*pézböeqÅ»“ÃŒÜ룢ªg‹ +D*𽪂&Bñ¸´)NXýñlcÜÝã½ðO·7mðüEMå«38c×KA†lÖö8¯ãë Ê‹Ã÷‡aù_Á×Iñà#½kä²5­z{˜‹Ûóð)RɪR£ã§¾ +t4=íhJù]øþg?¿é­›ÕðÐF)¸àæäÝð·ä=ppbo(‘¶æÝÝ6Óë׌tpP ;ê¹ kx¿(+±6Tþ|±?ÿź¦&zÇÌÜsQÝ<ʺ _°mD¤~ua«¬-;´`ÃŒÊú:BiÚ´á +gM °fóæ°ˆÔ’ ¦z_ØÙç ¤ô³;]Û0ÂâÆÌ0ÒË®z[š^®heí5Ô¨„?åá'%uïÎN¶ÕÜ›íF}\Vrg”´ +9>óÂd7!suˆ[¿¢B&l‰ë\Ñ2`!;±Äh/$vÛMíû©°ÃqÐÔàÃQ\åÁ(¾:Ð[ÿÒ)ªz°8„*ø>'T¬Û%Kªæ˜"av•ìàT>RÂS/ø%·¬ÄŠlîßõI/ηBŠVÌä +?õ¼•wÃÎK +Ÿ’æD}ö2±ŸGü•a2SqIEÉxûï ›{èò§ã¨Î½þÕ¤¤ä¦‹“vÁÅɸ³d$# +Þÿ…ÎŽ¹½íâ¶íyþÖü;ZLÌœ¢'?‰ËžŸéÈ¿{àÆW‡,ô†ÜÈû§Øµ±O?{ˆØÿÌsÚ¾Ž¡Á¡Š§s²Â[›ö¦„ï“|ñºƒ†Ô1òï»ù÷¿ØGµÃ ±bEƒÎ©aŸfûªÍ Ô>_Ð2‰QgéÏNJª>mñtQ Jšì)çi-yÐOýYðê'%ñòš¡!iÆH¢öÜ @oµÉ¾Mw:€5S~™¤S< ð98åÛºîŸy‘:d%’‡; c>OS _f9-ߦiăLÑ ìk ٠٫rݲŸ·0ÐüÁÉÍ»ë`§ý½e}šQbíÜ endstream endobj 7 0 obj [6 0 R] endobj 33 0 obj <> endobj xref 0 34 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000059025 00000 n +0000000000 00000 f +0000061369 00000 n +0000061183 00000 n +0000795882 00000 n +0000059076 00000 n +0000059477 00000 n +0000079111 00000 n +0000078998 00000 n +0000060164 00000 n +0000060622 00000 n +0000060670 00000 n +0000061253 00000 n +0000061284 00000 n +0000061794 00000 n +0000062051 00000 n +0000079185 00000 n +0000079583 00000 n +0000080866 00000 n +0000091294 00000 n +0000156882 00000 n +0000222470 00000 n +0000271178 00000 n +0000336766 00000 n +0000402354 00000 n +0000467942 00000 n +0000533530 00000 n +0000599118 00000 n +0000664706 00000 n +0000730294 00000 n +0000795905 00000 n +trailer <<81739691F8A44F89BD877A3639399894>]>> startxref 796104 %%EOF \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/domain-serialize.pdf b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/domain-serialize.pdf new file mode 100644 index 0000000..31fa0ef Binary files /dev/null and b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/domain-serialize.pdf differ diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/gen-inclusions.py b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/gen-inclusions.py new file mode 100755 index 0000000..25ab2ff --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/gen-inclusions.py @@ -0,0 +1,672 @@ +#! /usr/bin/env python + +# gen-inclusions.py : generate .tex inclusions for user guide +# +# usage: gen-inclusions.py +# or: gen-inclusions.py +# +# Runs the tutorial examples in the user guide and extracts output +# snippets for inclusion in .tex files. This saves having to manually +# update the user guide to be consistent with small changes to outputs +# (including version numbers and such). +# +# Each example is run in the current working directory, with input +# and output files in the cwd, some of them symlinked from +# `/tutorial`. +# +# Intended to be run infrequently by developers, not users, to update +# the user guide source files for a new release. The resulting .tex +# snippets are checked into git. It can assume that it's working on a +# development machine in a git repo, not in distribution code in the +# field. +# +# Script looks for HMMER3 executables in `/src`, and +# tutorial files in `/tutorial`. The top_builddir and +# top_srcdir path prefixes default to `../../..`, because it is +# normally run in `documentation/userguide/inclusions`. +# +# If provided, and can be either relative +# or absolute paths. +# +# Options: +# -t, --tutupdate : update tutorial files from Pfam, UniProt +# --noclean : don't clean up the files it generates + + +import sys +import os +import shutil +import subprocess +import re +import argparse + +# Parse command line options and arguments +# +parser = argparse.ArgumentParser(description='generate .tex inclusions for user guide') +parser.add_argument('-t', '--tutupdate', action='store_true') +parser.add_argument( '--noclean', action='store_true') +parser.add_argument('top_builddir', nargs='?', default='../../..') +parser.add_argument('top_srcdir', nargs='?', default='../../..') +args = parser.parse_args() +top_builddir = os.path.abspath(args.top_builddir) # absolute to top of build tree e.g. '/home/seddy/hmmer3/build-osx' +top_srcdir = args.top_srcdir # relative to top of source, e.g. '../../..' + +# Check that /src seems to contain compiled programs. +# +if (not os.path.exists('{0}/src/hmmscan'.format(top_builddir))) or (not os.path.exists('{0}/src/hmmsearch'.format(top_builddir))): + sys.exit('no programs found? ./configure; make first') + + +print('gen-inclusions.py : a fiddly script to generate .tex inclusions for user guide') +print('cross your fingers...') + + +# optionally, update tutorial files that come from Pfam, UniProt. +# don't update MADE1.sto from Dfam. It's a derivative, a 100-seq subset of the 2000-seq Dfam alignment. +if args.tutupdate: + subprocess.run('wget -O fn3.sto https://pfam.xfam.org/family/fn3/alignment/seed', shell=True, cwd='{0}/tutorial'.format(top_srcdir)) + subprocess.run('wget -O Pkinase.sto https://pfam.xfam.org/family/Pkinase/alignment/seed', shell=True, cwd='{0}/tutorial'.format(top_srcdir)) + subprocess.run('wget -O 7LESS_DROME http://www.uniprot.org/uniprot/P13368.txt', shell=True, cwd='{0}/tutorial'.format(top_srcdir)) + + + +# make symlinks to tutorial files in cwd (i.e. in inclusions/ in the source directory) +# exception: globins4.sto is included verbatim in userguide, so copy it. +# +tutorial_files = [ '7LESS_DROME', 'HBB_HUMAN', 'MADE1.sto', 'Pkinase.sto', 'dna_target.fa', 'fn3.sto', 'globins45.fa' ] +for file in tutorial_files: + if not os.path.exists(file): os.symlink('{0}/tutorial/{1}'.format(top_srcdir, file), file) +for file in ['globins4.sto']: + if not os.path.exists(file): shutil.copyfile('{0}/tutorial/{1}'.format(top_srcdir, file), file) + + + +# get a symlink or copy of uniprot_swissprot and its relnotes.txt in cwd too. +# Default: I keep a copy on my development machine in my ~/data/. +# Else: Attempt to download a copy from UniProt to cwd. +swissprot_dir = os.path.expanduser('~/data/Uniprot') +if os.path.exists(swissprot_dir): + if not os.path.exists('uniprot_sprot.fasta'): os.symlink('{0}/uniprot_sprot.fasta'.format(swissprot_dir), 'uniprot_sprot.fasta') + if not os.path.exists('relnotes.txt'): os.symlink('{0}/relnotes.txt'.format(swissprot_dir), 'relnotes.txt') +else: + subprocess.run('wget ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/uniprot_sprot.fasta.gz', shell=True) + subprocess.run('wget ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/relnotes.txt', shell=True) + subprocess.run('gunzip -f uniprot_sprot.fasta.gz', shell=True) + + + +# uniprot_release = '2018_02' or some such, from relnotes.txt +# uniprot_nseq = '556,825' or some such (as string, with commas) +# +def uniprot_relnotes(deffp): + print('parsing uniprot release info...') + + with open('relnotes.txt', 'r') as f: + content = f.read() + m = re.search(r'UniProt Release (\S+)', content) + if not m: sys.exit('failed to identify UniProt release code') + uniprot_release = m.group(1) + + m = re.search(r'UniProtKB/Swiss-Prot:\s*(\S+) entries', content) + if not m: sys.exit('failed to identify UniProt/Swiss-Prot nseq') + uniprot_nseq = m.group(1) + + print(r'\newcommand{{\UNIrelease}}{{{0}}}'.format(re.sub('_', r'\_', uniprot_release)), file=deffp) + print(r'\newcommand{{\UNInseq}}{{{0}}}'.format(uniprot_nseq), file=deffp) + print('', file=deffp) + + + +# intro uses hmmscan -h header +# this also gets version and date, as \HMMERversion, \HMMERdate +# +def hmmscan_noargs(deffp): + print('running hmmscan (with no args)...') + r = subprocess.run('hmmscan -h', + shell=True, stdout=subprocess.PIPE, encoding='utf-8', # don't check=True; hmmscan -h returns 1 + env={"PATH": "{0}/src".format(top_builddir)}) + + m = re.match(r'((?:#.*\n)+)', r.stdout) + with open('hmmscan-noargs.out', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search('# HMMER\s+(\S+)\s+\((.+?)\);', r.stdout) + print(r'\newcommand{{\HMMERversion}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\HMMERdate}}{{{0}}}'.format(m.group(2)), file=deffp) + print('', file=deffp) + + + + +# 0. hmmbuild (with no arguments) +# Don't set check=True, because hmmbuild w/ no args returns 1 exit code. +# hmmbuild-noargs.out : stdout, complete +# +def hmmbuild_noargs(): + print('running hmmbuild (with no args)...') + r = subprocess.run('hmmbuild > hmmbuild-noargs.out', + shell=True, stdout=subprocess.PIPE, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + + + +# 1. hmmbuild globins4.hmm globins4.sto +# +def hmmbuild_globins(deffp): + print('running hmmbuild globins4.hmm globins4.sto...') + r = subprocess.run('hmmbuild globins4.hmm globins4.sto', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + with open("hmmbuild-globins.out", "w") as f: + print(r.stdout, file=f, end='') + + m = re.search(r'^\d+\s+\S+\s+(\d+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)', r.stdout, flags=re.MULTILINE) + if not m: sys.exit("bad pattern match to hmmbuild output") + print(r"\newcommand{{\BGLnseq}}{{{0}}}".format(m.group(1)), file=deffp) # LaTeX macro names only allow letters + print(r"\newcommand{{\BGLalen}}{{{0}}}".format(m.group(2)), file=deffp) # {{, }} are escapes for {,} + print(r"\newcommand{{\BGLmlen}}{{{0}}}".format(m.group(3)), file=deffp) + print(r"\newcommand{{\BGLgaps}}{{{0}}}".format(int(m.group(2))-int(m.group(3))), file=deffp) + print(r"\newcommand{{\BGLeffn}}{{{0}}}".format(m.group(4)), file=deffp) + print(r"\newcommand{{\BGLre}}{{{0}}}".format(m.group(5)), file=deffp) + print('', file=deffp) + + with open('globins4.hmm', 'r') as f: + content = f.read() + # elide both horizontally and vertically. Among the regexp trickery here: + # \n matches newline if pattern is not a raw string; but then other regexp elems have to be \\S, etc + # (?:) is a non-capturing group, useful when you need the group for a {} repetition operator + content = re.sub('(\nHMM\\s+A\\s+C.+\n(?:.+\n){7})(?s:.+)\n((?:.+\n){3}//)', '\\1...\n\\2', content) # Cuts every line between 1st and last state. + content = re.sub(r'(HMM(?:\s+\S\s{3}){7})(?:\s+\S\s{3}){11}(.+)', r'\1 ... \2', content) # Cuts columns in the HMM line + content = re.sub(r'^(\s+COMPO(?:\s+\S+){7})(?:\s+\S+){11}(.+)$', r'\1 ... \2', content, flags=re.MULTILINE) # Cuts columns in the COMPO line + content = re.sub(r'^(\s+\d+(?:\s+\S+){7})(?:\s+\S+){11}(.+)$', r'\1 ... \2', content, flags=re.MULTILINE) # Cuts columns in the match lines + content = re.sub(r'^((?:\s+[\d\.*]+){7})(?:\s+\S+){11}((?:\s+[\d\.*]+){2})$', r'\1 ... \2', content, flags=re.MULTILINE) # Cuts columns in the insert, transition lines + with open('hmmbuild-globins.out2', 'w') as f: + print(content, file=f, end='') + + # the formats chapter uses this profile too + with open('globins4.hmm', 'r') as f: + content = f.read() + m = re.match(r'HMMER3/(\S)\s+(\[.+\])', content) + print(r'\newcommand{{\HMMERfmtversion}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\HMMERsavestamp}}{{{0}}}'.format(m.group(2)), file=deffp) + print('', file=deffp) + + +# 2. hmmsearch globins4.hmm uniprot_sprot.fasta +# +def hmmsearch_globins(deffp): + print('running hmmsearch globins4.hmm uniprot_sprot.fasta...') + r = subprocess.run('hmmsearch globins4.hmm uniprot_sprot.fasta', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + m = re.match('(.+Scores for complete sequences.+?)\n', r.stdout, flags=re.DOTALL) + if not m: sys.exit('bad first pattern match to hmmsearch output') + with open("hmmsearch-globins.out", "w") as f: + print(m.group(1), file=f) + + m = re.search('\n(\\s+--- full sequence ---(.+\n){9})', r.stdout) # matches 9 lines of output starting with --- full sequence --- line + if not m: sys.exit('bad top hits pattern match to hmmsearch output') + with open("hmmsearch-globins.out2", "w") as f: + print(m.group(1), file=f, end='') # end='' because pattern match included a final \n + + m = re.search(r'\n(Internal pipeline statistics.+)', r.stdout, flags=re.DOTALL) + if not m: sys.exit('bad xpipeline stats pattern match to hmmsearch output') + with open("hmmsearch-globins.out3", "w") as f: + print(m.group(1), file=f, end='') + + # e-value score bias e-val sc bias exp N seqname + m = re.search(r'^\s*([0-9\.e-]+)\s+([0-9\.]+)\s+([0-9\.]+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\d+)\s+sp\|\S+\|(\S+)', r.stdout, flags=re.MULTILINE) + if not m: sys.exit('bad third pattern match to hmmsearch output') + print(r'\newcommand{{\SGUevalue}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\SGUbitscore}}{{{0}}}'.format(m.group(2)), file=deffp) + print(r'\newcommand{{\SGUbias}}{{{0}}}'.format(m.group(3)), file=deffp) + print(r'\newcommand{{\SGUorigscore}}{{{0:.1f}}}'.format(float(m.group(2)) + float(m.group(3))), file=deffp) + print(r'\newcommand{{\SGUdombitscore}}{{{0}}}'.format(m.group(5)), file=deffp) + print(r'\newcommand{{\SGUseqname}}{{{0}}}'.format(re.sub('_', r'\_', m.group(9))), file=deffp) # protect the \ in the swissprot name + # part of the text assumes that the "full sequence bit score" and "best 1 domain bit score" + # for the top globin hit aren't identical. They're already .1f strings and can be compared directly. + assert m.group(2) != m.group(5), "guide assumes that full vs. best 1 domain bit scores for top globin differ slightly" + + m = re.search(r'Passed MSV filter:\s+\d+\s+\((\S+?)\)', r.stdout) + print(r'\newcommand{{\SGUmsvpass}}{{{0:.1f}}}'.format(100 * round(float(m.group(1)), 3)), file=deffp) + + m = re.search(r'Passed bias filter:\s+(\d+)', r.stdout) + print(r'\newcommand{{\SGUbiaspass}}{{{0}}}'.format(m.group(1)), file=deffp) + + m = re.search(r'Passed Vit filter:\s+(\d+)', r.stdout) + print(r'\newcommand{{\SGUvitpass}}{{{0}}}'.format(m.group(1)), file=deffp) + + m = re.search(r'Passed Fwd filter:\s+(\d+)', r.stdout) + print(r'\newcommand{{\SGUfwdpass}}{{{0}}}'.format(m.group(1)), file=deffp) + + m = re.search(r'Elapsed: \d+:\d+:(\S+)', r.stdout) + print(r'\newcommand{{\SGUelapsed}}{{{0:.1f}}}'.format(float(m.group(1))), file=deffp) + print('', file=deffp) + + + + +# 3. hmmsearch fn3.hmm 7LESS_DROME +# hmmsearch-fn3-sevenless.out : first lines of top hits table +# hmmsearch-fn3-sevenless.out2 : domain annotation section's starting line +# hmmsearch-fn3-sevenless.out3 : domain annotation section, table +# +def hmmsearch_fn3_sevenless(deffp): + print('running hmmbuild, then hmmsearch fn3.hmm 7LESS_DROME...') + + r = subprocess.run('hmmbuild fn3.hmm fn3.sto', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + r = subprocess.run('hmmsearch fn3.hmm 7LESS_DROME', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + m = re.search('\n(\\s+--- full sequence ---(?:.+\n){4})', r.stdout) # .out: per-seq hit table (one hit) from 7LESS_DROME + if not m: sys.exit('bad first pattern match to fn3 hmmsearch output') + with open('hmmsearch-fn3-sevenless.out', 'w') as f: + print(m.group(1), file=f, end='') + + # append parsed variables from per-seq hit table line to .def + # e-value score bias e-val sc bias exp N seqname + m = re.search(r'^\s*([0-9\.e-]+)\s+([0-9\.]+)\s+([0-9\.]+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(\S+)', r.stdout, flags=re.MULTILINE) + if not m: sys.exit('bad second pattern match to fn3 hmmsearch output') + print(r'\newcommand{{\SFSevalue}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\SFSbitscore}}{{{0}}}'.format(m.group(2)), file=deffp) + print(r'\newcommand{{\SFSdomevalue}}{{{0}}}'.format(m.group(4)), file=deffp) + print(r'\newcommand{{\SFSdombitscore}}{{{0}}}'.format(m.group(5)), file=deffp) + print(r'\newcommand{{\SFSexpdom}}{{{0}}}'.format(m.group(7)), file=deffp) + print(r'\newcommand{{\SFSndom}}{{{0}}}'.format(m.group(8)), file=deffp) + print('', file=deffp) + + m = re.search(r'^(Domain annotation.+:\s*)$', r.stdout, flags=re.MULTILINE) # .out2: "Domain annotation" header line + if not m: sys.exit('bad domain section line pattern match to fn3 hmmsearch output') + with open('hmmsearch-fn3-sevenless.out2', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search('\n(>> 7LESS_DROME.+\n.+\n.+\n((?:\\s*\\d+.+\n)+))', r.stdout) # .out3: per-domain hit table (9 domains) for 7LESS_DROME + if not m: sys.exit('bad domain table pattern match to fn3 hmmsearch output') + with open('hmmsearch-fn3-sevenless.out3', 'w') as f: + print(m.group(1), file=f, end='') + tbl = m.group(2) # = multiline string containing the 7LESS_DROME domain hits table + + m = re.search(r'\n( ==\s+domain\s+2.+? PP\s*)\n', r.stdout, flags=re.DOTALL) # .out4: alignment of domain 2 + if not m: sys.exit('bad alignment pattern match to fn3 hmmsearch output') + with open('hmmsearch-fn3-sevenless.out4', 'w') as f: + print(m.group(1), file=f, end='') + + # parse and store info on (9) fn3 domains identified in 7LESS_DROME + domtbl1 = [] + for line in tbl.splitlines(): + fields = line.split() + dom = { 'idx' : int(fields[0]), + 'sigchar' : fields[1], + 'bitscore' : float(fields[2]), + 'c-evalue' : float(fields[4]), + 'i-evalue' : float(fields[5]), + 'hmmfrom' : int(fields[6]), + 'hmmto' : int(fields[7]), + 'envfrom' : int(fields[12]), + 'envto' : int(fields[13]) } + domtbl1.append(dom) + + return domtbl1 + + + +# 4. hmmsearch fn3.hmm uniprot_sprot +# +def hmmsearch_fn3_uniprot(deffp, domtbl1): + print('running hmmsearch fn3.hmm uniprot_sprot.fasta...') + + r = subprocess.run('hmmsearch fn3.hmm uniprot_sprot.fasta', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + # uniprot name is sp|P13368|7LESS_DROME + m = re.search('\n(>> \S+\|7LESS_DROME.+\n.+\n.+\n((?:\\s*\\d+.+\n)+))', r.stdout) # .out: per-domain hit table (9 domains) for 7LESS_DROME, Uniprot search version + if not m: sys.exit('bad pattern match to fn3 hmmsearch output') + with open('hmmsearch-fn3-uniprot.out', 'w') as f: + print(m.group(1), file=f, end='') + tbl = m.group(2) # = multiline string containing the domain hits table + + # parse and store info on (7) fn3 domains identified in 7LESS_DROME in full UniProt search + # domtbl1 is from just searching 7LESS_DROME alone, which gives more domains, because + # some aren't statistically significant in the larger search. + domtbl2 = [] + for line in tbl.splitlines(): + fields = line.split() + dom = { 'idx' : int(fields[0]), + 'sigchar' : fields[1], + 'bitscore' : float(fields[2]), + 'c-evalue' : float(fields[4]), + 'i-evalue' : float(fields[5]), + 'hmmfrom' : int(fields[6]), + 'hmmto' : int(fields[7]), + 'envfrom' : int(fields[12]), + 'envto' : int(fields[13]) } + domtbl2.append(dom) + + # parse out from the trailer + # we need it to construct numbers used to explain the conditional E-value calculation + m = re.search(r'^Domain search space\s+\(domZ\):\s+(\d+)\s+\[number of targets reported over threshold\]', r.stdout, flags=re.MULTILINE) + if not m: sys.exit('bad second pattern match to fn3 hmmsearch output') + fn3_domZ = int(m.group(1)) + + # capture information about best-scoring domain, from domtbl1 and domtbl2 + bestdom1 = sorted(domtbl1, key=lambda k: k['bitscore'], reverse=True)[0] + bestdom2 = sorted(domtbl2, key=lambda k: k['bitscore'], reverse=True)[0] + + # construct list of domains in 7LESS_DROME single seq search but not in full Uniprot search + lostdoms = [] + insigdoms = [] + i = 0 + for d in range(len(domtbl2)): + while (domtbl1[i]['envfrom'] != domtbl2[d]['envfrom']): + lostdoms.append(domtbl1[i]) + i += 1 + if (domtbl1[i]['sigchar'] == '!' and domtbl2[d]['sigchar'] == '?'): + insigdoms.append(domtbl1[i]) + i += 1 + assert len(lostdoms) == 2, "userguide assumes two domains are lost from single 7LESS_DROME seq vs. UniProt search" + assert len(insigdoms) == 2, "userguide assumes two domains changed from ! to ? in single seq vs. UniProt search" + + + # There's a section that says that domains 1,4,5 and maybe 6 are strong; + # 2 is weak; 3,7 are insignificant, in the Uniprot version of the search. + # Just check that this is true. + assert len(domtbl2) == 7 + assert domtbl2[0]['i-evalue'] < 0.01 + assert domtbl2[3]['i-evalue'] < 0.01 + assert domtbl2[4]['i-evalue'] < 0.01 + assert domtbl2[5]['i-evalue'] < 0.2 + assert domtbl2[1]['i-evalue'] > 0.1 and domtbl2[1]['c-evalue'] < 0.01 + assert domtbl2[6]['i-evalue'] > 0.1 and domtbl2[6]['c-evalue'] < 0.1 + assert domtbl2[2]['c-evalue'] > 0.1 + + print(r'\newcommand{{\SFSmaxdom}}{{{0}}}'.format(bestdom1['idx']), file=deffp) + print(r'\newcommand{{\SFSmaxdomu}}{{{0}}}'.format(bestdom2['idx']), file=deffp) + print(r'\newcommand{{\SFSmaxsc}}{{{0:.1f}}}'.format(bestdom1['bitscore']), file=deffp) + print(r'\newcommand{{\SFSievalue}}{{{0}}}'.format(bestdom1['i-evalue']), file=deffp) + print(r'\newcommand{{\SFSuievalue}}{{{0:.1e}}}'.format(bestdom2['i-evalue']), file=deffp) + print(r'\newcommand{{\SFSdomZ}}{{{0}}}'.format(fn3_domZ), file=deffp) + print(r'\newcommand{{\SFSucevalue}}{{{0:.1e}}}'.format(bestdom2['c-evalue']), file=deffp) + print(r'\newcommand{{\SFSaidx}}{{{0}}}'.format(lostdoms[0]['idx']), file=deffp) + print(r'\newcommand{{\SFSascore}}{{{0:.1f}}}'.format(lostdoms[0]['bitscore']), file=deffp) + print(r'\newcommand{{\SFSaevalue}}{{{0:.2g}}}'.format(lostdoms[0]['i-evalue']), file=deffp) + print(r'\newcommand{{\SFSauevalue}}{{{0:.0f}}}'.format(lostdoms[0]['i-evalue'] * fn3_domZ), file=deffp) + print(r'\newcommand{{\SFSacoords}}{{{0}-{1}}}'.format(lostdoms[0]['envfrom'], lostdoms[0]['envto']), file=deffp) + print(r'\newcommand{{\SFSbidx}}{{{0}}}'.format(lostdoms[1]['idx']), file=deffp) + print(r'\newcommand{{\SFSbscore}}{{{0:.1f}}}'.format(lostdoms[1]['bitscore']), file=deffp) + print(r'\newcommand{{\SFSbevalue}}{{{0:.2g}}}'.format(lostdoms[1]['i-evalue']), file=deffp) + print(r'\newcommand{{\SFSbuevalue}}{{{0:.1f}}}'.format(lostdoms[1]['i-evalue'] * fn3_domZ), file=deffp) + print(r'\newcommand{{\SFSbcoords}}{{{0}-{1}}}'.format(lostdoms[1]['envfrom'], lostdoms[1]['envto']), file=deffp) + print(r'\newcommand{{\SFSainsig}}{{{0:.1f}}}'.format(insigdoms[0]['bitscore']), file=deffp) + print(r'\newcommand{{\SFSbinsig}}{{{0:.1f}}}'.format(insigdoms[1]['bitscore']), file=deffp) + print('', file=deffp) + + + +def sevenless_table(): + print('parsing domain annotation in 7LESS_DROME...') + with open('7LESS_DROME', 'r') as f: + content = f.read() + domtbl = [] + for m in re.finditer(r'^(FT\s+DOMAIN\s+\d+\s+\d+\s+Fibronectin.+)\nFT\s+(.+)\n', content, flags=re.MULTILINE): + domtbl.append('{0} {1}'.format(m.group(1), m.group(2))) + + assert len(domtbl) == 7, 'guide assumes that uniprot annotates seven domains in 7LESS_DROME' + + with open('sevenless_domains.out', 'w') as f: + for domline in domtbl: + print(domline, file=f) + + + + +def jackhmmer_hbb_uniprot(deffp): + print('running jackhmmer HBB_HUMAN uniprot_sprot.fasta...') + + r = subprocess.run('jackhmmer HBB_HUMAN uniprot_sprot.fasta', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + m = re.match(r'((?s:.+?)Scores for complete sequences(?:.*\n){10})', r.stdout) + with open('jackhmmer-hbb-uniprot.out', 'w') as f: + print(m.group(1), file=f, end='') + print('...', file=f) + + m = re.search(r'\n((?:.*\n){2}\s*------ inclusion threshold ------(?:.*\n){3})', r.stdout) + with open('jackhmmer-hbb-uniprot.out2', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search(r'\n((?:@@.*\n)+(?:.*\n)(?:@@.*\n)+)', r.stdout) + with open('jackhmmer-hbb-uniprot.out3', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search(r'@@ Included in MSA:\s+(\d+)\s+subsequences\s+\(query\s+\+\s+(\d+) subseqs from \d+ targets', r.stdout) + print(r'\newcommand{{\JHUninc}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\JHUnsig}}{{{0}}}'.format(m.group(1)), file=deffp) + + m = re.search(r'@@\s+Round:\s+2\s*\n(?s:.+?)(Scores for complete sequences(?:.*\n){8})', r.stdout) + with open('jackhmmer-hbb-uniprot.out4', 'w') as f: + print(m.group(1), file=f, end='') + print('...', file=f) + + m = re.search(r""" + @@\s+Round:\s+2.* # anchor on round 2 part of the output + (?s: .+?) # accept anything until... + \n + ( # start what we're grabbing... + (?: .+\n) {2} # match exactly two preceding lines + \+.+\n # first + line + (?: [^\+].+\n ) {1,4}? # up to 1-4 intervening lines + \+.+\n # a second + line + (?: [^\+].+\n ) {1,7}? # up to 1-7 intervening lines + \+.+\n # a third + line + .+\n # and one trailing line + ) # end of our grab + """, r.stdout, flags=re.VERBOSE) + with open('jackhmmer-hbb-uniprot.out5', 'w') as f: + print('...', file=f) + print(m.group(1), file=f, end='') + print('...', file=f) + + m = re.search(r""" + @@\s+Round:\s+2 # anchor on round 2 part of the output + (?s:.+?) # accept anything until... + \n + ( # start grab: + (?:@@.*\n)+ # a block of @@ info + (?:.*\n) # blank line(s) + (?:@@.*\n)+ # a second block of @@ info + ) # end grab. + """, r.stdout, flags=re.VERBOSE) + with open('jackhmmer-hbb-uniprot.out6', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search(r""" + @@\s+Round:\s+4 + (?s:.+?) + ( + @@\s+New\s+targets\s+included: + (?s:.+?) + //\n + \[ok\] + ) + $ + """, r.stdout, flags=re.VERBOSE) + with open('jackhmmer-hbb-uniprot.out7', 'w') as f: + print(m.group(1), file=f, end='') + + print('', file=deffp) + + + +def hmmscan_sevenless(): + print('building minifam and running hmmscan on 7LESS_DROME...') + + subprocess.run('hmmbuild globins4.hmm globins4.sto', shell=True, stdout=subprocess.DEVNULL, check=True, env={"PATH": "{0}/src".format(top_builddir)}) + subprocess.run('hmmbuild fn3.hmm fn3.sto', shell=True, stdout=subprocess.DEVNULL, check=True, env={"PATH": "{0}/src".format(top_builddir)}) + subprocess.run('hmmbuild Pkinase.hmm Pkinase.sto', shell=True, stdout=subprocess.DEVNULL, check=True, env={"PATH": "{0}/src".format(top_builddir)}) + subprocess.run('cat globins4.hmm fn3.hmm Pkinase.hmm > minifam', shell=True, stdout=subprocess.DEVNULL, check=True) + + r = subprocess.run('hmmpress -f minifam', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + with open('hmmpress-minifam.out', 'w') as f: + print(r.stdout, file=f, end='') + + r = subprocess.run('hmmscan minifam 7LESS_DROME', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + m = re.match(r'((?s:.+?)Scores for complete sequence.*\n(?:.*\n){5})', r.stdout) + with open('hmmscan-minifam-sevenless.out', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search(r'(Domain annotation.+\n>> fn3.+\n.+\n.+\n(?:\s*\d+.+\n)+)', r.stdout) + with open('hmmscan-minifam-sevenless.out2', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search(r'\n( ==\s+domain\s+2(?s:.+?) PP\s*)\n', r.stdout) + with open('hmmscan-minifam-sevenless.out3', 'w') as f: + print(m.group(1), file=f, end='') + + + + +def hmmstat_minifam(): + print('running hmmstat minifam...') + + r = subprocess.run('hmmstat minifam', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + with open('hmmstat-minifam.out', 'w') as f: + print(r.stdout, file=f, end='') + + + + + +def hmmalign_globins(): + print('running hmmalign globins4.hmm globins45.fa...') + + r = subprocess.run('hmmalign globins4.hmm globins45.fa', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + m = re.match(r'(# STOCKHOLM(?:.*\n){13})', r.stdout) + content = re.sub('^(.{80}).*$', r'\1 ...', m.group(1), flags=re.MULTILINE) + with open('hmmalign-globins.out', 'w') as f: + print(content, file=f, end='') + print('...', file=f) + + m = re.search(r'\n((?:.+\n){4}#=GC PP_cons.+\n#=GC RF.+\n)', r.stdout) + content = re.sub('^(.{80}).*$', r'\1 ...', m.group(1), flags=re.MULTILINE) + with open('hmmalign-globins.out2', 'w') as f: + print('...', file=f) + print(content, file=f, end='') + + + # Text uses MYG_HORSE's unaligned leading G, PP=8 as an example. + assert re.search(r'^MYG_HORSE\s+g', r.stdout, flags=re.MULTILINE) + assert re.search(r'^#=GR\s+MYG_HORSE\s+PP\s+8', r.stdout, flags=re.MULTILINE) + + + +def hmmbuild_made1(): + print('running hmmbuild MADE1.hmm MADE1.sto') + + r = subprocess.run('hmmbuild MADE1.hmm MADE1.sto', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + content = re.sub(r'(MADE1 \(MAriner Derived Element 1\), a TcMar-Mariner).+\n', r'\1 ...\n', r.stdout) + with open('hmmbuild-made1.out', 'w') as f: + print(content, file=f, end='') + + + +def nhmmer_made1(deffp): + print('running nhmmer MADE1.hmm dna_target.fa') + + r = subprocess.run('nhmmer MADE1.hmm dna_target.fa', + shell=True, stdout=subprocess.PIPE, check=True, encoding='utf-8', + env={"PATH": "{0}/src".format(top_builddir)}) + + m = re.search(r'\n(\s*E-value\s*score.+\n(?:.+\n)+\s*-+\s*inclusion threshold.+\n.+\n)', r.stdout) + with open('nhmmer-made1.out', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search(r'humanchr1.+\s+(3\d+)\s+(3\d+)(?s:.+?)humanchr1.+\s+(3\d+)\s+(3\d+)', r.stdout) + print(r'\newcommand{{\NMHafrom}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\NMHato}}{{{0}}}'.format(m.group(2)), file=deffp) + print(r'\newcommand{{\NMHbfrom}}{{{0}}}'.format(m.group(3)), file=deffp) + print(r'\newcommand{{\NMHbto}}{{{0}}}'.format(m.group(4)), file=deffp) + + assert int(m.group(1)) < int(m.group(3)) # "one on the forward strand" + + m = re.search(r'^(Annotation.+)\n>>', r.stdout, flags=re.MULTILINE) + with open('nhmmer-made1.out2', 'w') as f: + print(m.group(1), file=f) + + m = re.search(r'\n(>> humanchr1(?:.+\n){4})', r.stdout) + with open('nhmmer-made1.out3', 'w') as f: + print(m.group(1), file=f) + + m = re.search(r'\n\n(\s+Alignment.+\n\s*score.+\n(?:.*\n)+?)\n>>', r.stdout) + with open('nhmmer-made1.out4', 'w') as f: + print(m.group(1), file=f, end='') + + m = re.search(r'\n(Internal pipeline statistics.+)', r.stdout, flags=re.DOTALL) + with open("nhmmer-made1.out5", "w") as f: + print(m.group(1), file=f, end='') + + m = re.search(r'^Target sequences:\s+\d+\s+\((\d+)\s+residues', r.stdout, flags=re.MULTILINE) + print(r'\newcommand{{\NMHnres}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\NMHntop}}{{{0}}}'.format(int(m.group(1))//2), file=deffp) + + m = re.search(r'^Residues passing SSV filter:\s+(\d+)\s+\((\S+?)\)', r.stdout, flags=re.MULTILINE) + print(r'\newcommand{{\NMHnssv}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\NMHfracssv}}{{{0:.1f}}}'.format(float(m.group(2))*100), file=deffp) + + m = re.search(r'^Residues passing bias filter:\s+(\d+)\s+\((\S+?)\)', r.stdout, flags=re.MULTILINE) + print(r'\newcommand{{\NMHnbias}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\NMHfracbias}}{{{0:.1f}}}'.format(float(m.group(2))*100), file=deffp) + + m = re.search(r'^Residues passing Vit filter:\s+(\d+)\s+\((\S+?)\)', r.stdout, flags=re.MULTILINE) + print(r'\newcommand{{\NMHnvit}}{{{0}}}'.format(m.group(1)), file=deffp) + print(r'\newcommand{{\NMHfracvit}}{{{0:.1f}}}'.format(float(m.group(2))*100), file=deffp) + + m = re.search(r'^Residues passing Fwd filter:\s+(\d+)\s+\((\S+?)\)', r.stdout, flags=re.MULTILINE) + print(r'\newcommand{{\NMHnfwd}}{{{0}}}'.format(m.group(1)), file=deffp) + + + +with open("inclusions.def", "w") as deffp: + uniprot_relnotes(deffp) + hmmscan_noargs(deffp) + hmmbuild_noargs() + hmmbuild_globins(deffp) + hmmsearch_globins(deffp) + domtbl1 = hmmsearch_fn3_sevenless(deffp) + hmmsearch_fn3_uniprot(deffp, domtbl1) + sevenless_table() + jackhmmer_hbb_uniprot(deffp) + hmmscan_sevenless() + hmmstat_minifam() + hmmalign_globins() + hmmbuild_made1() + nhmmer_made1(deffp) + +if not args.noclean: + for fname in [ 'relnotes.txt', 'uniprot_sprot.fasta', + 'fn3.hmm', 'globins4.hmm', 'Pkinase.hmm', 'MADE1.hmm', + 'minifam', 'minifam.h3f', 'minifam.h3i', 'minifam.h3m', 'minifam.h3p' ]: + if os.path.exists(fname): os.remove(fname) + for fname in tutorial_files: + if os.path.exists(fname): os.remove(fname) diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/globins4.sto b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/globins4.sto new file mode 100644 index 0000000..aa488d8 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/globins4.sto @@ -0,0 +1,18 @@ +# STOCKHOLM 1.0 + +HBB_HUMAN ........VHLTPEEKSAVTALWGKV....NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVL +HBA_HUMAN .........VLSPADKTNVKAAWGKVGA..HAGEYGAEALERMFLSFPTTKTYFPHF.DLS.....HGSAQVKGHGKKVA +MYG_PHYCA .........VLSEGEWQLVLHVWAKVEA..DVAGHGQDILIRLFKSHPETLEKFDRFKHLKTEAEMKASEDLKKHGVTVL +GLB5_PETMA PIVDTGSVAPLSAAEKTKIRSAWAPVYS..TYETSGVDILVKFFTSTPAAQEFFPKFKGLTTADQLKKSADVRWHAERII + +HBB_HUMAN GAFSDGLAHL...D..NLKGTFATLSELHCDKL..HVDPENFRLLGNVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANAL +HBA_HUMAN DALTNAVAHV...D..DMPNALSALSDLHAHKL..RVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVL +MYG_PHYCA TALGAILKK....K.GHHEAELKPLAQSHATKH..KIPIKYLEFISEAIIHVLHSRHPGDFGADAQGAMNKALELFRKDI +GLB5_PETMA NAVNDAVASM..DDTEKMSMKLRDLSGKHAKSF..QVDPQYFKVLAAVIADTVAAG.........DAGFEKLMSMICILL + +HBB_HUMAN AHKYH...... +HBA_HUMAN TSKYR...... +MYG_PHYCA AAKYKELGYQG +GLB5_PETMA RSAY....... +// + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hit-serialize.ai b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hit-serialize.ai new file mode 100644 index 0000000..e280ae1 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hit-serialize.ai @@ -0,0 +1,3418 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + hit-serialize + + + 2019-04-15T16:06:27-04:00 + 2019-04-15T16:06:27-04:00 + 2019-04-15T16:06:27-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4qkWradp9/5l02G+to ruJbO9dY50WRQwltRyAYEVoTiqI/wn5V/wCrNY/9I0P/ADTirFf8S/k0uoXVlcJplo1mbgT3F1bR 29uDZzLbzj15USKqTSBCOVfoocVRd/f/AJUWVot5JDpMtqXmR54IreWOP6tE007SMgIQRRrVq+IH VgCqpxat+Uj372EsOlWlyttbXipdw29uXhvNomT1QpbeimnQkDqcVVLbVPycukVrefQJObMkYBsw WZJfQIUGlf3vwA9z064qmej6R5K1bTYNQtNHsjBOCQHtYVdWUlXRxx2ZHUqw7EYqjP8ACflX/qzW P/SND/zTiqQ+QPK/lmXyJ5ckk0iyeR9Lsmd2t4izMbdCSSV3JxVjn5ieS/Ng1eCfyXpenPaNaE3V vNBaKgkhmUcE5x8hJNHcMwepA9KlKsMVYmNO/NtdDudMHk+xmlNpPBDq72Vml6JwkIilok6wu0jy S9FQJxDHlSjKp1c2n5oCT/cf5D0GW1XnHW7ghjmDeoRG54TMrr6Sq7UC1Z+NF4Esqr6/DrDa/C/k /wAs2Gr2qQQwal9as0tbWOX1XMrxo4WUyEBVG7KoNSTQ1VYy+vfmI2pafoFz5J0ay1m7iguJQuno /JHCyTLEDcMg9MJKhYv1AqYy6clXoH5WeWr1/Lht/N/l2zhv7R44raeS2gMk8JtonLykNNWRZmkj Y7V4g0FcVR+ueV/LS+cfLMa6TZBH+vc1FvEA1IARUcd6YqyP/CflX/qzWP8A0jQ/804q7/CflX/q zWP/AEjQ/wDNOKu/wn5V/wCrNY/9I0P/ADTirv8ACflX/qzWP/SND/zTirT+VfKaIzvo9gqqCWY2 0NABuf2cVY1Y6/8Ak1d6bFqROj2lpOpkha+it7QvFyCCRVnWNihZgA3Su3XbFXaXr35N6m9yLU6N wtZltzLJHbRpJIyof3TOB6grIE+H9rbFV2pav+UthZLfNBpl1aMJWM1nBBcqqQxCaRmMQagCun/B r44qhofNP5OSanbac1tYwTXlrb31vJcWSwRNDdrzgJkkjUKXG1Gp8Xw/aIGKo2y1b8mb2N5bS58v zRoWDMps6fDIISd+3qMFB6EkU64qmmkaR5K1bT47610ey9N2kjdHtYQ8csMjRTROOJo8ciMjDxGK oz/CflX/AKs1j/0jQ/8ANOKu/wAJ+Vf+rNY/9I0P/NOKu/wn5V/6s1j/ANI0P/NOKoK80PRbDV9D msdPtrSVryRGkghjjYqbK5PElQDSoGKsixVjuu63o2keY9Mn1W/ttPgezvUSW6lSFGf1bU8Q0hUE 0BNMVXf8rD8gf9TNpX/Sdbf814qwnUdB/IvUNZudZuPMNoNTuwyT3Kawqs0bTpc+kf31PTEsSkL0 HT7O2KtzaD+Qr6UNJi1fSbfTzczXcsEd/bUka4i9KRWLOzUoqFSDyUotDtiqlrGgfkpf2kMEfmLT IjDb2lkskmoxylYLOojMYM6hJwrELNuV674qp3fk3/nHK61CPUJNQ0oXMMz3ETLqcahHkmlnbgvq 0RfUuJDxWg3/AMlaKsw0TzX+W2j6XBp1r5n0tooeRMj31qXd5GMkkjUcDk7szGgpU4qjv+Vh+QP+ pm0r/pOtv+a8VSLyF598jQeRvLsM3mLTIpotMsklie9t1ZWW3QMrKXqCD1GKp7/ysPyB/wBTNpX/ AEnW3/NeKsX/ADA846Nf6dYJ5f8ANmkw3Ed4HnJvrYjgbeaOFyDKtRDdPDOR4J0boVXneoX+uWtp oWqJ5702LUtG0SC1vHttTW89e+gS4j5NbsX9f1WliZmbuCT9kYqi77X/AMzY4mbTPzN8vGWaZpZF urmwfirwwD00pGqosbiXjStaAmvI0Veh+S/Oflax0qePUvMukpJJeXM0EA1C2cRQyyllUEP0JJZR +yCF2pQKp9/ysPyB/wBTNpX/AEnW3/NeKsd1vz55Hfzf5alTzFpjRQi+MrreW5VA0KgciH2qdt8V ZF/ysPyB/wBTNpX/AEnW3/NeKu/5WH5A/wCpm0r/AKTrb/mvFXf8rD8gf9TNpX/Sdbf814q7/lYf kD/qZtK/6Trb/mvFWm/MH8v2UqfM2lUIoaX9uDv4ESVGKsGHlf8A5x+B5DWdP9QzRXTy/pcFnuLc sYp3Jm3kVZHTl14sQcVUZfJv/OPTyyz/AKW01p3nW6X1tW9WITIrJGWiNwFdY1ldVVvshm48a1xV NLTyz+Vknl7S9MOt2MtvZes3rW11DGswufidBR3KxiRY2RQ3wiNFrxFCqpa15H/Ke/txHbanY2cy WsNjby/W1kEEMKPCrwL6y8JkimkCSb8SeVCRird1+X35GXM8s7y2KvMOLBL4KFX1jccYwJP3Y9Vm aiU3NeoFFWWaJqnkvR9OWxttas2QSTTySPcwc5JrmZ555G4lVrJLKzGgA32xVH/4s8q/9Xmx/wCk mH/mrFXf4s8q/wDV5sf+kmH/AJqxV3+LPKv/AFebH/pJh/5qxVB3Ws6PqOq6LFp99b3kkd48kiQS pKyp9TuF5MEJovJgK+JxVkOKpVc/8pVp3/MDff8AJ60xVF6rqCadpl5qDwy3CWcElw0FunqTSCJC 5SJBTk7Uoo7nFWI2n5y+RJLD63c3jWwRpY7oCKW4jgeChlWWe3SWFCiMruGYFFILhcVXw/nB5GvY Zv0VffXbqJrRDatHLbMDfyLHAzmdI+KH1AzHei706VVQJ/PPyQmm6frEzzxaHfnUFXUBE8wjOnXK WpMkcAlkVZWkDISo2pWlcVV5/wA8/wAsbeeWK61c2wjDkSTW9yiuIgxlKVjqwj4fEaU3X+YVVZF5 W81ad5jtrq4sa8LWcQsd6MssEV3A4qFP7y2uYnoRVSeJ3GKp1irH/wAvf/Jf+Wu/+4mx2/6NkxVi 2k/n95DuLJrnVnuNDosci/W4JXjeOX7DpPCskR+JXUry5Ao21BXFWTa3+Yfk/RNVbSNRvzHqi263 f1KOGeeVoWZkDIkKSFjVG+FamgJpQE4qlR/Oz8sRfJYNrXC6kaBFR7a6UBrve3DM0QVfVUc05H4k +MfDviqncfnF5cj1DU9OiiknvdOs9Uv/AElZB6kejzfVp1+Iji7zrIqD+VCxoCMVbb87fy8X6ur3 s6Szv6bRNZ3aGIq3GRpS8ShEjbZ2JoKYqr6N+bnkrXb+2ttCvl1GOa5FlPNGsiejPJDJPCrLIiVD rbyA0NVNKjeoVTS9/wCU/wBG/wC2Vqv/AFE6diqV6l+bXlTSfMV3omsGfT5LbaK4liZknIgNy5iW MPIUSIMefHjVWFelVUx8v/mH5R8wak+m6TevNepHJMYZLe5gPCFo1kIM0caniZ460P7QPfFUuh/O T8t5rZbqHVzLassjfWY7a6eJRByMvORYiqcERpG5EUQc/sfFiq2H84vIl7Z3kulXxvrqziimay9K a3kP1iRIYAfXSPj6jypuf2WDfZIOKoeH86fKE1pZaiguG0m9uryzW+jiecK9kwXmY4Fll4S8qo3H pQmlRiq+b88fywt5GFzrIgjohSeWGdUfm8sdEqlTxaBg21Nx4jFU/wDLHm7TPMYunsDyhg9GSGbf jNb3UKzQzKGCsvIMVKsKgqe1CVVfyt/xwbX/AGf/ACcbFU1xV2KuxV2KuxV2KuxV2Ksd13VrXTPM emTXMdzIj2d6gFra3F29fVtTultHKwG3UimKrLrzf5cu7Wa0urHU57a4Rop4ZNF1RkeNwVZWU2tC GBoRiqTel+WHw/8AOtXI4lXBGgakDzQFQ9fqv2qMRy6nviq/n+Xa2sltDol/bxyLbqxg0XVYmH1P h9WIZLZWBi9JOJ/yV8BiqnIn5dG1WC20W+s2ikmntZ4NB1DnBPcENJNEJLN0Dl1DVKn4gD2xVThs /wArYrW3tx5cu3W2tY7GJ30LU2k+rwx+kkbP9V5EBDTc/qGKpro+u+UNGtmtdM07U7aB39Ro00fV qV4hB1tuioioo6KoCjYDFUd/jnRf+WbVf+4Pqv8A2TYqk3k3zTp+n+TtD0+9stViu7TTrW3uYjpG qNxkjgVHWq2xU0YEbHFVMJ+WQijiHl26EcMUdvEv6C1P4IonaSNF/wBF2Cu7EU8TiqlHB+XZme5v NK1TUryQKpvL/R9VuZwiEMqLI9qWChlrQYqvtoPyttZRLb+WbiGQNEyumgakpBg5iKlLXbgsrqvg pK9NsVXhvy5+uT3r6Hfy3Nx9YEkkmi6q54XgH1lF5Wx4pMRydRsSSepOKqENt+XEdxLK+i300bpB HDbS6DfmKBLZ3lRYlFmDvNK8jFiSWY79sVV7E/lxYX0V9Y6FfW11CQySRaLqqfEI2hViBbUJWN2V a9AzU6nFVt9510YeedGmMGphP0bqUQB0nUwxd57FwFQ23JvhjapAoO/UYq3qS/llqc082o+W7m7m uWDzyTaBqTszKhjDEm1rXgxWvhiqGSx/LW3dZtN0fU9JulLUutP0fVbebi4VXT1EteXFvTSo78R4 YqqxWv5VxJFHH5YnVIKeko8v6jRaFjsPqn+Ww+RI6YqvjX8tobG4sbbQb61t7qAW0wt9E1WFjGtO NHS2Vgy0HFgaig8Birn/AOVdfV/Sg0S9tmWeW8gmi0HUC8V3MPiuYw9m6epUA1KncDbFVKKz/K5L C3sn8u3c8Vvbx2iNLoOpMxhiV1VWP1QVFJXr8ziqZ6PrXk3Ro5YtM0zUrWOZleRI9G1UCqIsagD6 tsFRAABt+OKony7r1pBo1tFNbX8cgDEo2nXwI5OSKj0fA4qmX+JtO/3zff8AcPvv+qOKu/xNp3++ b7/uH33/AFRxV3+JtO/3zff9w++/6o4q7/E2nf75vv8AuH33/VHFXf4m07/fN9/3D77/AKo4q7/E 2nf75vv+4fff9UcVX23mHTbi7jtEFxHPKGaMT2tzArBKFqPLGi1FelcVTLFUquf+Uq07/mBvv+T1 piqa4q7FXYq7FWpCwRitOQBK8jQV9z4Yq8gu/wDnIvRIPLljdJarPrV5pUGpNBFPE9rDNPaS3n1W WQP66yCK2f8A3T1K/wA2Kph5j/N/VtBtbdr3Qwl4be1nubRpXr/pb3RHplY3b4IdOkdlK8hzQUrs VUSfznsbXWtQ0e/0q7e5tdQNhby2foSxyFifSDcpUkVyiO7ApSikioGKpOf+ckfLFxaKlnYXsWpv aPeRpcxAWx9G2+tSx+uH/lHph1U/EVNCp3VeuwyCWFJQCokUMFYUYVFaEeOKrsVdirsVdirGtY/5 T3y3/wAwmp/9i2KslxV2KuxV2KsG/MD8xrzynq+n20OmDUbWayvNSv8AhKI54rawktxMyK9IzSO5 ZxydeXDj1IxVDJ+cWl3/AJS8xa7pdlcRyeX1/fQ6iqwI71IKpJG0qtxZWWqmhI2JBBxVA6X+dg1/ zNpekeXtIknS7M/103MsSSRRW8loHlT0WuI2QR3pfdwSUK0qRiqEg/PK8mXVymkpTTrRb6MtKykh poAYZOSKiSLDdxk1cDlXtXiqibj/AJyD8vQshfRNWSEBmuZXjtqRoLRryMrxnf1PUjQ8eG1ASTtu qmfkz839I84apbRaTa3EdnMbqCYXcXo3EdxarFJUoGf92RIyEmhDjuDUKs/xV2KuxV2KpVqP/He0 j/o4/wCTYxVNcVY7rt/dWXmPTJLbTbnU3azvVMNq1urqPVtTyJuZrdabU2avtiq7/E2tf9Slqv8A yN0r/suxV3+Jta/6lLVf+Rulf9l2Ku/xNrX/AFKWq/8AI3Sv+y7FXf4m1r/qUtV/5G6V/wBl2Ku/ xNrX/Upar/yN0r/suxVDDUpwpUeR78Keoro9P+o33xVdJq95JdJdyeS9Re6jQxxzs2kl1QsrlQxv q05Ip+YxVSmv7qa9t72TybqpubVnkhYT6Yqh5E9NnZBfhGbh8IZgSATSlTiq6fUZ7hPTn8j38qbf C50hh8NOOxve3EYqiv8AE2tf9Slqv/I3Sv8AsuxV3+Jta/6lLVf+Rulf9l2Ku/xNrX/Upar/AMjd K/7LsVd/ibWv+pS1X/kbpX/Zdirv8Ta1/wBSlqv/ACN0r/suxVjur+YtY/xr5dmbyvqakQahEkZk 0zk7OsL7UvStAIzWpHtirIv8Ta1/1KWq/wDI3Sv+y7FXf4m1r/qUtV/5G6V/2XYq7/E2tf8AUpar /wAjdK/7LsVd/ibWv+pS1X/kbpX/AGXYqsk1/U5DWTydqbniUqz6Sfhb7S733Q98VQV5KLy4huLr yLqEs0BrEzPpWxFO316h+yOuKouPWr+Jw8XkzUkcAgMraQDQ7kVF9iqB0TzOt5pgudM8maiLK7aV mAOkoHZpXaQspvRXlKzsa9yT3xVXtb+5tZLmSHyZqoku5TPcO82mOWcrw6vftQBPhCjYDoMVVItW u4pxcReStRScKYxKraQGCMQWUEX1aEqK/IeGKoj/ABNrX/Upar/yN0r/ALLsVd/ibWv+pS1X/kbp X/Zdirv8Ta1/1KWq/wDI3Sv+y7FXf4m1r/qUtV/5G6V/2XYqhv0xqN15h0cXWh32mxM88Sz3L2TI XaBnC0t7m4f7MTfs0xVlOKpVc/8AKVad/wAwN9/yetMVTXFXYq7FXYq8w1b8y/OGjeYtUgm0CXU9 JhuYre0ktYbpCisjuWd/SlMhPp78U4iq/FviqI8o/m3c6zcywa1or+W4RA0kF7dSSmJpFjgkMY9a C1BIFzQAGpKOKbAlVjFj+bH5oatpmi2Vn5f+pa3dfVI5764guXt5JZLISz+ohihFuqzyID+8bbkO uKp9N558/N58k0a1sUfT4pLqG6K28khh9Oz9W3f1A6j95KVY1/ZdVAr8WKpfY/nD58bTbCOTybLN qTw2U106yyqHjluI7e6kSE26yKY/VU8WA/aI5KhYqovQvzZ8061qFhbzeVbvQzJdW8bpdN6nrpOz pKi1jj4mGIevWtfhZabHFXquKuxV2KuxVjWvf8pp5W/6P/8AkwMVYj5q/MD8w9K8yajbadoL6npN ldx+m8EEvqPCumm6lhLbr+8lHFJVBANVIrxqqp235z+ZZNWsNNm8mzW8t7GJQr3ExcisfqCELaFJ DGJGDVdQGQ78SrsqpP8AnP51NpZXcXkK7X1fVN3ZySTm4VUhnkjaPhbNFxZoVQlnDBm48P2sVVbf 8z/OF4+pTzaLJotpDa6XwW5jdjbvd3ghvZ3mZI4XFvBKJQoYjitWpUqFWrb8y/zCmtNPvf8ADbrP NqmoWF1pEqTQsscTL9VY3Cx3CiiGrPxCMa0YAYqpzfnV5ujgjvY/Il7d2Nzbw3Nt9Xdy3CQz/EzN EASyQoyoBy3Nd+IKrMPy6806r5jsb+6v7R7QR3EawRSCjp6ltDNJAx4pyMEsrR8uIrTf4gcVVPy9 Yr5GsmB4kLOQ1C1KTSb8RuflirzrSfzg/NGL6s2q+Tprv1tIs7xo7eOe3BuZVmknEbNHMPhVYw8b 8Sh5fa+GqqKs/wA9dev9SENt5YeJIH9G8geSaeRZGb06yNb28qxRwyJIHcB/sMAOSsAqmXl784vM uqa9Y6VdeR7/AE9LyVUkuJHlYQIZJo2MtbdF5oYFLKrkcXryoMVS3TvzT8/32m6pKNHaGa0tNJvL V2gkeN5Lm7K6lbl4vUp9VU+jspdeDOwrtiqLm/ODzwkop5FnZIF/02KOeWSRZntRdRwrS2VVKo6m QvSm6gFhTFU18j/mJ5g8ya7FBeaHPosbR3i3FhckO8ZtXtxDcCQIg4zevIlPiHwbHZsVZdrP/HR0 H/mOf/qBucVTXFWO67LrMXmPTDpVrbXc5s70Ol1cPaoE9W13DxwXJJrTbiPniq7675//AOrNpX/c Vuf+8dirvrvn/wD6s2lf9xW5/wC8dirvrvn/AP6s2lf9xW5/7x2Ku+u+f/8AqzaV/wBxW5/7x2Ku +u+f/wDqzaV/3Fbn/vHYqpzyed7hAk+g6PMgNQsmp3DCvStDp2Kqn13z/wD9WbSv+4rc/wDeOxVA 6H5g88ato1hq8GhaXHFqNtDdRo+qXHMLNGJFDU08ioDYqiEPnSO5luo/L+jJdThVnnXUpxI6x14B mGnVYLyNK9MVVvrvn7/qy6Tt0/3KXP8A3jsVd9d8/wD/AFZtK/7itz/3jsVd9d8//wDVm0r/ALit z/3jsVd9d8//APVm0r/uK3P/AHjsVd9d8/8A/Vm0r/uK3P8A3jsVY7rd555Pm/y0X0jTBKPrvpKN SuCrfuBy5N9QBWg6bHFWRfXfP/8A1ZtK/wC4rc/947FVCQecpbqG8l8vaK93bB1t7htSnMkYkoHC OdO5KGoK064qr/XfP/8A1ZtK/wC4rc/947FWjeefmBVtF0kg7EHVLmhH/cOxVbPN54uIJLe40LR5 oJlaOWKTU7hkdGFGVlOnEEEGhBxVuO589xRrFFoekJGgCoi6pcBVUCgAA07YDFVwvfPw6aLpP/cU uf8AvHYqx38vrzzyPKFgINI0x4v33Fn1K4Rj+/etVFg4G/virIvrvn//AKs2lf8AcVuf+8diqHto /N9rNcTWvlzRIJrt/UupItRmRpXApykK6aCx9ziqI+u+f/8AqzaV/wBxW5/7x2KtC88/AUGi6SBu dtUuep3P/SuxVStj50tRILby/o0AlkaaUR6lOnOSQ1d246cKsx3JO5xVW+u+fq1/Quk18f0pc/8A eOxVCzXPmmTWtCXVNPsbW2+uSESWt7Ncvz+pXNBwe0thSld+X0YqyrFUquf+Uq07/mBvv+T1pirD /PY/NNvMjJ5X5nSXt9PWUEwIFk+vMbh4pHq3JYKB1YUKGq/EACqkcfmX897SW9nXy/8AXzcu0kdv LHFEkJS2hCRRUvXIRpefJizVILfCGoFVy+Z/+ciF4cvLmn0mki9R2Bf0VeKAOI4kuULhHaQ/HID1 /l+JVE6XrP55X+t6d+ltEg0y2iFy0q2rrLBI7W04hWd3l5gRzLGPgUhq8uQ6YqhrS+/OKfTb944b hRGNAm0eZ1jaSRRcodVE8MhtnZ2jLl4+SAABEI64qo2vnD8/bzS4r600nSLqeJprW5htlc2zzxvE PVWRrjmYkV5B8ALc0ZaGqnFWWeUNU/MC98zSHX9OGn2ghvFkiQloSsdxD+j3Rizj1Hje5E1KfZQ0 48SVU5/Lz/lAPLP/AGyrH/qGTFXn/wBc/Pm01YzQ2f17Tg+sCJZ/q9VRtQQacJYUkgaQrbKSGWRd n+LdPjVRN95i/wCchbd7dI9A0qVZLmSKaeNZJOECuiRy+l9bQnmCzU5jYeOxVSg+evzu0q90rR5d Dh9PUJHtbPUdQCyzyzrbT3AEiQ3MSqrOiJz24iux+GqqO1/XfzzuPLMMttpMVh5glh1NYLa2PNBc L6P1PkXMi/3DXJ+MqjSKh6UBVRet+YvzY0rWr+aztbZtNv5LRdMttRAZvrFxDbxfV4HiniJCyGaS QGPZUYg/EMVUI/Mf58R3Fna6noFpLpbyiPV9QgLx3KwGSQSywRwzycSsa/B8RboaEniFWQ2D6zJe eQX1tSurtaXJvlIAb1japz5AbBq/aA2rirFpr3/nIGz1MT2NjHqViJdWEcV68MQET6ii2AlWI82K 2isysp6N8QqnxKoy08yf85By2rSv5e0wSLHI3pOrQsXW1ikQD/TJft3EkkVPBK1+IYqlk/nj86dE sEuNQ0eFFuNQtIria5UTLGt9cLDN9WWO5hdkg5L6cbgFlYszj02qqnui+ZPz2k8w2lnrHlnTYNLk Li6vLeVnKcYaq28lKNIR05UFV3IDFVKtMv8A86bjSL95IJ454/0FLpzlY2ZmW7X9MJLE7W7MSpkq gdF4gLG37RVbi83/AJ9XSvcWOk6Tdiz9W0uoYA5ha8UQuzLM1xyeOFZHjPBatLG67VBCrI/JGq/m VfeY5T5n05NOt1hu0kigLtARHNCLCSNmZ/jkV7r1KU2VKgDiWVTr8t/+UL07/nt/yfkxVjPnxvzc XzHcN5UiafSRHpHCB3t4QZBfStfmOV+TAfVVRHVh+1yXdaMqlEHmL8+7OwRYtBS8uJrwtLLdxpWO 3uLyUsyJHeDa3g9LjETVuR+P4CCqidW1786bjy/DLDpSWWvPa6h6NvEtIzeenbta8qvcLRYZLqgd wrSogNKgYq3q/mH82tJ1IzW1rBJa38Onx2trqAViL6aNI5IYXinhNVcvJIPTPwqxB6DFXN5k/PmD UIrafy5ZXOltdvHdXqOUmFobmQeoipMAKW6jjvyrRj1ICr0Dye2rv5X0xtY5/pEwL65lHGU/ymUb UkK0Lig+KuwxVfrP/HR0H/mOf/qBucVTXFWO67FrMvmPTBpV1b2k4s70vJdW73SFPVtdgkc9sQa0 35H5Yqu+pef/APq86V/3Crn/ALyOKu+pef8A/q86V/3Crn/vI4q76l5//wCrzpX/AHCrn/vI4q76 l5//AOrzpX/cKuf+8jirvqXn/wD6vOlf9wq5/wC8jirvqXn/AP6vOlf9wq5/7yOKu+pef/8Aq86V /wBwq5/7yOKpF5Cs/PJ8jeXTBq+mJCdMszEj6ZcOyr9XTiGYX6BiB1PEfLFU9+pef/8Aq86V/wBw q5/7yOKu+pef/wDq86V/3Crn/vI4q76l5/8A+rzpX/cKuf8AvI4q76l5/wD+rzpX/cKuf+8jirvq Xn//AKvOlf8AcKuf+8jirvqXn/8A6vOlf9wq5/7yOKsd1uz88Dzf5aD6vphlP130mGm3AVf3I5cl +vktUdNxirIvqXn/AP6vOlf9wq5/7yOKu+pef/8Aq86V/wBwq5/7yOKu+pef/wDq86V/3Crn/vI4 q76l5/8A+rzpX/cKuf8AvI4q76l5/wD+rzpX/cKuf+8jirvqXn//AKvOlf8AcKuf+8jirvqXn/8A 6vOlf9wq5/7yOKsd/L6z88HyhYGDV9MSL99xV9NuHYfvnrVhfoDv7YqyL6l5/wD+rzpX/cKuf+8j irvqXn//AKvOlf8AcKuf+8jirvqXn/8A6vOlf9wq5/7yOKu+pef/APq86V/3Crn/ALyOKu+pef8A /q86V/3Crn/vI4q76l5//wCrzpX/AHCrn/vI4qhZrbzTHrWhtqmoWN1bfXJAI7Wymtn5/Urmh5yX dyKUrtx+nFWVYqlVz/ylWnf8wN9/yetMVTXFXknmLyH+ZrebtR8weX9RWCSW8d9OinupWgit202O 3LG3ZHjZ/rKu6qRRa7EcmxVS8iTfn7d+Z4V8x3EUWl2Epj1eNoI4o56Rsim0cQh2UuvqV5UoU3BL oiqnpvkj8220zVIb7UAWuLTSVsyLho5Y77T7wy3sw2mj/wBLYvLyYGtVVlAHHFV0mi/n7dlpLLzL GsljJ9WrcW0UKTN6Km4nWM2qeqolZ44N1U0Dmo2xVkXk3RvzLh8xi781XcF0saXsbXVuEjSSCSSA 2cJjQL8UXpzNyNac+vxEBV6Birz6HSNZ1f8AJnQbDRrhrXUZNP0d4riOZoHRYjbySFZFD0Ppo1AR Q9DirHW8sfnppVpey2vmCPgt093MkUaXTzRvNcyy+hHNDI8blPq6rHzZR8XHoKqom30v8/bqz06V NdhgjuXtJboSxWyXUNs71u4mVrTgbgJxMTcAqjkjozAPiqEuPKH5+zWS2N1r9rdWQFuGjVlincwk O7tdCDn8UiGqBR8JUc6huSqdTeWPzFm89TXS3ar5eeW9E6NIyNIs9mkdq6cCxpCw4BKLxbm/xFqh VJdM8v8A55RwWmjDXwg06DT3kkeKPiTDcR+rB9bNsPW9WASbqvw8VV+XNmxVG+X9A/PE6nZt5r1S zvoILy2lgls0SIxKnI3LOFSMuJY2eEDwKNQHlxVZnr3/ACmnlb/o/wD+TAxVin5jeSPzG1nWr688 uar9QtJYNKSO3a5ljVntL2W4unUIrelI0RjQHdWHIMOhCqT3/lL8/b7y/qmk3GswiG7s5ILURTQp PHKfrCoPrH1TkYuBhDf7tJBIde6qM1Dy3+e18IIpdUs+Ftfpcwy+qqEpC0Aj9VIraPmnwzO0fIVL KK0HHFXW/lT865XvLnWNXt7m7/Q2o2NlLav9WAnuTbSW5MSRqokVoJVMvPYMvFVIaqrQ8mfmw2nc 4NUSzv4dbm1DTpg5pBYTaZLaxQNbMlxEVgmeOsIrUKSrhyGxVqz0f8+rox6lbeYo44bgoht723ij dIIZpV9T6uLdOMlzH6crciCgLJSoUhVlH5b6T58spL6fzdcRz3dxBbLM8PARy3cbz+rcIiBQoa3e 2ipxG8Z6/aZVi03lTzZr3lDyo/l29+pS2M11JPIZ5YV+KYlOaRUMi8k+IAg06EVxVEabpP5822q6 Ne63rFvfaXYFpNYsrFIopbk8bgcYx6PxiskdAWTZa7Maqqu1DSPziv8AzDe61pN1Fp1pcRG3s7e5 dFkiiQOY/wBwYLiNX9ZleRmZyyAheBK0VQKaT/zk1HaIF1jTZrmqF2n9EL+7ihZgFitB/ezesvX4 U4kfEDyVRGj+W/zlg8r3un63qCXyrYW0MEEcsbzM9utv9YRZfSgkJuVE6cpJSRVdxucVaTyj+bNv pllcXWtcNUsNR1G4ub+2JmL2NyQ6BLV4bhXKqpVIVWq/CFbqcVWnRv8AnIWa0hvrPXrOG6ubWGSa 2uooyI5qzuYggiULQSRoz9SRWmxBVT3yzpfmuyvLCTzHIj3VzqETOYyvCSdNImjuJ0VQoRZZF+yA NwWp8VSq9BxVjuu2F1e+Y9MjttSuNMdbO9YzWq27Ow9W1HEi5huFpvXZa++Krv8ADOtf9Tbqv/Ir Sv8AshxV3+Gda/6m3Vf+RWlf9kOKu/wzrX/U26r/AMitK/7IcVd/hnWv+pt1X/kVpX/ZDirv8M61 /wBTbqv/ACK0r/shxVanl3V5FDJ5v1R1NaMselEbGh3FjirQ0DVDIIh5w1P1GDMqcNJ5EIQrED6j 0BIBxVDab5RuNNtLXR7PzfqccVlBFBb25XSmdYo04Rg8rIsfhjO560OKoqLy9qs0ayxecNUkicBk dI9JZWB6EEWNCMVafy/qsbRo/nDVEaVuEStHpILsFL8VBsdzxUnbsMVX/wCGda/6m3Vf+RWlf9kO Ku/wzrX/AFNuq/8AIrSv+yHFXf4Z1r/qbdV/5FaV/wBkOKu/wzrX/U26r/yK0r/shxVjut+XdXXz f5aQ+aNTZn+u8ZDHpnJKQgnjSyC79+QOKsi/wzrX/U26r/yK0r/shxV3+Gda/wCpt1X/AJFaV/2Q 4q7/AAzrX/U26r/yK0r/ALIcVd/hnWv+pt1X/kVpX/ZDiqmdC1IR+qfOWpiPkE5lNJ48i3ALX6j1 5fD88VVP8M61/wBTbqv/ACK0r/shxV3+Gda/6m3Vf+RWlf8AZDiqF0zyNfaZYxWNl5p1aO2h5emh TS2pyYsd2sSerHFVRtGvl9Xl501EegCZ6rpHwBQGYt/oPw0VgTXFVYeWtZIqPNuqkHofS0r/ALIc VWHy/qomWE+cNUEzqzpGY9J5FUIDMB9RqQpda/MYqv8A8M61/wBTbqv/ACK0r/shxV3+Gda/6m3V f+RWlf8AZDirv8M61/1Nuq/8itK/7IcVQs2j6jZ61octxrt9qUZvJFFvdJYqgJsrk8q29tbvUU/m p7YqyrFUquf+Uq07/mBvv+T1piqa4q7FXYq7FVG+tvrVlcW1QvrxvHyPIgc1K1PFkbv2YH3GKvH5 /wAn/Pul6HcxaF5qnjMNhNDZaNac7SBp2leZSJFlRg/xKBKWB2+KqkjFW7L8mPOizLqA8ztZXhiv FtxGtwHtBfXNvdtCpjuVR1WS2POu7+o1T8KcVU9uPyrv7vzxa6/PfoLexvTfwqVMsjmW2tYHjYud gv1KgJ5fC/ZlqVWP2P5K+a7ZH0dPM1/HpS2dI+NxcLaLOnGOCOG3W59RU4eq8w+FeRj9P7JxVM9N /Kjzva6laTX/AJyu9ZtYpLWSWO7Z6q9rfJeNNGoLKGlSL0CvZHYA0HFlXquKuxV2KuxVjWvf8pp5 W/6P/wDkwMVZLirsVdiq2VC8ToDQspWu/cU7FT+OKvFx+QvmWKzisLfzR6elBraSTS1juI4A9q8j rw4XAarViq7VcFAQ2wxVH235R/mLbzrI35h6hcRxerSFzMBIHiWNFkPrEhQF/Zo4JLh+XRVu58j/ AJl+ZPKWkaLfatceXprSwmg1G8S5a4mup57f0QZRHIOQjJZvikNTQ9RiqrZflN52XVrm61Dznc3t m95Dd2dm73nGFYruKcw0+tcWThEVXbkK/aIxVpvyXvrnV9SvrvUowLmy1PToR6Xqs0eozXUwkkLF fiU3vxAb/Bs3FiMVQUP5P+dZVu7U+btTtI4Hhk024kuJ50WVmLSmKI3LH0oVWJYRKa8hJyHBgMVT ryv+Wvm3SvMNnf6p5nuNZtbWZbhFund5E4WM1o0KlqgpK9x6rHY8o1ry/ZVek4q7FXYqlWs/8dHQ f+Y5/wDqBucVTXFWO67pFpqfmTS4bmS5jRLO+cG1urm0avq2g3e2kiZhv0Jpiq7/AANov/LTqv8A 3GNV/wCynFXf4G0X/lp1X/uMar/2U4qhNU8u+UdJs3vdT1PULO0QgPPPreqIgLGgFWuupOKrh5Z8 qFrdRqeoE3bvFbAa3qZ9SSMMzqlLr4iojaoHShxVE/4G0X/lp1X/ALjGq/8AZTirv8DaL/y06r/3 GNV/7KcVd/gbRf8Alp1X/uMar/2U4qhNV8u+UdJsnvdT1PUbO0QhWnm1vVEWrGiipuupPQYqiIPJ vl+4gjnhu9VkhmVZI3Gs6rRlYVBH+k9xiqD1fRvJOjJHJq2sX1hHMSsclxrmpxqSBU/E10AOw37k DqRiqtbeWPK11c3dtb6hqctxYyLFeRrrOqlo3eNZVVv9J6lHVvpxVqTy35UjNty1HUqXkpgtmGs6 qVeUKzFAwuSK0jb7qdcVRX+BtF/5adV/7jGq/wDZTirv8DaL/wAtOq/9xjVf+ynFWO6t5M0gedvL 0H1jUzG9vqMhrq2plgyCAKVY3HJdnYGh374qyL/A2i/8tOq/9xjVf+ynFXf4G0X/AJadV/7jGq/9 lOKpZqmmeRNJd49S1q+s5I4Gu3SbXNTRhbowRpaG6rwVmAJ98VTMeR9EIqLnVSD0P6Y1X/sqxVA6 jonkrTZ7eDUNXvrSa65m3SfXNTjLiMAuV5XQ2WoqfceOKohfKXltruSzW/1M3cUaTSwDWtU5rHKz rG5X61UKzROAfY4qhdZ0fyVosUMurarqNlHcSCGF5da1VQ0jdB/vTiq9NB8nPps+prquoHTrb1vr F3+m9UEUf1ZmWfmxuqD02jYNXpTFVO/0nyRp8skV7q2oQSRRJPIr61qoIill9FHP+k9GkPEe+Koi fyz5Vt721sZ9R1KO8vfU+qQNrWqB5fSXlJwH1rfiu5xVE/4G0X/lp1X/ALjGq/8AZTiqVnTvIomu ov0tqJeyeCO6prOrERtcyGKIMwuePxSKV67Eb0xVNP8AA2i/8tOq/wDcY1X/ALKcVd/gbRf+WnVf +4xqv/ZTiqFm8tadputaHcW819JIbyRCt1qF9dpQ2Vyf7u4mlSu3WlcVZViqVXP/AClWnf8AMDff 8nrTFU1xV2KpJ5w8q2nmjRX0q6me3jZ0kE0SxtIpQ7FTIr8W32ZaEH7sVYDJ/wA45eVjJdNFf3Ea Xd215JH6No32vU/dsxh5Oo9U05kn3xVBR/kVqdpD5gtba8tbq11FNMgsDeLydIdOlgdVYCIooCQE caOHYgngBTFUVef841+Trmp+vXsR+MD0jHGvptDHB6ZWNEqoWI/8Eem1FVWH/nHXy1Df3F5Fq+oL NOZ2MxNu0wa6SSKUiUxFh8EpUAfCKDatSVUcfyL8uC1vII7y4jN7dW17IQsRRJLSOREEMJQxRKDO SAijjRQNgMVY3ef843D9JQfVNcnk02Y3j6iLoqZFe8iWB3gRI1Tl6S8VPJeB+L4jtirNtZ/LC2v9 H0zSodRmgh0/S59EecqjyvaXAgLEbBBJzsot+JFOQpvUKpd5s/JjSde1m41eSQyXmoPbpdySFIzF BGIUnMRSJmZ5I7YRhWYKvNyN8VW6N+RXl3RtXs9Q0+8uVjtnQm1cqI/ThuPrUaRpGI0SkypU8TUB u7k4q9KxV2Ksa1j/AJT3y3/zCan/ANi2KslxV2KsP86/ljovm++S71K4uImhs5bOAW5RDH60iO8i uVZqlY+BH2SpIpirDbT/AJxn8tWrh01q/dlUCN5FtZHRlMzhlZojT97cl6UpVV/lGKpvdfkP5auP LNj5dOoX0dlZW97besjxi4kS/JMnKYozgVO6A8D3XFUIf+cd/LH1wXi308cxkE7tHDarynWS6lSU /u/tqbyletEQdsVX+UvyXlsPLVtpGs3kVwUN9DdNCHZpbbULdI5KytwPr+rCkiyFaqPh+Jv3hVUN U/5xw8q6je3FzNqd8y3NsLaSCQW8qcktGtY5xziLeuhkaUSVrz3NaCiq+D/nHjy9DPJcLrF/JO88 1yk0wt5XR5wiuELRfADwJIWlSx+WKpzpf5Q6dpGnWNjpmr30C2U11N67uk00gvEWOUM8itQlV+0t DyJbFWI6n/zjVp0Oiz2uhanMLqZEgY3RjUPD68c0iPMkUklWaIdjToABSiqc2/5B6RC7TjUpRczR Nb3PGKJYzBPPLPcxJt6qh2uG4VkJUhSeVDVV6nirsVSrWf8Ajo6D/wAxz/8AUDc4qmuKsd13RNF1 fzJpcGrWFtqEMdnfPHFdQxzKreraDkFkDAGh64qu/wCVeeQP+pZ0r/pBtv8AmjFXf8q88gf9SzpX /SDbf80Yql2t+XPyo0SG2m1TQtHto7u5hsrdmsbf457huMaCkffx6AbnFUHfW35HWUd49xZ+XeVg szXcKQWckyfVkMky+kitIWRBUqFriqB/SP5ALDE81poNvLLNDbLaT2ltFc+rP6RRfQdBJ9m4RmYC gU8ieO+KpjFZfkdNEJYLby1OjRSzoYY7CTlFACZXUIGLKgU8iOlMVS6zvfyOuJ44JtF0rT5nd4uF /p9va8ZUjgl9NjKijkyXcZXf4q7Yq1NqX/OP8djdXyWvl+4trWY27vBbWcgd1SKST0Sq0lWJJ1Mj JUJvypQ4qirNfySvLa5uLbStElFss8gjSztWllitl5SSwRhS0sfHdXQEHtiqtNa/kfbQW019Z+Xd P+tQR3UMV7DY20noyiqMUlCMK+4xVBazefkJpEsUN3Z+XzI8wgkWOCxb0T6kcTtMaARrG86c+XSu Kp3pHlb8sdWhmls/LmlMLeeS2mBsbaoeM+yEUZSrqe6kHviqO/5V55A/6lnSv+kG2/5oxV3/ACrz yB/1LOlf9INt/wA0Yqx3VvIfkdfPHl6FfLumLDLa6i0kYs7cKxT6vxLDhQ05GmKsi/5V55A/6lnS v+kG2/5oxV3/ACrzyB/1LOlf9INt/wA0YqlmveXfyx0O3gnvPK+nuLqdLWCO30yGZ2lkBKjikZO/ HriqFtIPyMuo4mitfLitKqusMkNlHKOUZlAeJ1V0bgpYqwBAB8MVQkl3+QseoLYtY6EWeOKRbhbO 3a2IuJBFEBOsZiq7NsOWKr7C5/5x+1C4ngtE8sSyW7sjAR2NG4RCd2jNKSKkbfEy1AowO6mirr5v yTtJ7SM6NpNzHeCJo7q1sLeeBVuHeOBnljRkUSvDIqGtCVIxVbBc/kLPBbSx2egGS6MQW0+q2n1l DO6xgSwcPUj4tIA/NRx/apiqiNT/ACDa9ltEsNCklhnjgdktbRkpJEJfXDBaegobi0v2Q2xNcVTQ 6Z+TouRCdH0X0jZDUhe/U7X6p9VL+mJPrHD0vtf5XTfFViW/5EyKzxxeV3VJFhcquntSVywWM0H2 mKNRepofDFUDot1+SGsyRJp2jaRN61yLRStnZmjSRNNA7qAWSOdEPpMwHI7dSMVZV/yrzyB/1LOl f9INt/zRirv+VeeQP+pZ0r/pBtv+aMVQy+VfK+leZNJn0vR7KwnYXKmW1tooXI9MbckVTirKHdEU s7BVHUk0GKse13W9F0jzJpc+rX9tp8MlnfJHLdTRwqzeraHiGkKgmg6Yqu/5WH5A/wCpm0r/AKTr b/mvFXf8rD8gf9TNpX/Sdbf814qkHm25/JzzZDDDrmvaZcxW6yiGMajCgR5V4GVQsgpKg+w4+Jam hxVC2cH5MWTXJtfMlpCbuBrWfjrPWFjIyoP3+wja4lKU+yXOKpdH5X/5x/h9T0Na0+AStHJIserI AZYpLaVZKer9vnYwknvx9ziqEsPKf5M6f5kj1Sy816dHYfo86Zc6a9/DKJojHJEQ0skzEKVmqQFr yGzAF1ZVH6roP5E6xBEur67p95dKlos19+lI4JpXsY3jgkYwSxKHX1CaqBvT+UUVQ7+Uf+cfXlgm fWrFprYUt5Tq68kP1SKx5KfW+19Xt0X6K9cVRlhov5C2N/JqEGsaZ9dkgltTcSapHI4hmRkKKzys VAWR6U/mOKoa48rfkFcyrPc67ZT3KwLatcPrCmVoEqFiZ/WrwANKew8BiqX6T5K/Ja1e5fUPNljq Bmu5rqE/pGKEoLiaKeRXZZi0hd7aLkagfAOKr8VVWbeW9e/K/wAvWL2dj5m01o5JWmd5dQtndiQq KC3PfhGiIO9FFanfFU1/5WH5A/6mbSv+k62/5rxV3/Kw/IH/AFM2lf8ASdbf814qx7VfPfkd/O/l +dPMOmNBFa6issovLcopf6vxDNzoOXE0xVkP/Kw/IH/UzaV/0nW3/NeKu/5WH5A/6mbSv+k62/5r xVLdd8yfljrdtDb3nmfT1W3nS5hkg1KGGRZY68WDpID3xVilz5Q/5xzuLyS8k1DShNKnpyMuqqpK iL0ftCbn9jvy8fE1VTTUbf8AJbUrmO6v/MVlc3UUcccc8mrqzr6UqTBlPrbMXiXkR1+k4qkWpeS/ yJubK7htvMtna3Vzbrbpc/pZZAnC0WyRuBnUH/R4wh3BI7g74qmllYflAmkJpeo+Z9L1G2bToNMv YpLy1SOaKzna4tTRX5r9XeR/T+PofiLHfFUGPKP/ADj6txezprdmjajMLm8VdaIV5RIJedPX2aqC rDc03OKqUHkb/nHOCxewi1awWzkMheEaxRT65rMNpxtJQch7DFU1vNN/I27s7eyl1zTlsra0+ora x6nFHC0Af1ArxrIFaknxjbY4qx698hfkgbzTrnSvNWn6atjNHJJCL+CZHjhlknjjRHl4J6bzuU+F lFfskhSqqd6Jo35HaJd2tzp/mKyRrV1kVJdWSZWMQcRBvVlf4YzIWWnQ07bYqzT/AJWH5A/6mbSv +k62/wCa8Vd/ysPyB/1M2lf9J1t/zXiqGTzT5Z1bzJpUGlavZahOi3LvFa3EUzhfTAqVjZjTFUJ+ celeYdW/L7UbDQLuOx1GZ7crdylgEWO4jkanBW3bjx6dDiqeP6v+JdL9YKJf0fe+oEqV5eraV413 pXFU4xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux VKtR/wCO9pH/AEcf8mxirvNP/HBuv9h/ycXFXXP/AClWnf8AMDff8nrTFU1xV2KuxV2KuxV2KuxV RvbkWtnPclDIII3k9NaAtwUtQVoKmmKsL8m/mmnmm+sYLfQr60tr+2e7ivpzB6Rjj41I4SM7Csir Xj9qo/ZJxV2n/mrbXslnapo92uo6lU6baF7f98i+uXbn6nBOAtHqGPhSu9FUv0P8/PJesnTlt0uY X1C6vLcrcIsfoxWNvJdPcy1b+6aKI8SK1NQPsnFWrf8APvynPHpl1HbXR07UUidrsCMi3Mj3MbiZ A5cek1i/qEDYb9MVRCfnd5aRNJlvrS7soNYt7W4t53VHXlez/V4o04MzSty+J/TDcQQfGiqYWv5w /l9dqTb6hPJJ+xbixvvXkPpxy0igMHqyExXEcgCKaqeQ23xVQh/O78tZLC3vm1R4oLiOKUGS1uvg WaH6wDIViZVCxfGzV4qNyaYq7Uvzg8s20NlfWoe+0e5iiuLnU0pHHbQ3E7W0Mkiy8Go00bIdvhPX riqgv55eRPqkMjy3AvDcRWd5ZC3mZrW4aaCCVJ5QnoJ6L3Scjzoa0XkSAVUND+f/AJDuHme2lkls IZuP6QEcggNukSvPcBio2gdwjx/brvxpiqeRfml5RnuLf6teJPp02m3erzakrqIre2svq5k9dGIl Rit4jAFOmKoW3/O38sLlBJBrXqI0iQRlba7POWRSwRP3XxsFUlwteP7VMVQmhfnZ5Y1maRLaKdFj vrW0BljkjLQ3y2qwXCh0VT/pGoQxMgaqhuf2aVVeh4q7FXYq7FXYq7FXYq7FUq1H/jvaR/0cf8mx irBtQ/MW91Hzx5j8kNpgitNJsobsakJORZnmhCo0ZAKchKSvjxNK4qzm5/5SrTv+YG+/5PWmKpri rsVdirsVdirsVdiqyeGKeGSCZBJDKpSSNhUMrChBHgRiqVt5U0VbdIbOI6dwhhtUlsmNvILe25ej DzSh4J6jUXpviqjb+RPJ9vYGwj0i2NszLI6tGrFpErxdmPxchzbev7R8TiqhL+W3kCWJopPL1gY2 ZnZRbxipcSBug6UnkFOnxN44qrL5D8mLqTamNFtBqDzfWXufSXmZvj+Mmn2v3rfecVbk8ieS5FiR 9DsikEMdvAvoR0SKFxJEiCnwhHAK06HFVg/L3yMsqyjQbESrHHCJBAnL04VjSNa0r8KwRqPZQMVU k/LP8vUlSVPLmnLIgCqRbRD4RH6QWlKU9P4aeGKo4+UvLh9IGwiMUVu1mICKxNC8iy8XjPwPR05K WBIJNOpxVBt+W/kFmmLeX7A/WGLzgwJxdjIktWWlD8cMZ/2I8MVWL+WP5eLE0Q8uad6TMXZDbxlS xJJJBG/It8Xj3xVGX/kvylqEdnFf6Ra3UdghjtEmiWRURmR2UBgQQzRIxB6kA4qk2tflD5D1WKFD p62Tw3C3IuLPjFMzKnp0MlGYfDShUhlIDKVYA4qmNt+Xfke0u47u00W1tbiKb6wrwRiKsnwGrBKB qNDGwB2DKp6gYqyLFXYq7FXYq7FXYq7FXYqlWo/8d7SP+jj/AJNjFXkkGpWNx+bXnGCzktysVu4n WOSYzPOj6asjMhu54jw2QkW8RFAKtvir07XtQu7LzLpb22mXOps1nfK0Vq1srKPVtDyb6zNbrT5E nFV3+Jta/wCpS1X/AJG6V/2XYq7/ABNrX/Upar/yN0r/ALLsVd/ibWv+pS1X/kbpX/Zdirv8Ta1/ 1KWq/wDI3Sv+y7FXf4m1r/qUtV/5G6V/2XYq7/E2tf8AUpar/wAjdK/7LsVd/ibWv+pS1X/kbpX/ AGXYq7/E2tf9Slqv/I3Sv+y7FXf4m1r/AKlLVf8AkbpX/Zdirv8AE2tf9Slqv/I3Sv8AsuxV3+Jt a/6lLVf+Rulf9l2Ku/xNrX/Upar/AMjdK/7LsVd/ibWv+pS1X/kbpX/Zdirv8Ta1/wBSlqv/ACN0 r/suxV3+Jta/6lLVf+Rulf8AZdirv8Ta1/1KWq/8jdK/7LsVd/ibWv8AqUtV/wCRulf9l2Ku/wAT a1/1KWq/8jdK/wCy7FXf4m1r/qUtV/5G6V/2XYq7/E2tf9Slqv8AyN0r/suxV3+Jta/6lLVf+Rul f9l2Ku/xNrX/AFKWq/8AI3Sv+y7FXf4m1r/qUtV/5G6V/wBl2Ku/xNrX/Upar/yN0r/suxV3+Jta /wCpS1X/AJG6V/2XYq7/ABNrX/Upar/yN0r/ALLsVd/ibWv+pS1X/kbpX/Zdirv8Ta1/1KWq/wDI 3Sv+y7FXf4m1r/qUtV/5G6V/2XYqhk1fUL3zJpUdzol7piKtyRNdPZMjH0x8I+rXNw1fmtMVYDNq iXX5k+fLNBbLHZaPeKFBkE/qehZyPIqG6mi4kuBI6W8RJVKlyuyr1K5/5SrTv+YG+/5PWmKprirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqVaj/wAd 7SP+jj/k2MVeQeW4YZNc866l+mrfULm+0vUJpLON7kukZ9NI51jmhhWP1PTZXUMQAqBeVHYqvX7n /lKtO/5gb7/k9aYqmuKuxV2KuxV2KuxV2KobU5poNNu54P76KGR4vhL/ABKpK/Au7b9h1xV535J8 0fmFPc6ddebbix0/S59PS8uY3tntmR7jaCNppZeHqsRISig8VUcqM2KoXSPPfnq5trWWdQbG4cLe asum3JFoT9ZIUQhuUyv6UI5rsvPfqKKpRpH5w/mUE099e8sTWsa3l8dVkgtLp/8ARora4ktYYlIq Jmng9NjuB8B/bxVVtvzR/NKS9063k0ApextFb6xpptZuLTK94s3oXQZoqOkELRmpWrUJxVEH8y/z Ls4tEmn0Nr0XdjYz6hbpZ3MTxSXN0I52lY8hEIomBCqHNa8gBuFUdZ/nB5rmcQTeSp7e5kjSaF2l u2tgk0VvKhlmFjzX/eoxtwjcq6EUp8QVQdv+d3m421qJfIl81/JFC89un1pPia1+sSpHytCpcN+7 VS+7bFh1xVHal+YHnqWDTr6w0drWQ2SahdaEyi4ubhDdfVp0gasfxW6GOWtN1ffFUs/5XH59jtfq 7eUZ3vLG6jt7+7KXQ9eKO6tYJp7W2W3Yn1RcOVVpRw4sfi48Sqgrf86fzEnFxet5QvILZbgvFYmC 4kuPTijCG2qsPE/WJQ7xzV6Ajj0OKspuvzL8xW0ml3tz5evoLS70q8un02OE3c01/E1oLa3hlty/ ESfWJRWVF+zy+zviqRy/n/rFpCkup+TbjT0luEtkknuWES/uTNNLJKLfgscaCtQW2qW4BWoq15Y/ NXz9faibXVtFks5JtTtY7WNoplVoJVsobu3/AHsMVTAbua4DhiT6TL9kcmVey4q7FXYq7FXYq7FX Yq7FUq1H/jvaR/0cf8mxirxLyneXn+K/Otj9alvDHo2oza1cO8yq147RrADFciOVuEaSKrBOCLsp 4sMVe23P/KVad/zA33/J60xVNcVdirsVdirsVdirsVdiqyaCCdPTnjWWPrwdQwqPY4qvACgKooBs AOgGKuxV2KuxV2KuxV1BUNTcbA96H/axV2KuxV2KqF5p9hfJGl7bRXSRSLNEsyLIFkTdXUMDRl7H riqvQfd0xV2KuxV2KuxV2KuxV2KuxVKtR/472kf9HH/JsYq8X8tQNL5v873fp3Yt4NH1K2tVvdU/ SJiUyJzSJfXYRIzx/wB2sbcCtDJuECr1vXodal8y6WNJu7a0lFnfGR7q2kulK+rabKsc9qQa96n5 Yqu+pef/APq86V/3Crn/ALyOKu+pef8A/q86V/3Crn/vI4q76l5//wCrzpX/AHCrn/vI4q76l5// AOrzpX/cKuf+8jirvqXn/wD6vOlf9wq5/wC8jirvqXn/AP6vOlf9wq5/7yOKu+pef/8Aq86V/wBw q5/7yOKu+pef/wDq86V/3Crn/vI4q76l5/8A+rzpX/cKuf8AvI4q76l5/wD+rzpX/cKuf+8jirvq Xn//AKvOlf8AcKuf+8jirvqXn/8A6vOlf9wq5/7yOKu+pef/APq86V/3Crn/ALyOKu+pef8A/q86 V/3Crn/vI4q76l5//wCrzpX/AHCrn/vI4q76l5//AOrzpX/cKuf+8jirvqXn/wD6vOlf9wq5/wC8 jirvqXn/AP6vOlf9wq5/7yOKu+pef/8Aq86V/wBwq5/7yOKu+pef/wDq86V/3Crn/vI4q76l5/8A +rzpX/cKuf8AvI4q76l5/wD+rzpX/cKuf+8jirvqXn//AKvOlf8AcKuf+8jirvqXn/8A6vOlf9wq 5/7yOKu+pef/APq86V/3Crn/ALyOKu+pef8A/q86V/3Crn/vI4q76l5//wCrzpX/AHCrn/vI4q76 l5//AOrzpX/cKuf+8jirvqXn/wD6vOlf9wq5/wC8jiqGS38zR+ZNKOq39ldQFbkIlrZS2zhvTG5a S6uQR7cfpxV5zosmpw3GrjUzepazaRq8Oj2l5ZS2cFgGZZTZ29xIB9cM0cfqcm+ILESvwk0VetXP /KVad/zA33/J60xVNcVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVSrUf+O9pH/Rx/ybGKvKfLvm/UvNGlavZ6/JHPe6Xa6neWIMckUw4RPbLKrxqlvL GYbwqVIVlb+f7QVerXP/AClWnf8AMDff8nrTFU1xV2KuxV2KuxV2KuxVDanDNPpt3BB/fSwyJF8R T4mUhfjXdd+46Yq838n+Rdc8qy6fquqXGoavcW1gkNxBDeT3Ia7m2l4wTOkYihC7NuXaQtQcRiqh o3kXzzDaWskzn6ujq1/pD6ldBrsf6RSRpwCYWQzRfAtQ3Dc7LiqU6R5D/PTSk09pdah1U6deX14s U93KPWkuba4ii9VvT+KGKZopVQ1+09ei4qq235d/m+l7pyza2HOltFDFq4upg00MD3jJJPakMjFl uIkkUueQX7QPRVEHyB+bNrFojadq6x3VhY2MN+73s8qPJDdCW6WJHjpWWMlS8oeooKLQHFUdZ6L+ fUbiG612Ca2kjRpbhfqiXKO0Vv6qRUsTCOE/r8WdHBSgI5fFiqDt9B/5yMitrW1/TtjziihV7tzD JykjteLGRWs+bI9zu1G5cehB3xVHan5P/MnUYdNe51NW12zsleDUFJhtVvI7qsyzwwlOYuLVwnwr QMhO21VUs/wj+fKWv1GLW4BZ2V1G+mRiZBztbe6tWhhupjbNcPSGOfkwYF6qGqCy4qgrfyP/AM5A EXF1dazZy6nLcG5UibhbidIxDbTemtuSOEafvI68GJB41FcVZTdaH+baSaXfQ3tjfarFpV5YyyyN JaQx3dy1oYbqaGP1o5zF6MxoqJ9riP5sVY3qQ/5yL0i2glm1BdUE95FFItlbWzTLAsRJKx+gURpJ PhZ5HKA0/u1JKqq/ljyP+b2najXVNQjvIbjU7W9e4WZHaNrdbKKeX+5galzbQXURWrbuppXk+KvZ cVdirsVdirsVdirsVdiqVaj/AMd7SP8Ao4/5NjFXml1501zUPzA88+WJ7gvpWm6LdyRWoTiqMYbb gWrbCpPqyU/0lqj9gbYq9Luf+Uq07/mBvv8Ak9aYqmuKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpVqP8Ax3tI/wCjj/k2MVeNeXoNUl83+d7u5vdS u44tEu1lXUIooViluEiZVEEEEUUEhWAlqSM0qcGYDgCyr1jXtHtNU8y6XFcyXMax2d8ym1urmzav q2g+JraSJmHsTTFV3+BtF/5adV/7jGq/9lOKu/wNov8Ay06r/wBxjVf+ynFXf4G0X/lp1X/uMar/ ANlOKu/wNov/AC06r/3GNV/7KcVd/gbRf+WnVf8AuMar/wBlOKu/wNov/LTqv/cY1X/spxV3+BtF /wCWnVf+4xqv/ZTirv8AA2i/8tOq/wDcY1X/ALKcVd/gbRf+WnVf+4xqv/ZTirv8DaL/AMtOq/8A cY1X/spxV3+BtF/5adV/7jGq/wDZTirv8DaL/wAtOq/9xjVf+ynFXf4G0X/lp1X/ALjGq/8AZTir v8DaL/y06r/3GNV/7KcVd/gbRf8Alp1X/uMar/2U4q7/AANov/LTqv8A3GNV/wCynFXf4G0X/lp1 X/uMar/2U4q7/A2i/wDLTqv/AHGNV/7KcVd/gbRf+WnVf+4xqv8A2U4q7/A2i/8ALTqv/cY1X/sp xV3+BtF/5adV/wC4xqv/AGU4q7/A2i/8tOq/9xjVf+ynFXf4G0X/AJadV/7jGq/9lOKu/wADaL/y 06r/ANxjVf8AspxV3+BtF/5adV/7jGq/9lOKu/wNov8Ay06r/wBxjVf+ynFXf4G0X/lp1X/uMar/ ANlOKu/wNov/AC06r/3GNV/7KcVd/gbRf+WnVf8AuMar/wBlOKoZPLmn6Z5k0qa2lvZHZblSLq/v btKemDslzNKoPuBXFULqPkXypoeja7qOlWAtr2bT75ZZhJKxb6wvqylg7sCzvGrFqVxVPrn/AJSr Tv8AmBvv+T1piqa4q7FXYq7FXYq7FXYqsnmighknmcRwxKXkkY0CqoqST4AYqkek+fvJWsX0Vhpe t2d7ezIZIraGZXkKAEk8Qa9BX5b9MVXQee/Js9tJdRazaPBGyo7iVftPy4ilamvptSn8p8DiqItv Nnli6FqbbVbWcXtxJZ2hjlR/VuIVZpIk4k8mVUYkDtiqmvnTyk1zaWy6xaNPfrG9kgmQ+ss3P0ym /wAXP0Xp40OKrrTzh5VvJLWO11a0lkvYlntEWZKyRu5jRkFdwzgqviQadMVTfFVsUsU0SSxOskUi h45EIZWVhUEEbEEYqgNS8x6Fpl5aWWoX0VtdXxItIZGo0hXqB/nviqqmsaU+nW+pLdxHT7v0TbXX MCOT6yypBxbofUaRQviSMVUn8x6Gl09q17ELmO5jsXiLfELmaITRxU/maM8h7YqiJNT0+PUYdNku I11C4jkngtSw9R4oiqyOq9wpkUH5jFUTiqV2/mjQLh2SC9jkKXa2DMtSouXhW4SPlTjVopFZTWhq ANyMVTTFXYq7FXYq7FXYq7FXYqlWo/8AHe0j/o4/5NjFXebP+UV1n/mBuf8Aky2Kuuf+Uq07/mBv v+T1piqa4q7FXYq7FXYq7FXYqo3tsLqznti5jE8bx+otCV5qVqK1FRXFWJ6L+XkPlq3s/wBASxm6 srOOxia8TkhAIM8zel6btLNwjBJYgBAFAFcVQ+m/lXDZixuf0vdHVtNP+g3qrAFhVhMJIxEYyrq3 1qTd6npQim6qQ2P/ADjr5c0xYTpWsahZS20l1LayIYD6bXtvNazMAY6eo0U6gv1Ppp4bqomD8gfL UMkMS6heHS7aUPaaaxRkijV7mRYklKmYBXvXZW58lNKHbFVa9/Izy/dW2nW7ajeqmmW1nbREegGl +oTi4ia4IjHrDmu6N8PhQ4qhbP8A5x58qWjgQ3c4tjGiTWLRWjW0rrFbxO8sJhKSer9UDsr1HNi/ XFUKn/ONnlZYoLf9K35tbdIo0jpbBh6Nt9VR0kEIdZFHxhh0fcb4qnp/JzRP0bBpQupxp8VilkzK xFwr2939btpYZqn0yjvIp2NVIG1N1Unf/nHPyu89xN+krz1Jrpr2GQrbGS3me4t5yYGMR9Pa0CUA pR37NTFVC0/5xp8r21pLbR6xqIMokRrisBm9KYjnGJWiZqKFUJv8P04qyGb8oNN+pWNnZaxqNhFa 6dc6TI0U3qO9reG29VIzOJvQNLNADHSlSftfFirEdS/5xvtoLaAeX9TZZheRXFwl78cLxxRGNFYK rSSLG3xLGz0pUKyfCyqp3oH5B6FoV8txYajcek1zbT3MLxwDmllJaTW6cokiPwSafGamtQz92rir 1HFXYq7FXYq7FXYq7FXYqlWo/wDHe0j/AKOP+TYxVKvzWbXE/LfzJJoZH6UjsJpIFKepyCLykQJ3 Z4wyj3OKuTUTp195efzHe28F+2lXCXk0jJBG9zyszLwDGgqwJAGKpr/izyr/ANXmx/6SYf8AmrFX f4s8q/8AV5sf+kmH/mrFXf4s8q/9Xmx/6SYf+asVd/izyr/1ebH/AKSYf+asVd/izyr/ANXmx/6S Yf8AmrFXf4s8q/8AV5sf+kmH/mrFXf4s8q/9Xmx/6SYf+asVd/izyr/1ebH/AKSYf+asVd/izyr/ ANXmx/6SYf8AmrFXf4s8q/8AV5sf+kmH/mrFXf4s8q/9Xmx/6SYf+asVd/izyr/1ebH/AKSYf+as Vd/izyr/ANXmx/6SYf8AmrFXf4s8q/8AV5sf+kmH/mrFXf4s8q/9Xmx/6SYf+asVd/izyr/1ebH/ AKSYf+asVd/izyr/ANXmx/6SYf8AmrFXf4s8q/8AV5sf+kmH/mrFXf4s8q/9Xmx/6SYf+asVd/iz yr/1ebH/AKSYf+asVd/izyr/ANXmx/6SYf8AmrFXf4s8q/8AV5sf+kmH/mrFXf4s8q/9Xmx/6SYf +asVd/izyr/1ebH/AKSYf+asVd/izyr/ANXmx/6SYf8AmrFXf4s8q/8AV5sf+kmH/mrFXf4s8q/9 Xmx/6SYf+asVd/izyr/1ebH/AKSYf+asVd/izyr/ANXmx/6SYf8AmrFUE+taNf8AmLSo7G/t7uRB csyQSpIwX0wKkKTtir//2Q== + + + + uuid:946b19fc-0302-2b4a-951f-32f3f9bd0b70 + xmp.did:7ee8e38e-81b0-4f0b-83d6-9dffb8a573da + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + uuid:fce121a3-19ac-f245-9514-8c384a868b85 + xmp.did:ae9c86ca-e768-41d0-925a-041a584842b5 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:1e7da349-7966-4eab-87ed-19d8257f04f4 + 2018-12-05T14:17:17-05:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + saved + xmp.iid:7ee8e38e-81b0-4f0b-83d6-9dffb8a573da + 2019-04-15T16:06:24-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + + Print + Document + False + False + 1 + + 612.000000 + 792.000000 + Points + + + + + Palatino-Roman + Palatino + Regular + TrueType + 13.0d1e2 + False + Palatino.ttc + + + + + + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 15.000000 + 100.000000 + 90.000000 + 10.000000 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000000 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000000 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 20.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 10.000000 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000000 + 95.000000 + 30.000000 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000000 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 15.000000 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000000 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000000 + 100.000000 + 35.000000 + 10.000000 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000000 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 20.000000 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 40.000000 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 40.000000 + 45.000000 + 50.000000 + 5.000000 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000000 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000000 + 65.000000 + 40.000000 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 40.000000 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000000 + 50.000000 + 75.000000 + 10.000000 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000000 + 60.000000 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 40.000000 + 65.000000 + 90.000000 + 35.000000 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 40.000000 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999400 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998800 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999700 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999100 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999400 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998800 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999700 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999100 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998800 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000000 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000000 + 90.000000 + 0.003100 + 0.003100 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 8 0 obj <>/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 12 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>> endobj 9 0 obj <>stream +H‰´VKs"7¾Ï¯Ð#ëÕz×ö&•díÝSÉ!›¢0È,Y03ì#¿>-Íä²Y¸PHÝß×_¿tõþ†\ÝÝ0r}{C2F—“ß²«Ÿ'Œ,«Œ[M•RÄC ³$çÂ)ÈÞg“ìºè->gWE~ÍŸ‚XEÁ1ÒQ«¸$Å&MVÿzòq¤ÈÃ÷ÚWÇã⟌3*™#ŒXR,²¿FŽAQCF«r±ý:]ûrYÿ]üŠ€9§‚·Ùˆ4Ÿàëúèëm‘aHZI Ð=é."íà2"ÉÕ¹å ÜchŠuZ¨ApÛ}ýÙGNö”SŽî8å‚áš'óí~Ì udt®GˆƒPJPalšç)µÀ81 Ý)¦8l¦U±(X¤‹Wky©ÔW®‰W ®yW~A`¦bÌ÷!1†”û[ò°¥ÓÔpÖ`3ƒ:DìQ?ÀЦ놆NÐȧZè ½Ö¦Õ¥iMlšyW%àÜóU’< y{ö°«Ìäa©Å×c¦{ÌÔa™:L’VuÆ;¡¦ïý·Ÿ×~‘èZ@rÖˆzß§c¹Ú–ÕE¹åRP¦UL„­Í|}¨j¿o“7ÀVDq1F÷Û/~¿žíª!¬Mœy{Ë—_üz»ó×8VZçj±Ý s¬DÕ– +Öb¸öÓz¶L Ifqï°û!´Í|Vë©%CÞC {©C¥ÐT3Œ£ÊiÝdoU¢Æ‹dö„´­×¾ª§¨ÈlU^ˆ‚EÅÅÙ2Þžø§ÕâÛYÛo «X[j€¼0å—dÑÏ%%ŽFÇÛ–6ÓÛ÷wo~¹'“z?ÆÞ<ÌëC¯/"þ1v!‡£Ù~5{Xûü]Ü —Gª —{ ‰&?€0îÕ ˜þ! 8¼–Àúü<Þ¾ Ž4†e¦´À-‰óM|3l2Üâ2lD‰ÛÉ +²Fn¿ŸJ +ÌC†3Ií¢Âÿ€V@-šP&ñ÷§ìñÜ>!3D`g€Ä™sâÄiކ^Dçeà&>nÂÎŽr)ŒWpt…q€Ñ‡È@-ªzU§Ëöu]0TG›f£KÇôÅÂkûéZç,ÌÐÄúU&±aûµ,ݶIZö«HÂK#ÉZŠÑâÕPZªæ‘tx¨üÓ´ªgûz8DpÊé°œúÍ|m|vU.»ÒS}é‘³Ò »žKgU·bÞÌçkýŒ5Cäín}54„g Ožœ/kÂq `ꀇ¤–ík­AÚËÆ—sOãþA<ªt|{‡ïõÿÊB»ú endstream endobj 12 0 obj <>stream +8;Z\6#nhk5%"(kme*$=nNe9i^9uI*n*O@Q(!jX)p)C[!&",Q0ip#BGM1;Q0=IU#,l"m*?j$Z +Itb-q&%Ht$g`r]tH\Le&5_H5]r_dV&N\pNjbp"Ehop>-V(-P4GZf'Bj:%24iVR=)@ +-+Wg:a0$J8>3W_=,hobfQlVgZ09cF8T.D@$2GnH'rG!bF"]l_um&EAdS#Ei$NU +XuH,kAGo,M?/p72^Y\I.]U!'oYH_`(Z0.X.kPIXkO[p`1It6tf5&tF-~> endstream endobj 13 0 obj [/Indexed/DeviceRGB 255 14 0 R] endobj 14 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 6 0 obj <> endobj 15 0 obj [/View/Design] endobj 16 0 obj <>>> endobj 5 0 obj <> endobj 17 0 obj <> endobj 18 0 obj <>stream +H‰„– xÇÇÿïÌ䨢ÔîÌwÅM,mžW´\[oQE!HšˆD­¡-µ¥¤ÜRziBRUÅMRµ Z{ƒENrìûòè¥çÜ÷,mqŸ§wžç}ç›wæ›93ÿoÞßILHŠBeÌ„D¿¾ƒ[ÂS.²…EƆÇ÷|íf€Ú¾'"'&žî—|ÙYGÅŽõ¶ƒxÌ„Ñ1“Gùõ\¿¨’ È‰Ž +i˼>ˆƃ^æ€g|Äv £c'yÛ;€ºñ1q‘áÂú}<ÈíÄØðIñžþå_²3Þ +:šÇk.ÏdD|Ü„Dg+ð+ë»ú㢼ãWv`—©S*| DŽ˜Ï‘OMh‰ÿà™’áœãÝêažv—~ýz£3à|júü·\ B¤,0@KúpŸ<à³Èµš{ ¹ëê|~ü$Ì0‰Š®ÁÛóg!-¼oýuñ¼)¡ø·›PåQQ ¾¬ÔK¨?ø£*ªñª/£j¢j£ê¢êà ͿÍ+ !ÐhŒWÐMÑ C‚Ñ-øZáU¼†×Ñ!hƒ¶h‡ö耎èÄ;ï‚®è†îè7Сè…7ñz£þ޾è‡þ€xÿÀ;„Á‚w1ïa†cÂàÒ9‘‰(ŒÂhDc Æbb‹÷‡xŒG& I˜ˆXÃɘ‚©˜†éHÆ þ?ÄGø³0Ÿ`æbæcRð)Ò^¤â3,ÆüŸc)–ÑNÊ +ÓÚ…•X¥*° éX5È ¬¥Ýª<¾ÆzlÀF|ƒMØŒ-ø[ñ¶á{lÇìÄ¿ù{ÉFŽª…]ø»±{±ûqq¹8Œ#8ŠŸð3Žá8Nà$Ná4Îàäá,Îá<òqïM +Q„b\‚ª¸•¥üˆÅ,Ç{+X™õI&ªO ¨)…Ó4ƒÑbJ§LÚB;h]¤²ÑMz(jŠºB‹V¢µx[ qb²˜#>‹ù þQGÅqQ nI%}eYMÖ”õdcÙB¶‘]dwÙWö—ƒd’œ"“å|™"SeºÌ”[d¶Ü-Ëcò¤Ì“ùò¢,”ÅòŽ¡"Õ8•¤–¨•jÚ ¾SÙj¯:©òÔyeSWÕmuß?̼Üü¥ù¼9ßl3_6ß5ÿªËé*úe]_ê`ÝZwÒ=t=HÑCõ0=ZÇéézŽ^¤—é¯ô:½YoÓûõi}V_зõí0*• ³a5æF+£­ÑÑènÄ“dc†1ÏXhd™ÆF‹´øX*XªYjX¬–@KSKe¸e„e†UXMÖ*ÖªÖ:V³µ©µ‡5Ônjà°!àHÀñ{‹‘OL?G GmGˆ#ÔùÔétß©òn ¤QU2SCjF4É­A­£Í¬ÁnÚÇ’îÐcQK˜E£ç4Ha ²Å.qP?‹s¬¤‰5ð—5d]Ù@6“!²³ìæÕ Ñ­Á,Ö`¡üL®‘_ËoeŽÜ#Èò—g4€ŠPcU‚JUKUšZ¯6©íj·:¡Î¨sªD]Q·Ô=ÿf˜W˜ÓXƒ‹æRóó= ]^ûéZÚÐus¢;ëPÝÏ«Á­ãõL=W§ê/tšÎÔ[ôv}Pçésº@ßÓ aøþ†a°-6F{·‰ÆÖ`¦1ßH3ÖžÓ ‘¥ k05ójàïÖ Ð­A˜u¤[ƒõÏhÖ kÐÂÑÓ­_çCg©ÓæÊ­lOØnpª#guµ˜†ªÙ¬@/ÎXà¼Õ½ÙÙ³[Ut¶³†³¦³¢Ó»ã¼ãà8î8Æïv ëàœìHq?MãØçzG’c¸c'ÛÕ‚éAGØ¢h$ûlûØ~ ,ÑA"„õmü2²»Ü]W +”Æ\¾~ùZiÄe{)¯l7±1 í>lœùíåØÈŽ2þÞÊxwöze íÁe+ícÊö•=ðÌS–ÀqÍ3_Zë‰/µÝ/žÍõ$ÛPÛ`[``äíÛk3ÿ`«n+(ëj—<*ù‚£ÑEÛKDá hua"p)·ˆ9XؼøIáœÂù· ß+|ãdF¹Ó€OWŸÎ>}}j«n,ÍôB&™Ïf8Û(¶c/îUüäö¹ub»ÛocËû=³ˆâûügFrû¿G]^ØÙn¼0›]fȵœ§6Émr¯Ìå;r†oG‰,•Wä5yCÞ’w\ãä­gß’¥l—¥ØüØjyú”Áôü*ª­zGÅsí²ÅîÈ*µSåx{³þçÞ›Úª²~ïóÆ·ªmžúÈz·Ïtûÿ{Jê_/<ÿ62˜nÃüºÂŒ[Èt[ɔʠ¹Lº|fßÜÃ}æÝ2¦ß>¦Ê]¬b†=Äx‚§(E²i$ßõQ4v\– $ÉJ¢ª¨&ªË(9žY}ÉKêb¦v‘)ÄÔ†âLmi<%ÐJ4µ£$šÈlþJµ§téC¦Ö´–Ö©v4™¦ÐTÚdªkªcú/ëÕÕyÄïwwæ[V`W– n€½À²È{… Šp‚шd[1šˆ[_ÑX«¢©à£ñßöa›Û5õ¢–¦¦#ÕZßÖ$>¢Iš˜ÚØX]û»»˜XONûOÏ=sïܹ÷Îof¾ßÌÄËÖÔœ½õ$ãI|Vžæ2öñRnâü_—gxÏæ—äY>ÂóEþ”¨µÏᇠ֮£Õ´†ÖÒTÝŸÒ÷i,5ÐÏÉGߥÁTGCiÕÓ(T…1ô=šH“P¡§Ð‹4•~@?¤™ôýˆæÒ¤Kt™®ÐUÔŸë´]Á»ô1º„Oh9êÑ +úœVÒ ZE_ ƒØL#h¦]4ŽöÓxújY+M¦4Þ¦ét„fÐ{4‡ŽÓ|ô/ÓIìºkj/‰ýôzM½ª~DÃQý.ÐóØq¯¢ç˜EGi6µ©õ~•—ój^É«x¯áµüþ5ÿ–·ñìçfÞÅ{y·ðnÞÇûùOÜÆ'ø8ÿ™ñI>Åò|•/ó¾ÄŸóg|“¿à¿ó þ’oqR‘, ’¤*2Œ—!z[¿ˆàQÄð}DíoˆÛ=ð&ÞÌ œÈNÖ8I:¥&“dºLäƒ|ˆßæÃü§#º#zH·L•|ŽÏó>Íá ²³L“™|›ÿÅ_ñ?ùÄÿà;<„Ÿæ¡ÈžA2GfK—”2†r OD>½ Sd²ØN9z§J¹”MZ°W=\ÓûÖ·ÐU¾©Ì£xe‹ØA ”HFÃjyŠbɮܢ8êDÊz„Lb§8(v®£GþŒ,MQ)ö‹7Él˜©wº†Ã,t'+0#tÅ\PŠ®¿¯²]ðI •ën+ÐuS£YQ2û4+¦êÚmB,ö5‹{sš•òøÝ˜O OÉjVD¦ÓÙst¹_ Åš AºÎé¬ð\ýj“}è,{otV8G î'WðŠõ¾§_é_;絚¿Ôçøš­÷ùƒÒõPPO£žk×ð\PÜÅKœÙÇé7¤V×>Uëo(wøKË}Msöô·V×ú[˚χ·ä×–â:}ô#í6a³LÒÒ¿Ö_êð+¾ÆÆÐ]²æohlt4bí÷ÍJëC¡<,(mÀºFƒ«g³h¨>jHÖº YKÖ`§¯ÿ6eöé_Û–j¾,EÕ§AÆÐˆf>ÍAzÖâ”ãØ‡¦_®G³hNSã§¡õN)Ô*9SMj½LÇðØ£s¤Ô§ËŒ²`Ì!Íh·ÌÍ÷ÌéðB]£¢˜QÌŠZ‡¿†éÍÉõˆTÕ’o-…v©Z¢­v5ÿÄ•>3šªÒ~¶~Ùæ@ÓvôÍ©M¢Óå¶¢¼­ªÀ¥À»!G²¡W ¦Y Ka£J á70È&ÔTê òd]³ݬXÎ)ºº=¹žŽî«%ZuÆZ-1j¤ØÐY7Â4(Д·U¼!ùbÃÑŒíhDÏl \¹r4ä,±S¯V­0ö©º{a 4z 5›1+KµçŠ‘s£æàÝépý^¦¤)SBv'àÕ5Ú@0&¼^ËQÚccÔccT¢J|í«.°êÁjÄ肘±º 6$°FïV,Šáf³boƒU9¢°‡]µYbì ªÝ–šœÄÞµ°Àêµä»óݸ7ÊÕÖðð13öx;E³Áá]v·47p~UŽÃÌÂHF“k3Mä~á‰UŽð@Ay`Ñ… 'GÉîaaÝM±1‰ÂÝW4Þèî0Rt_ôc<6>/V²•<4!íFÚt#m¬ë›$ld肌Yº K´(¹ð´)è¾,¬­Vh‚óÌpžŽÌïh ]ãqÏ =w‚w¶óIà®éðŒæ- º¦»€Ü…ÖŽA?I£/ + +¥Ížš!l1öXºÏ„ÖQ*¢l]AD¤4ݱØò䬽-}#âŒ*Ïd0Œ¨È‹’ÖÔ¥§&M,[LcŸ"Ì–ÌʪJY°ä˜è"lM ó‹þÀ¢”£Bv‰®”¿îŠ2YDq˜øD=¸>ðÖ…ÆÚð%7 gjà9;,Ë ­æÛæÒ®n]à â±Øðs¡«îR?Ï]Ð1xºµ$Ô®(5¹c>6‚=6¯‹ËfDM3J#V<Ï–ü ïñš¥ìáÃu‡b;Ȱøbæ˜êÛ»N¥¯dû§ ®H+r§Ûò…(-Jlf¸Ñ„¤9#ŒeφCMd·{ý-—,D¡Ò{— Ûy¶âDP»‰Ÿ´(ì‰xµE —rY²x€,lù=P¯x,Ö"€cN R€)÷Ñ h4H¤ R€)P²'xü®(ô]¾+ºÿ]¾+ÂwEÁ£7È’uzòJ$!ZOR³Á«%çîçwœî÷¸P²ê•LÖ8¼íUèf™†=íUì 7¨Ô 4444´´´ tttt ]÷ÿP2¾,â[•ð¸¢Ì:p-¼ùy]° ô”°ÅÚu6û%ø¤:ko~6n¥-&Ö‰g "¯KH(ª§¼²÷ùM5Þâ¬ÚÙ%å3/ÏßòÌ+ ×F357JœD艒B-¢Z󉂸wïj +ŸDt5¢«Ã¼È,üã\Õù§Þ-[ÌÈ)*ï#ÿbŸ LK¥çGo)ÿev’¢–ìnuÊV»UÎSœ•;+#)¶çÔ¹Íõ›wõxn{äåg†žKߟi +Ž_SwþLïZ»ÔÝsôÂý›.NÛÃÞBWÅ¢â–Á£=%V'k-öåÇ{Vîï­wç{ë~þ†€MŠKzëpÇáG +{.Ø\¼ñËÃCŸY%§Å:»=ÐŒ×ÅB³8:&´àmC°¼§’"uŒoKxBB¨t(Sé*B¥C¨t•¡Ò!®ÅBÈÕ¦õW07(ðtì¢cÇFìƒ3ýø ð=ð—ÿÕ6Ѫ½ˆ‹r> +ørU¨2‹ŠƒÅàθ3î  u à*vö"ìì;°×`¿„ý ö/˜ÉâóÜÄ`ñ¹›˜,‹ÀâÈžL˜èQ5ƒ5SQ35SQ3…WQx…WQx…WQx¯¡¢ð* +¯¢ð* +¯fÐ3ÏM ôÌÝIJo&ÿÄåðËásr^7‹ñ1©™Æ$[nè¿^Í©ØÐ<ѽE•2¿C\)ÍNRŠ9D¸ÒXsz¸›MvÔ-PÚìE±3;v5 +Å3Õ)ê{:³Æ…•ftVwÓYeô·ÛËÍ·È¥x)ïqLj‰+Ìø>îìÀÙ4Té´æÉVÙvOqxã¥`WgoàM:Ùߨ+²DÔÁ‘}[w7Y*·ZoOõ“S-æÕþáým¬ÐZPÒ{t›®Ì+^Pdgm²üHýtúùˬÔÅßdU•,·1§Õéê;:öžJï­°ˆ²Åÿ±e¥û¦Øà±—“îRh©›~×ê±|¤ºD\@¹¼°¥ÙÜñ™Ã‹™Ã›™9¼˜9¼˜9¼2^Ì^ˆ/Ÿ9¼È®ƒÏBUÙ6‰V8n˜k€­†õÁ¬[±õ8`âVãÌ f‘3‡-L.@‘¯ZfHÐ Í5Hs œ§AškÐ÷ô½}¯AßkÐ÷ô½}¯AßkÐ÷ô½}¯e†„ynb s71‡ C‚Ƈ ’¢gdž™§gdž¢ÖzðÓAÝ:š…¦C¡éPh:š…¦#;:š…¦C¡éPhzFæÍsCæÍÝ„†W¬¸fwY+-*}Uº/Á/1i(®+J~ŸU¬¸ÎÜ/…9¿ÑkÓ-éKgÓï}w0¥/\öùW÷éï–zú½²ûü{#â÷Î1Ç/vm=³%96”þf:ñàUæ}{àÇ^\w–-?ÿÉMÇ>ž|6ý>ç³hŠ Ðÿ÷²Æ1¡5Lj£R*µ *5 R*5 R*5äXÈ2ˆlºâ)’äP¥)Òêãõ‚ƒs@¼ˆ†Per†«p¿_7OÀføÍ¦²k›Ï©g£€-'¤@0GÔR 6'¦@Øà·2A¡¿ç©“b3ØyÄSì\SÒõÙÍ}Ÿêô ÿ>m»£¶nœ~Wº >jýHŠ•Þ:¦ÞTÙœO‚à“ 2‚à“ º,˜á“ ø$PŒƒÜÊ„ ¯®ˆ¼H×9fÀŒ#ƒ0ãfÀŒ˜q3ÎdTe²èã3̘В­¸FµÐn{øPYM^²á¿mÿ¡¾Lƒ›8ï0¾+íe–mYÆ–ÖZÙ^ɇ¬õ%±H^ß\±mŒ9B0tÌ•”«¡„B 4„’ʤÍR¦L LÂÕ&mfš¤iÚ¨é4i&m§ÓÉtú¡×´dj¹Ï»«ÅžQ›/þÔÑìèõ»Úw½ïÿÙßóüA4@H€H€H€H€H€HL.ÍrƒK¹‹d¹$€K‚Î¥²|b¸Y.EÀ¥ˆÉ¥hÑ?sq,ıÇ»qÅñ Ž—pÀ·”R"@JÄäÒ,1¸”»áDÚ$ZM“®·´4k4i1!òŠl+Éy «hÈÛ[xuä[»Yߊ§zî¿ÔHVý¶×Z÷ýõø²/w9¬ÝVnNíø¶“—µÄçckVÍ˼šùü͆µžjIÅî{z¤smÒÁù=Á‘Ç¿üóÑÚ¶6uUæ]=¾ì>¡Tèï{xø­Ì¯ eïÔ?Ùè ¦zlD,¶êq ÇŒ ™p͘‘‰ÐŒ‰J2Q9cB&òÿh‚*QÜ0‘þÂwûÒ[ØPв HÏ~J+‡é™©Æ…ýò‘ÐLbPóô4ÉÎ4/Ëq4ó¸3/¿xÅ+#ƒoì »]µAZ¥Yµ¹¸´èѧ{ûëy™·ûJÄÛòϬ‹õ:9‡×…óØíÕ‡ÿ}Çrâø…ž·µs\»Õåu?9Iý(9¢êü÷Mýƒÿ˜}ŽšG¥Í}äÈr39gc}dÂ÷EÛ–4sÈü…›Ópùôd§íH’EøOïBʲ£Té¨p®%;ƒ·Óf²$Rßî2:^ØT@¾È®Oׂ·r¼µÂ¶[°óô‡÷þÐ+o|i¤ïú¡B§C²ã_ëÖ´¯^ô§KÑpAÅgSÚ3=õbϸ[ydýÖÖOÞz¸´ªÚNÓšX.9R‚bm¼·´íš2yeüo´3óÉO&wX–=y‰Ã[Ȥx>E—vÿ!órãÕL€^|Á²1S¹Ùµq·^*sƒ¡¦Øœ“º¿YÌ2µJƒ§Eò28¹›ü øšú³õ=ëTÕA¯¿Au‚¥ØM*_ï\i¢utlÐ^Ašt +ÆØì@;óýª Wa\CÆØá$®Ö] H¢:I¸@.Ó’¦ $áI=U6âºÆìÍiã]wi$õ Κ‡©×5ˆûh&Ê5¨HÃ+¤ ªÂ(¬Â(¬Â(¬Â(¬Â(¬Âš‰òY.b $÷!woH“7ßȈÝDKù1ãæÿ=¾MCâ6´ÆRíÙ-Êß h‹«¦ÜTYE‘UYE‘U(E…RT(E…RT(E…RT(E…RT(E…RT(E5å6ËE ¹å.’•› +¹©ºÜ|Qžæ°á³-†î¼E•›ö&ˆ“¸ q¹i]{a¾Ð£[1”fäNî ƒæ8†gíî}¿_áäyÁB³´åXÙWæ?xéÞæjÑ{jåX×Dûà³vÍVíä¹ÅGÏ0û¥dúû¿»Ûecø¤¿†Ëx§tmÿ¹7øêÆ¿7±â¼ól쬪ŒöZNekôû*j~÷âÎóK t† L}j³¾CUÓ?½ wåñɦ˸WBàJ\ á‰C&WBàJr1ù‘mJwkÍ Æ(¾uÍ\%"W‰f®a¾"¼GDš‘fDD"‘HD$‰DD"‘HÄ}DD"‘HD$‰D3WÍr#Wå.ÂN¯•l*R†dè@†dè@†˜dˆI†˜dˆI†˜dˆI†˜dˆI†˜dˆI†˜dS‘³\ÄPdî"YEÊP¤¬+²ŠÏB.ž ˜kjôM'A¢7ô¨Ë/a‹ôYöþg] ÒͪîÑU ëë6A…]•Û»†÷u¯}q}ÓºÞ‡ºªB“¿Ùy9&mt +þ¾%Ö•¸þêž3[þúþ9†× Oý…y}ÒFŸ¹AµÇn‚):3À‹¼Ô"cÆò+Œ 1.ĸcc1;Ißµ¤ŸËÎÅÈy”'nú`zãéãúg>ŽrÒÐkzë>H®mŵ­Ùûwn1&³J‰lK DUQ:¢¼˜bô ÁL•«Òÿ[XѤ«õEž¢lŸËÇÄû*Bõ´. qMg…¦XŠIwÊY.n}v‘“a¾ fÃÞÆÚÃVKäˆ<кýµñ6¥ì»æ·íQŒ½(Ö}záбE¯èÚ4`Ø~Õ!•ä-ûûó“O¬?(È‹ó|ÏÎÀŽª¢m¿<ÏûH¿Á>‡…-âk·…(sh¬ø¢É‡˜$& éL‰„ÐÞ!0ILÖC`’ 4<®Lòi0bY±–1EŠ‚h¢P¤(¤' +EŠ¢Ã¢º"E¡HQº‡)€¡°27Ë.ß1ám»ÜY½UMIÈÌ*:ðÙþCÕ禾sáƒÞŒEÇ+;”¬Ò¡ÍÛýƒ‡šF«~2Y^9ê<{¶wûa1w,Ï™Öf±;ÜßÿÖîm’|ʲ4é³ÎSWÑri ÕaªHOu§åÚæºc-ŸŒv^l+l-¬.È(Ism\YÐx`eÿµ]……âçá¯7½8úòØèÿ2K)ÕV{vuÍÐ¥ ¯¯iå9$6‹ÛÁ|ÑZ-l#ãB·Â§§nlQ<ÍMÊ“s“¹ƒå·„V†Ýᵨ•9<„–g#ÏÖrr›¶ˆh…âјBÖûšç+bÜ…Ò\V¼^[¡ y›vO¡”̦WŸ¥‚ž`Àb-j …TXa(ÔS¡ÞPè¢B—¡°‰ +›8ž €â• Å>A%M@½Á˰Uƒ—ë¶Ê5¦ñ;ç1h)üg®™¢×ã&g¦ó”? Vp&³™¥z ?&nñ€‘Ls·¤Óg‚3¯¢´çI2ÙͲlÝ1RQøjRÎPWUgóGmðý¦ºª2Yæ0sS÷FR­v{R×ÙSï]8%—x쉒hª±X¾óÇûÛ5䦖·ššt—yù/6>á¯<ËI!AP„ó·1¾ÄÓhËRqf2¶HVxîŽñã#Q/`h ©{©¢sO&m|¦á$²©m(ø¨à£Â [N:r ci)Çb +h…H{oåöDÂax­_ÙØu¨¬€]}Š*VB¡_~pÖƒ}ílçÐåîu74M°[³-'CJqˆn›¼Yã©—?Ùcê lG|¢™¶Ã ï-LN^|_>4Ÿî®nÜi’c;óU‡¢wZ£¡¯ }Õhè«F­¯±!”§vŬ&h¥B+‡x ް½U VcüJЮQžÚ^61nF‹Éj0ݸ“Hq¿ÍýĶçÏç„Êÿhu»ÚkeO`Û¹þö;ojkúC9 }¿;“€3I`X>»gÐ »WçÂò°Õ·¾æO’T-Ylù}í¾Yn/JòÊ ëúc‡,u†S‹c¼H^‚s*®ÜÀžvN>Ã9ù çä3œåO=ŸåTXn(Q¡ˆ +Ô)¦t.ÏrOluùü[=½—çv§ Z£‰’çÈ+‡7ĸn­EÞBxÕòuÈ×!ß…¼yŸ¶ú0òa-ßã׸ÐÖ>IºâTø)å(Üyf&ølÕôå_ÍéÒ!YÈ4-²4ÉÂ1:æ&½p“^ÝMzá&½p“^lŸnÒ‹YÖ Kˆ‰-µ +¶|›edÌCÊð2`$Ã÷Éð2<¤¬{HRÆÒÜ'fOûD‰M2øD;ì\²\‚ùêƒÙpáÉ.89œœ œä 킓sÁɹàä\pr.89œœ NÎ%|Џx„{ÿ‹ìWæ\Ä2‚ìDÒ0à“°)ôæìX†0„0à â¤!–"ª͈ˆAÄQÄyÄeÄuÄ8â׈ÏGW2ÔF€ÚˆŽÚPj#@m¨à " µ ð ½K&D30²\Æ`íIM1~íÀµƒú…4pËF ……¿²Sg¶‚o'!'žØÆ¨‡÷=¹D°±'çhÚÊÆ‹…ª0@fºˆ#ˆsˆï"~€¸‰¸ƒøqñ¡Áû9á𞽈ï0àŽiFÈÂÚlu ­N$ËÕª,#ÒÔx2SÔœ*e²á?òQùîy¤=¥ÂÌ9 qõâŒÎ»—¤üæ’›-^4½[Pµ÷kã™EUiI‡^I¯i(Ûº‚ )rüð‰»#N´¢%.Þ%ß«<éëê¸ÜZóâæd«TU›²Ìiµ;,ÎÌ´Ýo»2Ü îëëp'nY—š–yu2½Ô›(™È©NónŠØ÷Cñ_Š4yÅ_ßý‹ý{¯µuæ;ý„ë¶É»æÃÐd¿ÇH¸CMÄ^$âÚlÐWY&u#Œ R€J‘a.•‘WѸ+ ³il@c°~lÀ!t6 €MŒMe ©t]…ë*míÕ„TQ!‚å(eèt:ÝÍôRÁË ÜbÁ"Ô²q›L`vÁJƒþOÕ¡ªânQˆP2(S2(S2(S2(S2(S2U‡ês.¡:{ ªêI¯ÖØ(®+|ïÌìÌìØû~z×Þµ½³;^?ö=Þ‡ko7v0&Žmµ 0obâÑ4E¢AJ**¢> "¢¨R ®(Rƒ”FEu´U¤Tj¥ýQ)UKðºçÎÌš%Nû[W{tæîÝÝs¿ï;ߨöTcqµ1ËíZ'·Ê#†'ÐHÉ)HiPu¥]0o:, ž“VäΡŠ_Ú*§˜=[O¿¹e—ÞbÕ ç‰%¤Û’OÔ~ØØÝW80°!ØÀUS4Æ‚ÎlfoK§ú½?üÚŠþ=)ºÄf8.CcÆPíŒÁÈdÁU¯{%Ýï ý`2äØ\eoö:Ç3Ïþ}îÚÉ q @0’z¯_Úùñx±ÓM)0Š QÞ:ÑgêldP.Ë·ÍÃ5ñQ5V•SÁP0” %C ÀPª“(c(J("³K ¼«F›c¼{µ¸â:-VY¸²CÂUâ7û¹,Id+$Ñ¡¶u к‚êà EGpv맪Ë(“„vcVÅR=ì½”{K&ü˜åÊ=)&ŒÒä$ºSo±À%±4eh({-n´øžhn³&ªÍÕY¶E‡yƒÉwìÒÃYŠ¢ Õ®8®ªþšÇê:œZoòø­ÆãÏÅZÚPøiw£I§×«ž +£ù»t#ý1êÂ7g‡,$™ò»ªÝB¼jV-V]EU« öͪ¬ +¨StìÈ/¸"7©–»Â%I"©–ÉUhÄxødÀx 4âF<Јñ@#hÄx 4âF|™‹xˆÊÅŇh\䋼âŠÜðSEò͉+Á‰eW$Â/Á‹ˆàEDð"" †FC#‚¡ÁЈP †FC#‚¡Ë®èQ]ÑâCW”ôéTD‰rÑ ðc4™ðcå°ƒ®H!)$§ Xp':ºº× /+3iôƒ©üùGgugûSÝc›ý©èùƒ«s·fV¼6Ä2”žÅ‘\±·­†ß2ÙÜ#æ ŽÎñö¡ã£Ïöé%1\¿±OÊŒáúÈ3ÅïüÆ ã„–ÀadþŸÔ«ÌW0ýrî‚'º Dѳjà4] ¯ÎYõY¹‘¸<ü82‹TO£/H€T„NFÊÙÆ +‡f¬ph$VÇ,ÿVˆ­Ñ‡¹€´ïàÔâÞ$Zj1¦É°ßÅõ¦Y w‚¤9Å–R°¥]¶@´®ƒÝØë®2‹A›Ö·- +ͪí´`~àW×BìšU'ªò¯tUt×B\Ug§¸Âx 2dâw¯¸‹¸r°´O+{Sç!Îk1éþE%¾ŒV)'Af2«àéÄ#Z¼âåZ¼bVuâ$ƒxL‹Ç!×âuD‚Qõk.‹ª‡*¨0T *®âŒH¿Œä²IAdä@9ASdÐ4EM‘ASdÐ4EM‘ASdÐ4E. Ó#¢ +ÓâC4a’A˜dÅ$“О  ,$EÀ~¶“Ö"ÿÀêÊþCúj Ô&õö- +æÜÑo ²tç¨ÍÚ²¢sx«Tç×ÑÇèM¡týŸž1ëÁÝ24Û°º/¶:T[ç4R‹Ó »`0²YŽ~.6jÓ»­m Snß;ž©‚]`œuËzAà«ë¿}!ûëýk;ü.ø8ߨÊå‹v¬þQö»'÷åЬ`Þ7ÿ/fý.@t=ZÔÛg[ôЬ´¹L¯&í50«æEí5D¦)mo“¶' ½^ŠbšÌš’LXï0°à²AÝÈLDOU<áX0o4.I¦‘öZ‹±óüàòÓ[BMûëâÖuú‘˜™1¸7žiœíÛ“kj^Ö~…o¶ù†êä¸NÚió­-Í÷6Ý¶ßØ›·,œV¸D÷µéÒ[J êæ¿dÑ3¨€Î µe³ÇÉ‘D®\ +Ðöõ¹5Ì^ "äŠ\A Z¤> kÅ)Ó_Ðè/TPŸS$ò +Ø}õP2‰ŽÐZQdIÁ ^¶ötÒ©DJÝ*EÀh¨Ÿ ã÷š'šF½Òඃ'vMÔÚ,u®†Áï¥"ñ‚{ºÃ·tIØ%m{#×÷B®ÉäIOµzj“±;kvJ“X>q/dær—Ã,ã0ºÖ•®O¾—ìÞûóŽÒg§®_=±ÄW[C);lÎÆƒ÷v4\|¼ý%ªëw_­ìWµU/û}ú쨱åÖ¸•$Z+’ˆT$b$«HÈ$!W$Ò$‘VÅÊ §[”›Hj±›¤ÛØ$‚BPè/À[?ñŸZ‰¡~.§˜œT¤Ë’Ö$Ƽb×çO4›zWõ®½¡úôÐ@÷’ã);ÙêŒL­éºßâôµöe:z{’olÿIS,š5Úû±ÿàú·jôTÖà Hýûw?9q¦3Øä?2=œ ”nE\ÕY†^zçÈ<£ÖË<÷3¼Ì£¥ˆŒqj³!†=JZE”8Ä¥õw)($mÆ£Lpve°|€'§ N‘–›Nú¨dBñÚ!‰&Ê·€+06¤ +NÖ +ürÄ\ms„žTÓÝÒ¥¹;GwäLeì\¦ÏÃð²f±Fi‰(ID+q’ˆ«dõB™T²–}ñ1^­‹{¦!€1@,¸u O€HRšQk„¸dBT…*T6‚Ѫ Ùc·j§ÿÛÔkäÞž(OÿyËhñíÒÕ‘¾å8þ˜SÇÐvk·‰¦ô¹±Ò‘mÅsØø!x:šãû޳¹[8Ž“ûÿXÚômº+e:õ¬ +$Ï–C7·PªÜlÎj¶ `-³°½—Ù‹‡è—Éû» yöIcG:¯ïr†ÇÕFýÒýI\‘oºkd(ïóÕ'è7[í–±JÆèÌn×}׳Mm-v.ø Özyêì÷9¿£2HmÔØ¥>ÃóEÆîûš³T1ö×ÀÞ6HOèmÎH™È¼‚ó +1gÁ:±×‹hŽY·ÈKèXÏd¬:Y¤}ÛòOc·#ÕvÔFÕNÔFŒÌ”*¿±ŸFl䀳Wãa³U+·[µ¾Æ\ü J¡ÏwV¿QÛÕy«O˜±±1µPy÷}fØTT£}Ÿœ¬{¡öÖ‘†ïª)ãÏêS¡2Çll÷]4‡½Ë2{9ÓÍÜKÔïñ½Æ÷ñ?õmOUnˆößêCjÿQ5eøAT5v¨ÿF5<—v%¶ÿ¾V¿büºQÕ¸¤±!<ÛðÜÛÏ?ú¾&#¹Ò°æ^xe“HK ºÎÁ¨¶ö–ô2š‡ÎÇç&é¶ŸC°Wឆ{®[㻉uÄÀ°-Œ;ûLWãB¿‹'cý”Àî×´—ƒùéœsÚ×Ô’Œ¬cyÀ¦€`½¦_ÀÕ¿ð>2ëĆñý›¡Lc¬0±¥Æ_bâP…‚ß90Ê`Žá—ÚÄz©Õ=QthóráIÊz—<)ݳI÷/¥ìQǽ‚öÊÜ&½t?ûKï&c—°Å+ÐDY÷©I +2J¤ «Žò\ê¸Ð~Þ¸èÞ=º¿ÆªÄÒ{9k¡ôÌd\OÛ–J¡û–ª_dL +oç³»üÖĨ*ÿT»}߸]^ãÿ&¾£C{i·“ˆß¤ÎÍÜÕ¡ÏEÇá®Ðx}O4nX þ>æ¿*X¿¤ñÓŒÐNÿcal‰ŒŸÎïÛÇ c¬Þ! A>Òö|žæQÆÅŽôFã¦æ<Æç¸‰•é”}»Ä=ò޹Ÿªü3áyEõÚØéŸŠèiµ]µ¿¨¦‹©íÚÁþjŽfò¤@ÓÅÛ´q7¦‰Çæß¨ý««†ÆçŽTc€úqŠ^7ž·Çu=«ÕÒÇä…ô39fÄBŸ ÷>%Fj¼\©9´æa&Þ…vÚæûzžÐü#\—™S°§&Uß lÒ¼3È DZ¿óRcªæ  V’çîI—'¸_õ_±¥uUúöÓŽý£õT¼±õ¡tíA¼(s‡ôöèo²g¶nMÛµ‹«çy]å[èSÎa1ô V/'&L÷$þ<ì±%¦ìV¬ú–×`3ì×a¬w°õ¹÷éÄ9ßfü`±Tz³dDVBJ½Ër‡—-o¯ÊÉ醒?O‡ZÆÖòvè/¯¡“Ðc¨‹¾Èžü’o/µQúØoÓ?¶Hòû4qêåBô wQ†Œw»á“—ÉCó¤ÔúTnâÙ±Öfÿ¼u§Yk®Å~G¬ÙA™öØ"é»ß?kíi+ÛI¯à¹>ÖréCh'`•ËØVéK›cí'þºˆ~ÛaЏñƒ¬¹Œ¾Œ¯ß£Ö)ÿ\ð-Zoò/£·h®ÏùŒ¿Ga<ÅÐ|ÏŽ ú}ÍZFn±L:CÜ +•PEAÛdȇ‚ÿÒ¯WHŒs€ÂëÕÅúʘXÒ¿BÝ0ÑÎæ™cÈOÑèüÎ ´ (W2çÿ#bŸôO“Kea_¥ü.HFïLø½=ÌÿÄyA†ÃhêS×ÃÀÝ[*3¼³fŸï—¥œÁ·ñ•%úžx­Üç¼D¼Ú$¹±]´O‘µøó÷¸'VXïɳ +åô ó×[«Ïß|F­€Æ¦´Õ™òËüÛF2ÿ9ìéhðý¥x|Sœ…K”5wì è7ý œ¤mw·Îƒ¹Ás¯o¦íŸh'¸~Ás Q¥™¶}¨æ¿Ï„ß«v³ñ×|»’=h#ÓùÄ?KݸT‘üûv ìK2 ©$¸œFÿozW $ ã¥Ü­ãÄEÍSä³= PŸÊ%)×ûKÑçÜ.ØV@½ur¯âÞE|úc²gã]fz;(Oó?v{à8›yîÇR¥ï6wh?““&/áû{fç\îøÌ¹7cÞåä Ï1np‡ÙOɨø^¹3>DªC쇱Ö’Š»’ 14$¾Xf(Ng©NÅ®x$àcle{w\¦ÚÉ7ÞíäÒv@*Í·Ž²WúÛCýó†ßbïJðÛíÉ\?’.Šync$n•jÅ^Í;ö³Ž?Q.—âÊý¬»Ú¾‡~Ûdu£ôþ%†"ÿÚÍ]»ËŨ‰ÓeÎãr 3c¯.ŠsF&é< ä)ñ~RíËÄÅŠ[„½Á~s6ÏÊpûÏ2Nsö)éN“rëUê÷Rö¤ob6³ž3Y,SµÍØÌiZfØ`/ÇÄ5¶Q]|Æ]ÄØ¼hWv ^äwôySç|_nr>\7?cíoìgï–_ƒ‰bÉL#ïK®‡ÇyÛуp +Îð2þ!¹™= Q$³Er³r JD”ÄpŒ¾§±¡Ñ’©{ß*¹qÞm¯á<ö¢‡á|ÆoÐ>P +$sÏK%ä*_²Þ£Ìi-㾃ÞBý^æû6ý~-•º.õ^>íÛhÿ9mº§Z>¯SŸÃx>Ï7ñæÑï7Ô3Ä>2—\%sëjF Ðñè0ƒyþý²dŒS€]lä{÷MâË`lë°¼oů¶ø—œ˜,µfÉ.{9ùñ›¬¯Îo±ï–§íy†Ü'~„ûî=ô8wÈs’ç¼Jý+Äó…¯d¨]gH¾SOž”¯|1˜5t€®ïóD÷ ºº Ð-ð-èS! (†¾Ö,ÿÐUÈfù-ðW³ß13€sø¡gø¹2“xõC™•È—BÇ“1ÜÃÝî¶êc} +wÁîÆ,Ê™èÅ@¹Ocz·.îÛ)@®LNUÏ^ÖËtÝölˆÔ@¡[+åÄØQîš³_>¿MQÿÚÞ8!ÐB*@A‘ÚÂ%Ž#;@Àüh1Iš‚ƒ*õÒM¼1&k¯µv€ B¨¢Çª½‡\PåCH‘8U„\{€^àÔô;³Ûq) .hl}ü~Ì{ogf¼5ÿ» lbù‘ýø'rš°sü3OyÞº†m²¯X]`ü(õC‘o¹¿IÄå³?|“d½ì›}k×ÿiÚY)9–aÎIÕnòÙÃzƱîÒ+òšþÍò8kyí5Ÿfn¨¾1Z›ç*¨54£{Z°®¥¿ÉKêí”Ï)wèõvèñ—ËýQ®ýMȽhFíÉà;Á°Ü»FÔ>6Ã}U{û,µ}^ò<4œF°¹¬5ÏuŸE"tÓÖÿ«ðýM^Kµëéÿ¤¾ÎV“-×p8zÏã8îµÌà{ý":øüÁ·Øl—V¾P'²P‡OxDŸ®NßÜÚ÷|ô]ÀÆu:6Ôùä +oeÖÝzØÆ¸®LO;ë|Æ1ñâílï øœëܵü ëþˆïzoÉ#Ànvù=wú9¶Ç?@ýó¿t£ÌdîW”_?ŽïFXó»í(÷fŒ±'9×qƒÁ`0 ƒÁ`0 ƒÁ`0 ÇBˆ>Æ6áZ¥ÅO;†5KÙð‹ö. ô¶Ð +t‹úe­G©/Ç·"‰_²ÖÑz„ÇZ¡;´ õ0>=Ñz„þ¿´n¡;¼UëQêG´ÞŠÉðÙ¯<çògªâ¶H¦RÉx*Õ#ú‰~‘.—]G xÅòlÕñ{ıÒT¯øoxŸÈΕ1á¹³Õ‚WªèÀ´ë +X¾SqüsN®w(sjx$³]»Z(yñq¯h—Öî\¶D¡"lVÍ*œ˜“UßÎ9EÛŸÞ´È0¢*g”Æ<”1äqUÜ&I¤øM"®d=}HðÛO-ÍŒ2χC]æiÍ2Óay %L¡W®V½v–1eUo‚®ªV VB¥©bš£.e½bEY¥<þ9þæ9„ Na#¬ÃlfÙªj‰uãWó¶i3#Ï#ÊqÿòÞGdó˜ ”ë³õóÊvZ®SP÷9š£UTóŸ¡ÏÃ43ºFµ¶·iÎ!ÜZK \À>¿ƒ3¼Ë{¦áXè.o†ˆT© b?ǺÐÁ°¶Ø"ïƒÜç ž6ì]áÁ" ý‰ßð&yéAa<Óž/´'‚;¸ÊSy¼ca¾ÉÓ‚ŸWx8Gy×¶Æ8a1t±Ð9ø¯Ö R" endstream endobj 11 0 obj <> endobj 10 0 obj <> endobj 19 0 obj <> endobj 20 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 22.0.0 %%For: (Nicholas Carter) () %%Title: (hit-serialize.ai) %%CreationDate: 4/15/19 4:06 PM %%Canvassize: 16383 %%BoundingBox: 31 -577 571 -31 %%HiResBoundingBox: 31.552734375 -576.791390728477 570.943664550787 -31.7913907284756 %%DocumentProcessColors: Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 244 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -792 612 0 %AI3_TemplateBox: 306.5 -396.5 306.5 -396.5 %AI3_TileBox: 18 -752 594 -18 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -453 33 1.51 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -453 33 1.51 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:0 -792 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.6 %%EndComments endstream endobj 21 0 obj <>stream +%%BoundingBox: 31 -577 571 -31 %%HiResBoundingBox: 31.552734375 -576.791390728477 570.943664550787 -31.7913907284756 %AI7_Thumbnail: 128 128 8 %%BeginData: 16364 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD06FFFD1DA87D7DFD04A87DA87DA8A8FF7DFD05A87DA8A8FFA8FF %7D7DFD05A87D7DFD3BA8FD07FFA8FD1DFF7DFD04FFA8525252A8A87D7DA8 %7DA8FFA87DA87DA87D7D52FD05FF7DFD3BFFA8FD06FFA8A8FD06FFA8FD07 %FFA8FD0DFFA8A8FD04FFA852525227FD055227FF7D5227522727525252FD %04FF7DFD1AFFA8FD05FFA8FFA8FD18FFA8FD07FF7DFD05FF7D5252A87DA8 %7D527D5252A8527D7DA87DFD07FF7DFD05FFA8FFA8A8A8FFA8FFFFFF7D7D %A8FFA87D52A8A8FD05FF7DFD15FF277D7D7D52527D7D7DA87D52525227A8 %527D7DA852FD11FF7DFD06FFA8A8FD05FFA8275252277DA8277D7D525252 %2727527DFD06FFA8A8FD0AFFA8FFA87DFFFFA8FFFFA8A8FD08FF7DFD15FF %525252275227522752A87D527D7D5252522752527DA8FD10FFA8FD07FF7D %FD05FFFD05A8FFA8A8A8FFA8A8FFFFA8A8A8FD07FF7DFD09FF7D52527DF8 %522752272752A8FD08FF7DFD15FFA8FFA8FFFD04A87DFFA8A8FFFFA87DA8 %FFA8FFA8FD11FF7DFD07FFA8FD1CFFA8A8FD09FFA87DA8A8A87DA8A87D7D %A8FD09FF7DFD3BFFA8A8FD06FFFD1E7D52A8FD0B7DA87D527DA87DA87DA8 %FD087D52FD1E7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA87DFD07FFA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA87DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA87DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8A8A8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8 %FFFFFFA8FFFFFFA8FD0AFFA8FD1DFF7DFD1DFF7DFD1DFFA8FD24FFA8A8FD %04FFA8A8FD06FFA8A8A87DFFFFA8FFFFA8A8FD05FFA8A8FFFFFF7D7DFD0B %FF7DFFA8A8FFFFA8FFFFA8FFFFA8A8FFFF7DFFFFFFA8FD09FFFD05A8FFA8 %FFFFFF7DFFFFA8FD25FF7DFD04FF7D2752525227277D7D27A82727522727 %27527DFD06FF7DFFFFFF27272752FF7D27525227F87D7D27277D27522752 %272752A8FFA87DFFA852275227277DFF2752525227277D7D277DFD045227 %27527DA8FFA8FD24FFA8A8FD04FFA87D7DA87DA87DFF7D7DA8A8FD067DA8 %FD05FFA8A8FFFFFFA8A8A87DA8527D7DA852A8A8A852A8A8A87DA87D7D52 %7DFFFFA8A8FFFF7D7D527D7D7DA87D7DA87D7D7DFF7D7DA8A87D7DA87D52 %7D7DFFFFA8FD25FFA8FD11FFA8FD0BFF7DFD07FFA8FD0CFFA8FD08FF7DFD %07FFA8A8FD0CFFA8FD07FFA8FD25FFA8A8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA87DFFFFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFFFFFA8FFA8FFA8FFA87DA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8FFFFFFA8FFFFFFA8FFFFFF %A8FFFFFFA8FFFFFFA8FFFFFFA8FD0AFFFD3C7D52FD1E7DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA87DFD07FFA8FD3BFF %A8FD3BFFA8FD07FFA8FD15FFA8FFFFA8A8FFA8FFA8FD06FFA8FD16FF7DFD %13FFA8FD04FFA8FFFFA8FFA8FFA8FD07FFA8FD13FFA8FD06FFA8A8FD14FF %A87DA87D527D7D7D52A852A87D7D7DA87DFD15FFA87DFD12FFA852527D7D %FF527D7D527D7D27A852FD077DFD13FFA8FD07FF7DFD14FFA852522752A8 %7D52527D5227522727F852A8FD15FF7DFD12FFA8527D2752A852275252FF %52527D7DFD0452F8527DFD13FF7DFD06FFA8A8FD15FFA8A8FFA8FFA8A8FF %FFA8A8FD04FFA8FD15FFA87DFD16FFA8A8A8FFA8FFFFA8A8FFFFA87DFFFF %FFA8FD14FFA8FD07FFA8FD3BFF7DFD3BFFA8FD07FF7D7DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D527DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7DFD07FF7DFFA8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFFD04A852A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A852FD04A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF7DFD07FFA8FD3B %FF7DFD1DFFA8FD1DFFA8A8FD06FFA8FD11FFA87DA8FFA8FFFFA87DFF7D7D %A87D7DA87DFFA8A8FFFF7DA8FD12FF7DFFA87D7DA8FFFFA8FFFFFFA8FFFF %A8A8A87DA87DFFFFA8FFFFA8A8FFFF7DFFFFA87DA8A8FFFFFF7DFFA8FFFF %FF7DA8A87DA8FFA8FFFFA8A8FFFFFFA8FD06FFA8A8FD11FFA82752525227 %A8FF27525252A852527D5252522752277D7DFD12FF7DFFFF2752275227FD %05522752277D7D277D7D5252275227527DFFFF7DFFFFA852275227FD0552 %27527D7D27A8FD055227527DFFFFFFA8FD07FF7DFD11FFA87D7D7D527D7D %A8527D52FFA8527DA87D7D7DA8527D52A8FD12FF7DFFA8FD057D27A8FD08 %7D52A87D7D7DA87D7D52A8FFFF7DFFFFA87D7D52A85227527D7D7D52A8FD %087D527D7DFFFFFF7DFD06FFA8A8FD18FFA8FD09FFA8FD18FFA8FD07FFA8 %FD0CFFA8FD08FF7DFD08FF7DFD0BFFA8FD08FFA8FD07FF7DFFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A852A8A8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8FFA8A852A8A8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7DFD07FF7D7DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D527DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D527DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7DFD07 %FFA8FD1DFF7DFD1DFF7DFD1DFF7DFD1DFFA8FD07FFA8FD04FFA8FFA8FD0D %FFA8FD05FFA8FFA8A8FD14FFA8FD05FFA8FFFF7DFD14FFA8FD08FF7DFD10 %FFA8FD0CFFA8A8FD06FFA8FFFF7D52527D527DA8FD057DA852A87D52A852 %7D7D52FD047DFF7DFFFFFF525252A87DA87D7D52A87D7D7DA87D527D527D %7D52A87D7D7DFF7DFF525252FD057D52FD067DA85252A8527D7D52FD047D %FF7DFD04FF7D525252FD047DA87D527D7D7DA852FD047DFD05FFA8FD06FF %A8A8FFFF7DFD0552FD05275227527D7D27A8FD0452275252A8FFA8FFFFFF %7DFD055227277D272752277D7D27A8527D52522727527DFF7DFF7D52FD04 %27FD0552275227277D7D27A8FD0452272727A8FF7DFD04FF525227525252 %27527D7D277DFD04522727527DFD05FFA8FD07FF7DFFFFFFA8FFFD05A8FF %A8FFA8FFA8FFA8FFA8FF7DA8A8FFA8A8A8FF7DFFFFFFA8FFA8FFFFFFA8FF %A8FF52A8A8FF7DA8A8FF7DA8FFFFA8A8A8FF7DFFA8FFA8FFA8FFA8FFA8A8 %7D7DFFFFA8FFA8A8A8FF7DA8A8FFA8A8A8FF7DFD05FFA8FFFD05A8FFA8A8 %A8FF7DA8FFFFA8A8A8FD05FF7DFD06FFA8FD1EFFA8FD1DFFA8FD1DFFA8FD %25FF7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8FD04 %7D52A87DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D %7D52FD047DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8FD047D52 %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7D %FD07FFA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA87DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA87DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA87DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFFFA8A8FD06FFA8FD1DFF7DFD1DFF7DFD1DFF7DFD1DFFA8FD07FFA8FD %06FF527DFD05FFA87DFF7DFFFFA8FFFFA8A8FD04FFA8A8FFFF7DA8A8FD05 %FFA8FFFFFF7DFFFD04A8FFFFA8FFFFA8A8FFFF7DFFFF7DA87DFFFFFF7DFF %FFA87DFFFD07A8FFA8FFFFFF7DFFFFA8FF7D7DFD05FFA8A8FD04FFA8A8FF %FFFD05A8FFA8FFFFFFA8A8A8FD06FFA8FD05FFA8275227275227A852277D %5252522727277D7DFD04FFA87DFFA8522752272752522727275227527D52 %27A82752FD0427527DFFFF7DFFFF52FD04275227277D52272752527D277D %7D2752FD04277DA8FF7DFF27272752F8A8A85252522752522727527D7DF8 %A8FD04522727527D7DFD06FFA8A8FD06FF7DA87D52277DA87D52A87DA87D %A87D7D52A8FD04FFA8A8FFFF7DA87DA852FD047DA87D7D7DFF7D7DA87D52 %7D7D7D527DA8FFFF7DFFFF7DA87D7D52A8FD077DA8A87D7DA8FD077DFFFF %7DFFA8FD047DA8A852FD057D527D7DA87D7DA8A8FD047D527D7DA8FD07FF %7DFD09FFA8A8FD06FFA8FD0BFF7DFD06FFA8A8FD0CFFA8A8FD07FF7DFD15 %FFA8FD07FF7DFD07FFA8FD0FFFA8FD05FF7DFD07FFA8FFFFA8FFA8FFA8FF %A8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87DFFFFA8FFA8FFFFFF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87DA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87DA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8A8FD07FF7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8FD077DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D52FD047DA87D7D7DA8 %7D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D %7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DFD07FFA8FD3BFF7DFD %3BFFA8A8FD06FFA8FD15FFA8FFFFFFA8FFA8FFFFFFA8FFA8FD05FFA8FD13 %FF7DFD11FFA8FD0FFFFD04A8FD06FFA8FD0FFFA8FD07FFA8FD14FFA8527D %A87D7D7D52A8FF7D527D7D7DA852A87D7D7DFD12FF7DFD10FFA8527DA852 %A87DA87DA8FFA852A87D7D7DA8527D7D527D7D7DA87D7DA8FD0EFFA8A8FD %06FFA8FD14FFA852522752275252527D7D27A8FD04522727277DFD12FF7D %FD11FF525227522727275252FFFD0427527D7D52527D27525227272752FD %0FFFA8FD06FFA8A8FD16FFA8FF7D7DA8FFA8FFA8FFFFFF7DA8FFFFA8A8FD %13FF7DFD12FFA8FFA8FFA8FFA87D7DA8FFFFA8FFFFFFA8FFFFFF7DFFA8FF %A8A8FD0FFFA8FD07FFA8FD3BFF7DFD3BFFA8FD07FF7D7DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D527DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7DFD07FF7DFFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A852FFA8A8A8 %FFA8A8A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8 %FFA8FFA8A8A8FFA8A8A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8FF7DFD07FFA8 %FD3BFF7DFD3BFFA8A8FD06FFA8FD0BFFA87D7DFF7DA8A8FFA8FFA8FFFFFF %A8FFA8FFA8FFA87DA8FD05FF7D7DA87DA8FFA8FF7DA8FD0AFF7DFD0AFFA8 %7D7DA8FFA8FFFFFF7DFD04A8FFA8FF7D7D7DFFFFA8A8A87DA8A8FF7DFFA8 %FFFFFFA87DA8A8FD0AFFA8FD07FFA8FD0BFFA827522752277D52A8525252 %2727522752527D527D27525252277DFF7D52FF2752525227527DFD0AFF7D %FD0AFFA852272727525252A8522752275252527D7D527D27522752275252 %527D7D7D27277D525227527DFD0AFFA8A8FD06FFA8FD0BFFA8FD057D5227 %7D52FD097DA8A87D525227527DFF7D7DA8FD057D52A8FD0AFF7DFD0AFFA8 %7D7D527D7D7D52FFFD047D527DF8A87DA87D7D527D527D7D7D52A87D7D52 %7D5227527D7D7DFD0AFFA8FD06FFA8A8FD12FF7DFFA8FD0EFFA8FD08FFA8 %FD0DFFA87DFD19FFA8A8FD11FFA8FD0EFFA8FD07FF7DFFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A852FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FF7DFD07FF7D7DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D527DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7DFD07FFA8 %FD3BFF7DFD3BFFA8FD07FFA8FD10FFA8FD08FFA8A8FD05FFA8FFFFFFA8FD %07FFA8FD0EFF7DFD0CFFA8FD0EFFA8A8FD09FFA8FD14FFA8FD07FFA8FD0B %FF7D52A87DA87D277D52527DA87DA8527D527D527D7D5252FD047DA8FD04 %7D52527DA8FD0CFF7DFD0BFFFD057DA87D7D527D52527DA87DA8525252FD %047D52527D7DA87DA8527D7D7D527D7DA8FD0AFFA8FD07FFA8FD0BFF7D27 %7D52A87D522752275227527DA87D52F8525227527D27527D7D5227525227 %52527DA8FD0CFF7DFD0BFFA8527D272727A87D5252522752277D7DA85252 %F85252272752277DA87D525227272752527DA8FD0AFFA8FD07FFA8FD0BFF %A8FFA8FFA8FFA8FFA8A8A87D52FFA8FFA8A8A8FFA8FFA8FFFFFFA8FFA8FF %527DA8FF7DFD0DFF7DFD0BFFA8A8A8FFA8FFA8FFA8FFA8FFA87D52FFA8FF %FD05A8FFA8A8A8FFA8FFA8FF527DA8FFA8FD0BFFA8FD06FFA8A8FD3BFFA8 %FD3BFFA8FD07FF52A8FD3A7D52FD187DA8FD237DFD04FF52FFFFA8FFFFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8FFFFFF %A8F8A8FFA8FD77FFA8FD04FF52FFFFA8FD77FFA8FD04FFA8FFFFA8FD77FF %A8FD04FFA8FFFFA8FD77FFA8FD04FFA8FFFFA8FD77FFA8FD04FFA8FFA8A8 %FD20FFA87D527DFF7D7DA87D7DFD05A87DA8A87DA8A8FFFFFFA8FD05FFA8 %7D7DA8FFFFA8FF7DA8A8FFA8A8FFFFA8FFFFA87DFFA8FD22FFA8FFFFFFA8 %A8FFFF7DFD20FFA8277D7DFF527D27A8F852277D27522727527D27272752 %525227522727527D5252FD0827527D527DF85227522727527DFD22FF7DFD %04FFA8FFA8A8FD20FFA8A8A8FFA87D7DFFFD057DA8527D7DA8A87D7DA8FD %077DFD04A87D52A87D7D7DA852A8A8FD047D52277D7D7DA8FD22FFA8FFFF %A8A8A8FFFF7DFD23FFA8A8FD1AFFA8FD0FFFA8A8FD26FF7DFFFFF87DA8FF %FFA8FD77FFA8FFA8277DA8A8FFA8FD77FFA8FFFF52A8A8FFFFA8FD77FFA8 %FFA8527DA8FFFFA8FD77FFA8FFFF27A8A8FFA87D7DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8FF7D277DA8FFFF7DFFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A87DFFFF %52A8A8FFFFA8FD77FFA8FFFF527DA8A8FF7DFD77FF7DFFFF27A8A8FFFFA8 %FD77FFA8FFA8277DA8A8FFA8FD77FFA8FFA827A8A8FFFFA8FD77FFA8FF52 %277DA8A8FFA8FD20FFA8527D7DFF7DA8A8A852FF7DA8A8A852A87DA87DA8 %A8FFFFA8A8FFA8FFFFFF527D7DFFA8A8A87D7DA8FFFF7DFD05FF7D7DA8A8 %FD22FFA8FFA87DFFA8FFA8A8FD20FFA85252A8FF7D7D52A82727527D2752 %52277D7D522752277D5227525227527D7D525227522727275227527D7D7D %2727525227277D7DFD22FFA8FF7D52A8A8A8FF7DFD20FFA87DA8A8A852A8 %A87D7D7D527D7D7D52A87DA8527D7D7D52A87D7D527D7DA87DA87D527D7D %52FD047DA8527D527D2752527D52A8FD22FF7DFFA827FFA8FFFFA8FD24FF %A8FD2BFFA8FD26FFA8FF52527DA8A8FF7DFD77FF7DFFA8527DA8FFFFA8FD %77FFA8FF7D27A8A8A8FFA8FD77FFA8FF7D277DA8FFFFA8FD77FFA8FFA852 %7DA8A8FF527D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D %7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8 %7D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D %7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA87D7D7DA8 %FD057DFF7D27A8A8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8A8FF7D52A8A8A8FF7DFD77FF7DFF7D7DA8A8FFFF %A8FD77FFA8FF7D27A8A8A8FF7DFD77FF7DFF7D7DA8A8FFFFA8FD77FFA8FF %7D7D7DA8A8FFA8FD77FFA8FFFFFFA87DFFFFA8FD20FFA87D527DFF7D7DA8 %7D7DFD05A87D7DFD04A8FFFFFFA8FD06FF7D7DA8FFFFA8FF7DA8A8FFA8A8 %FD05FFA87DA8A8FD22FFA8FF527DA8A8A8FFA8FD20FFA8277D7DFF527D27 %A8F852277D277D2727527D2727275252522752272752A87D522752FD0427 %5227527D527DF85252522727527DFD22FFA8FF5252FFA8FFA8A8FD20FFFD %05A87D7DA8FD057DA8527D7DA8A87D7DA8FD077DFD04A87D52A87D7D7DA8 %52A8A8FD047D52277D7D7DA8FD22FFA8FF52527DA8A8FF7DFD23FFA8A8A8 %FD19FFA8FD0FFFA8A8FFFFA8FD23FF7DFFFFA8FFA8FFFFA8FD77FFA8FFA8 %527DA8A8FF7DFD77FF7DFFFF277DA8FFFFA8FD77FFA8FFA8277DA8A8FFA8 %FD77FFA8FFFF52A8A8FFFF7D7DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87D7DFF52277DA8A8FF7DFFA8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF7DFFA852A8A8FFA8A8FD77 %FFA8FF7D52A8A8A8FF7DFD77FF7DFF7D52A8A8FFFFA8FD77FFA8FD04FFA8 %A8FF7DFD77FF7DFD04FFA8FFFFA8FD77FFA8FD04FFA8A8FFA8FD20FFA852 %7D7DFF7D7DA87D52A87DA87DA852A87DA87DA8A8FFFFA8A8FFA8FFFFFF52 %7D7DFFA8A8A87D7DA8FFFF7DFFA8FFFFFF7D7DA8A8FD22FFA8FD04FFA8FF %FFA8FD20FFA8527D7DFF7D7D52A82752277D275252277D7D522752527DFD %0452277D7D7D525227522727275227FD047D2727525252277D7DFD22FFA8 %FD04FFA8A8FFA8FD20FFA87DA8A8A852A8A8FD087DA87DA8FD057DA87D7D %527D7DA87DA8FD047D52FD047DFF527D527D2752527D52A8FD22FFA8FD04 %FFA8FFA8A8FD24FFA8FD2BFFA8FD26FFA8FD04FFA8A8FF7DFD77FF7DFD04 %FFA8FFFFA8FD77FFA8FD04FF277DFF7DFD77FF7DFD04FF27A8FFA8FD77FF %A8FD04FFA8A8FF7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DFF %%EndData endstream endobj 22 0 obj <>stream +ná_VZÞy¾à¼”r™þ“Pòp¦³)\Xùæ9ëÎO} W§Ô„¿ÀÓn„©PÏ-(ß;»+w@ÞŸm©ûôÅÍ&|ö’— °„Y-©dÅÎÁîúØ”U'ì€ÆjXE·æÕ˜üm'—°e¡×/«ñc¢²ë^VÑE 6팓óçt꣚sфϽäç–Þç—Üœí* _ê«OZSÁÓBRø{Ÿ°ìÎlGCø¾ŽQ½­!d}9š“­¬ Ÿn˾þÅØðŸ1Lé ž¶¦lŠž‘T?ÜÒûÐK^W€¢w-MŸÖ Í1›fx↾ç¤7ïy™ˆ ‰X¸¢£•†95>qÙ52úÔ ,ú#1ᢋ“y¬­âÏ>ùº`z’ÏN´Ô¿ñ·T½„FŸõ±³î,öÔEëúÉ!j|܃ʾÔ2a{.ÅßQü`AQûfÅ„L›UA¢v<øª=4’˦ä°ÈU#,ù–ùòæ¸â=º4DÌô¶ßšôçþ¡ñ @'dÐÈU ¼nkç¯Y[©6Nõ}RÞ›_°9áçú IWG»êžz!i«V.uÙÊ,hQY£,þ× žhßÇ¡„ô¸"‡ ôñp[åcOÃë‹û}ºUñyŒMÙv‘kÖÌ”êR½¤Ág­è©e‹&f­QÐánC—ìyÛûg¡1C¨ôßúê?Ðb³.ÚËŸìØ É€?WÍk© ï~逦¼üâ!¢~L1¨ë6Dê¾]ýuŒ„úì§!6LTÈB­µð«ŸMôCRÿ'Øbø2A†oºP™KHThôvEÝøˆG‰cýè÷ˆ¬è“¨ìW禕 ² ;²ÀȈ=ë`%_ôµUÜóKê#&¥Õ»ndÉçqmÃÁÃY¹WC&tå·)^Û¦U¶fiŒ]µ"ÓWlÄÒm7¾ößEÁÀú—#£•¼,Žþû§ýI®øÛ¼Pþe’q4ó»dYÓðfZQþÈ?Ð1¥eժɵ×g„Ì}7¹~×V½9T>¯åÁ\º[ì’¿lŒÒóv啱vðãêƒCPusœz¦·!犞P~wL\wRÒð$¤½[7 ²ðZÁ­YsÒ¦•X°bD§.19‹&ZŪ‹ÙãóÖlÄ‚ О:|þŽGÀÙò +˜«FJñ´´)b›|®¥ôù‰~HÜ/&rñ_ýäÚ ‘¯†ÁS_]œíjŒôüó^ÖåqqþÃaî *î4¯$ü”žð—•Uz•úìÔBwÕû¯N|õLgÅS;뺇›ð‡´ñéO½µ¯~6 “ι·Ó^üVqõç ttÖèßq2ì»— Ý3Á +ƒŠŠ7SÒ²ÛvQÕmlAÜŸÝ iX‰¹u¨Œ¿,øüËã‚Æ{FBáy ü%¬Œþ…’ùæÄˆ¨â‰™Uø˜–ÿâ"ñá/m•Q¿›ÉiMw×?^ÑÂ’Vtµé!MÅÇ/^"èÀË£î:‰@Ü-Ûq!rV Mçäȵ£3{Z€ÃFQõ!Cs { ›¦NѶ_T7Ä,*ꢗuÍ1[øÂa&lj•©&æ\›íGǹZ1ZFÝë‘¶ªÇ ²Òðu}À# Œ5*û¨Ó÷)®èÀÇÀ-è(›Ã´¦MºøÀOAý˜e ?3HëØÜ-±jxmЈ/ ð%!=±`A‰‰_„Dî:Hõ_¼þ¶ƒ]12j‚ºòÒ ¨yf€’6Ñ {«#ç\Wa’ÏÏÊ`1+:Fù¶•V· Øä–‡…Þ +6\TšW2¡ræd ˆ-'±fg„‰94Ø¡Ÿ;§c÷ü\Ú†‹…ÞwPœœ’;ƒèÌ?¬ô 3ÒšGÛfTög“0©F& €#7ìIJe&uË…É_wBÓgÕMBflþž›[7ã‹j$>O°Û~äŸen÷÷eò;>O2XA©iÙÆh\Ò‘rWL¤’o‹-ú-‹º?Îåþ˜jÓü˜õüç0¾Œ±H;~sACÎÍ;4ÐŽú¤?œì*½P²«ú½–xÎLNÿËÍ-{2Þz?Ûwˆ!ï°ù‘¿Ps?œÝ2¢ëçåUƒªº—SÝ%÷{A¯Nô5¾9ái­¼+gVÜŒ~ã8.õý¹énèk¯°æ®_ò·Ux•šýîdIøõ°ÌÂ*_Ý<Ϋ‹;™u÷8$áéñ©v`;ª/T=ò‹soh1g…N(à/O¯ëšç´¨l51ã¶¿­<êÀM„î»(Èu©x׊Ë_(d¦Æü9ÑU¾j —ɰ¥o¦Mù3²ºØ qMä¢ö~¸ˆ%UC¼•qµ£îíÏ 2JÖH;&Û×JY„ÄZÉ×Mäè?çúr~§í8 i³Òb€A«cv\lŒ_Š-Z³`ªÇÕ}Ÿ A¿Žáë~L0ˆ+FD6À07Õ°Œ];²®Edhð±çͤÌ; RpdP ‰\’c“Vu"䲊]±ªã6­šD„E5³vAEÊ]Vc’-›<7€úÂ¥nóˆórlN78éŠ^ôáË8§eY ‰ßt\7Æ&‚Ʀ˜ 7¹yßÏãÎ)q€Ô [Âæ. Ô¾iI¹ª¿jB§Ïˆù“¬š‰EsƒˆcTäYÀîØ¢i$fEI\7Œ`BgîyI ÿ,ò$‡°¹òÍaRõ_µãÀclÖׇõÙÏÄíûi˜ •Pºïg±Ç9œ“<Ñ¿Lê×QbÝŽƒX¼ªÃ¥¯þ4Õ‹ŒôjníãJìB‚G ‹˜WsÝð·ó²†çKƒu/få ¯üÝ5Ç:ÏʹeãR~ÉT91¤¥—ÍÕm÷U? *šÞ¬9«6XÊä`Ís¿´þÕþ—µ øÄªƒÚt²`;ñ`¼µïË„Xutoa˯ šàÉëJõ¢Ÿ½¢Á$[¹%×»aI§;SN:õwæúèù£íÈO*LÖE¯¨)ÂÂiŠò´B"‚|ÆŠ‰R>?ý0@ôD_s$ » ½­ Oœê»@ŒM]Ó"R7M”²u€¦ûˆÉc}¸8g ø¥¿½kg¢FŽêÐ$ ϧ{ëߨpi7tÔâ‡ÎnbŒœ‹zÏM8Ýß\q/ Å'©É¥—¹EŸŽS2>Ã&¿9†I|s +—øþ ¿(é|?²ú:2'ñ,·<權”qYüâ76öw=!ö” û«›rÕÅ+~´¢#”z¤Íqˆ”G?÷‚âüà´~õsØ+º£ùMï¦:²/ÙéÉ—”¨¢ÉARA]Ò˳ޮºüÏ£äÆ vNuT¿ðpsoõ7¿;+©{ñ³{fnC­J¸V÷àœ–õdˀΠ)Á‘»FHÜ–¾ê“Ž}K\ýø”šú÷:ÀQø¢èßUøÌÈ/^2ñŸýŸ bó U°i§Y8 7ÔØÄkÓŠ¦OýÄÌçrdÂ5õŽ…’ÿl©ž´kÖ„ÔˆÄ9 @9h—š³7Ì¢O‚È^TK€ýËXVÓª6Lô†u.wJŠB'^#&Ý9¦D&>åL÷Õ¿ÝrÕï±i{~:Ð`È6}ÍN…ÙxEw—5È´q)¢ÒÙR·¬jxïd'^Y¨xºm>߃/[RC><¿¤©{wè'‚VM¨’‰È»±ŽÆ—Ëjhâ¦W¾çdâ¿8üÿ.ñz×,ˆ”M;®äóƒümœÁþg’)øw–#ü1Íá}`Ó¿L³XßçxÝÿYàõl9ñÿLqøÿ3Ãmýì$VÏ÷ƒÞÎv×=™ë‡/Èšß.©š¢¾Žý +jÎ’šZ¹;,d¬êصA5>m²§ú~ ³øÚdWñõe92vVIÉðvbßÍôb>nÚx¨©Ð[¯ ç‚¿5ï²[}yEOÙvR›vÜ\掟/D%ød¨ØM7X—öýñ6ÙçWðÙGC¯;ás,Û9^éíU-­xNEÈšè¿÷p*o.ô4¿Y’áRfûšß{yWUÔÒ5«˜ ðY醹9&Ð]tk¢+ÿú¢²6|ËA,_f€f ïVhþáç2ޝ ™pY³2øû‰nðËÅATÜÑÙª=·ïò—Œ”²5—¸íÐ×L´º%³~d[dë£Ä9:‘ÓJZOFÍ4ò¡4„¦;:ü…S}7Õ…Iœ£¢ü"ðc³é¾UqÁ+¨¹£¤”Þfæ¾=­†§þy´o“ +LÒ‚Z4ó`sf1Å֋퀦ÿic–‡õ\›U׿È«N+Žzƒ>lZHUóún–SÚV/•\Y1áj6-1ó²²{Þ–¼‹rh쩞ƸÓ*Dòï]uáãƒÔâ¦Ü˜ßß\ÿ3¬­úÓ• -,y¼%›|É„|}š–sïX'èÓY+»ñÁ¨„‘T—ðú8«4âþŽMøw†Á*+žO´å]¶³RεT=>»z@±àŒçgi9á'~ø¨èo^2䳋\Ò5}@FÿÎÉrR˜û䨔¸ä¹–UüºáãíSzJö»=/ºmåÀäÐ'?ýJèÃÏôÜÇÇ´„Ø‹³ý¯IE/Î[8¹ïÿô~Ÿt›¢‘v=ˆ¢U+,m¤«òÁ!ý쬉.þx9óÅõŸgä âSãÇ ¼ìAHYñtq èAwóS‚»§œø{[#ø*L^øTêË?<-µqß}\Öq¾ð›ŸËÞóR`[.dцµ>ò—¨ôo3t¡2ê8ëåý5+‘ðmªÓúu¦ÃöVEæÿ ±{¾úa‹ƒ…6œØÆnxÚ“ABÞ³%54uQ ‰i)ÛlÑ•ó¯_µbÁd¬ÙXMA3³.Ðÿ´nå6oÚh$úôz\\r×DÏ¿&‡§ž™î¬21ÀîŽÚ§S=uájÝg/üÕOC~ 0¨»^vÞH+P“s­ê’£³uB#í—¹m&ì˜ÐÙ‡BÕ–‘¹cÃäî8x˜i€ƒÇ:@‡©zë?þ¢jN8c#&þ1Ùžó`ÏÅ¥­ÌŒ·ã$×n¹ð¥ß4Ô÷I~ÇOiš£íBHÞ¶ _áï½Z·r ›6òÀEl8š;ðMî›Y4ꌙ¼íç0W‡˜Q€‘fU°˜-2uÉŠ+Ü¥@ƒÃôúÑdÔˆ¾ âT­Y$­Gs3–‡HY3½¸x“.õ4¥þ.Ge\™6^÷ˆko«˜U“‹§•Ä´¹(è`‚fŒìÚ£rw”Cþ:ÎoÙ!Wì¨L@34-ì†u'­aÏÇ@Íè ÙójÙ²•^±ç;ê÷ƒÍ]XcÅB«ô@Õ²†V´¬§Î*q)ž>ô{¿á®™[ýhUƒÉò‰+êIiW쌂{£bØ»é~RÖ”‚™7ÒÇËq÷ñ²§TäÌ ûm’Å\2a³æ4ÈÔe=¾pÅL¯_µs0+.>øü‚ñžÆ7+ƒQ߯ˆ©Þª•·gåMo5¤œ« +xúŸ.vÅ­ ‘Zm£>ˆ@é­‚ÒkØâñžú‡ã]ϧûš£ædøÔ ).eÕF©ÙòPçÕÈÔU¦òÛ4›tæ|ljȞSU=üAþ°h ø”œƒúzTöhÍŒ©˜—ý=ÓQ|ÓÃJûÃÅμèm©tT¿^Öa‹gL"d'2÷oqcüM G•v7?ŽX·b V¬¸¢Y-}ZG/éAG†¬Œº£Ø¼b${q¤§ Ôâ›6NÅã–X26D-í#_µðª_ì¹è°£^wË:h쪓¹¤'.YE¤g{kÈ-‘N™{ø¹R‰gõ½ÜE-9”ŸäÒêg¡¡ÚWëxÒœŽY9@¯¸×ÞœòÇX;èõÂòÓTwýÓiÑ£½apÖ–›‰™3±ê'‡(knmc”ƒ_s’*V]¸¢e*cZÙ±j‚%í¹QÅ«NtþŒ•8mÀ¦kå/øôËûvZ݆‰V½a¡Vo{iP€‹©ë#Æ„–^mo©<cQ¾ÌðD_f¸Â/G³÷œ”Ú+±`YOÌ]ÒЊ—Í,ÐX/òݬœ’Ò‰`Àc·°ìædwéãyeík» ÷ÂxOõ« ­^Ë­xdáW¿Øa öF™˜M¼ïAÿ;-û<^Ÿ´4F}‡%»¤Ã+£”ÈØÃ“¾=BA(ˆo“$ÈW³á@çîk~&Ì)`ïCZTò† •5#oxC£‚fRÉ. w\,äQîÕ£ž«nkFÏm\2±AËffÂV½b£÷¼TÈ· {ÇÇ£/˜¹ õѶö-ŸsT?¹æáÓæ¬ÔÊ—ÒÁ·ì˜ü-äi¿A"Ö,|ô’Q1+#¦,jȹÓC„´Q9yb^¼ê1§4”BWêÝ‚¡º`”°‚&ÀB´ª6i^‹Ë8Z“}‡º èï5 K=¤¦£³>ëRõžŸM ¹8(ÿ§lÖH/[wÑÁ.ÔÅ.¿>ä¥[²jÂæo:IU!+¡xÁ€Ï (Ii VhÕ-ìZŽúê­äú¯G½}ç=k£--cC8¿FØà–£c†%ugTh裸Y÷À-Ú¶4§lšQ…kBíì`+x\Ö…bÂ?:Ú ÿLs{67§¨zncež×bâÏj1)—·€ýb'hÑ̨Y4òÑó&!2ä’ ²¤cVÍ’2½èÈ€µ¨#©y£ý´‚Y-´= +ü/ É´„¼U£È1 ›#-Â>o‘&M·¼«Ñ7(£û•à9-·Î× +Y–c³6-äÚu;³yTEÍcK®pkS÷wò‚zR~@Zýh¸%åÒtÑÃU+¹bÑ&$,;[9k#"Þª‡… Ù˜ •a6jÅɆ­´ª5&;¤E­ˆŒ/­idˆÅ„g\ÅfEœØ42¶l|Ìš…Ù°é¡5¯º( E;£aÁÊ­»„‚í1a˦Ÿ…r õ¨çŽ‹Ú¸ç¡ÃöGXØm7¶d"äLô!#‡U‹.ØÝzài©~<ÞUõ`í³ÊÚˆ –¾á¢Öûú›}½à„½QvÝNªôÕ½—fÝ?­zÿy¼!u×OBmøÄ½ó6I›Wƪž¤–~™n×iQä-7,{ËÕ”´íBîûˆµÛnRÕ„ü<¨GgúIà=¶dËI(ÛÿÿÏÄ`+VÍøâÉ~X亃ִ3)êYvñA;³í‰ÇE’€ø½eÇõ*É Ú©5‹&~óºWÜ3ªhÎröTE¯ “Á+nbÝM‡¬øÊ5´b¢æ×^12qÓÙ*\00«fÕ´ÜE=½lVO)›3²¡sÖ6ö¼£S4­çÖÛÚ(q“FE_À0жhá€ý* ‰¥ëvd×ÇeN´ôîx¢­£3N³mšÝI¾xÍCoùÙäÕQzÆÁ/y˜è ?›¶âb! ŒòëcrTÞŠK@^6“Š7nX±‘ª—ÍÄòe3¼éoë[ë\ó‰ÚŒÆm›toBйå'BW\¤Zßñ“_NLœ:š¹êÁ×ý3Ûªþ>Ûaý6Óªü<%”íûùm{G³@F„ü€‚W>9È«XÐ a›.q×·)±&hDeÌBc}Ø1IsÄœ +·ãp×BÆîhk÷öˆÔ9kíj šø5«3­áTYZàÏ<ˆ7“r\BÐÌjZ6·³Wm=’-/²é…¦¯9(•GóÒp´^tç»O(Üô´÷­º%ª«[0t|šVÈH+}J-¨õ´3Rf¥ô¢-‡€0­¥iEÍlÈw*jÙ¢Yˆñô`"Çð ³j`},äú/ã<Á†‡K^ss°ÓZ|öÔ61ˆøuw+ÕÕÊ ‹h«ÃlĦ“Û›`²W½¤Æ>ÙÐ 7q!‘S!Ä×ÇH_Ò3Ê÷|tƇC^æÀ×¼LÄ? BÅÁ¿mÃË„m´vlt¾'A—­šÁ‰‹š†ÈYUã«i@[-[ø8¯œZ0H)»0'xà„™æÈ% ,f¼ôÊÕ^ýÐo¶”úm >/èh•3ƒ”ª >:{þmŠŠ:œà +–\Ì‚Eø¹˜½âê–-:$=3!zÑ.$…ì\ÊŸAü bn¨ùÓ¢“¶f£¶\LÔª_¸0Ô h¿„M{ýÇùÁ¼»‹ÚÆ÷›6€#­µ ÄëU¯½>Ú¥Zqò¨«@tYÞ¤œ˜2¯%ïø-㺷¥«‡T|_N:¿` 6FZD«£fp”›4P +–Ä2À`kng{\<°dt•ŽY¾ü}ÝËgÌÛøØ S+& o…Í„ЀJ&œ4 Žjeü€¾ ì|A‡Í^6`ó¶= ä¦OÀY÷p #<Úþl§ckš+Ø´lN·*·æÚô;s"åî$‡¿ê¡!æ­”òÀ)70$h2‰É)¦ÔÍÙ:ðÞ“&!|ÖÔ-œ7õw[ZÙ™¬ÊÒK“ZacR¬Úbþîl»yw¶upÝÏ¡6[:¥gTnŒ +è{“Äö8¾zÞ!æLXúº†û5+î^Ý”±¯Ë$í®R¶v§*…’„áÞÎJ+ðb¢Y²î’ lû;wÆÛúw&A/¶1ÎÄmOŠÕ;S÷îB§kk’A[0Á3æè‚ —Cš0³ë]ýôg5! Â§­>ò²ÑKNlÊÀGo‰${Ó]ö­©v㊯Mô +³fBñ¢ƒ‰ ùÚ»·¿ÞúÿÙ€MZuãË·FÐÅ»ã4ìî„X½˜§´„œy#¥q{¼]½vi fZõØ.eÎI®ßž¦‘Y«>qmDÀÞ™n‘íŽ [w&ˆM»:nÅÝ!ö){®~ ÎÒmB*[d* +ï帤6§’ÑG¤ÜtK í•»S4= i˜yÔC"{oK¡A€}çÂSÇ:t;ãbÙŠ‡Oöièy7Ç®”¡õ½jˆL(‰ï‚cïX™Ôü¶³eÇ%nÝtsóF~]@ÞQe÷eëù½i~_–Ãx€-)üiÚøzÓÙ-ÛpöªV}º1æõÃŒÝý•öi£_«jÑK†Z¥¹¶^#zDíR{-&©…¥ài*elE±‘tŸT†xÔYÎx­Æö'›Dê*WgOõ‚Z€øà°ÿ3ÍÍ +Ù´É<òö*{‡¼|¸SQëînÍ›31+¦u˜ä%3©bÝ%à¬~í׈áæVÆ3“øÔßË(4 !ISJxÞЂ™3ó1Áa!{?Цø1Ûn| µ1Œ,:œâuíѲ»£uDÉ,Ñ‹0ÏeDÜ-§´«nÆÒÉ^÷´µ‡l,°OÆÈõHˆ©sJzI`]›ö|\JJôc²g‰E›!'8, Î[xi]|D%ªÖ³ª–|ä’^hý¬Y£Ô£no4)ÔU›¬ÀÚÓYê’õ€-½½u™†iîÕ³ Ýf'©ï“Î{æéï†Ï[:hA³èP†]rÒÖ} Ô: %B&|É °šS€Õéû‡‡¬2¯ÎÐo“õÕ÷¶É…|E4ƒ,}Šk’\Æ…7ªR+ÿÄW¢Þ©Ä­µ3:!$è`—½,Ôì0¥fgJÐuÔûjJ¬Û °˜+#\â’¿£3àS]ún¬QÖUi詶˺ë'ÍÝÌ ‹´Í)ë…ºúX‡T%pȺp>0’Êýƒ˜Ô•a!ys´G·1Þ?º;ÓiÝžh“ïM +»¾Ìñ»èìÿ®r¤ÿ +”_ç„»SÎú8—1ïîlŸ4÷¶XÛ©“ÆVRÀÜJóªé…3Ã"öÎ$‹³4Œ-›ÖŠCÃâŽ-e}´U<íä£&†»8n£QnŽråâ1D××FÓ½c¤OˆªDÃ×ÃÐÆ’»àrÊ-j-ïMY•ÙEïɶt´e +ô­¨5_¿{ÞÕ?8fí¥Í +¹&“Op%]c>MýZFÓ$˜Eæzk›ºÞ)î.rI‡ šVCY?Ó–Æ!Y>”`¯W¦#®BËyÁËØ¿)hí)k®¾Á­ÑÎYsÍ-çäÛd½à¡^=\&ubú{=ÛÂ#iÞ´0ìi]¢‰&Û–IÁ¾®* _®. _ú”„<õäiÁ±ðIdzÞÖüFõEª¸Îªá.%4d&J¶|¸Êq#³z¨½/»—©‹ï¢Fv³ú£4RM­¦³;Û#ï‚Κä’1£ºËÔßß à¶Ûž‹šQÀI±¿*P°„Ù 7d•´nŒvʦÚA£.jê¢Ö,ðܽ±VÙ¬[;9<8ÄÖJº +”Ba¬Š×“åV˜Åc¹pÊÜ'ò©:ëx-1´ºº?dDÒWGW^”ò·ž%ÊšQwÓƒÆ.Ö”‚U°0D+“Âb¦•|°K=$’"‡Õ}H}ok†®“mötJººüõ ¬ü Ä|È'IRÄB}/‹ª* Ü.È@ÞNOj¾Pœ…ºR“y"Ä¢ =Ù£œ?eïä/ܶä$ÕÌè0™ãÌ¥—QõF\‡ÀZΣis´¡\ÅÃ;ž€àÚëe•mgs³˜?gçÒ¾w?6ìÁí'K +ðP›÷{‚8›¼ 4a–Ðçìmô•acÁH¨˜6Ó*<&¹P«ÕÓûúT¥’vU–¤ÓT!âhãYÙ6¾#¡~¬-h~Ü\JyV‘ƒ{œ—¹^–]z®ú{@ÈŠTò[ˇÚH®¡Áîµñ.Õ*À%»ü–¯óÂýiog¦Ë´9Ùm]ñu+gÜ]"ŸCÙ¥U âä]òÒ^NÇÇ¡eýЀ+u¥¨Dm æ–Ls?3}ÂÔBÙHlûbù¢«UhÓé;åJ7»S6ψ«1dÏë†&ÅD~ÚÐ{>/{*1òkn&÷l^©ü—‡ï`a×îä÷¶útq&ê ͽ§íhÏ×ta&- +ŰÁ¦S HIJC¼Oí¹)(‚ï1ºYw“ÕÝ%Âõ·1MWêk¥7ËJ:.•÷þ‘W,9ý ¼<ìöœ°ÄÊϨõFWÛXý¸Q/[quI&õ‚¦1m Ì­“ó•êa>³g¦Åž‹DPf^Ô4[®d¶þZXÒ{®¬Bõ[~aïÉðw°cßÍ 9öò)ìÆ“ê°_Ï>{Qº´˜黥m—¤ÎØØy`Q´”Ë;Ô%g.›i&R†_0Ë™ öbŠP0‘Ç¡ê?0 ê÷,²!“ß(Ì£ÿr÷Fäñ—7£ÃÒ#Ë~+ÉÄÜ%ÔQÃMFô”Þ4¸äh„,,Ì–§Kò¨Æ­&³¦WêÃvIýðŽîñ¦®ž’¤{‰Ð*°§ †h>ÅI 9Ã«Š™§*r0¿Våã.g$ÁO?{ÿ{NláÝŠ,«—ȸ§ ”_U bêG¤Zuæ~ù€ÐÛçAð%ãeXº÷UuÃÀZê.Š:QÓ0t!üUõñçÏKN效~Ë)ë=ýäEuØ¥«)aWnd…½‹§»ú¨.ìuöm}Þ×?Bò˜»ç½=Óv.­“òUžÖ޾9M8“BÙnÅ$O=Qs2>óKQ™âLz¾ôç÷Ÿ¨Çî?­ {C8™Ä>võ~mØÝp\X~¹åWP“ñ: ¯x¦Ë‹´mi£JF¶OIIs(¥HIÅiŸ+% ÇšqÖ»…m—«ÀCWëÀæ‹ ñ„Ÿž>):vårtØÃûÙa/# aÞ( ;yònØÝ»©ÇªTW>¥2ÏÜRõ[Z:þoY{UpTܱ?ÙÒ·îåÒ&tÂF—VßmÒÚ¤Cꑞ>Y€Ý%[ãÑSH¼ñ> +=ô€@v½BâϪ«»¯E¿«:“‘A<—’TÿWFbÞ]y »"háæ,„A#'uô™kâé\o.¦4þ »Vñ[|&ùxbå§·qÍa7_…ýò×›°‡ò¢â©aÞ@®ÜÍKMFždÏCåîÁÎ&g?/ÛªRä +QÐí«$‰BépfðueüA%Òu1)¿õ§·¡aqI¤ãiY‚ŸÞ'RÃn†×„ý ¼×å{…aÏÞ ÂGàŽ=~‹ü¹¢Jx¡·ÝXàË`sæ.μUÚå7÷ð ªöò^Ù@1¹ËŸQŽ›¸^ñžËk°ýŸ/9ñ4†vþVyØG5aÑ ŒcÏÞ“Âþ~Úv'™"8‘$:þä=ýäÛxÖYà«R¡$mÆÑÙ:k0ݦ–€Þþ’Áм¥sÝ¡øÑû™¥§#â'â³;~MÍi?ñðieØó× ãŸR?Çf »‘öËooÃþ¾Wö0öײco?àÎa°ºOºþ‘ÎY³Ö1g‘´™ÛèšÁ(GäLcHBÕTéN}s9¼=r£9z³¦Ñ|>¯Pròc"çdJVljˆèc¯%‡= ¯»ÿ¼*ìâõ´co£ ÇiØþ»R +å¡£±bc@´=¢œî®¡B^»?#\ŽÞóUJ¹üâ“hü©'ïÑÇâÓ…Ç“2„?½‰Fýténþ±—QÈcŸ€¿EÄR®=({‹?–\e9™UçüN Duw™Ë†Õ=ðåQ‰juºÛk¶é”íý3$jûJ!œ3%xîÕõòË:Ͼ|>qí^Ù±[ÏêÃî…7„Ý{Qöâ#þÄ‹扨l鉬Zó(yì9¯-PÐßí†ØÔîØ jĮ̂öÈ r!ýŸ®xÅnñgRÄ‹ÙPFðen…ê÷¸TöIÀçŽGÇs޽Š$„ÝÒv÷q ë°aáɰÛøã—€ºÿ{[–‡¹íÑõbçl"¬·V*3ÀÚÆ‘ÜÎÉR²h.Î ¯„ ]IÈáýJ:‘„ÿùƒÜc§Ï½ +»ó¢°7úñìbÞïxh÷Y‡äÔȈóV!||’1ª"g:Y¹j¥²©½Ïa´º’±tõ#(Z{­j¿•ÁrèøýçÙaÙ‚S™e²_c²Å'_ÄNÇ$3Î×ÖÉïqÒ§ªvλ1%=eVGLÚhÕ >rÒÈm4ÊØ)2i{F§ÌfuŽbi–׊õ”8ü(§Vuáuù×§ïþ˜D8‘Å9‘ZÈþ³ Ar½®¸ÆïÐ(®Üá\½D :DÔksºo°9Ö©mƒõ¶KË;%FXêl`Šœ‰ ˆÁŸr[{“È:õ, +{ìi°‡šcׄ½ŽÁ{È»ú¬!ì£^$ +ÃâK§ŠAæûd–#Ǩ²·,Ú:[ÇÔ¨x—òÊ«e—¨Tz´°×[Á꟮A÷n×ÓfŸW6Y/”7êÏ¥µ¾x»0ìê’°‡/!a7T…]ú;;,â=âXZ¶èDA‘ø 4øn¸¯£dNϨX²QkôíØ·&yDÖg39š·ÌöÙBbÇj>”=SÔ?)¬•\«iê¿Bko¥Tt_y = ;–”Ç?™PÜ~!µªõ~iè5ChOîp¢Gôy«acŒËØžjé1w‡Âe€Ê’øÊ¨l]™"{Ja)_ ò% 2+Zï¤3ïf•°nÃÖ(0ÓöÁ4EòDª­ZZåÐöB½Z |ÞÑΙÖQò挄¼€Ÿ>2Ä(T´ S¤Ýòâî~C%[4‰g*Ãæ×9µ}7¢3ÚþºEùåÚãÚc¯â°'ã‹:þŒ/ë;_„ñÞ,£Œ>*@ >jfšó{Gén‹Š2¥%fMÖ½ Y±•ë#^ÀÜAÓj m]*U ©%‹Fã`Ìù¨Zìèí +„ýRv¥ìô½ÇΜO ûû~5›ëG¦BþcÄâé'·¼­fËA‚-XZpN¦Ë¤5ˆUƒZlŸT_ÕÞå(á‹m ¾9Kz à >©…Êo%r~ÿ˜„½˜‘Ï¿Uî}ÆahÒm;ů1Ê—œÒ~@£GûšÞØÚÊîúd ˆ¯R¯Q`$]ýYTóʼÌMæ7S\e’›igáÐÖ«(¼ò©¸‰Ák¢ùÜÁÏ^2k¤3ÓéT¦SwŠ´¸»[€xˆ‡¸$P h‹[€„â‚'BâÁ©ÌÌÚ{ÿÞã½³>ñèuç!¹ïëv¦ôõfô‰!ý£ÓÕ}C“àÄŽcjæ€DÆžõ§ºjBWŵÅ[sïHÛŠw”9AÓÝ™åÀìúfþž±¥qMÕ^«™~œêc'ö `×?´t + xïʼnXÆÈ=d­¬ ŒÐ™„aôÅ2Úä Œ6Y\}·8¾©g"¶kdª|V­˜ÙZøØ»oà ÷˜‡†Šô-·úÖzÔ;Æ*Ùp·pr¨fpd ÒÙ+*l\À4têrX­Úd €«ù•× kïçB¯ðÜæ·ÝÂ~²r¶‡1?NK_ê,“qÞÜÞ™¥Ï1‹MS͸EqWa² ªíªÔ{ÊÑîªñ÷­Q#í#YCâ’¾vqÅøÇéê™Þ „v ´:ÖSmlÇyTïüóm.MmõÆ8#{[ȪòiœÚ:⪤¶T;ÞT2ÓÃKw²äÓÓí£cÕz3„]-Isc-%ê©nœfò~M>м£}ÏÙU·2íÚw,ßBsã¡©IàÕÔ¯ô—Þ3õ€îZ%Œœ5!3m}ºbšyOÖOÔ¬Ê[é˳\¨©|¢}g´}c²ƒø`v¨-_1Ù‹6Nó &éIæ™ÎF§jxÖ§m®=Ðոȷ»lôºˆ·1ÇYtÒmÍ€hYÚJ4LÖ©Çùùòá¶ÒñEýmci­õÂ×túè}N­,ŒÎ{Ä`µß®møÝô~<«£{ e¨ÿCβlô½S72kW¶4îHX‡†¶÷'KÁL§“5ß_þXÙSqw®—&"öÏ‘º€ZmРßðìÆ0Œ|Â\`’97ZÛšCƇÁòQ!kI4ÀÝžâ»ÕŒJ·Š >2ÔÕlBިɿi;Ò.ëF OçÅUíLÈ 6$õ—yI{{±«wy¶ ¥™àfÌô3cÅ=ÌÈÙa~’^Ú7›ÞÕÚL\Œw½©ãÈü®ÿd³Ž¸@)?6ч&Ö­£UlLÓóÖt]yËÚ\wƒg±µÝ©ßj×¶pºÆ»Ž‡°(XeÛsìÒ y+q]Õß¿¡iãÙæ6-Ÿµ5Ã.ÚSq V¹È2…z»9Šxá׳Ig›RWðZ»– Ý’óªLBb¼Y‚ˆÙQ²ª–çÚ©§£Æ:y‘jåèǹ©ú<Õ(=Z-j*6*;kªFÌæ\Òiji=Úlséè•v%'°ZÇ?Þî6löè¼+ÍÝfeN9ÒXª©-XøÐ8ÓÇWLwaÄãÝà)±H04)«•0DÂQ¢\ÔR®ŸefÙVš[}KÍf!,r¾5ûê|OiܦúJÆ/º>ÿžœd™l!ïNs+6ÇðoŒ%w–º«ìˆê+Ì’V¼a¬¶tŒ‹zî’}è8œï:Yà3bÄ[Ë(ø‰E~n“âög©Y›"rö$;ÿîF/"ãó< Pã3< +J®[Aɘ(»–Ùš«ƒíiÛƒ¹S>Sèý« ·¯ ¦ùôŒ +Ÿ–Uå7pf -Ë6WW}²È§œ-q‰'‹<‚SA-Y#Æ® #WÇ© †¾š¨ ³hkšš»%"';•ÌÊà i›o™Â&lk¿1‚ ]&F­ ¹ù›c5é>%¹(ÙǽqÉiE+ƒˆ×ÆNÐM‹ˆ”²6ŒJuˆIÉv!*lµ#ï×Íî¢k+îo±LRÒæêÓ¿ß™€'º<Ìæ %Ý!ªIÛB†:¦°191Õ7KL1#ž+¹GHÉß¹¤ôâ³EAýž‹sÌàRZ:È#§ä¸¥¤dŸŠY1?\6]—s/8Gds–²? ‹9P¢’|sàx»$/ât±ì×ÒJZò@#àyTMõûÊ:¼yŠ˜l›.{íVÁS½‹µT—±žjžÆÇY'1)>­Ê:‰|cê(½³ØžÇ3ö΢Þ¨(…Àÿ¶ibÚþ,%Ë­åÀ-bbV@Ï@œ˜X—œR¸/Æ'úç°É_M4Ô×ÍÚz`‹œŠ&†¾µÕ£­Åy•MZëá“m3ØdŠ”í”ãSmRLܶþêd‰SÐS@-&Ï«€g³ eØDÏ9ç|Yðît­¡Å<…ŽÜÒ|êz6зx×4!Ù3IöH1)–QdØî$.v_F+ñ(™å~%1óËuf`V*›rX‡K^mõ>Ø.¼ÿ§…×x¶ÊfÛfðiæ1l–_MGúõøÂ¶øxrÈѹn5)?8sålµžï’‘²WË"MýE±^v²ÄçŸ.R«hü¾¶:މ³«ùÄ£Õæ®/æÖñõÆf÷R=×màÕxÔ5eG ¤WË€z4l¼mŽ ö¬6µøÖÞuíʃ³°á¯,#àg{£öà9lêW+¿Å-FDìOcc—úàÏ[QQßͰ‹_føP„™ç›en Ÿn BZF¡O¬ã˜×»´ŒÅ.äó•èW~iî\# žXìš…Gëß%_44$~¿ø.ûÚþ!Ë#ç¡ìbÌ[ëè‰u´ì±{¨ æN"b6«"Vú*€uB¼<Ô²`‡:6Ê: 3f^ÙÉ¿½/†„{ä5™~5µØ;‡Kµ‹PážY. áxh›kF>ôâ-}[έŮâkýU÷—úÀ>bb~ÚÅź&ñqKÍÙ¿ÎPc¿› D;MŽý~¡9÷š®)ó§­)D¬ª=ˆI¾t çB=Rz¡c»;RüÄÔž~GÛtÉØœöãrGÉ-·”Q²#ÄæX€ÏìTÇzf ©¶qäkÇ*Ô*¬Ž™¬Í¼Ú‡‰øÎ<Oÿ<ßÜ|¬f€×>>šoK¸²ú1æŠ_ ;Ö³Õä2Ÿœ\œáàRÕœòzâçyåÜÄBû LØfô*Hi‡ºšâ­ȳõ>È#› ñHY•‡J|†[ Û­ziêÌ¿a¨z +ôK‘ž…’4\ÝA„Xˆ³ùz¦o¶&Ë#«Ž÷Ì€cl’׎i|¼S¼ç±ž´6ŽÝ¯~½'Á&út,˜WM­Ø¯ˆÜ(½³Ú[zs¥¯üöé +‹hâö¦A!vIUä¡–\|¬¡”}ž§AÿZgÓuDÐÆPÙ}Ç &çtIÐì‘ÓËöE¸xÛ,Ô1 ~éWÇë9¨5²=X~ "dk–¿;†Š÷Épé[}E/íU±;Cå/]Sˆc-¡bw¼"b­¯ìÞ‘žÏ è8˜!ß«E&Ú¥àó8Ä=GÈ(%~µÜ2}u¼LF¼Ç8_­ãyµ,ôÎòíʇ¢û®XŒÏP[w´\_{¶ÊŸ,!'kMíþ•nùÙz‡ø¿Íü¦3#®Ð*‡oU¾pH1±1‹\ÊŽÀ ).ů"W¨¨ €šZÌ6ƒbRhè|wþcGÙï[CÕ¡N«À6ALÚêC<óL³‹÷&ɉöI`]Ç¡O÷&0‘Ëa4Må—·p‘GJ>Î:‚yë““2ýªš¼}>ë\Ë;×B£5èä>f}öôXÍ‚(¨Å{ã@ŸWÜ× ’~š ½ú›’÷Ýaðþx-£\= aæü|4G}ž§”Ÿ/ŠTüÞdù“ÕŽœ_W[ó~ÙÆE­ Ñ’–»÷…ĸôÛ]!*qo½7^¶Öº½ÜUùÒ!¤g®}@¿î…½ùû"ù;·à7Óû‚ÛÖáòÇÞY\š]†Oœi.º7„Kúé$˜ó.Ä',¼Ï»¼Ð–tAS›tÁØ}uoüêHO]t„ˆ–ø/Ckþ“E:b¥¿üÑ89é[)+ã?ý‡!Lä¿,Ï=2RžàÔ½ lœUHÈuLÓÐ.)1_ÄŒøAÌ|ñ“¾!üÇžìk> 1Ó%g”nô³vúQ‰­Ô2OLl¼[]¸'øv4÷éÖ@Ñå®òßí¢:”yŸ°ñ±øÆÎpñ-ûXÅ#}cÚ…FìO€V~l*{¥kÉüygáW°*,£¡ÛÃÐgæÁ²‡aé‹s#ðDôÊÕØë)NÖ6)%ÿÐÈÁx5ôró(,dé}Úïv!è™k¢ò©}ºDƒiÚs,|,þ¼Ä!éY@­4ØôÑü{æÞ¬ëŽÉ’g'F\‘® ÞPþ{@MFü±^[ûÇ*»Æ+Ã&Ù'|Ÿugýìïv)*º¶"üböË+ÿœk*ýkCý´@ƒØ…×Zfâ%)!â{-/ñûíðš øB'èþÚ (ü|…AúºU+ðÉkòŽÔ5.€K;Ó¯n Ü=Y£à½FngŠìVò >mSûñBmý¿×8´ÏFÖ!EïåÞ7µ¥^úk»i °ÐôaŽY}¨§U-’*|:b…_C(<7‘A'zbÁöPɳ՞¢[‡)83ýPÔ,Ô|Ÿ‚”±Ñ›ç&帕ä—Œ˜ìÃÂl•Ïô­Ig¨qÿ²Ž³–?¢CÛ*oêß•ÿ¦”_1uA–RôÎ01F×PðËz/ô‰m÷Ö)¾5—Þ[lOýy¡5íçíЯ —pªâ£½RfÑöê…KLMwIññû"ØK§¨ì±OŽÙ=SÔgü4W[ô›[Îm @_lÃ_ZÇá¡.)*jo üt»òÈ<Œeä^êCǻًŒpK™…N1%Ã<‚ ÕÔç\”ÕD»ÓWqgµ2Â*¹ŽLzøÿÊe÷fÙån1g†šeŸBE¬ô¤]46½ýVÃIü×b}öEà9q‹ÃˆðABì7óï a@Í–›ÁOM¿Oоyýmèùßd쌟Vúá/Du7¥¼‚[#Õ‹ew”µé¿˜:r×µ^Ÿ %÷ýw½2Í/|0ÁŠ»h¨ Ù¡“]S„4·„^`á2œRpŒe¤ô. å¢7Gˆ±SÔÜ›æ>dÊà¥ÍC•Ï·JÛÇ+Ÿ9…ªÚä SĈï‚ý¶5z¾Ñ]|cÿë0üõ…ÅÆä_½bXĹŽZz¨fTnôcÞA¿{&Û™=„d— +]jÏ»ij/¸·3zœ–s¾ÔXÉÝbÂ-CäÇHu¸gªô¾u¸èÞf_ñåîò'1é˜á£ô;AIÍ_éB¼Ôrò\j©¸3ßVòpþ}ÁMCGÑ—ŒVåž©ÉßìÝ[ÿXödó#$b£§òÑzwþuÛhp~ZQè|kÞµ^pȺ–¨”ܘã¦ÿàø+ ÇC­ãè·;#¨H'à-L} '=蘟­“ø ‡”œ5N͸ØPðüÿôA"ÿ.¥$~¯ðaµi™¦¼«Ž»Â.¼ÿO t°wŽRdúX2ËI¼ªä¥þ¬æå\ÔðÒ/TøBNyè½5I÷•ôJ›„ž«©Íº$¦Ÿýƒ®)ñ{%/⇨,öM&Á!#$ûÕLÈFoåÓžâ§[=e/­ƒ•ÉæG.½Ï»»ö1çÊ¿wY ¿ŽX¾Ò[vÇ9ƒL8Yhm?™×üÇ¿îЈË<@„U ½5{í7r(gkmc- d£cÜ2xœo®:Ý-¯N< ìà˜>üëo]å¡€ôÍÑ‹‚u{ ¥•y„”ÿdN£ã7úJŸèßå>â¡ELÍâ•]Q7ÁÃögxU[BÜ›ùîÂ+c”ØoFˆÑÿP7äý²þùÊ€_¯õÓêèq&êû)RÒ¯ö!bÂF{ù]ûpñ=bîM{ij¿«mLüÕÌ´&æs‹C~Rão(ÉPï©Ð7Sç• £÷'«ß{•eèÊ¿©j-¼Öμ1^“vÓè +@Û¿x*âDE)öÍPJ6zaQRFÊ÷ûRÖÞ44ßy:ß\zÃôt_Û˜w}µ»øÁ ‡¼rBÞBKÑ `­o”tm¿Ò^|c©5ó¢©5õGM}Ô·‹­é¿Xo³;OT¾ùg8òç1T⡎Rà|ÒÂûÂGª†ÔÛ+ŸÒí‘sQ{Ó”ì FæOC5iW ïÁ›½ÕợÈåàesùóväÛï{pÑ¿èY0ó82RÌθ(ÄÇ\Øh/zè…†:Æ ¡6"¢}AÒX–àÔòÛBR¼¶¡øwuCþ“ù®Ò·›ƒå!ΩòðÏ „Ê?Ö™xË>Ö­`‚L¼Ôù»÷öËMÙ¿Í ²o/µäÜr‰K_ýi¦¡·&áñÓüì+»âêt»¼‘Ìd9Z Vútè»òr_†Œ>X¨}ÞjhóéèÈ= "Ú¯!—þ¹ÉcŸ™ÈUû³Uáû2PÄöhÖÃÍ¢;-z2_[ã‘“³ŽÌ³Xd5iÁßhu|Â’Yhë´1DÈZoåý­aÔ3›˜èšã÷§ii;"lÌêGèÓÅvÐ]!&Ê øz›³ÒSzÓ: 9]jé +zkË浦)ãWMS⯻Ã𷘜u¢æaw¤¤lysÞ•alòî4=[UWð“„šø„–ôã)â»)røßTœ”Ÿvûѱ§t–—s)8§È)c•o ßÚïøÎÈùnðƒ…Ϊ[ÖqR‚ º¥~b”ö=9^!@¾\j‡>Ýê‡?·Oàã6GXéúNÄÓ•Þê7Gš&¾}Ÿ`ŸÄD»§9`×¾3X²Õ_~g½¯èîÊGÀ÷·W¿Þ—r+ÃøôwÀ¾ôÃþÙúP~gµ»ìþèñæ :zs‚m0‰šÙì?·XŒOkäj¯W`êϺnìJ¸h†ÇÌ5çGè:sŸyô5¿‘Vs4«þ²J¯95Õ€÷D ÝôëñY»c¨ë8á­SJÉ8бaûrŠW^“±? `œöò`Žz¤¢•8gXE!%þ@ÅÇX'H‰Ë•7×?VÝÙÝÓ·&þbhH¸äÅÄ(xÕ«]ÐÇæð—Ç*.Â+'¦íOáÞ:DøØù÷ù·,З›Ã û66ɩ䂵-¥W4 …×Lí,C°Wö|¬wŠ^ärM]%–Ú‹oúæÈùn95Ï:{³3‰~;ß~¦m«z²öñêDËÇíL3 W>âCö„Øæ¯Àvüä’’’uŒÊ½IhèÞ82Æ'P×{©¹+íð{êúü«Óô˜Ÿæ8‰?*ˆN•€¼2BI‘×ÿâš"§ºô@G-ÙŸEEkÅ¿)j˯«êK~³Jˆéö9BŠu + p3¥ìl¡©áTËE›zÊ_ c~”pÒ.m ŸytÐÙ|SÃYp¦ç(â¥mšVt yWï«…¯÷b"Ômˆ²wÐû‰9ߪZÁ€¦”['ËZÆ ˜GK_Ÿ7Ê6yá›Aů U„ˆ¹9—F€þt-äHC*ØîϾµÐuu½#í®y°âõö è¹gœ½;LKþQV_P³àǺšb¯—dlϾ>^þƒ„vMÕ\x[Û +~!o®zX‘p÷» vÒý &s£»àörËjû·ù¦Ü+«Ë¸•5Å#µùwržÿòÿ°²ž~ë”Ò`:Vµm¢"d£/ûöâû¬_–»Ênn#_m±oºHñ¿¼‡…|ïãSü2FáÁ,>y³5\òÚ!ªŒ¨P±!ÛðöØÂ«N1)ãHƒN;TUçž-ÔÀΖ™h«ˆ”ª}Wq_DËùq_J‡ìÍÔ¤Y¦±ÑëCUÏ'éñ¿Ò’îîËÐY'‹Ôš“%fÃú"qœtÙ*Eü¹[+øbfSmRhœª)éÒBgæ}ûtÅ›C&Ã4 €%=þþà|³©ð4-Ÿæ« xìêpÑÅÂG€Žœ¡çuùÂ!¢¦{¬r·š 6âÂ3øç4üPŽIpŠ‘Ñ+³o®äßYï­¸çU0JmJöFò¹uû¨?À¿’ÒsÄt€5¦î’û2fÒw›ÀoÏ M|—œì˜Â¾qŠˆIKm GûÓ¤,‚Zâ–3Š‚3t–:ʯïŽS<2vÙÖ ôÙZgé­ùæô_œØïúQáÿTÕf]óÌЊw…”ôõÞêgÇ <¢_O¯ðªj +\²êÄ€“xËDÇ!Ö%惗úÈo-cĤ=P‘rÎhà=f¡£wFAíç.1!eODËê#¤ÿœêP3m¨0ÛøÉ‘šƒÜ´·±»ìî$)ñ_*zÙþ,9oøv>uc½Ø}±Ú ñ©‚×Y@ܹåLpÀÀ§ó$ç{ñBvÁë….hÚ—5.çÏuëÔHÅzgqy[£°—ÖtMÈÆ® ’ -ÐÇ"Fîå`îÑb+ø‰OÅCø›²;‰92pðÇ‹¼`VÑz?葌—òÓ$9ìûXáÓO&BÑ×Myyù +àõç9ül¾w¶\Ç=_¦‚}jdâÎXÉcKÙýc—àR0ª¥¼ì›ŽibšKAƒºæÈ%~ ØKl²ö}Ösesü½¥ž´ßøò#=¾hýcÑ}Ë4õPÃÄùUl„WÍyŒ<œ¦òâ&ö{7ÿ†]Ê.ÝC‡Û +o*ê3¯¯}( +èÉ £Â1CÊ”5åÝP¶†x•lˆe÷Ö2XyÏØšó»˜óërGö3#±üt•U³8‹•ò +oîÏ‹\JlŠuk*ŽüÂÛµªGJAæµ…žÒpÀÃ@úè·Çj _l‹™^MÖ#g”l @ÃÄÔ¤«S”˜K^>+ §CŽ–˜¨}1Ï©'埬0ˆ~u²ÀÄ\ZfEÄ®àct±‘»²šŠ³56ug¼2r½7ëjÀHAø–jkk -Îy6qKÆ*sͽKu|@‰Ëx/s­õÌ"D¼^îλ¶? ±ŒÁ^éšR~Zjϸ´3yy¨ã¢½z.Ú6CÍð̱+·GP/€ÿÞ›¨xnlKùYUŸúƒŠŸè+DâéB#ßÌ“Óòü2z¾céSò5,˜CJJ[þ~¸ø¾äº]DÉÙ%¤èš Ýè©zô׫õNHØâ;È‹~d˜OF+Úââ,ƒ°§Ç lôþ,:Æ)‡Ú&¡¯Ü€Öo/½áWà3ŸîÁ£¾.Qá>=®Ä&CDYEȰ`Þ–è-UCÑUm]Î5¿ øR¾GÏ=Z¢ã¼‹B/=ëÖ(¯4tc’]±9JÏZúˆ}©oÜ•1s¯jùÏM ì[üúOk,¢CƒKßSâÓÿ²ñ[>m°èûLòÀ‡Z@ë|î3²ç€'ñiÉE+½ ‡æ1høgssÿÉš Ó£g¶D¨7[S˜¨aÕÓåî´Ÿ­ÃÙ¿í—Þ¶MÒ³œ²:”e‚Y¸'¦g»gڞľõÌ`âŽÔØÔs=>/ØSv).Á£­'­ôAï¯÷•\ß.º±Þ_tÇ>‰;œ£éhÁ{Hrv©g®x—èùÖœ‹:AÆÏ–1Ð3›¾5„xxä!-Sݺ£i*üÕ+ã–ûdÜJŸ” ²âúª£.´‚ž_˜¥'ü¼7~ÐrQkýÐ'ë]e¿‚ïcbNçI…6mkütÀ~1§ðöz:d–—÷‹[ŽO?6°àGZVÕ‘šRè”TÇìŒW=1uåý¢«Oø—gŽ `R‘ª ñp¥åœ%gù”59GZf•Sœ +ê(Ô1S“¾"¸æí(A¿Ý¢ÃmãÕ¡ÇJzÉ©–Oð*™ CèÖÆ8::`ìõz&Ž Mœ³€ ôÄÜÃ9|úá\MáÀ V׈sªÙU6 <|s¸ì޼.õg… å¦yã£!Ηë8N9&ÙÔ’SBJÑ + +¯h/쎖?Ú›B„­ô•?:БŠO–XDŸš ó«kQ‡F.~k¤â©¡)ó¢¡1ïW]CêÅõ®ŒÇJtÆ‘¶¿Ú‹T7ç_>ß ¿‚˜¹? wI1{SàW{“ÈP×lMºsŽ[¥éFG½GÄÿË%#e}ú'˜ç|‡D—›³5\|ß<œsÝ> ÿ´Êçø}±+†„ìËàñŽx‚EXâ’¡RΗxü¯~—C…Ï×µ—ß´MÕäø4tàW!^=¥Ì*Á$ºg‰¹Á9ûç Úþ›<Á*¾¡lÅT\¼e¹Ü]øÛÆ èÑžüÒ«FÄ~^ãP^ê=]´îHjÒO×›»lRZùÊGðcMcÆ/­Å7þ>]}as~¼ÚÔmQÕ³•-•7W‘-à‘ŒlòMؤ€Ž]m0È¥¢”Ÿ˜êw%´Ü}ÀÏž¯PQ_6XÔ¯› §&.ë?“3K6&¹›¢VÜú(¿xg’žyºÈÁk?6Õ7|6·ŒÙi­q¹ ¹hGBÉp+šxUc+€wà³eZõé©Ò*†%ìLÂ’óxй¹¶qÐ;RØ­ßyltœ[jùvÀ“ølŸ>8¯‰^f—B_ïL”Ü÷È‘Ç:Z鱑 qÎàâŸ}üß3‹qH«ý–»²îï"Cíýc³áÝ‘ñª¨EÁ¹–.À³ìŒA_¯v—‡íŒ"RíÓ,u¶»Å¢èn±Ê1–IJòZ/üñBKÎ/3´„o•œäKÇJ\îé‚€¿#nÆ,ò²WFYi[cô$ë%Ñ:ŽV7eü:û›–•sÕ=†~{ "ç[¦ðÑæ j¶[Y‹¸4Fßšu¹ùøªüC'xóÃé +›äÔó룘H«á‘×ä¹/……{f+C—ºÓ~Û-~ìS¤з&‰1ÛèÈÝIb¦uŠ”Ð’Š¾n°i'óL¬cml͸º5XñЇ€6¬¼µÚ 9P1*‚šì@KÊÝ/‹ZîL»±Ñ[x× àêÚ(#KHIüAÁK¿ê“Pò¼"lÌþhU˜{ +š`ŸDÆÍÕåýj쨸é<×Ò`u¬NPxÓ>‰Ü›*{✿pŠÑÉ!&NßYñ`¶±àªð¾¶JîjÙ½åžÒ{Ë*_nVEú˜‚ó%þ|Ïwøi–ââ<Úwu^ q¨%hyæQÐs— +‘h•À"3¨¸³%r}üxgp²Â£ äJï:Í:VþlýCÁí¥®¼ß÷¥”¼#c#w–V¦^¶Máâý*J‰_…Nþc• ®  Ç0Á{Bwgh%‡«ÍÝ["Jöb6bc”˜¸ÒWê’âóNŒ|f`^д&¢æ®OâcF>50ÏD˜…Ð×6)2~_ŽÍðëh “EZåç ~ÝéJc³Ð$ûrtÊ—­`_Ô¨H¹^:Á#f/Q톦Æ}MO¿iˆœ¸< +ø ÜÿØ[%Ÿ6kGNoð8KTäá2ƒpºÂešÞuhßÃBļìën5±ìß¶ºŽÏæÚ†“5&íÅäºt5%þ%ít­áݧ¶ÑC‡|¸BGx½rºÒúñ?÷¼iêñ^)3 BÇûäÕ1Îéê8@ÏÆ9DU/=2BÆ©¡ž²/ÅÇmŽAŸ¨ßg\Ñ +b/Xû Ï<ø²ÌÀø p`àá<ê&†}†S¦ï(º5Nÿ»®1æ'û"Ö£moÛœm%[¤äž„Wº7ÉÊ·Œbßnlƒèóý!øKû8âÕö(.bO­r«jQN)>ÑÔy1LŽ¿2Vyiw(÷áÉ"µÊè!Û -Û«ä!=JFÕÖX嫨ê¹mºâùF_î}‡¸âõÉ<­283qSDNx¼Ü§éèô(ëð€÷‰=6Q*<*bÖöôÙÆ@E¤SVS¼;ÍÌÓ·!ïíKéù:Â)Ã$8¤Èˆù¶¬+Ëmé×íÂÊpŸ†ß2²t­eO7û‘iGšZ¬]ÑðÓ™¦Æ~§oLûY×”qÍ6Kv«ØE'乺©"äÔÈ@¸g¡‘K]WÆ) ?~@E\”Ð.®}¨xèÑñÐ C¸·cŒÌŸô•OýjéxžWsºÄ%ùÕ¤b³»xK›†^îÖ·µ˜†ÐñЦì[€ÏJuËѹÇK "P‡ðýYhšOʶNU½ðšÁod µ]ùu­¹¿Û& ‘ö)hœw—ºÈ£ž.óY€öÈÒ¾/¿å–ÓAöi\ÖbGÎ-Çde˜À΀ŠYy¨g£O—ß­ +Z-2Nù–˜²Hx ÀO,£Ð7n9©ÜxéýY|ÊÑ ÷u³±-8K7 §Á€úåº55U»XªG…Iö¨kJ¼z6rk“ГJÏ×8´€ŽVu¬g"ÏX`¯À>OíhWD)_„½Ü?:™§Tþ·µeâÓ:“p¼D­újæp¾¬ÑHÇ:" µk`Ž\–±t{} ñ&°ÀÄ,3°>CMñ‰ ÷ê åÇk¼ú³M~㱉Iôë(`Ë2*0Oƒ|§cþÚz×w¼ÔÜìÑ612J†C Yí/º1L +ýf˜ðà/ü_–‘òg'óµd§Œ–³3EŠß“\bøk¯òb²üùúǤ«úÖ·?œ,rðûÁœÝFÒÖHMüf_å³ øÍÿ,Ëÿ½É lJ!¯U]y·M½•/Ýò¬M\Wè× Û2L)Hûy¹§ì‰OþŽã“÷¼ß—òaÖñê7»ãاœ òhêð;bZº®¥üŽŽŸýËþ240[“y¤ÎE&d¹f0±.9±2BŽÛ„XA÷ì"xX@üxhld8ä”Ü=ä¹W‰M ¸X—¼&Ë<œß<”~×= +qÎQóýú¶ŽãùžI²³/C½ý´ÁÀ¬0ÑN)Ã2‰z»'!¦nŒá£6ƉѮ9F‰_ÇF:¤ÄäC-ã–ÓœbxÐ{Þ'ÞwJÊŸÔ¤ÌCm#Ë«mig%_ж¿Ø#úd¤’s¡ìDO*|SÆJoÕë4µÔ£ •,õßQPpi®tOÕ\üÌ +pñ‰Š9ÐQ+6'Іà§c8 Þšš湸Óe6áЀËtÍ`ÓÏW9Ì?¶ë[?¯Õ ÖÆ± ª–ò'‡|hÅ€‘vHÐq³uÉ׿â.8¤Ð7ŸÖyÀºK†))?‰k³îšâ¼®GY`«xa®zøð°=µêd¹¾nkµÜ}曥Aÿ\mh:zî@ζM‚£rXœ]Ã[<ðê$#CÂ+ fÍE©ðÿ1s¹j|Æ©‘Xz¢Ç˜‡Jž/sÈkM«Ø”ù¾â{Gó4$àáX_-‚ÞÏ› GF2 ÿkrôŒªÏõ5¹9]é)¾±ÜwÝ)Ã¥z5„Àa¿šØ¤ ®È«†%|Z§Uï+±™{cå6:‹o[Ç`‘MM…×HǽÀ:ßâ×ٴش…Axˆ¡¥ëÓVûô¶†ÞùàÀš"¯– `=ð2ïPK.8g#ýÔ!cØ$ôÓGÈ=]KÅ5 üwU}áõÐWžàý¤ê`N:.Æ&¡eíIhÙ‹Ý…×çøÑßhI?š^Ù-}x²ªý>Ø>É+ðÊ€¿Óˆ°=aá ÿl1P/Ù×—úR.ªÛSÛ®Šô+4ÇL-xoŠœè’±KÜ +6È#'eûþ“OˆŽžæD?Œ{üí¾•v²ÐÈóêh»Ó¬\'ðX§g®zz8‡KYéI¿alIúÕ3[àV³aòVÈãÅÕo5l(€Éðó%*üÈHÌóh0‰‹³/›ºR/ïû>Yn¬ó¨ë‰6y_RùúDƒÉ:_`WèÐ-µ|µ·ü±ŒûË‘‘Pê5PKírB’WAÈò)ˆéG:zåÉ"ïVÒ³øD‡Œ^| oìNU¿Þ«|2טyoqÍ7 Mýs½–{ºPÇÖ¶|}¬:ʣ撼jÆ!©ŽÚκ9A~ñÓ5ü²S\ x¼Ö¦õj‚±~ÏØ‰¸¿¯ä"7G«žï‰e(÷Æö@æMŸq²À&/7·Û¥Ä ‹wºZ×ði£¾ùÈHépYvQésópú÷! x?äáBs³K[OÙ1ò<ªf–s®àU³ªŽŒL侕àT"cs¤ ¯Ž ž©qÈp z:Ø«¡ƒýJbÖ™‘Xòi‰ŒÝ“ÑA+}x@S³ÏÖ›zvf ¹«#Ï–{‹îo€^È àoÄ65½)b宎q‹¬2Ù,ª)Sw•D,~‡,,yèÃbÕ˜ì[j›ü>[•uÕ6%§òØ$höë™`¯¶&ß*AFìŠ`¡~¹ìófmÝŸÖ¦ÝJ® þÈ*eC>o4¾ûok]Ç× +Â?S¾Û—xÉØ˜vs}‘¼¯4èñ ªæ’»_6øÿë ÝäÔý±LÁª ™îé‚—;SE&6#˜¿½1…Í•2.ÙmüðçnËÔ—MVƒ_…LÛ?ñëYp¿–‹p+8UN9½Ð2AŒß£$lg;ó ²z„O[OpkÙÍ ä«µ~ðý!!z–Ulã×z±¯íÀºh™àSpT¡ðYö)B¬g†Uhãbv…à Žzé’T>ñª1†à>² þYf•UÙ)yê”V'ú5lÈÖ0â¹]‚wx¼üê˜@Ågã>›jn5¥hs¤:Ä:MŒÛ«|hêÈúÅ+AÇøf°IÇ*rá¹±ì±w†”áŸ%ç~^æQrÔç  'TÕq=!Û«!ž.Ò1ïc‚] +VÅÁB“ ° hhjÑG&Ì6~é”Ã"ìx àsÎWXX—’œ{¨§–}]akŒMöËQ1vQÅË€xo*øX[Ç:2´wmŒc"¬ZQKÝrF±O†ˆqõ°?3÷—?<7ði_Öš»Žø4—‚”ôb™OI)Ü— £Ý3° ÇrÔ-9W{KïºÝ¡b–çœ!äÔ@­˜hȯk\Ö¡†ß';$¡=±ðlMðþ`±Ip¼PÇ:Yjhx¼]\úìuþxžó©é0—Š ÚS‹¼†–w.M3Û§á!|jZ©CŠJt΢Žæé€ƒèzr©{—|¤ žkk¨ hð™¶éª°åžÔßVû*´Âç¦Îƒ5>gú]ÑUíGÀßiøøƒ%>õÐp³–ß×r éœïèYi£ ßÁBaiϾY%WÚ¼ùÜD¹deo ¤bo°W5ͧºõÝÖ8þUJÎ:Zâ1Ž–¨³5.ãtM?X¤!*r°&·QðÎ;_ÇöiqéžYTŒgþöØ€Ì<¸ó`YÐâ™ol‰YÅ{Já¿w}ŸÖYŒÝ ð3ûøÅjOþ+«° ö¯- +ù÷ëû>›¹lÛ6w]N:X`óLýU ;e€vdœ­!ÀšÒΩæ@w%ø8Ë*t¨cË6Ú:MIµŒ³3=³Õ' õ4€‡¹.5) ÀåXÛ4)Ñ!æ9f¸¥61-Ã.&&8DÈÐÃyR¾OO.ØŸÁÄìŒBŸ©øi”µqÿ´ •=<jÔ6MÏ ÖV@dž{ætžZvf äyçPq!ìÅÆêÙîðé¨ë$<ìTÇ‚(™§ZbžWOØÎ~ì˜=qŠÇ‹ ¸[AHuÍâ’::èxV¬÷/ëlêÉ¡Ü&¾´VÎñZë°w¹¹Ã*¡fŸ.qˆ^muÂÉ".ûÏMzõ×5:2 %8eÈ·góÄ“*  aaâ­Gúd`"þg­©íOSK牱‘h¹l—–‹ÞSÕ¢ÍBü‡¶7^õè“È£9Rᙡ~¤ãa®,sÌÖ¤™êXþà5˜)ðË­¡ü›Ã%O¤ü¸‹€'åUq[3ôÂõÑšäCC³àtIÐpb$—ùÕ褭±²§Êæ¤KΙò°Sòi£®.°À#.p)ŸÖÿsæäQ ¢}ÊêĽ©Š—»Ð#—x¶.h?\à3Üs,Pðzð§¥ZÊ‘†^q "fû”ØT›¤"Â<^ú,xã•Æ¦ó•ºZÀ/ºä¤’Ihœe¼êÕ—é|M³jH¹óÃðí&³ øMõÜÐ#‹uì㵆¦³-^­kÏ4‰9ºAlèL ,Âgln;Y4³¬Ô”«¨2ö|™Žÿ²Y[¶Þ!ukjÉ[#U·…ˆðÓÍúv—†\âד‹üzR¾[]“ôÉyðÆV»Øª`Ã] +lâéñiM:[g`½u¸Â£ùÙhÀÓÀYÈ?,µ ö9\ž¡³â¦gŽ<3ãë6·ñ¿wÜÃy<È£xÙD*ùÓÂåkºÁ)Œügßè{JÒÿÚkøøÿ¹l¿º&À“jŸNÀòjøÞ0*|ú`†tlâÓMµ—šÞW°Ë +NÅž˜™gÖ¤XŤôý9zÑÖ8áÍÖhÕ3›ü-ϧçã}ZÌ£äB¼ê’OÛ<ŸÔ*³$xýõÈÈF8,ÐŽµÞWu{©³âöJ7ô‘m’Ô[e€Ž*>¼ó‰‰Ï8\ä‚ z\šWQ à"*Ê Ô GÁ(öªeÇÀ~ ZýyÙ:–}Ý6‘sÝ>•÷Ð+Ç$yæhE »Ê=G/ôë¹h7P‡faþ}Ûtá§úÚ9 }ížE'x¤³æžà¬Q‹”œz¼Ä%ÚdàÛLÉ#¿Ô:Î: àôøtZ¹3Ã(ÚUG8:6 +sÐØÏKÕ9‡Úê”ÉÊç €Î4Ÿ®¯¸î³ƒçú°7‡ +X,à3c·Çp‘619Õ§âãN—šš÷$„dÀk?ó«iP¯Šö¤ðáô“åæ6—¶²?ˇs‚³\ÀÑ©@Ïfùµø¼#ño3›ñu‹Aôë19;¢ÊW6):ñ|­Qp²Â©9ÐSе´Ê€ŸÐKõ̯ë\Ðc™ëýE·7‡ªžÙe$è{xԯ㔄k*ýP‡-ô˱™çFZå×eådžõjj +‚ç·4 Ô½Ix( AbÝjtŠg‘‰9]ã7þaiüc—ßjS`²½F*˜¥àÒÑà^&s[ + Û–"#\€N?]üOnTPW죥àÙ¦Ž‘£õ¦®/[\ö‘›ï×>|Ž”éšÃ&™h˜/–†.uèŽ_G®ük—'ø² è­m.ïp•M±i˜ 9É¥"åÿ÷^óÈ_»‚þÃEìpƒý¼Íåü±Çoù¼Íãž­RaûjtâŽïÒÐPç«ïºO— €ÏàzÕ„‚}9!/`¬©:_§W8c?&z¦©è©G‹¯þk—N hª"üjLÚé<½êl‰85PË?½÷×rcã—ÕÆÆ“%>ð=)[£ˆ{ÓÄ·’ ö«´@ð7Å`®á,Ô>›ƒ×w…Ew|*lš[EL÷ª(yŸL<Ê;n46Ÿ,±P-­¨B¿Z@vÊx·Šð*™¥Þ9BªOIÎð<Ý)#§Ÿé¹¸/« ÀZò£Â­©#ú4-µ.º/'gíËqIæ1äK›ûÖ£¤äÏËÞ?³NÀüJbàÏËlÓ„DË8*|s¤ê±_NÊ:_nlðÏ×ÑìòšL›”ìѰÀ^ €>³ˆkÒWGà¯þöÞë¹sÛ|˜š9gælŸt}îö¶eoË–mÉV´r DŠE1ç’È9gÌʲdå,怜3˜3‘n4)í}NÍ1³Zwî}˜š©ºS5¬[\.e©Aôú¾µ~¡ÑÀò¿$ŸÖº^Нզ¼»^ÔÔª7¦ØÅÓÌ¢€†]2óš|lcŠS‚ÚeÌ”K@ô?¼öùÊ›êï6F[οn;Ñѯl‚Ÿš”;S!𺠷iþEÃ÷K/ë÷‡'?~¶²5‰Éisÿ Ô,"B½·VÆmJ~Ä iËù8Í9/»±²«r~3ëëꉙ»®ß¨Ç7Çx•9_ÏÍ´GÄL´]}WõíÚpýþ…—µ“EpMÌ$ÆLܶ¤UÆÊ€V +k;ÏmNtœZxÜ|Àv£ø?ûÕØc\ édTÛSzqWóÑO³‹„§y- -­$:A>Ÿm»üŽ|nöEÛñ¸MHY™7yvÎx墔G¥@¬fÖÍnG¤Ë#U?,½*ß›öu ,hYUc7K÷lè8LèAÆ!¦l{ÀS;Ù­s+¿ÑöýÛÜ+RaÌyãåÔ[Ð,jL&rê–‹€Sä[’v¥”ÊÕwõ?¤AgeçÝ ·)d`Wáû¸¡Ö­NKšð¹¸ ƒâ{TyÆý â/)ŸL”ô‰ø#îdÖ®N´XïsòIàI§2ÑÒ[zAH/$m/ô¿HùÅ⸅۸:NÍ[¢Ÿ_Ÿb'\<Ò‡5I×ö"Ÿ¿1E(FLðd§RÞÇÔyÆ"$¦ì2v¯•iÚ•Õ!J~O_@K¼¸2\ÿsÜ@+IX…mA¤isœwme´ã”ûaùç /ëö%mô²Œ›Q“óÒ’vJõöŒˆ•v‹(à1‰Q­¸)4Í.[£¦Eu)A5¼~SÊ"!~ô'ZAÍÌú#y ¯!nvÄ,½êÍéÛƒ«Ýà‰@óMËÚÖÞò +Ÿ‘±Þ*ûÆÿ°æ›ð¯t p ryBTe½OüÉt³þKø]ß&4¬k¡)Võâ5 ô͆¦‹Þ°ia\P¶4.oõ¿VçÞÈÚ¡¡V9 Ko‰Å›Ó¼ú QNN¸Ô]+“‚ê™·”“K㬢÷n1/ÇõÌÔĬÝÓ™æ–Ö’cFsmüð4§lñ5éX/l’v)n4¯²K–ÞPNÆuâfÔ(nïqræQå7 O~ +N´‰é;ÏnP§)ë’JÃ"VQǦžSwõÞÃÜ=×SAj¤Çõ–^´ÚåÖ VµóôÜX›N´ɘG8Ør>fl>·’.#6jÉÆdÛé¥1z=âîýtWâ’2þ¾‡¨YB Ž‘‹ü¿UìŸ}X¶ÿãç¾Þðùß9ýôaUy3î–°àÁÌÌ)úS^ /3£è¼bÑæ4©Òq¿ò;ÇÝê/×Çh…¿L4Ù_üõ»–KI'·mÛ+b~ps‰iZ‹÷·úÂgܳ{…%ŸÿϨIJB-ìZÌήÉùKokö¦:ÎÆÍ %ì"bÂ&h…ükf^]@Ûq~c¼éDÎÉiI9ððÌ˰ÿ—ÁÏ–®Ò®'˜%[AgÂÔy18]w`s²áçpØöŒ„‹–Äõ2b`ŠV°6Öq2¬ÔoLŒÑ‹ðÙ€«„ЯÌs¿áÀúPçÄʪN{¸­1‹ t^óºFÚ4*éZ%yí xñ)õ”¶ûòg+¯«÷G¦(…#ôÂM­¸qqZÞ63$o\7Ä´‚æQò9ïÃÆ}³/ZÂï"„ÍrÆò$ûÊò¤ " €}ô. »Þ5«8«#í§ìwÊ?Œ3¯!9#å•KVñùÄ“üª ¥Kµ©ÄøçŠW‡‰§çŸÖ쟱?ª5@Í ¢à1ÖÆx¥Q‚ã–&tœŠðåòò‹¶S‹/:Ž,½&jD ˆAA[{K¿èÿ­~ßü³†Ÿb:rA\OºÑvlL4_¥^ ºÅQKjuŒtÁÿ¸ô«Ð½04Á«Ø¢œÿà1·çúž„mRöò8ûJÔ¦–Glý×£Žþ›Q»J¼6A-pÜ+ûÑû¸ú\Â(¦¯*Ú¿’,½á_ L*:“äBÄD* N/zï7|=.)ú×7¬3ŸºïÕÿ²<Ì*˜ê/ýtð嘑ۺòºíThœ|9j¤–†Mô²€žS1¨„q‡Z½2Æ*^¡^Hù*Ì£%lNÌÄîˆèQ=»±Šˆ˜ÿú»”·çVÎÛÕŸóȤY·”׋;³„ŒÂ¾Ftä’¹ç ûBFv}Ò#ᮌ7‹:¯DLœfðδ„])9n#žë/c.!;j§W¤=ê¾È4§Üÿ ê/ã‚SoîÎÿ7S_Á3OÊ.dýlÖ_WÕ¿…³B&!!;ßýkÌ!¦­3®Î¿jýÅñ üë¹7Mya-µ thuÒ. ŒvüÑÿ¢á\Æ'b¤mìúðëªeþg·Žü½¼âÈ'„{+(1Àò°‘U31A»Pò¼¼ mi˜tzmŒtvs”~!<É-M»$Ì÷~kÛÇ'&íìš°†Yžâ—'Í"BÊ"£Æ4üš¤YÐ×së3¯ ³ IQ¯&næ7µlØ#AeÂ(%FAC…ô¢†™w¤“滵_‡&™WÓv)˜œ4©xI«¼'ýZÜÒy!jì<{àÓ’„…ßÐóÁ³p‹c: !¬áÕÇõÔB×ݲ=®›U_ß©˜Á{è”°¡‹3(é1£”5‚n¶sÛVòÕÍÉÖãàeQ» 3ëê¿·ÞYŸÃùIÚ€ç:A»—„¦:ÏÏ¿¨øÉ÷0Oöø¤õ÷þºawàü^‹åÕ…GYWC£Äó›cðI伄^ÁˆûûÖ†X—W_Ùn”}î¹Uñ9èû|ÄÀ®L$ xIëƒã’&Ô,g!FAÃúpÛ ÷½ËpÝ-øcLÇnÆÜý÷’.•2bäÕ‡´bRÜÒ%ÝËMZX•‘‰–q#³"=³H¨é™ç€××CÖ.IÔÞÛ1 [ÃÓÌ«á)X?·am˜suñçbxRÞ¹2Ä¿6û¬òó•·µß.½j?¸üšsyõ­¨&2!hŠiDmKC¬|Ï£ŽC1ƒŒ5A^~Ó|hõ-ålHÇ®@œ¼¶ôŒT’töÝŽY»¤ë 'Áwñ°…ÁwàÓ©«côK›rAÚÁjÞöID9è›”[݃Z”Üœ·÷î¬_Ü$Ɡ ë?¾÷r&LJ´ì†”[Õöwõ¥|b^Ú×su)$ˆCDI¹…,Ä.¤!À±+åÊúTËáÔÉÆ0íüê;â©õQfmÂ(b¾÷)þ}‘/LÚ;®­Ž2JüÏg}O™ç¢–û³° ´YqXÇmÉxÄê³qdŠ[µ1 þwœtfi¨íPÌÄiÄõcÔ€_¿«?0÷ªõ´ÿ5¹baŠß³+»ÒPëq3µ0j¤]ÎBä\Jñ–[!N9$Ô•1JÞÜ‹ÆožÖ|½ùªåª#^Íy„ä-¿Bº5£an!1Z7<Þ|(2Ñq"ª!E œ +Ì"$ PψYЈ‚ÏI»¤¬´KÆB,¼úˆžt)là׆t +bÄÐ- Lõ°czi;j‘€Ùa-¯2näÕ¢af—1¢ÐïöW¿ü{{÷¥ÿ”03ãyÍ1ƒˆÒ š6'U›#’úõwŒ|ï’/Và\ïH§âSÜ2|jÊ&banq‰È€OµQ§*a§”„t5GBSûVßÕîK€Àì]ФõúƒM «Òý¸ü/3Ïʾßk>“²³ÁOV·^ò¾&Yã”WëŽèD-Îûõßùî_û:i¤]ËØí «ie¸½Àÿ Öì íܦ¦‹ÖJZV†)§z +?"½ø›CÌ‹IðˆxëxœqÒù´]BA-"BXË,[zUöÃâóÒ¯c͇“6AGÒ1ø aíQG bB°,4uea4†'òâZ"x%nùâ8§$áèR¡çfžSNM«k¿öÞ©û ¢#œL9è•Y¯T5ɨëÜ’°NI jzù!}`y˜|Îq§ôö›¥¿·ß*ý z¹&íêêAraÚ'c®¾[P·7²ó~ÊÏ%¬1/…uÒÄ®V`x={}a=ÿN´ÖôLÿÓÌŒ²wkFÄ['\vÝ©þ6e©“vÅ`Â"a‡t]¬„E-E¬*eÆ'W~XRÝ€>茖F üÆ­Y¹q È3«´êÕˆ–Yžvó;¶|FÆÍjIi勯š¾ß'žßžUFô¬ê™µ{gŸ–}»ü¦õ,äÈÿ©Âlý·â¦žþ ¨¥¨G&Î.õ>z¥ãŸ;yÃ)ù½}ð +½ŠYX 3—ŽØØíËÃÇ‚znUÌÌoÞ!œö>(ýÂrë§pL5f£\A-¤|ø4cSr.•,ãR+ÃF~ûiÃ7¦Eÿbè9ûþ_ ÿ¸åѶgŠ­Y…s +ÚñÏ/£:^=ªc–„'›¯¼©ÿiùUóÏIj^ÜÄ­ÚöK…Û3riÚ)¡&,øç¦…Ðæi§B˜r*i'Ô'x[ÀUFö;2M/Jèé%1«*¨åUÍ¿#^ð=møeý-ñbÊÁiZm8êVõí +>ë{BÒÔtsÖFye³ §c£ôÂè(­`áqÍôè§ OÊöbv1ó¨{ξÁIÉZ&_\ª=š"^ ޵Ÿ +ŒNnN´_Zé¼´©SÐBF•u¨$i¯\€ßÃ8û´éÐòëμMÐÎq#z”^¶6A:˜æ”¦¬üÖ”•Ušî<çþõÊgî{W¿ Œ·žLYa£œ²1%ªYzÇ-ô>¡ŸqÞiÞ»ñ†|Æ}§ü[ƒºðKká§aÐÜi»˜1ðkü/›¸ï—ìMèÚòÓJi`ŠR¼9Á(‹høõQ­’5ôÅL⎱Ž3®;Wÿ4.:ö»õ—õGñïJXùm#» ücÑÚˆ |嵬nö7ÚñàXËAÔF8X©W“v)ìI{ºTàzâ9wuJÔ¶ð’Q´ò†|zcŒ€_ïïY ”ÂÌŒ˜—ñu_GRnÂÁkIº¤œ˜QÒÒðjƒŒkc伞X€¹„´ìLÏýÔì‘ §"¤gU V~gÒÊ'l uæ9ïU6ß*Ù¿Ìñi9¿3ëR ¿)ëèÀŒJ6ªg—m Õÿ8÷¨vïês‘è$-Ñ“/eíܦ´KDIÚD˜CBÇ@óÅ Ô¢ÀTÛyÔÒYœr°ê 'hý¸QÒ¹9þöEÛÕ—û–^4ÌïR‹XÅ ‹¨ ÿqc¼ãìçyðŠU«£ ‹Ç8×6Æ…µqmÿÌ›ûný×ZUñ¿3ünãMÓ‰mÀМOݳövÏ +צ„µ1“œƒ€>=R¿:ÔôóòPÝÕñ¶³ˆ³ïVÂÙ{=hv&¬RÆÆ¤”°>Â+E ’θž]¹>Úrps‚p,¤%_JBï% Üš¨†|!4MÎ_~K8‹è™Uøužðdóñ àˆ)AÅÚ˜¸zyXT¾ðŒtØ}»ù/c’üæ}:÷ ú‡”•VšqòZÃ:ú•ÕqòYؿƸTœl>6û¼ñû•×íÇSœòøÔÒÓ2H‰ ï¨çfŸµ_|ÞrÕP “FFYtËò0~¯/ñt\'h^{˯0´|'æ¯#g|xosZÉðkEÏ(Á¿÷ú°ú¶eîYóÏŽ»UfŸ×ŸMèA7å’ù7Ä<냺}sCÄ¢ÜÂMMÌ,ç.¾"ž[|Rû}p´öGðLW’Nmk¡ûæ’‡Z®M‹¢f!+éäÓ­'ÚVðö”+kšÖ£ë“íg³~¹¼‘9ë—(Ón!#i¤”'Ì”²¨ß°‹:ƒqGPË©Ø!œ{T½×yóêwž' …àçÃ&6~J«÷ ù”n°é«°EÂÍΪzSV)3sëâSÔü¬×¾í‘ò26!!e´ôÌ’ NAޜ좟B]N%]-gÒ^jYÎËi˸Äô¬½§7®áVǵÌD˯Kj¤í± úÕùǥߘÔÿiöΕ=1­8åÓ²ž.uÒ*h]i:èy\øûÐXÍþ¤‰Rµóš3N %f6†ñÏ@ŸDà|"“í'6F &Ǩ“Ì¢°žW“´+ùà‘ùI«¸#¢e]›}Úº?8I+Àlb2f“1¬·ë¿´ôwþ¸ðX\å^¥—­¼-ß¿1R<0-k_›×!&µ1÷(–Fx×@2^©$ãóÓ>t?láµú^†%Ms/ÅuÚ®ª?-=í<›Ä5žŽY‘v +H8?¦œÆÚíLh’v ³‰:Q³¸÷êᎫo€G¹˜}¾ˆÔ*ÈËC¼+þ'’kó/EÕ‘)~Sd’˜g8ýûåWåûÖ‡[EìÚ˜Y%^¦ç‡Æyõˆ^BAtâŽùGí'‡D¿˜Pä5ó‚~z rØ4ŠÚVÇ(œ·+¾Šk©E);».ãæ´æ<¼Î걅 ö[e_Í<&Gì +1ê‘ñQ·9n ÁšžŠO“ñïqlÝžL9º{7¦ø5³¯hçÀãQ"â…„±íBpªá„aðÌg+ÃMÇÂzFeÄÄjí% XeåRÜʪB-¼ð¥õ +ð”¥õÌæTëɤSHËÍö?V5Œ+Y·„»íóµÜs«úûÅ×öÌ<,þ"¤é,x?¯ºµ½ ¾5›×FW`+ÒVn#jæ6'Û‹V†«¯tž éå)RõõÜJ€îÙ€u 騥)¿3š4<Öt³2j§°#îQ·„ƒÁžÆÌ¼–ˆžVž™ŠA+*r3,BÎˬh™Å oég‚Ó‚Æ„EÌÈú{RA0}}‚v10ͺ¼Þ†ºÄ,Ï‹æ# ¯vËÜ%̤[  áë“fò%ÄÚq~e´ñGø) áUmNrŠCZVÉö ŸüïËBÁö"»#åbÖ­·[zÞöSl’[Ÿ–´…ÆWÂSÄ‹îe_ê”?]|Xû=èçÆ-/œ·E¾CÜ6HÚb^mÚΪŒëF5Õ?„§ÛN†¦9×¢qC#¿Â)_jøQß“÷»ùGõ{C£øçâD€… +IÆÅiÿZ•qËùi§”ÐSŠ_]ýÆ÷øòg+/É¿DÇUĨ¶_5É©1œS'X¥¨NL¬½=à•ÈÃmG㔼д¨nk¦ï·ÜŒúF +ê(nç5%¼f ÷Bà¯ÓF>!6Í(Y{¾n‚^üaF®BlœúŒWHÍú”˜‰[Õ +ëS6ðÕzjÑÒËšoQ¹ä½[%ÇL +ÎòÂñÕwõßãŸc[|C;»ô–_Ò¨¨ó#ük3¯)ÇãŒÂÍjÁ¶[HûÛ¬T¼å±#€'¡)vI\§¤,ݲùÔãZuÝŸ‡…W?-y8eíeÜ*%ê2–'(yž'M‡øuðzËíGÞ4þ°øºáÇÕ¡¶S)»ºußÓ ¹0¤aã8’2 Z¢“W^]ù³ÿÁ¥OÁß\†Ø¤P+à«­rn@Ã(ë™e¨MÊÎͪúr³êÛ(xg¨ÍÓëã´KˆEFCl"¢÷ió »ˆò×Ey÷‡>à%»éßgd²-?ŠûΕюãK#Ô ¾gm€Ì«I£ sÛŨüNÇ,pÈI!ßÿ¨ü ß“öCQ³˜1K˜ /:ŽL©.öš{콿Uÿ„šùïçåê R%jã5ãß)q‹[>‰¼Ùå§”oþÎÜuú±ÉÎKæ%â­E™* !^ñ¿¨ùuŠÅ[«7MV»ŸÄÍ”ZƒôÐ?jå?]Áï_Ò±KA¬ï‰1NyÆ#ålù…Tи×0kí¹ù§¾~HüúïV‡«¾ SÎgÍ"BÖ"hÎÚù-i ·.m£a¶Î ¨©ãLÒÁ®]|G9µòVTÖª29o{ŽOÁf¨åAcË1ǯåŸÞÐò3fÏÿœtvT–÷‡¤çNi|BP±Ü—qÑÊ0;¥(8A<šä”v©ÐÕ =5öù¥õ>¼ðø÷1&ÌüFüTüúúÊ«pî-åäòkFÞ{¿ýŸçQÒ.JEPW¹iøòçmÏÈäi·”š¢äÏ>)Û³òºr/ªá”ç, +vÆ¥¼jÔ&gf\ý·2ÞÞ›1«°cu¸nßâ‹Ê=¡ Òù”UÉßò«¯£61µ‹‰Ûsª¾´KÐ$ŸŸ\±W«>ö‰ãzÁ?AÃl¹x…õX˜e¹Y ÿÃ’¼;ãVJ’൓vÝúpãOïø‡þÎ~óâç«€ã\óÝÒ«ê¿l޵ŸѺåP ·]r~@K¿²4J<3I))»”ž´rkcfÉÂëÆ}‹¯j÷æÜÔk[nô*¿ ¿¶½ÓŠQƒ¸%eì¶2®ÅMlÐý¼ªœK!ιÒ$ðþÚ$½ bµ¡6 %çQJSð÷‹ˆ´©eã÷½D§ÅàóÙÅ›#Í矖¾ø¼áû´[@ÜžWvgfTÝI·”‹àï·šºEak—›í¹™UÆA3­MvžÚ˜è8˜•ܤ½o +Þqö édÂÞ¥ÌÍ+{ú–¯¯*ÿ…îûïýb~`¼åøÊÛ†«#íGÀå°W´…7¤Sóøw¼k/È:Ê¿Î(Tðp1cG¾óAáŸt½gÿ)af¶W{ž§g¤BüzHdœVÚiàêêΖWÈÈØø-°%þGíûƒNutÑÌ£ª¿ ý/Öëÿ¸úºæà,rHÿÇÿ Aøÿûþ¿ŠÝDvZì&²Ób7‘»‰ì´ØMd§Ån";-vÙi±›ÈN‹ÝDvZì&²Ób7‘»‰ì´ØMd§Ån";-vÙi±›ÈN‹ÝDvZì&²Ób7‘»‰ì´ØMd§Ån";-vÙi±›ÈN‹ÝDvZì&²Ób7‘»‰ì´ØMd§Ån";-vÙi±›ÈN‹ÝDvZì&²Ób7‘»‰ì´ØMd§Ån";-vÙi±›ÈN‹ÝDvZì&²Ób7‘»‰ì´ØMd§Ån";-vÙi±›ÈN‹ÝDvZì&²Ób7‘„Ðÿ QºçøÝÞ½lb~»°ý“ú¢Oöæ]9Öÿ_Ù.’øŸ”~²·íç<¾0ŸÖ)¤qØí|ÙžSðW:|tÏÏ•¤væž}ÿåÈ=pО2>BcÃ_Vu¶3IßïÙ‡ž†Ç'÷Úsðãõ²O?qôÄOGNþåð‰£GžøeÏñã'þôËÁÇO>qòø‘C{Xÿ8òÓ±c;rðØÁÃGö0ñƒŽÃß=yòĉãGùå(tìã³NžžïÑ=Ã'{÷~Éqp“N~{Æ+`𜘎S‰Z$´¤«ïvÒ-çg|rivFÕ“tó;6jê VÅ­”«µ`c’Zª½Yñ‹û)?bèU%møÄeRÁêÒ™ÀórÒkéU)Q€˜t°ªJqÒĬÁ§ÁëñÃNåÊùÌÊ-?æ“–FÈçÂS¼Š¤jĪä!Va{TG)ˆhÉùA½¨ynHx ±õt£¶žžúoªí—¸žp3“ +’&b~ÂÄ*éÙ•aƒ°5aWËbIûÆ0åÌÒ³æï7ÞŽE¦ÚO%µÌ’´AÒ7ñ›†º.ýÎy¯ùGèÅNÄ"îM·Z~såO#ߢfê•”MHÀ¬r:j—3Q›‚„sÂl +NÒ&£!ø”I#½8íà5§üÖŒ[!ÎÍ(TI‡R5ÄáiAuÒ,jC¡þ‚Ä3K¯+öº~+ÿZÓUþY𭂞Ъ9Áqú¥õ×Í?Î?,ýÓê‹ÚP ù"¢£]‰˜×Æ.þ³±¿ø tZØžv(øÁIÂəDž¿_zYúUÒ@¾˜4Pò1ÀÌ¡à¢v %O…ø8q¦K¶åW¦Ýb—Ò¡8_ÏŒOÝ—´C?›¸51-·Ñp«ÒV~cÚΩÏ89õi»*¡Ô§, +^Ò¨DôÔ+Ô‚MLJ»¤Ì”CÆJ9•¢”»§±)xaƒ„3*é¨M%ļ +iÒ'á .)+uŽ÷âæ¶ú†š~š{×z$ãWßIÍußIù•ªÌŒú:>…'íQHSv~kÊÆ,G,¤‹7¹$ã¥VEm­çB&Â|jêPÀœ¸™]t2+3FuÆÍª›(—7&'F)ë¸ñ8ç¹ñ2éQÂ&zɦŽt>` å! yk¦÷>ô®,åÑñoÓOyn¼FÝ" =n£—Æ,ô’¨M@ÈàS<"&¬!9íV÷`NµsʹY/Ÿø·E?ãÒ1§„ž²rêQ->é\Ôw¨»v9Ÿ–žQ"N^ûúdãOku?¬O6ìiW|¯Nõüݰ°loÚõ«.0AÊçWÏ?lÜd\ɸe¼´_.Nº˜SLƒ½“æÜJiÖ#ãbaçú#o}œu9lµ¬Ü¦‰þâÏVÞÐ/§-*~ÎÙÓµ²–ßV}³ö®ö»ˆ^Ø øHMºÕ]Q«„º6N‡5L±r³vNCÒD) LŽ/½mÙ¿9E/ŠZì•qfÑÜSµWŒó‘Qqm\þ†èiEÑiÊ¥µáŽ_Œ7+þ°ü–|.f”t† Üš±–£›C G:âÕ´›ÓŠš9Õ(ôNP{¬´³ïFÊÑÝ…Z•lÄ"lNZ™UYð£ +¼ÃªEÔÒ„YØž´ª%£´38!m@rrÒ(hÜm9è¹ñŸí7.ÿ«ózí×±%%4)n\bæm¾¥Ÿ½¥C5´Âáºýž‡W?Ÿ}Ñð£ù^ÕW¾‡ÍÇ1³”ìß#žY~ÙøKh¼ýbÚJ+I[:/`6Z>© üµÔ™óvuåu)a“Q࿸“×’p;¶Ôw3³2YtQn¡÷Qf–Ý3‘óa«Q£*ëç‘ÃVÕüõìâ(3?ãé»óq⌄Ÿñ(äiÀ”Qš­6\#ŸK»ÄŒÜLÏ=ÌÛ=òöÜLz®¿LûûD`m=¯[~M“ϧ-ÌÊœ[ÆÏÌ©o…&otEŒ ¹¬Ò¨šÑN¥­Ì +àò:ÔÊk +hiëS‚º¾_6)ˆ[Г.§Z®ŒN¦ø•Q³”¼*ÿ<œ´AMÚ$”¨Ž[3˜¨…1#³4ie×lNÏ-¼è8”Њ۷]==)| +¼™^6P/GŒÌ«ë£´s£ô<ÿ;ÂQ1á‡ÿõ»ð‰q%Ñ*Èñ)Vqtšxn ð}ñmã¾Ùç{Óì2À5.¯›ÍœŒAÌm§£ÚºŸbº†Ÿ¢ºÖ_¢šÎ³ « uMÇk\%çmƒŽíHÝòòI°oõ! ñLDÓy:®%[j=<Ö{ù_mwkL™Tü¸‰Sµ1ÖzháyõW O+?_xRõåÆùÌÂñT7íÐ?ÌݦlYÕ²`FÆA/OPÖS.oê(—B`ž˜–Ãõh¨W‹cKÎ+ åàµ3~5å’àTXë”õöˤ£§ÖŽŒÙíI7³úýœD›áuf|¬Æ -éâÆ§ô½§÷Öûy©üý³µ4h›…5 aäK)§.å3/ãQÉQgï`òã¤àÞëh‚8ÔiÔÊ,‹XYˆ›ßžö‹YiŸ”‡ëÔ£îMºdœ´G)ÝšUªÞÏ+{¶f¥ÂÜœTœñCϺÁA-§½i×À½´ïÖhÖß}+7'—efÅ\ Öú¯sðÛR 3i—Ðrξ[Yè𔄙S¸tüÌÄÆª +h—Q§R5 ÚÂfIÊ-eg|}÷³3=wñ©*[ Šî̬€úY éy±›•J.ðDžþûïWïÕ÷@“‰¢\§ƒówßÎù»úQ¨?WŸL +ž®°²)iáÖÅôä‹=µ n¡_K8Ø`æx˜ò]w(Åa“ôqOߺïo³ +uÔB¯p>+ÿ± ÜÄý*b~Ä'HY-i³*ªo9½[¶ ³áS2á8 ¥(a&æG ÍÇ_U|±ôªíç¸ND@RÎÚ0ålLÏ©‰s`}7ÆÛ/¼h=`¿Wóåmʱ¿ÓÈ*¿KLÉá ÖÕÈ8éLd¢óLtšv92M+ŽwžD ´’¨žt9nb”§\FDÏ(Þœè8œjƒ½ ]ëˆç7ÆÁ‡OwœÒÿZügË¢Ïß{x[^^j/¤£¦©—"ZAdš’·4ÒvÄù´î‡ÕÊå$è¹>éÕÀªˆh(ùkÃ?.<¯úKp”|nùmDZ»´ãŸxï4ŸzZ°’†D¦(ð»X•I› 0»ÇÕ4xYàùŽ ðCÜ!¥…uô⨖šVÇ@{b Ù“vúµ´[.É,ˆù˜³§sõd¡>17¿±Ñ®F@×,¼«ûnsœU’õª§#åâ¶æœìfàÿÖ´´Š•v5n¡']ŒªŒŸKÈN¦ÝƒPGÿ-ĞСàÅ€“zzQØÌ, C¯„LäB8Gâö¼B¾â}°=§èÊù¥BÐ^’ h¶ìŒ² ª¤SBKXA_¸Âè$Ìßÿ³µ “}XVn/(zÒnkÌB.À§¥`³.¥µqëPÐ(iðqØã¬; +š2aaW%ø¤s^CÔªÈx¥‚´_¡Hû•ÊÌœB™|€¡H33JuzNÿ¦êJ{žbžnx=Õ`v¦k Ü4ø«”Ÿ°ÊiŒÛA ‚nÚœê<ƒZÅÄ”S^™S‹˜ÙPÛ8· +:Á©2¾Þ_AÛ©càobc ~/jæ5Ç ÜºÀœ—^ÄJ:z¯ã“Ê’°Ÿ8oÄÁCÇL„³Ko¯}9û¤øí§~ݲF\§»[ÿûú} ƒ¨9ªc•E4ìÒQöe|Ò–ïiëC´K[>¹tm’Y´1É.¿ÄXn>¼9Y¿?0]ûCD×x(8Þx(¡ÃkHÎÚåù­õ'ÌÔ%JÂù%¬ÌʹW_ºï—f¿^þo¶¾Ê?^°Aï°*÷ʾ^}ÕrdËÎ'¤-¼Îs}¸åç•75{—_W<‡ç˜d¢fQGÆ%¢¦‚öðÀÚHÛá•¡ú}ÎWÿ´ü¼öÈ/³. ~$ ŸzѳK#Zfñæ8ét`’|1³*Sv^SÂ54Í,Áì +.bæ7®·tÞ»úûõ·„C›CÄãþ-?#:Aû–G.ApÍdw¦,J~Ö¦V¦2vÄÄ(‰ZÀCƒ/ͺ¥œ­YU_À©_„çÆõ Ý݃i¨‹¤¸GÛr ç™­YÜ#uu§Ü*Y +ôlÚ½âW¨€9I7¯-jäTâÞ(ætL´«à­a=ú¤ýO2 ê_1—„53«‚:ÆUÄÞ¥Î:»ûâ~sTk¼žòÝÕá¾2fãÕãx6±«C:æ•0è«à­0®å7§ÜfÔ.êXÕ³J\›ö®¼&ŸÃbr`’x>>Í*‹MÊqiãâkIÙê°ª ú‚ùñzìpËA|éÂÛú}Q-ñ"jèä4þÕϧ¤¡Ï#zúÕ•ñŽÃô”©GÕHZ#ZnÅÆ(5?4Á¸£b:v9¦ç×­¾m9b¿]üŸW^ŽA4¢:z +:&8N>m9™lnk?•M·9N»˜²É ƒÛ¡®0«”ÑòÂS }˱Œ™T¶/¦€osnð¨ }Âfq\'lÄlbZ°/çÑÓnV]H×t(ªã·!V•<0Á*þ¬Šéxm¨ŽW‹8`RÂȬ\Ÿl;½ø®a?f’01‹‚‹š¤”¤YJBM ™œbÚ_gÊ÷3rÐÆvÀÄ(]!ŸJ˜eÌ´¯ÿ7Ô.$‡58¯°k«˜žž—J±…j“‘ò)dIï`µB†:håqSÃḥõTÜN)FÜÌš,`nnôÅLϯYO<å¼×_äf„Ìì­*çç>`Wò3^u~Í¿6‰_ËËødÂàGPǺ–t°ê¶¯³>1 µóš£fúÕ(x–ML\3ZA_yn½K{ûîd| +æá¶¤}ܶþÓ# ¡A熟諔ažÛx‚”·K : >¼!nfW$,‚VÌÞ% è‰yA]ÇyÐa¬´³ÿÞG¿ëS@oâ ©˜KÊÈø{nCÎò(ðL +¿Žæ|”ñ<ç¡nþËÌðˆø´úÜœB…sb—1QШøôQÐZ½Ù98fV&Éøäâ¤CÎÆ'i;^¶ü24Pôo9wïÝ­™Ãi︛Ӽ>A¿´4$® Lw‹SžÛãÐYI‡B°Þ~±<¶Gœ7_Æ-¢Ô)ca^•*åëêN˜äTÔª–¢Ö^uÒ¦~‚×Sò×µ”¼ f!f‘ÒÓ. +8I¹ŸÔ¡ÆÁþÈ´š˜–µ®M +Ê7¡–VÞ´Ú%å¥, +h‹)`­S%ŧ¢À«£Í—ßµ N1¯¦­*IÊÚÛ—o›ÐIÚ0£’…êÅ­øu¥˜†x~éUéŸ7‡÷G&(y¨^Ò¾2ÔþËê›–£)«”ŽX¤ä¸žR°ö®üëùGWÿ&€¯æU§m2:b®ÑŠ[Óà)bÚÎó‘ÉÚ}ñ©šïãšÆ#¨÷[br¼áÒpËáÕwíg2v¥4ëR÷€·–`.!sq[fn}ÖkbãµÀÇ¡ )åì»ÖЮ¬½nü>8Òz,¡e–¢FN jâ5eAËlNÒ/‡Àf-2æ6xà—ÆÞÏ€S°ùQ·Ÿž‚Þ‰/M¥×cÎ;#˜§÷nÚ×}O·Š;ÓÞÞ;€Ò¤UÎNZº$Yð Y¿„‹y9-˜‡Ýá¶gf$‚í¹î;€§jÐ.àPÓ] —znnϨº3^ ;å”qr —¶gÕ7Rîî~×= «“V•³KÈ°Ï 1Èô  +s«)x Ž‹Ùœ„­KЏúï.OIZV'ØWP» ckF&Þ†:ü°¨èÏ̈9 èg—2áøUM†¹e¼¬OÂÝÆµš·K•t©¤ ¥48Õr2e• 2®ëÓNµ:bäÕF µÁƒ!N97×s?ü˜õÉ%IëýiÔvëæêîNº•âhVö$=Ûû`¿Ö6+WÄ`ÂFa `îEÔÊ©ÏÂf½s¾o2¾î\Ä âÖÀ4§4ëîꎘ$œµIQKÔ4p=bþu8`z0±ßBÜriÈÄ,_¤lê• kßÀìün—sÉøIÀTÔþÉ jE­}½!½šÔJšÒ•$íTˆ€×éØÇiòê.\C5ôËÑ)neÌÜ­\}Ç/‰NA]ÃÚ¤ì*IÖ +jNˆá“®ßT|œì¸˜°q›_N¡Úôž8í’ ÒÎ.EÒ¡’†õâÎ¥·Ç×Fˆ'ׯXE ;Ä&8àyXU1 ¥(cÇ¯Ý ‰) ¿eáUõ7óOªÿ‚¹-ð1 Ïj¾^SÿSl’˜Ÿ=ÏÙÄò\yW{héiÓÏa §jáyëðõbÆ"ånƒxï¾uÉÁs«WÆÚŽ„5”B𢼵1fIÆ)e¿=5 Éz¥Ðç”ÕÉÖc o¿Lq+¢v™Èû˜ðóÚSn ª¼±9äì*Qƪ`#&A“ó·Ò¯Üw.ý)1Aº’0‹;–ÞOÄ4RbÜÔ£Lâ>j5iVNÝüDó¡M-õjÊ1p/jíí˜%Ìqó †{ÐF uäx~Ä"êLèÕ‚¸îν„IÁÀ"bÊ#¢§¼BjnNÄ{¿$‘~X‹P7£& =ˆÚÕ +x(SN•$çï¾cqÒ¥gcßÏ©o¥=BzÌÚY€k[ÌÜÅG Jjîãµµ5ß¼Õ3€~¬ÉÞÁQFJ8Uòuƒ„â};0t 3¹ ãÑQ;¿9lbU¤üBjfNÈÀîP‰1ÐV(üŒ;¤ìÅqvÉÌsö¹Œ¹¿Ï¯üCÛÄô®mæå +üIÐÂ#,—F,rAÐ,ê Ùå ‡˜=*~êÂût αJ¨ÎÇMÂè÷àc ôôø VSÚ//!¤ NvCÊÛ=°¦•S—ÆD5Ð#ƒàM~Mû»¯§üÝÙ9Uôˆ2çWȃZjÕ°ìâ>DÛÓsü>Eœ}73þ¾‡ißàs\¿½ŸçQSNnóì‹Ös/É¥ûÍW+†>é’¦›´t+³3ý²~¹2bà6oLÑ +“6N}TË(FìÜæ,èÞ4h­ ¬9¼ž°Êh!ðåÓ¼2àðÛ[óªÞ̼˜¹Ãz91nVÐÐgQ¿eq¼ý¸ó׆o‚œ¦ÜL÷ͨYÉŒšUÜxgߣ·£f)öìʘ¤è_0}4d6µì’¨‰W ž¥1f4$LbBÌ '[ŸtÉÎûÝÒ³ö+ø5tÄŽû%vMÀH)Xï85÷¤þ@d‚q-c—q›”æ_Ë{•Á)AËÜ«ŽÃ¨¼•IІ™yÍ1 «Äp¯î;UÃÿIÓ]ñKΧ¾¶rjã6~kÊ®äÜ]]˜‹Ö4 k 'ÖßÔ~›3ÓJÓ3œŽM#é"bVÓÐϨEBNhOÙeì ™^º2D<‹èT²4`f@G¿µX›0ª…q½š·Å§D­1„`xÖr˜Wùý¿„Ç•RÌuëMР`Ͻ¢‹Àš¤Ý*Ð=ªAüGzlé-óB\/£¡N…4jR°¢• n‘Rrø{vР«çÆ:.ßk?òoÈ´”µåí½‹Ø„¤”[LGñ{@>Þw!æ¤=ráìkÊÅ—â‹ÿÉ|³j_Îã-âº=³_ÿ-bU¯îØšéêß}†Ùù-Q=·1J:P«ŒžòpZ²^ / :üøýFjÁòõ|pRT›st÷ 6NæѶ|}Òî.U<ܺ‰W·aâÖ®j˜%‹£Ô‹a“˜43L»°vI0ßÀ³ÔÌ ÀvuOÜ%eÇìBHÇ.›{E<¾9.iÂ1óö\O8ún`>EæS÷§¼JeÖ'åN0ÆÄÕ‹£ü²ŒW©‚‡ß•šx–žU`ø=Àý¯\’r€×wÜzµid¶¬jI—“®Ç¨ç¾%î¼=¯Ý…y©eq ³2å’€ ¥I8ÿ„O¥B¼ÝדÞÁ')_ß}Ô- ÃùÑ0\ý~^®Jƒ‡ÆlJñ–¿ÿpò` +¸2fµ'ìBÐ…‚ŽŒ_*Ú^Pà|¦ÄßkE}꾈QA‹Zd” =«|n¨åçÐõBB/h€:"'À;ÅÍ]¢ø™8p4j–QÂZNùæ8³4Oixšs îX&^~A<Õ +ëc&~]Xëˆé…M!°vá#/2É«üà– ?ÌJŸŽNƒÅK;Ô +ð.ݰ5¨áUEtÜÊÐõ<Z4¦å×&ÍrÎ6®Ýë×Ç:OÏœ/!œì³öZ?Ù{í³6F‰8›É)?5_³Ù¥'à:ú·÷Žs4EN9ÑäÕè$ÌMq&ç@QÒaÒ¿>ŸQp¢åÐMju_ÉÄè'Ñ& gšd­IpÁgs¹5?— Žç²ËÔ<³.$Ÿ*³rÇVj3sN¦3óÍëÍgs<ŽIKE䨠K0ÇZ6ùx–/4ÍŠr ò@&deBÈ7²¹í`Š[ByëFIaFsßÓ$·ÞG Ûá¼9 øæ§Š¢À„®õ†Û,4…<\mNx»oÖãôxƒÇ$4³OÙŸâ`Ìë?Õ4Ô‰’–öèHÙ»æ>˜røá¤ˆ±1ÀLئD™ûÏV;ãmÖ» û£Ôä_QÖ¾˜±?N +7ˆæ³†Á(k]gГíî¤÷‡ÀÇ+ˆ#9î`œs0É€ïdífÑw' ‘s-!–ú¨ B쩊=5c¤„Ý›äà@n՞̈ +Ž5䤃)¤Ï¾åw$£BO”æÉ´(÷ä,ð¤1'm»—kä!ö†Ø)GrḆ†5Hé)Æ)ÇŒ] >øÝQ>Ê8žÍšo£}w‡Óœ€ž·Æ¼žñsŽÇþ5Ïf‚¼¥ÏubÜA®D*3sõJa_Íø eðý™ÅÇ3üŒ“Y6c»8gw6—W:Ÿ[ ´\ÑOÀU¿æ +ÚÖ^‹Ç<žðOÌcÑŠrÍ=ûJ2tgøI5ŸõsNü_ô}OJ7¯CŸ}wªpho +²>”î¼/¥ÁÍcÝSâf[PŸ÷†ùØ_ O䔤} ÌU?k³ÔøR×›ê¶?FŒ7ÉÙØ…ö4À·Ä˜cE¦\z1-vsç¯A¸íMÃŽUóµÂLÝ!f¶öá@œ#<šx_ÊÅmöÁ¾jkB,VÚbí'ÈÉ'JQ×s0Œ!½OÍ=z*m«+ò•®+æÓá>îDÎ!Hɱº¾Ts—íÎÚO7ÊD¬µÃŒ`¾ûÒ|'™˜S³Çb ãÔDóž¤QÊBƒy*Þ‘0€v¦¥þš¡Âÿ™¡¤ýÒ2q¿fX$“†”´'EîM#¥\Ìζ7Àƒï“#éÞ§j"Ð&Ò‘¹ïa–/Ø“#ôC|Ô‘´¤á`*ƒ£ëÇè{ñ¡Ç2.åLÍeìKÉñúa˜ÓÖ@ʧc0棩 ‡;R0Ñ2Râ¡’œt¨¤¦þšå2Í +³wg1È23V~ÊÌ4¯iÿ×™F˜y¢q˜þWAOz ~6Ëaž.ä5is*Ìë³gÓ|þæ9¬æ˜ÄæxÃdšûÖH¬õÖHògÿ(Ý86lGÌÆ˜¦ŠjNÕÕ'Š Áî83y{œƒØ¡Åo§{äBÞ–LÄÞÞÒ¨*j<úîxQX`T§ùšïq¨`ã&"›Ì>UÃ!¤”˜9 {:#ÌùµÀË8ž¥¢Œjbœi††:œ%BA˜4åã‡ÚrÉ!ÀþãÙ¬’³Åüö–ó{΄&-—y f“Lÿ¿x&s¿°V”ÿßÅìªC%1áHEM;Ñ€—!Ä.õ \ôc„ã=}yã³oî{˜Ío>ž-h;šÉÈ9Òr|_ßSgs9U¦éŒÌcÀµ¦os8áóðÀKå>RgA]˜ó2ÔFÁé }¢rÀ3!B)ðÀ¼Ÿ{¤äÌyxîs6ËýZÈ,5iùü Ú«î4?÷X™Áùe˜ DL00&iVñ™"ÿÇOUfðÍéËpý09ÎÜŸü)j_¼þDÇ(p6Ú‘² <À¦í³ÙO0Ž—TíŒf2w‡¹°í^j”a€u0 r +ø‚A´ûîÒåT‰ÿrÁ(á"bÿH–]dRdç½fîËÞµacOµÄ¤Þÿ·\?»ã çL#àÉY˜}9¹ pmoŒ$±Qgd™×l4mðÏgOþ·À¤+Ñ¡;b´·ñß=dBä r,§Ãw¥ÄÄ®ó“&ºû3ã‡ök^ÿŸyA&às¦NÂFê¤èL?ÒY7ÉÆî(An‰éP“$;çDRÒx¦È)Ü› „oô§]ëJ´Ö¥;Êù”!vÒÖ +îhŒ_3Ù?µt”I pXIO;T0ÒŒæõ^efÖžœMЋ© À˪…¼c³¶T €&„îLa‚Ž@Îüœ§ãOxÈ£"÷ûé\~ËÙ|WŠ Ú×â"§ÍýaÅýgKy-§³Yŧ o.å¶œ,òD'`ìFàý÷Ìk¢`¾Lj:Ú0‰ð:VR@p¨'*üLÃ"ýgŽÍú? \þ¯.Çœ³{bøúüÛá=Õ¼‡üëH-à¨sÊgsëŽgó›öÀ¸5\šQÉÁMgˆ@.s @IEüSó3€ïë¥ô®ŒƒøÃû8åx¡àÃÎTYygš¬‚3mFÖ/-s¢aáÌ}Á&€ñ‡S…?Nfs*Oç…€ùœðà!ò™–Ë0¯q¥ðìÙtNÅétAã©*»ðL‘gš²Íë æþ¥Ã) +ì@JŠ7ˆñA&I–È(-®ÝÑw$"¦~”‡Ü—p°§ æ& ‹¼#£!:÷t‘ã~É *ål¼n°5L ^ hk6ÁŒ‰g3Lì àbÀïe›"ÖÆ(ñïZ(ð'*R¢aé¥B¸Ì6F>[­Kþz&‰NÔ<–ÔÆ‘<ƒªÉ«>˜x¦Ì¯B‹;”VìËK»ŒÊü +³6ÈE¼}0®ƒiðø`“&ø¬ìl£²¨å@S6º¯Î):˜ +´<掊Ó=.gáL3€OÇ)‰+ƒÌ¸=YAÅ‘º¤Ó¼öv¶XÐu6Ÿ]q¶õÃ4ÍÄÿ3'*2mhTeí*+&ç +»ŒšìÒµ nKÊE›Ô ÄÏiRÒO %}sëó x¢ÿ‚ºú–C;SÓÓ2JüÀõ>”ÇÖÚóDE…MóX`¾°&àWÔ?&4™{J>øà̼6nî{™ŠÌë¹Ç@ËH4Ã8f”²áF9Ÿ|¨â7C™¦è0À©Iæó‡ãTƒ˜¾;NÚ–5÷ü)ÙøcÀ!f/ j’ašæ1Ïæ¢Ÿ ù¦À¼ñþ ~¼ÆO¹æ*ÿPÉg‚š‹=øvªÎÊßø·ÜƒqYhI³_ëJûôsò‘LÈØ™`c7©»cùY»£YÌ} øKzšx€¥¾”O{c”˜“É î¯iQÖlkâçÍ~ +t_–É?QeðÏ@þšá0ÏfhÈÿ.2ˆ=y©—¦夘÷ßM2FÊÁ$øs\ähk19æpœtô©†G?Ò¡æ}¦c%ß$Ÿt¢È-:Vå–ŸNgþœaÓw%˜@s&Ð=(s~™€cx4ãðÛæó £”èµ”ózÚãH‰‹6JÑþæ}ÈuqÛ¡¢ Úܯ¥Ÿ¤Æ +ât¨äÌûÛ`ŽaÿzØ©œÜC5a^ûܦÄ쀱™”¤8ƒ ¸+'ŘÏG˜äœSUNеGæ§QÞ ˜ÏŸ \ð9‡¸;Á€*áßÌkòÿÞóx† | 5Õ¤Ørî×?ã¿ËlöYŒs¢fS~΋JNEßÏ3ËNæ2KAŽdÿ\È*ÿµ”Yq2ÏLsi[cäpÀǹGêܲ=¥€¾+ÏÎ1i Z>š5Ð)ÐäŠ ö±:3ûø®}eVžAWnT•öí«KzŽ´Y¥ûÀÚëÑ4äÎõ&Ú­õ pÛ Š]E¥dG•UtÕwp¿¼Ó€¹@—j|óù•ufîÎTµä@_s4à§|³—ßWRS¶ÅHŸ1*`_FMúg6#ë ™%ÿhù \ê¡*#øïÀGå§jùLCK;RQ’ÌþXËeŸÌd–ì(èé;J yæ +ÛA}‚Ú +ÍÚð`˱†Ù!‡éûIþ»£´#мæþýC )rwç³=D 8œd§ëû(Á›]87]Þó§†Ï–m5|Ú0A‹7LÒâAÎ ÍòØæu£=»+å™Ï9‘%Bʱ”‹?’±æïéÁ}wÅ”£”™¾5FZt‘¶q¾‡BÄÎ)b{œ½1H +ÔeàæÛpÞKpÇm€?€å;bJüO…ûsJÄ7)ȉòà‡k=¤„ÝI!}o\€ý©Èýw.³øŸ9¨:ÊÜ7j(X?D5÷aFN’£~iXÄÿ ðô¿à:ü÷L) ÔKü‰Šž~(¥ÄLc·‡°ÆQfÒ©²¸Ù¤*šðªxà bÔ¾„y¬$D)°û2FÚ‘2Cp ¸À¼'º?AŠWÕ?VÕ=Ü›Luþ7àØìçŒY–èø…ý)ùD#à – ´:Ôʱ’c’S·çt˜Yï(EÀëN&'ïJ^[ãHÏ%q8˼¸&ýPÉDYdÆÝŸK\9λ€sÖúˆ¾[=x¯ÿ» *:ù·'ŒO3iòëŽç2¿Ïб?çI)ÿ€ëDAˆ<‘“ãÎf›æØ´_ ‚ÌŸ 9µ@Õƒ«ö`úÉð5æu -ýø¥=àÕDé&sr§³çб@¯ ÎæÖV ØÇòPAKß™d$ï©×*«”FuùØ‘6·Ò>?R3чjJò¾º/° S?v•%më@ÇÚ:™Ë­?žÍÈ1Èh©‡jñHËc˜ûrLªüªY¦èl&§ìD“Sf”ˆ¸‡*üÒ$§¤+§z6MCÿÔp(@ü\(:]Éï>[̪ø9Ãeƒ¿¥È) Æ)rÌ‘’=“¡³¶Æ¹øCeNù)À á¸G*€]þDMIÒb<–[àök¨o+x¥Fô×½aJØÞ0!`üM?€õXm‡\iI~»ÔÿòXŠ?–Q¡‡F² øÃ81Ô8N?”ÐŽeÌô½aFÜîm” +é‡SL£˜ Û¡EëÌç>Ha{£ä°a¼Ÿ~ç¹5€qßbD­ôü×zÐN1ÖoWŒóßy½7A +ßÄzɪêëã^®÷‚ÿŸà“lóyüÁº+F{é‡ÓœeĘí1r„®Ÿr*þ^ôàóá$ðZâÎ Þw»íº3ˆv;’’c~iYÀŸrXgZk’•¾=DÙ§ÆüÚÞ$¥Æoö¦~^l†¾1 ТL“BÀm.ð¾ÿòÓ´‚Œƒ RôîÜÉ8–òùàÙj³KÕÿòä¥÷f76qàMN€¦=x|¨dc¤8½8ÝÅ0N5IèIæÚÙ™â×i{“„Ð#xbÄ/5 s2ÅH=’Ò–Ú›K7ŸE5¯KŸÎ øgæý=Û¼Þ} žõ?@˜ûnL² &І%»À£J&ætš;óÿ–9œ$Fè†P»R´ß™–I83ï—qžh²‹ŽA œj³KNfø\£ÒìY¨ÉÛ`~tæZ5ð .Ç3 ²NçøÂ#5%Ť$Æ)ȉûà·L@û aP +Øš¼*À%ßOfXøÓ&á?óæ®”ÝZzCÌJ]ê#¥yEFyVîæ0-n¹õŤfŽ~6û®Ý1BØð¤‡r.aWÌN[éeDœxtÌñ µ3„÷;`$„ð =ÙÜcz2“]v4“]j^—<›Ím817MqqR.fwœ¹Þ“öy©þy±á D{›÷—Järÿ=‡b>+3÷{`½õý8uyú›åzŒƒ¾Ÿè¿Ò†rØéÇzí 2¢×:q )VÓeÑV ovqÞæ3ëú q¾ùuwï(¡Ä@^ïÒã6{ÞæóŠú^ZÈj+Þyg„³ÞCðYj@}Ð÷}Ìk³Û ÿW[áö35ɯfëà¶km¨/ÆBЄ¶Ú ÿºÜ wØ%íãÄ0]?Ño½‹ì«®J~­ë!š&Øi‡ÄðýQ¤ÛÞìËv_Ú罤ËÑ!ô@L‰ÞìÃ{/4 í ìäÕ¶äw«-ñ¯ CŸ£ j¼aëcÃFˆ¡›Ý¯ý.l” ;šà"÷†ØÐ½avòF7 üúÛj{ªÝzìÓÎ(Ú{wl”š×®¨ Ï‘¦)R´ùLÌOóY¹€nÞ2ŽÓSNÆ¡”?U1f¾6s”qŒb%…‚g +Ùc8rÆñ šQ’ÉÑУ“,øÁ$3uwï¯3¯=ˆ‰!Ëȯ«]Xð%»c”ˆ!r°iœý’…þ®Càk6º›]gã(-áL“‘u<äñ‡`£'GHaû#Ä ­n¬ËZ;À¾ArðÞ05rw“¼=ÀM=˜àÀbVÊf/Ñ{£í¼7Šó?Q1QÆ1jôÁ$ v ôçȧ}%¶ 4ÁŽ„ƒÞ—ñIúq2àzbèŽl~ÏÌ»¹çüPFMügš:S°Ñ`$ó^ØÁ5a{´ÜtÝ›¤¡þ3'*ù©a“åäÄãi&öPCGìI)±[ 6Kí×Ùjì§…z¢óbÍ[’›l¹Ò–þåàý)ð2€ŸF1Êë`²5H Ñv=fÛ±.{CÔ8È­¢÷±œƒýï,Ÿ¦¿?ƈ7k£Ý !Ñ8™-Úgrš;#Üz7e£ +í 3ŽÓÌg磀ÿwh+Ýïíso•Hx¬â³÷f0‚ÞêC:éÐ÷­Ñ‚ø¼ÚŽtÚ¡€dÆï‹¹ðóç¿gߦÊâž(KãïöcÌo¼¿?Å8"ä'…”í1vÊJ;ÞMS’öBU }"E[t‘/O—Æ=ÙÜ¡ë&ÅøÐÿ-ÓLSØ  Ù—ºP_e±´U /7;‘Žº>œ·ùl—IŧíJ9ý#Jòc{€n~È\âÃteºÕ|=Ò~¡•â·?! I( Ûƒ(Ã8.Ä$'Çï›{nÛ_ëPŸ×Ûñú>Œ‡QÌLØ»3D‹¹ï®ëDÛì@~^n‚Û©Ë’^Èò_,5Ð}ëÙþ³UøÏ ÕØÏ‹5ØÏsH»•F¢ËlÒn½ç¼ÕAòÙ¾Â0ø¥±ÕM Þè ¸/5¥¿Ÿ®‹5pc€vC]‘ún¹ á´ jðßR Þy©ç8[ø|µ1ꙺÌïÞrSг~_ébÅìòàú!FÜr+Þͬ WSÞíõ¢Ü }hÏÙÊè§Ë­¨oËmDïÍ.r¾—°Ö’b»Õû¨ïIsÐ÷!¾jêá3B¯¯4¦;ÿ”ñÉæ\ZhJ´ZiM~·ÕƒtÙêE9ë@]ëûÈÛýÄ µvÄWðcÍånÓš(^sµd×™*ô{MY²åB]š®ï³7HZïÀºMr°ÿr(ñ_ i~‡…y} +äø¹@“œ‰1LRwÅÀ·ó°ûàûs зšòø§Ó¥I¯´©¯µ°×‹uèO› f[]D_Ã=j»›´ÞŠu\oE®Lxøöµªútµïv$ÒvÄœ´ óyg Ëv†1ž«0ûùúôO3Õ)VSÅ‘{˜—”Eq–-÷ùÚ«åæ´÷Š’¸§‚ð;‚¨[êâÔKX'M5Áy€Ÿ|wk2údðŒn€è¿Ù‰qÑu<Á¾-µà¾­u“BƾǸ/™dœ A×;±nfŽëG»Í7¤XKò¢ï+‹Ï7 ?å@ߪÊî‡ã\GFÂJ;æ›¶:Õjú{âMIü“^¼ßÑ$#E[óÚîa¤Ç +¶ú9Éóh€Íx'M9ôù¨ èz/Åç÷™ÒKY1ôCÞÇb±%Õåç4.~«'ñýFgŠÝZg*È­¸—9·–ßì‹É1'ÀÏïJ¸è-1;u¹ƒì3S™n³TŸn7_“ôf"+ô¶²(æÑj ò³ºåØ)wÔõbB§æwµ ö%ĨQ¸ójk¢Õ\eäCEIðíµŽt‡©òDÛí~J´IÁ§mQ"V›S¬çj£žH o·Qÿ²¹ØÂ ¼ÙH¹=[‰rXn»¨JRŸ«‹S,ªÑï•%©/xþ7;ˆnÏ–Ã>é{èQú^vüF+b¡÷e¹ñqª0öþdNŒÅluú»f’ûånÄóVzÐv7#|¡‘è4Sƒý¤.IzºZÿbáGŒåz]ÚÇõ&”ƒú{â3}¯eÍ®w3#gë`o•a·”9!7U¹á·Uùa·çj¡¯úaSE—…:º—¶<õÕrcªíjsªíRcªµ²,ùù¸(úŽª$áÅZÚm±é²?, ïô±’·z¨«8WPg_êÓß©–œ* ±õ¶ÖÁŒ˜o¢xnõdcWÛ„ñË-¯™ªä—ŠÂøŠÂ¸Gâܰ‡}Bÿ»[}äðuO›Ý(§•6¤Ãж ɶÚê$«©’ð‡’üÀû3Õ‘–Ûƒh¿c9Ÿ±7ÊN]ïÆy›ßk¡-Ky¹Ô¿jæÈÔGP+oך0î{=ä -›ë-Ç•F¸½¶"ÁrðÉxVØÝÕ¼×Ö°¹>ÈMÒI¸X³·ÜÇú/=9šqc23ÁB–ó`<#è–¢ú¼ë{ä§ý.Ði8©ÜøG½Ô Ë-8¿ËX¿Ëí¬ð;Ó5xçÅ¢‡²4åÅv?)@׋÷Úí7¿ûþa$ÃçúxvØ}yQüÓ>žßm€ÉÑF1·ÑA ÒõPƒÒßÉK⌯ò#oˆ³ãîW!¼þècGYÎ×cÜvúÙ ÝäÀùz˜õ|%ÀÜ,PŸ%±O´5IoÁóÜÛëa$¯öf2”5—åNZØÞxnîj'=RV÷¬—ìý{Éïêt׿ nO ³u kqFønjÊ#ÆP޻à{R>í Ülj¦In{€nvÆùäéJÒWmòöGÂ3eIÌã…Ú;à %\\˜ð>öãßÔ%1Î&©H0]pïÏð¿»Ü÷j­5ö¥¶,äöBMÜKã(5ºï|O×1½¹Ú…s›¯O±ž*µÞ˸1‘ó¨é|­0þÃ¥Õ&´§¦&éÕ/ðj7=èr#ôʨ0æfÅçjÆõJ¯(èÚóñy±0Ân ä´ª÷QVýh2'ü¶8+üÖ 'øZ/Å÷Ò°0æQ)äquªûß+m´€>^ÂC 9.+ "-VëRmGx·:pŽåY¾×µÕxwIÎy¾Šæ·ÝÏMøöm¥f3Wµœ-Ky%Ë} ÉŠ¶Ð–c¿ °a/”¹if|üºPþ¸ÙF œ«Å~ÒV">h«aŸ.+K#žm¶óVéš(ÛÕVšïj;Ñ}µ ýe©9Ýn±1ÕF[ûb2?Èb"'잦‚꤮$9.5]çjvª’dKuYòKIA“!Qüã*´Ï¥Šÿõ¥fŒçJ;ÙGQ}<–}»z}4+ü¾´ âê{ÄÓµÎô/"?‹6š—Åöj0Rî%É‹¸=UûàÁÓ^¶Ïß­ ·ë‚è÷ôñ‚-†i±Ë ©v‹u€÷šRìfªâß®µZjð{4‘ãvs© é«§%ëÈ!€ƒ¥«…jÌGõ÷´7³UˆÀ_ÚçÅ<ÞÒѬƒæjS>,·¼”åpëÉ<è#Eiê«ÙF¢×Z3ʬ³Æ²‚o,6!”e0+åw ©;pîòïPi^âÓÙio fΨNÿ4,ˆ!ÉOµ^l¢Må¥XÎÖ¾N• m†±·å…IO§+ÐïÇ2ŸÓm.NÝÛŠ÷êaßé${ý9Æ º.Ï{¤þ‘lµÙw4Nà"F‹B_Vã¾^”§X¯væP¦k©>ÃY‰/:ÈÁ÷;ˆ!·‡X×;IÎ-6¥8-¶%Ølta|$9y§*¾`±.æåÇåòˆÀóomyÄmI¤Åtô™¶a7’—h7 J¶ÞÊ ŒsQ»Cxßõ&ØçåZ˜ÝBmšµ¦2èr¸»ºÝ'ж’—¥ØíOcy?_ûx±:ñµVðÇ~~ººó¹_àü{¿àÛï<Ï?{¨>W´%°7ƒùÐç©6"Ÿßì¢GösïwSJ”x ð“Šï°Wí”à+Íß?Ù!×uȯºAœOONà jÈóK ôY)úÓPFÄá ÿ[+ é_–›P_ÔåIÏÕ¥Ðç³5éïU°êŠô/»C™äÍAÒRÖQU÷T[gÙN÷¿–ÿñB?øaÉÿ~9Ößb àŒxYAÊSi~Ì£^Vàõ¢$§?˜Aöç&K’¬Jˆ/ð¾ïÿso«“²ÓOؾe£'ÕA]á{k2ÛõªXäucº.ýK .ô‰0ÉûÎhÞµ“ŸºÜ„vZoI²Y®¥©ˆ|ÓIýtY[m½;B‡ÎÔÀ¿jŠãŸ/6¼fëÓ|×ZÐ. ÕÐKMh‡©ï©¯8¡.§x>Üä!·D- Ͻ¯*Œz´Ü³ÛÁú.w#]²Ó¯‚ß^TÕÃÜWŽV&>.Ž{¬.·èc¸]Ûê&ùï òQ½ìÄí!jcP„_hÅ9j3™û`”ð·"/ðÆ\Uô³­1RxONð}E!h½í;{¾¡(My>–ý¨O÷l fÙL {9[‰‹ÝÉÌÔÓ|%%¤%!ʲèÇÚ²Ô׋µDDZüäy©ÎVÁÜVaA%ù‰O¦rci¾C_ˆ…)ó¢,T§Ú,4¡>gÁ]¯°B>ý¥(DŸÊDœÕŽôϳ5iÖó5h ÏÒßóÂïÈò“-Yw½m,εÓ^Ï4üiþ×ÊS?ýÖMpÿ£•àyéGÚ×?º(ŽWW:Ò¿òÒ¾ÝâÆ½»²ÙCˆZhB~T•Ç>”ÇXÈ¿Ç?™Èy<ȼ9Æy°TvÉM÷¸V†òüK “BŸÞ²˜šK[™ôr"/â^æóå†Óí™Ú»f¦×ƒõ|ĉ<»@?@‰\Ü<Ï·Ý~¤³aéºÑòAZ }5Z„vêËL|·ÞÉ‚.4\æªÓìV›P_W[1ß4@£ ñCoÏü@8otÐBÇøþ×k.+­ôȹŒ«¾ãóß)zú/ ºÕþM]ñÌ8ÂAê€SV£ìfêpßøq½Ìˆ›š’¤;}h·1\àHIäfØÛKÓŸ‰<¸m7=ø¯a°Å|eò[PÏî x÷íR°¾›à/+‰y®®Jú¸Ù#„Ï70ýæ°s iæêÒŽG:‹ócßÏÔ!Ýk¡/j(AO—ÛÉ~Ùq{˜¡×ú9Á×{Y¡wÛ¨áOÛÙѶòZ”[šÿû+NÏnA*÷'ØH½ù @Ïi«ãžiÊ‚-ÔßCžÎU1@¢Å~½ùõÙù.Q¢'ð@¡ãY÷¤9~ Žün q¿]í¥¾¶ÔuØ ´0|ïçľ5Éø¤#·ÙEðÊ´P–Ä[ðƒïÐ|^œ¯Jw»'/E¸g'Øìޱ°[]ØÀ5€ ºn‚ÏF'Òu²(úÙŒëÕ*‚çíùv\à`v2ð70›vjÄÎ>r³/Ýc¾1ÅFþ=âñÔ÷觺AVª¢ 㢬Iÿ´ÕËŠ[o§†.֥ج6C­7;S?lo«¬Kÿ¶Ö) éŠ2š1òì»^^”E=ÖëÏ©œ„'ÛÝÿció`"›¿Þ)‚-· a3õgue‚¥ª$ò¾X{·›x¥ázA[ +û¸ÜN ÏKy6[EóY¨¥{ס.´“ܯJrcH‹î³ÐV¢¾îôòÆ1>z©ñq«‹»ÞŊהìd9±÷‡ùQwûX‘·zÑOgÊpÞ+mYpE9ÉEšŸú^šÿd<3ì¦,'òÎZ#ìÃÖ=j²å*+Oû¶;ÂE-¶á\µ ˆ ]”ð6\Û‚ý6&й3™wæÚ~<;ê¾4/æÕJ+#TQ†´›«Â:¬µ’<×Zq.«Í8×õ6zŠa˜MаÓ3Ó¿Þ¾ÊõT•S²=F_žw»Ÿ¨ïÃ{í |÷†(a[=Œ(YÚi(+ñ¾O@/H|ÙJrº$Îô¸¶Øù´_äñ×DFØí¥jŒãàAaØÛ+KuØè#©º?Á€îŽ‚6{`Ž 5aϧ²¿]ž©Šyu8.  Ÿ0Y”ò|±â3U}:½ÞÏöþ»–øùZ-ÙñÖdaècUY‚¥¦‘’s¹ÕÁаÛPvzèác#¶zP^KM‘¶ µñoå…awg«RÞ/µò¢ŠÐþw† +’tƒÔˆµN´óÔ÷ëÙš¸wË-ióõ Ö²ÂðGòê´¯­¬À;’|¨¶ç´ØLð\ÞB?ÀNmúå&¾íæG¿u˜¨b&lö3ãôÃ<ø<˜ËùÚd«ÕVø'€O/•)¶²Ê”÷•IsøèN^ÐsIv䣥ÚÔ/k­p7}?"Ð0JŤȵîô¯L«³Õp7Ã(;m³ï¹ÜŒü4šzsLq{Tq·Oàût©%Õs¤ ákf¢ã•™V +bµá¦úw¾2åíxfÐV”óï­$Ÿ[Ò’xë-P»üØoVáƒA= »¤Ä…æ(«•vJÐF/eo ƒ¸7,À,¶aœ—;ð~º!!j¥•°Þ ÿ¨*‰µ”åE<Xçx$åawF˜ K]Te5Åqw¤ k{XDZïÄ{éÍgmÛ’íwÇR\téŽ+“Yœà{UULÕw’ãôì'EQâKóšËr#ÒAQ–ôzºñQÛLóë+L±m"]U¤Ù®µ}ÖÛI^Ë­çù¦äOË­Pϸ—ªâ(‹µfrèJ§ ðø«QQä“1Qô“ QÔ½õzŒûN7:]‹õÃ>¬·gàÅ¥¸¯åÇ‹Uð¿OdÝ_jA~Ýb%î ƒk”ßìÇïKظUN‘n"›·ÔMSW¢¿h ?.Ta>jË6º6vÂJ #²ŸtSYûr­ƒÆm3–pkˆvw<7Érº†ì r*vo8ƒz(ðö$<òÎXq±q";CSÿ2’ r(üÎD¦×ßóåI€kö›=øÙF¼‡ä{ô£ù&¨yŸ +äËçõVzðV'/a #îe;ôÍv‡°=ÌAζ¤Xoϼro³ ï±Û‰tÚî§€Ü%.4›ßë„ù¶;ÊE„?íbzü¡,~9šŸð®›f©©H´1 ³àSÀ¨ç¤»ÜȆ…ïg±f+’^*‹Cï=®u³¿Ý˜oH°ÞîEºo÷R#gš‰>Y§ƒ…‰^úQfФ$ñu Ýë^¿(ð…¢<æ•êGÄó­¬·´2ùK§0ðÑæ %à«C#é땞ë­éÚÄ7óíéó-éŸ6º1^«íä 0/¯gëi‘{â<Ñj/3F]‘f7S“nß' ~ØAóº¶ÖƒöØ–‰x“õ¤„4«Šútï½qfÚf)`¹ç²ÜŽq™^º_àu¯…æzgxóÁ¢T×f’ïÝ•&œßV_q½/›´ÞÇKÞ`¤d4Äö$5nsœÕ ˆõ4Ÿ{SEѶ{C\ÜÖ °7ÌI3‚û›d¨n Íe­3åë±’Çû9—×¼;AM^êHúp +(?ææÆ2HÝÔà€€ã|çzÉå÷»òløÇ¶\¼®“Ÿ¼ÝÇŒ3ŠéIK­0û…„ÃJ77Î|vamˆ7ߘf¿Ö ÿ4]ÿf±%Æfo ¢ Å&yØÕ>vì|+;x¡M” -üºûóJÚa¶"ù5¨ùGêjøWi5úK)Ñ÷F9Ìb©Q°ÖÉOœ*K·é†ÜéæúÝ”†¿œ«‚:,7!·ûѳ-$oIyÊ«!>b­ç¥( yØFuºÖËó¿SƒÿöGÞéêl -¢·ïðése4 úÑ0ÌÄJ©Ð}15a«ç?]µÒÔ†?3õPÆ‚¯õ’ƒ·ú„ýX.o¡>‘û¨‹æ}µ‡ø¤—ë{·ûñb'Çí¶´n_Iõ¹Óà x°Ôˆ Xo§„€XÃŒ£<äÎ3u±;ùãÚÚ[œÉØÎf.upâµµ_࣫ ¶ûø€í‚ß|=Òa©å¾ÒFôÙêåÁV»hAâÂà{Sepû•NZÐJ'Åog˜Ø›Èänsáó]8ï-IA…n²¬U7ÄE,ÔÃß˾Ç>Ï~¤(Oy·ÕO<?’þ¤_x[×Oƒ­w1c_ä%‘Uå oæÛ(~‹í¬˜ÍÞlòj;3FUÿ°ÔŒu¡ …š÷fj¡6cyaÏú2ün®ö༶Çx¸õAf²²ùM7,¢l Ð+_m ôÃbCÊ»…¦$»µ¬¯^„­‘·Ü‚qÓ÷à‚w0> IŸ‡3-Ún÷°>(Œzjáã ¹™›ÃÙŒ­Á|ÈUÔF5x¾ñNV’ðv¢öeº…ä§©'x™T™ë=ÄðÙ*ä{U9Êf©àµ9D Û „­öáƒ6&xÄ~ÔGa§+mLºAVÖ±1žŸ½<̅Ͷc4ˆ/:1¨¹H8ÓIô°º ÉGû~ÓOä—-‰ÚZø{Muâ˹¦˜çʪ°'²Ò°7&¥(×8•™¯þhk„a”æ숳ú!!RßÏK]mc†.6Ñ}Ôõ·Äàcô]s u¥Q”0]Nú2[Aú¶TKñYk£…醅Èq>^Ÿ«a‡®ö—5 œ0qfâc€ãw‰>·ºwû¸¯eOÉ¢‹0ÅëVA’ÛuÓd6_?@Xžæ´Ò s˜®K~·Ü‡öß3P[b>v½Ÿ—¼Öˇšó`gP€ZØa«=õËz[òUi°…´Ðï¾®›µ7’ÇUײ|ü2×HÞ¾æ#W{ȫĀÕ!Rn’ÜRÖ¬ˆKÊW30Ë]ôˆÙF”ÓR ÎW7ÈL5¿y¹ë6ߌø²ÐˆõÚ1eEéÖÊ¢$KmiªýR)Î Î`éF¸HU=Æw$7òéj73Æ ÉÍ5ʲ³Özð‹­ˆÏŠJ¨íhAØKye¬ãîvþ¶ÞGO”A_îKò +§NWcÄY±VàßÖ;pÑÛ#|ÊÎDM7ÈMõž´3ÀI]¬Oµ\ëãúÝèø?”–D¼Ý샘ßñfÎû¥zÔÖ@!ocÔk73\[ ·î¢x_ùݘ©O´Zí û™{ñ·zxi«ÍÌ¥VÐæ~3-0YE¬½´2Úv®ç7ÛEMÖ4b“Œã9¥EAåš¹FF²8˃L莔Ï:Tgæ¦DBm;É_˜æz¯³(9jW“ýcàÉ|ÀúNtàrÒ¥—»1@I:Pùºq&RZôfm¸ÒA +Þ.ÌXïËg,µ ”?ð@*>î§£ŽóÉVã|Šu7 cU‹H¼[šx­ »§Íc{-×r‚UèÏ3­'u#âÃJÌs¾pc ‡ºÐ™™¦mbij(NêrÚ—Ù*Ž—¶œë9‘KyŸï~¾ss2“b»R›½RË *¦; ²Ñ–šL’­¾³€2ß™™>\‚ý0õƒì¾5\T<×Ê….½³7œI’}‡ZJ²Co-T&½Õupb¦«3"&³É¶ÓÅLGu!ÇuéGF„®)±T™?••ãÓG >š`¬V+2×Z‰K͘¯›ŒHý€ˆ¦­hÕ çq·XPEYŠõ°(ü¾¶R5ÓTJÔÖäÄM—²\jr Ó墰éRŽÇbµ XÆÚFC?mD¥Ý“‹hÞ›­Yés ¨/³ ©öºQbôî‹iP5í)Šêuã"º¤,éüÌø…ݰ¡,GÙªŠ“ž-ÖÂlך®[í¤èt½9*+à8Δg…ëÛJhú¶<ür'd<;î1Ѓá¹P°£(lXˤÎösúYÑkCüôí± ²qLDÑðá -·ùªt}%À8,@¯v ÓÊ‘á—ëÐQ7ä¹4¯½öŠ¢½¾,êBü³¶:ùÓZjœ*¨2L”ïIs²69iƒŒ„½ÉÌÌíqÙ(å×zÓÝZR¾ª+¡V3 0»¹&b@Ìÿv"òḈd³ÜÀMÙë/ÌÚlÏÆÎ–“]Wjé¾ÛùÄ™^ÚDnŠÕJ Ñ­ƒè¯b%ïŒqÒ¶‡CÙî÷»yn×µu¨o;£…9æYIùc7SM Zo±•à>×DñÐVQ½G©oFy©¯§ŠÉ²Rœ½üôô{ôeUÂGƒR˜{4S2hš.h^î!Å(.kâlÁ¶¼¬Ç Î¯6¨8ä¹N”÷hqìsYeÜóõœÿ¾"#Ó¨È-YëÂiÁÇ’’Ú£‰ïu‡’²^¸¯ü‡ïsU]䫵œ¿AÁ%Ï4Ü4õü°Á|úç:zú­ +bâ_Y‰!|]Kwúz.ò=Äñù3ÈÓ;A®]ºyø×ïÏo£}ú³ŸŸøp±‰àw¬°ÔöÊ#n´šð¡¿”ú¾¯€ð¦W„~ÚÊ%<®"¤ßÌN޾Œ÷¤û»Ÿú+ˆŽø]îw‰áïü%Âù7¯–?«çK1JÐ!÷‡²P¶óìÕn.L[KñÒÖ]šQòap6Í¶Ž†yVA@ÞÉONý“vëéq>ÅáÓ9¾ŸçQ¸Ç%Šï— 1ÞŸó|õâôÌâöòêøö\*úÎt7dµ3 µÞŸÏ™ïÍDËê¨.“ –åù±cùnílü“:|ò&BúÝv*ñmõ¤›rï{jôõT‡óoÜ…<½q âñâÉyv˜ç•VVÒ3q1Æð}GÁ"êeLÌÊ#YZ…´*Hx³ÐIOÛÏM·r¢ºùðûý<ÔÓ±LŒõx&ÖaD€¶+Kü›î~çãtÑÏúÕy¬Ç×?©~Ž—Èž_~WᶇY„­1^'ÉàÌ÷‘zpž hG ›¼—»ùÉSåt§ñ†C_&óciUGŠ~œ•àu æöábªû·ó_-B^ݾq}ñè<3Èýv1äE§0ÎI[‰Ûe#tcü¨ç¥NVäb'5P7ÊÇíI„ÔÍQFœ¢:Ív$3éÑd>þãD.éKNBÈU¨Ã‡s0G‡sT?Ÿ‹X¯/ÉA.2B¼.q_p³|p.ÂÞæÖßíïüø€K M´à­Qus,›µÐ)Hœiĺ(ª¡³íhoIÆ^YO÷T>÷eÃ- c®V‘ˆÖ W®gƇ^b†û_ö±}õ›Å•? ÷Àuûê%ˆå­k„o¶¿w‰R\™ßOfxYº1B´º1Æ~¼<ÐÚ¨d3¶eÙ9+ÃK:hA냤Àm1+uc˜Zìä$δГ +PÙiÁO¸>åÆ^Áû~»–àhw5+É×¢‹|w@õDÛˆ7i……ÿ¬g5«»ùP`7^U0`7³Ñ —XIq’|¼ vo!/-n@_¿y}÷äÙÝË—~‡<úû/ˆ›•%$ÞÉþ\9"âº8;ö±aœž¸%aÁd­'i /x°BäÝšC³.ÁÇ_¥F^âÄ…_€ù¸žsû äêcH¨í[H¼ÃGˆÓË'«ÛC|mžC>¾~¹zé"Äó5ÈåooÎå%ú\‘–bß‹‹á/{ù©÷Çrp¯••<ŸÁ"¾cö˜›»Œ ;ëâ ýøòÕÒòìú_O÷îAÜŸ=†|xxróêß È?.‚q_…||hóø['ù±ªŠðYÛÌÔväáF+…]¹L»ræÁ"Öâ;qv!Ñùë¹@»÷hû„ö@kˆí} Ès;×®A~ÿí7ȳ™c&øþ>Z„¶›ïÇz­Š±AêæÔ÷ÒRÀ씥aq²‘Ü‘G~[‚Kû›tåíråæÁx|ƒxY=¼{pbcqrãÒeÈõ?.@žßº +yžÇíÍËEÏÛ“¥)o–{±3i—»‰>š*Ô{U5ñKW6úE-~«½Š ¸îá ‰uxñ·y±µ¸yuóÄêÖ Èó×!7/_\ºpþ_œ{÷Äýýý߆²¿î‰EãTvŽ~BDÛ“ˆ˜À ×ûiÓMdÏ‘ÒûRlòœ¯×ï/ßóÑö!¶wî@Þܺ qzòâùò%ˆû È“k×!VwïAn_¹¹pþ7È#ð{¡ïm!ìhŸ›â"ÒçÙÖ¬ä¥îŠ¼Í‘‚ìõÁLüL'b¨õº‰{˜‹Š¼N÷1q;çýÖ +b}ï6äÓ£‡çgÏ Àýþ¾xòüÆÓ[w!W/þy{ûåíü{'/Ér¼0áùl#âÛž”…?æÔYyÚn‚¦ƒ+«£¸  ^µ ¯šÙhëBXÜ ¼Ÿ÷oAÞ{~ã1È W€ÿ¯oß„\syäwð»·¸§ÛR¨û_ò„ûj?ÜKÕ+B4å^”3á·D˜¤ËŒÄä‹„È„ É~!¿9Z¿;w÷Ú È-Û§·î@^=xñ¶ùrs½‹z6˜MqRUa>m2¡›b!NÛ•“·ç¦ ×Ƶf8æþ GœÇùžCúûž‹tv„¼{òò\îoß@>¿|æí“;¿÷6ç¼m­~£†¸Þ¬Â‡=ìâ'½Q7Ñ%5äoäw£…¬Ï£ßyN5\Äãïd̽|ù.!áOg;[ˆ“•5ÄáÅ+ȳ[·!·ÁsZÌ|s÷6äáÍ›¿~ÿòðêuÈ·§¯ H÷ +¥ˆø×’"¼›¶ mä…Ȳâ;óYµlÌÃx쟹ˆ”«¹Xä_Ä訋žvï /,îC,AžÙYÜ|³| yyç!äþµ›Ç`¾Þ¶Øañ~g aÅø_ÈD¿Xä&­ ³¡šfœ³²*Åfu€©í$ŽÕsÚ +¹Ÿò D‹” ¿ß\ÞYA>[>†Ú¾ƒX?xbü'äï߇¼¸ýrë¯ë×÷B|íÎûÙ½¿ º«ª$z®÷3ãçÛIÞ³Í$7e%ዬ‚ö­™‡VË!>ÉF$_ƒzzœ ýòdoñ}g±~øò×…‹û—/ƒx܃|°´‚Üüëo€× žV¯ÎŸ~ºÖεÝb§ïÊDÜ…ˆ¿-·Ä\Ä\5p°þb ˜ü>“v'ÙÝõBćO[PË[ –oýq Ôá÷»[Wþ‚Üã~sÿ1äÉû«‡O! ®n¿“B}oQ¿N7 +#—»Ë²6† òTutß©Z¦çD Õ¥‚‘vâyÁÍæÄæäãSKÈCß[^uqòÔâµ?/ÿ{ÿ÷`m=‡X=x Iòp9ŸŸü[:ðò|ÞïH™¿-åà×'2sý9´¥Ñ‚éž,\›÷< èû›¿­õ9?;{ˆíã'+‡<¸úøÝû×@,Á\†|ørŽy=õJ^tÿóp¢…Ö^@·íÈã|ì(Èò¨£ñ­* ôÕTþ«<4û). þwªWü\(ì#q£‰[ìß_Pœª«bÌw}ç.öçP6çÛœ,È[+ÌÌ! 5 C»*9NÍùÌwµ<Ž]ó°Exð(´bÅ“¦ù§ÝHö‹¿JŽŒ¾F + ºÆ {XÃÚq#µÍ”Àé:¸Ý| Ñse$‡³8”ÇÖvPíßéãÍE¨lLèõBt£Î¼€ª¼B/†þ‚¿ Šû3Ù#ú¢Ã[[È«{7@.߃<¾ylï|‘}P%}/ÉŠTÖ°|»I+ýÙ„åÞlœ¼YÍÆ„ÝÊH¸Ü-$Xwgq>U +xoóilKf*þnˆsà…O/­!Ïv>¼ðÍÒâòîÓyÏONç#<ÂÏ''^ Òžµ +04×Í‘æJ¯ ykP€Ýg夹…ú‰¼¬åÑ¡¸µ0­¹ø{`…ô8%:úÿqô•Ým]ÛÚ½=Ôö”1Ð6iš†æ8¶ã8ffFÙ33X233ËbFK–YÌdHÚžöŽûþwë|ØC0lii¯9Ø{­9?Jyøðoi7ï¿÷úÁ«÷n^ºùÞÿþü½¬)ÿ€T¶#‚7¦é”ÇëlÊËíÙ²[Òß{¸ÎlH.«Ã-bµï¯òÚL‹}HÅ8'w¥‹p¿ûÙÔúuMFÁ?Š^f¼ÿòî3 Çb÷«÷>ÿðÓ÷®ýpû½âÔÜ¿Á‹šÏãY9¶¥.ª[FmwKˆ•a=‡³ö¯Ç·£Q ðPA‡¨ç±oä³Ôì):þÊs™ÕÐô5®¢ò xYÙg ¢âÏ_=zþ¯'×n½÷æá“÷²Ÿ'¿Ÿ÷òÍ?^?~ö? %%’;Z.Šúð©» ,°GØMñˆ;±. £åp•Z©†Þ1N“rv6»q’1V~7ªù¼$ëÃÜg?¨xú/HYÞ§%¯“>¼{åÒ{~¾ù÷ÊÜê¯ósò?+ÏÉû±®å vuŠ~¨ì‡>³+¾µL‚^oñúâV&ЇÕ^%ãÒtó÷d]dñ(%¥ ùQUù¯7÷þÏëÛwß«~•ñ^mFÞß3Ÿ=ÿÇÝ+çß+xùð}Xuч]ȶŸ˜Ä4ó<â³ a5î×3¸vùÐÐ `6ûH;ë½hË 9C;Œ~¸Â_›Ä6ÿd,L0— Q7É'Ð\.Â!d6ûU¦ß0*÷»\*&Ì.a€œ +.zOÊïÈX`ëfrk±¬§¥ë&˜yÛ뼕Yþîê$˲0±ÍõµÍ‘²cR&8äW@ÓIõÊÈu!½-°Ù×L­º}½.òH& ŠùÛ4-wšWeíkQN6©—æ8²™üZß`þ*¯/u’L¾Ù jø| +½$êä—ì- `ü²®l /$ïæ„ULTDÏDGu\ZHÕIßY ›'poö–õGë|°uß(ï.–MÖJdžÊ7ú†³Ä½½›<æ³"ê'ÅPo™p°¯p†Í¼?+à§‹æûA{Ò.¢[Ɔ¹¥ôfû¹tgüÀ½†)ýÍÚ·Ñ2ñ¶øë!:_½Ä(žï§?_ì|³<2R¹6:\Ù‡C\£÷=ŸãgMÑ9÷”ôTë|oËî§Æ#AûÔäÖ ±“ï×÷ útýã^ÝàlÄÔ3~ +xÀ¨ŽÔìá‹v7Ð’áö_%cÄ´…j¼¢äcZ[Û…)Á@î›õl¡›÷b„ź5ÀÜÝ¢'ÛÖ†¹nÕŒ<²Õ72 +z#ÖµèvïbÈÈïKÜ›ðii`»œ\³½‚ÏÖü'f½‘2_™æ»š¶Ö¦ºt Ý­Ê)BšvV´9DIštðqC69ÝíÌQ/°Ëm¢NDPÇ¥ÿ¾Ååýnfñcj"ôpž¾»„y}¸Â¬qŠ`N‰– Z¥q +ý|Ÿµ¿pWWÅ øôOWéù_›féÚå•aÑÔHƒpŒ—­œ4n¯ ’Ò¾WÁÁ,B3ü쯗ÅÍLÎéÞ°1d wxåÄ¿†CØ—²:¶„Ò™ÎÒÍQ^¶h¸'_¬ê¤„Õ|†OÁFÕÝÝni/×+ïå9$ŒÖ½5LÆþ:Ã)"”8Ö±ùn)³Í4Ë,¶Nòë|ÒQx»gÁ¯#ÃX-óÉ ~ ,óh±îf@/8³ð~ã–q!C÷ˆÏÔ7³§î=PLï+Ƨ÷e½´­EB†e™[·+ì†Ûeô†¨‘‚86p§Fý¿52˜‰:ˆ>%¡Ö¯a ƒ[üóõб‰zDÇBÓ©‘ *)MN!­NÒ yÊlξ¾À…ÔìÊ'—¢Îv«ŒTeSvÅ,pDŸ¨[Ý¿3 ½jt]ÔÜ9·Žêc–î ·‚Üh.zÌè.-0·*ZG@ÅA­ËlÓ½2jGH×;º3‡xe©ûegœ¬_@fìJ)0‡’C±«ù´YNÙUË2 +pÒjÌ$Š) 9q[ªOØ–r¸ Iõ‹‰•1%‘3:NÌFXOGÛWZŸÍ×Þ±¯ï+¹*e¾>·;Yõ<¢ã÷—Ùa_K²CFÅ͇äq=_ÒPá»+ ¤ NîçÒά ^ ¸âl?í3÷L‰ë’\lG¢Ö䱉ˋêÙ$gš÷×:Rõ#U¿nÍÔß l±˜íÞ;0¿Ž‰˜¸ì ž‹ˆM!¦< EØ—AO[î½Ýã G5CsAÙÄ|P>:PM…TÔÖ€_ì\Ãfo µÞñH0eºÉ–ÇÚ¡Ö›Ž\Ž{TëƒJ\•_‚ʨ)ma%±:Ä]Ü4"‹†Ö9p¼Åa¸T„:‡“ç¢s=R|•|¨ò¦ˆ“u÷l«k£- pO,Câøvÿ†ÛÐ3îÓ÷{5ݽ©Ù-Å—ûô¶°Ž…›iˆ¿ŽøÓ‰·Q3 Î,ˆÚ¸Wï“a +#jbC|‹EóË)íáD°=nÿ_6û+ Rà+mSàÇÆÁŽû!­#ªï𙻯ìJR}ÐÊíîö®¿ÝLýg%8³2Øa±}g­æv؈iŠq“ ?jìœØºç€ØbFù<ÑRÁA9®ìp©îöá|õµ¨– Ù_!6ئ ÉÞu\iTOE„m,V|_0}lã¹5¤&ñ`ÑíeD{x«gêPDªó‰Àé§:|ë©1Q³™ +J`y³•Ïí /£b‹[Li2 Vÿ é*üÊ6Qu5¤Dù¥°Ò 7wš–५ÜÌ‹n +zºÛ³ê—àʼRTÁQ°µÉò*ñíq »çd¿WèÔ º§i…›ˆÆw6Û'Å–F„ª€ ™k_kzd-¼â6¥Ÿì0ØQ€ß¼Jz{ÄÔ56÷M{Ôl´[Š-ñn¶¿ðo‚ž8VﻄàŒßx£~b¤UNPjŽÕ½Ã§F9ÑпOuÌÞíÌ´ÜVðÊ¿6ö·Ür®’‹]Ëèt•y¸ÐþȾÐò0¸ Ï8xà‘ÐôÇ.‹wºÅëŽjiзÀÜývȰ +WPà*B*RÃá>stream +„önâKÜkI{Ó5׫5wü*L™v´éžuœSõŽ$4`XÉÅùdÔFŸ‚TëÜ„¿öËP‰þ´À{’þú@n—Åulα¥³ÿ­É<6bêNØÆ´;Ýz7 ¡Á϶ú|J¾Éhòk\¯RÀrËH >ûOMlZ‚G½2d^¢?A¢g·OŽ- i0•1 ±õÔÐ=|¬Æ­D,4=2 6Þt­¢sN tt¢̱_×[÷ù\B\Ù±‰EzgåðœâŽL— QßPzJPÛìëu\¢ÖWQ#®éØJÀžì0yN ¥á`P7wú5t8ð[ð‰uÇZ6! +``D(Ži¥-¶z‘\pNH¯¾ãO¬ bŠÝHž[*õ(PE>*?f ¶Æ·:€¸›u)8ĆC>51I§&"èX‹*ß™,ùaw÷%/ãʱ–ØR±qG˸|¿4Ñë†„Ž™à%ÎŽ”ÝyÈË­YdêÁ:,íhüÚ#ÅÕÄL lXCh ë;»C†ÁµØv×Tl‡7pb·x=~ c›G¦„ÚDOTÇ:&;®åÒ#.-¢gàb&þøÙn÷úÛ}N_HKj ªI-qëˆ!hꟳ˘`ŒTÿÇ.™ø×.û×.…ü¿{ÜáÿÝc÷¹¤Tpâõ¹Hú~o¶¿ô.Ö\Û.»hé­¸p0ÖtǹŠÌXàU^åT<ù"´Bª9‘wßjX˜S-ÀSX‘OÒôܵRvõw#¹#· ún‡Õ1’!n ªÀ%AçÔ袨S–¡ªìˈ7Žen«}–Zå_%䇅Äß +*Ý1‡JöoÏ×PYÎùæ»{“?ºÖ:^ú%¤ªƒylupƒÚâØÀ—ì­ Ò÷æ1éÞuf}HÄh )iP·„TȽÃà kâzàñ¥ÎMlÁá2Ý%"±ÌD l 9È~µ€ÕuuŸj‰Í§D~TÑšäv¼´¯ASì+$”Ü`G%ûd/ ü‰ž*Bhšk’ÔÒŸG,9\D¤º7Hµ'†ÞÉSÀëÅ´NXÉDÄè’ÃùŽçA)¥Ñµ†Ë_Àæ±?Ñþú?;=KØË€NC-p]ùî8ik²é~ÔDE…¶ÃG2ȹ†/ùÏŽ`ü]ÁøŸû¼‘ÿpF¢zdõþJÛ#Ëlû}û*6ûh•U1`gAWLÅ¥DÕLDPÌŸòJ×[r~›þÅá® +Àä:«âg… ðç€ßrfa2~ÛaóO­,F@Ã@‰¨MA]÷H|«wÆ#ÂU[Çk¯îŒ×ý•>ÍL‚¿ÓÛ= )¦î‚ïÄÔœ¯ögÛrOL$DPNw®v$XXÔp©513¸Q—èOò'€»1 ÿ¢çÌJ„† 4´OEp‡Ú12pg6ó­…Ij𭓸ÔoSàÊ·¶AÉ[k»ÉCaó€’ÔŠNL˜¦ßw:ÇÃ:&ð!ôˆyPÔt B*8¢¦¶Ç5äVïJG’WÎÆh‡ÛmÃÓߪܘ”ÖâKCkèÜÃñ¦~ „Ò½yHÊ6ýSVÁí/ßúDäú£È‹½…ú›¶…º›[SÏ5>üÓÄåˆ1uóœÜv@ù¿ívÏŸl±Y@Þ6Ù[lz´A{õyb=f‘ª{qÑ=Ëñ-ãs¬­×Í=Õ?»*¿7ðK¿3ñ ¿t/´<òmÊ•£à´Ú×7ÿ= ͽæRZ¼R&*¤¤C"JRƒwœ¾3S~ݵњÕÑð`-¤&6䨂ˆ +–×@³CŠŽôýź'{ÓÍOÂr6¤˜ñ(¨€nAœ¨°•Q9¡) G—•Ø•e_E¦éë~Ú_FækFAy¶©æga9¹Þµå˜Ýóz/&ž¨I­q-9¡¯™'F.ý-àuO<›ðL€‡:ï} ÂG€XÛ ¢] +Ò."Ôù]71 A%±Ñ+ÁTå¤V¿ˆXáÛ@ç|’R@‰5¡QŸ5öŽEÍü.·Wèb fÀOÔôÜÏëˆâ3]gWÀ¤ šÜæ“PAÇ€—‰(˜ˆ¸šóHÅN1²Ì+'5œù=%jænó‡ßZXô˜‘ØRw¤»Åm/ì«m\/ÝÐdŸ•á+¼ëèl¿”X~›_ޝu®Ásìó¯ÃZ&ÁºF¨ÃV>ýÔ:ªxkëÛ8Þâ…ÔˆOŽ*t‰ñ%5úmˆ?²}Sp´†+ulêÀ؃uŒ]Uלà§{Ãõw]KÐlŸ_µ3 ~î“aëÏlܾÓ:-jÄ4Õˆ·¬ñ¥KRûìt ÝøÛàUkÌS-ý#ÂæÎž íOm‚Ñ·{üј  +©ÁYûóMwMc5×Ã:3ªçñOLLʱ‰JôkÐàSñÖFÂ>¸É±~µ=Ñ|Ç)•Zqeúf¹O2:VövÆ´B\Aª (ÈMž lN`ƒœ¨u€p/ ßøWpÅq1µñ`¬ù–s¶ù¾m¼î–Œ—ý•‚“ù‰©«òîá*®D7ÒöÀ6Òqß±Flp +é Ï&òí7 Ó!ÄTŠ»ŠÙŸ|bÕ+Kà yVa +~éÍ­¡æGêÁÖÛŒªGß:'Q…ÎB––S{AÅ,ùBA/þÒÀ¯8¬ò{ÿòs…T>Ǫ¹•vïÜûÌ¢§çCÆ%!w®A² —ÛÓ%?™Fr/z7ÛRw—@¯”‚¢ŸCRtÓo€î‰h`ùþ͆'Î…ò›»Yç5‚”O÷ƪ¯GÄä&·ˆÙ±= ‘XÇ|¦a¢NÔ\ª_B¨r¬ Rí‹°@¬dÎªoâÊîÿ{›v. +xðÃ%Ô›½ñ†[G“Õ¿ú–›ïÛç«~Ý›-¾y¬Å¶G”T˜wžâ> %48Ö¡ÙÑ-L˱„ŠÜÐP`ú‰–û»‹ðܘ‰9ü…SB¬¶- R=ë¨L÷ +äåá\ëK¯èª±·â— ˜R4KDßÙ5ñ¸@¬×.Â_Ú†®XºŠ¾ .u¤¹ÚÒí‹MOOLÀÏvudÈîTKŠk©=mgºþ¦eªöº_–è+Õ=}j Çu©,½'[4l¢ÿ¯GIõai~1øUT‰Ìó<êYn{ì[…&ù7©uÇÿí]OiÉÑ%öEpÒÞ<<Í< {9A*¹s¸BÁ„½ã>5uŒßx…š>1ñûŽÍ½Ó‡ë¨œƒulqPÍçt=ýBj¦ôÂÜßúÔ·‚É>˜n~àYëÈð${w¾ý‰{U7‘±1ª.ª‡‡Õ‰šc‰Çضw6,¨B•ú+E?Öp˱( hép¿’Ö5°¨§¶Î~¯™T ¼"D^@Ž«ŽÙœÝexzXMEnhNvºf¢[T¬W(pl 3a¯æ¡i~9±Î<ÕñÔ8F(ª'6ƒª¾Þ ’ËIµ1-QâËýbxæîTÍ- /盽©Ö¶á–{®p’cªã‘}ȇ¡º›Îù–'>9¦d¦§ì¤ôÖ¿y—OM=ãã“1:‚?­@ÓöçAO–ÚÇ5¦WËcT×Q‘gV6ø[´s_hm½³5PsÙÜW{ݹ̨ٞ$g)˜u\ó€ÇŸÇd9ç`/¦Úîk.É:K¿]£|: +~ùÏÝ \£{M€Ùž¿æþ†s œ”âš‚€3ĤêÉÖûÖ¾º›q9 •èi¶;_uMÅÍüDÁÈýÔ6X}Ý·Î9øþDIlp¬!Þè®Øça/}kØ|Ï +.Ͼ„Ï9˜…??œ†=q%î×"Ÿšzà…”Ú›¦î–Çöu6X«ùAHHÿPËÉú"°zê]m}æYiN:ӑ󬢘‚ŸˆÙÕi§6Û+l~qbh|34¥oM\7¤_´MVÿìbËVÑù»3Àø5lZPÛ=ÎÕÞdãÍUJæ'ÝÞWó +~ô‹ðµýÐŒ+ãèô[ Kp°Œ+Ô .ë9å_ë9E_I)Ï#oþSß“öÇPûµîp“éYÂ×ù%4d@„-K`YïŒ$ð‰Šˆé8Ô‡ùv À_ ×㛎õ„–˜W|–o©õÉn_éûxù¥¸ ‘ç2A»3È4Ç"Ý·‰Îqo òì‹è7‡3Ðgº®Êk¶±Ö·”Này@ËÄ›ØÔ¨š9Ñqi~%RQ:NL¼®°NÀ?³Û¼š¾Ÿ²“æQªƒbláÞTÃÝñê›!$-$†½v,Õ?Ð2Ι‡ .™É˜·Û‚±ˆYáw¼ +*ùÎ (ðˆ­ ¾Ñ'g.C_¼Uì'ü‡ÑÑq è$PP†Ìw‹ Y;ó ÇQ“qlÕ…·½Qkç`ÔÒ96\ª§"\›ð,@7ä{$° [Ôq™>À‡ô˜<Þ›h¹mé­ºz8Õ|ow™ºÈ*ÿž\pëo q´ˆ|c®þQ×]qÁØW{E'(¿ ï*¿¸3V ð¿m{‹èÌí)(ƒ\ E8^®ÆµÞ‘f›¨º²ˆHù@Dxó}XŒi ëxL\“S@§Zá Ð,@.Õ{V@O¬Cq/>°N´ÝßžhhìmþÅ»L¯)úû}›´†qÈ£etá¿i…Þã•?ú§ŸwÎ9‡Í” ¡^B2?Ù½þÃÀ¡‡lê­¿­ï®¼ë^ª}iªº²L¬¼´5Š(:Ö“:¶† +ÎíÍ”ÿ³ík-IÎåÖÔ˜œ +‰žXÑSsMÌ.½Ó²ØïlݳÇ:êhöâpú¹ˆÈoŸ#!ãz~×Á\Å5#?óssWÞWÎÕ†ûg[tRDÇbÎЋBžó¿vÞDLkõ,7?Øî*ýNEÌúXNLÿ÷þ`ùåS¾Ú4Ωz~éo¼¦¤_½Â k)àýé¦;Z^ΗÃ-w>’0“ÏÅt$xØ8¸¼½L®rÑå¿mñ{Þ8ŒßL¤vÿ&(Å»ÞüßëD€žr¤“æÑëÝBRiDAmÙŸhy çžWÑs>_?ûÇäáßEÔ´s޵֢?휑eFÖ/ÖÉÚ” { +äõ©‰Å>1Ÿ³ÙöJÎLûÔ2R~#ª§@CZ&Ú-¥4nàò*8¦gà5×ÿ0cëO-W!J‚RxE@ƒìv-D¬œ>†Pøæ6 ¯]bdQH‹®9±Ðq~ â–QB~çþ2v¬ç±ýðb +&Ô·N«q­`³mãÍ7Ô¼ÚËžRƒs ‘¡ë,Q AÂμ° h ÿäõ±ÍtH{‹„ìÄÚ?5‘Àï¶Iˆw62ád Y{´ÚtϹŠÈˆ¨éÈ5h‰q8Ñçœ÷ ¹È˜‚ò Ñy@.ü("g}"Âe}x´/^a–ÿ,çT] ¬Ð½+Øœí¡ÆëûãMw|kàT]oÙ%7ÿÛXóƒ3}g—köÆP +j“OTäã@ñÅAн¿s~|oñà#÷\õÝÀ¶ê ðN ¬X7XzóDÏ$ŸYy]A ÑÕÄúãD=g ¶âp¾ùnLMCü¶Í:62 !5¾:¬bb¢ +BmH„*=š%íŽ×Ý6õÔ^Þ€%­Pkïñê^žß§¸WÉ5îU.,¸ŽÍ ® óަàÊΚ›MÏþ%çV§D$vHBnVq3¾0ô”]?œiMzk&ÂõL¼_AëÕ?_aä^Kh®€_ë]Cdºàù€¾ÊpÎ:fªå¶‘ßxsŸÿ«ðîß—Pé×ÿܦw†å¸ŠÃÙ¦_‹ÍO|ˆ¢¨Vüç3šfž±³/ý}»ýXCûkîÌ~ï\ª»c_ª¿wbdЂjɵA.Ê˜à€„Ú8Ñ‘ñ!·ôÉÿLµ¿þ`ƒþÙÞhå%¡á7+‡f¥Ó©e?¿/ãå=»EÁ…Õ¨êýùæGQªÜ+g*}‹oý ÐO‡ h¿½»‚+šÖc;úßv˜ìðf[ÒáXÉÅÝÑ’‹Ö‘’Ÿ‚êŽâˆ×t° +zÐa›b»=Ëo÷ÿ[/¹3Qœ«¿}8Û‘ +|>Ñw(®#‚þ°ý·oN@NnÓÔýä‘ÒP~ó˜.bÑÄ€óB€x®½íYnM ˰uÿç Sß™0õa%$ït‡ÙßëžX¨èÓ-@‹š(@Ç•„T¸Êc€›\¾«òº]F¨Q ƒî»6ÍÇZ>ÓµŠÊÜ)ûÞ1Sù³k¡ážm ôG÷2"'¬c c_nÜDäç©2 $7ï#£F&î¿×® Xพ‚ +énüáï¶® ϧ€÷ ¶ùöçQ {¶Õ3ubä ΀¼‰È UÞ5äû,ìÅÞ:Ù4†z.æU\¶L^­á Ö)Ÿ® ûýË~² Á_ÙHÕÞUBCDNlLô‰Ù[†';¼ è8¿”XçÙ¨ºµ=žù®÷õç›´†¥˜ò¸‘ ð;¦tg¦ãé À›1Ë¢JâXƒ.u¯5ß;Zh¾í[‡¦8W1o6ÙµE¼êŸ×)-GTÓßz}™þÑPãó¿õ7&ÿRpã䬼íFàšŸ|ÝžùëgÓ˜ü ˜Ö“âJëmI–‘âk"æ« ËääO#šŽÂ¿ö;Gý+"rdÑáLóÝ£ùÖQ¦êÌÊ o3 ïì“¡ŠÍŽhh€Þêx|0ÛþhüÊ»‰.ñKqe‡k˜,MoÓµ dÎgÞpnÜ@lW^Rö¾ùÂ0Rqmûæ‡øë dk˜‚æÃ^ßøho¼þùŸû ö±Óà¶&;×kï$€БÁ‰žæn µ À„ûÞM|uTÍ£:×áé¶É†_,ÃõW6©%ßvV>ÿx¬=ùœk”i›k}N¯{þ­cÛUS ûs-O-ã ¿˜Çj.['+~ðKšŸ¼Ûb³¢zË.¤T…”ÔŽÓ-^ïï;¼¾˜–Øjê¯üYÅ,ûvk öŠgë•0ZŒ£°Ga%‡ Ì eo¼öæPÃí§@?ãSÿ¥fä~X‡äüï{Ø©€´òëï|âœG—¿3õŒ½31Ho¨šS´Ä¹ZõÀ4œsÑ<’óí»íÎÁyhÝ£àó\BRõ™Y0vªgßé踊Ô–´¿9š+¿íYo|ùÛwÀ§ôºÄ,DÌÔÙule"J\Uðæ®¥Ž¤9Dú·üÒ;z5\êá¾0 "µÔÄ>äC –ì3-÷Ž&«®•þX‡%îᨇ¯.‘+½&̾ŽÊv¬£²ìkðT§šêS"óB,¢ïŸŠ‡6b¦þùSKßü™…ÛùÎÊáÜ(0ÎØ %U¸r·‚ÒäWw2ŽVQ òÂ2ºehùEË+=·3ZÿĹ ͱL¶ßÛÁ¿<š´Ìò[—˜ +øÜ#@î-t¼°-ÔÞŽé €6)µ^ ­)¬à3Jı‰ÉóË‘¹€#z|KÏvn Š½VC&¨dÂÃj ¿5tx¢Wש™ØáBÓÍcWwgáIN½ýp“Ú%§[èæN䩿» Bá— +Aåuå@Í­ lö§VÃc÷*©Ò:ÞòÀØSü£{¡ùùöhÕ-sÑ%çbå­3¬(ªÇT,ÃÓŽÖ09Ç.=n``N·˜”c3ü²[Ž(°LÕ\÷É:2½ +boƒÑSŒ-kÇDÀoï-´Þ߯ºbÈ;7 ~ôåþ 8y{•1 +Oÿ|w¤éÞ±ŽEˆjX„Šà ä–@ ­3-TU—þ°$zp2yN)À­ }¬gRÞ™z§ÞG øç2s®õ¾O’XûÅņá)N!¡2øï¨ŠÖ3:Â4{'æå]˜Çg]ʨ½yT¡”WrÞ-Bæxˆˆ[˜ÔS“~ +à_DßÉ>Z'Õ”\¦g“ÞÓš|RXîÞLÓ}û,øåálûÃDí.ç\GÆ­àÊÁ¬hoS»F/¿!e”_r΃ßDEˆÜc9¥9"¡Bö盲·'JÚÆŠ<1Pðq‡}0JÚŸ«¼z°Pvmk¨ìÇrsÒï6lOƒQƒ1Ï*8†+¾u¶Ý·rbî쉫©íîeÈ k_Å%57ûâá|Ý‹?ö8ƒæpš˜J èz§Oöz7üRrÝÞ,ôàSîÍ#s"j +4¼Å¢EõÞõ¤VÇ*Ó¹ŒÎp­Šwu–Ê/n•ü(g¥}¹5Pré` +ü (äB-S )¿ðüÁ<89$ÇÕœ™q­g<(n¥b¢:.;fàñã¦NÁ±QÐûÖÚ¿šèƒ÷ÖÂáÆÍ¸_‹(°Õn-¾J;‡x5/ºàY&U9RJé·u÷ß﫺ó7)!ý Çdã¯îuB‘aŽ7L(ÿišøæÜÁ45$cc"J6.¢ÅÕÄ ˜ZðÓˆd‡ˆqK»¹[sÄ\Û.×)ÂU„”@^`¿m@¿[ÙœS_Œ‘Õñ9qSïä±IÐ32pA%ºÜ½ÙœäÚlIó ‰U1«íp…T$aµ^žFVþ<Þ‘}~²íÍÇ£¯¿èoNþl ›õ­YPñc`\¾ÙÕp™õÕÞ,¾Ú/îÄ-¢3« §Aè¥[Øp'¢ƒ‡µ$°KB…owÏ äö_Ö"JƒZT_CÃz•dÄÈbØÅè<ûRâþ(¶Ñ4¯ð‰Xm¾ÍÄxPÁMtk–¼3 Oók¯rŸ¶? Ë8\ÂdÚ¦Úï»7P9ûó°4ËTííý•¦g1"ÈGœn¼ã•´¯æÀùœw»]³§‰z‘Z|£3Q[ršîÜ€d»¥„:Ë "ˆÓ«=‹7qØ>¦Ô2Vñ³Œ™ÿ•˜ZôùäÙ§¦¡’[~ ´Ì¨¼5óõ  ÝZ*Ç×Úé¼P°‡ë¤2§„Ѧ€®ïÍaŠ"'j¨Ç4t¨cš”¨kª¢d|2}ø¹q´éq?2ïRÊÕ¯Þ3Õ$ýa#ÀÒ†Ôý™’[ÚÞòŸX•wþÉ­¼ñs¡öé_Gì~¯ß`ÂÒÄ-‡ñÎÊæþ±O£ý¾‹n;X.MÞ©|º»ÐñâØÌf…tlBXÇÂŵ,ò©ŠIúÓJÁýµODœZqÝ9гÃy\€­ô¶w8¤íä„õüž˜¡“R±‰þM\ ‘ˆ5º< †æ¹–ÛŸ»V`/}OßÓpÙÚ›¨5×pSÇ-º´7\}Ã5Ûñèh™¾É+¼4…~þ¯Ý©¶ä3#ûÖBhQ•VçØÊ0à3Âg„5Lô[sïÔ©‰Ë:3qèljï2ZB€îs©¨-ú ìëUJý5Ë(4y“Uóë<$ç3­ê©’YqÏÚ hÙåÖ'! ºÈäÒ6çëYÂóOü\퉶‹Rð>ib%$މÎ;\A¤{ĸÒÝ%l¾jtÛ¾Anèù½Q-±%(¥ø$ÍÉ>8/úDÏ"Äô%¡Ò%Æ{夎Óm&àwŒOAowlbó·§À/B::à-IM)ºxw’g¨²;Ù–z¸Ô^àZoO?¢ VØ•?Ï‘ó9øÐ£ Õ96‰•n¹1¨gáÝ +&Ô.¢Ôy °~òrg˜cߌxí“’kœ+ÈôÃéŽg{c Ç{ ‡ˆÙ&솽!V%ß™n|î5§˜Ç²¾3 e]Üžk|¡¬NÒ Ö¼ò‹`…¿ï±:wÖ‘yò¡æÛn1 vjé=µÐǦŽŸ´âî2õî¿–q>:\hL{gcwî/còÌ3˜ ’M}kÿiéžük—‚ÿ͆i ©¡YÛ“Í÷|ë䪀Õ’s±'Ûýk§¶¾Õ¿×½†Îµ4^96²~a®¸¼7Q}5ÑÁ4Ürc{ù$¸ €ì _hØåDôœs#àÇŸrªn|È(»ö·á¶GØÑÅö5|¾OŒ) k uA5±åÄÈå[ºg¢[‚á°Ž‰>5³èžMlqTEÇþƒòÖÂ$ù4ü‘˜Õê\çµï3r7™ ?u5¼ú`U~!¸ÊmwLÁ’lCU—õ½¹_Y‡«~Ú_€'Y';;;’5t˜oWè’+ƒ +:È/EdùÄÐ7®¶dEwîr~Á׎¥¦§o-’[Ey¥°L¯¤=% çÄu8Ð,¤Žÿl;Þ%z2评\“ÐÏA—Ñt÷úd\œyš4ƒ*øbœù•‚ÛpuQp±·áÍ×–~TÎá¡|{¬ýþî$äé"ûÛ Zþ~¾Æ#â ·¦hù¸¢¯dÝÍ/½R.Á¯¢¶Ç øæ˜]Ö#€¸DøµÔ6¿Ž‹š»†â[Ü®c@/[Ö¢¦ž‘¨©kà˜ë4è®i´ñ–q¤åžm]>K>'dþì_¥W»f/u¼Ü¯äŒô/Ìýe×wfÚ’fñ9_mrËïÄÏ硊-·,Ó·Žý-ÔäfÀg0¢†®ñ³Ã^iÈÌ$¹å °GÒË kÆ„gÛ¼¾ –Ҍƛè±52^ÕFçqmßXPNiõˆÑù{‹mIÚþêËÛ³°d·„ÔtlawÛ¥èZË<<'¨çòc6Ád@ÇDôL´[Nnt¹7óû‚†îA¯¦[`—Rë‚*'®ô;» +dg•\´½Ì¬ÜY¤Ú×ñ%¦±Ög¤Ò;õ´¾ø.¤ÀÃJd‰CØ‘¶3×üØ4\ù“C„-Ýr¶eZ  /‰§æÎ.¯ [æ•! +Ò¶7G›­y¶¹ÚG>)²[ÅíÑOA«C2̽ŠÍtÎCŸîO5ÝØ®¹¤`g~!ã–ý0Ájü>åÆ×ïñë^~ïZEf.B_šú›¯ÙÆZnÌ4Þ¶/ÖÞô¯cs€ØYÇÕáÓÎ$Øæ€vtÕ¥_tÉûºCZëÄÌLë<*cgžð7ªÔ'Á׺ÖovGÁÄôš_ÖHå—€su]šú !ÿÙ§†îÖ,ï*2g{¼üGÛtåeUwÎw³ˆ‡/á^~·LLÿag²é…~ªíQO{ÆÖZ¹¹–jãZXaHÉ:ZnzèZo|UáZOô œOŠ«ˆ«ˆšÉðÿÇ_6Žà‰Ë>Ö’Á¶©Š{ÓÕ·÷WQ¹|ð«o—(å¿ìOáÒwFÛï›úÊPñ2¿Y!$}Þ×zÿ3^Éõ÷åôℬê묪—ßÙFjïm´¤ïÌžXˆÎóˆÈun!¢È-ç®7?ü-"¬äw‡äTdX…o´ «^ì/—=ul´¦5€n´Ò A±Ý)…e óU0öÖŠk¡Å4+ +à{HNªu®¢3w¦àOís¤ —Ë]Àë˜Wq4ß–4ƒIûnœ÷“ˆç%jÍ+û<­aw–Zb™C¼ˆMn"ÀXЉ…ŸíTaª„=¿.2roít͸e¢KĆdlŠYç]§»æÛò|›ÈÊeFé¥I\ÎÍÝHÙþ +¦Ä:‰I¶M#Rö—™!±to‘¨ÇVè’âª7{[¬rªžø”]=A '±¶ÀÉz‚\ò-båòz>_7‰z£†¿ð¨:Y;ëÔÚ5JÝ}éŸ6¾ø÷ÁDíÕ ¨=3¢„Wa²¿K»yîokÝ•ñ-%fäÒ"T‰À9çfýsçZcZXMƒÇ \ŽeZ ¤}m‡¾ðiøü¨•?±qºü ¤pPE‡˜—ˆ¹‡kôfŸ +=Ü—ƶØ}Ç–Ío»‚‰Dï*– +[©(¢N˜_¦=C<ø(¤äS=ÔêDývÇ,ôÙÞpëõ­¾ºu}í×'©µß5§]ûû¾ð¶c‘!ë,¾ e|ikºv0Ûø«_ØúòXM‡„Ô<‚zšÝ‘ûÿl-E!ͬѯ™ÄÌýs'VNgÜÌ$'tÇþ¥l¦³å>«&åë­ÁŽÂˆŒ\ï]Bg8æYÖÄcC/ä–˜ÒtAÁh¹æ\ V˜@÷õÝeìËí/vfšîïLÖ=t.#rœl_…¤m/´Ü“vÖ^Ý •)¹È×ö¹ö—Çz\[PFy×I­g: +òÌÀ x%ðçèiT‰­ +IP%¿©˜¿vøCgß•øšƒÙæg®UHþÁ:¿‘va™ZñËî$&Õ6ÒrSÓYôˆ’õŸóëŸ}¶Ëúq«¯åÞ4®èRùý‹ïíŽ6%G$ {ãX¦mƒî-ÖýêÞ¬}àXkxàSê·g: +Ä6-ÁÞ ˆ3vl&€Î¬$È©•õ+a¹qGÚ[3‹Óvvž˜ºÇùÕR Q¶Ê½ÚöÒ2Rù‹ŒsnoúÊ:‡)›¥^St—ÿêXC/’Š]$”\üSVDÆ„¿rg‘|°†J?±Ð'föÄL€ÄM¸¦ˆßâ7Ó0îĺð-íí.S`›‡¦Øf±9!E'ÿ7 ƒaŸo~&"¾þV×YteºíQDJ¨Š(Ib^íÓ0ú…OD®ñ‰QÅÖɦÆÁúŸwçš~ul¶'¹eÄz¯‚Š h¹ôƒ RƒOÍat\†G䈚ŽÛÀk*Ô!"U$êþ¥iwÈýY|æÖ0äñ2:ë³±ö_õ·>ºÀo¸÷Ã(õ“TyŠe ÷«‰ Ç&¦Â-§ƒ}j&:¢'¶úõxeø:Ÿ _n™=Ó Ô]5NÁ_{u\¾C…C;TØ¿‰Ítª(mµÕ©á1ÀïsË: +v+o”D¸u|·Íîúãˆ;6SÐ'Û$d@ +:¼ðá +$K1ؘçÚLøZ…{ƒÙp´ˆÏ² ´ÝX#}>ÚžñáXGê?×_z—) { Ø‚ JÞ§ÎYHjPˆÉ ˆPÙÁľÁMXîѶÐ0‰K›#TþâY¢¢ÖaEÀÌa‡^oQàa=›äWqIN©€°,@¥ö6æœßÄ4ÅÄԖᆟ&¡,ƒm7”ÔŠ/-¼ÊsîyÄëÝE|³ùÕ—íéƒ +Z{¢®„O +{c›®½µDÍùv†õ…e¢á¦}–:ËnL)Kºöñ:)ãú½›Q­€ð;¦ÆÔX¦šî+z +¿=˜¯¿RÒ:FàiŸëºkr~3wMžž=®"ÔDØÒ€]h_€¾ÜiûUÖº>„,>¿€-úÆ¿Êì8˜ÎËü‘u•´?Ï”s~îmNþXPyÿ}Ï"•šè¯²qåðlPÚÅðJ(u‰u¶¡ŠËú®¢‹Z~á!¶N:Tÿ²5óÚ?ø5O>‰jéHÛ8"Ù:ÐþëîpÛm ¦$ø9 §¶,øÎr[æ&7ã{—°-ûÝ6ƒF::dd"Fé÷½ÎÑ Q¶·z0K+ýšûëw®Äz6´?Ó’ì˜kM:VŠí‹/ ½ÅWfa/þµ=}6ŠÎ»Ž/¾û©Yr)¦'@ãF|k\­ž7òÈp%.1®Ü­äàEÔ† ’jØ„³-:î÷ï­‘ +;rÿ`®æWuoñÚ¡Žçs¤²«Óà7õ×¼øG_õó’¿ØnJŠÊ¨àƒED™¼³âš„Yú­sƒ\ðX¦oQâ• +¼RB€Äãm*)f¡`C[LªCE…ÉGën[;^ŸìõKcÛ‚QŸ†…óhyô€™‘èyÚ~¶ED:„Âapê×Q õÁz¢ç´_ +Ïr®¶>ÚŸk¼Õ jþrð&C +Þ'â´{×¹íÎZùÁ&Uî¼°ŠÊø@AËúÔ3×ððhüÆ2Ðt[×Y}Î/Æ—oÏ6>³ŒU]Û­»n-¿r8Õñ8°F«}x¼·Û4FØLÃú tdÔÌaýfbÑÒ3Óó;ýRFKHLoŒËX¸”‡Û›À¤í`S\³ìjSOÛí5LÖ§jnéÏ*~åU»ìœ’_óýö6Ë/ça}*Z›}ùƱÈðcðlkHJvç°…Ëìú›¤Š_éûëòŽ­}+n ±vwüâhšQjâZ\]Lªô +ñU†ÁÖ;G³¨Šc}ï8Kœ¹-$'T."_øpsg +Ÿ&îE>„W³Fnþ1±žYß]sy òÁhÇã¿A“?\Á X¡ï·ú[«Ç:’«ž^þ;êÕ•bR4 W°µJ~Ñw „çé‡ß|kÉþzo¶áQDNGuݽªAhêÞ*ÿ-/ÿÏAçþŸƒÎùsŸ{»…ª+`™¦‘¦ÛäÒŸâ }p´JŸê˜øc­-¼‰­8šmOßdß”ð²–ùehšëÞ$5»›®yY!©Â/Bç$è’€„ Ɉ­RvΗÓ­i§Z6ðÍ1,ϧÄTÕ¤¶wÁhDM‡Æ Lâá$´> )ÈM1=~4{¥åWþ(åä}5 +~õõ êÍ÷sí)€×*EW¼üâõõóÿœ#TjKýº·%弜S~CÄ«¹—úËWﵦ]û÷‘ÝYA¤®’ÂzB»]‚.µ.´?µ­u¤„¼ý_«ožá—00Ç[=S1kïâéAŸäí!oâl›„:0ʹÔrϾ ~©î¯½¹; Ow¯ 2ì3 çŽÙ–Ô£éúûãÕ#Jò``aËÝ ZÉ•ýI0þšËbbþgKð7ÿ^†¿úPˆyõ‘©³ð¼}ºõ®qªñ.¯ýÙƒ)»Q¹žuHº†_|ÅÐ]tͳ\|; ­¼7¢jO¶ØìSkb¿!¬çÐ÷ÕcZ.9ª¤4‡DÄrß¥ÒØ×zÃØÕq[Äl¾3Ú–ññpËëÏ:«^þ{–ý…†[~Ù»Iˆ°•öhÁÑ,Ç+£ƒªNJTKlv ÛSäßn23¿Ø©ýų‚ÌŠª™8 Oü +z{TÝɈhظÀ&òÿstÖmeßÞ§i;3íx;µ©» -m)´¸»»BBÜ݈âî$$8Á]ëó•{Ÿÿä9Üßx…äädï%ïO²×Z™›öÆ—K†¢[r€G4w_‡ØA&~ÅB¨Ü0 ûuÙD,Œš{DÔðÈËk¸·Ü›UÀ^/©U~Ý5'½ø¢•\tw¼§î‡n¸¦ä­iC}ÐncæéîæÜ[ëbëD_Ãý!^í­1aKlt°åõ†üöÓ0òá°fÀG‡Ú2N:yU±_"ä·)âs^ò9 Éù‚æœX7>!–½99ˆÊ´bŠ×lÈÜù¾úÛSâÊËNJæo´’? Ò¯ÕÁ^žÜqAsuœê§´êÄ “ý°Ú ±nTZrÍA}ý»ûøáÎ7gfê^l:‰k^ +Wõ⼕‘ùü¿³,þá¼ì¯£ Ò¾]²jhM Kïû—¶Ý®¡–<DÜÛö!ëTÉšš´¤¥øeÏ ˜ô¿üì‚s#’ú×[. +ÒÁ«>œ3 0ý_³¬Î¯tʶ ’±¤o|Õ5<:¬=ùìÿœ +ØIé…E,uÍŽÉ_5¡Š–Tèü ;½eJ…Hòu6ÞžQa²Ìø¼³¢ê—ǽ´‚‹#‚Úó*Xð¹j—l¸²°¼í¿îí©–w×öu¼¿ºéê(š7Ô<]±·fï‘àË&c;Ì‘|žc‰k`ÿ³H¢Î¨ê~ s¾MKý_¦¹=§¬ƒ)2æC]³ål{¿ëEVlû0-㪖ô5¦qˆEzÑùþƸãâªGGl˜äß×lØ2¯âÒ ,éVå³£:bÑJÉ‹Ôì³!6è¾ ÷[œóÛŒÐÎòêrtâo¬Úgßé1Yg5íoçõýœâC‚’{Kʲ'û^hѧ‹÷yB¤|¤oÍK¨\sQê¶½lÌ^KÚpÊW ÈÔe2i +ૈ¤í¾¤-ýgfÉëïCܶFóm©øt€Ux)ÔYxËÃJ¼d!Åý9ÒUx}ÛNmZ³R[—tw‡ý1£Šæ×óŠªGkúª‡óEÖ õñ;xΞŸÜü!À!­Û°ÅÛVXÆg?ºöÀÎÝrCŠ7ìˆÜÏä¶M¦dдk¶ozô%#±x²·å‘›™ý›…u +`§ VhÀ˜ÙVjåù¡Î¶Ç+Z常þŽ‘ü+¯êÉqYãËSÂú3=ˆ·‹jVË´šR­Ä朞èÁå¬êÙM+xò¦–²îÀ”.6±ìÆ—»-ê'nÈ ýú!L€šºõææ`[ékzìÔÞš×#Š¿ÎòUë.\ù‚¦=!ª€%Ï "Ò<¬š;ꎌӣ¼ò»[N|u'ºàï¦ÔG§¼]àÒ;±ÚÃÍøÃIwÉÍI}2)ÏõqˆŽþ8Âã®x‰ TEì_Rö‹M3ÙFüé9<çÞôtBV~ÙÏÊ<íge_[°âÊ`ůÿDæ%\Ýö³…{A\K¨«èš•ð+«ôÞw¢ÊûG§%E×غeµ¹ îæ fCâýA<úßs,áç0²¤¯¾?«(¹²énKþ:Á­{(p­èf€[|ók„yxv´ãÇW¯ÙË:èû™þº;³ƒ £\¾øÕIXÖƒ#²Ú÷Û@<×R'z«^»ÊoõwdüL/~ú…”rvÍÒœºá‚e-Yš_íh€Þ*¾Lu{€5Sš ’< ðykú—qdã?sݲOôv—$|œ"ã>Ͱ:¿LQðèÒoãèç +¼ì‚ä­zˆ‹&lat°ý]xÝÃÌü{Ë +z?­F¥¸Ù%:)…˜°ÅðAé?ÀÓŸ|gÁ•ßžîn{¯y~‚˜{í»~ÐÓ:ÜÛ;2/ÅhoªZ^ûzjîJÀ¯OŽt6¾ÿ`â>Z-Ðä#¡|ÅÍBïŽ2I«>zk`’h`”^™Ó¡Š¶}lÜ–ƒÚ´¨' */1JÏЙ'ͨüß§¤ˆ·rHþ¶à¯»âj˜[~yFZñd¡¿)uMÓ‘¹,ïx=ʯ¼6#i~²o¢Õmp¹Ÿçd«ëŸL ó.~²6'ÿ{ UqàêÈ\S·ÅOËêno™}€¦­«@ñ»Ž¶÷k–ö„M{Gʆ™µç£¶ï ÑaK6|ÉŠ‰R±¬eÕŠ*¯éàñ'´Ðø­øä3~VÑÙ1aõ ž½•Bßô5§ïlzê¬}®…ÄŸeæ^›ïmŒÖõ½GÐr·‘wvÉH‡îù9¤¤ìVTÕð|ÅϜр_í±µ{£tÔ’•X9©„Æ­Z¡iÿ]ä*ÿ™e‹ö‚4È‚Ÿ3$,»2èÏýa\ËA„Š( q«FëºKÌ]sv‘]¬º›„Âç?¢óŸüÚI=?"m¼ég®:ÙäE' 5"rFÜÏãÁþ(‹´lÆ”zxw½Âš»¡Þæg;~ûëT—êã“´í'Ö¯ÙIuËRÝ‚›»b&WÎÛè V^Kl@ˆ,ßÌh! zDÖÏýMïѹg"âª{;.pàϵsFrqsòË%ôÇŸ‚xÄ·IyÝËØ"ë>CئŽXvܺãàŒÿ.uZ>;6ýˆœøÕ²ôbE×ò ˆG)cÈ×°Üøãˆ¼§¿N©A•nx±•–xÊÃH;3*¬¾’5ÅNÈëbwðòaeÃÃÁ8yç—mÈš/“áfQ¹æhI\u³V\øŠí¶á_ó¼Áõa6KA)\ÿ÷wûlÑ—9¾òÓípæwù¢¡ùù”ªêNh°9vÒÈhÐ.Ψp9ûbÓ®«)~S_ûdÎÈúùW¼Œò?]´Š?<ÌšscâÖ»Ó +įöò`kÆÉ¾æüsf\Õõ1QãÍ Yó½e5è庑ìxc _™V´§n:ñÅ+VdÆ¢•?o£T¯ºÙ¨ý1.gÝÇ„Em€ö4a‹v‚<ÖÖ¾j%•MÉÛbõè´_;+¿ûÑF,ûs€Øp:îîù˜ŽŒ§gf¤-ñ€ž8ÌÉ=Ýæ\Ò ÞýÀ)rBÕ‘ü§“Qq ‘ñàD´§öõg¶nº»ú~™{1ÈNþMÞrÿ»¾†§ß[©'­ìâ«™þŒ©ˆ=ÿýŽ +:¬5úW˜ý:D„ìÙ %Kªêç“òÊ«nAíUtñ»ß{š3sâ ΘÙ:°Egü–V\É@:ù“_ÿ#)çù±aAõ=;£ä.¥èÑ1XÊí…5¯~±3ÿœêiº»b„¦®˜²– Õo? áACò®_ ÄÝÊ?,ÅÒövV Ž[;¬Ù36‚hZ¶´'º²iël{°ÕKºæ„yUcü¢©=aË‹)ÙñÒ¡“ƒˆ>ÿÂÌò¿–`¤5>ÖÞ**ž¬›ke¯yy‡}œ¾N²£4LÔD*ÞôRÚ6=Ȳƒ ñm†Áÿ¦Ö½¨‚­ ¾vxî’[±dÁ–/›ñÅQ5*)ªÇízMŸ†xÜm½b¥Õ/™$Ä­ }z”9Þ}a"æ_Ô Òþ˜Q@VL´ªm'¥q°É­ ¹=ÌçmøÉ¸57¦qنȟU€b·|øúa:ê Á>„Ѓ0½bS6ü 侇Ôìc•_Ó"s~sRKNOËëïlÛyGé¸ s;?D¸ÜÝu{ˆ_sãJwFؽQg/$ìÛáPVäªU+¹*ªD¥KêøxåuøÂÓrTÍ”²ôåЫvjÙYóëcjXü1aCìÑ^pÒnvÍíp"5Ò}uø;£úýï“Ò¦×㲺ûý2MùÕNÌú3À®¼‚^Ïô “<"ðKtQÜä‚7§¶¬È¦9eíÝ%MããÉžò›} §Çú[ž vÕ\WÒ«/'=¼t“ñúשȳ!~ýu;¶üo¢ä<9ïåñò'crnŽ©yzù(§ñÝñÜWׂ“ïë(©½;?X{'$*¸dÀ%œâWß:¦êxüú©-eÖˆÈÓᳯ†„U¯xȾŸ_·Êv˜¢ÅÁª;vrÂïãÒê'«b¥]ñ|RÕV4­hLÕÇÍË¡¯w€›XÐ4'9™Ùç%/¾*H¹ÃbTÞ¨”¾ª':himÄøßgûóoiÍÜñ€3gäeƒÖ%ìø™¨]ºæ@Õ Ôú1Œiü:N€|Ã6~§áW¬°<€a.Ïë Ù»n2xÝË6`ÿ°r®Eå­qKjpÜ‚ºjÀ5ÌêU»mÕ&ÀÍëè Q ¡`Q‡J´lÚì âí’“±íåàç”èüžÖÔsjé›OaV碜´é¸nŒIÜ!6/YÛ6Äöý‡=«‚½|¤`hèŠ]°0Øðh¸3ýʲ¾éõª ™5cÁLR¼jÇ—ÎjaoÆÈðo3€Ý[Ñ¥S +pŠœ²nÁ†ÌÙ"4ÿ3Ï‘}ˆP°€ÍUmz u£„ŽU7¦õ`ŒÉøa1>†è˜ýµäÄU쇌aëÛGð¯q:ùó¾qǃ/[5a²ÖšìƒÇyõWv½˜r· —AcçTÄ‚HOÇ‹9EóÃmã£eóÓPOýí±î–»3JveXÎ-Ÿì%¦,©•s‡ç¶ûën/©Úž¯Yaù«.hú„¶þaHÞôtŒÍØ|bÕCmúÐ îêÿ4.Ò~·°1„m\²u¤­{Huó:lÞŠ•æd—_ì¦þ iI?î¡5]›í§ˆáï5¨Ü3C‚¶X«íU° »dÀf¯ØHUszÈ[€âÇûÛãÝ]2ÔÕ|Ïê»ÄØŒ5#,cÓFª\ØiªŸ6Öyçël}CâwÝtÄðá94Yó龦çLæ%¹ì¶¯Ÿ d#îu$ÿ0Ð^}#"Ǧêˆg٥ßA§=?‚Jy~“òú$·4õxÝEx~Ê)vUÂ) !û½ìÑÏ&tâ/f\â <ñ'5:ý¼ŸSvgÅ„«ÊÛßÁÒï|ßJºõO„Õõ9Äb®˜ç´½œ”äý妦ýU#J'´„âÆÔǧ†¤EGˆ-@윔Ô= +² ® ´¿<%k|ô½•xrV‹Ë'×&_¨}wëW#.÷Þ–™¿¬nÛµ‚ßm™kß›HñWDuwO¸É¯…-ÿEƒÍ‰û4DÄÿ3M£þ3Žo?ð#Š7í­™Vò%:唪íý>硞|ÚBθæ =XèHÝu¡Ë—u°”Y @y(Å·Ûó6ì,ü¨ –7¯Á—û—½¨£ÔnبÍëLÁ¤ ôNL¹€O½vD O¹?1ÊŸêoz±å;<¿Ç¤ì…¨H@ƒÁw†™Ô57êâ”^_4À3ÃrX¯³þÝ¢¦ùµ™rna°úþ¶xÿ ¶rA~ðPÒ‚¡ñ凴jC”÷‚_ŽIZ/ê )›LÕžŽýaqÿ³Àé[sÀÒ7ݘòc4â—0ùÏ÷¯ÿÛ‹óyœIý4Å`|åôü;ÊéÝòa«ÿ™dqÿ;ÍîúèÃ×Í €^Ìô4Þ›ím}U´¿Xд½ú<†o ©Èù :rÍ®—O[51–tØÌ‰Þº›‘î² Ò²‹‹Jx⌚”=Ô~9݇z»éâ &A/†xù§C]…g¼¼³+æŽôm¹m'À¦ï„¸‚1-"yTHÜ puŠ6ïã(¹îëÈÞ˜cÑËwp*®®)e³\îxoÇë «ær´·ýù‚“>Óßþ:È+<7¯!W¬9EL€Ï*6ìí ‘žÒ+ãÒ¢‹óê†'[|Õº—š„¼\ ù[ˆM8¾fÙ†ÉQt¼ïi}<¯E¼;¬­Ú 21û£|î‚•T¹æbã·}<êšÒ¸`£7 kÙ¥®~Ò;O7t¢’õ»‹^õä°çÚŒ®éYDYw{JuØÓôfÓA¨3÷0|raT~nņ©ßt´$Ì)*o užQBOô¶¼ûAKûe\Úø$¬%—µ$üòüâï1º÷ç6ŒÐ´pgáµ;í/üÙ”üGºAïO9™-·Fd´ÔÆägG±7wÜHÜ¿¦i´%uõÃqaáY7#ý×ÎÚ»Gƒ‚Š'þ^PbköÃS”ü'Ǿ’‘_†ˆà~b㲩íý <þVѽãü‚{G&E匲gÍo¯ž0“ò^î Q!ÛNVGT Iöq³ÎõƒÞ|O-¸{ĈK<33PýŒPúè«àõ¿¦y}_gy=_&)„Ý ¬tÕ Í–ÖÜÒã²NÍ9Ȳ·gs]ü~Z *Û±µ¼]RVÞZVWߟ,½ÕÓüà¯äú +éÆÖ0¶Uøä$"ãñoÁΆw_GÙŒoa.ÿKˆÍÜ"A·üðÒ gSÜÿ.©_¦©\Í«­¹o®9ñ¸/“ÝÎÏÓ×ÿ¬ +ìÿ»Ììý‚VÏkKnmøÐ-=™÷´¸Â :HƼ¿l„¥o{Ð¥Dþ¿BØÚ*{ÍÅh[²Ó#Ø÷ëNvû¦ ЈV< ïAÏ¢òë6jÑeGÆÉ©î¦gË6Zk@Òp²·ñɇܸqˆÜú9D‰ÐÈ»C4ôœ•R1®#æÏ;yäOw׸AZrwówü|ú¶W¼cCæ}âj·<°œª`ÇÃAM<&Ýõ’‹O÷5½ýQÓž|Ò…OùmBœkÏÏ&/9Y¨i5âݎذåÇV|P_'(Ø©}ÉËWßY6€ ·ýØêP?è麓Ùt±à~|óáÜy€ošwTð: Q§Íð´í‹¾ê¥¡FFšÑ@¦ðŒ'¦d{„YòR›FᯆeO¢VíšCÖu87cQOÈîÃ$˜ôWo[Æ/JDö¹qyûày/€¸öð·ê±lJόڈ¥K:hÚÊlˆÚh5»#,âç0·so˜ÐºâFäš¡mÉÁl^÷Qš÷Fiˆi3.oÎA®\tR«÷Fûý  ÖXqP=P»h ”.šI%3jLz°ùÚÄm¾ng×ÝY5 rGE5·Í„ÌsnZñôåÔ!wRE/îçäú9y“bÎA‚þ2Á /ØÐ¹³xÆ¢[²b§6­ºY¨? ¼q¸·åùжåÕ—1Â¥N™¨Uýȸe'­ñ06¯X‰%ÀÞÇê) ¹ì²‹U}wÙˆ/Ó“+úqe眺G{~*ô°×Ý¢ ’¸jEå,˜ñ% NaÅ'îZÈä“ö^nP)kè5¢s{ÞH,á¹´îÁ²¾á麥#uÖD¯¤Vß·§ÿ6&=‹ÂßOö4ÝŸ–—ÞÙó¶ænè¨Y£iBO*^ p(#,ìšP½êÇ”.ºÙSê–ØU4u/€([õ!‹¦-ˆ”) :ËÀ«z¬ÂfÝwS7l”º ¹n{ˆ¸˜¼>Ì£©uîΦ¸ƒ1éÓ4GðišÍÿt8{ÏGjXqâ‹Íø‚¥lÑÎõÁ_Î(IyË&tø;À¯¼<ÑSqwNÝðÌÍ+8î­{ºá¡4ÙÕwܺG;Ã4Ä޵顶î‘eÿš†T~ 7e,9Zâ?Â[&RK"jx⇺=L‚ˆ`_&àƒ¦~Ã,ØÁ7üŒ›UA_/i.Dî´²ùyD yµd'”ïúxÇÏ€öà^=ì¹à1¦Íì–´h§7G-”º¥uoˆ þ2ÎbîŒr¨Q;´>"orY‡ç'ׂ\ʬ“\³ìÀ,›:R¶Ü¨¢-?‡ìj}<"Ç®9¸È ­zFOŸ7 ¦ô¸Ì1m\K-[ è“R‰_‚xµˆÉQ«Œ±dc,D©Ö S猘ìÃ5Ùe‘wý½ætiÐvXë³î!Ôí…˜äe? Ò³*g¬ÔÊu?µuÃOƒø™Ug¼´lE—¯ÚÐE›>Bí²Wµ` "jBfÔÉ­ø¼H×àa_½%'±éóaoßY^ïÚHg瘾2ð›Jd‚WÖxwZƒ„|;<7Ã`„ ¥ÛŽöôM;¢dÍk˜Ñvµ†R˜žÞñÖ#„ÿ3ÅîÝrܬªö¡‹‘ó‡•tʈJ?»ì';AóvZý¼•‹œ³ñáË@.Yq°Á &z휖éCÆEä°Wó&b阆V82@)ž1Ò@Û#ÀkM5â +Wm´F Ç4owò£.vÇœ[@˜°u“Ji˨VA ©%­³FvãhWG¢»é 6¬»éí#r¾]~ŽÝñK¨W¸d&Eäuw¼éM ”Þ^u«ç]|Ü¢¯‹µ6,à¬ðe´âe"V|ÌŽ%'¥vÍ…Ê[6ƒâ—œ°ì•!JÛ°—KïÈ>Î=¶i¥7o¹¸¨5½y3Hi_õ“@ónZsÔÉ­ûù¼í1~çfˆr ù°çŽŸÜ²¤B÷‡èíº`Ãå÷Ããæõ´Úy »5 Ý +vÖÝ Kk¬ýhFÝ»dfmøÉM£í)£}­É{#4ôº›Péo|–çÞü0Rûúc¸9c7D@lŒŠúæ\2á‚Q7¡%W|š›?Owª>DhÄ­4oËß–ºíG”ìâ¶„ÚqyëÃ%32çCˆÐºD—oùp•ûÿWƒ®^µcË& qëJÛ΄ wÑÏ¡-¹Ù¨íQèCX ûˆß[nôa¯’ü%7¹~ÞÆm_õލÚs}½µñ+^bëJ€[Z—Øš5´âæá=‚ögC"xʦ¯‹µÐkgt”‚y3µrÆLªœµ2!³N!sÎÓ-˜2³›\BÒ» «ª?bÎ;X­À~U.Yñën +xw”Mû0ÞÙ·á¶kœf„†Ý ®h-HiÝ +1‰«#4ä´‡Öº¤#7BLÊŠŸ³Ðª.Ž)…+~qÑN(Û¸aÅE¨[´ã«íÔÖͰ}L¢]ç=´–íP¾7ÎëÞ +á!+~BÃè þ}H‰O™<œ¹Ä6þ3Ó¥û:#q~™îRœä+öC\áÞá,a>7¢âTMh9ÕQ3ºéI¿LŠ KVDöœ’é'ŽÉÚcg5°w;C<öš‡OÛéêÙ–ûfœÒÎ%¼æä¡¦ ¬ZGgǃ`7ìù„“¼dg´-ÚÅÌUW¯lkˆCÚ‚d­yH5‡óÒ<²ÖxµôÚ×Q>3(î_ È4ËþuÄ"ÁºÀÃýŒ¬I¯!(¦¥ÏÈ©¥[nÊH)5 +Ú︺á/Ç5äÊy;ìEÅ…±É3:`}ĦOao#È&®Xè)#6oRNYDüz ‹»êïb.{”U/¶é£aöÆéÌÕ!B˰ +›fé?±±Áq“>x´Ÿ–µ`¦UíRaAqÑËêX¢Ãþ‰òU“\áÆº=Ü%Ùî±|9¬'FV®Ú[Sæ Íq3š–§S€¶Ztp1CJr±–TyzV ðÀ Óƒíq hBxôÔ/®»hŒçÛ>RÓ6Ÿ£&JÍ´–T»dEµÖž™$#>Œ³y‹>6*êà~.b®ø{óYï´ƒœwó Ën6é D#~P=«o?oAe®¹( -?±êÄ–Dõmq€öKÞt7½Ó^Ÿ7¶¼Þt h­M ^¯ñ™ë#RÍŠC^r Ë +'”øô9#±lg”×y–˜–‡:¥½„²›üÖÔ?¢hc¸S°:£/01Rñ¢‡[l-Àcm‡Eƒ @W™èU+ÀãëC\Úœ‹‹·u¡"æ.茅‰hü ›V;bTp#f!t°ó¨ ·hAniðÍQk=ÈÆm s(û3Ýž­)6ocŒ×¹9Õ¥ÞššwfêÝ w5HÍ9IU=¡ ¢çµÙDÄt(ç4 íª·Ã\îÆu6†¨¨•!&:ê%×/Ñ:6Fy=cª¶øqMó“µ ÀÞNRýF€Ù›àŠ¿.tÙû¬(e¾–y¦Íôö)=¾¸úú0—½ætîw nuÉçýôŽY'®hÑOjZaáç]ø’%{Û›‡õça™óc¤Çwî6Fí¬¶ˆŠœ=©ç7{xÅ|PÅ©! *woˆÇØ0Ыvjóá™ý5€o6œÈâõ€DìS1*iàô³5±çíØÈèƒqyd'$³,ùx¤ µ4¤däeÌŒQ ¿– *ù­«1ëæ¢FÝõnsH;@Þ?üNxÞÊlœÔêBÊÎj_/)= n|µÀ²íĪE+½iÅÍÅMhx ã¦^RÈ †D äüE{'fÆ*cͺÄÌ»mXKšÖR›gÍ2NØlTº(Ÿ¸3wAÛÙ°Èè˦~~ÔÞMŸ2!ò쵯÷Çð ½!âˆï[¡>ïšÑÕ æ ”ŠM/µe7HjÚò—\4PDO.˜µ1[BÊ„’6\ÛtPšÖ¼Läz€…Y÷Ó!KnZË„ž7°ù–O 8ìfQ·CdØ¢[¾â§Ã×ý®¨¥ï’°Ò­=ÂÜ!<ï–ŠÖ|"ÑŠƒ‰È¡ñÎÚ;+vLÅVIˆñÕ.nýµp_Û³ƒH§|{¼³wc”M^örKNzÓ’_2géH^=ì9âuzû ‰n4~ÖÞÍÑRÇŒ¼Æ™C[®=aãwÌØzøs¶G3‡QSñׄ‘‡Û˜i6€˜¿;#¶ïÎti×C,*`³“fZÍÆº7A‚m‡±uskÜÑ/z +>Ó¤µ_j“÷Ôª»z2Ô|Y²·¯»ÆÉÁ=ï§—¯ûeƒÛ¡níNX8°3Áë^¢B7ÂtÌö„H·3) ìF»ý[4JÔÖ‘=gE/ ±ãvf“€šîë''G4ØÌuÀ‡—‡˜È:iá"·Æ²½)©{kRl]*–†x¼;®lÞC‡/Š{¶¿Þú?6`Vت­adÙn˜‚Þé6#2û¤—?g%µl‡Åºí¿{'̤D픺1=&}ÖGlÚž¢>Ì3$«£4üÚ0¹3Õ©ØãwíŒãÛv#TÌJ@"U÷ÁüŒ£ÇWw*²5$Îã°l:«QP‡åì,G'åi ›—:5(kžÒêA^àîë,±ðÐ/}üŽôcÓNX¤X r‰£j¡GÅÎw«HsŸ¬àË’¤èkN:¹hÙØÝ¹ãumX°9+·1¢”Ô:Eýyfn_¦ÛŸ+@Ñn¡ËK¾Ó’[žmúz¾>ͪ¯ß4fA=Ѝµg Æ=(o 5fÙ`³¾K^àê³"‡u~]Pë´É ÇP£`ª²ñ-„›„JØî*Ú3z Í&ÐÕú»{ë¢:ìk„Åü÷[p8+d;"T•âZ·DYåíV5zº +gmôê)*mÁN¨^÷óX+€_‡ ¢{펿ê£•ØøàÔI5¥uÎÒ‰šµsQK^>s?"T}›ÛClxá¥&9݇{´t «éåf꡹â“K§ÝÌõ P¼ìb´Ž*hA>cVM-_X×%€> Ë Y‘TÞŒ_ºä³–¼<üœƒž2 ;†5‚†)3£vÁÃ…/¸¨M€ÖϱÐ*‚:q‹M¥Ci„Šbgow…_ÑÛêèëkt( t{Ÿ™aéqл ýïEœÁžŽ9‡„²äç æƒ<Ò<À° >jóú( ±h‰å ½c!°š‡1™¼z§bÈdp)ú›ú„Š>WO#ÊïcÚdg1­üKµ5¿ck/5¢®†i¼äᡇˆ/©~g’'=ì}µ?)2mFô•a6~!$éŽøDd¿¹mUHkƒ½unEOÓ„½‡>î }Š>ˆ@…öÈ5¯€úý›‰1·®¾=^^ŒýÜN»ÙKã½s)¥ q»Œ:ëRW¼ZÔŠ«ž²Sªƒ6%ßh4Sûû52±&WÖm«°ŒI œâ +IÂÉoŠÛï¶WTçcîf/VæUœÃ¶Öþ=ÈgÄ©¹]Uzá Á¯×ö¬…¥šU€KvǹŸçøƒûS,ÎδԶ9Ñã\íQO¤‚QZjTi1J©²¢%y«ïU7é h…@š®“íƒ9özÖ¸­“´‘¹öÇEÊyße2w+Õf·bŽÉÍסˆÁgÍmªs0°ò<¤¹ïÂ,ô‰”wàŸ +rا ++”?Þ~ ¹p-ÿèËu?”å N²ìF‰8'l¢&*•×â2iôÃ2‘bFE‹(‚ýb"{#½‹l7]ÆAL×ñ櫨¶ÁsM ò˕咿ªÊú~+,“ýpëIUÌÕkù1)ɤïÁç%©p¬)l5+VüRÙ„™×6fì„LJ®ZçåÒ{§kÌÙ8iúQ}»ã\^I×O%å}¿VVk~.*é;þä%ôÈß×ócž¼Fyü†sé^]ÌO§Ƽˆmú¡¢ŒûÜÅ(–eL»xè9?çPuV)%ºr ÏWÀ¤»ãñ$ï#o1‡ÆœOçóÆ Ydó:N÷šA´Ä¢ ÊK%…Ô¯_Š;úør|LV\åÏå9¨ë¸Fò›ÄŠœ4Û´ 1oÙÁ@m¥ºå &ì´Ù }òQ´Têô„Û¤½+YÏ®‹çÎâÓ,ñ\’3Gð=©-£Ÿ¨ÎGýT[„9›ÚñÃÛI¿ä'–\ï%)rûð´*\Õy"ñ§ÉX†ÓdPºq}ýAW®DS‡žÖ5^ji®#Èã±õÍúÓOžÖ}ø°üxa¹àçüʾî=ª‹ùë|z̹K¹1/“ÈGÎßiŒyö +} …t>ì&mÚž¹¡îÞ)70É9ZM°KÒ?‹£ð§³Aו„d≇ê'½CýXZ©:™U$ÿþõ{ò‘›÷ëc^$àŽÄ¥2œ¿Ùsý &¦¨Êñ¨Íz‘‚U=P‰”¥F‰0sDMËU“2=j9\ÖB°Ä³D~8¹ã¼^R-<[Ûª?ߨj?“œ„ûîþ½Ò#çÎÆÇܾ™ó8óû¥ò˜ãǯÇ\¿žq¤®Ysî}ýäÍ{µ?gfaÿVˆj—FD’ý‰Îþõ!6eÜÄoñÍ=6£K®× ÷ö+"L©bCåMfñ֛¤þŽè +ÇxÔÕõ\ˆY{2;ÿkzjÓŸÙ)…וÌê%§3çcÀ,%AÒo¯§‰¦ +0œÙ„fBøV^ƒêç¤âÑ”lÒw/ÞµÇ\~TóãŸÏcnß*Œy•D޹õsîz^LFü8 ¯z¨’è«Úî6ß'Ï©Qã”*ž×3ZC,guЗžµ‘·jàþ3©E]ß½x ‰y—J8š™Ëûîu +9æò“ú˜ßk½Qóà9,æn,æÈÝðï«kù§ûÄÖbRµKYsN¹4dïåZ4âª>Å`QʮŒ_,ýZØìú9©Hvì~)æ+U1×îÔÇÄ'ÓŽä°¹<ça4oŒ±iÛ“Ãv ^«÷ð%ê™!­$3M¯ˆ$Å}Cý¸§¼UÞ[øçÍW¤/Üm8òôúxR©ä÷¤Êþ?JQC—+I#wŠÚ;ít{Q¯v„phH“F|î”¶ñå²]³>ÌãDìŠÑhJ5A2O>Ü@Œ¼ƒÒç^5 G®VÃÜåÕ(~¸ñ¨åÈÉ?Òcþ¾YÄæ¦£qà¿[Q¢XQ§ü}@)¬ßò QG'Æg2HmF‹H£5¢ûåæZ±ÔSι²i\{<¯¿ Eiï5@”WÒJX¿¼MEŸÉ.â^©oí{À¢²\27)d°*|ò@#GúÛž»„•×G Øa§ÆlP¡dÒ\2Ž~ ¡Ÿe +&ŠÚIþØÊÙåÌì–S®ó¬ú®ºŒÂâ¹lm¡Rjj°öVE䪽!|ãþ0¦zÃÌŸ7a2ÌØì€çTðJÍ&-M§×ÀåÊRy¡\Úm/c±qhbÿ](RtŽê½ƒÆÉ_ðø²$Qì­¤w U-Ó×ûTF|ÔÖOÚô !fÙ /œuR!agßjpXu|½q°£»»+‘Åèyˆ$Úï7"]wÒK»O¿MgK/îúéEâx\êû¤"îÑ÷¥'’+»~ÍkQýÑŠó?éí a¼fG׈†Ûº @–ÜèÊ%®n+Ä${Åxu??S*•ft©Æ1ti´ÍÆuP|AxÏÝW9ôßþºš{äâµ¢˜çñGÞ¤!N–Vqÿ†B·8$ãk‡l jBKÌ™P_.Ù Q­vÞ%@Žšx5jåÅÀ ±QÚç©ë–9J¤ƒö‘ÜPÕ)R&ó¥úLŠ$ÛŠS¿lr¯#IòGL™³ªW­-Ñéú«]æ>pÄ)Aí…دsTê¿™Âϳ,þ˜‘\è2 ÍVc§Ùª£è{Ë4ÒîLe8½¿¯7K>h®—«L­}ƒú:™Ì\Ú«öáû-v¢ÎØWg žOš©¥s.|ÞÍC-ºØþnèóE©qmˆK[᳦¼BªßÔÕbè#&÷±ÿ–ñ‘·%Ú"J—9¹§¼ÙBµUtˆSÀ¸¾D\§3 ×iÇè6¿çHu‰¥¡ÒásÛæB=½ä¶78mÝnÙïTíMI}‹#=:¯]Ñ­Õ"”êzq¯±X83ÅÁ<‚ +âjaèBr1õV~=û)”ÌïÖÊ‘‡7ªÁd†Å¥±vÒ›k‹lé¨_1p!cf bXßÙàSIjüZi‹GÕ]«é¼V +•9ƒ"sYŸÐ\­é1µÚzuÍþ¾ªIµ´uY/„ìxE¼ýÑNÑ–ŸÚ:£ÁåÎk µ{~s3@‡MZ¨å §Ì&¥¤›Å„$§É$T©u­ý²Þ,­„ŸâRóË|†nˆ_/ƒN9û¹‹.Ò’O€_ ð{!.ëc„ÃÞõ#J'äå7#ÒªË\Þ”Ÿ1mbÕGl]È!µhÒ)ÀŽ;Ää ‘S©µ]WñÛ.ëE°ÛŽÁÎB·¾·mÄD+ +é±)Q›˜µéU8ö\ê‡ ¢hÛÝ¿di;mìx7c£5.û­óþ~ã¸UÖ3J|Z¡SÑY®éé/‘wª3 í ,Vu‹DµÇb ê»8‚ð•){ËéÒ䈺ûÓå²¼q»ªk3¨t¬yø¬E ¡úãpg×—°Xw8`Ó Î•WÞóH«o¸z;bªA¤Jî‚K[öûÛº†¡DVls#òׯ*ð¯x$é² “ûL= ¨sª´„°±Ÿã郎Ž2q«aÎF,Yñ’ê—ÝÈ’(~VÕüxˆÿ6+²nþÖ 6Ì9)µ-ì}ÔÒœ°è!ÔŽ»„h §ƒÔbÊ+ŸGÕã20 +¼*ì[Ÿ‘S:â㦼,ð¬‹Ù²á >Í +Ô[AlÍš•w0I§}žïù0+ îNp»£:Ä£d•{”Ô¢1 ŽØúhn“lÖt×ÌFö ÞNU«,8£Vsù•C|ÎêW°fq£ÚÆW£‚Üó£Òòw³Ú†§vZÉߣ]È”=¹d"WϪ¡oFÄe×Ãݵ·Œê¨EVSËÕdУ-»LôqT<ø%Dï››ãTu÷´uV­Ð¤ :gÖˆÌÕ oÌô6gý{”>ðA³vܨüm7ªð`Z êç\ôÆ•€ðpî£a/BǾ_¶lo·á†eì áª÷„ÚýaRsÔ‚ÉYuÑ[¿ŒÑPßÂdØ—1JǦ]6­†%N À^MjÐIÃ}ˆ×3F|Éœ ?gD¦nzð5‡=¤W-Ð÷ †ö¤9`íg”íϧ°×SZrᬑ¹çA–ÖÐø‰ †qõÛÔá\ÓŠý!*|ÕMkY0Òª&U˜ì %ºlVO“·<“C_GTØäq«6ª·(ÙSzRîš»O±ì Ö½xЂ©öÍü`þõ{GáÁ‡úy¼³ïkD¨ü|Øg*Î^Ð5¼ÞñБûÃÖþ(“½æFÔÍ»°S.!â”Ñýz^S 1gf4­;˜íkvlÝ¢½½`LJªÚ  +÷T0p=Åçðurüž4")¼½bjÊøFÖî “¡›nRëÄ@Ó³poíóö^˜‚X¶ùFϘS‚÷|ȪÃùûC¸úøí² úþc˜Œü6C&myÁÃâü«s‡= Íov=ðâÿLQ;“Tü¸•XÖ’‹¿Ìò׬”ÙÞÚ»ª~vñÕ™Þú{.TñÇajÇ‚Wçä–ü=g‚”lxI³š¦G“å·Â=EWgä%7þ'‚mýÓtî&ƒ èãòuNâû4Î/ÞLŠó¯„ÅEW£êš'DZà/óÜÁí1 +ìÓ õ¿«\õ·)¦pÃÞ^>¯)‹›Qæ]j«ž~ aêþÇ·ý{šÆÚe0£6bŪܶ?!ÔíÏHÜûÓü­1&mÅCh˜4“Ǹ’•ñàBP"™ó²  nFë’ƒÖ´?LF|#¢? ã;>x‘•Ÿ‡ÑÕ_—„îùê›[Ftû E°Ô+&\Áí3¡h]HÛ¶¢óÔ¨”yMG”ôÂN)¸°geA·tøŠ;-m{µcAæô¡Ê>ø…+ºú—^~ÖyAõãc^jÑÓÿŽ1éßF‘•kúÒ; ƒ¹ç7LÕ·é»>Jó~€…]µê—Lÿ;'´ëÅVîûáy«¦êç󪊇+ÀÍë¡oŒÈôO#ÄÖ\ý®‡X³a§Ï«šŸOö¶Ü_Ô@Þl91%Í/FÄUWŒð´)(}Ý O]Ó‚b'EÍv—\˜é©¾5 xáaÏ•o“ Ú–ž;9Pñ*"/IÜõ¿„i´¯cèÖMKÃû K]ì¤ünÍGƒ}šäJþh>N±¸Ûay{˜‚Øñ!*>…p-»\ÃŽŸ]uáëv&9ü½)ždÉyØ »é邲îኪþñÚaW{ú—iümss܆©=1Ü×ôHz}ÊF,}|`£5ìXð{\ñL˃¹ú; ª†ûËð‹%&kLÒòhBÖötßÊ„üãg£¿±xËÑôvˆ—úç03ùç1^î… ]GÎŽ“Z3ƒã—ÕU÷—U÷ö ÄžÃ¹“Í 3µq}ÕÀ:5?ù 4~ Aˆ†Øè@ö¹Eeáµ sýË'"{߇.ÝuAÒ׌ —;2Àp”¶U#41ªhyðâաμ«c’ÒËSòÚ[Ὰ»=à„ßWTÄ-=ô]˜›û— xJ×ñö¤ ™øsˆ›!ÈÉþ}ÎМè•Ö½§žùà$7ìX±Åëú¶Ä%eéýˆ0óz€™rf„›ñÛ¸¨ìê¶W¶¨mÏ[îyÝÒš¸ãèH_Õ´¼XWƒž/k[ôÔìó}à¸SÑÁ¦Ìr¹Ÿ}¸º©žâ»£ÿŸ£·|k3m×¾ß÷yÖ-sOÛig¦2u£B[(ÅÝ]qw‚j”¶@q qàNHBÜÚ̬µ¶÷ßxÏ̶~(D®ó8ö}ÿ]rÉgVÞÆŸñÈaƒJž_I¯tËèeá=슲MÖ@ùh1Žy8·Ž‹ø{Þ9j¦_C+Ûì¯X몽aæ×:§xÕ~9)Û1Yûp æÞâ«¢ó[=5·A¿”z <Ìdcñ/ëý¨¨€Ž‡:24pÝ3´\§›äœ†Å›‡ËY'HI¶¹ð= ÔÕ!RÂööÑþ$!Å­á!\J&twúx½§âÒÊ»Š Ë]U—y“³?‰´LÖ<ö«éeA£ò£ÿsÏök(õÞÊ«Öi|þ¡±¹Õ)cWŒ“̃ˆÖQØ=›Ô +0>%»vû}u”OAÎǬho“ä–³6»JïYFjv{«îÙÇj£ƒj2to½ÚUy%  ¼Þ§#¹ÔèË,z«é˜%g{uŒr†Yµ3¿\¢£€ïqŽWêE.5·;‚Ž]~SzÕ>ˆwëêêK uG+°óŠÍ#”ÔÍ.T„s‚_¶?JO±Œ‚ã:¿½?‚¼ôqCÕRuz³‡ø8 MýøX·ŒšãQÐ +ÆI¹ÇJbá±TáÒvÇIñk=ˆÛA%î›c–í>íƒ^Õ4§þ8B½ÿ¹(ñøþx5§JÙ ØÏÍÿ)0Ë‚|40ªŽç©¥^&i´êÖÊËüŸWÚ Oîöc–{Y©K¯Q׆)‰»ý¸Ø½aLÊþ(.nûpµrq©£úžu˜³ú÷èâÉ?ûQiß(„Å¿->/¾h꫺éš!fZ¤¤”éÖÒ+½ÄÔCá9ïääù照知~¯ªKý^ߘ÷Ë~ì~`Ž”± +rÄ8+å?ºö¢K¡6j¹»êÆ=õë)^öwsâ¬ïzñÿ³Ó½ã”R -ÀS÷G‰¦aru‚…³OQŠÆ¹ÑßI¸wÔ6Fý°Þ™÷«[EɱË8ëÝ”ÜÝnLÊŸËuÜÐ"ŸäPbSö%Ào +noö”ž_ê¨:g¯Çlõ’’×ß–ßí+ûÝ2½¡mÊü~š“ð#ÈÊ7·z+ïkÚr~Ú@G{æxÐàèÛ}ðˆ­÷•×­Ãwõ ÀDìê•~Ä£1Aîæ)F‘_/À»T쪭D¤ñyæ9Ë0$Â>R}Û3‹Ž;4²ªù׿ßVÄ}4 +È 9ÔZ™WEÈÚ(º²õ.÷¬u´<"¤'–j: QÕQç¼J:êËZ]Ý—>Í%%¤ZF€>Ͻ4„‹ø§e +W:‘wïÌ¿g[Šü¹*`~˜gÕZ†k©¹)§¦ÈÑߪE)ßn÷@Àkró¯ WWßC¢Ž—9ÔÏ›uÍn­0 ¤Û—.¼Êúe³¯ørh•AréYÄÝ1ršC.&»Õ-/‚óu ­ +Xõ,‚u·×[puñYÆ©?·[z¼ó-of¹X¿–UX BÝ +Ô£"—/Ò!!-¥x»·­úMÕ\uf±~u«—½ÓOÛí£Äk‹O®½ƒß2cmã„Ø­¾Š+ /2~šoÏüi»rÍ%%&*Ä8×·t»s×.afÙ§HIãˆ{¶ñÊ›n),~w1×ýãl]éo²Þ¿»Ý‡¼gB>°Oaböa··ßÕÞØê#Åp +Nuá’¾Þx‡ŽvLqKlFöV?úª!ÿ„”÷õnôÒJ7)²ŸW~zýÿ•r*¯føU ò±ñEÎ)ecâ÷3ü¤ï5-&U‡ú&m’‘cŸ¢ç¸&…Ç+3$ã–[†0g„‰ßŽ2£þ©kÍ;Ö=Ê4ŽS·fÿx0†‹zc®¹¥mÊ8½ÖYx{úp½«òÒòkèƒúe‡uüeã r”®½úR’ò|sèDÓäîbgÅÕ.bÒo° ?}46Šƒá9V3È'3ÍNP#~Ø{ŸyÆ5~^•šÁ*¼ò_³-÷z6Ì:…c¥|Kϸú#í꿆qñÿ6õ€§Ð‹×q°”ó_-¿ƒÅ~Ù= !äï—\_éH=-¯{òm?åÞ¿µO3~6KyQé/êöÚˆºEPpªXÔÖ»ŒÓcÌ{_ÉD™?L 3Oì#ã2B–þYÑ倖YЃü7‚x´ôß2\õØ1Mœ™}fœ›zÚ£¢•n×>Y~ÿ›y¸öÞþ6Ê4„‰vÎá2ö&ñiݤÌKþèå\‡ŒP¶þ¾üÚzäÚ6Xg»ç˜Áý&Y§Ñqª¦ìSKo +îýµÍå-3ÀŸï†÷)4>/û]Óœöp‰G ?Ó¼©z0-Ìù18/ä|Z«krHa ûC̃ÐG{ý‡®ixŠWJþs“Ï’w@Rù‡ß-¼Gg~Ø~¥ +,6?sÈhÅ;%u ßuÔÜøFÙ’}=`äÅUß,tBbj>"¨æV{¦a÷½*zð÷b÷)m»¯ø¼¶-îëwØkÿ§÷ð›ÕBâKzî·S‚ªË»CŒÔÍRôj7â–¢¹ì‚¼¡è´B\ôÓR{õŽQz²²zMÓ\xÆ!¥æìP“̤'ž\¨Íhë(âðÝ ÏJNHçL3s-c˜èåÎÌú–دU‚”ÿ,4䓸ЇŠzONøÊðþÔlÕÖ{ØíÅ—ÅçFXÉß>­}ôõ3ÈHùÙ?.w#ïŽ×_˜ŸßìÇF/¼¬¼$¯Ë:¹ø²àœ¦­äì+í›·ˆ¸j›ñ‘â’k#¼Ä[=Õ‘ã¸4û9Ó1É.¶Œ³mS°øþŠË ËÅmôSƘ¶ºÐé>ÀÒ[½Õw¶{*nZ†ª#lõwuißQ¢¿ ÷ÛfäÎúë²óø¤Ÿû¾_hJûÙ%ADk˜~%§z½ÿD×9ç}Á]ï$§ÙÇ1I¶‰šÆ…__ÙíE€gå›l3´‚Ýa|ÔN/=ÙÚrŽU\5õ•^Ùè*»´ôºê–UÂE[§ÅíËÚKë=áœÉ,Zî@ÝS Š~0¶A/ž•_7eEÑ\~~V˜uèø}ÐãLC¸ØÝ~Ìc`‹Å.È­N\üO¦QR¶uŠž;ÄÌ>ÑX|çÿtÕ>þç#å[ Ї•.Øã fñSlâ~ÉÕÿÒ±a®YFéâ[häŒ å¹(ã'¥(ÿ„J”u« •ªüðŽ–zý@ή6O² Tu¹§$LñyqßiZR¾•‹¢¿²ŽW&|Ùà’­RršGÉ­]W}{½³ìöfgå=Óûê4 ùÏ /¯¾Í?ó×ãÑPª–ßU^²M£“Cóí/B†§­_ÖÅõ~=10@´I‚|´9†xäÑ G«Ï½jÄ"ÁÅ;¤ÈD÷,6Ë!æ¦AÇt‘}­ï¨zàüèže—†ëÖ§fU:çÈéÏ:œÀ%­wUÜÒ>-¸Öà 3»WTyFÙ‚|x0-ªÙ&>1¼.93ÈHøªŸ÷/ecáɵ7èû[C¬´‰ðsX‚Ü~M=Õj{ç=!Êð"û‚¼ñÉOÆgy'_”ü¼ü +ri{¯yVy}£³Õ‹¸½ò¢øôj{ÙÙýäÛ1IÿºèÂ3ö«Õ—°‡ŽI~™¦µøÄüËŠßÇù¿¶ÕÆÿÐOˆ?³üö`s”œ8 ÌÿeŒ[ðÛî%Cûzû2æ¨Gÿ5D‰ÿ×=ñ_ÚÆ¢Ó‹ïÙ¨ÔïŸ"c~°O±à~1lãxÀèGÆ—EçW^üb¨¸ìbôo7J¢þ¡{ +sæ\xUru§䟮’óÚ†ô“o`÷ÁkÇü¸Ò ¹ÙùvŒšú³¥—’¼þ¢ê²¥¯ìŠs¹õ.óÞ⋤ËꦔŸÍá™V}”"aYäwÃ̤ó>9–¸§±‰®ItÜÁ(ö X«\]GÑE{ɯ/q9ç‡h™Ü W€lÿøTtHÁ(sO3Ê×ß!b¦8éßLRs÷'ØËÚÛ†ÖŠó‹Ï!WÕM…gW^—] €<ä’‘ çÛJσc}Ñ+gCÌC¤¤åeçí9'Û3~P5Ä|½Ðžur°ÍÞ)µ¹úÉ¿ŸÁÿ´;ˆIñk¥@çS矗ÜP4f\\~8¥ ùÈ)bö'y#œœ{i™¿èžÃ¢7Þa£öБKoa‘òÖª;/бßvã~óiyˆ­!ôc ?ûÄ0)þûõ¥×­ðÖAøó8*º÷ýdSe²M-"oS“Ôeç”E· ±ï«"mcUQçÉÕ_Ö¸¤1R‚cŽ šxªùÏ)bì¿–Zò~34ç]4¶åÿn—TÜÿc‹…ÛE&MˆóÎìI°YY5<“%0ϬvkpÉIí½):Î7Oƒ|Ül|æÖ°Ñû“¨8Š^ñdžˆ´H¯9˜©‰:B¢·r¯oô”^òª™ð¡Žæ”Ñó€GyóX¤´Ìð9¿FLöɹ• [gî¢"WßU_ÝìÃD˜‡))öY1r{‚•¹;Nˆ_y ¿½ðrioã\ož$Æ/wV\0½‡GÛ:Âl½Ó‹¤jÉþYÕ’òó^2Ò!¡ç†”"Âî5OÖZxf½¶7ÁÎSÔÿ8ÉLùf’•úà 5ú›1zÔ?‚ô÷ºq N© bF”*¼O‘MÊ«Ú|O‰µöÜùØðvmþUÍï¦!j²±›£~NOškFß3¾€ßÞìFÞ±Œ7úyYÚW¨ÛËï°Oª±eš”lÅÇ9&0ûˆ¹û¹Ù]ui­«ôòò[Àý/°¦èå>RÖS°.Ýȇ_m¾©º´òºòšö)俯{\ÜÆ9­—´"ã”SJÉÕ·fü`|–òýzgþ/‹­ 'M½ù7ì㈌ VHÕtc=C&}?+®xðÉØúÚ5GÌ^{]üÛòóÂS›ï ×»jn.¼«½+m‡^¬I¿õTêåÇZFeHM+vÍÀc·{ +®O2¢¿ï‚]ùççñ×f 6î)&õLUÌïÿ˜k.½}¬eÁ\’ª;ž©Ò;îÉò;ꆄŸFñ÷ÿïÂÓ³.¯vµ}g­ qß:IÊì\ì˜"8gI¹ NŒ]Л]„Ô¯_cRO^!ï p³Ï­¼‡=2 £ÓvjÓü +JùQx†»R€2O`ãu/ +Nm a£7ûP±ÛÝHàÉ”ä醼Óã¼Ô—ß–^w†Ï­LS3u°‹ oQ÷­ÓäML¶•Ý\y™xqåUÎÛ9Í&c•ÌÕל&~¿ÓÏø¸PWÔòñ6 6ÕЖzE÷¼èábWÍíµ!T’W/äm×cÞÀo;•¤âë\Ê[|þ›<·U:Ö¥"/vçžÕw$Ÿ0M ãg[‹¢5¯ +"œZZ­GÏ¢ Dì§6íp‘Û:Ð[zÁ£%åî b¢MCäXÛ#Û§á#&éé.-û`hÜ0âžo–œP°ÊmÓ¼ÒaF’O!Æ›F¨)K/«/¬½­¹´Ù¹¢mO9©kL>eÀÇûæDØ•øÍ­·È{A…å’Q2ƈ±ÖqR‚áyÑï;#ð{}«æqBªM.„©Û*ΨK~]|½±Ó‹¸oé'%¸ÆØ¥ŽqrÁbGù ㋲ îYz‘CÆ,4ŸìŽâb °õ³š[«oP÷Cj1qw‚[²ü–¹?ÜŒØo ’c¶ú÷æŸýºõ¾ú¦ø“}Ššæ×pª÷Gáö‡ÐñnY3sí³`ùòв¡è— vü³‚”üòFŠMÑL_îg¤ËêÊNÚÇèY~K}fùÁ &NÕ\öÛ\]ÕYECùo¦IJ–e–œnCofTÍ·4ª…¸ÅΪ»½”ø&™§Ö{aÎ96äÈÐÒxÞÓsuÏ<Á*õ©ž6¸fëkïðÑÊg¨»Ò§ð«o)ù_+Úa 3ªL£•×w†Š¯m T<Ÿ7ÆÜ_{×=IZí…FJ„ù§úA‚\[PQ‹·»ó~ŸoŠùeíeæå­÷ÐGÛï!wœÓ¸ÔðÞ»}¬´¤ e½J2¨¡•¹dÄTý‹¼³C´¨ï&ù™¿*ZK.ªÛawe­5סɗ¿á§^ ©ð9믋/.µý]Û¿Z +ά¼­¼æÓÊúëŠ.åß9ùÿðrom›b!|Ö<\ïÊ»¸ð<÷äRGå…>ôýõa“jÒÉçˆÈomRºGÊ)ñÍÒ&àñ›}å¬ãÕÑ^&Á«!çéÞ bÁþb“P³*\¦_-8š§!Ž–¸8Ó85Cýzuœ•ÿÃÁ»vš–¹3Aˆ[ë­¹3ÊN:7ÀJ½| Å冘´‘Û¸6‚Jâ§ž6M¡‹ÿØ«kþ´Ågš§à‰Š–ÔSó¯r®Z& Oü:|öb<‘zó?BHÔµã–nÀ4m Øb¯ +™°ÒWzi¡§äÆúÈ‘Óì"P—w­ãÌ,ׯʡäöˆQ¶iRºm å—á“mtÜòÛ¼ k=E—ÖÞA¯¸æ8æIFÞzúŽi€ðÔàWj¦w–’eZ³øºüª”›úÍÆXì‘®El—‘Ó¬c„'¶qJªñäÆÁ5×9Ç,wÈ8¥á=tŒ/«Îî QÒR~åæ{xÄê«Šß ­Y?Ï ¾éÆDý[Q—û«sšU¶7ÌÈZ{‡΋(-êRЊíRlŠWŽÏl™b#'Ø%b˜±‹»3HI ih¯‚š<Ï‚…´\„e·;¹n©½c—Ó÷ÇY¹]ä¬Ã{„Z'™9æÌCó ìV@)@ïƒì­]yy”šòŸ‚]y0C/ÜßÁ"%e¬÷¢â^À﮼†Gºáë<èwæÕ‰™áy’†NTÒ0¿øÑ|<óÓªPðÇš€w¨g\3ÄÂÍÄ=Ó4¾:Ì'¬¾'§êÚà7Ç9§ÃsÚa·Ü + +èoúÞ(*2 ‚ M¢ð¬¢µnÈ ©(ýÇQúï,ƒ%·?,’K?oðèK½èûÀ×ïxgÈ#C£èh©^x¼Ä„¹•è”ÝÁò›;Ý•Wƒ!Ù>ÇÁN‰ò.X'(™ö9Ü>K/÷¨Ø`- iêç¹wä­IWŒ™ç‚zRU@K*]{[zu§žáWq‰åR +N½ˆ¨ê®½ûŸð­TXtÞ2ůØÄE韕\˜kÈ9»ú¦ê6È“%>j¦æH[ +ÏËŸ•DºäüÚbìÎûê+úöüsvüÏK/ó.é)U‡+<ÚB/"aJTrá`š^j—ÒMC°„Þ²hÀ ±«=57äÍ9¿ÎwVD†©íbg_¬+¹»-áB]ªz‚SÆ)ßì?”0ScÄŸr)H¹^-»6`äb4”B›–ZZæP<:&&4Ï%/­Ü@%¬õ“â5o ÷¤4èÑ*Ÿ¹;Týxí]î/^=å6ÖÕyWÛl>eSÊ«´O‡Ù›ä•³ï嬾ÃDì £-½.üõ`¹3ˆ¸¯iIÿÑø"ûÔní=¿Fˆsi…8ó43Û9˯ÞîÇܳþÞÞÑ?KÿIÑñBœ ò*åp¾Il Ï“± +=Rv‘µŸðØ%aùU<„uŠš¹ôv}áyùYË8#s€œ®i-ùy½³æè¯ûk¯j.<­½»Û~è–²J÷‡‰‰;ï·ƒó|ÜÁ .Þ6‰|`…ßw€¬éWRò‚JÄ%ãCäO!W ϪîûfYå®ibJP2ËßûÚâbLÈhϽÈ>ENÝz.æüàSràáùîòæ’_^–þjÇDíŽ"ï-wAoèÛK®4œš½qjúö(9)<Ó£f–›GÁ÷íG?pMSóܳ|¨uBTe@–ûp1+=ħ¼­Á¥ho êšEŸ7ëêZr¡yv«rÝ ²ã$.veÂ>ÊÙå‡j1Ù%çBtßׇpq^}Ç€G×9еŽ–h)þYR––VâÞ`šãÀ }蘵AbÖ¡¡gGF™‡«o›ú+.otU^õÈAn[Rü1}öüŠö9&Æ>Ó RŒ>Òñj½*|æf镽áª[îYBî±AÀ9™~¥ÿØ:CËý¼.9¸€Ÿe›‚>^x“sYó2ëW㛊ß?oˆ[¬rTÞVyyµ‡Љ¹>-—îײñ®BºyúÐ=MrI).]“p¢©è¢¬µ$ʭࣽÚ§fU…8„£%!gŠ’¾Ò‡Ž ÏRö/´w„¯û8giy)=ðnqPÄ|Yb¢¼JfÅR7üÎRì¶WËÅLñ3ν­¹÷ýÒ³ÒË;ƒÕöY|V`G.55í‚ZYì¥%„ûÝkà +R¦u +ú²ò–i‚”aU +QU3{{œW>&¬:­î GoM4ÀöFØé!‡íÓÈÄÕîÊó4:Ñ¡&çמû—ëêuÕ‘ÊVÈ%p\ëýó\îñš@ ²X‹[G.Û课µ5»åÒ±‘.}½`{Œ”h™¡fÛuÌêàŠ³7FOݤ&Z'è™ ç«@*ù(Ï ôÈ«gCÂó÷ǰQû#HàЛž©ª[>2Ú3KÊð(Dh«„•ãT°*|‹|¼]MÍ·Ëp 摪ë;ïóÛ‚ßõH›p^ù3±uª¹ÚKOÛeä[d”ì} .fë=òöæûêëꖂӪƬŸì ×ubÊÞ8=oé-üªþYÕoCôŒŸz‰©?/>‡FØÇÉiªÆòó2Nþ[ojn}Ð5l³øìµÞÂKûÈ'»Ãˆ»¦ABÜV?9}ù=&j®±à„GÅ„êØ›½µ‘k¯sOÎ?Ë?cCD:¥ØXŸ’’ëQrªÍRvÉ®„c™m"Ú”üó$2j£¯ò’¬>ã§¹æô [ˆx×, u¼T/°ÉðivPK¶Ijºº¹äŒº1åû½ªûc¨‡Ë]U7|jYÈÈ£¸•\„GY‡ñë…¤Í~èm]KÎ ]SáϚƌkÙçƒr\v@]OZé&>V¶Ÿï®gŽ’s0ŠŒ²O¢ã÷Ç`÷÷GÑì3´,Û¬°Fõó•ô»”šû ôOxž#ø)ö)Bþf_ÙÕ­¾ü³–‰Ú¨+bä‹=Imä™dF&ï WDÚ¥˜ôc£HüyGÜaUŠ4/ª.˜ÇhùnxµÖ¥eTš&ñ)ŽJAxŸýãyë`–Oá•—7A½ +!igóxéuÉoëï!7ö%°{.%*á㪀 |éÝársûî$-ëp­µÃ<ŪZ~ »©jÊ>Ù^vþŸ´¸ï7zj£‚+-¯w |y[õ…•ôc¯0’žO÷éøt¯ŽOõjøX Ð »‚QZllØ›dž=^fb>­ó˜Ÿ7_. +yÿžŒ[¾>*,Þo'® ˆËvGÙ9‡ 8ö¤àbCãÇ­¶¡O»í’ÀªPhUÑKw'ÙŽ¹‘SÑÔôv´Ä®R«MDòî("Õk AŽ·êšö@.ØÁÚ篂[Í/wêÄÀ$}ß­ ï×Ä®´LÁ펔_uJQƒVEPÏ­µM“ÇçùÁÿ;gñÖITôJwñ¥ŽÜ«{ïÑ@ö'|Ùh|êÓsj] +fix_K;`–ÝAø£•×UwP– Ä4óºmgîu›IÚ„ße¤­¾CÞœoË?9ÍJþZ.H;” ç›Å»’VüÒ€(oy€—¹9ÈN50RLC¤8eKöÏ=ȇÿPóòq âb} +zÑÎ)nk„™çס—ÆkÛsO¿Bßü×ìµišŸ|w¸Ì§Ú´"òÚþ±ií”Ñ +‡=>˜BD9gª_gþ¶9PvÓ­¤ifoŽRâ·Gp÷F)9¦1j¶WM-ý¼Îg… \‚u§oÏþeó=ô6ȇ Vÿ¾ÒYéSp áLæSS v‡*c–^ež_WrÙtuu€“;ÌHùnN”õ‹{’Qè'Ä ÔµÀ5‡Kvʳ—e.]KÓª³{±—ž²Ôƒ¼ xƒø?–öÉuÍ SÇë"ÏÈDû—8äÃe!ïpñéKõsD¤D”wÖ¡¤Tþe®ùq«®1´Êå8Ôø»†Vî1ŠX‡«O?¬?ð/ +èþe6Ê òÊárûÛ¿ïyS5\ +jŽWKr˰ñ¶ l"ȳ‰Öñš{N)9ûP×À8˜"%n Âo)ŸgŸQ7'|oꪽyôàÓïÀ§ÊŽeZP©}Yúû9Ꟛ¦ø-#¨§úų™vúÎT3zRT±?Ê+Ú Än¶ ÖÞ±Ij›%„œÝñØÖø3ÂÎd;y_"¬0Pö†É ‹Uá{´n™ºàwz‘÷,C¨ûÛÄèýIaCQ‡±M‘R;jïöѓΠÒŸÚë-¸Z`ÖX@2O³ò\rÚ)çÔlV_3×Ü1O@ï¬w\µJ BVuxÏÄqz +ðñ*·êå+§¼žØ'!¸È€:”ÜíxÄzô±MJ+Û›àjŸ¡¯L±‹|Ê&Å'[§Ðцg¹g–žeµ WG¹UäÆ0'WÓ^y{£PÕ,ÃÈH•8ëä3ámSæOš–ì_ÍÄ4‡‚_;÷ªö޲y¨ç 3ðÇÆŽì3CŒäÞ`¢OL²’O¬¾^wjD¸ù^bì 'çGíËêÛ¥ˆ4ˆh‡F!Õ£¤–m #ö[šUì*‡öYÛb/.i®%ïwÀY® häP@"fà™n%&Ï4Vs× 2ƒGÏA«;Š®kÚ Î™Gà-cðD×,±èpAÄ<\ó@öÈU?¯úÝ!cC,ÄÜ…—ù¿[G«z€vzÜj¿–;\jzXinß‘ +ª6%"ÈΤ:ÿvkgþÄ!£VyKÌÒó<âç¦gá½t½ZԯС¢ÕìM"2œ +|šSI+wiùèÍQ|ŠWK­8^°¼VMPËEÍóð`­`n §–I"doœQµòqocv#d`Tÿ·©mä×42k>o ŸVYÔ †²6 a&æê_C.® ¢žxç¹x߇àÖÑÊ|‹t¤KK® +®ŠŽ6ÄMÁE.Å£aÀvÆÐ1^«ö³ÿsóiWÐØÚêT·p¬RF¶U‚Œ\é.=ßG}ðUùÚWs¢¨ÿìôWE„ ut›”•¿;FMÚ—PRíä#×xí݃Ѫ;koSѶÇ~ZÂsvû9©›ý´¤®êß$ìÉÿ)UmpÈSµ…ßUßsÈ fI} È¯Ùæ1ôCysæOK•·Ü²§·¬óùÁ”aÂ>Ù"DÛd\ˆSUOÚ•°²4mU—4⼓ƒèÞZN@Þ™œkŸÆ'ØebÔr?=q£¹órÅ2Ž|èUq‰(~}Ç*cì×ÞqÉ ™^`—Ñr·úŠ®nõf]vÌ@"m³Ì"öÙË ¡sÔ)¯ÃH1±Ö9ÄÐ2g›£fïŒbb÷')냤˜õ!Jœ}–SîÑðÑÖ)Jš_ÍÇ;¤”L› zïúü󔫶ɪ;^%5ǯnâ¹ÔmMC¼´ïÕmew÷)%n)µüXG® i©e€›²—ßÕ\3M0+œs¬rc'øŽÍŧf!W­e&àÅ!»Ö§aB7FpѺ·°ÛëƒDPo-->ƒx¸Ä'ûuÄû4!ëxEÀý²ÝÐþqµ¡yuˆ¬h«ºåTè!½z>Î:‰Kœ©Oûu¶1ñ{ëüɇ58.ôò>Fú’ºÜË s׺ë:åØä­AèÝ­¾šÀá}ZfMh©¡~s³Ô pϰà¬4¶ƒžó)qyæQXœU†H´¨ø°9le”“=)*Ïš‹9Ö3‘ÿ³%ú”¤ìC=¥"¤%oõ–ß +. è¾Õ–W+#„tCWÙ•€… Çû¼ÓüîãFã«€žò?­À§åÔ|\ohr*¹è^äƒåβóK¯ ÏÚ¤Ä —Š\ ø‹ðy‘Oõ©ˆ¥.%"ùà { 'äìVÝXUvÑ4ˆxìTÑ .=›zw¼)®7« ™óï‘‘žù¶Ž›/&¾˜߸ á}i¥.5h½€|YäWÓ‹ |´G%€[¥Übó$;ñmíMôWUsÕ9ECÉùµ7ðûÎðý¤Êðœtb¼y’•»?ÉÊ[x]rvV÷•º9õ‡Eà+»·“ÕL‹a–QQ±K +þ@=Ü.9ï™)õ’wÖØ•~Bù"ã·õ¾šÇy3Ë:]Û£§Ø¥ürÇâ”QóÜÏ'ÄÅMâ¾í#Þüú`“šo¹´¬½ ^ ü®MBL4÷ÕÜöÏÓ—;³ÎëÛRvÎ`“J>BÖ^{sá 66¨âÃ&#Ld@O)tªð) oóN/vdœß÷Zjªw*(V)!í`²úQH…Ï=žçcý:6ܧfV­¼«º)å'œ èÉ.³Â"#§ºæÈ¹î9JV@î-ðI99Ó:CJ±JÙe>m[óÞöÑî`õ­Ù¦œ+ý„è_Ý3ðŒ?Öꄇóõpl«Ö±1N¥êRŠðÖIlÌv_î…úÝǘQ§m,`¼ö–µ~f²þòŠþêê\ˆÞ¨¹ïÖNoÁùížœ î9\vhžO=^j}a™¢dïŒãWê?¬7´ô,H@C̵ŒWÜÙêË:ã˜%g‚÷Cûç[[íêÆö8§Ð©håÙfÉ.%¯& ç¢ä˜d›`›¥f»4ÜÚð35V)1Ù§eÃ\*6Ì#§äé)åŒt¾” Yî"<ÎÌ;ZkéÜ!¬ôC#–Þ•^ÝèÜõéèð9b³RŒÛç¬ +KMÒfúÖ8­RÙQ½ð¹ô¶üºU‚Hð+ñyíÔµx€>›äõX³\P\lnõh¹0—šVdšDGï#xtôÊuõ˜Zzö¦Åšä Ó¿öãzÓÓÿ6Õ¿ü¼Ì@y¦¡Q{])§ôM™ÖúQiÚæFí{R²¢µüò§uqÓÿZ›û>oê¿,1H~EmŽc¢øÞîXé5ï"Ÿž¿½>F(˜lÎ>ýi¯éÍ{mcŸ6x:swvË£å!=j!Ê1'¨±ÉØ%;#”¤AFòfxoç!q‰UÚ€r«È5¿vc}µvuw˜w0Ã+Û¦$­¾#<²€ãîSsa‡‹ð¨à,Ë9Á9Í+±Hˆñ{ðpŽºgŸ¬¾åR ã}ºð:òj=3ÜÓ02~»¿ü¶m +›âQñk7ûPw,“¤$+Ðã¥7°ÖLÒgŸøq±ŽãP2J7ú±‘¦ Jâú`õõÅ—¹']“¸x÷4!5¨ —ëëH!°Æ®ij¶g†^ðqIÄ´É0OlÓ O(°‰^-9Ï¥¢”.°ñ_cx4\˜}ŽõÍ·4{盽ª:\@ÇE˜§a÷l2D´eØ8ÿx™G°Ëé~-³òó2cBšG†‰·ŒCïyå$ÀÞLXP]Ï è^t¬á£M“¬Ò°—:dœ2·ïõp0{¸Õ]uýX'f}Zmí΋Yö9jèÅJ·œQr0‰ŽsL#ÒAå+Ûòo®¼«¸¹r»UÁE,Œg›&x• VYèÏ«Bž_Ç"m ÂÒ¬“Ð^-¥ähµù¹o¡¥98_Ï Í‡342É"©ˆø²Æ! ¢[ÉFØ\ȶ„YêÒµ=µ«Zùn•åV²*¬S˜Û &9``×bû´ô +Ç 1-  ?×ÖXïU‘rÌ5—:3~[é‚Þðªäë-¯|«bÁÄÓÒ_Ôoß©Ä$ŸQÌôë7«ÈµeUñÑ6ÃËΕégìᧈˆÌˆ¯–èÕ »±Áûл´ò‰OG-s…{UÕÚlS¶?Ý"=1MÑsF'`ä`ŽV…œÃU>Û·ÀBÛôBpLjúæ§.C=ß­&f9g0ñÎdlP‡Î9Þé[jnsZ›7%¼²ýIFÉ_{Í]Öxœ½X„evw¥³è¾i¸8áÏMýº>n ùæYBÁÚ0,Õ7Ï-v×$ïŽT‚ìR›}´L©Ç”åTŠPf)¿¼^æz?æ¾YÆ-³Ì‰jäõ¾žîÔˆ‰6¥¾7IJÜÁ~w¡g~/¯Kü÷Noåu¨Qó;'\[^ ¿6Ü3‡f呎\èšÅ$î #î®÷`"öÆÈ€Ó1‘¦QäÃC á›#çª)….)2y·/ï¦urË&AE8HÇ9Ã>CLõjØà<«:\ïŸÖøÌ‘\ež„?Y+?¸ÚÞçZj}išdæ—›Z æý±ÁÆ~^e£½jJ±MŠŽ=2PJBóL ½s¨X§óAÇEýÏj˳?Û^…ôM<åòìj!n_Q‡Û&=±Ž#îÕÜ}ò80K-9Ò5²xe¥u†–y´XÏó„¯ÁŒÁîmö]Xï+¿5%N<˜ü¾K!@oN³KÖhi~]kó¡±¹1¤§Wz”¸ÔÍÁÊÛòÖÔS¶éª‡‡‹ŒÚëõõÞyÙ?/d|Xûû™[ˆsç–cSöÇ ÷öFjøôBÊÑZó ÿ¼˜ã˜åAÂ׃?ëêSPòÜrB†y½5T¾Îñe¹©åx¹¾ðr‰]F-ß…'î ÕÜÿ´Ì£¯ñY&µÀЇŒÜžæ¢œóÍ͞šôˆo¡ž\ml9ÚÕÙçÅÜÅqN¾æ=áÁt"Ú­o}Zinõ‡gY)å¦ñê„ã%6éÓF]ÃÑÚË)‡ªŽ¾Ù_s}{u¸Ñ𮢗{´ôR–ZäPÒŠü OŽÃ×06_HLs|¤}Žrhd£>¬ñ©Gk¼ä-ÿ²ˆåYàãÓ ƒ <ô—ºFË,±P÷ +zÁ9˃fæ|Þ6ý÷Gè7 N%ðåEjù;B±ê5,Sñ•¶³<ëÏýÆ·ÿŸÃ÷(i…@O°nM3Ï¥½á@ÝÚð .$¸(fëv¥v0ǯ²Í  ûnáÖ0-Ý$¡f̲K7‡ÈO6j"Ìãðèð¹<·VLr«§\XëR6RÝê&ð÷"P«Üòðõ×€ž²Íñ »ã¸˜µ®š‹ÆWЋ˯á7Ì£”pÞª9ª,Ø9´(æøDäð PŸ–˜éšÃ]ÄÄ8@ :ç8e.%§2Öh0dåMÎiÓ`ÞYóHþYËXáu— Ÿêœe•:UüÇ,»Ä£â ·†‹®š'J®ÙdðG¶ø#Ç .9¨QÖ[;Ã{îLÑ3‚F!Å,…E›§ËoxTHPc¸DÓ(Ð äæá<³zwšSº9Ž: ê¨%ÞYxÂG#6߯ƦïŽVßÙõèüÞÓ|¢zÖ:IÏó‡Ÿë›C<ñÏ!g&l›%ô ·BL<4¶´îO’ÓkGx”,¸KÁ†€5)Î-µ>³«3bdxN°uFˆz6×£&ttÔ_[|ÎçMÅ£ÅçïŽWß7OáRŽW›šCËšOË(ó«YÕ^%)Ï«¢Wõ ÜÏkB豜µîÒ‹½5)þóó#ùW¯“å×J<2BαžUýyIÄø—ŠV?¿¥jdî"€ ’àPâÒ \ü᪸éËNëû/{âvó>Ï¥ç`³ìÒ¥ÃçlO!nO¡£í §.ü=7ê¨+~À~¶ée`­¥ãӦЊ<*Àá³Ôû,!õh‘…ÿ´ÓØ¡| ¹äÑЫÿÜ5Úyk[(ò¯ðf·v}œžjWP‹þ{¿µÿϽænÿáŸ>n _öÅm·E£&â@‰KÙÂ'ÙU,ÌñÊÓׇKÍ€3„.%¹ø@F.ôêi5Çkl¬w^€×wãã¦[Jo;Õ$ìŸ{l†WUíQâ3 욣y.êPǬúzïÏ¥¦¦O+MM!£˜¸'}suw‚’ì aE3Ë>§žk8#†‡³ÏÆûâ³{Ã¥—Ü +B¦CAÉr)…EŒ/ë­o>¯7µ†Œ<ŒWÍ*5PâQ6Óm²f’C!F¹äÜ +×,9Ã-§ç=ϲIéYGZ!ñÓJ#8–bŽSÇ:Tõ·ª­Î>'‚Èè¹2bêÖ úžYBˆuÊ…àïò¶`¦äC—œ’ ø¼ÒVv`w5¯Æ©à”Ûæè¹695Û¡ çoŽâ£lsŒüQD=^æ`7z +ΙÇʯۦávF÷=*rŽðÔö §x±—ïëQ0kv† 7MÃ÷ìßÏV–†t|ü}Û‹ž‡õž ¼µÔ¿PÏöhˆÏë Øç5:48O/û¼Á£~Zolñé9ËÝÄÇv)«ôózËË«<ºCVûÈ2QvÍ: ‰Ø®¼ï˜Eg¯ñéê¸>q8/¢}YÉ­Ä$ÚeèØÝ^Ø…¹?o¼‡Ü±K).•ˆ¸ÐOÎm„=ú¶—ž}Ç-gÕ”¤|¯ ŸäœçÙvŸ¸5„xì_àÌ2~ÍZæÁǵ:Þñjƒ88/ ~Z¡£BZ\¦mªì–i¤øê‡õÆö]%­Lú²ðw›ŠAýÀù¸È'ü± +˜z‰ßî-½¢lÉ>µ=‚Ëò-½¶‚zsêy( ‰ÜÃ¥:^h¥Ž<¥îLÂÆãEB©erëÈYŸvÄÍefKC/ ¯£MÉ­²È5Ṹ …°þ¾4~¥«äòñºˆw¸Î§„üKÔJ‹ cìî[bã“ô/Šx¦qr†KÍÅý±Û6t¼Áçû ÌjË 1eOBN:˜£å–Y¸¿¬‚Æ?öØlÛ27¨ã&CÇ4¸”¿@4p±ÇFÝ®9)Ç"!¤„ïés(±©æIÈ=¿†”˜ç"œ +A}†U`žFÇ®ôŸÛ®ºq¸@.ú¸B©ø¼F† ålòhVxÀ˜X¯’_ã’Ó‹¬Rr†CΫrÌqÊÁûר¿ùDÉ©Øì©ºc›B§ ,¨ßÈEû ­MvyÇ3‹¬0È|rÂ:ÎÊÚÀGÏ¿*º²ÑSqÅ=Ç*¹x§t_Æ+›‡½«{ ¹^ëZ@A+pÍÑÊ÷$Ät+È76E#°aÍî §È4Sßc·ÇD(Ѓ VPÓ86×.gAœÚ:|`¹©Ñ<Ë)ß'<1Íвmß»EÍô«©ù!µäžjœY ´ïÓŠ©ÖÀÃrFÑÞ(.ʾ6KJók9°ƒiz¾iŒðįâÃBZ> +°Ç“Í÷¥Wvû w2øCŸ“tZâb”……¤Ã%.0T’s¶úÉ¡žñÈÙæQBüGƒ€úeç…Ô³À£ïŒ!îȹ^­€p¸ØÜt¼ÖøÔ© •«Ûr~W=ͼz³Ú£‘Öà·÷%¤Œðaû »âèxh¡Ž½Þ‹ŠT6b%œÜꥃµ)]é)ùÍ"AŇ´\ä‘AHü°Ä#|Ùò¾l‰ÄrfÙÖ %%ø÷ù1Î,ÁǺÃçû5Œ¯šû´,k÷ÌóÐv5£Â¿Üúæh¥åù±ƒiI¹~5:Ù4TiŸfV„æ›êV[^Xg'¸ø£Õ: ƒµI>-,Ö?Ë .óm³ˆ8“” ®´¾¹ëip•‹û¸ñ´'¤œR|öFwIÄVOQÄåÞÏ¡çþµÔ•}÷/KýKÿŠ€~¨·ÅmÇkÖÇMqãÑŸg—ãJß•^_ì,¿p %e}ÜñfÛr/íNÔ¦.1¬ñ¨­09©v­’5ÀL¸ÊÍ?÷Nˆ è•GFz¥_‹O7W\uÌ¡üz%Œ ½÷xØ›æÐ¿Z„uÌ‘2¬Rô·Š±Í’³ƒ€³®"]s¬¢ÕwÐ;LrpžVþa• ÷8hó` +!Ü©­'Û”õxë'w¯Ÿ«lÎÔ§äÀlӸĵžêðûàµn}e–ž³?Ë)q(ÚÁº¿Ÿp¨ž7{õ Ë*Öøºøœc†Z4ÔQŽ×ê–ð|âYv™ÓÐ(ò.4ðÃÏ[&±q;ýWgDx•<(¨9Ž0†UÊ*ôªÄd‡”YP1JÜs„Ìý!DìÞú¡i÷Ø«àAƒ1É:NNÝè†ÜØ€Þõ©ð~5.Õ£DgØd5I–ibªSÓÌ÷Z,R\òFoáE—Œœå’±JìBÒ_K<êÛOûÜ Búþ =Ç»ÐTçYh{î]l{é56ð­2bÆâ›¢Ûk½å‰-Ÿl£ßâï˜ÆØŽY1Æ1‹Ï +êpEÎYlêÚ;è¥AöOc´ø“+o Ñû“´Œ¹¶Â“ gú´L¸yëšÁgzµÄB·Ž\äP3Š=𮱩É,¥åš§ˆÉÇë↣U±(° `øtt´_C.ñªéÅÁyöhãùÄñZË«ÏkmŸWEÂO+B–_ÍÇõ|¬«G…Ïß„ÞpiéÃUÓ<òj09Ø™0Ö×ù;&ƒ«Ï‡}Ë\º×H.ù°ÚôÔ#got•]žáÄþ[ßœ~J÷4ãÖf_Qò§ :í¿-MÝn Y.ùi§ù­o‘O²ÎPòvFàÑ‹]Å—¶ÇjRÜJbÈ¡å‡Frº1ã×!hâÇuåÃâ-»£©O?ó +úðßu%¿mGÆü´‚àZîÖÒŠ|:*È.„” Ž Xžƒ0Mââ¬R\‚}šœìže~XPÿÜàÑþXgcô +·‚šëžcêyÈcƒˆèS°+õ˜_ͬ +êYˆ£.ΫaUøõl¨SIkÄ) h…X/ÈP.5º9{¢ï¬¼äš¥æ}0òpN É‡ºÖá¼°'¹ÀoÀ${µ˜¤0?ÍØ0‡š ˜…™ëS n âW³–;‹~_~YvðÄ£ì¡ÜšF¦OSOöi…4¯äf#˜ÇçÙgám€eCFæÓr[‡þÙë9|>ød÷|×&ig¨äîzOúï.°ÞÀOšC­omZ>:ìÎiV•{š–çšÆ&Ù¥HÀIø”€ZLñiÛžZ%´LË(6jáEѹÕW%ç@¾Oj襠M¸‡„猠&¤¯£µèÁ$"fåMæ/Ë¿úTtØÑJÛ›Ãå†z–q)ù8¿¡Qr/óÐ@+õÈjcüZj‰ô Ï ~ØlzýÜ5ß(ð[[=:.Ü-§æ¹çÀñÓ0¡ÖIFÞÞ#Õ=[‡1KØ[¥çÌã•×L#¨ûû£ŒLË8¯Â#ãÔø<„IBK_}ŽôiDlPøý1X¤eœàRÑK‚K,ćM¡àpéi‡o¾Qxò$à.ÖÑî³ ÀéD‹”œfWà3>,Ò`¬ xŸA߯4µ„ õÌÏk­_Àñóëxà“nõß×^â]à÷]J:ôx¥¡ùÃFãÓãu>ëÃzKghY,.òÇ+\ZÐÈ%Çzæ 9sµŽAØ&II– lìÁ4µ2 åQÿ\¯oÿß=6÷Ј.°LSò7) ëýÔD¯¡ýCÏE€l–ëV1k?®ò›þÚð=sÌ2Û$àß\¼I‚ˆôéÕáüèÕ„ÏßAîlÀã6Fñ%»slŒÏXßøÔº_OÌòjI™Ÿ@|^®çYóD³”²=T}m·¿â’}¤öaH…Íû¼ÊÅÙ ¿lŠEG+\¬d]÷ ,Ò#CÇx¸„ †Qrdà"C žƒzNup·e!íòˆ4° 5.Í­aWºTb¬GÓÌu̵Ð}j!*dàÜ@³ÝJV©_˪ ¸ˆ#£ˆâýnìÊ»0ͽÿocsÚ‰€ž4žóix8—ŠScŸå”Ù§ƒ JúÚëüófðY¸Xÿ³(8õxG;Z±‚Ë<<ЧJ¯†Q0ò]ªŠ‡®¹’–‰ÊÀGÆFñáüó.»‚VºÒ[|ys è¦] +‹?6ÒªO–oM[Å>üÿÙ{ó7¹ªëPô·—n:y7Ÿ¿/NroÒN¢lwsÎ>3©bh hZÕÕÕÝ¥ªU]=hB 6NljcŒ± 4Ï B 4Ï#Äy7ßû/Þ[ÃÞ§ÎPRW Ô]ÝœögÔZ:gŸ½ö^{Íkí£o榭öÌ™Í}‹öýû¼|÷ß§üíåmÙ)×÷ô¦.líZðñÚÔÃïý +ÖìÕì÷>ÛøtçéM‹>^Û6ñ­g'ÿùëƒÿÇg¯uN¼ vÀÅ ·~6κÌ÷¯íh»´³oÉéMÓ>zeÚ·¼<õ['Þ\(.ïîm¾¼÷…Ÿ]Øõìš3[û—œ^vêm|èjgÇS§×ÏŸp~S ØJ=Ó¬Ë5^Øûôê“pæ½ÜvÿÛkæüíÁŸÌý»‹›—xW÷.qãà`áìöåퟮïi<½yUûÉÏåOmy¶÷èÚÖïíýÉÔ¿ÜóÏSÿ|ϧ~ÎòìkûŸ~öÒ¾…kï®è¿²ÿùÝþÓòWßëYrìµÎ†Ó››/îY³ò +ÒóÁ•ÏŸÞ’Çžh‹¯úÁK×­zîóC}Ë>Y·ä‘ý?™õW·÷/ZóÂå=+_¸°s ûÔæ§».ì\3xq×êU×ß]±ê­þ'8é3ÀKÏnÍ?õùá+.îïm=³£kèªOœÙÔ9ýÚ|óçïöv\?еè¶ìô#¯,¸÷³u-ßÿâðªÎléšuè×sÆ~iÚ?}uñƒ€cØŸ«¯ìþÁÏoöǖξ³¼ÿÆGϽôºëN^Í5þùž–Ô_‚³zeg×ü ;z–^ÜÝ:º¶Ù:¹¥gæ¹ù…Ÿ½¾düÁŸMýë?~èð̬+»Û»´33é"ÈÓë{úÛnî_½üúþ5«NoËÏ=ðÒü¿ßþOþÏ­Ï>ø?Þû·Éùù;}Ù/­\ùùá•+®ìëMaýò¥ÍËæ]ÚÜÙxzÃññ«óê¾²ð¾Ú'œßÞ3ó‹÷ _Z1xmß@û…X0_;ñvÇä3 ›_Û·²pußÊÞkû€>Á¶¾ÚqöûÌÛK½°eiã¹Í]3OnZ6óƒß·<ôîKóíO×2ñêÞÜ‚coÌ7ßûÕÌøïú^?ðÔÉÏä>ycÙ´Ã?_2þÜK'Ÿ}#ûð‡¿œ]·qÐüƇ/NweOû•wÖóÀ‰·sS¯îÊ/¾º«kö©·Óß;ðo}óÀOŸø›ë{¶u=yzÛŠ¶ãoõÍþè÷=“¾¸ô}?Y8îø«­øÉôغfòßìúÁäoœûÚžþÌ™­ùÙïýfAÝowasÓ¤k{Û¦žx«íñÏÖwL;³1?ïì¦Umg·ýðùsÛû›¿ÙüÀþŸ<ñWëú¬?þô7óLì?taW¾é̶î`?>úÉë½Ó?þíò¹‡ÿ#ëœ|s‘vi÷’ï_ÜÕþÄå=ƒ÷\{çéÕ`7<{~coõ5}ø›ŽG?~µuüñ7— ¿}VŸØÚ6ùú¡þe×ß}æG—ö ö\Ø»lÑåýƒ¹sÛšOm\6çäúŽ)ÇßlpjKËÃWö²7=ûïWÿÓëoÌ=yjKדwåÓ—wå—-=aßOgŠ?nüîѵ™'NoyáùŸíß÷‹Ì¤w½ÈýâÈs/žÝÙŸÁ{doì»dWjèv3/îXzyÿþíêþ5?8³¥ýñãë;Ÿ¼±È8¾~Ég·.yàúÁ¥so¾¿¬í³Í‹cë› Ë/»qø¹Ÿa™«»1Þ™}òÌæ¥Sn¼»¬åæûƒË¯ðÌOOîéo=º¡o6è3³/nî™yæEã÷¾0ñ›o­zð¾÷Ò“÷|úvè¹½óü.ûðŽfþåá—Ž?¾nÉ”›ûV,»¶¯kΙ ƒ¼¾X¿´£wÁµ]+s×ö®YyzDzù^N{~¾ä¾}?›}/ìçx?Ÿ½ùn>}ã`¡íâÎü‚{Ÿÿá•m«º/méžvüµyßyÿsÆ{y‰qvCvÒÅ-­ 7öô,¸¶¿¯íòî¾æ+{–^ïÜÖöGO¼ÕôýK;Ó_ÝÛ5ÎäÊ+ ëŸß6þl=Ø·¿nª;ö›§îùè×OÝt9 l—9wõ§/ììkÂøãñuÍ °Ÿß[qæ±7@/~37åøºÂœó›žîÆš·ÿ:ïo7­~üÏÖv|üÕîÀCo¾»æçv=÷Ìáµ…Ÿ¼U˜snûŠÜEÐO@™wìµ÷}mnݱuM^Ü÷ü/ì{îG'·Òv vß0¸äÓ×—M½¸u }~K÷ŒOßX¤}¶~‰ujSkÃe8{¶öÌ>»±õ¡So·N:ú»%^ÜÒ9ý<§7,tŽƒŒ8þV¼Ù?ëèÚ¾éþ*#üË¿{s`ÒŸ¼Y˜ð÷6ëÛWwe§^ß·lñéÍK;¶®õAØ¿§ÎoÍùò¶Ži§Ao9ºs}[ÆŸßÜ»ð“ßåŸÜñÃEß:±®eØu­×ß]–¹q`YûÙ-ÍŸÚØ>å⮞…çvdÎïyá§Ÿ½½ªã3î¯,1>ymyqWvæµwréksívw/: +<õ£×—x—ö//œÜ–_ptmÊ<þF³wîílã•ý ÿp¤¯ÿ‹÷Ÿ>½3ßõñ–ŽFìûçðY8·‹ÞÿÕÂûöþë̺Ã/Ï{ðÂЛ¶­øàÕ– »~6÷ž÷_kyôæ‡ÿ¼ñÜŽ=G^iùÞ‘çÜ{ò9ß›é±Ëûú²ŸøÌO¯ì(ym‘öÉúÖGÏî(t]Þ—o9ñöbïĦÅ`Û·=öÉÆÅæ§RÞxoÅ*°VœÛÕ»èâî|ë÷V];P踼­mú…mÓÎîÎ7ŸØÓ—>¹³¿ùä¦Ü“Ÿ½žñÞÿŬqûþù‰|çÅù“ƒ=z{7æ ,>øbëý›_Xð­Ó;zn^ýÜÕ]ƒmWvôÌ=ÿVû¤»—¥¾xgpÙõÝ…%W÷ô6ØÒÙxróÊÖÏ6<ÝòèjÉý—÷/zàÚÁöi7æš®ïï_zcϳÏߨ3ëü¦ÎÆ‹›òs/oL[¿ô‰~9õï·¯ÑþôðO«=·9ûøÕýýÙï<½æò®Þ޾@{ç—“ÿüÔ›³¿{y{ÛÃ7ö,[x}ß@Û¹m…§Nc}œ“30Ÿ3Rîñ×&ßlèĆÎGOoY6ûòžUy°‘ó—wõ7ŸÙÔ5åðK‹¿{rCöá+»û[¯ì^Þ±ë_æýÍΤ¿óá/û§~cè«K§}ü»éß=þú<çÄÛËSŸ¬ïŸ{qûšþ‹;ž]ùÑë˦€Ð{ýààÀõwûó×Þíë½,zç²Åïþf‰~bíÀ‚÷Ó?wÓÓ3ÿ꣗Ò^Fosç“×öõfP>^Ý7ÐñÉkÙNmÈ6\ÙÝ—¾´£¿mõk›Ýc¯>U6ÊÄ  ß€]ÔyrÓÊÖ£¯-{콦|ð›¾YgÞÊ/8³¡eÂöŽÿó£¯L¿çÓµ‹õ³ÛºçœÛ±ºÿÓµK'Z·lÞÅ-m7÷7ð‹”÷ZßÄ¿^¿rÒ·ýzéø‡Ï¶õ5{³í¡}ÿòä·Îojôêžî¹×äß|gYú³7?´çÇÓ¾uè—-ÎÅ=+û/½³<iÏÂó[Û…5½ÿüÛ­ØÇqñ '¯î}æ¹ãoåg~%û=°ñÚÎlly趦‡N¾5ßÝúÂßüxíëô–Žg¶wÍÝkðäÖ®i'6·5œßÕ5óÒÎeóÁ.waÈ©‹øì­ÅÞå}…ìÍÃ?x äðê“;»q` ç‹÷ú—]ÜÚ>ýϺ÷ÈϦÔúùã}jcúáÿü`õ¿øpÍ¿žÝZXøÉëÁ>>ymWÏS—vô,8¹!õèÇkg9Ÿ¼ž~àÔ–ŽéWßYµæÆ»Ïþøè=ÇaÝNmnŸzu>}tÒÓo.0®ìê˜}q_¡ùüþ¾–KrW`OÏíX¶èÌ–ìôë‡ +ý +®¼y¨kÉ̓óNlê|üÃß-}àäÛ½O]ØÙßqã½gÿõêÁÁÞ“ÀÓ?]Ÿxâí®) ×›.íïïzç× ›—Íù|ÇÓ…ë[›?½æ8ïòŽÖ†‹»š¿ÿñO}ç"ȧ—ÍülCîñS›º¿8”oý?G ½_én¾º¿sî±µMÖG/7ÕŸÛÐ3óüÛM§Öu°WrÓ¾6ÿ;[žðÇübÞ¸So`]\ð•×÷çšÀ~yýÀŠüµ}ƒÝ¶´=zä•'þþÝ_>òÍÓjŸ]·ºåì¦ žÝ¾¢ýÊÔõ]S/mîÏ\Ùõܳ`+µ_ÛdžX×6áÔÛ}s??ôüÜ<´æŸ®ß³lÁå}Ë^A[ìëkÛòKνÝÑøÉ«`×­_úø­X}qwnÞõƒ…öïõ¶ÛÞ3çì¦Â¼«»Á®ÞÒþèG¿™ý—¶¶6þçÕ+®l_™;úêçØïçÝ‹ulG^Í>øÑïòžÚ¸ºýƒ×óSý¶Í9±®còg¯·?üÅBöÿ9<ØÿùÁ¾î3ÀON½ÕÝx~óšÞ«;ŸYþÁ¯ÛMkæþ¯µ…'¾º¤¸ºëé¾ëV¯º´w°ãèú¶ X@¿€~°õŽ®]l|øêSß>òÛùß9öZÓýW÷¬yþÒŸn¼¸wEáÔÆÎÇ‘\ÝÞ»è솧´_yì½÷³†o€=ôØÍÓ.îZ»z׊ž;?½¥sڥ݃Ý7¯~þæá5ÿr lg ÍñŸ®Ë6\ܹ<{qw_ËÁ—~çž¾¶ÿ:²â™?Ê¿ì^ð-_þù{ËÚÑîüøfç£×Ûz÷WMÀ/:Ÿ¸¼­7ýÅþŽÿ}(×üßæZ/ï^2é½_Lÿëw_Légwô/=³c óÃ_7o­~䛿í±þäà̪¿´#ŸþÏV¬ùǃ«.í^¶{ +\?Ðßñù»½`›=òRÛßÿÑŽ§ÇÿŹ é†?|0Ðÿù‘å«Ollyì½_ÏþûKûúû??öÏÛÿpì™Ïïh›³uPÿ“M+&~ãcÌ_ÚÜ=õÂÎÞ&X_÷ø›¹é×ßÌ}þ^¡tÜ)WvÍùÞ/=ô·?oùÛ?:¶væ?žZ×öý;ú–ÜØÙ»ðÆžü¢k;{æ^ÛÝöè•Ýé‡.mo~àòÞî9G~ßvÿÇ¿ë›uzÓ «¯¿³bÙïçÛ®jŸ~rÛ"kï¿Mÿæ‰W³“®ïX½ì½—3¾±|Â_\Þ†r%7õüúÞ'?Ùw}vÚ•=mž\ßrÿ© ¹iÀ»V_½ú–öI‡_nø³ƒ?èO°ã…ù§0ýë¯ïšüþïÚ¼£¿í˜ðŸûó©ÿ÷ƒem×ö·=yróŒï~´ö‘¿>§qhùŠk»O½Õ6éð‹Ój?þíŒq—6æ¦ßܹ²ûúþU}'·-›ui÷ŠÎëûðãëŸûçs» +ÍÇÖνçȯgÔžZŸùþÕ]«òŸ¿·æG—v÷·\ÚÓßòÅû«Ÿ¿¶¿7}vCë÷?øå“ã6­±jöþèáÿû$è0Ÿï_Öü_°þgvvN»yx ÿ‡V¯ÿÑžžø¿¯ïê]rúÍÜ`ÇüãG¯Ìú»ÏÞLy g,þ|ïêÂûWäOlZúØGo´8ç¶¶]Ý3¸ôò®ž9ç¶v6~øÛ§î9òÊœq7´Oùü@Îj~úÖO¾vnSßS—¶ö/ºº x÷®Ž)ç·wƒÞ¿læÍý+ûoX9xäþ'–>|fk_Ó¥Ým7ßY5xàgvöe>ÛÔñ8潜}»ìüîÇ?{}¡öÁKÓÿ÷‘—çß{í@oˬzæú¡ÕÏ\>0Øsã­ÛŸé;½ëéÞ+‡Ÿý—ë‡×¼pt¦O6¤ï?¾¾Ù½¸cUÏå=Ïÿð,ØŽ‡_Íxö<½ê櫞;½yÑ„Ï4üé'¿]ðÝ3[›Ü³;Z'ãzZÛõðöë0?Y÷Üòëôʰ{Ïoš{ß'¿{â¯þb⟂-øàµ½+—ß|ÿ¹ÿx÷•–ï¯xüÏ>}=?lÕÿýá3ÿþŸïõçO¬[ä|ü»ùuÇ^O@–Ã^e?|5sÿ؃à÷©‡oì[¹ê¿­\}l¸sÛš'íûÙä¿Úü܃zaGÇ’/Ž=ûòµCƒô‡œY—mÝé‡8¶ú'Ÿ,t\ß_ëÑøÞ/Rß=¹17ëèE‡~1óï^ëÕÿ¯]?šø—Ç~;[ûï#¹Ìÿ7F~–Œô¾ªŸ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûI©¶Ÿ‘jûYrjŒüL­#?WÖC±Ïµ×Ì­é®y²Æ«½çÞÚyskf~ƒusqÝ&æûzÛ§§ +°$Ýþb6MÍuOÏg» Ù:OÌÀRÿ¡fjþ‹®ñ?Íœ3ù‘l'îÁ}þ¯°ö÷Í›Ò85×’Á_C›rË_{Ï`Wg7üSL+Ÿmî+dzqo`_ó©ÈéölgK>Óÿ.jï{¬»Pü7üOayíë=Ú¸{kï›ÝMp&ŒÚÝ~°?ÕÙÇO.¿ýƒÝ©.z&±œf5¼xäš—fÒ…‰¹¾î˜ÚÄÜ`¹hµÒŽÀ£…Þ² ½3ì¨êZù›ÖžÉ¶µÊFL=>ì8Mx¬iBgO{ªI/³l <9:øLUoÏ@¶¥Ð^öîȧ‡£òñâÔpTÞ~ºÕÂ& }ùær!Ÿéíë,ÿ̩LJ[ë5«\œšS½™Gò™e}™îtù‚ òÖ°c(ÊE¯»¯kZºêÏ”/‚¯ ;bHŽ}°ª™r1äWËÄM}g˜±êÎÍ,d é!b§^zzV¶³‚m ½Sº"úm)-—*GfV™ûWœøm6c˜wif®/ŸÎLΧzڳ鲥uwÙ;”í¡U>.Cð•2b°jµ‹¸äz2ùT!—/¡â #vxr]=¹Þl¡‚³s7æA6@¹S¸oR¦µv|b&&`beš‰ ˜˜€‰ 8<&`Ùþ–Ñi–ÍKF›ØšOÁ·;§æ²½‰ ˜Ø€‰ ˜Ø€‰ ˜Ø€wJ-ub¬Xº9&M£‰™þLçÌöTKn`,ÄÈ*ؤÑa Ur€Æ¬‰ÔÜÙ77}&«:ä™+ŠNÙFQo¡eR¦?›Â U ]_1 arª¯·7›êž8$MV£‚]öµ”ÏLZ«™ÖZÊW+ZFÄ»ÜÚÚ›) MM£ÃUµ+fm#tú§Ñn¾s_vBFo_¾5•ÎÈÍrYsè¥a'´ÞžLzZß»’œŸ‘T :ÑÂÁìÖt®3—¿ }H;¨-,¯„ùéˆÍ”k_g*ÿð`O®;Ó]>%Æ_~,+E²!×Ý[HÝ’ÅG“¥æü”»H+Ê^•#azê•àRÝÞ›:«T¾r;ú®¨"ÓsÙîBc%ަ»ã«ÌÌ”'¶QòøÑ§Q¢B´ª]‡¸#INeá”já ek:å“XÇHPXÙb¯c”ƒˆèÕ¬{vå#bTõŽ áå +"bŽˆUW˜žÊ¥Ü>Á9&Ó*Öª]t¦òÙB{W¦Pþ}ÝEèè±£+÷Šò”L¾-ƒ+9úT¢JÙýÞ’»7$ñè«qøT RÝ®«¯SùÉØÌ±jÈå:'æ3™e‡<ª7ÁJs VVÙÙü*½¾ìŠö|ª%ÛW>?Q¿q06mÒ1•/V>"-å#2\±%Û™*?ž=­Ð)¹|O{®3×V¶®T=fËänc®`pÌð´ò+}ž–ð´/aÞŽ•ü׿²Ã:£…—UPìW弬²‚ J˜ÙùÑš¾Û\¾3ZIù´Uå§D+_½½Ê'¾j×iÊ΂Oº6D°Kº6ÜeÉ4š»6 ‘n؞ʪJF¨œ¤¹l|a[½{Sí²¨©Zõ™83ÊŽ 4´§º»333™t%î‚ø‹ÃÈ+;œ|§HÆ_1q4)ÛÛÓ™Jgº2Ý…)©žÑ'“´Zõ¿Úدzè×r·•~+_­P?c)Û54jÄWùL¿ÚÅWe=(«X|u¥`¨²SQîÈÖ!Ö×€ªSÊ@¯Ù^sÙ&î¨9üå™j?üeïMµþò«€‡§ÑKµœ¾î\wÙî—T:Ý×Õ7tŒ-°0ÁW†ßÍ9„êðrâõTå{7ùéá/‡(›4{¦>?•æ_î¶…ßþØzç@jyÙ»Œ¾ÊW$øùêõærå빑@¤ìÍi)¿ç?;žèJò\[³•ä&wV³°kÍçºÊG†vdò2ëËfx--ÙB¶¿^ç¿0ňݙTÙåBéTgzJ®ü’À #d™¤º³]h w©Fet·¿«sÇJÚL:I›©V;¯ü­IÒfîòNŒ¹´™ +h«ÊOÉØ¿%²|ê«zOÙA’$q&‚]’8“$ÎÜr—ÊÖFGGâLzÌ%ÎŒq[þÞT»0ª@¬&‰3IâÌ0‹£±—8£]gÒc.q¦¦_íâ+IœŸ$qæKؘKœ©àÈTûáOgîRâÌhžôŸ +è´Ò7B[9Š›Vm—lÆèmï1zöâîÍcdç0fZFNx¬i5=iªÌWöEn«eÊw⎒fIc²›wÒž'áowÌßì¯3+ù„¿%ü-áo£Š¿=œ@¢¾%ì­ÚÙ[ 5án w«œ»%Ê[ÂÝî–p·±ÆÝ‚a£¦ÊÂýcŒÉ•ü×/J˜¢ +‘óu>De#Ÿ¢ä‹ñµZ«ìÔFF{FÙ7†]-ûÝ$¬pzv0Ó9½3µ¼©²zÌ1ÆÇrOšlwK¦5Û=äå¨Á佞Lª0©‚67†¿FrŒõÜ)“]& w†H(¡†;zùôXýjò™®ÜPMFW£š1ÜÛ¥·»»”‹Ù—êí2ÜgªV/´ZÝ‚ÿjµðÿñð;ü9þ¡ö®WØŒˆÙRq#›jQ¥š+¸Ž|´T ŒÁk%+Ù¦j/H¼UÏÒ¹®ž\/Ø Óú†8ï£;Tt”ªœ-Üa¤­ÚKȇZöÑhkP‡kôñ…²½Nå“XÇHPXÙÞÐŽ!P"¢„®]6"C$Q1ªzG†%1G‘ ìs ïD1B´Bs¡ÚEh*Ÿ-´we +å«_wQ:zÂwÄa’*Ä;˜GNâÏIü¹Tü¹²> Iü9‰?'ñ绂O.I’IüyIâÏ£(þ<Œw‹Œ„º‰h¡¯HõLbÎU-ޱ$æœÄœ“˜ó—Ù¢å™ÎÎÜ@¹ûÔ™mk/À¿×¥±CgÙ;}­zã5ÌÉfVÔ$?ôÎð‹Ý²ÏX_¾”ªÊp ¿T½ûÖ’mmíëÍ4äºÁ¤è._rÅÞvå ÆšdKùnÑ]¸‹«Z¤Eâ‚K\pÕâ‚«DIüpUê‡K'~¸ÄW~8¶èÆ·å3™îñ †eƃd˶åÆ÷gs™Âø|¦e|.Ÿê*Ξ8膛ºe»LS+²]}…!îä 4õü°S£]6N™NøKE À#æý™”%ñ•‘ΙÄfJ£Ô‹FßÎ4æQcÚ]ÓÛ“Iƒù–OêWªÚŸQÊ }x°,ÿ +üjñG Æ_)–{ã/&Μę“8sgNâÌIœ9‰3'qæ|r ]7ìÌ‘žòé$Μê¶egΗq挄ö1‚áݱ)í¤ÑëšÞ;@­Úc²¶8iÏQ¥¼¡ü +UÞž£ü®UÞž£üIÚs —†U˜žÊåZ}ÂsL^ºRi¾cՋΤ-G•‹Ð¤ÃUµ‰Ð¤ÃUµŠÐ1×ݪRÝ ÚÅçÔ‰k"tô$TÌY’®Vw0‘Øéjõõjý4³=Õ’øzß;”4.jOٽɒbÿ‘:Ie_Ú2W ¦ç Ž­•HÙ×êңÎH®µµ7S@jÊgZ*b£…ÓÝÕÄéâÓh×¾V6ÂêhÙÔ;0ªes†' +1zö%1âªÜˆ«Ó­qåÒiù|Dø×ÇÕ ­ìMkÏT’væ?>‚&ö]h­<Üûc–¿?Ù– +2NåÓÃŽQ%l¢|‹e0qŒ´Q0Ývâþ¨v5Ù+îòI܉û#q$îÄýñ5Ú—ÄýQåî¯‘Ó ìBª‚´¡±ÁN—í\-jMúîå + w~h}ÙÝpšS½™Gò™e}™îtùŠuä­áߪÊ<[enÕˆ8¸ÊÎåíîëš–.¤ú+(t¾2옵æSðíΩ¹lùeür™Ø©/ {‹¡™…l!=„§1èÁ§ge;+ظÐ;£I*$ý—Foÿ¥ +DAÒ®h f„Úiõe_OSÈ•Ïhs#€JÒx©\Kh$/U a¶æs]å£CÀ%}¤X±þ2}¤FÄ›Tq7¥»âIšÕ—oîëÁ9 +]SUn÷&=R¾Õi‰öv‚y\’ƒ6ÊÜɺ6&sЊ"±iˆrúчVÁŽ<´òñ³Yh Ð±ÄÐêµ1îû/;Qh´9Ì eÚ‰»üK»ËðK°ÂÄ +L¬À¯øè$V`b&Và·ËÖK+° +EbŽ*+°ìn£Ó,½Ñf&YS‰8:xab&fàW|t3ð«¥–:=1GŸ!hICpn.×Ò–O•ÏÀª× +¬`ƒF‡X Ÿ³vàØíI1Æ®ò¨¨ü¼ÊËʶc“IƒÑaC$é°1Â|û®vØ‘ݺk {„xÚWÖ/d¸“½+¹‹~´—Šªv• µ,¥:BéþæÎTºc|-ƒr=©t¶°üþ +œû½…å廆åÓ#v¦A4Gß‘û⨲óUåò¨—zc6Œ%–ñe:9%ïQæñ®¶7Ð^A%|§¼%½® VØ¡èkÃï뫌•ÏL§*·¡w†µ²Óqzûò­©t¦2ÜÂ/Uï¾É{arݽ…ÔP÷õ ßè{ÃŽb…7ÚŽ]c,™¾•^:üÕÛ¾Õ",t£lv“Z‘íê« hâ??ìÛk—Ý»)Ó ©ÈuxcØñ"©{÷:lª5)Kœº±’ˆé]ê0‰ùB£Ônݯ*u¿1­ ÝÁ…¾‰1zlÙ"FmèÃ=¹îLšlüÅêÕÖÕ\+V×ã/&ÚS¢=Ý=í)Qžîšò4SåÑ«=aÙ{¨U»NòȯúðmLÙB±£|ë ++[§ëâÉ "ú RþŽ Ñæ(ˆˆQÕˆ ‘_DÄ «0=•Jû}ÂsLfëVê¯zÑ™Êg í]™ +®ÿHDh•Jž*¡å3ì*¡åïH"B:œxU»ô¼#{:‘ cM‚ŽWur©dkFw;Žž-¹{ó}dQnǒѧŒÁ;ÙÇ|ßäF¼¤·Sµ¤·Ó—>Wµšü_©ß|H¹›H¿•¿êña'ÎÉðjïЙY£O¶U.µ«]´u¥`¨²;ûÜg1[°3—ŸRzÕÈ8ÆreãT“–"U¢êÆLO‘º²‘jo*2mÌWqe§ÜhmÇNbÜ—Yc° uÅšwµKÖ;gÕ“IG‡(»&o´°ˆ;aÕÎ%ôò¯ÆN4ð‘ðúSàVð+°`¸}€¯¦ÁÔœtaÚøͶL£66}Ä ·Ò†£XoáŠÀ:,,n¦S¯™:ì€p±u@@– À^y —“t<Ã3-8†fQïzŽiëð‡,‡F€˜4OxKw‡q5×Âa-að%·^÷4¢ÞµL‘²1…îñ3 _òxpbóÇÍuëa*°Ô@ŦæÓÇ=„AžtÝ0P^À: ÝàªÁQZÓ zšÓ€Áu¨WÏDÊÅÅ%à p)×â(,X~xG ­  šŒ*êDÈÁ“®iñu4Øæ9ˆ$l«E C‡ÅÂãl#ZЀ¯ˆ!¥vÕEjph·…dH¸®ºîb': +Äi¸.ò˜‘kjH@mŠBȦ©ÁÜ-XeÜ; |Mû0%AÀÞØ&oxÌuàœ ÎKm äæßš¾Ö„c˜&ÍD÷L¤„YôaX ÝÖˆ"áeÚ7È–9«.÷8s €™¶Klpî .ñh${„xª± bÖÈɉ®à5w @Ó./-A€âùÏšåðç"S¿ÍŽÃ8Ñ|Â1I›§N u }Pzð`ã™ò€gÀI÷h»á á!‰; ,T-‡ÈÅ€,\f븄†$PÇÀuÂÙêrtÃvc v +ÈÀ@Ìö­óÒ ÷ †yº¦äúÄ×0²Òð¶‡iÅÔ<+®&ðØ#êC.,\hr.¥–αá7ˆ¨ŸÖV›@ÀÄ<+0Ȓߎá[LéÈ %(ÀAgD¹íÒÈ(ñ«ÀátÞ: ~Mc%Î'MÙ‡'lúGÛE*DÁFV«ãšX¼åÀ_M:Øšf*•Á#F +ï9•]¿³PŠ#¢‚`D—8góqHàŒL¸ž3ª@‚­ ‘€E† 2À`žyR—PcCo$ÉR8pJˆc ƒ’Ä*"ys-vä Ң胜…¨§:Ìÿ,Éx€)€âF†poë]ŽLõ!dRä÷xÊ&yi„4GúZTxÀb76iå2^„j‰<Ð&Ù‚G‚Iñ—Q[0ø]úBu~']CÀDC4ñ0NC‰íj¼—»øe,%ˆ b!…4YmLyŽrVì(E†®‘“E!™kÒS +4äI€²rªN#—•`*‘8BJˆh”âKÒet9úkJÅÈ¢q´©Rq«Xp«¿†¬Y4,ÆA47Q3 †áÒºØä2ÄÁéh“ÍëùÇÝ´™EâUý5%£ZñÈW$È”æ}æ°°á8Á§ ²V‰pOú¶îh4•e¢±~¢ÔÐiã r{"¦j¿MÒ ûcåÁ%Ä ’Þx.ió§€… ÄBZоâÁ±H4§¡tÄ'êG7ŠF–+EªLŽœÈPP‚ÈÙó}²( +¥#Åc§%&€ ²`KF+tÔ>çà¼yçáÃ.³4Sªø8ÿ“AÎUWѲ¥£Â¡Œ€,t‰è’q²iÛò,«Ä¨:ò‘Y”È0aÈ`¿`¯kÇE`—=bšþ@$ +zJécÖ³>L> +Ö˜2gE^?–Gs—+ƒƒÊ$ÇÒ9IEg7} g +FW&¾z±5NãJš#Ú°$#“!2üHï ÇxL†xXØ3Š!GŠélËó7ÉK©×Ë=6XlD—ŸrÙ¹ëùqM‰Ëãp LK‰“Ø®ÜVG +´d€Îw« 2ÿ3¤_ ¦MîÛ:ðÝù=µÐ»ƒ|Ã’LÖÖ †“–„h&ê-ìKã°%0ÅœQÍe²ã”'KFQe4y ‘®(R§ˆ†hSÄb"Žyº¦ÄúÄ×0ºÐi +v˜Bî3°9Žb´Xr>™DEq.‚Xœ~€6­&*­¼‹Ñ lM‰Ðm<¼ ’õ¹J¡‘<ÐU¡dÐ4Rl?oø‹E@»•±oƒâ«†FR—ã\1-´¶É! ‡½¶(„9 (H¢‘kWJÝ,àKSC š‰‘U˜öJh kb¶åáÑ&] M#Ûa½Íba O§kJ±caîh(¹o(ßFhûkJrcÁÞhD˜W%ŒŽ¬K…µ]©*L¸ˆ@ K|]?>€ÔØL—F’f…ƒžR“œL¹‰Éà‘ÓW:ä¶¢ô%ôC𚳋?Bê=a=—žYe°2lyáÞ¢ÆeP,ý¸H&þj¨ut¤§u8I‹Œz—OùŒDúÈ¥]ä®80±{‡´qX›”u~‰Äàùá‡èÄcŠª°É¨3(3AEœ8Ñ‹âÜ”’B >Š[‘ÌŠ¬+ó–ðÒÇ6'ºœ¤¿ÃܘėAL$$/»ž<Øœr“ ¬«Fs/Xf„Ó3bù‘ž¿ +1X,ù¹jäf +ï´ìZU‘éP†‰‰Ùg±*d Ћ@GAÇ£ì`Zq¬ Üm—¥úãQ»1ؽ#fGQ’‰U˜ðJg+VÑ\xØRù!ÈtuÊa7p4a„ÙB0£$–pI»`–I͈%oD<Ò”àaÉø¤Lðê)þƒ:«æÈD3‡ÓD(Ù „%ÍÓ\òó ½cÌ‘$úÖ4 +¶r¢’+cÜ †P>;ê#¤È)÷1éa|F,Ì"%88?±(J··EJe›Äò0"™ý5Ñ\ŠX®E4Ë€ÌT;)/€sÓmiˆ€-{[’ËR±ÕÈoƒç^ºÿ,ò8|0QѤح±d ÈÞ^n€HnGr‡.Jæ%ÕÞ)Zû.Åë0G¨•Zåð>Ä6*º™DÙe®Tü‰$д÷5ÙhF q›HÖK,/&’:Ãȩ̈Ñå*!$ibĘñÅ‹¨ñN W—Ê&“#òuÊ>ÄØš.¨Sã©'¨d¨cèDC¸R4Ç´3R ( +”ãúbZqt]°ª„àdµ˜ÅAª@tOˆÅ’c¢Kc †±I™"\8C¶ýTËÜ.‘ÆpˆâÉ>òUR1…É´M®_!êYIKª(FÈ=i ²/«St+–ÓCÞÎHÚO,1¨dîdÊúdB9ºL·VÈáL±ò Š)±s } Œ˜ìÃÖÿ]§ª) SÒðd,›üƺe +Ç‘NäzÂã§H§+‘CK3Š%"E“•ÒE§,Ò­ÇaNr™ìò†ÿ®g˜µÆ´íP”ÜæÓ‹É3.&¡hlš,®HûWìšÚØZÝ–©ÄR¡`-ô@ªÃ™¸œ–Æ:šéÌ ô ž¶ÁN@=;8šµÇ +BlFéšR³ŽâFcOlR.–ÅÉÆ,ƒõœ1–#xT~`Ös¦ÆvðxDò¸úkây^¡4°[dP•Çñ$*OžhT~\:¤>¡®„äèrp…W€¬7`Ñd¼ÂRSv™%uTŠðk¦ LØ~Ú€)ƒ ÀiÉGdHÇ2Oá”J‹d•E“΢iiiÀB¨%r¨ VS$HùÒÝX¢Wº¦T*X4U,˜LÖK7‹®eÿí(cà´8ìÛëòã®–B‘½W¶,Rޝbt£ûÝ)ÌPá„lXJ]¦äsÜu=–›–®‰f¯E“ÛÂÉoiL!qé88”Jȉ(Åç ƒKóP*R*‘&…M(\‡/–‹F9)álµh6[$ßö‘¬$WòmTñO¤©vÓé²ñ8 +ä¯.Ÿ O—†J ÇiIÛÀÀ#.¢)ã• Ñ»uYK4[ ·ØÅ(-Z)êmŽG‡†AP¢¨´SºCj÷Ø$7¸šNtz˜í˜}³(êiJ(A +pUº™ÙŽ Yª\Á¥tl*ȤÐì¶¥ÙÉg믉%¼…Óá"ér ±EºMò#žu +pZÒ¢ëÂ=G$Ãàœ*‚Þ`äò%r¢é ±|‡XNDŽšÌ˜ÑI§¯µTº9‰uƒÒó8$Œ©êäá´ä¦Ò0|¢#¡dä‘ô€hþ@‰Áág²*ˆΔ¿†îmòÇŠ$Ö¬û+LªQ׼ܪ´ÙpÉφÕ-®W«²"52;\7že—®‰§â•ÈÖ‹ädá[‘¼­XfW,û+éGìÇ3¤Ë”ÎhÈ|™H>¾ËÙ‰eõD’l(™#œˆKÕ‰‘nO”c$Ù|Ç&ß²P‹‘Câh)አ»ètyäñsdµ ¹ 8”oÅmb™1²›£†uÄôF/J¼²'\ú+‹I×D ßΚ’ÆqÄ€ŽYÙÈ3N!Wòm» lC¢q63£fhÄC¶«v‰TÄM”Baã(jä ¨]±r\ÜB–ÌóñAjÂjœF2«Õåj)òº”M­áéëðÏ¡¿ +`Hæ‚ÝÐN3UÔП•YLÃÞ8™Îò!Cž)5Š(.€‚`1‘Òy”:]V‡V@PŠñ„|š±?P§4”=C’gq`_–ÈT³J<Ï éÐÅÇÐQÍ<´`VOŠ [*ký§üñK|éØ ßúIT ê|ÈÙÕAkôŸA\MêÏeÊ8EbI1U|K=cúéòÑo±Kri;uÊ+èBÞ Ø4¨\Þ þ,ìÉEf¡QÎ[`^Pÿ¬†mŒ ?œÎùöòöln¡¸ ¾8PO¢ÍÕmYvÁöhF*­|¹øœÿ•ƒߦ9 uÌ(Å’ªY1‰ògHÃDÝ£1ðz¸&¿)[ª@ì"¾ªS_h,ñÕFÎr¶d.È&Sç$gÙ‚.Ý Ç„ ’Ȱµ LiÛ ½ë?'?ÑÿªœŠAÕ±B¢ASátgÌ"ÒHúûOa#)¢MÊf5‚ C.gàEõ”(®Rô‹rÜØMù<(ßÃpÑXEjQOé¼³ °†™R© ½ÈO©áã_¤i`lƒý‰\ABÁc0Pi‘ŧ ™ªI¨[TÌ‘&ðžzHÞÿ ÍB§ÞIT +EŽr:;ì}RžªÆâSÊ$%Ú7£0$ÍÌÓL} 1þMf#ÔªŠ”LnZ…EMè\=­sŠ]cñ9´…\yätU'‚9ë·þ»ê1ÿ%>ÛHí؃`È3ˆA8¥äóÑiôŸAd-Æz`ÂÞåâ[êÃ?ÝÑoñ÷7œD±Cv…Y1ÓeOcñ1!³®q|]ÈÚ×"ÈRÜL½è?åßX⛬%©~¨·hø:TÏÔh ÔÇ:;ûº²Ý©B¦¥vZ>ÕÝ–)Õ 5h‚L»uwT]‹4ÍEOM8hšìMª` *Rýþ‰ú8ÃÑYÌ¿pV •\HH]ôÕºøøœ Á@õzñõOZñW²0]N§– Ø¥>3±ÖãžÙÝØÅ¸¥¶-ŸjÉfº µ¦¸—ÆÃ5ÒwœëµÛè@têª#.Éù‰ÀúŽ\Ïã 8Ž+ÐÃZ;¯+6°^§²±,4ý@ÂNL—˜Ö½Úƒ½yNob*óõ:PL„mxz½ÊÅC›ÑVßžÇý6 `·6(`e‹Y* °õè¢Ô¸¯!p2ô\ ¦ƒœÈÚêĉ_CÊ×µ„ò%å£/Eäºs¢Gdƒæ(tÛ(›È] }Î6ˆ7Ítî2‘ ŽC+Iðõ£y—I¾®\š¯SD_wû¥wÐqˆŽGWsx2%ɾNmdÙÃ&&\"|ò +  +¹@[¢â)‰¢‡ÈÕ±+u2SóÀ€”D*Û9ƒ¼ð¬òB–î 4J×ÓÌÒ¢‚ +°LMž‹ +†‹Ï0Õk%RÅà³ ÿ U¬o÷©ÛøQM‹+ýd‡Û5d—V©?ë,Žœ>Sc + ²]N âQNÉê7N6ýc]ôíºRŸ¨‹M¤.6×& 5ÈDÿDvÕÄÏp‰s?§ 5!¦apAkàTc½ÿ[CMˆùL©ør©/Äæc(L‚h5²?Ÿüœõvp[CnÏ¢£ïÀlZƒjƒà˜Yz¼\̤‚wžS‡@ý»vÊXæÂ½°xÊ̈.Û¸¦Rˆ¡C£>®é·÷*E\Ó-À¸¦n”CºñæÝ[Û€ÃvGÔ˜œžÏ¥3½½µ32阒·¶%µŠmIjþŠ->0][·ä-`ƒ +Â…M67A¥Ô@xª¬%9—`']bX.×ÙÒ¨ua¹·ˆ4ÔD³|H#A(°/!4¬e‡ h. + fø;M^XБ‰u<‡èz4ÞR1¯P/G×i­iÉþžÑ0ßÁÓ^4gœ{\B=Ñ1mÛ54Ó*{0[ÃoiÐcQ‚²÷"} +éò«øÄ­H$ ¨ P]pŒFiNÁ–)Ïšÿ&F‘JlÏVºÀUÇD`bhâŸ?‚'¤”täZTa@Ýá(Ò,èqWÈ¿ÓhòPyVñïêÌÉF1Eô}ÍYWç\‡†èÂŒru´â&ù쨕µ<јA³kšU¡=D4¶‹P]ÛÉèXAû¯Vw¬ª´gd››Á<Âð›áW†)%î[Ä]6¨i¯Ž¹•ÜšÞ¥^­ÂúÌQ–këRäSd¹µ–™T»„>AÇæÊ2³æwPì;Ök&:É] ûËaQE%jvv‘~,êyA}3 ÙÿÓ`Ú(ø4.¬LSÛmáb ž!0ˆ VUÂa±€ F^Xm†õϘ$fb[.¢}¬)¡6ŽÃ•ÅÆÚ?l#ˆµÜ `È›"(©“ZçsE”faŸ âÜ”‚Ïí´j®Éœ„ LžÀ\Iì©’Ç÷ïÈÙžêÉLìÌt·Àkl¬{&46–|hJªnŸ•›˜iÍåå!¼ç‰[W<©÷`]nxàÙ‰'¤Ó}]3rº¤5p¤õzó¨§LÁí¢ìMºÂ Ë*]j{®Ék󨕊‡5‡²øLÖca9²%¸«Ÿ$l=IÅgX)é9f24o%‘%H®l8‡ endstream endobj 24 0 obj <>stream +-¿é>G£$l:âbopÌu¤FšØÂ¥¤îý)°ý××b²ZAɸt(Ý™‘Æ«C…eÐ%Ø •ê3u‹.w¡ü-,¿Åv¢ØÉÙ¤lù‡‹B•¹T.lh.Œmè”eOYVØn TùÏu0uAÜîc¦A%¦t·6q t^¬EÅ[Tø ÙŽK}X\áªÀ’p¾•*àŽ%<êP±-&]q‹^˜ÕdP£j³ƒ•–§È0¸e…ýºadZ‹Ò±€3ƒßÂ6”ʂՔ§‰šI>P™m:· äÉpù<‹ëM!O‘cÉj%8ür±S"×By|ÝÝÖJY´aÂÃC„U×qR® jt1= á±w]l¿áòu)Xúkò5O¦!¸Ÿ,P n 5 æ>‹T-‰Dab}^š(ÝbÏ<Ù¿ˆA"FàF‚[¢a=ŠŽKÌ©¬­.¢î`Ú¬Sßu`’XiÉ…DãÈ<±NÁEiâ¡ZHTLÅ:–_™tËc‘v¤[‚îÈ¡‚,R@ZÁÐé.7ji'hl<Š©¼tM%.#6ùÅ…¥¾NßKÁ­-\K#Ú© Bç]Áò:“ú«€œb6Kõ`Ô§ÂÓu¦…ÕKëLŠÀ¿É!íqÏ;ƒÙƒË§W'{Ï•Í.°]jÆ­èKN=×ÙQ Jj.ìbG`înK§cÀͰðÂ4Ï`†®Ó°ÔÉŠ;¨R¿IŠTU‡‹ÓtÚDy# JËr¹‡¼ O§n8µ1²CZÄÎ÷ÂaÂ3NöÂ\WºÒ€º%éÔ«À–W«éª’Η( Aøb‹!Í”AL«Ôt›«r)œ€'Q³ì">@‹ØJöþ²€…Õ‘3F”œ-¸â7 +y±-Û[aPÒòøöbì#°ÿ.ŒN7Îqa¯Æbo“Ã\_êiÐ…¶£ÒK¾–™lVÒ¦0'–Ça y½ž[_R/ˆÏâFÎ:ݺâ!š¶Î•Æ€›ÃŸa†bz_k`ÈXéaSÿ–—ÖÌ sBÊ n€îštö©Äˆ©X²b·›{žjܲ—ÛBêºÍ­¤]™ÂŽË&QX?CÁ\á” d‚ŽáÉ{±mV„¼YƒlELE´„-$_Ò nõ«ñ¥kªËeÌë’íâÑ ¢sM–mb?O +ÆFè‰k­ðR.‚†eðÝCžáÐé¡þ¡ÔtÔoúìqËnI‹Ý;©Õ÷áEçk•éÞS=Ì/ñ0ƒ™¸ºE÷b1 +]–P!õû¦¼_û9X·Œ à܈ï£@um"™ ²Ðô/˜À†˜ô¯s›xêÀ?é^(jóàb¹³K$‚KXÆ2ž”R°ó ¬ás¨Yõ\DŒ„È×y`a•û‚ †²´”ø‚úºÃÆ!P¯‰deê†.UDÙLȲ³ž5½^6Ç:EP¸©ý²ËÌÀ6ìb×/¦EŠ•«t_"FJ Ýó©Ÿ·Ëe&:fKR„¹#ìlJ‡Yvö¶-îu +¬‹û:‚JdJán!/@5œÔ(ôÏQf8ÝÜæ™\Sì8¶ìˆyÐTòÂKD Ü‘!â¢ÒñйOŒê©Ëuš&h˜XÆ^ø]§“¥êP6ºIj‹NWÚ³ªÁe®|ÓÛPÀ‚<ÈÜPL`š|/¬c•õ¥ séu²¦K£,Êë¥ +3DLÐ \~M½AlT%êÿ‘º}£œBS½ä,­tè ;;áºSQ¡-ˆjj¸×æ¾:“-›f|» +7ÉÃÚkìî… œê«¨7¯ &osÛ—:©Ëá…ÓºêÈ-£T£o[§î/Ø4“^°øzC$W‡¸¦»˜$‹MCíëÒ£–>L‚ÔHK]Ò¡ËÖTÀ­[¬ÍIq‡k*¢äVlŽÉ¹ðo×ÝÇ•j¥ÇWÇ‚ŒL‹7=¥;I8#ÓãJlY¡S‰#·ã+ëˆ_p 2úm(†ÜBÐÍÀ¸„²§LÚQãsÉÌôT'Š”e.uÕÁr4Ó“¢Ø 3 z2w@wtVß,,eCº#ãGMºQÛ14iÖXR)$BÄþÔÏU†h³ÈÎÒdwp±u@#¢ÒQãõdœRä”"L±õ"2e’$¶àyé®NzTŒV–ΔDŽŒAD¾„Fé|t”ÔLÙLs P§Ñ<æv@åV-ÉN6&PT 2‚ +ðymØFBÖcr¤BxlãIúµëeó!î¨àqO@<óä*%ÑOG±É„¤E 'ôæÈ– |W9Ib͵%CZ¦œ Ms ù!î¼çq 18Ý“]°Q¶²H¦vŒÂà.Øò¼X–LËr©øÖäM òÆàû6ë¬{ è† î‡ýøMî b³ v]ný&;¢EæëÇAZD¤<8l '(ƒÈa ³þ Áíáäž ̼Êä>“:Ö¢³önSÇL®ÇÄó iêþ ê +aPï<âoÛ@õÆr©Ì•Ê]uª¦cjÃF„å›oÆu‰â4ìç%¨t“»À+ËßrÀÚ+|‹Œw‹/Çr E>)Ê8d +tLYGÈÕ@¤²rÿe“ìÿó[ð½dQ°Z„K†:¡ÀŠ[¥.–*ãèn ò5Ùä!v\W10óo‘Ä¢«h\ySéóž!ü–gL‹ª¥¸é²  _·©Y\Ë!›IQ'}[ÿ² @Æ$‚âbIl y_8}žx¦ïl!yP¿KꩯË[ä=Û¢ªQM§û7têŠÄ÷é–'é¶Ÿn,4(÷ˆV‘í°0Ý1"k±Ø¤¢F{@Œë8tM2u+4ía3öƒHO ú+™±G‡- 6È«A²ËŸñp±ÂÏwR3%¢SSzò¨§"5Žàn +¸Qufà›RXþ;ÜU û ¡1ÏMÿ¨ßµõòˆ@ÉdW­GYþØ“Î) +c—Û¬¡‘Áýj¥œ#ýÆBN‚KHm®=y 2(Cp$ÒÝ…Ü8Ö¥@€ <®Ê³ò¿úW}K¬GÞÒò¦fË×å½9xV-ºgRÞ`ðÅ;µBÞ[„È5°x³‡#¤±ëÈzn]ðuëèÃæÛCLG)Ôê™Ô›6–z}³¢Ë«˜1ï›ù'üÔÍmOñJBvÖËFÖÔ¡\«—7IpŸaú¡,h SYÙQ¯Üòs6¼«[zåÑÝÌÍùx‚žské“G³_^Õ£¼[;ç‡ð¼Oh-dòÊI?´¿,ß<š©`èºeùæUÀQ—…µñäWRý7+Ÿíª’ÊwôÖ.¼g [h¯õêfvfÓ™…÷Æ#x23¹ÜÚ?M«õ¨.7Þüµ‘ÿJÿi¬‰üZ|¨›DõZþß= fÀÌ{ yZ¬E˜1ø _~Nl†ïs±/G4ü•M«â¯Ô¤õ6ÃÖë40ß´B«÷£Ñ_‡XÐÀ”C«÷£Ñ_‡Ø I™æÕ{áÑèÀ¯ClÒÀ†î¬Þ fèá_‡Ø¢õâæÅÍ Œ¦{á_‡ØfªðÇÕ‹{Ì ý6ô¨ŽZÜ·â¶ùYÁ_†ÐÅušþvùÃèNè·¡GôpDá/¨îϱ8’ðB¿É1)"¯5vÍ70Õˆ+ÏÉÓiñðW þNù@àWOVŒ×θíaYƒÛ>p§è ÔÈ Åtú †|+žE=kèƒÂåȺ7‚È º^@¶!_å $¿mõ¦jsòúø ù¢E ÃÏa¨žÇ²%„Ô;5 õ&&4[!¿ÉYžk‡þnÊK7|ˆiÉLTí\«ÞPÈ‘ØuÑcnûSä» (m5Ù ÒÝâ› +ä—¥d'MÛäo²>+Ô-tѤžF‹ x¦ž³~Žêð’Ò ¤öÂrDä9ê@GŸàà¾à»+Ýô_u(Š@“Ô ‘Š [sÈåuêª š£ +»'¿JV)<ÏdkIz"Oœ|•ºõ»–ôÒD-9™:CÔ5Šz{WYÑÇh'i|RkñbGgœH=’oZØü•±g²3e(—Í¢š®"ÈäDJùª´-õ ¾ãÕ5ëeV…IMž"3QäÜ¿)l!¿Àí-ÄTàÉÉWùζÀsاLð' +t?C¸m¯8]¦‡@êvI ²_h†ÚR‹¨Ò¬W7’… MDnìˆ Î"r³%ˆ $’®§£«1^ÜJ‘@¨û ŸòM}ŽnœÁÑøÆU:Yrá Uhe¨6U6 ‚(X† #Ñ‘| ¼|‡SËk O}Ó”;#Ü"Òm¹˜ÄRù šüªîó4îÅé²…é/’'×—Z¿ð’Ûr4iuñ6‚TpwšÒ ¨ I¿ü›KÕ¢’.)ÌãƒêDJÁç,¹3Ô™‰œÚµ†PEg¼$¾*C'ëÎáma“ ˆ|IòU ´ÈÉ&3˜rƒþ¨©¯çO—oÿD6Ï¡!wŽ@ža†¹ƒífñÌfè1l;-ø£¶Ï·)FÆHó)/º“2ÎQ|ÐQ£ñµ1!ê·%ÔC +u qº9Åñ…xàWÕ|»"…¡âÜÂ`JÁáFº+¸LR<œòN ¤<(úâ‡Z!ˆË”Œ^‘á?r ué ñ tð"ˆãÕ¤“8‚ ¯”S1Ééz™£šô C2&–N4ן +öS”SV|û„—ãE –ç³&”0ãË)¤IímBÅè´# £4ÒSÂIHÄ íH± áE Â$l…zÐŽƒ(5@yÂÜ^oyRŠ{Zä %ƒ/ŒB å…2ˆD ‚”Ä(Bí5vé"ˆº2#ÈQ{E<!–áóLö#Ðpuµ r,ZÆÉ2Š E\^¤H•¼V¡W±.2>%4òÌ– ÎÚž„½<ì(ï29I7x˜”ŽÚ>)¸‚‡Éä £{OG…y0^Y 91 _màê˜rh:!Ö/Ýæa@Ê`)JÉ‹â&ò¥R(…&Å’’pøQO å€ê†KA‰irÎw@¬âBI Š2Ù?9A™lrªMøe6‰bŸFÔcõ!-Âd+2¨k˜ÔÅ/†~X{iTšëjJS³_‘’*åZ¾öøÕvî@S«øwäÚÁ»áêl̤ŽRÔX±R@q€æs&¾×•A©c»¿Z”NtÝ)ì$ Bù@Íu•¤£PHø£dñø~99¾ì-T[‚„«d5õZQ E$vð9Et"ø$ƒ0©<ø ®W ÏĬçûc36¥!À+Ò§´Õ›j0µ–&ݼ^rSæX¶Æä¤Üàš|ï± +Ê>ë ÃlÇ,r&¾`‹MÝ +>Q väÃNz‚? „Ç.²Ò"è)ÆüÅ–9ÆP@0Ò0V@¶®ø:sM ßDåâ„‘JÁ¬INŽ}”Ì—qæ +”Ž, %öܧ6 +4èÅàˆ|¥#“ä‹+izEšÔw™ÐPÜ/h$dk.‚‹Rú‹G‰á%fk:²ÔS>¸a¬o„6•zìû ŸãÚq2Ñ“"m°Ò%]EþƒÊ<Œ]Ë }Z93üéaó`ÍŒ að%fAd両% ‚‚ʺô9gQÓF( Ÿn-&¡´u7¼± Ôö21"DPÊÄ Ñº¼\3$_Oh@¾à'ôY6f‰žŠÆ•qFÈö SX“"Ð_;5Xqýo7Ÿ›Ú.Ó‹°ƒ³GÃÔÀ=HMT˜Gì ]-Q`‘E›”ázÄÛÂwÛå*þj¾\ üjYw Ã+þÀy[l,2«3½@xï)s&£3¦jÀíùÑ“/s%Á®×¨ý#P¹É9• +!ŽòSƒR¢ˆÒåÃÏijnJçf¿¨š†bT}LÓJ5#íÖôüMäi@ÓòßÔb(<©ð!ÅHòº#PFjL¾FAE˪òŠKTÊH ~Âa t_ä’Ç!~¤Fi¯T‘\5WMóÕR(¿/žyΖ‹«5¦tw!R~ o…¼Y*Pƒ '§5(Òä|‹Ìrø*P£ìÉ@YÏ-àqÌ¢GÕåðž©ÁŽ rÉUFÅOˆ^µ8—1ü_ˆAŸà@ŠEWÊóDüX Æï O.Ó ¼NÆj|ˆÕ€*VC£Dú×-¾‡!ÅPÌ.G  +ÕÈ8dÆbcÚ)ËÒ ?Æ—1È6¹AhLODEjPùB‚¦a¨=%% A~¤Fé.¦ëGjL©}#HøþuÊ>GUT{HéE˜ Ô˜2»—HSGÁ"Y|·ÝÈsl¶áhžoÉÙrÙü@©¶Ùõ5h¶™¼ †ƒøšPjÌzÓ_]K…BØ Õu É“ÏiJçÁzéEîF'‚ü@)KéL×Ô˜œL ?æÇ÷Ê!HØ#cð„‹ªs¬3?cIãBÔ‘¡ðiè9º"šF“~K†#C¸Zp ¹v2RcÉÌJ©HMTŒÔø@OEj,“2=?RcI¥‰Ž®çÏ—ýÈñ¥nkI/‚d&À‚¡¾Q/ðœI—1ÈgÜ”ÑÇÂH+º'È•LÏQ§ÆT£Ê~ + Ôà R ˜Y‰’NƒæÂȵ¾„~€ƒ Cu¥‡iX‚J €º&Ë>¼@€C#Ç ÍŸWMÈÖ" +D¯b§Z]ß™"dp>ô²’‹Jqt–œ‰Úf,²¶ÔféòM%z”â€ø®”L:œøâLÉÚuõEÇrÂ-" K6®œ\˳"=aBk +$ßd{Sêd—Ý+/œª‚9̪€ ² Å‘-ùeÖªB¼Ã’Q)o"^Ÿa0Ô.Ç ÄßéPE8èVMɵYT°G ß*äÎ!P:M…Tý\ß±*”´wC!Íg@Å5ßÅäjÍ }Àà"DžHÑDºzÎrpõ¡¥‚>(ä(•‹ˆî]A€ïF¢«ÅxÅ‹î&]±ÚbC/r8e Ñrù ¹nTøÞ|C&NjS´·Ht’Z ƒ…| (2Hå0øeÉP‚QT ŠQ¼,Å–Ïé*õˆ TÚ ÞûZ)cJqôâsòîÓàhTÆ_5ü¯*M¦89N¦"l‰÷=P¨Ê7]¥y…[D–n»Œ}Äß©¤ºAo¢’Á~œ¼–<*~üÝVô©âAP€¢|`‘ò˜‰†èÓ¶%A:¦–azw|:öOøC'Ê”Ö@èH™\ |Ù ?ÐA…¼á³mJu= À¥{ŽðR :|˜Òï8s(Àšð‹òŒÕQªï (“ªmBû‡A9ØRù*Ï1´ùhš aÆfQ®:÷ ó/è Ê\a;*+Ln²)þš{@Gôôû@ß›¦+ùT tè”ɪv9 :¥«+ ^M¹K!Ùì/”|@¥Á—e“—°øç䈚à&R'ø¢ÛÒáe;ÒÂjLc1'%é0 ߉!ÝÜÌÇ÷\~5;ð’Tü;𒨆†PÙ”>h8• “èÚò’s'Mr¨‚ø³|ÎNñ-EòÉ‚¯W ßX¡>/N(þÅ7 ‡^¦» ù~Ü˜Û 9!5(GSV„L 1EîEPàXþñá,©3F‰†:‰—69+ ¬À¹æ±ùö¡(Âöd –…ãæt½|H·G*Cu"Ägd†. Äð<~1ÀÉŠFÏ<}HÅ* RÙLî8„§˜{fó\ƒ\Ûc!Ðçþx¯<ƒ|WGAŠ¼È¿ €~ˆ˜êv‚/»”÷úçƒÐT¡2ãèÇþ¹ùá¥2|P(–îU¼Ê%ë!~¼ŠãÒ´äÅ€•Kž¤ÐÖÈÜ?ªlõAÊ´&NÙ{vgN(ƒû8v(5…鸞RÚ°åªÅ_Vz‘%3 ; ´a‰•)Ÿ“j–%{ H“f³®[|•н"Ϲ’†‹£±Ÿ¾jz®äÎŽÝ=„ƒ-q`W†ÂU9³(ˆZ¬ñҢ뇖¸æÅ”ñØ‹.ù“ûfúN9Û‘û[ôD°LtÀj›Ué_.žÿw­p +]Žçû]<æ‚¶¯·@Á(m¹êî +p(˜ù]CŒ €Žë…N•r΄öPʱà©Â»*cÛÏe¡!vlq=c H–u€¿ÃwuÇ IœŠ©EiaÉFÀE™â/zQðA¾€ +¥ ³d9 î°;”®$tÀcŽŠâÓ’é(!kɬ„öOOPB[2Û<ô2‡JÒ¥$tq³9ù$ T`% }‡3¹K#ø‡u™Æ*]6µ+èO +Ѓ!ë¤Tƒ†±êÂnk’]žb¾k£ ¸6| ŠZÓl^ŸÀG)/P9(ÔääýØ„‚d`ÿ„®ÄŸ¯;ç|[3"/»èÛÂ?HÁ©Èšíâ” ™@, +epú@•äêVÌ„U‚)˜0ËÕ/½Qµ¡ÄûÛ#'Zû¡#]„‘/OÂçW°A…4íëXEUÌO)]•œÉ&vH«e31¢ýêÜÜ/¨%sÄ-¤KÓuÏác^\” yfcW­o/v6_ +8ú†”Ó¡£opS×àÑ7¤ˆ'dUÚAä/Jè×z–XÕÏ„¶ÂnÆÀ–)K`c¢>E ÿ@EhøtºØìE9ÐBtâ;•0 )a7ôaÖ+BÓ£>‘Q4„dþEléòÙðšAµ+ý3+•'Ü Wf(æoÜ›d?‡vÖG¡¸ÿ²]˜ Ø¹"í׌úŠD§·/®¯d7>MOóÙ¬£),8®¡|¾z +‚ü5 }F®S øfqsSû…~öŸJ ’Sû IäA…ñ×(0ÈËBÒÍOî'hÅÒX£X«ëa¿wR{[ñ¾Dr‡°âÉŠ%w+–Ü!¬ÉŠ&w+–Ü!¬Éáç45·pr‡°J$w+–Ü!¬Xr‡°J$w+šÜ!¬hrÚA^1Y‚“;D± W%m+–Ü!¬ÉŠ%w+šÜA&_ …™’;„KîV,¹CX%’;BÏÙrq£É”]`E’;„KîV,¹CX%’;„KîV,¹CX%’;„KîV,¹CX%’;BÏqr‡°bÉÂ*‘Ü!¬Xr‡°bÉÂ,‘Ü!Ìhr‡0£ÉÂ,‘Ü!ÌXr‡0cÉ +¤|$^ø1•Ü!ÌXr‡ÖáÊäaÆ’;„Kîf‰äß÷Ä„D´eÆ’;„Oîf,¹C˜±äò ßv#Ïqr‡ï,ºó„Oîf,¹C˜Ñäa–Hîf,¹C˜±ä.Måäaþÿì}çB#=²è}ÞÁÀ˜ŒéÈŽä!ç!Û€ÁØÆá ûã<ûUUIÝêv·mf˜/ìÎÙÝ9X­X*URU©Ç¹GÛó¢F÷ ͈pîÐŒçÍèqîÐŒçÍèqîÐôçMpîÔ£«@Íèqî¬U8whFs‡fô8whF„s‡f†;4³Ç¹C3#œ;4³Ç¹C3{œ;43¹C3{œ;4³Ç¹C3#œ;4³Ç¹C3{œ;´pnXwÖŒÝYÎûê)žå î BÝÕŒÝ5+\Ò£;k"4;ÐYXwÖŒÝ +Cº3"ePwEÝYtç@cÒCîš +©»Ò”…N,-L*êÕ}8I…tçÌ…î,íÐ;Hº³(’ugQV –!îȺ³0ítçp¡-øgHwÖÌÝYXº3†tgà^!Ý TaÝ +Cº3žÊ î E=º3 +qAÝVPwE¥ Pzuçp!1 ³GwÆaƒº3N/¬;ã2‚º3.6¨;€"†tg ÄBwl…Ð¥-º³´±BwE’îÀ ®;ÉêÑCIø Ú®˜‹$fîZêÎÕ’N€‰_Ô£;#Œƒº3îDPwªI@w쬷„°îB(ÒÈ#´ÇP¡ÍeÞ°î, +ôXœ^HwöX™¯Kø$õèÎìüκs`¤¹…ugiW5Ÿ÷êÎ!” 5Yˆ·áÂÝY”I²î¬úY"T?K„”BÖq?®9°ûïºîǧh û¨¯7›”B ¹âl¦H¨×=½ä‡·ôôf“'Uz3¤cDF¨S¤ѽ/-ÑA+P.À±3~Abª˜†¢LwÇõf“K¸Ôׇ~‘§7K…†éµ¤LsBoæê”øz³P0¿j‹z*ù÷y~‘ëƒÈ/äz3¬Õ]èÍ&ϼ¡ê’Þ,.LTÝÓ›éU-*ònBL¾_m†½ÒÌP5ÊUªêžÞlr X”§7C!µj³gØÐ=µÙ¤§ °ÈS›Mî"‹/¾ˆ}¡«1U÷ÔfVäZÔ›¯6›<0 +[\ +ˆ uØq§º¤6{—r=J©Cýµˆ±À<<­ÙÄI÷”N‹Ç³ܸÖìi’Ö, +­Ùò"À„ÚlQ$dõ´f úA8xZ³ì©ÃwgVµÀM¦kô%íÚ¥Ó*©ýD¡ÈÓšá"Γ§6›yJHõñ÷ôf“Þ– {wÌO.Ôf“? EzO‰§6K…Bm†¾8t¹Ö #òyÉš$©Gó´f3E•TŸšD•$•ˆ.9Èx*³xߎÇÖ&K³x« +13ÊØÉ¬9µDH¶*iÌ–8Âr=|i {ã³ÅBuBeŽBc¶˜>¯ÑR…Æ,ù³W¨ ÙâÆ8{\c¶„ü¤uä- ƒŸn¡1[b;tO–ƒ¯13 ½Rªn <Ë#Ù”½Ùâa=•TÝÓ˜M‘X÷4æ0+íÕ˜ îi¡jß:þ•ð­S⺔Œ»KéÜ^õ-)Á„øî#ñHO¤‡©ä”M.E•ó=ñAƒùžHx 4¶P*Uå|O”ÀR æ{â¡·r¾'íø‘´~‘äréz)Ÿø;tRÊ'K¼!§|²αÈôƒëÒ8¹÷s>‘c²(ëçH(§|Âäë„û²³¶  R!Ù¼T9oÅI£¯^[Š!Qw¡oqÝSÒÖ…Û’¯Òû%²’' +ýœOœI)Ÿ,E¡iÈ9Ÿ,U´ôü·¹Ø'gn—÷:Å´¤zžc2çd¾{ʱCr¯SŒd÷:ŠYPåÔ::¡Ê x¼"Ù½Î/îu¤1©šä^GÞЪp¯S¹õÝëŸÌy +=º‡©ZÀôár, +ì¾Ë¢ì]G)’Ô`â'ÁP¤ÄOšË÷ßôL£ž` '~âï‘ÊÉšèé=UNèd(®Tä9 ¤z6ßF¿7Ê ¨S?y’Œ?;ºäRåÜOÂõ.ûÉ’— J1¡†Rý˜Zo™'xûÁET9õ§ÁÜOBÓ–.±, ä©,’PÊ+ôQOh¼‚ +²@dË4õÂ["{Ç‚Œ­3åݘ|ëT“o¤ï[çÏ·u‹àé6=¤–ÌÞBS‘|ë¼"Ù·Î/ž€µä[§rHU[sG +.åôà‘Py«ySÅÐÃTœN 7DMŸ½ +mÎà|ï:UåÏj6ÀŸa ² _²’¹Šv]ò®ó‹dï2¯Ðó®SM%ÈðLñ‚ŒÑ¤e +w¡×¹=9Åò4léHÑé æ¢?©1$ÔR9/÷]ì98žø0È—*H¯EÊtX~X˜éu®Ó|Ù» Ðø¦„Oó"¡ ÝG¤ |ùGFCÅ9Úxv%¿Dº ð +ý ¯3ÿ‚ÀÔ·ÊK“Ö{ûÕJÇRã¹'GZ\$δ¸JðX•'(‘.T‹zù‚€ž’¦¬ã3…IE²˜à +iÂëÌ9T!ÓH’‰jqÅ“`(,7 æ(‚È‘ƒä.8ÒR¡|E@×v(éK–:•ão ¸.Yt¹J(’•b†ëàÑ÷-ºœê’I×3ù&]¿H2éú…Ž +¤ÌÀ¦Kð¢,m¡$º2!ç›!½ø{ÎuB膴m*fð[êTF©Þ|$P‘¤ +€’U‘ ©KŠ£„hÌ…/¤ÈŒÆTvŽd[1©?ÕËÝHçóö ¸yEòò½B߃‚ÐI²È'5’do†÷vFÃø§Àþq©‡•d +Ú|AvugákCš\UçñMáBô òw6ýaÇróÖy,$¬Ï1ýÜ$"@Ž>UŠÈH’29Ôä"¨^!ùQo|wUÏ8ërÌðwR¢Ÿ¿ã`Äå;.ð‚?ûÀ)§Ê8¥ ‡T¹-¿c÷ÑV¤2vƒ¤K`²ü¬Ä ý£â—ø‹÷Ë|q›dfÈ«/õ0LU !”—ÂYÞ“CMÚ>òÇ ”.²ŠP¸TÔý„¶ŠÎK5nF#yt(g"<ÁÉŠl^ÃPjàU„™Ôf×+Òp Ù=H0Åi£N™™ez ðR©L5…'‰¡p–ªÈoÑK ˜×ÃJWŽ™s¡*yeçðK=›öù7ê…8–îVŸ·‰,-2 Ô¹ÿx…êôúsˆ…êä}lNw 0Œá½«…yJ âxäO ˆý÷Iè/ßd/A‘O$ ÆuñÖv6Ÿ‹ YŠÐ„—”5]ñ4N +zUðXé>Ù±h:¦EÙÍÉÊL¼Ñ2„mg• +Å^ÏjMìr2)‚*£P¡·‡/@/$„1Ì q…¬ hýQWŽhž,;XÕ¿'ŒÄÞ`Ñ4ÄÛ‹ü¹·ã,Ä"Ï“ß^ä_ä'ÙGÿ5ÆcêG5ºðâÛÃ{ÛQÅ'ÉY9SiðZH“ÌAšB`Á „Ç>~ô8X©+•ñpþl%*<°K<‘¸¸|qL3ø¯„•PrÒ~4W§ŸtŽÈy«.ý¥‹>ué¾Lj¯&zÆaÕ³ðÖ®J _ÛP1c,ìõÈm|¶¼ûè³!VêÅ¥ w/žÂ[)?wŽï›œ •EªN?ùJño¿º÷—¨„q«k ½‘臯tÖk¤zý¯lâðêá¿m« ý‰œØn1Ê›´TpŠ8ö)5õöëm$¸Ý|u±Êì{%a ¯É*0veÐÅ)T‘ÍÛ^¨.o|Dc6º„7ÃC…ÚysÇs!ðbù0'€8È‚ûÊ7Ce#®ÃÓ§'$´à5m6w]7¹ªšb•· P]ÞáˆÆlt A"†‡ +üòæ>4AøŸÝæáèà 2|€dHÑë@‚£âÁ1H.øæ[\ð°]ü88“á;À.×´˜&`Ò0áB™ñô6@tý"ò„ç܈©ª™Z ÞÄ5tÍåXÓS*3«¨&jÔQàðxY$ T§·Ü#Õ=Â'Ûªnò&ÜÕ¾½†À\‹PG¤&áøèŠ&ªéê*sƃ9vÃÃeHFI>*=rDø`EÄù¤·™Ì#qŸ$žžƒÒÛqø€ÅÉÞ…ô4Œ:ü‘ òR$ì"N«àÿ‡2öLÆ`Aä9è‘fz6=æÄõÈI #Îv$&’ Ös""†!jÌÙ‹XT¸aÔ)„Û‡Äù_'âŸy"†×8~›O;7Ô|b!·ÿ½\+–iŽ$ïÒ­N®Z‚Ñ‹­?‹¬HI,dZb*½¥šÕ?*µƒJë±RêÿùöШåëŇZåµòçtbŽÕV]ìö†k*ŠÊ ªél]ªn=ŽkkŠÍÎb¶ѣcá¨R¬í;­ê¬% ;J«îת¥Êq©X«ÖŸ6ZÕòŽÀL,lÕ;Ê2ÌNþlVøL¤y‹š4Ùnµ\i{µÂÝåÿh6Z¿£%ö¿715¸8I²ŠÊ]¾^¦Õãoã.ÃfPç%Sg 6V‚Íú­2 î ì¿“_H7à¢$ž¼7ØY?ÙmöÇ +€Äõ’(3ì¸8y”‡[9ÜIEQ¡à +ÇËRnòÌ$<üÄýrñ²M´Ê‚ØÂ}ÓY™kðHºïa%:9 …GËŽ<²‰ä°5™ü,‡õCY9¥ÙpíbÙàšÆÔ€U©„œ=rµ€ô¨ õÏÛHx­gYEšÍÈÆ8Nki>š¢K9 ò±D”à#¼dçÀ´1)&²%)àJŽžøÏ Ÿ 'Œ¤„ñ ÓbØÉÝ/Ø$ñšòáÀMOÏhÐóÀàà +LÄN`Þ"|[¥:-tð%b•—ÌŽX྅¯ñš” +| ðbÕ¶ ‰“€h]¼i²]R}²#>¸›‰—jŒŒ0˜j¸—zJ±ÈÏA£ÔŽAk°™˜–ÈÄZ<è“3”:<ä”Ç¥ ,Ñ\DL¢ìàczÑ à°s0K«Žcµ¬4$ºÂ+FÁ'mÙѹŸ•˜˜?ÆÁ,j`<×+cL¼ÊTîDÎ`@yº…ßÛ¼ífµ\\%ÑP!Ì.Ÿlˆ¬Àv^%øR±IíïáΛm‹®é<^ïom…_-ö 2 ¹áø¶°Í³·S†ÉDasÀ÷8ñ•+Ü`‡Ü.áe)|+ÝaÓŽœ…F&f`Á \Cã¾5¸\°=7„ µ¿\lm‡Â\ ñÚ‹ OGØØKpz0g@=zÖΆ 8(‡”-Èëi1¢«ñ9Ceh ¿Ã~vœ²# 0ä ˆ%lf–xî þ€è?ø`ã.ÛkŒ•´Lþä´fó±tj UÊXO-P—!vœeSäºg¿!åƒ /g¦[½|Õr/s7“¿]oˇ¢Áo¼r&ò€Mà:°ÝҨȬ·©âêX á°(×ШúÂS‘83¬Y€vŒC)×5 šš ´Ò¢ÍöÊäÉÖL‹^ú4!§6ëÞÕ¬…Mî|&ÜJ›¬O;e£QÚÔ(ˆ™uE„ÌTÉËÛ{º©@LôJN2ð\–"ÃÌÀ ¤}¡ègC£§3,ˆ ™àìc:Ðó8.Œ‡ ]ƒX÷LgHeð,ÒlË ]G´³]|`ÒNèˆf:…Œ\Mð×·E>-‹‘@Š/2WŠÈMÖÂôoØ1yì[àÀg~àdàó”Ä¥jÆ®HLG+üÑS„ú±zæÂo½ê*EyíÓyVg 3„NM‰•¸øAHÍÄà«#vô.‹”Â0éEWhâRö‚˜a˜x<(À_Ö™4P€G"÷¸ÉS6²ÞÈ#’<ŒÏ£g‘÷™Ñb£Ð‘6àáЙ< +d"`€t +ê@¥1Ç‘)’‹¡bbû­;(é2ÃÈf‡6ìˆfòO-JvÇ(Ótt:Mp†à\› +5Ñé oËàÑ1Ðà!ŸI3:`î}€À9)Äzl”¨ˆ¶!¡™Ï-$@^4ƒ£ë€!°ˆþØö`&d°²ñ¹D“òVÛè©MÏíØÆ†¶MŒÚ@Ì?ƒ ; +¦é5À¿ {Á}Ö¨²©i …r:°Fº³r€ë˜p!º¯I#¥/E¡_B­úµðí “ &˜ ⬠Ùìðy%ƒð»Õñ<8vpN ü³®Óû@é™647Ú:K8¨.ª@ ¾ìÆ(‰ÁÎ?ÐfÊtîPW¶AÏßÑáÆ„H›Ý„ÿ[ìŽ×†ñ9ÂP|@‚]à + +tœ½lL:ÄÏÉj×AlÃ&ð3Ä!2¥[?Á +¼'=àiÖ§AòŸn°dAB`ìÕ¢ÜoO& †ž ´Úè”tx°‚éé.hèÄ晾ŒïÙA Ûäm0sŒÅ#¶tþ© oXhþjŠÄGã +5H \@8,’2 …ÌaX¤ P@ ¤DxRX# îÆ ø¨0úɹ7yqvÑv­ñ—Þ-PO0kJªðBJâR&\P¬l”Cæ5!-Lº§cZ&t· ]¦Û „£vCô-Ç768ÃL 6‘Äy#l?ûœL'6o¹”RÆQ(ÆšÂé$äŠ: +·èÑÏF +d{̇úêº6¸ýÚH`KÙp*ßÛ<14áч€Ô˜²Ä†6NÑY 0E%Ò)Ï› ‰>u¬ƒJ2œ °|ü(D‹’<€ÔŽÒ7 )¤ra“U!ÌÅ9~c*`ŒÀ†à7ÓÊøaƒüà&úÁk ì—e0l cBj [vHÈ j +†ñ2Äá,C¸@:0QÐv5³@2uN®Y:<«Æ+(ýQ#‹Q4hÇ0žyP¨Ü›T¤ÛßaœÜlAm?`Ó£ba´/†ªÉLðuH6‘Ù„¨8Ðlétàä¤j™M•Ç! +ɨ¦"µaäÉp‰#s„øH ƒ¹åg g³ÔἚ-ªó4žP€ï7ê^ <a|˜wÁêˆ"&út0K„!2»j6¥ŽÉŽ€èDyãA`粩€ “êr×k U¨ikŠxjF¥hMå‘’:äˆbâ~âCC&iĸ¡¸½°N8âA1ðOÖ¼w\Ò²#ª+¨1«ƒS¡TFl`T5U°Å éUP3a-tF`a²|BU)ˆ +p*.:'kH6Emuùû~ºKI¨ÿ lQ±„ˆxÚBã¨Ù”é™H¾y°ÁÅ;@Ø”Ë_¯´á'ÊVT)¸†OPú–«H[ ìÖѪª€q(7$‰Aä#½3 +%'¡‰P@dÎÍ8©hˆ±M%83tby`ôR0A_Smvô°z€:LÑH‚GuV—¿¼&ŽÙì(¡›ŽFŠÄbðCk^…·*’ÌAf®xõ\…¤@ÓyŸ0GÝÁ¬Þ[¿ åÑp˜°@!†g-Ñ!ÉÑR¯X›¤aP¦óG#1îŸñV#: 5äK|(|)Û$¹Þ‹¯A€ ü)ñ§8j8ô´+r¾ÁÌ*ñn6œŠ%üy+Åc]Î=tž¸zcnm’#Tž+ÑpÙáb2e|LÝÒé¨h”nÔB¥ñ];dw"í‡Rhh6‡g£tpep¸)%°Š—Djð ëxù“À¨K䊌’ªE™IèãY§,ÒÄ¡„¬ªxÑ[([óªM'&©‰˜S¼ ªð4÷*ì–BŠK¹ô˜$ b I²<¹•v <]”ÎÍáA¼ åPF8S¤­„IÁ¦™ wÙT âÃ&ä»Cs'ëȤÑLkªKVèˆç@t¹´â ÇP­Á¤®QZ‡0pÀ4EöO’FC”0)­?9m’Û`ç 1.le˜@Ñö`¾ÁPdW•#•çƒmE\ÍHÃv.Œ«‘íˆÉ»B„2õ&¸¢A¦m:n¬w +Õe +™K¯=@ôBÍt•Q°‡áp@ªA‰Bû;ÚpàÊGCsš®1¾¬(ª{Š›ZšuzJƒI½Á—ÂvÊTÉʳ»»j®¢ìG) ¤c`»\,j€€ÂD’ ÙžL%ñL4øRFg+èL*¤‡ùØ›$7Šñàž¢³¡Íõ!¬€gc…LQ}ñ¬Ä˜eVÇ‘¤Ž p1éã”*ÃÖyJÐAlCãÀt1Ohú‹ : í-LL¶OÌ<LØÖió\þð ÙçÐØåpª?&˜{| :ç–Ég´ÄeC:_Û´0w²F¶7ºkñ§ÉPš¢|gT…jѳuLâp1_¾0]°«:1FPÁiê.%ªx‚Èðïb ÿˆ[¸}©ó“Çci2ZB-2ÃÝêáâàÁM€B¨ Æ$Êä ò]$T¹œå‘#óü ãEÂ;‹(qêŽH§“¢g÷x+6@œ"¬y¡2|âU† +ö؃§«‘ñÇMU ŒR‘ò£-KAŽôY(þ +‚Zµ„…P̘}lØð.²dO²¸`ëv-aÿ€Çáî oÃL®.ª"µ€’¥$rȃT…›7804¾È>`K„’E&N‘•,ìls@'Dd„;H^ò¾Âœ”B±8øÏAvå6i¹Ì¶Ä[g¨ò¬°M*_Îß>UIEe€;:èÓvL‹ ˜ÙÐKJ´ È|@©Šº³®Óë¬ÐÄ¥ øBæYþÚ7ëÞÔšM9µ1ÍŠD“‚„ 2ºJy”‘ôiâ ‚Ljg4I¸fƒûa¯ÕQw´xR0JàÉõ*Ø‘ÀªÆJ˜„êtlq‹‘r³¢“©½Mt‹.,ž)TC—Ž-\è4㧦-jfbµžínŒà2‡©`DÚ Â"iÔI@D³XÏ:Ô¤•Í]‡§Z™mâ›<ÐÀä6m„%|— ,&˜´Ø¤A¯„€t´qkàˆ‡j.Ýñs»i ¶Àêù"೩‰Eà*M\%dk5<Ž·Ñ`V° L噉éóÀ‰ðé8ƒ^G×ÏUd>ZÝÑÄ Ð3BA–4†bDà;ð2Pë F ƒ¤Â ã‹Ðˆ§x-÷ °XHÏËN€ÆAÌ&Ù å2nLF¢ó sa@ÓuºÄC£Žiê€8äÒZ5pãqÈòé‹'ª®>P‚)á7(¼:çÿ*ˆ^ŠAû‰7ÏàÖ=€ XYÌt|¢ËÆß@>‚CÀCg:xØHÀÇ€ §Ô[ƒJ@ÇU£æ +r £ÆS€cÚ ¡€ÎšB׃Ød#ø ô  ? \ iÁ†– ø‰Þ0"=7ºÀê(Úèp%Ê&†7é0.¤“b¿1Q7R ¨¢,žˆz˜3g깄 12n-l4Oj$Qƒx¨;´aøÂ= +Á®6Mýš€á8=vD¦XT +“À,a¡¬ª)p5Õ$”^ØÕ$Æ Ž +2×"«¯K4QÅëÒÞýAt„Mé„Ì«:"øÀU«Å]Áð-N&²) 9Bç&•³ÈŠQÖ Ã‡ŠÇeÖyœŒ‚™‹†°,8èFZfê@w7 ‰—ð=pÐX ’O g°ZpÑÓ!!ÜöcÚT¯ððîŠ_-»(åWÉìo€Ü?$9€€t¨h褡= +9Y|UžUPrPïQ\Çõ R¦ ”ü žxOãïÁƒÂcrQ›_ÿÉÂÌ0w3Ua(á‰ÞÀõ'0ę«ˆKõp6kÏ< +:ÜoÀëá`lÖÐ=Ú¸õ µbg@רÅû³[zލ#Z3D߯³}~Œ’}.¶J ì¢XKÌ' +V£Òêß(Wý¡‘W© ß°‹`µ½FSTáøÕW¥^}KWŠo Ó‰áCª†|2¦ÅÁqdJFø ÿ…?ŠÈä‰ÿë7×ïZ÷Ðfòã 0çâx¤Å§ëcËÔ)\¥‹ÿåÿùIƒzk…AUpÞEû3`Þ]ØßÛŸµÞ¸£I(¦á?6Ï<ešk`Æì貕\°ý³"]uú‹Ið +‘޺˴ó©U°ånõ1лì1«iÞŒ‘"”ï +Åú_µ’(jÅ–A4N&o¬PK,$Nëõâ[¥œ°â? î ˆ ‰„xÚOÄ8©Þ_ +®-¡~'¦ÄÌ““ÕÐä¨ +«PCÓ„=qðþ‰ÿf h9“‘ éÍ€éiΧíJþ·J}¿\þÛqœ3쟊#ÿ¾V•i¡§üe;ü/‹¡ý|°üMtrHø|èŒ,äÿ¨”º0ü€m£Dµ„j›ÿ âÚÿ¸Ì¢|\f!ÍØŠ\T†¦”…ik“\ö»¸è"HÌ/ÁåÓØšõKrù…$’(ó/ît"hÊà#¤Ì+¾˜?ƒÑÿ›e:Mý%êF¡þ/I÷§Hº†¢ÿ«$ÝŸmRìûqcÿáåˆr11•nµ¿'\×ðz<Í ¿Äöæ?x·æÓ4¼xgßÊ¿Ñ4üQÎ*­vŒÃé^JáF(0õšÞÊTŠlû5¢Í¡øÖ†‘¸GA¬ NµÁEàá÷ØFŠqùç­¡ V¿èÎPt'Sù­Âv®ñØùEyú\f|/þÔóØw ɵȿ@V1AXt`'PѯPÑ\Ët\pìÏSð‹ýkD;2°ºÿùÏŸ‰½bûõ³Ì1âfÝ7¾ô¿â>p‰©#¤nûïÐõhqÜ€ÓŸ‹@—ÃÁÃàh<¶; C¼ÕªoÓD>Pjx©wšÿ=b¼ip‹‡A§â/‘æÿ×l®Õh&ŽŸ‹åÆï¿8ì¿ÃþK¼Duü9D:x(†cZ–p™ÆQèº!‘ÿ£Yd4#Syl´* Ió\ ºíÊÁñn¦ÖmA±é±¾r±õ:M\‰ø½~˜Ìú[Ñ.ÕZœoÐhÏÖp[àÎBp›f±$«¤µz9Ðè·J«#W(µ[Ø@øª¼Å6‹ÕÖßnIü;‰m„ª_TößKeÿÛU”— +*+‰©*È¢zÝ¿VE9iëmFRßú|¯ZªX&ôRGÑyoæÑ’»¯¶ëjUkŒþ_ +h¼Uÿ#@€D³Þ}Ë6šÕŠhO”³Õè;•»\å©U©»n—еÊnµNÅàÎÛà‡³»ƒJ«Ä¶*êã¦üÑûôÖø ¾tÚ\µÀi5«õƒFÕ«XÕ%§éž Ex¢÷Ë™ô%¼„øÛÚpFŒ¿ÖÔ6~‚äó‹9 +æ¨NÃû,ÈÙÿ×áU€:¤øÅQÃ_ìñBüCâïgÿ0î¨ÿ£ÀÿkTáÑ(Gµ]ÓpTH´­ÆqJ“%ä)œ‡Äñ¶FФëüÅw]¿ã/ÂøÓi‹Š†¿ÈËOôuu¸ä DAòV1”7¥ºŽþ‹ ü"(ÿå—óüÏ$(F@BÑáéa (:¤Kû×Ç^€QòzÿDüùKwŸþó#¢Ÿ7ý_yYhԪŧÊÝÆñ¯[Ìó-æ_x:ÎLsrégUQ×h“ Ìl^3á9$PužÊ²Lë&ÑüëOõ_L¼R”_äë§“/ >"Q1qñ‹„ý"aÿBw·ª†©¯aªÿL Sÿ¥aþˆô#År£Ûú%eþËIô¿Ê†àã]¤¤*éüŸ(“ªÿ@ã€úSŽþß#\§,ÈÀ¢’íýÓìáwívcúÜD¶ÑªWZí„–hþÔ¨ÍHñ(0…ϺÜuúÁ+îVß+î=úþË2ù·SžkVZìÖ:7Á9®¾5kÁ oÈw¢-mÏ£Ti6˜Ö7_/ûI}f>` +Óžp#”PZML]Ëï6ÜÀÖ\´GÂ¥#%i1SçÏÕNE*„è ZFFx¡01Me÷.wG•²WY.¿¬Ôjßñ“ú´Át±º÷E‘¾dÿ,ŠjàC¦Ö­xÃËöŠOL+Ò7àÎpŸå¢! ª¬°’½Ðß.W\%±Ãþ³ÅZŽÉûZa›5.WXÑΊ_ r]»Zv¬ez Ä*&TQå:ºÙ3 + +˜RP¾€¹Q-˜¾7yQI“º¢)¼J`¼”)×1£ëØJ¶YÉ1…YQÀÔ!˜z5L¢:‡û+»¸Ndz`lþÿ‚ÃÛ2<0Õ¸ðy Ñ1º!W´eá ºÃjßžÅHµp)¸[~-U¬@ñÆ„uîÁ.WL©žJ9÷ð©¡›55Ó_®*MÎÇÊàžIuL%²ŽN(®›þ~è~oº)ïÍPZ…WÏ ¢&.W X«@:S¬ÖðPÖ ¦!×4ø~¥8±®½¦ÛôÑ4Å3zP4½#d)2 MQÑ¢YPe˜ƒ…•aíF`º¯,M×ðªz•ß õ¦` ª‹)8Ò|uo +N`¾bt:2,Si]®lóýò+Úþ)3¥“Øîàÿ÷!f{3°©*…Â#=ŸKOš}ï¬ì÷±ß*ÖŸX9'êƒz U÷û)0éµþ”8~ýs`RUÞ^ð(ºf?î6™|É\h¶‰³êS˜àÀžã[Â@}ï˜Bš»W~Hé—j-™ÚhÿD%ãàIæ¼t`¨ ók|×Ó5zë¹Áj6«å8½Õœ`5 z³{«ÙÁj&T‹˜œªÖ[à ÖÐcfo«i1³×ƒÕÔ˜ÙkÁjJÌìÕP5#zPSìW¦U}zîø;æ‹E+> ËvHP°ÍˆJ‚É…D‰+Gód‰•ù,…³±0K±8‰RØÿéªÿ¶±"šd<‘THžy¥b— Ÿ²”Œ‘Ôü{îÛÙœx0tÀ§ dü푪qßó䆪ÜIiР›ÿÇÆj5J•v›M°Ôa´i #Sg°×3i·ú?Á6ðV­;LÙ! /ö°L†m½¶ߦ~¯vžî<¾ËömQ}xh0xj£Òz¨´ŠÓá·ÑhôøUpÀç¥î“sÅNÞ¢¿‹øKÒÉØï©ë½J¹Ú}cki7j]®9,œÖ«¥F¹"r³y¨ ¯ŸãJ§ÛÄ×:¶i‰ƒVÓ€òªXòNõ“°Y%ö*íçÄQ±ÍTÄêP ‘F£ºh±ßí4»m.öv¿²IF®k)1õÇ[­Î>ϳi¶ªÝŽx¡n!ÝbÄ—Zýä.>¡©Vé¹Z+·*|ù"sø +ÿt¼7ö¦&êí»ßŠ­ö’”êY®ú[”,ª åí˜zuoWùLÚ_ÿRèªÔNG4,Nã Ñ®Â|ñ«&f¢ ÝD mÐV[Ìö¸fÍJxŸý +ÜVúµ•E +_‹iꦷen¢(`Âö¿ÑJ¨‰'¼€N÷Vàd¢ÚnÔŠJâ\*ø+`þAíí´og¯õFéµÑí°qELÍМø9jldq®Vm À \¸ß©4U7Ñ,ÂP»úÖ­}kâÀÞ¼qÎP¸&ÕCß÷f‘ ÒŸ¬NµÌæðŸ0KCX¢Aµõ[%qRù£“È—«âCµVíðW-ÝѽŽÅ Íë¿ÛÇò1&¬ÏÔ*•20¶³¢ l~Piµ›<°lFwÒÙÛª—+WJ:_·£ºjÂ1 5|`ÃÀXµbñ,ਫ਼G<;ó®ÉºÐUkè.²•Z-ÿGÇ£œCOâ$ËèY »øBµÕÃZ6Æfسb½Ú~fiˆA µF£…óDÇ)ÜæcðóïßÌPd«qÌ»`_ò4­¨Öév›)×üé–> ñ 3ËySQ¦î· +.9 +Fò)PÞC©Vm²ÓV’?Ø9|b+ãìÏöl E YÚüot)óPd3/ñ¹:†>úk#aÜ<›âÜ6~«´šp7ç)…”¼¦·ðÉœ +›_û¸ûÀÀ_h°ŠG@‹¼}@T³Ýœµ“FS>h¶:¾]èÝŠ¡'àC)8Oר¨5ü*Ín­íQÛ qb-ƒ´IúÆTï×ȃ$…š†éØF¿S·áÓiÃŒëT(–*i¼ç#¢nij\ÇP]ê¸JŸšG‚§Ä;&Ó|”ðÁ±2_œ ´³jåw¶ñL²êø'ÄŒ¯»!…àf©•v î¬Íâ‚Ü2\åÄËe.9·ÅZ_܈_+lPh©ØcàŸ?WKÏ­ÆcµVñN¯®Ù–Ýó2€8) ô +žÝŒ–øçÅì¿#ûÍbÉ"ç™{¨”?2OìWÂäè‰ä +0W†q²€š°×ÐqŠ_jãòÒ|‘TÕ^”‘k¯Qî•󄙉£µj½’è0yJ¨Dqƒ±HQ^–Ôc±Þ©&˜Vä~J5RJJ‘tA§B·V|—gðg_£YtМÀT„Íb‡µÝm°ãŠ@[ùcê2ÐTZ[9¹¦üùø=ŒÚŸ‰ Xµé}7¾£’Ë/þa‘‡Ý"ìzb¼3í&èÀvÆâ lB¶ÑGO‹ïu³Á4×F}S²$<~‘0×QûÐçˆsÊ e'Ž»M<Ÿ ô Kì v/€¾ 9º‡¶:ìò–`Š)SË7D6x‚Ü'ú9LP#ˆnMÀ ~Ð5‡p£àHj"püᡨÕà±bK%ÐS7Y¸Ã’¡b»Údd©.xN¡ã4œÐ4œPO£•+a‡û×O<ºTÄ QçX>½Õ² £f¹Œz$˨ª¬|Ö¾p˜¨ÖQª«AeX¨á¼û-0ñôÂA Áu?,®†á4Ôâ‚ €ë£&%1Á]¶áÂ䱕ëÅ +ýhÜÎÀ–û ƒcÀù‹[ð-Ä /‡ÔCµóV2<ƒµ›Oo¯© ©n»Â@„òŸ€gìiôÎdЈÌ×!™,~ ¹ú½×*¡+wÍ¡çáw•ZåÀZ±™úm@_•:È,å!{{Ž?aP­]*ÕÛ}pêt˜+q‹˜~šµ’`”ØYa1§ø¹·ž†ªóÛãñz¶7{&.AU\†Š ­šâq'ÿR!\«ÉMÞ}úªµRË{ ¸„~uK:<·í¡hm]æ‘ݾÉJB$½Æ ÛD¶ƒ +idÕ~#7°Ï†Îâê•+íêS=¸+Ṳ̂ÎÔsC²qD®j¡±YÈR„c82r÷l +¾41ôíN–XiÕåë–ž9AÅ2Í¢Ùì{žaò¿ËKÔ ߇°‰ÜñþœHZÊjUßõ–XÒ‹§Ž½% ®fP±Öcÿh¦Íö  +¥~|¦*…­1õjj uøq?T¯ý\,WZa™.4+PŒ‹a©;zvìdÔ…]g°X!qt5f‚ ÄÖÙ‚ûŽ[¯<ý J=$¾BÓ ÃÏ¡†{¨‚ÜÊ d‚â¡Äܸ¼f§Gv ׫UûÈõNªÝ}¼µÂ¨^žzd×GÇм«ÕÞš²ËO¤,Ìêð£ÝW%êsÌØÔýÓEÂY…6×à^L{ŠJ&K•&r-†#­b›kàÇ‘ìJ@£z¾gºFHK‡Á6caMuCªA4))wCÚU¨Fà +%jߩʵþ\–ê4[ YÕìe`o)q“RzûóU"KQ3k…±.÷c2¼”ŒsÀ¸[åV»GD®õØ­—†këuáò…¾lnÀó<{“oèé)Àø¢»ò·,’¬Òô¹½¡­“v­Aïyp$¿ÒƒGZTOøvÈAÖ±¾ÒZ­&nßûà“\}h‰RôK±[}àŒ½³s&UŒ“ò@Âê¹Ù Wj¿V›LL®÷“¡Z‹q¨V»€Šõvãa‹)¢‰ƒïq½Ø<f¨ W/²Q(ôy¯ñûz×®<¹&lð WcÄsØ))½ÅôÏÞsPý£R;¨´à}Û^óŒ9dÅãâo•=ƪÍZ%Ü|¯VÏÓsã÷ͪÀóï°çT믵v‡m`×7ò´·ê¯ Ì Ú3–‡Œ]Íb]È<‰ÐA®Àx `7š²­M~l3ûôI¶ÚA ©\ë¸×µ¤(u¡æ,dªéãìÖ–cæ*p6ࣱ¶?q=»|¾2¹T¼˜ÛÖ'öç3ë­·çŧúèvatnj2[-¦Ú_¬Óͼ5¾¸~º±ºg¬-î~›Ü[ouKv!¯í9IÕ0Æ¥{É=Í)_Ö—nS3ëËsÍöz{G[I®/펶D¥íNæiópw}Ù¨g«+«¥\*5ùÔ3Ônù’gç +ÉEûj£“{¹ÉWósé·Æn›¡IçyvÕïrÆ—óÌKmò|$™{T¶";ûb»öÙáõ·ôI6u?¨\oñf}ùµp³¾ØN½Íææ’ÝÂÔFùq$‰À*Üßíws7çv¦¶^»X|̲3*àê½m•þxÎñûÛNzwf§›.ïl  ÷Ùîwš©ÃÙµ³â;-hÕrŠëK'±ôÉv§Û»´d%8ˆ¸hŠ®ŽÙÉÙÏvF’ù«ròI»_^Ë)…oë:¢Àòýr!ǰcfn6ÓpoÃ{„¬¼±b#sÖžÛ]„[‹ §íÝôݶг<Û\º/L=î¤ÒÊòÉ•6ýåv™&‡Õ=r+…©‰ætöÙ:zÍÏî¦ +>¦²pÙ +sœ/†®³Cõ6Á–6>}zηí¥ÒéQÚ¾ÒÎÃ{p°Y; ô=¶‘ŸŸ{p£¶Ä}­ìdG’铽ò,£0«n.³{ù5[¬)ÕÛ¸´Ù¡ÉkжaìõbNç 0}P[*äÌ+mvuã~~$鯋­ªôXÈçL;cÍïŸ!ÁI©›gs8hná¾9“yé”ß2µúY#}ò|ñ…u±3ëuÐÌÏ5¾j…‰yû:}ôø<ÉšÝLd¬ÙÝg¢–Ó¹ÇÉM‹Í¶ñLT0v±)H8`çæD/¬?­\¿Ï=ÏçéÓd©¬7‘>:¹®9/µùe¤h>#`£øßÛÊræuªY-,o¨Sm¿:š)Ê0a¼D"ÖªòÐÍO­¼Ÿûœ&ô•aòTÇ~bÓ«÷|wîg—¶ÚŒb—ÆÍŒÚ­]§ï·³ü«›¾__Þ̦X•û3Fv'2êU÷.}Ü=1ü¯X™Ñ1Vð¶Þ*-NÐnÉçsárym?[·Ÿ¦Ô‡ÛÓ´>1ú%8U7²»ëðת²½¡®(•‡Å5un*»æ•­ú-F’~M,…Ÿ …Ylˆ?­ã]í¾®Pk1@Ê2ÔYzy¾`›ó¹#í‡*ËX~æF’Þô2Pé«ßã»X÷&¿êµXÂ*0›œ’·Ü4Nd$‰Ë¤äìƒÍ½([ÂÎüQ°‹0ˆÄ”ÃâO¯¿c>Š×Û,Áw\ÆšJ¬ŽÓ#(ÖŸ–=#<½Q–C[Çv?¸Q[ûÚ> +µ`ù}ã2NAp¬àªüŸØ™7òFÄÖ#ײ:xKhÊø—×# üIhÁ(bÄ¢TÞõVå£J$°ðÃä^`­ÐZñäp¬øk†ÊûQ@ T€+±Ð2&‹Á.Ö‚³Éz#N‡ÅÊþ©c˜ìïV`WW}¬Åê‰tÄQYòfxàBRüÀÏ>vûqP÷Ç9B{æ8EqiÞÑüÒ–xgˆ¨%ÎñÈrÔé}ü‹ÀËÀÉÃ?WAÑo&}r¶S/¬OVN˜¤ÿ¨É ÃMׯ|Ú-Üï].FgRŒ‹ÁºÁíç¿0É%÷º~>~ú”­ÞÞ­çK¯ïÄÊ$qÂìÄ«3²Ø1{Žê ÓÅ‚ + N4÷4?½F¢ßÁÖô7ŸÇ´-e|ýlrÊÍ>w®r;;ïyA™»Jú¨žÛ_?¾m=0 ¶¶þ¦G™EÝañ«R»[ž¿/4Â_Ʀ¯™zÖÌ—æN2Öœ6/éjæá)W™Éoú²HJÛ]× —¾9û’ê& L5ÝÖ­$žõtpa°fó…½£oi˜“”˜´n^ýˆr2„j’Ò*'C¨&\êó0t–F*s@÷½}õ5§–jmò=8M¾rùèb;ƒb¬'¿«ÿ.Íi¡Om~Ëíd¬I6ÀôCæpýz&s˜¼é 8 ¤ÂŽ€“¬‹ Ú¯Z;©ÜÖ‹]ôÁÆ4 º¾iŸÕvOÒû§; ÝÙé$äô'§T®­Ï²ÖOïjéhm_[?u¹¦z2SaÀz5(ýÚÕëxöùÛè"›ðÝØý›[nŠýÌëÞ,SD ï€,‚bp›yÕVFý²+‹å·šÛ´Б­La9ÿ-åõbnofÆ ùz—J-é¾9„Ys_®»´»9üz|º¶øpþ¢s7&ûµûp ì6Sµö~¥™ŸÊÐØŸ=òHÒCÉÂz«õ|j,î¯áKÊÚÒ=hwYåÑÍnI}ï73›£›QÔ¹Óöh`®oÓîÒμ÷áÄxOUÓ¨‹åçÖ[cÛ›…™é9ƒ‘«s¦ßÌ•ëŒ; +wӣϰR}}ùá¶¾~~8;±ø<{\eÌÏ}A<—¨scs>·Ýš¹'ëŘÑü*ÕôÎo ³áN¯f¥'‚fÐùÕ}£cÿÓ+MN/SÙj»jUaþúHÙοgC=¡åKÝŽ2Î-N¯ÎÄ—VYTQ&ó¦/:éKµLÛ¸²óµœ+¿¹sù¦Æ˜ž¾¦ä²›ãČ棫)2õì|Å\¬ÜOT8œ62µÔ‘Ê:=®£Ø1’¤¿ž:7ù»Ûä5›üÓèú{ævÊãXÏÞ1ªk}I2H¸[Àsžò WÕ  ƒûuwίwŸ˜¤dŸï5ƒ¼›jÚËz¾’¿Ý¸c²ÉœÇé|iVù–6¦ÜCFþÎ’øðúøúòÚéDnë­z1Ï.RéÙƒ§ôÑÉ,Ó,6’7væU-·dQ…ÊÊBnëzw„#¬Â¨óòqÔ䓉/Ç…»ñ‰ËÜ#ƒW¦æ|™ËmOMO¡pã}”$ž’¯ 'ܱ¥Ç/ÇσŒ‰µó³3Ö£ÌÞ`¯šw™Ûõ³/Ž7ò.Ûâ§Q«³[8b˜lž¤æŸ&G•­ëeÞ…Ç_ÑB»÷òø¸X<Üc"Ý\º»Üœ‰ZZ ž9;’\ºi\ëWélÆþZZÚUYªÜN¿¢mñëÓR5?׸Re4Õô±Y¸ÙxëÌLB½Aaz°h¼ÍxÉÞ3 2kÖÅFököl-„üö¢5zÍÄæ÷#¶Éëï’tÈ»RR ¼çÍ‘$^€DìAŠÏËZ)¼o.çj»¦/óM¼Í=ß7²Õ±/&Clc?]_ÝjDáì Ý~£Ôt÷Ôôþb~g})Ó”%o>³å©õÖ¼Ûš¼ž¶oÊ_sîýBþªÒ™ÁÓ}iMž0¾{™n<ïÏ0ˆ‘Å—ðç7òlRk[–¬®Xz‚¸¯éüIÚvPl¼Ë=¶G&RÁg»9^Ȧož +Ùõ§£Í/+êVÚ]xMGWIϼ¬Ÿl ˹Ž4F‰ÇÇÖÏ+OëN³u‡vÉÞQ˜B7ƒ{ŰèàyØ•’˜ìey£¶÷6»jol2þò~µtém”Îe¾ fúC†/ëg']©ïUk»›K•ç׿¾¼JÂ9ûçÄ+Ô³üêÅ;®ïiÐ^3oŒûÀ?Y[x®ÜÞ PW ›ûÝÜæm»›{(ä—§¿$O.^¾gÞöWÍ^|9cìëõ +$¥%uŠÑ9#ÉDµ“…ÜãI‹){Êã›t·Ú7÷ÉÂèÎzkü¶“{l´Rë2®ù4 w;…ìãšî®¿€p`ƒ!–D¬Â—‹—ª¢™¯Ï¹Õd…‰®E6ØÒÙUÛëv©0µU>åòЈ‹\eùT…Š[}fjÚ1[KçL*ÚxIï«©Ùk¯ëË«Íqù, +1ˆýU^ ¨´ç®¬ÕS#Ÿ6çwP¨½£`%œèmA;‰äIc…Ýz¾dÖÙÈó©é`M¦íã½ۃ˃t#ý8= +ƒüŽ×Å“ž”§Å½YqÒ“‰Ñ¡Njíi_âß3¾+vˆOêiE[+2¤ºWò¥Ë–™[ßl¾‹Ês è,B¤Ëõ^rébveûj[‚ã:7™š½þU ~‘iÁå‚=Ózq´8ÿ¸ÜòV*› ö6§•L­Ö¼)ð>ŽIlû!ÿ ,OÊ<ïÑ¢éZ±·ãpY£¤»ÜÜþ{YHJ¯]oÖ2ÁQ&ò¥1ë†i2£­BÞ9Ú ï›G»¨(/=¾ML0µýÅòe¡ `Qì| +7›ÒG¦X:ÏÏîOÎ2ÞÎ÷«·ºÇŽáÎ6r!5òHÒû|}¹V˜–eðpgÇñçŽð{ökÞ½G†2»Ú¾r}âȨ%,ieêpú4”¯ ÕñÅe.ЊJ…»Ú‚Åh¤U[·/žòig£Ý«ïùÂÔöüYV=}k/U'ÞØš¦å‘WßßPŠš¼Vª©e7í<4Ÿ$–€÷ê°¸Éd½†²ôØ­´Â¤·1“[ZxÈ4#Ië]u™¼}\(¬?1$?îž”㯅J/Âô€=†>ç“G–÷ÒÇsël_žfêò(ˆœùRwì.í̧Æ@ ´BèÅØQ½’1^ËeëìôæÌ±×²›ÙçëòhXcëˇúmnggyÌ»,7còX¡8‘__º9eb§}8«hsï%Få¯^Ï}l¦jæy€/ÖÛÓc¹m¡ýx¦EPÅ­ýÁ•}r×­$YÍìJîÉ´Æ–çºßªÖêûLžiA3ï…åB‰c£GŸ<Ò$h§cm®TLÌ®¬Ûc9ô`¹ÉÚÇåÆ2“Æ›_nç}ãæb¹\:YÔŠ3™Ú¼z²qquQgûÒÉøÖ<ªòõö¡[¸¿é>ƒ·Å$êFóõ¹7BÞlòiÓn<.ÌŸ³?JמÚm ôx«½!”|,Ýž1áõ¶Ëx™ddí°ë%;OŸœÚ'>ìÜ×õ—]¶ò·ó€É |ÎXTSi§•å¯MÉ&ŠÀÊL.Ÿäfª ¥å¹ËLÚ™Û‚þ&ªl-xV=(òbs¸„—gÂT¦”ÞßÙ„ëÒ§K€ƒ˜Òác•ë¥âyã…i¯ ù—d!ï6ªùÛ‹çSFpæ/#ªß[§û×/œÂì¾Åö]˜î,5ò%kÚÌìMOWíúÖá,hâakô!ãû{…I†Î_®òó—ÎSÆ8×ç¥Ý¯ÞÎ=¥Oríë}§¸¶Âtã)¦\-«Áñ¼^fVØyyX|]ÉÝT/Ç%DóúAµžñœ·¸.ôÃìózy>·UËž‡X¾¢~/Líd¶/Ws iý;¸åQ†*èŸfþá$oú”10ò›e4X É•‹6Бu¥´¹,æ‹÷/séúÚèAá~êFƒÃð-·=ú¨øÓ}ßÝ.míoY‹§l-•ªqj±­<±ÝgbÞ4à›l«·Ço†r-2Ý»ÙüÞ¬ËNÝì;C'í|iu“uu:Ñüâžæ¯¿¸OçLGf3Û»|ê6}ò\êÀÿoÕóÒ ºÆå0yœìéöŒ£ f˜Ôd(Á©ké)ÀÄ÷GÛD{⃛áA®p‡¹rßë”/¸'¸»OÓ½F½Qzn5Þ*~ûªHìñ1t"þ~#Ã;'R6 ž0 OЇhH™\ +lÎéVç÷Fë5#¹±k¦5P'àßÚ“Ó.T½Žˆ˜u L–ÓNƒ¹ñ[õCLÓR«Š`Â^É¢ ÚHöPïðî|Ò´(þÚ‚ø€ôCã·~Q8±rÒhÞ‘Ê,]j5ŠÝ⟕V(§D„•ÇÇØþ«œ‹_d¿Ù"|>]üí+¼M‰•[e¶¿ÕǪpïãódõ§,A€…÷À£¹EÛ}úùEÈ/:ò]‘0¡â‘E¾€4Ç´¸¸mÑú¤U}ƒd–ç•Å•Át‡±áNµÎ3C}˜äH­‡Ž mùó“ú ?vv½xÌ~ëãˆáqa²Úo(zvÁO2Ó _úŸ~g$Ä}ÜêË7a˜b§ròÜ}{¨«µ>‘7¡ƒs"å™ìÛwÚ® N¤È÷þìÖä®jdl–¨ï'¹ÃwÃÉ ‘rJßÜ“…*:b¬ŸH¦‘ÁpÃg쇯1L\ÆÛaت$wBšP¶ƒÙb“’…Vûê†IÐUqÛ’S[ÄŸa‘Ôoت™Š¢2#%ÒdûÓs:oŒ† ; ™aŸ<3ð&ØJtž+ Žš`X n'~®Ôí"„=1J ¿ž€LÛPìÇ÷ˆÜ¸©;mÐ%û7ØÙŸn¢ÉP'ÁøV…6‡¦îžàuój` ¹ÌkZgóOtÐE©’¨bf¡b¢Vüòð›M†TÄÛÝÒ3Lo«žÃŒ~74Z¨Ëf×xô‡¯¶Ýú+¼™œš[”ZÕfÿ´Ñbçç¼ò‰o+¥²­ŠØ¸~UC9¹*V™¾y`ÄÒmm6+ýé·0à|†Å¾á¸Üq§X/[þL¬„¤¬§NÆ…éåZÅß= +¿Ô«ÄúOQƒiÒÃr2I|ÁéË%‘Ñc³«æ½=»vö° ,ÌîÍÏ®=wtøK3–uïá÷~XÒ×N:™Ü£»ñº9~´R„K¬Uï«6»rd=N½šÛ»È$GçÓúÉèÜ]ùd4YQwFçž_ŽGgW_ )}×elŒNmýË!o¬í߯*›÷Ûk09‡.9*­L7?»·{žÛÙ=_s¯©…¶¹éÞŸl¬Œ$óç™ÊÑúBûiyñæ`ÏÍ]åÖž—ÖT'•™~›8ÎÞlÕrùëûÙ¢:“¶ëæhvúú¥Á= ,n²yòËØ-¥’°´ëÑ9­p<:µÙžƒŸ—|i+ͤ¿´Õæôr“Í{û/²x” ,—ôŽûrÜì©tWɶBýD›r/¿(å —±ï½õ­ýä°‘.ªÖÞÝ:úùÒø#û¹Qcm/Ù¾ˆ¥ï¶[­¥öUëfé`_Y0ާäÀA7ÔoÆÅóî\ä 7O™ÍØAG’–ö²0êô¡u»0{=è×Ìôøi³¶5h{üÖÊøƒŽ$ƒÃn®Úõ³èAé‹Ù¥Òþ^Ô ­îýâÔLryô>jБ¤RPÖ–cÖjq–ݘA/¿)…“ÌaäJÇ +ÍÅä~uïI††U6Æ»±ƒNnï{qà=m}+iÛ0èthБ$Ûœ±s=iv&YC£Ñ³«‹_Vù ““¡]5NìÊNÓC>8èMëæìá £ÒâyZ~Zˆôvþäkì öÂãñdÔ #ÉVkytºÕ^œmG­µíØ·{mO®^ª1ƒšÏÓ“™Ê:’ìY«1}3»¼ôv9èX¡hŽ¿[ݽ¨A•ÂÎa&jБ$îjÒt̵h—wJ¡qr=èÆ—•‰ÝÊói䠇Π+¦À›ó£©g4ÿíµ º<6Ýž\ŸCðÎô ºy÷f¾Ï46¨ÝôåÔRÙÝúzÃ×z9?Â_ÛL¥®¢5®2ÊîÛ¡=èÖX×Ù½,9ìT‡¥A÷k•ÍØAwRï͹˜A¯g•ãÝ÷nhP6 + »£ßî +k£‘ƒžlU·b=Þ³NîãÍ)gÊ­ËF‰\ëîüøIùnf)rгەvì gS•»fhP…»§œÏ¯ebÍÏž¯;­lä Ws'·±ƒ¾Œìf‹E­õ›¥Üïg£ýzZ}]L~‹ôööâ.4(ŽÂ‡mTÖ¦žâÝSîó»¹èA §êØEçp+jÐVëëü8;•4ìƒ>:4³îL^§A‹cÀ¡]luõ¬ƒÎõ º¿2õ~›¿Xgƒ®´pPÆÅ¼ag—s|ÐWw&4hòñzŒX¹–¹T·‚äáHɽހAç{yê×ù‘ä—º¾tÀ†ÍvÂÎç_R4èÚT~.D +'˳œ&é_³;ABX™]q¾^à 8(f&ð‡µ’c+—››lÐíÑР£Zfÿ™ºx˜ +­ô¥±’¥A×NwwƒàMåyn WeBÔAVþ®uÞFµÅúCÌ×îĨ^~kF5¦Ù¡Y5+øÎ~Ï÷C†½jLëË%¿¼Ÿ§¯=²ÀÕŠ²»®køÕ'ïþ©¼ZSvÖŒÐwïkZÙ-ïXq_³ÊÞè¹÷5ÏFÙ/mÅ}¿S޳¯˜¯×sÊñÙøhÜ×”r²¾7Å!ñÝTNGßSÑ­—G•VwÔæ_{Éã¦rv:ºB_½c&ѱmåìi~-ôÝûº«œqÓq_¿*çV>÷õ€r5nßÄ}Qn.®fb¾~³•›—ǹ¸¯®r{º¤ ˆõ~_Wî¬;7¦õ]KMÍì˜1_‹Sª{¯íÅBìa\ÍLÜbZ?«;‡cÛ1_K õë«VùZfRŸzù²3ýݼ­Ÿ,-w®¢¿jíƒÑÉéí¯øU›\Ú ~M¦6×W9ÄzhŸÖ©.Û/Ô¿fçgŽd lª|2›i´¿ý!ý̘;š”axWÉ éYu7¿¼pyLÒZkjr}¡3™-œ¬Ù—¹«ÂåIî*¿œbeJ!›I•²ÙÌÂά¬½Ý'k0Æ“F×'QD*7’MçÚ§} {N}RYX¹èÂÙ¸fäñqÙÓTǪ+Óì åÛÎáâA€Ê·Æ´É•ƒyb" çä1yXó4Fô ÆåEü c…òBì  %1MG¢òò L´ešN1nÐû>ƒnÌ»y¬<11î‹Ò¿7¨0HÿKbÐZ¼cSò ÆñPÆ_º÷jJZkpP”þcµÆAúÿ=¨q)í)I}_~ÓbEé?vPþËQƒ¯4.+±ke\úð"~P)bÁ Å/…×zس«ã‹s|xü‹ãùâõ–P\Óø¶;\½éªGÔBÛµ|j)ŒZÒÑ-t™®=yõ 4(ÃqõOüº:wªÎyÿ\ËÊ:JJÖfÀø5[‡.Ž$ÜêÁD¦Òøñ:žiøm3™Ä`;Ïe˜u-Ù|r û°RÈú´ênœ°ŸIþOñB’˜¹ÍL\Vù:§æoÚþr}›Ly5ŸäÿÌí5:$·‡l}l ³ÊpÏ,°±#CìF–±!uáM9@z¦'+ãNåå\§ÿ|¶ã?vQ7 »ü·³Ñ(²ÝïT’ê±´5ug÷CKIö Æåüø V*© ºMˆ„ñÆÁ›¿ªŽV5A«Š&£·y¥Ò~=vAq†áNGèÑx¾±3’ÕÛ”[@° Ô÷#€¹‹çÒJ¥sº€HÀdÒP";{hÑY\WÍ mü^möœ»í}dèê“ `DÚê³—wÝI&ëíÍyTp*-Ší¦›Ù m'IJ …øäÉÝ‹l}AVÀ¹ÌŸ’˜aòlìÌ”Çlê:f‘û‡QRXhK‚–«{ã½gK^VZ;,éaÚëäÊE;Ž1 ƒ¸¸¦ª[I~tËjñË俇¤§¸³ÿêŽÖÊÃÔSÒ2Wîv¯ôæ3X¤ƒ)ÇNÉ;ûÃí ƒçë—¾‚Åø™_ÞÁ"ÝöO©ïNùÕ'töR9ë?/Ää!; 2”ÌK¾á¥Î'ß/> bžT÷{\œºú4ˆ…(ÚG!Æ-[ÂÓY})®Zæâ6–ÅKÇþ\ùý ›ÏÓfHì#ÐF3èM¸_ÙìKÇd;RV` zû¤S¹ · ;Q”§cvòiSÿ²´³‹°šøÇ¡óµïh$»ÔÐf„¸µøD!î¼ ³Mw´"\RŠœÊ*0ÔD´lù]0pìÅD|yñ=šEuVÛÈï†× ñR2àd$ÙaæqR¾A›Íçe‹Qb~øbŒŒŽÝ´ë‘f8òw@^¶bÅŽ‘ä‡&ŦÔÿ8pÌ?r[ŸF^¶|Dß]_gv²?ÈG†º/+ gÏ%ù€­om*×Qg2/…OX_ûYó)ç/Ÿœi<ßÞ‡ÀOàȃ5äU{„–Àúà‹sÞ":àÈ+ß¶ƒGä{‘ €é€;Æ€%Èï¾0!FËH²—ÕÅȲ £ȇ„,Ëå± «›d#OJW±ì¯,+›z¼æÈS²*\ÿðýßCÜ.âVtX{tao²¶Ž ´·²Î†=|}h2õGqvmz*¶ùŽop?3ß9éNû™ý”UÍ…z‘iòGú™ÿßóüÇ¢;Ký•î‰ïO÷ª”'ŸvÃpòXPïúnvóйôéwÇ Êò„¶ð!ñhr¯~îS4¦º˜Ó!ŠÆÊ¢h±’‹ÓÏ hg=·ÕCKð‘õ¥h}E;k|'E œÊJûUÿá³ñaJô=g¿×ûaÐl"mØÏ04dðlR?~÷ŠýONàêå¹1»‚è3oÙ +nØl Z¾:\ˆ’Q<ÙRÐyfÂN]¬l˜Æç*Ë>mÅÞ=)™]œEYßÿ12{ö!"Kg?–Ìž}Üû¡÷0_2LV›ŽPpׂNM±f`?Cˆö±½¯ôúùQê%B¡Ž¸yØÏ ÿ¸^‘<ú6:ûQ[µÏ Q†Ù˜ sÃâØî:Í`­úâyáj| a aÍIÇ YgCÊ÷m°ÐÙË÷p¶¸|+Ží} +cý #¼žÍ'xa?ÃêF†èG‚öç……QÇæ„öðÂÅ©9Ÿz£,N}P‹ˆq̲‰\wB'Zâ•ç)ß #N`óŠWG ÄS9àö) ßi«îµócg?pºCó +íÁ¾Ö} f »“"Š3N#b{y6¼¦C˜/Ðru«ó áNšR$FpLâx…“–¹¸œ±¥ωÁöäXÆtÙOI‹ö\ë£ï³™=Ç¢?v¸Ä³©ºÑ°SÐU¤1_P˜ÜÞ@gC#ñ`ˆ]ŽM|DĈóA¼¸DL>ÚsØÚýœo÷á5KCLª¯Y8þpI¹)‹gHS¸‹Dg¾-·ºÿ¼Q;+ÞåÆËÝ|Áý²~[8Y=ȇ"èF’ŸC×?‚."bè»bèúGÐ$?'†®ÝHòsbèúGÐ…¢¿;†®dëÿŒºþt=Ñ‚ßC×?‚rª|F ]Ä ‡ÁhÁψ¡ë_FùŒºþtÍâbèzÃXä:OCtHîöáêÒß>>èýCSеô²I rÜÞk /õêntäïv†½Î¥ßð”>bé=˜ü/yüßu.hbú~8õDÙôzšT®>Á`Cùãîøút6ÈkàúH‚"rnèõE¡fð¼ ô»þa¢á)õ‰|d¹ê3¥pÈYG?47­¹Íû¶CÒ‘¿/€j?¬pǺ‚ð³ç ’ÿœ»9ôR»Íÿ°½Š-íÛxìÒ$¯›ÁnAOÈ=L†`·°{Án‘v–^-iP°Û÷¸‚„¨%LgY5¨†@W"šAðýuŠfxС›©82òq8šõ u‡Uz…Ç]liqì.Ò…òC!¦^ßp!ŒCèö`ƒÔB‹”å±élÃ!HºsA3É€%&¾óƪ¼Ñ‡³õF¡Ìæt‰ˆã»í~gÄIðÌn„¯÷¢âøfd£U|hZ%6&^”Ž´Àoôóß? +…höß¿Á>ðÃÇñ È5ð¡8¾sxdÆðòÎØ|d^á;‹êl`–€t{ñÓ>búA,hø¥‘G§§M_V‹äJ–ÝŒ Ú uà/—롱‚ùˆ§[xºŸ6û+{o€²×Ypº}Ù9ª¥³6ñ#]`–Ò75ʈ¼Óq0?;`‡"nFúè<±!nŽëÈ0àÚ¾ ¸M;3Ä,Ȉ]”ídj(Wþ©\+{Ó~êô9Åð. ÀdÆ:?d¶«J¾¤Ô'@.’êÄGDõŠß)½l qâýóŽ49NC×þAZa¢ï‡Sè'€^„Ý0(082.fJáxä­ZdúMÉæá¸X8 e‘è>LP\Ÿ)…sw¬tÂIú ‹ÌÛöHò‡ý¹ô/‹S_ú[d¤;¾þjÃöXdBúþÛö[dØÒŒ©xïŽáÃÐ>l‘‰ŠÜîþ°E‚Ф+ð mücñyÃ[dbíüŸ×/I•„Éqç7äªÇhädØm• @dtRÌ{¬cÒÇÃq˜ö©ë÷}ùÇ>ãýÉñp?æ¡:l<Ü Õω‡#šü1?à¸ÙÄ{Ædýäx¸o(!j~j<\TÞÑÿßÞw®%—4íç *HfrÎAE1‘1GÐïÛïŸ}컪WŽ,‚ûygf®qMw¯wå*èlÃñpV²¬§ˆâ”¹ôm6NO32ëT/>6YnA eŸH芶Æ[Zð‰„ÎÔ•¼Ó=ù3 +óX¥ŽeOÈý˜z[¶ð’~”Â󳑸1ÒÏÚ1ö¤!ÏÈ~!¢™çVù;Û,]ÃòmÆ£¾†åÛ¢ùÊ.¡¬*“n¤×F"¢(Ûú ½Ø™ñÍ1Â1C×䃯ÂIÕÜxÑܵÁzÈà&²“~L®¡Ué•ô³ò5Tôrûµv®Ò±=]?›–¡›õ…&ÅÌ¢lh²®t²5Âj¼Šð³‰ÌjEDêp·m˜ÀØê^n2"õr“©—›ˆHÅ3¶ˆTz׿‘ˆTèg#©ØÏúø‹½l""£×¬¥–E¯ùõá1Išº¤“áaú3í5ìÏÖ¹†Ò%$¡pÆ8¶ÉP8ıÅ=ʇ\^l7Ü—†Âaf0 ‚ûš¡pKÊ•+†Â©su%N_«°éP8cý˜Eùl47& +Ôù“ÍŸ”Ëd„×ðcšÔÂ+'Tî¾ö­h-(±³ïœeæJdxã‚*ƒØ,˜p̲ó"”U$O9ÊâàfÕ”T\ŒN„L;ªG$¹¹@2{èŒ'/†îjïGÅ²ç »?æïÛ=GIÚæ°ûJíK»ï¢wÆH÷œç#øê[íþ£~˜ +v_¢îj¿Ý‹tŒ–×ga·[©;U»ŠÖO†'¯„jv?KíZ{SU;Îò®i¹ÛJÛ-ô8ûé¿È“â3kQ¸¸¼”¿ö¹TÕLw¼ØåVÃÁž8ßÔŽòjêÊ¡=Ÿ‹ü-5Zã:V9óTÍjŸ+ãI-¬Ñbæç!I¯›ª$§WGÎ §Êbí’a%¹¥µp'»›‰†ärBšåWùõ™‘[ä×·Äy2)"gø|Fuß±ú|ê\j+/ºWJe.µÕëÇY¿/Ô}#tkiä¦+èkz—¦[Y³T4ž ÓÂm(šN/–Î(?ÌêÑtz:A½û²^4^,Ý:‘úÑtzºxcOûU£éôbé ó­M§×Õâ !ËFÓéû(n:šNÏN#§•›‰¦Ó‹¥S[FÖ¦ÓÓ³¨òÂm šNO×.“^7M§Ç܈šÞEÓéÅÒ©}GצÓ#ÚDÓ»Ñh:½)i3¯M§·"ÛX4ÞþT˜Z#šN§«À¢šÂËGәƌl,šn¹[5šN§+f“+Æ®·bKEÓéIX6«†ËÑtzž‹­Þd4^œWç&£éô¬%:5…׌¦Ó‹¥ÓH¯kGÓé…©,#ˆ¦Ó‹¥ÓЗµ£éôCÉo"šNOT[ÞצӋ¥3­Ç·¾˜˜PS_l3bª"•zµ9,>YE ž»Øl½:½)™s«Ô«3ç.¬­ÓÂʶŠC*¬’6NünþhLÀ—:R€‚qÔ³î¤t¦´0t]éioV]Ni˜ZzJ¼wNj©ël6%­#…)˜¬Sd)Ȩ˜R"b÷ã/A¥Dt¨–ˆ´nÖÆš9Eµ,£BwKŬéùK¨ò\YcÉ—.sg‚0R¡»u¸A™FrY +¤Û@öìÃ¥\ £Ñº[»Ì%âÚeîd<Œq¡;K±Jfeî¤Ø7“Bw–G@öôžy¹NÍ“oY‹|ÔF·/ŸçŠô³¤6K7GÄåFk/%G§²Øâ~ŒóÂÉ\klV"«´Î5K–Ë=»Ä0&­s KuÌ Ø½–¼î›…0&‹AL]•¥IEÅ…1i#ÂF ”w|ü‹•0¦ƒô£wAc±]~+¡³ ·ÒBSW%»¯#WögVƒ˜ÄšÂúa†J»c(D¤Z c²ÆŽæ*ÆŒŸn&ƵÐüèm,çw±lŒk1`ÅÏN•Þ$"l3©©øÛXŒëh®áºS èª' •“æµûÖs'ÜÏ+Bò,F=/Žq…)™åî°ã*ÝÞLøø]w<~‡óÙŒùÞçCôãWÇ÷ø|Žrvï8pˆa}EÛ`ñ}qkªéñ¯¡i³9í˜Éï§9espuØv™DÜ ÐÝ®Ó0nö3áySÌé“UuØŒ«ë…®®Í"ÿži½Aá¾p±÷Í3½gåê°Ñ‡ý±Ñ “ ¼fáL¡»P†¦Í÷§Fñp±ZækÿM|RU<œ[7î ¿ÀiYÍ9J]q.N5 ìí·ß˜žQn(ãÇ”±óñ UßàÂpЃ©+ú¨T¬û–²Ì†ƒÎæŒÝpP{îÎ.÷ì‚a§qaä¿îâõäÍJ»ÞÏÛ»^;+*µŒì}õÊÝÖÂÃü¹ãÉ$†ÈÜæUL§ ‘q½éÔ~ªüÌŒI”Hè,ºMºøgQ؃nJ‹J†Y-¨urPQZ¬¹ ™TÅSºVNI¨)l<©%\« ]äVVÌóñX5Q• «T:X 𤛒¡k•áÖéVf)-éZeæÙXTÚM!O¯¥ó¤6z-ó|Š˜xÂ…>éV£î|·Î}±¾è–½Ù8„1›”±žxÉû’4©JÏÍGë«„+d˜½²ºfÊŠ¢DÙj:ZSì•ïÛœƒµªÜÂ<ð·æÒ´U»uy#Vž+¿®KÍrú±ò&ò6b  Öd½l^k¸´BSã;ŠQ€ v.ö^)//¶Hj)›ziYÒ)Fh­mgÄ|-:çÖfXÙœŒ +Ð<†CÇ.¶R Õ@?Ø%¢H‹¯ÂŠQ€Šõ4‰ÔÆX.Çõä2òòQ€&SRĪdäVGÿ©Ö,Ê·TE¶•‹ò©"R©(Ÿ®VaãEù,TdÛ@Q>r+Ÿë¿\”³$.Yoé¢|ºZ¸å3¯¼©¢|VëW®U”O®UÀIM ïoŽ›Í¢Ð`ýª~›É õv¸ÜPêúYÎ µV]?óª~«xÛêÕõ[ÞOi•º~ºQwëç†RÕõ3× +ç†Z®®Ÿá™ç†Z²®ŸyU?9w±8å³q]?sÏ…æjº~V"¹6TݪŸŒ¾¬U×ÏüÑtêW®T×O³Æ›¨¢©ëgþ@ªK×õ3 +¸ o"¾rqñ‘Vn¢®ŸyU?9o¹N]?sBGø± ÔõóšVõ[:•A]?sQ×Ð zɺ~Fa’ ½ —ªë·VÌ»åº~Vêñ­_×ϼªŸ"SëuýÌgõ"RW©ëgÀjòUýT~+×õÓqƒ“Uõ“ü”V O9·\Éhýº~æUýl&b…º~æתˆÔ•ëú)ã·ÔϬ“çj¥º~æ hÛP]¿Ew3uýÌ­ÃKÕã[9‹‡ªßúqºUýVˆæÐÖõ3ˆ{°äm»T]?sNžÓÁ®_×O/îAŠmS[W­ë·(bÈzø‘Y]?s{³Æ‹`ź~ê=U¦X^§Ÿu' óz|k'Óá«úm¦ß"YÚJöm]¿%JñéD¤®^×ϼªŸ1´^]?ÙñÒ©ê·ZTÚ²lŽñ[®®Ÿ)›ƒ¾£©ëg…k½ß:Q¸Šz|kÔõ“õ¢ƒ¾«Ôã[> +W-5uýÖ†ç«ú)ë#¯^×ÏkZÕÏ4ËÙuýÌÝ»t¨ØJuýÌtüaVªëg°/|U¿Åyá¬Ä<õgæbû"½¥rÅŒëú-)W®X×ϼªßZÞƒ²º~æ'Âf¼XKÕõ3g %ûËzuýÌbey­º~ê¥TVõÓåÇV¨ëgÊñ<Ìúuý,ó0kÕõSí¤Ê€³ ºÖr]?sâ°(Šs3±bì[uª±4’ÏŒy4ž.h<>Ty¥î; F*­Âkl/&“÷ÅRŠ\gJý‘JïݶƒªNmŽMtÛ¡¤n#t¢˜ï8“ƒâcôè3ž¿$–ÄFœ)ÜxzäØ0îq÷I8笷|Ñ­á ä;=jøÄ­Â- ¼Ágí.–hÜÜ«áî…Ÿ¼"Dgòš)\³5dU®@HÕÉ+~“Gal‚¿q¼Âõé0 û; _@ßy÷j¸_Ló³y2²36‚:Y᫇p?¯ÃⳌØl§‚<ᾈ\ûKÁaÊ™xx?èTRåгŒäq±Ú=åÕ|¼˜ ø§FJ~.¿o‚8G‚ª ¹ÛsñP9þŠ·¦îʉgƒ .¦€Çò¨aŠtÁf/ËCr47ˆ†.îLç/è!^óˆhIï™’ÿÆ  ˜ö à |V ‡×åÔðÇÍ áJP_»Ъ³ûä«LÈ…rP@v™y —å29‚!È”µ¿àm=H…GGY ¾~©Òaꃂ&-N²ˆŒœî‚Û¼jÚCK…D¦é%»Æq\Õ^ÉD“#tõ3ž8Mø½¨/ù)wÕ6-õlsÀ=°ÿ +æ:Å”“oÚç*FYàž«¼gWú*„s AQ-WÕî.¿·›/§°jÜØG1öC#wtùNO_IºZì–à %ÔaÕ›¦OeB$á`ß„[$^/²Ýý™“uLØuïê‚ÇÅ4›oÆkVF¾/~˜R{¿‚btN²³)Ò㨽(m:²—®Òõ ãέ8>w¥‚O'Ãuär\®¶ÓÖ¶$­7N>ŒÓ¤h¾Þ²ÕûJÔ}?rg?@Ä*Aó¥3'&W¥« ‰Ôà”Ò´/þݵpƨûcO…ÍÏ^O‰%¨Ó}¢]dóƒó¸áÍâGv'3ÐE=÷¸ác—ƒÓàã‡# Ùdž#Ûäç»é %á×] u{M +~ 1¾¾.<ÝXÅ{o–®eÛÐÁIÖ=uÙäåkXmŽŠ¯7–n¦|ÝD¬q1ýÚ¤Äxìç©EÏÌ8CÐø hÔ +â³ïWa*Ñ›ï?[¹Ó°¼½4=¾iž“öïcä_oÞÐ×v(j¦<àdU²ôèóó—?çd^f©£˜F =SjÛ3ÕK/Ò,àñ•fªÎ”ÙrKôÓŽ-Œüv «LG`‰šäÈQð@®8ÀC9jiä“:øTmçpÅžöCÔý…¿Bûè—‡dÁÅ>*Î ôØqPÖ¡J3¥ÚC‘ö}ùk†×Ú¦¹ØÞ—tQ åΑ! ŒòËùAƒòz(Ы"˜ÅqñS€*…c^§´RÁ–y‰uöç,u_Ú/±›>sÍ?5Kt-ç¯óÈ`+A­ÙÀ݇‹=¨…ÌâÁ§Ñ[…:lÝvôýúä×˯Bó›=zð†¢3ýöÈÚÈn?ù-À(°9÷®‡κÆG=/ÚélòQâ“° !6á¹Ä JÏ£E‚¸ w(Öó;ìÕ±0pv*”äѸÚSåw¨ ¾_CwÂe&éq=Y )A˜fÎgÇ«ý]É=&§„äSZ@<¨Ã«h× x4gÀ6 õ±@íZ%¦T÷‡ñV²‘2ÞÐ2w-,ñ&tvzrÈ‚þ0\æn±-KŒzû,M¾ü®—'rˆhƳZg-¡ÉÞ| +§‹Àøæü0h7‰ŒJ·¾-8c‡ÕP„é¿yªXØ(† +àæÊ…ˆ¥‘¯îƒ€í +J„îœôAsÜ´Ä Ð7€üä£Ò/aºæÿÌ#“4YaGÎü0p.‹=doμH7ª°è7eCº!b÷ BfØïA W;ŸÃÓÖã˜oÑÎx½á"…ÌÀqfMvM2¹íщ7YÄ™ÀqFÖN2»ŸÂØtÈ_4[x§ÝäǪ°D59U·À *ø±ãó@v+,Ýðñ8o6ˆFX8côx6vìðáDX8/Ï@ü¡k/—{pW4ã°bñ#JoÆû±BùÅ~X/œ‹¸—6‰SR;‹¢Ú¾_î…ýüüT‘qÓ—ûá³Øר9ŽÉÖ˜|fÿvÍI66?ÑtòT¡Zþš8ÞK³YúÃ#_,båHù9#1k0®ø+]NÏï(ì—H8JzìÔtQʺ +Ý*-™Yxµ[úÊEt*pI;e¢Ê–È…´ðÙÅùŒ¬ØÕ,øÔz÷²û©Ô€hUØìEóHÒ‰Êþ[™N?•|k ê|w¿ØŒ ¦líP}ƒ+\’áPL“çÉ]z†ÀÜx+ð %_¸]Ù›Wia¸í${ÀF[/|‚Aæ‡ÆAwùAÇ-R]®5ÝÕäY’J‘ëÚ?‚eÎÌ2+\Ý–ð£k´ß¾¶#Tåf#?ç$;·=›C¾Ìé¸×òE€ùÈdsá– ÇÊ–À‘²„%¥%°9p>/²rîÄÀn¾ÙÄË»°‡r üâðƒâÀã·ÄÂ"àIr}~ìÒØCó§ù95Ф¹÷‘¸µ»ÀîsGX¢´Ò?¨Üs «˜ U‰ðÉ »¸?øò¬s9¢×p–æpùÌ; ûbÚE1à_ç1D;òê»TÅcáLóöJñx½È»(:¼º]X\J´MùE´4|Œaª)uÁÞ¼Ò1yŸEjáø¥$tµ³ðï×iÒÅ|·Z+xÅ|¡ž›û%kW-|¹ùv˜ÖVlç5KÅãâ·Ö8c\ý©õÎX#Xïœ÷rÔºgìàѵî£ÞÝKA¯¦ƒ†×'œ1“#"ïBó½¨å¥48c •×Ù ºÚØ•]W^«] Ó.:®åÏæÐtÑ øÖÚêCȯ:RÜŠY?TÕÏÄ +[_‰rgp­Ç¨ù+”ÞͰ9,?F-Ò WœƒÀ'ײmfÁýœe‚´ØE-ôè¤dsõÆ4@¢Èf+1zðz×™Œ2ú¤×;Tãý¨=´¤Çþt`Ô™Ò¡q¤”øä•®ø8[ÏÊßÖZ9ùÛÓN^±ûã뛂ŒÁtïò·þPRþ6’HÉßfsiùÛZ%#{ÚÈÊï ã¾nçäoÇݼüík¯À;ý„ibBõ«<Àb~û8TÊzûÝÒϰÚ(Þ—Éy©Áor’ÓÈ-1jòÂÌàÍKª¤³äu#,§nOó¾Ï§3o<Üý´;çó}»·úÕFãõ‰ÝóWÔÁ=ºÞœ}ʵ£ª%Ñln¿;( ónúdfWÁÊîSH¯ %óÂCl™QˆáXrLJÊ´÷$œ‚¹ûNŠæÙ°<Ï:PøxÇt ~#y‡6¿’ÑL0ý¢‚†3ý—„“+²0œ…^øE’Íž£pY; õÄG3­‰n˜f Á ?N¦t=Ï0îœ]²#ljŸøƒÈ|_ +틦r”S~_P6 (¿ÂˇÞR{)¬Ý-±ùÇÏ2Ý ÚóŽÑžçã¼eˆ×õñÙªæí-Áå ìaÍûo¹~] +ú1ʽ£˜§’4+.÷ôäî³Oþr^_Š û9—6Á¾-M.MWénÑæ`<ö£8ãzx¨³ùT–è#»$×#lX?äÍ2ÌŽ“pv’Û^…i|õÃf;é$4I:™þk#†é¸(!Hÿv.)Q Ç«á—/­*=úÚ£Yý0øtÕÉ#ŸÃå(¡ƒO I¹×ZíÚ®ˆ›BÕjð_vÎPÏRfSGÌœ‘ùÑ7Á7-äV,ú ºøùEG÷ ¥ŠÜM•Wt5…Õ¬*¥+‘O]û×s¼Î=»××O Oäú¬äí¾þøÚîyø8¡ïÎ.rG‰ëv%¾÷rRžÝU?ì»Åü.q\‘i•Þ…òQäU:ªEâÝá&—”\vxª›™è†#~û©ò¿YbÄÁ=HtÈ•áJاÀ•ÚØ•‡çú8/MšäÝÒ]œÇdT‘Ê.ÀÉî.ŒW{Äìnàk?¡l¨µ¦Qa]ãĠ~°ÊeŸÜ8ýÚ/bäʇ|T‰ß"¿ê+ÏQ¥s75…¢pïÎðù‰_Æ4뜡­—óÝ"h3T?ºRðÅSš@òê]ɼ¡®´¹Î„Åt!ôpnFÌA¶‘!¾=üv+Ð+ú|Pˈ>÷»òÉUÏ)´gQ;| ŠøtMÐÓ`ßz³nÇë¼xK¢ï&àíî7ëd:qXÞXÞ2û¬ÓÝbIá]¨Íù ;Ùüq/¿pDaµcTøù8 v?Y>D»uÆke™2ó¦¦/ 5ýnä1j BÝw&êpÔ-].Ú rÔá÷„Å…¹Õ3£€´ØË ZŸÔ€ýE·—,A4TWð1ÓH÷ѧ¹æÝînaƒ²†£i#ˆO•ÜÓHE–l0rŠ~·û˜J=~+XyçÝ~sè´Vó?].àž›Õ׋ÏI¾·a:wÝž²fä*àÒ“èíXË}ÔÜ/`ñº’8EòV¬üÅ4ËŒÂÝ@¥Kß©àÊ_}Eá9*é†9­Bˆ'[#æƒöo®QÝ{-ýFË€ø4A“‰‚ζ"§Óý G‰úBÎ|s˜Ms¿6²éXƒ,sè¥&ð¿Çyàäâ}ž¦¡_Ц4)Ëà +¯+€‹‡8Å$ÉÕôf]ßsfpiϽ D <0ýq…1rPnÄôû& W|HêèEèqÛƒ†xôÁv÷» !CQÿ[ÇÞƒx>É£__ý€v"[>†”¬"Äð_Lóë L¾èˆéÖlÓp¶â6á!v«®:JŠË®ƒZc$e2ù(_®š EL/Ê—Eúîy$Ç‹­ëI°9TBÀ/ˆaÇd×y"€[ÂMΣ[&,!\}Xd´’ȯµFp#Ã?·º7úTºM„‡™]®¡ÄÀKxU\&f„Š\¦_Ÿ"“« ÷ùdñª°èî­(ɧDGɇt_†œ›¼°ÝrÜ Ûþ” +uКÀMïÂD¶ScOw  ‚lušç’7 Ÿ""»%¡“Èc{ImôAÌb“ù>ËÅ[D¬s£³!Ö1ž+`Cx{kÁ§Lð ;¢áÚ?D»:YÎFà?IÖ%]!×ט— |0î7ú¶³UÎß`Ôh%™RÎÎpDjâj_ñÞÛó—%·æQpkG.þ`[¥û’¹XOòå"î\pþ™-ÏnRýLçü,ˆÄ¿i÷¿ŸNhD0;µ9P%*m²*jMÙí—¢×u€Ÿ7’téj’àO€Ñ™5ç©Rxy £p·M%—,ª£¹\² ܸ܊™¾z•ào´‡Äq‰Á^:û‰ÉuöJ„Ù醓L×’Èbw§¡¯‘ÚÓhîFùÿßãþ¹<$WJRqÿ$à9°÷'٤قóã®fÕ'×:t_.€G›~!¡O#¡O*Žþçð@'ý/xu÷f“Ì.ú¦ñ²Gåy¬¾]WdÝáVÊWž-É¡Ži˜ö;²uÆÝfˆ§6ú{Ñ[¦Â1 è€{U(hWÉ=é­•Ö Ð@—Ä0° õë¼D>™ †`^’?_ÿžëÝr!"uñ=O8ßïÝ¥ëÊÅ™e7§ëòìÙk(÷ætÝt”ÅʽƒŒ«¦§ÜSÑu-õ){õñgEåù­:{ö!ðk VqÞd©øSÊÎ++*÷TlÇóo\¹§bì¹øJQ¹‡Y>ÖUîy_*>IçV ‰z4†7ÇÎ:~ê 8x ÿ®rXÅà‡Áåù1¡ÍèöŠ1ïÓQÅ|áV§Sܱ8þÕ¯yüsiB¥™’Ó&\aøs“¢«ÏUÞðTèñMùPO—gslF›g®Ëãë½bšÇîëOnX×P›wÁ‘m#~)½–áI ö2¼l”…"<õ“¹w-#ÀKtßM/%Â+x7­àa©At%‰ +¹>º˜gó—…ÃÍÜs½[ÎÉÈ›¼ç +…¸åD²XõžGà"%Ì€éÅ´j¼aŸgÝÝ­‰°‹Æ1|ã€(ò° »yWú¿`„›ªòû‚.9A„§ê8© +‚Ë•„€/0 b¼X ETݲœz~P®!¡gÑGºLxëÛ¦Ôù† èÆÙýgÙ6ÆœvP“_zîë[Ðä›kØy„YV“ñnI»p”…š|¡&ß\/Ï:+ÉËkò9?3¥Ÿé?á ¹0ÎBpì%ÒpEM¾9'OlIÐäêñI(.Þýµ4ù§^i 5Ièy¢Uðdyé€(ßñŽÅD{žß¢=O¶$ ¶¡ 8ütÀQ<Ùðí:úÅà:Wb@ÀN8<äExgDŠÞÃ: 2• +ïãð³·,€Ç¼IB®`”t$•û¶6ǦíyzÀÅð2Jpaly—7êaÚS%¾@ʼ’ß" ;ÊÆ9=/wp  ¨å²-Œ~âƒSpÒQzœóWIþ5îæè^l¼ñZ®àX]ˆ×®~Š\Dª[aJûäæ!}bÆûéQ\C]ÅIW’,æã •äöcð»Ü†*V¬b =ÓQ#Eöš\Õ(Èóˆ0c÷>Ó¿Î…QàÎ’/’÷ˆUM¾Vȶ¤½€g9*>gA¶§WBÔá(f×N… š]Æ7h™)OuDzù2HÉùÁ)*ö}4›÷Ø‹t-°Ï FT1ÅFØýéÛ͘ò AÁ0ÊF0åwÿ'QE9à|E6@[‹s6 új7gÌFYÄ0ŒU6€×(êô‘ &VfÐå]Y)ïy<¼Æ <Í$rý^/¡3Ho3lêú~Á ¯bdûr€ŸÒk±Ùd>L%Nà"]$@*FTzÈ)¡ìtâ÷hË"Y–PíÆ#Ãå ¤‰rPà!Ã:/ÏOHìuß{Î1{¤&)÷ÔÁÍ ‹†Ed bIZE{$Úïý‡­‰:ßr9TóÚk³hª®=PûsL6Ów­JüurݬdÁ7'þÆ£,gÁ7'þÊܶrâï_ƒøûUĸñÁåà.{#Ï”®ë1 o@-R…º“¹>ñ·9ùÿeâ/iH|îMÿzë\®Íêß}¼Éä²³<µ¿ÎExÊîÞý^Rüw'Sc^@½+E2QÄQÍ×®<´åç˜ÒMä T›Dñ¢Âœ—u¤û@Ùáûߪœ€ïzx#ºzµ¯®¸ÊóÓ¿±ç9Nßõ0©ÑÕ/*†RD“÷Ô„”<ŸÏeÑüN_âó•ú1fþІ¾°ÀÚ‡|ëXö$Æž»/X{—ó}5×\›°ö’8¾¼eOdìÝ¢7Ô*¬½[ÅÚ£õøà¿•G‚‘„Æ?ÇpÊMÔÂñ)}6¤×ÓcìmŽMëõ(RePÉØÛ˳ö@Ù 5’«RÏ3@"Pø—™À¿¿üÈG+|Œ®Òíí»ØÀò?uÐ/ª†lFIÝ×aЛ:áÆ1ÅS)rX¼Öu¼û05Ò©úeAÞ/Ô÷ÛÑöe“˜m© \A5 + }Ýs´|4ÑŽnÀ‚Ïkï›×qdΓHªQo×…·~ ûkð,èíУ{Mž½¤…[Ù€'  M6zü»Í±˜ƒ×ïÍ'ê]pØýÍ]qà n[ãŠ[—Ýy ‰Þ‡Û‹pßÁ2óZï{$ÚaX˜G8/?¾=äËS0^†)¼,üG±@ÔUQ-&wô€8ÜÄ0T*ÔÞ"HÒ4í})ÑÓ>"‘tâÛƒRþË I´ +Ò»«…y$?ëDk9*Q5X¢n‡¡žÂ­2FŒ÷—RÞ!Ï¿&QW’ô9Ý\a$^•wu¢Â‡»¿ïsåO‘—Wß-¥¼³9VTßÑx—…ç|á,Ðx—ÖvÇ÷å2Ôíž°ZOó–-…Wƽþ¨yþßnÅ©ïFŸ“ +PR£ñÅU ðp£‰òN²ÜâO¢ž-{ïÈÉ¢.þ8ïn0„~’aå#¢½aÞÑ<º ˆOì/o׌{â/4MJ\*Ø~ÝS!‘(ù7eɈOrqÖ9¸K.¥·#÷eIÍÝB½]Ò_º®L»ùûxJ¼ï¹»oYi·¢ÊΦë¿iï{"Wjüï—ö¾˜óô‚§ŠþÇ$]ÊD²çuShW€»(ÅwÛŽ¡œÏGæ²»Í±Ž¿žUÙ]ª±Œ¿–kZFv³hʧ—bJ~LPøv¤oCBîÎ5—·×å¾ lˆ¢Žä"©êÔ+¾Eµ›“øÊ™R›EÆ|Œ©&0ÞæBPÔ=ä>î$ ScR¶9xͫŽ“#ÌèÄLµ%ıc¾(ÖŒ°Kr÷{y:[‰ï§ï +ƒæ^³à~vœá?åªFø˜Jî¾·úU&ü¿Ýí)¸PÞo "ïlƒ(`ÓUÝcήÜQ@Ì:Ë ³ÝuQ@Jà!cüùèÚÅŒ¿ Úø­f%ý‡Ò}ftŸd[­åØC}ºõN¬t¨ˆ |`š›rèI1î>J +æ"7þ< `„~Š“ ÉIzôf87?NDïí[>âË™ö¨‡´yŠ´µXAŠqßP5.Ê&A²…‘õÖcs…ÈÜ£3` Šü…nd®ÍñË*~y"9rd½{*ò¾Ïæa5üý}\¼;Ü«•²Þd£ßû>sPFÓg‡Ò1„/ ÇB }ù•>¢¼ÓäN_§ÇF(ýk–Ä«þ§U82¶$zE¶äÜHJbùBêœùòöK#†Î\bÖ&MŽ¢È²ÌÐ×r@þ‰± ¤Ü÷º± iÀßaÖ×AÝaŠX'»W¢ðÔg Qu`üa†Žù8qF¬M|£·èÌÀãÏ1ƒT¡`¡½/‰ í]Eœ Iq¹Óï$¸bÊvªJ’‡š"¤Àޱ˜Öh/šB?Xöj\¥G­,_è׌ÍÁQ,Àw‰¥°qâíÖÈXah•µ9H©(·/øº½õ ›Qbù¼=ëø§à×€ý,éæ—@®–h­ë3áä‹rZ(Ì’ð±·")Yƒšlfà +Q2оb/M×T(ªÐ’øRLÓÕ‡‰"ÒÔ“jŸªõ,抋³…àO“×S5¢¦Å^ƒÝÿh’¨â@zo¬¡D+‹XËÅ\¢µ9Î÷;gioê«[`xWdw7@_0õlì÷èËíÇúôÅe¨é¶ÀîâÙªHèÀ‡r¯(R¸ G‚Qéj±—Á$2<²¶)€èNQò\6È˳ÙD14/Í9¿ñCåâôèám­0um4ú* +±¯lî(Qkäk‘»ãl3㯧ÛoÌ4ÄÁdäÕ\\–rp‘yÚ8äßHJÃq}nÑ#Ͳ‹‹6)ÍtnèàÂsJ&..ðkë•Y ’ÒH¨tÝ6–”F¤bBZëIiНդ4|=q-·zï^žq·#%Ù(ÉY»Ð$†¬d!KKÒ02q¢]ÆíÅ,?&˜9Äe;QÝh.wÇ­¹ œi™ˆ Cݧ£YÈ”¾ +¶§pýgmâÕþì÷lâªÌ«ØÄaº¾ªM< 5‰™”nügÚĉÛþº6qt{™•sÒÂ6%Ã{*û·ÅìsÊEŸ~·’«^áœÕ)ò³»6I?‰~v¸ûÝ Ü¥í¤˜ËŒ¢Çk‹Ä½²Y¼ÝÎ(üÆ_bƒSÂú5ÐÔǤÕëǬY¢ûF·›WPyOí-»ûé5ƒöï6'p&ðIü0üNÚ…Áñi®=[&Ö²x9vé’ta›1Œß]ç7Ï ㊊l:ÒÈjy)Õ!­²ìs‹UG>mP«µ¼”$'ä¦TG†Š#¾&×zª#ÊÌÍdR&=“´h0¬2¢«7¨eÛ N%€y)õä’çje‰Áª¼@⑉[ÁŸÈ Wáo±Ä –_Šyèõå +ÖàOǾ}ÚÏo#»+rß·»ÙêµÝ5 ŽÅ’ëwè\ÓÂW.4V )r@ %z ½þ¤¨E–Ê£ômßdª[¬øiäÖ„úÓÜkž«Yo TÀ(ÊD7¨GL£ƒÖ!ñÈ‚S’Nc]Ѱy¦KÞOé÷„ +!ûÜòBVY*Ó¥Ž]aéàt†)MüŒcò'E¤—,*Ã;†œ³Þ=¹ŽÉØB +£òÈC—ù8¢@ŠXìz’ˆ59¢ÞÀ;ÍXëŒH•Ü=å:æûÈ‘”>tµ÷–Ü9I®æ9ºâÁSñù²À‘d§î{ŸY¦tã9$Ñ€X¶ÆÈí—8Ö?|®“ä=:“Þ]³|–m¦ê‰BÈý~Ö/Î×b"yÝxÏ”/‹¡^î¾sÞ¬œg+=Ñ­‡Óy‚ü¢Ðzö~ÅÈOüa ´žJPXÇÈ/ÓˆZÏŸµüîux˜€&P 5‹Lß`-_n'r~Xp¿íµ e&>Y^u"Æ%YH¢…%T'¢_Ÿq"ô<]SuB¼ÔFåÍ,Z¡INÔà£(ÙWùÌùÿĈ¡ Ú«h•ˆ![è“:T ÞÄ/3¬ †ã3PxyüÂŒ:§ Ä ƒ±{_)J¥ÐFáß>ígù`.aH&D`F¹Þ9•¬`ºOR’ãjzM]$N’ÐÕÎg~ ÃjwÐQºÊR >eºEL_Ò“,ù±ˆ…W³ +Œo*’|…jÌZÚeÑZ&pK.‹Ï_Ìu›Ežzö~|Ю]ÇjÉ£11èÂî£I·ržyoÁ«Ê€D!s±ÇÊà8°… ÌIV³;¦4ò:CÌKÔ¶ûܹä/Ç#«@a³ñÈžÍÄ#£SÐj™‡&NßœqˆÞBÖX*|ºjeÐãnã I”Í/e ˜@Rç}Í ™“;/¬C»„õiƒxäÌÉã7Sú¹‰`Š„çV² Á^^„ßhÑIð6›§}<;™‘±”^ÐÆžŽ(‹½6hı˜˜ó4Êwëîi­3 Ž ²ªL÷”„&ÌÙµñ|Æê’„¿¿l>c¦ì‰@š$ÂKŠAL]tBmaлL‘çîv%Ç”rŒl F‰\éM J:„RÍ †Må•hºæð—¨ûþ~U™ç”AS3U±À…”1‡a(‹4%ÃF‚ö+8¯:ÉØüe­Á×Jû•º…Ê8 C9èé5ŽwÿÎî+µ«vÿûÉ”È9ÌÏËÁ~„uÇ«æ`MÕe“*àÁ( “ÒKáá`µaX ‹x còçñVŽ>9y,k€Öǃ?Ý‚­³òóŠ4Õ‹gcu}E:I¤I*Xé÷¹ýÅòñÂÌàÀ¢Wg¯žœTðe7@~ 2éÛ7j¼%¼3ÿêyê០+î1÷,^žÃ…Ń]óóo!¾‹ûNâ[€Ö:%Öl¿£j£z—˜·0Ìc LóÈ#’ª:Ö):FâW>é+Úס'âùia¼LC6ìÐg_–jÂM Žš¸\pÆ„Os^±y.÷)ዊTk¾§¿3ƒÏAr-àU‹Bðrk¬vìø÷áwœïŽ«ZîãïÝIÝ/¨e~<üå;iHžÏ8iSÏI“Úöð¶Ëu àòÎíÚ,Üüþ]Õ v{•»Õ +ÈP`Úsß#•Vá5¶“A4²*Ü='‘§’þàg’¹:myÒf»íPR§‘N:·2ßq&ÅÇèÑgþ<ÿ~I¤2¦pãé‘cƒfÞ'ᜳ¢X?ïô¨á·n·$ðŸµÄЇ¶7oßGYÅO^ ¼B%ªæî'U'¯øM= VlÏOx¸>ªÆÐN; _@ßy÷j¸_L‹gìeȈóÁ¬ðÅCH¸Ÿ×añYF RUj™¸ö—‚Ô3ñð~Щ¤Ê¡g)%ïèÕ=EÖÏ)üqÂó »%‘Чäçòû&ˆsÄs—÷p¯Ê·‡^îÎ[h÷À’Ïù–¬oü|"×oµ×Ò½c~žKe»!Aê¼C)┃À_‡S4`”iA`öx*†¼*w¥`Ñ·~Ëzèæ8X¾`ÖÄé @ßhõî¿ JJx$ÆÛä†?éO¢Ù!CAg!˜®/‰ëËùƒOé‘ xkßÅŒ;µÓ“hŠcÇnø9ˆ¸/zè`X=rÊþ©à#ÔZËð)þ¸yä•Öð"xqà‰,¦>(€°J@aûñ—×Âëî{éÕ£pö›nžSâÖ¶ÚØ 0%ÿ— ^ªcÜø¨à®SñKl‡cáÑ2ø<ÿÂ\c5b0 8¸ +b>¦rfwÕæ>|{…œ©]¥W(ÐÉ9÷앦³ÂOÙ{ܸ,Õíg*‰øà¼ +W\°C>¤‚µüõ)E˜ ~S‚&cx?E­µ›Nt†ßN¾öQðà¹ÿ—:%ˆ6†~z(¦CoŠ.aÎ*áùÚ›Éõü +6ÁœIàÃ)ÖfÌ™d",° \e¢né ùdÒ^Ù2àÊý@Fį䀛©å7+ù¾hѵ羚öÈXÙÈ 4‰Ê6üJ66úÅRy€y¿õrWînþü_´iò°ÝoOrRß}øE.éI…Ðs”ˆN1.. Ö‚­=i9†¡ÐýÚ‡·šã8urÃËþÂ"q$ZÈ=£< ¼jH,Í@…u›ÃœÌDI‹ôGNdâ0Ã÷¢9Ùâ;Ë= +ò éÑ};Ǫ•ÜÁô¼TŸ¤íÑ¥"zÎÈ ¹uÆýÚßã×Õ0$c dÇkÔâ8žGu‚ü±u±ÐRÝ ¯nhžDzL&^g`¯FCL^οž„HüÖ¾´ý›0q&k_ºÏørC ¯z´Œ! AðÅ„•}ѳ³}xÂ÷ Ž¿²õò±ÄŠ‘»/²bÒœƒœ ûîd÷eÌ–ï…b¯ ^ iáÕDbdÆ<-ù~ifþ¾¨xÜ™dô¿{\;â¼J]`HVá0ò +•UQpÊij!V3±êNàßsWùAg4L6é»è•/»˜ŠÒÅãæOâ„«$çsgÏy=Ìûé-bi\éë$á7,}ÅAÈáyD·Jô ã ¿箉áb¹D¸eC8öß.·–È,ËÐòêƒð¨ÌAÎ~G¶÷ ø8Íò£Á§î7c'ªÆ¼ÄgÀ*V›ûýU»O\ÐxvI€VÇîø+ ÂÕÝú'Tœ™ …“Žñõ¢SQ&"zQ+^ò•È%±"D¡£¹u¬v\H¢ZrÓ÷CW¬à9’ýœÀ´Å§ ±%‘kà}—¼„u>|¥ñ§žIe8ç8S‰,“Cµ_î…©`¨ýö¼S8%÷)uc?|ûáš;DZ#™5|fÿvÍÅ.NH +ßgO5ªåArr¼—f³ô‡‡W¶ÉRþcr$ ÷Á¸âW¬ääŸEöìŽÂ~Ièbì”ó5¤ƒBPÖ]éViyqrþÚsÖ¤ã÷àS¦S&Ì´ 9çÂg_ÂgW³àSë¤àTj@,9rÒºóÏrßÚÛ…ËáM%ßÚÈ‚Øñ«.~±Ç}‘|í4ekÇA>ÐÏ Í¹ëàä=¹KÏ_Ð2Mò…Íáveo^¥…!â·l´õÏ×ý=ø¡qÐ]~Ðqë˜ +¶¦»8›+Åæ»¥ëÚ?‚eèo·Œe] W7dȰ®Ñ~û®J¨ÊÍGÎQ¢‹(¿=ù0§â\Ë—fC–@p¯È¼Ä>…Eȱ²Ep¤ìaBAip6/ÒpzD£%àËTz³‰—wa<å"øÅEàÅE¶Ä¤¿I@09ý?viì¡ùÓÊ9È&N¾ùƒ]p‰KP» ì>w„%ø Ë/‚ê ºÐ-¬b‚68JÄÑØ ÀiévßâiÔtŵ,Îî‹n —o½ÇÀ:Ÿâ•âÓ,ùDÐÂn˜ÝJ‡=ëœiõ¬ê€_1«+ÊDÿ¢Ç¦šRìÍ+“—­à,zaq)Q¢§IóÝj­ tÙ³9<73öKÖ²Zøró-+Ï´Ô½êòs>ì¬yÆ€Aq­wÆ¡€Ôá3í¢—£Ö=c®õÎõî68c–»hx} ˆ¼òÊ3Ö‹ÖÙ ¢XÒëΘÕ.ªÝÅ×U¿>m±?­õÕ^@)q$¡ÑÂÝsá7›ŒRýL¬·ÈÕš/%¡/fQóW–»š9D4rãkÜZ¶Í,˜Ã,¤e¹útR².F=Çz4`ôàõ +Ùt&sø¤•jüÝWÏb¼õ¯u"Æþt@ZJZ. Dò."EÝ+n8-Z޳õ¬üm­•“¿=íäyd˜vŽR²-“¹Æüöq¨”õö»¥ŸaµQ¼;Œï‰!¡áœ¤xº%¶-NkíÉßæ9¼Ÿ8} wT/¹Ý2-¹Ì"ך¾óî‹3]úˆÌÍ  ÛG"¤râ#›íìrÒ´ ]ÚCcú8{pfN7Nxy©›è3`®ÜÛ»ù”èãˆtÃëa0=ˆb¯|¢FöÌ¥¬™¼æ +1û^&\K¿Q™8¹¹±;?“[2Çâ~…‰p …šAA‹v€çb²¶2€Ø÷©—k—Ò©”uvƒ -V§® HŽ·<¥¼YWi†ç »=å»_ßЂ³âU–œ"K̉ s»s¼ž9ʾ¸»—KRû^e23×ïFE 2›M[ˆ<š÷¨×ŸÍaÚ#%w îÍSÞNrÉtBÍ|ônââüjÜ×gvAy#éÑ’ðŒ®U?“áÑ/e‡…)ÕÒÈG^r§Ë8rš¦4n…ùW¯†õsÓã<¶ÊîaŸÅ< Òí2,¸îö¯sØãu€„4£#ÅýºÿÓæû¸»âi»fd³$'Ïâ!™åRþ,ƒK{Qr…/¼<ù“ñ}CeMáî~ác^äôZÂr­Û’Ò†uüÔEÓ]·& »Gˆ77&oÂü«ÒP4ß±8/ÞòêÙ´Šçw•Òëî8ß>¿=(ü9boN!–ZÛïψ(—³J?,Q|àäƒN³ø‹tüÎÿ°5õp«(Ú–‰>ƒàª%(§.ËCA×Ç'­©¹8Õ È¬XÕã~‰!…Þ ò6¾pÚ'ªá.úŽÇŠL¼ÚêŠI7×®…¬•N‡M¦h'Võ˜|‘ ¹8¿7t–l$ ò.9&gr>N1Èg¦Î¹’ + •ó¦ÊÖç€[ÙjÚüÑs†Ã1¼R¼q“öËBd»p^í8å=&ªmYß’­… …Ë>ÎÿoÆ–´9ÐZÙ/¿Oä–J›ÃŸœM¿>±A¸_˜><½7†ÿ™Îlô÷/ÿâßh|‡fb;L8 oÂøicds‘¶;´{§ñn£vòe›£ÌϾKOãï§÷áì?; ü¨{ÜèÔK;‰î}øArÇS¢úоr£´Óìc7ð_÷aùOxU‚ÿÚ6ŠŸÈ‘â'mþoáÅ3|ô¿;4µs¼ssGíLð÷m‹B!6 …ÃT4Æìø#¡§Ù8eb¡h8²óf ÇämhV§QC§Ëhi‡³ÔHg¸¹Á*ªÞ»†O‰D{:þ¾?¼NÝ;ÁÎûš›Ï¾gOï;äëÆÓÿLχŸÓD¢6|Ÿ¼NgÍáÛ”[mu,³lO‡¯;ÊŽá—Ó§‡ÇoîGôN°ðñ¡mS|ý¿üïÓœï;FQQùƒô\„C8u¹ß°;Áúû·¦Mýýéûiøzú3œÌ†ïü4(ƒóÜR`“h,ÄÊ–Ö| +WüÓ1±%ýCüæòiòýÈýÂUÿŸáëÓDùåã|ÌÞ§³óÿàVPKþ¶ýñó>/¿6Zn öpòô3_~(ù4鵦I/3Íe‡’O“YkšÌ2Ó\v(ù4Ùµ¦É.3M¾qRƒ'ÃÙðm®ÿ­ ‚‰k  +À\ÐÑw€ õ÷ÉôÿÀ{®ÈÙ÷Çì?â;AüaþïìÓpŽO†Þ2À»[dÇåÞé^.1[q%ÙG)9 Eu©K‡5jè4Òzíp–ýK©ËÈ©AüB Xÿ-Ø€¿¨ØT`x㑬3Kë4R³ÎØH qÑ–+Ö0át†ûS`IâÒ?±# ¯ÀHo¡s !tª¸C à…¢*,Ók¤U –°Ì*.d‹ ý Ðù_àÁ±…Î-tn¡Ó"t¢gÁBèTaYXËtiQQg8KþèDo‡?r±tF+²ÅÑ-Žþ…8ª ÓÁQ°é5Ò _T"u†³ÔèoÀQ6Nÿ#qt [èü¡S5Á0 +Xݤê6z9TpÇè†hXj¤í߇›^ë S`·¸¹ÅÍ-n®·¦ÅM+Hf µƒYjô7àæŸWynqs‹›[Ü\Qå©‹›VÌ$j³ÔèoÀM¥¾s‹›[ÜÜâæ3nªÔ‰a=ÜT!™N Úi­IŒVwiµÑ߀›^¿¹ÅÍ-nnqóœU©_wVÿú¿Ÿè!úë#¬šIÂú«Æ?[!ôë#l&JP‡P›2u=PºÜ…ucût†³ÔH;Ü¿³øoð@Y> fËYl9‹¿“³°à¢ët²Ðå.ªŸ#C;œ¥Ftþy¡l [èÜBç2ÆSYz„ÈŽŸ‰©âŸ‰×‰¬MX¯QC¯Q8¢n¤3œ¥FÚáþ-áÖÒƒš#Õoi°"ÑeÁrn½Ë¿,—HóùûÑÖ¿>ªJ¸EÉØ˜2±§†À°1FjC1”¦‘v8K´Ãý!aå¼yܨÓJ:ñøN…£CK§B +ÓF$wKn¶äfKn4ÿJ¢:@ØP(fŽÕѰN#5Vc#ÂÆ´0¬E}ýF:ÃýW`õf)XýGD†¦·X½Åê-Vo«W5H.Âj¸|æX é4Rc56R!¬%Öo¤3Ü««—OϦV#Uý¸·À½n‚Ó›ÉÕ¯’шàV7ÒnÜZÂdƒFÚá¶Àý ÀÍ*Œ•[àÞ÷¸7Ü«ÄÊOm?²ÿ}ª}ö"ņ1ϧµÍñ¦",0„¿èx DØHˆŠÈ„éxÀ5 „X†fbq*„ã;¯¶3i”–8À‹-ÄÂT,Ç4öÐ[`éŠRñP”‰„£  À¢!†¥âázé :ïcÃq€•W[(`iŽf¢qæÁ÷DG)è–Ygaa¸WÛ½­c‹+W( +D*΢24‰ã#†!øA8ÎD£l˜å×°6¥#t —F$2ü4£Ðy˜ +„Y€Cš±Qn­ #6‰ÇC†ÌqñXÊ9Ê_-¦`;ÁæÇ7ÚÙd:á.wß×¥eÚž£q– бpˆ¥B6¬@PE{btÔгEÞ\²Ó(Ø]N‹êôÞ˜¾?4ÂO`# ÆcBÑÚÖíï!>ŒŒ|­ry]ÂHAa! …üxüó& !»æª+éè §¥èHœ¥¢:ž7lÆŸ¶ '%†þW:,£ß\‚©ÙÀ6ÖtTeK×ÛtƸçâM×9#òM‡«DGa+¢Ñ0ÀB(þß²éôŽ+ÿþñ¾຤ђ±ì¯»ï.˜f”ŠÆ#«œMZK ´®,:E1ñÀ‚F F:õµÃYjôWQÄô–ÙßQÜò÷[þþÂÅ~E£Îh ý2]šFzeºôü%5ÃYj¤3Üs…NCúÇHñÏ,Ú£â+Ô¡ oSÀnûonUä ­ëR®“XF‹~:”Þâ:Ù]-7ú/r)ÿUýÓ©e¶æ[èÜB窩 Uì«ÉK±:ÔI`±‘ +ð òZi¤3Ü¿:ÿ|)ÄÕXЈ|EŒ¼Ç·8ºÅÑ¿GY5O‰éÖÔ4Ò«!¨L­ÑÉ€¨ÉÊmÔH;ÜGGÙð–ÝBç:7ìVñûYºèßOÓEÿ~-fÕhP­~Z•åQKÔ´¹Ÿt¨ŒN#-½Z”TÒ¨Ñß@Ô”z•?“zrKÔ¶DmKÔ6NÔV¥8‚Í‘¯‡ûå÷IcøŸéÌï·9'Çéùlø8e{˜ÿgº3|G?’é'|³ó0›Îa¬éÎüñãñø‰ÐÜá(·*¶ÿ<5™˜ endstream endobj 25 0 obj <>stream +%AI12_CompressedDataxœì½ms$·•&ú ò?Ôý0öÆt1HíÄD°ø2«½¶¥°d¯g'6:ènJâšÝìa³åñüúû<@V&Š,ª[ûN3C-²*ßœóœ÷ø¾þæÅéë»?^¿¶ý¦û‡8»¿¾z¸»ÿb#Ÿn¾¼½ýðþážýⷿܘ°íqÒé—ñe>ñ÷×÷ïoîÞ~±±vÛË——¼ú¿¹yõÃÝíÕûÍÙÕýÃõý/7¿ø%¾ûöæáößþpóðâýõýÍÕíÍ^o¯n~YžŒ[_=àwbü‰™6î‹~Ü|ýk~õöÇ«÷ïqÁ3qÀg»»o_ß¼ý~w÷_l³yáCØø€_ƒ¯ÿÇÍo¯ßWçl½·apCð<{Ü†É Sltri¿Ü0ŽÎû>ÄÀû,Ïð#îz~÷êÛë·_ßß½º~ÿþìîöîþý›ÝíÕ«?-¾¾¼{û€¿¾ºÅ°ÞÞ½øíÝ›«·‹ïs}ýúúõ³N¿ô//on¯1™o®6fàÔž~iìË݇›Û׿ùðæ×˜fë?^ÊKüîýÕ÷˜ù‡—_¾Á'ß\?àÖßã)\ž³_ÿëÿ»|sLf>~ño¿½þþFVËð~™ï|÷îÍÕýŸxùæE˜ìf4vÓ§/¿½~ó/~æ¶·˜Ôaâÿ–äs19ÏDÜÇÛŸÜæ…‰éÛý¤^ÿxsýç/6¿¹{{æáôþá›´êÎõ}ú7}óÛ·×÷¿{{ôühJñë»××·ù#¹þòöJÆ/‡Ùÿ›NøöêþûëÊÝí‡!æXž€‰þÕÕ_®¹¾F ¼Üa’Þâ9oðº/o¾{ùcÚ/¿øÂ„tÚôò«w×o¿½û½ å…óÃf6 =³±ÞE¬çd8|;:·Át”—3ûóOo±ƒÞbšËS?ý#.Þ¾~™·òõëåc¼<†)ó@D_ƒ¬¾º¿ÁD|‘ˆ"‘Û¿Üß¼ÞS[°›˜þ‘¹ÞbRùcÌdûÉNÇ~2ÉOÆÙc>IÓƒ5À(ÊÂÙ—g¿^ì„~Ë­ŒaŸÝ½!ݽ'7áÊboÜÞ}Ÿ¾›—opõ‡wÝ¿uÃtòïî®ßãV·×›i<ùþþêÇë±ñäôõÍõ=¾yrz¯OÎ^]¿¾¹½½:¹¸zõááúä7ؽ×'_•Óº“ßÍW\¥S®än'W¯nî±%¾»½þ“«ý9éú+¹ù«rók¹²;¹N—^/.½ž/½I·¿IçÜ,ι™Ïy+·ïNîÒ¹wéܻŹwó¹wéU>¤S?¤S?ìOíN>Ìç¾¾úþûëû“×xÁëë“W˜ï“÷ é[Žâýõ+nº“?~¸½½~8ywuÏx÷à ®/|ýÇ[ÌÒ½p&ÜíõÉ«»wéýðpNõúš¼é$½Ãü¸íÛ»‡××ßœ^œ|õBè‡nþèäÙ››·ö'•ÿÿåúíÉ›õÇ:¯üÿîþõw׸ÕÍÛkþþæêý«·ü£œp…ÏóÓÿýÃõ{òõÝŸßž\ÿǫ۫7ò+¨ëæÕÕ-.˜¯úüëæ­~ïÁ÷o¯ßÜA€~÷°ÿ+ÍÄõííÍ;Žüý»«W×'§i1N3±åÿ]œÜ‘FÞ¾Æ+\¿‘ÿ !cŠå¦åtOùkÿyúðõÍ7$yÒæ9ÿ×ù·ïî¯ÒŠ^|¸¿“7•2¿·ü%·ëN¾»Á€3yàÉ'ïðœ»×$Yëý>ûãÕûëùåœúðÃ݇÷ ‘îätA¢‹ßOe\Ì/w‘¦æËôù—Krýr>éËtÒW餯÷+ãþ*ñ»tÆï–·ù]úê5W +pådquZˆ7W¯îIïtrÚÕ+ÙiK§Ýüðáí÷W÷ÞÜ^}xÀ>[þÓÉ«+\×}{!|ÙÿÏ—ß¾‡ÈÜKÊ!‰¦‹·¯îˆw¾Ø¼\£ŠdüÛIuÂIu~ßþïtsðÃrëÍ·÷®¿ýË»ëîßÌhò¶8N0=×ÿþáêŒ'7o¿ÃöxøËbÓqJäðLÀ=Ì7ÿèL4Ü{ØûÀ„¯o¾ûîc{#@ääÝýÝë¯ÀnpÇò8Ü>N'_½¹þþjәɟ€pmÌN®Þá‚ÿÈo1Å“óëÛ‡«5./6Ý^¿ýþà©çÉ· ç—ßüåÍïn_ž¤ÿ¯Fî³ÄÇ45¢é~ó®üõí|õ/÷wÞ}ùö»»î 5ÿ, »ø?¯_o¾úãÿÅ€¿Å0qàëo¿Çßó9€¿ï~ùèí Éî¯7éK\)–ÿ?}õùõw‘ûËÓ§o¼¾½{·¸m:ïéû}}{õöê~#ŸÏ·ûÕ à×W˜žý yâõÃޏ#pÅ;JËëTwä„ÅWO?èW`Ïõ ä3ÐÝŸïîÿ4?p¡ölA"ßõ›?]?¼ú¡¾oþôãî,ÔxóþÍ|ùò“¯¹[^Ý^óHÆ#î›WD÷›Ýý‡÷?l¾½»»ÝßvõÕ¼‚ùcù”çÿm<ãk¹àíWoñË­'åê'AH×ü>k¾¦õ|ù÷òŒ³+ p7¯Zi|??oùÝó– #º¶y??&ý¹¿5YTúìèeß7`£`JžóÍŸ¯°ýuóÇGŸÆ÷†Œ|mñ͇›‡ëýݽyG»Åæ›®Þ]Ëf/g~3ßЋڶK/^<"°l¿Ù½]|ÿ/š_@’\‰TÿæOùe·üƒªãf÷:t,ü纾û§ºñ?wfó/w÷éh`N4<ªnCR,LJv u§}ÓýÃ˧NÛ½_ÞI´Sù®uƒå·¸nw>OFS{˜_Ý_Aîÿãæ_—ïþŒ¡Vàv> ƒô?ñÛG·øõŸqÿÝnw¶;ß]ì.Ïú3sfφ3wæÏƳpϦ³Ó³³³ó³‹³ËóþÜœÛóáÜûóñ<œÇóéüô|w~v~~~q~yÑ_˜ {1tîÂ_Œá"Êýqöñ‡{úè¿þ3È ¯?&jxäpÏ?:õÑj~epÑEÇbŒS<»xÏãE¼œúÉLvr“ŸÆ)L4 œN»él:Ÿ.¦ËÓþÔœÚÓáÔúÓñ4œÆÓéôôtwzÖžŸ^œ^îúÙÙݰs;¿wawÓît·KžuŒO]ãÃÅšT“l?íQßð±5|ô©â0 §Ãn8·‹á‹fœuƒsλÑÝäNÝÎz.Ü%–Ñxë÷~ôÁG?ùS¿ógö…¿ûn4£‡Ñ~Ç0ÆqOÇÝx†9º/CL°a.ø0†b˜ÂiØ…3LüE¸Œ}4ÑÆ!:y»ËËË ç8Îpìpœâ˜pDÇxéq8‹Ãàè/{^xÁŸó lÆ l׋Óîâôät‚Ãn Øs#vžÇþs¶¢Å†4Ø–=Ÿˆ-zqÎìflÚ¶.ˆ›8ž‡j‰ý1Çݱ'~Š>“ü./eed0VØùfèc?õ§=¶aÖŸc/qoc,ŽÁ8ã¡kŽ&@WÄ.7§fgÀ8Í9gÛ\ò¾ÎäÏ€ÃYP˜YŠ9X0‹ío±Ã-ø­Wµ²\\ïLÎF¹Á€ŸŽÿ .>ãâÕyÈ™qŸ ]y÷B-`à8œðp/EÊŠBg§rôH‚¼?BÓ—}*5rÈ(äprx9F9B>¢S>Nçc7glç«ã¢y<ñ³¤p"…ÞB|2´ÙKA¾B +Ÿ&H¡7P`—Nýò´·at‹sv¾¯å)ÞÄ‘g‚-ÏÇmôô¼ñ1§§;÷#Oµv¶¾Ë96n{È©Å-?÷JÖôqþÚÆLj~ù”ô͇w„£wß=$—Öæ÷7ßC8íùÏ +T´ó¦¬~óC9wSþ›á¸íƒ6>l!@†ýÌ<}ªLtuÚvôÆb]FúþâØ›0mC0‡o|øŠæý'ß áÇNzÎbüîíÛ«7ׯ7ßç6«ÐøÓá +t„ä1Êáóáääöw&ÜàS޼ÿ…ÍìDPž¦cG¬ºâ1Éóäåðr¸| r¯¦âѧƒì¦Ã?‰­Ëq–ôŒô3Éóäåðr89†tt§ÂÙïxô< +“›„‡N"uyäA¤'$Ï "±~§6ñÞ¹—{Ëõ§rEà)›$‹c½€T?ôœâVàtHu`ýp¤û½<9 »C™€Y°‹†  LèÁ§/€oÎ0—§xx…ÜëÁÍ/Î0˧LÀi€r~è éŒïÁô/€¯Î0ý§À[¸kþ¾3®‡h¸>;ܯEH«ÒÌAÂY=HeˆÂsPÆ®Ã\N˜ÒÓC’©Æö2·gXÍSàQ!‚ê„Z>!‚ê„!ÌêÎð‰ ;ÿnøI~Ž7ß=÷†{_Ë?u+1º_þËù¸Xçóq6»ù„Ø¥ÿ™)¹$ž½·ßÚ]ÙÛÅ {9ÛŠU©Øšv³Y¶˜f‹y6ÎÆ«1ɰå»lçJ&èC7³ÍgËÜy“-§_¬N,‘é³E2ˆU2S¶NžŠ…2gÙRyž­•b±4—]2[âÈkšœKWÆð|gFíËèÖÎŒÝYZ޽upo,Â¥•ð€°6vµU0-‹Þ{Ç(võ¹®VæVžÈE|oS+9ô}²ÏM“óÄë~Œf˜Äfã‚1⯄’8ˆÇe“¡ÝÒï°°Úý”«å¹äý´ÑmÃ!ä¼ÞB`¹GÔ•ç\”F<Äßâˆ6Õí4š(¿ô½uÎ4u˜g]õqkj4ŽvÅY£éù y ’¯ y +ÒÞ»”Íf“ƒ Aß@ñ Ð'p™}VŒÿÉäÄÉUÜ\ÙÑ5»º²³«›ý]ÉãU|^âõÊ~/z¾xO'w̰ä;(|&@ÂãËŽî0á2VåQƒ£:ºcOì§ö~*¼úQ?·JÄ_û†KXZ¢‰yì!I’3Œ|4zi·Œ_êŽ `ÚÇ/‰Ï›Þîs¡TÍ{Á¼ËE(?3ò¤|0øäù±'];øäéåHñ˜={,³x’³<ä}G1ÏCÀϸGþšŒk¹%,ã©ã?]óÓAǃE?’Ù —…SáqÊéuÙašœ§É•šÜªt°&M1¡3“ÝOt@‰ƒ69k“ãv&Dc¢µNÙå›Ü¿gÂwÎ…÷ð¸Ô ÂщK9¹—°$/li—Zn,°ÒÖ:¡_­#\Ô:BQ +z>#:ÀŠº÷+ZI-Õ¥ø¬†Uêl­øtËQ5xë³¹k§ûÔÚZ:5ÇaØÒì^ů4¾-÷§jmðlª xKÑD¡oïãd¦-¦Á/<‘Ç_#Ï`ü(5ÞèäD E*§|;à7·{[¨ãϸ&=Ã1…z¬¡ËqŒGÚ~œª‹V!%Ϲèãtñ±©‹ô. ]Ü‚ Gâ)ÈðÂ0Êô"Èî ½±9Щl +»ê¢+”Tµ#EžHMž”ÔÉÞa½HA¤ROÚ”ËI*S&'‰œäq‘Æ%tÄ=Õ°(t³‰m†F38*ðÈÏ\hn¶“šs‰ª¹Ì`ÉHô S'˜ÉK˜qSžz*èi'ÞùsÁPbhë%ÜH48áÔñ½À*¡taM‰‡¦P‰>Mq‡ç³NÇnt9Šq<%$Ûa‡{¡UI1óèaŸ>ºE åÇÉ<íŠú“ŸoXs0qbH²q‡Ýr9³¤Y¸ËLÉ@Âù[º±7c +"î(ì ê:È:Jº$ç’àN"®¸"ÞöªC­8¬Ô†îɘu­8ìU‡=Û*ŒËu™w… ÐN3,Ë€l†b6c°%úÚã®æêÜ*XËÍÜm³r]âs»Ìë΄á¤Ý~Ùe¦×gÆgrè¡Íˆ.~惉¦#æ#cM¾d—CçàijýÏùâX²˜ËýQEWª¦ ÃpÖõ1¨ãP†LÉÛh&Ø<™ ’xë8&ñ$>çèžwú§¹áôœ£{Þék7ÌqïsôtÖ}ÝäC¤f‰›†¡šŸ6¢ˆ9P/´7fظù®?,gmC¨¼<õÇc:ÆÏnœÏnœÏnœÏnœÏnœÏnœŸÕüwvÃÏnœÏnœÏnuü5׳Ý8Ï8Ú7<ûéG÷1ì wÇÝq§­.™OÅõ´w?í]PÅ µwDΙ|Åu6ë`Ýl‹¼\ù¦úüíÑPÎ"Ìnªâ¨ò9ß0»«º…Ï*–8=]ù®vs*ãùʇu1Pö{ãJ—Á§Íǰðjí=[Åæ2?'_N û‹Ø`º•æ,§qžÏó\B7ö˜}ìl;—$üóÅegšìefÈ]Rò㌬wÝBQ»È˜¹`äaFÁcÖÙJbþ:-ÿr¡½Ù’†_’ïSš}RãöŠÜ^•Û+sI‚xI YèsÌpQé’@Y+u®Rê¦Y©;+JÝB§º†J7e‘SÔ¹‹,x’"g÷ν½2|l„¢ï½–Y!îæ >äà{Zî®$ow vǰš¡gÈÞî@ýŽ<Ž¾ÏŽþ+º#¿üó¼‘ù’c‘Ño±ˆöYÎÈrM~†8=‰ýÖ¹ é•ѺG‘ϸèã,JSÓ¢4Ñ¢d‹E)îVÇÙÇ£Öʃø¸3‹½©¼":í£Ð[´Þy+WDWy"êR°©|å{í'Sò£:éÇQ6ÀSMÊO„´B ñawúÇѵmÒµ]ÔGeíöÞû S¾ÊÈ)ÙƒR¬‘×1çØµúr¤dbXƒß_«›¥<DûÌãÙ7L…Þžg{²vcw|ñÆT»qÝ—#€K…ßRÁ·TæjûPzqäNç¹ÆånnÂr¥KßÍΓ ^^ν7vsÙË8»Ü߆l[÷RJDI8<ð/Iý<Œ[~ÎE¹ËA¹ÀG3é‰`l¿n^P—^~ÎE¹ãAR«ÀÓ§4–¼s\]PW6{ÎE¥¯‚“‚kÁ‚©š4QhV4;æìâ=MÍN€ùœó9æsÌç˜Ï 0?‡nú÷zÃÏ 0Ÿ`~ +gùœóÉ×ç˜Ï 0Ÿ`>'À|N€ùœóé`ü¸ ÎŒÏòk”k>§À$ãQÓKãÍ"àŸ:s~à¸8êP¥Òº•¦¯õýVšÁRÛßëùYµï*}~­ªïföw–K/Í­ygFhæ@1á†Ý‚!ŽsóÝ=SLl1mì%c\²ÆUðX·ˆ;{ÒÞòÆ/[?oþyû SÜ3Ä8[·–¬°°]¬Éºšm6l;þP à:e7ÒÉ*µi‘¶¢­IÝ©+5Eiw½_™‡b·vØ/„ç’zÖ´37u^ôrž §kPÎy“rötãç Ãv¸› ç¢[U{€rNW”s±§³,-’ô´«i'-ýÇý¨Ö|]e[”•qmk\ç752œº#¬Žç:ŠãpG§Â8öleO» +M]¬•Y’B·¦Eš EVn×P$à*ÌðëXrŽ®b—?³áë§kµGú&šô 5ô¸ø—†E²¶YèßÚlÛÚlÓÚÕ™ƒ«ÜÁþÀÞko3¿ï¹¹Ø_ko!¨išqÜ€÷wòËàŒ«ý8Š-yÞu©O^D÷=iÿ=`Û ¬Â0ÇøÊE—¢£/ù8|Ô óçâ£gá! „ºGqP‚ÖÎ&ê*ö$þYéƒ ÞÕ}¼[s°®’b±!Å.—bYFj5Å­àPW¡¡6zÌ«VQV÷$+i÷ê"ï:H;-Òér^ ¿Cй-ÿ@>Ýʬp>+ÏK!¸¦Ÿ¢FÏ´& .;cvü + =')T¤QwÒ”s(ÓÒµqÐ!´ Œ=YÄ…1é´S¥G0ÐHt¨î&Rçßd!K"è,¤MÃiÈÆ$[–ßXþŸˆŽ4Þ?â>Þ(Gïã`æ°[u]ºÐå'×9èA”Í·éýèïŽDýG³Â®eLXã¥/=IpQœœ‹é—h$‘¤(÷™×‡— 鞇—æK> +/5kôF¢%¿ˆPú¤?O—ù¤î³Ï7ü|ÃÏ7üyo¸wß”8Æâ¶Ù»ljwÍœ©½Ÿ¦«Â#jGÍÞUsQÇ,V!‹Ù¿Õ)nˆVQ‹¦þvsîoqtí£÷ñ‹uã2ýwǸŠd,±Œ%š±Ä3–ˆÆ8{„O«¸Æ}d#O#¼ñ",{üÁcÔG·ø#}<òÓ=öeõÓ¨s¥î¸ÓŽ?þëÞpÝœåñnQ;bß–ÅÊæ/MY¸á¹Ý]òÊrSÁ( YJ¿¨Ó¹_”™µ‡dzØë K×k¶5tÊݲ÷ºB[Zf×kr¾v9°¢´]Y6])¤ÎýVê^+uŸ•Ó.·Y©Z¬äp†}w•}g•eW•eG•ÜM¥[tRY÷P)/u×”V£”Ec”NwCQÍOžê\Òì²qÚ|•`pŸ ìw’÷%ÿÃû†Éyœ0æ9 }o†a™Ç ],]¸r–© »‚·±´2à6 zÌÂäzpÌÀû`éÁ[#Ø8ø_zÌX3ÕÆgpÀÚ1ûž+ iÜâR ‰\_Hˆ•Ÿð¨‡±}À)†OýãÀx7‡µ“`WR&Æ„ÉÅHXµ ÷tŽñÇ|›WØCåxq¿qäƒ"-M["îC‚ŦàâPpà=iG"­F–|ÇêÊ +¼$×ë ˜¸@›W|p£Pv^÷1@’Ò3 ]wK_Iô @È? D´Fâbï Nq¨‹tÉè§ÊŸ–Ëàü>\›Æ„-<¨¨qP‚Ý„ÅÇ ËíÀZ  O¼+„`&ÉÖæòcŽ 9Xö…¡€À„ðU¼ÇhÒPÀïzÐÈ‚·1#ceI@¶›ƒš0#¶'F‚uA®†˜$1žñÔÆ9[ì0ÐHNÂ4¦ÇH;«ÇƒPö´XØlG¬ †79ºz …±`vHžÎÀs ï§±ï-]?<#½‰õÀ%8cÄfÄ>›„±;eÈý€!ò;’¯ƒ€µbaÀQ€A0SnàkÜ‚ó`W².+yÀœR Ø Üé ,¸ð[; !o­ÞB–pê,†Ê%ŽX¼Ô‹÷ +l›Ó\ļ‚)&7’h°¡@¡àxØà4¾`Ô8ƒiÿ j¤w16pÐtí6àÍY/ +FÎH¬ž;mrùI¸ dÏC4à]AÖX22èÀ›¸-nB“ŽäELà‰Â"_¤ODÀòؘp,>%®‡YÀ#Á2áÄwÀYÁ³ÀN1càþX6,qœÈPq†a܇D‰9N¡¥ÅÈ@`A±Ã‰¤n£ã·=d:Ä==ˆ\ ˆ*Žšè'K3ç¶Ž%qܨx@HÈ~¼ÇÏ +#äê„4.õDÓÕгØ!óå&RA½S7‘=‡©ï{ˆCCî&<ÑxnÀU™ª³Â©¢d6y$ 8lÎ48‚qCßIjad@<ˆd+<* CïåEƒ|€ Ü»›ƒ’ØýQPL»æÝ }‡}ÃF¨†Z4¥("+ôФ2æ{ýkEM  E¹äH›Ý÷xÆ ;`ë@Ì÷ ¤qó  ídÄ„Ž|õ dÁß½°)7/¼ˆYC± +–ê.×ÚÒ8‚‡ÞA Üé‘z…Áˆ7 £y‘ƒ©÷¸‚4bæ^Hr²|Bz?æi–‚複Uw†Ä +‚ÜÀª ›y n½•úÖ–ÆJLÑæˆ”C6obÚÑGY±§%Ô‚Érlˆå?ú”=ñ鯆§M& îÉ3÷O#¸HØ#¦Á}'u·kà“åß›“ßÜ=ëÞÝ¿)ýãl½9H'¿½¾ºýõÕÃýÍàäÍ/ÎN¿,šÏ·ßÝÝ¿I_eä ýúî×/O¿œ^âE¾yø õþñ¾6›?¼.ôm?}—…˜ó|Œ›_üró‡ÿµÇóÿ탌ù\>ቀÀÍ@ Øê¸áf/Ûn?à‚b© +ð/ö+X,v9Ä<À^O…†cƒÝ¨¶ 46à¯"uGð#‚E&HF`xbOàÕ[:Ñp•xÏ6àÛr3Rp–€ hÉçí,¥<Ðò Èƒ³m Váò1Ý®¾ +;$>áv†E>Áø-0¸)þÍ:ymÉ Lº-%GLn¾Ý0ðYØ5 äÍ8l13¸ +  ²Çxƒ’ =„¸!™-@ ¤Ó*¶â”‹Ëé”°&cå;¾ƒcêh’öÄ-å8¥ v+h˜¾¿‰/ ±šÐƼå4C©ÁV pÍ-v¡œ…v°q Ž… .7S'“N/‡Éèö°Xb%°pœ ¸€€×7t„ú xùD݆ë/Èz ?„nà¡üD§WqÜË@\EÑaš0§“\Eóƒ¥êÁ –*NxDO^ +p’-½©g¤ÁÄøGóËŒiXi/#Æ£z0` Œ,«ã\R4HÐl0',{”) ²%`q7pK<ˆï  â,Sà)»B¸¦£¥ÈS`Ð0­Tévà_žèÝ™­)”ÛO8 jêGè…«Iƒ"D͹ùÚØw™pf± ³`ãÀ”ª¸–Èl3‘£sF±7ù*˜eè’·!æ7ÅÄ9ËÂir3ÂÏ`ðn;ó€'Žð +Õ¢Ì9G¼Š—ÅS±2Ü$Øã½lF¢YÈu`» Zoz4h…@ìz°!jÆô€g“ã p<$ì1ܾ'ÿÁÂ[²O¼ÒÄ|„ÄfÇq–lyO­Žu€‰<¨VGêŸä£øb$ÀÇ'×ÇË‚­Ì2¿Y"Ã;!³…zéL²ó“žA04lÐ&ÁEÚX!Sòpy)¬†X¬À‡ +K‡^ ¬š+Ñ ×Ð03Ðd òW D–ùe`@X‘Ú0y”Í›Ó ™Kjd=jt—Ù/·÷@ÆŽA¤P’^…ÜFä'ˆ ZîÈ¡BË Ð5Nxg@ÝÌÕÅC½¼nKMüDMÛ™—½M™w74Ô$HàØ(ѸTt—p#ˆgdÇ {&Yôäe|¾,œÜ}*ûLfTf)a˜fÅ« +ƒ>ÁÇœfbä}ŸÏ§ùÜrö-³¥å tÖ rÁ¬CŠ“k-D‚YNÃHÞRÜ›!YL ÅDQ &¦2ý\XŒ¾OKh¤„µ¥˜ÀóFˆ¨¤/ngáè(?! 1ÅÚ‘8½Plx%†í8/½s¸UÚÏgÙ*©bCÁ&ñª‰OÇãhŒ,"Ž?ØÐ—¨/h7Ãiõ—ém±e±)Aeu¢ñ95Lé}~)“à NjΧs€§ât@1O3Aº}ýñò•Ô—e ž¶ð^<ò€,%ÜÓ +’ŠXâÆ\MWÞW(„âvžd0¬^Ù“Ú‹A3°e<ÔˆÞ-ÖCË÷"Ò7û¥öÔÜå "…™ øA-x6aXÑŽÜ :+ov¼§8Î¥¥aÙ÷Ø1¸M¡Qˆƒ<~€šŠW”I -’“xåçýÄŸ¯Â£ ÄOÙ?tîª'^\m:ïDG£m¼÷ì$Y¶ª]§É‹ÑìpÞÜ4Ç.×8qTnÅh@´02¦fÏ=©_à¢q˜EÅc¤î@ ¶”ƒ¼ÊŠ3¥Çó¸q’ðô„¤b¶Æ,ÓÈX¤-çk °¡´´Þ­d´'È0|sÀoŠd÷½ƒI ´Z,@[°£m´Øƒ¡ÍÀ!­fH†kìTROAøË@ ‘0`ž DùQÞÁ B ?QúÍÀ†„‹íF™Ú%™g(”Þ:¤·Æ[á&Òa4|Ò4ᆕná”߀þ›Ù@ß…L'$—!Œ-ÚåOÇí½ÐP—vÀý¯ÀÛe#&„qt… Æî­äÞXð:ãí0®, ´ÓQ>0êXÌ&d·´pG±&‚;K’v Φ´‹~eœ¡¿0ÎRâaáìlÒ¡49¬iˆðÃl¢0è$[ŸØ*fa8¢o5­Op³¹‰73|YZR¸KŠŠ>Gþ $wiK³–ºªÃ( + /8ÔÑb>fóçÒlikã|QêÜøS…$G†Ä4lz^|#Ü\túªkÛ`z;¬ê@èÁ­p˜öd<±&õ˜4h‚1‘Š©[KwP`qa­1w#É›jµ,¯#ŠÏ$*´i~ÙãÄïT*~(’Äï=„ÐcÃ;Îh~ ´”Ò9ƒ­k˜q$5ÀfÏÅDFާcðiâƒÄ},+[gìàv0|ñ x×ÐdjI÷tî8™ë@ä,¤"¦#‡ØjØÖ^Ø0¾åíé¡Áí¥V=„´$Li Á¹ƒ~”׎D#–Þ%{Ñ㈢œhÍ8/Ðl¸£¬¬(×Ï v=}–fÄçð’1û¢êË-KlÓ‰V?ÙÕ€¬'â"=@ä +Ù³‚ÿ«æL &¹CGœFέ&ÔŽ[àe2óÀh›„Z :ªèФò‡OøÂõŠòAK|e&MÒ×7eʨ)l ‡§¶ôVĉWÚÒL‰÷™°ï´Í3À¼m︯ÊÎ^n ãøÆÀc6jwµàÌp¤Æf›“G· ~gºMœ7éz³ħµ3ð㦰:á@$¾ÕÂK ŽáÕ(=ƒàížÊWÈxâkœO„›âL*æE÷„½£û5š÷ÑGÙƒ20™cO}µÉév§¿R1[CÁ6Æyêv5§¦Š4¡Oqû@—›g„¤›DÑU¹Q‚ª®tÈàF ¬68ʬ¬¤&oépkæór!kyFŸu ÎW AC]¢oF7TÔ/qO±=w%| i+0yÙcVËnãp$¾xH-úyw-ùVð$˜5f0 ŒHªqö4^Mž.å<ޤp’%Ð$£º—#·q¡ÀÌ +A%Ã@08 +ª1k`5ŽâfôÉÓ 6ÉÅ­!½õ4l‚Žû‰;\!8Ü.®¡É'(7Í®lÜÙrØœ›(Š›¼§kBËRçSx“†[_`f…R…÷ÉýÉááW—´@Ò5 DÑø˜C¤-’Cìgu¼†×ŒL˜dB‰ñiŽ®‘¹¡£†;]{±Nd¿Ø<1ÏP­cp xØ#é½V) Õ– _y\0P›¬5uÆ«ŒùW +¾OVî2PófÜC÷_0±çSe +ʼn!0k ‰‚gjeLŸQërd†jc’g¦Z«‚du\9܇¾Ÿ†Ši¨­Cº‚› ´;èF:^°îž©NÃe”[2a9™éJû•°JlL è”ÀËZy&{¢½ì ”YÀg­{“ 3÷±LØÚ(­gH¤ŠgCEÑ¡*¥ŸŒžî< ¬1?¨60N“Ï8M+|¶¶60f +podÌÔ‡¨Œudü`oƒ„ +¬Lf’P&m áH€—LÚÛc8SÛWÈÅZ[d°›…Å1ümbJ‚2èð ržáhØK°«²™‰Ñe?ÂAÏœèÞ¢ÊÔæ'†ýõÊ—ÁÌ¢e½üHþªÚÞÅ/$L\›q0Ú\Æ3zlUÊžþ±ô€ÊÚD´åN)E¦§ ut/Lý£`ìÊ̇%–ólF”KÛ qIÅwŸ+zÌÞÑšŽ•Gµµ”?Vm©Ú“«v¥rØÝk7rá Êí¬ØŠòZ7Ù“rz+6§üåŠUf'{‹Ï*Ǽb×ʧ¯8¾ + hJQP ‹E—Ž`hI>QKP:Q _x±”Ý:\£ý*ÒCÁ(Ò„!*ÎDÁ™™R +ciâ'£p˜ŠŸÉNÝ4ñŸŠÙQ8²Dùä©B‚p=kÜ«ÂlþQ^«ŠbRð»Ä=)䮢¥Z +€ +µRz„ŠÒRºˆ +òjê4*FLéF*¼LéWúŒ–ž¦ÏªÔ½ §Å:„®©o®ƒï”ÒªböŽ9£¡77ΪÔnl¨4ö*R±©÷«0G}—:BRÙ t¤eË–‘¢3‹ýCq*Ó‰Šmš`T©2å¨èSešƒWF$éªlP*HV™±TŒmÓ +¦Bt•5M÷*‹œnYöTŒqmTÁÉÅ ¨Bš[æH]Œ™*„ZYAKàuÓˆZGk+[l ïVf\Þ²«ˆòbJ®CЕZ°/LØ*ê]ÀUÀ¼2¢«xû¦1^…ë+“¾Šô/Þ•Ðt&èËk§„ÊLPŽ •ØÐt¨¼å_ѹµkFçh´\<#±.-²DZòmU®"5Ñ1G=Ȧ«¼MDU²ÄLÌd;5¼V#uÊFÇ”#Aëµ÷ ðeKè- µi8Ð}Rç¥ã&ßvÄá¯-+-Df·íÎ I›<1$³ž•K C ­’­Ó%S»Ó"q¤m©*ŽÃ…‡rŒ ¬C[ ;¸Ô~NA6S Œñáez¯ý¥A kÌAìiyÛ»Z!bDSårŠ%jé ÕWÕþ]ýäÚG¬P»š_5§¡vYëé¬]ß=^/Kò›×«Y»Û5M´ÜöŠ´jï¿¢Î8 ˆ{n öF RÐÛªŽox:…ŠïÍ,µ¿×ô´R d÷C×ÎUcÍŸ}Ác²Ñh#óåõW,BgÚ—Ä3\RuÀƒ&²a`U0˜¨BXªÓ,~$9½D–4ƒ”ª  Jh[ ÆF ·SÏr ú !Ht<š öYߺn ²ñ +tÆñ,S}GëÐu¾Ø´û“¡šMƒÔ 7’~¢žÃ +Ž cêM ÏRï[Ÿ‘6k=nu5w…,€E†ù?¦þ3Á*‚ý¾Ëáçâ4¦nNbÕ €Â ˆ ÷¦}–O µ%'e”¥’4 &í?r%ÈÀ„RöáàÕ£ÄQFVÖÀi=WQ½ÿ«bN\E‡ )¸±ïY…oÀôp.Y„gx©Ù2þC±õ;‚ö•Cs@@˜­ËŽþ ˆ|ñÐ6îSÏ¥~—§ÖäÕgbn³u+VKá aFÀ¥qŠ]x¬4C¡{цj–CÏ¡g ‹@Ð`Ôd],H1ÐÔˆÀi¿ªÏbå Çš›pa zU³Q–šRƒîd»ŽhÓWW[¿AÍìõHZBCψºšÕZ€-×á3ß=ÀwkŽiôv™ÝV_ •<¬º.×Hå Áf™öÂ+šÜuUÅhöÏ©9P~»WMa@ñÏäMÍûhH1 !¶f(¡âšó–«ê)šŸs`î>³ÅŠÖh9¶ ûdiïýˆÚ˜MÂÐY´ª|)Ö@«¤¬”5HñF‡BÍJ){mT.0T„йIÄ8Y¡ Œ=óÀ2¤œ˜‘Û$ãa„>ŤYÆaŠIrÖ 1ôÊS¼C«;q’²ÄõC5MZM¥’€Q‡ëŒM1°l²³F3Ð…DÜÀha€ñ–O +I,ɼ-Þ8±ª9(”vJj5§‡ju,*8Kc9¾Oª–.SiF£MQ 4­~RF‡u„ŸMµ90–%ªF—l é&\¹((.É—K4+q ëa´Rž¾PÃúsP'q‹ÈóŒwÄLÌ£îŸÄÞÈÈç‘"Á4˜ÖA;c²³}ÆtÞK`hGÂF‘ «•¹&ºéÏ€©öK»„†xÆ•øÐ¸T‹(SR¿B.h×A“Ë‹iÍÝ txkhsmÌ&c÷8 ŒÝ›hßk­ +ÏòŠå$YSªEÅîØ¦RC=ðc8HMmºâ0nϙȚ>}ÌÕÁ–X¨M‘8c¥•w)6ªµS<-|=y÷ &N½ã<]Tt¯Ð-dh «wí<ÔÖž—p@z8Ũ)ö Šw°¾ZŠ®›ðú~Ïv¼äéIèHÇíCúShÚ¡«Ô ³ƒ€"Xù}ºoÚûë› (©¸c¸›URY0³„p׬jQÅåö©™dó峭Ǧv™–Âæ—s¨…C½ZÀÔ˨U‹ +´À«©I Íš"µðmZ/•¯÷‡ÂõÓƒnmU Kê~ÑÂA¯šÐ«U›MC¯§ª¯ÑCàØž K‘˜.®?|Á¤ƒmì-„³í¤Ùȼ•\T€ìÿ%Á>9¼ýo¿û<ûÙðR¥–åo]Oa¤k¹ŠnÉ¢#¥¬tÃRQv#dEYËBÄÀNÐ-нÂj‰–"<Ò—ˆM^*VÇ^r7F³I8^_ L`ZsбŒLe£Kjc`_9žÀhsH¡Ž!í1¼ž¦Vêˆ6ƒ5g,õ“»ã¬;¢4'æm`?I:ULÒbúÅÌPΠ)ÑÕ<éO]ª‡Å2+SS„û26|ã·”~"üPl:1›÷‘ª=·-`:«ÀGÆIITS1'/èF2˜žâã°^^”VaÃ@è¦RÉG è†0=‚—'›®è¥€Ö©¨Ud 4a([P5íæ¹µ©:.Zq/  lM®ª¤€Ü{±0¹R©Šqƒ Îgª¦ ’%Ò30—ËàÅdŽ¡K.›§hÞ§úß{¹‹ð7`D©®Àp Ü'àñŽf”)fH5Ž‹ÓCÊYaIúò>­åñØ70b(`ª“]Œ£Ï:"žÖ‡ý$0l–¨ƒ!þÕôA`BEî%E†ÉËɧã™bÏ’Å­¥cÁI¯4LrŸËiH Þ€0¥IF,6Á63’L9²H6Á-èh)„L@!5Öé䋌2Z¸?E‰Ì€zc$Ž[? +“¼¨…dĨ`r0€êJJ¶šQ¤X¦¾g0cÊ‘YÍ%•*'¡ÐÖäUª…€6G›ÃÄpdWIϩדª6·¸²¦äYXn3¥Û°]MlГIlxU¤ÙWG[“%ƒîyD5– 0š´{:˜9dy»–‘’±ë,ï\ +6*I4ë¦ïSoRý.õ^o©æznjn£¦·æUÍURM…9êN –½7Bh7Hà0=Y6ƒ`'Z‰ª Öû”eQwF°Œøå: GoÚ,㮩FR}Òh,`¶?‹éºCpñ–…»–,ÞFæÅHPmÝ÷`íy_âWÝ÷£D³5ÓÚ8{Ôoqvhtg>)݇ÙGF7F°,%3E•ˆsÙê`}fX#Wƒn }JDX$ªÑ áé­w”:öt%ù#•³Ô)U_8V›%XO k\Œ¸ƒÔ÷÷=6 Í'!×÷·l—AÃØÞ‹À<ÌûxÄaÜ7J`n!5"ÑÌÌáOa”<0¾dˆÌé¡qÕ÷4ðSÇ•#ž`´#=é䢷H£K³-Sz›%€ 9é?K踱±Ì‹iB/¢ü›;%€Ä«Üì>åà‚$ô QAæ„}«0fõØÿZÙ'ê•P·:cjb’N„Âr÷­Î˜ÿÈòVÌ€0ºç™eº-‘¯ ƒîy&©‰fÝêŒIƒ)nb8tÔ=Ϙo(B‰¬?ðƒºçÓ\%Àß³’ï¢ç™d%ÆJV¢·¦g|qšXD,1´›žÑžiÉ'ôGuÓ³ƒóWšž‘Á¥€ +˜%ÑjzF³c²RÑD!Ϫ陥‚Â|f6Ö]Ï`Èüމy]#+2´ºžY)ŠÀÀI<ËvTu×3+A9ÌÞ%Ç£}¶êzÆ8Å4)P˜zlÑf×3iØ%¦9•Ùu×3Ik54PBØšqÔíʘ˜ËdÇ­(½³Z]Ï„J¥ÅX°ÄF­ûD)ÛÁ3  ŽsÛ3®¯£œjÙùô´r]àŒîvÆèT©¡Q79c6+Ö[S0åttÕ䌸EžŠE›$Ï·êqf˜µ`™19šQ^·jq†×WîÄ;hqÆ#ZU‹3Â+Ç´aï$¯]·8ã>tb……tqyÑT‹3ŽŽ9Xªµ¸`[#¸LéÔ­ÍžÜþóåyC!/jz5˜’ÆÆeÊ™Á\2X™eY‚L938—´Yc.ó¬WÎ bö”èÍÔ¥˜L-X´SC2{q X¦¬·`Vf44`h6 Ú©!P›),„ÚQ¨²rjö:É lôVN aÃ2ÊèzjµOƒ÷—«'ÈôÚ¥Ál1#&ÄJ´]¦ LÏØæ%X¡‰¹ù _X:«бÖðɾ§ÌX•V޹à §‹­ë1]â[XµÃáB‹Õ ÷ΑŠN leéBÒOé¶ÃmIѹlÍCšc¥TÒæzß@Œ”ŠxäÈ’Û¥Ííâ±<½¡ÇtÙ7(‰5*æk~ßmHªœ±wgàuX5Ð2ânb¦%ãÇR‡?–þJ¥B*(RšÛt©/–ͽԗéµÅß2¦Ê>ÎKÂSj F· LPIfïáÜoŒž—d`úQÊùجŒDfþiR¸éþõÇ«wª¿œGŒ3Y¾ì`‡ÈC'CbÙÖe´ßz¾ò®¡\„aßpŒ!‘µG©G¸o8&i5ôÕÐe†åJ²ÜšÜ‹ƒh¨+«Ïàù‚VK¾r&–y!°a™ˆ‰áf¬tÇ›_í “gE»§`¢16«AN¦¢ûTQoÞ$l '¦¸¸yS±ê#˜a¬!Ä[îD–Ñ`øùÓÖ_ÎH˜¡/l~ÁrLëš±3ëÐl‹ÞÓí2®·’3ƒ¥%M÷W1æ‚ÆÝQÀ>k«Ö%Ó3«N÷ƒÝkÌ…Zéé÷ {ý£÷yyêûëÆ\²Álp ï™UN?}[ä×´ÁÎÊcÈ„¿NŒ…8П™/Ãj ©aý½Y3#JgÉô¢¹Q ¤-|©æaAé°(šà$ÅMÑ©]Šä,ÛÎ ”–º™P¯›•TFë÷-+Êl”RÆv¥øBg”çÌM¶¨è÷vß[Ë%&°Ô½=ͪD¥“VØJÍ‹¹-8´©x¸lθ+vYÎmÆG:]ìlP:+›X¸åJEp|4·Cw,RVVÀ:“nœM$¬ëM3M±¥Ù—.í.å”}«wîioÍ‘1D·n 7!—+æ! B–S”ÈÅWbæô²¢•š”©j<ñÝܰï\ +a7žuÃ*>ÑìûT1\§QŸj0˜Õ­™ïôXÇùT:P1iDü5­ÆS#k‡¡ÑoŠŽ³Ñh3e˜kuå0ÑŸ$­*:Ö¯‚ÏæÓJó¨r?Õ3ª¼E«UÔüîUýµyÀ­ÆPyjt;¨2—uÙ¸yšÍŸò²é–Oiyu§§L ÍRy™nT¡½™Ðê}šN[µþf2W¥ó~ÐUóæi)Ì;MÕ8,[R•GÌÛ·Y\q¾(—d,¬@qÌ|£Y2óUA²ð"U|2ó­UÁÊÄÙt•ËÌ粘™K6;+eŽª*qÖ«û(e>ÝnŸ”™ºªZ¸©0Z$D«,i&¥–i6uñS-ªZ5T‹|S%X³TÅ[‹ÌlÖ~-V•ŽU"Y•ŸÕ¢}Q½VU󶆪l®"Íò» +Ǩ2¾ +• +À3pj VpKVHM.V@¯YYáÄÆ}*ˆ©J17Îh”tnœU•†.€¸ñE£›¥© +W®€¯kcëZ%¶õYu©î¢o¨*ßJKiV WJŽª:®Ô#U¹<ëT­²çEýREÓ‹ž¦Ê¬Wº]³Ç‘Ò K­w¥M6{)e´TšÏJ«ªHŸõÛf=û¢ ÏE𓦬«ægµº]t?ëàûRýIGW5ý³>ßîTÝŽ¨˜T+‚lNX50ÈÕõ &ê† ³£Õoa6yä. µi¤nï ì*Í.Ê,£ºMCŽjTQ¬>­6Ù@¤:cC’jª¡ÌOÍæÊx¥š|sWi ¢lcͦ"Å¢¦z’(\ÝÖ¤6àµz£(ã_ÝaE› «Î,µÅ±ÙÕEÙ+USeê,ýd”´Ù„F™WU3m¶­âè3ZuôYõ€•AY¢U†èf« eÇV·QÆqõ&êŒæˆÔYjfj»½žÝÚì`•*¯Á¼È•›A“Gí¢h“™òpÔÄZ»F¹×Ž•æ¦©Ý2jçÕ½ykP{ïWÞ¤™sÔÞ'Ík*ßU›eÕž/Åú”ÓLqMåsk±\å±S [9û¯/.¶¨¨‹JâOd–PÚmÙ’kÚëY‹Eí/­%ªò¶.Åðìš­e¶ræ*q¯|ÁM° \É +j(/t'ÊwÝ„4Êó­‘ršgU;Ú›°K¹éhSþ‚òT\@³ŸŠ*˜1f‹Ðì'¤B4Э£ FVA-„­"0eÈÒ‚-;˜ +0¬Íi*2±ØßT•ISÅŒ¶ ¢*à´XQKdª2·ªxÖ…VÁ*»®ŠŸU&a~Û4(«è]eV¿Å‚­Â…›vo}ym5/ñÉÊή¢š›fz­¬ü:°ºvèí–ZJ`R‰#—ʧ•ŸBK`ÌÁ:¯=¬da{¦¥Ø¶ÄJ [fa³…^l´²âU”\ðE§3–.FV¡`ì?ÝúM·³Ú¥þÉÀóÓ ½B$áx¼È”Ú¡D• +;¨…†;ª>ñUU>,É·{£wGÉãõ¼­P~3+v­iv°YªE†l’d>¬[Í'×N;ýœÚß7¿f«CÐ<¶Ú·¨§¦ÕHMqrg굩½Ÿz[ÎSE*µëUQ[ñÕ*b]:vkR/N`½Ij¯ñÓÙ|íÏEØt"Ç£ [C¤8—}•,R\R^Ü0ô¾Ñˆi”l½À4Jp¸FsÒ£‘l¤"H»ÉmC Ký‰¥@ÝÇi ô&uà +; +NÖ{U_\õºÐ/P÷ËÐiõÝТî£&µîrpM>Sr³u…ÉÍl›‚ö_Vz´}2µøQŸ7¾z’24þg4ž«Îh4ÓÑgÕMyˆ|+g°EfÔ}ô;¶Q +QJÜCbøæ}òêW80ñ¯>j‹P™è§uK èƒ)J5ƒÂe}ƒIGcôý!ë±Ñ6ˆ 05ºüŒ©õɪ@Ü|rÝÔ§Ü^5n+/Õîû–‡R9¾–+õL}æ|8_Í%M{Ô—¥™Žâ ¥ýŽúbÙ´ç‘«Øß>s…Eœù³Ü1§ÁtRÍ}y,¯\UÏÃüœô™CUEÓëh× yh6N¦TÆüÄ=0Rã9ˆ­2Œ¾ÑTƒöÏQô’žßnÎAÓ¤¡QÇÓòÖ7:òÐT‘ {Љì8éþ 4ý™Q­TRú’RM9pUÉ«»”Hé5ÚyÄJEZª$[Ø”laC<ЈG¸n¼Â'IíEFNIgèºgK²s²]LO[¾k÷~áûÈýêÖ14y¤¢x¶ ö3¬'á/#–Vìÿ­66<‹í' Y=MuÁ£ˆ8BÙ~66ñè}ÜjÄó$„‚áf£k4âá ˆ_etx3µÞ…>ö÷rÆÙ‹ªÇÄ4©ãèÞmL fS ë˜Íôd5½ .“ia9Rw 3Ï›¬ºm,ò@NÁ÷õ¬—Ø Öc¡ïö¥íy䮾A«Ãª´Œ˜@ጊÞ-m|?°E©ãÒÜ7˜C)ßÉÞò ×Û¯-Fz¬‹˜7¶n=Ð&à}ƒŒÎ†qh0i&âs3·àA,6"á5,Ïæöí KPUûªúyuËõÖ­Îzðu=u½-{‹^к)J!…ºJMF­¦,j°uoEÍu{µ)–ÝeÔž*­hÔn¬›ØèMÝj†£˜C饣øJé¾£ØÒ¢ebjóE5?œ£Øió-[V£Í}žžZ¬&U‰µ&J©eU"­IJ4*SâUQg‘ÎMâVÂ]mÔFSƒmnXXÔ¾?ˆu*`ôª Áþºz‚l,–Tbl¨ûÜ¡çs‡žŸ¨E®:%p³†Àòâ˜(TÊÇMžíé+ÆRiž®H);ÆÚ”¼YÕ¨Oå©)ÃÕç´L0R×aèØÅcl´L0b–0ºÜ¾T‚cˆ.í_ë—šÈ^x˾6:%ˆ“~KoƵ b)cÉi4à5â˜_ ÉM¿nO@]Uj4 +³jôGÐyÑú±D„ÀaEëò!Oû‚Ô U/àR Äqªc QsC–Ѓ4DÛÏ]Æ@vjL=wCᎱ[«9§½]uúP}cŤ0á¤ÑÑXlÇò$I5h`SJ‡<îRk4H@‰ÓëD²e½G–”•Ø@³înݸ¨*¯\˜×hª×Q¼WsY×Ì×+Ѫ½¯W´*á¯I¡î )ªÕM@fÝ•@wÝÙ@ïV‡µÅômêMª_¥Þëí!e¡fDñ–zRgj®MaljiOTÔ¡xk“ÊVÔª¹{Mñ‡„C±ÍþŒ}t¯,ÏÐl–…÷Fš´;É¥ê÷8 ÀªÑI. ¬Ž1â (Él;£:É1í™õæ­xósJxi)°p€ãñmŒžrŒe‹ô»s±ÕSNÀ>ïá£WzÖ=åFÖ_±Vr#ÃÅèÚ¡F«[ÉSÁ`"ãcóêžr̸¡¡€íS°/=å|H±£•c«§œ'‰08€F¨§œ/Oò,1<6zÊÓS\`u+àêžr#CÁG¶°–/OR=å¨=@œ85Ù󪩫X‚ˆñ$ß ¦rlŽÀðÏa;(žU[9FºÓ³1@ ¦P÷—£ªD# ô:æ˜(E÷f_BäIªÓïãÁxŸ‰-ST§9É’– œaßè4Wïž³îã:ÍI¹zÛ§rõ¬É,!¸þ‘Fs©,«aÝ’ãÐmÑÔ5í¾h=[é0”Ayæ@Ÿ9¾^ŸâmGÄþÿÓž÷W3®ŽÅÛ'i¨s¨ÑœÔf%ƒïÙN¾¢óöûÍ/v»ÓW¯>¼ùíÝÃÏM,þ¸æ‡ˆéï¹”kÝíÀ,ÓlÁT‘Ä@à 3A,{VÛ$Ï€ù 6,À^¶`=gÓxí£ä^D& 6›€Ld…êIΠa8²I + ”­Ì ž† ÷à‰¹ÄÊl*…D*-Á)û¼"Of4žLö‹3¤0™ 9ׄ÷Ž©sXÈ9]ä7 TÃm˜­‹»˜”dY¨›µ‡hv¦ÆÎÉA@‹XÙ!ë¤êÒïå6¤&¼ä‡óºÈú¬14:mžœÅÒûÀ›T¼œ}£ðšQúúŒLʘ´ÍhYvX,2ÈÒz#RfdÜæ€‰–ö&H1yºaÈE+C6)Zƒgµ%—Y-Û=ÚÀ”1Š À¥RÊçt"ò:Ì™5ÿCйÅ}ø*Aúk>¦†JÁ¦(Åcžh{¬ùÅ8£ÍÄÊ=òrÈ›: Ì€$´Ò=‰œ,å<Ò°lÓ+HcT6| | IxbÛ(‚(¢&UÞ?+¤Iœ¨WWgQNóÝ@aÏPcÚÙÄÈÌâ~4h e2CDpCñ-ÒÊ’±qtlÙ$ЂJÐS66F,ÓoGV6À+8)"…52‚ 0v{"Àb¯‚”Ü@á+KíÙø@02?ƒ8ŒJøÈ|K Zž±+6Îb%{av“§îAç=±½g”0änNÈÁøuf aæ'+‰*dr1Ém¦ƒ†}EæW04{’‘`ÑØœ]tÆÀ±$V­t]ÉC g gd~0#mëx#ðvìRÌ­¶ÐRŸ7…&ñ ã6™Èñôö8›¥@»&õÈðpìöqÎM,Ê*õöOJ]7=Siðï@ðÊc,Î0““:Š\+†v2~•™9=ù¸)›„ 8!J¨QL[Œõ2]êåÅÐk_ª’G°Ó(>µÊm”Ôfk™2ŽIÏcÏ m>ˆµ”¼“ú€¡#Ûzõƒ0F–ë'RË5Oêk‡˜6¸ÄDÔ?Ž©=q²a¤/øÞ–°€ãBj= +o4Ô5éP0sy!/¶ >À‚J…A[¾t”6$,¬")x[FP`ðÖÖGv;˜ðþëw@ŸÅ´ųÁ€e$s¾¿h=X¶U#ÿg6;2ì‰ÀòÙlžƒçHºÖÊÅè–9†À:fä-´=³ò eœÉá>V²T0¾-÷dëv1¤)%ñë“Ø@þ‰µ` :fƒŒ faí‰áÀ½ƒJ¥ÕÈì|np ¦iËY˜ zsò‚Cù õ”Ø‚B‰¹VŒ¥b/<2µaR´3ô›ÍEå ¹h»@I€(“GŒL¯‰Ì\âže½dfuæ‡à¥</};ت#p²àl>Á2®ŒwX|l ®d®¤åó‹J¾3‰Ë±èл@»u Wƒ5¦Ú‡¬3Òsoƒœ¹4Î%¾Oê´,]ÆÆe"ûÛå‡n”Œ)<‰‘/CÚG”Á†ùZE6H>td0¹å^ôt¬[:øˈ4îR´H™—ÀH+9/±©aAr?¦€uY  âÖŽlç3K€-¹Ž8\Xn‹u töbÙF+qÇÄ>Ñ–N<¹‘Î-ì~œÅGnH50ÎÍÈ‚-x¾I¢Ø@"ÑØ¾‘9ª‘mˆ˜46PgäV`ó"—5ù±—Ê<=ÛVB[áÌæ„Ó†ûŒ¹%%;õٜaÉ–¦TFùŠL ‹<Áëï…¶ ®eÃ8CDZw‰iÉœ¡¶É… Q˜h°|aEú fž€üØ´¨Ï®©ÆI´¥AgÎzd}Ç:¡²gYã[Œe`>”Û‘«“Òo˜Z>Ìk})l)©ó¶‰ÐA„Ò÷1²Cc ©aÚ³'¹§kœ!ñ Ìd ©ñšŒA…í*’UZ+JÉK&pq Ó 2FƒŒŽÑ‘©àŘ@Ô ]öXÉ‹ÚÊc—G†° ’™Ì|9°I"?ŒxK€Y~ŠiƃdP|s“ƒ#Nj¥à æžr‡ÔÉlDJ²´ sd_ŠÂ–ý…¿‚á2ݞѳä)¡­YÚ“ EÈž-‹h{nMéJ™Aæ2{Â’¨p–g‘>Âqúð$ÚÕ@Y”{u’'MÌ g< k.ï6Iù ÈúÄnq”26³)£tœö¢b¨µ)Ï™,±Žå,{ÕʲæL ²9 Ÿ,B‘ 4G¹Ô³¹eà‹:â9”PÑJ" V”…Qh0aÉIfJRæ0a2‡Šõ +t‰¡vem-C +[ðN"I6ì Hk1]ƒtuÌO˲`ã(…1XÈç@ãs&Á?y†/U')Â%DÀÒΘÆi`MÆ+9P¦±—NflBFòÜÆ‚ÄmP𬠱CIGBÈ ÂhèC©£ƒñ:ÂŽ0FEŒ^Ö€Ÿ“ +sÞKY‚ÈìhÊMÊ6›V‡YªlŽÊ»àŒ˜ŒL–Le²àc—0â2¦Ô°Ù†4w£'Ó7!@)=FÉŸd&»%ÓeŲšø½@.G-3ŽiHôL˜ÊÍe}¢”sÁ“°(Ì,“Ò¦N^”ÑV$#ÌRÔn±“©ü°Ýa¸¬É/×ÖM°‡“DØ#`Š탠AOwÙ(­áðx@‡Aúcðõhù#} "ެ$.ÉÅÇ7 ÊÁ01ª.2UäÂ_8*ˆõœËËÓ²x¬ +@ºr´˜;™¬: '‹ñoÅTXå IÓ\ bË¢­@"s“EÄa» é­ØV1Ò@G®É€G\ ¨!ãQgD—Ò÷Ù½²ÏÉwú¬z˜l©=õঠ¡ï_ûêöÞ4Ù +Œt5—õ5 ËC¿ ´¿kW‚•Z~Ñ“•³\ŒzuFkHú¬zjرœÞ%¼ +UäAO/›´‹KÅÓ ¦˜æ2Õ® µÜ´†0ËÙ{2€}°ú‚•®ßabÙŒuy¹ÈýtaÄéÙ ZÎ êmP5_@pºg Ú{BÔ{yqcoqõ,M\ž¹=>Ö»Ø!O)!±]5÷xdÅ¡ÊÐÈ’šWЙ“î#^Ó`7ž©ûØ +µ±6Ûò.Õg‰Ð¶J¥ÙŸ˜Œ&û Ø4 õÒ±“V;")çÚ¬˜–!Ô->îYÖB☯.’:‰ºLŒT!R`”ZS‚ÈxIŠo p­%m”ôGz}™Ì®¤ß±' žÞ3&·)ñ©©f-T=«è`Ò@ÁÌ÷Z0{¶¯„bL—:-ùî‰Õ@{ÞKúq €÷X•œ„³^P 5øŽtK±јÎh@Ï 9(6Lœ)hèCÓ')g0>`Ðð‰V¤Rm¤w}ñ>V:òö¬N5hç©8Š…0²õœÓH«Cg5)ȰÌiQÒíå GÎU•†2õEYǬ³6«F·´Í±£a¤‘a¤¶SƒãDq!ÁßHüd{V I5'#m½¬ÿ(oì¤úmçÄZôs—ÒY´JƒVÒ¨C5+ª4´n°È‚[Tkè.t_JF}ª÷âµþCFŠ¡õ“2À5Õ(O£2‹hÑ=«Ö'i¥eì ݵ"8”NJŽŸÜát—“š-‡ËÊl‘,•ŠZ-& ˆñàçZŸ¿«õx2:&%Ñ#ÝC•-€ Äøeú—é°iSà[S$ã­{F +7îÃ>ÖS 1} aÝ`@O¶Ï8¶qlZI «æXÄ鬬-4¨Ëð‘Ý#Fm¦ñìbA¢cY(ÆÆ4Í=œq0é1ªW›”‡¾¶<‰å^°Ä(µëÚ,N1ù‹†d:®,gž±éØ”¥˜¹8Àlnr17Òn¤-y¼Ö˜n2ÜÒ¿¶’¯‚{–(l}ÖÝ‹)’εYKçZdKTVLOç;¨ º¡m õŒ·“×£ÿAÛTéz—•’ò§T-³9Ö1nže’¦0H˜†5×1«â6²o/¨ŒÁ¾§ó‘ÍÌ- {21oÌRAV,s{#4}ZD¤ö¨LØŠ,-ƶ®dlÚ +ž Q$оmL§OÊk¦É‘PFyºû’»–†_?s>Å»”Û=KÈ5]t(&¬ çgOoʭÛ, œôʼnV?2 `ð-W†¾KrƒPŽC”rrFÈ£(œ{öíiú_8ùŒú¯½7âu”­ƒ•mÃD¦9Èî&Ö¦K·v$¥×ñÐ!=’€2BŽúì)çdéLBÖbò—½E'àÀFËàG˜VWé1ð€-ÏÈ=n¾1W$sRé™wˬ~Å/-1.Û4³¦ï ôAG€7°Q@ëD×Ã+=$tÁjc¤ï‘þ>–_¶”¸„‹ ’à>Ö¦-îSåšž5B —lú6ŒdLªÙuDT,1E͘%­dÊÕ™ž…‚ +nfá2 °¦È“„Üð$‰ð¬`@{`¸ ]_\Êd,ƒ‹R dÛ ŠB㸤5 ‹¥3¼Ì…Tm”6-«É ¢NÑ$ÀZZ ]ÇÖGÐ"óWX¦ïµ¥¶0õ|˜D¾x6 à >XŠI¿K ){¬‡ôdÂŒSœ¤ÛÖ«æ”L}Ò';“¤VS ˆTÇ0IÄ'žä™C%(§¶¦9z위Ê0ŠdØ(‹øèVø68#gµeÏ1˜:¹&Y\ ¿qm!äY"¹X”œhCYA›¢ûDºXXY+ÝHûÕŒV¶Nçc2¢JÌ-µ½”gPS€¥`ÊîÊ3¤ò5ƒ@\égZÛoóˆC¢Äøo” Ø1‚´Õ³,ª²$C'z|6mãµE$*&Àm¡·M1f;Ò¿HOƒ‹$9 ²…C +l™–AØÈ°Í¼ó*›ºc²‚HRö£-~ˆ¥]ó"‰)‘½‡hSö}™÷i¶Y®œŽI 4DVîR]ÐŽ«‰È•W‚Ï–[Õz©U5Ä.½¼}&QxŸÚC"oÇdRתv´È«0èAl+¥“Yå¯!â`©wŒZZl”ÏDZô¥ÀÒÿ½wݵ-9®ôž€ï°ÿ¨£¼Ï9ýO,ËnÙ2,¨å¶à èòºì&‹ JôöŽoDε÷ÊÈ­}T.ZR»„&›gÏ\óš—c˜ù–k»ÖŽä‚²ðÑ`µ}äQ?|ª@aüáñ8¡Á,¼ïµŠÕê%,2Vï&VÃZ‡‹dÈkûf|[T³ãsnÙ¿Žz¼„º\ãæÊ‡¾r(e¿Ð$6?ðºË{Kq°AzŒQ_늼yaw-æÓ ¬åɆÃvk +/ÅMüJíNv;I 4k´,êàS˜–zmFYpjòyÜ ³0j}ʵæÛÝd2‡}yrjk阀è^1ló‘–t8O(c‡[‰#vG…W³–æãë]KüOG°€õ{Á=nðÁvþLÄB˜|á¦mÀGlgÀYÄU´"5ÂJ ˆwVô3p$†€= Æ%`Xv6*@aVKÐ4ÁXN,ÎÖÔ$O0Ùtû€!z³CRØ_Š)ìQ µÝëª*ì™™¶ÛðÚnÛ(¶ÿ6[=ˆ€YÛ:"ûš6|¡€º{ãIÌ^ðÃî/ør?¸õ 1ø–7„1¸¥ÜÛ¯wHÊà&Dfp·¯]Ám¿A¡·£€¤Û8!RC¼@­!f ØØmì µkй! +‹#vÑ\µF…7Ð8”+Jy—>Cp€Ò_0b_oF-áyÀ~‡È~Aoó‡ϲbÙC®"bâ7)ÇÓ‡tI⇔KôoS7¡1 ¤€boÁšFz´&ì²P¡³aMf…æˆ MÛlZhÖY¹Ðð2{±qd—! }'!ÑzWÖehÙf:C+MȘ†.œ;Õz÷îìò³kãÏÌíÞBk.8tmSÊ¡I)d¦×>§ÜíRÛ$yh» +ÉöаuçéC¿×6ÍÚÅB± ´œ…‚Ch\Û.âyfÝ#tÌ…’Iè¼Û–^B_¨ÜÄ&À¥æ{ w¥£q,T›^1[JPzVüižµjñ-U,ü/}Xè5«–U,† ¢O¼[bäÞ¯55s¿>ᣙ+Ü)‡²ÜA…„Ú†Ý-—ÛêžY‹+lÒšc‰PN'~9<ðZfèKʽ…£¼ÂR­ôTE­¥µXô§kš_M‹è£d*÷æ:Äi:ÀæÆŠë¡Ìš‰Ôܦjk6Vòhá(Yµ­þÆó¬Uäx/k%:<ÉZÐþ¼}!ka<¾×µÀ®šð}ÖBýú…×Rœ&;È@˜m+ò LØ€^óþ-ø!,›:WÞŠ¾ø¸˜ù‰~ûM–nµ¹º¶À?vÆ¢fj¢[yvg”bÛG!ÏŸâl¢I擼Sð yµ‘ $ž :xÐ÷?áñ„“EÑîãW'•¢]˜¯Œ§Èg·|_£}dK÷’ìO<ý™]A(Urä}swë_¶ëÃ…óÄtÍå„f*MA¾èŸæéVw@Y‹ óEåL"¥òAOˆ9Š3FnF™KÒ®MšÓLŠ 4 ʕیú©­_ðsp0ć(MŒy\9Xnüó–|u ¿j6Ü&lÁÿ殡H¨1¢‹Oü´`é:Õñ´Þ¤Í>[—øhäÀó#;ݨ{˜ëîEßxžõ%Æ{ùèc|þiogqi{ÓJ² +Ú% ÐÌÕrt‹$ੇ 3‰r`µ>T ; Žƒ’QÇŠ™y“zÙ‰ø0ô}a”9;ŸšW™’hQm'ÿtBÈØm•wÀtñ4nÅãLsàÍ&ŸÿþU|uË®´}ë?ÙÙwììbˆèE"SþëíAȼv¦Ç Œ"Ô>áËÙ¸ôÓ­yÝü|±8¯W^Ìûý¼ÛlïþDJÀé6 +}Y«5´ØHiBís³+¨­ +Öž + hínÑ'ÛÎ^j¸w^ûO†t™¦¤¥ ʱ#õM,÷ë™"õÄs†ß舣”Ð=ÈÙ™3וٓŽöIzö#•þ*)0Û!ù™,¥Gðát;xr3Z …½¬ÓdeÓj¡5Èï(J B–YRÖÙ"•žð¾ Ñíìµ6Ô‹£tÕE™ +E™¦lJ*>4³Å§FHg$IçÞ»¿•¨k•–˃ôž‰Z!´¿c}Xšk"‰Jò®êu¨ „4¥¼pŠÂÀ€RšŽ¶²ÁŽÝ¥…¬Gγûx¤ìØ/Š´| ê…ÁÜY¶%J>›VIØ®¦…kŸš0—Ó«½1“7¿ »§cx(‰eðy©(ÑLÖQa·ð ©;×ÞZÝ‹ÿ ’º,bµ½«¾úOBt°+” +–³ðõÖËŸÔSÚ;w±)å²\~}v4©(˜ÛEºvóÖ€ ŠÊur»·Ï¨.d¡¤rÅ×™þçæ»s Âi t~3}º4Q›áâÝ…YØÏÉôg6¶0‘Gušwin–Ì®9aЫ”¤‹ ’Zd0`–<›]—áãñvkX¨C‘´ +OrD[ušƒø¸¾±'À©Fûfj›ÇÆ}xžp/¤”Oü3Z×èϸåèó&Í+§íÚe}rÞéàYâ#¼CpÇæìrAá3¢´G3·ÀmÃD ”M.A{x;Ì'èþ”¼$ûÛæsÜIÍöd²ÒêÑ +3V[:åeßÙ$qØe‹Þ𬰰I8lº]öbëä~Z’#9þ^È0ÊÏäòx4سüéSScNôÕ¿³Q)åТ–“¢g0?ô9 ³kŽtµWWãɈmγÂx+«=Ý>H°Æóñ£!_ßܽl_|ÜF–ïw¢u +Ä m7ƒâƸÎĸ¹.“9nÑÛôhØáç‚ +®Áºã£î–tôTV‹ðÞ·^Óç­Çöÿ­È Ä +§Í•a±#õžƒú<õgiñØñ“ÈÌO"3_ð6è R#uŸ-sST]S›(’—±*íÖ{Q£ƒ‡€LKj>•á` 7“ÌçÖjÇUÁÀ‰½tÂáLI*à°Øíÿf¦Å¢B @,b4qº8iG2Ç/+ÑBa.£&nG»ï."U´@g]x+¨nõ{Dš§È”è¦û’ˆ…¡[-# ?6ç±dH”+íê:¯j©Tö «™çB2i›·B&P´Î.CL;«Æä}Ð$ïc[cQ‡³ˆõ³E±dŽš{fÈÍdú8o°v…V¡ÏAˆ…®ºûEyX°Ø&–VéøƒØÃªÑ” »vcB·#ü½àý@äó‘/GòU‰©5öåÃfÃ)œªÞm¨—~uLWYo¡]*Ý)¤NÙ¡²ð¿tÝžWgß]e_ÿì ¸ý[¦·)InU¤Ó]R¶7¨' a”¹ÆßØ&Z™Ú(£L¢ÿRa²™góÎÞn{±w $Évlû,Ð*dp*Ð’Û^¢‰R»\0ƒ[3¶óâ¼xK;­`|ÆasÂYþd ¾ +Ì”¤íX÷ReVZ(^ËÓ­Þ¶_{¯zŽmG—£Ñ'Ã?'àh1@ËÐÎÈ é0vÄ[¾äÁ@2€NEDÅ&ß!”ÎYhR›É“ÞÿÇx²¯Píþd¯+gBœŠÔaQaÛ,ÀèùK¸ý¿hÇzoRü+ ìÿòyýÏIE‡VÐ>×%(¢*ôxóò(ˆZU暟IK!ÉFxlFV츜[8ÒíËȸYúâ Æ*bÓx >õ*»ØÕÔСêöhš˜N¹þLLp–ª¶øbf¥+€¾ètä§'pœ]îœÈ]v˜Ýíß°Hòì]8Ä0v!^I”zôaÏŸ”îªóP.õ{Úè˜Véep¢¨K€æn†%N¢u:'”¯hN¶'ŽtŒÁ¸¼}ÿ܆gÂHIšJ×uÔGvˆ0È€ +­o~žüS†ìõ‚Y2·œŠ†à÷î7ÍpÕΞŽÍcCL@‘»Ûî„úG|sféQLU—ÐÑÞùlEd²Í]Çî;²_¨÷ÆŸ~½NQž!í™3=ïÌ úF€åõB¤V73‘ŸÑ g¢8›»˜ú˜ƒôcàíj;›ó® ´N ;\ïiV˜ÌµÌ´8Çgòæ•–r¤îžßA\zb‹äPêky©æ3ˆv?e-~ GãVéô¼#ÿð… ᢵ§e¯…=Aq𱝳“5·ó–‚ +‹ìñóuYÆ+¯Ë{ÿ«•ˆobµ4ñm®kûU‚å 7Í0?¢ñÓ,Úðu¶nöeÆ¿»ÜÅÐ?  šëq#$Ü‘§¾ëj0ÎAÍ‚ :@’4Û‡ü ½òîlR¦sIŠ…P ¾-¡0ghç šÓM¢¾i÷-Þ Ù§]•ÒÀQãwI0‘¦.ùš‡´tH‘¹bî3: m#”óå*çþSæå$f'i<ڣᑘµËQ£úÞ”°gÞuš"¨mUè$3ú'ò¦iÁ›nˆŸ ×X¼ÁÙÕÚu%ôûôÀ6,£ÈH_ŒÄ:3ðE]=àŠtÍI|ÒÜb‰O&=ó”'2:’ë­KÌgÐ2‘ùœÆÞ8÷›;@dÔ:1‰4ζC„ëöù­ÏvtµøÈB_ŠA€¨¹¬Ÿô“ß+ܨ³Œ4Ó‚Paù…*|e‡äGik±ÓØ¥I¿ê›@x‡*Õס¼, W/N5'ÉeDx<]F›ž)-Ö*/äLt²‡úy ßËó$æEÕñF|] dDÉlË…UÉ´iEñþUâë^[‰/:¿mÒĥ˃N:Àu|9ÛÉ÷ši¢ð×”¦{Íô°ý°ë}enSŸ1úO+¦©Yá@©þðÇƒš¸£Ž}@ß*¦ýxw¼×œR–ôüI1íGQL£—Ci¿K麺߭¨ «ñ¢™…ú°[]—SN\ Ÿ¯ºÙ­Ì‡iC 7¶%Õw6+’YØÕdf#§s³YU]Àx,‘ŸkQp  + 2“i¿k æn›0w;ÓfײXB¾mªôUÍ®eÎ)¶dÃGygÓ’ÌsÓ­kç»ÖI©CPz3ì©m¶-»Ù¦G—;Ç;ÛçIYÑѰÚl[x°¶£Ùkqz¡°m‘3e°Uh¦¿¿³m]³˜z]ôCŸ›më:½ÈtaiÛ–°?´Í\ˆ×•ý¶¥²>H%Êúv¢¸oÑ~c›_Ü®Ô>B—í#4‰m·+{2›ijvöR¯ÇvE*Œ|«MùËÖGŽÛÕÇKçï]¯ù›Ž|ϲu}ÁÎõ¬Mùž¡mdÛ«E=å½]ëéwEÄt4#ÐI¯òñ?ûR_Ùn\F'[©íp“þ;Öz¬Ínõy¬Ñ꟞8ÿ–÷)sý[¢‹CHlP|ܦÖÖ6Eûe(+>!_|&'M-(kBÞÒ§D/ýøtêám¤óê‡ÖˆAÝ™²²y»ÎÐŽö$ìøiV¹@›ŸÅt¡‡yHSÇDãTý›Ê R ¸èÍ‹>™*O¢}i`N,ngµTŸ²³ÏÙu'Ê>‘I ‘Ðì|øKµÌ.¦jY×#¡Ù< §Ë€óå§æJÚº•Áí°A]j©ÝìŸ4שU¨O‰zH¢‰“nL”+OÜuöp…V»ŒVdW]kö õ£&'@‡?E¤%ݵ¢ìâ§É¹,»†ÞçÐv7ta{o Wð¼ÿÔˆ £O€HwCC×–ZžÙ”Ƨeÿ 3[ú–¤ÙÛ`Ûbÿí<¶ž ŒzÒ l¢ªNþz}O)ÐÛ²äYQ:}pǺ_|ëtåÇ3I£‰ ´äY*WªŽ—…÷¿ªË@% +r>óÀ]ÛªP’Q¼ª‹¤£_N AcÕþüçÇ‘\<ܦm†¿"ûÎ,HcõA™å0S6‹gt"zÕæAÛ+ö&ruâÑæœuOPóZè|ùp©ýH•®¯uøN—º{ÕF¡R—½m³ÚHX› V­ .I"Ñbsê+/Ótá²ôcP§AÁ?JÎW'fŸ¦jjköå€ú­ò½P­¿f¹«#¶j¿…jE% ¯²…TÜ^ɉºù]®ÓÞj +%+ìÚfB“?üŠB0j“ªzòsÁÙû@3 »÷À¡ÒLÂOªPs6‚v›,c\dû03êv¹ ¿q¡¯Çíð9ÒEPÄ“x°Íu[Ìí;û¹Æ•†yÓÉ@BØÏ©ýsIB¨z7¦à8bzön$êɵ‚jÔ˼ Q1 ç‚´¯¼Ñ¢E·Ö¼uà³Ùw‡£ÆßþéiÛ"ÁÏôNêûŒ\ö¼ÀáÊ ñç3‹*‚½áàRܵ„Ÿ¼ÇœkåKžÔJ(xÐ|0Ð~k~$&In¡‹NÌ"üÓg(¤ +¸VÙi53…i?øIé‚C„î]Òà >Ï쩾/4p’¢hu +UÕ,Ù©Nd0A°vfW'Ð Ã/ª¬©Ü .ÔD‹iK\wy$‚)¨v™Ãä’£òàjÀ ëéÓ[DV:¶…dŽDG –‚ò R‚ÅÁÊãÂéQänQX,°|ÑÜ …£>P@%6¹[ÒU(à3ÇÐø†dG‘¨Õ‡‹âë7Ëš Î,û¦{¿·Ë¶œ|‰1ÌÞyðÛi-RìÎ7­ˆA®~»štOd%ò¹÷Û9±=tÌÈ„¿]7¨tõâ®—zl뤣F3ªrøŽÑIG +<ÃP!¸ZtÒu]8$*‰R~|uÒñû +N:jv¶FÌ‘¥:V¢ŽÂ8ø%3Ž{gS{Eµù#‚wÖA› _wÁpV¤æ¸8ëüR¸2{ν¯Ž0_'•[æ}õÒgòÍ>:­ŸÑW·÷¤¶^Þp"Tßúê\x)Ô÷š5¢¯^ä„1Âîˆú÷í’ÛÎf“°âBç&Ÿú¯ÎkšÜ,|9ÑW/ªñ…»™Z OÓW/Ñõ†,ØÕLÝùêeÀl‡pY%Ûvܾz¡oáNý(îÃ?{믰˜öèùF¦!a3çá®ÛvÂÛ¼Üzƒªàjÿ×WT•ª–ø q{ƒCÙT¾^ut*lƒz`Ólâ}¢c’D3ô_å¢f ®'ƒûWïeÈ̤ÍÜŽ(›ZI[VOØ48?2„ˆÓW¨± Ö/}4€µæÅ»¥úê©ÐʧWpÚðhv5êÌR(JÊõpÔifé0ÃÿXè´i<õ¿€Ÿ.B>劮f>IÞúéæm8À—š³0«ŸÞ”„Çᱎ ~:ï²Ð–‚|f}ï§ w‹Ý{pÓ[©ÞÅ„öi–W´¸éP¡Š…ßžçRH±ñÒÉ{›×ò¾`í^ºˆY•T/0—½—n¶òÓP!cùrôÒ?|¿·—Þ$fÀ@%òËÞK‡j²‰_qp§9zéHŠÙÌøuF']d’äü½'jÖ;&G¯Šsäè±›ÿÔÀ¦£W¯ÞhivÈ£ÎëèÑ;‰Ú˜ a«Ÿ ƒ¡híÌéînÝtMÔ/À&j=6þ:#ضõÂÀb­î:ŸTíSÇšH¦à®s;úZ8Ì¢\ÝufªÈ¤Ùå$±ºëö ,:Œ£ùÉ]½ú:Á{õ»~ ïǺثÎ7î:¥7vfõ¿mÝuÊ[ç]jþÚ¸ëÐ:ZQ¡ultOwšªØÍ,ãžìÝuf¤Pê+Ì-ºë0JlõÒ?^·—*Yá³m‹À‚õ‘Ì4vÐs·«WÛr.zïÏE`¡Âe`ÌŸ¥;d[f‘I µ_á}à“„žLªmkíWÍm÷y×’¯šû˜c‰\s«±ä+Ò/¾¤_‡ZoŸK¾n!¸ØåmzÛ’/‚‚§àqÐïæ#–|¹ÏŽ&m"ŒçkÉ Þ¡E2X&e_òå@èÄo,òï±äË·½DyhšˆÖš/w K*«œÇÜ×|±CÛˆŒÊZóUƒbã] Ш›š/i#®9ÞÔ¾æË3ÁˆJ‘?KcÖ|]ÕÉ£Ò%k¾•È#É€c¤ï ,5_‡¥Ãyà™ Å_^‰/ˆ•Mñwkéþ_?r´cõ÷+/ÿ¢÷ckÌñR¼ü‚Ú¥ÊMöäÂu\Û⯽կèÕ”IÙ®˜àÿì+¡”À;†)„^Õ÷j¿_Íâ/ÍÜåñ.u`!mí&"E”Žvµßç©üAk!ë>Æÿ/œëZÒý8íéO"(6CÆßç½Í“Uo¼y`³{Ì{gønîtù€‡¼÷ä­PCÜ-òÞ:Ï_£mÑefŸߺzÞì^†Ò-kâ;ìy(_š÷iï 9K+uĬw>ÝmÜ&»3*éc“ã¯óÝ$w†XÒVí)8û$7ˆ)µêéŸ1Éí€(™dþŠ’Ü@º”Úxú“ =$¹9¹¶Ìѡƺb’[7I®g §ÄW]³Ý¹Lt;Ïs „t7ˆ‰´ÁÊ=éî\‡óyÒB^Ȱ®énÁà„{2¾Lµ;ݽùù’îÎA/6Ž$²°5ݽ……t7ïŠÒ¡‘M£ÓÝvÏŸ.ú†·ô˜î¶ðÇ6k@r-õ¾Ï{g3¥ð6CÃBPóÞ„Øã”¾qVŒ°æ¿3Êl +ioÛïÅ%i® +^lÌzgv*î¶Å¬wÆ'$¢§Íû¬w&¤pÙÿ˜õÀ¨ü݇‹ãë‡îÿßý½Ìö+Ï(\9©¸,bã!lV¸ƒåî^›y ¦:±SbJ/ƒ¹·Û’ˆGäЛé¡0o/Ô¾F;Ù„oö3`8t!hî÷yU¦r“]³y?ùÔ›Àö ; µ·n¦ìœÿ¶D˜BR"3(¨’¸6Ñt^£<ÌúY ÏÛh·bÃ<¦‹‹ÙŸqðóy¨´]‰¤P"‰3¾ÀQîI4?gÔŠ§R’Nð+âDø!í¡}FÆ€¶È  ¥2.·øÃ^–º¥Óµ(x/6Noa§oNÎNWÕÉâ9ò©ØJ!ñ§Ÿaí9Ð*³9¡–Vª$«¦XKñ;Óž’œy¢hÓH Ýô&œMV¿·žPNdnl~'¼óæ€Ú³|ª„ðpÓžªNB@å¤åÓzLÓõ8É p6†åL𛳖N©9\¥Ü=B8x,бQÎÚNߪÔäêD Fž¡m&•ÞmÓ:’ËëIç"k› öE. ¢ëAÌ/©4*¡N‡^'Ší¢!]€J  ØØ6ÅÌQëuã!FtÞ´MµT×î#EuÐ*üõŒFu›¤Ñ‰ ŠR¶¶,Y äöH«‰HhǦ…¦9On_Íüdð5ÈËvt,´öqèk²‰G€˜g2‡û#¾$¡.:=[uÄ9¬º*®ù”œOš&«“Ô©Rj´[“\fºÖ(Ò ¶” ~"e'$ò\.!<*å˜WrŠie*¶©Qæ:a»6ùdÑö`ŠÒ±ÖíÔ=ÕËÉô“ˆ„ÂOëÔ¹„¯úüD$×>_§óp5áqDᛑFQÏ]éóaÔÌ7Ú?ò *¿ª×¿ml|8"Ý ‚‚ý‘í˜õ¸|ÓcEæ‚<&ð(ÉId´ɨC-âB‡:‡„WAãP2­ËžuPjp®u‹£È[u´µIÐV¦ÇJã?Þ3–œ¶`ó4ÍåÀ–š[_ŽGlîí¤m³ÉÙT[2l»h?ˆsÇþÉÿÓßÒQ”º¦üi—¤B²éxÊXcÛÌ$BÏ4¯d«ÌVªæÔâÂÀ IE˜þÁš\·‹nqzi/Y ŸÜ“pÉѾ¥¸ø°ÐJ؇EÁžh*ààï]ÅöN怔£,»SnFI.£ó ÷07¯ÍÎãJ›D f ¯)n“š?²»æÛXøÊ¥êUJ¬þ¦¬-ÏöUßB‹ýÔùÍØ»AØ…¾fÉ%Q”Äü“Ü#¾ Bi@õŸHšã…+…L†öKÒ¯g¢\ÈÈþ6 È ¦.Ï7ÒQ(-Á'ð`¾È5ËkÎf‘ª¼´_‰hXóA·k'Ó7s,¶o3[W *iƒšŠY+‹Ì9ú%jš5Ø@ñá¸A… 3û˜¥^"Ê\Û÷í1é\43š0Q0´ÜAŸ ÉSº>—|T™Ÿ‘AÁû K;›^˜óvi²nv¥6%jíÍ `Ä¢‰:×£qÌ0“Ìh’JÚ¯&1aáTÞ¤áÔ¬Ï(ž4Ä‘¤Úá’Ãu1á´é¡Ú[/w—¸TSkËNÞ ‡ËFêU’+™V"Pʨ’Ñzi^BCœJ²'DI^eo²‰O‡Òf<Ê9]†K“¸Pu¶i€—ëš64]#lƒ“­û½¼i˜.`d˜[/É‚u¿“Ó‡pÆÉ”äÓû()j'Þ‚}Á¦|­Eyäõ=ÕxVÉYaÌÚÖ¥æócž¢10¥ú¼F|¬MàØAÀLÔ¦5lo™6f‹Xx‰îF` C˜cÛp4‘5‹p±q_‡Ûm…:TVæ=¢kUÉ?‚ý÷ü2Lr_ ùd#Q ,WÒ›Ó•vÎ:=ÅÑì'¯Ø'DøŠS½ˆÐë¨åM'T9tŸpä–]{Ó‘Äbd¯݉S/e*^ªÚYÚ4èeÝ P¿»æ’y„Mçñ<Ê ßt£Yó°K²‘ë?Â<Õ¥(›*ðµÌ>®OÅGRdûa‹8X‰òμ³ÅÓ™çÌù+t›Ÿw)ÇKkÎæÊaÄöÆÃ¨ðÜÀppÛa_h-'õªÌî‡vêðåìK)X²ùúv“€³É”À7ùÎäéevû&T óf¶™ÛÉ F¯0‘!<Â;È'Û.ˆ^ÄÁ•°›…E‰“•ÇÉκ6‘m··º]Ø1àJ)"ÉÉ沟>ÉjYhIkùÔ)ãäílI98e‰t‘Ýhe5’ŽÅ")ÇÞL_ýÆÖšŸâþìj¨)+Â@hDå&{JcVÒ Äd¿iè1™ynHvÑuó±9!¦¯KlVç¶/îz3 ÙÀŠï7A˜Çó„h)ì¡ ðS¨šQr ûpz„§ÅDêŸÜîçET§ïlâ^ׯ/(ç Ô¢mpñ-Š™i›6<ºFD€­r4W5ίž©5?ÚO‰Ã£·ÄCÖç¡•ÚÙz]œç¢¶ø¢_rõÞDý®Ô`§EÇä¡]=Ú¦,Ú«×X‹kwƒMB‘5:uÝ6—Ž¡Hð[ÉÄeåm†),XÜ_Ÿlm& {[Ht£Ë!’R(ö»~xá¿×}Ú€p+¹0ôç¦ë^¥Cˆ á5Ž«ïOxÌ'¬c2°¦\ÑãÉL_Chðd3,iÊ×/á‹hðÚP=*á§è‡¾ ‰Y ™¶ ž°aªS¢—ƒ?ã®x`¶…QwÔ€ƒç…ì`¡Ï› 8&×>îlq°Ú +™¾¼ _íË9±UWÁ?|ɈM(F… ¥2@ª"VÂzqV ½˜$+=³É +ˆzvK¨AïÅó@Õ˺N·ÌÀ€OäØLTz/ÑŽI*R Þ¥EìF}ÖSíÆ,,‰ú¹5í0A­íÓ3|/ø#I4³;á#ä…”…Ç+ :z›^ªHƒiv{ü˜¦â¶…%…jôðšêbã´mÁó—P„ï2fÔߺLU¶ÕFuM¼‰ý¼¥-jˆCCî;â…ñ•÷}°ÎpÜl¢R÷1—H嬸¶õB©(æ#)ö€RÂò`“ÎÄ,ë>KçÃõ˜ ú­œ·åó©íkŠPµHÈrŸ—îKÊ-¤u„SÙeP—XSÃìABOÙ½PPا˜Ùƒlb±S‘U©1C-À9\?Ú×YnwŠwŠlúî³å8F]PоWc%ôq†Ü<Ûy%Ó¼Ëì×”gѱJÊ:V8¿[,ÿ  {)2Pµ#~¿H'!Ǽ­UÄÓ¬5Þà)P?X¦>BÙÿÆ[ÎT3Àâ]õE ýжèMGðOY©`7• ‘¤Ë"t¸vj¬(ù»õ–¥ÃØF4n"»mU´œ‡»×<4‡ª qQ# ÆÀ´Óœ1MÇ›PÍâ ÖÜ¢¤'t<°/½aï +ª¦ \ßP}¬Dµ'šëÒækã¥Pa?«ò®.™0ݼ™0*¨%—+”¶àqKuåI{3í°å^hŸ^hsSIxÔ¨ùª»;FQ{UöRlv­TnNè%ÅxZõæ*ÄRbëMø`øðx“-ÌBäòhÆ%ï‡6Úïu¿ rmºšñÄÚ驆¸æ{S¤/JÛÙ"æ±uh·3ÜÂT[hêùÅ' \®°ˆw×(šÁÑ|HÅÚûÖÓ¨¾‰§-fÍÞp+ÝÉÑiièÀã#Y  ›Ú„éœvdy3õ¨Í†¤aãÛ‡¬®|"Ø^‘çüeùLãRK2àŠ¤&öð¥Áˆ^Ž`Kñ`ò±‹¦‘¯UÌL™ø¸ÀÓÄ[À{Ašg4¯MKrÀ '§s5ìyÑk!ÓÌ#–|Þ;‘‹)ꃲ÷Ìü û¯­“Jðk!%u°-û8ÏxÀÅR´[=؞܂*tÇo`‡¶-×)ÑÿÀ·ºúkçÚ“û‚«Šj.®j¥«*¸@Ä(²,”:ŽzP„ª§â|A¤ëL¹¬ž˜mäæ“Q°ç—'¶zsöH¾v“b×W(’»Kyñ)i¹S¬Î‡ÃžÝRÚmž‚ 쬮Þ-¨$oÄh`Tn÷võ’çOŒ6óquÍÕ—©ßšM7fõ𱇖þ@ðzxàxÀÊb È(ÐN1»õJB"›Gê%Á <³`—möÕÞ’$æ¡uݾFˆ±ì6Ô‰gÿãð çUâÆS€.ô¦FŒ÷Â,—¸qsž5BEr@™$ôÝÐÖ¬=Ho˹aÙû¸g•71¸†x:ŽXÃrêš…0ÃÞS*„÷tõ²½Ð¥˜?¯|¤œšýÃõ(€[jÁ‘}‚­ö j}y 95 §<§dS$,Ü*½].?¢Í§T hJMA Áhsz éF¨‰ÂüfœÐ˜ö‘©t¿Ÿaíš=ç¹4Ñj8ùÀSÞ‰=Bîi‘ÒvŽi«ªF¨,:¸A÷žOé/îu‚+ ³h\HëZ”CËÈ!g_ÉË |4mkBg$o¸$ùsÓä²Õj~Å#f}J%2Jª`rÖt${†,o†Éç:cZÓY=OgõãYî lI^³"•A±Y䨯 pIj(¼|NŸcÅÔr`¦ÙÖ¹î–$<ËÌwÑlÍ;ˆžù‚>’Y¡š¥^ëzÛ—¾É)K}ç@Ÿê +œ†öCŒ˜…¾ÍJ«K›iŽu µBUfä5íæpXê!LÚAœ˜fÓè| 5Ý_SO”cEî’Œ®ïú †‰H›Æ8'SïSåG“–ŽG»ZίU#Jz‡*½uwbh­9áR— å*õÿ«ÏÜ |ð¡ìŧS+Óý¾íµ|Æ®äó…Ò‹¨<–œ·NuJ™×Óc%WÑ»&&Âsã^+‚\ˆÖa¶¿C]žkU‘/sijÑÚZ7ÕÏ7•P½w¡õš_bxi ƒDÄʬuQhhTFfø³®#lB][ Pz[_ j½Æ¯Y!®b´cØ'¿›ñf]ù1x ãéïÛ»»†‡[ëäñ­õöýû ­iá;ÍRCüÄ+b`?UVäA˜q+x!NÚ±Ÿü+˜".¢ñXͱ]¾².þXÌG¨¼5:ßLUÀÈs·"m¶V3vn£°>ÁLÌÐÖܯУuÓØ¥°ïÜЧí¶S÷¦@Wa¿ à­í¾@`aÿ@²à<Ú["ÀÙ‚ qÁ‹ к­7t#ó‚3@}Á! ˜À­c·B o§0€£?¹‚ƒ_úõ$ÜÛ€± nòïuŸÂe'; :ƒ£¡;?LCØ@ª1ôX1®Û&`eC(`¶!œŠ8Þ]XG­Ñ] ‡1àŽ·fÀ/¯kÄ@¯çÛ?/òr‡,`Ãùè{ü4›ÃlþÛŸÍ~ˆÙAAgÍ´!jqšTNgA†«ìß‘•螹ϚܤšCTÏr¾ 5¥ØÇ¢Bÿyfs÷¿Þ…8„º(¸–ëÅÏwýy&3ŸµêT‚(Ø6Ò7äOæN¢eŠZ¡Åº×ëý³÷dR>ÙvúHFK¹(ÙÔW‘7þz}oá>zýŸš¶Ûi›08¶ùÂW“ÁmÌ/1?$£ ¼’€ «Õ(‚èó2¯v‡G°ä8©ß›-bbõ` (OkG8"÷‚D¬FŠ‹Øè¢¨Œ1µÐ…³,Æ<ÞȺÄÚm+ëk g‰/vÙ×>ü>?™ãý¼^mNʹH•Nç"£F•Š +8}îíŠÈ¦zP—he¼ UL¿€À¸Ö'ƒ¼ùÕb¦6\G¬7þy·‘ÐÕÅS“¡§ræ¿'£š)#‘á¼½>Åd>i̲ÏWe‹ßðz ~ƒŸŒòª|Ez» Dj{ï [¼A:›Ì½WÑ"(9Lݦ„óà…›9{’[lÙ¤[~‘_Kdž È3¦¡Ád6¨œÕ«‰ +Wwð²*¯¨³(Ÿjv +1còª`Ò£ºÔyHLÊFdsbÇ>þ—z;e‰Ë1PÖ>Û2ѦqÅÅäLWÒìò `£?MÒ8g&RðÈÓoEt—0Ë?ñëÓŽü‰ªÄUñ‘ÔÅMêTrô§_£;AxT°=É ­f=ÈÓ;?¯X½“Žž›>Ìæ6H¸œø²A„oçU/D•lA—¾µ@QhЉ¯ž`í«$4o¼ »•R;ùa/£z;{¤’ôh‡#sí5ôW§‹mˆ¸›œÁïÃëÅ6 îÙ±ûWM%¬‹¬ºÐØëõE™*&`°>ïÜ6êËä”Y“žÕúøôЪ>q‚bi¯/ Y6=±¾Óxç}w—êSÑ=Á³~7娏Q¸Sß|úq³ž¨¼7ƒúå}:8¨ÚƉØ'7`¢ ÅÊ “¹oÈÈŠIa·(€5° ~ÕŽ¼Y\}xG§Aöú±.ÃÃîVuƒ²òBq¤³olƒ4@üõ†°|4/¥MhñÇ=¬=÷OŸ%ܲȆK¯~œ›ç!*kw\´>̶¾"zÇêÙ‹7ѯ¯DÈ Fšº†®´~š]V*~â +Ž€I Íû%Î’ +-i@ºsÛµ™mP +òà=P±¿gÛóƒC½8‘7ϾfG’Ú¶*Àfá”î¨F#È,“Çu'DývÞù×®]I¹þ–ûmH]ÂF ­díT#ƒå™ZÂópOÔ¦•­´¼ÏÌÞ´™r +Q)|áWZ%Ã1±lNf‡´Þƒd¸/ MÚN7\Úáµy?ZÃòÞæ-h‡$Ñ'ßð;1^‹Š8t´µÆüÞȈ¯+òëŸý˜2âO*Ñ´ätzqÇ^EÜ䓈8ÊC«îµyyO²×ý†xª]²×"XPs ñ DzÑ·WØDÑx‹l0öQd{w±‡‚xBb0¡ÕMÐ'MÏj;QÝIˆ³¿Uïã‹ÍÄ›ÍÜdï§#¥iáÆaÛ-èÔŸÿxOöPïêµF¬œŒŒŠ ìåÇSoZü+ÐMùqD £þçnç‹ +»ëÎv×/(ìnw¾ °v¾[a7lxSaw»Í‰Ý°Í‰Ý{›‹Êº»mî!±»ns«ÄnØå‚Äîv— »a»‹b»s» »»Ý.jì®»]ÔØ]v»(±»Ûí¢ÄîºÛE‰Ýu/‹Z»»Ý.Šî®»]Ý]w»¨¾»Ûí¢úîºÛEÞu¿ûx!þHÞmÞä#â~ux?’á­/Ïê±æŸ¿ÊðZÀÕèð~ìwfÂqƒ ¯Ý*T^¥ÚN3JPªÝ\ë/}ˆÙ¦Švi>HìÆ{*¼‰ð¾ó`.‹Ïf»Ïëv×€ˆD Þü\^`é6ìu³£['Á5ûc‰„½7%þ‹ÙëT%ÚISŠû¥AkqÙ´ 9?HS¶ô©¿©ð²‘¦4ë'*P ÷1nµ)› À7ìž½[þÑ¢íÁ§ \[Àãwè™›3&Td«*·ó•Ö…¾Í€ÓŠý¢Aaë²¢‚tu[xJãCJ( ³gU/ _šhQÞ¸ ý‡ÙôjÕ¯tø'4ߗНžÞ ÀXI½ç-0ÒÔ7ëÍíP”ÒÜ>š+ƒ8pD™ÖCiN ˆð©IéÍg:»ƒ::)ÂsÛy´Ï7uÿJî¡uqÁ˜EÒyê\€N¤)öÑÒùÁáÑkâ…Û¸/ h™ìéV†ØÈC#0 P¯)4Ÿ¦Ð|y ñ®¼M¸;më?Ôæwtô®éSÿ»‡F‹®=±(Q ÜÈö¥l­—vµ¯lùvO¹—ÌwõÈ!FŠ‹N×Cïx?ôáì;·Š:J%Ëüó?äý äbN ”Ùå‹êOôUuΰúÇ/ò,„ùÍß¾üÑÏþ§Ÿ?ÿý¯ÿê»ïÉXW¾8y·›Cÿ¦£§½6 )¥eºY.yù0–!Oê%«œmS%Ù?(IöéP$5c©Cx¾jÂz ’sH“ÑI*ªîJI“"KžDXµ}*W2•ë4Ë ¿oa•ƒc&ͶÎ,u «¯Ö( Ü’h.BÖ˜)‡\ëâ¤Üp0ÌrOø-q7{ ¢rhQÀQºâV.§©M’X¸Ë.lÛ&LZ¶3ƒsƒd#O¶..04]³wê|eU´ý6íõ‡§1iÕ°5ÊGyRÍÑ…ˆ7EBNÅŽ\(øÍó‡7“CKâ…«Ð+½uµ§5‹²4Ú³££m«±w%ÇËØDÈ Ø¤Þ¯Å›æ uQÆ\ê@ñ%vÚ‹f¯Ò-ÚÙÄhwrO—¦2ש‰HÝ^õèVë”%üö+^s…¿¢°Ê5*O\µnê6§2sXÑ„›S)$ ÉžÀ–†ìIžšWMou¢Ê¥šì¬.8gS&‹ÕÛéÔ{tÚM®Ú1°…Y)gyZçå_¾ ͳ夑¸Škî|¸rºQÈ6ºÍL\›dh>±­Õ)P¥½¨KÍÕ®‰d¨¹¸JðêW×JxHYx Û$(•TŠ’Ïn)òÙêÿ\2b0rpß_&¡Y¦ +Ôu¨àTd(4Èä»]0x¤¥uþŸÚ)A”á RòİmÍ0„òµ*‘&ÉkR‚ˆØá ?ZµzuFÄéjN€¹2§³ró:³mcjò¸'wÐÍX?s`¨IØ­y!gPêT’”£W’úÝíüÊQ•æ]îÚ} 3OñéÊ.È*jL0¥8ÿÕÄ ÚÁ_ªúÌub²ÄÂtÀFÊ‘Qêæ4H›‰²±:¿¥} +c¥J¸,Œ°@Ð &dØÖ8¯ 'T†ÿþtQPŒ½¬MVj0Žélƒ>§`ã9n2Œç­¾Î›*ÌBÖPœ`öüž4”¶ïÚ“%8¥zÀìXÀÚ´÷Û¿f¢©Î +un+MJιhFoxo.÷)`:œä°ˆäâ¨ã1£|ÞY\qH¡ÎŒ* «fA!1“ +Ñ¥ „Œ?¬Ê Ñ åB?…ÜRõ©Ca*Ý4ȽôÈ'›—/q[pðX˜ pYºXì€v3gU°s9˨pb!;h;8bµákÄgè’• +×"¡Ÿg(oO}çCéš›´F*I²RI|³fÏôÌ”-IL£XinÓßÌù¢ZSì-N°ËŬ +€Éê*nf©³ž»Oî5{v¸¼ìn²Kªì–ÔéœÔœOÎ.Á®Ì+Ÿ…˜¨5ÿ•h«E>‚ØE9¼ƒ‘íÊ®ñ¨èÌ̇6:3XiR¥Ù´¤Wª0]^·ÊÎÍŒL"Š»p¹¦$’m…¨`.I:1r"Ä¿®kФK Ù)¬T¦̘ÛØ½SH + Yäç׉%!ö"ÛP«çl,ê¡ (~ÉŸ‰}  üÞÄ&F´›Ø˜çyÿÁnáš#Åõ§ì|×9A|Ýö¥"ÀLgïd+þq ´³Ã7¼kPTV°+“:i™‡³GúÞ |é±s&ø Ý’†-”Ê»(áV_Ù°kNuL»Í¥¹ ²³mu¶T$p.sy’äÌ ÜÖÀCdÞÀ&™DÂÄòn‡ïᬀâ8+Cðïé55q®¹ï#áÍ˶H±G4,µgªxj[’¿t£„ÈL‡ª]©{;Ï(uh%.Ãòž Žü ì EVêtɾE‚„’ÉJÁ»³—_Çz…Ð÷¤æ2§¹7?aq•Û/4}ÍŠ’û+kSon€Ê8˶º‹·àl¢Á²¸‚/‘?uæÒ‘¯¶‰1¼A‹œ–UREz ®8 +]†S!¿ø£›¾½O.sÓ.Éž×9NCé·àPŽ?Ý¥›Dy›ˆ×º3jð¦%[õ¼¦˜’(ž*ňy£‹?0ûɧ¦WÚrQÎè:fµtÚSd¯¦cÕ×1‚qLѬ'1CaŸØÎžÞ>9âžlsV5³h]ÏFœÍ+®Àì£ú; £Öçåë©g¾ÞÚ.6ù"lÒÞ¹Ÿ‰Øfk÷,h3éf¨dfÂy胀¢Îþcó"oî%ŒØ>SÞ îJ ƒkË0¯ï·%oÌ;lù¾÷¦±4éJŠhýÞ0j&ðÅä$°Ô÷T¡/‚[똑í¢¡0bL…Q!ãnˆ"ØÑÌÃÜ„qe’;A>™ýl o’ ¡¤½¹ð—ßZ' Ø„´aPˆŒQ_¦6p˜¥ä­Æè~|P`öz’ˆ·Az©q@‹¼9Oµ  + öÝÑ.a§ôdX‰ù†Ò>ÁŸz! …{Ì[@§¬IžE<6¹zÞ5é*‰Ôë +&6ËÄÚqnR1Å›©øôÕ2–lÜýÚr1ESÌ%&…2¸L\R~#ÇÜ=jÄ!e6«¸¾Â&™uNíš5f¾I•2Õš<Ëi +¦a³Üæà<ÚmÌÝÅt#·æúhž¸JÙ§ +:obÍ4vR¬”ƒfn’ú9ÀÛŒf§ &ï|ɇšSÝáÜ ™T1Û€}}“µiv +þ¹$m‘[½ð@Öt¯öøcŸ#†EÚk–3ù¼SÒ´v†íò؇¨øÇ#û}¨üŒùò³+äÜäÚ?ñô<ÛßMIù”ϧamL>›P@'–ýh­!œyN»µúÀN&ò—HXÍµŠ¡”>¹–'Íœp[¶Þks§ ¶äH¤’ñ‚‡0”s5¯ºLuµÙø$V+³Ü ýÃ6mº#‚á÷,1}Û®%ë6K l6.’ì¶èZ¬ÙÎü‘CãèaùÊ,l˜³ª58¤qkÓhPIûkƒóPr]Ý¿­Í"çã…à•oìð@.ôTÛM¹DýʃT·º„ÅxOÖa¸Z*‰Ôv¢Îú‚šé•Ä÷tË’ÍñçÔ_5Sg.P}y\1\Úù’RyÜ—™ G|QÜaë[@ʾS<ýœ-DÐl˜µ&v¿®‹d>\&lB´#ÜïWlùh eܬóõ«pKøD‰FãÙ«:¿äU}?ë] ÞŸžp(§ºîy¢æp¬ÿuª~ÿy®‡V]FCR-¶‚{Ìų9¥íõñ÷ÍT>»Ã ¡Þt^+áDÙ‘›ÌÒ&¹W:4j}[ωŽÁ{½ÑY¸ 䄽|»›Z¥ˆA Q‚¦ËÃp:dæºG-„Éž†®Ôñ´ò‘9¢½ðT^Ç|£ÛªˆV [žÀä?l‘ä›Ð»3¯åêÓ£žf +b·Û¼!\#þh× ]¦Ml´gÎýYrsAÈJá …Xø*ˆñnË ãÈœkñÔÞfš{­hKÙ½æ{í߯nÚ‚4Œ9ŽHXÞ»2K<çÜ9šÆÃ¡Ž[Ø{—á +¤÷vò˜5cŸ8ÈùØÄ$ÑèÜ11ãþ{ë“vñ”ýZ÷É÷1kÁD´§vX›Üê§Àžs‡½7hæ±íx•yœ æŽnOak“P„€ÕÞëí4Ü€ E{›ª~¶éÀ’ GqŧDÉ W_BBálٲ嗇ÏĶf\CxšÙ%«ß@ücóÖ‚ï¹kÙ|âÖº”T÷Y«M•™¯¨ºj¬ÀpÒä#‚Ÿ­×fܸØ4þîÇQëS†j ¬-•ù mGƒ.h­ú4 ðBi_Ž»B²TâyÖ +T¼—0bûLaTx7kU-¾ßµ:÷ôu–Ú^ø´KQð1'Ö’â~J­¥É83×òfœÝk™t¿JÖrk\lkÁ6.صð»_ïKý8šµ-ÎRÉÞÚ­µ¾Z¿PRv3”æ·V7”øƒÑè€ÛÌߘ‚·[ +DˆÊÄ0„­(@ ¶;Y€R„0À1ÂPÛø…„};àIÖ?ÀR¶îB€·g#@d‚Ÿ 6oœ›Ô QûgjÅ m]±= +Ž\€/0À ‚+ùõN]Ò–\ÛßOͼ+:È+Dìv©¾l눜ZpãÖ-†+dnR¬ˆ»™L¬^ eîÛHè>©Rƒ±™¸êV€c WŒäŒØÆ§qÔç.¨Ï*¯àÑ}Ƚ‚PãyV k ÿ v—EXqµ1±bsccÅøîó!+V8æUÜ8¤fVÔò6Ã31Ïk~( ¥cŠi‚­·‰©€Õy­îb5¾Ë§ÐyÈËàúšÑ ø÷m>0àèC:1@ðïä +àß%-×.€™ç ík^44l³ª¡‡!$eïö‡Æ ÝÛ,pèÂ9äпqgCûÇ6UºGB¦;t „$yècÙæØãyfbþî› üÐv³-„îP?ˆ@Kå!6íê%»Œ;…CU–µþ¡GÄ•æ™ÊkåD.˜>'eWü†MÙ¥ˆK_ôΙ×kц¶zqùTö¬Ë=ˆ‘ଠFÒ ¼ÚÕŠ¤´FßwU;q•&yžPåÙ'wTÿZ¤Âãr×îox­pÝŽ¡ª_kY žÿK:^CÕáÙ¼)ZÝÂW¬¼%¾®X«õ$¦Aˆ¾USÛ•ú?_KƒñÊkUñq¿k-òóÛ§\+˜ñ­пùÙ]?½ëµ~¿×ZyŸ}W¸ ³g-û†  +Æa¿-3¯«`-MÇu´Ö´?nìã9~R÷zG÷›~ˆ­¾9ã:P_dI3²Úv„ˆ ÍOƒùJÊÇ•édÌíwQ©¢.‹³´gç`âã€>?=±ˆn4H§Á<Ý¿‚E ƒ+%-O Ä9Äjl[š ÛUŒ$Ž8àþ/ñº0𓟀®3×¾¹íu„¯ãõ©Ãyâ›»æ2ƒ“V¿ÀOx«­¨Ô¬R¦f¸|ª¤fX~ýtÐÜ åq×äf¿d2-R<%I¾1ôS…7_ðóK´‚d3(×+‡Ëý~žÉÈçQp˜4¨Ø“âéÖªÇI6úîDXma9 mó6× WEá‚ùöHJ‹ËôÀ‹Íy滋·ðÎÿüÓ ÝÍP4‘´omª½\ss4Cy®M‚=Q˜¾)‚ÿVÌ6ëA8Åá¸A˜Ýj~ÇÞ¼þÊíîãôÓ@?îå5ÜøüÛë.›Å»ïå'K÷Ž¥[Œ$¡½=xñm6æ™_<ò‹<ë¨ÇnÄ¥ŸnMÞæçn^/8ÿ=ïîó; x¦†ZNsåèÚ[ͨ¾Õ;a±ËÆ«·–Ðjí˜LOÁ(†³„7îãwû“M[æ"yÝQ6‘Ò¯gvÚ¶ ‘ÎU!5*ÚS´wh‘ÖÌÐh½?Ïâ%½–ÈCLÁS9ûtw0IÀæB¡IT |Rå¤àci.D£4"9²q)öVÝn4)½ì\ÉËd‘”5HG©PÞhÊ_ŠÍ—n&Ô‚Á¾i#¤Ä§š²\†&Ú¢-ÀEŽÔ@ž¼®ñ!éªè5Òòz¾θ˜ëP,Ü>AK‹’Ž,·§R[U*µPšHIÀu’9ßýyÄY —ÕB%¥$S²8¤¤‡T£³€[–¶²ð7þ&¬Fá¾5e²Î3[Ùi 95j!]5•´H[z]EW*§kàA¤šÇ´õÅŠu¸VxçÒŽÎõæ9 å,Ù 8Ãâcáã}Pˆ¨ŒÈÏï<'¤@‘¼dÐ_F==G?:úE׿5*ËÇ‹€I·hû(\γ§fúð1ëpEÃÑ»ë&¯ó D +Ôd¤®ý¤ªlÏ›YÆ û©½Ä<çìó¬.¤)¸=³­¾³8ª«A9K.ý¢ªyˆööRQîhY‹ëÃmW4J””$©@S CÎ0³uÓÕ"Œ‹rc uZ¥âGܨ®Î³Þ +ŒuhJ%É’\ñpžu¯SÓÂß×úZäIÓèa'ï`$Âqì¾Ç.-¿«èܺó2^. v8's¢®…ú:M‹ë\|ÉÔvßýòˆT±é$ÇKz?Lé‘€?Õ¦°0Èê€| «ó¨½Ç¦"ÿm7š`í%¬LxÊé£ ëzôé`Z¬zÚ×õbh¨Q»SNôª¾SEÇ_Eofvhƒˆ¡‹C +xfÅÓ­.Ì]<Ïj2íË»}¢`·ïr[úð×bÿ%†³~аg…)¶¾íÌ +[h˜Ÿa^'ö½‡o—EØùïU|†° Ã#nvða‚}øØzÏú¼õÜþ J¯×ËFéõIë«ñ´ÕÔÀÉíêÅÙ~ñ“ÒëOJ¯_·®J¯”0« öœê®@¯h+-™ O3S`ÇÃB³Yƒ>Õèns/ çó +æÙý¨ÝÏ;3OhJ]ÀH¥DT ]žn†6ªcUu¼+浪‚¬”ì ×Ù—ÀÃQ"3–%`Ø&ÙŒêœGUTµfX¦ÏÊùÅ]Ô~ºz3³³|èZá{HUbö€(u{wOÃåkŸü?êo­WJž>Pré¨qJòÉL±=™'øYÚ…ÜŸ:¨°Ò¶Éè½ÞÔ©¸—¢šƒàv@kñôÑ=‘픧 ©cC´6d¼–vÕãÏ38»€ª5hˆîÚ|2ç`ØyP¿ê~Çh6 ù¨+ÕùzÌO ôb6µ½ÒíЋ@µµJâ+ \ªBpJ6@Õ•ï%J!v[xÒ1ušl×­bç˜}¯5ƒœœepf©­Qf)Áo~>9u…<ƒÜa ‚¦8ÎÔå*`Òoß‘ÁruÿRHoŠd¸;1†½™³kò$5(ñê»xƒÒ§SÀ± ôeHvLü>ó £EEJކ0”È#Nò(…f[È„Q©ŽQáKàV: ”>`ivÖ\Ü=>[cjö6g–¼Åó«Æâ>)èS¦)‹/‹hØqD†Q‘!ˆ¹ô—70µË_3\rSŠT{&ûaÉN…­Z®íHÅNPàh)—«é6É“ M¼ƒNrò ]¨ÅÁ×o–‹ÐâôF¤ìJ7*t[¬¥²»–‹—ÃæüE¡³SþÅ—¤x¥E5lCÝÎ#êhˆ¡áë.̇{ꕳ97 ä½&›,Íô1‹¹ÅÙ>’$ +ˆó!"ú ù†ŒŒ°YíšÃÁ.Ce«#’&Êiž"wÁ_ã9\¦¡Ý‰–MF¼)có̽rnuaü&…Õ@ï5Ó!$¾ýä€ìomÎÔçd26Ù¸Á´™J‡yÓt°!²µ­*Ñáw÷éòM§‘8¥>þ~÷þòh Rx4 ±šºß5[ù]Ö¢rnÌìr8Ð00/oòe͵1{eͳö©Îgë®t¥&Õá‘vJ-Ø^éÁ‘oÒs±œÚnì§ÇCßoJ螨e¸ ß2Ouý=[S°eg$]Ä]!%›X Þ„4¢·‚@§]GøØ´UÞfŒ s µñ¬a\ÁBÞŒàv¡"r\qз¶Y”ìTäþzPÐãýI,ø~?¶©®ZÄq gç„ØZBV2À6בW¿è›\r˜ÆÇëéëŸý H²vÕÄÌLIÖ è ØÐ‡–(`¯fö,O-Ñ‹]ÏìU…ËÙBÖO€é-:2[—,e +[ì4H×[‘µ]bà‡ç¼Jû+tðDä‹®e‘ùGúPdWt¥À&žY%­•Õ(芬f{¦¶|á“Ñ&B3ý¬Ð Pï´ÙŠL¹Í›ŸÿxO†Øf˜æÆ®%4Lñ9ü“ ë—‹Ô-šAɇþ ³îÒ8»”=ñ†s†è¯®D°›@‰q®;¡>]wÒ2;óD9Aur¹šº ðkó*£=µ¾|"½q·Œ¤'ŸZi@…ûYmƒ¶Á¸Šòy’­Gæ€!9¶¦Œ£ 2)Š×¤}vÙ”¡ èéG±ÙyxWÏð²)H¡Ñ*ÃvæìeSW/³;|>¢}d«ï¸á»TC);Ù(ŠF®wR7Û%ŒÌ:Õ²ÁÿÝH~@pˆl€¬~óó:ß7i#‚ƒÇõÀìë®.AÿÎíÖ™Q«æA²Ï†§!ªì_"íïËö=šfH¹5Ú;ön€(ûæóµ4¹›9¯¼— ƾŸ/õp ®ý4Ië.Ì;LÇ%œ{OÂß…¹‹ËG,©F¢¼Éß™Úå<‡»ìfdI¿Ä{9šó¢Y°–2(êøLÞÒ¤zw¾“„ë‘,05 ¦èÇ /Ή%b3ßúmÌ/ †]·G6rýƤ¨`;Jê ô2íó4AÅXçéàÄÛfºm– :í9ù1Ýžgë¸ãP¿`œècìÑ8U‚{à«éï¸ÕRÖUöøõº,ã…×å½€iÂó»Þa°OÛoq›·ð)ƒA ³!Öͤ +ö9ÌÍhã×ùýá^q‡Fï$¸òËŸüü»ïþ³mþ—¿üþûo~÷›_üùßý⯾ùí7¿üþ›_±U>m¯BC½üÉŸÛùætö«o¿ÿîw:å÷ß2ôý¿ýÆÏúîhþ¿_þ¶EýÝoÿññÝç_üßÌMº'ßù7¿úo¾ýõ/þò›ß}¶-úu<©móÕßûÍŸþý÷ßý‡ßþòó·¿ùÛ_üÇ?žY½ðNÞ þï~÷Ý?Ì;yïîÿòwßüþÛoþÁnþ?ÿ…X1gIñ¨÷îÝÛùëoí¡ÿ—oõýúgßý¿ÿèîÿâ›ÿóû_|û›_ü·¿ûî7ó³NjØcRÃæú¾þý7ßþíúþ£Ëüõw¿]®òá‹ú«ïþáï>:-×f÷ßüÝë·]fåŸýì¿úÓ?¯¿ø³ßüjþÖÿýóoþöÛßÌ¿ü×/ô—ßýú·¿üÕwÿ»?þÙ›ÿ-H?ÆŠÔü—L5tH/þPš‡Ú­F­PÈÛ“ÈÄŽ£É—ûSý÷ÿú?{ãº}@;òúçoÿóÿ²?þÃKN/ÿãËÿö¿§—_ù/ÿêγ½½™õRS8òƒzù‹Ý¨ð`±»â—Ú^ñ7_lkæ·ýù/?ÿßLaÍ2‹¾_üñ7¯ñU &½üOÊUÛžmÖÖþsºMã.{ʸ^ÃYƒ~=²œ´c€Œ¼6e+„æôÙÎP"ñ€ +TØAÝ9º×Ò¥˜­†HñNô .¿ÌNîÝy8gŒúÁÇi;Í»5{[$'¹j:¢6(!µyz~Õô³Eìæ:{¨ùŠ €tC!v ;#|£œ3BRx§º91Û²tÝÿ¤+Û´Û!Òí§ôó’xV¡}o [ç#ÈQ1WÃG@gɈ1aXôò‚ª[ª¥*÷< nÛ8ÅJg·PèŒ#-ÆÞ¯Øu¸£"ôƉƒš~ÁXJ·6ZHK­O‘´á8Õ›Ë +¦6ŽtLL ]À`H໑¯ë.Æøt©ù΂æ^¨ó~™'Ãq'§‹˜&é9!ôv r^Ùâîëê"§Š¸Jå zZŠ TÐ1ŠÜ‰ó˜àã°óÎ$”­Zðp5r *t[Ú eþý*šZü9eT½Ã"ƒ·Ó%ÒºÄ9Çé;¼Å¸ +ðn0JbŽ6q•e׈ÞÕhÿÛïR´›Lí|»Ldq™.¿PóôÝùSÕDR=¥Y”,”'¸Žæ:s©{ëÞ¢Ãmj$. €ÈÌõwµ7ç㥗§ +üç¿!YuŠâÔ¦­Vt’3OmMå¾Ѽ±“„X7(‘`ŽœY9jŸÓ]Êrt°áöWD÷¯µðû¿\Ž0üj8€Šå[iXâuÑmiWö @ª|¾3 ¢x p›i7tÏFe%Œ•ðQ*0¢òv™oÌ~5ao2“Ñ1 EubÞÓÁ + Ç£’1t®3æ€Ç@‰"áEL`×YlZñ@”|€í'p4Ðå0K(¾øˆSàˆK>/„ ãõÂ.¿ÝcÛÆ¤mN*­qàvÕTH‹ð%YZ9qÄé=°6!WZG‘>&ŒNǾÄ×EëL2®#{HÍéE SkbÚ|‹Æ´J³ŽðYfß„$5ùSW[Xσy§ð2 Ac9bÔ×»É{£ ]§¦¨ÚIW#q0ÜͼVÚÕÅÅ\±µd3Ë‘Qs€­šÙRËæ®­6/ò±5”Ë3áš7öìW'ò¡ËvX´MAó÷zÖáÑ a]Ñ‚-þkRè|Å‹¯-øùqjfqÇ:§,•-ì¬ðŽYúßJžïòpø†¢œ QZ'6 +l'%vZNèÄ4¢A”‚pæÐj[ ð@éB‚Ù)ìƒÌ•['i5ˆ™æ;˜Ê¶ƒ´§2=<‡Â˜Ë±{¢Q,°&cxy„4D'˲ŽÐ•Î1™B»óÐqKG+·®a2SWœêî¢ä“$%Í-˜ƒf¼9(L0‡ÿŠ'Á¤d¸Bãò[êÎêº<_#GE“ ÌŽ*?= …ÕÂÖ³;\çéíÚ‡3~¯#N\ ú\d‘4·“Ó—/1iŠp~Û;ó5uš&Ë-Çì¿86¼zy?¢íÍ6Í«ÿÚÙHaT—hÎGR·6¬/p`؈šŠŸß\C +® “ê¼ÒÐLcTBë˜QÂ:Ø(xN^í°íƒÝƒmÄ¡ AžÐDÁ…ì.€øÃ$îÍ2Ù4nWxJ©ËB¼ »ˆ–^à +Ù†½V¯LU—NïÙ +®  ª6‡b6 ×Å…Á“t°C!¿j§aUN^Ä Ùªâ:%÷k#PÆö-ºÛýP9©¢€¸ìuI; Ñšèmý10—]Õü¡/ˆb$ ¬ÐÁu«37ê{¦Àœd4H@ì¤æMûOU³OšQ2¸/ ý†«®¬>ÝÓiJëpŠ)ƒšrhSž~êp>p9Ù´¹]Æ\š%¿Íûæ¢Ýû Õ³9‚½…¡Öo>(º„E€È(râ\Q ?ùò­‘;GÝ›ŒÝ1Ÿ’¾‹Oðú"‚ (ÁŽ•È>šËWD$h³È”o +ÉTøTŽê혶㵛ú€Ef†ds/Ñ0á°¥&ug¸‚ŒþwpÛ`íôOøKü°ãfŸêü+3»¢\8”'†¯å¼œTQ~½½ã†ÎÄ}@gÉTõ œ(5»K;•¼y\@l`>p¬¹ÍH17€ÎÍTàm¥>\Z&àÛv‚¡ú‰æî¦_iIÙ"¹3v*J¤—“KTÁ#Îy–CêÆ >;•VƒÙãùCX•ÅÉl^ý1ñù"·Bµj¢*B¹û¦º–"pñ T†z…ͶFmGÈôñÛj‚©ŠIî4,v`F€6Àf¤†œ†ùôðQÚw¥B]MŸêPƒ}í ëŽ8ë1Z8hkôäÀtˆD†Dí³KòMA}ó-¤zð»³7n–ÂN•`Û{ó+)â¡ œË$¸ÂÂß“•~®çC¶`ÄgÅËÁðwÂV N£eû)z¿·{0bÞ!èF>5Ñnq ú•~RÛåõ‡>¡£{‘bûˆµ‹:N¸Áà¡<ë7ÐD„rBX{éÀAWf"Ä%v> uq8–欸ôñáV€ KÏs¨“ÃU~N¨ÀÏòJêØ ‹à1É–ƒæ8q§ÚMœ Z ‘ÍÕKDQ’#~°W<\·­-{ÀdŸ÷¯ +X7^¨­3ZÁëV‹×}ÒBûé–ƒö-$(ÉîŒGE6iOÑš”¦²Y£÷z¶Hp–ÆvºDÜMu~ü5-?;'•™Ç§eÁ6Ó]Äè¼2Nìé ¦©;¦†&†>§Ã²ÅQÃ("/tª¶Ú¥ÏÍâ'élÅ(œ4Óý{¹Ù¦‰-( ›á³%ˆ`“ò¹äæ›Hüu×n^íNœ‹3üÙ*Ûœ¨hÁÊóþï;Úäox ¶}èz$ˆ:IÛºX^aBôb$³_$ì)‡Ýz"³`¤ó…ÒZÂjt‰Ñ gÜîù8pyò|yÇ7¿²íÓ¶¸ôžê H; +ö HÀpÓá¯í÷L‹uJÎØ¦ 3õ]Ðb!¶2o¶ÓW­pyíÂŒÆRTÁÏÇéTñ {Ÿ-¨å`êY¿K¤Ý!è¨É¯#aH÷»Óé§³7T˜K`ÁÎK‹,B‡0L„DW%œæÀ%[¨…1æÂ`«šütE€è×Ál¶D 8€MÞN#¹àræû¦Öƒø1òQ)ÅÀfî@ç#ƒ–rA}rþ àw9xô?~E»’¹¶tŠK=²×šê€uñ¡-4.Þ€'$º›#œ6[lvŒ.?#và€ßSyòoóuÖË~û$âg? Œ½ÏFϳ )í¶B—t°8YjóÐÚqê€ ¿Ú.Ðï{cV²Ö+ž¿ùâê¡ábZÂTç½·³µö‰åãk‚”ù>à&òTʓΦäÛ_]s"fÒõ…bÙɼÈ ×öp0ž’è›^‰ÅPPX“ô§5ÆHîN:C}ðK~D%~ºvïÑ(6úAóõ+1’”eÙÏH„VýÝB~þy=ÜýM$ôyЫ“ì:ðúÙ¥ AšŒ6Ÿš¶QuวZÏY ®Ÿõ`}ÁwTdA>VÁ5|‹çî»Ï½G­›XîQˆ#|°/‰TûÕ«ÜD’ùv{IŒ²# b;-¤à{ý]EtV$ÃI©œÝÃ7  ¢Ú‰¤H%£ò¾÷Óås*+Iê™<’‡YØjv}lõ eyÎD§žÍ6Ïæqàóº%-~À^g«á>HÆGŒB§(†µ¸º…×ñÀ[óB){Âi?25™*A{¯§Ùv.³š(R \râ’Äõ©¨zšÊ ³™]ç‰Ã74óääE‰&ZUI‚Ëî—›ÖŒÔ1!›ÄaY ¾…*©Rx½Mžfƒ'ëvÿ]‚ch+`z°Àô1Ý¿ÁÙ8ÔZJ£ÎÀÌˇ$¥,‰»šé“ bºfašcåôc¤²tŒÈ_DèÛñ-ü@»4?@>Bfšƒ"ÜG>ïH°KI: ú—m&Ã…]“>rW˜ 7:D‹í§;%—zªïöx•ƒåÀPž ðÞ_D¡ïƒÔEžÔ Ù =~ß[UEåäåT6 ÕÅÅ^«S¡ã`qÍÑç,H3; +Í1¤pÔ•ßæ” €ãoäAø7û!9&èu€&%ŸšØ#’h©Ÿ÷™Ôã ;ØNW†ïðÅPG%éiÛˆ¸€ èt*‹œP! ÈÒ¸ñæƒCŠ®0Ev_\1¿'(µo8$ŸF+•ØL«wà}íüÇ寸ë™o)ÐÚÚnV‰iéðjTzdcaX¶à€U}xH»þýWþLW/Ç2÷šiU4û‚ÿΧsˆ‹ÙÑJmV2V5ÒÌ”PhÅ· §O`J 2ÞgfBw]'Å,Ÿ‹Ît%[G¢sÇj@jLbTäÚüB™›6qÏC©2ã5-MìÛŽN¹&[/ˆÆ29¨aö€•*·’Åýq9ß®°˜êtA…Þ$¨À_üB—êï'rT+I A<®-ÏÛÉú¹üGØŒµcBšý¼š>ü lbÞ‹4¹µáB>[â hïô’žØGm®Ô*þô"ÅÛÞKYw(ÎÑÔ dMvÛöI48ÏÄu6€^o¿P›8t¬úuz‰|ÙŒåNñdœÎO`#è|½Š‡'|N“ÈBu²!i9ñUág·QÐ.3ÊçŽÚç«_éÈ:O9ú-VëO û¤Tü‚ÒöS^îãÈÑV@I–5××Sy[Mª¹Ü‚3ôõ@¼~Ýž¸ßÀ£y‚«KIÜ<Æã»^ûi¤Ë)Ý›«uÿÛ^IPŽÇ˜ÁDd±yÑÅÿi»?®ê$(=ÌëÎc9M¡B W%(!‚nZO1£ÀÝW fͺŽ}9æ$";_âÿ®ù}Ú2ÂÔ›ó¤É¬m_ª®ƒ¬"áA+Ÿ¸·×ø +ªk<Îy½~ñçQ“éÛ¦VÁ2C³(Çð4GJtÊwJ &Ϲ•¢ïÐÂ)æ ]í.w2ÊÞ£h–dP@—PÜõ:œó‡IHSÃNÏáªMßÛtΘtNQG~\Ç7sû½›º‰•Ñ’@™‹„96¢a|!RíƒúÏð$l[¥«BB’ µ×Y£\õ¸ +Pðš‘=ŠlÀ1œ‡T ¡ì×Üó<-QN}üÝWôâŸ<~¤¦„öÎ"…PªˆÒ„þYÛü¬÷: £ˆ.ž…Žp eçžÔ]™É3ßSýãÞ4vÈ1•ìGf‡7#>Ï¿R Ç VÚ7çáL°7›è¼äµª¾ªWðºŽä2m?3“Õ_èi!÷õõ,ÏJd=‰éYUßCq1òÃóc½ÇlŒ”Ñ/ºCî1Ž*^s:OÏZà„…—³%S܇¶‹œàÄC‚;È<æGEbMâ>22E­T-B‹M\bïbçáõjD&ÍNãñÆPÓZHràÞWò=¬cü}BèŒjbð¤\P–1¡yvsmøÅ\ÜKš¤IÞŽPØŽF¿¼ôv’W¹œÖ‡Ïa¨;WÉ‘àJ¡XÛTö>!( ü­XaQÃÛèrºŸ)Œ²Ø€5 +R‹°ÆÕg$ªávñÂtfüWBZ\+Rbš†Ÿ§+C“<úLf4œG¼õìà̶pT5@w\^v#Ò[ŒÇFsôP—´CŽVì°áøÁ R33‡ð}L´öB‘/¶ÆuÄÃ^€´µO’ÉPÆóø”Ä–}.­ûT‹ ý;Í%ÈnE&ÝÍ_w¾KÑ*¦v"¦c´>0vYz<Ýa xø˜ +f¬Íy.$ŸÃÌ“Ènw)AZñq!7»wÞýPF‡6Pá)tŒ #àèb’,ñX°íÒëNårLM:FÖ)ÊÄxñfüB”k²xD6ÂC´êº¹ê÷9-¼$E +D \6Y°$áŸ8b* ô+·>å±â(jA®ƒV³ ^´x]ÒÓ¡Ìuþ¤`>»puUÎ.)×a€O»&# Cì=K>%ÐΔ:À8ty†&¥w ÿjò–ž°@xî˜6·‰ˆ°Err—8 `&鈧래ϡj| +¶L1] Q‹%wà·R0O ûŒ$á ñ^ªS³lòJêgϺ cF4Ÿå‡WlƉÍ|HmH˜Ê0ÂëæM& pÿq”dðçì!¡7A+©G\ÙfþXkw…~À ¾˜;+¯ü0S¶]:„'àÔ3Mý jD~à%lBàmIköœ«2ß옠Ÿ ¶öÚÄs;Ú)%ª¾>ÂckfCwü³,®J3ë©QšfSÂ@‚Ø'áAuž!Í$õ¦àž §<$æÆçYF¿ž„paž#Š7 ÇÜÐ>tæîÓK£®ìÐê 4þéÏC÷BoÿvRÖõõY’[ªÒ¾P½ó’"nÕG…7‡:’ž Ïl´“?üi„¿«æ>ßu˜íNÛóŒÙ°`ï”âŸHâI‡MHÏxô»%¥ËUã–<Ç ÆáÖÆ‚`êìqÔ_ÌÛQ{í…kªÖ€ËÕ\ºú.\ù‡¦r1§ ‰³Œ“Í+º 7#ðÿ±¶‡€¯i›§QH¼â¬}̇HhÕZ&LŒs; †’†M’®o#ޏC-ã¤ý!sÃyÎÙúb¦Ê6P—œH@•‘*Bf®#ÖýÙ]ÙuToŽßʽº—Ø”PEFpr¾ƒ`²ˆ`OQªÐ§"‡˜í À6Ua6ûWV—™N/í@/Ô=Í$Pÿµ8¦‰:&"³;(R—t!|ÈòÛÁ]‚§®Ð5d¹’¤% +ö-ȺEwO~!^@gž0´9iÍan ²¿™e;úbODºÙÿ2š7¨qÁæÕ•¾¦Þ|Â[sÉýw43uTát…?{:¾y²a òÀÒXKÆh@ ZûéR GéªYGô…ƒ8èÓÊ?ÖÇo» +¯Hò´¾a$UÂÎ3! ”….RYê~¶µ¢dWSTmg]Režã~ûrƒcDH÷ÜíÞÚ)ÙÞ4*‰.õ?,°1*;¢ßοžµtIX|2¬k؈÷8 ¨šC­iY#ÖF‹H‚‚kRj‘„æ¸õO¡{àrY#Ç[ã£í§Æ›8¤ÑÓáÚOÄó}C”ÙT[<šæyö»YT# |ÛSHvIèQ3NÐ‡Ú Q¾1J¦jàéé$B±‘¸>‡—€9‘硪I?Ó÷<æuÄo"Üãõ:p}2 +h¹òN2p~»íô‚®Ç¸ð’©¬MEà©ô b³1ö»Òo^„r¶dQ?U«†ó£š·Œ;ØhóJ°Ú9Hyc>é‰~ 2â!ìuJÛÞË–Md¾hÃ:÷u©;§„—-ÓË%$I^Œ(ÌG™´µËØ(\ËfÕ• P¨È +ÞdÉ h*fß¼#œQQ2‡ÐJ`¼Gý/B²D§…<¯Ë’GR4a?Htß |zG¹OpÕ¹Q¼p:êM½C`H’@$:@ÈÑÕÀßU LÊ{¢Óèrkgº3ÒÞ +üL]âðŸ+%€“ï#Ø/éYÓqaqp`KŸÇîrútW‰É<à²I†ãe†Æµñ:zó"³˜bA¦goR‚ƒÝA0‹Œócœ·Ù¹îHœ©T,ÍuGeIº€M ·@ŸC…b•k”}€šK pC²]ÅyéüÏ€ Y1spj½-ñðб8ø °ÃE†t¥:> ¥îŠR6¤†ß'Ô¹lÿSu¸9ÙYçnÚ]y0qÒ £qÑÈKÜ`ûew½jþ42¢¤¨z‘@žæ˜[ÕbBY„:A'žÐJF±Ó1jžc”mƒpðYD¦Rô9qGŸÆ:c@ÿX{»]i’ëLï +tûP3€{2~2"ópÔ6ŒdØŒuD-Ùl‰‚Ìà»w<ÏYûã®Ý$4›lpWDefeFF¬XëýiŨ¾±žjÖ剦¡žÚ4Õ|±td[Ù•¢  ”-ðUr"íIY—<«ƒR-k€XK:€Lá€Fé!fœLæx–Éž1É»UŒë¿ÚÈ‚4' +òݺ¨ý“@-°ŽË4y%©âò̾—ç×0¸å­VÕ»9Øu_‹ÚZĦo²À̓(½á%oy1Ô⇬—õ›ËãjÏ•3Í#kÇV"ÐȲ«‰îäL<6΄_ž‚š™1ŽÚ]®ÁÊvt²qJÆ‚pÑŒ“ÚÊ Êi‚uìÜR(µ^@æg ôæFõ/â“Îí+pÀ;Nœ•«/ŒæºhR‚­ùy£énª»köÞ[ó§h•é\DàçùnœQ¾øÖ¢é%}‹}•¿%Io!…‚ëí¢OIéѤÔ\™àÙÒ 7gñg¢ÈùÀ°ê˜d¸b^ûZnJÀ7vn Y=*äÚ{¬Ó|ô‹‰9RiëÃÔéF”Táwr+¯P‡¿ÎËÑŽpÒÉß${@ØÞ9djg¤mËšS® û—š§à>}n.9+þ@$“œখR->ìɦ÷”$ îÖhGãíí‰cÀ‘:QçÜ‘ÄD}ÇDQs/„ËÉŽ™\X‰ªÎ±¢¡ìŠ«Áÿ¹ð퉿‘Søëÿ~þZ„ëøøOÿûþíŸþåÿúøë¿ù›ÿüË/ÿýŸÿëïÿð÷ôý#…Pö‚¶+Æ++ ¨0‚ öüó&è¼8ñ7`{çxßø÷õÈúz—ÅþóÏX2ÅñÌ}ecÝ›ØjÁ4@`¦z¼ Å©®#½À“ŸPé²×·FÑïÒ¼ˆrž ŽaÚÞh˜Ãµ@Pÿf4eÌmóÝAvæ +¨>¯NÊ’ýÌbÌÜ5°Á5Âq&”»hOLÖ³C:¨2øèÛoe•ñÄo1ùJŸ£…áX‰²îª?x¾¾ù…•lÛ%S'|¾n½WMŽ0 ¼®xuý›†OX8ÛïéQXµìl¢o"¡ÐøœGB‘£ £ü,ÊœM–Γ>`êéF£îíÉúSJƒ”˜å¯Œ«ŸÃ!Ljf‚=¼ ¾YŸK|ÿä¿3öqôr—xƒO%•µzI&caâÚLñˆáX#iÔìpoÍ%Ï“Šûîú©Ç™ÒóÑ<‹z©/&OR*Ì’W*±ÐkÍSñ”‚Åqؔң²>³q†Ñ®$— PÀK߀ºýJ%ëXÏʨ£Š¢rÏ>‚©ÛÌq§È—sÐ<Ë™AP¸V³x ÈHÈêÓî¢q1ÿ¥d·o¾ƒë¼ ã¸B +kíNÓwÂ/Œƒ—8ÁêUP¤^½ í¥™.Àå£Dl/jv(¬íö°¹OîíövaݠǶ‹ÊÏ­õŸœ;ö;öb/N¯¦S,¹ðö²ˆY1Š® õó¦w +“7›zð$ϯäAà`z‚%ꕸ‚ÆqÂ:DN^ÓZ¬O}º»Å=³â”[gçy§r…¬Øõªá o¯̦ž1’•^a€W±\IÁêNëä4{Ûòd%)y5ëm!ä!M#eÇv¨H02xzÀž&¤S~Ø…Dl¦Ç‘:»–x^ssHƒƒ\WZ\_×lÊXœ@œ^¥›6Lˆ) +œ"‘5\ò!¤œÙà0Î¥úq«7QÎnšØ¶Õ—NÐ{ÓG®o¸óY祈Q)½”¸=³ƒ*pWˆ@žÙ{“<á}mUì;Úô«ÇºÐàú:SÅÜêË'»‡*©\Ž +;ÕPÈ^ëºìuQ"„Ë$ºfˆú{wªÿüuZ¢†Ýé!Áü¢Þø:Á!mm{©6¹—d^c/Ùüò¡¹¼€ûîõ}Ÿ–×–ÓÎý»€ž$iòZÑ8Ðò °VH´œ?ú. ±üU+=ˆ>Õ0wmš ÿ«_ÅDZ,ȫ܌°ÊŪ'WÅÂÉ®ÖÀC„ À|ægÕàNÀºÖÀ+3Bvý‡ÃÊ‘¹Ns9%ö…$,ˆÜ3Beƒ)5óÈÇÄGQ`I\P*@(åÍ-ù§’û·ÇSÅÄ&6äÁf¾âìq×¶Eµ¼Fñ™—‘R‘ÂÄ9 §…+"þ#d'©¢ìÓƒúGl\»ê˜ü-{@ž·[6ŽrA 5—¶kë2« ¹½Ü®û‹‰s¤‹‚,+æ½>ñ¥°Ö}Ë2(ëµ?4ñZ×Xf=]U€6D´e²Ý¨š½Ë/Ç€oÍFF¤jÆU¯¼³J«|”E”d‹6Ú¬îån¸>€KÖ9Æ ˆÅÁ§MYéü‹RÀž_M¬Ñž‰°í‚,Ú" 0j¾î4‡ú(1–>F’/pyWžÏÛë >2dÖ—& ƒ¢ärûÈ`ù--Æ`4 ƒ<¹á’©A£#ðSi=‹…ÀàYžëpå62„ ƒŸ@Ä—eUK2àÉ™bÅ=ûJ,ò§cšßr Ç—¶íüÄ.ÑTµ³Ç©JD-$#µá8bàL¬½b&ÛÀÀŽ(‹ã[=¹Óc7ôÑÆÎ¹:‰-¨Ðu©š7:$AØ/ßlÊOÆ¿ûúñ:ܯՠãT¹ÙA€Kéž§«7p›3´a8M#ʱåc€çÞq•ŸrzõjÚÍcYN˜éX"~cl +×ÒÌ<¥ú_Xfl±"”[Ö€€òÆy¢@@3ÿrS‰½4›ÿéÚº]˜-Ó’5±ŸÚC˜£Qi8–éMbØâÞ7Kjû`µïŠçuí2”뺨ƒ‘…ºЗ\ôØ•¥gOhe‹=ð¿õ]ÅB¸9~Œ³aݬÊÔ-„ÑÈ ýE§8‚€ÇbGþ%LV•Òïu!ë$ìü‹š‰=z:Çl—G 1â— =AÓFj¯F~ÐmðŒ[ÉYÃÂd¼Óà6l=b{!íÍ3]Ôf#Ò<Ðö• ðpæ)Öª6½¨ o6ÍÝÃ÷:ºœI ß§Þ4Þ.½üÜüÔU‡Ê! +g'ÔD# ½å‘;@”˜Ûu‡¯ÊI¬Z²Ýh+šD¦oìK%Ý}éôÇ¡Rîzî×FÑÞ ´µÂèŸæÈØ|MTž O&E #I m×2‰&AùÖà5Ls°VH oPÂlD“ Í~I& ðzýRiÑë—¢MˆÈýLœD&n&°œA „¢<‡¶Å›À‰¬¥‡ÌŒ00DDᡤJ×ágl¡„ ƒôÊ…T(¹+G@à·?ìÑÝ_ôc$¯L D?[Å«ÄW“5_MéE·yÍHÓGê1C,פ¿eEˆÊˈ+FCãÞ–·­©Û.²´Æ¥h~Rˆ?å(—|#\%{ 0"…AƒJ“l—¿† LC\<ãýBƒ@³çp!Da©Šá{È$¶çs@Zhþ…QÖúåÄDíɪ¡š üöáz££ꛜ pmm#"pí‹|´!ÚŽÇôé™I:F0@NS=C-ÈZK¤Z¦¦|dÿ(Y¯vÖ@–Úç~p°S ®…UOÃuz-õƒâ[L} +ˆG”êWµxß؇ZR«ìJÑœ>øÕP ÑלŽ ‘šu§°$Q„,+Òs8 +Y4®˜²ÚXÔ¥¯VànÉ[· *6¤¡vx˜×Op’8# ËÄ#|÷XKFØ‚J7Ip)|c+3$ó AÕ¬EJjµ‡;7º$ö@õ¡éKSI,¼wNN‚˜Zo ëÉW¢z³3%haÆLˆ =@ +Ó Mµ’õáÁ¤ÃäÖ³PêVˆ Ÿ(Z˜¨<·`YôFg$Ú³èzU§§×h例)ÀT,ߨ$ÍB ZKÃÿ­s¡/Âþ°«Ô@¥ó·Kmc³6¨jMN¤à[6w)$÷†›ÀL%UùãõùÞÇ QSJ–ðuS“¦¡bsŠ\:`@2„‡ÁFßô”5–‘¢»Ùé=`H^µ_ÖÞêŸpijs‚/éܲˆ­…iêeyÀ£&k”?’8ÅÉ0˜Ö\÷¾Žý‘÷ëœrJ¶bäfQ’ ‘CA„k†÷]¿Ü•Ð&A +LÃÚyÁÌ–,5ùZ·/+( „—[i7êkSE&°÷E®ü6€TK¢:µm,¾ï…I’½Ú>ÌH‡~<4‹c´Ýü]z G6Å*pôϱNSúÆE/è§ôÂÒû†GPˆeèÙCû +ù˜Óèd6“S:Œ\kŸOÚ‰›HØ=Ü'‚7 fˆ©´`J@ÇØÃ9rõhëÒÃŒô¥˜q]Ñna…¿ÇØ£©©ÓL¨º~w, ´XE*Vå°±á¦0f.Î$bI°àº—2ˆîè”%-’|½šU5±û~ ·ï  þÙ+h@¬Zçf¦’v™º!ÚZÒ¸üjÀûRçë¸F«±$_vlìäè\ÈÊKÉ•o³Ó n{Ýj&«¯ûø&Œ–þÚ_Ó\¬´3ʰJŽ­hFˆ¬.KxkÒÌ_²m¹ÜÏ€ækߨÝúLXÕ€œ]¨ô®DЇ¶Æ¢rÇwÇH[ ô½¸jScXÑ F×q+œö# äÄ„ÕB^yFæ|!2¯¤r?ΣDÉ`ꎈªmç$C6üÔÑâÕ¡t§i¯9táf'úèB +ʉjR§ê57û‰ÅyFÝ{-R0l¹ÏŸ+ +RŽÒ+²Â÷}Iü§GêQ¢Ú#2eå6z +ËåÚíÔ4€U¢žÆrÚH&Ëo¹IY'‚™Ÿ~,Kx°ãÚ ˜¬“µ÷©ªPˆPã,ÕôÒÚ ¡ +Hò¼Ê®Â)x‰Ú*÷¯l|Ö$ÞU#ÁB$ ŽZL7ÕÈD°ñHÎMµY[⻾â>Ö«Œ·ÇÛ²æe@&öHµ +‹SÊ‹G¼Tèþvz°+¢ÇÃÈ¡×ÝÏñnQ†‡7>@8–'×À!ÌñZÄfÊ$J’atÈò[t ÌñPPXØD UüS‹Ê¦—‹f"ÿË.e‘deÒ ´† 2IòµÈç>Ê—Uóz +:<г`Ëo}WÕ»*QBoEÕaŒ"ÉPªÆr£®=Y±³å•ÇL†£Â«=“Þ¹Ya=¢:EÇSSŠÀ-s¦ð´Z_N—GÚëyÇAz G™àtÿ;0;¨HDÞóT8S›šþ N’rüy‘x½VHXy’V¤4e¾f½ÿÖ—1[‡ZW·#oãä73s\çFOd~R³´Ò´Ž{Uñ¯Àƒ#¦ª…gûÎ& è«ÁË™ZF|%"äY™”]ÏêPnÄê&Ç)xœªJ°–3¯[°ëµ8Ì3I-MZÏ }ŽÓ$ÑüH¾{a¿ÊLa¯óûã‡@‹äöŸ†4Q=;®Í¶›mY"~*=NXqöHðu…z‚Š^·Š|éABc< <†ƒŠ¶›>[6nƒP“:$‹Lö‰À¡âcaÕtð¼]G¼–µ¡âQA†R˜\·}!ÏÃÙt+ÂYsÙåkïC.6?š…e_Å»G޲VÉ:¨I±%z+¨å„~W l®e ¾{òF&ÆîÜql,DS=ÀŸª'ÖdÎáéÝC»%¨e\»ô£Ê©â2!B¬±å†\þvO +¢ôzØñ;²>• ÀjÃ=’09rzÌñó +l¤?ú„Œ‘³F!"Ó¨â…;ÅeìSs…E™i™ë™tW :dýF¡ýDaë#7 vF½8‚‚©‡qó•Åÿš]ÉýZéEL€gµ-{ÑÀÌIƒc’XùB0ÿk'ž±Aó(©Í×Ñ‚húÔrN#kö—RÐ.ƒBP”›#q"ëšøL}E«ÁülÚ²ÖS™èX–RáQ²™Z¡6 g¯{+Q—„Èòd×Þä}"„˜ÂYï …IÕŠd]á]E]‰‘l$,ÀQ€ÃBƒP^;êŒ, ÇNèžÄU JÌB³¢N´¯§„´N“ë8kªh‚éʒ xV7'${¬®ewÝ}á5B°cëÒ™ð‚ðÎ Ø’©IpwãÎqÜÕQn#HEeH +ÝŠÖË‘ê‘!9qü}SeÄ»¡J(p •So=: z÷™¼†âM§ +gk¡"y8ƒ¿ +$ñAá‚Ù!”>ÔYS÷q ø[b €rK¾AH)9Å;ËfÄ1-ÊQýj“ó:“¾ÎtËIg”Åœ£ˆ÷oJÜ“º¼‰”*€k#§ªVá€÷WÃ5Ç–°ã}Ì„D."_›])•p­ ¢+Í4pœŽ¦M”]6ƒ«‡éF©L?ÅæOØ,¤%¤âpè•þdBpg¼ËK^.<8Ûþ0¤¦/Uø&°j)ÄÀs ·‘×q´u¸knÜ3]¬‡ãvžŠƒ ©V&(‰ä,Á‡°;üú7 ¡/Æ^tYAqn­×I® «f•ZÎ á@3òë0DYçÔ3 ÏsQV2˜ugÜ4•T2[7¾Ô^Hîz˜™^Ìbô(þ·êGÍ7-q(Ê·5·G¤xòmýKA,õ-3,%„ÈÇ×'6©M­ÃÍ›ÙMŸäѵãEÆŠÑþYçœYäÑ‚‹†”Ú¦3…Zv&íá^ŒS3™Ù·0*#þ& ¶¦Y«¤i™…ò¸ˆ]FjJM't¸âùÁ†j®ëÖšdÈÞ¨n…Tà¯.õtï½éA³~-Å?ê‡H©$®žlCW @”¾çŽ'Ð5`³T¬¦ +GxÙJ×Z»&U&–¯¡Þ?¡®eV.xŸ*´£k€`-µi:üÝÞÎÉ‘±ê„Þ` bl8ys‚ÕÊg\ªµÞ@Ç(‹_Oš\*Ôëí;ˆ[aÎ+,rpÖpZ‹¨”KÑ ×8;P_¨F>Â3¬4¢_×;A¾cW»¨¦¾ŠÀ+(·+ujõîoiáHbªg­NóÏ‘i†Ce”D·ƒ·•*R9TªüVO©äWA*¿%æ?þŠ…é_| _õ'üýwþù¿ÿêÍRòG½•œBm,»^%žr ù?|™G1û÷µ“ìç2fÍ’ì…mp•\“Xq{Zw°Oú­\¯E™7à¼8œªe²tjÂæf 9d!Ñ:夞ٞ­0+œ©Z³ÑX“éÁ`×o ; ñ¨üS'Ë7æþFó¯*žçÒ +z½ÒT +•Ÿ'° ¡+ zîíN1½äpJè¬Ó›4Ü;Šd­y­hß/g}ä9g%.b7Oç𺠓¬øëÀê#ÀÝF¶.,žf¦VËœ«ØéV%¹·z>T_iáøón²>¡/êáÎS.ƒ'“wÌNÕnÞZ8’"Bòxqi|רia`øãkª™XO#G#·,AoÍU'©cK\S“&¡µ†… +äæMk Ö\@Vý6öÅÑ ÐEê÷¥f°âü +DÞþýJ€"‚BE2©²?=o?Üh§ÒµŒXw¥zxv97k°³DµWƒ‡Cñ‚ÙF˜r~ɬa endstream endobj 26 0 obj <>stream +\A”ËúµÎ_?G“a+9¾µ•½–¬%BéÀ³Æ:„—XOÅRÐË5±ûstÀÁ‰‰¦¸¯|ùSyã=X)B5ò|A|͹ý•ÐÃä¿iƒ› ŒeÖHâ+ËMÑæj˜˜:êT. ÝOØ— /l¦T´ÏΩÔNìÇ è£ê„a1*Ö |Ñ + +4áGF6(ʲåY äÄD ú9\*ùÈYµ¿Ï#’†Š@w“~µ­wÔÙT|n°¦ î-„`‰ç+Ôúî?¹Ã†%¢QÛCr¨Î.òJŒÏ&ÙŸX°Â¦˜¾-¤¯¢ÎÁ"K“y”¢5SE§!6' +µÊ*XçêìÎÈ÷>`U·¨¸BŒDÅ‹Ê Ìû|ë6·˜©ZR +{Rmw‘Dÿ( ‚Ÿfí=T‰ñá“·XŸCQ÷óKÔèâ£fņ·oO¢g\,oG‰’Ë’<Â.kŽSîWÝÏ¿áøšk¤ê^;qúÀ-c=¨ØQ&G­·†¢`âûFrg­b˜a”C$µ¼âo2ݯ¯ñ«/ÎÓˆd2InˆÊsð—ÃŒÂMý çÑôéA†) È×FÝ—Å$ « ïÌ +׊»}QNÑ €C¿©;9¿„á¶%eƒÝ㑞5* œú•Nª™PŽiÌY”eQÓä¼TŒøÚÞF5žh-Ú7Ž­Ê¯@ϯn±êc-i3zû•¹alQìn<Ä Ûu·ϰ ƒ·­Øÿ»^Ôì¦|Mu4«  ö]€..Í^áZJê먆ݾ¡;H€Ø̳zM +6ŠÔª 똄L™y')éÃûúT†ÌyY\“Ep[ØSf‹÷î• µ u³CeÅS ¥Ïzß“W\A!P¡¹uT²‹©*?+ꀲæï@‘ +ÈႉĆP‚µ´—ùÉç„Ó%Ý÷JÌŒ£Úýð´M'¯éœ ï›—P¥ǫ̃‚> Ò¯½;#(v]Ã3Êh¨¡«àúEœ~Íø¾•¶—CƒÀ%Eu÷š:ñôÔêg¿À#gŒ^ÙJGÑ£©ü0ÝÎÌLEƒlnÂê,¿V»•!kbÎY6r¡øt]Gôx“G]}¨­æÚð|°ó¥Ç/OiK›©³ë!ý~Ša×­¹d‡ŠHkð…ý½Ã·kã×Nº`27c¸}‘/P,<„10v P½X`Ù¬…IŠhÙ@r/àýÞ%Š]8PjWV z•pcWDIâ`Ä·)ciý5£¨·RÀ’¥Uˆ¾e&i{8ˆŽëÛÓQc{ÊNÁxj‘Œ‹ +3æ+ƒà­Ç¿ïäÓö×FÈf$J ²î!áx³¡Aè> +–Z­¬¸h"=&+p­¡²ˆ'Ú©¥Ó<ŸNû!½tôêH ÀPv}0«ÿ' g-³OñHbb—¤(ν𡵠0çAñK˜¨R ª£=Üà”IÝoæÇ!ƒ5)M{8] »>˼̷Ìñ­6ErÌ7ôúTÞ(FrTëîH[­ƒÝ üùdfyiá; ¹—L‡ +܃0¡µí?ßÑÛ* .én¦ú{⺺½’1´cœU«†¯l¿á;'vHRMR#6Ý/¦;T½*”÷ÐÈ$T27½©s«&Ó«kǪg#(ª«È4V<_…—õxõQ,ê_IJÕÞã1ú8g‹{«r7·–=ÑÉW⥙§ûr‘Áýª!#0ŽïœÙ¸ûl{чÆC&åŸÂÕp‘ÇЈMÂB/`ÅPÀ•øF˜Dƒ-ŸÉ©ºç&É*%:ItdLÐüóÄ—žˆejùW•ŽG1맆ó(ä ûÍ®òÚåŠòxOh P{‘U%€Ê€B´g¾Õe˜h8U"NBÃô,:‡MØì`J‹ØU^Ù^¬D±`ÌØ+xâéIÿLT =»PÁçn‰]_7a½ +C‡ÍëŸI +ðÖcT+‚F>/ ÷:9oß’ ÖQÙ“³3½ëjàCbRnºà|&í3•‹‰[Ýóq’Ù3$~ÌsB´ÌW¨gjÌYtÞÌF°2ìSyïóGiOnÿKãuÛIòÜí¥ ’`liLšç¬;íßÇ rT>B8‹ÇüìÌsZ[‚búûïÇœõõ,§tEc¨½OíIÉ1|ôa7‰1׋nìøá¦>QºÏùBRãºãCDaêõ^®wÉC<>ÚäíR‚!9Ã߈ç+I +gw£Ül¶Nq9þŸ+T¯ qN\g'ÆÕOJªü˜ÓµM¯®P"mv*gzEHì­!#ókñöuFÞ–nÛaež¢©©ßï=¼ù¯|iÄ€F<‘—u‚µU›¥q•:•EI6sï¦ï §ÈÑöW£©Iß|ˆ/¿UV‘ƒrá5¡Œ` ù÷<ë£R7`¾êl3¯$¦uú„£×¦ ÷þMZõk›MûüÄöà¨ic;ï:õGê":"´©0 %ÁXq=‘Õ-”² ämH´û S”¸ÅЬn. hUñ%_޼íÔàûŠHÙ“#Öß +gC…úg€9%|‹[ä +K^ÝìÓÓDÑóyfÉd + p›Š­iT‡!@†Ûa…¨ö¯ŸßYÜžrñ5>¢ŽÔhõ€Ç®º*¿H+‹[\]ÛÄ/ëÕðzïb‡‹]vùüÖš¡•ø˜(L4©¢»À‘öž<ÃUŽégÅwuëà?úed«4\®tçÔ¬²¼<&Ò4ɦB¡ªŸò^e“XN´<šŠy]§çzq¦×TÇc6y}´É›W xœq7o3•4+MU¾~>óSr¨º2¶,¤Õ$bõ5vÿd*Ør¹ÂúkƒÌ zE¡Šœð…ùÐë[åŠt1ÕF Ñ#ëäÈ /‚7*“ဲ¤ec”a¶kÌ1!Ú)6„<¤x6–¤^ä !:9wW·VôŠø/øZ=&é"#` ¯/éABXCø”‡(v—˜ +̱…aÁ3%L­ŠC~«oµ‡µkC=<ÈDàô_ú¦#åp_[¥¤…hW<Å}Ü›í©v‡—!Œ¾þç±nÁ¥Ï+"ÙAŽÜA¨U5#æççS>ewK(ÿÅo ‘ªâ507Õ)·  ]Hê+úÄñÂ0aÔ'ô ݆!êÁÄÍ`ÙFÛ¿])º÷<œ¿‹·Æ+Ê«ç(]¯8bîÜgeAõìÒíÕÃÕ¬íZäDpoëØÔ“s­­ÂA[4Í9B:©S$Ë=v°Ñhܺrwë7°oþ°Pƒ=$%^ök,_Eݼ5 õù8é}m,PmEÌœ¸Íü=ð®Cö 2Ë]OÄ>`øñ +e„0-¬õh}ÜÏͺ´U!•öLØ‘- +oà¥üÖ¸ÞËèЂÙ1%?°¿F”,žŠÃ@¡”w[ÙNÒ¨­Uwͤf]qÅ©\UàxU%å[ V%ÀÃÈ4rÇ™;ê6(_³šH¶!ñ4.i5Os +KÝ3.}ƒO=užc³á|}@ŸüLºí$ +P»é„1!ø!p×”ƒ!Tòù˜9:b'øÚ©­«ë·â{·¬‘×áQQ!ê¼¶¯Ë(Û>ÉUl›{S^µîÌØåÐñXŽÈ(£ìÃÇX'h´¦•ÑTÇ…:Üú6ÜB<‡çA¹LSîä*„Å˵çsŽZÌËñKªª<¯ï\[Wáx·`B¶Qåü¶¿Ÿ‡+yþ­ÓÜõóô„'«Dø ¢ÄIÀZ1ê³S-4ðµÁ¬EŒèÛ·î¬ÃëGϪ "î$7oø1d§Ý±BëVÄ­§žÃ¶]k,u}œ^A¶À‚W¾ßÊuǯˆEfžè´%4êpfÒhŸó4ËÖí‘å¤ìXÖÓ£‚Ñ£a¤S yÉéqBÆ8Ñ éßÈVæL§°éQZiIK®Ó¶èKVu6¿V#<´Zÿ{ËMã—¤Ù>Ó×^Ài¥täÁ˜óEEq­‘.¾ò¡k<+ñ¸IˆÿþÚÃ3®Õu`l›yëߎ£À2Øo€$ÌÑHÐkÍJvG#¿¯=¾Æo@dëµ.ìrŸƒrWwè .Š@Äã‰äPÌŸÒa¨ƒô³oI šUo#0'ÙÍÔè·×í©ÎtÙ˜W³âÿî]Øíz›¢QõR>¯Z0ž©·*à;qÞ ½’QåA£A¼#.¯C Ô8±w€š´z K£×±Ëí½ÇŒš `ãX玄0ÔúðDG)¢lVeÅjsE-)K™¾î$¼á‰Q¼Ü’ÀFÖt=Æy•´½ã` +^£µùÞÃ)´Ä×Ð1¾;Nm#ÀI Jôp^ûÞK‚•#Á +&`‰U6ŸÌ6fqÚ¨*áœ#_bÓK¼*c"æ¸_¤žP7œÓöÔ¯×ÏkÊsB™Sm¡º$2Ï¡i)@rlŠb_ÄsÁfËt°1Pœ`>ÒíÚq”gí¦Æ%(dï¶‚ mgå­rJÁ_×lù6˜“Ž*å&Ñש˰ǽVCz=†¨® Mµ°'Ý€shr&ÞÁ–a¯,3BÔ«èË=Nrö ¸zLOtëœ@‡6Ó>»CóTpÔóÏaÅ^Iº3@@‚÷­Õ°7× *í"X%‘kb% ½ö<’W¤ƒ‚„ŽYxÑ'Û!^ðÖû¢9™Ô1žköhdÒTDå‚¡ÉE«úr ¿2mëɯ™w½gä·wöÔÆ"•QP £Ãšùšy©›ØCîD™$Ot† ÖÏ|õ€G°.¤´ñyl˜èe\8¤ì®=H3Ñ#¸4z8êÈX_¹„ÊÖqçJ6òs G»É g¡ ![š¾ õ‚}®†‡ð¶œy½W¬ajèãÏ¿$?ï—ª!"IJS+s²j5(¡æ-¢J‡z…Õ|ªdCÊ/1È×—ða§AÅŒ¢A€ïåœÏ*£s禬ƓŸ$8hˆ0 kÑ]q™ò ºWt'|ÍÝÝ +1pÁU²¿.>ÄKUó‘çT<ìiÈ¡\Ó œõó[Ìy(ê%[K4ÖøY/nãz†¬oHŽØS'^À·ïñGk1!ÕBXel½ï8.7•×Åb Œ‹²+²ÊgªÈ¡–±Âž—’ÎÙ¬,½Z”#Ÿ¯Ï ùŸ†SìÆÚUô§Í$æÇÓŽúMƒ«³q]!H`gN6<Ý àúé:ñáðó+îîèüy2 5"0WŸñ¦jT_Èo·8>¼5¬ù¨»ZòÞ(ºr]ƒIª‚”÷Únv-ƒ(×eM¨r3à–WC®.†F¬KWì×·ZÏôÓÙ Ö•ÚõÛç‡;›뛺ø¸Ü -PÁà€¾yGÆó$óŽÐâkÉk—Ucž|:Ä4âèùì…3²©‹ „9/Ä0wb¼jzqÚxG~ 6+4,¾Õ¦FL2644áâ+–E¹Væê?ÔV÷Ó_Ác~D€ªöºÖèN Èt¤@÷ÞpF!£ìKã`>jùMh>pÙó¸RS`ã­ŸÌš6 +‚`OC^Ë +Vcq>ïÏo½0›€Ã N>%â¨o *GlªÓ[£äÂsNSáµøµz•H¼Ôµ¬ GˆÙ|E~Þ ÚzjòPMáõƒâLýðõdHÑq?š6ápÃ<š8™5U /ª²§b°†ÿOèôÜkó Y %’õŽ7L+Phñ¦»S¦ÑÍkE´$Ϥ]‰™H$²“ņÉã8§ÀÒ»+ž’«Î }ˆ'^ÞËmîÌÇHìñ±V4ðºÒ ± ÷l$(a-óŽJ/ë‘^é‹è +‘,#jÚP '±R_šS™îAò¦`¢™tdôXC¬A$ø­•§g1ùv{¢GÈX``kõÆ*û<·érÙŽ*…ýâE±OQ(èq¨S Õ\‰8PEš Ÿ=ؾðu8éõú”J¦1VB+€ÄOÑY™Òñulo³Ö2Lƒ¾2njš.€|B‚®²+¹6zÐ:9ˆyåuK!„ƒÊZú¥DK°DÔÐJΧ'DÙÀZ+>Mf7E³q +°|ƨB€)X=öÜ܇©´wWPo7G© +’·ø<+‚©lÍ“;z¬k½i?x0¡ß~DÞŒF‹ÉÝܹŸ#Šh6°ç ëp,µ-&LÛ1ü¶[úTϬwî£yÕQ%ªŽÏgÞä¹áÐKls -'TAwÎÈi¿5Ëz±ü¾´º9I à’¦ai¤ŽÖd÷ê1 r„÷ cùÒÃùQZÕd¹}stpÑ•,êñ£Â\1/[ÉÖ¤º¡âÓô B Û©a‚H€VLax.q›f°[Q?)êPW\ƒ'Ë_ç°61kÁœißôH†g^T%‹áùÛq`sûO|(•ÂÖãà­á¶=£áÕ?Àä +--ÌÖÊÍcwí'|ïÛ~ *Ò$OC¢ÿ­ZP„dñ| 04T„¦\)=¾5œGŒðr¸¯W.ôó?ÂÂI6©˜”o¯†çá7olñFùüÖéYŒœäΞÔaÙžžŸàz¥ëøÚ[öp4òª²íÄ =3åkx_øÖéçqk;·©(i+¢¼äC›€UËîëzê—4‚ߤž$¡`ÁSFV“@{`ǬLçyLòøI ,±¨jNt—_°Ú°±*(ô“Mu:ôÕy5È? ¹uÁ˜}vî +·jTYòìï ˜æ=´ð·Æ÷hJÞrnÞÍË©'냀RÏZú)Ò§!¿ñW@2˜Iú‡oÝITÞ/BCз†Càë–}iD ¨JS¾ŒýnY/ÔgK&ÇÐ߇¶¾ž!› <:m+p~} OD ‹Fkyÿ”²>þ‚_UÉfH÷1ŸY?ð)£˜ÝÀ­Ü +·O¡OC~é*ïÁÆÇ}ÛþÖÚÏÜø¦pÃ\pÏùû¹±Íì6:êxV¥*.WÛºOhƒ_iPp—¸Ëíªþ&ëúSœß‚þãmJ=æÆj\á3瞈°²Mc)[wB£ƒðŒSÙwN©aœáÀ]#pºDÏȱg!;ð4d*rXîPúüF‰‚“+¤ò¹Qo ä†_¦¯m¡Ä&’´žr2´±î'ØTUÛj²Wœõ™’|ÕÑpÆe‰!Eئ¬'€ýnjïW¨27ØŸ¾ë¦Ö#^Þ‡=ŸÖ,È@®û„hã‘­U~XϦBíøËÛ~‡ä_¶ö“ ë+•÷†WÊ_vÀùG]›k¥5` vùÄèoMbEi(|¶¼†Å8QoF™üÇï—4dÃAOóß#¸j¸¸öâ»äLIºì ªçoœ}È e‡Å$p +S +¯ÜǵÓ'W°ØG×i óQÉG¶½¾„ÑS$ÐpÈì{A©½5üÑ´ûµ9½¹¡ÄPò\KüGäoµj%Nø,ÀÁÔM£ííT;æ“¡‚~V@üÆHúØZ⸤³L€Õl¶±o »þ7 ºìΆD(6a +V‚î ˆmi`]UÅFCU?ÿw7ˆ-Sïo{5­ h T×ËtU#á#»P'¸º qíª„dëZ3…Úvï6Rï6XàŸTçÓП†¾î¨|ÞO)Tjˆ$‘û¥BæZž›ßòf¯†Ú£©,ÂH ñ´¡0eçpëÅaȯû‡±:ò.h¦ ¶«·‰m47žÖ%—RëÐá=›Î5(O„á˜-Žc{豦zv<8ÇAm;1Ú•{p4~L(0æ3s ôô8Æ?ƒ\¢*v¡džxs@¦BêŽûÊçí- ¾˜Ú\Ãvž9šó øt¯zŠy,HBØñŒ”›64I‚€y(ËšÐÓ³µ‘L+f1ÜZ²€ð*°JÇ’wœ‚Þ©ELÖû]fìf.ð›@GFèðROø ¾¡o w t2™›/àÑQ®¹¥Nôîã Ò…"kt3)¡¡·O³"ƒCXÑð `NGb½î¾aí ʘÉÐKW¯³Þ9”päבþAj«­—Ë2#Ë,›G¦kpzëwgjm…ta P| ”¡£¨/Ò¤H)ACPy$pÛô ýZQ?)=fte—í¡'0誋è=Ex´Cï×y ¼Ñ+ž^Lñë#·Nz‹ iÉq?|ƒ•µ]4ÖyÔ;÷¥QðÁ寙øJ5oS WhÂhžÒo\P¬’gWÃkv¬Ò+rÀ¨¿¨í6bNI‹}"λ±ùí&‚i5˜É€7Ï{­ähô`iÖ«¥lGW@ùšÇ’Ü^*‰V0Ñ5ÈÀ™p9ZΛ3! ¹–ü÷ÖhP·{lÞb9Â[ŸOÚdÝO½vjd*Œ Aw8)RëjŸ ø¥†mϨ°ôÓ(W|½ÜÕØŽÒÊhëâH‚/Q©âóºî¿“îŠPÎóË $žò”[ü&GÕ«Ê“{)L|hÂßõ‹¼ü ƒºø¶ 4CŽÒ…$w½È2ÿ¤&ä›ù¥GÃPŠá^ã†JÐ7ǹ¶z ³imY¶ÝÊeÀóßzHÈjÛjn«Ä|Ó«Ä\JØe}h D°D£§nR°%ÝVá^uô#¿kýRR‹^*eÊê™yFìgš–ÆÖ¬@¹`‡À*³í1é!ÙQ…B¦îø<“«îRê04§ªä(zãq`~Ñ“A>Aæ·éáv+fQ…Òao®só(ë†ÈÊ@Uð!#qî*…i¾î©Ý©ŠYÑÝëßô &"´Öôò¸Û¿õÂ*@9‘Sï'L–¯¨Ó€Ãb¶]ïA´©nDy]¿öøeG0J6#íúÍq†‰c W`¢ü¢* ±…Ò÷ǃZ|oS¼¦nñR)êÔ(¢[±¶ ¸¡jk~2 +i˜‚KÁÀüµÇk¢g á§©Öôõ8°_ÁýU¦¯3b…~ëH’Н&t#]Ñöíî¹Ýõ½:< †MQr¨o n\ý¨’ÓƒT–KD[ébê˜çL†¢ /{Jž0˜ž§C/gÜ'Û>Ïw®q>ç¾bзØq#öÀ"íH!ÑCSVY÷ –æ#Ë1ÁsîMÎtA|ã8-¦‡h*Àᬀ; :Ñ–ÚH@Ù'VïÆX_;”}WîÒÏ­ïõÖIÑ­³+º%®kŽš(dmC;õ©€›V4-™­Èñêµ½uÈ`«û4 ”õør”3 ŸµGà÷q‚ƒÚ'$µäíqò +–ÀåÙÍ’Á‡c [‘“ zÉ÷²ÙŸÖfžƒ>kjL0,ÎÀ¾Ýý7ÕCÄ-ïSNM_ô寮çÛe Læ|KÃùekÒ¹³cVpËyíÌŽ£Ú}¿÷H±|nÌï½så×ã šA$œ1³}yN @‰Ü7=î g[¡XïOYþk/à½jÚ®—yx¦ FìXšÚn" IE]þ¦Äv…ÝUz”J¢É%ä»k´1vñæ0ýú4«¯âoÙÚ„¢Òʽé‘M5È”€Ÿed”êëDŠŽ* +æuί'¥>Ê¥€ÀWmõˆRð¡ÚJžh2žÎÝr ÏØúRà|0<ÊôÍÃQïhÔ’ƒµÏü¥×µaEo×T£(Å7=H·µ¶çKã!w¸ +dc&Äv¸åå$A¬>ñáÕ÷ÝcHXü×9ÁL ·^ªpßQ¬“¤5øÃȉ㠆[K–ãz¸(3ñ8šì†¥e•Òôˆ™¢Î†> 8ˆ„þÀ$)bO™ v¤¤L^’d®Rû©ˆò!?:eY“+t i%ó$9sZØRÈwÍ ÂPÝ62 ]k_5cƒH̺Ey¥Š´“8œ‡»C¶~-Œqþ]\¦CÍßí"RÌä…Ú±ˆÁ* R¿•:ËzMÆâ¨Xðš¬Ù6èå)s À»_?NJ&Ãp° ü¦SŒþ]mmW£¶ºz¢ÝøÞƒ5÷Ú—Æí ÅÿôpaÅ—xi‘õša9¬Å´>·²ÊϽ"û­ár †5¾l¥U7¥ +½˜íWñ. FÖß;÷ÊAý‘áÖ¶Ú.±`¥ÁÙ›w-o]v©ŸNúŒÇ†„E—J%‡iOÈhxz„Ñv¼\Sî€0ZeÍ1ô Eƒ|¼P¸Ç.ˆS k±Ø"ä8rŸ"ðF Ñ'´†c°iu”÷Ít[[wÕxTuBúw²«}–ˆ-5å 5œFøX´Úúò¡@/ÍÆš°–wuÞ² CJrjî3ìñ’-ì±q¥Wïs÷ +‘t[.³z@3÷B@¢P»¦f·>(Z¤rùâ­×¬o`?o*K5o*:³ò0n…°×4_­*¶§ÚÛä¹Êåo+ÜÓ]îLÆËu±9×Ã’ÈÄ)ií#(Ȼٴ”N$x®'®¿ŠÞÔ™8›Xç€ãR‘bÜ:AÝ싲¥.± `ÉÃ¥ÕaâÈTà™S"œNQü*YÔ”#ðsh¼Ð!0Á”Ê+ÛfJpÄð$—N)¹f,õ`–qƒp‰oóëêGV¥!l ,CƒÜ‹Ç€–oXw]Ç=žpÌ^Çn ae®™¯›þ9ÐÙ%»c©^$‰E@x¨m·£ãÅá;hRT3H¢3»ˆñÀ§£Î,‘yZÇÆ/)L1Y<ä#`ë7 ¨ ¿ðÀ©fÈ[‡rœ,{¯µŽ1@ÔPíµ6³.[²ŠØ ;kÀYÖß‘—ƒ±†Ï F·EWãü‚Ûšpˆä4e‰Î\qZ>®QS/Ë +÷´:ßD{ƒS.XZu+­£¢íðè6 u/ü Oʼ2>óöz‰Û¼òõE+BøtZÜŸ¬®m:¸ÜÁõ—@BÝ#Ü6¤S&zɺ õ¸Òk’zÇ<Ý:7ž»`ŠÀh2ÓJT éq¢£‚„§"§TN˙ԥ®ðª?C×§š½^=°•45Ân¿äLÔwéÑ¥ïjÖ‰tÝ5wöÁƒQKB0%ÙÊñZKÆâz«ÈÜšÌä+&¹B®¨õÝ~ä1ÆþExø‚k¸F–挺ùŒ2=ÖäBUðUº‚4IòÛÜìŸDWŒ_„äQ€»õs̯¬±u’™ì€H±:´ïnç%ü*pMyiym n_ksJÒ€ ¾aêÚdzåL<6ÎDVëþ­R´Á žŽ¼Š)Ä\ +¾p«`J? óNõØ)$¸Uº31)ƒ ÔÅrF®×< ˜fô¥ÏE1 ÅF^“ênõŽwøÏ)GJ¤œÙ™z Ëò8oðTÖúѧÖ/‡  ÁwˆÄÞÜZ3¤fbHO{™Õf(¢B ¨™ Ñég­çFêÂE)lä4þÎ5ÒÛƒ°n²¦Ð.§âÈ<ÎÅŒ&øƒKcF;˜M—úÊM§[”x8sz<‘ö¡qSËÅ8ån´¼7ëšNœƒø¡ÎIÎÆŽ ØlŽëÞåX§Å!ƒ ÂPp +NTÝì*ktª©TΦaG¬4Rƒ•¬Ê +ºùžr q²4¦ÁÜŠ˜æ6ÀV6ReÀm¯Wàß0V%òQ.w”Z"9³c#×R£'B +Ž#ó¤àyf‹ñ'ô'îû-\£7O `Áõ ×1[¬þy‡˜mAl€?ÙÅ9Ô7°ý ùÒ‘½?qn¸‘º×¤â2j/$ èUüö Àî©:=:]ˆ`x)T^;~¹Š=Ÿq¶ÁÃy¾’F÷mÜ@0ãMÐ-ÞPvaõaãA Å?½† #ÈÑE} +“YÁ] ZУ)áö°ìÎ ä9Í÷Góa…3Š¿õlë×7'S«.§!N[;Ù¦R<,˜„wk{$+à`ÀkX½†WA/RZ`ÆAáÊ‚£¶zð/{ÄAòP¡ÉN°ô+ÝSœ97.úu"v8tbÓM¯f•§Š–ë=õôõtlþhȺ[£ôô¸5¨DëÅñ‚ó®htŸyçÆÞµóÖ-yk¶žòJè…àÜC$¿"ƒ>®W™†WÙÄ^ïàËC¶À¨m™YVíhPã6wY)8H”¢LTÕÈ$ÁþhoðRrwVx ôJžn›o‰ö°À1›u0ÒíE.”XSƒ5£ 8©ÊqzÀ«ƒ +É£ˆE]œG·V׿… +Î9I*³¡ñub«VçÇ{§éðÏ€TÛÖ;‹ ›¼¢Àz'Ÿ\=20Œ ‹šÓZ)T>mˆ¡rkÌ6 îv¢˜Õ£÷3˜½n©Šz‘ á;¿Š€÷­ö$‹cz +ø_Èðúua ++Ì<úÞ‹rˈj(KÐ^cŠJŒAœç×á1B•³dç¨>i¿Dæ!Å€ð ¬}õGß'åIqÒ¾‰Õõ«Îò°²P’Ðt´¤Î®ßÉCb(XòA-ÅTÃÕ,XUãz¨ª ŠCW >iM 8®¼ªÉ°©ã¾•ITØ÷‰ü°†7’"ÈŠRÙÔsv}•‡'þÃqe¾¬_ê!ªœí¡Rº×½L0¢úi¦£( $èÇO«ãôÎ@VŒag;ާN‰ôhHg¤éµºTZm—{ØÉ57öV#†qFes>°3%W§yuv |û­_+r‘!Ùr¥j+Ñf¢.ž2Dª}(kƒ~{±]—‰°Š?U'b7€×'vôb 7‚Jßà6Dµ­c­Êõ^sÉ8Ä‹:ËdƃNy„5ÞÀ„7ךÈhðßz½°›Uºä#²V¡ûr³½‘dco¹Vaºè‰°õ¢¯9¢†ryªQ¹~µ0%3~X¿¿=óàØ׆ЇHöªD¼ b+ò8‘Q7¦´ ”;CµÈ«¿Þඇ Ï¢D…‹ZÆÀ]GÉ·jÄ‘à±_öPKôfw‰¯ñSY=ÊÜñ%7&ï"Á¨q ÉI´(ŽvI¾nI6­ø¥s¹ò{þlDó[îØˆ®;†M¹ê¤¤ ›Ö/[ïÏNð‰P™J¶r†ÚÞ<âYäwaBrïÉÂuüÑlmŸ‚Ø6bÙìÍbn¥êQÔàI÷pÿh`eP©TD³J,Òˆ|;]Úþy¸øšc Èyºù€šÒ4 Äq˜Ýµ¨Ò´=Â&pÈÕ%1Ù¹º-¥Â\ VµM †ì +!»vüeGDø=GÃÝg-Öy¿Ä!¡ðkˆˆ©0dáÊQèÃÇ. KèúD•%õ¡¸£-ôªß‘ÛÛIÀ\~޵ Ÿ«ËlSmxÄBi´œÜn4’¢AÌE/$ï@oCÄ L‰ØðB´mKu6hˆlVP<ÙÝRÔ‘Jüܘ|4‰ò‡ÀÂ’-@ÅZ"»T`†Ð$žjïˆXC˜Õ¨·÷ON `É­·ä&d$¿Aii½æ¢ÊŽ üµAk`1Ë,¶¡xplZʳ7$]zl ;‹ºÈ^0Ñ¡Í1‰ +¦§.$õ¼)ÖsD/#×(Ü“7,Ÿ] ® òH±ö’‰HrdÝö¯2ã~k ™×î))LµO¶’¶·ðÞW|õÁbŸ!ˆÀ„ºµ.’OWðRÚÚD«®ceÝÙ³Yß +ÀhÖëLÆ5ô=X{L–¨ý¦úÈíRª$^ÛÑ_¼pÊ}Nåð•/É…­kŽî¡>#ƾÇA&$d™°]&µu÷G¤ˆp@ÔTÄêÕÈOº ç;(±rÔ4 "îTÌ/”Ç¿©n 5§Ï?sžG³/$r¯)ãýê2£rþRy¼’n$ù’-¸]xÅï\Àe¨Þë¢!¾Ie@—ÛõÂN çëí8ð©Ü°;TNÓ“œ¡Ì¡d.Õ,7õ3œ‚á"<æ,äå0AXâN¯s.A_X6›c 25]>;i©ýðˆH½>$Si8ëÈP‡Yfør(.ÚvêÚ°¦ËWàÝ{B®ý…,gšwÌ‘>}‹”îzïÙj·ÙÌa9ê…kÞfd[³ ’$ ŒO:]ùW]ÈËFÆGQ”Ÿ¨ù9ܤs»úÛŒ.šÇÆ~’³¨{›Ea.°H„UáÒ$+ª rsŸÃ—Þ—Ý!óöº±Ù_ WUŽB¦Ÿ_Ä7ÈdÏÈA×'†&ˆZ¯[-M83Ã'ît²:’ÑóÁóÀÔ$aOöŒ(—e½YrjŠB¦|4T:”H§†%»ÁäT&åxݯckºN¶X'þDzßÔ2¥:R˨.ð-„ŸÌÀ  X÷ã@Ƀç°ÆÀíU™Óœ‘|[ k%@T>Zú4$op¡À®tÉËá…F‹V«‰OɜҠ:ßšà ð{Õxl`õ¿ð•RÝ»]/iNˆWúH†+o]¢HØ£©É<ù@-š-»(ÕyG„©‚öyT-çÖT¬‹šŠh¶‚q£^¯*ûTr{DÃ…"M}½BðÅÛÎPtê)Q}#¡©DUzD$i53ˆ™Ë#%JúÄ‚”øHMž[z,¢ÀÉÖ&Íþ5Ej¾ÂO {‡ª·^|Ó¯Uä?Ãäê¾98²”'K@5„]qgOÖBgå5tuVÞ¨«–"‡xKonLø±Ãmßž@Jëó½u©ÃË'G…} ã‚Ä Å9 «Õ©±È€8Ô‘™9\Eñ§®+A“½ÒsI7àfÝ¢à%ˆ¶»yA'²y>‡Ú‡ ‰·þáw‰!ÀHåzv§,t rÖ–ˆ¬¡;'•°’œHè°³I ’©,Ғ؈ L©O÷<<4E\œîof!æçl>A|lñÜÈ76˜äyvìäÃ-B*È¢àÛK[Uzµ}˜±;̧ƒ?1vAß$®Ýƒ}°¦DýóD,Î¼ÒØŒÐëÒ®EuêÜ‹tÑšUçÍ`÷~ÐÖ=¯!=F®•Ï_'¢0Äþó¤&˜Õ Ò)ý4á)¬’nŸÚêДʽ¶õ<é$tÌ#¤ÙäcìÁ4¢¼Ì“Ò`Õh:¨À:ëÜB +ÿtûø˜Á³±;ªÕa B©t¸8I÷†eØKÚ@y°Ø+(çåÝíqZh.åŒÁçÚ,ýÔ{I\& c¥ç¸†«ñÀW°h|ºb…·%—'d²ªñÚòmÝjtÂl \à!%´çø¦×+üš&Ð|Nýd +sSꮩRIZ©Ù9ÈÆ;¨’ÍÊå.Å8!_tl}&,jàúàŒ×GUWrÄf¡­½rP|.Ö옱<$4W§÷P8Ür&"h‡\RÇÓùŠÑù5"†²T +Ž?û!¨Á1¶s,ÜK¢1±©kËÞGœ±¡Ý€Ýò¯Í!\U™ŸˆÜ‘%²œð P ËÖ•D *4ÜÓ¨‹ ¹¥fb¾Û>…R¢,¹ƒ@Ý4 ¾ïK?=¶Íf¦áõN²?ô‘˵ÅÖ©'>^řå‘”•ßr?‚T²u_zø±&¢ëcŒ;óñÐåi-/m˜ô×ÔÆhö(œ jÚUv½Mœ/ÁÙ– ¾š*×Pð;#|QN韲òš‹ÑZ©Ÿt4½Ô s0üùZœè|`ÛãDgMFm` –¥Ö¨*2žÎH3’r;ËîAî‡/zMÛ´ÁÕ‹2£ÀècÉâÁ!c!’õœ$0—"ØRRP: –±í…ó‹ÅÁÞÜØs­hòR™=ŠÚ¤x”±¾K¡)ŠŒ2‡®õjeªtÀJuêöÉŽkcO}8A›bÜ+27hóUj(ŽPAZ ú˜TzHÂQ”CmœéOÚPf©~d”ãèJ.)Ôö0ª®‡àQœRÚ“=@™3…suê "´5Öñ®ŒÚz«»æ„7ú-üHÐðcPƒ¾`ªFçý`Н”¡BH8NF pÂ|„dO%ø TËôa5éQM©o€ï<“z9ò"®G6‰p8QPÁ7B=©NZV¯@ÐJïáåLÆ–âÃt½7?” ©å¥ÓŠ“Ò<•XžV ¦Pa$zã}¶ÂÖ® Þ•U|ƒä›”Åga 1Ruë‚g”´|’kC1#VqéVbSõÇ63Ôç¯?\ØJꤿN”åƒMÀõŽMœ,ѱPžV݄ل]—j:¬zuoî%Ùó)¦pWÞ·'ãPœ«A&ä;·:¥VîbÕÒåvØPMª=KH.«IPÀy=âœ3m¹Ú6·^Û)^¥ÏrgPÈ©;§Î f`ÅptßCœj˜3Ž@¹)þºf`ªð°FtG~E™¼mžÊm¦ˆýa ö‘OaIæG«)·`,A„ë7ü*š"ª+"úÆÝ-8]P0BÊ÷–”±N÷ZKüB°!ãa‘r¯ž†ª¤Û†ö­††Þ) Ì,689k𝣮ÜtõL'‚êÕ©º‘ˆúXcuN‡Ð§Ù(œé°/È@+ÙòÌ`dl»l€[ÃE਑¤9´2BŒh‘½hw@ft›`^/ìµ·wŸh ÍÍëÂþ«æ#•ŒƒâOöR¿WÃúÀ‰I¦SC†¡NB€:×±3¸šÖW½Þ!bd©›SùÆ,%`ªM²ÕQã’pd DzÐ] t +ß‚ïÅtµylyb"G‰‰0ãVmò d9r·s”Ö” ƬŠX½Õ}³"‘þ>M!Ê¥â Ç!}M°"ìPÜè(ñÑp&Z JÉîóCFWC‡ÝÐׂ©€×£Hy¤ŠÏÐB°œ^ÝræZwD6£ƒµ~_O‡†Þîkß1ªªìº`Uz X<ñÖ8~ÀΪØ aÅ2´½4°+'ÈXy/X1‚ÎíWÅÉ£“¥ŠÒÑ¢´Ì2xdúJEqM“*½y ÛiäX³FÙ÷™„†"L§e‘ÉŸZ€¸¶Ô›·ñˆó¤ì¢ãµ…ùÈyZíÁ®·¦;¯œ›ß†®éi™õ‹ãÍëLB´&Û;Î9Ã(æD%ë£Y¦Ç 8x„MÀÒß@¬±] g¶= íXóç=”N^Ñ&ªe’ åöµ,ˆ½7|NJ{·‡¼ÕÃ,£<€¹iª•øã+ iÅ÷—åmå¨!ƒ=¢FéV +“/y\ìk$Š·¢#Æd‰Íb&“ôúÃW`­Gô xÁÙ Ä ‚C¨n÷‘ºbÈá÷æk£Ä©¶¼X¨Â3ЍÌq‰-Ûƒil‰Pâz¶ôc+¸Eçý»¶æª±Aøž5îa*á£{0À^ (;gyÞä «Û"%FDk™‰túÈþ êCÚì3¬'×ö™ö¨iŸòѦÿáLBZH{˜ê¥×Öõ$aXZš×ÙŠ\Ë¢t >:KR À¢ÊK$îŒÅlj{Éé0ä$Õ^m­ ºÙô q†$¾¼“ ¹>NnÜ3[àéÊö‚ñÂ<‹sÍ +\œ4%ìP›$XÐÛîÏmì3_~–mRŽ›xpŽP4ñc·^dclBó = +8§bø‚úƒ²ŒÁ“æÒ¨Ò˜r‘ªº‘¤öB2÷„¯QÓ‹±L/„ þö¯Bê0ßEQ…ý¯ÒÝù-úvhvÊHáãËjé['8dƒíºï¢¼?×ã +"ß}4Ba tÐ_xdYÚËÖQEÿ Xx?Re?òxe‚ÇÇüeý¤è™2ÒqU!4Å×&¨DS÷‰x›«I­l³ŽõTç¶Em¾øM/@VZ¢³‰,áT6:« àì?RyI±§2r‘z&ÐFÄEz­a“Ò¦¢„ÌÅfW8Ëp@Átn=+˜œXÕ®…}íw„«‘Â’ö_¬ÁéßíMœü—Š®+źQÁ%ÞԔΌ´À_(v³z¢k@:¯üÁF§€é5Hßq20TTâ]ú(âN.…#\fš ùA¤þ¨ÆhñDÚq •Nì¶«[}¯˜òµÙdZŠ&ãpËì>Íö#|‚¼òÏpiZch ò†Xú€#¨‘Ž1“ƾ)Ðÿå·DºüÇ_õFü ôgLóÏ7&ƒÒ:ê­„#2,ný¥z­÷ˆo÷bÝ»½nÓª_{IÜp» ;Úášá{¸4òù冴îðžd[¹^+0UÀºèÊñ~©ßPà'vß/«eH[¼AEˆíû…¼C¤F +îp§"pÑG€Ê¡Èâ?ÈoÌýÃo¼Jvž‹¤5‚¹L'äXMq‚0å×; ’”ËK'ˆv5`"fÃý$?ûö)pÑUœÆ‘ÖDlrELн2qs…5*Ì`†ïlö¸³Ya¦÷,3uY&ZÕ*(«S,ytï!ìöd.ÄìiyŒr˜‡»®xfEÌ´>èþÀ¢ÊÐ?Iɲì§s_–WQåüqZÕ ö6aj›Ç¸¤Ûñ1†w~®õ}CÑp‚Ãò%>}ÇF‚S ×>B>'­´¯Zúœ¦ë½ü9Ý1|_?ºø€xVmý{•zÀÑ©s¯™íðÚ.§@63¨§ÁÕ§$Æ#a¨cöó%sS$›È)ž2ø„·Ï×P([yñ­­dõèeêqA\Б,¿_‰Q‚hк,©ù<×uhÅH5Æ„ÖóôJëTë°Oáfä—\,MÍßqB0²e®lB1‰’dN.ÔÆlÀ˜\#É®²´x +ˆÐiXó‡ /´¤M G£+¦å®÷ØTžÕÏWà­DþÉôÞM«D5qíå»G{Tð: ±ƒžX·ew±ýHÚ†E*7ø9ØêoŸ?XÎm$Mf®#“ÝÓš“ÊmŸðmÉE”k\iØp]Ã룎­Ù¢uxŒ~APu8o 4*¾6žf¸ìtØÔJ)Ê"ñ°˜>/…­ûÔMeé5† püjDáTЩr°a»Rõm'SÁ¿û¥&­SG¢{6NCçì&ÚÀ̤ ä(:ÝÛµ•xó˜5^‹´JüˆñQ7å$øäèЉbò©Û3&§¥º  #c‘˜È"£KÒ úäÖY âï¼ b4xͧ!ûõðöžÏ ¡Ý¿O††ÌäœÒÆ—DDò)=ëy Ö­ãQU§—i›‹êOzaÓM/¶³ÇRãê!™…sª x{kÿüü'ã¿ÐB9ì: ­¦ +É튬ÿНGOoM¥hÆ’$JŒˆŸåä˜tjÕ£fTOvŽØÎÍÖ¡pF•×Þ™\)ºÚ@m ¸^ m_”¸ ¼8œ•ŵ@0fËáæçp-2ƒk·F’ö6W Ì9Ò'ñ  +F MLÅâÖýÇË‚ÃcPHý©´ž•åî?¹‹†ô!´ŒŸSºòéAu̹íÉXÐnQAPþ^Vž,;T\Ô¿<‚HBé°L¬5’\Ö~Pôû[lwë.o”CôÆÛaÀ~ÊEÇè 9(¬8vOó"¡¶Â_žqI>§à;&öO?÷\)z]ƒ$ךô»rüÛ¬ôxY1Ú%~*F'…Þ©g2åjÅ{{&|}_gJRB Ö3ôþÀú€“ÅÆ!qñZîu¡æ8à…W5雃ÌëÕ(´ÝÁ|™Åœ™2È1–kS÷ z®‹C% 4 +ÜÑÛAº“J:ÍéÆO¦Èõ¾"C{Γe㵙ݱ:PÂÓ^qh‰ÄrÆUSCö…Nh?–¯=Äoš¬YÓåË€å­×¹Kß ØZ{ˆ +-bákU¿LAæ£=Ù]ÊÎõ½Ç/;ù*×ûXAJ48ߎ³ñTkhR¾öZ¬ ÚÀ>mæÜ’¼¼ÁÄöPˆßzkÖz“ +³KøÎ„só)²K +O ƒ›b¡%ÿZbf1ŸÍhÁ¢‹ó64YR%ÆMr!Mد½#W_!~ëzB%úq(e5"Pª¢ëÁC3D¨TÏÍ;}n6Äøs%ê1²zÀK‘q&˜e5ÔrÕM6+§'86Ç¥¹–xÇÙ`$OŠH;7d(°öë»&±î\Û&¡ÊÅVïïz´XÌRÇ:ïg>øÚ .uýyø¾õ§i:°àfÿ­Ð8Ø%Æà†gòõóŒãmµ†ÕJ<øõÛF?*>5¡'¦®>_ìtŠ +ë…|)é¼õÒžÔ/VPpøÝ>Ê38aÍ3ÄËCœ<±Ÿûj×£»†[¬1”. ùχ}€´H]UÎõÚ¨\~–CL[”;iâ‡w·f(:Ï„«R´…]ÐÆðE4[‹ýpÕuo½DJXCwò/•äþsx×\8† ~~PÉ@²í©gš‹f޻ŖI¾®hœ€Ó`O/sÍ:e׺og‰#F·k×|÷Oµ=³úøGœèÌà­h犾¯ô€úE›…ô¨[ µ¨iäøE%ÒñY¥ÏpEË}rN~Í•‹;ð±óók¶™ÕºÛ9Àó&ꉭ™¥¾B]Áfx·°ËÃ$;á†kÓ)r)¶CäB˜ãχD¿åæؽìÿ‹’1o%`Ð$áïaoÖœgÃíÂ^!äî^»Ü¶íRÜÏ5Û÷MݶÊ5G¹-U( :'*;ô”vÇör¡—Ìû¾Í˜íÅjG/­Ý¿ÂGY÷_×õr&•™ë–e§‡„üP<Æüt-mÛéœÕ¯$ ¼õÆeƒØ½îÄ*žÒ‹dÏ$Àô´¡·ÇoTæE•ý0,bÇd¯µº0Q¼.±5B¾Ñµ¹¶Ì)Üq­µG¤#Ö+ßrá2bj ŒxMà´ÇZ“«, Ëhd'÷{{ #\èÒ¿FV$0?GËÚ4fQ]rÿŒŸÊ¥‡2ºu—hÁùœ! Z‚73Ç‚—Šrdž +Á,»RS€b”`¾^g‚ùC¯º¯ÇY J(ŒöX ==˜Z³xb²šƒ×ô7ù¥!%Cйϓ®fªKßYÓµ n× •ˆÞðYΰ(¯W¹ ßzÔ'™ Ÿ‡2ƒ›´—î +Ûî^Ú¢¦™:÷˜Ôõ!šYe £Ùwëƒ|œBJß$zÒ¯×7È#¹_UùÿR0ô"^cE!æë˜ŸiO‰-"˜“°ŽÄR ÁLwrU9¬+ÃÄ$³âŽþúÜKüjaóúRIjwŠYL½$~ºJ™nÇî1vû1ëx=¾6j’,äXÜ\ˆd*Ä¢ù8Ì"ñ9¼}¨3çNƯ—ûtï’2Áîñ0eÁŸJZ›Î´W¿ÒKq&ß¼L ™ +—¡€±”Ÿ¯: |CŠö˜½÷9¶ˆ¾:w<¼s‹K7Ù>ÆLJ}ð š0"¢¸«o=žA3•_·o~׋úœ¨ùFì§oÌ­nìZ¨ÃŒ'Ð膢àe2€n{Yýl´Ž Ë;{…77ÅGsœ;A¢ÒT˜IM#Ã@ÍØRTk7V!Ðþð‘‰J‚Ù+Þ;ÐÜ•(á¾­lžÓC¸|ì Zã¼ãÔgÌ39‡­äIZ²ÔÆ,xVm»¬¾3A|A”XDPçèÛP€¡@»Þ{ä36 YœkWÃçµ{<]ø (×IýÄ* ˆmû®ÇùÓ6ÖÀŸâ9Ó[/X¢<ÝÚŠ '€;hhÍVjoP‘™x’̰ªoù»˜íµû½‡gÑO Ußw‹®œÅ!4u…¾ö°z§m±{L¿õ"¨e£ s¶xRiÞ¨* +yÝIØlD¥Ìcز9{ïñ¼¦Õ{CÎû¾¿9J$²]°')Y0[¿íÁ^Aäƒu£‡Èµ!yöÎ*êŒhE±˜d}”g.űM)ÊŸ£–7yŠ ¬y–ÜÝ{Ü»ÌæjCý˜¯Çy¤ºàµÕ~îhª‰¦ŠŠæ)¯¹8ð%õ®O–ôg‰Å!Ûèq»&5Ø!ÑMh»¡"|€qVKó.«ÇzŒ}k`Ÿ[ûø<®&-«×g¦iÉèuv +œôe³z̾áUÉ ®ñ¢NÖ‘ˆ›Cô‘ÅFãX°ÏÓCë@qÖ‡ÔÑP5•-&2A‰«€Éµ”y:~‚УîçxÅ ÂE€X@zë%8q#÷i(o©ÈÚÎãlßõ赤ɟ`ç­“–P\€‘NÀLÔ'>ˆù´â¯¹’ÿëêî(³³&åÒ^r[g¦uõCA#)×z>2P²O{¸ÍоÀ,5ôxd…¤£3ë×ûz ¢„+¼«óÞäÝŽäÉ>SBÓõËkÎdÖY&¨öy&u?“k÷PDµ#ð7¯lôW°}à ÅÓïÌy'™W]=K"2.Êî£ÎjZ™Y¾Þ{MZcN¥þ_öþé{)vF" £jÍ Ù8Ôx¾S§GXýþ^“ÞÑË}ì»Ó´ÆØ% ²9VÁ æ?™•u•î§Qž‘wHŠÄ-ÍÜ)UDÅæ&”­9L=kO'k¼‰+gél݇º¾÷[Í dñ ^½c2IÂã½Ã/OmK÷9tz~?Ì}=ä9 Ýg¶©¦‚%ÜxëñíùÖk-&ªŒ#9‚K½ÏóKt÷š´¥Ä@:ͺr@ËfùM1ìå·Ï·ÏS‚Ô¶˜œø6²ZaË…úIÅÎ\nî$V.PˆUÆqÊžPäI +Úâ¸ö] F’z™ÛW”IX7Š@0ßxo=þ}爜ºß¾®E¦Ì§bªû1£î'ëHX6<æ0¼”ø·æ‰åQ´<]Ù©Î݉ÇM§1÷aL‡áNvï3=Öâ¶{ÌÝ£>=ˆãè1ž3mïâÕë4u#ñ‡¸fŽ¤ÕŽð· "<øäuØå#?„€‰/HqßâÎx/¤VÂR¢EfèðØ~:ep@{Ó¼#i|´ã„ £Êc8-Ô'-ø¨uRB|öDààSx¥`<‹°¡PÖú¤£‰ÏÏø[ŸBÖ¼JV°nJ&G{$KÇVl^sá=£$¿nš]ÙƒW=0ÞÇ!5§ÔQsüZ9ÌŸìŸ9/(¶Œèè+9¨$#滊{ Jp d8®µ÷?î$pÞ¾%ç éXL{†Î(Ää00)oðÎXÅPò|>÷¨ÀÊ$ë—!›÷ùÒ"ŒUý½6‰Ð ž-¿öPàåQÿÚˆx–øH8F\ ~F`øÀ’ÈYÂû¦ÌüýXðâ›g¼nøggžÔT¯GHÈó÷c©úzšSà¹Ò0âgHL Ù@;~x8ŠŒÏñÃMñ“¨N—ã)Ь;Õ‡ÌBýÃïNc3[sˆÇG«0‘§ño´í)ÄGÜìf  eâ ió\ˆóbå}Yñغúi¹º´Tîë1ÉÊWŠS¨vkÕBÜ׆ܛ¯‘ÄÛ×1ËÑÒ-GÛ‘ŒÜšQ K¾÷ðæ¿Nð¥:%ïY.ëd‹ÀI“ªU,Ÿ0ŽýüzvÕìtÄV )°¢Æ§Qø ±ð¬r×= ö¥$UŽcÀ}F!‘ü¼ +‰g}ÔAÎ ÞY1DW›ET9ÙÌ~ëÐG}UÏê£ÞߤW¿ö¸9óüÄùè…iãT•ëÔÔE‹ˆÖýÿ¬Ýª49–ž¯À÷ðŽ}PÖ¿‡vaÌÀŸØsT4ÝmpO5ãö€ïÞzž%åþjçî)Цªk§”‘ +ii­÷‡ÈG@OÒ8ϘóÞ) ©®Á‹A†B¼éL•èk ø@/3û%Ô!Eë¾I3@·¦«Ÿúc·Ú +¼µÚ¥y;ôªcÙ=s t9 +H3”RÁˆ襾ƥU¦U0ó’k[%ç ÍÆ¼é[ê`W¥àsèötÒ!Œ›ÙBQ¬?«ô ô»½bš‘4ÌAUýøiOrFÈ.)+ù‡P€øüù+Ü­ÿ¢ñª5Vý¼Y’á€-¿#ÐìàQ”1x¨·½^¯]xØîÈÛp¿µgh…<¨º‚fg#Õ²45y½%7X*¨oL?˾ªGÞž§è—¦h°\ã&Gµ¼½¼¬ù:Š©ò|JìGeÉ”0'wBÕÃtРJm“(R†ÍÏ9Êñ•‚€¦aÂQ5y ?È_~û|Æo‰Cõjl|ª©ù¨Øƒû~ìÄ ÷¥¹+yîRd½âøRÞÛV¸Ž¯oAØÑrnaæ$R©®j÷vd"…„GLÙÃC +>h9cž¤ÝÆ~uIä·v€òý‰ý%iy €ìÇÖ<¡^?2ÐDþÀ4[x› ”x”·Â©'h“xþB›Äqφy1 ý@^ê¹~|kE<™ùèDÜÒ>}Þ÷(ö©­†d ¼³ Óí œAHÏat‚-Û—Ö‘‰Tþ=¢ÇÂÅnT%¨åHÒ -pb³V»²d1m˜’&‡Ûqù/fÃÎFôžeƒBþ ôþ>^y§™²—KÇ„±”ÆAH©oª€£|ÁÀ³­?]•¹·Ï1`zyW|j[!¤Z/žýkŠ×í E`=§aeò®·!~ßâÁ)eªþøV=<6’ûnàú%ûLZ \Ÿ¬¡&«7ØÑEãæ´ol$möwç\Sa†›ÇLl`ÁÉ |zoØ¿¸Ž»aûÔ˜áÒŠ˜Y'ÀÞ[^zH‘áÚè¬->qÏÚ LxzEŠA£ƒ3³§¼dfFDÚ’SG° ÊDPŠý©n#ý;ÕßÏ­YÙ'‡9F9¶<`³)¦q‚¨NUBÂõªžÍ£WQ1.…lè²'S¥m +·Y›¡ÄìæaË*½g5OkUl]”w\N )QSR5¨ÙsU°uûª€dã+ò÷ÿ&d/åìV´ÿö—f!¨â*URÁ)±ñÉ¥‡÷‚H(ôæWÃÅD¶“ÕYß"AµÉ“ˆÍž×ߪøPmš’)¯NáidúgÇ’š†vEÌU¸˜Á7TMG˸N^"„‘qÅB;EgŒ(j²Œ@ØQó{B\cû¡¨Ux²—½ÝÁü}Î<,J ]0EOà×±/¿%ÒFÚà_¥þ+–°eìß“ý?ìÿßþæß~ûŸÿ㯟,û÷ÿñçŸÿ÷·¿ùûß~÷—¿üñŸþñ§¿ý??ý—ßýÃ?þôãÏþ?ýü¿~úOø‡¿üçúùÿþ9Núõ7þûÿüÇßýåøiŸâ÷¼®àWŽÿ•ï!¶ /þŠõãqî ±Od<Ù{ý)>«Ø˜ÝÏ óRÐÆ2Ú­™ÓpÁ£$'Q«âûŠú¸*¡]œÃòÓi ™<yt#^‘ë[&s¯çýxÖŒ©è…C?¢L²_"Ú ʧRE!»å7ÚÉ@ÆÞ‘3HŸ®0(¨ŸÔôо nÉn¨¤ðÜ Î8ºÒ{4Œƒ‘Þ;ܺAÅ’2(6(&Ë 0ÓgÁê}Ót·…AàÎ㤘‡œo5²ÂmáݹCĪó"ß¾‰g´ÔߎdRqÇ«TÁÅãE¬Áç@±)Kó¡ò^j]‡Åûb}ñ:€'¹HZoþ´Ú8ÀJ6Œ´¹öÂï~nŽx>fèeÏcM-¼wþ¼0òûf, MRñ­~Ж-(ï³´Wv6HzÛöÐ p·o‚hÄ=yäðä…q­¼b¹ÆÌ#ô|„ +¼B^\AÎ ²oýû†®CÄ­Çøh›Ç,¥D“½ÒÀ?Œ5ÚéM“ °p½¿7€à‡®[ÉÛ·XXZ8^ã稇¸® ÀG‘¥YÚ‹/k¶VåhB +Ì@ ªÅ=”âµÊÈ* ÏLiÿ(&qÖ£\¬Îrdâ(þÞì ù½€)„†_á2z@¿?i$Æê{#àÚ&ÅLr|qÍé´W†fÒýáãóa';v÷F§•å†NýÒsG‘mh¤ƒàî~Ñ3›(IÆõç_a @©¿7&Á~a̹¤ óу"f'K¾‰è(°í°¿É1:Ÿ•oxañ2lëÌHâZár”}òeŬ‡/-¸¿iI?'Ð'Ôs©¨–;ëêßä”êy¹âEus$.@û&'Gæ‘ L CcÚ'´ƒgƒÀâ’)bÉǘOßövœÅa¸áÌ09вØh怒¢£CiOtÐ/½‹/çDðÀ¸‰hªN1 jzŽr°BM¤r¢hx‘ÑÃÅôŸ þœu†Ë\ßQ™˜›BàEÔÃ~jµŽ¨¤^ya—,„pUW+;8aGm¯¼n>ÓÎw‡&"Ín‰rO=$¨íЬˆgà3t8h¸ƒ¤šÁ)©?á†ÞWÇÇi@oЩ ê-MjÍÞËé BCÉSzÔ.^tG"£­Á#ÛoÙ³âRêno¤ÕÜ;2£œªÅ²À9 Ñ-Ì™Æq¡6¼HLÇíü—^‚ï+ÆÇo®xôŒ·©Ù$Lo_Ouy³à·Î wo8ª¡GB +J( £¥‰F’­úº)ˆM¬kˆÇÀùWJ4@ÞAʺ‹Ïà>ù—_UVÌvÏ~¼ +r¬)ÿ/­b CÔ‰–_”VXà¾\F¨ù)ÊŸ%ÑšƒÒ­ +Y21è1¹á¡*}j‡C¤òôTErHÅ;“½BkˆW$ ZrÓû3ç,lÿ•ìÓ°bBt¨xf:=$ Ñ lqè»Çˆ,ƧùUcÁ¼¶A<9t2K:ï(nÿFü¯œLñë3‘eʹÝY“ªŸL·D÷o/ 7–9_ŸáÐF¾D¼]^ï%ô@µïGl²§ß˜*ÛOÄ55…Œ¦Òý]†ò—Ïš7 a¸è£’#ßáJ‘Oún¨ ìgf3`IÃè=w,þ¬ +oô"¬/ó¾¯\ +`dþÔÖOQxý݃yíwÎg˜íªµÂq¿¡\yÊ©7ÜÇߎ5øKm½>{x(Ôsh(Þ¿Í žÄýLFòРЩ’Ý”¬OM…‰˜Ÿ|±ÕDfܼÅ[÷–t¼Göƒ\8!KÆkdá=™Ã¹3\d²rx;d ]îM^ðÇ \ïilÖ¼UuåJÀ@ÕÊ6è!aX«Í´û<J¾x1™§7aõc'ò›Ã•éy–ü‹.¾^@C%nJ)ÿtÃÄuI'£>¬u3]è}u½_Ð곪ÁPw#Ý'ŒŸË‡oQ'ÀÎ^£&’åVdUøLÛ©zr§Hó]b¹&’¢•ä°yÌßß4‚{L)“¦4¿æŸ°™ü“&Úe€/q3zÑçiÜwÙFêÄìlõ_Kʬ “t¤f™‘ú9úÀ8‘ÓòXЯIÏ}FdDHc0]Œùåˆ<34Ñc²=ÝÏ À5îÖös”nPU$ +fïà|kÈ/SÜeÂPŒ4âdÀu‚닾7 o52Êû ¹Cx;຺ªMŽœA*ìW€ýÁ©;áL ¢œM€Ç E) ía ¶‘}¤Æ©íLXX-°¨;àÊ <‡ªŸ{ÄþHV ¥;^PËôS/RЧ‡°hG®è{úÜÁð‹F™Ñ€Ò@~`öT+» +²aÔé¹…ø•’a5x™°ÿQi'ÜíÏG#,9²k{ÝaõZQ"Z_4ÎwùÖ¸¢ê->ì&9̾8+ +û­faºŸß‡?ØUtNÐÖÇ—–²€ØÚT­†;•6NøÝ0átÐ8Ýj¢µª8\7•ÆÄ4?¢¸e¯ËnØûsSqÂ_²¦©ìZª¸ ì4ûATÓ¶'Rª*a°A£æ‹Ê)‡Ë‚†E!öðâ$¿üÆË‹ŸÔЪì¬{j•È>f©QÏ5ìqÌUãB{ÁW£Ç«Qæëóx¬ºU‚#'Œühäv#áÆížþ¤2Îï »sqo§ì¾49¿Äª…-]ƒ[I„4žWCüD'4ݧ||ëQÎ`2ÈrÏ­à[Ã@.ìޱϨ%Q¾ÎJÑ€»çcT‡)4È]iÿîó;r‰j_}M[ÿ-xíýSb¼òÜÝö§FÕqåFŒól%î~Û;<&‚D€ÔжRóy5ÄÏÃÑF„sÉuÞoéG¤èÄ `k.̽«¢—îúC J¥xGBÅr{Ü4 ¶“8æðÇ`"ëÂ…uÓ窰fXÝ»Ú9—ÈõªÓj@áå·¨Ó@©Š·~~cLñ ß9B&ŠËp<žxíPâÖ -Å£~¶öµ‘á'nkE*PŽ÷ïX?·*‹Å÷£sác@")\+ßHö½è Ÿ™VO´ƒó€d[eôÈE^Çmu!¦ñ")rŮĸj“ëyVCCÇ`¶aˆ3l˜RötúH +‡¶«LÓ󜤘h”†“bkçÑ¹Ø ] ~ûçXòÕÖö«’±¾Úû&æe„è™—. ëlª3Õ/.ynvÔë»Ý¶)X¤L—}} ·]BðŸ‚*z¨v½5übŠýÜWM™PÞN-·ý’qšR1Ô—'ICÞPýz÷SÔI"wçv€üÓ,–Ü´ÆN3˜\Ls4¤ÕIôSÇÂ…u´&¶g¤bº‰fR%Ô|Ý'sleZ²òýÜÜ5îÌU=Ý+ø±lÀøX….êóï">Ú#)> ݨŽ3ëøw;ŸÂÀ͵׵гOìÂý{âs¯å§hüŽÇ|&xóZ7ã]+×ýg%Jl³â,F¹Øp«n¡øD@žÍ0öPßå@EN>3M€h. f%òfDÜM¹}#°ÚÁ0Â@Þ Žá;¤ºq¸§ƒž³f¯hx>zËÊ=0ÓÐTÓeo/Í\s=Îf¸1à‹Òñ^Iˆ‡ž0äsHß¿Ÿ¨#³ç3p› ¯‰‰ÔžáŸ%cE¨!¶K3¹Rc§LÚ‡ZC + þ~ç¸Jõ£!¨ÜíQ®òêmİú9VOIÉ·H!ÛMJ‘T d@®újð¢¨Óî)8DeÒx}« +~‡¨½Üë^ ý[Hè¢eLËB¯cùÜ ½´¦йªé4µ¬?>a.'ïàU&ê½§"ÿÞ#K¯9ó2¾8ŽW' qgäÒÚ‰M>ˆ·2ê±e:Š _ôÊ!Æ?½Ÿ=¬’“Kr?IP,¹|D¦jß\ tcÒAŽbg»åª¢YBÒ©Š¼‡H­é˜,Éôˆ²ª 9&/Kª¨Êˆj”ÈyøÈrs¦F;J_grܽ¤Èz=p¾(Ù7ŠBGHô­ÛÄDÁûˆ2æc&ÂCÃ Š¤KÀ¹zÂ÷Dî¼Á¥ñƒéF¦ã穱æVÓ»{N,R›Ó¸£¼â |ZÚ_ßÂK´{Q}‹óøÞâɶód_oäç^Ä×°·&÷G×@.kÆe=‡«¦Æˆ‰c¹ŽèåqÇFø±|îðûS²5cˆ_ŠsôÛa(í±RÚS$¼ „*å:+Èùí Å@û{«JmQDh‰Û!g%ov ujÒXêýíó”©GRæl°Þ:¡,ÛO­¯DQ‘HÅ:åsŒ B÷ê3uŒ!f!ÏLœpmƒaÝ:˜wd%¯&7 y̲zí¬ ûc×¼PŽÓ·"c­»Ùô~äVÐJgŠ5|%` Sñ ŠrÇÅœ=dHâ”u´ãÉ’’Úôö8ÒÎä©Îx'þ $ÝwÊ*àf€ŸlúI÷›)#l ˜Ã‹¦ hÕ¾è1ØqˆC)ùº*¾÷šÇé‘E­B€ôWK‰ø¯DDý2BB²ò/ï ¿?¡O™:#ú¼÷Ú;—˜s€ž*²@¤²÷} éâŸ^©üPŽòÃÒ‹pÇMÅBûÛPïèŽû 1îç#"ôs׌Ð@zÃmë_žØŠ¼«æÑ£”vAöȯsÿZÜ¿kÄC§6»*Á<½Â‰vÏb9ÖJûî>¥Xcax…PMŒâYtŽ‘˜´±£D³{¤zo·kÒX±&1Ög‘»=rç<<Ø)ÎŒzO‰ÄQ!ÔQ»[Ìp¥‰™¥=GdqŹ!q"yú³†Äc +äl3ÚPƒâût’^¬}‚k{¾êq¤†tcÈwòÿÜK…bŒRsÑMò‰ÌÁ„ãµ®ZÒ:jI‚gÆ3×Ûç)Ä/ò|kC¸€%\Ús¤ÎͼƒÑ6”âlæPD±ØÏSö!ñÁAHV5Ò+]peApÉ<6Û9óì‘;BÎd2PS‰˜¿c™ÉʾŒüí½ÁýUŠ*ò[£N15ZhH÷€üðÑðЀڙ¾_àùTcÜ»2•×Á¼$÷Þ-àtƒê–tÊp§ðO`üäñ)N$5T×q³_¹IÜï²?ѤpEÑ® åO–F +wQ¼iʺÅp·!»!D*÷tKY\"{ ©ú:»ó fx¢ÚΟˆ ˆ„‘®ÂŠ{ÑìL† Uõo8Ÿ%hBsBæµbd.QuEÒô‹Ýå’[:ù¹qj,íÙ° Ʊª²ÝžùlK?Û?;¬r”Íßÿ.Nµ×é˜8Ÿ¦( šÚG®X6(*²ƒhGý®w(æ ©ù•°qÕ`é‹ìÖͽ©‘èòŠ7{Û<û×z%,µ€æˆÿ»ÎîoÇi+ªµä“i=ò»†(㋟W‘H}}î…@€*‡¼Ò+–f\R„‰Ö¼G{KYF¼q–Ff4¤ÎŽ–«@Ùk‹îëª*WÞÏý,Ã.ÚP56”éÚH9d•Ф鱳Ѳ~Dï¯ÚŸ¡ ë` T ¡`.P^dR Ö½"Ê,…u¯u¬=I°öߟ"Ëþ-Hè 8s¬$u{ÇŸ‚Ù{AÙ_ë°^"ðûhØÁ'ƒÆ†• +Ò[o"¯šb›¼ç™l-õóQô{âI$#c˰*…®÷Ô0û¸B7Ÿg0«Õx"Tc“‰·:úHÍùIö·’Qê‡9ÿã%ÀóPw’üP;fQˆ56ö˜;ê«ØjA#ã-ú«@†‹tãñÎtȾç3äPUdX3tU`õÍDÐ+(g;ÕÛm†ºñ¸’ó®”-òªU¤8" 5ÄdÉÿ «åý‡^%òcß^áÓ#… œr›/Ð_=•MDŠBAúÈÍî!de1Àž£Ü"hÝ +v%F¹dVÃt²Ñu;‚|ûÌ6ì^% Å3æ£Ü.$è÷ë =F·B$ε5¾ÁåyÚc¸ s³„zŽvç©OHÙïq:#)@Ëd‘âz-@H\-†sf}£¬Æ~.˜Šñ;Ävî½A; `^Ý¢ ÃÅÓ=w¼àmu»=¯µ#Ü«"Ú‘Ê'ædËÁn¸F,OÕ‰lt¼øXc@âï;ÚO¬Á+ZüûEEû~_YŠ]‹íEî¹$”aÕ® ãucr(ÞèRÖö-H”v÷¬ËTn‹Å7ŠUÅ9Bf—=ÌûZh£F‰GñÄ­Û?"J¹/Ù,1)rF·‰a¿N@Ô¢oyw¦…FtàJ4<Ž-J€·À'ßa¶¾7‚-ÎRÛäµgÇt.‰:ãÚc*Ƥ‘g+¨)­È]{ž«.Úg.5ÐN­×Ë~Ä kðØ¦•Ë´ÎÄÞÄÛp¼ý66e`Å‘z?C»½U¼‚PSg°Ø +nÈâü°„¨[¾}w©¦‡ 0euñ?)xxµÞ©¸œ"`e÷p&päFÑIlÈ[¢;ê¤Uâ2(Çñ¦ðþ*Z-¡V¦è0je—²‹Î±àÓ½ºJ–ãç¦rôT犀_ Õt-;„жԳüÍXÞpPš—uØXâlÔܨ^¶@‡¨ÐÍ;L26ôè5Û#“i7Î ”}#+þª%*ÀÏsÇ‹qØK;4%¦éQ{Tëôøt£ØwزæéÁ h*¡ÄÕjÃŒ¼Ì¸Ëa&ïïco5½1ƒïkQ¥Ì#²Mæ(÷êXlƒy†ÉC6@5Úœü:*z@?¯§Ý‚² e£€‚}œ•ºO ¾¯ß^èé †U8Ýb.é®Pó)µ¾kÐ|Y±H5Ow‹|´g\Õçå™XUã!0È=j®Æ [Ô¦õi oq¼D¯Ü?\fp 4¥>ìQýeëÜ]¢ÜÝÑâñ;÷(¯7Ç€+ ‘˜¸x×¹<ÑíŒÃX?ƶdD‘Þ”.îZò é ‚/ôG°òƒÞI»]q†8_”F@ÎËÄRöZˆ¯¯Jæq‰ñ#í›’þl¼ÿû ^T;‘ŠqJ +:b'°ÀÉÅ…'°Û"͉€(踽ã:ª½@³ +Îÿ¤vJùá„ N$>``ŸÐÇÒà¨D>B!âÝ£€8þÕ(ì†u¿…Ùç¡ðˆvBÞ´zR5$³ÿt}Ü¡xy p=÷½#æeðÈMäÙUóKºèÐ.9aÏr 30G¤ªHgÒÎŒÌè‰"&ù·„`f0+€Á‘Õ@ô¾ÿ4® ¯«zjç!‚|ø:Q4o ?É~>60âË éßXÔÛx¯ÉY”ò5[ß/˜¥ž‘¡QIcÁz§LeQŽ&<;}=aªÌ¬ŸÂ+·˜¤ <í7Y«Î:b¹Ì#?i쇜§ZÎn% Ý®1˜K %µýåJÚ›Õðn/¡´up·Á”úéãiP¡Ž£Q«" \!åq×Xö½ñlq²É>«¡>fàDm¤?(ÖhC3"®ýr€ýøŽeÐO½æ³·¤Ê%‘ÑøS4Ži*@‡U,)ùIŠÁ·p50¨6£Ò”„ FW=9‹u ‘ÑÈ’ŠHÆãh5ý–ädÔ_XR'öe]øD׳^!Ÿ‡oìpðæbÊ¡)î£Ø‚°è S®XH¤#z©7 žÃŘ‚§¼á\ ÿ6ÙeÏXÄAv ¶W#~J?EUÃ_†‰u@IÿQF™ÐYÎp±?.¦eÞ=g8?×"÷¾4^ŒšŒ˜1a.^z°9@yW?‚³9g ¹!É ‚ÐÓk#À£bƒLñÞ¥Ž +$òœäÛÀà>ƒH,¹-°ÑE aν¶­›ÊÉga1Oêφ@šHøÁœá3ŒÛ +R¨Ôì†yn°ÒͧʑFì8T†\J0ÌH,ì›BŽìúnPÏš'u)‘ 0óT ÜÞ\ÓlaFR.ÇŒüJ„;‡²Fþ}°Êšé¯æ|÷˜¢úLˆÏ|:TaßyD&ÐÏ­- èž™ØO?ö):Hì7´¿–I +¥à·&Ÿ.“Ïž2Yëå×3g6‘ì§âP·x¥Æ(ÛÓw­^Ë +£ûÖcÞ²&‚Œû'PÂ)> Jƒ!YÇ’óT»ižwè@øF +\R3ÎãlÝ’Óõ~‰îÄŠœ`‘väÔåcÃø¦ôííü¢|ÌùÔæ—ÂY#Q–/M×ÎʦÕÖ{^ÙéŽ>ëTïP@ç¬)±¬jêÚ²Š–Éëu¿ªŠ{oÈðÜ*‚dq˜GF´mÏÈ-™"+ä¥;•ý,tdO/B>˜]`@;œ"5Ù¾;¬$ïJÀ¢Ù\bÐʼœ˜ièe’B‹\$QWŠ0êø„—YX/Ù*T¸IƒOxͧ¼ß¡²âŒZ4_Æ!2ÆÆFH݃~IÃû-G±"y¯§Zƒ'õ>õ3NЏ¿E·@ë…Š[îÁø‘ÀyITlþàk™h 0iêÝ@—I0AYʆ立w¿IÊò‹òyb_A=~ŸØ~•‹t°n‰8Ãec¼b¤yg%K^Oˆ›ëßfläýïèA²¶lËòª +a;„`Kp2ŠÜWþ^Uq¼ªÈ%¶*GrD1÷©|dÄEë`ñ¸ð‚î úæpaè:è@÷}¹Þþ–*u88öådAYËáÕ¡_ZòT_`Ûdñ†´»v8˜/M>kYïj³ð°5oÁB]úrkRLC˜gm¯ãZ­ã¨ZQ¤cÖ»¹ãrÁþo‘°Ÿ !‘á­HH¶ ˆÞé(q2´P÷§r¾qjB3}‡æÓ¼¤CKã½;» ¨ßE坯…ì?÷ñø7)+þ&{ÞJ¨y¯Ì¹Ei$%†¥_5µÄµªµ5BMìÖ_l(Lßg„žXj&UUC’ +ØoÒ.ö‡šœ%C8 µ]&û• ¦þUXã`}ˆ€Ø'Rú{§ÞƒFÿ²} Ü\ÎãÞ¾O3å +Ý‚^X²ûöJÄò(‡ñ`zM­L`ÇÁaÍ7D/%2( +ôŽPƒ,?þ"±W bK1 ùÍïgo8³dZ-‡/œ«wQ!€ö‹ú,$äÅQò£ÚD‰¹fqŠä8¨SáŽQJe¯ üƒþ\| zÃ$w_zÒ„7ð;Ƨ¨.$Z÷ÀZLæKN_»hOÄy¢äðÉÍâ=úGKbçÝž"Ü<”vi×ýØ»ƒÞãUaH´-½ä.õ¹C>+Ú/ Ô,=ZÒXWžJâ³x¾ó´‚Ùì`¤b†>§ç+Î ë|ånï[ Ñ î½*×°›p˜6C/e–]vMã¹NÙL޲±D‡KŸnÎôG|™™ÉÕ"Ý_£j?3~ƒÔÓ6… V$ÑY•ê>Sÿ­ÿò™ü¦…à—+W˜€œBª+vAüý’õքȤܢ?ÑTÜ”Eëß固…WGj!üi°‚}¯&NštŠEø~3mÉ`‹œH @Ø_êòŒÌ®?8¶Kú’&õÚ¢e~×bÈ«õ G¬4k/ÞV °.Ë7ø +VMaê^·Xã©R‘0q½)-€ög+²£oNxØåvWäÙûj4Å^\"­#œ6Â,tO|Àæx—@`´­ÏÈŒÞ0sˆ‹M®)°ÊƒÒÇ~°O +±W@˜I4uËbBØE$!iÓ< Ø«–ÅL‘ñö|ûi°NîÂK¤ªØ9䵊}ÝPx½®|¤“pn33šÒ¡‹4p#Òâ!nƒ¹Ùqü8œ’èÈ}æ EЃ[ØYN@XƒSs + dH$UL²#0Ÿº·¯ÏQ ¬NÙSÝ:ü™/{iZUbÛ’¯Í ~>†xMû›K;{h!‹DRû8>É„ÝkxÄÒT£ìmïsŽÿùõ8£Ê=ôÐÀ‡ 8ðxÀ±Bìzš¸'°ö@ÌØåqÈÇwI<;Di*µžÛƒ4‹¾žžü$,FâV®v¬±·´ãœ‰u›’IÝc f›I7©q%ÚI¤s î5‹ZbZ”2DK×ðÿÖp>ÃùSü´ë½VÑÀÄ ¹M§æ¹î]OÑbÃÆDJ{Ê庾Ž+×|˜³ÒE kCjµÀi ãÑLf¸'ËY¢‰*“o *lw ÄÉäArz°íIE¶ûS‰(é$Î÷ fæ3‰PS{F •¢à>‰°ù ˜æÏ ö-4ÜžƒØ) Ÿ±Ú#œÒ—ýÅþ}¼~î;ó…1Ä·©l¥Z‰ðDA"¤‰D'ï‹ÎMÀ.U+]¸Ìe«-…øN˜£. QÖÉ@£ÃÄø6å‹x Ô,0͵…‡`k xx¯‘ò »XêÈ kƒØí=z?^ß©Ÿä#ubÒÊÜ!ðÿDò"0¨S¥ƒvNûÑö°¦Z޲bÖÑ¿$¿ +pôŠÌu#°‰3énMĉ`¤ƒVÝ÷ÙÃUG£uÄù¹/â¦×‹æMºƒÂÑ> z¶ `L€@âNG\.4aùpâñ0Q ®¾‚MÜ¡îÔÑr½Lõó•ßBGÂ%Õ%¬RÒ,W”=²Ç •)Ñ!R˘*ˆ_ê/ÙЕW +Å=>¡ª`@ѺÕ5’‘UrÛ±YŸB£Ìc†V#ÔûB‹dÄãyÏïÕMv¯Ù, thðe…ˆ‰w&Ò0[êµxG€ö¸EÝùÇø\äxYD$v‘zA¥Ó¼ ðD$€étÍ‹J”¨),)3d +ó ‘X‡Î9j®©Ÿµ&À»=TÖ=ÐaÛ«ˆ=÷ ,¢O0Ïq5Mß³§èz–ɉ>åÌbXJm宦L4j žs•°Éý6†5Ë5CW‘kÁÔ´¥)8nS¼ÛÃ놲Féqwräýä郮h´ ­Å?/ýW ÆBö€b*Ø…’Ü.D;\܈.2³üŒàŸ6¬%í®[y$ùt·åp’x°ÜàVòL~)Þ¢Ž•°uÂÇ2í÷Ö¹cÍ ¯àÀè¡«ZÝAKú¸¦ —g*T@¨I¦z`i¬ @®ÑIXX?§¡wˆ0ÑN‡Ä"Ãj¸Ò‡]©°ƒÆŽ.«[q8´X˜NbK==rÊYt•^­â™{ˆÈò€Ü:†1ÇjùëȰU Y#–Dë*-0\H:Å,Ù*_Ì iÒ1I¼U+I†…A¦æï ®í®Á&­L©Üj{‹jû+Ô^ª©üWh“F¶2WÐ#~×e¸´©Þv1»°”ɧhò°¤N3j"n™Ð3EdG²ÒâÕ†™>kª{ájôÀ`GšBÝË=°ÊžŽÁ¶¬ÁšUúýØBšãp6ýº›4R «…VqÌ(®œĉ÷<®î =ä~àÿûÝ ¬‡ï^}EãtTÑH¨7Èw5>×ÁgØ=:)n"pã5(š,Í×<AN”°‰1 Øë´Æ +ÉëÀ¼ÚaÕêÏ·°ÿ¬Žx/(…d“;x§ æ*å;¼ªuÅíÕµÍumŽÉ]ƒMÂô¨øK¢` ¶Ò=á^ X®¼6}‹w(=¯Òl1‡8бˆ…*ÊåK]Á¢PœÃ +º¶µ`üi.m;|Ôs’Òç‡|­ç`Ô§´1™Ñ†.òßý›ÀO+׆G‚*x*²AFQ@ý¢z´ƒÔ¬ïqXBÊÛQ_ ¨õîìu‚Láìu檪”u£ÝµŸEW­Ý¤‚™o5€ +U@qF0´l¦Œ6Ë–à08±D=?\‹@ÐÔüheì[ZˆÈù‚$—Á¾Z2^ìÁ©vF4ì$óY_Ys +³æýÚÍcO%XÃ-eCÁY!±éL5{ì“Ø÷&ú‰|–ÅÁKQT +Û™>¼µixV +b ä¸Ã4_ç•N¡âÈUçŠà(¦àXM3J¼ëŽÓjêïÏÖO<ú¨ª\Ù=…‘‹CJª†jêÁ²ª0P +å…õÊD´Ê£¡5Ã&OóÀê¡ß¶Ò¾$Kò®dÿ´ƒäÀRÎe}˧\3kßòŠÒ")ˆÇ¢†r•?>‹ÛŠæ¼vy”^9·¨;|.¾ÿ–…ý÷WMgþ•ú7—øßî-"«ßY] ÀKP( êÐ@Vóšî^ËŒêç^B§…P&êw'“?§+án‘YˆŸŒÛe+8œd¡äQôt£¶PÔ <©FÊK£ø»Ãtâ[+½÷;9è¥x’@>@q˜4_ØÃ‚/„ÕUì«ÇKL¾ÝF^Zå_*c6UÒÀk‡55~ ÑwÃ~ç”5{h4²Ÿ§R$«ÀÖ%kƒª5eø½7­˜ã(W7©èV8̽ž|OWy¬Ðûçéöó­±ïÞ"*³0„-•‚êV£á +2Ý}^0²¸„Ö¬2åïFÊæ­áOÿscCl +˜‚Ó^ˆ‘¢Eµ©¢Â¾é5 rÚ»ô8#ɰ½¤šE?ÅÛˆ +ÈþM¨zq¼ýÿì·FP§ ¡°OþÖŒá!ò’#ÂQü\_¾ +IªGÎê@ån³sÖØ?Ï%ìyÜ/­Þâ^h ZáﺮÉDµ¢ÔJJú‹cAœ%|³hË|.yGøˆút›ùÕ›åÔiº™~÷­”ÎvIKªìù$å¨-/)@û‡>!’¥9ëUº0gzuù5È«Äz¨=ë"IÔ!ÕŽb–È+àÃs\NÓ¿¸òþ‹Æ¿Ò”îP\òs²„{Š`/Œ„‹< êwlÉ`]ñ.‹FõV‘Q¼éO¹„މ¹iMˆXN¯P•©¦ üjÌ,ZøVóN8‡S ²GòpJ^ÞÃEMC5²³OäòQ~fá–ªpü„DP+¦)0E½$a± ÙÂø–{n›Áh²å|•f• +F |OëzˆÉmþð10ŸYç)ªG%étô0Q¤N¡CV9VÞ"Š+ˆ_}]ÕU¼ðAw»QŽw7#I%'y¾Åeë›B|ô'ªéª@¡V4¦¦”¥dªÔH[^¡±beø·ÚðIGà"rÄ@ɺr3Ü$°þA6g¡ +Üö_Y?þ–ƒ d—q¾w+5D‚T ±ð“Ï8.LV¤TÀóZ·v÷ÍÜ'j䚆)éAH 0uH AøÅQ¯µæòQ‡OK¯¬!‚@ƒ.a[“dvAàlŽÄR°LMÔ‡šžÑåÆŸÎ1’‚ó‘©¾ÅadÖÑ#›¡‘ÏÙ›WˆÎZ(ùÐqǤŒP.Àw™ z?÷ˆð´ŸJ|w‹ŸzIu–ж–X…FúP7d<¥,EÝžc‰Ní*пèÕ9Ssgx•ÚéáKÚ® +¤ÒÜ»G;Jà—®=2kP/•§Áù¼’Dý$È‘Ž’ç)_’™7§ï•D%Ž”Åé@{ô¥!j3%ÎÕrWàpΗ¬þŠI¼Ópˆ²D52½Ù—Ê 'Qn}^”ÌÉ q˜îQ¬^zƒþt+”÷u•Ñ?Ö*f¬?MÞ;}ÐD‚ßÑ‘;éºUÉÙ¤½á–{zº?ßÍU£5öSÈÞÓ=0lUÒ… ö:”Y±Â޽•bϸ)Úýfš8ýÔã÷'q*‹±r¥?÷’Ž˜ÂNÖ Ç¿,$3g vwiî·ó}°( [ž89kL•ÀE´ D´²€Âoàªùù”˜]ç™GƼ'H¡­±‡cVIˆåJ‘AEºÉõðˆ¶TM© MÌ£Òfì-å3»÷¢€ÇJãu"èè5DÆ‘„èÑ ²¥Ç‚»²¤_zŒcøË.´aA1.Ëqæ}‚ôrúmgÜ-(úá‹–)´P5;Gê;ê@ä)*qË•÷Û·¼ç«5\Þ¨9õç¾×Ÿ{ôfÏÀ}šçÞCâžU¹lTBGTBŸ+å¯iϦ÷ß:ÄTu¼fÐæ¡ôvêšnë;þaAA! ·PoB8+…ôÖK{"’³yÿa#DnIÌcÁ).kJkê’Y=9„©~¥0®¼JEêVt8ÍŠ;1³Ñ·…ÒÌüC±È·Bð$j@"Ú%ð칇ûã™ØLÌðf õ/ô®n‚\xDÆã/¤ÉBЋº±Œ)< ;› ‰u&Ã/‚„ ùý0…ã)­… œI>!¤*\»À €®wjÖÏsäÍŠCRêZ¿Qô`/φrÇ@Rd°zÔ`UE–­ÁŠš¡Ïêvd\^TzTõ» Ö%i'ddƒ]/쬰t†)h€ ;©²àGEÞ†.Ä·_‘~ËmE»œÝÏîÜ2”È“-W°Cmè„í‡ÑR>5«AiÂŒ³Ve¦ãÌú!lv¤íñ?™ÏidE£E÷¤3R‚J¡r8Cj¥ugÈ”øÆ¼][JÜæŽb‰" œ6y×õ]‘ˆ(ø³Û°¿Y^(~5 Ýé Ò!Ü (ƒ3¨ù²iGð«÷+{ÖDýÐ@óÀh 램±n©”°ÊYÂS,á``¡7ñ•åÀ³ªiqE¢­ðõâ'Hš„ûkÅ)ܵ˜ç4¬câY#1Òóu¤Q[îî¼Áô`•×oõÏ%hca%PæâBس܂×sÓ ÄR˜ ÕZ ò+“!QS1{ÌÀ_‘1úh(wýŸÀãÖÙ(šÝ|ɇ6NÇ›e¤“D‹\·Y$ãéB(lVЗôa¾¦¬‰4÷X>»ÖaG.û4œp@jh õbœ[lìùÀB¶eª+ÉÆŽÓz¾èÑÈ4»vÖkXòE§tt~Õ9ŠûJ›Þ:“tŸ©y&a¡þ©á<¸9Ï<ø‹Æ¥ÌkTô«*xTðCL]É\L—Åσ­¼æ¢CVˆªxIÎg5¿ä &q©3þSú—6¼&4YÓȃž­ÓjÇ@žT¨V{Ÿ–zÏAA¦!\_w¬QT>uŒx¸0aÝ—xÂA5^‰L†jÌʦn¬ ¢ Ô]éâ_4ø ÉÄD xhÞæÚ4w%½…ºû]CÿáhnïK;ªóÔÝ5έ™ИòçÜÒ#‘|zoð7²Õ­_| 7г ØG­‚Ä+¤«ñò<ØïK,”ó &n› }uw8QµhGž1¸ì\“†:®¼5Ü\h䣷íç^¤TÏ”&òÔ6–/Ú‰•-H³A»bûùÀ¨ìÓB­U^9ð:n¡MñdËе»Ù3ÿbiÁ]CPïçï aíW!lòœE³¥X4ÃE¶¿tU?qx¸jèØÉΤƒFj3S´îØu*…fÉ-@ÔýL¯£-Ç)ˆ¹9E)~«yM°}Í×,ÙN|!ÙÛÑ­^–À=âÖâæ¹qV´\¼ÆfCP‘‘I‰ 5⹎9Êi8ë~|_Þ{=âÅбàŠï¨|²QøhhÚ Ï+Æxµ1§‘`³ZͦßÝuoûv…½]ˆH¿dߨ´‹aÍõ:Ѩ^8RVäõV°bÕãñ¨^åB„,lºiÌnÞgÝÃ…Úò”ÖGæf{ÎÀE‡w¨n"Ì–Ã{Ü£{·Ã[•:bðEî6yÿ̱ÒáÚ KÕÔZc[¿k€ïGž«Pâ9·Û¨$JI”µL'ñIŸÕh1¸ú•˜­°ÿqµp§€-Ê4€çÝG-WÿpÀ6µˆÑÞ<)"RÕ3¶isóÀ7zÀ7ja"¥ð'¤¨ÿý(Ћ øÔðû›“ÏîD³ûϽ Ý—EDYÎ4eêÄô¹ÇWÓö{/HP'÷$Yôc,Gýs÷ꡞ¿ÀøÀb4±¦6xmpùJùГvÌÕð;‡§zž1ö¨Ò‘ƒï äñ¤“Î^T›Yü +8R, ‘QQ}5¸g²»‹½e:RÍhÅåHõ¢¸r ›ßþùì}c·¾öªŸ/¾>T3!l/&õ”"²DbHl嶬IQÜ®ÞJ%Á·7ŽEï[è+2¸˜Ž^ð¶zé…]šy³ J¨SP +! /£G¸Eže xðý“³ +Ö7‰ŒðŽ="´`êÁnHôC†,Ý,²±}”¸/j´¨Jt±ÉÝW8­ŽvÝfATWòÊ!ÈNƒŽ×µÏ$(k'ì§X'¢ÁêÂÜ=\¨gð@æîwÿ$_îV÷@ဠ+w¤;œhW¿jÑw:õ-f(ÒËèCݟ䩺òWŒc7†OÐ ßlìñ­&C!k7¬i~¢Áz7¢<<"ÎsÙö6vMK§$Ž"ïueGG/KaÏ«¹ »ÙK÷–…ÍîÞ¦ -6{¨™©Ç¼Œ™mvW*€ÛxF¦¥I¨þRŠxû–䨂·^¦4É0¨šÏÉk$3ÝYµ÷ø<‡õP…÷Î)Ø\ñØø+\Ùƒ|%Jç‹=¶r~ïZg®77ù©q='cãb ‚ó$‘t ¥îóÐ!bOýRäëRC9Ù§WŠj$¯o…‚¤ÃJ™§Xýéóköz¨ß·ÍuÈ:ŽËe|ÀLKµh)v.‚¸G \Â>îŸna ÷.áQ [½¸Ð…½²Œ¨»Ù'È lÄG.Ë»÷þ‘Ñ6Ž!$¡ç@tü›j•ãÿ FÄî•8CŽŠX6W?Íj köÞ©ï5tTøfÝ'íüŽônÆ®½÷ˆÛv"‹·¯#L +¾ŽÄ/ž¨ªt± 0Jž÷>Ž{ÜÏâÓ8—Õâ²Fˆ²hÖD꣆îÊË¡EYü ý¢ñj À€>a“€Ñ€Ô:~ |<ùP S€?‰ÁÏìwÅHëÀ @ôäȈ-½­J(õ +*ÐÏ [iæÌÏi±·×?ýB2;y\©É™a‡z:IjÄwÓTëTúœýgö†¯£õã4À: -Ïmè":‰dö¢¬òN_Q7¸?×G¥,ñ̉~H9ƒ*7,ï¥Þ_¡¤,«Œ#²Hf7Trœ¨ûô«KøÜ¸¸B w‹>ŒgÉË…Ëâ8שŸIL%ñhä¨,ô)×’ý,~ì"åÀ¡ (£!b”=Gqmy·ç[p¿ á˜JC3YÝ©÷ÏŸXçnaìWµ‹T’ã³ì‚…Þ5ÎjœãõùëÍÒc-Á©l_‚l¡ÒÀ¾7%‰Í¡’Ã1\D„rsn¨„¿3iÊ”]mT(¼‡,.LI­¡8ŠKßžÏI¡B¦^×¥F6¬øÜ°µÃd]aòi¿ºU—é‹5|âVœ§ŒzWÎá2þt¬ùñÞµ2ZÜl-R¾ø|ÆOˆ±´"ȱqO//usõêôš]´ ¨²î¾ +2`·!á±¹W EEÄÉÙ!öq–…õ–g)¡†$B5JFœà0T‚^c¢VmÁN¦éGЫÈ]êºî";:ä]À+n7‡Uu´- LzI¿}œø,#Ín‰aÑ} éöÞ Ç!?Ÿ·Þ½N}ŸŠ&~)Â90B2ÞB¨V}oh‡æ@ÂÏ5³¤¿ÈîAß|//‚TŸÃ5{ü…å{¼ÂÔÀ›‚jW /`µ©m CB­˜˜ S×tÛ Bø·¦ÑŠèÂÓ1¼P€¤yžú{ÌögÞ`îT/:“Ñ:{ +™9Œgü&åó›Cê­êõKÛúsã +ý½rol¦ á| †hÀþ£õWCl|V,ßÝÐ@¸N‚ª ço(2XæqJ8L„亹79ÆØ<%ý@‡Øˆ%ùßs=a£3‰S-%”H-ñhYxpþæ._GÊó™N³z÷åƒ#…゚ä‡ë8¯ø)´6¬¦WÈ=¹·“Œ€çm×õ#ûÑðD<ô;íúýÏû x®¬.™jó!ˆÀ—Œ`ÂäzGbI½(p- U˜;)®a¸h>|”2²SBäMÞó©‘¡bHá ,¾*Õ:evyCD”|IÛ·^!z@m|îÞñ!ÿúûJÝŒœÈi£Ë¢ßŸ×ߊ,=GŸ\ÎÝy52)#A . 1S=’™rßÐÃ¥CÿRb šëí¾oÜPŸð¢ªVŽ º=R‰%EËå½dô€Ð~]ÿ-‹ð’ˆþ*‘è_y°„Rÿž"äülê·¿ù·ßþçÿøë'ËßþýüùçÿýíoþÃßþ·ßýå/ü§üéoÿÏOÿåwÿð?ýøóŸÿßO?ÿ¯ŸþÓþá/ÿùŸ~þ¿Ž“~ýÿþÇ?ÿñwùã~Ú§øÅÅ=¯+ø¾Óåß{¸ì3ö?+~Ôü§Æü=Š>Žˆt}+DzÀU°ߣ$ ­‹© ã":~ëE?Ú4’±*ªâd¯ˆ£GW÷s¡ýV£Ð3¶“uöpP–$õY¸•ÛŽ+íõ#‡BÞ‘pE‡5k«½DÅ÷¯IÓš=sa}Ë×Þ¬kI'„Ä+˜1,ÍM;±¬ÐA~Âd¢ÙSJz ”=ˆÁ9@ z”çtp|Ôd|×€†6™:‹/í¯!J0sMÓ™dŠÙdúŠðé±ÎjÞJsñV!3¾oÃÉöã–˜uï6p¼q»·‘«Öà SG~´&Åmc¯*•ujbûM~(¤øfƒçk˜Ï\KÚÇ +DiizÃìwàf?h¥øÎW=ú¦H+’JwG„5Ö39‘u â¦,X(bwœ¾`… +ÝC ¬©Iž…ß8{bÙCbw`²äIxïšjéQ¿Î;þIâC¯½ë+ôb"Œ^¸üÀ°kç8ã4,ô˜ø:b4ˆ×MGµ‡àÈý¤¤€ÞÀè —*yôèÇ–’]ü¸>< 0k:@î¦Ã yî@[Ù=`ŽØãlÀv”³£K¶Y v]Ñ4’©}$n8HHšFíñ«Ý§AxP-æaUÅÊv}mko¾…{¿×˜Ö_ß!ÅBÁ 1s-*«.i»h™óÞ£ðûù€ÒÀy‘¿èÕÂÅ”0TM˜Ã@ÍwÄ—&Éy¿×d*pŸË§†øTûÊßBƒ†Ñ¶ßàꢤËz ‹Š»)€Ú MtvgÈf…å”Œê»ô¶åoÕ8z£­0ÊËkIQƒOèíJÑ¥“Ý£®ƒÂ¡—Œ! +°>é%bBÔŒ n”´:ËÑŽ¾š„©i{¯¸3õqS耒]~Ú-Zs_vÀâÔÉ™WàɲƒRÍ“}Â`Uï dÖt÷—_ôèa[¼Gr¹’áï½Ðää<ÙžØ5´õ;¨m4òx7«Š4†Ï~ƒ-Ÿ:Ä+á&»¤¬ñvÃFÖ¦fyŒžá¾¾º·1AïÙã½¹$<;!vëbþ@êÀ½OT^‘ˆ{¹8¦¨•Òm‹5GÀ#‹ƒzÐÈ‚;j ++S­²ïXd®©íì# ROÌŽ•P¯“_Ë ´V졺)LEjÓ3mуJ¦=°¢;¶s7g`yv¯ŒM (»½Vf‡ý³h‰½Êñ³Ùc¬nÌè±·oq-{_cºiÖèô$R îÔbÓµ(Ð0 +öøë“c1Ç SuÁö8 +‹°4kU ýsÏ´D7²c¥êýÅqšr9{m~¸Ó; !8gÝ‹YŠ(%/R’‘NnÂa¯Z®Lê·F;8äí ’N~«ÐÈlFLLDLèýzäucäà®5ªû²—îÚ¬¤ê÷ë·_}’Â-"5””d¦k*kN »„½/JÐ4ƒpîÕÑHÞž¡61ÄÒÉÞ$ít„Åȶý/Úö‚Ul먫ï…˜`{,sϘ·U{ô¡GgDâ zT’ô˜(÷¡«³Nn­­áp¤i&{)Ùº{­¬ø1vo3eTO¢U:zì—Ëû]K¨@wEgÝ}-éeîiÁyÞZ¥8ἂì£>¢„LúX"øÄ*Â* ù¸å@ÐH ó „`É…3ó„°3ø.ÞtoÛvp(„<Úäñ¾AÚoH÷`K3›ê1®Êò–$Üe÷PI¹©•¬j½ÛBvÞÏ>ë^¥—:ó9 +ØeOš Ø@*Å…^‡W‹kre)W1­U Ÿ—Ù B \ö`ÄÑcG>öà9,°d«=x¿BÞ3Ý51îûVæ°1[\Õ/u±áæD DD’{`øs$Ÿû¯½"?žWª¡£@¹lqA=(ZêÁ@¶æO§WK@”P”:Æu¢8sp—Ìqá*‘=GâÉäâŸr<ñJÐ¥níƒÆÌ3i#÷ ¢»y¢[p@MÉÿ½Dɘ§C0·Rä YúqØXaì7¯ŒÒžE€äî)aÍØÔ ëU{6`€ãïºÂ¿C–G‹r`¤´ØN¨°c’êSOuðE¿+ÊùÅqdí”Äv"‡V +‡$e Oˆ 9FwSõ³dåÌj+…dr7~GÏöpަ5½¨OÐÁ—ùAçáÀÕ]L‰†”˜?„Ñ +œê1îeõk¤Å$?jˆa¯*Ÿ!ûu¶-»ÇuÈN¡ŸGˆž:*,W~Zz1ËtdN<'êÎÏ^—³Õq6MfPjxt"Ìk²‹yPÖw6ò—¬9`KÈdÜ:dÃO(O!Ô”iH± pþ0bôzRé„$Å缇EÅ„<Fx¢ŠéïÅÈ ¸/¥CC`묣œÅ»‡Ì´CÁ3×…Ú÷= %&öí{ðEòžeJ‡RQ†²Tt_ˆô?у„=xnM‰[r;¤ÃlÄ35ˆk{ö{öq\¢ó¸>¶ +"[›G¥„Àöax†w± _m*ù¿õ(º\ð ±Ö¾gzëõ„’eÚyª ÜÙ“EúRV÷]3³ ;lCÿÑ´òÞ#²)TŒY 6ܾ8'“=IùB¹wõ‚L×{¹W… {Êž_ôBã#œÓ’³꾕 #ËЀS4¤Z[8`Vtéq[>ÙàV,Ý.pÊ9¦;ö %n né´„NÅŸGJµ8!*®‚qå•!튬%.©§vôS4Yn¿’.ð‚˜ßau>&å+KyKª$’q°¡äu›Œ¤ ì¯Òúö×)_E¨f”½…sNP{°ªŒ÷¡ƒâ`iƒ£„v,4>Vȧ®Ë¬iÒi)#—óP÷•¬‡Á.œÖ’íñÄJËeöàt˜ãHÐ"«!ûµœ'åëv^Ãí|Îøö~F~ü¾+V Hà>ýü×€kNÆ#kPôRV"ΰ­së7ºªxØ@LÜi…òn3.ÑŸ³ÅÞþ‹J+Îדøe#ÔK„IëQûA“™1 †¤€PÞ¡Ê\Ò·ŽQ™¯Æ‚„`|îáyÜ!+¶¯`Õûq’v˜ÇŽ&¾„ •roM~Ù€0ÏXåZW¼=ì5žcäÃqöA€‡ pk"CÖR%R`¶³EÜï&v:›\;+´™ÁO":ÁÊ|%É\o=üIØÁ“°ÌÕ¼Ô]<û¥#UÁIµ­’'-ó‹`•óý{úü\¿ì…ïáô~ùÑ•ê>@E%sTñ)B©÷ ÞHÚX`lÙÏíž îÐòžxÌB}>Pº(§†ÊŸ¤:° â2Þ: !„À3Ðòy½¶ÞzQf˜¾M)¨Â‡öç§¡Ÿ6)ïÈõP0ù¥ë½ÇjƒÍ—¾¼óïÇÁÔj¤»¼f{‹=¾–Rœ;Ú#À(jknšÊ{±.Ýæ9SГ—íÕ¬À|y—íáËMB„½m9rÕÌÁlÉéa©}ðœôÐHŒK^g²äIµn=z1ØvX)ÞУÀÇÂ5¥©4XÃÍc÷Ð)œ†£ÈºÔó›"h²Žw]Œý½Àöw>!%¸ç3Z ”ÆÁ›épÓÜwÏ3Øö­:ïºÉ/;ÄyØ®Ô/¾L\ÆVŸ½P‹ðœ =¥ +ŠK_õ8†Bûõ¾ÔÔ÷N(S©ÀŒü?¿‚iWŠ'l“˜˜#ÙïÝðWâ´Hf1j÷$x¸NB!¯o‡ (Ä +‰Req¡Í•ãÈà~ÑcFí мä­W%Ð òKIûHÖxLZ}+í¤n¤Âìi»#Í\¸{¸V¶¯Ÿ{ÜW3rƒuhÇö¹éÚ=EgÒµ ýc.¥ñ1{ªýÞ¸§jõ¦8?÷BOÞ—a‚âN ¾S‘u» ý¬ùþ¥Ùµ$ó›âúÔ#îX— ̺êõvœJ2­3yë‰p"±~"1îX}bÏ +Dd¬¿I‡xÐ3âGÒ8bæ±ÙG¡¹¿Žn¢È/)Ÿ™úšÙnÍ¡úr‚lšB¯Eæ‘úE/ÌUœ”cî'»âQPÕ¡ŸæƒßR$'8'q„eX ö¸f¦]? +fIߎT:IAœd{%xG]§åÀ’ËìEIY‰m¤¦RL‹$ÿsXÄ–å"™ýV}yœç¼M™­† öRzzj7ðÞcåÃ3U|´¾¢×O½ÚmªMD¢*ê¿‹½+äÒ[ÁŒ-ìºýI{a%æ«?zwPšò\îºÜn䆤ëéEÄÒq2E_ØHÝ£©º§ý{µAK{_ô@¬ªšM¹ùÆ™o½r¸¶ôB'v`”ˆD‡ðåaÁÐ-ÖýSp˯†×Þ!¸ 0ýúVUŽ·€d6˜ËrC ·ÉÀý„;,œl<.Õ*Ó¬QÏ—í¯ª—¹ ¨CéžNn'Ol[YW“´tNÆ­m®µ¤Òö´6ã"©âÕ:Þ{üþ–Ô¨iNHsóyïEzzôÞ`íõeĤbÝ‹¬ººÞo=¾Xß;·#AyáÞ0‰¥æ¾Ãjì¹÷B ‡TCmA™l¨±(ßÃFëRÄDé­=JŽfO€„DE) @Ø€8÷öà=©Ö¦¾ ¹„Lõ_¥Y\¿)Ïàùò­!ËJ^p±k5B–ÿ²¯ÜÈêÝ»g•ýT!¨àÔ¬#û€Ñùl¯†6‰”bgQµï·tJBdßY÷ž°ÙáÀD"<x¶fY8-˜«›3¢‘EŒF%WmTp9¬Ä¢‰2z°ý­wR^o=L¼Ú#i@á®óž‰­;½v´Àj\‰´±Ê?qœà‰^¹]öpÄìw­i¶ò\7%·Gy¶‡F( S…rS{{^€þM­½v#rÐEMz “d¸›rñÇÕ–G ‰3ê°.t³ZªÇés„èÿC¬"·R¥EìÔ£v /–$âÚÛMj^éTÙH³ÀN+º¦ÌhäÆ?²÷‹„&Uýe•èøœˆˆ¬>´øèã´šnÊöp– ïoB²b’3ƒbøß<bbXêÒK 3˜»QàwÂVlŒp@—Ób{øù&™„qžr•á\×'â÷8T•¾´”[Ò)úÙF£¦Èód÷3XíÚ™ÓW—EêAÚTz°ÉVgê~û©“1Áò +é1Ÿ“T"+­“¯®š†•d(¯.[SƒÕDDAIŒ@†¬}øç+L)\–Ð['èˆ{àaÛf…ÑHNü—;ЈeŽ‚R+ ®ˆY÷!b¦f •Úf"þžÚNé縨O´£ÿBÁ¡é~ƶðQôIˆŒ³"«iÔ½iŠ +Áë&ˆfà& ”³) —%ÄÝ«‘§—-˜IT2èwœ™Ä‚÷Ê7Í‚S gÞbó¨€3 @åí›íu¦n9VŽ|®'ûu÷6•ß웩ۻß`†>h·Aˆôžâ€—ŸãNÅS¸£[#ð*ÒÔËÕr‡7èña#“é§âKV«ôÊ‚µ{È£f]ÉGÚãÑD¡ƒ“}¢¨Òhd£MþÙ<‘…fÞÔº÷ ¢ÛÊo­§€Æì™â´—£P£<¯%v`l'†bô ‘Ÿ8¶¾œ”<=Àdxi$¾vC7¿HCÂJl·^À@q13>üIö®Â·v,»WÓDó»| øÉu/ló"ko£ä!°h=æx¢À¸ã3Ô¤ïÐP*Þ³‰‚GŽÊÌç†HÉ'1ŒïßþAȰiÀ×_šû9ÿG°‡õ÷<"/·mÎÈÒú$™L‹G»A (ð©h¨-²µÃ™QY÷Ï=â¡‘_Ý+Òþ'ëÙó~œ$bÃǪÞý\„¤EÕô½"6è©%’Åíctü¢×Xa©SŤìÃŒð—Æ€¢†a»÷3ðgS‡AžfL¡™\üü¸ëûfЋ%’NÖeLE˜‡"ƒv‡ŒT/@Ä!oÚmn>t Zë´³ˆp€¾Æë,Æ€jdižÚÇÛë­N¶ÓK—¤j ¸Ú"D‰¤þvùÝ„zû*´Ö×™LÜ1©bæÇI@Y¡„„K ÁóÑ”QÜò#-šÙ Ó(C±w®ïbZø¶½†0ÁÐ$ ¸Š7rx:¼õp´ù¾¿o½V„¬&}z?×;Ïõîø!¢ó½8eÊÔÄvôHûà ýÞã÷gÙe½§ÿv`Q€ø&ÜwzH»wH íàAY™€2Q'Æ0!õ9O€KÝy`J†5MéP6œ'Þ[äÃÛW=f͉æ!ª¿÷¢B¾oöÍý8{vST`ÝÎì“­ B‚ðÇà ÝZÖà «@ž½Ð¹-̈µ»Jª–zqŠâF!ç·=2ÏT§j§3máêÇ™bµD\«F¯‡P²Ô°µ3ìÂBÐ ž€YöCìž<»j®…-š=V¨§ë°o{@3V }”Št!tŽ]e753ú ¹ÊÒD†éGW v[UþÜ£HÜâ¼§Âû“ÞzµªTØ,g\ +ùÀ~ŸÂïÇΛJ†ƒøŽ¬3·ù­ÇïOÔ„ß­;¡=E~qœb-‰åO-~ÊÊ‚em$ç=vxq2›_´åÀàâÁ#d ­$¨ONÌ2"íÖ›·ùÁʤž²Lï··¯ ÆÊ‚áóQ Žç\RÙk\$I´=Ó²!ƒÖî¯é”÷ºÅ½®·Ê?mê{ÚØ7ÓI{,vÝØÑL-äàh0œíáƒðD6R ª=]é!µøž(fìSu.jö0’Éã0×Ѓ°?pê=pêä3é0™ODq>8MÔp9D;0éÖïÒ Ìòî”Â8THÑ,üˆ +DboÏav‚à…ÞÄÖu¯jí‹ȇzWÈâá÷^œDGH;QÒ­Æ^Z.%¸>¤6÷{U3Š zdÀ–øÜ#F]sŠÙï#B;õ‹ãÀ\ Š¼Ç"µ¢ð)û·¬Ú}™D %Þ\rfg·L@xÞž¯݆¾Ôƒ½‡§dÒò|ÅL8âS²¨[±CæWP”€l¹è““âÛ<òL±Ìý£øJŽÈ”©A;§Óä@a ë¢õMžjqÌÛÞ:ô©9} +|²å/;Õçˆ%°‡9´R ›ø1ïFÀ¾Ëަ®ôÉ{¯"!»H‘y4T +d?´•ýú–`>&æ©ïå¡’ÁÚO.z䦎Ü+Ì:rg(!–¸1й;œ(±À»úvˆüã (È]ì™ÖëDÓQõÝëlAS›‘…×'µ%²¹uD,Ê$Â{ôb¯¢3–îö U‘gÈè_ä)jVâqJ BS*Þ32à ýÍ]ÞU¡þûg ´­¿èAª´¾°§¿lÌ¡~Q…|CØ{ÒDDgZÙ£ìg:k +xcôX:9¾÷ˆ{ÊŒŒöjòåqÆ!ýÍ¢L3×'¢*«0^$zg› Ó纸ôËìYïõwçràfì^ëëN)8ÏÀöš:*²¢ö^œ—Ÿ*9y¿°HH}Ñ£i/™Ð >RP¿è…`²’Ú98 Ç${Ô áÓJ«L¬ìÑðîZL”¤¿èq÷gñH™Rµýâ8ë°G÷U»‹¹&„|@¸’Axëñyaލös/ôJd6,%B›)mŠNYMâ€L(† ½bǰçEœé‘a±l hɤhѦ³­ˆ4â(’?`*…<$mRjdƒ¨ó&-OS6Ü¡Wx c‡GKЈ!ä$§ÏŽeÑRvÏ Ðh€÷ùQ=­@ +[ý÷Ìü÷§ªVúBÄ­“O¤žû‘j.˜•Ù‹¸È%”avAÚ†-GßA¹òÏŸG¥EBCßàDoß>>fÄÓ„+FóZ<"ŽÉWÞ{°òj#·ØðïtØ×¯ì+1²O¦ ŒEƒKм´R8biÄŪž’@×`¢NÉ#€ÎKJ!Ð}üêN] >nCZQX@zÀå¯#þ.6P&þ;=C?ÿë\AXÞ*èŒLIVá;sf8ýp™(Â,çs†yI~7R‡ ?5²6ôø„BìèñâIQ Ø$ÜäDwz·Ï<(";ˆÜÉÅþ/  ”“€_cÖÍýÛÁu_‹|æhU1VQWÖàKÍq‘°Ì cÕ♽œØöÞq¯ýÝÃM&£¿Fô€ê®ÅFz"xöóœ ÍØ×¦3ÕÇšºŽ§Wp áåÆqp«¡GuTi2>lè”irú´à4íŸBÊçœÝ'UövhÊlçµØƒqbÇ9ð2(Ýr)ÆÓkÑeÁÆdE­.íúŠÙk†øŠýý°ë&|1xG{‘{G!pO??ŽRFÔkG°Òk[“Ȩ¤5D O¹« +V‰Ø‹(âÚ”¾×íãS‘dûQn£0²Un<7&â$ßt_j|ؽ³“[‹.bد“Õáë^=Rß °J`ÓƒÊ)yXö/梑Ný(#K§‘GÀ—eæ H?sBô`u-šØC´±né§bNp,á·±;›¦ïj;î|P²K ÈÓ „Árþ€SuzŠg* õÙÂΠáîWjÞ-;årد”Ë9ï^3cŸ@p®èËX¦)ä]?±#O$ @È. +{JûΰZán|A (89 §K‚¸ø¦˜—ö[lù{âÊJ6 ýÃ,ËÙB¶¬(¶E˜u2@G¶”Î ™7nëýP¤Ð–ÅL—ŸY˜öQþÏ; kn„ý‘Äöý{¡Fíÿ ‹X± FA@¶&› –· Ûj:67ÉPäéƒo›ŠIÄë:PCjí3:CÞ¦°¨é*‰Ù/ßŠÓ emqè¾ÒàEDîR—dÿ +‚àñöìýl±™¢‡ÔLÕ³&'"Ët:ßâd»é´& ëu¢Ç˜«UvîKÌëIÓX È&ŽˆkHÀöí`­¡ÚË“7zØOÞ¢$ªA©¤(wAÛjz›¹Ý¯暴ߨœf-;²lèÜ"’»tCmA/Þ¿W ]€Uüîj$\þÙך)ª$Ìëù +pVUÏ䬰ÒŸž‰‡Æ™X4¿¡ƒ¡ú¾±U^gaj(#÷¶¿ð‰d¹å‡n¢vÜÔá°–Î̬`ï;%O\{ºa#+b ý$•z¡ü…~ŰùÌ»(S(ßS_^jaà‚I}Ž*ˆ1­Á'Ã`fžYº}œzwYê§— i@‡È¬Ó‰T‡Ó÷# ÅëqzÀU¢Ga-ÄžÇ2”ãDþÔÝ¿_vXB'ÃsËA›¡ù3z@û2öíAgJ+Ó Õ h—¾ýœ”qÆŠú5_z‘–ˆã€ä8R™Ã9TDÔ+£Àµ °µŽòÅ>š(;³(I ÁQáC³¶ÔŒö&À@ çØý0ÔTXR1ÊR¯ÎW9®Z(Lº§ I)Ì‘žH8›îÝ–˜{ ˆK8)¼½Hw?Ð-#hÝ ÷7‚f׉÷Â:TèE¦/©÷Õ=18=p‡ôÕ$QäìƒôБ¾.éP7^gÚ8{‘v ÛO‡qëq¦sÄÀ š¿dGdÃñ´mÑafÂï•?xÖ‰°åÁž‡cœZBçÑÊ ý¦¼1›,C]Ó½^¥*ˆ§Ñ•8­%ˆün‹™ÀŒgäA5'g;:+i_ä  Þ§U6jLvX«D¥êÐyˆú%žrRŠ .@KP€¤0µ ²~»48¨ˆÔõªˆ*¤\0J@%UÑt6铸=28«3ƒÏçžißÏaN,`À&í¸¼©MZ‰(|h(%ÓßDž`‰<ûجúÚJ/’{ôÁøÃ!YCöžÔõ¼5‘(Åò9= Ý`8Gý„ú'„»éeÇwÅÑG•>âÆ³çÆ“r8pÆÂó@žkfŽývWnª²Ã…ývR|f¼ðÀ(@‰LˆÎØ3¯±5†#ló¤ê4HÏË‹ËyçùaY ÎC]L$:U”wØöŒ f¦Ó¼îpÀv‘vS(+YT±è(|lB *~U›-£ó‹ª!•ãöÃlIHC‘iA +g)a5B&P`$=¹ê$>AΙT[&oÇa¥.i”5„aæ}× JÃZ&õJåBrÚ({Û#ô*ª_„ì–ŠSø“ƒ/·„»×»ÃQ¯&`ðÚ! â~>âU$ ÿh™SÔ4"FË:-ÙQùN·HíEº˜]`†È€tó"Ê•DÚ +à¢2ú#a­5§çY*ˆxVàý÷¨jé̈÷OíEÇßAÈŠ'‡VeNcX°ÖàZ}»ÇûœŠTòÔ¹rÁ° ˆ(SYË3weéÒñ¡šIÚ?âd,D27„R.g;éà ¨E »sYü$ÒK 'J ¶¬þÂ%ï¯Gc-e/€êr²ÎÑàÇc†‡Ù–Ù=øTúŒýü¦Lš Ä]„p*Ÿåh˜Çeì[ P‹ÑÏ=Ðq¥Ë#2BøçòÊ/W­Þüш±=E‡¿®8‰ìG㬠+¦‹Ã¯Æ4¿å¦†½=.ÓEè%?')²ÐØ‹Žc±„V4ÅÐÇ {#æ¡§šî ~´ý²Ä~öá(ð(ÆÄcCI-¤¨ÛpŒ(a*§—Öäî…wXH+Ñ+ø ˜õˆðÜÕ²lÈ€@ΡwMF޹xj%D=$yBùd8“”«'2ÑGô +@¢´A÷k{ð¥8A5=‰q-¼ŠûŠSÈs>&Uí!DÌøx)$ÑÒ™U*.Kf¯,Äë£#ôM @Exq`Êî;>iÚ¦ô•4Lrûhù¨¦S-xÍ8…[Dæö†—ÌËPrU:?8ÀóŠúÇ‚vNèàŠ‘bv°iÙ·à /2ÙŒˆ©ùµ{¹¤—ÊkFˆ'©PñPkJ§ù`3Ìôô8r‹<º=xdôh/ý#D^“½ÈG/Þfzìðˆ+Íš^:¼.8SW¡GH(¬ ¢i¡Ý£ärY9D¾ž` )C›¶½ª±q!Ä6½´_ Ö€Ð9 ‰ÎAEaöÌ.J„Jˆ¼“ ˆdÚh0ÞC¿Ÿà ý~$úÄYú8•2(潟 ÍjÂDð÷ùƒµ×F;Ú%T–OcÞ ¾@[êg c-î9ÌÓ}0Òjfæ»b3\Jtx‰:Ÿ÷™UÀ%Á+!¨ÂÉ‚Ð[û£v6»®è”ŽY‹™ï©ê¡ÊCU1аWˆÃîQŽ>W”ö–%ØwŒÈ5(0¶·^ràÄ%I˜Ub$ßmP&1ÜfsɨØFú±/Ò~¨r@Œ|†5Íã@N&òÒÓœxžpÞ)ÄGŒó*™tß]uÅÄ H•¬$|h…s›ðÉÃZÈÃ_Æ&É‚ýNGYá)þ0MrL¥öddÐ;Ú+ãš¡>†åÈ{UJ +CWSˆ%Tbïácµg‘ƒ³ƒL̽XYÝ!¡Ì28?É @ožD$p'òÄØŸFêã¹D%^šCá +¢Çìë­wãqóÒ›X× ä„üÛà ñħ8f# ®V¹'"'I”y³Fj" Æžœ”ª¬š¹ LÉ¡ +Í5Æ{Lú£Å%¸?à5.»fZ+OÏùæ”,3yÝÞ1}‡àð‚lò²ÔéR7Ú@‰™>7NDtdââðW‰·Â2޶¾á7sÜ¥)à l¬‡©<ÙT÷'d±¨mƒ£á@àþœ­+<ŠFutÏQå…’a÷%šEÒ hö‚ëy±ú2öÊR€·Íøsþ ØtÕ#¿À6l¬,8Vþ#pЀ‚÷<”¬ l“o"¾«L|5Pcj×)AUë°°Îâ™KRr­´mdÇGFB†p>rºbH¯+’žCŸž!sÑÅæÚCAó·³D§Ø3Q?%2zIzÂ:òˆÅŒÕy²w +qôôP + EëT¨X5<…†Zq¢»îÞuxQò J#´aÈŽàKÈî‚RÌ N(üVUÌ‹YŸð†FqL–…[Òq5´³éf³GÏÑ’æ'sŽ­´raª¡ïá~$÷¦–”ûþ‰v£6‡\‚à–B Oª +d/ ÊUVÊe_JâƒýUâÒ‘¢‚µÃPæ=“äˆ J DX˜T`…¬v>ëXœfœ½cëz×Cz¡Èœ%o!M¨Âîåf‹È>2¡PŠD„kÉÚÍr’h¼þ*eô°t¤7_'ÒF¢áÕ„Û­‰yÞ5'Ÿ +wrõAkã“NÀ²Á,Ô#ÖÔÖUpÝ;ÖǪQwÝ2öxÇÉÔ­‘m¨+ +†Uv{ @ŒÑŠ€üžO{=„P ¯ Ýá¡…PÔ N3¬¾qð¡عÇ(¶L0òY7"U–ÍÄļ¼ïL6O0"™°wÎð#8?á!ƒ“% QÊrà‘e{õýÿ¬½Ë®-Kvž÷z‡Ó”Õ 32"22›öaaÃ[-B(Ñ€Kdš€ßÞñ}ÿȵO­¹Èª rϱ2çÌKĸü^|«9Š…·/úM¬ÓøX>Tþ3${NÃÐÌpããDÿ]A¼ôÑ(py$W£Àåc +×Ñt8Òštz¶fpL݆v€´ñ5‘Cä^-x¤(uúá„Q Ò¹GÛœµŽŽ.FÿX @)=€_cxV*{;;§cÊÖhÈRª<4"êæ’uT}´ÿþÀ’¶ }‡§¹ï¾~á£Øw´í:Ε8AçYŸ³"$¬ì¯)n˜zUDϯ3iãŽÌòÙf´ŒRdx ȇz DtE+õç»YäTNž€+_–ùëD´í“-áˆiÞ9ŒÐrh×=È5Px¸òŸ`ÔT5^™ÝÚ”œQá|8笧©ëÀBÑ4•öEƉDci‚öË;Bí3 ÂGó©VÃ|¢›&ocÊmQ¢Q ¿iAvwx²ªC¬‘¤QÅ"¯”PXŽVô棗Àí¢câú:®YT»Øôåx .`ŠUñÞ< qYXy hÒ¤’=É ‚ó¨8î3_U±çM"²bø B.+4ù6BnH‚gû„„SmßÖã Œû§‡…·„Z0µÊë§Ñ¦ÍúÀVÇ•nUЭ8Žß|éCo”¥Pðž1a ÅS+ÊYª=–µà€àÞ…cGvºâÞ왩4j¿M¸êdÉ«ë°_x@KÌó.({¡œ/Ûo·×[¦¼»Ìýú6 +þÛe£弇¢ôzp#‰iÊžŒ W‹72ÿzóqÄøYçOlkOõÁž WÄ=«×‹Ü{"Öþ»R@VYDð¡p>dNCƒf"XÎ".2GEøÏ*+\TôÕc…¿‚¦x;ØlÀ[ã ÉÁMõýSÚ3Ãsåéarñî‚€îe¤5¤g$¥Ø–Bç½£¦ŒQú›y¥. QJ_¢KC"Œ#.j#D ÛKòNËn#2?Þ;òuHIñÂ,x½¨‰ xÉDÑèoúñÅèÌÆ™‡F¼A‡yæ«ÐþÚ*ºFП&"›1tÝ+x¹ï%ý–ëÎÒ´!¸Ýw ú#Ç¢¡ãX u£¨2¼©³×®ÌVˆVà}$ýÑÛ…FÞ¡Â^ôÑ1‹‘ÈÀÞ™ê:¬ÇÐψfáøìÌe?r;…ù"œ… :J1ï>Þ6Óá†3…2Úwq!™$ û Úõ@¾5UBý÷°?uAo¢Q<¬_ôÒËp©ôó¥aÂ5âÝ3ÓãµtÒ!aPlp¯OHŽà 1QÚ׏þ‰T?`¬Þö÷zÅîàžà ´«twOèz¬#÷,–IÁ +œŸªüóMÀ1n(‡¼“ÑîõÞš+|yÍ”g^ì¡ð’PÜ,凜œÜhÌQ¢•¯Ú B' + ±­³Æ¥&úµSìÏìêBJ´ ½FîëÞ6oÕ`Œq„Ö/k®+9óÓÑ•@\æ~»0«°;èÇ]Äð«ˆádO‹Uç4B«&#’…E¹„ˆhŒ>Y`àÕ:WaÎá<f ö×Ö•.̯ƕÊ æaZ}•`I sGñ«Ü»Pþ~Ó¢Âðb¹,Ö‰J÷‘JqŠ9…Hþýë×QW†-SÝyzfЏ兼Dú‹¢{dÉÍýc S;Uûdq®¬’¼ÏJz +øé +¨øKC2?Às@o§¥Ì[¢x(ýÇKýd³£° jñ`ÙÞ¸í‰`ìÎ-–´:@’ˆéÃPªOõ:*ëžè™ËŽgTõt á×ù•MaÒa ÚÍ`Ì`4®»Â˜V*úÖ<«txÌÞ´!²Ë ¤¾›¶ñT¾‡j‡¿võ[Ó<Ä3Ó\¶~—ÊŽsK]"›S³q…ÜÔÑ×W ñö&¡¼±?ì¾öà +ŽDïvKPÁÕ«q¥‰ .Ë1Wf8‹StE1úË â_‡ ÐfÏIÍÕÁ¢œ.WŠqÞ’à{%BY +Ä AˆQ_Éü¢»X¿ÂŸpĤH‘#22#¨¦ +'€-»ôšF8£«Ilq½«b­æe[ˆ¬¼"Øwη؄¨ðÀdÒ6dÚÂ(Ò,ê¹T¿Y»/Y®’1ƒ˜Ò‘$à +¯‚%ÿp%B¨Žû.úK€¬ºøµ—Ãlé{‰U¥‚Øo óéìÃì¥YðÙ>®8Ê•-Ì~w¾~”o} ž±=¸^}³‡ÑµSø ˆä[ã@‹µÙ¦“FEI WµÉ>ñÎXn„©…¿éÙHRZdo$ñÖ¨Œ b³05ÃÞ©¼ À:eŠ0^º¢rS°`p5gÄÝ"®8žcýÉÍc+ì‰ +Œ¢Ùw0Q¶Â;©p‹âzd+›Ý¥‡Á =Œ3Zç’!wÀ~ÇFè9vÌþúhj'7–£Ó¨ýÂò¨-]ÑŒ` 'å"ìƒïˆ ΋gzBE¸4–Y€fÉ]Dº¿’ Â^%n•ª,NxI3’  +ðvPJk`ÞäVQ=`§*é~!mä¸ÔýzAæ/!áv¦d¾ h'´hdJ «L U£§E"ºž‘TW ¸ˆÄ,×K"á7‡Î¯3ù›ö™ÐÞÕéó2ÕÚy›¼§®km²[V C=h+mÕX¾ Ê7IjJ¼3ùÅþ{=pápì߈þ¨\s͘öK/ÌÜNÇ(‘EtK)ÎóÔ›UÆ.Hü‘È¥³ú‹@Ù™W<°ÕHYN•h}»Ó“-Kõ-f.ˆôN{_ˆÉ6ÂÎ3m¨²Ç×MYÑ:¼xhg€êAƒIhx¼¹îålP"àÔ¶:ÓZVk5¯_IKvIÀÂöQ_ äÀ#É~"ŽßšwZ¼¨eyIg‰çã]Ìz_™T)jøçúÔ4õÄóÍëUÄ?£ˆ/cªÝñ²lâ<"‰oy©6+HW›!k“ˆúc+‚Î,Çk@‹A* BôˆŠ&¿œÝ 'WŠïÉËl†V°wþ€¢‚è»|-—”ãtJXçÁM-Iz¢êÕ$cÙéQ]×§âphd‹ÚâÒ­æÌ•{™BûöØÃ瑜Ñ6Fß“IÈk“Ë\ƒåb¶½>¤$v¯ré(/ˆ ¤ýƒòþ%žµÜÇÕýó²UÅT‘·ïX¢%øAÙ¡$Ãbƒäì¹._j'A»ÁÜôV¦p=U +´­nj˜Õ,.ÖȽёEA ˜ZgQ0-êîïC ™"š‹ÖL^X†öå„ÁxG>Äsì'# +ñ¤§Ëã¨,¶c‚†çŠRðL_rÆÂcô#ãâÆ4¾Îä¬aGµë)Mb*€ÃIE¥é'Fý)dKãLH® +±-r³3¢ÇqÊÁºèÝ|[Ù<^Q.ta +•î]Òˆ×TüÞ¢šÂî69 +ÞԈ}ÀʈÜxõ«Ô‚É-/ÎÏ:W8ÐñŠÁ’ºJ´Ò}w¨B>BIxŸ&óìðk™=×™æÔLy¯1¸‚ø‡iÊ6iœÊžûˆ‚§Ôgfïh>%ûØùiH¶Ó=oAÒ˜ÚÄù–R ”ôKÊ?IÞFEQQ>Hß…2üR?Ð&eeQ Bí”q &bjt²X鮯DqæÁ•ä§ ¨‹ð>ÂòT-¹ãË €fÑ0ù.¢(W‰uì‹=^i÷‹íèbÌ{˜¤Ep}TÒ¤èWÉ3ìM¾€{kpëÁ¬‰-Ù_Iî#²ÏtŸžþF¿=?Æ(ùwC-2èÒ!@pT>ö#ܘ\pÞÓ| ¢%–?¨HÌîá€Û‚¸*Rµ0PBÕ•û÷»@¦ìmi2TfMxÿ +µu•SFÁPñº²¹µïR•ü©HÁY޼ºH½N|ˆè:-œ@íZÃÕ:óçÔ¿ +^&AkÍbA\+ÕÚ³v'"ã Óà×/°Í‡L̪¯1Ñ¿ÛQ@Ó÷q®ÌÐw¨ðDœ™ú7#ìáNñ9ôNôŽò&}]z¶?0ͽÎ]4Š8Lµ"' +¦å5˜ùówWL:Õ¯öÉgÔY²òÀ½¨`е¼šY;ÝA÷vQ+ÚTpÝf%÷[­"zEfãîãà Ïoªíý½#Üê´mØÒ˜?Düô´~F@uÔ™ä{¿MÜ\1b™ì<+(4(x\Ù^yŸ–+˜¯æ‰–Ü(Ô,î G²”¶¡YË“– `oöAm{±S]20j‘Bï×ZÒ)}IJ\Ý”duˆ˜4óhf¡‡@— (ÏÔdîIÓ÷}›ø]@Z•cÆ:K/ß½^ÃtóÏÙÍÿW¬j‚)eÉØ·„€ã.;‰²Lv^A;Pp&{Ýœî5ÁÓÒ8}gdòÈ/îQÎïš Þ^%¼;#ëñ‘öaxúŸÎí]Á¢Ý>îj‹/V¦“‹[Q‚Òä1ÔMä1ç+ÏB”â0ŒJ®D1r Š^‰Çqø/vì®TJyú¦Äo9#ûgÐ.]æù—±ì…>ØŠg½Ðâv k +y.“´¡ùÀ=ëŽT-׳h%FNXÈ8Ûž4]2áÁà¨j +U¬¥SÇï¸è‡ôÒßa‹«Ý`r/Ý\.ÝR0f»‚ª—»®naLä÷Kv¨–ÙJÓ™ÌbäLZxÐõ»_Ðël¼AIûŠoÌ<òçjCéÚf>Ї’Rí&„RôÑÄkÄáá4–Q^/åÜHæ¦ö0ØÏ3cƲ¢! æðÖ¨Âc¡ ¾à;ž‘Ûø¢\/óC=Ò&´é_V­¶Øy“  +Õk ™;Úæ±ø@»€•š;f®$C×[jßþ>X.è±J·ÿV¼éK¶°§‚Wn?¦¤Zy<ÑŠuæ8îNä~ñHãJ'B] ½¦QOD<ƒì6cΔf–ôSµáO‡úñ" 7R|ûª?¿•áÃ15h+ӻ█~T¯ÛSn¤TÁ·)Õ­17²E<ý&!¼·"ãYpXÿòKóû_ñE•‰¢*î©9Èœ¨MŽEäz1Á'‘ÆQÐ"²d‚ÆÂ44"7ç@”z JÊï‚ËUŠ}§~²Vû rb 8~A€´«à#–Žê-Ô‰Îðò8ÊÄôW¼M>XÔëƒÆBq|ÔŸ‚¥ÿôEAÃ(6 )•'”x]À…9˜àBIMJŒÑUwh¿jÒ\wô¶ˆÔQO¦W­ŸQTCC-nô +‰Xn|Ùf/3*fÑ#†ÿŠVdÖjsx¢nqñ&ƒÍ» +yʸoµ¡¹V\%vO„ûü¡_Î1ÔƒVd‰Ô?%¢½Ý^Ì',סLæ0¥KÓ­5ç#]0®Š!Oîe‰ [{i`íyŠÛñk\æŒêħþò«J¯‘ÁA“ q Òb©Õ+à<àñº·½’°ƒ”s›øßõãú¯•~ìÞ EzFäV[‚$Õ1‘®tíJj¾½ãz=ë‡ÏÎÛ]=àéV#â#ª¸};#®#ÁÈÏ‘áÜÊhìƒYú¬ <ó˜]•Ëþñ§š—D²f¢]::N!5/ + –ïb2éàøà +"RRþy8-ª|Dáåb¯u­çÒ;»8]´ÃÒ†[ºÌ‹ÔW¿Ä³† mÖc¯îxÏ4¢’ÈÈðq×”5E³ÉäW™¶ šÕdIé#*U¹¬Èf+Ø"C#G­ÿêä#Âu32h«(ã3Q ‡=Nüi%¯¥2´çÇ+7À­b›-¥ø¼ÏÙ]+$ĺ"—VpÒ2«É"ît+×^ý}í/mŽ?"Š¥ºwmlêÍùáN€,ɺöÓ®ù.ï@½û€Àô¤‘ðMûü÷,j¯6Šéâ’¿ÿµÉ›Ú–MÌóDgc¤½ n÷K(ð3 +‹Zf5O•äFÆòM8_5ýì}™ ?!ª¹+ÝáþçN«†̆ó$ {í§gÁù¥m´ã Ýá•—tßÜK*mzŠ}…Ž|+p°ÊÔ@õH s©ˆBgÊèá?À—®êâÙéW8k»ÝuÑõröses”]+z8޶‡ U}íö{Ù‡Ã%æH`»ËL¼ëvx´,XÇõ’õ¯ùò¡ÔlüÇoÿFŒÖLçŒøº$Ìó ½…ˆ×7Ç9|Sž}|YŠŒºóç¨$<ÌsŸ8×Hn9VMÓNm†ó.(­;5é6ÚTM¥(œ_ðÃhT±sERש.8f„ÉØ'ÏÂþñZ &þR.ô׬ 01—Ù©T§ªÔ"öÚeƒ (ûØ9²—£J“«Èºœ@µ~ëøpëm6K´Å¡4œf—”ÑÒþ›¨'#œW7è_½˜(ÏQª;8çD ´»ÏAÜf,H½¾_¬ézIÎ9ÆÝGÿ:yšµÂ=’òØ{‚‹+Òì©¿(tæióaÚ‹[Ÿ~0çøÉMý¥©K¨ßØ%“ÂŒK¨ÒŒ÷öÙTÞÙ¨ÛµsÔj“ÉmQÃî^ª z.B†ÏŒÞ + 0”ÌDÅñ“+•+ÀmC{@M%}»²ˆòn4·ÏW¿¿Ç*kG¡Õ’(Eí!ˆÜQP1"ô3k>=²Åí0c:Ô:2ÂùE{ý:bPDú>¬ZDñåzªÎ4C¶xDŹ—“¿=¥Å¿gÀßEä’=Î_zK3žÍŒ ͇Ö<…¨£`²Ç¿À„á†|@÷*¹È~¯êœ%jUÔóRh0"[Á¦,ÙçÖŽù”%¡®–™3Gzöùg¨êò^û~ç`†ÕŸÐs³¥ £’è K,((L`…û©‘¨ûÎYî;Ïúå¿xô3pÈ'Î\kcËΓs0t¤–œ škP¿âO¶k|æ,Ÿ~ÿ§ÂïQøC0cA™dáSÌe£/òØR}ˆ+:`jªö®ß>$ìÒZôÒd;%F‹tXcТÖÐO„þî°à”•Í;ó2âmר’3ÍåðF5hÜ 2Êú¾Ùà Çý@n㇈63•:óá¯ÆÃŸGé'²â'"“ø,_Ž]yi2°/òÉrª34Ò4ð©)ÞGÄûlEƒ·ë§(†ÚKIÚæÒ  +P¢ÅØäÅù—Ö͸^.ÉS<ª}Q^ ¶Vð—EþŽÞÜ"ÔËDœ¨X$" ŠÀŽ€XYürÎ#S‡DÁˆÈÓL››ßÑŽJö79_]3an1º\ÎõAØZP~4ɸc·…JæOy‘¯z‘¯þ‘[2âgÔ:"KwA3‰"!AæqH>ÐÎ/Êx‰Ì{.>"Î v…мr`ŸQhpkF"¥þ Eˆ®ä¾ÉPÐ38ºZ%²YÇ1’ÿˆÈ5#ã6?»JןÇ92žá{x“Ϭòüd’²ÇÏü 3× Àøó ħrí5zçµ¼6­Øø6fEwus o‘³²,FTooZ.žß#Þ÷Zå-öñ?‰2Iv¼=û…Âf` ÇOÖO-ž7÷Ù~µUŸ;‡eE‰Ù¢w²$v–*zÓS%s5>¡s8ªý㓽׶6ˆÈÅkÁ%XKóyœWí~ôxó­q$ßb/~Ö‹KA›8|9}Bǽ½DY/õ[òÿ/˜ˆ¬éSÃ'¤ä][«ÐKM§“-%o¦Þ!3Þ!oÑL”~w’~OŽc¾/"xæ8Ãw«ð’©c Ê?ùQxÊE r³<›‹ñÕflÑAFoß{qŠAŒ çÒ^ˆ>•m"SèV‡^:§oÂãŒùª€³îó+KéJRóóèW|RÞÁÔòDù±©ë­Z¢´”®?D´ÀTál¿ÐüϨ¡'߀ŽÉcÒB“À´P5ûîAQzÿÉ¢É'j¦Á™ú’ã<³¦ó¡.r§ÓHÿ¼„sr«Æe€€‰]¨ì2¼‚ƒ±'t/Þ( zѨzx¥¹Þxå½#盺®ËGÿ²Ÿ«d#~Ö¹#gîÈ,qÁ´BN¨:•b@8´Öิ1¦Ä|¶!؈Æû.Œ¬ vatëU„(½ gôKØñ>"f…š[ë-{>¢ÔÑUýÐ9âÐAýƒO7žŽ!ÍóOxùHуÔvK‡¯(Emx/Qjê{>´}Hgêí‰Êe4½Ú·d¯ßk¶0œYOxàö¢³Ü_;zç{Ý…] Òj} I3Ú|7ص¨·~øÓ;ÄÓa\•ò¦ßsÍ—·;º²¡GMdm¹Æ÷€·ÇoAì&]«á Rжƒ\Žë*Ù(ÆspøæÎÑd•»˜ö1?ì÷bÔhA·)r0~¨©ìEÜP¡½ß´Ô4¢Æ i@M ÈÓZTcòµ’†:)™QnöBêÔb:uÝÏênÑGÄ?V É•ûû‡S[Ë&­ÿ¥îAüseD±iïÝêÜPPA8ÌOj¯iÒJrEÔšo­œ.U¹Žc»ì‚ \«"Úªˆ•zS‰ C§úyÛn$ŒaB!â\è#hY£ûïqª¶9óïÐIÑ‚¿Ÿ|Ç“¶ ô^3¾Ž/sí’}=¹1Ø;Xî· Ñão¦R »J‘yCéÉ]_ ¯2ËF˜³ì’º†‚~.óoA¤màìË^ôYÔôkM6ÝêýðœqR¨ÁJTà^qÂIït?RgynÓÖ#Q Õ J˜Å€J­¸€#–÷ç ЃöÂJö>¿Ž«+îeÃÏ%<‘§â‘ù!@±3rF´UŒÁdÿ.'Ù£lUo)Fr—Tª["Ó©kNšÌ@’ä-~#þú +yÖ‘ÀHvW.öô›}Ò/G—/­š%'Êx¼ (§:Kˆ&A”<í‹SXãûŒÀçšâ½›wDc”g:¡(eãy?î 9}”"Ï®gÏoç¸ +¹‹hupØ%M]`QD•¶¿¡ÃŽyÏ× èˆJüqEA¯ø…8D‰…åÙC2¯ 9M7F)Ⱥ=·{¯²âÔç¹ +wº¿öñêÇ=w懼ðUƒ£ª…Ü8À +xÝC +‘Çf,7búewV+²C’Ö)‹›‡øÅ𠯽¤p{8Xˆ‡B­6¥]È#ì6½½¼,¢T] +¥A³Q3Q¯ˆòé/³ŒP—Y¿%E;®"F¬|ð#ûs¥‰ÞóÐA!F^4QKëÛuä<-²-µë©¤ÌGh\õMìl-@'ùªÛ*iÕ¾îŒ|™}y#pMàXý¤Öx#(X·¸gOæU#‚¯¨S¡5ðhÑø*•·íÙ~ª«mBu«5'B€2îº6#WmVëk¾ÿœ^þŠî ð Ùèõ'HéËÞVZt2ÀA;!ü†KïG„²`T{´‚“r|B7“fDWª®Ë‡w^}™†ùÉ#m$Ä߃\{>¸òÁ—A=«• ðcýðç< +PyçHÎdg §×¯î´¢ö¢Š¢Ò¯h…R£öØ®›Ð¼°bsoõkŸçé…˜.å¯HظÌÍRcœôTkèµÞ ‰ÎHÔ[©ÊiŽÖ¾¸ìÉZü7À ûpÀ’ý+í“e¥2 +ÙDFOè2qž iDÛ¤¸˜;æ××u‡!¯æÝþµ!8ŸèÄß^…iÎZå95Ty˜‹à|î’ýþAÞšïÌï?Ç´±$ð@¢èpvòôŸ>"¼3÷q¾ýÀ(Hð.8öùvÌ’y}âû û}$ºx3ìvd³„¿`4Ô•QõEò|F‰¤’6•þ™—:¥;Ô½¯2%b â"®2^A¨³€Xû{\ +táàˆ/R]‚¹ÎsŽÞóŽÍ겜¨á. +Cpé´'rèˆY£Hþˆ ¸L-6À§û'ìÓ¦„YûކÌq¼*kû½=Ó»Œ1w*|“Xjœ¢ \[†Ü&"Ôä0Ò·Fô$ÑS’ÇQHH¿ç¯ã߯è)‰!œ‹Ùóç:S­¥øGP¼âïY*î:qü1¦ìåUJ£qp¿« <*Ãáf:•h2¸/GŸË9 ²À¾÷³¨0Ç÷ôA_äïÊnRjZs‰%1̺ˆ:÷P&ùLÆ25Œ!7:Ks`ª\ûM¤ÇØŠºŇ(U~.m/èÌ÷q«ªüùÍÈ'+Ô^y_m„oQÛ ÷ÍÂPÞ +çãzÑç`—YÞ5•ÔYK±—ï_k.ahB9…ù8ÎÞ÷Ôš‚ÙzõéÎ#è.pfŒr¹wbÍåÞ7­N€`Ôʇôveè:M$uHŽÛ":AÚ>•÷iΉPêŒt7ˆ˜íkmj™¾¬ŒÈÒ·ÓæîÄ8‘'ʉÂãkN‰`½_¨v®üÇÓÿë vÕ‰ N“^7c ç¹ü(w÷¢'þÙ<«^„Nž·ih”ÖÆ¨¨-Ÿy•»|æ‘#KÆyJ•œI!úuwÁ<,bUbìŸ)¶ƒ<Š´óÇËù(jÅd6ðþ†î2ÞêÔb*š +8ŠU¬R<|Ð6c'B½C9Ôø-ð(+Ïxã-àøQ ?h×ÈŽ€è±AB QP,Yœ»a0ý{ÔBæÞ·ëèQU†Ù"ûÏÇ*c*Ú{@­1ó +ÇÿÅ€¹Œ©ðVv„z½ gb§~'?g”NRð>³ð½·àZzî?D´—âŠæä{W>£ŽÈ0ã)¸ž"^‡'~^*Neä‹¡#4.Ó3%o“kxÑNͶö[sÌ·¬¾2Ñã—#]e”ˆäˆ9ÇÓÊó<⇠c¼?{y[`û +ºRhfˆÚþ²\“^Í­£½v6Òò狌!…yo ­lkÿLAžÛ¡?êóïá¡H‰5EUé +ùWin´8VÀ+(Ò«¿×4Ò¸—ÖÜ?E`òz){ %ù¢H¿EͲ`÷¢ÅéÏÈ8iWY6ð’AwVȱþ‘3.«^ë$üí8Gñ™¯*÷Ûƒ"+h¶RZ1PÔ•gô¼÷òï«‚Ñ‚Z#ªký°£èpKàßÕ÷yÂ3©ûÒЙ0•hù0žƒHäDztkó3çŽ%^Áõ?´Žþ,êFçbqVºúS9]¶i–Z•MO·g¡È¸™‚1oׯIækí„¡eQV¥³ÅÐ#P<ÕS<+‚Æ`ŽÔ>7Ú´–¿Gµs†…‘w<÷î¸Ê, )ŠÒ³í¹Ç7éí\ål0ãl°^QÑǺ—nðÅ–1Në1µ(µÅÁØ·”VGý§Âw“"©¢¿â¸r.¾@æ@‚š~¨¿¶ý˜pÉ™“ÒOa|KýEA¨‡ôÞ±™Ø„¢OÞv©ã‡F=\ÚÔ×^ +õe +r‡aˆâð©ú»Ü£Ž§âìû‚?šØíw-ì©o/¨)XJ½ïQÈr¨…È­R®‡÷T b?‡rÜ÷C6|:²»:=µÌÅÿUÖéu@UÑ—úƒT³N=Îv­äžO¸ }•žñ¥ð¹;JK„Ê^Sÿ&àÞ)Ckêçk>ñ_DÞý5q~RñÿI:þ¿ð`Î÷óD{ÿÿ¸ÿë·ýßýöþÿôÉÚoÿýÿø÷ÿÿö¯ÿ‡û¿ý‡ø‡¿ûoÿåoÿíÿó·ÿËøOÿåoÿûÿúÿýíßÿ_û?ýÇÿôÿóûûÿ÷¿æ¤?ÿÅÿþwÿõïþÃ?üÝüÛ}Š?ûrÏ×7ø ªÿ+ÿ{?vûÇ\ûîü¨T`å«JpŸ&¢ˆ¯qíi1‹‘”»Ûù:×i1þ-JÉêÎ׈À(0fƒ…‡@;<h1#f¥’¼ë¢äÄoˆ"FÕ’Ñ©}ˆ ÜSë-PEø®!ê èÕÔØ8avqUÃx–úÝ;t¯•ñp{AüÈñ±3¥¨Ç¶…¯e±§r Æ#û؇9$yêø‘båŸÃ>C‹Š¥N`û‡·D\®‘Pëïj/­j/t&b A{$'˜#>v84¦T&Šò¹|!ºÏŠÿÞó©UŲ>îåNÛ¢ñ*úÞ]ƒ5íwu M@"ªÑÐÞ¯Nvô;ñ÷]×}¾a7d6à™3 µM¤íƒ>¿V?Ÿ†ô6áòÅÐ KDW©sa\^t5‡gùĈÎ)}‚BçºCû;ª¸" +b¢°THÔ º×.5šôøzÐY:±_Qôrqj’ç×™:H´§gé~¹a0w €L‘€~Þ ™’ð,è +5»Ç§wN3…º¡~3"Évd\€¥; 4«}2“yØG ßC㈶îõSÄ´â Þå{K¾G‘ê]`wèíÙ^9ƒt§/ ˜Ñj–¶ÿëkv ê!““ò-Àó¬«,xï¿ÅT{/q“^5k4ð æ( 1Á¤Öß#~zˆ?¢hjµÈ±K€NFöâMLä€ó;V`Øè#‰ú9ú1”RüÝ—¤dÏZ/»¢#¢‹ŽÓ:Í~¢Ñ ¡Ôæ^çnÊô2„4‡´\Ao˜¹û{ÀC?†v—J¹³Qžì¯wX‹#œzZªqR¯îQÒMC¹£/œNÁ‡.¼g§ÅK+F"È©evÝÓHÙDDèë)g™±Å»ÎD³„(”Ì[¶3è“lglÈ>0Ìgy×½>ØÖ‘;Å ÄXñÖI f_Ÿ.¢->Ó¨Ÿ\×OÇ¡×-R{è1Õ,wÂø,ùŠâ:IWS­BÿT‰QÐð F’öÌË( yÊÖûö0°?“:Áx!u‚Wù—S°7Yå¿[b»0!×Ú=p°ÿØô„Öƒͳj÷ð.U[¡×x×Í^ëæ‘ã# !Cé *Ú‹Ûƒ—Ó„bG1«u|Jˆ`p”ÆüDô;T +˜ù·¬q éSdÝ}78&ÚØš¾–ЊCÃYRÆ‚¡?vѽ¼Ý輓BHgñ»Ý®éÜ£rˆÎ‚÷~«.Ýè¬ñåujzß$Euå¼cÍ1Bºã„K­{Ï~o÷»3c7Ò üȇף÷¸[–l4<ûý¿zðýîžûƒ‚ŠéÌc U`)¹åð©é×á1ƒ%¨›8Ñž"Ç?éÀP÷¡Í5Tâ8—%‚‡ŽQ–=’ º +å{ }Àâ©RT¹†j~KþTù1¥åjºßYz¿íL*vÖKü—ß‘ßëüÏÖtž,ÜQS¹”!ÂNÿ¹¢ðø•"pÍHË12f¸.ÇÃðÔïà MiDÉÜ1Ž1°ÿnÊ7™›URÇ£ò׃ëF”‚(¤¹kòž_å=ßgEjïˆ[¾Äü›'__ûGŽ×°’õµi3Ie¡HU«Ô‘åÀ˜Å¿2R[0k¸¸©€CPþù{D +”$a¿”õûá8¾¦>~·ß×,-Ì­úŠT^,¦Áä'ë‹Lô›ï(Í?)ê2u1§3ÈŽÓëÑÞdCúR"{¨VÛ™ëÑößÙèø÷Y%>L«zkk‰2Õº$¬úç©_öGÇLsNüÊz\±äs-/üì€Ìî^µêaM)¤§˜Ûu9¦_,„cVÃ^é‹8á;6w÷…Ô¼\ÐgÀ:*Çœ¬ ¨Ð•W›sÆŠ·3 e>Gß^ƒ0PcT?Ÿ8´:Tgúˆ: Á>T|¿4·ÂîpÓÐŽ….Žz°AÝùN)sðùÛgD~SŒSÙ¡O´Ø>ƒË<‹-Ó Ó’tícTà>@¢½·âã³ù7 ‘ÞʈABƒ—x*½4±hë´ c2MU¯Ó59‡›Qâ,h±-ß©ûyÏQ´Ê;KùþÚ›ãÎÂÕ*«Ì*‹—RÊÞ³ØÉp°ÁåZx©Éåq ˆ<Ø®h!‚ÎÏ3ué?{±¥¢ZÓ kÜʤúY&øp5S¸ K]3¥øéç.RP¢ÁÃUv¸?5mü!B‚9®ÐÞœí3ê‰1àUwº§¾åÀнXŽã<äNÛ!ú=îàœï#"«Vm·ƒÏœÏǹõ8-Õº¹#? jÏœEòzÂÖ/TÿQ°èËÑBaAÆ +Phg'-©6Ïh%7žŸ¹͆³ÓøU6ö§‚4¸Fu¢¡‚å1Ø-Ï@ –%ì¤.|<(Wy¡KÉ]6—Þ›™´Ô»FvùJ‚³½£¶êÐŒßÉ©ãoL¦‡™•!ENÿû‰33ôߦR¿çfà'-|Ï6V+0ôä[ÍŸì*C¥º9RÝ€À (Å $=ç´ÃëÛWTó†´þæSm¨Ú{. •Ÿ ^O%œ aÁ*£ÚÌçóy#\èN´]¦ñP†œuŠÙoîø:<ÝsþÜáßv×8;4@~—Ak„ñÏ7°ÔáŒ~>;³Çƒ#u+VZÍCOF‹,%¹O¦´öRg`@""ÿÏçBo%'(/œåÑA,;%;ô[¸?“5‹Ð§°Ñ¨¸í'X°Ï]…#€9®Æüšf%­‘ϾwæãÖ«ôPSøÑEÆuGô/2ËQޤ0çf¾¸†$¡S­·¼v•Z >‰pß>Œßñ¨§*!ânÉÔì€i"üº¯•ã[Y£z*>|(ÉÌ7x°v$b\Š£0¡ýÞgå¨7ÑÚ|ùÖÔˆPu€C‘T*’mÈ2]#lnɯvët+±[¿!ÜÃ96%² Þ]QŸ}½'¸Šƒ¾æH¦ÖÒƒäqžàÔ<¨Ç¶ï#Cp¼ÃÞ´/èà62Ó]ôJÑí/é‹ùÑN¢ˆBèÖ¨ ü¦>ô¿eÂt 'L§{m/µ\²ì3Ôàh™_¦=Èèùë4e#+§‡W÷?pÁihv¬™ó#ž“ß!),BþQ=Ö×3â>ü÷+ï“= ß\R3z˜Ð–‡À”£œ‘Úþ‡°Êçúºþ!L8ôë¤ ¥FL™ŽGרï@BëÛÑ´|zPÑ–÷*iƒN;䌆T +ÄS»:½bÄËC:ˆ5Ëé96Ú«|Èð“J¿© «ÙÁçqÐnñîï×b®ØÖìkD¹Ý5&ýŒø¯?RIKWPOOìuŽÆ$æˆ + HPªtvQ>ÄM2Àøó€×O4ýõ‚X¾DþÂŽ>U/”‹JÆÝqËGóZ­Ó§ôž:Ï÷(ÑT¾P{åS5îf°úûˆ}7Ô IsŠÖ?#Þ§í²›BÏåj?gÆaÝ…ÈžS޽å\òtgŒJ;%ÃD¯F©›Å*$E“§–— ÄgX_ˆàýv –€8n#LQ¾œZ²áœÐöÚá„…ó÷DN?›Ww¢$yt$¤§ÇA‚¨iyODD¯õ>"LH)M[ý¤$N=¢K9S“dÞÎwFVkbš‡´>æ¡'=ž½íðqÄbQ%Û¶êaÓš·]c¨o¹I…Íþøã¡ßƒ6™WK‚ËæýÎÈÌüŒ8b” +Œê~WœïA߀¶m„±.ÝYš“ŠLÌ6ø•ȹì±Øûüþy®ÕôÅpiÌZþ³c<™^ó|Óáæ±Ÿô6~ŒX™#²‘¯{ò= +)\±û }®|ÛÇæÙNúêÞtå¥îtO/º!çgÄûj¦=ˆœï98O8zÛLƒ2nÌÿL]uJÏÂîâís~:Ê ófû®×ã7¥Íì âˆJ…·;yVýis}‹È%»#vLjÄûó8ÚF«Î`lT:6+ã§ê@~•Óù‹#>ÞÔâ”Eô”¾i> ü„å0¾íŠÚ!’§€1† A°*Îl„ºÆ‰­Ž‘q-#‡çëL2aí<’‚À6NCÅÖøþ÷O6ŒþŸÛ(þq~‡çì` +û6þ.pˆC‹zŠ&»bÞ“]¬“ÀjQÏ{„#øÃ¨¦™´,p}quÝÉ#F9TÔüŒH¶Ñ¤‡’ÎÐüá8]&õ ¶½ÑúI +Õz˜‹¸[ä´Bëý+…ý5¢ 91ľ’ +ÓZ¡·e%5ãPÇ/Î/YþÖ»|¬&kÞ«ÅïMÖvaí™(±ò'ηǙñkÇ>9ú¾" 0NÒT{ÈŒ§Zªýë¸nüíG´¦ì¼pÞò×¼¾žxùõVZCS§ºþtn‚èDÐlÙ_²läçvôôºsÓéØí(ÌW—t÷aY =Í;¢¼¦øFŒÆÄÞùSçLŸQ-ž“Ó„+³’P’å/¸"…ŽÃVšX"¼|=¶×Ä%‡IðþÊѵîèóµ,§'R÷LÔt¢ Ú)4­ +~|:¬{1CŽÇLò:4¿Eõ°Œ=m•ùÚ~ÍSå=e֚ߘ§Ï +@´$¾äN[¹ßþôÓ…P¸ÌñÃav•ìhÚ&¯ãÌÄ‹¢EѤˆŸöÄ TN({˜+´UvOtó÷Ö †öñÀ] ê¢X‰A!ú]S»b¬¡rö™i£×îXï0W¢ÉxêŒ8ö«(Vªm»GÌ'°qyi4B7œé bå\k(!ñ”cgµh.IøÎv•—(‡91È"ç>Ï×ÿh ©gífMë¿>£æ ã‡Xs[vž+åXÓÅLá*”b endstream endobj 27 0 obj <>stream +‡ÿ5âþôÕ/âÈf +rª/]` \çÏm’!—D§·¿Ky“ûR£"ž’ó‡×AÄ([{sˆ™ôHÌÇM¦s»wýÔŸÇ;¹#ÎQÎ6ŦíËöMÊÍ.`f"4T¥™3qzÖžÎü}roÛ‹¾ M1R"žñ|<^ø÷Î$ÖîX{e“:óIiÇ_EoÉ-*9É»Nût)âì’GñÆ79؆’‡AÇ*±¹OxŒ?´îÃÇºÓ æÛ@eP¿/-ý½4\úŠih„Ëì™;èµEd_ßû•J•§F‡žÚ5¥Þ鎺ŠÇÆ‚Íçë@7’ýÏ¥:½§‰­Á~i°øT›èO÷Ì:šŒ%Æ–y‰Y*hœ[\.Ðëû‘¸O¯àŠúú^[AÈ>ůxœ\cvÅŽ´l«;Ó£ ¸×?%¾ºŠ%3 EII‚)’.ÓãÚÄ vügÄÚh‚§˜ŸQ¸ËÀ#Ù 8ž :y&•º2åÀtÎyÝjIW!IXáÙÕ!Õ(—Ö3¼2÷ƒZh—cNÄ,G¯½™L˜Û}/ôƒÅ¸2²!ÐGÅaÕMŠxž¦¿yJÈOÂX[(%’>ÆD/mW•L1ø\ÕŒÞèŠ^‰˜™ºN9; +›ÆÉ¨œGêþgQ؉B>‚¨8GúmÊ6¤õ~×H–á*ÁsÈ_ÐyØÿñ”}Lد9ìQ„b w *ÑéÈQ oZ"XcßSu‹™Ñç~nرBÞFrQ'#/6ÈHæüv˜ëLX­«>D>GquÏ´@IÊN +]ÆÜh !ñecèîÅ`ÕJίÀ8öd>Y¯åã˜çÔ5Jaytfß7÷ɉ –q"}›žð üjô¼pêq)UÄú½Ëµyï€yâþÕÒåŸènÁRWÕªÒÆúà €®ÊC@T†3õá|âŸÓ1ûk¹ŸŽbèT4ñ‚Þ…²ú¬ËÈ÷Ò/±Êï²¹²-§¿ÿ~±e¿|÷Kz?ƒG.÷)".ú"<†ÎaþvMDOˆ&hh@V¤S¾÷œz‘¿Eäž]*¡=äºÖ~Ç[T‡l6õÚ ‚Qjoý€d@iüË×ÿŒÂ-šŽ‹_vÒûˆÆ=Ùö¨MŸö_¹›YAmøõëªß§ñ.­; .ñîð¡îAÜŸgE€†ëª1ð¹»gÊ)?Öº»irùu³˜Äø)_Æl'»ÞˆöÉ⎰ðÅÆS7¶¸3C  b¾ÜM¢lØÑ—ò–£¡dWà ¼—+¿^nöYé“Çä…5„Ú%¨ûí÷ˆÜšïiÛÇqÖ ä°Ãø~Fiû« ö²>|Föõú~ ¢>4aÝEÜõmW}[þ‰á£°ä™…™B2«ÅP”×@¿µÌIÉ|»ž,Ð;ÉG½nò ;h=¨ä¥ >ŠGÄ¿_‡ÐO÷É3Pë£ +5&g é;B™ ""æÚ×ý:“û$vê§Á—"‰<]_ƒÓœìtÉ©œ<Ó£æmQseðIıîÞÖëƒ8Å©/o"ÑV3Gzø;3CÍÙBªü«‘|~ˆ8ï0&Û¾6gý¢Ï(Ì’Ut9¹]lµN¡%¨™ñÎ앯Hʪ—¦âØ÷ˆ?U²¤Bx· +98Î.Œác‚$ÐGÅFåv‰@ýJ÷øÂ!|û¬x‹.cL>‡Êˆ¸øÌ€l,Ä7/²ïˆóåƇù[À×J_¼_ûã(¨¶ÈÒaå›"§ÎzàVbfãî2%Ñøêu­G®õëóMlb¢¤Õ…¸/Q‘~"‚æ,Rp-fÄðyçLæ4 ºÛSV Qß[ãn·j·ã­Õ.l]aAƒ&?H¹G­L Œ Ï»ýT#–Ï%ΤéÁè–cŒBGsmr&ý¦Œ[ÍQt`ÉdΙÚâ¶4½ü¦ˆ7›”ßλ® +ԜҔúR+à"%æªà°qZšÍw4›Åv\Øç=Îþ‘Z£49Yn¥ø¾g†Œ2“îq‘¤Œ"I~@­Ì#ÎÙÒIf9ß:Ç'0y»¸>„ѶU„ç qÊ›¬o\åj~ic²$/aí­)œÔ¤KÞʪn}†scTJFKK&bôÈÐI¥$mA +F·»aü}ùó|ï´ +OÆKÜŸGÑ„ºÅ„úÔí¥å¼dL¤>®`½wM;¯õ⪾G±6|ªÓ&ÐJ8?H¤«ä=‘]Òäëç¢ X®QÃ%¢}!éº: +üÚ›lÞ"ž}æzØ\L¬[+5q©],J HcôØCavQ,Ý_çÑL€ é×á¨Èh=Ý*¥[a±¡fLD @Ö#Ì;К;óôÃEC¿ú§ö0ªÅrU 2„ìŒþ¶ù€E^1‰™Å.Ïpü!bgob÷ñ!Ï׊;±°Òu}!°¡2ÁvD[fŒ8HÎÇgDN°’ö'ï‡ãì× \ð®ñ±Âóû ¡ÒrâI[§xË\ì-ï Òï·Aª˜ÏgÔ¿«ï“aâÎ%]þÞÁï¾G,ëÇ÷r¹â £¬öÅÖþüÑ<‹i´$ü=jQZD t%°’;&š÷§²,6„&8×7z?jÏ’Ò4ú>8…hvó¡\ÛŠ7zÚH_ŽÐŽËí½_¼öCÄ÷M9êïQˆ=Êe •›Ea˜ý9¸Â°‚Û—g<隤NÐ}¢E±¾„JåÓõÜ úñφFE¿„BG9©(pA›°s…஘sìáR‹Pµ “ »^ˆÉc£¨ Ê@i ºÉ®!ðúðDÏT…ºúRK©“½eÉAý÷5ÃŽÅ +Iò‘MO`£[Üc‘ë„tÇÂ’ äŸÉ\¥`Œµ>ÿ=Sš•.ÆAõøST¬í«cÎ֣Їt´WpäûˆÝ „Â+Ñð4¢§t·žL—°E¾o&_ðÀìCèu +Ža¿.×ñ½^vÍÓf›5¦ž`>5î <Ǹcœ=ª&†\X£>¿ýe”ß‹”‚ÿIDoðÎÿH7ïå¯AZ—F‡ ªpÜà.DsÿsE‰"*¶d¯!oóH/nÐôRùqCM¸Ì‰¢mŒÈÁ™cØ¥µ÷eX^LK™%÷xŽÖÿF'•Ô ¸53¤±KÃÊ=c]Ð}+FqËéÈ£B®d+oDŽÂLU:²®g;':ñëG?B†I©ÜŠT…ÅwÕÏùšêî—…¨eìñë([5<êàjZ©+ŠäðU®8"NÃûßQŒÉPœBð®á()6 +S&;oCwžu‘-öÑ_ŒCWuBi#¥)‘ŒIñVûhwoe¤ ð·€/¥S†Š{•Ž/ã©­ƒnZ”^PrâÅ®à¶;›ŸÒ²×‡NêJ °ÆŠû§=-J`AöHcWÉ.¦íT ÕµP<øXO[×_£]Y‹Ò™«ôÊ?WþTƒË{ñLÇãTÀö7 „ë×ÈØÃŒ×oM”R¾–]¦}wÙ6*b)ÿhˆ„2ŸroÜÔ^Êôî¼9•0[/F:€î)Mô.n à¼)+²Ä\`V mÚÒLÞ°/é:WX·ûMZoÎh\²ôN3ZöÓ™Âì@˜éþÀ™Õþ’‡ä ©Áè퇷Ljšu Æ«»,Õxuo(µS÷òÓÙ+ªÎ<Œvg¯d;ÎÄMãLä+¹PÓÝ£¦æSwµEå|l >°õ¿@æ6b·Ït¿æ¬ÐuE`·0¨i(Ÿø«ùµÂy@W1v€±µ–¸­–ÛëÒ–ølš8¼Üt0§aÇEÊÖÃOPÙ¢r"o&oÿ?z˜öó!ð}_£=ݸ¦ÂHžŠóºææ8`ð‹ëpËO»Î]9“¿u¿ûóeQàak&²×P¹Ê~Öq|Y®'¸’[Cz#lÛ¨qå‰àÖÂâg¨·?@ž N02Ì$ôæ’C+ôÕaxÈKC3û(ÝÜXò:ïjúêï}?Ë_LJþu!âbÿB\Ñ\=„ûÚ ùZý3„!¸ÅÐ@@XïUìŒyÓÔáÖ µ-™WŸ¬¨}yј÷Œä=ºaœwu¡¦VfäVjîdé{ÇŸªQäß©Hþù,íÍû~T\BRsï»ÿ2#û@R…òî}¯"ÎÓ›qWf8›Þ»`‡û¨‹¼þ«HEû®ì¥â Q =ˆZ8™íç&ê~1ù­m¶“1 ~>¤† ‡ùÙ¢ÁÒ=UñH„i(jÂôG 䣀Óð:P9‚¡õž)ÛH0‘Æ5m´¼êL<î‚™ïúë;š3Ý/Î. +Þˆ5¼bdmösS*ȹ®€RDgT4µéE “áq˜üäøýRE#W +ËØÉøqÕÒ1zfäûÚ:U÷ñB8Љ†;G—-r~UìhrÄ|•ðÀÞo*·ïœ«äæ«øÿ€ÕÅ¿²ñò“TßÐ'ŠPñü"Ïjôއ#‹xàáLaçtG„sÆä'g‚“¯¡Ý-Ū ;õ)¿¨þƒD.²³lð½Æ¦|Àóêmª`¹³ìõÂåZ èª)Ùc¸–Èw• z›1ÂòUKh˜’ößþòûñû_ñGôø S¨7Kpø JTÓ:úÏuI%®.ùoŸG\ÓXІîDŸ9Hà±”¦Ò$ ®‘ÜÔ»ë ŠáŸêLi5nm  +Ìs‰"7Èq¨†P°‚KOõÕ±r^=loßFH>†‰÷Bm‰ ŒÒØb¨&ôé\8e»Í$™•WU0 +Îߟ"zN~áì_ÅÙ•¼f¶¦=P똈FM$ŠÓT¶¯±7íýÞÉŠž¼iõüc ÐÌWä«÷ñêù>¢Šµ£.¿Q´ôà tÛ@á%6F¨ór Zd£¡¶ "Ì!Z×â—ñœ¿NDÉ6Ämæë(º‰…˘9Ñy¼~O-~OgË/1™(Rf 6¢£±ïÄÝ~1¨a™Btæ*Ú®cÉaÓ¾§iO +ŽÉ%š³Qö/ëTÚqn¯‹1pt6Ç^ ]÷½°Waôl3k 9ò²SÐðºw&dÜÂñÞBu¯k^Ôsyvj»S£i£²l…k¾ã•âàrÅ2Ú¾Ëdô ÑKíÁj«:bëyÏDî .â¹âÌ ŒæH ä.À!.o§ú…¦¢½Éˆ‡›4ã^ø¦oWÒßþ½1’cIJá£6ó€ª÷‚ß1Vq|0G +4Çôu'«Ó ƒeèc¦|ï…é/÷|ÆK `ÅEÓÜ@äՠ׎fÒz¥‰XY± t*‡”þʰy¤/4A‡jòVý‘t9¢cVRG¬²3ñÈ; ‰ò5IóôH.¹ÿî¯9¥Â ] ×2ˆ_4{̦/-uc Ôšä‡ÚÆŽ7u°ÐZž€´£½ÚÓ&ì ¦’ Ò&ª w„ZÓyyö“‰#™RãVÊÅÐð^‘¨ª#÷Û~ÉK¤Et +Í“! ^•Zä(©ä‚Œó]hâóëÖ8kFÔŠ•AÝÍWíJÈë.Ïϧ´óT]x>ãõN´Dÿ%mÕ¢ây–¶€íZžÊK?€0 >æ1¥ÓJ³–^ÇÅ—àt3~Q«/.™¹ؤþÎ+öö9±{†” z1&ÉþùŒæ¯YÓ V`Š;$×´ÝÒÁ'& ÉŸÐ`˜(ò\±#€±EpHÐOÄY, +¼ž*[ÓHf¢ŒÅWtCÄGŽ‹®Ù(1…¥ph¢\7¢_碒¨®K¶ˆ&’Ÿ˜¥($ÒŠNMîŠnˆ\ôÀ9oÕÚ@¤ì|eB°¹=ïܯ‹Q~áÅâgÄãÄñlËã%~A>(MsÇ ûUb·ãxW•Öõ€EG\Ç3½š¤ –`‹3°A‡â¼c#!:žJZ\áÔkŸeBuã\YO3Úq€Taë%ˆýA`Û‚Á8QdyT¿c#óêÃZ)Jï0‹÷ñÀŒ| —ÏÉh™©ÏW™"©Íð)oïý£TkßÛ;;oL‘¨‰wf«R”xtÚŸTDûqU+lï(óër0Ë¿C/W’Tl”QÄ:Â8ö-¢®¿-!v.àÜò"J’ë vVceš DŽôHײE…2ËIîÔ¿ mŸÌà&¯‹Þ‘ÜšÁ=›(Ügúý"ɪIíípé x;/$gšÍGEYªMc(òDÀ e ýd¨°‚ +Áýuüì•4îï·M­d„{övè=»Man´‚@µÑ +ÒÓ<M}ðLi}Œ®Iã)ñ0¶“… tÝÜ’W÷hß—ë€$’V:yÚºÂâët!»cRÒŸ•‡&:7´GÉ* )uôîj|KVÑÙÕöfÞAšåžåXeåÙ7¡!Ëq ¥Á+¬,Ô,{1í瞨°\þ¬¬Ò?°6ÓÜϱKÌ|Š¢—§¹Â|Ù?ÜI3v”\1e>ö»Bü/Aþmô÷!¾SRî×¾EÆë)™'`ì:WéwÂ4:9̈ö kë ^I¿Q{˜ç¯º×åc_2›Êý¾t+ã¸!ÅôHâÇg.ßÕº­Ö÷Øk)Ô~Y“¹ˆâÛ q.Ö£u¬²•ÖtÍtÈæ™Õç笭EÑ*ŠÚ¡ýjº^5ïVŠa&½Ã—;¢TrNÿZ™ºŸ‚á5óQnb? #κ.(g)¡KîQ.~HQ;„Î%jLº¸¢G èÙ²¬ç‘«˜h–ÜFDºfÙ™ˆÈLìågÎûëL¨Ôïì6òÍ]§&}686]ö^?í¬Ÿv†Àz놺¿U¶.Êø’Ï~•ë; øÎ£hvƒÈ‹>V($0v?ègÇ€¨ýdºÆEƒ£Ý!M ô}®W{¤ÃLõ⪱oM\p¦êd±ñ:Ô¾Ý~™1Æï ×û•N"”#M;±ÿû‰ë_Z’GMT•fµ@LÁý&7IèÈ‘l•'Çÿ·?ž„\µ®dÖ•äÒÔzâgó^ªY›)Ûz© êo0°BªÄ>Wøn‘žÛq3CƒVáÍY9× a8"rÉS&š_'rM&ÛLìgÍAÀ’N¢àõÀ¥éÉy¢î4ÕÕ®òÒ]¯HÐÓÒF?\ÛÆ¯é¤u[ú2ÜK§j¼ßÇ;!…XAÍËÓÃmQT´ƒ¢:E6)LÚ¼÷^“k‘C¯ì·þ7Ý4|2Ús!>UĦˆ‰ØÒq—´ùXèÐ.aEA˜?CU˜:Á^fe#œUYRå—à øß¿“1'Õjó¸S¦ ¢€Re“AAº°©òMUûgÁ Þt³ëq$õUìJÙø£PMÒIWa|Æ®O¨75ömNt¬w +o 4pcdGÎ×*£…›å¡+êÉ¿ zE÷ÍWJ<Í7–†@ÎWÓ.†¦×/qCô˜†ÏÉ.7fdÇåÌ5ÜiÁ-`æÏUa†/$ÆæýGš;Hþ=Å4±³ÞJŸS¦ ·†½â¤Ssý¥ß˳w]^öA#—ç¤Û,Ö„t¦}Ç+n…E°:ðomeÚcCF‘õlê}OsW‚¡Î^Y<ð¡6EZï%õѽك-1Âf(É?ï$ê®órhòÅž28*8”¼‰-dv¯€‹oé˜\…¬ýX-·‰ÂwîØ?éÈ‹±Pæ-ìb‘÷òþ•q¥¼ m5Å+WYAîß¾oÞåq¢µ7•³‹wšƒâ'Hµ ú`ªÚ†|1ý˜=Ff¿[¼¯ + ££áã"²@ïðÌìuí^ÁD  ÕtÃÉ‰Þ Úa ì6ìfç +ëYÑÇ3þÜìÿ– /J†ÈciYš–+\;çùÙçe‰32ec’wÄ~ Y”^…*÷"Àxb³-Þø &ï¤&À˜%jDñŠþ\úWˆ +¤ût¿\ÓR¼»·£¯ù£g +ýsê>èvܵÚA—ý‘ôFÙ»V1½/û2û;ÞK…26£ÖkôΡ(F‹ó–¥ÃAqã‘™ã)ÈÎ}ÄŒaªÄ¢|g8 úŠáìzõ8©Š|o e€øbB½Óe ™HXE pð{ªÔŸ}ˆ¾•±DG~¢nÎózÐgÊ[¸s“îÄ1&/ª$ìÈ4FCïSÅÑçÙÐ5Œ¿úÝ%ø0BÂÈdGæÓ;ÛU8‹ÀÐ-4Œ¡Ö +A_\gÂþóÑELpîö|& åÊÝ‹ã}Ç»#¯þ3 Ò³t’E€„!É€õƒ||“ZIôr3É7¡³z…¹ÜÂmvi¬•¢îÙ#/’ìLvue¦z#d=¡îç8ÓÍ"&fpC0a•j6ÃÝCo¯z® ¸.2S*ÞiÕyØVH?T¸Š2~€Ý8u2:ä²à"ƒé:5÷?“\ÖbIcãvÞÕÀw²k ;Él²,)Xyz(ÒÝTÂÍ!N9™Påd‚ôz3©m >n£q¦i¡ Ý´šÏ;Áþâ˜%q‡òWò–¨$FëJ³U ›q(WøkOgÝÀf—. +ùíü|ïñÒ‘:ŽváŠZ‰wDò™á"kËMj˜âÑ"[=6Ýló¿¶ÚgÁÕ« 1 ¹Ûžá*T2bTGÏq]®ø tŸìõïáB³Ø??=iz»z‘YuSô¸r⥾ÄèIK@}#s‹ý…uü¡Ÿ.%ÀaÖÕ0KôÇŸ‡F«H„^’Òw%gUÝ'ov™‚÷Æ9 Á|ËÌ>GºúI6á÷Ò“¥MDO–uVõn¼Af}>33^I6ž"M0âzÒ\´.î»øéõVè[O6<¢g³]”ú»"/5@"uÄÙ<”"º%BÙ„‘hnÎÒï ïÞ­/½ÀYØôW¦Ì1Ñ1‘žëIüÅpå8–’LÛA-¢‡p7œ±IÉæç·"nÃhXSTõuH±UsEOÊOœ²@öRqé^Év/áâ*æOa‹›õ0—B“Bãù{c|±5Dø` +½œ§é{wòàÙô¨NòJ% 3TFÚâŒ^¹ôƣ릛CnÔ  +(~Lo•m¡ÆÎB›×,"{8øö[ÌÒ!³ÞŠiÍ™žÐ ¦\l¦x‡:MÚ_zȼÁ^Ó–*5\LhT]ÚÊŒ¢'KØÞÍ諺æõ Eƒä‹´àTT´¼¸F²Ü¶~½r®Å9hG•dW© v€2_îR Öðöf ¡,Õó-Z0ìÌ)5ð›ÖË×™D}î3Å’óIwq—r‹fbŸå{u@“¸BªšÇˆ<6 EÚt‚Yÿ½ž·Ð4vJòâE9²©Ûx#MW _+ÀýQb=Ն܋vú3U.Y"gÈIRýRWIɶcQFùYz Jzº\Ìà +2s…° +Þj‹•¡X@0ŒÀl%ŽZûÞO|ï‡þ2ãfúž€ኜ =ßY×qDD£—øŸnE'˜ÇU°& A}ÿûªa¥žHÞ;øzŠ¡-^üéD¬ÉdbhøÑ3Û·üÒÝ÷z‘d\¼ª`VÜGNü [שTñÓ9Mè·Œî9Ôn²ÂHZá0ò»öƒâ¦Ç +q)þÜC¨žûû¯Âß­'7NC3ލt™(·'µÛÛ,dþKÑŽ;dܨd9‚wý…_S6y ØKËu¯É¶‹ö9®C³Ï½Õ˜ Ö$@ò·§e+P˯¿ˆÀûkâýþÍ?i?ÿ/<Ð_ðuÏðq—¯·ß¨x×$S#§j±Wù]³–!„=$š…"ž¿EIÇs5¾cSF±Š¹<~Ç>ÔRü¤}‹6}®Zp÷8ˆE] “:> öùÈ’`.¤´×Uέi]ªo× Áàp3,YÿÛ\÷+£ý¤X¾áM8âŠ/’ÂH4ðƒ}÷–Bb¤!åJ ÌIl‘žs&Z¾À&m%` ­Ô&ýSÅò<¡ÔBZÞyH¹ï +yv–ÅY|<ö¾^;X8¼ éŸd±þ2H¸è=:šçýLVV"ÈZ‰˜‡°7tÜ5Naq»¾Ž\Q–Ǫ￟r¹æ Ãûdfû/ì¢-0òUG®ÚXø¾›.3=¦»2mŸuMÌdKO$ö ð jV»×`«´7Å!$O›Kئ÷g„ÙBKRÎà=…щõfj•¥’ÄÔ¼“ÏÖHð\-ÈÒGM=$þ;È ¡¿ ·§s{¦xCs*£ÉÎ0¾>È·z‚Ö¹ëÀûWÚÝ€&C:°áPËömBZ’¿t8ôÄ;WDOµøü A@âˆèôä ·êÌ_O:àW·ãFDX“›¸Œ (3ÑïLDPÃîÀ¯ïO+×\X–¾]\Sñý;'äP&┘r¿qûÓv­ã$'‚ÏÀ‰ÞQÝà¥/û ,þ\¬rÑ â8i7âå|š&rmûøáŽåI;º@o?D¥Ïb° •!FräÎ4À9N㄃gàqž¨¹$˜æDôŠ(ŠË8uúøl@¸¢'º¿Â„ñÇa"¤ËŸ?>ªQ'ÀW}ov)ÿæè8•Œ|ÿBËpè|‹$ºÌeûá¿×+ ã= ·3ÙgÖν¼7^´n©§ Ð*Í;[ûõ¾¯B÷Ÿ¾ö1K㪴!.:ìF\̽è|«R~)|Ïä¿|°¿}¼iŽ÷MÒí¨yÜë¤iïvy/Ð]þ9£$" +ü¸ +%Êz±k_"¸ðAtÒÉÑ{=êËq7ŠBv_}@þ•é+ÃóÈ˼ôèaS×(ÀÉ3šÎɪ‰”¢ïéC…{ÿñ¡u  ªe_R¼g:ßjó8R('@Ÿ­P!áíÄå|õU4e—ÄÏÀµ°#üÙŽ:¹Ca™r O 9dNJÉ#Ôþ*&ü³Ø?›pýå_FšØ`³B‹±m VSkh&4+O”"#%Êõ,º…Qþu¼yÂíKZ.9ðè™gP@°^S@ÐUÀB%é4oÍKE¯V1Kr‹5‹Èõ ˆGuçVMºáš·˜¸#­¸å(ùå½û‚™&B¿ “÷űÞ#¨š%WÛ¨#®¤ +jåŸ,¾•5“íx$8-ž‰ÐzèĬêÅ5=Ñ`“ „½é s䩯sPE¢y¹mÄù'h.”`Îh¾ÆœÜä Ñf:Ó[h—ÁŒ4Ñwwd3š¡aõrG…\+ŽŽ}œÐÁ»lÔð´ˆoiWjà]1B-k$fP_ä kn²G¥Î3CÐ85EÚõ¡»³ô9;_³[¹X Ý.òœRŸQ<Ô ˜vu{!À-í*ÆÈЏµJ#›f ‚Ýg ³›c!!¤h±BÈ­ptga¹íUÊ/Óн&;23þKµnãtù:Ü +ŒÁþßþò óû_ñ%•Y¢†-†;#¨œDî¿§&ƒ!øÈïÜß±hˆ”˜ Ýjš]·è>ê Üp«f:ß9Ýà—Òü÷4óúOº1]XøOŸõu¹]‘™Ί1íYzˆè¸î—O@û:¨¯Nr»NÝÜ&Ž4Àt<Ñï¡ sÖ@ÈF/³©s„³º— ©ji15m‡°¯Ã ¥*ºŒ3dß`„N†…ô*£—±lÚиØÌ0“‹—¦å™&ÂÁ áŒ Y¼¶núV±)s8J”ž·øÃ¹eÎE^zÚ»DðÆѾº¹gµ +î¯.Ž23ÝWÁù‡ÖN¤Ðö8Cõ´q4Ã¢Ó ÉÝS´ ßAçù²¹šY•Û@!d +‘Ž8¬kš:ÊlHÿv·ëM:'´lõx<6µÕô aÀS}í©v\ëµjÊÊ¢)ç +ÅtmÅàCÜ•iÕØ¯~ø\D¼ýS0.ïDç#ªxztÛÄaá§xœ@¦®ðeà µ±?¸z ŽìÏÃqPà# +·3†ûÀÛK¯ù™†0W Œa\³0/S"å„wm¦QtˆË eã{¢]Cñד¨ûê‚_»¢¦í»ÎÍÐ÷TÅdß:#rU(š+≠+îq!û¯N}„´=äò÷LÔ:êLO„à°Áˆ²©4ñ«@p´Óć7ÞôG±žçVOëEu˜É… ŸPÌ2äªÉá¾tÕlä=|>ˆ?"Šqzº½«Á÷(øsâ:}ƒ\ûi\˳Â]ø€€¤å¥ÝâÙ>ÿ=rY]7®Ïuþð×`l]‰š½:üúø¼-}d¹_"ŸQÔÔA4iBª·òÌè”y®h»ÊÞi¯Âù*®k~ùÿža¡è¼€#÷ºt½[°DÉP©ûãi@%=3¶ŸhYË oUD‰ò 9ýFqY¸ß€«ÀÚ…Å3í*åç‡ÿܾ³6÷#5u¡F-ÀýVrW°V:öìDµô(mãì:#SeTp÷¶eGCGÔvYx eu•Àý´Û?®W^–[p­ò¬9Ly6ˆÁ¢€öVH•´öu-EƒUü_Ÿ}åðÒE …ñ~Þdo\j&¶O;9ö#ˆ¼vÙ(þ=-ÝÛfÁ´MÝç«Ñ‚ ó]Ƶ=Ƶ®‚(°8v† ³âô«€ëèpÒô.1Ä®^©~À·y,õpäE»;Lìò¶+½#®¨ÁÜI…9“0ž³|iˆPW祢!×_UMOýÑ÷L*Èsï Ðtµêúë¦nܱG>­¯ðjöê«ç¸-œÁ’•­ÄQV4îi¸_IÔ-Cïâ¶ì¹K¯} M§jE Â;[‚5×´ïå‚4ç÷Í^9o;Ù¦#^/î  ÔláÌèÍ ñ-‘Z|·iNt®W£Õ…ݾKˆÊ¥=5á^¿SYFx*R3‚Ùdþȯ÷ùÎÚiEÓè¬ÿ:¬N¢Îú>Y¶u?Å¡Æ m´vÖæ%ìíé¯`™ +Fü{†ø;íïñÏ¿ ìt&5DÚæø~l%Âã™`óšål¹ŸñÊ~ a•tdÒËJ5jUÔ:‹FDwñ8P¹ UŠþË 6•à ŽÙy®Ùƒôp]éü÷ GÉáà°yÿú‰œÂØ8ã…ßFµy–üÚuÅQK»œ³ìržõË,Qo/²Û+Á³qR£ÉAK¨yzü(¨QHöÆå6° ƒÂüà×ÿ0ü8 Æ•ÌT3c–>Œcm‹<7ŽdqUÄóúŸ½kÅ·E@Ëf GǤP»q¨Ä6¹œ`ñtìš9DuÆUŸšŒ{Þˆ£"Þvª7SûŽyŠYTz'JTè:^ϼùõkàû©Àxà# ÍL¡Ne4çWëáÏ‚ôÿXñÿ¸êFè£Ñ¥7º›(ì…Ò™Ì>Ó&0c5³ûˆxŸ¬¥}ξ|ë§(Ør: ¢V|Wª3ŒH ¼Èá#ƾÃW'©}E^·´Yø;‰þO + +}*NÐs´qæQïíôI¦â?ÓOçÞ©qŸÃøÿ³;¦í—µ›Q±jAçS¡2òŽØåÊJ%"™¸ú,_Sc[Ïøù…¦ë¯¾–‚7h¥¢9G!BõŒU#Øú}£Hõ"JôˆIiV6[­Æ])Ê~”õmŸ;'Sgcéþ|Fx"¸2P^ÁDªSýqœÑË’<íªÇežßü²ãÿ<âåíB¡B'gúu:"ä'í·@)—Y.é +ÀÙݬ–= +R¢ÝGzÓQºÐ î[Äû†ÆÈ U³çùá8뉂í)g';†Ze ÇOQ-65÷Ù~5VŸÐ6Q¼wE‰¦ØÚ…Äý¶ÍgµÍSÚ(Ù ÖûfŽã)Â?݉Ú¹v# $¬sõrû8Î«Ý ‘ö³2.}'öÖÕ#ßÊ~©¦.U-î ïùËÇÅš©— %©&‰Û@Þ¨×'ðü]`OQSGú2ÈâìÇÇãk£9âN7P¾ÂÅÔÔ#ÌqDÆ!º1 +™R†\ôÉ/0-¢qs¦Ø…]¬‰¯Ò∴1ŠùÞ‹S aD5—˜‡½bšã"Þ7àVE ‡ CAÕçÚeÄY÷ù•¨ˆÓ¶ê#Jц¤—\©K‰nõ¿Ú^OSˆ4*R/üþ3j¤à>ÏôM¹ þ•&f±¨ôòKÐç—"þ±:I®ÞÞ¯´Uxx·öAÍ/d„®°£ Æ)†ä®Ç¯¯’Q½¢êç…ȼ£ºÆ†ÇÛ5ýõ©ˆUz…Å7è:úT¹\§>}»od¡;ÍôxZäœà8KÖÐÇ<´9¥-IÎü;³üë…Ï¡«0^ó—q“ØÍ†ÖLÙj>¯çbóB\<Á~0•RØo¤¸éû!‹5"ÞÖhâm}¿Ç¿™R¾E‘^.UÞsZtñÉfÕµÞÏΩhþUó=XÓ×(Á7[¨Hý•Gp×Aß h+^8 ›š5u …‰ŠÑŽ Ø©ã„Ô~™Ü0 Y7Ô—|ëÊ| &vÅ HáÑ)-F~ˆP։ĀQ­Çg°W”±+K”Ýêíä^gl:{\}ÆòÔBÐGg ˆ‚N<éa;&I¶!0“ ¯lçÕ£õQ×w8’àÎ)1u8ShX4_¥úiÜvÒóSÄþ"ÌŽ\]_£š#6F©DW hôR[qß"¹Þ{D +¸Göí3T~SUlq—PR€… ÈŸt)‚ ¯|>¹; ÝF5$Ñ€c2ÓËx‡ž©iÒ+En·¢˜°)‘•Ñf 2Øtïã5ëè-“ÄvE–Û(D‰É„ˆ÷ç¨Â›²D°+gúe/ö¶Ad¤}¼:ÍQâÿ|4nh ™óé7ä¾ï½¤½‰>ð¡k—²÷FD¾ÌúzUðϰ±1C>zט¼ €uÊ×öÀ7ïÃyËV¹o 3žæŒ(z€¯@ŽÈ>µüû¢`í(…Uà„™e®ÂÑHÅ…pH—Jø‘Ê+Ô0 æ/>Š·í°ãÒ´›¯ŒdG¨>ôžÈNŠ3ª–3-ÙªoÎD“›3QÄ*Ć–Bl³¾‹.Lh®3g +ÎVݪöuw$ÇìK|©¯ÃŠÇ¸—Þ¡•&Ï×¶íu@ÊÃ,Ó6Z@2:ó§¥›n¸Ó•êԋס" +cûevcɰŠÀILË]w­Bšr%A +¥­yüá2矔'KÕ¹ï´)0ÙÝwšOÚ†œÒ6ëO¿xëI]ü7¾}¸uTG{#†ÝfaW!7i­:Š'âÔÜqEš E6;À¹c~}]w™“5AÐÿU\fUdîbU©´èºCäqà)®è·ØñøþA®îw’÷ÇŸã<ú|_®©Ë2ˆ?–)TÜ×1~ˆð>ÎÜÇÙ^‰˜ïQ¢îY0Ö£O}ÑÒiÔ³¿9P©æñÁ-‘q/v/¦— !/{]¼Aó~ò'‘IƒªOnaÐJ-ã \§žEj–©×xeŸf²ö^"j¥=Š ªØÒ÷ |ÚÏÆ÷Gļã-DÛúE.'в“¨1MÐ(vº%ƒ ^}]2ÑÀ³ìK£[/^Áië}„Åq¼Zjû½ì½cKÄÕ×ñöC”Þé–Ý̽N7ƒHPõ1î(Ћ¢g0¤²¸º£ÃVÊ~Àÿ®þM'=„l1{þ<šGû°šW>KÅ]g ].•áQ¢Æ ¶ñõb8^DvøtGª1ðи®œdw+ƒ–‚Œˆ8†®¿y£¿}(­‰ÖÝÔ5b¶ÅN° 妇 ºÚÀtûiQXRÆgDv‘«D›¢TðÃqõ¡oˆ¨ÝRTòœK~|@S’Œd?îû¹ye¾E}ˆg3è?¤GÃç½Åù"ì*gtvÅâð=âk ‘¿{cåvýp˜¬ÌM圶0è"9uý:7äjÏÓ«½ïYa¨•éòJÆ/¤š˜5´’Àê»?#òL•š#ž!mŽI,%Æ.æg/aPTþî€ÝTû8‹’:@U¬¢“bÎÓbÜxÙuBötŒ \ª¼ÝÀÜ!…t¤šÐ®@5¦›5¨e¼$D–Æ×òY¼ÒY>&¬Â÷‰o•`t=5÷½âE&Tþ¼­‚UNS˜"ñõ°îÍ!à/ÞëÖ8Î*-$_Ö^ß[„-VØŸíå³RW¿·â#舮2cVéLÁ›^«øTìŠ` +u¯ä=S‚övÃ…:µÎZ»˜oIýd¤‡0Ê|F‰IÞµ»¶%ÏNž‡«¾D!VlL<{@y׊hZWP•B0C±ö—ƒZX.wÄ£LŸ-¾H€Ë¬b:ÙSÀhàþYØv¨¯¿žö<±çÖ ­á &ÑW­mä6Vð+HR_Xm|¸÷²&â#´•¢£ª}áHÿõÁC/ˆ¨ÿŸµ·[±'¹ò³¯à½‡:û ßyh7Æ ÈØ¼'¶¡À5cyÀwïxž±«»vI@ Òè_¹vfîÜ‘+Öú}PÚ$ŠþúoÎý<1û›Ç6Z}+*9à ¬õ,Þiò:zîeîï¸pLi寧Ռ~µ²ÀZbgÝc†ïOìI±`vU¤ šæb‘ó Ûœ<>wEÁA‡ Bí°COå…¥ +Ÿñ8QÜéŒr"Ô¯Ÿ=Þ×ÖÈL¿Fí©J¯…ÆCIÈþy嘈Ú jÊ|ËÑÞwòûr¬ +zXÌ+z´¯ö×ɺí”Ø2zi*©aΨ‘mU/'Ì}E©q„@?‚ºÃ0«*Я쭌‹ÀÃܯBDšaÄgw§5„8aISU†]ÓÜj½ÇÍÉø&¿(rT$‹.b‚¾Ð¯) D´ý΂TË]ÚÑÞL—§º¯,È*!ïžß#.¢)€²ðúæ<”ºåK“+ì/gœ=”+$ߟÆG¯I‘¯¦ºÝ¢Ú|•{‚µ4홉0àåX§OE#¡EOÒGayÜÉ õ¯Ð|fû!tZÀPŽÙ© µ\'ZA*3¸¬ríÄ*¨¾WÊÉÿ—M—G#Š9PÚI”EÜ Çdy;ˆuâSC fMéô¦…É1=\ +M—‹ƒ)܌Ӆ âœêá<˜1q ”øàÆï˜þ<Ø¢(ËŽ-¹Êÿ`óž= ŒuÙ‘£éÐûûÀ"íOåob½©ß6^:,×Ðo©Q¶%3ðŸºV«=v¿"›õrd«Ýµ?p?U2©o–0\GœÐQUNÚØA±»¦o?Ô#›z€õ·k=UÉnÀßézÀÊãMÆ9’ xbA±õ÷´×ÊÒ<(MÜ•ºt÷ï=RòÌRrËBçí”›25!ý€Ð ¿_²~ šR}Þþî;  0õ·cIX±UuJ­<ÕôýHüË9Ý™è +ÄKùe§ðÃÑ;­÷@SW–c[gNFOWv¿èdí+2+„vfµ¾ô¢õ=s½€€Ž]X÷31ñŒ£oÚ3Yçh)`­èã?ÁÚ”§>L·Ç’x†~q aÙyO¸jFA¿yCÈOtðƒkg°éÁìa~G¢©Ð&–¯CúýïœMàZùæàÐø&ôø™âö”>— 0„]kôù,\ µX¸öɧöOs–ºñKÂêŠöýy3“`VïáòCˆZí·ñ0†(ìT£—ÓŒ!ÒÓè,…–\½¾“çžs€C@¼Ú?£*縼£®”DÃÏq§Àèò¶ðövxÏøqï%>„·×&°ž½ÙŽ ·gÄ£ÊÍQµ  ©u¤T2äÉ•p`ÛkI ˆ‘òý;j1¢‰Ø©"WêMš#tO‰6Fi"J{"boEK©SW‚—ÊSÜ¡(Á“×# Ža–/èD°ï厃qSr|šÛ¬Ž|,ý¯½¤ºid†\N[€ó¶±a81V*?lµ \£)±ß>¡ êqÈ@Ý;u½¡ÝIØ2Ô³ð7ò…ý|¦mŽ‹‡ÈÈe¶ø¶|Zû4àÀoÛ^=ŽŸÊ>Ç,VuöEÇ×E(ÐSp?øJö…'2Ú6DT[:¬ÄùÚh%€¦´Ó@ñ%® ß3â\È6ŠÇ®Ç›ˆÓMŽì'LY-‰¡í«MÆþåøñ¾1UaïŽí”$E¤¶Ôx¤‚2ÎïOÂìGþ A.úmTÆ6xÇ7nÊ~õ+¶Ÿe5²2‚ oÀàvºgñ%ŠÆ‚.X]Í‘ýźÝ{=›Íóì€R^°O„†B{˜Qw¯2ʽÒZÀ+Ñ-áJë4²pǶJ¬âlFC˜Zb‹Â©N8ðw^“¡Üihéý›W10êž|98ÐÓW_a…¤@l1÷p/t;3j˜Ö÷O{ýŽèÌÒäàà §ÑÕâCnÜù»‹‹üþâñ þN³–¿÷ƒå€;@5ƒøµs÷kÊ>$« õƒ]Þ~gø;Ì0oÅ…7ìŠô",H!qgœ6ǺR©! á‹Ó!ï9vˆKž:<ݶêdéÇÆS3…†sù˜xJ¤0 £¾GÿÙr ¼ðÎéîÁrP¹Ô1(OYè X‹åœBœ¿à¶±¨”šßøÕŸóý n×V½àͺ‡nòçLˆïzý­+ÈÆsÏ£¢èøÀ£oAX­Ì´œCœ³¨cf®j¶·ag¿×ó¡Ùx*­Ðkß«bµ™:ø©6ÌôZ '4”¬vª4¨¯†"Qø•±¢-ÏV×’­Ã+ˆ³xoAUòfØñ©ã Ï=Ì›æiâ+¶§ê×Ùªˆ×˜8<Ýëà2¥Ín£háÍI'J÷©é¸5uùþ怯âøAe”·ƒì5ÞE‚@5˜œýóïèJj6 ‰÷ |?§¡<¿_¸w4d‘€Ü4ÅÝkCýxÈBsH5UŒt@–cL­DÛˆšñù!ö`ØoɃ¡@ùæRßå W»xtøeòk–QŠ-TQÈÙï%õ½KÂÜ"#[x¥“¨"GM]aJ™EWU=é1:ÆÄ&¾…jW** `”î°±nì·qï4öT b>ÐÆ/ì3TK +ûâÐwÐëD²¾…{ÊÅŽ@b µÜMÇóùøõÕúfš˜±îÝ^•Øõ8i“¼§àýP$Ñ"ØÑ}ùJ¬ÏÑÅëi_‘§MÆViÂí7¦Xn%®â´ü +Í2Qdd™ŒgÖA^yÅUРQ[ܸÎ -•·6LdD„K„üó› 2%7$Û¼f’¸…Û«?Ì“4.dßÕE˜ç¸V<ÌŒn"P^!‚÷ßr0":ÊîæÈ<ï”ùÏ•ö“Xò0÷h#šécÁ~2ž l÷Ūé8&cõŠcò‚™Õnc +á]´{ajÕR罎2žŸ÷K\3Ñý>£Îg†×¤æÓ_—Lk»B¡'rûÕo8q|AV°^¦µã©Ó5èÌøi£Ôßu”þˆêrüý‰u‹ÌÍ?g¥Ó´i€{·&Ër™?ÏžÂ{Š¢è£K9)¯ƒR)ï «ÜÕ¤ÇõÑDŠï‘ô5NÝ]0R€i¾ÆjæÞÕèñz™‚¢÷1bqqq:G¦`3AÛÎØb~a]m¾~ˆ_D}%Éfr`%Áv‹gªP«þŠjzVÀåyUØË÷õM„ÓÄ¢¢Á`kÙmöûy&I_Èß‹0©Ðôw2Hz¶÷bæskŠ·ûrâÇT¡Ã´O.©ˆ:¶àlqÑsóÒP¸ ïq±•ö›$“W$†‹’…ïQv WDSyÇåTÞ£øESüæTÍzØ9“{c›šÊü&â+ÌóŽ®_F)y>©S)2”j-:'Q§MY—êëÈÒQ4±Ñ¢cöà7Bë}þˆÕ÷³ìô>ŠéÀ–Ö:-mKëä>ÞhÑè{ ‡áìÞ£ÄKø>áE¶í…Q?c0æc$½RIS )Bú‹ÑÜßîhló÷hƒë÷Íi–âñÀ‹*‹‡«Þ£ÌYAaê «NæäŽkJèFôáy3ަ¡QLBD¥ò ÑʯáªlDRr:ÃÊÝ]tñd¹4LD´tdèìƒ"åx/´—,öaøg”¨îŠfl÷4¥ ÌÅ&4z£G-m§%.´ßαÏùJ‘FÕ[‰+5PÕDáy[bBÉ,†8•²A_ˆG°—ÛÿY~iÜÓ”¯ÜokŒ:ž‘o{™oÇcÐCA{£±m{RÊP€x.嘱"´•úw)LQ¬óº¾}AeLSL»‘˜X;ãK¢:ÿh°=ž¯ÇãQ-¶Áìvy ËÛ9ð8„­¤ÙÌñ1n®!{ÄçömÄŒI+ÈAœŸä- +ùKqO{`=#îö±¾Sáj„€½5†º'êLyÀâsÀlä=ྡî4ß>ÝUœ3Lk¸tS¾ù3;Ÿ" #Š*Quû•ŽÅ JÅÙÂÒ8cŽ=ýtQQ=²¥j"²ÚßùÏ)£kЙáàûÍyHF’ê\ÆÉÈúÉÈ„GõØ+‚aH7‰ÀžpÄ>¾”p޲0ªp]¾ØSÙÒLåüB¡¾yoW-~ÿ¼éœƒ ‰³¸Ø1ïä_TôˆcLùKˆf®¸–íãì!=nѪ!›Â·™ÌÞ3H#Aòö(þWs±˜ŒÁþ$s‰æ +ú‰Ø"_¡2’㦆2XSû¯"h<5óHâß}¼Ç;CŸ)$ûé1£S‡;†Õ¿Œˆä¡FòpâïQ-4ß:.¶#2:æƒ{³vã +ueŒaúéJ `&4;u£éØA¿t`ÒÉÏè=:£ƒ-HéßÔtè=»'ʈPêÛãG=äVBÚóÉN«¾×לÿ‰êίóÔ˜©=çéS³ðÀ kAM‘ÁزîÂÓØ÷—ÂJ;â%Â$ø×ýHÏU~þp\fã¸bfZdóà"V•âBYØú|$„:Ã^î°§Ž+½Gå0ëâæb†g‰§eó‹N²4 Yx4·^çï¯ñ;zðÉ€‚݃BhÙOÕLnÊ u·dZ-Ï ·?ÏBW˯eÂ=•í„<²ÈGb®¸'?=‹%´OiMè K y™W£z xàîqÿ{Ú&ùñ»ÛÏ*J-ÛVÉÛy*&;;e†5£ ŠXòŸ¸lßE|·þ½)3À’À…î+ãìtès3=·y -ñYb:nÚ•}³ -mÕxÎè}ÑÝòÙÑ2÷Þ¸ˆìý#ã…5jŸ†Þ't‡ŒÍDCB’ä–þ‰…pZ« 8ÆÊ¦S8¾xÍ€‚N†zúÚP\d`Á²mD<ü²R8¯¶2µ¢¸@ EÿüÌωj¹m· «¹W2’´>¨iŸ:ó½óo*2@)[ùªwÞÎØã@»(LeSÀ{º%lÑ[ö)ð)½=Ü·Š¢”àÀé&‘•B‘7O׸ö¹™w¸ÿî,ÒhT‘ê\ü»jצßc<Þõœž+¼2]ú°ÓÙ#n?Œp…Ãc!Ÿµè†°¿öÚêìÌå³Ú¼€×zbé>È̈•*•:öèÂÅ¡p¥6<õi\W’p¸›äšr‚•úׇNñçÁ~ +äžÌ¶+–!Ò-raëê4huà‘ì^”bÜ~¸lÔï‚L߲Αȋö¤ZõõD¿€µ¦"Æp@Ñ{OˆŠV1'0$Ü(C&„RL,.ŸV ‘¥6&Òëà¤ð„ÁaBøðC¯ØžÕt–h´d*()ÐNýòÞ,ŠdQ@¥Q‡-Âç£ïi1Mì`ÌË„²A@”œ&˜ù¡ö„6e•!  ‘ړ͸)1–±{V!ÊÞQ!„á4ŶDíj%퇒€§$ ñ…e3+êÇ‹¼_œ$;l„«ÏŽ@¸íu¥NÓ æ2^"q?Ùk|Oó‹@VOƒŽÖR@'{’TLW÷¼ÁgÌ,ÿ`¥7ôWx æ|ù8-eÒƒ£”SØÛA§ #Ù¤‰Iƒ +EMƒs%;&{÷Y4\0Š D¢ÑvÈ×ûG”8§ù~pA{[a€d429«à¤{r/gs‰§I`ÿçE?ºÅ²? é|x‡Âüðk± <¬áShÁÍ‹ ð®0¥k ½“Jl.ú Á€=³0“íþõïn +S Œ¾ëtªsu(çJ²¿æçßGÀcËÎ:Ç™¸_AÄCOI Dg;” —yNÞê³ò[3„d¡ bkñkìÉpÝZùl®ý{Vÿ¥]~„Â#÷lÓŸƒHIã’üã2<šòÌ>)žÖ%’»éÆÉñÖæ}–¿G*~CʪåF>®!„¾°^-?;€øH½p»ø¿àþ›¨ÕP¥×Yô\:öÝŸÝ~£$3âËAlCZ(݈­Qr|ç@3ÇÞ—§ºSF’}GTÓÛÁßÄ¥öS¦]¾L+h¿ +T'\ +PUP2uPùó@ ˆ‰VF'»ì)IJt5[k4üMeƒÍÀÃöùꂽé²i€©Ï¦¡÷4¾9O[(¡y‘ÄdS×@b]ˆï_—¨>~ÂŽX´4:ãÙ<¥™ŽÔ£$¨) ïP’‰(l'rب‹‡4Ì™$ °³1!QÕwÁ•¢ècùèô ®û°í÷ BBņ;J<ß)’‚¼Í~S,Mð4F;L)8öÓSL'ˆL°ÕS[(;}ï]å;ýÓƒ$'§JLW&ëÂX†ÖŽ”Ñ÷†ã½H‘Ö=¦¸&’‰´—­}¹1ß#¢žb+ZÅÛyt"æÇÀÏÜc?†¶ûÁ-ݯ¿F ªM'“VóeÙ¾µPî Å’¥òjSX,Û PÁâ!´Œ;„Mõ÷­Òæ8ÈxÖ˜·0•ì b¢ú´>lÑðb5(Á[WÔ‹ +­ª_…o] —DÊwÚa†eøsra}t†ñ ®«tO»6ÛxÀïO”°Ž9õ(ô„›”í‡'êÛ”ÉpjœÁkË(Aöxñª(¹²·‚¿Ê‘ÀNâf²˜öˆM@\4ìa y¯qÑ@qM k;2ÝQB{ºÆ[!ý°h“elA‹b{3,œQn]z +Ñ™§Åìµ÷0 ol{2ˆ­Ñ“±˜Ê6Šƒmò°Ñ ™FŒJý9^pn´Òç•àiUË‘LAšÙ”y‚&Uƒö_ ÿLGšj{ÁPTˆo¢lyT!Îù©³éCÏZ_`Xw¡Äc>SÙé*i-­û”¶ÂL—²·½XšO–ðffÕ(„æ¯Ødˆ»R±ˆ3/"B“ÊÈÇ^uoÒÜ4 îýÖ#슈^Fm÷Þ^‡ 9Ý~[8·ÂØjX;ÞWOëRº¤£ÃÐjq +›Q ÊÆ-Ghx9T³‰w…^—¤2øC“—¦ã$åÄðQ]'ö\¬"’ L>J:1=à¬Ð “‚ +š#ý«%`5X-YkS-ˆÝü4r«#J–Œ$ÍHrTs†ó ° 5ÈëùM˜[F„¦ßI|\MJ”.4ÉL+v9 »iÝ·²¦çždÿ*ŸáâÞx ø@Ïšíë$~ eM&÷–3邨Q:>Â|ù ä8(RRܤP`…µ–ˆ'‰M¨U"Ât3s¿9"TlÝYné@Tã7è¹¹¾®ô¬£O£•:,çy.ÀƧ|UVÕŒ[A»çÇ…ór¤—jèàÙÐÆ'’_q"D+)\‰ôàÂ4•¼5júÔ¬PÓÎè„Þdÿt„Î)^U‹bç¦+vºÑBåUüŸGý´ön‚Äis +IaoðøØo3f•eÀ·T=uvä:žï{žÓ)éZ/ã@tÚˆã‡ãšÃ@bÔ~Íy÷´g.:M, »4(€X!é…‚‚€BÀaJ'•+(Ò ý§-šr2 káûÒÏ8%ò|­áw.Ú.=˜Å8N±$èMìWç9Ú«÷¢%at ch+³Ž¶e±ZÓ.b±È^3äXZ‚£zb³Va¯‡[ aFê&­0ö×°ñë÷q ÆWL 65¦I`çsêO@ÇwÞ‚$½3'Î^òx¢©¹Èsâß0)ÓÌìÜŽd™*Çš'ºÄº8KtѪ£ô±÷÷Ðýƒ«{ov½ý[&ÜÈ’?9 +eÖ{Ù’1Ó³¨ãaßk(T†x( ÊýÍ÷„nzš¡F)bϨgi 2÷zм5ásEبäPÂ>$£Ha͇\Iõff¨9Ïõ&ánú¾SO9½‡}x=èv–hÊxêZ ³.q̶ầó1™ŠS³íJ +BÛ}>xû-›§!¦–ÙF‡‰$V·ñžŠ‚ÊòRo +™]cØ"ÿbÑl?4³KÞþ%•}ÙK7C*í`¿ÀNE.ï¿4ƒ€ÅT}8€3T_Eö +g°KZADuˆs0>$Ö[+;1;ÏP÷“EŠì^vïÙ`Wñ+¦vòïZ´ÐÕËîC! ³ÿ„0 )D=°¿Lm™U üÀ L…–v;T´Ø +ÛôØO€›AÚ¤Hx¿a3Ô´<¥ºÀ'óïÅyÑÈyó%Î’®,@¦$úf¥•åèxÊ’žNv$î9®ýÕ'ê%VH™LYL¨¦`8 á!”µ^¢¦]É8Bî°òÓf·¶ % +¡¨íÚẜì\_€-H*š|h½à/þÒõ¦ÉøXNíô_(§ÀÁâb4W•@8d\[Y54eöäÙjmû¤|ÇΊ˜-©ÂYØçþ÷¸´©T(æf1°1½ÔÏᆳ*eæ {5£ÐD½D“*r(‘ïA‚š 5Á[°chµˆÂüTDTß„²Å~sÜ"©9 +ñ³N§k¯OhÄ«7Q!˜=Ú¿Ù)—ÑÚsªW5‡-3]™êb3Cf5†-9õp`×Ü¿žƒ/\ä,£¼Ã^RÀ¶Ô‘ƒ‚zŒcšèª½´uvèšRZ±Hgb¥¿‹æ8î¶KøàÍĽùz…œ#4KÒ}¡Y™¢PaÍIÊSìžV”8yåW9ê*$μŠ,ò܇'¹¢V3qY—ð6ê¾Îc„$R„L2ùûÞƒŒXs¾Î«öº"U»>ÀTãfl0l¹*£ÝÞhŠ<4Uôt)§–›³õkƒÍé>ˆ*E%U;Qc{xUñ”²AÇrÕwˆ$;¤åÊmE“Vöw`ÉÓ·Ó*¬SCË9g*¦‚=µ +àÏ‘•îléYT +áþ<®Âµ"ÀM)Ú%F´qR.P1Q¹ð%›ôJÓ5üc3­Ç1C¬`O‘ :þ«ÝªüþÏsË`Ø™§5ëˆÚ1³ ZÆw¨+üY™ö!ô,D¹f€QQ䌖Oz©ä#ízsD<‹™Âæ"¹#@ܘ€íQ€Â ï^Èn1òlì[ÖY² ˆ‡«£¼ÒiA5²È¸-(ö£E%#,ßA5µ"ü³^ex-Œ¸~×Ès’Û3wˆŽÌ>¡šô5É-°éÎÓ¾Rl„ àpÎ W‡=:³ëî +•ýU:"ÇPÏ”qt0ߊ3(9û{jFë’(Ó=&äD„z$ˆfäQ«wp·âß_tz$b±“t3‘2j¢Í‡sQ‹ëv½‡÷7Ì!9 ÊãªÆ)îœÅV =ÚŒeŸò#…ˆ®‡ˆ˜×b2ˆ3€ƒ?sÊ¿äÏ0v¾’Ë1’~.a$mðeÔ¹Ã*ƒ]ç^ÆHÕ}IÕ¯ôžÅô=ƒA°”ô•˜žèøeoÍÒâiÜi._¦‰ QéV'5ËñJjÆD!Jq¬èƒ¨¯L{X-}t #!ŠîÆÛ‘}Uë‰U—V}W‚9^QfÍêC'ªùSž4xñ.ðWVYgtD¹l/þÔ5€è-Í˨%õg¼1§kî6!ë".$ˆN½Þ²NÎþ©ˆç8 ?#ŒÂgT_+ÔåóJ!‘¬Ö¹ú1C¦™ Þ£^(©æÝ§p Õ¥HJWm“MN±æ›ís© S<ÿP†×b~ãÊÌÝB¬aY>>Òû=aÄ~wVÉžûx]go”+ +9íÞBva u|…‘PÉbpU‰[azè>i|~5®{Q©ë#Ü»P o x“Pš²3ç‚êΰVqš.–w’-,:O¼éɺ„`*wi‰OÀ·ûÃӭΉ¾ÒHšÙ`'õ:[0Ѽe¶±{ÍGy@ÇJõR~ú™¶wÙíÛpÖb­{ïAÏ æ* bˆ +%ÈqE¦öI±ÉE%;>¬]{n’os¨î*¶s†ä]MDFPßTÍÜsÇ^GÔlÌÔy4‡íÆv“µ‘¤ÆÓçj¾¢¨z½Y¸‹  I•Àÿó$”Gîžb‡;\ãÅÖ¬ÐkI% +QÅ™¸ž]†©fÈ„BQN#"ÿ¡á‘j\©ºZ‚Òïq¥¬ +Ú½Rà˜5‹e %1”êG„cÿê$ƒ—_ñ<½‰ÇhÚSÓeìjT*ÜÏ¢^çž›Ѷ}ƒFéð\ia”°tòêtGÐdt³ ¢ŸöЍåÚðwÄÝFî]VúNÉ´…îçá1«$0”=.¡]O±{$ë¤(»€ïÞ{Ȫ0m9èdÅü!˜‘gDxð'±øT˜-ANu½œ8„VPÝAXOSXGùŠu,Ø\‹yjì‡d`rsŸ- !ÛŽâËÉ.`ìP(XpE³ªô8»HZªoåP°‘ÈÃ’ E/ À^ŽHŽpdpÅ~ØT{o÷òs€]·†DQbcŒ¤¾î[ýèˆBd|Úgüd=:AÕž&µÚTJÐîÝÝy§(ªV ù蔚‹!˜qÚkUëåxtÍý·òf uÆÂïg8]5$™å{\¨`&WqÒ8òÖ‰µœ}×HalÕuG ‘]ÙTÄs´XÝ´•,·l’®ÔØV"[@{êBö¯b©ŒÖî˜Ì„ñzT -DšºêlÇéN‰mæz…?ÖÁûö‚hX0+bVi—®Pm +ÍE–i^fd0)ú½pËhÊ:•qšQ¨ûb¡ôº’¬‚ÿñ ¦aʵ§¦Ûæ"9Ñè2º‚T-¶7]é¶,×C…[ÚVÀF<.0Ò%óFýФSG¶@¼=²º¡FÞpÜR1½a0ØÇawRhƒÝÉȾÐ]éÝP)ÁGâB*XBüÔ= †ĆýX°¬ãÞ4œmá‰j ³Í‹´­¡þdWþä:ðÄ?® zÃ8£†µF8"1'1® 0ûúíÈâ°Gá#Ô2êõWzŽ"í^Ìz;˜U[}“Mm·lÚÁÈXÌp7*ÑÈÔE¥]¸*lTMà•“ƒ…pñ ÆWÙžöi·ÊÁ˜0PÂåÈI†ÕY—tŒ ½ð~g:°æ²yÎx]@ Êåá%µô’J‡ùÖ`,×ø»Ö­´ÿkÉãD÷ ÍÐö!B·o3ˆ—Hûr±«û· ‚VHu Eñ9èV +Uå Ê®ˆ …ì~p1f;*Ý­,¥\D>®Ðբ쾯ÏóJFvíN·ò†à‘©èthîÖŸ.1ôا Òèœ?Ùlѱ-¢4[ð‘6ý¢+l Œ>ïcšö³ùf.Œ;­­rQ˜Ž)í#è&²QqŒ‰Žc{ÑøÍÿ4h±gÇQžÌ‘ Tì×#¢·Z„õ= ˆÂnFgbãd{›%D›÷@åÐjT^Z3tÄ£‚I®ZÂ×È'ê"·l!ú4À™izö%g–ý=äãl©ü,¹Ö<õ +Ö¥Ù¤LRÌ2•Ã¥Š­¶-oLê(š”›Zc•à 'i²9¯Œªç¡–•íÚÙÒKw·…eòBjO¶ãj Ä¥–Ø$7,dBiÔ"fÝKÉzBOÏß>Ú@.~¯ÞA¡šÞ›XHä±#c?5Š`¦–a]"ŠmÊ9ÓAqMŽN}¶ÑíélYµá‹¾PJö…F%q­—QMka9'`ÙÆF AÿÇÙùJýU©+­@5k”SDÍ ØùŒpU°Ñ@E@?º8UþŸ¸†À)ã*«Òk7¯§¯¤ ®jt²  +y'Ô +£`>ÝP‹öîáŘ +Â#(ìtÒ.ÖȵBsÙ¦!;s²úY£§­âRÛK(}6Äh v>9ûd +>Pq8¢¸ZÜ÷¬ªÝ¾u—¶R¨æì­ÔŸEý-áMÿöÏúuþ•'úÃÌø¿o 2…«P€2SyÅ©³ãžY”&µ¨`¿Eù”DS-R·F‰ý8àÂÎã‹bNlìÝý› Ir!î‹n(&Ž(,lœuýe™îÕ½‚ï¶¹Pµ|ŸÍ*éžÅL׃´Þù@zQÏ'–óÊc"X*!“KJ:=Ombi&Ü,ñ#¤»[jO!vÆ‚_o53´×…ì.ò(j‰çXµk“¢š2Cݺ…G±éÈVsoDŒØ¥76h€{Ã-¬ãº„HÞsJ©ˆ1[twÑlàs#F¹¡FǶQ$ Æó’IKlÁ¿{ÙvÚꀯ[KÔÈ Áwo¹ E”lÊ'|ÕÙ“iHœÎ…X÷yfTOB•u7™Ny Ä¿žm¯ô:ûa&ÞÂl|ÌϤÇ:fåÅõ˜™Ó‘Y¯%(2{δյAy“=™qgmèЄŸ1 øÌsÈ(×Åv$á8¡ø<³Õx] øé™ê{\ ¾É„~Ü +Ê~P|Á1©´¸•X&[8`ÍÃpŸŠ!Ÿ½.Ö§´Œ ·Kg ìa•ÿ_ž³¾ÐûçGCXYÕ‹«î8»ï_DxfŽ´äÎ!Ç7QÅjçôÕìóüh6Ä<bÿ&Âgˆ1ÊÏçJoQiÅj ==u°W{”5^½Ò„]“<×ô¼ÄnA±x¡Q³~ö©j ˜‹kð‰¬±µ¬ýCY=júVñÑ0Ç“‹z*Z Æz]vG‚Êè~¦Waõ mÀ‚„#c³Õؕ툉ú™ZQ@t<Òç7°¨‡©i9·Ñ³›èÊVœ™ýñ= £[¯<†Ì0Æ!»`– érÛ³cê ÉùrÀITÕ<=uÆjÁ;”Ÿ—Ìž¯‚ –‚ v UßD•#Ÿ»z‹Ó`=‘Ñу.…"š@Õ„¤žˆz"ú5~Õãøí˜ ‚LJN%&èvÐP +3ׯßÉ·(ø®US€žTÈÞ+Þór´'’ˆ.ðÚt_oºžGÀê;Ä:°Xé±8]Ã>6Ø—Ìb^ëˆ +ÖžéÖ8(£ 0£!Ô‘òó¡]‡D0+R¨³~ŽØ2ù4®*KÜU‰2 uÜûÆt p=o¬ ÈûOÑŠ{÷ËÏoyÕæ;¸†‚™h­à߼ιf¼—cÞ±ç¦R j~¹žú8Éšò½\ˆçŠ,ÝZ8Ñö/ñ@B xîïQ:lWL¥ó·çaog=Jß­˜K¢â½7Ž+~·.™½û‰=!°é~‡„¥\}=¢º´Yú ‘!#Buã\TL™Š4R&ű˽l忘zýÅLó¯4t?ÌUö»ÖÙõ +õ„@8érÓ=tΩ4@Y±èá&y/î;§€qàœÒ#ç–[”h äßê¡Mí°.Œ<?ð“i†eÂäc)$êP°oÆð”ó´'""Q§PD_›+)Ï +õ2Å•T*ïïîæ0ϡ٫m·7¢T–¥ Éœ«ëxÀu\kŬð²(5ؤä¡kŠ£·…š=Šl©Yžíâ›ýNkp '…1Ÿ, íÒú~Z~"kÛô‘;²(úÇÏO?:ËæÔŽ説Ã5Ôq®P¬UÈœ>µ+†æÖ:ÖAÍlªõ-i=ˆK›±•›nÇXþÂßÝ/ï¨Yräí6"BõÏå–óôÇö…Ê}DW‹\ 'ö[Ž•W\ E—œƒ’Åš2gþa6lº‰o…“ BÏ™˜ˆêìÑ•¯Šò±VÛ¯vŠá­q©ãÕ5YMïa¶dß6”öyô¿öfüø·|cÓÆ÷OópMˆží)¾ž]—XnÈï{HaèIy/AMKYÛKú@§òÈ¢È"u’* _þ œO€“hŸ(ž¬Û +"å`–%¶/Óó„6åtp"˜ge½„¢°ž)/s$D½v‚u‘å´fEwQœ]~§6 yУgJµöM¨iR.x¡q~*¤Rå±ae2çkDì‹úé|ÖÒµ þEzÒ$Áã®H±¢ÔÖ=‘¥ð +<<õŒm¬´SDù¡¦^?ÝY$ˆ…£Qû$S÷ÎáéâÌÐŽ1.ï @ØŒ+…ÆB«3<ÔÚ#"¿*·ý”þ¨JS#Fç#Ä*RÑãpCµ°ñzâ<­¨‚ækDth>XâJ°„‰ ;ñÙñŠ>šŠP¯”ÇãalÞ^À=xHNh,È”ÁÇHXRFâWɸ€æì_Oðã3n×d¿”63¾Düî43ÔuЕd}¥À ÊÙ¡ÿ€¡[L°_ÙÑë £Ún@QÆ3¤äÌ6©G!ý,÷†Q·œÚµ`–ÈóàAš«ÐC¦ÏrëÙê~5«#jo‹ƒ¶æÈŠNã‹pð)u‰((€+DÐ^vÁŠ‹©B¼~VÎQÑ% +ŸÖ`}öˆ¸ëyÄn) \ˆžÑ¢×„ïŽKE˜ Û“.— •±à]‡û¹Å™ ôD?*º|ÊÁå™+Qœ¼³ï"ß®ðt®“Ð[ì$;cÒxø’t“æ@wn&¦ðn1÷RjäçC6€Žý×€˜¦Ž×gß?óñûi1Xo‚PMÃ&Q%~¾9`ÞFsŽwûÊ:¾GÉ% CÛ5…p 5[¼mö=Éxû UDy!ýRŸËÕéÚ«þ˱Y|_¨É]‡Û¿þ¯ë .˜|ÀS Þò6>(¬ŸŠW¥9öÅÓ£±W‚_2Â=ìÝ –teQT`KÆjH“>o*«{{ЀU +N±kêÂjí\@ÕÂ!n'è—6§}œÀUYúF ÌNOF}¹€‚Ñ E\*îK{ÔØ–nLK² hs¿FeM?BmFÉ2-Q2‡Ì'² +ÿIå²gðÛJ ÆFÖX_g3•ã:Y}Ýöò^ÏDï<“ÒHDQ ¢J÷„±€u´ÁÂQƒ]/†'ÀEOÁãp‹5ŒhYý@¶‚÷ Mâ< ýÎ ÇFÀ3 ¹Sî—Vý”WXg¡_ÉŽþ–£v´7ªŽf¿–‚aÜ~ˆcý*9ì‡1ÖŒýnž´NžýøbsÀ¶2…\#Íê(Ç<ç «„×}~W×ê|j¹s:£ºÞ3—J|bÕS5–Sâé0¶9‹=Ã@‹ñn¼w\W=ñâݼ£/~”²Ì–ÊGéüŒ<´}`ÀÓëùªbÔPJÉ ìÓ¬iOuWÝ‘H/ÀM©_ér÷ NWphQOЫÌÑ=Î2¥ã³“ÌJI΃ +èX•WLbO Ábås@}<ê•” 4Õ³êè¶€£iC¼Úhä@?˜~R6VÖ½¥äÞT Ñ%ÌxÅú,NF&Bd‹Šwbú( +R/óû›Àg÷Ü¿#âË?ÈSsò (` jÔáöÖ¿ckT(rMKNû!O±)ëþÓ:Úó(kI–ÑRœá¾Ñ‚È3Ä&Ëq +xæË¬‰ŒŸâƒ@Ѱ–ºc[aô#ÙSÉJ +tË’À渥—Ò׃#…:7_lמ(¦,q`ç—xMΟȞªˆ|jË{Ï +Sý~•±§1 Ù†ÊÌmÄxàä j9€¶à`[qPè"8‚pâ9]Ul>ˆ„\nßD`XS\`Mõ^›ä_F)p>Cà|&z.!*^Q©a¥yÜ?ôJšõýÀùu§“Å׃ÊIԀ—ãçzÀ“fIÏ!æì¯y0 ¢‰yŸPI†HUiíbÕ;ÒSPA÷sÜoÓu0ã¯Â’xÎgcÅI©ëœŽµ:nûÕÓ‘ì1§ xp‘9zw Oçz½/RN$ªÆ[‹`‹G ^T$Wyâ× áü•†%s +lžidãC©ôÚ{C’Ž­êúÙˆMѧêöyÊ'Ï8íW¨*SÆ:K-ËýŽÃÈ€/þvÀ¯ˆò}ýæSºSÆH×,š{f„ß¿«áÀ­!5vl™Ï14J +ì ðs²uŒC×Ù¹c°B.ð-oîØ-hÉME×7§¬¥ößñ'¥Û4DÙg}?n2Cì7ÊWiì –ÝŽi!L2sç–wÊ2º”gUü  4˜R*°úõ€Ï„mãwCéì9 kK±°îvÔ€€SãâÝ•#D#E‚È‚§Ä.þ¿.8¬ P¡*ç=TÎïnh þ”ãSb+²®¿~ªÅMå“zÂÊ}¼)ÉáŽÁK´¯&µíú¿>»"ªKɱɺ¼—y˜ýœöJ¸—Äu†Ê9pœéûñü{;HçÝ|(Dݽ+Yl&>äÀîed~Î$ø:ØPÃAA`u÷àðDÌUì†y U½Óù↌8¨3ŠÊ´‹O)îÀ”è9íÏt®ÔꥪŠSE?|\’x[QB5Šwe?1˜] àDÏÕ(j~>1¿Å8ÛJd'ϲÄ×6ICœWµý0¢?š Š¦\S¶ø† +ìö{K +a;S˜'|T­‡uQ»%̯_å÷»^ßèòßá@Ë$3³}n,2¨Œ1ØÒ¯~¤Á|ñ÷k:þ?žâì)™Ö Ê‡æ4lWiKT¤‹£â'°O+©”ô! ¸»Y–æ¨Pžˆh:.£$üLTèÙ³÷Ä0õÛËyx;ð¯g‡[úµzËÏ7ßS#X›‡›BFCIAP$5ùg‰sïÖÙ’©ž{»^ FÕ•o”u‚QêœGÈM3óDè^š+9ÔúˆÀ¿7®tÌù`2™‚ ”ÜÆT§£ñŠæ›%`¹í€ÂLlÛ3æ?Rä{Å«©UéÝr‡¾l<ËôC—ä½÷ñdXT>^DÃí4,¸%œÇ`èÀœ_ÇâPS›¾GgާüXݺM…Oyn˜‚l²®á´&¨kˆúû + c¹Nv0ËÕ¡Æ`„¤>m5¢zH=? ¥(E=ÏÃB¹Ï“lZ>ƒ‚t{ ÿ³¾ÊëK‰Ó)ó¡(û~FÌw +ç°ZÒTò¬q\à H`c‘¸+Üed—4w +A²è†1}՘⺮ìÒ÷ÚÐ|ažCÛ^õ ïºw™ª–AðA!<»ýÈÅSôa¯ÆZµH»©¨÷ˆýDém!È4o¹Ù¨y¢Ä2œúZEQàs×i$ý[–µ£|ìÚ˜|(ÑtÈ + á̾5­~DþåµJšq£|í¾Â†Z±}h6Z[0 ²vï·´‹~ð”ð®—Y3ì­À»”Ø ¾„ZF‹¬ÑÂO—×âž»¥H]N‰º³$Võ|Rœfî'Ù5¤ö{”UÌó&/Å"¶Ÿ¶Úµ# +#Šˆ£B°W˜s0Ä8‡PqØ¢Êaìùÿ¸R‚(€ã%úª^ã\¤ Á¬E ÉZ ¢2{ΫS¶2VJÖw龉 +ߙ͋ ÒëñuÜç]ýFõˆ‚cDD“'µs“QÂÙX $¢¦ìЃ¨7e;@±þ<ŸWr§L[MîÜÉ®Ådÿï Ô_E1™AȈ®õ_>GD þT’ɯŸGX>2Ú•½UPæ¹=¿6¶ÐYPÖT„"¾-½ZÍ× S7DÑL² ŽÎQ…ÿrå¾ßÎûÎê Öó3·ö¤¼‰Àƒôß»'¡`ñ÷!×£®€ÅÀÓ^ŸAãD3ÚÙÝZGPóÞ"ÿ$pU–Ú%y~ëB•ÏCrZJžöÔhÊdÅ‘òON-ëVͨ¦ŸÑä5bDDù™){Œé7Ï7ça À_`¤ÈÌk‘#Õ.ñꛀ/þ±¯‘ôó $ø²zÈ +¥Ú‚¥ò p;WXˆºëƒfS?_4]Äþ°×ñù‹è>[Á4*”Jbªa« ¾3ßÂ@¶nÖEÞñ7s™Q8Ҧݧ›If{Ñ:Á›oFCFäÀ/ø"?¡L¥qïs}y[õfÔ)LÇ3¹—…œfù<ºìx¤F¯‡2¸…žOy=«RðþÐTß>¾g# ñTާ̳%®Jš@æ-Â_¶Ç/Û¯Šë[(vgqŸs£-ntq4@±‡8@‚Éw^ø€Ü& Je¼GäÑýÑÖO:-hEàä­B}v\(fàiYF-G­R´PMõH“i2$ä‘¡øµ`ùÑWxPˆ|á²¢^A”¸[ eà’VG!³’Ža:TNá­5FM@73¡Ð ­¦ý…®Er?ŽW$2+‡Ÿnx¨£HCêÁD°99&Y-€ò¥I—ÖÕ” ±|žßÕtaX!Zö™JuœD‹ + MZ i¾€ +3¥¬¸>âÿDT¯kŠvFëÎЀÜèTôPŸÐâoÑÇqA(ðÔdàu 5½ùb¿I³ ‡ÝÅžMb;Tõ +7«3wéŠÄ3é­Ã|FnÊ׈úÏ1²À¦ôo΃² Dg„~ xÍš'˜üí›Óìå0$oö@Ö/=.`¨}ÃS€È¨BMZ/`Ïç.3 3òÏ•`Q £èíGJ ÃjxKb€ä6ºr#䌮”uè#¢¢ Ù‘ޏóQ´Ýw”U¢´á²h¹â<ÁxBILÄG>¡¬~µ‚C1d^ç^,ˆw«ÈW œ+e‰¸6ß{¸ƒÐµä,Ø×Ô/0XýêÈ.<ë® +Òf£h_”#Šn Օ'ü)Ì-öï&¹ØF¶¶ƒµh¼GĘ:Jpo_-T¾;âT1°yrkµ÷ÅTò¢•í_‹”Cu£_ºoõl‚xs`£! ~ úÈÞú:H^8,‡¼¼…½ùl3ž£ÕŽbT˜¾ÅIìöX ~<˜“$ÆN?b*TÐãÀ¿Š™¡¦ðú˜#ü*²£PŒáíï)vÌqfÜ‘ªì±HÞ9M>R- ˆ{žˆ¸v†ß"ò¥Î¡y².†ø-*…¬(Bæ—é(á4¼ŠF˜žHäĶ©Ò3ã+=ñ¨ŠÆ{šúE–èì +F ¿ŽtÄ$¦á=>®quÓðèŠÞD‡¿Àˆ¢¿–¨àN녾ŧÏJ¸È, ã'¢hÒ=âcþ)?Äà_QP@Uz½³¾eÝ$µ™÷ð¹hy4£@[»¸îte¸˜G›| u5¯çP§Vþ.‚FÀP©2![wo_¢ú’î},Ÿá³R¼PÐ(x E¡VABÕˆiÇþ¥‡™,qU޾F tV?æü‘'øÁʯ6ážb.EŠ%*5ž ùÊycæåÄ+¢ÊŠ(I~sîç {Ïé–Ìž_Ñço˜0SõñlM4˜Ð¹¿Xq‘J‹ªWýY­ˆƒ .}Sêcb&€tA ßÕ©–p)a+‰(—¨¤ñ¹=‚oBw‡Ç +¯ªÑjÁúêð%ŽYu0Ö1íö‡û²ˆzη(ÔÈAÚÐc[½Q=C'±gòš¦Î WzNξÇÛÈóèZ÷еžG®0ùl‹W–•…êMõùCôÅÊsÔ”4T|V»KÅgõ3zß–:Rß’‹áî_¤NŠö““ƒsÅ:]9»èþ ¸EF¨ {'t{×Q\3BÚ\ŸýSÑ”Ú#C ¨¯#j_ŽQ{6ÓcQ]&‘‡ÛY9+³áùˆ“ðl¯ƒ¬¼¸ØÐP„oXñ«E@Ÿ +4ûŽ€<@/-0˜û²‡?©ºýˆ8x¤Šs/ˆr=J¦`Ú? Íù[â¤àþYî_y²„Glÿ9ÁÖÿñ4h>þîß|ü÷ÿöç/–?þÝøÃþ×Çßýû¿ÿ¯¿ýÓŸþñ_þù§¿ÿß?ýçßþÓ?ÿôãþøúÃÿüé?þÃ?ýé?ýËþÏã¢ßâÿÿÇ?þãoÿôÿðÓ¾Ä/nîyÝÁ¯°…ÿ ÿ½Ðþ2cÿgÅ—ú†=ÜX +‡ý0¶ÏGc¢øüÞ½ƒ‰ùý‰ÚÓ‚&ö‹!ýE•dmî©7ݼŠPleFô¤—Ks¯tÀGI|¦f‡¡±ah~€#Þ“}'ŠÇÂã„·ßVDQ9 zUUÇ Á2mèyFYÚ¸ØZɺ;¦ K,‚Ø£} lOÂ;»±w `GYR{D¤¦oÒ¥Eįñ&zü ™[x`‘xwd{ ^"bàÈ”AEÄþŽbÅ™2#b§DP°Š €„è)dKjÔí´ÖÜÈ˵¬¨UŸúø’Š4¤Ü¢9(v,ýöÊÜz4Û÷·CÙ3fÔ”¸u †ØFq¥.’}Aƒ^M9÷’d 싺nõŒh3 Á¾…(‹y…ô‰ àI)Ó¦á>ÁžjB;Ä›ÜñŠÝ 2zÉ‹ 2žõ%™ÉÚŸOæT†ƒ v_é)Âb(3¡v³ÞDqtbB©9PDñëL6ÅÓŒó÷½[öÓE<QŠúʨ†€½gU6z9îsoï¨+¼Ÿ;€Y˜´-ˆ ]¡ì <Í?(Ë=õ6v ™ÛŠÎïO#)Š.2o‰ +¡Róã¨Ì^ãüݳöæ{*€‰ýõ™v…Tñ ú¡ÄCVÿ}ÒÜü¼ûç[w¥ùôd+ÌûcTUõN Àð²=¼ê½XL£Ñ?×—qÿ;-hå›OQ¶áÉáëо½¢[ÒHÇ÷Œméà© ½:÷7ħ;^e£?–!Ѝ‡ŸÞˆ°Ë…¾ÂïÒcÆÙcª&o%´g¿¯¶D“Ô¤<Ö_’µ‰Ø2Þ ZÏApñ4Ž´öÏ9öÚNy§ûñ§˜úx(D,4Š&6Z÷BPQFPQhÃ5LêZ=}Ò( E¨Î¢Õ¤´m&$lš·ˆÇ Ìd ×[iÿ&Š `ox©)‰ ýà,l½5þèäýN¬ ^rÅCOó·ˆfŠYï/Q;‰Ñ7ç1çat ûûšf¯ßÞ{lB†XÁ¢ð@|F¿óf*{;ö<ðwz iVq9¤Í È(šœ@H‹E¸µ3»øz¼–*ËdÉ̵Uù<Š’ ?…•»©È¦/Ä¢á[Õ^‹40‰À;Ð; J +x#æÚŽËÈ`П‡9$¸£2Pr¢xSˆBëÏóþ…Ùsï_@×€ˆ'ú|&KÜ +f  7{ÞÝŠ}0Zù”bÛ(QûEÒ¼šw¶óŽ‚!̱š7ˆœHä£y2é(ŽGo^i ­¦”æ›ó4@ŸÊÔþæ{ŸØº2æ))ò”¼sªyJ2×)W>Æ(æqž"$Tó”/ÉwDð]ÅÌ¡®kÎÄ”lÎ4"gú˹×Í’ƒúÛ@e¡d7\(DLÊðŠw™ª1ªÉc¦r<¬8I½µð‡,.c/.㉌j¶“Çέœ<öîö££¯~¼µ8ÖX'¨Áâ1(ºûYâÁQÏÔcÿe°ýÛ±7M™¬2Ï4YÏ4YâüLADä|zhL· F¢(+Åyá—Ð/=ÓvŸNÛ8QV2bdöJÃ,hg-.„·, ÁÂóºn&<ƒØÿV_Ï ›6„ ^Lgˆâ. À?Y„ðš'q€”ê­-§ð,#ÜŒJSëQ•D¼º ÎÅ´žA‰Y²s¿¸ô¤XÆ{¦rCaÆÅNM9Ô)W6­>ß‚B­˜5±:5E°ùprXŸ³`²1ôûkg>•ÂSÙ;U¬aLתMø=<òçÔîDüŠ4({jôãÜ[AD‹LC“6"qŠ!ÆðC€&JÔ¶¼ +6×h°¡x(¯çȯ-e$Ф( W¥±ó´eáŒF3žÅ ïð¯½!?žjgE.Cû†‘Rb¨š„ ¯®,z¢Zb'AM×¹D3õŒ³<ƒ39tMZ4Ð5A rI–f+ÁÒ¼rÍ4§½'ãÎÀÞÉOÅŠD@LŒ £h„ò°)·¨Ò8¬¾×rŽ>Ö½‰Ì€2/¤µuæ=é1óGž:‚ë }p òÁnB±½§¼Gxˆh½4Yˆ|íÛy¤ –ÄnÂû5·Cš‚V¼~‘%Ö©^jÊ3¬‚¶‚¹ßÁ˜•Äì·pa!ñl/¹Öž3¼$‹WF)Ú Óšdüe$lÕ8pó‰(æ >­iAUúÏ ®é3ݶÀ€‚¤«ÃçG ”¥Z‚?eX¯›Œ=ÝãÙËr.R–«mÖDá8µÇÖž¤¡H±X&)K{:ì¼öˆ °XîUÉÙ +èè´ìž¤™,q-.Å.É×’Â,–D}?+ŒèUãK8I|sž@aûTì'€°Q ÆÑh´¾”*za@¬{$ï¯z~ž½/=ª‹Mãž?ØVºX=ZYI$‚E¤â–¢›Ìp;Q©& À ßq2RvŸÇùMÝ=ã¦RL% tÎaÛzžX‘+ÓWlJjŠÍXWFSœ“žÊ|*èÞEKD…ýÊ ­ óÛŒ© +Q »h¢èAÕ­; ÚK“=ŒpŽÛŸD ¸f:ž´Îy^çGÂT2`sï‚dœ»aËæ2Ý+F¨nŸêqlr<Š™ÕÊUF… ÕûM ·R Õ +^@EUY[M$Ù,ñ¯¢©«Â¤Ë„€q^‘ŸüåLènBv¦ø°œÕÕ¼ ¥Ù騔`ºHkI™:]&Ö{68?Jªä)° ¯¶üƒ5×Ñ®KY™'ÑÙh2Gî5^[6«:ŽI4ÙNNJTf+:ØÌ­¸iÍŒÕóX¬e ‚a«5W‚sÖÝ{ï÷cðˆkÔd'”‡BT¤WšK$Lµçˆó“yÜE°("æçÈDê^Ý“L@˘j–,ü¯^ 3sWL´Üë7§WÆj©ƒÅˆÖo=Yü÷ˆP`D†—E\èKT t2%_foøÑìè±nåº ÊèÔ3jT eÛÚæ{Ä}G£>ˆtE²„ÛHFéS}Ç$äýÏn¯0±CuiŒ[æü™É·ÎËÎ$C¬@+CíT„,²@uø8tZæúO¬« ±†Þìí›óT +jh.v=—NVÖOVÆ«Oì^GÅä~™d¦Óç àTÅA÷üì“ûôãèfìˆ1W3öÓ5À]ú×QNaA5÷µÞ<2J‰ÊR`u\il÷<ˆz‘¦-´ÃÓØ/=ò8Ç2 +“³ßoן @à +‚±?JNô½ qƒìÝ Â@jQÒ2/ÐNþóqfè­©RÑ*!½ôkÚ²Db³ß­oÏóœ7j_´"zÔEtÆdKðMÄ: vÁÔë•Ëþ2 +-'ã@¯iJŒtÚ¢«=hg_Fx+ß ËÕ}u¤ŠºÕdZ»7l7‘Ät‚”U€Õ«§éüT;¢‘ +WýËã@#GºZ™™ëuÞXŠ®àv÷N®+ßîyÉ&¹²Ê†x(@¼_&9½7¢L’©[T_ØèÍëhN¯ÉÝ 7™ãç~º£‰Îû(˴¢X\˜ako>¬öPκ_£|JÇ8#«Í@ÝÛy°v@‹Û#¬û‹ Ü_^Ãwgk ß‚¤øëSv°ØL`æHAŸ89à:¢AP €SúœMÉ[Ô$ž [gkžxR’ºÃ}4Ý:mS£š],âK1üÛ¹`AT‡ghE8Ù+UDkp¶×µœ”b +gM¤(úú”~ŽŠÒjé¢Ìþè96l´¬°MÃÏÉŠ? Ì¨‡=±†)veJ¶´2ÙyhØŸF3"¬:ÇœãF´ˆ°k„M‡’ŽÁ AÈl„LÀuR¬Ô©“Šõ6‚’¬`˜û=RW‰`5ˆˆÜ-Í5*ûD9¾v€X…«³ÉA]dÆyšílE9äŸÈLñ0e{^ êõLÏçl<Í% ±±Jø5”¡=+p^ª]øV9@ ë™N› 'Ÿa/½+Ò·{w·#Aß¶ÇA4×öÁbK ›.ºjÏJp5#b¸ž*°á$Añß:øq³!téŽ^3QÐ1\+n¨'5Y¥#‚߆ö BmÙm¹²À°K –gŠˆ¢kX¹?·d˜@ îAûÈi¦hn©íïó“² +¡ùl¼o/kÔˆ¨¾jƒf'ª¶ÛyÎ;Â0iõ¯¤¾%êJ…Œ×AUuZ±B‰WÌrÐ뜗âìèq¾ïrr”å ¿éK[Ù¦íÝíÓAçÌØ_¨‚@‚¾]CÐŽ¬Õé‡""f¼æã³Äký?œ¸WGâJUÃȦM+D ‚R$R}ô¯ëKÔ>èá艊݄¸z*iDÙFÜQÍßžÞ*{48ij$pÈ#¢G÷ä€X`Øi`׸’(Ô-áy]©Û’å×oùÜOöãnqð-éôf-´?1  <ÝYÄI/*{éФšì(ô Pž?Òãé‘*ÓRì"rŽgï~8d˜ìµ+¥Iœ?—.¿ç: ¾{°²öqÀŠ(Úø6A)ˆe¨§ÀÆì ôÞÓÚ¾ƒ|7›FUŒžvTóZÎØ©úâÄ•fö[lb÷ivræ`=жô;ï}IJw蜃qQßO¿ r2ÉW¿VâÉ~·Ð¾“:Õ±k3$ìîËߣ8ŸÄøõ3C}%^Kö ¼–y<¯?CâÝisážHÎ žc;·æ "³Š£˜O¸ë÷Æ.péä„b?˜‡mr×½¼GÄF.²×£ÅŽp´ïκoþ¤¨Øƒ ³öšŽÞ7hcqéúøù¿ˆªZ¿&_ÿB?¢Hî—6H?]3+IQó_èÔ3¸™€ª/ke~>õý8ˆB~€ :4üà̳žFlšó=Ä¡aÞté.XëDÄË»3Ûí7ÁÚf–¸Ö0í|ù-Þà×8´*lÖ<ÝÀ*ÿÁmb9•?ëu! x Lª°ùzªØéñ±>TóZø{ oeÃyÈc`›2L£#ÅÖ¹¾Ä´ð%m{? Úlâ©ìûìØ¾YNê 9ß÷A;ƒà"¼Þ¢Ø(š³t9ú¹áynø´Qß¡…hŸ~O;}$‡Ý7ñ»ƒ…³3QÅ óx;Ø(áØHO¡ñ¸ƒJÏ +1G¶GæÐŽøÌ v‚ZeñBÿx°Kb¬tÁÄS™–t¨§ÏSUOi|öo"Z °™Âñ…¾J?ª2PaJ(ê‹%¡„û¾Ø +6)!?+vËdžž¨åKЇº›F%÷;!9éÊ8Ûõm2>t}ã‡$e£;A®5 òW‰ÍmÁîŸWŠÅ²©‹¨‡droRa:zNKÄ 1ÇþD”ûBœ.G„{jîÅ…ŠEÿ÷¸¼6+¤B4€ç%Ù~~9Xç#ÚÖ÷YËlÁ¬p¨V¦-æ¯OÐA¢dújðþ"Š>ï8}$§£@Ï +!ëPöw9…OÒ;êÏp;Þ"~w’¦²Ø0ì½P¦¬õv—),>Y§Ë´T¤¶ù[o(¯·:áÇ +ÃEnTØ–Š‡äìˆ!Ž€â¸7í§xQöìNú×øÜ{ÄkR¶4Ó;R ²uÔb¨qŸr‰UÚ›±Ôt©@ûÉë<î»ß®{ƒ€- ÓãöµprwGÕZØqv+²Ý1Ï…ÌnP壌„.É뎠QôºPLÛ§ G‘— +"Q)Ÿf¾!é}«À‰pOpÝ´œó äéþÝ2Ï iÕïú0D{SÐ@DFÔ~týd¸{“^SÈ+ÉiRæEùÁxާCçnÔÞ¢Þ¢‘ŽE›Öjì 3Óð Ê`qs‘]úYl€õ2±/1ìZL2{7Ÿ… = Ї­ +29`ø€ØLÈHt!°×æsH%¼HwÜÛAèí Å,Á>Ž{¶\ùÞs’pý´iÐÒ5€DÖXžÁHÈÒWæa.ñq¦B\j÷z¶¬­Q*CÜJ7¦Ì±Ý-0¹I*í="€PÍŒ6Ä&õ=ª*’+Æ­°ÓL/—žšþ~jš`Üiî\é-êÑäd­-b0XâûŸh ”°btÍé*Ó5xì÷~FD~áëöx YCƒc¬s0ÀÖ•?ƒ ÍÃŒ +Lp§í”  =˜DÁñÚ3ÏQæ5Ê¡ø€7šƒ®¶£FQ½‚H'¡Íý#Ü–eÙ÷ÒÁ_³›Ì#ÎaÉb/\éÖR­ ª%ò!¿`-é=èOƒñƒßú£»|¬f‘ ‰çÛˆùÃõùæ`ȯTÑß÷ž4‹ø=ŽÙ©°ßí~ƒ|"–þÎïñ¬ZdŠÏŒøÍyÆ!ÿI£ÉÞ«5GhàPA9DÏnjöEï‹>7t†9ôרߜۣAåì¢3Ìâ…½ë^%AjoÈy£Ÿ=¸=÷ìy ™5œl÷â4îê- +/1r´ÄL“’õaW£Úª’_‰¸©E/œ: +&Ø’~q·j0ò¨“RØýæ<ëÐH' X{¼Tœ,&”’Þ#Þ–çHn¿F!†#Ég¦Ib³¸M«Ã‰+ÁÎgŽJJlR†ê„ûäK[¨6¡l‡¥“.(5ö² B 0ZˆT“q51“·€ Ò,ÑõMZ¡#q6¤Å´¡àŸ«yvíWMº§z'–NÈ‘ÄePˆD— ¢‚ѰüÚw¯ÒïiqWÙsàåK,~"§ -`ÑP²d¹Å$-e;)AhÜÓšh?ˆ½û埣Ң¤¡í ïÅ×ÏãIR.˜FB*º¾´ï@_èÉ!µÐnoë-ŠÔ`aKÑ"Mîþ&ݺîŠ[“5Ø)ò"´B“hìýõÏSÖÖ|'Õ{õ£˜ˆg{=šÔŽ;ì²y¬\ñÁGYƄْwð+ø¿ ”ÿÎJÏÐÁ=§ŸðwBj”MCžÙ~Ïyw¢D¡{šå›4}Ë䦜§ªF™;„âníËy +4Û¼EQtêv}¦ÇgÄ ‰Ï^H9lJT(è£C)’Òjtì1Ør`¸‹«õ£0R°4‚œ†ú¶UG٠ƃK ý3ƒœÕ° +£¹œKà”©êÛcbßJ§GI“—)¤:°íç¹Ú¼±³ýÙ…¨ÅÕEE%½Ð§çÁ,‹ˆjùeè¿ãNÛ˜Pý"À;Àç>/¤ øWrõ½B~¤NÏ{7=éQuœ!‡ÒŸÏ~ŠrfAÓd1­®æÆ Ã}ÏþüI€àNæ/¶^Ú·îADñ½ÈÙÚ™¡íæ¹Â¸îTÔ`ް®¡ÊâVi’F$Ðù§áˆ9+Ä@ö¤>¢8ÏuPGûñWae»7Û°ù (Y •Ø›ÕÄœˆSìaÏ%ib07õxîvC•$O–”yÀÍ ^-ìy«ïˆ`6–73ŠÓpõDîl'Ì6˜—¤FõœˆéÇz;DˆÝ#Ù PS Œ½ÀÍ®„ãÆæl2žf +‡Ó¥9a + „¥š/Õšƒö§1 ÕjÁMìþ½(—åîÚé—KÊËûÃnÓF×SSð½,+BDFìÉÑ^ÁE‹v@ R"*æ™×ëeæAEjÄÎò+ÒD¯kFÕd Íxì p¯äÞé[Ä…櫳èüÂŒˆæ¥?Édú ƒq/¼¦`þ¬ükWþŒ[›û«—¸Dc<Å`œ ÉªÒ ªÚVŒJTZ8¨sû@Ë” + +›`êGp… cçWÚ;lÀ‚üúæû×oí€üdWe:î0X¨ç--¾§+êC?ë=L~Gù«ü¯ÉšÍX°/9<{PÂŒ‚…’1sO'¶S1µ7wc4Zð»¨hÃïzŽí°)HÇó‚Vì‘J¤@†tŸÐ}*Ìߨçå@Sg15>]#"šˆÂ„dà¤ÉN±c½×F¹Tx¼Ë$?Z’ÈòÆY™– †Ý r!µ%®³jìÀ1É¡këZ¼ ÔáY9©æ“Ðu3ÊaþÙ|>%\BµŽ$_“÷ÿH¥$ìa×iÿ¾m<Ò¾[6:çÝç¬Ì™Øj'•–Îàz‚KµäC’8±„€· ÿr»ç§àÙvä +¿iQâ ¨[6­Š°F/Í‹+™ ªô>]ACŽˆ`ÒØ5¿Hz˜4q­5õÚ!Ià_|3~ü¾Œ"‡ïÅvî÷R„~é6}«~CÄRÅZ„(Æ„AöG–¶DÖ¸‹Œ½=˜aÏ#õ=¡‡¢.ÑÛ‡joúª‹e)é §¹¦l¶@tfœ8 çaY!ì))§a©¤À­Xð B@H¿hÖœ™*,«‚£8•bXl©@Q v +惭9$/‹xŸÁí‡Û•ÐÀ·‹¾ÚiRôlhBS +…ÇbµÙ:ǃ¢[N2"Qµ«í™ Þ5,Þµn‡¿œÈ[©/ÞG¶ßÈý6ÅQ”ú°g~ï¢!Ë PÖ4@ÐÅž§>¥¾ÔÃS …j„«A†”çç…0sK<ãBH`•GplÏ]F<ðž@â\ t»jàPx÷öƒô–t¬âþ n[§¤ßãf—åiìmîÓ4Ò-ž`T›Üš^-¬2NÁ³Àù¾‰V姈ՀóE šì}úÆSÓËác÷eý¿¯ìÔXôöÝSìq­­€ãwU8ÐG³3\o_*˜íœ'6*VLÑVlb!&7–ƒÔ³'vRvE¯ÎUQ9‹Ø´p’µ>„‘ñT†$påȽÐÄŸO@¤4~—bTÎN› ˜ô"€@2ð²dH=6…¤;äy¶×<›¨“â‰ûœ{õ‰ŠyBå9±¡^ø4³C*=ÜÁv¶ÝЇ$ ®ý¸@ÈÌãUØ“{£Ï (QéÀ¿k’tÏŸî5‹±èî8[³iÅ +]A©;-Jí\—÷—ëÎóÅH&<ÆÛrÛ_ÑNØ;â#Æþ.üNŒ†h‰-T ªc’šmG1d€iXsøø-×¶{ß(ú=n?,™xõÇrKBkº¾Fä)ÓâªÈ+æ±aßeѹåÏÓJT‡9úÂ1iÙñ€‘ší_WxÜÑ#cNØŠ-°Äæ½ÙYÀO‚ÎB¹*CÜg]Ë]dGàxƒ|)ÂCÉy®˜­ÔµíÛ¡“›")nQ)‚šº’},B˜ÌyÏG¢†Þl›‡ $‰-+Ö:©ÞÔ,D𢗀¡‡škÍ’¯ +Tã^,öµG#‘\vµΆXnéH˜ í°»0 ;¨2ågI&YécI™íç|^pÞ"‹ÿj”õ&}ƒvnàúÊÙNÒî—ú¨0J°öCâ*­°å¥ßš|äj®EC!,ˆtžîo,âè˜ÇÃÌϺ!0½vÕ@ýûív…ØU:bW5$?Éc°£Z®’Ëî3Ž!\€¨+0⼇;AÓÝvóÅ1ó˜{À ¦— €LCQïz(J$%9¹ù[îk:Èú—IÈ ²y”æ5Ù“J¡ÞÐPhEmÑêå¯HÁTéŸÑßÕ®º0)ÞIrV´¤ëì=Ï­J W ލÆý4 +*E“—(™%ŠŸ¨jÙPT¾ÁСvðXmD +gFÈv%Fæ# éIh”wÜËŽ+‘\QBñr†š7_2Ž?ÿµwÛµ^IÏó®À÷°8¬=y˜4‚À€ƒ9I|$m0Y†£Èݧžç-ÎõSZÐjHhýã›$YõmÞM¾ÑUuÎVEãV[bÔÓ€INOgßa¨žÕÙÆÎPÔØ{8I=\sôâ÷¾ÔŽh"é“èváHã©q‡Â ²Ÿž€js‹:ªúm«Œ¯ «¬GBÅOË·ª,šÈ1袨õÔЍ6 `û§÷ñΞÜí¨ÚW¢zî¥Yd”Ô¬x4\9d–L…ÛZJêúÐ;h°1ûóu¦%ö‘r2ô•wÙ(žD¨^2 ´È¾Â0ñŠÛ +oâˆ)U,,»(üöK‚GÚä²Ê©Ü žòš_3«ÿ~+(‡#}€ˆø%ð~Šuפ”¹x}Ö°_8íu(7£±¡QªœÔr]•Tõ+TÓn¸Ý4Ÿ›œî*#BávÄvÌ—»×g?z&(éãux³/7mE£øVS£±HöX½Ãv¬§ëÏôJ‰µ»nwÁß`ƒ­ÃÝWeæ¾"Š&UU^å-ÿš4 …°1…ì¥ÂOM ƒÜ!å·`¡Ây›ÇÝ)ùhÂ4å ôñzì2"vµtÚ4( ‚ê’àßPÏ 6Ñ"ÒŽ^…hžöu&ïð‹ë~¹,QCyT7÷«ÕóÕF¨¯{sap ¶äDW.öy‹w²Ñ£‰!؇²G…†>EÞÙ8®3Ù0A|Ióù{ȵ@‚ìY¯lw±ã¬ ÷s‚tªáW°ØÔSk ÖrøtdÚÉ#´B·;pÉHÕ\o¬QäÞCû—åÌU­Ü?Iðw$k-S-¶ýÅ::x“ÞCO:\­}Ô¬¤æJèÓ©ã(¦Lž9Þ½(t™wÇ6jÈ“k­¯“âï¼J‘GôYÐi õÍKÝÎzšh¸¸ú´Õ“­ /uºŽÉjï“Õª­VÏ\¤a=<Cv‡åIDd¢ð%}Nmõ¡hŸÓË£ƒ²“‚çwçáuÙç™×‘µ‹¬W"Xt»:2 ßÚ_‹ †Ï GC¢„§{•£XBÃëMc¡Ý«N†auÔÄQ5M÷Ô¼kh­¥˜é>K™ö€ÆP³Œ uÜŠyÜ:·ãœ`Ø—i5k¨„ ´‚_ˆÄÃb7¸_›ÄaDiKM8üÒrEk‹íäJÅÿ§—ØZ4ȧW|Õ´ºä êj‰¢€ä+½\3¿#©u=©õ!âK2êõ~Kí6:4=ÂQ=Ôf0†÷‡\'ŒÀfaL5ÄÀ™Aû0Y•+L—fgèt"|©ŽI ¥d®F =s9ñÈ +…°Y€>kiO…Š7.È®ÒS5Údåt] )Ü··ìKÎUWŽnœû.$2ðe¥Ÿéñ%ù>væFZ¡"™¾N¯…žÂƒ%¦ãÕƒ§Á2sByaì¶ïçÔ+Ÿ â‚“´¬úMÜ0EÞxHà‘¤lQG+ ¥Ý‘$ºÒ-ÉWÝ?E£9¤­†(¸ŠôÞQoü)Ší(:ʼn˜‰è×§ƒˆ¯3ÉYÙß]+ -]¯ú¯3‘I>˜QoFaÀgG­á~€X>®•ë{SIÓè [„63‹gÙ{žÙü+2Å´ì£ ÐHóµ`×RÝqÃ`Lo¬N‹nÍJ¢¬ °iæÅ:åR|XÁ È€DU™ü´ÝçÀC¼9“~!³TЩÕQƒ¸ñ gšhCÐÉBšä‹¹T¥í6ÁiTXú?>FÁÌH—#†Õ„ñG½0È'Ò±s}×ï†FÕòWxynSÊC7S¸ü1•5‚JÂQã'{ +ÊãÞyæÞ¯p7®ö¬ÙmW\"Ž£o/æå%Ô¶&ù;œBû¶G³ýàdáO üõ®Ú‘ER¾„å–原bñT¤c¹jÕü¦z»åióŠžZÎ’íQ•”Útƒ<»Æ„7Bž5³“ÜS¢Ó³š 6†S½½cïEú€œghÌ´]>ðÓ°YXÝó7:èýòð‘©ŸEW—”ôQÝ3L?(S2ý^=É2¢$?O:.Ó…þS×£&øT½ºÌnw<¨¹_íy<ê±`¡¸æÝ)¸U_Ùs»e1‹íxy}þ³ú +“zþ´X§“ b»s1NTXmøî½u‚Œc¬ŠJƒ3t•ê«û«ë®8ÐØ$èTEžìŸB^/îÖØWæI”ò4DiI€i 8^EGäÌb(2ƒØC§ö’­yŸµª×Ú´©k;«¾M Q“¬y=z2Óäç=È™Â%”*NÆŒ úŠï6ª(¨gж*£Œœoô¶”¡ºe6¦ï€¾~ËâRÚ@ìà ©ÁÊN¦æ¥å ÙÈÄ<Ö­2Ã9Å‘ âœ>€ý¼Ÿ¬%÷8D‡…–_ŽƒAè‘°ßÑ„ù·2¨ØKͱðƒšq<vî2òjW)c_9kÆ:8øµ•x¦Û·r?#”ØìíƒéÙ¿¼FÚºKY“p·óËbŒ8£Pt 3¡ +Å_öÜíìýçãG%`?o;Aú:‘›ÊÚïî}Hâ3$q³S¨ÌVÖ1åÐÈ“ŒEĈ(>Š('¡×>F9zž< ®¯÷…NDÆ”ÈuÝɳޅ@1•Ì­ñ±ÑAgªçãÎâµÜEЉ·½„-«ðœé¨ô’?tR;²#ÙCXÉ‚oI T1¥AAÇMVº.˜¾G— +½"pv¬À KÍ=³T²æ¨ó)ø§©¥âW•pβªÒÍC£ŠWü~ ¿ŸùÝ “A×âá²ÇÁ[RB¥\ +„é¨õ¨°UG’xä¡‹§¾ÁhÝé¿FçVï׿Îó‚ÍÍ:íUw„½AU¡ë˜J_"«S¿±‡àD—k…rù•e¼…Ê¥‹ö-àðZšÉÙó›ÃW8¼p×ä~0Ë@N 0ñAS#ãzIBó­Õ•’t³åœ¦ìîèõðŸÑK…1UV@‘—»ƒ!ŽnÀ¹¢¤è—ò?˜ŽÕ%J!nëÃqqVý[ÌMp0K>;ΫjD5±¼¡]°Ä‰åtãRrt{…-…3ÚFÛÏ&åMÚVµž†©8Ë7"8ôE”4µ­¦àü~Åà_jŽs8 Kû »é¯¨:>÷’˜}}/³V5ÁXa£dêàPÏHXs_Ù†Áî[!A%IìEÞ×^?Zg™ÝgrDjÝfZã@Œç“ä°ˆŽ ¬A(¶”•¡²|n‘ÏÇ! úÃ.ê¨î§±Q¡Ù̉bŒ/e„ ÓŒ ‹¢Ý¥µ"³8»ZÖSG+4- ºÓV(j1ªÃ^ø e/\ÛcdA‘ÄVÀ5ÑûhcÀîvÓν±#ö[ÖQ¬kš¬¿Øª*Óq%Ënh¼Ûz¤ »`½¹ŒP * žé #aÊäf¸w)÷´ŸñÒ FpÌíân¾bU¨QÿtƒÜ;ì*Ÿ<¸ÁÊJ®M+Ité<Ï 6Y ÷)ÐZ4Ué<ÈjTBØhiq²§«5”>tâiBS>c¾ÎäWb®yýi6ÒOÚþÛ¨ÇDËIó}ì¸{Æ:ŽãùÓyàÂäØ/‘ΕèAºý¨‚ îh’…5Š&'l¯*—»œÁçG²>?OôK$ñ‰œOS.«¿¤Óý£>ÜÈé„é +G]Ž%¤E–J½¤Øý¹ŸôKfs_¿ÊŠŒÌ䩬&±¡û뺙OAµ1ôŠÇ¥.ÏC0Þ¿5ö‡íÇc|=ÒíHµ×©ï¼àyÑkµ¾"Ù"ªú»˜‡aï¿·€LÊ—pG/Û-fElñ=¾ãþ§õ$©© +öXÇ‚r¯wµÞñ†t½ÙK¹ˆÞÞ+ØÙm?–$ K£òu&arè€Ô3ꪃ”šà9EJ!Aå¿oÄ8wâíÙÀâÿ»§yV’:»…,ºõ<¬fŒ +”±ì´0ˆîã¥ðiC¯f\ +ô*WÉ{‰I¬/-ö”=–T“'Œ/@Ø<%A—½ÙÅô„†(ìU4Ïáú1‰Ø©@ú@MópJ£kJ[QÀónÚ³b®Hµ°w +l¾QvB¨ÉºŽ^Q´Âïò(S$h­GY ’Ê“µƒÿ¯Â…«9Ö<ü;„%¿¨ÅF1-­Ê0‰&rä¤ðþ‡'k½Øö’…?òCÌ£-&üB=~Ûùl²R4…Göuû«­  ¬ZÌð®çí`BÕ“1Fø±Þ;o”² Tïˆ`¸ìÓx¤ +฻ÿ±Ã'¥´dBŠòþR˜¿ã<je­¦«b“ +œ +à´â½Ò*!£´?¹7LôRÁá7Åÿ“†“löt¿P#>€òا'#Ø/7(çi´ZYI¬ˆ8IȃÝÕ–Ó`Œ9ö3Qôžîâ†ðliÅ¡ +ÇuT8Ž NH,¬Ú™`†râÿá”´Òj27»çaNT`-áå8’vãpZك߷ ÌA ˜Ã@Í.ˆ·§˜éñ6ÙoþP@)ûèþÉX+ú\]ý¾Áýß!´ÉÓbµ±÷?8•7’cLpa¼*!lbû÷« +èàð­è§-í?èßcÕ3j0&{é"ÿèè<Ê §•cÀCå?ºý£çqr¡Íh5j?úåÌ`¡;"õ8ã>c²½¾<æÿ¦÷×þ›ÒÏþ_x ?0ŠÏ~0†—ÝW‰<ë¶_„bè±Õó‚ÜçÊ4‹]×o1R÷\–ç±@#—X!ýeËzä$hžJ¢ýË»ÒE«ŸßAýbåB·¯ÜÑŠÃuÖ³¢Ç1ñ¡oGÒo'7g./›ƒ6ä9xG5›ÌUL£x‰ªúÖÊzGpAñLÁ5Êò&‚!Çh9†"s4ÊKÅçz9ì¨â¸”¹k)ªÖO û¢³ØÏg{²¥¨O ÄÁy ;‚¶Q"Hȉ¸Þ½·ÓÇ #€áç*ؽöŸ– RÖx²„@’%5 +՞Ĉwœ6°žÜ$s3µãìB-"<ã—¥mƒŒŠ©QáTýÓ¹ + eIp6U#œ~g¨Ìs±oË™è£Ç6«•1 8øŠ±[@éõ kÒGhK;f„W˜¶Ã-o•ZÄ2¤ÀQ•øKÊ?Nj`T™!êJ ßÍ8vëñNYˆ0•E± é@¼.-mµƒ43Jí ø3'ÈWÙG•°N„À<ÅKîx4ˆ¢–ݹ‘”ý,:çw fô·«qÃÄ \1ËÛÞåÖ#îáEÏ*x,rÙ{jƒè=±$í3Â3Õ%çòüpÛ ¤ßPJ‚4‰ÁW«EÊë÷€1ÈHÇÐð=Í÷ á–Ï4@Ó>JÏ fÔ×lzÁþÉÕH‡^UàýùÀÃT4˜-³(¼¥¹*ýÅ¢"ÚÚm%W‰éëxVŽcÑ+ðç}åø1'C3­¡È‚¯JtçÏ)+ ô°jb‹ˆéàn­TkCÙéDhŒŒÑ»Œ¬8uÓ<+ë\Æ(€Ž÷vļ} à£[gx˜kµxœŒ‡Û¸@¾{Tà@ÐÞ™Þàe,¼’^Eš<A›ÂÜVä~u z ³þóƒ~0)ÒšÞoò= +‘Û…-ÐÜÏ5Œ r2`œË[<'cÚ§âéS¤•丑íDdЀ^öüðá„§­#9VƒÛaèFî¿ÿÃç?<«ŸQ Y¯XìŸÂiÇ‘è*±~¦rÅCwâ½I ÌŽ€X}G†OHò¢wà#ŽbpžoÔÀ€éØ ëZú v½Ð¾ÖÀ(9Àä)ÂnÛA¨-Õ9»6㊨S6>ð3ôž{Òó}_&Í•ªÇÝkb µŠàavD!ìÀ"u­$ôzyÐk¦:;òdíÅv6ÿûÈh५»ãU2ÈzÔ~ÈK%›G¢q ƒsg—"lcü†ƒ-•x*?Ÿé†¯ÿùçÔ‡v®„P8Ó§ícÝy)Ô'|DyLeZt~—÷¶î€Lø3¢¶¯@&j/÷ɤtÀ™B7îò±6ûlòežÕ^„xV ý…úÁbAœmÉmc:a?äRªŽ-]PÕ1„pô¹“’mrtÉu;GϬ£¤çM=A··¹Á\µ¼x†!šÁ:£âê2uM™ÖKFÔjaÈâ ìbà8œ)8¢‡Úý<È•®÷:ÊAß «=ã3sJ‰(:Öšý@,ˆM¥@)g;å&‹£±úÙGCiª‡Ò¤MÌí˜ðB8O5–éêäÏø ig¿/s¿/gÅz|ÑÇ=–ˆº¦5¼àŸ/ûV;ì¼Gð…꾆–Á‘ó¸}h¤6-^cÝŽöŠ.õ-¹o_OÕùüÛÔvv®úÝÂ2þq£bLJÔÕÒöu÷å0Ù™ž×5mF†¶…Á$m„-;@¿à‡KNtqò§õ8R>ÎÅ•à¦KH§0–0uÞ®6‘Xd5–)Þ{®1Ä”éøÈ?¥Àrt@™ŒÌ¨­àYª¯V¦/­–ç·?~eþôW|Me¢¨Œ[u«ž½ÉŠ‚ÜÈ :YÍi+T›VFE#ŠúÝÙÞåkSHÕSj)5§ À)/Ï4ÜÓ®éT‡ýÁTt_GÚy “h3è4ì@…Ú8°mמ¶ãÑßÌhqçä§ «À1÷þÑ<î{ÄáªÞ¶’¿üú>¢®ƒ*D’ßdØ6ßIh¹4CŽZ>±ÀT²ÿÛ¿ge{ ¶÷ï)Ÿîã¯EØÐµyÁÃx~ø|.~Kàs¿$?£(®ƒ{ÒúT)›•‘˜£Õ ÷x„Æíh'  ]Ã]˜×ãp Âq$ïHä§Žj¸x V)ZÑÿþ0 â’NÚEî;/÷~aFýæNÏá`¡(_L8,`ÇŠã¹v¥Uµl¾³iÒÎ,±‘ÈžË4é ÕAte‡}Vž%ÀXŽ£RMî ÐW‚ÆŽ ïc&ðõI¤lZôª_>+ÁÀ^¢° 0Ôã º/‡:"Ä.“ˆ¶âö ûâ!Ç/±•û²1uçÏKðä"aø”è[(÷mƒà¿Ð·£­øVô`¾4nû‚!võW1ÿyÔkæ¼Ôs"šQeóÀÂNT8â¥DÍ:‰RJ5ÜèæñYAîímO½CÝ§Õ ¹”íU_…ÉÙÇ-·Å-·¯£ßâ\ºòs4qZZEàSšÎ>¯L]Ž™¡.Ä·Él¿N¿¸¹ÕUÌ ãc¬Þ¼áÉŒäöމ <2¢·£=Ws ”p¿ND²fÁp÷dƒÏ±SÞÒ嘶ú Gq>x7½FƦ؇̵~1ÐÂf*v›¶jX‡Òºð[#{†ûd±JðP³ìj®‹‡SFjÿôsø&ÈÒ§åå/&±-Äp™z3I˃l¶plad"Çv¤xWÙ„{¯´Ï jgUT£‘7yµ4“½¥(RGâ+êž-–ŸïÌþJèÒŽºèv1ÁØíõ[àûÂs=Y´ÀXÖè‘aÊ®®ZËL>¸¸d²_ÉAû|'ü…Ië¹gOF0òÁ:TŒ‹w×Gî<…6²®fËÝlígcþ1O6bþuÚg‰Z'êyIG–ÆlŽÑ¸taèi-±f@óš;<Ôñü³ |uù¯ûÁ_dHçO$ÚWAÁ…›ÒÍBjñìÒ‹§JX`ÁûåLjwØC­øÄ«+ðÚýuÒDqDõü–Ç› +™á˜K„؉Å%cä{„—ÿa[ø=JsÌÁšƒ`ëδöF€Z¬7b&BV¼k¯ÈÃ÷I‡øÀ­xÂ?6¹EG¹‡DkE™%êåÌ‹0³Ò§ë{ñ”_‚>æeˆåôsÆäÍฎ)ß(ʲiQ4g¸t2øˆ¸kSûaû½wÞ_i-²ŽµÈûShÒÁ£·b3TYCöŽ-nݤ‰'ñÌñ¾¼VÔ1ZïÏAŒ´¥îax^»§%²Üåmœ4ÎéáRP Ò…û^ë±TEîúq¨öCDn^ 0é!߬ÏÇy¥?ñxîoºÕ¯¤[óÈ[—²³ ;Ì9ÝBpŽºß=øY©—ž¸\òÿ/²6¤ÖbWøô~/<÷QÕÕ–tÒ&×±KDÞ¢™(ÍïvÔ9ÊÙ­çð­Z9ލ9E^2eL#e@d$žc¨ÇY6æ~`^¥å +ïïûKÜmÇÐx‰`ò(+Ùó\ ƦØÞ°ÝœØ•ú&®8bE¼Žîȳæ©ùEÆL#„ññ™8B°Ð€s¦z-c¶Žýýl:J5íãàLÒ~¡åLúRzÿ!¢Ö(¼/lÈgý#êÎ#Ëø­|ÔP1EÓ±à›#:¼¾?úùÈÒC2æ–¢”§Ýÿ Æ#¨3„rÒšr{‚@ëqØ»1Mïö’ïõ§³[~À÷?4zªœŒ+¾éµ.SV³Ù\[ihƒ|Füùâé¶9:Ê‘?gŽ—¿»ß½’"}mÐÊÿøqoü„Ü|²ýtw9î³Æ,Jª€Ïq>´ÿ9É$ý°Œí Íò;¿ù¿ùUãI«¤6ûJ}©ö˜`Iµ—¹¿ˆæ¯{ÍF¼¥¯!MkÙ“ÓÊQ:jEàúíËôãl \øh¬YÌ~§Jè߸EÿxúG®Ûß?„Îj3e9x:JÀÖ<;ƒŽ2+œÌ"ñhQÉ;C€$ÕëécPKÐom‚tJ\o«lâî~"V"FO´!4Ö2i"ÊóåÑt]áAMy:Ò ¯Cƒ¾Ãhºò×Dzê•§4Þi«Ã=‹ËúÅŽ>ÆhH¨2 %Õù –P…”&#ÿâF­MùÍ8ÂyL³‘&e‚ƒÈ”W$1ª·B¾W[éóê˜Êîwzÿ*ÝgÇVõ~v胴3Ø›ÀUfè©i›" ø»Þ}x! [¯ØD-Òë55¤ +ç°bˆ€'Äwš=F¬ÏŸñ»ãjÄ=í_øYüá*‚ïû!@³žüë×Éeå òЏDIæíÝÖ'¶ŸSU,&+Aêðc“…¯ NgسNz»ZÎ]_y̧²”3^Ÿ“Ý"‘"¸œ1‚Á(@¸Úe0ØŠØW"c{'‡Ï;1Ê3aÓ{{Έ«¶Ãˆ‹J;ÍU¯à÷>ª–ÈOV’…v»Rà…REÊœ'õäÐ b ¦Å ~@òcsã2ÈVÀvÌ5`¯~8'3‘Ö²CÓR£frè‹w¦‡;j8ª&êvŒŠÍÕçŽ342g°mˆ(wzA5nIËÆ# yÖÆ1DHî¤jŽWaË.tú¾ )ôì²y’•œ ºƒ ·HpùS;" IAx”¯D7ÂêéÜ×±[„¡ŒDV“7äq±øÂ)í>ä…k/6-ZÁnY‹=õ0öfFÄÞ^ÁÇ¥ö +D(­šÒÍ034 ÔO}³ü\mdqŸuÜTq¤û¥ÎÚb»xÏÒ¬³PoèÁ=- ¬¤²2@VzÚt ­ZÕÕ€ö¸Xp4´YB.3HÛ½PÎùËŒL¦ÌÂzÖ»öDjB0Ïv¶Q[{½ ï!Æo”ô5j‡Ï0nYu5o6°¾†µGâÚ5½‡5–Y]vÈ¡ú€täqO?RóÈ"?ÿœþŠì ˆa¢çOP*Ò½¬ôå¤~׈ôYˆÀn¥ØuƒõJp~ªí`®‘+’S3©fø&w…tJÅ£®[Üùz~0óÁ—O=(SœõßkÜÙ­#ÆÔ:ìÊß}0ÒB%uþîÙY!Ò,}¯'»É}yXÆ©y£gk…›7† Gjü×M.þS¬F4 ¼O»Ç±R˜`½µÌ¸‹,ù›9Ú‹aåC“þ߃g¢žn6H‹¥’¼«¨iÕ¡;pàsy!‘2í|]®{˾¬¢ [’J|{A[‡Ö$>B˜Ê<+8€tÆl‚8púþAÞ˜ïIÙÇŸcOsôï—ä~~¬LÈ!Zöá¯8ò+¾0— !÷¬ݺ÷\çH•M‹.a’žHéùÁ-sW—ïqq¤èq¶@Fà3Êod꜖YJ‘IwèzG¡„³ßu¹mÈ€0X=¬}Sq®ç¾]V„JSwù6ý‡÷GDqzx¥f"YкˆÒ¦F¯´´»ÊYÏÑÞmÿ*S‡‡ùza Ug …c½ +kc?ç¹½/æÎ€÷ŠpœSA ÷óˆ~&"ú“@ßþ;I$¹ó(§Û¿âý×ñïWê”|p¯‘Eùû•BZª~¼ ëd²=A¬1šlUüÚ øz/”e^H;»‡VuxhÜhnt"™®ñUÅz ÑY?D¬¢apŽûýCM@S\sú aIÓ_A®¦ã Š#X­éÖ^ÒÀ~Óú|ÈÒN[¸ŠBÿŒR߇!ú>"‡B‹?|@Òä®õžà[Ì7mm¦ù—Þ9tîàf9*JéàG°>#¾I¼ôåÁ>+èÑ…ÊQ .øÁ;.àe6R¼ÙLl´ ÞL ­¨• @v$¤(Mà#ŇÇEƒ1(|hÍ8®™ÉXzùAéKÄ—AÕi¸1bhÝ艣7ŠšÊ‡0úËyäí1•¬ÇÎYLõ~› +¹¨¨=_¶ôO;Æ¡'Z¬6E>Ý1b…å€À{^îWøF©w`~qK¤`ÉÞÕË:Sñ™©¸(D‡Ô‰£ +÷®&4ÕF»¬CǨ‚nûŒH±}G EÚóüpè¡ZV]m§ÖQ +…V‚h£p§#bÊ~áéY$`áSbï¸l0¡‚º‚¹]S:Ö™qâûæã²îÃê¨iÞBxì‰LC!79ÃÜé>†ô'ìmŒÊ[ä?•ƒa˜¥'n'Ç•ŠŽSà:ûaõ_žœÛ…úº/(_Ê/•@ïŽÓ:Ò.éŠúõ¢zo;‹‘Ø/«µa½x~•(ÐýSýúiK¤å)8ÔjL¯xøB+™ªð•Xô'>H+´¡ªÓëñ«œB_¢N³ïD C¸ëa¸6\¥â¡™àÏœGW+Øî¥'…V†@‹0è«ýâ¨Æ×‡løìÕ7NS]瘴 —€hª½ÈêU㑲Ÿ®¨c»G•gæ7}¾?¬œÖäôî"ÑÙ¤ðr=ñœ] Å󚎽[öXüó0»¿&¨Oêý?I¿ÿìÂô~üžXïùOû¿Ìßþõ÷ÛÿùüÓ'+¿ý÷ÿãßÿýÿýÛ¿þþÝÿöÿáþö¿ý—¿ùwÿÏßü/ÿñ?ÿ—¿ùÓßÿ×ÿïoþþÿú›ÿé?ýçøŸÿÛßÿ¿ÿ5'ýù/þ÷¿ý¯ûÿáoÿÓßìSüÅÅ=_Wð*ÿ+ÿw?uûËÌý¿w¾Ôª{;Œ}ƒ¡eýxÒªËÓ.ŠþîD‰C¤ÝYŸùUÕYC o0PW0êûÓ_TÉF@*Õ„êÈ™WêZú!âµ{”£eênüVQñ›è}¬Rö>Bͽ“Q^{/¹„£1Џ3¯Xë$òMÍKj“ –¨¶oÒá½0Ñ#z}[_¤Ý·œ©‘áŸû½œÉÈsŽ$X÷?)ƒ}ï\ªìÚ‡nËÿ½³)M„/Z_w"éïŠæ™a%LcO@—~¿È;OXò +¥Y-ÅvEóc‡ì[ˆ Çó)OU!Sa·§¯õmWñ2éGFG•¶*ßSuÂd§©5„SWzwháï¬m¨¯LðoU ÷ƒÒ3‚R» +z'® eèï¼w¯xý()Þöîö¯±¿Š +ƒ*)µ¥#§E0¥Aq¼ ´…üÅ“'ÀsÑVC}ÒÜ4½Í1ˆ¦‰ª~…vCVƒü»„ä(|€BÚþ˦/¡K æ@÷×ñ]! S˜ò[¿Hú#׉¥ »üê·PH,Í¥rlK;àR_‰Jôa=@þŒCg`ì[ÝÞßä#êŽ ×bn1¸yUhûƒ²™ ÚUîÚ; +†…åîº=$a +#|ðLHâa±_~뎣!5½j–iÜ•š>éÓÈ"~zŽ?‚@}î²â7ù€G&Ý‚lG žÿo¼_¯y¿.§ë:x5ÞY †ž]&t +õ{µ-Ôsú ÷¡ é7›¤ßÀÿÑ»pˆ"ó…ŠÔXÏù›Àþë®±ý.åqÁM]\Þ•z„ƯÈÁr¤ÁüðÖ9|H1[† íðn&BÙô½¾--‰ÃËX¯›€ˆ{Í8ÊG5³]'ªžÛ|ùÕ»FÙX„VÕÓ¹af_G쎻íŽxœs<Ê…·õá"Zb4ý û9:NE¦hv·-±,^L2–+K›¯kæÌJAðç“Ñ2¨ÚoÇI}µŸÑîahÑ4ÁS]à9ÉÓLòôÏ'aoºž+S Í®²hL»n1áY7s¨X°3ãAµù X—º-Ö©…Òü·V@¥b¹¼K”ì hÓƒ2âCË%ðµ—)q`O|6*²è%||¡m˜Þö­€gÔ:îá:.{lF<7Åì.Üî+ÇW=Žr Û J/Î,ÞÛˆ\øóÐMh,—G»5"ý_#$è!ÛP €O´ÏÓ§ >¥Õ==9PQ*ÊJÔ¨Ù¯Ò|'[ }¿c2ÄšdL™f N Ù’¼Ät³ÇˆÇ~¤HnŒê°ßí£ïµG4òÒÇ”"yp½"ÔÝš‡RÌVíxöÖo%Õïû4úáËO®¤†õî¬è'äÏ¥yÝ/0µ»á<´X•]‡ÉÜd<Ñž-¿N€,Qͼ‰öÔLÑÇ¡çGDð±DøÐ1×k¹„véõäJ½R¾ž_d…]Uè½”¤/A‘ßÒöý¦% Ã}q9‹5*Õ‚Ðjþ£WäOçjˆ²1íWºÐ†@%îQ +pgd(9ý݉ÂÙKñ‡!Xg}X÷c\é(ªEo|¯ú6wpg"k×àÎQ5LªÉøâòr ±8g"†½ÿ¼ÛlÛQÑ@5Có”™ )#ð8~ñDtÕöåïªþ¶¾8¾–”Þ§Qµ2$¹Ý… -ˆÈ÷å5ý­*íSÏIËã‚ͽߺ +Ž-…ž~¬°¾E¤>)‚÷{9èÿpœÖÔ9ÒçÐ^?(BÇàØc\D”ý:OÆÍLyš–¬1ˆáëuó"JËOªzðDáóøˆ!¤Pkñ*¾PÔ:\n¡TÞÅ­ÅôØèøà$|f¯e¨Æ( r-Ì# á‘úe/ ¯Z¦œÐMNÀþÊø¾~LÕŠio΃–&Â0t¤©`ZoN†+”(¨;Ï/:ñŽæ«ˆH§~ó†5e_k¹6h/È`/ç +?žžf,‚Ç™ØNÈwæµßÏXð6Sû–ƽÆ`{¯n?|nf¶ëÐç=ûÞGTëºÚÑÅ­¶Qé½wÚÓã+Šöƒ>z;ûtÛ#]nÈà–ö- ß'N©ìÎUáïGÁYž™Ù~®Š–k·é×1àL~¤èËÑ¿V•;ôë™Vô@¢¥XBÇ+°+†ƒ&ÌÈôPíå}>c@HwRôh–@„’Š´ƒ»"“ëñsÈÎ9÷ @þÓÓâ¯zºD´¯ÓØÃë—s[£âRØ+OäÁf‹khŽ·SÚnD“çsÑŠˆ tàf´÷¨ç,&¹)kÅBq’(!;¡-*bILh¸ÅH "Dz×ÔžcKɆó¦jQÏŒÖð£Õã#]Ä—®¤0t`ÃÑ…á`D{ǽáß#²ZµÐsÛNÑÅ|‡æ‰Í<ÿ´k*áó@ü! YöSò yü?DA—c·ô7ÿV™Ä‚mÿ¡cˆÝ5ÌÔR;‹ü·iªBŒÖ° ™úÓ9>´øV¶ ùóó€œÜÉåÄd¤‘BÑgÿéAQÝ É¶2Ê}$’¤Ýžó±rX‹hÿû²±Éí¯¬4¾J»îÉÐ0C2úr{!Ú|*§ý…@73ó犙y Fš([ÝørÆNîÇåkŸ ïÔ óÁ¡RF€(™ °"_—>¯† ùÊr‡\q]’Yüˆ2p­ê5íjR·ÉëÒ ›ÏÇóF¸Â14º ˆ_2e¿ãè½Ë¼ŒÍë’ãÆ_;ÓâÓµ ÉÃM;æ^±yꌸ”»Ã°ç,p8Ä=ë§2g¶v0£íl©ååc@¬ëʇõ‰ø6VfË‹ÜDYL-;~ûã$è-@4<Ôµc?…MP¨4C»Ç½=$[B²G_ÂBâVuÌ…Éüp›P¡´hç|QÜ·„F¡CÂæžä6âò¡D îMHwT Hw™2F®ûr+#Ê]é:ö”h’Šp¨¢Ÿ<ÓìYŸ-Fˆ¸K´*vÀ¡Ùëìù¼Éå´Î¦]‘áKée®à‘P}*2¼ï®Ú©b?‰ÛÕŒ ·>ßdßB4½Žù)°x€*-´˜¦c ïA'åÕ\åµÒisÕõÓ¶®î ózO0ï!Íž­˜‡*˜yþjF¨œJ",Õx@Ì;ǰ©ˆêÝsVø¯D!vè +½`’ÏÆkçOðQx˜‘þàäîÆ÷~±ÇãÈÃUþ{o‚Ñ ¿=î…þ*,*¦žžéÒnš+TEs‹SÂÅ.]‘çgD’"/ÔTJ0×ÇqÐ J"zÐí4z€“[Ÿå§ˆ[™€äãþJhÿ2 +%Þ&þ /˜•ôñ‰(°eUA¡`ô2œ¯²ü²#þU(òŽwãû&‰cœq‚@ËÃÄxÆÛÖš'}]ö 2w/Oky2؇öj7ø¡ù«ºøÒŸîÛ@­ ‡]E9ÚâùžQA.ý:?…_Ÿ‚Mƒ/;âK‹Mr€• $Ð;?:];¼zHq\¡#ÅuÍÄ#›»ç÷pbÍ‘CËót}Dí]§I<¦ñ{mã$ÿ÷‘5 ˜E; [wÁÑôA8|=´“÷yföøõWŒ­4îšV0ÆBTÖ@z-˜1p°$Z³Ù´Ø_==Öv¢ lR‰ã& wȉ¶ƒñ®w`QPá^1—¡üÁ\¦ë{SO£ý´®‡×¸wZ¬+¿þçw˜8IåÆ÷ƒ\#ƒiPš°°X$T ¦Ü·Døˆøqcüµ‘[-~‰}œ[‚ÞŽ(—b¸¥ï[zU¼+%ž„;7b 4â¿Ø˜%6¦gÎt­wšÐP‘ïÔÉpdcû8×Q3«^9Î…”,Ýxº.Îjzƒ8@9×Ä JÃêc/RdÛ‹¦<}ä™E)¤:'ÞGÝ!ÀÿõÁ?ÚLjYºYÐÚ¯Ï*Tð´.1¨Í ýBj.›Yif]aèÜ +Ù¥V³uùáó~¨ZK…Ÿ?·[†@’ç¬ä‰˜oD?Ïñ§"bί)`ÂP±ßѱ¿ 2jA[Ótó—„#Þ›M(´ãMD¶åZ¤SžX(>G)2gÚI/íþ) +Š4*°T4žök±.ŽS”µhkÌG>„oü€ÄÊ7¯ë vFœ!ý~ƒtí”Ѫq ª“>ê<}Ô¥t³HEüfœÖœ [Wã0ðX55ŸµÜùŽ#¦l,?”äµp"þùµÛ÷;Rô0áÕóç “íü³Jô(d°L‚Ê‘óëø¶vPStè‘8e7coND©FpLjP©cQ¬=</2#¹òÌÚ¦ÝäðxIK;Œn¹5Õ4(¬¶+õöýTì|¦ÆžVýt¦˜; Å× +Öôð}®°ÚIÞiºç×i*>r¶ «"ÉëöC r†aŠ”Ëˆ’†º[öSÀˆÝScÈœ6ø÷¨N“Ñ3âÏð) +¬“q’bQ-­Sx h#‘°¢ò›{†ò—¬HA,Ù©¯‡"j‰ôbvXOC\)$“ÆJØ6%l×sПQÌj÷_—’!B-.rzºqL5S©—ï(‡£`¥ªÎ÷Waí A›FQ« Þȳï8¢lÖ$|áFzÞ‰œ¾#¢21Ÿ#àŠêÿøu&·I,œÕ@âœ4R²rÏÜ8/ž^k‘ Aš˜Ëé8¶…gJ€ˆ/¡×ú„øºßNÔð’MæØbf(lGï’—sö™˜VãÓˆx†¬I”mÛýìþEJEÿC÷‡-a¯¸‘ZZQ“­¾®(ɲ†¨@ðñç“+© +Þ¬CêÇ™8/A@ý"Ô¨ˆã®¨«›Ý÷”¹û$á/>‹ÖdÖ¤P-Xà][Œ}ƒ{úô €s¿ž ˆÕ @?Ö‰ï_« ¤˜ÍM¶ïÇA¶åfûbùÑ¿ôÓ«,‹KøÙ¬[ü¸O;·»çv¿þÞDu˜•üÔå"C•ÍÂŽ´D0¬T` +wÂ౞3™Ø<»K#tæ[$l÷¯3eÅ>£7Íà3쨫œ+FŠŸÍæQ%S# õN ¤nÒ2泂8½`–/F/Âê~÷<þ†è>¡5Ê|–瞌´`¦x“8ô`?x sWz0Á9Ï· %rGD.€±5O€äÿslãU$¯¬H쇇™öG@УŠ¡óV‚ïÛQFhÀ@{÷÷"î'€(f‡hÅ`Wì²C) ó–Êx=Ëk€rŸÈ…„ƒ·¦¦è@CŸÇË\£– “qˆ²½Ò¤'EÅa½¼¥“v¦»+#r‘‘3£IÖpò<Ò”¤˜BÛ®ù¨L$HÎKï‡oA?­-«‚78NmV À‚¨ÔÜ‘ÈvÊSÿÁû%üvéÖwÎôõÄÖp/Î…Abêßײó-Ò Ðø"‰Ç Qò;©r(ŸÒ&ã›ÖÔSà ß}œÅ3—éÓ?·ÇÖ™`—rTÄexÑ€ÈM;ýêëЈBðÚ ÏQ2ˆ'ƒ Ñ^ù1LT¤M¼²Ølêïˆ8Ь¹¬müu ´A«‰†·‰ +¦Ùŧ¾+â¤7sšù >í÷!9¢€;‹ÉTòÇ”¥Þ¯ññaW¦ +÷Æ(Öw˻陫áÕ÷qÁLëŸ9ÁJzØ ¨¬³sn»ÎG:ÅëTÅðs§°Köàax®ddOyÔg_§·£‚w{޶Ú÷¨®ÇÉb¿X2³10fc(ÝíUõVÊrÍAŠG9펡kÿŒâµX·öÆ4_ +àGTYZ$÷D{f?·åÜ´rßde«ö •ÝæÿgáY*´B÷ïçU~8Í[±HÕ~úŠczȧþ=âckNÇú{ööÒö:á(õ^³@§3Dª9ˆÎǯy +È®%SJQ²Ùx =]8M +AqDx*  æ…€n®ðyA)—¯Æ{M˜ìyÖç ùÊ~~€FÌ ‘¸È!èŽñØ€Ãbƒ³<?3‘çÕì·’'´Û®dò3^ÀZE$@»"ž@SɘqÆ/ì@ADw„®ª Få·ý<@oùþϙҬô1prš?ÅÏ^ÜOÛ+v$ºbŒ.|{þÃPP~_ÚYþ?£®ˆÀEýê¶:žWtPïãÊ  2c¨sF›]‘¸Æ‘œÕLDƒ—]õ”3½‹uo[‹ôçQ@ ú'JBjëþÛbþ^p DüO:z}þ{Òy;¦d…0j¢âvQu8ÇÇ…§@QJU<¯á Ë™†´7»4“í‡IÙ9þT«„·ÚQ'äÇœ]/ÈtÌ“ÊánÑÔkHªžÌF›[¨"ÿ}Ê<¬t* dæ‡: Ôv±f„@Õ̇Aw‰ìã8™©dÄu-£yhÖ)tŸC ý¨Â*S}ÄwVTâšt ‚86%šüw±cû¸sÇ@T,6kˆS!R‚Uü—\à¬,I”¥*lòh¬ªÄå*ëƒ2$ѹªŒ+?`ÚèU}37£®ó¡6k´Ojð^6šöO¸ ·~"–~éƒ"LÅ7µáO„®=ÀIßMŒŠ¬‹¹`Çx·ÝÇ»íG]d »ˆúÜ@¥ìè<€çÞ£Ö•¼Û©¥ì‹¥ˆ:ƒ‚FÙKÃ<ƒXò\GœÄÁÕyãÎõ&ܘâ.Îé‚Í£Á<†÷<‘ä߉QïŠ6áG6" 6¤©hÝ(;ä¼ZæLš]ªòz;0G‘þ~M¡•HƒÚ¿šF2 +P³ÎïçdbšéÖ5¬jŠª®ü=#+æwÕ¸Ý/ýÃ/¦2Œ'°Ómõ5·A¢À5µ4*XÔ`AC ,D #hÛM¾Ë¡h¸Êåm9ªÿs)Éÿ "Vw¿õ.F©³0בî#a$qÐÍ Bˆ1D¦ˆ¿UÍ ‡S`‹p!QwйÁÁ(Õ[ãRî,¶…-`£è¢ÑÎÃso´ ˆ „g²V àÏ8¾ÊDüº½0m&É@æwFŠ0Êp4®´ãùÝÕD¦ùáaEŸªæO(E—AÀîùÙ`©5ÇçxUîýòX3»“ÎMÙÂÔyÃT]£{"µ‡ž:O$’ŸxLx”Lâ}{ùÛãjLœÅ/ܹ Ùëí6ךõ’wÈø "5]åÊQØJXÐwN#Q\”ØyIy»]Pûé[Ω#pZû8(‡ÑúdFí< 4G‘J¸“ ¾'.ÖÌ +%o‰p>A’ /‘ðÃ(]»'ýݰ«;<„‚Š>‡ò¡w=Ø£òYÏ|næD~Ñ}ˆõ²*œ5Ýò.—”e/k!`*ÏaW¶Ã®äA¢¤§s?ë¨×¡6L~UpŠÚ¤¨axÞm“YZnGþê¤å½¡6›¹z£ÐÐÕŒ—[|¾€à@Ðk¼Ñ deCžò…-xâ<€.ãA34ÝÖ¯­¨)C‡ªz· ®×ξÈoIj°¶%©¹ZI['D¼®ÓäW•°Wߤ>}Å9m¨î¸!黩铕ï8ÎT(^±›ÿa¢ö¦~?J/ê`!ù™ØŸ*°—QÊÒ¯#^jbˆ’Ž¢ç.@â&XœâÏÇþŒöØšXæ¡3¶¼­GúêaIPP¾þˆ«|'£¾8Ò{€NÿH¼.p`¾ëˆ8?ˆFÎDtA‚ûw½ˆZå_f6í׉²ýý6­xåeàˆo[ŽÄcÅFÉÏ5N|ä¬ä<‘·vPäÆõ#£$Àqu!í¼:Ì€s+PMåˆ#ª5RšÈ¥<Š> !¼H±ŠyTrûÌtîaÎ’Ú­eH¾ï¬ +²>[ òŠÎ'a–æÒà- +iŽäI5äÞ¨0^ºú'+©ù:"}¶ÄüGÔ¨!ìlFt(þ'!{5=Þ/¤`OÆwxRÌ™k AƉø‹Ž‡ “Ë%‚™üwsj+î\5û`¼èárW;ÒªX^ØoêŒ|¢CŽìq¿ubêã@1mU”¶ë]JÍ«DMˆ££™ò‡¯ÆŸþŠo#½' ïO +W,¾¡2¨PM?õïNt¨lAªctƒaÍø°»hèô +8NŸ·zïÄt¦Ôœv‹¬6ìï/jZFš7ªpÿnš£6á`^u/eÁÐPž›$cGì| äRà +uLÈ(Þ>~8ÆþÿëËw}*¾ 5¡Oë‘dº`@èa„Ó7ŠZ,®*ÂPÈÐN*ÙéŽ[Z5ì~±cR}ÓÕŽ² ½[/¸ +&CŠÃâ‹Ã„A +^‚N ¥?ÖO#Ì‹_I#¢ +êX÷²–ÄÖžÞŽ2+ü¤¦ì÷kxŽXS1‚=ÃejogSôQÖ¯óP¶D(GÚè62+䯮×ê©Äê©·\€jÌû/™7'‚õ’ˆw^…ß7˜0¤—‡b¼Š6Éyú}Úö-m{sÐ;nÑû(}íøt×Iš_SªñœÆfß+ÞÐíÚ¾û¨ž]f3I·¯fï¶‚—ºË”¬j%r~H~¾Ó{`ÄÝÙ‰íÕô¦»^3á10¨/ß­íƒEe»ÑŒ&“Ã$²Ieñ£;Êpaטî*ï™öÝœÀ#Ü“2âr~$J)j4ºöú³®ãp!œ ¨™ð%¤7Àò”çT®òl¯†½³ +%‡0%_$MÅ¢§íñÖØ mvŸµº•¦ ØîRÔýõ÷ökú<*¬‹1 +»lÕè +Êc§ÎW?6·l_æs>Ö0´Re™®ðß{ôK(5Œžh5Kµ0aF@eÞ¶yùW?gå§â¬ý|-ò€¢þ]«…+X3}˜ø•i„Ù áµax95qªÈ1Uœ(#>б„zúïuË0/ÎÜY>=ûcwåÂDµ:#(bî{ã£:¨Š]œ!ÏØãÂ^~W`%•qQjÉ@4¨Ê/WâÊp-Ö€+r¶ ¨rµ:Yî 0d€P_E;H­á¢øh1{$;¢ÑÖ”yÜ/#½öý2ŽeNz™¦Y]ŽæPÔ_™8÷4‡à}–¼UCߎMÍŽèQèÒ2ýŽÎco×ñ~É´s_æg8Ï6L]J‡¯JÉWÕÂê…ߤe÷O‹µ±Zœß x)ôÞÅØòŒ@Õy#ñ_Ì8`9‘Tª2·ri§ÇëùÂêVÙù¯àØè2p_ fož:rçS>#Ùñ.óo´d‡Z;§Q–xÇkNüÄׯ¶šQ4kg Šä‚g¾kî²?Ø»d\Ÿìê©àÏFÈÈA<‚ç÷QŸF9ôUqñUÇsÿl2oïsÅ;jµœÉ䚯hokQ>¼S$Tf!¤Ó<ê·š¨ÞŸó4í_ñSŸQ–@B¥«O¿î7"˜Ú(MQïøI“/G´cN±èpÎÆáœ½DäÀª"êÉâó!¶j®ò¶ÇS±ûk?&]1¢®YQ Í”•T9ÒÚÌ;]VÖ«—Ì@\ä.P˜EI- +˜úTÜ!Ñ?íh'Í ´YýBrŽâ{—\ÿuž¥ù.d‚CÆçE6J '*ëÃ4;F^ïãOOé²$[R‰ÐRƒ é—®Žœû~ݪ5ЧJÙ•”w¼=é+ѼšvîûQ&Q?Ű3*hÌ0â3Dø…¿¾B¦Ñrþå ÉqqÒô¬4³GíÀæ«v”=ªî@›QPoéËÄN’W/&xœ%»3»•ÊØt—¨;¥”:?»x{ìÅç~BÏ®ï£UBC• +.Ô2€€Æ"&rË6Æ¢ó a@B÷ º0 rÞ<˜uWs}zâCHßÞþ{nx¦xÅÍüœš‚B’EÍÞ£Ô¢à,æ®} zð6•¬/±¶zI´æ× ²WÊW 1§KÛØ´Šø@…§˜ê)ø…¶‘w àšÀùƒkJd¾l$œs¦N*Jz´b‡ýÅ-y,`T__‡w?mNÉò5Â|ÍÎ’æ”Éý­ë`ÔãÄmÔÊ£©g(Ö9®Bž(Ýõ¿Ãõ‹e|_c^fŒlÊ:ÎL°…â=pŽg(Ñh6ŸÖ’Ã% endstream endobj 28 0 obj <>stream +Ü´dUjzâ%p/Fõ¸ús´ÄXÜVØLÅwôþVr¯Òþeæ?oÉüütd½\BSg|§E*–%pŽ|ªI‹øEõvÙD3sØgõ¯Ý¦ƒ‡ |ëcbÐãCŒ8/EÂfwÄÐUÌâ<ÈÛܤ×+‹Ÿ­.Ì9:è–]ñõò;°Ž×øÐKOp?Ç®0hº"–®Ê‚ÀKÆ­¼̘•Û¨ðǾ[Ó©ï#A‡Ws¾’}wŠÊýΗèzÍ£ûDÐLí(yîå—-nÓêø\ô£‹ìóÉ}ýM3‡Rì¯ÊWó·r¥­¼/FÓ2Žv\å·‰'Ÿ¹<¹u?{h©’˜–uÆ¡ÏþèKt›_ (jt§A]A{?—6Nš°l{ýÌ|:nåL“vN°ØŸ0]‡ƒ@¹‰¥)o÷Õ¾Õk½g3£ƒ E Ô- +“úRXwñ ÔÜ—Œµèi"KÏ*XBsì‚çµS/æpÅô܈i¾ÁbmžÈW4Dás)Ř£fWhGwB˜Nû:“PöÕm:‚íD˜÷jñµã ±UU£¶%fˆq¯7Þ`xë¬cð‚ž/'z¾êõ½Š‚÷QŒØzWl“£à Öjd»¸¢Õmd—0±)§ŠVÍg½’Ü=MfË·•ñ|ÜpxzT•žÚ¡³{\ŽÔ0ºV» âÈΑËs‡åL`Eâîòa÷xó¯ë TVÕƒÅV +Jj‚ð´¯Éz`­<9Žö—:ùû¡€Þ‹|ü:5´îÓ×¼P^{Ùë죈0Ô£8óàqJS‹ÇñþÒ²)j_ÔcjÖ0¨F¤kv—€Cˆ0IA)êm3i`½£€¸&ÊIU "úCÙkHÁ äs- +>áiõœÒÒ½|Êÿf6#(TÍž_'bœÍ‰ú1?³šì{y½—“GÁ»üÐp`Ç÷š3Òꈣ!­Žà+ÙK¤Ghrýeíhë„ÓLâ(!¦­L `ålQeÔš°#YÔœ™ƒ5²M¼P›x‹~½V<èÎwQÙ;íiZÿBºî߃ÀG¿»þ}è׬‘¼O¬uÀ€¨žp…wZÀ#sEÍ)Y ªÿLÙîvAýb;‹))Ù}˜«œšñ ¯š5ôxádLÈ!ª6Y'ÐÐý®Çðto`óex–++K§Å ™©gSüž6D€Ÿ°Ét&;=x)½–1ßµ…sším<äÜ¿øxš„>éò®‚ãSü0ˆa¼âÊZZR·BƽBž™ŠªðûÛ'²iS p†·ª®ÄØ7[€ý݆Å{ó +¼ÝYÓ‹”ƒÜë+¡|½ ë½ÁýÐÒ·‹¹vz*Zx¬ÃVGÇDËÛbmë÷=üÇÓó“©ƒŽÆYµ"¡¿³ÈxtdCˆ•÷¸c¨ÍðŒvü:%QV¨Íà²J{[\?F±ë Cv™i#Ö1_g’ˆBÓï>:¹²>ô_g"éb¥Ñàò*A¢Î†mt´m‹c%…n&#—r }¨MÄÌÅbdôž‡ù3-¡q€Æ®;‡)Ò™QÙ³jbªÐ àGUF—ÈUÞ¿–>ÌRV”BA4äœèž:«P$ÁñŠÇy6ÚŸk‡Ò7ct¹8pÁŠô*åŸzhlÏ0!¬€Ý¦wÅÄô‹ŒäˉÙÑ…ð8N$/@‘Ñ.}ý¿ b„hrQlTïR\¡_6šØUŒaJþ* .Ï- J™çý<ÅC¡Î, &¦LФÚ{x'ûwz})«Þ©îPÔÜÁ!GèW +^^¼SEøˆÍOœ7åõmN$Jù›G…? û3Pc¤Gêk™Á~âmmŠ|òïÂ^/F8{u¥¼»ãÙZN\A{åÅöê}é·ú„8O¿ü|:ys‡ZÊ?RÑBg‘l‹ùzëQÚ.Oö:–½{ &šU d²6TÀ‚õîVq·t/>ñ 3sxmÇI98QšÜ æzd¿•ÂæwYFŠýŠæž¦D£/%T°Oõ0ãÃ2üdÁ¿²nÅEt þ3ü3œü3" û×[©¢Ú^ؾîjtáÆÔŠsZ®P–Äœæzw²ý¥MÐ-g +Ô!£¬ó›q¥Ê mµ©Hb\!5„± +àIù½½éÃ×E͉1Õž¿õˆ*úŽ`¬Ôu‰ ÓÏtEs¿0ˆ¦¿€z <2â zåR„€;¶LòPE_œœ§½ Uù'ÜXˆ- +(ÌKæ +—n2€Fƒ +#¦L“ëнér*é64Zd^š"SSV2fyWlH× +Z¢Œ5ŸIƽÁÏ%èx”°À¦DÆ,RýÊS>íߢ”úâÊi$ð:}ôó/ë|ÎèH7ŠûÎeé­•·šˆ¢MÔl‡ò=mË ÃôJ•Ø.J±úƒÓ\µÍ wgê,ᬸðH€LZ¿˜ñGÛRV–)7 {X· ¯NÚ¸ZQXÇ´)¯&Jõ,$åx3‘³ŠŒêgˆ™ ˆÒÅ™uú@™JH˜8¿ÎsHð¤U-¯a•6@¯ˆÎìõbÛ«z¿™¹hì½öÏ£¡Àí®Î1h_Ë´þe(puáòø–õr~[ì»g´†náa…ò%d}Ép04ØÙ~<~ÿû™c¼ðž(Š&/íð½gøÞjE^Ì䪴+ H)„&ã-ûœu'\ûåUä¼zDw*³JMÝ­;z̧®®ºC>>ˆ1¿™ +ó¸©äRð=åŽ8#H{H¤!ä!`ƒF¼–—Ëh¥ §…ý¢7ÿÐÛ×>¨â×.Wœ4énÐhÁ<ð-Í&Íòƒ£9|@Ž“wsˆ*ïý‹Þu$ùʨ¤Ðvž,}Z·!D3€De Q z'Ú«ü§¥fþ¾ª1 ëTÚµšfÁbUËæV?ï×ÖÎÚW +{¤(6é!ËÂBÐ7¬ÀmQߡޠ¿¡â1j·Ú y ‡5-ô‘‡!ðnŒ%Fƒ ØüÑá]׈åÚ4ìš,˜l渮Y|æÏ|Ë"•qå[ìo/»– [)‰ ’Á¿Žâ)5wλü˜ÂP¾˜ù )ƾ q¨ü¨mâ®K%`C§ƒ‚ŠH8Cå[eÊK@µéj=5-­Ãªà½qVÃRPßbSø‰Ü“®À:ÁEU"ñoªzÔË´¼a4ǰO1„ë*Ñ+NÓ!O0æâ¡Õê É>N·éaONH¢eÃ]€ËÓ»õO¤¾8å–¢DBüŠ®A½/K#˜`@¹oì ^áÀÔíNXZ˜˜NÝ÷‹ÞÒž°~d˜9L*ÊàòŒ€D¯êX Þtc¤;wL®°¬!¸°ö´2L¬^É8ê›ÒAöR<Ûk¢m¥µ"’8»rÔpiC·a¼«Ÿ/Ú†”ô«é×n”o+W?*ÜêOî¯ÚÐh;yiçÞ åúu×MD:´¿`ó;ùÝ(µ³ˆªÆU?J­ö}àH ç – ÓyGÝqˆ¶ö.'&* ÔñEî`.ºt5ö‚OÅšP3ýv »öJSŸš¤[uY›‘EQ¹JR]úÏóJ»âAaÀí Ž"*|á`Y/¥„é’û +ßAÒƒìJür0"EC’à7ëͯ3‰½ |<±ðœæ[åbjÍw=Yå¡W %K +›˜wMég”¨[° 0ÿ8d}/QFA©ú–AvTà¿s,:gD0Ç'‚Í5ÆÙëPüo´š/˜s¿Øp8YZn¡1ªÇ²ä]¨´DÄÛ¢¯°Ä—PõÈÆº…뎨e°yìúÜOú$ûGÚ¹ê‹ó¿¢`(F·âü—ì…îëV~á¸ÕãÉ»ÊΜh8ÏÌë7óÝ0 ¬ãxδæ[ß—º¤üTÛ[ɬ±ÌŽ.>YË¡Ë׸”k·%K(ÑH2}|ÉÔÎôP•»?VñD×skÉK Ñ™ˆKs¨¾l¹ãtž+Ð8+Òy!A¼ +ÿkÇèLt+QG~$üy¶\'sóLö¹aáÑõ,d³¾–K­ˆjKœÔ-O½.ÐûËj«y /O-A + ÔuM…¹q/÷hÿ:lÿýŽ9?WÀŠHȞɂTƒÑbÅJçö²I½È÷u||«†»¾<úì\ÊAðìm7™ ÃÜ/ÜÇÐÏ6ˆÊ„—vE˜ +Ë£2‘ Æ,à_¥Š^‡Pʃµëâÿ¯Âr³3Ç`îö3dH\ú¢ù +âM>ÿuÄLn™Bqyûí¢³à „ý€ŽÁ×Ö¨å¨Ûê®ÈÍ  S®ä +#P.eúøµâ@ÐS1ñ3æ }bï˜Q^÷ÑkGj7SÍ/Šá,\ì{,šÑ#¸ðè3{: ÉûÕ…GØCËÀý?c¶ÎÄ`Gn²W’J—$‘椉˜r©nMÕÖ@2Ýÿ„ +½gJ°Â É e¾Z³+¶${‘h÷ÑngZo;jÎlõÈïíãôtKŒmy—"@n{Ø,è +IBÌJÇ«ôÁÎGR¸¯¢×rDäg•³0¶ß'àc©b/ã/{Á{iAõ¨àAæñëߪ0£àgÏE°Å~»)gþîeÕÄþC!¼¿ ò¹ï{ÔÒ¸Q5_ϹwìȹZûÀ—‹6ͯŠõÄêêHå².Qô)ÐÐ{VS!zïp^Ѩv‡ + ìs¨9‘}wÔþ1ÕÅ¢¸6ŠiQU·"º£*þ NgŠž)3 ÉûX̬Ýlªl«ì×7— gÂýa²P’“3¹ðq›p[ «`@4ãjX¡¯Ï€ÅôÅlTƒ9ÍGÐP`ÿPó>Ð("LÔÅæÑ‹¥}† +$ù WþD*¢èå×_!–œ~¯W}]þ®Ó—†VæB‰ž˜éʉ?/™Ÿ1ÅÜŸ Õ  Ô>çÎ_ïuÓ¿Ö~ZþX’÷™¾e$?]ñv18è0òCgáüDæ¶ßó«çD0Ô(#:/ªÌí€ýÝâFµ÷'#Ù‡ˆÛ¯6÷WãÅàDƒÄ©´3³c Ex˜%´:_¢ô=Âã¤Ý(˜m£…»õŸ>èr"Q饼rä «@ºiZ &HÓæfÎØÌÕÁÎÉ`QËÉ{Þ'¢ˆüé56Dß?slðØûÀ.¹˜Ó3S#Ãç蟟ÿô ~DÁÃG°õ*(š*ÀMÉ¿J/4d[†e¨1Ç«4ål2=3A»f]ä½ëìâF™U21£ñF‹€ÆÛ:6¶ú½À(¢OõøÙ.PûuxS7˜«JÆÁHàÉŽ‘U…?bW÷}‘ø&Ô·ª¢{×W sM0í± +z»ú±”(·‚º³¶TŠ|ÐT”ã»Ï“¾zÄ}4»JæU*y§éó./ {ØÔŸ€f[øMlœ¯¯b5ÅéH;bŒ™Á˜Ì¹p¬Ì‰J†çÌ‘5ÿ"JFa‰ÄäþàªçíV`g6+G°ÅÝk ’Žy&…:ï…'ѽ&{?–¸¥ºMÓé%e*­"þèuùÓ_ñ•Y¢Ží~qðx‰H±F#/§Ø~bøQ8ÆŒ¨ñˆP¢ÑuËPíqH-$î0EùtU<¢©ÓÎwëúñÁcœ¨²QF=fT£ŒñõÊ®áÊ2¢9°CÚzþU!Np}MQû~íßïZ¡¹•7A‚3 §C**2ºçLƒèñõk¨iÛW¿/™ji/Õ3 +å•]?f¢aÎjŽ0ãÝ×Ìm©ÿQ«èfŒˆ÷@1¶°hѾ@¢è \ŒÐnÙQª Ò¿|ޱ®ëÄuê‰p‡ŸÀÅž¸±G–4DŸ‰`ezpüÎÛìŠ/Úý‘ RmfG]WŽ“úJvñ94•± Éä~tÛ]dŒ@ððh{ýš†e…›=ÜùW_ˆDg†x©¶…Ž˜³Òøî’i˜¾ì¢ŒëR˜²C›^…_{*ýÖÇ©^‰–LÀYDëTœD]›ë998½a¦¦‹Áeý1‚¤¦«U §ð<ߣVØzÊW^%í#1N—p¦¦ú¥˜žbA׳½@+õ3âÏg ¢ Í…–¹Ê¾Ç9XLäÐîî""ïó©)úa- Çí1ˆ{UÇ>£x%œ1Ì¢åÕ<Ó)n>žvbå]¯½Ò[œGX[iŒW2„¸Ë E H°%<Ψ›œ½ÍÑ’[iÚ®IytDU=y±w‘»ºpd›‘QT{o.ºÙ_gÀô¨8ÀK |5÷ž”3ÙíÛ]3"f4±p8)•»ú8Þ;}¯š£[Ž·œò0£ [>¸»ªáÄÔ+£Ã}ëlâ×èßsïMÞ¾GÞémÓøuÓûŒºh¯EõÜûaƒœ\€›®ª(ù±¨äGùþïy váþˆ<þþ×€l^‰Ÿ½š9||`Úkç&÷~[?¢ 0Yñ&U”ÆŸòÉìt‰ÔÀ«žr”PpŽ&á^ÖêëDä:lmíΟök (ƒ{(#²Ýߦæi›•'“›C¤‡Ú×Oæ FÓ¤ByyÀQ”&ѹƒ +N¡ÚQ€V“Ê“á~¦Ä¬(ঋ|ø®*ÇjËžíè,=Kì0¹Õ#2U5•Še5áÛÇÑKL««ìX§q¶ÊvY3g[]ª5Ÿõ«Ö.¤Uœ%ºz˜^õÎïäuô oɸ‰øå7öéŽ6ûþlxrß*>p˜Ô31CúLGEÿªk{ŸÌuƒM&b”õBÙÀ,ÝQúdô³¬ n=æVn­*oð|ÿ~þd÷ýqNô×,’à(©ë³ßÒêˆPïÈÁ½Jx ¿ì´$ììÈ÷»™¹i¿U4;Hé'£#ÆâäýEØsÝ_E¿~\!;ñ9v¦‡šÕâò ÃÙŒÔhs³«ø6cczGÌÈÂŒ8„ ú¢ÑD=.5D(°óò “§ oéM·Y’Ò.ðhwúZçö«Zœ—Ó‹DPpúðƒ¹Ö/r™(pÑÏ<È+±TïžžûL> ˆÙB¿ŽS¹n;Hõ¨‰£&Ô¾Ž]MîÊ Š ‚zƒ] Ù ¶ß]¡÷9Ù¦'~ÞÛX©ù‚äµ™ DãÕ²9 +æ&·{ÕZå.[ÛU«-Q.a¨…ݼT8òKdݳɖþFÐWÿ|gJí¼bG´ðgÔN¢ê¹V-¢þ4Fìž–Öl^ä˜lçÀ½ýNLtítН Ì9AÍÄåNzȆv‹×Gùˆ  +£&ŸqÖ»b¹ô=bž„ÄìÕS7j(Q˜]éÇŠP" u¦Ó©PAÆVðÌŠf™?Hç›åß3FìGÄÍýëo@¦Ycê œ‚ÃtÎÚÕ™xZ! \5ÏaÑûežˆ»>lk¦IíþÎÑ”Qõ¨fõðÑS»îƾ°4va홾xõƒ‡©+S•ÎØ˜º§5âæ+ÁÙˆy"ž× íòúþábÇ’×ð\£>±!‡P|kQðúÕ‚À8Î|h/CS­wÌ%p¬üè19Cü†y®QÀâx²,ûÞ‚ qCÑOþÁg>oÕÄãú½ÍÝ_Äh²Žˆz2ã˜j4yŽfVÕ>¾u‚âów¦vßÞÇj餮ªP¯)ÍnMùšå‚m…¢U¼qî¾7aJí;Ý~G<÷ÉõROÄ­‚þ†Œ1;îVS€W˜ÆÔ| £%S‰4+ЇDPù~ÍÙÔ6'ãÍ( aå†J8É;b×++röq(÷ˆÈ³ÌøUÖÉ`f¾æ bÙÀl’ûÖ ¤©¡d‡ã•YƈSÖz(_ÈJÓ…vFä+Fdhf›ÄµîD‘|óÛJñþ£K&¢0iVÉψ'˜\Q2¯ÓÜG”Î6mÄÙf„Ú(þöGü5ÆIQ€Ö[’G¹ \¦Ûóá™àÌÀ}ÙçOÇÑgz ‰Ú\ =¯ËðOF#pðÊ“|ÄІfÆÅüþ¹s½Z¦+'{ç´uö~X€ÿ²*2mC,†òí3â}C«wÛŒçùá8˜ðH¦Ã£­d¿P² áÒùcETàJ4RõVŸð7¿wA‰²ØˆÞÌÊ#6w+éŒm¡œÛÛ_A‹näö} ß÷‘{׃BÂIàÌçq^!Oµµ“põ+ &Rí:8”8«_òÜñøØYÕãÙ®ÔLϱ¤lÀ`†#qÔÎrb/<ùq‡\Õ‹¢€Ç÷cÄ÷£~í3W¬êv”ÐÏnM×i}å8ÝoP–XUÞ¬d ðTÌÉ9DŸ9QœÃ[Õˆz$Ž‘Î÷—PÚ¢›ÅhJ…MÖšEfÐ_VåF^„ŽÅ™«Ô.ýZ_YŠ8-°I´?¢nHn öxªÒ­ØÎ›žašñ=¢œ±¾&¸oãþ3J'®À®I'1@²€‰!djÖSÓ™.ïoòØ,qºYî/‰Íq„%Ûñ€c¨.i¼z8¨p #è r"èñJ ‚©&”¯D ‹4ñK»¦ØáaÚΙ’½>Cq$ Ÿ®Ì¿Ú +ùQêùQîaCDߌ³Yrÿ,7:©UõçïìÇû.¢úÒÈj—¦ ^CˆZÏä0Èw~F`žHgx"1ð–>ŸQwì±Lª£Ä®_j™?Yò ¾ÿülÄãã‹ +LgÝ'H¹Ùý¯Tý:²ŨžZSsO0g¤•m‰Üˆ<¦7{IêúÓY„«& · ŠMu Ìæ ™(µQOÇu™³šÏ>ñ§'òðçwŒ7mîÏVÔŸÿ~ÞûÐs-tRÉ® ZŸ?nQÌ=‘ÜC¨úŒ/n)Ì[˜Ðݳ„=†AÒÇØÑ,¿³‡ï±‡ç­… ðrýí|ïyâ_µï*K™lŒ¥YkoR+šSdÙX +;JrÔû†53ÞöÌ:FôV¾YÅ`Ýbü«=ÎwÑGÄ?ž6’k÷ÇŸï͞ʮÞ"Y³Ú©{.´Mªðȇ9ƒqD~¤w<˜Q¯çÑ•ìÊ ºNÍ‚Vôë혡Ôÿœˆ•áPF¬Qß`þD”çË]éºBv¶wd:_‡é|‡¶t…}¦×¥vÿNåËB¨Ñ9hZþÿ¬½Û®mÉq¦÷|‡uc@j€¥<.¥Ýr[öV· ´! †Q ÉR7mmA•$èíß9×^sVEî¹rŒ9™‘ÿnI ››TœìÜÍfÔS@³`Qé”|)Pé)dÃ<“¤ô~z˜?¢<®Qe1€'d'áoÊ”±!BÉD.ÐÕŠŠgÑ_½{ʲ&EÕ÷àM£U¥eOÙN¾Ká›ñÄ4x½ÎTw£á¥NÜGèqöäÓÇÙf’^š.8Ðß«i9!&6̨™M1q@~{ÙCÖd‹õ`Ù/xMÂòÎ}ƒŒ%ŠVL$qG1·Î³IU„&èÇE¾WSLâÓxR2Û@`[,ٌƌwÅ!Î=ù{NËè« s¡¯nSOƒÊ J| ý, +ó‹É˜=÷8·TÔld8o•&™•ƒz©Ï=C®N|3åuaÎÏ ÊÕAg%0{\¢Tìq§p¤HQ “%¸ŒÃÂ] ByÆl4#W¼íƒSªî¾o WZ°; +7¶ÄYGg[‘2Æc°Ý`OÎKr¦ N£ŠÊSÙÎ#ÒêžæT¨3‡âLÚ¾J<…#Wb+‹`ç1ˆí™-Çxx‰‰ƒ.îßu›ž ƒrBõŽšGC[9 );SS1Óqc1œ±ÉJSoÓ˜·pû4 +dVV7ʮմ܆2ÊyÕ(ê¼P`ðT¹‘ºuv +êQò&N긃‘XÕTQå]L +@5µ§| ‡›I<è°O½@” €Œ(«CêV¶Æ§’馇é5¹©™¹až~`Øp—‡x­×…«_«¼øs^„išs&¹D +‰éæè–ŒBŸk¼{{¦Ñg¦l¡ü8ˆa:o“½/`K‘ÿ _Ê}ÌdÒ%M—ÞÝdk2 ‘ó»~XНÊ0N·Œ©·¹†ø>Z@Y9¨ˆ…6ÁQ3ê!E%n_Åðš’Çü¤,¯ôŒ_Ù&ܯ©²æ{¹Z_ +s°þÕR Å&±{iMœ;P§±K™Æ*ÁUíMŧìæ~ŒÌžþüÌ5B8·«ƒvéMÄŠ¶\Ú?öÐSìöóòÜ NˆfЦ °_g"Ñ*jX„>Ô°ö¬Æ^îük\,Í*ua'D’èc/Á©§B‚;m0¥l% M¬Ý¤¨™$EÍ5,¬;+Õ,¤k3îÊàb9œŠµ\ˆ‹²_亟z”n¾B¨ \Ùz±Ùrc:"s 9ÑÈH¹È„u @ —•$¶ÆËL`ƒ"«Yö2ò1–¦£ÖE±×Ê|-7"CL³ÝÅ:̬aPêî„ÙìÀÔTŽsMuµQ€«¬áí1¾-‘PK˜‡6Ș­?—ÓTFš¶Ûå¼§GGUI'™· 5&—JM·Ÿ´Ÿ±ê‰6»Ò" ^-5…°nº;Ÿ0ßÈOJ|ãc™eøkôǃP™H×iÎáÐÇ´%bwœÏ­@‘A|%y!M¨œ„/{Ø2̱*›>Á‹qó!WˆœOî±K+ùù‰H"«”¸àCŸ¢ÙTö“Ñ0x—¡. vŽqV|7º„s¶”‹žzÜùƒ2*²OSIÇ9KžrËÔîÅÍa£+,á2|P3¢ »×]úÿë²ép2~u)«+;áá5a y›4.<ЉÌÜÆUpÂV^!¶(8˜Jû_U—ì¥1:‘¿¡“gè!4#±§LZe§Û@5ødiæ|…ê5ˆªLQ’²ûþÈóö3aeT ~âFªP¥ šz¼aãDÈpZžÌì·`\‚‰u’;Š|¤”w"%XDuÏ)1ÃlfŒEá½&yXTo=÷°WÊea(æÙ^ŒÓ³Ydœ-‰@‰í£A!„ëSóæŸkü”bØcÛýts.Ï€L§I³ÇáL +CL¬éVwgrN’5bPC5sé–*5BEIÀXr Šú™¬ÝMžqŒ­ÍĘLÖ[Ú/T¶¶ GbÆpdÍÉû2O!=0ÝgjLët&}†öâ£ÎõÅ8ÓT⪎ì]ÂÕΔ_u +kÅC1PV:A¿R¤š §«KA”žÓ Tä“T“³ýž-aJòf<\ä›Å,BFPÖ¨áLéÃ{ ˆÜå?*3âmèΤ Ÿz’ ÑÔð‡hL  åªDM2BÙyMc¡×°?ïÂew|¤ìÏ¡²Š47ÙDh/wAt>Ê*ˆÊ†ÄdR²(øù˜rK_ýìÿM{ß ¨?³¥„/oèÑUü–šÜ­jœãE*#ÒøO¤I.vô«N¼WêtöÉuÞ…O'“_tŠfû¯$¦/ºÏÖcùzîa7¬[Ô‡ƒhÜÏãT§’Èq–"&#Êœ4ç—ž€Rñ´ðÜvSVÑ·B¯%pâ" ¶^ey¯£öëÙ6ùÃ2ù›Ì=2 ñg… ¢ßOõE»EÏ}Ý´K`²‚e{䉾êÕЭ`y•hI'Äö¡ðA«I Ê`íê¦ ú\"µÄ¼`•Hç°Ê’òʬšià ­)Ùø•gJÇÏ{›:‡ÍôðÃÂjAéÇ^(ª( ÖZ9$Í$ç¼âÞ¡"@ð B­2 ¸ +ìÙ¢ÕâîÝÝ Ü. ¾!;R–L.äÏ*&¤¶Ò¢’K‚¨ +ó–ÍõPrᯣBK.oKÿûÄ]ß¡w{>Ð9. C€ê-Uª³ø÷¡¸C>4$O*x\q —Ù?ƒ€àú¿0ås$8(A ™N¡KD7ÄÝ€4G;߬nîÆ4š’!o} Tuž+à˜§a2àFW&øÅ8d·E‘–iD”ɆäqµAÃ^õ:¦Yã!)ʹ}H°YKD£RŠ––Œº„ƒO…~'ŸÞØÕZMâ%-Ò{Ÿ)'U¯&]³YAèž IÃ<  öa]Öo?±ûc"úD²ÿQ¢ýp°„K}O¡×ÿøÍùãíOþôíïÿîÇO–ßþì/¾ÿþŸÞþäÏÿêo~õÃßýáwßþÕ?û׿úíï¾ýôýïÿýÛïÿñÛ¿üÍoø/øþ_~o'}ýûÝï¿ûÕßýæÛsН.nß+ø=€ÿÆÿ?ïÜù1ãügÙz¡0qä)ŒçwˆÔ_ì Ê_Ï'ò¸d…É-Iõ)ÃK©oR’"cú&ŒÙ´îlnQ¦?: pû›´ÞådeS(¢©˜u¾á!ˆë0—p"ç9= +ßëCçgƒ|"ÀøÆ¶íÁ<À)è@j^â°Mg¬Êi’õ:AÊ%[ƨַésÈÈØè€œZu 5ý…ø¿ · ’áFÊIú_ÄNK·ÜI>*AAjšª§ {€&$O>;ê ºÚnŒ1Ò°„w‹šÁoß„©–h¹’òW‚D™Óàɨuå,ð[÷~¾Yy|Ÿ(+e<É-dp ³„§ß ZX +Ý]Luj#†œLW»hòÕa¦ö Ëcꀱ zÏ—ªsJn‰7%âÓ *ø7V¤üAUmª&£Ó@£Ý×µ¦ ˆ‰ eAN°`Ï[%q$Õµ°–䦸?mÚô—Ôšðž‘éjŽßÅeà«KùKr–vCî1O ëã”ye¡1DE +Í×EfT(“”ÞŸFéüU~qPVº°?ùÀ¿»áBåk .ô:~²¡/®kmUT´–þ +/©+óagXI$rÔ$“;)Éúh0"¥Ûlp{„ÿXÎÉâJJĬÈ`âe”JÏÀ"3ÚˆòÔR:#ìUbÞ©«~Ü”5òvÞ¨*ÐPv$âØ’¦J9o”ØvIxç(%ò· ìÉôƒ5Lýù`æX¹÷‰ü¹ƒéå[‘ ˜ßrò¹h†Š<šù,Œô híø+/ûf³Øå>) _Ù™,o–ªòÒQ„x˜ŒBµŒÑ$5W•l£d/?1ØÌS]üÀÌ™¯0I#dfŒW ÌXv ( +}è¼'\á¯dl  \T¹Éo‚¡ls5”òëi_Ý•3;àmJùðáÎÁ’dn\¦{µù¦eÞ£'F&WýÜÎh‚´•éªi’ýˆ/Q’,BIËÖ‰íª^Ÿ}éB:›¥ëÌüÕy2¾Ø‰gÏb7´Ø½^"#†1Úuf#p‚@*Šs‰È²Ÿ]+ Ã/š4€û M¬>C4·¥Ìì•ΔRB(qÖ»È*#ž%CÐ3`6=-¼!Ü»°EÔæº0S¯«â¨Â'm>:&øaÃné_P:][=ø"鑳h³É5aÐv‹bè#øGzsp¦‚‡g: C6“¥Nó;è@ÖzËi{[‡ /• ¯–ç.‘HàÁæ‰4sµ/Ê7˜x”÷‡cß$FL¸ÌC?¡ÄØó²ï…y­ÍBê"…ß»jÈÚš<» 8D”ì3[”Ž£Íy‰zNB·ß2C1×·¹SÜsw¦¾nGJÜ¥¦¨xö±³8” ¨«Œ‡Ó¡¤bœ¡$¶ ²3ùqÀ0t*Ø£+à62z¼Ž;tEÿšƒ0e”j’¥ö‰;ϲKuðoaóà';krªfK§áwe71Î=&ÿf\E6rW8«ÇÏ|Ÿâ{AŸ ×ÕÑ UÉHm‰¬­ª·ð‹÷jIz(s™ÖBqËUqZ~Ó8z½ÙÙˆeYB4¬BWT´£8SVX2 õX!’M/ª2ÉR¦nPõF€ ÂÞGBe°r)Þ£ lÁ {z M¶u&«âq&Ùè- eú™ +DeV¨¬"nkåÌÖ²°A±¾b³+r Jm== $G¤¹º÷=´„5€[ùùà@n_¹ëþSAÃümôØ4EÎa5™aˆ4þXV‹Æ*3o e[|"¶A ¦ ?$AÒí@—àÖ,¾¾J¡nXåûlbÑþÇ4tðG +Vu`Kƒ Ï6¡ŒéâˆÊ¨†øhì}Ilaïz¾1PÞRÆëUŸÒ…LWoÐQ%;ÁÇáµ×É:ÓÝæs«D°¼ç‰l2ƒQó@ÂõÑŒND™Ji¯áµƒ†Ö%ßA±ûM rºh\M3á42«E[Ûõ³°yœóéà(eÆ Ó’ÿGq{ÆÇ¤ýÞܶ"6nPYh!^žÎ>¯ÝP•cYªW¶Ž-û“—´¹%‘qçH=s72«ÿI•Tacú¶±ôca6+-EẉknwHkçQœu‚P§šH‘|Ì@¿”³ì€R3½­í°—Ƥì÷¨û£æç`?›àÛœ•_T%Ù:5ÙEÖ2Þµo·¶ƒíqÅ=¸‡ —néÜl®aa×D¬DË ÃæóWSîß/èĪÊǃ-Šº³yá0=,7¡eùŽü}„`Cþ¾Ê?ëmËÙ¦¸n“UnçÉlbÏlêMç‘‘oÂT|²áÄ*¬ú z@vËÛ&^^<¡M@+W0×L93=`\-£À-õP´¦CbIw¦á3Eg î|H ì‰%™-i^“¨Æ'–"T–W}j¡FE¹JfÅÅ“ô:Kà @*ìõ¢òÑžÓXPeg©µT† ÆŸX ÄèÁA=¥©zˆýÎ4¬ùü,Ñ%z»tõ’CcB.ö¼IY†Bñ”³êdë¡>©RD‡)Ó9tŒe Ë×®ÚÔ9·S¹è…Ò܆'£jQXŸÉ,fm³€-"*1²‚d,—.5»‚å'i>;ð±&ÇÐR‹MTâÑ=Yw„å´ôŽd/IÁ@ùðŽÄ¸-ž?½LG «X˜“XZ©%©¦#V1jQñè€N+b+.šPÞy¦bƒª…—áŸç3:n´v!U®jHtuõHz'1¼ {`íLšØ@×f×4—Ó J­ö@@Фÿ>¬ g2†,Ó£ ýY”`Áß=|éÅ¢O­‹”a0%+¨}Ø™ÊÔµ,½ÝÀW‡ÔF[•×hVÕš20p-°ÉKdsWð-IÿŠ•9ÄŒ3á©©B{5¬<ªÖ]V–5¹2‰±$Ì_˜~ ñhù ››p±@ý< ˆ&¹éֽΛ/ILoë4'Q*Û”Û¾^(•ùUµk¢¾_UëÁ‡Ö1>õžAW¥@I°9L—^óFÕžËRÏÖ¼m½šø¸¨ØJƒeX\¯~©p¢\Ñcx„vé%—2=2.¯³"x©ÔiIm«úÃRÒí@ ÙI84žKÔ;‚4`\?»ÖxÈ$2gXÍ#OLÉ匎³ $†hÁÐz.µ†”µ&<÷0mæyŸÃ×!i#îˆl›ƒ †°\¦Œ–kÐQ.ñü¢LÅ›¥‹æÿ¢‡æ © R99W»ë§q +H&ˆ?¤G¶ëôÌbQ²•fHû„$ÒÌM¶ûŽÂ϶]¹or¢89S Ô¦¥aJkvE%Ó³@NVXS¶U +(M>˜G˜ÝéÙ£ÈH¹Œ"–\¸ÏÛ}vÜvÜÙ_QR{î¡_4åœAY 1´½òÀ‰I(© Ö¨ª·DL¸¼êAG^cäíïŽïc/!*X ˜ñX%cM±ë…Ìî. zšM 9B +‘:Zhý¹C¼oƒ/ä¼o%·õb˜%Ay<:åǦ…oKý,!<ÕÌÅ“i¹ÃHïî°Z=AF +›Ðn3½’âäåþ,Ûd‡Oüô€§­f¯{Ö>6$Ù"²A¹Âmê(LvY¶÷Dd(è4  –í­©S£ \D­ƒ‰¨A·ó€™Ûâõù/²8*›‹ 7Ÿ ;Ó#s +‚RìžÁõL^\ïù&õ›©íê 0"ž}ïݾ÷2Ÿ;Ø{ü5ð‡¯zñ¬Ñ?æYOÝ´RäÔŠYB}ÕaÊ q£¯“#£ñÜëd(c +™löµè„:˜4ñÎg-ÉØÏ=ì–ÊáuC}d—ãP €Î$+šbÚ´¢ ­N&õ©Çnª ÙKBÄgŸ½$Ž)SA²®x+ǃÄ6y{Ò ÈÛSó>?r¾nN$ÏâSUêêé¯;b¤1’þ¿A䟛µ *½gõŠÌÛÇ^ÓüO$cŒf*çµ·ošsXŸÒêz¶ð +ÍÀ_7sØ~ð5{Ø}"IK/¼Eù8Î&ñ#å®Q$ȧè¬{t†ôŠ<ð·˜g8¹ ì¡Ù÷ØF™Íh7gf9Ý4ɹ(—ئ +ôÀÌE›!*H󀍨ížiub1<³\äÑæv'Å• }é±LÍ~yêjpOÍÝÙX®g 1M´áŽŸ‚€°(2>/a§Â³È (}‘ 5yk\—Â1Â'ÀªSÄâ}|<`Ñ…)U +­æùôçݾ›†Ö›ø\TŒ ó`0{ò¹ÇM˜—]¤èˆ[¿î%}rèìÖ@, 9BËf§Ò}C•¡*cQ1Ú’y1„SõÄ­†¤K¯ô'×ÎtÈZ¯N e3õ3ä +Q=a,³gÒ´sÛ@":e‘›È˜’l 6·zÁ;½:ïtsË3h½N€˜Ù鑤_}z(Û’å…»q._‚ƒô íqz\…&õ®ÝI7oV¿|™3‰m¨ð D´tTÁ3ä§ TΤÛ_t>RU¶ ô{Õ%{9€¸pŽŠ +8SQ¨”¬ÊÄÆ'‹J<´UŒöûöŽn„3¡Æü \ÚÙ[È{ëš´·ä‡,&íC[!Š•lIÏ·Dá 9¹ +(µqgÌYzżxJ› ?ÄçÂjšlÐdòh–>DR‰¶Ú%öw`=uøuÔs ‘’Ì6߸£œ»æ–Ï¡J@ ?ó)Œâ™ô¢ÇËEðc/é8«ÊwÞ¥ó Þ2,Ë”—ù»47¼nu–µÜäD†×AǬZžk2$¯T·¼èAiÜòÜg? % l‘bÀ¨ "pIJ®š*ùP¾H¼2á”VÏN +PQ•Ì`Ä&¡^éäc´P t†€Ë*#‚rÌɹTÊLÃfp’‘Õ_éÈOŸýöœ»i3´e'æúÍz èý’¤•2]èίhò_y«ÎJm›¶íÀð-@ÄÂfÄhœÊ\!à(ÉI²(oV{2c +#Æáýz'°c–ÓD2Ç +É¿i8¤·Ø÷²Ö±Ð<³Ž6š±ñ¦\ü[p/ñî¼N,ÝmüE)÷œ`IVêNyÉí¯êä$ùU—ÙÂIóî|8y8©I¨U0óâÌMTO¼f!*º]·È¢ƒ£U»MEä»\­PA1Œ›”YPXíë°ÒÈ>dÇpª¼¢,?„г°XÉu ))Ë+G¤OÑiÞØHŒbßÂÆ +iÑŸ\2¬Û¢‰J~ô|æ®Ù½“ЖÞ|‰Ž•?S°HgµX¢ƒ™ëd%-ö®½›¿j·%`?q*s†g xwžšá£P‘¦ÿÕ–LP˜ ò„@6¬i(˦"+’qUl¼ë*ªÛ¸X4ž›Ž=²,32!ò`¦@©—@#£üÆŒi¢’N½[(©³Ý¸à)ÕMò8Mõ¦âwGK°ÉÔ“ "·Dk%4dùIõ@æ0KïO¹’=Zv&Á»Ș}ÏÄ+H/%^ìz²þ|ÈÁÃÒ¿µxÒ1©tY\Hö† Få$~>%@'θ±Ö7dûsK!ÖWìP¦.”á ì, ²˜Ä\©XN™IMÙ¬U©Ûyä•ѱ€ŸÄãÞK7$±¶ÆQ‚I¨~’½AŸüôX”ÏK ¡(cª¹”KavP]:¶Zôª¨)àèüv{e xµfgš¬u‰=^vI°©Ê‘ +“宨ñ™e”«ïPôD!M¾ŸÝäh˜¯R2Ú§|@J0çÝxÝè7ƒûõá=(*YàBriè¢îÄy%Hè¬f¤Þ±(`²×ËÜSâúÔAW B °Ð$w£(§#ß…eùª4ÍçÕ@âò´ þs¯ÖŒªú ÙqèbúA’Çc\9Åý ÙGuK<|ÑXûØÃž+\Mfà­|Ø‹qô~,Mû‰ñ5_e¤„Ï,ò¢lÛjžÊAu}î…›ª&—ÅðÇTnÒ6æYs“/Tw;KŒÚÒÒ#×”¹L¡àñL•ˆ:VÁA—*¼Ì­ÇÀ(ÄL ‡°E[rãêÑx;ÐÉ~¦bý³]ö¢#½œ^†åãz$±€€3‘=„DYx^ØKJnšÄîêÀFö)HÏü@)†Öº'RºKºi\VÛL“Ž üRøœ› °ÀÔlŒ³¡ù‘8PËvQhðÔÞ·ˆçyl¯Ån,@V–®5ƒ¥ÂÝ,/zè=hþHç©[-"éáð›®xÚoבëz‘‘8%%€@Tɤ¦÷±Ã¯ŤŠ¤šùŸ†îÂÌ‚!oqÙõ^u°9B¨Œp&SÐF¯üÀ¡lÄ2x|s<Í Qc‘¶¤rÊ¢ÆgDRŸ;H²Jrn/µ?unpþ)KrïØ¤ ÎC'/ßlÉV3!f¿`ÌQ6á#a ¿Ä¢Ÿ¥¤†ô8ß 1yµHŽ;‡b'J$“fš÷ù+fžóâz£FmΗr;R¾è&>÷àµÛ‚÷¦ï—ž{IO²7Ó“$‘Áþ‹\‚ø{…°éraÓ¦b Yò±]¯Ruy>÷„Ê"c䤩šÉm öŸè@à}IÑÕàÿ͑Ѡ‹¶ˆ†•%1.‡‚³E<;20-… +€öé$‚)±Š®QXjÎ(Ló¿¤b›‹Nì ÙˆLä8ÊO´1L6z:Ø©\ Î(¶t! Ù‘{€\¿`ŒSfS¾·<\AÆk» +j 9ó@ Ìó>‡"Ê r¥ùc" ³kŠ£3¾®k+š{lýDÛS1š„ÉjøpSÏ„›(;ܦ®ðWCÛsÀDçIú§ËÜžl¾Ïz”"A7 +_öLº˜$²Áuž…jdwÆ0¡ôAaëýô™kÀî¼­I\@VÓ­'€Gp«s%óe³öàH‰„ðá Þ"dÖÚº"XØ-¶ÿÄf·JŸ%fdfÞÚóÁÏvª³LÛ¼IÑ /ƒ»e´UcZYå,¼‰ã8€vøÐ´qö}Ããü{½jÖÏavjo è€ ?I²x°/Øl¢áżdÿ‡Rá'î€ið4N[†1¡†‘„Î&»¡Äਤ•žz<-"–†üØ Ïb§1B¯¯4…%Õô…Y–-ø ÈTè¬ÛƒYËŽ›.±Ó6LNmÚf“R«äm–x0˜ÕèûL†…^ÆŠçA•×´e¥|ܶ5›Å1 +nXìNìˆ^Ü´©ÛØÄØGà±"áØì0Í+YÀð‚$4qJºÒ6#1€":MçbÉŸa ±& m$€t4Ågñ•LªÎ´YN\ÅÁ-aßmˆ@ý“é«P†×€WáZ2=ú­â ¸`Ǽ¦ÎhK„ ™ÀS¦C¨P»  )L¾·bdtÉbžkŽZC£b˜Ç†€AXt·mR´VôåIHA˜¤ +‘ð° Û›„å©®^D„ús¨ +Í 6: -e4†T1?³*v´ÝB?bõTÚ p5;»¹ì »QÌD‰‘Óãl¦Š÷˜'É9&€X”W1û3“r¦ˆ`±Äñˆåô`[~•¨å5rùT¡Ç(IÚˆÿœe›íR—*ˆKù ¼Þ99ÒЯF—ÑžêÉ•ÒS(ÖYQ‡mG$×üD€®šˆ¸jQáBR¼Œ\Ùi°°ŸU±I3š.“ \­U·NlÅLq/`ç“ò¦CŒã:Ä+,¸°9ÿ–©©·o ÿ±;ñ¸=¬¸f#ý&üÔÛ¥½»h²ì¨ ×ð¼ÈZuóÁªj¬Í b„ØT™Êv®¬à~è±Apê:ŸH”æû…µìV΢—˜¿ƒ—[pXH [=*)pzÈ{8“ðYnD6†iÁ™<ñþl÷LÛÞ0‰!êNh +—Ô1öyXÆ¢I&‚{•ü7-šÌ4FÉ +DêÖ”-žvôíeìèÀ‹º3ëƒ_çY?ÉŒu †£~ÇNŠ‹8=°Ñœdkjžz¥Ë1¯»()ðZ²Èã××åû~¢«óšÈ°H°ëD2%îÄi(‡k´, +˜Š3>î]l«{›ä°i)Eš£‡ßžìh‹œu±ô9»ož,õ{!T’ÁØÑ¤ ôæ@µgiºlž7ÓìÔaëƒ8½Îo$ÏEJKe™±w oØš”°ÖI§© Ó+)—°Þ¬ê.‚^g51Ë0–õ59õ¨<®‚s’: úO‡*o'N¤z†˜‘€AÌÒ–"…]õ|8·†4àt€¬Éq¥Yé“`\¼ú =ài5Aå(*â+’?òÄdn™þ¡g »I¾³âJ~z$wZŸî?DÔÄüžÙ§4óÁx˜E9gáb@ °$±ÐeÅ„Ó=ù>%ܤ/TXþi§#Ô,È#ÛD1R|Ftüɹ,Dîv º¦%Iš¨}5áB»¢ ý¹øÉòÿœo?‡Ed÷RGƒZ<Æȋ؄˜{5M”oØ“›'Žúž&ë~6QEð^¶rD'Û¹!P„o¢Î#¥%š ö…oñËa1’¦AòHuÞÒA5Ü[×_p…O3 ˜9]‹: +ø}zTa½N<,N¾«ˆ<í ‡ðžh/׳QQŒìžÿñP³|¯¶(6*âÎŒzvÛzÀžÞJߊ]n¤R.¦…VBîiÄ{ÆèâƒM“œB&‚LËÚ¡5…û?j®‘8¬6„QoÓ†Õr_h"ÇtÉîœqPäôX¼QnÿÐ¥,±¿ˆ~Î +A¤'âòùúД}fÎX$™ŒH *¡%S%ãU/ÔÀ²\>vVtX²ñtªüzR~ÞãÌôàäƒñT¿ <3<†ªÀs¡¯G¯žMþl+•êØÒõÁSmΠ¥n§Âf.™~šTÉÎD¶KDƺyóº”ðL½²¨9wœL ·³\‚ŠÉSdÓ¼ çÌø³ŸÈ§?âW‰¦È®¶ËÞ ˜™ßÈ ~±ƒ!M{¢ûY™•12»ªeölüä=D0¦) +CÁSm³¬¤{&çÄ#›ƒUÉ+BîfuS™›œéìduš!mži(gDjÖ¢;ô‰¿D‘­Í*V¢§J³WK®ÌßåcHÌíËà5ìLy„ ·Ñ¬Eqü™ßE7»¿±ËGL˜,&”0`PP3uT$ÿu’4dûµ/SQÀ +h +@ð_–LÿhoÝi8VX1P,aNGñêÌd\T4sÇÈæŽÁ¢ŽL|féæÀ–I1¬½à[&pœ½8ºU¥yqõ(ªAqiP/öÛFU¦Lv0M¼@&Ó‚8’"O '%Þdü'´UÑ¥ýèÂûÇŒ¹›ÔRŒ¬jYßE¶ËVwv½š¬¥é²ó8âԉlµô'Χ@Ž­c´2œ=³²](ˆƒMÙSD‰“R·Ä$R„Tɨ.Kå‰÷оJ%°3ú»Äâu¼ñUéê©óHT´I}…m§´RÍ[ä÷â»Éóœ’ÂqÒ¶çZ$КeNƒ LO¥+ 6ÅU¼&Pê‹àryVÕD*YôdÊbÔ±b'ÄDÈx ž6ó¡ Ñ‹‰¼6»|bsÉnè½×%¡S0Nv@Jös¸^«ê6;F£ôf;²ìe¶ô80ä³kغëHyOæ¤t(æU‰€ý"’¯áP·Î+2A÷sq\½¤B» a…þ«D8,cdzXÏj8v*õ¤´$± ™ y\ÖITN°¦$±Z¥ÛL*$uZ'8aÝ/ÊÌbÆ”@ǃ$Ï¥)±ˆ˜‘0ú©’€SY¢¬Ã“CnˆÌuîÒBW¨ŽÐ +8ýN5Sbå–) +~½XFL¶&ÕߋOŒÝ¿`'9©P¾*(¡Ûe¡ð€3 ˆ>ï¦){r™] !(BEÏÀÊ0#c6$/³²™‘qtmÏŸßLI[¯Ÿ Ìr;6kÊyÈÔ‹“=ºŒ(Ñkçê€ÔóæwòAÂ÷OCc ¿=—:´ï ÙM¢üÏùP9Დ¿–Áª²PA“÷7PAíð/ûÐF”´œ¼yŠ‚ø¿I»‚^t%Y‰½@‡ï–|ÔˆQ4Õ Mœå¼5ƒÈ}ñ)kË: ÃÆœÍ +øˆ ‰„ÔŽÁüyÎ>qË(ÏSìâÃ1Ù&Á¢£ÛZ+79„ä¢Ñò®äKö“õQŽÊg®á–qa›1y°Ï9ퟹdM’å+”{‡+Àîý¼JYäÜ%YÜ‘\!_Ò‘Tߘ„ºír¥ÝNVn'D(Ôœ¤Ç äš] â»çi)È40|qGf‹)•Ùƒù™c[¯Ä4]¤ld3–ã{ÊõìL!B@ÊÁΖ%ÁiœoÚøT*ÙØ·KB<|ºS¿¤¶$o¶¦g’uN$Þ ,ºæpYp:Ð “‹ž!5[\Ãt&ÀJœ7&’^ˆŠX?©Ò!&3Ü›‘`OìÉ®I?Í’Pž‘wRHÜ!pb¶pL6Òçñ-b€e¼øFIçìêj,PÛàõ”‹\T2"˜gg+M¾ØžÀ$?ŒŒEÛ®xÉÆÉ Í•hø,–DëÎÿ5én~£xV2B’9Éh¨’å·w“sA  ¥5dDµæµow¯ÜdD²a8 ü±B+ò§.“3@¾(ÍÔ.-×kᣥ +M¥•߸e;ÀIáTækÊB߬-Ùùwì{Z1L½'ZgÙÂH8лÍmI’™ÚËWéËJñ„YÖrj“uÓèĦ©ŽŠ‘pj¶l÷ hšæßªàP&D”t¿àùê^U¢ÉZ¥p{$l9§„²zv#Æ“>.f¨S…mÀ49vÅMõLŠþNpкEJ¹lÔšK“Xà€9ZÀ’Ùr: •1Ov¨fáÇ”4­¨Oóè15«“îp¹­½¨¹šÎ?ü¾c‰?Í× +Ûþ „®š+AW²žë£RÁÚ‰ ,ˆáìÍ£¾’ @F &ý¶ +Ý-ä!Ó€¥Ã™6ëBWtvi©ÞrÓ7Jì3Ÿ¸­ÌrQ2xSÓ¤‘àv5ñÊjÒÁÊõ‰…xž=Zj¬ùÒ˜šKÍ +,ÜA‹©ùþ]‰Üù·ÂbRæ,uâáÌ Æ÷|Œ*D•>+û#!¦ üDìY-åÇ2ϦÎ& ¨¸¶ÑÙRÁ±¹¨[ØÁ©}Ú<ä[(¹‰2”¥6h?°4á9ªmdÅËTV‰ÃK3OjìêªKë©D=Y@5‘6·œ•˜ç…mš÷…9×(Ž… ÝÚÍ7ÛÍËÐbÁPLN|.ÇÛCuà'T•20ö_“ù#š¡òw[xAœ;÷¯ž1b{²“¾ªIÁÊRü£Â/T~=3N2ð¶ôOq㣠+"ꪒ«ÔgM'Øðƒøtù.úu/¦izå•}œ8€ î H¾dÈÕ{ @©Ï½=N@UâôŽÙZD¼'RÌhÀœü‚zHss!JkWàáqé4"¥yÜó ¤Î[fYWtÄ– CòIœLźè€!ö@ +¶j"‘'éAÔôõ‹ª¼Ÿ¤ûH2ÝGäo>yHÛ(})`œ© >¬”]Sä YÜ ž³òKrv$~—¤ I¯³Ÿ¼Â,{ñÒbe.2¶¬êy€^Ó«A¹°ˆ| {£6rô•”¥8»/0;Á%6PwûƒGèÄ‚ÀË ¼Y) B›l…û"l|·bi3¼}²TeÙLÉ€)¡dÚ”oøPkòò0‹UŸñ‘lŽ–¶OÚOôge=V,ð|@3}fiŒVgh'6â_‘à ®ìæÏïS¥LPŽš|r¸cÉü¸äXßôzÌ…øÊš VY•ª[Ì&Š-Óä +:bã„…uHró§xÉl€g:)i¹ o›Ø™\Ù~>îÎ8 œÌ"º ¬#9(”X WË¿ {†cñù²œg„”T^=D”¯1sø’ÒL&Ű[§‡&ò^|ZFh5™j‘UŒq¿dÛÒ‹ËÛ#ˆzÊX©Õˆ"íLÔ¡ôØš´p…ÚÔj3jhAµcÉ4“KTp¬V¹£¿esüe$,Ó‘Ð6ËWH`À"1ªXÒ™úP™vM.•Ж/Eøðç¹™lËZ—®#,´zÑ˨ûXOóc›¹ïH¨ür–}0‚FØ;Y«ú°¹Ð;°$}ªÜ3´>ïøÚ^æ@Íqê†Ù›cÅ>ÌŽšX€K¸ÈÍ: µÁ«Um„ß³ÀÕ芠¢ËL|Þe¢L ¯–€¼ÂA´ö­VTºÄˆ!ÿKd`œ¡¸ÛtT/¦ÄÇIˆüĦrÎùìáB–iŠVƒò³€}À0ëÓ@¡Db± ŠÂ_Ö¥‘øf/@ˆMH9G‘‚œ‘›ig fLx‹SlÇ’Ϙ–‘+bßV! í»Qlóx%·nÀ¸!÷,‡KÛ—"€ËoêJù ¼­«ë'B@t‰ ¬ ñšõ ApF“)@K†}X¢ç†ÐL5ÄÓz™­ùJR›ù¤gƒQêN¡y±nÐR¸ã6 ì1 +`j™OK¾flëü'ãE"]!Šg/îšÌ»è£ ‹ïíyc™%Î"a)„&zJìùÀÍÀ¼»Ëÿ[hÓ†`7c=eJòÃt–òÑá8½H þȸÆý<³ñaœÀV–37ˆö7Œö'ÕmþŠòËù&kšN ´ËXêôèÑcåt¬¡hŒœC,RV³Yõ«Ò-E¹dY\…ªe3 †AÖ’‰¤M—•RBÐêb×ÂÑu·å¿qîö¼¼êê"…£CO×[¯X¹Äm?H›Õ˜ƒ,g6cjÙü)î¾Úê] ¥˜r‚Öóþnß‹“¡¡˜ +$ß_*_&0_‰+fäc—bm{¤½Ê‚ø¸õl’¿±TG6ròœ¦~ â&•ìºm‘šæÐ’5,k£€q#J7¹W4X’z,êËÒššìñe–((f-ºªf€39%)‹SÿÃÔaWû¸É*,adC¿^ÀqèU4'ÀÌ*ÅÔK§"ß1γBRŠ.ÃÎTµd×ïv&ÇØ»!BUP€fÙJë´D(Mº²¢ ÇR¦yÀ¢a¤Ù¨ºØ¾äéG‹7ÖPnØÎ4¡[ÐK©ž3ï©.ðDvéz%alxG›i5 +,HBŸ +‹àË8%AÌOØL ó\Ž¡ˆY²³¥E(Xè£=M •h°B—uk1GT^’0®ÅQÊu"Üg\ðnx¥S9°H¶ @m+Ê ¶XO”¸Q¤á»`Û„gx} d!-Ô"Èé–y˜ˆ€]Ϭañ‘” AÜJê/Dil\ˆÒú0J~]²Û­¥Û(¶™PK4ôlpk·°d›˜f½þ„sTŽT›RáúD`ôœw ¢Øþ˜™Q™9Mj áÞ†àÆUî2sÃp_Xô”6íñÔÔKYU*8UI‚*0”`Ú8Û@SX­Ù½kÚ‡oy™©ÎÕÈø´gj®.‰Ío·3è¥ßUˆz°¢SWe·C)ÌV"]¢3I« +c2ë•£3q•é“lØ¥Æþƒ +a®¨DªBziK9u äfVl‰Àµm›`S—R›5(º%'Îîy9è¤av׿%Çn¨ÌDC…f ZòÐÓª•;ª­ãN’NÓÄ4>*Ý3 ŽÅ\,’ÏP^Ž$PÒ·¬Ú9a*iQ;`£m¶ÍéòZÍâ| ßÙÁµË‘Ò üD VF±áZç!’×`òMãH"VFf ·j~kSRFô\˜ÅŸO€W; ¼… Êâ–p +7i0aWi¢¨Ú ¢nÒÅíÞÁ¸žKX:8…Í,’”$™HRÇSAFK[”Õ˜òÁV +E"$qÓÓÕŠÞpÒ¨æµaI§ÿÖWZýûƒ ¨-ëpIÓüíÓÁv¥Ú³šõæØUá^Žð|;ÙE…˜?s;¢`ç`ðšíX yÛ¯àØ6Gª“òÁRa{êϵ¡„Ö¶šÙiš9= ·xšù«zˆ:7aIå{ÁiäJÍØ(¹œ,uŸu¹Z;–¯ü58u „ÐÄI°K9M‡|µ~A eaXO¬¯‰ÂABh kâ(W¶‹¬ƒÝ(K† âëÐk×Q"èR.‚; ÀYàl¿FÜ‚ƒÌ£¼'ìÚšnÅ BŒ­è—ܼ¹ö¯ ŒUjZ„ȺÉ,`1á'×ÓN¶QTJ”'ÛÒ›b¹0*U½Øk '}~š–FR%*.²ñUÖè¼FÎf¶NvHl.Þ°³º}þ…J¤K ¥\êÁÒŒ^ê%h³¡éé B™n㈯×ÒD­—qONg.“*VàrLtŒÌåšR&‚4U"d¼J«QTV:¦TôŸP{AÿIO²z}»RpäZØgñ¬)’oÏ@.(ˆ(5$—X“Òr‘\D—}0°ùð=¼¡À„U¡J—¥'wseUü¦c¬]ZaëŠñ6s‰Š^å`Ì¥)Ô,áb冡Œ‰Ž*—yVŒ0jÓ×É‹ðm¼ò€AÊãtœ‡Ô<ö:(|ˆqîW¯Zß”5¬¸[{=ð–2Gø<)‡ÅB}…ïî_#/¡ÚPJª MöÕP_§²jÌ!Žó5c‡…þƒoEUªW*8¾¹€\0ð¼pâ58ØCuÈêÐ]%ç|jHòUÙ„“fXˆ“j“ühC„MÚtÈ26\‡ÉÃ7{ª2ê¬âw4D *n×K Ę*‘5†°TœKÄ"©ŠˆsÎ1¤¡dËhUm3rÂZv6²ÙØîÐkÆ997G…!.ͼèày˳•3ŠæØ «æ¤·y¼ý(üè‰qúO?jôùèg4íÿ^8fŠ:ƒê"Ô,oH¹¨J‹ÖùÆ¿x'͈ 'Hdì$^ŒðçS%a3”YÐ-ëçÀ°„Ží~à¦ÆþM® I$Csu,Ê"žðùz>Ì AÜöªÍ‚>m…B[FÌ[‚Þª2uHvÅ ‚]odgƒ~>ñ~’T&°Šª^,øôBnRãÔ&4Í™B—!4† yhG­!D§…¬ÖM*! 2ù’X³€yé‹/[I­ÉjŽPMYÛsŠ«= +§¾Iï ûIÃ6©RdU92áŒéË-2ÅJD&‹LUÞ¥MôùVÙDŸ¹VÍAHåðuF`c¼ä8·2¹Ü%AŸöˆ,)Ê +dÕÖÁøËm˜%¨Z”“P =;`]‹Ä>z)fÇŽÝs¢Ð^œ¿ZHÁïnII²S‘ë|U¢Mʯz;É¥lH )Ηo̵nËi/ =» :üŠzW ‹ìEyXÖ ³hª bQæ&»H(¾Û,@‰ @¡_²šÁ‰B’ô‚FßS=“ƒ·Ø/9o¬$ˆéQ¡eBÅ7'yƒqtí­íRl•lfˆÕ|Ú…}5n1B…4Z ºM•êm6c‰†qX¶/0TY:Jy¹È ›i|Z`š|졈,±íÛãE¯¢Œ'¬Î³ÜLhækRa Î=Xw3€‰ÆÂìgzîÕµZË¿-ÃÒŽE㬥Ұ£¼Þ¡ôK–¸äÄÎUMvÀ~0@‰ ­šõ‰.€öèÓœyØ‚’8Æ DñÎygùSsË“‹F„µ„»~69`ày`‘!ò§z°} ‡f  I¶p5o]zhWvz]WCjVS$Ž3)©wzíâ—Ñ3˜ú:„+”¢É–UÍîãÄz‡ E=HÕêDºç@â]a­MæRe%àÖüUõ"5 +ºZvllAsxƒPð²*âŠpuC̓(g49$i×àxî]sˆÝ™€{³z—ôADW”s}1%æI+=VQªë¬¢$¶ 3,VÛ²G y}áŽ5‘Ó(ïànÒª„cåãúÁiT')¿‰-ƒ†¢ÀIYF½èÆ ŸZŒ§Öd+›œ/SÅŒ=~íÅ <`ÄRÖ‹^Ò:Zs[€¨ÒШ¶‹ )nw„y¥jÀ`¯éwöIÝ2éF³œùLÉEñŒ„l¡éÁ†T´‚¸j8zÉ÷ä„¶R†tCÜ2€!õ°ÊWÅ`Y=ä1I@ÈáÇq]¢ä*õ½¤Í@Tî×€¬[S¯!X-äÏ®^r£Ñ8BpUBÔôöÊÄÖðÕÁE¡8”“.ŠÖ ^<"ÇivèJÏàg×dµ8¼Ì7mr×=G˜˜{N>﹇³î–µa*ôÜ+9l‡YÒo~'' mJ…¬9.F²fÆ%YöÎD¿ž;Ø\å. ý<"Ÿ†Å ŒS')5Tå#Ýù|È,&@fCëE/ÐQÔK¦¹±IÕòQ³Ù÷¦Âç8@˜4¢Ø!ÝЉšbW'õëXÍs&n@¡ \°S<~(„Ùp]x*W/^rëžôªrÔ•§}Q‘‰ÝϾ†÷2¾X¡gzþ˜,.h«,,UÆÈÄVM¢T"n€rŠ%øÎ[Óì†Z¬…eY¯Œ‚¶R]·aÍú—(i e*WžAL걈ÛIÚÆŒQPňé¼5Mu*ýx@”V©[µ +¨X:%A§ ù¸ +cJpYô€âD9ºŠº¯ÛǪeií–ëÃ$DÕ;Mh$©*Æ\Nv&¥Ò«G5–´ê^ äøEÁ Ñ6k¨ü!zô<Ã`Nbœ„S°éèQ­™è}+tMî¤|‡A§³©#‚)xûù é¹=j¡ÆqöíBÞA¶âçˆiŒîÛÒæ¢"·žÞÜeJ ª#žFwÃlš«Þ[&:wa±).ÅèÙBkÓ}šRŸ”Ý‘}`Ðå40My©Ø_ îÃÉîAàn†PWÀÀöî|w]‰ +‡{㸀<Äœ—×ÄâoâÛ‹ÀÂXýüb ýœpkgIì…?d‹†i\";ž +Ú'¨ä,S›iQ‹áÀÎW‰b)ÃAj:H)$Ù!³òØYzÖlt_ôXÅ +&çé¾·ñùº“´Î§k#ذBaa²Ìˆ$ýú¡Ý휚¦¿>&kæjH`+ˆÚ¨Ã,‰s8?‡åüÁžU=EJÉ’ù&+!Tõ÷ëRɫΠ¾ vðvôí*ìb}¡œ^ ÒR…kS©MÄõ00 ì•a8}Îó›·Î;ª}5$¾Ö02± ØlÌÍ^ȸâa×ðÕ=eJåŽt<ƒÄ{›õž Í…„¾îy€ˆŒ>lÃl +á>4÷ Ôðk75ü.fÛ´)£û’Êì|?¤Dÿx@¿üú⯿÷‚l¤™iÈ’Þvö©àIÓð]tªVò‡t¯ó7פ6èèYZܰ:[y>ïnQY¯"‹ðâÏÉlI•3˜’2Í™Ëo?'˜6 ò°ìØ6ºÝéÓL Þ”dÎî|±5CizCŠ$ÔŠb¡T…yø’Áx: {2A~¼8h²gÛ×Õ–l]=»ùQ  +LJçg»ÂÁæŸj¢‚ˆË%½i /ªm섘^¦Mb©U#ZP£C•Çá +/ÅI¬h”L€Jm©A⼬MÓ¯A–éù·whÌêNb,"¦w6€&I94@ ·\‘ßm…@(ôùåf‡ˆ ÊÓ°Z"S4Y‘ÃÅðÜÜÂÓÜÃ)MÑâùФӻŒ¤ QÃä&¬OQ^ü5)AqPäG q¶y|U,·ãO¶)‚Ò£¿;"'H”JE³ C99ZŽSßó[—;»ø{ýÌÅ"Ƴ‹õosU·Ï2Õ2È=ð(„Ž(â¸(oŠJlH¬Õ¢’ŠF{Õ2ïÛ’•ùÍÝ™Ð3½\O­/®ÎÊ1`\_¢bbãj˜,\Fšñ‘œÁ?t¬Y ªŽîª±œÿÔìB7¨aŠcÃ÷áØÈß‚hƒ…ž£€ïŽà=põRïi¼áŠj‚³K›•;:à÷d®Ä%9³¥¾ÓÑÌeUôÈÂ8¥³§ä¡TUÿS´x4ž à ÐÏòæ2PÇ8—‘§ý¹2]’ÛžC=L +ej>aÆà%“.9°²ÓÃt¦ w¥PËíÆm¼$ó“ÜÌx)U+œnCÛ_(õfÀÂ0ðÄzx",㧤ä.å7Š/ G°T,†àVÕ£WW/ÖšŽ|$©bÇúÒQ„Üb‡Và T‚ q%¼µ°Q~œG«U5ñæ³§¶É $pNP‹ýÔdè‘mø.ÿ¹s¢E¤üM˜û òÑÑ®bßm“³@̪MÓC–ËÌo¨Ü™5%.c7D4Ó+ 9:m”ÅB_øã(°îÐ_¢0TýkQlä_ÄÁ5§ð³e’gµö¸º¸B%¬j÷o8r™¼ììÎ3-FF–:úSš-rãÚB +ñ¹Æ +‚A¢€ÂÌ_—UÓÀ… K +XÜ´SšÌSÌˈ5^FÒÿSa=®å)–µzKÎÖAOãôj$ÞQò²«ºœ >È­ç_ÛÈÞ—è}iþ+·̪¯ÌKÔ`€»Œ½1•Ç-N¿ÈRíñ<äA[44õq¼Pt7jÀÒ‹¶ÒËÏæŒ¬ÀÛѦu¦1ü ñ ‡øŒþ +×]„,Û3uËð ¸ x›(•4ˆO£æ{½Zi¢¶S?V_ .StdÊ“z, :Ì{•‰6*C*6XJ=<·çvß=R{úó‘ŒO²}ŠoÖ,­…® +‘çz®ÝžkÔïŸ:e$>“ªdì ý:›]çpM4Y€b !çóavÁ@,.. wdaá,ã¹—@df¬½¹hF%ÂeÅØªlÆšì‚¡Š8”e9~4B¶ôä’¯*0¢å‡Vvã9GùÜ£tóu}ÑØêEŽ‚^ÄG PèVaX0’X1-Gy #é&Þ`âbma²,Ê…ñs¦³¶×0“uÃ+•MxÏ\è·éÐcf§ôl +|àSuhï9`ú_ÓÔƒ%šÖãk¢ ‹ðL°¸y´Z’ùS Ä»ª ò¦GGДHÿÓ£Jü@*p˜¤õø˜‡¶7Hii¡-¢óư !#L*rnäRãÀ̲å³)ÔÛØöoÀßL4úB»o‚ªÌÂߪ4Ò;ÈÓLOùñ‘†&¬ùØÃ^ýí.8 ù4xqwÖ›%à—Ó_ Ÿ¦pd•ò¨œ~èóA<5Ke–è ƒahcÆ4dÞQÛãu ŠýÔáNò >w•ça~‘Ú ^uÉ ´†Z†F#ùé)7ñ»ŽvŸÄ¡ú=Ô‹j¾õB7÷¶áa¶ºÔ¦u@ÖI:B•”eÌG6¼ô¸Â@t ÕÝlȰlQ“]§‘œRRM“Ï^RŽlzjÛ»RàŒ±¯é5w ö¦žìþÆmÕ@ac”Â~ÕW0¹Ïfö_>.üÝ:ÉžðtBÐ’”6#D˜*•’Ì›¢Ir/Å,yáZꢘWÖñÜÃ^)—€{úsРeÎʸI\€>6é>}ÎUd_S#(¶Q‹5¸|1²§m}xšÐ +(Dçû„WCû´ä&8,ÛÀùÆThŠK¨%@:^@Ý€ùÑÀíYn¦Ê8 +:Ÿ‡«üI“b˸@ ‡R“ù|`ËŠ<]l&R1L}(¡sx‡i΃¿ $ƒ¶Li#¾&»@  a6ø?\‚NJ%/z[ùϰὠ ‰‹˜#¾¦Ø¨x_ŸæÃ·•ñöü¢mwªˆbÂ\;IR¨äËB^ß„œ & ’ÛÐA2­nrtUB6)}yXõ '%®„±\ Îä{"s¡¤?Ü QÒ³Ž£K©.%=Ä¢A̸?ó¼Å³Aæ.Ék&NÀ~L¸óI&n6ñmùPN#îZFF€ºÖ{N#W=¢•2ôyÓkœéc/Þ.õ‚$+ǰ’²X•¬.©]ÕšBYv‡­?÷°„ò(Z8âFO½…™dÉe@KžÛ|Sø€Mû8ûM^6º/ö„3Á¶ŸŽÃ1L—õ*Ë{(ý³_Ï6gÏÉV¬ªÌWà ¥/IõèL*E@q˜ž(R;ÚL¤$Óy×Úx—â`ƒ:þ(KbIªÀàî ýËsåJ,Z…$\âþ*¿5ãUK•Š +ÇâÞ…ßÎÆò:‘®<Þc[Ö±§Tc>õÂDFQ2Ä ©Ò5óÑ2+†i6·o܆ܭŸ·mäéRÖÝ¥¬Ã6¹Þ®BKèé%ˆ‹º3×I'y™ÉÑ’†.rÂ'ø%O'Å.épü…e>ÓóL¦¿‹º y|%Åî1}… fOäìZ4'rDDœïý0 ¯áp-”zn†¹¿ûÛWmþ·¿{\Õû…]Q~ûÿ|H©…«Žù8s— =­´¬Q4ˆ†úúz`K‰Ôš›ñ°åÎs¦w`CpbT„¡ßžÎþéÿ¨?·Iíì¸WñËB« ë¾Ù:Û=‹§-¾N#šŸùì£ qÖâ@j>:ù"EÏXö²÷¶FÒGÖ˜ÎFáÍN¸jò‘ªúä×`ϯƒP,.ïÌÙÛ®Z…ìÏ~ºt›É¥øéf>2ùÇ·—×·IL-¿ùHœøA6ªz3ű7kÑÁŸHŸÞx‚ûîl±w¼¹Ûï#ø=¡T4®hl'ðF³â£±Ôû÷䨣õübo™ËGüý‡_ðøi_üşܽٺÇ{üZp²?y]_·Æ ±¾‘Ö™ÝÊ q—|kh>¡Sñ‡M|ÄKo6D‘Jºkõ¶\ª_mÁ쓟­õø6î3&?·Œ-ÈÛËëút/¸+´Ó—D”ñÅ›kíÞœ÷Š F”­ùW†z˜ÝÒŠ¾ÉçÓ¸Çaf%\ÉFwâgNXLŸ]z±Ëªþ¾w(þ gõ/Z|¸Eg›åóÂçÑ·–?ã¾@.ìqÅóž°ì}¦ +Ÿ|fKñÈØÙNŠÅ{¾ú»oc%¿ +TìâÝžÙ_ ¤®Þ^^Á§;ÿÎó‰†Ð:柭¿4áëóÄl+z“þŒæÕ‹ÏVT°|¦(ÙžºQýíåÙü2P"¼¤5¾xsÉÑŒjÏ›5¤òÙ#ÛMãÈþ^á2áwhÛê`}ëïpJþ†OöD~ Êê‹„ÚøòÂWüá„qÅÍü^² ˾TÒ{ïüîeöÆCÈÇàG~ÈýÎzÜ{Ô„ïK´ýªy•羯ý0óiê×Ûúa ŸuJ¶ÏÀæ^µ/Þ,4¥­1éPÅ2ŸWžÊ¬æcÄà8ÇEÿ3Ygœ„S|.”߬Q–x•¥JÞF>ÀZõ]Pñɘ¾°7sn°F@~Éþú¤.bö¬¸|Æ»¬¸¶µ>j9fÊsk_þ„x ê»zi¾xs%Òðwn¿ŠR·7J(ê'.­š ŸOì3~¹>`ú{º‚O÷™bâ¬÷™&–ܯ&[·-ëªTo$Qé_ ’™Ÿ|óÔ°qÓ¾?çÇüëߛ噣±×·—ö¸bQ3ìãAÄôËOŸ¤Œ7øYãù¤bÇÊ AA£ˆ5Ñuï蚢+N0Oƒ~¸®Ç$3>W¶Ë¨ì¼[ŠüW§õ«äVDßæW¡wæŽWÑï¤õá +bºØ(,ûÈü¸/Þ*ê§ZÑ~Œ9Îó´°ÚzÎS*ñwBíf¬Lßéq3üˆnáÅ¿½º€_ß{îÏÛkm‰³Æ•À*߉3ÞîA^=îDOÛŸgï5fêææbdoz|HO§ûüxv»ùº.µñ/?Öß{·í×AÙòÑüõ 9OÖÝ6×9½Q +‡>Ôx»ï³®¶ö[ãØwRˆ N&1ßatim{Å$8V\mݳßùŽ:nŒê«ê½ñ‰*yùOtïûÂöQïïJ÷‰äi*õã÷…®uܰ¼Ò¼Wvb½…bÒÍïn.ò¢o// ®Lf1Ѓ/Ñœâ)’cÝñn÷·V4®â¿,–_ÍÏ=g\ʤ·±çXù︨Çû1zÌS‚Ç}”q¿Ù;n$r%Þ—ÅÇïï‚“pod+- ¼Eü÷¸»uÿÌ+‚fGœ+¿yg.êx/¯ÿ± î0)âŠQÆBj–<’5®¿!¥‹Üô˜½fì—hÞõmÿä…bõ¥z"×öò>Ý[ŽP²Ìæø¾º7ˆNÝ6£4âimÞww´õqË€Kø•±ÕŽÆ…ïÇñõüì¥å»È7*uöø(vÿé—¡ÀÛüúÝçÊâ§E>å'>Ë~›Ùíǽiñ­§Öú§A”µ±’]ïg¹|IéÓ6©ØâtÛ¸Bà°}„€!%zÎsa#øó¾ÜkØíëÐ,õg>ë;ô˜²Þ7ŠFÖ8F|~A° û~sÞ-`A Á^¦)¥:ë˜{ó«B“÷þýhÃ34ÀB½ïy=}$¿=kœ‡Q;n_€¶“}üªoÜr³tIñ—×XÉéÃ3øÍsø½_ÕpǸ-§€{g><Ûx褙âQ.á‹7KÕš Ø?GïÝï²ä'„/—n˜ê_ >cÉÃTj³géï9[.ñ,{,a¹®Ûø¯yã“=Üå6ûdÁ¹ÞoKâÇÞá¡ø¸/1ê …ê»OpùÛóË™7ÆL§mÖ/÷ÎŽ_CÞåg®ÀÛÚ|\þ#•7ÛÏÜ¿G_àCÑØë‹§òâÁþèÔQî/¨;æà4c:Ñ»ýò›}—Çñ¸àTlbQ—*Bì“òˆ¶2êm´aé +bב}Í@ˆú±ÏZ17£1ööòü «~'´Ú÷ª¯0ä+[Œ;õõ¤’±Ç­±Å7JîËF ðø%æüw{Ë×? l‡wõ·Ž`AÓê÷§­X ‰Ü›z³…<”»ÓóÈ•d¥O3éÝβ´ ÀGÀäwx4H}aŰ–ýúÍ ~¸µïã°XÓ ”# —ê‹2“ÏÞ\½Üä ømÞÓ{ã.v›Qžõ ñ*±ØÝy÷1n|õÕE¼Ûà¬Øý1zÚàŒyWñÇä¤måç׃̦ýæà£~CsZB7> ¡Ôð…íŸÛüaaOCw(ã9{™‡ktR,(¯öæÞ»7K…­P$D9Þ^Žë7 „©½åÊwÅ=¤ÀÏgŸßÖ°"xjúnÈØQFa/·=ë'l¤ônz§GÂO›[¨DGåÍ[”b_mã¦ñðâýä¿V¹ âð;¤av ÛÇÝNû¼¼.¿`é¦OŸ3à?ÛÓì9†e¹Vkì;fÃ…Œ®7ÎÌW¤®hõLÑc‹®Íã6(Òc{cÝ)vÝ¿GÑ»¶Û5òÖ\uŽA?ü€Ç/ó’(_—­ï(Œ0]2[}öædá Ó‚ÏgñÏmZòùûy\?áòoJ»©Ó<,FÒ"Ç1—Ûlï1z™v¾lÅÏ—ÃúùªÜ³#¸©Ž +‰)*åHð¼YãH‘ДíŽ5ž‰?SlI`ßèØWy®­ñãó<¾»(w…œ™Þm›Gè3Ý=2”_t¾×«-ا÷¦T‡4Öë<°|¾€¸iý]‘1¥îhÅ÷ýn\›}I4ÖH¦™£ì`Ln±ù¨ý&ðÇ&j{—™P)ð'ïúöزÃÝGõxQ3Èx{ùôÛZB…¡lŸ3^_¢¹­;RѲÆ)0<½Ñ¢Veì­ÀhÍ6Qi~¾]Gtµ°ïÕø•åt+H¤Smû¯æ2£¸;}ä,e¦¢Dé]½…ï«?þôrÈX\)„¤œý%š=/ÇTá;¦ÕȰÏÈÏ0mÖ(œ>’À÷m2#w¬yÓwŒ´ß^^ßL¹Æð©Y÷÷K4Ï\ß5GcĪ÷¥|¡½ñS Pïž{R㎾Ó'˜§+øtÐ#Ïùfö»]®_\²|§¾Èæì[ú÷Jx<¤r“ZÉ·£û~nïÇüpúÇuå Áä^Wò§IŠó¾9)͘b‡‚ér»çrŸæn1iÜ¿}#.@’éíå<.­_`Ìn'*è8Üé¨Ö¸=0â*Zþé{V¥%|‘ÞX)Ù<~úØ·+l¿ª ^9yüý‡_à/*,/ûÿÅ›«ƒ((êÛÖ‡Ælû¡}¯Ô‡W4fß "h¹˜Ø‰y£eÑTŽ1è‡ ˆÐ]ÑåqÁ¸55§Íö¢Ñh/;Íö¼4š+f¾}gŽæt0¨V­¡ÍÐj‹òóuùt$å2íöw‘ŠýâÍÙöØ*ÆíÛ·‹ªºõýÓ'ÜÆž;w¨Z5ìåé¸AÿÓ¿(:€í¼bI!¼ûâ;ÿZÀdòÙ›±Ox«ž×É[(ûJIxƵSÀÃO¯ÏE#~ÔÝÑuXDNcš±z¦€LA?²(‹ú8Ûgož)VÀ2í•¡±ï[ûmÄ\Å[äÞ&^“Å×å½-ðž­ñ}/,E2ˆGBJðÓÝcõ{EŒå™6<ݪý¯vM:Ý·Ñ›»9z¼²ÓPJCÆÓ©Cøû‘¢1>}vL¾ÇƒäønËõ#;±TÖ}ç­Æ‰äºßšì¿xã0–’-ñVdÞÝ0þÞj&4fCÉñ÷+zb=~ˆ]_²’Çgovb¦>›ft²x:Z•ãdÝÇÅÔáŽ[­®Ì[Ûv P ÙÀ5ø[;NØß’¿Ê*ÐØäPâ½ã½ýì­^`Øe‰EišÄ;®w˜ÆÎœ È,ú°˜(Þf€:âf‹íšÅwÔeÔ¸®œKŽW!7?™V@kÜ)®À“¨Ü¢‘¸¯Js2,¦­±îhÄžÀ½ò¤@}üív›'»5ýÝèÉâjý.dËÆYcݯvÝ7¡PIøs/F Sb Ëð+Z3²­p­pǘ† DñËÀ¡\ýô;²{jq’ñÀ)òÀõ®~cfJêëóóiÌù¹ßï@${ÿ¼´`X_Á ýQÙ®–,–‚RÚwéåÅï[‰½¾OK®Ž ÄâdëÑØb ý(:¡¤3£ïpT}K¼QÔÆ"La68od÷E¦û›Á'7~ÁðD3Űn°µÆôDµÖ.ùxzó=¾®›’ë>i&™ù]ñÚòÞ'hq~|ó÷ÅØ^ +;nÍó]쌥¦7(bs>ÏÎw¹íø­‘–=V/e§O‰Rïmþ5•èYs<ñî‹%BM÷Ͻȼ/äÿ£›ûS `Ã'D~׈»8¢ðb_ï«T²ì¸5¶÷e帀ê6ú9šg$§cÂø =®«{&¯£Sr­qËýa +Êh¤\¶ý&(ü²Fü1Åß·¨ì+޲Ò"暥Ä|–s Úû¡ýÁ½³-²ZRýõªZëÛmk Œß~¬³h݉¢°w)WÏ1èhñ«U‹ªsnöã +cÔá¦Ø |ê ŽI—Øb,?#ÐҽĄċàûqä>F‚še¬1ÐP™Æa‡7üÀ玿ï±+l¾_í)ÀM|a–jø¥öSmŽHá÷Ù›ûEÄȲÎs‹MV)6ËüøÆÒ³I¼sž6‚‰:z¼^9·<H¿¼‰mÇùËQ#oOÇO&ж,7gWºm­Dhæ±cÏÑV|›ÂÉ‚ÚV@BßÍômwëé ]“øª¿oV£F}¥~î}kD{mÚKDÏ:G|‡w€iDûY|럽¹;xaßІ¾ãNÅÂc܄ӄë®wÜb'}uö÷•ƒxVÝÐw uùØ©vï̈ª/ì +ô¥¥t?æG]hçX–WÜ0¦˜#"¦¾ûjgyd5"¿Ñ&TD÷{‰ºI’/É^¦ÇóÛ>ÆZ¥y¼1,eט!J@‘K tZ¥†:©U-iFèÞö¾‚zòPLíwêàIÑDsëf²k‰d«ò¥Ý{›Sœ.è®UX! {QϼïÑý8U ¼J„½ÒÇLqÓ‘¸ûRÃÞ¥75E¸!áÏÞ~fµ­t«¸ïÊp±)šRyŠa“D„ùQÙ r¤ÀÄÑèUcµGÅŽGZ½¶Œ± _׺@ÿy¿›²"ôÏÊ=7o÷Û{J¯ÆšËŽª°7·âÇ;´$è•á]=MAî.¢6¥ú>{sÁ[Ù&—i`Æjhíw/àðQ–)Ã$ª±‘5ÞÝ0=kܾü¹vD (¿q+ÞÜ܋͘˦^ýÚàÈÌË¥7ú¸‚}«ùïèçA¬\—»·à¾Š§9Å~wg½C¡£êå?V@^–S¼¶ñ"Œ!–/ ˜h¢á?Þºˆär»ŽËõùÿUm<úWê|_¿ÊÃÌÞø`–Ô ÛkÜK‰öd„/Ù> ¯ü‚´ .E†+ðÇ‚vZ㚨-Çw³ZZ7=/á%Ý`¶¦¨|6Ú€ƒoÞbí¡¯áó_Í÷µçõ¼ñÙ™ÁkÀ¦³7˜Á×½0ßðU[/hñ®®åoBõ9šG ¾õÔ?ûb>îª'•_ÌK|‘ñÐ~¯Õ/ÿ¹ËgM¥øj·”†Tv/á¶Þ’HŠûðXÉÆMËw«r[DWSèu¯Î ÉdªŠ4këŒÑ± à/å{Ôñ·J"’ß7g[ŽÇg…ÛFâî.åîx"+àeEã6«ûìâ± Y3˜ÝbÄö*¨VkÅž-øWJPlßô9Æ—FbÍØ³{iÜz9Äûkɱ™­)Þçý©Q· +HÉ»mkÀÏ79l&ûp9‘­xŠ\ÅýµJEᶆN¯¯›ïâÔrP"hnükÙX4Ö±)~úåWy•ñ@Ò«k0#ˆÖ¹bɪŽ?£ñ²*ÔóæeæƒÆZâRq­=8õ§16¨°j$c'3Þ‘ÁÚ´-,[ò.dÁ†?ùÒúX,çCkÅ™¼’Éà+jqtô iÚV6þ¾Îà1HØGZ©€È’Fî–™íf¯)ÍÅ›¼"0&§}ÃÕtÖÛîæÛ•‡¬1žl·TÏ/U÷{©5ãŠr`{Òí£Å«\}Ü?2_q*E1@½qZ„HM§ˆ†ªþæ-ßzDøkÿûXøÒK\lTVz”úCy‰¹ª=ªŸ©¿fyðHúB×Ç£þûéi‚51€¿>9?*øcÏX¥nM;n*`àx{Xÿƒ6ûÀŽ`rH+å~‹¿Qf&nŒ5¢oK}Z³oò‡²‘(}ñÉæ Џq?Û-”C® È DÉó]µeP Rvõú$B¾œÌ›Åü¨Ç§†Má`¤˜ˆ´ÐþÿI{Ïï¶®,_ðÃ|˜53í5ýÞtÏë~ÕUí®.wU¹ÊU@9Èʉ¢(‰"EŠ9 rÎYY–m9È–•3ˆ &eFÄ‹‹ €”«Þû;fŸ‹{.éPïͬùÀ媭‹sÏ=aïßoŸ½÷aÄÛ^6’§”5ßÅòüEYy~*_»ˆÂVÓ«`SE+Ëv¤o•0缕4DÅdš)LJ®½aÓ²i&»i€Ënm..VCߢS†Ób˜Z_•ȳ…äpdeÅŽœ0&!°ø,¶sè®xÜl[êÇ.ãÄj\I±4®”õÎUÒ÷äb8ÍdvVV° ÛÖ·²¢àTÆð‡*¶JFGW±Ók¼°Î«¬d#{‘äl÷ ²[ÕrÆ?X‰L!»iq¨S%[.¢bG>!]}365„»# '`TnG} û|*ylpre1[°(ÜN§ã‹Â +&m-¬"P…ßmÓÁ¤šWVcn‹ãÅœºqKv{:8‰n€[²ƒñJvdÂ`!í}ïo¦Ç ˆNnà¬. +pÅҢÓËaƒ¶‘¬`6Šj-Åå8 Õ°fë”2>N$dË.qÙ3tnùGMÐEb6'>öÅbOœ«É­Ø¡T«Ê‹»Œ[ÁFõpÿĦ3£:êìÉxiq7ÑÈâR‹C +6%ž‡Y:*áÍýq¡TMRbœ»#[uÛíâRöÈÒD8· הⲇ¢¨*6[™G·Ñ—Y|Ç*;$f¹ +·‚Ã>Ë2¼Ð%Ëeå;-3Ýo;Ý…‹“ÊyH±bXÊ„©ðJqˆú^<÷‡íEy%Ž…&ªJqµŠJFU¡K•9Ø÷Š:y¨žP)£é*Ø*)èYÆ/‚¼˜Å³4:îŨ‰l®Ê-Vš`_Í]P¥šóJ¶­^Ñõˆ.:.Å߀k†Ò·c½¼<«`Óݹ,æqwp¨ +ƉÃ㱘­ÝÊÈØoG¥ÕíDÛ)Übe/,.¯d_ÇXN +CÀ(˜˜~tkƒ4zÎ÷áfKñÅ5#é»ñRd3 ¸UxÛÐD˜þyU ŽtÝAaPŸ¶}”%<œ-«¿/¿ÇhqCìœâÑI˜ô"hRÍ<½]«¦è­®*aé·˜”^rËðn.áàÀ"TiåâØê¢û¢«0ßÃ’Г¬N¢Y;Û@ vGâð®*ú,˜­pTtÉTqЉäÅ8%Û ðت6´ï¢š3bô$b]W…Î2ªXU 3G×jTb?eUûº*ö¸—Þ 4TE—‹p°C'‡T±Q +43*B¥*ºÎ kÞ0i¬Úvpq9„ªíTan1( é ¤0VcCS«h +)L~]UÂ@ Æñˆ +äsy¸¶@éŽß〼JÃ"—5"´ß«ŒVò°F+gYs}¤ÀÖÔa€·“ 3±lè +f¶ÔO[ܠо÷¿¬¬ˆFªèqX«]ä0U‘i¶l‡÷©7B ·‰E±:[ñI¶ØL)z â +¶ÒA%Se„Ü¢á,*äÒb²e Š©`«Šqx¸U,„§ƒý¹Ì³pŠg*Ågé£aº‚ù6*«bfŒC[V.ÞœÅÈAúaSÛ‰ÙÅgKÙCÉ"¦- +‹z;Bèîò8ìA>ºÂä¼â<‡"£GÀ<Žga|‹´¸”ƒÃÙÐÅ̳Ln>Ž‚eÛ 3åÜbàHñ÷lªÍ&‹Âîl±¾Y—tÌà ðŠV‹ µ¬b¼„QÌÓÌJàb=âlhäF/:æ0ŸÃ*g—"³hp˜J5#®(c£*éüBZ¸j@»˜µ\ΆÎ1î>Z\RŠOþ‹ ¬Äõѳtù³bØ (ú 7À¤X¢î–2/+ÛRA×g¦eÌIVô·^î,;¶,—¤C³ªð&E—Báo­Ün ”MWà"¿o5#.©bãzP3V*<ŽL*/a ]W„Mñ,¨(d>ŒS4vXW1g˜t†OE%ó,ã°£Î+Ø„óç†ceWÁˆéØ:¬Yñˆ#ÆhP.›±ÇáðØß3)»tzFsÓ@ ›«Òí¬KtN›8Tô·Ð„Û2ìÔG÷ +UàÄ™R>v¢ V³>xŒ7Ý ´ÛÉœrU!çX9n`‡edôš†ÒR¢;ŠØ]&PU¹#Ž´Š)ë,v9Nú£ín—©²J‡Éïª*põN´ðŸ²íœvÂãl#ÆdÐû©è ªB¥épg1%¯ª`º«Š'QÅÊ1DBý*Á1Ê ®d:;å2 ;ˆªØ˜@ú2b(^†¢èáâxM.s]E߆#‰Š™¨Uè^e<tLYñ÷eØAKç”ýs¯ð‰/§X…ªõà,BúÆ$ ü˜ÛÜèò"̆F·àpV\U){â„:…cƪè[UÙø¤Rü2|vYUÄ›L3¸3¨õ  +Ç'ÑÞ¸¢Çâ#àªìj¡cÙõÆÁÉè´¸#ß +¼,ŠV¸ˆ|ËpÈ6Ϩ¢Süp^Z1: +‘¶Í²’¢/³Š­¹@«³Æ£SñX1U¦§à`!—‰¹âU±…пő‹U%¸Pm(ʶùSU%-îŠøkqYñP‚áV‰½ÑˆÃUàÈÅÊR¦_6zŸNl|ïç³½‹â6²–>%`Z-ÁÑpX9 ^È¥²áF4[Äv§ó£þ³1Þ`¶ñÄ2‘:ô~Åñ”ˆ¢°„]´ø<–‡F+ćŒ¼¶ü}å~˜DT(ÿ¡à°ÅJpx+}³# xØ L^ ¦a8߀yv;½ƒ õA^Ó +v‹mo¤ã·ëÂ1¦¥¹Ñ{„‡]´<Õ³§wHÊÃù%ÌÒBÂJ¬pHÔ«ÒúlÛŒ³ËKÙZôÜ*t±c;sYn†¯ç( +qš:œB_[ܤ¥l&:—=çÜ‘BüÙ•X£â#E.—M.ä°WêpÙã_zm0.yúV Ãx¸6—Žwú‹)Äeï‹AÀd ¢›P‹‰èI¶d:)`m¨ŠOpI2³ø¡’­ ‚ÐùC9NåbЄ+Ø”uœ#Še•FãÔa9»iÆŠà°ièEÌG× ÁŠ‹v³…ØVÒ«œùuÊÎeA+3,e–³…ª°ðGELP)ÎÛû™ó0æÈ…†%L¡œJº¦0^Ëe\Ó¡² PõN½©ªØ®óPÁî±r¦t%ä[º#›ÿ'À…ù¸l VUq™K1¯˜NH[X>ÍßÎÅà–³ì +¶¬rà2øÍ³DȃûålˆÁ:€‹ÃÑXjg ¥”c‡ZsÕÐŽ°y¦Ø:#dCÄÊvÄF–—±nËq€=ºiµ(ÃEwúþ}t‰zB˶k˜ËÜI±”Ái´5ÑÓÍ+Øè3I"q>Ãå~P”h)¾y„Í )Á‹Q¸„Ž>Åb6ðžË»²ÅÜÿ‹µŠ³#à—½¦‘šJȼ}˜XECæëp}kšÀàéÀµ?i½òÝ3xDQ¬DIËÆy•líKÆ«¾#]‹â,A:©þ½ÿQª?RˆžeNÓi!›~_ÎPøQvÔ’d«¿”áÒL´[󲪢‰G +\P¤¬ªW’üyÍb=|HÏec`™êŸ«9ùs½b*I¡D.¦Àí™zceÈpaxͬ DùÙ„À +6ío%•³‰Li|Ô;/ñ‘ñOß ¡!Ôﻫܾ™‡»#pžŽýÇÙ\{úÍà[$,åâpZ\òþGÑD8öãà[œxÌ=|¥Ü7I1…“~Ú¯í’ùŒ³’Ã+ò¶d>xT–Và +×elrI%—©F^Ž@$²××!q)>Ž-«ÚQr¿œËå`jÕ•³µjylºãOûµ=¥앖4ÒÇ#Ì8Žéð<’L~=:¬á2y Œo½ì‡q.HÌFç•ã‹3*wœfâ,íPÊþº ߟ‚Óúè46\ŠS…?ê>þ®J6Ì[Ø0î0­w‹b6-¥”ÍT/-ãá´”Òí <**·;†ÝQ<6°5ZŽ7,ëŸù2V%²åëiu‡ç ¾£ Ζcçí8ö¥K Tÿ|#Ø”áJu¸.½”3”Í7S¶íÊå±®`”¾É¦¿â¬=”ïQ‚‹]T°þtôº*\p¾œ)qV†.¥ÀùˆôYÇÏv c¾R6Y‰©X!e;¥ ™« +ªŠ·*…LJ?rçbSYVŠ‹8à,äêŸÛöÀáÌm¦”¸2Ö‰ƒÊØ»hï#›3Ê$bÐGh»* +[‚˜­L»:Ëp?êÁ>ÖºWUá¼WÚbëÎãá9åU±sJ`2ÊÇŤì§T³Óyå8‘žŽÅÓËJ±³jGZÆv0ÌäQNBŶk;§aÛ=I…•e¸X—q& <&/•¥Ûi¼R¶ãy/g.–aˆN)îÕ¾`»üZÆŸVΞʰÙå,8dËŽ0wñ2T G’ÓI¸žY9S‰ ÙRœ¥ë»øÌiõv.!**eÄU|«NÕöÉøöEøÀê皨fÚ.-’™26È@ŠÅìumð¿pëÌá(X±rûŽðíÐ7@×å̱{éö…Õ´kýçÞ…«Wâât1C|'3Õ*9Åj,fO+yLúLe%¦lȇPUL‰A¡«Ì)§X·xßÏ¿nûº{‚+YÊÆ-Á …vóàzð%lÍN±2VõÏ·/gË–sn¤Œ\–Ó¤ŠBì= «éaö´”²A»&­v‡§ý§=@ãæ-|ÓýÎÿE_Y@Öýƒ ëÿg÷ØÓÒ·Aü6ççn´ÿרsJ~t=Õú-€ ZqwSK·ÅÕ?sK‹WäTïlâg…Û  ;íO½…κ`É x6P¨ôÑ\ÅÛè˜vó1à¼G¡£¢·‘ú[þöqÔí$)¥_оïÞåòP%T^ùNqõ[§·Ç øŸ¢½£«× ÷T¡“TÔ:Œcð¯ðæËèÔhŠ[<‹2Q`‡X²ó 'þ‡Í‹2ôÌ›hw´Hß/Ï8]º•þp´¹Å É,¤{Ôõ£™aʰþ°Qt_y â÷3ÂbÌA?|¶²xÜ[Ýþ ;Ålo·[ÝùY?€®ì fpÑà#S^ü¦#ÅCtÐßÎ&Ù¸ýæ¢í>²Âí¯ÙÑÜöwïxóÎ1â¡»¿Ê*~òliy%çG­n ðþb¶§Û­nÐ?½ëojz—w¿UùÃácÿó?ÛpôÀûŒSVðZ +\´P´ÌnYQ\Ž®²‘0»’vZÁ‡sÐåàÙ-‹Á¥cIáÿWËuÀCÜâmÃôH ƒ + ‰"+§ŸÝÞæèÕÃnüá6ÇbZÁpQ­ÍòÊ6ŽOÐäöëtx£UÜ«JºÐ9ç‡]ç2÷:næ¾·ŠbÚ²mÊOtÀß`ñ[;÷>B ÐÌUYßÒâ‰7-æ¢Ó/$Džöâ`f +ŠH–£ìb&¨¢¼¤¢ØEšÐH˜v+Q轊Àa! @?Ëc1WŽ_Vü?×Û¿µS¹4úÉw¡Ä€ŠÊ}:l¨¬*ÿáw!ÊèÁ¾ ¥ Ü¹}Ú<1¿ yб˜ŽÓýÁ—qQB`iÕ¿ì§ýý½¿þ›ëÒÒŸ1Øœ·÷(þ?Ym:þLUíƒcL"qAàB;ÿ¡úGÿ€Rtév3?+ÜÑ2Þ;úÈA}„®h;Ø+éÙUüŸô÷ŸêPç¿£ÏzëÏû{t½]=ûŽ7{ûlÍ[çq,§›xþ_ôædßßò6:!ä”T¢AþÏŸFÿ‚ÿËmÿ‹G÷´ümúço½óݹýšŽ]oÃJ,å¾uöÈÿž˜QŸ#ÜfIrÚÜ»1¡©_SžY’7&ÝòF*$©'\=GâüCI§ôdÒ«j!FEÌ¡lzõD°gm\|d}L^“žÑu’n£˜p™eÉi}GrFs.îT7Æ]&ñ«Q]ã˲‹ßð¼ºËßîOŽ ŽÞ#‰ÉŽ÷3CoÂuþRÜ}á“ wŸim\ß²úHvdåa÷®GU‰ñîÝ©QÙ1bÂЖu[” ßJ޾¸£¨M¹Ô-k]¿~Ò^ùânÓŸücd@r&9Áß—ž‘žÎø4ݤߤH;åg’S’êø”äèË;]\bRqv+d³e½Úž”CÝ’veÙIòj:–GEûŸÝmå¬>à{,¯É8MÒ䔾=>f.ß5´“ýúÇð=ßu•¾úîì<ÿúÄ/×ïµTd¦”gH‡‘ŸuEÏïµU,Þ¨çÅÍæ÷^Üj.{öíéßn<îØßp2;c’Ä'嵉)UáÒó)ŸU— Øû66åÚ„U´<ªk^}¬l&}}}ПδGv6ç×öŸ0ëÑv¥òÓ‰)qubZU¿>)?žœQžÉx¤uK÷êÞ}ñàliÖ#>™÷ê{7C&].`Ö0'/ +ö¾~$:šv[4„Ϫ]›[ˆÃeCZ 5êR>½ðõ¤¸6z«éÏ„Sß“piøëI-5k4æçí—²a„ iø™€F ª»’NááÔ´ð`ÆÝ{Œp‰NlEà}!ƒœ hº¿¢5åW¶Æœâã —ô$Rw§½²3Y¿N” ZͯæEÝ‘ 脟N²:Ý{ty’0åVµ‘AUçfØ |3g¿´ïÍÏZídÄfßpD«MÇšSÕŒÖ_ÚoµlÀZ#‚ƒW©ðÈ×T o€ô™Õ¤_×›‹¨ù„_R—öË›2UG.bT“ð›Ä”üáÖ÷f‚ƒ—3!“*7k2äç¬ý™ª+åž üÂÓIàXlJx`yTX3yñdeèÓžý1Ç€5ãU¶®Oôxy»çƒÕG’ƒŒeÄj!ÂêîŒ_z:åÍ8%g6Ã0W£jÃ!?õâÿƒOz÷'üºžgømŒ)Off`x,Ê´GÓŸˆMò÷¯Mk›îiާ½ý}„·¿}ößX[erºý}ÒÕs ãìÞŸrJk×§e§6šÖ”ÏnL8ôË÷<ûºù÷ËwÛ+bc»2“’jÊ¡ïL:UçîÙöý]àZó`/v¥ÝºÎõñ¶]ÏoùÅòƒ“ÿA¸„G²^M;é1‰ŸIBxͲ ô‰ôšå¯±7íRžMψŽR~esÖ¯j̺ͅœٚñ[4°†q‡ºic\]—qiÛXkOº?xöÝÉw‚ŸÕþzÂVûOkwÌ¢Ô¤]¾öX´ïõwÍXü¼æ/¿©—˜àïMOõ‰9$Ç ïýû™¡£¿"Æ5”߬Zm¯šûâÐyömÍ¿eü½‡`? º†ô›„O/Hyµ]„Ç,§ü6ãfÔ>B…ôÒ´Ï ‚µ ÏÍö_ÈÍÚ3>ØÏNřĤâTzBqšò¨š(Ÿül. ?Kye§S“ê³Y·Y™q‹O¥§…Gr~X ^]4H²~£4°h³¡þ¡´×¬ÜpèÛ3áµjȈٙÕËÓAƒ4 ëí…tHÑ:{ïÜŸî¶–å¢ö+Ù…¾+٨Ś›³ŸÏÏ|J…͆¬OÕšõJjÓîž½¹¿:žŽ{[?Zw¶œ‹˜´„_/LƒÎIºdu™€äT.,®Ë…¤õI§ààò“öªÔŒ¶'ï¿ðE!|áÛLP+ØpŠªW¦zv¯:zö¤ÝzþæÜÀuØ»Æì¬V”|’ _øŽ óëEI¯¨&áUǽêö\´ÿj6¬•Àò©½Ÿ Ø-dÀ¤ÈGTÝ}ªUå"Ћ²ùYb²çã´SÛ‘ôÛm)ŸIEÁØRsö‘t@Ùñz´éO¯ž4¼ûz´ñ±™Þ#³ß5îêþÃßÝלx‡ +~2µú¤gOôFí¿,~ÞôN|T|$2*©¨I— ª;É€®æÎPY ù°QAú5]¯ˆ÷¼~,=¸áÔ¶­zçž ý§·E)·UUô÷Ç=²ÆçwNÿæÕÝú߯¦5Í …™Ý÷è…¯‹` @§xMyŸ¼1ãZkç>»ÓòÇ•1Ñá¸Ç,{ñXrxá«ö÷^ÝïŽ=ÔÕ''dÇÓÓ½‡ãã‚}¯îwVÎ\<ùÏÏïð?JÌè»ÖŠ3ËZÊWî5–§¦ºQ!y+á’×°wRðkOJ/dý}6Âc‘¥ÝšæŒGr:ûè‚ݑ֧ýš”KÓ‘ñØõ±C×ÚC#1câgfÔMË[JÂ×÷þ½ïÂÁÿ8_ÿëÄ‹`}T×ôúždÏÊÑîõ;½½‡–ï7ü1üù±_ÎÓø×µÓÿ6ûy3—tdIÐý˺?xþmSåú㎽”§·šrw}Lz{O^eóØ7XK]…ˆÍV[L›Q£>ã“Õ§aß!³¶€ÖʬՖòª[2nM[ÁgR~ï7ˆ·‚’ºÍ0ÿX.ÔuhýqCIjTÙHyú7¦…Ç6ÆÚwåCzÙVÔlúë’u(6(Ò^?íµ¨S€R^ƒ0í1KÒðßLtÿœ¥Ÿš·Ps¶*bÒd":ÉË á¡U°+°G.älçáo¸°Ôw5¿`¿˜‹ \†½''½²ºøtû.ÂÓþAÊÓññš£±lÍѺ Ö¥0sñë„WÕJ…eçÈ€à(‚Žn㽸_ÿÛĤ¼)8ÿ%¸ôèzb3ʦ„SÖö)ÛÒnmGnÖb%#:Yôraaèf.:òm:Ø×ŸðëÅ™`o ÌÏ*»²¥ íç]qô]V·¼]ìúË‚Ñð×§*qÚ'oH¹5­ù€¬q3À?’ýsé»a^TdèS"d1ÍkÛ˜é­Iy¥M)Ÿ¸.æõ¤mWèÓšß<ÿJp º:¾ò@Qýì»®ŠµÇ‚s>EcÎ+©ËͤWÙD,úl ÏžñYÕiI’t¨3]k–^ê¶“¢ÃSOýrí±ª!ãœ5£n‰¹Ä'b“ÝûI—ôlÁo5æ‚fm£j~ 8æåƒÞ2°nÖŸ(O¤&UuéiiMÆ%«OΈk ¯º“Z´‹wø»Â×›~ýâ»ÞÝ‹7Å»_'Þ“—×®?éÝ·ú@ðÁúcÑþä´üTÚ­8ý®•óê¶öçÀØqS&¨hŽ9ºw^ÉIÒ';úº9á3I3°.·]» {}kNÞžòôˆMwìJÌö§\âš èö„SÙ°1©iXUÔ®=–¾”Y{Üùþòs\»×UILªê_Þm缸Íç®?’zyWº/vO]ýôfýo÷üýìg5ÿ’šR6Pn³Šò[´/ÆÅ‡ãÓúÎÍPÿÅ<ÌÇêDLJO¿«ùÕ‹ûg~»6ÞùÁÚ¤øHÂ¥l;Ñrª›r~“š +ZŒ…°Í6[C•d@Û“ö(I¯¶3ï3ôæa, ~ñ‰|¸çpÆßöÁÚhͯÁv%a­=ØZ¶ñ¤óƒMÀoæÍæ7°VR°–“.UsÚk”¤ÝF!64å‘&ïƒ2·h¿Lεä¬IOÎZûa_Œd‚šî¤ÖBÔ Ú\0Û7ŒÆÜœA“…ý³9?ôU.bµgýÚžø´èh! “nFuÊBT«(ÌieTXÙsˆ« ÀT — ð¶òdy¿AJzå „»{åW´äÁÞlÌÈëcŽ>mÆ×gÍŠl@/Nyõ|ì_2 lIù5›Kö«¹y£‘\TX¸‘›—µ%œüý0Çu„_|:Uò7ÜÒÓ‹„>}(ÙŸ ^Ùš3›7çôª\Øl¢@d}â“„«©âõÃs%¯ñ?¢‚:qa®ÿéÎFú/fÂç¿¥¢ƒŸÆ`lÃßµ¼»>ÎßM¹%§ +!£*·`¿´>zÁ›Ì=#­‰;„ûcí»(ä$Øò£<·:Ù{àõ˜ºa}zȺá4‹ÓE]jºgïÚXkù‹=»VÇT§â.ÿù¨ð@äFí/H°Ã/¬I¯^ŸRœNÌ€ p +%f$5ìÌÊX÷GKßtrR“ºŽ­`Ö§éL¸DÕáÁØŒäØë‡½-?í‰Þm/×µ¿û¿Ý•ú¯©Ç–îô¤™Ÿ“wô +ôûÓ;M¿›¿ÙôÎÆ¨ìè5EÞKf΂ŽI»ÚÞO6ü)1Õø§øTke|¢ëÔGÝújJÙôú!ÏàHÀŽÂ͈ªæíìúD÷±‰®÷““==½×Zúhààö^­ÿCÖiU%òÓËZ9K7ëþmé«S¿\úòô¿.ßã°ô {W_/çÿX¸,:°é±³ 3r~Ñ à§6¦W¦ûÖRÐyºÞ€=âe=Ò-…ˆº§ïÎEÕÂlHÝ“ñƒM…±Îz.›ñ÷ÀØñIŸº#’Ô½YЫ sʮܬ´iy²gïò#yÍ›ðÀ¥7‹Ó›Iá>W›<ÇÙ˜ ;Ãß—õ˲Mw.lTæÂVÉ„†®e‚çIÀIX§qäDÌ#=™©:¨¨NJÍ”waû@&h”Sa‹asÞb}³héßœ7h + ]. +{6¼Ö2¦‚ÃרÙKóѾK…“17¯S0¦°ÿêH¿ª-ë×K2>}o!0x){¸€ å’Ÿ½ô>ð™#i¯ôô†£÷ °èâ.uÛ†CR d¹ÙÁëù¹þ«…EËÀæ’¹/7¯Qi#µ¨Óó}*œ(ÌžKLÃ>wHOÆ&û_ÝoúÃÒÍÓÿ¾öÿÑó;W{¹oE®4ïzXteoô@lLmIOe¼êÐÙ-H¯RÀeÁÎwæÀ>$ý†Þ)ÑÑø¤ptu°' ˜=ã§B&}nI§"ýCdp`8ë“ ©:ÓÞÞc1À5Kw~»òXZ؇Óayg6¨h-dÍ`ÿ[)`Oﱤ»÷h&(>‹*Ú  '©ÐÈ Â?t)íNè7+`“V§E‡7\’š Ø+ëNþ!èc÷Ö¢ÙN€~Eû`kÁl+D À^ú`¶üœÅÖL@ß›ò¾š5YÀIdtèK8Ìæ’ÑøýsËÈÖ’¹Ÿ ++Znþ¸‹( ó›Z „WÑ@F¡€$aŽS0î`Ê”[v:ã7€LÙwKOæ"55›©¨Å’[0[ + `ˆÀŽrs;µ`‚³Ú¨ÈðWd¸ÞgÉÏÙ†ó`ûào˜~•l™¾žôÜ´2ÖõáÑugfàÊòú´KkÙVuð1knvàÀvöð›„Û(Þ„v —²9éP4¬ŽA¿¦µÒŒà|Ò­<›ùDv# :álÿðÙãÿ:ÿåÑ^~ÒñþªCÕð|B×0uõì¿û®œý]Ê¡mŽOIOÄ&d5ËeŸÞìšýªõÝå{½û6gM†W£’ÃË£²£À—ÄÏî7—®Œžýãêxý»±©&ÎÚã&Nj +­!“tpVø³Ö?‘N›6ýKy$§nü×ÐõÚò¯ýGïà©ÿºú ðŽô¤ÿÚ‰_¿¼ÕR¶éSµSne#ý|}¿åÏ/nŸyçùwu¿;°}Ãê¨äáÒvæ‚Z!Pw$À¼zÐVúâÞÙß>=ö‹ç7ë˾H(à#àð Ðí±iYMlRrtåqÏû«£üÝi—ôTÖ§<—r×T“>³"íR5½¼ßZ¸v쿼¾ÓÎY¹×Í~Úòçô”ºc3lÒ§fr꺲n‹*ïµ[(¿QsŠ«ãnàÐÀKó!ƒ|sÞ:¸ê–Ÿ} +¿MN õP°.2>°=“-Ü„‹”zªè!£×2¡þÐÝjt3쵎 â0îNà2¢TD+I¥M°f%ß—ØŠZìù °”¼ x€´° ï|óLÜøô>dµäÂýç©ðÀå4|ÌuCÜ%=™ðÊëWg.=<÷Çè’BTÝ›ÔÀ'„_ZOdgɈŚ è¥ÀŒ¹Hß2©²Au7<ÖK@Ok‰€ª­°¨SåæµÀƒõòܬA“(ÚR>9Øu£: X1áRGæ9%'V'{âNÉñÒÉ~£4:~u¢çã¬_Օ穨­?;k2‘aUÏæ’É’Ÿï¿ŠìKnÞ~>Ø/?o4‘³êdg6çG²õeCVcð,5 {%j¶‚}”gBʶøŒüâF ¿ºsÕÙ{ ¸5ŒÇЧTtøËÜ’ý2¨—Ç]’ÓkSâciŸÍžô &ªæø4ŒØõììÕ)Ä+^åY¤6œ²ºõ)É‘ ÀWkOz%'UÍÙ^÷i;_NK«ƒ_œ{çÅwüH¿Ž¿:Ú½;9.=‘5¶¯>64=ýNâå}kì í½ßR’^ºtçìïâ“Ý{ pÀ€¼é/Q•€‚}›{ñ¸“·|_t(ëì7Ç'ô­±IÅÉå‡ÂýëOÄÇ6‰‘S²ZrZÕðòNK™ïòÑÿûÅ­ö +ØMÄ”è08fí1ÿ£Õ‡-œØh+ضŽ])Àt+{÷f½F1ààX×¤Ç ŒMôìÙk|/=ÝR‘sõ <Ý{³`o !਀}6&$G“Sš&Ò«ë¥@÷"Z’6¬OãħTmiÕ´úDzìçéÄ”²˜RÖ“ùItRjFrêõhÛûOï6þ‘tê%¤Û¬ œAÆeè!œ€™ºÞ¿Ì›-oæL€õ²U§¸æéþ®”Ë(¡f‡>#|þƲ+²3iND- äœÙkSœ53‘aÐÕf#áï­M:K“îÖ]IŸàh:$9“[˜|1×ÿI><Ã7 +‘óßæ4’üBïéBT ø@Vs(ËEìýÈg‰|“È——›5jb ?Ö¦¤Ç3~iÃèëü¬NJø”Íq—èX8˺W×ýjì¨ðUøÒ]*2x%7«aE 5«hË¢ÿ†Õ=DXݵ $é³Éðå'$p‚lÄfœ Þ˜tÉN¦ÜêVÒg3¬NwïY›êÜ 8LJ†®Ñ|7 Þ-ØÿzR°gù‰äé6ˆ¨ ^º6*Ø—U73#C±q»xuÜØújT]»kéÅíÎÊÞ=Y·YØcoÖ º6`5 7°/6—<¿ÛZ¶6&9Fy¬ú¬g`0Ü65¥o#g,RbZ׊üJ‰‰îÝÏnÕüËÊý¦?ÆžöÓúŽ÷:*_Þn)Ïz ¢´ÛÀON ¼º[ûëÅÇþ9v¿xµ²ŽòEi'ØšI]+œ"1Ùµ;6Zÿ»äØ™ß''šÊˆÄ·tüpÃg÷[J_Þíø ç³òA{?pk=ÔðÉ ¢%åRœÍ‡aL¼Ê¶Uàq„Cß“ ^Þ˜è=ò껦߯=h­HMJjˆù©<—,³2*:¸¼0ï6J¶€€}iŠ¡ý z +æcÜ©8“v«Îeaï$€—R ƒ¨Àù/ÈÀ•dxà*5Ûw! œ =éÑuQ‘+  I–qÛôyà ù¨^AFä-dXÖ˜ŸStäæôê­…¾+ Oí€]€˜aMÛ/õ_Üš³öå"zY6`”/mÍÛ/dC}CÂ=€«3«šôéù0Ï øÀƒV2d5gá=$<—ðšå)¯Í]}>¦oyùDv„ð©;7猺-X‡ß?5åætòTpHÀfIù?™ŒÆÞLF†ŒÊü¬^±…°ZÄfÍ­†˜[P³6ÖR•õÕ¹àù/¨€Ý›QÖÇgkK´üÂBÿõØÇü¬IŸñ\'¼—¾&ƒ}}™E—ÌJÀœPóŸn!_ۼɜ€qژѴ€ÎÝKxägó0†ùÈð…Ù ·s³}Ã$ºÖÕqyM>dë‹9õòW£Ú–¸sø|ÌõÉýUç§£1ß•{éɰî”Ô¾í=°2mÑ,{‡ç¨€ïÚÌdШʀN%‚ÀŸÚVÂ38°>mW­MêÏQ~«ž +˜µ`×EdÀ¤„o²! ¹6!:SœJ¸ú,/着ãc°®al²>«>ckNCO~vûäoÖF;÷¦¼ŠsO¿éÙELökaï騠IMlæŒßjؘÖu=»ÓÅ}õ »êÕ#éá¥/ºÊOäÀy¤§‚Ã9òÝiº³nUËÒ­ºß,~Y÷ïÄŒ¢%1ÈŸ ^޶V,Ýiú}lLq2î3j#_´ÿùÕWŠjbjäÂ&|CÁgÕæø¬æßBWöý"õ¤çHÊ¥ë|v›ÏKLº“Î~Kñ X«Ÿ¦=å‘7,>iæ¬L +eýÃ×âž¡˜K/ ý¿$‡lXÇDçO»µ]©i»:9uåZÊi“~mw6¬e#aaA«|óLoøþ™NK„Äg6`>»þ,Ù€U_ˆö]@º84ëò cß,Ø/Qa(áé:€°-鲩Ò‹˜pÙthmm.‚Ýê&è590²>cìI¬¦×½ òì㔣O“ ›Ô¹¨VDøTÍNéÉlT#Ì-hÄdØb&‚#Ÿ¯¹Ô-1ŸQ zמ‰WB¶'¨éIzµí€-UTP'̸,ʵq}'é³›²Áþ2Ð7P˜µ l.ô…ËðqÒ+ƒo¾šô Ox¬Êl¸o(7?p=·0ò]°R~Þ:PXû1ëž?î:|EðÇ·ÉÈÅ»©ààÕLpð5kÒæa¾ a«y+bP"Ÿ–÷ó&îÌåöWŸŒ¾t\ýji¼_õÊa$GÖ“ƒ2í3ÈcnMGðFëïÒ>U[ʯjIú5íit.í5J3Þ¡ kSvåóÇò£…HÿÈæ‚u¨°¨×dºޔÛ$NºôëSŠÓI§¾ëõŒ¢Í}éì;Ë÷äÍ[sÀBýC€³IIš˜–Ÿ¿Y÷ÎÆ„°úÅX÷¡{šýÿºp‘ð÷õ%}Úî¸KÓw©›VƵÏîts—‹øn¶U<Ôþ‡åÛš͈­e%ë4啜~ýä\™ïêîÿsáFíÛ„C~v}JZûòÛ.9­çSƒ$9#=™>¼ö¤ƒ»øuío^Ül*‰ÜíØó¹ü£ˆ^í8´:ÿ `|Ò àhq‡üôÆt{UÚ%¬Nû­áõï佊Ö7OMV2¢â#?)áWµ.uüúQ÷îŒ[/ZóJÚœNÿêÕ×~ÚýÙ8áàP· ¸1¦:éºXó+×àÁ_­?à~6&>2Úwò?Ò W®=ÎFÎߊ;Õ­È®$œ²SÏŸt|¸:!®%Ag¬Oºâ3&qÆå^&8òYÊß?’D¶Ã§Ä&•§â“¦î˜£ßøì`I—I¶9Ûwi3Úwéû§ÖaØ'ŠLX\÷tíîÙ›1Ÿ?UÃï ÑóßQ³îf##7©Ù+È–¯nO¸Ú?J{D5„Ó(LO[e¤û<`¶Áë…ë0Ø>é·êHÀVü7é7Èž>–UÏÝ”}”s ¢3¸ØQÒ«¶Y4™ à'kneûs°¥1·I½æÒv­ÍÈjS~ö¨ ì“ íÓMèCÚ£¾8÷ÞÆì›ÐÈ$à)ØcÀ3¤ç¨¨¸„Fȳ‘¾áW“&á³GÚ3°GF€›|BEûÎg£}Ãùk?ìK!j6­M +Oß7îý]z²(þlìi:0x1üœš¹‰ðÛ›E¥0P4ÏÓÊ[ø–_ó]¼õÂ1hx6Ñ'[s÷YòsC7òQ“%æP4/õÊxågã“â£iŸ¢9¸—¬•ƒ1'Á®§<ÆÞuàåËãÊ`Ã/o.Zr‹:%|k÷Æ´©;é2‹Ò€Ïâ^UËÓÇÜÀ'¿Y{"?W˜ë»wY$q—UAë;ðži]á2`ÎŽ<ÒþOät¿aÝ¡k_™”UÇÊzà,M‰ucÊ©kO8L|Ï—Üoe{þîÙ×G=íC|IvfuFpàõãÎ] _ž}/öD|<ç3ÊÓ^ƒ(v_u¼03`YS·,Üê,%À­œê6Ò¥lNLH«×~km|ï™è;YY˜µ_ÞðÈë“^UkÖgVB6lß³1ÑX²1ÙÎ{}»þ? +®ÞjNÞ¹2Ó³7í2k(ØÏ„[ß6¡#ë3ÊÖ\¢š÷º?LOYèÌÕ)ÑX‹õ©»&9mWÆGumÉ1mkbJßîøº¥Tyê÷ÿiã±Å@/Ý^s˜e ·z?ŠÁ˜P!+àëòq$a=»#ù89mì%fCÜi–ÆÝVuÒmÐY„°0àê…G¯u”ýczÜ ÝŒ \M{5=ÙND :îB'§Â&Íüw‚½ßêöþ_®‹§Wˆ^¸“^¾—ðÿ,汯îÞœ³ m>#}ª–ø´âdzFßIxŒ¢lXÞ’è•p 4¬322|# í/Ï<"ܽ6ª­/øûúÓ^y#ÐönÎ~J…lÖp¸×NeòSQÿrBRýô¡pï†S×3w¿÷ã”Ǧ'g‡¿ÎÎ]ÝnïO ²„Oݾ>%;±p«›»òXéL2Ò>å¼@Κmä¬}(±Xò³è ñÒ#]ÝÓ‡ª¹ˆÅ +fxWvnøkjÞ>L¢°ý¹ˆIŸõ×÷_ºµ2#iy9Ùs0þ‚_w'—ïÁ»mdDx"é–œÊ4=` èjÖjMGúÎg"#_fg¯!5ú×K†Mö7‹&+šôZt›Ñ¡`“G²`+mGʧ\¨îÌE Ú­%3²gtÖJÌÚc3æÞ¸Û(Xž–Ö.ÜkùóúáÇ©iu#¬#~ +¸SÒeÓ¦€Ï$ÁF.£`cR^»òXr0OÍÆ¸üxlÇ‹û=ï?ÿ¦»,>©9›pª6&”'Óšsëšú¥»â=±Qå©ïCFÍ÷óÂÑ`@àQJÊo7wé‹MiZ×&”§cSŠSë„»IÀ¢‰IU}Æe’o!ì¶þõ£®÷çn4¾óü‹ú_¯Ým/ÏLÖö›T(6°£&ïë·åý}Ö䔼.9…ü΢igû‡…€°vyôl p&^Ö?p9ãî3§]&IÊx +ægsA+ÝZP6£j òU‘ž~kÆsù&á¾vŸð]ú:áÔ¶¿~ØZºômÛŸ£_K>ô_çï&CöÁ¸×¨x k,>ýÉ·)×ÕÛd 0å×t­Nu}˜t +ö§fÄG©€N˜ò+šNÀmžÁ¡”Ë$Bg³kãÊSk Ïž?:[2÷Éé?nLú<àëö]ü:¸x“@ø,8òi*`³­ŽÊ¿¾'ütàq +¸ÂmÓÆ}CRák°^¿J"Bš¯8· 8¨0«ì$ü=‡×&Oÿ>ã’Í…û/¤ÑØx†GÈâ5:éæœ¦·0«ê&\݇^Ý;óã¢j˜á×ñ ø¾ìÜÐÀjÀçÒ‹1æÓöÌ?àャËÁïÓÀÅcn³‚œµÀZ5*#I !­0|muôŒW#H¯UÜ%>¹p«úßÖGÛ`oˆÏäCjaéH·ª)áÒ÷ÂÚú"7g¡"²s„¯{ÚÓsô*šrA³&7k¤`Í'µ&úöGê3É1cWb\×BúÅuTDÚ”ô¨ZR>›é.Q|ÊÔ“šé7æ%üñ‰ö÷IÀ“dP+@ç¯i·¦-é$½F1Âb$Ø’´_T›û– HΤü²³$:›_¸ó '|#×ÞOFÉÀÈgÀ©D¿¶‡ò)[“3òzÖ[*Øg#CƒW)°õä,½ž>Ùœ7[7#j>×eü‚c›QióÖ¬¬9ãç×l¸„Ç.³– +[A—":;ÔËI¯¼™pKÏdZð…†•©öÓ!³5=;p-4HÖƒfmì1g4$ƒü£Ù ¼™ ©;²aÐ÷¡Á+TÔ:ö«Û Ÿâé—žI:E5¯Ç;?x5)aõëñŽ÷Óe'êëŠC^?«§<1anÁÌùåçÒî¶×ÇÏüáÙ#¿Y{ÔúQzZÒõë„KwÚÁÞJꨀÝÖu‡òÌÊdï¡õÉ®.I µØ×|âºù{mÂ1`!§=†Þ•ÇmÜèêzqûÌŸ2NYs.¨—¬=i«HNwïË£½Q¹zÿä;k÷ëÊ2Ó¢úœ_/&<²3k[QŒ×cÓüƒkSš®Ww$5)'Ì÷ãö—FG×§îJÎ(Ñ™dÊ£åÃ<]Œ¹Õ€•­[sŠÎ7sòö­¨¦wkN+ÍF¤çžž# §¤6ã1bãú¶Ä¨±3>!«Í:öåÃÀ&z)‰âæMæe‡¬v}ÜÔCz.}Mø¬úµ'½‡×‰ŽS^ƒ¼6¨ÓYÃúDÛ®ÕÑ–2 +úLú¬†´ÛØK4|Â+mÌeç2AEëÖ¼A³5oégIzíVЕ`ŸìväÓÞ„¿BÄbÏ…`fÿTí€Ç: ózM~iè[2:pùg ³&Ó÷‹zí›äÍ‚Z”tµï^<óîêds9Œÿ©µaMÌ¡d}näÃ#ŸçVs|FÓ¼1£ïZ™T6¬LtìIú-ÆU¯M· Ü2ºp3øŽzjI…Û 620‘,‹xjD/Kzäu„_+ÌÏY¶–ŒVj^Ñ“ +Kê³sʞ̼¤ ÖàH6rm&½æÎ€î§æû.žßyó|øaaÉ2’4DX'Í÷ƒ1‹â…£¶á¿<íÿ,”œ%CŠö\T \F|æÙîÖ§ÅÕ)Ÿªãù”`Å=ÌKÍÜ&ç¬dT¯&"ÊÎtXØJº + Ÿeg­v +ÆlÇÙ9£qeâl9 ¼¸Ô`ô0¶Z`_ ui…½1’Ÿ3êra‹¾©xTTw¾y?Hõb´sÐNaÞdÛZ²_ÉFM¦˜›hõI'0¿ +ZM°þN%âS„S-Èzú.ßl†ìÀ›;žßí¬XŸÕ£øtà§=i7p}§UŸòš €Mû©[6€¬8øûWžˆ§f.}›²k↶GŠSÉQÉ)Âk +xÁòw|¼ûƒ|PÔ°k!å6t§6éí¿ ôS€×P\vöFÖ!8’JÎ=ºqè÷÷ ÿD9ÍúBÄl$ýZAÚ¯é^½–˜V4^›°µùl"·;Ë  Oþº¤QPAþñ˜ƒ¿/EŸ!‹O^a5åWuÆ=’Ư ïÿêÕî·SÓzåÖ¢yøûE³ì¹fÍ­ë^óÈ›æžt¿¿æÒ cAX[USÖÝ?s_ºY œO8Å'–Ÿtp_Ýo|w}¼cWÆo’/ëέŽië)À[sý×7£ªžlôpPÕž ¨ÛSÈß´÷%ü:ñºCq¸ü…|Øb¤¶ ™G‹Ç|‚£$¬™ÍE•(¿d4'a­¤ƒ—ó ÷ +‹FSÒ'k ‚ên" •ægUòÿ¶¤Õ¦ìšÔôîÓGú¶ ÷ Ø‘þþ„kp(î¼üUÒsùØ™Á ŸIölF×úlRYKF.ÜN6JÎZ¬DÄ<ö_Ê„ûÏgg‡þ¿” Kά;z§ýzUaqðKbN-NDD§щ¸Gx4í=™™EñaŸž ÝÊÏ÷]ÌúÝ|6x+÷ÔhËAßSÀýÈ' +ó• «øIW×^*(‡}¢WäBÊÎBD+ý~A§ýoKÓÖœAÖlÂ-9ñz²³*ãSµ¢3àZ2lÖákÔüà—Ôüð7 èw&bP¦‚z9kµÁZ6$’›)¾ž_÷èùq¯žúǸ6….Võ "}#…¨µo+jÔç"Ú^œŸñÿ$7?ði~ÑöѤ'@vHVˆÔÈÇòèázaavàz~väf>Ô¾èÊú,:äEñKŸ¼ðH’ÑѬ»Ï–ò\übcÆ¦Š¹mšõ)cwÚ­æa̳­,æUv/ÝÛs_V¿åù”òëDkã¢Ã«’ãÀÅ[ëÄH'æ4ÂØb°ïWWœ6íò”©‹ö…‡È…¤É™î½kã]Ìß<ùöË/›¹Í– µë°7H¿Õ” }^XJ,º4ô3é–Õ‘“AØe;´ýIÒwéÛ\ÔbîÜ ø¨õùŽ +×…Ó¿ö^:ûé3hÓA¤¿µ‚”߬YwI¿N°êVœ]õiÚ—}êæWòÚMÛMà£T@ËÏ Êœ^Öÿò˜äð«qé1à#'Õ™\ô[ÈÖ¾1íÒõdýýÃèlŒŒ|EÍ ~ +¼Ñ ¶]K¾yöHxtáÛöŠBÄ>DÎjE[KZEaA#{ƒÎ¦ :tM„ŒjàðçsQ«päyÐÕ÷©… ²(gl$’ž]sJê’0O©°ÕôzRYŸñœ¿žö_¹Ÿ +_G<8é·ÓÐ/bÖlÉÎFìÀ³úûSÁ ·ˆÈÕ©txà1k1Q£&R¶­M÷k{³s`Ogä/Æ4õ ïÈu2|éò½žŽÜ/,ö_/,õ}’ÕˆÞ,Ø.d¦BýâÁëÎÌÂùû©Hÿ•WNcïªÇÀφÕ]›³Òs›yÇÊ„pÿp¢¿À¾ú>ªWÂªŽ”WÞ½óúqÏÇ«£ü=¹¢­0kÔÂ| ³ÀWˆð'."bIMê$Ø‚ò£¸—9‹ ùs)À²„ǬLÎèÚR]gÊo’eB p³ž¬OÕ6õÊ¿ÈÌXI‡®#>£l«¢˜2¨Q`C—†=©ÎÎ5…E³msÉ:œ3›SÀÓ>mg¸Æ¦ß¢…¹ÎMØsgHÐoùpßpôß󇂖nµ—¼ºß^ ø¹™ôZÔ1§N¸<¦¨O÷ŧú4i·ø¥ª} 8À³Ç-e‰iy]Îe5lÍÚúæ¿k,_y"oJ{í¦\Èj*ÀÝšÓk +sÊî¿é‰û¥u(?"ë·êó¡ €kGHã4gÊÁ|n.@®—Äê¦àÍÎ*ä“ÿ+pOjN¼EÑš€î€5·µd²þå¹N÷ýS­:R ra|sÑv)÷Ôv¹ðÔ~5·`¿k¤s©ïÚÖ3ûõÜ¢ÉFÌ”«Ó²`ÉðàÕDЬŠûû²Ñ‘[ Ï# ”LN¬:*lïÏïJû†’á¡k©Ð•Çéð¥‡d´ïJ8,ÚÙ9báQãŸ^=1÷n8¿ÄŸºc¡¾ €«.C{Cù%й€ËòQ³ å¯aû`Ì÷¹›ß ƒ€}F\>T´l8º÷Ç=‡Ó^Ź7óÖ¾¿.Ù/½‰š`, ŠLÈ:üûØ£kù°^Vˆ(ÛÉüøqÔ ËÍÙ/ŪŽX0ÏÂù;°?aoZ,æA·Pµ 6)«Y"=ŸRÖ¥ó¢øýŒ[z2>Ñ»c\r8ãÒu¬?–[¹ßûÑÚCў͈I V—…=¼Ÿt*’.e¬™î­y£ù^ƒ0î1¢<'å¶È)ADzµ]è¹uh7î×¥<šŽÕiÅ©çG_Ü—^ë=q‹kcÓÒÚÙéå1é‘õqkïâíÞ}Ïîuò6@ÿ$A—Çò†Í€Å°é³™²u·óÚ±_¼z(=wYT‰³p3`·ýeÁ~ñÍ‚öŠªÅÍÁ:¶>®@q˜µ—ìÔVD+ùï Oÿ:'LZû¥!Rud<òzÂ%9³1.<œšÒœË/~› ]LvÕØ)9•v‹ORAñ)2 ¬M{ÕídÐj¦À 3Ñ´SÚºqì—¡/Žþ"áj}øïa +ñpŸYMxûlà iŸQ–‹˜ €Áú« aÿ·PAI]Ö¯nogª6„w‰ Í +\l²¬9îéÚ»:Ó½'TwåÀf¡³0°5™ ¦xä¤w7ŸÌhœã`s^=–X}(Úûß—lrtL˜I™ I-Ø/Ss*áæ¢´å üåâ“9¿¬¾:;» Sn-™í›K_ú +þ¾ÈƒNÏ-¯A~œˆ²#|)\ lÀ©5×À@f¶lŽJxÍ\X¬6먈²;PvÄ\êæDlmð³`*|mšŒ~š9Öð3aysÚÏ?žöšuIß'£ñà¥Û¯ǰ·r ƒ_QóÖ¤WÙš ë%dÔ¨Fq9ÙÐðg„×n+Ì \ÍE®¦Ü6C&¤—ûº³~y›8´0«äoFôrÀG#›KÇó/†žö]ßœ3èàß:¿ülÊ'«#ƒò&Â/kuvuÆ Ê®åA§†3!Ð]­(–Ÿ[|üüVgÉ«{=U/îŠ>~v“ÏMLÈkâÃqø·õQáÇ/ït–¾¸Õüûg_7ü†òˆNP^ESÆ­nÎHÎHާfd'2nåYÊ«éHL¨ëãÓ&~ÊcQe|VMÊ¡kKL*O¯¢¼iMbJV›\ëݳ:*ؽ:®>õâ¡ôЫ‡ü]I‡ð`ÜÑ{(ë:ᔞXîõ~~âá¯êóúüÞi¥\:” "œª¦¸ƒ¿w}¢}WÆ+©Û˜–Õ®=QTçÝféà¢yÐÏð ·²16&:°ñ˜ÿalŒÿé‘ÕmEµÀOõÚBÔ¨M»´ã²êôŒ¢n°}Ö£hXyÔZþôÛ¦ß&G•§².‹ô¶¸/mŸ¾š­„Sz:>Þ¹+5ÝRþ8ûf´ÿ +¦íŽÖ徕Â#ð§ÿ²¨V¢ªîl@Þ˜š[Ì-†$Šn’L›}œ Ꙁ´~ÝÑñArF|<ëVC{'æ3J^)k.ñq2 Î#©Ý +k9Ÿº•ô(Kö6¨P.*òKç̦:ßóê¿á4ßú=`w“õZ5€ /ÅÝ`GƒA~VÝ[€ùU 2.IíÚxÏÇqÿ`!ªÐyô3é¿@ÁÈGû/åæL†TqEóÌÏŠ¡ ×€q¡"È™ûò & –·dƒ’3d@Ö˜†weûgC$ƒfú lÉåÜœV”ŸÓˆ¿_ÔkâeÓ`ée‡¶õÙcÙ‘”gèBÊß7¸2¡¬~·§2Ö‰)ÀψwŧÅ5«ÀI3~ƒ8îе¿x¤®ÍN,Ž¡|ڞظè á!Ýâ9·ªŘææú¯’sýW_²0?øuÆ<ë3ôƒ >#;ùúa{ù³»åOïtU¬ñ÷¡óåTЬþ8úê·6¶}ﴻݻ¶«´¥B[ªÐ¥PŠ»»[ wOˆww'â!Á=8 !‚WöÞçœ{ïû‡¼“óÃ<íCéÌšµ¾›™µÖ¯5~éç¡ØçãÎÛ¿÷ÀDÚdذՖâû½h›ŒkAúË0Ç +zæ¶Ó_è²ÞœùÔÐþp¬ÀFÚç¬Û¦y„íA„ï‰ûc–œsÔõ©†–c–à#íóm“Ô$ã0.ðXMË2IðQ{}È/6)!Êþlö¨ãp‰çFäÝfO‰ÛÁòÛ¹Ÿð}Ÿbœ,ñÝ—øk §:lüù4!Å*#ĘÆIÑ«÷V 1þ×4«èÇ4!õBƒ9U¾I‹¾žÊA?§ñÉßµäL³¹Ó‡ðâB] +»Ð”Â~N—"N•,ð©Š9œ ×CùG¡¦q˜÷±y2ƒM<Ÿ³?»¢ä|Žøµ@̴ωù·}.Î"ft®£þ³Ä£ÿ˜c–ü³BGØõÚ®QçS„¤3 1¸§¤S  ßçØˆs]õ|Vȶªi™ç3Ì’ï3 è‰ +kµ?{Ð’öÅ_ã8&È +ä’“)rÚ±’”øKGÿï2õàøäšÃq¸yx®¡æýk­Lô/ CþµÀÆŸOÑ +ÎÕÄ” 5!Á2 :¸OAJzoå³?ˆñ5bjiyϲJ¬ö¹ô2Rⱜœ à9üHRòípìj,ø¸èÀ¡¸øËþ.n¦.åÑ~?Øó_sLÔ©—`°ÿÎHÞ³âüÎ×€«ÏÔìÂ3¥(€²ÎÔeØ#eæPÎÈ^ï,ú¸Ò\à¼ÙSäªï†~8˜@øý=G/úÈáÎ#OÔ¤¤_ tدEêTËÿä[û3¥Vx¬ŸóŒ¢mp9€·¥œõ¬¥fÚԘؽ±BOó Ñ“äă1bÜîÚßíôB]wz`î‡#È@}+Ìu³ ãà¤ð`œ½Ü‚ñ\l€½ÛêAzÞv®£ÚçÎgžú,§¦&ð‘Gjû·Uþ_+\ÖàÎ [¤ˆàl2Àk Á¿G'j2€AFî…¶´ä»ýçç& üšs^,7å8È0qvŽ?tÿbð¿ô|†O>šbFq!k EoVêÁ/´‚LÇqRüõ¦œ'€vX' çZ\òÿÛ!ýZÀ$ž}oé;ß–ý\ß‘÷Ö,FøY¥ØHûÜ®_+\êÉn“Ó3l@}É)©öuD¶úà_ÖÛ‹]¶{ž;Ã䘋iéç,9ïH ;Óa“~-’r/ìßÜŽ ¾íö ¿šFqñ6):ì\ˀܟ}¬¤¦µj£üÍcˆ¯û%«Íoæ«òßìõÑ¢v{Y±›¸¯;˜¯»]˜¯[mC?!h³áaÂZƈQ Wœ©}‘ÒÒ,ÔÄÃ1|èÞ@ñçõžÜwraÜ=97åÞjÔ}p`Ѓ˜½!\àÞ Öo³3ÿµ±?ãÕjsÌãýÂ@›‚Sbgfj8%6%=gb÷„†þB÷ÓId虾ٞùré¿?Bˆ4“l“ĸƒ¡B7ËÌË&)ò±Iá¾k½%_eÉw ýÅÿžç’ìµ´3ïb†¸[$ˆ Ë$2Ð +àÚ&%ÅÉ £pß3}¦©,5ËùÅ;䈭nRðFêóZ3Äy§§è“UŒ‹:UP2Lc˜àŸ3lÌ÷ÿj(á¿Ò¾†…ýùPkp ÏÅÿZd Ïf(ù'Z ·é8˜ à÷·úÀ®k-¹/×› +ÞéÛ ïõm°÷»=(o3Ðg–qBô™’–q4AI0 cüLÃ(ßõö¼W€Þ¾_©¿4áB~Îó©ÇZvÑ¡}¾3àËŽUèp£æ¹Ý[ì½ÑYè²PŸþL»¶\—ã|8„Ýî.tÙ,ú¼Ôórš—úpš—ñ`µúf¯°Ö‰”s!OÜœ3à'€ÎXå„X³dLJmðßÂúL“¦³B€,Yp>M›Ä˜C»ÆÉP!Û}…g«2Ÿ,×ç9m÷!¼§*À®+ÍðкR éy†Q´¿¾ê²Þ˜ÿb­!÷Åñ$.æç ½Pß‹8’ЋÎu55²Ý¸°Ö~­á%Ü$Gý¾Ñ”ç<_þÒƒ‹rÜ‚ý{›k‘ä>zˆ¡@må¼®ˆ°×—ÿáBKÊúÈó'³¥(‹–Ý#Em´Úë-öØî*ø0-JvX®ËznB|]mGú‰y©~ÖItòº}­øÅ,!ãXShÎwÙjO¶Ôèp0Vì³Ð’ïv$#gþZâR”ä4ã`áÇ­îŒsµñ#d¿ß[‘Ÿ®1âï÷ã“6Û‘>û¸ •èëÕúBçNÔçåè[9'öþ!äöf ÌÛ&¡eØ&Y¹‡fÚNöÛþ Ük¡6ûÉLE–ãfg±û 1ô†º4íõñ0-áh‚žºÓOØèÂx¯6¼4vç¾ÙiÍr6õy™>«ù¯l“|䙦Šoš`¤oöÀ\—kR,W$Ý_©LuX©NqØê¿“ñRêàA;=´} ôÝ~?ÔÍ8uÛë‡~\n†¼Ö 2®4ä½9C…ìö!‚.T<Ò±” ±H(ñÆ1l0€³o;½Åî«€—\¨Mrðr0ÆHÛ ‡[$åã?wˆ±Ñy»T›ût©6ç¹¶2å™”ûÈ"%¥š€z2O  #ŸÀÛîôCÜô. ©Ïf«ãŸlt¦;)P1-ré§Ô4´¯k¡o.|»×WòÙh×È>¤€׃tè©„”`jÓ4„ö3ô—xêÛòœ€žèD)Œc¸‹Š‡0)J ¬³¥{¶<Õabw?©)K»7#Ìsœ¯Êzª+Kx°Ô~݉‰vêÓóði‡cذ…ÊÜç“”„Cؘý˜˜£ÌÔ‡ë]¸ÀÝ!BØrSá›#1Î:‰‹8‘Ù×~)ù¢.‹º«+Oy²X—ûRʉq89ó\ËÁŽQ¬Jân_±ûbCÎS5/õ®†›~O[žó¤ñ‡”•á¼Ý‹9–±ò'HñÛ½°ÛíçŠ|6d¿Ðw¸÷óøTB‡'…ôå.|о˜šrª«¬4Šiéóµ9¯&I‘¿cnµ߯‡¼möä…ˆs¾¨¹!××ZÒΦ‘'*8à{ +½OäÈ:BÚ¯öHNM=ÓñˆÇ:.i½è«oC¸ë[ó^-7d9ítzœ)È©ÚÚ¼ÏÙ^[mÈ +ü5'à­÷ÂCee±öGrÞ g¿Õ7'9ìtå¼=×P2Ûp­c˜¬_€ß4ŽcC¶{ ?.Ô';Î×Å?œ*‹»7]‘õ¼x§6÷Ë5ã*|­«àœk‚–pCBO¾©ágÝ—£n ƒoN +î¡Â.kùi ¦WÚ±^óµ™Ïg*R´¢Ô +vâIrô5?ëy1É©zÛ0B“ròž–ãÆrMº£±ê¦æÄ?Ãú]]EßÕwâBg+°ÛÔ˜#YiÀoþ†>ا­°ófsá»ùÊì§³¢LG} 曜{³\YdçGß^”—y„¿Õñַÿè;aÞr^Ðí妴WæQNž¡Ÿ¿ÖŠt3S££„PãêÛÞ`±Çn?ô“¾=ûÍLu‚ãtEÊãµ6JÀj;Ñoo¼Õ÷Xi€8¯6CÞÎÖä½P +r:PQ׆ȱw÷Ñá†QRÔRØiJ”é e'ßÕˆRŸÌÕ¤=]iL{y .þ&Ä8ŽP#ä8€Áô%à\³Ui uÙO>x9ÉŠº=L¹ËËüü‡”“èü]EÍÞïƒzìöº7Pè±Ñ‘ë +h­Ë^_ÌóéŠû{ãˆh›Ž +±ÊII‡€-5Á]v:Ñ^«E6;à^@¾ôÐUe½²¥ŸÝmu~Ù"F,·”|œ©?_j‚¾Ûì'DHvŸ5%J¼·;€ðYn†¹,7žz ºØþ4W•ÿr³µÈõÌ®ÅÞ*^î›ÙjèÇÝJÂBU¡ófÞw¡õIÅËvX¬-x¹Þ†ú<%ÌMÿtu¡ð½Ã¸ +ñ¡˜q}Š“pw±:çùj+ÄÅ,)ñ;ŸÆ¦iê’ßvb}¯ÎÖ~4Š+ÈëÝ”(•(ÿÍ)ñÉ!ÉAÉŒ»+&þ¹;P°;’÷épý}¶¢êŸ.o·'ë­’tCÍ ¿­oI{ªoHw\o¿ÒwÂ=ÔUùräã±² ÿ]WŠ(ªÁ¯¡qŸ®#|œ.›Çié²ÒÔ»äð«*vôYQÒ)=âÖ%ôÎvO¡'æ üþꜰ(æŸ9óP÷Ýê¼_¬Íy*c&ßîC‡]Õ”e<æd:æ¾ÿmŠ—ýao®.Ï|1S‘ýn®"ãy?>ô:Ð]W:‹ß_ÚèNsà¥¾ë£Æ>3Žâ£÷‡€¶{Øp[mÉy¡æÅÝÂ|»Ò s»¬æE;¶âw’ßXŠßìD}Ýì(ù´?ˆúºÛô^j‚¹ôcüþè‡û\¼¶«¾þÐÙ“˜’¶7ˆ;ÅÛŸ©ýÐâ~Nã׺2Þ)JŸŒña†væf7Æ©úa½ úq¯é³Ýö‘ S_\þ¢Ä¿µŽS’t‚ð[³1‹u™/'È‘wçÊÂ{ÜöºÓ¿JñIë`«”œa²Å +'—aïFɉ7ñÑ(XIw­c_«%©ˆCIz}m§Ÿ–6ß„òV–¥=T•Å>0ôÛ@~[m)x½Ú~½ÙUüy¥ æµÚVüíD)$™%¼‚½ŒßJKÎK}[Žó(-öNU®×)7ñY31öI &Öqà™E ÓÌ×¾œ«Îz>ÉŒ¿[Wð#ÁóÒLCK!þ .úóÀí<¶ˆ IÇ2JÚ)[%PŸÕ¶è3åÁ·´‚ˆ{ë=Åß°É/ø‘5u¸X£˜ Ý@˜† +>í÷æ¾[kKÿ ¦xßзe~üZk‘ïãd¿[†±b_N‘ÿƒÒ÷›f >cgáµÒ’ýl¾>Ëq±1÷Åte–“‚Š›ôt¯TYv§è/5e¾üÐ-ÇMÀséÛ ÞNW¥=îC½!§8ltçy 2"žš†pi/–רäät M@æñ?‘!Ï”ˆàÉÂ/sõàwš:T€T˜ïn3Á;ýø ­Î"ãÒ×8Œö_<š’›ì°Ñ +<£&Oqcïîvà ôô­.t°m õ ´âÿÌRÀ–‰bÿÕö´Wçj6 +ä·åN¤ÇFÖ_ÎÍqœd¤Ý_k(xs,E…OaãÕ é)®×ÖÛÈQÓU%n´Ä?ÕüDÇívˆ+€çÐ~\è‘„˜h›ÀÇÎ7d½^í(ð2Kø%Û}Œ˜í>ŒÏV_Ñ—­žbÀÇ#µÕÙŸ7z¡]ôä7]ä„—û£¤•0ÇIÂH¾#c'Þd&?¡¤¾eeº-v#CŠb?ß xõÔ{ücš…°Ù×üœ¾3çÕZs¢ãjcÒË­N cÈ)Ôlߛ龯. òà ”¬Å=ž«ˆpsOYêk’öõÎ^?ØÇ"ÇÇ Ñ£ë*²]Ís‰?çÙXó8>z¡:Ýq¹!×YÎM|Hzs¹£8äñbÉÉpìÅD\_¨È{q4AŽýk®Œñ}ºœk `û£|ØF/>pµ=Ïy¥!ý‰–Ÿýh‚³|EßóÚ%'ëª +_mvP£vºi‘=(Ÿ+£ÄÐ[³•YOçêòߟã¨oGúOráçS\Ô^?ÜË2NÏ63s×Z`.óÙOTÜŒGRfú =óåF36Ò0"*Yj!ÍUC?Ï•ç¾Ð SîÏW¤?<è‡}±Èi3-Èàù–"ÿu)rw¬ïƒ{팓SÕ¬ýÆJõpF˜ód£å©+Ïx2W•õÎ0LO^jFxlu`|†‰áÃØ ã 6Ø4B+œ@GGI À¸¼ß쥦Ÿj«ÆIFÖj[‘ÇFW±§”ŸølŒqç@‚ +;špfz‰yEQ.÷–z‹#OuŒ"³„·?† ÚE­YZÆ‹x_Óò}®²êlªŒx8AI4üh\ôÖ$)¾…úh±¼Äëx¤gs!GRFι–V°7 óÜ‚û&Jsìs”Ôœíþ"σÁïõ¶Ü»CYŸN§°I695ël†ƒ1JYÙÛìÄAÞ\3ú3໿úP>›m÷柯v–øÎu¢¾5¢ï R÷úyybnþBsñ§I~ÒÉҘûsµ©o·:À>ûˆÀ#=ssˆ9ÛRøîXÉ…ˆ±KÍIÏF(w&9±»pþôànmvQÓ&kq>ˆ¨›ØëLÅ@ÿ˜£€/´”<‹»ÞvYëN}eoëyfÉÁ$)Ñ"åÃmS•œFêtEöóqjä- ;þÅdiô£NŒ×U1;Äa®½Ä³õP‰{º×3’“€¾†k8ˆc%º;ñ:P¢b´Bú‘ªœ±7ÆÎÕwã£í·Ûv»ãâŽ$ø˜í^„ÏÞ 2Ô0Bˆ²Lr`Æqj‚¶6ññBs‰§ALM0ˆÉ1Ç*.ütZXjV•–lc#-³5mÖ™æa«²¾Ó[òy¾1û…®:óùRK¡»EFËt2W]•úBÆ‹w°Ê¨0Ó8#{§þm±!Ýi¥%ïÃö9fw”™ež,'GY+-%_öq‰ÎÒ¬rb²ýÃF7øÓTUÊ+iYÌ}£q4ÅÁš ÈrÂߪ-JÊ ÆGë»À_vû +Ýw +<ä˜hÛ,v˜¼ý!tˆM‚M<–££vú ¾ª„ñŽ£ôÛàj3^ž©¹Ø³éJ¡YUN·(ªÙ@­"%”Äí.¸û|Cžët ìÛú1f­ñk¥Lh’R7;ŸWZŸöFðf%!åPŽO1Jq ‡ÓB7ËŸç}Ï0 Í7êªË÷U¥°ÍQLÀZ?ü›U `eQÀßSÒÃ\@Õ¨hÛtuó¾œOÐw—|^ëÌ»5õz¹#åÅ|Sʇ_Ë‚Êóaõ,jbÚù\eͱVD·)ù›Œ5Ž0’whQ«½äVBâÓ)6ê‹u°bèä­·¿m¶ý÷ºÉQ#Ô«Š8ÔqqK@æüé·§Ä<Î[&Ù°c5cV°òÍrrêþ!Ä0L‰Úåd´ââþÔ–CßoµýLýÔxó0+Ç8Ê+Ô÷Ðcg«`o7»ˆÑ†Érüê 5nªºð•ªâ¾Ö±ŒsÐ?u¢ÒÃqlÔNOçj[æ«ÕN¨»M.ÄíöcêÒÆhqO¤¬Œ—jØ{¥ d¦*Â(ñ¾}g¥‰˜÷Ïbeý}ÑáÔswê±5ŒŒ0Iˆ©ß§™Å§jRúbsúë­.V²QÖÀ_ëc§h…ùN?ê'D=§Ç=’–¦½_j†‡Ï¶‚ø…j +Bîþš)çÚä€Ë‹ b˜ÏzÄ}_ŠŠµhéH‹–‹1É8ƒI.Ø^Ç +ðÂ>–Qè7ÓäËJS¢ã\mÌë1ãT]UºÚÍŒ<à·­~Z汊è5a”ârBœQIL°Î°–¥Ú.ƒ¶¡Å (CïÓÒ6û‘{CØh«‚µ¯¼?† Ù„ÛéÇDœ¨ŒùºâËuÎú&¨ç^1çL[Æ´ªK+½èhueúKã#ël¶²ò|¾\t ÁÅïÿ.µƒÝ45)oÛ³ýN¦è°À¿™¤´¼ÙfðÛ‹ÙªÚ]@S×;Ñ>ZQösC_‰¿i ›y¤æ’§Ë¨VEi!€÷‚c9ºÛ õÔâîHKcîIy±ÏæÒ\ÍÒ’8ûoöºß£eX䵜C€× Fª¾½äã89ò†Zso£7ßÅ8Fб‹o‘pŠŒƒŒ¤½>fàÍc6†`AómÙžsí™n[“ؘÍq +d­Sp®«h:[ªi?°cD-bï+àã9.óǪ°êlAÀ×cùEÁÅuŒ“µòÖ}€O¶û®£â÷%ˆXÃ$>ûPN.ø¾ÄçZu Ä\gÁ‡>Þ0FLÑ· 26šú®Šœõ&fðNWx½E²ÞÄÛíä%.m¡¢^ö#‹/ +¨‘æaQñVòÛfÔÓª!džL3gKu§Ku½V€6Û\à¾Ø +óòB’UŃ/· ÝVê ^ívÃÜÁ–Qb汄 6 +Áó5l¿Qªm¤j©Âí÷°“tå9N€L=[äóŽ—jûö¦„”M;oGÆÌ˜ÇÖ!®ëÐO¦?í÷•žÊjEæÑrÌf )ØÐM‹>W6º8EÓ•….†!BìÁ!Ö¦dBާØEGJD¼²<ôÉ'䮾鬩­°cdHË­hNjÂ.àñv‡ñ¡[ä0}%RÃ~Ðp ïêIaóMXÏÅVð‡¹ÆÌËy^gËüÊŸ Š_ë5ƒûbÖR"è@[Î;Zl endstream endobj 29 0 obj <>stream +–œ­Vwž­°I[bd¤¦>ûõ|{Îk“{±T&<_ªl8òKvú©‰Í6tÿœnìù1[Û|8Y½Øýz¥'ýÝ{¶TJÚèLJ¬õrSÕ´¯=´âm„ü?EùIࣃ+ð½”îî ò{ý +ôò០;×®€žýù;è«ÓƒKäïë2nþ³Ý|Ì_Ë<ÖÏUË ¦çh:ñ_dM”ÏÒü‡Iêåp)Þ©_|¿’y œ“z‰s©&3íw^jÌ5zlàoä´Àß"¾8ƒb\Þ\n‚g=o@%=QŠnÛý¬$ãD)LßMŽÐw‘‚vy‹]üDY9Õ­‡Š~Õ†G<¬†@¯³“S®`ÂÃ.úx_âÆ„_¤†]#G»’õåó¥ðwoA¯A!oŸ‚À~®—:™×;J“ŒbÒ$«foO +Qó=” Ë‹mÕÙSÕe!£,Ü‹äÞ¾øÑ(…à:€C¾èÃ>n„fÞ…†ù\v}úôòÞPØ›—Y)á7‡™¯´õè @7hÇKL‚mž6(鹄§²&ïÃŽ˜Vt¬«¬³3&¸%OdäË)!ú£NˆñQóPÍÅñ·Ù©¡W°QWc>¾»Œ ó½N‰ñ»F +ÿöûR6îHÅÄ[¦Ø8ël{[JŠß‘`ÃwÄ(?À7EîOp! -´] ÝG*dxs.=ÄL'Q^ÄXÈ—«ÐPÿ˾ÎÏ@ïî‚‚ß<¿ÌHuè $½ósô½èœ# nâáŽ<é»bJ¼UÃÅžÎò)f =g©³ÈM-,x>Sóš®$~«ÈKºöùr æçs‰uñí*)!è:=)âÐî+!ÎO/¥y~º†‰ ¹]wmg€šhÑ(æ©r掘—¿Ñ ZêûlŽ¢"gÛО˽´°ÙvüWiy‰s+*ëV‘𨕻ÂÜäkŒÔØQnï~s¼ùè1p8ܺr~p”çïöû¸ 0øÇ’°ñï ŽÈ:…Ï\íÏòÔµÄ<_fÑæË+ *€Kƨ &1þHË„ª¸È]1;cˆ‘× ÃÊ‹_”¦EýY™í'ÏÏã–¨ Úqœ•øHÎÏx¡ïÇ¥þÒókÿÇ$\à‚¸ñ®»_ŽÊ»Æ,ȹR +óp½u¼rº{ôþÑCЫG÷@7®ýz~ûOPˆ‹3(7ÀóR <í®¶<ÛéLGË·Ì2aóÃø€¹!N¢¢M9\Aý؀˽%€¦_cç¤^E_ +u}Ôª(ÙÍ”ëã +xûäâpýé5ÈëýsЭkWAáïZöÿp©*?êæ\æ³¶¾äí$údªû~¹¥¨ãúuШN¥°¨ä”KÙAA d¯¯ _ggЫ»‚¼?…¾r}yæºëÐo èÞWvßy=sãø›„ qZéÀÕ²âõcUXM;?n¼’áÑ‚G?m%`1ð;ÌÌ”+ù¾—â=>ƒ2=¿€ò¼‚Üž8‚^ýñðÎÐï¿ýzuïO{_€øyÑ¿kêPÛ2L„Q‹IX„~žk4@Å,ÜS 3ýìı*’k¶è65=á +22è2Ä„óE¸¼¹?u}r|ºwíèîW@¯Ü=î'äó«uðp‡™¦Âû“˜°±"¯ý BÔZòóJ'áÛx9êM7­äA | w¥8,”íãŠýôäæøôîþ=˃{ ×÷î‚î߸ ºvåòyÎýÐü¦åûžjìó…ò +Û´€z:+`ùa’QÓÖHáêâç& ä!6:âw|DôåLO/ÛÇ îƒ^¼…¿} ôû=Ћ;wA.ƒnÞ]¹üè9p½äÏn VfÔ}mñëæ°²7ÑVeV×”›BÜÆ;MÙ€|?À…=«D¦ß%¥†}r)ÒÕôñ±Èûù3Pà«W §Àùn_½ +z\ãåƒG [Wÿ¹:<!#s +œuµy¯7ûáþ§sLÜ?[üгUQ•^Rš·6ÆÍžï!‡(jïFyˆwƒ,ÔÇZXÎ=\Läo _Ü/}®áÔD0Àÿïcy¨ïDwWPIxÈbr蟋]ðP£¬$beR¨À¿ia”<  nÐó!WñéyW 1I¿ù}t¿ôèÎ=Рo_>xz÷ô(òÓ·+ÄÔ¬» ä+E99`¥ímÑ0Àf-«/ƒ-ŽV©ºks†kËüªý eÆ]F'D_BÄF_Jô¹¿x +ú ¡®@_ß¾Æí O‚b>ºéæò%)ø~.åÙ8·àÃê-~¶‹ä¯ª!ºkj™_5œ€®R¸S# ý¸OzˆÍË»èá +pùòyóôêȸO€3?¾ºýûï 7Ï@þ¼ zÿø(ÚÓçrŒÇç+à„G+í„p“Œ‘»=JŒÜ$†,·ã¿Í·Qý9¸WÝl‹r8ä8<ìRò·¯ OOP´»èã³§ ?¯\=¹qèÇ /Î. ûÞøâ(ÜåÝ¥¬`ï;£Ül7‹’U|2/(=^pæx$‹¶¾5N‰WÔ•¼‘ד>W£‹BBƒ¯¤}ñ%¹}°ìz`ùÁ×>úýèÁÍ?Avxâzñð ÈåÙKP^pÈïÄäh‡©:Šïz??}¢Yt¨ª©Zé¡E/t3§»(Amô¢'¨¤ð+!ŸÞ€>=uy½t=ú÷Áõ›.î‚ÞX¼sýÆÏÿC·ç¯A.O@aA—«!‰¿õ âolàb~® +«æØ8Ó´¾%« îijkÖ%"ìˆûZ˽†Žþ-Öí㥘O@ßx‚Üœ^€n^ýôôÖŸÀuŸ€Þ? +rÆ2éË·Kô¬ô»U¨Œw‹ˆ@]cÖ³é!nÊh Ím¬Ší5V# +ë¡r]Úñ´§î»*ë%6¥ä64"÷&6vž ¿7PZ+«éE,ôtзÇKwed3ùÌ35UÆ©ÚÊuE^9ÀOog V3Ü»9l*úY ÿ´‘Àwaæ’žÅ݃ÄäÞ"¥gÞ!&%Üa¥¤<ëÄb<5u¥éúArüzO‰Çö!Ü ®`ï*«XúñòÒh#M7X‡,G'ß­Eå=×VÅuTÕFðд7äÜDBÎuHXæUW7лÇ÷€Z~ rºÿ”èx•– +~Ú†!zéDéË]ÌèÝ ^AVŽßŸ,Ç.òÁåè”e¸|üÇ Û»Çq­¦²œPÜ£¤Àø+Þo?‚^Üùì.ÀoÎn  wïËáÞ—ÓÂR/Có¯ñàE¯†yh÷åvj°Y]Á0Lò sªUŸÍUÖÚ¦«Dûš¾v¸¶h°¾1^D&:ffÞöòú-ÌÕþ%äúÒtïæ]PÌ—à«èl¸#£„àÒÃe°WûjYFyCÝö8b? Ò2¤QZ†Ø+‡/ ÕÔÂøÑjºg=û‚-vÈ‹Jºšu9ÐÃÀø  v€î^¿ zïäJ ‰ÿ —sì •Å­ W—•¥£œ‘}4+ä®4ŒŸ­Vµ,W6m«¹hí%RÕWÛÍ¥½n&‘_•A Ô¬ì{¸ŒŒ;%)©wC½ýþðyÿéåŠõ ºœy5ü«ï%HZÚu²è™´ž¢,CHjز +ŠAÎ+Ú+ÍžnÁ¸Ï÷0ãÖ'k¨òö²Ä"Ì—s=Þ×ëZVxÈ茄Ûiá×=^¿}yãz%;>×!1.ñNf\ÂU¸èž}ÛÍ#yi0_e‚¬GË]%çKåõg+|!àsM!Ù «©ÜPV³dmìà +ú!>'ûÈÏ^—ÂÝ<@¹¡Q ü¨„+Ѿ~W=^?%z]Ææ¦\¯&ÀùŒ°Årôž¬ s¤åâ̳<Ñ®ª¹y00[“õÌõñ:Òr/+jº…ä5*D½ï¢Àœ×Ú[Q[ƒ¼í‘&ú´†y¨¬âä"üž„3OUñÍsmªÃùêFû+ç•ì«E¤ Ej]Y†Z™¬&, 5 tœˆ™N~Âêxgùúh_¥~¬«ly°½Ö_ßégÆž*ø¨S_]E©IÉH¸pËd}µEÞ=fP××mÉE„eU鶬’¼ÖÃIÔ÷”ç¬ôÕizš Úá~¡²·—&®oJ+¯éb±\kJ w[0˜—ÒŠÊ´áF²YÙXmS6ÖÛT5£)>ñx–O:™qlSÜõAvêb'5rc˜W°3^‰Z¬,TuÔ¤*»šòíÍ™õ-1²ºº¨Ér¾ï ƒè¬n®Ë4Õ'÷ +øž}U•Ò†’ E5è` +.lw‚•¾Þ…úb“ÓÿZ©Oóik£¸ðu )Q;ÌKhàú 7UDŽ´¶f‹ÛZ²ë©øgíÜz¿þÊŽ˜n®ð³¦…²2PW¤æÈI©‡ZV±u¾¢Ò<[Ût8ÓÐašiê;^¨íødÀ“&l_JKÑO¢ä-ˆOòvFØ`ci .+íÚ]Õß*(ó¬)÷o-+ûØXVå1ÙÌ Z·ˆŒS½ªã¥ú>Û|UÝñJ£ødµnÈ6_Yo7q8ÍAíªXy«£´X ò–²HU?ta º$¬)ÖtÓæ9)“Íì€~Àw ñ.Ê®Ìd[EœvP¹&­À[gDÜ¿—Då/–Užj˜í1\„~˜¾=ÊÏÛ—UÑ1e,Op²ç»I~›C´˜Í @»ª³œi·Ç¸‰ }ܬé‘Ñiw+DÒ^«é«*\7±ö•&µ²5„‰VWÆ>؆xŸ-ò…ß7Zæms,¤IÅÈ3ë„ôMErIRTôV¤O¶•ÇJ[je­ÜPe=B5ÖÉÓ7—ÄÌÄåjÔâ 9d¹ûÍ¢1÷eÜJ7úëÞ(&è×NíÄÑl»üx®¾Ë¬­©ØWUÐo°;N‰“×}©/ +¾s,ããmSeô½ JŠABˆÞÇG*¬*Ù¶).æx¾ªæ@ÍCXÕîfÚ$§s­çsõ§KUµûvOAÏ\Æl‰ ÑÄ,À+@¿ÏUˆŽ¦ª…6UP»Øé45ïd†^´§ %¨J‹lS ͦÉZ¡U)¢ì«¸-©·/«æX§*9‡´tã5f»Ÿ¾>@Ù™h.ÛýX5fg¼–¸5*‚mô3%ĉ¦¼Ô$³ï!VQ÷}®Uv>ÛÐkÕp°Vmi‰IQ +1HøE»£ü‚£© +ö‘¶’w¨­Úš£¢NdRÕ•ïÉyÅbrÔ¦˜µ/¥§íS +>|¡ŸºÒU >TôJVkÍ3,P«‡*:Ä,ÇFï ]-J\Òåò*ó”€lT +é¶¹šÖÃ…úÞ mCÛÖTkϦº£gSYÇY¢G-ˆÀzI nWÉ…œÌ³ñçs"Þ÷y!÷¿kdîð+ìë jèùfd]ª¬8ß¾:žѹŽý>ÏÆZ5l辄–× ¿ña±Eè<½ªkd^ZXQ2s–elˆ^V†:žµ¯[Ý0|ºXÕdÒ’À'‹mg+m³§Ë5F5«ð\ÜÓÀwMc;ÅAZ¦„¤qFÆZÒˤ,EÚfêÚÖûñ¡ó­àw냨 ÙAB”^ÁÆîi„ì]m%§O˜ñvy„Œ4iìt¡ªùT‰;–ÁC%ðàítˆYÆÈ>Õð1Ç*òbQÈ;šå’vG‹}vòÝ×:RŸÏÖ§½UðÃõ]9~Ç3•uó#¶¤¾(hOYJ>]mVÍVVÙt¥8ýhIÀ„0þ®¢"æ©IŽÊú±QÙs¸XÛ-mä¤}­ÉóQùɬ€ ð lSŒ ™mÍù´Ô[ànY*ã[Vëwv˜gø”ã‘À:ËÅÏ1 ¶)r¦EAJÚ)ñÙ*úüs£¼åD×ÜoUvXUm½ms·mª´Ø"§¥î‹)±KÍÅîrrÆLWÑ×éæb×½Qjœq’gbX5Ô³œ˜x¬eÃ4ŒÜ3 îÎZ•gsÍb;Η„<ü'''ìIHñ +ZŽª9ÛU*Œñø±TÝq2רgUW•š$”ÄýÑ"/ƒákŸ×~¨æ¡—FYБ²<¯Ýa|æél]Ç‘¶©Ëªil9Tñq+Yï¶z n»ChÿÝ z†¼§­Ãg™dLC¥çó¦}O«³RŽq°ÔýĪ!ANgkš¦DÌé.´ŸIÍÅi+ÊŽµ5u'šŠR›Š]¼=‚Ý• ÃÎD¢ãéJ¡]cäÜ“œUhV²‹t@Îr‰‡j +à1¾†VÖ‰®±ëh†‰ÙÃ}7‡ÐSÎuä«÷cž‰ÿ±T^œnÑT‰.–›eg« ƹڎÃÙú“®¦nOÉ„´ÌC5~4SF9[äàÿ³SÙc_ãöd†9#A~,ãóÏæ¨‡Jrò±–9[*ã˜UlÄ‘}° QÃÖÊÿ¬ph65-{­õu¾ éy á Of«;m‹Õí»fuETw¢¯ÿ©¯êþ×FYÕžàhŽXç¹Í“¡§óUg U 'óUk5ý@mñO€ñ¼˜.EYUÔŒía°Ûö@îû“izs”YëÆ™Æ©é'³¥ø£µ²²³ÍªžóµÊf£Ž •5¥¸¬ŽàGKµÝÛR&øPŠŠø>C+þ>o_³¹g•c¶ú²ýv OtŒ"£Œ kÊuÒU'?XëÌykÓRÌ +lúÅ“x¶Xݶ0ŒKE?3*‰˜ïúÚ1³œšaR“¶$ø¤¥!tŒICCœ- j/6ë$û3U5=œägû“øÂ_ËÁ¡‚’~¬¦çX”„ø]1Ô{±-ùõžq±ÎœúfÒpÇ Õ­G‹õ=Zɨ ¤™&þæÉŸ½ÑBOƒõ÷Vy›YÉC¯tqr·;ÙyçÚº–ïóe,û>€æ \ÈÞÖw½·ÈM]žé0ßPôqŒ•j!EHˆÑÛƒïÝÁ"/ë$.ê ¿æéÐôeåß—ÊkN¦9˜ŸÀØýµ-¸ŠšiQS³lSLȶ³Ù_þk¹ªåt®¶É¬â,“Œ¬½>Ä«˜ó}ªŒd–‹pêrX)Õq§ýsVTv¤æcM2.¨UˆQBÊ6«˜H›VÈÜUÔ²+Q)Oš žF‰€{ âÕäÔC6ʬÂÅ$ˆ}1Äÿ@ANß”03—zI¡F™}¶X?h_§ý@ÎC™&iiF12`£'ïÃÞXž»yŠœ1Ýý¼Ò‰ +;ªkµ{À#ˆz¨,-OŸ§^Ì1Jô=Å9÷c©~ðPÃÃïNò f]•Ȥ©*3ªx >¾/8v5) öý ì{vª(i69ûTÇ(þ>WÓr> ´[ƒOÞ„zÏ5ºÆHqs\’}/˜óYZÁÙ £ÈþžÏ ¡fœ/”1­Ë÷eÈhƒŸv¦oT~Jf™bÀwÇÁ_ ÒâГy*ô|…N¹Xç—ïËÙ­qzÆÙbE“YÇÅ÷B³wq>- Ÿx¬Å§žNãÓ§)¹C¬$G 7×Ýlÿ.@BN5ÊÑ F51ý@ML9œ"&žÎ1ŠÏ–*ºë3¨… ›NÈú¾Àg~_`”œO3×»Òœ†¨×4åQ¯Ï§pÛ”€º3BM4+ì{Ý0I§ ¸´ý d°~¸ÔGÙdžíL ÂÔ¼ÓåHG/<𭍱Í5‰OW«»O×Ë/Ö€?—ÊkÍ:>ym€bUÓóí{¢î“cϦEÜcˆs<Ë£ž.TvüÐ׌ÿÜÖÛ¦™EV-³èl¥uκÐп«ä£”Ì‚ô,Æô ÊôlÖÿlˆZþgCPoP”¢jñᎽè§_šòšŸ€>šDš†òÞo¶d<[®ËzºÕuß#D –g¿fùܳ2ó.TŒŸº2ò÷iÀ§Ø”C9ÔÏ0šñöïyÒη ók½¬úxž…6ʉI9)Ñ¢%¥œhÉÙGJbÎî>roDT¼ÛWšc£'Ii‡£Äˆ½~byø»˜³?óØèÊza#ÍrfÎÖ%×:QZ´7AKÛÅGl #Lãü›”WlÓp0F93׎½‹¹¦Á€¯9›-²"-}’’´=Aˆ0H™@-WVÌ x€ç`™µU•'3Õ5ß§°ï:|≺8à@‚ Üc‚wGÑ +d¾ƒt¨,gÏÔÔé8(+À×Vûþ]rbòò. þDß_,Ô´ÌW×[§iùf5&Ðÿ¨C9:Ü +hË0NëÜâò’°ªªÂð³Å†Û\u½ ðNfûž*L˜aaæ9‘¶=„1N0ó/æêº¾YïtºJx¤áã-2RÚöÒϪ`ÄÔÄAJâ½ÍNDø¿Ök‡ÿÙ­|Áxq@ë2õƒ¨€¥.¨çÉB)ѶZÕ²£ä”ì‹iiÿZ¯êøG_ÕñïÍòÖm [Of ¹›£pïå>„çî%vgŒv2ÅÃþ˜«ª>±O´|¼U ŒŸ:S—ödŒqo{šp a¼,ëº*ùEC+ú±Ìçýµ.¨ü¾RƳèxøi)Ô:SÓz¶T×{ ¥æ®tä¿]ï¿9Q9m‘‰û5Í@ "ƒj’ËJãlöÁã/˜x« +±?† ¸0ɪ•Z´åŒãEžèdNµïOòo€wOüÌ …?VÛ‡t8Åx§y<Ï£þX+ãÿ\æ—žèhÅ]ÔGóݨìŸkMòŸ+vîf¡·%_Ë :Ñ:M¹X Cÿ^¯è8šá³Â=^l’YuÕU¶)êX[Š8Ó±ŠM£È“J@žn{¯¶à"~NU‰Nœ¢c -Ý&&Åow@]Ì@-Z&èéèàvJÄí²$·û@o¥¬‚A´ÿÆ`ëÚ Øu©àáþB¯/ˆ„[22x@ï¤,IüK_3p±$(p ³Ù‚zOpBïÚ¿Ò5ãƒËÀþÏŒýظÃZÜJcñ‡ÅÚ\§ùêìçs•é*“'虚6TX~¸ëÍ>LüûC »È¤àm.úXĘ&Që½™ Å'3šEÉ@Üűi0‹Š˜t<…=ÓabmjdÄæØg£æs¤âQlÓ½êRÀ·“.¦(Ù'*:Ô¢"eX5”´1fwŒ6ÓvÞ!$êÚJÖºa¾G*VAŒ Ý(ù|ø½S)%ùBË,>›fÙý5ÿb^Äý dûº'“¸h@‡½ö€ì½%¥¦Î·µ6QJ2ÈÙ„])|øÚ³>ݪašää,«ŠYl–2²'H €^ÇÚìû7¡'3•¢“ùºö“ÅÊj£œšlP’¶zQ>ZnüÝ£1|Ꙋêc€“¬ZüP^Zrd™c5¦å`äøÔ}!äbB.æ+kÿc_3wµ²åçr÷tžQlÓ"#Œ2¸ÿîÜÛ0 4N`‚%Ä8«”–eúÿ½ç[šéöþ½÷Ìž™ÌL&3é½Nbbz5jÔØ{ïAAzï±÷Þņ +Hi‚Ø©RD¬IföÞßã÷ü!ÏÍ~Áa9T.ï{­s}N¸®µf°In)¹pøßÜ‹ÄÛ42Ù2 +ñ©Ù$Ó4©_rÎ4ˆÉÿbn™=Zvì©hµ®EL†}˜ èQ9Ào@üQ-³¸ôiBŽu–RfÖ®k/}£k( ²õÁB6:Ë^Ú'àI®ybáÚ0,Ô%ךù-'kL†_‡+÷ªPéYÅ'»¤äãÉ +¶âÛƒ´« ªÞæGø uMûÛŸ˜ë»¿l»ôDÈž +–¸9ZùRßSüØ·Ìbû5ᱞM;ÒÓÉî%,ìÄÌ`}1Sp€®´NÂ>¯ö^Øæ 9¦qB®¦‹ç’twúÍujéPN)õÈ©•ÎY|²g–èu€rŒ¡ãÜ“„¬ÃzÅVè©môÚÜ[úT&Hº(ç%ü¦o(x¹=EÈ^îª~c¶N“Ëmb&Ä9džùöm¹¾Î*Æ,4d=Ú‚gžõÐÄê®,  óL!âåœà•Ð;U;ø9«ðÝ[?&Ã6DJTóJn(ÙÙçå̬ ZaPà +n¹gÑq¶IJÞ§øiô«kß±3C®ïI88»„ +Ýž®M²ÍB>­fß×w¥ÜÜ«ŽZŸ€|VÔgþ¹'ÅV~¸g ‘æž+ÿ`Ë ^ïK¼¾Tyn£§èñþµÒ1φ®#Ãû˜O—ؘcŸî– +­“¨(Ë8" ˆ•¤íÈ«…†¢`Bîë_ÇñÑ×ü€ßžÀÄmô–?Ýé/zæ^[F Ÿm g©ñ5û +:bw™ââÞ#%•[gàIþ\Õ‘™‚9j—g‰†ÐôU½^G¦hÙ¸À_Ø$ä"ó*Ê9ƒIpLÖ~Ú’ 2êšóyh%^€Yö5uM~½€ÄzÙö8ò“¹£ü±!ó²wm«ŽµŒW†ëy€Ÿm¨óÈhµëU‘ö‰šèµÁ²`ã@Éc·,0WªqðÄPßyèKe¬k>^aàóóµQN1"Ú½ûìW SÝ@uŠªß»¦àáî9zéÑÿf×Ójö±Ù–qXøÆ(2Ú0ˆøÔGÉ~±=IÃùtͽ. ³¬ß x…=v¬¶š·g0É[3ø,¯J(ô,7µn‰é¥K­0C+8Ä5‰KÚ½qNCã=IZ­ùà˜Ãdê©ø=¦Ô¯AfùTžcÇøê¯f«Ääü©é)jEe{ÔL¤[Á¨ñk9ôs]ë®æU ÓwçQ©žEB‘_Çå­‹±>s²Úµt¼Ö0ä_¡ãwå¨të,:~{³5 +v/’K Ð])Ý«ê›ó*[š½ +Ò·H)9P³0û +bž{™°>PütI|ycüÆÜYõÊ> ·@ßYú€|è( ¶V}p-ⲇšrŸÖæ<ýi•zïDßÔë‘óp. êêÓÎ$\¤`3ÍÖG ƒ”ü„ß䬔sæö¢Ç®XòPïärë4*NÓ^þÀ2ŠøäšÆ§9' ©– bòÖ02t{ñÁx¿®¢oB¾ÓJ‚õUï-3\˜DP|[LŠýYÍK<ìN?:'Aá§ËTÔ('ó .ýÉo Ü¢è-—»+…k+b´•±+ƒéõ]±7ÍýE:Åø¼)lÚú°þ%.ënì:®ÕFEð-á·ÆŠ7ß©éwÜóÄ’Vxüƒ^lìÓý%Ný–ˆ¡©/¿§áå]Òð2Ï‹)‘gGÑÁ?jš¢oq ·LÓK·‡q Î b©[Â@{æñY> "ñ«Ž;ÖÒQË<ú±–Çþ²èïr¨!ViHU +BÞà³\àë-97,½ywe¨T—˜ YBG['P±®9l²c“jÇÆmÁ?.7™{À‘)Ðsš?Òsé~³öx™Ïp+Xð=% z¬4ø–ë…; ÜêÝ¥–6—¢Ž±;O+ò.à36Ê_®õ{ĵÑ{ ˆëDÙ›¥úøk†Îô»§*îËj}Ͼ +ïZ€~öÊQi¶Y8ð_à|£KKÜÁ?u+˾ðS<Îþ2u¸Ì@œñÊÐiŽyxâÚ(ä½™Í:2v/ûVê›ý¦ºv¿±®Û§j©†Ž²Ï!nHsJñN>Ï»Ìg»o¼§ðW„m^9—ìšÃ%Û'‘Ÿu-Åg]D씫„ì'?j[Ëãí"\ª®1û¦¹«à±u ² H¹2ÏOýCßœëd‘Ž>Ò×5;™ ¾jàŽ¸6Ö9‡ÎäÄ#—k'&/·T9g‰ÅÇ+ÚÎ4>ik¨öýF_ÕscsáÃíЫõqtÔ8'ï5ýé÷û6jggê,º³Ü˜C×Rò`¹>!ïæZOÙSÀÿVoŒcVà@ò9‹ðvç Åöh´¹¯ðÁ8*òÌ<)î–oWå[°bjÁÁ" r¢æNfr©Ì9 ù`êH¿1N;cê«~½ÚWóV× z´+b–È[[]sŒòµÞÚw"lƯŒŒwÿä½ûQLL½fÁ'H:01íµ ¿­uAbþÖò˜{€GÖ7—=×4¼tL”|2t>‘ î®t£24èJGúµ¡¼g,É2]n£éµ~ÀË›Šƒ¸9ÔîWsãð‘–‰ÙC„mÀÃl㨄Së“ÑSäŒÛrvá{Ïmꆜ§d_šÆdü!¡^Wñòn™ÚŠžï ÀÓ·¦(…¹oGLÝ2BAj„ [#ùA:a††Ô‹¶©ò×§+LÊþ2‡=ÄÌzÛ^zùÿ,‚¾ ìÞ¬6ä\U’Ï.’cÝlÏ»w"#é{aÉ…¡w¿T†?x…çSÓ`›ƒ•/Ô‚ä U/~‘°#®,S>]»hUD-´Š±yßV„M_´<Ö7=¥Æ=‰Üýïu"€'€©cXç™e1%g_N¯Úì«z£d\W2“ÿ˜D~üa¬öí¿æéÑ׬ÓàÌÿXx]"Vâ#SI䱞?òúDÏá뀿3Wýy‘}ÎØ•÷į¡Á÷Ôl¬CJ+ßž%¤z” ؆E ô\ÿÛ€/;XâP‰ÊöJ‘ùž%äx½alßÄkq.‘Êß\íøÚ¾€ÎÜSc‹L‚{‰YëÑÊ÷–„u›"&âH#àæáÈÙp× £Ø>‰O2÷‚ž¨%÷œ“”rÛ*~¹.㺡1ãV ‚„›pc` ÷lmÌ‘–˶JXÐqRR`ï÷Š…<ÑS`_W)¨¯f*éx]²3UùÊ6…ŠßW1ÑkÓðl]g`Î9éóÑr.Æ-Ʀ¹pgžšøÛ%ç—“Jöæ19;ƒðõÞÒçú¦’{ë}ˆðIzÉ+Aé§ëë°HǵØ1ÅGxgð)ÞItêÎ2]QWÜVùñ§E~Q侄ÇÝ“PAJ~üymSîãí!pøy¤aÝrt±£,t’•`.œX²;J°!Ӿз3Põ\'¬ž!¦]åd¼ü×&öñV™u¾EBþöpå3ë8èƒk•éW!²þ³Ã`¦™DƯ!sþZm9Zbíãů¶†2nÙ&J_X&Ê^ëX ¯ŠG±ÏRó¼26Ì#¡WôAãæç|øç@MÌ™YRìïÝ/ޤòo&žðÔÄdÒsÿüN&H ý²B#øT˜¢ÍQÐ;ÿ2&ow–¤m+ø–þð“SÆ#)Ûjž¯OÒ½†¶™ƒµÎåokl®o®:|»'ûæzwöMSWö}¯ +šµ¿L¨Üš‚„z–ñ•ëM¢/›ÿë—\è ~¨£#=*JÅ Wþ%6zŠVtÿØÀç/spÇj.Á»À9¦Ñ1Ö¡Ò Ç0øõ¡œ^mab,È0Ï .}O‚I˜âµ{ôÎ%v‘T¼9G-°ÌÑKöTl´[‰Ï÷ié^58*ð8ÔB“Tµ™'z:àEòBk^ð¢ ,âHÝ%:ØôÐYÇ4,b¹!纂vIÍ/Ò á“åïéCÄßß›á íeODZŸ~™&†ÿ¦®O¹,fÄý6G‰=·3PþEÇlŽA?X¦0éN)³Ö%áÂ÷eÄü}YMŒ}¦ô½¶5ó¶u ûÕÐÐqª\R€Å†¡Óèt¯—íœ*Á¤Ù&‘ÿë&Â'Î,¬ V¿²N2×'(YR^ÙM)#碌žsEÁ- Â&]ž$§^]‚F­öUT²¯.°²îO2o´—ü0ÀW y¸ÌÄFÀ!ª¶ì_\þW3¯ÑèŠe¬ü¥eôÎ6 pø$ü‹‰ÃÙ×0ÐN !wOI…ë »sˆ˜µÞ² )#é¬Z˜za¥³ì‰yßPzùäGsuë—”\aŸª|£ªO»Õz{Ž›üƒ”š ð¡Ð'ã’´-Õa= wûrZõ±†…ýÏWøÕÀ"û”Ä"Ï"6m_I*ñ(8DË:Å+¡V^2ÐÛÕ%†|Xí,yÐU}ÿðŸ‚Ì ïWê3žý¥£¡íÓèDŸŒ ¤V«98Ÿ +—çYªÍ´Š暯?Ö±™_M>9µfk¨ Ø-©N8ÖÐÀs•¿Sãž'•l ÃÂ\s”À™ššIjÞM@Æ‚´­•o6ûJƒ<3¡ÞÙê¸Ý)HÂfé{+âÜÞBMAàuá푲çÛÃÐ(à9ˆ¹C‡ËdÈßæÿÍÍiõ,R«Õm¥÷RÆmèYÞ7u-×Õ+®â¹ä¹SŽôÉð¥ÿÏJ¥ÕãÊ|ŠÚÔ“5vãáF³øØHÇž¬,ª§Õ—½§$µÉ#!”j +[d¤be'äµ}–:R Ùö)LÂzWî-ëPÁŸö±òWæ¶œ;*Ù·ÌBmÇ"ª ñΡR€ëTàQP+ï£ý:6á¯]kiPãö44Ìž¨€?üËÜ0äùð}’y´&Ô¯¤àOWšŽuÂúS oöI…»Óè8Ë0"lc¡ïÁ„.òï 1;ÓÄôZú¹Ilà¼î}sò³eŒR´;E*ß_$WæÄlˆV@/=Ë<š[J.uÎ>]íM¸¼ÜóÇ#ìgŸ—w¨ãõ—³6 9êæ e~u´„ÍqLƒ^팞»fà‘¶)\Ü·äæ¼ èþö ­jGƒ/µ‚¢cé¨ý¾µ"â{Zú“.rRïX €>\ªIxöûÖ .Í»À¨<r<3ÕáÆ®¬ yöç"jĹý%hÆ7ëºó+öÑ™ÛC —;£à7~%®ðÔÄb­²Yïì’a2fí/1Þ‚¾ß®y·9 û¼;‡ÍvK ¹ÛӸĥæÊ Ytòﻓ°”C-¹FÕžqWÑw^Û•4Œ»=„Œ¹Ô‚$Àcâµð4DÌ“_6zËBÿ³ÉâiqåN18Â6SòÊ#`™ + Ì4wHè•€&¼Þ#ùUºmkî/dì,{0GϾRWz¶§&âš}’`‡2KC¯Xgñ•~­vs¤*ÄØ[þÈÐS|ÏÔŸÛ-}øºÂåø5ŽEL+ÜSС'+‚æ¿Ö-j2XßZð§’{e¥­äs›²+aUéºï| +¸'´Þ’àŽòç?@ÞžY Fý¤b¥üᙩMþ¿n§M^ –½øÍ6ŠÍûªoêùªgQ¾è0Å'Zx¶mªð¾3ù¦¡+ùÊ×Õºö=CÇŒS.ØÅ”¢SC}ω†Eþ¢cb•”JŸ¤&ng$ï¹s¦âÓ·5~›K]ßl_à ôu G&e_A(ôÞÜ> AÅ^æ¼øyw‰Oßž%fx””*œ8§± Ä’e¨êÕNპœûždfà=UGÅÃí jÁ®„°Ì`’¬3˜DË42Ê&†G¹èÔ=-±¯i8ÐuÌè[GOŒ-£§F~ÝW|äûu¬,©$ä9ä´J·ªŽµ3… ø“0c;ä©©­ê‘Zsm­»ìƒMO6ö×¼Zé"~Ú­o ÁÛìò­IbÊÀƒcÐ0óXÉó ©ÜÔÀ­9ZÉ®„Qé“ Y«Ö:‡Ku/¢S=€íkˆ¥v2É6‹É +ÌZÝ[â༠+6Ò§ò{‰‰ Ìê:1¡v1<ÖÐSñp}n›gÖlÏq +ÝÔXS3ÞP‡~!£_%e\×µûõ,Ö('ïm!ëééjË䱡®éPE¯qˆjÃL-ùwUü¤›Û£¥aoðÚ C°è!$ʳÜO¼b¨Ï¿ã™¦æÍ5”¿nG'^Ü&¹êð;ãØë$Ä+ƒ|rˆË_ì/#³|j +Ì.¡#V‡½ZjÍž†XæS£r¼jL±{‰ßUÐÐû:˲€MµLÞÅWè{ù®yNµk.°Lºw›nCD¬ "Ä%ù¡¿o#â·'p æš×ŽYLòæ("Ú8Pò|s²ò£s• ä#a¹úYÚRü¨ù¼¯ë Ã'~‘jb…-Ð[rk›­MrHI¥Æ!T§÷5ΡžÇuÉp9Æžü?eì´‹ ôÌ?zj?žÓwd?uË)«ài2îÒ1Àn5¬ú¿½v /äôö %×&aUËë!7Fp™û@ýôP?Xb­ãðð@_S%-þ·>øÛ?tÝ•ï[Ñ©w#^ü‡¾§8üo3 é‘–Gme?U7çÝç¼ø‘_ðäŒm¬$ä¿;ÜÖ]±Ü"FÄþˆ[뫉Ëÿ{“Áøk[½%ʉX*YƒÆëA¸œ½e.É·Ì!ª9Ô%›òðßM2êÄD¨]|Ü%$ÚÊÜS7wî©ëx>°é@['ÜSrÉî9B)ÀHä}6ϳOµ‹jB퓈Og¿Ò4•ß35zÍ•/ó3ïnt=±Cßí ¢cçw°¡?­TGœê˜ø/FRÍ¡ShuŠGŽ/ð>ÃÔ ßûÅÐÉ-øs„šö訇N9¥Ô:G.pȨ^ ‡è³á–yZ©S΂iºj?­‰€{ kr_»¤ÔbÛ$:v{úq£ò~c¬6Ù:Ï®7"âÈ…á××+BwçA‘†žÄ«ÚŽÄ›«#aÊö¢ðåöâÏîyDÆ_œºµtêbè¹c816Ÿ)Ø#=4Û%Í)¢¿üIDx÷ËöXEôW3·nS„K5 áâ +.ý‹±cá?ÆÆþÿ®Óˆß̸Š=5©Ô«"WëøÂ#cã¥¾Ó·ÌÆž8Lç>˯dâÿAûbdS\K<âÎl›Ôlô²RæØå÷Ê?Ÿaònx§ø5ÖD¸¹£ðž¦9墩³ðþæ2ÜÔ}o‡F-1®B†KL-ðÊ™·•èZ€ÇÙg«#ä)w…é—¬•!_Œ4ŠCI†ìJ »’šH –|¸L€üÛHþ{… ý˜É¬e¢v%Ôâ?{•|êþRc³KÆ'ºááC˜ôóݰ„‹r~ùÃ^TúÍæò¸KÆVLòö)oµ§æõzmH*éÊ,#í¶{žXìœç¡Wi}„Ì‹²FЧ])ŸäVÒkµDÐ[æÓ €¸Ä¤»Õôj÷2á74t®ðŽ^>2¶MûõM]~}CÛpÿMƒ—úº®ªWæ!l^;"⚘“ñ§{ŠYdB}Z¤\\dÅž7´æ>^ª&&_œãç½8<Ÿc“eì«xj¬xº˜o¡¢‚ŸÁòkzO·›¥{6űȂ9%Í<ßRøtUÐâUÓªµB|Àz3¶ý:P×9~àóCuKw‘v.`Ó6Æ«ÃÕ­E÷V‡ ¥òÈÈm´H±%ÆQd²WØëû=ËlŒGÃÆ:© w ¯¶±}w©±Þ"¥—z•õ¼CM}Ë©®®Ñ#gÕ®MQ3WE삵qz†e†˜­ï¤ä¼ø¥ vuONDzèl«½6z¯ï,¸oÇçlŠù(³ˆQð%ùÄP×°+ÃçîÊP6iuÜÎ8ÕÒÔñüJÚ'ç¢ýƒúÔõ ^9é\d"w%dp]jwgðIÞYr¶{ž”ëœFÆëÚ³ïj ï™zÈqmÄs£Øäó‹õù¦™wÆÐÉgI©—Œm¥mÓø”¥¶š¦^L²W) Ø¥ŒÚýeõÐØ<âÕÕ7ÙåÔr  ñk£µ;Ó˜dYCÖ]ï<´¯mê œƒqˆ éºæŠ=ÕŸl.~ÿÝ;÷*¥0ägRÚ³3†–²Ï.Ë-A§¸%˜tÛTuÔj_ÞË¥úÈËRjèÙõÎÒ—ÛSÄLYCέåúü{k½PÀçúšüm&Öœè°%;³¥/=rtÞ7@§¿™›Æþmâ öç!‘ž©²×ûRX¡†>4Ó6JÓµ—þiQKìslôRkÍ!(îré§ ³ÂâÏ¿*ïo÷‚ŸÚ&ñ}¨ÈßàÑ×{p Î)nÍú øí,+óÆbCIi*o©}¿2D)ÜU6 +rR‰s“é‘31‡ýt…'82ñûj,Ü«ÂƒÜ +\žGI…­6Oì¯[=>c}ž¼9QþÞ#­ùì•£Ó—»qˆ´{Ê&X”eŒ]lj‡¾¡c/tW…^bnª¹ñ׬# 5-í* +á¾ûÝ>Æ„¨š½Klâ!Pç÷”Ä’½e\ÉÑ:ƒêÖ“ªÌbtÒ-ó~[mäÍÓµ¦ñcûüËyÞ›ƒå¯l“°· Ÿ°j¡¡ôe/:îâê8`›Ê] Ö8ÅÄ<ð°Ë`Ó0&jGD(òq¿:M®ZEe{Uuì=5Ÿµ§aböWže ¶©ØÈ]%îVwMîÌrÉ›"rg‰K³Hhe‹ Õ/û׆ÑI·Ì¥Jù.·—DmM s‡01Wìó°œC }¨|÷ +ƒ~`¤R}*L¥}2PG ™‡†úŽ}m}ŸMBÃÞÇt-±P6¥Ä"c@œsøôõM@ýîØÓÊ6'É…ÆÎEŸ¡Gí7u©ÿ×B_ß¼§fÖš¿¸1Ï(o=Qw[ÉoÒ À‹öd,„c +Ÿ`…‡lT>Yë,¾+ç&œ—ñso÷q*nE>¹ôaé§[ö)tâö8ü“¾dî©z²5TñÜ2^ìžÁ§þµ6C(í!F_óHð º{Ê.ï·/¶4cƒ°É¯ã³M£˜øµQP¿19. ±Ä>ƒŠ[[`?š¦äÝ®ÕclNÔo¤´ç´àÄÝ)tòjoÞó`Á=ecòÕaÔÛ³„OWEäØÛký•ašêwM5ñçMmŒ<·¨™è“‘JÕˆŒ=em⎨ò­}¦"į$€5,‚KJÈ?T’+þc "ÿ <þkæÕÕó¹Gj*Ì<ÿdc°èùæ&Eû|e‚–÷hs€»Ö]óZß’w[)H¸%±Â". Ûå†XgÁ‘Þ%€ML’WK®±II€¨ûjªïùb"€uð, žèô}o‘Rb›Â&¬ C,#”t —óìÀ× +BþÎhuø.úê5õþ<ÏôâÏ–QFùú0=Û8‚ +;ÐL®'!txȱ‘‚<þ¶M‰+7å?g¥<=]krÈxdû<î‘qiî9té®k­NuÍ¡ D¬œ»ý„äàõ±ÚÜÍI\¶©aDEnN ¬brÎÆ*Ð-Ã.%Í5W½™â~p)š¼ËõM½€N–9åÔoû&¾Ð£ +—û1qÊNd˜SYÇY›¡—LÓJï´TÄþÑ^öëV_ÉCï|M¾Y؃Kº|íû鯂øÃí@ÇgZç1Ù@çlse¡¶éŠhŸŠ<ÐòyÆaxº˜‘yIß s- …~“°kßÌkp8I è ’Yk˜ §lO3A.%¾=Ë9Xá¶»–¾­×÷fW9ÕTˆÏDǸ}‰¹š^ÈGLú›_öBºs–^èßn†Üè?^i)½³ÜRó¸Ÿ^rô¯1bÆsë$*^V—uCÊN¿`î© Ú®xæƒ?©˜µ{*I5 O‚¦ÜþÉÜV•¹·4¬s/õI ­#Ç&^Ý¡M pÇæ,-w¨®ê5§8òÒJ;4c_F-ÛÀÆ[GH‰¦.Ô{msíÓZå 9«*È6FÎ7´A^ksoXD5akC•¯×úKßÚD¨d€‘#,SµÑ«cU¯¤u%WÚ¹ +>:Æ2RóéHC¨öʨÝ +øt™†>Õ²H»d²mâWà ÷$˜ì¿ttÜׄ§Z@ßÄâ­aÐGûTmÚÖ46­}CDÏ´Þ‹2wU/Õe^§%^ÂâaÙÇßljwVZª^ 2ïæ½¾ùõîʈ}IÀà ⬓ðèÕ^È«ñÒg޹’7Öéò7îZÙê4}ÐÆ Dܑބ:6GäÔD©=1‘án"ŹþbàpÔuuÇúÆž@¾øÕ4¸_‰/tLU2v<’q“¯m Á?›Fp¹ÃôŒ ycÞ3ë4:kœ’õlœ”ýðO‰û26ðøk舭iL챑A:6PðÇRí¡žP¹o V¹ œ#°/|…Áø²Î®7Â#ÍÃøä=yð›‘ŲŒ‚>Γc®,×e>ج~·/%î+( ‚’úNl˜kžZìZÀd™ú+ßèÚËþ\©|f« wÈÈe»r:Þ£æ3·f)å.åY泜2 GT Ø¡™|M‡[ç)ù¾G€©\¹?LLXé¬}/Â&þÞSv±üüÕí6HÔom˜¼H£t«Èë.߱Ȅ¹Tl쾆 vúñʈ¥.1Ï8 ù¸ÔVúP7€ŒÙ]æ ­JÖªÄW¹õ\¶MI«¶Êé`Û’€í|ŸCM_/ö(ÈHÓ0ýu•Ûð÷¿Óg aW)h‘¹ xáíÉÚDy{Eª}.à ùŽYvùÎ81ÑØVýdš”ùGwMüÏ=Ш§QñvE´ò1|ú,-õœm¸6Ê+Æ¥xæ1IÞÀ¹Á9DÊÎ4>CÛOˆ! oÿÏÊiÙCÆ»%,ÜÑJÓÀ©yüd«Eòe[ÐwºJÁe›¨zeÁ>©ZK‚ׇ‘±ŽIL¼ej®ŠÚ, Ûì-z»¯à ·† €V½œed?ØìÇë/¾·@Nû}÷«ùùg1îó/úºŒë–AðKÝ@ÅKAÍÇ3íÐȳöqLŠs¦6vI˜õ@Û˜äe=÷H ^ê0%Ç+\î‰)pÞE<Òð˜÷ÕÔ|ª_AíÍ“ó\³´] ø‰®ú|ž zÑ]¶³*æ÷ºÂO¿!’Î/ñóîíNÔFxæñ–IxúÎ4"yWÆ„x”u4¿š rˆk"ëү̱ίt•ˆ +Ýžd+ëËï/°snÎÒ³Ÿ¬t•u(HYWøbµ·&~©QJºÔN{䜡Ö{*Ÿ. Ëéš!ï6 ¡»Ó°OGjü pf@Ά7@]¿;10°_Vi˜c:÷XO=Ò"ÒN,Uµ‚^QóÃ~Àe¼Ø×r[blÚVOEÐjkÑFÒ¬Üggp w¿G}øÕ+A¤ J^³J"o˜úPe»j¹¦#÷þ<3ô¼ˆøò‚º1ìòZù{×éXdÀIÅï¯Ïr’Þþ{W˜—}ªáÐöø\»¨&Bßœ÷TÁI¼í|û(3÷í>3Ø#£Âó¸\‡m©Ž•7ä¿®(ø™×–Û*BÝv^X˜30ûÛ:¯ñÔÈfx$ðDËèýæxå‹ÀÙ“àþoŒ €8É»±3ŽŠsÌ2ìS¸lË0>cwŽ YÆDËAAkÄäirúÕ–’?.²2o.7”=ÛF%ÿW™ELÊ×÷B£êË?…D=ø®ùùžK‚ÌÞ•¾¶ÍÕ¤ì-ÑÐV—ãÑ ÚŽ7x-3°ïИkÃå?°_ÌŠs]×á*‡ç_¥ôøR÷ôóÞ"¶Ð#'@V†! ŽyÈh‘’}½òckñ‹Š 1çbb¾\Xx{}†Wôæ»qjöeFîû3#ð”«Z~õS1>ý=õµfÀ;÷–<ëÅGþÁ+{óý!ùòÎhí§ÁŠç +AΟK ¹Á–¡üWû‹ˆì#Oxll™r¤Ç±H)rHåžE>Á§ª£íÎS +ì"lœu½ +ð•¡ ú´ šð77ô_Ú:è{%$¡å\Rò²nk³Éx‘·gh!—›²xæ˜UŽYfeè¹9Ý,~á˜(~¾ÕŸýÂ)ª÷*Ñ©>| МbbŽg•x¬À—ùe°4·ž³;‡I;VÓ . !× xZ€5k]‹ lË$5ÇÔ y!å¦ü1CI> °ÓÝYD4À˜)³Ì¢ëKЗ6«h¥µâñ8&æwañ«;AΛ+þ\ëÂ|ÚáAÌ#Œ’!bê%c)Õ>Á¯²¢c\3¨Xç=T‘ñmðšõd¸e¢äéú`î]—sj¬kqÊè)VöCe]ÎÃS7°w¸Ú« —ØDØë8âóZ_ùãõÊç›"R*9ç㯨äg?-w–}özº5^gì.þ j*xÔ‡LüóúûZìUÇ 8nW‚J¶Ì€?ú”,Ào5ž¬¶Ë€k6rddÒ: ðyMÂÉ +ôu£aܺ@¦.¶çF®ÒIGk¼Æ“UÙ¯Æå}Y¡ Ž 8˜UO·Ë¨ )bÖæ@m˜œŸõ@ÆMºåž­þlÁÅJù¹Y¦ˆ9ê«Π^}?C*2·C_Õ—¾ý‰švÿû¾ê×?“>ýŒLºýQ̧ß7‡!¡ò®Ò'm°Ð_—AŸ”\Òá²3ƒˆY›¤ؤ<üž†K³ËÙ5Êx¤ˆ“wwc—í‘óIîyfÕÎ(:Z×Pts‰“wY„Oúu—q~µó©žqYL̼¢åÞÓ×ÜYë(|µÝWçE&Y{‘¡šú¢ûkmàWûS¬rˆ”v˜“=Rñjµ9ýæÑ,8æ/®Ð/A&9F áæÎò ÷4púñÎáêð½yègÇLm„k»;‡MöÉ™µ¾%6Ê"&çÚ¦…Ö1^…¦¥èþ8:ü§1DøÏ³ä˜Ë +^öU]sÉ]@Ï>k:a=àø³+UoµeoÇàág5Ü´û[Ý àº~–5@žtcÒ¯Z&ÙŸB@Ó¶å?Ú®|k£“ÖFa½*b™OÃÆYf©E¦!Dˆ}ÿﺡ¯ëüŸŠßž §.5çßÝü羚ñ˜dà <Ä>Ï©qJZë Mt ¯ü!%ëíÏøŒW¿÷Áã®/w€‚ =°$ûŸ¾³ÀƒmNbÒüËœºãAþ†G³NòdÂÂ'‹Í¥O´Ýà7^‡ºÚ4|¨ãÒ< +j…cŽVn¡•o‹ˆi¶izÑ–˜]9+„¼S6c |K­ýkcðˆ Lòo}UŸ˜Ä§]6´{%°x ŸË6&é9à˜?·Á^©È˜/&Ý)A%î«°åÇ: +æPË@¹älŒuž^9_Wþl¥–øoKãÌÑ +éR`R·E°Ö‰ê÷¶qÈ@buýØPTZø˜ô׿¯ŽTíJÑ9³¬È³2NüeMsÉŸÚΪwÆÞòw{JtÁ¡žÃØ•  ÂÌëV1¶ôÄ$hv)1EŽyH¤}l“ =Jbå·-á€SÍç 2 +^æ‡ßú~ßÈo9Ù¨:2²3¿ vDà·«Ãŵàw¦INå8µòæÚ0)u_I­Ú“T…»&Ê^mL +ŠzÐÝENÁE «ð‚Œ[zM×ZóÄ<ˆ “ Ëî Ô$þÚθ6M*~ k=4v‚ƒ­#Õœ3˜tÃ2LÄȹk¬s-sl³ØÄY\Æ–˜Qb—òqûº:SÎEmŠï9EÌöª„<÷’mŸ¥å¯öBßMàão,|þC?,êg15ÿb?µòRÈ“ëÿ@&¾¾¼Ö üüsµ íª¾%;H]Ÿy{uFPðê§adÌÅNámLⳟ6»ÊBåÄrs{ÉS7í¦ŠóG/äé÷=•¯ÿ5ƒûu–Ÿs/éÅž»þ/¯Q8kôMOEœ.Qá>1"×2\òÖÔ[tOÚPvŸu¾ œôÇ9óò&åâ<1ûª^ùs–”{('ëK楾ýAÝP<ÇÉ}ÂÈ~ñ*6èçæÒçæ¨IW»ªžØ&q¶©Êd«¨äÓѹڿ$ ïÉÉ%€îy¨ Û ôÓú,Ä8³7 pØ2¦Ê:Sø¸KÜÞà‘K,ãàˆ­aPøÎTm„{‘ë]d#L˜ÔqrƵ~l”¢1ɽQ7—=Ù,|åœ.x¤:Å!äú8šø ~ ‹°9EËq-2 .6߯¥a¾¬qêõ,Šs—éV‘Ë\ÀÏZf‰…–bušœ³9‚‹Þƒ…ìÉ(UGKÂ:Œ‹·Í²*,SmÔí±†Zó-i¥ñ~Ššqsama›b{ “nëQ× wt’CJYŘŒõÁêwn9¹Â«fãv ¥ üz&Þ§å3v쾌–ó +îaSÿX`æ^2÷V<öÌaÒ5l’q¯¨ Ù•’‹vfp‰n.Û)‡'¯CìsølŸ’ƒpÎó{$W8,–ûºÃï:ÝŽœµãÐÈâX$莄Ùž¢dÚÄ”‚“­Æi·†Cß×óù_LÍ¢/Ɔî/zëHÇ¡xµö¦ˆšn Ì;œaú¤; +ïF¸eªØSE辄]xy¹>ïêZ?äÅÆ!^×Yn„™{ê +V{Û*W{h±[£„8CGñ=]sîõ­þÚ÷~ éU‘+6§`ãˆøã•ºÆC]ÝÞ²€éYb£RRžw™Côi„Ÿ¶¹Ç»,`ØçéÅöYzñæ.~¥­â™\Xpsœœu©Wz‘Ÿðs/"ëÞ3ÿn'8ô‡TøÍ•ï¾ë†Eÿ,å—é»0q†>ÄÇÀû<œ’ÏçMU¡+åO>:׈ý}Žš|QÉ/ +Ö7W‡®uá£e-°øìŸé™agݳت¡²'–QÐKSWÁÞê×?ôAÞþ j*}0Ä.¹ýüöw„ÄÐßW»ào–ê+Ì n‰0¹×éé~,xuó©.ý£ôõï ¨Ó>>øóô;S+pÛÊžl ”=Ö¶dÞ‘"ÎÖ—<úaùòŒs +»>‰I'§ÜÓ6ô+Éð} 휡äï-²wŠÏÑ#ίt”¼²ÏP‹ñ…oMÃÐló (r¥¥"d«ê±= +Ž^à¦\o½ÿ׿ -MÝŠK×´U'ØÇ`‘ó¬ø›bjøùõ¾Œ Ãåš$¯ –´Ö›0hy„WÁÅi{ñyŽy\À@5‡zèt…?ÖA_VXdÛ,*`˜;[㈔=)æœD¥ˆˆ‘æ(©÷7{kB,#°í!|œ}ª½3Ê-±Oñ¡vqikœ]¹9JÉÜÇÅ^6~}óÉ2AHô, +ÈCøŒ®š¸k3̼°#=¯qgí’\§ãR½ËT°e±«¤ÖîküõaT# €¡¶ |æö@å ucÂ]ëDU¨]ŒM^›!gL’cŸ#ç­¡>ùutô—5 îgñy«ƒ°Û4,Ö)AŒMõ-QÀ_·ˆ¹b×"¥Ü¯¡ íRB_ÇåxœC-›°¯eà, ¤Â}-‡s çñ¾ ßVØôãe2È+#çÛ§É ŸL=è•°âîÞ"¡@ÚIŠQµ Þm S3 ]È÷ƒàçÛc kCà×Ú®Š ];äÉÚ¿Hß[W`ê¦ÆZ'™E}Û}åA–aè[Ç,*Ã.A$Ç*žk{«^ïëøv«Ú%ç ¼*Ù¯oê;Zi ¼¶°»DYÄÈx§ŒV¾5NL·‰pñ ü‚›]ˆ¸3m„e¬ªûë}ÌìåVôçQ\Úå¥è»yô£ª öÎ""¦ØÄ´â ø'€ÂWújC߻ԖñÊ›è˜D%ºÄ´"'ÀN«}äx]!JÞXóRÛ +ß“²1êÀ>´NðóÕžª·£„¤ÛSôü y9bˆ FfÆœé¯-ùÓÐKŒ§^åç}þŽ–òéŸøø·ÿÄžý‰úk]^Ü…~tùMtFìY~qÄÙQJÊ vþ‹ß¦ð‘ç¦I‘? ¢#Á'\WòÛ¦H…ªÞÚ(TÂãõTG?újà5ky\ÛT`~ôƒ©-ýŠ”es“g£ä€â^ž]êe.S!~@;Mmå/TüÌ»ýµÎv‚^ükùëú)ƒ^s£,êÑ´`÷ 6Ã:R²7 ‹rO—}ž¢…ßm)ò“”žxË p1/üÜ(15äh‰Jþjf1¿®ký +LŽk®&ižs{{cuú¹Ÿœú|si†žxž–ýl»·'ÁXÇQ±ë€@É9A;µé»s<²¦•¾5J.î_ÊÎ8£lWÌ;g™¦Îê¨ lì rÜýŽ cŸª3VûªÞ»åý{\†OËÄ íUs™)!ä=Ø¡“ô½¨RycEÔÎ(8Tν¶=PòÔ³<¿ŠX´=û ðPô¶ôá@K®¶‹1+ݰº6ÈËqx¬kžP쓳‰'^ÝßÛ‚Ç<*Á%%êXÔ=‹ûÕÈ~[ãÕYå ŽW¸Ì£Uçt]Ðõצ Û-'–|5ñêþmæ7ÊÉåýÕï׺@ÁëÝ5¯6kßoB?ëÈí0=c{œ^º·XϲOq+-ãÄ$cwùCC{þ cGþÍ!täÚ-e©ÿÁ܃ûä’0¦ê÷KÂŒKÚ¦¬«JaúUÛ42Á#§C½J>Û«­kÐab4ƒ˜H—²¸.­ûúæÁC_x¨a`rdÊ.À;TƼ ðž}’‘¿>JJ[éF†ªx¥w6»kßnÖújCU¬k[£ôBÇB à³ÂݹÚCWÞÝ•Žì›[#•¯Ü2r±s‘Um€°ÐüEËg_jÒÖ‘¡+]5/·Æ0Q³U>—°¯©¯Ûž¥9$|²G.d:Ä Ð¶˜]¥ãçIúhQ²vô»ÕFŽfž:[,"AïO‘/äBøS.vµóQÛPóD†>Ç”üÿ}ç_ZéÖ¶™3“)I&ɤOz1=1FcKb‰½wT¬ Ò¤H/RTPQAzï( +v±÷–f2gÎsÎyÞäÝ>ßü!lñ¾×º +ìûZç}¼êÛCä²[Œ¼è_†‘igömRM (åËæ6ÄœYD¶õáºàgm PÄQæÚìp]dP¾?­8Ê4†¼Ý²ªæõ=L—TXLJ”^^5á«·, ñó²ò»¾öü rxÂϽ ï~Q¢>ü>!®¨(%yñ¿¿¼z6L~yS‹øhÏ¿=ÆùpÑ„Žü…š{÷X7äýI+«!|TBO©MŠüYuo׎!üs†N_ªx:!Ì¿dg¦žn¯zøƒWPáî…$@3Ÿž¤æFüôÝOÁúZaŸÝ­µ+ºÆ÷ƒèØßÙŽóó›•>Õ2K"ëãný¬'ç¼Ú÷Ñà;V62$‡'¹¸—û!o¤å=<¦%$\˜¨ˆ$?ûÃÂÎ{óÏ^ß·9^Ïá•´çE¯Yé#âÊp5!ã䬓…)‰»”õìê3rHÉ®©!nY^¾2Tñxa°8¼§þÉϼ¢;?;؉w·GZª°ù'šÓžŸñ¶×¼ûæç0¿¸üÃ1kßGFl»Ñśֺ˜ÿ,Rh‡3´6Båë'Ðìç÷Ö­DÂáT·õëL—íßkóVX½_Ç ª¢ðM®¡™þHEȲ8 O[‚Å®hQ©;\ñGOsî?ÇZªV-ØÌu³qŲ̀ ´¼ß°rš¶l€G4‰ ˆJï˜hÊ‘i'¦»ë"WLt¨§«æñTomÄG¥ö³ý:FEé”=7o¤–M ·æ.Xy”EGwÇ„FY¶wówÝ|ÆŽ™P¸kÂä|òª¶¨¬]6o×цtðxä¡“Rx¾¯.îWeSÒ 1ùÌdgnø¾›CY¶²±3CÍïv]­5Ûî–²oAjó·IjËî¹iÙ„Êí¬x°¢åï¸[*Æú!/6¬lø–þè&ÖÍôMýž‡Û<êŒýagŒÍXsÒ±£€FšU"âg´è´E+¾hg” _vÒêFѯG$Ȉ’]µn‘tÍÍXR“²gúð‰€LºØÛ˜ö»¼9óò„´é-ð¼h×^ýV1;ÜZ2=DL™Z‹— ÈŒ‘U2Ñ+÷FÙ­_ÜöýtÕÞœx†Æe «~ÃE­ß÷Ó›gô„œy ¥|ÉJ«Ø÷åýàò–­±j¡Ö~ jIC-^Ò“‹f‡ð©Þ~Ì·þŽ™~°¦ÁfûE•÷õ¤ôËvzáÝQâÕô){JÁÈéoËõô·åL)[³>z©¸ÃI&cф˞ӠӖô-E«fZÝš]us[€¿_èmx¹ªjx}8N„MõU…OtWÞš•7FkH¹WÈŒ³nVÅÍe#l5¿@2.XyeqëNlI ·î~@Üðtº¿éõœ¬%mBŠO]³‘«·½”†ùatÚš [y8Íâ9ßu¡ræ”U§þi o ¤Bÿ»ÐÀƒGªHåÖÍØŠQùµ™®’^fú7+낯½""ØŽ\ÒáJfLt7:!ñÀQ¥Ÿ€º›WA£6¬¸ÂU+¾xV‹LÛtÌnËñ Á³`¹/N€â^Ù¶ñÿ^dwýk†ˆÿ×8pnb°«àÖxWÙCß.¯ðÕ£ãÕïž\Ú!µ_lølmY5Ö%;3®X±ñ'ü4ÌÆ(—6­£Fz11+Vzí6¯[‹€½:òSJÉ »âኖX:®¦”õJ®XÚÀÏöÝ4ÄQÖÝ’ž°fÄf-ê‰E‹ViÕÕÙ±â‘H§Ì½\¯\ ª•¢Y}gAÛZ0Ê-¸üdE]óbÀL™Ó1*iw;›RÏŒwB"Cƒè÷S=ug¤ÅöÐìm;gbÖMªÉ…ëž6êæ(»eÝEªXsã‹—lÍ™ÓC Qk&Dʾ§¹dÍ…)˜14'Opè¹¢%ãÒZ»i¢‚7-ðŽ +t1ec„GŸÐÒÀööº˜ãLò—™6Á—ÿËÑì=¹fÕJ,\Òó5Ô’%32Þ‡~5+'ç¬èˆ àg¿üÆdOÙÃù¡šH;/ï| übÓA­Ór*X¸àg»#ôæýQvËAƒx1%ÿœ—Ô¥-[bþ‡E»¤Ë'£‡Ð Ÿ‚ ÚÎý)HFN’`ÇðÕ›LÞþ(±ÐÏ„9âÍŠ¶ùæ­9{F^ÿ2(‡¿^6“J÷¼ëf¢2¸×Ž2W=<挞ӰhbA–ÌŒú +^µQ¡û> +ìp‚ÍÚõ·ÑBfdcTعíç²îŸ\÷r©sVJ功·¢C&oÛ±Ûî6’·ú|T‹Z·p1‹zŬŒ˜º iÍ›VÒGe­&T´’5€1¥!¹»š_… ”QÂ\6±-D­šQâRæµøÌ£59ð³){€ÿ^·¾ÔKj<:ë³á ÷ÇX”7»yLÍ.Ÿ5ÒÊ7Ü4覛w³@Wç^Z1âJ×L¸‚-©jÅJ( Zò‚C¤ô• Yóðy»ÁŽÁ£\½ekkÝ×£lß9^ïúh{û¸º?¦á×{ä˜x§¤öáŒÿ~tÜ,“óq ^¼ciJÝ27­[5³ªh@&F©È8‡^ø×4§w à¸9EÕS3ë-6ñ¤›ziØO;! fzõ‚‘‹™7ñÑ+—¬Z8°E£j^EÊ öab‚RÔë]kñ¸’ž?:@-œÕÒ!;£ÀkOÒò×LôZ€cê·FÚù!9o&MÝd\ÜàWÉhcC]Ð9-§Öߌ_’ã²·,­5vFÓ¨’’+•^æÔ¤ý>ÖCÈ_Ö“ +‚Rðg{êÅéâûkÖÖŠŸ°äê`¯ÚÖ¼LôŠYu²šW],䲕ZµnÃæ¬è!±ËVTæªÚ8¢&d3™WpÙQ?mõÛ6.vݨßòR›ÖÜdÈ‚^²² n>ogœß¾5ÆÄÜB9ÊñÜuSö½4ÄÁ·ãa M„܉~tÌ‚š^µ`à@=BH¸·ü0 ®zhíg³C5QËDƦ›RçhJö÷A“öGé¸ ; ì¯}fßû4Zõæs >moŒÔ¼éõÍÛ$BŸŒ žTQʾLwê¿Î´+>é­ÛDζ»1eÇÝ\tà'ÖìxHURèÓe=&ëÓ ºïÅ•n»åÿw&W±fn)™@Äl8¨»“‚Þ%w}ÙÎÁîø¢Oä/¿·í¸£¬’Üe;¥zÁÄmÚð‰zGMÙ®ÞªØUg+tÕCEmxHÐkK広YµóˆAS¤O„NÞruðCFÕì05oAO+ŸÕ“ËçŒ,øœUÈšwt ¦õœ:›ünÒ¨è… 6دòe#±lÃN…íù9ôOí}ûÁ6ÁöѧY¡fo’+Z÷R¡Ûc¬ÖµQ:fÆA‡.z˜Í1uÕÍDè «ãòæüU7¯uÉL*Ùtê^2AKftkLØ¿1Þ¥Z÷ „ zÃΘPº?ÁëÞ#ÂWݤÿ ñý˜œ˜ñv£^NÊñIËffã’¹“µfë•lûÚÈ[>xƺƒ\y4/Í!ÆÚhÅ·¿ùùü-ogÿšG¢\q÷  ]¿¦6ÒÏ̘æÕx;驳RZñ¶ƒG˜ÖR‹µ‚¦¶nô« %¥|ÁÌÇz{±1Á–¤Ùa`},­u_m¼M/§uÝÃÆMk[r¦Ô¸äeÀÄox:¸kîÖŠS@]s²P[.:~‚ÁZó‘F- í°3¥áÃüýôŒE=´ï§¡6½ìÖ%'¹îc þ +ñ§¸ÂM±3Òѵ3Òc8<:O<‚)_3C“4õ1³Ê†Ó€·Z²pñ>9¥PE.??'ô f›b5ˆøÀä…»xŒ—;.rÝ€Ï!µrFE®Z6b¡Ggϧ(ÍŸ&8¼%²ð€>±VÝ=²‡¤wÆÂÇ,Øù¤;‡üqŒNú bNÝô~Á€M_·Q!ÛnFóšµ¥(¤nŒ¼_Ò–½.n^•gAÛðfËèHÀkmx½æã³6FÅÊUWe à0À—åOʉ©óÚÖ’]?¯ýc K·âk÷’Jîñ¡)„ $ÈæH»`m”ÇXeá' äÂ%µh°u½ .Z_¥c€VÇ7|\ú¼‹›0u`ƒúĬ*eüI“J5ª•qƒz!b¨ó—³dÀåïxéè-?½áå6GÚ¨³ÝŽíiosœ×¾5Ý1´='ÔïÎ †ö&ÙÜ5/5o%ƒ‚jR^PÍk4‰ZSÛ YçoW±àr7ǙąR³é£aW},\ÈI©^ñÑ‘›~^ϸ¢1vBY±î´·•\½éaâ÷'¹ß;ÌGyë*|ÅÁDï$Ž=£iZM,Þcc„ËÙ ´µLt nwHÜ äœ•P°ä&×­²‰ 6bѲ¹ñí§£óç‰õs°Çõ1Э ™ÙA%sJͯw ð +ù²“¾.lö¾ÇÜñ0qkfZýÑ=û뀾ٴb +7<].³œK½Tuå§]÷qBÜ“–]<ò¤ŽV<&gæz%¬4¿’_Åé¨Í¸·¤¡Óöü¢Þ‘6ò.ÀûGŸ /YµSJxLÞ^áê%§z:kŸ„ ¨Œ%s+hÉȨ[µs “J^Í„®—<¦é„5”Ü%s;~Ö(aÏÙ:Y³&N㈕8£¢ÕÏé%m½Vna]íÙ‹ªnü¦AÂXÑõóCænÆ´®9gÑ\õæ`œÙ÷Ñ›?ø¾=Öç\w1›BêÖ¼ µlËIkØó’ë¶Ý¤ÚeTSòæL,è’EH”“ÒÇ„5··,Ôºu' ³áaã7Ü ø²Þ0©&åŒÚ|Û%åã °i;cÔ’³¥tÕÍ@o¸…!C;ÑÖÅN5ö³}ð»X´î‰V-lxPŠˆõ´W=X5ã˶½,RHK¬°q«oú#?Û¥;í½›~eÅÙ†Y¶2ê–-Ä¢y2ií(shŒ×îìC$Ø%ˆØ9s7gT5H×òjgj¸ö¤‰œ5õðçM=–V³²ì⤖GØœ)7Ìß›í4ïÍv¨6ÆØ4 f˦ôôÊÍQm’ŒÚ ´€ç"ö„¥_rhV=}º)c¿Ø$í©êèIâK’œ}Ý•Ö6³‰~Fé†[2¸3Ö­Ú v'yÝË>b3ÀÀïLІw§$ž½P·{{’N ™™óFLá²Mš0³êÜ´TW?%)¨lIßzxÅÇÂ,º˜ˆ)³=.ìO‹íÛSÆU¿P¶ìãñfÍ„’½âïìÙúzûÿ´‹´æim`JöTÜÞ„hx+(1Oi ¹óFrÃN sx'ÈïÞ °¨!3<®Æ§Î¹Zëv¦©¤O Ì®5?¸>ÂcíN·ËöÆù»Äƽ ¿êéù‡úPî ÞÒcBµË2•ä¶çÉbN)£H9–vê O7/ezPR?­R ¼Ãj½¯½ÈÀýrñ‘©ŸÆ»t»‘lÕËmõkhù'×>$Ãèû†a2¾$QŒÄݶ2(+Úîö]·¨cËÃF͹µAyW•UÔŸ£çö¥k¸ýÙ,=WZô¥!rËÕ#Ûtõ)×\ýºqá Œ=•öAiØVÙ®— Ö«;¤y¶>#fdØ=ìUYMR SѦ©”±™ÄÒ=R9êA7ˆ9Œø` W¹»{Á¡aê[Íú{š#8š²ʼòÎ*{—äìVÔxz:òçLŒŠiöâ™T±áæ±W¾Óˆæú[3ƒøx¬^dâÃR¦†¨ÐyC;vÎÌÅ.;ù¬ƒ Pñ}¶ÓôXó¦]üiª­ûh–<]#CŒR½ûTFÄßtIŵ3–nÖ†WعbcBý2zžWBL›¢•.Z×&@< HIÁlάŠX¼åå³—<â¼¥ 6­"G”‚ši=³jÑÁE/Úhu€×Ïž5Ð˼à &Å0V)”Z{»Ëܲ^¨¥¯¯Ö"Ó0Ì}z¦¡ÇÂè&õ¿!Ûžxzó–.ê²» »àå‘ »è¢ÕoøéÍ€—Xñ2‹@«¹xøQ~À©¶Ê|:ÀMÖ_×'”%ó¹ŠXz«ô1¾Qr å_¯J«<ÛRÙüJ)ꨙÑñaËnÉÇlžu’«w§xâ£ì«ƒ)‘n+Èd¬Žpˆ‹c]ÝA—ˆâÖ÷àŒ2q¥e°l—õÔMš{©Ð%냻8‡TÉsÈÄx¿†‡ I 16mÕÉoÝíÕmF÷fº­;Bùþ$_üeŽÛó)Dcýk-ý{™7ôuŽ?¸7Åfo8ôyOw礹¯ÝÚIO›4v‚æªo˜V4ã°v'™ìE'®|ZO(YqŠº¶Çz-£¢i·yÂ)f{ŒF¹A:Ê‘‹ÆQbŽ'_HÕ½a¥‰Êd%ÝßK×¾# %w  òMJMÛKq«2KLëͱt sFy…!}GóºÀ3ïP[ûF•´I!7 dò ŽD<ãR‡#eTM’Y`®³ +‡ë\¢žb·T ×tʶt6ÉòTˆ»Z™ºµC–³N)¨©ëî~Õöh÷à¬YHõÈÙ6YTݧGʤ.ì@Ÿ+`RÛHš—ít{ºX0Ñ(`Ù²È-ªÈªÂÖKàÂÖ‹ïSÐ??z\x,âzÊÙÑÕ§¨þ%ÇUåÁWÌ„¢½ÑæÒm?¾2`d€Õý9} ]¢˜¢Šéa¼ÖH55šîž¯\ Ÿ5É%ãÆa±i` ^Áé|+' +Ÿ +šš@S~S4#’fd*ΊUÒ±9Ú-ÿ8%<•² ©}½nAæíwÈf=ÚI§JÍÒJÄ…C|~‚²­7Û£0‹Æ rþ”¹_àWv× ¶µÇSkkÏȈ¤—î.q~œ|MÏdÏ ÷Жb攂YRSKÆ¥ˆøé!.Ô=¬æ9ÕR´s¸­ïëÈÔusb Òþ¢ÁnC©XN'*ž*ºÔ ª»Ñ5ЖcUä +‘×ã¯$ V2ŒåÈFr ¼í¾RÐñè8xØ»ÒéÙ¼¼I¦„݈¨; \ëÒÝ¢°'/Qa£ðÇF£¬¨âŸïë4:ä2ÄœYÌž·JÅcæ^®AÙ ê“ –´ŠÇ2Aø‰«Å0ßéüzÛ©ÄÉOãÉaÜ…Ý~P›D?öä )ìÚãÆ°ÛȰ˜TÞ±¨ÁÞÐŽG'2O"€^•ò%é3ŽîŽY;á1õ2y´Îçtº&šÆñÄÁ[Fïe• þ•Hÿ)1§ë·´ÜΟî?® { ùá}*ýÇ„lþ±Ó׳Â~=vínYØýLعëåÇ¢ßâOcqº÷º‘îY³Ö1g‘tŽ›…4jθÒé’0Eº[×ÈXŠ¨ÅŒ\o@Þ¨n0ÿ‘_$9—Ì>žšÝõSÔ[̱ ~{»÷´*ìÂÕôcѯa?Pqw¤dò}G;*jÕF‡i{¹=buQ[çX–¿ô¸æ‹Tü£ؖŸ½ÁKÌàÿ’ÉÿÇËØæ\¼Spìùkô±÷ÀcQ ä°?ÃAaZŽ}¨²Ï®uýޤ_÷ˆÍåÎá^äÒ¨D¹6Ýã3ÛtC3$Jçj’='xïÖBõç Ê»O>ýéÏ»åÇn>© »Qv÷Y]س¸–Ÿž%1~z#ý)»Æ|Þ:þ´M,èñÀlÃθšW5g¦ƒ½rB’œO{Æ¥)^°ÚDzȢ…8}ùy^…ò÷wi¬ã@Ïý›È>ö"†vïQ}؇ÕÖáÂ">ðÃnEµüp1ú{/q?$å+~ͬó\+®“ß—ðùómÁÔœ2RŠÝŠÎê^þPz‡p´œ#š*ÆPG#°“·ÁèÀÕ2¨ýLZN×?¼@„=iùáE騙‹Â~ÿ#îXbVÛÏqI˜“åùØ[^]nÎ& ¨e}5R™Ñ9@sº'ËZs©HúxD%B}9)·í·Ø4Òñ¨”–χçûåô‹°ÛÏjz£ýSÒö{ ¼ç­¬ËqidÄy+P‘3G•­Y.3oxh¨±³ FïpÀцÀ1Ú?+áö¯3¹A~¸÷4',§÷sV¹ì·øÑñgñ„_â?Ðÿ¨©•ß&⥕ìWãC´ÔY1cÙF‡,\ô¤‘Ó`”±ReÒÎÌn™ Êì/ÂQ-‘X²õœè|[£<™ÔúÛãW ?Æ¥~JÊfÿ”VÄ:[X/¹Z‚Tü ÅoSÉî·Ýgž^¢…/;”µ)ïjJpi…ˆ¾N)¨[b„ˆ¤®z†À•\R]Ÿ×qêe2óç'¯qÇGÁ€z¨>võ~aXd<îXd2+ìÊ“ú°‹G=Kæ‡%–¹~.˜ïµ2¹F¥½}ÁÖÝ1>Üœè–Ã^ø´¬R¥Rá÷ù*˜ÓÕ˜¾Í’:êìÓÊFëyPƒþtF±ð— ·ŠÂ®Ü. »ÿv=¼*ìⵜ°¨7¨cé9‚Ÿ +‹E'ÚHªWÎþ®Ò9=½bÑF©Öwâ¢Mò~˜¬ße°5ÑŒÎÙ"b×Zœ5_Ö?*ª‘üYÝ8p‚ÑÞL­è¹|?þKTâXJ>÷xRIçù´ªŽ{$u$oÿ00èÂŒè»aófýæ8‡¾3Õ>0bî"ªÔ~×P”øË),ÝëV²ì1™9ôI‡—Ö†gUtÜN/aÜÉ.eÞBЭ¯¡ [ŠaŠi(ãµÃÒ*‡¶îÓJóŽNö´Žœ?g$ä5-#jz‘¢“Ÿ*í‘—ô *YUL CñA7GæÖô_Íž»÷šüëŸk޽x‡;žXÜu6±¼ÿb¬ïF9yôAa³êAÃ\Ы¥y,Jò”–˜=­ª}µbÅUnŒðÚ‚æ.ªVkŠ•^ +O:RÓ*}‡`Ì¿®ÁÞª@Ù/æTÊ~¹û¬á؉?RîÝØ\÷CLì+еKß{äÂêm ²´ã]:ؤ5ˆ”*-®_ª¯ê;J¹"[&kŽÅÕXÕ£¸üæ‡"öïq)¸ ™Ü›Õо'lº&Ã&±“Ç4Fù¢K:øoÌhãK›°üŽ_‰ѵUê5 +¬D¬V¢¥òbi¦TÜm.as´1¸Öþ‡ŒèÛûGFóø’DQ$®«w eH¢®v)´Ä©Ÿ¼å>ŽÑñ+Ntþœ•Xû{ÜFÍ€Å8ÌWk‘ÝÝ lfÏSL«ùq-Æö µ¸û|\*ó§ÔŽߢ›Ç|Àþ˜XÀýá}qûÏIå§s@ îˆÞÞ1¼SoéUr¡[*|ÙŽ+_¶ÀÛc,ò„³“8ÔÏO‹ÅiŠ N1è_ºG?͉½{“ÜîƒwÈÙ¥9­`àÃQSÝ®ë‚é•Ý`^ËT›iC +A«R ¬Z~¹ÏBÌZ›ä +ölnHUûÚ/Ⱦâ—¾›SÕ¼0Ó‹®ù;0É‹j>fYG©˜B¼í,¹论¿¤eV„ ÄÈ­tˆy¶m–ˆ>û;ÇèÄ }}ì¢üxQ~¶fD$nZpYsZL¶º5ÿîlo}Æß~ì£ ‘±kÇæîØ±ùGˆu©zÞÆ¨]õæ>jöƒ Ðû%+æ¦w›vTÚ¾P±ï!UŒëC|Öš=§c¿(¨Ãq*rËŽ+™B%L ^O)q‰#}ÍofµÄ¢y.w^‹IÙr+2¤× ˆ÷‹š¦Äy`ígåM/gd¨7Ó*JþÜPsú¾Sôñè »µæÓ¡zÇ=škZv࣡×ìô†E-4¥ÀgNÊq%sÃèÄqiCä¸ñ&¨hIš0 +Q~Ug㨜“7­&g¯Ûûd+6‘`ÃI„,êªÞ. æÞÙ5#ó?úÚh_'Úû¾…ò¯G9SXæâpÍ›]s0ÒÆ>ð³8ëöfð‚­¥lÚ&"­†[Í[;ÑÑózf݆…Õ´nn/™›òv]XоW~à¡Á€ëɾ9@¯Sj4èÄÑ®üû«ºº´Ã¦j„‚ز“¡“u‘Þª—Ÿ&©œýµyÅðÍ0:m^IØwa@Gó;|„êU ,nÅ„xÿ9@Á|Ÿ¥·°´‘ÎÜ[óGšú·{tá¿fZ±»S4ℱµ0 ¢Îñ×ðä¹Þª‡“BÐ]7§ðÖloõ“}¶ðó ¹h$€­Ü¢kó:xѦ“\;§¬{65Pè)¸5+-ºûï` ô¿3 ˜Â£xÈçI:õÛ|—ëËD[粦æíTgîÍ@gÁ­ÐPeÄç‰ØáwpgœŠú2MÆþg;ô}š%Ü47•.(Kbfå9·B*ЋÃ1<ø¯ bãß3töŽŸÉ +™ZËÖ\”ƃIáðÁl—ý`†?°=΢¯:H5SZtÒ„–P´:Ú9¸èíêšw²‹v&tÙB¯;¡4oÅ}!"?91å_Gpß–…ö…Š{ÛZ\€ýù"TÊM!ïþ®žT°¡nþ°cÄå,a“”Èøi9$ÚLÍûsßÈFìXèU-.{FÜøz×€Éýì–|r7ç¯W¿rò3®*žÿ䤼øŸqã»S¾®.~°8˜}eSWñtÇŠLÝsQë<ì–5©zYÿ¿û„öœ-åntΚ®âå‚¢ìé*°G jDÜ¢“úe´úÉC¨Þs´Vnša© Šú—S½ —”ð·ÛV|Ñä@}ôh'èæ¢ýaZIÝУSÖU¨)QÞŹî¢?g{*Âç€ç,ª±i6fú©¥áº¤;67€MßÐ6§- 6¼ÜÐ4Å´¢R÷-¨!Yý3;'÷œrrÛØRü}œÃüä£À7Lð=- ]+6gLjNÙw+ü2hšŽ‘sï(Gd®¿öæº6þ“’¼o¿_7äÅ|oxð%=ä†Onu×ÙÆÜt0! *eMW½ã¬Kݧá¶G™¸ñnE û°ïÄW­¨ÞE¥wÆ…ùwvMuq{ÈÛONl!ð»ú5*mÓ‚ÍÚñëõ¨¬>BýaÛ¶b 7õˆ¤[SÊÿñÿ™£15.Ú²·üÁ®‡ßs`AkFh†‘²fjJÙu¢³·¬ˆÔ5#ìÝ‚ªîÅa€Üüч}ôÀòöìuŸŽfA››’vm˜œ¿&8¼oÓ,~HÓøzY‹LÛw1[¾Elë)»:XÊ®öaQѵ¬†'lšñ%»bù•ù¯ò}„Xõَ̘“äÞ_‘•¼˜ï-¼¿ + ÿÏ"•ý}ªµuÍ„H 5e¸Z|ˆÂÃ`Sñ×qhÃÚ˜»ãBçe®|ŸbÒ·Íè쩲×AiQžU{ Ó¿ã [†š÷›pÔ”önÝEG}™âvý+$P~žfswLÊεy×Õ\öeŒÐ°ç!Ôìº[k6"xwª¿?ÍëZ¶ea×½X”ƒŸ®*ªŸ¯åèØšRÿg…ÎßÑ×Çlêš}uÏ7'M­ÅÏ?šè5»bÞ¾…P8Ûßðd~ úÁ¢¢æñн<ŒÏïjx6)i|q`dÁÿrspß,Þ¶ÔÅùx)çFXI§ÆyÙn#³v­TȺ»2z¼¢({t`$|vͬŸ¨Š™ì«Ö©>ⳇTûÙÛ +YÑÔD…2//Éóooê«_íZ›3\¸â=ô·'^žê‰¿|àG}õ¢²?»0eûVLñQ†Ã¶“‰Ü²2Qû©Ø¿‚¤ÆýbíÿeôÚÑiŸ½ÍÅóòê§3}Õ×T­Õ»FRåg"cÇPµª¨ŠvæßõW=ú¥èÀO‚XWfåõ¯¾Œê¿û™Ä}KsÖ®ú~׎_S•Doèï·ìG÷<2ÑÓJD‚½jhJÚ÷’j÷\¸Š%eÅëÙþÒ;S½¥7'ûÊo›$¡VôµoVu ÈuCÕëÏLñW7¶ìo?¾æ¿3­-Ÿ½(Ðì`Yø† –ó-ÀáîZ[Ê6µð÷kCµ/7Ôàˆ-=4þ« ùäj©^¨|õɉÌÖ,yò~ß OŸï+ŠX®JX,ØÖTÇ|õ +–•1Ó}e÷¾øèä^2ìÓ2ÏÓ´nÇ„äàÈ2ãã¶äÀ‹+_TÖ¼ø:©xð׃ºç!5. 7ÄNJŠÂ·Mµñû#4Æ— &íû q8†©>œnLv[¿Ïˆôÿ/Doû> +/\Ñ‚_- U>ß0Â#~§`—ôf᜘ªONè£ Wr48¤%lk^ú»ó/ŠÊ®ÏB_niIkèäù¾ú§»ºÖâU5&i] ¬«²æÉê0ìõDOíCw[ù¥ù~øë/:|E‹Ý·¢3œÍy›ZDÖ_.xÞ_žš¸¯îÆ”%-"~¦¿öÉW©æ“W¼ªúTVîå$ŸF¿øÉA}wòóÑýñB¹k°&JNÌùã‹ úÛ-ÿk ]ôÑ y¿ª.<%ʹ8%È;¿$ƒ¿™Ä'Ot×?ØT¡Þ-Éc—U¤Uucܪ5-ݞ誌ØPµdNK£{kß—×§œtR +®; +n¯ÈÊíYàiëfD’‰[tož|öðhλ +‘8Ö‘wi¬=ù´›–|z”•}eU~ñÅŽHt„ŸôÛˆ ÿÎáxKý¤´ü¡“|ÂHÊøÝNOÿ}öú·ÅþŠg»ftÞ:À©«ÃMïVTÈÜ ¾qÛˆÊ×c~ןŸõ±^™gÿ¹ïFen[ ¥³RTÖ’’ôßIñ0ØŠØqA“Võß*rŸÌ÷ݘè*¿¾®e@BƒˆÄÙžâK²â[ëC}ì´Ó&BÂY@+? + –½ðò3ÿXR4ÄØI‹ +€Tõ/d5OCe6T¥ÏÿÅž¨¥rJ^­!gY3bó?’a{î–ò¢62Бv}]zº=\ùäÀÖ÷-€¯u sîõ”Æý #¿x‘Y@­t7¥/)òï…z³®m¨KžŽÂ‹¼] W¬ÊW×?º0õÿž¡Ñþ=ÕÚ¼gnJ^8°#뎲ñéñu#$ŽVñê\vÄå_lm/ÿ;MÆýs _½®ªŽö“.‘1§<Ô¤S ý àš„º±NPøôèÕ_“ôÿÌÓ8ûÖæ¼/®æ‚m€KÇ;Ó¯ÌË +îNc{£xø’™²ã #÷=m¯c4æÿN“ñâ›6T ¸åÁÜð`{ê…ÿ.´õk“lÚˆÐÏ>|Õ—qtžUqàFþÄ€}¨‚…Á’§Sâ¢[ŸGÈè£ÌôϾ#Í‚Ëß·£3f{óoì»Ð9;Lζ•²¥¯Z®|ê$Ÿ3áÞý¶"ÇdMô4FŽ·WÞôñʯº9å—ƒ]5á¡AdÌ¢·$CÅ{Yçgzk¯©á±[ڦجôÞ¸0õ1AÚ rÐý=3<ñ›“Þ¸g$- BžoëqéÛFÄûMmmÄ–¶ìѾ¿¤=µ33ÎÚhEWw¬DÐlÍóY]ÄŠ²îå¶òfuüd¡·úaH†ˆWr/ô5¾?1×Û³c$né±!yÃK73眹9îÄR_Å))"RN*¹Öüà˜™PþÅÒZ¾£¯{f^p±Þ¶´¾?ím+½½i —e“· ØÌm#&sÏ@í ãÓ­Ä’u%äµ…òî”÷êø7û°ï¯V´Ð87ã즦1ÀëÌuUÕc;õÒŒ8ïɪª"j¶¯ìÎdwÅËC¨kC+b ‘¯F¸Ð˜iIí›C"û“½áÝŠô<(. ?#&üñw€Eÿz4ÇÊR÷Ö‰¾4Œ~zfy íòžéè¼*:ŸwïG[[nÄ—Ñð†§Á'¤†ÿŠM ÿYÕÿËÊ àLÁìPm8鯝“½àØÚý‹·)gUUø`ª+ù’ƒöö”ñ‹—zqMÍÖS‹®xÕO=mÔ/NBå®ü*Ô›zIƒ‹øÕJM;c¤¤[RÕÅïZ›ÒGÛóï~ñ᪾Œúo¸6zÀÿuUùëcÅ»1QÆe-1ùÒ»¹h^Uýv²;çꚪ:bU}µ¢„ÄìÚS— °)"í «0êG —³v¬Mų%÷gûA÷€}ÞÖ×ÇíX ~Ãó7L qnvÆ… InÄÿ.‰ß'qµ???Ê) tßòrr®}› ¡¾|æ•”¿4Q2Ï~£þ5Ccï˜Á «ÊÜ›kCÑËrPÔž©&飳>ñ¿ó­xG(¹õûø@CÚ?:Ý_‚œöksÁ¢¢ð¦“–ð{WÕÓ®¶Œ_8½üéÉq1(ö‹§µö«‡Xy`¿øèÆü^°oG¤,È +nøøq'z¡÷lŒ:9­hz'Âd2’Ëï.)±Éó +DÌ´´ö±“S|ÓÁÌ¿ä¤çÿ1!¨¼½¬Æ$º÷½œ¼Ë;ftæªý~Mx{`iLj3fC]ûà݇ãí…—6õ€Ï1á²Ö5˜IqڹѶØnrÒoãÌìsÀkÞËê_ ~õój¢€š- €ŸEׇñ‰§xÕÑ'ÚAÏ~2·fœ”Ö=×2 +n©7æåИqQÙ-ý|P”{ÝË/¼6ŒO9ÙSwÜÇEêè…÷‡IïÎ…ú+#7µ)ÛdÚŽ¡¥`] ÏØ2‚ãå¥w-7'G%hp¹7C} >^:4Xùl¡¿ôѺ²òé–ªú¹“–rZƒŠ9yÔoóý g³ÝÅ7°÷euѧÇÙ)÷ôµ1yq¥Ÿ]„ÊY)ìít}W-$Ί‘)ÛZÈû-]ÕË€0ïfPXpoi°èq|Î_6sËÒœ»¤‚½ZÄ$nÈ¡¯v5¥á+²¢{s}Åw&ºËoè‰ &:Ä'ª¾3Û¤3qù“]õrþ™¿âŽ¿½ä¿£à戨èþ¶_µcjΟëÝ›é){<×S3+®|8ÓmMq”ŸVôÒ/Èûs¶ùÉEC99%7l”ôóŽ¿zü劲1vIy½x‹`豸1þ5"cÈÉRâ2α +žýÐWýú¸›tÊ àÃTøõ¢WÀƒ¾»ÜZþÑðž [쩈´“®8¨©¸¨9çÜÔôsˆBrùË3½ÍÉ6-•k†–\7-ë‚h|RÜïÞ¶¤Sj̯Ú²„Ï‘fdÊ‹X=Û[ùdV\üd^\±2P™`þë@GÞÝéžœËÿ»L"xQ哽ew¶L ‰‡cᡟÇý÷,ñyžx€˜}]ô¼¦6ú`”Œý>Ý>ôу­ëãwÌuïömÐô+4ð4µ_ŽéCDŸí*ù ðû¶–¢£ºýäÁ—íÚ‘þoÖ¡®ñýl_éc/÷þ.êqƒÔ²Ë®¶º¨Mµj^ëï.¼<„MøUŽŠûÙÅÊ;?#ixRâStGç°ÈYç>{è ¶š^ù…7¬·Ú³Ï……';AwT°xo{Ùƒ¹AÈ›Ð`í“)aÁ¥iAñµÕþºg[:øûÑîü›:\ì¯Ó"pÔŽ¡µØË-87&*½¥mÍý“_FÞy²ür^|§ ä\Ñs¯. £R}Š'º7?‰ë£T¢âÖaÞýìcå_ +ö’3XõɧyuoÎlñ5Ÿ±¥…Þ£!: Ê¿1Õ{eEQzwÇ M•Ô=b¾úi„W·xÎñÎÂðÅ~@ÿôÞð1?œ—€_×~svjô¨ öæ”|q}•8+,¿».+¾·«E†zÓ"‚Â÷w=줋kG3­d¨|Jqäï*ÜûŸ˜š=ºpß}·ghˆÛTCß{•5Ò•Ó)(üSÔ˜yCÙœvsЀ¶ ðTÌ¡[¼o–ÌöÖ¾1>œÚ4 ³Vu- ¿°ú‰Ÿ[z#Ø +÷°ó®Mußÿè¡=+2oŒ_tXëÛ- 5%âý¤°øF@y.(H=ãf¾91.H?¿x›e"™Sùö—vðë?–† IŸ½Ø"ç“Ç: +:Y©·'%€Oé«‹ÞµR «:lö0!óì`sÚ•‘pÌ\/ôÕ²¢!r¢éà–?6ÄžÃã®~ò‘jCʆ×úÖŒs*DüéYaу EÍË¡š—kÚúnmÜi»,qËCE.¨Ðï=¬âë.VþcWiìÜ@yä–¦üÕßcÈÊÏ‹DÂŽ0ñ‚yÜýy¢-ûªŸ“};ÀϹµ­/}ñŸ¾q^]÷^GϾ¼¬‡¦¯[Ù裙,_Æp•ûÞÆÄu}uĦ¹!îÓX3èïyVû¾·¥aÕPwàÆ”þgŽÚú=ˆ©Ú´T½Ú4ƒbYæú‹î|ôàjý´æ]+&àÈüG³XÌÍiGŸÑ|öÒ‘ŸÄ2@[§- ÕGN÷V†ÏË O×T¨¤m½nA‡O[Ò6ÅOõÔ<‚î,«`ov_¿f€ÇOŠKo® ÔD~ 𻎼õâ ,ÚÝ–qÑÝ–tqYV¹£Çdº¨MKFt¶•›wyVÖ”²¬kÉv2 +ÎpI' øä3C蘓Ì«Ÿœäg—¥ »fr©…šsá(§hËL*Ÿ@Å®Þð¯ýÝàûcU·V”èÄ5€èRÔOæ½ÓÖ<™—Ö=[F¼›““Ò}õO&{¡o¿¸Ûèë&D⺷£#ƒ·‡©uKÐÈyiù™¾¢»“=€ïB£7ä†I"ì‹´.ê×yIù©î²û>èÑÜ@cÜÜ02e°%ÀŠÔ »fTÖ(7õL =éô¬8çJ›p~e0çá¶¶6õ«‚öJ!ÑíuïOÛè¥/ÿàvïÙá3ÝW';ò.Ì÷‚nÏöU=ï­~nTÜ®úðø§úä»çþòaË=Í{–šØ…þÜlÌé>ð½ãvÂëkzh’|¹üÍ­Ÿìœ¢'ùðà=}ù³cѳ}CÉ33á5ìÅ?Æyy×öœ¤êiió™¾ÚDà vŒÈÜ]" ¨“„@_Å£¾¦äÝäKþκg +bÆõ©pôŠª!eQQòÙ‰*ù~4ÃÝE®_ÓAãG„¹BJh̼¬>vAZp2*ÑÄ̾¤%%Ÿì)z°{ôÙŠ 6Ò¾=ÞSÿbÄÌ^“•†O ³®L +þœ—\_ÓÔ¿üèô¾‡XWÞÛ±¡s¾ÍI¡5o›à‰ÊâGS¢w·§:3ïm‘)[V|¡Qu]…Ì;½(…¥þ=Nc|õµÂ¶ôÐd??ùÞHG~T°¯êÉŒ²þýÇQ +)¤e@Ç%5Ov]ˆ‚ÎQÿ µ¶þgžDøç4ºç†¥Y×F»Ï­èêâmÜüogîÓ]_sõÁ(¾ù‹ý×TKó·`3xU àÀ`ÑÍ"ky³¢DÆn±Ÿ¼­µ›̇=ksƦÀ8UmÄ'2õ‹_²e"-ª°ï?9é°•atÒ„¨òæLOÕy9èžOt~„•xa[‹ÿd§B§ºj…zê"¾:)õ{VTÚ¦»¡E$ø;òo-×DÌÉ@ákÚ¦ä-ìá—^v³ +ÿ ++.Ö¾X—#ö4-E;Zdn°«äa@X|s߆Éß±âòV†áo—Ô±~1ø©§½êñ´¤þÅ¡‡_Ò '{‘«*NíÜ0µ 4„|’×FŒµçÿ¨|´ðÓ¶òÙK¨\U×¼\U6Äï[9¸™^\™E×ÖFN:óÙÁBm99˜I9öƒ•V|~[ƒIÿ èÒO^\ɦçæ_µÓʯ9™%WW ¨ôuòʦàflÙ÷±6Ö7¥1(.>ˆŠ?c §]˜?ݵ·€¾ûÛXß2=õk:|Ñ'7¹g£ÕÍôÂb\íõÏͼšðTÎ § halùŠºìÁ¢²à~HQ ¼ß7kòêçû&ÈûéÁŠH=%ç‚èO@×Vq£ ¤Ù·ÆØo®ÌˆÒî†*¢þ?{ïùÕv–í}Λçöí{»ºº««»r•«Ê.ç€m äœ3HH(çœ"çœÈ„„rB9HB9 ìªî¾3ÿÅÌ‘ï<Ï<3¯æÅ¬5¬»Ø^ZBòOÒoŸ³ÏÞßÏ/œórÑ3…ÏN̽ÛÃÎù“´µæZ@ÅGE´ô¯Œ”mxXòí=ù‚ü¯•]U?jîÁ/ɺ`§¡™?ÿaH}*ª&-=­üÑÒý1¶¿1v–}¹ð¢þ·‚^ÓÛ\ñSéÅÏÿ~ñùwN²‘A-g‚&-½*ùqöAñç–'õ?,÷`®, o>¡e|þ™ô‰sœœë—r«‚Óäœ1Ä•žÚëŽÑÆ%6- ¥”èŸ#o.üÊ9N+ «ñù!%®l×DGîZxø­QZžæ.ôÔ(»ôO;“œ¦í)zþúñ¶õìâ0'ã»>vöÏ;R|qt–EšymÖ!tÖ€ û‹­ILå‡Í掃UË6‰HWvfÿÕô¸è”} z3¤'Îõ n ³Ïþ›’üK|¹ó5`šî=#®2 F¥-ôTÿ4û¦êÌÒБSœ +——£¬ï ¿Á­ÀWûHÉÎ)r®s‘’2ã˜Ûó/J~°¾©øÉúzÒ;í³M0K–^a.nõo‚øüJËÈ©.kæžÖž’ò²ÿ°ü~kWß)qÉ(9ŽâMç(5Û|rfgŒVì™aÕºeÜêÄ:æG ßnPs=RAýÊ[Ä…ÅÇu'Œ]›¦ýá56ù_•ÍÅ_{¦Ø5›ƒÌëKÜ…ˆILõë8P¯’^é’â² +B`Ë,Ç%Í5.›_1n­÷S³£:!& ¤•ÆMlxTÇCÚGñ·7ú §íCM]ã”ÜíQvñ+JÁŸs„:&XE¶!ì5[?ü\X%ÄlímxZÿó0-ëß‚JNýÎ4£|ø`—’ó–Þ¡oÏ>D\ZxŠHò)çùÐu îÜ2< —°ëIŸ¡3•×MOù‹"á«3°ˆÞiRùJòòÖ±8( .¾¥dë»gG¹e_$Ö=š½?çSŠÑ ÿæn£“Âz!92Û.N¬Ud} 9#çþy˜qí÷öþªó{s”êÃe>ÃòsÔõ‹¹µklïZZDq îSa²6úkÏ®¿®?ÑŠ(®.nR\òƒcŒšïša#\rF­_Í}IÌÑ<(¾¨èÊ8i~–ÿ]Ä@nëÈÕÖÕ§Öß!òBjɯ ½*!Òc“Ô¯›.='¤}"U|oŸÔ­õã“ ÷«~˜i-úvñyÃy '«‚j.Ô1E+’v–¯¸_•äUšÖûH·Öß6ž4Ü+ýnœsço–G%?í¨ ±>}ö2mR\õÃΣڥ æn ÀÓÖßÕܼpkñ 쌢£èkÓ³ºdÀ0M¯8…?ö7W]ZçA½ê¢GÆ­]yƒ¸6ÎÊþj„yç¯^%¹8 ã4…Í<쎖ZîÔÑ*¢ó\ª_ÏÂFM<2¨¥õ«}è4k/ùŽö1eSJ‡î. +X)Ö—Å_ L´ÏÜÜXlëvÔ)¿Þ5•`\F@A*u¯hñ%öÂú úºåiù×;Ȥõ~ämgîŸÍ ÿºÑÛt9¤á½:Þ6Å*ôÈk½ØËÀßÛCЋ†û¹Ÿ)[óþ¨”}…Ί™Ú%öÄzc2v¹_Ê©pôS¼ãÌŠštLÒò-Ïá§gÔ~ke–®ôQrµ]U[z;Æ×ëã¦k³w›.m¼Æ\óIÙÕÛƒ¤ôõ·Èó“¿3¿ãœ@]µ #®¸Ö ©¨%â• Š»“Æû W‚rv­wŠ”ÑÍòq^[|êÖ ò††Qᚤd¯ƒ|.ý)¨â"ë»+:ª¾ž}Týµm›¼1Œº<ÿ +zÆp¯êdXË…mŽÒr׆)‰õ7ýV­møÛ‹¹ê¢•øä¨cLÜà˜Bæ{ð© oH©Ew«Wy¯3¢ï®47‡u”rÛ üÊêkÈiÛ$­rqRˆz+©?7(¨øÖ+¡#ô"ç0)Û;Aεà3¶F±7ìS¤ô ¾…±ØG-5=F^_x‰O7>Ad¬¾ïj°%KTXÄLèŸÖ|·ø¢)5¤níÈD·šY›g£] +lÎÖPC’SKÜ9A«|IÎþ“KÆjÜ_é|2 H5»vm•2!¾ùå¤èú×¶¡ª ÿ\ +öæx$·”5‰yAŸ6‰Èn¯~kšQ°:†KY|ù%1ÖÚ3ßô icXØ`ŸhÆúfM~¥hksÃú¶é,ˆK!-æQŠqúLjóƇußûgÈE€Ó’Ý£¨ÔC3 åÓ‘jmRtêÖ(æZb½­u0¶”mÕ_iZJ¿ö+ˆ€hžrYØÌ!yg…”—œâ}⺫KÃèr§Øü‚xY×Ýô³”Wö•º£ât|ŽK|¿"iÝ[äSjRÁ¶‚\ð«MÒ½·ÄçìLrA=Ô­êy²ÏÀGÇ“ø4Œêù—Ó«ýˆäýÕ®×ÑÅŽÇŸ²2н¹2BHÝ„·<Íÿl«§ä›ÍžºmÜb§´»>Ä«Ú甸§Aloy¦éa1/®#—'Æ”}’”éÑ´Òæ_!NY_Õ~»ÜSý½õuõOö!BzHάÞÕ²¡‰kH2AGÞŒìrÛx¯ô/ÚŽÂÏÖû!lã˜ä•wè‹€ur6ÙEªûŸÔUóJE >©¨Ñ7)‚Øú(é¯p©ŸÞƒ\ütš“ùÙö;øÙ€F„]|8g}Rÿ] ñ;sJÌH« +(‰ù+}ðóo@îVýh}…Oš—î–‘ "z>*¬áÃÂ*f•swgcvnîIùçÚÖÌóÈ)% 'U+ï£OÏ¿&¥:§Å>½4¬áÁœ“‰ùÏ WA]uLÑ+âó.9ÐŽø[ÛƒødÛîjDÁ©i$¯‚Ñ?ƒœXÀßžôùõφÂúNáî<¨:jYHN.ÉéUAP¶f¸pc&ÕÚO*ˆ[ùŽQT²m°ñüVoÝÏ˯êOù@·Í‰¨!£„!¿8©{€MuMw†”`võü¦€š¿Ò[}rs°áœON,Ž…ÜÐô ½„Ç4½øpI"Ž™¹ø°†Pàœ„¦Ì>/úYû¨àkóóº‡Ë’N‡‚Ut×ÿ¼ø†˜ÖKxAÒqÞib®mzÍ7…ËðJ©y^}»h¬½âGYWU²O)À´BLPÃnˆÎr‰»w{’š»ÐƒIJ¬¥š½÷$qÞÇ#§—¸¥ŒÀ»•- òÞÂBT¬:ËkÄEËøù€Ž‡ä}÷vùSËýêŸ×û/¸ä„‚ð,Ÿ±´·o€X™{GOKŒ÷€QHð(ÉùŽI$—õç¶ÆÈy•íVwpÖFùµ#¢†/4O(7VÇZá›CœÜ(Ðî)Túâëú ¶)Lº[C)X[„æ›[ôÏ“T]Ÿ@»¶„L<^Ü*”-ÖéÓSj–{Ï­ÀÏyõ”×Ð"\!§Û§i….=«1² ânŽ0²×ûiéŽ1F>ó @U}Tù(`à@ë;oà’·‡P ^@Ïú'Îe¨~99ϯcãì"’]œ\Z©K†O³ 5œ^[úÍöâ’_ÚŽ(îK“ͨÅwŒœµaf©]F-Üǧ®¾E_yÛxZÓYö…º­à3Ðu½„º9Ê(±¼@œ2Üoøf€‘÷Ù;Rößæ@/¸F)9ê¶ÚïeÜÒ?­>‡ÛÓ· +rB¡õ]ùOÛc¨›ƒÈK[ýÄÛ«½”Üù·Øä™¶²¿øÕ,Dd¶™³ò®)Éú´øsÓýÒ/m#È$w+¨¢ûUÜF›”Sµ1Î)²ËÛIN•f›@%/÷Ôÿ$kÉûl¦#÷‡Õ>䯜Ž[Z„N!ÇbÉ9AËÕtT}©iËút³¯áÌöúÚü«†3A-­&jæS}*Ò¯jƆ "òJ/ô¼¾³è/úöò¿iÛòþb}Rø}D/ kZÈ ¯I)ª®Š¿€ý»äŸ¡í £’]˜;Û#ð+ÛØ«®izS.‚©ŸâS 3þÍ%¥€ñ“XÏøåš$–®ôÔœZí)ýÖ>Ö”¼· ú€¾ØoJÚ‘¢2S¨ÌõÁº$—›7‹%‡ë’'%¹Bû°áÛ½Ô§æ ¯6yuÌú­ B–{šZ–˜g?n²wäÆ¿æ{E;$= ‘×°)–§Uß,½…œÙ‡_öªÐiû‹B¨K/có÷6&è1k×Û$»aþü¬º½ðó{5ßÿËýö§Ëoš’# Oו­Ewã o0) `$ƒ€Ô ½€Ð +pvƒ\JfCt®­us‚]¶x6>ÏÂ,ñY‡Ëmbs"þÇíd¼Ú¥aQåòè=’µOR³1Ì)ŠÍ +‰ íÉ‘¹Ö¶ýÕîƒ{ãáE‘È¡fToL0 Ý3b²ýÈwð] [¤5n#37†‘Ù#_mnߺ`cR wë<ެv<Н7Kì€Iü†vO—˜¯‰SoŸD\ߪ=å‘¢S"Zv]ÄÀkrN‘2Ç—„Àÿ{¦‰wè ¯+ÏXžŸÚ|‹¹ +´?ñýrÛÝ ÛäU²ªóZº³lô#®/nñ 3ë3₯|Ìrï(ñÎNìš{‘iƤË[ÊÿfxýÁ˜Ëü—¦í¨úÁ>Ò”²=RÎ9¿äÇç¬Òu¡¿L·W~eìk›b–-¼®?iyVwÒò¼ñòZ,Å7C¨Œ›¹äø¢Dâùsu’”îÑÜmñªùè†RTSÊWû ]JtÖÖò†c +›¾kæb¬=ð³cøÌ輘Ð3½r|þVÃëóÊÍOʿۙd–‡ í¢iv½²£ê Û)ïdÖú•øœ÷ D¢]€#$® Ýœb׆ºž®Œ2Kf_o,õQ³æ_5^uM’Ë£ /`ìè\e•Y‡Éiƒ„0òЫƒˆë¶ILÆŽŒXèײ!ÑYvãþ’¤%6ßÞµ +4ÉŽ Ÿ{°’ôê ’VæÁgzd‰µ—˜5^}gûŽúÙë¹wŒ,ËÔyÀ¤ØïMì-7w„AžŠ/‰…A3 ²p)±y?6w÷‘æ2i\\ò­[E­ÿÍÖòhµ¹-ºÈãº5„2—–^ë7‹Ù±Å¶»{K÷ûBsBFhžƒö½›¿÷âã5oêV²WI+ +(ñ>îŽs —ôlºcvÙ#¥Æô­ÌIrúr?âœêAá—šŽ´O·^5ÝùàÀÂ%øêÅ$ª“kŸÖëUŸ $ÿ‹¶ýΟíCè4æáýåé{ŒõÉÌö„¸n{˜_±ÞG¼µj°½¿é¢s¼)Å6N,Úm…¯ŽÞ'®OÜ£l‹ê¶†hi›ƒ”´¹g ‰k´Îm½B\Üy‡ºl@_Yë#ÝØžÁÜÊf¬s’œ5÷¤éR#ãË~zÊ_7ß•ŽÎ²`v ‡lSì¯BŒñ(¸°•þÆ_¶FamcЋK¯ÊN9ơףFvcbÎÄåQF¨ã >õ£ÇE °OZdŽ õ(©Åko–Þ@SœRzÍæ¯\wsrg’SÔòÑN)!Ó1‰¹a¼_ü¥å~Á·öÁÆdŸZˆZäkïÕŸ_~É«›‰öAT’ZRðù+íºöüÏ´…_ÛÆH9n¥ iæqÓEU'4)fà¢ÝÓˆó“Â/˜™z޽ñ— væ_ŸCO{´b¼ééV?·èϺGçý*1-bÓcfͯ¢Õ¬"Ó¶[ÚÔœ·î~÷Ü;|ÆLgÉ ÀYyn¾,bæRA¢v¦ù>¶dkvÉ4ƒßÀÅhžTœÖÞ+ûÎ6„H± Ò½rRElVÌŠY$| =Š5N¸eˆ}ŒT<û¨ô„c¸ñšä΀’×Ò ð1KûÝðBǽu©°ae\ YŸCMÏáçÖû7Ý2Zƒ°ôÎ497lâ“—Ûï'æÒ èØH¿"·šÛœ@æy”„Š^ëÕ 0+Ĭ€ŽV_²Z6,¢ãavM|è+¸äSû ²9ÊlXx‹¼¼Ü?52ÿ¾Õ=´gåQ"fìpU(ÀÏùTÓ]si³ŸZå“ÒjãzJ}TG«ÜT8ÿöËÖ«Î3î5?>vTþUÞ9©ìª¹°jqTÉi +jYÐå!ü ý øù¥~ˆ·ÎΠQDŠY”žTäš"Ä„¼÷k­÷ö[;ˆ™Êî†s¥Z1`àøôé–œ¯åméŸ:&7÷¬bÐ.ŒÚfîŸÇ›‹š»ÉX×£Àe®öC/­öÀ.¿Ô±`QKkËJ!Õò qÁ7ÍF|Xh댃1TáKlÃðÛ2Ý®À×gÄð…anᄸ6±Ö\jÜÀBýcU$ +ªÈ…1µ.ª#U®¾«=±ÁÅÎÇ CÄ\㫚“a#ޏÞñr¹íqØÀúŸ^ÔqaûK­í³üuuþYÍ÷–§åß:¥¤<¯šR ø‹x8' Õ¤j¯ +™¹geãvÄ¢íþ†3Kk~ÜêG¦xÔt¨×À!ƒ±À¯HZlb¾é-*Éoê~²·òpì½­í¹×˜˜^íÕ@®’@]‡4ŒÊ˜Q€ñ«…‡”Wi›à”νh:©í†~­îhøNÙZõ½õ9âŠ'q=©*±N:éŽm‚]¼=Á.™}Zõ­\rû÷šŽì?ͺ²ÑWw0lgJ·‹+½Rð<†¾¶=Xõ½ºÄKÉ·æW¹Q=Ìûf©–âWt°SÍðíF–K*¨uÏ ­Ä÷q}Büí1áíOzHgÿ}g›5µ‹½º6öæ¿Ì ¶uŽ“Òm=°ó!9)wþYÁ÷†îì¿y¦q™n•)»×tvö9îVD-@€œŒŠ›Y¨°ZîQ²f_”|1÷$ï‹ÄußQK{‹GÕJuH‰9;×£jBqÜ$À…ôDPÃjXxÙpV*HûX›E1S‹´mƒµ—êQ‰h^•˜à˜À¥®õÿ0ĸôçVòÎq`¼{Ö^V¦á1ê¤á1úÔŽB„Ywný]Ù÷koŠ~ðÍà £&-nézhŸ¤®Òc -m{K­]aÖ’Ší£uW{ +¾tË)ùà÷0!SW—KÓÊ\å–{”]|§¼âUñaa³£Àf:˜4§œVèÕòš÷Ô8¤¤Ì Ž÷ª9p¿‚Z¼k Öî™Äm)2ÿŠ ô8«d×ÚùlcšR¶Ð ½`yY}jù äRPÏ€$ŽÛTüò(¿l¡_T½%í`¬ŽÒëUOjoÌ>‡'Y^ÔžvŒ#ÓB*BÉoëÍ~Ÿ·-8›BØ™ëèòëxp¯†^±5¹±9мê×3ê÷—›[>lu¾ÙœbVjŸ ÎlM +šö—Úïþ}«åÑá<ퟂ&o¾Êú«¡=ÿk/:gG×Ѧ{KÎTvÕþ|°$iÿ§££çpYØòÞÂ$‡”MEî±ÊË#Õ¿æÜÄúÛK#IJ‰ŽÂ/6ÛŸØì9Xæ·ù•˜ü>ø9¿ŽòkDh÷Œæ”qªÖ‡¨ËýÌÌ•ÄÜÎ’*‡´íÓ´RÜAÓòæÊâkø©AÊíi~Íú 5cñ%ñº´{PÃƒÇæ„dP£ªÜ€³ì#”4Ï¿Ê>Nº³9Oè¨Ë®‰Æs^%æNPŸèG~“šÛDÝYë­=ïœÄeùÕ‚¦•ôEû9Ãò±å9üªc›qhöçš¹n³z¹—´5FM_êo<=÷¨øsïþŽoŠ˜Q2ªâ†frô±wŠVèŸf”í[Ä,§ {Ó9ô„—ÐQJ¼jjUl–CxïåÁ]3|hÐÔÙ0u´ÔÍø°ž‡´MÁ/;eÈö ÔÀÆ¥ñy>Ñ¥`”…t¬úÃy>hcbŽ_†½c…^(È€½Yðˆ¦…Ö?|²4@¸±5Á®NÔR·Œ[ã“¢ï¸A<ìŒÀ¯­¾n8×KØ‹]O"& Û5C+c±Þ§`VíL`n»§¹`Œ•ªºKÏ.¼¬;» t»CÉCZ€ÆsNQÊ*+slÌᢈÒ³ÉËýðÇôj@G­Ú]ìxœí수ZøQSBC£2ìãuÞ[¹äˆ‘Kò©8H—’YgU{õÝw]ê.O-FûTì:Ç$6Ë9Í 9M q‚:F{š”Ö&îkkk ¨ÉE¶1Ø5˳¼o^AÏ4BÊþRçãà¢D8v·ú+Í Àwj 9h–°BP›5BÔŽFˆv¨§ñѳ…©ûœÁ»È«Èü ¿·ô1vã€ßaÄç˜H—´þfPO«ñ&ƪº«Ã©ºwwe€|sk’Q6‹¹a3»»(âÆœà,ãT2ÊA›4¹ w½ÆOC*ðLcïx¦Q·"zLÑ.¨AKG·ÇØÕ±2ίٞ`Vý¶ÙñjÏÊçnÁ/Øûá—žU\Ù¬Lûu…ÉøçNë«ýU‘À&'–YáÙA“@<÷–¹1T´KSáî<µ ´)Û££mRA=ø¾ü¥^워WcŸÃv-X¿¡…áÑJHN•±9AN_Â^]q¼>D¼½5ÆÌ[y¦ÛqQS+Ôa‘KE+y9Í6FËrŒ «S¢:Û8»Ð>NÍtŒb®†Œ´ +ŸŽQ¹3E¸³Ñ‡¸ ”äªhNÿ×õwõ§ƒ Fmcœ¢Dl´‚¦Ä˜‰Yõ»zJ¹WŽM_D^Zzƒ½°9BœŽMÚF]‹iùÈà ¥(¦¡–{¥¨Ìž’³Ž!È9ç8úFd–‹rÏPò\Ӥ쀖‰˜Ø‰x?° +XQ3¥Á6¸´Vidñ^×Òõhk‚U3 ©^ .3:K*ù°ÌÁ.r0 µÒ)ÅÜÚ5R«¢&ІÈkô-‘º§ç¡ÿ±ØyÿÃ\÷㨡´\‰K#Âo+›ñ«ƒä›ŽQäµíØe0NRÂrZÕ®¾ÖЉ VÖ;¦éù»s-|âÌüòÊ»Š–zjÏMJÒÿ˜üŠW)ĬLqª¬}ôœ¾«#fîh‹õ~>{¥¿þ¼¢+û¯Î©†k±9fÓÞRKKÀ$¦„L"æžõã=·Ï ö¶OËÚ^Þjº4ˆ¨»Öއ!“„ë–ó!‰óÁ{æffX͕ԟ‚˜g›€ÞX¨»8Ïñ~¾½3>ßÒ x¹Ê%£Õn #Ò×`Wæù´¸UÀÞRÓÊŒ=¨¤µ)ÚcêèðϵŠ`Œg[‘ŶÎÝq³Ë$áÍrKµo‰W§º‘7|†®ûÑ…Ž®Pb-+³vk´1-ná–›[w­&ÝêfÆJ/ìôÚ :9¶ÜúÐ¥fÔúuŒj¿ŽVáVÑ+B`œÄç0VŽoÍP®bVÌÌAïY´]+—z+4/fûgxÀ4¨È,ó~½¹Í.'•ëCðÈùpÀÌÜÃ5Qûß7¹¢‘ ñ¨@]ž£Õ~XIÔOá¹ÜŠ ¿×=«-øu»íÅÿêâ +ü*z9È'8Ÿ¶ƒïUK@¾áB}ºÄÉÈ‹˜ET›~Ã6U{ƯFço ƒü393±7¦¸Õ+£¸TÇ!=­* G¤í›q¥! .wc¸ñâ:ˆÇàçÄœæc­ÐoŒ’Pâ¾¾äÍÐ 2 pfÚZ?)Å6ÎÈó)%¤˜¹³k{‚’Xû‚_ÅFx•è“*Àᜨ¥ë¾KÓÆÜ™– ë;¦EHP£óÀ˜-ökÈåa=ýÛª€{¸Â¥úu„ÒÑÆ+¶I|V|±½#:/¤uÌš†ÝP‘KjF]ÄÐÊ;´Šø`ŒY_Wÿ¸üvÁ.¥! Rÿ6ÀÌü: Ä„´Ä*¿ŒX7°-bfÔ( zÕôªpâþ-uk{uh4· +Ÿë™åb‹’ö÷ë]oßoJîÙf%^›XKÁ¥e£¼zBÑÚ$òÚÚ$æ† èôØìÇu£îƒ¸„͉{›õ†­OVD‚°–XáW—ÓŠ\rböî›p°ÞöDõò“_ËhüuSÜq°ôÖšHZ0mj^ÓÒ(#Û¥¤Uü}»«÷×͎סY.2d÷×DÂ÷Û’îý5±hw…ÜQá³6& .5_¸û4féhœ!òª(•;2JyÀ@‡Å­\À$$^nOuVŸ÷hȸ_79Ì€vï"änjخ‰‡ŽéY {`ìýjio?Xhoš%LÀ=¹+}èKÛcÔL·B÷+;ØÄ1Åĺ†ÓDBû,¿­üvs°ú'Ÿ’˜ïVR ¼JfùÞœ˜ù~©ëùáR{WÔÌÇ4ìZU~UÃ)ë »•´WÁ«óÊ)y>£äó§”Q°«‘Ú@[J¸=êV·P}êîf׌±#cïÈHÙ«ý˜Ë¶qâ-‚Y>W²Ö¿°5„ºæUP Ÿ×ÛÆ(YëØäå^ØY¿ŒV·´·ù-l»Œ^d›¤äxÔ|¸Wôgëãô‚…^Ô•åA| +à4$Ðõ¢D[¹”€Ý5|˜GÉ­uÎ0Š +Z¡[É(]&$;g˜¥Q³˜Ÿçâ–ß”}g©=íœB\_F^ñ«)E.ÀSkÓÜʹw¤¤ø]¿’[€žÝ„\ðÉ?Þ[YÕ {†î‡Qâ½ÔÖêÐl ǯ"—˜ðC+11j—ù´ƒ¥¶Î ¡;ÿš”â’²«—:í-ònYÓuûXÍ/Ž È…Áú+n9¦pÔš ¾™Ô³1“˜¾´’O…MwÉ0·6ÞÁ/Î>,þÛò[ÈE—”ZæU‹I³½”â6øõOÞ1 +/ú즰Š\2‚€óB@ÛnÒW)¡YÑ&À¬o°W÷­Íüøb«$bÒ訟9·5Tyjo©íÞ†Š^#}T~©fÒÀxàîÏ ˆS[ˆµwÕ'U…]Â- Þ<>äD^ÌÒÌ.4óAMiþÇ–¨->G¬¶AÎíu°.éϳ`^-£&ÑN¯Á®Âë↵TâÒÛê; ¯ª~Ž/‰ù±%5ñYhõv2ÕØ=háà“¼‹Ï‰ù[£”<¯†‡ÿ°Ñ=_BFV£}š”µ9NÉØ™¡‡çÙøß¶›ŽsUÑs“an…µø¬çûF.n3B‰XQ‹ìãĬÄ5}n.Û6¹Ò’KÃ&Ò£Â\Óì2ÛæÖ›Êï6ÎÄf)û ÔºC+3k?¬ðé{ |"`L\@%€yŒ +‡”’çVðÜ3ÜZðû°¸QˆûÈ'*nÝÊ›†‹ÎILVØÈ††Ì¹Ñ½ä‘!®5Ø47QQ êHMtNDŽYxXÀPyã͘ ñ+8u¶aâ}£ö~ý¡Ô?Ëg¬ /ïȈÅ›ëh[Ûîz”ôZMwÑ õÝüÀØlô«Ää¥>Äùíqr^ba×4§.òxt¶™³ô¤ê¨øv’öùêx.è›ê…7UߨÇÑw¢:j×("íYøÄ÷Ë"þûU±dGÁªYí§fE>âmã„[¾Äñ~-Ðpðó"¨a÷ü&>Æ¥aօ滞ï.t>ˆ¹È¨Ž\Ò`2·š’\S¬º¨©½ew±ó¡Cj¢‘GØ]ly°)#¨ƒß +™ðù‘YR©S޼½%¥@" ]/€îºYäá÷—ノ„D”P¸üºêÂꛊ ÔËzýîw–W…—~³·< +-éàAÛ_“tÇ­BöþФm×*à»øê¹—Õ§çžÕþ°#%ì/‹ùòîâŸ6Æšrbòƒ•Oûm‰ ++ÈMÖׂ>VÚ)^éwÿ-ªá£FFý®™QÒr·FëN¹g0i!Ðf>.<ËEÿëÂvƒ[…ÉpNÃR-̦ø\b xZ>èÿ|À³åŽ)r‘GF+}¿ÈņõØl¢á¢K½|j؇!kä’FŒsÏóRÌMŸš qÊAR +#€³A^EygØ‹/¡wƱ™½vo‘…¹ óà;J£k¡8U-Ç·x³—tKÕ‘ÿ¥m¸ö‚†Xàœ¤¸T‚ÆME3re¼¹qk\ ª¸pç!Ýú¦ñÌêâ +ø.”ÏÐLÝ–3жåÜ*·òè÷·cnõƒŽ€¡•iŸDß2?­üÎ=M+‹›©qk³ÐžXŸXΩñÛÄÙVAâ¾bûîözoÝ)À*>Ä7Ã!e—ÔŠ[Ê*«™U¾bþöòÖææÚÖ0>% äC#Z Ù1JÉ^~ 9³Þ½TòB|¶_…ÉsÊ`ö)R¶GÛ!;[íR|æò»ò½2JWÆ®r3~³ðiÖîöøfEŒíiFQ`¶½Ù?Ûý 0×ý(`n8d¤¼¹çç­ïjÓÃ:Å1%AϽ \Üᔹå¬[N(ˆèñ9.ÛúúÓ´°ð³úÏžCnlOÐófºË?:8?¨c!lÃÈ[ÞiB~@G*÷é)n ³Ò¯må…æÚÛmRz±m’”_’´î.JÄáY!3¨g`BZJU@茘ø¸ÝåcqkçãCk[÷á¢Xt° b‡4lÄ $DA¿úÕ„Òµ~诎‰- +Y¶ihr@‹-òë™pÀÎä°¹¥98÷d"²ø`08ÏcÌ”ª½Åö»~³rùUÍÏÓÜ[ÿjèÈý«þnÞ¹•žŠÌƒeýïöö×>³¼zê`½ãEpN@vLSKÖ‡7æ^Uþ´6Ëò©H@‡ÖÆÌ\ÔT[Þ×ËÐôý%>uo–ñ ×\Ô¶ä~ùzí_›«®}r•zä +bärŸŽ^ÔÓ€v!fEôÀò\äÖþ¶CŠOsMQ2}rVùÞ¼öë2Ÿþa‰ƒ‹™u>%­Ø7éŒø¨¸QL +*9u1Ò°"6rw–‡hÙu!êQ1@q«Ã:.4”WÇ®ŒáožÕÿä•ÓJöÌ|¼ä䘾•3‰{RÊBFlf@‡ÍH0¨§¥a#îÖp³°Šƒj!ʧdCBRÁü³Šój~¼ñ{¨%DŸ¶Ô¶P‚:= ºÙÌB†M„—‘â,5s±óÝOB¦ûOw°B$¨sX ÝK½3ØŒõªKKorOxAƒzÒ]îzáÔ 0‰úX‹è™b7ø¦è%Þ)\†KŠœDÈ +k$Ô ®û®cœžoÆ%Ï>¬ønñqÕw@ßçF´Œê0Èamb ‰ ži!,jh¦Gt\èÎ2uáyþWóÏò¾ªðÝ…îç±ùÖ¿Ž ñªø±Mt/+f¤WûeM©!­ÊÆ`Ð($í­Üëùú×Ô& ˜»ºüz§ •øf@ûiYPdzdsˆ™í“7cm㜲վêïl£õ¿l ¡¯l3óí£ü:¿Œ *ùÈ­qzîâ[LRP+怘 lÀ“ì£Ä4¯šQ±°‘{+"aÌr÷IÐÔ&Úzp{wãþàt’]JÉq) y{stø‡%!ÿŒ›øB{gÔØÂ:´v={Ú/¤çcA¬ói>ž{¹ãÛ{U h|¡µco¹ín|IÀÞ[ê|—#s|b|G˜y䨱~±hg¦éjĉs‚œaÃÝÚ™¢Õ‡u|Ú¯K-÷þ¹ÉáÅ̘2ûµt¹Ÿš¶ÔKKï½txH ÍŠ}jVÓþ¢ ý·U¡À?êqNþÆßÙG&õÌÆ„~ hÇï ׆·—‡ U3lÐÜÒ¶b=d täü0ç[ï$‚øœd“³ÖÙè­ûÉ5Ôt-ªÆ•.òï—%¢÷+ñîçZ×7 OòË0©%>-¢eVíy¨(ˆçˆÛœ³7/¢ïÍ‹é#â×às|ZN½W-Áùµ<÷L'#¨¡£F!Þr¶OÅ®éØõQ#¹kS`¼›_•ü0Å»ò¯æŽœ¿„ TãÙð –÷ª¹0—œ[ãšBvƨ¹Ö§¥ßÛÀ¾ºÇð·B3¬ŠàÔø,Ÿ¾» fGæùŸêZfMØL,õªë®ygªÎØÇêÏ„ ìšÛ$1ÓƒW.%½zá]åÏ+}g]Rø¸™Þx²ÔÖë0îÚ¶”YX­Ã¯æ7Y^BN/½,û)¦#—훹谖³M ó–û@›Ó]Ê6šO%l²M³g: ¾˜eÿ»kœ–Q‚º5gŸ±g£F>ʧ¢Ul UœÛì/ÿÑ-…_Ír1±¹û¯Â¦Îv¿V€ +\æU$¶qe¤6údЬ +X‰U¹9Í, ϵµzÀ˜[é'ÞR´×ÿd}ÚðsDºŸ£TXE¼€^LÚ‘±J}ê’GÙÅñj:¹Û„ô¹§å_›•a~\þ%Ëu{ómQK3oo©Y°;÷1ˆÛ‡ëBN|™…²Ór|j&bn—ì&âÙ*¹ëÓps¢!öVº{÷WZºÞ¯ðÙŽiTþüÓÚ_âzÈEí÷cfÉý°QÈðªÛèac»(bjmÙ_jnùm«õ!X?È¥-§ñýjssdžKðèµ@«–øU´Ê½æý—º¿@o +ëÈ•›C°³®i\ƇՖû~ ½ve þÔjoÅ/Û#ˆ4à#ðgëîl÷ã¾³Û b)°(luõ€x¥$î;a–~a¾ºcu×H‡† ,Jd–ÞžÀ${4¬š wM¢n[_•o|œù9ئvw–X5âs# žî›ÄÃùVñþ|{‹OÇiXè…žÔ?,ü³¶3íß—_|ý~‘Oþ°"‘¼_•4ïZ¸èÄýËQ5UÓJ}rØUÛäÒöü²[NÊ +éY5–E¼+Í¢=‹6&î€^q+¨~ Í÷,^Ü"áîY@|¶y•êýíWP +ÃJiPM¯ñ¨Ø5ëc¸Ì¥^èQ\v|Ž ³OA¯/÷ÕübK¬õ-6z”LÇ»bõ êvpŠR˜"çm¼«»¨]ÿ|£§âÔ®Y@Ú]lï +[îÞ÷ê[èv!{c¼þªwWâ‘¢o¹¥¨›.:g{›ãRKÈ^]+7:×*ܳ6s×0®öÂ’¶‡±Y. C: +£” +‡ Ç­`–ÇMDÜD¯ó*°é /о\x^òƒ{q3¬£WùtÍDç ¿nkŒU`í¡Ü±<…ŸrŽî,<­üEÛ^ðƒ©»àsÐÜ{fÞ¯åÔ-Â..¼,=V#s÷æˆåîb±KF­ð+9€ª…ÐÝ»Ô 0N)æÎüÓ’o¦ùÉØ„\OÌ?6q~ø±Ð1É­´ ‹V_“S<Ò¦+ÑYTFÄD*‰™EÔÈ={‹m­€:CsÍ,û ¹1H-´n;¥¨Äñ¾Ä1«<·–X°¿"`ï/u<ˆZD¬ð»)6/buBŒWÉ®÷ȨeN)!Ë«ÁåíÎóÈ+/ã«'mJf•WC¯Š˜8ؘ‰ƒrŽc³,Ïk®—^ØžÀ—ø4÷ﺕË[|îÒ@Sê‡Í®ž€Q€O¬#{`\bBWmW1 )±ùîñùön¿†Tì”!RSMל2Ô€ugßJi8\c]jDŠ}qhyöÁj׫Ä3ñÙÄùNr•_M);Xbã×DâýõŽç³€°-ç×=SQ³jüSM·çîg9Ó’öçåÞª3; +"й\èæ(9Ïp¿æëÕ^ømç4ªìÐÒÌÞ³ÐëýJ A&IQ¶g’0÷æÚ%>ºÐ½f~ƒºlyUwôçßÖ8äÃ%öÀÊ#FŒØÁÜÝ{»ºFTèpŽCί½­?eïG] Èɹ !çÀÌ‚íÍó‰±Y>fwNHÙš/¨%ºgQ#¶8>GocR² ´~H'ĺd€oíƒg¶Ï€¸ÌìR1 °a#™8ÿèœÆä€þ̬XcŸºXÊ,sNóêCª6Fâž·…gŸT­ÅŸMЮýÁ9KýrèáR{wÐÔÕ±:Á«vÌðêƒúffè G öqØåíñ†‹öidZÄr÷qØÒõÀ£ãaÃ&Õ)¡v&Ùå­Ò0ªw¦š®¸d¨d¯Šc/¬eÕ”„L¯‚»=ŠJ‹hh5‰ã<>9<Å j„s†[å +j·'ø•}ø« Oà?K…¹”ò²>_{U{.n"—ï[ØŸšRdŸ&¤þk iñ…9„ºæ‡]˜È5{‹Lìž•I +Ï2š¶ANÝšD݌΋y¶=¾îœÂÜ *È¥»ó4øo›|Á‡5Q›ÏÈ¡Û4ÔÒļ`v‚qÛ´Ö¿<÷¬æâj?$-¬ºI×,\Áe™^5œYÇn]}Zt"¨&ÇçäƒÅ¶ö˜‰‹Øš„]Y|Wð…WZw!¦'æ˜Ùð}‹Ôñ}‰ûÀ8ñƒýñËÑ©ÎI“RR¦[N+ôiØu1s 02'f`ü*zÙj/â‚GNÎÛvgÅTÓÈÆnìùw‚ +ßèUJ…m´ò‚s’âVˆÑ™ !¢oD ’­IvÐÜ}«H¸¿$àì-ñi@—q|F6bi•äžÂÖ ª¶šo¶z±i±„ÆSÓªö,\|¢>Æ-Bªcœ|Ç+'çìÎò±Qƒ“`u÷&Õ>Òx0JvèÀE4JBØg-÷ËÖùµþÌ/ÇeéïÝþb{¨òÌÎ") cÔ ­‚ J®wš ‰h„ĈZ€Y‹¾9ÎÏþ^&Éýqe€r{ øàÒñ‘v)1Óò¤êÇŠT73ö˜ˆÃE6Ö%EdšWü¸ò—1KÑE1':Ï‚‡´ÄBЦ·B +BbGÄP'ãs]ÎNÝê90ѯÄe†uÈLÏ 4U{ÿΗ¶ X²OC­öëéP ½D-½Â­&æ„Lôš¨‘ \ + ›@2"î¸f7cùpµ»ÔáV’Zt° d}X°#ZRåâãÚ³›¯ÊN¬¼)þÞ«ÄæýºÞúøÃFû³€–wLR‹@?Ví™XQ æ‘£ mµ)ŽI쯆Z_li?Xê|ºÇ ÚÍ«&•Çç9XФ>)ìÚ®‰Z±ð0¡y>.º dî‚> ØM~ ¹r…'ZQr¸BGZi·ŠV¼1J¹ãQpÃFõ`¹óYÜ*âz@Nß‘‘³Ý +z¨ëÈè¼€¾8¿V³ëßÚxûZæ=Ð…`!1!'bÂdئÏG@}r+Ù5.9³Ø«¢—~Xáþ¹Íã~Ød`âó´û2y«y)(gÕ„B¤wšZä›Áe/¼ªøAÝ’ýùæ›ú³@?7¾·‚ý6òw°>­Ô²ë÷Ìôêz% ¬=çS oz̲€VŒs*ù€W˜•ÛãÐóšÎ¬?¬¿…œòN%î‹ãƒ\(îÏ3‘€_köš9{#¬!n•œ\z—ÿ¥mp#0ÝŠ ¨ºE}3)˜¨©2zyT-À:+œÈëîib–WÁox¿r÷õáJûÃ8ˆ£™ ‹YØðÝ ¾ÞÓqPAµÔ1¸NF)þm¥¹52Ë„ì[y¤ƒe.1¨gÕTÉ)[&¦¸§©®IRÞ‡ù«"Á{+ŸáùÄ;Ã( ©Û¹qc‡x}€”¢joøv‚Wò9Ð’Wã¦6þþBkKtNDÝ–³{`IáÄqÀzÛˆk#ç6‡¡çíãÈ[qsûÝèÂsed®™çUÒŠy$®ç6äWlCEß.¿ÊùðÐÀÍ‘YˆÀÕ¦f–[I-öihÑYãpµõîájû“(`g›·w¦É9£˜™å㬽ðóa3Ÿø÷ÍæŽßV8 _2`ÿ\‹ß/³I î´MaR¶&I™K}H/h%1ûažZý+LÌl0 ±YTîòÛÊï—zÐIƒ€â7i˜k3­ù_³’ÿh}]{)jà`]onÿmCÔeÃs +ì/¨ï—„\Àfù½Ä“¿3´Ýþ*(Çæü¶.¼ß·º•¸¢åº“Q‹@ðÞþHÿ›½£'d ÖkEIT5gnK\¿¤f”‡\$hßT§”Y¹¿(b¾_æ‘€Æ-Û5Õ§¯÷fþô÷Óïì5§½ÓÄŒu`äÂÌœ¦=#«ao–X¸;‹ÍŒê1wbsŒúÍ1â-Û(¿Ö§ºßº¿ØÌþ°Æ!î®*=º¦ä¹•_ºGȹû†Vör?>mJœõUL—¨+ÌòŒ[õÔ¾ýyrÅ®™Xè‘ányåÌ +»Z#@W‡5¤ÜÕþœÏ¬o2ÿ˜˜1là4&®AM_·Éèk£Ä›ÛÃÔ¬_ç9èÿmMÜ›'VyÔÕ¶&ò¿y.éʸyoAÄðÎsW{*N؆«OE•ÌÊC£„±?ßÂ÷èØµÑÙfÚþ|÷ã}k×£ ‰‡±O4œÙ¨>á•á3â¦ÎûåöÑY.jà>¬µÞÝ›çbrBÆú»ªSªöäOæäýÉ4Ìûy6æï ýýFZÅáªóÛVsÇþB‹0X;fd4ìL4^ã$ýÎü(û»}å“2KǜުýÙ%Eß:ñ~®•÷a¾™ãVQж¦p)A½ˆ7‹(1«>¨¥•n 7žÙª?u¸@*{¿Àc•K[÷½Tñ£ZASÜr·‰ZÒ3€îg×ÎK‡ Q Ô}‡œ’ç×ò‘ÑY!ñp±Eïû|¼KE-N\÷Pç3Š]“ð+뽕ßmöCÏî-pqÖ[:öWZ;b "V$q¾UßÁ÷™Ú¸»«OöWÛfrȱ·œ2LjÄЊ™ïÞ v\Áß ›ÛZ×[º|ê¦,CGΧŽaØ¿™0 +í½2AÏÓ¿ ^wLw‰÷­†v÷†T —£%ß[ßf +X0moN">\ëz½4„˘¶3É©¬Úü/]pÜÓM)¶QèEû$úZÔrÐWäü­õÄc輋¤åï+’Ö}ÀpA&×òªàuWÚ§aõÁÞÙ¿·"â%އø§É¥@;ÝûÍÞúô½•GÝŸå4ö(]~‹¾àQ2k€.Zy[óó87é_L²¿¶×]ùM&þÿ/b¨ÿ¿wàÿ+;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9j†òþ±òÿEì§Nå1p¹húHá'§²Š’‘àu5šËÃs>)ÿäòr‡—KÆòÈLš#>q ¼uåÒÕë'.WãÑ´gþsË`£2‘ÌoÖ`Ñ4üÙÀ¦·Á㓺Ä÷¦&¾7›Ãç’*Ñ<ðÆ¾™Ÿù¿½}¦ŽÁ@Óñ¸ß=Þ>qõjòÙO®œÈˆ0ñþ>xJ:qåã?ˆ¼(PÀ[ÂIWN”€5]9Kl_ýÉÅ”ÔÔä))7“OÐ/®Ý¸”rã?_—þϯ¯|.ýÛÿ?_Üžñý§ ZrRþ ìÄÅÍùÑ“ÄÿÓ¥^»t-%%鯉¦W¯$¿n$œ%ý¿ýLâ¿ÿûçþûsê‰ë`7’R?îõõ¿ã“S§>îh"nHM¾z5åHÑ¿u\XÔ(¡…4²OÉ«÷̰ëÜj&4ddB÷hõQ¾( $„ôôªÐ,§)j³üZv£CFÌò(¨EÞfyD'ÀìÅÔ¨AÂi„èŽK,™•˜šÖ!@퓌ŠõBžcŒ˜!冤¼¨–\T¡oÇL"rÐðàqÀøð…ÏØÑìQ›ÜRF‘k +wË'M,#€ËË%Q¥7¶°×iŶQVeØÀmò(±™;2Ô ÛXãå ’P²k¡Õ…”„œˆŽ^3óp»sÿIïù×umù¾1z¼ÛÝ·owÛ×ò½¶eÉ–,Y9P$E‰¤˜#"ç*çœ +‰ ˜sID +•sBΨ|rU”Ýýw¼uø>Ôà €:µ÷Zsþæ>û`ë$¨C\µ +ŠÓVAÑÆëÎ#Øœ¤n?h2‘%±É›Q§VDurÄ£hßžâ[n9°û†u*5!.Á:aÖªnKOë9ÛÚl΢NNÀçyÙùÃæËº¿¯=-ý 1Ò|·J« ›–Eº´¼µ‘ÖÃKk>]ÖôÍúPÓÁÕ•Ÿ%'ÚÂg('í:AzN\–±Êj1§šEy*ÜoîJÚLÒø¬‘·=¥jÚ6Þ®.¸žÔ-ªËù”\xqH·²±‰+3V~qf^V“˜_ÍÚ¥Õ¸[XµÏ¿²;Ë9Ÿ†1"ƒJÕª¯š³5Ç/‹5|‡9ÔÌŒSÁJØeTD«Í/˜ÉJ@,ܯ`“ygÖÁ¹„Ìs.à.îÌÉ+ÝÃû5b¯èÄ|’Ä'mI9øW3Na9”3P¨šô©x¹€Q{”0/òvÒ¯âà^•`wž[´=Ǻ€¸d­D@Ö±ÒHßÆÌƒûð¾ùˆÑL„Mæ¤SÃÛµ)Úãô‘;P¨ÏhHB­až[T¨ÿ)åïê&¼z9áSqsa9‹>Îõ‰p¿¬=ÖÊ ø™ŒU\¹Ô\<Ðsêd¹ˆN“-xPÖ‰x8¥˜S™u³¯¤¬œóÛSœ’¹ëå?ï1Ï¥lÝFÜC»Ì<¿ñŠy|w\p÷ÂX†,$gà>a%bcáA5}D¼Ÿ,iW¬³Ž¯OrÏe|*æê։䴴·C¸ RÔ­hO[ÙçSs¬sñyeÓâˆâ*ê±ta‹%1ý7Ýúcv¾íádžÇŒsˆCX–˜U$mŠÄkÖflêöíQöñÕ§M_l·NM·ÅçÅ”MÝ‘uÈGLgÿÍ»é+èÅNÔ¥êHÌ´]{uùýí7åÇœœË¤GÑF¸u<Ì«`½‡k"Âm¬3¸}Ž­!|z æU³úhˆwÇΘ´{Qs?T Q¯†µ ÎE,¹ˆ¹÷B?;$Õ™9I:+©¤Ü²Ê+®ËùÅu”GT‰ÌÉëH—^Š»øè<çrεàQ1©€F@ú´BÒoP’AK/êÑK“6u[Ænàa£‚ë5xD-F! uN÷”´DF¿]n9˜‹šo’‹]7ɨÁ˜‹™¯ÑGñP!½†ôÊZH  u1Ï䂬â\˜S™ö´œH8ÚNÑG·a>5ÍÉ:EU¸_P‘ ñ«rAaMÖÁ¾°=Ùö3bW2ó¾G…ÐÀ < d'¼â+óä®yu©Y{±î»Ð»Z2¢äÑRŸ ¼Ä‚}÷R>5/ëá•d\¼â´GÞ–£f)0†,*h¶~³ðë$ù°ŒñÏ¥,Vð¿šGºÅuØ}ܹ²=ë3›¯NFFÅÌý¨_Ú¾5Õðíædí—[Sõ_§ìÜË‘—õG{_ýÛ¨¢ôS*pǺ;ÉZóYfNÜ÷_{L»²n3e—6d¢ZÔ+mE]Êö\Ä`$Â*º\Xì}–‹ö¿@]–ŒOÍÇÜ*À+ÏG¤dXÊF}¬¢·hw^Þ¼1Z°ôþcQ«ù犌zŵˆKÑ’÷‹ê÷ü¬Ë8ègÊ©fÀ¼°©pï=,hÐçµ&íÜÄ#l@¼üª”‹us²õhð^É'kOØçsÁ[3;o$Å«/;Ç'اr^I}Î#¨Êù%M„GÚ@ù jÒßeƽF9êÖ ²6y=nSµïêOÞº>Ç»d½^ñA|BV‹»€³ìò攓_ššcœ#œÂº‚>ºN¯Ì¸eM[À1o¸'p¨›Ä¤´™“U¡óÂÜI+Ì/Ã<ò,`P.½f Ýmøxý%÷äÒ3þÉ­—üÓ™qYb’{v÷ ûxb‚w.;/®@]’ºèË–›¯øÐŸÝÝàã:< iJÙ'1 œðŠªA¯›rÐ ¯NˆC]`.³rz}?&nCÜÌó©ùö£;ûâä—à í‡´69§¨Ý’”Å'„З‚Ëñ‰ŽcÛ¯¿ŽtþˆÍÉj6†Û¬¿bIŒ‹.n ϦFäÅ+Ïj>s\?ý›Èý’?#Vi-åÒË(ŸA¹N[?¯îØ Z®ça>vgÛYyYòáúhõgñ™Žãñ9þ匓>nGÉ@ò†œO'§m!d2g+ˆ€´ð+™¨[ZOx”y¯†›‡±,øø¥ùóîk=Ÿ*ù¼£ˆ€Z[k9˜œì8¾|ñvA¯ µ‚@-g²&Ô£ .-EÜ¢J x‡k¤¹%ó "¦Ušˆ-Ðýx@ÁÈz ¢ÙÞ¢Þ¼·¨Õæb ý³·Ðû$6šécîÒ󼢂_%Ü‹ª¤…¨RRˆ)ETHÚ–²ñ‹1`ªŒSTA7Iy4¢¼O#$<âZÌÅ8Kù$Íyð›¤]\“²u)qo—1ÐJ裗š…ÿeýÒfħèØ[6ßÊ-hµpQa¹ûanAÔšq°ÎÁWa>~e>*e%]ÂÊ¥7œ_VÆçr¡ž›ïŽDŒ©e¹^G^~9æl8¼5ÖøýÖ8ëPñ 1Ëm"ÜÕG†-×ñеT´ç^ +Æ6ô²ùËÄ ë$åT‚ZYnÑ<˜˜0¥ìÀÜvaIÚÆ9—šm;J¹åà嵘[Ú¸;Ç=¿5-¯MÌ÷“=µIªyæ™øtË¡õ7Ì£»Ó²Š´SÃZ›âœ?,{ŸÆ=P“5;m•TfìàÎÅŒ]P‚»EÕ;ÓŒËÏ; sªöý€ÅBÒGÁ;yÅIçBÊ.¸²5Æ=±=Æ;n;¤jûò¿‹.þ ™00Ð9=+;-,JÏ0Nl‚¾¯¼nø|áYçÉ)Q)èš…÷¥€™IÐÔÙz,=WûmÆZÿmÚÚòcz¶óÄ-oÙ´J¶ÆX§÷#9{aæ­.1Ë8žší<–cžXiùa¼û¿{nÕ|E:Œ²¬C\¹=Þr`ùYÕGËO*>X~\ù—íÖñå7Œ£]ÜÿcñïüžÛ¬%A3r>^)d‚Šä<ûÂŽ•}6a‚橸š?€=Ò6i ­-…°œY€÷ÎEå2(gâ>ðTkÒ}ãî³tÃØ±¯¼ +ªÞ.ªå…˜´36lÏ1Ïl‹KÞ†ºß.ito ˜«ñPj®ñ@rÖÎ:Kúĵ¤_ÁÈ…´Ò\ȨÃüÝýø»ã‚»¯ÀY¨Ó´[Pšr ËÑ ¬Šª„TD#¥¹ ™»ñ€VL… š½ƒñí’Á²· Q5ª\z6¹j™òw÷Q¾ÛTdp,í,,ê´¹•„€1…þ«"|²VÒ§à^5·àïÌC@`#Nq%èÒ1È3—Q°2iã^ÀüUÚ)oMÚÅdP#ÊEzîæc–[ôÑ*{Ëú®Ü‚œE…õÔ’JA,hÔH2Q¨÷n.<0ôvÅ|˜L™vÑœ9,Úu£5õbP}­­2] he#î’ÔfæYgRóœóYï*â5  D¨ï¹ö2ë3¨’ð±¥ç×¹çŸ zsÚÅ+÷?-ûuõ]§ó*ꤑrÉ›)Ÿ 2=ß|lm¤âïkoª>]í^2´ûŸ±YzÞ~(3'*…üX…Ú©U=ðÑùØ«¦¯—žÕþ-RAN—”î@F!<ôQ™ð}.ö%ÄÉ8—¶5^*ÿpu¨õ»¬UÙ†ù5âÍQö/™yquÚšã»=Ñ~dùyË7ÞÛÕ¹Á>ü_gµŸ!ÓÚ¶ä¤ðJj‚y<5Ùy<=ýšážOtþŒÚ¸Åéyæ…¬ƒ_FÔüÔ<¿hg²ãX|ºæ‚y!ieœÜž€>ÓqtþNÑŸ]—>x’vî…¥˜ ²•wqw†s65Ë=ŸšaŸ^}ÓzÐÿ¤öË7ì 8ð\†>îÕ&,OͲÏmŽ6|µü¬òoñ1Ö‰µ×‡oqüÏðͦ£o…A+¹(è@jš ¿KX{äí ÙÍ´®ReÁç;ràYŸ†›´òŠÒsœs(huØ“fǽ¼«TP§Î-«d„ßÒKºûòPŸDPÖz¸WRÀ5ËõŸíL‹óaswIKÁ/jÿo¡¼À*n‹[„ø•¹¨¤­:Iûb¾ÞAԙЧ—fÀ“vçy—’NAIz%á`]„kdì/éÍè+Ýû‹zS!ªQ{©sÀlù˜Á/#îWs7ðE@¯ “ˆhïc2ÌÞ²Vûëš¡Yo¡B’–Œ‹už>*ˆ„ùÍ Ì#©Å€Q(ÈY˜cƦD\¢JÜGw.­O»„å¹°FNEõz*j0äõ†èô|D“‹ÌÔ¢þÏh¢Â}OˆP¼Ÿ±?3õåÁûàÕGA¾"Cô1«â†¬X¸igºó8æV1H¿²²¸uŠ ¶io•wB3æ"Ýw€íÌÈ7—–¿¿sJ›²6Iíî4\×¼Rˆûº¯ÑÇ•á0Ÿ´od!Cgm¿¬¾¾ú—…ÇEÜžl?¶k“ծͪj­·êþæ½Y÷9bS6¥­ÂÒÔ¬¨d{Lt>n+ò¤åËíîÙ½ˆN³9%¸´=%*‚¼Ä_múagªîëÝ™š/SÖ†ñ‰†ˆ•®!p8+t¿å[ÂaRâp}ˆ[P±8Tþ—àݲ?x¯•ýÞÓSñ§Ýç"àa¹ïvéÇCÍ÷¼²6Ê%­Çà:·F›¿[UýéÚ˪OÀNÓŸawJps*;r%‡òËÛ3à›oZX©ûÜïÊûkÏjþÔRGpÈðôÑw©yQIjNP´3Á<¶;Å:‰:…¤WÚˆ¸ †fÅ„W/A²†Ñ–ïý·¯üçÖë¶;#Œ#Ñ{Íß¡Vyû^H§Fifr¨:I—A–÷˜ ”O+J9øÅidhÈ¥ù F¼·`ìÙu‰ëVàg³óÀÁ®~ +ê÷‚÷Ì5É8YEÔŠ„ID»oãAK?h·m†^kÇé ãê€,Ã+¥ÂJA6 l€šü +Yb?j0ÓÇ—ƒ5@ÅoWùõoAÿóA£!²\£BÝ7Pø0×µi§°<ã×ìg.5~-)DåÜ|T#‡<ÁÆ|ÂÌ/ª#ÂcÖ¯B6ÒæÂ]ýDP'#rž© ÓJÌ/k-,©d¹%ä`µ8Ñ(P¿¤ñŠÁ×µrX1ãà_©"€ySAéî,ûtÚ!¸ŠÐšìÓ +3 ñ»³ÌS¤OÖ‰Ã÷SQ“…ŒètDHÆÜ[Öò –[´¿äÌ×òÀ~ù­ŽˆÈ™´Ïì-ÐÉÔEZx–Š@¯DõFðG1”¶¦íâ +:e|òŽ]÷ +dkÞ{T´ïqnÙ|‡¨Åi§ 2nå_A½&sÞßÕ“µÉšÒó0Vàëd䖕Ε´ŽÖƒ¤CT•° +.'¯â“Ü‹Ù9YT Ò^eÇÆ¼°8ð¨ñÓõ—¬„OÅÚbœÌÎK3SÚ¶Ý MÃÊKu鯍±úBðn=v´ù{réòëºÏÓsŒ3˜2 _Üð¨ŒMAŸ§æyWÖ':~Úå]$}zVÝ’š“”oqÎ%&ùW’㼋„UTFÌËj7^7ôÞ(úõ¡¶ÃÐ ˜•w މO°NìŽ5HMµ€·µE€év&¸gH–Üu]O¸5œÔ,ótrºþt¾ùpÎÉæU°’³´¯ˆªQ·ŠG-i4DLo€Ú䓽÷V뵘[–uÔÿuµÍzÙEhPPÍ-,_Ä,wò¡xõ=,„¯=/Ä‚ü"·²•ˆª`E¹°ÙB¯YÒk“ôZ^.¢U¤@?âVáUÜ'¬Ý½ÎGTBÌ+mJ;yWÒYcÓ>ê¾ + Sáž›¹ˆœM„$ÍTDÒJÒÿ†äL,$ïܶÑÇú´DèÆ$™€ ›ÌÀ ÈáõY§¨qÉ[¯I³;Ï8·vœRþÞÛïò®_ÅÞ¤æ ?µÜ€Ï¬KƒÏô:Z¨ÿa.Ú÷”>uø/“2è#ë ‹z#íq¨W+À€Qé#Hµºó‹ð= Zu.¢Sá>ˆ>NÛ÷¢ùÇ‘¾K¿/»oíÅF©h÷ÍlPÜ´5É;»:¢ªØéR‘¡9à,ܧ—#îC)×#oÊýEÖ¥ìÀüZ!6Ɉ© qè8˜Û¬ÁÜÝfÜc‚ŸgŸÛšcŸÞž\$\P ãSì³Ù)y-fïïM͘ù»3Ú–Í)yÙÔÒú«æ;cÌÓ¤K/ö8C:@kýF }$(þ·1ÖôýÚpËÁø´à +å6ªIwwÙ±ª[ »AˆÍ«Zèu¥Ì,ãäêPÉŸwF¾NM²Ocóêöõ‘ö7^5"ÝêÒ°²óìó›Ãe/=¼òÇÔhäjiåÑòPxÍœª…‚L‘™ë<™šªù<;]ýEv¶á f§ó–Š•ƒl¸:ÚüÃÆpûñœ× ÉÌÈÖj" `I3â”ÔåC0&ië.ä8̦f’þžÉYîåÍ— _Äß´Fæ%˜]\9¤y`™)Þ…ä¼K+؇ þÒ¢ût +æã\Ú!©¦'¡w2K)Ð Êíá¿ù†uߢ"](d‚dô¬[ÕI…»o‚>jp·N„»LêÍja“5)»$>Ýü3éÖÊsk(¿Ùœ²KkÒv`mÈ`¨_É*,ZîÀówßÁ<ƒO‰@W4¨2À¬Ì µÐ}oŸ^k[Ðé30NI»¢4÷ æ×åa óá¾G…ÈÀ«\¤«æ€ŒMÕ²;#.ÉM])‡Z¼9¥lN;ú®¥œwFw÷¦RÞ›#hP§I8eSÜó;óŶ»§oá ò®IO´24 @~²)[0wOwbÞ,‹Ï©)ŸQMùõJðuñîHy³‰fÈø,ïBzZR‘qv6†eÅéi¨kÒkTça¬ æ}Üõ«òOâSg¤qå9ó(6gQB難€NNùMzÜgÔ$çU«¯;l¾aü¼9.¼´ü¨ó`fR ™GX™™e_Êyéµ;ƒtÉš—‡ª>Yz\õ7Ì.iNAŽY~ZýñÖ«ºo3SŒs9˜ó‚GÅFás®×X}Òø]rV\¹ü¬å›äçLÎ¥‘ì ¼€ßtÇ%Uëã­“³ì‹E¥›ã‚âœ_#z <5 Î‡5bàsöÆTËáå× _¤¦%åi¯V~ÔöÝæI1fí؃ÏPð•9·^„:äþû%ož}™d^FœªŽÕW¬Ÿ2³FÖa1àt΀ZŽŠ6Ä-®]šl:°3ǹBúún§Ýݽ)§šMø®?&è l¬£# ó£.e'2o–g­7o#=Ÿð)dHÉ#à +NaQ)}»ªÖüºªRbA~uzóšõð2~£ºí µèUyÐØ·‹æA*¤àeÜçi¶%œ&j3ð1§IE×ÖÞRø–¥{W“Ýý »–‰øº-›š~):…غ¹Nž‹*y˜WÖ”tËɨ‚“[Tð‰AúÄòæ”W+Ý5ãaÈJ´÷̬GÙl)£*î4Hã3êÂkÖ‘K?áïê.DLÝ{KuaÑÐ ùŸŸõˆà³ôÝʺ{¯eÜF)êêÍ-tßÍ-ö¿$•è#Ü ‹àÏa½jm¢óÒMö×ÿx€C„¯#ž[x gŠè”y˜ïBȨßk¤ôš–çAÃû¶S»Ž;S¶[O–g,²M›ŽŽÖ~õjÄ)—¢=ð°åsÔ+kE|²æ¬OцÒ÷¥=Z!îéˆ[ÍÒµ qQ!léß[4ö–Ô +<¤â".?ëTw$¬’ʬCݹe—´ºë>Ý7íÇ ÿ-½ÀÙ=„['ÌÌ ¯.<«ú49Ë)^Ÿf\Qœ{´\Ç|]]Y¯’‘v*ZÓNyÃÎŒ¤lõ5ãÈöÿ¼÷Yëá1å¥÷¶_qJöÂFº–¥Ô)âTnM6ôÞ:ù¿–ý³‰ëVaÙÆ‹ö#ļšE¹5‚¬]Xž…<Ÿl?²ô´ì“õg ߇‡ÛO?Ÿx/z«ýâ~ðÚs`|Tp0Èhi›¸29ßö3êä£>IKèaͧy¤åíŠÎH„e,zóÉZ¶§§¶Æ'q—š÷Z•n>Õ°P×ýÌ9À&o¦=09-+w^/ùÐÙsáÃÄÖ¥Õiþå©®ò¿£³Ý +·'È𵡴CÞBûJÆ!ªX›lÿew–_F€f$¬šÎ´]ÇÇ}7Gð@ÿ}ÄgéÏÒÞáU±SsÒŠôœŽ‘²Y´«CÀ’Nh/Ò5¸íüuÅØ}"ÁCüš´»ó$dÏ–”]ÃYãÃÏÕ¢×^R‘a2ÜÿŒŠtߤ½ru[ÆÙvuóJ0‡–ƒÎE„ë0[ÏÝ¢±¶ÏúŒ*Ø +ƒ³>heBT{&:‘sööÐ÷\Èzà?¼¬GÅ+Ðl³¤ÓcOâ.iÛxiÊ¥“ÇÊθ]T†øT<èQø“‰îÓ=¸Ô­æø5~“œ…¾ ö?"€§ Ç g©¨²„‚úEõd¸«osNÇYWVCôC6¹CE»®‘Ñ®¾ü¢Ñ=b(Dõºø§rT{æstÎÒ› öÝß?Eý=×sÑžT¤ÿÍoo—¤Ò/iZxÞòÓâ VIÊ{}hÝÖ£YíÅ]]†|¬÷a>ª3¤l’¦íiîEÜ#®KÏñ‹P¯¤)ÜKkå`Ì ðuÄ­å& —oÏHKÁÃoì-»sK*)|VFr^ÇÈ:õ<ø,í‘5¯L´ñß©ÿ$>)n,ĺ®§AÚi”¼Ó;7äžyU;æÔ°aÎ.«/ý–˜·h6UÛΜ¨8íÖ@fiÈØåõˆCÕ–±éXîÇG^ˆNÿÛêÓöËô:ê¥ó’¨z×Î>¿5ÑqtñqÝ7©IþÕœW+F=^jTvµ`ï6ħåÍ‹C?`6ÈVy+á”6ef…Ŷ۵Ÿë¿ù/³]å?"æI·¸&둵^½¼4™ˆ@Ûéälý÷ɹ¶Ÿ¶^Õü½àä–P1qÇŽyuêô3æR3ÁÚI¯VwòJÖG¿ V£–Íܵò.C-Ö v³";o–¦§T­ÙieKƪn³=mþAZñÅo“ |·éE‹CÜ)*hî1öÓkYè±ÕׂSÙy-óë5i‡^˜våY—†] ïEx…«Ç;.Ün?ø{tF#Ü wßB= +&Tñ0zÈ»}*1Ò)^²Ï¼Pùózåç…èÀk4pc$ã½v?å6B®îêÛ‹™z÷€Ï¯¬9=/)GíêÌ­å‘!qs>¬–RP¨3"Ü÷…ß¿mçœ_›äœŒO)k +¾. ê×~%w/Òs +šŒd¸-‡´vÛ!©Ù˜¯ŒqÎ$*fl”{ +q›ÔD¤ï)m7[²(ã•·%¬¢ÒÅ!Æ‘ u#­™DØr ñõ ½‰ˆ˜{ɰÁhd üåqUÕʘ¬46á¥' w‘±¾§Ô‚¹  endstream endobj 30 0 obj <>stream +÷€÷çÂ:5郬ïÚ± š7æ˜ð@ß#,tוõß÷6aNiÖ%¨ ý +&x¡‡ëG"F#‡û“‘ž»XP΂ëã!ùí’ÎHA†&<Õ^´÷!xr? ^™q+Û¯¸PÞ‘‹j”ûËzÚÏ ô½V,bîIÙõÜ´KËÞž–-Ž4—xÃ9…ÌË롎Xd§¬Ó¤D ÏdÁ£1§–œ—íLÎó”$gÄWQðŽõQ汵猃é9E]Æ!«MÎJË3óЯĬ¢fy˜:5%­ø5¨Uüº QÑMBŽ’R>³²KWʪh‰ÏJ+SVIEbœs’ÍÌÉjp§N¼O³;xýÖxç±ØÃúO×Õ|n;„Ïkût2zo°£"ﵘò¾.cÖ*®ÊZéug^)êhû¥àç”mOÕ}™é'Ò×}wuéQ§N€¸§`~ö•ÂýE {/*ÐkU„ÛbÄÝ7ža®Û£˜wðiÆ¡lÛkùaùEëwѧ‚_|wY'‰ ¹'íÑJ6 ÆÒów^ Î[¯¿¥ñ):w­¿dìsˆ_DùUÄ'iÈ8€ÛÜ=½ˆSÇ£ïÍÆg¤qгµñºïcw*¿Þ÷ëÔyàz¯ê½þ4ë¿þ £ù,Ðñ›L»Sâ«[#œS W)Èþ—I™öö þ¾ÛP¯OÈ@XPÁÄ|’Æ=à BDÚù˜—âs•_àNQ].d@é±q÷õA:ר„{1·‘10'ãâæHõß“3¼b˜æS±0ø|d¬÷¬–„<‡† Ú”WÉ\xÃ: +º¬ÊÁÏ£ÅS.½„ˆ VµRÈHÂBPÉA ¯í΃Îxl$ps’X4ßȆÔÄO￲€guß$Â4wÁÜ¢^½ ó÷Ý»MúÍyqY!Ö};O¿,7sð"Þí½ãW^Qs.Üû0î2*vlf5æ&£×—Œý¹¨ZF†Ô4 `'œ¬KdX«%õ]›.î•ÂbÏýµkSÔ¢å6ÒÒ\(ʺzÀcïç£æî\ÄÜG¯7µj2*ad}œ2à6U‰¨\0õd]jæ1(A õ&¢÷ a^iëÖ ólÜ*,Aè}ON-wkBZ’žSƒ^CM‚ßì…µ9?ûêæxéWËÏ‹ßßxQ÷Js‡]V›¥uÌe”Ò9õªÙôúÆ^HÊ̤m{À‘P–4½fNTŠ;Mòí)EÝö¬¸‚Þ¶1RûÕÖhÃaÔ*iÚ›ºP›° µ K³6`~›ª3;]ñe|¤èÃ䛯ïpÈñT@ÞIxD5˜]X…9åè\jí’¥üòÅ¡âS­Ðüê|PÎÉÓé’5dœj.ÔÖ£\ÌÔO…E˜—qu3/IC. Wä"¦ +j2©1kS·%ÇåÕÙimgfFÕLøøUTXØuËš¯IMkŒ/mÕ1»EÌÁËÚXçÓ³mÇàI" dÓ÷_Q—¢5k•-Ÿf1¼õñÊð7Ü/¨F|¢:‚¾7Jy{ú2Þþ»Ï)Âß2¯àS2)¯´%k×PoH ËD{nQàõDä]=ÝÙ[Ð÷ÂråçWá>ö•½¨°i?"jÂ}¬’¤“s5ãÔ+©´”^ï£ïªÅ„GÜ„¹„Õ¤_Ɇ¼P»cmû êh¤ûv: $ze|‹i5Ù«ˆ ˆ›ˆ ¼ Þ{nRQc7ê“·a^I#áVg¼’­™Žã›sœ XÄÔ/¨¤|¹1…îy€_[õS1ËÍ|¬ïyj•^Ë#£–3ö ]0b˜ƒîý¥ž‡ôzÆÞ¢Vµ¿¤R@ÝÊGØ'¡VÊñ€¹'PòÑ +òFÀ¹ß|ŠéŒ¹•°ªW¬5ß{Ÿä—zË ìWí/ö¿Ö‡¬¥UP½.G_KÔÔCï9@¢†”òdH§Ü[4AÑé·d·¤–^‡ÎßåC  C/§xk¦ýê–vÐ׺c×, 1efuœ}èÁœO܈ºZIÌTµúúò'ññ–è¼ –ô©8˯ÛÀoU”ßl€—1a“VïÌq/&æ:Odœ‚*š5˜ã^~ÕÂHëÌÖmÀ€‰Q·†»3Ñz$ú°ø믪¿Å¢¦\@-ˆO¶ÎÎ3Îæé=zA­tw´üÓøhÕA|žW“ó©ù˜[TŸh¡÷x}šg]ˆ[›¯%ˆæ{¢í<îT°ótÆõÊ;³vI=}Oq+Y0O×S.9°³´e?&éx·íGÜý˜RH†…7órÆ!(ÃÝvjFÝš™Òv¤gEe¸¿ýl>$6Q zßÂN¿m•%ftLÂ=øóÕñIî¥Ä8ï*åш !u‹j³­Gw§šRp̈́רA]Z.áW°0°ˆñ€¤eA£Ø_0XÒY²³´üÉl¦×´÷àU̹ ŒCò¯_Ö<ÖQXP+ò˽/ˆh÷]z}¶Ñé~]R+ß.*o弬³íäî\õ—»sM‡`ü+âvNIʦb“Þ‡ùPÿƒœß¨OÛMI»ºsgNZ»3Û~:ë3hw=&Õ6dK$8ð ¾£V ýH¨í<ý;p¿ŠL$"éœV‹²nqæSrò1C÷þ²ÖH-H˜HHPCƤL|AÐ5ØO†oÛñèmÚO-t Vú^¿]ë+,úɨF…TBòÿï-Iúþ±b¹uDPÒ–‹ò!Ëð«WÇ:'æùňWÖ¾feŸCé} }/¨…þWDÌØMDÕr,,í@CœÚL@ÐYXì¾OFŒf +ƼãÓjwfë;!Kõà ÃDÈh€¾ ëҽџiU¹A Ÿ‰9ŠIäoa^ Ç÷5Ÿ®ÃüžÂ‚δ¿l¾IFuº”‹uqw²ã'`~ 0ê þ*²~æ³Iw×õ‚¿ïÎ^ÐÜ ¹¹}m¸ãpbVTCïO‡|ÊD]õF5âÑk€MýäÍIÈ;6Ö¹Iþ%Ä>x?e5+Ò³šÖ两";%¨ÀœPS ¶§Y'Ó3Œãù¯vjqiˆÍ¤#<–Òo飀×è}Ù(ôic_ÎGã/~1¢¹ð-åЫ a½–ð)Ù¨OÁØ]ËÌKj ŒMÈØE¯Ù„_u*€žüsY!¡¬«)ë,òî2¿ópŠ)Ÿ¬#íÔ?Õûð¹ìä_‘yµtIß÷ë’Þ ~®ˆ»TŒ¸[Ü›d‹;UœTjË&k ]–îœkðYÁß}-ãà—nO¶Ù­ÿ21Ó~÷éÄÛ3ªÆÝie Œ±³Ü݋ʘdt8 kÃýò6„^ï ˜»2>?a“ÔA–ȇ ZŠfË r4ÿjÊË." fö–d¼ü²VŸ…ZAü=7ò‹}C…%­.ëÕb9ó+…ùˆLü–•J`ÊÎ…ñ†/WÆÕ­I÷¤Ý>b±dœ=½iÇ'Y÷!𙞤W'Zµ«ZVç¤eDxàl”ŒXXß,ƒxÈrŒôÒú?H†Õ ÷êSË +K=±˜œŸ ó*3~^iÚÍ)B£ÜrYXíÊ/t]ÏCÝî­ö åV´¦\;Ù?C¯‰Â|‘!+ëì/>û´;+¸ +Y ØZŧ5±SpràÅàï·v&å¶U×ùn-2D.(¬ÏÚgâ3Çž•ÿuãqÓ‘‚ÛdÊ…´Êôá3êòáÞÐÄB ïå7¨P¸Î¬KTyDLDà Ò6øÝw²ÞÁ¹¨ÁÙ™ |Ô²öºý°s òcÏ`Ý7„W£D´~+ÙˆO¯H85ì¬OÅÞuIêv½Š¶m¯¼isV\¶c»y”ò+Yd@#-ÄÔºþ·§—6g„W ”fl²ê\ô-h²Ã×£N“ôYúè{kD¸ÿ ë¹¹QÞ®¤@oVÇ9E‹/ÚÂæ^"¢äí/+%…E…è-}ozI£¢ïCcA­2üµ\Ôh޼Z=J-Œ“ô3#à‘XPXwª²0OHȨۚ“ÖàîkwQßÍQ$Ðw—ÎÁYŸI‹Âua½‡L†Í³,$00„…oYÑP÷1豨V‘ +J[ãóÀã>%—ŒŸÚÅõëÓŠšŒ§ÿ.¡×Þ ++ý£…%ËÝÂr×2¢à½]4 À†HÐ2Üuà‹×F‘°åæ¦CËÝukXdHÞ¹6î…Åí;³œsû‰þ}õkT--„díˆG\›ÝÙš`žÚbÎ%­…ˆV óÅ!!¯`¡;N,lîÏtò,xA^§÷½Ä &z=—–ÅÜziÖ®jEܪħáA²“ôÊZÁSéç/p»Q’µ©ÚÓv)°­ŠCïù'*BgièI9Ñ* +KzÓÞ²±ŒéõdcÔ«ìÀ!kìù J˜«>< S@ÏU oùPW +ú·6Æ>¾<ÔöýæhÛÀÏM„Ç O9TœíiIYz¾¯+míR .äKY[2ÀêDóÁ̼¸*ç4jö#¦®…—õ‡v&Å ¨Ç¬Ëºôè~L­(ĤŒ¬ÈY¬iu\V·ª›éûï¤GÞŒ9ùÏ¹å˜ ØÚ&ªÂí’Úpt>¬•anY}Ÿ‰ +Àõ9uœ¿g€ +öÜÎGÌ×öb*YÚžLïÑîaÒõ…øÍà1Z)â…¼M?Ÿ`Wn3m±Nn%âf]¤ïCæB×_áþþô~­„SRƒãçaœð€ZHß߆9n}—a½Ý=xHÖI¯}îÌŠ«Rpmd@X“õp.§}Â*úùÒgTçƒÝÀµý½Ç)fêÍÁ|î-kàëjAÚ!o<ëø™^“ÿ'dO*¦‚Ü"i!àPsûË:ã?ÖTª_W”ò\PÎÎ…Tâ½%Ó`nÅt£°b¾•[4ß„±ì-wÝÞ_5ßÍ-éLXD#Ý•‚÷¡ž[™€^–öYºÉhÿèã5šòÀä˜ß¨¢BfKrèê͆zo#Á›hhpŒˆvÝD!ÃÒýHÆ’Åñúo7'õܤã©?í¿çJ»€«nÀïëÍ/ƒæ—å£zýü +2÷¤¼\X¨ï! þÔGgy4 iNÚçR6æ%Ô#i|»`ìúç²yðmTc¡‘àAcäï‡àG·ó!µ¨–¶Aq#Fçã¨F•‹™S~Y{*̳xí5ô'ô¦Á@³a´… +ËÙ©9QIbRx1m•V!À¼ôþ}Ü%,OÏrÏ%g—p§ª=1!¾²3Ê=ãÞ ë”À°*zr+ëÖfÒZ¨Æþ‚VE¯e<NÚ­¥ŸsQ.ƒ˜rkx„GÙI_~oÚ&®BÜŠöÝyIÅÚ¸¤h}Ttiwš{wñËRó²¤]T¹=-¼œ˜1r—^qÏ®Žtü”ýÉ‚–§lâÚ=¿A³ç5éH¿œá¸}åýÍ1a]ÚieìzΞßlúÇ¢ùúÛE5ôŠŒIº’˜‘Ðû0Ëp§¨b?¬ü_ÐÓÀ ÷L˜°ú¥6”µãnq æT'g8—«¢1¸þ‚ ^¦_õAv*P¿œ +ð+?§ õÈÛˆ€QOÐ÷DQ‡°6øðÊÁGEïgœ-Ç ÿ^¢èîÕË1O— ‡¼€zµ¢\X¯³«s ÿ›©€ ŠôI Ûkù¸_ÖJó.0!ë‚'‹šÒîÎ3»vÆé\@ޙϢï…×´ãrä­»{«==ÎiðœÍ ÁùÝ1Þ™ÿ»lȽÛ¦“’á¾ÇÔ¢ù“qö–„Íoá•óóËs>QM4›\TI÷—õæ½åîGÀAOàõ(šž[„\C¯ã„¥í9ÈKÈjàqgw7±€çÈ8Àkú°vH¯¢ÂRî—¶§œò¦L¼6p?€„nÏÑž{Yø:R°ð¸ õ±®¢½*ë½3• ¾ÚŽ! ·r‹=O¨cwÖ#mÁCjÕÊé}9d°ï>æ1› +±î[¹p÷-ÄeÒàAµÞ‹AúÄí”<8´‘²öÂj1ðQÿÞòõ™üzß›ÂJ×ݽ˜Fÿ׎ùÄuˆWTEÄ ˜OÔšU·k×ðð@÷í„%«¨$5Ë»˜æžÞbŸÜ‘W¬ /nޱŽfmœ i÷bê:ã–îLsÎx”¾zRóÉÖ8ü¼CÏCœ*úyæ5¤m¬3‰Ù¶£¸GP•œ•Å'%Åy—^ø²hôwBžpIëSÓ¼óÉ Ö/©iÖ Â-ªÚ*!Ÿª•…¨V‰:•íÉQ1j—TíÛ“nIíÎxË¡• Ÿe§¤¤Ó ÝÖ@ö}çO¿FõFÌ!¬LÏtE曽…̾µÜ¤Bï|‡uyvç ç2|ÆÊ,É%…¨ŒAúÅõˆw%1Í»@ š,½O²I˜=Æ*6îÖ$lídzvþUÒ%k¤{'åÕ +¶¦¥e'ÿ*áçAæ”퇔ìœWÞB¸¥õÀÀÞý,*½._Ôë +ôý=Š^o¨¤à³þ +L@ï»!=F°á`Ú>P°ó9·óÿ6*gãNAY|†y*íf](Dü}¿ ®3¶ PÐù¨e0ÓiY$MI˜Ÿ8½‡6YÆ… +Ó>¤ïÊ/ê DHÜLÕ„_TÂ{‘Àþ80D6 WaáÞûà%7r1%/Sð]R+ÒniCXzÛ¦lY]Fܽˆ¯«ggVZ³6Ìü‘ ©øð3»Òóü’]Ȥ¸OÃOÛTmëãò²G8$µÙ9Î9dž{);'¸ºó†Ó´¢VM+áÐ023ª†Ì¬ªiûÞõóÆë–o·F[¦¬¬³i'÷ +â¦×®$u ç Ò+¬¤Ÿ‰Ù£ŸÅñéeôý Ä.kÎûõrÜ­ìÈå Ú¯iBæÅY«ð*|¦â \æV3»QЏÌêøœ¬q*;0§¢%=Ë»§×l‚âµÆ‘QÎñ8ä’ô¼¸,5#ºBÚå ¿”¬}xák¶G;!Vi]!lì*@†¤¼j>2/kDæ„%蜠h÷ çøækоiѕ̬¤<=­nJNiZ0‡º±)›wÆg·ß°Že¬Ü‹¹ ‚‰ÌK*1§²•þÄ žÐ€Vš&H¹Ô,Ô£&ì"ðzÁÕ”{…þ;Ì;½ç÷HêßFäÌ‚_Å‚ëÒ÷Â0¯¤.iç­M2~É8¥Ì_Mƒ{a•÷‰ê©ˆ‚ƒ‡e·¸zÆfõ5ÿ—…œƒËOÇVžJϺzš>ZÕþcô>Y& ú‰Ø˜g0'¯xwZ\ZxÍ9ž™‘Ô@=0vÇg)Ÿšó®€÷Ÿ—×Òl”vˆÓbJÛÌêåòK©9=wkBÓ¼=!¹ +øòîdçO»­“Ö¦ƒ‰ÙÎô×wÆÕ¹€¥xê<ðw3°ÆUпSËYß'Fy'7_2®<íüvûµàÌÆìÒΨªlý…äLèfë'áëMm½âý²5":¿üZrÉÞWó§íÞiÄ&¯Ý⟇>?·þ²óðæ+ö±ø¨èÜîˆðÌ΄àbðAó×îþ†¿$AëI§´Žî³µ¡Ît,>êüzåqËçÈlÇ/È|Û/‰îå)}gbFß sÕ–˜æŸ_b^{Á9²õšsŒ°Éêr.UGœ~–~Rt%5%¾ +ý|:9Öñãö«†/6^4~¹>°=Ò~`í ï’s ä?Öž5|_p+Y™9^Ñ:ý=¯ê>Ûiú¾çP´:;§nÆhBUvÎÈMÎ9ÛSŠêȃ¶/ƒ·?ZxÜöEôQËg›o?åÜò¶<äpèó³é9Q1é•·’>+cS4Poé5¥|P¯"<жBL§¶•d¡þS6iebŽsqu¸ùû7àÑãâ+›ÃÂK+ÏÙ?1”e­Z&hÈùøÿ\|\p~{˜ùÓæË΃±GM_zÚöÍÚÎÙqIé?õáw'fEWâœS;£ôs¤œS¨MÝ‘€Ÿ]jÿÑÑWñAìNËñWÜã+OÚ¾Z~ÒòÅòãÖo¶_1Eï´~±ðsú¤ysT]¸ÍùÞ7ØúéâcæÀž­ˆ]J?;_‰€ÿ§¦¤eëoøg“sôÞ*“ +êT(0=¼;Á8šHLk uÚxÍ8šžC*jQ›¦£ïq¾{6ñ³÷V͇›5¤'9—hGÀ÷Q¯tÄ Aœqr^Õ¼þšw"<Øö·àõ†m¦Ê?ŒŠ.ÿkäf͇iðŽøAbã]ý粨ôrŠRÀì«£Ì#ž»ÕŽÞ¯ûdg„ñS|‚{–~¶‹ ê¤i·º31%¯H@}$§$¥ôßY|Úy r¯ýó¥'Œï—_Š/ ½ˆp‰ë’ÓÌSY;·˜ô‰jQzÏí+Æ+™‡¶^ó.'&ا›¢ ´¿:5#-‡Ú?aý¼3Ì8´ö¼ãÛЭƿyzëÿ¶úTvnå‰êâÂ}Þ¡åœC+9‡ï2¾]&8¾pŸñíÖ÷Øî°ðÜ.äŠìøË„¬l÷ôÊö0ÿäêóöï"k?2_ú픮䷡»-߬=ï<š„ž?¸°:Ä;¶ú‚ûÓƒú7žUü5të®=o>–˜Öv¬*«2VmGbF^³ö’w‚fÂõgÍßdÆ™'³¬Ó ÷*ÿ²ö’ùóÚ+ÁÙQQQb\xis¨ùëÝáÖcm‡GÂO:L¯þfýYû±=ND×ÒòóúÏ×_6}³;Æ8¾;Î<‡¾NLˆ.%'E›¯;dgõ쬵G³3eh_~.>³øHôKì>ë»ð­¦–·}áËLK*¶†9¿N5{ç¡‚w Iÿ z} +j­òÜeÒ§`g’ú´ r›]ËAáûŸ6|¾]û—ÈÍÆO£w[þ½Ûú÷•Ǭƒ;0f»£‚óÙYEò¤hë%ç§­—¬#‘{u¿ý{p á/C¼„Ç MÙÔmÛôóÎÀe©Yöé‘Öï—ž´Œ=hþÜ{½üý1Å©ÿ¨ùh{ˆréQóçk/Ú¾óÖüÅ¡/ý½C_ñ»Ðõ–¿­>ã ?à›Ò5ýqZWó;gwÇið™ø”àâÎûx|”®áçÕ!îÏ›o„Åó7ªN@–lDÒ†­ΉmÚã&Y'–ž6éê­ücàzÝKO绾Þê<‰Û50Žòºõ×쟣Z>ܨÿ0­ÿ µ‰ªrçÓ. kצjY‹ÝkÿjõIû·K?st]}/0Põç!Æ¡Ð=æO#úÒŸâã쫸WNÿ­–NÔ%¨HY;Žm¼¬ÿ|ñ^ùûþÁ+ïm·öÞ®ÿ:9)®$ý:irF\¶ñ¢ùËÅGº¯]~ï•ø§¹ÃüêÿR\þ÷güâ÷î1¯=ç¶|ºÞüÑòÖwÁ–O¦´ÿ}Xpâ-Ün=˜“U$ÆUµÛcʲå§Ü×^tþà½VýGgwÕ´óBxò_ç4e§^ÊŠ’oä¥ËÏGc9CƒÙxTû·å;Um=nûaë9ópèFý_ãfÖÚkØz£(_xÜúE ¿äwîâö”¾ì+yoñQç“ú’?x:/?–‰ÞnùtíYË×/Z¾^}ÖòeàVÓÇvSåuÛfXyÊ8ŽÎêE© eÓî˜äòÆ0÷è³—Ÿ´–ô^+þôwÉæ°¢lé¹øô³ñÊP»6$>»ßô‰ÿZíŸü×jþlë)yÂpñ?v'D¥[PO;o˜G×_1oÛ.?kú:ú ñsï`éû®¾ËŒ=(ÿ(9ͺ@ùtòŒUÕ²õ†{–þ»Ñ[ÍŸ¬>íønƒöȧÌ W¾Ø|Î>™íBmn ±ZÖñ}ônÝGà'ö®’ÿØæÙÕ3¶¦5q—†CgËŒsqxÒj,û­Ó\÷OoÕŸìÆ¢ßù>~À9ÿÔç÷ià´íaî)oOíŸÇ%Eÿ:Ľð¯Ï8þõµ²ô÷‘‡¼c+C‚S›ÍKN +/ÅÇygÒ“ôß~é80g<÷»¥ä¾Ú¿Lh/¼š\‰Ø´ÜíaIQ|Lreåiû7¾Áš?ÍéKcÕ•ÿÖf©ùãýÎ3ÿuBUñÑÒö‰Ô¤ªnûèòÒ“Ö/—îævAV}Øø|žÿ̌ɛ6ÆÍòÀCþñµiIÆÞÓ³1"+÷\«ùë¸è쿌 +/üÛö_þÿćÿÏÂãºS›#5æt'þ{øvùÙyæÙôl'pOóÁôón”‘N-79%-ÍÚõ”]'ŠÜ‰Þe|½S÷×À`ÕËš¿ÍN‹Km×꾫þá÷ÿ%4XuŒt›ô‘'''ÿcíUͧ›/«?‰Þ*~oùaÍ'ˆURy—wì?ãÜ*xsc”{béIó—ÞëWÿà¸üûyã¥ß:º«þ<È8ö¿¯ÕøoÏY§Ã?úÿ8úê·4Û÷VϺË͹uÎ97{æìîÀ@Eéî’PìîEl1) [·çy?Ÿ8¾ÿÈ÷öó‡;¶7×u¾Êûæ<™q·Ä¤ørÒÍ)Næ >òÖ<øæ7þ>,Ü墚“êijz¹é­«Íx1[™òHÍOy8IO¸;º¦äd¾èÁ&ºt…Þ1c¥Ì\gÀrÜXªIs2÷y¨˜qÇþWøQ÷ô¨Pm%2h«ƒ½/cäü`êƒ|Þl¿Ùh.ü «Êz®åg8é[¾räÝRUñ9?úm÷¼m#ĸÍnÄw};ô›¾ò]Îþyg©)õµm”™kê'Å­¶–{˜‡‰QæQL¨yæk,ñÜé/ú¬oÏz7[ï4S™ütµ¸ÒŽõ7 b‚7» žË oVš Þkkr_*¸9.°ÈkCø˜{†Ax¸i¹Xv™æg<’Ò“îMñSžÍÕ¤>_nL}e•øŠ¸ÑN#ħ}9 +`0m¸–V˜úh¾.ë9À¯&h‘w†É!÷Ø_¯J™ oΔÄ,c_‘çN {…žë9n€Öºú¢_ÌT†<0Œ—Eíiˆ9.Ñ +hÐbÔu»î½ÒXüi£ê äKO0ó-ýÏ}Ðfwá7ã6b©¥Ô}V~±ØTôa£a‘PÒÏ}Ö4?áþÎ@™ÏR3Äu©ðÔcÈÐ…Fðç9aÞ«Öb·ãsÍè,ù®dç¼ÓV¹ï âç……o6ºÐ~ó °ÏJvÖ£…ÚüWkm°¯Ó¼¼·Ä¸ÏWæëß;ŒŠÐ‹p×§™ñ÷ª³_¬´¸Ú$¥þ'3ÈÔ©º¤÷H¿+ÚúBw³¨¿ÖMˆTòóÞáža)¨±÷DØ Û;…;#¹Ÿ­ãð¨3m¥ðße{§'ó½‚þó†Š~Gß’ú\ßæ´Ö ~­ï„zª„yžrnû¢}¦a”*PQ»Ænˆçvw±ûj{.àËKCWºáRn†ëBs¡çé . ð"_·Ú²\v:ó>.³>,7~;Upˆ'>Å.¥çšÇÙ†atðöÄcµ5ïí|uÖ me£ùªÄLJ*BöÆ äëJKé—¥z\àL%Ôu±òvµ©äÓj+Ò{˜›ç’íë|AJMð>±JV:á?dì ¿d쀿äÌðëBäM}äÓd5ømQìçëe>.mã¤4#åž~EIº¡å'Þ•’#n‰ ¡w·z +½8€[°àWæxÅÑÿÎq©V Ôo³§àãBmös5éN<ìÊTEúÓaf†S^ÐÇKÓì¬O†!D¸Jñr¶2ëÃ\eú‹~tèu`».w–|¼°Þúf€ò¡ãlEG‡0€¶”xØðXiÉ~©bÇÞBø^î„x\T±£œZ1qO;1I,ÅmtÂ~lt”~6Â~ìô—_l‚¸ö#ü¯öC}®^ÛMßýèlÈ®ˆjD‡YFQÁç¿Sû­FÅÿ™A%¬v¥˜d$8[Æ8Ó=c£°Ø\ôi­­ÈÝÐ[î³Õ ÷‘ñR^aã]¯âÞ;Æ ‰nø-meô£…ºŒWbü¯{sáO̽ñ†î4_«¸6vuHñé [,yr±òaŸpsuu’–xÏ1Væç˜DFJ*ãÞß^Ûî'¥êš`ß©•1M}%¾Ærß•–ü·+Mà·]%_—Û Þ+m%¾‡ +Î&açþË-Ù¯ômÙoFI1w…9Þ—¥¬çfl̳DŒ“à™ Óèj +_ÍUg¾˜ ÆÝ«Ë¼J‰÷º0ÛïÚ€‰{‡Šúzø8Oí"LâŒz䫤Èg¥-êᬠø–šq­§Ä·™ô’“ÿëñT*Æ,b`»CùŸ½9VÛÒ>‰ßoèÛ2ÜU$ðzW©ßj}ÎÛ~HÄFoq”eös»üÎ0ó™o,ú@Oúv¥¾0Üùp’YhK:à…cª“ž-צ¿0öC<Uˆ(£¸ì§ Äÿ.:ÁíÊr/$Ô øè¥Ú¼WkõÙ.+õ)NRrÈ]»s0É*·NÐòöìrë$µ=Œ 2êçÙê¬çS¬Ø;‹Â¸û›¯íÓØIe³ÅftüîH#m«•ºØTøvº*ã…”ýZ^y3HH~¿ÑŽÌ:U Ùë½Ä(mCêó¹†D§¥æ }sÑÇnŒÿtuÁ;aQÐõH(àU¨`muÞËùª¬«àwjNÜí%aÆóí΢ÏÛå?ø¥Á7©‰ßo/Ö–'ü«ãÒÍc%?6ºŠÝ·º`€?+qS2Sëª ÞôSSŸüúìta”ûq}ÓOŒ¹ÛRôý’zu~­µØïê8Þÿ–i¬ÄYð‘ýå¦M‚Nß(ó^nÉrÖÕg:-4漜©Êt™¤Å=˜f%>7ôÂ~V•„Ým.ô—˜¬«¿tËið\úöü÷3ÂÔ§}ð7ääÀGëݹžƒ”ˆç»C¨Ôÿ,jöäø4 M@æ 8”•+Ê‚­âÂosõàSu°@)/ïË®ˆ +ÞîGÿÜì,ö4”û™‡á«€GS°’­·Bƒ¬cĤiV̽nèOÓ0)m³ ¼7üó¤’ÿÑÀvqIÀJ{êë½Ìä·¥ÎrÏõd€œ•í4AI}°Úÿî@ + 9˜FÆ©Ò>Q’Ý®­µá#g„¥bRÂm'Ái«½À Àsèv?*t_‚MØ£ct ™oW:ò½mNéV%z«á³ÙWüm³§ðñeAê꬯ë=e¡]ä¤w]øøWÆQ\´’—í"¡$Ý•ÑîMP“žŒR^Ò2<ºËCŠc¾Þ |ýÔ {ú{†V¶wÞðsúÎì×«Í N+‰¯6;Œ!'¤³ün¦ù½¾8ÎÍ 2P’†ût®2ÀQô}#àÖéÇ]C?ØÇ.GÇ‘£žj*³ÜþÖ±°tt¤m5_æ´ÔóFÎJxLŒ|w±£$äéB4X)Èý|8MEØÇq€bt¤UT<[—ñº|«þhk7)(ò ä³u”z @¥Ù¤%a[ý…ŸS]æ3^9&©E‹ðŸK]%ßíÔìÝQBÒNOágó ØÝ&*úf²íROI€EÄÆîÉëxÛƒìÌ…Ä— fºS/"âú|eîË}1>柹 +ÊÙŒ€µ+âBŒ£Èz/:h¥=÷ÍrCÚ35'뉘w³|Yßñ6Žâ“4ÂÂ×ÄÈínÒ¯˜ÏåQlè-mUæó¹º<À÷g;éÛËý&XГiÌÐõ¶“³vÇ©9«-W]eÖ3%+ý‰”šöPBÎxµÞŒüeá—.¶`ÎU}ä¼Ôð’è*Ó[ú!ßìrRúlKy°®¥8àPÅ(ßAëû ÞÛãø«ŠVªBLs3Ïò²Ÿ­·Â¼4‚ôgsÂ̦arÒbs™çfÂÇ2Œ · #š‘Á»#¤Âc% íPÑJx%~€\üïreÃþ4!ÇdÞ}&nOŠŠ8˜DG)ðÉv 9]× Tðó>íIÙMMÞûalà55/ìîÎ@Ú+7ìöLEò#C'Ü_è 'Ùí¦¡‘ñgŽC8!ƒ§Ðñ6 Ä»+ùí¼ àÆzGæ‡ß6ðð¹³u…owFð‘ó àW*VÒ=í×nÌ»Ý8ÿ‡³µI.Ë͹oVû±‰BÈχcÔTÏ£I6þ@BJ86Õ.)0 ¤ylwç¸-Ô&?Ùè(üjf¦×Áb+jò}“„T‹4ߘë¾Ñ•ýÅ8Tì³Õ›ë®«My±ÐYì7L{¬­Öw#wÑá [ìÉiE#ˆPEUž›˜•ñÀaÞž‚’k“Q²÷”ÌÒ-à,·º \ÍÃ¥ß~z¿ÔVè¡k/ü:Óž¶9†Ê1ãßji/ ÝE¾–áÒ=4îx +9QcÓ,â¿1JØ­ÎÒã)Z±MŒ +7–}Ÿ$=˜æ¦>šâ¦>‘²£^†ŠÂU5¹~¼<ÿ›ëÃx¨y²øß­öB7 /þñpyÐ_ÃØÈ‡s 9îv»¬¬€ë¨Olòá 6o{0ÝÕ4Š·Ž1 ä˜#%¾32Ž¡¢ +N¹i»;Xê½ÜõF'L}pÿŸ9&â@EÉ5Œb–:ñþ‡ªþ¾’‹Ý¡"öοk;Ràu8]øÓ!/ñ7¼x2˧›€Ü»ÜA [nÄú¯µ"¾/Öå½?ÿ‹±¿Ìg±9ÿãZ7Ô[?HŒ–Öz `âo-Õ{X†p‘»£Øã0VRKç ^Yòó¡\I9Uò©mùï—ꓞª8awÅ´€û[}¹îûe¡û„´õAL$x²6/boŠR¨mÈû8DŠx*ãÆ½[lÉü°ÜšúÖ.Aüšk/ðqâ^Ø&ñ¿úôcýnÊ™Á׺ó>m–øl •|·ŠáæQ\mÌ¿Xé,õ›ë„ù6a¢îà’ ýì\‹ˆ•7ß\òy‚“øẌ~0W›ò~³ìc( Ú—‘36†°¿´-…,¨E„ŒXlNt!Þ`Æ<îB\íAÞÚè"¦NÔ¢|Ë"oNñÁÞÇJ +ü÷|ª&äڥȘµ°ëjwÊëóµþÖQK-¸»”Ý›®bnPRf*³^ŒÝ’Ðã^N0¢žt"¼¯ˆè!æÚK½Ú ‘%ÌØç†~dìî(>ØkÈɳì@A)Úx[°˜}5¼¯P cô}7: +ÈÑþ;`S9*v_‚ŽÞê-ó1 –‡šF0‘ö &Äú@É‚Íð6%£tkùË®­isÌ6; èvoéW]cÖKMuƋŖÂ/v)ÐÉ•0奌÷È!#BvÇ)YÛ}Pß…†4—å–ÜO[#øèQj¦mB€3R2—[J¿Q ÎRrlÒù=†õnðçiaòkiEô³±?ÍDîNR +–zÊJ.Þ®`ÃL"t”¾ üm§¯ðËö@¾§EŽˆÚÓR Àä‡à!{d¹ݟÿCÉ‹s%‡Ü‘ÐP›þêXÅBÏTñlJÙ>YMjµÜ*!$luA¿èrÝfZ ¾kCØèÕ^tÄß˼] &e££ìërKùgÃ:¦À$[åèd³oabºXéÞœÜï÷M#Ò±®y̪©• ÈÆ("pµêëPXYàrÖE„´0×G jXTÀÞLu³QÎÁè»K¿®væ½ßÈ|»Ô‘üR×”üéï%nÕÉ<¯zÈGv6õd®ªæ@Í'ï)8e{2f‘y„’´3@Š\éŇ´bžOÓa߃ S?7w­ë»Ñ† 0tã#-#Äd‡’SfÕ°P‹@æü©ï¡ŒYj§ƒítÈŠ°MÒòlr|Šqb&DF™é­¨ØÛjAÑÇÍv¬ÿn?1Î6LË6² õ=ä­ò~£ eš W‰±ÓÕ…¯•U_V;ÐÑöq&ü†Ï°Ž##·{ò½VÚ2^¯t}Ù“óP;ýˆÀùº4—1Rì3)-ý•Š þ¾Ü2“3Ê*ûX_uw¹ ›ûïBUÝùý"ëX‘×ÎP‘çæpyÄ®›r6C-9RáÒšÓÞnvђ̲Îj=YÍËsxüI?&òá89ö‰”‘úq±®mÅüäF<¬É¹÷÷¬€µ'Ç\^hA|Öz +¾¥°»š\nW³»2fe‚>¯ƒƒI6ðÂ>öÑ"ßÝ‘‚oËM NsµÑÏblú‘JÈXé¦FÐw³Ÿ”q dzÍ*3Kpqf9&Ö¬ÀÆ;fieöÅÚ.“º¡Å4Y7Ž“R7úË CÈ(Ç$¥è¼²q ²5õÝîGDª¸]]‰ûR]þ}S‘—¡›}¬® :TŒ²å^x”ª*í•YLÉ<ÖVUè|‹·3 ý±Øö˜ªI~¿Ðžå8M†üþmWJÊÕ6ƒßŸj…µ;€¦®uÂ}Ôü¬¦¾Ò€Ý1dÆ¾Š…?˜© :&…Þóäô¢Þ"¯)nì])#ú¾”ã<×êf“–Æž÷x;¯{Ã)Ý.¯eZ'¼Š))úöR÷qü¯*nôýõÞÝ8I̱¨¿WxÂãy.G?Šá?Õ¤® +ZŸlõ\/‚Å%e1¦ t–UŽÏ?[ä°JÙ\gþ'Ë$:Î4†MØWÖVìJ«É†QNîR+ʰŠ.2R¹³†…sÕ°ðîb"ܵš÷¤³(ïî8òT/¤E»é Ëm°ëÃðÀ•~è7“„œs5Ç*¯$l‹xÅúZüj>p¥…è»ÑAз0Âgªð_y9¡ûá™fyxSwE†©›™4_O +œ¤ÁÞ¬ò°{¢ü–ˆW¢l@|›oÅ…Ú•uõ›Ã °ð;GJV×~£$=ÜnÏwsŒÑ3×:+Rg8µzŠÿJ-=ØÐZ‘ꨂÚù9óüÊH)šðb†Œv5·ñò,Cì<à ÜÏ6FNÛ“s‰Ž©¶a‡RȰ˩àÅæBw%7噾›¾>ЄÑwUf¯5Qƒ·»*Ák-Üäµ&zØN';aXëöª¿¼øé—øË6Ì/Ùì+÷Ýè+òrLa2g¨”ãź£Åº^‡†KÒ6çYh…xy!Ñ¡dC—ZÊ=–ëó_ïtC<,eÁöQlÆ„Þäu5tÿõ~ÊÞHqoDˆ2öÐ5‚lÀ¦/pØ‹µ}†iaCFÏÝ–Q3, +VÉþtîdš‹ß“³J·‡Ð![%Ÿ÷Æñ±'J6Ì,æ·”¥Üè¥ß_¨"F¶ÕIù„í¾Òú΂ï–qød¾¦ãx¾¦åh®’o›¤['ɹG³<Þ¾†‰;™cb,%!ÛC…~+í`×õ>ˆçæ&¶ó¨ šæ¬áb?û…G²Z¾mT€ØhÁ›ºIQû¢jÌz³x¦ªÐÕ4„‰±ŒaböÔ‚ƒizñ¾¢,N!}&f†ÜÓ÷”LÕVžcdHK­pÏõNbüàñv†Ñ¡›ø0}á×»èÓ³èã|=.LׄôZhškÌø´Ô‘ë}¼Ä©ú³Þ0ù÷ZÍ Q‚Í\ì+ûiQ Øû Í’ã•êÎãe:nSTþkª>ë­®=ûí®sºXÁ;Y¬j°H9¥ÛýÄ„´ Ýf{~kk›­¥Q ­Qo—{Ò>XTȘãEn½²ÚËJž¬&ýè!•þûu+ÏygýÏ›ög…M3©ÈÙSèo²&ÂWi úÓöj˜vé@—<dÜ@×$Å„^`ÇE_¨ÉHý‹}t Ÿt)âÛP´ë»‹MÐÌ °Äg +~¹ÇV?-Ñ,f@ôÝø}îçö ;}¡‹“ =zˆð×mè²ÇÕE×éIÉ—áa }¾_`E‡_榄]ÃGù^ÎüöõBø‡÷ À×N ÷ÏA`· å×:‰f¿|WVMßšàÁt=„Ÿ³–Úª³¦«+BFi¨—=¨‚ûè’'£ŒÛªüe¢ðicQƽ¢0Ÿ‹nÏŸ€^Ý¿ +{÷ò"-9üæ05ÿµºþÐ ÒÁ"³§£ÀM +rÁ\G™—¢&÷Ó¶ˆT| ©â® ÓÓŬÒg2fù«iÜ]ÃCø¨Ø0Ïæ’¸;ô”ÐËÈÈÀ+Ñî."Âü®¢ý¯áÂ}ÿZ¬CÆî+©hû4åÐVз¤¸¸m 2|[ó|Ó/£˜U0ßB +ÔÔ}¤<Š÷8³Ìµ›áÂÏx ùv¥(4à¢ßgЇG÷@Áï^\¤Ä‡>êÀ$¾q²õ½ðìý)Ô1ÍFx6ˆ¨i;"BœcŠ…<Òr¶)röbg±‡Š—ÿb¶å=S…õ­ÌM¼öùvâïsyá{ÿó:91â°îË!ož_Hõú| r§:'öÚö1Á>Å%ئÔm;o½ñs±ì³1 +û¥mƒ{-õ’´íèRAé›VXæ­,ƨ•{¼œ¤k””˜‘.9ݼ +z +¼ݺzóð.(7Àã¯qnaðïE^ãÖ™|Ç4:c¥?ÓKÓç~²D#ïë•&%À%cÄøÝIlܾšZdU²ÊwDô¼õ!R¼¦»ƒ<ž9Þûñøî]Ð_—.^ß¿}¾ NnÔ_Su0Ï-"¬Fį }k4@I-4(¹˜Ù~z˜çÖ€,¾CL‹¿\þëç…ò<,áúôåù#Ðg§' û×n€î]½ zûðèðyB>9_©ƒ†?šm*üdœ@„­{ŘÈÕŽò¯Ëßqì]7©ôa | {¹$,”åóóùÈÃé!èÃû ׇ÷Aoïß=¸qtíòÅÿã¹/ÎÀ¾}vIÁÏó;Rsé'ó‚ʽ.ñHË¥ù£lWFL]À…«°_›‘Q¡#¢.fxyƒ<?}zøøò%(üý{`ßïƒ^Þ½r}òôèæMÐå‹—@/€÷Kúê¢eD>P×al ó â6¡MU#Øä¡ÖÇ詊†ò,ˆsUyÚ=\J8°'!~¹¹‚ÜŸ>}á +zýô¸Þ+W@/÷xõð èÖ•« ·GAå¿‚þ1óßhjsßnôCŽæ¨¨79•Ç+|¡^ÂÈ]ceézð!“5åFÙei0÷ZHö}Tô¯Kñß¾\ø¼‡ PÁÿ|ôt 8Ë@}'|q•†‡\Æ&…Þ^肆še¥Ë\è@%ú] ¥ô!žƒœWp–{¹ :ñ’¿û— OîÞ=ööÕÃÇ Ï_‚~}ö½ŒMɼ׀(=)À.wÀ¿Û§(`›šƒÔW@F«Š•ݵÙõþÕ€~à2b/Âã£.”ÅD]H ò}yùôx…º}ýxÿ8·«Àž<Eý|á—‡ë%BbðƒT²ó8+ÿÓÊ)NÛ… PÖ`¿LÕRL52»P—Füi5÷™›{=ÈÓèêòy÷ôúá#Ð#àsºœùéÉ#óƒ Û]9ߺ +xõT³ šóQ[‡ +Ñ÷QbõýÌD]?GTMõé¦Á+K³®WA oU!Ênc2Ò¯„{~½szzÔ™§ÓcPÀ›÷ ÷AÏî>¹çåüÈ à'Я/î jfÌ9öÎ4ÉÈ7)iàÕAdÐRGág³œ”¦³ó¦{±#µŒïÕhŒSa|ô¥Ÿ_\A?Þ¸€â<¾€ÜŸ?öø:èÎ_Þ=r=¼}ôñ©3(ÊËçb´ç×Ë•àø'Ëí˜ð]%gkûkc²ÔŽöÕµ™¨×ÝtÌK´à.8<ìB’ïP¼—(ê‹'ÈÝù9èöå+ g7nûñôí+èÁí;_Ü…»~¸üýî(+Ëî •긌ƒE.k޳«ÐÍqBÜd]é;y=îk5¼øqAhðåÔoßA‰Ÿ,;X~xõ€ÃçÀ¾?=¼yôX÷§g. —Ÿ\_rƒCþÂ&E=š®#ø­õsÒŒâf¾UY#\î!EÍwSÂgº?ÛÈÅÏ`‰á—C>¿}~îò~õä ìïÃë7\ܽ°x÷úÿ»þWà =^¼¹>wå‡ý¼X]p©wckýg…W½?GGíÎðÈ›²J¢aª¶fMÂGŽp‘oyœkð¸¨K1î¢?{{ãòpy ºyå/Ðó[·÷}úøâ9è p–‰ß|/3Óî aé:Ë‚4™Î3C¬äÑ’ǘî=VÃë!²\ÛѤçÖ!Œö +™\z§("ç&2 rŸœ½?À¨‘Õô–Í÷t·Æ;²J¼ È|¶Ù¡yº¶jm²­à$·Ó«)_º™tO! î\SŽ~Þˆá¸RspÎÅ1Å÷ ¢snáÒ2îbãïÒ’“;‘¯©:Fš~·ÖSê¹5„ 7©*é; +!M?^ƒ_m$iëÊð¤{µ°Ü¢Zal‡°6‚ '½Ãç”>*‹Ï¾^–qÅÇÍôáé} –Ÿ‚\<%x]!¥€Ÿ·!°Þš~ÚR5jGÌÎ7Éhㄹ0È àÉ+ +boˆ9hw1Ÿþ½Ít«&ÒÞPŠPOƒâ.ïz p§ó=€ßÞx€~~ù~1ü{àÅÔ°”‹ yרÐâ×Ãlø—¥vb°MUI1M° ì“lÄ‘š_}ëR˜‘q#ØÛûR˜›(ü[(Èí•èþÍ{ èoÁWàYP'J)Ƶ‡Eÿ1Î¥­ôÕÒÌò†º­qNÁùË$­(7K+Ê6ÆÐù¡zŒªƒ7ZMöª§"_bŠJåF&^Iмäé`ü%P»A÷®ß}tñ¥„Ä]B%Cœ:H±«ÃÕ ³‚Qf–S²öµ<öÑrÃøñаíp©ªiKÅ‚«¿”}Œ˜ném3ÿº¢ è13ë>*=ýnirʽÐïþW}>ºƒ~yû€bü^Œúu%ü‡ß…‚ÔÔë´òbgi=)D?X³HjèY%Á$go1²fZ_t=ÔØµ‰¢¼½"¡ qB¥F_óó¾–rž'5<ðºçÛW oïÜ.gÅå%y_Dæ$_¯Æ@ß r(a ¸AVØW³P6-›¿£lnÞ ÌæD=um¼·ÔK‹œiÁyò`»7«í­°ÍÁNöÖHÙ"­¡ZB¦IÎG$ˆmZȱ͵)­ºêFÓ4¹#g—U|ÜúdlMQ[ž¨Æ,5À4̈ÙNNüÊx§`m´¯J?ÖU±4Ø_í¯‡n÷ScŽ&9°#_vM%cWA[$,¨}¢¾Ú.ï3©êë6å|̶BÈØ’UáW{˜ úAör_}ñTOS‘z¸Ÿ§èí%‰ê›Æõ!]4š[MiÁ½â•´²*u}¸oS4Vï)ë÷”5¼ýiö@ËÁÎò™{Ó•¬µAzÊB'ñ×ú0;{¼ +¶VæÌÈh‹´»µ@Ò.ˆ™ê®ˆšhÆÉƪ]°9„ˆRUÅ<Ü.ø~¼Àá­·èöæhå»JJ®MÃ#oLV”/J*Ë'{+Ó&Ú1Ò–ÚY++TÑ__¦ëdkÆ›°‹"jÂÒ1ra²ÔôµkøT£Œ‹Zî†ÿ0Œ"~þ½]+Þ×¶Ëæê»lêšJ£²’l¼ÁÎ8!V^Wü­¾8øîŒƒÞ›® Ä„d“eGÿ²*¬NR²ö¦Yˆ°Æ¢b—9TîfÛ$Gs­â“¹úŽ£Ea­qŠ4L’3Ö†›"LÔº› x…¢³¹Jþþt5oOÙÔ.r4CÌ=œ%&qI%£xoº¡yw¢–çPð F%µ)墌²j¦cºŠi“ÒÌCÄè­~|øÚ9z[Ü\±¼ôcÕˆíñZìæ(²ÞO·J¸e‡SÆ®ì|†XeÝÙ\«ìDÛÐë˜b"jFéî$£À$áïŒrò÷§+éûê*¶UÅÅ:Ô55æÉ:þ®²N`³KÖEøÈ .Ò(%§Æ æIt¾“²ÜU¶NöJ÷Wjm³4P«éV%¹À&GFmÝì +Tâï%Ð6ÍÅ›<òÞ\M«u¾¾w]Ýж9ÝÚ³¡êèÙPÔ1‡È‘K#|°^RƒÚQ° +utôÉŸ}¦ã±þ¯Gæ6§ò¼¢uŠœgÓ°qŽÅªZ€óÏû¡ÎûhÈEg::Ò1E/2J˜`y Ü—‰ù4ȇçê•]#:ieÙ²‚š½$£èe°íyßê†á£aÓ®>\¨l;^nÓ-ÕtšU´BÀs±Žæß5œí4³Ü>ÍÃmSÒW{ʽwŒò½Ùº¶µ~t¨®üamöS;ˆ‰ÔOÒ‘†)}G]Åì㥿_Á#M;š6©±2hˆU Þ‡Ød”¬£)â@É.?]à±÷µ,ÜÎh‰Ïö@Þ—ÕŽ”ÚúÔ÷“œp'}W¶ÿÁlUn„K—Ôÿ4(ø£•få±¶J¸§a ô£¥b^ܽÉÊèç»rXæïõªëBm·´ h’ÊÏ{MžÌó‡Z.àȆ¨Þ ÁÅY&IÙÊæ,7)/Úó÷buÇá\cŸC%dìJ ÆÑbo“¨Ìïü{íV¾8J+©ÈõÞFgië:öÕM]Ž©Æ«’ƒZîÈü°ÙSà±3Ø“Óå5¨Xu:sWVI0Ä8Ñq©ç3­ŽgqÙæñ¢ÀÅŽ¨gŽ)\Á‘¶¦Ù2ͧÎtÁýwU,侺²â@]Sw8UÉØSÒK¶F1;’ò°ãy>ÿ`¦Šw®19«tWN+´)è%û`µ,¬UEü ÂÏ4BË<Ô4víÏRÛ"¨ßÆ<Àcò‰Ÿï˜,ý­£¢/ +*k@íSBþéR³ìx¥Alž«í°jë;v55ubž$eXU,èþláx‰þŸíªžó·‡³tÄÑ®à÷:ïxŽ˜oUà“Ô”‚ãÅ +¦MI/Û?Ÿ¶ÎoøŸÕ +î¿ËLÒžŠ”µÚ û¡k*÷²H˜å‡Úêν…êö)j¾c™_w¨¯ÿ£vÿ×z…ð÷2›»?G)[åzìëðEG:aãñ¼°áPW)<]­éj‹sœçé æPÓ·†Á[9ghðQJÁj7âçî81íPË@ï¯VTo{NV«šÍj‘¬)Ùue]¶¿XÛ½%¥‚­RXÄÙ,©äLwÞ³™rÈ‘ñ›}Yþ;ƒ…A‡J±YF/škÊqÑT'=\íÌ~¿7…I¶M"ÓNç¨Øã…ê¶ùaTÚ?ÊÙ¬À"Îôµc691}w›¸)A'.Á£w§HeÇKÜÚÓ:‰qVXÓÃLr6N  ÿ^âr­“„´9Û®ÀÄ툊¾/´%½5HŠ"NרÜC@ßv§XeóÕ­û õ=5gž$¤îN”Ø&J} £…^& ,ò?›‚6›‚ _îbæluÒsOÔu-gº +Úù@›b@ú­õ{¨t ÅîÆ1ZŠia‘`£¶˾ï {;&P‘¿ø[G.úW_!8[ÔÎ0€³ûg‹p1î"fîMS ¶D¨èþ’ð¿—„-GsµM¶IÊ>AÉ4ô•}sˆ0ÑgÓ8›œRµàÃ:p)NÛ½°¨?Z~Å¾ŠƒÜ•±Š€Z-0KpY6%µ|OÍ£îLÖÒ«`ÉÏšËâ½Ì.ˢ࡭*|ŠU‰Œ´)Q1&IYˆQT`™Ä§mH¨‹½¸P³ŒG?^¨<ïÓn‘³a»¤T³¨ÓVôu¹v4]×zî÷§øD«‚QhUQóŒ¨p››x>Ÿvø;yC¾+€íôãY.ïd©²áÏ*‡s¢ÃƒÏt„ÂÓ9J©¾§ÄÓ.g¢~/ÖZ§Øè v‘M#äïN +ÌJ6¨Ï†³y.ó\Gw˜øóùç3»­JBꞟu¤¡”œÍÕ´œÌëžB'm}Ÿk*t3ábOçX¸óY0'ZRþñ,¥øü>ŸIBL?™¯ þ½ÌeåQ&:õXߨü”Ì>M¿™¤%¡‡:bÑÉ2™pºÆåô‚ÍqrúñBe“MÃBŸ…tþÜÅÉ —|pàr4ƒN;˜!ä Ñ$¬œ/¶óç$ø³oVaÓ,*l²u›p4G)9^¬lê®Ï¤âQö4<ÚÙ<‡z6O)=™Áf¬u¥º =¯M "ßžÌP {Ó\âö1Á6y>놊;šG¥ÅåÁúxÐb&ds¶-†…[&‰¹Gól¾†\¸¯­¬Ù›k­Tw­ OWŸ‹‚Z›†ƒ_À„8Tä¼ó™¨†q|Ìñ Ÿu á3´lâÑ|UÇo}ÍøŸ ^ýÞ µØ¡¦/·Î9æúw˜EAÍÿWO£üžBø=ö¿ëü–ÿ]çÖ›&°Zt¸S/<Âåï)AÍÀ?ïO”íå~ÜhIw^ªË|¾Ù^ôÅ8†‰d½çeúÜߥæž*+)4ø³À§Èd«¼Èß4šþþ?:Zù9ßÚ54ÄßkÕ:Ü,Ç&šä¸»—|¨Ægí+°Ù;#è_†~ÉN#Û6FNØ—PR­£ØC?ö§M üY„6@<×»2_šDåA695{s€ã3Š bRêú(:b}±;ÎÉß“²Kö¦˜³œšs޽ӹ¦Á߀¯9ÖVY‘”fœ $n‰1&)¨å*áá— xšM-¬:œ­®9›¡@Î4è„CUI ER´#BïŒÂ-“´]ö§U! ÌÖÔík˜0À׎óù]rlÒÒ*°þLߟÎ×´êªë3¤<› +è¤UwÚ²œÓš˜U"( {¨†/4 ìÍU×ïÞÉv>SE‚3MÀ#3L çQR·†Ð!f15ït®®ë ÈzG3BÞþm—áR·Êý“ôB“ˆ˜0HH¸¿ÑYþ_kµÃÿîGŸ†±^к ý ,p±«ÈëpžÝ[¶l+˜¥F)õ¿Ö„ÿê…ÿ½!hý¯M^ë¡“³1 +ý¾ÔWæµ3FˆÙÆN³‘¿ç„ÕGÓ|ú¡šƒv¨€ó“ÀCgëRŸ"îo ³®ÁŒWd¾S “ÞÙ§HÅ¿—8ìÖ¸UgËl»†Þ–2г5­Ç‹u½)1g¹#ïýZøÝ¡Èi TÔß3”2Ë`yð|MâS#öáF4îtžŠv(aƱòŸ&:4|†]- ,°ù‡ódâù|’ÿx÷Àßá÷{™‚Ø›câ¬ÓT€wå:6ñ÷jçχq¨!•tCžèºaYV›ä–Ϲ›ß’øÙgá Ždòé<¾è?k•û³:CX M2‡¦Z¸7͆¨eÇZÉîhyà®’‹Ÿi~_iAEü™ò&™ÅRÚž·ÕQäjjÑ.&§­ÀƒÛ w*=ؽµJiùÛƒð€õÁ|·ÕA°Ûb7ÀÃý…Þÿ=ÏçmÊðà^œ‹~°4á}ÍÀé"·À-Ä`d}¨è»˜zïüy M3:¸àlîGÆZGH±Ë%Ÿjs\tÕY/æªÒžÎW%=0·ŠÉSm°°¼p·›}ˆ¸V ½xw’ƒÝ›bÁ¦¨»°ˆµÞŒO&qIàá,“dWPàw1÷Ôˆ]‰M<˜FÆk1{ªòˆ!°ÏzÄg_É&ìÍ4öZT À·`O§ Y‡Jr‘]‰KwLR-2lôÎ&l¶ üfc“ i+_í†øí+iù&*Ô0PúÕø½#)!éTM-9ž¡ûkΩŽÏúd…ó¾'– T ÃÞ {oJ‰)ºV ÖÄ œINÇìHÉ`+àkç9dÇ¥pWŽÏt(©%6)%Ó*ÆÅz³7I/=&ôp¶Š¨«k?\¨ª6ˉI& !q³æ£fÅÝÛC§üž­¬>8É¡¦A­rFé eTô±š‰´ÈÑ)F&}WI-8ÕUÕþÏyÏÜ•ª–?K¬#¥dO]a–AvÆ ßMâò ³ñÓ*ÁÆ:¤¤ÌÝq\Œm’’}|6›’”g¡bwÊÃ÷g8äeLÈò½³ÜƒÍü³Z/>Y¬jÞSÓáV%6É$#¥|Tø·f þh;b|ⶈ˜fSóÀÚuMàoºêìÆN˜ïzK¾§ic•’²×ú`þV!ÿ÷*¿þlÅ<Ôá jt¢YQd’çù-â +ÿYc’w§(¹ ÝÅ?ÎçGì/TÖÞþlUØög½ªíhžTº§†Eo yηç~ÚŸesµ‚ªÓyýdžA±ip°³U&ûÏ*äà"Ã(,t¥òÅ(%¦-Óµ­œ «¼­eª®òh†G>VQÁv­È"&ÄÚÅ´ó^hó æ—m”˜r,cn¶CÜ}¯Õ°»BóPÅ‹º=_å¹5FLm…~[m-÷2ˆ(F «Ô2ÁxûgVXià³dÕ)6zÉg€ÚZÝUœóàyÆ‘ªª4·ÅfÈwuS‰;ûûc6ÉØKŽžáå=Ÿæ¤ÞW±RÌUe–õÂ&Æü2ŽR3ú+rÝþ:]ä$û>Û“WàMrZù–c—­ô¤¾™osÞ€†è‡KC§„Éïö&qEÿ¾ç@ƒL°Mø3ÜôÑÏ4Âà;ëí9Ÿd´"³”S¾Ò‡ +8Žù·†ƒ=Uó699Û0ŠÙBµ³Õ_úUVãFL÷º9Ds:2øÖ0ö×zGûvWÎgëÄkg ûóz_ŠÛÉ ¡ì`ŠÜ£âº·O’ ㈘ÃE|ñÉ*{h—]CGj;‹½ôC¨¸£9þ ÈF9%gubÇF™GáA[ý%A*Aò{]]懌žç<˶²öp^Àj=k´Ú\ðv©:ù±c¸<Ì4Ø*ò=çy¶ºÒ® ÃõÝÅÁ¦á²°µž|·¥î¼O6Åù\©šž³aËñy_ª¥ÊºÓE&á|þ¯E +±Ha6,ôp +otÔ2ýaCÚ&à“ÿ›]O/ÛSâRw†`먰…dP'5õËÖ(¿¯«ë°ªÙØM`ý +ì©™°Óùªú“…ºž­qlìæ8!Å¡®ª²ÏÖ6lJ`MCiÀBC‰¯u³Ùùf•G|£(ó1O`“çi„£y,øP‹JÙWŸ÷;ïqL€þ½JF:¦±é€ÿ +Ö¶¸ÄèTû e›b–ÎU0ÎV+vU˜Ç*qWŠŽ·+‰9‡:.O?‚ŠØW3°g+­šÓµêÞÃEaW…N4ˆ1‘[CÈðÍD˜MI/t—ûêÚɉuç„cº¾Î1UÚWRóŽfØØƒ)R†M†ŠÒwçºk±×»K¾­¶5õ Ýåßw:<4ƒÝŒÅ>V%>µ·6Ýžæ~uÿúl¾¶Ã®âá­ +v¹ЧíQDØÆ@©ïö0ôDZ†ÇÙ°Ê8že`~/sÀÿÅGII«m%_s_/Ôç}2ްsWºhÑ*ø¹iÈøøhc?2`³úE×”ûJQ™öDÄL¼Ó úKßI,4‹„ø•~Xpö®F,Ì1I,rÈÍQsÖºJ¼–ëÁnÇJ*ö|¦™~ ûã4?ê¶Šwgµ)ç“u{èýé¥À BÿÒ6¼Ý@YE„Ë(1~g˜»Ù‡òßêAú˜Îï×µa|çkQ?$ô<·ùšâ;ã\˜\ë"!G\ŸáEß·—úøYF!¿gièŠdW|¢ëm7'ìlŽËÝ•@Nç +ÃæŠ"{?Í·F8¯vå¼³HÛc¸}/°~ —阩i=öj½«ÐmŒu»¦ðÛEµ ñ¥MJÊk@D¾íÀE¸h*„›#Ä$­°àµ–—ñHËK¾/¡ßÀ¸ý¥­ sê±#b€·úðQ–aØ&gbìRBʾý·Ž +;c fyŒÓ9çÏ"À¿Zé±–Tt¢%M3Ž€œe.ñÑ×§=ßéÈxu¬@Ç[%œR}/&Ì0ŒŽ°NàbÍblüÎî×V/Âo¶:ëãj{I°y’ ;çsû ‡p2ÏeªYðÓY>Ó6ÅFìMÓËOçÕû³Âªmº«©o´NU2w¥ô‡Œ´Þ]à¹Ö‘ãf—ÀÃödÈpÃpþ70Òi¡%ñÕïþÏŠ°ý@É´ÊÊC*t‚QŒ~²@n´ÊaÑ[#ˆP@·RL²ó<Å«8˜e¢g™HÀ'•:˜³½6Púãp–Ã>Yj›Ý_Ö.W6.U¶íë-Õ2Ц T4à,rd¤EAÈpÌò9V ïiüãŪF‡ŠK±NàcM£¨P]}î‡óﺌpâžS]ÿšk(ˆ4àãu5©Î«­YŸ ƒ%¾2AÜ)?þÞ|]æ‹3%s2_Yg‘“Í€¾žkà¶a™À$câÏ—»:DŠ­/þh“rO+èÛ"BÌf/üÇzg±ÇR]öû­nÈWý&d¨"ã-ÑýÒœƒÞÂüZnÉy9[“ù\WŸ÷vV˜ñ\[á¼Öžïä_èú.j¥`_xÞ®”˜k/[íÌ~;„¾&%ÿz±/ÃïÏ +8 -ëHI/=›© ÿ< €¥|Ëh©Ïrsâó!bÀµåN¨×Jg™·®òaw„•¤jh°N0 Ö:àßGpI7™IßA‚ŒïIHñNÆ~B”¼Þº½ÖZþïµdäùº|mM–§y8/h¡9ûí%ëÕb:ùDK-_lNtZïÍølWÀbvDÅÆ‘’#%~dbUmîG7íýÑL÷ïÕš¾“9v{°Õ0¡£~«™¸}9FIrQq²ØÇø˜å6„Ÿ”šúH„Mº'§e?Só2^,7æxlw#7ǨÙé~.I‰?žíôS1ÇÚªêÍþ̺ª¨{ Õñc^¿YÔƒÙ +N/+Å» îÿøwGZb‰eòm¥:íé4%ú–’qs£)ãõ™‚”3ß‹ÍöuIPøð+¼ý:l£§èËŒ öAKñ—rÎO§£Y*j_×4²2BË6Hpÿ,VÕþ™ã±ÿ™§–Ù&JƒwÇ!ÿ÷{"ÀO©d¤¬|³„šv botÓ +’žM³bï¢ü® ½/KaNQIòïðZGØÑ–»ò‚O癄3×góÜSp h¨’vg©5ÃõPKGìÍppæIzÁ–˜oŸfÂŽ´lÒyÏõù§€—8žF§:&Q™v ±ôT_=x°Ì«·hÈù@n†Zm’a’÷fp¹§K,¢M›ô‚=MUåÆ y¢pÏçá©8ë83×4JˆY퀸ªy¯-£Ôã0:r¶2éÙBMÒ‹ó^rnÔs=à1lbxøÉ—c³ËׇÈ1çÏ~©Ù¨³y*ìï*úïUùt“·=VôÕ8†ŽË ÆÇF¨éÿ,Ôtü»,lÝWÓKÚÁïVÚ³^­¶d¼ü’«u‚œ¾3BˆÓÖ@ÞnwãÂ÷'™%†äÏ^¸ï$¿àM=$â/ÛïF/2æ‰i€œ4Ê+øLLùvmJ˜÷ótšV¬kLqn*ýz‰û$F»aîÏñ´‹ Ù¿L`”#Sf›ÒÜNµÚïeAµCxt5%ÿ伟³œ¹5ñ%¹£&ì¨áŸÜS¥¯LÍYWœ#˜¸¯æº¶Ï‹"‘O°Ø`õ[ï$6#(#äøe§*qé®1TÌÿê„I‰Éá3 ö~X„s’”µ2FËV Ê.«X¹§ÕÌÜsZ~éƒ|òÙqjÚù•êØåØ[­(缂“}cœ”yoµµü퀾Yèýy6Î<y£oÉyòÕÂ~µ ê=@\qŒ”?uŒ_ºÆ—C£¾Xy¼# ëU’ò¶utèႨnKŽúdï.»«b%7HÒN-µ—Ý· ê`i¡1÷´õÂ['ùTÔ +÷Dås}múŸMà'ø9~PÑSþ#…Ô|Š© önµ ürGÀ9øÿØù’¯f5¤#fñé;: +( å‘ØÔ ’^uhÉpmWŸ úz¹t³£êã1bÂ퉲î~·T›ùèïÖ=‰M +©I{:zå¡Gé ù¹š,§ `®XÔá—ýÕÒÐÒÐáë…üJXâ¡‘®U¼€Öï|rZøL |œžcwMÍ•Ï×zJï¦*"ƒÓ°ø­ hâZoé+5'úĶ^þ^xc¨ìñÆ`u,p r¸ïÐþ<úí}sš³t˜¡¥ô†WÅÂùÍ]ó;ÖŽ¹=`^ƒ²ÀžA½RHLHM,ý?'ùu‘PÒÖ¤Ù¹õû«²C ´°è"£ผm©ðÈM%©ÔXWxÏ¡¦”èÚ¡ÏÜÓðAÂuOàW:òþtÞr”GØZr¯z¤˜”Ð<³h‡þ&(ǤóTÐÒ+ßcw¸¤ÿ}wmb B@ŽÛ62pÛF 7úðo[Ýàç}Àï)¶ax䮎Fü¼ÔÐw¸ ©ý øÍÎ,¥hkïD½[íÃG/vá"¢‚ë–>è§ÍIrÆ#ãÄ8>|Þ? ýÁ1B+Þš ”ïÌR+Â}bV¥èh'/ó†_E-õN=\îN<;ßøé9ëÝÏ!!äwB®} úÍ!7÷€X¶«åaæð¹žIpÄæø±o +ãš ÄËù Ë3¢âSŒªM¥9× ¹7Œû¥­"ò»æŠèï÷ÿ5ËK»êb üú <ñÑïëý„ô ‚U¹§"å¦`Q–Žì»3Ü—¤ôè;sÕ™ÿ]w†ûWìÌb³6ÀO7‡!Ïwu„¢ÏVë`™Ë kgŸ—0 bgŽðVõ«õAøËµAć-9>ǯ"åmL’æ+ïNcS~ßG¤î›¨p}kæ5mcüISGÁÝAbü•ô§K@.H4&ÑÔ‡LG}ºÿËjwYäÖ8ü¡Ü+ƒD»¦@%ÀótD¸§¹Gɬb³-9¹xW/bº¦Ðq¶Þò;–ö²›rfÎ9qaäñ.xô÷04Ñ6‰d—FžsN+wõŒšµ¡ª7–îò;æ®’ëÖÞ‚+~%øõ×%>o×(â9dŒ¢m-³úhIÔø·]Ô´g B› oé¸yç–Z@7½ÓøÔ-%§j¡õ2¤Ð5a¬vƒ´•?þ¹ú☂û“ž“úG`ª&åÿmòÛ]šˆ¤ìÉo®a|þ×ņ®¯‹Ú—\É‘ ™ãš(z¾ØžrÙÜ‘rî벸uÛÜ6åÕHDn­ø³¹¶ëÈÈ¡~Y`ã÷u´Ê¿9”ÿØ;Uñþ/»°Åg¨mt+x˜½EqÝ•CÛÑ’Š‚€6wUG aâÎIrŸü¼5'dnL“3:ZU@à ŸÓ‰ÞlÉ1P±Ù[ts³+÷F` +¾‡£o«¸½1F/ÜRrQŽ)\²s +—ä˜DǺdÈXŸ›¶mb¡vŒÍ}{ mÓ{‹ÍÃG–¦áÏ¡ø«U ~ +wqî-,©#å{4ŒJ¿^ÌÙœÀ…õÉ;K+ô¡µ¥êŽA”{ÁÞYöÚ%E¦XzáKä÷›ÃµõA dcŒ[¾>NNÝxpu¤úmôxÏH)9p]Îm)Y•!„ÐrjœrBš› +ÄÄŽ‘\êV£“]Ó¸ìp¯Õí9!¨å¢CzÀ¿çØèp¯®#3µÚ-CÆ™»*n¯ ¢£\3lø†œ]ê¤ÇY[Ø f1ö‰šVr~š’yJS[xOÛRò°‡˜|BÉ+å™ Z»«ž/4d_õŒ€#—;‹𛳮¹F šQY»FBѺýqs’r`²÷MÂÑ—q`fSB€^öÌb2,}%÷|êêÄ- µÔ7Ííiº¤†®à³ WG ÏV†‹nšZÒ. "^žZ@D/à:Ñq¬tTFÌó(»s<ʶŽÄA*Ô£DfZªžëÄE×þ±„{prE.[Ã|lä2¾.6ö}{À{\“ØÄµ!È3Ÿ2¼÷KH6µ£c\2Já ¿wu,øž‚SšfA=£ø4…(íÒ09éRp–ƒ[ÆeªD9=3Øt bö-\æ‘Ë>âߎQÌßœ¢•´B®WÎ.ß›£UúT¨ÔÕÊgŽAÄûAø‹pí.×PuÂ4+ãæú*ku”šdçßWqò¯¹†ñ»3˜ÔƒYxGɬY®L^îÉyaëʾzhb÷Mþú04jm¨ðöúHÞÝ¥¶¼;N)8êo±ð§ÖÝEg˜—ÿ¢‹”ýðórÓø¡Yܰ¯gÂ=ÒšwÖ¦‚kzaòåáÒwÿ¬ +Z͈ + 460ߨ¸Ú8íWÑKW‘ïúbu›²£g CK<Ön¸Þ»‘qNâ]R|‚{Š’m×YjÉ¿¼Ü–su–÷ñÔRKεõ>Äó Lˆ´ôÕ$¨$™ׇÑÛ³¤’Ïfä³… Ý·2 »óBþžI$Ù_×,Ô6~±6O„ûà}±„ûfÚoÀdMÄb\dÂ|è'g]òJiEÎJ†Š‘{®¥ôÙ·MEO¾SQâN:{+y¦(Y¦!JZ;%ÿF?5þÂú2v[Í'ìhù¤©dßDyg]ЉvÎpj<ªzáÒ5Õ6FJuÍ +¶µ€_˜P-S [ù‚£EI-0Fúî¼D°¿ØØ{°X[¿·À!µø|å–W}ôɨE¶1NËRò ×û±…·º«“/öÂâwV:Ù Žþ}Œ˜tÎ\[p50Iϗו?kÅ&^$ûbâæ(>Ñ9}TCß{dåOvæÑÙ! áV2ÑËõƒA¾m$—… ˜Ü WâŸc·´ ìÎãPàÓcáû£ÄŠÅ.to†óÉÃãÁeåø ÷*ÚÞŽRH@·…‘¿¯ ¢6Ɖ¶>ø3Ï4.emõÑÒz¼6^ùÖ«À¤þHšï®þ j*¹ä|ÁוºÁ£p½H¹Â®-9ŒsM×${T”RË&°ÓÛ;FoQÀ÷© ¹–®‚[jnúi3뮚·'Ûrú54¨”Sø° æ`·€‰Æ_ý¿½vFÀ/4<ìÆ-Ï¥äÀ4µÐ{«C„¬ ‡k¨ïͱ‘ÎQdT¸®©Ž‘ð[òÅ •¯š±i×bnŸþf±«$êP•Ç® ä<44æßà>ùQXxÿ˜kôæ¿›üæ--¹Ü!CÅú°[ç«•/ügÅú{[—æF¯ ¾Y©Žƃ90óyÛó|JhžGÚ7ðèG:.í?Vé¿kTÌ‘•T³2}»1LJb+{ÛÐØ¾m BFIÞI,ÙÖñ©~9©`$ꎟP ÓÜRx¤{õàìcCùukc¸Ö\ùƒyaÖµÕöâûîÁê—›ýØ8¹(óZ>ò§•>Xôç6ñ‹…ß_À±:5 !†rFhŽ‹ÿbnì;Zò>/ +Øák™)UÛ÷¹uÌ*cñӣ쮥-ç•<®Iù]Í*z£åDX–•B^o+ñY €/µSÎ R"ó+I CCd[#¢øTá}–519>mcçUrWƈéºècÇ4²c”4î¨UÁYhŒO ŽöÍ Ò€ñâ<ÊžQÄÞ5‰ø!—t¸(ª=\ˆÂ}ëwçÆ§äl7†ðâ²;Åïo~›úàÌ7ÃØôkký˜ô¥–ªÇËí÷å¬Ô?UÂÜ{ã¬?»)i×»‰VzVGÐÑRDì†ú*¨©Iþb'cþÙä7}¶Õõï[k;FFøž0õh™#ül“ôXGv͵Í! ®xµÔ2`}ßLñ²® RÎh%¬½pïv ¹`WÅ(ua¢—Ú‹¯šÛòÿ\„½wË•ü¢ë꺒ûÛZ€uçxd? «zbA@G*ðÎ’ò4­Ð—ІЗ;Qÿ¾MÔäÓR +Ý +RöÖ,­úh™Ëò;Á§aÃrbúrâÝö<Ж´J¯ +Ÿ½2X“¶ØRöz¥»1ÏpOÁã6eøŒq~á­!zúC z5´R§œZèQÓ+‚FÙ£á"3ŒR¯†ƒ0vÔ¼·K5Xhð¯}*z‰k·Ñ_ývµ úju¤&Å9Ã…ÉêQñÔ¢¨‹öþŠÈ­pŒ¹+鼩-éòòPÅ;]kqÔ|kÉÿ *óïUžØ>…M›m?ö(X¨#Kãà‘…†?X¬Îñ© +žJ™O’’^þ²1Rññ«/^“ÒÌ„¯–ÏübiSüÇRßûßù/¡b[LZîGø¦èE¯j{VH<\nž<²5M.J=“øTkKÅ̓> Aïlí×W{Šo‡{ ,¶WÝ_nþŽÔÖ¬u`ßÍñó/ͰS.t ^Ýÿ™“w÷»vØËcŽQ|¶c’œîS2CJiPO­:\J,õ»Kµí¡y.þÈÌc{åÄì]›èÆ —æ›7<ˆkJ_íæ¤Ê¹å7êÊ?“âò/'„pg*ÊÖVtÝØ˜zÚÚ^tcmeí­~å­Ž>˜c£|S¤LŸŒ^Ô°¡~&ɧ@Æ»§aÑšúÔ«³’Œ3αÊ7_, šGG…n©P‰[JxL@HÙŸ'Aÿm¡Uÿ{‰Zý5Ü“ÙÄÆl)é%a~ê„ô¹úFŸZH2w"£p';‰§5ÂòÛݘŒËåñg,͸”1JþrüÙJoÍ›Lò¹iVúÿ ¹Ä;#À.õ±Ò{HY§Õõà÷[*!ůcÂ÷MdðÞ¾,dÄv‰Ëð˜0ÿ<µk®kÛ_Ö¼|`i™Ü]lèØ]¬kÙÖßÚ}ºØYñp¡£*Â6€ÏoEE_ñ2où'ØÅîÌûyQêéYNÜIssÞ=û,jœrZ.̲h>Ï .ÛÒSñÐÒ_ñp3ÜßBO:ƒ³kªëþ¼Ñ¨Ú6sižY«l„æºdŸ—EMAŒÆî±½»Àò)wx¾ohê +Î2 ^>}ueh.¾¾<ˆŠö(i•~½C…Y†Ñ)A£P²g«í Ìsq#WxßÙ7Kš‚¦úÖ­¹úZ‡ŠYÔÕ +öµMŸÄõ §Æ>AÏZ–r í£ÌLÇ9g± ò––ûä—È»óÛ2: Åæ8eÕíCàW‹í…7œ3ÄÜ5™c“²ª¾¤™Åu[jbÞ–“éRÁâ7å4Ûè¥O…ÍßY ¬ÃœS?ñÖ^Àûg¥Y±«§‡™ º»ÀÂXDM»&qãQ,ØÕñ°! » 0hÈP[ÔpÑÞY6zKIóR³5ELNSsü3”<ï$:a¡5çš±¾èºµ‹ßM:1ŒO99[[ps’•uu›rzš’vÆÒRzÏ5ILk?±vãR‚:Í­bÕìÌóèû–Æ¡àBmƒ[C/w1Þ>\½9‰KQ×e_ ÎÀ;¦†öð9Œ”±ÐXq³ öáÇÆ’Wß*¸yçiEo~¦¤?:fn*‹(Ù~%6Õ¯Äe¸&`±Ë=ùOçjcΪè‘ÇWÚKŸnL³Ôu¹Î×\·wC#®k^ø ?ZÀƒ6§KŸ4Øü¿€8ý—­aäßVhg˜({¶£B$îYØ= fºf0é ­¥·œR:È-çbçšá¯%àø³¥ïï—”|øÝ\Wyc£òÐ5ŽJèÁÄüÖ‡üxz¥‹èàÃWú!/¦9Y—fë@w­¨HMSÍ«¥ZÑ–®^âÑP@Þ\V@ÃÆíyÌÏKÑ™LÜ1à‘A=ì×ò:zõÁrãØÎ’¤9`²VÆ)kcå¯*ø‡ ›1߉ŠoC¥_×5 b#Ükku„wª³*ò”Œô鲟pÁ9~³g cUÅoxE/w°¡{ú†úà—¼äùm´=O¬°èþEJ•M†MîcdÝh©‰¹üÙÞ0ºgiÙl9ÜÏ{­¿<Â5Žˆö«‰¹au¥O»±ñ§—û ÑÛTn¹Æ+#绀‡[ÂXq±›RRq°ûåIj•}“Ô‹¹Û!gÛÈÆí,‰êó@nÓsÑ[:.ÒoèßœæSפÔÂÀŸáP2Êfë`O{Q™±ÉÚÚKo©„™·æ[A±ëcè¼ܧsîDîþ»ot÷‹¹g¡ÓCz\¥{<œGIYûæÚ¶SmKÉÀ‡ïcúæ8—šr¨YP/À¡ÅÚ ·­ËekãÔ¢=KûlÈÜeصvþWb±¶qÛÀ®±zqu†U:S¾ohþ·NØ`ìCo«9(Ï1Ñ5Œ|³ÖWyßÞ^rMÃO<©æ]éáUüsÿÌ7’Ò÷º'°I£È÷‹Íà»¶®ªû룠þ)b* 0ö)Riùã…€’:'ÜšîQ÷lSý¶AÄ;4Kv„\ë0.Á>Lò7.×§$ƒÜS˜ø•NÄK»äÎ$-ÿ0W÷𹱿QÒßž0ÕC’¶&°)ËÝùWmý…×uõ)ç1/Ž‘ÞŸ—Rã®Ø{+ßû`/à '­-¬|¿´‘RS@ûTæ¶®&iSZùÂ=UñfWG‚9$ŸŠT°¯£VüÇLGÿxü×&¨ýº(äè[_ÁýÕþâÇk¸T âù1Fþµ>Rœ½þl±)ÿŠN”xvœõGäÙ{ßβ³¯ÈxÅ÷xEïÏÛ:@KUqö@ËðiÞz©G†Éò(éSà×€¾Å„´’úíY&6¤#W8dEïÖ¤yoœÓ˜àÀV6%h¢Â]*T2 Ä_­µ]_¬$Èþ2; F&íñ}{–rMàí}è7Ž!ZàËùnàõž–T°9 ‹ |ï’C +g¨|fï-}á’bRFŽvLÔ|\©ŠP‰A·—ZXyZ!ö“cþþÀH‚ÕtèÖ òyžýlâP¶”è×4ôÍ®–X´­Äåü½À$ü×.iûlâ»–\²>~램I_ŸÄ§7a>^’2 î¬ôbmUæÄYçgI§³øCRöö÷TÒÕ¥¦ªˆ~RÖµüg—¿Y鬌ÞQ†5 *Þ9Žü¸Ü Ø-}䑃ž;'ËŸûŒ²åê 7ÇPñ Ì¡™„:0S Ÿ­´š#+é×¢R½Šê_Ì<þžA,>\¬ï +ûË®ÜÕ‹<°÷–ŽÂ;j~Ê…Õäë!o™yWSŸÿÈ9‰Í¥e?¥äÜôSÒŽš‹4~¡}½>‰‹;´°(‡fñÐL©Ù_$Uî˜ÉU~3‹à ï _b±¾¬pkmÃÈÛ 1e[#–üeápÃà·3ÔOçæÅY7×úa/wT”¢-­B!Ý\lÇ¿óÍÐK| +\¶µ·òùBkÙ­•¡ÊGN9<Ê£¦–mi˜Ä€AÈ^Ÿ¦•ûôN`^Èñªѳû6ðš‰tÎÐ +ÂuýR¹"|œ¸Ô^óJŠOú½ þît3äå%IyÄ•hìo-¸ü‹”ˆöë©P§œPà™e#|z.~ÇH…øÂõxÕäRŸšœo„¾k)½½Ð‡þ´5/”8u$¼SG¬ò/ò¹.æÔ0!®97è>º:Ã>Zø  ¥¢­ƒdì×e~Ý?›Âö™?\¦aZTÖ …7Æk’4­inyX° +<ÓÜòÍQr’¥v’’õG'<áç®êØ'1 §¶¤ŒòÕbÆ4#í„k°&6(#¤fpÉÁð¹A9*us’˜iê%}¢ÞñŽ1)»ÖvMÀ,à‡€¼¾¿Ä@‡Œ|š_'¤¹Tµi-.¶±"åâJ+¡rOÁ¬²·—ßZïE¾´´Âîk™§,¢Â ža̧•QrüáT <îrP‡ëJøT¨x[?èá3åÜ%餥§üCŠŠäWÄäEÝ=>EK¸÷Ïz£|×P+ ñ{OO(±ôU>Ó4dž[.‹ØÖ²ª;Ðÿ˜¯/IùË\×ûÐìû:JÉŽ†˜˜Ág:Fï—:`Ô Ð{mØì‹#Ĭ³þ nõz/0/mè—ÖN\ÔZ9qVX~«}¼¶ðÙ·ÞQtÒ|CÉc]þÕ€ •¸=K®ØVsôP¸ÿ0¾Oƶ’{†¦’~yø;ŒºN÷ >Û6~ +ßeÂå˜ •ÿ]c2Ãýµ*f_Û>TÕq¶”ŒÒð¾[[Áuc]Öeƒ$óʶšXªj+{I¼ûƒ¤äõo»6ÖÖ‰¶¶À­´Ã6ý<œŸ³LH@ÃCÛ¥°D¹0áO· –üuðÁ6~{CÙYàÐþ^wç0y«cÐ烬Ü;ÈÔGçÝáýl&"tm *Ú9‰:Т²£ïLÙ7Qï~ZîB¾íħÝ#g?=!ãæ\Û3Rû dȾ‘X<¯qÈ«&帤|V@Ú˜a–µ|âîŸòy‰MúÛÎ}Y`¢ß_*y¤o̾bh«Ž¢åÝîGÄÿÒ\òâÈc­åÑ'—Û+£vÕLÄú(&oV\pWÉÍ=皦y,Ñ'Çäl)±[*J)¨ËLÚž…AÜ^â2:&j¶³ô±u´úÓáj³jo¹¶Ó7Ç#y "vÀÌ ÷<…^¢b²šÌvDì™Ý9 +îÿ¼µSážÓ~:É5y¹6TñxwWò_§¨w[#"ûfð­)!Ü5ÎÊ_ï!ÄÎñ /MàŽiXI'¼Cå/6{ñ––ÊÇóââ ~9y°â­¥«èîrgé=Kgþ;êWIè+ ñ¾,³8!3‹è7±±»fï/`‹–†þ=£DìWqª¶ìŠ}5¯f_%"­ö>®´c܃üâÅØãIBÒ ½0÷–NRx[ÍÏ» •”ü¹ÜCLòÏŠˆ> æcãÓ˜„-` ^95¼‡$geˆ˜)å—= ¼;ml.M;°6{”TÐÊ âݦ·£¥”ìH¥{z\á–Œ\dj…<ÙÄ»_ÎÓaÛ³”âQì ><°÷‘?*±/[ÑÅg'éà«áýÌÆú’ëcø˜cÕ¯¾ïBFÿH¡?—š!¯ô]ÕÑEo®ûpóØž +ð +¤•d¡Dþbl?gêH>³:Xþrg–…دoÔµ"cWGpé_{ùÿœláÿ9Ù‚ÿ¬QP_–pÅ! *q±£ò1=÷Ý rÆËc›TÄÑ<—| fÁBrbÁæ ë®Wšý8 *|º¿€.ñùGÖðyCùÀ(`‡ï«ï„ô]-¼=CÍ÷M3 +š ÷êªÏpÁO:a ÇÛ«>ý..zÿë*ùäœ0ÿúÖXMt`†XèGflN¢R¶Ôlh@'fì¨` 3+Î8'ç&ž\êÝñŽc“võ\’࿆ ßÕ‹9;s|R@ŽMöÉÁ¯Òœ;–n€G†‘±Ÿ <òžžOuMÑŠwt|ÚŽNÂvNг×Í=ßTùdVRyßÔ }°Ò‰Üg—èjËo(¸¹—§™9÷—:Êyè®N\ôd¹ž0×…Šƒ“Ï´BÒïx§èpKWåÃ9IÙ…Fè˵>häÖ$âý…Ü ŸÐp‘uÕI¿*$%/Ì,ü—eîÐŒÍ;\D¦˜Pé'–ê›Áô‚w¿ö2Ÿì˜øÍ>}½«âîrsñU+ùNÞ£c„Äkߎb^ÿT¢ÒGE gPÌ%k¦lKI/7¶åݘaGž”’Ÿž2Ô¿;kï-åSÐÑžY’Ròêâ4/ùÅ¿Wµá~ÙŸ<ÆŽ–˜ç–£ójyIW€nfç½è#f=¨éHï !Ï#E}t Áâ4uÏ¥¤ÄsZaÖ…ù–ŠH¿’…Ÿ‘€Â}ÒFãþµ"¨ÿlá²Jd’c üjm´òIøìɰþ«C(ÀNò/mŽbâ=rR¦{‚ã$fnɹÐåAÜGM=ø®}”2IÍ8ßzýã,'ëò|]Ù£õALð¹Ê2JÁbwulmùûãÐØ›ßv¡?\÷)Ñ9ëÒÒg.9ûÏ&ƒm,ø+úbkÓÙÄûË<Áî2“´·H,õ+ª?lÏâ‹tišè™!}@,Òqs.ö€ßüØ\òä_2Ò§“¹@#)ºÒ‡ùxLPüüÛQzÎYVÞ«cCÈÔó&!졌˜ñ‡ž™ö‡½ÐÎÝ GÝĘ?eÏ¿#¥œÝ®y¿Ú_ñX+ʽ5W—÷À1P±3‹Ê90 $‡–¦1ÀGº<³´b’U˜’Bz1ck†Vè–âã£øË_™[ª¶T'þÆÏ‹üÞ$®~¥ãAî*¹gt‚ì+¦úì;jAÌ•)Æ›Óó Ù7rv•gš wŒ"cÃõ1×ú!‘ëý%O[ÄM^5 ;Áɹ­çÞþlæ‡÷ÂZ*È%ŧ:GQì=å÷Vú*¯I)iÔÜ·¿bRý4ß^ö!ÄÓõQX¼¥³äµ¾¡ðN:é7nî³ï¦qç=Sø-%&Å1yÒq½ÕشܪælèÀÂfyàsxâÑüuµnÔ© Òg[ó¢÷—™”» þh™EÝ5ò¿,ÑP‡f©Df¸Õtðæ9{­¯æF˜}SÍOþÓ? û`"Ä©„y§¬ìSäÜSµ°ÄcØÄˆï¦(…wm­Õµ¥/~¢§ßø®öì§QÊûŸÑÉW¾ƽÿ}m©é(½ß‚ˆüu¾üá@ǧìÏÑ ›S¨OöqZ¡K% nù ·† ×õ!c¤¼ük«£„œ€FHñϰ«6‡±êŠ/ÏñòÏJ‰É¿N2O.·áÞw#3ÏÊÈYçL¢ë‹â«ö¶¢ˆžªxÏ0:ÙÙŽ4Öß°·@"v&8å)%ý Ü'{¨"b¹1ãòÁ4äÓß „¢]%:Ù3Tek/¿ëŸÖ¡•à„EmÏTðLÕDûäè¸-9>%¤aׄ渇Œšçš`9GƦâ£Ø¨ŸFPQ?OS?Õ +rÎ/4‚®ñ샱 õ® ’p|©¾ê…©¾ìÅ2긑Ÿ~c½ü˜×ê:èýN\ÆyÇ8ÒŠ¦–‚;kƒ•/\2l²}ñ6¨'—…Œ\‚cš^l@½qO£þ½)øº"l +é9È1jÚ\cÁµU@î(Ð]3›jîG¾qÏðà^e³Ø£h`*å·iÙ/~&fFüÞƒŒ¿8ß~`îB$»Bæ¦B€XÇ¥ïÎóćK¢º£€áœ$å«%E÷gKï›:!σZžðórÃàþŸÐÒ+ü0NL?kn.yT".[gæB>½þ¹™øô@OÅ}±r˜^%&iG/?\ áöM,ŒOÃÅ9g˜•3âòGK½ˆ¤;ê§–èhŸ—¶!E¼uŽÁ^¹F¡Ïx·Ð‹Ä¤GýˆËxöûò¬xK…ÍæÄWóÎA·LíU/-Ýå/·uØÂýEkK-")$Y2|é‘UÔèÓáŠ=3з›âRR‹:rå_ë’>¯A(èg>-ˆúó»‹°éhµvàÀ ÷ü.Ü”B^,–Ü3õA^ZÇy•£ôÊËöAJÚŽŽ^µ­¬Šò•E¬Ž‹PÚZðµY^ái%§è”š_za¡~ßÖ{§–”]íƒ'ýÚɼ0I)¹¹Ð¾mi‡ô;)+÷š­¿&Þ§ æº¦ñI›Ó„Ìu äV ; b‘WÃǬÉí9AÎ ê%ÿœ„ëžf,wW¿#&ü^_ôø‡^DìÏ2zÁé^zå™7÷/~ƒNzvÖÞôücƒ(ýübSÎ]CmÖ•a\ì1QaÄOƒèO§¼¢+¸¤G?­u”EjÈå¶VÐC=?ý²^øénèÃïº*Ÿ}?…ÿuZ˜{=ùÉéoŠ^^ü>(CÁÂgþZ¤£>ÏÑ‘!*Ï1zaí.¾®ª+»NÌ=ÙIþCAÍ:;K==CÎ9¿(Þš¦äÒÉéÚÒ¨Ÿi/~0ÔÈyy÷Y9O~ÀÄÝý¹±ôí 9=ùôrGÕ}×8*Þ5Q™â”‚ÞÌQa»s"涆 +ânqP‹ÉtMU¿_@¼ñ„Ïì6«rNÕ|tÒ'k­ ¨É Ç($z}µ9QíŸ%åg¹(k.m”šyÉÞ‹ÕÖc¢Ç9àç†Æ²ûkýEÞÉ2€G`©5.#\Çé³UX·käÖ&¹¾YVµO/Ø51p_ì¼ÚýEÍ;KÈòë©e>àoÓä"ǹÐ9IÍ]"|\A¼ÙVÓªæ$‚OtMs*-ô‘º[#y© õj‚žyy˜pÊÞŠvMpJ +Øؤ_Ïà µ’--“âQ‘ÀN.s¥öÒ¯¡V \ ÁöL4Ôî"›2 Y[Z~GÍ€h…7Fði(ØyglÝ÷r\ƾ‘K±Œbúào¶TÔâÍ)B’_KÈñj)öÑêwN91'¤ã¡¼rrAxÄþ0Ñ_7…Ÿ7%CG@îØ·px%­zSÉnLв\2ZáÑzý¤ßÈcî, +…_¬Ò/–ºÎ/‹ÎÁ4‰¸kRz†3ÜïpŠ®“~×ÒVtÃ<Ä/Ó7!jÅàJnÑÙùÚüóö^è“Õ1RÂB/öÍ|}õ][—¸p¹»¥r¹‹·>LŠ7·•\_hÌ»¸Þ[ójWÏAõÔŠµ Dôê(*ápI\¿g‹·çEìÀëQQòƒóÊ­\¦emŽâ-›°Ò‡{ï#%fEÔÕbf<þÂ;ÿÝÁ¢ ~sñѧ¸nOÎÓ!Žéêè-½fÇ$® bb r³6ú*Ÿê¯9Ǫ"Ý2|Š}Šš0I®[NÍ_Á¼ß]`b¿Ø»Ÿ&æ/÷#¢]“ˆ8¯ `>-4Gƒ|]µï™YdÀæJ|³´ò]# íV‘à» |Þ¡YÀÛ7qI;&Á¡ í˜x¼½Eà‹ET÷×—y8OÕÔ÷)Åø“µ ûF/©¸¶=K*TµS>é›P/WéYæô«Õ~Èãðû䙩£âîB+ô¾}@X¼Ø-.´vÒãœãìâÕð¾ížò»ŽÁêžiL¦[‰J´ŒT<6uW=ÛYò|€O¸Õ˜OÃCõ<êîbCÏÁRÓpø»…­92Ø!C'xÕŒòõQr†KJHP /w âµ@Tsªn¬ô°sæ›±† égçêª_Ϊßê/RrªKÆ(YC¾ j©§æ  »óæ Ô‚ò›@ŒMòŒc’|2F±`§åjÂB)VSjjFFm«¸8CxZ;äñrWÕ‹aRò• fÁ]M5z@ˆ{€Îút¬·tËÜMŽ¥æø–‘úþ_Ä„ÿ"Ľø‰ù«8?þT/¶ü263$úø0-õ·àÉoĘ“”˜Ÿú±1¿ /jE÷\”"}wM,&ñÞ÷]°w¾š ‡&ß5îPýÚÚ’qNÅN8·6„Ë·ŒÐrÁñOϵsöçéÐ] vZ[ÊŸè…Y×zk^o?ù~ŠóëÊ%“YöéRYìßÇ)éüSøLçüÍö4"Ö?Yöa‚u­©üþO*fÒŸ^€£ÈùQ'†ÉioæèÔ¯6ûëµfW‹ËõÉáÉ3‚OWF‰q—–«?ôRÓ`?™b&ݘaä<ÚèEÇo+‰…ÎQLÜ + Ô¬Ü»›}5[rÕØŽÉX¦ë—º9Ê*Û’±!Þ)R–µ;†»D¿ñ¯!lÜCK,s¹§ê•_Þ¿Çg…Ll< Á°AŸíQ1QJQþÍM)6y±Sª©¯ˆÝ†Djøq6ú@ +àúzrñÆ(âÀC7¤à×{&*Ì-Ã.u"^/´@ŸnŽ"ã|3¤’†K>2 Äÿlˆº<3˜DŸŠT¸¿À¡-rø_-\É_vAí—eèp‰Ï>Xæñ>¯ˆ:þ^uú5dÐW«@üo›°a_C-_í…½²w€¬tÂ#Öúk^m W¿=\ BMƒÌÌQféöl-Ç=Á¯tŒ’“-å·Í­—,m—7°1ö!Fê\+ñµ­‹ðÞ§á¬}°Ws’Ì3¦†ìó:IÆy×$:1 aVuBnÐ$®[Á}2öãb|:10/Í};‹ýûf¡dßÈÂ{5èÔ-€96•˜ÌQÑu÷8«`e˜’¾Ô‰ŽÔ J¯®uÖ¼Øè'%Ú{j"õ’ì ëÃÌ"¢‰ðYÑ–¼&ÚÜ‘m©-çòúPe„_M-ñÎr`¶>äkÍ_LB.Àñ¥N)ÝÞŽ\ê€?]ÁņÏV…ô|ÒŽ±V¼1Í(ö(…Ô€FÂöÈXà ·Ê0"ÌWö0bÕ­Ø—ËC¬\c?3mZŒ¼'¥Tߘ  Ÿh$È×Ö6BÜrî­©~_É­¾=Š™“TÜb]çf½:6ŠN:^7Ë !~mŠYì‹P+ò&†²‹Ó‚L9©ä–D„k®ÙG«ž›Êï.†kÃÞùfhe«“¯H:ެ,Ú¶“ïV ’ m¥wÆ()ÇíR|¾àýù´'—¿· À +‚2è{Ç@ñçèáz_þÈ£Ÿ$y7R >ÞòÈe„ìˆ_qIOÿÐ×WÆ~6 +y_ŵG&!?4Ç@ùµØü-EÕ›ÿn0ÙG6¶ˆRúö<ýém‚J9²¶*m-Êÿ¸ëäÿuò;M(ÐúHÞ- ÚN~0BÉ~´1ŠLZBD9Ç1‰51W‡ËüËD.sÍR=J^µCΛ{ɼ +aO hÄi* ïaÏ› +oÊØ9—ÐI¿.·V=wÊ8p]KåCk'8bWÍïÏ1á‡&öÈÌanÏqˆ«Ó¬¢¥QzæºBÂÜP·6,Ië`UkmP[Ë È)¹A>cOO)ó«1iA%!+¨–^hÝŸeæžéªzÿópͧ_•Ô¸?,Í™wBZ!Ó¡lC¸Ø †^é×’‹>›Y¸Ï9hbÔ8d˜ÔùfÐ=§‘Ð’A¦Ø3¯B€ô)Ø]-î;ð d[ÇFxj›Ä&L®{–C˜É>ŒŠ¶c“6¤¼À<é˜eWÍ÷aßÚÑkÂ2ÏL{C¸oÆæ-ÝÖEú`Ò¹Îê¤¸Ô KÝ5{ĵ€¿ì£ô‚å!jòšŒžïPsa¶i~嚌Sº=/ .ŠëCܥ¥š¡Ú1Çx5,HÈÈÁÙ&)«3ÌâM2†ëý³6ÖpͰ*=P¶)eåoN2òìC¤D}>rB ¹)–ßsK éÆ¦Ò»“´ä *Nî­ù&Ôëå^Zºu›mèeêzDÖazÚ®žE<²ð¸2búŠ›´9IÎsÉÙUn•€àÒŠÉÀõs;¡/\#зG T„µ«ìÎRkéuû@õ+)-óâ :外ºæ˜f–O5áÞÕÁRÎ*$Eï=³„‚ÅΪ»‹mÐÇË=5oWúÉIKݤD·’Qá×3¡«£Ø$·ŒPz´Ì‡Ïœ5˜Œ•ᲇˀÿ¯IáïÖ§h¹Æ!Aî”ù|„V|Ï#'€lMÅÚZ +®êyÉhùigçêAæ–òç›Ä›¬ÛŠÍú³ úñ*£ +÷»[¿ô*ˆ¹.)ß>ŽNÚ8&h ç†iˆÌg¿–Dß¿èWQIÿÙ´üc£’þYÀ–9÷£¹%çúBKÑý¹^bVîë?VÄ>:ï3Ðê¿lˆz÷Ít²kºê£¹9墂ý뎑÷΋ÙËìC'þSÁ‡c³kšž¬ý˰žšb\U +@÷ãÔÂ…1fQ¥à⌨üIHËF…kÝmN cÜÓ„´IjÞ†¢ŽæÒ478uíÝVy§X?Ð7 7Ù'»„ëãôœyqKË9Ç*Ÿy§Ðñ+ÜÒ>6èVsMâ Ͱçk}ØÖŽª‡¶îü{¡Yxº_Ç%¬ÈxU–1F®G'bmÍ È äÖ’ò7•¸Ôå!èK· Òá +Ü|Žm +·+4O­ø™²2ˆŠtŽã¶”¸tÛä…yùÖ!§nú8¨åaÃ5¸Ýáš«: Ï6)„nÈø°M9²6Å*w)YðÐq´$à"öš\óÎ76ûbAxÿ¤G/f­(˜¥ÎR–sçWrüZMß:_‡xé™ã7¦8 {?5q]JÏZ£$Ï÷Ó–FØn]×*eäi[p¯×¦š™kÓí<‡L°«Ì6LŒ_'¥†çdÇ(`núÛ£t©žV>ëãUÓÊC&>Ó©àLc‚bû4»Ø«e÷´¤–_ryÈKÎib¡[FÌñiheN¥`mŠœe¢%¯)x0·®V47ô…ëê9ôªÃpmßI§g¾¾~a¬•d’ÖBtøèÙvð}Û0ù%¼ÎÎîšù™šDŸ—癡TÚGà‹ým˜1.ú½º™ûuYØérÜÊ`Ùc%/íÔ8áãñqBây?°ž@ì„­Ë9ëÓbüª¬ër‰kFˆØ˜à–­ŽÐRÍ]ø7ænÌÛõ zþÂ0'{¾—•kçÀóÀ{M¾6NÉvË8` Ç@|†úÚ5¥½ªª£Yd­ Ý@Ô8ÒÏ6 µÀWÆ…`c:zs€˜î›¡WzUÜšùaff±ð‚°2é„©ƒ’혤嘻ËïÍÖ'ž[îÍ¿ëVÐAëÊZʦ¦Aà1Ô‰ÜzÖ©äÂ\³|œKÃG;¬2’ᜄE9˜T׫Ú0FIç¢S/Ó_þà›æBüJ1Á3Ã…øô¬·–[Wq k +>Ì«­•jë}& È-ÌpÏ – éÙ¨ÐqQ2JæRöÍú§l}J×5ÂîèëËï/¶•=Xû‰}¨ò¥c +•²¥eV{kâŒ]ðO¡yÑ«¢•›{ÀÏ»ÓoïÍ—Eî/B’¶M4Ü–±©kUÙÞ8×Ï+·Œ0‹–›'mõƒ{fݯCeøµÕñ-.oÇH­ èheKÝðÇŽI|Úž‰鉅~ ¥xçgbˆ ·œ\`éE½ñªYÕAK]ç¦VÄq¨„„€±®io±®ý+¿ý*b¸VI¦CŬX—‰k¼sMóƒ5éšÎ²(×,îÒ±0^ îTK=j&Ì¥’PÕu5Ïçš°q>MCíÚ·Ì>ÊÊZŸdÛ'Å+Ó|䊢‘¿ªn­[žV)±–éÁóT_ãúŒ¬W±cšZäU±ÛF!go©¾+dÕùÃgœìÒm‹¸É£gÁý&>Ý=ÏÁÛÔø†ž‹ß2ñY.-3Å)¹¼0€Ëvi%ôM9­` à—’V¾)§–lÊÙpŸ©±Ç»Ð2â1Ö5®«9Ѐ©±;´$iõ›¨H—–Viì£~0 Pã¬áž«z2ø«½aô³½EqdkÚ·Ööï˜Ä¡p/C­Ø<(*±Œˆ@k“µ(Ÿ¶©íÈÚ$uLãRWG1æDÌB{ÍË•aLlpN"ô¨k9Ûó C·Æ®h«wÈÄBBX– +ÊfêÑô­˜–Ò'‡œW½)o滕íþ9Ã7‡Lñ¨¥á~iêvx”’ã³±¶Ö§oîqëÚ‡ÚŽ!óT Å(m@zx)ÖQI¥¾™“hïfçûÕÊò8+¼®æž²ûzi˜Y¼.¯%è; oûÈŸì£ÀüÌЫE’-½îÑ ˆËãä ë1Έx¯®AìÖ6ð³u,÷,ãÓpH¡%.ß=GƒÉÿ?Goý—غ¾;ûœ=»föt·3N;ŽíØÝ] ¢b!%Ý(**H R’’b€-v·Ž3sö©÷çõý?¾Ëó+êrñ<÷}¬ç¾â‡Ûa>Ú&XÐŒ‚ `&/«™àÃqjÛÞHY17"7GëQ?ÜlÉñL g{´±çèèÞsô Ÿ_œ'v`@ºêØ%EEм´òó,à­Vô-øQ1-GFÝ^zÐ sÂÚ e"Ü)¨úlí‚xÃoÏB…îøìVÑ‹çdÔ’U ¶úâìùù ­îdª©uÅÒ„uë[>ïd­[ûDK¦Þþ9=³4Â&¯4Q'˜T ŠäµQKÃØ¤M#½j×Z_·a äºå5A€÷‹Ù†-ʲ<—”•!;F@G^kÀëQ6kkŒ+]·4Ó6|YÖ´˜”°¨¤äï·¶;»Uk£íÜ~rþ+vuÜM÷0¹jÛÑÞ¶1ÖZ¿:ÆÂOSsVL¨@ƒmÚZ÷œÂe=à«Tõàuàõ­Ñ梱7¥íÀºÔˆùa6Ü%±§µ2Ù˜RÔâRsk@»U¸ô•a\Öž‰Þomܲ7·Íô£ùÓîlSëödkûÎlÇàîG½¿Ð6x0ÝØ²a§£ T°KNÎtÉ[k´”„æªÔÛ€·+Ús¶´lO6ÜzZÙö(»>ʹʹҵQ&r{¼µoRR:%­ðÙ´ÚÛ@-ݶ5à§[º¾-wè.ælÚèð5SzÏÙkšS××ÎÊI à~ê·-MÎæö£©áîdÉZ\0³W¬TèÆX#iÉHÊ]ÕÕ|9¹8îì5œºú,ÇÎ¥[×Xã’ÐRfäì +“ 5‡]Uxe´›v8ÚÚ°gkÀmèÏìoúfÛ€ÉÙ²uwY$ &,á^±ÿƒŸ÷µ4Üñßµ?Ñ;¼ji¥N«y↠{/+q\Ê.iªÊ½ÞQžüjEÁdŒwöï9š©ûï_|&¼¤a•ÏHÛ âö"K?5ÁÖUþÁ=ŒJ^ÑQÀ+šzèúH qZÚZ6¥ê§N(ºà.-cE׎Ÿ×ô6.»XóÚ¦='cT,¨{›j¥xD ÂZºÚÓ–e=øíáÞú5Õۭ멟UÕ¥/ëJBŽ&IU‡£Ìºcßw'xæMKC­[NÉ\RÐ wÌŒÊ;ºk%—¯™U.9-sA˪^ÑsèÓbrÒ§ìÅŽžÝ4³0[¶Fü–µ¾:¬œ–“Ó'm¾kik»˜ìldìMÐP+fBÁºµ½eåt¸‡ÛIÆîÆM'mt¨ ¶4ÂíÜ´tv®ëá.>"ÔÖ^òf]‡/ܵ³Èn%©ÈØRúÂÉ«ñ=vµó÷¦Úû·Ç›hkæf̪¡ºª'å.#c6.fM´¶›yˆˆ‘^Dè‚®§iL&dL*[Ëç/j¸ö´–œ×ö±µ‚>}+µ¡¸ðî´²•¸=Ý)Ý0ÿ`¾Kw0ß!Ûšhd5[8£foµ2§©¨='²hêlœÒpÝfbÝÆSÍh¸Z~_É`G_â »7ÆÌë)64½§ê ¶¬½Â½‰Ù¾“#ØŸníYe ¶õø½éΡý™^ۻǺ;ͤ»µÈ”E &gu´‘<¥cA­F‚e€ã’’¶€^ea–- ˆ™áÌîd[ïá,wdw¦K³>Î­Ž¶¶ÎëˆùK¦zôÚxWß.Ð×»ÿÓ,ò†Þu`òœtÜÁTçÐŽ«W7£$f,j¨•{ή¡=»gßÉ¢»utȤŸ°`¡@÷féä“¥†îq&iÓÑÊÚŸmL²;ö§H5.~ÝÖÝ9>ÈCY +¼¾O‹l¥H©ÍŸœ½Ä‚TÄpð›’õíô϶žÖ¸YaoŬLÞf’·ðÚs‡[q62ád²[µïì­Û[(ã +F–IÒ”12(¨yC0»7š‹Ä½0ÔÓ²×”=íûÖÎŽ[#jQÓRîw—:ÒÕ-¼$EË@Z–é…+Èý›ŒVé»cém[xÒ Ë€jRщ0‰MŸ xDȯœPJÛս +y?ÓÈÓ`CÖ!»L/Ôòõ ’fE±ˆ%I!U’_‘A¨7=`¦ïN¯m*±öôCÜC­¨o®FÖ_³MmY!{.ŽÈ.î*éƒÍ=’2[_GÖ‚¶¾hV…_Ö‘‹¶¬­ë@_O(:‘ºæ]=éý™«eÃâféÕ‹ÃíØ] vÕÌf¹8’ïó]Z Çê¶Í輓™æž‹=Z±uw8ë ÔmØ"þ™…Ï-ŸÓ÷°¶ìœ®5cCõ¸ˆ™iï%%. 2 +V­klC|tòÉÉ.6}^FÊÛ±³WÍ­¤E}3lVÅA:¤me³ê†’eS zÙÈ€^?m~˜YhêªÔJ†°RŽ(ÇÐßShõWëy¼r½HQ¯ã©†ûôõ=ä¨Ndó» ¹¨ï¦¯Z›±KöVê a—-ŒŠ­qfÝà%ÖìõÈe Õ,­ø1•Z`–D£ªaQ4åqD±ìI(“¯齇¯f?)I,¾A(® ”vv”ͩذUS+ne´¡nÞL-ÝŸiå^̾:šéTí¸ê×M¤å‰î—¥“fU÷á4"n±^ØõA§u}õSz>Ç"âÁ­ ÎÄ—¶šD\ü¸¢ãÒÁ2l⺙MÙëWm;cs=†½)ŽøpšÍ=[hé;q3XÿÜhäÿµÚ:øu-<˜ilÜr61m=]Ó:^»¡‹™8­é »tôÑ!Fµ?ÝиlÆfÕÄü5sg÷îD¿~k¬£sÖÒR7eæ6Ú4ñ0¬IÜ9‰â6Ù²8tUH'–ÿ^H’ÆJ™ÃYýLe$ÝëY ¦>£•5ûq)ÒT.£?]ßÍI¶æ¸Õu›ãÛ¢U ›4 ´idüZ‰x!O5õr'a-ô!_]£kÓA œ!¨¥³/ÏÊ—Ãà A½1©‘¬ÿÎÁ=*NF=€ƒ›o!A¬«zW¦u@¶;Ö#œ×qè6qc¶QÄ«–óÔHß‚ðìØ6ÖpB3Yá×ÎIâ¶MÕ´±Œ©T‚Ì·$‡r’C¹‡þåÝûœK>Oâ~J (½J¯’6YJÌÜAøšŽ˜{0VW°;Ž/vjê!ò®t^½*šK“õ5‚|E™¢§/Ý.æÂçµâÞIÍW+THšº¾ˆIœmµuoªã"~—Ô!bæD²¦5CoÇöXøx†x :mIQ¼©GfNvˆæmÊi³LÎRörsÙìisšM¢ëœ³gtmãÒ¨°¹=œ^^~]D"ûY»¹YÝpêcuC[ÚÜPcUÃm˜‘4ä¸åôüI>"|v°¥Ú:$o5ËùhóÐZÍëHQõ4…ór…=Ã\¿#TÕ¿n!÷&t²ÕY$‚(¸$‡ø<'ý<9®öv~ZÝýÒ,Ø;6¶5x¸§?Ý®·ÌŒô´¬ºmÙB.SaSÃm«ZDS 5øîV¸™®Ìh¥Ë3[©ÚP<Áô® +©|*æ\ÉL«ÿ{z&ãï/_Exx=»\C¸N«e¾êg¶FÅܪ)]/ca„ÃX773ÝbѬŽ^d׊ÙJ¥š10 -ìí’¦õöh‹Ú•Ñ DÑ¡;ž£…•åÔ¾­-¤~(ÊÀ¿ÍJ†=¥Þ'T—<²‚[:ÀrŽl•Ëú6\é K¦ZÚ¿.²…G³Íûs\íÎtŸa}¼opÎÆm7 r•^Ìò»ÃäýƒP¹Pµq¤mœ°=U'¨OžÒ¶S÷\½Æ£©Nñ’µƒmT©{ă6Vh‘ÕÚ¹ÁRì¾5’û(˜ø¼‚w3+÷Kl$ì÷ÌÔ¦+Y…âß^"<¾Èø)0òk~jݘ¦—Êî®T§‚‹ÖK$æa£J*wôvŠ(f§;›Þv”CiÚN¨#Ž¿ÅÔªžá*ORý[#¼-ã?tßçó®gå÷þêåöxþ"Ã#6†úwÜð„Ë™„:5jѺ•Û;­n­™T¶#l*qË๥¾®¸Žµ„¢Îy—Öêï§çvüž[À»*’^ÍÎå]ö D\zì™áႽôé ÙãÉ;ˆÇïW>zøC-Ìo¹‰‡ g ·ÜÛ·LìhIf3‡C[¨† "ÙâS’_ÿKQö÷’lü½”8ä¯^Gÿ™‘ëÙO¥ñHÌ—"ø¤.â÷*Ñ Ò ÄÂ"oÀŽjéu‚pŒÑÏ +ᓲ*©gmÊ¿´B~Ûç3ä§ .g´]Íñ~}ç ñ¸û Áãþ“4ÀhÚ¥oÊ=|ƒq?c1†Ù®•õ-ŽöôÏŽ4¡l*~³LjïèX ÒÙs)UuÆgá1”_>z—^ŽŽÄþ–’ü‘œÍÿ{HíÒ«÷¥áÄKAq¬K^•yxúà=²Áúß«j4èÉI§8OÙÍId¦R“Lƒ|toÿD]c×B!…팩ÅåÇ“JôØÓÒJÝͬÜÞËa±—Òºöÿ‚¹tça¼Ç;ˆÇ«%w%] +†ýDÇ <ùTêkS;ÊÝÈ„)ûÛ2ú¸òÜæ®‰l,{%¸æç°øÎ»PÂ/ïB0—¢“Ù?Å¥°ÿæZ÷·»žÙ—>£/E¯ùGP=z=ÞG.Å—è/§•[þDÒ]Á}\È<Ô\ë•nÌöꌪÁ.Á™Öµž‹lœõ‡í/˫շ³A=W>Vÿüð%èÒ³P—>/½¡Þa„Ÿ½cêNçÿœV¦» §L~læ¸r}6˜qHÑ4)o-YÐ1!v11FÌfx·0$ŸYí©ÔÎ¥t8sõSf‘ôÏÈDÖe ç~ +n¼ô9ˆèñê]…‡çÛRëp>ñlçþ„ŸîzUÿí•,Éo)PÛã<¨øu/[’µhjb,iëÝZžUÒUÚÏLêàŒš:gò0ô1ŸJìô Úù¨°zäzbz÷ßÞ|Fx| "üô9Œ|éúÝx?o†]ŠNmþ%,s”…}nWñp Æ6¢\Ä+㋆]B'º©gºÒ¶€dNú#ä÷c2šM$_ö#üý¶Wæ¥_¯}öxá]Ôã§ôüæ? ð¾/¢îá*‹BDZ4°‘N5eLJIµÈ2‡kº&`Ìk<Ž1ôŽQ>,†< Ni¸¨ê§WÓ=ÒsZI‰~Oï¼ìNü5<žy³¬\ü‚„ç¿—v5N2æU¤äU#âÖ· §5M•+AÄïJé«z&sqt½/–jð†“Ìo2ʤ·}c(¿¿¬ü{Xñ瘴ƟsY7r*zå#%«±štªõKO“9SÝ«„¯šÚhnCmò¸¬6¢ä x]|pO¯¦ª“o©¨o³ÄV dO¢2;®úÅ6üò!wé½? ¨‡ÒK^çxø†ã.ùƲ<|¨ð¸ p”w,Û#ºÐòK~•î¥Á”¡‘Ž´/{:&‡ê¢­bØçQ%«@*UcؼѢÁl)†·¥Ï,®1ÜWª¯%çq~½ó<×ãÁ‹ן`O¼J<î>N÷ðA]JJoû9'¯óf²,Ð<Ð]° f-i¥ê.\€V< h«ëõ]ó¹¤îl8k>¼­~—[Öû°´Fp¿ +£|–PÔwÿuüWÿÄ¥¸¬–Ë1ù]·K:^Õå¾LöH¼@hÁ8Ô=°ESCÅödso¦]àÐu“dr»{ÐEkèÑXª` +UôžÚ0ø I{T½R‹:^$å×{¦4#h-¡=2>ƤçÇ¥ø$gWž¿ŽúåÅŠž7>HÊs)Zà“êî:‡¼½Ì"é.¶Ê¸•&IO‰´£-Ḑ +;Õù<ŽºHÚ§ªÖöUØxà™Anõšœß7w¶·wîZÕóRbÚ’Œ\rhmdíØêQ3ÃŒ›´9_Ë¥'¨»ÈÑ•Š#ªèíO–u³cƒì|‹¢n•÷"f -+¶ꪥ´ik%N´4žºš›¬uyÓü‚W..øåÚ01}VFJœS5–º´˜Ñ!FöŒ¡0¥ï¢Ù•Í ¡ÎO »æ©¼õZ/lÏ‘÷׌©˜ÙrB¬[ÛÕ¸cém-Œ{]öÞHeèêpmØœ9¯e–/Û4KÖ唦 å7äZ¤Ì,ƒ¨½@Ú7ËoLlk/*CçO ¾%’9/¬Þ°æijgÏ@¼ß›>¥“tìØÅúM»qe˜\têhï8wv ]dìŒÀRÇù w&nÑKc?Òß b$|#º¨U΀µ¦Cà@Pü+Ê1×ÊÁ°k$ õi[{‹ï @1Hdd§r€¶¤`æíYˆÅ{fäÌQ_· (ýbnŠ{dëL¼g—~W7–pH¥Ÿ(¥ ·Ç‡ë)K“ÝýSúæ*ë-YË'E¨¹¤`½ˆ;ªaCÝ®VƆ‹;˜kîïÀÄ.ËÙ˜U­hañe¬+ßÓÙSòzEÙPänC8ƒ´*ï]]oçéx—ð|‚IÚRW„.K ï—eï "z[K]PbÒ䔬—óýÉ“aÇDòþ6co›uì UmÚÈ¥‹Æúòuç"÷Qqèª'½Ÿ¿¦«ÜA%Ž‹mä’#µÂ=ŒOÝ0ÖWŸO2±ß4Ôù$¹3‚ËŸDEL PÁ3R\´ƒW2¯$å.ªp‹JLÜŽ‰T|1Czcµ¬¨^Ö~^\ë7'B…ÌÊhY ƒuI‡&LîñÅ+¥ìÄA,Ý3a/rM Fèfå²’ ž‘àS¦Å¸ü…!tô$¿Òw’qI1Sj\ÖU3&nÊœ•SÓ6Gx¢5cgÛ–™Tµ¬*ù²$ÌðÜ×!³ŽG›_§Úyß\ñ׋9S6XÊòPYȾ©sähn<g5mŽÔA–Œ„ÂYc'Ùeè­·Ê[!†.tÀ¢ºº¥gÕnê]mæ¾ >´á@G6 ¸žè«« èuZÙ’=Öõz]MO£îša‰Ž®Œç‹3 _LèœÎQ°û3 Ò”†’ã”ÑrÎZ…›xìBÉÛiø¥µ)çù|é‡C#6çÔÁ@.kˆCKîãEÿØF­<±6Ñ÷ÍÍ Û¦z„[ŠÛP왡 “ ÜîXέBD®Éañ‡f|Éš¼ò‹«³Às’“幯…†諾œ˜±9ÀÏ*6T¨Äm=6uÏF….«Q©Ç£ÄŠs¶kÀæl«1GÆÚ¸¹ðUÿZ`4kœ»3ÒL<okÛ·1à&,xCS±¥CÄmhkãöÍè´"aC‹\’A?Ÿ;©uÇ£Xð± –y0M>¹È‚ÖÕÆì1é?¦šZ¿Í²ØnEMðª™xhi }‹ØU!ãöU°¸} ,~YRé¿*‡Glëðùû&èÈ„Jù§“TõÝA*9A&/ôf¼^å^ìÏy½$ÊñúÏ2½ñû …²¡E$ºkS,„Ê£QDι«6ïë$ ¼e¨Éس ³.f®|Ÿi`îêÐi3‚Â`?7âÀŒ*?w2™ß&qÕ;ÃeQÛÃÿ),rÓÂDÍ´tÿÓÝ&=mlÙs6Ðöôº}K]áÙ±òÀF,Û·RFd¦™}8ÛÚ½j¸˜… ý¼,†|\—”~Ú¼˜£c¬Mø×“½§®ÚVÕF8yPﶪ+ZJÞ§c-³l˜”y¨'æÌT~X”¾Y–”½_“ÂV‡ðɓݕÞÓ½5Ÿ4,økî;€Å»zhØhkÜ-+æêdkÚÃí!dê¾^µ©†…® ‚߯I +ßé«"NM¹“áó‚’ i^°N>§6rù©Rµ¦(ów R³^l«K÷ u)G\Þž°©¬ +Ü×Ó G¯ÙP""Ü¢Jo@/>mO>Ù÷t–_âåäAÞöÁÂo¬Kà»rD¤³%í®qeö‡ +qu¢%㡽9寢¢"ÂÌ…„ `qwN ´²} !gK^±*Î{ïâ$yÚX±wÆZ¯Ouæ?ßÓóWdµéËÀ=o WGìë‘ ÒÊ€­Á*¿5Yu¸œ‘ò€ ºâB“þoiùj!BfûrÞŽ·GßŸé ¿d‚øµ£ÒN-˜ÂC&ïb†Ã®¹¹ch@ý5NÇþp‘k¤òÿÍèA'žÚëòÅ¥çx¥o7d”Ò} ¹øÔ„HÞ.õ_—”ø¸º²žºJ>ý’{4N®fe?˜Wž9ÈßÇH‡úºÔ}]uÔ¾¾!ËØR!¢vF.žyl@ÏJKÒê€õáÚ˜C;¹üÀ‚+Z‘ÏxÎô<›æ^|›&£ÖÔå!ë*°ïæpIð© “÷ÕŠ-ük_öß9 +áÔŽÏ ½¶´°ôoΦ–}¡p[ Ú,÷Û’C|vÔÕá_G©U'Bé’ 8ðÄŒLÖ,ku°*êPOZäåúl•D¬A>»ŠÒ ¯6dѪ´(h–Wøêl”I=¶Sa'dÖ­2fS r‹!¾{Fdò±›dÇ–¥eŸ¿Na*Þ#þ˜©§ØÈ5+C•¡Ó½¹^»ÚòðC£þlªñ}†Œ8ŸÀ”žÏ6sަ{ ßç:ÕÿÏÍlþ>ÏYSB—‹?mi`‘Ž'iØ5€xü‘SrbÆ-¸ü‹ `·±£)óïɺ?ÖYødQXí·£$go ¡by÷U”¼u9&fS¬«´ìÃú,xª¯ü­µtoq|fbÂ×İÐC:åÈ\—¹­D¤þ°À3ØÊ¾ZkâV”ˆð¹ò_-䲓\ÞºèSQ‘—½)öÆúóÏ&zä•Ó‹çãmDEXæ/&¥ß<3âÁcA?&йÇÖª¨u9èýLgúÝ™¶ÌÛ+"xÈ´;ÕSñf[†Š\ׄ®ÊªbÖå5aëÒjÿY.øÅTw±Ï–Œ2Û[Ð_þ岸"–ýÈÕ‘ýbMzw ‡'nê1Ú–ÜWBxìó‹œw"z¢#óÞD{ì5+#öÚ+íÁºòùl‘0 è%>æwG[–çù$¡bšz+ÅÄþ¡!'ÿ9ÂLúS þ}y È{_‡ÎÜ8u}¨6rM†ÌØRákv5¨,%)èO5éÓQVàõynÚÃC+*e×@,˜ç£RWøU1ÿfÎ]Äž¥:f] ð­$ãÃâ@îÓ©nГMe}•[ˆˆžïË{º"Ê{¾9Xôv´1ñš–qÐÊïÜÂÂÏvvÊÍIeÐѹhYð¬ÂoITöÑ-(|³%+øôc x"BñŒ¸<@AM½¾¡ÁfŽQaVÈ-)÷uv$>Ù”?î82V†}sâË­œô×}a9©È3;2¨µ¼ckmÒŠ$ë•»?õñ–<ÿãù<×Þ d>9¶`*þ=Ç`ü{†Rw «Ý8°#ÕSZóñò¦¦*ŒQx+Íçþ¯Ææl¿ÿÎRqÿ˜À—nÊJl¤˜;dÐU=æêÒ¸&:Ñöš€LÑÿZd4ê2Ï,uÙ»—Nv%=Xe¿<ŸÅ"Æðð2nÏÄDÚš9_' ÿ7KÅÿ5†¯Ý’ÃV…^®ö„;ÿ]j8žhîÝ6’ªOGñ%g“è¢C;ªèÈŠÌùá€ÏGQÙKÂü3ÜÜç§*úbfúéè…fÁeŽ “çû³žZÐé{&Lú®·£.÷ß*þ8Ú{K‹‹ü}MŒIê«ñl/~6Ú +zdmÝwu—y¹…È e1:lE„ +·³²oÏõ—½ßÃCw”µ¡nQÁ«INÂ͉¶Ä›Kbðë<ú›™Ys !å. «>íªqI»DÔ¶²ÜgGYøîP _‘€?Ž4$ß02ríHàù²OK"¨Ïšê·«© +Y„|Xê/}ë!Â%ÄŒ;¼š¨?ú+ƒö4¤œ56Ù-®ô³6¤ßÒÕ…ý±Â+òœá#|ÅäüÇ•±o.鈅^gz +hO vrRîXX‘×ô”¨köæ‚ÛÃTз±FêÎ06eWƒI9¦÷†ð‰çRþ¦´*XO‹¼*Ç^v´¤Ýö=pMYfkI¾±­¨ ð:eSVò~´1áÞ7óú¬ÈžWè9ÝSäwnëìÞRv²&9È@GKuÐloyȹ‘v2R¹¦rq ¼xð¨ë½Õ7ÿr²˜_/r¬ôÐ/ú¦€{Cè×W‰÷´çUÑ øÌW76gøœ [šê0>æ*&Áë7lœ×/²šð_ׄ€S0Ùóƒåa˜§¿M÷CBÿ h÷3{múº,çÍLwì=ãËU1Êç×ÑÖ„»jlššžûÀÖVúñÜÖL?3‹÷Õ@wÂ=Îç7=ñº†–xkE ß7Ô&µg½<Å•œúo¨<`ÀÿM(xOS9Ñ™|_Iнwd­Ë]”•~™îI´!+õY—T®I«‚öGjV‡aq|DâuVŽÿß^NÝ3ÔæÍ ò_Ï€_/û¼«®ÛÓWø ÏÚÒV†Y“ïLõføü߉ô}Wðó§‹9…ÎŽ¼çö¦ôÇߦȨ3€Ïì½ ?--åÆ× ñŸsŒÆ=$b]šñlc°(`U ö?ЖÅ›+¢ÿ»HÁ›ºÁ±°ÿŸ“‚ÊÄ,uYÏ\Mí{†ºìeIÎ33#âÏî’·W,ÍÉoΜD8ôñÊ$zf£”µ‘Š´ÏÇVLÀïÙ‡#ˆ¸%QöÓQvØýÕ¯Öø_™•ÔFvbR¯j¨ —+Rlì¢4Ë/onÊ{fjȺgffÝœj+~±*ÇD[ÚŠ^Û›2ïïéÐ)ëtÔ†ñåH_ÔfЖ¼ÜàÝ·“í9÷¶Õ€ÏÑâR7UAÓÜÄ[cÍ¡X©1¿O6¤Ýþ&rRT(@Fü6ÞZæÔ,È-€|puf?ÂG_m- ø£ìý³Ž’|cšý¤¬Ï~¦¡g?]WMvzšI·]OììœÇCø¸+}åa—G›`¾*fÎë!rä-÷@±ï¶²&nWLÜ&do*áÉ;Hø²¸à% åÂĨ.ã™›Wxi·°Ø{i àݦ´øãެô“™wM +ºrÑo‹`ïùž¼§XÔ]4àÚdcÜÝuyÐ;®àÔB,žçþ8ÁOöåÒ<·«¬ŠÚQ•ø99™Ï\œìW+Âr Çñé?œ ;úºŒ,pYˆ‰ÞWî+ +¼ÖD¹¯xyžS= ÷[jRå––Y5ÚYê9?p¡3qYÓÝ>6jÖu'»Ès¼=ÿÍxGö3Ggîë]¾dO[—µÀ¿šë+|¿ÐW4Ï-~;דõxCr1?-×o¼-óá|?Ä÷ÄÂ@™›òŸiI·ÿ ô¸ßš´&tE\¼x üž[~sMŽHÞÒ`R¥¸ä[¬lïŸx¥Á—5ؘ«vfxàe.»µ:ò>%ÇëoçäÀˆÍuõùê©1Lô„›zú-+=éÖ±‘Cù]﯋}³m"o 2¬ŒÔ;j ñÉaÚ›c®šèA¿m) #þ½@BnéqGRé|ñ‡ynÞ‡En¡Ïš 8Àü`gGæËÙ¾ôûÿ·J&ÙQ éþBÏmeôùDç|¼µåßóÌúÓ1x:à‚ÖÔЀEEyÀÑû}¶}ð؆oªkÂ÷tÐÈCcuÒž¡:ð4å_Žá!þëùþñÐHȽ¨Û¾pÿ¿¬CUMÔ<¯àýhkÆë <\Vã’…ôÂû–f¨ÿ¶–^²(ƒïɹ?ˆøMŒ +ûÅÂʼ=×[ùÙ-ÅÇ©.ÎaQSoÚëÑ{@m/ jÇ9ÉÏL¬/7íi·\œœ»Ó]`Ï%,ÜÞ^øfAXâ–˜ádß›mË{¼>õÞQÁ£Æz²ž©p¡¿ÍvBü÷†)yö–ì[Ï•”Œ‡ìÒðëâÚðûÓ=¿E92RBK  ep !?s+þ.E…ÿ¢ÂDþ2Êʺçê§&³*b¯µBC®ïjðe§€ÆØQÂïQàìÌz:Ó“ñ`MRðrOW1Ö }×ø³£µ(ìðœ“]9^Ë€þáå<mˆ¿Ý ù \;äÆŒü®rU޽»)DEÏs@/7Ey¯ö•`_w¢‹õÒÖswã"ÓJ„Ê¢åùþ)ÃE==1aÊŒèœCmuäÁpeض¼ú °W©Žî¬gæ¶œ‡5)O¥u‰Ï]hû/O›±y‡Zlþ|yˆ†u{º®"€Ç9¥Æ[ +žº:À^¶ÆÌÇ3=y¯Ï=t`@fN°sŸkýâØDoHQÓœ¼§Î¶”[®¶„ëÖ†?&Û’n/ÞfU…ˆm*þòk;$øæÊ`UÌ©› à|ìDGÎ[3+áÅt/àSxЀ}­j]…M"¦ÜÖ%>pt@‚ú«W%•¾S}_S È›Sz• {t2J.wK+ƒÕ”ä[2DøµyNî›-I™ßÖ`™ß†²"¨¥<ìÚpcaôŽŽ\’¡£l¬¼'VÖûñî‚ÐÈwG +ükYüï9bYˆØ!AL¼Ã‡ø^ÖÀC™jN{4Þ”öÂÉN¾«.øü7¾fQR1Ó«“6 è‹L–³ \ñ¡½&zS]ê³­« ;™¨ÿµÈj?´*ׇ+ÂŽ¬˜‚ÿ,Ð)ß]˜’m}Ià¶´$I}³0ëylÕ3êö ˜4€#³Ž/²Xtu‰ŸÑœÚ™È©ÐÖ‰+ƒ¾³ýÅ^‹¢ª2TÌ®‘ ]RáW”µá3}e&9`ÏU,dðõÃððinÁ³5A™ï7'»ûÂ[/ aÖæä»Ö昻«"¨ïž“zn¡×®hÐi†–Ìûó¢Ú¸U!Í\Ÿ}cse{}tE üÙL¿±Ê¯‰Ø×Q ôôô;sŠvtdТº xÀw÷@^Ot•<_“¢£7¢sòQ!¶LÔHS¥“Söa‘õÞBD.ˆÉI£]¦û«¿œY›™›ZDô¦¶§¢Bv‡èÐAµï"ä9ÇË}9Ýø~NuÀ¶†Z9-B$µû‡úÿ¶Ø òœé)|=Ú +~· ¨ [BÆ iV$ÜÙסRÇZ®;Ûc®ÍsÓ¸Z"n¯ Óßî*˾ŽÒÐv~U@;4êš‘Yà÷OgKÏÁàdT´¶!íž’{cº/÷ÍþÅg+Zt¢£òb²¯âó–™¶!*ðšá¤>˜jË~8ÏͲ¡¨ð;¶zßF‚º¸Å¯öŒèô¯9éFÝ®½%Í{7Óùb¦+åÕŽ·cÀçŒÔ—<‘!3¯-óa M2꿎R`;êêØqvì+GG–¿‹WòaNZu°Â³]üÔÇcÝÑ·ÖTÐpcKV½+ããþh]éѾîl^ýÏBÝ7Wd] à€0÷ÙÑ("uu°*hMŠ ÝÑ`“Oì”òíaLü¡.y[`œ¬ÜçĈL83ãów´äÜe6êÄÌ„­ ¡c¦:‹ŸÍõ•x.ŠÁ¯FÛbn;XÑwv%°ð“zõLwÙ;wÔç«™Vq`@%n+à¡[JDÄxGÖóå¡2ŸØkCY»c¢Alì‚ûVVÎC§èí²°üó¦q  äî)‘®îü·NNÞ³C#&kÏ€Ë\‚Y‘ׄŽs!mí%ïg{+>ŸÛ˜ð)gºá».k*_¢g»‘!nq¹ÏD{ÖC· øÝÀO»tÜ©X¼./ó[—V†špsý¸Œiô•¥!ëŠ~ÃH¹~jb¡vÌM˜i16ÞÀÈ»½«À$ºôÄŽËßÖW…Y›ò0@Í ùÖ†QI›Fdüš¢àflá÷‰fÖ7­ÆÅ}¢Â¯SïÌ !÷Gàïãͬï3=%>*|µáÀÈ€ÎõÂ,íŸt­e^}¨ô?Ìm@ cAkòÂ7ËÒì×nIAp¿!âÒO‡Úª¨Ya‘¯š–~G ô' kKϬèì%~Úó‰Æs‰/Ý‚¢€%Ø{_[{1{W„»®kÈó?¶¡_íuyxì'í±´.ðÏaJâCsKÎ [ä“¡¥äMQôË+C”X¯s+,e¾'ûÅûµýh¼9ãþL_áë=S]ž˜‘å™î}Ûƒœúá ¾üÄN®Þ*ò祽˜ìH½=Õ]ølATùy^Vû¥u»£Ü÷ꎤ#æœèqÛª²ðEQ~À–²8èØ\qlG¦9zËC-|°£F'ŸYkOÍÕß'êÊ¿O‘jÖ”è[k‘—Ÿ~}[C(]×Ö%.«jÃæ„%ÞrBÔ >öå¶®&õ|Wwî$±æ†*b¤”Ø{kšÊìÿ¬2šþé¦à64e‘ææØ;])^›ª¢/§X²KTTûîw8ðõ…f>àiØÿ¯Î>¶B#fD¹ž“9o燩%duùiK‰K:!ƒö,ˆ[ÜÑ"âwe§XôŽº2lº/íÙÜ@–ç\Ñ«ƒbÁÆ06mžWé½&©ýÔà_щÇFTÒ.€5®ž|/)öÊB/$ô»£™¹k@Æm)j¿ì(Q±ÎvðÛm:u—¿g æ^ÌÐqv‚¯JQñû:JᢠìãlWÁóñ–¤»#Ôˆ+üªÀ_͌ԇûZ|Þª ›4×_ýñëu4J(:0×eïêªcŽM°$À[Æl)»j&ÄÉÄ.¢bÏG©•Çftú <ä|”T¾©¬ [‘€ßl•z晴ñëJ|*™tãbFèÖ0.ec¨ÊcòþÌB­\´÷XOáK9:æ÷3¡p[É\Þæ‘0/¬›ä”}šé)ó=4_|ÿH.ZÄÝž9v0qy’ãÜŠ(%;`¢»,ñŸ³4êæ¨äoc¸Ú=6R¡ßÇYôïSõ´S8È¡¥2fe0ÿÝ2¿Ð뫆Ü!Vkèi϶T¨ÄÝ|Ù®“d%{YgëHõ6µD½rrŸ|C€ÎF¹s}¹^˲„S+ ~d¦TX¨åûct¸•_ú©qUGËzº©¡, Ö޵ç<iHy<Û úèÉœ+±hK‹NÑ5g>5µçø˜(¥Ëxè² øÕX[ú5!üîTgšç÷1èÛ ¹nRX¡¡ç<ÛÖbrwMµñkRHIJ0/ð ¡³%oMM)'¸€‡)å’_ 2r>-©IEÖúÚ}1q Ì_‹} À†ß90#RG ¥gNRÕ¶•¹3ŠÎ:Ÿ&¢Ž¸ªó àÒB·¤"bNŒ·÷Õ¯êꊾÏRp+Òâà¹þÔÇcØŠC'ƒq<ËbïŒSP‹:rá®ö»TG›àÉï¥ÌöW}\–ULõd>Ü–—ù.–¶7Çßpr’﬈K}Ní´šƒQZ͆—¼o¤/‰«|¶ÿ½>Tä=ÖÓÜð§™™ 諊˜oÌÍ‹¼1>óHGÈÚר±Y§Vrù–8Õ y3Ù‘ÿxS‰M_” ãí-9wç¹%ïþú<×Uê?ÙZúi…_é¨Ãç®Ëà‘Ë‚ò_'(5Ûúšða¨ß†¼ìó 5O-¨´¯"øÀ@›ZÁ¯ÆÛAŸOŒøü-<æ«Ð,ÿ›k[²&+:Ádíj±Ëžh)×O,IJ‹|wSSÎÃÉÎ܇ʪÀ9ÔgšWôv¬-çÕ™X²ªDÇ/É‘Qù›G6\þ†x¿âJ¿-:íÐH)ÚRÑA[*xZT23Ù7±ÌmÍ_Mô-2g£ÈÌ ä³›~³¡AgÏj¨P³ð½Œ’õøÀ@ƒn)êRväð؃aDü†¢&jMY´©…Gž8ê1³TúDWyÀLMäxwY”{ 8êÜV•öÏyTÉW'ìèÉ{2ÛWrjeѶ 4Øž›ÿm_±kªŠ[ùé+S¿]œFg÷#b¯ïpÅ-6wŸNPàÇV|þ’ ­È© ÍaFÕá¥ôÈ„LY“WÍ JßµóéÔN(Ù7Ó«]eÆ9OF)€O ÜSBCþåÄAGáùºŠ5e¥ÿEÞÖ2Ð[fVî[}úÃ#S-àÐYû#ˆŒ3'~0IEöRŸKè~órJÑ‚„êì«õe—¾Ô‘2X›²Þüpkÿ½ÈløÇ,µe…'­›IÿÝ`²ÿ1O&lÃâf>´ZàóÀÃ1rÅÀ“Ú0¹Óýà7îÁ²À¿Ü-üóÙ¦®ýQ2rQYõeQ Y‘•|˜êI¼¹&J{´**x±!'¤îèê«–‡H9ëjBÚž¨mymè¾yf©Mø1ŠÈ¼è©M pÁ(*ãÔˆH:5ÖåœÜ°6B„Œ‹*CæáI߯È[Jhà†¬øÃš¸àå¯ÐëÈè6 u:ÎÄÛË^vT…ìê›ɬüî —[a‰‹âÜW«2ÐûCcmêq*ñ égİà-}]ê¿æ™ôoNbÍ™ –´£) +žìMyiïLzèì-xþ¯fó–©®ÈÄ.|9;Præ`’NFI˜ÓQì@_¿!/ò?ÔVGèP ŽFšª1ë…¡%'ðÐL©<¶S+OlxÐù$±öû¸®AÅψ*}/²”O'Ûº/¾÷Ù7Ö¥íé0i€ßÍþjÇÿ=…«8¶à +¦øeÞSÇ£¤* %áI_‰Ïµ©öܗ˃Åw°¤³I2òëTcã +P+.a]ÄE¿SaûfDâ–¦èËÂ÷k*D–…V±gm",)Éù +èž­äV5@V‡ñç€ÞÕB#gù…7´•‘{6dú×¹†ŽÓiF½ƒ[ìki{ëZ:A"ý˜£2-Ö|è@æ-ˆ‹ß»¥÷ô`¬žº¤@DnêÑÉ»\ñ×qU‰]DGn©0‰@σ” 裴cŽÇà‹|çuEuàúà‹¢wGÐû4èȈH82Ó+·Ôø”}3¾àÄEíÚÐ黆šˆ!ЛeAú£uiÙ§#]cͱ©¹¥a@g…˜¸%96}Ó€J^Wׄ¸Ð‹‚â7¶æŒ{VVÒÍ]@×}u0Q«JLÚT_™×X;è‘“pS½ëê(ú¸«DÆYYùO ÄôëîÞ’÷ÿp4PwŒ°ä9a¦çº +úeEVþim°6Ì-FÆO ªGX·Ž¬¸²¯“ ¢°Ôw®'õöD{úý E¹ï¾®:ôÄ‚J=²‹7t„œ5!eÓØß±PJ6†¡ ¢BOC}ÂÍ‘¦øgnIyø_ñcªžºc€Åíµ´3ŒŽ·5åÜ·±b®­J@o×þÓ<ÐÛ;:ïÜIFZHåGFÕé ±(.úàhN¹åh̼kg%ÜšëN~úÕT“|f«GÌðáÁ––¬[Àýýÿì½çW\g–7úéžžiwwÛívÝ–-ÉJ(!!‘sŽ•sÎ +ÊÁ–ɹ•s¤ÈT•sdwϼ÷¿¸÷)Ï}ß/óåýp׺¬Yl­œÃ9ûyöþíßï„gŸ.+÷&`W=³ˆüÝIÈÅÝ Ä%„\î^âuËŸ¢¯?€ßþÏ©jäO¶Ÿ#ð¡È3‡­Y{Ó|rýMͧÎéž«i‹üb{¦'govÛ5+ÜkÍñ, KR¾ð`SøÄ%Å×+¶á˜$×ä (Ы=~µmgSä•k³ëì§t\úÞ‡2Înþ|EÜq+$åá7G‘¹¦§]}ÕqjwrÁ/ƒd¬\¨K?$Ì÷¶fÉå ÛÐǽÝü=ä´\\ñá½æÏÿiš|ówö—=Wc–Á§›Ò>ÎÊp×–—ˆÜh$ ‡Vs(!5‡RrPN€A)µ=nìïÛž¥×î=›2Óû«lÚ½ÿQÂÈcÿ²Ý"«eu‚×`Ÿº‡³½6oM0*z.Œ=>fìëϬîoÝ›‰Zy<—œÒ´5K­ð.ò}Rñ=€w¤‰ŽJXI];3Э hqH‹ïH­ ÄÛ€lÍñ!^ՃDZõG©MÐ 4IP#æTÙõšmιÞ+[ã-'} ðܘ’ÞÓ°zÜó¸Û@ÇWGÀÏ}l¾k~ÍòcÃ)Ó“ª“Û¯—÷ÇÚûï†5Ì¿”Ö”]×Ò4ËÖHïËÓöË[ïà¥ÎivÇŽäéðæòÓá1fs‚zÇúì´n¸æÃyzá¿®pïü)¶‚«Mè„[3CÓ;~µù»lm„Q¼3N-ÚÅß” Vüù%ìòÿP°kþâAç…¥”úÍIüÍõqZµwE€µ4_u¯ê£ÇˆÓ¿zŽúæWÊ¿M˜9$·ŠO°½ÃäîŒ!¯ùÉu †åîÍA¯ú$]— OËþºö®ùt@0H9ÀX› æoŒ£s·'ˆ•;“¤Š‚Ôt°Ê¡Çµ,¬k~Ss¯â/k¯:¿üpî–g=9a)³3ËÉ +RíÖhÛuÓã²ÏWhü›àªõ³jŒZôÛe~ù_³Ô:ÿ6ï]÷eïdo¡sqkIT÷gÍ£Î/\@s^¡ +”_8'{rw'Ûθ§!çÝ3è;›c˜[ªÇßHÄ qí똧ÖZ~lûÚô¬õkÓó® ïºs˘†”‰OY…B7ÀÏõ9Ü-Ÿâ®È/gÃ# +BCXN¨[×qÎ#…íÌB¯¹æ‘·’&Âörzk]7ói!5¥Ë¿„.Ûi?k{Þð¥áIÝg{sÔº¨FÌÛ“ÐÛ¤9&q·ƒRjKPоsh¡ôfÇð1Lö™ÐíyzKÄ2ôtmŠZ­½¶úŽXd~ÑuÉ3‡¯‹k„¬v`Ð:E«µMà B!-¤eÁ×Çz¯8æ·÷±A%½#®§weV…¢„Y<´8ÉÞ"ºd-›䦰”Të_Fú³½—¨Í~õ xOþìGãkJ‘é%ì; 7pÿpÞ›MÛQ€S©U>7l !"&&!aæ±Æ» 93üêO½2bÛÏѣ̺ ?ne1½ +L­GIn øô„µÿnzõþ»ˆ‘K‰˜pà+ ó½ïyæMÞ‡÷KI•!)úv`•ïžFÝ|ö–kªû‚oP‘P÷Q÷æð·ì#½gd*>V ünçEÏé$Àƒ} ¬æã|²A¦sžÛ¦zÔtb”põŸ”âü?8Çá>ÅÃûvÉ=ÊæÜbw–ߺ;Á®ß|‡ÍÛ5Ø9ÒsÎ=Ó“ë˜ÁVnMõAÖ§îc7gïvgx­;㤂í1BñY{ö­3;/zÏí½†]pŽÂ/n¼Ã]Ûåu{¥¤{_d|Òsþ åöÇ#äÜ?m¿®ý6®§u;rÌÓ«ý+|„o…Ù½6ÒõÍÎT÷9Çtç¹Õµ']3WâZzWvÍDû¥Ôñö€üÑcߊ´OAÌHíôI‰U/{Ï®¾ìÌu/›·§Yuªûˆ¯÷æõa%î^Àºæ×´÷«>6Ý/ÿÔ9Öu5 çÂìcÌ*å½¶ïì?"Ê¢rÖ9Ë‘ Ë?œ¦üF%.û£r°âÇ4îŽWÊéY~ÜsN6Ø™“Ð0á^Io®áIÅÇ£ÔÂß?G^û·Yzá¿YŸw~ëSòѺ׸¼fåTº¾ Êø¤˜–ONx¤ ŒÔ¼>-ØÚÒ!g´{U÷‡¯Ñ·—«OUê]Dׯ L"ˆCØž¤·, CVïLvŸÎÔ0Š'õß*ïÕ~æïÍuNöÞò/áêz>-a²÷¨R©ûÒøC×ïb?Ö1#êüµÂ1‰¸¼2PöGÓ³¶3Å»ÜÀâ³{sBèÎ(êÆö(öš{‘Õá“‹ð[3ôråpûWJaõ‡{#ˆK! ¹2ªÊ®‹L¨òÌc +<‹B¸ù-å–ý5&góUÇ×Î)Øåœ ´Ÿш™®EjíîTÏ9ÿ +¶,¤æa=‹äªõ7õ'×_—ÿÍ+éÈq/ÑꃪûbÚg¾fo™—^eââfÚ½LªØœ@æíÎKWGð×WG‰7=KÌ– ’ƒpÍïDŒwXæž]¹÷­îAÑI÷lû¹ŒTQˆÙ~Űx”}çwŠáæóÛ#ÄÆÀ©%¥&´ÅU¤f ›*Ì?t³3Mkõ-Ó[ Ï€ ZêïøZ:Ô|vÔ⸔ÑVÒ:íãèkêï!ß­Žà@¼ †µ<\ÂÄ!DÔ¸JÏ<¶ÑÚ;ÌuÓ³Þ³ ½÷½¥0r.,CW;& 7]‹Ð[N9²¹Ì‡X&˜³ü–l¯¹ë) öu/,ÃW$4ÄÖ¸ +×°þºåLÌÄ¥„­ƒ-ãØí‹æ¯£Z:h8öÁæÀ{ÿ㨆ø?¹6¬bvgVûÄ> a »d~Öü¹éiݧî\©_Nhú {`äÂr\“_-LÛ訽låîHû©ÕÇÍ_îŒ@s}rr§_ÃÀƒ\`§Ö„"‡[¦{Ë ê†Ÿ¤×N:úŸûµÙuÉM~`=ê2?¢ 4$´DPÎíu-°³Œã÷=_+‡;?‘´&íküÜö¼÷¢/û<©,Û'—WíÎÒ«õO?]Þüµb ø÷FPW¶Þµžš¬{o^qNðü àë4üòîXãçAI3ˆ—êO /JþMö°ô¯«oºsƒ+t×¼²;I)ò,pZ¼Ëœß"©:ðKBôÍiîÍÞàNÿëÞ²,®óýª~úö4»Ö ¶uÏàn9ÞtY•˜Ÿ•®.þ³O‚*ôÊ8ÐÅ{=§õÏQy19§`2,e Á¢bOŽ)Ò_ý‘ñIéGÙç¾ã&±È'ë#º°wöf»®Ä嘪”ŽƒŠ¨½a­ÝòCûéNÁ‡Q ¡Õ¯¦µ: ÅþeBU`™XU2ºâzÞ»B(sIðE®FsX5<°=‰º²5ÒufI\ùõ[ìµO’ÞÒ÷6/¡qÁضÛFP×}2É/ãc\³¨ëoª¾§œÿÃ$íêGîÐx÷moi…šÇ°¯5á'÷Vxû»î3@ãÙ|]ûùÆËÊ/Ë芸ŽCJ™†:爛S˜[ ‹¨?½Ú7ÕÐ;¢J\•sªõÜú›ò½K„2péÛ½ÔOðËØÝQ ±·‚,t¯ +ÜK¤ +¿’Õ“}§Æµ€+ «¿œ ®«’bKÚ@Áî.0:Ì/ð€Óª“¶Ág[B­åmçYÓM'í/;·ՔŽì5b‡Lˆ¶O±k-#¼¦…Êú¹Mö¤åšþ9$Çô}Ë·®hAD†©þyS0ø¼³"B9V¸]1ãÀPPÅ‚øäúYĵí)襠šÒ–± Dïw_nÏS”O`§væ8=™Uñݿ©ðà|çÕíE҈˾°½…ßÙS ô«^á ¥C-Û_ŠÿÝ5ðæÀΚ¨øˆ´§Ò;Ýpak²é›‘ÃÌöß^ÄÖÎT|´¿-~þ~{xrßÎîJe[ï g‚*6,¨àÁ½ËÜn÷"£qsœxÛ>B-\Ë®í<*lt-ôÁŠ>‚WÁé±#.Z„œÜ#ÜÜ“°›7Lj·­?`¯8Á¸‡,HÂÈŃÕè:Ë9I(ðͳ3¸üí1H–G]ðÌvñKùauvÙ=A «{g –¿ñ¶å;÷ª((çô¬½ŸsÎâo»›žC.¹Æ‘·´\Æ(`zeÔ&û[TÎÎ4ñÖêH×·ÆGUúgÑùylqLJiLiø8˜cÿ<©"(¡ÔfL|š{yÃ=ø„u+¤"TûåÄÆ„ž9#¨dA<Ëìΰnp ¤èÉ訚uÌC.¸¡×œ³°| kRf6Ö³B©¨hmf6cìà"2ß9Õy!´‚Ú›‰)Dì¨úá“ÕQ̵YzS¶–z™Íx¾ÄÃÞ$äòúíߦÔBú¾uèIL'¤{–Iå Û+ÔÆ½YÄMï<´äXl¸æ´å‡ÖÓ»€·»¤,¨ p<÷<¡6$±b¤#¬4à–Ý»»6Š¿±3G©ŠøÌ¨‰LZyÌ„•Ãëé·”RƤǫ¸ë׊8®Ü'Aæû$°¼˜Q™µ3löi‡ÖfØÍ»³ÔÆŸ·^¤mlæö8ä¬srÞò¬þâÎXCÁOkTÊ¿ïõ½È¬ó8Ž%l­m RÖqøÆ» ·ÆÛwé©Hš‰=`Lé>îXà´ßW¶úyѱÈjv.ó»÷VDÈ FDñ)…8·ŒÛ»=‹¿µ9޼´ +âxs{sgšZº9Ê©ôIĨ¸®ê0Ï##U\.pL“Š\3Ü&×<¯Õ1C¯pÎ ]SˆK-©> ¢4ìÍcò·Þõž• +Ë~·"¸õÏ›¯Û¾ ƒuL3*³±Rrz²9“ÐÒÚ’jB yks z~õ%òìö$ètdÎÎìrBɆ†— • ±Î¿+ÜzS}Ú5ÞqÆ=¿Ó3aÞeB©G‚+)1½+ïû6-n ´;f{¯®U³Þ{ã7 =Ú™¥U' \¢_*ŒëqÕïí Ô•)ˆ îD^RKlŒëh€B/‡–áy¾…Þëi5 þëàý÷ÆáÇq˜ ¸\µGÁCïJèõ1ü ×ôòîh÷'¹Ñ%RcRÝψ*ùXP+Û\rYÒ(b³÷`&!Ö^×±ú¦åÌœðÖ¿M~Ñ/å"Öæ¶wä;õÐ@Â0Ð×PÚ‚2tñÚHÛw+CÅrÏ·_N©=éU‘(¤ã":5mûåÛß2òf`U´;Ùya{¼çRXÃ#&m#:!Ó»ÄîÈÞNÔ¨œÑ–«+ØRÇlçµõÑÖ³Ùû‡fñ`Ê,½ÜèY$µlMôÞÚí¾¸of“R6}GNªÕ¾ål̳à>ÝÀ@ÐØÇ  ëEœ˜µ0¹ÆxtB–qŠY£|…½4? ½Ð Ý[†"Ù^V2jËÎTWAÊÄÀïÛ}IÛ£9¯\@Y{ÛýíÆüjÂÞ÷Ð#§´U”¦ ŠTï•‘ë# ORÙ{kgv–90Ï2¶(a`ÀÓ6)icb"€oEÌ|zPÏAM‹éÙˆÃMA¿s W§~Üù…o‰ š™y°Áÿ}›É‹hñ>¨ËFRËûMžPþR¬?ûkÕ³–òŸvû¿ÿŸ&'(#׈UVKöþkTû—Ù[Sèë¶Ý_w~i~Ú{Ê1AÌò­6À£š£@;ÇBfDÏ'd{€†U¸2ÿ2 +à"òºÄ o™Ùì—1Ûb`>wXžW~´3Rý©c¼æSçdÝ·þEL±o‰Þä“sº½KŒÆ Š‡ö‚8\«?é˜nüƽØ{Å-é½â•  cj>)¹:ô,»Öèæ¥4fà kŽù–SA9 ÄúÖÎÀŸ™ŽÓ ­kkžÙ´6…ºp¼#¦&5†–z 2TMD*Ùšè:· â1ôsvMóé¾ÎO]³”êHö½¾eèÈ2´èÌ‚\®c†R +q ÃàÐî,áÐÚgƒ2z¯_ÊèsÒt8#nºïQôS÷$BX¶O°Kƒ‚] +r¶*¨À×EÕøÏëæÁ“Taj¶¦º.:æÐE)«x næ’Ã*jsDAï +ÉðÕ!9¥5¦écØxlc•¶›¾´¿î>ë\ õ>€]ÿó(µð“YQbƒ‹ØÊ”†Þu`âSãZÖ/'7F³ïoÉûi»°K€ƒxe蟞…IX…âÃÍ¡W‡ÛÂ{ŽeLµ_ÃDf{)x”t˜_©Ü˜ƒ^Þ˜C\óžžÐÿÒ7ê>ˆ+NÔ}·éÑÛ¨mðÉþUbëƒr Ã—H•ž%lqÒHÇìoö?‘=êø*¨¤tý´ÍØß|kƒÇX8T‡œÕ³:E)öHIõßzûÓöÀ=Ñq±™ ÷pW8œÙàó’tO†.ÚšÃÜöÈéÈ”åîÓ„i è ž_FhØ[$Ô…4äî” +é¸͘›óƒMßùxÔOÛ jHÞ}-(Ô%´Œî¤ŽO¨iíi{?™Äâ}‹X7©@÷”¬½ƒŸß&zWx t€Ê^SÌö5”{³ÜÇþªáÓí±¦¯Rl™WJ,÷K©ui#Ÿz¸:ôü`U<7°‘!½Ä@cP6@q/à½R!Ü¿Âjõ/J+”j€çåîJyRÅÃí[úÁX +™>5³Ó+òag™ß»·H©Ú[į .8f°y¾jدzãäìÎ8ì²…Xôy›cšP´9мjÛ}:¸HªJ™ÄýA­ˆî\$W:æw|r6į|äÙæ ¹ÜòvÑ>†Î: +x=/;V)Ðî +v·OÊlq/SªÜ+¤ +¯”R³6¹ê^¦ÖÄ |RÊÌDÙ_Ö~æ˜lùÖ=ß{esz1('Tz€žÚ0Œ¯q91pÜ ”Ö½9Úyzg¬ãl`é—w+›âj&­~×°Q Þ+@mmŠèEŒ ’ =X¥Bl”ΘŽÒ|`g“öWûÚ~¦ùG\®gÞt°:ø(meS¼‹=WœÓÍ߸f;Înµ]ô.!*’ Ö„ÕVXMƒ&t|rp¥€ y˳ˆÈÛz 9§Xõgû«Žsžb­_ÎÇéߪú!W>xM©8X¡÷DeøšÐ"ævè¼à¶»Ó˜[ë£Ð܈ž…u,rºm/‘—26;eíÆt\Ò¾…«Ðeî¹æ3;ã 'Ó«ý÷¶däæ…Gu'Ür* ä3cä`ß[¦6Qz7^7}-¬øÓÆ8º;±Ê!f?©Í¹½îÚ=lb &y2òÙ;S„R¿‚…~¿5<š²s8-­Ë)ÁmÏnï-“«¢f:úg·ÿý6ƒá^†UÅÔL ÉyQ%ºè—ˆóŒ–…Jø”H6VVð•ÎlQö™>¯ Uì˜í¸Qâk¢:Ô'åv{$ôZÇ<"Ïò²á³­±öS =¡>c!¶Ø ¶åý›œ¶°±@c¢B2N·…RïZ ”zWØíÞef 8~wJËEý¢OdÌÖµ—íçÜsˆ¢¨–Þ1°aíØ³òä¾sqh"ÀùVøP×½|ûæšîqý×ö—­_–é €—€ZÇlÚ]d7ë~@W?êøü®o¢Rr­™Ü²=ƒ+q~ã–ö€6ìÞ’0ëw$‚^û„µ1ɇƒ±JíÜ™BUyVè>•5‹ûKÌ–µ)ì ¹Âý˳[¤²ˆ‚TW“šïé +®ÐÖbÂ*!É%zx…Z¿=¾êÍÞ [Â߉¨˜½yJÍÎ$öFDÎÄU8Ð7Ö^5}½õ¦ó¼o±÷rX,¸ ‹›X(PGšãF>ab!†ºí[꺑ÐP;‚+ŒVÇ6?£å’7.õlÊæ$ôÂÞ"¶*¤âbÆqÊÖ×'%·(†+OÈï–}r³+(ããWßõ~·;ƒ/ÍööH­)€ãq½€±úž#¨ÿtŽ^ðáúKH ˜›&ËËÆ¿:gàùq –Ôòpi{hç±×ù½Zóú±(öËõ1.Ú1ƒÉ d¯÷+©Ý!½oæñ@ »Ô±µ5bzž´ >Hi™Ð¸ +_Q +wF{r<ó´Ö¸N,JZº–@MÔ²0I«à`Ïí° +’Ñ¡Ëbz\{ zsgг }x×ݘ•…ÎØï¾Œk¸XߦÂþcãÙõ—õgG‰~ÿ ó³_™^TœÿÙ)z±pÉàCÊl‡S6.=³&ìOÚ8lÏ +ºÉøCÓ·Æg-_ì-àË3v>{i¸ê«­éž;  úÞÆ&ýl¡Â¢+øÛåïh'Y5Ÿý¸š‡Žk)mI¥-¢Â”ìLµžô.# +"À% lTTÏìþ·F5ôv¯ qÛ-é¾~`¢ö¤ŒÙð¤20ÿe@ÏÖ¹æñ•¾ERÍ¡•‰Œª‘ž•ösž¥Î  †½_ãÒ’K" +>Ê»Œ/u- näÌ÷¨ „ŠÐÙWaþez½õ‡Îs{3ȘŽÜ’¶ÒzÃZ&ð<Èž”×ëS‰n™ãšfVm¿ÅåÉÊ>vL´œ .cËÝs„rŒÓµ½"€®Íºvf8aâžÇÜ endstream endobj 31 0 obj <>stream +²½ì:µ>Ú{ü.X@# î.Q*w—˜^é=0ﯦ½ò!MÕ9Ï3m??¤ïãdß+v΢nn¾m= tÆÙŒÝ bŽõ@¯ É…ï­.*§6–±e»£Ð¼íQÄå tnHÊîŒ)…xסØþcÇ©ÍwçÃrLiD.Ê¥îÅîÛÎy\±O9À iûœ èBûëº/ý‹„rÿ"½Ñ3ƒ½ý³‰Mz¿q÷M@Ï£ìJ(•!½XÔ?‡… }×"®Ôø¼þ;Ûë–[Q‡àšÂßcÎíL2j½KB¤w SS£ë}K¨bÛ_I¸œ$çhyÞqmw–\º<\÷!àÁea­×1ÍóK0e!®. &Ô{Ô† ²1ŠÅŽr•cW˜Zö%­B~TÏ¥†ÕDDIh )( 1•´?˜NÙØú‡¬|Þ¾…G(8Ș†‹‰ƒy Ê15#§ü*JGÂÊ¥9$WCJdePM…íŒD‚°ñÉlÌú`,lfQBBcÚ*¾\¡6Ø_4ÿMÂÌûgÍ@ÉŸÔwKϬ½©/Ü·SÈwŠ Ìò«Y°ýÍïÃFÞ%!VoŽ÷^3¾højc²»( ÃÕÚ’00aóý¥ŸØG;oeVÙÄ´žÒ˜h>§•|ü¸óò? /pvýÀ +l`y@E®«I€»`‹bjÐòLèÎ,ú¦k]à™'–hui3—ô“M~¿Ê@% ”Ö€”TXf4$4lXJËÇ…¥ŒÖ„† ‰(hí1 šÔ³Ð!%½5¢atúd0G̦¨Š‡ +åW°;צÑ74ÏÚ¾ò/‘ªÓ6Ú09¡î£'t< = µ-²0¤BÞÎjPOk¢ZÄ«`ÍB« +˹°€”ÞQàÊÍÏêO˜5 ôNGP´‡\ˆ (ûia¥ˆVñÈ!àÍ4ªÃT{–zsÝ@ËÆ Lä¾yøIDwÿéÞ +œ +êp÷ÿ2òöæhãùÕ—%'ü`¾A=ˆÛ‡¾w«8ˆl}Z ë›§·æÉÕþyÔmÏ è$LQT!$†UÃw]3ä2çêªþaýgÖÇŸ~_SR𢠢Êlñ:|nw\# ÇTÌνYèuË󲿘Ÿ•~–S IËðó„¹OTÑ;ü2:¢íçÞKKhÉMÁÅžë©Ñr0¬åâÒk÷F^?ðëú¹!ÃÐPPÍê ¬ªË`ü”´N×,µz{œZX 3ŒÚõwMŸ9¦Ú¾Ù‡_Ü –9§Ø­ÁEfwXʆîÌK¬¯9a%Ÿb³; ÉqNa ürJcÌD‡¦×xÜ„éî“°®Ÿ·ø$Ð]ôäÖýi ÓqÎÂSš6’!ïW¹ì7)‹x0®ÑlCÏÁøEÔl$¨“­Å/÷^òý`{¿ŒÒ™²ô ¤íýwS«zzuðYÜ,äÆŒllÊÂ"Ç ,| ÔØ [¹·Üs)âÄ=‹¿íœFåí͓ڢ*6é§Uѽßf°D­sžXc!¬¾%Ý +iïýàÕ° €›Uä´žŒ•#þyË .Ӛݳ@ÿJÐù;3М°šÚ•å!eöú]ǹñÞ›ö LãÖ26ˆúÓ Ö#\yH…/Û9p`q-BNÊÈÅ9°E£]ßl½mýÊ3Þs9.GUXY˜C»w¸&ä'-,TpÝ€’\D\IÑ1%µ1©eÁâ žcfW蜴™GN›ù䘖ÞT ï”Œ6¿\ˆ +*XÞåAJXÁƒÇµ\t`v@FoЍèmq- š4ð‰!ï†Õ_̳.þ³aàοE5D€ñtHXÉFûåÌnϳÙ3ÇíØ›&–ØžÖ|îçêFçE–iõ1 SSz69iáÓcf6àS[HImް5~yëeÿrã)çtÛ©(ÐIC¿0¡{ðÂ#%7Y^7ümí]ýiÏ$?e w=ÙjëÛêòîµhµ œÝcú¡ãÛÕj¿J¨ðµU’»³ðRû;0f“ø[i?) ãö8f±Å˃åÍñŠÿÕ3C*N“‚º5 4Ž};màbãZ6, #ÕïŒ×ŸÙ©ûÒ»¹”Ð3 ãýQÝ 8¨äÀ"Ëü+ÙíA\i‰]Å΢ˆ ´­a[B­‰ûû| çÖF°y+⶯lOÛÿ“Ãn¤Œ„¦}Róq{‹´š€\„óI‡~Å swsËø´î㺠ë>¹Üš6÷ÆMVzUÀIšï>qûp“ËHÙi0ç éN@ÎCÄ ba2Ï6áÝ€‚‘]­7½6ü6³&:\cÓ]X™ùiË7)5`‘ø~ ¼Õr)~y?9ªóbº>QfU úy§ï!Èd`iHÉè:\bf&&¨!·®Z”‘Òâp•IÌXÈ=Q¾a{¼û´G‚ºý~]t?¨ ·¬¶\[ÿÍîdoð‘ôg_R?ü8¢vƒX +Yùœý¡7 ^ Ù÷N&©5îÃÎÇA®&µäΨ†Fˆé)ðÝYÄUŸ‚ÖÖ0 ž9ØMÛ‹ºÏµ ?Û´$õØÊ¸]õ4cà`Ì}üŒY, +¨í–·_«VüA9Xð¯öïË?9´²ñïׄÂÃu¡ ib³ï/ÇåôޏœTXê¾ä˜ì8¿;¹à]ÂEÔ´æ÷vëýš€—6qqQmöý€Î‹Þbypó´IÈJ™„Ì´ Ä'жW‰0ßÁBETA¨ ËÉÍ>½ysU¸ú¶óÚÞª8e¤v;ç;¯Øß5ãÈöú^ävù¤T×<½~ý%ìfxžPšÇ—n½n='å]ùpëMýɤƒKZÅCQÓÝû~µˆì\ÁoÍ´]ò/£ª} ð<ïì†g~gwyÇ#âýª>fÜØÇMÛÌì3Œëo»sv'EÀ#*ÈQB½kï]¡Ö¥tŒÞ”ŽÜê_AÞ²|_ù±åyõ^I見ÜP °îevëÎ4­Üö†oz +9éžÄä[ž6|£—¡.ÿ08wÚÀA•ŒVûX÷9Ë5'£rhIÚˆ­ó.c«<‹Äú ”Ñ’‰°!Õ½»a5á^@䛟VÿU¾ú›½±Ž+Ùõ‡¢:4¨¢týXášc68&øíë?âs} =ãzØí˜W0ðˆ1€=ikÐ ƒ£€æ\fC·ÆˆŽIÌM÷,{½/{ͪԫĖgÖ8ôÌêÀƒ¸‰G‹é= 3Vq~)½Í·H¬u/`Šü +TiÒÌÂï¯ þZ8çRý +rcLÇ@&t ˜{YdzÞ|Ió¸æìî,º: ¸×+ä˜^¡KVG{®¿ßzÒrÐÙ>²û: KtðzÀíšc.!aþ>e¸*÷bo®k¾ç²{–RÂò36BûÁë‘÷æ:%½W—§ï¯½È®1“ÒgïwâƒrBíþ*u°Áãg6žû Ìî»ð™Ö˜œÖœï¹i¼_üñ²¨àö·§öV°€ç2;·§ð¥šûÍŸ¬¿…ÜtK`µ&=m"·¥€ƒÌõæÄ5Ìî´NHMÅ€†ÞiA^6¼„]0½h= æ3ÿç þ`•Ü·±°1-£{ßx÷^R%¢Ä”z÷LÇw¯ÚN:G`—CKø’˜sgß@ëN›ÙØ„žH¹„$à|a%®Â» ½×"«RFr;ÈIapýˆŠ‹ô,}; +=çë:µ3Úu +Äe Ð.m1Õ²¡Ùûn â˜ÏÛ@+6;ç/^ Öº%¬¶ˆ¬Ÿ’}çÍò¬ã+Y_ÕgI—ãžì¾þ`èÁªx8¬XŸe5¹–Ymaµ€üð‘çL÷…Ý™ösN ´ fºû8jzàS±Qè^âÁöæèu1%QPšöæ{.zaWý2ÌȽ¨’Ö’b +ý+˜’Ý)XALAjÎ^ç ,ArÝ F¸—™®NËî,»aëú’å äo Ü’ß.°Š>ÜxÑr&¥Ã×eLôÞ€œPé”` +ÀüuE”è +ßäêúH×iÇüjt™Úz'®ô+y¨­iÜ­õwðÜ푞›q)®<¡"ÖoÙÍ>닺‘3!®)F£æ^Ï—^ ªè:Lf•ŽÞ·Ðq!¢Ô/ÅÕÆt4HXÏEG ÷Ÿ{VDDëôõÍqØe×L÷•˜ßœ¶R‘iÕSzv¦îÌÁnÄÍ|–OÅèÞ…_qÏ#n„Wð5I3 òó6›ó~ƒ×Ð2ȱ&»î#ÈÃA·=ï ŒÏšÏ­tD€7©ÜÍIT‘îEû©TÅÁÖ#iX# m£nm¿i;í›oûh¦Ê„‰?Üxž4sYÛ3=]‹˜Š†EN˜(ïJï ¯¬h{l¥KÚ{eo ^°oˆ€6„uÌž˜žÙ·sEi ‹˜Pa¢l}HÏ@x l¤OËAødÔFÏúÆÆ«–“¦GÕßZßt–»ž¨)ÙgPzmo0yòûÝ_´\ÚþzßPJÇÃ&5´öÈ2®d_O‡¿·òè= –20¡^©Æ'bTH6Ì ©¸p¶¦.’ëâr:©Z ãž…^ñJ°EþvûáÚÝÖÄS Ž"zwÂD‡$³Zèë´Š ¯k\“@×-ª~^ôÅôÔŽŒ…Û·3±a5­-$cu¤ô@W+p;c­ßÄ•˜šŸ,}‚¤ZHÝ„å:§;NgßcÛžÄìL1*üÒ>Üæ£vm›ë•Ë=s¸Ò÷þë<ΡM <ñ/Sj"r13¥àoŽâreâöOgYÕ.y)¥ëgg,}¢¸‘GÜ]ÄYßtçD³×I€ÖÛí½¼5Ùuf{¢ó;ç 4/eß[žKcFË/%Ueq$¥fö„–º.:Æ+?µ¿¸ó!ÐCù@7×Çô<+@Wë4¯”XPêãzå`½ïîÁºøIhg›7÷$ø;1-Ó³Q¶·ï¢6öïÛ‚Ÿ×/)Ýÿ¾ÆçÚ鸬îtÌ#rwæp…«ï /HÕ ùÞLlú5*â?¶¨˜„VbÕðùêxNHÃ!5\ÒÖ(âòr_ÙÇ´«¿µýØr>®a ÚˆÞâ‰âz:$»¦@ÆÂ!®r™@›•½Å~ý+MÿÍ¿„—w~Þär·ù}^)ªÒ>ÚúuÜÄá:©v¼‰h°mJ^Îoe‚âÙç—䔺¨– ã{ݽ@mÈXyÔC; 8nmR×vkómáW/Q_ýÊ9Ûü­_‚½½¯aÃöµLȾѓÖÒÚÓzlER,Œ«ù #¥m{›ç˜b·d÷û2Výý›\Ã5øT=Wß7|ìÄ—d4}tûº`ž_ô—„*[W¨u‘Efã!¨}3¾>iÀVøQyþ%j=À®¾àÕQ®d}äÎm/ ›]1ªateŸAÍ^_w,’Ë7¦°7v'ˆE?™ðÿk“ŽM›±>yÓÙÙ²¿œËy¿Æ¤-<Š[²þ¦þ„c¢éd\Jm8Ð +)³ˆíSÑ[âz)c~œ± = +ëXçlû©íѦþEôí”NÄ8´‹ÄõTÜÀA½ßè»›63‘¡%ÌíÍ×'eâ«”þÞ8Ì¡™Žø;ÿ –T°Îeü¼#ÈXDÜÐÚ -¥}o¶ëü4#çW†GÅŸetLX`Z tÌ·;ã-ó,ÀožÑ{hìc½7 ^¡rg•Vó°)ÐÑÚÂJRÍÖDשíñ¶“\í¡… +r•ѽ¶î|-,cwÅ•œž”`·ŽXQSï§7˜…œ‹—ußµD( *Ùиž‹=°Šx)ðý –öȈUÙç^B+ ó)Už9ÈÅÍ· ŸmtžN[˜¨÷›¢ÌZß@£Ų÷[Õ쀮Ÿ™\|’YßÎäZBæ¹×c-a¸{/´ãú$úFÔÐ/:Ø ä=Eš;¿sMtŸ *¡×CLyv¼×fÉ¥êï‰W\’!~Æö`< toDÖ~Á5Uý¹íUñï€,H…üƒ¡WÇQ·g¹UÜ›c´­*ø­~²s^IO®cªóœs~9 +j9˜+üÖ$:o3»Á4¼tß$ý}MØ—.¬B”˜^”ÿU>T𻨆{ïI¯ñXÙë!A ¾p§{?;ûžÚXÄŒžÑÆ£Æþ +~Ö'¥¶ì^´öªùo3ÌœÒ=(þÄ9Ñzñ?¶©èÿû¿‰Áþÿ>ÿ¯ìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨ÌÿßÄêNü7±ßœ8YTy +þßg²ÐŒê>8 ½PÄ`•à‘,<•gðOäo]<éʉ Mh8éÄ©ÿÜòØèD=ÅSÀ7›‘púô‰³`Ó›àóÁÅ9'.þò§ƒÿÁ¹Üë—sÏç\͹r-çâÅë7®œÈͽzýü¥‹7rs¯]?¼v‚œÝ(÷òù˹¹—®]Êɹzåú݈”ÝèÊ/ß»~ÏÕk/®ÿ²WÎåÜœëWr®üçFÿåpÿGý—Ãá>hÿ€òAã7Nœ:}¢£xU„þ€þ¿ËÉ:÷Ëø•áIè¼ÿüg1ŒÈÿ;˜`/°MùJÐ<}§¶³úDGÝÝÙ½³úŸøß^e}¾rí|îµ='.]Ì9‘sñZvqÿg{dOéíõ¿¾^?qœBÎõ_ÎøÊ‰ì¾?8yò—“ÌF@Þ‰ëW/]Êý £ò_Â*fw\+$EB|@Êjó-Ó[½rjgDKíL[Hmq º2$Å”GÔäÆˆžÑ7ñiA%½Ëµˆ-ò­+ýËÔº˜ŠƒHjùĸFH‰(¸ðˆŠÕí—•]—ÖµÄétÎQê7G1¥®iLIhWYÁ•Æ•øÊ° ~3¡ãáÚCÚ‡ß´ß +·Ç»@©ôÌ£ò Ù¨ÛÑ%Ju\ʃ¦´"úÆ©Ê1Ekˆj˜=>)²povÍ1Ýu!,ÅT'M¤Öˆs'¦"7' ,TÒ( ÅÔÔÖˆœT’“ªœSÈܸŒÖñÞÒߟҳÑQ%³'¦áSR3ªgÁÝK„’éÞï¦0(¡Ö%ÔrDÎ……–…8÷4¯7.ä$ÀŸ ä%×DÇ7»ïê?óÏô\MÈé­I%“Òò »3Ы›¯ÚN:F çãË;cÍß$ð<àCcJ% …dÔ†°œÑ×p1iC'a”ýtŸ´à^â@¼:$i烈é(#>¸”ŽŒ*©Ía9±&¬`´ùeÔÚˆŠÞšÐ‘[¶fZÎ8æ:.¥tÄÆ}=hp2&!+æÄ9-Þ[ TÅ´"VÜÐÇö)ˆÕ^)®4Æ(ea“Òv>'jàâödÄûx×…¸š‹kX¿’Ô^åó÷×ÅSV)iaa&6ef"#j\ET+KhñÕq ¡þ½ Ï£&M,dÜHëé½A5±6¬!7&-LTLOiM9„Œ¹O˜Ð³Á¼0á)—0pH^¾Ê-ÔEµ hÒÌ@ZyôŸÖÄ߃ãî¯ö‰“¶~q@Ã#x•,¸/ÛoÄ_ÌØ' +€X‹›ï>K[ï¿K›†’!3iäà36&&ÛË:f¤v%L xÆÆg&Á>a9µ)®åâæ»O#³*àí¯õ &, dT«qͶ:(Ç•º—pu²G×,/Ð%AåP_BŸí¹Œ.uN¢ó½ ¤²„Œ¥­O·2Q #¹9ªÄV%Ô¤Öl pLúã:%¦eA:Ró¾ÔGÔr[̈«‹jXð„NÌ ªxHß"¯3®`*f—{¾ç¢õ‡âß–ýÑô í«ðœë_âtíÍŠ £=¡q¶Ç]HA¨:0qȇvýÀΦ¬±)i+Tkâ€S…5”¦l¯É´žGÙ7òÈI=µ=®EÝIi=û ÞTÔ¶ r€0 ôeÌ|Z¶ïRTÏÅÄAý‹˜è=Q# q¸%~–YçóÓ€l ½Ê¬S a5¦ÌqKÜHlÞ·Ó1-¹ysW°=O*ÉXï>ý¥â—‘± +i€)±1®éºº7ß}qos+mæÖŸ'm÷R¶ÁG 냱´ýî‹ [ëDÏÿ +ævZKj:°ð™ ñcÿÒÃþ  +pn¹.¤Ä•¥°¼´ŽÔjy{\GïöÊð¥{ËÌv¿b¸/ cJZKT.ö-÷^qÌ¡ó¼ËŒ¦†‡Ù]•Ú^5ü5 êpBbRÏņ䴿° +Ô5®<¬"Õ%t”VÏ2êÖÖ("'*ãÀß›SÙ>ðBM@‰+ ªHÕ{óø[îyB‘}v…;óëiJù'Q‰“ 1‘erUhuËð}{ªëÔúH×ÉÀ¥à-Ž›œ90&¦Þ ÉÚχåçCòÞk!)² úÿô–ïm]iÛ÷sÃÜ3ÓéLÛi:M1 µaf&'13[–e‹™ÌvœØA'v☙d1Kf¶d1ËNç~ž¿ã½vß:rŽ,í½Öuçï\{mo-§|mŠU²>ˆ¿»  ìHܱ²q0oE® ì ÷DÕuß$îÖb_ù¹¡Ú‡ÿÔµ¨dlŸŠ‘»1T~v¡3oÿ»œŸÞæîÛèÃßXÀ^«&ýÛÜSrÒŽV!Š€fÄ äLÈ9ÛÓ„‡›S„û.% 4OJ üìáQ² +mIX9¸|wÌÎ!FÌ\Èž +cÑ>ý2ÔÔÂØáÃz&d¦æ}špVUÌF+Ù˜ÄÝÛbd|²Ô¶|šŠ?ÍQK‚šÒ îÉÒ³ÛÀ°3øû£0bäbc+f‘‰ƒÆÚÆÐÏ +®m +ø N=Zj¦[K˘٘¨O‹Ú„,„;‚EmÈ$bD-RáάTöi^Z³3+ä&æ„ü˜zÖ ¹j9j¬mˆšÚ¢¶–Á¸½º%1'ÅfùÌ0Œ)ô_^ØÀFG jH/ %Œu-qèÈ¿š‘ ºtòLr@GËÝV’R¾GÍAo+©i³³Õ½ˆ;jZ‘çªì,Hªc³JÐN+ŽÎó¹áY¡Ào‚Ld©³6w}ZT´“ñ<„Ó!‡Ù«Ÿ&ìòú ÔA9V›H™®´²4¤az§ñ÷ÜÓÄ$Ÿ†œî7ÐK aKÃ눭é£Ï åo«øÀÇ5u¿[uÿ;+Qx4älcGÖOMÃ$¯4àÈ3¤4TÔ@ÍõL£®/÷åüº_ð„¤í)rŠg’ø Zíö ³‡ôäô¨Y,ˆ-ðÙacM}ØTÛ‡ú ›Ù•)Õ \³Ð[øÛæ0--nU4,ŒÊˆ‰Yž0ÒËÀÿË£z`-)Õ§!¥„L”ܘY‘Œšß õ-dBƒ„åOÚš&?ÞVS3¶¡W\*ü#8Fìî¼D}Eú`wN"OØ…\`/A ˜-îÊá% $¿øÂ$áF€“Âöú·aÈ0; "ÑïËÒÆÝIMÔÂ,÷jðIÈs‚"0¿q“TÔ1 ƒÀ(QÈ>˜c?Œ{˜Ò¯¡ç† ȳÎYÅ -;fr¢v‰$j—Jcsiôz„ >"Œ9¤ŠèœþO&ZÞ…-Õð}²Æ¸CÞïƒWCòUÄ‚ +ªy•15r0^ðµô¹•¾¢#Æ—©?,wœÿÝJ-ŒB A†Gž{瞦g¸'©)›Ã¸ë[£øÛ5-'¢g•ú5PCãÔ´°^ ¨Ù%«ýågŒm©ß®÷TœÝìÃ^¶¿DLq0;± €0“Š_ÑHÙqB5ˆèn%Í£ ¹4n2vfeu[FÑ"ü®o8Ð\Ý…ºéÁ{&Q—½j|Jt‘‰ ÛkÛBæšFÐnN´z B2Œ¦² 93jåQ}&Z Ô,õwÈ»v©yv9èQ äZbŽQùi‰Rü ô?n–Ic–𦍥öiÎæºÐ£¦e{uŒ‚MàÌ…ÁÒnÐ’„CŠÛ…È„ V4Ò‹ÂV©ÌgÐ ‰bÖêÆ°YÌŽ˜8بxÞ" ‚Nó‚F6:1ÏgÇfyƒŒ˜MÈ ™h¿ž¾.âD€½*J*xH^˜×­¢fnMîzTÔt?¢ÉÍ ¿5»1°«Bðþ¨]^±‰Åa ·³ –ÆgkZ‰Í*šâÀ~ñY‘8lãàŸÙ™E2’¼:b–‰"À³QôŠ]"d„Ì,´g†‘ƒd#¯S¹¥"¥B¶†ñ¨µ7¼-(ž‡M†GMÍuNQRz¹"n¬®ó)Ùeži+ðõˆ­u +É•^«уm=Ï5EMÞ¾rŽù&Ùe³€êÑó*W§ii¦öÒÃ+ñ·Â>~k{Û7NËôŽŠ*¶†…%‹™«ý24ôõõØ~Ô™äÒ…ž¢#žIì½ 2 ‘Qòo;›…>wO“SW†+¯lô“ET5Ï„ Ü=ÉÌÞ$>pPR·‡ÈÂSô¬ð4»pµu^ÿ4å_+]¡?J‚SäÇAàç0þÖÖ ê¬{´¼ sÍL·9Lºщ(ÀÁ¨ëâ°VHtOàînŸ L£.ÆÔ¸¤¨{/~›0CFöÙž ¦ø¦¸%aŸíKXy䨙Vèš*=ë™b£Z™xk„–þ™ëb¡ƒS¬‚°’‘MòÏPsÖGÑ×{‹O„UjX#aUBBH-ÄUÀLF>éß³é'‡ØX@ßRQ2ð×üj5j«ÔsñÛˆ¯ÐóZ>9:/†)Ô&%b“ˆBÖÐj‰(h eùTÅç|šòk>=!%`¦æÇAs³ÀŽšçqK¼Þ$¬Mï.5>GÊMØYÀô<˜Cz̪¨AÖ,‘µId-/fqÝ Î)ZzÈ@+ܽŽÛø´ žUæQ“S=Y\:>vm|T |eiéZëžÅlBØÂDEmLtù×ÂÁ-œª %òL_©(ly:†L±ÊÀ TÈáÅ>5=ۯᔇõráÖ4ö®sªò6p-j¬oû#ïùàMäÐİIH‰ÙkžÂ9‹=à3dÍÒø&foè@ž‡ºüs°°Èóêsâq½ˆFEž? +¬UŸƒ÷ÌŠ1›˜2ˆéȳ´ P—ú“0×¶î8šû£öÚg>3£l}„|©Ÿ³5^ÍXžÇ€³B ǯ}ÚåÖ´ëÝÆ'|^eÐ(¢…­2YÄ&¯ö«ÄÄ V! jk! ü z|šð`}’pwc„ú(¬’£&Í9J¸ïågëÝã +ÊÖ¸¨|m”“µ µ´Ò:»9ˆ»ÑHÀ÷"*ÐZ£Lˆ<4þ·:Xvf¹·ü¼sŒšÕÊmm²­J€ÏHiÁi~9²®äÀÞ^êÊøq³¿ä„{„p78-À¬ôa.­v£.D´Br@#Äû¦ Ik½Yæß¤~ç\ÍÊ‹êDä€ +¼f’_…Lᬺí-8âË?ê›(9œAòƒl¸Ô:·Ú‹¹ÓK…q“¢²µ lââÃ&&ʯfÅ-0&:z r\P)ÀEŒuO·'HÉkKŽ:Ê/ú'©ÁF~PÅ*ËlŽ’º Æ5"ê.dð—7ÒÏ S0<*f>òÜðôŽri4(jljŸ „-µ­Q[us22ºO˯ŠZkŸ> +CZ1=¤‘ ââv3le ÂzqÜÁÄÄÎî\õ3ÐS° ä Ô´x©æÉ®CV³ +裈‘^ÚU4GÌÕõA„{€«CZ'¬àaž‹½pÀƒ²°Y&‰À÷„á}^„á×É…S}ëò˜µ:BOê9•;êð÷EI}ÌÁgøMÀ!F¹Ôox>éÆÞ& ›E¬¸MÀÜEXÍ*—…L2¡[CÈpŽ¡®F´"NÌÔÔ5*îVgX2XÀÈÃ'æj^$Àã6± ¤}1Ôµt„MÕÕ!³”ïf œDgk_î"km³b‰Æi{†‹ͽÔ2Šâ0†qkC{ÂÖܳU7 àUòË·Æq³¼Ú­0ÖFy(ª¡É­~Þ¿¥z9êÖ?ë ˜ÅB—Ššµ:JJÚœ–r7´u ³lÈ»rIØ$b‡@Sƒ&ÈOJ^yP[WëšV°“‚Ò¨A&ˆ%<ðurøçÉ+äC:'È=c̯ºZºÚËNóŒA]ÃØDô2AÆ +jŽFžuÝ}È9Zyϯc–.¾Ç] NÖð ÷øQ“˜5Ê%!ƒL¸=ͯZꩺ¼6€½º6D{¼Ð^uÞ;€ÌCËõNÇôÈÚѰQ ]y‡æßæ Î0QnÈ1 ùÖ»‹NyG±b0ç Ÿ€ó\é-8»ô®ôôö#w¡³üävñ^L#dî |²ßšÄÇ™y+CèóÛ„GEYkCÔ´˜QHÿ<5 ˆ[… àsÂêhùÅ…ž’£î1f¶G/âYÛ+N¯½c¦§›wàz/¦•Ð*N©ñUÆ~ó³û?øGpÉ~5¿r©Å;!ÄúT5Ò’3 VCzn…_Ë(œ);»9ILÚ<ÚÚz·Z@ž¼ #ØXG†ÌÐðªüÓ +ŽoêY›_%¡„ • j}†‰Ö´Þèc”í: ÿ˜kê³ëÂZ1Í;MKŸíÌ;¼=AL[Ã>êã>Ø™j~4TWûô<¬GÍE{Ôœ’ÍqfÖRöòÆ0%I߉¾8È{¼g£›˜±c•!µÌŠBúuÔÜõ‘ÒóúÖÛ_̽Éú%¨d¹¦hY«0—ÃÓ|T+¤úfhÙ>ÈÃÎÌåùެC+%g¬½˜»¯·öØ[1vÍMïñùa3—„ŒæQ2r·§+®ÔÄ´€YnySp8®c–ZËÂV6Y' ØåcØ;ëCØÛ!€ìÔQѪæÜŸ×:„ø€æÕxÐ9@ÉA!¸=ÆÎV?ÉøY]÷ðg×þñÒ%y´:û×ÀD-èJÛpÄÚÔåQqÊ_ñªè9Ë#˜›[”¬0h†kJXå™SB†g}!Sã+¿¡¦Ñ‡x‡žOpO²r<“b¬[Y#Zê–T‹é;¶ê–{uËèfÈB)ðh«nCö,wω˃ä4ø½â„½écÔÖܱ6vFmµÏ/\]áUWÜ +hÉA•ˆ˜–ÑÚ&`¶º‰9YCØÞgñÃÀVAø×gÒ‡éiŽNú­˜º¾¹æ†¬þCöéøäÂ6óbIò‰SêX/ukħšW圡gù |2ô¨üIŽôéC@+ ÛKOnO@ߘÛÃÀSÐc3h¥Q»²—0Ò‹#ÖꆵI1qiˆ—=ÒÙäyÔ^ݱW7Äçd5Ð#Ò„]"vNsûE÷Ž&kê½æ†W[à§cÝ“˜½îuÔÖØ‰ðÛ§y1bd–;/¿2÷ŸáÖ?éZQÖ —&ªéNMµ4‹¥n%³lcŒô(¤cy&))=³,ÜÖŠÁ˜‡Á×ýZɹ|cœ• þtg^V›ç³à\±ÛÓb¬O-!€Ï<:6jqsÙø¼øs„QšpT?ñ¨¥TZÆüCï´{¦ù˜ ZH€9K<þ*<]#t)ù›“ô4ŠU™¥Ä;Ã)ö«ø^¥¯}[yùýîçK˜dd = Gò=k†´>\ymîmÑI÷%=¦1:!ÙÝÏNOÌÔJcÔ\Wå¹ ²•Šƒ«YeÞ Zš²­ð7YñÉÿš¨Î¾”°)žnk>»<¢—pf¹lÜÿ&0.¤íXk[:..b擃È?ö]ðQ‹˜;û‘pïÿÞ×ê'¹Gö枀éiŸWßôÊ­•A®®nØqÈëw€ÏÂz6Ê3ÍÌÌ*ƒZ9ba âV+ +(u¶6¼ ÀçoÌ“–Gˆ·£¼‚„¡º& c‡<ÒŽ­îeÔ,—ù!í«X…*fÁê5mqxo[ÅÇ9úIwüZ¹ lkèˆ8šAÛ5>“îÕs*\Sô̹.ìåÍaA)¢™akM“ßP×¶Iäa›¢>b•Jã6!t‚²0ÄÏ[dgƬR¼$aÈ]GCGtVÑFö€÷ǬbAÄYßÐÒµ9CE­Nâ†L íAË Ïø´¾[¶3}jNÄÈÅ +Cpü~›L°V7…¬o#¶ºA3ÇG +[ÄŠOóbY2tX'åïØë߀'7FÀ+½ZƯçr*cv!owA‚ø™¹Ö´)êÜ3’G#"lLÓ²æúP§]Ä;þiN1ÔÞÙɧ–óüg|àÑAµˆ°=ÉÈÚ¦&ódl3Òà+ý¸ëËï±ç=“Ü"¯Š]¸=ÁÊöNsK]Ü‚…^Ê]÷(+çw³ˆûû¬ptr+jPH »T»§¸åÎ V®{Š™ã"Þ‹z'Ù!µ˜±‹°;xýúPÕuÇ›âÃË휽B“ÀÚ1Ù›ìÈëkäqCµÌ7ÅÈóM!ëÎäÌ€ªâfÂHÌÚ-:™éJÄPû4¤©–Ôbª_ <ó³3Ç£íÎ1 ;vY« +kkd!íÓΠ¦­?¨oéðªxëƒåç> OÛ;¨7 /ð·ÃfEG'b®By¦Ÿð«[»ÃÆš:¿[µ5UuÓ§"<ðÏPR¢F>Ño`–xUÀmÚºz¿ZLF®Í:ÇY9Nг塢3Žç¹'vbA¸ÙëÐ?éðŸt>35¾ôåò­QFúzñh`z²¿W#çyôõÍ~cCÔë;?d  ™‹ ˜¥;ÀA «2hÀ=vNæ ©éE1KMsmCcØŒä>mÇÁ%%lllP}´Ö—ÿëö89 æ†4ðñA8¿ˆ£¾=¬¶ y.`•ŠÜznv t™ƒß@wk$̰M +µ*bAF¢%Ì<¢òÚÖ4茎K𛞄çO}ÕoDö_Õ€gÕ> [ è%ì ±á…S+—¬M3²ŽÚ¶8òš­yƒWø½w”¼°žŽŠYëß852î¦R![z#vÈëó²Æ˜]ÀŽXÌ€‰Kp©ñ#V‘(2'©^ÓRsuov–›F£s5ma‹áBzÜT]û*nWÔÆlŠd½91'DìL¬Ï@Ì.!Dí|ztV,ÌÊë|6¨“rý:)êŽìA êYèõqÜ}ç-Ãì{R‹Hëì ϤôjüfÇL+Œ ékC™ÇÞ§ý°ú¡èháŽv¡Ñ1Œ…䔀^@@Ö7v,,\ÌĪØŽ„z¨ñ û`&é™!µœ³1Ê-Ú˜`ä ûÏVû +¯÷—\ L1Ëv­òꀒ–˜¡eú”ÀüJ~•o,瘳/åçíÒÓ!ÈñQ§*¬£ghyA5§20ÙX˜ªf{Ԕ칮´ý®Q4ô%?næãˆFjØ%^µ€µÕsÈ£VziP}Ðâ†uÌ’˜IÂÙäuQ¨YȤ2ŸRP±=ÄÉ÷‰ª¼ã|TØ@É‹Zi%>-å×ˈvÁø=Sbœ¦F ÌAö)ñIž‰Šëaàɰ‰G@®¿4\´OIÏëD„ÅÂà%9Ëþ2RóýzQ¹6miîrëë¼úÆ^ÝóѰ±ñd*rÂÀÃEõ¬rß £ õæ7UËÃæºÖ(x}ØöG==ß™•Èv¬|ÔHÉ ©;vZÙ®^2à3¶ÕÄt¯Z‹Zd ¥ÈzríPÀëeA -?bä /nNUÜ ˜%²€­¶ÍcR]& Ï>tˆ„>>%bb”…ÍLÄzo®{µËjNEPÏ, hù>9c}¼òÆÚ$ñaÐ&o ÍòYaxOÄöt,hy©Nì¶jŒ:jžÅ ïãP«ÈZ^Ä.•­ìΜ´ÆsP»;_÷YÏØ™ñwçù\¨[ö\á6ÔJvȤ¨s™x”€… yÃ$ƒÜ¯xuˆe±Y>'`Ãç/NœJÌÕ¿‹Ï×µË5ï€WíÎ5öëCÖq£6‰8†‹]^‡ì9˜è%n5äI‹˜·3'‡<"–o±½Zf!²¾‹[@#@‡¼zbÚú8æz@˪DŽuSÉ(˜íÂ]ðNˆ‰»Ðƒ1£4 Aßtç_êI>ä*¿˜¦F |âBOø-5/jTHá%s)Yù›“¤G®Éª[^55#jÍ·KN=%o¶}6¨¬•‰Z!is}Ùþ&mïJwþ©Š^3 ¨ÎôEß4ö~Ù£g±¶ú³;ûó·¦É1ƒ€ÔÒóÃåȯîiüCç·j­‡šáWÁ|W$…Ô\BɸzN•o†YŒ\“ôkyx˜§'n Ø™U¾ë`V~r0*ví\Ò®ƒG‹Xi¥^-.Ù«¢f…´B‚{\€öŽŠ*=ô¬s?n¡›hadßìX²¡¤g¹ÆÅ¸°¶¥#¨— œ#¤Ç®!rzT'd$,BN@K/tM ¯m¢ÎGá˜Ãz™0 ‘ÂF.>¨£‡LôÒ‰Y¾;+äîÎJk/à}šãR?ÍqÈ>uÅí­Éüc[“e`üsœ3Ä ·’Oˆè›ßÄ-¯cF™Ä3Ã-ÛžTmN² +7'0w}©hK'ço@¶ô››;CÀwÑEi£ßR‘„|FÈÈ'Ñ#HNµ +è>-#/hàãiíî‚HeâüjAÄÁÂ…f©%PƒkÛLÈÞ¦ öGg«[‹ =Ÿ– ÒÆˆ]È Zø´Èÿߢ²_Ø.oø÷bÍ«‰Z63+bv +dJþÒ`Õ ×4%ͯgc–§Ⱦ‡Ù†ÑÙÆî°CV¶ 8A+«2`!zMÔªÄ\í«ˆM¦ˆÂø€w´G"ÑæDÑ…0äNÈRu!Ðá°E&…¾@êR½Ñwˆø1‹Tç„…… ›8•Ÿ`^ Ç×…M +R‡1øœÄ¬X¾» x±‹Ån þÑÖHå`~aÔ$CýåøT”œ ŠCˆh«Ÿ$Œ ÏwÌŠZÈ͘åÞÊ‹® z²?ò). ¬¯’ ü:‰Ø؃چ °©Ä?Ø¡<öÏ´¼rO)¸ž !z{ˆ™ã¥æÕPS 6Æð·=ãØq¹pjÁ¯býJ¹8¬«iŽk¢ÀkȾìôFDIHŽÛ©¥Coí><UI «D6ð» ºæf†u06Y5²fcí®¼=ùß.3j§»•øûþ?®!S²ƒ:bZÔÀ®ôh©ÅÂë?¿gßþÅ?-`íÎK~Ÿ—(ÀϹN ëÔ2J#ØëN5Ÿè6Am)Ù%MMmLÓÒ™0Ö6yU”ÌÌåµþâc®q̵AÌØç—nñ +¢À»Žš;v6.b6±+BFN…Yï5)ª½>Å¥dA–oŽ[¤¢(–f ähJº[OH CÍì̳Éñ‘ĵâ7Ö=Ï5t%æEbŸž^4q°A#·±ÿwǦ¬š*9¶8$@oøoÏHÁGjj¼êºzêé;ŸöiøLݶ^L_šá—/M²²ÂÖæn?°‘Ï&•­’Ú€©¦%d©iŠØêýo‰X¨ù.%éqÀ `'æëÞŠ×JÎõÉ™-1%`'e‡lÈþ°'#‰¥ú®ølõ“8ÔíÎR]WlQ$Á±û!û{‘5Q˜¯ˆ…÷©«îEM è3ffU&¬<Úïs|Þÿ]ŠwBR³^ 5s}²òjHÏ.G®¡@Þà…-AÐRÛ­{mxï…ãY…,¿I@Ûdr¨e¡x0¬•‹ãÈ9Àû]ZÞ£àAD»à)AÈBnÈa su}ÂZݘ°Ëªwí"AÌÊ#!û‚# ñ!}ÓóØlíËø¼üQ,ÂÏÀ‡è »ƒ¬qûµø1a«}·5vÆÍ5M cM}D/å#ë Èþ¥žji…>%9%¢©–ûµOÚ·gäl·FÎuM‰°€‡1Xyt·Ž…]èïé§ì_F |²sœüxk‚šY ØšOA41áàcàÅàï­›*9ocJ\õÇZ(dˆ˜™Vì›ÁÞsŽWݘíÌþeõmÙå„V.YD<ôFØ Ç­õ¯ ‰ SÃ˨QÊÀqú4ôÈ#Œ°‰¾Àª€Ï~îÓ·|ˆÙ¥RÈÎ$à£òåÌEusî]KÑɰ^È ˜ýæü ×¥|>aKÃ,ÚÒs+6ôœ²µ FÖŒíäѨ‘‡˜„¬„CÀDêcŒúxmœ– +y$Ó«dçÇ, ofy 0|q@ÍÇE 5 ȵµ°µñ]ÔQ÷r£¼½Y"¦Ì}¨¸˜°*êÃ6ywÇLÌqéŸkÓóB>r:hq Ã7Åì2pdhut®y(‚Ü34ÓŠœ*jžæÉo‘‰×'Y!mÓ‹€áY¿ßÔðÉÁ>ƒ\€ã +Ú$ÒäàˆU9«¦Æojî +Z[§–Úæ M* ÚE\·™…vNx¤ˆüt†Q¼2Æ-ðê_„--}ÈÚ[b±±?1_ó"±PýÆ3öå‘=ÿaŸA²4ô$'bqóù΂¬!âHüz^e²ÆŽAʃ¹j™Ä\è¹ü0è[ÜRÝý[$ÜXèª8³Ö_q ø¹,¬“rÜ*>qcŒ™å™n¨öLUs>äKv…2ÀÒ0ê¼wš‘SË„»6yõìÇâ ›#Œ’€N!Ž™eâôè®CÀM8XØ/r¨>»liˆáœ ëïTS Ÿ“²ƒ`k%=/4Ã,LGÇ­"vPË.A®3EMp|j1-f¬kŽšëÚâ6EÓŽƒÏöhÉÈMàR_~£p+q:fé§YYõÿ.(Z>ÙÅ0BfÈ,«ƒüýü¨-nÐVVEØÌ( "ùØ.äÇŠ·‘q›€yæšz ?¡7¥R„ ã -Q+‡àž¤g¸FhÆ5ÌHÝì'Ýr’ïîXÅ<`X~zrÞ§búÔ¬B¨ì¬yuB¢G+Bîs¢G5RFT+$‡u¼*ä}.ø\’‘ç×r1[ÓÌœå!fÊJ?ýñÖ))¤¡d¹§iYÛ3ôÜ1Z²k\Fšï&Ý_꫼² úã-w+…;F©pG/GŒ¬ª-õ‡µAZ‘G-e{g$Ä£Bþï9Å“Osè6Ù7=”êg"û0³Bjzή•Gý §ÿ†Wè{ÂhÐ/…13Ò2 +‚jjþö8ñ±Š[7=ù1?¦_5@VQsJvÔDÉ ‰Y§"l’I¢àÈ5Ñ€ŠVh~“ú“¹=寺ü:äßÇQ$‡ë%œ ®Z‚¼Ћè1«D V¬N„þGEMÔ¼ˆ Ù^D Ùh„wƒ&¹ ².x2½Ì£­º·5ƒ½3qªbàYȵ0ðLÈÄÅAŽlFtwgI(AÆÙž³6LMÚ$ßû òæØ{ÂĬˆµámtNñ4ê`wæi¨OðŠ)Ù1½ š™ã³v$Š…Úvà wðjƒ¦Çæ × ë8V&yÉ Y < Ç©®­ ÙjÀsØDà5IbXÛ"áG­,lÈȸ՜2¯¼ÖôÊä·´M‡íu/}ðó°…‹Ye>= “ð}úç£SK÷:pLz+6W÷.:+«õéXå!‹€¶‹8Ⱦœˆ¹áUP§'µ­1km«_#†Ì|6b``¢FðàЄ…ß± +ÀG; OÆã+ ‰Åê;!þ40Šüzz^ØÄ( è% YE[3BrÈTÛM††Í ]V9fa”ºÆw–»*Ϭõá®®ô’ï,uâ/{'Þ ÊcüŸk”xgµ§òÜJWÙÑ¥ŽÂCQ-93ªc–„4œ²äß 5Ý?CÏ iXEQãàx¦Åx¿VÊée\¿’öN²r£È}´ ï=Ã=A~è#ÝÝ%ÜÞçä¬ Ò­ â¯ù”ć%é‘êÚ«¢enŽïé^gþ`yWph}~_%!ûÕ|ä~rPÅ.ñ(ñ÷\×B:jÞö4=Ë9ÂL‹k$´OEã Ï!5ä «Ø=FNÚÆßtáo…µô¼];ò©€—°‹x5³=NO Ì0óv€í#ZfáæPù…Å%¿ùFY9µ”º-„ìû‡?ýn—È‚*Z®g¼òšuádö{ͳ¨åß¡@]Þß &Ã9æþ{žÃLØÙ؈‘QìŸ!§ºÆÈ#&©Ð‡ì‡l¦ ‡L|BÈH+p)17|3”ôˆ†]ŠôŽ[/¢®±²¼jJzØH†ÌCÍÚµð1=§<¬eK{ ÙȽ¨Èºt|N"N ×÷t|d½!7 +çú;0²ï&¢“q [<ðQ—·qH ˜ÿOv!¤¦f9Çqw'–†- TÄDÍéÅø®°Âg’ðƒÖúWà%Oc9îàR~Ÿp=ZVÉ6°ô†’W¾4LOökë›ý†êºÍ VÁr/îRħDŸ‘Ü噦dlA& „’_±2ÄÉŠ'&€c¢zÎ=N~Ô“ÃJfLÃ.Cö˜Æ5­aGÍ3d]21[ׇ1è…¤ VHðÌг×+.,õV^X쩺èÃßG®/ûMNÄ*þq +r?®ÙïA¼ï!ݱ´a~[~G¸è¡>ZéÆ]tï¹Ç8¹k}¤; ¨#¶ÖÜïW:J~s‘î#÷¬»TêüìeÏùQHÃ(ðA]{§Ø›ƒ”ûÈýŠ®!VÚêGòu÷$;o}ò`©wÖ5L}€¬ÍnCý¯~¬<ãxSvxöm創nÜ%ÿ$%%¨¡d¬U^^螢¦xgHÉ~5Ã9B}¸ÞOO²¼*ûÕ9HKލø!530…½åG_Ú®¸àÅÞ«(éA%#ws˜|¡{Æ7Á+[í.;¹ÚUxØ7NxV1 }“ÄþiÒcß$5}s€r/0)D¦„è°JˆõŽóK¼ü²|þêjOù©õ~ôy÷þ¾GMJõk‘µ+fè96¢§å"÷Äì ÷â$läz†Š%œ–W7s°ˆ_#埦¦ù¦hépNi^8† V€õÏÈX~Bàœdçúռʠš[î™ ?r"kJjÚröòj?ñ†r‰gš‘å§§Ff8%¿›xø]x… ×lôW]Üì'\÷O±ŠVYu2dT/ ø§Ù¥þIZF`’š²5@¼±ÖÚ7FOõN0³=c‚²íQayP%¨ô+y¨Í!êýüuïéQÌÌÅù§™¹A5þ B=L"–˜À­à:1Í5C¯§¦»•¤TäïøaÞ‘=ç!³ø“ƒKùx8r-,¨gmÏR–G°7½jî÷9yËŽ•O èÅQ—²²«¼ZFþŒÍRåæìkâù…wÔ달ûšº²ý+ݘKqÐû8dè§_‰»T“Ó¶Æiö^úÙâ ï8³ê»5H½5ˆÿž‹&øþiN!ÂF•”êW×È=J…`áç±{RBZ¢6†™é“·Fª®l £ÏoO•wMTÝB~¾9$(™jê§’€¿QÀé wÞàϸúÉ·×>bÏ/vTÚè¡Þ[íb?Þìçg­|`Þ³)Û¿ÞM¾¹ÞGOZèa>ži(ø~£|ׯänR’ Ï¬|¬º¸ÖM¸îì§?Øê£ÝÛ¦>2¿FÐ6–ìÛ­¨YEHŸ-wUEúc®½êÄâÛò#þ‰Ê›þ銛®qRò樤Ê5.©‚¹ªpQ’–ºð—?/¯÷¯‡•좘†_éD§ºGéÐÏw·+/mt—]ýPzl|`£svy€üXÝœñ¯åÎ’3 -ï$§¬ ïé.úm³¯ì¼ç‚´Ú7)@…ÔBRâ€RPé‚ß]ìÂ\R5äüäx^~ÔÙMº±ø®âøÂ»ò£ oÑ'7ºq×íÏÑGgß/BŸ Öúù¦6âC úðÜ[Ü9`O´†…Ü;Ÿëÿw²²V(÷·'‘½UriÔ,æ€üÐÃ[ÃØk.`×°FWÕ…Õì5Ï$z[P ++ƒÈ5Î?îMÀ^Õ·ülzVð“g„øÑx?ø~@Ï‘ +ýj)c{šZé!ß²¶T4?)ùY)ÏÝÛOOþÌö¬àgx‡s€šâW’Óÿw^ÑSÜÀìKý¸Ëºù?Ú_ÚìÃ^q“î#÷vEÌb–G+¨rrr\PÛ£ÌLäïˆÌuTµ½Ä™‡=³ð‘ñ0 ’ÐÃFÑöîŽo†”1Ð ÈžÛnì¥Å·¸ ë=äd×0áŽ_É-íÏw³²¡öo;ûðW7{±–ßWž²´–ÔÕ\ê`?X|Ç4ûŠ|aá5ñÂââ…¹ØS+Ô³¯°§Ö»H×·zi¶ Wø&Á_†ÙY[¬Ô^Êí¥÷˜Ó¶·…‡G¿g|eyQ~rù}ÕµmèIðƒ‡K]äëKHWf_XíÌùÅÒúðÛå÷¨ë®1QåJ?/Ï;%ªts +–?’o!L¸Ò‰:éÂÝö ãïξÌÝ·üwu¹›z³Ÿžâ¢=^ëBØêEŸs V\t W]¶¾«<;&Kÿr¥s}G'¦#µ´ð¾øÈÊDz“[ƒØ¸ëNèk×0ýñö5e­§ê²oBBðMÕ 7G¥˜…÷Œ{síô›ŽWøÓÖÖ²ý o+Ž;ûȼcÌœõ^âͰZ@ þá¡Ô?ùÈúÔZä¹äˆKð©™Å%ä¶1ïŸë(9jm+Üg{VzØþ¢üWû ô¯‹oñç7a̶ú©I¾qvÎö3eý#ñÊúGüeÛË¢_Ào57—ì[í"ß +ë¤,·RP±Üï \æž Ü]íCŸ™‡9ïx:¢’ýà ÷Î_LÍû7º(·çÛQG–?Tœ6¶ìSI2¿QIr¾¶<)?¸ÔI¼f}M¹>*.ûnL\𵺶ägøŒs”úh³pÃÙO¹ Çpu©‹tum€–6ý4ïdÉR¿ŠU²ÞG¼µxÜþÖ|꘦>÷;Ó“¢Ÿæ;°ç§kKŽš[«n‡f„0Žœ¢•ÂUûëò#¶§Å?[[ +v‘†Õ”ý-úÞö §Â?ÓØ¸5"(›ïă6“¯YÛJLIR¾b<ødz¢ýº'%gß’ì]ì*¿±c#n ŸÞèCZë+‡Ú*8¤ªMþz©£ø·€’žƒ<ïÑñ[J~ùr/ýã%æøÒ;Ì©ù7¥¿©ªÓ÷˜šó~\íÂ^°¼Ä]é“d^qÒCzò·ZªjŽ{ªòúêÇâ#s/³0¶¤îYëÅ\Ô·ŸØaäFŒbÖö8#kõêØ\{ÎÏÚ¦ä=ÝŒ+ÿówüO]ÜävRÒö̾Ä]\~O¾an)?`y‚Ú¿ðÚÔR~hTô蟽Ô[ÿ˜mCŸw ²s\CüÂA^ÖBéÒò‡ªsú¦üïÔµy{g_cN~ ÝþlR˜uÀý‘²=ÀÉ\è¤^s¼!ž·´”î[m/<¸ðòw-ì­¨CK•§WìÀƒ^9ºöžpÛ;HOÙ‚Ú\ï"\Yé¬Zžœ’e}¥VíÕÕç}?#KùÚØRrà51iÔçpÚF/鎾®ðÇ!fÊg]¤‡Ÿu~ÖÃËüÆö†|}±‹zÇô up{„öØ9D¾çAþöKåÙIÙƒ/gj2¾34î=ÜšœëWŠH½Ìç 3u±sÒÐRðý¤$óË)qöWÊš‚ï^UÝûó0?gÿü;Â-÷¿hc€ž<ÿ}lþ%hn5ôgKþÏö7¥Gá|¾õrÊV‡ÓÊå>V†w¦®nµ­k*øeˆ~ÿúi?޹ùÊ­ŸÿÏìÛ¢;k}g'Å·þjmËþÉ7»ï™¨îA÷Œân…f¨Yµˆ´=ÊÊôÍHhî1Ýö’vÙþ{Òþ¼èSKÞO í¨S¾1F¦²©ètþ¹oþËÒ’w=¢•KlïªnÈýk¹»àðÚÇüCöÖ´= o +ù§˜¹/È׿uöó"À›«ý¤[óïPÇôOÒ÷êš“¿™–=þJU›÷c öúM…gÿ²ú×ú¦ôð¨(ùóvÊgƒœô¿MIóþ9Èxðy7áæß†ä)_áïþôŸJiÖ©-¨ióKÒ9]SîêÚÌ=Êê̯Ç©_ 1’þ2!Íûñ--í§×å·ÿ±ÒÍz<,*úã3ScöÞÕ·å'&EÉ_÷’®üÉPô¥ý5ù¶¦–t}þëáöˆ°ôíêJúø\[ÉþÙVÔa]]þ÷šêܽö6â¥Q>ú ©®ÑÇË ïðç6»YÉsíÄóö—Ugí¯ÑçG%7þaz–õËf¨h¥“l}Ž;±ú‘•´ÚC½½Ú¿´ôsj±³ü¸ýeþAuCÊ^UmÆ·ÖÌk–—´+K¨7çÞT2·”í·´–Ò4ý<./üéþÁ_º¾\ú@¸»ÒC`l.ùiº:wϰ ýË©êÌï´Yß›Ÿfí[ëÃ\ê“?ÜÛͺ·w{TT=˜m„ÏÒÔgíÑ7çz°oˆÿà9·¾”äžþó°(up‚•¿ÜQ~jñ-øÞ{Ô)ǫ£àµG–:þ¨ª½õÏ¥~l’k†U楧m€ŸUYxM8gyZñÛ쫪s/OÍÔçíƒlyá ¹vÔÙå.Ú=S[å1u}ÉÆgå‡g;©÷Ö¹9gMW§~µø{ÑÔŠ>bz +LÝKºmxZr\[_¼oöyÅQâ¯1ç'$…5 åÇß3Sôõ¨ý³o(—õ-øã’ü=†¦Ò}¶øÓÓŠâ¬äãÒ?îýH¾7ÈOý¦~ï¯Ó¢”/ ?Zž—Ù¬¼âW‘²¦šÓ½&]þ“æ êØj_-ÃÖÎ|0Q]|°—žú]/5mÏ8ïñ—}´ë_|º¶Ø]t|£ŸÔÔÖÇÍbÉâÛ¼CゟMJîþÃÞ–õ½½%{¯­µäûëªS“õŧFåeÇÜã2JpFˆóŒ““Öߣ/,·£O-´W³¾,.¯¼mi'äËsZQ§*z>°Èéùù?-¾.þÕPŸØüu60.eùgª¹[¢Õ~IÙÒGÊÍ…÷èÖçÅô ù?jjS÷èëÒ¾ñL2 f? O[Ú*OšžÐ¯©j«ŽŸ XŸa~³>'û(/þ©àÒÿ1ÌK=çc,¯ F$×ÿgDrõFEwÿ:È|ð7{ ú·±†’åÿ{ñ§ÿÜìgg3¿`ÜýÓ„ é3MuÚÜ{Ÿ0o1ÿuFоú9þæ¯Ò**ƵrÞÆ`Õå¹·e¿š +¾á¥ÿ£ƒpçOS²œo?Šr÷_ÿõ¿¦%ù¿-uïNÖäþ¬®Í?¬­Íù±“rû¯0\ÿýóë8Ú³ö¿—dî`=úaµ‡’´ÜEoÁœÞ8ai+øyRòø]ÄKÿý}â?'%I{ŸS“¿}MM? ½”<ûaöUåñåø ‹¸óÆgè#Ä+ø'`í£ö·UgÁgo­÷1³–>Pî¬õo"kj!%9%¬"§Zßä¦þ°Ö+E¯t rgÛ‰W­å¿Ù^”[z‡»8ßN¸8¢ÈÜGK9òç.fò!g?3mF~÷sMíÃ=†æÜ}Œû_jewÿµú.åÄR{ö¥aJší}Éç0#Ç Ù yÒø}¸‡‘ú·”¤?ñÓ¾töb/;ÇHk“2Óüe¡“¥{†??.ËúfBöèë•Ì¥å÷¸K–¶Ò–g%fß`N›_ ÏY^`.yÆôÍAIéÒ{âs[Á>û‹‚ý=ìG_Ôžûïaqê­´Gßµí]1@¦Ñ5¢öiò~â%Ù\zíÏÜ”3ÿ¡n)=ÒBM>HN:ýg8o·ú¨iîf–rËÆ`ùEË‹¤¯Õ57?WÊï}e{‹¹ÔBJÿYZzÿ›©fò£Õ>qùò{üµõ®ÒãËï +[_dÿÖÇ<ÿ™ýEî1Ï$»Äñ¦ò²õIáÅNô½ÙwIk]ø ¯K.½Ç_Ô?-?,H?û§'¨»?xÆDXð–`ádž†ôïÌM9?.w¢Oy&‰IËØ5˜+_PRþÉü}{8ÚÔT¼Ïö¤à'˓̽Ü[_l йÇĸ!~ñö¸·1&'/|$]ƒŒz\Ýÿý”øñ?ŒõÉ_ͽÊýekš–9X›ú±•’²Þý”?ß!Î2>C˜®ËýqXRð˨ ½ÿ3ãÐìKR~`²^âxÇJÒ´d}¯mIÛkjÍýÉÞZþëb;õÊtCÙÁúòë}…¾ ¬Â+Ñ4ÿ¬¯ËÿÑú´ä RšüwS}î÷ ¯Ë/¼Ç]¨®¼ù7^Úù¿›p©q\°Ú‹¹0û¦âØü<ðæè„(ó]CÙþN^Ö¿îßû=¬Ç¿:ÞSu²}ÑV~þ¿(·ÿü‘r÷/Ï+.ÿ¹Ÿqåó•^ÌeQÅÕ¯…'ÿ¶9HÉYx=gnËÿA÷$o¯áiáϪº¼ŸÆøÉÿœ§}¿ô£sç‹VÜð_V†®©äøÖÞY`.ûËÒCªú¬o;>å\Ûãh/:õ{ïûõ.rVÌPÓèed¯€7Aæ¹êÁ^÷con  ÎjŸ”žjÆ_VŸ\ïã•,tRn̽®8µúwyõ#áªm\œ¾Çñ¼êúF/+}ZüèËÅöª+ÙÙso7]½„ÿÖ³1»fÉÖæªåeÖ/þIÖ ùÍôwÊñ–tuT\°wˆ›õOkKéA÷0þ–{š”<Ù’ý7ãè_l/Tõ•'Ø©Ÿ”¦îYvúùöB'ùöö -Õ5@y¤kÉ;`yUznsPZ9ßÁ}8ßA¼8×Qqvî-8{]ÙÚñ{û 'ýàFʾåúà EÁOƒÜô/F©_ñÒÿÕÍÌÜ×ÃÏ=ahÇݪxtúo×~ùúÿ¼¨ºómHÅǺ¿ ·ÜÃHŸ©Gý2ûŠõ`¡}ÿ-þâ÷Ðn®©Ëû^Û\ Ü_°×þwÙ=$®òO‹ñKUç¶ú9ùëý¼Bkúˆ®6ÿ» qο†yÙ_rr÷9ZI÷Wº«+m´Ú†òÓښŸgÿÔÕf³Ö‰>»5ÊÎQ·ánêÚ*®z&…¸ÅnÒM{GÕ¹…~FæÆ$¿ÒÞE¼:-ÏûF­(øÎñf¦&ç;m}Þᕜtc+öÔÜ+âŵ´»kI7V?n®w³Q¾ >Å9ÉÇ(0—÷@®º7×¶lO3 × ónP“]Ãä{î1J’wœ‘±5ÈÉѵâ¯Wÿæ–0g‹}¤]û‹Rqç‹Å÷ÙûFäwþ®’eìYzM¸2 >(Í8ú·¥·ÄܰVÊ ¨8%ž)JÊæ úÊ›Œúš«Ÿ9^åÍHÀðEêfÔÅnÆ}KɾIqú—#üûÿh§^ø¢~åkuSúOæÖ¢ýÖNZZ=úÆ×½¼¬SÞ1 Ã=ÈÎÍÚÄÝ[zŸ}b¡½ð¨¡)ã_³¯P§—>Šršñ¾o,½ècf­õá¯ëŸ›}Spr¹«ââü»¢cº¦Ì ¯+.ä%£i(9no'][ü@¹»ÙÂ5Ê/Ÿí&Þ¯+>: Î= }XìçmŽp \¢Êy˜Ëùö²#«+σ>2½@нDV½,½3×KÎí¥ÐÔdÿ¸Ô^~iícå-×HU²oŠö+iÙk˜Ë½Ü;ŸÏ¾®¼å›âWlï.ÀžŸªIÿçôÿÇÑW¿µ•um§6Ó™©{KÝiiKRJqw—`¸» îîÄIBÜ% 1‚´™÷yßëûG¾“ç‡s…+À9ûì½Ö-GÖâ¥]ÑðÒ®M²£ïm‡««ó>óóƒþZ—[GÊCçý»ÑVä¯ã'\‚~ýmuÙXŸû ä.+ûËí¨D ŸØä==6s ã¹eŸ`eyå\ŒWņo ÿšGQ1.%jÂÄÙ ï곘Äi·¬ úid"­´ÀÞm¶Ãß­4•¿t Óò,ƒät+áÒ|cöãQ|0î—Sü¸ËJfÊ5¨ðÁr'.ˆ©l¯ŠKø1Ëfz Lœgª®î@/ä.uC>©…é@ ¥^Õó#Îm4\[èrQk}¨0CCæíþ‚—¾ûT@¼|° ‘fžœ›óx’–üÌ=FG»UôеÁ¢À3;Øs £Âö$Ánˆ]tü怯®üËž†ÓU§Þ£„ý>ßœùXS•÷jœ•ò`©5ÿ徊 +™ŒzeYÈe¹°$õP% ®µ>ž¯K¾®æ„§}¹¸Ñ›÷Â=QñÝ=AH_ÀD ʃ/*jò#v5”"C}þÓARÄu/þÑ\sÖ“…–´‡N)"ÒØþ$áÄßv(ð`_?öa?ÿ%g~»¼Ü•ÿlc¤ìãÆ`Ù{û8<Â:‚KÖåéZ1ݫ󬔬ÅÖÒ׫e“œD¿QbÄù),Ìmâ1§{°y¥QÏ/Îõ”Ezu”R‡gE†˜Gà!Ë€—–±#®¿]õÞ\Q[üm}ÍÒŒqN +0¶I!Ö6ÉïéÉ¥û&b¹{šãБ \:6¦‡u}¦63À«d +Ú«¢—ûÿe¸ä¥!;’¢ÏÏ3™ÿYìé àíÑ·G¦êæ#£H¼?ÅÅÚÇ ‰Ž‹^ŸÀÅ7ã¿_›BÞy†E(—„vORr´¤Âí¡’ÀÍÁò–qFŽïÝ…%1g£¯4pgò~¹5÷ÙÖ`ÖKï2iWNÌÚŸf"¬“´ì!Zâæ0/ÏØèî–^ØÇµVðS ço/v@>;`Ÿ1Ñûq)7¶ûØy;VþLSÙË NÒÕqFÌ%cMêãõö‚æþНn9smih.zâQ²Êw$Ȉ¹¦$¿aBðù fìÕNÔ—ß»QÁgÖ:‰i5¨ QiïöUø#¡àPKÈsN"c—» ž/u¥Þ÷õ‡‰ +Ù™À%:'9å»S"ææ0%U_™}{ŒyFJ¿;Áˆ¾ÖxwJB½blƒ¶¢®J™q·¶ûq¶|0×%f…GI)Þ¿ÛQÂbÝZ>Ù­R¶Gé¹+]èhÀGmµÊQqn):f£§âãöô»eåœ`–XLj ÚšÄë3M@‹„˜`‘àc<*V¹WÏg8T ÈÆ2Òi¨nuM7 ¹”ŒòÍÈSCö]]Uæí¹æ¢WN) àÉ\µ8õ®ŒÅ%#–ØÆ(Ù›½åŸfëÓï,4ç=ÛÆÇlP³Bœu„’µÐ y»=€Jò,Í%Ç&ûî1¬v¼œ§ÜŸäÆ\²J‘î)&Ò¦ €ç»+¾¸T<¼SɆY$èè•΂·[½E¯6û _ïÈÑ»JÉ ò̃ðÐ])2Ñ#‡Gmö~PñãoŒCÏIi€>¨É¸·¯f!÷õ"¾C%$;Ut V¡v)!q£³ü•©>Ï_ß\òiy³ÔƒŽøµÀåÛ¤˜ÔµöŠ7 ÍЗÛÃ臓b—£S¬“¨»ž‰éde¼ã使h¦öMM£v]•Ьb”¬ ‚—úÊ?¹´@®Ìò8«BzØó+ *Xô—]}U“YÎÁ¬tAÞ,uä?^ïÏz8ßžr×Ô˜òì×´“xkŠ{ë¨'XúxyËÍØOk­Ø/Û]ø¨abŠKÅ©°ëX¨9ÀóúôÓžŒ qŒÑ œôšp(hù9>Õ<Œ µ ¢¶G˜-¨¸³ZañÓõ6l­ï¢åXGØE+ÝäXƒ¸äñZ'6Ú2!D/㦪Šî«DàWKíèçþS'`ØÇQ›Ý…‹­™÷;Š_íÊù¨­>DðLmúQRÜÍIZÆ=5¯àýB#ðLbÌ«âi8úüB#6ïßYQ­ï~‘}´8pk°øõú4Â&Ŧé©e^5.}¶)ýáz'-Ù*«ç,õÒS´üü;Ž_ëÃD]#Ç]›d¤=k*7´`B8E—« C/üš²våËKƒ-’’ËÝàWæIX¬SK†:µ,„MÆïL° +|qàQ°Ë-üÑ9RüÉ6 ~»Ð˜xÃXsÓ5ŽÍðªÅŒÅ.j4 ?­÷‘2=*6À׬ +«o•câ¬Jl‚kšVᜫé´hë›- +.Üx±™øi­±ÒÌ׋ðoø¹ß÷Á³.Móñ–.n¦¥‹™ÖÔPðÀ L¾¼ÙVèï¥g-wpÓ¦…¸€å:JÐb ýÛv 7ÍÕ/*ßnäÎ*£&Ñ„Ûz2ú¹µ•Ÿ¿3ÈÎ߀vŒ’Ówå<¢KÓ:äR‰N9µ`®©è…Š—zs¥—±Ú߈Yé¬ÌYn¤~Ûì¬,Xnæ¥,7Òö:؉³ÀX‡‰°{}ÐÒë³ÌÔM™ry¶µ*{ªŠ:BCÝíF/ö£Ë®0þý(èÝ^DÑõ†âÌ Åaûߺºwñ<(ìÑÝ㴔𿆨…÷µuð€7Hž9*f×D[”d°±½"PY÷lSB*õèD¼å!zÆ8 rSƄޛâÃ_èøˆj6ìuSYü9zê÷“ȨàS1/žG„}þƒtþé·¹Zdœ[EE;§è(—KߘÄÅoJ‘á›X ›"Íã,ðL3)XWMþ8ɧ¼cV<ïÆfÞäE\. }{ªøû—ãŸøž\¹úöèöqJÂ÷+혤GNNðJ<Ç­¡•»¦Ø(ÏÛjú–„ïÒ°^‡àÐsæ:JÔüÂÛÓU¨wzöSe^Ò™‚o•}/èõAaô1Zâ59'ãîJ*õ× +§æÿl‚ÅqV`7ž´’K. ay§©…9' £"@a¯ýAo\ݹpôôÚUÐýkAžþ tûÜYPèó ÜàÀcÍåi´Âì;û:R¾Ó@-1 ¡ƒƒÌDE+/r¨’ø¢•{†Wœ~šž“z²$êÛ±ïþ÷X½Jðå~| +~|ôüÊ9Pôˇ wOoƒÎœ> + +Äò—gÇÄùQo´uǬâ›S•ȧómÌ(E-+¨D¼Ã(,ù–œr,;$”üîèóƒ û΂Þ_¿ú~ÿè­ßÐ¥3¿ƒN€@ ‹¿ŸÆ}ôÎïXÇR:øÎB;úÃÊ-~eTŒÔ´qâÆD”×Íhø­ âF¢ü<53ådþ×ÏÇâ_¿e¾å½ Å¿| +¸yô˜«çσ~;qtÿâYß\€8yÑ¿ija¯7dˆ«‘°8PüÆØp€ŠZ´­âa¦û艣bœ=²ô1=á$42ä44ûŠx~ôêÖÐË×@Oÿ ºðûIÐÃËg@·ó }æwª¶<üÊtcÑ3ó"lu´ôyµÔ}³Ðù4&„=ê"A.W—œAÆÇ, û +Êþø +ûò (àÆeГKAÏ/_=¼xtéÏ¿@§Oÿ/νòæýÍÍJAþg¯–G?˜VîêyD¯GüG…MFL[îÇ…«ë±oà«ÈèˆßÐÑÇ3ß®^=»| |÷.(üñc`Þ/‚îž¿z~í:èÊ_N?º /ùMˆ–uI[‹ý°6$o·Šêj¡MÁG­ŽÒÓ”õЧý¬?4ý.5˜“Ðc‘þÏA/®_½¿íúzÿ>è°¿s§NîǸwùèÌ©ßAþW®‚ ‘_“0 èjò®õ•ñ©¨×9•û‹ñŠ”‘·4ÊÊ6uãCÕÐ'#ìŠ'4Ø‹š’œ‹¨˜È o_{ãßüzåè4°–—€øN|å‚„‡žÄ&?;ÛYþÝ*ƒD,LðÊû+Ñš)Ë0óÙµ+ ¿K—@gûäwæè˽' Šï 5–ç>5Ô¢BWz)q+}Ì$S¯ WREýØEƒûUB²ÿ•!*Îb23N…¿~ztã&èg¯o\}yðôøªèæùK ;Àzù]¹`Ç Pä« jVì)9öÈ¢`ZT´‚¥ä×ùö¢—V9)}eœ?ÕÈ®a¼¯Bcn%ÄœyõôáÁP|À+Ћ[·€9þtî·ß@®ø.Ÿ½zzÝøñxÌë7'+ ®-´aÂm2JîÆ6rm:߆þdj%~`¢îwÑ1w…åàóáaÇ’?}%‚¢_½½ð»:{òèæŸóqôöÁsÐ¥³ç¼8 +þäXÖ·÷çGXÙN%­lÏÄcxæx,·‘sjåëc„xE-䑼÷¦ +^züýÛÉ´·ïAI/\¾º äòåßOyx ˜÷k Ë]ÆýìæÐÝ«7AÏýîò¾…þ†M޾2UKø¼ÜÇI77 ìªjñB7)z¦‹®ï$„´’KoÂ’ÂO†¾|zyëèݽ ?`~/ÿñ@€\<ÿÇŸÿÝÿ` n?=¿uTr¼ +œx¢ÿçF?*æç"¿Êm¤£lz>y]VIÜÖÔT/KÈaò!¿$÷4<>úDlÀ‹c1/_s +¸sôשß@·ÎœŽ{ôôö-Ð`-“Þ~:FÎJ¿ †e<™í¨øªkÈòÓ²RFªI£bú»ÑjAX7‘õ¼ MºÕA`=Ãh÷)sŹ!“K.’sË/ö3êbeÕ=3Ýí䱯–¬ï<ŸcºZlª-+*ÑÊ~NòX=x Šòª‹I-†Áýª¡è[ Îsj.ί4¶ô"8&÷ .=ó<6)á<-%ů‰ÔÔ2ÒWðñËÝ׃˜p‹º’¾¥ÓVƪñs# $Ý@-TO¾PË»-©ǵ‹k"ØpÒ#|.äJEBÎà°ÌSý@O®_bù:èÎ¥› ÄÀ¯§H©·ZØwºzAú|'5zkœ]h‘ Ñæ !rv€S „§\æ‚ãþç _Œ èïÛØLÿ*"í¥u-éküÉ÷_€îØéwÀ· W>ž–zœ˜š]^zˆ 5ßFüæPWR,l°SÁFxµ‚ª}£¨fW/˜5ÕíPMé@]C¼½S”™ùç·wïN„ù‚Âß~ùßó]üë(æí·Sðìòæy7‹þaŒGÿºØ[C³Êëk7Æ8`ßf™äB­“ÜŠµQaùÌ`FÝΩ"ÖQ‘w1ÅeWò¢’N¥|:þõõg Çï±{tás §w@©¡ñ'P)%7ÚIܸ¥¡*†Uɨ°Ê)ÙnŸí]¨Û_·îÍ‹7Ô,¸¶Ÿ©êeÄv±H›pøû\pñbVöETFÆyHJê…ïïƒ~ÿøô(òÝGPlPÈñ„¯‘§Â?|>NKûƒ-õ›¬#…® pa;Òjúެ’`‘³K7FÙúfÄ+S75ny¢š(oã&VcKn ÒbþˆÿüîtVxèïðŒ„siáÁ¼~xôö‘ÿÉìøÜ+‰q‰ç3ãNQ +J/òáÈÇ]lÜ;M=⃌—um¾òõ`NX·¿Àáú0צáã-ºjѪ²Š&k¥«&À¯¢s²|óîXxÀkPî÷(P~TÂÉèÏA§^?¼ Júúî827å*Lùƒ%l¶_ß–qn- å0°[ª¦¦M@À¬OÔQ—Çjqó=´(}3îÝö´“Pò`©­¶>ÐÁÞn$ïLVSíJ1Ó" ·¥œÇ”˜ã0¶ªì¦ªË¹%gCÌjnUÁ…-+¹°…‰*ÌÜ`=L×ÎŒ˜îà$,Žu—GzE+£ÜùøR_]ùf5Ö«àÀ¼@~9u• ›’V°#e•;'ꪜò®Q‹º®v].Àl*ÅŒ ™¿ÔÍL\éæ,ôÖ•jº‹µC}|eOIRט8*¬ í¤Ñü«!à ÍĽÉJQÚêPÞ¡l¨ÚU6Ôíªªùî)Öcààö¦ÌÝ©JÖò=u¶ƒ¹:Ä.ÜÁDEªöêTegc¾¢­)s¼®9FV[5!ä| `¨›j3¤uÉ=ú¹²³1ÑZ§àe.MV¢]ÓÖ?sá?³\‘WKAlŒ¢"V†ðá#œ<³LLÖ”2?ÎÌ6uá‚ÖI1kãwUeÝ Eœe%^™éeeé‡Gš'»ZÀÒ6a¬¦W\´(i¤™ "›šOXDD«E±—7†Àï÷g9ü£ÕfÓ®‘µ©(yŸ¼¦àB礕PEOeúD«0v²¹&QÖÂú®ì««Pv°ucØ9 5q~˜5;€ïC~rêT³Œ‡Zè‚ØA„üÚ¬wÚäc]§C[]iVU’wm°5Fˆ“×–¾­+ývÞ#ã w§¸äíqBŠEЉÞCGÚ•@®*(Ù»S,„Ç$®ÞQ³+\j ï¦[¥^cËø±®Ý;'®1kØÈm9sy¼.ÁD¯Žc³­P|d¬¸§ªø»ªz v™%^=1ooš\º­À%逸»SõM¶‰¾K) ˜U<Ôú$e–U1]S"¦}œ”n$Ælôá×ûÉ1›ãMÜ `[­BlŽÕ`×G%«}Ô»”W±§2l2_±ÊÚ#c‹ìÀPßãÒ0‘.-bS0À)§tk„S螪¤»µ"¶]Íú´ÕÕVE­À¦ªnËÙe«|Ôšež$§m­ +NùL/'u¡ST`WôLºkÓ4«vì#£7 üJTÒy¡Ø1ÅÃ[•|ò®±ºÅ>S׳ª­o]Ÿjé^S·w¯)k™sƒä¨ùaAÁŠ´µ¥d÷LtôQÀ>2ñYÿ­‘¹É©ôÕA´kÈùçš՘難NðÕ#:Б‹Lt¤KC/6K™òjø'NIì³Xúæçª°yO×ÔçRvô»T­=NmS×î£Ì)'¥š%„ع¦²W;r|Ætgé}S™ÿö1Î:‹sMQ +]bŽCŽMôhéån %wˆ»ý™å¾±Iâ˃9>Û2E.Ø–ã¶¥¸ø)GÕ”í?Éyýc®ª}ÏØÐëR‹6)!ÑÝÓÓàk#ðR"Ä6FLß30Ðî%.wMÜ}°$j²ê¨Å²Æ”ç‹Ãè +÷\Mׯ$µÀ> ‹8š&•™|5›(—™°Þ›´5PôuOG)µÊèÅÆÆÜ;ºªäËK9w5˜‡™~h¤b÷g«Zg†P飂h?«‹8Z©uȉ66i]ŠNš„ÇØ4¤Šýy^ÍáZ­Ô<-®îf&û™'ÐE¿æy<»‚îQ“sœJLü–¤øýlkòÃmiqÄá2›·ð›MêðÌTµ¸gëºw´<œUAH³MT|qL@>nZ¤°¨Ö…­%¾ÐÉÌÝè çhk›L\š¯ cºÝü¼ÜS f^1Õ—¾0ÒR-øˆ)6zc âýÖ@é;×*êÀ¿LäâW¸Â£9aõžž‰ø ¬Ýß|«ˆ™N51kwŠ +Þ bÖúÊÂÍ‹›½ÆšF‡‚rNP²¶{+Þº$˜˜£).Î! ÔÍø°v\êÍXôOƒ€ëVs6«ˆU°UŠËv¨¨Ð]-Ÿº¥¨¡‹`)7›*­RkGÉGÛÕøT» +åP¡b-ÒŠP³üeGO_“R3çzpß­2>}¶nÀW§}GΆÙ&HiV 4xµ;ïÙöhÞ+Ç>CßZüf¡æªmñi@·F@´+Ev55ß< +w(±I¾þ´ëÀwòúÂç@ngìOóøó•õ?—8œ¾àÈD(:4R +Ýe¯r&êÇ\Ý€]ÃFoM°‹:±À¦s­*6ˆÏú£ÓÇ£6%&ÁןÀ׳ۮ"¤íêðÙ^¥ìÈXÝ| Æ­A'¯¿76ù[Fqq‡FÎ× æÀ@*ÜŸ¦”úîóY¤ÄŒƒ.õ×_h–A£-JtÚþJƒÐS2ç¥|k¬à­e²ìûž‰X|°@&.s„f9¼>FÎØŸ­ltèX(à\H¾ç.ô<ò€-:Õ«G§{ô„ÜAZÒ )+÷•Ã÷\€Ÿj•ìjlúŽ›bŸÂ&z”²ý¹Ê îz-j>eWǧÍp¨G3È›¹Ü™vgøú´Fõð@O)ßâ7‡‰‰…¯× çA¥™Ç¡ßVúá_çz1¡ëcȰÍqXøŽ‚˜çaÜ:r‘ÛPY½kl”x«º¼Ë†Ã%àsNXãÐqðKý˜P—šœï뉺=†Ý× X€é1°‰ÞQû•걟küº]=µÔ¥¥–î/´]3õ}[JlGI-üw…Fùß +áWè´ÿ[4ÿß*¯Î¢`ÀjÐá7zàw~i„Õ?ý잨øjÌ{ºÖœá7_›uk½­ø•y5 Ì~ÌÏúxqw„šw¨ª¤üÔqñGz€§È»¼8È2’ñø êÃ[§Ž†øµÌ­ò˜hp«›d‘ãZ\ÊžŸíVbs¶†Ñ‘Û²­^FŽc”œè–RÒì#؈í>lˆcøY‚1÷—¼^í̺k‘@¿:äÔœõ~B®kœQº=NJ[AG¬öã#lcœÂÝIvÙ®†‰°Ê©¹¾Ü;46üt; xERºy‚´1މ°LRX‰÷Œ<6 9h­X´7]U}¤§”éЉ{ê²à)ôë–ñmk¼£ MíØ»RHóLW׺uL˜ Àk—¯—›<ß +®E†ß\éCÎT·î™ªê\zR¾CHø?Ê.‡‡»nqë´<Î*BÂ.«ÄEáû³õý»Æª: ¾ž*RD˜eáÒ3ŸGIÛD‡ZÇ©ù‡ÆÚÎ#Àëyõb¾[ÃA;e¸´~hKA/²Hˆ‰„Ä‹káÿ³\3ôï–xÐi' Å®Ë\€ÏuîÍ0°»‹âæM%b–ÒþgYÜþý?k–ÿYç·ì0¹k#åïç{+·F ±›£Ø°½)6ò‡Q\åÐ÷´´K ¬Ÿþ}º6íæ(!ââÆ1ÀÌ7ë‘ZœüÈ©!•þ˜ç°ÿ^扎¸l§ŽÞœd»¦«[öçj{v&‰¹ íù—Û í©Ÿ6KEýÒS*v ßfª“®Ëq—×zËãg¨h— +a…†X˜äÒ N­â™e öfÈD_’ÿ¸ëòoÏÈçÿX  vLœ}Š +àê1±‰?–¸œŸóÆžŽTÖI ½fê‚eÿ\j”ÿ\ða7 ¾!vNÃ]zdÊá ¾øŸåÊv÷4‡ø–g¶QæÒU‰w§Ø0–Q±¯£•ÙF Á6¯o.¿ØŒŠø9%xÌR””¾+ÁÅo´?w±è'§¯öÿµ"Îq“.9¾µOÒ +7à_V +ý— +üçºî+z÷Ÿ]†/èçÇßY€$þ½RÝ8Çãy[ârdu°øý8óûßó@º&ô7nÁ?k2Î>LŠ[h({6[“{ÇT•}Û(J¿>#J¾d(}o'gjZaaùáþõ"âŸÚ¥ôR›‚ƒÝÕ°à l›€E,÷d>³Œ—ïM3IN%`sWK)qª°Iž)dì¾»«†F¬ |\í.ùèV± »ú†ž5Ð-ؤÃ)BöžŠ\ìTá2\BÚŽ ³5Š ›n,x°6ŒIÔµB–ºJ>»U´B‹õ}»òfÐ{ÞIBò¡–Z¶¯§ùô5çÐ$`ý¼‚¯îÉÎ*àáwÛ€÷^Ÿ$¦šZ€Xgà,r:fk’\`tíþ ‡ìÒPŠlr|–KE-sLR²ì㸀¯cwtˆï™Ð½i‘`ÏTÛ¶7+ª²Ê‰É)!i½öQËŠ¿àE§þ˜®¬ò˜äÒÒÊíräð25½¯e"wäèT³ “aSQÁ‡&QÍÿújæ.ŠšÎsY^¥lW °ÊÊ¿l–¿·ŒC¿ZÇ!v)6Î5Iʲáb +JŽ87‡Š”o– â¶ú¡án=‡¼ !²?[èÆfý\ª?˜5íjép» +›l‘‘Ò<ú­ ˆ?ÚÖ8>iSBLß§š±› Þšªržš;`ŸV› _[†±öIRÎr/,È®$þXÔ-³˜{&<Ø¥E'Y•E_-òüÏGs¸¢¿—™d›†’7ÛUúÁ×?Â=[Yã´ýÑ’¸õ窨Õ;C‚ìja1kýůgÚòž¹§Ùœ=ƒPt8áÌ0(v´Ädÿ\¢â\¼=û¾ØQòÊóÈhÅÖIt±õÅ÷ó{¨0rrÎö:tkùˆ•Ø>ÈYU®?1#ð¯ABØ=Àƒo a#WÛÁ/6;s_Ú‡K·ús^®ö¦úè  iGÅïqïTÁÛcˆØ½9|éÁë¸Ë©£# ¥+ƒ¨x¯‘ƒ?ü…YNÉ]@‡îŒa£­#ð¯}e_Õ”Ǧڬ'.=ßh¡²foF(b½pcõu© üp¾*åªkf(Ø,þt8ÃülU¥SI‡¯t•~³ U„-wúÏwå?s(}}¥ª»fÅÍû¾ºT󕵇sL‚¯ÿïÎ$4ø›ûK?ÚUø´žšŒðô¿¢îÍÔ´;Õ|¼]Ɇº~ÚA„­õC>m•Ø×ñ96½ `Pæþ4óc'þg!%/µ–½škÈ»?[—ÿÌ<ÌÎ[ì¤Å¨9·,ý€ÇïÇǘû_Ö»Ê_™óî)+Ó¯I˜IçZa_[é Y%bübì °öÏÍX˜KA,vÉÎQs—;Ëê +ü÷UT¬¯§ÙJÎÓ)AôY5;þÜRcî3û,îàûC ¼-AGÁ·ú‘_íBâÎ1akˆ·Þ‹ +ÚèF~´øî×µb>ÍÔ >Héùþ3Õ¥¶Æx0¹0ñ‡žsÑ9ùd-û¼3Rücš†îç¦<Ç'=?+ãå†y<›´äË¡±(Ük,Ž˜ëNz6Óá·Ô™ûhGJÈÜÅ%®ôã×ñ˜.}u‹˜«ÕÎ"ÿQzôÙꢷǵ¤»ŽIR~="êa;.â…Gǯ“ bð}?óŠŸrQJýv¦ãÿ›¡&ìLj- £`£½3D*pÈ™ç$!Õ-GÆü2Qa‡FÚ;ÍgùœŸsþêh}©øÀ@.õjˆ™^ÀgÙ‡Ê>®Ô¥ßÚjϼ·¯D'Ø¥ÈJ&l{aŸÀÅYDZ [ƒ¸ÈÄçéªì§Kme߬ +&̇çN=‡p0ÃcìiYðÃiÓ¡a#v§èÐÃa•{Z,Ú”ñÊmºº»¦’i›¤çºd„äÕ.ðëåö\§¶+C†o¾Õ‰£nÌ6'Ýû1KÃÿ\·y´˜,» úÝ¥F'šÇÀ'!ÛøF»³1ŒøðVªEæóS|®gš‰ÞŸf"q)1‰ÖIDÌr?äÃÞ4‡}0ß:íž×î-T6îÍW¶ºM—hË*Ð ‰;rdÔŽ’éšpì€7Þ5ûs¢—šG±Oàã,#¨ï¦º¼'¾w]†9ñ׉iÏ3Öƒ£,ÃøSušßRKö³í²O2aüµIAÂ…™Ú¬ÛG*æ`¦²vGFL±üêãÀM)JÍÉø|ç8)éÃÍ­>*fß ªZïËzjE_˜­J¸lþ˜cQ=Ó\N+õ]#<èêÿm ;¼bÙÎpÉÛŪôëS”˜3*JÄ_k™÷”¤Ü™vX\NнÂâà'€^á»õtØZwñ+½0îRsé«?åœÞi*Êmj^¦ålKq™ωj~ùì¿g¨Ž È7ÛXɯzÈ‘Jæö$«Ð*¥¦{ԌҵŽÒ·aòÍ)VÜ…ÔçSðw''a7¶%e)ÿÙâ· ³cž,tæ;œaŽ€¼>šáòMÀ~&Ê¿«8açæ[2Ÿïèˆ]=gUÐÁãÄçæ5°I¾šëÿÎ +-±?…Ns)PYNr¸R5àYà×íèÈ…€o.ßôµE†IÙÕãòçYD‡Ž·*éà]¨rm˜…<0y¾~x^5acæYF±Kí%ϵÂüû;#T°y5]™|s¶:ù¶¯‚œ}kÐŽqxø‘ÇÙ–³¡«ƒäXß³ß^-u4C…ýZ¤¢-Ñȇs˜üÍÑâ7æQt”GËÂ,Ki¦f_Ÿs>Ê!`¼jÖ!Å%¹pw’sv’óÇæ8)u„“ùHÅÏyêaÙFq‹MEÏÖÚ‹_Ù%°ÐéÚŒ{jAâÕ¥¶’·? •U–qdälKÞӅ΢Àù¶âÀåæÒ6@oíOá³·ÇññÛÃÔŒ¿g«Ûÿ]·¸µô²Ù¶‚G‹mÙ÷–š3ïzé¹}‚œ±5Lˆ7T—<ÜìÂ…»̲íadÈZü“B~PWñ'?çóŸ=ÈØk–~ròü’˜úö´Fœr8E+55¤ú5BÞœ ÄÝ£ßþiíË}í'äüÍåT“òmt´e•è«(s? cºJL¢"ÿ1Râunòë“C؈gÿYdUºUĬÞâ—Ûƒ%íãè”=-2õ?›L¶wÐ4#¨¨åTú?‹õc:&É2˜÷f½'ù¶y¨àÕÖPá›C›éÒò©–qZ¦KÉ9匢hÔ‚ôǺ*ÂO“#ί¶f¿:ÔÁ/ðE?X,FÆ£ãJaBÐÏ9:Ñ­Åæ®õ—¼ß›ÆfÚd°XcC6 oIeúiGÉ'O5T¬Œ“\³ cÞåæé¿—9<÷DyðF[šßJkšßBKÚ—šê™&¯B‚œÓ„bïJÍðϵÿÖK®ôÕß71PN-µÈ àÕžŽƒ¥ç>8œð§¹øC=è’±J¬LøvOÁSkoYྚQnƆou¡¾8ÇðI»rl )’’÷v) aUä¼µ ZöÖ#WËÁ8¦Yn2É¥/ õmûFhœW O9šaà½H‘Õgú«„…!ú–áC@›8k•ÀB¦«Òoj8‰WôðSC!– þðg2êÁî9ÛXøb÷õO )ø¬^UÊŒ<;A8·ÙUüÓ$® @?nb“v,¸]ÎCx”¤,²"Ü2VðÁXŸrg{ñk¶ªéÇŒPhWZ¬úyG‚IrIñi) SåØDóòÛë„ b}ï,,w—¿Ù–SV†¨© +~¡Ÿ‚™~YÉH¿¦áø÷àb¯ŽP®¯ô@C;Ê?k„i×eìÔ#Ääg«àÏ? ðËÀDíO³°³}eŸ´ i¯~Íó¿–øÕVW¶À¯·†JÞ›G> þ¹Àåz LÌŽœ˜±;Eƒš„U¶ dør{áS3öŒ^”pi®¹ðùR>ªª<á&äÛóß–:Ë£X'Ú”"Ëhñ[­8ñv]É»s¼4ÿS +Z ÿˆ9n%l¬+ÿ²ÚVòÞ£¦—ظÿ,óD¿fÙ÷)שÂ%z¦ÈùN —´5ЉwÉi¥G€—ôÕvµK!›ó¶”†&D=>&LyzbNœüòc‘`bÜJb–wŠV|¨çâÝZ|¦SOÙ–šk²<øÐÄaýš¯ér«ië=Ùþyyô¡ŽŽþ§Â1IÎ_ï…}±OP}ïÔTŒÐ2ý{j¬/~»ÖQðÔ9Vä/´B¢×: >(Ù!çveÙ¾ëÂ}…½ÐPà$_ß¡ýi +äߥÿöÍ©wªhåú†‚; +&Ö1Û6íYhÑyyuIá@<çì —}s+ ÿo›Æø5ƒ/tkà GËœêýÕZéá<w4hÑ:Ðqi»SÄ쀛œrb¡*ûÙ–’œ7Õ ´Œ“Kô"Že½Ò’q{»'û‘eüf©!ý®uçžf£×³5\ñÉ5Žæ)Û©¡ßcöLâ¯]éH7Àq»:v×p#àÿYªêò¼ øž¼Ô_´7E%ü˜«é:4‰Ä?€¼ñ¨È96 &r«ùeµ 2Ó† ’ ³îÏwAÂ7%¤¤1zÒ¹œï}ÿŒKM¨ï[Ô\Û(ìQQŠ|}bV‡Q!Û^:§ùt‡‚R°3žób±=úêtmø… æ—?Ü +|澉ð;>}¹úéàM/€e{.ú@‡K·JJÞl”ØÇßÌ£øÈ ^¾ß¤0÷ÁƽtSÎGèêËžõc"þl* +:Q_r‚žôü˜Š›pw ÀbÉÇ+Ñ/ϯwã]2f±WALwŽ•Ï·¤>ä|¿5L 9çÑA“ÿw­²Õ׿£¤lô”¼Þì/{»7…Ïù±Àf,rØ>ïlWbSÍó蘀ނ~Xï­x¿Ö ûn›À¥9ÄŒ >FW[ütwÞ6‹ß7R*´É÷4µ‘-YO{ ‘wzPá·.ˆ<&ÁØ…HD†?ÿsµ½0è?klÞÞ‘–…˜Çòß8倘¦Á|=Í­rF1€ ¶ RîžVÈ0¡"–:ÁOæ› N0Ò®Ufi«¹aé‡D/õ•± +‚®mŠ÷´tøZ_é§ùvð“Ù¶¼û Ywò’¿æxÜ=ƒ»%¥çìjУ9aí?ËÂ:¯žR6SŸýhŠ“qm®!ÿáÎ8.Þ&g—šZ‘ïÝ> Xúj{¾8à.È»Ó2RèïZvüç<îÿ6yÍf5¼LTøê¬¹—ùk¦¦í× ›úÓ„Í;2"ÒÌ£9ogšãüf[â®ýZ¬lÜmÛQ‹„)5÷Ǭ¸íÈÀ¦ü4±pûSÔb·¼"r³/3`g¬èëßË‚»^\k‘qÑޙʪƒ6Õ£!æ¸on‚÷¡#®‰Ò_ýaÓ ã¤dçµÔ©føÞÓ Ùbi«§ôÍfgÎÃͶôÎ1TŠï޶©èñÆ-Û&ç ·Æ°±Ûcؘ- *Ô,E„Ú5˜„]#é1ÔwyMMãÞ™úþ£ùºþó‚Ê_ |ð)ØÆé´ä1Óª¦;´•ìÍQ¬ÏŸ|™o„¼Xh(}¢¦ßXn-ühFÄÍwV¼™k!}Ýì—­÷ŠÊ6†8àõRü& W _–ò¼2Ø pàú=ß&g»Õ"¶SÆoOà*L<€0T`Q¢bÍãØT_¯Õ]ïÒpPn-ß:Ê׫ëh–µH³mEWzQÁæIVÅÆ2×J‹Xh`EÍVb^)©y×ÇÉÉ—Ôâìgš†¼„Øsr.øƒu”š½Ð^úÖT“z×:P´Øšób¶>åžy0ûÅá,2eÏ€ÏYF…mJðqFkßÈÆÍqè³,²ðËV:i¾+ï™] ¶©)öqv¹WÝ6| o›Îµ:P¸ÒŸóÐØp£öþÒZ,dqÕŠŠ¸°ÒRüæ`šKÞÓqÉ»SL)«‘¼ÐSúvª2ç޿󾜡Yp«O8ô_3µ]?Í üY‚‰^ë+ ´Ë}Ï~ HÆfÔ7³”œíü÷Þ³Â+cCÝãLˆu— &Üê'ÅÜr©ØØÕ~l²B˜vÓ:‰Ið½?Ïa-qXGþy •¼Í1jžS#àìL°À^µØ®@Ưönõ¾nôV¼óÕî2÷A£Æ™I×)«ƒø| +ó¹‚yÏ܋ܛDǨè%9¾Ö_»Ø‘ön©-õî¡‘NÚ7òyëýൾìÇëOçš2žl—ÿ³D€ùÔ¸7Ãf÷s3ßµS_üX¬9œ­¬Ù×2*¬Ãð/ uY÷´‚X¿þ‚/ÿ®òg{`a2$Ô9]Û}¸Z;îPÐ +V{_ŸúnµçÑÒî9.sÏWïÝ@-Û–`£Íø(Ë9uÙWg©!Óo±)í®Švi®!íÞzì­K*@ÌwÁ£¢ä›ëý°]1ïÇ,±ìÇ< ²¿ÀÀïM x^£P´?S)>0‰k.Ôúúàýœç ögé(‡ä2r­zR޾ý½›”rkg˜š³=@NRÐÓ¯5¯ËyuBAޏ¸ÝYôÒ:FN1ö‘šÉ™º)‘7Ö‡¡»JÞ£á=zbÞ¾Ÿ¿£|A7:d{’ ·*ªs}”ø¥!b¼y’˜µ«òˆLú{‘ ùgÇ?š‰1Òö¦Eüý™Ú΃qµ×Ä&º4¸LëDI°e¢4Ì.¥ä8eÜòjŠœ[v¿“ý¨{³³<òL+4üb}IÈù!B̵YqÖ]§„–9QlÄÄ\^í%å:d•„ÍA\ôö(ä“K ùj•‚_y¦Q©n=f‘3P‹Õ½.#­b×@*tëÑé.=6Ï¡cl:Æcâ²·d¸„­!ßýQBÑL*Ë>É-·OøÆƒMrMà’,ÈånT°L”ÿXPt~­µ1„^êúÿ½÷[ÚÙöÇ;gÎÔ3™šÌ$™L&eÒ{5‰Q“Ø{ï]Aé½wP쬨H—*Mš¢RìšdæÌ9ç>÷þ!÷Ã÷ŸòØî½Êë k¯~ZBd{§¡o5÷¼ó/ÂJX6à˜•Ñ¶7êžê[@Îgý¹&˜|ïiÂ6â½%— ©¥Ž¬WëÃR;½¶of0Žl,fDƒ*qŒ”ÿ¡¡çV’ éxñm øNTKh•Ð*îŒt¦9Ø-f"C€õ·ý_­ð -¾)%”T4–ßzs} +U¸äïxõC#⟅$ÆûšêIéߎAžü`n|Ö Ï½”|íô'¶‘êĿݸΘº>Å+.¾c–]aTÜÿ‚]që«ÀLMÂÿ¶˜½Û:l½OMô`·,ÚŸN&ûo/…òï5$hCR’´&®HX›iKÖ;¶3»+LÜÞ +sdbßëé„ÿ:I˜ÿyñ°÷NLÇÚTë‹ÍiL6[©»&áஉËÚ3óº-\Þ®ž‰Ê1µ#á÷ Ȳ˜’”€_硯Î~hìÆ{ÍÕß^a^Z¬ºœl{º%‚§Ê9—&/¿\›%}°RÑ8ð‘QÄꜘ]±èŒ= gìéÈváÄ{›ñÁÆ¢ÇßËŽkÞ¸/¨'7›ÇÐïHu7Ã$9£úîtGö÷Je‚Ž^þÐ)XVÒò|W…,´¾4€Î>3‰{ùmT…©91 x»Z.¢Ž×Yv$‡äÈÜÍyXjX‰)Y›CçéûZïù–ˆ-ûfžðÀ„oÞYnMލš’"Šö\`½È3whæP,枉Ž9±qø'6'>·þÀ0þ<®xKŒÎØœB¾Qrë®W½¾úiÎí3ŸLÃó.yE°¼Õ¾æ{®Á†[rJÎojvÉÍyváo£¸Ü˶Qt¾€žõ™Î¤MI{ʦ¤õÙŽ¶#ë£ û{‹ÙóÁ-9ùC13)þ0þ½‹Æþàæ;…3v~ïWÂ:|p¾ RFáE1*û—crŸÝ®Å–¨Iµþ)XÒê`Õïö²ßÖ'A¯ƒrRã³ò²FP}kW°®‘º:f@—Çô˜òð2¦TÛßúTÙÝðtßÁ¹9=®"¨Äm/ÚÞ»èL ¿£"Z*Ø/Gç¹&Ú_í®PmIh «‘Ek“¹¶¾ºçkã ”Í9p~P +NÝ’!óç™Ló®Ÿù0¬%ÔúåøŠ†Ø°cf`CZ:ħ Õ†µ´vóPÇk8k8<¨‰ÕyxꦨíÅúHë³õ™Žl¿‚’uAÓð•‰ç=¢†—ÛŠ¦dûHæYË@æ×TÃ+}UâJõ›¨Zðïu×#…ç.4Ý ))Ð÷áä{ylk+ލËHȾ”`žþks¦áíŸn&×+AåÚŨô°ŽIþèPþ×Ñ5þ¿5ö/7ªa×Ét7=ŒH‰•1£yw™>qõ.¾w÷,œØxÂÐ"2ÇÙ×põØÊ4Hû+÷`ùåõ±ªkñ¶Áæ[®øó~‡wþÊÈ,ûUAÍ>7Ôþì;Vå­¯i¥7þ9zú•oYä[ÄæE”¨‚=®vÇ€o>±²yÇŽ.ñÁ*po…Ž|ogPÃrtÑžŠô飃NˆYØ-%£% å€×Gi9rzýAý›¯$ˆ²_wØ`ÿ4Ñ=PyÙ,Ì9í¬¼âéLtŽ·=ó϶%©ÐˆS‘+v´ÔÖ¨–QBÒ‚K $mWÎï˼ü3þ¹Æ„!¤Ç·n«¡Û*prLÓž}´‚iýƒÐöŸU|ÛŸñ™Ì*l[E¬ŽóóŽžMÜ7v #6Æ> I#ònÏ8­e×_…å_Ö§qô"²7çpe®ð£µñŽ„1XÖ/K”¼‹Q¶:¬`ÁW'(yc˜ÂÓš®¦×Ûj6.ª'ƒ,ئC+²nÏ ì‘5‘AÑ*ôÀ.8Ze Ž^>vô-غ‡l‚¾-àü¢Ö¶á†;Ö¡æ‡n1²¬štNÆ(ø#º@­ +Ša¯W89§—i©?Ú{KozÄ ÄIlöi9»ìþ! ùB +D‘c¬áŽCÔpg+>ßÂ@ltíÀ"ý°)TïÚé„Ð2­=¬²öŒ#².NÏŽ‰ÖÚº¬7>cûÀJò¦äx|dêÙY&µ„•ȼõYP¢©·ê²kšRÌ.ŸYã˜îÌÞ1³y‡nþxl…Žˆ™éÈÐ2±!øÎ‘׳céêß6vñ}jr펞Ï:2ó{>X¹]1-­Ã³@,tIèžYrOŠ-¶´¼ ”ÜÿWwË«³»ZlgL/öËÚÞz¦šžÙ+®øè¯Œ sK(Í_âßÛ¹‚m ºt[+¨Ai[ò–\÷TÍÓˆ^¶o㲜Ӵr‹ýfÛÀbü½Ö«<0ãÌÔz`¥ Žœž Wxlæ²ô øž– ?tÏÄìhéáejç¶ +ßìKǶµ³„/Ž*p¥áÅÎtkñ%sWåeç>­¯5ó»idöËüò«‹”ÂßgàÙ§—p¹g}µ7‹ècø¾s‘½£ç‚jJÇþ +ƒxäNíXùÝA-±ÞÄxÏtGÒÖ""[#(º´£À4í[ºã÷`B2L¾UØpuôæ aõ³O•ôÒ³„Ê„¯qyw¿²÷Ô%Å”¨¢¨ +žU!ò  ×XÙ#?ùg5ñ婵ÁÚ› ØB ä·~ùeÏhëK@çÆûšWüíÆ‚ß[‘5[KµbZxÙ_@œþËÝ=ó'‹³¯hMŽ-Ô=ÚW·g™)ðC f°KþvòöôÚ*#¼À¯‰Zž,Ñ +]ÔÜpŠ¡/µ=ÏVÅ„Êm}/¤ÅÕ„ˆÂ˜–Š823ÈVYœc;½oBBv 覨UÓÛŽ]¹ýU^oÌ̦¬ÍA²½sõÏbjð›-<eš6Í»¬ïnOñÍЫým%ðÔŸ†›_þ$ü»`b¦ŸóO5%šˆpõPU£òé÷Ájë¡¡»kÇHÇy~W­Ù]AÕ¯QˆQ®Ù-ƒgM +¯ôu$_øàéž=tô+[ŽÏóöŠêæÛ“¢t ÀF0¥ öÁ(<í´k¢% `›Æm ׄeزðÔRZœ“ˆ”- ¦j°{×"¾Ù3 +Þ1pé»&6m×LEì¯rºb+@n3Ð;·õtHÔ44¿µÄÄ{%øŠ˜‘Iò©HuËЃqhÁ¹IxÖoîÁÚ?Ôì‚?VúkR6æ:Kňw¿í%GVüÈèîU +ùÐA$îÁùxÅÙùûþX@EBƿnji°€†PãÓPZÃsìÙøÝ@þØ‘ê¼óøÊCÇàòž}Ätà2ý_o_¸k¢v¸½¸® Ô*M·LƒÀkëÙÝæ HÕ®† - 3ÓïDã-Ï`õ%-3ãG »ôâ£á·ä[g>áÕ¾þ-¸ÏÜœ…¼¶õ6Ýp4ßÚ7ÜóÍÖÜŽJÑ9€>€y¤˜ÚìÛs1º)f^jGgƒË=]»&ãÄÎë>°²éÎiDºgäoDID…­ JaikÃíO•Ôêë‹„²KÀ^ÝD–¤|‹Ë{ñ¥«%s{ží-ûÝ-ª¸¬ïÊ>; {rjóú¬ŸzÑ3ÞøÊ<zÚ NÿÑÙG)‹J„Ø= ®æÈ-ØÕwdnIŸ¥ zLˉ™†‰¨1åGz|ÃíÄÎÿ?ÿs³øÚØÌc±Ý=Q~k]TuÏ»€ÈᵿùeŽTvÝ;Iõ ƒÙzÊ.ê9?Ïãèiyô=§øæ§ËÔ¢‹2FÕMFåë³î¡š‡«CÍ©1 ‰eÈܰ‚X’Á +CÊö¼MiÓs@ßÂöt¼®Ýe2|OmðÉ*_y%¥ þ¥–ä#ÀN*nÇ‚ÔÐ,@pÿtòG>:1-GVHQLÉ<âûî2¡&°€ÌðLt&ø¦ù€/—ç‡:LùÖ4(QŒz{v†˜{EØó¹úošR¿6I.vLÁ^Z&·á:­èÖ¡óxí€U)ë.¿;K˹óÁ#‡4,|PÁ„Ä4LRT¯Ý–´§§A¹9¼BB+¹4ŽÉ¾½6ÓQêG;ÇQIn,Ù;ÏðËð%ëbX¼[AP©’ ›/°*ŸGt‚î~w¼¶ˆ“ua-±&øÛ¾“Í‹™y¼•qDš~°óUXÏex¤äšERíï= ©?ô7¼úfc¬æÚŽœ±¯ë¬Ae}{ûÜ?»*ÒV¤C+›êW Š}@œ Èë^Þî(‡6Ë1 É—Q +ÏØF!¯"FïÀÉÚw³Ñ8'é8¨§vØçð9›‹Ô¦ˆ Ù”·—®2{ŽCÆ¿ÖøcñÙUa±uÏIFDã}–±¥æÑÖˆüÇÿÚÕñÈá%rU¼»òb}°åæjOíï+=à›ãäš³Moo|6ƒ-¸çŸ‡¥k¸E¿ªéù?¹GolL6ÜÊZ^¨»Î0 Éj˹ø¥»¯¹p×8iÇT‡öÞ©'‹{d§ãÜá]"•йÍÕÉgVûÛ +ö5ĺí9dº +—é‚=³;î(I¿jiÍ73ør{_ë#sWé¯> ø•GÜøÈ3^û$ eŒœä[èxëši~¨æÖ\[í£”êØðw¾)ðëc3´£!¶nK -VHðn[Õ™XjM8С+wUˆâ[ɨÿyx,@|×a«7&›^:ò6‘y=°·¿JÈå×ׯQ)î¡æÛFnáY)ó4`?ðê^|?Íü}µ§ù¡Sx©ìÑ…OÖ†“öUq MóÏCÞºF[nÍÖÞ ÉkûëG•¤:—¸-_ ÄÆ­9hÚ±;±c Çv\ë'¡ã½‰ê 9aeÛÛvóÐÄåžØºFâþr`"AôèÊÐèµc¨âº†™}n] yãœB•N’ nh»ÊîúáE³„¢»³¸â«€~ÊÜ×Ð!€Æ¯ðLÂ’6©' +îÄN@ŸØqG6Lã¾ÛµSP¡x]ø*…òqÎwOC’Ý“èì]-—÷—ƒFóM7½Pàßý²Â-¼êžî«q•û:Bƒ’SsÕ6ˆ|Q«#JD‘s¼ñ±µ¿îµ©Æ»~981¤Á×mkÉ蘉MÝX"ÔG ,Zl…M k1PÚÜ4à9âWÊã}ýÒ¸&|›±:ØñL‚Ìü~üêtoËÓ_yõ/öµ¦|Û‡(KvHÐQ¾Õ/G•‡–©í¹oÆ·Dâýx5ØÚˆ[æ˜l}a쫽fè|·½Âæùõ¤_nŽÚ˜ô€žòkÉ-#‡¾辦-ß3[q;¦Ãw:'±ð?]LÁß[ìÁ=; yâ"Àc:há& …7ç;2µý ¹Ay\PÊCKôú­Yl¦£tkWøÃ08ýë‘¶”/aé?mKHõë3èü%RîwÉŽ”*'¦@díÄï Ê¡9[‹èË8æí®âzxŽŒ;pjcvsÈëG«¤Î=3“Õ³ 5'á#R„ Ùç×úQ‡Jr³g°þqÈSG?è–Ž\þ“ƒSq.4 {·6‹Í¥7½ù©œzaGKÇûJDÔÐ4·¨æÎ9û1.óGÇXýmŸš2ÉlH.M¼qJJH¿ù÷†P~`âóö€ø}h@U;&i» ~Ù˜®{¸«£´ u¾ýa¥«:û/»`ü Ùô¸ê}-º$¦@øf ¯W‡@w5Ý­7àEçgÐ…?GèmãÀ¾ t>u#½cØŒevý¦¤SüŠGŸ†g;3Wº«o›e¿ÇdÐŒÝelî]|lÀÕÄçßë{g¨¾iꩾ•Ç?à È"÷LÓã½øç]DɱÕø?/™Ÿ¯S3`GºÁɵ€¶­"ÕÆë>Üå—͂ &^ÁÅ] ºV=P÷º%ãÆç¼êçߘ¨p÷(,ÉÙ¾»6ºØôãx~Ž-“[bZF§GʳÓ Ê@Yº´R‘»VnßJ#ü{;¼c„•®Ïµ>ž¤”\‡äÜ=Œ×³YЭ^qs’ª%ñX-òÍ6¼²‹®NB_}é¼FæÞÄ=øNF/¾thÆAŽ¬Ø–#3ºxÜâPXƒ)*1e! ³© ×ïè˜è#÷a•Šù·‡Áùh%Cßߘª¾k]4 ´½œ"”^µ§ý«·úÕç=U/¿ê¯OúÑ5ؘx !·oÌÂJ—¹å7Tô’_KÄJ eDä°âm¼|[«âþØE&:HèÝU:Ù¯'C—‡kï9gÛÞ¬÷ª]üሑ ›8Ô˜Ÿy +þ°Š‡ûeƒí)gŒ8ÄÿæKã3§£êÎÌÀBËSïTý#¢ú~Îø®–ƒ(Xàm)˜§”mŒ¡RŒÌŠ_é_i)™ß…§êŸl·§9úï­p«ÎE•Ø2×dà ÇHå ×píMÇpÙÕ͉¶g±EJÍŸ€Æûè¢ÐöìtÔB…ØYŒ¿Ü€-:ºE‡f7ª¦5ï*© GFÇ‘šƒYC½]ëC''™U¶nнETæwvÉz^Å5 ³ôœŽWý›k ]æ #z +È'‡§ù—`éÛÀÂr|¼†¤xm +] aÖÝ&”¿:mî­Í=vö̇TøšµÉöW[Hê¾W}dÂÔÛ2l¥¥¿åþÖ$¢üØ,|‰u²Bí.ãª6gáo€øpÛ3}«ŸöwVý¼Hlú=^Ïl<‡Lþj¸íÙg#¤¯ç±Eg)ôÛjoË3ÃH[ReÂåÏo®~u¨F¼‚®Ññ +ÏÎà^þË<˜ö‹e(ëÌúdýÓýeJûÁJ—PßIYŸAä}ìåÿóSÙÿ¯ŸÊú¯ý¸Š¨ÚÓB3lC÷ˆ%¯¾Ãæ?ýjkßþ~…Ž=ÖP@{rtùÖ$8UN/º­âd,ã§])$'$'4Y»o„gà™1¡<ª@æÅTÈ☠+ß±«Á·¨™Ù?mˆZÞ¾71É€–hŠ)¡¹ª|Ç@ýéàï¨C ¿¹Hn]æ·¼ØÕͤέiè¯âw5+÷ôpû›3bDÚoSàd@k• Ë_ÿøîæù/¦påÏ?v¹­nVµ¿ )ÀÉ»:4°·äv@;À7¥Èì ’Pydð÷´tÌÖ\Gúî2¦6¼I1qó/ˆÛŸkè®¹Ý Ï¿ZøâÚ×£°¼ó3°ìoÄ­IŸkñéßhI€†¼ú×(匰9ùü2«ì–‚Sý0åúéOZÞÞøfK†ƒxæao7[÷Ì8°O…,q΀Ü‹mÉ{€ßþ?~Fw¦3=ª¢¡ŽW»'ÂÙ÷=ª›œ±.âˆQ¹æ‡>IûkCoÍíµÉÎÔÐ<"Ý'n}éŸlNÙÕ½òŽV=Ù×1à“ 6?X¢_õŽ#€õW_Vâó¾ŸëLûFÒùækêÍ¿lÜ‚ó>QËëDÃøÅWýmɧ‚³ˆœ°´#ÕÈ+ºjé*¼–Ý‹©+Y5'«Læ{gü¾! {lfQãß«šØÄ©iW/‹,‘*¬=-·¬‚¶{ +zÓýaPú©Áæwßs+_#†fýhd—]ÞžëHŠ)оyHþÖ"4{[Cm鹤¾)$'/só‘Ó3~\ª¹ž‡gè˜À'Q-|`àÒöLLLÏŠÈ›žû$Å×£LCR>˜ØCªöõL¾žGõ/‹¼€æ^éi¼¿Ìk¼eém½½&‚½Üœ§VëùõW”ô’ Käâ[«Cõ·õN´¾Ü^l}l¢@ãw´tˆ -ó%¯úé{;ùÑEBœØá¥'6Hpb­¡·é!±üÕ7¨‚ûûfoH†ÌÛi¸áê­ú]IÉúVz÷+TÆ¥OgaÏ¿ÙQAóf95h5É¿:Ç`uÛ*b½y ôŠ‚úòG öÁO¦®W?{ÆëŸE”ÄÎÐ2‚«~v~‰‘õä?k,~|^ö3ƒ´¯C—%à$›°ìŽŽ‘y1èöijé“ tá혆 +P¥! ô­o +”ª”?–`2~ѱ Ï­ô5¼Œª(H¯&>g `4ú_k¬®:%¦‚dúæšžygïÇïžç¿>ì¤ì×­YXZHŽ). Š}“è‚m9½Õ5‰x«íjºá™Äd/âóÏöÔ<ÿb™VxaEPwwc– ü]u>®Ü6ږ¯}ª5åê§#o.GTÅ’ÚG98g×H‚û5LFÌÆé;YgõÄïÀþ½E¢z&ë~ s>ºtïÝÜ¡#ƒuà"cmèÚ¨²íÍî2²2¦Å´®N¶f„˜¦‹ôôâócM _ôVßÿ‡ óîÇ [®åU^œ€½ýŠUõøÓYbñÏ”Òg_MArÎZØ ;2tþrî! Gk“`Õ=þç&ûç­éŽ×뢆{:NÉFAémŸ¸üáþ2´øØÎâ8zæ -ªB*J}l™Ù3pIÛ +BEP‚LóÏ"ߺ¾²÷µÝékËø–Yúò3 ·í™žÑrCE*9£g]´t]×°’/JI §Wº‹®ÆäÔæÐì›…¤ÄûczE-/7DÕ÷CsÕ÷6Æ‹ï‡% ‰;zxÜr¨çÂ2lIl –y¢C×hÚó¢jHɶ‘wb"µET˜R7 iÖìˆ, è¾yb‰s¸õ¾š™óƒ”} +`§_·— oÆÌY¢V7vµ=HhU«½ 7gï¾çU?üb°éù)‡°áÏâõÖ«Õ=E©csÏ8†p¹Á9vs`þ."…¥†˜²-À&üj|…Ð2–‘ö䘞 Ú·¡‡6ÐÔàÃLíÁ +¶Þ>Òü@+¨»¾1‡(ù°ÆŸ «p›ÓI^ìg‘®aÕÞœêÌZáqËDªòé/Ó¤œg¹™ìC3?5ñ:÷æGŽÁŠßu¬¬3:VΕÍ%\9¬äåid~Ò嘎-Ü3àZ-ÝÅWæQIß³Ênÿ³§êΧî¾â«zl½_Am)L¸ö%³1ùΑþ÷:KxbÃC|s5wÖD¥—"ê¶wÜž°†_ _ÓsK®}°3ãµÃ ¾& Aæøg¡o® 'vT»_ÉjˆM[ Ø"ïDÇ+-»èª†™õ[t ôÆ=…JU³KO+)E?-`K~âƒ2¾‚g<ü§WqÃÝßö_ûäKbÞ•Ž}9‹{ýugÖÅO¦¯¿÷N¶¾ÔÕÞêkùÍJWÓ›c=wd$´nI¡ï<ó„Š€š…Þ53IA-¬Ÿ€$Ke—ÖgQÅ1-UP›·¦áo­‚ª FFÙÏtÖ7‹¨‚]ˆ×£‚ŸeØÂ_,ìÊË6nÅïžÊ‡›cÍi¡éÎ,ÿhçK3¿êЧ¯åáþ­>&ÁåÇçdO5Õ ‘{ÆÞqÏ $i‘ýíXó›ÏçÑy?Û{«oï¨ÚÓ®[Ÿ'—´¼{þu$ãÁ±øè¤‘Ã*Xæ¾Yb% Ž,XDKGøäF·þîêx{æ|]ÒãUbgD‡ÈÝ”´¿ðÏžf[ñ(Õ:Ž| ËKü‘ÿè{רj[ /Y¢%ŸÒ0Ò6 kþ° 6?uŒÖ?ÝÕÃ+Žl ʶ†ƒQò +ÏûeÈÚ÷NŽ0¢GT…­ÉA%<; ÂWÆôØÆ¿6xa›%¢T<(OüíŸûvÏûu¾øØA‹Ïü®Ø’´ÏêøM—–§U´ÊŸ4ÌÚsÖ^ð-·ñJëû}œùÍHKÁ¹E\õUkOÓ5Ç`ËmÿèyXŠÈ·Ot¾’PJ.¹Ei%¾$°„ÌÜZBlÈ(5A5µoårÂZ&Ì+´ç¶xÇÀcEùÜ$¨¹-g”Þ¢ßÿ–zãkaí‹ïäĬӮ¡æ[yhZ`¡1Û/©y}lăŒò®_Äݪ¬ m{½&nOÅïìͶ‚höK;Þº‘õ blo¶%ic²)qk¡#)ºŒ)ÝY¦CˆÜY|Á¯žqdŠ® –4OkzlÖÝòŠ*†ëå„4ˆüx§N¶àÀLÃxH%‘eJ[Dƒ,?°= þ‘F/£ +£|]ø]ß¶Ò'ÅVøñ%Þ)Ô[ïL{®†Ð|läqc&:°Dkð-ô7gî RÖêôÙ±àÂ4*ý'šX UÇ””¦`“Q3ñyÛ:2.¤Æ4ùeˆ‚5èiT‹oØ1ÑQ‡€;´ 6*zϦlëÈ} ©E˪¸2ƒÌýAI-=ãm¸“#òÌtœcžn'l«ñU[RTfT‡*k!ÙžÙ¶W~9ºxOÏ€†åØòxÄÑ*ƒ³ÚÿÜb}ØâM½rÇ‘ƒÆð©m[*Zëæ¡0 #T¼ßèZŒšä}›ýÑ)”|t†?ÚX´c+ƒ°cáнb¾?>ïPJ‰÷I¿á¨¼bŸbÖzÚïè¸MWTôÊŸWøeg=ã­÷×ç0éÖqxÂJWÛ ÷·Â5Ú×è!¥nLcÒìÕ—­ÂÒóãÏ ´Î¾Á»Ðž´> M?YåvÚ¹ÜÝ5f¤ÃCj\ÙÎ +»gæqö,‘%¨ W—ÈÕ^1*}µ¯á®–Wqa_tfUû¥<ãëQhÑe9µüÒ`ËËϧ`‰Ÿ Ÿ~:Üþök5»ö†m‘fƒ¾ˆÏèyó£s ùåê`ý€¾‡¦~/'fŸÖ³«nÛ„ —ž!ô[MOûstqÂ×äÂW§¢KÈæuqÝ-ßtÓçPŵУÏÇZŸ|n讽*¦×üþöÞÅO1™/¿w Aù WåØŠß$ˆÒóäüç_T<¼ðIîõ3ŸÔ>úýSNSÊy/®~ÚþîΧÎ^`ûênmLÔÝ´ô^”à’Nñk®>Ùùà«ðB[êÚ<"ŸsÙ"¬~q ÇCöu$xXJ(ßUbŠ·&ªoÊÉI?®Ô< J‰U"tåçd[±[Ô”¼ÚÓ°1 +}¹,bsºå­’™s¾¯éÙg^)ÏÔ‹Ê7÷2‚3íÉ +Zú1ñǵ±‚G+à¬M{–g´`Ðú¤eE—…¨:€ÀG6LÓ‡UäÄŠmú¸JÖ`ùÃü¾1 ÍÙU“ÛÃó° 6ù'9!÷Šwœà›jOØ£Ó‚ øÖ4³&¸Àn ʸYz£wšP¸5‹J´lúÚâµo“[æà×Åè‚!pÚ9)µìÕ±Õµ5Ûþ6¢¸ÎÊ$î¬[|KmIÛzbǾ…Ã^›„¥>Ò0440‡.Üœh¼oêʸäŸk~”!³=R|1À$%A9¾lmöúÀJ†ôv¿„.s‰Ú“‹í©aÀ2dîž‘ÐòçgðÐNÁ6WY&Ô˜ A5|`e2Nì,Æ‘…ŽÙ·PP>%®rßÂ`ÚX¬Žà¯U:ùdß´£Á—0Ù!ÀŸœ#ð¯áÒî2¦B=ˆ{gè>]Ÿ$Ú‡:Ÿ­‹ZîmÎ4Ý÷ˆ[Y†nXû[oyÄì*Û(·Â9LLõÏS«ÖãuÛcõ7|“mOBK°‚  +šá˜i¸gm~´oe3"€O54PDË€îø[÷ØñjÏtü³…m#¶É'ëLkHõ³Øü€•®dW\‚¦}Õךñ…†Ö|emŒZ¼Ò 3ÊûÙ(h{ª`µ½0t·?õI°9©z}ò`€ÄÕ±Ž@w—»[nkXõW›š‡eFd¤ª0ÀN®1|ºu “¢í?°ôBwÕt„)^‡6ØrÏ5Òüd“uq\~C;„O³·; ß}5ÞQó‡}›6K¬<Ë.{ó))çõ?ÐéOþJ}ò%&õå7ܲ´ŸÆáõà©§ØÕI§¦ 9¿ÒËﻀNþn—ü¥žü¯)tÆy§üf`WiíHeÜülôöúŸvV÷‰…Å ,Äç´=wöåÿ¢¦¦ÿâB”9f%MiNšŠVˆ­@ìtöÕß7° /wÔ ƒ’Á9÷NQ +~þÑLF¾7ÛtÄ&ÿBÛ› xâw¬âÛ_ð oÿÃÙSqožQþ¸åõå/IùÏ÷ŒTHLÉêôŠ!ï´Üìsc WŸQ oýc—ü³g¼æ1¡ìþO +Vá˿ܼ‘k¼¡÷N +a×+ *¡Y¦Úës¸ìS 2Yþúlîý Ÿ¹Å òYëkŸ¸êºªæÎÆDÙõ¡–»_òJ¯~©a½ý#jÂÖ¡Š~ƒÈ|ðƒ¡«1åƒ™Íøhãòß[ØÌ=# ÕÁ˶•Í ÿÛ$Sß»©\í‹»à¼×BJ<î½³_yâîSý7(ÿÏÏ>±@k6fJ¯okÑ­CY·gpEw7g!™Sí‰þyXFLƒ.;Ð# +þ²`ë +TNHÅhóÉéMöqì›°’ÝQq è{Ðc[OÅUµøWqgæ7®þæÇ~ ¬ïk¼ãnzx !7Éà þÞN#ïièõ%Jåê,±`CÉ#ojú»W%OÝÏßÑñé19®dG†Ì?4àê¢XîŽ +U¸£á \[û@·–É%gFš_=Ýñî>õGoÁõ=›ìS²Pî)DÊŽ–ØÕa+?Ø)ˆ +vÇBêðÉ`9+½57ý’ö¢˜[c= ++YˆŠ?Ðá[âsç¾iÙÕSÛÀFu/ÂÓc=¸LC­Œä™†&¹çá™›JLil…ñ-S›W&à/Lƒ½Ó¬ºb°;>7ckŽçÁ¼0é—á¶ÌïĈœs«£¯€ß{ĵ'€¿Õxf‰å®)|–WF,óiè ÷³Ñ+£Õî®°ˆ'6nמ‰¨¹€fhó)˜-a-¥eÏLC¸qùë +rÕ–’Z³gŽ÷ûAn¬PP=P·%¡”m-’J=S˜ Ãòå·åªœ]3(Aå™{jo,²Î©i%¬ô@Ÿ»Æ yÎIz‘iŒS ãä;§‰¹ +ú½ƒAß”¡óÖ$ðÌ­Eli@NmªY¨€Ž‹Þ¿Ä6Üú$0Óúâ½ßî©»¾Ú_{Ù#n{&!œŸìÌþQǬ¹ä["×K{¯ ìŸ•¼ÊסeT¹m¸ù†m õžk¬ãÅš›¹:ŠÉªH Q¹u}ž”¡jß»˜Üøó-,mºîŽ ð¯üjCJ(1O±J¤<ÈãBÕÍUãî©úÍÝWþ»‘õƒŽ™û³±«æ¡½¯þñÖºÜ-Àûá…¿õ´¾ýÈQ‡€Ý­Ï€Ÿ†•è’€Sæ™ïÌÜ8fÇÎe§ ¹í¾©Nºu>ªÆcþ»ÉêûÛÇüm…W9÷­½¯ø²µ¯ò–q]Xòüö )wÏFL„®›œñ#;Xj~kïÍ>¯D%}³o¦"Ã+\ªkZmF&ø•´¦xl,K³×SRrùï*VÍ-ÿ<¾Â:G®ÕŸWpêïïé¨Ðx¯»­Hrp •»¹ˆ/ÝT +mo·_?8ê”s âA°}nºÇ³8ÂÞ˜'¯p‹\Z×?×ø(,íL[[ ×NPkþèíÈøÁÚ z쀿q5ßq–ÝÜ[çEõtÔšŒÑì˜#•„ôÊö + Òj‚:LÙ– +‘ãšj}”AÓöôˆò Yì–"R]Rt¶„Wý`›}v_MiÚ–Qê·äú˜‘¸˜6ñh«óÔzuWs•A:vsÇn6ÿ8>{OKj (ñ%[‹øÂM ¥|KÎYGàÏ=bR¾A]ëùU¿;†*o­O5>Vó +ÏØ†ëmk(Íóìš› +nýý ±·BGE4Tð¾Yþ—RudkÎô)Zãæz°Ï("—Ú§àɇv:5f"Áí$Ø{¡ýÀ‚iØÖ ÷Vð?ãÖ&¡/ýóˆôm"Ï-nybC^øä„Š]@ïèðxî`¼çªžÇp/²[7eLЖœÞâ•Rê* +xÏHn¿Êbî˜9T¯œ +¯{£f.+^?2p)kJr­_)ô/t¦Fը⨎C0tƒ¬ÚŸ†\䦔Vãá36$ÄB×.kEDL_¡–õºSB*Õõ!ž{¥½dïÒ Ã'c,D©sO£ÓÖç19ñ=Ù7³È»€þ©]j ´Åïú„5„ú= “ì×±–9V•g‰ZÖQÁÛ:DǬ¾°ä%ÿº"(CG´„:¿Wî•b íS„,¯’ +êù¼{÷D¼¯žOIl>‰÷ö]ã ‡Vºº¬sý‹„ߢ#“–›n¹§‘ñ8ƒ}`”Å9¢4¤À5zfºÁ6ÑlŽÞùZ#„”üébG€·6YwOÅÈýiõöÔ<*ãl8O v‚6ä´†%.r]Ƈû\P°Û7èuë3„û2Á> +{±±@,³NÓŠVÆ)%žy(¶ü_@“{çqEA­ È1-Sß«bw®«‡¬Ÿ¤´šgDTËTxmžÝdîîLÚ£ó" +bcXMïX™&ô +α3¿³ áŠ|‹„bûhýÍ完_\ãe7‚Jb͆ŠÛÒv³B&'h`Àý*:(°ÌD´ÌNŸ’RR¡òý‹ DŸ–0RÚLs¸)4{[Gn6w¤šGÀïöVhè°šPokzdÍ»v¸R÷òÈÖ’¹k! ¶Í=#ëªA¡QĨwÌ+]½‹'î®ÉC;ÕC󣺶´˜QºoÆ7Æô„ºÕQð=ß"2÷ÐBïÐQ-®jÿÿîÄ k‚rl¹cšÖPÚv‚á-‡æS³Q1³ çÐ&üˆßQ5:Þ«¤À§&7lȸacÏðÊdGžv¸.1°LôXXOû•ØÚ† +¨yx ã±±žÑvó½Rzg–R¸±H­ò,’ªÖ–˜5¥¹®é¸ÙÍ*!)ű49f—N7,0p^U¾%|eXMiß5³i‡«]#{vŽ ¿ãäJvÜžŽZ˜Äà + éÖÐÀ›:rÛ¤t ˜”V}Á*Ft<â–œP¾ pC@E¨ß’ã«·äTpÄ" [ûfBfpCCkY„£{«¼þ¨ èæ ü‹ŸêŒÏ\5`›þôtÏ~ðô)ß»»§Žœ|Ѿ…+Ü‹Ï1ñ¹öINµc†Sã]äC#ºž÷Ήo ‘³>I¶µ'[;ž®MÃRvŒ9£mKÞË ª†£F)b„d‡4¤Úø¼4Í 8QE-»òÁÌçG ½cAýà´_74e—öáÌ’îvÓ#Û9Ëk4ôÒ2<£Ô²¨†‡sÍSÊæ7Uýðç«Óäª 9eF%Ø&°ï<³Àþ(ˆÍÇ6oÛÀ&†ô,´k›ïœC§úÖwsƒºn¦Y@ .3a- ³·Jg„VÓ$6]ÚÕþPÆnOpJøíæ1Zöæ"­zÏL…mXÄ­eVgÈH‡ýéåO8¹Âm#3u÷ÅLCÒ÷ñûÄ&dUPNÝ´$x¦[¹mµ¥àbŒbrÉ ©êÌšà €Ü ›h’môH×[ÐObZRs ˆÏÞJ­{†Tç[BãwÏß;ɈÃU6oKËFy<ÀÏ{˜ÝhC38ìVð‘j>Á¯f“,4à5kso6¤¨¬ŠŠê舠[êkK´ß»ˆºùõúLÑÕùÖ—À‘€ÖŠñ:hä3Ã+Ó-‡r ËŠb|Æú<±|ÇÌë:°õ-ø]Äòk|pÚO^)´mêWxtß +ã’J¶4,ØÀ`!=³õLl*]µ@¯ÿ6rië*.zUÖ²/vC=R>Ä>-â;d33+ó"®}Qõvî]@çoIÑE1 1óXa·mâPö=ýš¨‹ÍÛ¶òº"®î©èšpqgM0µë`qƒ +l]Iª¶Ï +ís¼6Y1ƒÊ=h»š˜Ëݶ2ð^¹qÛHEŒL´w™Üà7Ò:·Í¼!ëd[âêtËÃ`o%©a[ÏÀì9¸½6»åñ~!=â×0à1۠ƽHïpÍá«€õÐÃ&.{ׯéÚ_히Z»G7tôÎ5%®xKGj®°ð*|©OÞöê0~ÿÜ6¨<²ilýó^9«Í>IÎqÎñ[4ã¼>¨ò”±•·gä1bz:(§¶ÄköCßl+‘%a}_¯v’QEkÏ8[ûôüç;22ú`uÔ¾c”ú´<’cZf3 + ƒÌLó4¿Ž *ý¡»)ûÚ–„FÝ5÷ ÇLÒ÷㟠o,1›œÓ‚z‹¸«F;LÊÐ÷6ÝõJaÙ[rbõÖ½9 æâÓ¼ÆÕ…a’EÒ ±KÈ[ò.Œgiµ¦êezdì6Ó(ì­{†Ú²¶8ȱ-΋Õã"”¶·+os¦³-¤ûÆø^y?ݵ€Èߔ׽ܷâA{FâˆïQËÈrHËèðÎ 7$”ÊÈ2µu×@jŽêM> dŸ#®É˜à-…â²,ÂÆ+¥9´ÌD†õ,LXG‡øÔ´VÇ!ß +°yT+ÄûãØXÔ˜… ÛZÆVttxX'ìöJ»ðª>VÆÒ0Ï8ÛÛ¾¡è i{z +Ä> +MÔwÕÝ È1•Q“àÇר¸ Wl#mì]£±Õ®ám3›ì_æ }Jz³O/]—v¾ Æ{Yx]Ë#Ðdõ 4qMÞÏ^™™ ZçyMž¸­¯íñ;=²!þºl|HÑÍÌeÔVþâ˜çá¶=ÓÛ@ÌßõôÊw=Ý3a ‹ +Øl¥s‘V»½Â£î9H°˜ [¿®éa­*ƼËã’€~dÁ¹46 ª›êÊœâ¾[é¯Urp÷WÇèaÝàDÌÒ?³cŽï8xý>#ºm£cbŽžÙç ~×Û¯‹:h¯¬3g} Yâ3²«rf³nœš¡#¿³Oc³Â€ûL䦖uJ¹È¨U0¸çPG½K³Pä3òx9®|CC‡ûͽCQÀ¯£ÿÇLBP­Žšå»6 +zwµg6b”;çqëK¤Ö˜­w6fç÷ïØ˜¯œRoÃd¬i‰Í1…p¸Áè šiø‰ÇÜqu‰v­üîU|Û®Š èûzÌS#0ݸ£’Á§ºD9Ó$ÎÛà8tmZD5²³]”Gú~^škb°Å53'0ÌÎ Ô#]¥Rú¹–ß™qhí[رõˆ.Ñ,¡i&Ùê)rqd¶]Ä|;Љ¾¢¤“‹ýóý];ºžîˆž[_â6ÙÅ}uÊž±üEîH–„;–'@Ñ®£+Jÿ9Cn}щ¶µ#ÓAíØ‚UÒՈơKCãµê‰ÑVËüt×âàDË\÷h¡jd išÕÍf²Qc’#©1'sð­„k„*ØÍþjÚãYôxºL0[§ë®÷Îò`ì,æ¿]lA|VHÌ.Ľuê>qõrÿd£~¨»hMF¯q- Ò7儚°ŽÇ +~m‘ôtÊ»i¯ätüË­TÆoOsNQÀëÒ.Ôšœ‹ò-ó™ûváäGO¯ ð1Äö2¼ìÐÉéŸÑ–¾¯Û4E¯X î‰ð˜KÚÑ&·¢Ÿ6{ý*Ø,¢ñ™kSÔ +Àº*ôžm”mGå{fðeŸå[æáלvׂ°Ó4-ht-2ê65\ø¦ŠÚ hý<”Vi˜ím•M΢¦…¢åp¥N4 VŒŒ4)Dº|d‘!RÐû coz:9w ãCëŠ>ŠOÇAmx¤ €a7µÔ–°™†ZÂo wnêVÓò0+ ‹ãËsJ‘qA:®5E©|îd"8zÓ6xæ_¬Ë¬ý[‹x>ÝÓÝè^à·û4<ô–‘ð,“vœ¼xï«}gÏBÄΠLlü¦¥¯ß®í!ë‡ÐK¢ZÅÄp½Z4ÔìÑW£B­h¢ŸDkF§yÑÆ,á!íK„jË *3°Ì'FV†¶mã+»î~elU(ÞsðŽ×¸C‡^*óï kôß>ÞÔÉb×Éb…mlÚº¾¿×!éRöÒ2KÝ»¼›bœ¥–º—̃µ¹Œ®r-âÊýË=}Q˰"¼ÒÝãÒr«Ë,ýÒ’X:ºÂ÷Xal}‘²ð²5zg?:M“ ÓæSpðÁ«àjÒ%r#çÉq:w€:œ¯èæ¯LðJ¼‹Ýˆy\¿®Ÿ±*ÇK3£“b)T$^eXÛ¹”ÙÇ"Šä\ oV +g›µ=CeºÑ9ˆ¤[Z5NWe±ŠWÕ%è µÙ°ójÎéÎ*æ·“”ÞŒnl&ºÒ?á‘ )z1«X%Ï,vŠFµ¨ñJÀ”fp’']4uÖ€`µMÀTå’°3ëJˆgëKˆ¿¼IƒyûNÉ?^Lû4ïY÷ÐXÂ4[[·<0ñËq¥»+ˆŠ¨Sk[¢×ÏõŽåÐÞg†ã/$£’FIÿP¾A<ñÈă֥ÙÙøxË$»÷•/¼'è@ܧ%ÿk}çͰýÊÁîí•~ñSh +yCÒô"¤è,ܳv‹<úyÇòÌs~p dŠÏOžæ çé'å=V©˜ï” ÌÓýÍœ®$JSÓ"<ቮo ¨Búm‘!ÈsÏQ}K ç$£Ä;G)·ŽB“\S\°nvŽ·<7 +_žƒ/Žtç,ô³¥£c¥ýÒŠK3 -¾Ñop ƒ=üÅ"Š÷BÚ?œoXsê~îÀm›ZBƒ{•k“ + ºEyqb ÓÇSVs(ó<Ê\!$KÄ`5·Aóªj…§ +óèŸåR?ûãZò'×/¿þ¢¢û¹ƒvm˜ÆKQ‰@«òAêšZH ,shÞ%\KN©1ÈÄüùùEêØØtå`ïtÞ`¿¬FÀšËÀ‰^1±}éØvòëÆ’Ž[•¤»5˜[EÙíªò+ÏaÁu¿Mð SÜîê9áA773² L.Ù]åv¬ó'ö],ÎŽ{@q )æ¡)·~@`ÖL ÌOÎ`ÄâÊVßë¹á©æ¹ Z$ȘßÉ'ºråãôìUY)fTí¯öˆ7tÝ|ÕÂb¿xJÏì­3y=õ(¢áqKÛä9X»ø<¤eä§¢lô—©)íÿ*ÌeŸ*ª}ã9ô“_¯|úüYýWåÿ?Goý–躾;kí5+ffMw;:aŒc;vw¨´€t§ØÝ" "Hc·˜˜`ë̪½÷÷óþïãþÉã|ä¹ïë:n®3‘|£œRñNÚÜ”8=ÔJ +µÃj™Hbnkì3–t~íQ§b7†ÌœøH)’½bâdŽ,‚ü ÓûëzÊi~Î–Ýö‹³ØáÍÛ‡Èî¿°8ÕËÖ†)Ä´BÞ·¥om›“Wc¦¤uxƒ¬¿j`P[UÒ±˜O.[ö#rÝ¡E£O’3ëËÌé¼ ÊÝJÏì¼îá‹¿öÂ1ÅÁ#€zíóW¶ÃËO‡ßnº9øx#~ÉÍ®ºGÇv¿–6µÅ.ª«i+úJ樰Üß<˜Ó\­K-+ dqµî‚êõDAÙjLMõlZ9Oþµ„9PÊö¦âû_f¦ÿêøÒï‡Ï¯âý@·r©ŽL8Ïc¤YA™—ˆ×4MÕ›£¥Ô}cëà¦Q4­QuvMÐZ»& ÍíÓ˜ÖŽ-v[û³¾z,¾F0XÅUù1Ù:‚ì’ŸóR¨¿¤Ó'D~q}þ{JH¦c·/©“%x'd‚Ÿ +É!¿Í÷cU2eOï³³ÛH¬j›ÑŠM_ ÈÞ—°B‘#™7ë EJx|üàæ–s=-§öV +¨ó—Oî‡GOcž¼Lrð ç]{úîàéOû‰JQ¹u÷˜ÙÆqûŠ©¥ca¬‚huUŠEÆúæîe&¿f1¡¬~ÁùÙÍz=<”úkHx#>½ë_a¼kN.PŸ`æ5¿¨²kO`Žt‡tðèo…Ås>Cè*lìÏ’67Ä’'¸qš.R[Ç$¹¼i9—S3QDW9fæ5<.@KžÂÑʇáÌ]>e]{ò8Ðá½S²ÃgoœÃÝ—9ׯ;:8:Æ^ƒ EOÂbKn8}*¸ÏxÑ×ÔS°1ÞØ|4W×½cªàÏÊjPz©¼}Dªî’ š;ºûfÊZû¶+‹«çH …™"qfrô_Ht+Òþ,зàFBëvLâ~Bdšc]YÞ†ª–¾¢+%õ³›»•PAãB*½r9ÉžvN† o…'r~ˆLàþèZäðÊ=Ëá×û^ïÓüÃyÎ^X‡'ŽÉ±Ñ¤ë–ÐMØ,Ä-]Oe²J4ÀìªYÕíùìÚÍxBɆ'†;íœOÒ?ŒJ¯ÿÑ'çÅþ!.©úÇ€HžÃ+¨Ã]àZße:¸z>zÓ¯}ô!ý+¯ æAg“"CÓ߇_V¶–¯¨ºZ'•Uâ&pg_o6§u2LŸ}ž…5ÝNCªo…§·ýäÌu¸÷ìðöÔ!0BpÍ5€íðÂãðÖƒààS}Í;ªö‡OÅ×}ÂKoâ^íªi‹[Ô´Ô/U—F:J«‹›> C>ņ cÜ)1·÷ïpÁOáÉͿŦ4ýôÞ%ßÁͳð‡°Á¿B’j®Ý~™èðë-‡ïrÞûQî¿]óùJ¿M¥ÉÂd=æ–%¥T³<ÚÖ4¥l(÷âÊkuq‚¶M¯Ë†À”¬{À)æ—(Òø+(Jy/-³ízPdùõ˜¤æŸ¼¿R®=|íðÉâàäVàððyÜ5ì|Zc—û^SGôÞR °ÒŽÚ”öVIfeÓd:µf=¸æ—pÿÃOŒŸ?P®…Ç×ü•Pó£W ùÇGŽé×>û“®…¿óá:ÖŠª†0-æ&Œ‹8‰:qiêàÀ¦©{+¨×GÓŠ?à(Ògù¸±Wþ Uþàä–ìœQýs"¨ï·àäÆëîÁÌ_‚£÷`ðþ·,z—‹¨©Üwj 8fIÆŠßPó!–Ñ*Òœ¢¥è+‹éëjJhéS£K[¦2iüQO*WåŽci?¤ÀD<#8¿¹ø¢þÅü)"©ü§ØÌ²»ȶçÙá34Uñ–ÏÕm©Ð¦ÊÛ¤¸ M-Ï¢*ŠŸ…è¤ øÎ¦.pK›¢°±K‡,©ÕE"‰â—a©õ·¼"Kvõ§]sñÆõ½öü}†ƒg0íšgd™ÃSW¤Ã#€£Ü#kÂsu?g*8¥š…h¬nUÝR?5H×÷c¿˜¤e9"‘œRÓiÊ+íY€R:w³ü%·|Œê%¿ŸÕðËÃ7™Oßæ8¼ÿŒuxé\àðèE²ƒwñZ\ríOY7*Ùb_mwsβ\·¦æAåM4Ÿ‘þnl_÷º¤|ȧ¤i)“ÕlMÇ•-ç‘äŸ2amÏ ˜ž'…é똼ö'ïýp¿x‡à¯E¥U]Ènz[Pï„aK<5cÑ=½:ŠYÞ‚]Ñ”"w§*óu=fe3K,ÑÔ4ÌðJÛ&@¼2™?‡ÛçÂ-øL`ö;ç {óê߯e—8&唾Á Tþèu±dį²V,ì*ÐH;q&iaEÓT¾ ã¦-+˜i3CŒx³D)lª‰éjïÏnïÎ/«û1J„ñ¥g +¬ûe`BÃ}'î¯Ï>®} ¥]Ïj¾ê¾—E5½qÇ?dÅŠJ”éâñbèˆ;/e%-ˆá¾›*Zþ޹ºrFÙÌ—J‡ZEF^u—Ʃŗ¬øÃhãoòˆc’óû~y玺vã^ŒÃ '€Íˆüb±/ÐÔFïÆº®0Ct_ÃÆ[Fëè:ÙPëˆt¸Q$–Òº»äM­šœªFu‚ JHcI>â©âO0\ÿëèÌò߃¢hÒ«^CѮ傡xuÛwrHÑ¿¦ëêü7e¼ã¥n9Nôz›e•ùò!!µ­µ'‰Ç,yËÀ•<.«K/âê½A¨¶Wq ¨›\ýS2cà-Ž$|Ee VUˆÓú[e0eoØ¢âM,ø‘™ž·;FIY•ÑãÖäŒCÍOÕW%—‰ƒ©·«?««}(§µE™]^!õ£qº?â)N$jdz˧º¦-¼±½-¨¹£'j MÕ ¥,ËH7wO_Ë>žÐ7µ¤´eU1nZÕÝ®W õŒ*k$Ò^BKK}Hyi»…£tSÔb²ZÅ”þ“Qÿ›O8ùº_4õ_áéU?„eÕýª¿ŒÞC3õ“t­|´~\T…Þ3ðqc4Іš ÙŸ,ãÎj›XÝ5q­­­±õÂYzI«D+5úø:·B–æ£bÉGo’®=›îàH¸ö5š|# \õës®äJFÛzÀsbNâœ뻡dçZd‚‚Uu-eBV?ÐÆ÷éé•Â[;5–¶ÑÌÖ^%¬±k\רQÓ*‰ã7’ÐÌ_¾Ê‘Âír/kS;Ä™ƒƒÝyjy'vFÕL=œ.e\®ÿ±^Öp¾\^3%奩e=<¹BZ'W ò%½Ù¢Ö–¸þö¦˜îÎŽø®^9´K(CwöJ mmò¬Ž«{XÉ”vB†šÉ^óòâ¬u5iu¬šº®® è[ð^ë£\ø¶©J°5^S¾ m(ÖËêQCœˆÎ +ø‹¶Êûæq:¿^QÄìwB+Ós M‘Xfg³NάS†–¶ÈÃ*[Cšû‡@£º±‘•ÉöŽ]3³5†ÞÑÓP‡³uÂÃ…VÝúxû VÙ×"–ô’{ú MÒŒ†žIlY“1™]kˆÂ¸š–ßø,"£Ø9ZñÏ« +lwQ4£­Ì =nº)Ë[Éýúv}”‘51ÀÊšªÂMÉ›ÉfIL'lÎ׋[QaK¨¾6 ¿¡?±·QžÝ٠ϵËÐ#ƒHCw'x~ ½)iÀÙ´ÕGuûúbô’ˆ™´*fêËËö %Äùá⃨2{¤•#ob‡«d²áÀ º»­#^Ü\©¨ÉÖ µàô’6ü‚ª»jÝPÏÝÐÕ²¶ ÕìÃɪòÓ™Ê +»žœ5וã4Ó +~·9ÌL^³beåЙ‘zŠi°8}^U˘m⥕ ÁFŒ£°óJÒH|?Ú[—6&éÀŒËé“F¤e¤©|OÛ7zh¨*>1’ÓÆPÃEA‹RBèÒˆ¾fìV¬ê»¥³ŠZ¢YRš© ÒT}u9¢öîÌ®ºØÚR±ƒ!tæ+½ìLvÃÛâ²¶ ÊzQbcKwtoW[ò¬RX¿gìÝÖÔ”¯³óNÍuõÓMƒW™{cØÄ‰.Ð'MkÞ;uÁ[%쥻Ԥf Vºõ˜ú3žSÞí„SnÃÁØÛ, +÷Um]•ç@OD%³§¥Ý¼Õ!AÖŽ™ eAÎÌ%äåèWmEÔsCcìcc?ÔuB^^ÐÀ‚~æ@cL —pV§š;fG+ õƒ¼ø‘.Vˆ¼•å?Ú'ˆ4)j–™êbë k_¬l<³Tw],—N'© ó:òt†Yt`¤ç-É© Ææ&³ª«fAÝRf›ªmØ3Õ×njx;Ærò¶‘\c箪99KªZ⢶«kI_Ç·N”1­{e„“¹¥åB7Ç(™kC…ËBäç#‡ôm¹Q±õY»[Qñ fÄÄ0Ë02x]Ã.˜U7ÐN/hâûë4ÂvõPiªVÈÒI+³Æ5MÌm9vY]†Ú›©©=[®Ø72ò·µÔäãùÁùjËøÉr«Ñ>WÕbÑ”à4ýå9šþâô)€ÇG:c²f¬\Ô’K+z%Êâá0S*UÒi”•h«ª=œ.¯²ˆáþµIO'ZsB—Ű/JA拉zJ䚤†²!ãå-࿎7e;N·¼_—–æY†kñæâœ^¡û¾²­ñt¢©÷bRÀÚ‘#ׄ—51ÄݪÀ‡ïŽÒ—¥”$ 'íÝR2þÏ 6öX‡·QSƨiÇfVá¶ ]Q—À· W¹C‡3%L ÷³7•E¡»cÄØC3ïÐÀ.82s‘–az¢U]‚¾˜P¿MóˆS|ÂÞ-{q€2×CôŸÑÂÍä€%)+sEFKY‘R¢ö4¬ü«ÒÖa|ØÚPQø +°öKýE^‹}Ä€1/my€w¨¡d_}‡FϘ™Ð õ*×4÷ÈTL²Ž PkRx^HO˜ë§e/’§ºPžS]ø€!#bVÑ@œ7aÆû+R$ܤí±Î¾Muc펖U¸&+øºÚ›âhSÒŽM•Åç³u—3 ýçWs¦ Ø„µAX€MSB92W–M”Ul‘!«jF‘=£j+ÑKª!ª&’ÏŠ¼±3ZV´­d@Ö•E©6|h Ž ÅXàz}ç3@¯ó`«C¤ðñæ´÷[2DìÅ4¥àÐÌÃïqÑs=Ï鎯“9~Åá4Ÿ¼©øf»Ò_r¨£€¯ò;ŽLLèÖ(6hsv:Í£|[âq÷µØXsSÊ›•«Cȯv )ã¯EÕ6_ÌšUp2¦Å¼Œ‹åêÞm.r¹£àã\ø¾"ãÍRÔõPMÍ85ÖLˆª*óÅŠ —¹«å—E÷ùžçéöô7K]™ïþ™a ÿ³XRõ×|iÃñ8½ðtNÀ¿\iÖÍV6m Á¾Î7¥¼žnJcÈ÷8e`/V«z¦øÄ³.õßÖªo e »Ê¢œUQ¶ßRò‹üåb’ù>ËÂü¹((?˜(-³Œpr­:æh®aðh©yìh±¦gªL°¥aÃæ¥¤ˆY)3sk¼©wÍØÜ¼¢-ǯ•¢7Fˆ#3|>Å¡™Y„-tn¦å]n4Œ­öä9íKiñö§5£^˘©ïmrvúŽ„}  %¯ P#WE„à…þB%?õÙ¡¢ *!mIiI‹­Û0%åTGÍ>ѓӶ¡¾Úšø§µyŸÒ§ù{ª¬äÛ´-Éú°Ö›ôtW–çv "ÄØu|ä‘¡œaaC7d¸ÿ²k #=)Ù*ËóZæºm{´*Á­I)1gãô‰ µk8ù»Jl̪é5ßrYá¾î«è™s=HŸñ&ðë5))z¡¯0fGNŠÚzÏ7¦>ZnÉ|¶Ôžç¼ 60À65ù@AŠ:Ô²ò&úб²’d§«9"ËÝðè] <øDSy¨†„m§ú]N‘!Gzö±‹:ÑWðmÚÊÒ]M Þ2DŒ²Êr}´ˆûT1m¼”f‘áC7%ØèC-½`S‚ú:Ó˜ã8ÕæhAÙG ¿žh©ÀcH«Œ»;JM<0pkrbⱉ‰¼˜ac÷UÔŒ]9>âH]õ÷ ½ðïåâR`3÷Æ*™Gµµ6C1ή¡‚­ +tÈŽe)вiII{*|ŒU ]#¾\LsÉÇ&*øØ€Mµ!âO®² •E65%ùûlEõåBYeã¿!%ÄêJ9@ßâ÷e„(› eS`£×„(ï .dWI϶iX # 1á¯iVá73«àtŒ¿Ü–ò~³/ûËJGÆûÕ¾ ç¯ñË¿Ís8Ö|¬e (ñHÇ@™ð3EYçSXðŽ +“r #¥]Í\ù6_*ØW’’æ{rýgº2CìZ"übZ ¸œ¢¡÷†aa»Ãïy6t[' žÍW5ÿe©.”WL—òÌ|²MGÎ=›d¢ì&̦çà­jÄ6_Ys¸Pݼ¡ºš…ø²ÖqÛB?o_ÍÑQÅü½)¨9#ýveE!Ó÷Ú€›#œ¬ÏÇ#˜m˜•z8ÊÌXêF¹®ô@?¬ a.›"¬ÏÆ =~ªå>׆ùr¤(Ã}×WоX¼?Š2UGÝ7—EÜšªNz¶;HH´©ø…ÛrlàæØeS˜ûéh´0äTs•;‰ ^ê)ð›ëÌÖ éqj`ÃOœÂÍ!˜·¥'áÉzÚÛ]9Ôצ"'éhYv5.f[ZèkåޱJñ!–>”; ߘê’ßL5g½Zè*pžî„|lÇßÝâBö%øÐ骤G#´›ƒ„ 2Jȭɪ”gÆÊ„»+CÈm+$¨õðDŃÙŒŒ &d£?Ëe¦!ÎÑPùp¼*öÎlcö›3{]\”¼¼æatˆm”c¡|v +½6Åè`IqÂÓN¬ßMK/"îωªªs²Ðžñq¢.üÉ|{ð“# ÄûÜHL:ÕQrU”¬«ûÚRžª”øçŸú}†94³àÿ›Ñ;FŠ=5’³Vú¡n‹ÐV1jS°óO5øøƒa¨÷–°Àc¦)í•¥»Àè—Ì£ vápYúÓ¥~¤ï™™ü6QÊ:%'Ú”è0Û$Ø*ÎöÙ‘áÃöÆ®Î<–’DøUÚgk¸(âÐȆÛu´¼uQžÿRwŽã|GÎë¹NÐÛË96qSØ’=·‡ üO ”¬s endstream endobj 32 0 obj <>stream +=5÷Ï :ì?‹Æ©‘^êÍuÞÁ&_NWTÙTŒÜ]).Ì:÷Ú‘@<öäèàs·ðDÇ€®öäûžh ñÀš¥m †*qq+™Ûƒ!ë½ ý!¨ß¹·!Êó[èÌu:3 ¸ÇF.öÄLH³PÛ +ˆŸ¥ây &Ä›©ÙGFhMûr>KA¼Çü>_·ؘõATà\[¦óþ<øÐ\\r6[Zümž¿˜¤@/*ŽæZTßåÿÏ"¨ü6ŽËØ”B|Wò?ï(°!±Ž§xÔu9€ +\ô‘–Rp¢¥u´ì« `‹²§€yM´¤=oÌ}¹Ò‹öÚ“²Ó­ƒÄÈ•N¤›MÆÉÚ’P"¶%ÀºŠ`®[ƒXÿÙvøG}%èñJ7ÎÿL#ÀmöcU¤„#-9uWŠOü®Ã¥~7À‚Îõ˜¨u)>x±îz®cÃNÆhY[" Oûòœ‘wI_~ÒðCož^70Aº^˜w?+ùÞ™šþs‚ +ú>IÊ<Ö†mI@.óÉækS¬÷áæz鑳-È»bbèz?&pC\±%Ám‰ÐÞ ­à·³Íù;bFÂBƧþõz?2ꦖ—þ|¦>ýífè“}»­ÄGŒTe:õâ"ï^\弋ñá“õ©'ë"oë‹#o—%=Ýêƒ|9ÃÇ,:BJøÍ\›æx1Å@Îu>Š(‘7ìøßÇq¿÷bý[ëÎs·)I©Û§n …nŠ );2:f_AL“²ü~—³>ß5•ùÞYjMzv¨'&쫘9K]ÄÄõ®Âˆÿ̳.f8ø:bKð­0Åu¥;óÕl3èå¶´¤ÐÒ‹_jÏzµÞ—õf{ <öö3ä. •?Yzs¿kî­ Q~Gcì¼5!Àb¤×jÌÍÒ“ûaGœóùû8ðDŒüù~¸Ï7ñŽUAM;çbízÈ"„{N×Ǿ܃Ýöó]Ô¨ Ëi:\ßü~²='èÏi.áÌHHj-ëX_·.Ls²t$¾Ø‘d»]Œã2Í`ß²|ß—Ç: +òŸÅââæ9d»²(r{àÀúDGÆíú¶¢0¨8Ï÷~’Ç“_Ô•é^ÿYàÒþ˜¤C·ÅP+â¡‚àwËÀ¸µÚ ®ÉDL6zÀ¾ß瘤¿WŠ+UäÔ39}àÒ©¦¸§+}éï.¨xû8·>Dˆ:Ї†Ê†óÉâÒÿ.péŽÓ‹vÄà Þ発˜‡ÿY­ì>ž¬lÛU³Ð§&zÁÙ)ïÐHÌ;Ò2¾ÏPÀ&bújo¶Û|kæ›S3—t53ýÔt¥Yhi‡c¤ø¥Ž´W‡:Rò†’¼¯$FíÉáÞÖÁ|7SmäýZèo›ý”ÄÙvŒçT]þkS5è¹¾ôd¦ælé%ø­õ“‚ÖûˆÁƲô‹0«¸'- +´ôå8M5ÄÜ›¬½·Ú~oWâÂ/µŒ]ÁÊ\í-ü¼/§Åí+ða»R¸Çž4÷Ó¡¼.»•ÆßUg>?P±ÀKݰϫ}MÂk_Q°5q]í€~´ôჅ̔‡˜°Ë(¿+cON·ô£¼ô¥É÷•ä ëyŽó]xÏ~vö Tä‡kJf®óÙ(t GøO7$<Ô•…Þå„Ý6Væ¼Ýæ‚.Ç˹{ÃÔ„}%Á>Ì Òc/T¬ìmQ¡ÿ(/ô–„æ{Ý\•ôØwßM):ÈPwwàu¶¸ÀÅTóx±5ÕuKœç½Ô™ë8×’çuahlÞ‘6–M5|ÍUh¿…6xÀ…Ÿt2† +ÝžiÍqîÄ…ÝiC‡ÜûsºLp~•c5Šø:Záóxävg£'ö‰}äêûª¤zªÓ¿Ô•)gã ÈŽ4D¸E‰qþ•åü³üËf/àJúÒ<ñê×¹Hà?€v?3%o‰3>Ì7G>Ö½ÕOôøÅTóÈ*§&Éù™O µP· C%ÿLËÌ·É!¾–Ž˜ÇC4_UüØ; +^ìýu1"ئ*НK{wf¢œúoî³àÿ¶ä È lŒ"eE>>Ò“3WÄЯs-ÉÏ­b¨Ç–í»)*ô³ab6†±Q]øØ;eÞÿz9ñ@U”µÔ“ý~©ü~Øç}92è`´Ào\ÚÎ*H_ÿp¶-Åã¿«,Ö·9àçÏWs +§ë³Þ+’_\β‰gŸÛ@^#¼„»ç“<æ_‹ÅåJHÈ–(åµu Ïg£ìmEk‘áÿYáÐ5ÍàHØû÷©Tì«Mú³™Šº9}M˜ñZ[ò{sÁÇ›ºÊøgÓLœävsªxfàÀÏ ¬ü£È—c=% à÷ôÃ1|Ôj_ú+SMÐôûz1Þ7„E¡”Ä[ +.èݺˆ¹"Äû-tÁ]´Y¯5¥iµ‚´{³µùo7$”p]mÞ{cEê“%)aKH +³ +ñ_F1!@múíHà^ï~œªËx¼+|Î-q{¨Ðo®5öþxeà =7â·©Ò¤ûÀß„Nõ!}{!¿NTüšYz ®3é/éá·ª¡>7êÀî?)9ñw纟¥%é¯üôW+ýh¿©Æ\GMq܃™Æ”—ÆšŒƒô¨›íð ë¦ +¬§Lñ~zßÒï¹+ÅDíb†éÛR\üž¼ÖŸóÐrAËýÄ!ZÊkK'*úðÒ–Þ|÷ÕîœOÛ¢|·=1ô³¶8êöÑïæU¿­tƒÝ—Z²^ ±aú>·§Ê£Ùåp¿ïFZÎ©Ž™¿Ô…ýj.¿´IXK­„¨}iaØž¬Àkº!õõLCºÓz/èqzò÷éòÒ½Qrʺë»ÖK ßéGûÚ†rœ7û2–;³g[@.;rjgDPhj„:.u_éLZÚ\3ÒÃÀM»3]“ç8Q—ýa¢>ýµ¹1óý¾’^p0BN[î;-¶çº,·Cý–Zó?.¶¤½° +¯æ§ezMÔ¦>[ê€xžèŠ‰ÚŠìWj^ÜÇ¿=îµ)®÷úïÞb¦ìÒŠ ¾·)ÁÇï((‰"Züý²t÷:¡þ×Ôˆ[Fæ;!þk2Zz5:ô 'ÃùÇ 3bWS3gÚóõÝB{ò“ÿn°™GF"h®#×qo~1YÛp1Q]õÏ’ ät— x¿M9Âgeîs4Î¥~[¨86ÐÁÛrLðz¨FǨБ€§ŸÓ‰÷¹1Þ ò:ü㡚‘yU·'z®mŒý¿¬C&l©3ÇÅTòþ +×ä´ø^~î]%Â{w„_°"Æ}hÉx2@ ùµŸô³®,õÁbê‹ED’]}‹›xÿÔXB:j{­§Èw¢!þµ¦ìë½éº¤û3 æšÀŽ«bl°±.÷Ãroa€¥î:ßþx¡6ëÅV7Â}O† oI{-£þºÐñ>æd«ÒïO6漑rRžÕ@ƒïô?™kx­H¡B^òÓ!VÊóõAbŒ©!ϵðS+Òç_"bðÏ2JèϦ²´Ç3Üø2däíjDÀ}v +hŒ=)ð(ŸéÆ´Wó-)O7…9ï”èñ6Ä§Ò ßŸÌÕyAvÀsN5e8¯uú§3ã•©4úAä p퀻ó½àOÍØ€[C¤ÈGÛ½Äð¥лí¾,'›ìiéˆõ˜i{g(xd½Ê´ê#¦ñ²<ÓÂ^h(0»š”q8‚µ£‚v%è¯À^%š›Ó^kk3ž5b^‰È±¯]hû¯Où]h©Y‡#Ôì¥x€‚}kw˜”¸%c€' ®U9¯fêÁΆòÔó-YïÏ=dWR'k2_kýöXÃ[Eø°¹†¬WÓµ ÷gjcîèKnLÕÆ=X¼Í† Y‘ÿõ—:ˆÿ½õˆS#5ÀùÈÉúŒÚ²˜·sm€OéDøØT¼Â-5i™p·—ûÔ\ñ[î@ûnQž³íOMȽx«ôüÄĆ[D(9'þ¾|{©!óÃŽæµ3ó²J‘~Uð ÛÃå¹á{>aUL +3”e½Ô•¥¹L4ç.÷€<÷†@¾NòÿYdá׆ð!c,€‰» ž×¸ÀŸg+“žOT$½®I~³/Ïùòo ³"A„ÉIO6äè¸mU9é*“ål’–hÄ„oË¡»JTÐÉ$üçJYÝ¡‘ÚFé)9ÿ^æs¾ÍP +vG |w•`¿Uaâ‡åîLÇc v1QL¶©(IG¦_e±(ɱWïÑœ„ +ÐÖ±ëHÏ…Ž|畾B7«˜±¯ VeôØuiQð|;Ìuªì¸!ƾÞ:Œ žkÍy½Ù󼜮i¾òÖk½X}eü#}eÄ£>„眒x¡ã­+HIªªÔ'K}EQ2F’¶$ýî0-âæ0=òÎÉïæÅ÷'-7úîF&Ä¦äæŒò“^Í)ÚS²A+=ÄÀmÀ{¾Ó¢ò~²©àͦˆnˆnº‹`¨§„U <¦`®+]÷íA|èr?;ÎÔ„të@=ÓW +¶GðáÛlÐŒ Ùä#Ö{О+] ÇÅÎÌwsí€ïo@ûì*¸¨¹>|\5°/]ï_WÚ@Žó-¹ïMÕàOË=˜ åABT/# ÀŠ˜‡6%1q¼*æÎt]Äí¥Öä§3U!6{“?îKá1ç&ÉØUèS‡»­äxý5]ÕbÃÅ/¶¤?Ÿ«O}¸Ò~»ÔYðiªúYY›÷¶ Úå'dä»ûßMÔÜ 9Ý> + \íNù0Lõ»Ý qº>Æô¿a•£ƒª #Ÿ€Þü4V‘éúÝD‡Øå ÷#E¦ûáp¶»¡4äžûåÇ©êÔv-ºÐ…r_ì„ÙÆ'Þ9ý@AH±©ñ‰@„Lwæ}ê,мÑRùx¢ á.dÅ¿œïølŠQQkBhÔ©–˜ýí*Ã]ÇEZeè`sCÊC‹í·Ò‡ \íBœL )Mz,eGÞkÏü`»zoe„kn†¼jG~Ù!$YûrœçŸÎÖ¦?[jÍ~iBz½o`!fZóÔ¤äó«œts1y¾#Êú4ßúv¾)ÁiOAˆÚSÑ3ÆJ +^Š ©·×º°1N—œ›8Ø=9:r¢&ÒÉ\Ÿæ=ÓYàº(B†óØi zª æjÓáÓÿXbÿmápþ½Âfþ±@AÛõ¸ô™®ÄãÍá÷7eˆ`uUšŸ±)ÅÍf"CÆéä³ ú¯yùr† Ù’8ЛùúÈ„OÜ(ôÛ÷Ôø#¾;L‰¶«Èñ»2ãÄp5!æLKÏÞag®‰©a'Zvs1Û˜ÿz±½Àq¥ìdªx`. ¸/ÄŸŒñÑóͰO–v„ǹ–‡´«ˆ±»C¸À)>d¢>íÍÚ Ìc¹ìl•EîixCMÎ}YƳ™†¼k½ð/Ûýøû#ó@JH™iÎþ8ÝõúPMI;PÑR7q_×%˜À‰Vˆ›¡®Àe¡ ùå À­ËXsíxÏ-q|yŸn Xúá“uiÏ,=ùŸv~ÚW¢NÌü- ÌkK„ +>TUÐ;h)s ']iÚS#ø®šqçTSFÜÓVPæú©Ñªâ¬ûC”¸S@—žiÙ»£…AúЬçcÅ ÚÒìç›Ãĸm5!zsp35÷ÛdeÙ¥‡™i}î%ßæÆ>\ê…¸ÙÆào•eß®fz +‘V=óD_]jW#;°~º:äge5̹˜|C[ ´0´)Éý°&Joæø¯7ÀÚý|8R¶Ð›ç)ç%?ìúеÐ3=)}µ+éÍdyÀÓÅÆØw–ž<ŸÕ°»my5{·uGYšå}¬c#Îä,» +9ÞôBDöý}˜ûL[•ñÖP ù¬ª*øþîæ 'ÒùBMXjI;[ó¿Ú~>Q™òd¾=÷ý†œÕ_œæ˜ìþÀèzcOA‡ŸÙhë`žçRgÒÛ©úij͹¯—ûP_–ÄE_›Iaêáž·öäøè#%3ãdµ+ƒ¯ôeûìHóý޵…!ÇFB’¹ láÓ=9)þL‰=Õ¢S¾M’áßfY˜M))ÆPç,¥'ßÙU0 [#äØ5YQÐbo»„öRH|·«Ä$^LÑÈÓ¬²ÅAd„ˆùxSJÿ÷FqÅ_ͪ€…j+#N6%8oËò¾žš±ñ3}0?xä§ßx`ß÷ß—+»OSóÇ:ýX™ïËtœêÎø¸4èÈFP—Ÿw¤´8ût ã@,BœïÞ>zoæ{ªÂ†ïÉQAsíI¯»Ó;òœìcÌë05i©å¾),ú +Ôà_I±ÇjbÜ>€53-ÙÎJVäÍå6Hà7s¥`_EˆÚ*úº'%FN×?îÊH‰¶1ZöŠ™y5CgºôbCDŒ¶)9¹+=0·…¦œ7UqƸ!7» +}Ñ'>³Ð³6ÄԸŴÛù$ŸxdbäÙµäô}%:âXƒ¼eÄÎ!d_.€LwR׈‘&.êXKJþ>I‡\˜Xðm)&h]þ°=uß—¢·¤ôÄNBÜÝ«¡;ôë`¡·uâr¦ã¢¶í=Þ’ûNBŠøíDËÈÝ¥¤®÷°­ÄÇ,õ"ƒ¦`Ÿç[`ž‡Ú«ÏÙyk€¸;P± Çfí*Or¢&æ¤ûL6ÃbÿZàqÿ½Èe_ŽÓŠì£¸Ô!Ücs„ [sŠz‘æØ')3åñUîÑT-ÄåPËGø½!Azž™¹øó©rþUVÑbø£’}WBñþu{ ÃõBæßËlÊl/ê ÀëîÇj.âÛDÿÛl ïû, r¨CE¬dZëÊu>7òûcL´‚ŸôzGFŒÝ£ÃöÕ”ì#=ØË¢(C}¢»¦*Ìiº5öåù8tfÂg.¶g:¯õÂbNõ,Ü‘–ƒ´ë¸pÛ8§ï‚~nÆÜRòÒ^m+89«ßñºŒ×c¥ /Ú@®€žÌ8Ñ3óvFH ÊÊÔWšº O»†]â×zòÆk“_ÊÁf“¿A—ólòT/Ÿ6-mn‚¹N4ä¼:Ã'>Í÷@Šø{š†84á²­JdÀ¦å}•·µô–¶,ó©¡$ùÙ‘¦ð¤4Û>ålš³Oq ŒÄ7B~Ž×’„“·,d$N·y˜j ï”¬”§úŠ´ßg˜Eÿ¬JÿX`wô¸¸- >î?VAÍKlÆî06jàC õ>÷=g#¿žäÐ@Éœë° À|ÿ´Tu],T4ÙLlŠ´ðëÊ6`]\à:Û{o³/éùF_Î[«„‘¸§,)\delÉI£@mKŠm#ØÐ3]QÌw>õª§¶¸p›¡”4× s^ìÌ~±Ü—ùj±+Óq{zª¦f~3Òó®Îì¨896u1ð.AµÉ÷ñ÷ÖÀnV9Êw¥éx¨u1=AWvÔWf<²+y C%/ÿPÁ[…„ÐNtÀíZ°ûíQFø½­^ȧc¯p¡ æ²ØœûòøêÿÌp—¤ŒcmQìŠâÚ `¿œ›ñv±ã9ÊO}p ÂǛو3»àLGÍØF¯‹ +\fšSKó© I&ejëæºp{£”ÄC 9ùÌÀ*ØS\Í?{uäµ3BNû>WQ±¯´ã0&pKŒñµŠÐ^çFö¥A@°kX`s+øÍ’t<Þ,<2·ž™+¹ßæ.0SNÕø¸S59ãà†Í1&d¢°8€‹»œ(eïH¾Vq¾ëfλåÎ\ç#  ÛfxÄÓ E]s2ÕìVR€úffCõØØ•þL§ 1ÈåP]”ø}‚˼4ý|?Ög”œø÷’€9ÍÄœ°q{Š<ÿ©¶„wÆÆ¸gÓm9oþ^TîhÈyššÜw ÝEgfëÄÄ¢œšXûhQ´U’ç}8‚³+‰1vs9OVžöVU•á{¨å Ž\Ô‰º˜b}›å1·Äèù>”çU–òéTmóÕç>659é@IIünú¹‘þg–†<ÖÑrf»`î³Ý×c«PÁ‰yÙ^àq{¶.óÝÚ@¾Û¾w6Å&œÏ–—¯µ2ÓK¹ê÷ã .Ö¦ÅÇî(à@_æºlÊð1;:ò@_ÁX•²³‡x Ç†f‚ŸEV +ÙdD_zxºÐ•ëfA…Éç‹¥õ§sÅ%æÖ|O]ØX×’ÓIëû"Wh±ÊC3!k¹?ßÅ"‚¸ØÍ „}¼„»:„Ý%Åï›iùçó<æÆ%rm€º#£Ä=tP& ’Ž<:g€¯ò·†Ð¾[ƒ€/ò>)@.'*„ß‘s¤å£väô›–žs2ÃÁîHÉû*Lˆuôa­'ùù–öùHYŽ9ÖÔ vň…^JÔª„š¼­"ÆoÉ1–„ëJOþCeÊc}Yܽ}@×›Ä )%i¶æ<^z.¢ÄÜëÅE>š©ÏsÛ—¢ôeÙ¯TÌä;–¶—?Ì¥Ü=56~±7ÕqK†øº.†Þ( +²ô¢çz +}ÇÊRîéi°ó©bÆJ/Ôs±%ñÁd]òëÜÓ¦Džèˆ‰G:f¾UÉÈX—3¶Õå¸=§À:Œð]îËuT•ÄÜ«ˆ~mƒíj:òûl wO…Újio˜m¨Èxb(‹¸½!}ÜBzÏu‚>žIYÓl⡎?ÒžŽóð+ýy®æÊ„ûæòÔGƲ˜û‹Íñ¯Î5˜ø3C ~¾ 篫J»¼¾ÏGcÄ„] Âw¼5ù²%Ayí’ãöÔ¼} & öÛ¾’”øÐ?WyŽÀ=Dì+Š’Wú²œ-}É/¶ePß?æÜC@_lÈ¡ž»JDØÎ"|Mœã¹¯,Œþ>Íü½&hÞÑâÓŒ  ×Ö!rò¡žü*Ôn¢ænc#F‰)Wsö¿Oré»jeõJS=Öòðk¢BÿÙ–ŒçK=à[rˆ‡]‡ ùsKx©ãr®¢v}˜w¹XÕlUÐAsíOúòøµY¯®ËÈA·—»¡¾çó•-kÚRަ&ÿõ|7ÊÿØx¤qåÄÌ¡›9¤c#½ `о– +º˜)+ݦ§ì~öû­ð¯%6íï岯ËûÏS±²—$¼ôei-nQ(ÈZ—0.§¸EÀÚãÏgJËþ´ÔˆþZ¯•Ÿ-ðx;zJæú05þ`¬’oÓ–×xù6KG_.ò7åððu <òxþn).ßtÁº‚90Õ7[*¿¯ ¶Or4^Î94]Íkbän+`>ëƒÙÎ6%ÒÿÜHÏ9gA÷Fpa€O:·ï #ýæ»Ò?Î6':oô ¼í_ôÏrYõÉ8j×Ò2¯æZîže}æ3ßò^"c¶elðæhKÍÚXKͦ²»&¡F-t >MÖ$?¡‡ßÐp£žkp)—“‚uyvVÈOš²cW‘›ƒÔˆM>HWÿ¨áý“üô`x¢¥¤­ áƒ,ƒ´¤M1 +àÒ`Smâã&Ô§ŸÛÐï6V|ýýrŽCÚ3ñ ‹B¬ÿ¦¸ÐϦ"§æ¿«€ûÚFó½¦[bŸ¯³>ê 2V0V$ÄàÕAŒÿ†„˜°9DŠ?62ÿ^âÐ/&XE;dÐxmüÓ•ž‚…oKP¡ê’ÔGãy¯wÏ5݃1Vd¼Þ‚úo åºìÉ Ÿ÷䘨516ÔÔ”÷~´<ýé6à}­#Ô”ù®\§ÙÖ§Ù¶|Uaÿá6ýû4ÿ}A ØðÓ¢À…Ú Õ%v=yj ¤Ÿè ©!Ø}_‹ŒØ†û팆~›f¢û ŸÖe˜ð‹9>íØLÉ·«1±› ·Å¶ô·ÓÍ©/wÔÔ³ñrÞî(=W[‘ñØ:„ ;ÒR³´˜¨æ)°«uôöêLèÆ=ût¾ªeEJMšê,ò[#æ:ó½öøÔ‹qëx¢¢rAJKY”àCŽÇ´ã Ò"†ùX¨°]UQü‘‘¾˜¢çÿ¹$(¹œ+¯²šdW…‰þkåª/È™'ZRŠ} nS]e/Q³ìæÊò]}k×L/%b¶á +ø Üÿm×ÿ±\\qàÔ÷%>÷dš†:e.çxìË™êFC=ÜSÎOzq #æþ×ZÒø§¥¸ìbÅ<0`Söäì£i>ýr¡¬ú¥:áé —r:Ç@Ú½r9WÛþ¿3oúR¼]KJ8ÖbÂUèà=:г¡;Ò›’i.¥î*ð¡Ë0]}üCEÈíÍNè§oü5ËÄàÄÌÇÙt•Ìín®©1óˆà{ÝX|w{b34Ô-ÖRÖ¨­a~Ζ„¶&, +\8x{ê¾'‡ú[åE ëÒRˆEZW´6\KØ’ór6I!bBÈL+èꌖËf'Ì}·á±-B~Yâü¶†yÚâÂ=>b¦ú¹öd€ìÿp£7åÃÅ­`ÐCÖz’]ÃGÙ4Ì‚•ü÷›Òw«,Ï}©3ÅyGžçs1AÏ¿š™¸,¥D<:Ô76Ù4%xÀû„œÏPólZbâj7Ìm©;ÏOIÎÚ±RMu(§]#íÄÈFî)±á; +”ßD]â“Ùº¸Ûâ|ßC=±,f&ks]—»P±gúâ¢m1ÂS/ˆ{ £…Ü4•ÇÞ3VÆ?³ÊpQZt¬ ꮫÌó¼g"FaþÓÍñODÔð;m…~÷‡éá÷Úò>ØŒ|Ìd/.p€™p×Ô˜ïz¤ã“Î'øäËiéHGʲˆá![€·´ê S]ÍL/&l¬2é à³bT˜”ói&¨CÄî(,öPW˜´9TðùÐ GãL”¡9탱6å¥uæ¿= µ«qi—S|Ú嬀 hDC=èÍŠÞ–á§“ßìHò½ì<Ö²òOMÌålyõÙ|Eíš’ Z‘óÁkÃü¼É6ˆËšöõ@E^zw}6ÉÆý½\^w5K÷ØD‡õË;Г 6†á16-6ʦ#gÛMÔŠql"å|_àÒô‚s õm’ö +ràéö0¼!¥‚æ{àËBÈÇ‹ jþÿÛ¬üc‘E8Ÿ¦ümárÿZ “ÎD@k“á;#¸ÄñðÛÅä×ãIöd–Yth&gÌPvt¾À/ý¶,(?ŸaŒTÈÚ*àx‚ý{‚ýÏJuçùtU•ÍPÉÜQRãwäÏù®ÌW}$¯_ûïãûþ¶Ör»˜(¦ì)éÉëC¤°-91r_Žð±K¡Ÿw% ÷Åöȧ¦ÚÀß/¦¸øÝ«œÝ~fäJ?9l¹3ßídòõÿ¦‰ ÿ.3 Ë +¨¶9õíLG¾Çª¬È*/)ôk¼uå­©ˆ½7Ûšër¨ªæªZëwø¦ýuCTä·§bmúüºœg¬9IvP^Ç£ä„3ÓÕ\dBâþ6d_%@ÎõSB—{±žk=`§m)ÂûXϼŸx:^ÎÜQQS¶¤Pw»¦(öØÌ+ÚW‘-}iΖ޸w£`Ï=5-íÈT×x>Ñ*±iб»ÊÂÀ?–˜¸‹9foŒ¿&) Ü&Æ, à–DÄ }53ûÈÈAí(ˆQ§ö@IŒÝ“#ü€Þû0Yá¼7 r?Ö‘N ål»¡¦\ÄŽºm¨Éú¼1@Ì8T’²¿› ¹&Rà›âç: +ÞoÊh9¶1zöt+péÕe`'mU–Û&ÀÅZôÄHË[Äø™Û!®K8 Þ*+O&x¸ËYáÔŒKØ)Šû>Ïeý³ZZûçBiÅ‚¨(\[r±i¹” @+s0;ØÐÑ’¨gê²ÐÛ; +Ø×?ùÀºP²û¨ÑwåʼnïÍ =¼®Mƒ· ä}¶ô¸>ÜûÄD+¸˜--Ybf[an‡£tØ¿çË*¿=w¢Ã$Y% ÝØ•Æ^L–óí¦2ú†Œ²)9!ÎÆ 9v3-g[Eˆ´LjqgFFþÅ !ÄîŒâ#v”Œ¬SMÅÆÚg}àÿg⦅»²4ÁŸvº{»ÔÕ]£êR•R&¥””Þ'“iȤ÷Þ‚ðÞ{‚.½‘Ré “ž ï=@ïà½'™YÕ½û_ìÞ—µ3;3±1?lÄ2:xO x÷Ü{Îw¾ïïžòêo^Îÿ!< /ßs‰…i“Tæ¶Óõ +{1¨RC*~k{qéyÍoéÇÿåóÜï|X ñnº^0¯î!¿1ÜCÞ^¢=/{ï‡ågõ^zRýExW•2ñ©YÛÐÍ)JÕòþjÚ!íϹeC «+¡%Öl޵[|^ùY@A®ÇCÇMCC~Œ±4Æi*‡x>E?9¤âõ& \ôöæºo}ŧ V…´Ü>èšš­âõ˜Ž ©Ù°È¥&c ´å,tÂú »Ëþ˜ø8³6ã|¸2K®w¼è>jû¹å°çI×ñ˜žÞ#ÞPIpž1^½ã•°emf€¾8FëPÝo;o~;eû©í»­ Ä•¸ +_ûaY<ø¼¶ Ån,z’Ö¡ˆŽ ihk“èó«cˆÓ=½#ïK÷ÖŸ¬N3š´÷‘GÖ¦ø}y·|ø/kÒ»;v*2Ý}nõqÉo òŠ/\/P7¶uýº§¤ëÊ¡¶¯ n‰üß¶žïxÒ]ƒWöUÆ›N¬¼kù6jås þÛîw„úɪßVåöVGÞ<¼þˆ]±òöCDÇCF4BT`^Ðë›c7/¿¥\ó¼b\÷B÷v~-iÞš‘¡Â9 á÷yÞ¢O:^yC¾¼=Ëk]~C¹æü™pvÌ{LÃ…¥­¨QÍ ³6ß‘¯§yÍ›ÄâÕ70ˆGðOöüR¢‹czhy}‘YnïÚdñÒ‹¶}SØ’ˆšßç}Ž:¶9Iº¶ðØövzë-æÚŽ‘OÌ[Åœ€ŠÑây=µ6N¹ê~Õóõnͧ¡I\qxšPšTÒ›³1)Ö84M­ŠÌÒëó6Ó7‡¹ä›|B‰½Õ‘kCjJsÚÌÆïÑraþy^wÌ485 ôGÕb\BÏElLÃNøæç7'‘Å@×eí<‚^×1;vì<0Ç„‘9LñæX÷‰è ho&,©‘òú;÷ݯñç×&Y-P- ÌqZÃ3¨âˆ‡íw°3‹¿t~—ÕKXçÐý¤IÂòÏS+A.v„ÍÛ“èËiDȱ:ÕHÝ÷ŽŸÛ¿_¼}KÉEØÇóM“ë£*+VzÇ)äÅõ,’çìÆÖd÷騎ҜqÜŽ™’&)/e‚84òÚæDûÑ]‡”4rˆaáWr»–&˜-!ýȰ_=Ä«E¨°ŠÕ¾5…)ñÍb®'Œì>PƒØ1½=0K¼‘ÐB×µõK£jRõÆxïÛÃò?:w‰jä¼{ð^Ì)Œ·ü^óÐwj )f‘0ãP›5ä¶F€ÚRóÑ>ã݇Žé[ì7ÃˆÓˆŠ£ÿ`{IïÜ ŽCÏZÿLÇ¥˜žÚ‚rU=4àSÝö¾&]Z›¢×$,"NÂÂÁdœBNÚÉgÇÌ,´OIosÒ0 ‡ŒR~XC¬ ÎbŠƒ³È¢¤]µ3f ‡¼¼ÖõIFó‡ÕÇ9³úvtóì¸ãaãɵ7MWÞ{ôÛ–=Î/ +ù +B½ë ¬4f⋬¿ô^_yÛ¸K_UÆNésÊ +ªD¨~ø¼ +÷ ÌÉ9nëæ¼¨w{AЉ¤ô VBô©ðÕIÒÕå·˜ÓnÇËo —ׯå˯ùÕÁY96e’±@úUÔ€ËW6Æ©%[‚–­iaûÆ«js‚r}k }:n¤6†uô¦íi|ñÊKøQ¥¤â× â«¿ü¬ã»ˆÑqv5[Q-¿Ê™´‘Ù‘Ñ“B +ÌÕå7ˆãî'˜£«ïÈ@§cN­"Ϥµiæ óärÿ,±4ªew%M¬(Þ .>3e!wnLÂÏ®U—tÞ|² Ý]›dÖ¦-JHƒ½ž2k÷8g3jvwLI© /Ê7&»Ï/¾n? +}ϱk—fíR1ÐËÍþ9jÛÊ(üêòëÞ“;šuñYkjj½ñ9òÔÒ44 D¬2aäHÌ,å'ýƒ¯Hì7I¸Ö1Nö)áôôâ|Ø0t+åŠC½¬TŒ¶µ±ž+Y›Tðˆe×Ý©€ZL÷¾èýné ê\Ú#»ãWÓÛ":zKDGm ¨hq'Yè; y>Ò?O(I[بœ‹O͸8ø8à[q»ˆ1óq@Ó “fzwYÜ¿© 6èïuTð`@3sv–„ò¿¬r„q#©+¨uÙJmÛ[JÔ`eœÆ£ÿ {ØVù~½ÿ§ÿÍÏáGT´€'ذv€RKÞpºÃ:¨‡·+i•°“V1ïÀ¶çù¾yA÷ú·añ ­lm‚Z¹­`·x_“/y_ö݃Ÿ‡Îå…uRX#@„}!U?5¬‘ƒ÷‹@¬rÛ ï_>Ê7ÏëZÃ]t=îýÒr¯ûKûø‘Q +Ä·:jM휲J8q³ˆ õ鈡y,ÀEÌňÁà<§5¤ât$Áz îr<ªþÝÚ«Ú?m¼­ûÓæ»†ïBsøÒ ‚ÕTó{ +vsD'Ä@.¾i<¼1Þü­o~Ö7 ?˜Å]OêEÔŒ{è!t¯Ñå)zyÒ"¤lÌÀÎoL·‰¨‘ ÆpW×FþLt}Ÿ61{V¦9-Þ1ìE€ã]I=µ9ª€_É[°uq ¶le´çØ2ˆÇ(ÐÏÐ=ÍÇeÝÚš¤×Æ¡ëúæ—âóˆ+@g^YzE¼°1A/+%Ä´eph}’|hí£ R²»Àš4ÎNÙ†nù5ýŒíY ê¼5+D€]r¶&¢!5$ôtÔ‡E>gÇË¡Dtøº•±ž“S¸’¬S>² h1£5®aõDU¤Ú¨šÞž4ȸ;.!äXµë—–/=ÏznÎPá·‘ÿõ5ãú¢JLe\KhŽÌª³VÏŽMÄHù„šÖœ€®ßR÷3×G‘§¹PáÊ‚f.>í”Èw—‡žî®JnnÌãkCê¥àײ!=¾zi +qfi +}ÞxzÚü±oÔ-Wü„º¶éî‹„kð~Á+ä'´„ƈèpµÚ¯ ”f¬,|a¹ÿ¾ên×W-½çýªh °øÖ’PwðjnŸ{Œ^êWRÿ²>ôâýêÀ/q37 ù%¡`w]2’_ 3&b[…+Y™Â_ó«Y˜¬cøAÚ6Ðt†0¤"7mÏ‘¢ZoÖÅÆFM¼áüåéÁ–ƒöý*›U÷ž¨ði#»7câ¢ÒzfgäÞ{›\^pÈå)‹„tO™÷%êøú8åz`A‹(XQèœ"Ô×pV‡¸çiÓŸVß´|V*JJeHÉhÈYEŒ]÷У·|(eáa¢Vˆæˆj€î› ”ThÛRËà ôZ€ç•¾zeF'$ý`.%œ žÓPK)aõˆØ?/‚oÏÑk¶çˆ¥‹¯Ð'6&EÁFx_íÒKØÑµ·È3¡JÐçãä’åטsž½ßGæ¨5Y›¼?b”²6çhÕSäA5Ò>òly‚Véx<éyƒ»tðz!4W~%Ðî^oPÉióÍÓk| Ôª€’^çÅŸóÍ3êR5kç`=Oê?ßx×öo~vyq2¢&WûžZšå4YŸO%Áq#Jfïòëîï×Þt +>^[Ù’Òóñ9ÃÈ”‡ñ^jkKÜ,eG´ÄŽ›ÛqÑ»“&z뎇G-¸ûc†~Žýâÿ «eÇ=x7çäÑs}g7Ç[¿Ýšì:ºò¦ãd@®Ê€ZÓ‹¹1=‘6‰hyÀ•Â*ÌUÿºhåì˜ùNÍ¿zžvóÏPêCjÑü‚\Ó;ûÉ3zÕ±ð«/¡"ÕEçð×b@çÅ·]Ç_]|¸7s sü^×Ìé¼KÌË:e’¤I@-8訔Wá›jýaímÓ᜻ÿ把Ö:s·áOÍ ‚|àä­|žhj¾ô¬åÕ`Õo—Þâ*c¶;o¶@¼ <ÀDnÚ&æ¥b¨)â¿® û³VBËæx×9À³ +Ë’„ÙÒÒ[¡uô©¸› ‚^¨/nBK!¸Ÿ¶;7u‹xi7Ÿmqµcsqqh÷˜šäYÖ*â­‘ËC.noeäuÖÃçÇÌžÍYbÉêùÚö<­&agá>l ú÷VÙlß<²&©çM†.Jhq%7çy#›µˆèq(VHÕ›„è7}¶tc²ëD\KªK˜¸ˆ RÐëŸeÕoL£‹Oš>_yÓy$m&7æ”ö¹;m!´íyy´œƒGUñ{C ôÆ­ry`טç´ã÷fìG}¢â´{ŸtóM¡KFVwÜÂEÇŒCrÿÂý[›s@η Bl±*W_âÏ›î5~ãyÒþMxžÕx ¨uœ–õ9^«égìqýÝ®/Àg}›PÒêCó´¶Õ bÙà7>e?hÃÞ•YNãÚ¬î•`—Þ‰P A¬2º×ư5þVWP'Æ'ìòþ §Í;F¸´6K«ò}üíµ"®¡Ö¥ôÔÀ{z" Ì&€µø˜NBÝšzxѸ:Š;€¾ SnÄuØö4½níáR\͇¥t|З¼O[¾YyÞ}<8?Ó`®ÜD¦l\,¨#­)«”¶q1@C] *z.¥ Œ®È»}c”Pœ7 +¨»Ëwf"f}ùâÄö¡&ªÒÖyÖÕ?TÒÚ4#Õ‡ÔÃ_€Ü쉨D$÷Køë¤r¨°–Ýž8ž2‹Ùîg¨SªÆ?M±®|ºøVÖ¦Åñ¤ù›¨â”Ž‹Ì…ÄœGØõy»‹"Éö³uñ¥$ùñü˜·1/ +CçûµŒÞ¨†+Ø…BPÃnFL<´_ÃhÛ‡eƒ·³F"¥#ÕÄ5èëk¯ûNù§™í)“\šqÞÙR€šhäâ3N1ÀÁ¾k1¬(nÂU$ÍÄ:Ÿqym†Ü•t ýx×pÒÉÅå=ÃOR!8ƒ¯òüÒ|tñIãÑ×”ÿ|»ûó¿³=®:þaSz7îÐÀFÍ/IF².+ï•ôg\|ž×bý¹å;ëö/¶gH•yˆ§©ùje¼ïFÚÆDì¹xÔ2±@êsýÒUù’yå0·îóÿ%¥âRFzGÆBïˆëðekcí‡óè+qà6aæÀÿí «3 B_óÍö^ܱ1ú²V¨<µ¬г [Ó¤êàµn×ÉÁ$ô˜ÒàBç1¿¢ûĨa{^3°$®aó¤ò­ô¥°šÓåS€:0C®J pšg5:î>¶=¹ž4ÑÚrN&&iàS`]#j|ÝÒ«î#!½+í07f»ÏEµ˜êˆžÚ™”°HÅ1ëýɤóö›˜KZÈÍ9§|8²Àhòo¼^ðÐiÙ”ÿ˜Òs‘…åŸbV>ik–R»ü~Þú¸é«¥w½%a±ðж´…ƒœî/ÿƒçu÷Õ¼›GÉ™é]áÑÖcZiÙg÷ºÏü½¸ùÌ'7‘¬ Ä–‡u´Æ˜ž +¸ ¡$©g-ÏA¬Mâ.oÍà®ø§É×à +fCÎ. ¾÷ðh{n66m¡·‡•Ôšð<»)mà!³F1¦d·§ X\ÃìLXˆŒ™‹‹jYíq»;¨¢ƒ5â´$tBlp¨†×íÇ]2<ìø*¤ Öæ,<\`rZ/c¥MB =Éõq#æzT‡¹iPOëF6, aͬ‰©Ȱ’Õ×+íÙï¶~ ôNWÄ´‡ZBkû™1­”Ó iQàÍ&"aÂ×úð > eS¦`¹7Ýz°½Àã @Ãî^šÇ\[~Ý|Üý¤ìP¬7¨')ÏÐO> Õw µÁiVgxšVšÆ^óÏ N—$4JL72¼5A«ØÅž3ßiüÜy¯ùsÀïË’ZzK`AB å°+8+èMÄ´¤ŽÓ½=‰¸èxTñ{ûÃò?ÄÔtXÆ1ò(m—I#:VWHÅÇÅýÀ{™i#­%2×w1®£6AÆŒbÎ{óÀëÛ!S¿ jŠè¹ððµ6<æOËìÞšdÔ®¾e”†bÌÆ»~ñeËçcß®½E\eTlŽñÚ#sœÞ˜’‡X› •9Ÿ¢OÅ´"6ˆ üú;Ø©Í1•šÞœ´±9¯P¶ ß™ú…Û€OÝÅʬÜ:¸9C¾áWâËsVlÏ-à퀼É:äƒ)£”¹ãz¸ æ/®ça@lk>~÷Rû‡Tôî¬C6óôgÝ|VÎ=ø0e—’V!ëàÒ’.) jlÄD¨Þžï;qâ›$]ÛÇmOS;:õ½[zóßVÙÜ´]¿9M©ó¼¢\q¿ ^oþ0p€›Õ„Õ̾¼“/ÿ°(àGæ™­¾I gqÅkˆS1=£âQ-tþ®ëØÒ[øeÏ(¾yež‰Y¤ý9ëq±2ª#U@ìØ¥ü]‡„Ÿµ +ˆ3„’¥×=ß®¼hÿÊÿ¶ïLJ­Ýqrñ»‰p×+e\lpÝð,ìTd}1ªÄ]IjÍ#™ñœ4pzR@çäìBZÎ.¢%¬®ˆw#¬ew„ÔlD;À ÌÒc!*eà³Ã*VK\ÇêH¹ˆŒED‰‚|·<®ýbš{òï-7þsÂ@ςŴ<\HÍéõ+8­þ)A×ö8¥Ìõ îÏ`¬q\Q|žÙ˜:5kæÑ2+içá>uDµŒÖ„…PR·Ÿ Í7Ùï8’Z cé—¤M·û•´dz¦¯½/¿÷ÏÀгZГm ¶ÞpbϬÏ0Vˆ¨y}¶Ÿ»¾sÿ\ÿUZGªÏ[8¨„–Ö»1‰*÷¼söŽtկ짆U‚¾IBéü`å濾¥ÿ蟠–¦H*AÝgw-gRF2¬¢6®½müaõUר鴙ƒN[o=N˜å-XZ€öqe¤ô„çºKâ*,ÐJ̦ÕYF]ÂÚ/ ‚œó¾"-È;¾r=èü:©F^ÊZÉ-—Õ‹ˆÛs̺°ZJ *‡Ø!Í g}Õú á–» ¿³Ükø är{ÎÞ?˜²‰¹9·˜Ÿ±ßq{§°,`g=LäæõFX-D'-rIŠg—d8¬aC÷Dƒç¼#/ò^éЮ—ÇÚšEVØ´}›ÕóÉo¥-’[ £€R÷ÓF¹0i’Ión±ôÚìÈL`iTËîÙ]‹“v>b µ®ZQQ›r6z×͡䴾„ŽÔ´ú¶÷{ÿ,öÚÞ¢ôVDCkó¾î8¼ø¢ñÛõwð+ÀG +П²Œyä^\?8â±uŠø…µ¡ç ^ÉÐu'ïu¿³ÜBO\ÍiÝ “œ4ÓQë“èsA ³5f`ÃüSÈ訂 6Þ»þ)ا-c&T§Œ¸²$¨§y Ÿ°c—‰òv¹4¬cw:^t£¿Sõ/ÚÁ+ÿèù©ò»NiÏ+‘ì.JÄ]¿œR³ºRjj]XÑ{zã]×ñõ·°±$®g¶îy„Ü=¯X˜³ ˆ #t}@÷ÉÀ¥2¸yÎ&áfmNÎâh[€«”0Xïȹ*¡!×ÅÔ´Ö ŠÕº<޽î~Ñ}~{ [šµ2z7§»Ïz^¶~»õúžô•Œ­iVãâäåØ4¹2:M*_yÖ~L)<ûéÊóÆÃ Ÿ˜qʇ¶á[!½”¶¹€/]™è8šÇÖgPEä%ÿêÆúæ†_-!…t2NÊ*ä\bôÆÅ½§ÖG1%~Àã:2ÈQrãÖ®8°ÀhÈšØð¬‰ÖZÀ\uüTý™ãQíYø¥„ŽÖÖ‰ ¾y^ûÚ8³Òõœ\l{;ì{‡/vÚ7ƒ.¶?¨ýã,ïܯ¶ßt…î?”0±½èǪ­)NÓÆ¨¨sñÒ…àLßÉ”y-i"Ö¦-BJ`OÎÙ/ºa0n37çyˆ•7”ªwøË¾$t¾:gUÐ*ó^>+︲ ™ +«/m2b::¤duç(õ¾|IHƒ-ÏØ¹¤‚wðçìâ© %£9¤¡5'MlLÚÄFú&0%¶G­§ ÷ꎮOâjÚ[Ãå ßöWæ~ÝwqouèyÔÈÇA}d & KL¨FÀíZ“9mù)k—D4ÄßüÂÖtßß²8ªEç]äÎ%Á¯†_Øœ…Ÿ\žUXz Ýc&k†¾ï$5GÔäú‚›…ÝYŠòË‚>~]Ák|¦=©f¶F¦û.[o•~6/½ò/žÍG¶€çrºWÇHå†[­X|»ì›EÖïØÄ¬œÖQ2?•2pzs& #g•KÂV·ãæŒå ò„íqû÷`=‹?,±I;n6¦àâ’FvoÁ:|3£“ÒSz£o¢ëÇ¥§‡7_!ÏD¤²¤£`aöæìÑylsq%i¾—° Ý긘„IHñ)„Èí)VCR+ÀÄ5ô–í龓þ9ä¹ +# r/¡e¶G•øë¡|ÙúòJRCm…Îó„° >P#|óœæ­~Ûú$¯iå%î´ã>ìëAÙ?ÍpK>]zÜöCÖDjÈÛXð°š\½9‹¿Ö¯'®ÅU°s‹¯z¾ßEKÌ3š²@奈ƒƒ!­»2N¼ºøuaõUßå”’X™ÖQÀ·¬OB¿õÅ^Ž«9°­1v³áfß—Yl Ðuø¼›…+8XĨ]Rë“&&,fàâ–[ü RŠó9îâò[ä™­‰Þ³I©5çd`r.1a¦÷­L]›B^JÙEÜ ŽÝ»>‰:ë›F_Š-ê2v*ìÃ*¿·$ìÙ´ ¥ºï#ÈÃA·}K/a'¬[-¾êº’ÐÞ¤ –ßaKL;,M`«vVî*c1sõ-öêêóŽïƒÓ?ÍT¶ñH»+2vwu¢ïäÖ¾*jàÒÒ666°¿PÁ¶'To)ág·¨+X +´‘8fâô%Íl|Á#æ\JZGhJQ3°ð0A#T1šýS¸KKOÛÛîÖ~ç|Þ]éz>¬§C¿A»žã‹Ô·z¿ Ì¢l(k2fg|žXV0³P{N!+oæ"³" ¡ÖÕ¼_ÑOõIJ(mï+ιˆ;."oç“ –Á¡¸’ÙWQë’*vgZ)DÅæÈµËϾÑËOþzñAõ¡˜šT“µóIg¿fmÊÖ©8¤ ÝȘy˜”†´z`}qó]Ï1 QJ€ß]D ª$øõ Vµç¹ ~ù ¯-2Ïî(°%ú›—·þ¶éÈö$üTTGïˆdüíIrYh–Õ•ÔI5½üui‚Wúç9IÙ—Þ×äËkÀ¿Ž‡Øœ!\·Ýoþ2®"Ve-ôμƒßq²0þøu˽Æ/½Ï°’ ?å±Sv&,®%T9-Š/à¡û8Â÷@ÌZ†|óìöÅ·¤«@ã"Jìõ„q=8ß}Q{«ø³ÉÞsa ¥%¢§uî% ji5áFÜDkMYÝ@—v%L NáÅþyø¥´KÚYyê°,¨¤T枇ÏJj‰MÎ{m߯>®?ä}RóçSþ~YvooEþ0ªå¶¦(Õ`›s&fOÊÀì *PU“m¶¦0Å! ¥)ë”Ê îÁ{ À{|`ÞBjbCÖÎÆ' ÏôžÉ˜(íI·ó°)‡€‘k3°ú"RSÞËå®(ÙñÒ;.jW@E­Y#8= #ŸRð >̺„œ Àôí9Ri`Vê:"eçÓœ¯agjVÇ®¡Ÿ›× +Ñ»€‚1v¥ øIúÚÆtÏIPŸJV«_Á¨ ©hu{^6þßÖ¹œ½U::k§vnN"έ½B)˜­ñ"4K©ÏcK¿PKK?]}Òñ=àÏ=».0n#è>&¬ bZVGÎBk‰kºOF•m?„—B Œú¨V„õ)y@¯0šÖ'ºÔ –üjùi×áÐ4t]`¡D·3@¿¶æbvÎ&¤'4„ªÕ·µß¸ŸU|¶ñ>:+ÃFU#¨^LŒA5uŽÖRóqÓÐ ÐJxß$âl`–PZàuîz‡ÙñÊïdAÅ-¬Þ´Ë@Zè뜎Œ-Pê¶Þ]7G®ùàË’fFWÞÅ%<BLÏ숪¸]Y3ÐÕbÕÚ›öoSZ|Ý{‡LœÑKëï6Ç»¾‡®c[}Gº²6Æ® +)eÄå)v½w”p!0K©ôOË÷\Ò_…ü]xš§×ÅÕrNÖ8 Z~M¼ ’wþi’[û)à’§³¦~^Þ!“¦¬BÊú¡Äù¼÷T:O´Þú$üÌÊ»žVG»Üœ@e-òá”ã‘2isCJj „#Y=§/ªè9¹ñ¶úOžÇ7>z¨èæÆ¤Ybèj“˜PRjÂjcÊ,¤ï,ʆwå÷S@;ƒØ¼¼=Kº‘4ŠHI3ëzû1aáþ²*øàe¼¤÷þ›W$Úõ°ˆîܘF_X›"^w¿D¼ Ö¦uÌžÒòï^úßWø´YæyÚôg÷sÔ©¨OŽÔ•×è3ó²ŠÏF™çþÉõKÛñ”y¿,–XJSf º§@ÞÁ§ìº Í*^¾ù;Cÿåßǘ–üÝU‘, ÄV{^·“²ñù»›wõ6žÇ „­ðÔ?©Ä¥Ÿn@¿_RÓFÌïEß £)ï2v=\"à¸õSÇÕå׿z‚ýêï6'[¿ Í® ±Þ.ÿç à0»vú/`þ#Fjã΢€ýaM®§ÞÏjݱKø;‰0 êþ–‚\Ñò)³€°ã” +³àõˆ‘‡ó«(5Ðï^¢ | óé5þ)ØÉåMŸ¯¾êþ>çà`÷–¥y¯l í2“Ð÷­ú^ØÔÏÉ,ÞÏ/ÊoÅgÚR`Š|sè‹Iƒ”™¶ ߌí¸øw)aé—î,K‡Âê¾ÃÀ_oöh£|%4ßÞIZ¹þ'ÊÙ­Ù!QÞuûmèÞ¸ªóÄÖXíŸ]OK ´à•œU"ÚYúÅý{mRPó›í)v;Ъâ_øù½‡ÏÌö]Øë>¶9…:“µ¬iå®hºÁ8ª¼`“Hÿâ•Èò@ÃÅtè2ÛãÊ?ª‡®ü:a  ÷6_å¼B.t>$2KªÜ鿇MÙƒ]—’7³ûÀ|Ôyž¢Ž•Œ¶àEÞ§­_OpNý'ÓíÒ?l޶Ÿü÷UîÿøbÈÿ¿ðÿ•8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7;pd¿Ù#ûÍÙovàÈ~³Gö›8²ßìÀ‘ýfŽì7C†þƒXáÿ ö«Ã‡ËéØ2õIWÕ'‡KªÏ!Àó‡‹cÒðÉaĉ6·Œ„á’t[t¨¼tòøé³‡N´àPÔCGþ¶ç!°Ó¡F6‰@¢ƒ[1(*îûCGÁ®—ÁöÉÉC§üø_—è“c.^8süÌ… §ÏŸ>uêÜÙ‹‡.\¸töøÙ3çÎ]¸pæÒésÑþw:wñøé“—.\8ñÂÅ3çQ¡Î~|íÒÉ“Ï?yìtñã»N¹pêâÙSgÿ_vúGýŸõâ'ŸÐ?iþäÒ¡#ßêêü¤ý¿ù ÌÛEhÞJÙ<± ÅSBÿÛ‹¥80'ÿÝËGÚét ‡=ôñÕCàåC§OŸÿÌR غиOxÿý¬1máSRO…¯HÙˆŒÞu +Yï½ò{{ืLžqõËÃ!9 å¢‚P3!I«L±–²?Ì9o½ÌÙ†2 'cå“ò.jÔ´2zÒ66*ïq2à=15£%eÒöáûi‡˜w‹…¯l0í`cfbcÊJl›µ5±Ü§ 6¨î6Ÿw<Æ•E´C²´j(+ß|‡+ÌP+Ò0—.™4åä`ÓVZkBK¨Ië©íPó#pnm +5<ÏjNë@Œ˜¤¬¤‰‹Šª å¾,¨áÁ–&¸õIóà@Ê<8Ò€ü›Gœk—3\yZ-KèiM! ½%¬å¹(¦ |“„âµ—°ï}ãÈs‘yTQZE­Ëi踞Ý;ÑãW¶G°A.b’F>:´€(ZWýGßTó·)±:kæ"3&19eSSf = Æ”1Ki³ˆ”„šhêÈ59+ –µ²áy‡„¿ã•ÈÒV)Ä3ªåô„8mi‘ñœÃ¯6¶ÿÒô•²¿é³à˜„œPÉÁYòíQØËOþ¸ùºã‡”_šT“ª#ZjýÌÍÒÖÔü9µÀEå¬vP¼ä}Vù»µ7 _¦µøÒ´–P–X“±J˜)‹€€š^|l¨Ó/ÚõÈoåZÒ"$ƒX`ä݃wònùpÚòYÏl©˜-I%³5gb÷ä,Œ®¼Ñ•3Ó[*NWÖ(a¥”–¤†X·‚X0óq9»šµŠhY›”—u Ž$ÍVX+@ÆtRrÊ,ãf\aÚ-`$íBZÄ9” Iîžè=¾4?“÷Èd—d=RYÞ+¿ 5Ê9%¬… Ïš©MI#®4ïÀ×å]ÄÖ¨~5¤G^‡šÒ¥¬b`NÜ@oKÛ¨-y'¥-ï uÄõ„ +ßòRBÇìwží8ï¼IÛy„°ž\çWã®´¸’¤Q€ßõý rW”uóÈP³€¬óÎhÊqóqÄ* ÇÍ䆘‘\5sy¨é„“GsˆÏ9䃛\𱉙û×U;ïâ’369kbt¥TP#w*n•÷',b6Ôü,ç•ßJÚX¨mEÏñ­¹Î¶ÝG#:Rµ{´»hûã¯&¹‡söŸÔ9\ Ôœ{ùIÏᨂRwˆX9˜Ÿ¶sПÖN¸ã + N3cåb¶§(%Û³´Š°ž‡˜˜½s#5Ÿm¼#WäŒ2öŽmp0j¢w¯µ~³5Þñ]DÃ…|$¦òþ¨I@Üš%ƒ9˜bbö,Œî´žP˜G^Xë;êŸ'WEMúÆ,µjéòØÖ[ʵÈ4¿#®¤×'5¤ªèáÆÖ$ú¼înóï×ÇðWc:&¤e¶ûfúÎú'ºÏ&ÔØÚœƒOm); °Ø£ålÃw²Öþ”IJO¹°´‰ÚZp‚úh!‚ºCëHZ‰ •6Éœv§tb|ZÇéñM÷tþ\úÏ–;¿±Ýîø*6%%„üží j‰Œ|-4FºšR’*}“GOj?_|Ýý£áQë—î'° ƒØï›Á¯¿é9šE•æL¤ºœs=c&5B‚ ¾XÂì¸úûwœRñ®G$H[èI7‡„·ÅŠ[ÖŸ0súÒF.bÇ"f}° +){vjÛ®_›w`*C³' +VwÎ44ÖkÃóÈ¢‚C@ßóHÄ]‘äBfÒÌÇ'ÍRNð…„YHLš$Ô$xL;ö{¥ƒ¹Åþ[9oÿPÎ%æ¦]|ꦒXuäÈüRÿm°ÝÜYxXX’ßÍ»†îƒÜcdÌô¶¨Y”2!‹&Ôõ ¶ûLP /‚{DÁ¤­|BÊ̆çœôÞŒP“³F#.nLv|S1z +¶ÛÏsŽ¡;qѱzbzzgÒÂB$jÏ>8˜…šÜÈua-±"¢£ÖnO“®ú¦É%žqäY>ò‡§Wþ!1+Å&U||žV]À^Ýø¾:ÖsdñUÏá°‚Þp™ÇÍΜ“4 .GUÇcêîãQ5ü|T‰¹’0qà[jVÏö4¾dðHÀ‰».6¬[WH‰-Ž(1—ã*ÜÕÕ øé™¡Šß˜vü˜ÕËØq=£Õ7?µòªíË•-Ÿ¯”¶‹9§T¸»(•½_–î. +¹;KB~ÞrÖtˆåœmèfÎ~óQÎ}oºà¸·³$åùÌ ˜Sm+‘µ +¨i‹€´c¾W9´!a`´\º ôLuÒLk kI)›”5pa-µ.ëÒóî០ÞÁ‡PÓ˜ÝÉ@~‘CIyhݹe>7³($ì@9G~λî¼}¿*8/j„x:Ðažû;žþ‘ˆƒ4V·H4]ÀÊÞ´‘ÙÓàK#byÜH®OXé=I€çÍ'Y÷íѸUÊëù€pʇÿº(‘GäfÛ˦ϓƛw!½š4‚ú5È2rúrVjkTÓwy}¢åÛõ©¶Ã»×R”íáÊòkÔÙ˜ŠÞôc[RËí,ð»?*÷¾ƒ]~ÕùuÁÉ:Ùè%c†š€‚ýŒ„ª„[ÕÂέ¾mþóÚ[ĉ¸š‡LÙ„Œ­I•˜†ÑÕÌóë›E]Xy ?fyÔþÅ}¹¿SŠZ¾KÌ‹á9ZmdW™ÃGH‘Ryps)©%ÕE5¸Š¸žÒ”µ ( ¥Æ?‡¾œG€µÀU„ÕØk¾Y ÃÐEšŸjþd¼Sõù{' ³ëb¡SF …ÔäÊÀñFDI*,JÖ¦gl/:Øœ"T¤Ÿ‹Alµ´æˆ’P¶5Ùóãʫ֯ƒÓø«ëcèsI>q=€½\`%) p 2OŸEkI›9(€Ù}®æ€–uõ!n’ÂjrMTE,K¬Žî™œ=m!×çbA~…ÏÎØG2ö¡›Ÿ4“j#€×¬Œw~知Õ\ò›I'µ3á;6: ÔxÎ¸Š‰T7’jÒvJkÞÃDîœÌ9n=MYGî%­@Z%¬¨I ¹*l 6„A®„ôøJ0FìÞ²Džø +åÁÞ’¤Ç#äî%ÈÎVðJûÁ&KÛ¤„ ð »„›<)ãyžfwE$ú°.½µ·"Ì9™ð˜_5AÊ‚õ-إ”™Ù™%´A¬qÌ{ +pÊ„‘Þš¶BÜYÝQ#­9ïrr‰$ç‘JóKéÀ#dPG„y¯Tž[ƒ“õç\7_dœàx²[oÿͨ}`»™ú*ë„È2zâÀoòÏcŠS&>6k“­ÌèHè ¶¡ÚÊÁ=&Ë»‡~ÜNú&fQvÁç¦ ,X\Ëì ̃qix´´uè6Ôˆ- Öªq ¡cz䕵±ú/Ÿ×üÞ7‡ºв;וüNõî¯-ºŽ$´½è%ÊÚ$ì´_Ñu4°ÐñCDÝs*8Ûs*¡†bHLóžåü~<£ïç¥Áø&jËÒÛæ/?7}f¹Ýô[óp˯é€ïК­¿Ú|Ûwf×ÂF挬îçöd߉wí‡×GÛ¾u ò!  V¦ „êK~Q~»¸_aQ$θ98¨Îì.B© 뉲€ÏæÜ W<¨Œ´ƒ…ˆê-6ŠY9耞T ´5˜‘Ç9ÏÍçùùO»€5P[ƒjJmÒÒ//؆ãZ6,ªsêzÖýP éʘ™ÕáAXOo ©©ÕaÀ¯‚s¤Ê¸Š Ë:Ô¨…‡ÞÔÐêìÏzoŒâ¯f¬||@½_ 5Æ"d`Vس:*hÜœ”!@^P?žì;™ºte¬ëHT…-M€´1zþâar Ï#ríÆ,ú¢o’\™ÕJ¢J<¢b6û¦‰e¡9Jmx†\™QÓ›2vçæXßËýšÝx‹<ò£'¥&W¥ Î⯦ûNEpPÛPE Àéü³¤Ò¬YD<âº;c#J\Ix¾ûXRÓw.oÀ•çLØÒ,¨·; Q÷ +©5q5·'cæ“rûv\-Ô°X*Ê8ïÏe€&Ⱥúå€'PïŽèÍ #ž±ô lIP¾x-gyôQïÚøÀ7¡×ÄŒ]HÉ{ïŸÅQPg²Ðy4ç­§yÏÍ—P³×]Àÿò^6 ÕÉ%‰ ªqI‹ˆšj® +¸ÖPa ì³(äÝb~Ú*¦C­oúÎOܬúíŽcèá®÷ÎdÎ3ô î`À¶çÈ7Ö&ø-…~Öy6xVÚ*á$L÷ßFŒÏ,ÛÝ7q#²‰h—L–u÷$ôbbÊ$¦LCò´YêÈq ¡l[E(ñÍQ+3F!9gЂ +¸‚Ó™Ò݉,È)|KÁiòƒXÚx×wÊ?+É% À=J³z€µ6™jvšõosvr}~&8O­Í™d‚¬ih8´mB-@dtRZJÇCç•bJìµµ· òOöÌJRjcu~ó]ßÙ¬IHN…ø¸†P¾5ÞôÕòÓÚßG&‘@W³Úrf9©µFŇ瀦ˆ©0×"ŠŽ#ñùöïãÊž3)¤·øø<Іk“}§7ÇQÅy‹TX°Ë¶dì\|ÆÎìK˜]'˜3 :.¥ಶáûa%©zk´çûàü\BEmHéí)=«·¸Œ_A®]X0Ѝ{@€úÒòàX²¨žÙ5Eς܉]š”³Ý~–±=˜Ê8‡æÜw’@D€F›ø˜œkèÀGaÚ$¦§ý‚Ð €™q1ú2NzwÁËDå½ÎÞÒÀ€§rÀ]€ø?IzË︎mÝûž}N6$ÙA'qCìØ‰™™-‹™YjIÍÌŒb°$‹™™›ĬîV3I-'ûÜûw¼µò~XÃcH­îµªæœÏï©šÕæƒ˜^*¯ÿ¸,”™Ø¤ ŽK^ú¸"® $U>ˆ{WûUBz@ÃFyÎsç<( „ü øœxKÍ'{Ô"ŽW_Õ´5Ë.Ú™&Åù4ô²“e.ë#ˆÃ?7øUGË,²G8D'x´€±“ \ê±™Mù±šI$ôë…‡l›-zTqéGúÚÎN,vȨÙN`màÁ¼:&*¼ZÞúxlæ±ýª–9Ÿº¡' —HüË˜Õæ$´RÑúZk[áñ]`œeŒ"Ps#|*rî1ÃcSugØ\7td–TCà’²Š­sääcƒHâ³É»3Ì"§¼ºÖ¡ø0f•·Î84£^c—Rwf°QKƾª²zeœü®ˆÐsi~PS}zàŸ¤ÌbŸª²Â¾$¦ÙØ!­Òñ™@×q +žI1¤m휥¤»ÁÎ-Ñ9 âŒMP#dƒ±1Ç@ÿ‘÷PÚ%ÛLY„GM)ØèC>ó-”3Aî±Bz=¤ñýZ!çp‰ß†?ÞG<Ý$Æ®wÂﻦÉÀó3\óèØ# ´vÇ@•´¢õÌKk]™¿úd”"ð1ë=Y÷†ro¹f‘G`ÎÃjÚ žs{$ûîfwÁíÃyrÆzoñÍÃQLÄ‘’CùXà3Ð[=øqJæö$ìþá<:xQêî$!ñHÇ!ýxÄûØÄ!>GïÌ?\ο꘥¤95\¦©³äön7%Ñ·XSwž!¬2T|’WN/е%_04¾ûÙ3Œó(Xe›C¨'®yÂ-/ø!ŸbÕ¯a”xT䜵é» ˜„ ¶ºÙ©ª¨r(Øè€¶¾+yÀF€uxàù½J&ܳ$¦»›=r>> e"‚F&.hb`«Lê›lΟ›,¦Ï€Ï:9èÓˆùàuBvØ"©ƒj±_ÏgƒûǪ¸!ddà\*xĶ…ˆæ• +ð>…ˆÅÖÉZ%Эòjß_1YQc—q‘·'e£Mƒ¤7©„qdäÑ,LœOC+<”Ó‚æh•|Ÿ¾¦Ý¦ 94\*¨»b¿ x%H{ô ¤[Í,lI éY¿B@µÍ±Ë1/¨/¯ è$a³¨âdï +*€ÿÇ»Õ$ð,ÕMnUU­K%¤’ª£•Š–£ÕšÁ `%è?§¯}6ñY[SðØFôÀLõ#}e“__Ù2ó˜Ç`¾ÃF!ÿ£‰C…Ö´ÔíùeïKÞXåfv¤MÝëså´])íXÐq¨^ ‡ìP2JõÅW¼Ì£¥¹µŒ/´/­æýêª:Û¢˜º5EŽ›ÊkNV…Uá56Ãoda=JÞ­`—Ù)n9¾'£À” ¹—÷GÉ…—ÿ1”Wή ¨xD×1i¥7óòá<&q{3ʈ<\¬«÷i%·†‰p*0§‚ž0GIÝF<ÞŸÂGiza'˜±§ö‡0É'&!ËÔˆSš±7]p_ÓôúËÕŽÔ_|Rr®}‘˜ºÓ_ú8°ÄF…T‚[FLs?l›.}¼Ö“zi»7ÿŽi¤ôm;ùÕ)KSiÌGCm`|VÀÀÀø€GsJɇK%O½ +L¢WK)6vd_>VSŠÿØà & +Z'õiiÅû³ˆ7{“ˆ×~%gS`òºŒs»=”WÙ6çÓ ¥Ax8KKSÔ'ŸSTFŸ³£b7gñq3’´ß¼ó ®4OMµN9½Ò—œ”¾5]úÒ:O €ša_äÀ2Þ¯mõëkÚ<Úò7¤Ú±@Mw.ði9ws°¤‚G:1KN,’†?7„Õ O(~#>Û©‚¿Þ³Ø!ã`¶&p‰àïò–ÚÁ¹n$hªé ™+!-¾ºÄ¥(yåUá’}r.Æ»$$”µ€Ù*[«Âj`{·VÈ +¶òÝZicŠ”¸ÜKzu¤¨ª„ö\ÀëýÁ¹Õ,\b›5ßü‰MI-ÙZêPòè6n“‘R=Zä(è“ÊÓp^£ë,¸y8òÆPÓ<r ø bAÈÂ^‚öêHyA“¤zw‡Ùœdf©ÞäCÈ"© Z$ÕÇ«Âr#‚°…ϳ-`2ƸW¼ åU.Cu›è©WWYd©l™kz!~ûcŠ ê(…+}ÅOVûQÉMýÀ¶´’³9/!Ù”ÁñrUDZ…'pH)…û³Ø¿šœë\ÀÇ{5”ÂcÀ½!ÀZG`Ì@×=*.Ö|ùþ5høû“5aÅÑ‹ +žq¸ÄC¸|œð™SM+Ú˜*}¬ûwÉ6M./Kê +Á©Rþªw*à{–X¥> æ,n’ûu`©œc—²JH‰N95x–|—Œžç‘³J\RJÕUö¸ŸôöóÍžÒ8h Ý«ü)Ë*CGíM•=[íÊ½é˜Æ'i¸d¯šƒsŒÑ’² +m–^´:PvÏ'ÞJN‡ÔB×<1QÚœó»0ïæÏKÒ…Íâ÷‡*r¶[M+jøô°A$ +èKÞÎçÝ9\(y²7”ý[XM-“Ëdȯ‚Ï|ö)ÙH  ¥A —dSà’·G/½‹BnÔLë".Äb¶G&f¸—ÄTç æže»Ù%Òž¢{Ôô«_N 8}ÃMÊ'­`_9À˜„ BÀ=Âhà rls˜ðƽÄÅút|ŽSÎ':•Bº[ÉA‡¡½ `aÀÕ«“eÑÍ¥÷¿óÎqˆ'¦Š&¯š X8ÔòWß‹2ò+ƒèˆ~VÄ·ŠúŒ+aKݰWÿ~Ô¥©ms¨„ÀWKªO–EU'€ÏZ‘s‰’敱Ë|*..h$›ØÔð@^gSu‡¼ÿ¾ µ5ym›af‡µ’r¯šœÐ1±'æÊÖA$ô·'§æìË)Ù;ó„Ä LÄ¡œ…\þñ¨D쀹º'¸\j»¸Ü­ç\z‰}‘”²:€x|0Å.€jfÀT^ëÑVÖÌ|QÀ,® +š‚c3‡ê~}’•¹1AK92 „àâ€ï +.W÷„VÄÕ¨Ghÿ‘‰Çj××6 ÈE; Èh¿¾ºÓglQºuïGÁg‹&LŠ[IHêH …?¸Y(ôš$µ~SMWÐ\Ùâ3ÐQàþ°#OüÇO: °N,U@“k‚@+]*f©GÃ\H/;²p˜×ùž  ½VŸY\éñ±N%½¿DL]-ºmǼñ,Ñó@¡<À;¹"¦ø7ÐhŸ‚‹>\ §L¢ó$Α“¼@;¶ÇÏ·ú÷ Œ\—œ–s8OMs-1 +ìóŒìõü[Ç 5ýO—ñç +‡qt0 ðQÔVÌÞEâXdÛæ©ŽEJº}ó:XÔµ@Ëö+xä»­ß›„?_îÈ»¼Õ™}Ñ6RòÀ¿X[Ë£A½ €ÇšrѱV"t/’3݋к3.Å+/yÖaR÷grïÏô$¨­xïWJø^àQžós²Ê$~\¥ O,t´VP• ýª÷½>eó˜OÓÐã’3Kö&Šï­÷Ãn[z/µ-¨×ƒ¸Ò©æRv@Œ9—>ô{MC]y¥GË€[á/Ýrt¤G†éX–’ï’nSUVy<´7k›£¦Û@=ۚ̽³ü!ãÆG} ¸êuðjê{ܺú^ÄgúšVN$²Î“öF1o@ L +ïïRŠ˜NMUGWÝ âµÛ<ÏÀ@ú´”‚ÀAa3µÌ§EÆÚ2®ú¤Ü#cyUuMÀùñd™ ›iŸ³;šõÛá.Ì É§e¡|àù‚ËU~Àj‡ÀÏyM®CÃD®Œ£žºÌ:ï^Ü¡äSfˆU.x$bØÀÄx€_³.:£f =úÆéÀªø½ÛÈ&xtPÿU9Ð¬ŠÆ€ âNÀc`n½>ͧ«n±©DüÝ%rjx¹¢ùºVÊÀø«÷ŸЊŽLU6¥q ³}º†‘ øõ5aÍ‘…M Ù¯ž¶+P±A—\åKv•Ø„ðjeÇÉVíLhµ¼9`äB\H:ÖK*ƶ[ÄGfq5´Þ^岃 +­Ť.A‡,,Rh…'®ˆ*ÝJ6§0½Ì»P#ñ.JhN>mu ñ‚}rŸul cŽ¡©¤å»l,ˆ­Î£eQMÈD*ði‘^2: ¦äéùŒ#³¨2bxR¡[Ê.9œ¤g¹g¹p׫( Åg†LÄ|·ŠVäшØPíãƒs.òY90Î-EE9çKžOôL4´ÿêU2`n))- æâ! -ñjq© o~!Ë£%å ½icÝ€CSYíÒÔ´¸Ôfºš6à©pa-ÒP‹Ý2rvÄ›G/ •M! õó_ñôád…/<1ÑQ!>Ó¯E'œXˆ…ͤB¿•|¨À$¹|fÈ(µZïƒöÙ䀚\èS³‚:&ø…œƒÅ’—^_è5W4;õ‚]Ïgºø–¹·Ô“ ziÐ꽡²1dVxµôŸ†RгÜr\òÞ\Ù‹ÝL´Ï,ªñ¯°¨ðš ùý¬Ïتœ8ت&´\Þx¼\Ýw bZË Z"Ÿ‰Ž8YHÀ8ÁT|\«ì€Ö3NV¹¬k,ˆ[Úê(ú5ˆ•4¿^\i×3ñ^# 0ðz!ðýâúÐ2Ox´Â¢{ͨ¬Åì[áÕªîãµÊNÀru'@«>®Ö Ö^‹Ë™ù¼#è^,¢J¨çÀ«'å;ÀOyÌ“Uð#<>à-šKEÉÖ¡ßAuÈ¥Á$îÍ•>÷ª¨eнHÉÙ+È®yæ#ÈÁ#-¹À«„½´Ïe]ߎ»d›,~å]"äµ,Ìúp Ð[BfH'€Kh—R³°1öø+—‚2€šoˆm|æÊ(ì®OZ!ð&öª8؃)ØcKGâéí¡¬[~9©ðHÏ&ئaÝKˆwÇPžKµŽ¥]¶eÞ÷/á²´l¼OEʲMC=^7K¨hÛ"¾;LHöÈÁ|O•Dù ô1äq5t¸[FɃö$=*& +ÌS½CIìL-þ¸L)ûc™\òÑÂÀ~\fƒ&bK…ŒsÉ ©~í˜cÃ\3Ü2ç<)Õ¯+}wl$6aPßà +¿/%¥ÚçxÈ€ª¡Ç§²mÓØXû$.)¤æÃFÝ«"åØçaϬ3E÷Càž!Ç«äb:ʧ&æùõ¤¿žRüq…Ãø¸"(wÏâV‹… V}‹¡5íp…Mñ‘Œƒø_­ðXYx…Í8^¯êX*Z õÙ°™ÇûsÍüc•Aøc•Žs+J^[²®Y +€ñO·É0É) ÔÔukÚtB¾SÆ(<”±á ÔœƒùÒ·n­€kU‹XûÀ[z u½~Àw¡ AÇX½‡_ÇÂ&"!Ÿjb“Ü*r¦OËÄ/ *>®s…¡ +Òc$d—©Hÿ +!Ä`MÐÔ,ó[š•~PûC+’†ðFõð[ÕáuAMÐÂaøŒ,bðÿÏn궈ªÿ³QÞæ×rJÉ‘¼ >ksþ¾„Oôhh¥[‹èH/Ô÷°RÝZ© +, +6Ýg¢–y˜—ž¯V´ÍBqŒÐŽÎà2—{0Ÿû |'ðR•~P‡F¡ä—B5ÇË\Ö‘QÀÏ„> +ÐÓËþó||e@ÏÆCqxÞ'¼Â}\7-<žC‰Š±N—=ÌÏ é…<én9>Ý'§£ƒ*I}XWýáÄ ®¾¹tk¤ì¡}ž” õ§Šô*×— Ù5ŸØ°½èx€)*ò`ë‘5´9Å ç<v8IIwÏÒ} +SÀìÏ¢^;ç/Žõ¸œ Úë_=áÓ1‰Çfùÿ®3™€)á+“ù×6&Ù°C0î‡2Бòr—¢²Ê)ßíV½:Sy¨á‘6e¬âÍjjÀT7älä6 „>¿Â«/oðËkƒæ*¨þ7„,»ëÕ²iáµÊ.ß2ï2á2\:\ŠS…‰÷Z°i~3ÔV?Þ¬8^‘Ôƒ¸=Ù¬8ÚàŠŽÀ½{€÷wAk¢`¾‚FÊ­€G„ôd'lÊ‘Z61‰®²˜ÿwÃû¸ÌaC1ëRRöÊžú5´bhø fÀÈgûŒÍ¡•Ê®ÐJuŸ Ü·ßÄ¡zôl\À,Xæ¸T"Þ1ô àõvåT³Q þp?Mñ/ä>,lT…M’š°E(ùhá²LL,Ô5Þ¯©ýp´RÑz¼&úÈcûÀÏ€‘ÂZãö¨Øà3ؘ°¹¢åØ\Ó{l(¯ ëÊ«‚ Z…ú—ü2̧"渥¸ø R"ò¨ê;e"šC)bع¯’9c41I5±> +´gŒ”ýQ[ÓÒ²p¶9\¬už¼`kª‰áeæh1Ð÷¦¹ˆ¹¿Èƒÿµ +<Ä‘˜ç–!"lsð+½i¿ìt>«D¢##—i¹Ð +yǦªö0¨‰a}ukH'`yÁ}º•¤làGÈ= èµ¼÷·¦¡ÿÈ"ïŒ|T¼5\úPQ—qQÝ{3 á0½z¨~3Ñ-ŸaWpÐn- mURr­Fɾ†^¸;ON=c{ühHÇDõjx™Mâ–»;GL~$Å%¥eA}3ˆÊÃçy,dP[^ í­L5Ý¡åÊVàù@Û™!Po6'1ñ«ý%Ã&qUÀÌÄ}\gR« ÒÐÞô‡íCû \:ððµG¡pd-¨Õc¡ÕºÉ tfh¤Ï@ÌµÉ ™n0O£··@Íö«j[¼ÚÆ1¾ºòÁn­ˆë÷å3ó~àƒƒ&1ðYåå}Ý€ÏÔ´è5VÔù̾ÏÂe8 T˜m 𸖉 .=•‘ó¶gÙ.uMKÀØ0 +­½…7jÆÂkå-áuɇ ™ûcUTlè1”×9õ-rÿjí˜ÇTÞ¸+çb­**h¤ÃOÌÄ‚¹ô`ùx¢ÿ€¼úÓ¦†´Ršœãugo +ùÆ:ƒz{d ÀÂf.Ì&üŠÏøAá3‰k\zÝ ´ ­C}/Ë´ž,ëSñ©n æQ±Êß¼±WÃ,ó¯q¢0Á\Uûõ<ȹ¬¨oÇFIµÔ¿­ ô‹õ’;»c%?ÔºCÎÂìÏRRKÕ碄áU²€¿¤•؀؜*ºïZ"g)„œf‘de0ïÁÁ49ß«óŽ B^äèÇe6#¼LEügƒNp«i…›“´dÛ"»ÚªéE>øslšO ØZJÊôË(9aÀÑÇ&.ͧ¢åCûL!=¸?x¤«¬ *›ÍâÚ“eÍ©DÇA=š€{P|ytb 1\ªGü6t>a‘œ±;‚|¾7zÐc3<*T ´yd¬òëjÚ¡~-»‚’íŒ ÆÉ¯g¡ým0ǰ¿<¬¦¢Òo¤Á¡µÏƒyr¦Ü[POÌv«1qN-1:Ô +ÙdžŠ:Àµ5¨ÇiYTuæód~Î&8åô|}oÙShMþ÷ -³€o¡M v€˜û¸Îþg‹ÅúsƒI?2ÐÑGFùdMÔp´!zÞ7­ŠAŒ”Ÿ¬Kš?nŠ[ŽÖx"Ÿ™Cµ.‘R€WŒ•M.=ŸæÔ–W-5 >ÖB t ˜Ü§²BFqùð]^½¤Êm¬jö§¼Æ†‰€EÒèÊÇà2ƒ²:™wkwš=”÷蜺V¥Ã ©\õ¼_Õñ:¨¹€ËŽ-|t~ÅgW:4íJŸ±ºÃèS5äå½zJÑ¡é"c½jJÁ+BÉÿ®‹þ°ðÀXp(~ƒ°øï GÍÇF6)l¢– ää-ÖѲ¸Á¡£•:ô€yVk‡A~‚Ü 6<µ%d¢£ ¤dû41ƹHÍôæ…ú÷ýJbšsy8Gˆõ+X¥ö)rÂÁö•m÷öÄÄc†eAŽß†rË©9n5Ä âã +—­¹ÔŒSÅ…Î9‘BJ9¤âàj&z¼¯SJÎô¨¥Ö%JúÖ$%~{ŒkÅFù•øTÇ1õPFÊØŸ%ÆÙç„Øµ!ì»ÍѲ'‡ þ¸A-wHÉ9':çD#âut„¼9áçÝ b®S! ¹d|̉N,úϪ¸þU6Èê›9”`Ÿ£@}˜©~)ý£‰Iø žþ\þ¿Î„“A¾äh¥~9Û§ dÎab=‹Œ‚c}}ÐP˜èªx`9!ݫħ…ôøô€“êUÓKz!?´Úõʉ9†Ž„³†ÎøŸ]ŠâçÀÿƆ ®áÓ}j‰Èü‚WÃ%™øÀ`å€Õ1 ÿ‹BzBfPKÞž‹÷ëh0ˆw}z‘x] É¤B§ +a•!Þééð# YÐ^КR¿ž>²ª»'›>4ÎN 9»S„(ë.âÿ­‹êŽþê ãQƒ¦ê®Ðªø}h™†9Y#ý®#>íHKʃš\eQ?®óÅ'뀃ºÁÕy júÑ*ð5Ð:މZzü’ x5 é6EE…ß\4‡†¼Æ¯Ö6òY!á×QK +z¡Ë´Vߦ÷›—–ÊV7øyÀÈ@ùäB¯•äUóYn͇§¾ahpLäÖÑjewhEXáVS‹ýF6!`áÒ¡¾œ ¡ºÍ§‹ÂËMG¦Š&RÄñØdðYˆ –\ÒM6SQ'&6ðQÍÉzýÜñvõxxCÒr²Ìaß•ú´ä\†”Гó}ZR>¨Y¹Vç×W4ƒšŽ0€Úeb⎌äû,úÍÖ@ÙÝQäÓíÜ›Í^Ôc×<9Ù5u‚ßÙg0ov†Ëîm^ÝìɹRáRBjJ¾_I/ ÿà–’<2RŠ_IÍ ©¥®yz¶s‰‡ò¨4¿FÈðHY0×5Ã6û &»IÉŽy\´}ûÖ:ƒ~m£§oOcv'PÏÜRL´SŠq¸vɉ)³˜u{ÊÏÆîìK{“àïå|œGÁ‚Î#à|rZ¾SŠŠ°Ï—<ó« ™‡K¤TÛ4%ñXÉ'þ¼è1¨Ï~ðJjžcu8…zé˜E½ +¨H™-LàOṴ̀…Ëô*˜¥‡s¤D¯Œ’yØ>¨¢äL?ØèÏÿÝ=CM*TP·9Àûþ¥OZøBŸœ˜áœ+{æY*zððì'–òÆñ/ÝÁƒ¸|w0މϘñŸ5:%l¡!‚:ržG†K°Ï⢃zÇ õ‰or˜Öê±_ÏBûuÄl»´ô…[†O +*iPî84\ÂÞ,5Õ¥À't8ày©Lô‘†^PQóKöæÐ ³¨Ðºôñ*Ÿ†ö÷Ô,h½!#žõOÀPßMP-d6lp*Žêèc3óÿ‡…Žö+©¶9ä§ +¶0ðah¿ Üç‘©¼.ràØRÞp´Ìãxôg¡‚ù±A=´Fà5À¸„Lñ%Ç«+Øß­ç³|¦ª6 %ï–™¸ãeþÏ56颿–Þ—2‹7§HqUUG+©<˜§fo ,|ð3仜Kød+ð¤~-J¶'é©Ç€ÀcB&Ò1‡‹ö)1q%>åHI+„zL–Ë›Ëåкdx¥²çŒyPÃÁúT´SFJÛ›(y°9Rö`cþÐ>‹zí/{ô|zÐ$àüu:«†ú=0ïìÓØ7ÆæÒß·ºÑíÓ„˜í!äCÇ4&Â1KÏØžYï-ºbnÊøi»'ÿwÇ,ötfÝ.çÖú³¸¿’œíqíZ¤eLàßAçí“ÔÄAÜsÇ-so¹Ùƒ¼kŸ"DBk³‡ þwËî,w^^é*»±;„|äYÀÇû”øäɲÇ[£e‹„x— ç‘’mÓ„è½1R”±­ð7Û1.(g•øå„ï"â•köèpªäkñ" Ç'ù¤äŒƒ)Ü»õÄ÷<³pg¨ðæÎ@Îe÷:2 §ä¸0‘ž%l¬{t0Žð.p`ÞE, ç \s¬|×<«pœ>õtg¸øÖÞì¾cõΩÀ&xTÐÚ%ÔsDPCÌ€ÎÄœ@gq´|´ä‘ÑŠŽu|º_Å,;6Ð^CåY"$º‰Ià™]à|*6Â#R=J1Û¶@Ëð(˜e>£Ø9‹±AkRBâÖ(âñÎæ… øç9Õ1GJÊèùꙨàò_³?x0†~îY¤æ†MBIxȆ÷,Ñ +< Ädï!Þ:Žy±; jß,)Á5OIsβ g8Å>9»Ì#eLÞí£ž»±1GÒ³DÉð)˜°àOˆ'¯žKu&p(Ù(¯šG´ËH@ë I)6úž˜w¨çܯ¦äýa¦#Ã: +ÜÚ ói(¹‡2lüÖ4â¥KAEþ¹*j81±ˆ~-)/df`ü&Ü¥"gYÁØlã_®´cî¯wžoôPß)+ /l•>:õþx7¨Ÿ)2§À%Zgɉ–Ò›•aÌ ×%ÄÂ:AxÒ²1ÿYáñÂzðùKôˆœrÁ£(9¥böz?=Ö±ÀÇîMqŠö§(IÀÇY§áO¬S°û‡‹…÷íóðWÐÏ&ÙGúò*ÀSQ€¿‹k$ú÷f½uÇ>†{½;ˆ¸¿Ñ¿µ?LˆØ ÅŒ±R·û)ÆFØ%S}á…½!Ü˽QRÔú0%VVýÓþ(î­GJϱÎà£@žGnÂî¡ŸÛÆH‘ÖQbÄÁ!ÆÐ^tCU“þÔú ‚š åÙÖü.”«ð]ÅW<óe/=K%/ísظƒ>Ü>LJƒ¹*±Ïâ£6P·ú1÷†1ÏRZî‘’UfƒÎÒO“3ä$Ïo'Êíå_Ýé/¸¶t`´ôîÖ8.VQ—üýVoþ°Š‰r-àâ·¡× åþ~0Zx ¼æÔj÷»È¯à @MÈt/±‡sBÌþ #ËÜ^rÍÐTpa¥«äª¥³ø÷ÝqÄ“#½äøpçïœ ¤Ä † jY(—”‘þZS:6ðY5£$¼Ìã¶¥¸Aü;¤Ô û&fs¤èÎÁ8ÐèIrÂî1v£ýô`œ’ê^ä"A ‰²Má#m“„¨ýä“ÝAøýåÎÂßÖzJnnuc¹'))ÿk^¼·}ž”`›Â¼9ƒÎ‘bÞx¥ì2;øÛÒGòêô³ËŠ¯Ú†°/6ºK®¯w_]ï‚ÝÜB>·|€]]éÀ<yR´;ÆÎÒ7cîh`—W»÷{Â<2*tv>Ãôß1CMÝÇ¿;\€z«D‚Çòfð€¶N!žÙ اk Àì #ž9È 9^)§Ìíqþu6ñTÓ”}Nߘ}Ö9‰…j¼è¾WCuDÀñ(äÃ%VÑö0î•©¡äWC}þ9©(ãô)îSscö9'ÐÛ8!Þ#Å%ýï:©$¨ÁÄ;³oŽ!«[²ÎXÚr/Œ"žØ¦°ï ³]AêT±áözºÄÇá %ú‘Õø]sk镵nÄõAr´WÎ'”äÜÃYä· ›Ô’r¼PÏíâÑFòÁÞ0.Î>…~ã‘2 +AíÏrÌQÓ@ì¿¶¢žŒ lõ•Ý26üª®Êûu³‡¹ÑÍŠYiÃ=XoÇ<ØèÀ·Ž#­ÀW¸€¾LÑR­ãÔ„ýüë;ÒÛæ®œË3âØ¯gxÉ_[ŠonõÁŸ‚œz½9€{¾Ù}²Òžwq§7ýcSô[}EÏí³Ü²í1f¦k‘[fŸ£go â^AL¸Ý[tÓ5‰|ížB½]iÍ8¿5ˆ|º5Dxw0FŠ·OcwŠnXG`÷ì%íSðǦ³Â¤¯¶{KŸŸ¨y$(–Öûò®lÞ´N ^X'‘Ïm ¯íS¤ØÃiBüî0ü±{žv/Vrf¥ë}äˆÕNÒËå6ÔmSSá…õ®’ë¶Q\¤k–’¾7‚yP°1¾¿4”ðCBßa­OXƒ?Ô2Ðn%Ï)¾MÆÅxÁëW{ò¯ššsΛ .[Zг´À~ÛèBÝ?cf#D¹çhé‡ã”ø½AÌ“½AÔcskî/@o3ÔåŸßÀ½ +¨T‡”]²w\æ˜G¿Ý…ÝYë.½¿Ü^tESŸöóãÍ?õuÙöð¯×:‹®lõ—ÜÖ5dŸ—óS¾“óÓ¿5ÖÿºÙ‹yfjÇ?Ÿáþ8ËËþVQ‘Î tÆ6Cˆ9E¿°áß‚{xº9€}º;NL\zŸù +xÉœš¿7ŠyµiÜ4êÕZOÑ5eUÆúúܳk=ˆûKùW Mð×~Œ#=w{ýÔÒ^|Åü>!çœcPЋ,]°ˆÃ z‰GVScf®õ¢@mÆ=35ç_\äÇ5IŽüûrcîu}þÝ.\äéâ'flŽu"ïöþhÑ­ÝÑb[Ù—äqßnöäýî•’2€Ÿw*9(«”U¼5BŠ\n-½¾Ù]zk­£àw¹$锾.óÌÎâ±ùd”ŸòÄ6‰NòkèÐwµÀ½JBºc±ìùÎ`Þ•ÕÖ´Ÿu §vGJjšónN“3‚:õpŽœºÓ_tmµ3ýœª6îÔùÉß? ¯2Àˆû¦Ÿxj¥ùp«÷ÂÐP|ÑX_ta½u[ßP|i†óÍáÕ+Ͱûö Zº}’•³?ÁL]ïÁ>Úê‡ßÓÔfý¨¨È<½Ò^z³ŸøúÓNêEÇ -þpœž²ÞKx¶Ü¹ol(8¿Ó™óëú‡Ì {]%÷öúïó~±O +îÅ*ÁÞ8#m¥ vU_“ü­¾"ñCeÊ)Cuò©ÕÎüËÓüäÓš:ø‹õ.Z„¥¹øòVoñþ⛽Å×ôM…e¢Œï ¹¿îŽ ^mô ^xçù$dzÐ:A‰ÛÁ¾yöh½»ô¦°¤¦6ñ4ÈïäÝFêZù­u¢³3$ÈÙ G,·^ÒÕæü¤«Í>#­LþyJó½uŠ”²âé`ùl{ñp°ízoá K{ÁMCÊÏÊ긗ÛÓ.΢¢CZݵÈ*ÞǾƒ¾×ÂÒTti³§ìö¤‘=È{ W®îö¡_»&HñV›{è'Û½ew,-¹v€žÈ$ÉßïŒà"¬ó|ÄÞ,§À¦ä` oé’ab6O. +S¿VˆsO««2’ ã¿Õ5ä_lÇDñyÇ 8mûFS™sf’ÿé6úÓ^Lô§ÃÌ”ï̸ç„7úÆ¢_§‰±¶I\„súî—²» ÂȯdåÉ?jërÎOq£Ošœá‘r±û#”xÛ%a£§ô¦¶!û§~ÊW‹¼´¯¥åÙ?¶Á#þ1ÅJ¿°Ö~å˜fåî“âÖºa×ÖZAÍ•€ülÈ:gé(¸ +žç×½pgRL×wà_lR“]²ÊÊQZšº6û—IÒ»¿£?ÿPúò ü«sÿg¥+÷ÍîhöÝÞ«™šÓκ—ïœópÀ=E÷3ÈW~!5¨àbg¨)nŸèñHæVâcK â¦åCî/ú†Ì³ëE·Ü³äimîí¬{ßý·±!óyP%⛻ᯧ…1ßo e_Þ̺diJ<µÞ‘}ɳHÉhÁ=ÿÁ6‚É ÞÜþZë.º¦©O:­®‹ûnIûµ¼"óLâù—µ9wÿ¹Ó‡zkê(¸<Ãû|œÿé=é³EAæ7äÈχÐ/?›Åz{öoRAê-+ˆiC+öžº6㌢"å”T’òí,;áËIrÔ?ç™gºˆ‰gÛ‹_±=Dâæþ ãS}MÚé®â ܸoG°O>ÑJ¢¾²´ã^++°Ï×ڨчӜPßžn÷À®¯6ç_Xi*º¬®ÌúI)É8miÆ<šaÁ~ÕW–@õññz7êÞÁ5nµsßÒ +¿ki‡ÝŸá¿øBߘúËÁ07w»—gú€¼±3HÚ&¼ÞB=Úì/½µÑ[|ÝÒšõ«¢:þ´¼"ùS å™±•ød³Ÿðrµ~ËÐPxÁØTxIY“{nN”s¶ ùÏrÌW›ýè·ÛäH]]þÙ%IÆ©)vÒW‹’”U5©?Þ§žß-}4*Š>=D8}8Ã…ƒLÓ÷RV¥žÒÔeýêÁùIVäƒôW_ñ3nÿcŠ›pÁ7OÍÚê)¾µÑt¯¯èÖr[ÎU µW6{¢ÏÈ+^}³9†ˆ²Ë¨…¶Râ>Ð ]#üÊz;úžñ}Éï+mð{À_Þ’UežÞò ÄA«Ew·ˆúæ²kŠªü3ºÆâË+½„ˆÝ F:ÄYK’„¯7úõM°+ú÷€©G°¯µï󯫪òί|(¹ê†4£½ôþJ¼¦ªèÂJþ±¦u}žŸuJ[[pÞÜ‚º½$λH»þ‰¦pï .b‚•ðÝ()â_KÜø¯´ÕÙgŒ +¯L”=ñȱ©‹uI—Ú±?QÖ]Û­ ›;)‘ó’¼_GH ?ŽOÍ1c¿%>ÿ÷F_ѳ¡Üëûcè(Ÿ²¢êØÀãote^šc¿øtÿö KsêO–†´Óæ¦ü_,íð[ Uy·fD…×sB¼OÆA:çpQ{}°[°[ë%×L­¹€ËË^;ÑS¢Œ+Ú¦¢[^9) °Èíµ–¬³íy¿i«².ÞÝõÎ ¨™„abçîŒñ 7ñ/×û`7Lò.jª³Î(+Ni*¿s.P²Wúa·Íe7õõ¤gò +ø]=좩±ôwÓì½AQÞÙìG?ÿ×3ážcšWjlG?˜æ?ÿû4ÿéßg¸oÿ5A‰üÌÒû}¶:ÿbqìõ!žýÛÁ-mš“òÕ8ùí'óì¨O•’Ä/§èŸS^¹ÖUtG{ú9êåoŸ¨Ä%ÑÇ*sþxµ«ð7mmöOÓ̤/zÐo>Y¦ÿ0ÈÍ8÷ü·ÿ^âgý¾9€y»PžqNQ‘uYU‘~¦ÿú_`¸þ§½ô·ÿZîL½ÐÇO¹ÜCùygµ5@ÚRzäÆ csö¹~ì˜GÿÓ»ñ·~Ôé„¸Ú I—A.Å­´£¬´•]ßêG=ØèEÞ×5®ôbžü£þðÀÚW-]ð»@g_íRR7ûñov‡q/¡55¿ãLé—g9 ?ïŽ`ÛC쌕NÌS]Sñïæ–âk›Ýȇkè‡Óâ”óÄø+ÿ Ä]²Qe¢·Ÿ++¢Oië2Γß}¥¾ý~§;þÆfgÚ£ý)|¢¹/ÿŠmŠœnÞÂü¤î=ìò09á³~|Ô?fY‰_ÙFm³ØÈ‰Š¸_)‰ÿ¹ÞKKU7¢îÏ S¿›Æ|»ÝSúh«ùÈØ\pÑØ˜q¥£ô¶¡vÏØRúÈ9'&Lð 6û0O ÍÙç--Ù†i1_VåÜûŸ)^ÂÏMĘ›11§7AÑO£®):¯ªÎ<3ÉŒûª®àÙ?ñwþKÑPp¥÷+.êö?Àãü`%$:¦)©.à[ö'Š[¢¾U”¿ü\*ŠøÚÜUú¨›tNPðî»Å:\ÌÎ(¯x«õlo àúVwÎeSKÚûŸZZ2®9hùËeMõ97za+Ý%Q»¨ëíù¿nö¡jÞ_f'Ýý¤¾èíÏÎY.hK:`áXmuÒ†Úô3[½°[ÎLÔÖ8âEyé“/ñ W?1tÃ^ïŽÖ׿7×gŸ5Ö§œž¢¿úÒ:NŒqÌòû“¬¼Ã9>rV„[Ä>õº¢:ë§E^캪¸¯WÛ2~±.S&*~Ô5áã÷†Þ³Özx©ºÆ¢‹K•g¦øÙ¿Ìaú)É—VZ±YÞ…*þr75JÙú“ª!ñ´¾)㬥©ø·N“¥êÂ_«ŠŸÿ« ö° +3_YwNS™uÆô>ÿW© îßúªŒŸÖÛ‹¯¯÷!HÊ^~ÆL¼ÿo]-2áX-b>Xé(¹¶Ö|Vzuž›òººðB/3õûw×Oÿ×05ö·å>|L/5æËæâûÿ=ŽýAüÛ~(yü1ò“Ï·GJsKž~ËɾùÙÁ>}½qÏМõ³º>ó´ö}Î9yeæÙYVÜ7K¼ÄŸ6»Q/*Kß|Ù„ŒúKMV׿_ºuz0—¥µà’¼*õ‡ôƒOgèÏN-wæÞêgDü´7€K=Ò–×ØgÈiÛ@›€çyêœFÞD?5F›ã%Zþ¾?BMZâÅ|µÑ ±=HK[í@¿´ #ÿ£¡•~TRò­ã¥O­©¿xØðoúvä­å.ìÓ^öéIFê7¦†‚_S¨WŽ%lÜBCÚïŒä«ÿ4·#åUe7Æi ÿ^$œ^k-¼ +òùõz/îõá1Á>ŽQ7d^4¶Ü;˜”­õ0¢×z0W{Jî®v•ŽG<—VgÝ^îB¼î 'ýÚAŽ?¿5LŠžgŸ`$}9ÍNøj’™ôý%åü0+ㆶùª$æögÏ~ùöÿ´Àßüà—³vè;AÏYÚ³15%œ6¾O<¿Ú<Æ %šõø³´Ç¿ümL”÷x $™$öUE4È£è¯ç8O?Ÿ¤=ør³7ÿ¡u;@úAV‘u5¨æj6ö` ¥©N;­oȹ0ÃKøŽùëßÚJ_ý m„¿œ/Ͻî\bb¬c˜¸]PlãøÈýQÄKE]Æ/Ð/?oÿ=µ6Œ›-/þv}˜’ê˜Ã¥L•¾Yë-º®}ŸzVó>ã¼m–Y¬ëC¿Ðw”Þ·N2³÷†)I]E×wúó¯ŒßÝÞVßUútw”O´ÏÔ‰×ûù™ÚÌÍInúénLÄ¿4¹çÇÉ1!•á“—óöFE°­al¹ÿÜØš{ÁÐö£Tõý8=î³.øËÿ±4Âîm ““dUE¿¬´Q#×;iïºPÿg˜øúseeæOªº<ÀýÙ§-­ÈÇŽIܳÄCmöÂïYÇèY{cÌS3슺"ëÇy^ú÷SÌ´o'èç—›°ï¶‡$eºfâ UuñmUyÎ9™8ùuEÚw»½°»ÖZº¢ùRÝ\òÔ¹ÀAn a_Zzà÷ÖÇÈ)û ¬2Ëæé’(ó;…8ûÇå¨;²òôUU™—·éIº&Ä­Õ6ÌÃÝAâÛÝAì‹~ì˽!Z‘{ž…·-°JÅ¥O_õòØPÑp¸DÉÙž÷pšgŸÂE8fñQ®9r²u‚ž®nB=›“äýnŸâSd5y—‰Ïþ)¿ùr£/íü´èÍ¿åÂäS›íè' @ÉW?ÛìÂdTŠWNÏw.âã&`OÖ;’/jÊŸ~ºÜ–yÙ/ã“Ãç*êŠ.n ‘#5 ùçxI_M³Þ}ÑIxðe'éÉ·ŠÚ¤³†¦Ü ¦^bbìÅ·#ÌÔ[®Y>Ù1AK56Õ:ŒØìK»±Þ™sU[›üýJ[ÑíÍAnz*æ»¹š‚‡¶YJêî(ê¹æ}Žì›[%׺s¯©kSÎhÛK2ã¾SVç_·tbŸmôãßîoaŸa¯ a^ÏUæ]çeÜy˜gŸcäL3²íóܲ50—k…WvËîƒútIßRtCÝZt[ÞZðfu—1Ê¿¨,O;³ÙYühw°ì•}ç^$ÃÙuÑ£°·ï5´1ÞÞŸ˜?`îëêò.Ak.[½ˆ‡º¦‚ßÌð{–~jôTmÑ>Büçúš’»¤È½abÄÖ úùZ_áý­Á|0žÙ— õé§wûIIÛ£üb ã—Eiç–Dçä¢ôöºÑ¯ã¬|s'æªvwoXˆ“6b7ß|ÒVvïïrIü›ˆÇ‡sÌ<Ç<¸ÙeÓ¸¯’…õ*êlòrîæ8-ÙØŠzdù€º·Þ†¾gi‚_· ±r·èiÓ¼øoôY—vGȱྯ/‰c¿ã&/«,¸`î ½1•åšRüZ>×¥ä’Kõõy¹ÐÔUöh¡< ÄPÊwrqÄkÍ@káw&„¸•^ÜåûŒ3k}ùס}*/öi ÖQnîŒ0ûÒ+é÷Ã16þpžX(ºv<³ÄÞÁîsñìpš b·Þ}¯ú©s‘ƒ’Õ¤œc¼ù‡¾9ãÒbuîÍq^òSKÞu÷<³LŒzEé‹ogÊa)Þy s¥¥à’¾>é‡Á›/ÇYO¿^ëɽv8‰x}8II[î'DJàϾž­Í‹°/2Š” y¿ Ð"~˜ÅýªkμløzÑ:y§j-|4*ˆ;s0K.õõa/ññg3Ü—ßš;ó~_.}¸6Pz±3LŠóòÛJ75Í%­íL22-%·–;JïL ~¡F|¹;zs¨qÝÄÜ’È+_ëºKß¹dŒ’ƒ bìÖöÅÖ0ú…xéi~ÄÔ—ß9€7Ÿ­+~ÙOŒú~»m’ö¦Ê‰{SÜB§œ^âVSᇠ+JöŒžo“ñ ÝÔÈ4u7\s¬uV€wͳK<àýƒjr¾m¦äÅîhÑãžË=Y­êwÊ)…›#w}êšfŸª²Ê½$$îS¶A}µ:IŠk&¿þ^[^vÏ1T‰³ò +§Ù)­`svg}þp{œ“ ]Ø£f¯õ–ÜÙí/»onÉù}c óºk ›hŸ¡fº\ÌÎ+km•°>$ÊU5¡oî~°Ýƒz¸ÒRøÈù3Æö²ÇªvÔ£FBÔ×}¤äÓ›½üÜÝQ^ž¦©ôú¤ ñ»qNô7ªÚ”K«mù·úϧé+ÄwÊæ¢ËŽ9|w¡kJüyˆòìËInÌw¸§ÿèÂ=û|¥ƒš:Y‹{øùÙ¢$ÿž{žö«(ù^)%×:…1wå_1u¦üÝ«_Í,Û$%X§pûR%w}ˆ‘"¯È:3F}÷ù;îÜ$'êûv̽OFÙ¯N©ZËî´R"¿›àÆþ´Ù‹Ý&'‚±†y¹Ç£xc¼ðÞî*æP*¦Η36GØ9–N|ðÑO6Úòoxgp±‡øèµnÄÃÍ~äëí!B¤u’ Û£ÆKk~Ð4•ÝÙ¥Æo’£ó<¸K.æÌsÊÖÆ°ï¬Êš›¢iÐ6ǯw—ÝV¿Ï:'«Î8£k.ºi¦eÌY¨J97Í;e›¦ÂöÆYë=ðGÚ†´³†æÜß׆ÈÑÃÌ̃ÉrÒÎ0#ÓÐ\vw³—ò,Õ6CL‚ö–;ó¯/U%ÿ2%Œþfgq¸ÄÅîÍ2 +õ]ˆ§¶yÙ:ÇGmâ£,ùw7zŠn®÷ÜÚÁDÙ• Ø.€¼­ô+û6Á1ƒŽ\ï-x0/Ž;=LõÅ ðAmúy÷ë–WŠæËéÖÙj6ˆUäþ%a­~SÝ{UÞ {d F›ºñAƒP¼7AHYiCÜ64#¯oá#æÉû3øä)\ü¾œKèà¥ßäÞÿz{ˆAs«›FöeÕå[óØÊ0晩þÈ&¹¢ –G)io®œú?Õ¨¨§vyuÓÖŒ€`é,»mjÏ»´Ú—yQß–|Nݘü{P/ªôhÄÕ:ଠÄTª²Æ!•Ðís„}š[¼3ÄHÚè£E»É¯>~Zb£îÚú(Û½¢\s3ñÑJ ñéf'9rwˆšl› öe<œx^À§œÓܲƒ1v¾u’ s,ð1³¬¼ƒrÊÖáÕö %rs˜›þûoiyño«­Ä'{½Ô¸ƒAVöÎ0¿ÈÒEQVÁ.­t£¶'ËñÆ~jìRuÑ/ó•…7MmøhëI8ûcØÈõ®‚;Æ–Œ_ŒíÅ7í3bÜF/晦.íì-öÇ)VúùQþ}C#x¦*Â0ñ[}aÔ—†Fbî±¶²Ú/Ú)¾³1P|ku±7ALñÉ™¥®Rš¶)íâj+igºA`êa'KÅygAÿ¾—ùí=öû)Nêoº&ø[å AQÄ·5¯¾ +*Êyö¨å%϶GaÍ]…7·¦P1V)i•ò0{ÓÜÂÝI^>ŽY>°ðCëpñ£½¡Â»†Æ„ÓªÚèmãÄt×BÇØÉŒ øhµ—–á˜ç½æ!v&Hq;3„Ø9b¼MÁBXuµÛÒ†æíY!zkŒ–ºÒ‹|¶9€²Í2Š¡ï@ÞÁ¼Zë‡?ZïÅD8D u]é5}]ÁKcñÍb¶[*dÚ8C7:j¡2íüÎ8#Ó­¬¬ô¨Ë%»¸¸Aø]kþÅšäKÚÖ¬'Î%:Ì~·7EËU6å_ò*«j7€¦šÛÑ¥’¬3Û=eO÷F°‡ <²C.¤Úf9E ß 3ìâîâ;‹¢Ø/§8Ñ_Oñc~V5¤^=˜*‹…¾ã ŠûÍZºu¦–»? òuœ‘bi-»6F~÷é‚(úëåî¼+;#¤h¨ß:Á-Ùég$nö0S›G/À^¨[²î¨Z3n¬Nb£WÆ(…¦^LGVÑèÖÕ´îB9² aoÍ2ò*ÓoW¹5"e˜#(yùÃh]aºÓTþa Ô“µPëGQq[ˆ˜íI|Öþ ¹À§ðl2BÕ^ðûî,>n{„˜p8_+Ü›ª¦o rõp*ž¦!–ñHWd<òµq*úJ'<ïûöâ¼/ǰ°,U¬ˆ­Nv‚¡õ`yýÌØ ¿»=Aó\-ØŸ© ¬ŠK,}¬xSù™±™úh¥ai漕W’o‹s^ÿ­ùBL¾±Ý)ÌØîä&iêiÏfY¨ &1ñ†}´†¼6*.oÀÜÕ| ½¶Î×Õ¯rò·ï¸æÅDõûü Êò¤o×[ ®ÚFØ™ævaª¢œtÃ\Ïxb¬e¿Üü LµõUÂ7[%9IEäžrFNÇ_Ùiçíðó6ûÑFèiöÕ¶Ø2h›¯âXg˜ùº¦¢kó¢”-­¢ôå¾F‚¥£"ÛÜÈ|¹ÞQ‘on%›Ùo6Úù Zp¯CTÔù^dÉZõÝÁ ¤tµùh¥§øŽm‘á”3n]]ŸKW×m“‰hʦ‚›Ú°;À/$Úæùp}3ò†¡¾à—NØÝ>ÄKë01Ã1ÁÎßëç«kØO–›%)ö¡ª}¨ +·ÕÅN”•gŸ<˜âÖ +ø]mÏæ’˜²2ÍÎ]ŸffìÎñJ—„$Ï’ˆlŸá•­à_­µ•^·‘c=ó|Ôθ ¤‘òi*ýkm%5Â5ÜRçš’PÖ{ÊXÚ ïïŽáò=šš6·¦¦ùÿãè«ßÚH»¿SÛmwëÞRWên@)îîîqw7ÜÝ=wÁ’@”kw÷Ùç{½ÿÈ;y~˜+!™¹ç¾ÏùHf毡’g—RKlRbŽWÇåº5tÌžŽÚš, ^,ü2ß–ç¿Ü[üzµS[}¹µ<ÕOÃA¿0÷Ò +½âž}„[iÆ|·t"ÝcU¨åNz‰VPèoDEo¢¢]2rÁŽŠZâ–UÄÊø?nLЃÏ/uƒ¿í(k*}9²¤Ùèëå|Ü ñ6†?Vû±!Kí¸p%³è©’^ôÄT‡ 16ÂßN·ä=54¤?mÏy¿;Ëü\®—þZ¬0‹Ð3½A[j>Ó=Ý$Ú¯êØ£bVÇÀáʺÌƶ¬Ûxôþ ›»7#¨ßšb•­÷áãÿÒ×wýÔ6têkšl“e‘Ó-‘æºSo)àÑ»34Ìr2x¡‡‘$­"|ì&”^jEåžáå&üŽŒü~¬4àË‘ÔWoA_Üݽrtîäqß™ß@o_:‚ûpJÌÈõÛèGFý5ˤüœgR, +b–²ùN܈{3U|:ÉÜ¢!o·#K/ò Òÿ€û$Dÿ8ÂŒ:Ržò39ê$1:ð6%ðXØ»û (ÿ‡GË3nÕCnÈxà—k}”ë­x© ¶Ô‰ Z`¦Mw²âÅ|üËn<ô^+²âJUAÑ)jbÒqXhÈÑÂOŽ0¢Bs’CNb#?Ïx÷æHèãG €{×AÁn‚ò¾>;ÒN¿²ØNK°ŽñÀÛâ*êÚ$bìÆé€\žn­ÊTU±ƒG(ˆ;݈‚ ýÈÒ«#8Ô³~øN/¬ðZCQúù¢OGŸÝ¼ +º{á(äᣔ¤Ð?‡Èù÷ÔuÐ €7;3d”ËH‚ZdÄC{Å[YuÎÓõ1BÉŽFÀY¢¦M0Ênˆéà»*.ô¹† û¤`B^7•Æž¥&ÿ88õüñQXÈ—S¸¨¯'1¡Ÿ›©…Ǹåd¤CEE8õlêÚ&v]]ƒ|tS¸y‚Q`j&hª‰Ÿ¦¸¤÷ãô +ÿntúm^NØ¥âàw'Š~|;úå¾èñåó ïo%Åý¸ÜŽJx8ÆÊ +Xêf¹•”r§Š‰ØòysŒœº1†‹u*p¯ž…³+‰Y3%/Üü[º*Ä{­ý¹2'átÞ§wGŠ¿~:‚‹Š8 û|tŠ˜v÷ñàû7¤¼}q|¶*;æäz?>Þ¡äàì*>y}Œ™»Ü šéÈû´2 ×·BßÎöBômÈSü²û-ŒÓíhÔs VÎs³O’’£ÿˆxùøØõ?]¶Ë§O‚î_:Êùöò·qNá÷ÃnÃßËtžS…LŸïËx«iŽ}¾7K!ºüJ‹À’Q|ܶëV“‹lrxcŒš»jü¨ó¬^rŸwtü ù +ó¿zuó2èÅõ«  'ÿÿý8èÁ¥Ó [Àù?õ;Q[zY×XøÔ< Y-yož@E,´ƒßÌu >ó!»e—ªËóNÃccŽ—†‚2?½E¿x zyýèñÅ ÿK@.œ]üãOÐÉãGÿ‡s¯ü€ys㘌—ûÅ«æP÷LüJ—–ƒ÷ê9$ÀTl‹ñ)‹ý˜PE=úM#¬à +<2ì7dXäÑô·ïA/¯\=½tpç(ôÑ#`Þ/€îœ;ò¿z tùÏ?AÇÝŽ—øæ%ˆ’qQ]‹þ¸2Ä+ØœhÚÕüm)±z‚±——=VEþÔEúU–ež”žÀ*ΠÒÓN„¾~zxýè>g¯¯_}»ÿôèŠèƹ‹ ÛÀzù]¾`ÇuPø«ç rFô òÐ"¥å[䔼…xàl{á «„º4ÁÌUõÐb†khª¨ë…qQÇ‚^ùƒ>Þ¿ Š}ù +ôüæM`ŽOÎþöèáe?Ð¥3çAO®ù"ß~:õúÍñʼ¸«sm¨Ðm1){m¾2€žmC~6¶â¿ Ð÷º¨¨;üò‚sy¡!G?Ž} Š|õôÜï&èÌñ üÌÇ5лûþ ‹gÎxqêÿøHÆ÷çF™/2J©ÇÈ¡íÌpnãPÓÊWÇq±ÒÚ²‡’:Ì›*hÉ•‚ß§¼ûJxùÈåë K@._úý$‡7y¿ +ºôçÐ5`ÜOoÜݹräïw”ó=ø7tbäeU-îËb+Õ<Ñijɫ…sÝ„HS)TÛ‰ j%–Ü€$„~ñôâæuÐû»÷A~Àü^:õ'çA\=ÀÊãC“.± bþ˜`!ŸOð¨Ú˜ôgUxÊ}RâjB`ìñžƒîØéwÀ·û/AA¯> ýp4%$ùhA|îIfyɽ!&ôÕlþ»]QI²L2 R&Ì«æUí5.­gVV³ÔC5%u ±<,úvazúßß¿?òì-(ôÝг»Ï@þ<Šz÷ý4³ü:© åßÍ ~çPç{k(VI}íÚ8«À·Y¦Ø`ë»be”_n¬C)Ú¹±#UÄ·udøTQé圈„IG_rü»—@çO=¹ý”{ ‘T|½ÀŽYª¢Ye´ +«„”éÖs™Þ¹úñÝya«gVи¦`@Õý¸py/-º‹AxЄÁÞc]Ægd^@¤¥+KJ>ÿãÃ×ß?=y +ÿ ý5èh\`ø‰Ð_ޤ¤œ¢€Kü¦êÁKlÈ–¨šº%®ÄY$Ì’µQZ¦¶öÊØMŽYœ¬ÆKÚØñÕèâ눔¨S±_ÞŸÌ þšw6%4àÔëwAï>;ž›}9>&þ\zLÜ R^É.þ¨‹‰y¯¬‡}s2®Îv–îÍðëvçX\@fo+¹X‹¦Z°,«¢ˆ[©ß«qÐ+ȬÌßÃß¼?úò5(ûG(7"îxä—¯'^?¸J|žtª +U~€E +™îçC7Ål˜[Í@ØõLÞ†¼©i0«“uäÅñZÌl%BÛŒy?Â…<éÄß_hk¬t0׆‰[SÕd›LH·HxÈM«Ø®²ì†V¹ÍXÕ`Q±àf™YÁÃ,KÙE27Y…š¬‡hÚéaºVÜüxq¤W°4ÚÉžh€.ôÕ•¯÷‘£½RÄ ä—CSIÛ–Qò¶DŒrÇd]•CÒ5jQÔÕ®Jx¨u™¶&`ºéñKÝü¬¹Þºewc‘z¨+ëé!ŒÕ5Æòë‚;)”gÕeç›a°»S•‚”塬]ÖPå’5Ô¹äÕ\·Š…Þѳ0îRU2¨ÉÓøðå!fþú¸27 (”·W'Ë:s¥mMéuÍQâÚÚˆI>ëË }_ÑT›&j¬Kìá°Þö +aSýõeËÒ*’UÆ[¥Œâ Jêb'äu ›ú×\ÝØŽ–EXA„.Š0ñê!fr=ãëPceøpKKæXksféׯ¨ûÚ'hêbpß(›éÁsýµ%KCÜœ- &Ù¦¦”:•»¾¦Ñ¦«oßÖ5öî˜jÚèÑ‘‹ÍS„¤¥ L„¤¹â…¤2Ð@‹Bd¤œ¦——ßì6ĶpØ_ªùßZØìç láëÉ&FÐÂX3Ϫê‘ïÌÔõºŒÂÚ¹†1Ï|í Ë(¨ó]›°ié 9%g~„­øOÒÌ—7²~˜ú«ŠfƺªtÕ¥Ê.bˆv€ž4ÙD ètpé/ël‡M¶Vƨ8é S•H§ŽÇø{†Çÿ{š-ðªI°µQDØÒ6tm„•c ‰Àš’f'è™Æ.ÌוABÔÊÀ]U·agGñ—M½Œ íðHóTWK¨­ìÎ5RÌÒÁ¶‚‹[„E*Ñ—Ö† +>ìN³¸ËÍF—Þ–“rì.qEÊψ*ÁÒžÊÔÉV~ôTsM¼¸…ñCÖWW!í`jÆÑ3cäøÙa|Äô6x¶þÙ¡á‘Íbb® úqsôk½f­o“ìê:íêêJ³¼’¸hƒq\Œ¤¶ä]]É÷s;bÒ¥b7'pI*rsn“¹*%eºT ØŽQX½¥`V8@ÞéZE^CËÄž¡®Ý;#¬1+™ðM)1}q°:†Š\ž@gZ¡èÀPÉs«ª¸.y=»ôb¯ŸãÑK6¥˜Ä-9­Ä¥ªoÚž¬á:e<œYÎA¬NqfqÝ©Ðm„Të >j­ºØOŒZŸhb¯ÛÒhl}¼½:Â+^î#ÇÙDœ +’OÛûzˆUÖZÄ{úú§’wªieÛRZEÄ*Ùaå»U•T·ZÀ´)8h§ººÚ*­åmËkù›féò6be až"¦lŽãâ­RV¹©—•<×)ȳI{¦Üó5vÄjšMN,°Kà‘ëƒyÏ2DÂá,_hWq°V—è2T·ØLu=ËêúÖUUK÷Š¢½{EVKŸ$FÌóò–DÕˆ £Àc¤"÷ <æ‘Ëø_ÌuV¥¯¢MI̵k˜猠À|_=tœ¯Ñž†Xt`¤ÂJj‘YDÏ“TC?³Š£Ÿð 9KòÎaãTeÅœŒœ5+¦,‰Ù½¯nuýwZظ­Æäy¦+[wçZõÞÙê«‚Rh.†×è.-°¶*:Ø¡âbÖÇIi Ýà÷Û2Ø¥«m]ìCþ0¶ä=^€éPKR*|SÉ¥n¨ô^nÚ£Ùa, à¤Q¯IØäUÀbvÄåÁ6Qù÷µah°]LÊô*Y°9¼?Íeºõ ÌÆHé§õþÜW íÉ·ôu)¤¬ÐëKY_wt‚Zã0‡*ª+ ڔѰÞù&ù®^ tihˆ¥‘²€ nìyieÔÍm $ãpYÐm›®éšjÌ °Hp`_­É=ïÑsÈίŒƒõ-Y/fzò_9fØ,Ç|íÀ0»Ž…Û1ñ8N=¾c ¹TØt‡“°1\öiu°äÍÏe~³GÓÔç”uô;å­=uS—KE+uHÉæ1\ôLSé«- 6M×YòQÛTúlscÄÄ8U¤|§Ÿe— ãwÔÔr·’”½ ÄÝ®©E¶khóåÀÞ —iQó6%ظM&vKJÈ’7e>›âF½>œ©j÷z +!m[„‹7”¼·ŒU|ñ=×nS0¡3#”¢avÎû!dºW_ÛîV7v:• Í69 1מñxµ»àåÆ ôÛÆ1MRˆQ×"3¶Å•d ‡h{FÙ×ÓjW‡É²ŽÌ´GÞp*1^}uÓ–ŠGÖvB¿n+p·º’½£®®õ(+i.9µtm½!‡ìšx¼­€ëã˜- £l[B)´Ë¨¥n 0‡zÚ¦ÀzöÅ2LÉðh:Ý:2l}¬üËÊ 4ÈǤ= 6ß)ÇÉÈÃ~%°r‡RÈÛŸmïÎ×OX 5í6}]û¶¦ºvSF.¶J é6£Ü­cãv§éÈÿ® º}5n=:*ÌkÀÎ"sw ø|› ›¸£&ìΰév9µÂíë¶Ì«ÿï›óÏàR2º à·[":Ø£¯êpMWµm(ÉùÎ9^­g©vüç’°ë?Ëláá“ã6*Çr^ºØ"¯QذkÖ{Œ•Âý…ê> ¶X`=÷µ4ˆSŽO[Ê{¹ÖŸýÄ£¥@WFH ]° íq|ªGOCºØìÝa÷Þ‚ Éª!‰“ü燑®µ)ržm +v #”}5›i§·Ú›ùuc 0У!•XÅÔ"CcömMUâ¥…Ž¬G.%*É.…§îÈèÝéªVÓ"u”ég•¡aK5£v >m[ŠNX!f¡QÛJBÅî,§f¥VdÖ «»é‰~æIdá¯YÇ&Å¥î(ˆY*vc¬èÃtkâƒMQQØþ"“ãøm[ɨØ1Uµ¸§ëº·ÔŒUŠKÙž¬øfŸ,û´9RøÖ"‚Dü½ÊoµË˜Ð¹NzöZ5gO]Û|`dS|}íˆàÍ~ø—Åž’— +~úec}Ésó(%Ù2Œ Û¡#×*>l ”¼wN""øe$ý³ÄæÌð«=Z:ì'°v­q¬Â§;ø —Š\°6†ˆZé+ ý5+löjíR.Â1IÊØì­xçCE¨Ø»„‡P4cCÚ1É××{ ‘?õ<¶[Á‚o‹E@¬XE˜L»œ v©¹ä i UIºÑT÷Ö*â0¶d\¤MM¶Éáv9"Ú"ª6|Û’bSWDäô™Ì«˜KÝ®ðÕiß’0!Û“„ë8`¹;çéæhÎ+» +›¦m-z3× ñªj[|Эäám2Z¡MAÎ5O"Bí2t‚¯?í*ð™¤>ßÈí´]‡»7[YÿsÅÚ3bóŒ¸Â}©l©»ôµCBGÎÔ Ø”LäÆ$³È®ò¶•B¶UÎDñY`âÐ}<º-CÅùúøzvÛ丗›éÕJ ÕÍ{Z`ÜJdâê@ÑCcá3Ë(&fßÀÀøzÁìé ù»:R‰ï:ŸE„OÛ3±É¿æ¸|³i‘!Sv—€ž;T¤òñ¼w–©Ò#¾hoŽˆÛ_dñÍjÁê81mwº²Ñ®a €s!øî»ØÓrˆwÔÈd¯™º£ÅeR®‹Ù¯ì¾ûDØd«gU S·è$› +ï5Jwg*€¸ëµ(¸$—†K90±È&RÙž¾Ø™r{ÿú¤’ñ`OK*w©8øõa|¼]êëuCÆxMˆóøûR?4p¦¼:YŸ€„nIñ9^çÖ ÝúÊj—¡qÌ;_Õå]ä7ì/¯3ü»†…]èG;Ä\_OÔÍqlô®–ÇØÑðè;z&Þk´.Uÿ\áÖ¹´ä§š\²;×bpšêû6d,È–ŒœÿÏ…ôß%î¿KTÊÿ-óšÿo™Sg‘Ò 5ÈÐë=аۿ”üꟀ~vOVnæâf|ºà!çìË+I?5lìà)<É&)újI{ô·‘öá­CCýZdWí)P«`‘`âjL’GÍtËÐYÃÈðÍa^éF/-Ë>JŒw‹H)¶tØf:È>¼CG™û‹_/wfܱŒírÖj?.Û9A+Ùœ ¤, Öû±aÛã¬|׳ԥ¤Ã¬r¶/÷ö ‡€®ÙÕ³¯HH5OâÖ&Pa–)2Ë¡ÇÀašƒbW ]Uõ–T| AÆ{¥["pàÆìûÆ4`KJ)0¶£ƒl2>eGW]ëÖÐ!N¯¾þ]tâl?" zc©‘·oªnõ«êœZB®]‹ø?Â&†:nqë´8Á(å—…\’ Cw§ëû]†ªºm@;Ù}=UD°Ë$4Ì©¥>”²6ˆ ¶Ns÷ µ€×ój…\·’…tˆ1)kýà¯N)µÐ2†ÀÅ_Xé¨ýÏbÍÐ?Âa@§¡€¸.}i0ÓYôÖc¢¡]óÂæu½Ìì¦@×D_:h¼S OÚ7a‹þ^¬lwëXTÀ‡0v¦ÅNM•Ð¥bBvÔ´Š] ¥t{°-ç`µÍåæ›a?UBžWJ/ÙR]c˜Øµö";‹Ž bêr?ô{.ì,;áåEÀ·¶)JþúôÛò@þ³…¼g3]÷¾ÿ×Ä㮊±yýÜØÛKeñ-U÷ïÏpØ@Þ;Y,ú0AÿqÞw?¦ ù÷ÍÏÚ± bæJŸN×dß6VeÞ2R¯™‰­%lÄte+$$7ôÙŸ½°Ø'6µd[ÊB»” 莒\°= [ìIj™( ðè臌°‹îR“ŠrtÂŽ +½«E»à°•Á¼OËÝÅŸÜr&Î¥mèÙRÐÝ‚NØWá2=rb‘CŽIs*q)[btÔÆ(*Dטwe¯i-‹[è*þâ–Sò-cˆ›ýeo¶½çÂ%î«É¥»ZŠO_³ö<ÆOÀ+øêžlM""~¿ xïÕ)|²±ˆµ Æ"¡¢6¦ˆy6@×îšXD§’T¸-Áf8åäRû)Ã6‰ø:Ú%¥–ùî õè<±¶Í3-¨²Jð‰.aµòI͈=ïE&ê*«vLrª)å6 ­lð2; +rWM‡oIÉf1*m[N.Ø7 +jþë«™;/hþ9Ëfx¤R—f—Û-ÿ`™Z'`A6:Æ9EÈØÇDÛ¥¤¬àÜìrB®y ³ÑukYĹ1b.óóÙ¹ntÆÏ…º‰½A“KM…ÚäèD‹˜àQ ßš€ø£lL`ÖÇð©›ä|30vccÞ;cUÖsäórsþkË,Ú6EÈZì…|µÉpù‡ ¼ºƒEÝcÄ8ÕÈ«¬0Ð"Éýr0ƒ)ük‘NÜV’r¦»J>úúG¸§+kvm° lý¹,hõše.5$j¥¿èµ©-ç©[Çdyô|Á¾‰EÝ3ÑHv r°@gþ\ c\´9ù1ßQüÊ<…Oħé[Xé6Ik³[Y[éÕr‰» +ržCA)ÚšÀÅ8&(¾ZHë*Ü>‚OÞÓ +WÛŠŸ›{‹ß.´ç=—ñ£/)¸‘gLU™¯×Fñ)º–òw -à·›c¤³ˆQ¶5É‚x|ûK'¬Üa3ÅUÉWz`I:€XÝ–ùpÐ<£ð… õÙLSñucéKfÖ‡«æNt¢¹‡¥åæÞT±R.(É ‚L€Ã2oÙ'Páærz;çyÈ›ëGYIŸo¸$l¬EB¯A£ÍeóÝ)÷M-±~Û“åÁKCe?”¤‡.)¦è/@÷ìhàñöÉ‚OæôgKQ74Âïg—Û²Ÿîˆ)EÖ)x¾ñÍw󡆅ÞWóhv 1ks¼1ÿÄJôZ_ÙqUö3|ÚÛ?q!×=€_B‡/·<_ïÌ~a.~»ÑŸõb¹7ùÙžW±£¤Á·'± îRbÁæ8,Ú3ƒ-Ù[ £½w94T¸¾£äíÒ "Ök`aa–²Á[ãèHë4p­¯4PÁOzd¬ÍxìSs€fÙÑWÖxL|ëùkƒˆÀ…¦‚³UIWœCàË@yØÆ`Ñç}ð³U•ºÔUòÝ2T²Øÿl¶+÷©]æë+UÝ}0-lÞõÕ¥š­¬ÝŸ¡ã|ý·¦ Á["xˆ] ùáQ¢âìn —´Âì“´¼½ÿõ®§V¸ä˜”AHÀr?"dºØANyµ6Bźµí65½ +Œ ð +.5²oÔíM×v¯£cVÇqÉNµ@àÐÕÔ¯Šhyšú²oÓõ¥Ÿm#ØèÕîâw[càO¢—ú+>Y'ÑI»& +ÎkBçyôˆd·ÚWsÌWãWþkwªÐi€þú®o+x¾9Lqh»’^á1°i •õÛ +T¼S‰HØžBÆ9äøl‘Ã]F„¹Õ4ôÁ|‹f±ªÇ3CÃm+ ›¨ˆµAxèj?,Ä.'åMw?Ûˆ NuǤSUWëT²n99׫e¢w”„t»¹Ô•ó\ù²ÜUún¡¹ä¥°Ùþ°ÑäCSÞ3sÉ'››ÒS“öšúü÷AdܽSM»CÁÅÚdL°à§õXÈJÙçõ¡ò».k[Ëg”¾«£¡ç8|à1æBâBké«™†œ{Óu¹OÍÃÌœùNJ”‚•wÓÒxü~l”¹þmµ«ü•±1箬2õê=ál+$ð·¥|¡uLˆïƒ|ÖÞß< qJñEN ÀbröbgéÛ¹º¼g»r2Ú×Ól©?뉊yFÁŒ=»Ð˜ýÔ6‰Ùø~_I*ØC†ë lôÃmc¸ø­|ÜÆ!fµñu­þÉâ»^׊úlªA|QsŸ™ªK>nŒs ~Îm1ì”–uÁ1^öy{´ôËÖHqÀ¡Ž‚ìg'ùcüψ9Ù!g[TümßPê5…Ít'<5µ„ù-tf?ÜáÒ×G1ñK=Àø5ºS[Ýâæj¹³ðÙ(5òLuợj~Âû!·ñ ö|Gîãõ‚{znúe=7邈üýt?êÙoúšÛ@Ã6Æhyk½ØÈ­!Bž]BG9¦pÉn <ê—‘ Ù7Ð^—¶oà²~Îø«¡”íê E{zb‰W‰O÷>Ë6Túi©.õæF{úÝ]2Î&b•-õ B6‡a¶ILŒu·1ˆ _ë}ÑUe>Yh+ýn•Ò!>\¤¤ Ú<³ØRúËpÙT›ÿR_ùÚ:”8Ý”õ`˜”yw¦™´§'ƒgš®/÷¤¿pÈ Ñc%æáÒ`¯œõžXQ“óDÌI}äÕ²9¿ª{÷ ôúüÛZì›yy¨¦cÜ2|””x[ÁÊúè塿Za_¦È)—ÇЉç%”¬jnú­¹†ì—ë]°„ÕQrVÚ—ÛG olô‘Q»zAÕj_Æ£ òütUÜ%óhÁÛÃyGÇfõ0’ß7B¿^ù¿ ~‡W/Ý.~7_•zMEŠ:-'…ý¹Ò˜~ï@FÈ6µCb²¾Þ=Æ/ +x è®[K…¬t½Òòc.6—¼úC +ºîÕ‘ncãðü0%kS„IÿkFPóÓÀeþe"WØ'˾oÿïw"@O9RIßœbä[EäÔ­d¥£äžŸxCň9?‚ørbúþø-äúæXiÒ¿Ü–afÔã¹ÎÜïû&:îÈ뛳oö3YþCÎ +9;Û’îïÑSa.- c•R Ö&ðqâÕ3 ¾šëÿLãò÷-±«B¦8¥ˆ ‡_¶¿T5°3Ç­ÛÒóß\¾èk‹•äÒbrögx»†µÊ¨. re˜ßÓó9¾~x^ f§çXFpÑ íÅþj~î½­ry¡«L¼1]xËW A‰¼¹h û4tÏÀamJ˜àåAb´ïÞo¯š‰80‘!¿æÉÈ_ âþ *w}´èy±£f Ç`)Æf_Ÿs.Â.⡼ +Ú.ÂĹpgŠuf +uj}‚<ÂJ(çf=qŒÐ ·Gp1óM…OWÚ‹^ÙÆ ÁºÚ´» +^ü•…¶âw‡úÊ*Ë<|º%çÉ\gáÛÙ¶¢·‹Í%·½µ«ÂfnN`c7‡ÉiMW·ÿ3'lq«©¥ÓmyçÛ2ï.4§ßô’¿m’˜¶1Œ‹ÕW?X¥ôÒÍaxÐJô³”Wp¿®8ìnÖ—?zàÑW-ýÄÄnÁ |ò»“JanоŠRblHök,{sŒs4|÷‡µ/ûµc—ux³ž¬kL}¶¯gQçøUN ÑÕ¤ü=_=g .c­¿øµWMGþ5/hÚ3²ˆ.5!Û­ba= +b®k +ºÞ]°Ôž÷ÒT“{o©0BË}ÃÏ ¼±Ôùn¥äXGypç8.Ö9‚Š[ïB$(+sž5}ù]ÎËþ¾#ár\J±ŠqÁP“öt­§4àç4 ±§gì +:XÞ”ÿu„ûħ¹ +Bîö2Ò2€ˆôU„¹Ð1]%/‚Âgã„økìÄ×LJÐaOÿgTºåøŒµÞ¢›ƒÅŸlÈ$žüï:é4Í"bq‘ú÷|ýøž†N° æ¼YíI¼eÊ{µ1”ÿfßȤ;Õ\²e‚’î”±  ­°qŠ—úéHWEèÉ bعåÖÌWûJbÁ_s\ÁáƒAK{xTÆûús†Šw«ÑÙ+ýÅ<:tú¶mhÈô-¡ô/@?mɸDUCÅË¥|‚sºaܻجûk‘ÅqO–¬µ¥ø-µ¦øÍµ¤ÜwªÁÉ;:|ÑêhÙW‡Wä]ªþ¹ò¿zÉ•¾Úà»F¡&z¼òhX¨Qjöýýig_ÇÆîk9x§˜QlC…nöä=±ö–¾ÝUÐÊ-ÃèÐ.Ä7Ç86Á%AÇšâ­}¬øƒMhX91ge’’¹1IËu©Y(» +—áÖÜÚÒ`ß¶kÇxÕФ èE’¸>ý™œŸ´§mÞ´é>€³Ö1H®*õ†’YË+x¢ïÁEÓ >þѸïgçóŸbÿ#œÑ +c¯ˆèág&Éag×»J~yü•ð§Qt–”µI8°!cGVjÏûh¨Oº½9€ û5]ÕthâómR@‹õ‚¿l¡œ"lŠ]èT :Þ<ÿþ¿:aøhß3 ‹Ýåo6ÇðIKCäd)7ßOJO½$£¥^Uròžõ`¢¯Œâ®-õ€ƒç;Ê¿(ù)×ÄÌäû#øÄ§Ë_~à—žŽØÕ1ÐÓ}¥ŸÕ )¯~Írx¿¸ÕVW6 +^o 0:|²,à盽£§£¶$ø4—ŠR¶oäWmOÂCÛóŸHéѧµ‚¸‹3Íùþ }؈ªò¸eßý[è,bo“’ +-£EïÔÂø[uÅïÏrRžRbý‡ÏrË8DC]ù·å¶â; +jù¾ž‰ùw‘#ø5Í$¹U„l‡¿£"æ:”lÂÆ(*Ö)¡”^ÒWÛÕ&*û4ßœû ¥$ä$.âÑ~Ò“c3ÂÄ©(Ë*Ê-ÃgxU”¢}-ëVcÓhÒ¦Ð\SåûFã×lM—[A©XíÉ|f—”Gîë©àXÀw*ìSÄÜÕ^È7Û$Ù÷LMÅ%Ý€±'†ú¢w+yOã…_åáÛ£e‘+yeÌ ³.qE¦ïwáµ¾ü—k½à`à_ß¡]©ìŸ…ÿõÍ©wÈ)åÚ†¼û[R:Ú>ݦۙkÑxyuŠ @<ç¾Ü.ýî–áòþß&…öË„Íw+¡q‹¬êÝåZÑþ, s0hQ +踗 +Ÿ¹p“C‚ÏÓWe>ÝsTÍeo-Äâ=­€eEG.µ¤ÝÚìÉ|h(x³ÐzÇ:ŒŒqë˜ÈUÀãl W|vN"cyÊt()EÀç(‘…ÿßo×*Ü pœKOE»ô7þðï…ª Ï»€Ï‰ ý_=*2îp¦¦kß(y³#'fm¡Â7záß–»0A¦6ôW1?ãÞlWYèú!aœšpvã{Þ?íþBâÇÆ9{{”X°#'úúÄ,#‚6¼tè¸T»””·5‘õ|¾=òŠ®6ôü$ýÛ)·›¾käüŽM]ìÞxÓ `™GÉFîi0©Ö±â7ëÅ/mã°ïæQlø$'×oŠŸ}mœZ².áÂ4õ¥OûQa4~=V_tŒšàDÎŽ»³`¾øÓåŠÈçV»±ñN1½È+ŧ:ÆËf[’ŸL±~ܦÝÑ€ÿ»RÙêë_±#G%­õ¿^ï/}çQa³ç˜ô½yÓçm2t Y ;: ·ÀW{+>¬ôB~lObRìR|ÚÚ6JS[ôdsn{»k U¨ï*kÃ/Z2žôâÂo÷ Bo\ xLœ¡ õÿc¹=ÿë¿+LΞ[°%* 2ç¾qH  £@|=Í­Z€ o·' Ù5ŸfG„-t<žmÎ0IK¹Z™ùõt[EÐuKYäB_éWFÞ׫›¸"š +]é+ù<Û^ðxº-çÞ\gÆm»¤øÓ¯Û£ç³7DÔ,—’>˜á×þ½È¯ójI¥¦ú̇*VÚÕ™†Ü[˜Øm ³ÄØ +ÿàVr)ÀšP—ÛsŸ5¼<ÕUöþ¤˜ü»š{Þ1ù¿uN³Y-ä¿:cîǤÿ2Õ´ý21É?èœ,Å<šõÎÔã7Ýsõ×|e£kºi|K!à[DäìÃiaÛžIúid`vUä"·¤"|½/ýåÖxaà_‹¼›VXk³‘^SeÕÞ“¼£Äg9onô!î +R_ÚÖðhk„D‡Š\âPÐ|Ïé­±´ÑSòf½3ëÁz[ê}Ç8"Éw GÝTøhmˆ’¹-aÁ7ÆÑÑ›ãè¨1D°Y ¶)Qq.¾£¯ïò›&¼¦úþƒÙºþÃY^å¯9.xåy€qzg-©Â§[Ô"»º’¹>Šöù“o³eÏçJkù©×[ó?™‡a1³ofZëýÂÒÕ^AéÚ«`u„»èÁåð·…Ü—^=±Àpàê$5w[B/r+L‡’ ÝœÄÆÙå¨X ;zBžE†ˆ6O “}½V]6Ö©d!Üj ¿5 „¯W×Á4 lÁÂ¦Û +-õ"ÌSŒŠµIvÙL+%l®1]‰z%#ç\› &^T3Ÿ*ržwà¢ÏJØ­£ä̹ö’wÆšä;Öâ¯ó­Yϧë“îš3ŸïOÓ}¬gQ™j»~›øŽy ¹ÒWúÖ&ñÝûÅ#šßÍ"bæà¿=*z…WÌ»'èeÖALœ˜w³ŸuÓ)g¢—ûщR~Ê ë*ÀCäî,‹v°Àbø·£¯ä¬“sJkk’QàÕ‹lRxìrOÑÛ^HàZoÅ{_í.s8b‚žð`už´<ˆÍc¤ûK™éwÍýpÏ2vON-ޑР+ýEÑó)ïÚ’ï쨄]—³Ú_°Ò—ùhu íÉLSÚãÍá‿p` Ÿ=&&³Ÿþ¾ Ÿüüp¾ndº²fWM«°C¿ÍÕeÜUó¢ýÖúó¾ý³Ìmœî„ˆeÁ]m÷þrí„]JÉ[î…}|êûå~TÌŽš +sϰé_½w=¹ts iÆDXƉɋ¾:K é~óM)wäì‹3 )wW» ïœ"l¶ !$ÞXí‡¹äøœÃi|éá,¡lwކõèx¯/Ø5U +÷ŒÂÚŸsõ£¾>x?g¹¼Ýi*®E&8 ¸l«–¥íCþè&$ÝÜ&gm¤ÔÔ« yoÖe½:&%†]Øì,|a'&úˆqÍÄôûݤðë«C°`—ŒƒÝQrð;Z|ή›»%|A72hsŠ µJ«y3}¤Ø…!|¬y +ŸáRya€'ü5O,û{ŽÃ=0 „À)€»kªíÜ3 «½F&ީĤ['‹,“%!6)Ë!f—¯“$ìÒ{ݨ̇íàèåá§[Á¡ꋃΠ᢮N 3î8Æ(é“UoQQ—–{ Ùvq%n}¹9ZöÙ)+ ´Š +^íèÉn-b‘Ð{óÕ½N¥Â¥'仵ÈT§c×ÐqÛJ*jÇÈfnˆ1qC¾ë£¸BS"Ã6Å.·MúƃNpNb,ð ÅnD€XûˆWøõÜJ/‰Ï4iGIwˆaq–ኯ–x  ³ßèk +îÍÕújÍ<Óñ’î.7gû[zÁÖ»Qa“üÄ»]˜¯¿/u•¸Ÿ³ÄŠ]#:ÀêX‡—é|†à ·†…ù9]Ûu`â±M\ÆžïXÓÄ û,*Z‰¾:JÍ2Û + šdç¼è‡Æœ“ѳ>+Yoæj-;\úÉ%Á$\jÂÅ\î%~=c—às÷µU—‚O´I}÷YB¿['1qk#Ȱ-1>ui¯j({¹1A)ÝÑ j=ZR‰S^öÝ&)²MAâ€ñböõl¢WÏgx |Ž[ËÂï›øÂ}—ïë[ïÑ„˜²Þƒ‹\ëÃüWæ?Î|p4öÙeP?*þîJ72~¦¡äå|s¡ÿ$=ö–”—út„—t«wÏÔŽK˜DÏò"hm¼6\öÑ©€Fÿ\$ ÿYçÔ.TuïÎ [zªïš0é`žÉ;\tîÍÕx¦…õnW¶”¤|`}?³“n÷`c®î)t¯¯w»‚á‘Ró6ûA3ÍÙw¦›Òo-÷–Z&©E£œ¬{²ª—к6Áøj‡—áPá3¶äø4EcÙqMá‡Y~÷î¿Î¦$fZÄøäm9|0Ïâü޵)›“¸øù.È7—ŽxKrÑ–“¼Ô 35äZê,^ªH°ŒW„­‹0 #œÌ‡}”øÇûn)Èy›“¤L«ŒRèÔ³ V ¶1EÍÛR0!úhàâ0°ƺ+ð·MJÉ1 ÂÖºÁ_–ÛÊ>.@c6§Xå¢jx8)+àÆbwá×í©âïÓmQ× MQ~ó}…ßTٺƜö)xâßËìÊÅqTœ¼©ø¥UL‡ÌÖöÌ’1{&pŠMšñz˜öú÷aü‡?Ö +C~-p*W†±qÓ=؈-%‡ös¶Iüïluç—¨„¿°….5,j¾³ømœ’å±K\rn¾~ì`¡ntß$¨µŽabç +ì9€|[hθ·Ü‘ýÈ×ÁÔ\â?ß„úäBWZPß4œô›SŒ˜ë-g¹Yþ§˜iOŽ5—8¹1ˆIÞ#ÄÛÄØD·–˜çT“Jö<ÁÞlugFØìÖ±0ÓlÆÖ$.Ù£b`ÿAý9Ë"Û4\º˜]jçW,·3c'Y÷« +~œF§ßtŽò*6»à MY÷ôµ±—æš³î¯ æ:Á7ÁA{Ü6ŽO´‰(™N£Ì.EFÙİpËDy¢:öŽ\pys¨èóÏY*Ùª"•mKá‘Û’Šï$fW‡/ûÏ,üŸø—¯'³Ü–Pr|úÙ©âQv4Õµ6?Ý + èA'\h…D^Rð +µ#üj Â/ÏÖ£cÖ†ˆéómo—:¡Ÿ;ÑW'èñ·íS„œ­).j¦‹ßOº$«.Ü–òˆv­b×@(ö1ùn=ˆKt‚]K+·ëpÏtUÓî ¯jÐË{³ cSM‹ÇTÕ°¬ÿ\wÙkSkáscKÉ›…Lz#<躈øÐ>Êȶô uüØKrfØ…éú´§‹=彄˜K“¼ôW^ÀóY§Ðɳ…Ïg» Ÿ¯ûú[¨)Å€Ï`z Uí‡kµR×4‹l•3![’Z®[Ó&:œç×9µÔr`¬en`¼¾Û#à5|ªx¿«­ksÊ©¥[bLüò`y€¶>ûÞ|/<È*!íÍrª7¤˜ÜÙ~DŒSÏx„ íг0V9¥Ð +äÎî´ Îi¨nÜÖT 7¤´<§JÈÝÕ ë•Õº8JIšfe.Ò7Æ )¦¶Ò/äÔWÔ”~»æR%*eSYì+þhjμ¿9…K]ñ Ãô@_’¦+«¶e¸´m2Ñ,-_Ÿ,[èËý`“¢ÒwL•ܹ~f†¡÷c[Íeÿ³T/ö¨)>ÍTæ1ÒÑ{³ü:¡²vO_Éõ¨Ø(·‚ƒòÔ­V9,Ä–œØ–Šyn㢤û1mk alL¹«¯Îº7×F +o(‹:Û‰¹ f<£'Ý@Å\š Æ]žmÈ{jÃÅj*^͵£cœ*>Ù"¥CwtlÊîlmŸÓ(¬±((Æ/öCƒÖÇÐ1²ªä»Î)|ñŽ¡¦Ù÷ŒU„O0Ö>h+ÿñ[mÎÇ£bVÚ5rÖçSÄø'§ëòƒbl²]‚еKÐ æÑòàùŽô×á÷+RÊ×ÓKÍy¯×F I²ªÔ[:aƽÅö²¯€ÏõÕ5ÏügPq`Ää®Oä½v(Pé8ý×BÍÀæ¸ü©²ïŽÑü·;RH䮞Žò˜ižBÆónSr-“,”¦¾â“ 8üJ^à“Ó‚œ禫Šî¯µ—>7À#:ßÏtÁB.-µa#·F9KÝ¥ï'˜I7åU¹Oæzà_uÐ3=ä¬mUµÀª ænM¡“ +zWϦÎpù{ÓÜŽsªqÅv%6Ý¡¢€÷æk‡vfõ=¾4‹Y*øèVüp*P ºVxx<þžª¼1ÀÊ™k¿F…]l-ùzQ„õÓr"®oööj)(iKögvÖ‡s–F™W]SíÔ°»Ï»T„\—›»·D§ØMÄ’*º‹št¿úÝïp±fÐ;Û8åbÙ×Ï{¥»àyd—áRm„Wå½nG…_šï* ´MÑ6À5["BºØ, +zé\/:x}Ÿíâ~~ŒT²ØLqª+Y.-éÒ3Ð;3üj‡à65 ±­bÁìÚ–‘õ ie˜”éÐp¨j¾¼ªüu'<ñz/*úÖBsÞC)/ñ¡®17xu‘Öƒ½j™‚¤î©¨]à»gè4ï,…âV£‹,#>Å'íN ›v ³„Šñ]Ç´i˜H³Œœ»!£—mšÃmÖüÝ´*¢æ¯Œ²¼³Ír÷t›Ö3×¢ý_m“°Ö¥e@¿¸Aó¶ÐÔ ¾ï“*Vtè”ÙxdPIÊ|¹hx~èÂ/«@ÑrLüåAræ `ÏCÔòOA­zNAÍŸT">ŽL>N€Ã6~$Á÷^qcJM­ÅÏÔŒŒ§ßgEò5‡¸jaC·lÊ–Y¹¡$®ª@™›fd‰†Qp«—þdn°¹pA‹ÉŸêÇÄÌȱ CÈ”‰X0/GõcËYµãÊÌmõ¯uœÒw›.QëΨ°õ¨¶ˆ“UëNrÅ6àoûS\Á¶O íG%¹%ðën>kÖ@­ÐS*oŠkÿè¬ùpf±¯âþŽœ²ï‚—öbÒ.Ç?¹ò“¾¥$ùó‹r8Æ¥‡,¨ü çVÌUïWô5ñ{üÐÏåL* Ù&Zî…q)ôæW 8˜tïÏpD[Gœäâ ›Þ"f,ééu›nic*ûõ¯».uÝH-;êßR@£æ% &Ä•7GÅàGýÔŠËuñÄç<iÉ~Þ5;3ûüLoíÃEEͳ-SÃÇ/zó®‡Gð( iM7NÍtÔçîzc[Þ>Ûa ]ùuŠÃÿ`’¸cÁH)”óë_±Êc/Lt6åì;ÈUCèä’:Õxëok~j¥Ô^s2ê® ‹¯|-…ׂð‡Yyí«ÙþÊ7+D:ÀÈ1A]süô`}¸_q¢ƒVèâ"‚JðÇ/>hÇAnÜ0¾Rßý † ž¾blŒáó¿Ž·ôùËÁzàÆ–®é@'»K8ØéWæåÐOSJL¡‚šóÐÙRô,¤Gæ©IyÏÔ„ü»€~JÝw0¡€Æ/™U bõ¨Ä¯“4Â× û5@hþ<Ž«Ýàë·4ÌÚQ]øöcŽ)œQAcgØô]'_ðï$ƒTÕEYˆ —Fù¹wd ˆ};¡tßEª±ò*îŽKÐ6-äòM+*oª¿öõXgÕ½9eí³½æ Vm8©Øí.}ÑHªÞôpÛ£\ƺð òy†<§BCRñQß#@¿ÔÎißWàS&$Ío5èÔs½àµ7D\T‡ßèhŒû­U;©Á·<ÄÆS¼6L‡lz˜è}±aó¨¯_¹éÀM*£¼•÷Çà £\AÈC‡ÜØú­q6sÅM…œÔ†/¹è¾5GSö¬ºäɶ‹ŸRà‘ÿL³Eÿ]æJöô×irÛË]´ð’¶9ÕÙY“¹j>Ò´â5#³zYOì=Örÿè'ÿÒÛwRH>¿¡¡TÏb³”ÌßWÍq;&Lƶ•¶stnÐ ËXÖcsüý¸x%¡äÁú•p0%qn8ì= ¯ž À÷|lÒ–›KZ± !*®­&ýê\'¦öÐJ­Ÿ•Tß[ì‡FLv‚»¨Åç'y%WÖTˆ„95>“Y÷é|8ñúŽ“>ê+±i‡%ÍÈ*žQÓ/É ©NöU? j`q +vMlaôóRò£ÿ.¶™F„‚= ~z0哵¯œ­9—UUá».ZS7<þÑ–òô¢þï€fÿì&”ï;±ÛtNpúq¢ôÌÑÚø¨ ™wu›{qKÇlZìÖ¥ 1ÕƒŠ^èç s«ïµÕÅœ–¼:¾®†§Ž¶–?ñ‰Šnn›`)»Ãøš];6ÿ‹‡Pq4ÿ¸¾_Wù£qù“-óÑ= QϪ73X÷zïè~—Uð%€©ýß*õh¾ö¶…øì’(vì"ƆRyT÷1ÓU|Û'ʽ>"ȹ±ëÀVÚ»ª>6¤<&¤lˆþâ‚åÕ5ümyw°§¦{¡Q=èÌGø¼—¿›˜ù·}èç1|Ãg¶x\³ Ä¡u.ÕŠ+ZsqpKjõŽ‹=ð² ß'è¸ÿ̲x?ƨ°/€ï/*ËŸyÚònŒt5½W’ +ïË I¿¶—8!.{º³:æÏiImôƒ +YT# +‡ùÅmÌ‚K+Fr)ÇR6͈ü ²xÃN¨âñË4•t8IÁîN0©!76ÜSù|JÝ”ðu¾Ý~8-ìÙô²pë#<úv€q4óü}‚ˆ ™šs$¸ ^êÿ® G3§·ìðÔ]CÄ‚²æùUþ¿!^ÿ®“‡ß´pÀ.xEK+ZìÃÄyÙ%×t¨äÓNZêïëÊê7Ëý¤ÉŽÚç£ü²+[V|Ñ´¢&j²·ôátOå£Éž¢»KMo·õ´Š÷cšÆØ Ð°[~:ò Àaý;Øâd«ìÐ'àoÙõ»VzÍg«ù³‡›ïÃÄÏu`cWì²ñVÐs=&õw·àž[PrßÁ.¼â”ÿ=݇MÝæa7Ý4PÐŒL +ÉÀ5¬›‰G5$ùsJlކ]õ„Tüá/_{eæ—)±vÍF¬˜S@>,k ‰û.Bùç\å¡U²a—ú;^,+PÅ_|mRÀ—8_GÉ ÝaBÙ’ù ˆOfðñÖ6dD'¼ì¢ž\wó¨žÙ×R~{{º§éíϽИ_´ø¼ €ú{¢½á­§·)¦4òöϨOwOÚѯ`+\‚Ü˃„÷¿ú$I—üÝiæÕûÃ4ÈÁhK›»7?ˆÊúØËÿ¢sÿoˆÎù? Ø TÙž–2Þ]ûœ\ðáw|vÄéeòm”‰ÿâ öÌØâe8ÑÌÌ{bã¥,åü®š±f&ÕµÔ>\D¦n›HÅ[tÖ¶ ¿m#6ï:ˆ vvúùEYCü·6ÐuÛVXæ¦ S¼ã!þ™öì{èÐC?“¸¤§6 ¢väÚC¾¬‚}”Ü´s2ÿê|º G%ý½¨ÇZ«]üñÏ„GWO* Åï~v¹a‡Ä¯Û ñkpì® ¬-hä’¾j%•~ ÷œLÜòPsòî0®r]ág_—CÞýæi­xҊ̾›uÿ)"ëê "ýŒ¼1æ„“˜|ÆI´0ôï] ¸ mõ±W‡9E-¼òð¸…5Ä?<³l"@gµˆø%}côžÚÐSƒàÈ}Sìà·ÿOˆ%^„'oÙ˜/­‡Smêo‹bÛ%^ß÷iê+£V†êÃÈGO{Å“9ɤmÛ ©Á¡º· êÚGgOýŸWÂ;)º¶¬F$­™q9«:L~PÍÙ03§¨xgKÝÃY.]O̾,®xwr˜‘{}TTõlQH¾WUÐD(—6Å «?žmŒ»{¼þéö¦ ž¿¨©|µbgìz)ȃÍÚçu|çˆÎÀþw™BŸUTüÀäý˜ér}›áwžfq¦©¸Ãqlå–µéÓî0ºtÛ‰kœP4¦¬Ypu›@,r3ó¯öÕEžl/qÌ„KøsÍ„/v +Jo âOsÊ^W“ó/Ò +ßžVB3.û¹ §&löjæ³m€v–V<“bcÿàT½þi—~qYÕüq^VóÜÅ+¸ç> Ê‹Ã÷‡aù_Á×Iñà#½kä²5­z{˜‹Ûóð)RɪR£ã§¾ +t4=íhJù]øþg?¿é­›ÕðÐF)¸àæäÝð·ä=ppbo(‘¶æÝÝ6Óë׌tpP ;ê¹ kx¿(+±6Tþ|±?ÿź¦&zÇÌÜsQÝ<ʺ _°mD¤~ua«¬-;´`ÃŒÊú:BiÚ´á +gM °fóæ°ˆÔ’ ¦z_ØÙHégvº¶a„ÅŒ™a¤—]õ¶4½\Ñ0Ê&Úk©Q çåá'%uïÎN¶ÕÜ›íF}\Vrg”´ +9>óÂd7!suˆ[¿¢B&l‰ë\Ñ2`!;±Äh/$vÛMíû©°ÃqÐÔàÃQ\åÁ(¾:Ð[ÿÒ)ªz°8„*ø>'T¬Û%Kªæ˜"av•ìàT>RÂS/ø%·¬ÄŠlîßõI/ηBŠVÌä +?õ¼•wÃÎK +Ÿ’æD}ö2±ŸGü•a2SqIEÉxûï ›{èò§ã¨Î½þÕ¤¤ä¦‹“vÁÅɸ³d$# +Þÿ…ÎŽ¹½íâ¶íyþÖü;ZLÌ9NÑ“ŸÄeOÏtäß=pã«CzCnäýSìÚØ§Ÿ=Dìæ9m_ljÐàPÅÓ9Yá­M{SÂ÷I¾xÝACêù÷Ýü‚ûßì£ÚaÐŽ‹X±¢Ag„Ô°O³}ÕæjŸ/h™Ä‚¨3ˆôg§F%UŸ¶xº¨%Mö”¿ó´–<胧þÆ,xõ“’xyÍдaC¤ Q{n ·Údߦ;Àš)¿LÒ©@žøœòm]÷ϼH²ÉÃ…1Ÿ§©„/³œ–oÓ4âÁ¦èÇ ö5€„lÐìU¹nY‡Ï[hþàäæÝu°ÓþÞ2‚>Í(1‰v endstream endobj 7 0 obj [6 0 R] endobj 33 0 obj <> endobj xref 0 34 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000070079 00000 n +0000000000 00000 f +0000072923 00000 n +0000072737 00000 n +0000820282 00000 n +0000070130 00000 n +0000070532 00000 n +0000092210 00000 n +0000092097 00000 n +0000071582 00000 n +0000072176 00000 n +0000072224 00000 n +0000072807 00000 n +0000072838 00000 n +0000073359 00000 n +0000073616 00000 n +0000092284 00000 n +0000092682 00000 n +0000093955 00000 n +0000110553 00000 n +0000176141 00000 n +0000241729 00000 n +0000295578 00000 n +0000361166 00000 n +0000426754 00000 n +0000492342 00000 n +0000557930 00000 n +0000623518 00000 n +0000689106 00000 n +0000754694 00000 n +0000820305 00000 n +trailer <]>> startxref 820501 %%EOF \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hit-serialize.pdf b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hit-serialize.pdf new file mode 100644 index 0000000..0025ae6 Binary files /dev/null and b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hit-serialize.pdf differ diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmalign-globins.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmalign-globins.out new file mode 100644 index 0000000..76cf476 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmalign-globins.out @@ -0,0 +1,14 @@ +# STOCKHOLM 1.0 + +MYG_ESCGI .-VLSDAEWQLVLNIWAKVEADVAGHGQDILIRLFKGHPETLEKFDKFKHLKTEAEMKASE ... +#=GR MYG_ESCGI PP ..69********************************************************* ... +MYG_HORSE g--LSDGEWQQVLNVWGKVEADIAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASE ... +#=GR MYG_HORSE PP 8..89******************************************************** ... +MYG_PROGU g--LSDGEWQLVLNVWGKVEGDLSGHGQEVLIRLFKGHPETLEKFDKFKHLKAEDEMRASE ... +#=GR MYG_PROGU PP 8..89******************************************************** ... +MYG_SAISC g--LSDGEWQLVLNIWGKVEADIPSHGQEVLISLFKGHPETLEKFDKFKHLKSEDEMKASE ... +#=GR MYG_SAISC PP 8..89******************************************************** ... +MYG_LYCPI g--LSDGEWQIVLNIWGKVETDLAGHGQEVLIRLFKNHPETLDKFDKFKHLKTEDEMKGSE ... +#=GR MYG_LYCPI PP 8..89******************************************************** ... +MYG_MOUSE g--LSDGEWQLVLNVWGKVEADLAGHGQEVLIGLFKTHPETLDKFDKFKNLKSEEDMKGSE ... +... diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmalign-globins.out2 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmalign-globins.out2 new file mode 100644 index 0000000..c6c34d3 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmalign-globins.out2 @@ -0,0 +1,7 @@ +... +HBBL_RANCA v-HWTAEEKAVINSVWQKV--DVEQDGHEALTRLFIVYPWTQRYFSTFGDLSSPAAIAGNP ... +#=GR HBBL_RANCA PP 6.6799*************..**************************************** ... +HBB2_TRICR .VHLTAEDRKEIAAILGKV--NVDSLGGQCLARLIVVNPWSRRYFHDFGDLSSCDAICRNP ... +#=GR HBB2_TRICR PP .69****************..**************************************** ... +#=GC PP_cons .679********************************************************* ... +#=GC RF .xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ... diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-globins.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-globins.out new file mode 100644 index 0000000..0016807 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-globins.out @@ -0,0 +1,14 @@ +# hmmbuild :: profile HMM construction from multiple sequence alignments +# HMMER 3.3.2 (Nov 2020); http://hmmer.org/ +# Copyright (C) 2020 Howard Hughes Medical Institute. +# Freely distributed under the BSD open source license. +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# input alignment file: globins4.sto +# output HMM file: globins4.hmm +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# idx name nseq alen mlen eff_nseq re/pos description +#---- -------------------- ----- ----- ----- -------- ------ ----------- +1 globins4 4 171 149 0.96 0.589 + +# CPU time: 0.05u 0.00s 00:00:00.05 Elapsed: 00:00:00.05 diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-globins.out2 b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-globins.out2 new file mode 100644 index 0000000..710896c --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-globins.out2 @@ -0,0 +1,29 @@ +HMMER3/f [3.3.2 | Nov 2020] +NAME globins4 +LENG 149 +ALPH amino +RF no +MM no +CONS yes +CS no +MAP yes +DATE Thu Nov 26 16:07:10 2020 +NSEQ 4 +EFFN 0.964844 +CKSUM 2027839109 +STATS LOCAL MSV -9.8664 0.70955 +STATS LOCAL VITERBI -10.7223 0.70955 +STATS LOCAL FORWARD -4.1641 0.70955 +HMM A C D E F G H ... W Y + m->m m->i m->d i->m i->i d->m d->d + COMPO 2.36800 4.52198 2.96929 2.70577 3.20715 3.01836 3.40293 ... 4.55599 3.63079 + 2.68638 4.42245 2.77499 2.73143 3.46374 2.40505 3.72514 ... 4.58497 3.61523 + 0.55970 1.87270 1.29132 1.73023 0.19509 0.00000 * + 1 1.75819 4.17850 3.77264 3.37715 3.71018 3.31297 4.28273 ... 5.32308 4.09587 9 v - - - + 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 ... 4.58477 3.61503 + 0.03182 3.85936 4.58171 0.61958 0.77255 0.34183 1.23951 +... + 149 2.93078 5.12630 3.29219 2.66308 4.49202 3.60568 2.46960 ... 5.42994 4.19803 165 k - - - + 2.68634 4.42241 2.77535 2.73098 3.46370 2.40469 3.72510 ... 4.58493 3.61420 + 0.21295 1.65128 * 1.49930 0.25268 0.00000 * +// diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-made1.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-made1.out new file mode 100644 index 0000000..7a5c329 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-made1.out @@ -0,0 +1,14 @@ +# hmmbuild :: profile HMM construction from multiple sequence alignments +# HMMER 3.3.2 (Nov 2020); http://hmmer.org/ +# Copyright (C) 2020 Howard Hughes Medical Institute. +# Freely distributed under the BSD open source license. +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# input alignment file: MADE1.sto +# output HMM file: MADE1.hmm +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +# idx name nseq alen mlen W eff_nseq re/pos description +#---- -------------------- ----- ----- ----- ----- -------- ------ ----------- +1 MADE1 100 304 80 278 4.23 0.708 MADE1 (MAriner Derived Element 1), a TcMar-Mariner ... + +# CPU time: 0.01u 0.00s 00:00:00.01 Elapsed: 00:00:00.01 diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-noargs.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-noargs.out new file mode 100644 index 0000000..70378a6 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmbuild-noargs.out @@ -0,0 +1,12 @@ +Incorrect number of command line arguments. +Usage: hmmbuild [-options] + +where basic options are: + -h : show brief help on version and usage + -n : name the HMM + -o : direct summary output to file , not stdout + -O : resave annotated, possibly modified MSA to file + +To see more help on other available options, do: + hmmbuild -h + diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmc2.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmc2.out new file mode 100644 index 0000000..6305f36 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmc2.out @@ -0,0 +1 @@ +Enter next sequence: diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmc2_2.out b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmc2_2.out new file mode 100644 index 0000000..ee2b558 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmc2_2.out @@ -0,0 +1,18 @@ +Sending data 46: +Internal pipeline statistics summary: +------------------------------------- +Query model(s): 1 (0 nodes) +Target sequences: 556825 (0 residues searched) +Passed MSV filter: 10903 (0.0195807); expected 11136.5 (0.02) +Passed bias filter: 8073 (0.0144983); expected 11136.5 (0.02) +Passed Vit filter: 220 (0.000395097); expected 556.8 (0.001) +Passed Fwd filter: 1 (1.7959e-06); expected 5.6 (1e-05) +Initial search space (Z): 556825 [actual number of targets] +Domain search space (domZ): 1 [number of targets reported over threshold] +# CPU time: 0.01u 0.00s 00:00:00.01 Elapsed: 00:00:00.54 +# Mc/sec: 0.00 +// +Total bytes received 968 + + +Enter next sequence: \ No newline at end of file diff --git a/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpgmd-search-stats-serialize.ai b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpgmd-search-stats-serialize.ai new file mode 100644 index 0000000..925fe83 --- /dev/null +++ b/bioinformaticsProject/hmmer/documentation/userguide/inclusions/hmmpgmd-search-stats-serialize.ai @@ -0,0 +1,3293 @@ +%PDF-1.5 %âãÏÓ +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + hmmpgmd-search-stats-serialize + + + 2019-04-15T16:09:44-04:00 + 2019-04-15T16:09:44-04:00 + 2019-04-15T16:09:44-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + + + + 256 + 144 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAkAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9AeVfKvlh/LGju+j2TO1 lbFmNtESSYlqSeOKpp/hPyr/ANWax/6Rof8AmnFXf4T8q/8AVmsf+kaH/mnFXf4T8q/9Wax/6Rof +acVd/hPyr/1ZrH/AKRof+acVYt5p1r8tPLOoCx1PRYPVa1e9BhsoJB6UQYvQD42IEZNApxVGDUP yeJRTP5fSRyyrE7WSvyQAupU0PJajkO3fFVDVNa/J3TdMn1GZtFlt7dY2dYFtJXPrisQVEqWMgBK +I3xVZNrP5YReZLfy8+k2/1+6uJbS3ZbGNo3lt4kllCsFJPATKGIGxr/ACsQqoRebfyObQxrUtxo dtZ+iZ3SdbVJ0VQvJWhp6nNS6jhx5VIFKkYqjdQ1X8orK3mmYaLOYAzzQW62ksqxxKHmf01+IrDE fUegqEFcVZD/AIT8q/8AVmsf+kaH/mnFXf4T8q/9Wax/6Rof+acVd/hPyr/1ZrH/AKRof+acVd/h Pyr/ANWax/6Rof8AmnFULqvlTysNLvCNHsQRBIQRbQ1rwP8Ak4qmuk/8cqy/4wRf8QGKorFXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FUq8p/8oro3/MDbf8mVxVNcVdirsVdirG/Mv5feW/Md99d1 NJ2m+qvZH0p5IlMMgYMKIRv+8O+KsaP5DeTP0jMQjfoW8huRf6UWlPrXN1JBJ9YMvqCnp/VUKrw2 YBq1GKo2L8kPy6htJ7WCxmhS5CiZ47m4RyFiMPHkHrx4NTh9npQbYqmrflz5YfXxrksMkl2tx9bi RpG9NJqJVggoD8cSv8Vfiqe+KpWfyZ8lGSOM2gbT0tru2aBmkaZhewLayA3DOX4C3jCKg6UDVriq 24/JD8vZWd1spI5JGuWkcSuzML5Sl2rFy1RMjurV7NtSi0VZ7irsVdirsVQurf8AHKvf+MEv/EDi rtJ/45Vl/wAYIv8AiAxVFYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqwzyv5A8iS+WdIkk8ua W8j2Vuzu1lblmYxKSSSm5OKpn/yrzyB/1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVd/wAq88gf 9SzpX/SDbf8ANGKu/wCVeeQP+pZ0r/pBtv8AmjFUn1/RPyv0N7VLzytp7tdi4MPpafat/vLbvcuD VVoTHE3H3xVDwR/kXJZxXUlp5bthIvIxXEenxyRkRiV0kU/ZeNGq47YqhdRuvyTsNStbCTQdMme8 uLW0t54NOt5YXmvV9SFFdUPImPi+1fhYEVFaKtpf/wDOP/1a5nuIPLll9TluYLqG7hsoJo3s5zbz BonAcfvF223qtOoxVESJ+Rws/rMNh5fuWaJZ4bSKCxNxKJIvWiWOJgrF5E3RepxVO7PyP+W95aQX lr5d0mW2uY1mglFjb0ZJFDKwrH3BxVW/5V55A/6lnSv+kG2/5oxV3/KvPIH/AFLOlf8ASDbf80Yq 7/lXnkD/AKlnSv8ApBtv+aMVd/yrzyB/1LOlf9INt/zRiqXeY/IHkOPy9qkkflvS0kS0nZHWytwQ RExBBCYqivLXlXyu3lzSmbR7FmaztySbaEkkxL/k4qmX+E/Kv/Vmsf8ApGh/5pxV3+E/Kv8A1ZrH /pGh/wCacVd/hPyr/wBWax/6Rof+acVd/hPyr/1ZrH/pGh/5pxV3+E/Kv/Vmsf8ApGh/5pxVi9lr /wCT91d3NqY9JtZbad7Wl3FbQepLHL6DrF6lCxWWikUruvZlJVUtf8zflHoloLy4srG5szAtybqz tYLiIRSTehGeaDj8b8gu+/EjrQFVFHWfyfjvtQsbwaNp93pkwguoL5La1cFrdLoMqzBGKejJy5Up s3gcVVIdS/J6WPmkuhCrOoWQWkbExTG3aiycTT1V4V6E9MVTLRtJ8lavpsGo2mjWfoTg0V7WFXVk Yo6OOOzI6lW9xiqN/wAJ+Vf+rNY/9I0P/NOKu/wn5V/6s1j/ANI0P/NOKu/wn5V/6s1j/wBI0P8A zTirv8J+Vf8AqzWP/SND/wA04qlfmryr5YTyxrDpo9krrZXJVhbRAgiJqEHjiqaeU/8AlFdG/wCY G2/5Mriqa4q7FXYq7FUq8w+WNI1+GGLUUkP1d3eGSGWSF1MkTwyDnGVNHilZSPfxpirF5PyN/Ld5 7m4GnSRzXRuDI6XEy0+tikoQBuK16VArTatABiqa6p+W/lbVNXbVL6B5ZWeGUw82WIyQAKHZRTkW WOMNXb4F96qoK5/KTylNq0V8bccPrNxeXUbmR3lluGnfiJC/wQrLfTzemop6jBhTjiqEf8i/y65+ tDZSwXa0eK7SeQypKigLMC5arhl5VNamtagkFVnVjZW1jZW9jaoIrW1iSGCMdFjjUKqj5AYqrYq7 FXYq7FUt8z/8o1q3/MHcf8mmxV3lj/lGtJ/5g7f/AJNLiqZYq7FXYq7FXYqwnUvyk8q6hqov7iJn Mkkk140jyvPKzRyxxJ65k5JFF9akdUA+3xII4jFW5Pyg8kPZ21iLWSOxtoXt1to5WVWV5mm+Ij4v haaUKAQAHYU+zRVdq35T+U9QvPrQtljeW4t57oNzkBS3W3X0oQXCwiVbC3SXivxonEjeuKoXUvyN /LTUroXV3pZebm8hb1phUySSytX4v5rh6eG1N1UhVl+h6NaaNpUGm2pZooAxMjkF3eRjJJI5AA5O 7FjQdTiqOxV2KuxV2KpV5s/5RXWf+YG5/wCTLYqkPlfyB5El8s6RJJ5c0t5HsrdndrK3LMxiUkkl NycVTP8A5V55A/6lnSv+kG2/5oxV3/KvPIH/AFLOlf8ASDbf80Yq7/lXnkD/AKlnSv8ApBtv+aMV d/yrzyB/1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVYsr/lIbjVYH8pWsUmkSQQXAk0u3UPNdyi G2ijPHd5nZeKmhoyk0BGKqNlqn5E3SW0v6I0m3gu72XTYbi50+3giNzDEJihkkRVBZWAArXl8NOQ ICqLim/5x/lupLaJfK8ksUC3UvBLFkSF2VUdnA4KGMi8aneoxVG6Xo/5R6rqM1jp2iaNdPDEs4mh tLOWJ0Z2jbhIisCUeMq69V28Riqb/wDKvPIH/Us6V/0g23/NGKu/5V55A/6lnSv+kG2/5oxV3/Kv PIH/AFLOlf8ASDbf80Yq7/lXnkD/AKlnSv8ApBtv+aMVd/yrzyB/1LOlf9INt/zRiqXeY/IHkOPy 9qkkflvS0dLSdkdbK3BBETEEEJirvLnkDyHJ5e0uSTy3pbu9pAzu1lbkkmJSSSUxVMf+VeeQP+pZ 0r/pBtv+aMVd/wAq88gf9SzpX/SDbf8ANGKu/wCVeeQP+pZ0r/pBtv8AmjFXf8q88gf9SzpX/SDb f80YqlfmDy5+W2iW9vNP5TsLg3VwlpDFbafau5lkBK7Mq7fD44qgbdvyHlto7h7by5a+pQGG6hsr eZGPIcJIpVV0cGNhxI7HwxVZGPyem1qz0q28uabdfXo5ZbbUILC0ks2jgWsz+uoI4RmiM32Qx41r tiqX2+ufkZNFeyny9YxJp9tb3tyZNLgXjbXfpmGX7Gysk6P8VNie6OFVTRj+Qay28Qj8svJdyLDb rHHYyFnaP1VHwBqVSjVO248RiqpFa/ktcX9pZWWmaDfS3knoo1pb2U6pIYnmRZPTDFPUjhkKEih4 0rWlVU9/5V55A/6lnSv+kG2/5oxV3/KvPIH/AFLOlf8ASDbf80Yq7/lXnkD/AKlnSv8ApBtv+aMV d/yrzyB/1LOlf9INt/zRiqWeaPIHkSLyzq8kflzS0kSyuGR1srcMrCJiCCE2IxVPvKf/ACiujf8A MDbf8mVxVNcVdirsVdirsVYrD+W/l+C2vYIpbyl9cC9dpLmSbhdpcLdpOiyl19RZokYEg/ZA6bYq oxflL5FisIbFLBhbQT/WFQzTHk31f6rxkPOrp6AEfFu2KoNPyW8kTWKQ6naC8n9SaaaVGkhjaWec zsViDsqhCeEYqSqfDXFU18nflx5X8oPIdEheGNolgSJnLqiKxc8eW9XZviNd6D3qqyfFXYq7FXYq 7FUt8z/8o1q3/MHcf8mmxV3lj/lGtJ/5g7f/AJNLiqZYq7FXYq7FUu13QLHW7aG3vGlQW86XMEkE jQyJLFXiwZCD3xVjF3+S35e3JqbCSKnqlRFcTpxa5gFvcMKP9qdET1D1ZlDH4qkqorRfys8p6Lqb ajYC7SaQuZY3u55InEskszo0buQUaW5kcp9ksa0xVTsfyk8mWlvPCIJpXntlsnneZ/VECCEKqspX ieNpCCRueAJ3JJVUY/yd8ltHqMN5ZrPb6hLGzxIZYf3cNu1qqOyyF5GaKV1kYn467jbFV2hfk75H 0LWIdV0u2kguIpROV9VmR5VieFHYNX7CzPxA2FfYUVZtirsVdirsVSrzZ/yius/8wNz/AMmWxVIf K/kDyJL5Z0iSTy5pbyPZW7O7WVuWZjEpJJKbk4qhr/SvywsvMlh5el8o2bXuohmtpU0y3aEhFLOS /HYIAORpQVUdSMVa1i3/ACL0WO8fVLby3afUBW8jkhshJGeJcKYwvPkyiqqBU9hiqG0u4/IPUkrB b+XEk+sTWot5obGKYywXH1Zh6bAN8UlAu3xclp9oYqqwW/5QT6jPYR+XNPaaGO+mDjS4jHImmTJb 3npuI+LGKeURlftVrtShKqFj1P8A5x5bTLXUWTyzHBeLA0KPFY+rW5JWNTGAXDckYEU24tX7Joqm un6N+Ueo6rLptjomjXU8URmLw2lpJGQr+nIodFb44mK81NCOS+OKpt/yrzyB/wBSzpX/AEg23/NG KsA8nD8qodB0Kw1Ly3ZJOthpiXWpTafbm39e7tEkj9SYqSDJuOTCnLau4qqyFIvyIkkWKGLyxNPJ QRQxrp7yOWPFVRFBZizbADqdsVW6FZ/lNrGn6hqC+WNPsLPTJXgvZr/T7W3RHiUNJV2UrSOtHNfh NQdwcVQWq6r/AM496XLDDcweXWln9IhIbezl4pNNDAsshRSsac7lDyYj4at0Boqj5Lf8kvqk9za6 foGofV2ijeGygsriX1Lif6tCnFAfiknPprWnxbYqoBvyTEOmzzaLpVrBqt5daday3WnwW6/WbKSS KWJ/WjTg3qQMqht2PTFV0Ev5AXFzJbQL5Xllhiinl4JYMqxz/wB0xcDh8e1BWtCD3GKqt35W/LjU /J2o6jY+W9NjAtrxKNY26SRTW/qRSo1E2eOWNlND1GKo3y55A8hyeXtLkk8t6W7vaQM7tZW5JJiU kklMVTH/AJV55A/6lnSv+kG2/wCaMVd/yrzyB/1LOlf9INt/zRirv+VeeQP+pZ0r/pBtv+aMVd/y rzyB/wBSzpX/AEg23/NGKsSvb78kLHVrvSrzRNKt7yxvI7G8WWxtY0iaa1+uJM7uqr6Po7l67dD2 xVNIbH8jpwjQ2/liVZGMcZRNPYM4XmVWg3PE8qeGKpWupfkK1lHdrp2hmKW8+oRKLS0Ls/1wWPqK vGph9dgPU+zTfFXa/f8A5G6JaC8uNF0m5szAtybqzsbW4iEUk3oRnmi8fjfkF334kdaAqosf8qMS +1CwurHQLC80yZLe6gvbaztnDSQR3CFVlVGKtHMKNTrUdsVXwx/kTLHzS38tirOoWSKxjYmKY27U WRVNPVXhXoT0xVMtG8p/lpq+mwajaeWtL9CcGivYWyurIxR0ccNmR1Kt7jFUb/yrzyB/1LOlf9IN t/zRirv+VeeQP+pZ0r/pBtv+aMVd/wAq88gf9SzpX/SDbf8ANGKpZ5o8geRIvLOryR+XNLSRLK4Z HWytwysImIIITYjFUZ5V8yeXU8r6OrarZqy2VsGU3EQIIiWoI5YqgtTsPJl5rj6/D5hW01gwx26T x3ymNY4mLqvol/TK8jVlpRj1rQYqkF7+WX5Mand3WoazcWmoapfq631612sbSiQEOOMbqq12+zvs O22Ko6Dyj+WdtrVlqdvqNmGtLqW/f1boTyyTyNPIoMskrERLNeTTenSnqMG2piqY2ulfl7b6odST VoTKPr6xxfXUESJqkqXF4oRWUH1Z4xISd69+mKpLa+QPyot7syC+szbpax2sCC7pMDHJHKJHuDMX dk9CNYzsUUMNw2Kpr5V0D8sPKty02iXtpap6Jgig+tRskaMwZ+HJi1X4Rg1PRF71JVZP/ify1/1d rP8A6SIv+asVeeeV9A/LTVfJ+kyaxd29wb7R7GG/sZb2kDFLIQAtCJFXmqOwB7Hf7QBCqNbyL+Ur XJuX1FXmaX6w7NqbnlNz9QyH979oyfGffFVyeVfIkOjnQLfzEo8vyxiK602a8juFkQHlQPKzOlSa tx+0ftVxVCWX5ZfkhYcDYSW9o0fH03g1F42UpcQ3SnksoJIuLWOTevxDw2xVH6V5Y/LnTtM1Gwg1 Kwgjvrm2uY/q0sUQt/qHpfUViVnkA9A26Pvsz8mp8VMVVp/Lf5Yz6bFYS6hBLBBd3WoRCW/L/v75 pGuOf7wc0kadyyHbfFUrh/Lr8njYWdvfXFjczWvxeot0IkMhkll5CISsoC/WZEQGpVDxB2GKp7c3 nlLSfJepafaatbSD6vezO73EJkknuTJPNI3EgcpJZWY0HU7Yqj/LXmXy4vlzSlbVbMMLO3BBuIgQ REv+ViqZf4n8tf8AV2s/+kiL/mrFXf4n8tf9Xaz/AOkiL/mrFXf4n8tf9Xaz/wCkiL/mrFXf4n8t f9Xaz/6SIv8AmrFWI615S/KfWbi6udQu7aS5vLiS6kuBfcJFkmtEsZODLIOKtbxIpUbbA9RiqCm/ Lr8l7hZ47q4guYboSLdQS6k7RyrLMLlg6+rQ/vlRx4FVxVbeflv+TF60sl3dxTXExDS3L6kxlZlu TeA8zLUfv2Z9vH5UVREnkb8o3s7axF5bx2NtC9uttHeoqsrzNN8RDcvhaaUKAQAHYU+zRVvWPJ35 W6jLNIbywQ3csDXge4EimKAWymOFTKqw+oun26uVG6oKjviqG1L8tPyQ1K6F1dtaPNzeQt9eIqZJ JZWr+8/muHp4bU3VSFWXaHfeUNG0qDTbXV7VooAxMj3MJd3kYySSOQQOTuxY0HU4qj/8T+Wv+rtZ /wDSRF/zVirv8T+Wv+rtZ/8ASRF/zVirv8T+Wv8Aq7Wf/SRF/wA1YqlXmrzJ5dfyvrCrqtmzNZXI VRcREkmJqADlirvKvlvy6/lfR2bSrNmaytizG3iJJMS1JPHFU1/wx5a/6tNn/wBI8X/NOKu/wx5a /wCrTZ/9I8X/ADTirv8ADHlr/q02f/SPF/zTirv8MeWv+rTZ/wDSPF/zTirFdZ8x/ljo2r3Gk3+n 20V/bfU2aI2sIDJfzrawujMApUTOqvv8NanbfFUc2p/lIsLTNd6AIUVXaUyWQUK9eLFq0o3E0OKo XV/MH5WaZaR3bQafd28iTyiWzht50Edq0cczs6/AqpJPGjEnYsK0FSFVtr5j/KOWdbaRdMsZWtbS +ijvYYLQvBfD9wUWYIx3opFNmIU74qqWnmL8mru3a5t77QXt0lkg9ctaLG0kKq0gRmoH4q6klajf FU00Wz8maxaPc2el2hSKaW3kVreHkskLlGGwIINOSkGhUgjY4qmH+GPLX/Vps/8ApHi/5pxV3+GP LX/Vps/+keL/AJpxV3+GPLX/AFabP/pHi/5pxV3+GPLX/Vps/wDpHi/5pxVLfMvlry4vlzVWXSrM MLO4IIt4gQRE3+TirvLXlry43lzSmbSrMsbO3JJt4iSTEv8Ak4qmX+GPLX/Vps/+keL/AJpxV3+G PLX/AFabP/pHi/5pxV3+GPLX/Vps/wDpHi/5pxVJ/MEnkHy++mrqunWcCardCwtZjbRGP12ieVVd uPwhlib4jt40xVQtdS/LKXRdO1i5h0zTbPVV5WP19La2aSvQKHpU03oMVbutW/KS1/vp9EDCRISi /VXYPJMluoKpyYfvZVUkii13piqJvJfyxsb/APR16+i2uofB/ocxtI5v3hon7tqN8RO22+KqI1H8 qGWVo59Dl9GN5pFiNrIwSNZHduKcmNFgkPT9lvA4qk0XnX8qGjvpJ9PgtF0ySwi1FriyjjWBtTdY 4PVanFByccixoBv9nfFUzOufk/60UK3ehPJKzIojNq4BRZHbmVqEAFvJu1B8JHXFVa1vfy0vNStt PsYdLvZbsOYpLVLaeMMiCUIzR8uLPES6V6qpxVO/8MeWv+rTZ/8ASPF/zTirv8MeWv8Aq02f/SPF /wA04q7/AAx5a/6tNn/0jxf804qlXmry35dTyvrDLpVmrLZXJVhbxAgiJqEHjirvKvmTy6nlfR1b VbNWWytgym4iBBES1BHLFU1/xP5a/wCrtZ/9JEX/ADVirv8AE/lr/q7Wf/SRF/zVirv8T+Wv+rtZ /wDSRF/zVirv8T+Wv+rtZ/8ASRF/zVirFfMXln8qfMc91PrF1a3Ut21pIzfXuBR7EuYGiKSL6ZHq NXj174qxy/8Ayj/Jz9AappuiX1ppF3qMU6LfR3Zf05bmCS3kkMSzRhwY5mBjqE8AMVTa18i/lNba VZabBfW0NvZ+oR6d6oLGWSGZqszswHrWkMnXqgrWrVVdq3kn8rb2xe2tr6ytHayj02OT616ixW8a tEDEhlVVmWKV1SXqpNd8VUtV/Lb8kNUkZ7s2ZZmDALe0VacSFVTIQqApXiBTc7b4qyjy5J5K8v6b 9QsNWtfSMkkzNJdRO5aRq7kt0UUVfYDFU0/xP5a/6u1n/wBJEX/NWKu/xP5a/wCrtZ/9JEX/ADVi rv8AE/lr/q7Wf/SRF/zVirv8T+Wv+rtZ/wDSRF/zViqW+ZfMvlxvLmqquq2ZY2dwABcREkmJv8rF XeWvMvlxfLmlK2q2YYWduCDcRAgiJf8AKxVMv8T+Wv8Aq7Wf/SRF/wA1Yq7/ABP5a/6u1n/0kRf8 1Yq7/E/lr/q7Wf8A0kRf81YqlWunyFrpsxqmoWdxHYyyTQxG6jEZaW3ltXEiBqOrQ3Ei0bxxVjF1 5P8AJ06aNpzeZLVvLWjtIsejPLEwe2ktZLY25nWVJGRll+P1OfIfD3riqhb/AJWfkja30+oWk8EN /NJHcC5GosWSeGRJYpVJl6rJCje9N64qjrvyj+Xmp3smo65rqajqMhTlcfXUt1pFHJHGBHA6IOKz P26nFVXRPJv5O6LDJFYPYoJrWWwmZ7wOXt5zV0blIR3O/Xc/zGqrrbyj+VkNvPG2owyz3RtWnvGv ws5ks50uopFdHXgfrEYkPGgr7bYqhLfyB+UYs7m0urjT5beeYyJDDcLBHFCLT6jFAirKTxSCvfdy X2JxVE+WvJf5S+WtUTUtGvLa3mQyOUN4jo0kgYeoQzH4lWWRVp+y5HQLxVZl/ify1/1drP8A6SIv +asVd/ify1/1drP/AKSIv+asVd/ify1/1drP/pIi/wCasVSrzV5k8uv5X1hV1WzZmsrkKouIiSTE 1AByxV3lXy35dfyvo7NpVmzNZWxZjbxEkmJaknjiqa/4Y8tf9Wmz/wCkeL/mnFXf4Y8tf9Wmz/6R 4v8AmnFXf4Y8tf8AVps/+keL/mnFUj8xXX5f+Xrixg1PTbWJtRMq2ri1iKGSJQ3ps1AFZ68UrsW+ GtSKqrobv8tGstJu7iLS7Ea3FHPpkN4ltBLMsoQqER6Fm/eoCBXcgYqpSav+UiSWkXr6I8t/IkVn HF9WlaVpZDEnFU5EgyKV5dK7YqpXWuflba6rd6TcwafDqNlcW9tNayQwJITdCIxyIrAFo/368nGw 3xVWudS/K6Kynu4V0m9EESzGG0W1nlZZJBFHwRK19SUhFPTltXFUttfOH5SzqkjW1nbQPqcui/WL m1ihiW8hge4aN5HUKtUjNKmvL4aV2xVGReYvyZlupLaK+0CSWKBbqXg1oyJC7KqOzj4FDGReNTvU YqjdOf8AL3UtRNjYWmn3b+ibiOaCK3lhdVkMUgSRAw5RPQOO3IYqm/8Ahjy1/wBWmz/6R4v+acVd /hjy1/1abP8A6R4v+acVd/hjy1/1abP/AKR4v+acVS3zL5a8uL5c1Vl0qzDCzuCCLeIEERN/k4q7 y15a8uN5c0pm0qzLGztySbeIkkxL/k4qmX+GPLX/AFabP/pHi/5pxV3+GPLX/Vps/wDpHi/5pxV3 +GPLX/Vps/8ApHi/5pxVCavpflLStKvNUutJtTbWEElzPwtomb04ULvxHEVPFemKpRpOr/lnqlvf XlvaWMenafDDcXGoTwQQ24jnjMgJdwOPAAhw4XidjiqsdT/KQQ+ubvQBCF5mX1LLjx5mPlyrSnMc fntiq5L38rTo1lrTNo8OlajGZrK8nW3hjlQRmZiplCfZjRmYdVANaUOKpfa+ZvypvNNW/srayuka a3tzDBaxySiS6gW5j+BV3H1d/VqtfhBpUimKqGn+c/yfvLbTbp49PsbXVoLu5sri9ggt4XSxlSGc CWQCMlWkB2Y1FT0GKpjHrX5QSXL2yXWhGWPhy3tQpMjyRqqufhZucLqVBqCN8VRejDyDrM11Fptj YXItfTLSxwwPHJHMvJJInQMrISrLWv2lYYqmv+GPLX/Vps/+keL/AJpxV3+GPLX/AFabP/pHi/5p xV3+GPLX/Vps/wDpHi/5pxVKvNXlvy6nlfWGXSrNWWyuSrC3iBBETUIPHFXeVfMnl1PK+jq2q2as tlbBlNxECCIlqCOWKpr/AIn8tf8AV2s/+kiL/mrFXf4n8tf9Xaz/AOkiL/mrFXf4n8tf9Xaz/wCk iL/mrFUn16L8vtekt21W/tLlbdJ4kiN2ixlblPTkDKrjl8I+E9VO43xVjk/lTyrc6jpH1vzRbT6F o1vNa22kGWKM+k/pCJPrEUsblY/QWvMNyp1HdVZp35cfk5pTQz6Td29le2icbK7W+5NEwn+shqNJ Rh6u/Fvh7UoTiqLvfKH5aapLNdazq8V9qFyyNdXa3wt+ZjMZWiQyIifDbxKeIFeA71xVDaX+XX5N 6Tb3UWmXVvavdRNCZxfK7pynW6DJ6juAVnjWRaigI2G7VVRZ8m/lEbFrI3Fo0D3LXbq199t2t5LQ o5EgLRm3uJIyh2KscVQafl7+Uc1ikOp3dleT+pNNNKl0IY2lnnM7FYhKyqEJ4RipKp8NcVTXyj5e /LLynKG0W/toY0gNvDC13G6xq7+pIV5NWshVOW/7I71JVZR/ify1/wBXaz/6SIv+asVd/ify1/1d rP8A6SIv+asVd/ify1/1drP/AKSIv+asVS3zL5l8uN5c1VV1WzLGzuAALiIkkxN/lYq7y15l8uL5 c0pW1WzDCztwQbiIEERL/lYqmX+J/LX/AFdrP/pIi/5qxV3+J/LX/V2s/wDpIi/5qxV3+J/LX/V2 s/8ApIi/5qxVCarqnlDVdLvNMvNVtGtL6GS2uFS6jRjHKpRwGVgQaHqMVYhr3lLyfc6JrumaD5jt ND/xFayWuqSB4LkSl4Pq/qMskinlwJrxZeR3Jrviqjefln+S1/efX7+4t7i+eNkuJzqDfvDI4klZ lMp3eRefs24od8VTa30PyIlhZ6PPrVtdeX9M9D9F6VLcREQG1K+l++5+s4UKV4uxUqSpBG2KqFt5 P/Kq10ltLttRhjtnuIbp634djJBAtpsXduPO2T0W40JX3ocVal8oflZ9StoLe7sRJYic2jT3QmiM lxLDcM9xF6qCcevaQyUY9UFKYqhD+W/5Ly2djb3U9rcPY2sNpHcNe8XZYQ/xnjIPjdpWZ26k4qnv lLTfy78qR3EWj6jaxRXBT4GuomCInIiNPi2T1JJHp2LGlBQBVkH+J/LX/V2s/wDpIi/5qxV3+J/L X/V2s/8ApIi/5qxV3+J/LX/V2s/+kiL/AJqxVKvNXmTy6/lfWFXVbNmayuQqi4iJJMTUAHLFXeVf Lfl1/K+js2lWbM1lbFmNvESSYlqSeOKpr/hjy1/1abP/AKR4v+acVd/hjy1/1abP/pHi/wCacVd/ hjy1/wBWmz/6R4v+acVS/UrfyFplxbW9/aafbz3gla1je3jrJ6CepKE+H4mVPi4jelfDFUTYaN5Q v7G3vrPTbKa0uo0mt5lt46PHIoZGFVGxBriq6bQfKUAQz6dYRCR1jj5wwrydtlVajdj2GKqaaV5M kv5dPTT7Br2GNZZoBbxFkRyQpb4dq0xVD3sPkCxkuorq10+KWxt1u7qMwRckgkZkR+IWp5NGygDc nbFUPY3X5Z380cNmmmTyy3MllEiQxVa4iiad4wOO5ESM/wAhXFU0/QPlL6wLb9HWH1kp6gg9GHnw B48uNK8amlcVWLpHk5tQfTxp1j9djiWdoDbxhvSdmUOKruOSEGnTv1GKoj/DHlr/AKtNn/0jxf8A NOKu/wAMeWv+rTZ/9I8X/NOKu/wx5a/6tNn/ANI8X/NOKpb5l8teXF8uaqy6VZhhZ3BBFvECCIm/ ycVd5a8teXG8uaUzaVZljZ25JNvESSYl/wAnFUy/wx5a/wCrTZ/9I8X/ADTirv8ADHlr/q02f/SP F/zTirv8MeWv+rTZ/wDSPF/zTirv8MeWv+rTZ/8ASPF/zTiqC1Sx8jaTDFPqVlp9pBNNHbRyywRK hlmbhGnLjQFmNBXviqX2Wofljei8NvDYFNPuFs7x2tVjRJ2kMQTk8aqSJFKGh2IIOKphe2XkSxso 766tNOis5mjWK4MMJRjKQE4kKag1rXpTfpiqG0qT8uNWa3TTYdNuXu4pp7dEgi5NHbSLFM3EqCPT kkVWr3OKpkugeU2ne3XTrBp4lV5YhDCXVXqELLxqA3E08aHFVO30jydcXF1bQ6dYvcWTrHcxfV4w yM6CRagr0ZWBBG33HFUR/hjy1/1abP8A6R4v+acVd/hjy1/1abP/AKR4v+acVd/hjy1/1abP/pHi /wCacVd/hjy1/wBWmz/6R4v+acVSrzV5b8up5X1hl0qzVlsrkqwt4gQRE1CDxxV3lXzJ5dTyvo6t qtmrLZWwZTcRAgiJagjliqa/4n8tf9Xaz/6SIv8AmrFXf4n8tf8AV2s/+kiL/mrFXf4n8tf9Xaz/ AOkiL/mrFWOebtN8j+aZbI6hrcCRWQn4RxXECkvMoCSBySyvCyh0K9+tcVYrqHlHTdS1Hy1bXuu6 QdC8uW0ltbTxTRrfgL6H1dgZFlj5/wCiqWdOFO3XZVCaX+UP5daVPY3tp5oW4vtKVf0eby4tpYhI l0bteakfZDsV+GjAE/FXFUfrX5d+Q/Mmo3Os675gt4taujGXudMuLe3KCGMxxqjtzkK8ljlIdiOa D9mqlVXt/wAv/wAvrEar+jfMEFv+kIoo4I2ltXSA21217bbjhLIsUr8FV32jCoKUxVRl/LT8tZtJ fTZvMSyQyak+rSE3NtVp5LWW0c9CFcpcM3qqBJ6gV+VQMVSq3/Jr8sZLM/WNatrK8uPUF2tjc24j MZuBLBBzZVkeK3jVYlBoDxDFeQxVk3kXyp5K8oahNdWvmSK7SSORY0uLmElXuHR525BhXmYIzSmx 5U2aiqs3/wAT+Wv+rtZ/9JEX/NWKu/xP5a/6u1n/ANJEX/NWKu/xP5a/6u1n/wBJEX/NWKpb5l8y +XG8uaqq6rZljZ3AAFxESSYm/wArFXeWvMvlxfLmlK2q2YYWduCDcRAgiJf8rFUy/wAT+Wv+rtZ/ 9JEX/NWKu/xP5a/6u1n/ANJEX/NWKu/xP5a/6u1n/wBJEX/NWKu/xP5a/wCrtZ/9JEX/ADViqS+b E8meZtNh06/1i0+qJdQXU0Qmt3WUW8gk9Jw5YcHpRsVYAPyZ/LEM1PNLMr3LXEhlnspZXje4e5kg kmkRpGRpJK1Jrt1O9VUfpf5beQ9Ls5oLLzSqzTXFtces1xbDh9Wiltz6aR8FRmguHQECi0U02PJV tvy1/LMadpFodYt7uLQxdm0tJrm2SCQ3c8Fy0Z4qzQx+paqpEVPgZ1IYOcVSz/lTP5aS6Pa2cnmb 6vcxQQJLPbXdupM0PrsZAxFSed0WXl04rt1qqzDyDonk3ybBcwWvmCC6jlWKKH1riKscMJd1jry+ Kkk8lD148Qa0qVWWf4n8tf8AV2s/+kiL/mrFXf4n8tf9Xaz/AOkiL/mrFXf4n8tf9Xaz/wCkiL/m rFXf4n8tf9Xaz/6SIv8AmrFUq81eZPLr+V9YVdVs2ZrK5CqLiIkkxNQAcsVd5V8t+XX8r6OzaVZs zWVsWY28RJJiWpJ44qmv+GPLX/Vps/8ApHi/5pxV3+GPLX/Vps/+keL/AJpxV3+GPLX/AFabP/pH i/5pxV3+GPLX/Vps/wDpHi/5pxViuteZPyw0bVrnSdQsLWK+tvqbPGbWEBkv51topFZgFKiZ1V9/ hrU7b4qi11r8nmVWW+8vFXKqrCWyIJevEDfq3E0+WKrLzXvydszGtzeaCjzTraxRhrRnaZ3WMIEW rVDSLy2+Ebmg3xVd+lvyrbUtO06AaVdXOqCZrUW6W0qlLZXaV2ZKhVX02FT3FMVSiHz3+UkiXLvp 8MCWkVpcztLYogWC/aJYJWPH4UZbiNqtSgJ7o4VVNH1/8nEurW1+u6C1xeOyW8aNaOWKw+u1eNeI EXxcmoN1/mWqqvb3/wCWV1qNpYWUel3st4xSJ7VLadFk9FrhI3MfLi0kMckiVFCqNiqef4Y8tf8A Vps/+keL/mnFXf4Y8tf9Wmz/AOkeL/mnFXf4Y8tf9Wmz/wCkeL/mnFUt8y+WvLi+XNVZdKswws7g gi3iBBETf5OKu8teWvLjeXNKZtKsyxs7ckm3iJJMS/5OKpl/hjy1/wBWmz/6R4v+acVd/hjy1/1a bP8A6R4v+acVd/hjy1/1abP/AKR4v+acVQmr6X5S0rSrzVLrSbU21hBJcz8LaJm9OFC78RxFTxXp irGLXzr+T09+LVk061ja2F3Fe3UVtb27xn0qgPJxIdWnVWVgCG264qjpNf8Ayij1eLSnl0YXMsM1 wGpa+kq25iEitJ9lXpOrBTvxqegxVemtflQ+sy6QDpAu4o7d2JW2EZN27pDGr/ZMjGI0TrSmKoGb zd+VCWFxfw2lpd2lrcXNtLLbWsUq1s7f6zcOpUUMaR9WHeg6nFVS281flFK9sk66bYG8sodRtTfR QWyyQTs6LwaUKrkGI14k7UPQ4qi4ta/KCUzhbrQgLZ/SlZjaqvL0VuPhZqBx6Ugaq1H3HFUfotv5 I1mK4ksNOspVtZjBKRBCRUxpNGysoZWSSGWORGB3VhiqY/4Y8tf9Wmz/AOkeL/mnFXf4Y8tf9Wmz /wCkeL/mnFXf4Y8tf9Wmz/6R4v8AmnFUq81eW/LqeV9YZdKs1ZbK5KsLeIEERNQg8cVd5V8yeXU8 r6OrarZqy2VsGU3EQIIiWoI5Yqmv+J/LX/V2s/8ApIi/5qxV3+J/LX/V2s/+kiL/AJqxV3+J/LX/ AFdrP/pIi/5qxV3+J/LX/V2s/wDpIi/5qxVjGueX/wArddvZ73VLu1uLmaSznEn10KY5dPZmt3i4 yDgVMjVp9rviqQyflt+VaXVi1jqVnbWMbf7lbRrn1TexLZSWSxPIZlKqUlPqCjBxsRvXFUwTyL+T yRCEXNuYFSKJIW1BmRUgkt5YVAMvSP6jAq/5K08cVVtH8o/lLo9zYT6fdW0J04MtvF9frEQySxnn EZCjnhcOKsK4qo2fkn8p7W3ki/SEMskkMVt9Ze+USrHA0DRBGV1oV+pwb9+AJqS1VVAfl/8AlHKl 5FeXFhLb3MkZjhhufq4SKCzewjRmSbm7fV55FZyfirv0GKozRfKP5VaLrMOrade2sNzEyycfrcRR pI4JLWOQgnqkNxKoptRz4LRVmH+J/LX/AFdrP/pIi/5qxV3+J/LX/V2s/wDpIi/5qxV3+J/LX/V2 s/8ApIi/5qxVLfMvmXy43lzVVXVbNmazuAqi4iJJMTbD4sVd5a8y+XF8uaUrarZqy2duGU3EQIIi XY/FiqZf4n8tf9Xaz/6SIv8AmrFXf4n8tf8AV2s/+kiL/mrFXf4n8tf9Xaz/AOkiL/mrFUJquqeU NV0u80y81W0a0voZLa4VLqNGMcqlHAZWBBoeoxVis3kT8nZdTTU/rFtHeKyu7x35QSMrQPVwJKEs 1nEWPcip3JxVDw/lx+TkNjZWMd+q2unRTQWMY1WT9zHcSRzTLGfVqvN4QTT5CgxVUj/L38mUlt5D PbyfVXWS3STUDIisryykhWkI+KS5ldvEsfaiqufJ35WDT/qCanGtuZ3uH5ah6jsZLZbV0MkkjPwM aJsD1UHFVmp+TfyvurAW1vf2dvIlo9jDI916iLHL6odzH6yK0nG7m4uehevYYqtvfIP5MXk5nmks /VMfo7Xo4hPq0NpQIZCg/c2sS7D9n3NVU+8rReQ/LNjJZaXqlqsMsiyNzuomb93DHbRLXl0jggjj Fd6LvU1OKpz/AIn8tf8AV2s/+kiL/mrFXf4n8tf9Xaz/AOkiL/mrFXf4n8tf9Xaz/wCkiL/mrFUq 81eZPLr+V9YVdVs2ZrK5CqLiIkkxNQAcsVd5V8t+XX8r6OzaVZszWVsWY28RJJiWpJ44qmv+GPLX /Vps/wDpHi/5pxV3+GPLX/Vps/8ApHi/5pxV3+GPLX/Vps/+keL/AJpxV3+GPLX/AFabP/pHi/5p xV3+GPLX/Vps/wDpHi/5pxV3+GPLX/Vps/8ApHi/5pxV3+GPLX/Vps/+keL/AJpxV3+GPLX/AFab P/pHi/5pxV3+GPLX/Vps/wDpHi/5pxV3+GPLX/Vps/8ApHi/5pxVLvMFp5N0HRbzWb7SbX6nYxma 49O2hZgi9SAQOnXFUisvNv5SXesto6w2Ed79ZFlEHgg4SzsoZFjdQwbmK8fGhHUYqjfMer/lX5dW T9KrpcM8TxJJaiO3M6mY/BWOnIAipqe2KqEPmf8AJ2TR01ZptGitWjaXi4tvVConqsPTXk/IRkMV ArTFUVe6l+V9pHbyumlSW9xPJbm5jW1aGJoEMkxml2SNYwtG5HqQOpGKpSfPP5Mob8SfotF064Fv KQlpJzRraO6+sRCIuzwenMKvTYgim2Kpjd61+V8FpbXUNvYahDdXlvp6mwt4ropPdf3YlESsYxx+ Ilu2KoW481/lRbTalHc2tpAuk3dvYahPLaRpDFLdO0cZeRlCqvJDyLEUFG+yykqottf/ACcW+Ww+ uaCbtkll9JWtGKpbsUlZyKhOLAqeVNwfA4qiLO6/Li+1KGwsLfTbx7hZjHNbR200XO34GSJnj5cZ AsqtxPVanscVTr/DHlr/AKtNn/0jxf8ANOKu/wAMeWv+rTZ/9I8X/NOKu/wx5a/6tNn/ANI8X/NO Ku/wx5a/6tNn/wBI8X/NOKu/wx5a/wCrTZ/9I8X/ADTirv8ADHlr/q02f/SPF/zTirv8MeWv+rTZ /wDSPF/zTirv8MeWv+rTZ/8ASPF/zTirv8MeWv8Aq02f/SPF/wA04q7/AAx5a/6tNn/0jxf804ql Xmry35dTyvrDLpVmrLZXJVhbxAgiJqEHjiqI8qarpY8raODeQAixtgQZErX0V98VTX9LaV/y2wf8 jU/rirv0tpX/AC2wf8jU/rirv0tpX/LbB/yNT+uKu/S2lf8ALbB/yNT+uKu/S2lf8tsH/I1P64q7 9LaV/wAtsH/I1P64q79LaV/y2wf8jU/rirv0tpX/AC2wf8jU/rirv0tpX/LbB/yNT+uKu/S2lf8A LbB/yNT+uKoDXovLeuaPd6RqF3E1lexmK4VJxGxQ9QGVgRirHG/L/wDL9NWm1m0uvquqvN9ahnW7 YpFPxCh0hL+n0FOJFCNjiq26/L3yFfzNd6pe/W9Skd5Zbxbr0CXkVEkKpEyonNIIg4UfFwUnepKq Ci/J/wDKCJpHCKZJROryG+l5EXK8ZTX1Ni383XtWgAxVFj8tPy0TRF0a3lEFl60s8nC8b1JGuIPq 8oeRmLkOiqTvUsoYkmtVUO35S/lO0ssrEsZrm7u5Ab+Whkv/AERcAj1PssLWIce3HFWQeVfL3kjy sL39DzRxNqM31i8eS5MrPIampLs38x/zAxVBTeR/y5lOoMzRiTUrhLu5lS7dX9WO4e6XgyuCo9eV 3oP5vCmKpZF+VX5YNZTWt6LWZZbiScLDKYI1DmLggjWRgVT6tE1GqOYLUHIjFUw8r+Q/y78sXyXW jSpb8DM6wtc+onqXARXkPNmYvxjCg16E9ScVZd+ltK/5bYP+Rqf1xV36W0r/AJbYP+Rqf1xV36W0 r/ltg/5Gp/XFXfpbSv8Altg/5Gp/XFXfpbSv+W2D/kan9cVd+ltK/wCW2D/kan9cVd+ltK/5bYP+ Rqf1xV36W0r/AJbYP+Rqf1xV36W0r/ltg/5Gp/XFXfpbSv8Altg/5Gp/XFUq816rpZ8rawBeQEmx uQAJErX0W98Vf//Z + + + + uuid:d2cb813b-8c4e-464d-a2fd-ba08b77681e2 + xmp.did:e37b21e8-4faa-4e19-aaf6-e376e0ff3110 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:154e772b-9890-4d0f-bc1d-9eb1ba5021bd + xmp.did:154e772b-9890-4d0f-bc1d-9eb1ba5021bd + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:46cc5508-f1aa-44a7-a5cb-84deba89c9df + 2018-12-05T16:33:28-05:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + saved + xmp.iid:e37b21e8-4faa-4e19-aaf6-e376e0ff3110 + 2019-04-15T16:09:42-04:00 + Adobe Illustrator CC 22.0 (Macintosh) + / + + + + Print + Document + False + False + 1 + + 612.000000 + 792.000000 + Points + + + + + Palatino-Roman + Palatino + Regular + TrueType + 13.0d1e2 + False + Palatino.ttc + + + + + + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 15.000000 + 100.000000 + 90.000000 + 10.000000 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000000 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000000 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 20.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 10.000000 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000000 + 95.000000 + 30.000000 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000000 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 15.000000 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000000 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000000 + 100.000000 + 35.000000 + 10.000000 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000000 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 20.000000 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 40.000000 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 40.000000 + 45.000000 + 50.000000 + 5.000000 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000000 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000000 + 65.000000 + 40.000000 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 40.000000 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000000 + 50.000000 + 75.000000 + 10.000000 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000000 + 60.000000 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 40.000000 + 65.000000 + 90.000000 + 35.000000 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 40.000000 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999400 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998800 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999700 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999100 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999400 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998800 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999700 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999100 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998800 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000000 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000000 + 90.000000 + 0.003100 + 0.003100 + + + + + + + Adobe PDF library 15.00 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 8 0 obj <>/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 12 0 R/TrimBox[0.0 0.0 612.0 792.0]/Type/Page>> endobj 9 0 obj <>stream +H‰|TMÚ0½çWÌ1TÂØãï벨U«¥²—v+%´ia¡$ÝŠß±³BLÅ%ò{~žyó†ÑÇ1ŒÆîîÇq?²ÑÛ‡ou¦•`Ž[Ð\3ã5 Q‡2›eèè-XôiÐãmš-R¶ @wqÓiq´Â‚1‰‚Bµ7ß¼+NýýÌFE>Šu&°=DB3e„«)ÏŠm–O6‹}]®à)w°<6eý4?2Î;z€YÒ/VYþX—‡k"Òz ÌŽõ5>DÁ=H2Ed}êip@§q¿ÛöC´L8Œ"ƶ"óºl–GbŠÈl‰žI¤·ÎJIÖ¤8 ýÿwÓ¹òøì§4Žye%eÈX食ÓínUn’V ²± åc‰ÓºüÕãQy]ì éòn‚ÝMmín&ÁÓM™HÖéf +ìö ¹A—~iϸ ÈEÛ¡]ë×|¿¨›ù¶~I¦Ç´!$—£e-yY-úóHTú_âúO/Ø”YÏåkަ߫&9*§UÓ2Žês>= „eòr¿;4Wëò¥xblm§Z=Ýü^õ—ê5{Á.ÊMk—a‰Ô­ˆI†h h'˜ô¡¹³e/UÓ+=ˆqZǸÔméïªf¾[‡òäkZ‰Ððslü \6AõMèò¯VC9{ endstream endobj 12 0 obj <>stream +8;Z\t;%o4-R. +Z`SeH?EXD(OCTsP,@?$,$KP4UqG(@Y#5$Hiqk.+$aeeZbja3Vi2e8T-+68^S:R1Z: +oXOGh,`aF)Sl^PiG;rWKobCK1RR^aCE3l%#7^BI0rB2Lc]R?<'4T3K]f2(ffkM^iu +il[BiC:&%9f.6YgghS,fMP;MVU*tnn.#O`IlED<3!3Hn_(B~> endstream endobj 13 0 obj [/Indexed/DeviceRGB 255 14 0 R] endobj 14 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 6 0 obj <> endobj 15 0 obj [/View/Design] endobj 16 0 obj <>>> endobj 5 0 obj <> endobj 17 0 obj <> endobj 18 0 obj <>stream +H‰„– t×Çÿûœ“C” ¦pÏw/ÓK }M 5k£å‰ê+ª%‰„ i"5ThK IIy¥¯}4!‹EÕSTÍ‚–Š„ r“k¬™Å£÷¾}‡¶xkõµöþ¾³÷ùÎwÏùgÿnJrj,ja$" éO;Ç9:!*)rDÕ§uü +GON1<égüØYÇ$Mðöƒy̤±ñSÇ´NXy¨ ôc˽2ˆxÀƒžã€güàv-âR¦xûC€€¤øÄÑQ´±Ï< ~÷S¢¦$yòóBÙoG%ÄûÍáþP@F'%NJqvÏ‘þ+Ÿ”ëŸ^Ä.R¤Lø@‰|±€#ž+• #þƒÇZ„s +Œ7êGzú½"" 'à|dúä× úhYb€– äœÜç³Èõ6÷@r_ëóþñ0Ã$j¸oæF‹hˆFhŒ&@S4ƒš›V4G ¢%‚Ð +­ÑmÑA0BÐx:á9üÏ#aèŒ.èŠnxÝуWÞ ½Ñ}Ñ/â%„£?^Æ+€ø!ƒñ*†à5ü¯c(†a8ÞÀ¼‰·0£ —ÎÑÄb Æ"ã0¼D$a"’1 )HÅd¼ÃNÅ4LÇ»˜4Ìäïñ=¼0sð!æbæcÒ‘°v#c1–àøK±Œ¶Q>3¥XŽª: š•X…ÊÇjÚ©ªáK¬Å:¬ÇW؀؄¯±ß` þ­øÛð/Û‘¯a~ÀNìÂnìÁ^ìÃ~@âãGü„#8ŠBÃqœÀIüŒS83(B1Îò¹)A)ÊPŽóP56³”ﳘ¾¼°‚µXŸ4ò§fÔœÚR½C3i-¦lÊ¥Mô-í¢sTB6ú…"@hÑI„Š×Äp‘(¦Š¹â#±˜¿àÄqX%âšTÒOÖ–õdCÙT¶’dgÙKö•ƒä`9T¦Êi2M.2SfË\¹In—;åAyD“§d±<'Ke¹¼¡F©Ñj‚JUKÔrµJ­Sߨíj·:¦N©"eS—ÔuuÛ?ÒüOóçæ"s±Ùf¾`¾i~ }umý¬n¦ƒtˆÕ=t?=PÕÃõý–«õ =W/ÒËôzÞ¨·è½ú„>­ÏêëúŽv5Z†Ù°AF{£“ÑÅènô5’Œ©Fš1Ó˜o,4rŒ\c½EZ|,Õ-õ, ,VK¥­%Ø2Ò2Ê2Ó*¬&kmk]k«ÙÚÖÚÏn²Æ6¯˜¸.ðPàÑ@{‡˜û·&GGGcG˜#ÜùÈétŸ©jn dQ]2S jGÑ4Å­A­¡¬ÁNÚÔ’nÐ}ÑH˜EË'4È` ¶‹b¿8(~gXHkà/ÈÙ\¶“a²§ìãÕ Å­ÁlÖ`¡üX®’_ʯe¾Ü%ÉBùóc@E«ñ*Yeª¥*K­UÔVµSª“ꌪPÕ5uË”æÏÌY¬Á9s¥ù¢ù–†®¦ëèFÚЭt{¦{êpáÕ`”ŽÓIz–ž§3õ§:KçêMz«Þ¯Oé3ºDßÒ÷ aøþ†a²ÎF7·)Æ4Ö`–±ÀÈ2ÖëžÐ ¥¥ k0„5ˆôjàïÖ È­A¤5Æ­ÁÚÇ4kP5èàxÉ­ç]g¥Ó檭lÙ®r©#g}µ˜F¨9¬@®XàºÕ‚½ÙÁÕ­.ö;;‹9NÃÙÐYÃi‚ÝQä88Ž:ŽðóÃ\Â:¸&;2Üwïrls­#Õ1Ò1œ‹íJñ9ŸÃCl±Ã~ó…¾§<ÑÁ"Œõmõ*²»Ý\STÆ_¸ráreô{%¿ÙnbcÚ}ظòÛ}ÙÈŽ*þÞªxuö¦U í!UËíãªöTÝñÌS•ÌqÍ3…œ_퉔/µÝ.g®•O±° ³E¶WmC½¹Ý6sù÷¶ú¶’²ñ®~Ž +&ry\ÙÖ +Qš”­,MΔ1KÛ—?,[:³øz雥/Ëñ=øôöééÓÝ'ȧ±êàÆÒ,/dÒxoF²a;òôZÅn_ðgû!¶ºý¶|±×3‹(ÇÙ?6ê¸Ûþuyag»úÔlv™#WsÚ ·Èݲ€ÏÈI>²R^”—åUyMÞp“×JV²q\Þ”b«ÃÖÈ“S[ð“oQ]Ôë*‰¯.[쎬PÛT¾7›÷û8÷ÚÔf•÷[Î߬¶x®¿GÖº}®Û¯ÿß]Rÿz*àù°žéÄt£xæ×EfÜB¦Ûr¦TÍcÒ3û–àn3ï–1ýö0Unb3ì.îà³í+&Òf™‹²™ÌÙÃLÚfÔQ/£.1wO¸9µ‘ù{ƒyyÊM«8\Á/LÓñLä Lãxæqy"3ÙEäTf²‹È—™ÉÓ˜ÊÓ™Èï2³™Êin._Å5ä‘ IŠ|ÈD¾øªFÕ©Õ„“@~T‹fÈ$ÜÇjB”Æœ»H—(ˆZÉ18M­© ó¯³ñšO!ÔžfÑ{Ô‰ž“ãd +*`£P +£Ù4‡ºR7zÒ)ƒºSêI½¨7õqÑ›úR?úæR8õ§—é@ñP‰*l§>ëch,ì¸ Ó%Éš¢®¨'êËX9‘Y}ÞKêr¦v™)ÌÔ™M]h"%Ó$J1u¥TšÌlþBu£léC9¦PZMkTWšJÓh:m0˜š˜þËz•G7qñÝÕÌ'Ûlù’b[²e[[B¶ecŒ¯W›;Å@b$Š PÌ‘“+ ã„ÐÎЃׄ#¦) Â&ÄPR à†Ps—$Ü´ gH[Pú[I&~$ÿ¥Oï§Ýù}ßÌ$ˆD6+7¸;ÖÖ£<†§ó)q‚ËØÍ˹‘ßåÃ|Uœäù\Ï/‰S|ˆ¯ñ9þ'ûPkÇb‡…Zû­¡µ´Ž6 êþ†ž£g¨Ž~Gnú¤jMc¨†&¢*§Í¨:_Òyº@éêÏUz]Á't ]Â?è5Ô£•tVÑ ZM7ÑAl¡ñ´&ÑšL»i +}€ZÖB3hÍ¡¨–Ñ\:L è(-B_±˜Ú°ê®(}iÖÓzS¹¤\¦q¨~géi¬¸×Ñş#TO­ŠOù‚_ç×x ¯âÕ¼’×ò:þ#ÿÿÄÛøö°—wð.nâfÞÉïónþ+·ò1>ÊŸñ§ÜÆÇùKþ‚/ñ¾Èçù:Å·ù&ßâü5ßåj! I°ÐŠÐŠ^ìmEþÞC ‡Ÿ#kÿBÞ¾eoæ-œÈIlb3' “0‹d‘!’x?àø Ì`CøP"ÒEšèΧù Ÿäü7>+º «Èäÿðùßü _áË|‡ïñ(~‚Gƒ=Ã…]ØDª"šç*ž>=/,"EÞNvµS¥d#³¿W݇}Mí[?DW¹WZH ÒÛò»”HI¤Õ¬Ç)– Ò]Ч®ôˆÈ£8 +•ß“÷Ë;4WÑ#EzŠ pê"ï–÷’N3Oít5ušùèNVbF艹 ]ÿ i#ºà6ìV©÷[°»¢`ê1z%)s W +­tm“åen¯üí¯Tž°󉿉QY^IÎ4™*&•{äÑ8Q2¡È0CÒdšúx4©}†ºRÜè,úk0õ1M3ÎC©þ#.Ô4¸í&4Ì5 ÿ¹ÌžR·ñXãv÷‚RíßNƒž ZxÒoîã&ÎhòhÒ*]C\žºr£§´Üm4›Mž–J—§¥Ühv»q—xà)޵“â‚>ká³È€°2Ìå)5z$wCCà,Åì©kh06à;‚ç^©å!…,=¬( * Õ¢&µÂ+×Uú/Õ¥˜ª"Åœb†Ÿîr¼;4sà0W<5»³$E? „Z4Cˆ©y¨páÏnTßÐbw‡YoÖ§âOÆÔxϤi¹WÊØMÔ(9³|JÈÀðXÒŒ9R¨Óe÷²Ît!uh·tu÷tépCu£¢èPt’R·†¨oµ÷pÈiŠ>7²XÎ7EiPr]8·q°õ·ëWlñ5nGßœÖ(w½ÐZ³Õ7ØwÞ÷‰oÔ‘‡|èÛŒiVÀSøÀ(E„RCx  +…t +€þ€Õ^©S„WÒŸ–T?Tz8¢Òó"õJz~l¤>Zé"oè¦:áð;äkÌÙ*¿#?"çÊŽtߎFôäÛ¾‹âQ¥yN¹Î×ϲ`D €Î®6I§,hBÈÛ¥°Rø):(!"á¨aù©é%²A“Ÿ$ÉZ6„£Ü½Ukþ©øÀw+"Át+3~t\Æ­ÄÄpß=ÚG“iÂMÊOÞ“i¡Ÿ#wŠ‹óÝž­‘”µ79ŸUÿj‘îÇx…d•fb•ˆX"й€³‰ÍÍv)È­Ê­^ì*"UE¤J "ZUDwPÄªŠØ€"2b§¤—4·‹VÄß”‡ŸA‰ÑGCLZJ2;‹•ü¼H§>7=7çZ±&2,쩹Mή¬1:WÜ/íá;³Únà¬%mhêšÆCÃ’òÃ|yå¾¥g§þ$%\…„…vŠN’ÓÉ 7ŠŒZФ2¼ôÛ ší\-Kê-ÿºYràÛðíÍH‚ÀLd­N;ÀZXëk`­£µ°Ö:5Á`‚ä@’°ðì~¦YÀ4K;Ó,`šL³€i0ͦY`¤Éæ® ð\ž+h®Ïà¹ÿ¯?àDõN)FŸìî—b£âÓíù‰Wƒ¯»ÙÏ~«?§ñ¸Û)Ñí23r竜€œR>ÐLf UÀF`°h.wˆêÿ‡‘)e~ÐOE(ª Œ”© ¾Mvææåd'Ê1Ñ(ŸÚ˜Xƒ*v‘S’ýWJе9sm81ѱ†.¸–(çd”råœ w=½¹ÊY˜åšk+.Ÿw¡~JóØ_Õ]?¤pJ¿É fX¦Žî³xðÐ%ý‹W)‡ÊÖ׬k°¨²hFÏŒüÐÞÉYõO>5«úÍšYû +'•Õ ï÷|ïÚšŸO>×gí3#— ôJÕ€ñ#ÑfwÅÞy¥+Uê¥¼è• +±nl@!ò¢mUW ꎌ£º0ÈaŒÛq[{ÆmH› ·!Ï6d܆ŒÛü{’ Ùë*…ÜVŸß‰ú©…”+i°Øs!çå<Èy»Bîý€z•ú«6JUDuPéwŠï6þ Â¤*Lɪ"¹ƒÂ¢*,… žZ%0Ί<[‘g+òlEž­ ‹dÁÎ,VÀ~  ¸Ü‚Œû‘FŒû¾‘ ã¬`œŒC$ày¶ê9#Ùa²¡†!â+ ö0ý0xX¬6^àp¸ |ø?ãGQ?㇌0ÖJŽSÝLóÔ3ÍÿsÆæd[r²)2•KIIV·Ó|èŠ5Î\Å¢n­á²>*vD¯tAZAaÚ.æ‰Ë'WÉ݆ޑ3ZÇnj9ê-š¸(£hý³³çîY\W±Àwûêœy…4r³±|ÖáJyõØ—‡Ew]äRë;ùÙjß×û§ÕDeV¾q«¾Iî´,ÊQûªoŠï`_Ôœl «K±V†È±MR6V vÝ$&Ô¿O…vX3ª¬kU ¦W*œ9rd;d;äÈÈÿ£½\cã(¯0<ßÜm¯w×ö¬×ø2¶wñÆ{}[¯'»™øš€c;7œ¶¹6–&uƒšš +”„6½E€Ò‚@¥T­“U6j•mU5Ú¢ +ò£ð§BB*J›uß3—õGHȪ¬‘Ͼ3óÍî|Ï9ç=]î5+¯pãAăî5>E&DHˆø„( ÑOJ1Æ|Â8 ãNnC“ÏÚ¿® ß$o•H9ñ2ÄËÜJá|óâ:»ØÁ·¦¥%¨~Q*}ñ>ÚT:Äv1CójOD‰Æ[;˜Ó)#Z'œzäˆ_[}wsP.eAˆöb ¬ãÊ®ÏO…e>¼’3CÔü°EäÅ{wÚØT©È9IZ%ðÑ&óéá#’ôí—øbG P­ Õn>rýùò•,$—k›ÚÁæ9¶=^ÁÈ’Pf¶•¼uׯ¨T…ý; /ÊebͪUUù÷FÖ¶(i÷çv”…«Ó[Ú/>\®‚.Ž“J'¹;Øof¹©í þãLâL¦Îa:  +W‚O%83€3eˆËèJÄUyÚ4Š©ØÐ•±<#Ô%¾ZHqÞYÉ#dñxžvʉ7"Þè®±¥H £}d¾­H|B 5>¡–„ZŸPOB½OXFÂ2-$tø„N:}Â( £>a5 «}ÂÖ8ċı0JvKÄï ú2Šâ0â0b1Lvl–kÀ±wŒp w$ñiÄÍ/"ÔÌ“SñÓêœ_KF˜F‚ `ÊB¤º¹;“vàŒE}Þá)iËö}UiªA‘…º~ëfµ‡zJÞ`uWމDðå É3½%åPE>Ú;óú‘Oàªrž‰…žzòC›óãß:{f¦×¾•>Kc²<ÀW„´1­ðÑcŠò˜‡ï¼Zèzäèöhªêh¦\•å«®ZRRTÙ%ûnÛãwÍý]Þ –ÇÙòYn‚3މð<½7«fó®šâs¨‚äãz ô¸õhíw¯ôÞ{ ®¶¯ÍΕ“EV]#ºÑˆBOð m$´-du^è'¡ßáì6¼€u6gëðM¸¼34݆˜!Öl«Ï><¹¢Ÿ«´.e'ec{þ<7äª7Ô<ƒŠ“©nd¬:ZýX;ËD¨üáÆûDŠ1ÀUmÿG¦[òDµ¾25ùlrÍ­›—XÇ©©~CK¨ÉÍÜ7½u¯s‘´§F–”Æ ­G¯gݳSû+j.­¼%\ÂVŠâþô\á‰wü_‹]OQGå`Õæ‡¶O¾¬K¼(Å·u>%Œ_g»ÞP¤«b¥î]á#é9ÎäãÈ»£§ÐÌ‘F÷ x3Gû“ÄÌ‘IÌIX“¤7s$1s$홃ǽIûòxãÂßl7€› xn27€› ÀMP03ÛMÂó38[$¨Žö¶î¦›}¦Ã5s*ž­ÂB©°P*j +¦Â‡©ða*|˜ +¦Â‡©ða*|˜ +¦Â‡©ðaªg湈cæ.âš9fNµÍ\gCÉÌ%`æž™K j'ì¿~·â˜Â±Çaàø>Žá@žÀ‡%àÃða ø°„g湈cæ.BfŽ:¸.x“ %EŸîµ0ÛД£Ä × ÐÔ£3”ЈÆ5ÇÈzbôÎçÖµNd—¼½nï®G>8¹é·wˆ ß’ÜsàÔ ÖDæÚîmŸY^øyáÚ›];.ŸNçR[¿·yhG6 ×W4m>19ó‡ƒíÉ•÷ì;liXþÒÉM[뫚«êǾ¾ñ­Â_À²>÷®\…º7ÈÎP¿Qì~sæ®Á®A_×n@\›§ÖH³ÌÇ}…ØrõáOÑw%$ŸàN#¡§‘yÁ Áð iÒNï”ržò‚*§ ¼Ì4`¦3 ˜i`U«XÕÀªV5°ªU ¬j`U«XÕ<่üÂE\à5¯ÙÀËnoiµ»²]0‹ý—@±ÍE±;ûÎÊJÅcä$óúS'?ávÚL®ãìŽ/Þ‘¬²{î3·þÌíÌ£Ÿ½òЙwfªëÝFëµOj©_~´=¶43¾ëùY¯Ûrýç_ú÷¯oë·Ö²Ö¿ÎλM•aÏ8IÃŒÐÉý]ûR–ú„$ IŸÐNB»OH‘r„H˜”@L +Q£Õ婊ÎraÇM5¸±×íSEú©ëU±¾L³ˆ×bñ>8¦¾f)j78Ö-ú{Œh°ñ­0÷-ðÙÙ …k_i‰Ê¡IZÆ*ÙÌÕõÇ÷vÿ÷µúó{·½úôT¼¼f¥"Èw~çúõWÊþÔj²$ÿö™BX®é:¹©ÿ/Šrî«ÿ¹$ñåJlÍã·^,•y‰á½s…Y‘›ëDš•sðYÂÛ“]éæˆˆ“‡C@ëY?÷/á’ð+Œoƒì®Ynˆ2®=l{“ ùL(aüÒÊ<¹'öòqqÜ­ mãýeq·Ý³è€Y¤i0‹˜ÞY¯fѳhq³\7îëv×èÍ;Ϙ¯M´OMŽK)Áé°kRžcyYm ¹d!—,ä’…„´ÒBBZHH i!!-$¤…„´Òò²z‘‹8Y½p7«-dµ…¬F&·Ú|dú¨úWGÇî42Û5g(o ê ™¾–L_>4’“Ùè4^I3öÀ¤56}Ö¨U¹¼´ip½•Û-ýîöå÷O Å–3é¬sz}vKie{íØ¬­¨]¿føÁAþ…`4Ñvˆ†Èæ‰þ¿(ü¹3Rd^6å'gZ~atz8\g…¶ïi*kÉý²º¯¡"Ö½b톱1ŽŸ{î}±Zú#f¾!öcìv,‡c8ìL$"b>︚B<·,b§zlž<†zp6’§Úìµ*U^wé#·˜,‹ŠT:òÎT¹¢¨<“ÿͺ¯­úÒsŸí]ªGNoÙ½nxz`òeõmû­Sg×›Üþ]ñþæ+{õÙŸ–ŠJ¶¾M.Q•òæ—ï?ûæñè²=¯LO=i¥*îZÒÒ~;ºðhw}4Þögî}rüΞÇ&æÞv ¹¥ì÷àü¹Î:†ºC]‰¡®ÄPWbøÅ1¯®ÄPWbÀÅ«!ÚÚW^Ük‘ÑÙüöU÷<¥O©{žR‡“ÓáßhàÑáätØAvP‡ÔauØAvPÇstØAvP‡ÔauÏS.rÇS.\DšvÒÊðˆ4À p`€0€ÉL`2“˜ Àd&0€ÉL†Gä"qˆ\¸ˆKäÿ¨¯Öà&Î+º«•V¶,ɲµ–l˲¼ù-ïÚ²e ¶1~ ÙÆc°1枦Žq’ +!™&46Ж>&%íL¦$6Ó¤Ó¦M§Ã¤j:i4}ýJû«63!3µé¹ûíÚKl†Îð«ã|ìÍ]é[íwÏ=÷œb ²XCdÄ®“\¼žh.†9§‚ onàQƒ_½0RÚqvßµUËS‘öáMUUNGZÀè^z¸­o²}ëk»bÛºŽ¶EÂ3<ö†"ïÉ zÝkG·åf: Ê:.<÷Ñμ%lÖõÝû§õ;¶; +ùK·¸…h +œ¢qø"ÝÄZg‘Ã¥O!ö¦H¨à[ˆ êùÒ»V¤Hs°X¡û(Oܘƒqà5Ž·k«±úé&Ãkxks¾Û„ï6éÏ_E¼e58+Ÿ`›Ï(*ŠªÑ(*)+(j©á"Yåÿß’_D@ñYR¡Å¯MÄx=Í>³`,45y °øÈYå,×¾ºÆeµYíÙå£Çk*ΖҳŽM‡ßÞ½R üd|õʉ§5CRÚ/v®;¿æÆ‰¶½½i¶ž§œ›¾áßßœùÒ®‹Áìô¸ÝÞq,8‘}xfä‡ÕGb¡"Þþ|a†-}æ…dGß÷Ço¾¿lkåÀTìÞß„ Â/1xj,˜Z +Í6½¨¤CÑ&X,jL°(&X,ŠwŽb‚EÁd‚Z&’¢ûó8ó‘VšÓHÙ„llj”XÊ@všh*0 X[ËHd”FFid”FFidÔWF}eÔWF}eÔWF}eÔWF}eÔWF}eÔW6@òˆ›0,ÜD‰ Èš-*ó°ãˆ(,.!‹¤ÇÆñdãíTÎÊx]¯«¯«`SÍ¢‚MU°© +JVAÉ*(Y%« d”¬âlUP² +JVAÉ*(Y5xý7a¼¾p›ÆŽ†y›'HšÐ¤ÿ–È…âEÞ§y +Ìgtˆ(Œu)m§7¾²4x¼qíà¡õY;öïŸ}Ç2|mSÓÄÆ™ z..;SΟØwøü•Î +wNðÀ^>:UY´>WÞuý`A©Ûšöâ›}%µü9A°Ùr]ßxåÛ4ƒ«Aœ7¡ù–sÓ·[†‚€”‡£§ØÕ(…€¸q½7¤ tV+Mj«ŠU¦„J •ÁÕn“ð”Û@¾ ÃŽžWˆý¸ù>æòR,W”"Àbú=•2}ü'Lÿ1_Å ÕC‡©ýÅjB¼1GC¦Þo'–áøåÔiÇ^_ëÍêêi” £ÛV…ÊêKʬþPSY¼=´··Û! ”•¯·ñi®ÌÂÓUýv8Ç/f¢à.“#§ö•7o]éÉq}7=?·rݳ¿ÅÝVëìåÖ4‡3mééPÛ <ïrH1Lß:g;ìÙKâ2nŸ¼ÅmVØtÚŒ·J§¹¤Ü?—œˆZ<ÅukÓËPÐݦïÖ4–‡‡ôØð°-Z›ÐU)* *á™÷c7¦˜Ê§¹×Œ¸Yßa-âµúg‰‡HÌûYÅQ=9S—Sb¹)ÑH‰FS¢™ͦÄ%L‰”ØÈ@RhthÐàð +p¼ŸLƒ8ί Àü¸þ”ZÓ+÷>@g±Û¬Ç‚<ì)_ñ&¾–!ÅN`Éö›nº¶øPqËbÂØ}ÊéÍð×V¾Ö"‡Õã·©­|ÎÞ3Pßß™çLç(m}«}Å<,¶EÄòìGG2²E‡Ã=púäõó'=ªÏáxKƒÍöÊ wÇv=^ÔÉŽu›É©ñ³;v¦w¢ø§Øv‚ËàîÜmŒ‡4L:²lÔÌ“Ò-‘É‹i–kh USªý¤ƒš*¢DÈ”)!SbKTPŸNaìP/Rg.¡…^äéìE&ÿÃ/~î`绯®r—•U­UJkëÏzÚ‡sã6瞯n÷œC ÙN´*U­ô±™› ¾fχ‡oÌþÇ‘î²Òq˜ºíúÅ‚ÌLà…Îf)x­Š»|?\ÔOæó +Ðè4ÙÔW²©¯dS_QÌÞò¡ÝPA‰ +SbÞR,83þ‚ï}'{0$qnÞÎíÞn¢ž«‹àmæ3ÓÑ¥7•£¢ÿ~Æ=Ë¿{9§ÆÎ=ˆvjQ ¢Víüœ¦ós𨋄‡¡iæEÈ4tìN®GkÙdÕM×"®EÜŠ¸%Åø°qâ.=îEÜ‹x'âˆwè»@|@¥Øõ(®Gõ½O_yV¥°ÂÃâ•z8MµP¢Å”x‚O˜›(±É”¤Ä )1I‰ISâJ<£'æ®?-¬iýˆÝâVàÁ'rø?¼Ý2CX[háÅÈí¥×ã&T±³Øç …QOŠƒö\à[ÀŠ^ÌRbE‘\¤wãÞ:ƒ8©½Í_/7&¥à*:ò«! å­–/æ‰þ~eë¥ÒwþVåÈeŸ[cÎ,8úlUå™t!üdçú¶š"Áb0çË;ßf€·•ެnÜ·L@÷²ÄÑóÛúçQ>Þ;¸Â—Á7D‡=]~Ê'¸|[w…Ó2ó'ºcß}~bð¢ÈKûû_ŸìR##ÚL7ÒÒæwì99žˆuUtlkº¿UP&”Èz½’äw3œ’#è21ÉbÝáÔ˜’x×`âÅû…|Ål$}’1Í-®Øc°5‹É{*º! T­ÇqÄq}·&½'Œ¾¢ïu›{"ôÀ~˜'*=¡PB1%ª)QmJtR¢Ó”xŒÝnl,‚MA˜^·æñ kœv»-Ç·oûªe§Üά§6$Ÿ®3Ðv|GßѶtìjaëHWôý7O)…~AÀ0útÕë_¯n[—:0aRlf·ßû«5_xËä‚–<èZ}ŒÌë_ÍOúá'ý†ŸôC—ûaòü8>?ü¤ɯùI¿‡< ¹G:f"|ADàÃ*ÆŠc­ÆêLJ°õNǰ,CdQ”9‡)PÑ“ÃtPÂÁF–DN‹, „'KpoÜ›N’ à$X@ P‚”`%X@ P‚”`%X@ P2|ä#nÂ|äÂMt)ÁGJšp(Ã#à†G À™àÌpf`7>ÀÞ`ï°wØ»ì]§€½ ÀÞ`ï°wÃ#>â&Ì#.Ü„<¢·–‹Õp9ó‰%ÅõR!È:ÎHWlçƒþ€O;w÷âØ·Fò«~¼îÊæ±¯ ½40ù*ç/|`öîo¾ü¯çz¾Ðüä/&gÝzçêÇÃoiØ[:sÇú´ð.ׯmàÿ Ü%±ú=lʬP î18ŒxÑ"(°Øà8ŠÝ)6HŠ70Ô&Ú¤Ú$P›j“@m¨M¢I µI”øÅ¼Ë$Dk`f¹:ƒ5éOjO±ëz\×S¿Ð $ÜjRBa2¦°Ÿì5˜-Lð 3òâ‰k5êa=FOV9»öä°>[5d&ðÃU JhX»±Æ±Îb}ëÖM¬÷°~õ1Ö§X:¼qï…›èðNÞ à˜4B˜KèÚj +­N$˦TWC¤©ód×e±ã?Òç%9íYµÿ%½jc›ºÎð¹¾÷ÚÉõg;Nì|øÆ7Np\'vâ$ÎÒ¤ƒ°@!$mC!)ß…Bi¡ QeÕØ"µ›6ÁF?†ªImÉÔ!­Õºj´ùSM• ûAQ·iÛI&J’=çÞë`šj ::/çž{l¿çyž÷yY`ÎC×ÍÜ­ó^Žÿ‡J™(ZöWÍí;¾=ŒµûíOžd{“ã]ºu9­»Ž|ôDÞZÆ"Y+œ×µS+6M¯~qUv÷F‡Àµç\Q`+·x‚þÇ_©¨Þ÷ÖdÏž‰a¯<ö€äöÏϾ2™ci´¨».fâufG½‹›{9Ó½éêÞ?[Q=ŠëÕsñP“3d™¦õÈè|däBÆü`I}u:iu£oÆJ3Vb%¾Ô‰¸îÄ®|QMóPÓ<ˆ‘Çùy¨i—/ªijš×ÕÔi"•Θ̳—S¤2q*°Jutz):½%5ÓG|ta†„‰…ät»MŒèí‚@þW(Bµ€Ý¤€€ˆPVÊ +@Y(+e ¬”€²PVÊ +@Y¡Õû<Ä€êÒCL¨Õ Š¦Ð@XƬänÍegÐà„X-%ª>4‹À™kÑsrºÜy ñkwkiþÀγ/íØou¹-6V ÄŸKªïý©¥'Yó^C÷@ßá¡mõb9Ë™]äMõÌÀÑ7Ö¼02x ÍÍ ¢ØÁ1¼\^Ù†–ÉÅ”ÉÕþõãuõ+cïö²ŠúÆBåhÇ£ÿœ»zú)n› µðþ彎ö÷2ÜSºŒJà­‹|fôF²~Y2n[Â5Iq#6”SÇPJCI`( %‘dCI`(©cˆö.Ux«ÊìcªW›qqÐŒ –WX¨ŒFñ›ý\–.dK:éB§QÖ@ë + â…°®#aœ½ìºaÇ:ôN¼1·n©îõ^ú½¥’µŒ †õ{ÒMkÊI|¯ÕåÂ% +×½–…‰­t…¾ÝÜlÌ—o]µÃÂH²#ôÜåÃDz,ËÉå¾SVþ5•?–ÞêÔºí'k[vôè¶¾_w78,V«á©2´p‹kà>$yæÆ p(`‘o¡¿«Œp-Ô!Q³F²‚%Y-Cš51ìÞ·¼U‰ÖM¨a{´®õ‘þïý1€‚&ж–µÀaë¿Ùçù¯Ðývw!@Æ©.X€(nÖ(¢© t®œ5ž+‹Í[g‰áità5Rà5ÂŽ“‰~¶½Ä¡ÙK6ËÀ¿±;~/ˆù*Íø®w€D«ˆ1W™J‚ý>‘ª7'€ÜIº,궔ŖŒæB´¥S˜,øËäï8­cé€èíÑ´1³ÕÄ2Ñ”Z_ékÑzÒ †c¢IÎÙ ý«O‰V ÏßbX†73ÌüÔt®% Švµ±Énõ·ô ö¯qz˜ó¿ çÏ÷>Ê@›&ðmûh†frÚç¼ëW'ûfŽªø+}%ÕŸÆ5ˆkâFï”ЯbEÅJ¢ä.%w‘ÐïÃü´¢7¥qâ3¦Õ¿_ß!õ“Wce5V6âéZÄkÍxâuf<2k8qo@¼ÁŒGšñªGqãk®Š‡ê¨°STØ)*®qv¢BÇß!ZÑ$h r A4ÈMÑ )4Eƒ¦hÐ š¢AS4hŠMÑ )4E+ +Ó}bÓÒCLaÒ Lšnu“i‡ÐQ[a?3´ôDèX]Zh½1ŒQ¤þϾECÁŸ?þ­¡•×5ìq·Œt­Ù©k-+òVG¤½îÏ8­p·<'Ô´Gj‚•vvÉcŽ F6+ŠkköXýÞe±ú©¡pwèÕÀT_…M°1Y¿fµÙ¤òºM³¿z¢³¾Ö‡ mX¿nÉŽñŸg¿ú,‡Uæó¡…ÿð¹×Ñ­dImŸ!6l±ê +`+a½Íìˬ˜æž5ÖsŽÐnÊÜÛdÖ["q†£½¦ªQÖ{íh|äö zºä‰(À¼q̼êX{­¢ÆeﺰrÝÙ‘¦§ƒ ÷ëÚ6'/û'§›Ã纣ö±‡«~bÛþs#ây¶K»¸JOhb~¶ÿ`ÓÍŠk{\²K”9ýOñ_½Ö>ÿS=Á…/…£Ü é#ÓÄ(Ùßìqrt!WL ´}=1TnåÙ+À !Õ ÈRoFƳ¨™œ"ým&ým%Ôu‰¼»o¼‰”©\+g&…B–& ùòdÚS•z¤çíž´±Üa•Cþ ózóæ¦ájuå®gOîß\ãq7ûêWþ8Ýšèóïë ­Xõ©»^Ì <•krÚ§bro}¬íó‡÷ªþú²ÓŒvòvÄ)æD1Ǽ×îÛ2ÿîš±7˜åO|«sþ³³Cï¿{ry¨¦ŠÕwx*ž½½§þÒƒ™#lþã¯ÖçG muÎ}Àg=d¡m‰!žÔ€Æ©ôÅ©ã™ÑKY^Ï*•Í€Þ‘TèÒÝüÐ88MKH{*Ħô´=¢r”É‹yB¡öUÖ24=î’ü --cì,hKù=Õµ¡ÚÎTXk®‹Œ¹£ƒ‡عÍp©áž¬ªÕž“ùÚ©ýmÜ`Kuì}鋎µOô×ks{Ùé±Uç·ïÞ¸‡ùÁ屯*‰z~Q°œÉgÖŸ{~ýæT«³ÜãµQ¸±M·æ/Ï}~|OÎAs¡?°gÏŽ;º¾dª$š!ò‹ÈoŽÑù“ÇÿqðNÿE¾h èÃ^ó azîBäwúçÈõÕ’ÂuÁ\b‹#Kΰÿ%“ü§d7OHVx›L Y2Ê\"ϰ—È!:¸ ÁóI–ÀS\"1¼wŠÿ”ñb7ÆŒs”c10Æ0z1Òt?†g4a¬Ä¨ã·,·IŸæo’jËkdPHâ$¿,ªI¯ðK’`ß$qöÒÂ_-“ž5Š?"áIC$ÁB2˜Û,HŒO‘þ Òò?ÞË<¸ªê à߻ۻI(&,)’Ö„$>(¶b‡°ŒÙꔥÖÒP·Ñ)0¢Ø-RY„B 3òÃP ´ƒ‘a*ŠÊ2)BqÐÊâ´P¨A–äö÷Ü·¼†™Öfæ—Sݳ|Ûa¾"wŸtä¼¾èN’. ²'ëþß=‹œˆ|Ôѽ×É:ä8ç‰ào¬g,óO°KŠúJÖ0ÊÙ Ik‚”%N;ùÝMËÉ\éC}¡3M†;¤§3WjìR)·§ËkµôwÞcó¥ÈÛÄ9t£}¦äò ýþÓNƒ¥sëYW÷­è¾uÏÑžtýfM7AרëKǪ–R«:8ƒì[ÖGוÞÊNI-ò‡Žàß…ókH´q=¹Ÿ5÷ånò•äa§çéì ZT'£Ý-Ü÷téׂ§œÕRa_’BÚ÷VÊêÛX•ÁPÆV@¯Xª½\îj¦ôf/3нW8‹Gè—Í÷Û! œSFt]ßâO¨ŽFg¥ç“¼&_óÖÈ@¾¨MÐo¦ê-s•)ÌÑ–5Ü­ç®wŸ˜ÔTê^ +ê­õò0Ìs>àþŽI_ÕQ£—:†ñY%Fï{˜»¥bô¯ž³­—ÎÐÍÜ‘2Žu…÷aî‚}¢¯—‘yfß"+³`¥Í\ód¡öant+8‹ÞUÝQU=Q1v0MªuýF£#¤”³›­Z¹Ûª d‚÷åÐ:1¾­Úê®®[mÂÌŽ©îD’o?`öˆNÅe¼oh“ô,TßZ“Ñ÷ãÒ”±gµ©H²Æ\t÷=dg—cÎs§˜µ—©Ýc{ícjÿÚž.íõ׫ ©þÇ¥)«¿ÀâR}‡Úo\F÷Ò"ñ-ƾo”·{ÅžnUª_RßÝmtï-÷ÿ^ƒô¹v&d̬ðÚ&‘ÆéÈ•p†7·7–!¯" s±¹ñz‡-÷žUt¦ÑEûVÿn|>0j‹üŽú>ÓG×ú¸ÈîìT¢§êýº–r¸>]s^3ÑžS±}, Ùî×ô ¹þÅ#³OtÛ¿ÊÕÁrã[¦‹ª Nò;@9ôÕ9üR›\/µz&ªƒ.m~>uÄd—ìmÒEÏ3Š]›Œ^n@¯Ae=§)Ê*“¢œy”gSG\@öôG\ {ô| T‹¥q9gtÎf^_Û–H±÷¶«]d•J>÷³½íÖø¨êàt‹~ߺ^Þ`ÿÆ¿ã£#}iÑ“˜Ý¤¯ÍÄêÈæâó+ÔßÇ¿÷V}°õ¯ +÷/ì4+ÒÓÛGä[bóg²û–y#«1¤>ÌGšÇh^—q¿Øš¼U¿©9±¹ÈoÆ|e&ɹ]!޼kâSup.º¯¸¼Ñw§cò¬ê®ê_\fò©-²•óÕÍäI¡Ìäo3úÝL2ƒ?eá­ê¿Ú·Úh$#ÿÜšT vœ&oêÏ[üºÞÕjénòBú™3¦‘ÍDgŸæ#Õ_®ÔZó0ãï"=m¶}£'5ÿˆöeÖž©É_ÕöB4ß s‘¦oœtŸª9HV½•bÜ}™òïËÁ«Ž4­ÊÜ~k²uûh:mnz$S{è/J£Ü!³>›œiM[3¶Çõâú}ÞTòú”{XðÕËð S|±_‚=Ž$”ÝŠU×ø:l†=ðì€ÇœÑ¼r5·U°yÖŸŠÞ8ŠÚ÷×Çë#%èt‰³JæyMû„0ŸêÎ~ûYo’{o6Üó—Œ,’*† ÉIJÿª öselòmüU9Ý@òç)PËÜZÞ½¤2ëuäxäq¤‡ü)gòsÞ^ª£ôqÞ¡meâ÷YüÔÊÅÈsÄ¢,ãuÀ&¯’‡HëS¹±£¬ÍÁEë)±.3×l)Iü_³ƒ2퉅Ò=198oíi.;OH—p\wë¹ô!démUÈ€ÄVéA›kí×þ¹~Ûa¢xöAö\N_æ×÷¨u:¸¾E‹í†à*²«æúÜÏè= +½áy(…ö„¼ð=;*ì÷k)¹ÅRi p'TA9”„m ŠþC¿. îŠoV—è!#©àuƒaœ“K ™e(L“EÐ6ü]Ê¢°\Åšwþ—ˆs*8K.•ƒ~õçwQf‚s3á·Î à÷e¹ FP‚ºNnobo™êŸ7gü’½_–pßÀVëwìZyÀ]¿Ú$ù‰]´O”µØó·‰Ë­÷å…r=ò)óÎkH¬Õqá›ÏHk# ›ëLùþmŒoŠóp…²æŽ½`>ýæ"§hÛæ­s`v8Nýõ´ýÙÃÏ·©œ¡mRóßç£÷ªsÆØk¡SÅ4“í~œ§nt:É?Ia„s½Î%•Žú†t’D÷pðä)éðæñMü¢æ)ŠúòÙN†‡¨OçŠThüRtœ×ÝêHܯxÃðOÿdNöâ.gþ¯Ê4僽NÎfÆ}_ªõÛ&†ö4>9eòÞoÄ™!Üs…°ænÌuø–?”;¼À¼a sž•áö^¹Ç 5Σè {IÇ[‰ Qa/’©ŠÛVjÒq*C ù]YÅÙIÎFò …o»ù´*óÖQöJ/g`pÑðkô] {YëGÒN1ãF3gHòN©QœÕ|c?ûøå +yÈþ«Lfß5Î}ôÛ&ƒ¨®ñÞ—ük7±v—‡Rã§ËÝ'e 2s/—vŠ{NÆë: ä)vO©ñOÊUüâTÅ+Aߎ¢?‹¸›ä.ç2ZsÎ)å=(ÖkÔï¥ìKäRtf=w²H&i›Ñ™ßÓþœLu>D_Ž‹gt£½øŒXÄÜ1üx_~~ìw|¼©s¿#·¹J¾—„±÷7Cösv‹×`²T²“øˆä’ïcqþväA8 çø Y—üìNpX$»Qòsò ÊD”äSpœ¾gÑ¡’­gao•|›o;k¸½È#p>ã7h(µŸEÉÀ¼‹RùŠÏKÖœ5­eÞw‘]©ßËzß¡ß/¥JÏÏ£Þ/¤}í?¡MÏTëÒç êó˜/`øc™oý~E=ëHîCBÖ“’¯dïb_gEÈ1ÈAHHöcü!úåÈH·½ØÈ{÷-üK?t눼l7aW[‚+nB–X3d—³Œüø-ö7/htî•眇Cîc%Þ½> endobj 10 0 obj <> endobj 19 0 obj <> endobj 20 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 22.0.0 %%For: (Nicholas Carter) () %%Title: (hmmpgmd-search-stats-serialize.pdf) %%CreationDate: 4/15/19 4:09 PM %%Canvassize: 16383 %%BoundingBox: 29 -319 543 -29 %%HiResBoundingBox: 29.1274393852136 -318.804635761589 542.306247332239 -29.8046357615895 %%DocumentProcessColors: Black %AI5_FileFormat 13.0 %AI12_BuildNumber: 244 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%CMYKProcessColor: 1 1 1 1 ([Registration]) %AI3_Cropmarks: 0 -792 612 0 %AI3_TemplateBox: 306.5 -396.5 306.5 -396.5 %AI3_TileBox: 18 -752 594 -18 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 2 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI17_Begin_Content_if_version_gt:17 1 %AI9_OpenToView: -439 10.0264900662251 1.51 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_Alternate_Content %AI9_OpenToView: -439 10.0264900662251 1.51 2548 1391 18 0 0 2644 52 0 0 0 1 1 0 1 1 0 1 %AI17_End_Versioned_Content %AI5_OpenViewLayers: 7 %%PageOrigin:0 -792 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.6 %%EndComments endstream endobj 21 0 obj <>stream +%%BoundingBox: 29 -319 543 -29 %%HiResBoundingBox: 29.1274393852136 -318.804635761589 542.306247332239 -29.8046357615895 %AI7_Thumbnail: 128 72 8 %%BeginData: 10254 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C457DFD3EA87DFD40FFA8FD3FFFA8FD3FFFA8FD14FFA8A8A8FD07FFA8 %FFA8A8FD08FFA8FD13FFA8FD40FF7DFD14FFA8275252FD067D527D7D27A8 %527D7D52FD047DA8FD12FFA8A8FD3FFFA8FD14FF7D525227277D2727277D %52A85252A8FD0552275252FD13FFA8FD40FF7DFD15FFA8FFA87D52FFA8FF %A8FFA8A8A8FFA8A87DFFA8FFA8A8FD13FFA8A8FD3FFFA8FD3EFFA8FD40FF %7DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A87DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FF7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA8527DFD3EA87DA8FD3EFFA87DFD3EFFA8A8FD16 %FFA8FD05FFA8A8A8FD07FFA8FD17FFA8A8FD18FFA8FD04FFA8A8FFA8FD1D %FFA87DFD15FF527D52A87D7DA87D277D527D7D52FD057DFD16FFA87DFD17 %FF7D527D7D7DA852527D527D7D527D7D7D52FD16FFA8A8FD15FF7D7D5227 %5252A8FD047DFD0452275252A8FD16FFA8A8FD17FFA8FD04527D7D52A852 %7D527D2727277DFD16FFA87DFD15FFA8FFA8A8A8FFFFA8A8FFA8FF7DFFA8 %FFA8A8A8FD16FFA87DFD17FFA8FF7DFFA8FFA8FFFFFF7DA8FFFFA8A8A8FD %16FFA8A8FD3EFF7DA8FD3EFFA87DFFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA87D7DFFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA87D7D7DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8527D7DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA852A8 %FD3EFFA87DFD3EFFA8A8FD18FF7DFFA8A8A8FD07FFA8FD19FFA8A8FD16FF %7DFD05FFA8A8FFA8A8FFA8FD1BFFA87DFD17FF7D52A87D277D527D7D5252 %FD047DFD18FFA87DFD15FF7D7D52FD057D52A85252FD047D527D7D7D52A8 %FD13FFA8A8FD17FF7D52FF7D527D7DFD0452272752A8FD18FFA8A8FD15FF %A87D7DFD0452277DA87D52A87D52527D2727277DA8FD13FFA87DFD17FFFD %05A8FFA8FF7DFFA8FFA8A8A8FD18FFA87DFD15FFA8A8FFFFA8FFA8A8A8FF %A8A8FFFFA8A8FFFFA8A87DFD14FFA8A8FD3EFF7DA8FD3EFFA87DFFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8FFA8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA87D7D %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA87D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA8527D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA852A8FD1FFF7DFD1EFFA87DFD3EFFA8A8FD04FFA8 %A8A8FD09FFA8FD07FFA8FD05FFFD04A8FD05FFA8A8FD09FFA8A8FD0AFFA8 %A8FD14FFA8FD09FFA8FFFFA8A8FFA8FD19FFA87DFD04FFA827FFA87D7D52 %277D7DA87D7D7DA8527D52527D7D7DFD05FFFD077DA8527DFFA87D7D2752 %FD047D52FF527D7D527DA852FFFFA87DFD13FFA852527D7DA87DA8527D52 %52A8A852527D527D7D527D7D7D52FD12FFA8A8FD04FF527DFFA8F8522752 %5252A8A87D7DA8FD0652A8FD04FFA8A87DA85252275252527DFF522727FD %0452FF7D7DA87DFD05527DA8FFA8A8FD14FF527D52522752277D27522752 %7D7D52A8527D527D2727277DFD12FFA87DFD04FFA8A8A87DFFA8FFA8FF7D %FFA8A8A8FFA8A8A8FFA8A8A8FD05FF7DFFA8FFA8A8A8FFA8A87DA8A8FFA8 %FFA8A8FFA8A8FFA8A87DFFA8FFA8FFFFA87DFD13FFA8FFA8FFA8FFA8FFA8 %FFA8A8A8FFA8FFFFFFA8A8FFFFA8A8A8FD12FFA8A8FD1EFFA8A8FD1EFFA8 %A8FD3EFFA852A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87D7D52A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87D7D52A87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87D7D7DA8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87D7DA8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8FD3EFFA87DFD3EFF %A8A8FD14FFA8FFA8FD07FFA8FFA8FD1DFFA8A8FD13FFA8FD0FFFA8A8FD19 %FFA87DFD14FF525252FD057DA852527D7D527D527D7D7D52A8FD15FFA87D %FD11FF525252FFFD047D527DFFA87DA87D7D7DA852277D527D7D527D7D7D %52FD10FFA8A8FD14FF527D2727277D27277D7D52A87D7DFD04522752A8FD %15FFA8A8FD11FF7D527DFF7D5252F85252FF52525227277DA87D52A85252 %527D5227277DFD10FFA87DFD14FFA8FFFFA8FFA8527DFFA8A8FFFFA8A8A8 %FFA8FFA8FD16FFA87DFD11FFA8FFA8A852FD05A87DA8A8FFA8FFFFFFA8FF %FFFFA8A8FFFFA8A8A8FD10FFA8A8FD3EFFA8A8FD3EFFA852A87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D52A87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %7D7DA8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87D7DA8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8FD3EFFA87DFD3EFFA8A8FD12FFA8A8FD08FFA8FD %05FFA8A8A8FD07FFA8FD11FFA8A8FD12FFA8FFA8FD0DFFA8A8A8FD07FFA8 %FD11FFA87DFD11FF52527DFF7DA87DA852A8FF5252FD057D277D527D7D52 %52FD047DFD10FFA87DFD12FF7D277DFFA8FD047D52FF7D7D527D7D7D27A8 %527D7D7D527D7D7DA8FD10FFA8A8FD11FF7D527DFF52522727277DFF5252 %5227277D7D527D7DFD0452272752A8FD10FFA8A8FD12FF7D7D52FF525227 %272752FFA8525252A852527DFD0552275252FD11FFA87DFD11FFA8FFA87D %52FFA8FFA8A87DA8A8FFA8A8FFA8A8FFA8FF7DFFA8FFA8A8A8FD10FFA87D %FD15FF7D527DFFA8FFA87DA8FFA8FFA8A8A8FFA8A8A8FFA8FFA8A8FD11FF %A8A8FD3EFFA8A8FD3EFFA852A87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87D7D52A87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87D7DA8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8FD3E %FFA87DFD3EFFA8A8FD3EFFA8A8FD3EFFA87DFD11FF527D7DFFA8FFFFFFA8 %A8FF7DA8FFFF7DA8A852A87DA8FFA8A8FFFFA8A8FD10FFA87DFD15FF7D7D %7D52A87DA8FFA87D52A87DFFA8A8A8FFA87DFD15FFA8A8FD11FF7D27A8FF %FD0452277DFF2752277D27A87D52527D27522752275252A8FD10FFA8A8FD %15FFA852522752275252A852277DFD0552275252FD15FFA87DFD11FF7DA8 %7DA827A8527D7DA8FD067DA8A87DA87DA852A8FD047DA8FD10FFA87DFD15 %FFA8A87D7D527D7D7DA87D7DA87DA87DA87D7D527DFD15FFA8A8FD14FFA8 %A8FD28FFA8A8FD22FFA8FD1BFFA852A87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA8A8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87D7D52A87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA8A87DA8A8A87D %A8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8 %A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87D7DA8A87D %A8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8 %A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87D %A8FD3EFFA87DFD3EFFA8A8FD14FFA8FFA8FD0CFFA8A8FFA8FD17FFA8A8FD %12FFA8FFA8FD07FFA8FFFFFFA8FFA8FFA8FD07FFA8FD11FFA87DFD14FF52 %5252FD057DA852527DA852A852527D527D7D527D7D7D52FD10FFA87DFD12 %FF7D5252527D7D7D27A8A85252A8527D7D52527D52FD057D527DFD11FFA8 %A8FD14FF527D2752277D5252527DFD0452A87D52A8527D527D2752277DA8 %FD0FFFA8A8FD12FF7D7D275252277DFD07527DA8527D7D52527D52522752 %7DFD11FFA87DFD14FFA8FFFFA8FF52FD04A8FFA8FFA8FFA8A8FFFFA8A8FF %FFA8A8A8FD10FFA87DFD13FFA8FFA8FFFD07A8FFA8FFA8A8A8FFA8A8A8FF %A8FFA8FD12FFA8A8FD3EFFA8A8FD3EFFA852A87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D52A87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D7D7DA8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DA8 %A8A87DA8FD7EFFA8A8FD2EFFA8FFA8FD05FFA8FD09FFA8FD05FFA8FFA8FD %35FFA87DFD2EFF7D525252A8FFA8525252A87D7D7DA87D7D52527D5252A8 %7D7D7D527D527D7D52A87D7D7DFD2CFFA8A8FD2EFF527D2752A8FFFD0452 %275252277DA852272752525227FFFFA852A85252527D2727527DFD2CFFA8 %7DFD2FFFFD04A87DA8A8FFA8FFA8FFA8FFFD05A8FFA8FFFFFFA8FFFFFF7D %A8A8FFA8A8A8FD2CFFA8A8FD7EFFA87DFFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA87D %%EndData endstream endobj 22 0 obj <>stream +…f¯ÚÉuËÃø¼…ænÞ];;íï-èÓ¬“hãþe¡åÆœ‚RN#SÂÒJÎv6… +ßœ"gÝù©ôꔚðñxÚ0êã ŠÆ÷ŽîÊÇ÷gÆZê>}q± Ÿ=¤Æe=,! %•¬Ø8Ø]/›²ê`‚]ÐX «èÖ¼“¿íà¶Ìôúe2~\TvÝÃ*º¨Á¦ÑarþœéB}”Bs.ñ¹—|ÜÒÛü’›®Òð¥¾ú¤5<-$…¿÷ +Ëî:Â÷‡ÕÛBÖ—£9ÙÊšð™¶ìë_ ÿÇ”XáikʦèYIõÃ-°ý°äu(z×ÜôiMß³i‚'n˜Ðé{z󞇉‰…+ôÒÐ §Æ+.»£FFŸ„Eÿb &\trò/·UÜâÙ'oìCoCòÙÉ–ú7¾–ª7ƒÐè³^vÖÅžºH`]?ÙE{PÙ—ƒZ&lÏÉ£ø:Š,(j߬‘i$jǯÚó21A¹lZ‹\5À’ÿg™/ÿgŽ+Þs3 KCÄLO[ñ­y@îüt¢_\5³ÀëÖvþš¥•jåTß'å½ù›þG4éêXWÝ/$mÕÂ¥.[8-*ë`ŒÅÿ:Éí{9”Wd”>i«|ìëix½ãdq¿Ï´*>³)ÛNrÍš‰RÒSª—4ø¬µlÑȬ5#\mè’=O{`3„Jÿ­¯þÓ -6뢿½üÉŽ’ øsÕ¼–ZÐðî—hÊË/n"êÇ4ƒºnE¤î»ÑÕ_ÇI¨Ï>bÓÁD…ÌÔZ3¿úÙd?$õ‚-ú/“dø¦•¹¤D…†@oWÔ¯x”8Þ~ÈŠ>‰Ê~õÇŒT¶aC±gí¬ä‹Þ¶Š{>I}Ä”´:b×…,ù<Á¢mØy8‹ ÷jȈ®ü6ÍkÛt¡ÊÖ̱«dúŠ•XºíÂ×þ»(Xård´’—ÅÑÿ´?śʿL1Žf~—,kÞÌ(Êù"¦µ¬Z5¹öz@AÈÜw‘ëw­õÑ›CUáóZÌ)¬»5Â*ùËÊ(=ogW^o?ž•¡>ØU7À©gzr®èåwÇÅu÷§$ OBJлu=*Û?ÿ ¡Üš•5'mZˆ+t겓³h¤U¬Ú¸˜ýq>oÝÁF,í9ŒÏßq 8[sÕ@)ž‘6E a“ÿh)}~¢÷‹‘\üW?¹öBäã«aðÔW]Ñ€ž>Ê˺¤oNttÓØ)Ú¶ã+‚ꆘEE]ôòpsÌÖ®pg„ ›@eª‰9×ýè8g "F˨{=ÚVõxAV¾®«x”±fGeõqú>Íx¸…aJÁæ­iÓŽ.>ðQP?,áç i}“»å&Vm¯ ð¥A=¾$¤#,(1ñ ƒÈ];©þ‹GÀß¶³±+FMp¸ƒ¼4(jž ¤MöÂÞ“s®«0Éç2XÌÊ0£|ÛB«ÛlrËÍBo +N*a͆« Q9s2PÄ–ƒX³3ÊÄìÐG‚Lб{>.mÃÉBïÛ) NÉAtæ9 ½ð¬´æÑ¶ •ýÙË$L©‘ÉãàÈ ±lYIÝrbò×Ðô€ºéCÈ„Íßs±`ë&|ñQÄçIcÛG‚ü³Ìíþ¾,P~rÇç)+h%5-[KäÜ#©äÛb‹nËË¢îOp¹?¦Û4?¦D=?&8Œ/ã,ÒŽÇ\гCGóõ´£>駺Jïø•ì*·òÔɯ»ce–^]ô7¾˜Â%÷##ÇZšÎöòKf¤µ3½”ÄE.ÉßU~{¼­ðêbóÛ7¾ã&Ö, CbæÕ°ä¯“ü–C?Ÿ¿;Æ£o{˜È5¡hgŒ…ßó +x{¾¶Þ1mÕL-_5PËä˜äÉŽšgAÉu51ï‚SyžVœò‹–wÛD/¾%ixB‰ˆ>ÑVq¼ÿ‹[ùp¢•äïƒEýÎêøôçtWýûIIõS€~ï‡%þa"§ÿåâ–=™h½tcãíbÈ;l~ä/ÔÜg· èúyyÕã ªîåtwÉý^Ы}oN¸[+ïÊ™7ãŸß8ŽK}ÿÇL7ôµGXsׄ/ù[ƒ*¼JÍ~w²$üzXæƒ a•¯nçÕÅÌŠº{’ðôøt;°ŽUªùĹ74„˜³ÂŠ'ð—§×‡›ç´¨l51㶯­<êÀE„î;)Èu=©xׂË_(d¢Æü9ÙU¾ª'—ɰ¥o¦Mù³²ºØIqMä¢ö~¸ˆ%UC¼…qµ£îíÏ 2JÖh;&ÛÛJY„ÄšÉ×äè?çúr~§íØ!ii1À Õ1;N6Æ'Å­™1U?Oàê¾O’ _Çñu?&Ä"`˜›‹jXÆ® +Y×"24øØó&Ræ)82¨„D.ɱI«Ã"䲊]±:ÌmZ5Š‹jf킊”»¬Æ$Z6ynõ18„KÝáçåØœnpÒ=½è× N˲¿é¸nœMÞ#7 M1.ró¾ÇS â©¶2„Í]¨}1Ú’r+4Tÿ~ÕˆNè‰ù“¬šˆEsƒˆãTä`÷lÑŒ ³¢ƒ$®F0¢3÷<¤†y’C? Ø\ùæ©úÀK‚¯Úpàƒq6뫟Ãúìcâö}4LÐB(Ý÷±X‡Î)žèßI&õë±nÇN,^Æ¥¯þ4Ý‹Œt jníŽàJlB‚[ ‹˜WsýÝð·ó²†çKƒu/ò†W¾îš‡ãrnÙ„”_2ÝCN iéeóGuÛ}ÕƒŠ¦7kDΪ–25XóÜ'­µ?Îem>±jg€6,ØŽ›E<˜híû2)VÝ[Øðàë‚FxòºR½¨Æg¯h0ÉnÉõnXÒéŽÆ”“vFý¹>zþX;ò“ +“uÑ#jŠ0sš¢Ü­ˆ Ÿ±b¤”ÏA? =Ù× èîBOkÃ;§ú.cS×´ˆÔM#¥l`§™>bòx.ÎÑ~ék‡FïÚ˜¨Ñ£:4IÃó™Þú7*\ÚajñCG71FÎE=ç&œîo®¸ç—â“ÔäÒËÜ¢OÇ)a“ßÃ$¾9…K|†_”t¾Y}™“x–[sVEʸÆ,~ñÛ06öw!ö” û«›rÕÉ+~´2L(uK›ã)~îÅ?øÇÏiýêã°W†æ4½›îȾd£'_ZP¢Š¦IuI/Ïzºêò?‘€Ø9ÝQýÂÍͽÕßüîÅÏzL왹ABµ*áZU܃?´„¬'[ztNH ŽÜ5@â¶tUŸ†)Ñ·ÄÕOÙ¨©¯…/Šþ]…ÏŒüâ!ÿ™eÐÿ™$68Q›&pš™“pCM¼6£húÔOÌ|.G&\ÐSSï˜)ùÏ–úáI»VlIHHœ”Vðpy 9{ÃÄ!z%ˆìE±Ø¿Œe5­jÃHoX×ãr§% ¸!tâ5bÒcJdâÓ©PÎL_ýÛ-ÇQý›¶ç££ †ÜeÓ×lT˜•WtwYƒL›"*-5q˪†÷vâ•¥Š§ÛàóÝø²%5äÀCñKšºw‡>"hÕˆ*™ì¼ïh|¹¬†&nšqå{&þ›ŸÃÿï¯wÍŒHÙ´áJ>3Èß&즘‚áïë$›þe†Åú>Çëþϯg˯øgšÃÿŸYnëg±z¾ô6Ð]÷d®¾ k~»¤jŠú:Nlô)¨9Kjjå:Ì® ªñiS=Õ÷ýÅצºŠ¯/Ë‘±%%ÃÓ‰}7Û‹ù¸i塦@o=‚œ ¾Ö¼Ë.Aöå¾h|•à•¡b7]|`]Úö'ÚdŸý\Ág/ ½î€gḻlEä˜y¥·Wµ´â9!k²þÞÍ©¼¹ÐÓüfI†K ô5¿w ò®,ª¨¥k1à³Ò SsŒ¿»èÖdWþõEemø–X¾>ÂÍ@ß­ÐüÃÇe_2â²2øûÉnðËÅATÜÑÙª=7·ïò— ”²5+—¸íÐ׌´º%#³~t[dí£ÄÙ;‘3JZWFÍ4ð¡4„¦;Ãø ‡únº “8#FEùDàÇVfÓ}5ªâ‚GPsGI)½ÍÌ}{Z Oýóhߦ˜¤=µ,hâÁæLbеÛMÿÓÊ,?ê¹P׿öË«Î(Žzƒ>lšIUóºn–CÚV/•\Y1âj6Í1ó²²{ž–¼‹rh쩞ƸÓ*Dòï“]uáƒÔâ¦Ü˜ßß\ÿ3¬­úÓ• -,y¢%|Ɉ|}š–sïX'èÓY »ñÁ˜„‘T—ðú8«4âþŽ Møw–Á*+žO¶å]¶±Rþh©z|Ü-* wö€bÁÏÏÒrÂOüðRÑß'èþ6M#íºE«XÚhWåƒ!BúÙ€‰.þx9óÅõŸgå âcãÇ ¼ìAHYñtq èAwóS‚»§ìœø{[£ø*L^øTêËsî–Ú¸ï^.ëÇ_øÍÇeïy(°-'²hÃRù¿KTú·Y:Põ œõòþš…Hø6Ýiù:Ûaý?«"Óÿ†Ø=_}°ŠÅÁÂlc7<íÉ !ïÙ’šº¨„D‡´ˆ”m;¶èÀ…Êùׇ¯Z1c2Ö¬¬¦ ‰YçïÇZ·p›7­€F4}z=!.¹k¤ç_“ÃSÏÌtÖ¿`WGíÓ鞺ð;µî³‡ +þê£!¿ùÔ];o •NªÉ9‹uÉÞÙ:©‚¶NáŽSÈÜ6 +vŒèìC7¡jËŽÈܱbrwì<Ì ÀÁã Ç#Ô‚ ½õQ5'œ±ÏMµç<Øsr©A 3«DÅí8ȵ[N|éw? õ}ІßñQšƒFDÆX{Å£’·íÄWøú@¯Ö-覕ƒÓ×5'çNJq)«VJÍ–›Ú8¯F¦®1•ßfØü£3ç;Döœªêé àÿ ð‡E=©À«äèÐ׃¤²Gk&LŬ¸ìïÙŽâ›nVÚ9';ó¢§¥"ÜßQýzy[Þßž~Õ‚‰9³ï¥£×Çøô™azùh:2daÔÅæ¹Øûˆ#=¥§ß´r*‡´Ä’ñ!ji¡øª™WýbÏI‡õº[†Æ®0™K:bá’EDZq´·†\é´©‡ï–KÀþ!•8 ëå.jÉùcü| —V? Õ¾Z×Ó憙•ôŠ{íÍ)çÆÛA¯Ÿ¦»ëŸÎJ‹퀳¶\LÌœ‘U?5D)XsñhcüšƒT±êÄ-[Q3ÊÆˆU#,iÏ…*^u ógõ¨Ä=6]#(©À§_Þ·Ñê6Œ´ê 3µzÛCƒ\L]0&µôj[K}äÁ8‹òe–'ú2Ë~9š½ç Ô®XˆË:bî’†V¼lbÆ{‘ïrJvhX›»„e7§ºKÏ+k_Û¹&zª_mØiõZnÅ#3¿úÅÎ(µ7ÆÄlÚéà}7ºøßYhÙç‰úÔ ¹1úè;,Ù$µÐ¯DÆú™ôíQ +òÐOA|›"A|¸š ;:woŒX ð3aN{Ò¢’7¬¨¬Yyÿ4‘Jv}¼ãd!zp¯õ\u X³:nã’‘ Z61ô´ê+ ¼ç¡B¾MrØ;^}ÁÄ­µµoyùœ£úÉ57Ÿ6g¡V†Ì¸ÜÐ0ׯ$¥-XX U—P°ão8ê«´ë¿õöô¬µ´Œuâ|aƒKŽŽ‘Ô=žU¡¡?Žjà,îZ´mnNÙ4¡ +×Ì„ÚÀ`+xBÖ…bÂ?ÚÛ ÿÌp{67§¨zneež×bâÏj1)—·€ýb'hÑĨY4ðÑóF!2ä’3²4̬š$eø{Ñ‘~)"jq˜\4®bäõÓ +Zh{ ø_@“/h y«FFc6G[„ V.|Þ&"M;).yW£wPF÷);ÀsZn·³,ÇfmšÉµë6f󘊚#Æ–\áÖ¦þîë&äu¤|¿´úÑHKÊ¥™þ¢‡«rÅ¢UHXv´rÖFE¼U7 ²2A+#lÔŠƒ ZhUkVLvHŠZ+ZÓè!‹ ϸŠÍŠ8±i`6lYù˜53³aÓMk^uR@‹6FÂ… Zw +Ûã–M äêQÏ'µqÏM‡í²°Û.&lÉHÈ™ìCF.1ªõ\°« ôÀÝRýx¢«êÀÚ/ÊÚˆ –¾á¤Ö{û›½½à„½1vÝFªö÷Õ½šfÝ?«zÿy¢!u×GBmxŽóVI›Gƪž¤–~™i×}mQúä-,{ËÙ”´íDî{‰µÛ.RÕ¤ü<¨CgúHà=7¶dËA(ÛÿÿÏÄ`+VMøâ©~XäºÖ´3%êYvòA³í‰'D’€ø½eÃõ*É Ú¨5‹F~óºGÜ3¦hÎrôTE¯ŒÁ+.bÝE‡,øÊ5;´bí¢æ×12qÓÑ*\Ð3«jZ^ÐQÊæ l蜥=oïÍè¸õÖ6JÜ”AÑç×´-š9``¿Ê‚béºÙõr‡“-½{~žhëèŒS M³;ů¹ià-›¼:Æ@ÏÚà%7½ácÓVœ,„žQ~}\ŽÊ[q +ÈË&RñÀ +VRõ²‰X¾l¢ƒ7}m}ëãƒk^QۢѸík“îM +:·|D芓Të ~òɉ‰ÓG3WÝøº­êïË·ÙVåçi¡lßÇoÛ;š2*äû¼ò©A^Å‚NÛtŠ»¾M‹5A*c~ëïƒÄŽKš#æTˆ¸€»f2vÇZ»·G¥Ž€¥«%häCÖ,ÌŒ†Sen?sw"ÞLÉq A«iÙÔÎ^µöH¶<<ʦš¾f§TÍK³KÀÑVzÑï^¡pÓÝÞ·ê’¨BÎn¥_ßAðjZ!£}¬ôiµ ÖÝÎH HéE[vaFK+ÒŠšY;‘ï&UÔ²E“ãîÁDN àj`}Ìäú/<Á†›K^sq°3Z|öô61ˆøuW+ÕÙʈh«#lĦƒÛ›d²W=¤ÆQ>Yß 7r!‘Ó!ÄÛÇH_Ò1Ê÷¼tĆ›C^áÀ×:{þmšŠ:œä +–\Ì‚Yø¹˜½âì–-Ú%=³f!zÑ&$…l\ÊAü bn¨ùÓ¢“¶f¥¶œLÔª_¸0Ô h¿„M[ýÇùÁ¼»‹ÚÆ÷›V€#­µ ÄëU½>Ö¥Zqð¨«@tYÞ”œ˜2¯%ïx-Ã!OKW©ø¾œt~AOmŒ¶ˆVÇÌà7¥§,Û9ˆe€ÁÖ\Îö„x`É èªafù +ð÷uŸ1oåc'­¿®Ð ¡~•L8eÓÊø~],ØùÂ06{YÍÛv3›^gÝÍ%lŒòhûNûÖ W°1.hÙœiUn͵évæDÊÝ)ÕMCÌ[(åþ!R®HÐd“Sx Ì €¶«Øžàó7ÆYÄ3µvÃCǬxØØ…jMÈÀoxÝ㊦èIUCøš`o ¥fÃÅÂíMñÛ¿/µšŽú¬¹hÐ…ÜžØguÌæ™!bp=ÌõQ>ww‚ײ?Ù:°5Þ*]t2ásBþ²“R¿:Æ!.Z‰…ASӇãóçËg·ã`¢S»`â4ùÔŒé!aƒ½_P •žõt`²ö<Ö¶‹…]5ÑŽjö×¾Ù°  Ö]í«ŒI¹\qõÄŽ‘Š=˜”úw|}Ð! L Ó‹|rVŽ[ÂNõª„U\Pá¹ÖºôûË}×+îÙåQv€¼tOxÑÀ®›V‰ª}ò– +G%ÅÕ^÷lAH_6‘Ë— ÌúŸ0¥ÔN÷P|šv¨_CÍY6µà gÎÚιM£RDüì ½aN'áMè´r[¿ ãhoÉZìÄmè%ÌÐpŸpÁÔÉœFe/™ªÞïA{êˆï[¾Þ‘5«yaˆœ»¨¡•nŽÐwÝ”ú-'©.he€üCÔÜ9#¼ln£MÉIi¾¶Ú;›fZýÚ½îâàÖLhÐÆhœ"el¾å‰ŽúãLpèÛ>*by_²âd"×m­ ú¢µƒ“bènËò¨Û!‹¶.ñšC,^1s ~),ÚÕRõhÅ„+Ýr³I Zb…•_sg¢·éõ¿Eº=ÙÒ³áåRC#„K™së·gh¤ÃEVǪ—A\°wfZd»ãÂÖIbÓ®ŸŽ[quˆ½Ê^„³_ƒ3w‘ÊY†ŠÂ{9!é‡Í©dôQ)7ÝÜB{åê$Í Hf‡DnõÈÖÛR¨`ß9„ð”ÃñŽá ±lÅÍ'{5ô<»‚›cSÊк^5D&”ÄwÁ±w,Lj~HÛÙ²ã·nº8ˆy¿Î/免ˆû²uüÞ4 ¿/K„a<À–þ4Hm|½éè–m8zU«Ž¾áqf—õà Ýý•¶i£O«jÑI†Z¥¹Ö^zTíT»ÍF©™¥ài*elE±‘tŸT†xÔYÎx­Æö'Eê*ggOõ‚Z€øîç°ÿ3ÃÍ +Ùö·ÉÜòö*[‡¼|¤SQëênÍ›32+f†1ÉK&RźSÀYüÚ§ÃM­Œ&&ñ©¯—QhB’¦•4ð¼¾3gâc‚#Bö¾¿Mñ#Ðn| µ1‚,:œæuíѲ«£uTÉ,щ0ÏeDÜ-‡´«nÖÜÉ^w·µ‡¬,°WÆÈuKˆ©sJzI`]«ö|BJJ÷÷c²ƒÄ¢M·çÍ<ÈÌp|T%ªÑ±ª–ì|ä’•^hý¬€žQêV·7jŒªMV`éé,uÊzÀæÞÞ:³LÃ4õêXún3³“Ô÷I ç=s÷wÃçÍ´ “‡Yt (‹Ã.9è ë^jÐ!7¾äXÍ!À ëúG†,2ϰ¾ß*ë«ïm“% +ùŠhYú×$¹Œ oT¥Vþ‰¯D½S‰[kg‡… ]€]ö°PJÍδ ë¨÷Õþ´xxÓÏb®Œr‰K¾ŽN¿CLu꺱YW¥y §Ú&뮟2u3'ÍÒ6‡¬êìW`íR•À.ëÂy5´ß@*÷ bRWF„äͱžá‰þ±ÝÙNËöd›|oJØõeŽß}¸@gÿw•#ýOP ü:'ØæpÖ'¸ŒyWgû”©·ÅÒÎH2´’ü¦VšGM/œ±w¦Xœ¥lÙŒŽPwlùzÌëc­â59ÒÅq r½tŒ+#º¸®¼6Úð{1Fút€¨JT1ôy= m)¹ .§Ü¢ÖòÞt‘U™]ôžlsG[öØ€ `A׊Zóö»æýƒã–>‘aPÚ¬ëa2ù$WÒ5áÓÔ¯e4M‚Idª·´©ëâî"§tªiÕ—õ3­i’ùCyöze:â*´œ÷¼Œý›‚Öž²æìÜë˜Úh.9'ß*ëõêà2©ÓßëÆˆØúIó¦…aKëM6‰ØÖL +~ðuUùruùÒ§$ä©'O Ž…ßH:žõ¶æ7¨/RÅuTt)¡!¡pw U²åÅUN˜ÕCí}Ù½Ìáø.ê`d7«?J#ÕÔj:»³Ýò.hÀ(—ŒÔ]Æþþ·ýƒœØö\ÔŒzNŠýU‚%Ìʹ!‹¤uc¬S~0Ýh uQSµf†çî·Ê.íÔÈà[+é*P +…±*^O–KaëåÂiSŸÈ«ê¬àµÄÐêêÎɈ¤7ÎŽ®¼(åoK”5«î¦ ]¬i«`aˆV<.…ÅÌ(ù`§zH02$EލûºÞÖŒáNn´^ÚW8Щ/éêòÕ3°ò'xó!Ÿ$I uyD¼,ªª€p» y;=©ùBqêJMä‰#ˆÒwöd» rþ´­“¿ pÛ’ƒT3;ŒÉœÐ‹`NŒª0à:–rM›#  å +(ÆhÞþ×^/«l;››Åü9;—þó½û±anxG÷DSWÏ +IÒ½DhØÒ… }4Ÿb‰$áUÅÌS9˜_«òq—3’à§Ÿ=Œÿ='¶ðnE–ÕKdÜSʯ*P±¿N÷#R-æ~ù€ÐÛçFð%eXºçUuÃÀZê.Š:QÓ0t!üUõñçÏKN效~Ë)ë=ýäEuØ¥«)aWnd…½‹§»ú¨.ìuömyÞ×?Jr»ç==36.Â5,å ªÜ­}sšp6„²ÞŠI Ÿzþ¢æd|æ—¢2Å™ô|éÏï?QÝZö6†p,2‰}ìêýÚ°»á¸°üró¯ &Ãu^ñL!–i;ÚÒÆ”Œl¯’’fWJ‘’ŠÓ>WJN$4ã,w +Ú.W‡®ÖMâ ?=}RtìÊåè°‡÷³Ã^F@Ãþ¼Qvòäݰ»wSU7¨®|Jež¹ÿ¤ê·´tüß²öþªà˜¸cª¥oÝÃ¥M Z]·Qk•©G{úd~v—lGLg ñ†û(ôÐÙù +‰³?«®î¾ý®êLFñ”¤ú¿2óîÊ[ØA‹7ï`!ô9©£ÏTÃÏäâxs1 ¤‰ÙµŠßâ3ÉÇ3(?½k»ù¢(ì—¿Þ„=|O {ðvånvXj2ò$ƒ¨x®è*w v69úyÙ•’ WX‰‚no%IJ‡3ƒ¯›(*‘΋Iù­?½ý ‹K"OËüô>‘v3¼&ìOà½.ß+ {öö8wìñ[äÏU ½í†»\›3uqæ-Ò.Ÿ©‡¯Wµ—÷ÊŠÉ]¾ŒrÜäõ"ˆç¼ëoñù’Oc(aço•‡ÝyTÀ8öì=)ìï§MawÂáa‘)‚cI¢ãOÞÓO¾g…¾*JÒfí­›€é2ö°ôö— †æ-ëúÅÝÏ,8Ï8ŸÝñkjNû‰‡O+Þ¿ÿ”Âø96Kxì™a¿üö6ìï{¥a#ÑaÝ(;ööî vøÓpÿhgÀ¤µÏ™%íã¦6ºfpÊ9Ò’P5UºSßÄ\¯CÞhDŽÝ¬i4Ï+”œü˜È9™’Õq"âúØÅkÉaO«Ãî?¯ +»x=íØÛ(Èq¶ÿ®”ByhoAD¬Xm(§»k¨×îËÇ—ã€÷|•R.¿ø$êÉ{ô±øtáñ¤ áOo¢Q?]º›ìeòØ'ào±”°kÊÞÆâ%W™OfÕ9~‡ÓüQÝ]¦²u|yL¢Zéö˜¬ÃÊöþYµ}¥Ι‰€Ü÷êÀº ùeg_¾Ÿ¸v¯ìØ­gõa÷ÂÂ{ñâEóDT¶ôDV­é”<þœ×æ/èïvA¬j w|HP5gbT»å„¹þ‚OW¼b·ø2)âÅl(#ø2·Bõ{\*û$àsÇ£ã9Ç^EÂî?i»û¸ˆuذðdaØíüñKÀ?݃=ž§ø%£ÞõwQ½ü¡D¨È›·sé‹FTê‚ZäT´×ô•i­mce\ñtš6Þˆ™ºSœ¸^ +¶KÍîøéÑ+XØóHüñWIÇÎ]JûýüÇcñ™¼SÐgËò0·ÝýØ9«ˆ0$ë­•Êô°ö $·sª”,šK3ÆÃ+aCWrx¿F§’NF$á¾ð ÷Øé?^…ÝyQØýxv1ïw<´ûƒ¬CrhdÄy‹>1HÉS‘3ƒ¬\µRÙÔÞçƒ0ZÉXºú­½V µÝŒÊà¹tüþóì°ìÁ©Ì2Ù¯1Ùâ“/b§c’çkëäwˆ8éSU;çݸ’ž&¦­´ê39eà6dì™´=£Sf³:Ç ±4ók ÅòJy”S«ºð:üëÓw?L"œHÈâœH-dÿYÐ ¹^ W\c whç‡NîH®N¢…í"ê‚¥9Ý;ØëжÁzÛ¥åH,u40EŽÄÄàO¹­¿½Idz…=ö4ØCͱë Â^Ç`½Nd‡]}Öv ÈQ/…añ¥ŽSÅ Ó}2ËžcPÙZ­­ãjT¼SyåѲKT*ZØë©`õÏÔ {7Šëiç•M– åº?Ò‹ÚN_¼]võNIØÃ—°ªÂ.ýñq,-[t¢ H|†G|7Ò×Q2§cT,Y©5ºvì[£¼"ë3‚™Í[f{ Ø±šeb*º'…µ’k5MýW@hí­”Šî+#¡§#baÇ’òø'ŠÛ/¤VµÞo" ½fmÉýô¨®2og5lŒsÛÓ-ý£¦âà]Ø¡ôSYo•=E¦ÈžRXÊ—p‚üAIÃÀƒÌŠÖ;iÅÌ»Y%¬Û0†% +Ì´~D0‘<‘*F«–VÙµ½PVŸ··sf†)ysBž_ƒOb*Ú…)Ònyqw¿¾’-ŒÄ3a ÓëœÚ¾ÑmÝ¢üríqí±WqØ“ñEÆ—õ/Âxn–QÆ 53Mù=ƒct—YE™Ö³fëÞ…,ØÊõQÏoê iµú¶.•›*ŽÖ’Ecq0æ|T-vìvÂv)»RvúÞ‹ÆcgΧ„ý}¿ˆÍõÇ#S!ƒ1âq‹ô“KÞV³e'ÁÌ-8ǰ¦Ë¨Õ‹UƒZlŸTWÕÞe/á‹­ ¾)Kz à >©…Êo%r~ÿ˜„½˜‘Ï¿Uî}ÆahÒ­ŧ1È—Ò~@£ÇúšÞXÛÊîze ˆÑa^¥N£ÀHºú³¨æ<”y™-šÊo¦8#Ê%7Ó2Ï¡­WQxå(Rqƒ×Dó¹ƒyò®áZÓ@Où‚…Z¾ç!Öíâ*6lèœÅa\Ú’Ÿá’b#-2A‘nx¡R!¤ò"i·¦¤«ÓTÌáj#±ä¾Ç0´ø>ÓóK¾%ñânÉÇŽžþ$¥d¨Æ¡ÐŒ}”M§ˆtàcàB#ȼ9 :aéëv4ýfƒZ8¤€wv¶ÆrXÝÏÑdÓÓ:´õQJQç…)¬)­¿¾GŒLÆüŸÏ?þ©¨åTBYëÙŠó`‚3¼§Ç‡Ñ™[ÇT|𦋠ڰeA+¡zËǦLŽ´•}´®®®ÔVÅ$ŽÙµP†e¹#á4ÇsÑþ8*“yîÒí¬c×ï䇽‰†ûŒ:STÎÿ•=àQ´ïÍ’þò©Aræ”ò.h"•. 3ª­"´wXP©”ÐÞöhëºzíÕsa×€©V,Õ”·ˆå ®¡4Z‡+ LP¾k„ñï¢)Òl‰åÿãè=ÿÒL×µá÷}ž½Ê¬)™™L&e2齫±$öÞ{C¥#éU,hÔX{CE@Dé`Á¢HÇnÊ̬½÷ïý7Þ›õÉR¯ë<Â}_çêML T̉û0FyÅ·\O?5ÕÖ~Úih?ÞjlYqó禹b©¨M,àMõ–Œ÷t§|ìLèëÍèCúG§«û†&Á>ˆ‹{ÇT̉Œ=!êOuÕ„®‰k‹MsïHÛóï(;s‚ºº3ËÙuÍü=CK㺲½V=ý9ÕÇNìÀ®h!?èðÞ‹±Œ‘{ÈZYA¡3 Ãè‹e´Ém²¸únq|SÏDl×ÈTù¬j~Æ´ø±w_ÏAïÍcRj*Ò·Ò6ê[ïQí>N(eÃÝÂÉ¡šÁ‘1Hg¯¨°}pÓЩÍaµj’1®æWv\K,¬½Ÿ ¼Âs›ßv ûÉŠÙÆÂ8-}¹³8LÆys{g–^¼0Æ,6N5ã–Ä]5úÉ6¨j´«R-ìA*F»«Æß·F´d uˆKúÚÅã§«gz'š>ÐÚXOµu²çQv¼ó/´u¸ÔµÕ›ãŒìm!«Ê§nlpjêˆk’ÚRÍxSÉL/UÜÉJOO·ŽMT|èÍvµ$͵”¨¦ºqêÉøuù@óŽæ=gWÕÊ´kÞ±|‹Í‡Æ&W]S¼Ú_zÏØºk•0rÖ…Ì´éFˆqæ=Y7Q[°&o¥¯Ìvrµ¢¦ò‰ôÑôÉâƒÙ¡¶üùÉ^´aš_°8IO2Ït6:•ó>Msí¶¦À=|»+ÁFoˆq›3|˜E; ÝVˆV¤­Dýd}‘jœŸ/n+ÿ8PÔß6–ÖZ/|M§ÞçÔÊÂ謱G VûíÚ†ÑMïdz:ºR†ú?ä¬ÈFß;µ#³vEK㎄Uq¨o{²Ü9ÌpÎc²úË+z*îÎõÂä£CäÑþ9RP«íjôûA=žÝ8†€‘/À@˜ L2çFk[sÈØà0X>*d-‹¸ÛSüb·ŠQéV2ÁGúºš­AÈ¥ ù7MGÚeíä邸±ª yÁ†¤þ² ©co/uõ®Ì6¡ÔÜŒ™~f¬¸‡9;ÌOÒI[àfã»Z›‘‹ñn4u™ßõŸlÕñ)åÇFâÐÈÀºµ´ŠÍizÞº¶«S/ïoYŸënð,µ¶;uï[íš®CÛXc×ò–yVÙö»tSÞJÜPö÷oªÛx¶…†MÃg™fØE{JÄ:O.²L¡Þn"^øulÒÙV‡Ô¼Ö®aCMr^•QHŒ7K1; +VÕÊ\;àtÔX'/R¥ý87UŸ§¥G«DMÅE'c]ÙˆÙšk@:-­G[­c.-½Ò®¤äÖêøÇÛ݆ƒ­­wµ¹Û¬¨Ã)FK#µKfúøóÓ]ñx7xJ, MÊjÇF% ‘p”(µ”ëf™Y¶ÕæVßrc³Y‹\h;ºÐS·%„¾’ñ‹®/¼''Y&[È»ÓÜŠ­1üCgÉåîª;¢ú +³¤¯«-㢞»d::‡NùL‡ñÖ2 +~b‚ŸÛ¤ø„ýYjÖ–ˆœ=Éο»Ù‹Èø¼ÀÂTø Ï<%×=OÉè™(»†1ÍÕÁö4íÁÜÇ)Ÿ±Žô~‰U†ÛŸ'¦ùtŒ +Ÿ†Uå×sf -Ë6WW}²Ä§œ-s‰'K<‚sžZ²1FŒ]$F®Sô}5Q›"f‘iššk‘“ +fep†´M‚·LaLÀÚoŽ`C7†‰QëBnþÖXMºOA. +ÏШÙÐ=âVP‚¹¦e~]-É6ÏGZD|ÐÚ(-su„Z²5AJXêG†,õ㣌£ôÄi;qA؉6ŒòÖ'9Ùöù¾aë\G«CÉDY¦«ÞlåÞñÈù]SíñJ[ß©±}ä88gJƒÉ´L@£<Š:²_ßÔè_hØçkÀÛsô²õ¹–Qþ¡N=ù,ï$½6‰ëáŽÙ¬]FïȰyäÓPËýšZ ðzÃÇFÐë\èö)ÁЕÿ`ožv²L®òé¹xç<§zu²Ü[z°Êø–y5V)À7¤4Ó*Ö§"ƒ‚ù~²7‹‰¶Îàã—¹ä³M.ǥĤé;so™‚3 ¦o¼ +Rá— 6ųVË\‘² —…Ü“­wCv).i«·êÑj;è®ZPxk³òÔ7G)<Ô×,RXÞ\tÝ4+ÚWr`[ãðçkƒ¥÷—?ÜÚì/ºû‡‘^ý×F]ó—µúö€†:\åóNM]ª£•¦ÎÝ)蛵Îܛ˷Ìc•/W蘓íæ!÷x´Î¡üik;[ohß—aK·ÇK"6Grn™… W'‹4ðù +ýyƒßè^¨o0ϰËl*.Ú¿Ú>áßìš÷o´ º–ø{ +tMDJ\1Šö CmW—IÙˆ·Ì×WïÎòá~=·æx‰M=Ò3 Jrù±žZqºÛ>¿=XqÏ%¢fØŸßAL¾9ÍÈ{à³ +“5)n)5Ç2FIÚ'Ĭ ^Ëxy×|ÒF¼[^GÚQ³7zБ 9÷PE)9P×äïM@•-W[+^üMY[ðêëRCÝÙ¹Ü>YüÐ2”}uºâ™[NHõªx¿¦‘n›aAv§qÿ¹OÈ«¤—ûÕ¤ÛtEèöhÙ³=`¶'ñÑ9õÈÀ®>Ð0 ^»r_†IÝE„®õ"ŸìŒã޸䴢ÕAÄkC'è¦EDJYF¥:Ĥd»¶Ö‘÷ëVwѵÍ÷·€ÇX&)isõéßïLÀÝó<ÌÖ %Ý!ªIÛB†:¦°191Õ7KL1#žÏ r/Ž’¿sIéÅgK‚úç˜Á¥4tGNÉqKIÉ>%³ba¸:mº.ç^pŽÈÖ,es @%ùæÀñvI^ÄéR د¡•4äZÀó(›ê÷uxó1Ù6]öÚ­„§z—j©.C=Õ<³NbR|JZ•uùÆØQzg©=ÿŽgíE½9PR +ÿ!lÓÄ´ýYJ–[Ã[ÄĬ€Ž81²0.9¥p_ŒOôÏa“¿i¨¯[µõÀ9ç›þ…ÖV¦çUP@6iu¬C†O¶Í`“=JR¶SŽOµI1qÛBø«“eNM@G4˜<ï<<ã ˜-Ã&zæÈ9ç+‚w§ë -æ)t䮈æSÕ³¾Å»¦ ÉžiL²GŠI±Œ"Ãv'q±û2Z‰GÁ,÷+ˆ™_–™¨3=³êpž±õ!÷u¸ä•©·ðÁöpáý?-¼Æ³56Û6ƒO3a³ü*:үÞ±ÅÇKCŽÎu«HùÁ™+gkõ|—Œ”½6Xiì/Šõ*‰°“e>ÿt‰Zí”@ã÷%à°µqLœ]Å'­5w}1·Ž®76»—ë¹n=¯Æ£ª);Zd ½Ô£fãmsL°g­©Å·þ®kWœ… e?Û…¼°çèÌaS¿Zù-n1"b»ÜÞŠŠún†]ü"0Çz$Ì<ß,£psùÔ4yh…>±Žc^ïNÐ2–ºÏW? _ù¥ ¸sµ€z`±k­{—|QßøýÒ»ìkû„,œ‡²‹1o­c 'ÖѲÇþYTì¡"˜;‰ˆÙ¬ŠXí«Ö ñòPÂjÙ(ë4Ì<˜yeg$ÿö¾î‘×dúUÔbï.Õ.B…{f¹€†ã¡m"|¬yùЋ·tm9·–ºŠo¬÷WÝ_î?úˆ‰ùioëšÄÇ-7gÿ:Cýn‚ýí49öûÅæÜkڦ̟LSˆXe8z“|é@Î…z¤ôBÇ$:vw¤ø‰±=ýަ!é’¡9íÇ•Ž’[n)£dGˆÍ±ŸÙ!©ŽõÌRmãÈ׎1T¨UX3Y›yµñyžþy¡¹ùXů,|´Ð–peícÌ¿v¬%fªÈe>9¹88ÃÁ¥¬'8åõÄÏ <ʹ‘…öé™°ÿÌè'¥jkŠM#g}G6!⑲*ø ·¶7ZõÒØ™Ãv{¼úõž›èÓ²`^µbg¼"rs ôÎZoéÍÕ¾òÛ§«,¢U ‹Ú›…Ø%U‘‡rñ±šRöyýkƒM?ÔA›Ce÷3˜œÓeA³GN/Ûáâmc°PÇ$ø¥S\s¬ã TtÈö`eø’¬Yþî*Þ'Ã¥›úŠ^Ú'ªbw†Ê_º¦ ÇBÅîxEÄz_Ù½#ŸÐr0zB¾WƒL´KÁæpˆ{ŽÐSJüZj¹eúêx…Œxq¾VÇójXè äÛÕE÷]3°Ÿ¾¶îh¥¾öl…?Y$CNÖ›Úý«Ýò³ñ›ùMg\¡Uß«|ábbc–¸”1€R\Š_I®:PRAµ$˜lÅ:¥ÐÐ…îü+†Ž²ßMCÕ¡N«À6AL2õ!žy¦ÙÅ{“äDû$°®ãЧ{˜È•°Gê¦ò˦\ä‘‚³Ž`Þúä¤L¿²&o_„Ï:WáòÎ5Ðèc5:yG„Ù€==V± óÔâ½q O‡+îkI?M^ýMÁ‹ûî0x¼†Q®‚†0s~>š£>/PÊÏIE5*~o²üÉZGίk­y¿ì ã¢V‡hI+݈‡ûBbÜÎúí®•¸7‰ŽÞ¯[ïÝ^éª|éÒ3×? _÷ÂÞü}‘ü’[ð›ñ}Ámëpùcï,.Í.Ã'Î4ÝÂ%ýtÌyâßç]^lKº ®Mº`hȾº7 ~u4O]t„ˆ–ø/}kþ“%:bµ¿üÑ89é[)+ã‡y~úC˜ÈY*ž{d¤<;À©{Ø8«ë˜¦¡]Rb¾ˆñƒ˜ùâ']Cø›=Ù×|jb¦KÎ(Ýì'fíô£ÿZ­ežÙx·ª:qO ðíhîSÓ@Ñ•®òßí¢:”yŸ°ù±øÆÎpñ-ûXÅ#]cÚ…FìO€V~l*{¥mÉüygáŸgUXF>"B·‡¡Ï̃eÂÒç +à‰è•k#°×Sœ¬mRJþ¡ƒñªéåæQXÈòû´ßíBÐ3×DåSÿ2út™S·çëÎ8úÙßíRTtmEøÅì—Wþ9×Tú×:‡úi‘± !¯5ÌÄKRBÄ÷^â÷Û à5ðÅNÐýõAPøù*ƒôÕT+ðÉkòŽT5.€K—:Ó¯š† Sð^ ·3EHv+øŸ¦©ýx±¶þßëÚg ë‚¢w‡rïÛR/ýµÝ4Xlú°?Ǭ>ÔÑªŽ–H>-±Â¯&žÉ ±`{¨äÙZOÑ­C=‡œ™~¨ jj¾ož”±Ù›ç"å¸ä—Œ˜ìÃÂl•Ït­Ig¨qÿ²Ž³V>¢C–Ú*oêÞ•ÿ¦”_1vA–RôÎ01FÛPðËF/ô‰m÷Ö)¾5—Þ[jOýy±5íçíЯ —pªä£½RfÑöê…KLMwIññû"ØK§¨ì±OŽÙ=›¯Ïøi®¶è7·œ Ú€¾Ø†¿´ŽÃC]RTÔÞøév/ä‘y3ÊȽԇŽÿv«á–2 bJ†yª®Ï¹(«‰þv§¯âÎZ?>d„Ur™ôðÿ•1ÊîͲËÝbxär{æ%UCÜ…YvümSéí} §üÔÐÈqJ(™.)9Ó+á‚Ü´´9³Ä>ŽŠœåÆ}?I ÿ»¾9û°ïáVQu´¦9ã§ý)ô[¯3íª'ºÆÔË=yO÷„a›}ewV»+BO4]QGÃR;!\ß\±þu¢ÂgÌ#ã¬S ÆžÒû}¸ø?TÇþüy¹Ì±š…¿™¼¾»Äˆh÷, +Ào\¾c­n̸´ò!÷å¿·™Ì³U* àçÁ9…Ëï‹oi9×OWXÄ#€Ï´ÊCg¸™?/r_6jÝ2pìÞxîMÛXÅëÝP˜wšP"þ2±iŠ.PöÃÒ 2íÓv§úÈ(hsËk +,£…7•µ±?tU=úNÕ”ñðh™ã—?ûn©ôöHÆk˜•þ𫀚\ ð{oŸ¼=\pC×ýmoõƒÿ3„ûn}×AÎú^Ê)¿»3NI2â#ÖûaO”‚⛊úüËJ~þÏ+­•·w'É ªÖŠZAÞ·Œ”¹7JŠ·âßøgѱ@mF8&a¡ï>Zj+¼¼/|Î 5Ë>…ŠXíI»hhzû­š“ø¯¥úì‹Àsâ–†ჄØoÞAÀš-7‚Ÿ; +~Ÿ %|ÿòúÛ6Ðó¿ÉØ?­öÃ_ˆê +nJy7L#ÕKewµé¿;r×¶^Ÿ %÷ýw2Í/|0ÁŠ»h¨ Ù¡“]S„4·„^`á2œRpŒe¤ô. å¢·Fˆ±SÔÜ›æ>dÊà¥ÍC•Ï·JÛÇ+Ÿ9…ÊÚä SĈï‚ýf=ßì.¾1ЉÿuþúÂRcò¯^1,â\K-=T1*7û1oô ß=“íÌÍB²K„ŠwNW….·çÝ4¶ÜÛ‚=NË9_n¬wÎÖäî1á–!r‚c¤:Ü3Uzß:\to«¯øÎJwù‡˜‰tÌðQºÈ͠Τæ¯v!^j8ù?.·TÜYh+y¸ð¾à¦¾£èKF«rÏÔäoõîm|,{²õ±ÙSùh£;ÿºm48?­(t¡5ïÚf/8ä@UKT +JnÌqÓpüÐã¡ÖqôÛT¤ðÆ>ГtÌÏÖI|†CJΧf\l(xþú ‘—R¿×ø°ÖŽ´LS ÞUÇ]aÞÿ¿'z:Ø;G)2~¬™å$^UðRVñr.ªyéJ|!§<ôÇÞš¤‡û +z¥MBÏU×f]SÏŠþAÛ”ø½‚ñCTûÇ“à’ý*&d³·òéfOñSSOÙKë`e2€ù‘Ëïóî®̹òï]ï%–¯ö–ÝqÎ N[ÛOÞ5ÿ±É¯;4àraÃ_›¦`¯ýål½m, ¡ìbtŒ[óÍU§»åÕI€§Ó‡ý­¡«<ôð¾9zQ°n4´2Ï _™ÇiÉÓÁsXœ¬‹‡Ú:’¨mË 6|¡=㦢áÍÏËmÙí…¿®v‚îl 11Ú¶²‡[C¨(óìéZ{ÁåõÖâë{ðçÎi\¼¡;ÿæ4õí7ëà0·„]¬m.¸¸ØQzKÄνÖ‰ùqseµjš$Ärs®N1sÛ™ ¦êÚ+ž¶Ã£þÖƒxý_ãĘL“ãþ¡kÈ¿lìåd4 ’.¼ƒGýè’Ò ‡€ÆpŠ0€÷@¾^îÈ¿±Ö{Õ:Zz×-«Ž5|€?®/ ÿ›þ]E´ðœK…÷-€þé+¼¡«OùåøðÚQ?­ wa¢¾Ÿ"%ýj"&l¶—ßµßóˆ@!æÞ´—Æöø»šÆÄ_mÁL«ab>·8ä!5þÆ‚ õΑ +}3Õq^ 2z²ú °WYú®ü›ÊÖÂkèÌã5i7}€®´ý€§"N””bß ¥d³%e¤|¿/!eíMÓA í§ Í¥7ŒïA÷5y×׺‹zÈ+'ä-¶ÝÖúv@AÙÆññ«íÅ7–[3/[ST×G}»Ôšþ‹ð6»Óø$Aå›¶#ÞC%j)EÎ'-¾/|¤lH½½úð)}ð×9µ7MÉž`dþ4T“vUÿ±Õ[¾;Š YùQ4—?oG¾ý¾ýÛŽ3##Å쌋B|Ì…Íö¢‡ŽQh¨c j!"šaÑ$e N °-$ÅkŠW5ä?Yè*}»5Xâœ*ÿ¼H¨ücƒ‰·LácÝóL0€‰—úÁ!—âÞþc¥)û·Aöíå–œ[.qé«?Í4´i?ÍϾ²+®N·ËIÁL–£Ej¥O‹N°‹!/÷eÈèƒÅÐgSC›OKGîIÑ~5¹ôÏ-ûÌH®ÚŸ­ +ß—"¶G³n Ý h¨Ð“…Úœœ pd~ ˜Å"«I þFs¨åÌ2@[§íŒ!BÖ{+QÏlBb¢kŽßž¦¥íˆ°1k¡O—ÚAwv…˜(7àëm\ÌjOéMë 4ät¹¥+è­-C˜×ꦌ_ÕM‰¿îÃCÜbrÖ‰Š‡Ý‘’²åÍyW6‡±É»Óôle]ÁOjâwZÒc¤ˆï¦ÈáSrR~ÚíGÇzdœÒY^Î¥àœ"§ŒUn$¾µÞð‘ Ýà‹U·¬ã¤@tËýÄ(Í{rü¼ùr¹úÔÔnŸÀÇm°Òuˆ§«½ÕoŽÔM|û >Á>‰‰vOsÀ® |g°:ÄÔ_~g£¯èîêGÀ÷·W¿Þ—r«ÃøôwÀ¾ôÃþ1}(¿³Ö]ö@÷ôxk½5AH¢gX‘zÉ##fšS\nK¼°Ù“sÕØû‹u(ç‘KK=ÖqIÚ~Ôë6xü…9~iè—åænï<.c£»à·Õ÷y—L½ Û›}U—z!/d­·«Ržü ‘t÷⹎Rv¢©)ðÎBßnä>”P".ôïý}žù­M\ý•t¥<êÖßæEOÏu4°W\þÜ/-zî“”<×ÔÇþ<‰yõ—Þå]÷*Yõ~äó>Ø+‡Ÿxç·”ë™Ãgu»ÜWñ¸›ôm7*éòB'üù(3ã÷µAðk«™l…$*‰%gÁ wa›®ŽÑ·ç^2WG˜†o·ûá'fê³/‹XI?­~,zè þ¶2CJÓwo/}D¼r̲mÃ¥÷×Ú³®®´\Ûì)ùÝ6… h½¯aÂ=•÷Üs¤œã`Nº¾¶Æ5ƒKpŒ?^눻½Ö™yÏ)%$;å´Âùºªß…„¼ –~Lêç¥ÚºcãW'-´$ÝÓ¿Ï3öU=ÝGÄ \–YTW½ôúÔ£Â|Údÿ4³ÙšXŒOëäj¯W`ìϺnèJ¸h†ÇÌ5çGh;sŸyt5¿Vs´€«þ²F¯95Ö€÷D ÝôëðY»c¨ë8á­SJÉ8вaûrŠW^“±? `œöò`Žz¤¤•8gXE!%þ@ÉÇX'H‰+•77>VÝ1€îéZÑ7$\rbbæyÕk]ÐÇæð—ÇJ.Â+'¦íOáÞ:DøØ…÷ù·,З[àû66É©à‚5-¥WÔ …׌í,C°Wö|¬wŠ^är]%–Û‹oúæÈùn95Ï:{³3‰~»Ð~¦i«z²þñêDÃÇíL3 W?âCö„ØÖ¯Àvüä’’’µŒÊ½IhèÞ82Æ'P7z©¹«íð{ªúü«Óô˜Ÿæ8‰?*ˆN¥€¼:BI‘×ÿâš"§ºô@K-ÙŸEE«Å¿Í×–_WÖ—üf•Óís„ëàfJÙÙbS醋6ö”¿"Æü(á¤]Ú?óÌÓAg M gÁ™ž£ˆ—¶iZÑú]½w®¾Ñ‹‰Pµ!^ÈÞAï$æ|«lZ˜Rn,{h/x`-} |Þ(Ûä…o¿>T"ææ\úе#5©`»?ûÖbcÔÕŽ´»æÁŠ×Ûƒ çžtRpöî0-ùGY}qX@Å‚kkнr\’¡=ûúxMøvÚ5esámM+ø…¼¹êaEÂÝï&ØI÷OÔ˜ÌÍî‚Û+-ÿ©íßšr¯¬},{àVÔÔæßÉyþËÿÃÊzú­SJƒhYÕ¶‰ŠÍ¾ìÛKï³~Yé*»¹5Œ|µ)ľé"Åÿòò½SŒOñË…³øäýihŒi¸äµCTP¢bZB¶þì-°…WbRÆ‘v¨¬Î=[¬­0ÑV)Uó®â¾ˆ–óã¾”Ù›©I³Lc£7†ªžOÒã¥%ÝÝ—¡³N–¨5'Ë̆ Dâ8;é²UŠ,øs·VðÅ̦ڤÐ8eSÒ¥ÅÎÌûöéŠ7‡zL†qKzü/.(üÁùVS?àiZ>-TÔðصá¢;K…6'9CÏêò…CDM÷γÊÝ*6Ø<Š wÎàSœSÐðC9&Á)FF¯~̾¹1g£·âžwžQj“P²7ûÏ­£Ø7@ýþ•”˜#¦»¬1v—Ü—1“¾Ûú~{¦oâ»ä„dÇöSDLZn=ÚŸ&eyæ©%n9£(8Cg¹£üúî81Å#c—™¡ÏÖ;Ko-4§ÿ:ωý®þOemÖ5Ï ­xWHIßè­~v¼È#úuô +¯²¦À%«N (0逷LtLb]b>x¹üÖ2FL:Ñq%)ç|‘>Ñ1av:zgôÐ>yîRöD´¬>BúOÁ¡ 5Ó6 +³Ÿ©8È=@{ºËîN’ÿu ¤—íÏ’óv€ï`—áS7‡ÑKíÐkÝП2xý‘UaÄ[Îô|j0Or¡/d¼^삦}YçrþÜà°N T¬w—g…½´Î° ëB6v}¤o>1r/s–ZÁO|JÀß”ÝIDÈ‘žƒ?^j䳊6úAd¼”Ÿ&ÉaßØÇ +Ÿ~2оn±È+CÈW¯?Ìqàg ¼³•:îù +ìS!wÆJ[úËîk¹×<£ZÊ˾é˜&¦¹æiP׹į¦{‰MÖ¼Ïz®hŽ¿·Ü“öû±_~¤Ãm|,ºo‚¦ª™8¿’ðª80‡S÷C^|ÀÄ~/ãæß°KÙ¥ÛcèpC[áÍùúÌëëÊŸz²ð@ͨpÌ2eMy7m…!^b޵ VÞ3´æü.¦ÇüºÒ‘}çÌ@,?]cÕ, Áb¥¼Â›û3ä"—›bÇZ†Š#¿ðv} ê‘Bym±§4ð0>zÆí±ÚÂÛbf…W]‡õÈ%¦h˜˜štuŠsÉ«ÄgttÈÑ2µ¯%æ9u¤ü“Uѯ§¢N™x€KËÌ£ˆØ|Œö#6rWVSq¶Î¦îŒWFnôf] (ßrmm`½¡Å¹À&šd¬2×LлTǸ €÷2×{QÏ,BÄë•î¼kû“ÐËì•¶)å§åöŒK;#—‡Z.Ú«ã¢m3Ô Ï»r{õÒøï½‰Šç†¶”Ÿ•õ©?(ù€¾B$ž.6òíÁ¼19-Ï/£ç;F°‘^1%ÿPÍ‚9¤¤´•à‡KïK®ÛE”Ó(!EÛ\øëfOÕ ¿^mtB–ÞA^ìô#Ã|2ZÑžg„==^d£÷gÑ1N <Ô6 }å´æ¡Š˜}¬b€¼r6Hñto¡­üÕÁ­Ä;ƒK<Öšå?smÑQV!,Â?OÎwI IÏåÜÌT h0ß]!(¼¶ÔQtÍ&B…ïLÂ_®öU<2´Þ;Ò2ªvE¤”íIB|0Ó¯¡–Ø&ï;‚ õβ}sì +Ç4¯Ü!å€V‡ÑQk¸(¢¥Þ«lm:Ö x_MµµG:BžM~eî=´IIëR|_öDÈοî•sᎩšLç$.É+Á§Ø¦ÐñV*Â>ƒ‹;Ðב×G‰9‹°×k½è¸….h¼y 2þDƒÊþ²I¬:^&€ôÝÅ¿¯„Dª¸ûr.Æ­¦”œ®Ò.*Ù:QâŸEfÏ@JH½ø¤]rjågSS×á"PÓJ¶…ðH ïÍ)÷õ5ÛDá³ÿµpØŸŒLœ[†‰;Yä1 ,üÑ"ïV1ˬ³ätótuäúèApÖö%m±ýbg’Sn—Ô¢|ólˆ_AÈ´N"#6!Úyq¨¥Wy”¼j}'ôéB{é ÿ<>ðián<êë2îÓáJl2D”U„ æmY€ÞR6]ÕÔå\ó+°€ å{æñ¹GËtœw‰Cè¥gÝ商nN²+¶FéY˱/u-»2fîUµ ÿṑýÃįÿ´Î":Ô¸ô=>ý/¿åÓ&‹¾/Á$¯|¨´>Àçá> qxŸ†\´Ú zhƒ†67÷Ÿ¬ :=:Á$B½1Ma¢v„UOWºÓ~¶gÿ¶;\zÛ6IÏrÊêP– fមžížj{ûÖ3ƒ‰;RaSÏuø¼`OÙ¥¸¦ž´Ú½¿ÑWr}k¸èÆFÑû&îpŽRt¦¥Uï!qÈÙ¥ž¹Zà]¢Zs.j?[Æ@Ïlbd¸iñð:É;BZ¦ª tGÝTø«WÆ-÷ɸ•>)d%ÄõUG]h=¿0KOøyoü8 á¢Öû¡O6ºÊ~ßÇÈ&œ. +JlšiütÀ~1§ðöF:d–—÷‹[ŽO?Ö³àGVÕ‘ŠRè”TÇìŒW=1våý¢­Oø—gŽ `R‘² ñpµåœ%gù59Gf•Sœ +ê(Ô1S“¾*¸æí(A¿Ý¢ÃmãÕ¡Ç +zÉ©†Oð*˜ }èÖæ8::`èõë{&ŽôMœ³U€ tÄÜÃ9|úá\MáÀ Öyxaµ1†K?]¨g9Dðp›°ò©u¤ôîV_Ù}¿ÐmF.ñpOžkƒÞÓ½GE¹f€‡ä#Ïô,H@I3ÝÛ–?ñÍa³Î8ŒS@Ó¯`"³5Y_7ù¼ÓeúHƒIwJ+"—>dÞÕv¤_[þPzëë¿É¡¨©P´”Ý]ÀFéùÌ“|¨£c¼³ØÛdE˜o¦:Þ+#¦zõÜéÆüÛòæÂpŸ’ h9È ­üd‰=[á2ö¤Ä”µadH0Kùp©µ+xÝÇ3W“í–‘³¿[p¬¥‚þX¡"*jéJ?ôùÊøi@ÇDIÙ©¿¬zya¥­è®e¬ò™k“~´Ä"¯46îµbª‰ ö{`ƒñ(ñi) è˲'Öi|ªCÅE¸Õú¶ˆU2Å-¿¬é"D˜§ëÁ»ô”@»fàqëýeÏl3È8·†s¼Qÿþpµ¶NßS¢jÝÖµîp‘É<ßàð-ÖäÓŠ·F*Ÿ˜ÇÁO¼z:Ük¨ãlOáã쳤 —žZy¼ÆeìN‘“,c¤8Ç49 èùr@ú(;àQÀ@ó÷¦ªÃ÷&à_T<öKËŸÈáþ9|ª_ÉC:Ä´L’Vz`dc\RŽKŽŽµM”?´ æü¶7}á—5¢Š6¾CZ _"'oORrìrbÆže„?5 V>Ô4å^V7¤ÿìtݱžOÜ‘³W>BïÚÊ'§þ<„KúÕø¾â™KDHV7”Ü3r~4¨zòI_ÏqÎa26†òîìMÃßìa/¬cØhó!eu>ß{ѯ¦B—jé¦!HÈFwÖ/‹m9WlS°¬ú튘åW1*m2z᎘žiŸkÄ9Uì*›¾5\vG^—úó¼ å¦yã£!ÎWê8N9&ÙÔ’SBJÑ +¯h/쎖?Ú›B„­ö•?:Ð’ŠO–YDŸŠ ó«jQ‡.Þ4RñTß”yQߘ÷«¶!õâFWÆc:ãHS‡_ëÇEªšó/Ÿï…ž˜¹? wI1{SàW{“ÈP×lMºsŽ[¥îFG½GÄÿË%#e}ú'˜ç|‡D—›c.¾oιnŸ†„Zãs|€¾ØCBöeðxÇ <Á", qÉP)çË<þW ¿Ë¡ÄçkÛËoÚ¦jr|j: 𫯎Rf•`ݳÄÜàœýóEmŽMž`ßP4‚âJ.Þ2ŽŠ\é.ümsôhO ~éU!b?¯s¨/õž® +Zw$5é§Í]6)­|õ#ø±º1ã—Ö⟮‰¾°5 ?^kê¶(ëÙŠ–Ê›kÈÈ€ðH6ù@Ï&ôlR@Ë®¶äRRÊOŒ õ»Zî>àgÏW©¨/›,ê×­†ŽS#—õŸÇÉ™%›“Ü‚-Q+nc”_¼3IÏ<]â`µÇë>›[ƿ촊ֹ\‡š\´#¡d¸ç›xec+€wà³Zõé:©Ò*†%ìLÂ’ xй¹¶qÐ;RØ­{ßyltœ[jùvÀ“ø lŸ.8¯‰^f—B_ïL”Ü÷È‘ÇZZé± qÎàâŸ}üß3‹qHkýVº²îï"Cíýc«áÝñ*©EÁ¹–.À³ìŒA_¯u—‡íŒ"RíÓ,u¶»Å2ßÝb•5b,“”äõ^øãÅ–œ_fh ß*8ɗޏÜÓEGÜŒYåe¯Ž²ÒLcô$ë%Ñ:ŽV5eü:û›†•sÕ=†~{ $ç[¦ðÑæ j¶[Q‹¸4Fךu¹ùøªüC+xóÃé*›äÔñ£˜H«á‘×ä¹/……{f+C—»Ó~3?ö© Ò +è¦IbÌö:rw’˜i"e4¤¢¯›lÚÉë˜DDZ3®š+žúІ•·Öz !JFEP“hH¹;ãeQ+i76{ ï:\]ed )‰?ÌóÒ¯ú$”<¯³?Zæž‚&Ø'‘qsuy¿:*n:ϵyuŒsº:гqQÕKŒqª¯§ìKñq[cÐ'ª÷W4‚Ø Ö>Èã3¾¬00~@èy8ª‰aŸá”é:ŠnÂÿ®mŒùÉ>ˆõhÚÛ¶f[É©¹'á•îM²ò-£Ø·ÛÛÇ ÏbH¤MŒÍÜՃ͢6¬EÒJØsK­¤Ø]!!ÖØS¼G뉵ú|þÒ>Žxµ=Š‹Ø“p«ÜÊZ”SŠO4vA^ “㯌ÕD^ÚÊ}x²D­²zÈ6CËö*xH‚Qe«|`U=·MW<ßì˽ïW¼>Y Ug&n‰È‰—ûÔEð>±ÇFJ…GIÌÚ€>Û¨ˆtÊjŠw§™yº6ä½})=ÿ@ËB8e˜‡±Ð–ue¥-ýº]XîSsà[BF–¶µìéV?2íH]‹µ á!j~ú/ÓÔØïti?k›2®Ù¦qÉn%2ß y®jª950îYhärWÆ•qJÂP%´„‹ë*z´<ôâîí#ó']GåS¿ŠG:^àÕœ.sI~©Ø,„ÅîÞÒ¦¦—»um-Æ!tü|Sö-Àg¥ºåèÜãe¨Cøþ,4ͧBe[§ª^øÍà70š®ü‡ÚÖÜßmÐHû4Î;‡Ë?]âQOWø,@{diÞ—ßrËé û4.k©#ç–c²2Ì`g@ɬ<Աѧ+ïŽÖ­§Ü$æ,^ÅâðË(ô[N*÷^zŸr´ÈÂ}Ýjl ÎÒ èh0 ~¹nuMÕ®–êQb’=ªš¯Ž4Mb:Réù:‡ÐÒªŽuLäÙ" ìØà©]‚íŠ(åkƒ°—[£àG' ”Êÿ¶¶L|Ú`Ž—©U_ÍΗuéXK´v Ì1ƒË2tƒnoŒ!Þ™˜ƒÖ§¯)>0’á^¡üxW¶Åo<62‰~-l™BFh¯ tÌ_¦w}ÇËÍÍMÃ!£d8Äðµþ¢äÐo† ¾™ç…ÿË2Rþìd¡–ì”Ñrv¦Hñ{bb’K íA^ìO–?ßø˜tU×úö‡“%~?˜³;ÂH2ÔÄoõU>;€ßüÏ2±üß[ –òZÙ•wÛØ[ùÒ-oÀÚÄuU€~ͰM!´ŸWzÊžøäï8>yÏû})f¯~³;ŽpÊ™ º¿#¦¥k[ÊïhùÙ¿ì!C³5™Gºà\dB–kë’ó«#中!LˆetÏ.‚‡Ô Àñˆ‡†F†CNÉÝAž{Ø´€ž‹uÉk²ÌÃù÷ÍCéwݳ ç5߯kë8^è™ô(j1û2ÔÛO› ÜÉ*íœ'eX&Qo÷$ÄÔÍ1|Ôæ81Ú5Ç(ñkÙH‡”˜|¨acÜ2bšS zïáâûÄûNIù󀊔y¨idy5-ã¬ä š–â»cÄBŸŒTr®'”èHÅ€oÊXí­z`¦–zæi%Ë=Àw\škÝS6?³\|¢¤C´ÔŠ­ t„þ#øé樷¦¦ƒ.ît…M8Ôã2]3Øôó5óíúÖÏëõ‚õql‚²¥ü‰GÉ!ŸZ1``£tÜl]òµ¹†¸ )ôͧ °.ä’aJÊOâÚ¬»€æ†ø¯ëQT'˜Ç*^˜‡«ž><ì@G­:Y©¯3b¢Vz Ï|³4èŸk Mç@ϨÐÙ¶Ip´C‹³«Ù`Ë<¼6ÉÈðJ‚YsQç*üÌ\î +Ÿqj –žèpæ¡’'Ç+òÁzSçÚ6e¡¯øÞÑ x8ÖW‹ ÷óVCç‘ èÿšÜ£êóf}£GÅDn ÁCW{Šo¬tç]wÊp©^5¡ð_دF6é@+òª` Ÿ6hÕû +læÞXù£ÍÎâÛÖ1X¤G]Sá5Ðñ@/°ÎMü:››¶8ñ/¶t}2µOÿakøà]ά)òjØÖsp/ó5ä‚Ó6Ò¯æ@2fMBÏ1~„ÜÓ¶T\S ÊWÖÞØø}å ÞOª +æ¤ãblZÖž„–½Ô]x}ŽýFô£à•ÑÒ'€'«ÚŸáƒí“¼¯ ø;ÛÞðÏõ’}}¹/墪=õ·ÍáªH¿B@sÌÔ‚÷¦È‰.»Ä=Ïyä¤lßò ÑÑÓœèï‡q¿Ý¡ÒNy^]mwš•ëëãâlÃUOçp)«=é7 -I¿zf«Ü*6LÞ +y¼ô¡úí±š 0~¾L…ˆy5&qécöecWêåà}ß'+uU=Ñ!Ã&ïK*_Ÿ¨1Yç‹ìêC=z ¡–¯õ–?–±c92J½zj©]NHòβ|óÄô#-½òd‰w+iŽY|¢CF/>еv§ª_ïŒU>™k̼7‚¸æ›…¦þ¹QË=]¬ãk[¾1VåQqI^ãTGmgÝœ ¿øiŠ~Ù)®<^kÓÆ5ÁÐ ¿gèDÜßWp‘[£UO÷Ä2”{c{ ó¦oq²È&¯4·Û¥Ä ‹wºV×ði³¾ùÈ@iqYvQésópú÷! x?äábs³KSOÙ1ò<Êf–s®àU±ªŽ L侕àT cs¤ ¯– ž©qÈp ::Ø«¦ƒý +bÖ™Xòi™ŒÝ“ÑA«}x@S³Ï6šzvf ¹k#ÏVz‹îo €^èÉ àoÄ6½%bå®q‹¬2Ù,ª)Su•D,}‡¬|,yèÃbU˜ì[j›ü>[uÕ6§òØ(höë˜`¯¦&ß*AFìŠ`¡~=¹ìóVmÝŸÖ¦ÝJ¶ þÈ*eC>o6¾ûok]Ç×U +Â?S¾Û—xÉИvsc‘¼¯4èñ Êæ’»_6ùÿë ÝâÔý±BÁ*!™îé‚—;SEF6#˜¿½9…Í•2.ÙmüðçnËÔ—-Vƒ_‰LÛ?ñëXp¿†‹pÏsªœrz¡e‚¿5FI0g;ó ²z„OSOpkØ­ ä«õ~ðý!!z–Ulã×{±¯íÀºh˜àS#pT¡ðYö)B¬g†Uhãbv…à Žzé’T>ñ*‘1úà>² þYf•UÙ)yê”V'úÕlˆiñÜ.ÁÇ;<^ùuL â¿.°qŸµ ·ŠR´5Rb&ÆmŽU>4vdýâ• c|3ؤc%¹ðÜP‹?öØ;CÊðÏ’s?¯ð¨N9êsÐÊ글ŽíU O—è˜?á×2Á®yVÅÁb“ °(h¨kÑGz&Ì6~é”Ã"ìx àsÎWYX—‚œ{¨£–}]ekŒMöËQ1vQÅË€xo*øXSÇ:Ò·wmŽc"¬ZQKÝrF±O†ˆqõ°?3÷—?<×ói_Ö›»Žù4×<)èÅ2Ÿ‚R¸/AF»g`)@å¨Zr¯õ–>Þt»CÉ„­Ï9CÈ ¨€Z1Ò_×¹¬C= ¿5NvH*B:báÙºàýÁR“àx±Žu²ÔÐðx»¸ôÙ üñçSÑa.%´-¦yõ-ï\êf¶OÍCøT´R‡•èœE%-Ð!ÑtäR÷,.ùH<×ÖPPã3mÓUa+=©¿­õU< +h8„Ï›Më|Îô»¢«š€¿SóñË|ê¡àf ¾¯á j6Ò¹Ðѳ6ÓF¾ƒ…ÂÒž}³2J®´xò¹‘sÉÊÞèIÅÞ`¯ª›NUë;Ó8þUJÎ:Zæ1Ž–¨³u.ãtM?X¢!Jr°&·AðλPÇöipéžYTŒgþöXÌ<¸ó`EÐâYh˜Ä¬â= ¥ðß»‚¾O,Æîø™} üb­'ÿ•UXû—‰Bþßýú¾Ïf.Û6‡ÍÝ‚“Ù]潚ꄓ%\öŸ[ôê¯ëtd@C,pÊoψ…'‹T@ÂÂóˆ·4ꓞ‰øŸõ¦¶?-'†F å²].zOY‹6 ño"XØÞxÕK O"æH…gúú‘–‡¸²Ì1[“vf¬cùƒ×`¦À/MCù77‡KžHùqOþÊ«ä M3ôÂÑšäC}³àtYÐpb —ùUè$ÓXÙSEsÒ%çLyØ©‘ù´YWXä¹”Oÿ9s òÌ£¢}ŠêĽ©Š—»Ð—x¶!h?\ä3Üs,Pðzð§åZÊ‘š^q $fûØT›¤"Â<^ú,xãÕÆ¦óÕºZÀ/ºä¤’Ihœe¼êÕ—Ué|ƒM³ªI¹ Ãðí&³(øõÜÐ#Kuìãõ†¦3¯ÖµÈgEŒí 6t¦á34·¬ šƒYV*J‰UT{¾BÇÙª­?ÛèºÕµdÓHÕÃm!"üt«¾Ý¥&—øuä"¿Ž”ïVÕä}r¼†aj[çÙp×<6ñt™Žø´Á&m00‡€Þ:\åÑüKl4àiàÇK,ä–Úû.OßYqÓ3Çž™ñu›Ûøß» îáäQ¼l$•üiáòÕÝàFþ³ot=%éí5|üÿ\ ¶_U“àIµO+`yÕ|o>]0À :6òéÇÆZŠKÅïϳËóœŠ=13Ï,¬I±ŠIéûsô"Ó8ái´ê™Mþ–çÓññ> æQp!^UɧižÏj•Y¼þzd`#œó,ÐŽµÑWu{¹³âöj7ô‘m’Ô[e€Ž*>¼ó‰‘Ï8\â‚ :\šw¾ÀET”¨AÏ<£Ø«b”û`0híCæeëXöuÛDÎuûTÞC¯“䙣yÔì*÷½Ð¯ã¢Ý@š…ù÷mÓ…œrèkç,ôµ{p¬ç‘Î6›{‚³F-Rrêñ2—h“#l3%üj8Pcè8ë$€?bÐãÓEjåÎ £È$ªŽpt¬'æ ±Ÿ—«s5Õ);“•Ï-@=ÿœi>]_qÝ!!gÏõÍÃÞÎÃbŸ»=†‹´‰É©>%wºÜÔ¼'!$^û™_Eƒz•t°'…€§Ÿ¬4·¹4 ”ýY><˜ì˜åÂŽNz6˯ÁçéɈ›ÙŒ¯&ѯÃäìˆ*_Ù¤èÄóõFÁÉ*§æ@G)>ÔÐ**|v@M.=6Ô3¿npY@enôÝÞªzf—‘ ïáQ¿ŽS®”¨ôC-¶Ð/Çfžh•_Wx”“6Ö«®)< +žßR7P÷&á¡€‰u«Ð)ž%&ætßø‡¥yð]~«m“í50PÁ,—–÷ê1™ÛRXضátúéÒr£Ú€ºb-Ï6uŒm4u}1qÙGZl¾_ øð9R¦k›tf¤a¾XºT ;~-¹ò¯]žàË6 ·¶¹¼Ã56ŦfB6Eä$—’”ÿß{Í#í +ú—°ÃEöó6—óÇ¿åó6{¶F…í«Ð‰;RL¼KMC¯½ë>]4>ƒëU +ö儼€¡¦ê|ƒ^Xä` ý˜è™¦¢§ ¾ú¯]:% ®Šð«0i§ ôª³E&âTO-ÿôÞ_+_ÖO–ùÀ÷¤˜F/ö¦‰ nìW +hàoŠÁ\ÃY>4¨}¶ ®ï +‹îø”Ø4·’˜îURò>y”?6›?|Ýll>Yf¡Z P…~•€ì” ðn%áU0K½s„TŸ‚œ àyºSFN?Óqq_Ö€µä3­t½_«- xw½¨9¨ÔlN³K6g˜Å »töùøæ4§µË˜)—€èpíÓÕ×5ßl޵[xÕ~(¢£_Ù?5?!¨p<¢Fàu#nóÂóÆï–_4O}ølej“Óæ¨YD„z/n­ŠÛ”üˆAÒžóqZr^v#beWçü"fÖ×Ý3w \¿QOlóªr¾Þ›iˆ˜l=¶ö¶úëõ‘†‹/ê¦:‹1àš˜I.Œ™¸íI«Œ•­ÖvÛšìÌ[|ÔrÐv£ä?û6Üg\ édTÛzIw˱±‹†gx­ -­4:I>Ÿm»ò–|nîyû‰¸MHY7{tÉx墔G¥@¬fÖÍî@¤Ë›£Õß/¿¬ØŸöu.jYÕã7Ëömê8LèAÆ!¦ìxÀS;Ùmóª¾ÒöÿÛüKRQÌyãÅ:Ô[Ð,êL&rê–‹€Sä[–v§”ªµ· ß§Age= ·9d`Wãû¸©Ö¯ÍHšñ¹¸ ƒâ{XuÆ}¿ò/)ŸL”ô‰ø#îdÖ­M¶Ÿ\ïsòIàI¥2ÑòzaH/$í,õÖÌí¡µÉðD ùfdíëoxEKOÉ?[o•åPûUxšWº¸NPµ2)ª¶þJüÑt³ásø]_'4¬k¡iVÍÒ0µ`ôͦ¦›Þ°yqBP¾ í<¿9Ñ|2çä´¦ø xæeØÿËàgËÖÇhW‚“ÌÒm +a꺜©?¸5ÕøS8lgVÂÅKâz10M+\ï<Ö 6§€ÆéÅølÀUBhšWîùµñàÆp×ÄʪI{¸m1‹ t^ˆFÚ4*é›Z%yý­ dé 5OÛsù“ÕW5"Ó”¢ÍQzÑ–VÜ´4#oŸ–7-‹cZAËæùœ÷AÓ·sÏÛÁï"„ÍrÆÊûÊÊ” 2 „}ø6 »Þ5«8k£yö;Ÿ&˜×‹œ‘òÊ%kø|â)~uÐÒ-‹ÚTbüsÅk#ÄÓ Oj÷ƒÏ8ÕŠ¡æQðëã¼²¨NAŒsË:Nexšryåy{ÞÒóΣ˯H'¢Q#bPÐÖßÐ/úkøváiã1¹0®']Œh; 7'›Ï¯Q/ =⨥Wµ6NºàTöEh’^šäUn SοwŠ˜;óýÃ6){e‚}%jSË#¶ëQÇÀͨ]%^Ÿ¤:î•ÿà}Ts.aÓ×ÇŽ_È—_ó¯¦])rb"•§ˆ½¿6~9!)þ×׬3»ï5ü¼2Â*œ(ûtð嘑۶úª=/4A¾5RËÂ&zy@Ï©ˆT¸C­^g•¬ŽR/¤| +æQÈ6 'fbwÆ ôʨž]XEDÌýmÊÛ{+çíÈydÒ¬[Ê‹ëÅ]ˆYBFa_#:réü³ÆoCFvCÒ#á®N4º®DLœðδ„])9n žë/b.!;j§W¦=êþÈ §Â¿ú/‚¼¿7÷ü›©¿ðûÙÇå²~6ë¯kê߀Y!“]èù%æÓÖ'W^¶ýì¸_ñåüëæü°–Z:´&iƺ ÿèÞx.ã1Ò6vCøUõAƒ²à“[Gÿ^^yô£AÂÉ}€”`yØÈ*™˜ ](ùˆ‰^^оN:»5F¿žâ–¥]æ;¿ˆµãã“vvmXÃ, Oó+’f!e‘Qc~mÒ,h‰ë¹õˆ™×ŽÙ„¤¨W7óƒZ6ì‘ *a”£ ¡BzQãì[Ò)óݺ/CSÌ«i»ˆLNšT¼¤U +Þ“~-néº5vÇ=ðiiÂÂo èùàY¸%1„Öðâzj‘ënù>×Íê/Àï4DÌà=t +JØÐÍ”ô˜QÊŠA7Û¹í +ùêÖTÛ‰Mð²¨]Еu ÜŽ[‡îl̈áü$íÀs] ÝKCÓ]çžWþè{P°/û |Òƒúû~Ù4Š;q~¯E ŽñêÃc¬«¡1âù­qø$r~B¯`ÄŒýëìËk¯ˆÇm7Ê?õܪüô}b`W% ¼‡¤ Á I3j–³£ qc¤ý¤ûÞå?¸îþ1¦c·`î{I—J1òBZ1)né–€îå&-¬ªÈdëɸ‘Y„ŒY$Ôôìà3Àëë!k·$jï님„máæÕð4¬ŸÛ¸>¹ºô’s1<%ïZæ_›{Zõé꛺¯—_vZyʼöFT™4Ç4¢öåaVçaçá˜AÆ‡š ¯¼n9¼ö†r6¤cW"N^{zV*I:ûoǬÝÒ Ð“à»xØâÐ[ðéÔµqú¥- ¹0í`µìø$¢ôMÊ­îE-JnÎÛwwÖ/nuOÖ†õÞ{9‚ãCZvcÊ­êIû»ûS>1/í뽋ºÄ!¢¤ÜBbÒàØˆ•recºõH +êds„v~í-1ocŒY—0Š˜ï|ÊÁ_â “öÎkkcŒRÿ3ÆYß湨eð×€YØÚ¬$¬ã¶fþhméÙ'™Yeßö¬ˆ·>A¸ìºSóuÊ$,R%튡„EÂéºY ‹ZŠXUÊŒO®|¿¬º}Ð,øMÛsr9â#fV hÕ«-³"íæwnûŒŒ›Õš0Ò*–^6·5A<¿3§ŠèY5³ÏëöÏ=)ÿzåuÛYÈ‘þS…ÙnÅM½›PKQLœ]î{ õJÇ?wòšSú{ûáGz³°f.±±;VF:õÜꘙ߲5J8í½_ö™åÖ…á˜ÌF¹‚ZHðiÆ.¦ä\*YÆ¥V†üz÷“ƯL7ŠÿÅÐ{öü¿ýqÛ#¢íÌ*Ûs +9ætàŸ_Fu¼TÇ, O5Y}ÝðãÊË–ŸSÔü¸‰[½ã— +wfåÒ´SBMXðÏ4 +Ì0Š" ÍÓN…0åTÒN¨O𶀫Œ0ìwd†^œÐÓKc:VuPË«^xK¼à{ÒøóÆâÅ”ƒÓ¼6ÖxÌÿ´úëU|Ö÷¤¤)¨éá¬ñÊçNÇÆèEÑ1Záâ£Úƒé±—ïÇìb*æQ÷%œýC!“’µ6C¾¸8\w$4M¼ïÈ ŒNmMv\Zíº´¥SÐBF•u¨$i¯\€ßÃ8÷¤ùðÊ«®ü-ÐÎq#z”^¾>I:˜á”¥¬ü¶”•Ušé:çþåÊ'î{W?L´JY•a£œ²9-ª]~Ë-ò>¦ŸqÞiÙ¿ùš|Æ}§âkƒºèsë@ÑÇaÐÜi»˜1ðký/šº-ݟ夔²À4¥dk’QÑð¢Z%%jì™Ä›ãg\w®þiBtüw/Žáß?”°òÛ#Fv3øÇâõQAÅê+YýÜo´ÁñÖC¨p±R¯&íRØ“öt«À7ôÆrîÚ´¨}ñ£xõ5ùôæ8¿Þ‡_³* (E™Y1/ã빎:¥Ü„ƒ×štI91£¤3¤áÕ'×6ÇÉù!=±s iÙÙÞ_Ss7FW5œÊžU‰Xù]I+Ÿ°9Ü•ï¼W}Ä|«ôÀÊéjX?ÔÐôŠI¾ç­'w–úG-b>G6k_bí(mWØ%ô¤kà—”K=ÑSK6'ÛN¬µÝœ$œ‰g2^z}nžGÙÒµX›h;Zž—ë»ÇLʆ¿ßI«Œèèײ>17/•ezîíbòÊ”¨ôL-¢ãVGÆZO;†.~2­<û/þ'•ßnÌP@ç +—ÞÐ +ÍCÕœ{Òrzs‚p-ç”óÒNV]Dd´í0j4§­ +NÚ¡V„ͼF÷³®£ö„Ÿœ÷k¿ƒý<ó~žOËùø]Y¯‚XøÍYGÿ fT²Q=»|s¸á‡ù‡uûמŽF§hˆž|)kç6§]"JÒ&êÄ:š/f ¦ÛÏ£–®’”ƒU=©À@ëÇ’®­Ið·ÏÛ®½húvùyÓ·P—à]꫸+aµãï?nNt^‚ý<^±zm tñ8çÚæ„°.®ífãŸysßmøR«*ù׿Ñßm¾n>¹šó©bÖ¾ž¹aÕú´°.f’sÐ' GÖ†›Z®?¸6Ñ~qößJ8û®®„UÊØœ’6FyeˆAÒ׳«6ÆZmMއ´äKI轄[Õ/„fÈ+og=³¿Îžj9± ±9-¨\׬Œˆ*Ÿ’ޏo·üe\RðãÂüçï×|Ÿ²ÒÊ2N^[XG¿²6A> û×7ŠƒS-Ççž5}·úªãxbšS‘¿ƒZz{C)qñ-õÜÜÓŽKÏZO£jQÒÈ(ƒnYÁïõ%žŽë-ëoø•æÁÖ/Ä|ðuäŒGʺyÔ¨¾³0¤¡^C¬Ü–˜MBŠÛ‡îmÍ(žÇ¤“ / Gׇ›!VZuÚÃéJ{9Ԅݺ˜ºBöBß¶Î?mùÉq·úàܳ†³ =è&£\²ðš˜o½_ÿíü0±8·xS3˹K/‰ç–×}«û<Ó•¤SDÛ^칇¹$Â¥áÖCë“äâ¨YÈJ:ùÄÀLÛ©€¶ ¼=åʺ¦íØÆTÇÙ¬_®o$Y­ˆOÎú%Ê´[ÈH) 3¥1?í1A—ñÃ^›ïáp`DÒ<ÿB\¯í®þÓò“®³I\ã阕i§€„ócÊ)a¬Ó΄¦h—0›¨ 5‹;q¯é<¹öºé x”‹ Ð7à‹˜A­‚¼2Ì»â,¹¶ðBT™æ7G¦ˆù¦ÁÓ¿_yYñíÆHÛᨑ]3«Ä#ô‚ЯÑK(ˆNܹð°ãÔ°èâg“Š‚/fŸÓO/C[FQûÚ8å‚óvåq-µ8eg×gÜœ¶œ‡×µ5ÞvÁ~«ü‹ÙGĈ]!F=2>êâ¶Ä ”bXÓ¼ø ÿǶàÉ”£§osš_;÷’v<%¢!^HÛ/§O†Î|²:Ò|<¬gTEL¬FÐ^Ò UÐQ.Å­¬jÔÂk_Ú°OYÚÎlM·J:…´ÜÜÀàaUPø’uK¸;~11P+<·j¾[ºmß샒ÏBš®Âw ª[;‹ê»Qƒ°e}”qö±2må6¡fnspª£xu¤æÄúh×™žQ‘ò(ÕY_ï­èžMX·ŽZ–rñ»‚ IÃãÍG1+£q +;ã.uK8ìiÌÌkèi™Y¡´¢"7Ë"ä¼Ì†€–Y²ø†~&8#hJXÄŒ¬¿÷nÊ+Ó7&i3¬kÀëí¨KÌò+“mûyTÜw®ŽužX¥^ð=m¼`^M];.FÕÌr:ÿc‘CNÚþ‡ŸùwŽšÅôˆYÂ\|ÞytZuù“WÜãÿèý­æGÔÌïz· W¿_”*Q¯ÿNŒ[ÌØöIàÍ.?¡|õwæîÓˆMu]z¿ o/ÉT ñŠÿyíW¨S,Þ^»iz¿Öó8n¦Ô¤‡ÿQ+¿øñ*~ÿ’Ž]–°Úa}OnŽs*2)gÛ/¤‚ƽ†YëÎ-<¹ðåâ—·6RýMh‚r>k²AKÖÎoM[¸õi¥³u]@Mg’vÝÒ[JÞêQMX;¤Êxä¼y>›¥V­Ç¿T|xM+ȘU<ÿ3ÒÙ1Yþ’FœW8eñIAå6p_ÆE+Çì”âà$1/4Å)ìR! «zjÁܳKÿê}páñïcL˜ùMø=¨øõõÕIVÑüÊ©•WŒüw.~Çÿ¾À£¤]”Ê ®êÀòÈå?ÎÞ™•ÉÓn);4M)˜{\¾oõUÕ~TéÈYìŒK) +y5¨MÎ̸ne¼}7cVaçÚHý·KÏ«ö…&IçSV%Û¯¾ŽÚÄDÔ.&îÌ«úÓ.AWtŠ|~áQå~­úøGŽë…ÿ ³íâuþÖ?ba–çæ$ü÷ËòžŒ[)I‚×NZØõ#M?¾åþ;ûÍ‹Ÿf¬Bxœs|Ì7Ë/kþ²5Þq +tFÛ¶C%ÜqÉù-ýÊòñDÌ$¥¤ìRzÒÊ­‹˜¥‹¯š¾]zY·?ç¦^Ûvs WùÍøµõ赘VÔ„Ä­)+`·•q-nbƒîçUç\ +qέ&÷×§è…ƒ¨µI(9Rš‚¿XD¤--£¿ï%:#ŸÏ.Ùm9´ð¤âÓ¥gߥÝâ΂²'3«êIº¥\¿ÕÔ# +[»Ø\ïíÌœz(ši}ª+os²ó$bVr“öþÁ(xǹפS {·2· ì ëZóÍ=—þiýUóˆ¡ýdÔL.Â×{v„Uhú…ql}¢O–ñ^‰ïkëZsõ3ïËÿ^ðlÚ¡åæû~ó½$ž‘”üëÆ(¿¼ªü?{~}çó­'Vß4\í8š.‡½¢-¾&å-àßAð¶£0ëT(ÿ:«PeÀÃÅŒÎûEÒõý§„™AØYë}–ž• +ñë!‘ Z)h§Á÷kª;Û^!#cã·Âz”úvj85YÐE³«ÿ2,8ü¿X¯_üãÚ«ÚCÿ±Ä!ýÿƒáÿïøÿ*öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[ì%²Ûb/‘Ý{‰ì¶ØKd·Å^"»-öÙm±—Èn‹½Dv[BÿƒDÙ¾ÿAâwû÷²‰ÂŽŠ?ÚŸåx;üU‡@HâTöÑþöŸòùÂZ—Æawðeûòà¯ýx䨾ŸªHÌ}ßþ—#÷ÁAûÊù4 + YÝÕÁ$}·ïzÚwxß¡ÿ5È>:xâ䱓?=yäç#';tòç}'Nœ:öãχNž8uää©Gïcý?tòèÇ:züè¡ã‡ŽÝÇÄ:wìÔ©“'OûùçcpÐñÏ:uêð‰S‡Nœø9èÿörÌÿžsb~Dý¨þ#öG•Ú÷íwûê!«|ÒG¼ÿ–Üa<¹ëw™Æ$åý—?^$ÁŠü_‹ Ï‚cŠ>ú©€$¦u‘.]k¼º¯¡ì£æ}–ÿ?ü Næäñÿ–ÊÉcûZ÷9txßáC?ã HýïzþÿõIÿõçÉ}ÇàŸüp¾Çö}ø íßÿáñýÏÛwòø‘#'>j¸ò¿ÅŒ‚fÔ¢`Æõ +ZX#¬ Nój:NcÜÂiL»™u¨™t%ª!ÅM¬Ê¸ßŠ:e܈״>IÉÎ0®„¦9eˆQ܉Yd Ô¬`Çõ’ޏQØŒOË¿•v}Jܸ6Ê._xN.\K.ˆNS â3ÔBÔ@»ÓvœNZ¥´˜ùú­¨åÆ/aK<8#i Œ³¯lóÂãøâùÄû*ª‘¶§,JÞü fÉênEÂ,h jº.lL~^}ÛôSLC¾Š9™µq ùbdU'íB"æs§6®c–FuÌ’µ7]'P-·aÇÝݲ‰H ƒ 1ËØ)·\° ;6§èËoÛFÉ"œ²¤IΊë$„è´‚ºùVÚ†j{%á ÈçUבõW _¯<-ÿ44Üz<©ãÕb9e‘ÑW†Û/<¬Û¿ú¬åàêË–£Ë/ª¿ OtäA•)£œÕr*b:~=j–Óv•8éT÷„ ݼ FEßœ·&x-˜½§Χ±²2 Ô”UÔ•0pªc:FiLϯ i9×âF^mÒʪY®ù~u´áHÊʨÌÚ$´m·\œq*„(ìÉÚåâÆ8½±(…¨]% +êWjaÖ(å1Ó~™8a—P7´Œ +ÿ˦ŸP“„3 É!³"í“ɲsê[)˜‰¹…ä¤SHI¹]qµ8¡§^NZhWQ3½|Ç ¯ç–r0§° upÛ^[Äĸ3³*1·€ˆØØµ)‡˜žq©I›öEБrŠ©I»˜ÐÓJ6µäË ¿sñ;·=RÞ»Yõ­xݬO¥Æ¼Ýê°YJ„A|ÚÔâP)ÃPk¨«ÿnÚ3ô4íìéÃì +æÓ2^Ÿd88MI'¿#ã• 0xNLÇ©B-ZÒÕ;é–ó3>¹4;«êMºù] µuP«ãVÊÕˆŽZ¸9E-ÓÞ¬üÙ}ŸT1ô©’6|â2©pí5éL`œy9i‡µôª”¨G@L:XÕ ¥$ibÖâÓàõøa§juœ|fu’VsˆIË£äsái^eÒ5bUò«°#ª£F´ä‚ ^Ô2?,¼†Øz{P[ooHý7Ýþs\O8™I…I± abU„ô쪰AØ–°«e1ƒ¤cs„rfùiËw›o Ç#ÓyI-³4mtÆMüæáîK¿sÞkùz± ±ˆ;C3íy+¯¯üis´òkÔL½’² ˜UNGír&jS°“pN˜MÁIÚd4Ÿ2i¤—¤¼–”ƒß–q+ĹY…*éP +¡†¸Qƒ )<#¨IšEí(Ô_p’xfùUå~×o_jº+> ¾QÐZ5'8A¿´ñªå‡…eZ{^÷=ª!_Dt´+óÚøàÅ6”|†Î;Ò?8E85û¨è÷Ë/ʾHÈ“JXƒ9\Ô.¡$ð©&Ît˶ýê¡´[ÂBìR:Ô'ã뽑ñ©û“vèg·6¦åV!nuÚÊoJÛ9 '§!mcW'´‚†”EÁKZUˆžz%ã€Z°‰Ii—”™rÈX)§R”r÷ 6/lbF%µ©„˜W!Mú$Ä%e¥ Îñ^@ÜÜ6ßpóóoÛŽfüê;©ùž;)¿R•™U_ǧð¤= +iÊÎoKÙ˜ˆ…t1ã&—f¼Ôꨭí\ÈD¸€OmC*˜7³k’NfUÆÃ¨É¸Yuqåòæ$áTÂ("e7å<7^$]"JØD/ÝÒ‘Î ¤|Ä"!oÏöý +½+KùDtüÛôSž¯P÷àýˆCBÛèe1 ½4j2øTˆ kHN»Õ½˜S­ÄœrnÖË'þmIÄÏx…tÌ)¡§¬œT‹O:uÄêî„]Îǧƒ¥gÕCˆ“×±1Õôãúdý÷S"FÚ߫Ƽâ¿–ïO»~Ñ&Iùøôê…Mû£SŒ+·Œ—öËÅI— sŠi°wÒœ[)Ízd\Ì!ìÚeäoL°.‡M¢ö€•Û<9PòÉêkúå´EÅÏ9{{£VvãÊ›ê¯ÖßÖ}Ñ [©I·º;j•P×'è°€)VnSÖÎiLš(Ei‰å7­¶¦éÅQ«‚½:Á,žB8¸þ’q>2&®‹kØ×=­8:C¹´>Òù³ñfåVÞÏÅŒ’®[»9Þzlk¸ñXBG¼švsÚP3§…ÞIÀj•vößH9zºQ«’X„-I+³:ë~´SwXuˆƒZ–0 ;’Vµ$b”v'¥¨QNNM›c­‡<¿^ügûËÿê¼^÷elTI M‰›6†™ù[oèçCohçP ­hs¤þ€çÁÕOçž7þ`¾Wý…ïAË Ì,eÇû7ljgV^4ýšè¸˜¶ÒJÓ–® ˜VŽO*¿A-uå¼ÝÝ9R¾í—I’vv}ƒ¹¢^+>UwÂ&hMZ„í9»œ÷Þ!e츘5ÛòÕŒ»«(4Q(1ÅkL[ûzÃzêÕð4!/ë–°wü +ùßU”‹ØÄdĦ$@/$lR*bU0ø™ôöÏ*{ÓsÝCéÙî¾´W.LzÅÌ5 µ(¼=r#3ß}ƒ¹Åž»ÙyõÍŒ·ï6ô³±k¢zBj%œIX;. Gƒ†¶<|òEö éSP¿-ía7cNJIÚIŒn?¹:R÷MLËiÊ:¯?N»ûnÄ­bRÄÈkŠ™Øõˆ×ŽXDŸR…yÅì$àrn~àYÆ?ôqõôÆFÒE+K»è•Y¯+ååQ¹dË@+ è­k3€®Þ¿Îˤ[â3;§>a¶eìÆm'ùJð3b–a_(iïÀ}Ô­”絇´²„Õ”°3j"ƵõÉö<÷ý²¯VžP +3î»3[£ÜÒåW]ǃ” ;·1ccÖdœÜÌÆkJ;•’”³G´«ˆUÎŒIƒ¸-õ¡þí«Zz±îfÕ§Á ~}Ò:Ë(h˜å-±3³r|jB³ò[6@ǬÒÎ%¡nB“¼ò„–_ƒèYeI3>Q˜QÚ¨K)ZxCÎóüÚôåê+Úù…gŒó¯ù±NEh’v)0J9š Äõœ*ÄÂmð¿j;¼þšýÙ×<.Oº¸-ñg­½e]Š J—žÕ}cº™ÿϾßÊþœÐñêÓ?íPŠVñ‰õzIç¶»÷fö# é8»ôªì³Õ‘Úo‚3g‚ZÆ•˜Ÿ´#"&L‚¦ŒC.H»”²œ§»8[ˆ¹x˜SDB¬¼FÌ&êÌÚ¥´,¬eÎÁ(ÏzHÅIGû™àTÙ—À%ÔÚÊXÛÑðdç™mÐïæŠwP+ ¨å¸™ß‚ØdLÄ"£¢À¡ +»½ƒy¥¼Ì‚ú66+a>¹ó©z¡/†’.!1nƒZðKùÛó +õö¼L–™• +SÐ?ÛsO2^•ŸpÕÓKrN1kÛ/æåü"nnVÄN{x„ˆQŠ‚¦Š™ÙUø¤É´MÊÎ:¤,ÌÆ©G-ÄKi·5 |6rê"†QÒޣʸd\|êRÂ&!£Àq'¯5ávn/ªïfæd²4è¢ÜbßÃÌ»=f"À× FuÖÏ#‡-¬ê…QêÙ¥1fAÆÓçÃ4ÄY ?ãQÈÓ€);£57ßk>´1N>—v‰¹ÙÞ{˜·g0åí½™ô\‘ö÷ßÀÚz^µ~š!ŸO[˜U9·ŒŸ™Wß +MÝèŽAsYeQµ ¢!䥭ÌJàòzÔÊkhi…Ó‚ú~@6)ˆ[“Г.§ÛŽ­Ž’òÓüª¨YJ^™¢zVü NÚ &mJTÇ­ŽLÔ¢˜‘Y–´²k·¦‰çŸwNhÅ;®ÞÞ>ÞL/ ¨—#FæÕ1Ú¹Í1z¾ÿ-ᘘðýÿú–]ôÇÄ„’ˆhäø4«$:C<·ø¾ô¦éÛ¹gMûÃSìrÀ5.¯›ÍœŒAÌí§£ÚúcºÆ£º¶Ÿ£š®³ « m]ÇkÚ#çíHÝöòI°o ! ñLDÓu:®%[n;2Þwù_mwë~H™Tü¸‰S½9ÞvxñYÍ‹Oª>]|\ýùæ0ùÌâ(1¯‡vøæoÓ ·­jY +0#ã —ƒ'¨ +ë)—·t”K! 0OLËáú´GÔÀ«Ã±%çrðÚ¿€šr HIp*¬uÊzûEÒÑÛkGÆì‚ޤ›Yón^"ÈÍòº2>VÓ¦–tqsœSöÎÓwëÝ‚TþnžÙ„ZšE´Í‡ÃаFò¥”ƒSŸr +‰Œ—ñ¨ä¨³o(ùaRpßu 4Aê4je–G¬¬JÄÍïHûŬ´OÊÃuêQ÷%]2NÚ£”nÏ)UÛsRan^*Îø¡gÝà‹ –ÓξÁ´kð^Úwk,ë﹕›—Ë2sb.k +ýWƒ9øí)‡„™´Kh9gÿ­,ôxJÂÌ©\: ~æ +bcU‡ ´Ë¨S)Žšía³4å–²3¾þ_³³½wñ©*Û‹ŠžÌœ€úYé±›“J.ðDž_3Þ/ß-©ï&E-¸Næï¹ów P(~®>™<]`esÒ­éÉ#zjaÜB¿–p°›ÀÌ3ø å»þ*îPŠÃ&1èãÞþ÷uÿßæꨅ^é|Zñ)b¼‰ûUÄüˆO²ZÓfuTßzze¸êë•Ñšý«€ÝËSÊç3ÊÙ…çÇbZv9øÇÄ lŽÌˆAξn9°ð¬þ/Y|:·| < +fçdÂqJqÂL,ˆZŽ/½¬ülùeûOqˆ€:¥œõÊÙ˜žS5æÀúnNtœX|ÞvÐ~¯öó۔㧑U}“˜–“¬«‘ Ò™Èd×™è írd†Vœè:…h¥Q=érÜĨH¹$ŒˆžQ²5Ùy:8Ý{AºÖÏoN€ŸéÌÓÿRògËâOßyx]Û^^'j/¤£f¨—"Zad†’¿<Ú~Ôù¤þûµQÊå$è¹>éÕÀªŒh(ë#M?,>«þKpŒ|nåMçñ»´yï´ä½- XIC"Óø]¬ª¤MИ݊ãj¼,ð|gø!îÒÂ:zITK-@«c =1ÐìI;ýZÚ-—dÅ|ÌÙ;€¹ú³PŸ˜›ß‰ØhW# kßÖ³5Á*ÍzÕƒˆ‡Ó™rqÛrNv ð[ÚZÅJ»·ÐJ’.FuÆÏ%ä'Ó¨càâOèPðbÀI=½8lf–…¡WB&rœ#qgA¡F_ñ>Ø™WtçüR!h/I4[vVÙ UÒ)¡%¬ /\ +a +tæxŒ‡Ù^”ÉÞ¯(‡v½i·-f!âS‚R°¿Y—RŠÚ¸õ(h”4xƒ8ìqÖM™°°«“|Ò9¯1jaUf¼RAÚ¯P¤ýJef^¡Ì>@ÐG¤™Y¥:=/‡Su§½ƒO0O¼žj(;Û=˜îƒÇ`üUʃOXå4Åí A7mMwA­bbÊ©¯Ì©CÌl¨mœ[]àÇT_ß/ íÔ1ð71‹Œ± ¿5óZân}`ÎK/b%}×ñIeIØOœ7âà¡c&ÂÙå7×>Ÿ{\ò‡ÍÉŽÓ¿~E#®×Ýmø‹ýN÷ ƒ¨%ªc•G4ì²Í1öe|Ò–ïIÛ÷›Ã´KÛ>¹t}ŠY¼9Å.¿ÄXi9²5Õp 0S÷}D×t88Ñt8¡ÃkHÎÚåù­íGÌÔ-JÂù%¬Ìªù—•Ÿ»­øÄ~½âßlýU ¹óðIÛ‹rev®÷.Î/™9õõ,h¿ìœLŽù$œg¶çpÔÝ“r«d)гiôŠ_¡~ä$ݼö¨‘S…{£˜CÐ0Ñ®‚·†õ¸Ÿö>Î,ªÁ\NÔ̬êW{·:ëìéø-Q=¬ðzÊwW‡ûʘ׀ãAØÄ® é˜W ¯‚“´¢¸–ß’rK˜Q»¨sMÏ*u=jÞ¿úŠ|sˆÉ)âùø «<6%#&¤MK¯$åk#ªvè æ‡ë±#­‡ð¥‹o¾j‰Q3x@'§é¯~>% }ÑÓ¯®NtžÜ¡¥L½Š¨FÒÑr+7Ǩ¡IÆÕð8½Ó±+0=¿~íMëQûí’ÿ¼ú’pú£ ÕÑ‹QÐ1Á ò¹ÀXëáÈTp[G^4ÝÖíbÊ&c€nĬRjDCÊO7Dô­Ç3fRaÚJ¼˜¾Í¹Á£‚ö k˜%q° ³‰iiÀ¾œWDO»Yõ!]óᨎߎXUòÀ$«ø³:¦ãµ£:^fàTb€I #³jcªýôÒÛÆ˜IÂÄ, +.j’R’f) 5frŠiS(ßÍÊAKØ£li”œ—0˘ißÀo¨]Hkp^a×"V1=½ •b³ +%Ô&#åSÈ’ÞAÀj… uÐ*â¦Æ#qK[^ÜN)AÜÌÚ,`nnôÅlï/YO?<æ¼×Ÿçf…Ìì<­:çç>`×À²3^u/~Í¿6‰_ËËødÂàGPǺ–t°êw¯³>1 µóZ¢fúÕ(x–ML\7ZA_yn½M{ûïd| +æá¶¦}ÜöþÓ# ¡AצŸè«”ažÛ“x‚”·[ : >¼1nfW&,‚6ÌÞ- è‰ùA]çyÐa¬´sàÞ¿ëS@oâ ©˜KÊÈø{oCÎò(ðL +¿Žæz˜ñ>ŧ¡nƒþËÌòˆø´úܼB…sb—1QШøôQÐZ}Ùy8fN&Éøäâ¤CÎÆ'i;^´þ<uÒ¦~‚×S +6´”üÍIff‘ÒÓ. +8E¹ŸԣơȌš˜‘µ­O *¶ –V_·Þ#å§, +h‹)`­S%ŧ¢Àkc-‡VÞ¶ N3¯¦­*IÊÚןo›ÐIÚ1£’…êÅmøu¥˜†x~ùeÙŸ·FšD&)ù¨^Ò±:ÜñóÚëÖc)«”ŽX¤ä¸žR¸þ¶âË…‡Wÿ!€¯æÕ¤m2:b®ÑŠÛÒà)bڮ󑩺oãÓµßÅ5MGQ#î·Ää xÃå‘Ö#ko;ÎdìJiÖ¥îo-Á\B2æâ¶&Ì܆¬ÖÄÆk€C RÊÙ;¬¡]YÕô]p´íxBË,CœZÔÄk΂–Ùš¢_/ÌZdÌðÀ/M¼Ÿ§`? +¢&n->5<½_š J;¯?œwF1OßÝ´¯çž =nw¥½}w¥I«œ´tK²à²~ órZ1»1;ËíÈÌJ;ó=wOÕ ]À( ¦»A/õÞÜ™Uõd¼vÊ)ãä@/íÌ©o¤Ü=(®{@W'­*f—aŸcèAæV)Rð:³)8 [·q Ü]™–´®M²¯ vAçö¬L¼uø~I1™s.Ð!ÎneÂñ‹6; š sËxYŸ„»ƒk5o·*éRI#JYpºõTÊ*d\×¥juÄÈ«‹AkƒCœ"rn¾÷×ðcÖ'—$­¿Î ¶[O1WOOÒ­Ç@³¢°'é¹¾û;øµ¶9¹"ë6 +[s/¢VNCÖ0ë|”óÝxñõ â: f·f8eYwwOÄ$á¬O‰Z£¦Áëó/#Óý©ˆýÎ0â–KC&fÅÚ­pK¯nZûçFùàw»˜KÆO¦¢.ðOQjíï éÕü VÒœv¨$i§B¼NÇ>L“Wwã2¨¡_ŽNs«bæåÚ[~itêÖ&eWI²°VPsB Ÿtýºò«àTçńۼôœ”‡j{EÐ{â´K.H;»I‡JÖ‹»–ßtX%žZg/>ê:›ä€çaUÇ4”⌿v'$¦,üÖÅ—5_-<®ù jä¶FÀÇ,>­ýrãuñ)bAöÓH‰qS¯2‰û ¨Õ¤]HHX9õ “-‡·´Ô«)Çཨµo b–P0ÇÍÇî!@Ö‘càù‹¨+¡W âº;÷&sˆˆ)ˆžò +©¹yïݲDú~Y,BÝŒÚ0ô jW+à¡L9U’œ¿çŽÅI—BœŒ}7¯¾•öé1kW!®m1s71(¨¹[Œ×ÖöB?ðVï ú¡&û†BF)áTÉ7 Š÷ûBÂÐ#Ìx䂌_DGíü–°‰U™ò ©™y!ó(¨kèAÐ,hØe<À]uÒ ^ ç—·‰ -ùi—˜š4+yÁI'fWËS®Þ!ÌÙÓ—óu÷m/H%¹yeøFÜÆ†\ïÆ­×cV/åéÈÌõýš™z•­„OoÏÍ?{╉®â;” bÞ›o®þ»IWÿ­´O.ÊÂ~ç<*ÅŽWÊïiÙ40Þ&\˜~™Z3Ü}²8ÓË_7È)1Рõ˜˜SÊCìRNÄ"ìp=lû±óÛ~kÜ!$ øûÒ6+i¸Ô©y+œ’œ·wh{^5[“1-a‘3âfIgHÇ­Ž›$]Fn»åVÃþÍaNËÎ,øwïèì~Ì*gÅô¬ksÏjö‡5ÔÒÕibѰ°àã”îÆMÔÑÓ·‹ˆQ³°=j4mÍp+–ßOlN0 +íÏÚ‰Š?Þ|M-ÛöªðZ楡N6fõÆdóQûÝóÿ4ÿ°bjà4„t¬Šµ'0½„œ¶J™q#«2~88ÙqbáiÅW«Ïšyßvä?àœûØ·£hÇ}ý9h|1æRQðhQ§:¬'œBÌÔRÄÁmó<¬ÛŸµqÛÞ-ÉU˜—OƯ“¢~Ûæ4ñÂÆ8ñ|Ò"¡mÌvÓêÏÖŸJɈå·Ô>À hÅ90<ͯ4ß,ûÌÜù³Ð(¹xyšqeª§òkDÓ¸ro"å½þ2j´á¼3±«V&;Î4Œ + 0#¤“vErFÒqg8éú-áèŠãÜaS"Z^UT+'F ½²å— %Írö¶¯çÖ¶¿çÖû%Õ ô 7éaÔE­]çÁ{¶EŒRêʽž×˜ó_•öÝx›ò=Kûúîà\¾š3Î!Vzj’Q½ŠY®ƒfëÿ57¯DAÛÇ*1Ú +…Ÿq‡”½4Á.}Æ>—1ôãï¹`àõ€èq›˜žÃµÍ‚\‚? Zx„àÒˆE.šE]A#»"áÓ¡GåÀOÝxŸnÃ9 V Õù¨ù`X}ãz„ž‚ŸÁjNû%à%„ÄÉnLy{×µrêò¸¨zd¼É/iÏõ”¿g0;¯ê…Qæü +yPK­‘]üÑöÄ܃¿€OgÿÍŒ¿ÿAÚ7ô ×oïxÔ”“Û2÷¼íäü rYÄ~ó媡_º¬éa-=ÊììÀì_®Œ¸-›Ó´¢¤ÓÕ2J;·% º7 Z+kޝ'¬2Z|ùæ ¯8üöö‚ª/³ æA®Ä°^NŒ›tôYÔÆo]šè8áü¥ñ«à$§97Ûs3jV2£f÷ÞYÁ÷èŨYJ=»2.)þLß+ Ä„--»4jâÕgiŠ “˜3ÈÉÖÇ'^°ó·ü´ã +~ ±ã~‰]0R +7&:óæ7ŒL2®eì2b“Ò##ük9cŸ28-hÙy5€·2 Ú13¯%¦a•îÕ£j<ø?iz*ÎùÔ·ÃVN]ÜÆoKÙ‚œ»»sòÚÆCa-áäÆëº¯sfZYz–Ó¹e$]DÌ +aúµHHÀ )»Œ4ÓËV‡‰gJ–Ì èèW ëFµ0®Wó¢Sâöø´¨-¦“ O[ðª¾û—ð„Rйn½ìù—´sX“´[ºG5„_ãˆC-¿a^ˆëe4Ô©FM +VÔ¢Ä-RJ/ÂZtõüxçå{Gÿ ™‘²¶½}w›”r‹é(~ȇû.Äœ´G.œ{E¹øB|ñ?™oV›óßxƒ¸nÇì׋XUà«{·g»¶AŸav~kTÏ­DŒ’NÔ*£§<œÖ¬WÂKƒB Î0ïàC~ÿ¦‘Z¸2I=œÕå=½ˆÓˆ9E´m_ÿý´»[•·aâÕoš¸ukféÒõbØ$&ÍŽÐ.$¬ÝÌ7ø45{°]ÝwIÙ1»€Ò±Ëç_OlMHšqÌļ½×Žþ˜OÑùÔ)¯R™õIù€ŒÅqqÍÒ¿<ãUªà¡ÀÀw¥fŸ¦çÔƒ~pÆ+—¤àõ·^n™­kZÒå¤kðêùÕwÞ†×îÆ¼Ôò¸…Y•r +IÀ…Ò$œ§R!ÞžëIïÐ㔯ÿWÔ- ÃùÑ0\ýnA®Jƒ‡ÆlJñ¶à!pòP +¸2fu$ìBÐ…‚ÎŒ_*ÚYTà|¦ÄßkE}êþˆQA‹Zd”M=«b~¸õ§Ð(õBB/h„:"'À;ÅÍÝ¢ø™8p4j–QÂZNÅÖ³4OYx†s îX!^yN<Õ +b&~}XëŒé…Í!°nñ-#?2Å«zï– ßÏIŸŽNƒÅK;Ô +ð.=°-¨áUGtܪÐ8õ<Z4¦å×%ÍrήÝë7Æ»NÏ>lÜ¿ò¨îËà[±¤´¶CÎÇïMí(ÌÚ{»³ŽU\Ç©‰ëðëÎôrÄD8›sR+6§g:™rôÝNZzˆYÎLXAOÁþlÏ‹X;ó\ʶ_ÀįUaÖ^UÒzûj¹7‚Úo=™D„±¶#‹/Úò?ežuüJ>¹ÕýQ›Œ»5Õÿò"a¾ûsöö'®€®ëlÜD)H%i§˜špp›b&ÐmÖþ„YNÇß› Î𪂀g+ã ‡f©>°ã”K² Kð{ûͧqçÍg(®Ï\C÷ÎîîÀçÚÆ0õ`àµ4xÿ˜¥[µÜH8ïA½>I€BÝBêà6oƒÊùx¨ƒTÔV—4³2žÞ¾6ÖÁ!Ìû1k{VHËùøDÔL,Z®ý:ö¨Ác%yOs3 ÅÙ.¶=×÷¦¹ïÌ +6v¾=ð-1öH™%W¦AL‹ÛÁFÄð#5À|0K/'ÄÎtÂÞï‹s…û@ïI¹¸>Ø]M¨Õr[œýÁ9åXÅ!êûaŽÆ1¤Ï‰¥GOÍ£mvE½ÐwÅ~<ÃÇ+8„})9Nß—féñ²ÛCûëG™ˆÕvb¸iÌw_ºßÁ$sbñ¸rÂ8NM²ìIš¤,4˜§oÛÐδ´_ÓTø?Ó”ô_:&î×4‹dÖ’’w¥¨ Ý b䔋ÙâÀvxðarä2ÃçDCÚ„C:´ô=Ìðëbr¤aˆ:”–4ìË39ú~\ ¡v$ãRN5\Æž”œ`†9o¤~<c>”gr÷$<Ü¡’‰Þ—‘’Tää5í× —ùkF˜³<‹Q–• °ðSV–eMû'¸NµÂ¬c5ˆÃð¿Jz:ÐcðÓód>¿ùP—[aYŸ=âóÿ3Çaý3Ë$þ3ËÀ'Ó=6GâÞlޤ|ñÖc÷ÅlŒY^\s¢)¬>Vf +vÆ™)[ãÄÆ-ac8Ã˨ò6e"ö:ð–&uqãÐwG ÂB“&ÝÏr%4Ùlñ©ZÙ(¥Äî+XØ“iaî¯y^æÑ eÒãÍÓ4ÔÁ  +r°Ð¬-?ЕKöÍd—œ.´ÿ³TÐs:/,4ë¸Ì} ›dþÿõÀ3[ú…u¢‚ÿ.äT¨ˆ‰‡jjú±Ž¼ !n±áj#„šäôŒ¥QŒïž¥ïa¦ ùh¦°íp:3÷PÇaìkið= 6aWEDœÎæV™§2³Ž@|wÔš§y¼áÄO‡Àw/•wpøP“)uaÉËLP…'Ó<ö±FÈÏ„> +u¨bÀÿó||Þ¡ŠC°äá1¸Ïé _ôk>«Ô¬ãó·%è€Í~¸ÐüÜ#U&ä_´q‚½?ÁÀ˜¥ÙßN•?~ª³roÎXê€;†Éñ–þtàOQ{àõ'29&™€ ´)Ð~ŒÔ-à6Ähß~B i¼¤j{4‹¹3Ì…mõR£ÄèýISÀ¬¢=v†®'*|Â/ & i‹ø‡²œb³2§àè5K_ö¨ ³t¢#&÷Ö¼îäúÛM8§ZïPÁÂì)˜È €k»cÔ„Cˆ&3Û²f£mƒ:xò¿y&õH…Û£}Lÿî!¢öeØÐ#¾#%&5p]5Ñ=ž˜Æ8´_s‚‚ÿÌ ²Ÿ3õ6R/¥@§û‘.úI6v[rKL‡š%9¹Ç’’ÆSenÑî!b½?ãËjWÒÃP†ó‚OYb'o²â€Æø5SñSGG™U‡Uôô%#ÝdYïUeeï*؃˜š¼|ñ‰FÈ;²hKµøhBض|ræç2ÏA®˜”yßOf ZNçx|£œœ°¯b ÷•,ÒÉòæY, )3½Ð7 ½ØˆûÖ¸ðHNÎîd^þÎÄ÷z£ô{ à™¼-9Ÿ¼8ÎN[¡Ej‹ÛL@§„™ûZAîž*§ä@“SdžÊ·à‰YCŒ3ˆq{ +ýt.¯nšAØÕâcv•øˆ)6xO‡‹:˜²ô‡}ë?]Ìo9™Éþvòöçb^ËñOt ÆnÞײ& +æË¬¡£“ï#Ô ‡z¬¦ÁOµ,ÒfÙ¬ÿ3Ïåÿšær,9»+!F¬À¿Èéi–=à7X‡g_“[~4“Ww4Sд Æ} åÒL*þp*Sr™kzðP*âŸXž|ß å wd4ÀÞ/À)ûÀ mvªÎÎ?Õfžê2³éxœc- gé 6Œ?ý8žÉ­<™~äsöÁg€‡È§:.òÆm’rÀop°§S¹'S…'ꜢSeN¾Y.d[ÖA-ýKr +l_JJ0ŠñÁfI¶È$ýV»5.¢oKDLÃ(¹'á`O@ÌÍZy[FCÎwîé"ÇÿRV)Øxý>ps˜¼ÐÖl‚O§™ØcÀÅ€ßË6&D¬õQ>âßµPà!ŽÕ¤$ã8Ò[?„piŒz²R—òåT*kx,¨CE&ÿD›_} +0ñTUPy¤²÷À8r<ð#”Cð-Üû‡Q^Ò|¬ +wÆ}”¶Ôžá8YóTV’øöPÎeí©,øÍ˜¦a’‹1*ؘM 5qSÎL_—3RV‡)‘?Al?z¤d¡Í*.ítšCµäÿú 1puˆüHÄ®˜w¬ø¦å Ÿ´7ÉF™9–½µCmaýÑt^%ðÀí¬#€7‹½ØàÙætÇSmVþá ÿkžE=e’ÿ±ìMÏqÙ–}è}5<|ѱ.3 èÈ"€Õ]G³Å½fË™À‘ûjR¢~‚kódÒdò×FhñÒ¢Š=Ei—IUPañÁF…ˆ·Ƶ?%lÖfŸ•“cR·ìkËF÷4¹ÅûSBÁ¾ŽÇÜVÓ`ú1 Ç,œyðé8%iy¿++¬8Ô”tZÖÞN +»Nçr*N糘§˜øfEÅf  MêœâUÅÄÁlQ—I›Sº:ÁÃmJ¹h³†ø9EJþ©¥dl c}Oô_PWÿÑqh§z†IFIظ³Ö‡òÜ@{«©°Ó) ÌÖ üʾæÇä¾6«pWÅgœZÖÆ-}/ÓB‘e=÷hÙ}©€fgÃLR6ܤà“Ô\"ðf(³œœšl9q0žI5ŠÙ;ã4 mÙXKÏÿ¡Š?bñÒ &æ)ótN ú9ŸY`žLÀïÉYðà5~*„,0W*>Ô\Ü!À·MvÁÀ¿¥Œë|KºÃjWúg ŸSeBÆö»>HÜ+ÈÞÍfîIØÀ_ÒÓõÀ,ö¥~Ü£ÄOfrM‰²gZ“>môS {²,þ±:“ +jô×4‡y:MCþwA4Êè)‹½ôpý('Õ²ÿn–1R÷' ÀŸã¢ö%@[‹É±ãÔ„S £O´<ú¾”µì3©Àø&ù¤ce^ñ‘:¯üd*«èç4›¾#ÁYz4îAYòˤÌã™äÀo[Î'ŒRbV;P.k=hÏC.Æ$EXö!5ßÚ”…Õ–~-Ã$5~hü§‡dÙßs û×ÃÊsó4t„eísc˜» ÆfV‘â2lÐŽ‚k9aVdrNÔ¹Å@×Zzœ¦EùÇ`>ÎsÁçâΪj„µ¬ÉÿxÏ£i6ð-Ô4³`ȹ_óüÌÿ.±ÙÿY`1ŽÕ ̱†Mù9'*9^}?]È*;žÍ*9’ós>»ü×bVÅñ_´?Å¥mŽ‘#çjòÊvUúŽ"'׬+løXdÑ@'@“ï+3ÙGš¬œcà»öTÙùFM~¹I]Ú·§)é9Ôe—îk©Gó4“:Û›d¿Ú/ÀmM4(w”•’muv1ÐUßÁýòOææ]v¢ð-çWö5YyÛòjɾ¦ fhÀO/¿§¢¦n‰‘¾ÛbTàžŒšüÏLföÿæ³JþÑñA,¸Ôufðß5€ÊO4ò©––~¨¦$ï[ü±ŽË>žÎ*ÙVÒ3¶U@ó̵ƒúµ)Z´á À–#-³=B7ô“vFi±& y-ýûRÔÎ0Îwkˆx0ÉÎ0ôQB6ºpîú¼×O-Ÿ4,Û jø6´q‚–`œ¤%€œAþšá±-ëF»2.vGʳœs"I„”#)(c!,ß3€ûîˆ)±&)3csŒ½ÔK ^î"nâü$„Èí1RäÖ89f}dÊÄ͵á|;áN[ŒË·Å”„ŸJ!÷§\Ä7+ȉòû«=¤ÄI!}w\€ý©Ìýw6ëÛ?³P+t”¥oÔPˆaˆjéÃŒ<˜$GÿÒ²ˆÿàéÁuðï™0R8¨—„c5=ã@J‰ßŸ$Æm aM£ÌäÕ·f³úЀWÀO£÷$„¨#!úP‰Ü“1ÒU™‚#À–=ѽ R‚º&䡺6øþîdš ð¿G.0öeÙ¢àöä<ò±VÀ,hu,¨ÿÔ#1Ö¬ oÏ#(é0‹ÞÝW‰2לLNÙ‘"¼7Ç‘^Ç*âp–e/ pMÆŠ‰>²Ø‚»?¹Kœwç¬öý6{ðÞÿw^T|üoOŸfÖÔÍf}?š¦cΑRÿ×±’u¬ ÇŸÌ6ϲi¿æY?çskªWí ÀôãYàk,ë8ZZÆ1ðK»À«ˆÖOææLåΡc^œÎ­­°´4ä’–±=ÉHÙÕ®UU©Lšò±C]^¥|~¨a¢4””=:lO&`å?vT%mk@Ç‚Ú:žÍ«?šÉÌ5ÊhiñPÇcXúrÌꂪ}Y–èt:·ìX›[f’ˆ¸jüÒ¬ d)§z:ECÿÔr(@þœÿ6t²\Ð}º]ñsšËËØWPMrr졊ÝW¡³7ǹøUnù À á¸‡j€]ZþXCI6 b<—Z૨¯ËxÏÅFô—ÝaJøî0!püÍ0€õ\i‡XnIy½ØðüHŠ8’Q¡FŠøã81Ì4NŽ8ÐdÌŒÝaFüÎm’ +éòL¦ĬíŽÐbô–s¤ðÝQrøö0Þß0ˆóÚÀxl1¢—{H«=hg£ë¿#Æì‚¼Þ El b½eÕ÷5õñÏ×zÁÿOð¦I¶å<~‚Ý£½ ÃéÎ2bìÖ9RßO =‘Hÿ/zðù`ø -i{ï·Õ‡vÛD»Jɱ¿t,àO9¬Sµ7ÉÊØ"‡îScmo–R6zÓ>-4C_hÑæI! à6xßùé?:Aæþ)fgîlKýôðì?u9¥Gšy‡òÒg£ž1æ¿s ꩎Ž4+)I¦q|ˆaïoV ¹FKŸ8ð&Ç@Ó<>P±1JR¼Aœáj'„™%ôdKílËyĵAZäî$!ìP‰ž‡ùKÃÂËi‡RZÐ@{sé–³¨–ué“YÿÔ²¿'c[ÖbŽÀ³þhKßY–ÉÚ°dGxTÅÄœL1p§`þÿÑ10“ÄHýÊsGŠö?Õ1 §–ý20ÎcmNñ¨]NÉñ4ŸkRY< 5e ÌÞÒC«^ÄåHká!AöÉ,_x¨¡¤šUĸC%9iü–hÿ !Œ*{_›_¸äûñ4 2Í$ügŽÃܑҠ[@K¯‹Yi‹}ä “4¿Ø¤ÈÎÛ¦Å/u >›5lÂÐÏßµ3Fßžô@Á%ìˆÙé˽ŒÈ OŽ9’³PÛCxÿ} 6èPBˆ8–ÐS,=¦ÇÓ9e‡Ó9¥–uÉÓ™¼†s³œ‹Û—r1;ã䨵žôO‹ðO íGà ÚDz¿lR f­ûï9Ëy\™¥ßëcèÇyjÊ3^-Õc ýÄ€å6”ãv?Ö{{³Ú‰óœoLµ™*‹¹·Ü}µ=ˆó±œY7LˆsÍÈ/;ƒø€ %Þòzw”¿ÑCð±œW4ôÒBWZñ.Û#ôص‚ïb꽡èkY›Ýù¿Ò +w˜®Iy1S·[mC}6‚÷%„ð•^ø—¥N¸ãö(1xwdš †ëû‰þk]d?MUÊK})È<ÁN?˜ Fì"Ýw‡`Ÿ·úÒ?í ]'aûbJÌFÞg¾é`f¥¬´¥¼]iIxaÂøNPŒ#X_Ó.Ð8B Ûè&xïpa{£\Øá¹;Ćî³SÖ»Ià÷Ð_WÚÓì׺`·GÑ>;“¸“Ô²vEMxŽ4ËI1–31?-gqºe?È4NO=Q +RüDÍ@ZøÚÂQ¦1b¨q”ž)tŒa_ÊAšÆ3i&IG?B1M²àû“Ì´a|€Þ²ö &†.u"¿¬ta]õÀ—ìŒQ"·‡È!æqô?*ú¸€¯YïB8nta\L£´ÄSmfö)ðGrÁ4FO6Â÷FˆÁ›ÝX×Õv€}ƒäÝajÔÎ 'ek€›¶?Á›Ä¬Ô^¢Ïz7Úewp¬f¢LcÔ˜ýIìèÏ}O{*mh‚m ½'ã“ ãdÀõİm1.Äòž˜wKÏùŒšôÏuªd£Á8H–½°}95qk¼ÔtÛ¤¡þ3+*ù©e“䤣)&ö@KGìJ)q› 6‹í·™jìÇùz¢ËBÍG’—b½Ü–ñùàý ð2F€Ÿ&1Ê{º9H Õu=gÚ±®»CÔxÈ͢ϑ‚ƒýï Ÿª¿?ÆH°h£ !Ñ4™#Úgqæ›Û#ÜZ7u½ÞXož¤%Zêl©ñÞR³µ»…º4Ó0ÜÍ4–îfÂm †!ÌUºaà·Ø‚v\jÆ~YkǺŠé‰Ç6\o9KßOÙ „zöÚê^oƒ¾^iN~³x`½3ãýR7>p²8üöR#ÔáTÊBïŽàƒ—-ßiK|µÑ™b¾ói`µq„“z0ÉELˆ5Ždⶆ2±ë̸©êô7ê²d뙺ô׺ڴW«ÝH§c)#ýøpPç>;#äP³œ3+Øè]1zü­eMéD-`ʘé§Ó|жT#Èÿm1-Æ0‚ XìHuØèÝK Yí .4a¾ntS#£<À?}ÁWßKô[ï@9­¶">Nצ¼œkH»Týlì¥FüO ¼6¸·a˜¢ïÃzntYΑb=÷ĸüïBKÆç‰‚è‡Ó?Ò^ëÛp® õé¶óõi¯çë`o×ÛP.º°×35XGP'©«]œ8U9ÖAQ{1[‡ú´'Ì4N³œ1þß E.w|¶F,½U"ᑚÏÞšÁjx³élZÀдF âÓJ;Òyg„j™°'æÂ÷-{œÿžM@~•—Å?R•Æ?ÜéÇZ0ÞxOÎ8"äš&…”­1vêr;Þ][’þLý úH,бê"]œ*´¸CßM 6‰ñaÿ›'§›åØàm Ù»P_dqtU‰Ï7:‘Nú>œål—YͧíH9Ã#Úòck€ayÈlâýTe†Í\=Òa¾•â¿7! J(‰[ƒ(Oã8.Ô¬ 'ìYznÛŸêPŸÖÚñA†>Œ§IÌLØ·=D‹¹ï¡ïDÝè@~Zj‚ÛkÊ’ŸÉò“ž-6Ð}êÙ3UøOóÕØO 5ØO³HûåF¢ëLÒ~­ç²ÙAòݾÂ8ø¥¹ÙM Yï x,6e¼›ªKx1xm€~MS‘öv© á¼jðÿb Þe±ç4Sôt¥1ú‰¦ÌÿÎRSª‹a_îbÅîŽòà†!FüR+ÞÝ¢ —Sßîö¢<Œ}h¯™Ê˜ÇK­¨¯KmDŸ.r°¡—¸Ú’j·Ùû`èIw4ô!¾hëáï3î.7f¸ü”ñÉ–\šoJ²YnMy»ÙƒtÝìE¹èA]úÈ[ýÄàÕvÄã°cÍãn 3æ›(Þ³µd·é*ô;mYŠõ|]º­¾ï»;H^ëÀºNr°ûÿr(ñ_ iy‡…e} +äø¹ ³‚‰1NR“vÄÀ·ó°{àû³ Ð×Úò„ÇS¥É/ti/u°— uè f›]D?ã=z«›¼ÖŠuZkE™ªL|øö¥ºúx¥ï~(Ò¶ÅœôuËyg Ë¶‡1^+0‡¹úŒÓÕ©6òoQ÷{˜žTÅñÖë-¹ÚT›¥æôwÊ’øÇ‚ˆ[‚èšoiϱÎÚj‚Ë?åî ?þÆd.ôÑàý1`£ãªï"x1|]lÁ}]í&…Ž}u^2Ù4Aƒ®ubÝ×-×vŸkH}#ɹ«ú–øp®ùq,úZ]†ð8ç‚82—Û1_uÕi6Sß“iKm÷âý'©º:˜÷V#Ý4^X¸ÙÏI™kDlÆ;kË¡OGÁW{)¾¿O—&Z˾Aß×á}­ZÒ\Ná6{’Þ­w¦Ú¯v¦ÜŠ>‘tc±!éÕž˜{ üüŽ„‹Þ³Ó–:Ⱦӕ¶‹õös5ɯ&²ÃnªŠc¬´ ?i*QN‚'}/&ì@ΰ¼«±'!FoÂ]VZ“lf+£î+KBn®vd8ÊË“ì¶ú)1f%Ÿ¶5D‰\iN}3[ýHZt³âôû”íùfÐõFBèÍ™J”ãRÞU]’öTó-Õz¾ýNU’ö|€p½ƒèþ÷L9죡‡mèe'¬÷°"çpŸ—šäEqw'sc­fª3Þ6“<.Žp#Ÿn·Òƒ·ºóDçéìGMIòã•Ú„gó?b­×êÒ?¬5¡5ß“žz…(ãh¾p­›5S{­* ¿¡Ê ½®Î‹¸©.¿9[ }Ñ/·’#\çëèÞºò´Kiv+Íiv‹ioTe)OÇE1·Ô%‰ÏV;Ðî H×½ay»•²ÙC ZéÀ¹:û<_ŸñV´¤¼(Ô +Ôwøj3r®‰âµÙ“ƒ]i&,µP¼§«Rž+‹î)‹âˆóÂï÷ noö‘#Ö@>mt£œ—ÛŽ«@ÛÎ7¦Øéª“mä%÷%Aw§«£¬·ÑþG +>cw”¶Öó±¼×BW–ú|±þnÅ‘ ¨ V^¯6ažÿM€É1&1·ÞA Ö÷PC2Þ*Jâï"®Žò£®‰sâïV!¼ÿècG[ÏÕcÜ·ûÙ‰ëÝä ¹zØ›¹J€¹Ù >Kâéj’_ƒç¹³ÛÃHYéÍb¨j®K´ðÝñ¼¼•Nz”¬(þI/Ùç÷.’ÿånÜAfê=W;ãßðÝÿÔ–G=4Ž¡|v†@÷¤~Ü@¹Œ#Í“<ÜÖ-Â8. móÉS•¤/º +ä[ÝÄ'ª’؇óµ©öÆAJ„¸(ñ]܇[¿iJb]ÌR‘`ªáÑŸp{©-þÅjkÜs]YèÍùšøç¦QjLÞ厾kzs¥ ç>WŸúFþ-ÌJVtk,3ðÚDn샤˕¢„÷VšÐ^Úšä¼ ËÝôà‹=Œ°K£ÂØë=ßËm·K½¢àkh¯‡gÅÂHûMÓêJÜYQ̃É܈›â숃œ+½¿ ÃÂØu¤Ð‡Õi/·Ñûx‰÷丨*Œ²Z©K³áÝèÀ9Wdû]ÕUã=$¹8—¹*šÿV?7àÛ×å˜íl9Ôz¦,õ…,/îž$;ÆJWŽý<À†=Så¥[ðñË|=úÃF-h¶ûQW‰x¯«†}¸þ­*|²ÑÎK\n¤i ìVZi~+íD•6ôçÅæ û…Æ4[]eܳɂ`«‰Üð;Ú +ª³¦’ä´ØLt›­AØ«KR¬5e)Ï%…‰†D «Ð¾Z(W›1^Ëíd_e1ôáXvÌÍ>NØÕÑ숻ÒÂÈ{êï‘W;3>wŠü­ÚhÞV[<¨Á(%¸—$?ò¦¼8îÀƒÇ½lß¿[îW1ïþèã…XïÓâ–Òìêï5¥ÚOW%¼\k³Øàÿ`"×ýúbÒÏ0NKÑC×)K6óÕ˜šïé¯fª€¿´Ï} ¼¥“EÍÖ¦¾_j!y«Êáo&󡔥i/f‰Þ«=Ìh‹Î˹¶Ð„tT•ÁlTߦîÀy(¾Cm¥ùIg~¤¿6Z8£:ã㰠ᙤ íÍB5XžŸj=SCø"/AÛ ân*Š’OU ße%=¥Ùž—º·ïÝùÕIöþsŒ|UQÿ@ó#Åf£îdšÀEއ=¯Æ}9/ù–úf¥3—2UKõÎNzÖA¹ÛA ½9Ä +¼ÚIrùk¡)Õy¡-Ñv½ ã·/ÉÍ?Qó u±Ï‡8®G^ëÊ#ïéJ¢¬¦Ê OtÕû‘ü$ûQÊ›í¡LÂþ8µ3„÷[k‚}Zª…ÙÏצ¿ÑV&]÷ÐÔbbúD16вTû½ rÐ"ïæ*â.T'½TäǽPO}¿7$¤™Æ³™›}œÄ•.AÊb+Ám¾ f§ý‘ôT^÷@’rSžzkg„?Ó {§)‡¿U}#;Oä"l”ß`Oµ¥¯´?pZEIã?ß?ÓÇ +ù°ÝÏÏÐTc>õ \~ï|ý}€çõgÕ÷’®öj°ú4-ÐöO¤ãó]ô¨~nÄÕnŠ×ùaŽßEIvè•>†÷ånªÇ•¹ºT!ìëe´ÛËóÒ¬tÿ©ˆµÞƒø2[—òRQ¯ŸöwÆóühfôV^ŒU’ËË߯q¯[°^#91&sã^Hs£4<þá:WñòÌtm¤u“ âE-àþJ;Áo©…¸%ÃÔ†¦<þш ðïìçsÕ0»³#?«Ä ;Õİ –‚fªÑŸfªà¶KÍèO ¨ÊR˜M#ÖéF„ãy µ_ëêïϺ¯uR#› ž«íx7ËšÚ|8ÑÖD¿ä†Ü_í–Û813µØ¯Ê²´WSioëQŽsµÇþ¬ˆÇ¤`›?Z¨AÏõ]ÔÐq‘×eI®ÿMEqÌãnŠÏUi¦×í•ú`»ÅÚ¨Ïë}„Щ&¨¾­ÞB ü¤ò;ìE;%äR3ÁïAvèU}ò‹~çÛ“ôŒúôÂ|#=RVŠþ8”yk83àÆrCÆç¥&ÔgMyòSM)ôéLMÆ;u샦"ãóÎPy£G¼Ø„uR—Ç?ÖUÄ[·Ó®ä'|8×ǹ_F +¸[Ž °Z8£žFV˜úXZû —tµ8Ùùf°Ã™É’d›bÐ3¼ß»?ÀãÜÙì$†n÷S#woYïIsÔTøÝ˜Ìq»,y_›ªËø\‚ {$Lö¹5ZŒXéä§-5¡×Z’m—ê^h+¢^uR?^ÔUļÙ¡C§kà_´ßž.4¼gêÓýV[ЮóÕÐg‹MhGù÷´œ°÷ç¿¥zÝßä!·D-¨(»«.Š~°Ô³ßÁú-u#]s2œ®B^ŸW×ÃAü“L˜u35üùL%.no$_0]Oó“”DÞ“–„Z©ÊbêÊÒ^.ÔÆ +Ržå§¹üYóZ…•$=’çÅ=Ð~‡> ƒþRåÇÜ›¯N³oB}ʆ»]b…~üKY„ +9‘‰8+ŸfjÒßÌÕ >Ëx=Ì‹¸%+H±ndEÞö±µ:ÓN |9ÝDh¤\)Oûø[7ÁãV‚×…é_þè¢8]^îÈøÂKÿzƒÿöÒF!z¾ ùA]w_ö-ÖJñ=áÑD^ìÃAvÐõ1~è½Åz´k^†ç•2”/à_Z¸¬úð–Õ Ð\ºÊäçù‘w0Ÿ.0œoN×&Ú73½ï­µà#9…†JÔ2à&ày¾îô#]ŒCH·õîÔ÷ÒoУÅh羬¤·k,è|#Áu¶:Ý~¥ õe¥óU 4Ú?ìæô„Ëz-lŒpu¡áºÜJš­Á¸:0¾ÿ•Ó3~I¨ÐÍšÊÈ'¦Rü›ªe?]‡û:À·êeF^×–$?ÛîC»oá‚FJ¢^1Ã__˜ª øNäÃíºé!C¬æ*S^ƒzö˜oÄ{lõB Ý„YIìSMUò‡!|®é?×€uœmH?[—t<ÒE\÷nºéQÃ{VC ~¼ÔNöΊØÃ »ÒÏ ¹ÚË +»ÝFxÜÎŽ±SÔ¢ÜÓÞ]r~rRð¼s0ÁF,ïzNWÿD[b¥ùúx¶xŒj4-îË¥¨/OÎv‰’¼€ +ϼ#Íõuämˆûõr/ýÓ•ÅF¨ãæ!°…áwg<7îµYÆ'Ê8¸.‚Ÿ¼ ÊJU’`=À¹Eó}v¶*ÃýŽ¢á6œ“h»3ÆÂnvaƒV&è» ¾ëH·Éâ˜'?0n—«^7çÚqAƒ9)ÀßÀl×Û©‘ÛCø¨¾ ϹÆT[Å÷ȇòï1õƒ¬4eÆUU“ñq³—¿ÖN [¨Kµ]i†¾ÙèL{¿¼­ª.ãëj§€d(ΚoÄ*J°o{yÑVõXï?幉¶º)GÒLæþD­S[j¦ë .šÊDkuIÔ]±0îv7#èRÂ휮öa©6žŸúd¦Šæ;_K÷©C;žk'y\–äÅÞ“'Ýo¥«D}Ùîå#Lc|ôb#âÃf#n­‹• -‡ÙÈrãîó£o÷±¢nô0bO—á|–Û²áÊr’«´ í4'áÑxVøuYnÔ­ÕFØûÍzôd9ÊMVžþug„‹Zhùéæ»(ë#l¸®ûuL{k2+þîô´ÃxNô]i~ì‹åVF˜² i?[…u\m%y­¶â\WšqnkmôTã0› agde|¹ |•Û‰:·dkŒš° +<ïV?1ÈЇ÷Þ$øíQÂ7{Ѳ2´óPvÒ+CŸ€:^˜ô¼•ä|Aœåye¡)êq¿Èó¯‰Ìð›‹Õ§ÀƒÂð×—ë°1‡R!uo‚Ý%oôÀœækŸÊs¾^œ®Š}q0.  Ÿ8Yœút¡â+/>á‡]ígûü]Küt¥–ìtc²(졺,ÑZÛH +͇¹Þè`EÚï +(Û=ô€±‘›=(ïŦ(»ùڄ׊¢ðÛ3U©ï[yÑÅè€[C…ÉŽúAjäj'ÚEþ=ñÍLMüÛ¥–tǹúÄ7²¢ˆŠêô/­¬ [’¨­®ç¼ÐLðZÞÂ0ÀN›iÃz å%½îæÇ¼u˜db&nô3ã Ã<ø˜Ë¹Ú›•VøG€OÏU©v²ÊÔw•Éž³ø˜N^ðSINÔƒÅÚ´Ï«­pwC?"È8J™Ä¤¨ÕîŒ/LÏË3Õpwã(;}£ïµÔŒü8šv}LysTy»Oà÷x±%Ík¤0ñKV’Ó¥éV +b¥á®úw®2õõxVð­V”Ëï­$ßÒ’„7› vùq_ÿ¬Â‡€z0v&HIóÍÑ6Ëí”àõ^êî@&qwX€Yhø,uàýõCBÔr+1p­þA]g-˼°ÎéPÊÃn0»¨ªjŠÓÎHaöÖ°ˆ´Ö‰÷6XÎÚ¶¥8쌥ºê2œ–.š&³9ËÀ÷ª«˜žêï$§©ØÊâ¤ç–5—¥F¤£²,ùåT-⃮™æßW”j×D ¾¬*L·[m!û®µ“¼—Z1.sM)—Z¡ žñÏÕߢ­V›ÉaË‚4Àã/FEQÆD1&DÑwÖê1ÛÝlèT-ÖSú ö~­=/.Å})G8¯‚ø}";øîb òËÖ+i{\£øF?>dOÂÆí«s‹õ9¼Ånz¸¦ýY÷ýa¾ +óAW†°Õ·±—[QýüàëªÒ¸ç«”@0nÛ±¬ÀC¼ðÛãyÉÖS5d/Sq»Ã™Ô…€·+ᑷǾ}3MädjëàŸGr¢@EÜšÈòþ{®<p-Âa£'?Óˆ÷”|y0×µµìS|ù´ÖJÙìä%dÆ?ïc‡½Úêⶆ9È™–Ô7À3o‚ÜÛhÃ{ît"·ú) w AóÍ–÷:a¾îŒrÑã…»˜ž¨Êcž$¾íæ‡[k+’lÃ,¸õÜ ×9°ˆ½álÖLEòsÕ·°;#BÏ+Ýì¯×æßlõ"=¶z©QÓÍDßl„óµÁ¢$oÃ(3UR’ô²…î}§_ôLYûBý#òéfÖGZ™ò¹Sô`c’ðÕ±‘ôåÒÏíÆTmÒ«¹ö ǹ–ŒëÝï•vr0˜——3õ´¨]q¾h¥—«©H·Ÿ®Épè†Üï y_YíA{nÉD¼ÉzRbº¯Í5e}†Ïî83}£‡¸Ôs]jǸN/Ý/ð¾ÓBs»µ ¼ù`qš[3Éïörγ/›¸Ö—CZëã¥ìL0Ò2bk’¿1΀êÇÄzšïyqŒÝî·9($ìsÒMàþfªHw]íLýr¤âñ~Îæ7ïLPS;’ßïË +Ë÷¥yùƱLÒz75dà#à8¿Ù^rP9Åã¶"þa»-¯ïä§lõ1ãMbzòb+Ìa¾á¸ÜÍ·œ]X¢ÅÏ5¦;¬6Ã?NU$¼Zh‰µÝÃ…h±ÆIv¥7×Ê™o%JË0ï€îþ´Ü€vœ©Hy jþ¦þEZþ\Jô»ÖD·Zl$®vò“äe¶½ÂÐ[Ý\ÿëÒ¢ˆç³UPÇ¥&¤ËV?#f¦…ä#)O}±=ÄG¬v⼕e¡÷Û¨ÎWzy·jð_ÿ¨Ã;_ž©¡Eöá¿#}/fC?‡™˜)º'¦&nöá¦ê 6ÚÚˆ'–±ÈXðÕ^rÈfŸaËãÍ·1#&rãtÑ|.÷p‚õrýnWc?œïä¸ß”VÂ*©¾·zx÷qkí”Pk˜i”‡Üb¦-t§|XBl‰³[Ã9ÌÅN‚®–à|´ÓBÔno¸ÕCðŸ«G:.6£<–Ûˆ¾›½<ØJ-X\rG^wXî¤/wRü·‡ùˆÝ‰,îÆ0>×…óÙ”Vè'ËZõC\Ä|=üì{Ü£ñ‚˜ÊòÔ·›ýôXÀ“ #ùúA7õý4ØZ3n¾ñYQõP]žøj®â¿ÐΊÝèÍ!¯´3cÕåð÷‹ÍøPg‘úR˜eaºj;–þ¤/ÓÿúJÎ{kŒ‡[d¦¨ê_õÃ"Êæ½ÜIðÓÕ@ß/4¤¾oJ¶_Àú$LØ*yK-wC.d{ã;ߘüi8+Ȫáþw胢èÇÆ>Î8‘—µ1œÃØ,à€\E­÷PCæjoe%‰¯'ÊaŸ§ZHþÚz‚·Y™µÖCŒ˜©B¾S—£lÛÞCÄðõBøJ>x}‚G¬áG&~¼¶ÜƤeeëã9KÃ\ØL;ÖYÛˆø¬ƒZQˆ„ÓÔ(O››´ßWÃDAÙÒ€¨«…¿ÓV'=ŸmŠ}ªª +$+ eV‰òLò¬%ðG›#¤H“4¯p[œÍ0 ‘†~^ÚJ3l¡‰î«©§¸ÿ †Üã ßë›K¨Ë¢Ä©rÒç™ +Ò×ÅZŠïj-\?,D®óñJày>ý¼Óσotq ›½Øöˆ»1ÈNÚ D,µÝ—[©¾‹í¼èøÀ¿Ä9i/g+INk´ VvüJ» UWÇäÞÏÔü–{sšfZàXAê“á¼”·Ú*‚ÿfs8žÍ]ïÂùÎ×%;h*bžhªÓÞ²ð XgyqÔÃzàÝ>vôãô£º±|ù-Å””x¢È+¶ì­w¤9,´¤Ù϶¢¼×zHû¬ŒÝr”¢,êél ;l¥¿D¨mà„‹³’¿ÝHô½ÑżÝÇ|©,CxI~]…©Þ7 +“ݯš'sø†"ÀòtçåN˜ãT]ÊÛ¥>tÀ¦˜Úó±ký¼”Õ^>Ô’ÛƒÐÂŽ›íiŸ×ÚRÞ«KC¬¤EþwõݤèÝ‘|®¦–å4àçÙFzÌö°ð5¹ÒCZ ® ‘‚õ“l䦲¨fY\R¾<˜‰Yê¢GÎ4¢œ[p~úAfšåÈKX÷¹fÄçùF¬÷Έˆ)+Îx£*N¶Ö•¦9,6ââL–~„‹T×cüFò¢¯t3c’¼<“,'{µ´ÐŠø¤¬„Ú†?WTÆ9íŒ1`àok}ôDIôùž$¿hpêT5ÆQœ÷`¹þu­³5§lOdÒôƒÜTPïÉÛœ´…ú4‡QQà•>®ÿµ>AÀ}iIäë>x åo–¼_ì GoñÖA½v3#t•ð7]Ÿ‹#"ÿkÓõI6+dK/þf/}¥™ºØÀŠÚܺæ*«ˆsVÆØÍöâügº¨)ÚFl²i<·Ô¨,¬\µÔÈH6gi Ý–òYš¬|£\$Ôµ“„énw:‹S¢w´9?–žÌ5¬ïD-õ –{ që”ä}¥¯g"¥ÕɯV Aˤ­á¢Ìµ¾Æb»0Qõï¤âÃ~:êþ8Ÿl3Χ¼é¦aljI·«Ó’®tá`wtùlï¥ZNˆºýiºã¬iD¼_y.®äRç;³ÒuMì`m ÅYSNû~©Ž:žÿèÁ£B(ØV5,ŽeQgú9‰óý¬˜Õ!~ÆÖX&Ù4&¢øðù‚û\U†­¡‹h Wº…éåȈ‹uèèkŠ<š÷n{Eñn_6u¾þIWòqµ 5É «ŒòÂò]inöÆ '}}‘¸;™•µ5Î#›¤<âjo†û|KêM%Ôfºf?ÛD ,†ܬ@DÝ‘l—¸©»ýEÙí9Ø™r²Ûr-Ýo«³€8]ÃKŸÈKµYn!¬v C¬”í1NúÖ2h(Çãn7Ïýª®õu{´(×R# À ©~`ì§«iÁ @ã-´S…й5UÅ ]éÌF­õpæz³Ð²:ªë$¨eEEAÜXA¦{;ÿ¨Ÿr­‰q»J|Ý„G=jÀ¦Þùžs5ÍÓñìë{·!¯]x>{t–îu©••üDü ã +xƒ¾­d 2&fyˆ‘"­B: &¾šï¤§o牦Z9ÑÝ|øÝ~êñXæÍxÖqD€¶/Ëú›áqçë|ÞÿÍ‹³XÏ/Rý.½>ÿ®,Æn ³›c¼^’É™ë#Í÷à¼æ;ÑN@7ù,uóSäåtçñB†c_óCiSGŠy˜è}æþþ|šÇ׳_¬ïC^ܼ +q{öà,3Øãf1ôY§0ÞYW‰ße#ôcü6¨çÅNVÔB'5H?ÊÇíJ„ÔQF¼²:Ýn$+ùÁdþÃDésnbèe¨ãû30'Ç3TßóXïÏçÉÁ®2B½/€qŸs·¾w&ÒÁö6Àýï‚„À óM´ÍQuc,‡5ß)Hšnĺ*«¡Ž3íhIÆAUO÷”T>õåÀ­ c/W‘ˆo@®\ÍJ»ÀŒ¸èk÷â7«K@î€ëæå ëW ‰_í~梁(³¾Oó²õc„Mc¬ÃxyГŠÍØ’åä.,é ¯ ’‚¶Ä¬´õa>j¡““4ÝBO(Dy椇<âFúþ•—t ï÷õJ¢“ýåìd?«.vÈíaô#]#>¬ý³–ݬéæCÝxQÁ€]ÏA'^`%ÇŸKöõ†xÚ¿†<·ºyxõ +äåí['·¯A.^øòàï¿ î6Ög‡3åˆÈ«âœ¸‡ÆqzÒ¦„“µœ¥-¼Á +‘Ok.íM >á²(-ê'>âÌ×íŒÇë' WBÂì^C?@œŸ?‚ØÜüâgûòáåÈå ç!^/A.}u&?É÷’´ûNü þ¼—Ÿvw,÷RUÉó,æ;UÑi¹É°‹è°ð3q®®°Ÿ _¬­!O®þùxçÄãÉCÈûû7!×/ÿù \ûã<÷eȇûV0¿õpRª«ŸtÍì ]G>n´RؕǴ/'`îý b­¾cWX1áç’\¾œ ²‰qxIüà ²}±»ky +âqëÊÈï¿ýyrí/K, ÂD¿ßG‹ÑösýXï16XÓœöNZ +8`˜•º8,"N6rB:òɯKpéÓ¢‚Ï¡|\Ï Ü ϯo›G·÷nBl­nC®]¸¹úÇ9ÈÓ—!À󸿺¾áus²4õÕR/Ösº#ýÃR7ÑW[…z§®&~îÊA?«¥Ão" —qAç2<] qŽo!¶/ vV7 /®_ƒØÜ¸yzí*äúÅK çÎþ‹so¿»ûÛPvÒ—]±ˆc’çä&D´]‰ˆ ür­Ÿ9ÕDö)!½+ŦÜÂùyÿNðö;ãðbwëäÕëçG ^ÏŸƒ¸_ƒ<ºrbsû俥Ksgƒ<¿öÎÂŽñ½..&}šiÍNYì®Èß)ÌYÌÂOwp"‡JP/›ø°ûy¨¨«ä/÷3>¯m oîÜ„||pâòä ä¸ßßçÏCßx|ã6äòù? ¯oÞ‚ |\~ïä%[%>iD|Ý•²ð'³Â\£&;_×ÃMÔvðãdu÷ÁBÔ‹vòE3ý¦ ïïó[ðû·g^ßxr àÿË›×!À\^ùòö5îå~Žæñ—¢á±Ò÷V÷ŠM¹„gåLø &ù"#)åGŠˆ½Z‚E=Ì¡8««07G™Ð ±§ëÊ„)ÚóÒ‡k‹â[‹2 +cÏb‚ýÎ üÎD¹8AÞ>ºy.ׯ Ÿž?óöˆÉ-ˆÿ;Û3>v6¿QCÝ®WáÃïwñ“_išèA’ò×áBÒÛÑ"Ö§Ñï<ç.âáw2æN| —˜ø§‹½ÄÙæ ÄñÙ È“7!7ÁsÚÌ|uû&äþõë¿~ÿrÿòUÈ×Ç/ HàK¥ˆ„—’b¼»®¨kä…ʲ: X޵lÌý\xÜŸyˆÔËyXä_Ęèó^öo!ϬîB¬AžÙ[Ý‚|µ~y~ë>äî•ë‡`¾îß´ØañyûŠ 8?…~¶<ÈM^fCµÍ8UUªíÊ=J×-H«ç¶q?ˆV©Áþ¿¹¾µ|²~ ²{ ysïˆñŸ¿ÿòìæ}È¿®B^Þ¹ñsp<ëoÿî\.4ø¶º’èµÖÏL˜k'ùÌ4“ÜU•„ϲ +Ú×fþI-‡ø(‘rêåy&ìó'H°ƒÄï­=äÍý{¿Î‡Ü½xÄãä½µ äú_¼¸ñ²yq&Öíã•v~œÝæ;cG&ân+Eü-©€¼)æ"f»¨AƒÅðgßÈï +0é·R<ÜÎE¾ÿ µ³µl¹jùÆ@Þq¿ ¹qé/È0îWwBݺ ±¹ÿ’èæþ;)ÌïæX1õËT£0j©»,{}¸0_]G÷“×2½&j¨®Œô»èP¯sî¶Ï ¶÷¬ [CîƒøÞøó¨‹«g ¯üyñßû¿sh÷à)ÄæÞCH²§ëÙ‚”ßêÐAçšðþ‡š¬‚-)¿6‘ŘíÏ¥-ŽNõdãÚD¸§Y°„ ˜ ¿ßìÞœñ·µ±q€Ø=|¹tþwȽËß½ yùàÄÌeèûÏg±QWóÑÑ/ÕH—ñï±÷'Zøáí…t»Ž|·ŽÂlÏ:ߦ’@¿WMå¿ÈG³ãÂá§y'\Â…Á®1ך¸ßú ë‘òº*Æ\×wîB.ex¾ÉÂü•±¢¼©Á\ÂP“0¬«’ãÜ\À|[ËãØç£1÷ Q„{߉BVù~z@úµÿ„Ë䨘+¤Ðà+ìððûÕ8¬Ãh17J×L šªƒÛϵ½–Gr9 Cùl]W!EÙþ>Þ\ŒÊÁ„]-B'>è,ʬÊ/ò`èÏ( ð›Èàø?S$w´\õáSwX`°›âwb]FËá*µR; ½cœ&åìlvã$c¬ünTóyxIÖ‡¹Ï~Pñ:õ_²¼OK^'}x÷Ê¥÷ü|óÕ_åçäVž“÷b]ËìêýPÙ},fW|c™½<ÞâõÅ­L «½JÆ¥éæïɺÈâQJJ7ò5¢ªò_oî=üŸ×·ï¾Wý*ã½ÚŒ¼¿g>{þ»W¾{¯àåÃ÷aÕEv!Û~Z`ÓÌó<ˆCÌ‚†Õt¸_ÏàÚåCCG€€9Øì#í¬÷¢-3ä í0úá +|mÛü“ml|°0Á8\$xDÝ$ŸL@sI¸‡ÙìW ˜~èÜgìp©˜0»„r*¸è=) ¼#c­›]È­Å~°fœ–®›`æm¯OðvVfù»«“,ËÂÄ6××v4GÊŽI™à_M'Õ+#×y„ô¶Àf_W@2µêRôõH¸È#™€z(æclÓ´üÝi^•u¶¯E9=ؤ^šãÈffðk}ƒù«¼¾ÔI2ùf7¨áóa(ô’¨“_²·4€ñ˺B²¾¼›V1Q=Õqi!U'}gRlžÀ½Ù[bÔ­óÁÖ~£|¼»X69X+*ßèÎ÷öflò˜Ïˆ¨ŸC½eÂÁ¾Â6óþ¬€Ÿ.šïíI»ˆnæ–Ò›íäÒIð÷¦ô7kßZDËÄÛVà¯w„è|õ£x¾Ÿþ|i°óÍòÈHåÚèpeqaŒÞ÷|Ž?ž5EçÜSÓR­ó½-»Kœ]ìS“[ƒÆN¾_ß3èÓõ{uƒ³SÏø)à£:R³S„/ÚÝ@gH†Û•ŒÓ¨YðŠ’immßO rGجg ݼ#,Ö­–àîæ=Ù¶6Ìu«fä‘­¾ÙQб¬E·{CF~_âÞ„OKÛåäší|¶à?É0ë|ùÊ4ßÕ´µ6Õ¥[ènUNÒ´ ´¢Í!JÒ ƒ§8ˆ²ÉqèæhgŽz]nu"‚:.ý÷-.ïw3‹S¡‡«ðôÝ%ÌëÃfS, sJ´lÐ*Sèçû‹ø¬ý €»º*..àÓ?]¥çeš¥Wh—W†ES# Â1^¶rVи½6HvJø^{°ÍTð³Ï.5<Š›™œÓ½acÈ@îðʉ5~ ‡°/eul ;;¤3¥›£¼lÑpO¾x„þJ6××._`hÖQ[k¤|Ë2.ü€IµÌÁž4\’S̆[§ +ÐäwG=aý˜$bè›ô«»;òN‚Ðöulޤ·åA_KÊg1R±Ž l‘KˆÌt¬#Þød@®J‰•!1 +º= +F{PänT3ŒlúÆc[‚§’sH å;KФƒ5dæÞªÐ +M§†NnXÕÅ ÉûØ¥5Ç´¸š¨ŽÐ⢠=rjKHÕ?äÝìáe\¬SΆˆØp§¸‹Tñi¾ |©{—u8‡y½3OÈ:ÚbÇîjôh½u°ÂmÞ›#åù„ìö¨’GõŠ=Ä:{O #âc}ÿLPIƒÕTWJmp ™-öf}XÕI «ù Ÿ‚ +ª»»ÝÒ^®WÞËsH­{k˜Œý5t†SD(q¬cóÝRf›i–Ylä×ù¤3¢ðvÏ‚_G†±Zæ“üXæÑbÝÍ€ ^pfá ü*6Æ-ãB†îŸ©ofOÝ?z ™ÞWŒOïËzi[‹„ Ë2·nWØ ·Ëè Q#qlà2Núkd1;u}JB­_Ã@·ø=æ'ê¡cõˆŽ5„¦S#TRšœBZ¤ò”Ùœ}} ©Ù•O.EíV©Ê"¦4ìŠYàˆ>Q·º)f zÕ躨¹s4nÕÇ,Ýn¹Ð\ô˜ Ð]Z`nU´Ž€Šƒ>Z'–Ù¦;zeÔŽ®wtgñÊ8R÷ËÎ8Y¿€ÌØ•R`%‡bWói³œ²«–e à¤Õ˜I0S@s"â¶TŸ°-åp’ê+cJ&4"gtœ˜9Œ°žŽ¶¯´>9š¯½c/þAßWrUÊ|}~w²êyDÇï5.³)¾–d‡ŒŠ‰mÉãz¾ ¤¡ÂwW@IœÜÏ¥Yß{%àŠ³=þ´ÏÜ3%¬KrI°‰Z“Ç&./ªg“œiÞ_ëHÕTýº5S'°Åb¶{ìÀ8ü:&6bⲃz:,b 6…T˜ò€]`_=9Xl¹÷v7Õ ÍeóAùèL@=4RQ[|±s ›½5ÔzÇ#Á”é&[k‡Zo:Vp9îMtNPE¬*qU~ *?¢¦´…•Äê8wqÓˆ,nZKäÀñ‡áRêLžCˆÎõHñUò¡Ê›"NÖݳ­®ñ¨a`6¨P½Bl¾s¥å¡k­ýYb_»OÁ€l­›–Y5íKˆò˜¾w<¬œ *†}r&Ü:^ñËÁtÃmû"ä…}ƒP&é†ç¨{^q' È!걑MJô´ŠëÐUîõ¦¤­ñÌï‚JtCLß=äQqIÚIÈs¯‚ «;YuwoTÙI É)­‡Ë°l»°#-nâr#Z>'Á1 ä•ý2JkXœC=åS`=}æZ&WD5“a z´Ööl’äcѱS”väœIˆ³-^'ðm¥€{bÇ·û7܆žqŸ¾oÜ«éîuÈHÍn)¾Ü§ ·…u,lÜLCüuÄŸNÔ¸ê(ИÝpfAÔÆ ¸zŸ SQâ[,š_Ni'ú€íqûÿ²±ØXiø_i›?6vÜ÷iQ}×DÈÜ5fW’êƒVnot·wýí®`ê?{,Á™•Áˆí;k5·ÃFLSÌ(ˆ›ýQc§àÄÖ=Ä3 +Ì牖 +Êqe‡Ku·端EµdÈþ +±Á6Mö®ãJ£z*"lc±âû‚écÈ­!5‰‹nl/#ÚÃ[=S‡"RON?Õá[O‰šÍTxPË;˜­|n_h|Õ[ÜbJ“a°ú¢¦«ðœm¢êjH‰,òKa¥'*nî5-ÁKW¹™Ü2ôt·gÕ/Á•y¥¨‚!¢`k’åUâÛãvÏÉ~¯Ð©tOÓ +/87ï,l¶OŠ-(U2×¾ÖôÈœ Ô«{‡O,r¢ žê˜‡=Û™i¹­à•eìo¹å\%»–Ñé!*óp¡ý‘}¡åapžqðÀ;#¡é]ït‹×ÕÒ o¹ûí`®< ÀU„T¤†Ã5xÖþ\ëëwÁpÌÐ3è—ràMb…c¶ýAp ™uªb¡ý.\1ŒIGŸ?šg¾ÕsYaæÓ›€Xmp Ñ•~9©#¤æìÒ +\ôÝP{Þ}·M÷È8ŸSì“Ã2 endstream endobj 23 0 obj <>stream +ürx¶KØžê\kxá‘bJ÷…¤ò­ô+·˜C‰›ûuÚ=Ø»‰/q¯u$íM×\w¬ÖÜñ«0eÚѦ{Ö pZLÕ;’Ѐa%ç“Q} +R­sþÚ/C$úÓïIúëo¹]×±9Ç–Îþ·6&óØˆ©;5bO DÐîtëÝ€„?Ûê[ð)û&£É¯p½JË-g øì?5±i õÊy‰þ‰žÝ>9¶$¤ÁTÆ4ÄÖSC÷ð±·Qx°ÐôÈ0ØxÓµŠÎ91Ðщ^0Çz|}\GlIÜçs qeÇ&é•ÃsŠ;2]2DI|w@è)q@El³¯×=p‰Z_E¸¦c+{²Ãä9%”†ƒuBYÜÜ9è×ÐáÀoÁ'Ö]kÙ„(€5¢8¦E”F´ØêErÁy!½úŽ?±.@ˆ)vK ynªÔ£@ùT¨ü˜ØßêânÖ¥àCùÔÄ$šˆ c-ª|g²äâ"îîJ^Æ•c-±-¤b㎖qù~i¢× 3ÁKœ)»ó—[³ÈÔƒuXÚÑøµGŠ«‰™ذ†ÐÖwv‡ ƒk±í®©ØoàÄÕ›O5ˆü¨¢5É#ìxi_ƒ¦ØW I)¹Á8ŽJöÉx䈮»7¬¡ƒ^ý»$¨BË<<©öú»Ý9x݉©{4jìê jñµ~4àÿ Ÿò:pK˜§ z+”vN.h|7÷χ ]}^@;ù=U„Ð4×&$=¨¥>Xr¸ˆHuojO ½“§€×‹iœ°’‰ˆÑ%‡óσRJ£k —¿€Íÿb¢ýõvz–þ° –† ZàºòÝpÒÖdÓý¨‰Š +m †d4s _òŸÁø»‚ñ?÷y#ÿ9àŒDõÈêý•¶G–ÙöûöUlöÑ**-ªbÀÎ ‚®˜ŠK‰ª™ˆ ˜?!ä•®·ä»Ulú‡ ¸*k묊Ÿ‚ŸJ|Ë™…Éøm‡Í?µ² q$¢6uÝ#ñ­ÞWm¯½º3^÷sTø43 þNKl÷,t¤˜º ¾SsÎí϶垘Hˆ œî\íH°° ¨áRj1bfp£&.ÑŸäOwc@þE Ι• hhŸŠàµ#bdàÎl,æ[ “Õà['q©ß§À•omƒ’·Öv“!‡Â†g$?¨…˜0M¿ïtއuL +àCèó 8¨é„T pDMmkÈ­Þ•Ž$¯œÑ·=Ú†§¿U ¸1)­%"Ä—†Öй‡ãM7ü@,6¥{ó”1lú§¬‚Û_¾õ‰ÈõG { õ7m u7·¦žk|ø§‰Ë9cêæ9¹w@ù¿ívÏŸl±Y@Þ6Ù[lz´A{õyb=f‘ª{qÁ=Ëñ-ãs¬­×Í=Õ]•?ø¥ßšø…_ºZù6åÊQpZíë›ÿž…æ^ó )-^)RÒ!%©Á» Nß™)¿îÚhMŠêhø€Œ°‹R›rTADËŽk Ù!EGúþbÝ“½éæ'a9ÒÌxT@·  +NTØÊ¨œÐ£Ë‚Jl‰GŒÊ²¯"Ótƒu?í/#ó5£ <ÛTó³°œ\ïZƒ¿r̃îy½a OÔ¤Ö¸–œÐ×Ì#—þð +‰º'žMx&ÀÀ÷>áŠ#@¬mPÑ. iê|€®›˜„ ’Øè•`*‚rR«_D¬ðm ó¾ÎI) ÄšÐ¨ŽÏ{Ç¢f~—[‚+t ±3à'jzîçáUDñ™®³+`RPMnóI¨ cÀËDLD\Mƒy$ˆb§Yæ•“NŒüž¿5s·ùÃo-,zÌHl ©;ÒÝâ¶öÕ¶G®Ž—î h²OˆÊ ŠðÞut¶_J¬Š¿Í/Ç×:×à9öùŽ×a-“`]#Ôa+Ÿ~jFU¼µõmoñ‡Bj +Ä'GºÄøý6ÄÙ¾)8ZÕ:6HõN`ìÆÁºÆ®ªkÎ ðÓ½áú»®%h¶O„¯Ú™?÷ɰõg6nßé5b‚jD[ÖøÒ%©}vº…nüm‡Fð*‰5橖ljþasgOÐö§6ÁèÛ=þhÌ„…Ôà¬ýù¦»¦±šëaƒÕóø'&&åØD%ú5hð©Æxk#aÜäX¿Úžh¾ãáJ­‹¸2ý³Ü'+{;cZ!® Õä&Ï6'°ANÔ:@¸oü+¸â¸˜Úx0Ö|Ë9Û|ß6^wKÆË>§àd~bꪼ{¸Š+Ñ´=°tÜw¬œB:ȳÉÇ€|ûM'èt1•â®â_ög E§€XõʸhžUX†‚_zsk¨ù‘z°õ6£êÑ7ÎIT¡s†¥åÔ~¯b–|¡ iàWVùƒùƹB*ŸcÕÜJ»wþ}fÑÓïBÆ%!w®A² —ÛÓ%?™Fr/x7ÛRw—@¯”‚¢ŸCRtÓo€î‰h`ùþ͆'Î…ò›»Yßi)ŸîU_ˆÉMn³c{þ"±ŽùLÃD¨¹T¿„PåXA¤Úa/€XÉ>œÝwUßÄ•Ýÿ÷"6í|ðà‡K¨7{ã ·Ž&«õ-7ß·ÏWýº7[|óX‹m(©0ï<7 +Ä}@Jhp¬C³£[˜–c ¸+ ¡Àô-÷wá¹1s +ø §„Xm[@¤zÖQ™îÈËù֗ +^ÑUcoÅ/A1¥6h–ˆ¾³'jâqX¯?\„¿´ 5\±t}\êHs-´¥Û›žž˜8€Ÿíê È(Ý©–×R{ÚÎtýMËTíu¿,ÑWª{úÔ,Ž'êRY:{O¶hØDÿ_’êÂÒüb𫨙çxÔ³ÜöØ· +MòoRëŽÿÛ»žÒ’£Kì‹à¤½yxšyör‚Trçp…‚ {Ç}jê¿ð +!5 |bâ÷›{§×Q9ëØâ šÏèzú„Ô:M?è…¹¿õ©o“}0ÝüÀ³Ö‘àIöî|û÷&ª(n"cc&T]T/«5Ç5ޱmïlXP…*ôWŠ~¬á–cQÐÒá~%­=j`QOmý^2?¨„xEˆ¼€W5²9»Ëðô°šŠ:ÝÑœìtÍD·¨X¯QàØ@f.Â^ÌCÓürbyªã©qŒPTOlU}½A% –“jcZ*¢Ä—ûÅðÌÝ©š[^Î×{S­lÃ-÷\3à$ÇTÇ#ûCu7ó-O|rLÉLOÙ-Hé­-"ò.ŸšzÆ +Æ'ct~:Z¦íσž-µ=Žk8L¯–Ç0¨<®£"Ϭlð·hç +¾Ð6Úzgk æ²¹¯öºs™Q³=IÎR0ë¾wÍ“圃½8˜j»c¬¹$ë,ýfVðé(øå?w'pî5f{ü˜ûÎ5pZPŠk +JΓªw&[ï[ûênÆå$T¢§Ùî|Õ57ó#÷SÛ`õuß:8çàû%±Á±†x£l¸bŸ‡½ô­aó=+¸<û>ç`þüpöÄ•¸_7Š|jê?Rjošº[Û×Ù` ¯æ¢þ¡–“õE`ôÔ»Úú̳Ҝt¦##æYE707>³«ÓN l¶WØüâÄÐø:fhJßš.¸nI¿`›¬þÙ#Ä–­¢ówg€ñkØ´ ¶{$œ«½ÉÆ›«”ÌOº¼¯æüèákû¡WÆÑé·"–à`W¨4\ÖsÊ¿Òsо’R>žGÞü§¾'í"ÇPûµîp“éYÂ×ù%4d@„-K`YïŒ$ð‰Šˆé8Ô‡ùv À_ ×㛎õ„–˜W|–o©õÉn_é÷öñòKq"Ï'd‚vgiŽ%DºoãÞ@åÙÑog Ït]•×lc­)n) œÀó€–‰=6±©Q5r¢ãÒüJ4¤¢tœ˜x]a€$f·y5}>e'Í+¢TÅØÂ½©†»;ãÕ7BHZH {íXª dœ7\:3“1o·c5²Â'îxT òPà[|£OÎ:\†¾x«Ø%Nø)+¢£!â: ÐI   ™ïA³væA£:&ãØ2ª o z£ÖÎÁ¨¥s4l¸TOE¸6áY€nÈ÷H`¶<¨ã2}€7éyÜø ¨`}›˜× +ü•±¯æ—Ä^—efî·¸’ÿ4ô7d¸–1yÆî’ ¶‘Ê뎅֧b^î7"nÞç¦ÞŠNåT䱩³×#ƹ~Mpà‘’îÙD&r⭅Ͷ-âst}-×<øš“-åh ›}0y¼7ÑrÛÒ[uõpªùÞî"2u‘Uþ¹àÖß"&âhùÆ:\ý£®»â{c_í ü{}Wù…±ú[€ÿmÛ[DgnOAä²-ÂñŠp5®õŽ4ÛDÕ•EDÊ"›ÂbLKXÇcz„äʘœ:Õ²g€fr©Þ³zb*ø~÷âëDÛýí‰ö‡ÆÞæ_¼Ëôú˜¢¿ß·Ik؇‘J¾ZC~.!W}§æ”ÿ`¨¾}4-8X%U•=»ø>¾àñwö92®çwÌU\3ò3?7wås®6Ü?Û¢“":s†^üpòüëÿµó&bz\«g¹ùÁvWé·*bÖÇrbú¿÷Ë/ŸÊðÕ¦qpNÕóKã5%ýèNXKïO7ÝÑòr¾n¹ó‘„™|>¦#ÁÃÆÁåíer•Cˆ.ÿm‹ßóÖÀaüf"µû7A)Þõæÿ^'ô#4‡ˆ^ï’J# +jËþDË=¯ð;=çóø³,@þ]DM;ïXk-úÓÎYfdýb¬M91Ѱ§@^ŸšXì#ð9›m¯äÌ´O-#å7¢z +4¤e¢ÝRJÃá./ ¢cz>Qsý3¶þÐq¢$(…W48ÐÉn×BÄÊéóhõ€onóúÚ%F…´èš ç×Ð!n¥!¤áwî/ÓaÇz;Ñ/¦`B}ë´× +6Û6Þ|CÍ«½ìY!58—ºÎÂïÌÝ…?$j!HØ™ßïÿy}l`3FÇÞ"!;±ö;¦fÀOM$ð»mâL8ÙBÖ­6Ýs®"2"j:rg ZbNô9çÀýB.2¦`£üBt ?ŠÈYŸˆpYmà‹W˜å?Ë9U×+´Fï +6g{¨ñúþxÓß8U×[vIÁÍÿÚ6ÖüàLßÙåÚ€½1Ô\³N6Þ·Œ5ÝßnyìôV\…©tl`rˤ²ßÌÝãX#a5¥Õ! a儚ýMr¥}“ZR3‘~¶"¬‡µ­©‰#nèȉ©!E§&*ЋDqùM9¯>ùX;²|hÓgÝkàd]WéwJfþWZnÃ5ý 6›Öðø£ XÆO¡uÌœíH¾Ÿè;×AØþÛ7§? '·iê~òHi(¿yL±ŽhbÀy +!@<×Þö,·¦„eغÿs©ïL˜ú°’wºÃìŽïõ +O,Tôé EM ãJB*\å1ÀM ®NßUyÝ.#Ô¨†A÷]„æc-ŸéZEeýà˜©üÙµÐpÏ6Pú£{‘Ö1€Ç±/·? n"róTP’›€÷‘Q#÷ßk× +, p\HOA…ô7þðw[× çSÀûÛ|û󨊄=Ûê™:1òg@ÞDä„*ïò}öbo +lC=ó*.[¦@¯Öð딂OWЉýþe?Ù†à¯ì ¤jï*¡!"'6&úÄì-Ó^tŠ_J¬ólTÝÚÏüZ×ûúóMÚ‹ÃRLyÜÈøSº3ÓñôàÍ€eQ% q¬A—º×šï-4ßö­CSœ«˜7›ìÚ "^õO‡ë”–# ªéo½>Lÿh¨ñùßú“ÿF)¸ñ?rVÞv#pÍO¾jÏüõ³ƒiL~PLkŠIq¥õ¶$ËHñ5óÕ÷ËääO#šŽÂ¿ö;Gý+"rdÑáLóÝ£ùÖQ¦êÌÊ o3 ïì“¡ŠÍŽhh€Þêx|0ÛþhüÊ»‰.ñKqe‡k˜,MoÓµ dÎgÞpnÜ@lW^Rö¾ùÂ0Rqmûæâ üõ÷dk˜‚æÃ^ßøho¼þùŸû ö±Óà¶&;×kï$€БÁ‰žæn µ À„ûÞM|uTÍ£:×áé¶É†_,ÃõW6©%ßtV>ÿx¬=ù¼k”i›k}N¯{þcÛUS ûs-O-ã ¿˜Çj.['+.ú%ÍOÞm±YQ=eRªBJjÇé¯÷÷^_LKl5õWþ¬b–}³5P{ųÎõJ-ÆQØ£°’C愲7^{s¨áö‡S ‡ˆñ©ÿR3r?¬Crþ÷ˆ=ìT@Zùõw>qΣËß™zÆÞ™¤·FTÍ©Zâ\­z`ι`ÉùæÝvç`È<´îQðy.!©úÌ,;Õ3ˆott\Ej +KÚßÍ•ßö¬7¾üm‡;àÓ +z]b"fêì:¶2H%®*xs×RGÒ"ý~é½.õp_P‘Z +jbŸNò!Kö™–{G“UWŽÆJ +¬Ã‹÷pÔCW—È•^ f_Ge;ÖQYö5xªSMõ)‘y! Ñ÷OÅŒC1Sÿü©¥oþÌÂí|gåpGngl Ð’*\¹[Aiò«;G«¨„?yaݲ´ü¢å•žß­â\†æX&Ûïmà_Í Zfù­‡K̆ƒ|î ÷:^ØjoÇô„†À›”Z¯„ÖVð%âØÄäùåÈ\À=¾Î%ƒg;7Pʼn^«! T2áa5ß:<Ñ«ëÔLìp ¡éæ±Æ«»³ð$§ˆÞ~¸Ém’Ó­ô s'òŽŒTóí¡ðK… òºr æÖ6ûS «á±{•Tioy`ì)þѽÐü|{´ê–¹¿è’s±òÖ‰VÕcª–áiGk˜œc—700§[Lʱ™N~Ù-GX¦j®ûd™^±Î·Áh‹)Æ–µc"à·À÷ZïïÎW]1 äŸ?úrœ¼½€Ê…§¾;ÒtïXÇ"D5,BHEprK …Ö™–ªÎªKX=8™<§àÖ„>Ö3)ïL½So#üs ™¹?×zß'I¬ýââ Ãð§PüwTEk‰á ȽˆÎóò¾ŸÇg}”3P{ó¨B)¯ä;·™à!"naROmLú)€}'ûhTPr™žMzCLCjòIa¹{3M÷í³à—‡³íµ»œs´‚+ °¢½ELí½ü†”Q~É9~!r唿ˆ„ +ÙŸoÊÞž(yh+þñÄ@ÁÇ öÁ<(i®òêÁBÙµ­¡²_ËÍI¿Û°@> FM Æ<«üá®øÖÙvßʉ¹³'®¦¶»—!/¬}—ÔÜì ‡óu/þØã šgÀib>(5 ë>ÙëÝðKÉu{³Ð€O}¸7̉¨)Ðð‹MÔ{דZk¨Lç2:õN(ÞIÔY(¿°=Tò£œ•öåÖ@É¥ƒ)ðƒ  µLA2¤üÂïæÁÉ!9®æÌŒk=³àAq+ÕqÙ17u +Ž‚Þ·ÖþÕD¼·7n¦ÀýZDAЀ­vkñUÚ9Ä«i|Ñ÷žeR•cP ¥”~3Pwÿý¾ª;“Ò¿pL6þê^'æyÄòŸ¦‰oÎ,ASC26&¢dã"Z\MÜ€©õÈ_0Hvˆ·´›»5G̵-ár"\EH ä…VðÛ6ô»•Í95ñÀÉQŸ7õN›Ý1#T¢ËÝ›ÍI®Í–4ŸX³ÚWHEVëåidåÏãÙßM¶½ùx´ãõýÍÉŸ-a³¾1 *~ ¬‘Ë7»î"³ÎíÍâ«ýâNìÑ":Ó± +z”^º… w":xqXK»$Tøñv÷lÐ@néñõa-¢4¨EÕø54¬WIAFŒ,†]ŒÎ³/%îbMcð +ŸˆÕæÛLŒUÜD¸`É;Óð$1¿ö*·ñùgû³°ŒÃ%L¦mªý¾{•³?K³LÕÞÞ_izæ#r€|ÄéÆ;^IûjnœÏy·Û5{š¨©Å7:µ%7 éÎ H¶[J¨³Ì R8½ѳXq‡í“aJ-c?˘ùçÄÔ¢ÏÇ Ï>5 •Üò+H eFå­1ø›¯NíÐR¡Àø;þ»ÖNä…‚…<\'•9%Œ6…t}oSø;QC=¦¡C‹Ð¤D]S%ã“ èÃÏ£Mû‘y—R®ž{Ï4V“ô‡HR÷gJni{ËbUÞù'·òÆÎ…Ú§±û½J|ƒ]Kü·Æ;+›ûÇ>öû.ºí`¹4yw¦òéîBÇ`<ˆc3›Ò± a ײȧ*&éO+÷×>qjÅAvç@Ïçq9¶ÒCÚÞá¶“Öó{b†N~HÅ&ú7qu€F"FÔèò€šçZnîZ½tö=}OÃeko¢Ö\ÃM·èÒÞpõ ×lÇ££idú&¯ðÒúù¿v§Ú’ÏŒtì[ ¡=nDUXP`+ÀÏœÖ0ÑoͽS§&.ëÌÄ¡'¾ËLh ºÏ¥¢¶è'°¯W)õ×,£ÐäMVͯóœÏd´ª§JfÅ=k/ e—[Ÿ„$è"#KCØœ¯f Ï?ñKpµ'Ú.~HÁ#ø¤‰u–÷&:ïp‘îãJw—°ùªÐmû¹5¢ç÷FµÄ– ”â“4'ûDà<`¼è=‹ÓóèQÖ2q'&žàÄÄá%úÖG5€Æ_!”Í`3çЯÄõ¿T¿¼ò~îͯޛGæ_ÚŸFäo ´ÜÞn¼±IËýAÊ-½¾Â-úaœwÙ4Ž-°¢gož|¸ N=\=* Ùowðˆ?ŽØ}g¶®é¸U0ÐS÷„‰§Û î™?ylí]ˆšýaWK>/dþì_¥W»f/u¼ÜsrFúæþ²ë;3mI³øœs›Üò;1Àó¹E¨bËDã-Ëtã­£D 5¹ðŒ¨¡küì°W23In9ì‘ôrš1áÙ6¯/¨¥´c…ñ&zlG €×p¥Qày\Û7”SZ=btþÞb[’¶¿úòö,,Ù-!5[ØÝv)ºÖ2Ï ê¹ü˜M0Ð1Q=í–“Ý@îÄÍü¾ ¡{ЫéØ¥Ôº JÀ‰ë}gÆÎÙY%m/3+w©…öu|‰i¬õ©ôÎG=­/¾ )ðð€Yâv¤íÌ5?6 WþäaK÷…\„m™ÖèK⩹³Ë+ÖyeˆB§´íÍÑfkžm®ö‘OŠ,˜:9ÖyF…aûÊ«æ°þØíGÕä„fE4Ô±…×5töë;9Q V°‘Q@ƒ†µ‚® ‚ ÷Èép¯„Ø œˆw›Ü –øE„2Ï<Ã8XrIß]uÙ:F|3Êútó…\PqeVôã2çÜ!ï+Ë@Ýuç6W3Ð~Ç:ŽÊ ªx$—”‰èX严w.hô¸ä;€ñ;óä£5Tެ«øRP„kŽz†û`ÜB\±·ñÊXÛ«öÖ<~_Ì,û–TõôCBþ¯˜ûê“bL±_‚ÌõKPÎÕ¶Ôí‰ò»AÊ×Ròów‡ëî®â‹d]¥?è—wÆAÏŸ›¨k^ù‡ ß~jD×mÔÝ (å¿8ý›­gá?V/"¥VëïG¤à̸ž†Œ˜é!òƒu?;–ɵ®M&RÓßþ„ßüæëº—×>æ×¼úÌÜÕôÓáxë-ç +,c‘òÉ4íÜî&Ó³Ênßn}¸Á(ú^ÞU{Í:{®èƒ<Þš!UyUÝ|·‚P롊 +:*®gQ϶8¼c3Ñ¢¡A5¶Ù¯Ä”TäŽãíޥȿ? çÒv— 9ûK ÒöWA²@7 +{3Ë¿¬ê§Ú˜5ÖÁŽ{ËÈô/G[ž)Ľ¾ egœwÌ5?iÉHéHõSVÕ£Ï\ tPLÝÓÔ0ñq€çC*|mH‡©=Þ¥‘ý&B‹MˆÌž¢ý4I¹p¶Ó³³ Šb@,'úyïO7Üs®€“ý2l) ⮺»ãÈ7ç¶§Z“mÓ䏯#Ä—;Ã¥ µZgQ©G˸ê0÷ÛkÄ–yDIPÝÉ i¹ŒžŽŠlñº:€ÛÔL¸WÅ„úµ#+Glâþ2±2 aSìJ½¼«íî$¬ðü,2ûÛpÝÏRnáϺÁÚÔƒ%xÙ êõ7.¸4n¤ ãÀwoѨ1 ™V£š\+ ÅÅÍ‚¡ˆA0á”PЉû˜> ᔑjí2ÈhްIÐð÷ÐR¿¿B¬ŠY†åaó˜6jÑþ·6„IÐÒÒ!6À/î‰hu¢®æÚaà³UÜý´:$cÀÜ«ØLç<ôéþTÓášK +væ2nÙÅ Vã)7¾z_÷ò×*2ëpúÒÔß|Í6Örã`¦ñ¶}±ö¦› øÄÎ:®n Ÿv> Á6´£«.Åø¢KÞ×ÒòX'f~OÔÈeZçQ;ó€¿Q¥> ¾ÖµŽx³; +~$¦×ü²F*¿œ«ëèÒÔOùÏ>5t·fyW‘9Ûãå?Ú¦+/«ºs¾E<üx ÷òÛebúÅɦú©¶G=í_Xhåþå^|XF¨ka…!$ëh¹é¡k½ñiT…k=Ñ3p>)®"®"6þi&ÃÿÙ8‚w&.ûXKÛ¦*nìMWßÞ_EåòÁ¯¾Y¢”ÿ²?…Kßm¿oê+¿¨âe~½BHú¼¯õþg¼’ëïËéÅ…¬ê묪—ßÚFjïm´¤ïÌžXˆÎóˆÈun!¢È-ç®7?ü-"¬äw‡äTdX…o´ «^ì/—=ul´¦5€n´Ò A±Ý)…e óU0öÖŠk¡Å4+ +à{HNªu®¢3w¦àOís¤ —Ë]Àë˜Wq4ß–4ƒIûvœ÷“ˆç%jÍ+û<­aw–Zb™C¼ˆMn"ÀXЉ…ŸíTaª„=¿.2roít͸e¢KĆdlŠYç]§»æÛò|›ÈÊeFé¥I\ÎÍÝHÙþ +¦Ä:‰I¶M#Rö—™!±to‘¨ÇVè’âª7{[¬rªžø”]=A '±¶ÀÉz‚\ò-båòz>_7‰z£†¿ð¨:Y;ëÔÚ5JÝ}éŸ6¾ø÷ÁDíÕ ¨=3¢„Wa²¿M»yþokÝ•ñ-%fäÒ"T‰À9çfýsçZcZXMƒÇ \ŽeZ ¤}e‡¾ðiøü¨•?±qºü ¤pPE‡˜—ˆ¹‡kôfŸ +=Ü—ƶØ}Ç–Ío»‚‰Dï*– +[©(¢N˜_¦=C<ø(¤äS=ÔêDývÇ,ôÙÞpëõ­¾ºu}í×'©µß6§]ûû¾ð¶c‘!ë,þ^Ê,øÒ6Ötí`¶ñW¿°õ屚 ©yõ,4»#÷â¿l-E!ͬѯ™ÄÌýs'VNgÜÌ$'tÇþ¥l¦³å>«&å«­ÁŽÂˆŒ\ï]Bg8æYÖÄcC/ä–˜Òô½‚Ñr͹@¬0€îë»Ë¾·/·¿Ø™iº¿3Y÷йŒÈ4r²}’¶½ÐrOÚY{uk€V¦ä"_ÛçÚ_ëqmAä]'µžé(È3ƒà•Àsœ §Q%¶*$A•ün¤bþÚá|Wâkf›Ÿ¹V!ùkèü>DÚ÷ËÔŠ_v'1©¶‘–›šÎ¢oE”¬s@X|ίöÙ,ëÇ­¾–{Ó¸¢Kå÷/¼·;Ú”‘$< ìcš¶=ºw´X÷«{³öc­á_L©ßžé(Øx´{sl$ NÌ8ر™:³’ §V"Ô¯„åzÄioÍ,vLÛÙybêKäKTKFUØ*÷jÛKËHå/2vÎù½è+ë¦l–ZxMÑ]þ«c Y¼H*þu‘PrðOY +xüÊYDòÁ*ýÄB#œ˜IØ37áš"f|‹ßLøë·h´·»Lmšb›Åæ„üß, †}¾ù™ˆøú]gÑ•ýé¶G)¡*¢$5ŠyµWLÃè>¹Æ'F['›ëÞkúÕ±Ùžä–ë½ +*6 åÒ6H >5‡Ðq#j8nc¯©P‡ˆT‘¨{ø—¦Ýe ÷gñ™[ÃÇËè¬ÏÆÚ_œëo}ô=¿áÞÅPê'¨òË2îWAŽML…[NûÔLtDOlõ%êñÊðu>¾Ü2 z¦¨»jœ‚¿öê¸|‡ +‡v¨°-~›éTQÚ +j«SÃc†ßç–uì,VÞ (‰pë,ùn›ÝõÇw8l¦ O¶IÈ€VtxáÃH–b°1ϵ™ð´ +÷³áhŸeh»±F(ú|´=ãñŽÔ®!2¾ô.Sö°”¼O³Ô “¡²ƒ‰}ƒ›°Ü£5l¡a—6G¨üųD%D­ÃŠ€™Ã¼ߢÀÃz6ɯ⒜RaY€JímÌùnwÓS[v†~>˜„>² ¶ÝPR+¾´ð*Ï»ç¯wñyÌæW_´§_*h퉺>)ìmºöÖ5ç›BÖ–‰†›öeXê,»1¥,éÚÇ뤌ëônFµ~Àï˜Sc™jº¯è)üæ`¾þ^HIë§}®ë®ÉùÍÜ5yxö¸ŠPQ`K"t¡}úrk¤íWYèú²ø»lÑ×þUfÇÁ$p^†à¬£¨¤ý |¦œÛðsosòÇ‚Êûï{áYºžš›ú®òBXfHŽo I±%ÇjBm¢ÿ0¾×ú¡šëÚ¾š›þÍÄ5Œ®Q—]l[h~N\ï2 J͘¦¿ö©ÔD퀔…ˆ+‡gƒÒ.†WB©K¬û° U\Öw]Ðò /†dØ:éPýËÖÌkÿà×<ù$ª¥#mãˆdë@û¯»Ãm·˜~à瀜ÚP°à;Ëm™›ÜŒ\¶ìwÛ@éè‘Aˆ¤ß÷:GƒDÙÞèÁ,­ôhî¯ßºëÙ XÐþLK²c®5éX +¶/6¾0ô_™…½ø×öôÙ(:ï:¾øî§BfÉ¥˜žñ­q=¶xÞpÈ#ոĸr·’ƒ;Q‚J66ªaζè¸ßwX¼·F*ìÈýƒ¹š_սŵCÏçHeW§Áo>ê¯yñ¾êç 6$±=Ü”•QÁ‹ˆ2ygÅ5 ³ôç¹ +à±Lß&¢Ä+AVx¥„:ˆÇÛTRÌBÁ†¶˜T‡Š +“Öݶ.v¼>Ùë—Æ¶£> çÑòè3#Ñó´ýl‹ˆt!…ÃàÔ¯¢êÿ<‚õDÏi¿žå\m}´?×x;ªAÕüåàM†<¼OÄi÷®sÛ+´òƒ Lª†]ùý**ã-ëSÏ\ÃãIðË@Óm]gõy¿_¾=ÛøÌ2Vum{´îºe´üÊáTÇãÀ­öàñÞnÓa3 ë7БQ3‡õ› ˆEKÏtLÏïôK-!1½1.cAâRno“¶;€MqͲ«M=m·×0YŸª¹¥?«ø•Weì²óJ~ÍÛØ,¿œ‡õ©hmöMäÇ"à ŒÁ³IL¬!)ÙÃ.³ëo’*^œÓ÷×å[ûVÜbíî,øÅÑ24=¢$Ôĵ¸º˜Uéâ« ƒ­wŽfQÇúÞq —8':r[HN¨>\D¾ðáæÎ>MÜ‹|4¯þzÜücb=³¾»æò:åƒÑŽÇƒ&¸‚/þ +°B?lõ·>Vu$W=½üwÔ«+Ĥh@¯`k•ü¢oÏ?Ò¿ùÆ0’ýÕÞl㈜Žêº{UƒÐÔ½Tþ[ ^þŸƒÎý?óç>öv UVÀ2M#M·É¥/>Å<úàh•>Õ1ñÇ2Z[x[q4Ûž¾É,¾)áe,óËÐ:4×½Ij6v7]ó, ³BR…_„ÎHÐ% ’[¥ìœ/¦[ÓNµl*à%šbXžO‰©ªImï,‚шš˜ÄÃ5*H.h}R›bz +ühöJ˯üQÊÉ;7 +~õÕ êÍsí)€×*EW¼üâõõïþ9G¨xòˆK¯œæ‘€ÓÜ¢ö” œ[*ðÈÃutŽKLªŠk»aw´ÉÉqužUhª¶³à øÉ'êžÚ›=È‚+EÏ®~8ŽÈÿn‘óïPò?ÄŒ+(€†¾øh¨-õ«Þ–”ïäœò"^ͽÔ_νךvíßGBtg‘v¸J +ë ív ºÔºÐþÔ¶Ö‘òö¬¾ýx†_ÂÀoõLŬ½‹§}’·‡¼‰³mêÀ(çRË=û2ø¥º¿öæî,<ݽ‚ʰπž;f[R¦ë_ìW?Œ(YȃY€…-w7h%Wö'QÀøk.‹‰ùŸ-Áßü{þêC!æÕG¦ÎÂïìÓ­wSwyíÏ>ìHùصˆÊõ¬CÒ5üâ+†î¢kžåâÛiåݸU{²ÅfŸZû øc=‡ž¸¯ÓrÉQ%¥9$"–û6(•ƾÖÆ®ŽÛ"fóѶŒ‡[^ÖYõòß3°ì/4ÜòËÞ%Hr@„­´¯@ ŽÖ`9^PuR¢Zb³[Øž"ï,øf“™ùÅÖHí/ždÖÿçè¬ÿÚʾ½O;ÓvfÚñvjSwZÚRhqww „„¸»'!ÄÝ=HHp îÔç+÷>ÿÉs¸¿ñ +ÉÉÉÞKÞŸd¯µ‚tÌ&À'[>jëAKÛbb¶íðÌM{ã˨¡èÖ„à äÝ×aöC‰_±*÷LÂ~€G]6 çÍ="jxäå5Ü ‰[îÍ*`¯Ôª¿îš“^|ÑJ.º;ÞSwÈC·ÜŠGSòÖ´¡>h·1ótwsî­u ±u¢¯áþ¯öÖ˜°%v~°åõ†üöÓ0òá°fÀG‡Ú2N:yU±_"ä·)âs^ò9 Éù‚æœX7>!–½99ˆÊ´bŠ×lÈÜ…¾úÛSâÊËNJæo´’? Ò¯ÕÁ^žÜqAsuœê§´êÄ “ý°Ú ±nTZrÍA}ý»ûøáÎ7gfê^l:‰k^ +Wõ⼕‘ùü¿³,þá¼ì¯£ Ò¾]²jhM Kïû—¶Ý®¡–<DÜÛö!ëTÉššUƒR|‚²gLú_~vÁ¹Iýë-éàUÎÈþ¯YVç× :eÛɈê_ÌëÖž|öN ì¤ôÂ’–ºfÇ䯚PEQ:ÃNo™R!’|·gT˜,3>ﬨúåq/­à∠öÁ‚ +–|®Ú¨ W–·½ã×½=ÕòîúѾŽ÷W7]E †š§+öÖìÝ!|ÙÃdl‡9’Ïs,Ña ì–HÔUÀtηi©ÿË4·çãƒu0EÆ|£k¶œmïw½ÈŠm¦e\Õ’¾æÀ4n±(@/:ßßw\\õèˆ “üûš [æãU\„%ýÀª|vTG,:C)yñƒ’}6ÄÝ·¡ó~ ’s~›ÚY^ý@ŽNüUûì;=&ëÌ’¦ý휢þ¡ŸS|cHPr/ª,{²ï…}аxŸ'DzÀGúÖ¼„Ê5¥nÛËÆì¹¤ ¡|Õ€L]Ö!“¦¾ŠHÚîKÚÒf–¼þ>Äm{`4ßv‘ŠOX…—B…·<¬ÄKRÜŸ#]…×·íÔ¦5+µ5ªƒ¼;ì9¯h~½ ¨z´¦¯z¸0PôhÝP¿€çìùÉÍÒº [¼m…e|ö£k<àÜ-7¤xÃŽÈýãgV_âÙûQ)ôM_sÚ©ñΦç¡ÎÚçZHü©Qfîµ…ÞÆ8`]ß{-w{yg£F:tÏÏ!…$e·æU ÏWlðÌ øÕN[»7JGE­ÄÊI%4nÕ +MûïWùÏ,[´¤Aõøœ!aÙ•9@îãZ"T|D‰[u0Z×]bîš³‹ìbÕÝ$>ÿÿä×~Hêùiã½H8sÕÉ&/9Yày#"÷`„Áý<Îì²HËfL©‡Wq×+¬¹êm~¶ãg°¿Nu©>Ž1IÛ~býšT·l!Õ-°¹+frå‚Þ`åµÄ„Èò½!ñÀŒ’ GdýÜßôþ˜{&"®º·ã§þ\;g$7'¿üQIü)ˆG|›¤‘×]°Œý ²îóñ1Dmúèˆe¹ÁÁ­{0>Îøo´ÓòiœØ±éGä,À¯–õ +º–g@&lÞhO¶h'Ècm ñè«VRÙ”¼-VNûµ³âá±ð»mIJ?ˆ §ãîžéÈxzfFÚèù‡ÃœÜ³aQÑía~Á% âÝœò''TÉ:—NÌ÷Ô¾þìÃÖMwWß2s/ÙÉ¿É[î××ðô{ 2õ¤•]|5óÑŸ1±ç¿ß±AA‡µFÿ +¡_‡ˆ=´$ªª~>)¯¼êÔ^E¿û½§9ó7'¾àŒ ‘ý§[t6Ìk¹aÅ•ü¤“?ù5ñ?’ržTß³3JîRŠƒ¥ÜþQXóê;1óÏ©ž¦»+Fhꊩ!kÙPýöÓt0Ä!ïúðÕ@Ü­ÜñÃòW,mog•ีÚ=#Àa#ˆ¦eK{2 { ›¶nÁ¶[Õ5',¨ã—Lí [^LÉŽ—Däèðùfïü°#­ñÙ°°öî¼¢âɺ¹àPöš‘wØÇéë$[p0JÃÌ›HÅ›^JÛ¦Yv"!¾Í0øÃ4ºU°Ä×nÏZ±Q ¶|ÙŒ/žW£’æµà¸]¡éÓ»ía¢W¬´ú¨IB\Ô +Ú§I™ã}Ð&bþE *í4aÅD«ÚvR7›Ü +2ÛÃ|Þ†ŸŒ[sc—mˆüY(vˇ¯ß¦£>ìCˆ=SÑ{!6eÃÏ@î{HÍ>Vù5-2ç7'µäô´¼þζ‘÷q”Ž›ÐÁÓÆ[ã6ÜøÊ% *cË*Z÷A²ftmo–í袽ºnÇ–ž‘ø8Πm‡à–Ø=_—xê/@îø8AcD]„¶%­eÑD(X±Ê¿,tš·Fäý0›ýmRhø6!èýfÑ>1;!}Þ@Ì[>œwh¡öI¿=!­¸Q3kƒ"ð}?·ñš‹^qf„_zvf åÑœ“66él»=ÝÇ-Ÿ’K¦úH) LjDZuuLXr~a ýÅAÖ±Ä×Ï›À s:hÚçqn燗»;¡nÑákn\éλ7Êãì…„};#ʪƒ\µj%WÍ+Qiã’ú>^ùE¾ð´Uó¥,ýG9´ðªZvEÖüú˜LØ{´œô£›]s;܃HôC_þÎè~ÿû¤´éõ¸¬î>ÀG¿ @S~µ³þ °+ï…… ×3=è$ü]÷#¹àÍ©-+²iNY{7ªi|<ÙS~³ôôXËócÁ®šëJzõ备—Žb2^ÿ:Õy6į¿nÇ–ÿm@”œ'ç½<^þäbLέÓ15O/å4¾;žûêúQpòý£“b`%µwkï„D— ¸„Süê[ÇTX7µ¥Ìy:|öÕ°êÕAÙ÷“àëBÙ®S´4XuÇNNø}\ZýdÕB¬T +žOªÚЦ‰ã¢ú¸9ôõp‹šæ$'3û¼¤ñÅ÷ó +Rî°•7*¥¯jÁ‰ZÚE1þ÷ÙþüÛGZ3w<àÌyÀ u ;~&*$G—®9Pµµ~ c¿Ž ŸÇ°ßÆiø+,`˜Ë :hö®› ^7² ØÄ?서kóòÖ¸¨·¨D§®šð% ³zÕÄn[µ p :zü†P°¤C¥Z6mvñ6ªÇdl{9ø9%:¿§5õœ…ZúæS˜Õ¹¤'mú®cwFˆÍQk[ÂF€Ø¾â°gU°w€4 ]Ñ£  w¦_YÖ7½^µ!³f,ø"€IŠWíøÒY-ìíÁþm°{+ºtJNX1ƒSÖm#Ø9{C„æ8² +°¹ªM/¡î`”Ð±êÆ´Œ1Ÿ#,ÆÇ³¢ ¢N\Å~ˆÁøf±¾Mpÿ§“?àw<ø²U&k ð§É>x\We׋)wËpÉA4vNE,ˆôt¼˜S4?\Ô6>šQ6? õÔßën¹;£dW†åÜòÉ^bʲ‘Z9wxn»¿îvTÕö|Í +Ë_uAÓ'´õCò¦§ûclÆ&à«hÓÇ€îøƒpWÿ§q‘æð»…!lcÔÖ‘¶î!Õ-è°y+Tš“]~±šúƒ¤%ý¸‡Ötm¶ŸZ4"†¿× rÏ Úb¬¶WÁ.plÔ€Í^±‘ªæô·Ä÷·Çº»d¨«ùž‡Uwˆ±kFXƦT¹°ÓT?>m¬óÎ×Ùú8$†ÄïºéˆáÃsh²æ‡S}MÏ5˜ÌK&rÙm_>AÉFÜë(Hþa ½úFDŽMÕ+βKß%e¿=‚N{~•òü&åõIniêðº‹ðü”S쪄SBözÙ£ŸMèÄ_̸Ä +xâOjtúy?§ìΊ W”·¿ƒ¥ßù¾”t럫ësˆÅ\1Îh{9)ÉûËMMûk^(ЊSŸ’6}!¶±sRR÷(È.¸2Ðþò”¬ñÑ÷TâÉY-.Ÿ\›|¡öÝ­_¸Ü{[dþ²º5n× +~·e®}o"Å_ÕÝ=á&gü½p¶4þ 6'îÓÿÏ4úÏ8¾ýÀ(Þ´·f:XÉ—tè” Sª¶÷øœ‡Jxòi 9㚃Tô`q #u×…._ÖÁRfå¡ß^lÏÛ°³ð£2XÞ‚_ì_ö’ŽR»a£6¯[0“2Ð;=2å>õÚ5<åþÄ (ª¿éÅ–ïðü“²¢" ßfR×Üd¨‹Sz}ÉÏ Ëa5¾ÎúwKšæ×>fʹÅÁêûÛNàýƒØÊEø=ÀCI‹†Æ—BxЪ Q>Þ ~9&iy¼¤ƒ¤l:0U{>:öK„ÅýÏ"§oÍKßtcÊ?ŽÑˆ_Â4æ?tÞ¿fXüoS,Îçq&õÓƒñu–ÓóïyNï–[ýÏ$‹ûßiv×G¾nnôb¦§ñÞloë“yEû‹EMÛ«Ïcø–Šœ¿¨#×ìzù´U³!ªÃfNôÖÝŒt—]˜–]\RÂgÔ¤ì¡nôËé>ÔÛM19z1ÄË?ê*<àå]1w¤oûÈm;6}'ÄŒiÉ£ +Dâf€ ¬‹xp?,T|Œ°yG)Èu_GöÀK.X¾ƒSquÕH)›ÕàrÇ{;^Y5—ç{ÛŸ/*0é3ýí¯ƒ¼Âs rÅšSÄø¬bÃÞžé)½2.-º¸ nx²åÁW­{i éAÈËš¿…Øt€ãk–m˜ÜEÇëñžÖÇ ZÄ»ÃÚª½ ³?Êç.ZI•k.6~ÛÇ£®Ù(‹6zÓ°–]êê'½ótÃc§Ô”âQ9ÇÊ…Ü1àÚ®™p|<ÈËI)*eJ„x´ÞuÑÛnêÕ§‡xõ×Ô¤Š«ô‚?è:2~?Ü· *uÞB®ŒÚ9ÐY»ˆäêC'J Y¿»èUO{®ÍèšžE”u·§T‡=Ao6„Ú9sÃ'6ñAåçVl˜úMGKœ¢òÆPgá%$ñDoË»4°´_Æ¥OÂZrY[AÂ/Ï/þ#¬{nÃM w^ ±Óþ²ÁŸý@É¿q¤ôþ”“ÙrkDFKmL~v”Q{sÇÄýkšF‹ª«Ž Ϻé¿vÖÞ=T<ñ÷‚[³ž¢ä?9öm”Œü2Dô—Mmïáñ¿°ŠîçÜ;2)*hd”=k~{õ„™”÷roˆ +Ùv²:æ•d7ë\?èÍ÷Ô‚»GŒ¸Ä33ÕÏ¥þp° +^ÿkš×÷u–×óe’BØ ÂJWÐÌaiÍ-=.ëÔŒ™ƒ,{{6çÑÅï§• ²[ËÛ¨²òÖ²ºúþÂ`é­žæ'x%×OxXI7¶†±µ¨Â'' v6¼û:Êf| sù_BlæÞ ºå‡—n8›âþw‘Lý2Måàj^=hÍ}|s͉Ç}™ìv~ž–¸þgU`ÿßefïç´zA[rkÇnééȼ§Å>XÔA2Ôàøe#,}Ûƒ.= òÿÂÖ®8PÙk.F[ÔNoŒ `߯;Ùí›.@#Zñ€¾= ‹Ê¯Û¨E”'§º›ž-Ûh­IÃýÉÞÆ'rãÇ!rëçþ%B#ïÑÐsVJÅ¸Ž˜¿àä‘=Ý]ã(êîæïøùôm;®xdžÌûÄÕny`9;.TÁއƒš8xLºë%Ÿîkzû£¦=ù¤ ŸòÛ„8ÿÖžŸMŽ:Y¨i5âݎذåÇV|P_'(Ø©=jƒeˆ«ï,À…Û~lu¨ôtÝÉ‚lºXð?¾ùpî<À7Í»*xШÓfxÚvˆE_õÒP##Íh  ÓFxÆ¢S²=B‚D½Ô¦‘Aø«aYÇ“y «vÍ!ë:œ›±¤'äN÷a’Lú«·-ã%"ûܸ¼ý ð¼@\{ø[õŒŽX6¥ÆgÎÛˆ¥Q4me6ÌÛh5»#,âç0·so˜ÐºâFäš¡-ê`6¯û(Í{£4Ä´—7ç W.9©Õ{£‡ý~ÐKk¬8( €¨]2PJ—̤’5&=Ø|mâ6_·³ëî¬P¹£¢šÛfBæ97­øÆˆúrj€;©¢÷sòýœ¼I 1ç HA™`ÐmèÜYÌ£©uîΦ¸ƒ1éÓ4GðišÍÿt8{ÏGjXqâ‹—Ìø‚E¥lÉÎõÁ_Î(IyË&tø;À¯¼<ÑSqwNÝðÌÍ+8î­{ºá¡4ÙÕwܺG;Ã4Ä޵顶î‘eÿš†T~ 7eD-ñ‡ŸaÑ-“ )È%5<ñC„NÝ&Á?DH°/ðAS¿áAìà~ÆÍª ¯—ˆ´ "wZÙü<¢„¼ŠÚ 廀>Þñ3à‡=¸W{®xŒi3»eÑÆ-ÙéÍóJÝŠ‹Òº7Dg1wF9Ôy;´>"orY‡ç'ׂ\ʬ“\³ìÀ,›:R¶Ü¨¢-?‡ìj}<"Ç®9¸ÈE ­zFO_0 ¦ô¸Ì1m\K-[ è“R‰_‚x9o“ç­2FÔÆXˆR;­A§Î1Ù‡k²?Ê"ïú{ÍèÒ ¡í°ÖgÝC¨Û 1ÉË~"¤gUÎX©•ë~j놟ñ3«.ÎyiÙŠ._µ¡‹6}„Úe'®lÞ‚-ˆ¨ ™óNh5ÀçíDºûêEĦχ½}gy½k#cúnLÈÀo(‘ ^YãÝi òíð Ü ƒ}‚”n;ÚÓ7툒5®aFÛÕVHazzÇ[RüÏ»wÈq³ªÚ‡.FÎFTÒ)#*ýì°Ÿ@ì-Øiõ V.rÎÆ‡/¹dÅÁ/šèµsZBv¤‘Ã^-˜ˆ¥cZáÈ¥xÆHm¯4ù¼W¸j£59¦ys¸“?ïbw̹„ [7) ”¶ŒjÔZÒ:kd7Žvu$,)ѹ›bú›Þ>¢!ç‹ÐåçØ ¿„zp…Q3¡("¯»ãíLÿkj ôöª“X½àâã–|]¬µag5È€/»è /±âcvD”Ú5*oÙ Š:aÙ+C”¶a=.—Þ‘}{lÓJoÞrqQkzófÒ¾ê'Ü´æy'´îçó¶Çø›!È-äÃ>ž;~rË^ +Ýf ·tè¢ —?Þ[ÐÓj,ìÖ€t+ØYw7,­}°ö£uClÔÍÚð“›FÚSFûZ“÷Fhèu7¡.Òßø4,Ͻùa¤öõÇpsÆnˆ€Øõ͹dÂ!£nBK®ø4%6žîT}ˆÐˆ[hÞ–¿-uÛ(ÙÅ7lµãòÖ‡Q32çCˆÐºD—oùp•ûÿWƒ®^µcË& qëJÛ΄ wÉÏ¡EÝlÔö¨@ô!,ýÄï-7ú°WI~ÔM®_°qÛׇD½#ªö\_omüŠ—Øº ÀÖ„Öe'¶fÍC­¸yx ýÙž²éëâÏ[èµ3:JÁ‚™Z9c&UÎZ™Y§9çéL™ÙM.!éÝ„UÕ± +¬V`¿*£V|ź›ÞeÓ>ŒwöíE8‚­Ã§¡aw‚+Z RZ·BLâê 9í¡µ.éÈ“²âgÀ,´ª‹cJDኟG\²Ê6nXqê–ìøª%;µu3$ì_“h×F­e;$”ïóº·BxÈŠŸÐ0:ˆRâS&g®±ÿÌté¾ÎHœ_¦»Ô'ùŠýW¸w8 d˜Ï¨8UZNõ¼™Ýô‹¤_&E†¨‘=§…$FúÁ‰c²öØY ìÝνæáÓvGºz¶‡å¾§´3jã‚ל<Ô”Uëèìxì†=ŸPb’£vFÛ’]Ì\uõʶ†8¤Í!HÖš‡Ts8/Í#kwQK¯}åó7ƒâþÕ€L³ìïQG,ܨ¡ <ÜÏÈšÔñ‚bZúŒœZºåáᦌ”R£ ýŽ«þr\C®\°óQÁ^T\x›<£ÖÇAlúæð6‚lâZ€…ž2bó&õè”( â×]ÜUsÙ+ ¬z™°M ³7Ng®Z†UØ4K'ø‰ Ž›4ðÁ£ý´¬E3­jo” +Û²ˆK^VÇÚöÏ<_u0Én Ñ¡ÛÃ]’íáË—Ãzâad媽5eÁÐ7£iy:h«%3¤$kI•§g•Oœ0=Ø·h€&„@Oýâº[€Æx¾í#5mñyÞD©™Ö’j£VTëaíù—I2âÃ8›·äc£æ<ÀÏEÌbÁ#ëvð‘ n>aÙÍ&„h$Àªgõíï,¨Ì5´å§#VØ’y}[ ý’7ÝMo紅׌-¯7]GZkˆ×«C|æúˆT³âãWè²Â %>}ÎH,Ûåu„%¦å¡Ni/¡ì&¿5õy ´1Ü)XáÑ£#LÌ„…T¼äaÁ–[ ðXÛaÑà¢ÐU&zÕ +ðøú—6çâ¢Çm]¨ˆ¹ :cáC"¦Վ܈Y]ì|Þ„Î[²  ·ƒ4øæ(µdã6†9”ý™nÏÖ›·1ÆëÜœêRoÍ +Í;³õî‹»¤À朤ªˆžPÑóÚl"b:”sÐvÕÛa.wcŒŸw6†¨¨•!&zÞK®_¢ulŒòzÆTmñãšæ'kA€½¤ú³7Á]ì²ö X P Ë|;,óL›éíSz|%p?ôõa.{7ÌéÜïÜë’/øé³N\Ñ’ŸÔ´:ÂÂ/¸ð%Q{Û›‡õça™óc¤Çwî6ÎÛYm9{RÏoö ðŠù ŠSCTîÞ±` WíÔæÃ3ûkßl8‘Åë‰Ø§bTÒÀégkbÏÛ±‘ÑãòÈNHf‰úx¤ µ4¤däeÌŒQ ¿– *ù­«1ëæ’FÝõnsH;@Þ?üNxÁÊlœÔêBÊÎj_/)= n|0oe-Ù‰UKVzÓŠ›‹›ÐðÆM½¤A ‰ÈùKöNÌŒUÆšu‰™36vÛ°–4­¥6Ïšeœ°Ù¨t(P>qg³a‘Ñ—Mýüy{7}Ê„È[´×¾ÞÃö†hˆ ¾o…ú¼k>Fû¼žX°` Tlz©-»ARÓ–ŸÐuÑ@=¹`ÖÆl]r)JBfHØpmÓAiZó2‘ëfÝO‡DÝ´– =!o `ó-Ÿ@pØÿ Ì¢n‡È°%/¶|ÅO‡¯û…]ó–N¼KÂJ·ös‡tbð‚[*Zó‰D+$"‡Æ:kï¬Ø1[A&aÞˆ¯vq믅ûÚžD:åÛã½£lò²—ƒŒ:éMQ¾dÎÒ‘¼zØs(ÄëôöAÝ2hü¬½›=¢¤Žy3‡¶\{ÂÆï˜±õðçl=Ž.f£¦â¯ #·1!Òl1wFlßéÒ®‡XTÀf+&Í´šuo‚Ûcëæ<"Ö¸£_:ï0¬úL“Ö~©MÞS«îêÉPóeÉÞ¾î'÷h¼Ÿ^¾î— n‡ºµ;aáÀί;:D…n„é˜í ‘ngRØïöoMÐ(ó¶Žì9+²8:Ä"ŒÛ™Mþjº¯ŸœÑ`3×^b"} 褅‹ÜÈö¦¤î­I±ueT¨ˆñx3v\Ù‚‡_÷l~½õlÀ$¬°U[ÃȲÝ0½;.ÒmFdöI#.ÎJjÙ‹uÛ~÷N˜I™·SêÆô˜ôY±i{ŠBø°À¬ŽÒðkÃ<æÎT§bwŒßµ3ŽoÛP1+‰hTÝó0Ž\Ý©ÈÖ8òè¬FA–³³”§n^êÔ ¬yJ«uz»¯³ÄÂC¿ôñ;Ò?ŒIL;a‘b%È%ލ…;ß­V Í}:°‚/K’v ¯9éä¢ecwçŽ_Ôµ`Áæ¬ÜƈRRëõ癹}™n®E»…./ùNKny¶éëQløú4«¾~Ó˜Aõ( Öž÷ ¼%dÔtšeƒÍú.y«ÏŠÖùuA­cÐ&w0TC‚©ÊÆ·n*awº«hÏtè4›@Wëïî­›×ñ`_#,æ¿§Ø‚ÃY!Û¡"¨׺%Ê*o·ª!ÐÓU8k£WO™Pi‹vBõºŸÇZü:duØ»hoìtüýP­ÄƧNª)­s–NÔ¬‹ŠzùÌýˆPõmFl| ±á…—~˜ätîÑR@Ò5¬¦—›¨‡ +<æŠO.mœvt3׃Bñ²‹Ñ:ª eøŒY5µ< +°®K}–²"¨¼-¾t3ÈgE½<üœƒž2 ;†5‚†)3£vÑÃ…/º¨M€ÖϱÐ*‚:q‹M¥Ci„Šbgow…_ÑÛêèëkt( t{Ÿ™aéqл ýïEœÁžŽ9‡„õsP Ai`ØEµy}”†X´ÄrÞ±XÍÇÃŒ˜Ì^½S1d² ¸ýM}BE +Ÿ«Š§å÷1m²³˜Vþ¥ÚŒšß±5ˆ—QWô‰Žzxè¥!bÆKªß™äI{_íOŠL›}e˜_ Iº#>ÙoîA[ÒÇ`o[ÑÓ4aï¡;äBŸ¢âP¡=r Ï£bF qs¤×´Ùîvn •{|é§Ynχy*ó?«,ù¿£<õçYþàî$‹µfÓæÝâ {_§SL˘°v"ö.ÊŽZ2í0w&¬E/ºrÊŒ+[öŠ$[¡^ÇúH—hÊÇEŒ{¥¬€Õª´ÈGØJÑLÊ +)¦×"”üþ ^“¢¡Y +{iÆw8¸ìzké +¹ó\JÔäH©½y‰0odWòäRêÑÜõ?S@ýq¶¯Ö+UC–í¸’ÝDùÖ(¦&l¥×éÅýy}tS’”¬ëa ¼2È †îž¼ R +™±)ecVÔ60Ьb‹ß(ñ‡‚vÄÖÔÄŸThò´BË^vʺ6Fº•“B@cPÈ †ÆWkŽŽ‚½±.ÅLÀ8áÕê™F™´XÍç'j8½¹•]4fQò'íý‚QMwÓ §3ÒØø›Oxî—H %Òßf† wZ×CZ¥ŒI£x^O)“C¦ÔÜV¿NÏóêåp¯®nîëÊ6u³ã-òþ’ÁnK¹Tj¢¡•÷° úm.A–.â› ñXÅ«ÚbÜÕâløÕ¬ÔöÓe¹ˆsõ…à{|ï•¥»7/hUr'ÝÝÜ%€Û}„úi*'l@ýfÙ tãúúƒ0®,\‰¦=­k¼ÔÒ\GÇcë›õ§Ÿ<­;úðaùñÂrÁÏù•}?Ü{Tó×ùô˜s—rc^&‘œ¿Óóìú +é|Ø?0LÚ´=sCݽSn6,`’s´š`—¤GáOgƒ®+ ÉÄÕOz‡ú±´Ru2«Hþýë÷ä#7ï×ǼHÀ‰Ke9³!æúLLQ•ã'P›õ"«z )Ka戚–7ª&ezÔr¸¬7„`‰g+ˆüpr;Æy½¤Zx¶¶U¾±Õ~&9 ÷Ýý{¥Gι}3/æq,$æ÷Kå1Ç_¹~=ãH]³æÜû úÉ›÷jÎÌÂþ­ÔFGD’ý‰Îþõ!6eÜÄoñÍ=6£K®× ÷ö+"L©bCåMfñ֛¤þŽè +ÇxÔÕõ\ˆY{2;ÿkzjÓŸÙ)…וÌê¨S€™ó1`ƒ’ é·×ÓDSÎlB3!|+¯AõsRñhJ6é»ïÚc.?*ùñÏç1·oƼJ"ÇÜzŽ9w=/&# ~œ†W=TIôUmw›o€“çÔ¨qJ• Ïë­!–³:èÑgm¤ð­¸ÿLjQ×w/ÞBbÞ¥Žfæò¾{B޹ü¤>æwàZgo”ıµØ£T@gíRÖœS. Ù{¹¸ªO1XF”†²«0ãKÁC¿6»~N*’»Ÿ@ŠùãJU̵;õ1ñÉ´#^bþ¾ßsíIGL\:ïHlªàè½×Ôã/’§ €¯Êù²ÌiOw׌›GØz<ªø1fxAeÞB°#7s*ˆM¢KÊ“ü”‘/>vû~MÌÃg £ïÓiß'æòüz)'æÇŸ_Äü}£"æv2æÏK•G^¼ÁüŠB›Þ›†»gìFϬC&³ ©í „%ðeÒdËudùNS}éI#røR |är}‹ýÂÙñ·)¬ãé¹’c±oGÎ\H‹¹÷¤.ææÃÚ˜33¼x>JA\—“H·=°Ø lìä÷Hõ%q¨Å_z\óiz•ò̽xì‰{¯‘G’²øGS³ùß=G|÷×õ¢#_Á¼‹M$Å\¸Us?{$­Öq<·Ñ÷K%òªGj¯ôêz;–FdšÕ©ž!»Ë¤LÈâ•’ÖT,¼ÑØj>]TÙ}êñËÖcnT¹ò )æÆ“æ˜šb½Å{”L?ö*O~,·Á~B{ÈFŠz`—ÎÀÓójgí´º —¬äSq©ª§ÌÎPI´¡ETk~y—Á<øÜÑø$Ö‘§q¸˜›÷šc®ß­b:æI?æj,öè_·Z¿»ù}4¹PõcvSàïÒ&åm_U8çaSlˆŒy+¹Ô¯×÷òÕ™]‘J¶h²IyÒ‚š¸V_¬huÿ–‘'ùîÎShÌÃ8ìѧo G~û+-æ—?ÞIÊáœx›Œ¹ö¨°7êѼ2Î/XHÏ…Äòø9'¿#¬%ehˆ9>-£@§V·‰ûC`Z—? MÕÝ j î˯²¹@.½ù0/&¯˜w"§RñSBžèø£Ü i´?•×ðù}˜õrLMMŸ1á³¢.Jݼƒ Ÿ°²[¬ +fºB.ÎîV¸ZÝc%hŠãŠä|Á{ïä7hN?K&þtÿeË÷oSqÇ’sYÇ2J˜¿7Ë.–u¨.´¢¬×($ÿ›n¶·À,3B¢yÞÙž5ªmOô…Ð>±¼ª[f‰ä¾fºÀ—Ò Ó^z_ÐõóóƉ¯ÐGîÇ‚{¨?rñvq̳ô‘g)̘óšcþrÔ£~LR…ïDÈ~“Èðä[5îÎWwט‘äW‚Ÿ™åÉïªf LÕ#û6Êš(3kÚœ§«ZÌ¿f• +8sµ$æüµò˜ÛÁ1—nÕÆüõw^LìkØ‘Ì<Á±âRÑIAûÒÛ/)Ÿ5Óª]äz³ý¦ì+úm­t–á]žT*ù=©²ÿRÔÐåJÒÈb„öN;Ý^Ô«¡Ò¤Ÿ;¥m|¹ìD׬ó8»„b4Z„RMÌ“7#ï ô¹W è‘«Õ0÷_y5Šnù ¿‘#ýmÏ]ÂÊë£ +Pì°‰Sc6¨P2é@.G¿†…ÐÏ2Eí$le‹ìrfvË©H×yV} W]Fa ñ\¶¶P)55Ø{«æäª½!|ãþ0¦zÃÌ_0a2ÍØì€çTðJÍ&-M§×ÀåÊRy¡\Úm/c±qhbÿ](RtŽê½ƒÆÉ_ðø²$Qì­¤w U-Ó×ûTFü¼­Ÿ´éB4̲^8ë¤BÂÎþ¿Õ0à°êøzã`GwwW"‹ÑóI´ßoDºî¤—vŸ~›Î8–^ÜõÓ‹$Äñ¸4Ô÷IEÜ£ïK;O$Wvýš×¢ú£çÒÛÂxÍŽ® ·u3@DÝèʨ W·b’ƽb¼ºŸŸ)•J3ºTãºt¾ÍÆuP|AxÏÝW9ôßþºš{äâµ¢˜çñGÞ¤!N–Vqÿ†B·8$ãk‡l jBKÌ™P_F턊y­vÁ%@Žšx5jåÅÀ ±QÚç©ë–9J¤ƒö‘ÜPÕ)R&ó¥úLŠ$ÛŠS¿lr¯#IòGL™³ªW­-Ñéú«]æ>pÄ)Aí…دsTê¿–˜Âϳ,þ˜‘\è2 ÍVc§Ùª£è{Ë4ÒîLe8½¿¯7K>h®—«L­}ƒú:™Ì\Ú«öáû-v¢ÎØWg žOš©¥s.|ÁÍC-¹Øþnèó%©qmˆK[᳦¼BªßÔÕbè#&÷±ÿ–ñ‘·%Ú"J—9¹§¼ÙBµUtˆSÀ¸¾D\§3 ×iÇè6¿çHu‰¥¡ÒásÛæB=½ä¶78mÝnÙïTíMI}K#=:¯]Ñ­Õ"”êzq¯±X83ÅÁ<‚ +âjaèBr1õV~=û)”ÌïÖÊ‘‡7ªÁd†Å¥±vÒ›kKlé¨_1p!cf bXßÙàSIjüZi‹GÕ]«é¼V +•9ƒ"sYŸÐ\­é1µÚzuÍþ¾ªIµ´uY/„ìxE¼ýÑNÑ–ŸÚ:£Áå.h µ{~s3@‡MZ¨å §Ì&¥¤›Å„$§É$T©u­ý²Þ,­„ŸâRóË|†nˆ_/ƒN9û¹K.RÔ'À¯x„½—õ1Âaïú¥òò›iÕe .oJ‹Ï˜6±ê#¶.äŽZ4é`ÇbrÐȩԉڮ«øm—õ"ØmÇ`g¡[ßÛ6b¢…ôØ”y›˜µéU8ö\ê‡ ¢hÛݵ´¿6v¼›±ÑƒýÖ¿qÜ*€ ë%> ­Ð©è,×ôô—È;Õ†ö«ºE¢Úc±õ]AxÊ”½åtirDÝýiƒrYÞ¸]ÕµT:Ö<|Ö’…Pýq¸³ëKX¬;œ °éçŒÊ+ïy¤Õ7\½±NÕ R%wÁ%€­ +ûým]ÃP"«?¶¹ùkcøW<’tYÐÉ}¦PÔ9UZBØØO^0ÐJ·}¸šm/¾îÓ01;PÿÆËN½eœ *댚YµB|ýcb}úéQ ¸0&éwp@~9Ë&Ç'š¥øW-eÈÊošð¨«2xwš#ú4Ï“™¥Ó>†P•Ÿ#˜æ\ûvS=cÂL%âa§œ?åêfîŒ „›C]‚µŸ¼d!Ö‚”æE7¡bÁE,Ÿq +`Ó^¹|ÆßIYeâV4œX²â%Õ/»‘%‹Pü¬ªùñþþmVdÝ:ü­=@l˜sRj#ZØûyKsÂ’‡P;R‹)¯|UËÀ(ðª°o}FNéˆGŒ›ò²À³.fËf„/ø4+Po±5k^TÞÁ$öy¡{äì4¸;Áíž÷Ð!%«Ü£¤ùpÄÖGs›$`³¦»Î`6²õvªZeÁµ*˜ÓȯràsV'¸‚½0‹;¯m|5*È=?*-7«mxj§•ü=Ú…LYÔó‘Q¹zV }3".»½ddTÏ[Ða5µ\M=Ú²ËDGŃ_B4üº¹9~QUwQ[÷hÕ +MÚp sfÈ\=±ðÆLosÖ¿G à4kÇÊßv£ +†ñ µ¡~ÎEo\ ç>ö"tàûeËööwnXÆÞ®z/@¨Ý&5Ï[09«.zë—1ê[˜ û2FéØt£Ë¦Õ°Ä‰Ø«I :i¸ñzƈ/™3¡óçŒÈÔM¾æ°‡ôªú~ÑО4¬ýŒ²ýù´özJK.œU#2÷<È’ƒÃ?±áÃ0®~Ûƒ:œkZ±?D…¯ºi-‹FZÕ¤ +“=¡D—ÍêàIcò–gcrèëˆ +›TÙ?¢pEWÿÒËÏ:/¨~|ÌK-zúß1&ýÛ(²rM_zgq0÷ü†©úá¶³#}×GiÞ°°«6B}Ôù¿sB»^l從·jª~¾ ªx¸ìÑ‚úvшLÿ4BlýÀÕïzˆ5vpú‚ªùùdoËý% äÍ–S21ÐübD\ueÑO›R€Ò×ÍðÔ5-(vRTð×lwÉ…™žê[³Àsõ¨ #óç%]Sò¶›ž@e® ƒ-Ï× í NXúž–6¯h~äfçÿ©„§žÚ²bK¿±†Èu$í €­Úq¢ò¶­ðÔ=/¾zTÑša¢çÝ<ì#2Ûߘ¶¡oLøà¥ì¹êÞ¯Y +⾎!êö˜²ƒ©åƒŸMÙñr:tÞK]5U¼Øö6¥ïŽQÑ[# ô¼ únYNÛóbj—õ-o"¢òëcÂÂë;¶¦·»Л^T1ð¿æU,cÃÊÙšͰœƒ!\ó—¼åDo˜¡Éû®öÔÿF0 ÿÎRÀ—lº9¸ýQ`'@…ìzPU«ÖÖÄu;4uÕÖžºã…çn:¡é«Vð»mÓÓ/aâ`Uu캛²>΂¶·'ï¸yÿŒ³y_§˜üyCÛ«¨±#cÏÇ ~ Ý2u¤î˜À©;VpÚ¢ª%6ª‡$nØ1e;|å¾–ýŸ0ôm_ûÑÝ‘5+Ë¿½¬({:×[|{AQ|ë)¬o“D⪠š1¯nÏÙ÷a[ö‡ Å_"í¥ŸÇÀUëζüm¼ð°çÊ·ImËϨx‘—$îza_Â4Ú×1t릥áý†¥.vR~·æ£Á>Mr%ÿ™h>N±¸Ûay{˜‚Øñ!*>…p-»\ÃŽŸ]uáëv&9ü½)ž$ê<ì…ÝôtQY÷pEUÿxí°Ž«=ý¿Ë4þ¶¹9nÃÔžîkz$½>e#–>>°Ñv,ø‚=®x¦¿åÁÜ@ýEUÃýe øET‡É“´<šµ=Ý·2!ÿøÙèo@,Þr4½â¥þ9ÌLþyŒ—{aCב³ã¤€ÖÌàøeuÕýeUŽ}(ñ£çpîdsÂÌ@mÜD_5°NÍO>ƒDв¡!v~ ûÜ’²ðÚ†¹þ厑½ïC—îº ékFÐË`8JÛªš8¯hyðâաμ«c’ÒËSòÚ[Ὰ»=à„ßWTÄ-=ô]˜›û— xJ×ñö¤ ™øsˆ›!ÈÉþ}ÎМè•Ö½§žùà$7ìX±Åëú¶Ä¨²ô~D˜y=ÀL93ÂÍøm\TvuÛŠ+[Ò¶ç-÷¼niMÜqt¤¯jZ^¬«AÏ—µ­ zjöù¾ÿÏÑ[¾µ™¶kßïû<떹ǧí´3S™ºQ¡-”âî® „¸» Á ”–Ò(®B .¸[HBÜÚ̬µ¶÷ßxÏ̶~(D®ó8ö}ÿ]røÈo¶{‘ ÍÍ%¶ö¶è–¡-ñÜêÛØsn9ìq@CÉñ)éå.½$´‡ƒMQG¶Êê( "ÆÉçÒqïÑ;GM÷ih%[ýÕaë]Õ·LÃüjǯÒ''eÚ'« T=XzUpq»§ê.è—b·‡™¬/üe£á×ñPdž:®k†–íbÓ°XÓpéË)Á:ºç±Žº6DŠÛÂ>9˜$$¹4<„SÉ„î AŸnô”]Y}Wvi¥«âòÑ +b” ¢& áæÉª§>5½$ b”4°à®óÙ> ²Ñ[~Ý2Ï=ZllvÈØå‡ãÄÓ â‘eöÀ*ÁÆ´ŒWÉ®Þy_áU3Á1+ØÄ$¸¤ÄŒ­®â摪¸½Þж±êÈ€š Ý‚F®u•_ókÅF€÷êÈN5:É<‹ÜÛgÉ™£Ô­aVìÁ–é(à{œ“ÕZ‘SÍÃí £WÞ_·M#b]ºšZÿr]Íñ*œ§WךÚÝ+¯eÇë/%ÿ½-n:Ö‹Œã°ˆÁÊû–)|ð1®gAÈØ“͘"¦ºô*¯‚ ñ(™¥¡ÀÛC8ëü‘áuÁ9ýËò [½ØGÖq^¡i„’¼Õ… +sLðKFéIæQp\‡àwFðO—ß"n©š*ÎnõŸúåb¢±í’Q³Ü +Zþá8)ûDIÌ?QÃc*\ÊÞ8)v½q7 äÁ½sÌ’ƒ!Ч}ÐëšÆäG¨ÿ!Åã ݯæT({áû¹¹?ùgYFÅÉ<µØ£Â$ŒVÜY}™ûójkþé½>bÔJ/+yù5êæá0%~¯½?ŒI:ÅÅ a¯uB./wT>° ³³ÖÞàž¼C<ûg?*å…°ð·¥…—}·3Ät³””4Ý\|­—˜üc04ç}˜”8ÿ"ÿì|[ò÷ªšäïõõ9¿ôÁúçHik GŒ³’þ£k-¸\`£Vº+n Ñ“¿žâe~7'Îø®ÿô?»=Ð{)5ß <õ`„o&çY&X8Û¥`œù„{ÿGm}Ä9¿ºT”,›ŒS¶ÑMÉÞëÆ$ý¹Rà .ñIv%6é@üv ïîVOñÅ厊 æñZÌv/)qãmÉŽ¾’ß̓Ð[Ú†ôï§9q?‚¬|{»·ü¡¦%ë§½t¤{ŽÝ~0Œz´ÓÛ~_~Ó2\vÿDÏLÄ®\íG<dÿ`šbøô¼SÅ®Ø@„/¾H¿`†„ÙF*ïºgÑ1G‹,„ª=÷ÆüÛ²˜‹²_CεVâQ2ö +®m¿Ë>o- ê‰ÅšHD}eÄ’Žú²^Sóe•OsJ Éæà/²¯ áÂþižÂÄÔ@#Nå<8÷ïÙ¦ÂG® ˜æYÕæáê'jnÒ™)rä·jQÒ·;=ðšäü+Èõµ÷ˆ“õóVM£KFË÷+i…6ॠ¯2~Ùê+¼\cœzqoŒœb—‹É.uS{`¾¦î¯5룞E° Cbö{ó®/µ¥ùs§©Ç3ßôæp–‹õiYUþ*Ô¥¡@Ý*rÑÉÔR +wzKÃV;‹÷éÔОé>m(³0 \sÔÌw]Jj®]NϵI))V â±i¤2LÛš|jšÿc?={ù-.|¡­ò’öyÅoªÆŠsKðëÛ½äÈÝ~jÌ^%VS_xzýüŽi”m'Do÷•][hOûi¾5ý§~È §”˜x¤ãœSÜâ^Ì}›„™a›"%Ž#XÇËo»¤°Ø½HØ\]æ³5Å¿Ùe\ÈFüþNòqùÈ6…‰:„ÝÝyW}k»;ÀÉ;Ó…Køzó:Ò>Å-²J™ÛýèGªºÜSRZÌ×{]Ð+«Ý¤ð~^éytòÍÿWÊ)¿îŸáWØ%ȧ‹íYg”õñßÏð¾×4•]>œTéÖIF–mŠžåœBì#¬ô Œ[jÂ<Æ;ÊŒø§®9ç X÷ã86FÝœùãá.èu–y¸ê޶!íìzgþ݃aèã®ò++¯¡‚ê—–ñ—õ íä]36rí "*¨$åxçÐñÆ1Èý¥Î²ë]Ä„Þ`ã~ú¸X/„æXÍ ŸÍ4>9;B ûaÿ}ú9çtèyUj+ÿÚÍ6å=ðëÙ0Ë6fŒ•ô-=íúWŒ”ëÿÆÅþÛØ žB/ÜDÄÀ’.~µòýdw¿†{0\tsµ#ù¬¼æÙ·ý”ÿÖ>OûÙ$aäHDÅ¿¨[«Ã‚ê&‘_Á©tH`ÛïÒÎŽ1|%¥ÿ0%L?µ7ŒŒuÈú¶‚«~-³Ê¯ùoñdè¿y¸â©} +?ÿ2óÜ87ù¬[E+Þ®~¶ò:÷7Ópõƒƒl„qé˜Ã¥íOâSºIé?Ô=þ/ÐËÙv¡dã}éȰÎ6 *Æ>ƒúM,°L£cT ™g–ßä=øk‡Ë=^a"€?ßíS¸ø¢äwMcîù£eÅüLó¦âÑ´0ëÇÀ¼ói½¦Á.…Å å]2 BŸì÷C;§áI*ñÏ->KÞIæC·ðþaç•Ê¿ÔØf—Ñ +wŠ.)jâ¾ë¨ºõ²)ó¦‘CW„}³Ð ‰ö«ùˆ€š[鞆=ô¨è%Àß ]s¤”¾Â‹Ú–˜¯ßaoüŸ^ÜãoÖñ/éÙßN *®î 1’·H‘k݈;ŠÆ’Kòº‚³ +qÁOË­•—÷Gé‰ÊVè Mcþ9»”šu0@M0 ž¹gpq 6#-£ˆGÀwo-´=”Ιff›Ç0‘+é§ôMÑ_«IÿY¨Ë9þ&~¡ñž÷•á9ü1¨ÙŠí÷°»K/ /Œ°¿}^ýäë6ȽHù™?®t#ï×^š^ÜêÇF.¼,¿"¯É8½ô2¥èü+å›·ˆ˜jñáâ¢#¼øSÛ=•á‡ã¸Û9Ý>É.43­S°ØÝþ²« ËÅlöSâÆ˜y—¶»Ð©^ÀÒÛ½•÷vzÊn›‡*ìÃÕ÷5)ßQ"¿ õÛVäÞÆë’‹ø„ŸûO¾_hHùÙ)ADžh˜e>%§r£ÿL×¹àmçnt’Slã˜ëDÕ£ÅöüKKí…×öz ÇY¹'‹ uÖZÞÞ0>b·—žhéÇF8ÆÊ®ûНmv•\Y~]qÇ"á¢-ÓbŒöeõ•žPÎd¬t ¨?,¶@¯ÚJo^^Ò½,¾a“²ªìÓ´‚Í.ȵõ·åw6ßVGntVÞZ]pÞ4Ú?­ø‘¡5ÿ×w°p¯²†¢h,½8+Ì8 tü!èñGÆ!\ô^?æ©°ÅRäN'.ö'ã()Ó2EÏbfžª/¼÷ºªŸþsŠ‘ô­èÃjìéî³ð96þ¿èúÿ êØ0ç,£xé-4|Fô‹\”ö“R”{J%Ê8åQŠ~xGK¾y(gWš&Ùyªšì3&Èø¼˜ï4MIßÊE‘_YÆËã¾lrÉ)9Å­äVo¼«¼»ÑYrw«³üñ}e +Ðü§‹/ò¯®½Í=÷×>ãÖP*VÞ•_±N£ƒó­íAÃóæ/âZŸž˜  Ò(A>ÙC1¬ãxÀè'‹/ .®¾ÎûÅ8PvÕ.ÅÆéß o×EüC÷ã̹ðªèúnÈ?]Eµu©§ßÀ‚׎úqµr»õí5ùgs/%q£½âª¹¯äšc¾ý.ýÁR{ÂUuCÒϦÐL«>J°$ü»afÂE¯œwÎR‹\ÓØxç$:æpû ¬U¶®£à’¢µè×—¸¬‹C´ôK.+@¶|*2¨`”¸¦¥ïQSœÔo'©Ùlˆ¡½ú®¡¹ìâÒ ÈuuCþùÕ×%7ü 9eäüù–â‹àX_öÈÙÓ)a¥½äâbkÖ©¥Ö´TuQ_/´fœÞl³?AJn¬|öï6ØÓŸö1I> £è|òü‹¢[Šú´Ë+o§t!Ÿ8dBÌÁ#g„“õc/-ýÝ Xäæ;lÄþ:|ù-,\Þ\q¯ým'1æ7¯–‡ØB?•ð3O “b¿ßh/¾i€?² ™ÆQ‘͈˜ï'Ê­jyg˜š ®/¹ ¬/¸cè(‹Þ|_n«ˆø8O®ü²Î%펑âìs\ÐÄ3ݰðN£ÿµÜ”ó›¡1çòbKîï6IÙÃ?¶Y¸­Qd„8çܾ›a–5PC3YüóÌJ——h–T?8”¢c¼ó4ÈÇ­ú6—†>˜DŸUô²?6Eüã%zÕáLUÄ¡¹3}s³§øŠGÍ„ 54‡Œž<²ÀšÅ"¥¥‡ÎÑø4b²WÎ-Ù:}o¾ö®òúV&Ì4LI²ÍŠ‘;¬ô½qBìê[øÝ…vÈ•ýa|”p½i’»ÒYvÉø~´ØÒbëÝ^üUSæÏª¦¤Ÿ÷ûáv =;¨ö¦¨9²æüs}„”ý vŽ¢¶ðÇIfÒ7“¬ä©‘ߌÑ#þ¡¤þ¸ß‹sHe3¢Ü3¡}ЬR^ÅÖ{J´°àΧ†×°ó¯ª~7QMÀè»)Qêô„¹FôƒÅvøÝ­nä=ó)~³Ÿ—¡}…º»òû̯j›§I‰æQ|Œ}B³ˆ{ï±á[ÝWֻН®¼Üߎ}r8%@¯ô‘2žƒuéF>þjëMÅ•Õ×å7´Ï!·7ßãb6GÈ)½ì igRJ¶¾9í‡Å¶¤ï7:sYjŽ;mìͽeG¤´Bª¦ó¤ ™ðý¬¸ìÑ§Åæ×Î9bæúëÂßV^äŸÙz¹¼ÑUu{á]õ}i+ôrUê ’¯ž:Ñ2ʃjZ¡s½Ó“ws’ù}ìÚ?ç8O¿6I°1Ï1Éç*¢~ÿÇ\cñÝ- æ”TÜsOßsM–ÞS×Åý4ŠøžçŸw*xÕkÝè{ë]ˆ‡–IR.`çBû9Ï1KÊu·Ø½ÝEHþú5&ù¬áòÞ7óÂê{Øã0:ew :ŧ ”‡f¸+(Ó6Vמwf{¹Õ‡ŠÞéFO¦$N×åœç%ÿ¸ò¶ø¦#tnešš®ë€]^x‹zh™&ç˜úÊ®¯¶gÿ²ÜZøëFgéÓê‘Gò¾š‹\ꬼfŸ¥æBsÒu54Û41Ñ2Tr{õeüåÕWY׬S䫌U4W[ua˜œÿýn7>íãBMm@ËÇ[%ØdCKò5Ý‹‚ÇK]UwׇP ½·=^‹]x¿ëP’ +?lp)lóùlñ8ÖèX§ŠX¸Ô}^ß‘xÊ8Œm.ˆÔ¼Ê shiÕn=‹æ7±ŸVÙ´£%ì`è@oñ%·–”½?ˆ‰4‘£­SŒL¯†8œ¤§:e´Ìà  qÈÞYrš_Á*µNóŠw‡ ^…o¡&-¿¬¼´þ¶êÊV?äš¶5é´®>ñŒmëaW;à··ß"B”SFI?#F[ÆIq†¿ïŽÀlöA®›Æ ÉV¹¦n);§ª/úu©zk·ñÐÜOŠsޱ‹íãä¼¥ŽÒ[‹í%—\³ô»Œ™o!>ÛÅE:aa궪;koPƒj1qo‚[´ò–~0܈Øn’£¶ûæÛ +~Ý~_yÛüÉ6EMñi8•£ðGCèX—¬‘¹þŽ™·Ò޼¦¬+øe‚û㬠韼žbU4ÒWú©²š’Ó¶1z†äR¯†Yz8ƒ‰Q5–ü6WSq^QWú›q’’až%§ÇÐÀ›åÇóMõGj!n©³â~/%ö‡IAú™^X˜cŽ 964Õ‡öô@=0M°Š½ªçuÎÙäú;|¤² u_ú~ý-%÷kE+ daF…q´üæîPáí²'àóF™ú«ï»¦1 k½Ðp‰0÷L?èOk«ý*jáNwÎïó Q¿¬¿L¿ºýúdç=äžc—Ú{·•òƒ´®ä±GÉC4´§Œ˜¬oÏ9?D‹øn’Ÿþ«¢¹è²ºv_Ö\ušxõ›~òõ  +ŸµñºðòrËßµý›¡)ïÜêÛòv9­¤¿¦àJî½Óÿ/ûî×Ö)«áaM#Ðð®œË /²O/w”_ÚìC?Ü&<ë &œ~ÿÖ*!¥º¥œ"ï )åp»ÕWúÄ2^éQ`â<rŽî ",á/V 5ӯ¥ûؼãyâx™‹3ŽSÓÔÏ¡×ÇY¹?N±«¦i黄˜õÞª{£ì„ ¬ä«‡R\vpI .rë×GPICü䳯)táû5Ÿ¶ùLÓ<^Ñ”|fþUÖuóô™O‡Ï\êƒG"’oÿG‰¸q²ÙÔ ˜¦åƒ[èQ!ãVûН,ôÝÚ9rš]êò¾eœ™áœãUØ•|Øö1Â:MJµŽÁ#|2|¢U‚ŽYy›si½§àÊú;è5ç§Ì4ÉÈÙèBß3žúüJM÷ÌR2l@k–^—^—r“¿Ù|‹>Ö5‰m2rŠeŒðÌ:NI^lƒÜ:œ f;春v§8´‡ÎâËŠóûC”T‡”_¾õ¶öªìwCsÆÏs‚¸oº1ÿVÔdÿê˜f•ì32ÖßaÃó"Š[ˆ:´B››ä‘ã3[&YÆÈq6‰¶ØEÞ¤$µ´GAÍ=™gÁ‚Z.Â<Ž‹Ù€Ü4Tß³IÈ©ã¬ì.rÆ¡=B-“Ì,Óæ±ivǯ @öÖ¿.¿:JMúWÁ.?œ¡çïï`–’Ò6zQ1 íðû«¯áá.Eèú#º Â]Æ…ytbfhž¤¡•0Ì/|2ßOÿ´&ü±.àé™ç 1kñÀ8̓¯ ó kïÉɺøíqNÞÙÐÜ£…VØ—B„ú›º?Š +÷ë¤ÀBƒ(4«h½rK*Jýq”þø+ó`ÑÝKäâÏ›<úr/ú!ðõ{žYòØP/:^®ž,3a.%:io°ôönwùõ€FH¶Íq°S¢œK– JºmŽ·ÍÒKÝ*6XKBŠúEö=ysµÅÎô =©Â¯%¯¿-¾¾Û Oó©¸D·‚r*‡^DTuW߃ûV*,¸hžâ—í â"ômE—æê²Î¯½©¸ òd‘WÅZ¦©YÒ¦ü‹ò¶¢p§œ_½;@ŒÞ}_yMßš{AÂŽýyùeΕc=¥âh•G[èEÄM‰Š.NÓ‹mrBªq·Û[ x!z­§ê–¼1ë×ùβÀ0Õ]ìÌ˃5E÷w$\¨SUKpÈ8¥[=ðÇfò/cŒØ3N)Û£eWû¹˜C %ߪ¥W8·Ž‰ ÎsIÀKË·Pqëý¤XÍ[ÂÓ}) z¼Ægî U>]—ý‹GÏ@¹kja™¢¦/¿Ý\xQzÞ<ÎÈÝ §jš‹~Þ謺úëáú«êÇ Ï«ïïu£»¤¬âƒabüî{ÄÝÀ<w8ƒ‹µN"™Fáí kú””œ€’qÊøùsÈ5C[ÅCï,«Ô9ML +è@fù{_[\”q鞣ئÈÉ»@Ïe¬¼J<4ß]ÞXôëÂËâ_M㘈½Q䃕.è-}kÑ5¿†Sµ?NMÝ%'„æoºÕÌRÓ(ø¾ýèGÎijŽk–µLˆ*,SÈJ.jµ‡å·Ô9­M]£èóVM_KÎ7 ÃnwCn𦍅kSä{qùa~Áy§Lˆ´ŒÑ²¬£Ädç$)Õ4†K0Žc"ÍÓÄx¯®–¾6@É…x²úoè€'l÷T&Õ˜œO”ªÀ"¢{]raímu”OU/<” ñv£ôh……²É1)Æ‘Šp÷ :û(ô ä$µð)ù›ŒYùq«©Ã7Ï'zT¬ÒaäÓIѳsSÂ'¿šFŠÂþwWÀÿ°Ä%Ú¥øøà¼ˆëÕóHþy!É®ä–gèÛاk=¡½°vÆéó¸û{£‚ +ód Æ5ǯvËÉYÆQtäúûêÛ vîû4ì*‡B„Õ½‚ß5´—]tÏ‘²§EØÇ‘QŸ™H—–Xj’¢¢ŒãèÇ¡y[» ·õÅ¿¨ksuË €¨Ž9Rž‘Mt.ÈïØÙ¿ˆÊmŒò¡›ììÅ·„Ú–ê«RnÞ/ªÆ‚›'K—-q݇5Å¢"fÈIšÄ-6xìÃI|ÊðC5ÈúÀÏ#\zê0‰KM/^y¹¹=ø¸ÝÜ\k|åÐòÈ[ã˜g[cø¨½áª»Ë¯Ó2öåü¶ßWvÙ4ÊζJk1»#Ü¢ ;Ç>j{”í˜ÆÇû•„´-)?ÔSæ)b¢C]G]é‚__ï*=¿ÙW|q½»øŠyï›ekXÐÐ=$¿Ì1[ƒìchÍ=¥iÌüiwf’ #¶zQ÷ë¤ì ³²”m+ª¦¢ŸRa…K*¬tM !¦r|6êûVȽïg؉?ôÂn{ÔBÌZ7üÎzGùOè}–øä#µÈ£ ¤o Àîöí—Š.¯wáÂgDù§í2RF@ÇCúÕ¼*¿’QdÄÆî UÝYêÈ?­©Küc–œ4©Xцº¹ÒMŒ²Îг]rZ®_Í­²N…ö?ƒ<uôÈ2M+8Yil´Í‚ì8‰‹>ÆE˜†°rvé‘ZLvʹ]'ä÷!\ŒGß1àÖuŽøuM‚ãàZJžo–”ᛥy7ç80C:j}˜qd¨ãYÆ‘¦áÊ»Æþ²«›]å×ÝrÛ–„ŸALŸmƒ_Ó¾ÀDÙfCŠÑÇ:^µG…Oßê/¾¶?\qÇ5KÈ>18G Ó¯öãŸZfhÙŸ7Ä¢£EίÆgX§ OÞd]Õ¼ÌøuñMÙïŸ7ÅM9 *o)¿ºÖCˆòëÄ\¯–K÷iÙxç !Õ4 +}ìšÆ&8¥”4§®A8ÑPpYÖ\áRðÑíU³*‚ Âñ²s0EI]íC‡‡f)ûZ;B×}³´»”žx·0 aB¾,3Q%³l¹~o¹v×£åb¦øiÞV=ø~¹­øêî`e˜mŸá_à‘Ë { V–ziq¡~÷x‡‚”n™B€¾,¿cœ ¥Y”B”]ÕÈÞ畎 +Ϊ;È‘Ûu°ývjäaÛ42~­»<Ì4Ž·«É¹õº¾•šZ]ge¸²r×Zß<—{².ƒ,ÖäÒ‘K6û+ïlÁî8ul¤S_+Ø#Å›g¨™6³2°*äìÑ“w©ñ– z:èù +ƒŠA>Êñ=òèÙÐ|çƒ1lÄÁøô¶{ªâŽW†ŒtÏ’ÒÜ +Ú"ae9¬2ïoSSsm2\œi¤âæîûÜ߆à÷ÝÒœGÞ&¶LÕ ×zé);£Œ\³Œ’y ÁEm¿GÞÝz_ySÝ”wVUŸñ“ 亀NLÙ§ç,¿…_×·Uü6DOû©—˜üóÒ h˜mœœ¢ª/½(ãäþ°ý¦êÎ]À:‹Ï\ïÍ¿r0|¶7Œ¸o$Äl÷“SWÞc"æêóN¹ULx`¡†½Õ[¾þ:ûô|[î9Ó"Ü!ÅF{•”l·’Si’²‹ö$ì,ólѪäW™&‘›}åWdµi?Í5¦^Ú@Ä:gY¨“åZU†O±Z²NRSÕEçÔõIßïTÜ:C=^骸åÕPK‚‹<ŠKÉE¸•5Ÿ^HÚê‡ÞÕ5eÒ5äÿ¬©O;µÞ‘y1 ÇeúÕµ¤ÕnâSesÁ)ðùî»ç(Y‡£ÈÛ$:ö` öð`ýÈ6C˰Π+«T¯qQ/P ÿ±I©ÙŸ@ÿ„æ9‚ïd›"änõ•\ßîË=ož¨Žø°*¸@¾Ø—T‡J‘ –idâîpY¸MŠI=Y‰?ïŠ;, +R¦½â’iŒ–ëR±€W«ZF¹qŸdŸ¡ä…öÙ?™°gùô^ÉEy$Þ£’v‡0O—_ý¶ñrë@{àT¢â>® ˜À—Þ­4¶îMÒ2ŽÖ›;LS¬Š•·°Ûª†ÌÓ­%ÿ9A‹ù~³§:"°ÚôzWQÇ—·T^ZíA?õ¨#éùt¯ŽO÷èøT†5 ²)Á¥úºýIVÞ!àÙ“&æÓùy³þåÑ’÷÷ïɸ¥£ÂÂÍñVâú€¸do”u´ €cO +,ÕÕÜnú´×*ñ¯ …½xo’‘iŸk9 ­@ï`ÇË,ìѵÒ(A$î"’=äd»¦a䂽)Ì®}ñ*°Ýøòd·FlLâÖ7ð]ÚÐ~MìróüÉÞHéu‡õ4 a•ôÜjë41p|Žü¿c†k™DE®vÞZîȾ¾ÿýd—Íúç^=§Ú©`‡öµ´fÙ„?Y}]ñxo•fžàAŒ3¯[vç^·¥ øÝQFÊÚ;äíù–ÜÓӬį傔391ïh¾Q¼'iÆ/ˆrVxé[ƒìdã#É8DŠQ6eþ܃|ü5/÷û .Ú« 쎑b¶G˜9vy xi¬¶5ûì+ôí½ÁÞø—¦ñÙwG+|ªU+"¯àŸ‡1‘-xØÓÃ)D„c¦òÑâëôß¶Jn»”@ƒ4ì­QJìÎîéþ(%Ë8FÍô¨©ÅŸ7ø¬ K°Œ¢bô­™¿l½‡ÞùdÃÊßW;«Ã½ +4”ɼjjÞÞPyÔò«ô‹Z®® p²‡Iß͉2~qM2òã„ØÃªÇö1x¢y?[›ÿ³þ%ô’0×â{lœ¦±è’y¬úéÁXùëì¾U‚KÙÆÇk_AoÌ4þbìkšfä­v—_[î,»¶ü¦òÁÎ@ÕS×¾ðd‘C:Y‹­@?·§ˆñõóZ§Š‡ò©É…^9{rϦ@%'‘–iLüñ"½Þ»½7K ®ˆ˜½Ò9‹K7V„­¿)¼¼Ø‘ápŠ‘ï×7gXåŠÆ¢³¦1b‚[Á(u+p)_VéðÐqy º'tšUê[m~½5ÎÈYè"Dn P’Vº*Ù¦HùA½˜ë146­3óÖGIq½˜é1pQÛÃð'¦)t¡ŒéÖ° ÁVåÇ qíÑJCó6È$‡2\ê§­P_Њ½ +jžs—è…f/1Jœº¦†CUg÷R/=i¹yðñÌ­“6ký@§N6Dï"í[æV„¼£¥ç/Õ/áQÎy»’Rþ—©öåÇíšúà—cWãólZ©{QÄ:Z«þa£mÀ·$ ûVØ(È+G+­oÿ¾çMUGr*¨Y.Á%ÃÆZ'°ñ ÏÆ[Æ«8¤äÌ#]ãpŠ¿9¿£|‘yNÝ÷½±«úö1ЃO˼d¯NDt(›8æiA¹öeñïCäˆjb4 âêö¶Í™VúîT#ú`RTv0Ê+Ø Dï6Vß³JªŸš$„¬½ñ:Øöxaw²•| –G¨qûÃ严ΊÐ=ZwŒ]ð{‡½Èæ!ÔÃbäÁ¤°Ê®¨ÁX§HIKÕ÷ûè çiOÏì÷æÝ .0«Ì ™¦Y9N¹ísª¶+oÇ«î™& ÷6ºò®[$Ð'A«2´gâæ8= øx…Kõò•C^KìXb@ +JöNºØ‘ynˆ‘øÃLä©IV⩵7Л7ßKŒädý¨}Yy×­QíhQHu+©%ÛȸÀ–&»Â®mkYêÅ%Ì5åü8+Í.Ãå9P‡ÈÃxºK‰É1ŽUÝwÌàÖsÐꎂ›šÖ¼ ¦øSó<Þ9K,8Z1–Å<=²Õ/*~·ËØó1{áeîï–ÑÊÇn ·Ò§å㎖žûW¥‚Š-‰²;)‚οÝÙ€?³Ë¨nÀÒ‡3¤Tÿ<øy³¡-´—®GËB€úÚU´ªýIDšCOq(i¥N-½5ŠOòh©e'k–Gê +h¹èãy¬ÌôÔúª|ã«9QÄvû+‚†ºUÊÊÝ£&H(É6 ò‰s¼úþáhŽõ·É¿h[£¿ .H‡¡9»ýœä­~ZÂfWe˜wöì)mrÈ›SÕOù——ÞU>°Ëê &Imȯ™¦1ôcycúOËåw\²ç—¬óÅá”aÂ>Û"DZe\ˆCUKÚ“°24-W4âœÓ‡ƒèGžZ–_Ú™œm›ÆÇÙdbÔJ?=~³¾ûrÍ<Ž|ìQq‰(>}Ç"cäŒWßsÊ é`“Ѳ·û +®o÷f\µÏ@­³Ì·¶íeÀÐ9ê×क़èbp…‹³ÎQ3wG1Ñ“”´ARÔÆ%Æ6Ë)ukøhË%ŧæãíRJºU‚Œ½wsþEÒuëdÅ=’šåS7ðœê–†!^Ê÷ê–’ûûƒ”"—”Zz¢#—µÔÀM™+ïªn'˜eŽ9Véb'øŽ…gfë!×Í%aFàÅA»Ú«aB7Gp‘º·°»ƒDPoMM^ƒx´Ì'ûtÄ,Û4!ãdUÀý²S×úq­®qmˆ¨h©¸ãPèA=z>Î2‰‹Ÿ©Mùu¶>þ{ËüÙ‡u8.ôÒ>Fê’šì« sW»ë:äØÄíAèýí¾ª0Àá½ZfUp¹®vkµÜ sͰà¬Ö7€žó*q9¦QXŒE†ˆ7«ø°Ý9lu”“9)* Íš‹:Ñ3‘ÿ³-z•¤Ì#=¥,¨%n÷–Þ , èÞµ¦W«#„TCWÉ5¿… Çû¼Ûøîãfý+¿žò?-Ï«åT}ܨkp(¹èÍ^䣕Β‹Ë¯óÏ[¥Ä4§Š\ø‹ðy‰OõªˆÅN%"ñÃ: {('d VÜÚxUrÙ8ˆxêPÑ N=›zw²%®5© éóï‘áîù–Ž[í_Lõoœ†Ð>€´b§š´^@¾,ò©é…G>Ú­À-Rn¡i’»ô¶úš¦ú«ª±â‚¢®èâúøCGè~RehN:1Ö4ÉÊ>˜då,¼.:?+ŽùJݘüÃ𕽲;€Éª§Å0ó¨¨Ð)ÿN  ]tÏ”€zÉ9¿Ø•zJÙžöÛF_ÕS·¼‘e™®ŒÑ“lR~©}ŽqȨ9®¿çâb&1ßöo}8ŽIÎ7ˆœÚzÖþ/Ï +~×*!Æ›úªîúf‰©+õ-É?;f°‰v%!k­¾½ðPñá@“‘'‹L¤_OÉw¨ðI osÎ.u¤ Ý÷\n¨u(ë()!åp²òIP…Ï>™çc}:6Ü«fV¬¾«¸-åÇöëÉeN³Ì,#';çÈÙ®9J†_î .ðIv99Ý2CJ²HÙ%^mKãþöÉÞ`åÙ†¬ký„È_]3ð´?Ök„Góµpl+Ö±Q¥êTŠð–IlÔN_ö¥úýǘg­,`¼Ö¦õ~f¢þòšþêú¡\ˆÞ¨ºïÎnoÞÅž¬K®9\fpžO=Ynn7OQ2wÇññG«µõ6êšýzį!f›ÇËîm÷eœ³Ï’ÓÁû¡}óÍÍ6ucgœ“ïP4ó¬³õd§’Wå×sчrL¢UŽŽ³ÎR3nu虋”˜èÕ²aNæ–S²õ”Ò‹t” Yé"<ÎÌ9^oêÜ›!ç­öCÖß_ßìÜ÷êèÐ9b“RŒÛçå­ +‹ÒFúö8­\ÙQ¹ð¾ü¶ô¦E‚ˆó)ñ9íÖ4¹>åµX“\PXjlvk¹0§šV`œDGî#¹uôò›5µ›zö§…šä-ã¿úãFÃóÿ6Ö¾ü¼Â@¹§¡û]Igô é—ÖûQ)‡ÚÆzí{R¢¢¹ôê§ qÃÿZû>o +j¿,3H>Eu–}¢ðÁÞXñ ÏŸš¿½1FÈ›lÌ<ûi¿áÍû-cŸ6yõn:}ovÇ­å!Ýj!Ê>'¨²ÊØE»#”„ÍAFâVhoç!q‘EZ‡r©ëÈv5¿zsýp­v}o˜s8Ã+Ù¦$¬½#<1ƒãîUsaGKð¨";à,ó9Î1Í+2Kˆ±ûðPŽz`›¬¼ãT c½ºÐ:òªÝ3Ü*ã02v§¿ô®u +›äVñ«·úP÷Ì“¤ Ðãå7°G–LÂgŸøq©†cW2Š7û±áÆ JüÆ`åÍ¥—Ù§“¸X×4!9  èkHA°ÆÎij¦{†ž÷qYÄ´Ê0Ï¬Ó O(°ñ-9Ç©¢-°ñ_c¸5\˜mŽõÎ75zæë=ªœ_ÇE˜¦a¬2D¤y Ø8÷d…G°Ééy>-³üó +cBŠ[†‰5Cxä$ÀÞLX@]ËóëÚ;6†ð‘ÆIVqÈKí2N‰KŠŠµƒz8ƒ=Þy¢³>­5wæÅ,Û5ôb¹KÎ(:œDÇØ§© Çr•-¹·Wß•Ý>¹Ý¢à"–AƳN“ó¬ó8û#°0ó ìþjgÁCãpaÜŸ[ úÿÖu}ÜòM³„¼õaX²wž/Zê®JÜ)Ù¥:óx…R Ž)Ë¡¡LR~9x½ô~ÌC“Œ[bžUÊk1n}-Ý¡­J|’¿;‚y´êxw„cœ`¤íñ³3 Øà| ø°Ð¦¤f]Ž3MP“,A±eZXf’°2ÍJ¢eýÈg ¸´ôÂÃi|ìÞZbTب­õ̋Ⱦy!ãÃúßÏÜBs˜—›t0}°?RýÈ«RŽ×Û}óbŽ}– ]þ°XÃð«ØP¯‚’ã’ÒL“ÐÈí¡²°ÐuŽ/+ M'+µ5€—‹l2jéÞ(<~w¨êá§õdÏ2ª¨y†>døÎ4å˜olt/Õ = G¼ µüÀZ}Óñ–¨Æ6/æ.sr5ï ¦[‘.}s[pµ±Ùše¥d”Ç+ãN–Ù¤O›5uÇë/§ìªúVÕÍaTÄÑf]»ME/ukéÅn-µÀ®¤ø@Ÿœ„®alµKŒs|¤mŽt´ÈF}XçS×9xÈ[¾˽ÀǦAxè/»5õæYb¾îô’c–ÌÌù¼#løï}ŽÐg AJàËKÔÒ?v…bÕkX*§ ì+mgiÆŸõoÿ?‡ïVÒòž`]šFžS%zú´¡\H`IÌ,Õ0lJìpŽ_a@$ÜüíaZªQBÍ8œeo ‘Ÿm T…™Æá‘¡sy.­˜äR ¹°Ú©¬§ºÔ àïE V¹¥¡ë¯~=eãAöÆqQë]U—_A/¯¼†ß2RBy«ä¨?`çà’˜ã[‘C3@½Zbºs te5è˜ã”8•œòX ÁÕ7Ygƒ9çM#¹çÍcù72|²c–UìPñ«ì³ì"·Vˆ³ƒ:Ü.¸nš(ºa•ÁŸXgàOì3¸Ä€ND=Þhî í5º;EO , +)&),Ò4]zË­B‚ÃÅGþH ·æ™•{Óœâ­qlÐqH@G-òÌÂã>.bs}jlêÞhå½]PÀÏ¡=Í'ê ç-“ô_è¹¾9Ä3ß"pfÜÎ ñ©IBOs)ÄģŦæƒIr +`í0·’w*ذ&E€ÃÙÁåæ6›ºžq8#F†æ[f„àÑi g³ÝjR¾_GGýµÍç|ÞâPÜZ|îÞxåCÓ.éd­¡1¸" yµŒŸšUéQ’r<*zY@_Çý¼.äËZï.¾¼Ù[f–Rá/Q?1õ(0> ¡È-#dèY•Ÿ—EŒ OpªhEþÐó[ªzæÁ(òÈ qv%.Õ±ÀÅ­‰¾ì6¿ÿ²/n5Íásœz&4KÁ¦a!:|ÖÎâñÎ:ÒrúÑÂßs£Ú@]ñý‹¡g›^öû×›:>m ù~ ¡À­>KͲÍ’—XøO»õÊ—+n ½òÏ}Qã§·v„"ß*ŸaRq«7ÆéÉ6µà¿šûÿÜoìö-p¾yáãŽPðå@ÜòqG$<^e"•¸¤½)|‚MÅœ¬>}´ÜX8CèT’ eä|žVu²ÎÆzæx}7>fº©ø®CMÂþ¹ÏfxTU‘n%>ýÈÀ®:žç¢ŽtÌŠ ÷þ\nhø´ÚÐ\3÷¤n  îLPír!Ì­hdyBçCs gÄðPöÙ|_x~¸øŠKAH·+(N#ÿÃ’ˆñe£ùÍç†æà"ãQ³JA ¹•t«¬‘dWˆQN9·Ì9KNsÉé9@Ï3¬RzƱVHü´ZŽ¥˜ãÐq vU-Å¥j©±Í‰à‡2zö¡Œ˜¼=ˆ~`’¢rF>ø»œX˜qùØ)§d>/7M“v‡0›ýU·Ý2jöÉrC½ÛPË2ËhY¦)rŠCŃ9u €>Û•Ð2Vû‘7‡qO§!@®†Ž•MØ]Í«r(8¥Ö9z¶UNÍ´+è¹[£øë#7¸(¢ž¬p°›=yLc¥7­Óð'»£ˆ‡n9Ëxjg†S¸ÔK €÷u+˜U»CÐÛÆaH˜köïg+‹ƒ:>þƒ¾¥=¨çaA½go-ö-Ô²Ýâóöy ÌÓK>oò¨Ÿ6꛼úzÎJ7ñ©MÊ*þ¼ÑôòÃn—U?1O”ܰLBÂö†ËÚgÑ™ÇÀk¼º®WÇDÍ‹hAVr)1ñ6:z¯vo¡=ûçÍ÷{6)%Ï©úÉÙõ°'ßöÒ3ï¹ä¬j¿’”ë‘á¼€ó| ÛLàã·‡O} \‚IƯZïÁ<ú¸^Ã;Y«æÔO«tTP‹K·N•Ü1Ž^ÿ°Qߺ§¤•H_æÿnU1¨ 8—ø„?ÖS/Óá;½Å×”M™gvFpÞåöa ¨7‡ž‡šÈ=Z®áWkxÀSjþÇ(¬?Y"›' w>€œõiWÜè_aV95ô’Ð:Z•Ü +³\Pš‹ë×Pï‹cW»Š®žlˆxG|JèÇ·L-7ËQfÀîÞe60IïÉ’ˆg'§9Õ\Ü{-C'›|¾ÏÀ¬4Ï“ö%ä„Ã9Z¶……ûË"¨ÿcŸÍ¶Î!³:`2t´_ƒKúûÔùG{²(¢ûBµ"'e™%„¤Ð=}v%6Ù4 yàÓrýó\„C!¨²Í°òLÓèè՞ {÷ŽÈW)eŸ×ÉУEBé[<Ú‡U0&Ö£äW9åô‹”œf—ó*ìsœRðþU'öo>Qrʶz*îY§ÐI~ ê[䢽†æ›¼£Í,kL2Ÿ\„°Œ³2öð‘ó¯ +®mö”]sͱ +A.^Ç)>ñJæßaïë^B.׺áWÐòœs´Ò} 1ÕòUQOlXµ7Ã)0ÎÔÀ7GÅØ1 +ô ¨UÔ8ŽÍ¶ÉY‡¶ï_i¨7ÍrJ·Æ ÏŒ3´Lëß÷nQÓ}jjnPG-¹§Ò-g­Å{µbªeð°œQ°?Š‹°‡®…Í’R|Zìpšžk#<ó©ø° –ìñlë}ñµ½>è}‡ þØ«ÆÄÝD—¹Xà#%Á%!éh™‹ •à˜­|v¤g@Ürv™i”ûÑ  ~Ùm—ºxôÝ1ăC!Û£Ž–NÖëŸ;´RuKÖïªçé—@oVº•"ÒÆüî„”š#l›a—.Ô°7zQáÊÆ‚óS¬¸ÓÛ=°T°6Å«=E¿™%¨Ø –‹<6‰–y„/›BÞ—m‘øPÎ,Ù¤$þ>?&À™$øhWè|¿†QåQ³qŸV„Bàa­îyÚ¦f”ùVšß¯6½81pA-)Û§F'‡ªÃmÓ̲à|CíñZS»ex¢‹?^«:XàÕ¢}ó¸ôÀ1×:‹ˆ1JÉÀjó[»žÖ¸¸›Ï{‚zÁ!Ågnv…m÷„ Qüðzá_Ë]™÷ÿ2×¾ô­ +hà‡úqGÜr².`}Üׯóy69®xé]ñÍ¥ÎÒK‡RRÆÇMo¶%ûÊÞDuÊÑ2ñÇ:ú×*é—“ª×»!̸ëÜÜ ÿꄸ ^~¼H/÷iñ©Æñ²ëö9tœO²Ä"ë_àÀÁ÷/óëYv%:Á:Sõy™Q}²šOMëŸx6ß2MÊrȨ¹_Ö8¿“ìWܳÍB|öÇ–€y ´Ä§aís¤4‹ýÌ¥â@¬³À¤äÌàl «Hç«`íôÞ¡“˜§•~Xc½ä<Ø¡BwhkÉVe-Þ2ÁÉÞï'F+ÓÏ™FKÃÜs„ ë9æäWîËk[’šJ£„õ*90ë4>~½§òÖöü!x-¤K_C9˜¥gÌrŠìŠV°îï'ìª}Ã<…Š^|]xÁ>CÍ j('ë5sh>ñ,»Äa¨yêø¡çŠÍ“ؘÝþ²ë€3‹ÏèpŽYlòú;è•AæOc´ØÓ«o ‘“´´¹–üÓ §{µL¸iíœÁ§{´Ä|—Ž\`W3 +Ýš:®o©¡Á$¥e›¦ˆ‰'âºã5±È¿ `xut´OC.ò¨é…yöxóÅÄÉzÓ«Ïëõ-Ÿ×DÂO«B–OÍÇô|¬«[…ÏÝ„Þrjé£5Ó4ðh0YnØ™ä_¬­ñ.uLÖ^ {W¸tÏ"¹èÃZÃs·œQ¸ÙUru†ýo}cêÝó´;[}‰Ÿ6é´ÿ67t»€f9u\ä§ÝÆ·Þ%>É2CÉÙG.u^Ù«Jr)‰ ‡–-rÓõi¿nAã?nð(è×hÉ=Mmê¹WÐÇÿ®)züm+2êw /Ðr—–VàÕQAv!$tlÀò„qc‘ââlÓäD×,3ÿÊ€úç&öÇ{´H/s)¨Ù®9vᑞ‡<1ˆˆ^»ìHÏùÔÌŠ€ž…8^àâ<V™Oφ:”t°Fœb¿Vˆõ€ åTó [¸gúÎò+ÎYj·EÎ4ùHWÇ:šö$çù ˜D“bà§¹~fW³³0³½*Ò¥`A|jbÆJgÁï+/K.Þ¸õ€=Tb‚KSÏôjjÉ^­æÑ‚ܼÈDøçñ9¶YøS+`Ùà"ói¥¥Ã7ßöúPΟO€>‡Ù=×9‡IØ*º¿Ñ“ú»¬7ð“Æàfó[«–ù;`-‚cšUᚦå8§± 6)p>ɯS¼Ú–ç -Ý<ŠXh/¸°öªèÈ÷© ½Ø´À¯ õâ˜Tõ5´€–=œDD­¾Iÿe¥3íW¯Š;^mys´RWëÖ² N%ç3Ô @îehÅnYu”OK-r€ôÄ[­ƒ@¯_8çëžÅæf·Ž wÉ©9®9pü4L¨e’‘³?ÂHvÍÖ`LvÞö@ñÓxù ãêáÁ(#Ý<Î+sË8U^a”ÐR×ޣýÔþ` n'Ä9Uô¢À2 ñaK(8Z~Þᯂ< ¸‹u¼×68h–’Sl +|Ú‡%ì ï3蛓Ն¦ ¡–ùy½¹ó 8~>|²Ì¥þûÚK¬ü¾SI‡ž¬Ö5~ج~²Ág}Øhê ®ˆ%ád•K ,rIà±îyBÖá\õ£P'ÖIR‚y}8M-÷kyÔ?7j[ÿwŸÍ=ZDç™§)¹›ƒ”¸~j¼ÇÐúήç"@6Ëv©˜Õ×ø m øî9f‰uðï .Ö(A„{uŒÊP~ôhBçï ÷vFà1›£ø¢½96Æ»X[ÿÔºOOÌðhIéŸ@|^©åYóO–D“”´3Tyc¯¿ìŠm¤úqP…Íù¼ÆÅÙ ¿l‰EÇ«\¬d]× ,Ü-CGy¸¸€†Qtlà"ƒ žzNep·!íʈ0° n5.Å¥a—;Ub¬[ÓȵÏ5ѽj!*hà\@³]JV±OË*¸ˆãEÅú}±+çÒ4÷á¿SNùõ ñ,˜WÃÃ9Uœ*Û,§Ä6%€NPR×_ç^4ÏjŸÀEûæ˜À©' <ÚñªˆXáá>•{4Œÿ"!ש*{ìœ+ºež(¿å,p¼X/>šÑeSЊW{ ÿöÞû=®ë:ýíå‡$ïæó÷ÅIîMà$L$Û€ÎÙ§‹’-”¨‰]¬ƒÁ¢ 86QÍr\âı-Y¶ŠEI$%ö^D‰”DQ”Ø{§çÝ|ï¿xo•½Ïœ2$f(@þ,‚‹çì³×Þk¯¾Öþ‡¿r÷±·çÝweWç“`ONÙÚ°ÿÕfãðÛ¹)`«=}zcïü=ÿ>ûŸßÿ÷IiKvÒµ]=©ó›;ç~º:õà¿…5{-ûƒcëŸê8µ¡þ§«[Ç¿óÌÄ¿|s`üÿ8öFÇøK`\Xrë`ã¬Éüðê®þÖ‹Û{ÚÐ1å“W¦|÷ÐË“¿süíyâÒΞ¦K»_øåùϬ:½¹oÑ9àe'ßÅç®¶·?yjíœqç64ƒ­Ô=õК\ãùÝO­<gîÀË­÷¾»jæßïÿù¬¸°q‘we÷â'®ï(œÙº´íóµÝ§6®h;±þÙüÉMÏô^ÝòƒÝ?Ÿü×»~2ù/wýtò·á,ϸº÷©g.îYV¸úþ²¾Ë{Ÿû)Ðí¿\ÿ¨?åƒîEGÞèh8µq é®UË/#=ï_þÜ©My쉶àêç_ºv`ų_è]òÙšEíýùôº²µxѪ.íZþÂùíý]'7>Õy~ûª ;V®¸öþ²üdå¿À9HŸ^zfsþÉ/.[vaoOËémÓAW}ìô†Ž©W÷图x¿§ýÚ¾Îùç·d§zeîÝÇÖ4ÿð˃+^8½©súßÍsð¥)ÿtøµ÷Ží`®¼¼óùŸžÛúÌóG–μ·´ïú'ϾôºëN^Ë5þå®Õ_„³zy{çœóÛº_ØÙ•:¼ºÉ:±©{ÚÙmùyÇÞ\4vÿ/'ÿíöŸ>ð-xfúå­\Üž™päéµ]}­7ö®\zm盛¶ägí{iÎ?ný—‡ÿçægîÿüÛÄ¿þâ½Þì—–/ÿâàòe—÷ô¤°~ùâÆ%³/nìh<µn®øôµÙõ‡_™wÏñumãÎmížöå…/,¸º§¿íüv¬˜£·}âiÐͯîY^¸²gyÏÕ=@Ÿ`Û_m?û}úÝÅŸß´¸ñìÆÎi'6,™öÑšxÿ¥9öç¯7¿²;7÷È[sÌ~;íŸ>Å»¾×ö?ybýÓ¹ÏÞZ2åà¯=ûÖâ‰gÞÊ>øñofÔ­0¿õñ‹SÆ\ÞÕ×vù½UÏžßóÜ '·®è<ònËøß˜)N¾Óü؉·S÷{‘wlmªáð›é†c—gOnYÙsq÷Êþ«û—õ`ãÁ—æê‡_M;ºó¹-‹áŒ.žòÙÚÌ}ÇßÍM¾²#¿àÊŽÎ'ßMÿ`ß¿=òí}¿xìYàßÒùø©-ËZ¾Ó;ã“?tOÜÿââûöü|Þ˜£¯µÜ·ïçSÿi󪉷ãù‰ß::÷Õ]}™Ó›ó3>øýܺ}ÿÞ8æüÆ…®în|üÖG­mŸrz}~ö™ +ZÏlùÑsg·ö5}»é¾½?ìoÖôZúùïg›ØèüŽüÂÓ[ºæ‚ýøðgoöLýôÕ¥³þGÖ9ñö|íâÎE?¼°£í±K»Ú/ï¹úÞS+ÁnxæÜîeÝGÞé]øñïÛþôµ–±Gß^„þ>ôY=x|sëÄkú–\{ÿé_Ü3Ð}~÷’ù—öäÎnéo:¹~ÉÌkÛ'}»eÜÉMÍ^Þ[È^?ðÌ¿_9ø/o~º>÷øÉM_Ø‘O_Ú‘_tôô¸=¿˜&¶ý´ñû‡Wg;µé…环¦oϯ3ÞÿÝ|÷ËCϾxf{_¾ì’©) ÛM»°«ñ¥½ÏÿÛ•½«ž?½©íÑ£k8Ÿ½5ß8ºvÑ}g6/ºïÚþųn|¸¤õØÆΑ5 LÐå—\?øì/±ÇÌ•ïÌ>~zãâI×ß_Ò|ãÃ¥×>zú'võµ^×;ô™6vO;ýÖü±»_ÿíwVÜÿ??xéñ»>·ôÜž9‡^Ï>¸í…i}ð¥yc®Y4éÆžeK®îéœyz=è o.Ð/në™{uÇòÜÕÝ«–ŸÚ¶dξ—ÓÆ®_-ºgÏ/gÜ ûyß?Ìgo¼ŸO_ß_h½°=?÷úîç~tyËŠ®‹›º¦}cö÷>üõÌ1G^^dœY—paSKÃõ]Ýs¯îím½´³·éòîþÅ—Aç;»¹íáãï,üáÅíéG¯ìîœgrùeÐõÏméO[ öíïÖùý“w}ò»'ﺜ¶ËÌ ;úÒç·÷.ÄøãÑ5M °Ÿ?[qÚ‘·@/~;7éèšÂÌsžêš·}ÿ:ûï7¬|ô/Vwzôµ¹î—ÀCo¼¿êù³;ž}úàꟽS˜yvë²ÜÐO@™}ä¹÷~cVÝ‘5 ￰繟žßóìOl)¤Ïïh?ºn`Ñço.™|asúܦ®'>k¾vlí"ë䆖†KpöÎoîžqf}Ë'ßm™pøõE÷_ØÔ1 ý<§ÖÍsŽ‚Œ8úNÏ㟽Ý7ýðêÞ©ÿ6#öýlÞ?¼Ý?áÏÞ.ŒûÖ‡¿œþÝ+;²“¯íY²àÔÆÅYÓr?ìß“ç6g>±nžuðå'ïþôÕ”uþÜÔ+`ï\ÜþÌ3'74ü‡¶ümÊ9ôòü±×·M¼´¥}Ê)Ð[¯Æ\ßæ±ç6öÌûìõüãÛ~4ÿ;Ç×4»®åÚûK2×÷-i;³©éÁ“ëÛ&]ØÑ=ïìÎþ̹]/üâØ»+Úß{1ã~ôÊ"ã³7æšvd§]}/—¾º?×v~g×üÃÀS?ys‘wqïÒ‰-ù¹‡W§Ì£o5ygßÍ6^ÞÛ1ï‡zû¾üpà©SÛóŸnjoľpŸs;ÿÃßλg÷¿N«;øòìûÏo½i˲þ^k·ã—³îúðæ‡o|ü“õg·-ë>ôJó½8óîoÍüØL\ÚÓ›ýâã§qyoáÐóµÏÖ¶<|f[¡óÒž|óñwxÇ7,Û¾õ‘ÏÖ/0?_—ºÿúËV€m´ì쎞ùvæ[®пâê¾Bû¥-­SÏokrfg¾éø®Þô‰í}M'6ä?öfÆûð×ÓÇìùÉcÿüÞ‹s&{þÔÖ.ÌAY°ÿÅ–{7¾0÷;§¶÷w_?¸òÙ+;Z/oëžuî¶ ×w.I}ùÞÀ’k; ‹®ìêYx|SGã‰Ë[Ž­{ªä)ÐÕ¢{/íßÕýmSnìÏ-¼¶·oñõ]Ï<{n}÷ôs:/lÈϺ´~ uvíâÇ>úÍäܺJûóƒ?¤öìÆì£Wööe¯¿÷ÔªK;z|òæ\í½ßLüË“oÏøþ¥­­^ßµdÞµ=ý­g·ž<…õpNNÃ|N¯K¹Gßš|»íãë:>µiÉŒK»VäÁFÎ_ÚÑ×tzC礃/-øþ‰uÙ/ïìk¹¼siûŽŸÍþ»íϧ¿÷ñoú¦œzk è«‹§|úúÔï}s¶süÝ¥©ÏÖöͺ°uUß…mÏ,ÿäÍ%“@è¹¶ ÿÚû}ù«ï÷v€^–?µ}É‚÷¿H?¾ºá©ióÉKéû/¡Ž·±ãñ«{z2(¯ìéoÿìì}'×e.ïìM_ÜÖׄ¶úñÕMî‘מ¬eüyÐoÀ.ê8±ayËá7–<òÁ‹ý“>ú}ïôÓïäçž^×úuÊ{£wüß®]>á;~·xì'€Ã±-½ ¼ÝúÀžŸ=þsÚ¾²«kÖµ}¹7Þ[’>öö‚výtÊwü¦Ù¹°kyßÅ÷–æ/îížwnsëð¦÷ž{·û8.øää•ÝO?{ôüŒƒ¯d6^ëéõ߲͜ðïÌq7¿pß·?]=×:µ©ý‰Ó[;ç€î5pbsç”ã[Îíèœvqû’9`—Î>¿äÔö÷{gwiO!{ãàó/^yb}û#×÷õwùAß’ ›Û¦¾÷Óéwúå¤Ú¿zôoO®O?øŸ­üé—¯ú×3› ó>{³ýØÇǯîè~òâ¶î¹'Ö¥þtõtç³7Ó÷ÜÔ>õÊ{+V]ÿ™Ÿž½ç(¬ÛÉm“¯ìͧO€Nzêí¹Æåí3.ì)4ÛÛÛ|q_î2ìéÙmKæŸÞ”zí@¡tÅå7t.º±¿cöñ ~üúâûN¼Ûóäùí}í×?xæ_¯ìè9<ýóµÙñÇßíœr}áŽ}ïýnžq~ã’™_l{ªpmó@Ó Âg_ÚÖÒpaGÓ?}ëÉï]ùt|ý’iÇÖå=¹¡³ñËù–ÿs¸Ðóå¡®¦+{;fY½Ðúäå…õg×uO;÷nÿ“kÚ9õNóø}¿œòwWŒÿÖ¡_ͼôç'¿ØóÞÞ vG_úÔæþ…g7/™yuWçç6ÍÑάŸþÝSï.ôN¾››tfóÒæ£ë{Á^ÉM=üÆœïmzfÜŸ~ôëÙcN¾…uq½À —÷_Û›[öë´kû–å¯îè:¿©õáC¯<öïÿæ¡oúûûÌš•Íg6õÿ~´¤õêÞÖÇOl|âûŸ¬~诀Ïé_Xºìê¾®“ï´N8øâ”ÚO_}bÌÅõ¹©7¶/ﺶwEï‰-K¦_ܹ¬ãÚÞçzmÿ³?9»£Ðtdõ¬»ýî‰Ú“k3?¼²cEþ‹Výøâξ拻úš¿üpåsW÷ö¤Ï¬kùáG¿y|̆UVÍî?øŸ拽Kšþ ÖÿôöŽ)7öçÿøÉ²§¯í[Ñ líKÛ»f}¾úÉú?äõ?Ùõ“ñÿûÚŽžE§ÞÎ=vÌ?òÊô8övÊ=cÁ»W¾Ü»,|ÃâG>y«Ù9»u õʮŗvtÏ<»¹£ñãWŸ¼ëÐ+3ÇÜØ×6é‹}98«ù¹è[? úÚÙ ½O^ÜÜ7ÿÊàÝ;Ú'ÛÚzÿ’i7ö.ï»±oùÀ%ûŸ­[üàéͽ /îìo½ñÞŠ+?½½7slCû£˜÷ræÝ>°ó»=öæ<í£—¦þïC/Ϲû꾞æ/?Zñôµ+Ÿ¾´o ûÆ[·>Ý{jÇS=—>ó³kW½pt¦ÏÖ¥ï=º¶É½°mE÷¥]Ïýè ØŽ_Ëxçw=µâÆG+ž=µqþ¸mO7üùg¯ÎýþéÍ Ý3ÛZ&âzXÝùàÖk7?[óìÒkûüÊe°{Ïm˜uÏg¯?ö·û=þÏÁ¼ÿêîåKo|øì¼ÿJóW÷?úŸ¿™Ÿ¶ê²ÿþøéÿÏúòÇ×Ìw>}}NÝ‘7SÆyå°WÙ_ËÜûö øCêÁë{–¯ø¯ËW^îì–¦ {~9ño6>{ÿŸŸßÖ¾èË#ϼ|õÀ@ý!§×dAwúѬüùû í×væçÃz4~ðëÔ÷O¬ÏM¿zÑ_Oû‡7zôÿkÇÇÿõ‘Wghÿ}(—ùÿFÉÏ¢ážÀ×õ“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm? "Õö“ Rm?‹NŽ’ŸÉµ£äçOÇŒy°«yBªª™ýp͘qX áïO¤z +™|Íäš1 ï—/LȦ Ù\W*¿´ö^iõ¬½ç‰Lª£ö.~²ª’϶f»8-êÈÜ]û}xt,ü¿F«Õk5úßì¥5uŽk8õ†0u×ð‡¨uRoYša𥠣¶2ÝzöpMSsíøCø0Óó\×1mÛ„‡,zËótÇÓ‡Š}®¬‡bŸk«™UÓUóxW{×ݵ³gÕÌüëæâºÏ÷ö´MM`IºüÅ\89×55Ÿí*d»Zëê<>Kü‡šÉÝø/ºÆÿ4mæÄ‡²¸÷ø¿ÂÚß3{Rãä\s mÊMÿalí]]ðOu0­|¶©·éÁ½}ͧ"O¤Û²ÍùLþ»¨½ç‘®Bñßð?…¥Ý´¯wicgFW6 Ài0jWkøÁ¾TG/?¹ôÖv¥:é9˜ÄRšÕÐâ‘kZœIÆçz»šajãså¢ÕB;zÊF0ôΣªkåoZ[&ÛÚV(1õøã4î‘…ã:ºÛR õr1Ë6Óƒ ƒÏTõöôg› meïŽ|zÈ1*ŸAN]—õç­§[-l²Ð›o*wò™žÞŽòÏœz|è·µ^³ÊÅ©)Õ“y(ŸYÒ›éJ—/"o 9†¢\ôºz;§¤ ©¾Lù2 øÊ#†äØÛ«š)C~µLÜÔw†«®Ü´B¶„!qê¡§§g;*ضÐ;åp › ¢ß‘Òr) rd¦—¹ʼnßb3†x—¦åzóéÌÄ|ª»-›.[Zw•½CÙ®a:Påã2_ !#†›ÁV»ˆK®;“Orù²*¾0l‡§!×ÙëÉ*8;wbd”;…{&dZjÇ&&`b&&à`& ™˜€‰ ˜˜€Cc–ío™`Ù¼d¤Y€-ù|»cr.Û“Ø€‰ ˜Ø€‰ ˜Ø€‰ x»ÔR'F‹¨›£Ò4ŸéËtLkK5çúGCŒ¬‚MR%hÔšHM½ƒpÑg"±ªCž‰Ñ¢è”mõš'dú²)œPÚuð¥aÓ&¦z{z²©®ñƒÒd5*ØeoQsṳ̀y ši­¹|µ¢yX¼Ë--=™ÂàÔ4ò8\%\»bÖ6L§ +íÖÈ;÷e'dôôæ[RéŒLÐ,—5‡^rBëéΤ§ô²+ÉùNÕ -ÌnMç:rù{ûÛ5±ƒÚÂÒJh‘Ÿ†ØLÙø¹öv¤òtçº2]åSbüšDzR$r]=…Ôm Y|q$Y*`®ÁO¹‹´¬ìUY6¦§^ .Õí½©³*@åk·£ïˆ*25—í*4Vâhº3¾ÊÌ4yb%yÚÑ(U *D«ÚuˆÛò˜$á”N©žP¶¦Ó^>‰µ…•-öÚA9ˆˆ^ͺg»Q>"FUïÈ ^® "æ°Xu…©©ì`ÊýÈœ£2 ¡bm ÚEg*Ÿ-´uf +åoÑ7]„Ž;ºr¯øHñ OÊä[3¸’#O%ª”Ýâ-¹sóH¾‡O™ Õíºú&•ŸŒÎ«†\®c|>“YVvÈ£z¬ôQ—`e•ШͯÒëË®hϧš³½åóõøÐ£Ó&Uùbå#Ò\>"ÃÁ›³©òãÙ#Ñ +”Ëw·å:r­eëJÕc¶ŒBî6ê +G O+¿Ò'ái Oû +æíhÉm*;¬3RxYÅ~UÎË*+ª„™ Ó‘©é»Måk0#å”O[U~J´òÕË‘Ùë |â«v¦ì,ø¤kC»¤kÖL#¹kà é6í©¬ªd˜ÊIšÊÆ'¶Õ»7Õ.‹*ªUŸ‰óDÙ”†¶TWW¦cZ¦#“®Ä]qèye‡“oÉø‹Ã&Ž&d{º;RéLg¦«0)Õ=òd’V«þWûUýZî¶Òoå«êñ¡g,e»†FŒø*ŸéW»øª¬e‹¯Î Uv*ÊmÙÃÄú°BuRèU#Ûk*ÛÄ1‡¿ü#S퇿콩öÃ_~ðÐ4z©–Óוë*Ûý’J§{;{±&øÊл9Q}^N¼žª|ï&?=ôåe“f`ÏÔç'ÓüËݶð[C[ïèO--{÷€ÑRùŠ?_½ÞÜB®|Ý#7ˆ”½9Íå÷œâg‡Á]IžkK¶££’ÜäŽjv-ù\gùÈÐÃCŽL>Cf}Ù ¯¹9[ÈöUÀëü†¡±+“*»\(êHOÊ•_òxa˜,“TW¶³máÕ¨ŒìöwuîhI›I'i3Õjç•¿5IÚÌÞ‰Q—6SmUù)ý·D–O}Uïï);H’$ÎD°Kg’Ä™›îRÙÚèÈHœIºÄ™Ñ#nËß›jFˆÕ$q&Iœbq4úgôoJâLzÔ%ÎTÀô«]|%‰3ƒã“$Î|u‰3™j?üIâÌJœ !¢‘“þSVzâ†i+Gp³Â +²í’͹í=FÎ^ܹy ïFMËÈq,œ@MOVæ+ûš"·Õ² å;qGH³¤QÙÍ;iÏ“ð·Ûæoö7™¿•|Âßþ–ð·ÅßÌ QßöVíì-ƒ„šp·„»UÎÝå-án wK¸ÛhãnÁ°ÑÂÊÂý£ŒÉ•ü7/J˜¢ +‘óM>De#Ÿ¢ä‹ñµZ«ìÔFFû‰ +²o ¹Zö ºI XáÔì@¦cjGjéÂÊê1GÍ=i²]Í™–l× —£“÷º3©Â„ +ÚhÞúÉQÖs§Lv™4Ü$¡t˜îèåÓcõ7ªÉg:sƒ56YjFqo—žnìîR.f_©·ËPŸ©Z}¬Ðju þ«ÕÂÿÇÂïðçXø‡Ú;^a3,fKÅlªE•jªà:ò‘R%0 +¯•¬d›ª½` ñbT=WHç:»s=`ƒLéä¼<îPÑQªr¶p›‘¶j/!lÙGv ­A®‘ÇÊö:µ—ObíÃAae{CÛA9ˆˆ>ºvÙˆ ’DDĨê$”DÄD‚²sÔ54¼Å`dÑ +Í…j¡©|¶ÐÖ™)”¯|ÓEéÈ Ü‡IªocIü9‰?'ñçRñçÊú€&ñç$þœÄŸï>Iü¹$I&ñça@&‰? øóÞ-2ê&F …6¶"Õ3‰9W]f¤8Æ’˜ssNbÎ_e‹–f::rýåîSG¶µ­ÿ^—ÆeïTôµê×0'›VQ“üÐ;C/vË>c½ùPª*Ã-üRõî[s¶¥¥·'Óë“¢«|É{oÈQ”3m’y4å{T¸Ewà.®j‘‰ .qÁU‹ ®]$ñÃU©n4]Xœøá?\øáØ¢ÛšÏdºÆ‚– ’-ÛšÛ—Íud +c󙿱¹|ªk°8{â jfè–í2M-Ëvö¹“/xÐÔóCNvÙ8e:à/9€o ›÷gB– ÇFTF†9wf›)R/y8Ó¨wDjwMOw& æ[>©_©jFD(7ôÁn°ü+ð«Å_†¥XVì=Œ¿˜8sgNâÌIœ9‰3'qæ$Μęó5È1tݰ3Gzvȧ“8sªÛ–Mœ9_Å™3ÚÇ0†wG»gjš´“F®kj{6nµjwpŒÊÚâ¤=G•ò†ò{(Ty{Žò»ZTy{Žòw$iÏ1TVaj*;˜kuä ÏQyéJ¥ùŽU/:“¶U.B“WÕ&B“WÕ*BG]w«JuƒjŸ·eP'"t´‰Ð‘“P1gIºZÝÆ<†w£¦«Õ7«õÓ´¶Ts®ÿ›}ïPÒ¸`D¨=e÷&KŠý‡ë$•}hó \5˜ž30 ´V>"e_«K9"¹––žL©)Ÿi®ˆŒNwG§‡‰ L¡]ûFÙ·O¨#eSoÃX¨–Íš(ÄÈٗĈ«r#®N·Æ”K§åKðaàßsT7´²7­-SIÚ™ÿø0šØw µòPïYþþôg›+È8•O9F•°‰ò-–Äý1ÜFÁ(t؉û£ÚÕdw´¸?ÊG$q$îÄý‘¸?÷Ç7h_÷G•»?¾AN4° © +Ò†Fc;]¶sa¤¨5é;—+4Ôù¡õewÃiJõdÊg–ôfºÒå+Ö‘·†~«*ól•¹UÃâà*;—·«·sJºê« Ð=øÊcÖ’OÁ·;&ç²å—]ðËeb§¾4ä-†¦²…ô žÆ oŸžží¨`ãBïŒ$©ô_¹ý—*I»¢A4˜ajW¤Õ—}=M!W>£Í *Iã¥r-¡áh¼T†Ù’Ïu–=< ”ô‘bÅú«ô‘oRÅÝ”îˆ'izo¾©·çt5V`LU¹Ý›ôHù&T§%nØ[ æ1IÚs'ëÚ¨ÌA+ŠÄ…ƒ”Ó„<´ +öhd䡕ϨÍB+…޶ †V¯rßÙ‰B#Ía^(Ó†HÜå_Ù]žØ€_&V`b~ÍG'±+0±G¹X¶^šXUÈ(+pDYew“™F`Ùè4#0ÉšJÌÀ‘Á 301¿æ£“˜_/µÔé‰!8ò AkT‚³r¹æÖ|ª|V½V`42¬ÀJøÄ¨µGoOŠQv•GEåçU^þS¶›tØHŒ"I‡aæÛw´ÃưìÖcØÃÄÓ¾¶~!Cì]É]ô#å¸T„Tµ«-`)ÕJ÷6u¤Òíck”ëN¥³…¥÷VàÜï),í(ß5,Ÿ¶3õ¢9òŽÔèG•¯*—G=Ô³a4±Œ¯ÒÉ)ñx0wµ°½þ¶ +*á;ä-éue°’ÀE_z__e¬|Z:U¼ ½3䨕ŽÓÓ›oI¥3•á~©z÷MÞ Ûëê)¤»¯/høFßr+¼Ñv¤è£Éô­ôÒá¯ßö­a¡e³›Ô²lgoAÿù!ß^»ìÞM™øKE®ÛÀCŽIÝ;×ak˜T­ YâÔ•DLïP·€ Ì¥v“è~U©ûjé6.ôM4ˆaÐcË1jCèÎue*Ðdã/V¯¶®æZ±º1ÑžíéÎiO‰òtÇ”§iò(\íiËÞÛ@­ÚEp’GžxÕ‡ncÊŠíå“XûpPXÙ:]û Oч‘òwd6GADŒªFdü‚ "æ°hX…©©ì`ÚÿÈž£2[·RxÕ‹ÎT>[hëÌTpýG"B«TòT¹-ŸaW¹-GšˆÐ¡Ä«Ú¥çmÙÓ‰mt个“K%«X3ºãÜqälÉ›ÇÈ#‹r;–Œêûû&7â%½â¨%½¾ò¹ªÕäÿJýæCÊÝDú­üýS9qN„W{ÏÌy²­r©]í¢­3C•ÝÙç¶8ã°Ù‚¹ü¤2ЫFÆ1š+G¡‚˜´©úU7jzŠÔ•mŒT{S‘)£¾Š{4;åFj;tã¾L…M¨+Ö¼«]²Þ>‹¨þ˜L’88DÙ5y#…EÜû«v.¡—5v¢穚ݒÉ?”Í:ÇЗ»#'-jËŽ&RM™™•y5Cï ùFÓ×G£»ì¡Þ®ô#©Ô;µZmBn#’Ü&Ž@rÓæ6B©mü0'ª=„ÅÞÓ󩮞–òo»¨êGØ{?u¸ÛÑO«Ý0ºÍò–Äs’xNnkc(o\GÇç #Ǻ=¦9R‚#4 ôNÌáv®°3î][ø`W³•‚,„,œœëš +CP?¦:Ï´f»‚ÿP3¹›Æ0ùŸ¦-ílÊuÔÜ51“o6vwV;þ?»ÉÔôÖÓf/…¿< +¿,P­Y;©vî|­¶¢¦NˆzÏÕÍZaÔkžîÖvÖào®íùFR¿è¦kȯ¬øfWq>Sj´zM÷ìZ­Þqá?¶n¡I×^S§[õŽnÀðv½¥yŽs¨Z½°à¹:§Þ–¿½^˜šà§tϪCOÙ†íÔÖYõ¦çhð‹îÕÛŽ ¿˜õŽæj:@ÜzËÒ\„h®ãzµ ðE»^VmQïÙ– cêF½¡™BlÃÁqôzÓÒ ϰ,z ÐÓmÈ0 œ’nÖ›Ì?ï:Fm“†š–âêéõºc;6.±Voš¸x:ÌÖpZÝ©w,ü«ãY^í̘ CXk°¢ô1Gaˆ¡éŽ­^·MØfÀÅö,>3´%ÐÒ`\ B¯ÅµÃõïП·‚_Ãí|5 ¦.Ìz!L¿£Ù–iÔÆ¦8áVÚ|ÇÂ?tXXÜL§^3uØ%ábë€,€,€½ò4þ.'éx†gZp aÀõÓÖá !X 1ižð–î8ãj®…ÃZÂ2àKn½îy_2ŠÃ¸„>,·áš°N½e›&NÜtlËÆQ Ípð K³p¸†8 +á´‹û†ÔÁ‚:ºð] 7fŠ C7à ‡4ä³€óà_4&?O8QØo[Ól¢$Ó…µÒÒ„F¤%,áH‚…^3`ÙLË {ް À‡FÔ»–i"2@6¦Ð=~Æ„áKžÏN@lþ¸¹n=L–¨ØÔaРHá@Oºn°&ð1CèŸP Ž +Кf ÐÓ4˜ ®{Då¸z&R,,.AKá¸@aÁòÃ;iMýÓt`TT‡ BžtM‹¨£Á6ÏD$a[-:,gÑ€üxE )µ«.RƒC»-$CÂuÕuG;Ñ9X NÃu‘×ÀŒ\SC2jãÉÃΘcÚšgâ 9!Ƨ`Xa"W„³FŠÓóú¯fð*ˆãið¶×¸ðQy,7M ænÁ*ãÞåk‚؇) öÆ6ñxÃc®çŒ`p^jK 7çæô ´&Ã4i&ºg"- Ì¢ÃJè¶F /Ó¾Ù@¶ÌYu¹÷ÀɘkÌ´]bs€päÈq‰G#Ù#Äó4a0Ä6ˆY#''º‚×\Ü]€M»¼@¶Vˆç>gh–ß‹Lý;ãxDSð ÇD$mbœ:,KŒÑl<ϸK mtD9‘$p¶’¸ÂÂñ”‹(‘‹Y¸ÌÖq I Žë„³Õåè†í +Æ@í˜í[ç¥.îA ótMÉõ‰¯ad¥á= l7ÒŠ©;xV\Mà±FÔ‡\X¸Ñä\:K-cÃ!o$Q?­¬6€‰yV`‘%¿·˜Ò‘;JP€9‚ΈrÛ¥‘Q2âWÃé¼u@üšÆJœOš.²OØô¶‹Tˆ +‚¬VÇ5±xË¿št°5ÍT*ƒGŒÞs.*º ~g¡FDÀˆ.qxØ^W×-œ®9p‘Pü!.@}:)1ünA©ðU×!ä`+%ÃZàÒãPsAW0 'Ãd™ÃßCÚ¬ŠGÇ΢]…µ°‘Dá)Çu5'ƒk$ì=bÌ4;y~Q á f€b°´n¢-ÅTª˜ÒÕÌÒ4IùÍHÀš¿Æ»Šò”¹htæ€%-Ó–òÐ’éÂÒ¹.=¼n·TcêH”zD†¶ 1ɱ˜kWH„œP„€n$ÓtCˆÓººkÐ{°Ž‚„;i¨t0±Pa„ƒ‡¨˜„Vt·PDJN86h#)±®ððÓšGë +œÄ@J +šfɵ*µ¢±Uì n§¡Ny½EúE@ÅÆ£·t" xɰ ‹tV4x?AÅ%$AÖé,W`]A°×äç£fXi–ÄDø¯ à µñ5Á='Ú ¨}uJl(€˜"Io€ïXÈö<+0Ïu¥9@Rt~)MøŽçÀckÀf-„èÞ£wª¯ t:(ˆ¸m˜P+0'c¡@ÅT¾â"3‚ÕvqH¸£"‚Ëo´°^.>!LÔ ‰án½#% Mò-~-Ÿm¸¨3Ë!tp®†M{Y¤†[r¤ÐàÌ"ˆÌ0‚RŠÎÛ©“úŽh"ëVBª"òä_@‚µ:Ò›a˵!Ä·HIf… +ŠU4xql8 ŽZ1ñÙµGòÊ*µ:·8f ò }IÔ;ÖI'Ãð@㊢šAÄŠj Zc&©¥@ ŒÉa3d"—Dª¥0èì¬è‘žm'† £JòÉã/y(×ÐîtÁô™ÉÆ´«“å'±Ä“[¸þ •þZdÛDh»Ÿ@¦4ä%í«‰¸Qc^Ö¸'–ϽÉkÌCèô†sRŸø:{i5:QT,@ [{Šþ'”D"c‘r¸™³oà ï)‹1‹ÔAtÈ‘ $5m\R¼ߊQOCMŒÆKÓaþš¸?:汎zµiƒØÒ2' â‹l½±z§|¨ »d!â¡‹ž-<áÅ]Ítn#îè¨Ã:æÔ&®&È`Áˆô` Ó¬êé š±½º%G‡qÈEW!Zü%w66fc)wuÌ©ÝXÒñvŽ÷¡P–ke§Œ„[òð]Ý&ÙåÛýĈ\•AÝbíž©¦4æb“B®™z#*?dw¢E¥¡ w•ç}R¨‹ÍÄM±0 VG! ÍzP©5ö˜…â3,ÉA}[ˆzäYÐDp¸%µÄãw°Qv ò½’ÓHuèñ9›ƒCgdÂõ˜Qlm ˆ,2dCðÌ“º„z#I–„SB”$VÉ›k±#OEïä,D=ÕaþgIÆL72 „ƒ|X7èrdò¨!“"¸ÇS6ÉK#¤9*Ðע»±I+—ñ"T{Lä6ÉÜ8úLŠ¿ŒÚ‚ÁïèÒªó;±è +’h&¢‰‡qJlWã­¸|ÜÅ/c)Ñ@@4X )¤ÉjcÊs”û°bG)2tœ,’É\“žR !—H”Su¹¬S‰”ÀRBD£×X’.£ËÑWS*F£•ˆH•Š[Å‚[}5dÍ¢a0Ò ¹‰š…0 —ÖÅ&—!NG›l^Ï?î¦Íì(¯ê«)ÕŠG¾"A¦4ï3‡…€Ç >e µJ„{Ò·tG£©,ˆõå †NgÛ1Uûmz”^ Ø+.!nôÆsI³À˜?,dH Ò¢°P4ðŽE¢9 ¥#>á°PºQ4²\)ReräD†2ЀDΞï“EQ();-1•[ú0Z¡£ö9ç-È;v™¥™RÀÇùŸ r®ê¼Š–-e´àd© KD—Œ“M«Ø†gþÕDMºŽ|d%²L2Ø/XÆëšÅqØe˜&‡?B'‰‚žRú˜õ¬S ‚5¦Ì£ÀY‘ÆåÑÜåÊà 2ÉÀ±tNRÑÙMÙB†Ñ•‰¯^lÓ¸’æˆ6,ÉÈd† ?Ò;ȱ„“!öŒbÈ‘bA:ÛrÄüMòRêõr ÛÑå§\vîz~\SGâò8H'ÓRâ$¶+·ÔÅ‘- óÝj@ƒÌÿ éWƒi“û¶ŽÄ|wEO-ôî ß°$“µ5ƒƒá¤e!š‰z ûÒ8l Œ@1gTs™ì8åÉ’‘FTM^B¤+ŠÔ)¢!Ú”±˜ˆcž®)±>ñ5Œ.tš‚¦û lŽc£-–œO&QQœ‹ § ÍF«‰J+ïb4(ÛWS"tïÆ‚¤D}®Rh$tUh4ÛÏ[þbÐNdeìÛ øª¡‘Ôå8—CL ­mrHÃa`¯- +a +’häÚ•ÒD7 øÒÔP‚fbd¦½†Ú˜­G¹Ex´IWBÓÈvXo³X˜ÇÂÓéšAìX˜; +OSXD®ŠÆz„ô!kŲ8ôÎ*†‡0¨Ø@±#2CqÕ‰aÆ’êújJdÞÅró¢!étM#™”Ž\ÚEw(A‡µIYç—ˆ@ ž~ˆN<¦¨ +›Œ:ƒ2Tĉ½(ÎA))ÉࣸɬȺ2o /}ls¢È9@ð;Ì= €9AüwÄDBAò²ëɃÍÙ) 7 ºj4÷‚eF8=#–¿Éñàù«ƒÅ’™«Fnù¡ðNKqÁ®U5ie˜˜˜}f«òH=°tdpt<ʦ×ÁÊÀÝvY:¡?µƒÝÛ1r`v%™Q… ¯¡qF°bÍ…‡-•‚LW§üvGF˜-3Jb '‘´ f ‘ÔŒXòF$Á#M –ŒOÊ4¯žâ?¨³jŽL4s8M„’ HXÒl0íÀ%?ÀÐ;ÆI¢ÏdmA£`+'*¹2Æ jå³£>BŠœr“ÆgÄâÀ,R‚ƒSñ‹¢¤qk[¤T¶I,#’)ÑWÍ¥ˆåZD³ È,@µ“ò87Ý–†8ز·%Ù¸,Õ[ü6xî¥ûÏ"OÃMŠÝØÊ“„V‡‡bÇ–z›-‹àP"ï@€A~‹ãp¬J“¤‚Áu’“6E™‘1@Ä7‚,ƒÈfEw3²ßL®„…tG’+PgÚ“¯DÒx8½$’êKŠlá­å¨äVp$wè¤d^Rí¢µïR¼cq„Z©UïCl£¢›I`‘]æJÅŸHM{_“f´·‰d½Äòb"©3¼Î|]®B’&FŒ_¼ˆï¹pu©l29"_§ìCŒ] é‚:5žzò÷€J†:†N4„+EAsL;#‚¢H9®!¦G‡!ЫJNV‹Y¤ +D÷„X¼!9&:°4–ðh›”)Â…3d‹ÑßAU±Üø×Éí™a ‡(žìs!_%S˜LÛäú¢ž•4౤Šb„Ü“"û‚±:E·b9=ä팤ýăJæI&¡¬Oöá! ”£Ëts…Î+Ÿ ˜;ÇÐÊXÉ>l!‘ñßuªšÂ0%OƲÉo¬[¦ðpèD®'<~Štº9D±4£X"R4Y)]tÊ"Ýzæä ‡É8,kHð/ìzÖˆYkLÛEÉm>½˜<ãbŠÆ&¬É⊴ÐÈ®©­Õ-™J, +öÑB¤:ü˜‰Ëii¬“¡™îÀœp@¿àiìôسƒ3 Y{¬ Äf”®)5ë(^aÔ1öÄ6!åâaYœ ¹a À2XÏÁc9‚Gåf=g*`lG$«¯&žçJ»IUIqO¢òä‰FåÇ¥ƒAêêJHŽ.WxÈzMÆ+,5e—YR÷A¥¿fÊÀ„í§ ˜2˜œ–|D†t,!óN©¤±HVY4é,š––,„Z"‡j°`u1E‚”/Ý%z¥kJ¥‚ESÅ‚Éd ±t³èZöÝŠ‚1N‹Ã¾½N?îj)Ù{eS…h©UŒ®st¢;…*œ0£“ K©Ë”|¢cŽ»®ÇrÓÒ5Ñìµhr[8ù-)$.‡R 9E£ø¼apiJEJB%Ò¤° …ëáðÅrÑ('%œ­Íf‹ä»Ñ>’•äJ¾Š#þ‰4"Õn:]6GüÕåóbáéÒP)á8-ixÄE4e¼²!ºq7/k‰f‹á»¥E+EC½ Ãñè°Â0J•¶bJwHCMâñ›äWÓ‰N³=³`E=M %H®J72ÛQ#!K•+¸”ŽÍB™šÝ¶4[#ùl}5±„·p:\$]®!¶H·H~ijNNKZt£çˆ#€dœSEÐŒ\¾D®B4!–ïˉHÃQ“3:éôµ–J '±nPz‡„1U<œ–ÜT†Ot$ôŒ<’Í(‘b 8üLVqÀ™ò×нM~âØB‘ÀšõïöÖèµjÔ]7+m6\ò³au‹ëÕª¬HÌ×gÙ¥kâ©x%²õ"9YøV$o+–ÙËþJcúûñ éß2¥32_&’ƒ/ÅrvbY=‘$Jæ'âÄRubä…Û¥À‰Fvß±Éð§„,Ôb@äP'ÏU,=ß g°ÄR\JåÁ”Ê–‰gÔDr%Ò5%2*âYÑÌ Jè®v "€\@®Ÿ óé•h¼?žS³ÚÊ”dɰ©þb²(yÎ*Z&[%€Ž©c¡lN ^zvÖ5ÀbK6ߤ·âAÐx 4@ãøf$ÌV*! &” 9„Ò߆k‡Z yºIvèÅ'q÷þ˨A\œ@ìÔ¦µÆ ö{’Z¢Ó¶Ÿ4ñøâ®è”i†zU?ãÖT5x<Þ?òiÊ=DÚ'NÙ#’ ;ImrhÁmYÍ‚~:RI)ŸÓ/4Ž´ ¸C¶a¿JV.E M±d+Ìn®±kﺻvö,ÙóJ7(¢.ljº)mm*àp‘Î~úN€2wHÉD]Ò–ôS\$!=Ð!ÃÔH‹žQ£øù’m A±aP‡9jW¬÷C%ó||š°'‚‘Ìju¹ZŠü†.eSkxúÚýsè/€’¹`·´ÓL5ôgeÓÀ°7ŽA¦³|ÈgJ⊠  XL¤´A¥N—ÕaP ”b祱ä·iNB3J±¤jVLb§üÒ0Q÷h <‡^#®ÉÁoÊ–*»ˆƒ¯ªÇÔK|µ‘³œ-™Ë²ÉÔ9ÉÙc¶ KwBcà1!C‚$2lAg-SÚöBïúÏÉO4Æ¿*§bPu¬hÐT8ݳˆ4’þþSØÃHŠh“²Y ÈËxQ=%Š«ý¢œ7vS>Ê÷0\4VE‘ZÔS:ï,ƒ0¬¡A¦TjC/òSjøÆøiÛ`"WPðØ# TZdcñ)C¦jê3†@ä€ ¼§R£7Æ?H³Ð©w•B‘£œÎ{Ÿ”§ª±ø”2I‰öÍ(L#‰F3óßôShŒ“Ùµª"%“›VaDQ:WOëœb×X|m!W9]ÕI„`ŽÇú­ÿ®zÌÿDc‰Ï6R;ö ò bN)ù|týgY‹1¤„°w¹ø–zÆðOwô[ü}Á 'Qì]Fa@VÌtYÀÓX|LȬk_²öµ²7S/úOùã7–ø&kIžTfÔŒYxϸ|!Ôšw̱ðÿ™bÛTnxZ¢ê#½Ù®T!Ó\;%ŸêjÍ”ê†4A¦Ü¼;ª®…Û£bìc—(!5Ù›TÁ@U¤ú%üõq†£³˜á¬*¹ºè«uññ9A‚êõâ/ꟴâ¯daºœN-A±J}f|¬Ç]3º°Umsmk>ÕœÍtjMq7-Œ‡k¤.²ÖkÇ·Ò þèÔ/TF(\’)òô¹žÇpW ‡µvvgl,`½NecYhú„Ÿ.11¬{µ…zó*œÞøNTæë(t ˜Ûð<ôz•;Ї6£­¾=>Ž+úm,8ÀnmPÀʳT@aêÑE©q+^Càdè¹@%L98žµÕñã¿”¯k åKÊG_ +ŠÈtûD"ÈÍQè¶Q6‘»úœmošéÜa"‡V’à›Gó.“|]¹4_§ˆ¾îÖKï ã®æðdJ’}ÚȲ‡3L L¸Døär¶DÅS"E‘ª bW2êd¦æ)‰T¶syáYå#„,Ýh”®§™¥E`™š.<< Ÿaª×J¤Š7Àgþ +ªXßí•®y¦Ú£šWúÉ'¶kÈ.­RÖY9+|:¦Æ2d»œ@Å£œ’ÔoœlúǺèÛu¥>Q›H]l®Lj’‰þ‰ì¬‰Ÿáç<~NjBLÃà‚ÖÀ©Æzÿ·†š3ò™RñåR_ˆÍ#ÆP˜4Ñjd>ù9ëíආܞEG픟¢TÇÌÒÐãåb&¼óX˜:êßµ“F3îÅSfFtÙÆ,,…x:8êcÞòð^¥èYx{ 0faÊ¡q]x½êÍm@­öžñ¹\<øˆnLM +™|׃]xiÙÄÞl3_w2f¡º%øÐ@w._˜.oò¨Ü˜œšÏ¥3==µOdÒ0%;nnKjÛ’Ôü[|`º¶nÉ[.À7„ ›ln‚J©€ðT7XKr.ÁNºÄ°\®³¥QëÃro h¨!ˆfùF‚P`_BhXË*Ð\@Í$ðwš¼±8 #ëxÑõh¼©b^¡^Ž®ÓZÓ’ý=£`¾ƒ§9¼h Ï8÷¸„z¢cÚ¶kh¦Uö`¶†y°°¥õr)ßè˜×+ž²G ¦ã:žÇöh¹£xXàð—i(LmCŒacˆÓv¼ÒjJ¥«åj”zé`uúDrLnó˜ˆQsNÑÛ8"_u(ï&ÃÜiãwÖ¦ •—AåÊŒßVZ.xwתôÜ ½ÃJ#Åcm“‹½ÄuÇõ\V*×=×,LO3Ⱥq-ÜMLi‘PÚ=ìÙí +p»b7ñ¦º[7×–õ‚þq+ÉœêüÃ[öpûÔcMEIö„]S£‚á3¸™moZvù£9žyV7®bd}öySƒ‹”½1èƒTH—_hÄ'nE"a@]€ê‚c4Js:¶LyÖü790ŠTb{¶‚Ðu®:&Cƒÿü$8! ¤#Ôâ  +ê@‘fA»BþF“‡„ʳŠWgN6Š)¢ïhÎj¼:Àà:4D&`”«£7ÉgD­”¨å‰Æ š]Ь +í!š ±] €êаØNFÇj ÚµºcU¥ øD¶© ÌÓA ¿'üÊÇJ›€Ø'¥Ä}‹¸Ë5íÕ1·’[Ó»Ô«AXÿ9Êrm]ŠübŠ,·öÁ!“j—Ð'èØ\yCf¶ÀüŠÝbÇzÍD'¹ka9,ª±¨DÍÀÎ.ÒE=/¨o†!ûbÚLŸÆ…•ij»-\ŒÁ31Á + J8,ÔÈ «Í°þ“ÄLlËE´5%Ô†Àq¸²ÒXû‡m±– yS%uRë|®ˆÒ,ìs¡Sœ›Rð¹¢VÍ5¹B€“ð„ɘ+‰§©ŽnóH¬Óå* œZÕX#¡ÎHèÐM=ê9ŽË&lîà.›ãEò—¥Lxƒƒ¡z±€ŠÅ5êc:ª–Îùs²¾ÂÀ>stream +ƒ nw‰1Ó SºÛ›8P:/Ö¢â-*|lÇ¥¾,®pÕˆ`I8ßJH ðÇ’Çu¨Ø“®¸E/ Lj2¨Q µÙÁJ aËSdܲÀÂ~Ý0²G­EéXÀ™ÁoaJeÁê ÊÓDMÈ$¨ÀÌ6[òd¸|žÅu¦§È±dµ~¹Ø)‘k¡<¾înk¥,Ú0áá!ªkƒ8)W5º˜ƒ…ðØ».¶ßpùº,ý5ùš'ÓÜO¨7sŸEª–D¢0±>/MÈn±gžì_DŠ #p#Á-ѰEÇ%æTVÖ Qw0m Ö©ï:0I¬´ä¢qdžX§à¢4ñP-$*¦b ˯LºáűH;Ò-AwäPÁ?) ­àèt—µ´46ÅT^º¦—›üâÂR_'ƒï¥àÖ®¥„ íÔ!ó®`yIýU@N1›¥z0êSáé:SƒBê¥u&Eàßäö¸çA ƒìÁeŠÀÓ«“½çÊf؇.5ãVô%§žëì¨%5v±#0w7‰¥Ó1àfXxašg0C×iXêdÅT©_Š$EªªÀCÈÅi:m¢¼Ç‘%e¹Ü‚CÞ†§S7œÚÙ!-bç{á0á™'{a®+]i@Ý’têU`Ë«ÕtÕIçK”„ |±ÅfÊ ¦Õ jºÍU¹NÀ“¨Yv Eì%{ÿÙÀÂêH#HHJÎ\qŠ…¼Ø–í­0(iy|{1öÎØF§縰Wc1Ž·Éa®/õ4èB Û‹Qé%ß@ËÌGH¶G+iS˜Ëã°…¼^Ï­/©Ç—GÄgq#gn]ñM[çJcÀÍáÏ0C1=‡¯50d‹G¬ô°©‹GËKkfÐ9!å7@wM:ûTbÄÔˆ,Y±‡ÛÍ=O5nÙËm!uÝæVÒ®LaÇe“¨ ¬Ÿ¡`®ðÊ2AÇð佨6« BÞ¬A¶"¦¢ZÂ’/é·úÕøÒ5Õe€2æuÉvñhPѹ&Ë6±Ÿ'c#t‡ÄˆµVx)AÃ2øî!ÏpèôPÿPj:ê7}ö¸å ·¤ÅîÔjˆ{„ð¢óµÊto‡)æ—x˜ÁL\Ý¢{1ˆ….Ë@¨‹ú}SÞ¯Æ}‹¬[ÆpîÄ÷Q  º6‘LYhúL`ÃNLú×¹M< uàŸt/µyp±ÜÙ%ÁŠ%,cOJ)Øù„ Öð9Ô,ƒz„ ."FBäë<°°Êƒ}ÁÃ?YÚ +J|A}Ýaã¨×D²2uC—*¢l&dY„YÏšˆ^/„c"(ÜÔ~Ùef`v±ëÓ"ÅÊUº/#%ÈîùÔÏÛå2³‹%)ˆܑNv6¥Ã,;{Û÷:ÖÅ}A%2¥p· Njúç(3œnnóL®)v[öĈŠֱʂzƒÒ„¹t€:YÓ¥QåõR…"&è† .¿¦Þ ¶Nª’NõÿH]ȾQN¡©ˆ^rÈV:ô†ƒpÝ©¨ÐDµ@5\€ks_‡É–M3¾]…›äaí5v÷BNõUÔ›W“·¹íKÔåðÂi]uä–QªÑ·­S÷lšI/X|½!’«CÜÓ]L’Ŧ¡öÇuéÀQK&Aj¤¥.éÐek*àÖ-Öæ¤¸Ã5Qr+6Çd\ø·k‚îãJµÒã«cAÆ +¦E›žÒŠ$œ‘éq%¶¬ŽÐ©Ä‘[€ñ•uÄ/¸ý6”ƒGà nH!èf`\BÙS&HmH‚¨ñ¹dfzª“¿NEÊ2‡ºê`9šéIQlЙ=™; ;:«o–²!HÝ‘ñ#Ž&Ý¿¨íš4k,©!bÿ?êg‡* +C´Ydgi²;¸ØŒ: Qé¨ñz² N)ÈrJ¦Øz™2I[ð¼tW§ =ªF+KgÊcBÆ "_B£t>ºJj +¦l¦À¹¨Óhs; r«–d'(*Aø¼6l#¡ë19R!<¶¿ñ$ýÚõ²ùwTð¸' žyr•’è§Æ£ØdBÒ¢†zsd˾«œ$±æÚ’!-S΄¦¹†üwÞ󸄌œîÉ.Ø([Y$S;Faply^,K¦e¹Tükò¦ycð}›uV=tCw‚Ã~ü&÷±Y».·~ “Ñ¢@óŽõc ‡ -" R6†”Aä°†‡Yÿ†àöprOÐf^erŸIkÑY{·©c&×câyÐ4uu…0¨÷q·m zc¹TæJå®:Õ@S1µa#Âr„Í7ãºDqöóTºI‚]à•å‚o9`í¾Eƻŗc¹†Ç"Ÿeœ2:¦¬#äj RY¹ÿ²Iöáßù-øÞ²(X-Â%CP`E‡­RK•qt7ùšlò;®«˜Ž˜ù·HâFÑU4®¼)‹ôyÏ~Ë3¦EÕRÜtÙ„‚„¯ÛÔ,®åͤ¨“¾­NŠY cÁq±$¶…¼/œ>OÊ]Ÿæ¶§x%!;ëe#kêP®ÕË›$¸Ï0}ÈP´…©¬ì¨Wny‹9ÞÕ-½òènæf‹|ÔE ¢z-ÿ﮹OÀÌ{ +yZ¬ù˜1ø _~Nl†ïs±/G4ü•M«â¯Ô¤åÃÖë40ß´B«÷£Ñ_XÐÀ”C«÷£Ñ_Ø I™æÕ{áÑèÀ¯ƒlÒÀ†î¬Þ fèá_Ø¢õâæÅÍ Œ¦{á_ØfªðÇÕ‹{Ì ý6ø¨ŽZÜ·â¶ùYÁ_ÐÅušþvùÃèNè·ÁGôpDá/¨îϱ8’ðB¿É1)"¯5vÍ70Õˆ+ÏÉÓiñðW þù@àWOVŒ×>qËÃ:­·½ÿv?Ш‘Œ+èô4 ùV<‹zÖÐ…!;Ë#uo‘'At½ lC¾Ê-H~?ÚêM!Ôæ!äõñAòE‹(†ŸÃP=eK©wjêM2Lh¶B~“²<×ýÝ”—nøÓ’/˜¨Ú¹V½¡#±ë¢ÇÜö§Èw"PÚj²¤»Å7È+.KÈ.Nš¶Éßd}V¨[è¢I=Að"L=g9ü7Ôá%¥$$Hí…åˆÈsÔŽ>ÁÁ}Áw2Vºé¿êP &©"-A¶æ(Ëë(ÔU4-FvO~•¬RyžÉ ×’ôDž8ù*uëw-é¥!ˆZr2u†¨k!ô"ö®²¢ÑNÒø¤ÖâÅ>ŽÎ8‘z$ß´°ù+cÏdgÊP .›E5]Eɉ”òUh[ê|Ç«kÖˬ +“š<Df¢È¹ ~SØB~Û["ˆ;¨À“’¯òmç°O™àO(è~>†pÛ:^qºLÔí’@d¿Ð< µ¥Q¥Y¯n % !š:‰ÜØAœ7DäfKH $?.]OFWc¼¸•"P!öA>å›"úÝ8ƒ£ñ«t²äªÐÊP;mªlQ° AF ¢9þ"ù@yù ¦–מú¦)wF¸E6¤Ûr1‰¥òA5ùUÝçiÜ‹Óe Ó_$O®/µ~á%·åhÒêâm©àî4¥ P’~ù7—ªE%]R˜Ç)*Ô‰”‚ÏYrg¨%29µk ¡ŠÎxI$|U†NÖÃÛ Ã&Aù’ä«h‘“Mf0äüQS^ÏŸ.ßþ‰lžCBî<à sÛ3Ìâ™1ÌÐcØvZðGmŸoSŒŒæS>^t'eœ£ø £Fã;kcBÔoK¨‡ê:âtsŠã ñÀ¯ªùvE +CŸ …Á”‚ÃŒtgp™¤x8åHyPôŵ,B– ($¼"Ã!~äêÒâAèàEÇ«I'q ÿ^(§b’Ó;ô2G5é†dL,h*®?ì§(§¬8ùö /Ç‹@,Ïg%>L(aÆ—S"H“ ÛÛ„‹+ ÐiG@Gi¤§ „“ˆÚbAÂ3Š@…;1HØ0 +õ( Qj€ò„¹½0Þò¤%ö´"ÈJ_…@Ê e‰)‰Q„6ÚjìÒEueF£öŠx6B,Ãç™ì1F áêjäX´ Œ“eAЏ¼"H‘*y­B¯b\d|JhäyènQgqf[Š·P–7ád¸P÷"ж”Ø–+D>Kþ¤;¥ ¹9`ÚyÖ‚›G)w>Há牆wžÅ»cpD­C2Mù â¶ +¦Kº±øfQàAÜ"PP¤€“TWŃi3È—ô"'á;ý¤I)Âw.*|•ï='ôÈX‚Q¾ƒ›u*/25Š1¶D@¸’v Q¥Z’ÿW„/ñ ­É7¤pH`7Pa±-¹g¦¯¡ÊÃ¥d²å“Ë%³xâøBø0H”JTd‡£ivˆ8ñ£º¡a%Æ´nÊ›'Â䌛ða2ÙY>Nf‘j‹/ûÇÄÿß.:Õ¦ÌÆ¦Ã¯4J¤$´”6® Aì}˜-œ3´< {yØQÞer’nð0)%´}Rp“ÉF÷ž.Ž +ó`¼²@sb@¾Ú8ÀÕ1åÐtB¬_ºÍÃ"€”ÁR”$þ’ÅMäK¥ P +/LŠ%%áð£žÊÕ +–‚Óäœï€XÅ…’e²r‚2ÙäT›ðËlÄ>7Œ¨&ÆêCZ„ÉVdP×0©‹_ ý°öÒ¨45ÖÕ”¦f;¾"%U&Ê7´|í)ð«í܆¦Vñn˵ƒwÃÕÙ˜I!¥¨±b¥€ â<ÍçL|¯+ƒRÇv5~µ(èºSÙ1H@…òšë*3H F¡ðGÉâñýrr|Ù[¨¶ WÉjêµ¢@ŠHìàsŠèDðIaRyð\¯ž‰YÏ÷ÇflJC$€W¤Nh«7Õ`j-Mºy)¼ä¦Ì± lÉI¹Á 4ùÞc”} +Ö†ÙŽYäL|Á< šº(|¢@:ì +ȇô>)~@2Ž]d9¤E"ÐSŒù‹-sŒ# €`*¥a¬€l]ñuæš¾‰ÊÅ7#•‚Y“œû(™/ãÌ(YJì¹OmhÐ ŠÁùJG)&ÉWÒôŠ4!¨ï2¡¡¸_ÐHÈ*Ö\¥ôÂKÌÖtd+¨§|pÃXßm*õØ÷A>ǵãd¢ &EÚ`¥KºŠ$ü•yº–ú´rføÓÃæÁšAÂàKÌ‚È"ÈqCK•uès"΢¦P>ÝZL C hënxc¨í7dbDˆ ”‰¢ty¹f H¾žÐ€|ÁOè³lÌ= *ã&,Œí § (°&E ¿vj°âûß n„?7µ]¦ag†©)€{š¨0غZ¢À"‹6)Ãõˆ·…ï¶ ÊUüÕ4|¹øÕ²nC†WüÛò¶ØXdVgzð ÞSæ0LFgLÕ€Ûó£3&_æJ ?:ƒ]¯QûG r“s*Båÿ¦:¤D¥Ë‡ŸÓÔÜ”ÎÍ~Q5 Å:¨ú˜¦+”jFÚ­éùš ÈÒ€¦å¿©3ÄPxRá%BŠ‘åuG ŒÔ˜|2‚Š–Uä—¨”‘ü„Ãè¾È%)BüHÒ^¨"5¸j¯šæ«¥"P _Á‹®”ç‰ø±Œßž\¦Ay' -œŒÕø 7« U¬†F#ˆô¯[|+BŠ¡™]Ž@ª‘q2ÉŒÅÆ´R–¥~Œ/blr),‚ И žˆŠÔ ò…:MÃP{JJ‚üHÒ]L×Ô˜RûFðýë”}Ž «¨öÒ‹0¨1ev).‘¦Ž‚E:²ù„o»‘çØlÃÑ<ß’³å²ùSm³ëjÐl3yA #ñ5  +Ô˜õ¦¿º– +…° @«ë’'ŸÓ”΃õ<Ò‹Ü4NùS–Ò™®¨19;˜@~Ìï•C°GÆà 5TçXg:~Æ’Æ…©#CáÓÐstE4&ý$– G†pµà@;ríd¤Æ’™•R‘š¨©ñžŠÔX2&ez~¤Æ’J]ÏŸ/û3ãKÝÖ’^6ÉL€;C5|£^à9“.#bϸ)£…‘VtO+™ž£N©F3”ý¨Á¤@0³#$Ì…‘k| ý†êJÓ°•@uM–}x‡FŽš?¯š­Eˆ^ÅOµº¾3EÈà|èe%•â(è-9µÍXdm©ÍÒå›Jô(Å1ñ])˜t8ñÅ™’µëꋎ!å„[D@—l\9¹–g3Dz„4ÖH¾Éö¦*ÔÉ.%ºW^8Ur˜UdŠ#[òˬU…x9:‡%£RÞD¼>Ã`†)]ŽAˆ¿Ó ŠpЭš’?8j³¨`@¾3TÈC tš +©ú¹¾cU(iï†BšÏ€Š1*j ¾‹ÉÕšú€ÁEˆ<‘¢‰ tõœäàêBK9|P0ÈQ*Ý»‚ßDW‹ñŠÝMºbµÅ ‡^äpÊ¢åòArݨð'¼ù†Lœ Õ¦ho‘è$µ@/ ùPd2Êað5Ê’¡£¨£xYŠ-ŸÓUê @©´¼÷µRÆ”âèÅçäݧÁѨŒ¿jø_UšLqrœLE(Øî{ P•oºJó +. +·ˆ,Ývú*ˆ¿!RIuƒÞD%ƒý8:x-yTüø»­èSÅ9‚ EùÀ"å1 ѧmK$‚tL-ÂôîøtìŸ +ð‡N”)­Ð‘2¹(ø²8*~ ƒ +yÃgÛ”êz@€K÷ᥠ+ tø0¥ßqæP€5áå ª£Tß²÷ìÎ0œP÷q0ìPj +ßI @¥´aËU‹¿¬ô"Kfv@iÃ+S>'Õ,Kö &Íf]· ù*{Ežs% Gc?}Õ(õ\Éœ»{[âÀ® …«rfQ3´*Xã¥E×-qÍ‹)ã!°#]ò'÷Íôr¶#÷·è‰`=˜è€Õ6«xô”Ú‰€#MñY²”-@¢øUÃ2ÎN7B$‰äŽ:˜Ë/ôÈ©B'†8jr|Ò-¾\<-þ'<îZ<àºÏ÷»xÌm_o €‚ PÚrÕ9ÜàP0ò»†× *åœ í¡”cÁS…wUƶŸËBCìØâzÆ,ë‡ïꎒ8)R‹ÒÂ’€‹2Å_ô¢à ‚|JAfÉr@Üaw(]Iè€ÇŠ{ŧ%ÓQBÖ’Y;! ퟞ „¶d¶yèe”¤;KIèâfsòI@©À6:J@ûgr—Fðë2%TºljgП CÖI¨ c!"Ô…ÝÖ$#*º6<Å6|×Fpmø@µ ¦Ù¼>R^ rP¨ÉÉû± ÉÀþ ] ˆ?_'vÏù:¶fD^vÑ·þ„‚S‘5ÛÅ)2',€XÊàô*ÉÕ¬˜ «S0a–«_{£j1B;ˆ÷·GN´4öCGº#_ž„y’v‰<•uÆ­ "@r ( t]&Ë6Øä£àņ|ί `ƒ +iÚױР«˜ŸRº*9“MìVËfbDûÕ¹¹_PKæˆ[H—¦ëžÃǼ¸(AóÌÆ®Z1 ß^ìl6¾>pô )§CGßমÁ£oHOȪ´ƒ"È_” Ð'(®õ +,±ªŸ m…!ÝŒ-S>–ÀÆE}Š@þŠÐ&ðét±Ù‹r …èÄw**aRÂnèìW„¦G}"£hÉü‹ØÒå³á5)‚kWúgV*O¸®ÍPÌ߸7É~í¬Bqÿe+º0A±s?D<Û¯1 õ ˆNo_\)^Én|šžæ³YGSXp\Cù|ôùkúŒ\ ¦8ðÍâ>æ¦ö ýì>!”$§öA’0È‚, +ã¯Q`—…¤›ŸÜNÐ4Š¥±F±4V/ÖÃ~5n§ö¶â|…äaÅ“;„KîV,¹CX%’;„MîV,¹CX%’;ÂÏijnáäa•HîV,¹CX±äa•HîV4¹CXÑä´ƒ¼b²'wˆb®JÚV,¹CX%’;„KîV4¹ƒL¾@ +3%w+–Ü!¬Xr‡°J$w„ž³åâF“;(»ÀŠ$w+–Ü!¬Xr‡°J$w+–Ü!¬Xr‡°J$w+–Ü!¬Xr‡°J$w„žãäaÅ’;„U"¹CX±äaÅ’;„Y"¹C˜ÑäaF“;„Y"¹C˜±äaÆ’;HùH¼ðc*¹C˜±ä¬Ã•ÉÂŒ%w3–Ü!ÌÉ¾ï‰ ‰hËŒ%w3žÜ!ÌXr‡0cÉ +ä¾íFžãäß'Xtç 3žÜ!ÌXr‡0£ÉÂ,‘Ü!ÌXr‡0cÉ"\šÊÉÂŒ%w âèøYÔ”¾!ÌÉÂŒ%w3–Ü!ÌÉÂŒ%w#–Ü!ŒÉ¡ç8(ÌXrGW•Ü!ÌXr‡0cÉÂ,‘Ü!¬hr‡°bÉÂ*‘Ü!¬Xr‡°þöÞ{¡‘Yþ^€w00&c:²#yÈyÆ6`0¶q8áþñ{öOU%u«Ûݶa8çìÙ»»s±Z±Tª¤ªRs‡fF8whfs‡fö8whf„s‡fö8whfs‡ŽÃ ëΚ¡;‹Ây_=ųÔT@¨»šÑ£;£†c…KztgM„f: ëΚ¡;CaHwF¤ ê΢( ;‹Â€îhLºs`ÒCS!uWš²Ð‰¥…IE½º³'©³î€¹Ð¥½ºs`IwE²î,ÊjÁ2ÄYw¦€î.´ÿ éΚ٣; ëQ@w†Âî Ü+¤;£*¬;CaHwÆSÔ¡¨GwF!.¨;ãÑ +ê΢¨J¯î.$döèÎ8lPwÆé…ug\FPwÆÅuçPäÂî,Xèέº³´eBw–6Vè΢HÒ8Áug Y=ºs¨" áBÛµCs‘ÄìÑCË@Ý9°ZÒ‰0ñ‹ztg„qPwÆêÎB5 èÎõ–ÖCEºsy„ö*´¹ÌÖ¥a…‹Ó éÎ+óub Ÿä¢ÝY‚ßYXwìƒ4·°î,íªæsà^Ý9„¤& ñ6\Ø£;‹2)0BÖU?K„êg‰2CÈ:îÇ5çvÿ©ë~|вúz³I)ı+ÎfŠ„zÝÓ›A.pxKOo69qRu¡7C:Fd„:EÊQÝ ñ"Ñ´õè;ãW$¦Ši)ÊÔyw\o6¹„ I}]qqèyz³Th˜^KÊ4'ôf®ÎA‰¯7 ó÷«¶¨§R‘Ÿç¹>ˆüB®7à +P}Ñ…Þlò̪.éÍâÂDÕ=½™^Õ¢"ï&Ää ðÕfØ+Í U£\¥ªîéÍ&÷·€Eyz3RK¡6{† ÝS›Mzº‹<µÙä.²øâ‹ØºSuOmfE®E½ùj³É¡Ð±ÅÕ €¸P‡-wªKj³wY ×£”8Ñ_‹ ÌÃÓš-AœtOé´x<+ÀkÍ^‘&iÍR¡Ðš-/L¨ÍE‚AÖQOk¶à¡„ƒ§5û×Áž:lqwfU Üdº6A_Ò®]:­’ÚODŠ<­.òèJj³ÉµL +-Τ +õÔf“‡äB‘§6›\‚€B®7Ãå;ÝU{ú0 ´ãøEâ“§„TOOo6ém °wÇlðDàBm6ù +P¤÷”xj³T(Ôfè‹C—kÍ0"Ÿ—¬Iò—z4Ok6STIõ  ITIR™è’ƒŒ§2‹7Añí(qlm‚±¤1‹·j P3£Œ ÌšóWK„d«’Æl‰#,××ư7®1[Ü(X'$Pæø!4f‹éó-UhÌR‘¯1{…ºÐ˜-n€³Ç5fKÈO:QGÞÒ0øé³%¶C÷4a‰0ø3 Ú+¥zà–àÁ³<’MÙk )Ö“QIÕ=Ùù‡uOc³Ò^Ùàžªð­ã/Péß:… ®K)À¸»”ÎýçUß’Lè€ï>ôôHz˜JNÙäRTi0ß4˜ï‰„·@c ¥RUÎ÷D ,Õ`¾'z+ç{òØŽIëI.—~¡—ò‰¿C'¥|²ÄÛrÊ'Ëá‹L?¸.“{?ç9&‹"±~Ž„rÊ'L¾N¸/;k +*’ÍK•óYœ4úêµ¥uú×=%m]¸-ù*½_"+y¢ÐÏùÄ9”òÉRš†œóÉREKÏ›‹}ræ&q‰p¯SLKªç9&sNæ»×©;$÷:UÀHv¯£˜UN­C¡ªœ€Ç+’ÝëüBá^G“ªIîuä ­j÷:U[ß½NñÉœ§Ð£{˜ªL.Ç¢Àî»ü(ÊÞu”"I &~ EJü¤¹|ÿMÏ4ê râ'þ©œ¬‰žÞSå„N†âJEž™Ã@ªgómô{£¼€j0õ“'Éø³£K.UÎý$\﹟!yÉP¡j(Õ©õ–yˆ·\D•S?qJÌý$4méËJžúÁ" ¥¼Bõ„Æ+!¨ ûD¶LS!¼å!²w,ÈØ8SÞYÀ·N5ùFú¾uþQñ|ëP·žnÓCjÉì-4É·Î+’}ëüB!á XK¾u*硉Tµ57p¤àRN)ð•·š7U =LeÁéÔpCôØôÙ[ Ðæ Î÷®SUþ¬†`üÖ »0ñ%+™«x`×%ï:¿Hö.ó +=ï:ÕT‚ Ï$/ÈMz¡Qf pêpÛsS,OÖŽž`þ'Šð“CB-•órßÅžƒ3à‰¯ñƒ|©‚ô +Yô LÇ凅™^ç:͘½ _aJ¡ñ4/Ú€Ð-pDº À—d4Qœ£gWòK¤ ¯Ð¿ ð:ó/¼A}«¼49a½×¸_­t,5ž{2p¤ÅEBàL‹«„Uy‚é‚@µ8¡—/è iÊ:>óX˜T$‹ ~¡&¼Î|‘C2$™¨†W< †ÂrbŽ"Ø9HîÂ#-ÊWtm‡’¾d©S9þ +‰Ûé’E—«„"Y)a¸}ߢË .™t=ÑoÒõ‹$“®_舠@Êl Lj’€ù{̨ø¸L@žæ¢…q*²õÖ& @¡Æ 2¾M—òÐI§_Z¢|ü5þ»tü…1W+Œº~‘dÔõ ½Ãç˜\h÷­ºŽ Ö’Q×q…„ηLãw—ÒÆjôœW$Δ F„ò¯´šðBþxt¨ÐævM\þ6—<;΂«à¸É‹¥ÕøEèüBQnÜGôæ)rÞFÏÐ7Ö[ƒ¿ý”‡(€P`QzŠ¢.B…žZìu(Øš7¨¢ +Û¬wCF±’—T~é*!“\äAD.äó;óÁë)oƒÀo³|YÀÛRUלD•¤•ËøàÉþý€T(S²s“’‚w—¦ÚO"-Ì÷ps™ ¸å>ôsþ3?7ʧ¼ìˆœ)¸h] ²¯z¥žòWJe˜Z–rð (<– +½%èÉïqªHâ;>ù %@qõP<Û(ŹR©âz¾oªC)–ç«FVSäwÛ÷#žù )K)–Á{óøˆ—ærÝIÇ·º¼2!L¡È+õÏT3ÜÞÑÍð0Œ¦ ¯úQ`HÊàEVMÙð”#®ÏsNä%A8ˆB `¢7¬µ¿£«jxŸl—À ï'wze ¨/„ñÁ¢åEBî2sjróp!Þú‰Bš$Ù›áè{™ó1­?fV3}'1b|˜M—àEYÚB%HteBÎ7C8zñ÷œ!ë„Ð iÛTÌ:á·Ô©ŒR½ùH "I%«"/R5"–(G 10И _H‘©ìɶbRª—»‘ÎæípóŠäå{…¾¡ ’dO&j$ÉÞ"4 ï 쌆ñOýãR/*É&´ù‚ì8.êÎÂ׆4!¹ªÎã›Â…è…*äïlú3ÃŽåæ­óXHXŸcú ¸ID€}ª0‘‘$er¨ÉE2P½Bò¢ÞøîªžqÖå˜áï¤.D?ÇÁˆËw\àö%€SO•qJ©r[~Ç..HeìI—ÀdùY#ˆúGÅ/ñï—ùâ6ÉÌW_<êa˜ªB(/…³¼1&‡š´}ä@(]d; " *p©¨û m—jÜ:Œ FòèPÎD&x‚“Ù.¼2*†¡Ô +<À«3©Í +®W¤á@³{`Š +ÒF23Ëôà¥R™j +OCá,U‘ߢ—0'®‡-”®3ç*BUòÊ$Îá—z:$6íó!nÔ q,Ý;¬>oYZd¨sÿñ Õéõç ÕÉû Øœî`Ã{W ó”@:ÄñÉŸûï“Ð_ +¾É,^‚"Ÿ$H@Œëâ­í0 l>²¡ /)kºâiœôªà±Ò}²cÑtL‹²›“•™x£eÛ 8Î**!нžÕšØ5ädRUF Bo ^€^H +>c˜Aâ +YAÑú¢®Ñ&HýÂ÷ÿ |ÿ€¬÷ëT|êT|TæŒs솇'(6< ÊŒ1’|TzäˆðÁŠ>ˆ=òIo3ÿ˜Gâ>I<=¥·ãð‹9’½ éiuø#A$ä¥HØEœVÁÿ#e왌Á‚ÈsÐ#Íôlz̉둓"FœíHL$¬çDD BÔ˜³±¨pèS ·‰ó¿NÄæ‰^ãøun¾ìÜ|Pó‰…|Üþ÷r­X¦u:’¼[H·:¹j F/¶þL,²"%±i4j‰©ô–jTÿ¨Ô*­ÇJ©süçÛC£–¯j•×ÊŸÓ‰9V[um°Û®©(*ƒª¦³u© +¸õ8®­)6;‹ ÛFŽ…£J±¶Wì´ª°–8€~Pìt*­º{\«–*Ç¥b­ZÚhUË;b3±°Uï*Ë0;ù³Yá3‘æ-jÒd7ºÕr¥íÕ +w—ÿ£ÙhuüŽ–ØÿFÜÄÔtââ|$É**wùz™V¿» ›A—L1Ø4Z 6ë·Ê4¸ƒ°ÿ]üN~!Ý€{ˆ’xòÞ`guþd?¶Ù/¬o×7J¢Ì°ãâäQnåXp'AE…‚+/K¹É3“8ðð÷ËÅË6Ñ* b ÷Mge®Á#辇•èä€-;òÈ&’ÃÖdò³zÔeå”fõ‹eƒkS\|V¥röTÈÖÒ£‚Ö?o"ᵞeAi6#ã8U¬¥9øhŠ.å,tÊÇfQ‚ðZÓÆ¤t>šÈ–¤€+9zâ[<ƒ~v.œ0’Æ3L‹a'w¿`“Äk>ȇ7A<=£Ã€+0;y‹ðUl•è ´ÐÁ—ˆUz\2;bû¾ÆkR* ð5À‹UÛ‚T$N¢uñ¦ÉvIõÉŽhøà"l&^ª12Â`ªá^ê)Å"?RK8y¬ÁfbZ"kñ OÌPêðS—‚0°Ds1‰²ƒéAF3€ÀÎÁ,Q¬:>Œ ײÒxè +¯xüŸ´ekDç~Vbbþ³x¨ñ\¯Œ1Aò*S¹9ƒåé~oó¶Ch˜EÔrq} t”DC…0#¸|²!²ÛAxD”àKÅ&µ¼‡;o¶-º¦óxE¼¿µ~µØƒÊ€ä„_àÛÂ6cÌÜN&…ÍßãÄW®pƒr»„—¥ð­t‡M8r9˜P˜ƒp ûÖ8àrÁöÜ.Ôþrap °µ +s1Äk/6<ac/ÁéÁœõèYG@8‚à R¶ ¯§Åˆ®Æç –¡%üF ûÙqÊŽ0À3 –°™Yâ¹7ø¢ÿàƒtºl¯1VÒ2ù“КÍÇÒ©-Ta(ci<µ@\†ØñPy$Ë¥¬AðÊ,Æ,B×t¦“¢1WUY Óá™‰Øøp–M‘ëžý†”&¼œ ˜nAôðUȾÌiÜLþv½.Š¿ñÊ™È6ëxÀvK£"°Þ¦6Š«c†o À¢\C£FèOEâÌ4°fÚ1N ¦x\×0hj&ÐJˆ6Û+“'[3-zéÓ„œÚ¬XxW³6¹ó™p+m²>í”FiS£ fÖ2S%/lCîé¦1Ð+9ÉÀsYŠ 37ö…¢Ÿ žÎ° €f‚³è@ÏGà¸0 +.t bÝ35ž!•Á³H³-3tÑÎvñMH;¡#šé2p5Á_ßù´,D*¾ÈlP\)6"7Y Ó¿aÇä±oTŸù!€“ÏKP—¨»b 1mL­ðGwLêÇJè™ S¼õª«å ´OçY5xÌ:5$~Tââóáñð|ZÜkEƒWà<Ÿ^P‚# +5 ‘á,À§ +À§ +÷”JÊè‰#àèccðùwV§g „.… ÑTrmb€ô¿à¹ÆŠl‘ibÎLÈÝ„yŠmr$3ÁÞÖc8è¯E:¦u)”È_ Ì2 /ƒ0 +Åikb€/CBŠƒoŒ)„¹7h 09|) ‰Ð¼Ôås1tÚ.|ß®/:vR ›â ‘MžÇø 5;€¯ŒØÑ»@.R +ä]¡‰KÙ b†q`RàdXtð c|Yg +Ð\@YlˆÜã&OÙÈz#Hvð0>žDÞg:D‹MŒBGÚ€O„Cgð(‰€EÒ)¨•ÆG¦H.„Љì·î @¤SÈ #˜UÚ°#b˜É<µ(Ù£„Â"úck<Úƒ˜ÁÊÆçbLÊ[mC¢G<¦6=·cC:| JØ61h1ÿ .ì(˜¦CtÔÿ&ì÷Y£Ê6¦~¤ÊéÀèÎ +È<¬c†è¾&dX”¾…:|iµjè×·ƒL‚˜4`.ˆ³6d³Ãç• ÂOìVÇóàØÁQ8ðϺNï#E¤gÚÐÜhëx,á º¨%ø²£$;ÿ@›)Ó¹C]Ù=G‡R mvþo±;^ÆçCñ vt+(üÑpö²1é<';@¨]± K˜ÀχȔnQü+ðžô€§]XŸÉºAÂ’ ±W‹r¿Y<™€x2Ðrh£SÒ àÁ +¦§s¸ ¡g˜gú2¾g5l“·ÁÌ1ØÒùk¤&¼a¡ù«D+R@W`Œ+ Ô U€pá°HÊ,0O„a‘2B1PáI`ILŒ0¸'à£Âècx$çÞä!ÄÙEÛµÆ_z·@=Á¬u*©FÀ )ˆK™pA±²Q™×t†´0鞎i™ÐIÜ‚tu˜n74ŽØ Ñ·ߨà 3q,ØDçQŒ°5þì p2ؼåRJG¡gh +g¤[P+ê(Ü¢Gp<u*í1è¨ëÚàök#u€-eé|oóÄЄGRcÊrhØ85Fg,À•H§T>öÂ8áˆÅÀ?YóÞpIwÈŽ¨® Æ¬N…R±QÕTÁƒ¤WAÍ„µÐy€…Éò U¥ f(À©¸èœ¬!Ùt¶Õåïûé.%¡þ/°EeÄ"âi Œod fS¦g"ùj äÁïaS.½Ò†gœ([Q¤à>uBè[®"m1°[GCªªÆ¡Üh$‘ôÎ(X”œ„&B=‘97Sढ! +ÄZ4IX”àÌЉåÑKÁM|MY´ÙÑ;@ÀêêL0E#  ÔY]þòš8Zd³£ht†J l:=(‹Áe¬yÞªTH29š¹âÕs’Mç}Âu°zoý‚–GÃaÂ…dža´D‡$#DKM¼bm†A™ÎĸvÄ[hè€Ô\h /ñ¡ð¥l“äþy/¾€ð§ÄŸâ¨á8ÐÓ®Èù0«Ä»Ùp*–ðçu¬mt9÷ÐyâêyŒ¹µIŽPy®DDÀe‡‹Ép”ñ1ItK§£¢QºQ •ÄLtí݉´JA¢¡ÙHžÒÁ•ÁᦔÀ:(\A¨Á'¬ãåO£.‘+2Jªe6&¡g²H‡²¨âEo¡lÍ«6l˜¤&b>Lñ‚ªÂÓÜ«°[ +)v.åÒc’,ˆ%$ÉòäVÚ5ðtQ:7‡ñ‚”CüáL‘¶&›f‚ÜeSŠO ›ïͬ#“F3u®¨.Y #žÑåÒŠ7Cq´“ºFiu@ÂÀÓÙ?uJ uP¤´þdä´Inƒ3t4Ƹ<²•aEÛƒùCt]URŒTž ¶q4# Û¹0®F¶#J$ï +!Ê\Ô›tàŠ™¶é¸±Þ)T—)d.½öÑ?4Ó9TF9TÀ†Ã©% +íïhÃ+ ÍIhºÆø°v ¨î)nhih^Ôé9( z$õ\ +Û)S%s(ÏîîB¨¹Š²¥€Žír±¨> +qH.d{2•Ä3ÑàKu® 3©æc;l’Ü(ƃ{NˆÎ†v6ׄ°ž2EõÅK°c–ZGr<’:‚ÀŤ?ŒSª [ç)!@± ÓÅ< L é /€ê0´·01Ø>1ó0a[§ÍsùÃdŸCc—Ãi<¨þ˜`î!ðMd,èœ[&œÑ— é|mÓÂÜÉÙÞè®ÅŸ&CiŠòœQªEÏÖ1‰ÃÅ|ùÂtÁ¬êÄA§©»”¨â "ÿ‹18dü#nábô¥ÎO¥QÈh µÈP wK¨‡‹ƒ7 +¡&“(“'h@ÈKt‘Pår–GŽÌó/ŒSyï,¢Ä©;"NŠžÝã­@ÚqŠ4j°ä…rÈð‰W*ØO`K ž®FnÄ7U10JEʶ,9Ðg¡ø+jÕ@u0 cö]°aûÈ’=Éþá‚­Ûµ„ýk„»3¼ 3¹º¨ŠÔPJ–jpÈ!vPnÞà ÀÐLøN û€-6JF™8EV°°³Í‘î< yÈ ø:gpP +ÅâàC<Ù•?Ú¤Aä2ØoAt Ê³nÀ6©|A:ûT%!Y”M4îè OÛ1-.T`fC/)Ð6 {ð ¤*êκN¯³B—.à ™gùk߬{S@j6åÔÆ4+}Lz2Èè*åQFÒ§‰ó¬ñô 4²—h"uÔc-Èæ”?_Ũ²„ˆH%É3Ý¡äCˆ ùqá·¢Ú¾¸3‚m'A¯.Qpà™NЈr™ªK—g:Ü®e'µ[]£E"ñ épábÓÊ5PàìÀà’®ñ'm¸‰bšZÌ.…ÐÂ Ò ŸžJ6_ƒnb鶇v(3°wGN1Èb ã2X±“É8ªKò àtLá‡`ÃcèŽ/“óûNÒÀ-ºWÆ›2îKAìp 4²ëh;À‡2U‰† õPÀ8Š£Ð|qâ`¸4ì@*·þú*° +U%kªÍóL1aÈ£br8O0ðòÜf.ÄââÍ +Ïÿ…¤Œªq61s`›Â—ÓñroÎ aŠ K£ K`³†ï} äŸýaaVTÌ÷ +v[(˜&—Ñ/ ´ÚCoÅÁx§ë>Ð@0,2¸¤L|°VÅûI—Ûp{‰Æ…œà4àCh$¤dJŸÔA[ +)ÝìiÈ^ —Ÿ¶AwîÞ‹t•Á¦*®Ê?ƒ®×uŒ(`m;t*á7¸*À¢ë$Y’¹Lƒt¶±°𶉠.–Á€€çõýþ5º<ƒ¬¯‘ìƒþ Zó—ak¼cõá9 +ØY ¨ì šÀf!/õù#½Ù’ ~?è ]û. #¸èüs‹?É…!Üö±­2âj€Ñ*Ûm°Ë l·¤ê<Õ=Ün£}M|×T¶l°ù€"#žUÐ$ᚠVGÝÑâYHÁ('×;¨`G«+a¨[бÅ-F:ÈÍŠN¦Rô6Ñ-º<²x¦P ]:¶p  ÓŒŸš¶tªuš‰Öz¶7ºI0‚˦ +€ i7wLˆ¤P'Íb=ëüQT6wžjez´‰oò@“Û´5–ðE\&°˜`Òb“½ÒÑÆ­#ª¹tÇGÌî¦üث狀Ϧ&wh`¨4q•­Õ@ð8ÞFƒYÁ&0i”Kd&¦Ï'§ã z]P†àôØ™bQ) L³„…²¨¦ÀÕT“dHPzaT“78 +(È\‹¬¾.ÑD¯Kx÷Ñ6¥Vl0¯êˆHà_W­w÷8™`Ȧ€æ›XTÎ"K@(FYƒ *”Yçq2 +Jd.ZÀ²à h9˜©ÝÝ4$^Â÷ÀAcHR<œÁjÁEO‡„tpÛiSm¼Âû+Rd|µ 좔G\%³¿r?þt äÒ¡B ¡“Z„ö(<ædñUyvTAÉA½Gq׃J5š‚Pò3xâ=¿ +ÉEm~ý$ 3ÃhÜQÌT…¡„'z ÔŸÀg +¯".ÕÃج=ó(èp¿¯‡ƒ±YC÷@hãòÜÙ˜®‡U¤:d4Àñ +$?ƒ›q4Daƒ ÷wp•:pƒw¶Çj4[šh~ò¤LôîÖ£ +þKoÿõ\ÚÐ…NމTÈTQ{3u|BÂI¸È‡d±³áR¾Ÿh2‡»†M3©.¢t¬€òL¸{¼¿r({‘8`o#÷bb%6ÐAøí±3Š€¯/A6:y2Z™P˜±uI`N}6W¯|¬DxöÔså%oV¡–àR(Ȧdw€ñšBÖ&Lf<ßæ–Yô(@¦¤˜\?C5¨b ºíÛI#ÑU. ¯¨0ÀåȉËkþP—Ši¸ÑË•¦cñÎ$ó4\_2@zÈà )üB+õ®Š]ô©_¨;ºÆ.ØŸÝÒsDÑš!ú~íós`”ìs±Uj`ÅZb>Q¨°•VÿF¹êo ¼Jeø†]«í5š¢ +ǯ¨¾*õê[â¸R|[˜N¤GR0ä‹1-Ž#S2ÀOÀø/$øQD&Oü_¿¹~jhÝC˜ÉKŒ#$Àœ‹Sà‘_>¬e8,S§p•.þ—ÿç/Ô[+ ªâ€ó(¸Ø¿ÆáÝ¥ý½ý«Öw4 Å4üïǦñ•Ç¡Ls ̘]ö¯’€k¶`Vd¢«N1 >a%Ò[w™c>µ +¶Ü­>0z—=f5Í;€1R„ò]¡Xÿ»VE­Ø2ˆÆÉäj‰…Äi½^|«”ÖBBü‡Á}ño!‘Oû‰'ÕûKÁµ%ÔObJÌ<9Y MŽª°Ú 54MØï¿ÁƒÕ‚+´#àä@ÄÅ5(kË;ü·ï¾rgâè?¬Úc± ×45ºØ sDßø¦2B*mh0øß_ + +—¾°>îüY«´Gvêßëøƒ ™SézƒŠ…ïlêLÐZH3ô·Šøºåbk¡ZcPƒú …«õU Òi’#y•9¦,œUÛU&ãA‡½=wŠ¥×ô)¶«%iz¹[í Óti$±pPlu"z9î´¯•ág¡á‡Ú~‹7d=ÊÂ:`£sT)5˜@X†TÃ1Á©âN¹ w°Ã$ÌÑ ¸PIìDÇ/j”Ï‹_T ~j]”Ùà•ÇÄRb$1% ’òRç•—þó›$‰ýÇÇv¥3óiÏlÕj]T­T±ÉdÖÂnÖ¨Âño*Ðib—áb"ÿ*«}Rí|f/¼VªN]oÕÛURÁ¢¶ŠoE̶¨)çã3%F„ñØñL0"ÛnÖŠÒϸ½ A>S«0røë‹£Ø™¿n%eE‡ÐB^Hy©þýbæÿ—¢! ÁWÁúòA±OTdûžy`h9%X“­ÊÕ +SišÒ¼ë“xño‚–3 šÞ˜žæ|Ú®ä«Ô÷ËåGÀ9ÃþKqä߷ê2-ô”¿m‡ÿ`1´¿,ÿ>:# ù?*¥.Ì?`Û(Q-¡Úæÿ‚¸ö?.³(—YH3¶â•¡)e@aÚÚÇ$—ýnç?\t$æ—àòelÍú%¹üB I„N”yŽÆw:4eðRæ¿_Ì¿‚Ñÿ›e:Mý%êF¡þ/I÷«%ÝLå· +ÛöÆcç_%ëþÝFÅ¡Ñ÷ã6ÃÏKñ}—ð·˜'ÿ4âaå ¯«èߣh®e:.8Ø€ø§ý=$–B÷ÿþïÏÄ^±ýúUj‘¸áò• þfZî‹’˜:b@ê¶ÿ ™‹Ç9¸ ú*Xº¶Gã±Ý`¢à­V}›&òn3/õN󿇚×< : Wý_c°¹V£™8~.–¿ÿâ°ÿ6ûœïÏBâë%^¢º þ"<Ã1-K¸.â(döKäÿhÍÈT­Jâ¬ÒjWá’]ºŠì¶+Ç»™Z·ŦÇúÊÅÖët4q%â÷úa2ëoE»Tkq¾A£=7Zÿ‡Û¶CÁmšÅŸ*.ì¡V/ýViuä +¥v è¢Â_•·Øf±ÚúÇ5ú’ØvA¨úEeÿ½Tö¿]E`Ü3PYx'·Hˆ®sÿ^å¤U¬·I}ëOð½j©b5šÐK Gæ½™wDKîFÖ¬«Uy¬1ú,d¬ ñVý?$šõî[¶Ñ¬VD{¢œ­F§Ø©Üå*O­J%Øu»T¬Uv«u*ÿLÞ?œÝTZ%¶UQ7åÞ§·Æoð¥ÓæªN«Y­4ª^ÍÀª.9Mô\(B’öÞ/gÒ—ðò@½+ÖÛ=³9³ù…¿âsñ1´áŒ¯[—mü’Ï/æ(˜£:p«ô¹¯Ô!Œ÷{üE ±Ç_ñ‚ÿ<{üãŽú_bøßb*<Þ⨶kŽ + oÕ8Ni£„|aóÀÙÖH‘t¿ù®ëaüEÿrÚ¢b Ï/òòúœ9\ò†D~ y«R—R]GÿEP~”ÿF‚òˉõ¯$(F@BÑá P (:¤-ú×û@£3®ö—âÏߺûôŸŸ¹ýú»éÿÊûËB£V->Uî6ŽÝbþ›o1ÿÆÓ)pfš“K?»’¸F›4X`fóš Ï’€ +¨«ðdeZ7‰æßªÿfâ•" ü"_9ù€¼#¿HØ/ö/twûOÕ0Õá5Lõ?SÃÔi˜ÿDú€‘Îb¹Ñmý’2ÿå$ú_eCðñ.RR•tþ/”IÕÿ@ã€ú—ýF¸NY A%Ûû— ØÃïÚÿíÆ4–‰l£U¯´Ú -ÑüK£6#Å£À¾êr;Ô鯸[}¯¸ÿõ|HdISc³¤EàÞg²×ýˇ_–É¿‘ò\³Òb·Ö¹‘Îqõ­YóNxC>‰¶´=ŒRu¤Ù`zÍ|½ì'ט¡ó€)L{ÂY<ŒPbW51u-çO¿­¹h„KGJÒb¦ÎŸ«ŠTÑA ´ŒŒðBabšÊî]î$Ž*e¯²\~Y©Õ¿ã'5ôiƒébuï‹"}ÉþYÔÀ‡L­[ñ†—?쟘V¤oÀá>ËECTYa%{+ ¿]®¸Jb‡ý)f‹µ“÷µÂ6j\®°¢¿äœuµì,XËôˆUL¨£Êut³g@V0¥ |s£Z0}oò¢’&tESx•Àx)S®cF×±•l3²’c +³¢€©C0õj +˜"Du/öVvqÈôÀØüÿ‡·ex`Ê_áó@£+btC®hËÂt‡Õ¾=‹‘jáRp·üZªXâ ë܃\®˜R=•r_á?R=B7 jj¦¿\Ušœ•Á=“ê˜JdP\7ýýÐýÞtSÞš¡´ +¯žDM\®8 +°V-€t¦X­á¡ ¬AMC®iðýJq b]z5L1¶é£iŠgó hzGÈRdš¢¢E³ Ê0 +ÃÚÀt ^Yš®áUõ *ç õ¦` ª‹)8Ò|uo +N`¾bt:2,Si]®lóýò+Úþ)3¥“Øîàÿ÷!f{3°©*…Â#=ŸKOš}ï¬ì÷±ß*ÖŸX9'êƒz U÷û)0éµþ”8~ýs`RUÞ^ð(ºf?î6™|É\h¶‰³êS˜àÀžã[Â@}ï˜Bš»W~Hé—j-™ÚhÿD%ãàIæ¼t`¨ ók|_Ï5zë¹Áj6«å8½Õœ`5 z³{«ÙÁj&T‹˜œªÖ[à ÖÐcfo«i1³×ƒÕÔ˜ÙkÁjJÌìÕP5#zPSìW¦U}zîø;æ‹E+> ËvHP°ÍˆJ‚É…D‰+Gód‰•ù,…³±0K±8‰RØÿéªÿ¶±"šd<‘THžÉ¿Ë„OYÊÆÈGjþ=÷mlN<:àS2þöHÕ8‰Ï¤¾WúD¯A7ÿ«Õ(UÚm6ÁR‡Ñ>¦ŒLUÀ^ϤÝêüÛÀ[µ^ì0e‡$¼œÁ>2¶õÚNü˜ú½ÚyN¸óø>ÒiDõá¡Áâ©Jë¡Ò*N‡ß(¢ÑãWÁŸk”ºoLLÎ;ExJüÆç :û=u½W)W»ol-íF­Ë5‡…ÓzµÔ(WD®N65áõs\ét›øÊJ§Â6-qЪ@bPž@KÞ©~26«Ä^¥ýœ8*¶™ŠXý?TC¤Ñ¨…®Zìw;Íng@›…‹½Ýïl’‘ëZJLýñV«³Ïólš­êC·#^ŠZH·ñ¥Vq_пT«ô\­•[¾|‘¹G|…:Þ[WSõöÝoÅV{IJ¹*Wý­JÕ…òvL½º·«|&íÀ¯)tªu8Ô!€Ã€Èž{0„äÚ_„¤Ÿ]c½Q›²¼¾Z£ôÊ´ú!Ö&j~ÑöÿäêÕ¾«j_«ðˆÜ0ˆ?p'ÿáƒ^ê¶;·¿ê¨ÿ›¨ØâoC/ªÊ.¶‹`mvÍHÇ°èø—Ÿ‹cHnþ3•ÿ†SÚ~üý?˜ÿÃÇ  rð¿|—çuÕI9Н¦[*<‰ÎeÚ¸Eÿ9Ì6ÿùOSamðBž+ ³QóŸ]’©ê)ÕvÅv [ÑÌAëû½ZƬ›—Ç+þÃæÂ³ë†îꎩ©º5hu EmþéUyÎqËxht˜´[yìì·ªLfU½mþD¤…Çn«TÉ€uä— çú§§ðVéËLDúÙy¸?9ñ27ƒ ƒ]R幈ãâŸÌf±\ay»Ùàͼ»ûb­Ú½a"$i"—bƒ24r£ +–•›Õ”7©ôV"Ýí4<ëJÅëR< ÝcëÙ-ÖŸºÅ§Jâ Ñì6ƒõ³­F3ݪÉI§Wæ­™]3aÛ.'¹è. €Ÿ:êÖ*-ùŠøC1{<­%Ûƒt«óÐ(¶Ê6?lª’¬P¸é#*±àñwÛÕ¤¡*µ“Æ ‹Ó8h´«0_üª‰™(C7QC´Õ³=®€5³Þg¿7‘~ïEeQÁÊ×bšºÿ„º›( +˜°ýo´jâ ï݃“Á½8™¨¶µb§’xO +þüz¸Ó¾½Ö¥×F·ÃÆm15Csâ稱‘ŹXµ%7pá~§ÒTÝD³Aíê[·Vôˆ{óÆ8C àšT]Þ›EF€J²:Õ2›Ãÿ…YÂí¨­ß*‰“ÊD¾\íªµj‡ï¸jéŽîu,Nh¶Xÿ­Ø>–1a}¦V©”±e€`óƒJ«Ý¬àÝ`3º“ÎÞV½\ùã¸RjÔùºÕUŽa¨áîÆ:¨ëŒgOõáÙ™wMÖ…®ZCw‘­Ôjù?:åzG ]FÏbØÅª­¶Ö²Ù°0ö0ÞëÕö3;HC Z¨5-œ'úKá6ƒ{ÿf€"[EˆcÞeû²ÿ£Ùhu@£N·ÛL§Þ©ü944cf9o*Ê@ØTàÀýVÁ%GÁH>JâÑ»W(ÕªMvºÀ8ò;‡OleœýÙþ‘ ´h!K›ÿîbŠlæ%>WÇЇÃAÍa$Œ›gSœÛÆo•V®dø4¥H’×ôÖA±Å(;›_û¸ûÀÀ_h°ŠG@‹¼}@Tc*Éðgí¤Ñ”𭇝Dz·bè øP +ÎÀÓ¤6j ÿ£J³[k{Ô6HœXË m’¾ñÕû5ò ‰·ø ¦a:¶ÑïÔmøtÚ0㺊¥J¯÷ˆ¨[š×1T—ú®Ò§æ‘à)qçŽÉ4%|p,… ÂçÄí¬Zùm<“¬:þ 1ãëãnÈG!¸YDj¥Ý‚«êAó…0§ · W9ñÄr™KGÎm D±VÆ7â× +Z*ö8ÁçÏÕÒóA«ñX­U¼Ó«k¶e÷üŒ NJ½‚C7£%þy1ûïÈ~³XòăÈyæß*åÌû•09z¢¹Ì•aœ, ÄŸ&ì5tœâ׆ڸ¼4_$Uµ»c¦eAäÚk”{å¼afâh­Z¯$:Lž*QÜ @ìR”×£%õX¬wª ¦†9…ŸR”’R$]Á©Ð­Õßå‰ûÙ×h4'0a³Øamwìx€"ЖDþ˜º 4•ÖVN®)>~£ögbVmô¦çË3$9–ß÷Ã"»EØõÄ.8e ÚM"ÐíŒÅØ„l£+Žžßëfƒi®ú¦dMxü<"a:®£ö¡Ïç”AËNw›x>è8—Øì^}AòomuØý=ä$ÁS¦–oˆ$2ðòyMôó“ FÔš` +"6BÍ!Ü(8’šÈx(j5x¬’€# ôÔÇ{Dîp…d¨Xà6Yª žSè8 '4 'ÔÓhåJØá>Çõ.1èGÔ9–ÏCoµ,ȨY.£É2ª*+Ÿõ†/&ªu”jÁjPj8ï>@ L<½pPCpÝ‹«a8 µ¸ Hàú¨IILp—m¸0ylåz±‚@?$Z·3°åÁþÂàp~Åâ| ñÂKã!õPí¼LÏ`DíæÓÛkê¨ÆãcªÛ®0¡<Å'àY{½4"óuH&‹C®>DïµÊcgèÊFsèyøQù#·|vµ?Xí5ÅV{@½–73 j“!rµþØ4r«ÑPWÂë¤ü{©žzåÊ#à³tÝ4Õk íú‰€08|†ÓZ0ñ¶ˆÄŠÙ§R«œX+6S¿ è«R™¥¢Ð—Í xžgoòí==_tWþ–E’Uš>·7ô£uÒ®5èn€äWÚ`ðH‹ê ß9È:ÖWZ«ÕÄí{|’«-QŠ~)d«œ±wvΤŠqRHX=7»áJí×j“‰Éõ>b2Tk1ÕjWP‘ Þnï5~c_ïÚ•'0ׄ >ájL€x;%¥·˜âÙ{ªTj•Înm9f®g>kû׳Ëç+“KÅ‹¹m}b>³ÞÚx{^|ªnFç¦&³ÕbªýÍ:ÝÌ[ã‹ë§«{ÆÚâîɽõV·dòÚž“T c\QÚ¹—ÜÓœòm}é65³¾<×l¯·w´…‘äúÒîhKTÚîdž6w×—Êq¶º²ZÊ¥R“O=Cí–/Ùxv®\´¯6:¹—›Œq5?—~kì¶štžgW­ñn!g|;ϼÔ&ÏG’¹Geû!²³o¶ûhŸ^ÿHŸdSgñƒÊõoÖ—_ 7ë‹íÔÛln.Ù-Lm”G’¬ÂýÝ~7÷xsngj뵋ÅÇÌs'ûl_©pÜOäJêîûúòÚä9õæÜÎÞ>Ý6Ø_ï¹­òÖhfÞyù–>ž¯Ó.ŠåîHÒ}™š-åKæáTöÙ¸[ZN'õ‰ÙÌ÷¹ûÙõìäi![éάžm?/•JÅWø«:›Ü}¦‘Ue¡h·ªßî«·ÛåL-¹69ßšýÑMïO¼Ãü§×—¶Ÿõ‘¤µtv³ž®—&ßfWö–ì·+UÛ^h?êéViK}]T½K¹íö›=Y±Ïu¥¼XÍ.Ùþª{+Sós•LÍ>x£\î&׳[Ëãçù9×l³}Ùº¶ÆWílãvvù¬|½¨=Œß`·«õ$[Ъ53[rm[‡u€ÓjæuÚšç¨yVÞUÔ›ñ½ÜBqy¢0:{Õ‚Q,øp‹½`•‘¤ò0¶eàß³«…eþ×òy~‡ªgçò÷Ô™v©m1Ô½PfWWósZníi…÷s¾²¼T~ù~‹;éM˜õ·Ÿ1ù(¬RfÛ›À?ujå*U ,3G3¹;u®Ò^3¬+륔>É½ÌævÞóÅâä·Œõpzè$/NÓûÙÌAîñ¸ú¾þ~³ø4’Ì—'wÌ+«|•¿SgÏ2ÆEz¿{9¿ËV_¬…¥Ç·äS!û8£2®ÞÛöQ¹áç¿¿í¤÷wgv +¹éòÁFšpŸí~§™:œ];+¾Ó‚V-§¸¾tÒKŸlwº½K AV‚ƒØˆ‹Ö¨èꘜýlg$™¿*'Ÿ´û嵜Rø±®# +,ß/r ;fæf3 ÷6¼WAÈÊ+6‚0gí¹ÝE(±µÈpÚÞÝHßm«ˆ1˳ͥûÂÔãN*­,Ÿ\iÓßn—i"ApXÝ#·R˜šhNgŸ­£×üìnªàc*;—  0Çù2`è:;ToliãÓÙ§ç|Û^*¥í+í<¼›µ³@ßcùù¹7jKÜ×ÊNv$™>Ù+Ï2 +³êæ2»—¯Q³ÅšR½Kû‘š¼¦hÆ^/æt +Óµ¥BμÒfW7îçG’þºØªJ…|δ3Öüþœ”ºy6‡ƒæî›3™—Nù-S«Ÿ5Ò'ÏßX;³^Íü\ã»V˜˜·¯ÓGÏ“¬ÙÍDÆšÝ}&j9{œÜ´ØlÏDóg›‚„³vnNôÂúÓÊøû܃ñ|ž>M–ÚÁz飓ëšóR›_FŠæ36Šÿ½±­,g^§šÕÂò†:%Ñö«£™¢ ÆK$b­*ÝüÔÊû¹ÏiB_&Ouì'6½ÊqÏwç~vi«ýÈ(viŲ̈ÝÚuúø~;Ë¿ºéûõåÍlŠU¹?cT`w"£^uïÒÇÝÃÿŠ•coë­Òâí–|>.—×ö³uûèñiJ}¸=Më£ßò€ÓYu#»»­*ÛêŠRyX\S禲k^Ùªßb$é×ÄRø™R˜Å†øÓ:ÞÕáë +µd¡,C¥—ç ¶9Ÿ;Òy¨²Œ•ágn$éM/•¾ûýÐ(0^°‹uoò«^‹%¬³9À)yËMãDF’¸LZ0LÊ>ØÜ;²%ìÌ»ƒHL9<(þôú;æ£x­±Í|Çe¬ù Äê8=‚býiéÐÁ1ÂÓe9´ul÷ƒ±µŸØˆÐ6ðQ¨ Ëï—p +‚cWåÿÄμ‘7"æ°¹–ÕÁ[BSÆ¿¼iÐàOB Fùã#- ò®·*U"…&÷k…ÖŠ'G€cÅ_3TÞjè¤z\!ˆ…–‰0Y v±œMÖ™p:4(VöOÃd·»ºêc-VH¤#ŽÊ’7Ãx’â~ö±Ûƒº?¾ ÈŠØ3DZ(ˆKóŽæÇжÄ;CD-qŽG–£Nïã_~XNþ¹ +Š~3铳za}²rÂ$ýGMfnºÎxåÓná~ïr±0:“b\ Öån?ÿI.¹×õóñÓ§lõön=_z}Ÿ V&‰fç ^‘ÅŽÙsTg˜.Thp¢¹§ùé5ý¶¦ø<. m)ãëg“Snö¹{t•ÛÙyÏÈ ÊÜUÒGõÜþúñmëI°µõ758Ê,ê‹ß•ÚÝòü}¡þº06}͔гf¾4w²±æ´yIoT3O¹ÊL~Ó—­@RÚîº>`¸öÃÙ—T7Yˆ`ª)è¶n­Ðx$ñ¬§ƒ ƒ5›o,ìýHü˜¤Ä¤uóêg”“!T”~R9B5áRŸ‡¡ó°4R™ºïí«¯¡8µTk“ïÁiò•ËGÛc}8ù]ýwi¨H }jóGn'cM²¦2‡ë×3™ÃäMÅa vœd]Ñ~ÕÚIå¶^ì¢6¦Yà8øÓõMû¬¶{’Þ?ÝaèÎN'!§?‘8¥‚à¹jY3ÞØÈÔ¬§k”þG’¾üß;ÑÊ~nã5YaÇëpŒ%ö×\g£9öຳKÆ÷`·»1JÊò$Q˜ôqm}–µ~zWKGkûÚúé¨Ë5Õ“™ +Ö«1@é×®^dzÏ?FÙ„ïîÄîߤØrSììg^÷f™"rðhxdƒÛÌ«¶2êð]Y,¿Õئ퀎le +Ëù)¯»p{33^È×»ìTjI÷Í!Ìšû¶píØ¥ÝíÌáÁ:ã—oßùD»—Éôá÷ã3еŇóø1¡Ø¯Ý‡e·™ªm´÷+­ÐÈüT†Æþê‘G’JÖ[­çScqï| XRÖ–îA»Ë*nvKê{¿™ÙÌÝŒ¢Î¶G{p}›v—væ½'Æ{ªšF],?·ÞÛÞ,ÌLÏŒ\3ýf®\gÜé¨P¸›}†•êëË·õõóÃÙ‰ÅçÙã*c~î â¹D{ ›ó¹íÖÌ=áX/ÆŒæW©¦w~ wz5+=ì0ƒÎ¯îûŸ^i"pz™*ØxÌVÛU ¬ +ó×GÊvþ=êq-_êöp”qnqzu&¾ìÔ°Ê¢êŒ2™¿0}yÐIï\ªeÚÆ•ïå\ùÍÈ75Æôô5%—Ý'f4ß]M‘!€¬gç+æbå~¢Âá´y°©¥ŽTÖéqÅŽ‘$øýÔ¹ÉßÝ&¯ÙäŸF×ß3·SÇzöðŽQ]ë[’AÂÝžó”X¸ªe¤Ø×¨»s~½ûÄ$%û|¯yäÝTÓ^Öó•üíþÓM–€àÛÍñB6}óTÈ®?m~[Q·ÒîÂk:ºJzæeýìd«XXÎu¤Ù0J<>¶¾x^yZwš­;´KöŽÂºÜ+†EÏî”ļ`/˵½·ÙU{c“ñ—÷«¥Ko£tF(óm0Ó2ìx™X?{<éJ}¯ZÛÝ\ê¨<¿¾øýåUÎÙ?'ÖX¡žåW/Þq}OƒöšycÜ/þÉÚÂsåö^€ºbÈàØÜïæ6oÛíÜÜC!¿<ý-yÊpñò=ó¶¿jöâËác_¯W )-©SŒÎI&ª,äOZLÙSߤ¸Õ¾¹ßHFwÖ[ã·Üc£•Š@X—qͧi¸Û¹(d×tÿøpý„ ±$b¾]¼TÍ|}Îm¬&+LÄp-²Á–ήÚ^·K…©­ò9(—?€F\ä*Ë· *tg}PÜòè3SÓŽÙZ:gRÑÆKz_ÍèLÍ^{]_^mŽËgQˆAì¯ò‚E¥=we­žù´9¿s„Bí+áDo ÚI$O+ìÖó%³ÎFžOMGk2mïØ\¤éÇ©èQäwœ¸.¦˜ô¤<-îÍꌓžLŒuRhOû‡øžñ]é°C|RO+ÚZá!Õ½’/]¶ÌÜúfó]Tžk€@g"m\®×ðâK³+ÛWÛt×¹ÉÔìõo¨Jð‹L .ì™.Ћ£ÅùÇå–·RÙ±·9­djµæ}H÷qLbÛùeyR–ày}H׊¸•‡Ë%}ÔØíäæößËBRzíz³–ù Ž2‘/Y7L“mòÎÑfXØxß<ÚEEyéñmb‚©í/–/ EH{ŒbçS¸Ùl”>2ÅÒy~vr–ðv¾_½Õ=v w¾±‘ ©¨‘G’ÞØçë˵´,ƒ‡;;Ž?wp„ß³ßóî=2”ÙÕö•ëGF-aI+S‡Ó— ¡|_¨Ž/.sVT*ÜÕ,F#­Úº}ñ”O;í\}Ϧ¶çϲêé[{©²8ñÆÖ|4-¼úþ†R$ÐäµR%H-»iç¡ù$±$¸W‡ÅM&ë5”¥Çn¥&½™Ü‚Ô»F¤IZïª{ÌäíãBaý‰!ùq÷¤<-Tz ì1ô9ט<²¼—>ž[gûò4S—GAäÌ—ºcwig>5¡B/ƎꕌñZ.[g§7g޽–ÝÌ>_—Ç@Ã[_>Ôos;;ËcÞeq¸“Ç +ʼnüúÒÍ);íÃYE›{/1*õÊxîc3}T3ÏD¸x±Þž¾Ëílë íÇ3Í(‚*ní®ì“»n}$ÉjfWrO¦5¶<×ýQµVßgòL šy/,J=úä‘&A“8ks¥â`bveÝË¡ï›ÈMÖ>.7–™4Þüv;ï7ËåÒÉ¢Vœ9ÈÔæÕ“‹«‹:Û—NÆ·æQ•ï·ÝÂýM÷¼-&Q7š¯Ï¸òf+F›vãqaþœmüéTºþðÔöh[ Ç[í y äcèöŒ ¯·]ÀË$#k‡]ÿ+áØyúäÔ>ñaç¾®¿ì²•¿L–åûsÆ¢šJ;­,oJ6QVfrù$7S](-Ï]îdÒÎÜô7QekÁ³ê Dq›Ã%¼<¦2¥ôþÎ&\—>]´À”Çs¨\/Ï/L{]È¿$ y·QÍß^<Ÿ2‚3QýÞ:Ý¿~áf·ð#¶ïÂtg©‘/YÓffozºj×·gA[£ßß+L2tþv•Ÿ¿tž2ƹ>/í~õvî)}’kÏXï;ŵ¦O1åjY Žçõ2³ÂÎËÃâëJî¦z9.!š×ªõŒç¼Åu¡fŸ×Ëó¹­Zö<ÄòíðÇxaj'ã°}9¸škHëØÁ-2TAÿ4ó'yÓ§Œ‘¯@pØ,£ÁZXH®\´©€Ž¬+å Íe1_¼™K××F +÷S7†¹íÑGÅŸžèûîvikóÈZ¼8}`k©¸ˆÈPS‹må‰í>ó¦Ù?d[½µ8~3”k‘éÞÍæ÷f]vêfçØ:içK«›¬«Ó‰æ7÷4ýÍ}:g:2›Ù&ØåS·é“çRæøÿV=/½ k\“ÇÉž~aÏ8Ê`†IM†òœº–^L|>Ú&ÚÜ r…;Ìukü^§4Á=ÁÝ}šî5êÒs«ñVñÛïTEb§˜ˆ¡óï÷ž7‘²Yð„}‚>DCÊäR`sN·:¿7Z¯É]3­A€:ÿÖžœv¡êýsDĬk`²„˜vÌ§àØª—Â`š–ZUðJ]О@²‡z‡w磦E9ðÇ ÐĤ¿õ‹Â‰Ý“Fsðþ‹TféR«ñPììÿ¬´B9%ú#¬„<>Æö_%à\ü"ûÍáó5èzäGh|h_áIJŒ¨Ü*³ý­>V…{÷ØŸ'«?e ,|¼µÈ-úxØŽèÓÏ/B~ёω„ ÕO‹ Üø(Úhô i<¦ÅÅm‹Ö'­ê$³<¯ü,® ¦;Œ wªužêÃ$Gj=tl¨hË_üÓoø±ƒ´ëÅcö[GD “Õ~x@Ñ£° ~’©˜ýÒÿô;#!èãV_¾ Ã;•“çîÛC½X­õ‰¼ œ)ÏdßF¸Óvp"E¾÷g¯°ž wU#c³D}?Éæ¸Nfˆ”Súàž,TÑcýD¢0ň †>Ó`?|aâ2ÞÃV%¹Ò„²Ì›”,´Ú/P7L‚†¨zÀˆÛ–œÚ"þ ‹¤~ÃVÍ ˆP•)‘&ÛŸžÓyc4dØIÈ ûä™7ÁŽP¢ó\IðpÔÃb€p;ñûs¥žh!ì‰Qùùïld¢Ø†b?¾GäÆM%Øiƒ.Ù¿ÁÎþltM†: Æ·*´‘84u÷šWÍ%Ø`^Ó:›¢Ó€.J•D3 µâŸ‡·Øl2¤"žØî–žaz[õfð»¡Ñê D]6»Æ£?|µèÖ_á©äÔÐÜ¢Ôª6û§…ðˆ;?ç•HD8x[)•mUÄÆõ«ÊÉ5P±ÊôÍ#–Æhk³YéO¿ „Ïà3,ö ÇåŽ;Åz¹ØòŸ^b…$$e=uR|ëÑRý'¦ƒÃÁ<èÁ8ȉ$¾àüä’Èð°ÙUóÞž];{XPf÷ægמ;:ü¥ˇ‹º÷áÐû ?,ék'LîÑÝxÝ?Z)Â-Õª÷U›]9²žG§¿_MÎí]äF’£óiýdtî®|2š¬¨;£sÏ/Ç£³«¯…”¾ë²?6F'Œ¶þí‡7ÖöïW•Íûí5˜œC·•V¦›ŸÝÛ=Ïíl‹¯¹×ÔBÛÜtïO6VF’ùóLåh}¡ý´¼xs°çæ®rkÏKkª“ÊL¿Mgo¶j¹üõýlQIÛus4;}ÈýÀÒà"7Ùè«;4ùx=F¬\Ë\ª[Aòp¤ä¿_oÀ ó½<õûüHò[]_:`Ãf;açó/)tm*?"…“åYN“ôo‹Ù !¬Ì®8߯aÐSøÃZɱ•ËÍM6èöhhÐQ-³ÿÌ]™Í4Ú߉þ~fÌMÊ0¼«dô¬º›ß^¸<&i­55¹¾Ð™ÌNÖìËÜUáò$w•_N±2¥Í¤JÙlfagVÖÞî“5˜NãI#듨 +"•I‚¦síÓ¾…=§>©,¬\tál\3òø¸ìiªã Õ•‡iv†Æòmçpñ @å[cÚäÊÁ<1Ðsò˜<¬ù šN#zPãò"~бBy!vPÐ’˜¦#QyyP&Ú2M§7è}ŸA7æÝ€<þÅñ|qÈzK( ®iüØ®ÞôÕ#j¡íZ>µF-éèºLמ¼Îú”ሸÈú'~];Uç¼®ee%%k3`üš­CG’nõ`¢ÓiüxOŽ4ü¶™Lâ?°ç²Ì: È–l>9Ðý +X)d}Zu7NØÏ‰$ÿ§x!IÌÜf&.«|Só7í ¹¾M ¦¼šOòæö’ÛC¶>¶†Ùe¸gž+¹$üÃrMÙ’µ¤¨Ia%iÂSšËÏÑ?žj”9ðuä‰î@ÇøúP«Ž\ßÁhÔú0xCZ!þsµƒÒþ19yoÐþÝugÄÔí&áXx…ˆTÞ&Çkèý[šekù°út6ÛÕHrt—‘}ã²9,fùxåA,€YÊ£:vù!ÈÇÂ]Â䟆¼Òî#ý$=©F鹜kðVØØ‘!v#ËØºð¦ =Óˆ•q§òr®Ó>HÛñ»¨€]þÇÙhÙîw*Iu‰XÚšº³û¡¥${ãr~|P+•ƒÔÝ&DÂxãàÍ_UÇ«š UE“ÑÛ¼Ri¿ž» 8 +Ãp'È#ôh<ߨ™ÉêmÊ- XPêûÀÜÅsi¥Ò9]@¤ `2i(‘=´‡è,®«fÐ6~¯6{Î݃ö>2ô?u„É0"mõÙË»î$“õöæ<*8ƒÅ‚vÓÍì„¶“$¥À†Â?|òdˆîÅ ¶¾ «àÆ\fŠOIÌ‹0y6vfÊc6u³ÈýÃ(),´%AËÕ½ñÞ³%¯N«?­–ô0íurå¢ǘÈŒA\ÜSU-$?º¿å µømróCÒSÜÙuGkåajˆ)i™+w;ŽWzó,ÒÁ”Æc§äýávÁóõ[_Áb|€Ì/ïà‘îû§TŠw§üÆê :{©œõŸbòÊGæ%ßðRg“ï_1Oªû +ˆ=.N]}ÄBí£ã–-a‡é¬¾‡W-sqK„â¥c®üþ…Íçi3¤ öh£ô&ܯlö¥c²€)+°½Ž}ѩ܄[(ÊÓ1;ù´©[ÚÙEØMüãÐù€Úw4’ŒÎ]jh3BÜZ|¢w^†Ù¦»Z‹?.)ENej"ZH¶üL{1_G^|fQÕ6ò»á5C¼” 8Iv˜yœ”oÐfóyÙbT ˜~€££c7íz¤Y#Ž|Ä—­X±c$ù¡I±)uÆ?N$óÜÖ—€—-$Ñ÷c××™ìò‘¡îË +ÃÙ3dI>`ë[›ÊuÔ™ÌKá Ö×~Ö|ÊÀùËÅ'F'gÏÆ÷!ð8ò`` yÄcÕ¡%°>xÄÀâ‚·H…8òÊ·íàѺZ—ôo‹ccÃXHúÚÞ¶ûèyýL²½’5• ƒ,$ƒM²li*$“?a&yÛÖ×ÎNö†0oådBú7÷]ùY»Ï6å¬1’Œ³I ½ 0O°ûŒ °Ò±mÚî)ú'ì>#IŒù1HŒ½f;Ö^ÆdŸn, AQzmñ ¥õµÓd¤1»I!L (7w>i3óä1šÚâ%á ìvBlP–”>Ê›;¾$üùó²vº2ý“xÞÜAæÇï+?i‘|4È÷"42ÓwŒŸ%;8Jß}0!FËH²—ÕÅȲ £ȇ„,Ëå± «›d#OJW±ì¯,+›z¼æÈS²*\ÿôýßCÜ.âVtX{tao²¶Ž ´·²Î†=|}h2õgqvmz*¶ùŽop?3Ÿœt'ŽýÌ~ɪæB½È4ù#ý̈ïyþcÑ¥~‚‰J÷ƒÄ÷§{UÊ‹“/»a¸@y,¨w}šÝÀ¼b.}úÝñÅ‚²<¡-|HüšÜ«Ÿû©.ætˆ¢±²ÅƇ(Z¬…äâô+(ÚYÏmõÐ|dg})Z@ßDÑΟ¤hSYi¿ê?}öá">L‰>sö{½Í&Òvý CCÏ&õów¯ØOðä®^ž³+ˆ>#ñ–­à†ÍöÑ å«Ã…(Å“-ÅQg&ìÔÅʆوa|®²ìÓVìÝó’ÙÅY‘õ-ð#³g"²töcÉìÙǽzó%ÃäaµéXw-èÔKaö3„hÛ ðJ¯ŸŸu ^"ꈛ÷ý òëÉ£o¨³ŸµUû¼e˜Ù07,Ží¡Ó Öª/Αþ¤ÆÖÖ¬‘äpÜu6¤|?Ð ý´|w¡a‹Ë§¸XqlïK¸ëgáuðl¾ÀƒûÆP72D?êܰ?/ô(Œ:6ÿ3ܰ‡.NÍù¼ÐeqêƒZDŒ`–Mäº:ѯ 8Oùnq²›W¼:%žÊ·oLYø¤­º×ÎýÄéÍ+t¶ûZ÷˜5ìNŠ(Î8ˆíåÙðšj a¾@ËÕY¬Î3„;]hJ‘Á1yˆãbLZæâr>Ä–z<'Û“cÓe?%-Ús­¾ÏfökˆþØáb{̦èFÃ:LAW‘Æ|Aa>r{ ă!v96ñ#Îñâ1ù`h{dÌah÷s¾Ý?„ç*N 1©¾fáøÃ%qä¦|,ž!ILá.ù`´ÜêþóFí¬x—/wó÷Ûúmádõ Š I~M ]ÿºˆˆ¡OÅÐõ I~M ]ÿº‘ä×ÄÐõ  E ~:†®¤ãÿŠºþt=Ñ‚ŸŒ¡ëA9U¾"†.bÐÃ`´àWÄÐõ¯£|E ]ÿº€fñ1t½a,r' Œ¡ :$÷ {‹puéï ôþ¡)ÅZzÙ¤9nï5†Š—zu·:ò§a¯sAé7<¥Xz&?äKÇw š˜>§ž(›^O³€ÊÕ'l(¼À_ŸÎùa \I°CDÎ ½¾(Ô ž—¡~×?L4<¥>‘ƒ,W}¦™#ëèǂ憣5·yßvH:òç¨öà +w¬+?ûqÎ ù¯¹›C/µÛüOÛ«ØÒ~ŒÇ.Mòºìô„üˆaÐÃdvû ‹±ìigéÕ’»}Æ$D-`ú8ƒÈªé@5ºÑ ‚דּP4ÃÖÝØ„LÅ‘‘ÃѬ­;¬Ò+<îbƒL‹cw‘.” +1õâø† aB·¤Z¤,…LgCAÒ šI6,ù0ñÉ«òFÎÖ†2l˜Ó$N| Žï¶ûɈ“à™Ý_ïEÅñÍÈF«øÐ´JlL¼(ißèç¿ +Ñ쿃}à‡ãkàCq|! æðÈŒáå °ùȼÂw?ÕÙÀ,é,þöâÓ¾búÏA,hø¥‘G§§M_V‹äJ–ÝŒ Ú uà/—롱‚ùˆ§[xºŸ6û+{o€²×Ypº}Ù9ª¥³6ñ3]`–Ò75ʈ¼Óq0?;`‡"nFúè<±!nŽëÈ0àÚ¾ ¸M;3Ä,Ȉ]”ídj(Wþ©\+{Ó~êô9Åð. ÀdÆ:?d¶«J¾¤Ô'@.’êÄGDõŠŸ”Ç^¶†8ñþyGš§¡kÿ ­°ÑçáºÅ  €a7 + ŽŒ‹™R8y룙~Sò°i8.ÖNCYdz§×gJáÜ+°EB’¾Â"ó¶=’üi.ýÛâÔ·þ鎯¿Ú°ý3™¾ÿ¶ýÓ¶4c*Þ»cø0´[d¢¢·»?m‘ 4é +8‡Ár¨~*<'BX^è–›;(,÷÷FXÞ‹}pLââar¨hp+œ¾vjOþ´Q‡×õzÎ9òPahÓw’ ó—!]ÆÕ\b£ÆÕ}„ÈF{¨B\Ý0ñ£ýãê|7 Rx°ƒ×Å'©’09îü†\õœ »­³²È€ŒNŠyuLúùx8îóÓ>uýãá>—ì£ñp1^Ð_÷sªÃÆÃ òPýšx8¢ÉóŽ›M¼—aLFÐ/އëñ†¢æ—ÆÃEåe}q<Ü0Y~>.Å)¹ô}m<\”.w­³qÖø‚Èz`p¢‡ö‰d]©ÃÉ–CøD²ÎÂ7:ŸòNŸIqcÕ?VéthOÈýôõ ú†û *Ϙ/a??c½ô\äÅùÀ¤hýs‡üG†:†ù«3ác˜ÿ‘í@éJ¯2EFz}ID”2òó½×Yüɉ£c±®É“ïŸ' KãÙþ® Ç ~E6`ì§Ï1V{Å~>} ½üxÿé\7ØOü}zt6­X7볞3ƒ²¡I]Edkd+ìñ*‚²‰ú)ÔˆÔâØQlãaxþ•©ç_‘zþ©€c_‘ªŽÍID*ëçK"R¡ŸŸ§¿ÐËWD¤BôÚpi ¥èµ8¿¾ÿ¿½/]Ke×Ö¾îA”¾­†^úE@QTÀ³Ïþs®ýËHõEª¨üæÚs»æ³|hB’J2FFÿèM5d„e˜Áb ‹]ÈP"Bœ +§ÍÇö™ +|lsDò!Í«íšû²×T8¨ f@qß1Τ^¹e*œºQ÷GRáÈV…}§ÂiÛÇ êg£¥cXº~²^â“2@ÂLEø5yl­´ðÖÕ «/›‹¢2t¶Ú –azê"Ãfœ ªltHb3àÂѫΠ¬<¨ºò”£lNnVMI…à¢u"dÖQÒõ éÍy\Ùƒ0ž ÝÕ¶EEØóºÕó¬žÓcÚb·úŠík«ïªÁ¤{.sxÕ‚–«ÿt¦‚ÝY”— S3ù”‹“2ÙÍ¥JØá¢;„d·V’¯²"ïlé´}ÈP•Én®‘­=ÓÈ:sßéeØ–û~ÍA©r>ÒÔ4r¤H‹Zϰëë%»YÃÚƒV*‹ž8¨:Ëb×É;KZïu@ÔγmÙ *¸¸ã·NCt/{íùÔJëé%»=Sšƒß}U;ÃÎ> ^´ê Z¡ +ÙRMø|r¤9¨õî(ÒÑZ^Ÿ^†Ýa¹æPí*¬_ hvßcCíšGU;Îó¾Öò°™²èqñ=˜É‹Â3¯ ¢ˆpy- ýÚçR]¨z¶ãÍ!·klËñ®”W[T·NíùÜo¹f5ÑÆ±Êê—jVÇ\iOj#F‹^œ‡¤½î IŽ„#§QSe³uIIδ®å<ÜO6$WR¯Ž¸*®ODnS\Ÿ‰ó¤"§ù|Z¸o›ÀFŒ>Ÿº–ÚÖ‹n ”RYKm{ü8ãôB=ÕCw†ÖIîz0@·ÙÒk6›nk;Œ©l:’ ³Âí)›Ž”K§Ufûl:’MD/»eÓ‘révÉ|$gÓ‘lñÚ‘öÛfÓ‘ré4ëmMGêjs…³ÙtäÅ}gÓ‘ü4ò»r?Ùt¤\:µgd÷l:’EUnÙt$[»L{ÝS6I¸-½{˦#åÒ©cGwϦ#]ÚØÒ»×l:Ò”Ö+ïšMGÚ?ñÛ[6iÿ4¦vȦ#tØ„)l>›N7gdoÙtæVlÛl:BWÌ>WŒÝmÅLeÓ‘4,‹QGŠál:Ò ÏåVï3›ŽÔÕ¹Ïl:’·„€)¼c6)—nM{Ý9›Ž”>¦òŒì!›Ž”K·v¿ìœMGZ ¥4¾l:’¨ö¼ïžMGÊ¥ÓÅãÛ]L,±¸†/¶Ÿ1H% ›Ã`â“QnÁKûÅ«#MI_ºØ¯N_º0¶N‘m‡TX¥õ<ñûå‹önêH +ÚYÏÄI¦´1u]i¯‡.§tL™žÝ“2EÎzSZ¤Ðå0:ë1Å2…[L©±¶ø,¨ÔˆNÔÑz˜µ¶eN–¥tg*g/¡ªseL$7 s§Ãa$ »] ‡AéfrJ¤ÛCõìS¡ˆšÙèîv†¹3dQÜæN&ÃhÝÊUÒƒ¹“rßt€î ;нpDzfsu®N÷˜gñyº§%ôh{Èå95‹Î§Å®ŸH§{hä|¢g7Yà%ÒmŠýµ¨Óâ0𕆱é6„· "ƒÕ‰:ɶ¸<°õ|¢ Í‹N«6”†¿Ló[$v­EC¡‰†6X‡FCa™_ÑP8÷ç3†ÖÛ ñmÊ|܃+÷¢Q\Ü}ƒýlwå©"» Ÿ)ïE¡Âje +oÎeç:Û˜X«‡À®N¬}¸Ök_'|I’9lSU@èÌä¯nD€ÀaPgCÌLvwi.åÅ\µ”Fð^õ\KHZ[ ¾R½%¢dŠ¡^‹Ù.3¥³?ÃÎ> ;š‰ ¦hÿêcËDuæ£wgq÷¢Õi¦ŸÝ«pýìŠVÍÒ©pMñ¨D7‘Á´‡É^ëdˆ>ÓMd0lß áN–_Iĸێ Õw»àVG¸Ó“Æa½÷ƒpg±ïN†›îL åíO¤@ÊÛ™ µîyIòCÌ"ÜmÄ{Ý +áÎhUóÊÝ×^»ôrFL&ÖÒ‡ra-&kéÃmQÒU™ýâ[Æ2׳ÛÍ×¹Âý˜´fkD\ï%±öZ +tÚ ‹mîG».œ,´Æb$³j=¸Æ$\žÙ%¦1­×@²TGÿÛ`×’ã¾Hc2˜ÄÔUyšT·Ø¦4¦õŒ°ÑãŸÿb$É™z1.¨­¶Ë©u63@•’˜º*Ý}½r°0šÄ$b +“Ó :7­ ÁPÈH5˜ÆdL0-U‚!}ºŸ×|wüMÚX.îÂlŽk!`$ÎNU^'#l?¥©øÛ[ŽëhIÊpÝN†)ˆæIMã¤>¶àÀxí$ úìá+Ï`ÖóæW4%½Ú†s\%êM‡ÏæÄñøª/ feãSôNâ=Èã{y½„?Y«÷1pi}œÛ`ëq›¸µÕôøWŠÔ´Å’¶/äô)dNYìÛ!“ˆkÝ:4óáßí$Wðd›6º^¨w£—ù÷J“EôÂåþ=5.HÏÊá°Ñ'ƒG­AÇ:Ixü…Âv¡LM[½L´òábÕô—í]|RU>œ›˜„‡è…_à” sŽR#ÎÅ©†Æ ‘#[ûék%áqé†2yL™û· iZñ=\iꜸ¢/ªAEÜ·¤5 —pXwjºXvÒVÍA­Ù{ÿ¥<² ;‰ À¯øpnÆïFÚõ¿ßç¤v8WTj9úê—ºÍ=†_øsÇ_“"s—S ‚EÆõNÀ~*/´¯(ñ¢36éâŸEáº-n‚ 3 +¨Õr–•«M!C:¨xÊÐ*Í) ˜ÂÚ“2Z¥éèÂTYÖ¯ÇcÔEUÔ ¬RÙ` X’n‹š¡Uš[GDf)š ­ÒIóì-+mC„¦P§×ÐyR;½Ì<Ÿ"g=áÆ˜t£Yw +¹›@/ÆÝp4Çaô&¥m'6I/Ç:¨ôÜ|Öcc•ìŠP ³_Rc¦l©J”Œ–£ÕµÁö|+} Ö¨q êÀß]ékÓFýÖ¥½xyz~bH9ûXiu!pÝem¶®5Î4mÐ\‹…,À ;7G¯”Ìä‹mÒZJºQZ†ìcÊ zÝ·3b¾6scfXÞŸŽ‹-6&ê> XiÆ;Ûˆ¢³–]«×Ù'~mÅ6æòH‰ÓîaÅ6âé˜Y1„´µtaµt([±-²æÂ³lŸh4P¬ª±U Ñ@,õmh4P¡j> P?‡ƒàÛ* Ðh !ÖD ÖÕ¢«°e b=ur×s¬4—cD=¹Žl> PgJŠ@•ŽÜìŸjGP>Sˆl[ƒò©2R”hUØ;(ŸD¶=€òaª|­ý0(çI4‰€g”h…Û;(Ÿ>>ò¾@ùŒâWîÊ'·*À¤&šô›åf³)5˜Œê·ŸÚPï'{¨ e×Ïpm¨pýôQý¶‰¶%áú™SÚטu·{m(®Ÿ¾UH»6”9\?ÍÒ¯ e×OÕO.]l.ù¬ë§¢°\í€ëg$“kO0 š¨~²ûe'\?ýG#àWn…ë·¶Æû@YÃõÓ UÓ¸~Z wá}äWnÿïÊ}àúé£úÉeË]pýô/:,í×Ï«‹êgº•®Ÿ¾ª«m×O+Mrc´)\¿rÞ ãúÁãÛ×OÕOQ©u\?ýÄYRFê6¸~¢&ê§Š»Ø×'Cõ“â”¶MO¹4Œd´;®Ÿ>ªŸÅN"¶ÀõÓ¸Ve¤në§ÌßR?3¡ÎÕV¸~ú hÙ®ß&Úß®Ÿ¾wØßÖUãAúx|;ÓáQýöƒÇ·I—6R½a×Ï!#u{\?}T?)ch7\?Ùñ" úm—•fVÌÑ>cæpýtÅˆÝ ®Ÿ~®q<¾]²px|;àúÉz!pßmðøÌgá¸å®ßÉð<ªŸy{\?¯.ªŸn•3¸~úá]„[l+\?ý@'B<ÌV¸~û£úm® g$çi°ÐWÛ7Ù-•+¦ëgR¯Ü×OÕo§èA®Ÿþ‰°h/–)\?}ÁPò¿ì†ë§Ÿ+»‘wÂõS/¥Õ(më§+ñ2Ìî¸~†e˜pýT;©ràlÈ®5Œë§9lÊâÜOB¬˜ûV™¬yñgÚ2/¬E|¨êJ=upÆT¦]ô©9ëÞ«ÒÅÓÄñ±O•÷mN« ‘½ÂäåËoHœ& ¦@ ç~=…®Df0),éö4\%Ortìú‚q¦‹¸äSU½—­áÂj¿ó:¬`²:ûÕk õšó§¿âÞäq»ç½œÎ>¨Ré5H•^ý ª|z^¤ÊÓ:U9ûÑ(õZc@Õߟž©æÛä…º8cãÔemzEu–/OÔµz£®ú©oêÚå¢n|7u?:lRý~÷‰´ÙõÀvÔÙë|±X”‚‹åÝÇñ⛞_-¾1×Òu,0í·WÛéôOÇÕfµÊ^Ýß<[={·e‹¿åí­‹Ê‰ãef?<Œ®£·G{-w4G¯ÝbÒ#$Z¿}Ÿ¡ÆÞ.í-W¾¼´S¶ÉSeëƒÈCø}Áù¥Ë%¤“Ö­þ|/$ƒ€äqyÅJ„Ðb|¡gyHöÝ‹EÃï%=+ÿ¤!w×›dYªœ?ÍSå§ÇªÒl¼/ú‘d®ZùñÒ_%o*Ö¸¥‚årÏ©ÒUt`±c˜?*ØœøTô¤$d߃ë]²·ÊMº}äë°rXìVw²²úƒÎ+ȹ-ZmÅXÐêsg³ðÙ‰Õ{~Ø€´Û|‘±úsìØê;ëV­ž¯#ô¤Ã¯¦ËßÀ»/ðMí)ÐÇ…é0HÃS¡gÉ×­ ¼9åsC¯.>ißós½ºúÂj=œð¯Y[ü}EQ®@¿¦èâ_½N<èU7×ùäüòÂ[/~ Ug.?|à翯‡ø.X•g_q*®Q¹÷ú2wz}}OUGµnyà¾=¥}ÔüA˜æ©Ç[ôÙ¿Ë®j­Fû +ö‘øÜû²¯:ôXü* ÿâ9%Œ—®ËÆCºÑgž_˜JÂ6ìÈM]®„ðYÖ‹[ìмO—ú‰¤ðUÙ/öÓÇñîè³z’‚•&v`/·vÁJ‡¾=ˆË­â|ˆ9Aú£·5¿hƒ… …;1­z7Bt—èm›bî—#ýÃÛ.×-›¹œs{Ÿm7¿½š¾õÊw¿× ð£°ù;žôÝO…—H¹™‹Ådú¾¥Èu¦´©ì>¨ÛvPթžn;”Ôm¤“JrÇñCá%zú™»Ìͯ±'±gò·ž>>6Œû±;ŽÀ%ë-]u«°CòÕ}âÖ •ÞÑgí,–hÜÜ«áá•¿ÂDüšÉß°UUzHHÖð+~“GÏah¿±¿!òé ö/æÄ_ ¾s.îÕÐVHñ³™ Ù¡:á«ç@Ÿ7añYFl¦S™ð}¹ñƒÃ¤#ñ’¬c°dÑigéÊ—§Š-\D ‰â©é×õäz..as%‘öÛãmCÏüàÒ:›eJÉó8Ô"¸Dã4ÍѶè-ÉP qqX='Ái¸egÏhåVôÌ·Ö¯¿¤z!˜f+Šj½›vÑ(Ã$ý˜…,±£Œè3Í Þê÷›FfÙrpzˆ³¹b7Ž׃>k4ê¼ÅÌqõØâÈN6牗ѲuÁ³§šò˜ªð4­ñÔÒ3³¹‡L:i•ó°ñàÔWÏ1îóz_sd¡¦½ÃJÕ  ?uR©¥¨ÓÄçoÝ4¨’N‰~¬ù‘ÆstJ£Ç­Uw&{GŽW<0{†–:šÅ^ÔÏ8ÃÇù¶ÑÇ¥&«lmq<†—=ÅQ'-ršD…cqÙÜô¾Æx¬çhW;‰ã#ŽŸk4Z6Öø$–¤ÀhÕF›|±J¢¥NegÝlÜd?:Ø­:fpaÄÚi4›Ë¯Z ÏÌÑ>q½i_¢†Iáý­wÒN›3˸k‘(Ñç&ckŒƒFýeºDÑ9Ï×aÅZЗDÁu#®4.ªE1xK#ñ'Ë<4`Ù.çèZÊ ÙÜâéœlèPd¦¼ß¢#b+оú'âÉŒA=Fó̃§3ÄÇ*—>ØÝêÀëAJÃk†u”Î/´,ð2Ûøû ]é´Üþ¢EiÜ…¨»TŠã &aºòò¢ûqÁ<›KV[úO qÿ#Ö‘DÔûØÎÔ½÷q-¿µ„¶û)­?²E»õN{·9àEÖá±!F2½<Ý8òû-5…2@Ìxf–TŸÑ¬K§qid\ëFó©“vfPóÔÐMÆyŠh"úê/ksï†JzƸ·xÄ}èÞ¨Ð/œ ŒœFL±{ÊæƒþÉf>ÆfÐØ•B‘®Fê êdÕMQ“ÙmÁ 3Dû÷,º&ŸËHº¸ó#Fˆ´’ÓÂkEŒQT± ³æàQ+6‚ +–¢Tð‹"Ø4DMÃAéYðg»=Ô(žScû¼ˆš/¼òMÆ]$3².jw¾€²‹—tgà) ÖœeGQŸŠ³®YìèÓØ76pX7̉ŒiàÚI¥dSêâ|½‹ï#yUGU.’‡.„š]X}FÒjƒà [«^x? ŠŸ!éØw$Ê•kÁ)æ” ªhDžùÅcOZ¤ªS»`i +¿¸F¶öÒ±BôP^D»Ï½Ì¼“<~o –\â*~$Ø™:RÍ*< +ÞP¼/y÷©W¨˜T½¾vÐxË\™10¢àÙ¸]™Û7is¸ø¼bl´9ãkM1ß4 zˆ¿@£?6Ï@•8\+¹å=óÈávÁŽ„EHÐÒ@娾°Ê¢g¡/¼;ôÝ—/ó|..Â|Ðlä†ÑUúkÓ “ ¼¸b[ø…½}£c2dßûå( ”/.v/-‚ߵ~KBý±E¾wkìd¿…ƒým•–ÀZÞ:Ä%èªÎÂ/Æ×ôçŽÒÖQRw¡èW#_;‹h÷ žF!”b›9HvþÁbÇÇÀµ3É$÷‹‘ÇxÙb7TTy'-æVgº5ø"w ¬G/z+Ñš,7>†Ç&ë SøúPtða-ð³Ø´”­Å¡ÐAï]ꀪžõ•+Ö»ÏoO¶ñTù¾ªŒh½ï|Æ.æ;ž1ìŒ"w ;cº]¼Yw>cWóÏXïC¿îŒév1Zl> 7zäe%;c[íFköm ,]huÑ W½9ôFò[l«ÇèM4–r};ùZk»Ñ{ÙLñús˜É6·b¦cþmêTòÒ…¢‹ÅN´:ø>TÍAX1ôqst´iÌòNêÀê¼z¹PÞȣюwÀhòEšƒÅ®? E/†•j"·Í–»Ñçh¾Ò\J‰[êÞD£/#$®Ë-GßVyG‡Š·Ž#Å[·Mþvöò¥x;STžÍ—Ê›}­߯¾åoߎys(&òæVLäÍgLÅ`G’.篌Kj‘Õuë Y}ƒqüuð49ñ[åEë7ökŠÊP[­r]eÞ]à@ŸÕó7­ÞgËêyþh1ß3§-{š¸i—ãG³Viq_ù°r‡zîbyßò²Ë•6×»±Çª×ê]Ü.DWOKaš.• £€}^ð÷€µ‡±à5õÊU †÷¯QdÐð oðìâ‹¥žŠÖ&^€Ú^Aæ¡ñÔÄag²ìÚC0ÛD™{Ácf4ëXÜ4°eûe>Õû÷Á‰k‚ƒkxÇqw6äžÂv^+VŒnû“œÇGîɧ7C^ŠÍ½|&‚ÓÖðŒ:uÙoðr@-¼+0d9™óœWÚ5·ý›<–9I¬=Ï)Ö›þ;ØÜY?ÁܯìQ´À1;y¹8BÖv\:Y3ÕÌšÇlnz +öª`„Õ‡lC+qLe.` +Lð,ŒÝfØÜõõ1دK¨ÑŒ·­ã¶uÑ\7ÎðÖ²ö1[fL§Ï¶à3½CƒN0&ÑOSh¯¢Æõü\csÉL¸e:ä’;Šøx Ïµø#ÅZ-ß•ûƒŽ¾Dåû¾éœDåœO<Œ5¾ýÐ9ÊŠÜ·méœ>LHtN¢rlíÑ¢súÐkÜ*Ð9‰ÊI£ìFç$*czMÑyÂåÓ¤s• µåÓ{At>z.²¹Ák|ÎÇ÷˜fÁaÃÁÜÖãeî—s+S:~Ï™q´Ï:®Þ#ƒË¹å\‡“Y6ЍÈ_øí(xx+è-[â|˜º[Fìê“ê.£‰ OÀ°ÃV„]c˜bÀzFôÊ>‹uxòçàÛ*‚o+N¬:I6÷pßà¼aÚ%úÉÝØ’|ùˆ£…pz•ø¸>Úç|q“ˆYˆÔ óuÃ7¸\UÞ®Þ½ñp÷ÓêX.mVoå« ñ- ýr€r>yñË­Ö*û½ÔãÒzï, +ßðÉ<áÂvû”èWÐßÕ—™Q°/_ŠK}ÊŒÝ8Ã…‹!<æa©+ˆh˜+ޝBL‡Ê,.1°{ "ø×d4Ôêá…á‚&´Xâx —c¥vååƒO5æÁsÚD³3k¼À<\?tĉƱÕVMRùöUcý^çYw#K_òlª£”p1ÒQÒ¸NqHØÃs\–D Rô,c›~WeR&g×Kõ\x>|h(£â:a?'[rD>¹c¦èï§ðý‰¤>ñFúìâò›€Á$±M>¬Ö£Wqoæ˜9„`xTž[¼rõàòÏ êíÀ'C }¨·›ˆˆÇ&¢ÅÙÜå÷O1ű­‚øÜ%çXe3WSô›i-[§Š°r÷±c¦4bwۚǾ9Ôîñ|N§Lñ­3À7·xÆ6ÞÝ»ÜÜÄ";DUýÓÇQ÷kÑùç8W<6Óûn_ s²æt–u*NñåÎF‹žý@ww-À͇ZŠW+Gw8ŽE8Î 3£w¥2nê\ˆ—®¼P“âœ!)$hÌí)ÜÞ@œÒô ÉÑ'– +ðˆ÷>¸”ÓŒœOli^tPP`´1̤¸²ë.òbðå)‘eН)tÐa„‚Î'Ùp¡ÊûŽyø¨èüŒÄâÕÞ7d æÜŠ3”òÉéE‹¼Âp‹{·¦Š4{qÜ™´D˜ßáÈK¬#Zì %v¹ U¬XYÐÃi† »4=Æ} žþÛL]-.83ž +S¬¦h,ƒK8x«õepùR'Ùn:|êâåM ²¶¿"ľ`¯pd:ð{ŠGã‡t¦‘ö×Ð-ýÔÂÔÍËå¡êB&—{žç8àìc‚Ž¥JóQð%Iðb˜j€Ø}IvÆ nHLjJW,Übé…‡•y$r»]ëj.g#H–j¨(Bª÷&¦†ß¬Ëþ-¯o¸å/¿áItÖ»yËš™OÛC_Ì›ÓË$’½RÇýíZد¾¹Ï0+¼ÕiÌ +D{›,¢g@$bôcf‰DíÂ;gõ¤&­lšyðd"ˆR#H è=—YGqø XÜ^G ^”ØÜâ²ÅÙI‹+„ +Sa0®Ÿ U ÁÃCkw›+ÜôºµG‹Û†{_Ëâ6þ(MN.rh©²…û“³+£¶7I…•×ßÁöF“loGÙh{)•h{“,o¼&N¶½­2^}˺¦]ì×’rÎÉ–,ÎKÅ®‚tÈhLÉC1©•`%ó9ö‰LÁsšã²ŸÜJÁѧÉ$‡¯|¥Õ«§$×6ו¬2k‹Ï¸ä,D•õ4ÎtâÙºRîyuVÓD]æ8‚¨ú*s¿\Ñré¢;»ÚtÛXûw-ŠH÷Œæüf×Ö Æ‡6`^—×Of·tŽ£HY?o ¹Æ4ë!IÉ;kæ˜bÍTë, :×=—æácóñ£ØÙZÀ-âH<ó÷{)¦úÌë]HÊ ¹±û"¸8"Òò‹.Ž€*5ωs4ø¸ w²ƒ[ü ѯoð#Žq>>Yï-wÖÓù»’p‹wv˜!åªòRŸé[Ü¿®§ËsTH‚þòc¶7¥ïu_¶·€æ®¶óëÜâöïe)Y#%¢èþxs›duæh6&™â`÷ ¸Ã•+™ Œ»ÆÖ0}¢›Û_@DÊVñ†‘¬N¡·vT’Õ±î3‡xQµ +žy†qg^óôcÖ†¥uÈJ;cóÁï,H $¨¥Ò r<üYŸødõ2DÁœÂU}bõ]õ¯!æ"=ú¹PLœoâ[½=Zæduá€~ÃÞ)^ôÃɤv$£xßÅëå;ª¤v¥Ž¼_Š—èݲ+ÅûÔÖv’Ôr²Å#u½~Ì”’÷MÒ}Žos¬¢ƒ).†)‹î ɇù· Ï1¶ôÊMòƒb»áû²EŸÃe;‹Ò¾Ï÷*d#AÞ—`ícÄz*_¶çyçøí£;Iô§^»ÆÚÐóÄÕ„éQ½“CbUǾ8EêZ¥™ç2D7s¥g䧸Ð>ð$¼ç9¶°gÇv»aìÚ Ž7÷.Ž7ÜŸX»cÝñ^øŽŽ·Ç§x}ߤ3½ç›«Ó$ý6H4·{ Î…ÍΡƒÔ +vZ¡2{ ”}_#TÆ|  ¬±‡(·˜F¨Ìº¹ð*éˆ9Æm·†®ô2º CI ®C ‰Hݸ H–‡æÇÛ¸ÚÕùº ¤ËYhÌУÏÛøë.¹X¸Rð°é{åæ»^7K?¬'À>"à[/Ò•þ8È:<‘:Xë’ ó=fèÇÛx…ÏB^×ç-{ÒèõõyˆçG}þ¡qÔÈ>u’åòeú«…ˆ=’5¯ÖkªÛ’߀Zöè«õº£lRëÝÊ"Új½¦R3S bóVj=³K™"AG¼“Æè””Npê3z¤©Ž÷¨Û“4{…}l/º=<•‹/Ô"höûº}ºréçÏU°™Åa±¤¬36ÖánF±bŽ©2í„Àاï Ö<š`Í‹ü %€’Ü-1;fX6OW³Ô Ž™ƒ|ù ušxg!þ­ŠÈ*ÀWqfP}GR}²“Ѿªv‡Ãƒ$‰bÖSá÷8ƒ7¹œúB9ºjËޓĹ¿ra6ª«hŸ xßB—{Œ‹ç²lLñ·R„Q6ñwS«®¤·•ß½®þÇ‘f.§ñ%Ã:J¬WÒÖ¾;£ž;.Ïb§p: ÏdÝ ž;±‘ißÝ“«œfïþš–úŸ2C½|3v°_¡{ÿ~uˆdF·ÛÊæŽÛQ\Öœ™OQø'ŠD÷~‰Õ8Ðì)ÜÈOö8ý˜©Å©§þgé*7 ®J —6N=ûØV¦Nº#šzªæ˜ké;ÿÀpxö…&æ h¡£E¦ØŽÇT®{‹}gç½×=’±ó>á˜/üH_–·ÉAºsyÁ‚ +аúççc06%—½)‡=/pÙKÉ&ËÖGK¡ïÛ?­ïûƒÎdÐ]¾tÞagDÕÇŠ>h|zª¾RßBÕ—||U_´•ª/xU¸š*&U}(Z¨Tõ™bõ1Â:ö»Aæo§ØÜô&ñŸšûkìÚ9÷íÊ1lHÈŸÞ'4TýDŠ¿¯o@aQˆbžlúŽW„œÄ23¸õ—¤}AbÀ{Qy¼ö +DÝTS·‚ß^½—`áV¡Ûÿ›t,¸³0Äûi:ùšž=i›0û!Ïøõl@û|ÞkdþºÕÇ”/ÿœ­O¼NÄÖGÍw²w‰ÑPÛÙ»Ö%}‹‚gäg}¾Ï {²Ùßb7®ƒ˜P=I>_«rØhöÇvËUš· –q“fÕnt¬îÎÚŠ@Ñ,Z¬×*ó¼N‚fÁ–j¨e»‡êZâJã-pŽaž®t\!0öÓÕlµ…ýHHøÌ±¹R¼øçýû®[‹wúA¥w¤ê·¸ =ÑÝ_DwÖ™¤ N í™)€ 'qû@¾ÞÝ€Þ(›l1Ã6ž*ÉY³ ×ñ–F@œNª®Ö¸Á°³+dþí³fÊòˆnº’ÿr›Êš%È4íÕó8âUî—$D/WQN$À\“;c9ºü“¼, º2Œë[¥@À0~©D8cšñ@Úvþ –ùóÔ)dáªìü‚™@æfÀFîh`Jgÿ¬Ü ÛÆøoÈ®U +äÅ2… +æPû5† D*þ,«==´½ßYì\õwgªæŠrç»Lì~¾Èeøn oƒBo–ùW.-=•Ç+ÖãíÕÇ©™ÜÛB €mÕ€øÃ ¤TÉËË#õIp©œºåE²ã«¡ˆNà•Q÷>Š_ø•ˆýèDüJïÝ%Ï9a¼&­¨· Åç+)ô™ñ@¢¬ ;ÈLc‡ÏƒÖîÎË1Êûåë7.»ßJõ¶Å¾å +}VÆ«íAgz’ÇDX.1îFŽ!¹ ¹@šA̰ƒÐÛîÖ×Ïoݲˆgè _b›á¾Þùúü½º·ð ŒÂ—œ·ØµJ໼òøRm_pS Ð/äºú2Îo®[1ánÝ'±óx¬RÎ:'—ÅÚ8e º4>4øŒ]2Ò`Üoƒ#þÚî C2àYÍþQ“C*à™Þ¨ä1 F] +i 57zuKó…ëG}8Aû6²Â«qwÁoò¬{ôc,"ô¶+ [Ìn)áU_:w#)”}1fˆ}+;àèóáìËÎ?Ëì=b‡™ˆ€ÒÇ”óVsK¸êÄù<òÇfÕ§ 2¹ ½Ò«1#µã­g«×ÐÚl««²Ç>Ž^ùχy8³cS]¤¾(uRñ"!|‘ùî $¥¤àÚ¨< á˜Gëƒ_Et_ «¿ÛÀ®L[ve)m\p®Ÿ'9$Ãa¨i^ãA·«P\¿ê“úÅű-À^C~8ltWÃó1%f—€ØU¥Äâ¹&ÇàWé/5F v°Šð,ø$ŸònW_‡p,L¨é?–]¤ë”ˆ+@ËØºÈ#è<7Áˆ Áñ¥ÃÍÕíüû‚\‡è·ö)è~ˆ{¡ÅzÍ¿ÎËPÊòò¾«™6ðšs„ûiK4 D£ñðA°ýý6Y4ÓçéüÀg9¶s5šîÌÇåÅdr9ùßUñãñû}2_$‚¹‹B­ 'ãÉK3ˆªÒ®ÄsÍj)X´ÊŸâ•Yõ¨Ÿ¨^Z­T;?/¿@Ž¥ Ñv¨Qu Jõ…ÕU]úàm«å¥ôC+ Ù˜yŽŠ“Eþ»ä=«_OkÖ Uz]üá²’²ØK×ùI;\>'ƒÕÜÍiñ¦|u‘ ®¨A “ º†±ŽT8û`©Ž„Ж=c©Ž@­2€u$ñïtÔ-}!‚tÊ+ûBvY§ ~ÌÆ½‚˜jAÂѯ `DPpêÜè&dyšÑM‰’pÀ•øñ@$Aaÿâ$âûOˆ’p £—½‹’p`±k‹Ô¨Ñ±Hböï¹/£Ý‡   !Ô%į»VwãÆÅóÍïD ×D¼4siuOßÒàP½^WV¹:ëü†¥z«aªíÁ Ý7x׺€²ŒçÀƒF¬uVêJÀŠ$ÅÍ›|ŒN"h +þc*!$}—3 ª´WÕ¿bFWôn¿Q ÀCâ…±ýˆap)i¿­Fã–‡•j^è rd±¬É—¬%Øíù–åWZj `òs>8wòúòRÂppÃÆÝ@æFŠ×›.ó”Øm7@ªÕ_J|¿è=FÕ_6GksˆÔiÆw j¦Íl˜Ã"¤e7r5´ +t’².F}ûnwÀèÙëndÝYèÌá“Ö>Tª9𴯞ţ-êßéD<úSi)eÜrÃM$ï"R ’¸æÖ¹åc¦–‘¿­6³ò·çïXÓ×/ù”ñ\c~ëc¨˜ñºÅïa¥^¸?‰Ke8ÂYÉðt‡k±Ê!@Lâè}Ò;*×|žŠdŠ–î6'sÞÒù™AuìÃ:7wjÃàÂðë.Ü9ä´iÁº„^ô{ð[É;ÀkÝØžæÊ½½_N°=ΉµÞÓ³¨öÊ'j”]’·\Ï~’)×ÒoÀð"|ÑpózsýPtž6äÎSÄ2EçiC†ÊÀñ1p}4D§oƒÂæà Ú68”g R±ïs/× ¥s¿¨ ظò è³×HN¶<§¼Wqç º=ç»}¼¹¥(ö²W4Yr†ˆÌæ2 ãx»°—|qw?{L]Ùxž¬€µƒ*#ü‘bpPAýIýYìº=RòÀ‰àÑ2éí/"éN¨‘‹Þ]\<ûæÂ*X#o%;Úƒ¤<[ìŒû{<ýZvX ÚäÈk>–»xSã,)Pp˜÷ëß: ÿêû¶Ï…ƒ”ÜÃÿŠy£Û5.» ] n²ÐãMÇßAì&ÅýzðÝæû~pwÅÓv#w¼>_Å/B2øuù³<\[ R\zþ-ðìɵŸê*o +GûëÞ4Þ×&m jŒhqºòÞ4ñ˜éÇ·aþUq("Ýß³?p\½çÔ³i.ïËÅ·ÃÇ\ûòÎYù³×x‰`µ]}FUŠáG ®†…LFÚ :$™èÁ ï]rO‚Aß:çàÔ†Aß:Œ¢ƒ¾‚¾ü¿´åØboå 4Ë=•»}r1Y}C‚T-<ÈOž§óúðß“……>àþQèüÆh&vÀ„ÃèM>­,.Üö€vÔçê W²ØÁÜbUœ>®¦óáâß ø¨{VïÔŠ‰îôƒãš5@­ÑWnð‘Ð4Ð ú¿û/4ƒÜ'zUDÿ·-?‘S ÅO +µù7zs‚^¼¢þu@Sg·÷ÔÁ~ß¶„Ct FE˜P”e†ø™X$ÀR¡ŽFèp,~ðnabáMê¤Fáºa8CÖ‡[j¬¢ê½k8M$Ú“ÇÕpþü6q;ó)¸›/V‹éüù]ŸþÏäâeø9I$ªÃùøm²h ß'Üj«ûcé@\ö}lO†oÊaP?“éóËŠëµÉ|¬·)¼}<Îþ5]ò#ŘxLöØ!ž èHN]î7ìA°6_­µ©Í§«éðíü{8^ çü4(sÜÂà)P‘°lãºSèq¿aÂf×Óñê…käªÍÿgø6“×_ÞõÇb>Y\þö‚2ùÛöÇ÷|Œ¾PüZ멹ÚÃñô{i~(ù4é¦I›™¦Ù¡äÓdvš&cfšf‡’O“Ýiš¬™iòט@k¸¾/ÉßÊx00¼ ±q6fèð?ÂȹT, ¬3.oÃFê„F,¥àwaž¿*‡3Ôˆ0ÜßÇ:©#{læ°Îh ]ZæYg€’þÓZ_>úËGÿv> +4 +³¡p(†¸_úËGÿf>ŠM—a*гt,ù(06Y£‘±­³HÂp†ýðÑMEÄÇþ#Òè/ý墿\tk=žŽÄB,ŽE™8­qz¼Ô&ªÁ ב”ýµá 5" ÷÷qQ¬Õ‹Íþ>JmãJúÕêùè;÷÷f{¨Ò@Öæ~ŠFSçúp†ý¥öPpÂÿÚC9ç/çü䜸ÚÄn!¾€F„šP{5Àï©ÍÇ“ÿåÞ_¬>ÿÞ#¿ËÍd§Ã%<Ô¯À!Uݱ%ràrt¯MŒ@ÿøÌÀþø¡!òã#„·A±·ôFÒžÖbì´,GŠFÊ»:&ÆØjôOÒžþªÐ»-õ¥ß‹þ÷¢ÿ/¼è×Õ’ãsMû!9>×­³8Âp†ýƒ ö—Š´…‘þWEú圿œÓ„XýqÁ9¶Áy=䙎S·ƒ¼MˆÐH†‘/ Õp†­÷7Üÿ€Àëx$þ+8ÿ²ÿ_öoTp–1¦™Yá^†ø a8CþNf ‚ó$³üœ9ç;ç\çw Ãl3×ÅLCìÕH#Âpçüóbf q¾_1ó—Yþ2ËíÄL³4½ ñAC¤9ýÌòÏ‹™[2Ë_1ó—sþ·sNSTÈQ‹™!R#µ˜2Ê^5Zîoàœÿ1“Ý&øï—Yþ2ËÿBf©é4˜¥îeˆ†3Ôèïd–ÿ1ó—Yþ2Ë_f¹m™R¥GEp˜\éq½™£ª†3ÔèŸSéñï*³ó[Ûñ—Yþ2Ëý‡IÅ>“äÿC²ÊÏç’Ð?ŸLBÿ|6 ½mZÏz²‡òÞcibá&UUPu#RéP º>œ¡F„áþ†»˜ŽRH<Š3l$̆ÿÈ]7¿¦™Í†h*PLô·ÈÈïÅü{1ë²êmóòL ±mra=ÏA ”æc\ëßï·Øí­áóär1œ"Nhy^ÿgr0œÏ?VÃÕä}sð¼˜,ÑX“ƒåËÇ¿àô¡¹Ý^j–-ÿØ.o& endstream endobj 25 0 obj <>stream +%AI12_CompressedDataxœì½ms¹•&ú ò?Ôý0öƨ˜@ ¤wb"X|™í½¶»ÃÝözvbCAKl5×”¨¡({<¿þ>Ï•‰ƒ"‹-µÃ¾#f´š¬Ê7ç<çýþŸo¾}qúúî×/†m¿éþáÎîO7_ÝÞ~üðpÏ~ö›ŸoLØö8éô«ø2Ÿø»ëû7wï~±±vÛË——¼úg¿¾yõÃÝíÕ‡ÍÙÕýÃõýÏ7?û9¾ûîæáößþðöíû7o_¿øp}uÿꇮ>àû›«Û›ÿ¼Þ¾ýýÏË»àæçW¸Èb¦ûE?m¾ù¿¿z÷§«pÅ/6fâ€Ïvwß½¾y÷fw÷x§ióbÀ%Þ ›vÂ×ÿãæ7תs¶Æ7LCôÖ #¯ˆÛØ»qða4>òr»úѺ0 Öïµ:ÃãÎçw¯>¾½~÷ðÍýÝ«ëÎînïî?üb³»½zõÇÅ×—wïðñ7W·Ú»»¿¹{{õnñý¯¯¯__¿>pÖéWþååÍí5¦øíÕÃÆ œðÓ¯Œ}¹ûxsûú×ßþá“oãÇÃKy‰ß~¸zƒ ’ßùqxùÕ[|òíõnýOá¢ýê_ÿßå›cBóñ³ûÍõ›¡,Åÿùy¾óýÝû·W÷äå›a²›ÑØMŸ¾üîúí{¼øµÌ/&në1©ÿ·ü#Ÿ‹áÈy&â>Þnüä6/LLßî'õúO7×þÅæ×wï®Ó<œÞ?|›VÞ¹¾Oÿ¦o~óñöúþ·ïn8ƒ–Mi"~u÷úú6$×_Þ^Éøå0ûÓ ß]Ý¿¹~¹ÜÝ~|å ˜è_^ýåšëkdÂË&éžóî¯ûòæû—Jã囇_˜N›^~ýþúÝww¿“¡¼Ím öŒÝÔ÷ãh­Ç„oñõ.bu'ÃYáká·Áä”W5ûóóOo±ËÞaÒË;üÔ¼x÷úeÞüׯ—õòP>²ÌQ}’ûúþ“ô‹D0‰ÿåþæõžƒÝÄô¬ö˜ü3Ù~Âf>ò“I~dkgù$Mèá£(‹j_žýj±Kúíˆq`ØgwoI“Èm¸êØ7·woÒwóïò ®þø¾û·n˜NþýãÝÃõÜêöz3'oî¯þt½16žœ¾¾¹¾Ç7NNïñõÉÙ«ë×7··W'W¯>>\Ÿüú;ûúäërZwòÛùŠ«tÊ•ÜíäêÕÍ=¶Ë÷·×ÿqrµ?']%7Un~-Wv'×éÒëÅ¥×ó¥7éö7霛Å97ó9ïäöÝÉ]:÷.{·8÷n>÷.½ÊÇtêÇtêÇý©ÝÉÇùÜ×WoÞ\ߟ¼Æ ^_Ÿ¼Â|Ÿ|…ßr®_qCžüáãííõÃÉû«{ÎÀûNpøäë?Üb–î…kán¯O^ݽÿ Hp±××ä['éæÇmßÝ=¼¾þþäôâäë[?tóGï!ßÞ¼û¸?©üÿ/×ïNÞ~¬?îÔyåÿw÷¯¿¿Æ­nÞ]ó÷·W^}¼åå„+|žŸþï¯?p¯ïþüîäú?^Ý^½•_A]7¯®nqÁ|Õ÷àm7ïôk¼L¸½~{‘ûýÃþ¯4×··7ï9òï¯^]Ÿœ¦Å8ÍÄ–ÿwqrGy÷¯trýVþ'„Œ)–›–?Ò=å¯ýçéÃ×7º!Ì“6Ïù¿Î¿}•Vôâãý¼©ì”ù½å/¹]wòý œÉO>yçܽ&ÈZï÷Ù®>\Ï/(àÔ‡î>~‰t'§ ½Xü~š(ãb~¹‹45_¥Ï¿Z’ëWóI_¥“¾N'}½¸_÷×éŒß¦3~»¼ÍoÓW¯¹R€3'‹«ÓB¼½zuOz‡”Ó®^ɆH[:íèîä‡ïÞ\Ý|{{õñûlù'¯®p]÷Ý…ðeÿ?_~÷ât/E‡$¶.Þ½º#úÅæåqÔäßNªNªó“¸øî§›ƒ–[o¾»ÿxýÝ_Þ_wÿfF“·5àäp‚é¹þ÷W·øc<¹y÷=¶ÇÃ_›ŽS"'€gb¾ùGg¢áÞÃÞh|}óý÷'Û[)'ïïï^|Îpƒ;>Çáöq:ùúíõ›«Mg&FÀ}´1S8¹z þ#¿ÅOίo®6Ö¸L¼ØtÿyýîÍ5€UÏ“oAÎ/¿ýËÛ?Üݾ¾ÿêÝ÷wÝÏÎþXvñ^¿Þ|ý‡ÿ‹?˜¦aâÀ×ß½Áßó9Û«›÷?ôvd÷×›ô%®”?ËÿŸ¾úüú{ÌýåéÓ‹wº¾½{¿¸m:ïéû}s{õîê~#ŸÏ·ûå à7W˜žý yâõÃï¸#pÅ{J?•שîþÈ ‹¯ž~Ð/ÁžëÈg »?ßÝÿq~àBQÚ‚D¿ë·¼~xõC}ßüé§ÝY¨ñæÃÛùòå'ßp·¼º½þö/ŒG,Ü·¯ˆî7»û~Ø|www»¿íê«yóÇò)ÏÿÛxÆ7rÁ»¯ßá—ZOÊ'ÔO‚Ž®ù}Ö|Më9øòïågW@#án^µÓø~~Þò»ç-Ft lóa~Lúsk²¨ôÙÑ˾nÀF=À”=çÛ?_aûÿòæ>ï ùÛâÛ7×û9º{ûžvÍ·?\½¿–Í^Îüv¾¡µm!—^¼xD`Ù~³{·øþ_(4<~Ir%RýÛ?þåçÝòªŽ›Ýkè<бðŸëúîŸ:èÍÿÜ™Í?¼Üݧo 9Ñ𨺠I±7Ú%Tyœöm÷/Ÿ:m÷ay'ÑNå»Ö –ßâºÝù<eLía~}¹ÿ›\¾û3†Z}€Ûù4\ ÒÿÈclÝâׯýw»ÝÙî|w±»<ëÏÌ™=ÎÜ™?ÏÂY<›ÎNÏÎÎÎÏ.Î.ÏûssnχswîÏÇópϧóÓóÝùÙùùùÅùåEa.ìÅÐ]¸ 1^„‹(÷ÇÙÇîé£[üúÏ ƒ¼þ˜¨á‘Ã=ÿèÔG«ù•ÁE}cˆ1Nñ4îâY<ñrê'3ÙÉM~§0Ñ,p:í¦³é|º˜.OûSsjO‡SwêOÇÓpO§ÓÓÓÝéYwz~zqz¹ëwfgwÃÎíünÜ…]ÜM»ÓÝ.MhxÖ1>utkRM²ý¼G}ÃÇÖðÑC¦fˆÃ4œ»ál8.†K,šqÖ Î9ïF\t“;u;wê¹p—XFã­wÞûÑýäOýΟaØþrì»ÑŒvF7úqÃÇi<wãæèb¼ }0Á†!¸àÃBˆa +§aÎ0ñá2öÑD‡èäí.///pœã8ñÃqŠcÂqã¥Çáp 8,ƒ£¿ìyáÎ/°/°]/N»‹Ó Ó»-`ÏØyûÏ] ØŠÒ`[ö|"¶èÅ9°›±iwغ Flâxª%>öÇwtÇžø9nøLò»¼”•‘ÁXa䛡ýÔŸö؆ýY޼Ľ±8㌇®9š]»Üœšã4çœmsÉûv8“?gAaddA*ä`Á,¶¿Å·à·\ÕÊrq½399ä~:þ3¸|ø|Œ‹#TGNŽAagÂ=>åÈû_ØÌNài:vĪ;à “1AŽQ/‡ËÇ ‡ðZ`*}:Èn:ü“ØÚ¹gùHÏH?“1AŽQ/‡“cHGw*œðŽGÏ£0¹Ixè$R@GDzBò*òù;àÇqJ`à{¹×¹\*Wž°9@²0Ö Hõ3LË)nNG€TÖoGz°ß À“³°ë0” ˜%»x`˜Ê„|úøæ syЇGàžøÇAÊXȽÜüé ³| +ÀœF(ç‡’ÎøLÿøê Ó +¼»Fà/ì `1ãzˆ† à³3,Ì)ýãV#¤™ƒ„³zÊ…ç Œ]‡¹œ 1¤§‡$ Sí!e. nϰš§À¢x„Pv™bº'^‚Ø>ã*CcÌêx/ Dg#jc…sžƒ&hZ_P:úYX]þ%6©yœ6Ló]ù%gÍã¼y\´Ž®'6½\ãGlÕSPwH4k’ª#§,N‚.Ù‹t¿åOÒmd§Ù[.‘ûúB2jPÖ2éïÄ»’NSÜ¡{þwÔÙÂNC„. \w¾ký~´ÛÉ.YõQg§ûboúQÎìÃh«3 ¾aqßcÎN6 +3=Mãè°[+?ïÓ„@ß”ýJ J^Q¡qŒ ¦ã?‹Ã5ŽA¶qäŸÎì\ yuèݰØ-Ýü«Þ^»Æ¡wlµ¯;ù_‹ u´8‹â@mfÕâkšÿ5çhf§²±Æ|_Š" +#Š£$NE¾Q(Q,%ÁäD/±B}Pb¼8¹†Ð‰ ¢¨JŠâ* ,+¤Ò‹zq!‚+‰®ÈhŠ/ +°$Â(Ä’³PS/ºÉE–gg‚(Ó(Õ’\£dÙ†Ã&ñ&Ž". ¹3Á§$e]’v”wIâQæ‰Ô¹—$ß¹ Ÿ †)KÀ ZœýŽ?¶²íE&x.pi'cÊr1ˆfIÙèDY´BØ}–‘”’INBRvYXƼ·ÊÖæ­ÐgÑy‘I·æ4SZ¢¤D*¶Ë´–\ìF,ÉJ±óDÄÏ& #ƈ 1C$D-F˜¤‚È„"G¢ H/˜‘X±tHT¸øyz„x½`ºsAq§Kyr$~Êd{‚ê„6?#‚ê„È>#‚ê„Z>#‚ê„!ÌêÎð™ ;ÿnøY~Ž7ß=÷†{_Ë?u+1º_þËù¸Xçóq6»ù„Ø¥ÿ™)¹$ž½·ßÚ]ÙÛÅ {9ÛŠU©Øšv³Y¶˜f‹y6ÎÆ«1ɰå»lçJ&èC7³ÍgËÜy“-§_¬N,‘é³E2ˆU2S¶NžŠ…2gÙRyž­•b±4—]2[âÈkšœKWÆð|gFíËèÖÎŒÝYZ޽upo,Â¥•ð€°6vµU0-‹Þ{Ç(võ¹®VæVžÈEìoS+9ô}²ÏM“óÄë~Œf˜Äfã‚1⯄’8ˆÇe“¡ÝÒï°°Úý˜«å¹äý´ÑmÃ!ä¼ÞB`¹GÔ•ç\”F<Äßâˆ6Õí4š(¿ô½uÎ4u˜g]õikj4ŽvÅY£éù y ’¯ y +ÒÞ»”Íf“ƒ Aß@ñ Ð'p™}VŒÿÉäÄÉUÜ\ÙÑ5»º²³«›ý]ÉãU|^âõÊ~/z¾xO'w̰ä;(|&@ÂãËŽî0á2VåQƒ£:ºcOì§ö~.¼úI?·JÄ_û†KXZ¢‰yì!I’3Œ|4zi·Œ_êŽ `ÚÇ/‰Ï›Þîs¡TÍ{Á¼ËE(?3ò¤|0øäù±'];øäéåHñ˜={,³x’³<ä}G1ÏCÀO¸GþšŒk¹%,ã©ã?]óÓAǃE?’Ù —…SáqÊéuÙašœ§É•šÜªt°&M1¡3“ÝOt@‰ƒ69k“ãv&Dc¢µNÙå›Ü¿gÂwÎ…÷ð¸Ô ÂщK9¹—°$/li—Zn,°ÒÖ:¡_­#\Ô:BQ +z>#:ÀŠº÷+ZI-Õ¥ø¬†Uêl­øtËQ5xë³¹k§ûÔÚZ:5ÇaØÒì^ů4¾-÷§jmðlª xKÑD™;ÇÉL[Lƒ_x"¿FžÁøQj¼ÑɉŠTN5øvÀon ö¶PÇŸqMz†czõ6XC—ã´ü8U­BJžsѧéâcSé]º¸AŽ ÅSá…a(”éEÝ$zbs 3RÙv)ÔEW(©jGŠ=‘š<)©“½*Âz‘‚H?¤ž´(—“T¦LN9Éã"Kè,ˆ5,z(ªaQèfÛ fpTà‘Ÿ¹Ð$Ül'4çUs™Á’‘è¦N0“—0â¦(<õTÐÓN¼óç‚¡.ÄÐÖK$¸‘hp©!‡c{U}t‹@ÊO;’yÚ;õg;¾Ü°:æ`âÄdã»årfI²p—™’„ó ¶t!boÆDÜQØAÔuu”tIÎ%ÁD\pE¼íU‡ZqX© Ý“1ëZqØ«{¶U—ë2ï + fX–Ù ÅlÆ`KôµÇ] ÌÕ)¸U°–›¹Ûgå8ºÄçv™× ÃI»ý²ËL¯ÏŒÏäÐC›]>üÌ/LGÌGÆš|É.‡ +ÎÁ‰gûŸóűd1—û£Š®2TM†;á¬ëcPÇ¡ ™’·ÑL°y2$1ðÖqLâI|ÎÑ=ïôÏsÃé9G÷¼ÓÿÖn˜ãÞçè9è¬û0ºÉ‡0HÍ7 C 4#>mDs2 ^*v3n̰q3ò]XÎÚ†Pyyê? :Æ&tŒ_Ü8_Ü8_Ü8_Ü8_Ü8_Ü8?©øïì†_Ü8_Ü8_Ü8êøk2®g»qžq´oxöãîS.þÔîŽ9ºãN[]2;žŠëiï~Ú» Šjïˆ:3ùŠ;êlÖÁ.ºÙy¹òMõ3øÛ£¡œE˜ÝTÅQås¾avWu ŸU,/pzºò]íæTÆó•ëb ì÷Æ•.ƒO›aáÕÚ{¶ŠÍe, ~N¾œö±Át+3ÌYNã<Ÿç¹„n.ì1ûØÙw +:/IøçŠËÎ4ÙË4Ì»¤äÇYﺅ¢v‘1sÁÈÃŒ‚Ǭ³•ÄüuZþåB{³% ¿$ß§4û¤Æí¹½*·Wæ’ñ’²Ðç:™á¢Ò%²Vê\¥ÔM³RwV”º…N7t •nÊ"§¨sYð$EÎî{{eøØ*E!Þ{-³BÜÍ|ÈÁ÷´Ü]IÞî@íŽa5CϽÝú*x!}ŸýWtG~;ùçy#ó%Ç:#£ßbí³œ‘åšü q(zû­sAÒ+£u:#ŸqѧY”¦¦Ei¢EÉ‹Rܭ޳#ŽG­•)ÿðqyè8ü:‹™¶*OÚn®ÝþWÑZÇØ^ÈK +ù´¨b0×0Ø‹£N<|ëú!K¥}õ3W/¸XH§ìµRº ©NÂE‡,©–Õ –õ Jƒ¸¨`0Šr]TfÇ¢=Qç&× <®È £«Åãhüºi`ÝÍaYXáà)©^éÖUÕL‡-þ´¼Á3>iúšEÜÊtØŒÖEkä +uÒj~´¯ûˆ<¡çùº»VìñÓA]:¤+¬LmU@ç¯[Ô–†´¥mÄu¸¬J¶u ™®©²´‡--aëH,?{Ÿdµö1VsèÔóƒ£ ‹Ê…ÒDHÔ£ÑOöÔ0‹ÕÔµâ”þf‚Œ>!šàs…'v­d‚þæXgÑZ +wþ§ñǦEŸ~&ÙÌ¥ìŽáµwtÈb\h'Så¦Þ;©‹–²×Sä­ºübªp|f{SyEtÚG¡·h½óV®ˆ®òDÔ¥`SùÊ#öÚ¦äGuÒO£l€5¦"š”Ÿi%„âÂ>îôO£kÛ¤k»¨ÊÚí½÷¦|•‘S²¥Xÿ"¯cαkõåH5Èİ4¿¿V7Ky*ˆö™Ç³o˜ +½=Ï÷díÆîøâ©vãº/G*— +¿¥‚o©ÌÕö¡ôâÈ8ÎsËÝÜ„#äJ—¾›&¼¼œ{oìæ²—qv ¸¿ ٶˆ’px +à_’úx-¶üœ‹r—ƒrf ÒÁØ~ݼ .½üœ‹rǃ¤V3€§Oi,x縺 ®löœ‹J_'ׂ;S)4i¢Ð¬hvÌÙŸÄ{š›ÿ’ó%æKÌ—˜/ 0_`~ +Ýôïõ†_`¾$ÀüÎò%æ³1®/ 0_`¾$À|I€ù’ó%æó'ÀøqœŸå×(×|IIÆ£¦—Æ›EÀ?uæüÀqqÔ¡J¥u+M_ëû­4ƒ¥¶¿×ó³jßUúüZUßÍìï,—^š[óÎŒÐÌb »Cçæ»{¦˜ØbÚØKƸd«à±n=vö¤½+ä_¶~Þüóö¦¸gˆq¶n-Yaaº*X“t5'ÚlØvü¡ÀuÊn¤“Uj;Ò"mE[“º'RWjŠÒîz¿2Åní°_Ï%õ¬ignê¼èå<N× œó&åìéÆÏA‡%ìp7ÎE·ªö圮(çb)NgYZ$éiWÓNZúOûQ­ùºÊ¶8(+ãÚÖ¸Îojd8uGXÏuÇá8ŽN…qìÙÊž všºX!*³$…nM Š4<Ьܮ+4 HÀU˜áÖ±ä]Å:.bÃ××jôMþ8éAkèqñ/ ‹dm³8пµÙ¶µÙ¦µ«3W¹ƒý½×Þf~ßss±¿ÖÞBPÓ4â¸ïïä—ÁV1úq8[ò¼ëRŸ"¼ˆ8î{Ò:ÿ?zÀ¶X…`Žñ•‹.EG_òiø¨æ‡OÅGÏÂCuâ ­MÔU2ìIü³Ò¼«ût)¶æ`]%ÅbCŠ]>.Ų6xžœzÝŒ€–ªPØT†¨C]Ë8ü|ŒÔjŠ[Á¡®BCm$ô˜W­¢¬îI 4VÒî Ô-DÞ!tvZ¤Ó)ä¼~‡ s[þ|º•Yá|Vž—BpM?Ež)hM@]vÇìøz>NR¨H¢î4¤)çP¦7¤kã C(hA{²ˆ cÒi§,J` ' èPÝ#L¤Î¿9ÈB–DÐ-XH›†5ÒI¶,¿?°ü? +i¼Ä|$¼QŽÞÇÁÌa·ê»t Ë®sЂ( šoÓûÐ߉úf…]˘°ÆK#^z’à¢89Ó/ÑH8"IÿP,î3¯;/1Ò=/Í—|^jÖèDK~¡ôYž.òYÝg_nøå†_nøÓÞpï¾)qŒÅm³wÙÔîš9S{?MW…GÔŽš½«æ¢ŽY¬B³«S6Ü­¢MýíæÜßâèÚG/îãëÆeúï2ŽqÉXbK4c‰g,qöŸVqûÈF"žFxãEXöx~,¾±Ž´ÃÄws*ñ2¡x}øƒÇ¨nñG8úxä§{ìËê§QçJÝq§ü×½áº9ËãÝ¢+§]n³RµXÉá ûî*ûÎ*Ë®*ËŽ*¹›J·è¤²î¡R^ê®)­F)‹Æ(šŸ<Õ¹¤Ùeã´yì9ÎÚG§>úÄŸnÑOë³ÝgÀúû¹á2Qj‘$lyG§»b/Ù÷1@wk¥òŒkÖU¼ÙöØä¶*囹·ÊèñÅh¶T›7ƒƒÚèݺÍJóŒõõw*ÚØ~;Ø)4®¯Ïø+õv‰CSoVÉ¢u§EÚX•4¶ÏK+O+Ý+£·Tð}YÏE=U· “Y¤=vR +kÉ'.xðÈ)Ï™ãÿõÃÍÃõ?nv·W¯þˆÉ]ý¹t^HªÜyN“›rŠœŸÓãúœw–ÓâbN‰s9®Ï™pg% ®“$8/eñX¯—RxçRïT +ßµjy®æÕ=]Îë±B?Ø=ž@˜+xù¹’d?×îJ•»ö%$sQŒNUÅÏ«‹1—ÌE#»ºj䡚‘UÉȃ#»c*F®£¶LÛ^Õú.ÕáxVfïA2Æ/}÷î›û›w7ïÞ¼x± îåݯßó›!}óÍÕÃÃõý;ýåÝíÍÕ›kP|ùmcܸeG½iGÛÁ¡ÃÆOÃÖLP}o Ûfq pç¦Þz ñõOåßßÿ9ýqÿ}”_MØïÿ"þOüúñáŸ1%›_mþíÿô›×éÊß[ÖïP?jóg=ùB›_¶Î*ãùeëA~Ù¼ÿ;üwrzÿp~óêáæîÝÕý_6¿†²»»»Ýüìô«<Ý//^ß<Üݿܧ`I^~ws{ýò7ׯ~¾ùG\ðßñ_=i_§Ê6…KÚÍ9 Ë€¹¸˜ðyŒÃ[ ÍÉÐo'ˆP`g°Q'Y‹6ÐÝ!«¨:¡õoLp8Óö“÷Ñ È<º=v»ãNÇ=Ø)×›3¹oH÷ÅU[WÑX°ñŽ¡ƒ¡Ø»7=Ù§'fŠ8ÃãÉ=îk‡ŠΈ Ì÷Û`-¸Ä0AÀw~ë"nìi±FÞ +ÊFëhOÀÕaÂ=x–ƒÁ¿“Û [° ŒÎc“Oœ¼{äYÀUD84kÿŠË¿ç-ŒI'`,¦âÆâÕ,2Lø$M¯±D +¸#³ÂIvkñ×Dæ1 P$lø4k0 kà 'ØqÀ+âEÀB bûÀnKÅirƒ=Ј̋5Û±s#fMÞÆli“žhÇä>|•`pŸ ìw’÷%ÿÃû†Éyœ0æ9 }o†a™Ç ],]¸r–© »‚·±´2à6 zÌÂäzpÌÀû`éÁ[#Ø8ø_zÌX3ÕÆgpÀÚ1ûž+ iÜâR ‰\_Hˆ•Ÿð¨‡±}À)†OýãÀx7‡µ“`WR&Æ„ÉÅHXµ ÷tŽñÇ|›WØCåxq¿qäƒ"-M["îC‚ŦàâPpà=iG"­F–|ÇêÊ +¼$×ë ˜¸@›W|p£Pv^÷1@’Ò3 ]wK_Iô @È? D´Fâbï Nq¨‹tÉè§ÊŸ–Ëàü>\›Æ„-<¨¨qP‚Ý„ÅÇ ËíÀZ  O¼+„`&ÉÖæòcŽ 9Xö…¡€À„ðU¼ÇhÒPÀïzÐÈ‚·1#ceI@¶›ƒš0#¶'F‚uA®†˜$1žñÔÆ9[ì0ÐHNÂ4¦ÇH;«ÇƒPö´XØlG¬ †79ºz …±`vHžÎÀs ï§±ï-]?<#½‰õÀ%8cÄfÄ>›„±;eÈý€!ò;’¯ƒ€µbaÀQ€A0SnàkÜ‚ó`W².+yÀœR Ø Üé ,¸ð[; !o­ÞB–pê,†Ê%ŽX¼Ô‹÷ +l›Ó\ļ‚)&7’h°¡@¡àxØà4¾`Ô8ƒiÿ j¤w16pÐtí6àÍY/ +FÎH¬ž;mrùI¸ dÏC4à]AÖX22èÀ›¸-nB“ŽäELà‰Â"_¤ODÀòؘp,>%®‡YÀ#Á2áÄwÀYÁ³ÀN1càþX6,qœÈPq†a܇D‰9N¡¥ÅÈ@`A±Ã‰¤n£ã·=d:Ä==ˆ\ ˆ*Žšè'K3ç¶Ž%qܨx@HÈ~¼ÇÏ +#äê„4.õDÓÕгØ!óå&RA½S7‘=‡©ï{ˆCCî&<ÑxnÀU™ª³Â©¢d6y$ 8lÎ48‚qCßIjad@<ˆd+<* CïåEƒ|€ Ü»›ƒ’ØýAPL»æÝ }‡}ÃF¨†Z4¥("+ôФ2æ{ýkEM  E¹äH›Ý<ã…°u ?æ{PÒ¸y ‡†v2bBG¾ú2‹ào„^Ø”›^Ĭ¡XKõkmiÁŠCï îôH½Â`ěߓѼÀÈÁÔ{\ A1s/ $9Y>!½ó4KÁtÒê;C âAn`U†Í޼·ÞJ}kKc%¦hóÄÊ!›71íè£ÆÆ,‰ØÓjÁd96 Äò}Êžø|cÃÓ&÷d€™{ƒ§‘F\¤ìÓྌºÛµðÉòïÍɯï€uïî_ƒ”þq¶Þ¤“ß\_Ýþêêáþæ?pòægg§_Íç»ïïîߦ¯2rÈ~}÷‡ë—§_M/ñ"ß>üÈzÿø +_›Íï_ú¶Ÿ¾Ë¿BÌy>ÆÍÏ~¾ùýÿÚãùÿöQÆ|.ŸðD@àf lõ‰Üp3‚‚í·‚pA±Tøû,»b`¯§BC€±ÁîÔÛšðW‘º#ø‹Á"H$#0<±'ðê-h¸J¼gðí¹)8K@´äóv–Rhù PäÁÙ6P«pù˜nW_…Ÿp;Ã"Ÿ`ü +܃f¼¶ÀdP&Ý–’£&7ßnø,ìPòf¶˜\ÐY‡c¼ÀÁÉ‚BÜÌ Òi[qʃÅåtJØ “‹±òßÁ1uH´ I{â–rœR»4LßßÄ—†XMècÞrš¡Ô`«… ¸æ»ÎPÎB;Ø8ƒÇ—›©“I§‰C‚dt{X,1€X8N\@Àë:Bý¼|¢nÃõd=B7ðP~¢Ó«8îe .È¢è0M˜ÓI.‚"‡ùÁRõàK'<¢'¯ 8É–ÞTˆ3Ò`büÀ£ùeFŠ4¬´—ãQ =˜ °† F–Õq.)¤ h6˜–=ʔٰÀ¸¸%ž ‚ +ÄwÐq€)ð€”Ý¡ \ÓÑÒŒ ä)° h˜Vªt;ð/OôîÀÌ €ÖÊí€'P5õ£ ô +€B‰Õ¤A¢ƒæÜŽ|mì»L¸³ŽXÐY°qà JUÜ +Kd¶™ÈÑ9£Ø›|Ì2tɉÛs‚›bâœeá4¹ág0x·€‰yÀ“@Gx€jQæœ#^ÅËâ)ž»X1òs?,‹ N(Díˆ +ß⚘&,h$ççžh5¯¿ÌŒÊíê/“ö Ô´¥Æ‚WuÍâµ ¬âC–¬Ý€Ä¹ìó@n‚(JÜš BR F×[Ù(õ}ýÅH$ ./¯S º¶Ä©6S$ý8"m°hN^”ú1Þ b(nJ(6/ãÖ˜Xv¤&ÝxâVhjÀöÈÀGš¶Ž3íÍ*,gŒÏ½ËëˆÝÇß±÷€>x2ö?Á>h´bÈ«¸ed? õPë‚Êp‹wôvžq +XŒÄ:A¾ Ëe§sÎø0²îm|C¥øÔÆ‘aëÉ{bÐòž`¼ŸXnìñ^6#Ñ,ä:°Ý­7=´B v=Ø5czÀ³Éñ  +8önß“ÿ`á-Ù'^ib>Âb³ã8Ë +¶¼§VÇ:ÀDT«#õOòQ|1`ƒã“ëãeÁÖf™_„¬ ‘áƒÙB½t&ÙùIÏ 6h“à"m¬Ç)Šy¸¼VC,VàC…¥C/Ö Í•h „khŽh²ù€+"Ë|2° ¬Hm˜<ÊæÍé†Ì%5²µºËìÈÛ{ cÇ R¨ ɯBn#òÄ-wäP¡ÇeŠ?è'¼3 næêâ¡^^·¥& +þ¢¦íÌËÞ¦ÆÌ»j’ $ pl”h\*ºK¸ÄŠ3²ã=“¬ zò²>_Nî>•ý&3 *³”0L3b‡UAŸà‚cÎ31ò¾ÏçÓ|n9 {ŠÀ–ÙÒòºë¹`Ö!ÅÉ5"A,§a$o)îÍ,&Ðb¢(Ð@S™~.,Fß§%4RÂÚRLày#DTÒ·³€pt”Ÿ„˜â íHœ^(6¼ÃvœÞ9Ü*íç³lŽT±¡`“‚xÕħãq´?FÇìèˆKÔ´›áƒ4‚úËô¶Ø²Ø” 2‚:Ñx„œ¦ô>¿”IðƆãEçÓ9ÀSq: ˜§™ ݾþxùJêË2O[x/y@–’FîiIÅ@,qc®¦+ï+Bq;O2˜Ö¯ìIí‹Å Ø2 jDï뇡å{é›ýR{jîò‘ÂL|„ <›0¬hGn•7;ÞSçÒÒ°ì{ìܦÐ(ÄA?@ MÅ+ÊÆ$ÐÉI¼òó~âÏWáQâ§ì:÷ƒFÕ/®6w¢£Ñ6Þ{v’,[UŒ®ÓäÅè +v8onšã —kœ8*·b 4  +ZS³çž¼ßÒÓFË 9uæ7RÕÐèƒaa@~Å¥ä͹Þ|sH¯™·Ñ^ï F°!a 7äó{Ê zÉä_òPÜK Va¸>ÙJb€­œ/ÚÓN XMbêöK®²§ó…>KË, +¨Âãðf˜ˆë"<øÔ@[#­šòÅBä@®ó8Ð%æœU*‹ ¢ŸT/pÑ8Ì¢ÆNˆâ1Rw P[ÊA^eÅ™ÒãyÜ8IxzBR1[c–id,Ò–ó5PØPZZïV2Úd¾9à7 E²û‚ÞÁ$Z- + -ØÑ6 ZìÁÐfàV3$Ã5v*©§  |„e H0Ï¢üIÞÁ B ?QúÍÀ†„‹íF™Ú%™g(”Þ:¤·Æ[á&Òa4|Ò4ᆕná”߀þ›Ù@ß…L'$—!Œ-ÚåOÇí½ÐP—vÀý¯ÀÛe#&„qt… Æî­äÞXð:ãí0®, ´ÓQ>0êXÌ&d·´pG±&‚;K’v Φ´‹~eœ¡¿0ÎRâaáìlÒ¡49¬iˆðÃl¢0è$[ŸØ*fa8¢o5­Op³¹‰73|YZR¸KŠŠ>Gþ $wiK³–ºªÃ( + /8ÔÑb>fóçÒlikã|QêÜøS…$G†Ä4lz^|#Ü\túªkÛ`z;¬ê@èÁ­p˜öd<±&õ˜4h‚1‘Š©[KwP`qa­1w#É›jµ,¯#ŠÏ$*´i~ÙãÄïT*~(’Äï=„ÐcÃ;Îh~ ´”Ò9ƒ­k˜q$5ÀfÏÅDFާcðiâƒÄ},+[gìàv0|ñ x×ÐdjI÷tî8™ë@ä,¤"¦#‡ØjØÖ^Ø0¾åíé¡Áí¥V=„´$Li Á¹ƒþ$¯ þ‰F,½Kö(¢9ÆE9Ñšq^ ÿØpFYYQ®žA)ìzú,͈Îá%cöEÕ—[–ئ­~²%ª#YOÄEz€É +²gÿWÍ™Lr‡Ž8œ[M¨·ÀËdæ=€Ñ$6 µtTÑ¡IåŸð…ëåƒ –ø Ë:Lš28¤,¯%nÊ”QSØ@N9lé=¬ˆ¯´¥™ï3aß7h›g €#xÛÞq ^•½ÜÆñÿ0"Æ(lÔîkÁ/˜áHÍ46)&nüÎt›8oÒõf'ˆOk fàÇMatÂI}«…—@ëPzÁÛ=•¯8ñÄ×8Ÿ7Å™TÌ‹î?{G÷#j4e`2Çžúj“ ÒíN¥b¶†‚mŒ òÔíjNM/:=hBžâö.+6Ï#H7‰0¢«r£$2T]éÁ#Œ0Xmp”Y XI%L:ÞÒáÖÌçåBÖòŒ>ë@¯‚†º&D ÞŒo&¨$¨^âž5b{îJøÒ0V`ò²Ç¬–݆-FáH|ñ£ÖåÈ )Ô&Æ$ÏLµVÉê¸r¸}? ÓP[‡t7hwÐ'Œt¼`Ý=S†Ê(·d +þÂr2Ó•ö+a•ؘÐ)—µòLöD{9Ø(³€ÏZ÷&f4îc™°µQZ;ÏHÏ†Š¢CUJ?=ÝxXc~Pm2`œ&)žqšVølmm`ÌàÞȘ©)Q+)êÈøÁÞ& 2X™:Ì$¡LÚ@‘/1˜´·#Æ*p¦¶¯‹´¶È`7 ‹cøÛÄ”eÐáä<ÃѰ—`We2£ 6Ê~„ƒž9ѽE•©ÍO ûë%4”%.ƒ™EÿÊzø‘üUµ½‹_H˜$¸6ã`´¹Œgôت”!=ýc镵 ˆhË9œ$RŠLOêè^˜&ú=FÁØ•™'J,çÙŒ(—¶Aã’Šï$>yÜÌÖDÌHIˆ |ËÉ{yFÐeU™0ñ:" k£'ã2iõÆÃßm2å ˜’°´t­,®˜(È\¨%CBV×¶ZÈBuN†Ø?jK¯Dˆ\™Ø{S°We'æm0X\!M~£L̉¨SL¢Qi µ¼ŠO¯™g¬¶o3xÄ9õD]Ê4Ž·H6®Ú .0ÒJ$ægt³oceglf +d ˜2¢Ú”/q™ íÃÖ—Ú@„cˆ°%ú2ʉÀ•O¤(r7Úû@¥tíÄ=¥Œ&š`0^&[j·‡…‹¡‚LmMí1á´$ÁÚÏbBHþ< …o×^r©ÐßcLÃ)Ä]j©Ýa°@d¦q9PÏØÓQÆÒv©×n)ˆjqcâÌý¤½Y T`ÇÀ“òˆ*gX}ía«_DŸÑ>KMLíüÓ“[û,’8ËÊ*Ǥ"ŠâÌlÒTq|Vô˜½£5+jk3(¬ÚRµ'WíJå>°»×nä”ÛY±åµn²'åôVlNùË«ÌNöŸUŽyÅ®•O_q|Д*¢ @:!‹.ÁÐ’|:¢– :t¢¾*ðb)»u¸F-úU¤‡‚*P¤ CTœ‰‚3%2¥ ÆÒÄO*Fá0?“œ +ºiâ?³£pd‰ò)ÈS…)àzÖ +(*¸W…!)Øü'y­*ŠIÁï÷¤»Š–j)*ÔJé*JKé"*È«©Ó¨1¥©ð2¥_é3Zzš>«R÷J4œR뺦¾¹¾SJ«ŠÙ;挆ÞÜ8«R»U°¡ÒØ«HŦޯÂõ]êIeƒÐ‘–-[FŠÎ,öÄ©L'*´i‚Q!¤Ê”£¢O•9h^]‘T¤«²A© YeÆR1¶M+˜ +ÑUÖ4Ü«,r:H¸eÙS1Ƶ}P'ƒ¢ +in™#U@t1fªje-×M#j­­l±%¼[™qUPxˬ"Ê‹)¹AWFhÀ¾0a«¨weWóʈ®âí›Æx®¯Lú*Ò¿xT~@Ó™ /¯*3A96TbCÓA¢ò"”EçVÔ®£ÑrñŒÄº ´ÈiÉ·U¹ŠdÔDÇõ ›®ò6UÉ31wíÔðZÔ)SŽ­×Þ/À—-¡W´€Ô¦á@ ôiH7–Ž›|Û‡¿¶¬´™Ýj´;O0$mòÄÌzV.A& %´J¶N—LíZL‹Ä‘¶¦ª8Ê1&°m-LìàRû9ÙLA€0Ƈ—é½ö—1¬1±§åmïj…ˆM•Ë)–¨¥ƒV_Uûwõ“k±@íj~Õœ†Úe­§³v}Kôx½,Éo^¯fín×4ÑrÛ+Òª½ÿŠ:Kà€"îe¸Ú%HAo«:¾áé*¾7³Ôþ^ÓÓJ5Ý];W5öCŽÉF[d Ì—wÔ_±}œi_Ï@pI՚ȆUYÀ`¢ +a©N³ø‘äôYÒ Pf¨6€*¡m1BÜN=Ë%è3„ Ññj‚Øg}ë>L¸%ÈÆ+ÐÇW°Lõ¬C×ùbÓîO†j6 RƒÞHú‰z (8‚Ž©7›js`,KT.Ù@ÓL +¸rQ4P\“/—hVâ&(ÖÃh¥<}¡†õç Nâ ‘ç9îˆ <˜˜GÝ?‰½‘‘Ï9"E‚i0ÿ¬ƒ$vÆdf)úŒé¼—ÀÐŽ„Œ"&V+sMt7ÒŸ=Sí—w ñŒ+ñ¡q¨Q¦¤~…\Ю=‚8&7–7 Óš ºAèðÖÐæÚ˜MÆîq»7Ѿ×Zžå%ÊI²¦T‹ŠÝ±M¥†*zà+ ;ÆpšÚtÅ`Üž2‘5}ú˜«‚-±P›"qÆ*J*ïRlTk§xZøzòîALœzÇyº¨è^¡[ÈÐVïÚy¨­=/á€ôpŠQSìAï`}µ]7áõýžíxÉÓ“Ð=ŽÛ‡ô§Ð´CW©fyš*¬ ’~›ß—Hœ…íB ?æ•UÃ%—Ä#,”1 ž©§Œâ¬ #½žù–‘G­јc£;кÑ$Àúp4JË6-Rb|5KÊî)ï¶2ÜÞoñÃÀ7Ýh"î·JdG÷Î4êÍ0ÑXÊn«ö]ÞÁj‚‡‰‰<8:Ì»|:E°8òûtß´÷'Ö7PRq Æp7«¤²`f á®YÕþ¢ŠËíS3ÉæË)f[M1ì2-…Í/çP ‡z ´€©—Q ªhWS“š5EjáÛ´^*!^ï…ê-¦ÝÚª–Ô;ý0¢9„ƒ^5¡W«6›†^OU_£‡À±=–"1]\ø‚IÛØ[fÛI²‘y+=¸ :©ÙÿJ‚}vxûß~ûe6ö³á¥J-ËߺžÂH×rÝ’E)FJY醥¢ìFÈŠ²–…ˆ 2Z{…Õ-Ex¤/›¼T*¬Ž½än Œf“p¼¾@™À´æ c™ÊF—ÔÆÀ¾r<ÑæxðD~¡;í~ÃX1‰);R{夒%‹Ñ²6)ë÷:ÇŠGI lÌC÷#²å¦£Gß™~bâ +eÒ‚“þ¢¹–ptŽŽæ6Feâröiá命ê R¾<# Y—•''ú@YÐSd¢ ÅàŠ‘uuÁY1’Ó‚KÏh ¼tŒÒ†eyŸ„[ eHkÈ…{! k*è´ËR›X‹ÈÌÐÝ‘ÒÀIÝdqÕ`Ä¢…§d—ŸÄšq’ZÄAêSp{‰ð—È4Nt/…€™=‰>0ŠÚL:­ÜÅ;¦s`µ‡ò›W¼MH‰’)ø[\N ·¢Ë‡­“F“‹õFÃ}¥&†”žfHÃX©TÝ30ߦ«¥R.(}BC*Ú;bx=M¬Ô!mkÎXê'wÇYwDiNÌÛÀ~“tª˜¤Åô‹™¡x†¸@Ü3ØYWãdƒŽåݼ`Y?FF<áN˜ÞKí„y’ð…ú¢A$3BHÉSÏòÎ\Ñ-Óð&ÌÈ+—ã\]:‹àî4Lú51tïÜó0ÉØð†±!Ä\S®ÈY_j0%LLÁÀ òˆËÌS€ÝÀv?íøƒS˜4fËø>I?E#U9[¤}œAS¢«yÒ»T‹e V¦¦>÷dlø Æo)ýDø;1 Øt4b6ï#U!zn[ÀtVŒ“’¨*¦bN^:Ñ d(0=ÅÇa½¼(­†"ÐM¥’Ð az/O6-\ÑK­SQ«È@hÂP¶  j ÚÍr?j Ru\´â^þØš\UI¹÷bar¥RãœÏTM"$K¤g`.—Á‹ÉC—\6OѼOõ¿÷ráoÀˆR]á¸NÀã Ì(SÌj ¦‡:•³Â’ôå}Z Êã±o`ÄPÀT&»GŸuD<­ûI`Ø,QCü&«éƒÀ„ŠÜKŠ #’—“OÇ3-Äž%‹[KÇ‚)’^i˜ä>5– Ò@¼a4J“ŒXl‚1lf$™*rd‘l&‚ZÐÑR™€Bj¬ÓÉe´p4.Š™õÆH·~0 &yQ +ɈQÀä`þÕ!””l5¢H±L}Ï`Æ”#³šK*UNB? ­É«T mŽ6‡‰áÈ,®’žS¯'U1lnqeMɳ°&ÜfJ·a»šØ '“Øðª,H³¯Ž¶&KÝ3òˆj,`4i÷t0sÈ òv-#%c×YÞ?¸lT’hÖ;Lß§Þ¤ú]ê½ÞSÍ)ôÜÔÜFMoÍ«š«¤xžZlÅ7½(þÛ¢;ÍÇkúmH€jÔr£8èx.0_}xù›ë÷×Wׯ)WbpªËF³j4ç–…¿¼%-»Õ?€:AeBJ–yÕ?`Õ2-6h_F:e_€VËž%Ñ[Žän™@œ*—ˆ!̺e®“XzöRz¿Ñ2€Ÿ!8üŒuÖ-ØÄ£ŠÂXZ§[&È«°RÉ =¦Ý2¯&þA<š=¢n™€}š +sÔ,{o„ÐnÀaz²lÁN´U-¬÷)Ë¢îŒ`ñËu@ŽÞ´;$XÆ]S¤ú¤;$ÐXÀ,,lÓt‡àâ- w-#X¼(4Ì‹‘ Úº1ï ÀÚó¾Ä¯ºï4F‰fk$¦µ;#pö¨ßâ>ìÐ0èÎ|Rº³ŒnŒ`Y +JfŠ*ç²Õ!Áṵ́F®Ý Aú”ˆ;±HT£AÂÓ[ï(uìéJòG*g©S«¾p¬67J°4žÖ¸q©ïï{lšOB®ïoÙ.ƒ†;°½y˜öñˆÃ¸o”ÀÜBjD¢™1˜ßÂ(y`|É™ÓCãª%8îià§Ž+F<<Á iGzÒÉ;Do‘F –f[¦ô 67JrÒ–*Ðqcc™Ó„^Dù7wJ‰9V¹Ù}ÎÁIè¢‚Ì ûV `Ìê±ÿ5´²ÏÔ+¡nuÆÔÄ$„åî[1ÿ‘å­˜ÿatÏ3Ët["#"^ÝóLRͺÕ“S,ÜÄpè¨{ž1ßP„YàuÏ3¦¹J€¿g% +ÞEÏ3ÉJŒ•¬DoMÏøâ4±ˆXbh7=£=Ó’O:é<ê¦gç¯4=#ƒK'0K¢ÕôŒfÇd¥¢‰B,žUÓ3K …ùÌl­»ž1ÀùóºFVdhu=³R“x–í¨ê®gV‚r˜½KŽGûlÕõŒqŠiR 0õآͮgÒ°KLs*3²ë®g’Öjh „°5ã¨Û•11—+ÈŽ[Qzgµºž •J‹±`‰Z÷‰R¶ƒg@ç¶g\_G9Õ²òéiå»ÀÝíŒÑ©RC£nrÆlV¬ ¶ +¦`ÊéèªÉq‹<‹6IžoÕãÌ0kÁ2cr4£¼nÕâ ¯%®Ü‰1v<ÐâŒ)F´2ªg„WŽiÃÞI^»nqÆ}èÄ + éâò¢©gs°Tk3qÁ¶Fq™Ò©[›=¹= +üçË'ò†B^Ôôj0%Ë”3ƒ¹d4°2'ʲ™rfp.i³Æ\æY¯œÄì)/4Л©K+0™ Z°$2:7h§†d:öâ°LYo;5À¬ÌhhÀÐl´SC 6SXµ£PeåÔ ìu’Ùè-¬œ†e”ÑõÔ*jŸï/.WOéµKƒÙbFLˆ•h»4LA˜ž±yÌæ¯])Øåt༠+—†aHt¬¸€3m—†$âÉ“0$YšÊ¥!äÏLHðÅH¿³riðAùæ­Ì˜vi¤òœ°I ,. *j,YDEiÞ³KƒÛ;mNfþÛ¶Kƒ‚)Ryv‹N»4˜@ÉšKØÒƒdl)—ÆÓ[ãG»4ŽópãÐHö÷>ÛßmÓþ޹–ºÆ„v”4mÆêJÒÁæÒ²{h‚¬ÔÃ(ö™ëg%rò VãËø‘Ck¸2~¢¡ý~Œ¿ ßùOãÆh·“æs%ˬةÝNL@Í Iô~z]zØJ<^O–’J‹¤$Fͬžu W%ŽÉà ŸKdâ8–¥Žc;á0N¦'ΙØÓ›ÁaËrËêªR¤™à1ñ˜~2sYgò¬^®™“_ƒæíú4`°R@š€@¤¡»ï"&‡r‰¨I·ËBÕÚnÑ=Œ3•€&X›ä2Ø‚ïhX¢ 32õzQ;[ ÝHóˆdõÚ¹à6ù5àŸOÍ\¡›æ$ÈZZȘl¿*ë-¢„v[©%“úH1p`ÒdsR%cßNŒë@+µwdË’ãT:,Æ2-†ª\§çK b$ê};1Ö5I3:1źU]@¼ n=Ì¥Ôù´H]†1k11õ*eúï µÊsNÔ†ÔäNÊ»SîIÓ»\þ=aRŸ0éÛµã•@-¥ç),“ÖEwR)VoäÚÓ¬„­JÜó詚„l´[ +ãC$°Âûà;¥”¾ÀÏò.`šbkUâ§eE!&Öâd)ŒRÈŸOz•p_¿Ý7 à›°¸Q€“î ‹†œÐ%@´ûfä2·¤ˆžE.r_õŲ‰þ2)–,ùÁÂh´€:nÕò9ëJ ì ,Þ<¬š)È‚æ°CYd®Ò‚U¸§J¯†ò÷²±Cù¬tU¹çä‚ Xªôà«ñÙ¬F™½ì6Á©K+ÌÓvßAŒEv&A´Ð@{:ÑRS ©1H¡ÈZtÂÂ>ôì±IxdïŠÜ?ƒÔ;òòRU/wÜ …%"²£»j%&Fp)·ãØKv,Í=ˆQäX†Ç®[‰q…¨ C"„Ô™0÷‘7§oÎ2¥óøÙ’,bÕ®„i„ ‰3.И¹É Y¿(®¤p¹[êŠbé»^jèMt«V*"/À"&zz ôÒ€…LVô9¬_Ï­YZ¶P!¢ï†EL<Ë-½P °]7®"ªÛ÷#¥Ù£ô‘!D—ô|ÌK°Bsó¾° uV' c!7¬á“}O™ °*­¼s‡N[×cºÄ·°j‡Ã…«Aî#ØÊÒ…¤ŸÒm‡Û’¢sÙš‡4ÇJ©¤9Ìõ¾)=ðÈ‘%·K ›ÛÅcyzCé²oPkTÌ)Öü¾ÛT9cïx–Z#ò*ý‰÷ÓgÈ·Å~\65¿…l£hé+¨²¾•CB‹Ò9I¼ QÜàuÓº“=Œ ý +FéÒdÞçˆgØ ž.¾Ü׉ŽD㣺D£ì²”lqQƒ ª¨âçRr7ùœRö3µœ"•a@£Ð›ü¢M•(Õ= ¤±²Vnl¥TåÒ +Ëg|ÎÀë°j eÄÝÄLKÆ¥,ý• +J…TP +¤4·éR_,›{©/Ók‹¿eL•}œ—„§Ô@Œn ˜ ’ÌÞùß=/É,À*>ô£”ó±Y‰ÌüÓ ¥pÓýëWïT9g²|ÙÁ$‘‡N†Ä²-¬Êh¿õ|å]7B¹þáC."kÿŽRpßpLÒjè«¡ Ê Ë•d¹5¹+ÑPWVŸÁ!ò­–|åL.,óB`Ã2/+ÃÍXéŽ7#¾Ú&ÏŠvOÁDc2lVƒœLE÷©¢Þ¼IØ&@NLqqó¦bÕG05ÂXCˆ·Ü‰,£Áx²²kEjNóî¦õ *KV‡´À…o0È€"d€ÙØ·Wý$MØéÖü‰oÅ•“Rôaæe@z´iÏLOP šË^‹Ü=䮥1#0ѰïßH‘<®Z=R®‹¡´…Ä4N{z7ëV“iŽæ¾”ôD§¿SKJj)/TÉÝV’™ìû¾[œWáëô»Óô|ðó%¦­¿œ‘0C_Øü‚5ä˜Ö5cgÖ¡Ù½§Ûe\n;$gKKš>î¯bÌ»£ /€}.×V¬K¦gVî»×&˜ /´ÒÓïöúGïóòÔ÷×¹dƒÙàÞ3«:œ~ú¶È¯iƒ•#Æ  q ?3_†Õ„RÃú{³fF”Î’éEs£H[øRÍÂÒaQ4ÁIŠš¢1R»ÉX¶A(-u3¡^7+©ŒÖï%ZV”Ù(¥ŒíJñ…Î(Ï™›lQÑïí¾·–KL`©{{šU‰>J'­°•šs[ph RñpÙ:œqW천یtºØÙ  tV6°pË•,Šà$øhn‡îX¤8¬¬u&Ý8›HX×›fšbK²#.]Ú]Ê)ûVïÜÓÞš#cˆnÝ@oB.WÌC„,§2(‘/Н40ÄÌèeE+5)SÕx⻹aß¹ +Ân<ë†U|¢Ù÷©b¸N£>Õ a0ª[12ß1è±.Ž%ò©t bÒˆøkZ§FÖC£ßg£=ÐfÊ0×.êÊa¢?IZUt¬_ŸÍ§•æQå~ªgTy‹V«¨ùÝ«úkó€[¡òÔèvPe.ë²qó +4›?åeÓ-ŸÒòêNO™š¥ò2ݨB{3¡Õ5ú4¶jýÍd®Jæý « æÍÓ.R˜wšªqX¶¤*˜·o³¸â|Q.ÉXX.â˜ùF³dæ1ª‚dáEªødæ[«‚•‰³é*—™Îe13—lvVÊUUâ,¬W÷QÊ|ºÝ>)3uU/´pÿRa´HˆVYÒ"LJ-Ó"lêâ§ZTµj¨ù¦J°f9¨Š·™Ù¬ýZ¬*«D²*?«Eû¢z­ªæm %TÙ\DšåwŽQe|*€gàÔ*¬à–*:¬š*\¬€^³²Â‰ûTS•bnœÑ(éÜ8«* ]qã‹ +F7KS+®*\+_ׯÖ'´Jlë³êRÝEßPU¾•–Ò¬®”Uu\©GªryÖ©ZeÏ‹ú¥Š¦=M•Y¯t»f#¥–ZïJ›lö8RÊh©4Ÿ•VU‘>ë·ÍzöEž‹à'MYWÍÏju»è~ÖÁ÷¥ú“Ž®júg}¾Ý ©þºQ1¨VÙœ°j` ªëA1LÔ f+F«ßÂlòÈ]jÓHÝÞAÙUš]"”YFu›(†Õ¨¢X}Zm.²HuÆ(†$ÕTC™ŸšÍ9”ñJ5ù(æ®ÒDÙÆšMEŠEMõ$Q6¸º­ImÀkõFQÆ¿ºÃŠ6VYj‹c³«‹²Wª¦0ÊÔYúÉ(i³ 2¯ªf6Úl[7ÄÑg´ëè³ê+ƒ²D« ÑÍVAÊŽ­n£ŒãêMÔÍ©³ÔÌÔv{=»µÙÿÀ*U^ƒy‘+7ƒ&ÚEÑ&3åᨉµv(r¯+ÍMS»eÔΫ:zóÖþ öÞ¯¼I3稽Oš×T¾«6˪=_Šõ)§™âšÊçÖb¹Êc§¶rö)^_\„mQQ;•Ä)žÈ,¡´Û²%״׳‹Ú_ZKTåm]ŠáÙ5[ËlåÌUâ^ù‚›`A¹’ÔP^èN”ïº i”ç[!"å4Ϫv´7a—rÓ+Ц<ü婸€f?!U0cÌ:¡ÙOH…2h [GA(Œ¬‚(Z[E`(x®‚74įc?ÚªB:¢UŽl¢•”òESÇ)_ÖR÷¢•¬:l¦­¬ÕA7Zé«ÃuŽ9£¥wê³jýµ +3Ò*p¤ÔV¥ë'}Ÿ:¬÷ª¾¸êu¡_ î—¡Ò껡'DÝGMjÝäàš|¡äfë +“›Ù6;í¿¬õhûdjñ£>o6:|õ$ehü3 Îh[¦¨Ns’;%-8þÑi®Þ=gݧuš“rõ¶OåêY“YBpý#æRYVú%=ơۢ©kÚ}Ñz¶Òa (ƒòÌ>s|½>ÅÛŽ.ˆýÿÇ=ï®f\‹·OÒPçP£9©ÍJß³yôÐè£wìÑÆÎ `GíFsŸm€Œþc‘¡ÎÕÒàg/†$µ |œ| EçÝ›ÍÏv»ÓW¯>¾ýÍÝÃÏM,þ¸æ‡ˆéï¹”kÝíÀ,ÓlÁT‘Ä@à 3A,{VÛ$Ï€ù 6,À^¶`=gÓxí£ä^D& 6›€Ld…êIΠa8²I + ”­Ì ž† ÷à‰¹ÄÊl*…D*-Á)û¼"Of4žLö‹3¤0™ 9ׄ÷Ž©sXÈ9]ä7 TÃm˜­‹»˜”dY¨›µ‡hv¦ÆÎÉA@‹XÙ!ë¤êÒïä6¤&¼ä‡óºÈú¬14:mžœÅÒûÀ›T¼œ}£ðšQúúŒLʘ´ÍhYvX,2ÈÒz#RfdÜæ€‰–ö&H1yºaÈE+C6)Zƒgµ%—Y-Û=ÚÀ”1Š À¥RÊçt"ò:Ì™5ÿCйÅ}ø*Aúk>¦†JÁ¦(Åcžh{¬ùÅ8£ÍÄÊ=òrÈ›: Ì€$´Ò=‰œ,å<Ò°lÓ+HcT6| | IxbÛ(‚(¢&UÞ?+¤Iœ¨WWgQNóÝ@aÏPcÚÙÄÈÌâ~4h e2CDpCñ-ÒÊ’±qtlÙ$ЂJÐS66F,ÓoGV6À+8)"…52‚ 0v{"Àb¯‚”Ü@á+KíÙø@02?ƒ8ŒJøÈ|K Zž±+6Îb%{av“§îAç=±½g”0änNÈÁøuf aæ'+‰*dr1Ém¦ƒ†}EæW04{’‘`ÑØœ]tÆÀ±$V­t]ÉC g gd~0#mëx#ðvìRÌ­¶ÐRŸ7…&ñ ã6™Èñôö8›¥@»&õÈðpìöqÎM,Ê*õöOJ]7=Siðï@ðÊc,Î0““:Š\+†v2~•™9=ù¸)›„ 8!J¨QL[Œõ2]êåÅÐk_ª’G°Ó(>µÊm”Ôfk™2ŽIÏcÏ m>ˆµ”¼“ú€¡#Ûzõƒ0F–ë'RË5Oêk‡˜6¸ÄDÔ?Ž©=q²a¤/øÞ–°€ãBj= +o4Ô5éP0sy!/¶ >À‚J…A[¾t”6$,¬")x[FP`ðÖÖGv;˜ðþëw@ŸÅ´ųÁ€e$s¾¿h=X¶U#ÿg6;2ì‰ÀòÙlžƒçHºÖÊÅè–9†À:fä-´=³ò eœÉá>V²T0¾-÷dëv1¤)%ñë“Ø@þ‰µ` :fƒŒ faí‰áÀ½ƒJ¥ÕÈì|np ¦iËY˜ zsò‚Cù õ”Ø‚B‰¹VŒ¥b/<2µaR´3ô›ÍEå ¹h»@I€(“GŒL¯‰Ì\âže½dfuæ‡à¥</};ت#p²àl>Á2®ŒwX|l ®d®¤åó‹J¾3‰Ë±èл@»u Wƒ5¦Ú‡¬3Òsoƒœ¹4Î%¾Oê´,]ÆÆe"ûÛå‡n”Œ)<‰‘/CÚG”Á†ùZE6H>td0¹å^ôt¬[:øˈ4îR´H™—ÀH+9/±©aAr?¦€uY  âÖŽlç3K€-¹Ž8\Xn‹u töbÙF+qÇÄ>Ñ–N<¹‘Î-ì~œÅGnH50ÎÍÈ‚-x¾I¢Ø@"ÑØ¾‘9ª‘mˆ˜46PgäV`ó"—5ù±—Ê<=ÛVB[áÌæ„Ó†ûŒ¹%%;õٜaÉ–¦TFùŠL ‹<Áëï…¶ ®eÃ8CDZw‰iÉœ¡¶É… Q˜h°|aEú fž€üØ´¨Ï®©ÆI´¥AgÎzd}Ç:¡²gYã[Œe`>”Û‘«“Òo˜Z>Ìk})l)©ó¶‰ÐA„Ò÷1²Cc ©aÚ³'¹§kœ!ñ Ìd ©ñšŒA…í*’UZ+JÉK&pq Ó 2FƒŒŽÑ‘©àŘ@Ô ]öXÉ‹ÚÊc—G†° ’™Ì|9°I"?ŒxK€Y~ŠiƃdP|s“ƒ#Nj¥à æžr‡ÔÉlDJ²´ sd_ŠÂ–ý…¿‚á2ݞѳä)¡­YÚ“ EÈž-‹h{nMéJ™Aæ2{Â’¨p–g‘>Âqúð$ÚÕ@Y”{u’'MÌ g< k.ï6Iù ÈúÄnq”26³)£tœö¢b¨µ)Ï™,±Žå,{ÕʲæL ²9 Ÿ,B‘ 4G¹Ô³¹eà‹:â9”PÑJ" V”…Qh0aÉIfJRæ0a2‡Šõ +t‰¡vem-C +[ðN"I6ì Hk1]ƒtuÌO˲`ã(…1XÈç@ãs&Á?y†/U')Â%DÀÒΘÆi`MÆ+9P¦±—NflBFòÜÆ‚ÄmP𬠱CIGBÈ ÂhèC©£ƒñ:ÂŽ0FEŒ^Ö€Ÿ“ +sÞKY‚ÈìhÊMÊ6›V‡YªlŽÊ»àŒ˜ŒL–Le²àc—0â2¦Ô°Ù†4w£'Ó7!@)=FÉŸd&»%ÓeŲšø½@.G-3ŽiHôL˜ÊÍe}¢”sÁ“°(Ì,“Ò¦N^”ÑV$#ÌRÔn±“©ü°Ýa¸¬É/×ÖM°‡“DØ#`Š탠AOwÙ(­áðx@‡Aúcðõhù#} "ެ$.ÉÅÇ7 ÊÁ01ª.2UäÂ_8*ˆõœËËÓ²x¬ +@ºr´˜;™¬: '‹ñoÅTXå IÓ\ bË¢­@"s“EÄa» é­ØV1Ò@G®É€G\ ¨!ãQgD—Ò÷Ù½²ÏÉwú¬z˜l©=õঠ¡ï_ûêöÞ4Ù +Œt5—õ5 ËC¿ ´¿kW‚•Z~Ñ“•³\ŒzuFkHú¬zjرœÞ%¼ +UäAO/›´‹KÅÓ ¦˜æ2Õ® µÜ´†0ËÙ{2€}°ú‚•®ßabÙŒuy¹ÈýtaÄéÙ ZÎ êmP5_@pºg Ú{BÔ{yqcoqõ,M\ž¹=>Ö»Ø!O)!±]5÷xdÅ¡ÊÐÈ’šWЙ“î#^Ó`7ž©ûØ +µ±6Ûò.Õg‰Ð¶J¥ÙŸ˜Œ&û Ø4 õÒ±“V;")çÚ¬˜–!Ô->îYÖB☯.’:‰ºLŒT!R`”ZS‚ÈxIŠo p­%m”ôGz}™Ì®¤ß±' žÞ3&·)ñ©©f-T=«è`Ò@ÁÌ÷Z0{¶¯„bL—:-ùî‰Õ@{ÞKúq €÷X•œ„³^P 5øŽtK±јÎh@Ï 9(6Lœ)hèCÓ')g0>`Ðð‰V¤Rm¤w}ñ>V:òö¬N5hç©8Š…0²õœÓH«Cg5)ȰÌiQÒíå GÎU•†2õEYǬ³6«F·´Í±£a¤‘a¤¶SƒãDq!ÁßHüd{V I5'#m½¬ÿIÞØIõ'ÚΉµ4èç.¥&²h”­8¤Q‡4jVTihÜ`‘·¨<×Ð]è¾”ŒúTïÅký‡Œ3Bë'e€kªQžFeÑ¢{x jž•0Oë!ÐH›¶5ZÓg´ô@}V­OÒJËØºkEp(”?¹Ãé.'554Z—•Ù"Y*=µZL;âÁϵ&>WëñdtLJ¢Gº‡*[ˆñËô/ÒaÓ¦À·¦HÆ[÷Œn܇5|¬§bú@úÁ8€žlŸqlãØ´’@Wͱ>ˆÓYY[hP—-à#»GŒÚLãÙÅ‚DDzPŒiš{87â`ÓcT¯6)}my˽`‰Qj×µ Xœb*4Üt(ó Ét\YÎÈ–¨¬˜žÎwP%,.tCÛêo'¯Gÿƒ¶©Òõ.+%åO©Zfs¬cÜ<Ë$1La1 k®cV5Ämd%Þ^Pƒ}Oç#›™[:öd +bÞ˜¥‚¬XæöFhú4´ ‰HíQ™°)YZŒm]ÉØ´^ózeY­%n +# “cVrÔ±Lã¡ÎѪ¤¤°“”À^Fj +KUÂÜ1tÚPý¥–‡ÛÖxš%‘BNº…øÑU,C5áIŒ®®@Œ#F"ƒG#[ …€«bE…›bB«!g›×1ã(ˆ*a0 X27íÈF#86cbÜ5ÅT,®‚Ü“˜Ð{Òˆ*[ƒIŒHšK´”:‚Rêë´¶16*Ò„ie;æ‚„5j4ìz&@0tš!¾©Á‹ÄäÑ‹+Gí(hNN(Ï!³#b«á=©’f˜T=O+5CeÚJdÉWð…ü¤JÝpRX’Û ·—0èJeq¬µì¥ä3^ŽcRªÏļLŽ Òªè#µ%3FÏ™'NÜ(-ÌI=ÀÈ™v¬µ9uÆ«¬ù¬´B}Ÿ¬PriéË ¸¸øb”П˜²4Öj¨£á› N9E)½úŒZwõKpÉ€°ÎÏ«¾ÒÁÉ Eܱ\6Òã4ê Ö– nÓ8C$Cd“î‚©màne^=wë@ç£2I8î ϤÈ3ëµaƒÜJ8idáÓ¢¼Õrg±ÙÇ’•û7ÊÈÂ3À¦Ø5.åiScAÔÈÔ™ž!ùIµÉÇ1x’¹ÚZä PƒR@X;muṙ!i2<Lv^þ•õʱ©’a5R™¯­`|’ˆO<É3‡JPNmMsôØ9 •aɰQ9ðÑ­ðlpFÎjËžc0urM²¸@~ãÚBȳDr±(9ц²2‚6E÷‰t=°°²Vº‘ö«¬lÎÇdD•˜ Z k{)Ï ¦K%À”Ý•gHåk¸ÒÏ´¶ß:æ ‡D‰ñß(°c*1 +h«gYTeI†N õ$ø(lÚ,Æk‹4HTL€ÛBo›bÌv¤‘žIr@e ‡Ø2-ƒ°‘a›yçU6uÇd‘¤ìG[üK»<æES"{Ñ&¦ìû2ïÓl³\9“hˆ¬Ü ¤º( W‘+¯Ÿ-·ªõR«jˆ]z7xúL¢þüì½ë®mÉq¥÷|‡ýÇ€Ô@å}ÎébYvË–aA-·-A–Õe7YU¢ ·w|#r®½WFní£rÑ’Ú%4Ù<{æš×ÌȸŒƒó¬ÝÍ0Ì +¾ÕZhÑ­zPnåV2[ê5xP½ÛSKÐâ%Ô|Ô—rKÍ|˵]kGrAYøh°Ú>ò¨>U 0þðxœÐ`Þ÷ZÅjõ«Šw«a­ÃE2䈵ýN3¾-ªÙñ9·ì_G=^B]®ñsåÎC_9”÷ÌÁ²_h›xÝå½¥8Ø =ƨ¯uEÞ¼°»óéÖòdÃa»5…—â&~¥v'»¤šµ@ÚFuð)LK½6#Ž,85y‰<î„Yµ>åZómÈn2™Ã¾<9µµtL@ô ¯˜N¶ùHK :œ'”±Ã­Ä»GŠ£Â«YKóñõ®%þ§#XÀú=Œàž 7ø`;&b!L¾‰pÓ6à#¶³?à,â*Z‘a%ÄÇ;+ú8 CÀžã0,; 0«¥ hš`,'gkj’'˜ìº}À½Ù!)ì/Åö¨€†ÚîuUöÌ€Ì +Ûmxm·í Û›­DÀ¬m‘€} Í › ¾P@ݽñ¤f/øa÷|¹€Üú„‡|ËÂÜÒ€€ îí×;$ep“"3¸Û¿×.ÈÎà¶ß ÐÛÑ@Òmœ©!Þ Ö³lì6ö ÐÚ5„ +èÜ…Å»h.ŽZ£ÂhÊ¥¼KŸÎ!¸ @é/±‹¯7£–ð<`¿Cd¿ È·ù€CgY±ì!W1ñ›”‡ãéCº$ñCÊ%ú·©›ÐR@±·`M#=ZvY¨ÐÙ°&³BsDH‡…&‹m6-4k„¬\hø™½Ø8²Ë†¾“h ½+kŠ2´Àl3¡•&dLCÎj½{wvùÙµñgævïF¡5º‹¶)åФ2ÓkŸSHn‡v©m’<´]…d{hغóô¡ßk›æíb¡XZÎBÁ!4®m ñ<³î:æBÉ$tÞmK/¡/TnbàR󉽄»ÒѸ ªÍF¯˜-%(=+þ4ÏZµø–*þ—>,ôšUË*ÃÑ'Þ- 1rïךš¹_ŸðÑÌî‡CYî BBmÃn‡–ËmuÏ,„Å6éGͱD(§“ ¿x-3ô%åÞÂÑ^a©Vúª¢Ö‹ÒZ,zŽÓµ ͯ¦EôQ2•{s⃴G`scÅõPæ ÍÆDjnSµ5+y´p”¬ÚVãyÖ*r¼—µžd-hÞ¾µ0ßëZ`WMø>k¡~ýÂk©?N“d ̶y&l@/„yÿü–Í +ˆ+oE_|Ü ÌƒüD¿ýŽ&Ë@·Ú\]Ûà;ãQ35Ñ­¼;€3ʱí£çOq6Ñ$óIÞ)øŒ¼ÚˆÈOP<èûŸðøÂÉ¢h÷ñ«“J Ñ.ÌWÆSä³[¾¯ƒÑ>²%€{Iö'žþÌ® ”*9ò¾¹»u„/ÛõáÂyâ ºærB3•¦ _ôOót«; Œ¬EŒ„ù¢r&‘Rù 'ÄÅ#7£Ì%i×&Íi&E‹åÊmF ýT‰Ö/ø98âC”¦Æ<®,7þùNK>:_5n¶às ×Ð$ÔÑÅ'~Z°têxZoÒfŸ­K|4ràù‘nÔ=Ìu÷¢o<Ïúã½|ô1>ÿ4‹·³¸´½i¥Ym‚’hæj9ºEðÔC†™D9°Z*PÇAɨ¿cÅ̼I½ìD|ú¾0ÊœOÍ+‰LI´¨¶“:!dì¶Ê;`ºx·âñ¦¹ðf“ˆÏÿ*¾ºeWÚ¾õŸìì;vv1Dô"‘)ÿõö d^;ÓcF‘jŸðåìF\úéÖ¼n~¾Xœ×+¯æý~Þm¶w"%`t…¾¬ÕZl¤´ ¡ö¹ÙÔVkO…´öG·è“mg /5ÜÇ;¯ý'CºLSÒÒ娑ú&–ûõL‘zâ9ÃotÄQJèäìÌ™ëÊìIGû$= û‘J•˜íüL–Ò£Ž +øpº <¹­†Â^Öi²²iµP‹äw”%¡FË,)ëlŠJOH„xß…èvvZê¿ÅQºê¢L…¢LS +6%šÙâS#¤3’¤sïÝßJÔ5‹JËåAzÏD­Úß±>,MŽ5‘D%yWõ:ÔBšR^8Ea`@)MG[Ù`ÇîÒ¿BÖ#çÙ}õƒÂ‡Œ`î,Û%ŸM«€$lWÓÂ5OÍN˜ˆËiáÕޘɛ߅ÝÓ1<”Ä2ø¼T”h&ë(‡‹°[ø…Ôkï­î ŽÅÿIÝ@±ÚÞU_ý'¡N:ØJËYøŠz ëåOê)í»‡Ø”rY‡F.¿>; šTÌí"]»ykÀEeŠ:9‰ÀÝÛgT +²PR¹âÇëLÿsóݹ…áδ:¿™>]š¨‡ÍpñîÂ,ìçdú3 [˜È€#‡À:Í»47Ëfל0èUJÒÅI-20KˆÍ®Ëðñx»5,Ô¡HZ…'9¢-€:ÍA|ÜNߨHàT£‡}3µM‡cã>n#Ë÷‹;Ñ:↶›Aqc\gbÜ\—É·èmz4ìðsA×`]ŠñQwK:z*«EøoçC¯éóÖcûÿVdb…ÓæÊ°Ø‘zÏA}žú³´xløIdæ'‘™/xt©‘ºÏŠ–¹)ª®)ˆMIÈKˆX•vk‹½¨ÑÁC@¦%5‰ŸÊp°…‚›Ifƒskµãª`àÄ^ +:áp¦$pXìö3ÓbQ¡ 1š8]œ´#™ã—•h¡0H—Q·£Ýw‘*Ú  ³.¼T·ú="ÍSdJtÓ}IÄÂЭ€Ð›óX2$Ê ‡vuWµT*{ˆÕÌs‚?¡™´Í‚[!(Úg—!¦Ucò>h +’÷±­±¨ÃYÄúÙ¢X2GÍ=3äf2ýFœ·X»ƒB«Ðç ÄB×?Ýý¢<,Xl¶x‹¸Øo3R\Ù±«ðI€œ< >ÖÕýí#« ôJ“`Ö<),»2{g’¬ÛAS6` öæ1Ù'¡K0*@È”‘O YЛ¡5lÂSžÃÍe>ØCl6‰z:£?8‡ìX"„¤†çÓy—ŒÌÂ&K«tüAìaÕh J]»ƒ1¡Ûþ^ð~ òùÈ—#ùªÄÔûòa³áNUïÇ6ÔÇK?Æ:¦«À,‚·Ð.•@R§ìPYø_ºnÏ«³ï®²¯öÜþ-ÓÛ”$·*Òé.)ÛÔ“„0Ê\ãol-‰Lm”Q&Ñ©0Ù̳ygo·½Ø»’d;¶}h28hÉ‹m¯ +ÑD©].˜Á‹­ÛyHq^ ã°9á,ÿ2Ð _fJÒv¬{©2+-”¯eƒéÖHoÛ¯=ÈW=Gȶ£ËÑè“៎“ p´ ehgd†t» +â-_ò` @§"¢b“ïJç, 4©ÍäIïÿc<ÙW¨v²×•3!NEê°¨°màôü%Üþ_´c½7)þöù¼þgȤ¢C+hŸëÑ•Fz¼yyD­ªsÍϤ¥d#<6#+ +vÜÎ-éöå +dÜ,}ñc±iin±Ä'“žˆyÊ™ ÉõÖ%æ3è ™È|NcoœûÍ 2j˜DgÛ!Âuû|ˆÖg; ºZ|d¡/Å F@Ô\ÖOz„Éïn ÔYFšiA¨°üB¾²Cò£´µØiìÒ¤_õM ¼Ã•êëPÞ –„«§š“ä2¢?<ž.£MÏ”€kž¡­z¢ÎUѯëÙC_ÚQ,¤Á÷.ºpê­U=„c!Òù"mNä…ÐÓ<-Ÿr&:HÙCý<ïeÈyó"ˆêx#¾.2¢d +6‹å‹Âª?€dÚ ‚´¢xÿ*ñu/ƒ­Äß6éNâÒaŽÅA'à:¾œíä{Í4QøÀkJS‹½fzØ~Øõ¾²@·©ÏHý§ÓÔ¬p ŠTøãAMÜQÇ> oÓ~¼Ç;ÞkN)Kzþ¤˜ö£(¦ÑË¡´ß¥t]ÝïVÔ„Õ€xÑL€B}Ø­®Ë)'.ÐÏWÝìVæÃ´¡†Û’ê;›É,ìj2³‘Ó¹Ù¬Žª.`<–‚Èbܵ(8Pƒ™É´ßµs·M˜»i³kY,!ß6UúªÇf×2ç”NÛ ²á£¼³iÉæ¹éÖµóÆ]ë¤Ô!(½öÔ6Û–ÝlÓ#áËãm‹ó¤¬èhØ m¶-n +Ókk›¢Çý²”Ÿ/>““¦”5!oéS¢—~|:u‹ð6 ÒyõCkÄ îLYÙ¼]ghG{vü4«\ áÍÏbºÐÃ<¤ˆ)c¢qªþMå +)P\ôæEŸL•'Ѿ40'·³ÚªOÙÙçl„ºeŸÈ$ÐHhv¾ü¥ZfSµ¬ë‘ÐlSˆeÀùƒòSs%mÝÊàö Ø .5ˆÔnöOšk‹Ô*Ô§D=$ÑÄI7&Ê•'î:{¸€B«]F+²«®5H{ÐúQ“ ÃŸ"Ò’îZQvñÓä\È]Cïsh»º°½·Æ…+øÞ‹jĆÑ'@¤»¡¡kK-ÏlJãÓ²Й-}KR‹ìm°?€m±ÿvž +Û +Ï„Æ =é6QU'ÿ ½¾§ èíGYò¬(>¸c Ý/>Èuºòã™$‡ÑÄ…@Zò,•+UÇËÂû_Õe  +… 9Ÿyà®mU(É( ^ÕEÒÑ/'… ±jþóãH.nÓN„6Ã_‘}礈±ú Ìr˜)›Å³:½jó m‹• +{¹Œ:ñhsκ' ¨y-ô¾|¸Ô~¤J×W:|§Kݽê£P©ËÞ¶Ym$¬Í«Ö—$‘h±9õ•—iºpYz‹1¨Ó à‰Ÿ@%竃³OS5µ5ûr@ýVù^¨Ö_³ÜÕ[µßBµ¢ÐWÙB*î¯äDÝü‹.×ioµ …€’ö?m3¡É~ž2|_P½‹æj8¿ýJ¯ƒ¤*ìµ|ñÓeyn¤ m5iNÓA;w¼ëéü¦ÒÉ`ç|P:DŒØL¥¦º=ïPôúh~ü+ØÍ~¤²×ªZø {ÂUªX'„¡¸\×ÁÌÛáÄdvß6»KPSmE!µIU=ùƒ¹àì} †ˆÝ{àPi&á'U¨9A»M–1.2€}˜u;‚Ü„_‰8ˆÐ×Îãv(m›²=C·GžØo +C»•Kò‡%‹ +ù xç…sRÕü”’ï¸Â6À–U¡|™±€”úXE7œÉ.ÑG¨Mо\bÊWµ[ŠÖìT¶å²°FSNØžÀŒ_Å @TûåÃ7|+ZK±F-F‘˜ˆm·$µÍLÇ]ŒDùFÑ-"9Áû$ô|Fº†ä?É3{±µ §øé"(âI¼?Øf:ˆ-æöŽý\ãJC‡¼éä + !ìçÔþ¹$!T=ŒSp1½{7õd‹Ú?A5êeÞ…¨ÐsÁGÚWÞhÑ¢[kÞ:ðÙì»ÃQãoÿô´m‘àˆgz'õ}F.{^àp儸ó™EÁÞpp)nZÂOÞcN‚µò%Oj%”F¼Nh¾h¿À5?ƒÇ$·ÐE'fþé3R\«‚촚ƙÂ4ü¤tAˆ!B÷.é ðŸgöTß8IQ´:…ªj–lT'2˜ X;³«è†áUÖTnj¢Å´¥@®»<ÁT»ÌarÉQùp5à‹õôi‡-"+[„B2G¢#KAy)Áâ` åŽqáô(r·(,X¾è nÂQ( ›Ü-é*𙇃ch|C²£HÔêÃEñõ›å Íg–}ӽߎÛe[N¾Äfï<øí´)vç›VÄ W¿]ÍGº'²ùÜûíœØº fä +B‹ß®Tºzq×Ë=¶uÒÑG£U9|Çè¤#ža ¨?\-:éº.•ŽD)?¾:éø}È'5;[#æÈR+ÑGGaü’G½Î³©½¢ÚüÁ¿;ë MЯ»`8+Rs\œu~©\™=çÞWG˜¯“Ê­@ óˆ¾zé3ùfÖÏè«Û{R[/o8ªo}õ.¼ê{ÍÑW/rÂawDýûvÉmg³IXq¡s“OýÆWç5 +Mn¾œè«ÕŒøÂÝL-§é«€èzCìj¦î|õ2`¶C¸¬’m;n_½Ð·p §~÷៽õWØ +Lûô|#ÓŠ°™óp×m»ám^n½AUpµ‰ÿë« ªJ UKü¸½Aˆ¡l*_¯Î::¶A=°i6ñ>Ñ1I¢ú¯rQ3דÁý‚«÷2dfÒfnG”MÈ­¤-«'lœBÄé«ÔˆØë—>ÀZóbˆÝR}õÔhåÓ+8íGx4»õ +f)%åz8ê4³t˜á,tÚ¿4žú_ÀO!ŸrEW3Ÿ$oýtó6àKÍY˜‹ÕOoJÂãðØ +Lj?wYhKA>³Ž¾÷Ó…; +Åî=¸é­TïbBû4Ë+ZÜt¨PÅÂoÏs)¤Øxéä½ÍŠky_°v/]ĬJª˜ŒËÞK7[ùi¨Š±|9zé¾ßÛKo3` ùeï¥C5Ùį8¸Ó½tH$Åìfü:£“.2Irþ€Þ5ëÇ“£ˆWEŽ9rôØÍÆj`ÓQ‡«Wï´4;äÎQçuôè‹Ä m HÌȰÕφÁP´væô w·nº&ê`µlÛza`±VwOªö)‰cM$Sp×¹}-fÑ ®î:3UdÒìr’ŒXÝõF{ÆÑü䮋^Œ}à½úÆ]¿†÷c]ìUçw‹Ò;³úß¶î:å-ˆó.5mÜuh-ЍÐ:6º'‚»NMUìˆf–qOöî:3R(õæÝu˜¥¶zé/ŠÛK•¬ðÙ¶E`Áz€Hf;è¹[‹À‚Õ«í9½÷ç"°Pá20æÏÒ²-³È€¤„Ú¯ð>ðIBO&Õ¶µö«æ¶û¼kÉWÍ}̱D®¹ÕXòéßÒ¯C­·Ï%_·\ìò6½mÉAÁSð8èwóK¾ÜgG“6Æó‡µä ïÐ",“²/ùò tâ7ù÷XòåÛ^¢<´MÄ kÍ—»…%•UÎcîk¾Ø¡Š mDFe­ùªA±ñ®hÔMÍ—‡´Ç×oj_óå™`D¥ÈŸ%‰1k¾®j‡ŽäQéŒ5ßJä‘dÀ1Ò÷–š¯ÎÃÒá<ðL†â/¯ÄĉJȦø»µtÿ/Š¿9Ú±úû•—Ñû±µFæx)^~AíRå&{rá:®mñ×ÞêWôjʤlWLðö•PJàÃB¯ê{µß¯fñ‹fîòø—:°¶v‘"JG»ÚïóTþ µuãÿÎõ-é~œöÎô'›!cïóÞæÉª7Þ<°Ù=æ½3|7w:‚|@CÞ{òV¨!îyo炯Ѷè2³ÆO‰oÝ =ov/Cé–5ñö<”/Íû´w†œŠÎ¥Ž•:bÖ;Ÿî6n“Ý•ô±Éq‡×ùn’;C,i«Àöœ}’Ä”Zõ‡ˆôϘäv@”Ì 2EIn ]Jí <ýɆ’Üœ\[æèPc]1É­›$×3ÐSâ«®Ùî\&ºç¿¹BºÄDÚÇ`åtw®Ãù#c@[dPÐR—[üa/KÝÒéZ¼›ƒ §·°Ó7'g§«êä ñùT l¥øÎÓϰöh•ÙœPK +ÕF’US¬¥øiOIÎU x¸iÏGU'! rÒò‰i=¦ézœd8›Ãr&øÍYK§Ô.ˆRî!<–‹ ÅØÎǨNgm§oUjru¢…#ÏÐ6“Jï¶iÉåõ¤ó‘µÍû"—Ñõ æ—T•ЧC¯ÀÅvÑ.@¥  +ll›bæ¨õº‰‰ñ#ºGïˆNÚ¦Zªk÷‘¢:hþzF£ºMÒèDPE)[[–¬r{¤ÕD¤N´cÓBÓœ'·¯f~2øäe;º  Ú@û8ô5ÙÄ#@Ì3™Ãý_’Pž­:âV]×|JÎ'M“ÕIê¿T)5Ú­€I.3Ý@ké[Ê?‘²y.—•rÌ+9Å´² +žŸ;.Ú® +]Dd¨71eÁè²ÇÚª¶oªÅ W`]³ •]’g3›—‡Hþ@S¨èA)û­$]àq@ ½/¶2âö¦Y²É ªŒíÀ¸Ê3(ÍÛÔ ‚(ó +°]›|²h{0EéXëvêžêådúIDBဧuê\BáW}~"’kŸ¯Óy¸š¿ð8¢ðÍH£¨ç®ôy0jæíy•_Õë_‰66¾@‘îAÁþÈv +ÌzÜ >‡é±"sAx”ä$2ÚdÔ!q¡CC« q(™ÖåÏ:(58׺ ŠÅQä-Ž: ÚÚ$h+Óc¥ñïKNŠF[°yšær`KÍ­/Ç#6÷‰vÒ¶Ùälª-¶]´Ĺcÿäÿi„oé(J]Sþ´KR!ÙtªÌÏÈ àý†¥‡M/Ìy»4Y7»RÀF›µöŒf0 bÑDk‰Ñ8f˜If4I%m‰×“˜°p*oÒpjÖgOâHRíÀpÉẘpÚtPí­—»K\ª)µe'ï„Ãe#õªÉ•L +¨ eTÉh½4/¡!N%Ù¢$¯²7وħCi3e ƒœ.Ã¥I\¨:Û4ÀËuMš®¶ÁÉÖý^Þ4L°?2Ì­—dÁºßÉéwÆÞÃ8ãdJòé}”µoÁ¾`S¾Ö¢<òz‰žj<«ä¬0fmëRóù1ÏшR}^#>Ö&pì `& jÓ¶·L³E,¼Dw#°„!̱m 8šÈƒšE¸Ø¸¯Ãí¶B*+óÑ5‚ªÎdHŽÁþ{~&¹‹/|²‘(P–+i„ÍéJ»gžb‡hö“Wì"H|Å©^DèuÔò¦ªº€O8rË®½éHb1²WîÄ©—Š2/Õí,mšNô²î(€ß]sÉ<¦óxeŽoºÑ¬yØ%ÙŠHÈuˆa€êŽR”MøZæGŸ×§â#)²ýǰE +¬DygÞ‰ÙâéLŒsæü:ÍÏ»ˆ”ã¥5gså0b{ãaTxn`8¸‰áM°/´–“zUf÷ÆC;uør ö%Š‹¬GÙ|}»IÀÙdJà›|gòô2»}*Ðy3 ÛÌm‚dP£W˜Èaˆä“mD/âàJXƒÍ¢ÄÉFŠÊc‚dg]›È¶Û[Ý.ìp¥‘ääó@ÙOŸdµ,´¤µüŽaÊ”qòv¶¤ œ²DºÈn +´²IÇb‘”co¦¯~ckÍOqv5Ô”áG 4¢r=¥1+iÈb²ß4ô˜Ì¼ 7$»èºùØœÓ×%6«ó Û÷½™…l`Å÷› ÌãÀyHB ´öЂø)TÍ(¹…}¸@=BÓb"õOn÷ó"ªS€w6q¯kã”ó†@jÑ6¸øÅÌ´M]#¢‹ÀŽV9Œ«çWO‡Ôší§ÄáÑ[â¡ëóÐJíl½.ÎsÑ [|Ñ/¹zo¢~Wj°S‚¿¢ãGòЮ€mSíÕk¬Åµ»Á&¡ÈÎ:ƒn›KG‡P$ø­dâ²ò6Ã,î¯O¶6“†½‰-$ºÑåI){È]?¼ðßë>m@¸•\úsÓu¯Ò!ĆðÇÆÕ÷'<æÖ±XS®h‰ñd¦¯¡4x2ƒ–4åë—ðE4xm¨ž •ðSôC _Ä,ÐLÛOØ0Õ)ÑËÁŸqW<° Û¨;êÀÀÆAŠóBv0ŒÐçM “kw6ˆ8Xm…L_Þ„¯ö‰åœØª«à¾dÄ&”£BHá„R U+ a½8+Ð^L’•žÙdD=H»%Ôƒ ÷ây êe]§[fàÎGÀ'r l&*½—ÎhÇ$) ïÒ"v£>ë©vc–Ä +ýÜšv˜ Ööé ¾—Šü‘$šÙÀðòBÊÂã…½M/U$AŽ4»Š=~LSqÛÂ’B5zxMu±qÚ¶àùK(Âw3êo]¦*Ûj£º&ÞÄ~ÞÒ5Ä¡!w‡ñƒøÊû>Xg8n6Q©û˜K¤rÖ@\Ûz¡Tó‘{ÀF)ay°¿Igb–uŸ¥óáz̆ýÖGÎÛrùÔ‚ö5E¨Z$d¹ÏË÷%åÒºB©ì2¨K¬©aö ¡§ì^((ìSÌìA6±Ø©ÈªÔ˜¡à.ÈíëÆ,·;E‡;E6}÷Ùr£® (Åß«±ú8Cnží¼’iÞeökʳèX%e+œ_ˆ-–н¨Ú¿_¤“cÞÖ*âiÖšoð¨,S¡l‚ã­gª`ñ®ú¢ÎŠ~E[ô¦Š#ø'‹¬T°€›JHÒe:\;5V”üÝzKÒal£7‘ݶ*ZÎÃÝk‹CU¸¨‘c +àŒ ÚiΘ¦cÆ‹M¨fñknQÒ:Ø—Þ0Ž‚wUÓ®o¨>V ¢ÚÍuió‹µñR(°ŸUyW—L˜nÞLÔ‰’‡ËJ [ð¸À¥ºò¤½™vØr/´O/´¹©$¤bíý ëiTßDŽÓ³fo¸•îäè´4tàñ‘,PPMmÂtN;²¼‹zÔfCÒ°ñíà VW>l¯Èsþβ|¦q©%pER{øÒ`D/žº^63†*"Ñ;ìLsY¯o`À»ú,hx‰s) +’Šk€Žö¤f”ŠçN±¬¤ƒÛåîÄ–u½ÄÅh÷oîÀý#+P‹šVÂêÝõöF‚q "îß%ׂz60æ¥Ë¿¶/o[Tݪ‹Öà¶¶­¥ÚQ˳½“>ˆ™!žiÓ‹Ø„jA"“7Ú^Û熦!r³£¾c{ÑJJcà>¯Û@eG°¥x0ùØEÓÈ×*f¦Ì |\àiâ-འÍ3š×¦%9`HÈÓ¹ö<‹hȵƒƒiæK>ïÈÅõAÙ{fþ†ý×ÖI%øµ‰’:Ø–}œg<àb)Ú­ lOîAºã·°CÛ–ëÀ”èà[]ýµsíÉ}ÁUE5WµÒU\ bYJâÎ^=(BÕSq¾ Òu¦\VOÌ6rsŽÉ(ØóË[½9{$_»I±ëÆ+ÉÆÝ¥¼ø”´Ü© +VçÃaaÏn)m‡6OÁvVWïT’7b40*·{»zɇó'F›ù¸ºæjÈËÔoͦŒ³zøØÃ KŽ x=Á€V{ƒµˆ¾¼„‡š„†SžS²ˆ)n•Þ.—ÑæSª4¥¦ …`´9½„t #ÔDa~3NhLûÈÔ@º_HÈϰvÍó\šh5œ|à)ïÄ!÷´Hi;Ç´UU#TÜ Ž{χ§ô÷‡:Á•ȈY4.¤u-Ê¡áE䌳¯äå„ > š¶5¡Ç3’7\’€ü¹irÙj5¿â³>¥¥ ‹?U09k:’=C–7Ãäs1­é¬ž§³zž³žÒ£©$ýAù%¤X±VBÉ {˜©eý×w¨ô”è­ÕL8à›ðƒ,®³õ +D!QNL:C5«¦¥lŸñ,wP¶$¯Y‘Ê ØŠ,rÔ׸$5^>§Ï±bj90S‹lë\wKžeæ»h¶æDO‰|AɬPÍÇR¯õ½íKß䔥¾s OuNCû!FÌÂßf¥Õ¥Í4Ç:†Z¡*³ +òšvs8,õ&í NÌG³it¾„šŠî¯©'ʱ"wIFWž*ŸwýÃÄG¤Mcœ“©÷©ò£IKÇ£]-çת%½C•Þº;1´Öœp©Ë…r•úÿÕgn‹>øPöâÓ©Šé~ßöZ>cWòùBéETK N[§:¥Ìëé±’Ç«è]ኹq¯A.Dë0Ûß¡.ϵªÈ—¹4µhm­›ê$fÄ›Ê ¨Þ»ÐzÍ/1¼4A"beÖº( +44*£@3üY×¶ +¡®-Ž(½­¯†µÞGã׬W± Ú1ì“ßÍx³®ü< Ðñô÷íÝÝÃíuòø‚Özûþý†Ö´ðf©!~â1°Ÿ*+ò ̸¼'í +‚ØOþLÑŠÇx¬¿€æØ.߀ +Yÿ +, æ#TÞ€o ¦*`d‚¹[‘6[«;·Ñ XŸ`¦fhkîWèѺiìRØwnèÓvÛ +È©{Ó  «°_ðÖvß °° Yðí­ àlÁ ¸àÅhÝÖº‘yÁ™ + ¾àLàÖ±[¡…·S@‰ÑŸ\ÁÁ/ýz’ îmÀX7ù÷ºOá2ƒ“ÁQÈп¦!l Õz¬×m°²! +0ÛNEï.,‹£Öè.†C€pÇÛ@3à—×€5b ?± ž7£– ü†s‡øýïÃÿCÃÿ?©ˆcߦ4~MD@ý̪D<þ.)Ðü!·î´Pè'Øe•b_chg˜Ù«Ð ±M~ŦŠ5‰3ÖD\lðx“Æ‹ý!k0ö˜¬™ÄТ²ÍH..!¯ZeBn4´Ü¼M­†Ž™ ]?w.÷îÚ%€c§ÑšGŽÝJk.:v=írÚ±gj͇¶«Ví[Ûô|h ÙýØI¶VbGÚ®ÒϳV,bsÜZõˆMv»êIlÖ[«0±áo­äÄÆÁ]E¨MåèNš–ʒžZnøå™hþ·Êñ£‹W§·ýÒ•þöFPNĪֵñë¹{+f:ÉÇïÝ,´6÷ F&>°ÍØCQó7½í¾²†àŽê°K±ñ›»“ðtÖní’˜}˜…*_8 „‘øäæÒ¼+»ž4+w…GÈV¥¬¸~¿ÆÃY.¯˜W¶jü©õ>lK…¯Äˆiaó8ëŸ×óm„ŸÇy9€C °á|ô=~šÍa6ÿíÏf¿D ‰ì  ³fÚµ8Í*§3‰ƒ ÃUöïÈJtÏÜgMnRÍ!ªg9_šÒìcQ¡ÿ<³¹û_ ïBœB]\Ëõâ€ç»þ<“™ÏƒZu*A léò's'Ñ2E­ÐbÝëõþÙ{2)Ÿl»G}$£¥\”lê«È½¾·p½þÏ?MÛí´MÛ|á«Éà‡6æ—˜’QP^IÀ„ÕjAôáY +W»CŠ# XrˆÔïÍ1±z°”§µ#œ ‘{A"V£ÅEltQTÆ€˜ÚèÂYcodÝâí¶•õµ„³Ä»ìk~ŸŸÌñ~^¯6‹F'åܤJ§s‘ÇQ£JEœ¾wvEdS =¨K´2^Ð*¦_@`\ë“AÞüj1S› ®#Öÿ¼ÛHè¿êâ©ÉÐS9óß“QÍ”‘ÈðŒŒ Þ^ŸÀâ 2Ÿ4fÙç¿«2‹E?ox½…¿ÁOFyU¾"½ÝÀ"µ½÷…-Þ MæÞ‚«h”¦ƒnSÂyðÂÍœ=HÉ-¶lÒ-¿È¯¥F2ÏäÓÐ`2TÎêU‰D…«;xY•WÔY”O5;…˜1y +U0i‚Q]ê<$&e#²9±cÿK½²D‚å(kŸm™hÓ¸âbr¦+ éáFÖù°Ñ€&iœ3)xäé·"ºK˜åÈøõiGþDUâªøHêâ&u*9úSȯÑ„ <*Øžd†V³ä鉟W¬ÞŒIGÏÍfs¤€‹\N|٠·óª¢J¶ KßZ (4èÄWO°öUš7^ÝJ ©ü°—Q=½@Š RIz´Ã‘¹öú«ÓÅ6DÜMΊà÷áu ƒbP÷ìØý«¦ÖEV]hìõzƒ¢L0XŸwnõerʬIÏj}|zhUŸ8A±´×†,›žXßi¼ó¾»Ku©èžàY¿›rlÜ(\È©o>ý¸ÙFOÔ +Þ›Aýò>TmãDì“0Q†bå†ÉÜ‹‹7ddŤ‚°[ÀØP¿jGÞ,®>¼#ˆÓ {ýX—áaw«ºAYy +¡8ÒÙ7¶A þzCX>š—Ò&4‰øãŠÖžû§Ïn YdÃ¥W?ÎÍóȵ;.Zæ [_‘½cõìÅ›è×W +"ä#M]CWZ?Í.+?qGÀ$ÐæýgI…–4 ݹíÚÌ6(yð¨Øß³íùÁ¡^œÈ›ç _³#ImÛ@`³pJwTH£d–Éãº"‚~»ï|‰k×®¤\Ë}€ Ž6¤.ž+X’z“0SR\¦.Dú"¢’â²ÀÍÙ÷ K“Lš®òí¥<[¾ðó`<×;6xû · ï!ýð.Ãæ±ý&ë>íº‹Ý“bÝ·S*ì¤aj†ÝxÝaSß.’à„Åüа`×'Ý®ûàä¬öãC?é_ëóÖÉÛñ;G'ï#>gÄ¥é¾ö~‘þó¯„p¸C÷žT%2ãoAáP­¬[<8E›˜ µ·¨•WÊñÓ¹×ÏR¼3+Ðée“±êƒcx„{êŒ>x¾m¶œT^?\Â3­,æeÚœ¢£¹Ep8;ôvƒ.8­!bæâs?JïS <Ï,ã*naÛd‚ýû» +„sonÃ-@K“ãë‡*Ç'ml¤l¤Â¹ü¸ ž¦H›P¾I¡ƒB¸´©‘ Ô–ÛF!ÞtòMa#ŽV²vª‘ÁòÌ ­áy¸'jÓÊVZÞ„gæoÚL9…¨¾Žð+­’á˜X6'3CZïA2ÜŒ—„&m§®íðÚ¼­ayoó´Ã ’è“oø¯EEº ÚˆZc~odÄ×ùõÏ~Lñ'•hZr:½¸c¯"n òIDå¡U÷Ú¼¼'ÙëþFC¼Õ.Ùk ,¨9Ðø"½hˆÛ+l¢h¼E¶ û(²½»ØCAÄlSE;‰4$vã=ÞDxßy0áÅg³Ýçu»k@D¢ï~®‡/°töºÙÑ­“àšý±DÂÞ›ÿÅìuªí¤)ÅýÒ µ¸lZМ¤)[úTßTxÙHSšõ¨…û‡˜·Ú”ÍPàvÏÞ-ÿhQž$0A’2ôg¿•¤4Ã#^`s”ÍÂIJž„$¶=É&o¤TÇ‚(FÌz©ê´Ó¤„ÆE—×(HRrãb‚I0¾n)©éA΂o÷Ž"¥Lrá~³·æEÊ6e°r¹ôÚ(R6ÔéÁ·¨J}É[EÊ–ç•ÈöÕc£H‰¢ª*ŠÕ]Ï;PâB¼³U¤1zùmÅö)ë„„ M÷lxR¦¤ïÖe°h¸u¯Lé¥ÝKi$ +Ê”4}º ÖEÔ]£2åv‘|ÑÖ³òûê‘þ~ãGodß¿DŽò«[Oñ^ {AÅAïgÈùŽ$åóåÈLqrúÝ3·æ]š¿úƒ.¨Ð6öÆŠïdI}ÓùaÊøx;qÊ?Üóý*?š"ÿ +¶Ÿ,QIu¤k*‘‚³ðŸÚ°“InÀXT3Õ “,ÞÑ"4×™1{Dé”|-hŒ1.±aÕ©Üͬ&Õ’iËJØð(<{lS“££:„n¸¢‡W¸)5›ËAúY^0IBZ;«8Û(^_ƒs€ê÷ž1ZìaS´`ç†/5/KÓïʦ!hÈå r/qãéÓõ©ü$‡-NèøÓÈD3°]4wí*ýVóü³µ.Á§ê¶ß¨[òà ¶Ì]2©Àn†5 ¯¾âá_oÀZ0>E9¨ªÏíõTæš=lûÛ1?ÄzY˜àqÛÙr©"ìo_Fþrã<„q^Þœ›Úˆòòõõýñ즨ì_?Q’v+š?Rß|Fâ¶ +òlYÝëT°[84Yˆë®wf”yeÉ+"´¿ž›™‰vÀ¼úL6“šŸˆÀ‚|Ñ;(ëÍiàªÄÍ6GãÒ­·‚[ÆK6VÅæžÈ‰=nwêù}@7 @—7¶¾S¤á«š·Z9ð·¡Ëµs´·Ýð‰ðiTݧmëòYÖÙÑàªÒyÌàCfYׄ[Á<¥«ö×Y–}…è qß,“›ê›‹_”Üß"ýT¨¢Ñ.Ó3x¯ìu]…Ÿ‡µ®Öøööƒ©¯!X™ð*ƒµÚ~’`õ§ –3LhßÌ®Ûn‡)Mþ:­?Ú9î:…ëÍþ#EQE¡ëV~~s·ÅÃK¨¶ò +;›9/HHÊ!*!Jã¶ó WjsœùÁEÎ÷Õ+ÌpÀ¹¢˜R0]ÁþðvïÞÔî]êÌ_ €A§y-EJI«¡ZS]0Ë îŸQÌ]ö[×}ø'ýŸË)ÊF)$ +©S4qø…ÄÔEÝÙìÄ@9I¹#T#>ÒR'/‚cû/’7ÐeH·¬Ö¥„'¦ˆ¥À“TzûS™OÒ¦$ ŒÉ§Ns a~óéJ*<ÿ%æ‚Qj|‘²Û¬Eê°J¢T¤‰éׇpn¿Î"áƒ÷ ur§C„ðš§ìm~ZÛ*ŸöàSP®-àñ;ôÌÍ*²ÎU•ÛùÊŽ k„BHßfÀiÅ~Ñ °uYQAºº-<¥ñ!%ÐÙ³ª†/Í´¨o\†þÃlzµêW:üšïKÅWOï`¬¤Þ€óiê›õæv(JinÍ•A8¢Lë¡4§DøÔ¤ôæ3ÝA +á¹í<Ú盺%÷к¸`Ì"é€+™ÊušeÈ_‹·°ÊÁ1“f[g–ºÕWkPnI4!kÌ”ÃN.ŒuqRn8f¹'ü–¸›=PÑ 9´(à(]q+—ÓÔ&I,\‚e¶m&-Û™Á¹A²‘'[š®Ù;u¾²ªÚ~›öúÃÓ˜´jØŽš å£<©æèBÄ›"!§bG.üæù‹Ã›É¡%ñÂUèŠÞºÚÓšÅYíÙÑѶՈػ’ãåì?"ä…GlRï‰W‚âMsк(c.Hu ø;m ˆE³W +éíŽlb´;¹‡§KS™ëÔD¤n¯ú@t«uÊ~û¯¹Â_QXå•'®‚Z7u›S™9¬hÂÍ©’†dO`KCö¤ OÍ«¦·: QåRMvVœ³)“Åj +‚ít꽺 í&WíØÂ¬”³<­óò/ß æÙrÒH\ +Å5w>\9Ý(d]‰f&®M24ŸØÖê(Ò^Ô¥æj×D2Ô\\%xõ«ë%<¤, <m”J*EÉg·ùlõÀ.19¸ïŽ/“Ð,Sê:Tpª2 dòÝ.< ÒÒ:‚O픋 ÊpP)ybضf ùZ•H“äµ)Á Dìp­ˆZ½:#ât5'À\™ÓY¹yÙ6‚15yÜ“;èf¬ÎŸ9°T€$ìÖ¼ˆ3(u*IÊÑ+Iýîv~å¨Jó.wí>PH™§øted5&ŠRœŽÿjâíà/Uýæ:1Yâa:`#e È(us¤ÍÄ ÙØ +ßÒ¾…±R%\FX h +2lkœ× ƒ†*ú((F‹^Ö&+µÇt¶AŸS°€ñ7ÆóV_ç‚Mæ!k(N0{‡ ~OJÛ÷íÉœR ½`v,` mÚûíß3ÑTg…Ž:·•¦%ç\4£7¼7—û +0NrXDrqÔñ˜Q>ï,®8¤PgF•†U³ ˜I…èRBÆVeŒ†hÐr¡ŸBn©úÔ¡0•nä^zä“ÍË—¸­8x,̸,],v@»™³*عœeÔF8±4‡±Úð5⳿tÉÎJ…k‘ÐÏ¿3”·§¾ó¡tM‚MZ„‡G#•$Y©$¾Y³gzfÊ–$¦Q¬4·éoæ|Q­©ö'ØåbVÀdu7³ÔYÏÝ'÷š=;\^v7Ù%UvKêtNjÎ'g‡`Wæ•ÏBLÔšÿJ´Õ"Á +ì¢ÞÁÈŠö e×xTô?fæC¬4©ÒlZÒ+U˜.¯Û?eçfF&Å]8‡\ ÓNɶBT°—$9â€_×5 EÒ¥ÐìV*SfLˆ‰mìÞ)$,òóëÄ’{‘m¨Õs6õP†” ¿äÏÄ>Ð~ob#Ú‚MìFÌó¼Šÿ`·pÍ‘âúSv¾ëœ ¾î +û€R`¦³w²¿ÿ8PÚÙÇá^‚5(*+Ø•IÇ´ÌÃÙ#}ï>ôØ9|nIÃJå]”‡p«¯lØ5§:¦ÝæÒ\ÙÙ¶:[*8—¹ŠVH6…À–½-ã3çé2¸kXQ&°H +£í£“\U†z„4òØgÚ«Ÿ +ÑP± ¦Â¨‹q7DìhæanÂ8È2É ŸÌ~¶‹7I†PÒ^‡ÜøËo­“lBÚ0(Dƨ/S8ÌRòVct ?>(0{=IÄÆÛ ½T‰8 EÞœ§ZP{ˆîh—0€Sz2¬Ä|CiŸàO½Â=æ- SÖ$OÈ"›Ü=ïšt•DêõN›ebmƒ87©˜âÍT|úê K6î~m¹˜¢)æ“B\&® )¿‘cn‰ˆ5â2›U\_a“Ì:§vÍš3ߤJ™jMžå4S‹°Ynspí¶Gæîbº‘‹[s}4O\¥ìS…G7±f;)VÊA37IýàmF³SP“w¾äCÍ©îpî†Lª˜mÀ¾¾É¿Ú4;ÿ\’¶È­^x kºW{ü±ÏÃ"í‚5KŠ|Þ)iÚ ;ÃvyìCTüã‘ý>ÔN~Æ|ùÙrnríŸxzží捻|ÊçÓ°6&ŸM¨ Ë~´ÖÎ<§ÝZ}`'ùË$¬æZÅÐ JŸ\Ë“fθ-[ïµ¹ÓH[r$RÉxÁCʹšW]¦:„Úl|«•ÙNn€þa›6ÝÁð{€–‹¾mׄu›%HP6—?Iv[t-Ö€lgþÈ¡qô°|e6ÌÙÕR¸µi4¨¤ýµÁy(¹®îßÖÎf‘óñBðÊ7vø + zªí¦\"„~剀Aª[]Âb¼' ë0\-•Dj;Qg}AÍôJâ{ºeÉæøsꯚ©3¨¾<®€.íüI©<îËL†…#¾(õ­ eß)~Î"h6ÌZ“ +»_×E2.6!Úî÷+¶|42nÖùúU¸%|¢D£ñìU_òª¾Ÿõ.PïÎOO8 +”Ó]H÷…úá Öœn1e ét¯ ZDÜGµ«5õyIQݘ·ð2“ÇKšqhÖ;ѰU èínýîîìµ°^Ù™ï|Šäb(ã"ûÚ…QcËëfHÆr‘C'±—Ýãq^’.4ïÄWéÐþ^oj·™Ljµ‚©D€º—;ùßýÊð¡`þÈX5Äà =£š„:3Í…~ÑRb|ê—;/Öì$í8¹£ðȦA†·vMßEfNß{ÌÊw&òMön@È"tBûÔ»º©—§ÌaãXÄsçùÒ.ãd¿¢åòÎPr‹ÙY: îxZ“˜(mzT0ÒwTW%ÊW¢H»fQu¹Vt9qk]Jª{ެU‰¦ÆÊÌWT]5Ö?`8iòÁÏÖk3n\lÿÇ ÷ã¨õ)CµÖ–Êü„¶£A´V}Px ¡´/Ç]!YªGñä^A¨ñ<+5†ÿ»Ë"¬¸Ú˜ƒX±¹1±b|÷ù+ó*nR3+jy›á™˜ç5?ÐÒ1Å4ÁÖÛÄTÀj‡¼Ö +÷ ±ˆßåÓè<äåp}Íèüû6pô! øwrðï’–kÀÌs†ö5/š¶YÕÐÃ’²wûCHã†î‰m8ta„rè߸³Î¡ýc›ªÝ#!Ó:PB’<ô±lsìñ<31÷Í„ ~h»ÙB÷N¨Ä ¥ò‰vu‹’]Ǝ¡*ËZÿÐ#âJóˆLåµr"LŸ“²+~æìRÄ%ƒÀ/zçÌëµhC[½¸|*{V‹åÄHpV#iP^íjERZ£ï»ª¸ÆJ“©rRð±4¢Q‘Ù¸{«n7š”^v®äe²H‚J€¤Æ£T(o4å/ÅæK7jAŒ`ß´RâS MY®CmÑà"ÇGj O^×øô Uôiù=ßgÜÌu(nŸ ¥EIG–ÛS©­*•Z(M¤$à:Ƀœïþ<â,ÐËj¡’R’)YRHÒˆCªÑYÀ-K[Yø›a_V#‚pßš2Yç™­ì4œŒµ®šJZ¤-½ˆ®¢+•‡Ó5ð Ò?ÍcÚúbÅ‚º\+<ÈsiGg€zóÐr–ìœañ±pˆñ>(DTFd‚çwž‡ŽR HÞ 2è/£žž£ý¢kó•åãEÀ$‡[´ý +.çÙ‡S3}ø˜u¸¢áèÝu“×ù€"j2R×~RU¶çÍŒ¬c†ýÔ^bžsöyVÒÜžÙÀVßYÕÕ œ¥—á^QÕÕyÔÞãS‘ÿ€¶M°öV&<åôÑ„u=út0-Ö=íëz±4Ô¨Ý)'zU_‚©¢ã¯¢73;´AÄÐÅ!<³âéV— æ.žg5™áV‚åÝ>Q°Û÷ ¹-}xƒëF±ÿaÃY?hس”[ßvf…-4Ìϰ ¯ûÞ÷Ë"ìü÷ª +>CXá· ;ø0Á>|ì½çF}Þzn¥×ëe£ôz‰¤ÎõÕxHÚjjàävõâl¿øIéõ'¥×/‰[W¥WJ˜Õ{NõW W´•–L§™)°ãa¡Ù¬ŽA +Ÿjt·¹—†óyóìÀ~Ôîç™'4¥.`¤Ò +"* Ð.O7CÕ±ªŠ:Þ•w RUAVJv‡…ëìKàá(‘™Ë0l €lFuΣ*ªZ3,Ógåü‰â.j?]½™ÙY¾ t­ð=¤*±G{@”‡º½»ˆ§áòµOþuž1kň5’ŸFÒÕµt”>xŸ·Ö+%O(¹tÔ8%ùd¦ØžÌüÇ,íBîOTX iÛdôˆ^ +o +êTÜKQÍAp; ŒµxúèžÈvÊSaP‹Ô±€!Ú2^K»êñ€ç™Ž]@UÈ4Dwí>™s0ì<¨_u¿c4›„|Ô•ê|=æ‰'Èz1›Ú^évèE ÚZ%ñ•.U!8% êJ÷¥»-¼ +é˜:M¶ëV±s̾ךANÎ28³ÔÖ(³”Žà7?ŸœºBžAî0ÐASgêr0é·ïÈ`¹º)¤7E2ÜÃÞÌÙ5y’”xõ]¼AéÓ)àXú2$;&~‹ +Ÿù„Ñ¢"% GCJä'y”B³-ä¨TǨð¥aÐ@+ J°4;k.15û ›3KÞâùUcqŸô)Ó”E—E4l‰¸"èÈÀÄ\zŽË˜Ú寮 +¹)Eª=“ý°d§ÂV-×v¤b'(p´”ËÕt›äɆ&ÞA'9yÐ.ÔâG‹àë7ËEhqz#Rv¥º-ÖRÙ]ËÅŒËasþ¢ÐÙ)ÿâKR¼‡R¢Ž¶¡îFçu4ÄÐð‹uæÃ½õŠÊ¿ÙœPò^ƒM€fú˜ÅÜâlI’@Äù}†|CFFج‚vÍá`—¡²Õ‘Iå4O‘»à/Žñ.ÓÐîDË&#Þ”±yæ^9·º°@þ“Âj ÷šéß~r@ö·6gês2›l܈`ÚL¥Ã¼i:ØÙ‚ÚV•èð»ûtù¦ÓHœR ¿{y4)<š…XMÝïš­|ˆ.kÑ?97fv9h˜—À7ù²æÚˆ˜½²ˆæYûTç³õWºR“êð‡ŒH;¥ l¯ŠôàÈ7é¹XNm7öÓã¡ï7%tOÔ2܆o™ˆ§ºþž­)ز3’.⮇’M,PoBÑ[A áÓ®#ülÚª o3FÐ9ÚxÖ0®`!oFp»P9®8è[Û,Jv*r=(èñþ$|¿ÛT W-⸆³sBl-!+`›ëÈ«_ôÍ .9LããõôõÏþ$Y»jbf¦$ëôlèCK°W3{–§–èÅ®göªÂål!ë'Àô™­ÇK–2…-v¤ë­ÈÚ.1ðÃs^%€}‚:x" òE×²È ‚‰ü#}(²‚+ºÒN`OЬ’ÖÊjtEV³= S[¾ðÉh¡™À~VhŒ¨wÚlE¦ÜæÍϼ'Cl3L scצøþIõËEêÍ ‚äà ÿ…Ywiœ]ÊžxÃ9CôW×"ØM ŽÄ8×PŸ®;i™y¢œ :¹\M]‚xµy•Ñ€Z_>‘Þ¸ÛFFÒ“O­4 Âý¬¶AÛ`\Åù<ÉÖ#s@È[SÆQ™ÅkÒ>»lÊÐôô£Øƒì<¼«ÇgøHÙ$Ðè•¿a;sö²©«—Ù>Ÿ@Q>²ÕwÜð]ª¡”lE#×Ç;©›íFæ jÙàÿn$? + 8D¶@V¿ùyï›´ÁÁãz`öuW— çvę̈Uó ÙgÃSƒUö/‘v„÷eûM3¤Üíû÷ÀFU7@”}óùZšÜM‰œ×ÞŠKŒ cßÏ—z8×~š¤uæ¦ãν'áïÂÜÅå#–T#QÞd„ïLíržÃ]v3²€¤_â½ÍyÑ,XKu|&oiR½;ßIÂõH˜šSôã…— +g‚ıЙoý6æ—PC€®Û#¹~cRT°%uz™öyš b¬ótpâm3ÝŽ6Ëöœü˜nϳu܃q¨_0Nô1öhœ*Á=ðÕôwÜj)ë*{üz]–ñÂëòÞ?À4áùƒ] ï0Ø§í·¸Í[ø”Á †Ù ëfRûæf´ñëüþp¯¸C£w\ùåO~þÝwÿÙ¶Ç?ÿË_~ÿý7¿ûÍ/þüï~ñWßüö›_~ÿͯØ*Ÿ¶ÆW¡¡wÎ×^þäÏmƒ|sº?ûÕ·ß÷;òûoú‹¿þÇß~ãg}w4ÿß/ÿÛ¢¿þî·ÿø‹¿øîó/þ‡oæ&Ý“ïü›_ý7ßþúùÍï>Ûý:žÔ¶ùêïýæOÿþûïþÃoùùÛßüí/þãϬ^x'oÿw¿ûîæ¼w÷ù»o~ÿí7ÿ`7ÿŸÿ·B¬˜³¤xÔ{÷îíüõ·öÐÿË·¿úþ?ý³ïþßt÷ñÍÿùý/¾ýÍ/þÛß}÷›ùY'5ì1©aó?}_ÿþ›oÿö?}ÿÑeþú»ß.WùðEýÕwÿðw–k³áÛoþîõÛ.³òÏ~ö_ýéŸ×_üÙo~5ëÿþù7ûíoæ_þë—?úËï~ýÛ_þ껿ÿÝÿìÍÿ¤cEj þK¦:¤(ÍCíV#ÈV(äíÉGdbÇÑäËý©þûý‡Ÿ=‰qÝ> ùGýó¿·ÿùÙÿá%§—ÿñåûßÓ˯ü—uçÙÞÞÌz©)ùÁ ½üÅnTx°¿Ø]ñËFm¯ø›/¶5óÛþü—Ÿÿo¦°f™Åß/þø›×ø*“^þ'åªmÏ6kkÿ9ÝÆ‡¦q—ƒÆ=e\¯á¬A¿žÙNNÚ1@FÞ›2ˆÂsúlç@( +‘x@ªì ÈîœÝkéRHÌÖ@C¤x'ú—_f'÷î¿<œ3Fýàã´æÝš½-’“\ +5Q›”Ú¼=¿júƒÙ‡"vs=Ô|ÅÀº¡;†Ž¾¿ÑN‡™N!)¼SÝŒ˜mYº‰îR•mÚíƒ éöSúyI<«ŒÐ¾7­ó䨫á# ³dĘ0,zyAÕ-ÕR•ûGž·mœb¥³[(tÆ‘ã +ïWì:ÜQzãÄAM¿`,¥[›F-¤¥¿Ö§HÚÆpœêÍåSG:&&†.`0$ðÝÈ×uc|ºÔügAs/ +T‹y?ƒÌ€“ÇḓÓEL“tŽœz»9¯ìq÷uu‘SE\¥r=-Å…N *èEîÄù ÌðqXygÊV-x¸¹º-m‚Ç2ÿ~M-þœ2ªÞa‘ÁÛi€i]âœÇãôÞb\x7%1G›¸Ê²kDïj ´ÿíw)ÚM¦v¾]&2ȸL—_¨yúîü©j"©ŠÒ,JÊ\Gs¹Ô½uoQŠá65—… +@dæú»ÎÚ›óñÒËSþó߬:EqjÓV+:É™§¶¦rߎhÞØIB¬Î›ŽƒŽ ”H0Gάœ µÏé.e9:Øpû‹+¢û×Zøý_.G~5@Åò­4,ñºè¶´+{ U>_ˆ™QÀö 8šèr˜%_|Ä)pÄÀ%ŸBÐqÈúa—ßî±mcÒ6'•Ö‡8p»j*¤Eø’Ž,­œ8âôX›ÇˆÎ+­£HŸŽ +F§c_âë¢u&ב=¤€æô"©51í +¾EcZ%ŒYGø,³oB’šü©«-¬çÁ¼SxР±œ1êëÝä½Ñ‹®SÓŽTí¤«‘8îf ^+í‰êâb®ØZ²™åȨ9ÀVÍl©esWÈV›ùØÊå™pÍûö«ùÐe;,Ú¦ ù{=ëp€‹è„°®hÁÿ5)t¾âÅׇ–üü85³¸cS–ÊvÖFxÇ,ýo%Ïwy8|ÃFQNÐ(­¶“» -'tbÑ JA8shµ- x t!ÁŠìöAæÊ­“´ÄLóLe ÛÁNÚS™žCaÌåØ=Ñ( X“1¼ ³dªúN”šÝ¥¿JÞ<. 60Ÿ 8ÖÜf¤˜@çf*ð¶R.-ðm;ÁPýDswÓ¯´¤ì@‘Ü;%ÒËÉ%ªàç<Ë!ucŸJ+ˆÁìƒñü!¬Êâd6¯þ˜ø|‘[¡Ú 5Q¡Ü}S]K¸x* +C½Âf[£¶#dúøm5ÁTÅ$wš€;0#@à€N3RCNÃ|zø(í»R!€®&‹Ou¨AÈÀ¾ˆö‚„õ@Gœõ˜F-´5zrà :D"à ¢öY%ù¦ Œ¾yÈR=øÝÙ7Ka§J°í½ùˆñ‰ÐÎe\aáïIÈJ?×ó![0â³âå`x€;a+P§Ñ²Çý½ßÛ= 1ï‰Ît#Ÿšh·8PýJ?©íò¿úCŸÐѽH±} +DˆÚE'Ü`ðPžõh"B9!¬½tà +3â;Ÿ„º8KsV\úøp+@†¥ç9ÔÉá*?' Tàgy%uìÐEð˜dËAs‡¸Sí&έŠÈæê€%¢(É‚Ç?Ø‹+®ÛVŒ–=Hà ²ÏûW¬/ÔÖ­‡àu+ŒÅë>i¡ýtËAû–‰ ”dwÆ£"›´§hMJSÙ¬Ñ{=[$8Kc;]"î¦:¿þš–Ÿ“ÊÌãÓÀ²`›Æé@‡.bt^™N'öôÓTÈÇSCCŸÓˆa +Ùâ¨a‘:U[íÒƒçfñ“t6€bNšéþ½ÜlÓDŒ– ÍðÙÄ0ÈIù\róM$þºk7¯‡Šv§ÎÅþì¿•mÎÔ´`åyÿ÷mò7¼ÛŽ>t =D¤m],¯0!ú1’Ù/ö€”Cž¶Ç¼ ’Äð5â–x_«bD(Fé(Í7”ífv{ôŒèTì¥vÌ9гîZÎl›€±¤†G˜da¾8 ¹ºdÑÄt}Ö´Yþ.±@fÙ\ ÌDlë’i>»Ÿú•ÒbØ­&M6pH ÷ +¯¢"¯HFᜧsG„NÎObÛ=céŒánˆ)Î.{\Ú–©RÎsØ×€ßÀ Ù/D,¾9>ç9;Ë'¹ž»S”µ°H:Tf˳kX<0Ù6´…fvú.„‹\‚BÞ‚ùÀnå¬Eô‚Ûn3}OŽÑøÀ1ø*9x²(tHòZ¢Þªûb•ø°r¢wh¯§K2n ÿ}0oŒÁñx=}žÈ!Ž&>QjÝŸNÉÕYÍ¥i'ߦ‹;ªðžìAí’tA°í‡âu¿¯§c@˜m³5LÃá/HÇ èy`eÝ}i¾iØ-61a„.Á9Íø¼öxžtŠ‹†N ³´Nï ‰áA(iÆÒžÄ¥ƒ±Þ^®ì“òk¿N)”ˆˆ«;ÿ4àD3¤ÓÝM †K£x>hh<@qF·q’F>â=t/d–¦¹mNƒ‘ÅSàX ‰ÐÃF¤r>æÂÓAûžK‡|‹B?qtSn^f;šê)³µ¼þ]g3?¨[xwJ|‚Rúý#(×ÄTh_ñ$oY?7:YßrŸn=ˆ ‘Y°NÒùBi-a5ºÄhÈ3n÷|¸¿<ù¾<ã›_Ùöi[\zOõ$‰{$`¸éð×ö{¦ +Å:%glÓ„€™ú®h±[™7Ûé«Ö ¸¼vaFc©ªàçãtªx½ÏÔr0õ¬_‰%Òîô‚Ôäב‹0H¤ûÝi‡ôÓÙ*Ì%°`ç¥Å¡C&B¢«Nsà’-ÔÂsa°UÍ~º"@ôë`6[¢À&o§‘\p9ó}SëAüž5c_u<2<Ú¡¸[¸‘á×¹ÇPð»<Šú¿¢]ÉÜ [:Å¥ÙkÍuÀºøÐoÀÝÍN›-6;F—ŸŽ;pÀï©<ù·ù:ëåN?‚}ñ³ÆÞg£çƒY”v[¡K:XH„,µyhí¿8uÀ…_mè÷½1+Yë•Ïß|qõPð 1-aªóÞÛÙZûÄr‚ñ5AÊ|py*åÉNgSòí¯®93éúB±ìd^‡ä…k{8ÏIôM¯Äb((¬IúÓãN$w'ƒ¡¾ø%? ¢?]»÷hý ùƒú•Iʲìg$B«þn!?ÿ¼îŠþ&ƒú<èÕIvxýìÒ„ MF›OMÛ¨:pÜS­g,×Ïú0‹¾à;*² «à¾Åsw€ÝçÞ£ÖƒMH,÷(Ä‘ >Ø‚Œ—DªýêUn"É|»½$FÙǑDZ– Rð½þ®":+’á¤ÔGÎîá›PQíDR¤ˆ’Qùßûéò9••$õLÉÃ,l5»>¶z²<¤]ÿ~‰+¦«—c™{Í´*š}ÁçÓ9ÄÅìh¥6++‹ifÊ(´â[ÐÓ§°¥ï³ +3¡»®“bŠO‚E +gº’­#ѹc5 5&1*rm~¡LÈMƒ ›¸ç¡ÇT™ñšÀ–&ömG§\“­Dc™Ô°á@[ÀˆJˆ[Éâþ¸œo×FXLuº BoTà/~¡Kõ÷9ªÇ•¤† ×–çídý\þ#lÆÚ1!Í~^M~Ї61ïEšÜÚp!Ÿ-ñ´wzIOì£6Wjz‘âí 壘‡¬»çhj2‹&»mû$œgâ:@¯·_¨MºVýº +½D>ŠlƉr§x2Nç'°t¾‹Œ^ÅÃ>§Id¡:Ù´ÀœøŒªð³Û(h—åsGíóÕ¯td§ý«õ'P€}R*þˆ Aiû)/÷ñ ä‚ÀèN+ $Ëšë멼­&ÕÜnÁúz ^¿nOÜoàÑ<ÁÕ¥$nžãñ]/‰ý4Òå”îÍÕºÿí ¯$(ÇcÌ`"²Ø¼èâÿ´Ý×u”æu籜¦ÆP!«”A7­‹§˜Qàî+гf]G¾s‘/q„×ü>í?aêÍyÒdÖ¶/Õ×AV‘ð •OÜÛë|…Õ5ç¼^¿øó¨ÉômS«`™¡Y”cxš£%:å;¥“çÜÎJÑwè áó…®v—;eoƒQ4K2¨@ K(îzÎùÉ$¤©a§ÀçpÕˆ¦oŠm:çL:§¨#?®ã›¹ýŒÞMÝÄÊhI ÌÅÂÑ0>Œ©öAýgø’6€­ÒÕ +!¡IÚë¬Q.z\(xÍÈŒE6`ÈÎCª„Pökîyž–(§>þî+zñO?RÓB{g‘B(ÕNDiÂÿ¬m~Ö{…QDÏBG¸„βsOê®Ìä™ï©þqo;ä˜Êö#³Ã›Ÿgá_)ÐcP+í›óð‚@&Ø›Mt^òZU_Õ«Fx]Gr™¶Ÿ™Éê/ô´ûúz–g%²žÄô¬ªï¡¸˜ ùáù±Þã6FÊèÝ!w€G ¯9§ç -pBÂËÙ’¿)îCÛENpâ!Ád󣢂±&q¢ƒVª‡ !ň&®N1w±óðz5"“f§ñ‚xŽFc¨i-$9ðï+ùÖ1þ> +!tF5‰ 1xÒ.(˘Ð<»¹6|„b.î%MÒ$oÇ@¨aLG£_^z;É«\NëÃg‚°Ô«äHp¥P¬m*{ŸþV¬0‰¨ámt9ÝÏFYlÀ©EXãê3Õp»xa:3þ+!-®)1MÈÏÓ•¡‰I}&3Î#Þzvpæ [8ª ;.H/»éÆ-Æc£9z¨KÚ¡ +G+v„ Øpüà©™™Cøƒ>&Z{¡È[ã:âa/@ÚÚ'Éd(ãyH|Jb˾—Ö}ªÅ„þæ‚‹ä@7Œ"“¿îæ¯;ߥhS»FÓ1HZ»,=žî0<|L3VŠæ<’ÏaæId7‡»”Œ ­ø¸›Ý;ï~(£C¨ð:Æ…pt1I–x,ØvéõÆ€§r9¦&#ëeb¼x3~!Ê5Y¼ +"á!ZuÝ\õûœ^’"¢.›,X’ðO1Pú•[ŸòXqµ ×A«Y/Z¼.ééÐæ:R0È]¸:‹*g—”ëÎ0À§]“‘†! ö¿ž%ŸhgJ`º[¦˜®„¨Å’;ð[)˜§Æ}F’ð„x/Õ)áY6y%õ³g]Ð1#šÏòÃ+6cÄf>¤6$Leáuó&8ƒÆÿ8J2 øó ÈGvˆÐ› •T‹#®‰l3¬µ»B¿Žà‹_ Ì‹•W~˜)Û®ÂpꙦ~„P5"?ð6!ð¶¤5{΃‚U™ovLPÏ[{mâ¹í”U_á±5³¡;þY W¥™õÔ(Í ³©a Aì“ð :Ïf‚zSpÏSsãó€,£_OB8Œ0ÏŒÅÎÐcnhŸ:s +÷é¥QWvè?õÿôŽç¡{¡·;)ëúÀú,É-Ui_¨ÞyI·ê£Â›ÃGIOç6ÚÉþ4ÂßUsŸï:Ìv§íyÆlX°wJñO$q„¤Ã&¤g<úÝ’Ò刪ñKžcãpk +cA0uö8ê/æí¨½öÂ5UkÀåj.]}®üCS¹˜S†‡ÄYFŒÉæÝ„›øÿXÛC@‹×´ÍÓ($^qV„>fáÃG$´j­N“ &ƹ† CIÃ&I׌·GÜ¡ˆqÒ~‡¹á<çl}1Se¨KN$ ÊH !3×ëþì®ì:ª7Çoå^ÝKlJ¨"#89ßÁG +0YHD°§(HUèS‘CÌvP`›ª0›ýŒ+«ËL§—v êžf¨ÿZœGÓD‘Ù”F©Kºƒ>dùíà.ÁŠSWè²\ÉÒûd]€¢»'¿¯ÇF 3OÚœ´æ0·ŒÙß̲}±'"Ýì™ +ÍÔ¸`óêJ_So>á­¹äþ;š™:*‰p:ŠÂŸ=ß<Ù0y`i¬¿%ã 4 ƒ P­ýt)†£tÕ¬#ˆFúŒÂAœ +ôÀiåëcˆ·]…W$yZ ß0’*aç™ÊB)Ž,u?ÛZÑG²«)ª¶³.©2Ïq¿‹}¹Á1"¤{îvoí”lo •D—ú Ø•ÑïƒçÆ_ÏÚ¿ º¤?,>Ö5ì@Ä{œTִ͡¬k£‹E$ÁÁ5)µHBsÜú§ÐŽ=p¹Ç¬‘ã­ñQ„öSc‡MÒèépí'âù‹¾¡FJlª-Mó<ûÝ,ªP¾€í)$»¤ô¨'èCm(ß%S5ðôt¡ØH\ŸÃKÀœÈóPÕ¤ˆŸ‹é{ó:â7îñz¸>´ÜGy§8¿Ýv zA×c\xÉTÖ¦¢ÇðTz±Ùû]é7/B9[²¨ŸªUÃùQÍ[Æì´y%Xí +¤¼1ŸôD¿ñÎvÈ:¥mïåNË&2_´aûºÔSBÈË–éå’$¯ Fæ#‰LÚÚeì®e³‚êJ(Tdo²dP4³oÞ΀¨Ç(™Ch%0Þ£þŠ—!Y¢SBž×eÉ#)š°$ºoP>½Æ£Ü'¸êÀÜ(^8õ¦Þ!0$I  äèjàï*&å=ÑéNt¹µ3ÝΙF io~¦.qøÏ•ÀÉŠ÷ì—ô¬é¸°88°¥Ïã@w9}º«€ÄdpÙ$Ãñ2CãZ‹x½y‘YL± Ó³7)ÁÁî ˜EÆyˆ1Î[‚ì\w$NT*–溣²$]À&†Û  Ï¡B±Ê5Ê>@Í%¸!aÙ®â¼t~g@ †¬˜98µÞ–xxÅX|ØáŠ¢‰ +úRÈRwE)RÃï„ê\¶ÿ©:Üœì¬s7í®¼N˜8酌Ѹhä%n°ý‡²»^5HQƒGRT ½H OsL- j1¡,Bàÿaíív¥I®3½+Ð=ìCÍîÉøÉˆÌÃQÛ0ac|0Ö!´dC°% +2G€ïÞñàl²t®˜üðSO7uoOÖŸR¤„À,e\ýüaR3ìáMðÍú\zäû'ÿ±£—»Ä|*©¬ÕK2 ×fŠG ÇI£f‡{k.AxžPÜw×O=ΔžæYÔK}1y’Ra–¼R‰Eà€^kžŠ§´,ŽÃ¦”•õ™3´ˆöp%¹f€^ +üÔíW*il\ÇzVFU•{ö´HÝfîüˆ;Eþ¸œƒæ9XvÎ ‚µ˜Åc@FB&PŸ† ètEˆ«ˆù/%»}ó\çeXÇRXkpšö¸{~a¼Ä V¯‚"õêi/½Èt.%b{Q³CaÕh·‡Í}ro·· ë=.°]ôP~nõ¨Çøäܱ߱{qz5bÉ…·—EÌú˜ˆÑPt]¨Ÿ7½S˜¼ÙäЃ'yFx%Ó,Q¯ÄD0>ˆÖ¡( rÚðšÖb}êÓÝ-îq˜§Ü:;Ï;Õ(+dÅ®W ñx~`6õŒ‘¬ô +Ó¼ŠåJ +–PwZ‡ §ÙÛ¶'+‰xLÉ«Yo !i);¶ƒ@å@‚‘ÁÓö4!òÃ.Ì b3=ŽÔÙµÄó˜›CìàºÒâúºfSÆââô*Ý´aBLQà‰¬á’!å̇q.ÕïŒ[½‰ræhtÓÄÞ°­¾t‚Þ›>r}kÄÏzOuŒJé¥Äí™T{¼BòÌÞ›ä ïk«bßѦ_=Ö…××™*æV_>ÙmŠKâ‚RB)onÉ?•Ü׸=ž*&6±!6óg»¶Õ(ªå5ŠÏ¼Œ”Š. Îå8-\ñ‰ ;IeŸÔ'8bãÚUÇä‡lÙò¼Ý²q”›­¹´] \—YÉíåvÝ_Lœ#-XdY1ïõ‰/½€µî[Ö¨AY¯ý¡‰×º–À2ë骴!¢-“íFÕì]~9„xk–02"U3®z½àUZå£,¢Äð [´Ñfuï¼(wÃõ\²Î1n@,.8mÊJ¯à_”~ðüjböL„mdÑæñ`€Qóu§9ÔG@‰±ô1ê”|Ë»zô|Þ^oð‘!³¾4I%—ÛGÆËoi1£äÉ —L /˜Jë™x\,Ïòð\€+·!\ü"¾,«Z’OÎ+îÙWb‘?Óü–›=¾´mç'vyŒ¦ª œ˜=NU"j!© ÇgbíÕ3ÙvD1Xß +èɆ»¡6vÎÕI,ØhA…†¨KuмÑ! ÒÀ~ùfS~2þÝ××á®x­§Ê;\ÐH÷<]½Ûœ¡ ÃiQŽ-<÷Ž«ü”Ó«ÿPÓnËr²ÀÄHÀñcS¸–fæà)ÕÿÂ2c‹¡Ü²”®0Ìšù—›Jì¥ÙüO×Ö%èÂl™–¬‰ýÔÂJkÜÀ±ä9£|Tý–àÕp—Ópñ„h0B\c™¨NŒ×ø<ÜâB4ªd³h LÙ9P—àìmˆBmÕ …¼Ä~™ŽQŒ; x§îWSMgÜБL<è½Ä,“¡f¾{/¬Úa °íÖm;åd$Ð ¹È’“ÑdÓ|DkŒBú' LeˆÙuŠÓ#—…¢¥Kúq» F O«›Ö=5ê-{Më&ãÀ¨oz€,2Å<6 žå ƒ _ó?‘5xÁ2-k¯†= k=âœzáF…´‚{@º(—MduÖ ’ "ÁeÝ1ïŸ6]胨¸ƒ1E«öIoCÀ÷¾YRÛ«}W<¯k—¡\×EŒ,Ô€†¸ä¢/À®,={B+[ìÿ­¨ï*ÂÀ•Èñcœ ëfåP n!ŒF®x@é/ú8•À<;ò(a²ê¨”~¯ Y'aç_ÔLìÑÓ!8f»õv ñvé-àç.àw ®:TP8ƒ¨8¡&aøëÕ(Ü¢ÄÜ®;|UNbÕ’íF[Ñ$2}c_*éîK§/8•r×s¿6Šöf ­Fÿ4GÆæk¢ò„Hy2)’XIJh»–I4 ʰ¯ašƒµBJxƒf#šdhöK2i€×ë—J‹^¿mB$@îgâ$2q3å j å9´-ÞNd-=df”€¡€q " +%Uº?{` ý L¤WÖ(¼ BÉ]9¿ýa7ˆîþ #yejÈ úÙ*^%¾š¬ÑøjJ/ºÍkFš>R‡ˆb¹&ý-+BT6XF\ 0÷¶¼mMÝv‘- 5.@óê@ü)G¹äá*)Ø[€) Tšd»,ø5L`ââïš=‡“! +KU ßC~ ±=ŸÚÐjDó/Œ²Ö/'&òhOV ÕLà·ç×=PßäL€kkÃ(h_ä£)Ðv< OÏLÒ1‚’pšêjAÖZ"Õ25å#û@Ézµ³²Ô>÷k¤€ƒµà˜Ip-¬z®Ó£h©ßbêS@<š T¿ªÅûþÀ>lÔ"ZeWŠæôÁ¯†Jˆ¾ætD¨hˆ¬Ð¬;€%‰"dY‘žÃQÈ¢qŔկ¢.}µwKÞºmP±! µÛÀü~‚“üÃÑaX&á»ÇZ2ÂTºI‚Ká[™Ñ ™ ªf-RR«=ܹÑm$±¢¨·M_šJ*`á½sr"Ä„ÐzkXO¾Õ›)A 3fBLèR˜Nhª•¬&&·ž…R·úCdøDÑÂDå¹Ë¢7:#ÑÞ˜E׫:58½v@; ÷]L¦bùFu˜ iÕZ6øo }ö‡]¥*˜¿­Xúh›µAUkr"õß²¹K!¹7Üf*©Ê¬Ï÷>šò°P²„¯›š4 ;˜SäÒ’!< 6ú¦§¬±ŒÝÍNïCòʨý²öV‡ü„#ž|Ià–El-LS/Ë5¡X“ ü‘,À)NF€Á´æº÷uì¸_·à”S²#'0‹’‰ +"\3„¸/èúå®|„6 R`ÖÎ f¶d©yÈ׺}YA Hx ¼ÜJ»Q\›*2½ï(ràà·¤ +\Õ©mcñ}/L’ìÕöaF:ôãé YüC íæïÒ#=z°)V£žˆušÒ?0.zA?¥—–Þ7<‚B,CÏÚW ÈÇœF ³™œÒaäZû|¢ÐN$ØDzÀèá>y¼1CL¥S:ÆΑ«GCX—f¤/ÅŒkÔèŠv +ü=ÆMMfBÕõ»ci Å*R±*‡ 7…1sq&K‚×½”AtG§$(i‘äëÕ¬ª‰Ý÷CH¸}éõÏ^DƒbÕ:73•´ËÔèÑÖ’ÆåWÞ—ú;_Ç5¢X%ù²cc/ GçêDV^ÒH®|›pÛëV;È0Y}ÝÇ7ù8`´ô×þ˜æb¥Q†UrlE0BduYÂ[;fþû+ø’mËå~4_ûFíÖgªäì"@}¤w%R<´5•;¾;FâØb ïÅUs˜¢ûƒÄŠf0ºŒ[á„°h 0 '&¬òÊ32¯à ‘y%•ûq%JSw,@Tm; ²à§¶ˆ¯¥;M{Í¡ 7;Ñw@RPNT“:U¯¹ÙO (Î3êÞk‘‚aË}þ”XQrìx^‘¾ïKâ?=ºP'ˆÕ™);(·ÑSX.×Öh§Îø ¬õ4–ÓF2Y~ËMÊ:ÌüôðcYƒ×NèÀd¬½OUý€B„g©¦—ÖNÅP@’çUvNÁKÔV¹eã³&±˜ð®é "YpÔbº©F&‚Ï@rnªµÈÚßõ÷±^Ý`¼=ŽØ–5/2±GªUXœR^<â¥Bô·Óƒ]=F½Žè~–ˆw‹Š0<¼ñÊÀ±<¹aŽ×"6S&Q: £C–ߢ[`Ž„‚ÂÂ&j¨âŸZT6½\|ð0ù_v)‹$+“¡5dI’¯E>÷Q¾¬š×#PÐသ[~뻪ÞU‰ˆz+ªcI†zP5–uíÉŠ-¯ 8f2¼^í™ôÎÍ +ëÕ):žšRn™3…§Õú +tº<ÒÖXÏ;ŠèÐé8ʄħû‡ÜÙ‘@E"òž Â™ÚÔ”ðgˆp’”ãÏ‹ÄëµBÀÊ“´"¥)ó5ëý·¾ôðˆÙ +8Üкr¸y'¿™™ã:7‚x"󓚥•¦uÜ«ŠÀ1U¥(|<Ûw6i@_ ^μȘÐ2â+!ÏʤìzV‡r#V79NÁCàTU‚µœyõØ‚]¯ÅažIjiÒz†ésœ&‰æGzôÝãûUf + xß?ZÌ ¶ýÜ0¤‰êÙqm¶åØlËñ ,PéqгG‚¯+Ôk„TôºUäKêãIà1T|¸°ÝôÙ²q„šÔ!Yd²Ou3è «Ö ƒçí:⵬ í +2”Âäºí+yΠ[ΚË.‡øX{r±ùÑ,¬(û*Þ=r”µJÖAMŠ-±Ð[A-· ô£¸j`Ãðp-[ðÝ“ç021vçŽcc!šêþT=±&sOïÚ-A-ãšØ¥ýSÎH— b-7äò·{ +ÜP € ×ÃŽß‘õ©\Vƒî ”„É‘ÓcŽŸW`#ýÑ'dŒœ5 + œî@/Ü).Ó`Ÿš+,ÊL È\Ϥ»ZÐ!ë7 +í' +[¯¹i°3êÅL=Œ›¯,þ×ìJî×ÒH/‚4`<«ÕhÙ‹fN“ÄÊ‚‰ø_;ñŒ šGIm¾ŽD3Ч–sYà°¿”B€v‚¢Ü‰Y×,Àgzì+2X æg³Ð–µžÊ@Dz| +’ÍÔ + ý°I8{Ý[ù ˆ²¸$D–× »ö&ï!ÄÎúxß(h(LªV$3è +ï*ê*Ḧd#aŽ„òÚQgdi8vB÷$†¬jPbšu¢}=Å0 ¤ušXÇYS¥@4NU–\Á³º9!Ù `u-û¸ëî ¯‚[—†ÈÈ„„wöXÀ–LM‚»wŽã®ŽrA**CRèVİ^ŽT ɉãïãÑ"Ч2c|ÅËÅÝ¡»õsŽ ™CMÊ|È[GùÒ‚‘4rQÈÌKÏÃja®<¿cZاS½w¯nK%óèsFH«0 lš7:ô`kã£ÔÊs{¬øøFŸû8~ÀÕ*$¨·Nµ—Öµœß{°pÒã•·z`ØAõ¨gÎt›;T_:€›­ˆ…ð:Xõ™*#Þ­¥PBK¨ô˜ÊxëÑÑ»Ïä5o:U8[ ÉÃüU ‰ +Ì¡ô¡Îšº[ÀïÜ[”[ò BJɹ(ÞY6#ŽiQŽêW›œ×™¼ðu¦[N:£Ì(æE¼SâžÌÐåM¤T\9Uµ +¼Ï¸®9¨°„ïc&$r™ùÚìJ©„km]i¦ãt4m¢ì2°\=L7J`ú€€(Þ€4|Âf!-!‡ãqzÅ_ªaSÌÒ“d‘´/67rËI!óKN³E”"‹²þÄd¦!° ìâ5²(j˘„uˆâí>S×LÖKøîö@ƬxB<\›ûÍÒ:¾Áw\BÎöhj[`´"ÉZ‚BòˆAynÅÖµÈMÅx0Ž(p0zÛt5Ë­ò½åuxË…äƒe + h¢{‘¨éqܤ­™¬Ö+ž,™HøåûLû +&¤Žô¾VÐØÿ<“8íBmÔN‰ü§@a¨¸0â@t+¡»õA¯ô'‚;ã]^òráÁ鬨¦ð‡!5Ex©Â7UK!ž…¸¼Ž“ }¨Ã]sãžéb=°óT¤Iµ2AyH$g >$ø€Ýá×׸ }1ö‚ Ë +Šsk½NrY0«ÔrNš‘_‡™ Ê:§žixžû‹²’Á¬;㦩¤ÊÙºñ¥öBr×ÃÌôb£@ñ¿ý«P?jŽ€Ð¸i‰CQ¾­¹="Å“oë_ +b©o™a)!D>¾>±Imjn†ÜÌnú$®/2V ˆÞðÏú8çÌ"†x9ë#Ï9+q;¸y:‡×M˜dÅ_GTî6²u!`ñ43µZæ\Å.H·*ɽÕó¡úJ ÇŸ‡p“õ }Qwžúp< ˜¼c¶pªîpóÖ‘’Ç3ˆK«à»ÆN ÃçXCPÍÄz9¹e zk®:H[âšš4 ­Õ0,T 7ÿhZ[°æâ²ê·±/Ž.R¿/5ƒçW òöïW*BI•ýéyûáF;•®eĺ endstream endobj 26 0 obj <>stream ++ÕÃC°Ë¹Yƒ%ª½<òˆÌ6”ûóKf­ã +¢\Ö¯uøú9š [Éñ­­ìµd-Jž5Ö!¸Äz*–‚^®‘ˆÝŸ{, ËNL4Å}å;ÈŸÊïÁJª‘wà âkÎí¯„þ#ÿMÜd`,³F_Ynˆ6WÃÄlÔQ§réLè~Â~¼lxaÓh4¥¢}vN¥vâ‰ë¥. ÝeÝYÚøU)¬ÔÐ8Ú#«w"D]m½OP¶)‡3wJg@ý z GÞ>?R*ÏѾ4²ŸÆq²6C†ÅœjÁ—eEš5œK÷çgÃ}æšH:Øu€‹ã'ë§o ?Œ·Fp_ª'ãÛÓ^G”eZÔ&)ÆÈ` +gTNRŒíÍ}a”aO±w‚d.sf¸U¡èxiï=nÒ =œ¿;™i=bõ¨ŽS’ht(.Âç'`K\ÏभT6A»#?>÷%€7kÉ ÌçÊ:ßù2·-;È[QU¬}Í'SŸ¸†—8g QMqÙ†¾3DN)Ag¨Á¯†dWÂñ{u&¸vk’ã,àÍÌÜ©–|É^<*Ë2F‰ŠeìxôÚé%‰\¡ô"J/ˆ(ÇZ$.†ÉAT&Õt|[ˆ·ŠT%¹;Â=÷a?‰@U' ‹Q±nà‹6PP  ?2²AQ–-¯È%'&ZÐÏáRÉGÎr¨ý}‘4T‚¼›ô«m½£Î¦âsƒ5mØpo!Kä8_áx ÖwÿÉ6,Ú.’Cuv‘ÐPb|6ÉþÄj„6Åôm!ÅxuYšÌ£­™*: ±9Q¨UVÁ:WgçpF¾÷«º½@Åb$*^Tnl`Þç[·¹ÅLÕ’RØ“j»‹$:üGiü4vh-è¡ÒHŒߘ¼ÅúŠºŸ_* F¯%0+6¼ð¸}{âý;ãbé|;JÜ\–ävYsœ2p¿2è~þ Ç·Ð\Ó Uç ìÊ3Yù.{ˆ“”CRB óVžÌß)°ëgHrÖ4hi€ª +°3EHWL`êl>`&ÊúYÊ/zÀ~E¸‚X8©Xìoçn€µàäÑT2œ}•’8'¯ÒÉ6ºFÏ“8“PÆçôÅj°¹×o:´À5hDR|«“ˆù· gï@F0ï½S»ŒZžï ë(d:’‚Ò ’%Ä65·D6£ñ¦nǧe‚¬ÕÁkFû>ùZ½à¹z_Ûñ½Þg’ä«G×LpåÛlJ†Ñƒm'¤ÿû‰*ˆ—ÜæÀ±Èa6õûD"'yWBåѱËa¨ÃÂkÔáJ²Ømc=œœˆ==Ö‰ŸrͬAÒ½ÊyÚœ"Àž¤U¤ B-À%WÀQäN`t™>ŠÛKg’8¼¢n‹Ò8?—$r?GHäG §àÓ!ùXšù˜ų̈Âf˜ËýÎ[až¦rê¼—÷^ç.Œ¯ñ æB’h¼@7¸”ž²f?ö¢íâ—äïÚ!É!úÒã—› Aü,'væßgîtɵ#Ù@±†x“\¾ÁÌöðŽßz!Y©µ'%h×ñ'QÎèІ»>Ü. tŠ¡„⤃Zz ­ÊˆigÌçL=JDŒãÛ”+Ü©U%¶Pô0£¿zô-Ïv Řò²Cî*ÕÞíÍŒºrG׃— §X¢ææ™éuj⣚:¹0íl#.FAïl楘›¢F¥€{Npí ëbß&*ê)¸s³fÑ•˜ôÖ«@»îO×¾é­G‹­eŽûÉÓ~íyÂÿÀ‡|ßúÓä]òƫDZ5“è¨pûåóLlÛzœ]Œá×oS(5k€Úœ:¸¬q÷7 ”œ:5‡õB¾ÔxÞzéü'#k +›”ß>“„“xÓ-¨m‹‡jy>‚A(‚•G\íÑœê©}ÔPŒ^AàZÐlæ×Á@7™Œã @ÑšWªÞš «7¾¹7BÖ²~tÔ´3ÖÆò¨É)¨¿XC›‘”̺­£ÄoÞ%^"öÏJ#+ µá=óLÕLq·ø3µïVÔßz¶öâ4פSv1…tDê*륾û§tŸ9ÿŽl(ÙëNé/8¡kòÀ2=|¥‡qæÐJ¾®'3Ç>~QÚt¼ÊØâ®|r%'¿æÔÅ{øØÙ{3 Š€¯QçcŸ¯héÑó—ÂzE…KŒZeż´& &™-ÖÊq¤O(N®âÏGD¿åþp>Œ°.b _UsŒãR¼îc(k‹HGB’p\¼CÏüXyxkÏÍö¶6S¹UA m°}°‡€ÿÑÇòèmaë¯^LjBžvºe8Ì—Oá]T@“0•%oázô¶…]jŽ1? Qm¢^PwO8xëºËíæŽs•¤TÔ(³€=t¼„zÚÐÛÆ†žQåHà{¥v2N`U’  S¤‡[†¯è †emX®SÆþꀈ\—s¯ÚÄ9)oqºà<£«š€[¾VebPbC“µˆö0X8,tØbHHvØGHÑ,Ák•*÷íiqX½`x§—30 3”EE&¡™Ý箆©IWPÞ=ˆ™è!'–<›Gü§›r“)d¯¾¯‡I‹^­*³A]TI‡Sà4+á%K9N’U½ú”ðî}ݦ®‹,Š®¡6¹C!t}0fF),Èè)Ò%ßzÔ'¡ú~?¥‹©L¯ûa €ýƒ%p6…{uµ¼õ î˜M°Á* @@ØÏý©Ó‡@HR­}¾ÀEcÐC‹ãÖ¢ ^}ÝzõóñÚ‰ÓnëAÅŽ"09j½5ß7’;kà › "™¨å“é~5x_}qžF$“IrCTžƒw¸fnêg8¦ÇH2LqyD@¾6ê¾,&YX]xgV¸VÜí‹rŠæúMÝÉù ·-)ìô„¬ùSl\àìÔ¯tRÍ„ÂpLc΢,‹rÈ˜Ž ç¥bÄ×ð6ªñD{lѾétlU~òx~u‹UkI›ÑÛ¯Ì c‹bwã!Ù®ƒ¼õx†M¼mÅþßõ¢f7åkª£Y]°ïtqiö +×RR_G5ìö­ÝAüÆÜ`žÕkR°Q¤VhXÇ$dÊÌ;IIÞïЧ2dÎË*àš,¢€Ûž2[¼w¯\¨­›*+˜-}ÖûvȘ¼â + + +åi{©'3S£]žá‹Û—?¥íè©ÎGëDÀLDó3µ›ÒéuË®)ÔdQâ:A¹£?ä\=ºyMG{ï‘§ÒcÞ/$º e¸è5òtÅè#‰‹õJ͸ºk,ùÞãüi»uh½²ÏôÖ‹j0O{d‰à-²[HR¨Zc°ÀMœNfHØ·[)„ºGï‘›†n|W¥ûÛã)p!>å3“8Ì‚¦Ñ—åu¡²Gô×NÌ€0C9[|®b®ÞÑhJM„àƒÐ²HíTÆ{ç%E¤“—´!vû~|‹¥ÃLP%Y T;8[¿íÁöH,;ù‡gÛ7ZÏ^WfuIà4xÈàù¢Tƒ`ã©(’HF\Ä + È” õó·^‡+bPEMLÅCÖnaàïzD6M»WHûÞ á@õÈ…¬  ’]LU™øYQ”5ŠŒP@L$6„¬E ½ä¹j¦tõVa…Àwó¬(ä9¡Ü!"jEþ…ݵÚi‡Gî:=Vôz½Ž…Žƒ7jØ«™Þëè£ì%*Ãa›­U »ð<šrn±!³ôx¸üMmö²âôÉwH>'œ.é¾Wb~dÕm:yMçLxßô¸„*­gFôa~í¥ ØA±ëƘQFC ]×/âôkÀõ­´½4.)ª»×Ô‰§§V?#ø9côÊV:ŠMå‡évfîd*dsÎPïdùµÚ­ Ysβ٠ŧë:¢Ç›<êê Dh5׆烅œ/=~yJ[ÚL]é÷ãPü »n½È%;TDZƒ/ìï¾]¿vÒ“¹Ãí‹|bá!Œ±‘€"èÅËf-LRDËæ’{ïÿó.QìÂR»²ZЫ„»"J#~¼MK뇨E½•šØ–,­@ô-3IÛÃAlt\?ØžŽÛSv’ÆS‹d\T˜1_o=þ}'‡œ¶¿6B6#Q•õp Ç› B7ðQ°ÔjeÅEé1Yk •X6<ÑN-æùtâaÓiÌ}ó`ØS»ÇLCq{Ìô——„pôÏ™¶-òÔ;dn’â!IqŠ¥ÓŽÓÏ·«âšèF8 +ò½Ö7Ùÿ¤:_c|B-=É ßy,w AÈ‚˜—™Îµ'"{‹á¶ÐücÝ9žù\5¶¯£2e6ÔG}ýQöİôÙ饣WGj†²ëƒY…ø?iè8kéœ}ŠG¢»„$Eqî}€­m€9úˆ_ÂD•bPíqà§Lê~3w8¬I!hÚÃéHØõy\æe¾eŽoµ)‚4¨3`¾é ×Ç òF1’£ZwGÚzl|è^èàÏ'3ËK ßiȵ¸d:Tàì|€ ­mÿqøŽÞVéuIw3Õß×Õ핌¡ã|¨Z5|eû ßá8±C’j’´áè~1Ý¡êU¡l¼÷€F&¡’¹éH[5™^];V=3AQ]E¦±âù*¼¬Ç«b Pÿ + –­öч€Ä9[ Ü[•»¹µì‰.H¾/È<Ý—‹ îW qxçÌÈÆÝgÛ‹†842)¯ø®†‹<†FŒhz+†®Ä7úà $lùLNÕ=7IøPñ(ÑI¢#c‚à÷˜'¾ÔhôD,SË¿ªÄp<ŠY?5œG!OØov•׎(W”Ç{BÚ‹¬¨*T¢m<ó­.Ãtèð@é²p¦gyÔ9lÂfSZÄö¨òÊöâ`%ŠcÆÖXÁOOúg¢éÙ… +>wKìúº ëU:Œh^ôˆøLR€·£Z‰Ø4òy¸ÐÉyû–L°ŽÊžœé]W“rÓç3iŸ©\LÜꞓ̞!ñcž¢e¾B=Sc΢sðf6‚•©`ŸÊ{œ?J{rû_¯;ØN’ç–h/]cKcÒ+DµýüÎâö”‹ÿ¨ñu¤F«¡oè6 Vå&nË6ÚþíJѽ7àáôø]¼5^Q^=@ézÅsç>+»ªg7æh¯†®fm×"'‚{û[Ǧžœkm®Ú¢iÎÐ H"YFãÖÕ”»ëX¿ „ |ó‡…"ì!)ñ²‡\“(`ù*êæ­­ÏÇIïkcj+bæÜÀmæïw²oYîx"öAÃWØ(#„ia­Gëã~n–Ð¥­ +©¬°gÒÀŽˆlQx/¥à·Æõ^F‡ÌŽ)©øù€ý5¢dñT +å9£øúh£õ-hÿ·ðndH¡S®a·2uC‰™áҪŻ®V‘Ôv¾ª¶.ÐHƬè¦"&{‘­fïEu†`”•+i‚kF…ÑK©©€—'£­rÙZ&75ö5»«¸åþ@¦U9lmåÆx5þú?|üÿí×OV>þÓßüþ÷ÿÏÇ_ÿçÿò¿ýýþðÿö/¿û/ÿïïþ—¿ÿ§ùÝÏ¿ÿ×ÿïw¿ÿ?÷?ýÃ?ýáþ·ßÿ÷ÍI¿ÿÆýÇýÇ¿ÿÃ?þÃïÖ)þèâî×üÞãÿÊ¿× [?f¬ÿ]ùQßð ×4%Ó+hz4 >‰FAAk†š(È=4˜ˆj) p¢· ll(kÉ¢±Ez+Á?ˆ±’=ÂBSPbÅAb'OUÌN:bö +mg-ö7‚@AÈ^¦‹v –«>c&Çœ¹¶öè·=VèÕµ²‚-zäËr R–ë½ìÄ彿õËp«°&?V¨€Döˆ_Æ—CˆßÑHÒca·Æû;Ò£w>DNpöÐó¬<Òp¨GP›@=”cÅo-`cÿ¤ÖŠ +W;ùF½ïŠ0šÅI׼뮤#á¤óù ¼ÛÊv’F%h­ºk&0ëŠ+NåªÇû¨‚,)ß±*Fî ‘;ÎÜQ·AùšÕD²‰§é¨¸pI«xšSXêžqéì|ê©ó›E×àëúägÒm'Qè„rPÝM'Œ éÄA€»¦ ¡’ÏÇÌÑ;Á×Nm]]¿ß»e¼ïˆ*ˆ +Qçµ}]nDÙöqHv¨bÛÜ›òªugÆ.€ŽÇêpDFe>vÀ:A£5 ¬¬ˆ¦:.ÔáÖ·áâ9<ÇÊešr'W!,þÀX®=ŸsÔb^Ž_RUåy}çÚº +§( À»²*ç·=øý<\ÁÈûðo涨‡˜§÷ SEµŒö|¸”tÎ`½xdéÕ¢ù|Í|^Èÿ4œb7Ö®¢?h†ü#1?žvÔo*\ëÚAz;s²áéf×O׉‡Ÿ§˜XqwGçÏ“i¨¹úŒ7U£úB~»Åñá­aEÈGÝÕ’÷FÑ•ëLR¤¼×v³kD¹.kB•›o´¼ru14b]ª¸b¿¾Õz¦ŸÎ&µ®Ô®ß>?ÜÙäXÜÔÅÇåæ`h +/ôÍ;2ž'™w„_K^‹¸¬óäÓ!¦ùÀGÏ—`/œ‘MõXühd Ìy!†¹ãUÓ‹ÓÆ;ò±Y¡`ñ¨65b±¡¡ _±,ʵ2W7ø¡¶ºŸþ +¨óƒ TµеFwA¦#º÷†3:e_óQËoBóË®°˜Ç•šoýdÖ´Q{òZ¶P°‹óy~ è…ÙNpò)G}kP9bSÞ%žëpš +¯Å¯­Ð«D⥮õ`9BìÈÖà+òó>ˆHÐÖ“€T;€j +¯gꇯ'CŠŽûÑ´AЇæÑÄɬ©}Q•=ƒ5üB§ç^›o€Èj(‘¨w¼Á`ZB‹7Ý20n^+" %9x&íJÌD"‘´¨(6|LÇ>–Þ]ñ”\ufèC<ñjô^nsg>FbµŠ ×•½½?`k$A k™wTzYôJ_DWˆ´`Ñ PÓ†¢`8‰•úÒœÊt’‡0ƒͤ#£Ç: b¥"Áo­<=‹É·ëØ=BÆë[«7V˜Øç¹M—ËvT)ì/Š}ŠBAC©æJÄÊ(ÒLøìÁöÅ€¯ÃI¯×§T2±Z$~ŠÎÊ”Ž¯c{Û ˜µ–aô•qSÓt<àt•]ɵу€ÖÉAÌ+¯[ +!TÞÐÒ/%Z€%º >€VrÖ8=!²ÈÖZñi2»)š T€½à3FLÁŠàè±çæ~8L¥½»‚z»9JU¼ÅÿãYLekžÜÁÐÃ`]ëMûÁƒ ýö#òf4Z„HîüèæÎuøQD³= XÇ€c©ýóh1aÚ†Œá·ÝÒ§zf½s=Èó¨Ž*Qu|>»ðþ Ï ‡^b›kh9¡’8ºsFNû­XÖ‹å÷¥ Ð=ÈIj—l4 K« %p°&»W•#Œ¸OË—žÀÈÒª&Ëí›ã ƒ‹®dQ7p…æŠyÙJ¶ Õ …Ÿ¦bØN D´b +sÀsшkÜ4ƒÝŠúIQ‡ºâ ù§¸’ÁLÒ?|ëN¢òðÞx‚¾5 _·ìK#Šh@UšòeìwËzA( >[29†þ8´õÕð ÙlàÑi[óë[xâ BXX”0X+Èû§DõñüÚ¨J6C +À¸ùÈúOÅìnåV¸} +ÝxòK¯Py6>îÛö·ÆÐ~æÆ7…æ‚{ÎØÏmf·ÑQdz*Uq¹ÚÖuxBüJƒ‚+¸Ä]nßPõ7Y×טâüôoSêÉ07Vã +ÿ˜9÷D„•åÃlúJCö×~ƒXe}q‡öiKÙº„`œÊ¾sJ ãä·îÓ%zFöˆ= Ù§! T‘£Àr‡ÒÐç·0"H¼œ\!•Ïzk 7ü¢0}mœh %6‘¤õÄ“¡åp?Á¦ªÚöP“½â¬Ï”äӬކ3.{H )Â6e=ìwS{¿B•¹Áþô]7µÙðz ôæ88ìyø´fDríÜ'Dl­òÃz6jÇ_Þö;$ÿ²µ˜ÙX_Á¨¼7”¸Rþ²Î?jìÚ„$˜X+­±Ë'îDkû+JCùã³å5,Ɖz3Êä?~¼¤!¦zšïøÁUÃŵ'Ø%gJ¢Ðe_P=xãìC);,&i„S˜Rxå>®~h8¹‚µ€À>º~HK˜¢¨H>аíõ%Œþ˜"΀Cfß Jí­á¦Ý¯È±èÍ %†’çZ"à?"«½P+qšÀg¦nmo§Ú1Ÿ ô³â7FÒÇÖ’¨À­ e¬f³}Ùmô¿Õew6$B± S°tElKëª*6ª¨úù¿»Al™rxÛ«im@c º^¦‹¨z Ù… +8ÁÕ]ˆkW%$[ך)Ô¶{·‘z·Áÿ¤:Ÿ†þ4ôÝpGåó~JÑ RC$‰Ü/2×òÜü–7{5ÔMeÉ6@m„Œ§ …);‡[/C~Ý?ŒÕi”wAÃ0Eµ]½Ml£ù¸ñ ´.¹”Z‡ï±Øt®Ay" ÇhqÛC5Õ³ãÁ9jۉѮ܋€£ñcB €1Ÿ™¡§Ç1þ±äU± %óÄ›2RpÜW>ooiðÅÔæ¶óÌÑœwhÀ§{5ÐóhTDÈcAÂŽg<  Ü´¡IÌCYÖ„žž­dZ1‹áÖ’õ„WU +8ö¼ãüóNµ(b²Þï2c7sß:2B'€—zÂOð }k¸K “ÉÜ|iŽrÍ-u¢w_.ä©X£›I ½}ª˜Іs:ë…t÷kgPÆL†XºzõΙ „#¿ŽôR[m½\–YfÙ<2]ƒÓ[¿;Sk+¤ [øƒâ[  í%@}‘&EJ ‚Ê; Û¦‘è׊úIé!0£+»l=!@W]Doè)£z¿Îå^ñÌðbŠ_¹pÒ[LHKŽëøá¬¬íÚ ±Î£Þ¹/‚.ÍÄWªy›Z¸B+Fó”þxã‚bÝ<»^³c•^‘FýEílï4°s +HZì1pæØÍo7L«ÁL¼yÞkõ G£GK³^-eCØ8â¸òèÈ×<–äöjTI´‚‰®A΄ËÑr& Øœ aðȵ丷FƒºÝcóËÞâø|ÒF ë~êµS#P™` ºÀI‘ZWûl8À/5l{F}„¥ŸF¹âë宯v”ÞPF[‡D|‰JŸ×uÿtW„ržÏX^ ñ”§ÜâŸ09ª>X½PžÜKaÚàCþ®_„àå4ÐÅ·¡r”Ž($¹ëE®ù‡” 5!ßÌ/=ò†R ÷7T‚¾9εÕKxœMk˲íæP.žÿÖCBVÛVs[%æ›^%æ"PÂ.ëC[0 ‚%=u“‚-é¶ +|ä ©hIQ¾ï\“½ꩬJ(#ÿ „ò˜„ô°`Šü–8z€@ + Abz¨áUIÛ!ÖaVï_'r-¯úìÌ\yr@2,yö¸ÜL_Ò\è» &ŒÆì@²¡ªÊC©›ý ‚£sÕA*ÅÊ 7J†*}B2ê¨w׫ï,í¥§á«!àK|òú«'Uô¶&(VI åíó<Ö¾ëë5ûÒ©ì` §¿æŽŒkšûšPO¨3ªHÆùTäÔ=¹]T¡¨ì~íñË.ù›ýT…ù›N–$MbÒ%wJ›ÝÛ²ª9Lèù¡ì½ÌV(Ê’¦»7„—Jï´˜Mn¼&+vžï ¿j[üêÙ¾õ¢¢B˜Z’.¬)Ô×# Å–‚¦>µÔ”PDY÷ñª£ áø]ë—’ZôR)SVÏô0È3b?Ó´4¶fÊ;V™mIÉ~ôˆ*2uÇç™\½p—R‡¡8U%GÑó‹˜ò 2¼ýH·[1 ˆ*”«xs›GYï0DÖP†ª*€Ï‰sW)Ló­èpHíNUÌŠî^ÿ¦1É¡µ¦—ÇÝþ­Vʉœzß8aª°|E³íz¢Mu#Êë¢øµÇ/;‚QB°i×oŽ3L[¸ÃåUaˆ=(”¾÷8Ôâ{›â5u‹×JQ§FÝŠµ­Á U[óQHÃ\æà¯=^8[?Mµ¦¯Çý +î¯2}+<ð[GBT|5y¤ƒ銶owÏí~¬ÇèÕáY0lŠ’C}[pãêG•œ¤²X"rØJ{TÇÙöyF¸só9÷ƒ¾¸…À¶ˆ±iG +‰š²Ⱥg°4YŽñžsor¦ âÇi1=DSgÜIЉ¶ÔF +Ì>±z7ÆúÚ¡ì»r—~n}¯·NŠn]Ñ-q]sìÐü@!kÚ©OÜ´¢iÉlEŽW¯í­C¶[ݧa ¤¨Ç—£œaø¬=¿wˆÔ>) ©%o÷ˆ“Wp°.Ïn–(0>{ÝŠœÕK¾—Ížø´6óôYSc‚aqöí¨"nyŸr‚hú¢/u=ß.e2ïä[Î/[“γ‚[ÈChgvÕîû½GŠåscxï+¿Ñ "y䌙íËsjJ”à¾éqo8Û +ÅzÊò_{ïUÓv½ÌÃ3m0bǪ˜ÐÐviH*êò7%¶+ì®Ò£¼PM.!?Ø]£±‹7‡é×§Y}ËÖ&•~PîMlªA¦ü,à £T_'RtTQ0¯sn|=A(õQ.…˜¾Âh«G”‚ÕVòt@“ñtî–c¨xÆÖ—çƒáQ¤oŽzGã –¬ |à/½Ž¨ +z»¦E)¾éAº­½°=_¹ÃU 3!¶Ã-/' bõ‰¯¾ïëDÂâ¿öÈ f½õºP…ûî8ˆb$­ÁFNgx4ÜZ²×ÃE™‰¿ÀÑ䡺yÙŒ‡kƒ*`±ž÷{¯¿Ý×ãž©ºüº2Î?eÀ“¤üIÀL'ÈÙ + Ã5e}ïA-…y–¤ãý€m¾ö‚Fœ"Ș—ìƒèÔͺë]©Šu@öM@½ð[-+vX`ÆÉõ ¡¸oJXe“^ª©Ù) à’|®û0„b~íñumN–ôk/œû¿Uª:ña7 ,-«”¦GÌu6ôiÀA$ô&éL{ʱ#%eò’$s•ÚoLE”ù)Ð)Ëš\Ñ I+!˜'əӖB¾kN†ê¶™aèZûªDbÖ}(Ês(U¤Äyä<ܲõkaŒóïŠ à2hþné”b&/ÔŽíD Vaú­ÔYÖkÒ0GÅ‚×dͶA/O˜k0ÞýúqRú3†ƒ]à7b ðïjk»µ…xÐÕíÆ÷¬¹çxDо4Îho(þ§‡ +¾ÄK‹¬× Ëa-¦ð¹•U~ÞèÙ7h —35¬qÐðe+­º)Uèżh¿Šwy1²þÞ¹oTê ·¶Õv‰õ@+ ÎþؼkÙxë²KýtÒ`<6$,ºT*9L{BFÃÓ#Œ&°“àåšr„ÑÐ*kŽ¡o(äã…Â=vAœ]‹ÝÀ!Ç‘û´7…ˆ>¡¥0k„M«£¼o¦ÛÚº«Æ£ªÒ‡¸“]í³D|l©)g¨á4ÂÇ¢ÕÖ—zÙh6Ö„µ¼«;ôŽ¥R’SsŸa—la+½zŸ»Wˆ ¤Ûr™˜•К¹…Ú55»õAÑ"•Ëo½¶`}ûySYªySÑ™•‡q+„½¦ùjU±=ÕÞ&ÏU.ÓXážîrg2^®‹Í¹–D†$NIkAAÞͦ¥t( Ás=qýÅPô¦öÈÄ9ØÄ:—ŠãÖ ê>`_”-u‰K.­žG¦úÏœátŠâWÙÈ¢¦ŸCã…ñ ¦T^Ù6S‚#†'¹tJÉ}„0{`©³Œ„K|›_W?²* aeä^8´|úë:îñ„cö:vc+ktÍ|ÝôÏÎ.Ù{Lõ"™ H<(ÂCm»/ÿØAˆ@#¢šA­˜ÙEŒ>uf‰ÌÓ:6~Ia2ˆÉâA [¸a@ù…N5CÞ:”ãdyÜ{­uŒ¢†j¯µ™u‘Ø’}TÄfØYβþ޼<Œ5|N0ºõ(ºçÜÖ„+øC$§)KtæŠûÐòqšzYV¸§Õù&ÚœrÁÒz¨[im‡G·­{1àyRæm”ñ™·×KÜæ•' ¨/ê|X§ÓâþdumÓÁ娿êá¶!ò0ÑKÖ5H¨Ç•^“Ô;æéÖ¹ñÜS„F“™V¢I$<9m¤rZΤ6(u…Wýº>Õìõ:è­¤ ¬vû%g¢¾K.}P#°N¤ë®¹{°æŒZ€)ÉVŽ×ªX2×[uÀ@æÖd&_1ÉErE­ï6ð#1ö/ÂÃ\Ã5²ü3gÔÍg”é±&ª‚¯¸Ð¤H’ßæfÿ$ºbü"$Ü­‡x˜c~e­“ÌdDŠÕ1 }w+8/áWkÊKËóh[pûZ›S’dð S×>ž­(gâ±q&²Zðo•¢ õtä PtH!®à²Pð…[SúñX˜w¨ÇN!Á­Ò‰I¬¥.–3r½æIÀ0£¯(Ex.Ša(6òšTw«w¼ÃÞH9Rº åÌÎÔÁX–Çyƒ§²Ö68µ~9 ¾C$ öæÖšé$5ëCzÚˬ6{DEÍ\ˆNç8kå87¢P—x .Ja#§ñw®‘Þ„ p5…v9Gæq.fä0Á\3ÚÁlºÔWn:=Ø¢ÄÙÓ㉴ßÓ˜Z.Æ)w£å½Y×tâÄ•pNr6v\Àfs\÷.Ç:-L†‚käPpÚ ¢èfßPY£SM¥r6 ;º`¥‘¬dUV ÐÍ÷”“¥1 æVÄ4‡t°¶²‘*n{½ÿ†±*‘r¹£ìÔÉ™¹–=Rp™'Ï3[Œ?¦=qßoὩxbè ®½ˆÙbµðÏ;<Àl büÉ.Ρ¾íÉ7Žìø‰3pã +r^¨¾läíI×\rÚ—7ÑßÇîÏM¤È©žúþÁdtGù‚@Óxå[?ƒ±‹u6 V/6^“NV¹%Ço.+æs-—ÐÊÀ€Ål\IRàwIæƒBÀ°€}D§L¼v¶J-Õâ5­ ùåƒo;ˆ•(Ö@¯Ú®C!& oq-OkT¿àú Žçf vÞäÓFðóM “õOQSü?YÀ4`IQtéö<Ÿho6ÙÓSœŽ1Õ’nÏ}£FÞ—ÈÀ£Êæð„® _Ë1[…î…*D®‹LnÙ×–hoÍ‚#èÉ_X?ÿ†c˜ ¸Ô›×ªP§/ÄõPqÜÉ?ï^ˆÛ’©©f ‹¦ÝöB¸?¹%lÖýìL&Kò${D±“ìaž³„Ú< ÷òÁÔ½&—Q{!a@¯Âà·vwÇ-LÕéÑéBÃK¡òÚñËUìùŒ³ Îó•4º7hã‚o‚nñ†² «jø(þé5AŽ.êS˜Ì +îJЂ=H ·‡ewn Ïiи?š+œQü­g[¿¸9™ªˆ Xu9 qÚÚÉ6•âaÁ$¼[ Ü#Y^Ãê5¼ +z‘Ò3 +WµÕƒÙ#’‡ +Möp‚¥‡\éžâ̹qѯ±Ã¡›nz5«Ì8U´\ïñ¨§—¨§cóGCÖÝ +¥§Ç­A%X/Žt ˜wE+ ûÌs84ö®·nÉ[°õ”ïPB/çv"ùôq½Ê4¼Ê&özßX²îDmƒÈ̲jGÀ·¹ËJÁA¢e¢ª@ öG{ƒ—’»³¢À¡WòtÛ|K´‡†ˆÙ¬ƒ‘n/‚xp¡Äš¬ MÀIU†ôˆÓ^THE,ê*àì)OŠ“öý«H¬®_u–‡•…’„¦£%uþsýNCÁ’j)¦®fÑÀª×CUmPºJðIkjÀqåUM†åH%÷Ũ4H¢ÒÀ¾O䇀5¼”AV”ʦž³ë«<¤8ôŽ+óeýàø2PQåü hϕҽFèe‚ÕO3E%A?ÖxZ§w²b ;Ûq±£½Tú·!ªmkU®÷Ú˜K†À ^ÔY&3tÊ#¬ñ&Œ¸¹ÖDFƒÿÖë…ݬÒ%™µ +Ý—›í${˵Ó @GH„­}Í5”ËSÊõ«…!(™‰ðÃúýí™Ç.¸6„>D²W%âm[ÙljŒº 0¥] ÜªE^ýõ·=dx%*\ìÐ2îê8J¾U#Žý²‡Zj¤7»K|ŸÊêQæŽ/¹1y FKHN¢Eq´KòuK²imÄ/˜Ë•ßóg#šßrÀØ@tÝ1lÊU %mØ´~ÙzØxv‚wH„ÊT²•3ÔöæÏ"¿ ’{O®ãˆfkûĶË`ÿhs „4ð(U¢>Oº‡ûGÃ+ƒJ¥"šýSb‘FäÛiìÊÐöÏ‹0ÀÅ×k@ÎÓÍÔ”¦i æˆÃì®E•¦í6C®.‰ÉÎÕm)æJ°r¨m1dWÙµão,;"Âï9î>k ì´Îû% …_CDL½€! WŽÚ@>vIXzD×'ª,©uÀµm¡oTýŽÜÞNæòs¬ý¢ˆ¢üDÍÏá&Û=ÐÏØftÑ<6ö“œEÝÛ,s@"¬ +ßî YQm›ûî¸ô¾,èј·ÐÍþj¸ªr2Ýøü"¾A&{Fº>y4„0AÔòxÝji˜>q§“Õ‘Œ~옶 ˜ß¦~$ {²gD¼,ëÍ’SSÂ0å  y Ò¡D:5,Ù ¦ §2)Çë~»XÓu²Å:ñ'Òû¦–)Õ‘ZFuo!üd^ź:$H<‡0nרʜ>øãŒäÛjX+¢òÑÒ§!yƒ v¥K^/4Z´ZH|ÚHæ”ÕùÖßó¨Æc«ÿ…¯”êÞízIsB¼ÒG2\9xë•@ÂMMæÉjÑlÙE©.È;"L´Ï£j9·î b]ÔTD;°ŒõzUÙ§’Û#¦(ilèë‚/Þvn„¢SH‰ê» M%ªÒ#"I«™A´È\)PÒ'¤ÄGjòÜÒc‘N¶6yhö¯)RóxbØ;T½õâ›~­"ÿ&W÷ÍÁ‘¥9*ìk$f(Î]­NEÄ¡ŽÌÌá*"ˆ‡8u] ˜ìÍ(žKº7ëÖ·(A´ÝÍ :‘Íó9Ð>lHŒ¸õ¿K F*׳;e¡•³¶Dd ݱ(è8©„•äDBo„MJLe‘–ÄF|„ `J}ºç à¡)âât3 1?gó âc‹çF¾±Áü ϳcÇ nRÁ@®@m¯øÛ^ÚªÒ«íÃŒÝa>¼øAˆ±{ú&Ápíìƒ5%êŸ'bqæ•Æf„^—pu(ªSçÆ@X¤‹Ö¬:th»÷ƒ¶îy é1r­|þ:…!öŸ'59Àxì¬^ Né§ Oa•t;øÔV‡¦Tîµ­çI'É c! 8È&c¦åež”‹¨6@ÓAÖYçÞRø/ ØÇÇ žÝiT­ÞKJÅ ÃÅIð¸7,Ã^òÐʃÅ^A9,ïnÓBs)g >Ðf‘è§ÞKšà2ax+=Ç5ŒX¾‚Eã+Ð+¼-¹ªº’#6 míµƒâs±fÇŒå!¡¹:½‡Âá–k4A;äB:žÎWŒÎ׸¨1”¥RpüyÜA ޱcá^‰M…ÄX[ö®8⌠íè–máªÊüDäŽ,‘å„o€Z°X¶®$Q¡áö˜æ@]„dÈ-5óÝö)”eÉꦩ`ð}_Òøé±m63 ¯w’ý¡' ˆ\®-¶N=ñ©øó*Îì,¤¬ü–û¤’­ûÒÃ5]cÜ™‡.Ok¹xi“ÀÀ¤ ¿¦6F°GálPÓ®²ëm +xà| ζlðÕT¹†‚ßá‹rJÿ”•×\ŒÖJý¤£é¥6™ƒáÏ×âDç+Û'š8k2êhY°,µFU‘ñtFš‘”ÛYvr?ôxÑkÚ¦ ®^”íFK ‘¬ç$¹Á–’‚ÒµŒm/œ_ô(FöæÆžkE“—ÊìQÔ&Å£Œõ] +MQd”‘8t­W+S¥VªS·Ov\û{êà ÚãÎXA¹A›¯RC¡p„ +ÒZÐǤÒCŽ¢jãLÒ†2Kõ#£GWr¡H¡¶‡Qu=¯ˆâ”Òžì!Êœ)œ«Soù ­±ŽweÔÖ[Ý5'¼Ñ‡háG‚†ßƒôS5:îS|¥ BÂitp2jH€æ#${*ùÀo Z†¤'@«IjJÝx|ç™ÔË‘q=²I„É‚ +¾êIuÒ²x‚€Vºx /g2ž°¦ë½ù¡M-/Vœ”æ©Äò´1… +{$Ñï³¶veð®¬âë$ߤ,> ‘ª[<£¤å“\бŠK·;˜ª?¶™é¤v8åøáÂVR'ýu¢,l®Ç plâd‰Ž…š€ð´ê&Ì&ìºäPÓAˆ`Õ«{s/ÉžO1…»ò¾=×€€â\ 2!ß¾Õ)µrï«–.·Ã΀jRèYBr)XhÌH‚Îë¿àœi‹ÈÕ¶¹õÚNñ(}–;ƒBN5Ø9u^ð0+†£ûâTÜqÊMñ×5S…‡å9‚Ô)è°‘Öb%HA-1DRfo5U¤‡8i¢ V™ð[ãêê¬Ý˜îÊnÅɺ`„É>ÍFáL‡}AXÉ–g#cÛeÜ.G$Í¡• +`D»ˆìE» 2£Ûóza¯½½ûDinî\‡†ð_5©dx²—ú½ÖNL22 uÔ¹ŽÁÕ´¾êõ#Kݜʗ0f)yPm’­Ž’— €#K ÒƒîJ ;Pø–|?(¦3¨ÍcËË¡8JL„§°jó%ˑ㸣´¦d0fUÄjì­î3˜9ˆDð÷ñh +Q.o8èk‚a‡àFG‰†3ÑbPJvŸ2ºŠ8솾Þ(L¼EÊ#U|†‚åôê–«0׺#²¬õûz:4ô.èp_ûŽQUe×Ý«ÒÅ≷ÆñvV%À +–¡ ­è¥á€=X9AÆÊ{ÁŠth¿*øHF,U”Ž¥e–Áëx ÓW*Šk"˜Té Ìk ØN#Çš0ʾÏ$4a:(‹Lþ Ô*Ä ´¥†Ü¼Gô˜'e5¯-ÌGÎÓhnt½5ÝyåÜü6tMOˬ_o^g¢u0ÙÞqÎF1'*YÍ258fÀÁ#l–þbí88s°-èahwÀš?ï¡pòŠ6Q-“)/°¯eA4è½ásRÚ»=¬à­fåÌMS¥¨4 ÀŸØXiH+¾¿,o«(G ì5J·R˜|Éãb_#Q¼0î Kthþ3™¤Ö¾úk=¢_À În$fBu»Ôó@¿G0_›õ ®HµåÅBž‰PD-`ŽKlÙLcK„׳¥[áÀ-:ïßµ5W Â÷¬qS ÝÓ€öj@Ùé8Ëëð&•XÝ)1"ZËL¤ÓGöghPÒfŸyd=¹¶Ï´¯@Mûô†4ýgÒBÚÃT/½¶®' ;ÀÒÒĸÎVäàZ¥ñÑY’U^"qg,>NÜK¦H‡!ïD ©öjkeÐͦ‰3$ñåmœíÈõprãžÙOW¶ŒæYœkVàâ¤)a‡Ú|  Áš€ÞvxncŸøò³h“‚pÜăs„¢‰ ¸õ"cš\èÉQÀ9•ÃÔ”e ž4—F•Æ”‹TÕ$µ’¹'|š^Œez!\ð·R‡ù.Š*ì•þëÎoÑ·C³SFê_VKß:Á!{l×}µàý¹Wùî£  +¡ƒþÂ#óÈÒ^¶Ž*úOÀÂû‘z,û‘Ç+<>æ/ë'EÏ”‘Ž« +ù£)–¸6 D%ú›ºOÄÛ\èLje›u¬ÿ ¢8·-jóÅoz²ÒMüc §²ÑY]gÿ‘ÔÈKŠ=•‘‹Ô36Ê .Òk ›Ìˆ6%d.6;¸ÂY† +¦sëYÁäĪv-ìkç¸Ë ,X͘ˆœ–´‡øb Nÿnoâä¿Tt])†Ô +.ñ¦¦tf¤þB±›Ð]Òyå6:L¯Aúˆ“¡¢ïÒGwr)á2ÓÌÍ"õG5F‹'ÒŽ©tb·]Ýê{Å”¯Í&ÓR4‡[f÷i¶áä•Þ€KÓë@‘7”ÀªÐ AtŒ™4öMþ×@(¿%Òå?þª7â_x ?c:˜¾1”ÖQo%‘aqë/Õk½Gäxƒ¸ëÞíu›VýÚKâ†3ØÙÑ× ßÃ¥‘Ï/7¤u‡÷$ÛÊõZù€©ÖEWŽ÷Ký†?±û~Y-CÂØâ *Bl߇(ä"5jPp‡;‹Æ8zÐ4°PE¶ÿyèD~cîo~ãU²ó\$­Ìe:!ÇjŠ „)¿ÞI¤\^r8A´«1î'ùÙ·ÏH€‹®â4.ˆ´&b“+bR앉›+¬Q¡`3|d³ÇÍ +3½g™©Ë2ѪVAYbÉ£{a·'s!fOËc”Ã<ÜuÅ3ë(b¦õ @÷U†øIJ–e?û²¼Š*çÓªf°· SÛ<Æ%ÝŽ1¼ósµ¨ïËІüî”/ñé;†€4œBX¸öÑ€ò9éh¥}ÕÒç4]ïåÏ©èŽáûúÑÕÀijjëwثԎN{Íl‡×v9²™9¨@= ®>%1 C³Ÿ/™›"‘ØDNñ”Á'¼}¾†BÙÊ‹om%«G/S Êà‚¶ˆdùýJŒDƒÖeIÍç¹®C+Fª1&´žï WZ§Z‡} +7#¿äbijþŽ€‘-seŠI”¼ sp¡6fÆäIv•¥ÅSÐ@„NÚ?lx¡Íh$m9]1-—p½Ç¦ò¬~¾o%òO¦÷nZ%ª‰k/ß=Ú£‚×IˆìÄðĺ-»‹ÝèGÒ6Ì(R¹ÁÏÁVûüøÁrþk#¹h2s™,èžÖœTn{ü„oK.º \ãJÀë’^ulÍÈ­Ãcô ‚ª“Àykø£Qñµñ0ÃÀÅ`§Ã¦VJQΉ†Åôy)l%اn*K¯1l¸€ãW# +§‚N•ƒ ÛÝØªo;™ +þÝ/5i*8ݳq:g7±Ð6f& À!?@ÑéÞ®­Ä›ÏÀ¬ñZ¤mT +àGŒº)'Á'G€@G€N4“OmÜž19-Õ]‹Ä¼@]’ѧ ·ÎJç(à]£Ák> Ù¯‡·÷|fíþ}²0 0d&ç”6¾$"’OéY·Èk°nª:½LÛ\TÒ ›nz±õ8–W¡È,œSeÀÛ[ûçà?oü…Êa×Yh5UHÖ¨hWdýW|­8z +xk*E3–D QbDü,'ǤS«5£z²sÄvn¶~ˆ…3ª$¸öÎäJÑÕ’hÁõj¨hû¢ÄmàÅá¬,®‚1[î7?‡k‘\»5’´·¹dΑ>‰U0Zhb*·î?XƒBêßH¥ õ¬,wÿÉ]4¤¡eüœÒ•OªcÎmOÆ‚v‹ +‚ò÷²â1»·¢àÕ KN[ѹaþ€9T‰‰Šªâ½×T£ŸüÝ|êN±>HŽ8^ LiƒÀ±õ-.šÅ<†^ 'Ô*…Ž{9÷î™zÂ¥§å¹Hä’™XŸ5GÃk=¶îùz9€×Îm]³fÃ&uBgÒnîXzŒŒ3Á,«¡–«n²Y9=Á±9.͵Ä;Î#yRDÚ¹!Cy„µ_ß5‰uçÚ6 U.¶¢ x×£Åb–:Öy?óÁ×^p¨ëÌÃ÷­?MÓ7ûl…ÆÁ.17<“¯Ÿgo«5¬VªàÁ¯ß6úQñ© 5 81uõùÚ`§STX/äKIç­—ö|¤~±Ò€‚ÃïöQžÁù€ kžy ^âäùˆýÜW»Ý54Øb¡tiÈ>ì¤EêªrΨ×Fåòëp°bÚ¢ÜI?¼»5CÐy&\Ý¢-ì‚6†/ú‹ ÙZ쇋¨®{ë%RšÀ긓©$÷ï˜Ã»æÂ1…ðóƒÂH’åhO=Ó\4sÜ-¶LòuEãœ{z˜kÖ)»Ö};K1º]»æ»ªí™ÕÇ?àÄ@Ç`‡hE;Wô}¥Ô/zÜ,¤GÝ­íDM#Ç/*‘ŽÏ*5x†+Z¦è“sòkn¬\ÜŸïX³Í4¨ÖÝÎî°˜7QOlÍ,õ…ê +6ÃC¸…]&‰Øé7\›NÙãH±"Â>$ú-7ÀîeÿwX”Œi|+Û€î {°æ<nö +!w÷Úå¶m—â~®Ù¾oê¶U®8Ê­h©BiÐ9QÙ¡G ü°;¶— ½dÞ÷mÆl/V;zi…èþ>ʺÿB¸ž¨—3©Ì\·,;=$䇀â1æ§kiÛNç¬~%á­7.Äî%p'¸¨ˆPñ”^${&¦§ ½=~£2/ªì€a;&{­Õ…‰"àu ˆ­ò®ÍµeNáŽk­="±^ùö G)SaÄk§=Öš\eYXF#;¹ßÛ \áB—þ5²"ù9ZÖÆ 1‹ê’ûgŒø4P.=”Ñ­»D Îç Ñ +¼1˜9¼T”#ƒðôPfÙ•’˜£óõ:ÌzÕ}=ÎZhPBa´ÇZèéÁԚŋ“Õ¼¦¿ È/ )‚Î}žt5S]úΚ®íp»­¤@ô†Ïšp†Ey½ÊåùÖ£>ñÈõø<”ܤ½tWØv÷2Ð5ÍÔ¹çÀ¤®ÑÌ*k=Ⱦ[äãRú&Ñ#~½¾AÉýªÊÿ'‚¡ñ+ +(0_·Àü|L{Jl9°Á„˜„E p$–jfº«Êa•X&&™wô×ç^âW ›×—êLR»SÌbê%ñÓUÊp;v±{ÜYÇ£èñµQ“d!ÇâæB$S!ÍÀaˆÏáíC9w2~½Ü§{—” v‡ù+ þTÒÚt¦½ú•^Š“0ùÆàeZÈTÀ¸ Œ¥ü|íÐIàR´ÇÀì½Ï±EôÕ¹ãá[\ºÉö1fRêƒg¨Ð„…Ä]õxëñ š©¨üº}ó»^ÔçDÍ7b?}cîl½pc×BîdšãÜ •¦ÂÔHjj~À–¢Z»±zö‡$¸€LäPÌ^ñÞæ®ô@ ÷mõ`óœÂåfÑÏà§>cžÉ9l­ OBÐ’¥80fÁ³j{Øeõ…˜ ââÄ"‚:Gض€ ÚõÞ#'˜±ÙhÈâ\»>¯Ýkäé +ÀH@¹¦Hê'Vi@lÛw=Ο¶±þÏ™ÞzÁåéÖVL8ÜAC l¶RÓxƒŠÌÄ“d†U}ËßÅl¯Ýï=<ˆvxb`¨úøî8¸¸ë\Dv à,q ©+ôµ‡Õ;m#°ˆÝcú­A-CM˜³Å“JóFUaXÉëNÚÀf#*eþ£ÃÍÙ{ç5­ÞrÞ÷ýÍqP"‘í‚=IÉr € àØúmö +"¬=D® ɳ×pVQgD+ˆÅ$ë£<¤¶ˆ†ª™¨l1) J|\L®¥ìÌ›ÐñûЄu÷8Ç+.ÄÒÐ[/éÀ‰¹OCyKå@Ö–pgû®G¨í$Mþ;o´„â̈tžà`¢>ñA̧7xÍ•ü_WwG™5)—ö’Û:3­Ó¨ +‘H¹Öó‘€’}ÚÃm>€>ðö`©¡Ç#+$Y¿Þ×ëÝ \á]÷&ïv$Oö™š®_^s&³¶È2AµÏ3©û™\»‡"ª¹€‡¸ye£¿‚í_(ž~gÎ;ɼêêYù“qQvuVÓÊÌzðõÞ{llÒs*õÿ²÷OÜK‰°3ahUkfÈÆ¡Æó:=Âê÷÷šôŽ^îcGÈèܦ5Æ.iͱ +^0ÿɬ¬«t?òŒ¼CR$niæN©"*67¡lÍaêé\{:YãM\9Kgƒè8Ômô½ßjn ‹ñê“Iï~yj[ª¸Ï¡Óóûaîë!Ïé>³M5}„,áÆ[oÈ·^k1QeÉi\ê}¾˜_¢»×¤- *ÐiÖ ”Z6ËoŠa/?¸}ö¸}ž¤¶ÅäÄ·‘Õ +[.ÔO*vær“p· ±rB¬²0ŽSö„"ORÐǵï5’ÔËܾ¢L"ÀºV‚ÌÀ€ÉøÆxëñï;GäÔýöu-š0e>;Pݹu?Y'@ºÀ²á1‡á¥Ä¿5¿Hü+¢å‘èÊNuîNiÁG­“â³'ÒŸÂ+¥ãY„ …²Ö'M|~Æßú‚´æU²‚uS’0Á8Ú#Y:¶bóš ï%ùuƒÐìšÈx¼âèð>y¬9¥Žšã×Êaþô`ÿøÌyù@±eDG_ÉA%Ù1ßõPÜcP‚%Ãq­½¯¨à‘Û—Ö…˜ý|Ù×XW+|n’`¨T ¦$m€«3dŠ&uôÞ´¶‚ÈBb»º Ï,Ö|eõšY«î”I†6Ú—öÕZ•ºH|Ï2°þ¦l1™“ÌN/ê d{­@õ6±~N”T›„`LZƒ)ÃŽg8Ü©gÿ †Ì† nH%FëŠÃT¾ +¶«M'w¡•¬2kúdâÂ@X´]°s%å¾2"·I#ðp4\ ðs>4ƒÛElè@BÐm¾ö‡ÿ׎hårê D„$l "—QÿÈŽŒ‰Ânh}\á“YѤ}=&}PuðÕÔš¡¥1ómFœ§¬I‘ʵ­@ly"ôùqÿ óö-9_¸ÀHÇbÚ3tÆ@i$&‡IyƒwÆ*†Âçó¹GV&Y¿ Ù¼ÏwÎa¬êïµIŒ€f0ðhùµ‡/úû×FijÄGÂ1âJð3ÖDÎÞ7eæïÇ¢€÷Ø<ãuÃ?;ó¤¦z=BBž¿KÕ×Ӝϕ†¡?Cbê\ÈÚñà ÀQd|ŽnŠŸDuºOQdÝ©>dê~Gp›ÙšC<8>ÚX…ùˆ<£mO!–8âÞ`7X h (CI›çBœ+ïËŠÇÖÕOËÕ¥¥r_IP¾RœBµ[«‚Œà¾6äÞ|$Þ¾ŽYŽ–îh18ÚŽdäÖŒYò½‡7ÿu‚/Ð)yÏrY' [NšT­bù„qìç׳«f§#¶M5>Âoˆå€ß`•»îY°/%©rî3 +‰äçUH<ë£rnðΊ!ºÚ,¢ÊÉföûÿgíìV¥É±ô|¾‡ïp샲þ¥8´ cÆØøÄž£¢énÀ{ª·|÷Öó,)÷W;wO1P4U];¥ŒˆŒPHKk½?:ôQ_`UÁ³:•ç‹ôêçgž8½0mœªruM½Q´Ñ:"=IGà<#`Î{§,¤º,A +ñ¦3U¢¯-à½Ìì—P‡P­û&ÍÝš®~jèÝj+ðÖj_”æílЫŽe÷ÌÐå( ÍPJ#T —ú—V™ +TIÀÌK®m•8|œƒ4#ð¦o ¨ƒ]•‚Ïm ÿÙÓI‡0nf E±þ¬zllÑ'ÐïöjˆirDÒ0Uõã[¤=É!»@¦¬äBâóçO¬p·vü‹Æ«ÖXõófI†¶@üŽ@³ƒGQÆà¡Þöjx½váa» oÃýÖž¡ò ê +š]ŒTËÒÔäõ–Ü`© ¾1ý,ûªy{ž¢_ +˜¢Ár›Õòöò²æë(¦Êó)U°•%SZÀœÜ UgÐAƒ*µYL¢H=6gD<çp(ÇW +bš† GÕäq€ü ùíó¿%Õ#¨±ñ¨¦æ£bFìû±€Ü—æ®ä¹K 4’õjˆGxàKyo[á:¾¾aG˹=„™“H¥ºR¨ÝÛ‘‰1eoDT )ø uæüy’vûÕ%‘ßÚÊ÷'ö—¤å²[ó„zýÈ@ùÓlám.PâQÞ +§ž Mâù mÇ=æÅ€ôya¨çúñ­yðdæK qKûôy;Ü£8ا¶’ò΂L·/p =‡Ñ ¶l_ZG&Rù÷ˆ »Q• – Iƒ¶À‰ÍZíÊ’Ä´aJšnÇ俘 4;Ñ{x– +ù3ÐûûxåfÊ^.]ÆR!9¤¾©Žò϶JütUæÞ>Ç€éå]ñ©m…j½xRô¯)^·'Dõœ†•ɻކø}ˆ§”©úã[õðLØHî»ë—ì3i-p}v<°†š¬Þ`GK˜Ó"¼±‘´Ùßs=N=†n2±u'/ðé½aÿâ:î†íSc†K+bf{oyè!E†k£³¶øÄ=k/0áé)ÎÌžò’™hKNÁ‚* @)ö§ºôïT?7¶vdeŸæåØò€ýͦ˜Æ ¢:QT ׫z6^EŸ²  gÈj8œL•¶)ÜfmF„³›‡-«@ôž Ô<­ýU±uQÞq914¤DMIÕ fÏUÁÖí«’¯Èßÿ›½”³[ÑþÛ_šA„ Š«TI§ÄÆ'–þÝ#"¡Ð›_ kuØNVg}|‹Õþ%O"6{^«âCµiJ¦¼:…§‘éŸ9gHjÚ1WábßP5-ã:y‰FÆ í0¢¨É:0aGÍï q=쇢VáÉ^övó÷ý9{ð°(5tÁ4=_Ǿü–Hiƒ•:ø¯‘ñdïõ§ø¬bcv?ƒÎKAL`Èh·f6Nà ’@žD­ŠïO(ê㪄vqËO§%4fòDtæÑxE®o™̽ž÷ãY?2¦¢ýˆ2É~‰hhO4(ŸJ…ì–ßh'{GÎ }ºÂ  ~>RCüýÑ?(ú6¸%»¡’Âsƒ:ãèJïÑ0Fzïp èHÊ Ø ˜,,ÀLŸ¨÷MÓÝ;“br¾ÕÈ +·e„wvç«Î‹|û&žÑR;’HůR±ŸŦ,̇Ê{©uìKˆõÅëžä"i½ùÒjã+Ù0ÒæÚ k¼û¹9âýù˜¡—=5µðÞýùóÂÈSì›q°04yHÄ·úA{X~d´ <¾ÏÒJ\ÙÙ émÛC3ÀMܾy¢÷ä‘ÓƵòŠåþ3cŒÐó*ð +yp97ȾõïZ»·ã£m³t–Mö~PHÿ0Öh§7M.ÀÂõþÞ‚ºn%oßbaiáxŸ£âº2 D–fmh/¾¬yØZ•£ )0=6xx¨÷Prˆ×*#«€<3¥ý£X˜ÄYr±:?È’‰£øxK°3ä÷¦~9„Ëèýþ¤‘«?ì€k›0ÉñÅ5§Ð^šI÷‡ÏW„ì4ÚÝ6Vz”:õJÏE¶¡‘‚»ûEÏ8l $ן|…¥þÞ˜û…1ç’2ÌG_ Š˜,ù>&¢£À:´ÃþV$Ç<è|>T¾á…Å˰­3#‰k…?ÊQöÉ—³¾´àþ¦E$ýœ@ŸHLPÏ¥¢Zî¬óaÖ‰c,k=AÁs0Ð02¹K.ƒŸ—Ûk‚ºéÓ@ñy7EÊ™yÂ|D%e¾ó)³¯zBdV +Üf(V²û)ähôÌhcW…ŒV~ÿœ£‰5)_4b–Ôg¨Ýöæz”^ëÏaÿðÈcÖ¨‡‘ÙŠ5 zÁçuîÆAdE‹†´|>º¿ºVŒ`ý;šžõ,+Clù±†i]ÁædÇ1QW”ÍR9Z¢ˆS•¿³‹š¾l&òú¨“SªçåŠÕÍ‘¸í›œ ˜G‚25 iŸÐBbhœ SˆK¦ˆ%c>!|ÛÛqw†á†3Ãä@È>`£™6JŠŽ¥=ÑA¿ô. +¼œÁã&¢©:EÄ€>~¨é9ÊÁ +4Evȉ¢}àEF{ЂúsÔi.s}GeZ`n +Qû©Õ: ’:xå…]R°ÂU]­ìà„µY¼òºùL;ßšˆ4»%Ê=õ ¶C³"žÏÐá á’zh§¤@ü†z_§½A§‚¨·H4©5{/§ƒ< + M$Oé=PwºxщŒ¶l¿eÏŠK=¨»½‘>TcpïÈŒrªËbç€F·0gÇ…Úð~ 1·ó_z ~¼¯ V¼Æ¿R¸âÑ3Þ¤f“0½}=ÕåÍB€ßr87ܽᨆ (Xp8(¡4Œv–&I¶êC@ê¦ 6±®!ä_)Ñy)ë.>ƒûä7^~LTY1Û=ûñ*ȱ¦ü¿´Š5 Q' +X~QZubûjp¡æ§(S|–\DkJ·*TdÉÄ Ç䆇ªô©‘ÊÓSÉ!ïLö> +­!^q€@hÉMïÏœ³f°ýW²OÊ Ñ¡â™y@Jèô4BT€D7°Å¡ï#²@Ÿj4æWójØ@ñäÐÉ,é¼£¸ýýñ¿r2ůÏD–)ç>vgM¨~2ÝmÜ¿½4ÜXæ|}†Cùñvy}ü½—ÐÕ¾±Éž~cªl?×Ô0šJ÷w!Ê_6>kÞ$„á¢JŽ|‡+5F>黡6°Ÿ™Í€% £÷ܱø³*¼Ñ?а¾Ìû¾r)€‘qøS[?EIàõwæµß9Ÿa¶«Ö>Çý†rIä)§Þp;Öà/µõúìá¡PwΡ¡xÿ6ƒzx÷3IÈ7B/@§HvS²>5&~`~òÅVe˜qóPclÝ[ò‘Åñà0ɇÁÉÁ‘7¢–Dù:+mDîžQml¦Ð w¥ý»ÏïÈ%ª}õep4mlý·àµ÷O‰ñÊswÛŸUÇ•1γ•¸ûmï<ð˜R+ÚJÍçÕ?GwÎ%×y¿¥‘¢ƒ‚M¬¹0ô®Šz\ºë1(•â ËípÓ0ØNâ˜Cƒ‰¬ zÔMŸ«ÂšauïjçP\"׫N{¨…—ßn fL¥*Üúù1mxÄ/|ç™(.ÃñxâµC‰[ƒ´úÙÚ×F†Ÿ¸­ ¨@9Þ¿cjüܪ,{ÜÎ=†Œiˆ¤Lp­|k Ù÷¢/|ndZ=!ÐÎ>’m•Ñ#x·Õq„˜Æ‹¤È»ãªM®ç X ƒÙ†!ΰaJ}ØÓé#)Ú®2MÏGp’b>¢QNŠ­GCäb7$tñ=ýÜ1~Xe»)66q8ä¥yÖ=,v +„t‰¿m\ok€ß ê×W 9\è~‚Î_46½"€È{KÐÐÉz•£µ°•R²VÿhxÑxL±þÕªóA1 æ¼'—·K˜ø,øAìŸcÉT[Û¯JÆú +h웘—¢g^n¸€¬³©ÎT¿¸ä¹ÙQ¯ïvÛ¦L` 2A\öõ-Üv YÀ +ªè¡ÚõÖð‹)ös#\5eBYx;µÜVôKÆAjJÅP_ž$ yCôëÝOQ'‰Ü œÛòO³XrÓ; @Ì`rY0ÍÑV'ÑO ÖК؞‘Šé&šI•PóUtŸÌ±•iÉÊ÷ss׸ 0óà…p¶þ~'øTõt¯àCIJãcº¨Ïw¼‹øh¤øh0t£:άãßíü} +c7×^[ÔBÏ"<± ÷ïˆÏ½–? +Ÿ ñ;oð™àiÌkÝŒw­\÷Ÿ•T(±Íгå>bíºA„ây6ÃtÚCp|—Y9ùÌ4¢q¸`€šy”È›Mq7 äöAŒÀjÃyÿ-8†ïêÆábœ" zΚ½¢áùè-;(÷ÀLCSM—½½4sÍõ8›áÆ€o,JÇ{%!zÂÏ!}ÿ~r ŽÌNœÏÀm&¼&&vR{†Z”Œ¡„ð¹!Ào‘»EqX5Ì¥ÀÎI(ÀˆÌ¨ +61,Œ9 cR]þý.‡e<®àQÂÝo +8ëqØkÓ IÉRÃsJÈ{9Ú'tÚó[¹fVÎ4£ h´Ô©¿âHz~‚á ¬OX2îH؃m =(¯Æ‰Ëzk¤ƒü§W'M +CW'/'‡ÃÃuÞËq8'o:bHFC`*P8HjÁÁû5f:´Îî„›Z=Á7pß@ ä?Õ·™íÑ ‘µ½Àšš0=íð@ÍÃD~ž˜!«ïª;×$X:½ª‡ÑK™nîwWÂn6·Ó´Îì‘ØÏ¢ì¯Ð;—B…‡kÃk¯ª£×ž +7'† –½” D41_óòšµ ˆžÉö’ý²ö>Òzr +ZÏøxØ.ÍäJJ0ij )0øûã +(EÔ†p r·G¹Ê«·ÃêçXu< $$ß"… l7)ER5¹ê«Á‹¢N»§là•Iãõ­*ø¢ör¯{ôo ¡‹–1- ½Žäs/ôÒš +@窦ÓÔ²þø„M¸œ¼€W™¨÷žŠ|ü{x\,I¼NäÌËøâ8>v^4Ä‘Kk&6ù ÞzÈh¨Ç–é(.|Ñ+‡ÿô~ö°>JN.Éý$A±äò™ª}s1ÐI}8Ší–«Šf I_¤*ò"µb¤c²$Ó#Ê^¨‚䘼,©¢*S ªQ"çá#Ë5ΙJíX(}Éep÷’"ëõÀù¢dß(Z!Ñ·Rlï#ʘ™[t: ƒ(’.çê ß¹ó—BÆB¤™BŽŸ§Æš[Mïî9±8HMlNãŽòjˆ'ðii} S,ÑîEõ-Îãxkˆ'ÛΓ}½‘Ÿ{_ÃÞšÜ]¹¬—õ®š#&Žå:¢—ÇáÇò¹ÃïOÉÖŒ!~)ÎÑo‡¡´ÇJHiO‘@ ð2ª”ëp¬ ç·7ìï­ +(µEeM %n„œ•¼Ù-Ô©ICb©÷·ÏCR¦I™³Áz넲l?µ¾EE"ë”Ï1b4Ý«ÏÔ1†˜…<3qµ †uë`Þ‘•ü½z˜Ü€äU0Ëêµ³2ì]óz@U8N?ÞŠdŒµfìfÓû‘[Aÿ)}œ)Ö<ò•€ €BNÅ'(ÊGpô!UˆPÖÑŽ;$oHJjÓÛãH;“§:ãøƒtß)«\€›~²è'Ýo¦lŒ°$`/š‚¢Uû¢Ç`Ç!¥äëªøÞk§cDµ +Ò_-%â¿iõÈ@ ÉÊ¿¼7üþ„>eêŒhèóÞkï\bÎzªÈ‘ÊÞ÷}4¤‹z}¤òC9ÊK/Â7 ílC½£;îw4ĸŸˆÐÏ=^3Bé ·­qxb+ò®šGwŒRÚYÙ#{¼Îýkqÿ®Úìvªóô +'Ú=‹å8X+í»Gø”b…áB51ŠsdÑ9FbÒÆ~ŒÍî‘ê½Ý®IcÅšÄXŸ=DîöÈó\ð`§83ê=%G „PGí"l1Õ +$bd–ö‘=Äæ†Ä‰ äéÏ`)C°ÍhC Šï#ÐIz±ö ®íùªÇ‘Ò!ßÉÿs/jˆ1JÍE7É'2Ž×ºjIë¨% žÏ\oŸ;¤¿Èó­ á–lpQhÏ‘:7óF_ØPг™CYÄb?N<#L؇Ä!YÕH¯tÁ• `À%óØlkä̳Gî9ÿ‘ÊX@M%bþŽe&o(û0òk´÷÷W)ªÈo:ÅÔh¡!ÞòÃGÃs@;jgú~5‚çSqïÊT^{pð’Üx·€ÓI ª[Ò)ÃÂ7>9ð“ǧ8‘8ÔP]ÇÍ~å&q¿ËþDw’ÂE»‚–?Y6}(ÜEñ¦)ëÃy܆솩ÜÓ-eq‰ì5 ¤êëìÌ7.˜á ˆh;"B‚"F>Bº ++îE³3~4TýÕ¼á|–d  Í ™KÔŠ‘¹DÕIÓ/>v—KnèäçÆ©±´gÃ&ǪÊv{æ³-ýlÿì°ÊQ6kü»8Õ^§câ|š¢€h~h¹bÙ <ªÈ¢õ»Ü¡˜7¤bäWÀÆUƒ¥/z°[ÿÛö¦F¢Ë+Üìmóì_ë•°Ôš#þï:»¿§­¨Ö’7N¦õÈ@ìn¢Œ/z|^E"õõ¹ªòJ¯XšqI=&Z[ðí-eñÆEX™Ñ:;Z®ek¬-º¯«ª\y?÷³ »phCÕØ P^¤kg åUB“¦ÇÎFË:ø½¿j†2¬?€1P-P„‚¹@y‘IZôŠ(³Ö½Ö±ö$ÁÚŠ,û· ¡ƒâ̱’Ôí +fïUd­Ãz9 ˆÀ7î£aŸ V*Ho½uˆ¼jŠmòžg²µÔÏGÑï‰'‘ŒŒ-ÃZ¨tºÞ{PÃìã +Ý|jœÁ¬Vã‰PM&ÞêèC 5Wä'ÙßJFq¨æü–ÏCÝIòCí˜E!ÖØØcb«Œ·è¯.ÒAŽÇ;Ó!CløžÏCU‘aIÌÐUÕ7A¯| œíTo´êÆãJÎ?¸R¶È«V‘âˆ$Ô“%ÿƒ¬–÷z•È}{…O.pÊm¾@õT6) +é#7»‡•8ÄL{Žr‹ uk(Ø•å’!X ÓÉr`DSÔí@ +òUì3Û°{•€Ϙp» ß¯ƒôdÝ +‘8×vÔø—çiá&ÌÍê9Úu~œ§>!e¿Ç}茤-“EŠëµ@!qµΙõ²û¹`*ÆïÛ¹÷퀀yu‹:4 oO÷Üað‚·aÔíö¼ÖŽp¯ŠhG*Ÿ˜“-»à±Pü¤±ržj9»a”,t»Æ@b.A&”DÔö ”+ioVû½„ +ÐÖÁÝCRê§§A…:ŽF­Š€p…”Ç]cÙÿõƳÅÉ&û¬†Bú˜µ‘þ X£ ͈¸öËöão8–A<5öšÏÞ’*—DFãOÑ8¦©Vm\°¤ä')ßÂÕÀ ÚŒJS‚]õPä,Öe0DF#K*"£Õô[’“QaIØ—uá]Ïz…|¾±ÃÁ›‹) +P„¦¸F`Â^ £‚L¹b!ý‘Žè¥Þ0xKt` +žVð†wpþÛd—=cÙÚ^ø)EüU &nÔi$ýCFeBg9ÃÅvü¸˜–y÷œáü\‹ ÜûÒx1j2bÆ4V„¹xéÁæå]ýÎæœL00ä†$'BO¯5Ž?ŽBˆ 2Å{—: +(lÈs’ow‚û "±ä¶üÁF5„9÷Ú¶n>þ)'Ÿ…Å<©K<ji"áwr†Ï0n{(H¡R³æ¹ÁJ7Ÿ*G±7âPr)iÀ0#±°o +9²ë;¸A!óèP…}ç™@?·¶€z { +db?ýØ§è ±ßÐþZ&)”‚ßš|ºL>{Êd­k”_CRÌœÙD>°ŸˆCuÜBzà•£lOßµz-+Œî;XyËš2îŸ@ §øT€^(i †dyKÎSí¦yvlÜ=¢á)pHÍ8³uKN×û%º+ +p‚EÚ‘S—U<ã›vÒO´·ó‹<^ð1çWP›_ +gDY¾4\;+›jTXïye§;ú ¯R½C³¦dIJª©kË*^X&¯×ýª*î½!Ãs«Hd’eÄaÑv"´=#·dЬ—îTö³Ð‘=½ù`vípŠÔdûî°’H¼+‹fs‰A+órb¦¡—I +-r‘D])¨àK^f`A¼d#¨Páþ% >á5œRð~‡ÊŠ3jÐ|‡È`!uú% ï·QÄzˆä½žj žÔûÔÏ8)â~üÝ­*n¹ãGbç%Q±ùƒ¯dþI -À¤©w]&Áe](¾ŸÞÞý&)Ë/Êç‰}õøY|bûU.ÒÁº%â —ñŠ‘æ•,y=!l¬›±‘÷¿£ÉÚ²-Ë«*„í‚-ÁÉ(r_ù{UÅñª"—تÉÅܧò‘­ƒÅã º3è›Ãm„¡ëT Ý÷åzû[¨ÔáàØ—“e-‡W‡~i=ÊWP}m“ÅÒîÚá`¾d4ù¬e½«ÍÂÃzÔx¼u5êË­}H1a ažµ½ŽkµŽc jE‘ŽY;ìæŽ4Êû¿IDÂ~‚†D†·>"!Ù2 z§£ÄÉÐBÝŸÊùÆ© Íô=šOó’-÷~ìì. ~•¿²ÿÜoÄãߤ¬ø›ìy+¡æu¾2çR¥‘”–~ÕÔתÖÖ5±[°¡0}Ÿzb©™TU I*`¿I»Ø^hr– á0ÔvI˜ìW&˜øWaƒõ!vBbŸHéïzS ýËöppu8{û>Í”+t zaÉîÛ+=Ë£ƃé5µ2‡5ß½”È (Ð;B ²þ ø‹Ä^%ˆ-Å€ çN4¿Ÿ½áÌ’iµ¾p®ÞE…Ú/ê³GÉ[Œj%æšÅ)’ã N…óàeUS8£@‚Ö74\æ_¼cK²Tþ­$‚á¶¥ òøÕ¦$Aê`Yn¸¼1k=ãC€NñÊV ȉ¡únY~ÿ,@LÓ˜¯^Æ%¥f"yó{?±ÐpKZƒ"·XMŽñçì3€È²Y¾Ÿ±6cÉ;BõXÿ÷Mùúh:B€Yãmö;K"SC„x¥uêà#~Ô`~3s/·Ä|£M™ìŽËu8ºüBÈVÜD—¸ÿ#Î:€|¾2Ï[ì 1GŸðm •×'îפå¢*G¥ÐßÃVĨk?"> +mû¥ˆL‹,̈ZÒÑ®@,½ Vê©ø8F)•½$ðúpñ%è “Ü}éIÞtÀ>ºhÝk1™/9}í¢=䉒Ã'7‹÷èS-‰w{BTˆpóPvÚ¥]÷cïxW…!Ѷô’»Ôç~ mø X¬h¿$P³ôhIc]y*‰ÏâùÎwÒ +f³ƒ‘Šúœž¯8/¬ó•»½o%Dƒ¸÷ª\ÃnÂaÚ ½”YvEØ5ç:e39ÊÆ.}º9Óñef&W‹tªýÌø R{LÛ&XQDgUªûXLý·þËgò›‚_®\`Np +©®Øñ÷KÖ["?’r‹þDSqS­—oê^©…ð§u +ö½š8iÒ)FHáûÍ´%ƒ-r"a©Ë32»þà@Ø.éCHšÔk‹–ù]‹!¯Ö/q°Ò¬Q¼Hx[1Àº,ßà (X5…]¨{Ýb§JEÂÄõ¦´ÚŸ­È>Œ¾9áa—KxØ\!dï«Ñ{q‰´Žp"سÐ==ò5›ã]Ñ´>#?0zÃÌ!.6¹F¤À*JûÁ>)Ä^]Xa&ÑÔ-‹ a‘„¤Mó€`¯Z3EÆÛóí§Á:¹{g,‘ªbçPÔ*hôuCáqôºò‘N¹ÍÌhJ‡.ÒÀH‹‡¸ æfÇñãpJJ #÷˜ƒAFla`g9a NÍ)€’!‘T1ÉŽÀ4~êÞ¾>GI,°:eOuëðg¾ì¥iU‰mK¾:43øù\âe4ío.uìì¡…,Iíãø$v¯qàKS²·½Ï9þ#äÔãŒ(÷ÐC‚âÀãÇ +±tè!hâžhÀØ52;`7–Ç!ß%ñT쥩XÔVxnÒ,úzzò“°‰cX¹Ú±ÆÞÒŽs&ÖmlJ$u94˜m&ݤƕh'‘Î-¸×,þi‰iQfÈ-]Ãÿ[Ãù| çOñÓ^¬CôZ=j98fÈŠYGÿ’üþ)ÀÑ+2×À&Τ»5 '~€‘BZußg?V=Öç羈›^/š7é +Gû€èÙ‚@‚1‰;yp¹Ð„åÉWÄÃD%@¸ú +6q‡ºSDËõ2ÕÏW~  —T—ü±JI³\QöÈ'T ¤D‡H-cª þ}©¿dCW^)÷ø„ª6‚EëV×HFNTÈmÇJd=| + 0Z5ŽPï -’ç=¿W7qؽf³4СÁ—"&Þ™HHÃl©×â=Úãuçãp‘;à]d‘ØEê•Nó6À[‘¦Ó5/*Q¢¦°¤Ìñ˜¡Ì­yi‰2ãÀVüêPŠÞ”@ÆedB+Å™,uÃ8²×nŒ˜ñ¹h¢i˜KI„Rh'"éyê|=p* +?óK1 +%U8>¼MlÔMš­ãŒ;2¾Ä]‘Ð4¢i2ú’Ɉt“8Ý$¼ï#XÆëo)^‹Ëœ,ÓÓáìk¬E× )Ì¿f$vzN·D„T“áì§GÌÔ“«×¥!×ÉIé'‘÷ºœ5á$BFF- +ËkuÀMHОL§Q „Àþ×Ñ£Ù yRP˜å¸A‹Òy·½NëÈž‰YñåόßÉÁî¤v1þKó0l"ÄZA»C®hxOðI4Nñ7—’Ãà&›¿àp¨„je71Iºx|9£ÙÌÙ³y‹µ$®…¡{·1 ân·™.#íèïŒ!ó¤#ø›tDøºª5À}јž£ÀË2¬UÞ–áƒÄŒÙaŠ>.Èæ^®ÏIFf3ØÍ‘2–²ËŠBÄ!uê‘“N0Ýb~dÃlâ‘üp•izòÙ÷• 2än%ꑲ©Nѧ}“|Ñ¢8vÂèɦÕûõu¤pª)=7ªµWªiÏú‘±…7\ +#*¶ü¤sãeâ§F ÓF‘÷!=…ÎÔº.%‹·Ø=ŒEê$wù£nz9Û¥f"®>£$S:å3à#z8§éÙÕ… øj3æ´ªÆyOx@£¢z`½;6uÅ}äp,é,ºÃ¢‡Û×~Dªà‰ +„¹8 'd]UØ©ˆBr¿š1ÔÎ޾÷U!x¢÷¸VÇ­³}û(̃DbU:稹¦~ÖšïôPY÷@G@†n¯"ö܃²ˆ>Á4v>ÇÕ4|Ïž¢ëY&'ú”3#ˆa)µE”»š2Ò¨5xÎ5VÂ&÷cÚÖ,× t\EN¬S?Ò–¦üá¸Mñn¯Ê¥ÇaÜÉ‘÷W¤ºX EDЂ¶Bÿ¼ô_ ýÙþ‰¨`Jrº ìpq#ºÈÌò;0‚Ú°–´»nå‘äÓÝ–ÃIâÀ~pƒ[É3qø¥x‹:VÂÖ gÊ´ß[çŽ57¼‚£‡®ju-é;àš‚J`\zœ©P¡&™ê¥±‚¹RD'aaýxœ^„Þ!ÂTÂV5dX­«´Àp!Eè³ds¨|1ƒ¦ýIÇüu&ñT­$™š¿ƒ\¸¶»˜´2t¤r«í-ªíO¬P{©¦ò_¡MÙ:È@\Aø]—áÒ¦zÛÅìÂR&œ¢=vÈÃ’:ͨ‰¸e>BÏ‘ÉJ‹W:dú¬¨nìM„¨Ñ?€i +u/÷XÀ*{:Û²kVéôc iòÈ=ìõe]Î?#"ÌЃɡ{u`asÍgêÂÙ˜Žká*Lއs[¡~oÖ7L²¼„~œý9új{AAôR¨–•k\ÿ¦H¾¬àl›5ü”¼ENŒ6)DÝ=`Ò¡º‡>]‰8PñùŒÃÙôënÒH1¬ZÅ1 ¸rN'Þó¸º'ôûÿïw'°¾{õqÓQE#¡Þ ßÕø\Ÿa÷è@¦¸‰ÀKÔ lh²4_ó 9QÂ&Æ0`¯Ó+$¯óBh‡U«>ßÂ>ü³:â½ ’ELîà6˜K¨”ïðªÖ·W×z4×µ9&w 6 Ó£â/‰‚5ØJ÷„{b¹òÚô-Þ¡ô¼J³Åâ’K9—õ-ŸrͬQ|Ë+J‹¤ ‹ÊUþø,n+šóÚåQzäÜ¢îð¹øþ[öÿÝ_5ùWèWÜ\â_¸·ˆ¬F|du5/A¡3¨CwYÍkº{-3ªŸ{ B™¨ßLþ œZ¬„»aDf!|2n—y¬àp’…’gDÑÓÚBQƒð¤)ó8-0É„1CGº½X ­¯=0fHKÅ­½7aŒZéÚЬ‰‹«z˯&T…®ÎÓ­my*ƒoTw‡¨Ç„'eSóc/Ž!:µfŽÃØ?¡ËîçÏM„®?¼„CŸ±eÓX˜Å]ÝdvøcñW'Ú˜oKlQÀerì5EfÒ+ùÞ3PI=ºÁã$Qâà ¿°÷pàòhE¸2@~„ž-Qª iÁqÑö²„›lža™–ê„¿˜$#ÒC‡^²(,ý@6KÆ}NICõì•T)DRó)jµ±†í@ :Âù<.âïÓ‰o­ôÞïä —âIùÅaÒ |a ¾VT±¯/m0ùvyi•©ŒÙ@TI¯ÖÔøi0Dß ûSÖüî¡ÑÊn|JœJ‘¬[—¬ªÖ”á÷Ü´bŒ£\ݤ¢[á0÷zò5F<]åq°BÛηÆz¼{‹ ¨Ì¶lP+)é/Œ!q–ðÍ¢-ó}¸äá#êÓmæWCl–S¦éfúÝ·R:Ûu$-©²ç“”£¶¼¤íú„H–æT¬WéœéÕå× ¯ë¡ö¬ˆ$e8P‡T÷ŠY"¯P€S WÌq9MÿâÊû/ÿJSºCqÉÏÉî)‚½<0VP.ò$h¨ß±%ƒuÅ;¸,Õ[EFñ¦<åv:&æ¦u4=">b9½v@U¦š‚ð¨1°há[Í;qàlN!4ÈÉÃ)yy5y ÕÈÎ>‘ÈGù™…[ªÂñA­˜¦Àõ’„Å‚f ã{Xì¹mo AÊ~T”óUšUT*%ð=­ë!&·ùÃÇÀ|^d§¨•¤ÓÑÃD:…YåXy‹(® ~õuUWñÂÝìF9ÞÝŒp$•œäù—­l +ñП¨f¤«…XјšR–’a¨R#my…ÆZˆ•áßjÃKt&ÿ‰È%ëÊÍPp“ÀúÙœ…*pÛedýø[b€]ÆùÞ­Ô R%ÄÂO>ã¸0Y‘RÏ{hÝÚÝw4sŸ¨‘kD¦¤!-@ÀÔ %áG½>@ÔšËG5>-½²V„@V º„mM’Ù³9KÁ25QjzF—:ÇH +ÎG¦ú[„iZGŒl†F>go^!:h¡äCÇI“2B¹@ßQd&èýÜ#ÂÓ~*ðÝ-~|ê%ÕY*ÚZ`Aè@Ýñ8”²<u{Ž%n8µ¨@Kü¢W;äLÍáUh§‡/i»*|RHsï ì(=‚_ºöȬA½TžçóJõ“d ÿE:Jž§|IfÞ œF¼W•8 PS¤íÑ—†¨Í”8WË]Ã9_²ú+& ðNSÀ!ÊÕÈôf_*/œD¹õyQ2;$ƒÄaºG±zé úÓ­PÜ×UFÿX¨˜±þ4yGìôAS~GGî¤ëV%g“ö†[îéihèþ|O4WþÕØO!{O÷À°UI^€ØëPfÅ +;öVŠA>ã¦h÷›iâôSߟĩ,JÄÊ•züÜK:b +;Yƒÿ°ÌœÚÝ¥¹ßFÌôÁ¢$lyâä¬15VQÐ2ÑÊ +¿«æçSbvgóž …¶ÆŽY%= –C*E>é&×Ã#ÚR5¥24m0J˜±O´”ÏìRÜ‹+׉P £×G¢G/È–GîÊ’~é1Žá/»Ð†Ÿ,Ä™÷ ÒËé·q· è‡/Z¦ÐBÕì©ï¨‘§¨Ä-WÞoßò6ž¯zÔpy£æÔŸû^îÒ›=÷iž{uŠ{Vå²Q Q }®”¿"¤=›ÞëSÕñšA›[„ÒÛa¨kº­ïlø‡…€Þ@½5 +àt®Ò[/í‰HÎæý;„¹% 0§¸¬)­A¨Kfõä¦ú•Â@¸ò*©[ÑEà4+îÄÌ>~DßFJ3óÅVt"ßIÀ“t¨‰h—À³çîgb31Û-Կлº rá¿& A/ê +Ä2¦ð€jì8Xl&L$ÖU˜Hd ¼ +‚æ÷ÃŽ¤´.p&ù„|ªpí'v¸Þ©Y?Ï‘{4+I©kýFÑó,‰=róàÐÈ€x\à7l{ûLàÝ’¡¦D=eÞzHô lº™Æ8QV›n|ÔŸA)P+¥€ú€½p<Ê]I‘ÁêQƒUYv´{(j†>«Û‘qýyQéQÕïB‚Z—¤‘ v½°³ÂÒ¦ .ì¤ÊF€ {ºß~=Fú-·írv?»sËP"O¶\Á´¡W¶FKùÔ¬¥ 3ÎZ•™Ž3뇰ّ¶Çÿd>§‘FAÜ“ÎH *…Êá ©•Ö!kPâób tm)q{˜ÿ9Š%Š€r +Øä]×wE"¢àÏnÃþfy¡øÕ4t#\¤/H„p3  Π>ä˦Á¯Þ¯ìYõCÍ£%`¬{¢Æº¥RÂ*g O±„€…ÞÄW–̪¦Å!ˆ¶Â×7ŠŸ izpÔbžÓ°Ž‰gÄHÏ×AFm¹»óÓƒU^¿Õ<— …•@™‹ aÏr n@\ÏM'Ka:0Tk-ȯL†DLÅì1EÆè£¡ÜõŒ[g£h>vó%>Ø8l–‘þM-rÝþe‘Œó¼í2=¹C4Ø+êófµuËÑÖå¥òo¨Ÿ.ì‹ôJBf‡Ü-¡)vI9ÊóùÒœ®îþý Ó‚°¥eATh +Ùˆ†qdÊïû|¤ ¡°YA_Òo„ùš²&ÒÜcøìZ‡u¹ìÓp©¡-Ô‹qn±±çÙz”©®L$;vLëù¢G#ÓìÚY¯aÉÒÑùUç(îS(mxëLÒ}B¦æ™„…ú§†óàæ<óà/—2¯QѯªàQÁ1u%s1]?¶òšˆY!¨â%9ŸÕü’ƒ˜Ä¥ÎhøOé_ÚðšÐdM#z¶N«yR¡Zì}vZê=™†p}ݱFQùÔ1âá„u_â oUÔx%2ª 0+›º±6Dˆ‚Pw¥‹Ñàƒ&7~à¡qx›kÓÜ•ôRèîw ý‡£¹½/í¨Î4Rw×8·f@7b>ÈœsJDòé½ÁßÈV·~ñ-Ü@Ï.`µ +¯®ÆËó`¿/±P΃š¸m&ôÕAÜáDÕv¢yÆà^°sMrè¸òÖppA¢Þ¶Ÿ{‘BR=Rf˜ ÈSØX¾h'V¶ ÍíŠí磲O µVyå@À븅6Å@’-C×îfÏü‹¥w A½Ÿ¼'„µ_5†°ÉsÍ–bÑ Ù~üÒUýÄá᪡c';{J©Í``PLÑv¸cשJ˜%·Q÷3½ŽB´§ ææ¥ø­æ5Áö5_³d;ñ…pdoG·zY÷`ˆGX‹›çÆuXÑrñ› AEF&%6Ôˆç:æl(§ál¬ûñ}ykìõˆCÇ‚+¾£òÉFᣡh/<¯ãÕÆœF‚Íj5›~w×½íÛöv!" ÿ’}cWÐ.†5×ë\D£záHY‘×[ÁŠUGÄ zx• ²°én¤1»yŸujËSZ™˜íq8vÜ¡ºˆ0oXïqwŒîÝoUêˆÁ¹ÛäýG0ÇJ‡k3,USkýmý®¾y®B‰çÜn£’(=$QÖ2XÄ'}V£ÅàNLèWb¶ÂþÇÕ¶(Óžwµ\ýÃÛ<Ö"fD{ó¤ˆHUÏØ¦Í<Îßèߨ…‰<”Ÿt’B þ÷£@o,.àSÃïo6L>»Íî?÷‚Pt\>e9ÓH|”©Óç_MÛï½ uBÜ“dѱõÏÝ«‡zþã‹ÑÄšÚà9´Áå+åCOÚ1 TÃïžêqxzÄØ£JG¾[ €WÄ“Nv8{Qmfñ+àH±€DF9DõÔàžÉî.ö–éHq4£!—g Õ‹âÊl~køç³÷ÝúÚ«v~¾øúPÍ„°½˜ÔSbˆÈ‰!±ñàIFB^°”$¬íÅ'_¬:vÊ·O:y#BÔyzÌè¡Âˆ=æéa|=Æ=Ó±­Û½Ô”•3•äLQ^1o`ò–d³#ª]»Ÿ_€NKCÙ +Q{h^?>óè>B_ɦ„6›w²Rž#Úß;ÕÐ¥ÁÔ%Ü…TRAr¹\Õ«êÅô~_Sé}x]¹JœÕHøæÝˆáBº:œ‰ÙÆKä~öcJ× E÷’i"i© + Uy.¤ƒ=tMÁçNÁ‡÷ž†¦…¼ç€ +i9Á•Y'Xì`µgí¡™K&¯?r„¾ê¡^7°•VcFÓN‰\q^'ˆÚΛŠÂpLäRF໥!«òX~¡2§·‰á=‡DwòÜöz7†/J˜€êkú”Û²j$Ep»z+•ßÞ8¼o= ¯Èàb:zÁÛêQH¤viæÍ‚X(¡Ni@)„€¼Œáy–ý-àuÀ÷OÎ*Xß$2Â;öˆÐ‚©»I Ѳt³ÈÆvöQâ~¼¨Ñ¢*ÑÄ&w_á´:Úu›Q]iÈ+‡ ; :^×v>“ ¬²#œb ˆ« _p÷p¡žÁ7™»CÜý“p|¹;XÝc…*ÜAîp¢]ýz¨EOÜéÔ·˜¡H/£u’§êÊ_1ŽÝ>A{€@|³±Ç·š …¬Ý°>¤ù‰ë݈òðˆ8ÏeÛÛØ5-’L8м×}”½,…=¯æ&8ìfD,Ý[6»{›‚´Ø<î¡f¦ó2f¶Ù]©nCà™–&¡úK)âí[’S` NÜz™Ò $àj>'¯‘ÌtgÕÞãóÖCÞ;§`sÅw`ã¯peò•4*/öØÊù½j¹ÞÜä§ÆõžŒ‹e$Ì“DÐ%”ºÏC‡ˆ=õGH‘¯K ådŸ^)ª‘¼¾f>+ežbõ§Ï¯Øë¡~ß6CÖ!ë8.—ñ3-Õ¢¥Ø¹âp}tû¸º…A$Ü»T„G5‚lõâBöÊ2¢VìfŸ '\°¹,ïÞûGFÛ8† „žÑñoªUŽÿ'\q»Wâ 9*bÙ\ý4«%¬Ù{§¾SÔÐQá›uŸ´ò;Ò»¸öÞ#nÛ‰,Þ¾Ž0)ø:¿x¢ªzÐÅ‚À(yÞ{ø8îq?7ŠLã\V‹Ë!Ê¢Y©º+/ÿm„eñ'ô‹Æ«1ú„MFRëø-ðñäC%Lþx$?³ß#­7Ñ“##¶ô¶*¡Ô+¨@?'l¥™3?§ÅÞz\ÿô QÈìtæq¥&Cf†ê}è$©ßMS­Sésö{œyؾŽÖÓë$´<·¡#ˆè$’iØ‹²Ê;}EÝPPàþ\•°Ä{0'ú!å ªÜ°¼—B"x…’² ¬2ŽÈ ™ÝPÉq¢îÓ¯. àsãâ +5Ü-ø0ž%,.‹ãü]§~&1•ÄG ‘£²ÐO¤\kH:ô³ø±‹”‡‚ Œ†hˆQöA`ĵåÝžoÁý&„c* Ídu§Þ?b»…±_4^Õ.jPIŽÏ°sBzwÔ8G¨qŽ×ç¯7Kµ§²}| ²…JûÞ”$6O„JXÄrÊ͹¡jüΤ)SvµQ¡ð²¸0%µ†â(.}{>'… +™z]—BÙ°âsÃÖu p„ɧýêBT!\>¦/"Ôð‰[qž2ê=\9‡ËøÓU°æÇ{×Êhq³ýM´Hùâó?!ÆÒŠ ÇÆ=½¼\ÔÍÕ«ÓkvÑ‚ Êºû*Ȁ݆x„GÄæv^-'g‡ØÇYÖsXž¥„’Õ(q‚ÀP z‰Zµi;™¦A¯"w©ëº‹ìèw¯¸ÝVÕѶ$0é! $ýöqⳌ4»%†qD÷5¤Û{3‡ü|Þz÷:õ}ü)šø¥|çÀÉx ¡Zõ½¡šC ?7ÖPÌ’þ"»}ó½¼R}×ìñ–ïñ +So +ª]¼€Õ¦rüµ5 µ"`b6LY\Óm7áÜšF+¢ OÇðB’æyjèï 0ÛŸyo€¹S½èLvDëTì)djä0žð›”ÏoA¨·ª×/mëÏ+ô÷ÊE¼±™‚N„ó5‚b¢ûÖ_ ±ñY±|CtCá68 ª.œ¿¡È`™Ç)á0’ëæþ=Þäcó”ôb#–äwÎõ„Î$Nµ”P"µÄ£eá tÂù›»|)Ïg:ÍêÝ—Ž¾û~’®ã¼rà§ÐÚ°š^!#8ôäÞN2ž·]×ìGà ðÐï´ë÷?7îw.àY¸²ºdªÍ_„ <_62‚ “gèý‰%õ¢Àµ€TaR줸†á¢ùðQÈÈNý ‘7yϧF†Š!…7°øªtVë ”Ùå Pò%m Üz…èµ]ð¹{LJüëïS(u3r>"c¤.‹~^+þ±ô}r9wçÕȤŒ5¸4ÄLõHfÊE|C—ýK‰1Ph®·û¾YpC}ˆªZ9.tèöHAh$–-—÷’ÑBûu}ü·,ÂK"ú«D¢åÁ~Hý{Šÿñ²©ßþæß~ûŸÿ㯟,û÷ÿñçŸÿ÷·¿ùûß~÷—¿üñŸþñ§¿ý??ý—ßýÃ?þôãÏþ?ýü¿~úOø‡¿üçúùÿþ9Núõ7þûÿüÇßýåøiŸâ÷¼®àWøNÿ•ïá²ÌØÿ¬øQ_ðŸó÷(ú8"Òõ­éWÁ|’@2$´.¦&Œ‹èø­=HühÓHƪ¨Š½ Ž]Ý_Ì…ö[QŒBÏØNÖÙ{ÀA@Y’ÔdáVvn;®´×Œ +yGÂÖ¬­özßC¼&MköÌ…õQ,_{³®!$¯`ư47íIJB9ø “‰fL)éPFô ç%èQžsxÐÁñQ“ñ]Údê,¾´¿†8(=À¸ïÎ5Mg’)f“é+zÀ?¤Ç:«y+AÎÅ[…Ìø¾ 'Û[`Ö½ÛÀñÆ ìÞF"¬ZƒƒNuùÑš·½Z¨TÖ©‰í7ù¡â› ž¯u`>s-i+¥¥é ³ßu‚›ý< •â;_yôè›" ¬H*yÜÖ|XÏäDÖŠW˜°8`¡PˆÝqRø‚f(t1°B¤&y~[xàì‰e‰ÝÉ$á½kª¥Gý:ïø'ˆ½ö®¯Ð‹‰0záòîãŒÓ°ÐcâëˆEÐ ^7 Õ‚#÷“’zO£ƒ^ªäÑK [Jvòãúð0À¬é¹›ƒä¹Wme÷€9b³ÛQÎŽ.ÙftÚqtEDÐH¦ö‘¸á !hµÇ®vŸáQ@µ˜‡U+Ûõµ­½ùîý^cZ}‡ 'ÄÌ´¨¬º¤ívT eÎ{ÂïçJçEþ¢W SÂP5`5ß_F˜$çý^“Q¨Àý}.ŸâPí+_| FÛ~ƒ«‹’.Sè%, +l(î¦j'4ÑÙ!CBš–Sºwˆ^Üf0z¨ïÒKØB–¿Uã8踣¢Ž¶Â(/¯%E >¡·G(E”Nvº +‡^2†H(Àú¤—ˆEQ3.¸Q>Òê,G;új¦¦í½â>ÎÔÇM¡Jvùi·hÍ}Ù‹P'g^Q€'_ÈlH5Lö k€U½s$YÓÝ_~Ñ£‡mñÉåJ†¿÷B “Zódxxb×ÐÖï| ¶Ñ@ÈãAÞ¬*rÐ>û b´|êc¬„›ì~“²ÆÛQ wYO˜šå1z†øjøjèÞÆ½g÷æ’ðtî|„Øa ¬‹ù©_Hô>QyEJ zìå☢VJ·-Ö,êA# î¨)¬LµÊ¾c‘¸¦Z´³Œ@‚H=1;VB=¾N~-3ÐZ±‡êR¤x0©MÏ´E*™öÀNˆìØÎÝœåÙ½24% ìöZ™yöcÌ¢%vö*ÇÏf±º=0 Ç޾ŵì}é¦Y; BÒ“HºS‹UL[Ô¢@Ãp|P(Øã¬OŽÅÿ1LÕqÛã(,ÂÒ¬UôÏ=<ÓÝÈŽ•ª÷ÇiÊåìµùáNàœut/f)¢”¼t4JIF:¹‡½j¸2©ßíàG´ƒJ:=ø­B[ ³11e1¡ôë‘בƒ»Ö¨ìË^ºk³ªß¯ß~õI +·ˆÔPR"™®©¬95ìö +¼(A7Ò Â¹WD#y{†ÚÄK'{s´Óv#Ûö¿hÛ V±­£®¾wb‚í±Ì=cÞVíЇœ=ˆ3èQ!HÒc¢Ü‡®Î:¹µ¶†Ã‘^¤™ì¥dëîµ²âÇØ½uΔQ=‰Téè±_.{ìwq,¡5Þu÷µ¤k”¹§çuxk•â„ó +²úˆ2éc‰à««$äoà”A#5Ì'‚%ÎÌÂVÌà{¸HxÓ½ lÛÁ¡òh“Çûi¿!݃-ÍlªÇ¸*kÈ[’p—ÝC%ä¦V6²ªõn Ùy?û¬{•^êÌç(`—= hðœ%3Ç&£€Þ,"ˆ'«@ù0`©\z^-®I<Ê•¥\Å´V1|^bd75 pÙƒGù؃ç°À’Q¬ö<àý +yÏtOÔĸï[™#ÀÆlqET¿Ôņ›|Iî€áÏ‘|î¿öŠüx^©†Žå²Åõ h©CSÙš?^-QBQê׉âDÌÁ]2Çat„«DöuˆS$_‹ÊñÄ+A—ºµ3Ï ¤Ü7ˆbìæ‰nÁ5%ÿ÷%cbœÁÜzH‘7déÇac…±ß¼2J{’»§„=p4[`S3¬WíÙ€Ž¿ë +ÿB Y-rÈ‘Òb;¡ÂŽIªO=A_æ‡Ww1%RB`þF?(pªÇ¸—ÕCd¬‘“ü¨!†½ª|b„ì×Ù¶ì×!;…~q zêt¨°\ùié9<Æ,Ó‘9ñœ¨;_<{]ÎVÇÙ4™A©áщ0¯É.æAYhÜuvØÈ_²æP€-!“që ?¡<…PP¤!Å6ÀùÃð´µDú^Žç +ÏE¥yö~4Ôùß{àþ;Ql8pžùç^ìMÁ8‚¢\¦hy4¹®Ã­ -©2²—-–¾R]ï¿ {ûÅNÒ¤¾8§fŠ è—½ã/¾A+½uÈHÝ”Ãç¶®`‹÷ù ½:å<aDâl$³˜úˆÑëI¥Ÿóòáiˆ>*¤{¼#ƒâ¾”q u‚­°Žrïv2ÓÏt^jß÷$”˜Ø·ïÁÉ{–)JEÊREÐ}!ÒÿDôà¹5%nÉMì³ÏÔ ®íÙìm ØÇq‰@ÎãúØ*ˆl o•Û‡áÞÅ‚|A¶©äÿÖ£èrÁƒÄZûžé­×Jb”içy¨‚pkdOéKYÝstÍÌ‚ì° ý_DÓÊ{ȦP1RdÚpûâ8`œLö&ä åJÜÕ 2]ïtäB^‚ì){~Ñ oHŒpBL¿+ŽJHÎ~¨ûV"€Ž,CNÑjmá€YÑ¥oÄmùdk€[±t»À)ç˜î8؃–¸º¥Ó^4:)ÕâðP5Òº¾¿>Žz,š ÅÁý+ÛËÊ^‚¹¿ À‡©=90dØ] ¢«ÃòDš ½D"GŽ}(HëÐ7vO2G¾œ^$/v/dGBÍ•¹áÝE&Ž8y/kYº,'] +÷.jJÃ…LI%]wÄõ7—½¾Ç–½ÆÒ+õ½Âú·ìooé±££ýŽì/GÁ8S]YZÍÓC¿pÀs6š4˜F$Îøz‘C­×Æòë#J6¸”.¨¯Ø#Õj¤°£z #9ÛöÐÓ'C8ëý)àƒö(B½=wgÈCczʻή‰·xÑß(a•#ʧÝÒ¯Dw7ÒµX€k«¬ Ëp¸Ûr•Àã :U~†¶ #–Ød`´Ï¸€4@_}|"A'ŽZšXÄëJîìir¯öz8ÓC"ÎîqmGè”Ù•îNK$¥ë+°}H{ôt÷Àø²—}âDáà›&iÉÝcĶDeÄ<ü å%­ΙƳÜcƒCßèñ±Ã¨f§¸ÌÌ)ˆË\a¤i¸ÆùD„¨¸ +Æ•W†´+²–¸¤žÚÑOÑd¹üJºÀ b"|‡Õù˜”¯,å-©bHÆÁ†’×m2’.°¿JëÛ_§|¡šQ>ôÎ9AyìÁª2Þ„Šƒ¥ ŽÚ±ÐøX!Ÿº.#°j¤I§¥Œ\VÌCÝWJ°»pzXK¶Ç+-S”؃ÓaŽ#A‹¬†ì×þqž”¯Ûy ·ó9ãÛûùmðû®X=. ûôwð_®9¬AÑkHY‰@:ÃB¶Î}¬ßèªâa1q?¦ʻ͸DÎ{û/z(­8_Oâ—P/&­gDíMfÄ0’By‡J(GpIß:Fe¾;‚ñ¹‡çqw„¬Ø¾j€UïÇIÚ=b;šø&’·^•@ƒÈ/%qH\ì#Yã1iõ­´“º‘ +³§íŽ4sá~ìáZÙ¾~îq_ÍÈ Ö¡ÛçN¤k÷I×&ô¹”þÅÇì©ö{㞪՛âüÜ =y_† Š{88øvLEÖUìZ0ô³Zäû—ld×’ÌoŠëS¸c] +70ëªCÖÛq*É´Îä­'‰Äú‰Ä¸cõ‰=+‘±Bü&âAWÌ|ˆI㈙Çf…æZü:ºIˆ"¿¤t|fêkf;¸5‡êË5z²i +¼™Gê½0WqR޹ŸìŠGAU‡v|š~K‘œàœÄ–=`5Øãš™vý(˜%u|;Ré<$q’í•àu–K.³%e%¶ šJQ0-’`üÏ=b[–ˆdö[õåqžó6ef´.ØKéé©ÝÀ{•ÏTñÑúŠ^?õjG´©6}‰ª¨ÿ.ö®OHo3¶°ëö'í…•˜¯>þèÝAiz|Ès¹ër»‘’®§KÇÉ}9`_ =v¦êžöïÕ-íñ¼” ¼ßÍÜë븱$vL]^QdßÊ$¾ˆãâ¨Á™Õ[3ÒC¨—pw½6oB!X£—úq %H7%0¸Èÿ‘üÄþ Y[8vN)2è2/%£Øú|Ѳªj6åæg¾õÊáÚÒØQ" —‡C·DX÷OÁ,¿^x‡h à‚Âôë[U9 +Ü’Ù`.Ë 5Ü$÷î°p²ñ¸T«L³D=\¶¿ª^æ"0 ¥{:¹œ<±me]MÒÒ9·@¶¹Ö>JÛÓÚŒ‹¤ŠWëxïñû[R£¦9!ÍÍç½éuêÑ{ƒµ×—“Šu/²êêz¿õøbm|ïÜŽå†{Ã$–šû«±çÞ R µýe²A¢Æ¢|­KA¤·ö(9š=¤4aâÜÛ#€÷¤Z›ú.ä2Õ•fqý¦<ƒçË·†,+yÁÅ®ÕYþ˾Vp#¨wïžUöOPI„ €S³VŒìFç³½þÙ$RŠ9œEqPÔ¾ßÒ) }gÝ{ÂdO„‰<òXàUØšeá´`®nΈF1•\µQÁå°‹$ÊèÁö·ÞI@z½=Zô0ñj¤…»Î{&¶îôÚÑ«q 'ÒÆ*ÿÄqj€'zåvÙóߵ¦Ù6ÊsÝ”ÜåÙ¡4LÊMííyú7µFpôÚÈA5 è1LvBánÈÅ_W[1<&Ψ;ÀºÐÍj©§Ï¢ÿ±ˆÜJ•±SÚ1¼Xˆko7©y¥Se#Í;­@êš2£‘ÿÈÞ/š4Võ—U¢ãs""²úÐ⣌Ójº)ÛÃY‚¼¿ ÉŠIÎ : ˆá{|ó ˆ‰a©K/%Ì`îFß [±1Â]N‹íáç›dÆyÊT†s]ŸˆßãlÀ«HS/WËޠLJL¦ŸŠ/Y­Ò+ Öî!š=v%iGM„Nö‰^ J£‘6ùgOðDšyc\PëÞ7ˆl+¿µž³{dŠÓ^Bò¼–tÚ± +tŠÑƒXD~âDØúr"Pòô“ᥑøÚ Ýü" Y+±Ýz=ÅÅÌøðKt&Ùwº +ßÚ±Xì^MÍïð1à'×½°Í‹¬½’‡Àv¢õ˜ã‰CâŽCÎP“¾CC©xÏ& +9*3Ÿ"%ŸÄ0¾k<ú!7¦_|iîçüÁÖßóˆ¼Ü¶9#;T\Hë“d2-rýíz¢À§¢¡¶ÈÖgFeÝ?÷ˆ‡F~u¯HûŸ¬gÏûq’ˆ «z÷s’UÓ÷ˆØ §–H·Ññ‹^c…¥N“²3"À_CІíÞÏÀŸMyš1…frñóã®ï›A/–H:Y—A2a:ˆ Ú2R½t‡¼i·¹ùÐj­ÓÎ"Âú¯³Dª‘¥yjo¯G´:=ØN/]’ª=04âj‹%zúÛ=Xäwjèí«ÐZ_g2qĤЙ'=e….5Ì#DSFqË´hbd3L£ ÅÞ¹¾wˆiásØövÂK@“€àR(Þ<ÈáéxðÖÃ!Ðbäûþ¾õZ²šôéý\ï<×»ã|„ˆÎ÷â”)PÛÑ#ìƒ3ô{ß œe— ÷ž:üÛq€Eâ›pßé!íÞ!5´ƒqdIdÊDà `„<Öç<.uç)F@Ô4¥CÙpž|xo‘o_õ˜4{P$š‡¨þÞ‹ +ù¾AØ7S@ôàìÙMQu;³O¶‚ +A@ƒƒvghYƒƒB®yöBç¶@0#Öî*©ZêÅu*zˆ…œßjôÈ91ˈ´?XoÞæo+“zÊ2½ßÞ:¼&+ B„ÏG:žsIe¯q‘$ÑöLˆT Z»¾¦SRÜë÷ºÞ*;ü´©ïicßL']ì±ØucG2µtƒ£Áp¶‡ÂØH%¨ö t¥‡Ôâ{¢˜±OÕ ¸¨ÙÃH&Ã\CÂþÀ©÷À©“ϤÃd>Åùâ4QÃåíÀ¤[¿Kƒ2Ë»S +ãP!UD³ð#*‰½=‡Ù ‚z[×½ªµ/z ê]!‹{„ß{ep!í\DI·{h¹”8àúÚÜïUÌ(zD4è‘[âsuÍ)f¿íÔ/Žs*òSˆÔŠÂ§ìß²Xdh÷]d€–xsÉ™Ý2uáy{¾BtúJPöž’IËð}3áˆOÉ¢nÅ™_AQz²å¢ONŠoóÈ3ÅB0÷â+8"S¦íœnL“…®‹Ö7yª=Æ1o{ëЧæô*ðÉN”¿ìTŸ#6–Àæ@ÐJ lâǼwû.;šºÒ'j„ì"EæÑP)ýÐVöë[‚ù˜˜§B¾—„J?h?¹è‘_˜:r_p¬0ë4Ê¡„Xâ~ÄH@çîp¢Äïè;Ø!òŒƒ¢ w±gZ¯MGÔw¯³M lF^ŸÔ”ÈæÖ²(“ïÑ‹½ŠbÌXºÛƒTEž!£‘§¨Y‰Ç)%M©xÏÈ€44~ô4wyW…úïŸ5жþ¢©Òúžþ²1‡úEò aïI=žie²Ÿé¬)àÑcéäøÞ#îU(3B2ګɗLJô7‹2Í\Ÿˆª¬Âx‘;”EHEØ=ƒH@£ÞçGõ´u(l!ôß3óߟª6Zé ·N>‘zìGª¹`V:d/âz —P†Ù h¶}]äÊ?e” }€½}ûø˜O®Íkñˆ8&_yïÁÊ«Ü>üaÿwÒI`_¿²¯ÄÈ>™.0 . (òÒJAà@Š¥«zJ]T€‰:%:/)…`@÷ñ«;u-ø¸ iEaé—¿Žø»Ø@™øï|ô ýü¬say« 32%Y…ï̘áôÃe:   +³œÏæA$ùÝHq2üÔDÈÚÐCâ +±£Ç‹'Ebp{Ý=êÝ><ó \ˆì r $û¿€2PN~E8X7÷l7×}-òa˜£UÅXE]YƒW,5ÇEzÀ2/ŒU‹görbÛ{ǽöw#4™ŒþѨ»VéQˆtàÙÏs&44c_›>ÎTk:è:ž^Á-„—ÇÁ­†ÕQ¥Éø°¡S6¦AÈéÓ‚Ó´ +)ŸstŸTÙÛ¡)³×b:dĉ;PäÀ?È tˤ;xL¯E—“µºL´cè(f¯â+ö÷OÀ®›ðe<@ÆàíADî…À=ýü@:JP¯ÁH#¬mM"£ +Ö<åF¬*X%b#,¢ˆkSú^j´?ŒOE’íKD¹BnÀÈV¹ñ@Þ˜ˆ“|Ó}©ñ cöÌNn-ºˆa¿NV‡¯{õH}ƒbÀ*M*§äaiØ¿˜‹F:õ£Œ,œF +YS\–™' ýÌ ÑƒÕµhvbÑzĺ¥Ÿ@Š9Á °„߯îlš¾«í¸óe@IÈ.r O3ËAøNÕé)ž©€Ög ;ƒ†»_©y·ì”Ëa¿R.ç¼{ÍŒ}Á¹R ,c™¦wýÄŽ<‘,`!»(ì)í;Ãj…»ñ% à䀜. â +à›b^Úo±åï‰++Ù4ô³,g Ù²¢ØaÖÉÙR:ƒdÞ¸­÷C‘B[3]~faÚGAû>ï4¬¹öGÛ÷ï…µÿ',bÅ&ÙšTl‚ZÞ.l«éØÜ$C‘¤¾m*F$¯ë@ ©µÏè@yw˜Â¢¤«$d¿|+Nƒ”µÅ¡ûJƒ¹K]’ý+‚ÇÛ³÷³5NÄfŠR3UÏšœˆ,Óé|‹Cí¦GКd$¬×‰G`®VÙ¹/1¯'Mc"›8"®!YsØ_´ƒµ†j/OÞèa?y‹’¨ +¥’¢Üm«émæv¿Z¼£~£ršµDìȲ¡s‹HîÒ µ½xÿ^t>Vñ»«‘pUøg_kZ¤¨N0S¬gä+ÀYU=“³ÂHz&gbÑü††"èûÆVax…©¡pŒÜÛ>þNÀ'’å–º‰ÚqPk„ÃZ8C0³‚y¼ï”‘¤b>“ë*1É/¢X€[•9z»ñàoáìì÷¯fÕŒ nȺðuX'‹`0ï”aQ!b_èà?Ü#õT ]àt§•¦ì  Ëù‚3É% +­ä>J4’ CæÃxL! áêxu6<Ý£q +çÏ–@¨¥iÏŒš‰®å–òž)VÃýx«˜äSl¨#Ìs¦Gâ_í!O¶I13‰¸ SÓ¹çŒÝø3 -ýÙIÎ𺤥Šà ®'13Å*gNᾎUGü. ~‰T—–1ò»[ŠB:žtKò¬B«Bƒ5G0-œ„ñõ{jÉ$Še›¢DA!¶{Þ©YmG)€H¿E'Ö_~Þs¼/û‚âGóæÒ£85Ð,¸TÞ4‹—;CþÈyÓkÍ8ævìbâ©…Ë/a¯Yí {wh y=>…U®€¨›Ú85-Qdž˴ñÞ–§‚à帯• S—è¸u¯e¡4ÔRýöë¯Ç¿á+If +ü ™)LÕÝ™?,©ìÄÈ(ýéô"ãO¯Š ½¤êáÐó&èg ûèq ïhÈØ´=œ)­LƒT' ]úösRJÄ+ê×T|éEZ"ŽãH d#ä PQ¯ŒׂÂÖ:n`LÈûh¢LìÌ~ R$-G†ÍÚR3Ú›K1Xœc÷ÃPS`HÅ(K½:_å@ºj¡0éž&$¥0Gz"álºt[bî%4".á<¤ðö"ÝMü@·Œ u/ÜWÜš]'Þ ë P¡™¾¤ÞW÷8ÄàôxÀÒ#T“D‘{°ÒCcDzøº¤CÝxioàìEÚ^l?Æ­Ç™Îu?&hrü’9 ÇÓ¶E„™ ¿WþàY'–{"Œqpj G+$ô›òÆl²<uM÷z•ª žFOTâ´– ò»,f3ž’Õœœí謤qp|‘ƒ&xŸVaØ4ª1Ùa­•ªCç!ê—xÊI)6¸-A’ÂÔ&`ÊúíÒà "R׫"ªrÁ(•TEÓÙ¤OâölÈà¬Î >Ÿ{¦}?‡9A²€Q›´sàò\¤v6i!$¢ð¡¡P@”NC|y‚%Jðìc³êCh+½PLHîÑãw„d Ù{R×óÖD¢?Êçô€vƒáõêŸD Þ=GUúˆÏž_LÊáÀ[Ïy®™8öÛ]¸AªÊ öÛIñ™ñ£%f0!Z8ck̼ÆÖް=Ì“ªÓü ÐW6Ò 0Éí£å£šNµàA6ãn™Û^2/CÉUédüàÏ+êC Ú9¡gh€+DŠÙÁ¦eßn€W€¾Èd3þ!z¤æ×îå^*7 +¬!ž¤BÅC­)äƒÍl0ÓÓãÈI,òèöà‘Ñ£½ôyMö"K½x›éu³Â#®4kzéðJ¸àL]…!¡T°&ˆ¤…v’Ëeäùz‚%¤ AlÚöªÆÆ…ÛôÒ~-XBç€$:…yØ?0»(i*!RðBL‚"’i£Áxý~‚/ôû‘êg ë:àTZÈ ˜÷~24« ÁßçÖ^íh—P #X>ýy#4øm©Ÿv޵¸ç0O÷=ÀH«™™ïŠÍLp (Ñá%ê|ÞGdV—¯„  +' Bo=ìÚÙ캢S:f-f¾§ª‡*U=Ä@_À^!»G9ú\QÚ[–<`ß1: × ÀØ +ÜzÉ—$aV‰‘|·A=˜Äp#@šÍ%£byèǾHû Ê1òÖ49™ÈKOtBrâyÂy§1ΫdÒ}wÕ3€` T²’ð¡ÎmÂ{$k!?|›$ þõ;e…§øÀ4Éu0•Ú[‘Aï4j¯Œk„ú"”#ïU)) \M!–P‰½‡ÕœEÎ2y0{ôbeu‡„2Ëàü$ƒ½yj‘ÀÈc©ç•xi…ƒ(ˆ³®·NÜÇÍKob]ƒ?ròo7Ä{dŸ:à˜0¸Z垈œ$uRæÍ©‰X€{rRª²jæ‚0A&„*4×ï1é—àþ €×¸ìš=j­L<=ç›S²Ìäu{Çô‚à R°ÉËR§KÝh%JdúÜ8Ñ‘‰‹Ã_}$Þ +È8ò) ¹«îȱTû`;”¡g:¦ù…”dY,xA’xGúî”v‰+–ãYŒó½\µ,°°-L‡ÄÞ§r@u…äM…q™Ò8  éÆÌ4Ϙ¥…ôi!P}:ÁÀÿ††zeÁ›ÖVèDq?àEe'&Ç}˦ATÉQ™kp„êÅ=v•RK”üzŽ ˆâîz´>Na@®Pqìå|aÙˆ2PtPð€ôMùØú†ßÌq—¦€'°±¤òxdSÝŸÅ¢¶ Ž„ûs¶®ð(ÕÑ=G•J†uÜ—hI7 Ù n¬çÅêË4Ú{T(KÞ6ãÏù3`ÓUü6Û°±²<âXùCfŒÀA +ÞóP²‚°M¾‰ø®2ñÕ@©]§U­ÃÀ:wˆg,HɵҶ‘9 ÂùÈévˆ!5¾®Hz}zz„ÌE›kÍÜÎ=BžbÏDý”Èè%é ëÈ#þ3VçÈÞ)P8txÄÑÓC)4<­S¡bÕðJjʼnR\ìº{wÔáEÉ3(tІ!;‚/!» J138¡ð[U1/f}ÂÅ1YnIÇÕÐΦ›Í=GHšŸÌ9¶ÒÊ…©†¾‡û‘Ü›ZRîû'ÚÚrp ‚[ +%<©(½$(GTY)— |)‰öW‰KGŠ +ÖC ˜÷L’#‚(aaR°ÚùT¬K`qšqöŽ­ë]é…"sB”¼…4¡f»—›-z ûÈ„B(rY®%k7ËI¢ñú«”ÑOÀÒ‘Þ|Hñ„t6Ó£B.ÕË!cK +ì|Ö':„&TF{{”fÒŠÿ‰ƒþî<¼/Ó‘±Ñ%À™®Y›×Ò‘Xð¬!ÌpwdÚAíA1—‘HÙDßUJ°Â=ë õÛW7wÒ¢ªÚ™)r·0žÄ¬‡ûSAFT]z­bKxŠ2Þ(+?çÝ„´0«~ÀXê€î§úˆ†Wn·&æyל|‚®ÜÉÕ[\­O8Ë;`°lPhpXP[GTÁuïX«BDÝuÈØCâ'S·F¶¡®(VÙM ì]0F+ò{>íõB-¼‚v‡‡BQ38ͰúÆÁ‡`ç£Ø2ÁÈgÝøÿ¬½Ë®-Kvž÷z‡Ó”Õ 32"22›öaaÃ[-B(Ñ€Kdš€ßÞñ}ÿȵO­¹Èª rϱ2çÌKĸü—´Êš˜¬ËûÊ4ûWš »r–€Ÿä¼ÒCN¶D€PDËG–íÖ—ßj`ŽbáíK‡~ë4>–•? ɞÓ043Äø8ÑW/}4 +\ÉÕ(pyǘÂu4Ž´&ž­S·¡]' íA|Mä¹W )J>F8aTƒtîÑ6gm€££‹Ñ?VPJàמ•ÊÞÎÎ防5Ú²”*ˆºƒ¹dgUí¿?°¤íBßáiî;„¯‡_øÇ(vÀm»Žs%ŽDÐyVÅç¬ +ûkŠ&‚^ÇóëLÚ¸#³|E¶m£Ãò¡(]ÑJFýù.E9•“'àÊ—eGþ:m{ÆdK8bšw#´Úur ž®ü'5UWæD·6%g¤E8Î9ëiê:°P4M¥}‘q"Qc#ÅØCš ýòŽPû ¨ðÂ|ªÕ0Ÿè¦ÉÛ˜r[Ô„hÃoD„Ýž¬êk$i@T±È+¥”–#†½„ùè%p;$ä‡è˜¸¾Žk–GÕ.6}y^ƒ ˜bU¼7H\V@(š4©dO2¨à<êN†ûÌWUlÆy“ˆ¬>¨Ë +M¾M„P’àÙ>!áTÛ·õ8(ãþéaá-a‡–L­òúi´°i³>°Õq¥[t+Žã7_úÐei ¼gŒ@hñÔŠr–je-8 ¸wáØ‘®¸7{f*Zço®:Yòêz#ìÐó¼ Ê^(çËöÛmçõ–)ïns¿~€B@…ÿvÙ¨G9ï¡(½ÜHbÚ£²'#èãUÅâM Ì¿Þ|1~ÖùÛÚS}0§èqÏêõ¢÷žˆµÿ®TãU|蜀ÓР™È–³ˆ‹ÌQþ³Ê +}õXá)^à6ðÖx#HrpSD}ÿÔ…öÌð\yz˜€\¼»  {iMéI)¶¥Ðyï¨)c”þfžD©KC”Ò—èÒ㈋Úèö’¼Ó²ÛˆÌ÷އ|RR¼0 žp¯jb^r QG4ú›~;sÙÜNa¾g!¨ŽRÌ»·Íßt¸áL¡Œö]\ÈC& Ã~ƒv=oM•Pÿ=ìO]Æ›„hë=ô2Ü@*ý¼Fi˜pøE÷Ìôx-tHÜë’#8HL†öuq®"Õ«·ý½^1…;¸'8HÃí*ÝݺëÈ=‹åÀcR°gÁ§*ÿ|pGŒÊ!ïd´{½·æ +_^3å™{g(¼$7Kù!''73@”hå«6¨Ð‰ÂBl묱G©‰~íû3»ºmC¯‘ûº·Í[5#FE¡õËšëJÎütte—¹ß.Ì*ìã:Çq1ü*b8ÙÓbÕ9ЪɈdaQ.!"£OÖ_#xu€ÎU˜óp(σˆýµuE¥ Dó«q¥²ƒy˜VßG%XÃÜQü*÷.„¿ß´¨0¼X.‹u¢Rã½A¤RœbN!’ÿúuÔ•a‹Å”Cwž^‡™"ny!/‘þ¢èY2GsÿÀÔNÕÃ>YÜ„+«$ï³’ž~º*þÒÌðÐÛi)ó–¨JÿñR?Ù¬À(,ˆZA±ÿ^\8û7¢?*×\3¦ýÒ 3·ÂqJdÝRŠó<õf•1E§ $ré¬þ"@öDæ¬D5R–“D%Zßnã´ÀdËR}E‹ƒ™ "½ÓÞb²M§°óL›ªìñuSV´/Ú zÐ`o®{9”È8µ-‚δ–ÕZÍëWÒ’]Ò°°}ÔWc9ðH²Ÿˆã·€æ/jY^ÒYâù8d³ÞW¦UŠþy§>5 @=ñ|ózñÏ(â˘jw¼,›8Hâ[G^ªÆ +ÒÕfGÈÚ$¢¾ÀØŠ 3KÄñÚÐ"dŠˆ=¢¢É/g÷ÈÉ•â{ò²›¡lÄ? ¨àú._Ë%å8ÖypSK’ž¨z5ÉXvzTÄõ©8Ù¢¶¸t«9så^¦Ð¾=öðyd g4¤Ñ÷dRòšÇ$À²×`¹Ø…m¯)‰Ý«\:Ê bgiÿ ¼I„g-÷q@5‚Gÿ¼lU1Uäí;–h ~PöA(Ép ÒÚÑ‹SØâµ{y˜•(V8¢vñïþUpg€¬wñ‹DlDÒòÇÌdv„(:½ dÆ‘~ùþèP°ß0`E'^)ù'à +`µä €ß‘Äé°’w±bÎpG…^}?oÚ*Uw³ RªgõšÚY’0*ñNgûžõ +%ÜÊDÖuŸW–ê‚ÊÞâu±Á'¥´\B|òú“¿c5Hñ¨zò`´¬¼ä¾ä=$ÙT»ž —)¥In·¾O•oÂSÇÏÂMRÙ©¥6©F÷iý E'I_û·ƒíwNjuôÌ[¨ÚBݤƒÐüv]Ž>¸©/I WÆ¢f_Çáì‹B.¾žGˆÔjÂñI@áÿ¾ªYéˆÎ3Ù.ÛS| ýõN 9Î"˜g¬l‘òíÉ뾄=‚] +fv^/h_3ôýøz’­¨§Îiú0dÍ5 ‘ãV'øªnBt¤àÂ)yiÿ ©éöÜ_ðxÕA´ÉeC„—?<3W*oõìŽÚö¹ÙPÀ>`²WòA^ªiÕ£îÚñI)¿½}žâ € ·sô<6^vÞDD5œFk8J«ŒÔ>ÇiA”'þzM<à¿ù'íëÿ…ú ¾ðùï>ð²úÎGñæ¥ýU€ûvG‹!¢¬>—¦ «žÏ 9{®Ë—ÚIFÐnð7}„•é\O•Bm«„›f5‹‹5rotd`QP(¦ÖYL‹ºûûÐÁB¦ˆæ¢5“—À–¡}9a0žÄ‘1ÁûɈB<ééò8*‹-Ƙ ‚á¹¢<Ó—œq†ð=Çȸ¸±¯39kØQízJ“X§ + ÁpÒ@Qiú‰Q +ÙÒ8Ó’k„Bl‹ÜìŒèqœr°.z7ßV6W”‹]˜BE¥{—4â5¿·¨¦°»MŽÂ°'5b°2"7^ý*µ`rAKÇ ‡ó3€ŽÀt¼b°¤®­tGcߪP’Þ§É<;<ÅZfÏu¦95SÞkÌ® þaš²MÚ§²ç>¢à)õ™Ù;šOÉ~ v~’ítÏ[4¦vqA¾¥%ý’òO’·QQ@”Âw¡ ¿Ô´IYYˆP;eG\`‚‰˜,VºëëQÜ€ypåù)(ê"¼O„°DV嘱ÎÒËw¯×0ÝüsvsàÿÇ«š`JY2ö-!à¸ËNG¢,“WP㜉Ä^7§{Mðô‡4Nß™<ò‹{”ó»&‡€¨·W ïÎÈz|F¤}žþçŸsF{W°ƒh·»Úâ‹•iÄäâV”à@§4y uyÌùʳ¥8 £’+QŒˆ¢Wâqþ‹»+•Rž¾iñÛ_ÎÈþÙ´K—yþe,{¡¶âY/´¸]ÚB^£Ë$mh¾pϺ#UËõ,Z‰‘òζ'M—Lx08ªšBkéÔñ;.ú!½ôw`Øâ*D7˜ÜK7—K·ŒÙ® ê宆«Gùý’ªe¶Òt&³9“týîô:[oPÒ¾â3ü¹ÚP:‡¶™ô¡$ÔD» ¡}4ñqx8€eT ×K97’¹©= öó̘±¬hHBƒ9¼u#ªpÅX(ˆ/øŽg$dã6¾(×ËüP´ mú—U«-vÞ$H„‚GõZÃA掶y,>Ð.àE¥æŽ™+ÉÀPãõ–Ú·¿– z¬Ràí¿oú’-,Ä©à•[ÀÆ)©VO´bÝ9Ž»¹_<Ò¸Ò‰P×H¯„iÔÏ ;„͘3¥™%ýTmøÓ¡~¼Èß¾êÏoeøpLMÚÊôî¸%"€UÀëö”)UðmJukÌÍ£lO?‚I¯Ä­ˆÀxÖ¿üÒüþW|Qe¢¨Š{jN'2'j“c‘ù†^LðId€q´ˆ,™ ±„0 ÈÀy'¥ˆ’ò»àr•bß©Ÿ¬Õþ‚œ(Ž_ íjø‚¥£z u¢3¼<Ž21ýo“õú ±Põ§`iÀ?}QÀ0Š CJå %^pDaÀA&¸‡P’@“ÒctÕÚ¯š4×$½í#"uÔ“éBëgÕÐP˃½B"–ß@¶ÙËŒÊF§YôˆaÆ¿†¢™µÚž¨[\¼É`ó®Bž2î[-Fh®W‰Ýá>¨À—3EÌõ Y"õO‰ho·ó Ëu(“9LéÒôAkÍùE׌«"@È{Y"èÖ^äD`{žâvü—9£:ñi…¿üªÁ+GdpÐdBƒ´Xjõ +8x¼îm¯‡$ì åÜfþw½Å¸þkc¥»7hG‘ž¹Õ– IuL¤+]»’šo︃ÞcÏúásóvWxºÕˆøˆ*nßÎkÅH0òsd8·2šû`–>kϸ‚ˆ””N‹êQxc9‚Øk]ë¹ôήN-€Ç°´á–.ó"õÕ/ñ¬!H›õØ«;Þ3¨$22|‚À5eMÑl2ùU¦mÂF„f5YR@úˆJU.+²ÙжÈÐÈQë¿:ùˆpÝŒ Ú*ÊøLÈaFZÉ+B© íù±ÁÊ 0F«Øæ@ËA)>ïsv×ã + ±®È¥€œ´ÌÀj²ˆ;ÝʵWE_ûK›ãˆb©î]ÛŸzs¾GA¸ K²®ý´k¾Ë;Po'‚Á> 0=iä#|Ó>ÿ=‹Úk£bº¸äïmò¦¶e³Ä<ÑÙØÇÀi/ƒÛý +üŒÂ¢–YÍSÕkVFbNVI”á¬O%¹‘±|EÎWÍp/{_æÂOˆjîJw¸ÿ¹Óª!³á< è^ûéYp~ií8Hwxå%Ý·÷’J›žb_¡#ß +¬25P=RBÀ\*¢Ð™rzøð¥«z†xvúÎÚnw]t½œ}À\Ù\e×Ê£Ž£í!hU_»ý^öáp‰9ØîrïúD‡- Öq½dý+B¾|(5ÿñÛ¿£…5Ó9#¾. óvŽìå¨Ò@ÀÇä*².'P­ß:~'ܺC›Ímq( g†Ù%e´´ÿ&êÉçÕ úW/&Ês”êÎ9(íîs· R¯ïE?&™°'Ræö9J”kº^’sgŽq÷Ñ¿NDžf­p$‚<öžàâŠ4{ê/ +] y`Ú|G˜öâÖ§Ì9þ@r“ÄD)Aêê7vɤðãªt†@ã½}6•wvê¶Cíu£Údr[Ô°»—j'¨^„‹á3£·ÂŒ0%3Qqüä +Gå +pÛÐÃPSIß®l¢¼ÍíóÕïï±ÊÚQhµ$JQ{"w”T̆ýÌšOl±G{#̘µŽŒp~Ñž@G¿Î„Q£¾«QceI¨«eæÀÌ‘ž}þÙªº¼×¾ß9˜aõ'ôÜl)è¨$:è + +Xá~j$ê¾s–ûγ~ù/ý ò‰3—ÀÚØ2„óäÜ ©%'ˆæTƯxÀS…íŸ9Ëg„ßÿéð{þÌXP&YøsÙè‹<ö‡T_ âJ„˜šª½+Å·I »t‡½4™ÇN‰Ñ"ÖX ´è5ô¡¿;,8eeóμŒxÛ5ªäLs9¼Q w‚„Œ²>LJo6xÂqàÛø!¢ÍL¥ÎÃ|ø«ñðçQú‰¬ø‰È$>Ë—cW^š ì‹|²†œê ME…4 |jŠ÷ñ>[Æàíú)Š¡öRR€¶9…4¨”h16¹Gqþ¥u3®—Kòj_”ׂ­< cGUù¡Â`ëŽ'‡ñÅ=šÆ¯ùÏ·q,Îü2˜Ïe‘¿£w·õ2'*‰ƒ"°#àVÖ¿œóÈÔ!Q0"ò4Óææw´£¤ýMÎW×L˜[Ì.—s}Ð#¶A”M2îØm¡‡ùS^ä«^ä«Fä–Œø™µŽÈÒ]ÐL¢HHy’t§ó‹2^"óžK㇈3ˆ]!4¯ØgZÜÚ£‘H©?G¢+¹o2ô Ž®V‰ì_ÖqŒä?"rÍȸ‡ÍÏ®ÒõçqŽŒgøÞä3«Rô µÝÒá+JQ^ãK”šúž-GÒ™z»Ac"D…²GM¯ö-Ùë÷Z„- gÖ¸½è,÷׎ÞùÞ_waC´ZhÒÃŒ6ß v-ê­ß#þôñtØW¥¼é÷ã\óå펮lè‘AYÛA®ñ=àÇíñ[»I×jx‚”¢­pÆ —‡ã:d£J6Šñ¾¹s4YeÅ.¦}Ìû½†5ZÐ-@ŠŒj*{Ñ7Thï7-5¨±CEP“èò´Õ˜¼G­¤á‚NJgf”›ýú0¥˜N]÷ó…úƒ[ôñÕBråþþáÔÖòÆ£‰E«Ä©{ÿÅ\QlÚ{·:7TŽsä“Úkš´’\µæE+§KU®ãØ.» WĪˆ¶*b%‚ÞT"HãЩ~Þ¶ c˜Pˆ8úZ‡Æèþ{œª-GÎü;tR´àï'ßñ¤mÁ½×Œ¯ã ä\»d_OnÌ#ö$–ûmCôø›©Ô®RdÞPzr×H«̲&Å,»¤®¡ ‡‡Ëü[i8û²}5ýZÓŸÍÃc·z?#ð¹¦8FïæÑå™NhJAÙxÞ;hN¥È³ëÙóÛ9®‚@î"ZvISXQ¥íohà°cÞó5:¢’\GQÐ+~áQbayö„Ì+HNÓQ +²nÏížÄ«¬8õy®Âî¯}¼úqÏù!/|FÕà(€j!7°^÷PÆ„B$DZK ¤˜~ÙÕŠlã‚$O”€ê<«œøhàÐ;Ó˜x0YËá#;ˆ +9.ÊCG„‚,@vU·¡ð_¯¡Ö’6ÖÊgl`7 uÊâæa~±&ˆq/éÜâ¡P«MiWòˆ»ÍEo//‹(UW BiÐlÔLÀ+"†|úKÇ,#ÔeAÖoIÑŽ«ˆ+ßüÈþ\i¢÷°dÿJû¤EY©ŒBA6‘ÑúD„LœgFCÑ6)îæŽùõuÝa@È«y·mÎ':ñ·Waš3€V9BN Uæ"8Ÿ»$G¿·æ;óûãÏ1m, üÐA…(:œ|ý§ïãÌ}œo?ð# +¼ËŽ}¾³d^Ÿø>È~E‰.Þ »Ù¬áß/ ueT}‘üŸQ"©¤M¥æ¥@éuïÆ«L‰H¤¸ˆ«ŒWê, Öþ—]EgA88â‹Ôc—`®óœã‡†÷Gļã@D³ú…,'j¸‹BÅ\:í‰:"FÖ(’?".S‹ ðéþ û´)aÖ¾£!s¯ÊÚþEoÏô.cÌ +ß$–§((×V§aG·‰u 9Œô­=Iô”äqÒÒïùëø÷+zJbçböü¹ÎTk)þ¯ø{–Š»NŒ)»EyU†ÒhÜïª +‡Çp¸™N%† îËÑçrN¤,°ïý,*Ìñ=}ÐWùû‡²›”šÖ\bI ³.¢Î=”I>“±L cÈÎÒ˜*×~dé1¶¢®Añá#J•ŸKÛ :ó}Gܪ*~@3òÉ +µWÞWá[Ô‡Æ6Ã}³0”·Âù¸^ô9Øe–wM%uÖRìå{ÄׂKšPNa>޳÷=µ¦`¶^=d:„óº œ£„\îXs¹÷M« µò!½]ú…NI’㶈N¶Oå}š³A"”:#Ý "fûZ›Z¦/+#2‚ôí´¹{ç0á#Nä‰r¢ðøšSb#Xïª+¿ÄqÇ´Åÿ:ˆ]u¢Å‚Ó¤×ÍØ‚Áy@î€?Êݽè‰öϪ—¡“çm¥µ1*jËg^åîŸyEäÈ’qžR%gRˆ~Ý]0‹X•ûgDʆ€í "íüÃqàr>ŠZ1™ ¼?‚¡»L†·:õŸ˜Š€‡¦Žb«´Í؉PïPu~ <ÊÊ3Þx 8~”DÃÚ5$²# zlÐBKGAç.BLÿ^ µ¹÷í:zT@‡a¶…ÈÅþó±Ê˜ŠöPk̼Âñ?DA1`.c*¼•¡^¯ÀÂY…Ø©ßÉÇ¥“¼Ï,|ï-¸–žûí¥¸¢9ùޕϨ#2Ìx +®§ˆ×቟—ŠÓGùbèËßôLÉÛä^´S³­ýÖó-«¯LôøåHW%"ybÎqÀ´ò<ø!GÃïÏ@žÆVؾ‚®š¢¶¿,פWsëÄh¯´üù"#@HDaÅ[Âc+ÛÚ?Ó_çv(Æúü{x(RbMQUºBþUš-Žpç +Šôêï54î¥5÷O˜¼^JãhI¾(ÒoQ³,ØA Å½hqú32NÚU– ¼äGÐr¬FäL˪×ð* ;ÎQ|Dæ«Êýö ¤È +š­”V Tuå=ïý…üûª`´ ÖˆêZ?ì(:œDÁøwõ}ž°ÆLj‡Ã¾4t&L%Z>Œç 9‘ÝÚüŒÀ¹cI†Wpý­£?‹ºÑ¹ØÇAœ•®þTN—…€mš¥VeÓÓíY(2n¦`ÌÛõ«D’ùÇZ;!D¨GY”Uiãl1ôÈOõÏŠ ‡1˜#µÏ6­åïQ­Åœa B¡päϽ;î£2 HІb ôl{îñMz;W9Ì8¬WT´Ä±î¥›„|±eŒÓºFL-ŠEÀFm1@0ö-¥ÕAÿÇ©ðݤHªè¯8®œ‹/‡y  ¦ê¯m?&\r&Å$†ôSßRQê!½wl&6¡è“·]êø¡Q—võµ—B}Y€‚Üa¢8|ªþ.÷¨ãi€8û¾à&vû] {ê[Ä j +–ƒÒ†Gï{²À‡êE!r«”+ÀáýUB§ØÀ¡÷ý ŸŽì®NO-sñÕ°eºDPFô¥…þ Õ¬A³]+¹ç.H_¥g|©|îŽR硲×Ô¿ ¸wgÊКúùšÀFü‘wMœŸTü’Žÿ/<Øóýü#ÑÞÿã?îÿãúí_ÿw¿ýŸÿÇ?}²öÛÿ?þýßÿß¿ýëÿáßþoÿáþáïþÛùÛûÿüíÿòþÓùÛßÿþ¿þû÷ÿ×ßþOÿñ?ýÃÿüßþþÿý¯9éÏñ¿ÿÝý»ÿð÷ÿvŸâϾÜóõ þ‚jÀÿÊÿÞÝþ1×þŸ;?êXùªÒ#ܧ‰(âë@\{ZÌb$åîßv¾ÎuZŒ‹RòƒºsG€Æ5"0 +ŒÙàFá!ÐZ̈Y©$ïº(9ñÛ#¢ˆQ5…dtjb÷Ôz TG¾kˆúzµõ6N˜]\Õðž¥~÷ŽÝë€Ce<Ü^ÿ0böaIž:~¤Xù'ŰOÅТb©Øþ£Çá-—k$Ôú»ÚK«ÚK ‰ÃcÐÉ æˆ„O‡NÇ)•Ɇ¢|._H‡î³â¿÷|jU±ì€Ï£{¹Ó¶h¼Š†€¾w×`Mû]Ýhˆj4´÷«“}Æ@Eü}WçuŸ/FØ ™xæ h­EéDû „OůÕϧ!=‚ÍFx„üE14ÈÑUê\—]ÍáY>q ¢3‚@ +dŸ Ð¹îÐþŽ*®ˆB˜(,u\»J¬ãè8x†ýïŸ?+L½WP:]ùÓ'è³BË(ÖGÔÄ"‚¥k¤Ú¡9 ›,Þ=ÓurŠçéÒ¯ú¶ùÑ|‚§¯ÕÑ; x€":AôñDãNQv`Ýlqcÿ  ïð«~H÷šÖò‰ŠîõãÛœ?gX4µ¢îµK&=~…t–NìW½\œšäÆùu¦ŽíéYº_EnÌ S$ Ÿw h¦d<Ëz BÍîñ©ÀÓL¡n¨ßŒH²`éÍjŸÌdöQÂ÷Ð8↭{ý1-¤x‚wAùÞ’ïQ¤zØz{¶WÎ Ýé f´š¥í?ÀúšÝ€zHÁä¤| ðK¾¢¸NҕÔG«Ð?Ub4„”ȪÕvæzt£ýw6:þ}D‰Óê†ÞÚZ¢Lµ. «þyê—ýÑ1Àœ¿²WFl'ù\Ë ; ³»W­úDXS +é)ævG]Άé× aÆØ€Õ°Wú"N`øN£‡ÍÝ}!5/×ôÅ0„ŽÊ1ç«@*tåÕæœ±âí C™ÏÑ·× ÔÕÏg­ŽCàÕ™>¢ÎB°ß/Í­°{Ü4´ƒc¡……‹£lPw¾SÊ|þö‘ßãTvè-¶Ïãà2ÏbË4Èô$]û˜¸hï­øølþM`EC¤·2bÐà%žJ/Mg,ÚÁ:m˜LSÕëtMÎaã&@”8 ZlKÁ7Gê~Þs­òÎR¾¿ö¦Ãx‡³põ†Ê*³Êâe„”²÷,vòlGpg¹^jry"¶+Zˆ ³AÄsçL]úÏÞcl©¨VÀtã·2©~Öƒ >\ÍîÂR×L)~ú¹K£T”hðp•îOMˆ`Ž+t 7gûŒz¢@ xÕ€î©o9°b/–㸹Óvˆ~û8çûˆÈªÕCÛíà3çóÃq®C=ŽG @µnîÈã¨Úó‡g‘¼ž°õ ÕÿC,:Ær´PX±€ÚÙIKª Ä3ZÉçg®@³álã´E~•ý©`# ®Qh¨`y öCËsˆe ;) ÊÕE^èRr—Í¥÷f&-õD஑Ý@¾…’àlï¨m :4ãwrê8Ä“éafeH‘Óÿ~âÌ ý·©Ô¯Áù£øI ß3Õ + =ùVó'{§ÊP©nŽT7 0JqIÏ9­ÀðúöÕ¼†!­¿ùTªöÞC† hå'ƒ×S 'hXG°Ê¨6óù|Þºm—iD<”!gâCö›;¾O÷œ?w¸Åw Ý5ÎÀ „ßeСÇE<Àó ,u8£ŸÁÎìñàH‡BÝÊ£•VóГÑ"KIî“)$­½ƒÅˆÈÆÿó¹Ð[‰ÀIÊ gyt‹ÇNÉýÖîÏdMÀ"ô)l4*nû ìsW¡À`Ž«1€¦YIkä³ïù¸õ*=”ÃÀ~t‘1E@Ýý‹Ìr”#)̹™/®! AèTë-¯]¥¨O"Ü·ãw<ê©Jˆ¸[25;`š¿î«DåøVÖ¨…žŠJ2ó ¬‰—âÃ(ÌŸF¨@ ÷Y9$êÍD´6_¾5µ"TàP$…Ê£d²L×È›ÛAò«Ý:ÝJìÖo÷pŽM‰lƒwWÔg_ï ®bã ¯9’©µô yœ†'85ê±íûÈï°7í :¸Ìt½R4FûKúb~´“(¢º5*¿©ýo™0à Óé^ÛK-—,ûL58Z¦Ã×£i2zþ:MÙÈÊéáÀ½Ã\pcškæüˆçäwH +‹TAõõL…¸ÿýÊûdFOgÃ7—ÔŒ&´å!0eÄ(g¤¶ÿ!¬ò¹¾îÄŸˆN=ÔŠ‡c¶©/b#ÀòX|™ C²Å}@ü-ÂóŒ[àC:{ÿá8€èQfoà@V°–¢Ï:)C©‘F¦ãÑ5ö;Ðúv4-ŸÔC´å½JÚ Ó9£!•ñÔ®N¯ñòNâCÍrzŽ„ö*ß#2ü¤Òo*Èjvðy´[¼ûûµ˜+¶5ûQnwI?#¾ÀßÇëÏ£@ÒÒÔÓ;d£1‰9¢(”*d”1d“ 0þ< ÅõMÿ†G½ –oG‘?¤°£OÕ å¢’qwÜòÀ¼Vëô)½§Îó=J4•/Ô^ùT»lÅ€þ>b@ßà uBÒœ¢õψ÷i»ì¦Ðs¹ÚÇ™q˜€Fw!rƆç”co9—<Ý$ã£ÒNÉð‘ëQê¦F± +IÑä©¥Ã%¨ñÖ"x¿ƒ% ŽÛÈS”ï§–l8§´½öA8a¡FÆü=‘ÓϦÅÕ(I ééqPc  jZÞÑÄë@½RJÓV?)‰SèRÎÔ$Yà·ó‘Åš˜æ!­yèIgo;|±XTɶ­zØ4€æm×ê[@nRa³?þxè÷ MæÕ’ Ç²y¿323?#Ž¥£ºßç{Ð7` -Aa¬Kw–æ¤"³ ~%r.ûGìö>¿žk5}1\³„–ÿìOæ‡×<ßt¸yì'½#V戃läëž|B +W,ä~BŸ+ßö±y¶“>ÁE£º7]y©;ÅÓ ‚nÈùñ¾ši"ç{ÎŽÃŽÞv#Ó L€óÃ?SWÒ³°»xûœß£Ž²DB¼پëõøMi3;ƒ8¢Òƒ@áíNFžÕcÿCÚ\ß"rÉîˆÀ1"ñþ<޶Ñ*€3•ŽÍJÇø©:_åtþâˆ7µ8e=¥oš?a9Œo»¢vˆä)`Œ!h¬Š3a®qb«cd\ËÈáù:“LX;¤ °ÓP±5¾?Çý“ ãÆçvŠ?Gœßá9{XÊľ¿ âТž¢É®˜÷dë$°ZÔóáþ0ªi&- \_G\]wòˆQ5?#’m4顤3´8F—I=ƒmo´þ@’Bµæâß#î¹­ÐzÿJa¿EèBN ±¯¤Â´VèmYIÍ8ÔñK…óK–¿õ.«Éš÷ªDñ{“µ]X{&J¬ü‰óÆíqfüÚ±O޾¯HŒÓŸ4Õ2ã©–jÿ:®›Eû­);o'œ·ü5¯¯'^~½•ÖÐÔã©n…?[ :4[vÄ—,ù¹Ý=½îÜt:v; +óÕ%Ý=BXVBCsÁŽè/…)¾G€£1±w>ÀÔ9ÓgT‹çäÄ4áJÆl€$”dù ®H¡ã°•&–ï_í5qÉaü‡¿rtEí°+úÀ|-Ëé‰Ô=5(ƒv +M«‚Ÿë^Ìã1“¼Ío‘G=ìã_O[e¾¶_óTyE™µæ7¦Ãé³Ðm$‰/¹S„ÇVî·€?½Ã4A!.süp˜]%;š¶ÉAãë83ñ¢hQ4é#â§=ñ#•Êæ +m•ÝÝü½õ#¨¡½G>stream +êY»YÓú¯Ï¨9Èø!ÖÜ–çJ9Öt1S¸ +¥Øá¸?}õ‹ø0¢™‚œêÃK(×ùs›dÈ%ÑéíïRÞä¾TĨˆ§äüáu1ÊÖ^Æb&=óq“éÜî]?õ'ÇñNîˆs”³M±iû²½GD“r³ ˜™ GéFæLœžµ§3_F…ÜÛöb /hSŒ”ˆ§G<þ½s‡‰µ;Ö^GYĤÎ|RgÚñWÑ[r‹JNò®Ó>]Š8û€äQ¼ñMŽC¶¡äaбJlîã­ûð±ît‚ù6PÙÔï‹EK/M#—¾bšá2{æzmÑÙ×÷~¥Rå©Ña€§vÍD©wº£®â±±`óù:Ðdÿs©Nïibk°_Ú#,>Õ&ú“Ä=³Ž&c‰±åAFb– +çÁ× ôú~$îÓ+¸¢¾¾×VP²Oñ+Â'ט]±#-ÛêÎôhîõ@‰¯®bÉLƒEQRÒ„`ФËô¸¶Ã1¨ÿq‡všà)ægî2ðHöBN…'(€NžIe£®L90s^·ZÒUHÖ_xvµCH5Ê¥õ ¯Ìý ÚÂå˜1ËÑkgo&ævß‹ý``1®ŒlôQqXu“âžg†©Áožò“0ÖJ‰¤1ÑKÛU%S >W5£7º¢W"f¦®SΎ¦qrÅ*ç…ºÆYv¢ *Α~›2‚Íi½ß5’e¸Ê_ðòtö¿GbqO¶=*BÓ§}§ÁWîfVÐF~ýºê÷)@¼KëÆŽ@ƒK¼;|¨{@A÷çY áºj |®Æî™rʵînš\~Æ,f1~Ê—qÛÉ®7‽@E²¸#,|çD±ñÔ-îÌ(ˆ˜/w“(vô¥¼åh(Ù8ïåŠÅ¯W†[†}Vúä1y!F ¡v ê~û="·æ{Úöqœ59ì0~§_…QÚþ*¨½¬Ï‘G }½¾ß‚¨MXwÑ0g}ÛUß–`b8šªØ‰P?×–ìÓ?#þT¸xþÂ5þ!H4”xl¨‘*g„ÿŠo:Û2 +^Ú¦¤À•lÏϢǂZ¢¼žÕW̓éîOêÙöÒ³-K¢Ï(,yfa¦ÌjñåõÐo-sR2ß®' 4ÆNòQD¯›<ÃÚA*¹F)ƒ"Çñ/Ä×áôÓ}ò ÔúĨBÉhúŽPf‚ˆˆ¹vÅu¿Îä>‰Ý£úið¥H"O××Çã @Ät';]òC*'Ïô(D†y[Ô\|q¬û…7…õú NqGêËÛ†H´ÕÌ‘þÎÌPs¶*ÿjä#Ÿ"Î;ŒÉ¶¯ÍY¿è3 +³dU]Nn[­Sh jf¼3{å+’²ê¥©8ö=âO•,©Þ­BÎ޳ cø˜ tãQ±Q9G€]"P¿G Ò=¾pß>kޢ˓ϡò".>3  ñÍ‹ì;â|¹ƒñãaþðµ’ÀWoÇ×þ8 +ª-²tXùf„È©³¸•˜Ù¸»L @4¾z]ë‘kýú|›˜(iõD!îKT¤Ÿˆ 9K„œA ¤1|Þ9“9̓î6”UCÔ÷Ö¸Û­Úíx+Fµ [WXÐã ÉRîQ+S#èón?ÕˆåsI§siz0ºå£ÐÑ\›œI¿„i#ãVsX2Y s¦¶¸­M/¿i'âÍ&å÷€ó®«5§4¥>‚ÔÊ$x HÉ…¹ª8lœ–fóÍf±WÁöÃy³F¤Ö(MN‡[)¾ïÇ™¡£Ì¤E€{\$)£H’P+óˆs¶t¤YηNÆñ LÞ.®a´máyG…ò&ëW¹š_Ú˜,ÉKX{k +'5é’·²ªÅ_Ÿ¡ÄÜU’ÑÒ’‰=2tÒF)I[‚€Ñí®G`_þ<Á;­Â“ñÒ÷çQ4¡n1¡>u{i9/“©€+Xï]ÓÎk½¸ªïQg¬ Ÿê´ ´ÎÒé*yOd—4ùºÆ¹hÖkÔp‰h_Hº®Ž¿ö&›÷CgˆgŸ¹6×ëÖJM\j‹RÒýöP˜]K÷×y4 hú5G8j2ZO·JéVXl¨õHóδæÎ<=ǰEÑÐįþ©ýŒjG±\(… !;£¿m>`‘WLDbf±Ë3œˆØÆ›Ø}|ÈóµâN,,‚t]_lG¨L°Ñć#’óñ‘¬ä…ýÉÅûá8û5¼k|¬ðü~B¨´œxÒÖ)^ç2û@Ëû‚ô»ðm*æóõïêûd˜¸sI—¿wð»/ÀËcÆúñ½\®8ˆð(«}±µ??Eôðbí šG”Ç]‰¬äމæÅý©,ˆ ¡ ÎõÞÀÚ³¤4¾N!šÝ|(×¶âž6Ò—#´ãr@{ï¯ýñ}SN£ú{brhåfQfŽ®p¬àöåOº&©tŸhQ¬/¡Rùt=÷‚~Gü³€¡‘CÑï¡ÐQÎF*Š\ä&ì\!8‡+æ{A¸Ô"T­ÆÂ$è®$bòØ(*¨2PZƒn²k¼><Ñ3Uᆮ¾ÔÇRêdoYrPÿ}Ͱc±B’|dÓÅè÷X$¤Áz !ݱ°¤ùg2WD)c­ÏÏ”f¥‹qP=þk{À꘳õ(tÅ!íù>"@·0¡ðJ4|hÀ)Ý­ç#Óål‘ïã›É<0ûz]‚‚cدËuF|G¯—]ó´YÀf©'˜O;(Ï1îgªI„!Ö¨Ïoå÷â¥àѼó?ÒÍ{ùkÂ¥Ñ!ˆ*7¸ ÑÜÿ\Qb€ˆŠ-ÙëDÈÛ<’À‹4½TD~…EÜP.s¢h#rpæ¶Aií½C–ÓRfÉ=žc…õ¿ÑI%õnÍ i,ÆÒ°rÏXtߊQÜr:ò¨+Ù +ÄQ†£0“F•ެëÙΉFüúAÆa’E*7"UañAõÃs¾¦ºûe!j{ü:Ê–D ÏD…:¸šÖAcêßJ„"9|•+Žˆ“Áðþwcò矼k8J +D…”ÉÎÛÐg]d‹}ôãÐUPÚHiJ$£FRü£Õ>ÚÝF)|Á­à‹E©À”¡¢Ä^¥ãËxjëà›…¥”œxq†+ø£ƒíŽÇæ§´ìõ¡“ºRƒÅ솱âþiO‹X½ÄÒØUgòß…‹©D»U@u->–ÃÓÖõ×hWVÄÁ¢t檽òÏ•‡?ÕàòÆ^| Óñ8Uð‡ý (áú52ö0ãõ[¥”¯e—ißÁ]¶ŠXÊÁ?"¡Ì§Ü7µW„2½ûoN%Ì–Ä‹‘ {J½‹È#8oÊŠ,1X§†H›¶4“7ì‹DºÎÖí~“Ö[£3—,½ÓŒ–ýt¦0;f:‚?pfµ¿ä!9Cjðz;O#°Mûñ™B.´~9!©ÌϚμîX˜Òéhµ€.¼¡ŠË̪¥<Á¡¡½NI~½Óòbæ{Øâ?í›?™¹4½Þ¿nMà^` ÄNQ…0ÞÞN1´`xío‡ð!È‘yØ,‡ï/|†»à…êNÌbp0eÒûªFˆ +òYFÐ(fì$äéF´âãqè;ÉyPÄsüó¾Ê AÄåv¹Í( ƒ¦õ=g¢l"bßv#Èî©*fŽ!¦ï;$æ\÷׉ž N¬€¼0YÆv”ÙÑA‡§ç!¨ în®p˜cFÂ$s·“Œøø}¹A Š0´+Ðdêï;Íl@Ï)/óÎ ü‹†mó”Ïá-“šf]ƒñê.K5^ÝJíÔ½ütöÊ‚ª3O £ÝÙëÙŽ3qÓ8ùJ.ÔtwÁ¨©ùÔ]`mQ9Ÿ[ƒl½Æ/¹Øãí3ݯ9+t]Ø- jÊ'ÇþÁj~­pÄUŒ`,Eí%n«åöº´%>›&/·ÌiØq‘ò‡õpàÔD¶¨œÈ›ÉÛÿ¦‡ý||ŸÁ×hO7®©0’§â¼n€¹9XF#üâ:ÜòÓn†sWÎäoÝïþ|YxØš‰ì5T®²ß‡u_–+Ç ®äÖÞÛöêc\y"¸µ°øêí'¨Œ 3 ½¹äÐ +}uòRàÐÌ>J77–¼ŽÆ»š¾‡úã{ßÏò—Äñ¡]ˆ¸Xãðo§W4Wá¾6B¾Vÿ an14Ö{;cÞ4u¸uCíEKæÕ'+j_^4æ=#ynç]](†©•¹•š;YúÞñ§jùw*’>K{ó¾—ÔÜûî¿ÌÈ>T¡¼ûFß«ˆó´AÁfÜ•Φ÷.Øá>ªÃ"¯ÿ*RѾ+{©xBÔBÏ¢Nfû¹‰º_L~ëE…íd @ƒŸé!èa~¶h@°tOU<aФ0ý$Äù(à4¼TŽ`h½gÊöL¤qMm'¯:S»`æ»Àƒƒþ:äŽæL÷K£³‹‚7bͯY›ýÜÁT‡Šrn„+ BDçMmzQÂdx&ÿ#9~¿TÑÈ•Â2v2~\µtŒžù¾¶NÕ}¼·b¢áÎäe‹„œ_E;šñ_%<°7Å›Êí;ç*¹ù*þ? Auñ¯l¼ü$Õ7ô‰"T<¿È³½ãáÈ¢@x8SØ9ݡĜ1ùÉ™ ÄäkhwK±*ÈN}ÊÇ/ªÿ ‹ì,[|¯±)_ð¼z›*Xî,{½p¹º*ÂCJö®%²Ç]傞†EãfŒ°|Õ¦¤ý·¿ü~üþW|'Å=>ÃêÍþ‚Õ´ŽþsE]RI«KþÛçÑWÁô–¢¡‡;ÀgŽxG,¥)4 ƒk$75Àîzƒ…bø§:SZG[¨ó\¢È r*†a,„àÒS}õ@¬œWÛÛ·’aâ½ÐF[bc 4¶ª }:NÙÁn3IfåÕDŒ‚ó·À§ˆž„_8ûWqö_%¯Y€­iÔ:&¢Q‰â4•íkìM{?†w²¢'oZ=ÿØ4óÕ#ùê}¼:F¾¨bí¨ËoA-=øß‚Ý6Px‰M„꼈Ùh¨-ƒsˆVƵøe<ç¯Q² q›ù:Šnbá2fNt¯ßS‹ßÓÙòKL&Š„”Ù‚èhì;q·_ jX¦ÝÀ¹ +„¶kÀXrØ´ïiÚ“…‚†cr‰æl”ýË:•ö_œ›Æëb Ü#ͱ—»é+h×}/lÇU=ÛÌh޼ì”4¼î ·p¼·PÝëšõ\žÚîÔhÚ¨,[áÅšïx%‚x¸ƒG±Œ¶ï2™=Hô’@{°„šÃªŽ˜ÃzÞ3‘{ƒ‹x®¸3£9Ò¹ pˆËÛ©>ÏU6WmÅæjauM1;3ªneC•n¾':t*žà ¤±Ø"¡%Ö"@o;´ëÛ]Žà1Îq:ÉOJßCN7juçsÿ>Úêlò‰R ää¥éþ¹è:Ž£ªk{;³ã‘ãó3M  yZ8¾È0Ê¢°Nvû–B˜5BX —;x§úú¢%VÁ!9먟E@§³¿kÔþñªv² ÐDÝK'}!}:w!¸6‹Ä#T™"߈™âÅÎ8î`ÀЛ/`f*nÍOyOŽ*7ót{2íØéœ>¨O¡©ho2âá&͸¾éÇ•ô·oŒä±lø¨Í< ê½àwL‡•EÜÌ‘Í1}ÝÉêôÂ`ú)ß{aúË=ŸñÒ˜AqÑ47y5èµ£™´^i"VVlÊ!¥¿2lé MÐ!…š¼Õ@$]Žè˜•Ô«ìãL<òŽC¢|MÒ<=’Kî¿ûkN©0hèu‡ âͳéKKÝX@µ&ù¡¶±ãM,´–'`íh¯ö´ »Dƒ©$ƒt…‰*è¡Ö´A^žýdâD¦”Ƹ•r14¼W$ªêÈý¶_òiBód¨W¥9Êc*¹ £À|šøüº5ΚµbePwóU»òºËßsÅó)í£ùkÖ4ˆ˜âÉ5-‚A·tð‰ hò'4&Š:´KXQæOÆP¦N°—AÙÈgUÖ…ÔFù%x>Â÷ïdÌIµÚ<î”i‚€( TÙdP.lª|AÕþY0¨7ÝìzI}{„R6>ŨTœŒ “RŸ•R÷»x¥wx¥ýewî…ôbfžP”!é]…ü,Ä&£™`ì,”ˆà ×»ÌÍmÙ?Ø_þèýérU®é>xvþt›jao1pâÅ· “!½jÑÔ oFo¹®[}µZ੺wŸû˜wzsêïàk|¥yfM °?ì3ÏÛþ÷u¤鼌ö'P%! /d•^Åá‚b3?\>qÆ7ð­œ1Duš;ì`x$û ;Y¡³;Z’>Áƒ\!}Bb>÷ökõj ,+[Œ¨²7ô0¦­ŽüVñUÈM+6<Ó1õò ÿÅÆ·£–>¥«ä¥XoÍfÔxî³"d¡Ð÷»+‚öÇóëLä^,5˜[uë$è •öÍ!8v\e"¡4÷éX¿ú;!€Œ©hàSù²ìÈ_'¢QOch:ûäzç8âÅQÕ³tz”}r¸-Äs?¢>v÷}wšïr‡YÍ„.N6ëaºÊS稣¼Îh‹ßZu<…k‡ÎŠJL¾hØSµ&¨Í€ˆ‚É +©Fðv£~s¢¤ß^(…7£Â»àE¤´{Š÷Oa9˜Lø‘]à¦À¾H$À~ð¾Îx^¨±+½³å¯áRà$%ª@î]¢®ø'¬:Ð'iV¾gÒ& |ß8n3_µp—™±—Ñ{‹¬Ä7Z£tÒUØŸ±ëêM}[…“ëÃÂ[ ÜÙ‘óµÊh!ÇfyèŠzòï‚^Ñ=Eó•Oó¥!óÕ´‹¡éõKÜ=¦ás²ËÙq9s wZ°ÁG ˜ùÄs•G˜á ‰±€yÆ‘æ’O1Mì¬7‡Òç”iía¯8éÔ\?ÁAé÷òì]——}ÐÈåyé6‹µ!ißñŠ[a¬ü›„CÛc™‡¶ÇØ€Qd=›º@DßãSÇÜ•`¨³W|è†Æ‡M‘Ö{I=€Acgtoö`KŒðŸJòÏ{‰ºë¼†|±§ „ +%¯Ab ™Ý+àâ[:&W!k?VËm¢ðûöO:2Åb,”y »XAä½¼eœD)/C[MñÊUVû·ï›wyœhíMåìâæ ø Rm(…¾˜*$€¶!_L?f‘Ùï/«Âèèhø¸ˆ,Ð;$<3{];‚W0(C5Ýpr¢wƒv» »Ù¹ÂzVôñŒ?7û§%Ë’!òXZ„¦å +×ÎyD~öyYâŒLYƘä±AC¥—C¡ +À½0žØl‹7~‚É;)¤É0 0f‰Q¼¢E—þ¢é>Ý/×´ïîãíèkþè™BÿœººwD­vÐ%$E$½Qö®ULï˾Ì~çŽ÷R¡ŒÍh†õ½s(ŠÑ"ÁƼeépPÜx¤Fæxʲs1c˜jñ£(ß΂¾b8»^=Nª"Á[ÃB ¾˜Pït(G&V`Qüž*õgb…oe,Ñ‘Ÿ¨›ó¼^ô™òîܤ;qŒ…É‹j' ;2ÑÐûT±Dôy6t #¯~w >Œ02Ù‘ùôÎvÎ"0t c¨µBЗ×™°ÿ|tÜŸ»=_§ÉFB¹r÷âx_ÅñîÁÈ«ÿ ƒô,€ä_ !@H2 O V"(¿ëD#:;'òÊÝ'{ý{¸Ð,öÏFOšÞÁ®EdVÝ=®œx©/q zÒPßÈÜb€Daè§K p˜õ_5̽Áñç¡Ñ*¡—¤ô]ÉYU÷É›ÝC¦à½qNÃB0ß2s§OÇÀ‘®~’Mø½ôdiÑ“eU½oЃYŸÏÌŒ×FG’€§HŒ¸ž4­‹û.~z½úÖ“ èÙl¥þ®È D Hq6¥ˆn‰PG6a$š›³ô;È{ wëK/p6ý•)sLtgL$€çzÒ?@1\9Ž¥$ÓvPË€¨Á!À g`lR²ùù­ˆÛ0ÖU}Rl@Õ\Ñ‚ò§,½T\ºW²ÝKøŸ¸Šù“@Øâf=̥ФÐx¾ÁÞ_l >˜B/çéGúÞ<¸E6=ª“¼R è •‘¶8£W.½ñèºé&@ç†õ¨ŠÓ[ec[¨±³Pãæ5‹À¾ý³tDȬ·bZs¦'tƒ)›)Þ¡N€ö—ro°×´¥J U—¶2£èɶw3úª®€y=HÑ ù"-8-/®‘,·ƒ­_¯œkqÚQ%ÙU*¨ Ì—»Tƒõ¼½ÙBèKuÅ|‹ ;sJ ü¦õòu&QŸûL±ä|Ò]ܥܢ™Øgù^Ð$®ªæñ" H‘v`Ö¯ç-4ÏÒïŸfdwü”«°%ÈãH)->ù<Ï/K@úæþ BWë%š¦„éB©×Xá[èù%¬ñÄ!Ê9Â*Ëh¼íçûxo +rÂû÷"p¶ø%káñÞº“lXpÅŸò²¥,`?oþàà™AX‹»°Lª3¹±‚2FxKžÿ]µE&EäïÍYB“ç®'å¨/W›æµÛËÄ÷ø6O•´/³3m)›ŽhÚ[BÂâ:lzÔb³#ðä6¢¾FY‰iw§k¯?ÙcSg¢ñˆŠ¨~X8ˆoúž¼k dhq'ŸµIÓ»ù’Ö©ÃÖ‰šÀíYBĈl÷P1âV¾[iu©-È7eZpå^2ë è¸óŒ EC˜s!ð Àz‚! H * Å*ßDKQk‹W€t•ÃÒF#Ôv†Tl¬*Q°Ê ±ÿQ¹ßÆü—ïXB#ø=ÙQ–à›í…¨y@ùù½6A]s‰BÓÎ(f¢öÝûwÿ*Ü6rŒän?:0Mcé‹Ð+òáùË]wGP~ÅÌ!œ·ƒ†‚/&ûßÀ{ïè°ØW!|;hküìö”L´LÉÑrÏoã(œµRúsþ· €aI!²†týèdß³}üpx!W¸Úó¦>ò¥[„½¼xQŽlê6ÞHÓÕÂ×Ê#pÿGÅc”XOµ!÷¢ÝƒþL•K–È™rÒ‡TF¿ÔUR²íX”Q~–^‚’ž.ó°‚Ì\!¬„‚·ÚbEe( #0[‰#„VÀ¾÷ßû¡¿Ì¸™¾çàD¸"'HÏwÖuÑè%þ§[щæq,‚ HPßÿ¾jX©†'’÷¾žâDh‹:$k2E™~ôÌö-¿t÷½^$¯*˜÷‘?èÖu*UütN“ú-#‚{µ›¬0’V8Œü®ý ¸é±B\Š?÷ªçþ~Ç«ðÁÆwëÉÓÐŒ#*]&ÊmÅÉFíö6 ™¿ÄR´ã7*YŽàÝpoá×”MöÒrÝk²í¢}ŽëÐìs/$F5&¨5 Åü-Çi™…Á +Ôòë/"ðþšx¿óOÚÏÿ ô|Ýóß|Üåëí7*Þ5ÉÔÈiZìU~׬ecaωf¡ˆçoQÒñ\ïØ”‘A¬âC.ß±õƒ?iߢMŸ«Ü=bQHƤŽOƒ}>²$˜ )íuÛ¾(ÜÈU]ÙÀ¾T0vT·•<ÍÜFÑt'%]§ ¡fÊÿDM¥]QùiFÞeçÀ1Ž#³áÆò3¾Îäds±JOXw Ü_¯€ñ`«dì +X̆³yœ4ä#0}·I„þ6-Χ©èÊœ±!=£¬ñãV…m&ƒO skZF—êÛ5C08Ü Ë_ÖÀ6×ýÊh?)…oøFA„¸â‹¤0 |Ç`ß½¥iH¹ˆs[¤çœ‰–/ðÁ£I[ ØB+µIàT±™YÄ>Á »h Œ|Á‘«„6¾‡ï¦ËL‚é®L[Ág]Ó3ÙÒ‰…}<¨Z†Õî5Ø*íMqÉÓæ¶éýa¶Ð’”3xdáûaltb½ÙƒZe©$ñuïä3‚5?CB8¢:=9í:óדøÕí¸Öä&.#(ÊLtÀ;Ôð„;ðëûÓÊã5–¥ƒoWÄT|ÿŽÇ 9”‰8%&ÜoFÜþ´]@ë8ɉà3p¢wT7x@éË>‹?W«ƒ\tƒ8NÚx9Ÿ¦‰\Û>~ø€c¹FÒŽ.ÐÛQgiÀ³ìBeˆ‡y3 0GŽÓÄ8áàxœ'j. ¦9½"Šâ2N‡>>®è‰î¯0a¼Çq˜†H éògÄêGÔ ðUß›]ÊÀÿ‡9:N%#ä?À€Ð2úß"‰.sÙ~øÁïõ +èxÈíLö™µs/ï­[ê)´JóßÎÖ~½ï«FÁý§¯}ÌÒ¸*mˆ‹»s/:ߪ”_ +ßóù/ìoošã}“t;j÷:iZÁ»]Þ‹t—Î(‰ˆ?®B‰²^ìÚ—.|trô^úrܢУÝW?deúÊð<ò2/=zØÔ5$ +pòŒ¦sr£j"¥è{DúPáÞ|hhƒjÙ—ï™Î·Úü#ŽÊ Ðg+TH8E;q9_}MÙ%ñ3p-ì¶£NGîPX¦ÜÂSB™“Ròµ¿Š ÿlöÏ&œEù—‘æ6Ølg ÐblˆÕÄš ÍJGçÅ¥ÈH‰r=‹na”ožpû’–Kò;÷wì"%&hD·šf×-AºGzÀG÷ܪ™ÎÆwDN7ø¥4¿À=ͼ>„ÅÀ“nAL—þÓg}ÀD]nWd想bL{ÖŸ":®ûåоê«S#…Ü®S7· €# 0]'Oô{hÜ5²ÑËlêá¬îåBªÚGDZLgCÛ!ìëã0hG©Ê.ã Ù7¡“a!½Êèeì›64.63ÌÄäâ¥iy¦‰p0h8#C¯­›¾UlÊ\'Ž¥'Â-þpn™3E‘‡—žö.¼qD´¯nîY­BÄ„û«‹£ÌL÷Upþa…µ)ô†=ÎP}‡mͰètBr÷íÂwÐÄy¾l®fV%Æ6P™Bd‡„#뚦Ž2[#ÒÿÀ€„Ýíz“Î -[=†M­@5=hðT_{ªWÇz­šr ²hÊ9„B1E›C1øweZ5ö«>oÿŒË;Ñùˆ*žÝ61dXø)'©+|8OS\1›w.ÀUÎψ?Õ@Dõ™½ju™>SÌ:úïBº˜hm쮨£ûópT'øˆ‚ÁíŒá>pÁöÒk~¦!Ì(c×,ÌË”H9á]›i”âràBÙøžhE×Büõ$꾺à—Á®hD†iû®s3ô=U1ٷΈ\ÕŠæŠx¢‚{\Èþ«S!­Ey„ü=µŽ:Ó!8l0¢l*Mü*ít ñá7ýD¬ç¹ÕÓzQfraÃ'³ ¹jr¸/]5[#yŸO#âˆbœžîCïjð= +þœøŸNß ×~Ú×ò¬p> iyi÷£x¶Ïσ\V×ës?ü5˜[W¢fo†¿>>oKDî—Èßg5uMšªCã­<3:%Gž+Ú®²wÚ+p¾J„ëš_þ¿gXgh:/ ÀȽ.]oÀ,Q@2TêþxÐ_IÏŒí'ZÖ2èÛCQg¢"Þ'kiŸ³/ßú)ж„œN‚¨ß•ê #/røcÁˆ±ïðÕ Ej_‘×-mþN¢ÿ“‚BŸŠômœyÔ{{„}’©øÏôÓùðgj\Àç0þ¿ÆìŽiûeífT¬ZÐùTg¨…Œ¼#v¹²AIF„E&®>Ë×ÔØÖ3~~¡éúk ¯¥àÅ Z©hÎQˆP=cÂö„~OÕ¥ÃÇ|¡`ß‘¬8íÃ/sx¢Ö]QÒÀŸ{ÿ€Bâ‹R3’{O¡ÎŸg¹‚d^y¯Ï(R½ˆ=bRš•ÍÖc«qWвe}ÛçÎÉÔ™ÀXº?Ÿž® ”W0‘êTgô2‚$O»ƒêq™ç7¿ìø?xy»P¨ÁÉ™¾EŽùIû-PÊe–Kºpv7«¥ƒF‚”h÷‘Þt”.ô‚ûñ¾¡1rCÕìy~8Îz¢`{ÊÙÉŽ¡VHÂñS„ET‹MÍ}¶_Õ'´Mï]Q¢)¶v!q¿móYmó”6Jv‚õ¾™„ãxŠðOw¢öCD®Ý ë\½Ü>ŽójwB¤=ǬŒK߉½uõÈw‡²_ª©KU‹»GCÇ{þòq±fêåBIªIâ67êõÁ <ØSÔÔ‘¾ òŸ8{ÆñcÆñãøÚhŽ¸Ó €¯pñÄ5õs‘qˆnŒE¦”!}ò LˇhÜœ)vakâ«´8"mŒb¾÷âhQÍ%æa¯€æx‡H£÷ ¸UÑÂ!èPPõ¹…vqVÄ}~%*â´@'­úˆR´!é%WêR¢[ý¯¶ÂÓTã#¢ŠÔÀ ¿ÿŒ)¸Ï3}“An ˆ¥I„Y,*½ü´Àù%[&Ò —Š«;;û’לY×ùPç·ÓqdT2¢†>¾ät‡Æl(k”Ž[ ¯Š ê%æ«™b(2™rU±ÅÞxéÕß™oþ +®*g²¯‹ cúíÕßð¦ÜaKd'íÍ3¤eRqÀ,£1˜¼ÞþGýÖR!ЖÑfAÏ *ÛýCÄœ¢£µÞêç#JEÐEÐVmø‚ ¬õë';žs±üÉ„ÇÇ—ëHu­¤8Avax‘¯)؉PŒÇ™¢»:k|݈0¦û–Ñõ{-Ãú~à÷?t(´ ™¬¶gñ%YæÏ+õ'žã”;Ÿz§x—­} …ë‡Ã<÷KË…Ñ1SÎÒc¢œe•üŒøqüņ—” :*~»/¯TæÆYØò¸ÅÑ·]=&µ11ÞÏ(šßk˜‘æl…Lnéßôp^=bè‡.Äû§àÏz2_?cÿ|LéXŠ:ÆœQÒ)‚×½ÿÁåžÞï>VXg´f •WDò ¢ˆ¬N’«÷ÇŸ÷+m$ž@ç­}PóÅ ¡ëì(ƒqŠ!9Å£kã±Æë«dT¯¨úy!2郞±áñvÍpo}*bU„^!Gñ ºŽ>A.שOßîYcèN3=ž9'8Î’5ô1mNciK’3ÿÎìÿzá³Dè*Œ×ÆüeÜ$v³¡5S¶šÏë¹Ø¼O°L¥ö)ÁG#nú~Èbˆ·5Z£x[ßïñ_Áo¦”oQ¤×ß„K•·Çœ]üC²Yu­÷³s*šÕ|Öô5JðÍ*RåÜuÐÅwÆŠΦfGMCa¢â@´#(vê8!µ_&7ÌdÖ õ%ßãº2ˆ‰]ñRcøDtJ‹‘"”u"1`TëqŬÀeìÊe·z;¹×›ÎãWŸ±„<µÐ@ôÑÙ¢ OGzØŽI’mÌ$Ã+Ûyõh}ÔõŽ;'¢$¸sJLÝÎÍW©~Ú·ôü±¿³cW×ר戃Q*ÑU½ÔVÜ·H®wÆè +î‘}û •ßT[Ü%”`!ò']Š Ã+Ÿ†OîC·Q I4à˜Ìô2Þ¡g*FšôJÑ#†Û­(&lJde´¨Ì6ÝßûxÍ:zË$±]‘å6 +Qb²!â½ÅÁyGª0¦,ì +ä™~Ù‹½-Gi¯Ns”ø?ßhæ|G:Æ ¹ï;G/ioD¢O#|èڥ콑¯³¾^ü3llÌÅ5&/(`òµ=ðÍûpÞòƒUî[ §9#Š^ Æ+#²O-ÿ¾(X;Ja8af™«pt’Eq!R祒~¤ò +5Ì‚ù‹âm;ì¸4íæ«#Ùª½'²“〉åLK¶êcÅ›3ÑäæL± +±¡e…Û¬ïb‡ šëÌ™‚³U·ª}ÝÉ1û_êë°â±î¥wh¥Éóǵm{ò0Ë´V€D„Ì€Îüi馀ÏÕ×øöã8Zí2›¨Û­ÜzC@¯‡¦¾žjQ’·©o=ß÷¨ Õ7iPS¯¯¿AHöw‘½=!ê¦Èý÷œTš}8.ãKPø5¯ô£0&ý¦N£Ûi5[ áìk›^Pe]öö¯­¼Ž§<2|{¥n>þ\ëÍÈΙ:ùdôö‡ît¥:õâõ‡Gh…H£ÂØ~™ÝX@2¬"pRÓr×]«¦\IBik¸Ìù'åÃÉRµGnÇ;m +Lv÷æ“¶!§´ÍúÓ/ÞzRÿ‡onÕÄÑÞˆa·YØUÈMZ«Žâ‰85w\‡fC‘Ípî˜__×]ædMô—Y™»XUê-º®ÁyxŠ+ú-v<¾«ûäýñç8Ï€>ß—kê² âe +÷uŒ"¼3÷q¶W"æ{”¨{Œ…õèS_´t5ÇìoTªy|pKd܋݋©ÁeBÈË^oмߣüIdÒ ªÆ“[´RË8שgF‘š%EEê5^Ù§Y ¬½—H„ZÅcéG°"¨*¶ô}‚Ÿö³ñý1ïx Ѷ~‘ˉ¢ì$jEL4ŠnÉ ¨E_—L4ð,ûÅÒèÖ‹WpÚzaq¯–ÚþE/{¯ÅØqõu¼ýå…wºe7s¯ÓÍà T}Œ; +ô¢è ©,®îè°•²ð_Ç¿«ÓI![Ìž?æÑ~lăæ„ÏRq×™ABB—Kex”¨qC‚m|½Ž‘>ÝQ§j <4®+'ÙÝÊ ¥àß#Ä"Ž¡ëoÞèoJk¢u7uX…m±lC¹éa‚.‚60Ý~ZÔ¤”ñ‘]ä*Ѧ(üpD}è"êC·•<ç’Д$#Ùû~n^„oQâÙ úéÑðyoqþ…A§»ÊE]@±8|øZBäïÞX¹]?&+sS9§- :A…ÈGN]?‡Î ¹Úóôjï{V'@jåCº¼’ñ ©&æF -Û"/±“ú,9®YÊRpÄˆŽ²1éOûZšF¦0­feDiÀi“÷Îq¶ÛY(P#¤ïímáhù.Z 4¾«:ù˜vû_o°§ÎÄ8moÞðêfì¾`NŸG7ßlÂÏÏT0Ô þÆÓóÝ%fÒd£žVCó+CsžYÇ KMCó;Þ“ˆFÓ] ä°úîψ΢¤P«è¤˜ó´7^v=]ã—*o70wH!i€…&´+Péf j/ ‘¥±@Çu ‚|¯t– «ð}Dâ[%]OÍ}¯xQ„ •ÿ/A«`•Ó¦ÈD|=¬{sø‹÷ºõ޳J É—µÆ÷a‹ög@{ù¬ÔÕï­ø:¢«Œ; è˜U:Sð¦×*>»"˜BÝ+ùAÏ” =Ýp¡N­³Ö.æ[R?é! „2ŸQb’wí®mÉų¤çáª/QˆÏPÞµâ#šÖT¥ÌP¬ýå –Ëñ($ÓgËŸ/à2«˜Nö0¸?E$¶êë½Oì¹5hkø‚IôUk¹|ç +’ÔV[‰‡øm¥è¨ªC_8Ò?šå^[»º‹Žrc¿ ÕRбìyFärÍÂË.úà×OÇéE>üÿY{»{’+?û +Þ{¨Ã±Úñ‘‡vcÌ€ŒÍ{bû¨š1 X#1–|÷ŽçY»ºk—ÔÄ þ•kgæÎ±b­ßE}j¤H²5”vȦ½ñ08?.Dß+sÑ¢NøbèEi“(úë¿9÷óÄìoÛhõ­¨ä€3°Ö³x§Éëè 4º—¹¿GàÂ1¥½?”~V3úEÔBÈk‰u¾?±'År€ÙU‘‚hš‹EÎ3lsòøÜþ%dµÃ=•–*|ÆãDq§k0ʉP¿ +|öx_[#3ýµ§*½[ %!søç•c"jG€D¨)óY,GzßÉï˱*èaU0¯\èѾÚ_'ë¶Sr`Ë襩¤†9£F¶U½œ0?ô¥Æý^èìª@¿²·2.^s¿ +i†œÝýÖâ„%MUtMs¨ôC4k$ã›ü¢ÈQ‘@.ºˆ úB¿¦80uÒö; RP-wiG{#0]žê¾² «„¼{~¸ˆ¦rtÊÂë›óPê–/MB¬ð85·úyÝA{ذ¡8ï=Èïò<ˆ&³kª±‚ ‘ÿSfq¯YûA ‰ŽaïšÃa S“Ð’I¥ïÇžSä 9„“«G¾ß-±½ 1?ʵ›ÊVü:ìîo ò“tÿg‰÷åÉVõýç”zÿÇ?ìÿ1>þîß|ü÷ÿöç/–?þÝøÃþ×Çßýû¿ÿ¯¿ýÓŸþñ_þù§¿ÿß?ýçßþÓ?ÿôãþøúÃÿüé?þÃ?ýé?ýËþÏqÑçuæ_áýÿþ{¦}“cÿgÅÍ~£0¼”ðo®ŠBm¿ƒô Þª‹¦–~ ¸9/6È(‰hËò=öŸOG¨Pµ«ö´ÞP éLŒ jØ?> eM§˜ÁÊS ê–bðÓP^¿Þ³ÚÔ¼/‡Ëä'ÚébDÖìÕí?©5]ª®¬Æ“ âAíKù°¿œqöP®|c|RWü½&E¾šêvˆjh?òUî ÖÒ´g&€—c>„œÅ—( º`u5GöëJtïõl6ϳ?JyÁn< +íaFݽÊ(÷Jh¯D·„+­ÓüÉÀÛ(94²Šs<² aFh‰- +§:áÀ[ÜyM†ztp§¡¥÷o"\ÅÀ@ª{òåà@O_}…’±ÅÜýÐį́aZÿÝ?íõ;¢3K“ƒƒƒžFWKˆ¹qçï.J,òûwˆÇ3ø;ÍZþÞ–îÕâ×ÎAܯ)û¬z€Övyûáï0ü5Þ°+Ò‹° …ÄqÚëJ¥†€„/N†¼çØ!.yêðtÛª“u¦OÍtÎåcâ)‘Â@4<ŽúýgÈ!,ðÂw8§»ËAåRÇ B¯9|¯ŠÕfêà§Ú<0Ókq0œÐP²Ú©Ò ¾ŠDáWÆŠ¶<[U\KV´¯ Îâ½u:UÉ7šaǧŽ7<÷0oš§Mˆ¯Øžª_d«" ^câðt¯ƒOÈ”6»> …7'Eœ(ݧ¦ãÖÔåû›¾Šã•QÞ²Ôx MÔ`röÏ¿£+©Ù,$Þƒòý<Ÿ†òü~àÞÑQLDrÓw¯ õã! Í!ÕT1ÒiYŽ1µm#jÆç‡Øƒa¿%†å›_H}—'\íâÑá—qȯYF)¶PE!g¿C”Ô÷. s‹Œtlá•J@L¢Š5qt…)e]Uõ¤Çè?šøªu^©¨,€QºÃbĺ±ßÆ½ÓØS.ˆ 4ú@¿t²ÏP-)ì‹CßA¯ñ¤i¿#¾(±ë VUX"ª l”^Œ ¶ I…i[qÏÖóüâÝ/@º3Mj–ZD€[mÄþ*Qè¡?cÆ!øiqÖÔ©­žgÑIÙ"rjÏŽ6¿)ñÅ€Š5íA®ûR¨ÀÚôUûÈúî) \8‰5Ôr7Ïçã×Wë› kbÆBºw{UbÔã¤Mòž‚÷C‘D‹`G÷å+±v>G¯§}Ež6[¥ ·ß˜>b¹•¸Š?ÐòK(4ËD‘‘e2BžYyQäWAƒFmqã: 4´TTÞØ0 .AòsÌo&ÈDt–<ÞlóšIânK¬þtV0OÒ¸}WažãJXñ00º‰@y…Þ#ÈÁˆè(»›c ó¼#Pæ?WÚObÉÃÜ_ h¦ŒûÈx6°Ý«¦ã˜ŒÕ+ŽÉ RdV»)„wÑî…U¨=TK÷:ÊxR|Þ/y4rÍD÷ûŒLt:Ÿ^“šO]2­í +…žÈíW¿áÄñYÁz™ÔާN× 3ã§R×Qú#ªËñ÷'Ö-27ÿœu”NÓ¦îÝš,Ëeþ<{ +ì)^ˆ¢.夼z BH¥¾G4¬rW“×G)¾GÒ×8uwÁH¦ùc¨™{W£Çëe +ŠÞÇtŠÅÅÅ陂Ìm;c‹ùM„uµùú!~yõ•$›É• Û-žAªB­ +ø+ª9èY—çUa/ß×7N‹Šƒ­e·Ùïç™$}!/¤BÓßÉ éÙÞ‹™Ï­)Þî Xȉ;[P…Ó>¹¤"êØ‚³ÅESÌÍKCá2¼ÄÅVÚol’L^‘.J¾GDÙ^Må—SyâMñ›S5ëaçLîmj*󛈯0Ï;º~¥äIø¤N¥ÈPPªµèœ D"4e]ªK¬#KGÑÄF‹ŽÙ[€ß­ôù{ VßϲÓû*¦[Zë´´U,­“ûx  E£ï1†³{x/áû„7Ù¶FýŒÁ˜‘ôJa$M%€¤é#,Fs¸£m°Íߣ ®ß7§YŠÇ/ª,®z2g…©'¬:™“;®)= чçÍ8š†F1 •FÈ/D+¿†«²IÉé +;ttÑÅc]äÒ0eÑÒ‘= ³Š”ã½Ð^²Øw„áŸQ¢º+š±ÝÓ”.0›Ðèµ´J”¸Ð~ 8Ç<ç+EUCn%®Ô@U…çm‰ %³âTÊ}!Á^nÿgù¥qOS¾r¿­1êxF¾íe¾A íÆ¶í=H)o@Pâ¹”cÆŠÐVêßE¤0AD±Îëúô ”1}L1íFbbíŒ/‰êü£Áöx¾GµØ³Ûå%,oçÀã¶’f3ÇǸ¹†ìŸÛ·3$­ q~’·(ä/Å=íõŒ¸ÛÇúN…«öÖêžx¨3eä‹Ï³‘÷€û†ºÓ|ûtWpbÌ0­áÒMùæÏì|Š,Œ(ªDÕíkT:'(g KãŒ9öôÓEEAôÈ–ª‰Èj|ç{D<§Œ®Ad†ƒï7ç!Iªs x'#ë'#Õc¯†!Ý${ÂûøRÂ98vȨÂuyPøbOeK3•ó …újä½]µøýó¦sj<‚$ÎâbǼ“QÑ?"Ž1å/!˜¹âZ¶³‡ô¸E«†n +ßf2{Ï ÈÛ¢ø_ÍÅb2bûKÌ%š+tès$b‹|…ÈHŽ›Ê`MI쿈t¢ñÔÌ ‰÷ñï }¦ì§WÄŒNîVÿ2"’‡ÉÃeˆ¿GµÐ|ë¸ØŽÈè@Bšî5ÎÚ{(Ôq”1†é§+1€™ÐìÔ¦cýÒI'?£÷èŒ>¶ ¥SÓ¡÷ìž(#B©wlõ|[ iÏ';­bø^_pþ'ª;¿ÎScB¤öœ§OÍÂ7¬5Ec˺? +Ocß?\ +#(u숗“à_÷#=¥5¡ƒ.Q8H€æe^ê!h,àQ€¸Çýïi›äkÄïn?ª(µl[%o穘ìì”ÖŒ.€(bÉBà²}ñÝú÷¤Ì?Jº¯ ²СÏÍôÜæ1´Äg‰é¸i7VöÍv,´´Uã9£÷EwËgGk<ÊÜ{à"²7öŒÖ¨}zŸÐ066 I’[ú'Âi­.à+›Náø"à5 +:5êé{h@q‘}€˶ñðËJá¼ØÊÔŠjà%ýóS0?'ªå¶Ý‚®æ\ÈHvÒú  ¦}êDüÍ÷ο©È¥xlå«Þy; `í 0•MïéjH@”°EoÙ§À§töö@pß*ŠR€§›D +W +EÞ<]ãÚ#ädÞáþ»³\H£QQDªsñïª]›~ñx×sz®ðÊtéÃNgP\¸ý0Â…|Ö¢CÂþÚKh«³3—Ïjó^ëAŠ¥û 3 VªTþ}èØ£ †rÀ•ÚðÔ§q]IÂán>kÊ Vê_þ9ÅŸCû({2Û®tX†H·È…­«РÕG²{QŠqûá²}P¿ 0}Ë:G"/Ú“jÕ×ýÖšŠcÀY\Dï=!*ZÄœÀp£ ™JHH1±¸|XD–Út˜H¯ƒ“‡ áà ¼b{FTÓqX¢Ñ’© ¤@;ôËwz³(’E•FZ´ŸŽ¾§Å`4±{H€1,ÊQrš`zä‡ÚnLØ`”UF„€.DjO6ã¦ÄXÆîY…({;D…T†ÓÛµ«•´?Jž’$Ä–ͬ¨/ò~q’ì°®>;á¶×•:M3˜Ëx‰Äýd?>®ñ=Í/Y= :Z?JžìIR1]ÝóŸ1g°üƒ•ÞÐ_á,˜óäã´”IŽRNao‚Žd8&& F<(X5 Εì˜tìÝgÑpÁ(6ˆFó¿4Õ•û.ĬŠ2¿? ÔôæÃlÉ™‡y +F§[¶nþìèsÅÑvF7OQðu°?aQ1µÊñ‹"ÍÁušýÇŽ×ìG(6lé›ÑÿV9„ûýáýRü.¤  +˜ÊÞ΃]·¥J4ÉK~'a¾GŒƒþ®Œ÷ƒ®Â’M¼ÝÇɺ8u³ì#Rœ¼¬7ÎìƒY¥¥P¥î¿DÄo §‹G'ìoÎãá=cZ­á.”uœäï=.m ãäKd}¢G±¼Š-Ø÷["?¦Åc͆Í¥labt Í +ÚŸ³f¦n=?“Eÿaï@Éõ¢‘ÁNܨՀÚŸé9ÀEUž2Ç£-Üq®#f3ô¥!Ê`G1ÕÆÝ¸ðÐÀ'*N©Xüàjƒ”n9÷[™”…2"¤ë¡?ß–DÆ~YMDYæ¢-G¢(ï°´6ÊԦ„´£†Ô`ó<;#åõÍa㘻•÷ˆøm¾fûõ¦Z-2÷¸K½ŸžqÃÏ‘‰P\/uÚH €hÉTúð»a²KË(Sÿûi@º°ƒtÑ?1?ù§ûÒ!ùCëkJ]‰¾³ê„ˆŠ1+0ï Ê¹Ì.†EΕ…dYï«Ä÷ÕëQ<oA48°´(·#NŠ&’‡ŽN^g?°ç‡9Â*|Òè/yšûƒ/õ´òÕ4ŒR9Þ:¡¬ÅKÐþó +Ñ_!ŸøNºT¡7ˆÀÖÆˆP?¬Hü}^)VWÚOÈü>S—læäÇótðÔDmL5°²;Âí‡WbS +UŽ:K~I£¹y^V.Òùý¤F7vÙ¸Jº)¨Qžx€AÇԵЫþ&¢¬`Am*÷+½EòU3ËDh9õJÕÐWÁ÷’lûM“…š³jŒï~w²¬B€­eñ·¨GO¥¼ÚQ=c+»çâ×mÐoKþü)¼XÈÔ7óÌ*ïëÌä'œdü)¾¼¦Œq Ô[? º+üؤ ŽÀM€P—ˆ‘Ê:¯Åûn¶QÓ#ˆ†xHñ ˆÛ #(TÎå +¬eÿ#8GãsÈ%ÝT‘û}ÖD1ÏÓvRÒGJÁç†{ù¹oWLº$ž®èÏ´‚…™&žœ3<>­LNÑ.Ê4Ÿ9¦®=âGZmçj{~–µ~¢kÆ7%žéÞLLò¹·pÊ>F~»ëÆ×(#At&ÙHŸ¨afô¬+\ºB¸´ï§ùØ!_ïQâœæûÁím…}’ÑtÊP䬀“îɽœÍ%ž&ýŸýèËþ0¤wðá +óïÆ‚ðL°†O¡7,^$Àc¸Â”¬öN*±¹è3öÌÀL¶û׿»)L0úz¬Ó©Î!Ô¡œ+ ËþšŸ-;ëgâ~9D<%%íP€^æ9y«?ÌvF@ÈoÍ’…>üM€<Эŝ±'ÃytkåG°¹öïYý—vù +ܳM 9$HòCŒËð@hÊ3û¤xZ—Hî¦'Ç[›ôYfü©ø )« +”ù¸^„úÂzµüìâ#õÂíâoü‚ûo¢VC•^gÐsIèØwvû +̈/± i¡t#¶FÉñÍ{_n<žêNIöQ9Lo—Ú tL™vù2­ ý*Pp)@UAÉÔ@åÏ5 &Zìþu°§ËÒÕl}¬Ðð7U@– 6Ûç« ö¦Ȧ¦>›†ÞÓøæ¢úø5 +;bÑÒèŒgó”f:R’ ¦€¼CI&¢°Èa£.Ò0Gdt€ÀÎ"Ä„LDUßWTŠ¢{Œå£Ó/ü¹îw¶߃ + W>î(ñ|§H +jð6ûMa°4ÁÓí0¥àØOO1 f0}ÀVOm¡ìô½w•ïô?N’œœ*1M\™¬ cZo8þQFß^Œ÷F EZô˜âšH&ÒF\¶öåÆ|ˆzxŠ­8@jqoçщ˜?swŒýÚî·t¿þ¨6LZÍ—eûÔB¹'K–Ê«Mai°l3@‹‡Ð0î6uÖß·J›ãX ãXC`ÞÂT>²/ˆ‰êÓú°yDËՠo]Q/*´ª~¾u^)ßi‡–áÏÉ…9ôÑÆ{$¸®Ò=íÚlà¿?QÂ:äÔ£ÐnR¶ž¨oS&éq¯-£ÙãÅ«¢äÊÞ +Rü*G>;‰›ÉbÚ#6qѰ‡90佯EgÅ5-¬YìÈtG íéo…ôâMv”]°-ŠíÍt°pF¹ué)Dgž³×ÞÃ$¼±íÉ ¶FOÆb*Û(~ ¶QÈÃFƒd1*UôçxÁ¹ÑJŸW‚§AT-G0MhfSæ šTT Ú1ü3iª ìCQ!¾‰²å}P…8ç§vòHe^ Û¥™Î·[½'Âv >º’b(}4aAH‹ìüI.ËYΪ;†˜ö‹¢'8žX:$ #ˆ1.Þ® 6s¥œ§B‚=§F;¹ÏcŸV)2“wm…è}?yþeÉóŸÀôkTA ÔPa£!(c~,ázà%ÁÂj 6àšc„ôòˆU©òù£P QV¼M  +XMXÙ×°\˜¶ËVMqð?çÍ7Û1 +iÙâêa£#%îϪ†tM½"¦ê¾Ï8ˆO¡WtW k3¢\é&1B*qtR9O¶­%æ‡->í²'e÷ #=6ÂW‘•Ò8b%2æ 9Ým¤òl\dºèÞÄ g:|4Š|aÅ6B~ch_€ßp±ˆ¬VâÂ?=-¢‹\ÙjT=•Í›4± +Iði­ŠÓREÂF¦¤ >(!†Ê°Ž"û¯óæQ€í%^ /1 YéZ îTŠ_ AúétöC &åë÷«Ê ­•~Z_}øÊx߇öwWë`©¡¸BZÛÏx¦”/ÑŸ~˜ñ]îŽt §GÀÈŪ¯ èqJf–TÐ^ÁøeñN5®Ä.N(@V +t…xw’À0/X2Î:Ãȃ•0¾^Wzbx± ›>‡˜¾©¤"ÕR…%u‘k|%ZˆIÛÅ'òª@ÔR°ë Z Ÿ‹²¥#˜hÏÄk +[¸èȰ!dÑörvû{Žh;ÕØ%+QJÚ Yž&c‹ZÈU5±ZQøÆG@ ªã;‹æ•èEs%9ÂI6„4°ë鳄Á¢¿ Ûp¶O˜p(#ÝǺNzÕÅÌ‚‘€0»šZÞ¬ +v¤€­Óó5÷+Txþ…ù̦=kuH|T€aq@Ü…møLe§«¤µ´îSÚ +3]ÊÞöbi>YÂK˜™U£t˜¿Z`“!îJÅB ÎL¼ˆM*{8 {Õ½IsÓ,¸ô[°+"zµÝ{?x6ätûaláÜ +c«`íx_=­Ké’ŽC«Å)lF*·¡áåPÍ&Þz]’ÊàM>^šŽ“”ÃGQtØs±ŠH‚2ù(éÄö€³>@3L +*hŽôs¬–€Õ`µd­Mµ vóÓ|È­Ž(Y2’4#ÉQÍÎ7À.Ô ¯g@ä7an5š~'ñq}45*QºÐ@$3}¬Øqüå$ì¦ußÊbd˜ž{’ý«|†<ˆ{àA6à=oh¶¯“ø-”5ušÜ[Zð¼læÈMžÃ!&WP¸2ṳ́ bGéøó僒ã pV개繟ò­®I_‹ó.J˜Ô5G¼\\ t£#-eJãŒFë¨+$0ãŸZÀëÐZ8÷P3RPp +ÖÓݧõ ‰qÏ6í˜HÈ8ØŒ…vìÔF´rÙ¡(]ãCÔ.€’b)£üᙵ¬Ê“‹>A”³Ln+rñ+Y&2Éâe7Ø(–Q¾ÙYÌ…jÞ¹ ÞK¡hÎÏ +‰-o ^l|4+/¤€çB4ïÈ]×WSi¬ì%õ`ØävÐ5Ý"ÆX&U)©×ðp±S[WliÕŠ˜ÝRüÿõ÷äÇ¿á»9@¹×ØkãÈ n(ËÌïãà@)YQQ} ¯Ž4¥âS`5 ½;"‘S ‹ÎfUÒ³†vÉyVt8¨ vÑá½ø)N@Œ’%`Ò’Šjyü%œÑ @]`%'wµë@Ÿ +0€`lÂqµÿMŸ5«†)$&ϾGú—5 a¡ûÍð¤Fö‚ƒ”¿ Ž¥äßÕ¥|½a'm2Ⱦç´JÓ-ûñ¯³Eãrèíƒ ­l‚u'Õú"‡õÆòf–n<Ê¥ ÀŠ—a™Ð8'Áñ9a£ ­Í"¯V¼9ì2y9* +iÒt<·²ˆÌ(H—SÐk5 +·{€Œô!Ïz†<‰r+˼³'-´K?ØDöô_Fìö<•Ž‚õÚ'NfN èÑ[Øc¥kªÐ‚ÁŽcT…y Ó½ +T-ìqj›ÏíŽeH“îÃ0m ÏAg=Ä)À"LÀ ‡UÉÕ¦‚à0Oƒ°è¼±¥cÈ(_߯„`V•R]øAÑàÇL¹œ…ŸoËH± ÏO…ŠQ¶'Ÿ=m´Øa.# >Þoú_x›WÅ…ûÓ[…ÆzõÒ "DPõáÎtP}aØ+œÁ.iÕ!ÎÁøhXoA®ìÄì<{@ÝO)²{Ù½gƒ]ů˜ÚÉ¿hÑBW/»…0ÌþÂ0¤õÀþ2µeV1ð/0ZVTØiìPÑb+lÓc?ni“ áý†ÍPÓFð”êkœÌÿ½äE#çqDÌ—8Kº²™’@`蛕V–£à)Kz:Ù‘t¸çp¸öWŸ¨—X!e2e1¡š‚á0\„‡PvÔz‰r˜v%ã¹ÃÊSL›ÝÚ‚”t(„¢¶k‡gèr²s}v´ ©hBð¡õ‚¿ø H×›&ãc8µÓ¡<œ‹‹Ð\UáD]tpmeÕДٓg¿ˆ¾ª ´=î“ò;+b¶¤ +gaŸûßãЦR¡˜›ÄÀÆôR?‡Ϊ”i˜ƒìÕŒBõMj¨È¡D¾G "h‚ÖoÁŽ¡Õ" +óSQ}ÊûÍ}p‹¤æ(ÄÌ:®½>¡¯ÞD…`öhÿf§\FkÏ©^Õ¶Ìteª‹Í ™Õ¶äÔÀE€]gpÿz¾p‘³Œòv {IÛRPG +ê90Ži¢«ö>ÐÖÙ¡kJiÅ"‰•þ.˜OHà¸Û.ác€7÷æëpŽÐ,9H÷…feŠB…5w $)O±{ZQâä•_娫8ó*²ÈsžäŠzð,åö¢8°óÅÖ"b_Ñm^U†ë«@iÐ÷òE¨lœ.ÖÕYšï4lqy¿öˆ×¬*·ª2 i+6Óì.÷vâµçÈQ ÁFœ—’JÿÇD¼eÛ6*' Ö÷/¿ (Ö¶‰@ݽâ0‚ù:ëÀ-7ùéHaãUކ¢˜ÑW²ö÷,€˜«È¾Í ×R—(Ÿ[Y¯³ªaÐjÓêzgp¹8“漨ÄéX¥-·ç'di ¾ÑΩh#Ÿ× ±m¨ÖÕ9üU¨uÄÆ³ r´x‰ñ•ö„Ð%¦Uóh¶—îL9 +)™.g!Ø|Vå EM°…ØÛÁîwï§Q"öQ•îÊE?ÄNI‡ ¯¹+Tš/ÁˆîU^8 Pkˆ@È`¦ÊôÐ(Ög‰×¶‡J‡[Cø[BÚþíDÏwœçl)®¿î¶gO*c:N\g«NìR=N&ƒ{x¤g„ ï5_"›5 £5z'¡‘Þ/,ÿy(”æC÷#T¡U,A¡<$¾µAz9ë{µG“]¨° "u¡¬ý*¨%Lj㪡¶°˜!¯nîÔE>ÄéÖÑ]DP¿¡xO«á‚Ÿ +‹ +Dð(T¬¨xÀźý¸gk§ÿ%SVÎGà8ÄEÔ騝,ý1œ6\Èö÷µ®óÖÂô °: ZRµB1´ç 6_Jak¸"êj´CGSíz•¦‘Š%uͱ]‰‡,̧T©K—–ÂÊkNó‘×ÌÄé¢ð•|8Å…zO;N–±°f·¼Ãì-óÁ?¤ÌW Ú²Ó U“'ÅܺFZÍ p”Å£_éþ•°… +¿¨½×à +jè9òƒé{ÏûMÛ% S¡ßD}ŠY +LÝÏ‹ÆÓ<\ö:„Rý$ë̘³ŠÐé*‡z ãX¾PE˜~ÁešÍ±••’?èãÌ¢Gm!ÀaÒ×>I#Ù3¶Þô3$r*^p#¶Ü¥<èäž%êàûë-áÜîç[ìçŸ=ÀÕZ×ÙRŽâeÓÚ§ ÜIJhÄ¿6œ¢Ø-ç'ü>ý멈ÖÞwÀ”Ü!e_Ø¢´÷Åãï—´¥Àm‡òi†nÌ)ç«"•p‚À Äù.J_kÛ]ãœç jE“ HÄåÅîZ‰½®ÚŸ +±£ÆÁm-=7“úqšG(63"Û,öÖâDx4Ý2‰q¬¯ T Sp¡A©’(^¬$Ä!5QêüFƒ;[ #ö‹Â7€4NaƒÜMEÍçBd‚<”„Žy¼Ñj-Sâ†R/‚sa~ö•Éá•¡ê7t³DY Ê]›‰"7PxIwíyPº{ûXÍÄe]ÂÛ¨û:’H2Éäï{2F\`Íù:¯Ú7êŠTíúGP›±Á°åªŒv{£)òÒTÑÓ¥œjDXBlÎÖ¯ 6§ø ª•TíDíáUÅSÊ[ÈUß!’ì–{(·ýMZÙß% LßN«°N -眩˜ +öÔ*€?GV#¸²¥dQ)„ûó¸ +׊7¥h—ÑÄI¹@=ÄDåJÀ—lÒ(M×ðÍ´Ç ±‚=E.@êø¯v«òû?Ï,ƒl`gvžÖ¬# jÇÌ^0hß¡®ð{deÚOt†tгåj˜FF‘3Z>饒´ëÍñ,f +G˜‹äŽq[`R´G +ƒ¾{!»Åȳ±oYgÉ. ®ŽòJ§ÕÈ"ãB¶ Ø•Œ°|ÕÔj\ˆðÏz•áµ0âú]#cÌInÏ\Ü!:2û„jNÐ×@$·À¤;OûJ±6€Ã97\öèÌ®»+T6öWéˆC=SÆÑÁ|+Πläìï©­K¢L÷˜T`êE4" š=’G=®ÞiÀÝŠÑ=èUxˆqÄNÒÍDʨ‰6ÎE-®ÛõÞß0‡ä€*Œ«§¸Kp[-ôh0–}Ê"º"b^‹É ÎFüÌ)ÿ’?ÃHØùJ.ÇHú¹„A’´ÁK”Qç« v{#U÷%U¿jÐ{Ó÷Áb`PÒWbz¢ã—½5K_ˆ;¤q§¹|™F$6D¥[Ô,Ç+ ¨…ü)ű¢¢¾2íaµôÑAD$Œ„(ºoGöyT­&nT]Zõ] æxE™5«¨æLExÒàÅ»À7^YeÑå²½øS×> ·4/£–ÔŸñÆœ®¹Û<"„¬?lˆ¸ :9ôzË:=:û§"žgàßîO·:'úJ#ifƒÔCFè8lÁDó–ÙÆî5å+ÕKùé#dRØÞe·lÃY‹µî}\¼=/4˜«$ˆ!*” Ç™Ú'Å&•ìø°ví¹I¾ýÍ¡º«ØÎ’v55A}S5sÏ{UQ³1SçÑj´?ØMÖF’OŸ«ùŠ¢fèõfá^,&€&URÿÏ“PJ¹?xŠîp[³B@¯%•(`8Dgâzv¦š!X +E8ˆü‡†Gªq¥êj J¿Ç•°>(h÷JcÖ,zD”%”ÄPªA:@Žý«“ ^~Åóô&£hhGLM—±«Q©p?‹z9œ{nbDÛvö =4f¤Ãs¥…QÂÒÉ«ÓA“ÑÍ.ˆ~Ú+¢–ghwÂgÜw¹wYég8%ÓºŸs„Ǭ’ÀPöD¸„v=Å“¢ì¾{ï!«Â´å “!ó‡`FžáÁœÄâSa¶9ÕõrâVXAum`=Maå+Ö±`s-橱’ÈÌã¶<€†l;Š/<$»€±C¡L`ÁͪÒã4î"iª¾•CÁF"K0½t0{9J 9"À‘ÁûaSí½ÝËÏvÜE‰1’úºoõ£# +‘ñiCœAð“õèU{šÔjS)A»vw碨Zvä£Sj>.†`Æyh¯U­—ãÑ5÷ßÊ›E€>Ô ¿ŸátÕd–ïq¡‚™\ÅIãÈ['Örö]#…A°U×1DveSÏÑN@buÓV²Ü²I¸Rc[‰líI¨ Ø¿>ˆ=¦2ZS¸c2ÆëQ´iꪳ§?:]$¶˜ëþXïÛ z aÁ¬ˆY¥]ºBµ)4Y¦y™‘Á¤èöÂ-£)ëTÆiF¡î‹…ÒëJB° +þÇ3˜†)מR˜~l›‹äD?¢Ëdè +RµØÞt¥Û²\ni[ýñ ¸ÀH?”ÌGPõK(’NÙñöÈèB„exÃqKiÄô†Á`‡ÝI¡ v'#ûBw¥wCUD¤‰ ©` ñS÷€@:öcÁ²Ž{Óp¶…'R¨A,Ì6/Ò¶†ú“^ù“ëÀGD?þ¸.è ãŒÖáˆÄœÄ¸‚Àìë·s ‹À…P˨×_é9Š´{1ëí`VmõM6µÝ²ih#c1ÃݨD#S ”v᪰Q5€TNzÀŃ_e{Ú§Ý*cÂ@ —#'Vg]Ò1‚ôÂûœéDÀšËæ9ãuq4(—‡—ÔÒK*æ[ƒ±\ãïZ·Òþ¯9$݃6CÛ‡Ý¾Í ^"iìËÅ®î߀ +Z!Õ-mÄç [5¬T•/(»"‚²ûÁŘí¨t·°”rù¸BW‹²û¾V<_Ì+ص;ÝÊ‚GR¤¢Ò ¹[W<~ºÄ@ÒcŸ2H£sþtd³EǶ`ˆÒlÁGÚô‹®°%0úT¼iÚÏæ›¹0î´¶ÊEa:¦X´ ›|È:DÅ1&:ŽíEã7ÿ_ÐHT ÅžmGy2G‚R±{\ˆÞ^hÖ÷44" +¸‰Œ“ìm–mÞ? •C¨Q hxiÍÐ= +&¹j _#Ÿ¨‹Ü²…èÓg¦éÙs”œYö÷ü‘³¥ò³äZóÔ (X—fK2I1ËT—*¶Ú¶¼1©  hRnjU‚7œ¤Éæ¼2ª +œ‡:XV¶kgK/ÝÝ–AÈ ©=ÙŽ«1üM[”Zb“ܰ ¥Q‹˜u/%ë ==w|ûh¹ø½z…j^fEPf˜tvÔ¢‚ýåSuNµHÝ%ö〠;/Š9±ý°w÷o€$É…¸/º¡˜8¢°°qÖõ—eºW÷ +¾ÛæBÕòaH|6«¤{3]ÒzçéE=ŸXÎ+‰H`5ª„L.)éô<µ‰¥™p³ÄgŒRìn©=…<Ú ~½MÔÌ4Ò^²»È£¨%žcÔ®MŠjÈ uërŦ#[ͽ1b—:ÜØ Iî ·8°Žë"yÏ(e¤"NÄlÑÝE³ Ìå†ÛF5’$ÌK&-±EÿîeÛi«¾na,Q#‚7Þ½9ä.QJ°)ŸðUgO¦!q:bÝç™Q= UÖqÜd:åÿvx¶½Òë쇙x ³ñ1g<“똕?×cfNGf½– Èì8ÓV×ftåMödÆ=´¡C~Æ4à3Ï!£\Û‘„ã„âóÌVãuà§gªïqø&"üùq+(øAñ ǤNÐâVb™lá€5Ã}*†|öºXŸÒ2.0Üf,%°‡UþyÎúBïŸ ýaeUs, +¬ºãì¾ášy8Ò’;‡ßD«ÓW³Ïó£Ùðˆý›Ÿ!BÄ(?Ÿ+½E¥«56ôôÔÁ^í5 +PÖPxMôJvULLvò\Óó:_¸Åâ…FÍúÙ§r¨-`.®Á'²ÆÖ²öeõ¨é[ÅGÃO.êuªh5ëuÙ *k Cø™J|\=„Õƒ´ VTjŒŒÍVcW¶#&êgRhEÑñHŸßÀ¢¦¦åÜFÏn¢([qföÇ÷€Œn½ò2À‡ì‚uZ.@¦ËnÏŽ©3$çË'Q}TóôÔ«ïP~^2{¾‚Z +‚ÚT}UŽ|îB|è-N#€õDfDG ºþ‰hU’z"ê‰è×øUã·c6k:•˜ ÛAC=*Ì\¿F|;$ߢà»VMzR5#6z¯xÏËÑzTœdH"ºÀkÓ}½éz«cìëÀb¥ÇRàt ûØ`_2Sˆy­#*X{¦[ã Œ‚ÀŒ„PGÊχv=lÁ¬H¡Îú9bËäÓ¸ª,qW%Ê0ÔqïÓ5Àõ¼±& ï?E+îÝ/?¿åU›ïàjDdf µ‚ó:äšñ^ŽyÇž›J%¨ùåzèã$kÊ÷Br!ž?*J°tkáDÛ¿Ä €T๿GDè°]1•Îßž‡½õ(}·b.‰Š÷Þ8®øÝºdöî'ö„À¦û–rõõˆêÒfé'DB„ŒQÔ=ŽsQ1e*ÐH™Æ.÷²•ÿbêõ3Í¿ÒÐý0WÙïZg×K(Ôát¤ËM÷@\Ð9§ÒeÅ¢‡› 佸wìœÆsJœ[nQ¢%t’«‡6µÃº0òhüÀ_L¦– “¥¨@ÁJt¼ÃSÎÓžˆˆDB}m®¤<+ÔËWR©¼C¾»›Ã<„f¯¶Ý܈RY>–.$sZ¬®ã×q­³ÂË¢Ô`“’o„® (ŽÞjô(²¥ +dyr´‹;lfô;­Á-œÆ <|>°,´KKèûiù‰¬mÓGîÈ¢è??ýè,›S; «²ÔPwƹB±V!súÔ®š[ëX5³©Ö·¤õ .mÆVBlºcù w¿¼£fÉQ·ÿÙTˆÕ?—[ÎÓKXpÛ*÷\a,r1œØo9V^q]rJkÊœùo„Ù°é@&¾N.=gb"¨³GW¾*ÊÇZm¿Ú)†·Æ¥ŽW7Öd5½‡MØ’}ÛPÚçÑÿÚ›ñãßòmŽMÜ?ÍÀ5!z¶§øzv]b¹!¿ï!…¡'Aä½5-udm/éÊW ‹j ‹ÔMHª<.|ù'p>NB }¢x²n+ˆ”ƒ=Z"”ؾLÏÚ”ÓMÀ‰`ž•õŠÂnx¤¼tΑõÚ ÖE–ÓšÝEqvùJØ€æA?Œž)Õ6Úÿ5¡¦uJ¹à…Æù©J•dž• Èœ¯±/ê§óYK×.økéI“»"Å6ŠP[÷D–Â+ððÔ3¶±ÒNå‡všzýtg‘ NŽ>Dí“@NÝC:‡§‹3C;JÄD¸¼'a3® ­ÎPðPkˆüªÜöSú£*Ms¨HYDà ÕÂÆë‰ó´¢š¯ÑY ù`‰+Á&‚îÄgÇ+úLh*BQ¼Ró¤™aR´†z?¹àº\äá2³i%UQ³úâˤG8^ÝU”ö:‹†x s‚°öК?…:%ô=ÃüköΟ…n[û„±y{÷à!9¡± S#aI‰_%ãš³=Áϸ]“ýRÚÌøñ»ÓÌP×AW’õM”‚(Kd‡þ;†Rl1Á~eG¯ƒŒj»aDÏ’3Û¤…ôC°ÜFÝrRhׂY"σi®B™>Ë­g«ûÕT¬Ž¨½,Úš#+:/:ÀÁ§Ô%  ®t]@{Ù+.¦ +LðúY9GE—(|ZƒõÙ# +à®ç»¥/pA"FxF‹^¾;.aaV,lOºP\.TÆ‚wîçg‚Òý¨èòA*C—g®Dqòξ‹8|»ÂÓ¹NBoQ°“DìTŒIãáwJÒMšݹ˜˜Â»ÅÜK©‘ŸÙ:ö_bš:^Ÿ}ÿDÌÇï§Ä`½ B5 ›D•øùæ€yÍ9Þí+ëø%—€ 9l×rÀ€jÔlñ¶Ù÷$ãí3Tå…ôK}.W§k¯ú/Ädñ}¡&wnoüú{¼®ƒº`òOxËÛø °~*^•æx8Ø[LzÄ^ ~É ö°wO€XЕEQ-=«!Mú<¾!@¨¬îíAV)8Å®© «µsU ‡¸ _ÚœöqWeé[d50;=õå +F'q©¸/íQc[Xº1-É‚¢Í!ü•5ýµ%Ë´DÉ2ŸÈ*ü'•ËžÁo+%Yf`}ÍTŽëdõuÛË{I<½;ðLJ#EŠ*ÝÆÖÑ G vtt½ž=Ã-Ö0¢eõÙ +Þ/$4‰ó$dôC:O0Ì8€äN¹w^ZõS^a…~%;ú[nŒÚÑÞ¨:"˜ýZ†qû!Žõ«ä°ÆX0ö»yÒ:Mdh{xöã‹ÍÛÊBr4«£󜃮f^÷ù]]g¨ó©åÎéŒêz Ì\*ñ‰UOÕ\XN‰§ÃØæ,ö ý-Æ»ñÞq]õÄ‹wðŽ¾øQÊ2[(@¥ó3òÐöOk¬ç«ŠQC)%3°O³¦=aÔ]uG"½7¥~¥ËÝ_€8]Á¡E=As¬2G÷8Ë”ŽÏN0+%9*T £bIT^1‰= ‹•Ïõñ¨WR‚ÐTϨ£Újަ ñj£‘ý`úIÙXY÷–’{S5D—0[àë³8Y˜’-*Þ‰é£0(H½ÌìoŸÝwpÿŽˆK,ÿ` OÍɃ¢€¨Q‡Û[ÿŽ­Q¡È5-9í‡<Ŧ¬ûOdèhÏW ¬%YD?Hp†ûF "Ï›,Ç)à™/³&2~ŠECÀZêŽm…ÑdO%+)Ð-K>›_à–^NH_ŽêÜ|M°]{¢\˜²Äqœ_â59"{ª"ò©-ï=+L ö[øUÆž>Æ€f*3·ã“3¨åÚ‚ƒmÅA¡‹à ˆçtU±ù r¹}aMq5Õ{m’¥Àù ó=šè¹„¨xE¥†”æqÿÐ+iÖ÷ç×N_*'QŠRŽŸëOd˜I$=‡˜³¿æÁ4ˆ&æ}B%"U¤µsˆUïHOAÝÏq¿M ÔÁŒ¿ +Kâ9Ÿ'¥®s:ÖJè¸íWOD²Çœ‚àÁDæèÝ1d<ëõ¾H9 P¨o ,þ5‚I,zQ\å‰_ƒ†_ðWN–Î)°y¦‘g ¥Òkï=I:¶ªëgJ 6EGœªÛçA*Ÿ<ã´_¡ªLILë,Y´,÷;#¾øÛ¿"Ê÷õ›OéN#]³hî™~ÿ®†·†Ôرe>ÇÐ()°ƒ@ÀÏ=ÊÖ1]gçŽÁ +¹<·8ü½¸c· %7]ß|œ²–ÚÇŸ”vnÓeŸõý¸Ét±{Ü(_¥±'Xv;¦…0}hÈÌ?ZÞ)WhÈèRžUñ378Ð`J©Àê×>¶ß ¥³ç,¬-źØQ +LsˆwWŽD j Wž»ø7þºà°‚@…pD¨œ÷P9¿»¡úSŽO‰­Èºþú©7•Oê +÷ñ¦$‡s ü9/ýѾšÔ¶{èÿú슨.%Ç&ëò^æM`ösÚ+á^×v(çÀq¦ïÇóïí wó u÷®d±™ø<»—‘ù9“àë`C uÔ܃ÃW@V1WE°æ$4TõNç‹v2â Î(*Ó.>¥¸P¢ç´?йR«—ª*Nýðq=HâmE Õ(Þ•ýÄ8`v€=kT£¨ùùÄüãl+‘<Ë_Û$ qz\ÕöÀˆþh2(šrMÙâ*°Ûï,¬„íLaždðuP´ +hÔEí–0¿~•ßïzx}£Ë‡òqPQ†ú-“ÌÌöM¸±È b0Æ`K¿ú‘óñ,¹(?Æ,#¥Þ;tÓr¦Š¶§ë°Epk݈÷vÿh¦z_üîö†6 |Ú{ü¾ âŽÆ¢H>Nqœ|ñ¥÷ˆïfî·¨b«†©àÀ1ìè—ï(ZaÐäF’&·´óÑ%nLtû<ÄGܯéøÿxг§dZƒ*šÓ°]¥-Q‘z,ŽŠ;œÀ>­¤RÒ‡42àîfiXšC¢Bx"v é¸Œ’ð3Q¡gÏÞÃDÔo/çáíÀ¿žrlé×ê-?ß||O`mn + %I@‘Ôäœ$ν[gkH¦zJìíz-UOT¾QÖ D©s!7IÌpDÌ¡z=ph"¬päPë#ÿÞ¸Ò1wFäƒÉ@>f +>&PrSŽÆc@X(šo–€å¶ +3±lϘÿH‘ïu¯¦V¥Ct Èú²ñ,Ó]’÷ÞÇ“aQù@x ;´Ó°l<â–pƒ¡s~‹CMmú9Jœòcuë6>å¹=b +²Éº†Óš ®!êÿ9ì+0Œå:ÙÁ,W‡€’ú´Õˆê!Môü€–¢<õX< å>O²iù +Òí%üÏú*¯ ,E$vN§Ì‡n ìøE1ßE(œÃjISÉ °Æqk0 EâV¬p—m]ÒÜ)É¢ÆôUcŠëº²KßChCóq„ym{Õ3¼ëÞeªZÁ…lðìö#kOч½kÕ: í~¤¢Þ#ö¥·… Ó¼åf£æ‰ËpêkECÌ l\§‘Pôo XÖŒò°kcò¡DÓ!+4„3øÖ´úù—×*jÆòµû +jÅö¡ÙhmÁ$ÈÚ½ßÒ.ú}ÀSÀ¸^fÍ<°·wìRb[4<újQH,²F ?E\^‹{î–"u9e$"èÎ’XÕóIqZ˜¹ŸdsÔRØïQV1Ï›`¼‹Ø~Új׎(Œ("BŒ +Á^aÎÁãBÅa‹*‡±çwtüãJ=¢Ž—è«z Œs‘B:€³$k\ˆÊì9_h8¬NÙÊX)Yߥû&*|g6/6H¯Ç×qŸwõÕ# +ŽMžÔÎMF gc% ˆš²Ck@ +_ Þ”íÄúó|^É2m5¹s$»ý¿/PK|Ådvm #ºÖs|ùúSI&¿~aùÈhWöTA™çöüÚØBg9@YSŠø"´ôjA6_3LÝF3É‚z8:GþË•û~;ì;«/TXÏÏÜVØ“ò&Ò#|ïž„‚Åß„\ºO{}Ìhg?tShAÍ{‹`ü“ÀUYj—äù5 +¬ U<Éi)yÚS£)“GÊG<:µ¬[5£š~F“Ôˆåg¦ì1R¤ß<ßœ‡1‘"3¯EŽT»Ä«o¾øÇ¾FÒσàËê!+”j –ȃÂí\a!ꮚLý|Ñp†­^€úÎ|kDKÙv¸YyÇßÌevåõ¬JÁ{D<øCS}ûøž,ÄSyŸ2Ïf”¸*i=š·Ù¿l¿*®oQ ØITÄ}ζ¸ÑqÄÑtÅâ`u +&ßyár?š,(=–ñ8G÷G[O<é@^´ G· +õØr¡˜¤e ´µJÑB5Õ#M¦ÉG†âׂå{D_áA@!ò…Ë6ŠzQân–A‚KZ…ÌJH:†éP9…C¶Ö5f4ÝÌd„Bƒv|´šöºÉý8^‘Ȭ|ºá! Ž" ¨Áæä˜dµ8Ê—&]ZGTP24Äòy~WÓ„a…XhÙg*Õq-*04i5¤ù*Ì”²âúˆÿQu¾®)Úq ¬;[@r£SÑC}B‹¿EÇ  LÀS“=€×Ôôæ‹Y4þ&Í‚vW{J4‰íPÕ+ܬÎÜ¥+Ϥ·ó}h¸)_#bè?ÇÈ[˜Ò¿9Ê"$ð,96¢gìå›ÔÖÈKöÐÎi^Šö—¨7Uš—I¾æ~±æèñAɲñæy4úú5à5KhBœ`ò·oN³—üÙY¿<ö¸€¡ö L"£ +5i½€=Ÿ»Ì€ÎÈ?W‚E5Œ¢·Q(% ¨ à-‰ÛèÊc0ºRÖ¡ˆŠ‚fG:âÎGDÑvßQV ˆÒ†Ë¢åŠóã %1ùp„²úÕFÅy{± Þ­"_€r®”%âÚ|ïáB×~?²@b_{P¿8À`õ«#»ð¬»2¬H›¢}XPŽ(º 3TWžð§0·Ø¿›äbÙÚF Ö¢ñcê(Á½}|µPùîˆ_PÅÀæÉ­ÕÞSÉWˆV¶,RÕ~é¾Õ³ â͆4øê {oèë Mxá°<òjðöæ³ÍxŽVC:ŠQ=`ú'±Ûc-øñ`nL’;ýˆý©PAÿ*f†šÂëcŽð«ÈjŒB1†·¿§Ø1Ç ˜pGª²Ç"]x»Sþæ4ùHµ€ îy â Ø~‹È—:‡æÉºâ·¨²¢X™_¦£„Óð*az"‘Û¦JÏŒ¯ôÄ£*kì=hêY¢³+-ü:BÒ9“˜†÷ø¸ÆÕMOÀ£O(zþ#ŠþFX¢‚;¬úŸ>+á"³0Œ?žˆ¢I÷ˆù§üƒEAUéõÎú–u“ÔfÞÃç¢åÑ@ŒmíâºÓ•áF`mð-tÔÕ¼vœCZù»C¥Ê„lݾ}‰êGHº÷±|†ÎJñBA_ à-…BX U#¤û{D”Vdz°ÄU9ú%ÐYý ˜óGž@à+¿Ú„{Š9T¸)–¨Ôx.ä+ç™–¯ˆ*+¢p$ù͹Ÿ'ì=§[2{~EŸ¿aÂLÕgİ5Ñ`Bçþ:`ÅE*-ª^õgµ".¸ôM©‰™Ò~W §ZZÀ¥„EX¬$¢\¢’Æçö¾QÝf+¼ªF«ë«Ã—8fÕÁXÇ´ÛîË"ê9ߢPw iCmõbDõ ÄJœÉkš:ƒ\é99ûo#Ï£kÝC×z¹Âtäw@²-vn\YVª4ÕçÑ+ÏPSÒPñYí.ŸÕÏè}[êH}K.†¸o|‘:)ÚOLÎëht9äì¢ûƒâ¡&ìÐí]Gq Ìis}öOESj 5 ¾8pŒ¨|9FíÙLEu!˜Dngå@®Ì†ç#N³½²òâbCC¾aů!}B(Ðì;ò½x´À`îÈþ¤êöc nàâ*ν4"Êõ(™‚i?þ,4ço‰ÿ‘‚ûgi¸åɱýç[ÿÇ?Рùø»óñßÿÛŸ¿Xþøwÿáø_÷ïÿþ¿þöOúÇùçŸþþÿôŸûOÿüÓøãÿýéÿó§ÿøÿô§ÿô/ø?Œ‹~ÿ‰ÿÿÿø¿ýÓ?þÃOû¿¸¹çu¿Âþ/ü÷@ûËŒýŸ_êöpc)ö ÀØ>]ˆâó{÷&æ÷'jO šØ/†ô[T’µ¹§Þtó*B±!”Ñw’j^.ͽÒ%ñ=l˜š†Æ†ý¡ùŽxOöMœ( Þ~[Eå4èUUƒË´¡çeýiã`Gph%ëî˜.,e°böa€²= ïìfÄÞ1€eI푚¾I”G¼Æ›èñ'dnQàEâÝ‘í$x‰ˆ#S û;ŠgÊŒˆAÁ*.€¢§-©Q·ÓB\Xs#/ײ> V}êãH*Òr‹æl Ø± |pôÛ+sëÑlßßeϘQPâÖbÅ•ºHöq bx5åÜ?H’°,êr¸Õc0¢Í€BûfH ,æÒ'.€'¥L;˜†û{ª íorÇ+v'Èè%/‚ÈxÖ”d&k>™SA2Ø}¥§‹¡Ì„ÚiÌzÅщ ¥æ@ů3Ù O3Îß÷nÙOñ@ð†¤r#Àeƒ*@Iÿu~øtD)êKc¢öFtœUÙèå¸Ï½½£®ð~îfaÒ¶ .t…²'ð46ÿ ,÷ÔÛØ1dns(:¿?H¤(ºÈ¼%*„J Ì£2{ówÏÚ›ï!¨&ö×gÚRXÄ,è‡Yý÷HsóóîŸoÝ•ækГ­0ïoŒQUÕ;5 wÀ?Èöðª÷b1Fwü\_Äýï´ •o>Er؆'‡|\¬CûöŠnI#ß3¶¥ƒ§2ôêÜߟîx•88üX†`(¢~z#Â.ú +¿Kg©š¼•Оý¾"ØLR“òX]HÖ&bË {‚h=ÁÅÓ4:ÒÚ?çØk;äìÇŸbê㡱Ð(šØhÝ AEAE¡ ×0©khõ ôI£t€¡:‹V “Ò~t´™°itÞ"70“\o¥ý›(&€½á¥R¤$2ô[€³°=öÖø£“÷#l8±."›B¼ІoU{-"ÐÀ$?î@ï$()à˜k÷.#ƒAæ àŽÊ@ɉâM! +­?ÏøfϽ5]"ž|èCHð˜,q+˜%€Üìyw+öÁhåS~ˆUlO DíIójÞÙÎ; +†0ÇjÞ rf ‘SxŒæÉ¤£8½Ex¥%´š:PšoÎÓ}v(Sû›ï}bëÊP˜§¤ÈSòJÌ©æ)É\§\ù£˜ÇyŠPÍwP¾$ßa@Áw3‡º®9S²9Óˆœé/ç^7Kêo;•…’Ýp= 1)Ã+ÞeªÆ¨&™Êñ°â$ôzÖ²¸Œ½¸Œ'^0ªÙN;·ròػێ¾úñÖâXcž ‹Ç èîg‰G=Sý—=ÀöoKÄÞ4e"°Ê<Ód=Ód‰ó3‘óé¡1Ý2‰¢¬hç…_B¿ôLÛ}:mãXhDYɈ‘ Ø+ ³ µ¸Þ²\h4 SÌ뺙ð bÿ[}=€lÚP.`x1!Š»@$ÿdÂkžÄRª·¶œÂ³Œp3*M­GUñê&8Ózz%fÉÎýâÒ“bï™Ê …;5åP§\Ù´ +øD| +´bvÖÄêÔÁæ[ÀÉa|Î‚ÉÆÐï ¬ùDT +OeïT±†1]«6á÷ðÈŸP»ñ+Ò`4¢Hì©Ñso-2 MÚˆpÄ)†wÀš(QÛòBt(@Ú\£Á†â¡|¼ž#¿¶”‘@“¢08\•ÆÎÓ–…3^Íx/@¼Ã¿ö†üx^¨¹ íFJ=ˆ¡j&¼ºV°è‰j‰5]äÍXÔ0Îò<ÎPäÐ5iÑ@×JÈ%Yš­KóÊ5sМôžŒ[8{S$?ÿ)"@11$Œ¢ÊæÜvH Jã°ú^Ë9úX÷B$2BʼÖ>Ô™÷¤ÇÌyê®'ôÁ}€Ê» Åöžòá ¢õÒd!vðµoç‘.X» ï×Üi +ZñúE>”X§z©)ϰ>Ú +æ~cnT³ß„…ij½äZ{xÎð~,:\¥h3Lk’ñ–M°UCâÀÍ'¢˜7ø´¦uUé?3¸¦ÏtÛk +zDh®cœ-P"”j þt–a½n2ötgŒg/˹HY®¶Yw…ãÔ[{’†"Åb™¤,íé°óÚ#6Àb¹T%g+ £Ó²ox’f d²ĵ¸»$_K +³Xaôý¬0¢W/á$ñÍqx…íSAòüŒ©÷¨ÈiȦˆö¸Ü¿L†VFåÉD;53U™Ûu¯TWFR÷·€ø>5/¾l’œù~Q4˜éggïC¬ =.”Æßv®vÉNoÇŠZg>bF;†g0p»6†1…,¸½$è5¶¨$lQó9%¾«”&tï÷„8:SëF xôÀ¥ç°J×fŽå\ÃçOjž]ð4`ÝáÓô3B}m¡XÒJKe æ9ñƒýû^#îDàT€í(H"ª5‰…ÚsÜ©P/öÛýUU¥jiMƒöñLXÉÔäþEH’¹·‡aÙâ ÓOhÞïŽ-š¦C7U{‹z†b¢þ• nÎOF¾¶Š—‚Ÿ +ÅÄFh¸k€þEºãêØ€thßœ,š5ž‚5µŽŠ×”OÁG½G¬£¾MôªÞ¾G!üßÅÞÐLÚçQ¹½¯ØußF*îÚ•ZRaóQÜäWÜs²Uu +ìü!\ +d ìÇÏ8 û°ŸÂF5Gc Ñú6Rªè…±î‘¼¿êùyö¾ô¨.6qŒ{þ`[éV`õhe%‘‘Š[Šn2ÃIìD¥š$7|ÇÉHÙ}"ç7u÷Œ›J l0Q”,Ð9‡mëybE®L_±)©)67b]MapNx*ð© {-qö+'´‚Îo3¦*LD%좉¢IT·î0h.Mbô<2Â9n|%àšéühxÒ:çy Sɀͽ ’qîü…,›Ët¯¡º}J¨wưÉñ(fV+W.4Tï7ÜJ-T3¬xUem5‘d³ÄK¼Š¤® +“.ÆyE~ò—3¡» Ù™âÀrVWó‚”f§c{P‚é"­%eêt™XïØàü( ¨’§À.¼ØòÖ\G»BV,eežDg£É¹×xmÙ¬ê8&Ñd;9)Q™­è`3·â¦50jTÏc±–5†¬Ö\ ÎYwï½ßÁ#®Q?’ œDP +Q‘^i.‘0Õž#ÎOæ9póHqŸì04´‡Gå=¶ +ÊuÎ'2C©0έ§ÞÐÕ(MÜ¢ƒÜf z¢ÚºO´ß‹ÁW£úФ95ëĤIkfq,Ö Na;?Ž‹3›ºêþ8]°ÈДßY +/P#XSÆ×´ ƒbYÚ %í½ +·—}×i¤KAf7¸':¶³ˆ±e·-U÷º`dFY—°O¬°+#Øw¾˜&ë¯K?/”b1’ “ÀA¦¸Í¾"?ŽnŽËU;Èe/‚@’Õ@†DØ×˜Ñ€@¦'=ñ*E"N{=\¤2WÈò7-0ÄϰþÑ@¤ äûA|‡}OpX)<€ýD(H짴棩÷ÈOCíig„+I_ŽÙ´H{‹ðJ˜ ¤.Pß'ißàa7ÊÝ{ÄŠéZTÛ)ÃtÄš†Õ4zÑÜm÷õÁ2ß3çlγO‚Š>*÷.(¬,(%§£°èÖLiÒêÂÑ™ÇhäxÐÚe%¹¡o~¥Ê??–ÌöÍi€£Æ¯¿ÔUÝëÊN䄘Í+ßD€mƒ÷(ñs×/b*†ðæÐ{Rm Ò +³ˆn0XQú¦ô€¬(“ZjÀð&Êßx¡:ÜûÙíÕ öÛÛi 5vŠ5´piHHÙüï"@A NÒΓ{‹¢¿`e@ +è +=n^ ¼ï¤‹,Šò é^~— /w°±Õc°5Üi¾9Ȭ™––X쀡 (¹2Üëê4¤v>’Å“(—½÷¦º}®ôœyhQCÏF‰˜¡˜¿ó˜8/8Å·„ÇÐbGì_ya—mv@ÏDx)óèÖëJv;Gx D$ŠäÌéi +ÅJ±ò‰¨f"  âBæ£ÈHÕó•"kBù»Ü¯„^*ƒOR +Œ0¥P +d“¬²ÁdDª…PŒx\fscŒ·ý¨ÎÛnNò%"®„&Dýîã$g×CܤJ«˜¢Kû&àX&„êî‚üÕf¤Qb¦ZùÁ ˆ˜Ÿ#©{uCN0-cªY²ð¿Fx%ÌÌ]1Ñr¯ßœ\«¥#nX¿õtdñß#BB^q¡/Q-ÐÉ”|M˜½áG³£Çº•;è.(£SϨQQ,<–=nk›ï÷ú Òý=Èn#¥Lõ“÷?»½ÂÄÕ¥1n™ókd&ß +8ÿ-;“8 ±n­ µS}²XÈÔáàÐi™ëkD<±®2Äz³·oÎS)¨¡¹Øõ\:YY?YO¬>±{“ûe’™Nœƒ€S9¸sÎÝó³OîÓ£›±#Æt^}üÍ ØO×wé; \G9…5ÖÜ×zóÈ(%*?H€Õq!¤±Ýó êEDš¶ÐOc¿ôpÈ?âË(LFÌ~¿ \&L+Æþ(9Ñ÷‚Ä ²w'©EI˼@;ùÏÇ™¡·¦JD«„ôÒ[D¬iˉÍ~·¾=ÏsÞ¨}eÐnˆèQÑ“-Á7ë0ØS¯W.ûË(´œTŒe¼¦)1Òi‹®öp }mà­|',W÷Õ‘(FèV“iíÞ°ÝDÓ RV V¯ž¦óSíˆF*\õ/déjedV¬×ycu(º‚ÛÝ;¸®|»ç%›äÊ*â= ñ~™päôÞ|ˆ2I¦nQ}a£7¯£9½&w'ÜdŽŸøéŽJ$:ì£,Ð +‹j` pa†­5¾ @ú°Ú7B9ëj|ð(㌬6ulçÁ^Ø-nh°î/‚ s~x ß­1| ’â¯OÙÁb3™#a|âä€ëtŠAð@A1΋…Ö„Êl̺¤DÞ¾e:⬲dxŒÚÌ«Ÿ\ƒvHt„£Øºÿ— á÷HÔ×€ßÝ–š€9»š%_‚(¯ÓÞÛã½1£(MËŽÑQ}‹øn|‹¢¾)÷ä‘–ˆ¦Ã£'BÒ±/Ãì½]<lf1(+ÛÁDäMp>\Çš,Îi)¨µû4Nés6%WlQ“x.l­yâyHI~è÷Ñtë´Mjv±ˆ/ÅüñoçBt€mQžQ ád¯T­ÁÙ^þÕrRŠ)œ5‘¢èëSú9*J«¤‹2û£çذYаÂ6 ?'+þ€2£öĦؕ)ÙÒÊdç¡aT̈°êszDŒÑ" +¬6J:/!³I2ÔI±R§N*ÖÛ~H²‚aî÷H]%‚Õ "r·4רìhäøÚb®Î&u‘çi¶³Aæ<|"3ÅÔýíx%@ª×_04Bl<Ÿ³ñ4—€ÆÆ>(áÿÕP†ö¬Ày©vá[å@D®g:m6œ|†½ô®HßzìÝÝŽ}ÛÑ\Û‹-1lºèª=+ÁÕŒˆàzªÀb„“ÅëXàÇ͆Х;zÍDYt@Çp­¸¡žHÔd•Ž~Úg4µe·åÈ>PÃ.=0Xž)" +ˆ®aåþÜ’a-¸í##¤™¢¹¥¶¿ÏOÊ>(„æ°ñ¾½¬Q 6¢~ øª š¨Únç9cìäÕ;¼’úf”¨+2^_UÕiÅ + $^A0ËA¯s^ +dˆ³£Çù~¼ËmXÈQ– 'ü¤/me›¶w·Owž3c<¢ +5 +úv A;²V§Šˆ˜QH\ðšÏ¯uôÿpâ^‰+U #›6­l1Jtb\HõÑ¿®O,Qû ‡£'*vâꩤeqG5{z«ì ÐऩA’DÀ!ˆÝWF`ak¤]ãJ¢P´„çu¥nK–_¿ås?Ù»ÅÁ·l¤Ó›µÐþÄ0t4ðtg'½¨ì¥Cl¾[šj°C¢ Ó‚B5zrüH§GªLLK±ŠÈ9ž½ûáa²×®”& pþ\ºüžë4øîÁZ<ÈÚÇ+¢hWàÛH¥t"–u¢ž³#$Ð{LkûòÝlU1zÚQYÌk9c§ê‹WšÙó”)·H6òÞ¨í’ <±æBêþf‰ ‹™ ö«©ÌSC$€ûl±‰Ý§ÙÉ™ƒõ@ÛÒï¼÷%)Ý¡sbÄEa|?ý.ÈÉ$_ýZ‰'ûÝBûNêTÇ®̰»/â| +ã×Ï õ•x-Ù/ðZæñ¼þ ‰w§yÌ…{"97xŽíÜR˜3ˆÌ*ZŒz`V<â®ß»À¥“#Šý`¶uÊ]÷ò?¹È^;ÂѾ;Oè¾ù“¢b>@$ÌÚk6:zßD Å¥èãçshü"ªjýš|ý ýˆ>"¹_Ú =þtͬ$EÍ¡SÏàfª¾¬•øùÔ÷ã +ù‚èÐðƒ3Ïz±AjÎ÷††yÐ¥?º`­/ïÎtn·wÜ<k›YânXôóå·xƒ_ãÐ>x¨°Ysðtw«ü´‰åTþ¬×…,à2©Âæë©`§ÇÇúPÍká5y ç!mÊ0Ž[çúÓ—´íý4h³‰?¤²ï³cûf9©7ä|ß#í ‚‹ðz‹b£hÎ:Ðåèç†ç¹áÓBD}‡¢}ú=5îô‘vÜüMÄïÎÌDƒÌãí<`£„c#=A„Æã*=+ÄÙ™C;â0/Ø j•Å ýãÁ.‰±Ò;OeZÒ¡ž>OiT=¥ñÙ¿‰h%Àf +\Ä[ú*ý¨Ê@…)¡¨/–„~îûb+ؤ„ü¬Ø-z¢–/Aên•ÜìT„ä¤+ãl×·ÉøÐõ’”î¸Ö,È_=&6g´S¸^)ˤ.¢’ɽI…éèy8-ƒÆûQî qº*"ýßãòÚ¬~Ñž—\dûùå`h[Þg-³³Â¡tX™¶˜¿FIï¨?Ãíx‹øÝIšÊbð÷B™²ÖÛy\¦°ødF,ÓR‘Ú:äo½E ¼Þ^è„_€( ¹Qa[*’³#†8ŠàÞ´ŸâEÙ³;é_ãsï¯IÚ +ÐLoüí3à7ç‡ü'&{`¬Ö¡Cå=»©ÙW½/JøÜXÐæÐ_£~snŽu”C²‹Î0‹Cö®{•©½!ç~fôàöÜ °ç=‚fÖp²Ý‹Ó¸¨·(¼ÄÈUÐ3MB"HÖ‡]j«J~%⦽pè(˜`Kú]ÄݪÁÈ£NJa÷›ó¬C#4`íñRq²˜J‹’†¶'¼_?{Œ'I5ºL` =ªèúÒ¾G}¡'‡ÔB»½­·(Rƒ…-E‹4¹û›tgèº(nMÖ`§ÈˆÐ +M¢=°÷×?OY[óTïÕbZ žiìõhR;î°Ëæ±rÅudfKÞÁ¯àÿ.PP>þ;+=CBÿ÷œ~Àß ©Q6 }xvfû=çÝýý‰!„îi–oÒô-[X›BržªdîlDŠ»µ/#ä)Ðl kðEÑ©Ûõ™Ÿy/$v<{!å°)Q¡ {ŒN ¥HJ¨Ñ±Ç`Ëá.®ÖŒÂHÁÒrbHèÛVe/ .1ôÏ rVÃ*Œær.S¦ªo‰}+%Mf\¦êÀ¶Ÿç:hóÆÎög¢KTM”ôBŸFœ³,"ªå—¡ÿŽ:mc@õ‹ïŸû¼2à_ÉÕ÷~UDø‘:=ïÝô¤GÕq„J +2tÞ”Ï϶CqsuòYˆ¾å™sgŠE’p«NË^ÄØˆ¤ÁÔùÕðÙ!¥öYõ!öß=Þ Ã…@³im +:2ÎOhºÛqËP¡BÌd7±[G x§ã¬{LíµKb \¥_DWgm9±¶¨hv=¢xËzVÙŽx&ºM]cRðÊp%j€wÐ0ó0ü«çIA”VËd‡ò:òÐÉiá‰E_5ýq"jÞ3üÅŸh– AC9®ã÷ܧ˜×Û¡<‘8ƜڙÑ÷Ý0K ðdhg€u}ؽ5"ÀPÂÂîˆÛˆ®SœL—Ÿìn@jÅ+¤xh<R7þ?ÄÎ%ûá|wA©ÌSb¤•;o™7,ì‚3L9Ä—°Ú~žZ6›÷mDåMlöÜidMQ×lÊÓ?9DfܼI¬Ê•ØŽ¤¨¤È˜¨R5i»‘V±´’VÙ:á, +& ᔂ]û—¸›~«Ìðƒùä¯ò¿$k6cÁ¾äðìAm3 +JÆÌ<Ø>N `ÄÔÞÜÑhÁ ¿ëa8¶Ã¦ w>Ì +Z±G*qÒ}B÷©L0£ž—MÅÔ<øtˆh" + +“&;ÅŽõZ\å:Páñ.“ühI"Ëg tdBX2vƒÊ…Ô–¸Îª±;Ç$‡®­kñ2P‡gå¤"t˜OR@×Í`(W„ùgóù”p Õ:’|MÞÿ#•°_„]§ýûr´ñHûZlÙèœwŸ³2kdb«TZN8ƒë .Õ’IâÄÞ6ü#ÈížwžV€gÛ‘ (ü¦D‰ƒ nÙ´*JDÀ=¾4/®d.«FÐû@v 9"‚Ic×ü"éaÒÄ´ÖÔk{„ðˆI6ÚJÕãnæ÷qä­<;P®Ï®‚Mäv€ ¿;»ànÉxoÇS ¿NèƒïDDÚ½ Ž˜Ëº}D€û$ñÍøñoø2Š4z¾{Û¹ßK9ú¥cØô=¬úU Kk¢ÙYÚYã.2öö`†=Ô;ô„Šb¸pDoª½é«.j”¥¤'œæš²Ù Ða˜qà€œ‡e…°§D¤œ„¥’·bÁ'| Aþ¢Ypfb¨°¬VŽâTŠa±¥EØ)˜S ¶æ¼,â}bd·nÿUBß.új§QHѳ¡ M)‹ÕfëŠ>l9ɈDÕ®¶g‚x×X°x׺ +ür"o¥¾xÙ~#÷ÛLSHDQêÞø½‹†,3@YÓA{~œú”úROª6®RžŸÂÌ- ðŒ !ITÁ±=wIðÀ{>n5B>ˆsyD<.ÐíªCáÝÛÒ[ZбŠûƒ @ºm’~SŒ›]–§±·¹OÓ`H·x‚Qlrwjzµ°Ê8Ïçcø&Z•Ÿ"VÎ%h²÷éOM,‡ÝW”õÿ¾²ScÑÛwO±ÇµR´ŽßUá@ÍÎp½}©`¶sžبX1E[±‰…˜ÜXRÏžØIؽ:WuXDå,:`ÓÂIÖú<FJÄS’À•#÷B>‘Òø]ŠQ9;Yn&`Ò‹ÉÀË’!õØfîçÙ^ól¢NŠ'îs"ìÕ'*æ•çĆzyàÓÌ©ôpÛÙv+’4¸öãA 3STaOî>' D¥7vþ®IÒ=8¸×,Æ¢»ãlͦ+HDèJö± `2çM·*1\58¢÷Ó(¨DM^¢d–(~¢ªeCRù:lleCs„ÚÁcµ)œ5#ÚÿcíÝv­WÒó¼+ð=¬CÇkO& 0à AN F[ D–á(r÷©çy‹ó_=Ç”´Zÿø&ÉÁAV}›wóJŒ¬GÒst¢Q^qG.;g"¹&¢FñrEÍ›/™ÏŸ|£«êœ­ŠÆ­¶Ä¨§7“œžÎ¾ÃP=«³¡ ©±÷p’z¸æèÅï5}©ÑDÒ3&Ñ!í‘Æ/Rã…Ad?=ÕæuTõÛV_VY„ŠŸ–oUY4ÿcÐEQë©1Qm@ÀöO+îã=;¹ÛQµ¯DõÜJ³È(©Yñh¸r"È,™ +·#´”Ôõ¡w"Ð`'böçëLKì"ådè+ï²Q =‰P½d@i‘}…aâ·ÞÄSªXX$w Pøí—´É'd!• R¹A<å5¿fVÿýVPGúñKàýë®I)s ðú¬a¿pÚëPnFcC£T9©åº*© +êW¨¦Ýp»i>79-ÜUF„Âíˆí>˜/w¯Ï~ôLPÒÇëð>f_0nÚŠFñ­¦Fcx¬Æ¡ î²·ì’ØI ѯwH!¹¢cOEsõF×ü +§Z¼Œî¦a-ë©¶_kæLÙÔKB­q[$xyl¡o}Á|…9ÜÈ®D +"¾‰§X Ò~€àãéVmlÀN+”¡áºŽÊ•׋²dØ·E%‘öÃAZO’pɾJø7W½ïÞt´¹œ +þ´qzÈJâ\eÙ䪢`ETÁÄn©èCz9 Lµ™@@$•!Ž‚T.P×ðëlå¨PEiÈùëÑ¿‡sÍk23-—ÚÔ€í{´ÌRs…ÐU@¦A"af÷uüì–@-Jv| ùÌTrkßz4˜m"òœI•°':Å{³é€Ì—²ÄSsN¤?X=~ÌvFqCK¸£’¾ÚNÊW$Âꋞö”Ù.Êî?üÓƒx QOK—‚=ˆ¨Æ*”3¥ÿµ7VöžêWÉ»lÿ0—RS®³øð8žÀ]ûm.9n‚T#%A;oþŒ1È“õS$ïþ êYäÓô §âŠr?‡E“: ÈàKäý?Ö;yØ¿ã\ÙÄ ½C@²äQjÌPM9G3£Ùgõw¿!±cU‘ œ ÇgÙ^ʨëðú‘þ,-çAmn¹×<< Háʧ è~áxžP¶x<‚Ëõe•PúUïY¿#PàK :Ž;Ü.EB°$"…B>M›?öÃyÔÈQ­+ñ:Ø< +QysÄï;ÀäF뀔¶z?—sòÀçÁböZ…„MNñUüÚk>æõìCäy7$:tòx©÷ëd>ÿ¨"Õ-Ú%g<Þ Ç„º3!åb¿P2×̰å9‚ÈÊbÝTvîh|ì±z‡íXOןé•kw;:Üî‚¿Á[‡»¯ÊÌ}EMþ,ªª¼Ê!Zþ5i*@ ac +Ù)J…Ÿš¹CÊoÁB…ó61ºRòÑ„iÊèãõØeDþì>jé´iPÕ%Á¿¡ Ÿl ¢E*¤½ +Ñ<íëLßá50Ö+.ür7X2¢†ò¨nîW«ç«P_÷æÂà$lɉ®\ìóïd£GC°;e +5 }м³q\f²a‚ø’æó÷kÙ³^ÙîbÇYîç(éTï +`±©¦Ö@­å(ðéÈ´“Gh…nwà’‘ª¹Þ„Y£È½‡ö/)Ê™!«Z-¸’àïHÖZ¦Zlû‹utð&½‡žt¸Zû2¨YI͕Ч;SÇQL™>§—Ge'ÏïÎÃë²Ï3¯#kY¯D2°èvtd¾µ#<¾/ ŸAކD O÷*G±„†×›ÆB»Wœ Ãꨉ£jšî©y×ÐZK1Ó} +–,2í¡fê¸ó¸unÇ9Á°/-Òj<ÖP! Ai¿‰‡Åop¾6‰ÃˆÒ–špø%¤åŠÖÛÉ•ŠÿOÿ*.° ´hO¯øªhuÉAÕÕ?DÉWz ¸f>~GRëzRëCÅ—4dÔë-ü–Úmthz„£z¨Í` ï=¸N͘jˆ2ƒöa²*W˜.ÍÎÐé$ DøR“JÉ\9Œ@{ærâ‘ +a³}ÖÒž +o\5\¥§j,´ÉÊéº@$R¸ooÙ—œ«®.Ý8÷]Hd0àËJ?Ó1âKò}ìÌ´BE2!-|^ = …K4LÇ«Oƒeæ„òÂØ!mßÏ©W0>Ä…&iYõ-š¸aŠ.:2¼ðÀ#IÙ¢Ž:VJ»#It¥[’¯ºŠFsH[ Qpé½£ÞøSÛQtŠ1ѯ7N_g’³²¿»V"@Zº^õ_g"ÿ’|0£ÞŒÂ€ÏŽZÃý±|\-*×ö¦’§Ñ¶ lf.ϲ÷<³ùWdŠ%hÙ;G) ‘ækÁ®¥:ºã†Á˜ßX#œÝš•DYA`:ÒÌ‹ÿtÊ¥ø°‚A#ˆª2ùi»Ï‡xs&üBf© S ª£qãÎ4ц “…4És©JÛm<‚Ó¨°4ô|<Œ‚˜‘.G =ª ã9Ž{aO¤cçú:®9Þ ªå¯ñòÜ2¦”‡n¦pùc*k•„£ÆOö”Ç9¼ó̽_án\ìY³Û®¸>D"G-Þ^ÌËK¨mM$òw<8…öm)Ž fûÁÉŸ„ øë]µ#‹¤| Ë-Ë;7þ>Åâ©HÇrÕªù#LõvËÓ<æ+<µ"œ%Û£*)µéyv o,„kU¯%$´iS×vV}›¢&Yóz$ôd +¦ÉÏ{3…9Jþ(Uœ4Œôßm"TQPÏ !lU$F9ßè +l)CuËlLß}ý–%Ä2*¤´ØÁARƒ ”LÍKË@³7‰-x¬[e†s"Š#@Ä9}ûy?)&XKîqˆ -¿ ƒÐ#5`¿£ óoeP±—šcá5ãx&ìÜeäÕ®R ƾrÖŒupð7j3*ñL ¶oå~F(±ÙÛ#Ò³yŒ´u—²&ánç—ÅqF¡è0fBŠ¿ì¹ÛÙûÏÇJÀ~Þv‚ôu"7•´ßÝûÄgHâf§P˜­.¬cÊ¡‘'‹† Q}QN„C¯}ŒrôÔÁ¡ž‘°æ¾² ƒÝ·B‚6&J’Ø‹¼¯¼~´Î29ºÏäˆÔºÍ´ÆÏ'‡Ia9AYƒP m)+CeùÜ"ŸCô‡]ÔPÝOc;¢B³™Å_ʦAE»KkEfqvµ¬§ŽVhZ@t§­þ"PÔbT‡½ð&Ê^¸¶ÇÈ‚"‰­€%j¢÷ÑÆ€Ýí(¦{cGì·¬'¢X×4Y± TU¦ãJ–ÝÐx·6ôH @wÁzs¡ :T@=ÓF”ÉÍpïRîi?;ã¥Œà˜‡+ZÅÝ„}ŪP£þé"¹wØU>y8&.pƒ•'*”]›V’èÒxžlþ²îS µhªÒyÜ u‘Õ¨„°ÑÒâdOWk(|èÄÓ„¦| +Æ|ɯÄ\ó(úÓl¤Ÿ´ý·Q‰–“æ',úØp=ö ŒuÆó§óÀ…ɱ_"50 +уtû!PÜÑ$ kMN"Ø^U.w9ƒÏd#|~žè—H ã9Ÿ¦\VI§ûG!}¸‘Ó ÓŽ2,ºKH‹,•zI±ûs?é—,Ìæ¾~•™ÉS;X(LbC÷×u3Ÿ‚jcèK]ž‡`þ¼:jìÛÇøz¤Û‘j¯SßyÁó¢×:j}E²ETõw0ÃÞo™"”/áŽ^¶[ÌŠØâ{|Çý3NëIR5Rì±<Žå^ïj½ã éz³#–r½½W°³Û~",I–FåëLÂäЩgÔT)5ÁsŠ”B$‚Ê߈qîÄÛ³Åÿ%vOó¬$uv YtëyXÍ(cÙi`ÝÇKáÓ†^͸èU®’÷“X_Zì)%z,©&O_€°yJ‚. z ²‹é  QØ«hŸÃõc±Sôšæá”F×”,¶¢ çÝ´gÅ\‘jaï$Ø|£ì„P“u½¢h…ßåQ¦HÐZ²$ÿ”'k?ÿþ_… Ws¬yøwK.~Q‹bZþZ”;`M"äÈI%àýOÖz° ì% 䇘G+8ZLø…zü¶óÙd ¤h +ìëöW[AAX;µ˜á]ÏÛÀ„ª'cŒð;b½wÞ(e¨ÞÁpÙ§ñ HÀqwÿc‡OJiÉ„åý¥0ÇyÔ:ÊZMWÅ&8ÀiÅ{¥UBFiro8™è¥‚ÃoŠ=þ' 'Ùìé~¡F|3ä±OOF°_nPþÎÓhµ>²’Xq’»«-§'À:sìg¢è=ÜÅ áÙÒŠCŽë¨p!AXXµ2Á å ÄÿÃ)i¥%:ÔdnvÏܨÀZÂËq$ìÆá +´²¿o;˜ƒ@0‡š]oO1Óãm²ßü! €RöÑý“±Vô¹ºú}ƒ9<ú¿Ch’§Åjc?*îp*o $ǘà0ÂxUBØÅöïWÐÁá[ÑO[ +Ü]gÛпǪgÔ`LöÒ7DþÑÑy”ÿ@N;*Ç€/†Ê:tûGÏãäB›ÑjÔ~ôË™ÁBvDêqÆ}Æd{}y$ÌÿLï¯ +ü7ÿ¤Ÿý¿ð@`Ÿÿü` /»¯>5xÖm¿ÅÐc«‡g¹Ï•i»®ßb¤î¹,ÏcF.±BúË–ôÈIÐ<•Dû—w¥‹V >¿ƒúÅÊ…n_¹£‡ë¬ fEcâCߎ¤ßNnÎ\^6mÈ/rðŽj6™«:˜FñUõ­!”õŽà +‚♂k”åMCÑr Eæh ”—ŠÏõ0rØQÅq)=r×RT­Ÿ@öEg±ŸÏödKQŸˆƒòvm£Dq½{o9¦3F/ÂÏU°{í?-A¤¬ñd $Kjª=‰ï8m`!<#>¸IæfjÇÙ…ZDxÆ/KÛ S£Â©ú§s:Ê’àlªF8;üÎP™çbß–3ÑFŽmV+c$ pðc·€Òë +֤Ж6v̯0m‡[Þ*1´>ˆeH£&*ñ—”œÔÀ¨2CÔ•¾7šqìÖã2²&a*‹bAÓ7x]ZÚjif”ÚðfN¯²*ayŠ—ÜñhE3,»s-")ûYtÎïÌèoWㆉ¸b–·½Ë1¬GÜÃ ŠžUðXä²÷ÔÑ{bI$Úg„g:ª!7JÎåùá0¶AI¿¡”iƒ¯V‹”×ï b6‘Ž¡á{šïAÃ-Ÿi0€¦}”žAͨ¯Ù"ô‚ý“«‘½ªÁûó‡ ¨h0[fQxÿJs4Tú‹EE´µÛJ®Ó×ñ¬Ç¢WàÏûÊñ!cN†fZC‘_•èΟSV@èaÕ ÄÓÁÝZ©Ö†²Ó‰Ð£wYqê¦yVÖ¹ŒQïíˆyû@ÁG¶Îð0×2jñ8¶q|÷8¨À  ½3½Á#ÊXx/$½Š4y‚ 6…‡9­Èýê@ ôfýçý`R¤5½ßä{"· [ ¹Ÿk +AådÀ8—·x8OÆ´OÅÓ§H+Ép##Ú‰8È ½ìùáà O ZGr¬·ÃÐÜþ‡ÏxV?£@²*^±Ø? „ÓŽ#ÑUb#üL劇îÄ{“˜#±úŽ !žäD-îÀGÅà<ߨ €Ó±8ÖµôAíz¡|¬Qr€ÉS„ݶƒP[«svm"ÆQ-¦l| àgè=÷¤çû¾Lš+U»×ÄjÁÃì*ˆBØD<êZIèõò ×LtväÉÚ‹'ìlþ÷‘ÑÀKWwÇ«dõ¨ý—J6DãçÎ.EØÇø 1[*ñT~>#Ò= _ÿóÏ©í\ ¡p¦+NÛǺó:R¨Oøˆ<$ò˜þÊ´èü.ïlÝ™ðg"Dm^LÔ^î“Ié€3…nÜåcÿlöÙäË<ÿ2ª½ñ¬ú õƒÅ‚8Û’ÚÆtÂ~È¥T)Zº ªcáès')$Ûäè’ëvŽžYGIÏ›z‚nþ,ns;ƒ¹jyñ %þB4ƒuFÅÕeêš2­—Œ 2©Õ:ÃÅØÅÀq8SpD%´úy+]/îu”ƒ¾AW{Æ?fæ”Qt¬!4û€X›J-€RÎvÊ'LG;bõ³†ÒT¥I›˜Û13à…pžj,ÓÕÉŸñÒÎ~_æ~_Ίõø¢{,uMkxÁ?_ö­vØyà +Õ} -ƒ+"çqûÐHmZ¼Æºí]ê[rß¾ž.ªóù·©íì\õ/º…e88ü9âFŘ”¨«¥íëîËa²3=¯kÚŒ m ƒIÚ(["v€~Á—œè>âäOëq¤|œ‹+ÁM—N9`,?`ê¼ÿ\m"±Èj,S¼÷\cˆ)Òñ+,J)€åè€2™Q[Á³T=^­L_Z-ÏoüÊü靸šÊDQ·êV'<'z“¹‘t²šÓV¨6­ŒŠFõ»³½Ëצ‘ª¦ÔSjNAS^ži¸§]/Ò©ûƒ/¨è¾Ž´ó<@&ÑfÐiØ#€ +µq>`Û®=mÇy´ Á{¸öa·¡þ¯1k91^“'äø¢”'Ô´3Ö.±$f§ ЈFS‰^¥<×$»í#"EÔ“aé £õ3J*=ø¡WÚP)Áœ¨m4zEQ v¶há¾@¢P¹˜¼Ê#5sl½àgôX¢¹VÌ#|O„Ûüt²yEÞüa"5P‰è¿wO³Xo’Ï£«C‹]+‡±äBP¤œ–,"–g–ý›ý5s¢À{!zULjV&¦e +`ÕW˜yÞy„uTì")–^ÝDoе×W²ÃümÝÈ(e +výÚXíÆNŒÊzhàê_§‚&JáLÆìoë˜ÉÙÚçŽ_àGðù®ú1ÅÓŠøµÂðS J—~Q¢ƒÉw«¥)âgAò¸`R2ì5ë3âÏg^íš]ëTñqœÙœ|Ó’k‰´Ù MÛf°‘!çße¿Mô(¨ßŽ öÏ(X{‡WzΔ åj¯²Ÿ¯jf¤Ø:iA—°(ô¦š¾ð_ýuå@èë?€ÔõÎÑ’aeܶ#úÑ›Õria"¨Û‹+ƒ\H3š‚ò} šõu¦(qÑœ^‡9>Œšw=gŠY#½ä¹T¦ö|Ù@æxWÕèß Òù8”›á¦ã=ßIò¹#üwÌc}¢¿™ÑâÎÉOVcîý£yÜ÷ˆÃU½m%ùõ}D]%T +ˆ$¿É°m¾“Ðrh†0µ|b©dÿ·ÏÊölïßS>ÝÇ_‹°¡… kó‚‡ñüðø\ü–Àç~I~FQ\÷¤õ©R6+#1G« @ïñÚÑN@:º†»0¯Çá,„ãHÞ‘ÈOÕpñ¬R´:¢þýa@Å%´‹Üw^îýÂŒúÍžÃÁBQ¾˜p X&:ÁŽÇsí(J«jÙ|gÓ6¤Yb#‘=—iÒA«ƒèÊ:û¬â´´ŠÀ§4}^™º3C]ˆo“Ù~~qs««˜ÆÇX½ xÃ’ɇ5l½AydDoG{®æ(á~ˆdÍ‚áîÉŸc§¼¤Ë1mõŽ.â|ðnzŒM°?˜kýb …ÍTí6m7Ô°¥uá9*4¶Fö ÷Éb 0”à¡fÙÕ\§ŒÔþ5èæðM¥OÊË ^Lb;Zˆá2õf’–Ùlá:ÙÂÈDŽíHñ®:³÷^ižÔ4Î"ª¨F#oò6 +ji&{KQ¤ŽÄWÔ=[,?ß™ý•Ð¥uÑíb‚±#Ú 4ê)¶À÷…çz²h±¬Ñ#Ô]]µ–™|pq+Èd¿’ƒöùNø “ÖsÏžŒ`äƒu¨ï®,Üy +md]Í–»ÙÚÏÆü!bžlÄüë´ÏµNÔó’Ž,Ù£q7èÂÐÓZbÍ€:;æ5wx†)ãùgøêò_÷ƒ¿ÈΟHþ´¯0‚"‚ 7¥›….ÔâÙ¥O•°À‚÷Ëï°‡Zñ‰WWàµû뤉âˆêù- $Ž62Ã1—±‹KÆÈ÷/ÿöð{”昃5Á +Ö=œiíµXoÄL„¬x-Ö^‘‡ï“ñ[ñ„lr‹ŽrˆÖŠ2KÔË™af¥O×;ö"â)¿}ÌËËéç0ŒÉ šÁqS¾Q”eÓ¢hÎpédðq× ¦öÃö{_ ÒZdk‘÷§Ð¤ƒGoÅf¨²†ì[ܺIOâ™ã}x¬¨c´ÞŸ‚iKÝyèšSñ®–ÚìFšyÖ¿Ìîý„˜ª®yèTÏíwTõÜêŽ7aª‰˜_Ð Òçqåµe$ *çÓÁHúÁíH|¯'’mÞ¡ÁŽXÏ‹.wF·U¬f…+.0 ÉÌø.Ü;ŠÐuœ)¤ò\"ò4]ò«¬£¾W£×ÃJ [Œ‚&˹M}1£’IÕž RîˆH‘EwÂ:˜÷ø Ãÿ""?J½¼³h- 3‰z„ùͰ€žÊT7©·¦}ÁÊÿñ³+†æµ¯ûˆ’KÑ—b„ÿ¨T(:T±ê'CˆX#Wñ¨NÑ0韹i´?º*lMþÿçq®Lh¸åÇuž—‹eø‡€z`Ó×|û)ßCò°btçbµcä[ložŽÎÞ ‹Ó$ÿT×Û kç÷ˆ÷ýÔ)•54>ŽÓgTo¸¬-»Eì0:í?EP?À´ovÿÕY}Âð¼vO=Jd;3¸ËÛ8iœÓÃ¥ @¤ ÷%¼Öc©ŠÜõãP퇈ܼ`ÒC¾YŸŽóJâñÜßt«_I·æ‘·.egAw˜sº…àu¿{ð³R/=q¹äÿ_dmH­Å®†q/èý^x«-é¤M®;b—8ˆ¼E3Qšßí¨%r”³[Ïá[µrQsŠ ¼dʘFÊ€ÈH<ÇP ޳lÌýÀ¼J+ÊÞÞ÷—¸ÛŽ¡ñÁä)PV²ç¹@ŒM±¼`»9-x^úi¥Ë ü©`Ò^>£”x0¯¬@¥½Õ ÛåàCáúêŒÉþÌCpÎôe¡ÍÐ/ü ˆÙvVšC$ÂJ²`§ÇLö2½@tD¦b­µÝ_’œõèP¶ã'ÇX] úJçøC)ÂÛW¬#0TÕ<7àUTê„ÑÆê÷×ñ£¦…õ±g¡¿NÁ}°+õM\qÄŠx!Ý0gÍ/Ró‹Œ#0˜Fãã3 p„`¡çLõZÆ.lûûØt”jÚÇÁ™¤!ýBË™ô¥ôþCD­Px_ØÎúGÔG–ñ[;ø¨¡bЦcÁ7Gt&x}ô󑥇dÌ-)þD)O»ÿŒ9*FPgå>¤5åöÖã° v#bšÞí%ßëOg ¶&ü€9îhôT8W|Òk]¦¬f³¹¶ÒÐùŒøó;ÅÓmst”#8Î/w¿{%E,ú(Ú •ÿðãÞø=¹ ødûéîrÜgY.”TŸ/â|h1þs’IúaÛšåw~ó=~ó«Æ“VImö•úRí1Á’j/'rÍ_÷šÿŒxK_CšÖ²'§•£tÔŠÀõÛ—éÇÙA/¸ðÑX³˜ýN•пq‹>"þñô\·¿ÕfÊrðt”€­yveV8™EâÑ¢’w †Iª×ÓÇ – 5Þ Ú8锸ÞVÙÄÝýD¬DŒþžh%Bh¬dÒD”çË£éºÂƒšòt¤A_‡}‡Ñtå¯e5*Ô+ÿNi¼ÿÒV‡z—õ‹}Œ-ÐPeJª;ó@,¡ +)MFþÅŒZ›:'ò›/p„ó˜f#MÊ‘'(¯H8bTo1„|¯¶ÒçÕ1•ÝïôþUºÏŽ­êýìÐig°7«ÌÐSÓ6Eðw½ûðB¶^±‰Z¤×;jj IÎ`Å9Nˆï4{ŒX=ž?ãwÇÕˆ{Ú¿ð³ø1ÂUß÷C€þf7<ù;ׯ58’ËÊ3@äq‰’ÌÛ»­Ol?§4ªXLV‚Ô=àÇ&/ +?4^:œÎ°gô$vµœ»¾ò˜Oe)g¼>&»E"Ep9c‚Q€pµË`°ÿ±¯DÆöNŸw:c”gÂ8.¦÷öœWm‡•v4š«:^Á?î}T-Ÿ¬$ ív!¥À ¤Š”9OêÉ¡ ÄL‹ü€äÇþæ:Æ=d ­€í˜kÀ6^ýpN$f"­e‡¦ :¥GÍäÐïLwÔpTMÔ5웫ÏghdÎ`ÛQîô‚jÜ’–Gò"¬cˆÜIÕ¯ +Â:–\èô}RèÙdó%+9AtAn‘àò§ë¸12¨$âH öKµÅvñž¥Yg¡ÞЃ{ZXIee€¬ô´é@[µª«íq9°à:ih-²„\f¶{¡œó—™L™…õ¬wí‰Ô 2„`žíl£·özÞCŒß(ékÔ>Ÿaܲêj$Þl`} k?Žŵkzk,?²ºìCõéÈãž~¤æ‘E:~þ9 üÙ,ÃDÏŸ T¤;{YéËIý®è³þÝJ±ëë•àüUÛÁ\#W$¦fRÍðMî +锊G];¶¸#òõü`æƒ/ŸzP2>*¦8ë‡?׸³[+FŒ©uØ•¿û`¤…Jêüݳ³B¤Yú(^Ov“ûòþ°ŒSóFÏÖ +76o ŽÔ<ø¯›\ü§XhxŸvc¥0Á$z;k™qYò7s´Ãʇ&+ü¿ÏD=ÝmK%yW PÓ&ªCw"$àÀç<þòB"d†[ùº\÷–}YEA@¶$•øö‚¶­I|„0•+x Vp=èŒÙqàôýƒ¼1ß“²?Çžæèß/ÉýüX™1B´ì3Â_qäW|a.ABîY'ºuï¹Î‘.*›]Â$=‘Òóƒ[ æ®.ßãâHÑãlŒÀg”ßÈÔ9-³”"“îÐõ(ŽB g¿ërÛ=`°zXû:¦â\Î}»¬•¦îòmú=îˆ:â>ô ðJÍE²þ u¥M^iiw•³ž£½ÛþT¦óõªΠ+ÇzÖÆ~ +Îs{_Ìïá8§ ‚@ïæüLDô'€¾ýw’HrçQN·1~Åû¯ã߯Ô)ùà^#‹ò÷+…´TýxÖ8Èd{‚Xc 5Ù"ª:4øµðõ^(˼vv­ê2ðиÑÜèD2]㫊õ¢³~ˆXEÃà÷û‡0š€¦¸æôÂ’¦¿‚\MÇG°ZÓ­½¥ý¦3ôù¤¶p…þ¥¾=Bô}D…ø€¤9È]ë/<Á·˜oÚÚLó/½sè†]!À9 Ìrh¼™ZQ+€ìHHPšÀGŠ‹cPøÐšp\3“±ôò%‚Ò—ˆ/!.‚ªÓp'bÄкÑGo5•aô—óÈÛc*Y³˜êý6rQ#P{¾léŸv.ŒCO´XmŠ|ºcÄ +Ëö¼&ܯþðŒRïÀüâ–$HÁ’½«—u¦â3SqQˆ;©Gî]MhªvX‡ŽQ!Üö‘b!úŽŠ´çùá8ÐCµ¬.ºÚN­£ ++¬ÑFáNG0Ä”ýÂÓ3²HÀ§ÄÞqÙ`Bus»¦t¬3ãÄ÷ÍÇe݇ÔQÓ¼…ðØ™†Bnr‡¹Ó} é9NØÛ•·È*Ã0KO ÜNŽ+=¦ÀuöÃê¿„=58·'" +õu?_P¾”_*Þ?§u¤]ÒõëEõÞv6#±"^VkÃzñü*Q û§úõÓ–H?ÊSp¨Õ˜^ñð…V2U à+±èO|VhCU§-ÖãW9 „¾Ef߉†,p×Ãpm ;¹:%JÅC3ÁŸ9®V°ÝKO +­ yŠòuäøá„eko?‡ÝÊŸ3‘ŒÁ”·†2ýøT\Ù¦úð@Äü=öÞâKRš¡ûêÑi¯péƒí½§ÑÄÝ«™bfŸ€«”$ÝÏz{Ïô=ŠÇ̨ýL\€__ˆøt¾-ãø4´ëbRÌîD 5Ð>#r¦z ²8láoǹqìLßKHæ­Ù@)‡t:%/Þ—üÀ‹ÖW÷¢¦FTÓñaGÕûDí5êߟëyÂ#¡e#X-íd>ìóÞp<Opt>í¢¿ @&Aù…`Ûü]»è/¢:²û0Eµ–Û®x³ìÐ,´JTwfáÇ{gÖ_§}‰1Þaú±Ò‚áÚ8)X¡‰»¿”P.ÙEÕj©,’Êç.›^ò÷¨½nÅ‘aï›"<Ç·½;¦£NŠà¨t%,¬—›};×13ÇÌàõžïG ‹Ù^“Qw‹$sO‘eQ¢&ø¥ªö”µ€èý^µfdüÑ¿Ðí‚› Ž¿ª¸û]ó Ôa¸/þ.OìÛl-@; åú†& +ÓZj/JAý£á±Cy•”_@Yða—t7Ôß ”£žÆ>:ÙgI7ZªÊe4±ÛïZSß"^S°Ðð¨j¾GAÑR»’ó íuçRû|€aÐWûÅ=P¯ÙðÙ«oœ¦ºÎ1i.ÑT{‘Õ«Æ#e?)\Q;Æv*ÏÌnú|:X9­ÉéÝE¢³ Háåzâ91ºŠç5{·ì± ùçavMPŸÔû’~ÿ/<Ø…éýø=±ÞÿòŸö™¿ýëÿî·ÿóÿø§OV~ûïÿÇ¿ÿûÿû·ý?ü»ÿí?þÃ?üíû/óïþŸ¿ù_þãþ/ó§¿ÿ¯ÿßßüýÿõ7ÿÓúÏÿð?ÿ·¿ÿÿkNúó_üïû_ÿö?þÃßþ§¿Ù§ø‹‹{¾®àTþWþï~êö—™ûï|©Töv-úCËúñ +¤U—§]ý݉‡H»³>ó3ªª³†,Þ`" ®`Ô÷§¿8"¨’€Tª Õ‘3¯ÔµôCÄk÷(!FËÔ!Ýø­¢â7#ÐûX¥ì}„š{'5¢¼ö^r Gcqg^±ÖIä+šš—Õ&,QmߤÃ{a4¢?Fôú¶¾H»o9S#Â?÷1z9“‘çÿH°îRûÞ¹Tٵܖÿ{gSš_4´¾îDÒßÍ3Â&J˜Æž€.ý~‘wž°åAVJ1²ZŠíŠæÇÙ·AçSžªB¦ÂnO_ë;Ú®âdÒŒŽ*4lU¾§ê„ÉNSj§®ôîÐÂßYÛP_3˜àߪ@ï¤g¥v$ôN\AÊÐÞyï^ñúQR¼íÝí_cURjKGN‹`Jƒâxÿ4h +ù7Š'O€ç¢­†ú¤¹i4z›cM U#ü +톬ùw ÿ4ÈQø…´ý—M_"B—Ìî¯ã»B"¦0å·~‘ôF®K"vùÕn¡XšKå +Ø–vÀ¥¾yÂ<‡¿ccуšÜj“†ßs­Ša,{\ß·-P;ì’+q✰ ¬Yf{ÿ£›î«*_£¡ÁÞ†(ôsiÞ©óü9“+~^ãåþ{5ôe‹HÎ> "ºßìõ‰.ÆîT‰±¾ü¿ÎÏ<wÐiÊ÷¿z²£ï/½7û¯@@`ÁÂìÅ)Öƒ nÉßoÒë®ê‡ø' "æ| t­]’¥FYþœ Ñ 'xGñ:íY4K¼‚ ±Øg¼D ¢‰}¯5”n`¡Ž#óu¨ ¸c CªHÄþÛt'Õ„^4ÏŸD HaE±þƒøvÎ4„¶a_Û#¶2)@~¥òd4‚& }”0<è7Âz€ +ü!0†ÎÀØ·º½¿ÉGÔ®ÅÜbpóªÐöe3 µ«Üµw ËÝuÿzHÂFøá™ÄÃ&b¿>üÖ?GC +jzÕ,Ó¸+5}Ò;¦‘?DüôúÜ7dÅoòLºÙ&Ž<ÿßx¿^ó~]6N×uðj¼³: =»Lè ê÷j[¨çôîC @Òo6I¿þ£wáEæ ©±žó6ý×]c!ú]Êã‚›º¸¼+õ;^ƒåHƒùá­søb¶ ÚáÝL„²é{}[Z0!‡—±^1&6÷šq”2ŽjfºNT=#¶ùò«w²±­«§sÃ̾ŽØwÛñ8çx” oë3ÂE´ÄhúA÷sþtœŠL5Ðìn[0bY¼˜d,W2–6_×Ì;˜•‚àÏ'5¢3dPµßŽ“ú4j?£ÝÃÐ< ¢i‚§ºÀs’§™äéŸOÂÞt9<ÿV¦@š]e#ИvÝb³næP!±`gƃjó°.u[¬S ¥ùo­,J Äry—(ÙЦeć–Kàk/SâÀžølTdÑKøøBÛ0½3ì[Ï ¨tÜÃu\öØŒxnŠÙ]¸ÝWޝ$&zå@·”^œY¼·-¹ðç¡›ÐX.vkD ú¿FHÐC¶¡Ÿh9ž§OA|J«{zr ¢ +T0”•¨;Q³_¥ùN¶ú~Çdˆ4É,˜2Í>@²%y‰éf#Ž?üH‘ÜÕa¿ ÚGßkhä¥)EòàzE¨»5¥˜)þ(¬Úñì)¬ßJªßÿö5hôà –Ÿ\I ëÝYÑOÈŸKóº_`8jwÃxh±*)º“¹Éx¢=[~X¢šyí©™¢3Cψàc‰ð¡c®×r %ìÒëÉ•z¥|=¿È +»ªÐ{)I_‚"¿¥!ìûMK†)úârkTª1¡ÕüG¯ÈŸÎÕdcÚ¯t¡ JÜ£àÎÈPrú»…³/–â=B°Îú°îǸÒQT‹Þø^õ/lîàÎDÖ®Á5¢j˜T“ñÅåå@bqÎD {ÿy·Ù¶£¢j†æ)3RFàqüâ‰è +ªíËßUý5l}q|-)½O¢jeHr» @8Z‘9î/Êkú[UÚ%¦ž“–Ç›{¿u2[ +=ýXa}‹H}Rî÷rÐ%þá8­©s¤Ï¡½~P„ŽÁ±Ç¸ˆ(ûužŒ›™<ò4-YcÃ×ëæE”–ŸTõàˆÂçñCH¡ÖâU}¡¨u¸ÜB ¨¼‹;[‹é!°ÑñÁI0øÌ^7ÊPQAäZ˜G@Ã'"õË^^µL9  ›œ€ý• (ð}ý˜ªÓÞœ-M„aèHSÁ´Þœ W( PPwž_tâÍW‘Nýæ+ kʾ×rmÐ^Á^Î6~<=ÍX3±ïÌk¿Ÿ±àm¦ö-{Áö^Ý~øÜÌl9Ö¡Ï{ö½¨ Öuµ£‹[m ¢Ò{ï´§ÇWí}ôvöé¶GºÜÿÀ-í[@¾OœRÙ«Âß‚³<3³ý\-×nÓ-®cÀ™ü HÑ—£ÿ¬*wè-Ö3­è?€DK±„ŽW`W M˜‘é¡ÚËû|Æ8€î¤èÑ,% h9wE&×ãçsî€ü§§Å_ôt‰h_§±‡×/ç¶FÅ¥°W&ž*ÈƒÍ + #ÖÐo§´Ýˆ&Ïç¢èÀÍ:iï/PÏYLsSÖŠ…â$QBvB[TÄ’˜Ðp‹‘@DŽe¯©?<Ç–’ çMÕ>¢ž­áGªÇ Fºˆ/]IaèÀ2†£ ÃÁ.ˆöŽ{1.¾Gdµj¡ç¶¢‹ ø8Í›=xþi×fæÏ3óŒ4Q¶.*ºñåŒÜË×>Þ©æƒC¥ŒQ<2AaE¾.)|4 ^5 Aó•/äþ¹âº$³<øeàZÕkÚÕ¤n“×¥A7Ÿçp…cht¿dÊ~ÇÑ{—y›×%Ç¿v¦Å% §k’‡›v̽bóÔq)w‡ÿ`ÏXàpˆ{ÖOeÎlí`F;'ÚÙRËËÇ€X×)”ëñm2¬Ì–¹‰²˜ZvüöÇIÐ[€hx¨kÇ~ +› Pi†v{{H¶„d¾„…þÄ-¬ ê˜ “!ùá6¡BiÑÎù¢:¹o B‡„Í <5ÈmÄåC‰@Ý›î¨î2eŒ\÷åVF”»Òuì)Ñ$áPE?y¦Ù³>[Œq—$hUì€C³×Ùóy“+ÊiM»"×ÒË\Á#  úTdxß]µR!Ä~·«An}¾É¾„ hzóS`ñUZh1MÇÞƒNÊ«¹:=Êk¥Óæªë ¦m]ÝAæõž`Þ Bš= Z1U0óxÌÆy1F}ßò‡:ìKûvîhøÍÀé2z¿æKîbj´øÇÚu²¶^{zHŽ•Lˆ•OÏ‹¥S"¨»‰Ð}§k·BÎvMç¸ÆBÞQD­_¹ÌájÛeÆf»¹°¦ù"²¿¢×õÏ/rÚuøùÜg^§$ò»°ÌÞ5µ˜ãáÕ»^:Òt3sùŒ—\××ñ—"¶tI^ÄÂ:h¨[®¸ž¢UЭ€uõ FàÉøvÀü-Â3õ[®ßN *·ŽÓ‹ÊB»õYÁWNiØÖd¿ƒIn—ßу¶š9íëA$^iäÃ)­þûLë†Q³¢-L± ZM)0âAž¬ý‘¡'SãâX¾5ª¿YdÈV,jzjüÀøŒøK¸÷ûxýEŒ^ÊO¼”ñ‰ù±6ѨI]ücD®Ípw|‡a– Iö‘¢úQ¼ßáJæòÃqvåo€/Âûà¢hñ./ÊOŒj‹ÄGU÷Ι¾G‰£b`1dÑiN´â6GâÑ]wý¨‹ã³öñ>oÓF +í–ÖýË㌸IìÊÿhf8Þ`¾x×GŒ”;Ã Ú hœtå5 ®YŠ(4ªPÎëzhÙ°ãq©#ù¨m¡ø)CøýW‹ušÙO=iqs V»¸ó{"Ÿ…u°E0%¤×N£AËÞèJìí¯W#Q]`#ÌH)IËùFÉœJä•r¢"£|Ç®{•¢xÔñAÆž7ª\ +F`©èƒÏê˜çMÇç¢ÛiûŒÈ¯HöÞuwÐs–$éñiÆ!¥ý°4G…^»•÷øQßP GXÛ`,NwVèä#È~À;ê»±ìßõ3"÷lˆûbºÔÇÑVþvœ'ýZ®¸»•Tí¤ˆ+~ñë\f(çLߢÀÕ̘_^êKb8ZõŽ °8ˆ,%ƒ­Þ¤BêgÄûަEˆˆïMùËã`í…Èv²WBŠùügK,´¸AÍ·×ù=jÅIÝr’¹€<ˆ95÷šG¸Ïs ‹ Þ—ö5mu}È-»Õ7†ª_äçqHS.e¿w\í'5'5{’§ZÁjrþ"‰¿Ì¯«ä!íË»ÐÞçþÔÊ#ží +Ù!Œ§•ø|üÕŒP9•DXªñ€˜wŽaS Õ»ç¬ð_‰BìÐ:{Á$Ÿ×:Οà£ð01"ýÁÉÝï;üb1Æ‘‡=ªü÷Þ£A{Ü ýUXTM <ËO·2É3Æý•ÐþeJ¼Mü^0+éãQ`˪‚BÁ èd8_eùeGü«Päï2Æ÷MÇ8ã–‡‰ñŒ·­5Oúº"ìdî^ž4Öòd°íÕnðCóW=tñ¥?Ý·ZA»Šr´Å;†s==¢‚\úu~ +¿:?›4^vÄ—›ä+H w~tºvxõâ¸BGþŠ=ê:› ˆG6wÏïàÄš##†–çéúˆÚ»øzh'ïóÌìñë¯9ZiÜ5­`Œ…¨¬ôZ0cà`I´f³i±¿zz¬;íDؤÇM@ïmã]ïÀ¢ Â½b.Cùƒ¹L×÷¦žF+úi]¯qï´XW~ÿüÏï0 p “Ëï¹FÓ 4aa±H¨@M¹o‰ðñãÆø=*j#·2Züû8·½Q.ÅpK?Þ·ôªxWJ< wnÄ@hı1KlLÏœéZï4¡¡8"ß©=’áÈÆöq®£fV!½rœ )Yºñt]œ7Ôôq€r®‰”,2†ÕÇ^¤*ȶLyúÈ3‹RHuN¼º?B€ÿ냴™Ô²t³ µ_ŸU¨à h \b*P›Aú…Ô\6³*Ò̺Âй²K/¬fëòÃçýPµ– + +?n· $;ÎYÉ1߈~"ž#âO5DÄœ_'RÀ„¡b¿£cAdÔ‚¶¦éæ/ G¼7›Ph#Æ›ˆ2l˵H§<±P|ŽRdδ“4^ÚýSiT`©h<í×b]§(?jÑÖ"˜|ÿÞø…‰•;n^×AìŒ8CúýéÚ)£UãT&}Ôyú¨Kéf<ŠøÍ8­9¶®Æaà±jj>kÿ¸óGLÙX~(ÉkáD2üój·ïw¤èa0«çÏA&Ûùg•èQÈ$`™-”#ç×ñm7ì ¦èÐ5"qÊnÆÞœˆRàŽ¡R?Æ¢X{x"^dF r噵MºÉá3ð(’–wÝrkªiP +XmWêìû©ØùL=­úéL1wН¬éáû\aµ+’¼Ót!ϯÓT|älVE’Öí‡0ä Ã)—$ u·ì§€ÿº§Æ9mðïQ&£gÄ žáSX'ã$Å¢Z0Z§ðÐF"aEå96÷ å/y‚|Ïó¯ ÿ >3°‘œ ƒÚgŸ\:JÌ•a_p’.ŽÈÓTÝw$»Ô~ÏF$[Ûpî—ý…íUESiÌ+˜-bt4æsÔ2öç´Hg"†:©ŒsžŽÛÐŽÀû)çŠz¥aóžGP.í"½šâŸÏÜ +Ö&±Ù.;ÁsÈ_¨WVf +dµ#‹W±¥î—¿w­;h•£Ïie(!òàXLuú‰0Ï\eÎÆ¢îE3*.®ŸûNÏ×þº:çšçC­´èà=þ¹ÝP22ùe3CDÜB#ïTL€Ù!¼c_Ay«L£#~mP£–§QŸž ngŠÖ„ +åµÑþž'Zö5Ö™j¨j»ð8¹ò#Z[uΙOñ +'gÒüúŽ_ùA¨þ<6ï‡ujšƒÝÉÀ šÙƒÁ¿Ž«, é(20"¬ G{ýø÷´æ:å·ÏØ[%‚ÿ%áüýç^‹FÝ/wèý ÇI±¸Ì\ cû%7é‘W´BÜÙÂÔrGì-d1 ¡Ï«Væ·ˆü^Så³]èB…ûq÷ýæð»7 k4T)^qÞý!±€Ÿø—©ÿżÓy4æ÷¯:WÔc˜Ì‹çý¤Ý¿+‘AƒIÖr;VË÷ïïú½C*û›Ö,·óM$ÐC BX¡z"Ãi@7ŒPV·¦˜2 â"õ¹ßIïsÒ•fû¡Z+ ƒ‡³i"n[P·Œe­0f¬0øÐü«:°…0¾ßvÙÚóeoeãŽþ”äekh +ìGÿ»· õ3Õ¥¦Ò…>Í>Ðj>§™GÝ@–úgD~œoiÛçq Î'kÈc/EÇ’`ª¿øôól×GÅ!(Û›-骗»Îåš%‚7Rº´¿.Äù¹·à*úñ烂sú¢sËAB¢š(¨‡ªQaRö°Üi†¢bÆ.JéK|X‘‚X²S_EÔéÅì°ž†¸RH&"”°mJØ®ç >£˜Õî¿.%C„Z\äõtâ˜j¦R/ßQGÁJUï¯<ÂÚA‚6¢VA=¼‘gßq.DÙ¬Iø Â7Œô¼8}GDeb>GÀÕÿñëLn“X8«!Ä9i¤dåž¹q^<½Ö"%‚41–Óql Ï”_B¯õ ñu¿(œ¨á%›Ì±ÅÌPØŽþÞ%/ç.ì31­Æ ¦ÿñ Y“(Û ¶û5Øý‹(”Š"þ‡î[Â^q#µ´¢& 4Z}]Q’e Qà#âÏ'WR¼Y‡ÔŽ3q,^‚ +€úE¨QÇ]QW7»ï(s÷/HÂ_|­É­I¡Z°À»¶û÷ ôèç~='ª€~¬ß#¾VH+0››2l߃lËÍöÅò7¢?~é§WY—ð³1X·øqŸvnwÏí~ý½‰ê0+ù©Ë+D†0*š…4h‰`X©Àî„ Àc=g2±y&v—FèÌ·HØî_gÊŠ}Fo +šÁgØQW9WŒ?›Í£J¦‘  nMM+І>—¹F-&ã=d{¥IOŠŠÃzyK=&ìLwWFä"#g6F“¬áäy¤)I1…¶] òQ™Hœ—Þß"‚~ZZVoþpœÚ¬€Q©¹#‘ ì”§þ3‚÷KøíÒ­ïœé#ꉭá^<œ ƒÄÔ¿¯eç[¤ ñEA¢äwRåQ>¥MÆ/6­©§À¾û8Š7f.Ó§n­3Á.娈Ë𢑛vúÔס…൞£ dOA£½ òc˜¨H›x)d °ÙÔ1Þqþ -Xs)XÛøë@h1‚V oL)²‹O?|WÄIoæ 4óA|ÚïCrDw4&“©ä(K½_ããî,LîQ¬ï–wÓ92Wëï'â‚™Ö?#r‚•ô°AQY?gçÜ„wtŠ×¨ŠáçNa—ìÁÃð\ÉÈžòþ¨;ϾNnGïömµïQÿþ\“Å~±dfc`ÌÆPºÛ7ªê­”嚃rÚC×þ1Äk±níi¾À¨²"´Hî‰öÌ~œË¹iå$¾ÉÊV1ì*» ÌÿϳTh…îÞÏ«üpš·b‘ªýô-ÆôOü{ÄÇÖœŽõ÷(ìí¥5ìuÂQ.ê½fNfˆTs œ_ó \K¦”¢d³3ðzºpš‚âˆðT@@ Ì -Ü\!*àó‚R.3^9öš0Ùó¬Ïò•ý ý˜A"#p‘CÐ㱆Ågy4~f"Ï«Ùo%Oh·]'Èäg¼€µŠH€vE<¦ +’1ãŒ_Ø‚ˆï]U)@6Êoûy€ÞòýŸ3¥Yécàä4ŠŸ½¸Ÿ¶WìHtÅ]øöü!'†¡ ü¾´³üF]‹úÕmu<¯è& ÞÇ•AdÆPçŒ$6»"ÿp#9«™ˆ/»ê)gz?ê<0Þ¶éÏ£€@ôO”„ÔÖý·?Äü½à@‰øŸtôûü÷¤óvL5È +aÔDÅí¢ ëpŽ O9€ ¢”ªx^ÂA–32 iovi&Û“xØð2BZBEê æöA–WIŸ7á-Œ“[¬Æ˜Dë(iŒAÆh ’h.[^@|A"¸‹¥é‡a^véÚž¬UéÁ‚¼8‚ކ¬‹]æÇÌíÀ#ï?¾´Ý Le¬ƒN¨‚âÎРù—”ìóв¿;>]W¢ºèg¢dªìœã`ÜJZ9^‰_Éã*áŒE.Ó¾|6²sü©V oµ£NÈ&8»2^é˜'”Ã1Ü¢©×T7 +<™6·PEþú”yXéT@É Íu¨íbÍ:ª™ƒîØÇq2RɈëZFóЬSé>‡@úQ…U¦úˆï¬¨Ä5é@qlJ4ùïbÇöp玨X +l<Ö§B¤«ø/;!!¸ÀYY’(%J TØäÐXU‰ËTÖeH¢sUW~À´Ñ«úfnF]çCmÖhŸÔà½l4íŸpnýD,ÿüÒ D˜Šojß]{€“¾›YsÀŽñn»wÛ5ŽºÈvõ%¸JÙÑyϽF'­+y·SKÙKu²—†y±ä¹Ž8‰ƒ« ò<Æ3êM¸1Å] +œÓ›Gƒ=x ï7x"É¿£ÞmÂlDl*HSѺQvÈyµÌ'˜4»Tåõv`Ž"ýýš0B+‘µ5d fßÏÉÄ4Ó;¬kXÕU]ù{FVÌïªq»_ú†_LeO`§Ûê j.nƒDk4jiT°¨Á‚†Xˆ4FÐ2¶›|—CÑp•ÊÛr&TÿçR’ÿD¬î~!ê]ŒRga®#ÝGÂHâ ›A„;bˆL«š§À!àþB¢î 'rƒƒQª·Æ¥ÜYl [ÀFÑE£‡ç:ßhA Ïd ¬ÀŸq|•;‰øu{aÚL’ÌïŒa”áh\iÆó»3ª‰LóÃÊ>UÍŸPŠ.‚€Ýó³ÁRkþŽÏñªÜûå°fv'›²…©;󆩺F÷Dþj=užH$?ñ˜ð(5˜Ä úöò·ÇÕ˜83Š_¸s²×Ûm¯5ë%ïñDjºÊ•£°•° ïœF¢¸(±ó’ óv» öÓ·œSGà´öqP£õÉŒÚyhŽ"•p'|O\¬+˜JÞá|‚$A_"á‡QºvOú?ºaWwx}#äCïz°Få%²žùÜ̉ü¢ûëeU8kºå].)Ë^ÖBÀTžÃ®l‡]ɃDIOç~ÖQ¯Cm˜üªàµIQÃð¼Ú&³´ÜŽüÕIË{Cm6s?ôF¡¡«/·ø|Á ×x3¢Èʆ<å [ñÄy]ƃfhº­_[QS†4$"TõnA\¯}‘ß’Ô`mKRsµ’¶Nˆx]§É¯*a¯¾I}úŠ#rÚPÝqCÒ'vSÓ'+ßqœ©P¼b7ÿÃDíMý~”^ÕÁBò/2±>U`/£”¥_G¼ÔÄ%7EÏ]€ÄM°8ÅŸý!í°5±ÌCgly[ôÕÃ’  |ýW?øNF|q>¤öþ‘x]áÀ|×q~œ‰è‚÷ïzµÊ¿ÌlÚ¯eûûmZñÊËÀß¶%ˆÇŠ’ŸkœøÈYÉy"o;í ÈëGFI€ãêB Ûxu˜ çV šÊ!FTk¤4‘Ky} ACx &bó¨äö™éÜÜ%µ[Ë|ßYd}¶ä)OÂ,Í¥3À["ÒÉ“jȽQ`¼tõOVRóuDú>l‰ù!¨QCØÙŒèPüOBöjz¼_HÁžŒïð¤˜3ׂŒñA&—1J3øïæÔVܹköÀxÑÃ3:å®v¤;U±¼(°ßÔ94øD‡Ùã~ëÄÔÇbÚª(m×»”šW‰šGG3å_?ýßFzO@ÞŸ.®X|CeP¡š~êß(8èPÙ‚TÇé +(ÚðawÑÐépœ>oõÞ ˆéL!©9#ìYmØß_,Ô´Œ +4ÿnTáþÝ4GmÂÁ¼ê^Ê‚¡¡<7IÆŽØù@É¥Àê˜Q¼+|üpŒýÿ×—ïúT }%jBŸ8Ö#Ét/À€$ÐÃ3§o µX\U„ ¡.T²Ó¶.´jØýju+M°'Ü¥¨;ûêïí× ôyTX9bvÙ ;«3ДÇN¯~ +lnÙ¾Ìç|¬ai¥Ê2]á¿÷è—P,j=Ñj–6ja<ÂŒ€Ê¼#0lóò¯~ÎÊOÅYûùZä Dý»V1 +W°fú0ñ+Ò³ÂkÃðrjâT‘+bª8QF|c õôßë–a^œ¹³|zöÇîÊ…‰j tFPÄÜ÷ÆGuP»8Cž°/Æ…½ü:®4ÀJ*3â¢,Ô’h<Q•_¯Ä•áZ¬WälAP9äju²Ü;@`"È¡¾ŠvZÃEñÑböHvD£­)ó¸_FzíûeËœô2M²ºÍ¡¨¿2qîiÁû,:y«†¾ÿššÑ£6Ð¥eúÇÞ®ãý’iç¾Ì Îpžm˜º”!_• ’¯ª…Õ ¾IËïŸk=bµ8¿ðR轋±å<ªóF⿘qÀr"©Tenå82ÒN×ó…Õ­²ó_Á±Ñ%dà¾ÌÞÙÕSÁŸyžBdqƒz‡ZÒxdø-J$=ÉóJ6ðwù« +¶èëwG´µÙµì9.–L¸L½ž2ܘ¼‹äÊ$(h$#2»3ù½ƒ(@"aGGáô£æûüajó×,k*f#$ºûŽÝ ñ-umÁïZ˜ÒÜDª0@œ$.ÁùŠƒSw’'í}ÉÚÀÛù„½Dº¿ã1SÝL€’ \Z2®CCêgýùœiW  úè¤$ +¨­=9žµi¡Îrè«â⫎çþÙdÞÞçŠwÔj9“É5_ÑÞ×¢|x§H¨.ÌB&H§yÔ1n5#P½?çiÚ¿â§>£,„JWž~ÝoD0µQš¢Þñ“&_ŽhÇ>œbÑáœÃ9{!9ˆÈUEÔ“ÅçClÕ\ål§b÷×~LºbD]³¢š)+©r¤=´™wº¬¬W/™€¸È] 0‹4’Z0õ©¸C¢ÚÑNšAi³ú…äÅ÷.¹þë>stream +Ëø¾Æ¼ÌÙ”uœ™` Å{àÿÎP¢Ñl>­%‡K¸iȪÔôÄKà:^Œêqõçh‰±¸­°™>Šîèý­ä^1¤ýËÌ;~Þ’ùùéÈz¹„¦ÎøN5ŠT ,KàùT“ñ‹2êí²‰fæ°Ïê_»M=AùÖÇĠLJq^Š(„Í«˜Åy·¹I¯W?[]˜stÐ-»âëåw`¯ñ¡—žá~Ž]aÐtE,]•—Œ[y7˜1+·Qá}·¦Sß;F‚¯æ|%ûî•û/ÑõšG÷ ˆ ™ÚQòÜË;/[ܦÕñ¹èGÙ?æ“ûú›f7¤Ø_•¯æoåJ[y_Œ¦e7ì¸ÊoO>syr9ê~ +öÐ.R%1-ëŒCŸýÑ—è 6'¾@1PÔèNƒº‚þö~.mœ4aÙöú™ù4tÜÊ™&íœ`±?aºrKSÞî«}«×zÎfFAЍ[ 'õ¥°î⨹/k!ÐÓD–žU°„æØÏ%j§^ÌáŠé¹Ó|ƒÅ<Ú<‘¯hˆÂçRŠ1GͮЎî„0öu&¡ì;ªÛtÛ‰0ïÕâkÇbªªFmKÌã^n¼ÁðÖYÇà=_Nô|Õë{ÿõ +¯Ø&GÁ¬ÕÈvqE«ÛÉ.abSN :­šÏz%¹{šÌ–o+ãù¸áðô¨*=µCg÷¸©at­vÄ‘#—çÊ™ÀŠÄÝå/Âîñæ_ר"¬ª‹­”:Ôái_“õÀZyrí .uò÷C½ù.øujhݧ¯y¡¼ö>²×ÙGa¨GqæÁ㔦ãý¥eSÔ¾¨ÇÔ¬a"PH×ì.‡a’‚RÔÛfÒÀ8zGqM”“ª@Eô‡²×‚AÉçZ|ÂÓê9¤¥{ù”ÿÍl>FP¨š=¿NÄ8›õc~„g5Ù÷òz/'!‚w+ø¡áÀŽï5g¤ÕGCZÁW²—HÐä:ûÊÚÑþÖ §™ÄPBL[™@ÁÊ٢ʨ5aG$²¨93kd›x¡6ñýz­xÐwÚÓµ:þ…tÝ¿ ~wýûЯY#yŸXë€Q=á +ï´€G抚S²@Uÿ™²Ýí‚úÅvSR ²û0W95ã^5kèñÂɘCTl²N ¡û]áéÞÀæËð,WV–N‹ @3SϦø=mˆ?`“éL0vzðR8z-c¾k1 +ç4ÚÛì:2ÓF¬7ÿb"¾Î$…¦ß}"tre}è¿ÎDÒÅJ£Áå T‚D Ûè:h+ÚÇJ" +ÝL.F.å0@úP1šˆ™‹ÅÈè=ógZBã]wS¤3£²gÕÄT¡ÀªŒ.‘ª¼#~-}˜¥¬(…‚hÈ9Ñ=uV¡H‚ãò2<l´?Ö¥oÆèsqà‚éUÊ?õÐØža +BX»MéÉ—³£ áqœH$^€"£]úú Ä5Ð䢨¨Þ¥¸B¿l6>4±«ÔüU@\ž[”2ÏûyЇBœY$L"L™ Iµ÷ðNöïôúRV½SÝ¡¨¹ƒCŽÐ7®¼¼x§Š ð›Ÿ8oÊëÛœH”ò7 +ög ÆHÔ×2ƒ%ü:ÄÛÚùäß…½^ŒpöêJywdzµœþ¸‚öÊ‹íÕûÒoõ qž~9øøtòæ +µ”¤¢…Î"ÙóõÖ£´#\žìu,;;{÷@M4«Èd;m¨€! ëÝ­âné^|âAfæðÚŽ1’xÜžG¶;„;÷MÂÉùE ¡}rp¢4¹AÍõÈ~ *…ÍﲌûÍ=M‰F=^J¨`Ÿ. êaƇeø!É‚eÝŠŠè"üg >øg8ùgDö®·6R;E9´½°!}ÝÕè©ç´\¡,‰9Íõ6îdûK›> [,ΨC4F!Yÿæ7ã$J•ÚjS‘ĸBjcÀ“ò{{Ó‡®‹šcª=ëUôÁX!¨ëA¦ÿžéŠæ~=`M9ô@xdÄôÊ¥wl™ä¡Š¾89O{ªòO¸±[P˜ÿ–Ì>.ÝdFL™&ס{Ò5*äTÒmh´È,¼4E¦¦¬dÌò®Ø<®´Dk>=’Œ{ƒŸKÐñ (`'€M‰ŒY¤ú•§|Ú¿…ÿD)õÅ;”ÓHàuúéç_Öùœ),Бn÷ËÒ[+o5E›¨Ùå{Ú–A‡é•*5°]”bõ§¹j›AîÎÔYÂYqá‘?˜´~1ã¶¥¬,Snö°n5^´+pµ¢°ŽiS^M”êYHÊñf"gÕÏ3¥‹3ëô2•0q~çàI«Z^Ã*m€^ÙëŶWõ~3sÑØ{íŸGCÛ]cо–iýËPà>êÂåñ-ëåü¶ØwÏh ÝÂà +åKÈú’á`h°³ýxüþ÷3Çxá=Q6M^Úá{Ïð½Õм˜ÉU#hW4,R$MÆ[ö9'êN¸ö!Ê«ÈyõˆîTg•šº[w2,ô˜O]]u‡||c~3æqSÉ¥à{ÊqF÷$xÎt”vk;J#c&1Eô÷É7R6®šü ­ÖreÕ†o&v˜ûÍcÔ¥¿0ñäæ28OÙ ¹¤ñ"CÝ«%ϤJ}HCÈCÀx-/—ÑJN û)Doþ¡·¯}Pů]>®8iÒÝ Ñ,‚yà#Z šMšåGsø€*'ïæUÞû#½ëHò•QI? íj5Ò4 ÕzjZZ‡UÁ{㬆¥ ¾Å¦ñ/¹']u‚‹*ªD(âßTõ¨—iyÃhŽaŸb5ÖU¢%Vœ¦Cž`ÌÅC«ÕA@’}œ.nÓÞœDˆ»—#¦wë3žH}qÊ-E‰„ø#]ƒz_–F0Á€rߨ¼Â¨Û°´01ºï½¥=aüÉ0s˜T”À#ä ‰^Õ±@½éÆHwî˜\1`YCp5`íie*˜X½’qÔ7¥ƒì¥y¶=ÖDÛJkE$qvå¨)à"Ò†nÃxW?_´ )éWÓ¯Ý(ß V®~T¸ÕŸÜ_µ' ÑvòÒνÊõë®›ˆuhÁþæwòºQjgT«~”ZíûÀÎ, +¦óŽ ºã +3lí]NLT@©ã%ŠÜÁ\téj쟊5¡fúív핦>4I·ê²7#‹0¢:s•¤ºôžç•v=ă€ÛETø ÃÁ$²^J Ó%÷¾ƒ¤Ù=”ø=ä`DІ$ÁoÖ›_gzAøxbá9Í·Ê;ÄÔšïz²ÊC¯J*–61ïšÒÏ(=P·`A8`þqÈû^¢Œ ƒRõ-ƒ.ì¨ÀçXtΈ`ŽO›kŒ³×¡øßh5_0ç~±àp²´ÜBcTeÉ»Pi‰ˆ·E_a‰/¡ê‘u ×QË`óØõ¹ŸôIö´sÕçEÁPŒn Ä=ø/Ù Ý×­üÂq«Ç“+v•9Ñpž™×oæ»a,XÇ?ðœiÍ#¶¾/uIù¨¶·’Yc™]|²–C—¯q)×nK–P¢‘,dúø’©é¡*w¬ã‰*®#>æÖ’—¢3—æP}ÙrÇé@>^ +ž6Z‚¨ëš +sã^îÑþuØþûs +~þ®€!9=’©£ÅŠ•.Îí d“z‘ïëø<,øV3 w}!yôÙ¹”ƒàÙ/Ún2A†¹_¸)Ž¡Ÿm• /íŠ0–Ge"AŒYÀ¿J½¡”k×Åÿþ_…åfgŽÁÜígȸôEóÄ›|þ눙Ü2…âòöÛEgÁûƒ¯¬QËQ·!Ô]‘›A¦\ÉF \ÊôñkÅ §bâgÌú*ÄÞ1£¼î£×ŽÔn¦ š=^Ã!Y¸Ø?öX4£GpáÑgö:u:’÷« °‡–ûÆl‰ÁŽÜd¯$•.I"'ÍI;1åR#Üšª­dºÿ &zÏ”x˜_Höƒ£.ó€h—å‚ +c~)Ž-ïÃjMfëþ¾Å…¬¥(ûPå`ëáÕ/n³±ùλ®Ëy×RPôšñ0ªÆ®P0„Ë\þN!+å°¢ƒ_Ãn ;¢‚^ óFràg)4õü u³RšT|`…A“AË|µfWlIö"Ñî£ÝδÞvÔœØê‘ßÛÇéé–45Úò.E€Üö°YÐ’„˜! ”ŽW郤p_E¯åˆÈ3Î* fal¿NÀÇRÅ^Æ_(ö‚÷Ò‚êQÁƒÌã×9¾yðøò·i´Ï11E½¥ò왇’Q3õ8î3ÌĘ£Ó„øCÞ_ô÷oþI?úáþÀè=ÿùÁØ]¸S}TaFÁÏž‹`‹ývSÎüÝ Êª‰ý‡Bxä=r1Þ÷¨¥q£jÿ¾žsïØ;sµö/ÿmš_ë‰Õ!Ô‘Ê)d]¢èS ¡÷¬¦BôÞá¼¢Qí(:ØçP5rþ"ûî¨ýcª‹EqmÓ +¢ªn3Dt-þFUüœÎ=Sf’÷±xàWŽ¡D=ƒò2ë¥wV––æ^t]Hí# h*1Á®µ…ñB3BQ5&ðZÕANÄõn¸ýX52¹¼™º\Éš"¶t4:p¬3Ã*š7<€Ò .8$Ýê÷£Ã:täš›jpÜbŠ—ÇŸÅhPÔ±C©‘„­Bkϧç”ä©4¥v©ãZÊä %  õ0ìI€^EKìÀn ›mÁLø€h¯!/ÍçKDnà8Æg1÷ãìkÏ"¹çÞ¹²èA?C»ª?ú›çMNFï:I+{æu¨{ci§²Ó߃ 3 +Kx~›û¤;^ÿÐÑ/pºýæõš\ «ë\ÊI,²Ðàvü¥Ê¾ wæ…àËAÐfIÛûZy‚óbK¢T¹|˜Y»ÙTÙVÙ¯o.AÏ„û3Âd¡$'gþ.ráã06;á2¶@WÁ€hÆÕ°B_Ÿ‹;è‹Ù¨sš   2Àþ æ} Q:D˜&>¨‹Í£K)ú HòA®ü‰T±¬ÖrÆ)BÊ®ŽêË åôÊóg%-"×A§@Ù2Bopä`Ɉ0qéÚvMx”9“0tàKΤù]´ë…²Þ=К%IѨ+X|•Q;^ÊB\AcŽ~代û\›vÏD ˹#V¯¯ªü£ 0–G—ÛQ2=÷ªêûˆ«9w£ô-ÉìhX +g ÂILžy¥‚¡ä=_6«öÐw’te'îÚ£íRª]‘#ו£á)g_wwEp±TðN¤]í%¸ªiôhB@©K#ü‹>aÅM¦Ò[Ü¢˜‚…–BtᇉQ}^_3ÄjŠÒ‘vÄ3‚1™sáX™• Ï™#kþE”ŒÂ‰ÉýÁUÏ Ú­ÀÎlVŽ`‹»×$òL +uÞ ;;N¢{)Lö~-qKu›¦+ÒKÊTZ)DüÑëò§¿â+*³DÛýâà; +ð&‘bF^N±ý$Äð£pŒQã¡D£ë–¡ÛãZHÜa"ŠòéªxDS7 ¦ïÖõ âƒÇ8Qd¢$Œ z̨Gãë•]ÕeDs>`+†´õü)ªBœàúš¢öýÚ¿ßµBs/*o‚g@N‡TUdtÏ™Ñãê×PÓ¶¯~_2Õ>"Ò^ªgÊ+»~8ÌDÜÕaƺ¯™ÛRÿ!¢VÑÍïb>laÑ¢} DÑA¸3 Ý²£T¤ùc]׉ëÔá?‹=qc,hˆ>ÁÊ:õàø·Ù_2´û#A¤ÚÌŽº®'õ•ìâs&h*;b @’Éýè8¶ ºÈàá;Ñöú5 Ë +7{¸ó¯¾‰Î ;ðRm %0g¥ðÝ($Ó0}ÙEפ0e‡6½ +¿öTú­S½-™€³:ˆÖ©8‰º6×srpzÃLMƒËúcIMW«Náy ¾G­°õ”¯¼JÚGbœ.áLMõK1=;Å*‚®g{'.€VêgÄŸÏ@Dš -s•}?Žs°˜È  ÝÝEDÞçRSôÃZ@!Úc÷ªŽ}FñJ8c˜EË«y¦SÜ|<íÄ4Ê»^{/¤·8°0¶Ò +¯d<q—Š@`KxœQ79;z›£%·:Ó´]5’ò航zòbï4"wuáÈ6#£¨öÞ\t³¿Î€éQq€—ø0jî=)g²Û·#ºfDÌëW 60¬]H«8Kt5"ô0½êœßÉëèÞ’qñËoìÓmöýÙðä¾U|à0©gb†ô™ŽŠþT×6ö>™ë›LÄ(ë…²Yº£ôÉègYÜz̬ÜZUÞà9øþýüÉîûãœè¯Y$ÁQR×g¿¥Õ¡Þ9ƒ{•ð~Ùi-HØÙ‘ïw3;r-Ò$~«hv ‘ÒNFGŒÅÉ3ú7а+æº+¾Š~ý¸BvâsìL5«ÅåA‡³©ÑæfWñlÇÆôŽ˜‘…qAôE£‰z\jˆP`çå"&7NÞ(Ò5šn³$¤]à ÐîôµÎíW´8/§‰* àôás­_ä2Q8࢟y<&Wb©Þ==÷™|@³…~ §rÝvëQGM¨}»š8Ü•õ»@³Al;¿»Bïs²MOü¼·7°RóÉk3;ˆÆ«esÌMn÷ªµÊ]¶¶«V[¢\:ÂP »y©pä—È ºg“-ý ¯ ÿùΔÚyÅŽh/àÏ(¨DÕs=¬ZD üiŒØ;=,­Ù¼È1ÙÎ{û˜èÚé_A˜s‚š‰Ëô í¯ò FM>ã¬w!Ä sé{Ä< ‰)Ø«§nÔ:Q¢0»Ò!¡D@êL¦S¡‚Œ­à™Í2$Î7Ë¿gŒØ.ˆ›û×߀L³ÆÔA8/‡éœ´#ª3ñ´B¸jžÃ¢÷Ë<w9|ØÖL“&Úý!¢)!¢ê=PÍêᣧvÝ1,|aiìÂÚ3} ðê??SW¦*±1+tOkÄÍW‚³óD<¯Ú+äõýÃÅŽ%¯á¹2F}bC¡øÖ¢à†u«ÿqœùÐ^†¦Zï˜KàXù%Ðcr†ø ó\£€'ÄñdYö½%AㆢŸýƒÏ|Þª‰Çõ{›»¿ˆÑ +d+õdÆ1Õhòͬª}|êÅçïLí¾¼ÕÒI\ßAU¡^SšÝšò5Ë3Û +E«,þx1â*Ü}o”ÚwºýŽxî ’ëÿ¤žˆ[ý! cvÜ­¦¯0©ù@GK¦ +iV‰ òýš³;¨mNÆ›QÂ4Ê •p’wÄ®WV"$äìãPî‘g™?𫬓!ÁÌ|ÍAIJÙ$÷¬AISCÉÇ+*³Œ§¬õP¾! •¦ íþŒÈ VŒÈÐÌ6‰'j݉"ùæ·•âüG—LDa.Ò:8¬’ŸO0¹¢d^§¹(mÚˆ³ÍµQüìøkŒ“¢5¬·"$r¸L·ç3Â3Á™û +*²ÏŸŽ£Ï6ô@µ;¸z^-–áŸ"ŒFàà•'ùˆ¡ ÍŒ‹ùýsçzµLWNöÎiëìý°ÿeUdÚ†X åÛgÄû†Vï ¶ÏóÃq0á‘L‡G[É~¡dÂ¥óÇЍÀ•h¤þê­>áo"~ï‚e±½ ˜•GlîVÒ'ÚB9··¿‚ÝÈÿìû@¿ï3"÷®…„“.À™Ïã¼Bžjk'áêW.L¤Úup(;qV¿ä¹ãñ±³ ªÇ³\©™žcIÙ€?À Gâ¨*äÄ^xò㹪EïLjïGýÚg®XÕí(¡ žÝš®ÓúÊqºß ,!°ª¼YÉ@੘“sˆ>s¢8‡!¶þªõH#ï/ ´E7‹Ñ” +›¬ 4‹Ì '¾¬Ê Œ¼‹3W-¨]"úµ¾²qZ`“h~D)ÜÜìñT¥[°7=Ã4ã{D9c}Mp߯ýg”&N\]“Nb€4&dCÈÔ¬§¦3]Þßä±%Xâ$t³Ý_›ãK¶ãÇP]<ÒxõpPáFÐ äDÐ $â•SM.(_'ˆ@i â—vM±Ãô3%{}†:âH>]™µò£Ôó£Ü'†ˆ¾g³äþYntR«êÏßÙ÷]Dõ¥‘Õ.M¼†),´žÉaïüŒÀ<‘ÎðDbà-}>£î :Ùc™TG‰]¿Ô2²äA|ÿùÙˆÇǘκ9Nr³û_© +úud;ŠQ=µ¦æž`ÎH+Û¹yLoö’Ôõ§³WMn›ë˜5$ÌA2Qj£žŽë2g5Ÿ}â?NOä3àÏïoÚÜŸ­¨?ÿý0¼÷¡çZ褒]@´>#~Ü ?¢˜{"¹‡/Qõ_ÜR˜·0¡»g9{ ƒ¤±¢Y~gßcÏ[ àäúÛùÞóÄ¿jßU–2ÙK³ÖÞ¤V4§È²±v”ä¨;÷ kf¼í™uŒè­|³ŠÁºÅøW{œï ¢ˆ‹¨ô²ažÉ Rz?=ÌQר²À²„ð7eÊØ¡d"èjÅų诀Þ=eY“€¢ê{ð¦ÑªÇÒÆ²§l'ߥðÍxb<Œ^g*»Q‡ðR§î#ô8{òéãl3I/ MèïÆÕ´œæÔ̦˜8 ¿½ì!k²Åz°ìH¼&ayç¾AÆE+&’¸£˜[çÙ¤*Bôã"ß«) &ñi<)™m °-–lFcÆ‚»âçžü='‡eôUйÐW·ˆ©§Aå%>†‹~…ùÅdÌž{œ[*j62œ·J“ÌÊA½ˆT‹çž¡ W'¾™òº0ççåê Ç³’ +˜€=.Q*ö¸S8R¤¨…É\Æaᮄ¡f2é’¦Kïn²5™…ÈyŠ]?,E‰‰We§[ÆÔÛ\C +| - ¬TÄB›à¨õ¢¿‡‚ +·‚¯bxMÉã~R–WzHƯlî×TYó½\­/…¹@Xÿj©Ðb“؈½´&Î¨ÓØ¥Lã•`‚ªö¦âÓÇvs?FfO~æ !œÛÕA;HŠô&bE[.í{è)v{ŠŽyyî'D3EÓد³ ‹h5,BjX{Vc¯ wþ5.–f‡º°"Iô±—àT +S!Á6˜R¶†&ÖnRÔL’¢æ Ö•jÒµwe p±NÅZ.ÄEÙ/rÝO=J7_!Ô„®l½Øl +¹1‘¹…œhd ¤\dº †ËJ[ãe&°A‘UŽ,{ù KÓQë‚¢Øke¾– +‘!¦Ùî⇂ fÖ0(uwÂlv`j*ǹ¦ºÚ(ÀUÖðöß–H¨%ÌCdÌÖŸËi*#MÛíò@ÞÓ££ª¤€Ì[“K¥&ÛOZÏXõÄ›] i‘/–šBX7ÝO˜oä'%¾ñ±ÇÌ2üµúãA¨L¤ë4çpècÚ±;ΊçˆV ŒÈ ¾’¼¦TN—=l æX•MŸàÅ8Èù+DÎ' ÷Ø¥•ü|€D¤‘UÊ\ð¡ÏÑl*ûIŒh¼ËP;ǃ8+¾]Â9[ÊEO=îüAÙ§)¤ãœ%O¹ej÷âæ°Ñ–p¾ ¨Ñ…Ýë.ýÿuÙt8 +¿º”Õ•ðp€š0¼Mžh€Df n ã*8a« ¯[L¥ýޝªKöÒÈßÐIŽ3ôš‘ØS&­²Óm |²4s>ÈBõDU¦(IÙ}äyû™°2ª?q#U¨ÒM=Þ°q"d8-Ofö[0.ÁÄ:É E>RJŒ;‘’,¢ºç”˜a63Æ¢ð‡^“ƒ<,*€Æ·ž{Ø+å2Ž0ól/ÆéÙ,2ÎŒ–D ÄöQŠ ˆõ©ù óÏ5~J1ì±í~º9—g@¦Ó¤Yãp&…!&Öt«»3¹ 'É1¨¡š¹tK•¡¢$`,¹Å ýLÖî&Ï8ÆÖfbL&ë-í*[Û„#1ã@8²Œæä}™§˜î35¦õ:€>C{ñQçúbœé +H*qUGö.ájgʯ:…µâ¡(« ß )ÒM†ÓÕ¥ JÏé*òˆIªÉÙ~Ï–‹0%y3.òÍb!#(kÔð@¦ôá½Dîò•ñ6tgÒ„O=IhjøÃN4¦„†rU¢&¡ì¼¦1‹ÐkØŸwá²;>RöçPYEš›Îl"´—»€ :eDeCb2)Yü|L¹¥¯~öÿ¦½oÔŸÙR—7ôè*~KMîV5Îñ¢•iü'Ò$;úU'Þ+u:{€ä:ïBˆ§áɯ :E³ýWÓÝgë±À|=÷°Ö-êCA4îçqªÓ Iä¸@K‚“eNšóKO@©xZxn»)«è[¡×8qP[¯²¼×‰Ñ?ûõl›ü‰a™üMæ™ø³ÂÑï§ú¢Ý¢ç‰¾î@Ú¥ +0YÁ²=òD_õjèV°¼‰J´¤bûPø Õ¤e0‹vuÓ}.‘ZbÞG°J¤sXeIyeVÍ4ð…Ö”lüÊ3¥áÃç=€MÃfzøaaµ ôc/UPk­’f’s^qïP‘ xP¡V\ölÑjqw‚îînß)K&ògR[iQÉ%AT…yËæz(¹p„×Q¡%—·¥ÿ}â. Šïл=èСÀ@õ–ª?ÕYüŠûPÜ!’'<®¸…ËìŸÁN@pý‡_˜ò9” …L§Ð%¢ânÀš‹£oV7wcMÉŠ·¾ª:ÏpÌS€0p£+üb²Û¢HË4"ÊdCò8€Ú a¯zÓˆƒ¬ñåÜ>$ج%¢Q)EKKF]ÂÁ§ÂÆ¿“ÎOoì‡ê­&ñ’é½OŽ”“ªW“.‹ŽÙ¬ tO†¤a†FÐû°.ë·ŸÇØý1}"Ùÿ(Ñþ?8XÂ¥¾¿§Ðëüæüñö'úö÷÷ã'ËoößÿOoòçõ7¿úá‡ïþð»oÿꟿýë_ýöwß~úþ÷ÿþí÷ÿøí_þæ·?ü—?|ÿ/¿·“¾þ‹¿ýî÷ßýê‡ï~óí9ÅW·ïüŒÀãÿŸwîü˜qþ³ìG½Ð˜8ƒ +ò” ÆŠó;Dê/vå¯çƒy\²Âä–¤ú”á¥Ô7) I‘1}F‡lZw6·(Ó¸ýMZïr²²)ÑTÌ:ßðƒÄu˜K8‘óœ…ïõ¡ó@³A>`|ã@Ûv€`žàt 5/qئ3HVå4Iz å’-cTëÛô9ddlt@N­:КþBü_†[Ð?Ép#å$ý/Hb§¥[î$•  5MÕÓ„=@ ’'Ÿu]m7FˆiØ?»Š+Íà·oÂT K´\Iù+A¢ÌiðdÔ:„rø­û?߬<¾Ï ”•2žä²¸…YÂÓï-,…Žî.&Œ:µCN¦«]4ù‰ê0Sû„å1uÀX½çKÕ9%7Ä›Œñiü+Rþ ª6U“Ñi áÑîëZÓÄÄ„² ާ X°ç­’8’êZXKrSüŸ6múKjMxÏHt5Çïâ2ðÕ%ü%9K»!÷‹§„õqÊ<ƒ²Ð¢‚"…æë"3*”IJïÏ £tþ*¿8(«N] X„|à_ˆÝp¡òµz?ÙÐ×µ¶ª*ZK…Š—Ô•ù°Î3¬¤wÀY9ê@’É”d}4‘Òm6¸=Â,çdñ +%%bVd0ñÀ2 +Ê¥g‹G`‘mDyj)ö*1o ƒÔU?nÊy;ï +Th(;’GqlIÓ ¥œ7JHl»$tÞ®ðW26Ð.ªÜä7ÁP¶¹Jùõ´¯îʇ™ð6¥|øpç`I2·.Ó½ZŒ|Ó2ïÑ#“«~ng4AÚÊ‹ƒƒtÕ4É~Ä—(É?¡¤eëD„ö U¯Ï¾t!ÍÒuæþê<_ìijg±Zì^/‘Ãí:³8A ŹDdÙÏ®ÐáMÀ}Ð&VŸ!ŒÛRföJgÊ)¡”€8ë]d•Ï’!h0›žÞî]Ø"js]˜‰©Ç‰×ÕqTá“6ü°a·ô/(®­|‘ôÈÙ´Ùäš0h;‹E1ô‘ ü#½98SÁÊ3…!ŠÉˆR§Çùt k½å´½­Ã„—ʉ†WËs—H¤pƒ`óD š¹Ú—@åL<Êûño#&\桟PbìyÙ÷¼ÖfH!u‘ÂïÝ?5dmMŽÝ"Jö™-JÇÑæ¼Ä=H§¡[‚ïF™¡˜kƒÛÜ© î¹;S_·#%îRST<ûX‰ÙGœÊ…GÔÕÆÃéPR1ÎPÛÙ™ü8 `:ìQˆ p›= +^Ǻ¢ÍA˜2Jµ ÉRûÄgÙ¥:ø·°yð‰59U³¥Ó𻲛ç“3®"¹+œÕãg>Oñ½ Ï†ëêhªd¤¶DÖVÕ[øÅ{µ$=”¹Lk¡¸‹åª8-¿i½ÞìlIJ,!V¡+ªÚQœ)+,Šz¬ɦÕ™d)S7¨z#À Pao#¡²X¹ïѶà…==&Û:“Uñ8“lô–„2ýL¢2+TV7„µrfkYØ Ø_±Y‚¹Š¥¶ž’Î#Ò\Ýû‹ZÂÀ­ü|p ·¯ÜuÿÆŠ© aþ6zlš"ç°šÌ0D,«Ec‹G•™·…¿²->Û ÓП’ év Kpk__¥P7¬ò}6±hÿc:ø#«:°¥Á…çŒF›PÆtqDeTC|4ö¾$¶°w=ß(o)ãõªOéB¦«7訒àãðÚëdénó¹U"Ø ÞóÄ6™Á¨y aúhF'¢L¥´×pÚÇACë’ï Øý¦„9]4®¦™ð™Õ¢­íúYØ<Îùt p”2ciÉÿ£8Ž=ããÒŽ~on[‘N·@¨,´/Oç Ÿ×n¨Ê±,Õ+[Ç–ýÉKÚÜ’Àȸs¤ž¹›?™Õÿ¤Jª°1}ÛXú±0›•ŽŠ¢ÇpÝÄ5·;¤µó(Î:A¨SM¤H>f _ÊYv@©™ÞÖvØKcRö{ÔýQós°ŸMðmÎÊ/ª’lšŠˆì"kïÚ·[ÛÁÎö¸âÜÄK·tn6×°°k"V¢å…aóù«)÷ïô â@ +UåãÁ‰@E]‚Ù¼p˜–›Ð²|Gþ>B°!_åŸõ¶ålSÜ +·É*·ód6±g6õ¦óÈH€7a*>ÙpbVý= »åm“N//žÐ& •+˜k¦œ™0®–Qà–z (ZÓ!±¤;Óð™¢3w>¤öÄ’Ì–4¯ITãK*Ë«>µP£¢\%³âb€Iz¥á„ N•aÖzQùhÏi,¨²3ÔÚƒN*CPãO¬bôà ‰žÒT=Ä~gÖ|~–轈]ºzÉ¡1!{Þ¤,C +¡xÊYu²õÐGŸT)¢Ã”é:Æ2†åkWmêœÛ©\ôBinÓQµ(¬Ïd³¶ÆYÀ•Ù +A2–K—š] +Áò“4ŸøX“ch©Å¦*ñ螌¬;ÂrÚzG²—¤` |xGbÜÏŸ^¦#†‹ˆU,ÌI¬ ­Ô’TÓ‘«µ¨xt@§• +±M(ïìLeêZ–Þnà«Cj£­Êk4«jM8އØä%²¹+ø–¤ÅÊbÆ™ðÔT¡½VUë.+ËšÜG™ÄXæ/ L?†x´|‹†‹ÍM¸X ~PD“Ütë^çÍŠ—$¦·ušƒ(•mÊm_/”ÊüªÚ5Q߯ªõ€àCëŸzÏÀ «R ¤Ø¦K¯y£jÏe©gkÞ¶^M|\Ôl¥Á2,®W¿T8Q®è1»Fn;n‡ì¯(©=÷Ð/šrΠ¬…Ú‹^yàÄ$”ÔkTÕ["¦@\^õ Š#¯1òöwÇ÷±—¬L‰x¬’±¦ŽØõBfw—=ͦ…!‚H-´þÜ!Þ·ÁrÞ·’Ûz1Ì’ <òcÓ·¥~–žjæâÉ´Üa¤wwX­ž #…Mh·™ˆ^I qòr–m²Ã'~zÀÓV³×=k’lÙ ‡\á6u&»,[{"2tPKŽöÖÔ©Q.¢ÖÁDÔ ÈÛyÀÌmñúüY•M€ÅN†›Ï€…é‘9A)öÏà€z&/®÷|“úÍÔvõϾ÷nß{™Ïì½þˆøÃW½xÖèó¬§î Z)rjÅ,¡¾ê0e¸Ñ×É‘Ñxîõ2”1…L6ûZtÂ@Lšx糌dìçvË@åðº¡>²Ë‹q(P@g’M± mZQV'“úÔc7UHÐì%!â³Ï‡^Ç”© YW¼•ãAb›¼=iäí©yŸ 9_·'’çñ©*uõô×1 +ÒIÿß òÏÍÚ‰Þ³zEæíc¯iþ'’1F3•óÚÛ7Í9¬Oiu=[x…f௛9l?øš=ì>‘¤¥Þ‹¢‰|g“ø‘r×(äStÖ=:CzEžÆx‹[LŠ3œÜöÐì{l£Ìf´›3³œnšä‰\”Ë@lS z`æG¢M‚¤y@TìvÏ´:±žY.òhó?»“bŽÊ„¾ôX¦f¿>°èBˆ”*…VóŽ|úónßMCëM|.*Fy0˜€=ùÜc‰&ÌË.RtÄ­_÷’>9tvk –…œ?¡e3ÈS龡ÊP•±(ÈmɼB‰©zâVCÒ¥×ú“‡kg:d­W'в™úr…¨Îž0áÙ3iZ¹í €²ÈMdLI¶›[½`È^wº¹å™N4ƒ^'@ÌìôHÒ¯>=”mÉòF‰‡ÂÝ8—/ÁAzö8=®Bz×7+_¾Ì™Ä6TxP"Z:ªàòS*gÒí/:©*[Àú½ê’½@\8GEœ©(TJÖebã“E%Ú*Fû}{G7™Pc~P.íì-dƒ½uMÚ[òC–“ö¡­ÅJ¶¤ç‡[¢ð„œÜ ”Ú¸³æ,½b^<¥Mâsa5M¶‚h2y4K"©DH[íû€;°ž:ü:ê9ÐHIf›o܇QÎÝsËçP% †ŸùFq€LzÑãå"ø±—tœUå;ïÒyo–eʃˉü]š^·:ËZnr"Ãë cV-Ï5’Wª[^ô 4nyî³Ð‚¶H1`Ô8bY€WM•|(_ $^™pJ«g'¨€¨Jf0b“P¯tƒò1Z(: CÀe•A9f‰äÜ*e¦a38IáHê¯t +ä§Ïþ@{ÎÝ´Ú²“?sýf=ô~IÒJ™.tçW´ ù/€¼Ug¥À¶MÛv`ø ba3b4Ne®p”ä$Y”7«=™1…ãð~=‹Ø1Ëi"™c…äß4Ò[ì{YëÎXhž€YGÍØxHS.þ-¸—xw^'–Àî6þ¢”{aN°$+u§¼äö×ur’üªËláΤyw>œ<œÔ$Ô*Šyqæ&ª'^³݈®[dÑÁѪݦ¢ò]®V¨ ÆMJƒ,(¬ŠöuØidŸ2c8U^Q–BÅYX¬ä:†””Šå•#Ò§è4ol$F±oac…´èO.ÖmÑD%?z>s×ìÞIhKo¾DGÊŸ)X¤³Z,ÑÁÌu²’{×ÞÍß µÛ°Ÿ8•9ó„ +¼;OÍðQ¨HSƉjK&(LyB  Ö4”eS‘ɸ*6ÞuÕm\,ÏLJMÇY–™™y0S ÔK ‘Q~cÆFˆ4QI§Þ-”ÔÙn\ðŠ”ê&yœ¦úNSñ»£%ØdêIP‘[¢µ²ü¤z s˜¥÷ǧ\É-;“à] d̾g⤗/v=Y>ä`€aéßZ<é˜Tº,.${ãr¿Ž Ÿ gÜXë²ý¹¥ë+v(SHÊpPvYÌ@b®T,§ÌŽ‚¤¦lÖªT€í<òÊèXÀOâqï%’X[ã(Aˆ$T?ÉÞ O~z,Jç%†P”1Õ\Ê¥0;¨.[-zUÔpt~»½2P¼Z³3MÖºÄ/»$ØÔe€H…ÉrWÔxÌ2ÊÕ÷ (z¢&ßÏnr4ÌW)íS>  %˜óˆî¼nô›Áýz‚ð•ƒ,p!¹4ôQwâ<$tV3RïX0Ùëeî)ñF}ê «¡Xh€N’»Æ‡Q”Ó‘ï²|Õšæs‡j qyÚÿ¹WkFÕý…ì8 t1ý Éã±G®œâ~†ì£º%¾h¬}ìaÏ®&3ðV>ìÅ8z?–¦}áÄøš¯2RÂgyѶm5Oå º>÷ÂMU“ËÆbøŒc*7ió,‹¹Éª»%Æ mié‘kÊ\¦Pðx&‹JÄ «à K ^ æVcàb&ÐCØ¢-¹qõh¼èä?S1ŠþÙ.{Ñ‘^ŠN/Ãòq=’X@À™HˆB¢,OXêq&[\©uµš©Ž,R³ò+°jõÚîPhY>e&/‰-)DW©£ÐciE-WA1ý(ž?wjhuÖó“X_Aô•7GIqÀ űAîøŠÓB{уx{€èlÄŸãF¿êuÞ—ÔÊHáWÍ¿¢uÈ!Ý]t$…+ÛâîI¬ñùÀ¯=È*S:CYà§^[ˆ»fºgÒDÃ8˜…1È$=ªój2¡¶bBm,ö²%Gë‚[pwnT’V1,»»ñÜãN ¢ ýÅ0,ó\HËk¯ÈU‹Nˆ×Êòû×ìþ…Û-Î#T'ê€ý.‘åÔƒd%ZéxfÓc¡guzt{‹³•âãD©ê!«™eštϤùxz +HŸd«™³_0æ(›ð‘0Ð_bÑÏRHRCzœïΆ˜¼Z$Ç„à ±%’É 3Í‹ûü3ÏyqH=Q£6 çK¹)_tŸ{ðŠÚmÁ{Ó÷KϽ¤'Ù›éI’È`ÿE®Aü½BØt¹°iS1Ð,ùØ®W +©º<ŸŽá[Be„1rÒTÍä¶ûOt 𾿤èjðÿæÈhÐE[DÃÊ’—CÁÙ"ž˜–Â@ûtÁ”XE×(,5g¦yá_R±ÍE'ö„lD&re‡§Ú&=ìT®g[º…ìÈ=@®_0Æ)³)ƒ߃[® ãµ]5Мy æyÈC‘¿Fe9€Rƒ|Œ1 Ù5ÅÑ_ ×µM‚=¶~¢mŠ)‰MÂd5|¸©gÂM”nSWø«¡íÎ9`¢ó$ýŠÎÓenÏ6ßg=J‘  …/{& ]LÙà:ÏB5²;c˜Pú °õþúÌ5`wÞÖ$. «éÖÀ#¸Õ¹’ù²Y{p¤‚DBøpo2k +m],ìÛÿb³Û +¥Ï323oíùàg;ÕY¦mÞ¤èÇ„—Áݲڪ1­¬rÞŒÄq@;|hÚ8û¾áqþ=ˆ^5ëç0;µ7PtÀ…Ÿ¤Y<Øl6Ñðb^Š ²ÈC©ðwÀ4x§-ØPÃHBg“ÝPbpTÒJO=žKC~ì…g±€Ó¡W‹WšÂ’jzƒÂ,Ëüd*tÖíÁ¬eÇM—Øi›¦ 'Ž6m³I©Uò6K<Ìjô}&ÃB/ +cÅŠsˆ J‡kÚβR>nÛšÍâ7,v'vD/n ÚÔml +bì#ðX‘ð lv˜æ•,à?xA’ š8%]i›‘@¦s±dŠÏ0X“…¶F@:%H{I œ“ùÔÁâÉ6ãg½ÌU|E6Å<2úÚ6÷»]¨gŒ=ÎF‚Š&û“Þ¢ZñÔ+™Ä„Y Ø«Y*I“4ïÒ9]ÜsFŒn t@¶ÿ¼Î©»® dãG5ùù-7­07®À¾ºdÙ…º=á`•å4“3\Ã÷Ãlâé¼Áç5ЪJý”­Âù˜ùR¿x/a<LVð&;ü¦:‹t·7ø0Æd©¸m]ùõ¨ÂÌ!Iök7weï¤~=Ä„Â"œó˜¹ÇP^”{ iÊȲQ@&]Ñ.0{T ›ÒxS$D ÉS/ø†)ò…(¬:i÷Ò“ôi褩ë|–,@t€.Á[½•Oe#EÖþt¨üÂ,멣 æg[­w'ª[ Ð]‹+jªYRñ´qTaã)òZéRôSyÕõìw@–8¿ƒuÅÇÇe{‹Ì´q;8›È ñ&K\õê367ÿè dÉ‚Jr<Ÿâ³øJ&UgÚ,' ®âà–°ï¶eC þÉôU( ÃkÀ«p-™ýVñ\°ã ^Sg´¥?„Là)Ó!T¨]Ð&ß[± 2ºd1Ï5G­¡Q1ÌcCÀ ,ºÛ6)Z+úò$¤ LR…È +xXíM „òTW/"Bý9T…f–2Cª˜ŸÙ?;Ún¡ˆ±Žz*mP¸šÝ\vÐÝ(æF¢ÄÈéq6SÅ{L“d‚@,ÊŠ«˜ý™ŒI9SD0‚Xâø Ärz°-¿JÔòÀ¹|ªÐN€c”$mÄÿβÍv©KÄ¥üƒ +^ïœ ièW£ËhOõäJé©묨ö‡£ ’k~"@WMD\µ¨p!)^F®ì4XØÏªØ¤ŠM—‰É®Öª€[§G¶b¦¸°óIùÓ!Æqâ\ØœˆËÔÔ‚Û7ÐÿØŽxÜV\ȳ‘á^~êíÒ^]4YvÔ†kx^d­ˆ:ˆù‡`U5Öf1Âlª‰Le;WVp?ôØ 8uÏ $Js‹ýÂZv+gÑKÌßÁË-8,¤†­•8=ä= œIxƒ,7"ôˆàƒLžx¶{¦mo˜Äu'4…Kêûƒ<,cÑ$Á½Jþ›Mf£ˆd…‚"u kÊŒO» úŒö2vtàÅ aÝ™õ¿Á¯ó¬ŸdƺÃQ¿c'ÅEœØè‚N²55O½Òå˜×]” x-Yä¿ñëëò}?ÑÕyMä X¤Øu"™wâ4”Ã5 +ZLÅ÷.¶Õ‚½ÍrØ´”"ÍÑÃoOv´EκXúœÝ7O–ú½*É`ìhRzó  Ú³4]6Ï›ivê°õAœ^ç7’ç"¥¥2ŠÌÀØ»„·ÎlMJXkȤÓTé•”ÇKXoVõA/€³š˜eËúŠšœzTWÁ9Iý§C•·'Ò=CÌÈG@‰ æiK‘Â.‡z>œ[Ãp:@Öä¸ÒǬôI0.^}ð´š rñÉyb2·LÿPˆ³†Ý$ßY q%?=’;-‚O÷"jb~ÏìSšù`<Ì¢œ³p1 X’Xè²bÂéž|ŸnÒ*, +‰´ÓjäÈm¢)>#º þä\"w;PÝÓ’$MÔ>‹Žšp¡]Ñ…þ\üdùηŸÃ"²{©£A-ž ã?äElHB̽š&Ê7ìÉÍGÈ ýO“u?›¨"x/[9¢“íÜ(Â7QgÈ‘Rƒ’ M +Pû‰Â·‹øå°IÓ y¤º@oé ‰š î­ë¯¸Â§™Ìœ®Å ü>=ª°^''ßUDžö„CxO´—ëÙ¨(FvÏÿx¨Y¾W[qgF=;Èm=`Oo¥oÅ.7R© ÓB«!÷4 â½ctñÁ¦IN!A¦eíÐΚÂýµ ×HV¨ƷiÃj¹ˆ/4‘cºdwÎ8(rzH,Þ(·èR–Ø_D?g… Òqù|}hÊ>3g,’LF$•Ð’©’ñŽªj`Y.;+:,Ùx:U~½ )?ïqæNzðaÒÁx ªßžCUà¹Ð×£WÏ&¶À•Juléz੃6ç ÐR·Óa3 —L?Mªdg"Û%"cݼy]Jx¦^Ù@Ôœ;N¦†[‹Ù.AÅä)²i^sf üÙOäÓñ«DSdWÛeoÌÌoä¿ØA€¦= +Ñý,‰ÌÇÊ™]Õ2{6þ +ò"Ó…¡à©¶YVÒ=“sâ‘ÍÁªä!w³º©ÌMÎtv²:͇À6Ï4‹3"H5 kÑúÄ_¢‰ÈÖf+ÑS¥YÈ«%Wæïò1$æv‰‡eðö¦³ts`ˤÖ^ð-8Î^ ]ª¿Ò¼¸zÕ ¸4¨ûm £ˆ*S&; ˜&^Ž€ “iAI ‘'“ž¤ÒÉ7žàÚϼñðÈq£ ¼:¯Á Ûð¡À*wçæŠg +ÊSt+.œx­ÁœqŒÉ9¿Y‘§F=±4 &séAÈ—ž{ýŒ–>Z‚P +|¿Dd @…aÆÓÐÜLBÌJδ†tÁ¤hÊ lóe½`¥cå´¦ð¼QU+?ð£Éò}¢„ ÷žù|H~ ο÷hT$çh@·†#É„K¥k)FI%¤é%' ¤ìF«è©€q©Úê@Ñ8ªØO N߆r÷ˆÕ¼0 dùÎí±íh’ìCPO¤{0›™?iÇȬÁŽ õØ¥¨GóŸD£  ¼ƒ¤qu«VXa= +)I{`®â¬ïìpPÕ¡®Mq„GÈ‹"˜ô¬ <§ÞN¥N´»Oz®T¬ô§RÞb0ãdɰªŒ:H¤s[ù н4BoqGx‹†kP¸ýv·ÜlËaň¢òüÊb=¼µhÀ"Éœ±¹uÒD?ƒ­±ÉšîÎ$Û;ü³ÎÅu•Èäl–H6É1-©ä·MYÌÊj]XÁ6, O …±Í¿)dáQá[0«`i#Òí—¤=z!”§RT ssý2™A`pJö+ —¨3"p·ðeo2þÚªèÒ~táýcÆÜMj)FVµ¬ï"Ûe«;;È^MÖÒôFÙùœaQêD¶ZúçS ÇÖ1ZNÈžÙÙ.ÄÁ&‡ì)¢ÄI©[b)BªdT—¥òÄûhßH¥’Øý]bñƒºÞøªáTõÔy$*Ú¤¾Â¶SZ©æÇ-ò{ñÝäyNIá8iÛs-hÍ2§ÁˆÎ¦§Ò•ˆ›â*^¨@ÈŽ@õEp¹<«j"•,z2e1êX±b"ä +¼O›ùPÐèÅD^›]>±¹d7ôÞëÀ’Ð)'; %û9\¯Uu›£Qz³ƒaYö2[zòÙ5lÝu¤¼§HsƒRºFóªDÀ~Éׂp¨[ç™ û¹8®^R¡‚ÝаBÿU"–12½¬g5;•zRZ’X†Ì…<.ë$*'XS’X­Òm&’:­œ°îåf1cJ ãÁ‹’çRˆ”X DÌHýTIÀ©,QÖáIˆ!7Dæ:wi!Ž+ TGhœ~§Œ)±ÀrË… ¿^,#&[“áÊïÅÀ'Æî_°“œT(_”P‡ƒí²ÐxÀ™D„wS‹”=¹Ì.¡¢g`e˜‘1’—Ù ÙÌŽÈ8º¶ç¿Ïo¦¤­×Ïf¹›5åjÄ(šê…¦ÎrÞšAä¾ø”µe„acÎf|D†DBjÇ`þ`Ÿ˜< Øg‚œöÏ\²&ÉòʽÃ`÷~^¥,rî’¬ îÎH®/éHªoLBÝŒv¹Ò‡n'+·"jNÒãrÍ®ñÝóŽÀ´d¾¸#³Å”ÊìÁü̱­Wbš.R6²™ Ëñ=åzv¦! åŠ`gË’à4Î7 m|*•lìÛ%!>Ý©_ R[’7[Ó3É:'o]s¸, 8hÉEÏš-®a:` %·I/DŬΟTé“nMŠH°'ödWޤŸfI(O‚È;)$î81[8&éóø1À2^|£¤svu5 +¨mðzÊE.*̳3ƒ•&_lO`’FÆ¢mW¼d ãdÐæJ4|K¢uçÿšt7¿Q<+!Éœd4TÉ¿òۻɹ ЄÒ2¢ZóÚ7‚»Wn2¢ YŽ0P~ˆX¡ùS —ÉH _”fj —–ëµðÑR…¦ÒÊoܲà€¤p*ó5e¡oVŒ–ìü;ö=­˜F¦Þ­³la$ èÝæ¶$ÉLíå«ôe¥xÂ,k9µÉºitbÓTÇ ÅH85 +[¶û4MóoUp("Jº_p„|u¯*Ñd­R¸=¶œSBY=»‘aÃI3Ô©‹Â6`š»â¦z&E'8h Ý"¥\6jM€¥I,pÀ-`IˆÎl9ÐJˆˆ';T³ðcJšVÔ§yô˜¿šÕ€Iw¸ÜÖ^Ô\MçŸ@~߱ğæk ‡íÿBWÍ• +YÏõQ©`í‡ÄHÄpöæQ_I #“~[…î–òiÀÒáL‹u¡« :»´To¹é%ö™OÜVf¹(<‹©iÒHp»šxe5é`åúÄB<Ï-5Ö|iÌNÍ¥æ î ÅÔ|ÿ®Dn‰üŠ[a1)s–:ñÎpfPãû>F¢JŸ•ý‘S~"ö¬–òc™gSg“T\Ûèl©àØ\Ô-ì`Ô> mò-”ÜDJ‚R´XšðÕ6²âe *«Äᥙ'5vuÕ¥õ ‹T¢ž, šH›[ÎJÌóƒ6Íûœë +”GŽBníæ›íæeè@±à¨&'¾ —ãí!Œ:ðªJû¯ÉüÍPù»-¼ ÎûWϱ=Ù€I_Õ$‰` e)þQá*¿ž'x[ú§¸ñQuUÉU곦løA|º|ýºÓ4½òÊ>NÀ΄÷$_2d‡ê= ÔçÞ' *qz Çl-"Þ)f4`N~A=¤¹¹¥µ+pŒð8Æt‘ŠR<îyÒç-³¬+:bˆ!ù$N¦b]tÀ{ G[5‘È“ô júúEUÞOÒ}$Šî#ò7Ÿ<¤m”¾Î” 0ÎÔ‡ PVÊ®)ò†,îÏÙù%9;¿KR†¤×ÙO +Þ a–½xi±2[Võ‚<@/ƒé‚Õ \XD¾„½Q¹zˆJÊRœ‰Ý ˜à(Œ‹ˆ»Šý‰Á#tbAàeÞ¬”ŠŠ¡M¶Â}6>ƒ‡[±´Þ>Yª²l ¦dÀ”P2íNÊ7|¨5yy˜ÅªÏøH6GKÛ'í'ú³À²ž+x¾ + ™>³4F«3´Îñ/‹ÈáWvóç÷©RH&(GM>9ܱd~\r¬oz=æ B|‰eM«¬JÕ-fÅ–ir±qÂÂŽ:$¹ùÓ?¼d6À3”´Ü†·MìL®l?ŸaWgœNf]PÖ‘J¬@Ыå_=ñø|YÎ3BJ*¯"Êט9|Ii&“bØ­ÓCy/>-#´šLµÈ*Ƹ_²méÅåíÄ =e¬T‡jD‘v&êPzlMÚF¸Âmjµ5´ Ú±dšÉ%*8V«ÜŽÑ߉²9þ2–éHh›å+$0`‘‹HU,iŽL}¨L»&—JhË—"| +øóÜL¶e­K×Ú ½èeÔ}¬§ù±ÍÜw$T~9Ë>A#쬃U}Ø\èX’>ÕîZŸw|m/s æ8uÃìͱbfGÍN,À%\äfÚàÕª6BïYàjtEPÑe&>ï2Q&W +K@^ á ZûV+*]bÄÿ%20ΊPÜm:ª +ÓÀ +âã$D~bÓ9ç|öp!Ë4E«AùYÀ¾a@˜u‚i P"±ØEá/ëÒH|³ Ä&¤„#„ƒHAÎÈM‚‰´3 P3&¼Å)¶ã ÉgLK‰Hˆ±Îo+ІöÝ(¶y¼’[7`Ü{–Ã¥íKÀå7u¥|ÞÖUˆõ! ºDPVxÍúÐ 8£É %Ã>,ÑsCh¦b„i=‰ÌÖü %©Í|Ò³A€(u §Ð¼X·Nh)Üq›ö0µÌ‰§%_3¶uþ“Šñ"‘®ųwMæ]ôQPŠÅ÷ö¼±Ìg‘° =%ö|àf`ÞÝå‚ÿ-´iÃ?°›¿±ž2%ùaº Kùèpœ^$Pd\ã~žÙ‡ø0N`+Ë™›‰DûFû“ê6Eùå|“5M'ZÈe,uzô‡è±r:ÖP4FÎ!)«Ù¬úUé„¢\²,®BÕ²™à kÉDÒ¦ËÊ)!hu±kaŽèºÛòß8w{^^uu‘ÂÑ¡§ë­W,Š\â¶$ž¡d†ùfØ(oׇ‰.ª[@oL|²–’ÝÕ_²m@î¾¹½U£Ê:蜩ØN"ŸÍjÌA–3›1 µlþ w_mõ.†RL9Aëy·ïÅÉÐPL’ï/•/˜¯Ä3ò1‰K±¶=ÒÞeA|Ü‚z6ÉŒßXª#9yNS?Pq“JvÝ6HMshÉ–µQÀŽ8€¥›Ü‹« ,É=õeiMMöø2K³]U3À™œ’”Å©ÿ€aê0‰«}Üd–0²¡ßN/à8ô*šŽ“?`f•bj‚¥S‘ïçY!)E—agªZ2ëw;“cìÇÝ¡*(@³l¥‡uZ"&]YQ‰c)Ó<ƒ`Ñ0ÒlT]l_òô£‡Åk(7lgšÐ-è¥TÏ™÷T ø"»t½’06¼£Í´$¡O…Eðeœ’ æ§Gl&†y.ÇPD€,YЇÙÒ",ôÑž&J4ء˺µ˜#*/I×â(å:î3.x7¼Ò‰©X$[P ¶eP[¬'JÜ(Òð€]°mÂ3¼>²ˆ–jätËo„áÌŒàÀÚåHi~¢†+£Xp­óÉk0ù¦q$+£3€„[5¿µ))#z.ÌâÏ'À«ÞÂeqK8…›Æ4˜°«4QTíQ7éâvï`\Ï%,œÂfIJ’L$©ã© £%È-ÊjLù`+…"’¸ééjEo8iTóÚ0ƒ¤Óë+­þýÁÔ–u8Œ¤iþöé`»RíYÍzsìªp/ Gx¾ì¢ÂÌŸ¹Ñ +H°s0xÍv¬ +мíWpl›#ÕIù`©°=õçÚPBk[Íl4ÍœbÕÃN<ÍüU=D›°¤ò=à4r%Èfl”\N–ºOƒº\­ËWþ‚:PBhâ$Ø%‚œ¦C¾Z¿ ²0¬'Ö‡×Dá N!45q”+ÛEÖÁn”%Ãñuèµë(t) +Á à,p6ˆ_#nÁAæQ^ˆvmM·b!ÆVôK îÞ\ûWPÆ*5-BdÝd°˜ð“ëi 'ÛŒ(*%Ê“méM±\•*€^ì5Г>?MK#©Ùø*kt^#g3[';$6oØYÝ>ÿÂ%Ò¥…R.õ`iF/õ4ˆÙÐôô¡L·qD‰×ki¢Ö˸'§3—I+p9&:Fæ€rM )Aš*2^¥U‹(*+S*úO¨½ ÿ¤'Y½¾])8r-ì³xÖÉ·g D”’K¬Ii¹H.¢‡Ë>Øü øÞP`ªP¥ËÒ“»¹²* ~Ó1Ö. ­°uÅx›9DE/‚r0fÈÒj–p±rÃPÆDG•Ë<+ F +µéëäEø6^ +yÀ eƒq: ÎCj{>ÄÆ8÷Œ«W­oÊV\ˆ­½xK™#H|ž”Ãb¡¾Â÷G÷¯‘—Pm(%Õ†&ûj¨¯SY5æÇùš‹±ÃBÿÁ·¿¢*Õ+ ß\@.x^¸ñì¡:duè®’s>5$ùªìNÂI3,ÄIµI~´!aÂ&m:d®Ãäᛉ=UuVñ;"·k„%bL•ÈÃX*Î%b‘TEĹçÒP²e´ª¶9á-;Ùllwè5㜜›£Â‡—æ ^tð¼åÙJˆEslÐUsÒÛ<Þ~~ôÇÄ8ý§5úüô3šö/3EAuê –7¤\T¥ÇEë|ã_¼“fD$²?v/Føsˆ©’°Ê,耖õs`XBÇv?pScÿ&W$’¡¹:eOxƒ|=Ÿ f† n{ÕfAŸ¶B¡-#æ-AoU™:$»bÐ +Á®7²³A?Ÿx?I*XEU/|z!7©qjšæL¡ËCŠ<´£Ö¢ÓBVë&•ˆ™ƒ|I¬ÙŠ À<ŠôÅ—­‚¤Öd5G¨¦¬í¹ÅÕ…Sߤ÷†ý¤a›T)²ªƒ™pÆôå™b%"“EH&Š*ïÒ&ú|«l¢Ï\«æŒ ¤ò ø:#°1Þrœ[™\î’ O{D–e²jë`üå6ÌT-ÊI¨…ž°®Eâ?=Œ³cÇî9Qh/Î_-¤Æàw·$ƒ$Ù©Èu¾*Ñ&åW½dR6$ДNçË7æZ·eŒ´—„žÝ~E½+Eö¢<,ë…Y4Õ±(sá]$ßm ‡Ä Ð/YÍàD!IzA£ï Œ©žÉÁÛ ì—œ7VÄô¨Ð2¡â›“¼Á8ºöÖv)¶J63Äj>í€Â¾·¡B-ݦJõ6›±DÃ8,Û*‡,¥‰¼\ä„€Í4>-0M>öÐ D–ØöáÍñ¢WQÆVçYn¦?4ó5©0独»ÀDcaö3=÷êZ­å_–aé Ç¢qÖRiØQ^ïPú¥K\rbç*&;`?€  Ä…VÍz÷WÙD@{ôiÎÐC3Ф[¸š·.=´+;=€®«‡!5«)Ç™”Ô;½vñËèL}€JÑd˪ƒf÷qb=Ä¢¤ju"Ýs Fñ®°Ö&s©2„pkþªzž±*ém¶J`B_hŽÜ0‡qÿ>ö[bº`M3ø©ÂJÎdˆ÷'bÓ‰3tiüÏ÷BØÔ†LnèQ½GÀ] ìçcËÌMu7ËÂD`B +iDëŒþ|üÕ ùÔkS´â Äž²-¦l`OD"ñ-‹S½h/ðÑt}Ü{êÀ'ÏÙžŸ–”óÕJ @ Å"zÄê!ažx¦tAÙª%°x\P¯³Ñ¢W2°cu¥$^@z ^Q C¦%KÑæ›uX†4n|0]†¸×ÖȺh³iáÀ ]éÕ¦?ÇžÇz4ˆ³Ó(åžåªDx¯|¿c˜º"v°´œ¨:µE“¶§³ñÄ +¨l[”ÍOþl¨VC`69€T »?÷°³^™ óËqØÙ)…f9¹<ôS•ð¦" «DÇÁW‘ƒ,8>°´ÚæOìÙº­ztÂhÀài`3ÑCEý1ËŸ “ &bÊ„ò?xýd˜ù´wú*˜eÙå1dþs‚¹V=ØËl£ =¥ ÌD›Ûc4A™„ p0ø¥nw–àhÎ2æt–Ü¡*Ûfc¨Õ ‘Åâ1¡—Ñ­<½€é›†ýÔú¨²à”x<–¾©Š=(|¢ôŒ| ¸EÎ$¡Vá»ìL’-?=X‰3Ž‘.¤Ëé• @-õb9È:3[Û„^Mt 9ïÃé1›¯›B¯Àv-)¶TŒ©×)/³*¥,#D< b”"ç0ù¢oÛd.gê(²y‚º¥="ɲæh”ã8 p£üdΉ ºÄŽYý4ƒ°ÊêZ.v쌷Dû–ˆ=•"e59˜¤Ié¨Pଶ[†T(³Ø!IêfÏ’|©eýf‚<3‚A"«‡ÈÒøn2*ħÊÇoª’ë èFMJgú7uãÓ¹J»€+.¹'Üè@¨‡Ðÿò`€ÊÜomªÓËÝå¤ÉÛª]5kú7¼õKÜBB„?÷]|úc~‹àþÙf‚ûG'„Éž• +HH_ak þ¼Qx{Ò ä½º\v‡oƒ +¢1†.ª†.’Û XR)墸± íc%Mõ,O†1P(Ž?8 –V }¤QIÅ%#M̨àadòÂÚî xyÉÇ@´ƒ3¥[/ñRb¶oñV¥×kµØ· ' 1¾~U/¶|ÈâbùŽ¥²ÙPÈið±‡mŠºW=k‘ÂÜS/ö8MLx‘9 Ff|ŠwmÂ0ÎW?íxWS/Pº‰tllg7¢¸è—Ù(ªÒñ"!¹›¹»hfh®JL­î§æˆêa*(‘UÓðÞ=Ú{G˜dn.‹±”>¤é€Ûu²ql;už ·Æ{pzLŠ¿ê‘]-;6¶ 9¼A(xY• qE¸º¡æA”3šœ?’´kð?<÷®9ÄîLÀ½Y½Kú ¢+ʹ¾˜󤎕«(ÕuVQÛЫmÙÀ£Ð<¾pÇšÈi”÷p7iU±òqýà4ª“”ßÄ–ACQà¤,£^tã„Ï-ÆSk²•MΗ©bƇ¿öb†0b)ëE/i­¹-@Ô¿ ihTÛÅ„·;¼R5`°×ô»ˆ û¤n™t£YÎ|¦ä¢xFB¶Ðˆˆô`C*ZA\5‡½ä{rB[)Cº!îF™ÀzXå«b°¬òŒ˜$ äðã¸.Qr•ú^Òf G*÷k@Ö­©×¬ògW/¹Ñh!¸N*!jz {ebkøêà¢Ð +ÊIEk/‘ã4;t¥gð³k²Z^æ›6¹ëž#LÌ='Ÿ÷ÜÃYwK‰Ú0zî•¶Ã,é7¿““†‚6¥BÖ#Y 3ã’,{g¢_Ïl®rÐ~‘ŽOÀbPÆ©“”ªò‘î|>d“ + ³¡õ¢è(ê%ÓÜØ¤ê€?ù¨Ùì{Sás LQìî h„DM±«“úu¬æ9“@7 Ð.Ø)?Âl¸‹.<•«/¹uOzU9êÊÓ¾¨ÈÄîg_Ã{_¬Ð3=L´U–*ã db«&Q*7@9Å|ç­ivC-ÖŠ²¬WFA[)ƒ®ŠÛ°‰f +ýK”´…2•+Ï &õXÄí$mcÆ(¨bÄtÞš¦:•~< ʫԭZŠT,’ SŠá\ \…1%¸,z@q¢‡Ý@EÝ×ícÕ‰²´vËõa¢‰êˆ&4’Ô c.';“RiƒÕ£KZu¯ò ü¢Æà†h›5Ôþ=zžáF°@'1NÂ)Øtô¨ÖLô¾º ‡&wR¾Ã ÓÙÔÁ¼ý|ôÇܵPã8ûv!ï [ñsÄ4F÷mi sQ‘[Ooî2¥Õ‘ O£»a6ÍUï-»0Ø”—bôl¡µi‡>M©OÊîÈ>° èr˜¦¼Tì/PwŒád÷ p7¨+`à{w¾»®D…ýq\@bÎËkbñ7ñíE`a¬~~±„~N¸µ³$öB#™pʹWÔ¢ˆlóï¦fžbž@=:üëƒÁ¿€rj ‡µêبPuGc›´òè >p’ÿItåe“Ø0l óJóÂz­ayÿs ‚Žƒ" šañBæcÑ_u÷µ±²’Úáâ¤TΫŸÙÜ$|¼ä"*Rƒ¡p6¾’õ€Ü¨ÀÉæIêq`x hÆO:(00XaôYŽ*ÒϽÊddÒ0Bø?U"—ýö˜µÅ?E¥ aO‚NC.žÁ±(ò A]Ù?ZÉÆà¢€Aàcn«,Ôâ>¤ÎJOâ3;Âæ«\ѵEúxp$—ênˆ ò ¦Ð ÷qb¸7±ê6Ÿ²EÃ4.‘OíTr–©Í´¨Åp`ç«D±”‚á 5 ¤”’ÀlÙ yì,=k6º/z¬b“ótßÛø|ÝIZçÓµÎlX¡0ŽÇ0HYfÄ’~ýÐîvNMÓ_“5s5$°NDmÔa–Ä9œŸÃrþ`Ϫž"¥dÉ|“•Àªú{Žu©äÕgŠP_P»@x;úö +v±¾PN¯i©Âµ©Ô¦âz˜„öÊ0œ>g‰ùÍ[çÕ¾_k™X€l6æf/d\ñ°køê€ž2¥rG: žÇAâ½ÍzÏ„æBB_÷<@DF¶a6pš{Pjøµ›~³mÚ”Ñ}Éev¾Ò ¢< ßˆ ~}ñWÈßûNA6ÒÌ4dIo;ûTð¤iø.:Ž U+ùCº×ù›kRtô,­ˆnX­<ˆw·¨¬W‘Exñçd¶¤ˆJLI™æÌ倷ŸŽLŠyØGvlÝîôi&PoJ2gw¾Øš¡4½!Å jE ±PªÂ<|É`<Ð=™ ?^4Ù³íëjK¶®žÝü¨&¥ó³]a`óO5QAÄÎå’Þ4†Õ6v-óŽI t„iwÓ:ÝÊÙþª**‡3õWúL…G‘gÔv1Äi7«Ž0ۛ䶻 ë΀¬’bi€¿Ø¤+vµÉìÙ—½rv Øæ{ïî€OÉÀ*€*ã¥døã†0 ÷d*çéÏÇA”FÑgª£ ÛÉÒžNPH`‚L*¢ÀT‘ñ—Û¾¸`Óìªî‘BÍ„Æ2yô& “‚7†l‚Ã,u¦=ˆò+†“Ö +I>"ÖT4̲ØB*NT¨'îÉdTVüŠê›JÊfžíððeÃ’Qâ`Å‚F¬Õ¤Ù„Ÿí’¼H±~ ° Ö¾àCÛpƒËhlZHªZrþúI‚¿“øÝ/´ùãõP©ƒ’´;O”%™¸Œ‹Ð¾b€‰91ÁdC¿º „éöLÑQ>Ù#Z½¶äÓàךm‡¹£@»Uâh*Î ô° øxà×Qx€õÃfK¥öC/h~F(Ä*Mjèӈ˨6|”Ÿz¼š¶Ÿ{ ° +Eäô†Z.®c.,®qå(J&AÈÛòCÉæ‡"t{s¤vÃ#¿³­n ºÅÙA^ðR]¢Pœ§6e.ÖÒ*¢ž¤gr;à1Í&rö×±ÿLî8Š·©B!bNĹ6[e³ÇV€üñÀ¿úöØ6ôÕ{ñç2‹ÆàbÊîÔô|žøI\PV(½­º4Ôăl¼[äCášA¡:åèÄæTIÓåÃqC-czi=z‹MïA§ é‘÷õ^É3BL/Ó&±Ôª-¨ÆÑ¡Êãp…—â$V´J& @¥6„Ô¿ q^Ö¦éW‹ Ëôü[€;4fu'1Ó;@“¤‡ Ð[®HŒo¶B úür³CÄåiX-‘)š¬ÈáâxnnaŠiîá”&Èhñ?‚|EÒé]FÒ„¨aòÖ§¨F/þ‡” 8(ò#Ð8Û<>‹*–Ûñ'ÛAéÑß@‘$J¥"ž(rÕ;S´°G/zÈ£=5%€õ„É€°`¨BD² +ŸÙˆ! ƒœŠ-GŒ©ïŒù­Ë]ü½~æbãÙÅú·¹ª¿Ûç™jäxBGq\”7E%6$ÖjQHIE£½ê™÷mÉÊüæîLè™^®‹§ÖÀWgå0®/Q1±q5L.#ÍøÆŠÀHÎà:Ö¬UGw +ÕXÎjv¡Ô0űáŠûpläoA´Á ÏQÀ÷G ð¸z©÷4aÞð E5ÁÙ¥ÍÊð{2Wâ’€ŽœÙRßéhæ2ˆG È*zdaœÒÙSòPªªÿ©@Z<OpP‚ +hŠgys¨cœËÈÓþ\™.ÉmÏ¡¦F…25Ÿ0cð’I—XÙéa:SлR¨åv㈂6^’ùInf¼”ªN·¡í/”z3àaxâ=¼N–ñSRr—òÅ— Ð#X*Cð?«ÆêÑ««kMG¾’Ô‰ˆG1c}é(Bn±C«á *AȸÞÚ Ø(?ΣU€ªšxsÈÙSÛä8'¨Å~j2ôÈ6|—ÿܹ@Ñ"Rþ&Ìý‡…ˆùèhW±ï¶ÉY fÕ¦é!ËáEæ7TîÌ‚±Ž"šé•„„‰6Êb¡/üqXwè/Qªþ€µ(6ò/âàšSøÙ2ɳÇÚ {\]\¡Vµû7Hœ¹L^vvç™##Ký©G͹qm!…øÜ cÁ Q@aæ¯ËªiàBÐ%,nÚ)Mæ)æeD/#éÿ©Ç°×òËZ½%gë ȧqz5’ o‰(yÙU]ÎäÖs‡¯mdïKô¾4ÿ•[HfÕWæ%j0@Œ]Æ^„˜ˆÊŽã– §_d©öxò ­€ ššú8^(º5`éˆE[éå€gsFVàíhSƒ:Ó~‡x†C|F…k‚.B–홺ƒeø\мM”JħljQó½^­4QÛ©«/—):2åI=Pæ½ÊÄ•!,¥ž žÛs»ï©=ýùHƇ'Ù>Å7k–ÖBWŒÈs=×nÏ5ê÷O2ŸIU2v~Í®s¸&š,@1†óù0»` » ²°p–ñÜË ²@3ÖÞƒ\4£á²blU6cMvÁPEʲ?![zrÉWÑrHˆŒC+;‡ñœ£|îQºù€º¾hlõ"GA/â£(t«0, I¬˜–£<‡„ˆ‘to0ñ 1„¶0YåÂø¹NÓYÛk˜ÉºáÆÊ&¼g.ôÛôFè1³Sz6>ð©:´÷0ý¯iêÁMkñµˆÑ„Ex&XÜç*²¯© +Û¨Å\¾ÙÓ¶>°eEž®@6©¦>”Ð9¼Ã´çÁ_’A[¦´_ “] Ð0|ƒ.Á'¥’=‚-‡üg +ØðÇ^†DŒEÌ_SlT<Š€¯OóáÛJŒˆx{~Ѷ;UD1a®$)Tr€e!¯oBΓÉmè ™V7¹º*¡›”>‡<¬z“WÂX.gò=‘¹ÇPÒn†(éÙ ÇÑ¥T—’bÑ fÜŸyÞâÙ s—ä5'`?&HÜù$“ 7›ø¶|(§w-##@€ ]ë='‹‘Æ«HÑJú¼é5Îô±o—zA’•cXIY,‰JV—Ô®ˆjM!Ь»ÃÖŸ{XÂaY”-q£§^€ÂL2ƒä2  %Ïm¾)|À¦Œ}œý&/Ý{ ‹™`ÛOÇá¦Ëz•å½N”þÙ¯g›³çd+VUæ+ð„†Ò—¤zô&•" 8LO©m&R’é¼km¼Ëq°A?”%±$U`p÷†þå¹r %­¿ÂG® q•ßšñ‹ª¥JE…cqïÂogcyÈ Wï±­ëØÓ +ª1Ÿza"£(â„Téšùè ˆÃ4›Û7nCnÖÏÛ6òt)ëîRÖá›\oW¡%ôôÄE ݙ뤓¼ÌähIC9áü’§“b—tž%œ9${á%t™5«sÁµŠ"Ðë&üŸ°ÜVF¥‹w$8¡FEG,£Î-Y.³$Xh“ 1¥ Ø­[ÊO8þÂ2Žéy&ÓßE]<¾’b÷€˜¾Â„€@³'rv-š9""ÎŽw‰~‰F˜„×p¸J =7Ã\ž'$Ã"ÕöÉà5½¸}w“?Òß]’€&-xžrµ?ŠÃùc‚}D¹ýQÚíp°„=lO¨Õÿø %™·?ùÓ·¿ÿ»?Y~û³¿øþûzû“?ÿ«¿ùÕ?|÷‡ß}ûWÿüí_ÿê·¿ûöÓ÷¿ÿ÷o¿ÿÇoÿò7¿ýá¿üáûù½ôõ_üíw¿ÿîW?|÷›oÏ)¾º¸ýsWÐÞþì¯~÷Ãûá8á÷Ðýêÿù§ïìB>ÿëoÿïþݯ!½ýÙß~÷«zñWÿù·_¾ý›ïþðëï~÷ãÿ±sü;û×ß~÷oçÿôÏ>4¥óW5ðÞè¿ÿö\Úßýö7?üϽ/ÞóówÿøÃ·ç†þ¯øþw?ܳüôÀÿÛw¿ýÿó‡Ÿù¿ÿûÿì/ýÛïÿíŸnXîá¹é¿ýðÃãüË_ü/þWõÛ¿üÝoüoùwçßßþ×ï÷7ç¥ýá¼·¿ü¥5ÿÅwÿã\滿ø¯¿çȲ#ñ‡ùçÿãüÉÿù»ßýêËw¿yú‹ôöçç?ÿo¿ü_ÿõŸñ…<½ýïçü¿§éßÞÚÛ_¿ý_ÿwzû ù·¿ø%+ú7l1Qvzûò‹_²23Ñöùë¶ øàÌ/Ÿßýí«6ÿÛß=®ê¿ý®(¿ý>¤ÔÂUÇ|œ¹K†žVHZÖ(Ä?C }}=°¥DjÍÍxØrç9Ó»°!81*ÂÐoOgÿô‹ÔŸ‹Û¤vvÜ«øe¡UЇußl힀ÅÓ_§ÍOƒ|öÑ…8kq 5|‘¢g,{Ù{[#é#kLg£ðf'\5ùÈU}òë°ç×A(—wæìmW­Bög?]ºÍäRüt³ ™üãÛËëÛ$¦–ß|$Nü‡ U½™âØ›5ŠèàO¤Oo<Á}÷¶Ø;ÞÜí÷üžP*W4¶x£YñÑXêý{rìÑz~±7ŠÌe#þþÃ/xü´¯þâOn‰ÞlÝã‡=~-8ÙŸ¼®¯[ã…XßHëÌî?e¸K¾54ŸÐ©øƒÃ&¾â¥7¢H%]µz[.Õ¯¶`öÉÏÖz|÷“ˆ[Æäíåu}ºÜÚéK"Êøâ͵voÎ{Å#ÊÖü+C=ÌÇniEßäóiÜÇã0³®d£;ñ3',¦Ï®½ÆØeUß;ÿ…³ú->HÜ¢³Íòùáóè[ËŠŸq_ ö¸âyOXö>S…O>³¥ø dìl§Åâ=w\Z_ýÝ·±’_*vñnÏì¯RWo/¯àÓHçùDChóÏÖ΃_šðu‰yb¶½IFóêÅg+*X>S”lÏݨþöòl~(ÞRŽ_¼¹ähFµçÍaRùì‘틦qd¯p™ð;´mu°¾õÎw8¥ Ã'{"¿åõEBm|ya+þp¸âf~/Ye_*é½w~÷2{c‹!äcð#?ä~g=î=jÂ÷%Ú~Õ¼Êsß×~˜y‹4õëmý0†Ï:%Ûg`ó¯ÚošÒVˆ˜t¨b™Ï+OeÖGó‡1bpœã¢ÿ™¬³NÂ)>ÊoÖ(K¼ÊR%o#`­ú.¨øäL_Ø›97X# ¿dý R1{V\>c€]V\ÛZ53å¹µ/B¼õݽ4_¼¹iø‹;·_E©Û%õ—V͆Ï'ö?ƒ\Ÿ0ýŽ=]Á§ûL±ÇŒ qÖûLKîW“-Û–uUªŠ7’¨ô¯ÉÌO>€yjظißÇŸócþõoŠÍòÌÑØëÛË {\±¨öñ búå§ORÆ› ü¬ñ|R1‰c 冠 QÄšèºwtMÑ'˜§A?\×cˆŸ+ÛåNTvÞ-Eþ«SŒúÕ?r+¢oó«Ð;sG«èwÒúp1]l–}d~ÜoõS­h?Æç¿yZXm=gŠ©•ø;¡v3V¦ïô¸™ +~D·ðâß^]À¯ï=÷çíµ¶ÇÄYãÊN`•ïÄo÷ ¯w¢§íϳ÷3uss1²7=>¤§Ó}~<»Ý|]—Úø—ëï½Ûöë lùhþzÇœ'ën›ÆëwÎÛÞ(…CŸj¼Ý÷YW[û­qì;)D'Șï0º´¶½b+®¶îÙï|G7FõUõÞøD¿¼üÇ'º÷}aû¨÷w¥ûDòˆ‰4•úñûB×:nX^iÞ+;±^„B1éæw7yÑ·—W&³èÁ—hNñɱîx·û[+Wñß@Ë/æçž3®eÒÛØs¬ü÷?\Ôãý=æ)Áã>ʸÀßì7¹ïËâã÷wÁI¸7²•Þ"þˆ{ÜݺæA³#΋߼3u¼—×ÿX÷ ˜qÅ‚(c!5KÉWŽßR‰EnzÌÇ^3öK4ïˆú¶òB±úR=‘k{yŸî-G(Ùfs|_ÝD§n›QñŠ´Æ6ï»;ÚŒÆú¸eÀ%üÊØjGãÂ÷ã‹øú +~öÒòÝ ä •:{|»ÿôËPàm~ýîseñÓ"ŸòŸe¿ÍìöãÞ´øÖSë?ýÓ ÊÚ„XÉ®÷³\¾Ç¤ôi›Tlqºm\!pØ>BÀ=g޹°üy_nˆµìöuh–ú3ŸõzLYïE#k#>¿ X Ð}¿9ï° „`/Ó”Ru̽ùU¡É{ÿ~´á`¡Þ÷¼ž>’ßž5Nè·Ç/@ÛÉÈ>~Õ7n¹Yº¤xŠKk¬Çäôá|Žæ9üÎÞ¯j¸cÜ–SÀ½3žm.ÿ‘Ê›ígîߣ/ð¡hìõÅSyñ`tê(÷Ôspš1èÝ~ù;Ëãx\pª?¶±¨K!öIyD[õ6Ú‡°t±ëȾf DýØg­˜›Ñ{{yþÇ…U¿“Zí{aÕWò•-FŽúzRÉØãÖØâ%÷å #xüŠsþ»½å럶ûú[ǰǠiõûÓV,†ˆÄ?îM½ÙBÊÝéyäJ²Ò§™ôngYÚŽà# `òŽ;<¤¾°bXË~ ýf?ÜÚ÷qX¬éʆKõE™ŒÉgo®^nòü6ïé½q»Í(Ïú…xŠXìî¼û7¾úê"ÞmpVìþ€=mpƼ«øcrÒ¶òóëAbQÓÇ~sðQ¿¡¹F-¡†PjøBŒöÏmþ0ˆŽ°§¡;”ñˆœ½ÌÃ5:)”×?{sïÝ›¥BáV(¢o/Çõ›ÂÔÞrå»bÒFàç³ÏokØ <µ‚ }·dì(£0„—ÛžÇõ6Rz7½Ó#á‚§Í-T¢£òf-J±/ˆ¶qÓxxñ~ò¿_«ÜqøÒ°wML;†íãn§ˆ}^^—_°tÓ§ÏðŸí‚iöò\«5ö³áBF×gæ+RW´z&€è±E׿qé±½±îÇ»îߣŠè]Ûíyk®:Ç ~Àã—yI”¯¿ÆËÖwF˜.™­>{s²ð„iÁgˆ3„øç6-ùüý<®ŸpùŽ7¥ÝŠÔi–#i‘c‚˜€¿Ëm¶÷½L;_¶âçËaý|UîÙ ÜTG…Ä•r$xÞ¬q¤HhÊvÇÏÄ)¶$ °otì«€<×Ö‡øñù +ß]ŽÆ»BÎLï¶ÎÍ#ô™îÊÆŽ/:ßëÕìSŒ{SªÃk„uX>_@Ü´þ®È˜R÷´âû~7®Í¾$k$ÓÌÑv0&·Ø|Ô~øãNµ½ËL¨ø“w}{lÙáî£z¼¨d¼½ü úm-¡ÂP¶Oƒ¯Ž/ÑÜÖG©hYã€FžÞhQ«2öV`´f›¨4?ß®#ºZØ÷êüÊrº$Ò©¶ýWs™QÜ>r–2SŽFž§‘xõƤ7Í›ï¦Âvê6ÀM9Ô^]A$¢Q#½kØ-àm¢öHQ¢ô®ÞBŽ÷Õz9d,®‹ƒGBRÎþÍž—cªðÓjdØgäg˜6kNI à{6™‘;Ö¼é;FÚo/¯Àï¦\cøÔ¬ûû%šg®ïš£1bÕûR>ŠÐÞø)¨wÏ=©qGßéÌÓ|ºèÈç|³ûÝ.ׯ .Y¾S_dsö-ý{%<R¹I­äÛÑ}?·÷c~8ýãºòŠàGr¯+ùÓ$Åyßœ”fL±CÁt9‚‚Ýs¹Os·˜4îß¾ Éôöò +—Ö/0f·€tîtTkÜq-ÿô=«Ò¾Èo¬”l?ýaÌÛ¶ˆ_Õ¯œ‰<þþÃ/ð–€—‹}ŠÿâÍÕAõmëCc¶ýо¿WêÃ+³ïFP´\LìļѲh*ÇôÃD臮èò¸`ÜšˆšSf{Ñh´—Æf{^͈F3_‹¾3GsºT‹F«ÖÐfèµE ùùº|:’r™v{„»HÅ~ñæl{lãvŒíÛEUÝúþéncÏ;T­öòt\‡ €ÿé_Àv^±¤Þ}ñfß-`2ùìÍØ'¼UÏëŠä-”}¥Š$<ãZ„)àá§×ç¢?êîèÆ:,"§1ÍX=S@¦ Y”E}œ‰í³7Ï+`™öÊÐXŠ÷­ý6b®â-ro¯ÉâëòÞxO‰Öø¾–"Ä#!%øéî±úˆÇ½"ÆòÌžnÕþW»&î[èÍÝ=^Ùi(¥! ãéÔ¡ üýHÑŸ>;&ßãAr|·åú‘X*ë¾óVãDrÝoMö_¼qKÉ–ø +²ïno5³¡äøû=±¿Ä®/YÉã³7;1SŸM3:Y<­Êq²îãbêpÇ­VWæ­m;¨†làü­'ìoÉ_ehlr(ñÞñÞ~öV/0ì²Ä¢4Mâ×;Lã@gÎ?d}XLo3@q ³ÅvÍâ;jމ2j\WÎ%Ç«›ŸL+ 5îWàITî ÑH\W¥9ÓÖXw4bOà^yR + >~‚v;͓ݚþîGôdq5~²e㬱îW»î›Ð¨¤@ü¹£„)±…eø­ÙV¸‹V¸ãLCP¢øeàP®~úFÙ=µ8Éx à‰yàúGW¿13%õõùù4æÇüÜïw ’½^Z0¬¯`†þ¨lWËKHA)í;€ôòbŠ÷­D‚^ß§%WÇbq2õhl±…~PÒ™Ñw8*€¾%ÞŒ(jŽ‹c¦0œ7²û"ÓýÍà“ˆ¨/\ýV|žÅÖsAV¢€Šßb.ñ¾§ovŠÆ}Ënò‰Kï¨5â/ãO¡Y”Ö‘”Op âŽÍCtÇei‰o>Dà§vdŠ^å=¬yÞ8¼{JHbjQâ‹™“ä†&¶ÆûN>Æ^/a·çô y•4gŽ!PÔ¶!¢ôñ£ ê»:`¾=®+°[+,Œ9#±\Y]âïÏ®ú&„²wMÚ²’¬é;Žs¯Æ„Ò-RæGî¨y¡—}Ä}ÐòÅCÃÚ­ûZü¹@p‹Æ;›+jŒV¾ê.1À¬ÉGÝeÇ/¾³­\¿`x¢™â\X·GØZãz¢Zk—|<½yŒ_×MÉuŸ4“L€ü®xíŠyïÇ´8?¾ùûbì/…·æù.vÆRÓ›G±9Ÿgç»ÜvüÖHK‚Æ«—2ˆÓ§D©÷6ÿšJô¬9žx÷E‚Æ¡‰¦Îûç^dÞòÿÑÍý)°Æá"¿kÄ]Qx1Œ¯wU*YvÜÛˆû²r\@‹aUýÍ3’ŠÓ1aü†×Õ=“×Ñ)ŒF¹ÖǸåþ0e4R.Û~~Y#þ˜âï[TöGYisÍRb>Ë9íÆýÐþàÞÙY-©þzÕ ­õí¶5Æo?ÖY´ŽîÄQØ»Ž«çt´øU‚ªÅÕ97ûq †•1êðGSì>õǤKl1–Ÿhé^bBâEðý8r#AÍ2Öh(„LãÆ°Ã~àsÇß÷Ø6߯öà&¾0K5üRû©6G¤‚pŒûìÍý"bdYg¹Å&«›e~|céÙ$Þ9OÁD=^/œÛ +¤Çß?ÞĶãüåΨ‘·§c‰' h[–›³+ݶV"4óرçh+¾MáäAm+ ¡ï‚fú¶»õô…®I|Õß·ÇN«Q#¾R?÷¾5¢½6í%¢g#¾Ã;À4"ˆý,¾õÏÞܼ°ohCßq§bá1nÂéFÂu×;n±Œ“¾:ûûÊA<«n軆º|ìÔG»wfDUˆvúÒRºó£.´s,Ë+nSÌŽÆSß}µ³<²‘_Çh*¢û½DݤFɃd/Óãùmc­Ò<Þ–²kÌ% È%:­ÆRCÔª–4#toŠ?{ßGA=y(&‰ö;õ ð¤h3r' ‹-÷ €ÐÛˆ¸3×5ÇL¿/ä+K#ïÅÎG½Ûûæ³\Cµ²Åv‚—#¨¦1ĆæÆÞ4ïù!|‡¤m󜭜O£ï +yb©h5}Š’ëV®4¾°Yi…»8ci ˜µD„u·¶ mLëžl%Êxš",Bk’é±\F„aÇÍ;Å|–AD”<=Ñ•Qa)O¯W‰ú«ãôŽO‡Z­m±õÒ«ÿ0ôýðZDnnŽõ»#N£'8K~Ü®Gš%›po ÐgÌëhdÔIû5cÐH…N öýû`â=(˜u_˜Ø²»5ÖeÛvAŠX{ÎxbÉ×qÌÈg|Α¶`Ô{ êPÍ%¶úÈüdN."j—ÆÇŠ=çc#mÍ®íö75i+kM|wuDœf‡±ì[$©ì:V¬@ŦZ© ¿,!Hb€vÐÂééÆÔÅ&„ÊzñˆO]Wäd87½kï‡ Ø}}Pï–)¢’/Ü$¸<4¦ØÅ9}ôU%„fÐ]Ýÿ~zÈQ©E ÿUÉ9wT ï"­¸ƒýÝ·\ì§é‘I”·+î7ŒºûJU-#îÖddc¬Xn£ºÓîKÌó­÷/£‹š§ÃÑXAï5³–»1@w<̾©Œz£V]•å½êT¸-`³jäBìþå¸Xg¾>¶uüÖû¥Œî-˜Õ¶S©€ç›9°£VÃçÛ÷º#Tqõ ŽvŠj½ÌB)wÅ/H¸Rމ¨*§}‡!Çpê() mÍR1Hb^: òà6;†K_^åÎïvѱûªùRÁùDv¹W•F°Â÷d«Æ¤“œåÆeëïÚŸ0/£T0ìÏñË|w¾@áv"‚¹u3ÙµD²UùÒî½Í)Nt×*¬н¨ƒg^‰÷è~œ*^%Â^éc¦¸€éHÜ}©aïÒŒš"Ü‹ðgo?³ÇŽÚVºUÜwe¸ØM©<ŰÉ@"Â|¨ì9R`âhôª±Ú£bÇ#­^[ÆXЯk] ÿ¼ßMYúgåž›7Šûí=¥WcÍeÇÕ +Ø›[ñãZôJŠð®Çž¦ wQ›R}Ÿ½¹à­l“Ë40c5´v +„»pxŒ(Ë”a’ÕØÈ΃ïn˜Ž5n_þ\;"”߸onîÅfÌeS¯~mpdæåÒ›@}\Á¾Õüwôó V®Ë]€[p_ÅÓœƒb¿‚»³Þ¡ÐQõòÆ+ ¯‹ +Ë)^ÛxƃËL4Ñðo]Dr¹]Çå‹úüÿª6}Ž+u¾¯_åa fo|0Kjí5î¥D{2B—lW~ÁˆÚ—"ÃøcA;­qÍ@ Ô–ã»Y-€F­¿›¤ì˪Øè®…>Fºåëõ X_4O2,¹Z/shßdضËÿ~O˜ç 8ïÓÒÞŸ£¹xHê>­—àî^Ÿž—ð’n0[ST>íNÀÁ7ïÆN±ÆöÐ×ðù¯æûÚózÞøìÌà5`ÓÙÌàë^˜oøª€­´xW×òŽ7¡¿úÍ#ßzêŸ}1wÕ“Jƒ/æ%¾Èxh?Ž×ê—ÿ\Šå³‰¦R|µ[JC*»—p[ïŠI$Å}x¬dã¦å»U¹-¢«)ô‚ºWç…d2UEšµÎ‹uÆèØ€ˆð—ò=jŽøÛ%É-Çã³Bm#q÷—rw<‘ð²¢q›Õ}vñ‚Ø…¬Ìn1b{T«µbÏü+%(¶oúãK#±fìÙ‚½4n½œ â}޵äØÌÖïóƒþÔ¨[¤äݶ5`‚ç›6“}¸œÈV8•¢À Þ8-ÂG¤¦SDCÕ ó–o="üµÿ}¬?|é%.6*+=Ê ý¡¼Ä\ÕÕÏÔ‚_³­Ù7ùCÙÈ ”¾x‡ÀdóEÜ8„ŸŽ‹í Ê!Wd"‚äÿŸ´÷ünëÊò?̇Y3Ó^ÓïM÷¼îW]ÕîêrW•«\E0”ƒ¬œ(Š’(R¤˜"瘕eÙ–ƒlY90ƒÈ‘`RfD¼¸¸H¹ê½¿cö¹¸ç’õÞÌš\®Úº8÷ÜöþýöÙ{îŽÓ–Jt(ˆ“²Ë˜óIt‡cN¸¬c]~T·º¦m ²+"ÚÐW3âm¯ÉSÊšïbyþ¢¬¼¿ •¯ÝDa«éU°©¢•e;Ò·J˜sÞJ¢b2Í”ãC×Þ°iÙ4“ÝÇ4Àe·6«¡oÑ)Ãi1L­¯JäÙ r8²²bGN“X|Û9tWŠ™?›ÂÝ‘‚0*·£>ýÇ>•<68¹²˜-Xn§Óñ‰Ea“6V¨Âï¶é`RÍ+«Š1·ÅñbNݸ%;Œ=œD7À-ÙÁŒx%;2a°öǾ÷7ÓcPD' 7pÖ¸bwSIiÑéÇå°AÛHV0› Eµ–âˆrœ„‚jX³uJ'²e—¸ì:·|‡£ƒÇ&è"1›“Fûb1‡'ÎÕäVìPªUåÅ]Æ­`£z¸bÓ™Quöd¼´¸›è dñ)aŠÅ!a›ÏÃ,•ðæþ¸ÐªŠÎ&)±ÎÝ‘­ºívq){dé"œÛ…kJqÙCQT›­Lˆ£Ûè‚Ë,¾c•³\…[ÁaŸe™ +ÞNè’å²ò–™n€·îÂÅIå<¤X1,eÂTx¥8Ä}/ŠûÃö¢¼Ç¿BU¥¸ZE%£ªÐ¥Êì{ÅÊΖÀÕ_‹—áßc4¸!vNñè$Lz4©fžÞ®USôVW•°t‰[LJ/ +¹ex7—pp`ª´ÎrqluÑ}ÑU˜ïá +IèIV'Ѭm »#qxW}ÌV8*ºdª8ÅDòbœ’íxlUÚwQ͈™1z±®«BgU,€*†™£k5*±Ÿ²ªŠ}]{ÜKoª¢ËE8Ø¡€“CªØ(š¡R]g†5o˜4Vm;¸¸BÕvª0·‚„ôR«±¡©U4…Ʀ?Š®*a ãxDò¹<\[ tÇïq@^%a‘ŒËÚïUÆ+yX£•³¬¹Š>R`kê0ÀÛIЙX6t3[ê§‚-nPEß{‹_VVD#Uô8¬Õ.r˜*³gè•YüqŽ. A)~X‚š±GÐBŽ ¦}EÏbQÌÖ¨(fîÑB.‹tKèbºÅ'¹ø¥”) DgQn—b++2PZÊe·'=VŒëôy?– :;ŸÈ4[¶ÃûTŒ¡…ÛÄ¢X­ø$[l¦” ½q[é ’©2 BnÑpri1Ù²ÅT°UÅ8<܃*ÂÓÁþ\æY»i‹9Ï3Ý=Ëâ…â9LñÙrLŒ9ôv) +9ì`΀i1º$…i€‰¾1‡úéb8Å3•â³ôÑ0]Á|›G•U13Æ¡-+oÎbä ý0‡©íÄlâ³¥ì¡dӅŽ!twyö Ÿ]ar^qžC‘‰Ñ#`dz0¾EZ\ÊÁálèÆbæY&7ŸGÁ²í„™rn1p¤ø{6U€f“Ea w¶X_„¬Kˆ:æáxE«Å„ZV1^€(æif%p±žFq64r£s˜O‡a•³K‘Y48L¥šW”±Q•t~!-ÜN5 ]ÌZ.gCçw-.)Å'ÿÅŒ Vâz‹èYºüY±l}Ј`R,QwK™—•í© ë3Ó2惎$+z Š[¯ +w–[–KÒ¡YUx“¢K¡ð·Vn7Pʦ+p‘ß·š—T±q=(€+G&•—0†®+‹¦xT2Æ);¬«˜3L:碒y–qØÑ çlÂùsñ²«`ÄtlÖ¬xÄ‘c4(—ÍØãpxìï™”]:=£Š¹i „ƒÍUévÖ%ºG§ŠM*ú[h ÂŽmvê£{…*pâL);Ñ«ŠY<ÆŠnÚŽídN¹ªs¬7°Ã22úMCi)ÑEl€.¨ªÜGZÅ”õF»'ýÑv·ËTY¥ÃäŠÇwU¸z'ZøŒÏÙvN;áq¶c2èýTôU¡Òt¸³˜’WU° ÝUÅ“¨bå"¡~•àeW2rЂDUlL }1/ÃÑôpq¼&—9‰®¢oÑDÅLÔ*t¯2ž:¦¬øû2ì ¥sÊŠþ9€WøÄ—S¬BÕzp!}c~ÌmntHyfC£Û p8+®ª”=qBÂ1cUô­ªl|R)~>»¬*âM¦ŒÜT‰zP…ã“ho\Qˆã?ñpU vµÐ1ŠìzãàdtZ\Š‘o^E+\D¾e8d›gTÑ)~8/­…ÈÛfYIÑ—YÅÖ\ ÕŽYãÑ©Àx¬˜*ÓˆSp°ËÄ\ñªØBEHóâÈŪ\¨ˆ6eÛü©ªwEü‰‡Çµ¸¬x(A‡p«ÄÞhÄá*päbe)Ó/½O'6¾÷óÙÞEq YKŸ0­–àh8¬/dƒRÙp#š-b»ŠÓùQÿÙo0Ûxb™Hz¿âxJªhƒ‹q5=ôU¬ÎÁD¼ªx(Y|²„¾" +›øÃa$L‹C–™ŒMv,)Þe‚?qP–2 vÕŒˆøÎô”"‘æ±IÌ2DW—à¨éíwG­:+­šWT`ûUÉd—ð¸øN Í„‰ð*Y‹ÄÙQÓÇeñ §Xè¶ø,sÚÁ(Ã⃥UXÓ1‰Åß3• ‹“ËÜÿÀ«,z’ËŠÅð‹º„WQüYÑ¢qyÛ†JVU0ôƒW‰«fÐ +ª8å<:‰M”Çù_<¶Ð'8Ê,¯ +ìoCÃUÁ6ÀœHÓ)¯ØYÅ+Ç>¡bì97°]†É‚à•ïÈÛå²ñ÷ Æ`ŽÃî|t•,»@ñí¼rÌ hQZÊ6Àa~fc¿º §èâB_è"¿mÝËeÖb®Z‹ÕÁ>¦r6E„ÇšUäC*ÃšŠæ×XÌ)Ýt|E­eL‡s°‹…¤¼ªbœ¯ßECç—l»¦8xGá,0ä0c£™qЃOÓ0úÝÇ8×ÊXP‹Ã¡‘Ó'Þ0a. âlï¦rœ6Âãàƒ3ÔW&#–‡n=ÂezJq‹LiJzXgÐÆ¹üè2;[‚ÇÃßÄc°óÎÌtôULn<§xDQXÂ.Z|ËC +£‚âCF^ [~¾r¿Œ L¢ *ƒÿÐpØâ %8¼•¾Ù‘ºD=¡eÛ5L‹eî¤XÊÆ€à4HZˆšèéf„lô‹$‘¸ +ár?(J´ß<Âf†”`E‡(a\BGŸb1xÏe]Ùb?îÿŽÅZÅÙðË^S‚HM%dÞ>L¬¢!óu¸¾5M`ðtàƒÚŸ4‹^ùî<¢(V¢¤‚eã¼J¶ö%ãUß‘®E q– TÿÞÿ(ÕŸ )DÏ2§é´M¿/g (ü¨;jI²Õ_Êpi&ZŠ­yYUÑÄ#a.(RVUŠ+Iþ¼Æf±>¤ç²10HÈLõÏÕœü¹^1•¤P"SàöL½±2d¸0¼fV¢ülB`›‰ö·’ÎÊÙŒD¦4>j€‡—øÈø§ïÇ…ÐêÇ÷ÝUnßÌÃÝ8OÇþãì.=ýfð-–rq8-.yÿ£h"ûŽqð-N<æ¾R¤˜ÂI?í×vÉ|ÆYÉáy[2Ÿƒ<*K+p…ë26¹¤’ËT#/G  Ùëë¸Ç–Uí(¹_Îe‹r0µêÊÙZµ<6Ýñ§ýÚáRöJKéãfÇtø I&¿Öp™¼Æ·^öÃ8$f£óÊñÅ•;N3qÈv(å]†ïOÁi}t .Å©ÀÂuW%æÎ-·àBÈ8{ˆËúÄP. +KÎe5º‚¡‰”sÙä ZÉâÐ\×áãër\ï'=Ø®îÇc£mÙKBªØB•lýZ$¬ÂüÜ2œo€KŽT)Í>æ÷L!ú¦1&ô½„ t©d=ˆ?~ýöBÀµ]yÅͧ—@§ƒbðVÛ.U^Q¾-ýQÕÛ5 Ù¥^ÊåT°•3qp “›p™~ +ðÁ4•6+“ɤ‹dâÝRÊfࣶw8xšîÎ}㔲Y5?ì×¾íRŸ?lw˜Ö»E1›–RÊfª—–ñpZJéö•ÛÃî(ØŽ-Ç–ƒõÀÏ|«Ùòõ´ºÃó„ßÑg˱óvûÒ%ª¾l Êp¥:\—^ʈʈf„ƒ›)ÛvåòXW0JßdÓ_qÖÊ÷(ÁÅ.*X:z].8_Δ8+C—Rà|Dú¬ãg;†1_)›¬ÄT¬2b[ßÒ‡„ÌUUÅ[ŠB&¥¹s±©,+ÅEprõÏ¿m{àpæ6SJ\ëÀÄÁeìÝF´÷‘Íe1èÀ#´]…-AÌV¦]e¸õ`kÝ«ªpÞ+m±uçñðœòªØ9¥0eÈãbRöÓFªÙŠé¼rœHOÇ‹âŠée¥ØYµ#-c»@fò('¡bÛƒµÓ°íž¤ŽŠÂÊ2\¬‚Ë8Pž“—ŠÊÒí´ ^)[ Žñ¼—3Ë0D§÷êG_°] þG-ãO+gOeØlr²eG˜»xª…#Éé$\Ϭœ©Ä…„l)Ίҿõ]|æ´z;—N•2â*¾U§jûd|û"|`õsMT3m—ÉLd Åböº6ø_¸uæŽp¬X¹}Gøvè ëræØ½tûÂjÚµþsïÂÕÇ+qqº˜!¾‰™j•œbŽF5³§•<&}¦²S6äC¨*¦Ä ÐU攈S¬[¼ïç_·}݇=Á•,eã–`ÐB»yp=ø¶f +§X«úçÛÀ—³å?K‹97RFŒ.K‹iRE!öÐÕô°G{ZJÙ ¿Ý“V»ÃÓþÓ ñ?ó¾é~çÿ¢¯¬? ëþÁ…õÿ³{ìiéÛ ~›ós7Úÿkì9%?ºÇž ˆjý@Ž­¿¸À»Š©¥Ûâêй¥Å+rªw6ñ³ÂíÐö§ÞBg]°dP<(Túh®âmtÌ»ùpÞ£ÐQÑÛÈ ý-û8j‹v’”Ò¯@Eß‹wïry¨*¯|§¸ú­ÓÛcPüOÑÞÑÕkÐ{ªÐI*jÆ1øWx óetj4Å-žEH™( °C,Ùù†ÿÃæÅ?zæM´;Z¤ï—gœ.ÝÆJ8ÚÜâ…ä?Ò=êúÑÌ0eXØ(º¯¼ ñûa±æÎ >[Y¼Nn Ѓb¶·Û­îü¬@×v3¸hð‘)/~ÓŽ‘â!ºèog“ìÜ~óÑvYáö×ìhnû»w¼yçñÐÝ_e?y¶´¼’ó£V·…?xÿN1ÛÓíV·?èÇŸÞõ7µ½Ë»ßªüáð±ÿùŸm8zà}Æ)+ x- +.Z(Z f·¬(.GWÙH˜]I;­àÃ9èrðì–€ÅàÒ±¤ðÿ«Šå:à!nñ¶az$AH†Ä‘•ÓÏnost€€êa7þp›c1­`¸¨Öfyå›@Ç'èrûu:¼QÈ*îU%]èœóîs™{·?sß[E1mÙ¶å':ào°ø­{!hf‡ª,ŽoiñÄ›sÑé"O{q 0³‚„E¤N ËÑv1TQ^RQì"Mh$L»•(t^E`‚°Ž Ÿå1‹˜ŽÆ+Ç/«@~ŸëíßÚ©\šFýä»Pb@Eå¾ 6TV•ÿð»aEôàGß…Ò Pîܾ m„˜Šß…<ÅXLÇéþà˸(!°´ê‡_öÓþþ¿Þ_ÿ¿ÍuiéÏlÎÛ{ÿŸ¬6a_ŽF¦ªŒöÁ1&‘‡¸ p¡ÿPý£@):Œt»™Ÿîhï}ä >ÂGW´ì•ôì*þOúûOu¨áÓ߂тg½õçý=ºÞ®ž}ǽ}¶æ­sÈ8–ÓM¼Gÿ/zs²ïoyrJ*Ñ ÿçO£Á¿Àÿå6ƒÿÅ£{Zþ6ýó·Þy‡îÜþMÇ®·a%–rß:{äǪÏn³$9mîݘÐÔ¯)ϬNÉ“ny#’Ô®ž#ñ þ¡¤Sz2éUµ£"æP6½z"س6.>²>&¯IÏè:I·QL¸Ì²ä´¾#9£9wªã.“øÕ¨®ñåÙ‰Åoø^Ýåï ÷'Ç…Gï‘ÄdÇû¡7á:)î¾ðɆ»Ï´6®oY}$;²ò°{ׯ£ÎªÄx÷îÔ¨ì1ah˺-Ê…o%G_ÜQÔ¦\ê–µ‰®_?i¯|q·éω þ12 9“œàïKÏHOg|šnÒoR¤ò3É)Iu|Jrôå..1©8»²Ù²^mOÊ¡nI»Œ²lȤNy5Ë£¢ýÏî¶rVð?Ž=–×dœ&irJß3 —ïZ‰É~ýÆcøžïºJ_}wö?ž}â—ë÷Z*2SÊ3¤ÃÈϺ¢ç÷Ú*oÔ¿óâfó{/n5—=ûöôo7wì‚o8™1Iâ“òÚÄ”ªpéù”ϪËì}›rmÂ*ZÕ5¯>V6“¾¾>èOgÚ#;›ók{áO˜õh»RùéÄ”¸:1­ª_Ÿ”OÎ(Ïd<Òº¥{uï¾xp¶4ëŸÌ{õ½›!“.0k˜“—{_?M»-ÂgÕ®M‹­NÄaŒ²!­„Šu)Ÿ^øzR\½Õôg©ïI¸4üu‡¤–š5óóöKÙ°NB†4üL@#ÈÕ]I§ðpjZx0ãî=F¸D'¶"ð¾AN4]„_Ñšò+[cNññ„Kz’ ©»Ó^Ù™¬_'Ê­æŒW ó¢îÈtÂŒO'Yî=º<É?˜r«ÚÈ ªs3lP¾™³_Ú‚÷æg­v2b³o¸ ¢U‡¦cÍ©jFë/í·Z6`­ÁÁ«Txäk*Ð7@úÌjÒ¯ëÍEÔ|Â/©KûåM™€ª#1ªIøMbJ~Špë{3ÁÁË™I•›5òsÖþLHÕ•ò +O~áé¤Gp,6%<°<*¬™¼x²2ôiÏþ˜cÀšñ*[×'z¼¼ÝóÁê#ÉÁŒÆ2bµauwÆ/=rŽfœ’3›a˜«ˆQµáŸzñˆÿÁ‹'½û~]ϳü6Æ”'33°F<eÚ£éˆO Ä&ùûצµÍ ÷4ÇÓÞþ>ÂÛß¿> ûo¬­29Ýþ>éê9qvïO9¥µëÓ²SMkÊg7&úŽåû‚ž}Ýüûå»í±±Ž]™II5åÐw&ªs÷lûþ.p­ù°»Òn]çúxÛ®ç·übùÁÉÿ \Â#Y¯¦ô˜D„Ï$!¼fYúDzÍòŒ×Ø›v)ϦgDG)¿²9ëWµæBf]aÎlÍø-XCЏCÝ´1®®Ë¸´m¬¿µ'Ý<ûîä;ÁÏj=a«ý§µ;fQjÒ._{,Ú÷ú»æ?,~^ó‹—ßÔ¿KLð÷¦§zÄ’ã†÷þýÌÐÑ_ãšÊoV­¶WÍ}qè¿<û¶æß2þÞŒC°Ÿ]CúÍ +§¤¼Ú.Âc–S~›q3j¡BziÚgÁZçfû/äfíƒìg§âLbRq*=¡8MyTM”O~6Ÿ¥¼²Ó©Iõ٬̸۬ŧÒÓÂ#9?¬¯®‡ +$Y¿Qš X´ÙPÿPÚkVn8ô퉋ˆðZ5dÄlÈÌêåé Aš…uŽöB:¤h½wîO w[ËrQû•ìBß•lÔbÍÍÙÏçç>¥ÂfCÖ§jÍz%µiwÏÞ\ˆ_‹Oǽ­­;Û?ÎELZ¯¦Aç$]²ºL@r*×åBÒú¤SppùI{UjFÛ“÷_ø¢¾ðm&¨l8EÕ+S=»W={Òn=snà:ì]cvV+ÊG>Ɇ/|G„†?ùõ¢¤WT“p‹ªã^u{.Ú5ÖJ` ùTÈÞOì2`Rä#ªî¿>Õªrˆ èEYü,1ÙóqÚ©íHúí¶”Ï¤¢`l©9ûH: ìx=Úô§WOÞ}=ÚøÇØLï‘Ùïw uÿáïîkN¼C?™Z}Ò³'z£ö_?oz'>*>’ •TÔ¤ËÕd@× sg(„,†|ب ýš®×Ä{^?–ÜpjÛV=ŠsO†ŽþÓ‹Û¢ƒ”Ûª*úûãYãó;§óênýocÓšfÐÂLÈn‹{ôÂWE0 S<Ц¼OÞ˜q +­ŽµsŸÝiùãʘèpÜc–½x,9¼ðUû{¯n‰wÇêꓲãééÞÃñqÁ¾W÷;+g.žüççwø%fô]ëÅ™åG-å+÷ËSSÝǨ¼•pÉëØ;)øƒµ'¥ƒ²þ>á±ÈÒnMsÆ#9ƒ}ô ÁîHëÓ~aMÊ¥éÈxìúØŒ¡k퉡‘˜1ñ33ê¦å‡-%áë{ÿÞwáàœ¯ÿuâE°>ªkz}O²gåŽh÷úÞˆ‰ÞCË÷þþüØ/ç¿iüƒëÚé›ý¼™Kº ²$èþåGÝ<ÿ¶©rýqÇ^ÊÓ[M¹»>&½½'¯²y 쬥®BÄf+„-¦Í¨QŸñÉêÓ°oÈY[@keÖjKyÕ-·¦­à3)¿÷Ä[AIÝf˜,ê:´þ¸¡$5ªl¤<ýÓÂccí»ò!½l+j6ýuÉ:” i¯ŽŸöZÔ)À )¯A˜ö˜%iøo& ºÎÒOÍÛF¨9Û1i2äå„ðÐ*ØØ#r ¶óð7\X껚_°_ÌE.ÃÞ““^Y]|º}áiÿ åéøxÍÑX¶æhÝëR‡9Èøu«j¥Â²sd@p” +AG·ñ^ܯÿmbRÞ”œÿ’ + \Hzt=±eSÂ)kHû”mi·¶#7k±’,z¹°0t3ù6ìëOøõâL°·† +ŠNæg•]ÙˆRöó®8z®N«[^Žƒ®öýeÁhøëS•8í“7¤ÜšÖ|@Ö¸àÉ€þŒ¹ôÝ0/*2ô)²˜ÀæµmÌôÖ¤¼Ò¦”O\s‹¿zÒ¶+ôiÍož%8 ]_y ¨~ö]WÅÚcÁÇ9Ÿ¢1ç•ÔåŠfÒ«l¢}6ÐgÏø¬ê´Ç$I:Ô‡®5K¯?uÛ‹IÑá©‹§~¹öXÕqΚQ·Ä\â±Éîý¤Kz¶à·sA³6áQ5¿óòAïGX7ëO”'R“ªºô´´&ã’Õ'gĵ„WÝI-ÚÅ;ü]áëM¿~ñ]ïîÅ›âݯ¿ïIŒËkןôî[} ø`ý±hrZ~*íVœ~×Êyu[ ûs`ì¸)T4ÇÝ» ¯ä$é“}Ýœ ‚Îð™¤X„ۮ݄½¾5'oOyzĦ;v%fûS.qMt{©lؘÔ4¬Ž*j×Ka_Jެ=î|ùι?®Ýëª$&Uõ/ï¶s^Üæs×ɽ¼+Ý»§®~z³þ·Î‹{þ~ö³šIM)(·YEù-ÚãâÃñi}çf¨ÿbæcu¢ãçßÕüêÅý3¿]ïü`mR|$áR6‚èN9ÕM9¿IM-ÆBØf›­!ƒÊ2 íI{”¤WÛ™÷zó0–¿øD>Üs8ãoû`m´æ×`;Ž’°Öž?l-ÛxÒùÁ&à‹7ófóX+)XËI—ª9í5JÒn£šòÈN€wȈA™[´_&çŒZrÖ¤'g­ý°/F2AMwÒ k!jPm.˜í› FcnΠÉÂþÙœú*±Ú³~mO|Zt´ÐI7£:e!ªUæ´2*¬l9ÄÕ`ª„KøFÛNy ²¼ß %½òÂݽò+Zò`o6fäõ1GŸ6ãë³æ‚FE6 §¼z>ö/P¶¤üšÎÍ%ûÕܼÑH.*, ÜÈÍËÚNþ~˜ã:Â/>*ùnééÅŸ>”ìÏ…¯l͙͛szU.l6Q ²>ñIÂÕTñúá¹’×øQA¸0׌ô g#ý3áóßRÑÁOc0¶áïZÞ]çï¦Ü’S…Q•[°_Z½`‹Íæž‘ÖÄÂý±‰ö]”GrlyáQž[ì=ðzLݰ>=dÝpšÅi‡¢.5ݳwm¬µüŃž]«cªSq—ÿ|Tx r£ö$ØáŒÖ¤W/ˆO)N'fÀ8…‡3’šŒGvfe¬û£¥o:9©I]ÇV°¿?ëÓt&\¢ê ‡ð`lFrìõÃÞ–ŠöDï¶—ëÚßýßîÊý×ÔcKwzÒÌOŽIÆÇ»?zúýé¦ßÍßlzgcTvôš" ï¥3gAǤ]mïÇ'þ”˜jüS|ªµ2>ÑõaÊ£n}5¥lzý¿g p$`GáfDÕóvv}¢ûƒØD×ûÉÉžžÞk-}4pð?{¯Öÿ!ë´ª’NùéåG­œ¥›uÿ¶ôÕ©_.}yú_—ïñ?Xzн«¯—ó,\ØôØYÐ9¿èp‚SÓ‚ƒ+S‚}ë)è<]oáÀq‡²é–BDÝS€wç¢ja6¤îÉøÁ¦ÂXg=—¿Íøû`ìø¤OÝ‘ IêÞ,èÕ…9eWnVÚ´<Ù³wù‘¼æMxàÒ›EƒéÍ‚¤‰pŸ+MžãlL†áïËúå Ù€¦;6*sa«‰ ŒdBC×2Áó$`‚$¬Ó¸Gr"摞L‡TTT'¥f J„;ˆ°} 4Ê©°Å°9o±¾Y´ôoÎ4…ƒ.…=^k™ + SÁákÔ쥇ùhߥ‚ɘ›×)HSØu¤_Õ–õë%Ÿ¾·¼”‡=\@rÉOƒ^zøÌ‘´WzzÃÑ{Xtq—ºmÃ!©Î† ²Üìàõü\ÿÕ¢e`sÉÜ—›W‹‰¨´‘ZÔiÈyƒ>Nºž‹\¸õæ©ý`2mÜp:ð°hßåBÔ6DÀ: P_gàtõ +ÏeÜŠ†Ä4olZx éOùeMiÐdxøóììùï’~‹né|Ü?ø}Ø>ø×y³=î |]ûË´{ø"â«i7ØG°ç¤[ÝBù%§ãÓ-ï?¿wê?ž?¨{çèîg£–ŽÀMÁ‡‹ßt”'&e'€?Ö¥šs±q]#à£s·›ÿ¸x³áßóaðtʼnà(¤× Fí¦Ý‚Ã)W÷þ¸£¹âé­“¿zv«íÏÉ)m;0È_Ý|˜˜–Ÿ‰;@çÀø.?îà.}ÓúžïÚ™½,¨ø_'Œ§~›3¶o<‘‹=îù ö¤ëƒøxïÁØxïµÇ]UiGou|ºç`Ò)®ÍõâØ´øèÊ“Î÷ׯÚ`.znLuï^~ <|¼s×ô'GÿÅ}áð/ß„•]›e'á.4%:´:.Ü›è=ìyö ­,ðUû/fÏ%¦aŸ;¤'c‚ý¯î7ýaéæé_{ÈÿèùΊ«½Ü·"Wšw½, º²7 z 6&€¶¤§2^uèì¤W)à²`ç;s`’~CïÆ”èh|R¸? º:̞ؓñ‰ŽS!“>·¤S‘þ!280œ‡õI†Tioï±à𥻠¿]y,­ÎGìÃé°¼3T´²f°ÿ­”°Š§÷XÒÝ{4ŸÎEíГThäẔö'ô›• °I«Ó¢Ã.IÍì•u'ÿô±{kÑl'@¿¢}°µ`¶¢ `/}0[~Îbƒ?k& ïMy_Íš,à$2:ô% fsÉhüþ¹edkÉÜO…­ 7ÿ@ÜÅ?”…ùÍ-«h £PÀ ’0Ç)w0eÊ-;ñ@¦lŒ»¥'sƒšŠšÍTÔbÉ-˜-аGD`G ¹9‹Z0Á¿YmTdø+2ÜﳎäçlÃy°}ð7L¿Ê¶L_Oú nZëú€ð躳3pey}Ú%ƒµl«º ø˜57;ð `;{øMÂmoB»„KÙœt(VÇ _ÓZiÆ?p>éVžÍÀ|"»‘p¶øìÎñÿòè?/?éxÕ¡jx>¡k˜ºzöß}WÎþ.åÐ6ǧ¤'b²šå‡²ƒOï +vÍ~Õúîò½Þ}›³&ëQÉáåQÙQàKâg÷›KWFÏþqu¼þÝØTgíq'5…ÖIº8+üYëŸH§M›þ¥<’S ·Nþkèzí?ùÎ×þ£wðÔ]ýFxGzÒíį_Þj)Ûô©Ú)·²‘€~¾¾ßòç·Ï¼óü»ºß€؃¾auTrˆpi;sA­ +¨;`^=h+}qïìïŸûÅó›õeßG$ ð‘ pøèöØ´¬&6)9ºò¸çýÕQþî´Kz*ëSžK¹a KªIŸY‘v©š^Þo- \;ö_^ßiç¬ÜëæF?mùszJݱ6éÓ39u]Y·E•÷Ú-”ß(‹9ÅÕq7phà¥ùA¾9o\uËÏ>…ß&§†úF(XØžÉnÂÅ?J=UôÑk™Pÿèn5ºöZGqw'pÑ *¢•$ƒÒ&X³’ïKlE-ö|PXJÞ<@ZXw¾y&n|ú?²ZráþóTxàr¾æº!î’žLxåõ+€3—žûc tI!ªîÍG jàÂ/­'²³dÄbMôRàFÆ\¤o„ ™TÙ º› +žë% §µD@ÕVXÔ©róZàÁzynÖ Im)ŸìºQ¬˜pŠ ©#óÆœ’«‚=q§äx +éd¿Qš¿:ÑóqÖ¯êÊÀóTÔÖŸ5™È°ªgsÉdÉÏ÷_Eö%7o?Ÿì—Ÿ7šÈYu²3›óˆ#Ùú²!«1 x–š…½5[Á>Ê3!e[|F~ +q£„_ݹêì=ÜÆcèS*:üenÉþ ÔËã.Ééµ)ñ±´ÏfÏú“Us|Æ +ìzvöêâ• ¯ò,ÒNYÝú”äÈ૵'½‡’“ªælH/‰û´/§¥ÕÁ/νóâ;þG¤_Ç_íÞ—žHŒÛWšž~§?ñò¾µ ö…„öÇÞo)I/]ºsöwñÉ 8`@Þô—¨J@Á>M‹Ž½xÜÉ[¾/:”uö›ãúÖØ¤âäòCáþõ'âcD‡È)Y-9­jxy§¥ÌwùèÿýâV{ì&bJt˜³ö˜ÿÑêÃNl´l[Ç®`º•ǽ{³^£pp¬ëFÒcÆ&zölŒ5¾—žn©È¹zPžî½Y°·…pTÀ>’£É)MéÕõR û +­ˆ +IÖ§ÎqâSª¶´ÇjZ}"= +öótbJÙFL)ëI‡ü$ :)5#9õz´íý§wÿH:õÒmVNƒ ã2ôNÀL]ï_æÍ–7s&ÀÆzÙªS\óôWÊe”P³CŸ> cÙÙ™´G'¢ rÎlµ)ÎΚ™È0èj³‘ð÷Ö&¥Iw뮤Op4’œÉƒÎ-̾˜ëÿ$„¿á…Èùo +sI~¡÷t!ª| «ƒ9”å"ö~ä³D¾IäËËÍ51ÐkSÒã¿´a ôu~V'%|Êæ¸Kt,œeÝ«ë~5vÔø*|é.¼’›U Ȱ¢…šU´eÑÃê"¬îZ’ôYŒdøò8A6b³NoLºd'Snu+é³V§»÷¬Muî&¥C×h¾Ð ož£@¯‘Aƒ8í¿ ßlŠƒÉ"?ZxäF.:üu¸Ð&à¿Üœ²;‹ìä‚ÙŠl\Úg”€QóQÀhQÛ@~ž™7ês³&]Æo’¥}z‘ÿÛ–Ê{Çÿ±¸º9wá>¸’ É›_?í{vOwju¼O— _~œœ•ñ›Õ)Ïå[1÷¾Xàâ·I·¶“¥dÄjÍÎÚúRN“ðØ „gÀžñZÁ>ÁŸì=)سüDrˆtDTP/]ìKŽªˆ™‘¡Ø¸]¼:nl}5ª®]µôâv gåaÏž¬Û,ì±7ë]°HÐØ¿—›Kžßm-[“£Ó·¼|";BøÔ›sFݬÃ‡rs:y*8$`³¤üŸLÆco&#CFe~V¯ØBX-b³f‚VCÌ-¨Yk©ÊzŒê\ðüTÀnÍ(ëã3€µƒ¥Z~a¡ÿzìc~Ö¤Ïx®ÞK_“Á¾¾LÈ¢Kf%`N¨ùO·¯mÞdNÀ8mÌhZ@çî%<ò³yÃ|dø‹Âì…Û¹Ù¾a„]ë긼&²õÅœzù«QmKÜ9|>æúäþªóÓјïʽtÈdXwJj_ŽöX™¶h–=ƒÃóTÀwmf2hTe@§AàOm+áXŸ¶«Ö&õç(¿UOÌZ°ë"2`RÂ7Ù†\›Œ)N%\}–—wUÕñ1X×06YŸUŸ‡±‚5§!'?»}ò7k£{S^ʧßôì"&ûµ°÷tTФ¦6sÆo5lL뺞Ýéâ¾zÐ]õê‘ôðÒ]e‰'rà<ÒÓ‰ Ááœùî4ÝY·ªeéVÝo¿¬ûwbFѳôõ™_¿¾}öO‰Ñîý9˜ó‚W'HÃw¾¸[ÏyöÕ¹?oLÈO/Ýl}oãžpoÎmPlx3 ö6h>®¨{ñ¨­lcBp¸¨òÕ#Iu.`½<k@Ÿä€Ï/G[+–î4ý>6¦8÷µ‘/Úÿüê+E515ra¾¡à³js³,íTŸ |Vóo¡+û~‘zÒs$åÒu>»Íç%& ÝIg¿%ƒx¬ÕŒOÓžòÈŸ4sV&…DzþákqÏÀPÌ¥þ‹_’ˆC6¬c"ó§ÝÚ®Ô´]œºr-å4‹I¿¶;ÖŠ²°° U¾y¦7|ÿL§%Bâ3° ŸÝ –lÀª/Dû. ]œ šuyбoì—¨°F”ðt@Ø–tÙTi‡EL¸l:´¶6ÁnõôšYŸ1ö¤VÓk‡^ùNöqÊѧɅMê\T+"|ªæ §ôd6ªæ4b2l1Á‘Ï×\ꖘϨ½kÏD€+!ÛÔô$½ÚvÀ–**¨f\åÚ¸¾“ôÙMÙ`ÿè(ÌÚ6 ú‚eø¿8é•Á· _Mz†Î'mwÜ¥i‹»ÔM+ãŠÚgwº¹ËÅ|7Û*jÿÃòmaÍfÄŠÖ²’‚ušòJN¿~r®Ìwu÷ÿ¹p£ömÂ!?»>%­}ùm—œÖó)A’œ‘žL^{ÒÁ]üºö7/n6•Dîvìù\þÑ?D¯vÚ +ÿ0¾Ž i„p´¸C~zcº½*íV§ýŠÖðúwò^Eë›§&+Qñ‘Ÿ”ð«Z—Ǻ?~ý¨{wÆ­­y%mÎ §õêk?íþlœðp¨[ ÜSt]¬ù•kðà¯Öð?í;ùé‰Ð+×g#çoÅêVdWNÙ©çO:>\×’ 3Ö§ ]ñ“8ã¿r/ù,åïI"ÛáÓ b“ÊSñISwÌÑo|v °¤Ë$Ûœí»´í»ôýSë0ìE&,®{ºv÷l̈́ϊªáw…èùï¨Ù w³‘‘›ÔìÀdK€W·'\í¥=¢Âi¦§­2Ò}0Ûàõ‚u˜lŸô[u$`+þ›ôdO˪çnÊ>ʹ†Ñ™ \ì(éÕ‰ +Û,šÌð“5·²ý9ØÒ˜Û¤^si»Öfdµ)¿N{ÔöɆöé&ô!íÑ _œ{ocöMhä ðì1àÒsTT\B#HdÙHßð«I“ðÙ#íØ##ÀM>¡¢}ç³Ñ¾áü‚µöˆ¥5›Ö&…§ï÷þ.=Ù?” ¶ +ö4¼˜‹~NÍŽÜDøíÍ¢R˜ (šç¿iå-|˯‰ù.Þzá4<›è“­¹û,ù¹¡ù¨És(š—Çze¼ò³ñIñÑ´OÑœÜKÖÊÁ˜“`×Scï:ðòåqå °á—7­¹E¾µ{cÚÔt™EiÀgq¯ªåéãnà“Æß¬=‘Ÿ+Ìõ]Œ»,’¸Ëª õxÏ´®ƒp0gGéÿ'rºß°îе¯LʪãNe=p–¦ÄŒº1åÔµ'&¾çËNî·²=÷ìëŽ#ȇžö!¾$;³:#8ðúqç®…/Ͼ{">žóåi¯A»¯:^˜°¬©[nu–àVNuéR6'&¤ÕŽk ¿µ6¾÷¿Lô¬,ÌÚ/oxäõI¯ª5ë3« !› ¶ïÙ˜h,Ù˜lç½¾]ÿWo 5'ï\™éÙ›v™5ìg­ï›Ð‘õek.QÍ‹{ݦ§¬F +tæê”è¬ÅúÔŒ]“œ¶+㣺¶ä˜¶51¥ow|ÝRª<õûÿ´ñØb ƒ—n¯9̲…[½Å`L¨puù8’°ÇžÝ‘|œœ6ö³!î4Kãn«:é6 +è,ÂXpõ£΃×:Êþ1=nnF®¦½šžlH'"P w¡“Sa“fþ;ÁÞou{ÿ/×ÅÓ¿+D/ÜI/ßKøÎóXW÷ oÎÙ†6Ÿ‘>UK|Zq2=£ï$”X,ùYƒ +ô„xé‘®îéCÕ‰\Äb…?3 ¼+;7ü55o&QŒØþ\ĤÏúëû/ÝZ™‘´¼œì9˜ A„¯»“Ë÷àÝ62"<‘tKNeš°…† ô?5kµ¦#}ç3‘‘/³³ƒ×‰šýë%Ã&û›E“•Mz-ºÍèÐ °É#Y°• ¶#åÓ.Twæ¢íÖ’Ù3 :k%f탱soÜm,OKkîµüyýðãÔ´ºÖ?Ü)é²iSÀg’`£ —Q°1)¯]y,9˜§fc\~< ¶ãÅýž÷ŸÓ]ŸÔœM8U Ê“‰i͹õ MýÒ]ñžØ¨òÔ÷!£æûyƒáh +0 ð(%å·›»ôŦ4­kÊÓ±)Å©õGÂÝ$`ÑĤª>ã2É·v[ÿúQ×ûs7ßyþEý¯×î¶—g&kûM*›ØQ“÷õÛòþ>krJ^—œB~gщ´³ýÃB@X»L:ûS3â£T@'LùM 'à6ÏàPÊe¡³Ùµqå©5ÐgÏ-™ûäô·&}p ŠuHû.~ \¼I |ù4°ÙVGåÇ_ß~ :ð8Ü?á¶i㾡 ©Àð5X¯_¥€!MáWœÛT˜UvþžÃk“§ŸqÉÎæÂýÒhl<Ã#dñtsNÓ[˜Uu®îC¯îùqQ5ÌŒðëø|_vnè‹ `µ àséˆÅói{æðw^Öåà÷iàâ1·YAÎZ`­•À‘¤…V˜¾¶: zÆ«¤‚Wž öËɰ^’ + ø«~°YWÈ€Ç`nÓ>³Š __óØÌ¯¦åµ…¹kyô7ß%${'®#}²–\dèÆšÛªYqØõDàÒÝløú¢u$Õ«²a½"ÔÖ]üÃوј]0÷½r÷+, ÞØ|~~”Zè¿F†ÊòÁ¾A°±Ÿå£öܬ}ù› F}6ªèNú…µ€KTT'£æM–ì¼m0éÖw^‹&åµha½ÉP áS¶½ïÙ·6%­I¡¸'—±÷õceM|RúÖ$؛ʹ!õèÄ–¾©þÅËoÏþ>pÇŒª!‰ô˜ÛªD<%íÓ c3¬ìÉ•훀#a=ôÇQ̤ìDÆeS/jÎ.OÈO¡ø³—÷þðú~SEzJѼ±õ¥ÒÚôŒôDҘߡëJŽzwíÞÑ_m<8÷ç ðx*¨î"½²zbFZG¸ÔéÉ‘¾ôTŸ*îŸ\¸Uýoë£m°7Ägò!µ0t¤[Õ”pé{am}‘›³PÙ9Â×½?íé9HzM¹ Y“›µ R°f“Z“}ûÆ#õ™ä˜±+1®k!ýâ:*"mJzT-)ŸMtŒ(>eêIÍô›sˆ’þøDûû$àI2¨ ó×´[Ó–tÈN’^£a1lIÚ/ªM}Ë$gR~ÙYM‡/ÜŠù‡¾‘ë ï'£d`ä3àT¢‚_ÛCù”­Éy= ë-쳑¡Á«Øzr–^OŸlΛ­›5Ÿ +ˆë2~Á±Í¨´ykVÖœñók6\Âã —YK…­ K‘¿êå¤WÞL¸¥g²­øBÃÊTû‡éÙšž¸$ëA³6 v€˜3’AþÑlPÞL†ÔÙ0èûÐà*jHûÕí„OqŽôKÏ$¢š×㼚$fm#™y’„g²³—Ljð§^À‰·[PsýWòsÃßäa­"_^6j±u÷æ‚¥ÆAs0°µ8xù36Œº­EÖ­jáž`7¬•“™ }p=¨§Ã:À@À7‚Vàýö‹ÔœÉš›×©Ó³ü3O§êÿTXú*¿8ø`¹ ›`«¶FîÖ®eÔP³fSõ%jD1é ¬)æ>6i7lÀGLfÀ[ª„GÑ€üÐyÀwù0èÐC Ÿ°úõxÇûi²õuÅ!¯Ÿ¿ÕSž˜0 ·`æüòsiwÛ‡ëãgþðìΑ߬=jý(=-iÈúuÂ¥;í`o%uTÀn?ëºCyfe²÷Ðúd×G —¤† +ÎZìk>qÝü½6á°€‰ÓCïÊã6nôFõ?½¸}æO§¬9ÔKÖž´U$§»÷åQŒ^Ȩ\½òµûue™iQ}ίÙ™µÇ­(Æë±iþÁµ)M׫;’š”æûqûŒK#È#ŽëSw%gèL2åÑòaž.ÆÜjÀÎÊÖ­9Eç›9yûVTÓ»5§•f#Òs OÏ‘„SR›ñ±q}[bÔØŸÕfûòa `½”Dqó&ó²CV»>nê!=—¾&|VýÚ“ÞÃëDÇ)¯A^Ôi¬a}¢m×êhK}&}VCÚmì%>á•6f‚²s™ ¢ukÞ Ùš·ôdz$½v+èJ°Ov;òioÂ_!b±çB0³ÀªvÀc…y½&¿4ô-¸Žü³…Y“éûE½öÍ‚FòfA-JºÚw¯Nžywu²¹ÆÿÔÚŒ°&æÐ ²¾ 7òá‘Ïs«9>£iÞ˜Ñw­L*V&:ö$ýãª×¦[n™ +]¸™|G=µŒ¤ÂíP™€N˜H–E<5¢—%=ò:¯æç,[KF+5¯èI…%õÙ9eOf^Òkp$¹6“‰^sg@÷Só}— +O‡ï¼y>ü°°dÉF "¬“f‹ûÁ˜EñÂQÛð_žö– JÎ’!E{.*.#>óìa×ëÓâê”OÕñ|J°?â懿¥æGn“sÖ2ªWeg:,lH%]……ϲ³V;ã¶ã‹ìœÑ¸2q¶œÞ \j0z˜ [-°/к´ÂÞÉÏu¹°EßÔ <ª‡ ª;ßÀ¼$ƒz1Z‡9h§0o²m-Ù¯d£&SÌÍ?´ú¤“˜ß@­&X§’Nñ)©d=} áO6CöàÍÏïvV¬OÈêQ|:ðÓž´¸¾ÓªOyÍÀ¦€ýÔ-ÀVüý+OćS3—>‹MÙ5ñ CÛÆ#Å©ä¨äá‚5¼`yŒ¿;>ÞýA>(jØ‚µrºS›‰ôö_Èú‡)Àk(.; {#ëÉG%çÝ8ôû{†ƒ¢œf}!b6’~­ í×t¯€^KL+H/ŒMØÚ‡|6‘ÛåÐ']Ò(¨ ÿxÌÁß—¢ÏÅ' ¯°šò«:ãIã׆÷õj÷Û©i½rkÑ<üý¢Ùö\³æÖu¯yäMsOºß_s鄱 ¬-‡ª)ëîȹ/Ý,Î'œâËO:¸¯î7¾»>Þ±+ã7É—ÇuçVÇ´õ`Œ­¹þë›QUO6z8¨jÏÔí)äï Úû~xÝ¡8 \þB>l1R[†ÌÀ£ÅÇc>ÁQÖÌæ¢J”_2š“°VRÁËù…á[…E£)é“5Au7ÐJó³*ù[ÒjSvÍ?jz÷é#}ÛŒûÆŒìHÂ58w^þ*é¹| ìÌà†Ï${6£k}6©¬%#n§%g-V"bHû/eÂýç³³CHÿ_ʆ%gÖ½‡Ó~½ª°8ø%1§'"¢Ó‰€èDÜ#<šŽöžÌÌ¢ø°‹O +φnåçû.æaÝn>¼•{j´å ï)àþ ä…ùʆUü¤«k/”Ã>Ñ+r!eg!¢•~¿ Óþ·%ƒikΠGk6á–œx=ÙY•ñ©ZÑ +ð -6ë‰ðÀ5j~ðKj~ø›ô;1(SA½ˆœµÚ`-’€IÍ”Gßϯ{ôü¸WÏýcÜ›BŠ+„ú† +‘¾‘BÔÚ·5êsm/Š Î‚ŽÏøÎ’›ø4¿hûhÒ ;$+D jäãNyôð½°0;p=?;r3ê?_ôe}òƒ¢ø¥ŒOÞFx¤ I‡èhÖÝgKy.~±1cSÅÜ6Íú”±;íÖ ó0æÙˆVó*»—îí¹/«ßò|Jùu¢µqÑáÕ Éqàb€­ub¤ sal1Ø÷«+N›vyÊÔEûBCäBÒÆäL÷Þµñ®æož|ûå—ÍÜ‚ÇfË…ÚuؤßjÊG†>/€N,‡?¥]ú™tËêÈÉ  삲Úþ$é»ôm.j±wî|ÔúüNG…ëÂé_{/}ô´é ÒßZAÊoÖ¬» ‚¤_'Xu+ήú4íË>uó« yí&Œí&ðQ* ågƒeaN¯@ëyLrøÕ¸ôð‘ ‡êL. ú-dë ߘvéz²þþat¶FFF¾¢æ?ÞhÛ®¥@ß<{$<ºðm{E!b"gµ¢­%­¢° ‘½AgÓ‹:‡&BF5pøó¹¨Õ8ò<èêûÔÂ…GY”36’IÏ®9%uI˜§TØjz=©¬ÏxÎ_Oû¯ÜO‡¯#œôÛŒiè1k¶d€g#vàYýý©à…[DäêT:ÉÎjDol²€ S¡þ ñàugfáüýT¤ÿÊ+§±wÕcàgÃê®ÍYé¹Íˆ¼ceB¸ 8Ñ_`_}Õ+ aUGÊ+oˆÞyý¸çãÕQþž\HÑV˜5ja¾„Yà+Dø±$‚&ulAùÆQܘņü¹`YÂcV>m)®3å7É2!ƒ¸YOÖ§j›zå_df¬Š¤CןQ¶Õ QÌ?Ô‰(°!ˆKÞTggšÂ¢Ù¶¹dÎΙÍ)àÆiŸ¶3\cÓoÑÂ\ g‚& ì¹3$è·|¸o8 úïùCÁK·ÚK^Ýo¯üÜLz-ê˜S'\SÔÆ§‡ûâS}š´[üRÕ¾àÙ㖲Ĵ¼.ç²¶fm}óß5–¯<‘7¥½vS.d5`nÍé5…9e÷_žª%I¯ªùÙ#UÍÚ”¾¿g½êÂ%~Þ{’p¶vÈê23Іàè|Ĩ"<ª&tÎD¡.“4¼@…¯ågíç7çtª¸[pÅhîéAë+°ƒ1*S>àÛ(?aJ~úÕÝž÷_?äL{O§<üCè2¾x;ùÅk­»õ`ü<ŒS&¨—¢óm˜ã6šÃú3aUò}®LÈëbзlPZŸô +ÄýÒ:”‘õ[õùÐÀÀµ#$Šqš³ å`>7— ×KâNuSðfgòÉÿ¸'5§Þ¢hÍF@wÀšÛZ2Yÿò\§ûþ©V ©¹°N¾¹h»”{j»\xj¿š[°_5Ò¿¹Ôwmë™ýznÑd#f ÊÕiÙ °Çƒdxðj"hVÅýýÙèÈ-ÐçÊ&'V¶÷ç€w¥ƒ}CÉðеTèÊãtøÒC2Úw% íÇìœF±ð¨ñO¯ž˜{7œ_âOݱPßÀU—¡½¡üè\Àeù¨Ù„òWˆ°}0æûÜM„‡o€AÀ> #.Ÿ*Z6ÝûcŽžÃi¯âÜ›ykß_—ì—ÞDM0E&dþ}ìѵ|X/+D”ídH~Ž@ü8jÐåæì—bUG,˜gáüØŸ°7-„ ó [¨ˆZ›”Õ¬?‘ŠO)ëR€yQü~Æ-=ŸèÝ¿1.9œqé:ÖË­Üïýhí¡hÏfĤ «ËÂÞÆO:• I—²ÖL÷Ö¼Q‡üF ¯A÷Qž“Œr[ä”Ç "½Ú.ôÜ:´wÈëRMÇê´âÔóGŠ£/î˯Žõȸŵ±iiíÆŒìôò˜ôÈú¸µwñvï¾g÷:y ’ ËcyÃfÀbØôÙLÙ€ºÛyíØ/^=”ž»,ªÄŒY¸°Ûþ²`¿øfA{EÕƒâæ`[W 8ÌÚŒKvj+¢•üwЧ¿ &­ýÒ ©:2y=á’œÙNMiÎ僿͆.¦»ê씜J»Å'© øÖ¦½êv2h5S` ЙhÚ)mÝ8öËÐG‘pµ¾ü÷0…x¸Ï¬&¼}¶ ð…´Ï(ËEÌÀ`ý€Õ…°ÿ[¨ ¤.ëW·7Š3U»DÐf® 6YÖ÷tí]éÞ“ ª»r`³ÐYØšŽLPÓ<òÒ»›Ï f4Îq°9¯K¬>íýïK¶ 9:&̤ÌF†¿¤ì—©9•psQÚòþrñÉœ_V_]Ð)·–ÌöÍ¥/}_äA§ç€× ?NDÙ‘¾”®6àÔšk` 3Û6G%¼f.,Ö›uTDÙ (;b.us" ¶6øY0¾6MF?M‚œ kø™°¼9íçO{ͺ¤ï“ÑxðÒí×€cHØ[¹…Á¯¨yë@Ò«lÍ„õ2jT£¸œlhø3Âk·æ®æ"WSn›!ÒËá]ÝY¿¼ƒ +€MZ˜Uò7#z9࣑ͥ‹ãùà +Oû®oÎtðo„_~6å“Õ‘Ayá—5Î:»:ce‚×ò SÃÈ讈V” ËÏ­ >~~«³äÕ½žªwE?»Éç&&ä5‰ ñá8üÛú¨ðã—w:K_Üjþý³¯~CyD'(¯¢)ãV7g?$g$ÇS3²·ò,åÕt$&Ôõñi?屨2>«&åе%&•§×FQÞ‡´&1%«‰Mˆ®õîYì^WŸzñPzèÕCþ®¤Cx0îè=”€upJO¬Œ ÷z??ñ‹ðWõ¿yý~ï4‹R.ÊGNUSÜÁß»>Ѿ+ã•ÔmLËjמ(ªón³ô pÑ<èçŒ ø„[ÙØxÌÿ06ÆÿˆôÈê¶¢Zà§zm!jÔ¦]ÚŽqYuzFQ· Ø>ëQ4¬Îu‚L@Z¿îèø 9#>žu«Î¡½ó%¯Ç”µ —ø8ç‘Ôn…µ‚œOÝJz”€%{T(ù¥ó fSïyuÈßpš‚oý0Š»Éz­À†—ân°£A ?«î-Àü¿‰ª—¤vm¼ç㸇°Õˆ è¼ ú™‹ô_ `ä£ý—rs&C*ˆ8‹¢yæg ÅІkÀ¸Pd‡Ì}ù“… Ë[²AÉ2 kLû²€ý3€!’A³Žˆ }¶ärnN+ÊÏiÄß/ê5q²i°ô²CÛúì±ìHÊ3t!åï\™PÖ?¿ÛS™ ëÄàgÄ»âÓâšUिAwèÚ_mOl\tp nñ‰œ[ÕŒbLssýWɹþ+È/Y˜ü:cžõz AŸ‘ü8úê·6¶}ﴻݻ¶«´¥B[ªÐ¥PŠ»»[ wOˆww'â!Á=8 !‚WöÞçœ{ïû‡¼“óÃ<íCéÌšµ¾›™µ–IRôuo¬äëî(ÜǦ@EÚß/Ÿ/óè¿Öø¥ÿ‡bŸ;oÿÞi“aÃV[Š?ì÷¢}l2B¬aés,ÃD+è™blØN¡ËzsæSCøÃ±iŸ³n›æ¶¾' +\ìYrÎP×§ZŽY‚´ÏW´MR“ŒÃ¸Àc5-Ë$ÁGíõ!¿Ø¤„(û³Ù# þÃ%ž]w›=%n#Èoçj|Â÷Y|Šq²Äw_\âs¬!$œê°ñçÓ„«Œc'E¯v@Þ[%Äø_Ó¬¢Ó„Ô "äT ûv$-úz*GýœÆ'×’3ÍR\äNÂóLÅ„G îÆ¡ÜwgJtÔÏiJî™u>…;S’Íøˆ u)ìBS +û9]Š8U²À§*äp‚\åo…z˜ÆaÞÇTäÉ 6ñ|Îþ슒ð9â×1Ó>'æßö¹8‹<šý}йŽVøÏþcŽYòÏ +a×k»FO’Î4Ädàž’N6|Ÿc#ÎueÔóY!Ûª¦ežÏ0K¾Ï0 '*\¬ÕþìAKHÚ#|㘠+KN¦ÈiÇJRâ/ü¿ËLÔ€ãkÇá>æqtๆš÷¯µ2Ñ¿€ ù×>E+8WS.Ô„Ë&è`à>)ñTEI?Q°!GòRè÷ivɹ–Yhž$DN O5ØØ¿WÈó)Jæ÷&ì/À~êéb™C=<Áñ,u1Ï%Út$@ë ÉÇZl¢}ƒs`Üíßœÿ˜§äÿÏ:ù¯% +hÑþ.ìû%ïH‡MØ—!‚Og¨ÈÿÝ4ü{Eü±HÊÿkù±FƒŸÎ‘³-@ßìâƒ7;1Þ;½„ÀÝ>jäl%ÄÙ0Rüí€ïÿ²ÌÀŸçZdÄ÷\’EANÒ‘Â6G1A§JJP‹„ù×"ó›\î¿–ëOÑsíÞèdšO8Ÿ)œh…ìAzܱš‡5IK ¥”d Ç[dp?‹æ}¤xÛTðûÏ͓삿—Ë«? øïBÀk$ü¶Ó…ò´ãB†Þ»}pÃQB„qˆgg¥)«M°·kõgÓ.Ø$&EïŒRâtÕ9OŸðs-=×"ÇG82 Ã}FÐÖqR”ELŒ0K ±+…ns5à—G×ÿš¡æÙq¶?ÿbÇÇV7Üm·êr®* >Ÿ* +¶)±ñf9nSòàÀXÙøè½!”Ïþ Æ×4Š ü©¥åý=Ë*±ÚçÒËH‰Çrr2€çð#Iɷð«q°àã> ‡ââ/û¸¸™º”Gûý`ÏÍ1Q§j\‚Áþ;#yÌbˆð;_O®>S³ Ì”¢NÈ:S—a”e˜C9#{½³èãJsófO‘«¾úá`á÷÷½è ‡8ùhŠUhÅ…¬5½Y©¿Ð +2ÇIñ7Ö›r^œÚa $œkqÉÿo‡Tôk“p xö½q¤ï|[ös}GÞ[³ág•b#ís»~­p©'sl¸MNϰõq$§¤Ú×ÙêƒYo/vÙîExî “c.¦y¤Ÿ³ä¼#2ìL‡MúµHʽ°s;‚ø¶ÛƒüjÅÅÛ¤è°s-pö±’šÔ~¨UŒò7!¾î”x¬6¼™¯Ê³×G‹ÚíeÅnvà¾îtb¾îva¾nµ!< ý„ Í„‡ih#FY€\q¦ôEJK³LPÇð¡{ÅŸ×{rßÉ…q÷äÜ”{«mP÷ýxÀ€I@bö†p{ƒX¿ÍÎüׯþŒW«Í1÷ +m +N‰aœ™uªá”Ø”ôœýa\ˆÝú ÝO'‘¡gRTøf{æËýa¤ÿþ!Ò›¡äŸhܦã`.€ßßê»®µä¾\o*x§oƒ¾×·ÁÞïö ¼Í@ŸYÆ ÑgJZÆÑ%Á4Œñ3 £|×Ûó^zû~¥üÒ8„ ù9ϧkÙE‡öù΀/;V¡Ãb˜çvo±÷Fg¡ËB}ú3 #ìÚr]Žóá>t»»Ðe°èóRCÎËi^êÃi^ƃÕz蛽~LÀZ'>PÎ…›­Ž²Ñ™î|¤@ÅüµÈ¥ŸjXPÓ6Ò¾®…¾¹ðí^_Ég£]#û^V\С§R‚¨MÓÚÏÐ_â©oËs6z¢¥<2Žá",*¤(-°Î–bìÙòT‡‰Ýü¤¦,íÞŒ0Ïq¾*ë©®,áÁRøu'&Ú¨OÏÀ§ŽaÃ*sŸORn acnôcbnŒ2S®wáw‡aËM…oŽdÄ8ë$.âDf_û¥ä‹º,ê®®<åÉb]îK)'ÆàäÌs-{8FI°J(‰»}Åî‹ 9OÕ¼Ô»nú=myΓxÄRV†óv/:äXÆÊ;œ Åo÷Â>n·œ+ðÙýBßUà +ÜÏãS bœÒ—»ðAûbjÊ©®²Ò(¦¥Ï׿¼š$Eþ>NŒ¹ÕZ|ò´Ù“v Îù¢æ†\_kIw:›BFž¨à€ï)ô>‘#C~èi¿f8Ø#95õLÇ#븤õv¢¯¾ á®oÍ{µÜå´Ó]èq¦ §jkó>g{=ümµ!+ðל€·Þ ••Å>ÚÉyw0œýVßœä°Ó•óö\CÉlÃ>¶Ža²~~Ó8Ž Ùî-ü¸PŸì8_ÿpª,îÞtEÖóDàÚÜ/׌¨ðµ®‚wrNü­ Z =ù¦†Ÿu_BŽº5‚¾9)H¸‡ +wº¬å§yX€š^iÇzÍ×f>Ÿ©HuЊR(؉w&ÉÑ×Tü¬ç=Ä$§NhèmÃ5NÊÉ{XŽË5éŽÆ¨›šÿ` ëwuQ}W߉ ­ÀnwPcŽd¥¿ùú`Ÿ¶ZÀΛͅïæ+³ŸÎŠ2õ-˜orìÍre‘}wzQ^æjüV7Æ[ßÿ¢ï„yËyA·—›Ò^™G9y†~ZüZ+ÒÍ8L6ŽB#¨o{ƒÅ»ýÐOúöì73Õ ŽÓ)×Ú(«íD¿½ABðVÜc¥â¼Ú y;[“÷B)Èuê@E]"ÇÞÝD‡FIQKu`§)Q¦ƒ”|W#J}2W“öt¥1í司›Xã8Bp<’sàÓ—€sÍV¥9,Ôe?øàå$+êö0=ä./óóRN¢ów5{¿ê±ÛèÞ@¡ÇFG®+ µ.{}1ϧ+Bîï#¢m:*Ä*'%´ÔwÙéD{­6}Øì€{ùÒCW•õÈ–~v´Õ]øeˆ±ÜRòq¦ +ü|© ún³Ÿq adØ}Ö”(ñÞîÂg¹æ²Üxê1lèb#øÓ\UþËÍÖ"×3»ft{«x¹of«¡w( U…Λ]xß…Ô'/Ûa±¶àåzêó”0ÿ55þÓÕ…zÀ÷ã"$¬Ä‡bRÄõ)NÂÝÅêœç«­³¤Äï|›¦©K~Û‰õ½:[_øÑ(® ¯wS¢T¢ü7c¤Ä'c„$%3øçî@aÀîHÞ§Ãqtô÷ÙŠªV¸¼Ýž¬·JvÐ 5/ü¶¾%í©¾!Ýq½üJß ÷PWå{ÈÇÊ2üw])òD‰‹6 À¾îwîµç¾¼$tµ)dº,6z\L“²/òy»-Ûi·3ÿýbUö»•ÆÂ/J>õ\'bX¤ì<ã8²7ŒÞ€¹­µæ¿^¨Î~>[‘è°P™ôðDMÉÙ„}^m)q_®'LWÀ]–êa¯×šŠ?¬µb½†ùN9ßž]’2½ŽeÜâÕNôW/ðwÏÿw9'üº„uSßû ¨¿†Æ}ºŽðqºl§¥ËJSïNïªØÑ7fEIw¤ôˆ[”Ð;Û=…ž|˜ÿ-Tðû«s¢˜æÌC Üw«ò~±6穌™|»vUS–ñx˜“é˜øþ·)^ö‡½!L¸º<óÅLEö»¹ŠŒçýøÐë@w]é,~i£;Íy€—ú®ûÌ8ŠÞ"ÚRì `Ãmµ%ç…šw{óíJ'Ìí²šíØJˆÜIH~`)~³õu³£äÓþ êën?Ò{© æÒñû£îsðÚ®úø@gCLbJÚÞ >ì`l¦öC‹Kø9K\ëÊx§(M|v0ƇFØ™›Ýÿ¥fè‡õ6èǽ^¤Ïv7ÚG&L}ILpùcˆÿÖ:NIÒ ÂoÍVÄ8,Öe¾œ GÞ+ dìMpÛëNÿv(Å'­€]¬Rr†È+@ž\j„½%'ÞÄGÿ¡`%ݵŽ!|­ +l”¤"þ %éõµ~ZÚ|Ê[Y–öPUûÀÐWümùmµ¥àõjøõfWñç•6˜×j[ñ·¥d–ð +ö0~+-9/õm9Σ´Ø;U¹^W¤ÜÄgÍÄØ'-˜XÇ=€gL3_Sør®:ëù$3þn]AÀŒÏK3 . „ø7¸èÏ·óØ"&$Ë(i§@n9”@}Vۢ̔ßÒ +"î­÷kÀ&¿àD>ÔÔább.t`*ø´ß›ûn­-ýƒ˜â}Cß–ùñDMot•ø®Õç¾Þí‡ElöE ¡‚v:ÁoöP> Ðwìä/Wë ß(8@[2/·Xüd¥6ãù~?ÌãD‰ÞŸ@•ûÝÁ'º^]é……½\›ÿr½>Çiµ>ÕQJ¹c™ Æ+¸ÈÃIVþ‘’‡YjÆ'˜FYÛ}Ü´¥¦Â×S•™Ï¥¼œWò2˜ó %åíf;6ûB]ÅÛè¥FÏ6¤=kHr\nÎtÒ7Cßïvü¦ª!oª ×;`¡€Wa‚g«ó_,Tf?_k¿Ñòãÿ\®Ê|ºÓ ý´3€ü** ¾ÉLòþs©™øÏ¼€m+þºÙUôq» ø³bW'õá|5ĹŸ™ö(ò“ã¥QjÜû|l?5öN Ôû· |èÃøðk­E¾Œ“ýnÆŠ}9EþJsÜoš%øŒ„×JKö³ùú,ÇÅÆÜÓ•YN +Vüý)nÒÓ½^TPeqØfd ¿Ô”ùZðk@·7Ï¥o/x;]•ö¸ýõ†œà°Ñç1ȈxjÂ¥ý½X^c““Ó €6™ÇÿD†[}E_¶zŠÔVgÞèA„vÑ“ßt‘^î’bTÂ' #ùŽŒxw’™üh„’úr”•é¶Ø )Šý|3àÕP<ìñiÂf_ðsúΜWkÍ‰Ž«I/·:Œ!§dP³}o¦û¾º<.È2P²N÷x®"ÀQÌ=e©ÿ­IÚ×;{ý`‹7D~¬«Èvý5Ï%þœgcÍãøè…êtÇå†\g97ñ!5êÍåŽâÇ‹Mð`UyÞ§“)&Æ2މ?8Á::#‚gê2_µ¢ƒouàöG±ñŠro`ŸG)iÇJ\ºYZ¶Ý_øi±1Íi¡1ó¥UÁ„.  ƒ–»Š½-“ÌÓ(%y·§ð“qüÑ,†~9²írO±ÿ˜G´Éë„;ƒ¼¬ÅŒû$'ñq}¡"ïÅÑ9ö¯¹2Æ÷ér®I,€íòa½øÀÕö<畆ô'Z~ö£ züÍxð}Ìk”œ¬«*|µÙAÚé¦Eö |®ŒCoÍVf=«Ë|Ž£¾é{<É…ŸOqQ{ýp/Ë8=Û4ÎÌ]k¹ÌWd?Qq3I™é$ôÌ—ÍØHȨd©…4W ýÁ,ùít¥¼^(÷¿±Ñ‘õG<|ÞL]áëÝrÔBø¥š›|WÆŠ¼ÝMøz§›ä÷`¦6Ùi¥9Ïy­Ÿ˜T z0ÆLó8UðÈÇZ*À±i 2bo Ým§;×u±6åÑfGáç½aNF*ö¡²¦ÀǪ ¤ˆQ y7»rÜ÷‡Š|¶{ó>Îצ>_ì,òfÆ?œ­Òwcvñá@¶°ÉYÐÍL¨²2ßu‚›éà0ߦdä™eŒ›ŠS² Œåv7ÄÅ8\â ðÓÛå¶B·ùöÂÏÓía[c¸L1'áõlyúó½n跃ᒛ ¦!ÃεÄôƒ‰bß1FØ­ÍÎ’3 «È< ßDxkÊ“ïO Ò4‚´GR^ô˽!h¸º&ÏW˜ïwsc˜ 7ŽÂC–ÿ»Ý^èª&<Fþ>LŒz0×ûÑ`—›í½—à‰G?™&æï f¸FÉ ‡cœÂSyáTÅC÷Çp1V%i&Ä™K¼V²ç«Òž\ç÷sŽƒ9V3òöÆ)±Ëd¿uèH% šÄ¸›}®íÄódª0È*/ö3¼x>#b€Ü»ÒÁ[i$ú­·b¼—êòßÚŸ¹ì÷#|–š Þ¯wýôƒÔim¡Û!áÖrM‘ÛÁ)Ê4JŒØFn@¼÷‡Á@æ¼]©Ïp<$%Ä<( ãï4‚ôS‚ÌÓ‚ŒÇ¦^tèñ ¼Þ ›«‡}1–á´MX߸ßÕŽ¯ß§E Oö†¾GJfþ± +84ì³ —x1ËÂ~_©¨³N—sö&h)«í¨oúV”×NÚKß ÿdaå†èé2nÂýå¦ì·cä8 ÝŸ¦„q”œ”GºÊçõ.R8PSÙ§ª2ÊEçt–C:žª¯?Ÿ./[ë)ù¦.Oj(õá´0âövK µpO³¤ ·Ù ›mÌ|¾=þdOÔËWÓ0-Ñ"æäÉËrÞJYÉŽÆÙø#±9TøÑ df P{æ\؉p$#µ‹ß´¯ë„ö?Ñ”¢t5©/Ça,·d¾ÕTç¹OpSœ×Úò?©˜% @P¯(z /‡¥^¨DÌͶ‚·ËõÉÕü°;,ÿ{Û}y&¡G“”ôAB”pOQ›aÓ0 +gòßÑ"Ëño–Z²Þ­´¦½¶H0‘síob~üs³‚ øÕ§Ÿè{SÎ ~°Þÿa{´Øg{¨Øûpa%%ãò~³—š~ª­'Y«mE]ÅžR~â³1jÄ *ìh^À™é%æE¹Ü[ê-Ž<Õ1ŠÌbÜþ6h´di/âñ5øá1ÍuÐàAbô#Ã6Æ"LÒr¢IÊœLÓ‹Îæ©ð£JŽYG[uìÂùÿу ¸µÙEM›¬Åù4"¢njD`¯3ýc޾ÐRò,RlìzØe­;õ•½­?æ™%“¤D‹”·MUrvF©ÓÙÏÇ©‘·$ìø“¥Ñ:1^WÅ쇹öÏvJÔC 'îé^?6Î4JNúv®á Ž• èîÄë@‰Š=Ò +éGªrÆÞ;Wßr´ßnØíBŽ‹;’àc¶{>{ƒÈPÃ!Ê2ÉÇ© ÚÚÄÇ Í%ž15Á &Ç«¸ðÓia©YUZ²=Ž´ÌÖ´Ygš‡­ÊRøNoÉçùÆìºêÌçK-…î- ÐÉ\uUê /ÞÁ*£ÂLãŒì>ø·Å†t§•–¼Û#ä˜ÝQf–y²œded­´”|ÙÄ%8K³Ê‰Éöw ÝàOSU)¯¤e1÷lÄÑkR0 Ë=«J@¶(y(ƒ­ïÙí+tß(ð8c¢m³ Ø`òö‡Ð!6 6ñXŽŽÚé/øªÆ;ŽÒCnKX€?¨Íxy¦æbϦ+…fU9Ý¢¨fµŠ<”P·»àîó y®Ó-°oëCʵ^|į•2¡IBHÝì@|^iA~ÚÁG˜•„”C9>Å(Å%Ns]Ü /~ž÷=Ãv6ßAß]òy­3ÿíÖ@Öë厔óM)~- *Ï„ÕK@>²¨‰içs•5ÇZݦä#l2Ô8ÂHÞ E­ö’CZ ‰O§Ø¨/ÖÁŠ¡_·ÞBü¶ÙFôßë&GŒPS¬*>âPÇÅ-™ð§ßNdœó8l™dÃŽÕ<ŒYÁÊ7ËÉ©û#„Ã0%jo”“ÑŠ‹ûS[}¿ÕNô3õSãÍìã(¯PßC­‚½Ýì"F&Ëñ«ƒÔ¸©êÂWªJˆûZ>Æ2ÎAÿÔ‰JDZQ;=ž«m™¯V;¡î6¹·Û X¨Kw£Å=‘²2^ª`ï•&4™ª£\ÄûzHô•&bÞ?‹•uö÷E‡cPÏÝ!¨ÇÖ02Â$!¦~ŸfŸªIé‹Í鯷ºXÉFY­¢æ;<þ¨Ÿõ`œ÷HZšö~©>ÛJâF<¨)¹ûk¦œk“./ +0ˆa>ë=÷})*Ö¢¥#-Z.Æ$ã@&¹`{+xpÀ ûXF¡ßL#/+M‰Žsµ1O¬ÄŒSuUéj73ð€ß¶úi™Ç* ×\„QBŠ7Ê qF%1Á:ÃBX–j» Ú†ƒ¢ ½?NKÛìGì a£­ +Ô¾òþ&d{þm§q¢0æëŠ?.×8ë› ž{}Äœ3mÓª.E¬ô¢£Õ•é/Œ¬³ÙÊÊóùrÑ¿; ÿºÔvÓÔ¤¼]lÏö;™¢Ã~ÿf’Òòf›Áo/f«jwM]ïDûhEÙÏ }%þ¦1l摚K>ž.£Z¥…Þ Žålèn/ÔS#ˆ»#-¹'åÅ>›kHs5KKâìk¼Ùë~oŒ–a‘×r^'©úö’ãäÈjA̽Þ|ã)Æþ-¾EÂ)22’öú˜i€7Ù‚Í·e{εgºmMbc6Ç)µ~LÁ¹®¢él©¦ýÀ޵ˆ½¯`€ç¸Ì«Âª³_?JŒå?×A2NÖÊ[÷>Ùî¸^ŒŠß— b “øìC9¹àûŸkÕ1søxÃ1ñHU[f’VÓ÷FùyË­8À*:ÉhÈg:.ÉEÇ%œ ¢]ºáù:¡ùwƱ°Çú*VÄ~7;q¥ õuc°ÚÿbЀq®æÊ+(;ba‘~€•°ÖEXm¡~Ûì`Gè[Jç+ÉŸ…¹¡—ûÑY÷g„d7CwY¦¡›“¼PO P°PÎkB¢›M\CÞ ‹U ˜/ ­¤P‹ª®~k¸¼øS•8ßvž-O~°Ó^àjcg­w–¥Í”“ÜÖë~«µìà½Ö²4ë@%|¯]”» ªˆ’â)ϧéxc›0ÿ`ˆ—¿7ˆö5ÑÓmrÕªi¶ªªJ-r&x©¹ð£JúDß.ÈØh"è»*rÖ›˜Á;]àõAÊz;l·“—¸´u„ŠzÙ,z¼( Fš‡EÅ[}Èo›}PO«†y2Ídœ-Õ œ.ÕõZuÚlsûb+ÌÈ IV¾Ü‚t[©/xµÛ s;@[F‰™Ç6Ø4(Ï×°ý6ZD©¶‘ªm¤ +·ßÃNÒ•ç8~0õl‘Ï;^ªíÛ›R6eì¼3ó@É->š*#O È69·dg²ÝQüÉ6NŽ;WñPÆ ~Q "õF*ãÞb%5ât´­îT*¢ìô•|ÕwB¼Æqà󅚎³…š–Ó¹ +‘YÁ.:TÐóNg„Â#‡t>Ç!L‡ì ú®¶ƒ]6ú`[„¸:X¬C<ý™N@ü´ßWZx*«™GË1›-¤`C7-úH\MØèâMWº†±c„X›’ 9žb)ñÊòÐ'œ»ú¤ÿ±¦¶ÂŽ‘] -·¢=6:© »€ÇÛƇn Ãô”H úAþ_¨'…Í7a=[Á endstream endobj 29 0 obj <>stream +æ3?,wäy-ó+n4(~­× îKˆYK}ˆ m9ïh±Yr¶ZÝy¶Â&m‰‘‘šúì×óí9¯MrlìÅR™ð|©²á@Ê/Ùé§&þ5ÛÐýsº±çÇlmóádIôbkô땞ôwjlìÙR)i£²ÖËMQTÓ¾öЊ´òÿå'ýþ­8À÷Rº»'Èïõ+Ðˇ‚î\»zöçï ¯N.‘¼¯Ë¸ùÏvð1-óX?Wy,ƒšž£éÄ‘5Q>Kkð&¨—Ã¥x§|ñýrHæ ,pNZlè%^|Ì¥šÌ´ßy©1×豿‘Ó‹øâ Šqys¹ žõ¼•ôD)Bºm÷³’Œ¥0}79BßE +Úäe,vñeåT·*úUñ°½ÎNN¹‚ »\èã}‰~EvýíJÖ—Ï—Âß½¼r…¼} +û¹^ê@f>\ï(M2ŠEH“¬š½=)DÍ÷P‚f,/¶UgOU—…Œ²p/zp{øâG£‚ëù¢Sø¸šyæsÙõé#ÐË{w@ao^\f¥„ßf¼ÒÖ£ƒÝ /1 ¶yÚ ¤Cæ:žÊš¼;bZѱ®R°>ÌΘà–<‘q/§„è:!ÆGÍCy4Çßf§†^ÁF\ùøî2&Ì÷:%Æï)üÛïKuظ#o™b㬳eìm))~G‚ ߣüß¹?Á…,´Ðt5t©á5ÎA¸ô3Dy`!_®BCý/û:?½s¸ +~óü2#!Ô¡ƒôFÌÏ Ð÷¢sŽ4,¸uЇ;ð¼'f¦ïŠ)ñV {:˧˜5ôœ¥Î"7µ°àùL5Îkº’ø­"/éØçË%˜ŸÏ%JLÔULÄ·«¤„ ëô¤ˆk@»¯„8?½”æùé&6ävunܵj¢E# ˜§Ê™;b^þF?&h©ì³9ŠŠœmC{.÷ÒÂfÛñ_¥å%έ¨¬[DÂG Vî +s“¯1RcoD¹½ûÍñæ ÇÀápëÈùÁPž¿Ûïã‚ÂàKÂÆ¿78"ë>sµ?ËS×ÿñ|™E?š/¯0¨.£&˜Äø#-z¨â"wÅìü!D^ƒ +/J|QšõgenüM\´ÿ<¸ +xñþö-Ðï÷@/îܹyŠùüéR¤›Ëo”¤àû¸”gãÜ‚«´øÙ.’¿ª†è®©e~Õ4rºJáN$ôãj<é!6/ïz ‡(Àå#ÈçÍ;Ы à>]ÎüðÈôìþ}П¿_=»uäÿòšp³ žû~¶¢ïcÄéû9Ió}¢\q5Ó§›…~VQ’}½^x«ƒø“™q5ÜÃôÆñ Ȩ3LJ ç· ·ŸžÜ¹rÆë™ƒ#ÀŽ H÷ fVìU¹õÆ (-0¨XàµAlàrGá'£œ–®ŸàåOõ–ÆÔ–zWã Ž… 1¿¹»€¾:;âÝÜAŸ>úø:èöᅢÞ8<=øó.èýãg hOŸË1Ÿ¯T€­´ÂM2Fîö(1rs²ÜŽÿ6ßFõäà^u³ /Êá;àð°KÉß¾‚<=AÑî Ïž‚þ¼rôäÆ  ?ƒ¾8»€îÿyà‹; p—w—²‚½ïŒr³Ý,JVñɼ ôxIÀ=šã‘,ÚRøÖ8%^QWòF^Oú\.z ¾’öÅ”äö À²#è€å\pøè÷G 7ÿ=Úýá‰èÅÃ' —g/AyÁ!¿“£¦ê(¾ëýüôý‰fÑ¡ª¦j¥‡½Ð͟ыž ’¯„|zúôÔäõÒô èß×o¸¸ z`ñÎõÿ=ÿg` Ýž¿¹šcãLÓBú–¬‚º§©­Y—ˆ°#ìk!,÷:>ú·X·—b>y}ã rszºyõwÐÓ[×}zÿü)Èˤ/ß.ѳÒïV¡2Þ-v"uYϦ‡¸)£54·±*¶×X(¬‡ÊuiÇÓžvR¸ïªP¬—Ø”’ÛЈܛØdØ=z.üÞ@i}¬¬¦±ÐÓAßo,Ý•UÍ@æ3ÏÔT§j+×xå?y¼0XÍpïæ°=ªPèg5HüÓFß…™KzV[t“{‹”žy‡˜”p‡•’ò¬‹ñÔÔ•¦ëÉñë=%ÛC„pƒº‚½«¬béÇkÈK£4Ý`²|·•÷\\[×QUÁCÓÞsK 9×!a™W}\Ý@ïßjù1ÈéþP¢gàUZ*øi†è¥k¥/w1£w'xY9~²»8È—£S”AânLðñ'DlïvǵšÊrf@q’ã¯x¿ýzpç³»¿9»‚ܽ/‡{\N K½ I̿ƃ½æ¡Ý—Û©ÁfuÃ0ɃX<Ì©VT}6WYk›®íkjøÚáÚ¢ÁúÆx™èT˜™y#ØËë·0WOPø—PëKWн›wA1_‚¯¢³áŽŒ‚K—ýu\À\í«eå uÛã|ˆý0HËFibs¬¾0TOPwãG«éžõLì ´Ø!/*éjJ`Ôå@_ã/€Ú}º{ý6轓(5$þ7\ +̱ƒV·6\]jT–"ŒrFöѬwºÒ0~¶ZÕv²\Ù´­æ¢µ”HU_il7—öº™D~U:P³²ïá22¤Þ õöûÃçýGP¤—(Ö/èrB`äÕ𯾗 ii×YÈ¢gÒzZˆ~° u ©aÈ*(9¯h{¬4{ºã>ßÃŒ[Ÿ¬¡ÊÛËkˆ0G\ZÌõx_¯kYá! 3n§…\÷xýôåë•ìø\‡Ä¸Ä;™q Wà¢{B4öm7ä¥iÀ|• ²-w•ž/•ן­ð…€?Ì5i„dƒ®¦rCYÍ’µ±ƒk(è‡øœì?"?{] +wóå†Fò£®Dûú]õxý”èu››r½šwä3ÂÊÑ{²2Ì‘–‹3ÏòD»ªææÀÀlMÖ3×ÇëH˽¬¨é’רõ¾‹s^koEm vò¶GšèÒ桲Šc‹ð{>̤‹År­)ÜmÁ`^J+*Ó6†ÉfecµMÙXoSÕ¦øÄãY>édFıMUp×Ù©‹ÔÈa^ÁÎx%je°²PÕQ“ªìjÊW´7gNÔ·ÄÈêê¢&Ëù¾ƒ ¢³º¹.CÒTŸÜ+à{öUUFHJ6Õ £R€5*¸°Ý Vúzê‹QLNÿk¥^|<ͧ­âÂ×%¤Dí0/u ë7ÜT9ÒÚš-nkÉ®§âŸµsëýú+;bº¹ÂÏšNÈÊ@]‘~X˜w '¥jYÅÖùŠJólmÓáLC‡i¦©ïx¡¶ã;Of˜°})-E?AŠ’· >ÉÛaƒ¥1¸¬´[8üiwUc|« Ìw°¦Ü¿µ¬ìccY•Çd37hMÜ"2NõªŽ—êûlóUuÇ+â“Õº!Û|e½ýÝÄá4µ«bå­ŽÒbu€þÉ[Ê"UMüÐ…jè’¸»zf°¦XÓM›ä¤L6³úÜ-Ä»(»:0“mqÚAAæš´oqÿ^•ÿ½XVyªe`¶Çpúarøö(?o_VEÆ”±<ÁÉžï&ùmÑb6'íªÎr¤EÜã&:,ôq³¦GF[¤Ý­I{y¬¦¯ªpUÜÄÚW4VšÔBÊÖ&Z]û`{â}¶È~ßh™·Í±&#ϬÒ7eÈ%IRÑ[‘>ÙV+m©M”µrC•ýõÕX'O7ÞD\3—G¨Q‹ƒäå~ì7‹NÄÜ— p+Ýè¯{£˜ _;µG³íòã¹ú.³¶¦b_UA?¼Áî8%N^Wô¥¾(øÎ±Œ·M•Ñ÷&() !zoy¨°ª`dÛ¦¸˜ãùªš5aU¸›i“œÎµNœÏÕwœ.UÕîkxØ==s}°%&DoL³¯ý>W!:šªÚT @ír`§ÓÔ¼“zÑž‚”| *-²M54›&k…V¥ˆ²¯ඤܾ¬šcªäNÐÒCÔ˜í~røú=fg¢¹l8ôcÕ˜ñZâÖ¨¶ÑÏL8”'šòR“̾‡XEÝ÷¹VÙùlC¯UÃÁZµ¥%&E)Ä áíŽò ަ*ØGÚJÞ¡Z@´jkjŒŠ:‘IUW¾'çoˆÉQ›bRÔ¾”ž¶7NI4*øð…>~êJW%øPÑ+=Z­4ϰp@­fªè³½3vµ(qI?–Ë«ÌS²Q)¤ÛæjZê{7´ m[S­=›êŽžMegiˆµ<"ë%5¸]%r2ÏÆŸÏ‰xßç…Üÿ®‘¹Ã¯°¯ƒx¨¡ç›u<’u©²à|ûzèûzDç::ôû<kÕ°¡ûX^ƒþƇÅ~¡óôª®‘yibEÉÌY–±!zYêxÖ¾nuÃðébU“IKŸ,V´­´Íž.×tÕ¬BÀsqOß5 Œíi™’vÆk=H/“²i›©k[ïLJη‚ß­¢‚f Qz»§²wµ•œ>aÆÛå2Ф±Ó…ªæS5&îX9”Àƒ·GÐ!f#ûTÃÇ«xÈ‹E!ïh–KÚ-öÙÈw_ëH}>[ŸöVÁwÔwåøÏTÖÍØ’ú¢ =e)ùtµYu6[YeÓ•âô£%Âø»ŠŠ˜§&9*ëÇFeÏábm·´ `Söµ&ÏDå'³&À3°M12d¶5çÓRo»e©ŒoY­ÜÚažáSŽDë,{<ǀڦș)iw¤Ägk¨èóÏò–]s¿UÙ9`UµõZ´Íݶ©Òb‹œ–º/¦Ä.5»ÈÉ3]E_§›‹]÷F©qÆIRœuŠQ`ÕPsÌrbâ±– ?Ò0rÏ€º;[hUžÍ5‹í8_ò St𞜜°'!Å(h9ªælW©0ÆãÇRuÇÉ\cŸU]Uj’P÷G‹¼ b„¯}^û¡š‡^eAGÊò¼v‡ñ™§³uGÚ¦.«¦±åPÅÇ­td½Ûê¸í¡ýw'èò\œ¶Ÿe’U0 •žÏ ˜ö=­ÎfH9ÆqhÀRGô«†9­i>˜1§»Ð~&5{¤­(;ÖÖÔh*Jm*vñö6vW‚ ;[‰Ž§+…v9sKLrV¡YÉ.>Ò}8Ë%ª)€ÄøFXY'ºÆ®£&fG ÷ÝBxL9ב ¬ +dÜy&þÇRyp¸ES%ºXn–­6Lçj;gë;Lºšº=%fTÐ2Õ\øÑLål‘ƒÿÏNe}Û“6ætŽù±ŒÏ?›£*ÉÉÇZäl©ŒcV±Gö}À6D ÿY+ü³Â¡ÙÔ´ìµnÔ×ù&¤ç„ƒ<™­î´-V·ïj˜ÖQ݉¾nü§¾ªû_eU?Vx‚£9b]œçv4O†žÎW5ž-T5œÌWT]¬ÕôµÅ?ÆóbºeUQ3¶‡ÁnÛ¹ïO¦YèÍQd­d§¦ŸÌ–âÖÊÊÎ6«zÎ×*›:&TÖ”â²:‚G-ÕvoK™àC)*âû ­øû¼}ÍæRœUŽMØêËöÛ, <Ñ1ŠŒ26t®)×IWü`­3ç­MCH1+°ésLâÙbuÛÂ0.}Lý̨$b¾ëkÇÌrj†IALÚ’à“–†Ð1& q¶,¨½Ø¬“ìÏTÕôp’ŸíOâ - ‡ +Jú±šžcQâwÅPïŶä×{hÄÅ:Opè›IÃE/T·-Ö÷h$£‚’fšDø›'K|öF = TÔß[åmf%½ÒÅÉÝîdçkëZ¾Ï—±ìûš'p!{XßõÞ"7uy¦Ã|CÑÇý1Vªa„q !Fo"¼w‹¼¬“¸¨€üš§CÿÑ—•_*¯9™æ`~c÷×¶à*j¦EMͲM1!Ûb\Ìfqø¯åª–Ó¹Ú&³Bˆ³L2²öú_¬bBÌ÷©2’Y.©[Èa¤TÇ^TôÏYQÙ‘š5ɸP V!F )Û¬b"mZ!sWQË®D¥ykê=×Tèj#Å]ÌqIö½`Îgig3Œ"û{>ƒ„šq¾PÆüµ",ß—!£ J|Ú™¾Q ø)™eŠß1H‹COæ©Ðó:åb_¾/gC¶Æég‹MfÜ ÍþÝÅù´€~p౟z:O?ž¦ä±’%Ü\w³ý» 9Õ(G'ÕÄô51åpŠ˜x:Ç(>[ªhê®Ï 2l:!ëûŸù}Qr>MÌ\ïJs¢z\Ó”G½>ŸfÀmSêÎ5Ѭ°ïuÃ$.àÒö'ÁútàR!dk¶3 +?PPóNx”#½ðh¶¢Æ6×$>]­î>]/o¼Xþ\*¯5ëøäµBˆUMϷ7NŽ=›qu"Îñ,zºPÙñC_3þsSXo›fYµÌ¢³•Ö9ëBCÿ®’:P2 þѳÿÑ3(ÿѳYÿ³!jùŸ A½AQŠªÅ‡;ö¢#œ~iÊk~þùhhÊ{¿Ù’ñl¹.ëéV;Ô}Œ5XžýV˜åsÏ6ÊÌ»PU0~êÊÈß§IŸbSåP?ÃhÆÛ¿çYH;ßZt,̯õ²êãyÚ('&ä¤D‹–”r¢%g)‰9»#øÈ½Qñn_iŽyŒžx$a¤Ž#öú‰Aæ àïbbÌþÌc£+ë…AŒ 4Ë™9[”\ëDiÑÞ-mc±1@Ž0ó lR^±MÃÁåÌ\;ö.æš¾æl¶ ÈŠ´ôýIJÒö! eµ\Yu2'àžƒeÖVUžÌT×|ŸfÀ¾ëð‰'ê†2pWŒ ÞE(XùbС²œuÄ8ÁÌ¿˜«ëúd½Óé*ᑆ·ÈHiÛH?«‚]hS)‰÷6;áÿZ¯þg·jði àÅ­ËÔ¢–º ž' ¥DÛjUËŽ’S²/¦¥ýk½ªã}UÇ¿7Ë[ÿµ%l=™%änŽÂ½—ûž»c”Ø1bØÉûc®ªútJÄ>ÑòñV50~tèL]Ú“1JĽíAjÀ5„ñ²¬7êªä7 ­èÇ2Ÿ÷׺ òûJÏ¢ãáw¤¥PëLMëÙR]»Ò‘ÿv½üæDä´E&î×4q0ˆ ^¨Iz,+{°Ù¿X`â­*TÄþ2àÂ$«NTjÑ–3Žy¢“:Õ¾?É¿Þ=ðw2'þXa`lsÒáàRäñ<úc­Œÿs™_z¢£wQCÍw£²®5ɮع›…Þ–@|-3èDë46åb ý{½¢ãh†Ïr÷x±IfÕUWÙ¦x¨cm)âLÇ*6"L*yºî½Ú‚‹ø9U%:UpŠŽ%´t›˜¿Ýu1µh™ §o  ƒÛ)·Ë’Üî[½=”² +vÑþƒ®kƒ`×¥n€‡û ½þ½ nÉÈàa¼“~°$ñ/}ÍÀÅ’  À-Ì +`dcê=Á ½kÿH׌.û?3öcãGhq+Åks櫳ŸÏU¦?^¨L¾o,ò>œ gjÚPaùá®7û0ñï%ì"“‚O´i¸èc bšDE¬÷f~0LœÌph% pǦeÀ,*bÒñ6öL‡‰µ©‘›C`Ÿ˜Ï‘ŠG±M7ö¨KßBLº˜¢dŸ¨èP‹Š”aÕPÒdĘÝ1BØLØys„¨k+IXë†ù©X1.to äóà÷N¥”ä -³ølše÷×ü‹y÷'ìëžLâ¢öÚ²÷–”š:ß +ÔÚD)É gv¥tð!àkÏøt«†Qh’“³¬*f±YÊÈ:œ %zkS°Kìß„žÌTŠNæëÚO+«rj²ABIÚêEùh¹ñwÆð©?f*ªN²jYðCyiÉ9eŽÕ|ü™–ƒ=ãS÷e„ “Š ¹˜¯¬ý}ÍÜÕÊ–ŸËeÜÓyF±M‹Œ0ÊàþÿŸ£÷|K3ÝÞ¿÷žÙ3“™Éd&½×ILÇÞ{ï +Ò{÷.6T@ŠHÄN•"bM2³÷þ¿çynö Ë¡ryßkësÂu­e™ª~oŸ…†;fá.1&Ù;OÌßÁ&¹¥äÂ}às/KlÓÈdË(4Ƨf“LÓ¤R|Að9Ó &ÿ‹¹eöhEر§¢Õº1öb6 Gå¿uñGµÌâÒw¦ 9ÖYJ™ X»®½ô­®¡0ÈÖ Þè,{eŸ€'¹æ‰…kð— _vjæ·œ¬1~®Ü«B¥;dávIɧ“lÅ·5iWA.6 T}Ìðêšö¶?1×wÙvè‰=,qs´ò•¾§ø±o™ÅökÂc=›v¤§“ÝKX؉™Áúb¦à\i„}^í½´ÍrLã„\M;Ï%éîô)šëÔ<Ò¡œRê‘S+³ødÏ,5ÐëåCǹ' Y‡ ôŠ­Ð3Û0è¹·ô™LtQÎKøMßPðj{нÜUýÖÜ}c&—ÛÄLˆsŽ ;òíÛr}UŒ+XhÈz´9Ï<ꡈÕ]Y@æ™BÄË…9OW:@ïUíà¬Â÷Wlý˜ Û)QÍ+¹¡dgŸ—3³.h…@ +¸åžEÇÙ&)y#œâgѯ¯}ÇÎ ¾¾'áàì*t{º6É6 _̾¯ïJ¹¹;Wµ>ù¬¨ÏüsOŠ­üpÏþ"Í=WþÑ6–÷t½/ñúR}乞¢Çû ÔJÇ<º:Œ ìc>]bcŽU|º[B*´N¢¢,ãˆP V’¶G ¯Šžrßü:޾æ<øö&n£·üÙNÑs—ôÆ2Zø|c8ëé‘_³¯ #vg‘)~ î=RR¹užä_ÁU™)˜ vy–hM_Õ›õqdÊ–;ü…MB.2¡¢œ3˜Çdmøö8\.È|¨kÎä] •xfÙ×Ô5ùõ>ëeÛãÈpsGùcCæeï4Ú>Vk¯ >Öó?ÛPç‘Ñjת"í5ÑkƒeO%ݲÀ\©ÆÁC}ça /•±®ùx…ÌÿuÎ×F9ňh÷ì³_NuuÔ)ªþàš‚‡¹çè¥Gÿ›]O«Ù[Äf[Æaa£Èhà "¼’ýr{’†óéš{]*f X¿ð +{*ìX/l924nÏ`’·fðY^•PèYnjÝÓK—Z!¡†Vp°k—´5z뜆Æz’´>ZóÑ1‡É<ÔSñzL©_ƒÌò©=Ç=ŽñÕ_Í$„W‰Éø+RÓSþÌ:‹Êö¨™H·‚Qã×rè'æºÖ]9:Í«@¦ïΣR=‹„"¿ŽË[!c}*:ædµkéx­aÈ¿BÇïÊQéÖYtüö8"fkí^$— ÁºRºWÕ7çU¶4{¤o‘Rr faöÄ<÷2a} øÙ’ ùòÆø­¹³êµ}f€¾·ôùÐQúÔ6ZõѵˆËjÊ}V›óì§qTê½}S¯GÎùd,¨¨O;“ðèÍQHðÎDõ‡Ã%{W-`”w¸LGŸš¸àg±¶Ib†¹ür¥­øž¡¥ä±MÄ*^í§&ÊÙ¥7죀ÇÅ%ÚF¡[Õ/uíÅweu9W¦éçºaá?®÷*Óõ¸ÕX(pïŸØ¦aÑ^)¡Ò+jÆ¥h­üÆÔRúôp‘‚ Ì4[- Rò~“³RΙۋ»f`ÉG@½?VË­Ó¨8M{ùË("Ü5OsNR-Ää­adÈö â£=ð~]7:Xß„ü ¦•<Õ7V}°ÌpaAñm1)ög5/ñ¼g¼;þ䜅.SQ£œÌ'¸ô'¿-p‹¢O´\î®z¬­ˆ9ÐVÆ® ¦?ÖwÅÞ4÷ýéãóv¦°iëCÀú—¸ ¯º±ë¸VýO§h ¿5V¼ýN%H¿ãž'–´ÂãôbcŸí/qê·D„ M}ù= /ï’†—y^L‰<;Š~ú£¦)ú6ÇpË4½t{—àœ –º% ´gŸå“ ¿ê(°c-u°Ì£kyì/+€þ.Q!‡b呆Tu  ä>Ë5þ¸Þ’sÃÒ›w÷P†Ju‰Ùõ!t´uëšÃ&;f1©–qlÜöüÓrCA¹é2`=÷¨Ùø#=—îW1k—ù ·‚ßSÒ ÇzAƒo¹^¸³À­Þ]jis)ê»ó´"ï>cc üÕZoÑS¸6zoc({»TÍЙ~÷Ô@Å}Y­ïÙW¡ó] ÐÏ^9*Í6 >â ¼€otI`‰Û"øg neÙ~ŠÇÙ_f —€“ ^:Í1O\…|ð/³YGÆîeßJ}³ßT×î7Öuût@-ÕÐQö9d"À iN "Þ)Ãçy—ùlà÷4þኰÍ+ç’]s¸dû$ò³®¥øQଋˆr•ýäGmky¼]„KÕ5fß4w<¶Žƒ)Wæù©è›óo,ÒÑGúºfç!ÓÔ×@ Üׯ:çМøbärÍãÄäå–ª ç,±øx…CÛ™Æ'm Õ~Øè«zal.|¸=z½>ŽŽçäÝ¢¦?û~_ÂF팣ãLEw–óoèZJ,×çÝÐ4äÝ\ë){øßêqlÂêÈA>`Þî<¡Ø>6÷>GEž™'ÅÝò-àª|˶SL-8X¤ANÔÒ)À,@.•9'!Mé7Æ ¡gL}ÕoVûjÞéšAvE̲yk«kŽQ¾Ö[û^„Íø•‘ñþ‚¼÷?Љ©×l#øI&¦½6á·µ.HÌßZsðÈú沚ƂWމ’pCGá¹àîJ7*óHC®t¤_ÛÊ{î‘Á’,ÓUa68ê`‘^ë<±¼©8h›óð@Íá~57i™˜1Dèö<Ô6ŽJ8U1°>1Eθ-g~ðLñѦnø§yJö¥iLÆjáu/ï–©­èÅÎ<}kŠR˜ûéöwÄô×-#ô¡Fذ5’¤&üahH½h›*sºÂ¤ì/sØC̬wíµ!—ÿÏ"è;ÐÀNèíjCÎU%9ñì"9ö×Íö¼{'2b‘¾–\r÷{AeØ#€Wx>5 ¶9XùR-H¾ÐYõò ;âÚÁ2éÓµ‹VEÔB«›÷mEØôEËc}ÓSjÜsÈÝÐÿ^'xÈ‘:†užYæSröåôªÍ¾ª·AÆu%3ùIä§Æjßýkž}Í: Îü…×%b%>2õ—Dëø ¯Oôî±ø;sÕŸÙÑçŒ]yOü|OÍÆ:¤´òíYBªGÉ€hXÄ@Ïõ¿ ø²c€%•¨l¯™ïY"@Ž×ÆöM¼ç© ðÍÕN€¯í èÌ=5¶øØÈ$¸—˜µ­|oIX·)b"Ž4n`Þœ wÍ0Ší“ø$s/è‰JPrÏ9I)·M â—ë2®3nz!H¸ 7ÖÆpÏÖÆi¹l«„Ý'%ö~¨XÈ=öu•‚új¦’ŽWÐ%;S•¯mS¨ø}½6 ÏÖuæœón1} çbÜbl* w橉¿ÍÞ™%fM²óþ\äy&»“øäÕŽŠÇ›½•/]Ó°¨åæÜ»r~Úesèí©¦®Á>‹ˆ3t™ú+Þ{*߬uV}ØxëP‰+°ÎâR¬"Jî7Ccïߦú.ŸŠ6ô”þ¹ÚSp×Ü™wà¥'®9R®E„OÑ4‚ì `c|RØ*BDlÕKùå÷[@±¿ð +?ý2„Hºb%eLòÊŸ²ÞžQÔ—D+©Uº¶¬›í×ß““ïücõöÇHÑ+Ï,¾ðð6 "k¹=ç鱆M=5 ¼r€ÑUä²£@?g >{ôê@Å@}[v騤=±È§dãürRÉÞ<&gg¶Þ[úBßTro½6I/y-( ¿¾>‹tLQ‹S|„wŸâD§î ÓuÅOÛ*?ý´È/ŠÜ—ð¸{*HÉ?¯mÊ}¼=ûb #4l¢[΀.v”…L²R‚Ìå‘Kv§Q ö1dÀWñ¶Q€cª^è„OgˆiW9¯þ5‰}üŸUfo‘¿=\ùÜ:úèšEeúUˆ¬ÿì0X€i&‘ñkcÈœ¿V[gŽ–Dûxñë­¡Œ[¶‰Ò—–‰²×Ç:ëâQì³Ô<¯Œ óHè}ÐøŸù9ÿ9Psf–ûûFwÁËc©ü›‰'<51™ôÜ?¿“ RC¾¬Ð>¦hsôÞ¿ŒÉÛ]€%iÛ +¾%‚¿üä”ñHʶšë“„t¯¡mæ`­sùۛ뛫Ûîɾ¹Þ}ÓÔ•}ß«‚fí/*·¦ !že|åÁz“èËæÿú%×zƒêèHŠRq蕉ž¢Ý?6ð¹ÇËܱšKð.0AŽitŒu¨4È1 ~s(§WÛE˜Ë2Ô3ƒKß“`R¦xãž½w‰†]$oÎQ ,sô’=íVâó}DºW Ž +<µÐäUm扞Žx‘¼Ðš÷tQPq¤îlz è¬c±Üs]ÁN»¤æ—i†ðIŒò¿ô!âïïÍp†ö²gãØð_¦‰a¿©ëS.‹q¿ÍQbÏí T…}Ññ›cЖ)LºSʬuI¸ð}1_VcŸ)ý mͼmCÅ~54tœê—`±aè'ç4:Ý+Æe»Å§J0i¶ Däÿú„‰ðI3 kƒÕ¯­Ó„Ìõ J–”WvSÊȹ(£ç\QpKŸa“.O’S¯®A£Vûª?)ÙWXY÷' 7ÚË?}૆<\fb #à`U[ö˯F.ÿ«™×ètÅ2VþÊ2zo›8|öÅÄáìkh§„»§¤BŽu‚†Ý9DÌZoY”‘tV-L½°ÒYöÄ<‚‹o¨N½‰|ò£¹¿:ˆu‚KJ®°OU¾UÕ§Ýj½;ÇÍ~úƒ”š ð¡Ð'ã’´-Õ¡= ÷ûrZõ±†…ýÏWøÕÀ"û”Ä"Ï"6m_I*ñ(8DË:Å+¡V^2ÐÛÕ%†|\í,yÐU}ÿðŸ‚Ì ïWê3žÿ¥£¡íÓèDŸŒ ¤V«98Ÿ +—çYªÍ´Š暯;Ö±™_M>9µfk¨à©[Rp¬¡!ç*~§Æ=O*Ù†…ºæ(355“Ô¼›€Œi[+ßnö•yf*B¼³Õq»S„ÍþÒ2VĹ½…š‚ÀëÂÛ#e/¶‡¡QÀss‡—É¿Íÿ››ÓêY¤V«ÛJï;¥ ŒÛг¼oêZ:®«W\ ÄsÉ §é“áKÿŸ•JÿªÇ•ùµ©'kìÆÃfñ±‘Ž=YXTO«8.{OI(8j“GB(Õ4<¶ÈHÅÊNÈû, t¤²íS˜„õ®Ü[Ö¡‚?ícå¯Ím9w"T²o™…Ú<ŽETìC¥×©À£ VßGûulÂÿ^»ÖÒ> Æíih˜= Pø—¹aÈóàû$óhMˆ_IÁŸ®4 ë„õ§@Þì/’ +w§Ñq–aDèÆ6B߃ Yäß3@bv¦‰é3´ôs“ØÀyÿÜûæägË¥hwŠT¾¿H®̉Ù!#¬€^z–y4·”\êœ-|¶Ú›py¹9æ9FèÏ>).ïPÇê;.gm| ÔÍ@Ëü +êh ›ã˜½Þ½pÍÀ#mS¸¸9nÉÍyAÑýíZÕŽ„_j?EÇþÒQò}kEÄ÷´ô'ÿ\ä¤Þ±A}¼T“ðü÷­A\šwQy %äxfªÃŒ]YAóìÏ7DÔˆsûKÐŒÿnÖuæWì/¢3·‡@¯vFÁoýJ\ᩉÅ8Ze³ÞÙ%ÃdÌÛ_b¼ý°5\ó~söyw›í–r·§q‰KÍ•A³èäßw'a)‡Zrª=㮢9î¼¶+?hw{s¨I€ÇÄkàiˆ˜'¿lô–…üg“Å=ÒâÊbp„m¦äµG0À2˜iîÐ+Mx³;G,ò«tÛ 2ÖÜ_þÈØYö`Žž}¥® älOMÄ5û($Á<a–†\±Îâ+ý*ZíæHU°±·ü‘¡§øž©?ÿ¶[úøu…Ëñk‹˜V¸§ COVÍ­ ZÔd°¾µàO%;÷ÊJ[Éç,6eWªÒu#Þû<*pOh½%O;Ê_ü<ywfõ“Š•ò‡g¦6ùÿv¸6y-XXöò7Û(6﫾©ç«žEù¢ÃŸháÙ¶©Â·úÎ䛆®ä+_WëÚ÷ 3N¹P`SŠN õ='ù‹Ž‰=TR*}’š¸‘¼ΙŠðokü6—º¾Ù¾ÀAèëŽL,ʾ‚Pè¼¹}6‚н"Ìyùó=KÌð()U9=pN'bˆ%ËPÕëþÂ;=9÷=3ÈÌÀ{8ªŽŠ‡ÛÔ‚] a™Á$Yg0‰–id”M r)Щ{Zb_Ó:p ë˜=Ð·Žž[FOüº¯&øÈ÷벊@a™ñP ŸÚýzk”“÷®‡õìtµeòØP×t¨¢×8Dµ¡¦–ü»*~ÒÍíÑÒп7xí†!Xô‚åYn<ÞhžuK©¥ÃðPÀ§¾ÛE'ï«hpß +‡áô{×PÀÖiL‚M„·Ï²Ö}–Úòn®vdßYäD_Xi˾»5{ëóáÆÚx©0ãúÖ(,bo‘P|j €ODÈ¡‰Žó/ó¹ZðP_W¤«oþbj +ÌÁûbäñ 4¤[J÷jñE5±P=‚úïëzÃðI _¤šXa ô–œ…ÇÚfk“RR©qÄéÃ} ‡s¨çq]2\ޱ'ÿO;íâ=óžÚOçôÙÏÜr +DÄ*xÖƒŒ»t °›GM‡ë‡þo¯È 9½=CɵIXÕòzÈã\æ>P¿=Ô–˜pë8<,Ð×TI‹ÿ­þî]wå‡VtêÝȇÿ¡ï)ûÛLBz¤åQ›CÙÏÔÍy÷9/ä<9c+ þï·uWA,·ˆ±€¿â–ÇújâòÿÞd0þZÇVo‰r"Ö‡ +‚×Ç qÀzPG.go™Kò-s‡jõDɦüÇD#üw“Œ:1j×G Ÿ¶G É€¶2÷ÔÍ{ê:žO#l:ÐÖ ÷”\²{ŽP +0y_…Íó,ÀSí¢šû$"àìך¦ò{¦æ@¯¹ò§ËüÌ»EOìÃÐ÷;ƒèØ9AÆÝlÈOëÕ§:&þ‹‘Ts¨ÃZâ‘ã |€Ïð5Ã·ÄÆ~14œèùœS=yx.©jà>»’^¥éÃÇLÑÊ‚ŒÝðˆ9NñóÑÚäßeŒÂ`;ÿµ©`Yøãž›©r©Ÿ|i˜ò›[B(9V7÷ä’KØgYé˜Ã¦nO¢b „œõ |š² òÂ2Kïk„Í~5¹Ê»‰tI@®yX*°^챆C:И~­€ëS³ ÇzAý±ž'Ì­÷/Œ?IÊÞÂ'l`?/Ô•=* +ð]ÊÓKÿE§ÝÝD¥­´U½Xí¬x2ÇH¹%åç<žägÞê%¥ÞÓ÷âÓMôlŒ!#¶E°¨mäƒW^›ôeˆú{‡Ûrjn<4Õwy4´À{Âä“UÿÔ,ì?25ù õ­>@Wœ +rpƒg8™·‡pÉWŽBÆA`v»œ˜ï—ÒJ­#¨ˆ•΢;†Ž¼[ÃÕáö9Zå·ðž¬¡øÉž`Ý%Ñ øj +ŸïQò‹„\y;äýBSÅû}£`ðÐ,hq)HöBÖî"z²Êæõç’3k¬sø´ÕXèÞ2ð–”J§›µ>\›ªo+û¸Þ_µ=Q“nŸ©‰ÝcÓ'¹ŽPÓõÐ)§”Zçȵ«ár6Ü2O+uÊY0MWmøš¸º–!ðµKJ-¶M¢c·¡Ÿ6z 6Æj“­óìjq#"Ž\v}m°"dwièI¼ªíH¼¹:Rªl/ +[n/þìžGdüµÁ©[›A§.v€^8ˆcóð‰‘‚=ÒC³]ÒüW"ú«ŸD„÷¿lUD5së6E¸TÃ.Þ©àÒ¿;þclìÿï:øÍŒ«ØSÁWûA¯]3ÔB˜Sµ·Èǯ¶NŸ˜[¦ŽõÂfÇ46ÅÔVñàHÇ<,ÔÜ™o£¯èa`‚¾³êÉjú£w¬¾v³ ºÄÍ»1ÏL¾ÖûpŽWøägVnÐ÷ÕïÏXƱY–ibšk—áS“J½*rÕ±Ž/<26ùWê;}Ëlì‰ÃtÎá³üJ&ð´/F6ŵÄ#î,pÀ¶AÍF/+eŽ]~¿¡üó&ï†wŠ_c@„™; +ïišS.š: ïoŽ!ÃLýÐÖqhÄÑáš!d¸ÄÔ¯œ qKQ‰®xœ}¶:BÞ˜rgQ˜~É:QüÅH£8”dÈ®‘°+©‰ôÈ`ɇËÈ¿è¿WÈЯ™ÌZ&jWB-ð³Wɧî/56»d|‚¡6„I?ß K¸(ç—?ìE¥ßl.»dlÅ$oOòV{jÞ¬÷×÷¡’®Ì2Òn»ç‰ÅÎyze€‘ÖGȼ(k…ïJù$·’^s¨%‚tØ2ŸÄ%&Ý­¦W»—™¿¡¡ãp…ßpðò‘±mÚ¯oêòëÚv€ûo„¼ÒwW<ÓuU½6aóÚ×ÄœŒ?ÝSÌ"û*|Yrq‘{ÞКûxm¨:l˜˜|qŽŸ÷òð|ŽyL–±¯â™q°âÙN`¾…Š +|˯mè=Ýn–îØÇ" æ”4ó|K=âÓUA‹WM«Ö +ñë ÌØöëX@]#äøÏÕ-=ÞEع€MÛ¯S·Ý[FD8$”Ê##·Ñ"Å–G‘É^ _x`®ï÷,³1 ëX¤V8€Ü94[¼ÚÆöÝ¥Æz‹”^êUÖó5õ-§ººFœU»6EÍ\± ÖÆé–b¶¾ü‰’óò—&pèÕ=9éQ ³­bhôÚ胾³à¾uŸ³)æ£Ì"FÀ—äC]î Ÿ»+CeؤÕq;sàTóHÉ{—·¯¯ã™FYùÚAüç]ó÷zë‚_E 0įc`ŽŒ‚¿¶®ùHSÇó+9hŸœ‹ö êS×7xål¤s‘‰Ü•AÀu©ÝÁ'ygÉÙîyR®s¯kϾ«i,¼gê!ǵAÏb“Ï/Öç?˜fdÞC'_œ%¥^2¶•>¶MãS–Új^šz1É^¥€b—2j÷—9ÔCcóˆWWßd—SË-€Æ¯ÖFìLc’e Yw½óо¶©3pÆ!&¤ëš+ôTþ±¹øÃw ìÜ«”ÂàŸIiÏÏZÊ"< ¸,·â–`ÒmSÕQ«}y¯–ê#/K©!g×;K_mO3e 9·–ëóï­õBBŸèk^ð·™Xs¢Ã–ìÌ–¾òÈÑyßþfnû·‰'ØŸ‡Dz¦ÊÞìKa ‡úÐLÛ<*M×^ú§UD-±Ï±ÑK­5… ¸Ë¥áAg…ÅŸ74TÞßî?³M"âûP‘¿ À£/®÷àœSÜšõAð»YVæÅ†’ Ó"DÞRûaeˆR¸«l:ä¤ç<&Ó#gb5úé +Opd â÷ÕX¸W…¹¸<’ +=ZmžØ_¶z4|Æú`#ÔBCé«^tÜÅÕpÀ6•»@­qЉy6àa—3À¦aLÔŽˆPäâ~uš\µ6ŠÊöªêØ{j>kOÃÄì¯=Ë@mS±‘»J6Ü­îšÜ™å’7EäÏ—f‘Ðʪ_õ#2® £“n™;Kÿ”ò3þ\n/‰Úš@æab®Øça9‡:úP øîýÀH¥úT˜Jûd Ž2 õûÚú>›„† ¼éZb¡l2J‰EÆ€8æðé뛀úݱ%¦•mN’ Œ‹>CÚoêRÿ¯7„¾¾yOͬ5~qcžQ:ßz¢îþ¶’ߤ€íÉXÇ>Á6 +Þ¨|²ÖY|WÎM8/ãçÞîãTÜŠ|réÂÒð[ö)tâö8<\ß + +2÷T=Ùªxa/yêžÁ§þµ6C(í!F_óHð º{Ê.ï·/¶4cƒ°É¯ã³M£˜øµQP¿19. ±Ä>ƒŠ[_`?š¦äÝ®ÕclNÔo¤´Oç´àÄÝ)tòjoÞó`Á=ecòÕaÔ»³„ð«"rìíµþÊPÍ@õû¦šøó¦6Fž[ÔLôÉH%‡jDÆž²6qGTùÎ>SìWÀÇÁ%%ä*Éÿ1P‘ÿÿ5óê¿êùÜ#5fȲ1Xôbs +“"„}¾2AË{´9@ˆ]ë®y£oÉ»­$\ž$…ýÑ~ó» ûñw‹Ì¬ÛbNÑcNaøUsWÉë•®ªØµ!À‹±©Îyj©CŒÊt,ÀÒ¶g@‹ò)„{‹t´OI¬°ˆ C7E¹ÁÖYp¤w àF“äÕ’klRDà꾚ê{¾˜àC<Ë#ƒ'ú}ß[¤”ئ° kÈ`Ë%Èå<;ðõ‚¿3Z6„‹¾:FM½?Äó½ø³e”Q¾>LÏ6Ž Bt“ëIÈ#rl¤ €¿mSâ +ÅMùÏÇY)ÏN׆2Ù>Ï…{d\š{]º+‚ÅÚG«S]sè+çn?!ùéúXmîæ$.ÛÔ‹0¢"7'Ð V19gcèÇ–a—Šæš«ÞNñ +?º MÞåú¦ÀÞF@'Ëœrj‰È·}_èÑ…Ëý˜8e'2Ô©¬ã¬ÍÐK¦i¥wZ*bÿh¯ýu«¯ä¡w¾&a_,ìÁ%]~zíû鯂øÃí@ÇgZç1Ù@çlse!¶éŠhŸŠ<ÐòyÆaxº˜‘yIß u- …~“°kßÌkp8I è ’Yk˜ §lO3A.%¾=Ë9Xá¶»–¾­×÷fW9ÕTˆÏDǸ}‰¹š^È'LúÛ_öBºs–^èßn†Úè?^i)½³ÜRó¸Ÿ^rô¯1bÆ ë$*^V—uCÊN¿`î© Ú®xîƒÃTÌÚ=•€¤†'ASnÿdn«ÊÜ[Ö¹—ú$†Ö‘c¯îÐÀ¦¸cs––;TWõ†Syi¥š±/£–íN`ã­#¤DSꃶ¹öÙ­ò†œUd#çÚ o4¹7,¢šÐµ¡Ê7ký¥ïl"T2ÀÈ–©ÚèÕ±ª×Òº’‡+mŒ\c© ?Òª½2*dw†>]¦¡Oµ,Ò®™l›…ûøÂ= &û/÷ß5aÇ©Ðw±xkôÉ>U›¶5MkAEßÑó­÷ã¢Ì]UO—ê2¯ÎÓ/añ‡°ìÓïcˆÄ;+-U¯ ™wóÞÜüÇzweľ$àaqÖIxôj/äõÎxésÇ\É[ëtù[÷­luš¾hãÎ"îHGBˆ# rj¢Ôž˜Èp·‘â\€F1p¸꺺c}cO _üjܯÄ:¦ªÃ]dÜäkCðϦ\î0=#HÞ˜÷Ü:Χd='e?üS⾌ <~ÁÚ0*bk{ldŽ ü±T{¨'TîˆUnçì _a0¾¬³ëÍ£ðHó0>yO^'üfd±,£ Oóä˜+Ëu™6«ßïKI…û +JÅ‚ ä¾êš§»0Y¦þÊ·ºö²?×G*Ÿ[çjÂ2rÙ®œŽ÷¨ùÌ­YJ¹KÅcy–ù,§ Èvhf_ÓáÖyJ~ ïà_*×E@îV:k?ˆ°‰¿÷Ô„^l¿¿!,}» õ[&/Ò(Â#Ý*2Ä:‡Ëw,2a.»¯!ƒ]~¼2b©KFÌ3C>-µ•>Ô cv—ùB«’€µ*ñUn=—mSÒª­r:ض$`ûßçAÓׯ žzd¤i˜ˆþºÊmø{‡ßé3аǫ´GÈܼðödm¢¼½"Õ>ðŒ|Ç,»|gœ˜hl«~2MÊü£»&þçhÔÓ¨ø »"ZùÆ>}––zÎ6\åãR<ó˜$oàÜà"egŸ¡í'D +9'è$¿©Sî1ð¸> ®®Ð> —âVò)6i=IT‰j®H¾¾ÞŽ«ŒŒuLbâ-CëpUÔÎ`YèfoÑ»}½5L´°êÕ,#ûÁf?Xñ½rÚïȸ_EÈÏ?‹qŸÑ×e\· ‚_é*^ j>i‡FžµcRœ3µ±K¬ÚÆÌ §(ë…GZðêP‡)9^árOLó†,â‘†Ç ¼¯~ æSý +hožœçš¥èZÀOt ÐólÐËîêø³U1¿×†ÿ:„H:¿ÄÏ»·;Qá™ÇX&áé;Óˆä]âQÖÑüj2È!®‰\¬K¿2ÇN8¿ÒUòÈ9‰Nô«ØÀ'n9³Æ¯ªcí/q ž9t’kôÑ"Ê~dìxduªæT\²m†R´¯äRö•B¦uŠšµ xîå–Ê—‹ÂÊ'ÚVÈÓõATÈö$³XY_~ss–žýd¥«ü)P‡‚”u…/W{kâ—zu ¤Kíà´GÎj±§òÙ’°ì‘®ò~s²; ?R3à3r6¼šøë‚°øý‰ý²JÃйÇzxê‘‘pb©ªôššúë.ãå¾–ÛêcÓ¶z*‚V[‹î,0’þ`å>?ƒK¸ûÝ8êã¯^ "m\Pò†UyÃÔ‡*Û•PË5¹÷ç™!çEÄWÔ¡—×úË?¸¨HÇ"N*þp}–“ôîßë¼úÀ¼ìS ‡¶¯ÀçÚE5úæ¼g +NâmàÛG™¹ïð™O=2*Ü9ËuˆÑ–‘êXyCþ[!ኂŸym¹­"Ä-a`ç…%9i£±¿­óOl†GO´L€>lŽW¾ œ=9îÿƈ“¼;ã¨8Ç!Ã>…˶ ã3vçØÕaL´¼´6LHž&§_m)ùøã"+óærCÙó­aT"ð•YĤ|}/4ª¾<ü,$êÁw=ÈÏ÷\dö–¨ôm®&eo‰†¶Ê¸^Ðv¼Ák œý{‡Æ\.ø-øbîPœ˜ëºW9<ÿ*p Ç—º Ÿ÷±…9²2 IpÌ@.@‹”ììë} à[‹_þSLˆ9ïóåÂÂÛ¨è3¼¢·ßS³/3r?œ§\Õò«Ÿ‰ñé¨è©¬5Þ¹·äy/>ò^ÙÛï'É—wFkÃ7+^(9.5ä>µ å¿Þ_DdxÂccË#=ŽEJ‘CÂ(÷,ò >UmwžR`aã¬ãØèU€¯ mÐgmЄ߸¹!ÿÒÖA?(9à -ç’’—u[Û˜õHÆ‹¼=C ¾¸Ü”õÀ3ǬrÌ2k,ãð¨@ÌÍApÈÖ`ñKÇDñ‹­þì—NQE˜W‰Nõ)èीæs<³¨Äc¾Ì/ƒ¥¹¥ðœÝ9LÚ±šuI¹fÀÓ¬YëZl`[&©9¦nÈK)7åJòY€nìÎ"¢ÆL™e]_j„¾²‰XE+­Ç11¿ ‹_ÿØ úxÖØ\ñçZ&|g„10J†ˆ©—Œ]¤Tû¿Ê6ŠŽqÍ bó„¼ &¬Rrð2ÚX¤GI¯Þ×Òz +ðÔ5Ë„Rÿ2±ÜÐSõJÞPöhk“sº^?ì” +¶Gk#6Q1k˜x¯ôñ2ñ’FXðĽ@.iÄgÞªŠ{yv± –g›£–Èê/,°£nKq¯M½Ÿ—ØøÃeam‘Z+|e”–òá›™Ë?ÐõSØç^õÆØYpGÁKº¤à¥Üßž%å£rB.bÓ#îyüfŸŠÑ6eߟÄEüÎË{ú}KѳïÌmÙüJb¹už Î ~ø·2òÙ¡ŠŒÿkƒ×|¬'Ã-%ÏÖsﺤИSc]‹SÆ@O±²*ërž¸½ÃÕ^¹Ä&¦XÇŸ×úʯT¾Ø‘RÉ9Ÿ~E%?ÿi¹³ì³ÐÓ­ñê8cwñGUSÁ£>dâoìœ7ßÏÐb¯:fÀq»T²eüɧd~«yðdµ]\³‘##“ÔI€ÏkNV° ¯ ãÖ2u±=7âp•N:Zã5ž¬2È~5.ïË +qlÀÁ¬xº]FíL³6jCåü¬2nÒ-÷lõgó.VÊϽ¸ÀȺ0E̹P_pðúûRA¹úº¾ôÝOÔ´ûß÷U¿ùiœþ32éö?F1á¿oCBä]¥OÚ`!¿.7‚>)¹¤Ã% +dg³6I)°Iyø= —f—³k”ðH'ïîÆ8.Û#ç“Üó̪Qt´®¡èæ'ﲟôë4.ãüj&¼žqYL̼¢åÞÓ×ÜYë(|½ÝWçE&Y{‘!šú¢ûkmà×ûS¬rˆ”v˜“=Rñzµ9ýæÑ,8æ/®Ð/A&9F aæÎò ÷4púñÎáê°½yègÇLm„k»;‡MöÉ™µ¾%6Ê"&çÚ¦…Ö1^…¦¥èþ8:ì§1DØÏ³ä˜Ë +^öU]sÉ]@Ï>k:¡=àø³+Uï´eïÆàag5Ü´û[Ý `àº~–5@žtcÒ¯Z&ÙŸB@Ó¶å?Ú®|g£“ÖFaŸ¼*b™OÃÆYf©E¦!D°}ÿﺡ¯ëüŸŠßž §.5çßÝü羚ñ˜dà <Ø>Ï©qJZë Mt ¯ü!%ëÝÏøŒ×¿÷Áã®/w€žz`Iö>}gۜĤù—9uÇ+‚†} f&äÉ„…O›KŸh»Áo½ +ÿtµiøPÇ¥yÔ +Ç­Ü:C+ßÓlÓô¢-1»rVy¯lÆø–Zûׯà˜äßúª>ÿ0‰O»lh-~ê•Àâ|.Û˜¤ç€c>þÜOxu¤"c¾˜Xt§•¸¯Â–ë(˜C-å’³1Öyzå|]ùó•~Xâ¿-3G+T¤KIÝÁ>Y'ª?ØÆ!o=ŠÕõcCPia?bÒßü¾:R]´+Eç̲"ÏÊ8ñ—5Í%j;«Þ{Ëßï)чzcW& ,3¯[ÅØÒ“ Ù¥Ä9æ!‘öt²MB.ô(‰•ß¶„N5Ÿ7È(x•vëû}#¿åd£~èÈÈ +Ìü.Øß­?րߛ&9•ãÔÊ›käÔ}%µjORæš({½1)@(êAw9%¬Â 2né5]kÍó &T&,»3P“øk8ãÚ4©ø®ôÐØ ~j©þèœÁ¤¡"FÎ]ó`mœkœc›Å&îÌâ2¶ÄŒ»”Û×Õ œr.jS xÏ)b¶W%ä¹—„lû,-µú~ÿ{cá‹úaQ?‹©ùû©•—‚Ÿ\ÿ2ñÍåµHàç_¨iWõ-ÙAêúÌÛ£˜¨3‚‚×? #c..p +ocŸÿ´ÙUr,'–›ÛKž©¸i7Uü˜?z!Ͼï©|ó¯lܯ³üœ{I//þ£ðýõyňêÀY£oz*ât‰ +÷‰¹–á’w¦Þ¢{Ò†²{øœ¨ó]à¤?È™—§0)ç‰ÙWõBÈŸ³¤Ü @9¹X_ö3-õÝꆒ§sœÜ'Œì—? bƒ~n.ýtnŽštqµ«ê‰mg›ªL¶ŠJ–ÈÕþ%}ON.t·È«@eØf áëC°`GàÌÞ$Àa˘*ëLm à{à.q{ƒGF,±Œƒ#¶†Aa;SµîEB®w‘0 `RÇÉ7Öú±QŠFTÄ$ ôVÝ\öds°ðµsº à‘ê‡ “èãtjâ7ø5,Âæ-ǵȀºdØ|¿–†ù²Æ©?Ô³(ÎE\¦[E.s?k™%ZfˆÖirÎæ.zs ¼'£T- ë<2.Þ6˪°LµQ·ÇjÍ´¤•ć)jÆÍQ\ü…µAD„mŠUìY`€\@LºU¬G]/ÜUÐI)dc2Ö«ß»åä +¯š;<Ø–‚ðë™xŸ–ÏØUp°û2XÎ+¸?†Mýc™{ÉÜ[ñØ3‡I?Ô°IÆqt¼n &xWJ.Ú™Á%º¸l§ž¼6 µÎá³}JÂ9GÌì‘8\á°Ÿ7uT…¬t–?øè\?"ö÷9jòE%¿è©¾¹:d­ -k}ÄgÿLÏ =ëžÅVm •=±Œ‚^™º +öT¿ù¡òîUSéƒ!vÉè·¿#$†ü¾Ú»T_ñ`ŽXpK„ɽNOÿøcÁë›ÿH}té¥oî|'Eý˜öéÁw°˜gß™ZëØVödk ì±¶%ó¶ˆq¶¾äÑÃÈWgœSÐØõILú89åž¶¹ø“_I†ï+hhç %o½3PüxŽq~¥£äµ}†Z4ˆ/|g†f›A‘+-Á[½ˆ/°ˆíQpô7åzèÿ6iiêV\º¦­:Á>‹œgÅßSÃί÷e.×$ye°¤µÞ|€AË#¼ +.NÛ‹ÏsÌãʪ9Ô@§+ø±Žú²Â"ÛfQéÃÜÙG¤ìIé0ç$*EDŒ¼0GI½¿Ù[loáãìS èQn‰}е‹H[ãìÊÍQJæÎ8.ð²ñë˜pË!ѳ( o á3ºjâ®Í0óBô¼ÆqX´KpŽKõ.SÁ–YhÄ®’Z»¯ðׇQQ@Ž€†FØ&ð™Û•/Õ w­U!v16ym†œ 0IŽ}Žœ·>† +÷ëèè/k@ÜÏâóVa¶iX¬S 0‚›ê[¢€¿n : "sÅ®EJ¹_CAÚ¥„¿ŽË96ð8‡Z6a_ËÀYH…ûZç@Ïã}1 +¾­°éÇËdWFηO’@>™zÐÁ*aÅݽEB´“£jA¼ß¦fº6Á/¶Ç@/׆Ào´]AºvÈ“µ!~‘¾·®ÀÔMµN2‹6û¶ûʃ,ÃÐwŽYT†]‚H0ŽU¼ÐöV½Ù×ñ9. 'ì2VµKÎAxU²_ßÔw´Ò2xmaw‰²ˆ‘ñN­|kœ˜náâø7»qgÚ ?ÊXU÷×û˜ÙË­èÏ£¸´ËK Ð÷ó<è'Uì½EDL±‰iÅðp€ÂVújƒß»Ô~*ã•?46Ñ1‰Jt‰iEN€VûÈñº>B”¼±æ•¶¶'ecÔ}hà«=UïF I·§èùAò.rÄó™s¦¿¶äOC/1nœZx•Ÿ÷ù;ZJø?ññïþ‰‹}÷!6ä׺¼¸ ýèò›èŒØ³ü∳£””ìü—¿Má#ÏM“"DGþ2‚O¸®ä?¶M‘ +U½µQ¨„Çÿ꩎~ôÕÀk:Öò¸¶©ÀüèGS[ú)3þÊæ&Ï8FÉŽ:»ÔÊ>\¦Bü€všÚÊ_ªø™wûk?ží½ü× .ò×õ1R½,æFYÔ£ß'IiOÝ3Ø ëHMðÞ,,Ê=]öyŠv·¥üÉORzâ-'ÀQļ°s£ÄÔà£%*ù«™ÅüºB®õ+09®¹š¤y^Ìíq|ìÕaèç~rê‹!tÌ¥zâýyZöóí~dÜž_`GÅ®%cäí Ô¦ïÎñÈšNTúÖ(¹¸);㌲]1ìœ!dš:«£&°±7Èq÷ÿ9‚Ž}f¨ÎXí«úà–öïq>- x0´WÍe:¤t„D÷`G„NÒ÷¢JåQ;£à97öÚö@É3Ïðü*bÑö8ì3ÀCÑÛ"ÐÇ-¹Ú.ƬtÃ>êÚ ¯vÆá±®yB±OÎ&žxuo zó¨—”Pp¨cQOô,îW#[ømWÿe•'8^á2V9œÓuA×_›‚n·œXòÕÄ«û·™ßt('—oôWXë=]ï®y½9Xûa{úéXG†h‡éÛãôÒ½Åz–}Š[i'&»ËÚóo;òoî ¡#×Fh)Kíøæ\¸K"À˜ª?, 3.i›²®*…éWmÓÈœõ*ùl¯¶®A7†‰Ñ b"]Ê:ິìë› |ᡆuÊ‘)»sìHPó‚Â{öIFþú()m¥¢â•ÞÙì®}·=HHXë« Q ³®mÒ  -\€Ï +wçj# ]ywW:²onT¾vËÈÅÎEVµyþÑ@ó-Ÿ p|©ULH[D†¬tÕ¼ÚÃDÎVùT\¾¦¾n{–Väðɹé3@Ûbv•zŒŸ'é£EÉÚÑïWG9šAzêlü±ˆ½?EB¾” ÿ޾ó/­tkÛ̙ɔ$“dÒ'½˜ž£1‰%±ÄÞ;*VéE@z‘¢ ‚Š +Ò{Çv±÷–f2gÎsÎyÞäÝ>ßü!lñ¾×º +ìûZðWS\ò´ózL}hg6ÞÂTœ÷ó«oRÊn1ó¢B¦=Ú·I%.%d¤–/[Zs1ÅÞ‹Oè„gœµ3AG™k³Cu‘Aøþ´ò(ÓòvËJ®š7t³Ü2QRzyÕL¨Þ²6ÄÏËËïúÛò/(à ?÷4¼ûE…úðû„¤6" ¦–4æÅÿþòêÙ0øýåMâC -ÿö÷ÃE3:òZîÝc]÷'mì†ð)#¥6)òVYÔ½]–øÏcy°âé„(ÿ’ƒ•zº­êá>aY„§’Í|z’–ñÓ÷Q*öÐßûìi©]Ñ7¾@ÇþÎ)xt\÷èØ”¸ô©ŽUYwëg%çÕ¾Ÿß±q!<ÉÍ˸Üyû#=ïá11áÂlE$¹øÙVNÞ›Îð{¿Íñ»§hä=ªx͆H–T†kˆ'gµØ,lIÜ¥¬gWœQ@JvÍ qËŠòð•ÁŠÇ ÅáÝõO~æÝùÙÉI¼»=Ü\…Ë8I{~Æ×VóîÛ(—õ=ÀŽqÙû~ +bÛƒ.Þ´ÕÅüg‘J?œ¡·+_?f?¿·n#§ºl_g:íÿ^Zþ³Âîù:†¨XP…oºñ ÝÈôGjbþ“Å!xÚ ,vE‡JÝqâ‹?z1¹ÿk®Zµâ2×í¬Æe ³6Øßü~ÃÆmÚ²ÑDü=$2 .½c¦ü©@¦˜îª‹\13 ÞΚÇS=µÔÚÏ~*ôë }dP÷ü ü¼‰V61Ô’»`ãS]íZ!dÙÑ%Øõ˜;bá®›óÉG¬Úv¢²ví¸¼]g+nÐÁã‡.jáùÞº¸_UMI'ì¤ä3“¹áû.uÙÆÁÍ bÞíº[j¶=Íeß‚4Ì·IZóî¥iÙŒÊé¨x°¢…åïxš+Æú /6lø–ƒþè!ÕÍôMýž—Û<êŒýagŒÃ\s1p#€FšU!âgtè´E¡hg„_vÑëFЯ‡¥ÈˆŠSµn•¶ÍÍXÒ³gz ‰€LºØÓ˜ö»“yyBÖôx^4€k/~«˜j)™$¥‡Ì-ÅËN&dÆÄ® ™•{#œ–¯^Ûþ0ºêÀdž¡qÙÊ®ßpÓê÷G˜1gÞJ-_²Ñ+öGò~ðyK€ÖXµÒj?Pµ¤¥/(E³ƒ„T_öžWÇÂ?XÓâ²GÅ•÷ äôËFáÝ1âÕt?9{JÉÌîkÍõöµæL©Z²>úhøÃIsьϞӢӖ ÍE«zÝšƒƒ[õðš¿_èix¹ªnx}8N‚MõV…OtUÞšU4FkɹW”ÈŒ³vÅÍelcÞ +!lü²¸u®$ÐSw? ix:Ý×ôzNÞœ6!#¤®Ù)ÕÛ>jÃü:mÍŒ«<œfóŽÎœïºQ9sªªÇÓ@ÿ‡´Ð· Fráè §ÐȇGªÉåÖ-¸Šqùµ™Î’>Vú;ë‚¿­""Ø Ž\ÒãKfÌBt:!ñÀQ¥Ÿ€º›WC£6løÂU¡xV‡LÛtÌnÇõ³`¹/N€â^Ùvÿ^ätþk†Dø×8pnb°³àÖxgÙC?>¯ðÕ£ãÕïž\Ú&·}_líÿli^5Õ%;2®Øpñ'FéØ}ZO ÷`cVlŒÚ#l^5µ{u䧌ԒvNÅét\C-ë#–\±¶‚Ÿí{舣¬»%=…Ԩij†^î‚®¥`„Wp)øÉЦæÅ†™2§gVÐ+îv4¥žï€D†Ð狀ëÏÈŠì» ÙÛ^&nÎ̪›ÔP +×½­´ÍNóº›\±æ!/Ù1™Óƒ QkfDʾS²æÆÌ1ÉÓF|†–z®lθtà ÕnšiàM+¼ã§Á]LÝæ3&tt°£­.æã8‹òe¦Uøe†+ør4{ÏM©Yµ‘ +— ¤¼E-­dÉ‚Œ÷¢_Í*(9+z!bøÙ+(¿1Ù]öp~°&ÒÁÏ;è¿ØtÒêtÜŠVøÙî0³?ÂÄm9éжäŸ3ðòϺ´ekCìÑÿ°èvúåÔ¢à :áSIߦ ?)¨ÃI2ìã¡zÓ‰ÍÛ!Õú™8§D¼YÑa>lÚ1Ù3Šú—Aüõ²…\ºøã] }”Á½v”¹êå³f ܆E3²daÖ‡Œ4ðªÝ÷Sa‡öîh+=dáB6FDÛ£<ÎÑý“ë>mÎF­\±òVôÈäm®`ÛÓJöµCŸaQëVvÑȨ˜•“R´-yÓbúˆ¼åÄš^²æ2§´”"O'æUÈØA ™¤¬e3ÐB´ª>e^GÈ6Ø ÓqkGÛ‘ñK +|ö–µ¥fÃÁlQQsÅøÒËÜš´ßǺ‰ùËrAP~àjK½8Ý_|ÍÖR±`—Üíœõaaëš…^±3!«.6fÕÍF.ÛhUëv\Ί»lCe®úiÃb6™yŸõÓ–‰Y¿mçáÖ­Ìú-­iÍC,8õ!²áðwÆm[c,À-Ô£Ï]µaßGG ³ð;^&bÑLÌèCÇ,hU F.Ô+‚„ûÚÀ’ªg€Ö~6;XµlDdlz¨u£ýMÉ£½Ð¤ý~ÃAûj_dÙ÷>T½ù¨OÛ#c6GŽóv©È/g'ÕÔ²/Ó†¯3mÊOAF˶‘³íiLÙñ`ŠFI5;^rÕ„ útÙ€Íú4F†îûð¥ÛnbùÁÿ‰ÁW¬YšK&û1NZãgÉÓÊXvpq;£Bñ§€Pú€ßÛüQVIZ½`æ5møÅ=#ʦlwOU쪫ºê¥¡6¼d芭¹rÝI…¬:ø$§°)Ò/F'o¹Û!#³jvˆ–·` —Ï(ås&6|Î&bÏ;»„Ón]Dy7iRö¢+ +ìWù²‰T¶á ÁöF¹ŒOm½ûÁVáöѧY‘vo’'^÷Ñ Ûcì–µvÆÉ€.ú˜ØÍ16mÕÃB «ã +Lþª‡ß²d!—lºaÕN/YH % º5&êÛïT¯ +E NFÃΘH¶?ÁïÚ#ÁW=äšÑÒû1)yêh檯¹ö¯Ùö¡o³¶Ã™öÁÏSùÁO´4 dXÀ *[A“êÖŠA€Øòˆ%‡Sbí² “9¯†'û` ãÒ¦¨9êÝ®ŸÏ]w +{#íÝ;Ã2÷¬MÒ¶læÁÖm|Ü´–SemC>ñu¡^N*IËVã’¥ƒ½fï‘nû[)[~xƺ“Ry4/Í)…ÆÚéÅ·¿ +[¾Ž¾5¯Tµâé ;‰£ÚvØp+cjˆ_ãë`¤ÎÊèÅÛN>qZG+Ö ›ػЯ&TÔò‹çëÁÅš“f‡€õ±¶Ô} ´ò7}Ü–u/?­kΙÒà“—¿ámç­yÚÙ+.!mÍÅFm¹„ý &{ÍOnV60¶Á"Ì\XÌ”Vícd, ýQ:jÓÇiYrqë~&ê¯@ùqŠ'Úô3;Ãí;ÃÝÆÃ£óÄÃØò5 4yA[3«jx1 x«%+àWP Õ”òós +@O:af )fQ‹ˆôC^x:Àá€Çx¹ã¦ÔíøÒÓ*gÔ”ªeztöüpŠŠù4Áå/¹¹¸•ô¹˜½êé–/8¥=3VvÁ! ¯8¸”c +Ðsš¦÷ F\úºÙö01k¶æ¢¦1ð~I[Žº¸yuþ]Û-; #¯µàõš_ÀÞ‘¨VÝ­Ô5€Ã_–?© ¥ÎëZJvGùmú›¤‡\rOMù#d$C6‡Û„k#|æò›0i¤.99¨%@ƒ­{ùœ€x`Ñ +ø*=´ +<¾áç1æí<ü„¹4´#fxP%LšÕêœ4ˆ+@‡ôøœ%#>ÇÇ@oò9>.qs¸•v0ÛåÜžæò7Çùm[ÓíƒÛs"Ãîœppo’Ã[óÑPó6 +(¨!ç5üF³¸%µ’uðv;osœE +Y©5›~:nÕÏÆ‡\Ôê?¹9ÊïW6ÆN¨ê#Ö}€ö¶Qª7½,Âþ$¯ãÛb»å(/`ÝKƒ¯8Yè€Ô9c`6MkHåÀûan ó¸{Ö¶ƒ‰öíñvÙ‚‡‰œ³ –<”ºµiÁN*Z¶4¾ýttþ< µ}v»?ºt! §1¨¤fNiõÎ~~¡RvÒ߉ËÞ÷óY;^~ÍB¯?ºgÐ7›6lᆷ³Ã­d•3`©—*£®ü´k¦â?NÈ‚»cRã²›O™ÔӋǬ\Ÿ”6ªTq!EgÚk3î-iô½QqÏÎp+eàý£Ï„LìÚ)•<¦h«p÷PR½µOBFTÆ’¥´dbÖ­:xÄI¿fBßCÓvÀƒZjî’¥0k’ræììY3·qX†JœQÓëç ÒÖ€A§pôËqìEuaÓ(e®èû!KsZÉY´T½9'Aöý ÌGß·Çz]ënVSHÓ’· ¥•m¹è {>Jݶ‡\»lg@‚jÞœ™ ]²Šh“ +rú˜¨æö–•V·îbc7¼†‡ _v0&5äœq@›o»…£|ü}gŒŠZr5—®z˜è ¨=dl#Ù;9©¦nQ¶¨¶àˆ×Ýbñª•ʱ޶ª«BÙ¶MéHv^õí@ocäÇ`›lg¢­gs”K]qµb—m̺e+©hÞˆLZ;Êã·¹z )"vÎÒÅQÐÇuüÚÙ£Z®=i gÍÝ‚ys·µÅª,»8©ã7'ŪMó÷f;,{³íê1¨Ù²)£rs„Oߟ¤ vÍày§˜3aí“„\ýÚUo¯~ÊÔ'1˺«Û»ÓÒ$WoW¥­•øl¢Yºá‘ìŒu©w¢þÝI~ײŸŽØ 0 ;“â¡Ý)©w/ÔåÙždÐBfdæ¼ [¸ìç',ì:O?=ÕÝGM +ªšÓ7€^ñ³±‹nbÊÈÃn ¥ûÓÇöT‡iuT$_öóù³bÉ‚“‰^íèÞúzûÿ´›¼æmmcKö4üÞ„xh+(µL鈹ó&JÃN ch'(èÚ °i! <®!¤Î¹[êv¦iäO ¬ÎµQi}˜ÏÞn“ï Úw'H{A:aÕÛ)ìEyúµk·=Ø&ÏTQZŸ¤ýˆ9•œ>,ãfXÛh/¼]ü”éiý´Z#ô i„ŽÞ¶"#ÿÊ-@¦~ïÔïÄòU¯eTKÏw*¹¹ŽA9ÖÐ;“ ¤‰$þ¶I-XÑuµízÄí[^jÞÄ« *:«l⾯7]ËëËâáøÒ¢¨© ‘[înù¦»WµæîÓkŧ¼aêî¯t ÈÆtª6ƒt ^Ó.˳÷š°ÃCž!ŸÚ:`–YYÊVm¥œ­Ì$5ï‘ËQº@ŒÈ!|ÿ³p¨ÊÓÕ ñQß‚ößÓ\áѬ HîStT9: W—²ÆÛÝž?gfVLëq-äŠ Ÿ³ +ôõ˜VŒ´´3ÞZ˜¤Çc½Œ"³–25HƒÎÛpsnÙ%`EÊï³f Ç0›.tñ§©Ö®£=Zòv¶2K BÜS9‰pÓ-“ÔÎX»Ø>QÇŠ•3ò|RRÚÜ ½tкv!âi@FÎöãrfÕ¤â-Ÿ€³ìâ“æ­­°i½9¬ÖLXU‹NzÑN¯¼~ö¬‘Qæêh0+‡p*‘¼ÐÖÓUæ‘÷@­½½µV¹–ié5°ŒÝVf¹ï½ÙúÄ×ßœ·vÒ–=­¸Ÿ²hØE7½~c”ټĊ‰\ôZÍÍ'Œè ý.Mî×ûíò¾º^‘6h"ƒÆÔ¸´U— ek¤G¿èÙ›é²íLˆû“É—9^÷§ý¯5Žìïeþà×9ÁÀÞ‡³à2æ½]“–Þ6[#mÒÔNZÚiþ!zÑŒKÈÞdq]øòi±dÅ%îÜë±nŒ´‹§Ý<Ì„KÂñšL +£l„«£$\o¾ˆ¦#ÆÉTÉ*†1¿‡¡{GDKï@A”›ÔšÖ—’U–„Þ“cíåŒ ð C†vÌúh¿wÞÓ¯·õ MjY“RaDÈ\©dÆ£ EÊiÚ$‹ÐRg Õ¹ÅÝÅ™®m7–÷3íé²õ-¨µ2uj=‡,gŸRÒ:R×=}êí‘®Y‹ˆæUp +ìò^¨¦×€”Ëܸþ^NÈ6¦¶’µ/ÛŽt‰p¢QȶgQšÕ‘U…-—À…-ß§ ~ô¸ðXÄõ”²£«OÑ }1*®»Ê%„¯XˆE{#˜ÒíQBeÀÄk:úrz™úD UÓÍê­•ik´]Ý9>…>kVHÇMCs½’ÛñVA=6a@S~SbI3r5wÅ&mßéR|œƒF]ÐÖ¾^·"óöÇÛå³^ݤK­a뤒ÂA AÕÚ“íUZÄãF…`ÊÒ'UuÕ ´¶ÅÓjkÏÈIä—žNI~'œrÍÀfÏ uÓ—MÖ”’UÒÐJÆeˆøéAÔ3¤á»42´k¨mèmÏÔwqc²¾¢.c©D2VÇÀ+5C˜÷ydiªX`È'5Ë_Wof¢oe¤4/ÉÆ\®Î‡=àø¯]=9>“‚7åèâ-ºmÑM®žÑã²F!ÂcS &B'ßj¥érù4MŸbŽ%4;Aº«å•¢“yÙÌsòè?Þ½—~+îxiaójã^ƒÿή@&,RúœCD_uµ2B&bÅ´…Vá3+:Þ×§*“v¨²¥]æ +!G—È"Êß²›;?4èq5…M›Ê(O*r ó3`WËsÊ.7C«® X1ƒ¼vF4@öhÔÝë‰j Ð%{¼¶¯ó‚ƒiNëîŒÄ¼5Ùm[íœñJ„£ÎA‰N©&($в^Ngœ¦g°N3 ÅË…’T•P”dh˲ô33&Ìm” Ô~0!V,xÚv½¡K1èewÉçÙ|ñ×⋬oT^FÁWàõ½ägàN~û-/‹{2¿LñëýWˆ°?oçþð*üKIæ˽«ëìÈ +h%¸I«Ré2Úõ*ͰT,F1Ä¡šð °…»™Š!Ž>Ä6éoáú;$¤á®qàr]ìFyiçEPIï™üé/á °[·sÃ’“(?Âà¶ëÑx]Àd¯z$ÒI¿q\׆ðê¼Á!Ù3S‰aÏÅ (3Ϫ›¬—sŠÚ+*í=]^¡:UPÔ{<ââØµ;¹aopÇž¿%‡]ûíäӰ診_ÊJx`}7uÒ´;?ïi%Z•m EçPi'ßÇf:bI×3)‹Á^Hð'ò9TÃ[&qè «Å…C(®åÓ½s=æ‡ç7bÃ2bÊO•fáîk©æNvÊ`V/:;ø+VnÛ'Zñ©6³EÛ+ÅKdcÈÎî@£¤g•,í^$¶ó†1–G±ÅÉæÏ¹¸ßª +—2S¿<¹Ÿø{nBÑŠ<»—ĸ«$‚®(1 ¿Mõ£ÒlzK¿bÀAìíó¡xÒ@9žî®¸^QÝÁP'¢ªë5ç#^€xú´ôx~©ðTnyï/žÃ.^I »|=;ìU"õØ•µa‘¯ñ?á°¶§}ýÃdŸYÝ=ïïê™vpQ^½¬U­òµwöÍi‚™LÆ~3>©åç§Ïª'¾ÃýZ\®<‘Q ûñÍ{ê±{«Ã¢ã‰ÇbRØÇ®Ü« »A+Yƒ4š®Òš•O”bE±®S”>2ÈȤ¤;ehiφÓ1WÖ"$5lwŠ*D—ª š+µPË…¤Dâ??*>vùRlØý{9aÏ£àag¯—†?~'ìδcàzÕå÷iÌ÷UJÏh¾&ïè¯ZwL¶õmø¹´ ½ Á£3t›uv™fh¸§OdKäë­tþT&ºÙtƒÕ„[K5Cëà3½æŸÞñœÁÐFÓ¹Þ8xóȽ¬²_¢?%ætþ––ÛñÓýÇ•aO#!?¼Oeü˜-8vúzVد§¢Ã®Ý- »ƒ ;w½üXô[Âi^ÿ^ß?Ü5kÑ9ç¬ÒŽq‹ˆ®UÀ9Bw:Cº¦Êvë™KµØáë è‘Õ –?ò‹¤Çã’9ÇS³;Šz‹=váÏa"Àa÷žV…]¸š~,ú5ì¾ÿŽŒB¹ïlCE­Ú0]0·[¢)jí+À –Þ×|‘ +R\xÛüó£7Øc‰‚R2ÿx‹ùÇÅ;Çž¿F{<•@ û3ö8¡ù؇*ëñìZ÷ïHZðu·ÄRîêA.HUkÓÝ~‹]?ØÑ?C¦v¬!9ÓQp¢ïn-Ôp¾ ¼ëäóWПþ¼[~ìæ“º°»õawŸÕ…=‹kþéYó§×9²Ÿ²k,çá-ãO[EÁÂþn/Ì>¤åŽkøUsا &)ôg<ºò»m,‹"^È3–ŸçU¨~—Æ>ôܱ‰œc/bˆa÷Õ‡ÝyX `>,⃠ìVTóáÿ¸÷ÿCR¾ò×Ì:ïµâ:Å}©@™?ïäÒ̘´‰ZìQvT÷ÓÛE#å\ñT1–6Ñ€›¼ F®–AgÒr:ÿñà"ìiLó/âÈÇÎ\üöûqdzZŽKž,ÏÇÝòé{ñsv!Q#ï­‘ÉˆŽšÛ5YÖ"œKE2Æ#*šËI¹­¿Å¦‘G¥4ÿx><ïØ/§_„Ý~V Ôý‡œ’Öß›áÝoåFˆ[+'ÍÛÈ€š’9¢jÉr«YyCƒƒ}c0F»çž>ôŽÕýY wÜxɸòý§9a9…üŸ³Êå¿Åçˆ?‹'þÿñGM­â6‰ {¬ê༤§ÎêIËv8då¡'MÜ“œ*—udvÉíPV×xžfÄQlÏà$׃ÜÕùȤ–ß¿jø1.…øSR6ç§´"öÙÂzéÕ¤òO(Ît›Fñ¼íâºò R|Ù)¤†lM£ê¦·N„èíº¤&ˆXæ®g +ÝÉõ(õõ÷yí§^&³~~òìq ¨‡êcWï†EÆãE&³Ã®<©»pÔ³dAXb™ûçˆå^ Ë™kR9Úì]íãC˜Dö¯c—ªT¬ ×_Á꟮Æön–ÔÑfŸV6Ú΃ §3ŠE¿\¸UvåviØýç°°ëáUa¯å„E½AKÏþTX,>ÑJV¿rõu–΋vjµ¡mVôÁä}f(“£fvÌ‘:× +àìÙø +´áQQôÏêÆþˬîfjE÷åû1ð_¢ÇRòyÇ“J:ΧUµßk$k"LJþ7vØÐ›w²ê7ǹŒ©¶þaK'I­q +:ƒT–t´œÊÖ¿n¡ÈSXƒÏ‘DExiý@xVEûíôæìRÖ-ÃöÊ´Ç¡˜æ˜V¡*^7$«rêzá~9ïìàLë)ùs&b~PÛœ1¬a);©²nEIw¿±’-TÇ43• KdnMßõØLѹ{¯)¿þù°æØ‹wøã‰ÅgËûþ(Æùo”SFbÔš˜–‚õÝkUQ¦t¤ìiuí«¾rc˜ß´tÒt:£H¢òQù²ášáÈ;sþu ~äVÊq1§RþËÝg ÇNü‘víÀæºbÒ`× 8q”¸MöÞ«Uo;ɈµàÖk%fQ¬Rëð}2CU‡ÄYÊÛ3á0´v©ƒ2¦5)ݲ~ÀcGú_ÚEåwFå¨a}k¥A«ÄI%ýÙT"óv3œy‰-œ,h¢x¢Ê¤7Ò3N"áíW0̓·áhå \³6–ÇUç+$úË@(d£‚öý¤ÚƒaBŦ›» '¤/š3½2|ŒMÎ/6èÕŒ! += S˺µ¥’.K ‡«‹Á·ô=D`Å÷иžx¢,š/&Š»¥q=ý)ƒRMµ[©#…Ì}”-üqŒAXq¡óçltxÀÖ×í1iû­¦!F7€ìêjOà°ºŸb[,k±ö©Å]çãRY?¥¶ÿˆ9ó÷cbï‡÷Åm?'•·ŸÎiPþ%z"zzÆ.ƒµ}DŃnyiðe¾|ÙNo±)®Ò`Ÿ ]"‘¤µ+'LI¨ÏòÅ iî§’óáë,晋·²]½]ö2yìí̉bï.o¥èÞX¥ý IuKÖ¤öjÙB. éU v!vTϯ”Ò¢ûtµ’^'¸Kj-’ XjÄ2-¨M¬HH4é´No6”8øªÁ»ƒ¥Èž±¥6PÏ ºhh¨¯Ânè…m¸ý«ùÛ<þÏ%¶èëG0®£æÛõýTƒI×f0 Ñ4=%*IWº¢»#µ¯·'C6`¨–)õÐÞ X*5÷ ºI}FKË®¬íļœ2Ћçí|ô‚ƒ[²s‘ž.ÄË%+¥vÝÏc¬Ž8Ó.Ý£ooÐö¶$õrk¯IØûýêZ»!©‰¨¸×@·”!;’aÄÞb›-‘ØfyÇê2¼o• %t*´åV·Ãlxð ûmÊýi‰{i¤{Èe‘w©5˜~Å`uG®PÔ?cwørÈBo + ÀÕüJñŸI…ôðÜjî •Û¥–aV qTEHtGY(oo/Y›‹GIÅA->nèÄ kÚjÜÊÎJZÒàTvU©Ú…o"EÖ€ØPÒ+2T¨ºõPsÏP½·¯45(®hDð]—˜0Ú&ÞöС³*bö‚š\µïá°·¼LÔ”‘^êUµ–˜%´TC9Ѧ׋”ƒCÐ>iO†ºSl”¸µ]pFŠ˜¶õñ–¼í”e·´îå“÷ÇxœÏÁVîžS<)+½”€î®‰9ÓjRÚŒžS4·cýCô‚)›°yÂÚAõéZˇÄw”‚Æ1ê¾u -ß¡éiÑ3 +Æ4ÍÉ!sgË%·î{yôO>LÁŽ£!vÙØ7£C¾›53j}}¦OŸnÂ$D kXEn#ß&o+Uu÷ÉÚÓ„,uts³2œB·D5“É¢Ût¶4®µ]•%îêû0 “æLX”í[>…uÝ)à,ÉŸ‡ÛÚCG3¶°¬QYù#§¤â®½eS`•2;º¨UQŸ§±½ÑÂ鋪¯Åž®ÁN“°”Â6^ä`¿lSªÉ]uAË(Þq+w\$ð—a&f®¿ú­‹›rÕ+N»äST?5pªD¤êç-Õ©çGÌ–…ñΞ k+Ä3DÍ0ËH  éµUÎHö›u¡ Ÿ¾¤ÂöfZÅ_B|Ùá“ñy Wþ5H¨ÿ$6íø³úæ¼i_gǰM&˜¶w±wÇ…¢-»pÝ+ nø8˜u­~ÑA.[°·”ÎÚ„¨—L6ëi£­²‰k^yÞÜR´ê¢T¯8°E‹ZH윲þù¿ý}NlÚ>ú®ÝÛR3o£UÕ¨÷!c}ü’“\5aáN‡ vÐ^»Ên»–•çR6ǹu­Å#Îâ´‹›³³¶‚á—9áද¹rÝ…Ëù8Åd|]èù4'ñíMòºBN&Ü©à”:ô‚q€G̽ ‡¾fPuµw@c¡*DZ‰²éå~+)km’'Üpx!uíëQaö•QIé»9uÍ £èÚh;6yQ#À.ë©sƒˆ·#%w]U÷—t¬ŠQˆ¤—R!϶-RñçÑŽÃ1iÃP»¨?^TƒŸ­™‰›V|Öœ›­iÉ¿;ÛSŸñ÷(öÑÈØuàrw¸üÃ$Ⱥ—\=ogÖ®zEGsµûA&èý’KÓ»M*mßO¬Ø÷’«†)õ!#!kÍ΄Ž3pßTÔá8 ¹åÀ—Ì ¢&ûQ¯§TøÄá^Ì›Y©h^Ï×aS¶œ¤Ê£ é5#âý¢¶)qXûYEÓË9êÍ´šš?7ˆIßwb‹>¡ñ´Ô|&Vï8qGsMËütôšƒÑ°¨c€¦”„ÌI¾dn8.kˆ—!Þ•ÍI&jTÝÑ8¢àæMk(ÙëŽ^ùŠ],Üp‘ ‹úª· ¹wv-ÈüþVú׉¶ÞoA‘âëQΔ–¹8Tóf×ÉÄ ·rFÙÜu¼`o.›¶‹ÉA›”éÑðÁ¶tô¼U·ae7­[šÁK–¦¼]7´ïÅ—xé0àzò¯A.ÐëÔš-:q¤3ÿþª¾.í0€­Ú¦"¶èd]d §êå§Iw?@옾B§Í+ ûn,èh~ÇŸX½j…Å­˜ï?¨Øï³Tʶ –6Ü‘{kþ(Ã@[ÿvω.ü×L nwŠNš0µÔÔÂÃ9þÀº ž<×SõpRºëáÞší©~²oÇ~¦#MD°Wtm^/ÚtQjçTuϦúKÃÝ·feEwÿl†þw†Éû×Kôq„ù<É }›ït™híXÖÖ¼êȽè(¸¬Œø<Ñ ;\à ìŒÓP_¦)¸ÿ¬ñ¿O³E›–¦ÒUI̬"çVH zq8Fÿ5Ajü{†ÁÙe±Cæ–²57µñ`R4t0Ûé8˜ôo³«NrÍ”4¡#­Žt ,ú:;ç]Ä¢ƒ]¶2ꆩ˜¯ã-ø/Ã$ä'¶üë0¾â۲ȱÐ_qo[‡Ï°?_ŒJ¹©'æÝß5 64˜;&|Îâ .yA…ŒŸV@¢-´¼?÷MÄŽ‰^Õá³g$¯wØÜÏn\É'&u¨ú•KqEXñü'½àÅÿŒ³™ßG±åëšâ‹ÙW6õOwlÈÔ=7­þÀËi^3“«—õðÿ»OhÏÕ\~àAç¬é+^.(Ëž®{´ AÄ-ê°©_FZ Ÿ¼Äê=gK妖º ¬9ÕÓðxI»m#Mö×Gt€n.êЦåÔ :e] ‰šç]œë*ús¶»"|x΢—fg¥ŸZªKÚqÐ`sý¸ô &ma á冶)þ£ •ºoE}ÉëŸ9¸¹ç蔓ۦæâïã\Ö'?¾a†øèmíÚp9;&tʾ‹T1*‡¦é™9÷ŽrDæúj?ljjã?9!Éûvðûuc^Ì·q øÀK(ùè¥4|òpi»®VÖ¦“‰iQ)kú²èW]êÞ8¿=‡ôˆw+؇}¡jEÓð6(.½3.Ê¿³k®‹Û³BÞ~rá +ßÕ¯éQi›V\ÖŽ—R·h@e}ôëƒdض W¸i@$Ø›Rþ'H€üϬqÑ–£•x0*îzéð='´f‚&lX)k榔]:{ˆH]3ÁÞ-¨ë^(˜~裖·ç¨Ëøt4 ÚÒ”´kÇæü5Áå›f BÚÆ×Ë:dÚ¾›Õô-b[LÙÕÃRvM°‹Ê†¨e #ó÷¼ Ië&pLHŽÜ±#3>ãJ|øòEUÍ‹¯Øz€÷ˆM1i{^rãÒPC줴(|Û\¿?Lg~™`Ñ¿O‘‡cØêÃéVÑÁd—íûŒØðÿBŒÖï#ðÂøÕÂ`åó ,à1ÒÇq*nÉ`† þáÀ…­úäƒ>ºñ%G3€C*P–©æåhWþåqÙõùèË-¹`m•<ß[ÿtWßR¼ªÁ&­k€uUÕ9ðÅ«* Oåá>nòÙ!ô‹Ÿœ´w'?Ýï%–»j¢¤œ?¾Ø  ¿Gqå¡‹>z ïW5å§Ä9§„yç—äð7“„䉮ú›jÔ»%Ecì²’´ªiŒ[UA£¦% Û•êæÌiictOíÛãŠú”“.jÁÕ`{Áíyù£=+AæKʆ˜¹bQ ðºþ傼æi¨¿ìÁ†ºôù_#8À5WN)j£µ”¬3k&\þç +lÏÓ\RÖFÚÓ®¯«AO·‡*ŸØâ¾µQÎý±îÒ¸¿ä2 ¨µâž¦ô%eþ½POÖµ MÉÓÃx‘¯ôŠ]ùêúG7¶þß3tú¿§Z0{–¦äõ!€Û³î¨Ÿ_7Aâè¯ÎeG\þÅÞZðò¿Óü?ÇÕëêêh/)é‚ sÊKK:µÐ®I¬ë…O÷ƒ^ý5IDÿÏ<»oÃä}qc +¶.ïH¿2//¸{8CìàKZdÊŽ“Ü÷¶Š¾ŽÑYÿ;M!ü=BhÚPƒâ–rÃm©þ»ÐÚ÷q¬Uºi'A?û U_ÆÑû>TÅYøW :ô£ +JžNIŠn}¦ 2Ó?û4 >ßΘíÉ¿±ïFçì8±9ÛTÊ–¡6jm¨ò©_˜|ÎŒ÷ÛŠ›5ÑÝ9ÞVyÓÏ/¿êá–_vÖ„‡1‹ +tÜ’ïcœŸé©y¼¦ÇnéšbCòÒ{ã¢Ô?Æ„i,(@÷÷,ðÄo.F㞉T´0y¾mÀ§o›ï7uµ[º²Gûpü’ôÔÁÊ8k§]ݱ‘@³}5Ïäu+ªº—Û&È›ÕAð“…žê‡!9"^I̽ÐÛøþÄ\OCÌŽ‰T¸eÀe„ /=¬œsL܉¥ÞŠ;S2D¤‚\r­!ùÁ1 ±,ü‹µ¥|ÇP÷: ʼàf¿;mmyÚ×Zz{ÓH)ÿ6¡lq™Û&læž‘ +Ú"¤ÚH%ë*Èk+õÝ) þÕña^ö`ß_­è q^^ÆÙMmc,€×™ëêªÇ~Nê¥IÞ“UuEÔloÙɮЗ‡^qç†NÌ!_ ó 1ÓÒÚ7‡nDö'Gû-èyPRÞ F +Møãï›ñõhŽ•µî­•}iýôÌrÚå=óÑyUt*!ïÞöÖ܈/#Íà 4NKH:…M ÿ—þ³º1þ—•0À)Ø‚ÙÁÚ8pÒ_'{À±ÿ´û_SΪºðÁTgò%'ýí)*â??õâš—m ]ñ +«Ÿz[i_\ÄÊ]øU¨'õ’ñ«–vÆDM;·¤®‹ßµ5¥´åßýâÇW}ôßPmô2€ÿëêò×;¦ŠwcâŒË:Rò¥¦h^]ýv²+çꚺ:bU }µ¢‚Äì:S—°"í »0êG —³vlMųý%÷gû@÷€}Þ6ÔÇíX!~Ãó7Ì qNÆ… inÄÿ.Hß'ñµ???Ê) ´ßòqs®}› £¾|æ“–¿4S3Ï~£ÿ5CçìXÀ «ªÜ›kƒÑË +PÔž¹&飫>ñ¿ó-g'(¹õûxCÚ?:<_‚ܶ¦`QYxÓEOø½³êáIwkƃ/"œQþôä¸ûÅÛRûÕKª<0ƒ_|ô`‹~/Øw Rä7ü‚¸=Ðû? 4FœV6½c³N™(åw—T¸äy%"fZVûØÅ-¾édå_r1òÿ˜VÞ^Ö`ÝŠû>nÞå :sU‰~¿¦D¼=°6&µ³¡©} ðîÃñ¶ÂK›Àç˜ñYëZH̤$íÜHkì %é·qVö9à5ïÆåõ¯ú‘ ¿Žòk¢€š-õƒŸÅׇ‰§øÕÑ'Ú@Ï~²´dœ”Õ=×1 nšh7æИqqÙ'=ý|Pœ{Ý'(¼6DH9Ù]wÜÏ…Eê…÷‡ÈïÎ…ú*#7u)ÛZdÚŽ±¹`]ÏØ2ã¥w-7§@%hñ¹7C½ >^:4Pùl¡¯ôѺªòé–ºú¹‹žrZ‹Š9yÔoó} g³]Å7”°÷åuѧÇ9)÷ µ1ùð¥ŸÝÄÊYìí0t}W#"ÍJ)Û:Èû-}ÕË€(ïfPTpoi èqBÎ_kËŠÉ]RÃ^-`7ÐW»ÚÒðyѽ¹Þâ;]å7 ¤† 3âWß™í;Ò™øüÉÎú/%ÿL@Pqg´­äÁh{ÁÍaqÑým ¡jnjɟëÝ›é.{<×]3+©|8Ó•mMy”ŸVôrT˜÷çl8ò“›ŽrqKnØ©éçôøËUcì’òz ðÁ^ÐcIcü+DƆ ›¥Âgœc<û¡·úõq.é”À‡©^ðëE=¾€}w¹¥0ü‡ÃÍà=;®(Ø]i¥$]qÒRÿpÓrÎyhéç>º…”ò—gz0É6Í•kÆæ\=ë‚h|rÜï¾Ö¤SNZ̯º²„Ï‘dÊ›T=ÛSùdVRüd^R±Ò_™`þë@{ÞÝéîœËÿ»L&øPå“=ew¶Ì ‰‡cBÑá(Ÿ÷ïYóó<ð1+†ºèymmôÁ÷}ºmð£—Z74ÆïXêÞíÛ¡é;6h2àij¿Ó‹ˆ>1ÒYþòà÷íÍEGuûÉK(Ûu ?ü߬C}ãûÙÞÒÇ~~îý#<\4à3he—Ý­uQ›fZÕ¼þv´«ðò .áW*îg7;ïüŒ´áEHEHÑâdûìc¢w€Ú^ìoz5*ʸéd¿ý#Ж}.(*¼8Ùº³ †ÅûÚÊÌ @Þ„jŸL‰ +.M ‹¯­öÕ=ÛÒÃßtåßÔãcƒ£vŒ-Å>^Á¹1qé-]Kêø3ЦøË“]à—óä;%5犖”{ui•êU<Õ½ùIRý£ +ÿ³ûîg?;ÿR°‡’Á®O>ͯ{sfÛD¨ù hŒ- ð Ñqþ©®Ü++ÊÒ»;hˆ´î«ðÕOÃüЏ=ÀsŽw†/öú§·ð†Ÿõá¼ü¸ö›³S G°7§´èä‹ë¨ÄYQùÝuyñ½](2Ô“½¿ëå$]\;ši%GåS‹#WãßßøäÄÖìÙÑ…ûfè»=cCܦúØ«¬áÎü›.aáŸâÆÌ*LÚÍ}@WÚþ-ÀS1‡.\ñ¾W2ÛSûÆDüpjÓˆÎZÕ7ƒFEÕOFy¥7‚í p/'ïÚTWñý/€Ú³!óÆE7€µ¾ýÑÙ ZS!ÞOŠŠo„™ç‚ÂÔ3Ö›ãÂôó‹€·YÖ#’¹•oi¿þci’ôÙ‡+p>y¬½ð¡‹z{R +ø”Þºè]²ªÇe3Ï`Ò® ·ƒcæz ¯–• ‘ÝàH'¯ü™¨!ö”wõ“Ÿ\R5¼6´dœS#âOÏŠŠl(k^n Ö¼\ÓÕÇðjãN9e‰[^rA~ïe_w³óv–ÆÎõ—GniË_ý=†¬ü÷ ±¨E$ì8H`/ÈÀ‘ÇMðØŸ'Z³¯Žr³o9·¶ ¥/þ"4ÎkêÞëÙ—— Ðôu}4“å˾rßט¸n¨ŽØ´4Ä}Àþžg·íûšVõqléæh-߃تMkÕ«M (fA™õ`®¯èÎG/¾æp”ŽÙµa³ŽÌÿx4‹Å‚I;úŒæ³üä$•Ú:mi°>rº§2|^yº¦F%mÛu zBÚ’®)~ª»æÉ¸tgY {³øú5#<~RRzs¥¿&ò[@Ðyä­`ÑžÖŒ‹žÖ¤‹ËòºÈ6ëÐMkZ2¡³m¼¼Ë³ò¦”e}s¶‹YpÖˆO:i$$ŸDÇœÔb_ýä¢|8»,kLصPJ­´œ G9E[rù|?*vð€ï|=Ú¾?ÖQukE…N\ˆ. C½ñ¶cß;¸ QÍ“yYݳõ!Ä»99ÝßQÿd²úö‹§•±nF$®k`q;z +x{ˆV·Ôœ—•ß™é-º;Ù ø~4zÓDi˜”#ÒùÀ¾Èê¢~—–ß™ê*»ïçƒÍõ7ÆÍ !Sš³¬H½°kAeðRÏÚ’NÏJr®y çWrnëjS¿ú©hŸ ÝV÷þ´Qúò_^מž1ÓUpu²=ïÂ|èöloÕ£ñžêçaÅíªªO¾{î/?®ìЋ)سÖÄ.ôå>0âbN÷‚ïw_ŸX3@ãøäËåonýäà=ùËOïÊŸ˜ŠžíKžyY h`/þ1ÎÏ»¶ç"WOËžÍôÖ¾Ø0"rï\°cBæîÚY@$z+õ6%Ÿè‚$_í¨{¦$e\ŸêG¯¨R•Õ)Ÿ]¨’ïG3ÜÝ”ú5=4~X”{!¤‚ÆÌËëcdu'£ͬìK:ròÙÉGŸ­˜ÑiÃàÛãÝõ/6ÌÈì5yiø”(ëÊ„°àÏYIÉõ5mýË>@ï{IuAIå½;:çëÑœôa:fÛ OÜP?š¿»=Õ‘yoË„LÙ² +̪ëjdÞéE,õïq:ó«¿¶e€& +’ï ·çG{«žÌ¨êß¡’C:&t\Zód×(øç, õŸPKËæÉÄNc¡{xAP–um¤3ñÜŠ¾.ÞÎËñuä>ÝõcªF˜/£p迦š1ß‚ðªÀ¢›~DÖò $fE…ŒÝ2á2>ùZj7Ø{6LƦÀ8umÄ';2õ‹‹P²e&-ªqï?¹°•!tÒ„¸òæLwÕyèž_˜t~˜xa[ ‹ÿä A§:k…ºë"¾º¨õ{6TÚ¦»¡C$Œ¶çßZª‰˜“ƒÂ×tMÉ[N*Ø+(½ìaþU<\¨}±®@$ìi›‹vtÈÜ`gÉÀ¨øæ¾›¿cÃç­ Áß.icG%à§Þ¶ªÇÓÒú‡^|IO*œìFD®ª¹µsC´‚Ð òMHQ1Ö–ÿg¨¿òÑÀOÛ&tÊg±rUSórUÕ¿oãâgz𹓢º{nVþ}süY;%éÌg'µåâb'¸6zñùm-6ý3 K?ùð%›VHœ‡[|ÕA/¿æb•\]1¢Ò×íÈ+Ú€›qeßÇZÙß¼ÔÆ ¤üù*þŒ‘’vavüt×Ñ ú>ÚÊþ~”马XÓŠ>yø¬=;½n¦ãn«náׄw£rN¸„`@ ãÊW4eU÷CÊÒhàý¾YST?ß7CÞOTD¨9@º¶úÿ³÷ž_mgÙÞç¼ynß¾·««»ºº+W¹ªìrØÆà@Î9ƒ„„rÎ9 ²qΉœAH('„‘ƒ$”³Á®êî;ó_ÌùÎóÌ3ój^ÌZú‹í¥%$ÿ$ýö9ûìýýüÂ9a5­ríuÉ S{êWÖGù?¯¾…^_{ ¹è™Âg'æÞíaçüIÚZs- â£"ZzWFÊ6<,ùv€žüÇ Aþ×Ê®ª5÷à—d]°ÓÐÌŸÿ0$È>UŠ–žVþhéþÛß;˾\xQÿ‹[A¯ém®ø©ôâçÿ ¿øü¿;'ÙÈ –³ A“–^•ü8û øsË“ú–{0W–‰7ŸÐ2>€LúÄ9NÎõK¹UÁirÎÎâÎJOíuÇh〛ÐRJôÏ‘·@~姆ոüW¶k¢#w-<üÖ(-Oszj”]ú§INÓö=}ŒxÛúvq˜“ñ];ûç)¾8:Ë¢Gͼ6ë:k@ýÅÖ$¦òÃfsÇÁª€e›D¤+;³ÿjz\tÊ>½Ò +çz7ÙgÿMIþ%¾Üù0M÷žWP£Òzªš}SufièÈ)NˆËKŽQVw†ßàV à«}¤dç9×9‚HÉ™ÎqÌíù%?XßTüd} =éáÖÙ&˜%K¯0·úˆ7Aü~¥åäÔÈ5sOkOIyÙX~¿µ«ï”¸d”Çñ¦s”šm¾9³3F+ö̰jÝ2nubó£†o7¨¹© ~å-âÂâãºÆ®‚¿ÍÓþð›ü¯Êæâ¯=SìšÍAfõ%îBÄ$¦úu¨WI¯tIqY¡°e–c„’æ—Àͯ·Öû©ÙQPÒJã&6<ªã!í£øÛ}Óö¡¦‹®qJîö(»ø¥àω9B¬"Ûöš­~.¬b¶ö6<­ÿy˜–õoA%§~gšQ¾|°KÉyKïзg".-‘Š*¾·O +êÖúñɆûU?Ì´}»ø¼á<ГUA5꘢I;Ë¿WܯJò*Më}¤[ëoOî•~7ιó7Ë£’Ÿv Ԇ؟>û™6)®úagŠQíRs·àiëïjn^¸µøvFÑQôµéY]2`˜¦WœÂû›«.­ó ^u Ñ#ãÖ®¼A\ge5¼óW¯’\ÐqšÂfvGK-wêhÑy.Õ¯ga£&ÔÒúÕ>tšµ—|Gû‚˜²)¥Cw¬ÆëËâ¯&Úgnn,¶u;ꊔ_ïšJ° .#  ‚ºW´ø{a}}Ýò´üëaDÒz?òж3÷Ïæ‡…ÝèmºÒŠð^o›bz䂯µ^ìeàïí!èEÃýÜÏ”­yTJ +¾BgÅLí{b½1»Ü/åT8z‰)ÞqfEHÍG:&iù–çðÓ³j¿µ2KWú(¹Ú®ª¿-=ƒãëŠõqÓµÙ»M—6^c®ù¤ìêíARúú[äùˆI€ß™ÆßqN ®Ú†WÜ@k†TÔ’ˆŠ ñÊÅ]ÈIãý†+A9»Ö;EÊŠèfù8¯->ukyÃ?èpMR²×A>—‰ŠþTq‰õÝU_Ï>ªþÚ6ŠMÞF]ž=c¸Wu2¬åÂ6Gi¹kÔŒÄú›~ «Ö6 üíÅ\õNÑJ|rÔ1&npL +!ó=øÔ…7¤T¢»Õ«¼×ÑwˆWš›Ã:J¹m~eõ5ä´m’V¹8)D½•ÔŸT|땉PŽz‘s˜”í çÚFð[£Øö)RzPßÂX죖š#¯/¼Ä§Ÿ 2Vß4fD5Ø’ƒ%*,b¦@ôOk¾[|Ñ”R·‰vd"‚[ͬͳÑ.6gk¨!É?)Ž%U¾$gÿÉ%c5î¯t> ™¤€š]»6ˆJ™ßürRtýkÛPÕ…® {s<’[JHšÄ¼ O›Dd·ŠW¿5Í(XÃ¥,¾ü’˜ km„™oz†¿´1,l°O4c}3‚&¿‚R´5Œ¹a}ÛtÄÎ¥–ó(Å8ýcÄyãúïý3ä"ÀiÉîQTê¡™…òéHµ6):uks-±ÞÖ:[ʶê¯4-¥_ûDÀ´ +Ï ¹,læ¼³BÊKNñ‰>qÝÕ¥at¹Sl~A¼¬ënúYÊ+ûJÝQq:>Ç%¾_‘´î-ò©5©`[A.øÕ&éÞ[âsv&9‹ j€Öõ<Ùgà£ã€I|FõüKÈéÕ~Dòþj×ëèbÇcŽOYÅÞ\!¤n ÂÎ[žæ¶ÕSòÍfOݶaN±SÚ‚]âUmsJÜÓ ¶‡‰·IÊôhZi󯧬¯j¿]î©þÞúºú'û!=$gVïjÙÐÄ5$™ Î#oFv¹m¼WúmGágëý ¶qLòÊ;ôEÀ:9ƒì"Õ}ÈOêΪ¿y¥¢ŸTÔè›Al}”ôW¸ÔOïA.~:ÍÉülûül@#Â.¾Fœ³>©ÿ.ø9%f¤U”Äü•>øù7 ÷ «~´¾Â'M‹Ë?wËÈ=Öðaa³Ê9»³1;7÷¤üsmkæ¿y䔓ª•÷ѧç_“RÓŒbŸ‚^Öð`ÎÉÄüg« Ž®:¦èñùŽ—hÇ ü­íA|²mw5¢àÔÆ4ŠWÁƒèŸAN, ào OúüúgCa}§pwÔµ,$'„äôª ¨ [3\¸±“jí'ÄŒ­|Ç(*Ù6Øx~«·îçåWõ§ü + ÛæDÔQÂßGœÔ=À¦º¦;CJ0»z~S@MÈ_é­>¹9ØpÎ''ÇBn hú…^BŠcš^|¸$ÇÌ\|XC(pNBSfŸý¬}Tðµùy݉ÃeI§CA‡*ºë^|CL ë%¼ ŽÇé8ï41×6 ½æ›Âex¥Ô<¯¾]4Ö^ñ£¬«*Ù§`Z!&¨a7Dg¹Ä]‹ˆ»=IÍ]èÁ$%ÖRÍÞ{’8ïã‘ÓKÜRF àÝʈ–yoa¡*Vå5â¢å ü|@ÇÃN +ò¾{»ü©å~õÏëý\rBAx–O‰XÚÛ7@¬Ì½£§%Æ{À($x”ä|Ç$ŒËús[cä<‡J„v«;8k£üÚQÚ'”«c­ðÍ!Nnèa×*}ñuýÛ&Ý­¡”F¬­BóÍ-úgIª.ÈO ][B&/nJ€ëôé)5˽çVàç¼zÊkh®ÓíÓ´B—žÕYq7GÙëý´tÇ#Œù ƒª>* €|0p ‰õ·GpÉÛC(P/ gý“ ç‚2Ô ¿œœçWŠ1Žqv‘GÉ® Î . ­Ô%çنN¯¿-ýf{qÉ/mÇ÷%ŽÉfÔâ;FÎÚ0³Ô.£nãSWߢί¼m<­é,ûBÝVð™ 躈^BÝe”X^ Nî7|3ÀÈûì)ûos \£”u[í÷2néŸVŸÃÎíé[…N9¡Ðú®ü§í1ÔÍA䥭~âíÕ^Jîü[lòL[Ù_üj"2ÛÌYy×”d}Zü¹é~é—¶d’GŠ»TQ‹ý*n£MÊ©ÚçÙåí$§J³M ’—{ê’µä}6Ó‘ûÃjòŽWÎFÇ--B§Œã±äœ åj:ª¾Ô´e}ºÙ×pf{}mþUÙ –V5ó©>éW5cCy¥z^ßYô}{ùß´my±>)ü>¢À†5-ä…פUWÅ_Àþ]òÏP‹v†QÉ® Ìíø•íaÌU×4½À)ÁÔOñ©Ðÿæ’ÒŠÀøI¬ç|ÈrMKWzjN­ö”~kkJÞ[}@_lŽ7%íHQŽ)Tæú`]’KŠÍ›Å’Ãuɇ’\¡}Øðƒm„^êSs€W›¼:fýÖ!Ë=M-K̳7 Ù;rcˆ_ó½¢’PŠÈëØËÓªo–ÞBÎlÃ/{Uè´ýE! Ô¥—±ùŽ{ô‚˜µë‰m’Ý0ÿ~VÝ^øù½šïÿeŒ~ûÓå7MÉ‘…ΧëÊV¢»ñ‡…7˜”€0’AÀꌀ^@ h8;ÈA.%³!:×Öº9Á.Û<Ÿga–ø¬Ãå¶G±9ÿãv2^íÒ°¨ryôÉÚ'©ÙæÅf…DÐöäÈ\kÛþj÷ÀÁƽñð¢HäP3ª7&˜…î™N±GÙ~ä;ø®…‹-Ò·Æ‘™ÃÈ쀑 ‰¯6·o]°1)†»uGV;Å×›%vÀ$~C»À§KÌ×Ä©·O"®o ÕžòHÑ)-».bà59§H€ãKBàÿ=ÓÄ;Ž ô…וg,OŠOm¾Å\ÚŸø~¹ínÐÀmò*YÕ‰y-]€Y6úמ6\ÛèCçÙÇø­é§Ýë3O»·¤í„õafÎâKÔYSwéçSìÌWsþQÊb¦ÉÆxÁÒ'.™ïãç¯ôs²·†˜Y[ä۪ο½A]ûo~éWî~ü­ ’Q±>B¾½:Ä*q+š1 –ÞÑÝ+þâ1æìïžã~ù¶ãæcóšS'¦Xû)[ƒØ½Ô°”Id²gºñªùiþ7+}5g}*ƒ´œ•aêµ!|Êæ0µhk„VÐЪ—쨑Gt £oî~µòzèC  O,«¿á‚õyåæ'åßíL2ËÆvÑÎ4»^ÙQõ…m„”áW2kýJ|Îû"Ñ.@ׄnN±kC ]OWF™%³¯ˆ7–ú¨Y󯯺&ÉåQƒ„0vt.Ž²Ê¬Ãä´€A +yèÕAÄuÛ$&cGF,ôkÙè,»qIÒ›oïZšdG†Ï=XIŒ zuPI+óÎà3=²ÄÚK̯¾³}GýìõÜ;F–å ê<à Ò?ì÷&ö–›; OÅ—Ä ™… Y¸”ؼˆ›»ûHó™4..ùÖ­¢Öÿfky´¿ÚÜ]äqÝB™KK¯õ›ÅìØbÛݽ¥û}¡9!#4ÏA{€^‰Íß{ññš7u+Ù«¤”ø Ÿ wÇ9†Kz6Ý1 +»ì‘R +cúVæÎ$9}¹qNõ ðKMGÚ§[¯šÎî‚|p`áü@õb’GÕɵO ëuªO P’ÿEÛ~çÏö!tšGóðþòô=Æúdf{B\·=̯Xï#ÞZ5ØÞßtÑ9Þ”b'mŒ¶ÂWGï×'îQ¶ÇEu[C´´ÍAJÚܳ†Ä5Zç¶^!.î¼C]¶ ¯¬õ‘nlOˆ`ne3Ö9IΚ{Òt©‡‘ñe?=寛ïÊNGgY0;ÐC¶)v‰W!Æx\ØJã/[£°‹¶1èÅ¥We§ãÐëQ#»11gâò(# ÔñŸúÑc¢… Ø'-2Ç„z”Ôâµ7ˆ Ko )N)½fsŒW®»9¹3É©jùh§”é˜ÄÜ0Þ/þÒr¿à[û`c²O-D-r‹µ÷êÏ/¿Æä‡ÕÍDû *I-)ø|Œ•ö]{þgÚίmc¤·RÐ4ó¸é¢ªš3pÑîiDŠùIá—ÌÌ?=ÇÞøË;ó/‹Ï¡§=Z1ÞôŽt«Ÿ[ôgÝ£Æó~•˜1Šé1³ˆæWÑjV‘iÛ€-mjNƒ[w¿{î>c¦³äà¬<· _1s© Q;Óˆ|Ÿ +[²5»äšÁoàb4O*Nkï•}gB¤ØGé^9©"6+fÅ,>ÐÅš 'Ü2Ä>F*ž}TzÂ1ÜxÍrg@Ék éø˜¥ýnx¡ãÞºTذ2.†¬Oˆ¡¦çðsë}ˆ›n­ÁXzgšœ6ñI‡Ëí÷sétl$ˆ_‘[M‡mN óôÜò©}‚Ùe6,¼E^^‰™ßêÚ³ò(3 v¸*,²i-hm:Ò1E*6<…ühíGß ˜x„ …Kôéé5Á9Ê«£4DÅ­»Ë’öÈê×2áë#˜Ô€‘Ýthä~]¹û*bîêòh:¹)³Ð1ŽJZx]ý}íêï{(¿ü~Fœüoë½ ¢Æf†SÊ.Ý¡elS³]ã¨ëÞѦK;à ­/²¿ÒÝ»õÇ謼“Xg·—›½ÒKÏX~Õx!8¿ù3µá·e.ey²éºòIùs//»emDÛx è×BÛ暢#ÿ3˳ús>Ù]¡OöìÁΤ¹5€»¹9@¼á”ñ u ycœ] ínøI+)ù|§s50M/ +ëó"SŠ]S„4—L‚žïe¤/¿#$­¿…œ´¢®Ô\ÀFbjÈÐÎuȘeÛ£M½ +b~@/"ºdôâÕžŠS«ï +~vOC’œrV…_wÿQÄølØ£h&ìH±·ö–¸¤è<®comOPó–úÉ©KÔÛ.9·Ö¯`“ÔœF@pK©ùÎqÔ 0öN›drN4\ ¨hE!M;ß«énàç|ªé®¹´ÙO­òIiµq=¥>ª£Õn*œ ûekŒUç™aךŸ;*ÿ*oƒœTvÕ\ص8ªä4µ,èòþ†þüüR? Ä[ggÐ("Å,JHO*rM â BÞûµÖ{û‹­‹ÄLewÃ9RȈ­0ðŽ |útKÎ×ò¶ôO“ˆ›{V1hFm3÷ÏãÍÅ?ÍÝä¬ëQà2Wû¡—V{`‡_ êX°¨¥µe¥jy†¸à›f#>,´uÆÁ˜ ªð%¶aøm‡ ™nW àë3bøÂ0·pB\›Xk.5n`¡þ±*Uä˜ZÕ‘*WßÕž‹X„Œàbçã…!b®ñUÍɰ‘ Ç?\ïx¹¿Üö8l`ýO/ 기ý¥ÖvЇY~‡º:ÿ¬æ{ËÓòoRRžWM©üE<œЂjRµW…Ìܳ²q; +bÑvÙ¥Ç5?nõ#S­úV.¹ý{MGöŸæ@]Ùè«;˜ ¶3%ۇŕ^)xC_Û¬úÞ?]â¥ä[ó«Ü¿¨æ}³ÔKñ+:ØŽ©føö#Ë%ÔºgŒVâû¸>!þö˜ðö'=¤³ÿ¾3ŠÍšÚÅ^]{sŒ_æÛ:ÇIé¶Øùœ”;ÿ¬à{Cwöß<Ó¸L·J€”Ýk:;ûw+¢ @NFÅÍ,TØ@-÷¨ Y³/J¾˜{’÷Eâºï¨¥½Å£j¥:¤Äœ‰ÆëQ5¡8nàBz"¨a5,¼l8+¤}6Pê¼zV]FÉöÎPŠ}3Ô‚°–ÓÝ +J¾cšœårj‚ºîŽÍÜõþÆsòö¢“½Ä_û¦y¬Í¢˜©EÚ¶ÁÚKõ¨D4¯JLpLàR×zŠb\úó+ù ç80Þ½Nk/+ÓðuÒð}jG!Â,÷ÁÎÆ;·þ®ìûµ7E?øfð…Q“€·t=´OR ×G é±…–¶½¥Ö®° kIÅöѺ‹«=_ºå”|ð{˜©«Ë¥ie®rË=Ê.¾SÞFñªø°°‡ÙQ`3 +LšSN+ôjyM‰{jRRfPÇ{Õ¸_A-Þ5Pk÷Ì â¶”™EzœU²kí|¶1M)[è…^°¼¬>µür)¨g@Ljm* ~y”_¶Ð/ªÞ’v0VGéõª'µ7fŸÃ“,/jO;Æ‘i!¡ä·õæN?ÈÏ[ŠœM!lŒÌutùu<¸WC¯ØšÀÜØE^õëõûËÍ-¶:ßlN1+µOPg¶&MûKíwÿ¾Õòèpž‰öOA“7_eýÕОÿƒµ³£ëhÓ½%g*»j>X’´ÿÓÑÑs¸,lyoa’Cʦ"÷Xåå‘ê_snbýí¥bÙDGá›íÏ?lv,óÛüJLþFüœ_ÇGù5"´{FsÊ8UëCÔŒå~fæJbnçI•CÚŠöiZ)n iyseñ5üÔÆ åöÎ4¿f}š±ø’xÝÚ=¨áÁcsB2¨QUnÀYöJšgŠ_e'ÝÙ„'tÔe×Dã9¯s'¨Oô#¿É?̓m ¢î¬õÖžwNâ²üjAÓJú¢}‚œáùØò~Õ1„Í84 +HûsÍ\·ŠY½Ü‹KÚ£¦/õ7žž{Tü¹wÇ7EÌŽ(UqC39 +úØ;E+ôO3Êö-b–S†½éœzB‰Kè(%^5µ*6Ë!¼Œá×òà®>4hêì˜:Úêf|XÏCÚ¦à—2ä ûê`ãÒø<ŸèR0ÊB:Výá<´11Ç/ÃÞ±B/dÀÞ,xDÓÂë>Y ÜØš`W'j©[Æ­ñIÑwÜ vFà×V_7œŽë%ìƒÅ®'“„íš¡€±XïS0«v&0·ÝSÈ\0ÆJUÝ¥g^Öݺݡä!-@ã9§(eˆ•96æpQÄéÙäå~xŽcz5 £Ví.v<ÎvvDL-ü¨)¡¡Qöñº ï­\rÄÈ%ùT¤KɃ¬³ª½úî».u—À§£}*vc›åœÆf†œ&Pƒ8A£Î=MÊ k÷µµµÔä"ÛìšåYÞ7 ¯ g!e©óqpQ"»[ý•æà;µ„4KX!¨Í!jG#D;ÔŒÓøèÙÂÔ}Îà]äUdþ…ß[ú@»qÀï0âsL¤KZ3¨§ÕxcUÝÕáTÝ»»2@¾¹5É(›Åܰ™‹Ý]qc‹Np–q*å MšÜ†Ž»^c‹À§!x¦±w<Ó¨[=¦hÔΠ¥£ÛcìêXç×lO0«~Ûìxµgås7‡àìýðK Ï*®l V¦ýºÂdüs§õÕþªH`“ˬƒðì I ž{ Ëܪڥ©pwžÚÚ”íQ‰Ñ6© |_þR/öŠMÆ«±Ïˆa;ЬßÐÂðh%$§JˆØœ §¯a¯.8^"ÞÞcæ­Š<Óí¸¨©• ê°È¥¢ƒ¼œf£e9Æ…ÕŽ)Qmœ]h§f:F1WCFZ…OǨܙ"ÜÙèC\PJò?U4§ÿëú»úÓA£¶1NQ"¶ZASbÌÄŒ¬ú]=¥Ü+Ǧ¯"/-½Á^Ø¡NÇ&m £®Å´|dp†RÓP˽RTæFOÉYÇäœs}#2ËE¹g(y®iRv@ËDLìÆD¼X¬¨™Ò`›@\Z«4²x¯Çkéz´5Á*‰™…T¯—%•|Xæà9˜€†Zé”bní©UQ hCäµÀ ú–GŠHÝÓóÐÿXì¼ÿa®ûqÔÐÎZ®Ä¥á·•ÍøÕAòMÇ(òÚöì2')a9­jW߯ kÅDP+ëÓôüݹ¾?qf~yå]ÅK=µç&%éL~Å«bV¦8UÖ>zNHßÕ3w´E Œz¿ +Ÿ½Ò_^Ñ•ýWçTõسio©¥%`SB&sÏúñž[ˆg{Û§Àem@/o5] DÔ]kÇÃIÂuËùÄùà=s33¬æ@ƒJj‰OA̳M@o¬Ô]Hœçx?ßÞŸoi¼\å’Ñj7†éë°+ó|ZÜ*`o©ieÆTÒÚí1utøçZE0F‚³-‚Èb[çÙe’ðæF¹¥Ú·Ä«SÝÈ>C×ýèBGW(±–•ŠY»5Ú˜·pÈËÍ­»ÖG“nu3c¥vzm[n}èR3jý:Fµ_G«p«è!0Nâ‰s+Ç·f(× 1+fæ ÷¬Ú®•K½š³ý³<`Td–y¿ÞÜf—“Êõ¡?xä|8`fîᚨýï›\QÈH†xT .ÏÑj?¬‹$ê§ð\nÅ…ßëžÕüºÝöâuq~½äœOÛÁ÷ª% ßp¡>]b $2'áDæš™.•¾3#hpΡÛã¼òÕAzîÖ8­`GΩ^ Ü\éƒ]°"n$Žåùt²O#Dz¢&¯ªæÓ´ƒÏ‹A¬òjç_ÃÚ9ÇlŒâS­¯`?šCœŠ8c¦&ôV=ÐQ5aÀÎÑ9 74+¦$Ö êHùÞÈ‹ØT7ˆAÏ ·Æ«âÖG@€ Yx^ôÅVÉ·¶¡Òoí#å§½2B¶Gήö¨0·œSå׉ðn‡«ƒ§lcU¿8eˆëÎiÄu÷4>3¢Óv—ºž%æ]ŸdäEÌ"ªM +¿a›ª=ãW£@ŒáÓ·†Aþ‡œ™XSÜê•Q\*È㈞V#Òö͸Ò—»1ÜxqÄcðsbNó±Vè·Ž FI(q_ß òfh™83m­Ÿ”bgäù”RÌÜÙµ=Aɬ}Á¯b#¼JôIàpNÔÒuߥicîLKP‰u‚Ó"$¨Ñy`Ìû5äò°žþmUÀ=\áRý:BéÆhãÛ$>+¾ØÞÒƒ:fMHÃn ¨È%5£.bhåZE|0ÆŠ¬¯«\~»`—ÒP©`f~Pb BZb•_F,Š؇13j½jzU8qÿ–ºµ=Œº +4Hš[…ÏõÌò±EIûûõ®·ï7%÷l3„¯‹M¬¥àÒ²Q^=¡hmymmsÃtzlöãºQ÷A\ ÂæÄ½MzÃÖÎ'+"AXK¬ð«‡ËiE.91{wŽM8Xo{¢zùɯe4þº)î8XzkM$-˜65¯ii”‘íRÒ*þ¾ÝÕûëfÇëÐ,2 ‰ûk"áûmI÷þšX´»ÀBî¨ðY“„ —š/Ü}³t´ÎyU”Ê¥<` ÃâV.` ¯ ·§:«Ï{4dܯ›f@ »áWòcFl×ÄCÇô¬†=0ö~µ´·,´·GÍ&àžÜ•>ô¥í1j¦[!‚û•ì@â˜bb]Ãi "¡}–ßV~»9Xý“OIÌw+©^%³|oNÌ|¿Ôõüp©½+jæcv-ˆ*¿ªƒá”uÝJ Ú«àÕyå”<Ÿ‚QòySÊ(ØÕ‰H m -%\ž u«[¨>uw³kFŒØ‘1Šwd¤ìÕ~ÌeÛ8ñ–GÁ,Ÿ+Yëƒ_ØB]ó*¨…€Ïëmc”¬õlòr/ì¬_F+Ž[ÚÛüƶ]F/²MRrÜ«zŒ³õqzÁB/êÊò >pèzQ¢­\JÀî>Ì£äÖ:gÅN­Ð­d”® ’3ÌÒ¨YL‹ÏsqËoʾ³ÔžvN!®¯#¯øÕ”"ੵinåÜ;RRü®_É‚­@Ïn B.øäï­¬Žê„=C÷èñ^jkuh¶…ã× +‘‡KLø¡•˜5‡Ë|ÚÁR[gÐÐÆMJqIÙÕ‡Köù ·¬éº}¬æÇäÂÆ`ý·S¸ jMPßÌ êYȘILßZɧ¦»d˜[ïàgÿmù-ä¢KJ-óªÅ¤Ù^Jqüú'ï…} +vSXE. ÈAÀy! m·Çé«È”Ð,h“ `Ö7Ø«ûÖf~|±U1 i tT‡ÏwN۪֜<µ·ÔvoCE¯‘>*?áT3i`MÊÚ§dìÌЋÃólüoaÛ‡MÇ9ƒ*Žè¹€É0·ÂZ|ÖLjó}#7‹¡D¬(ÈEöqbVâš>· +—m›€\iÉ¥aéQ +a®iv™m +skáMåwƒ gb³”ŠýjÝ¡•™‰µVøô½>0&. À¼ +F…CJÉs+ø în-ø}XÜ(Ä}ä·nåMÃEç$&+ldCCf&hìjw)žÜ·Ë:ͧ#£ì‚Í> Ó㊓ËoêNúfØ•@—€ZÇ­Þ–ñkL/q—ô ?€ïú%¬¤—ygèµ›ã¤\Ð7Ne°!lcš[±5ÝŒX–àÖFÄh0A¬2¡[£¸b—‚ ñèš áùö6›œ[»2J¼¹5M/t~¼v‹–ÒÐJ£zZ5Ð=~«äZBP'¡9¦+˜›Ãødwâ\˜œœÒqá;SŒÒ­âÍZêhÀ7WÞVŸÜè^òÈׂlÈ›¨¨…‡u¤&:'"Ç,<,`¨ ¼ñfÌÀ„øœ:Û0ñξQH{¿þPêŸå3ÖG—wdÄâ€NHŒÍu´Ç­mw=Jz­¦»è„únþ`l6úUbòRâüö89/±Ž°kšSy<:ÛÌYz‡NRuT|;ÉNû|õ <ôMõ›ªoìãè;Qµk‘ö,|âûeÿýªX²£`Õ¬öS³" ñ¶qÂ-_âx¿– h8øƒy‘Ô°{~ãÒ0ëBó]Ïw:Ä\dTG.i0™[MI®)V]ÔÔÞ²»ØùÐ!5ÑÈ#ì.6ƒ<Ø”ÔÁo…LøüÈ,©Ô)GÞÞ’R ‘…®@wÝ,òðûËwßD B¢GJ(\~]uaõMÅ…êå?=€~÷;Ë«ÂK¿Ù[…„tð í¯IºãV!{EÒ¶kð] +|õÜËêÓsÏjØ‘’ ö—Å|ywñOcM91 ùÁʧý¶ÀD…ä&ëkHA+í¯ô»ÿÕ‹ðQ#£~×̨é¹[£u§Ü3˜´h 3žå"€ÿua»Á­Âd8§a©‡fS|.±<-ô>àÙrǹÈ#£•¾_äbÃzl¶GÑpÑ%‡^>5ìʵ rIH#ƹgÈy)æ¦OÍ…8å H)…ÀÙ ¯¢¼3ìŠÅ—Ћ;ãØÌˆ‰^»·ÈB\ Ðyð¥áѵPœª‚cŒ[¼ÙKº¥êÈÿÒ6\{Á?C,pNR +\*A㦢¹2Þܸ5.€U\¸sŠn}Óxfuq|Êgh¦nËEÛrn•[yôûÛ1·úAGÀÐÊ´O¢o™ŸV~瞦•EŒÍÔ¸µYhO¬O,çÔxŒmâÀl« q_±}w{½·îàŒ  +bŽŒá²Ëj Å-e•‡ÕÌ*ß 1{ykssmkŸPò¡­„ì¥d/¿†œYïƒ^ +ª y! >Û¯Âä9e° û)ۣ팭v)>sù]ù^¥À+cW¹Æ‰¿Yø´kw{|³"Æö4£(0ÛÞìŸí~˜ë~0· +2RÞÜóŠóÖwµéa€â˜’ ç^.npÊÜr Ö-'Dôø +—m} ýiZXøÙýÎç Ï!7¶'èy3Ý埜Ա¶aä-ï4!? #•ûô” +·†Yé×¶òBsíí6)½Ø6IÊŒ/IZw%âð¬Ô30!-¥* aTFL|Üîòƒ±¸µóñ¡µ­ûpQ,:X±C6b¢ _ýjBéZ?ôŒWǀą,Û449 ÅùõL8`grØÜÒœ{2Y|0œç1fJÕÞbû]¿‚Y¹üªæçiî­5täþU7ïÜJOEæÁ2ƒþw{ûkÈY^=u°Þñ"8' ;¦©%ëCˆs¯*ZeùT¤ + Ckcf.jª-ïëåhúþŸº7Ë€ø†k.j[r¿| ½ö¯ÍU×>¹‡J=r1r¹OG¯êi@»³"z`y.rkÛ!ŧ¹¦(™>9«|o^Hûu™Oÿ°ÄÁÅÌŒ:Ÿ’Vì›áTÆ |TÜ(&•œº˜ iX ¹;Ëôìºõ¨ ¸ÕaÊ«áCWÆð7 ÏêòÊi%{f>ÞrrLßÊŽ™D€=)e!#63 Ãf$˜ÔÓÒ°‘wk8€YXÅAµåS²!! ©`þYʼnùG5?Þø €=Ô¢OÛÆ +j[(AˆÐÝlf!Ã&B‰KŽHq–š¹Øƒùî'!Óý§; +Ø?!Ô9,Ðî¥ÞlÆú@Õ¥¥7¹'¼ ¿A=éˆ.w½pê˜D}¬EôL±|Sôï.Ã%EN"d…5jP×}×1NÏ·ã’gV|·ø¸ê; ïs#ZFuä‚°61†DÏ´54Ó#:.tg™ºð<ÿ«ùgy_Õ øîB÷óØ|k‹_džxU|ÈØ&º—3Ò«ý²¦ÔŽVåc0h’öVîõƒ|ýÀkjÌ]]~=áSÐJ|3 ý´,¨c‚Y²9ÄÌöÉ›±¶qNÙj_õw¶Ñú_¶†ÐW¶‡™ùöQ~_Æ…•|äÖ8=wñ-&)¨s@L¶GàIöQbšWͨŠXØÈ½‘0f¹û$hjí= ¸‹½»q p:É.¥ä¸”„¼½9:üÃ’ÆM|¡½3jlaZ»ž½íÒó± NÖù4ϽÜñ‚í½*4¾ÐÚ±·Üv7¾$`ï-u>‹ÎK„‘9>1¾À£GÌí×¥–{ÿÜäðbfL™}ŠZºÜOM[ꥥŒ÷^º <$ÐfÅ>5«iQÐþÛªPàŸaÕ8'ÿNãïl#“‚zfcB?´‰ãw‹kCˆÛËĪ6hniÛ±2 +:rþ‡ó-‚÷ A|NH²I‰Yk¿lôÖýäjºUãJy„÷ËÑû‰xw‡ó­ë›†'ùe˜Ô€ŸÑ2«v-§Þ«–àüÚž{¦“ÔˆÐQ£ï9Û§bW‡tìú¨‘‡Ü5‹©0ÞͯJ~˜â]ùWsGÎ_Â*ÈñlxPËÇ{Õ\˜KέqM +!;cÔ\ëÓÒïm`_Ýcø[¡VEpj|–Oß]³#ó|ÈOõ-³&l&–zÕu×¼3Ugìcõg€vÍm’˜éÁ+—’^½ð®òç•¾Š³.)üNÜLomø9¢FÝŒÏQª¬"^@/&íÈX¥>u É£ìâx5Üí BúÜÓò¯ÍÊ¿0?.ÿŒåº½ù¶Î¨¥™··Ô,Ø¿ûÄíÃu!'¾ÌBÙÇi9>µ1·Kvñl•Üõi8‰9Ñ{+ݽû+-]ïWølÇ4*þií/q½ä¢öû1³ä~Ø(dxÕmô°±]1µ¶ì/5·ü¶ÕúŒ¬äÒ€–Óø~µ¹92Ï%ø ôZ UKü*ZåÞó~‰KÝ_ 7…uäÊÍ!ØY×4.ãÃjË}¿†^»2Pjµ·â—íDð‘ +ø³uw¶ûqHßÙí±X ¶ºz@¼R÷Œ0K¿0ßG]Š‚±ºk¤CÃ%2Ë@oO`’=VMÐÀ»&Q·­¯Ê¿7>ÎülS»;K,Šñ¹PO÷Íâá|«x¾½Å§ã4,ôBOêþYÛ™öïË/ +¾~¿È'X‘HÞ¯Jšw-\tâþ娚 ‰ªi¥>9ìªmri{~Ù-'e…ô¬šË"Þ‡•fÑžEH +÷@¯¸Ô?Ðæ{ /n‘p÷, >Û‚¼Jõþö+(…a ¥4¨¦×xTìšõ1\æR/ôÆÎ(.;>DŽ٧ ×—ûj~±%Öú– =ʦcŠ]±úu;8E)L‘ó6ÞÕ]TŠ®¾ÑSqj×, í.¶w…-wï{õ-t»‚½1^Õ;ƒ+ñHÑ·ÜRÔM— ³=‰Íq©%d¯®•kîY›¹‰kW{aIÛÃØ,ÐÎ!ŒQJ…C†¿ãV0Ëã&"n¢×yØô…E_.wi )õÃfWOÀ(À'Ö‘=0.1¡+€¶«‰˜…”Ø|÷‹ø|{·_C*vÊ)Ž©¦kNêN@‹º³o¥4®±‰.5"Å>¸´<û`µëUbŽ™ølâ|'¹Ê¯¦”,±q‡k"ñþzÇsY@Ø–ó뀞©‹¨Y5þ©¦Ûs÷³¿œiIûóroÕ™è\.ts”œg¸_óõj/ü¶sUvhifïYèõ~%Ð “ˆ¤¨ Û3I˜{síŸ ]èÇ^3¿A]¶¼ª; úóÎokòá{`å#Fì`îî½]] #ªaT8Ç!ç×ÞÖŸ²÷£®ää܈†s`fÁöæùÄØ,³;'¤ìÍÔ’ +Ý3ÈŒ¨[Ÿ£7€1)ÙZ?¤b]2À·È‹öÁÆ3[g@\æv©˜ذ‘LœtNcr@fV¬±O],e–9§yõ!U#qÏÛÂ3ÈOªÖâÏ&h×þà¥~9ôp©½;hêêXàU;fxõA}33ô Ð#û8ìòöxÃEû42-b¹û8lézàÑñ°a“ˆê”‹P;“ìòˆVˆ iÕ;SMW\2T²WEȉ±Ö²êJB¦WAÈÝE¥E4´šÄqŸžâ5Â9írHµÛüÊ>üÕ…'ðŸ¥ÂÜ?JyYŸ¯½ª=7‘Ë÷-l„OM)²OÒ@ÿ5†´øBž¼ÚßxÖ6ŒNÏ0+ã€w¢ÆÎN¯V„Û#¥¯ö¡S6û›nG•¤‚˜ŽZáºe{"q­/îvHÍ…;F9U†{M?º§qY€ëûKlüÁ›Ð`ò¼JRYÄÄ‚g…øùþs—¢…ºØƒO]B]sŒÃ®GLäš½E&vÏÊ$…gMÛ §nM¢nFçÅ<ŽÛž@_wNanäÒÝyü·M¾àÚ¨ÍgäÐmjibÞG0;Á¸mZëƒ_ž{Vsqµ’Öݤk®à²L¯άã +7)ƒ†fÖæ.}³§þ¬gªþ<`¦¢˜…O~¿Ññ|w^ÈÛoºâ +=fáàÜ +ÄM· +ØžXäP"®ïÈÑiËÍ-€šƒ&nSd–C8X¶ì-ð¨1±2l Vf9·™õŠYåšÄß\{[{Êò¨äôb´À xÞ§g$®AAX{·Ô÷a?úŒBÖÁjkWÜ$"îX ¡RîÁ,ýaQÄÞŸå¡âf.Ò­¡•zÔ‚KÞFõÄêVl¾éΞ•Tqhe"÷ç”sgWHɪ ©h¥§!¦¡ƒ2JÉú»ò“úö+Ÿ®>-:T“‹ãóòÁb[{ÌÄElM®,¾+øÂ+­»ÓóÌlø¾EH êx¾Äý`œøÁþøåèTç$ˆI))Ó-§ú4캘¹…™3 0~½lµqÁ#'çíÎ +»³bªé äc7öüÆ;A…oŠ ô*¥Â6ZyÁ9 Iq+Äh‡LÐÑ· "†NÉÖ$» hî¾U$Ü_pö–ø4 Ë8>#±4ˆJrOakƒ‚U[Í7[½Ø´XBã©iU{.>Qã!Õ1N¾ã•“svgùبA€I°º{“ji¼%; ô à"šG%!l³‹–{„eëƒüZÿ æ—ã²ô÷n±=Tyfg‘Ð1ꃆVÁÎ%×;͆D4BbD-À¬¿Eßçg/“äþ¸2@¹½|péøH»”˜iyRõcHE*Œ› û LÄá"ë’"2Í+~\y‡K‰˜%‚袘gÁCZb!hÓ[!!1#⨓ñ¹Ž.ç §nuˆœèWâ2Ã:d¦gšª½çKÛ,Ù§¡Vûõt(Ð^"–^áVsB&zMÔȆ.…„M Nw\3ˆ›1 |¸ÚÝ êp«GI-:X²>, Ø-©rñqíÙÍWe'VÞïUbó~]o}üa£ýY@˃;&©E «öL¬Æ¨óÈÑ…¶‰ÚÇ$öŽWC­Œ/¶´,u>ÝãíæU“Êãó¬hRŸvm×D­‹Xx˜Ð<]2wAŸ ì&¿†\¹¿Â­(9\¡£­4ˆ[E+Þ¥Üñ(¸a£€z°Üù,nq= §ïÈÈÙn½ Ôudt^@_€_ «Ùõï m¼}­óèB°˜1a2lSç# >¹•ì—œYìUÑK?¬pÿÜæq?l20ñyZƒ}™¼Õ¼”³jB +!Ò;M-òÍà²^Uü nÉþ|óMýY Ÿß[Á~ù€;XŸVˆ jÙõ{fzuH½PÖžó)7½ +fY@+Æ9•|À+ÌÊíqèyMgÖÖßBNy§÷ÅñA.”÷ç™HÀ¯5û Íœ=‹ˆÖ 7‡JN.½ËÿÒ6H¸˜nÅTÝ¢€¾™LÔT½<ªàwM]€•Î äu÷41Ë«à7¼_¹ûúp¥ýaÄQÈ̆Å,løn‚…_ïé8¨ ‚Zê\'£ÿ¶ÒÜ™eBö­<ÒÁ2—Ô³ê*$> ¸ZC*ܬû%ª%”þºÐÚ¼«—0·GP)ö1ÈÙÄ}l›#ä´­QN¡WÙJZŸä”­ SÜÓÔ×$)ïÃüU‘ཕÏðƒ|âa”†Ôíܸ±C¼>@JQµ7|;Á+ùhÉ«qS¡µ%:'¢nˈY‹=°¤pâ8 `½í ĵ‘Æs›ÃÐóöqä­¸¹ýntá¹22×Ìó*iʼn<×s›òÆ+¶¡¢o—_å|xèàæŠÈ¬Ä +àjS3Ë­¤û4´Šè¬ˆq¸Úz÷pµýI°3ˆÍÛ;Ó䜈QLŽÌòqÖ^øù°™OüûfsÇo+/°®ˆÅï—Ù¤wÚ¦0)[“¤Ì¥>$È´’˜Ž‹ý0O­þ&æ?6˜„Ø,*wùmå÷K=褀A@ñ„´̵™Öü/‡YÉ´¾®½5p°¿®7·ÿ¶!j‰Î²á‰9öÔ÷KB.`³ü^âÉßÚn”cs~[ +ÞoŠ[ÝJ\Ñò@ÝɨE xo¤ÿÍÞÑ2ëµ¢¤?ªš³?·%®_R3ÊÃF.´oªSʬÜ_1ß/óH@ã–íšêÓ×{3zƒûéwö‰šÓÞibÆ:0ráfNÓž‘Õ°7K,ÜÅfFõ˜;±9Fýæñ–m”_ëSÝoÝ_lfXãwWH•]SòÜ‹Ê/Ý#äÜ}C+{¹Ÿ6%Îú*¦KÔfyHÆ­zjßþ<¹b×L,ôÈp·¼rfÈ]­ «ÃRîjÎgÖ7™LÌÇ6p× &ޝÛdô‚µQâÍíajÖ¯óôÿ¶Î&îÍ«<êê [ù_<—ôaEܼ· bxgˆ¹«='lÃÕ§¢Jfå¡QÂØŸoá{tìÚèl3m¾ûñ¾µëQÐÄÃØ'ÎlTŸðÊðqS çýrûƒè¬5 pÖZïîÍs±9!cý]Õ)U{ò'sòþäæý<ówÐþ~#­âpUÈùm«¹c¡E¬32v&/q’~g~”ýݾ‰‹òI™%€cNo Õþì’¢ox?×Êû0ßÌq«(E[S¸” ^DŒ›E”˜‰UÔÒJ7†ÏlÕŸ:\ •½_`‚±Ê%Ž­{^ ªøQ­ )n¹ÛD- é@÷³kç%‚É(ê¾CNÉókùÈè¬x¸Ø"Šƒ÷ýF>Þ¥¢'®{ (€óÅ®Iø•õÞÊï6û¡g÷¸¸ë-û+­±+’8ߪïàûLmÜÝÕÎ'û«í÷C@39äØ[N&5bhaÅÌwï;®Žào†Ím-‡ë-]>uS–¡#çSÇ0ì‚_‹L ‰ö^™ çé_P¯;¦»ÄûÖC»€{Cª†ËŽÑ’ï­o³?,˜¶7'®u½^ÂeL‹?Û™äÔVmþŽ—¿. 8îé¦Û(ô¢}}- j9è+òÆþÖzb‚1tÞEÒò÷Ië>`¸ “kyUðº+íÓ°Šú`ïìß[ñÇCüÓäR îýfo}úÞÊ£îÏrš@{”.¿E_ð(™µ@­¼­ùyœ›ô/¦Ù_Û‡ë®üÇ&ÿ¿ÿ1Ôÿß;ðÿ•;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5;vä¨Ù±#GÍŽ9jvìÈQ³cGŽš;rÔìØ‘£fÇŽ5Cyÿ‹Xù‰ÿ"ö‡S§ò¸\4ý ¤ð“SYEÉHðºÍåá9Ÿ”r +y9‹ÃË%cyd&ÍŸ¸Þºréêõ—«ñhÚ‰3ÿ¹å °Ñ‰ +™Hf€7k°hþì‰ `ÓÛàñI]â{Sß›ÍásI•høã?ßÌÆƒÏüßÞ>SÇ` éx܉ïžoŸ¸z5ùì'WNdD˜øÿ <%¸òñD ^ƒ?(à-ቤ+'ÊNÀš®œÀ%¶¯þäbJjjò‰””›É'è‰×n\J¹ñŸ¯Kÿç××?>—þíÿŸ¯?nÏø¿~<±ÿÇ^$%öâcóå“iø[ÿùçGçþ϶³5Î+B]æ5*ãóü+»³œói#2¨PQ­ +ñª9[sü²èPÃw˜CÍÌ8¬„MPFE´Úü‚y ©DPÁÂý +6wfœKÈ<çîâ^Áœ¼Òý0¼_P#&üŠNÌ'iA|Ò–”ƒ5ã–A9õˆªIŸŠ— õ¸G ó"o'ý*îU vç¹EÛs¬ ˆKÖJd{!ômÌ<¸ï›ÍDØdN:5¼]›¢=N¹õ‡úŒ†$Ôè¹E…úŸRþ®n«—>7–³èã¬QŸ¸÷ËÚsa­œ€ŸÉXŘKÍÅ=7ð N–‹è4ù˜Ñ‚eˆ‡SŠù8•Y7ûJÊÊ9¿=Å)™»^þcðó\ÊÖmÄ=ô±ËÌó¯˜ÇwÇp/ŒeØhÀBrîV"6vîTÓGÁûÉ’6qÅú8ëøú$÷\Ƨb®¾aHNKËq;ÔˆÛ EÝŠö´•}>5Ç:ŸW6-Ž(®¢Kæ±XóÐÓ­?fçÛŽNæyÜÁ8‡8„e‰yQEÒ¦hA¼fmƦnße_}ÚôÅöpÛáÔtûQ|NPLÙÔY‡¬qÄtößü·›¾‚^ìD]ªŽÄLëѵW—ßß~SþwÌɹLzm„[Çü:æÑ‹p¸&£ã-¥š´óŠ(Ÿ´‰ôÉZrA½ªÓqŸA5$IÛä ÉyîT¶bPñIÆñÕ—åŸî—}³ ñêdôaTÌÜú¥í[S ßnNÖ~¹5UÿuÊνyY´—ñÕ¿*J?¥w¬»“ÌÓôÖK>MOñ/ç‚Z)Õ©ð€¼ƒð«¸0wšBРɇ´§èÜzÃ?½5!¼t([wÝ’ÆÉÞ¢?¬¿â] \FYÁo±¤Ý¢úµ×•Ÿl×|–šW4>rð Ù”v«9›<з¤!ï×ãöÅÝé¶#«¯›¿Þ™æ]J»õ¢õ Á¥Å'mßlñO¦ÆT5ÙYÑUtž{)=Ã>»9Úñ£ýzù×^³Ndìê΄MR½=Þ|hg¤þbe\¡‚âÌ)®Â wxAí )Ïéë2anƒu)šp· 2ôrÀw„5¨S‚8í¸Û¬NÙ5ñIM=f×±p»¼a{¬ùûÐÝ3¿ñ\øwÿµš3o ìÄ”ªakDpzç5ïdâ5÷6˽¸=ZûuèÁ•ž×å¼]ùQäAÓ©eAû·ÇÇ×^4ü˜˜h?C¹¹Å”«óáá–ÒÇÄÁß –: a“©2èö¢Z5îÕ Ð7DP¯,е1š¼w)Z ^ôWŸ†¿Tí…XWrÁ΋‰‰Úï‘)i=åî¶$ç9W’ÓmGóAµh?ª×ýsÙØ› i$¨GÅB=9¼€x4Ô­ ð/í,Ô‚©ŸŠ™º©°N‡U‚YÎÅ]ðè‘Ü¢é¼ú +Ë]·ò‹æë¹p÷ è=1áU¥çÛŽbî¶ãˆ»ýTÜV0nk9J‘†9À}*6摵P!Q#ágQ~htëOë£5ŸeæÄ yÿµÇT°{ ëV1SviCÆ!ªE½ÒVÔ¥lÏE F"¬á Ë…ÅÞg¹hÿ 4ÐeÉøÔ|<À-¡¼ò|DÚI†¥lÔÇ*Ú±q‹vçåÍ3 Kï?µš®Èø¨W\‹¸-y¿¨~ÏϺŒƒ~¦œjÌ › +÷ÞÂx^kÒÎ-A<ÂÄ˯J¹øW7'[ï•|²ö„}>¼5³óFR¼ú²óp|‚}*ç•Ôç<‚ªœ_ÒDx¤ ”ß &ý]fÜk”£n k“×ã6U ù®þä­ës¼KÖëÄ'dµ¸ 8Ë.oN9ù¥©9Æ9Â)¬+øè£ëôÊŒ[Ö´³ñ†{‡ºILJK‘9Y:/,Áô±Âü2Ì#ïÀåÒkÖÑÐ݆×_rO.=ãŸÜzÉ?™—%&¹gwß°'&xç²óâ +Ô%©‹¾l9°ùŠýÙÝ >®Ã’¦”qóÊ ¯¨ôº)Íðê„8Ôæ2+÷ ×÷câ6ÄÍ<Ÿšo?š±³Ï!N~ ÚžqHk“sŠÚÝ)IY|B})¸Ÿè8¶ýºñëøHçØœ¬fc¸íÀú+֑ĸèâÆ°ðljD^¼ò¬æ3ÇõÓ¿‰Ü/ù3b•ÖR.½Œò”ëô±õóꎽ åzæcw¶ý—•—%®VŸé8Ÿã_Î8éãv” Ä!oÈùtr*`ÐB&x¶‚HÛ ¿’‰º¥õ„GÙ‘÷j¸yË‚_š1/á¾Öãñ©’Á;Ѝµµ±–ƒÉÉŽã{Àoôú·P+ÔrÖ)kB=ZêÒr0ðPÄ-ªÄ€wˆ°Fš[2ß bZ%Ñ©‰ˆÑ}ÑŒ¬j!ª‘í-êÍ{‹Zm.¦QÐ?{ ½Ora£™>æ.=Ï+*øU½¨JZˆ*%…˜RD…¤m)¿¦Ê8Eôq“”G#Êû4BÂ#®Å\Œ³”OÒœ¿IÚÅ5)[—÷vs­„>z ñ¨Yø_Ö/mF|ŠŽ½eó­Ü‚VK–»æD­ëÌqæãWæ£RVÒ%¬\zÃùeeLp.ê¹ùîHĘZ– éuèéå—cΆÃ[cßo³NP¿³Ü&Â]}dØr]{AE{î¥`lC/›¿L̰NR.AE!¨•å̓‰©SÊÌm–¤mœs©Ù¶£”[P^^‹¹¥»sÜó[ÓòÚÄ|¯1éÐóQ›¤ +™gž‰O·ZÃ<º;-«H;5¬µ)Îùðò÷ ðaÜ5éQ³ÓVIeÆàà\ÌØ%¸[T½3Í8±ü¼ã2§jßX,$}¼“Wœ´q.¤ì‚+[cÜÛc¼ÓÑá¶Cª¶/ÿû°è⟠Ó³²Ó¢ô ãÄ&èûÊë†Ïž5|šœ•‚®IPx_ +˜™A­ÇÒsµßf¬õߦ­-?¦g;AÜò–M«´akŒuz8Ø‘³–1aÞ곌ã©ÙÎcÙ9払‘–Æ»/ü»çVÍW¤Ã(Ë:Ä•Ûã-–ŸU}´ü¤âƒåÇ•Ùa_~Ã8ÚÅ=ð?oðÎï¹ÍZ4#çã•B&¨Hγ/ìXÙg6!hžŠ[ ùØ#m“ÖÐÚRË™xï\TÎ!ƒr&îO…±&Ý7^à>K7Œ‹ðÊÛñ  êí¢Z^ˆI;saÃöóÌö¸¸äm¨{ðí’F÷vQЀ¹¥æ$gaí¬³¤O\KúŒ\H+Í…Œ:ÌßÝ¿;.¸ûL…:M»¥)·° ÊÚ©¨JHE4Rš;°¹hÅTÈ Ù[0ß.,{ EaQ£ÊE¡gƒ‹ –)wè»MEÇòÑ®Á¢N›[PISè¿*Â'k%}jîUs þžÁ<ôd6âW‚.ƒf¹E­²·¬ïÊ-ÈùXTXO-©Ä‚F …zïæÂCoWÌ·É”iÍéâ]7 +QS/u€Ñ×Ñj ÓÕ€V6â.Imfžu&5Ï9Ÿuñ®">Q +Z@„ú‘k/³>ƒ*éP[z~ ™{þ¹ 7§]¼rÿÓ²PWßu:¯¢.ðGú)—¼™ò *ÓóÍÇÖF*þ¾ö¦êÓuÐîÕ)C»ÿû—¥çí‡2s¢RÈU¨MјšQÕ½júzéYíßò!ätIédÂC• ßçb_BœŒsi[Óá•¡òW‡Z¿ËZ•m˜_#Þeÿ’™W§m 90¾ÛíG–Ÿ·|ã½]ý—ìÃÿuV[ñ2­mKN +¯¤&˜ÇS“ÇÓ3Ü ©îùøDçϨ[œžg^È:øed@ÍOÍó‹v&;ŽÅ§[a.˜’VÆÉí Èá3GçïýÙ5p郷!iç^XÚ¹ Yywg8gS³Üó©öéÕ7­ýOj¿Üxþ€Ïeèã^mÂòÔ,ûÜæhÃWËÏ*ÿcX{Ýqø÷Èÿ ßl:úX´’‹‚¤¦Ù𻄸GÞšÝLë*Y|¾#þõi¸I+¯(=Ç9‡‚Vg€= `vÜË»JuêܲJFø-½D »/õIe¨‡{%\³<\ûÙ΄°86÷¡!q´ü¢&ðÿÊ ¬âæ^ɺ¸Ex€_™‹JÚ + “T°ÿ!æëD} }zi& Ãì-kµ¿®ú÷—õ*$iɸXç飂H˜ß|À Á<’Z …‚l…9F`Ü1`JÄ%ªÄ}ôqçÒú´KXž käTT¯§¢CnQo(€>@ðÀG4¹˜ÁL-êàÿŒ&*Ü÷„uÁûûó1S_¼^}ä+2D³*nÈz›v¦;cnƒôë!+‹kP§j›öVy'ä1c.Ò}ØÎœ|“qiù{ð{1§´)k“ÔîNÃuÍ+…¸¯û}\óIûF2tÆÑöËêë«Yx\ôÇíÉöc»6YíÚ¬ªÖz«îoÞ›uŸ#6eSÚ*,MÍŠJ¶ÇDèã¶"OZ¾ÜážÝ‹è4›S‚KÛS¢"ÈKüÕѦv¦ê¾Þ©ù2em8Ÿh8€XéÒ w€³B÷[¾%&%ׇ¸‹Cå Þ-ûƒ÷ZÙï==Ú}.Þ–ûn—~¼1Ô|pÏ+k£\Òz ®sk´ù»õWÕŸ®½¬ú|à4ýv§1§²#Pr(¿¼=>°ù¦õ‡õ‘ºÏý÷®¼¿ö¬æà¯aA-y‡ O}—𕤿E;Ìc»S¬“¨SXAz¥ˆ jhFPLxõÔ)kØmùÞûÊn½n;°3Â8½×üj•·ï…tj”f&‡ª“tdyÙ@ù´¢”ƒ_œvA††\šjÄ{ Æž]—¸n~6;ìê§ .p/xÏ\󑌓UD­H˜D´û6´ôƒvË1ÐfèµvœÎ0®È2¼R*¬d¨YÁ¯%ö£3}|9èQäaaQÜñv•_ÿô?4r!Ë5*Ô}…Ïs]›v +Ë3qÍpæòXã×)Ð’BTÎÍG5rÈlÌ'¬Áü¢:"l0fýj!d#m.ÜÕOu22 gP!àùZ:­Äü²ÖÂ’J–[PBV‹sõKZ¯|]+'3þð*˜7å”îβO§‚«­É>­0¿;Ëɽ˜“5‘Aµ íUvlÌ ‹?]É:AøT¬Ý)ÆÉ쌰43¥mÛÐ4¬¼T—nŒ[¡/ïÖcG›¿G!—.¿®û<=Ç8ƒ9!úÅ ÿˆÊØôyjžwe}¢ã§íQÞEÒaѧgÕ-©9Iùöç\b’%9λHXEeļ¬vãuóAï¢ÿXj; ýÑ€Yy—0à˜øëÄîXóÔT x[ûQ˜ng‚{†ôhùÀÁíP×õ„[ÃIÍ2O'§ë¿Aç›çœÌó”›q†¿-!£û$gEY«¢ð¨¸h_!¬äQAamÂÚx m•µ¢n£nwRXþY™±J[1«´†°‰Ë Ð$Ä.¨Øšj=¶2\ÿ5áP —^‚94lÜ©ab`&¿Šû½ámLl¬í:ø%+oXG§V@Ezïc^+9KûЍu«xÔ’FCÄô¨M>Ñkñphµ^‹ù¸eYGýYWËѬ—]„ÕyÐÜÂðEÌr'êWßÃBøÚóBL!È/r+ Q)ð¨ +æP” ›-ôš%½6I¯åå"ZE +ô#n^Å}ÂÚ}Ðë|D%ļҦ´“w% ™%áQ16íà£nà«Ðà0î¹™‹ÈÙDHÒLE$­$ýoHÎÄBòÎm}¬¯AK„nL 顃 œ €^ŸuŠÊ—¼…ðš4»óŒÓqkÇIà0!åï½ý.ïúUlàMúhÐðsQË øÌº4ø I¯£…úæ¢}Oé#Q÷€ÿr1)ƒ>²¾°¨7Ò‡zµ •>‚X«;¿ß³ Uç":îÓ‰èã´}/šé»ôûB°ûÖ^l`”ŠvßÌÅM[“¼³«#ªŠÝ™.º1‘ÎÂ}z9â¾1”r=ò¦ü×_d]Ê̯a£‘Œ˜º‡Žƒ¹ÍÌÝmÆ=Fð'èñyö¹­9öéíIÁEÂ¥áQµ0>Å>›’×böþÞÔŒ™¿;£mÙœ’—í@-­¿j>°3Æ¿9\öñÒÃ+L¶A®–VQ-u€×Ì©Z(È™¹Î“©©šÏ³ÓÕ_dgbv:o©X9Ȇ«£Í?l ·Ïy š|Àll­& +4#NI]>câ‘¶îBŽÃlj&é﹑œå^Þ|ÙðEüMËadNP‚ÙÅÕ˜CÚ˜–Ù™â]H@.Ì»´‚}Èà/ )ºŸA§`>Î¥’júèpz'¹” ¢ü×þ›oˆP÷-*Ò5€B&HAFϺUT¸û&è£wëD¸Ë¤ÎCfÈGÕ",n&B¢ú|LÒž‹©åû‹]7AOÍÀ.ôPÓ&à%Ëõý˜±+V‹H¿V\^Ú_0Á®^ŒæàjÜm”^5 æ¹>ŸxÐHzÞ‡€ïËxôbÄcÒ Þ[kÓêæIÑeÌ+ïØ‹iUûP‡¿®è{s1• ‡øMÄwg.Œ&#‚Zi>¢–ìÓ¬6ñ€Q“r±KâÓÍ?“n­<¸öˆò›Í)»´&mÖ† †ú•¬Â¢ånü1Ñ©q÷ÝÌ3ø”tuáAƒ*ÌŠÁœP Ý÷öéµ¶>ã”´+šAsÏ`nq]Æ0î{Tˆ ¼ÊEºúhÈØT-»3â’|ÐÔ•r¨Å›SÊæ´£ïZÊygt×qo*å½9‚uš„CP¶1Å=¿3oPl»{úÞÈ ïšôD@+ÃAS±ä'›²s÷t'æÍ²øœº‘òÕ”_¯_ç7›h†ŒÏò.¤§%g—acXVœž†º†±!½FuÆ +jNAÐÇ]¿*ÿ$>ÕqñHWž3bs%ôžŠ +èä”ߤÇ}FMr^Õ¹úºóÈæÆÏ›ãÂKË:f&Åy„•™Yö¥œ—^»S0H—¬yy¨ê“¥ÇUÃì’æä˜å§Õo½ªû63Å8—ƒ9/xTl>çúpÍÕ'ß%gÅ•ËÏZ¾IŽpÎä\É>°ÀÛøm@y\Rµ>Þz09˾YTº9.(Îù5¢·ÀãPê|X#>goLµ^~ÝðEjZRžöj•áGmßm>‘cÖþ=ø ¯Q™sëE¨CÞè¿_òQðæÙ÷‘IæeÄ©êX}Åú)3«adNç ¨UÜ«hCÜâڥɦ;sœ+¤¯ïvÚÝÝ›rªÙ„ïúc‚ÎÀFÀ::2?êRv"ófyÖzó6âÐó Ÿ’A†”<2¬à•Ò·«jͯ«*%äW'¡1¯Y/é7ª Ñ®Z‹ñ€^•}»h¤B +^ÆÝyžf[Âi’¡6sšTtmí-õ€oYú°w5ÙÝŸ°k™ˆß¨Û²©Ùá—¢Sˆ­K‘ é乨’‡yeMI‡°œŒ*8¹EŸôX ÿAÜ)oNyµRÐ]3†¬D{O@ÁÌz”mÀ–2* âàNƒ4>£î ¼f°ôþ®îBÄÔ½·¤Q ÝÿùY>Kß­¬»÷ZÆm”’¡®ÞÜB÷ÝÜbÿKX‰>½°þÖ«Ö&:/Ýdý?8Døú0è¹…z©ˆN™‡ù.„Œúý°FJ¯iy4±ßh;µë¸3µa»õdyÆ"Û´éØà`=á×HQ¯Fœr)Ú[>G½²VÄ'kÎúm(}_Ú£âžÞ¸Õ,]›–þ½EcoaI­ÀC*.âÒñ³NuGÂ*©Ì:Ô[vI«k°îÓíqÓ~ òOÐÒ œÝC¸uÂ̼ð곪O“³œâõiÆÅŹ÷HëÀuÌ×Õ•õ*i§¢5í”7ìÌHÊV_3ŽlOðÏ{ŸµS^zoû§d/l¤kYJA"AåÖdãAï­“ÿ{ñaÙ_1›¸.a–m¼h?BÌ«Y”[#ÈÚ…åYÈÃñÉö#KOË>YÖð}x¸ýôñ‰÷¢·Ú/î¯=ÆWAƒŒ–¶‰+“óm?£NN1ê“´„Ö|š÷HZÞ®èŒDXÆ¢×I1Ÿ¬e{šqjkœqw©yq Õ1PùáæS uÝŸÁ|lòfÚ“Ó²rçõ’=>L¼a]Zæ_žê*ÿ;:Û ºr{‚ _J;ä-´¯d¢ŠµÉö_vgùehFªéLÛu|ÜwsôßG|–þ,í^;5'­HÏé)›E»:,éÔ‰ö"]ƒ{Ñ®Á_WŒ}Ð'<įI»;OBölIÙ5œµ1^1ü\}!zí%&ÃýϨH÷MÚK W·eœm'P7¯sh9è¼QD¸®³õÜ-,û0`û¬Ï¨"€­0ø7ëÓˆV&Dűg¢9go}Ï…€¬þÃËzT¼Í6K:=ù$î’¶­—¦\:yÜ©ìŒÛEeˆOŃÕ?™è>݃k@ÝjŽÿQã7ÉYè›`ÿ#x +z r†°‘Šª!K(ب_TO†»ú6çtœÕqe5ôH?d“;T´ëíêË/-Ð#†BT¯‹Ïq*Gµg>Gç,½™`ßý]ðSÔßs=íy@EúŸÑüövIÊ!ý’¦…ç-?-¾`•¤¼×‡Öm=šÕÙ.QÜÕeÈÇzæ£:CÊ&iÚžæ^Ä=âºô¿õJšòÀ½°VÆœ_GÜZnrùöŒ´<üÆÞ’±;·¤’Âge$çuŒ¬SÏCÏÒYóÊDûÿúOâ“âÆB¬ëzÚi¤FÉ;½sCî™WµcN æìò¸úÒo‰y‹&aSµí̉ŠÓi d–†Œ]^8Tm›Žå~Üqä…èô¿­>m¿L¯¡£^:/‰ªwíìó[G×}“šä_ÍyµbÔ£á¥FeW önC|ZÞ¼8Ôñfƒlå·NiSfVXl»]û™±þ›ÿ2ÛUþc!b¾‘t‹k²Y éÕË A“‰´NÎÖŸœkûiëUÍß Nn wìØ™gP§^AA?c.5<¡ôjEq'¯d}„ñ j5j)ÐÌ]+ï2Ôb b7+²ófizJÕšV¶d¬ê6ÛÓæ¤_ü69aÐÁWq›^´8Ä=‘‚1¡‚Fàc?½Æ‘…[}-8•×r1¿^“vè…i—QžuiØú^„X¸zq¼ãÂíöƒ¿Gg4½p÷-Ô£`’A£÷€¼Ûw¡S!bá%ûÌ Õ™ß9¯W~^ˆ¼F7F2Þk÷Sn#äꮾ½˜©wøŒðÊšÓó’rÔ®îÀÜZ7çÃj)…:#Â}QøýÛvÎùµIÎÉø”²¦àë² q=áWr÷"=÷¨ Éˆ@†ÛrHk·’šYAñÊçLÒ¡bÆF¹§·IMDúž’±Ðv³%Ј2^y[Â**]bÙ™P7ÒšI„-×_ÏÑ›ˆˆ¹—  endstream endobj 30 0 obj <>stream + ùˆF:Á_WU­ŒÉJsaƒ^zrë{J-˜ûzx.¬S“>Èú¾Á¡» ycŽyô=ÂBw]Yÿxoæ”f]‚ +Ò¯`‚jp¸~$b4¢á®kx¸ÿ1鹋å,¸>.Ò™ß.éŒdhÂcPíE{‚'÷“à•·²ñ*€ 幨F¹¿¬§ýÌ@ßkÅ"æž”]ÏM»´ìíyaÙâHów‰7œSȼ¼ꈅ@vÊ:MJòL<sjÙÉ9qÙ΄à<0OIrF|ïXe[{Î8˜žSÔe²Ú䬴<3¯hLÌ*j–‡ù§SSÒŠ_ƒZů ÍÑ0 ä()å3ë!»t¥¬Š–ø¬´2e•T$Æ9' `ÑÌœ¬wêÄû4»ƒ×ow‹=¬ÿtíQÍÇñá¶Cø°¶O'£÷&;*ò^‹)ïë2f­âª¬•^wæ•¢Ž¶_ +~NÙöTÝ÷™~"}Ý7pW—uêˆx +ægoQ)Ü_”°÷¢r½VE¸-FÜ}ãæº=ŠyŸfʶ­±––_´~}*øÅw—u’š{Ò­dj,=çâ¼õŠð[zŸ¢s×ÚùKÖÁ>‡ØùE”_ÅA|’†Œ¸ÍÝÓ‹8u<úÞl|FZ=[¯û>v§òë}¿N.¡÷: ÞëO³þëÏ0šÏý÷¿É´;%¾º5Â9x•‚ìŸq™”ioïâï» õú „LÌ'iÜ*D¤˜y)>WùîÕåB–”w_?¤sJ¸Sp s2.nŽTÿ=9Ã+†¹a> ƒÏGÆzáÀjIÈshØ My•Ì…7¬£ Ëªü< +Y<åÒKˆˆjU+…Œ$,•òÚî<èŒGÁF7'‰EólH-@üôþ+ xV÷M"Ls'ðÌ-êÕË0ßݸۤߜ—bÝ·óôkÁr3/âÝÞ;~á5ç½ã.£bÇfVcþÁa2 +y}ÉØŸ‹ªedH-A +vÂɺD†µZrQßµéâ^),ö<Ü[»6E-Zn!-Í…¢| «<ö~>jîÎEÌ}ôzsaQ«&£FÖÇ).aSQ•ˆZÐÈSOÖ¥f`ƒñ”Po"zæ•¶nÍ0ÏÆ­Â„Þ÷äÔr·&¤%é95è5Ô$øÍ^PX›ó³¯nŽ—~µü¼øýu_ 4wØeµYZÇ\F)SP¯šM¯oì…¤Ì\@Ú¶ õ`IÓû`æD¥¸Ó$ßžRÔmÏŠ+èýg#µ_m6F­’¦ý°© µ ËP»°4kæ·©:³Ó_ÆGŠ>L¾iü‡Oä„GTƒÙ…U˜SÞÎõw¡Ö.YÚÉ/_*þ(1Õ +½Á¯Îåœ<­‘.YCÆ©æBm=ÊÅLýTXÔˆyçP7óá‘4äzE.bê¡ f!“³6u[r\^ÖvffTÍ„_E…… Y·¬ñšÔ´vÁøðÒV±[tÀ¼¬u>=ÛvŒž$J6}ÿu)Z³6Q9áÑòi#ÀKP¯ Ãý‚jÄ'ª#è{Ó¡¡”·§/ãí¿›ñÜ™"üý÷!Sñ +>%“òJ[²vq õ†ºLD°ç^ODÞÕÓ½½q/,gQ~~îc_Ù‹ +›ö#¢&ÜÇ*I:9W3N½’ +AKéõ>úÞ¡ZLxÄM˜KXMú•lÈ µ;Ö¶_РވFºo§A" WfÁ°˜V“ °ŠÈ€¸‰ÊÛÉè}°ç&5v£>yæ•4>auÖÁ+Ùšé8¾9ǹ€ELýø‚JJÀ÷‘ÓXèž8ñ°U?³ÜÌÇúžç¡Véµ<2j0aa9coÑÐã †9èÞ_êyH¯gì-jUûK*Ô­lq„}j¥˜{% ©€ oŒûÍש˜Î˜[PÉÑ«zÅZóma±÷I~©ç°ÜÀxÕþbÿk`}ÈZZÑërôµDM=ôž4 jH9!O†tʽEäxK–qKjéuè<ð]>:”ñrŠ·fÚ¡ni}­;6qÍÂóPfVÇÙ‡ÌùĨ«õ—ÄLõW«¯/o9Î jIŸŠ³üº üVPEùÍx6iõÎ÷bb®óDÆ)(¡‚ ùQƒ9îåW-Œ´ÀlÝ ˜uk¸;­G¢‹ÿ°þªú[Ü!jÊÔ‚ødëáì<ãlžÞ£ÔJwGË?VÄçy59Ÿš¹EÕñ‰z×שyÖ…¸UѹùZP‚8`¾'ÚÎãN;Og\¯¼3k—ÔÓ÷$·’ót=å’;K[öc’Ž·1qÛ~TÁÝ)…dXؘq3/g‚2Ü­a§fÔ­™)mGzVT†ûÛÏæC`µ ÷=,èôÛ6QYbFÇ$܃O1¯QŸä^JŒó®R¸ÒÈQ·¨61Ûztwªù ×LxÔ¥å~ óëñ€¨HZö4Šýƒ% ™%ë1A+ÁŸÌfzM{^…°Áœ Â8D ÿúemÀc…µ"¿Üû‚ˆvߥ×g î×%µòí¢BðvQÎË:ÛNîÎU¹;×tÆ¿"n甤l*6éx˜õ?Èùú´]Ñ”´«;w椵;³í§³>ƒv×cRmC¶D‚Ïpà;jÅЄÚÎÓ¿÷«xÀD"’Ωaµ(ëWa>%'3tï/kÔ‚„‰„5dLÊÄ Pƒýdø¶Þvá ýÔB×`a¥ïõÛµ¾±Â²¡ŸŒjXH%$ÿÿ~Ð’ô~ᨩï+–ûx@PG%m¹(² ¿zu¬óxbž_ŒxeíkVö9”Þ÷°Ð÷‚ZèEÄŒÝDT-ÇÂÒ4ĩͅÅîûdÄh¦`|À;‘1­vg¶î¹²T:L„Œè º.Ðýù˜V• Ô𙣘D@Þñær|Póé:ÌÁï),èLûËæ›dT§K¹Xw';~æ×P£ê¯"ëàW`9›tw]/øûîìÍÝ›Û׆;'fE5ôþtȧLÔYßaT#½ØØOÞœ„ °ccÛ™ä_Bìƒ÷SV³"=«iMŽK*²S‚ +Ì 5¹`{šu2=Ã8žðj÷¡—†ØL:Âc ý–> +xÞ—Bo6öå|TÐ8þðâ#š ßR½ºÖk Ÿ’úŒе̼¤–ðÀØ„Œ]ôšMøUÇ¡èÉ?—*Àºš²±Î"ïî!óË1§˜òÉ:ÒnAýSͱŸËNþ™WK÷—ô}¿.éÍà犸Kň»Å ±IƱ¸SÅI ¶l²ÒeéιŸüÝ×2~éödû‘ÍÑú/3íGqŸN¼=£jÜVÖPÀû1Ëݽ¨ŒI@‡²6Ü/oCèõÞ€¹+ãSñ6Idù|È ¥h¶ ê!G󯦼ì"jfoIÆË/kõY¨Äßs#¿Ø7TXÒê²^Q-30¿R˜ÈÄÿgY©¦ì\oøre\Ýš„qOÚ à#KÆÙÓ›vÜx’uߟéIzu¢U»ªeuNZF„^!ÀFÙˆÁˆ…õÝhÀ2ˆ‡,×ÈH/­ÿƒdHP°q/¡>µ¬°Ôó‹Éù™0¯2ã畦ݜ"4Ê-Ç#ôþ°ë“…ÕÞ¡üB×õ<ÔíÞjÏPnEkÊÁµ#ý3ôš(Ì’±²ÎÎ3T@ }¢–ä‚ÒŽBX)üuQ¥ü?ËÝ~L£¦k6ã”nÍuüŒ{e-ô=ÈJ"¤Wc¡îÛÔBÏcj¡ïy®k¤H@Í#"FÔ²& Óy|áYù_77)¸M¦\H«L@o>£.î}PM,úîQ~ƒ +…ë̺D5GÄD@¾ mƒß}'ë|‘‹ ¹ÀG-k¯Û;*?ö Ö}Cx5J4@ë·’øôŠ„SÃÎúTì]—¤n׫hÛöÊ›6gÅe{0¶{G)¿’E4ÒBL-¡ë{ZpisFxòHiÆ&«Î…@ß‚& 0|=êT1IŸ¥¾·F„ûŸP±ž{õàíJ +ôfuœS´ø¢íp!lî%"JÞþ²RRXTˆÞÒ÷¦—4*ú>4ÔÊ!Ã_ËEfàÈk Õ£ÔâÀ8I?3‰…uq‡ * ó„„Œº­9i î¾võÝE}wéœõ™´(\ÑpÈÁdØ 9ËbACXø– u`ƒ‹j© ´5><îSrÉø©]\¿>­¨Éxúï¡Ází­°Ò?ZX²Ü-,wÝ!# +ÞÛEÓ lˆ-éÀ]¾xm [nn:´Ü]·†E†ä{aã^Xܾ3Ë9·™èÐW¿FÕÒBHÖŽxĵ)Э æ©Ý)Öé\PÒZˆh•0_ò +ºãÄÂæþL@'Ï‚èµqzßKÌ`¢×s)`YÌ­—fíªVÄ­ê@|:Ô ›1I¯¬<µ‘~þ·%Y›ª=m—Ûª8ôž" âQà!t–†ž”“­¢°¤7í-ûȘ^@6F½Ê²ÆžÏ „¹êÃ:ô\5ú–uõ¡ kcìãËCmßo޶ýüÜDx ò”CÅÙž–”¥çûºÒÖ.êRA¾”µÅ!¬N4ÌÌ‹«rN£f?bêZxYhgRÜ€z̺\Ш+@îÇÔŠBLÊøÇŠ\õÈšVÇe%q«º™¾ÿNzä͘“ùœ[޹€­m¢*Ü.©-GçÃZæ–5Ð÷™¨\ŸS'Ìù{¨`Ïí|Ä|m/¦’¥]ìËôMà&]_ˆß £•"^ÈÛôó Vqåæ0óØÖëàV"nÖEú>d.týîï@ï×J8%50~Æ ¨…ôým˜ãÖwÖÛ݃‡dôÚçά¸*×F„5YçrÚ'¬¢Ÿ }Fu>Ø=\ÛOÐ{œb¦ÞÌçÞ²¾®¤ò†À³ŽŸé5ùBö¤b*È-’2 Ú5·¿¬3þcM¥úuE)Ïåì\H%Þ[2 æVL7 ++æ[¹EóM¨ËÞr×íýUóÝܒ΄E4ÒÝyQ)øq깕 èeiŸ¥›Œö>^£(LŽù**d¶ä w¡®Þl¨÷6¼9†Ljh×M2,ÝdL!Y¯ÿvsRÏM:žúÓþ{®T°k¸êü¾Þü2h.pY>ª×Ñϯ`!sOÊûÀ……úbÀ àO}t–G’æ¤q.ec^B=’Æ· Æ®.›ßFu0 4ö@þ~~t;R‹ +ai7bt>ŽjT¹˜y0å—µ§À<‹×^CBo 4æA[¨°œš•$&…ÓViÌKïßÇ]Âòô,÷\rFp wªÚâ+;£Üñ1Þé½°N «"¡G ·±²imÖ)­…šaì/hUôºQÆ£á¤ÝZú9'å2ˆ)·†Gx”ô÷%à÷¦mâ*Ä­hß—T¬KŠÖGE—v§¹çq¿,5/,KÚE•ÛÓÂˉ#wé÷ìêHÇOIП,hyÊ&®Ýó4{^“ŽôËŽÛWÞßÖ¥YÆ®çìùͦ,š¯¿]TC¯È˜ô¾9è¡+‰ ½³ wŠ*öÃJÁÿ=ý¼ðwÏ„ K _jsAY;î×`NAur†s ±*óë/Èàu` +ðUd`‡ uñË©¿‚ðsÊP¼õx}Oukƒ¯||Tô~ÆÙr òï%ŠÎá^½ót™pÈ ¨W+Ê…õ`0 °:ú¿™ +ªHŸ²½–ûe­4ïb“².x²¨)íî<³kgœÎä9ð,ú^xM;P0!Gк»·ªÑÓãœÏÙœœßãù¿Ë¦Ü»=a:)î{L-šoP1goIØü^9?¿<çÕ@³ÉE•tYoÞ[î~ô^ò é¹EÈ5ô:NXÚžƒ¼”¬Pwvwã xŽŒ¼¦/,k‡ô**,eà~i{Ê)oÊ„Àk÷Hèö<í¹—…¯! ‰›Pë*êÑ«²Þ;SéÀà«-àz+·Øó„Z0vg=Ò<¤Q­œÞ—Cûîc³©뾕 wßB\& T‹á½¤OÜNùÁS€C )k/¬õï-_ŸÉ¯÷½)¬tÝÝ‹iTðí˜O\‡xEUD@Ü€ùD  Yu»v tß΃¦Ãiˆ hWXÉ˅ĉiö©µ¡Žï7G˜?¯óN­>cÉÌŠK2³üKiø¿ÄçÔÆëŽÖ‡š¾X}Zû åæ•RIî’7‘²vÁUÄ.*Å]Ò:Ê£hÏÌÊkÒó:â6Èp¯QØT­™9ie|Š~îCX’±ŠJR³¼ ‰iîéÝ)öÉÝyÅú˜ðâæëhÖÆ¹¶q/f ®3aéÎ4çŒçAéû¡'5ŸlÃÏ;ô<Ä©¢ŸGàaYCÚÆ:“˜m;Š{UÉyQY|RRœwé…o!‹æAŸq'ä —´>5Í;Ÿœ`ý’šf Ü¢ªý¨ò©ZYˆj•¨SÙžœ£vIÕ°=é–ÔZyÑðYvJZA: RÐm dßwþôkToÄÂÊôLÇQd¾ùÐ[Èì{QËM*ôÎwøP—gwÞp.Ãg¬üÇ’\RˆÊ¤_\ØyWÓ¼ dÀ ÉÒûÄ!›ä€iqÐc< bã~aMÂÖ~ë¯Àô¾ÒcT¦]à£;‘s 0ÿo£r6î”Åg˜§ÒnÖ…BTÁ/Ð÷Ëà:saË=Zs1 ЙEÒ”„ù‰Ó{hC5`\¨0íCú®ü¢Î@„ÄÍd@PMøEõ(¼ ìCdzî½^r#Sòò1ÿ×%µ"í–6$¥·mÊ–Õ ÑeÄÝ;€øºzvf¥5kÃÌÉŠO?Ó¹+=Ï/Ù…LŠû4ü´MÕ¶>./Ë'€c(¯’™šá]À\œË„‹_šsÉšè=¦¹˜å³Ü¤×% =Oó0æ¤WÃÅÜvÚ.*ßk;´:ÜqhåuçáÄ4ë,} èådØ y÷ +ý<®‡ÞïÁ9›˜äž +Ýnÿlí ûpbRpqýópj’s&5-¯ÜážZ~ÖüyäVåŸÖŸ6|–šæž¥ŸYO8ô‚¥Œ#éiÞEÜ%®ÉB]g¬²š1þYúyÅĸ´xã%ïXjNVµ5Æ?·ú”y 1!8G¯Í&¡þ7^v|{ØôéÂ㎯7_1DæøE˜‹_²1Þqdm¤ãpÊ*(ÊØ¹—‡ $>)¸°5*:ºßô÷ø˜ð2éPµáA)jeœÈÌ´þ˜œh;”™b'ü«˜M\¹3Á;»ü”ñ}vVÙ´ñªé›¡ÚO³3ìs„CR›ãœCæ¹—²s‚«;oøgÐ9M+jÕ´ #3£jÈ̪š¶ßáýX?o¼nùvk´õ`ÊÊ:›vr¯ nzíJRzÎ ½ÂJú™˜=úYŸ^FßBì²æ¼_/ÇÝÊŽ|PΠýšö(d^Pœµ +¯Âg*ÎÀ5`n5±¥ˆË¬ŽÏÉ*§²s*ZÒ³¼‹qzíÁ&(^aÙåC.IÏ‹ËR3¢+¤]Þðk@ÉÚ‡¹f{´óðÎ(ûb•ÖÂÆ®dHÊ«æ#ó²FdNX‚Î ŠvßpŽo¾í›]ÉÌJÊÓÓê¦ä”¦s¨;›²yg\pvû ëXÆÊ½˜ *˜È¼¤s*[)àO ê h¥i`‚”KÍB=:aÂ.¯\MÙ¸Wè¿s€À¼Ó{Îq¤þmDÎ,øU,¸!}/ óJê’vnÑÚ$ã—ŒSÊüuÑ4¸V qŸ¨žŠ(8xXÖ™q‹«walV_óYxÀ9¸üDplå©ô¬«§é£õWí?æAïóe² ŸˆysòŠw§ÅÅÑaÑ©…לã™I ÔcwLp–ò©9ÿXÐé +xÿyy-ÍFi‡A€8-¦´Í¬^~!¿”šÓs·&4ÍÛ’«/ïNvþ´;Ñz0im:˜˜í[ê<@÷Çâ£Î¯W·|ŽÌvü‚Ì·ý’˜á^Þ™Òw&fô0Wm‰iþùÕ!Öᵜ#[¯9Ç›¬.çRuÄégé'EWRSâ«Ðϧ“c?n¿jøbãEã—kàÛ#íÖÞð.9JþcíYÃ÷·’•™ã­Óßóªî³‘¦oá{¥A«³sêfÜ©a&TeçŒÜ䌑³=¥¨Ž?›ž“^y+éS±26Eù–^SÊõ*£h+ÄtZ`[Iê?e“V&æ8W‡›¿ßy=.¾²9,¼´òœýóÎIYÖªe‚†œOðÏÅÇç·‡™?m¾ì<{Ôô÷¥§m߬=áü˜—”þ3 Y~wbVt%>Á9µ3J?GÊ9…ÚÔ øÙ•¡ö}Äî´|Å=¾ò¤í«å'-_,?nýfûóXôNë 9‡¡Oš7GÕÕÛœï}ƒ­Ÿ.>fþìيإô³ó•øjJZ¶þ†69Gï­2¨ N…3 ÐûŒ£ `Ä$°ÆPç¡×Œ£é91ô ¢µi:0úç»g?{oÕ|¸YóAz’s‰Öx|õÊAG Äi'çUÍë¯y'ƒm ^oøÐfªüèèò¿FnÖ|˜!6ÞÕ.‹ÚH/§(̾:Ê<â¹[ýçèýºOvF?Å'¸gég»È Nšv«;SòŠÔGrJRJÿ‘ŧ"÷Ú?_zÂø~ù¥øêЋ—¸.9Í<•µs‹IŸ¨¥÷ܾbü¸ò˜yhë5ïrb‚} +±)š@û«S3Òr¨ý“ñÖÏ;ÃŒCkÏ;¾ Ýjü›§·þo«OeçVž¨..ÜçZ~À9´òshñ.ãÛõg‚ã ÷ßn qí ÏíB®ÈοLÈÊvßH¯lóO®>oÿ.ò¸öÓ)ó¥ßNéJ~ºÛòÍÚóΣIèIðƒ «C¼c«/¸?-<¨ÿxãYÅ_C·.üçÚóæc‰imÇú¨²*cÕv$fä5k/y'h&\ÖüMfœy2;Á:½p¯ò/k/™?¯½œÝ%Æ…—6‡š¿Þný!1Öv81Ñy$ü¤ãÀ´ñêoÖŸµÛóèDt--?¯ÿ|ýeÓ7»cŒã»ãÌcqèëÄ„èRrRP´ùºóHvVÏÎZ{4;S†öåçâ3‹D¿Äî³¾ ßjúhùqÛWñ޹̴¤bk˜ó áTs°w*xÇôß° ×§ Ö:!Ï]&} +vÖ)©OÛ ·Ùµ¾ñiÃáÛµ‰Ülü4z·åïÑ»­_yÌ:¸c¶;*8Ÿ‘U$ßHж^r~ÚzÉ:¹W÷WðÛ¿þ²1Ä;Ax Ò”MݶM?ï \–šeŸÞiý~éIûÁ؃æÏ½×ËßSœúo𶇸'—5¾ö¢í;ÿ`Í_úÒß;ô¿ ]oùÛê3ÎÑðþ±)]Ó§u5¿sv7|˜Ÿ‰O .ÇGù§á~^âþ¼ùFX<£êdÉFÄ!mØáœØ¦=n’ubéió—®ÞÊ?®×}°ô”qp¾»á‹à­Î“¸]ã(¯[Íþ9ú åóÈúõ¦Æy§¼9ú¸õLrLÞ†Øûûw'ÕMKÏX Í¼£áÛ [õE¿Ÿû—ØÍº<×<æûÃÊPËñ½·vw¬þ»í‘æo7GZ ¶j>qt_þÝêÓúÏP›¨*y>íÒ°vmª–µaѹؽö¯VŸ´»ô°ñ3G×Õ÷UÞb +Ýcþ4¢/ý)>ξŠ{åôßjéD]‚Š”µãØÆËúÏï•¿ï¼òÞæpûaïíú¯““âJÒ¯“&gÄe/š¿\|Tñ¡ûÚå÷^‰ú—;̯þß!ÅåÆ/~oáóðÚsÞñà`ËÇ¡ëÍ-?`}lùdJ{ñ߇'þ×ÂíÖƒ‰1YEb\U»=¦,[~ÊýqíEçÞkÕtvWýaáAû7/„'ÿuNSöqꥬ(ùF^ºüLp4ös04Øø—Gµ[¾SõÑÖã¶¶ž3‡nÔÿ51n`f­½†­7Šò…Ç­_úK~è.þ÷`Oé{Á¾’÷5|:©/ùƒw óøòcÙ™èí–Oמµ|½ñ¢åëÕg-_n5}l7Uþ>8X÷·ÍaÖ‰•§Œãè¬^”šP6íŽI.o s>ûqùIû7!`Iïµâ?@—l+Ê–ž‹OïŽY8¯ µkCâ3±ûMŸø¯ÕþÉ­æÏ¶ž’÷' ÿcwBTºõ´ó†ytýãð&°íò³¦¯£?÷–¾ïê»üÇØƒò’Ó¬ ”O'ÏXU-[o¸gé¿k½ÕüÉêÓŽï6h|Êüzå‹Íçì“™1QÑ.ÔæÖû§õgßGïÖ}´~bï*ùaÞ™ÝY=ckZÓwi8t¶ÌØ9W€'­Æ²ß:ÍuðôVýÉn,ú°áãœóïA}~ŸNÛæžòöÔþy\Rô¯CÜ ÿúŒsá__+KyÈ;¶2$8¸Ùü·ä¤ðR|œw&=Iÿí—ŽsÆs¿±[Jþè¨ýË„öÂ{ É•ˆMËÝ–ÅÇ$WVž¶ã¬ùÓœ¾ô7V]ùom–š?Þï<ó_'T-=aŸHMªê¶ßˆ./=iýréhnôç`õ‡Ñ‡_ÀçùÏ̘¼icÜ,<ä_‘–dì==#²rÏµš¿Ž‹Îþ˨ð¿ÝiÿåñO|øÿ,<®;µ9Rs`Nw⿇o—gžMÏv÷4LO1OàvAéÔr“SÒÒ¬]/LÙu¢È=á‘è]Æ7Ñ;u V}°ü¨ùÛì´¸Ôv­î»ê~ÿ_BƒUÇH·IyÒyrÒxñ?Ö^Õ|ºù²ú“è­â÷–Ö|‚X%•wyÇþ3>Ì©"77F¹'–ž4é½~õžË¿Ÿ7^úíÿÇÑWµ•}}§v¦îBK© PJ/ZÜ]‚ÄÝww IH „àÁ¡ùÎ#ëýGÞËóC]m×ÍÉ9ûcÜ›½g«²^4–ß­Ëõ¾f„E¬u|3ão‰I 7$ää›Óœ¬|Ô­QxÈÍInÂ}X„Ëe5'ÍÓÔôJÒGW—ùb®*õ‘šŸúpŠžxw}MÉÉzÑ‹Mré*»c%ÆI™y΀帱\›îdî-öP1ãŽ#®.ò£ïé»PaÚ*dðv'1æ@Æ(ø-ÐÔù¼Õ +~³ÙRôAWý\ËÏtÒ·"üä4È»åê’ ~ôßéƒùØF‰ñ[=ˆoú¨·¾ òMÎþqg¹9íµmŒ™g ůµUx˜GˆÑæ1L˜yæg*õÜ(þ¬ïÈ~7W“à4[•òt­´Ú 0 aB¶º¡ž+…oV[ +ßkkó^*¸¹.°¨kÃøØ{†!x„i µTv™ág>’Ò“ïMóSŸÍצ=_iJ{e•ú‰¸1N£ÄH§9 +`0} ¸–V˜öh¡>û9À¯&iQwFÈ¡÷Ø™_ÿ’2ßœ+‰ÙÆþbÏÝ^@÷‹<7:sÝ­u5ôǼ˜­ +}`˜(Þ× r\’Р¥f¨ëNÜgµ©äÓf'ÔÈ—žaÖ+ [\ø ­ž"oã06r¹µÌ}N~±Ô\üasi‘P2.|Ö ?ñþî`¹ïr Äu¹ ðÔãȰÅ&ðçyaþ«Í¶·“ Íè*ý¦dç¾ÓÖ»ï„Eo6»Ñþ °ÏJvö£Åº‚Wëí°¯3¼ü·ÄøÏWß;‚Š”Ð‹p‘×g˜ ÷kr^¬¶ºÚ$e§³È´éúä÷]Hÿ«Ú†"w³¨ +¿ÞCˆRòóßãŸc’)¨q÷DØàÛ»ƒEA»£yŸ­ðèsm•ðß{·7뽂þㆊqGßšö\ߘî´Þ~­ï‚zª„ùžrn¡û¡¢}®aT)PÑ{ƒïƈçNO‰ûZGàËËÂV{à™Rn¦ëbK‘çÙ,.ð"_·Û³]v»ò?. +³?¬4yŸ)8ÄS Ÿb—ÒóÌìBÃ:dgâ±Ö–ÿv¡&û…¶*ñÑBuÒã#!gsòuµµìËr.h¶ +êºÔy»Ö\úi­ é3ÂÍwÉñs¾$¥&úÊX¥«]ðï2vðŸ2vàŸrfÄu !ꦾòiªü¶8îóõr_—˶ RºŒ‘zOŒ¸ª¤GßÐò“îJÉ‘·Ä„°»Û½E^Hà-XÈǫ󼒘ç¹T«ê¿Õ[øq±.繌š|§~uº2ãé3Ó)?øã3ììO†aD„Jùr®*ûÃ|UÆ‹tØu`»®t•~¼´Ñ“öfú¡ŸëlCG‡1€¶”zØðXmÍy©bÇÝFø]é‚x\V±£Ú0ñO»0É,ÅovÁ¾ov–}6Á¾ïT|[j†¸ þ€ú^¼¶›¾ê èl螈fB‡[ÆP!¿Sû¥F%üžE%®ug|˜b$:[Æ9Ó(=s³¸ÔRüi½½ØÝÐWá»Ý÷•ñR_a\ÿ&Ä¿wL’4܈[Úª˜G‹õ™¯ÄøŸ÷æ+#ž˜û< =é~V):i}ìêâ3@¶XòäRäÃ>ñæ:ú¯)ZÒ=Çx¹¿c +%©ŠGHz{mg€”¦k†}ST¦=VVÆ>4õ—ú+üV[ Þ®6ƒßnv—~]i‡ø¬¶—ú)x8›„]`D¬´æ¼Ò·ç¼#ÅÞæú\‘²[°±ÏZ±N€gL£«-z5_“õb’¯¾ è/J‚×¥¹Æ×FLü;Tô׿€óÔ.Â$ÊiÇ@n±JŠ}WۣΠBn©¹‘÷×{Ký‘É/9?O×£bÍ"V±q´7\ðÙØ—ûa­=ý“ˆð톾=ÓýHEot—ù¯5ä¾Ý€Dnö•D[†a?vºÀï ƒ0ß…¦âôdï« EÎGSÌr@[2/·X“ül¥.ã…qây¤BDÅå?¥wщnWWú afÀG/×å¿ZoÈqYmHu’’CïÚÅØØÃ)V…u’– `WX§¸¨dQ?ÏÕd?ŸfÅÝYÆßßêÌ|mŸÁ¦JªŸ-µ öF›hÛý¬´¥æ¢·3Õ™/¤ìœ×òJÈ›!BÊûÍdö™JÈÞè#FkÓžÏ7&9-·dºè[Š?îö`fj +ß ‹ƒ¯wB¯Bkkò_.Tg¿Xk¿Ssâo/ 3ŸïtÞ¬øÎ/ ¹IMúv{©®"ñ_—n/ý¾Ù]â¾Ý üY©›’™úXWSøf€šöäçg§KcĸƒèØbìÝÖâoˆÑa #®µ•øÿ5¸e/õg–>dä|¹i“ 3vË}VZ³u YN‹M¹/g«³\¦hñfXIÏ }°Õ¥áw[*¢ý%¦èêÀoÝrÚ<—¾£àý¬0íi?üû 99èÑFOžç%òùÞ0*í?‹‚Ú}9>ÝhydåÁ'Šò«¸È{¾üaº$ååÙQÁ;è[]%žæÁ +ó